aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--.pre-commit-config.yaml18
-rw-r--r--Makefile.def4
-rw-r--r--Makefile.in40
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/Makefile.in1
-rw-r--r--bfd/aclocal.m41
-rw-r--r--bfd/aout-target.h4
-rw-r--r--bfd/aoutx.h9
-rw-r--r--bfd/archive.c12
-rw-r--r--bfd/bfd-in2.h80
-rw-r--r--bfd/bfd.c42
-rw-r--r--bfd/coff-aarch64.c4
-rw-r--r--bfd/coff-alpha.c121
-rw-r--r--bfd/coff-arm.c12
-rw-r--r--bfd/coff-mips.c2
-rw-r--r--bfd/coff-rs6000.c2
-rw-r--r--bfd/coff-sh.c2
-rw-r--r--bfd/coff64-rs6000.c2
-rw-r--r--bfd/coffcode.h21
-rw-r--r--bfd/coffgen.c40
-rw-r--r--bfd/cofflink.c49
-rw-r--r--bfd/compress.c51
-rw-r--r--bfd/config.bfd2
-rwxr-xr-xbfd/configure60
-rw-r--r--bfd/configure.ac8
-rw-r--r--bfd/cpu-riscv.c1
-rw-r--r--bfd/cpu-riscv.h1
-rw-r--r--bfd/dwarf2.c15
-rw-r--r--bfd/ecoff-bfd.h2
-rw-r--r--bfd/ecoff.c22
-rw-r--r--bfd/ecofflink.c13
-rw-r--r--bfd/elf-attrs.c399
-rw-r--r--bfd/elf-bfd.h11
-rw-r--r--bfd/elf-eh-frame.c2
-rw-r--r--bfd/elf-ifunc.c4
-rw-r--r--bfd/elf-m10300.c4
-rw-r--r--bfd/elf-properties.c129
-rw-r--r--bfd/elf-sframe.c17
-rw-r--r--bfd/elf.c185
-rw-r--r--bfd/elf32-arm.c5
-rw-r--r--bfd/elf32-avr.c4
-rw-r--r--bfd/elf32-bfin.c7
-rw-r--r--bfd/elf32-csky.c2
-rw-r--r--bfd/elf32-frv.c4
-rw-r--r--bfd/elf32-hppa.c10
-rw-r--r--bfd/elf32-i386.c70
-rw-r--r--bfd/elf32-m68hc11.c2
-rw-r--r--bfd/elf32-m68hc12.c2
-rw-r--r--bfd/elf32-metag.c2
-rw-r--r--bfd/elf32-microblaze.c7
-rw-r--r--bfd/elf32-nds32.c29
-rw-r--r--bfd/elf32-sh.c4
-rw-r--r--bfd/elf32-spu.c5
-rw-r--r--bfd/elf64-ia64-vms.c4
-rw-r--r--bfd/elf64-ppc.c8
-rw-r--r--bfd/elf64-s390.c19
-rw-r--r--bfd/elf64-x86-64.c195
-rw-r--r--bfd/elflink.c116
-rw-r--r--bfd/elfnn-aarch64.c11
-rw-r--r--bfd/elfnn-ia64.c4
-rw-r--r--bfd/elfnn-kvx.c2
-rw-r--r--bfd/elfnn-loongarch.c374
-rw-r--r--bfd/elfnn-riscv.c92
-rw-r--r--bfd/elfxx-aarch64.c131
-rw-r--r--bfd/elfxx-loongarch.c17
-rw-r--r--bfd/elfxx-mips.c10
-rw-r--r--bfd/elfxx-riscv.c239
-rw-r--r--bfd/elfxx-riscv.h2
-rw-r--r--bfd/elfxx-sparc.c20
-rw-r--r--bfd/elfxx-x86.c136
-rw-r--r--bfd/format.c45
-rw-r--r--bfd/i386aout.c1
-rw-r--r--bfd/libaout.h7
-rw-r--r--bfd/libbfd-in.h6
-rw-r--r--bfd/libbfd.h50
-rw-r--r--bfd/libcoff.h9
-rw-r--r--bfd/linker.c117
-rw-r--r--bfd/pdp11.c9
-rw-r--r--bfd/pe-aarch64.c2
-rw-r--r--bfd/pe-arm.c2
-rw-r--r--bfd/pe-i386.c2
-rw-r--r--bfd/pe-x86_64.c2
-rw-r--r--bfd/peXXigen.c158
-rw-r--r--bfd/pei-aarch64.c2
-rw-r--r--bfd/pei-arm.c2
-rw-r--r--bfd/pei-i386.c2
-rw-r--r--bfd/pei-loongarch64.c2
-rw-r--r--bfd/pei-riscv64.c2
-rw-r--r--bfd/pei-x86_64.c2
-rw-r--r--bfd/po/ms.po2690
-rw-r--r--bfd/po/sr.po3732
-rw-r--r--bfd/reloc.c10
-rw-r--r--bfd/reloc16.c4
-rw-r--r--bfd/section.c19
-rw-r--r--bfd/syms.c1
-rw-r--r--bfd/tekhex.c44
-rw-r--r--bfd/version.h2
-rw-r--r--bfd/xcofflink.c99
-rw-r--r--binutils/MAINTAINERS6
-rw-r--r--binutils/Makefile.am10
-rw-r--r--binutils/Makefile.in28
-rw-r--r--binutils/NEWS3
-rw-r--r--binutils/ar.c21
-rw-r--r--binutils/bucomm.c1
-rw-r--r--binutils/debug.c9
-rw-r--r--binutils/defparse.y6
-rw-r--r--binutils/dlltool.c345
-rw-r--r--binutils/doc/binutils.texi68
-rw-r--r--binutils/dwarf-mode.el4
-rw-r--r--binutils/dwarf.c185
-rw-r--r--binutils/elfedit.c13
-rw-r--r--binutils/is-ranlib.c5
-rw-r--r--binutils/is-strip.c6
-rw-r--r--binutils/nm.c34
-rw-r--r--binutils/not-ranlib.c5
-rw-r--r--binutils/not-strip.c6
-rw-r--r--binutils/objcopy.c175
-rw-r--r--binutils/objdump.c200
-rw-r--r--binutils/po/ca.po12438
-rw-r--r--binutils/po/sr.po4087
-rw-r--r--binutils/readelf.c392
-rw-r--r--binutils/resbin.c963
-rw-r--r--binutils/rescoff.c313
-rw-r--r--binutils/resrc.c230
-rw-r--r--binutils/resres.c65
-rw-r--r--binutils/testsuite/binutils-all/compress.exp16
-rw-r--r--binutils/testsuite/binutils-all/loongarch64/dis-options-multi.d10
-rw-r--r--binutils/testsuite/binutils-all/loongarch64/dis-options-no-alises.d10
-rw-r--r--binutils/testsuite/binutils-all/loongarch64/dis-options-numeric.d10
-rw-r--r--binutils/testsuite/binutils-all/loongarch64/dis-options.s3
-rw-r--r--binutils/testsuite/binutils-all/multi-1.d23
-rw-r--r--binutils/testsuite/binutils-all/multi-2.d23
-rw-r--r--binutils/testsuite/binutils-all/multi-3.d28
-rw-r--r--binutils/testsuite/binutils-all/multi1.s6
-rw-r--r--binutils/testsuite/binutils-all/multi2.s6
-rw-r--r--binutils/testsuite/binutils-all/nm-coff-1.s26
-rw-r--r--binutils/testsuite/binutils-all/nm-coff-sdef-1.s26
-rw-r--r--binutils/testsuite/binutils-all/nm.exp6
-rw-r--r--binutils/testsuite/binutils-all/objcopy.exp90
-rw-r--r--binutils/testsuite/binutils-all/objdump.exp51
-rw-r--r--binutils/testsuite/binutils-all/section-alignment.d9
-rw-r--r--binutils/testsuite/binutils-all/set-section-alignment.d4
-rw-r--r--binutils/testsuite/binutils-all/x86-64/dwarf4.s26166
-rw-r--r--binutils/testsuite/binutils-all/x86-64/dwarf5.s26191
-rw-r--r--binutils/testsuite/binutils-all/x86-64/pr32927-1.d6
-rw-r--r--binutils/testsuite/binutils-all/x86-64/pr32927-2.d6
-rw-r--r--binutils/testsuite/gentestdlls.c1
-rw-r--r--binutils/windint.h6
-rw-r--r--binutils/windres.c199
-rw-r--r--binutils/windres.h6
-rw-r--r--config/bfd64.m438
-rw-r--r--cpu/or1k.opc2
-rw-r--r--cpu/or1kcommon.cpu2
-rw-r--r--gas/NEWS20
-rw-r--r--gas/as.c10
-rw-r--r--gas/as.h4
-rw-r--r--gas/cond.c14
-rw-r--r--gas/config/kvx-parse.c4
-rw-r--r--gas/config/loongarch-parse.y35
-rw-r--r--gas/config/obj-coff-seh.c5
-rw-r--r--gas/config/obj-coff-seh.h2
-rw-r--r--gas/config/obj-coff.c86
-rw-r--r--gas/config/obj-coff.h3
-rw-r--r--gas/config/obj-elf.c87
-rw-r--r--gas/config/obj-elf.h6
-rw-r--r--gas/config/obj-macho.c17
-rw-r--r--gas/config/tc-aarch64.c243
-rw-r--r--gas/config/tc-aarch64.h21
-rw-r--r--gas/config/tc-alpha.c44
-rw-r--r--gas/config/tc-alpha.h2
-rw-r--r--gas/config/tc-arc.h2
-rw-r--r--gas/config/tc-arm.c139
-rw-r--r--gas/config/tc-arm.h12
-rw-r--r--gas/config/tc-avr.c193
-rw-r--r--gas/config/tc-cr16.c18
-rw-r--r--gas/config/tc-cris.c9
-rw-r--r--gas/config/tc-crx.c6
-rw-r--r--gas/config/tc-csky.c122
-rw-r--r--gas/config/tc-d10v.c6
-rw-r--r--gas/config/tc-d30v.c2
-rw-r--r--gas/config/tc-dlx.c4
-rw-r--r--gas/config/tc-epiphany.c12
-rw-r--r--gas/config/tc-epiphany.h1
-rw-r--r--gas/config/tc-frv.h2
-rw-r--r--gas/config/tc-ft32.c2
-rw-r--r--gas/config/tc-h8300.c3
-rw-r--r--gas/config/tc-hppa.c8
-rw-r--r--gas/config/tc-i386-intel.c2
-rw-r--r--gas/config/tc-i386.c579
-rw-r--r--gas/config/tc-i386.h55
-rw-r--r--gas/config/tc-ia64.c17
-rw-r--r--gas/config/tc-ia64.h2
-rw-r--r--gas/config/tc-iq2000.c4
-rw-r--r--gas/config/tc-kvx.c100
-rw-r--r--gas/config/tc-kvx.h1
-rw-r--r--gas/config/tc-loongarch.c180
-rw-r--r--gas/config/tc-loongarch.h23
-rw-r--r--gas/config/tc-m32c.h2
-rw-r--r--gas/config/tc-m32r.h2
-rw-r--r--gas/config/tc-m68hc11.c34
-rw-r--r--gas/config/tc-m68k.c63
-rw-r--r--gas/config/tc-mcore.c2
-rw-r--r--gas/config/tc-metag.c33
-rw-r--r--gas/config/tc-metag.h1
-rw-r--r--gas/config/tc-microblaze.c42
-rw-r--r--gas/config/tc-mips.c52
-rw-r--r--gas/config/tc-mips.h2
-rw-r--r--gas/config/tc-mmix.c15
-rw-r--r--gas/config/tc-mn10200.c2
-rw-r--r--gas/config/tc-mn10300.c4
-rw-r--r--gas/config/tc-moxie.c2
-rw-r--r--gas/config/tc-msp430.c10
-rw-r--r--gas/config/tc-nds32.c21
-rw-r--r--gas/config/tc-nds32.h1
-rw-r--r--gas/config/tc-ns32k.c4
-rw-r--r--gas/config/tc-pdp11.c8
-rw-r--r--gas/config/tc-pj.c2
-rw-r--r--gas/config/tc-ppc.c44
-rw-r--r--gas/config/tc-ppc.h2
-rw-r--r--gas/config/tc-pru.c6
-rw-r--r--gas/config/tc-riscv.c294
-rw-r--r--gas/config/tc-riscv.h14
-rw-r--r--gas/config/tc-rl78.c5
-rw-r--r--gas/config/tc-rl78.h2
-rw-r--r--gas/config/tc-rx.c8
-rw-r--r--gas/config/tc-rx.h2
-rw-r--r--gas/config/tc-s390.c11
-rw-r--r--gas/config/tc-score.c19
-rw-r--r--gas/config/tc-score.h2
-rw-r--r--gas/config/tc-score7.c18
-rw-r--r--gas/config/tc-sh.c7
-rw-r--r--gas/config/tc-sh.h2
-rw-r--r--gas/config/tc-sparc.c16
-rw-r--r--gas/config/tc-sparc.h2
-rw-r--r--gas/config/tc-spu.c2
-rw-r--r--gas/config/tc-spu.h2
-rw-r--r--gas/config/tc-tic30.c16
-rw-r--r--gas/config/tc-tic4x.c5
-rw-r--r--gas/config/tc-tic54x.c70
-rw-r--r--gas/config/tc-tic6x.c26
-rw-r--r--gas/config/tc-tilegx.c42
-rw-r--r--gas/config/tc-tilegx.h2
-rw-r--r--gas/config/tc-tilepro.c54
-rw-r--r--gas/config/tc-tilepro.h2
-rw-r--r--gas/config/tc-v850.c2
-rw-r--r--gas/config/tc-vax.c6
-rw-r--r--gas/config/tc-visium.c22
-rw-r--r--gas/config/tc-visium.h1
-rw-r--r--gas/config/tc-wasm32.c4
-rw-r--r--gas/config/tc-wasm32.h1
-rw-r--r--gas/config/tc-xgate.c7
-rw-r--r--gas/config/tc-xtensa.c20
-rw-r--r--gas/config/tc-xtensa.h2
-rw-r--r--gas/config/tc-z8k.c14
-rwxr-xr-xgas/configure7
-rw-r--r--gas/configure.ac7
-rw-r--r--gas/doc/as.texi30
-rw-r--r--gas/doc/c-aarch64.texi16
-rw-r--r--gas/doc/c-i386.texi18
-rw-r--r--gas/doc/c-riscv.texi57
-rw-r--r--gas/doc/c-s390.texi5
-rw-r--r--gas/dw2gencfi.c137
-rw-r--r--gas/dw2gencfi.h28
-rw-r--r--gas/dwarf2dbg.c69
-rw-r--r--gas/ecoff.c18
-rw-r--r--gas/ehopt.c47
-rw-r--r--gas/expr.c39
-rw-r--r--gas/expr.h10
-rw-r--r--gas/frags.c20
-rw-r--r--gas/frags.h3
-rw-r--r--gas/gen-sframe.c439
-rw-r--r--gas/ginsn.c5
-rw-r--r--gas/hash.c6
-rw-r--r--gas/hash.h26
-rw-r--r--gas/input-scrub.c27
-rw-r--r--gas/listing.c161
-rw-r--r--gas/listing.h23
-rw-r--r--gas/read.c171
-rw-r--r--gas/read.h16
-rw-r--r--gas/scfidw2gen.c2
-rw-r--r--gas/subsegs.c15
-rw-r--r--gas/symbols.c59
-rw-r--r--gas/symbols.h11
-rw-r--r--gas/testsuite/gas/aarch64/addsub-carry.d53
-rw-r--r--gas/testsuite/gas/aarch64/addsub-carry.s49
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-copy.d178
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-copy.s181
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-fp16.d1149
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-fp16.s13
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-modified-immediate.d103
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-modified-immediate.s98
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-mul-element.d373
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-mul-element.s377
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-permute.d251
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-permute.s250
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-scalar-doubling-mul.d98
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-scalar-doubling-mul.s96
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-scalar-shift-immediate.d173
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-scalar-shift-immediate.s183
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-scalar-three-same.d201
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-scalar-three-same.s213
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-scalar-two-reg-misc.d108
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-scalar-two-reg-misc.s113
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-shift-immediate.d593
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-shift-immediate.s605
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-three-same.d1205
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-three-same.s1248
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-two-reg-misc-hilo.d129
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-two-reg-misc-hilo.s127
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-two-reg-misc.d408
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-two-reg-misc.s422
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-widening-narrowing.d585
-rw-r--r--gas/testsuite/gas/aarch64/advsimd-widening-narrowing.s625
-rw-r--r--gas/testsuite/gas/aarch64/branch-cond-pseudos.d41
-rw-r--r--gas/testsuite/gas/aarch64/branch-cond-pseudos.s32
-rw-r--r--gas/testsuite/gas/aarch64/cmpbr-bad.d4
-rw-r--r--gas/testsuite/gas/aarch64/cmpbr-bad.l13
-rw-r--r--gas/testsuite/gas/aarch64/cmpbr-bad.s5
-rw-r--r--gas/testsuite/gas/aarch64/cmpbr-far.d4
-rw-r--r--gas/testsuite/gas/aarch64/cmpbr-far.l3
-rw-r--r--gas/testsuite/gas/aarch64/cmpbr-far.s13
-rw-r--r--gas/testsuite/gas/aarch64/cmpbr-pseudo-bad.d4
-rw-r--r--gas/testsuite/gas/aarch64/cmpbr-pseudo-bad.l3
-rw-r--r--gas/testsuite/gas/aarch64/cmpbr-pseudo-bad.s3
-rw-r--r--gas/testsuite/gas/aarch64/cmpbr.d967
-rw-r--r--gas/testsuite/gas/aarch64/cmpbr.s727
-rw-r--r--gas/testsuite/gas/aarch64/conditional-compare.d77
-rw-r--r--gas/testsuite/gas/aarch64/conditional-compare.s76
-rw-r--r--gas/testsuite/gas/aarch64/dgh.d11
-rw-r--r--gas/testsuite/gas/aarch64/dgh.s4
-rw-r--r--gas/testsuite/gas/aarch64/dp-general-one-source.d45
-rw-r--r--gas/testsuite/gas/aarch64/dp-general-one-source.s43
-rw-r--r--gas/testsuite/gas/aarch64/dp-general-two-source.d89
-rw-r--r--gas/testsuite/gas/aarch64/dp-general-two-source.s89
-rw-r--r--gas/testsuite/gas/aarch64/exception-generation.d28
-rw-r--r--gas/testsuite/gas/aarch64/exception-generation.s26
-rw-r--r--gas/testsuite/gas/aarch64/f8f16mm-bad.d4
-rw-r--r--gas/testsuite/gas/aarch64/f8f16mm-bad.l9
-rw-r--r--gas/testsuite/gas/aarch64/f8f16mm.d18
-rw-r--r--gas/testsuite/gas/aarch64/f8f16mm.s9
-rw-r--r--gas/testsuite/gas/aarch64/f8f16mm_sve2-bad.d4
-rw-r--r--gas/testsuite/gas/aarch64/f8f16mm_sve2-bad.l9
-rw-r--r--gas/testsuite/gas/aarch64/f8f16mm_sve2.d18
-rw-r--r--gas/testsuite/gas/aarch64/f8f16mm_sve2.s9
-rw-r--r--gas/testsuite/gas/aarch64/f8f32mm-bad.d4
-rw-r--r--gas/testsuite/gas/aarch64/f8f32mm-bad.l9
-rw-r--r--gas/testsuite/gas/aarch64/f8f32mm.d18
-rw-r--r--gas/testsuite/gas/aarch64/f8f32mm.s9
-rw-r--r--gas/testsuite/gas/aarch64/f8f32mm_sve2-bad.d4
-rw-r--r--gas/testsuite/gas/aarch64/f8f32mm_sve2-bad.l9
-rw-r--r--gas/testsuite/gas/aarch64/f8f32mm_sve2.d18
-rw-r--r--gas/testsuite/gas/aarch64/f8f32mm_sve2.s9
-rw-r--r--gas/testsuite/gas/aarch64/float-fp16.d354
-rw-r--r--gas/testsuite/gas/aarch64/float-fp16.s28
-rw-r--r--gas/testsuite/gas/aarch64/fprcvt.d176
-rw-r--r--gas/testsuite/gas/aarch64/fprcvt.s159
-rw-r--r--gas/testsuite/gas/aarch64/gpc3.d11
-rw-r--r--gas/testsuite/gas/aarch64/gpc3.s7
-rw-r--r--gas/testsuite/gas/aarch64/ldst-extend-general.d155
-rw-r--r--gas/testsuite/gas/aarch64/ldst-extend-general.s152
-rw-r--r--gas/testsuite/gas/aarch64/ldst-unpriv.d61
-rw-r--r--gas/testsuite/gas/aarch64/ldst-unpriv.s64
-rw-r--r--gas/testsuite/gas/aarch64/lsfe-bad.d4
-rw-r--r--gas/testsuite/gas/aarch64/lsfe-bad.l17
-rw-r--r--gas/testsuite/gas/aarch64/lsfe-bad.s6
-rw-r--r--gas/testsuite/gas/aarch64/lsfe.d815
-rw-r--r--gas/testsuite/gas/aarch64/lsfe.s71
-rw-r--r--gas/testsuite/gas/aarch64/mec-arch-bad.d4
-rw-r--r--gas/testsuite/gas/aarch64/mec-arch-bad.l18
-rw-r--r--gas/testsuite/gas/aarch64/mec-invalid.s2
-rw-r--r--gas/testsuite/gas/aarch64/mec.d3
-rw-r--r--gas/testsuite/gas/aarch64/mec.s4
-rw-r--r--gas/testsuite/gas/aarch64/mov-wide.d46
-rw-r--r--gas/testsuite/gas/aarch64/mov-wide.s40
-rw-r--r--gas/testsuite/gas/aarch64/occmo-memtag.d13
-rw-r--r--gas/testsuite/gas/aarch64/occmo-memtag.s4
-rw-r--r--gas/testsuite/gas/aarch64/occmo.d13
-rw-r--r--gas/testsuite/gas/aarch64/occmo.s4
-rw-r--r--gas/testsuite/gas/aarch64/original-missing-misc.d46
-rw-r--r--gas/testsuite/gas/aarch64/original-missing-misc.s42
-rw-r--r--gas/testsuite/gas/aarch64/pac_ab_key.d2
-rw-r--r--gas/testsuite/gas/aarch64/pac_compat_cfi_window_save.d2
-rw-r--r--gas/testsuite/gas/aarch64/pac_negate_ra_state.d2
-rw-r--r--gas/testsuite/gas/aarch64/rcpc3-fail.l44
-rw-r--r--gas/testsuite/gas/aarch64/rcpc3-fail.s5
-rw-r--r--gas/testsuite/gas/aarch64/rcpc3.d4
-rw-r--r--gas/testsuite/gas/aarch64/rcpc3.s4
-rw-r--r--gas/testsuite/gas/aarch64/shifted.d1558
-rw-r--r--gas/testsuite/gas/aarch64/shifted.s3
-rw-r--r--gas/testsuite/gas/aarch64/sme-5.d4
-rw-r--r--gas/testsuite/gas/aarch64/sme-5.s4
-rw-r--r--gas/testsuite/gas/aarch64/sme-f16f16-2-bad.s2
-rw-r--r--gas/testsuite/gas/aarch64/sme.d8
-rw-r--r--gas/testsuite/gas/aarch64/sme.s8
-rw-r--r--gas/testsuite/gas/aarch64/sve-b16b16-sve2-bad-2.l4
-rw-r--r--gas/testsuite/gas/aarch64/sve-bfscale-bad.d4
-rw-r--r--gas/testsuite/gas/aarch64/sve-bfscale-bad.l26
-rw-r--r--gas/testsuite/gas/aarch64/sve-bfscale-bad.s27
-rw-r--r--gas/testsuite/gas/aarch64/sve-bfscale-sme2-bad.d4
-rw-r--r--gas/testsuite/gas/aarch64/sve-bfscale-sme2-bad.l41
-rw-r--r--gas/testsuite/gas/aarch64/sve-bfscale-sme2.d66
-rw-r--r--gas/testsuite/gas/aarch64/sve-bfscale-sme2.s57
-rw-r--r--gas/testsuite/gas/aarch64/sve-bfscale-sve2.d18
-rw-r--r--gas/testsuite/gas/aarch64/sve-bfscale-sve2.s9
-rw-r--r--gas/testsuite/gas/aarch64/sve-f16f32mm-bad.d4
-rw-r--r--gas/testsuite/gas/aarch64/sve-f16f32mm-bad.l9
-rw-r--r--gas/testsuite/gas/aarch64/sve-f16f32mm.d18
-rw-r--r--gas/testsuite/gas/aarch64/sve-f16f32mm.s9
-rw-r--r--gas/testsuite/gas/aarch64/sve-ldff1-invalid.d4
-rw-r--r--gas/testsuite/gas/aarch64/sve-ldff1-invalid.l58
-rw-r--r--gas/testsuite/gas/aarch64/sve-ldff1-invalid.s35
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/armv9_3-a-sme-sysregs.d10
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/armv9_3-a-sme-sysregs.s2
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/armv9_3-a-sysregs.d21
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/armv9_3-a-sysregs.s13
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/mpam-bad.d3
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/mpam-bad.l4
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/mpam-bad.s6
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg-10-bad.d3
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg-10-bad.l3
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg-10.d12
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg-10.s2
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg-9-bad.d3
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg-9-bad.l61
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg-9-bad.s26
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg-9.d25
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg-9.s14
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg.d2
-rw-r--r--gas/testsuite/gas/aarch64/sysreg/sysreg.s2
-rw-r--r--gas/testsuite/gas/aarch64/system.d5
-rw-r--r--gas/testsuite/gas/aarch64/system.s3
-rw-r--r--gas/testsuite/gas/all/gas.exp15
-rw-r--r--gas/testsuite/gas/all/octa.d8
-rw-r--r--gas/testsuite/gas/all/octa.s10
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-aarch64-4.d2
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-common-10.d22
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-common-10.s12
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-common-11.d22
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-common-11.s12
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-common-9.d22
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-common-9.s18
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-2.d21
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-2.s4
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-1.d17
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-1.s11
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-2.d17
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-2.s11
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-3.d17
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-3.s12
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-4.d17
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-4.s6
-rw-r--r--gas/testsuite/gas/cfi-sframe/cfi-sframe.exp8
-rw-r--r--gas/testsuite/gas/cfi-sframe/common-empty-1.d2
-rw-r--r--gas/testsuite/gas/cfi-sframe/common-empty-2.d2
-rw-r--r--gas/testsuite/gas/cfi-sframe/common-empty-3.d2
-rw-r--r--gas/testsuite/gas/cfi/cfi-sparc-2.d12
-rw-r--r--gas/testsuite/gas/cfi/cfi-sparc-2.s16
-rw-r--r--gas/testsuite/gas/cfi/cfi.exp6
-rw-r--r--gas/testsuite/gas/cfi/listing.l39
-rw-r--r--gas/testsuite/gas/cfi/listing.s33
-rw-r--r--gas/testsuite/gas/coff/coff.exp40
-rw-r--r--gas/testsuite/gas/coff/func1.d16
-rw-r--r--gas/testsuite/gas/coff/func1.s22
-rw-r--r--gas/testsuite/gas/coff/func2.d16
-rw-r--r--gas/testsuite/gas/coff/func2.s34
-rw-r--r--gas/testsuite/gas/coff/func3.d16
-rw-r--r--gas/testsuite/gas/coff/func3.s33
-rw-r--r--gas/testsuite/gas/coff/func4.d18
-rw-r--r--gas/testsuite/gas/coff/func4.s41
-rw-r--r--gas/testsuite/gas/coff/tag.d (renamed from gas/testsuite/gas/all/cofftag.d)2
-rw-r--r--gas/testsuite/gas/coff/tag.s (renamed from gas/testsuite/gas/all/cofftag.s)2
-rw-r--r--gas/testsuite/gas/epiphany/allinsn.exp1
-rw-r--r--gas/testsuite/gas/epiphany/nop.d16
-rw-r--r--gas/testsuite/gas/epiphany/nop.s5
-rw-r--r--gas/testsuite/gas/i386/align-branch-6.d2
-rw-r--r--gas/testsuite/gas/i386/arch-4.d2
-rw-r--r--gas/testsuite/gas/i386/arch-4.s4
-rw-r--r--gas/testsuite/gas/i386/avx10_2-256-cvt-intel.d1
-rw-r--r--gas/testsuite/gas/i386/avx10_2-256-cvt.d1
-rw-r--r--gas/testsuite/gas/i386/avx10_2-256-cvt.s2
-rw-r--r--gas/testsuite/gas/i386/avx10_2-256-miscs-intel.d3
-rw-r--r--gas/testsuite/gas/i386/avx10_2-256-miscs.d3
-rw-r--r--gas/testsuite/gas/i386/avx10_2-256-miscs.s6
-rw-r--r--gas/testsuite/gas/i386/avx10_2-256-satcvt-intel.d16
-rw-r--r--gas/testsuite/gas/i386/avx10_2-256-satcvt.d16
-rw-r--r--gas/testsuite/gas/i386/avx10_2-256-satcvt.s16
-rw-r--r--gas/testsuite/gas/i386/avx10_2-rounding-intel.d452
-rw-r--r--gas/testsuite/gas/i386/avx10_2-rounding-inval.l35
-rw-r--r--gas/testsuite/gas/i386/avx10_2-rounding-inval.s39
-rw-r--r--gas/testsuite/gas/i386/avx10_2-rounding.d450
-rw-r--r--gas/testsuite/gas/i386/avx10_2-rounding.s351
-rw-r--r--gas/testsuite/gas/i386/evex.d2
-rw-r--r--gas/testsuite/gas/i386/evex.s2
-rw-r--r--gas/testsuite/gas/i386/i386.exp9
-rw-r--r--gas/testsuite/gas/i386/insn-64.d9
-rw-r--r--gas/testsuite/gas/i386/insn-64.s21
-rw-r--r--gas/testsuite/gas/i386/inval-type.l13
-rw-r--r--gas/testsuite/gas/i386/inval-type.s17
-rw-r--r--gas/testsuite/gas/i386/nop-1-suffix.d6
-rw-r--r--gas/testsuite/gas/i386/nop-1.d6
-rw-r--r--gas/testsuite/gas/i386/nop-1.l18
-rw-r--r--gas/testsuite/gas/i386/nop-2.d8
-rw-r--r--gas/testsuite/gas/i386/nop-4.d2
-rw-r--r--gas/testsuite/gas/i386/nop-5.d2
-rw-r--r--gas/testsuite/gas/i386/nop-7.l6
-rw-r--r--gas/testsuite/gas/i386/nop-7.s6
-rw-r--r--gas/testsuite/gas/i386/nops-1-core2.d216
-rw-r--r--gas/testsuite/gas/i386/nops-1.d222
-rw-r--r--gas/testsuite/gas/i386/nops-1.s210
-rw-r--r--gas/testsuite/gas/i386/nops-10.d2
-rw-r--r--gas/testsuite/gas/i386/nops-2.d224
-rw-r--r--gas/testsuite/gas/i386/nops-2.s210
-rw-r--r--gas/testsuite/gas/i386/nops-3.d6
-rw-r--r--gas/testsuite/gas/i386/nops-3.s2
-rw-r--r--gas/testsuite/gas/i386/nops-4.d298
-rw-r--r--gas/testsuite/gas/i386/nops-4.s272
-rw-r--r--gas/testsuite/gas/i386/nops-4a-i686.d300
-rw-r--r--gas/testsuite/gas/i386/nops-5.d28
-rw-r--r--gas/testsuite/gas/i386/nops-6.d4
-rw-r--r--gas/testsuite/gas/i386/nops-7.d10
-rw-r--r--gas/testsuite/gas/i386/nops-9.d8
-rw-r--r--gas/testsuite/gas/i386/nops16-1.d522
-rw-r--r--gas/testsuite/gas/i386/nops16-1.s482
-rw-r--r--gas/testsuite/gas/i386/padlockxmodx.d13
-rw-r--r--gas/testsuite/gas/i386/padlockxmodx.s9
-rw-r--r--gas/testsuite/gas/i386/pr32721.l7
-rw-r--r--gas/testsuite/gas/i386/pr32721.s7
-rw-r--r--gas/testsuite/gas/i386/property-6.d2
-rw-r--r--gas/testsuite/gas/i386/pseudos.d25
-rw-r--r--gas/testsuite/gas/i386/pseudos.s28
-rw-r--r--gas/testsuite/gas/i386/solaris/x86-64-nop-5.d2
-rw-r--r--gas/testsuite/gas/i386/x86-64-align-branch-6.d2
-rw-r--r--gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.d2
-rw-r--r--gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s13
-rw-r--r--gas/testsuite/gas/i386/x86-64-apx-pushp-popp-inval.l4
-rw-r--r--gas/testsuite/gas/i386/x86-64-avx10_2-256-cvt-intel.d1
-rw-r--r--gas/testsuite/gas/i386/x86-64-avx10_2-256-cvt.d1
-rw-r--r--gas/testsuite/gas/i386/x86-64-avx10_2-256-cvt.s2
-rw-r--r--gas/testsuite/gas/i386/x86-64-avx10_2-256-miscs-intel.d3
-rw-r--r--gas/testsuite/gas/i386/x86-64-avx10_2-256-miscs.d3
-rw-r--r--gas/testsuite/gas/i386/x86-64-avx10_2-256-miscs.s6
-rw-r--r--gas/testsuite/gas/i386/x86-64-avx10_2-256-satcvt-intel.d16
-rw-r--r--gas/testsuite/gas/i386/x86-64-avx10_2-256-satcvt.d16
-rw-r--r--gas/testsuite/gas/i386/x86-64-avx10_2-256-satcvt.s16
-rw-r--r--gas/testsuite/gas/i386/x86-64-avx10_2-rounding-intel.d452
-rw-r--r--gas/testsuite/gas/i386/x86-64-avx10_2-rounding.d450
-rw-r--r--gas/testsuite/gas/i386/x86-64-avx10_2-rounding.s350
-rw-r--r--gas/testsuite/gas/i386/x86-64-evex.d2
-rw-r--r--gas/testsuite/gas/i386/x86-64-lkgs-inval.l4
-rw-r--r--gas/testsuite/gas/i386/x86-64-nop-1.d6
-rw-r--r--gas/testsuite/gas/i386/x86-64-nop-5.d2
-rw-r--r--gas/testsuite/gas/i386/x86-64-nops-1-core2.d210
-rw-r--r--gas/testsuite/gas/i386/x86-64-nops-1-pentium.d220
-rw-r--r--gas/testsuite/gas/i386/x86-64-nops-1.d216
-rw-r--r--gas/testsuite/gas/i386/x86-64-nops-2.d218
-rw-r--r--gas/testsuite/gas/i386/x86-64-nops-3.d6
-rw-r--r--gas/testsuite/gas/i386/x86-64-nops-4-core2.d298
-rw-r--r--gas/testsuite/gas/i386/x86-64-nops-4.d300
-rw-r--r--gas/testsuite/gas/i386/x86-64-nops-5.d28
-rw-r--r--gas/testsuite/gas/i386/x86-64-nops-6.d2
-rw-r--r--gas/testsuite/gas/i386/x86-64-nops-7.d10
-rw-r--r--gas/testsuite/gas/i386/x86-64-pseudos.d32
-rw-r--r--gas/testsuite/gas/i386/x86-64-pseudos.s34
-rw-r--r--gas/testsuite/gas/i386/x86-64-reg-bad.l21
-rw-r--r--gas/testsuite/gas/i386/x86-64-reg-bad.s11
-rw-r--r--gas/testsuite/gas/i386/x86-64-reg-intel.d5
-rw-r--r--gas/testsuite/gas/i386/x86-64-reg.d5
-rw-r--r--gas/testsuite/gas/i386/x86-64-reg.s4
-rw-r--r--gas/testsuite/gas/i386/x86-64.exp3
-rw-r--r--gas/testsuite/gas/kvx/nop-align.d4
-rw-r--r--gas/testsuite/gas/loongarch/div_zero.l4
-rw-r--r--gas/testsuite/gas/loongarch/div_zero.s2
-rw-r--r--gas/testsuite/gas/loongarch/fix_op.d3
-rw-r--r--gas/testsuite/gas/loongarch/fix_op.s5
-rw-r--r--gas/testsuite/gas/loongarch/insn_alias_32.d3
-rw-r--r--gas/testsuite/gas/loongarch/insn_alias_32.s5
-rw-r--r--gas/testsuite/gas/loongarch/loongarch.exp2
-rw-r--r--gas/testsuite/gas/loongarch/negative_right_shift.d40
-rw-r--r--gas/testsuite/gas/loongarch/negative_right_shift.l13
-rw-r--r--gas/testsuite/gas/loongarch/negative_right_shift.s32
-rw-r--r--gas/testsuite/gas/loongarch/relax_align.d6
-rw-r--r--gas/testsuite/gas/loongarch/relax_align.l3
-rw-r--r--gas/testsuite/gas/loongarch/relax_align.s6
-rw-r--r--gas/testsuite/gas/mips/fpr-names-eabi32.d42
-rw-r--r--gas/testsuite/gas/mips/fpr-names-eabi64.d42
-rw-r--r--gas/testsuite/gas/mips/fpr-names-o64.d42
-rw-r--r--gas/testsuite/gas/mips/gpr-names-eabi32.d4
-rw-r--r--gas/testsuite/gas/mips/gpr-names-eabi64.d4
-rw-r--r--gas/testsuite/gas/mips/gpr-names-n32.d40
-rw-r--r--gas/testsuite/gas/mips/gpr-names-o64.d4
-rw-r--r--gas/testsuite/gas/mips/mips.exp31
-rw-r--r--gas/testsuite/gas/mips/mips16-insn-length-bad.d3
-rw-r--r--gas/testsuite/gas/mips/mips16-insn-length-bad.l11
-rw-r--r--gas/testsuite/gas/mips/mips16-insn-length-bad.s16
-rw-r--r--gas/testsuite/gas/msp430/bad.l21
-rw-r--r--gas/testsuite/gas/msp430/bad.s14
-rw-r--r--gas/testsuite/gas/msp430/msp430x.d4
-rw-r--r--gas/testsuite/gas/msp430/msp430x.s6
-rw-r--r--gas/testsuite/gas/msp430/opcode.d1
-rw-r--r--gas/testsuite/gas/msp430/opcode.s2
-rw-r--r--gas/testsuite/gas/ppc/future.d35
-rw-r--r--gas/testsuite/gas/ppc/future.s18
-rw-r--r--gas/testsuite/gas/riscv/attribute-15.d8
-rw-r--r--gas/testsuite/gas/riscv/attribute-16.d6
-rw-r--r--gas/testsuite/gas/riscv/attribute-17.d6
-rw-r--r--gas/testsuite/gas/riscv/attribute-18.d6
-rw-r--r--gas/testsuite/gas/riscv/attribute-19.d6
-rw-r--r--gas/testsuite/gas/riscv/attribute-20.d6
-rw-r--r--gas/testsuite/gas/riscv/bfloat16-be.d10
-rw-r--r--gas/testsuite/gas/riscv/bfloat16-le.d10
-rw-r--r--gas/testsuite/gas/riscv/bfloat16.s21
-rw-r--r--gas/testsuite/gas/riscv/csr-version-1p10.d8
-rw-r--r--gas/testsuite/gas/riscv/csr-version-1p10.l24
-rw-r--r--gas/testsuite/gas/riscv/csr-version-1p11.d8
-rw-r--r--gas/testsuite/gas/riscv/csr-version-1p11.l24
-rw-r--r--gas/testsuite/gas/riscv/csr-version-1p12.d8
-rw-r--r--gas/testsuite/gas/riscv/csr-version-1p12.l24
-rw-r--r--gas/testsuite/gas/riscv/csr-version-1p13.d943
-rw-r--r--gas/testsuite/gas/riscv/csr-version-1p13.l1499
-rw-r--r--gas/testsuite/gas/riscv/csr.s10
-rw-r--r--gas/testsuite/gas/riscv/dis-data.d134
-rw-r--r--gas/testsuite/gas/riscv/dis-data.s48
-rw-r--r--gas/testsuite/gas/riscv/dis-partial-insn-word.d2
-rw-r--r--gas/testsuite/gas/riscv/imply.d6
-rw-r--r--gas/testsuite/gas/riscv/imply.s8
-rw-r--r--gas/testsuite/gas/riscv/insn-dwarf.d3
-rw-r--r--gas/testsuite/gas/riscv/insn-na.d3
-rw-r--r--gas/testsuite/gas/riscv/insn.d3
-rw-r--r--gas/testsuite/gas/riscv/insn.s2
-rw-r--r--gas/testsuite/gas/riscv/l-s-macro-zilsd.d53
-rw-r--r--gas/testsuite/gas/riscv/l-s-macro.d2
-rw-r--r--gas/testsuite/gas/riscv/l-s-macro.s2
-rw-r--r--gas/testsuite/gas/riscv/mapping-symbols.d7
-rw-r--r--gas/testsuite/gas/riscv/mapping-x.d13
-rw-r--r--gas/testsuite/gas/riscv/mapping-x.s6
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv32-pointer-masking.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rv32-pointer-masking.l6
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rvi20u64v.d3
-rw-r--r--gas/testsuite/gas/riscv/march-fail-rvi20u64v.l1
-rw-r--r--gas/testsuite/gas/riscv/march-help.l18
-rw-r--r--gas/testsuite/gas/riscv/march-imply-zce-f-32.d6
-rw-r--r--gas/testsuite/gas/riscv/march-imply-zce-f-64.d6
-rw-r--r--gas/testsuite/gas/riscv/march-imply-zce.d6
-rw-r--r--gas/testsuite/gas/riscv/mips-insns.d31
-rw-r--r--gas/testsuite/gas/riscv/mips-insns.s42
-rw-r--r--gas/testsuite/gas/riscv/no-relax-branch-offset-fail.d2
-rw-r--r--gas/testsuite/gas/riscv/no-relax-branch-offset-fail.l8
-rw-r--r--gas/testsuite/gas/riscv/no-relax-branch-offset-fail.s20
-rw-r--r--gas/testsuite/gas/riscv/no-relax-branch-offset-ok.d17
-rw-r--r--gas/testsuite/gas/riscv/no-relax-branch-offset-ok.s17
-rw-r--r--gas/testsuite/gas/riscv/no-relax-pcrel-offset-fail-64.d2
-rw-r--r--gas/testsuite/gas/riscv/no-relax-pcrel-offset-fail-64.l7
-rw-r--r--gas/testsuite/gas/riscv/no-relax-pcrel-offset-fail-64.s31
-rw-r--r--gas/testsuite/gas/riscv/no-relax-pcrel-offset-fail-not-32.d22
-rw-r--r--gas/testsuite/gas/riscv/no-relax-pcrel-offset-ok.d21
-rw-r--r--gas/testsuite/gas/riscv/no-relax-pcrel-offset-ok.s29
-rw-r--r--gas/testsuite/gas/riscv/option-arch-fail.l2
-rw-r--r--gas/testsuite/gas/riscv/smrnmi.d10
-rw-r--r--gas/testsuite/gas/riscv/smrnmi.s1
-rw-r--r--gas/testsuite/gas/riscv/x-thead-vdot.d30
-rw-r--r--gas/testsuite/gas/riscv/x-thead-vdot.s31
-rw-r--r--gas/testsuite/gas/riscv/x-thead-vector-fail.d2
-rw-r--r--gas/testsuite/gas/riscv/x-thead-vector-fail.l2
-rw-r--r--gas/testsuite/gas/riscv/zicfisslp-64.d8
-rw-r--r--gas/testsuite/gas/riscv/zicfisslp-64.s8
-rw-r--r--gas/testsuite/gas/riscv/zilsd-zclsd-fail.d3
-rw-r--r--gas/testsuite/gas/riscv/zilsd-zclsd-fail.l15
-rw-r--r--gas/testsuite/gas/riscv/zilsd-zclsd-fail.s15
-rw-r--r--gas/testsuite/gas/riscv/zilsd-zclsd.d29
-rw-r--r--gas/testsuite/gas/riscv/zilsd-zclsd.s20
-rw-r--r--gas/testsuite/gas/score/pr32700.d14
-rw-r--r--gas/testsuite/gas/score/pr32700.s2
-rw-r--r--gas/testsuite/gas/score/relax.exp2
-rw-r--r--gas/write.c69
-rw-r--r--gdb/.dir-locals.el2
-rw-r--r--gdb/MAINTAINERS9
-rw-r--r--gdb/Makefile.in102
-rw-r--r--gdb/NEWS194
-rw-r--r--gdb/README14
-rw-r--r--gdb/aarch32-linux-nat.c2
-rw-r--r--gdb/aarch32-linux-nat.h2
-rw-r--r--gdb/aarch32-tdep.c2
-rw-r--r--gdb/aarch32-tdep.h2
-rw-r--r--gdb/aarch64-fbsd-nat.c2
-rw-r--r--gdb/aarch64-fbsd-tdep.c2
-rw-r--r--gdb/aarch64-fbsd-tdep.h2
-rw-r--r--gdb/aarch64-linux-nat.c2
-rw-r--r--gdb/aarch64-linux-tdep.c94
-rw-r--r--gdb/aarch64-linux-tdep.h2
-rw-r--r--gdb/aarch64-nat.c2
-rw-r--r--gdb/aarch64-nat.h2
-rw-r--r--gdb/aarch64-newlib-tdep.c2
-rw-r--r--gdb/aarch64-ravenscar-thread.c2
-rw-r--r--gdb/aarch64-ravenscar-thread.h2
-rw-r--r--gdb/aarch64-tdep.c31
-rw-r--r--gdb/aarch64-tdep.h2
-rw-r--r--gdb/acx_configure_dir.m42
-rw-r--r--gdb/ada-casefold.h2
-rw-r--r--gdb/ada-exp.h2
-rw-r--r--gdb/ada-exp.y6
-rw-r--r--gdb/ada-lang.c236
-rw-r--r--gdb/ada-lang.h2
-rw-r--r--gdb/ada-lex.l2
-rw-r--r--gdb/ada-tasks.c2
-rw-r--r--gdb/ada-typeprint.c4
-rwxr-xr-xgdb/ada-unicode.py2
-rw-r--r--gdb/ada-valprint.c2
-rw-r--r--gdb/ada-varobj.c24
-rw-r--r--gdb/addrmap.c142
-rw-r--r--gdb/addrmap.h31
-rw-r--r--gdb/agent.c2
-rw-r--r--gdb/aix-thread.c17
-rw-r--r--gdb/alloc.c2
-rw-r--r--gdb/alpha-bsd-nat.c2
-rw-r--r--gdb/alpha-bsd-tdep.c2
-rw-r--r--gdb/alpha-bsd-tdep.h2
-rw-r--r--gdb/alpha-linux-nat.c2
-rw-r--r--gdb/alpha-linux-tdep.c2
-rw-r--r--gdb/alpha-mdebug-tdep.c2
-rw-r--r--gdb/alpha-netbsd-tdep.c2
-rw-r--r--gdb/alpha-obsd-tdep.c2
-rw-r--r--gdb/alpha-tdep.c4
-rw-r--r--gdb/alpha-tdep.h2
-rw-r--r--gdb/amd-dbgapi-target.c277
-rw-r--r--gdb/amd-dbgapi-target.h2
-rw-r--r--gdb/amd64-bsd-nat.c2
-rw-r--r--gdb/amd64-bsd-nat.h2
-rw-r--r--gdb/amd64-darwin-tdep.c2
-rw-r--r--gdb/amd64-darwin-tdep.h2
-rw-r--r--gdb/amd64-dicos-tdep.c2
-rw-r--r--gdb/amd64-fbsd-nat.c6
-rw-r--r--gdb/amd64-fbsd-tdep.c2
-rw-r--r--gdb/amd64-fbsd-tdep.h2
-rw-r--r--gdb/amd64-gnu-tdep.c231
-rw-r--r--gdb/amd64-linux-nat.c2
-rw-r--r--gdb/amd64-linux-tdep.c46
-rw-r--r--gdb/amd64-linux-tdep.h4
-rw-r--r--gdb/amd64-nat.c2
-rw-r--r--gdb/amd64-nat.h2
-rw-r--r--gdb/amd64-netbsd-nat.c2
-rw-r--r--gdb/amd64-netbsd-tdep.c2
-rw-r--r--gdb/amd64-obsd-nat.c2
-rw-r--r--gdb/amd64-obsd-tdep.c2
-rw-r--r--gdb/amd64-ravenscar-thread.c2
-rw-r--r--gdb/amd64-ravenscar-thread.h2
-rw-r--r--gdb/amd64-sol2-tdep.c2
-rw-r--r--gdb/amd64-tdep.c500
-rw-r--r--gdb/amd64-tdep.h2
-rw-r--r--gdb/amd64-windows-nat.c2
-rw-r--r--gdb/amd64-windows-tdep.c2
-rw-r--r--gdb/amdgpu-tdep.c2
-rw-r--r--gdb/amdgpu-tdep.h2
-rw-r--r--gdb/annotate.c2
-rw-r--r--gdb/annotate.h2
-rw-r--r--gdb/arc-linux-nat.c2
-rw-r--r--gdb/arc-linux-tdep.c2
-rw-r--r--gdb/arc-linux-tdep.h2
-rw-r--r--gdb/arc-newlib-tdep.c2
-rw-r--r--gdb/arc-tdep.c2
-rw-r--r--gdb/arc-tdep.h2
-rw-r--r--gdb/arch-utils.c2
-rw-r--r--gdb/arch-utils.h2
-rw-r--r--gdb/arch/aarch32.c2
-rw-r--r--gdb/arch/aarch32.h2
-rw-r--r--gdb/arch/aarch64-insn.c2
-rw-r--r--gdb/arch/aarch64-insn.h2
-rw-r--r--gdb/arch/aarch64-mte-linux.c2
-rw-r--r--gdb/arch/aarch64-mte-linux.h2
-rw-r--r--gdb/arch/aarch64-mte.c2
-rw-r--r--gdb/arch/aarch64-mte.h2
-rw-r--r--gdb/arch/aarch64-scalable-linux.c2
-rw-r--r--gdb/arch/aarch64-scalable-linux.h2
-rw-r--r--gdb/arch/aarch64.c2
-rw-r--r--gdb/arch/aarch64.h2
-rw-r--r--gdb/arch/amd64-linux-tdesc.c2
-rw-r--r--gdb/arch/amd64-linux-tdesc.h2
-rw-r--r--gdb/arch/amd64.c2
-rw-r--r--gdb/arch/amd64.h2
-rw-r--r--gdb/arch/arc.c2
-rw-r--r--gdb/arch/arc.h2
-rw-r--r--gdb/arch/arm-get-next-pcs.c143
-rw-r--r--gdb/arch/arm-get-next-pcs.h2
-rw-r--r--gdb/arch/arm-linux.c2
-rw-r--r--gdb/arch/arm-linux.h2
-rw-r--r--gdb/arch/arm.c4
-rw-r--r--gdb/arch/arm.h19
-rw-r--r--gdb/arch/csky.c2
-rw-r--r--gdb/arch/csky.h2
-rw-r--r--gdb/arch/i386-linux-tdesc.c2
-rw-r--r--gdb/arch/i386-linux-tdesc.h2
-rw-r--r--gdb/arch/i386.c2
-rw-r--r--gdb/arch/i386.h2
-rw-r--r--gdb/arch/loongarch-insn.h8
-rw-r--r--gdb/arch/loongarch-syscall.h8
-rw-r--r--gdb/arch/loongarch.c2
-rw-r--r--gdb/arch/loongarch.h2
-rw-r--r--gdb/arch/ppc-linux-common.c2
-rw-r--r--gdb/arch/ppc-linux-common.h2
-rw-r--r--gdb/arch/ppc-linux-tdesc.h2
-rw-r--r--gdb/arch/riscv.c2
-rw-r--r--gdb/arch/riscv.h2
-rw-r--r--gdb/arch/tic6x.c2
-rw-r--r--gdb/arch/tic6x.h2
-rw-r--r--gdb/arch/x86-linux-tdesc-features.c2
-rw-r--r--gdb/arch/x86-linux-tdesc-features.h2
-rw-r--r--gdb/arch/x86-linux-tdesc.h2
-rw-r--r--gdb/arch/xtensa.h2
-rw-r--r--gdb/arm-bsd-tdep.c2
-rw-r--r--gdb/arm-fbsd-nat.c2
-rw-r--r--gdb/arm-fbsd-tdep.c2
-rw-r--r--gdb/arm-fbsd-tdep.h2
-rw-r--r--gdb/arm-linux-nat.c4
-rw-r--r--gdb/arm-linux-tdep.c8
-rw-r--r--gdb/arm-linux-tdep.h2
-rw-r--r--gdb/arm-netbsd-nat.c2
-rw-r--r--gdb/arm-netbsd-tdep.c2
-rw-r--r--gdb/arm-netbsd-tdep.h2
-rw-r--r--gdb/arm-none-tdep.c2
-rw-r--r--gdb/arm-obsd-tdep.c2
-rw-r--r--gdb/arm-pikeos-tdep.c19
-rw-r--r--gdb/arm-tdep.c16
-rw-r--r--gdb/arm-tdep.h2
-rw-r--r--gdb/arm-wince-tdep.c2
-rw-r--r--gdb/async-event.c2
-rw-r--r--gdb/async-event.h2
-rw-r--r--gdb/auto-load.c82
-rw-r--r--gdb/auto-load.h2
-rw-r--r--gdb/auxv.c2
-rw-r--r--gdb/auxv.h2
-rw-r--r--gdb/avr-tdep.c2
-rw-r--r--gdb/ax-gdb.c2
-rw-r--r--gdb/ax-gdb.h2
-rw-r--r--gdb/ax-general.c2
-rw-r--r--gdb/ax.h2
-rw-r--r--gdb/ax_cxx_compile_stdcxx.m42
-rw-r--r--gdb/bcache.c4
-rw-r--r--gdb/bcache.h4
-rw-r--r--gdb/bfd-target.c2
-rw-r--r--gdb/bfd-target.h2
-rw-r--r--gdb/bfin-linux-tdep.c2
-rw-r--r--gdb/bfin-tdep.c4
-rw-r--r--gdb/bfin-tdep.h2
-rw-r--r--gdb/block.c2
-rw-r--r--gdb/block.h2
-rw-r--r--gdb/blockframe.c2
-rw-r--r--gdb/bpf-tdep.c4
-rw-r--r--gdb/break-catch-exec.c2
-rw-r--r--gdb/break-catch-fork.c2
-rw-r--r--gdb/break-catch-load.c6
-rw-r--r--gdb/break-catch-sig.c2
-rw-r--r--gdb/break-catch-syscall.c4
-rw-r--r--gdb/break-catch-throw.c2
-rw-r--r--gdb/break-cond-parse.c17
-rw-r--r--gdb/break-cond-parse.h2
-rw-r--r--gdb/breakpoint.c228
-rw-r--r--gdb/breakpoint.h8
-rw-r--r--gdb/bsd-kvm.c2
-rw-r--r--gdb/bsd-kvm.h2
-rw-r--r--gdb/bsd-uthread.c16
-rw-r--r--gdb/bsd-uthread.h2
-rw-r--r--gdb/bt-utils.c43
-rw-r--r--gdb/bt-utils.h7
-rw-r--r--gdb/btrace.c16
-rw-r--r--gdb/btrace.h2
-rw-r--r--gdb/build-id.c10
-rw-r--r--gdb/build-id.h2
-rw-r--r--gdb/buildsym-legacy.c2
-rw-r--r--gdb/buildsym-legacy.h2
-rw-r--r--gdb/buildsym.c2
-rw-r--r--gdb/buildsym.h6
-rw-r--r--gdb/c-exp.h2
-rw-r--r--gdb/c-exp.y12
-rw-r--r--gdb/c-lang.c34
-rw-r--r--gdb/c-lang.h40
-rw-r--r--gdb/c-support.h2
-rw-r--r--gdb/c-typeprint.c2
-rw-r--r--gdb/c-valprint.c2
-rw-r--r--gdb/c-varobj.c2
-rw-r--r--gdb/cgen-remap.h2
-rw-r--r--gdb/charset-list.h2
-rw-r--r--gdb/charset.c2
-rw-r--r--gdb/charset.h2
-rwxr-xr-xgdb/check-include-guards.py21
-rw-r--r--gdb/cli-out.c2
-rw-r--r--gdb/cli-out.h2
-rw-r--r--gdb/cli/cli-cmds.c21
-rw-r--r--gdb/cli/cli-cmds.h2
-rw-r--r--gdb/cli/cli-decode.c62
-rw-r--r--gdb/cli/cli-decode.h4
-rw-r--r--gdb/cli/cli-dump.c4
-rw-r--r--gdb/cli/cli-interp.c2
-rw-r--r--gdb/cli/cli-interp.h2
-rw-r--r--gdb/cli/cli-logging.c2
-rw-r--r--gdb/cli/cli-option.c2
-rw-r--r--gdb/cli/cli-option.h4
-rw-r--r--gdb/cli/cli-script.c69
-rw-r--r--gdb/cli/cli-script.h18
-rw-r--r--gdb/cli/cli-setshow.c2
-rw-r--r--gdb/cli/cli-setshow.h2
-rw-r--r--gdb/cli/cli-style.c220
-rw-r--r--gdb/cli/cli-style.h50
-rw-r--r--gdb/cli/cli-utils.c2
-rw-r--r--gdb/cli/cli-utils.h4
-rw-r--r--gdb/coff-pe-read.c2
-rw-r--r--gdb/coff-pe-read.h2
-rw-r--r--gdb/coffread.c5
-rw-r--r--gdb/command.h4
-rw-r--r--gdb/compile/compile-c-support.c10
-rw-r--r--gdb/compile/compile-c-symbols.c2
-rw-r--r--gdb/compile/compile-c-types.c2
-rw-r--r--gdb/compile/compile-c.h2
-rw-r--r--gdb/compile/compile-cplus-symbols.c2
-rw-r--r--gdb/compile/compile-cplus-types.c2
-rw-r--r--gdb/compile/compile-cplus.h2
-rw-r--r--gdb/compile/compile-internal.h41
-rw-r--r--gdb/compile/compile-loc2c.c8
-rw-r--r--gdb/compile/compile-object-load.c29
-rw-r--r--gdb/compile/compile-object-load.h2
-rw-r--r--gdb/compile/compile-object-run.c2
-rw-r--r--gdb/compile/compile-object-run.h2
-rw-r--r--gdb/compile/compile.c83
-rw-r--r--gdb/compile/compile.h8
-rw-r--r--gdb/compile/gcc-c-plugin.h2
-rw-r--r--gdb/compile/gcc-cp-plugin.h2
-rw-r--r--gdb/complaints.c10
-rw-r--r--gdb/complaints.h6
-rw-r--r--gdb/completer.c4
-rw-r--r--gdb/completer.h4
-rw-r--r--gdb/config.in18
-rw-r--r--gdb/config/djgpp/README2
-rw-r--r--gdb/config/djgpp/djcheck.sh2
-rw-r--r--gdb/config/djgpp/djconfig.sh4
-rw-r--r--gdb/config/djgpp/langinfo.h8
-rw-r--r--gdb/config/djgpp/nl_types.h8
-rw-r--r--gdb/config/i386/nm-x86-gnu.h (renamed from gdb/config/i386/nm-i386gnu.h)15
-rw-r--r--gdb/config/i386/x86-gnu.mn (renamed from gdb/config/i386/i386gnu.mn)0
-rw-r--r--gdb/config/nm-linux.h2
-rw-r--r--gdb/config/sparc/nm-sol2.h8
-rwxr-xr-xgdb/configure245
-rw-r--r--gdb/configure.ac84
-rw-r--r--gdb/configure.host1
-rw-r--r--gdb/configure.nat29
-rw-r--r--gdb/configure.tgt28
-rw-r--r--gdb/contrib/ari/create-web-ari-in-src.sh4
-rwxr-xr-xgdb/contrib/ari/gdb_ari.sh6
-rw-r--r--gdb/contrib/ari/gdb_find.sh2
-rw-r--r--gdb/contrib/ari/update-web-ari.sh8
-rwxr-xr-xgdb/contrib/cc-with-tweaks.sh7
-rw-r--r--gdb/contrib/codespell-dictionary.txt1
-rw-r--r--gdb/contrib/codespell-ignore-words.txt3
-rwxr-xr-xgdb/contrib/codespell-log.sh95
-rw-r--r--gdb/contrib/expect-read1.c2
-rwxr-xr-xgdb/contrib/expect-read1.sh2
-rwxr-xr-xgdb/contrib/gdb-add-index.sh67
-rwxr-xr-xgdb/contrib/license-check-new-files.sh149
-rw-r--r--gdb/contrib/setup.cfg19
-rwxr-xr-xgdb/contrib/spellcheck.sh536
-rw-r--r--gdb/contrib/test_pubnames_and_indexes.py2
-rwxr-xr-xgdb/contrib/words.sh2
-rwxr-xr-xgdb/copyright.py287
-rw-r--r--gdb/corefile.c2
-rw-r--r--gdb/corelow.c69
-rw-r--r--gdb/cp-abi.c2
-rw-r--r--gdb/cp-abi.h2
-rw-r--r--gdb/cp-name-parser.y70
-rw-r--r--gdb/cp-namespace.c14
-rw-r--r--gdb/cp-support.c21
-rw-r--r--gdb/cp-support.h6
-rw-r--r--gdb/cp-valprint.c4
-rw-r--r--gdb/cris-linux-tdep.c2
-rw-r--r--gdb/cris-tdep.c6
-rw-r--r--gdb/cris-tdep.h2
-rw-r--r--gdb/csky-linux-tdep.c2
-rw-r--r--gdb/csky-tdep.c6
-rw-r--r--gdb/csky-tdep.h2
-rw-r--r--gdb/ctfread.c2
-rw-r--r--gdb/ctfread.h2
-rw-r--r--gdb/d-exp.y2
-rw-r--r--gdb/d-lang.c2
-rw-r--r--gdb/d-lang.h2
-rw-r--r--gdb/d-namespace.c2
-rw-r--r--gdb/d-valprint.c2
-rw-r--r--gdb/darwin-nat-info.c2
-rw-r--r--gdb/darwin-nat.c4
-rw-r--r--gdb/darwin-nat.h2
-rw-r--r--gdb/data-directory/Makefile.in3
-rw-r--r--gdb/dbxread.c23
-rw-r--r--gdb/dcache.c2
-rw-r--r--gdb/dcache.h2
-rw-r--r--gdb/debug.c2
-rw-r--r--gdb/debuginfod-support.c2
-rw-r--r--gdb/debuginfod-support.h2
-rw-r--r--gdb/defs.h2
-rw-r--r--gdb/dicos-tdep.c43
-rw-r--r--gdb/dicos-tdep.h2
-rw-r--r--gdb/dictionary.c31
-rw-r--r--gdb/dictionary.h2
-rw-r--r--gdb/disable-implicit-rules.mk2
-rw-r--r--gdb/disasm-flags.h2
-rw-r--r--gdb/disasm-selftests.c93
-rw-r--r--gdb/disasm-selftests.h32
-rw-r--r--gdb/disasm.c2
-rw-r--r--gdb/disasm.h2
-rw-r--r--gdb/displaced-stepping.c45
-rw-r--r--gdb/displaced-stepping.h69
-rw-r--r--gdb/doc/Doxyfile-base.in2
-rw-r--r--gdb/doc/Doxyfile-gdb-api.in2
-rw-r--r--gdb/doc/Doxyfile-gdb-xref.in2
-rw-r--r--gdb/doc/Doxyfile-gdbserver.in2
-rw-r--r--gdb/doc/Makefile.in2
-rw-r--r--gdb/doc/agentexpr.texi2
-rw-r--r--gdb/doc/all-cfg.texi2
-rw-r--r--gdb/doc/annotate.texinfo6
-rw-r--r--gdb/doc/doxy-index.in2
-rw-r--r--gdb/doc/gdb.texinfo487
-rw-r--r--gdb/doc/guile.texi21
-rw-r--r--gdb/doc/python.texi174
-rw-r--r--gdb/doc/refcard.tex6
-rw-r--r--gdb/doc/stabs.texinfo2
-rw-r--r--gdb/dtrace-probe.c4
-rw-r--r--gdb/dummy-frame.c2
-rw-r--r--gdb/dummy-frame.h2
-rw-r--r--gdb/dwarf2/abbrev-table-cache.c2
-rw-r--r--gdb/dwarf2/abbrev-table-cache.h5
-rw-r--r--gdb/dwarf2/abbrev.c2
-rw-r--r--gdb/dwarf2/abbrev.h4
-rw-r--r--gdb/dwarf2/ada-imported.c2
-rw-r--r--gdb/dwarf2/aranges.c19
-rw-r--r--gdb/dwarf2/aranges.h2
-rw-r--r--gdb/dwarf2/attribute.c131
-rw-r--r--gdb/dwarf2/attribute.h96
-rw-r--r--gdb/dwarf2/call-site.h10
-rw-r--r--gdb/dwarf2/cooked-index-entry.c244
-rw-r--r--gdb/dwarf2/cooked-index-entry.h258
-rw-r--r--gdb/dwarf2/cooked-index-shard.c331
-rw-r--r--gdb/dwarf2/cooked-index-shard.h134
-rw-r--r--gdb/dwarf2/cooked-index-worker.c260
-rw-r--r--gdb/dwarf2/cooked-index-worker.h323
-rw-r--r--gdb/dwarf2/cooked-index.c657
-rw-r--r--gdb/dwarf2/cooked-index.h603
-rw-r--r--gdb/dwarf2/cooked-indexer.c694
-rw-r--r--gdb/dwarf2/cooked-indexer.h119
-rw-r--r--gdb/dwarf2/cu.c108
-rw-r--r--gdb/dwarf2/cu.h214
-rw-r--r--gdb/dwarf2/die.c9
-rw-r--r--gdb/dwarf2/die.h14
-rw-r--r--gdb/dwarf2/dwz.c287
-rw-r--r--gdb/dwarf2/dwz.h35
-rw-r--r--gdb/dwarf2/error.h2
-rw-r--r--gdb/dwarf2/expr.c105
-rw-r--r--gdb/dwarf2/expr.h10
-rw-r--r--gdb/dwarf2/file-and-dir.h4
-rw-r--r--gdb/dwarf2/frame-tailcall.c2
-rw-r--r--gdb/dwarf2/frame-tailcall.h2
-rw-r--r--gdb/dwarf2/frame.c13
-rw-r--r--gdb/dwarf2/frame.h70
-rw-r--r--gdb/dwarf2/index-cache.c17
-rw-r--r--gdb/dwarf2/index-cache.h6
-rw-r--r--gdb/dwarf2/index-common.c2
-rw-r--r--gdb/dwarf2/index-common.h2
-rw-r--r--gdb/dwarf2/index-write.c176
-rw-r--r--gdb/dwarf2/index-write.h2
-rw-r--r--gdb/dwarf2/leb.c2
-rw-r--r--gdb/dwarf2/leb.h2
-rw-r--r--gdb/dwarf2/line-header.c15
-rw-r--r--gdb/dwarf2/line-header.h6
-rw-r--r--gdb/dwarf2/loc.c115
-rw-r--r--gdb/dwarf2/loc.h126
-rw-r--r--gdb/dwarf2/macro.c11
-rw-r--r--gdb/dwarf2/macro.h2
-rw-r--r--gdb/dwarf2/mapped-index.h11
-rw-r--r--gdb/dwarf2/parent-map.c88
-rw-r--r--gdb/dwarf2/parent-map.h2
-rw-r--r--gdb/dwarf2/public.h27
-rw-r--r--gdb/dwarf2/read-debug-names.c252
-rw-r--r--gdb/dwarf2/read-debug-names.h27
-rw-r--r--gdb/dwarf2/read-gdb-index.c103
-rw-r--r--gdb/dwarf2/read-gdb-index.h2
-rw-r--r--gdb/dwarf2/read.c6487
-rw-r--r--gdb/dwarf2/read.h694
-rw-r--r--gdb/dwarf2/sect-names.h2
-rw-r--r--gdb/dwarf2/section.c2
-rw-r--r--gdb/dwarf2/section.h17
-rw-r--r--gdb/dwarf2/stringify.c2
-rw-r--r--gdb/dwarf2/stringify.h2
-rw-r--r--gdb/dwarf2/tag.h7
-rw-r--r--gdb/dwarf2/types.h2
-rw-r--r--gdb/dwarf2/unit-head.c (renamed from gdb/dwarf2/comp-unit-head.c)130
-rw-r--r--gdb/dwarf2/unit-head.h (renamed from gdb/dwarf2/comp-unit-head.h)71
-rw-r--r--gdb/elf-none-tdep.c2
-rw-r--r--gdb/elf-none-tdep.h2
-rw-r--r--gdb/elfread.c41
-rw-r--r--gdb/eval.c60
-rw-r--r--gdb/event-top.c15
-rw-r--r--gdb/event-top.h2
-rw-r--r--gdb/exceptions.c9
-rw-r--r--gdb/exceptions.h2
-rw-r--r--gdb/exec.c34
-rw-r--r--gdb/exec.h2
-rw-r--r--gdb/expop.h20
-rw-r--r--gdb/expprint.c2
-rw-r--r--gdb/expression.h2
-rw-r--r--gdb/extension-priv.h11
-rw-r--r--gdb/extension.c7
-rw-r--r--gdb/extension.h12
-rw-r--r--gdb/extract-store-integer.c4
-rw-r--r--gdb/extract-store-integer.h2
-rw-r--r--gdb/f-array-walker.h2
-rw-r--r--gdb/f-exp.h2
-rw-r--r--gdb/f-exp.y2
-rw-r--r--gdb/f-lang.c2
-rw-r--r--gdb/f-lang.h2
-rw-r--r--gdb/f-typeprint.c2
-rw-r--r--gdb/f-valprint.c2
-rw-r--r--gdb/fbsd-nat.c4
-rw-r--r--gdb/fbsd-nat.h2
-rw-r--r--gdb/fbsd-tdep.c15
-rw-r--r--gdb/fbsd-tdep.h2
-rw-r--r--gdb/features/Makefile2
-rw-r--r--gdb/features/aarch64-core.xml2
-rw-r--r--gdb/features/aarch64-fpu.xml2
-rw-r--r--gdb/features/aarch64-mte.xml2
-rw-r--r--gdb/features/aarch64-pauth.xml2
-rw-r--r--gdb/features/aarch64-sme.c2
-rw-r--r--gdb/features/aarch64-sme2.c2
-rw-r--r--gdb/features/aarch64-sve.c2
-rw-r--r--gdb/features/aarch64-tls.c2
-rw-r--r--gdb/features/arc/v1-aux.xml2
-rw-r--r--gdb/features/arc/v1-core.xml2
-rw-r--r--gdb/features/arc/v2-aux.xml2
-rw-r--r--gdb/features/arc/v2-core.xml2
-rw-r--r--gdb/features/arm/arm-core.xml2
-rw-r--r--gdb/features/arm/arm-fpa.xml2
-rw-r--r--gdb/features/arm/arm-m-profile-mve.xml2
-rw-r--r--gdb/features/arm/arm-m-profile-with-fpa.xml2
-rw-r--r--gdb/features/arm/arm-m-profile.xml2
-rw-r--r--gdb/features/arm/arm-m-system.xml2
-rw-r--r--gdb/features/arm/arm-secext.xml2
-rw-r--r--gdb/features/arm/arm-tls.xml2
-rw-r--r--gdb/features/arm/arm-vfpv2.xml2
-rw-r--r--gdb/features/arm/arm-vfpv3.xml2
-rw-r--r--gdb/features/arm/xscale-iwmmxt.xml2
-rw-r--r--gdb/features/btrace-conf.dtd2
-rw-r--r--gdb/features/btrace.dtd2
-rw-r--r--gdb/features/cskyv2-linux.xml2
-rw-r--r--gdb/features/feature_to_c.awk2
-rwxr-xr-xgdb/features/feature_to_c.sh2
-rw-r--r--gdb/features/gdb-target.dtd2
-rw-r--r--gdb/features/i386/32bit-avx.xml2
-rw-r--r--gdb/features/i386/32bit-avx512.xml2
-rw-r--r--gdb/features/i386/32bit-core.xml2
-rw-r--r--gdb/features/i386/32bit-linux.xml2
-rw-r--r--gdb/features/i386/32bit-segments.xml2
-rw-r--r--gdb/features/i386/32bit-sse.xml2
-rw-r--r--gdb/features/i386/64bit-avx.xml2
-rw-r--r--gdb/features/i386/64bit-avx512.xml2
-rw-r--r--gdb/features/i386/64bit-core.xml2
-rw-r--r--gdb/features/i386/64bit-linux.xml2
-rw-r--r--gdb/features/i386/64bit-segments.xml2
-rw-r--r--gdb/features/i386/64bit-sse.xml2
-rw-r--r--gdb/features/i386/pkeys.xml2
-rw-r--r--gdb/features/i386/x32-core.xml2
-rw-r--r--gdb/features/library-list-aix.dtd2
-rw-r--r--gdb/features/library-list-svr4.dtd2
-rw-r--r--gdb/features/library-list.dtd2
-rw-r--r--gdb/features/loongarch/base32.xml2
-rw-r--r--gdb/features/loongarch/base64.xml2
-rw-r--r--gdb/features/loongarch/fpu.xml2
-rw-r--r--gdb/features/loongarch/lasx.xml2
-rw-r--r--gdb/features/loongarch/lbt.xml2
-rw-r--r--gdb/features/loongarch/lsx.xml2
-rw-r--r--gdb/features/microblaze-core.xml2
-rw-r--r--gdb/features/microblaze-linux.xml2
-rw-r--r--gdb/features/microblaze-stack-protect.xml2
-rw-r--r--gdb/features/microblaze-with-stack-protect.xml2
-rw-r--r--gdb/features/microblaze.xml2
-rw-r--r--gdb/features/mips-cp0.xml2
-rw-r--r--gdb/features/mips-cpu.xml2
-rw-r--r--gdb/features/mips-dsp-linux.xml2
-rw-r--r--gdb/features/mips-dsp.xml2
-rw-r--r--gdb/features/mips-fpu.xml2
-rw-r--r--gdb/features/mips-linux.xml2
-rw-r--r--gdb/features/mips64-cp0.xml2
-rw-r--r--gdb/features/mips64-cpu.xml2
-rw-r--r--gdb/features/mips64-dsp-linux.xml2
-rw-r--r--gdb/features/mips64-dsp.xml2
-rw-r--r--gdb/features/mips64-fpu.xml2
-rw-r--r--gdb/features/mips64-linux.xml2
-rw-r--r--gdb/features/nds32-core.xml2
-rw-r--r--gdb/features/nds32-fpu.xml2
-rw-r--r--gdb/features/nds32-system.xml2
-rw-r--r--gdb/features/nds32.xml2
-rw-r--r--gdb/features/or1k-core.xml2
-rw-r--r--gdb/features/or1k-linux.xml2
-rw-r--r--gdb/features/or1k.xml2
-rw-r--r--gdb/features/osdata.dtd2
-rw-r--r--gdb/features/print-osabi.xsl2
-rw-r--r--gdb/features/riscv/32bit-cpu.xml2
-rw-r--r--gdb/features/riscv/32bit-fpu.xml2
-rw-r--r--gdb/features/riscv/64bit-cpu.xml2
-rw-r--r--gdb/features/riscv/64bit-fpu.xml2
-rw-r--r--gdb/features/riscv/rv32e-xregs.xml2
-rw-r--r--gdb/features/rs6000/power-altivec.xml2
-rw-r--r--gdb/features/rs6000/power-core.xml2
-rw-r--r--gdb/features/rs6000/power-dscr.xml2
-rw-r--r--gdb/features/rs6000/power-ebb.xml2
-rw-r--r--gdb/features/rs6000/power-fpu-isa205.xml2
-rw-r--r--gdb/features/rs6000/power-fpu.xml2
-rw-r--r--gdb/features/rs6000/power-htm-altivec.xml2
-rw-r--r--gdb/features/rs6000/power-htm-core.xml2
-rw-r--r--gdb/features/rs6000/power-htm-dscr.xml2
-rw-r--r--gdb/features/rs6000/power-htm-fpu.xml2
-rw-r--r--gdb/features/rs6000/power-htm-ppr.xml2
-rw-r--r--gdb/features/rs6000/power-htm-spr.xml2
-rw-r--r--gdb/features/rs6000/power-htm-tar.xml2
-rw-r--r--gdb/features/rs6000/power-htm-vsx.xml2
-rw-r--r--gdb/features/rs6000/power-linux-pmu.xml2
-rw-r--r--gdb/features/rs6000/power-linux.xml2
-rw-r--r--gdb/features/rs6000/power-oea.xml2
-rw-r--r--gdb/features/rs6000/power-ppr.xml2
-rw-r--r--gdb/features/rs6000/power-spe.xml2
-rw-r--r--gdb/features/rs6000/power-tar.xml2
-rw-r--r--gdb/features/rs6000/power-vsx.xml2
-rw-r--r--gdb/features/rs6000/power64-core.xml2
-rw-r--r--gdb/features/rs6000/power64-htm-core.xml2
-rw-r--r--gdb/features/rs6000/power64-linux.xml2
-rw-r--r--gdb/features/rs6000/powerpc-32.xml2
-rw-r--r--gdb/features/rs6000/powerpc-32l.xml2
-rw-r--r--gdb/features/rs6000/powerpc-403.xml2
-rw-r--r--gdb/features/rs6000/powerpc-403gc.xml2
-rw-r--r--gdb/features/rs6000/powerpc-405.xml2
-rw-r--r--gdb/features/rs6000/powerpc-505.xml2
-rw-r--r--gdb/features/rs6000/powerpc-601.xml2
-rw-r--r--gdb/features/rs6000/powerpc-602.xml2
-rw-r--r--gdb/features/rs6000/powerpc-603.xml2
-rw-r--r--gdb/features/rs6000/powerpc-604.xml2
-rw-r--r--gdb/features/rs6000/powerpc-64.xml2
-rw-r--r--gdb/features/rs6000/powerpc-64l.xml2
-rw-r--r--gdb/features/rs6000/powerpc-7400.xml2
-rw-r--r--gdb/features/rs6000/powerpc-750.xml2
-rw-r--r--gdb/features/rs6000/powerpc-860.xml2
-rw-r--r--gdb/features/rs6000/powerpc-altivec32.xml2
-rw-r--r--gdb/features/rs6000/powerpc-altivec32l.xml2
-rw-r--r--gdb/features/rs6000/powerpc-altivec64.xml2
-rw-r--r--gdb/features/rs6000/powerpc-altivec64l.xml2
-rw-r--r--gdb/features/rs6000/powerpc-e500.xml2
-rw-r--r--gdb/features/rs6000/powerpc-e500l.xml2
-rw-r--r--gdb/features/rs6000/powerpc-isa205-32l.xml2
-rw-r--r--gdb/features/rs6000/powerpc-isa205-64l.xml2
-rw-r--r--gdb/features/rs6000/powerpc-isa205-altivec32l.xml2
-rw-r--r--gdb/features/rs6000/powerpc-isa205-altivec64l.xml2
-rw-r--r--gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.xml2
-rw-r--r--gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.xml2
-rw-r--r--gdb/features/rs6000/powerpc-isa205-vsx32l.xml2
-rw-r--r--gdb/features/rs6000/powerpc-isa205-vsx64l.xml2
-rw-r--r--gdb/features/rs6000/powerpc-isa207-htm-vsx32l.xml2
-rw-r--r--gdb/features/rs6000/powerpc-isa207-htm-vsx64l.xml2
-rw-r--r--gdb/features/rs6000/powerpc-isa207-vsx32l.xml2
-rw-r--r--gdb/features/rs6000/powerpc-isa207-vsx64l.xml2
-rw-r--r--gdb/features/rs6000/powerpc-vsx32.xml2
-rw-r--r--gdb/features/rs6000/powerpc-vsx32l.xml2
-rw-r--r--gdb/features/rs6000/powerpc-vsx64.xml2
-rw-r--r--gdb/features/rs6000/powerpc-vsx64l.xml2
-rw-r--r--gdb/features/rs6000/rs6000.xml2
-rw-r--r--gdb/features/rx.xml2
-rw-r--r--gdb/features/s390-acr.xml2
-rw-r--r--gdb/features/s390-core32.xml2
-rw-r--r--gdb/features/s390-core64.xml2
-rw-r--r--gdb/features/s390-fpr.xml2
-rw-r--r--gdb/features/s390-gs-linux64.xml2
-rw-r--r--gdb/features/s390-gs.xml2
-rw-r--r--gdb/features/s390-gsbc.xml2
-rw-r--r--gdb/features/s390-linux32.xml2
-rw-r--r--gdb/features/s390-linux32v1.xml2
-rw-r--r--gdb/features/s390-linux32v2.xml2
-rw-r--r--gdb/features/s390-linux64.xml2
-rw-r--r--gdb/features/s390-linux64v1.xml2
-rw-r--r--gdb/features/s390-linux64v2.xml2
-rw-r--r--gdb/features/s390-tdb.xml2
-rw-r--r--gdb/features/s390-te-linux64.xml2
-rw-r--r--gdb/features/s390-tevx-linux64.xml2
-rw-r--r--gdb/features/s390-vx-linux64.xml2
-rw-r--r--gdb/features/s390-vx.xml2
-rw-r--r--gdb/features/s390x-core64.xml2
-rw-r--r--gdb/features/s390x-gs-linux64.xml2
-rw-r--r--gdb/features/s390x-linux64.xml2
-rw-r--r--gdb/features/s390x-linux64v1.xml2
-rw-r--r--gdb/features/s390x-linux64v2.xml2
-rw-r--r--gdb/features/s390x-te-linux64.xml2
-rw-r--r--gdb/features/s390x-tevx-linux64.xml2
-rw-r--r--gdb/features/s390x-vx-linux64.xml2
-rw-r--r--gdb/features/sparc/sparc32-cp0.xml2
-rw-r--r--gdb/features/sparc/sparc32-cpu.xml2
-rw-r--r--gdb/features/sparc/sparc32-fpu.xml2
-rw-r--r--gdb/features/sparc/sparc32-solaris.xml2
-rw-r--r--gdb/features/sparc/sparc64-cp0.xml2
-rw-r--r--gdb/features/sparc/sparc64-cpu.xml2
-rw-r--r--gdb/features/sparc/sparc64-fpu.xml2
-rw-r--r--gdb/features/sparc/sparc64-solaris.xml2
-rw-r--r--gdb/features/threads.dtd2
-rw-r--r--gdb/features/tic6x-c62x-linux.xml2
-rw-r--r--gdb/features/tic6x-c64x-linux.xml2
-rw-r--r--gdb/features/tic6x-c64xp-linux.xml2
-rw-r--r--gdb/features/tic6x-c6xp.xml2
-rw-r--r--gdb/features/tic6x-core.xml2
-rw-r--r--gdb/features/tic6x-gp.xml2
-rw-r--r--gdb/features/traceframe-info.dtd2
-rw-r--r--gdb/features/xinclude.dtd2
-rw-r--r--gdb/features/z80-cpu.xml2
-rw-r--r--gdb/features/z80.xml2
-rw-r--r--gdb/filename-seen-cache.h2
-rw-r--r--gdb/filesystem.c2
-rw-r--r--gdb/filesystem.h2
-rw-r--r--gdb/findcmd.c2
-rw-r--r--gdb/findvar.c5
-rw-r--r--gdb/fork-child.c2
-rw-r--r--gdb/frame-base.c2
-rw-r--r--gdb/frame-base.h4
-rw-r--r--gdb/frame-id.h2
-rw-r--r--gdb/frame-unwind.c4
-rw-r--r--gdb/frame-unwind.h2
-rw-r--r--gdb/frame.c20
-rw-r--r--gdb/frame.h4
-rw-r--r--gdb/frv-linux-tdep.c2
-rw-r--r--gdb/frv-tdep.c2
-rw-r--r--gdb/frv-tdep.h2
-rw-r--r--gdb/ft32-tdep.c4
-rw-r--r--gdb/ft32-tdep.h2
-rw-r--r--gdb/gcore-1.in (renamed from gdb/gcore.in)71
-rw-r--r--gdb/gcore-elf.c2
-rw-r--r--gdb/gcore-elf.h2
-rw-r--r--gdb/gcore.c2
-rw-r--r--gdb/gcore.h2
-rw-r--r--gdb/gdb-code-style.el2
-rw-r--r--gdb/gdb-demangle.c2
-rw-r--r--gdb/gdb-demangle.h2
-rw-r--r--gdb/gdb-gdb.py.in10
-rw-r--r--gdb/gdb-stabs.h6
-rw-r--r--gdb/gdb.c2
-rw-r--r--gdb/gdb_bfd.c61
-rw-r--r--gdb/gdb_bfd.h14
-rw-r--r--gdb/gdb_buildall.sh4
-rw-r--r--gdb/gdb_curses.h2
-rw-r--r--gdb/gdb_expat.h2
-rwxr-xr-xgdb/gdb_mbuild.sh2
-rw-r--r--gdb/gdb_proc_service.h2
-rw-r--r--gdb/gdb_vfork.h2
-rw-r--r--gdb/gdb_wchar.h2
-rw-r--r--gdb/gdbarch-gen.c6
-rw-r--r--gdb/gdbarch-gen.h20
-rw-r--r--gdb/gdbarch-selftests.c12
-rw-r--r--gdb/gdbarch.h4
-rwxr-xr-xgdb/gdbarch.py2
-rw-r--r--gdb/gdbarch_components.py16
-rw-r--r--gdb/gdbarch_types.py2
-rw-r--r--gdb/gdbcopyright.py2
-rw-r--r--gdb/gdbcore.h2
-rw-r--r--gdb/gdbthread.h10
-rw-r--r--gdb/gdbtypes.c199
-rw-r--r--gdb/gdbtypes.h71
-rw-r--r--gdb/glibc-tdep.c2
-rw-r--r--gdb/glibc-tdep.h2
-rw-r--r--gdb/gmp-utils.c2
-rw-r--r--gdb/gmp-utils.h2
-rw-r--r--gdb/gnu-nat-mig.h2
-rw-r--r--gdb/gnu-nat.c2
-rw-r--r--gdb/gnu-nat.h2
-rw-r--r--gdb/gnu-v2-abi.c12
-rw-r--r--gdb/gnu-v3-abi.c6
-rw-r--r--gdb/go-exp.y2
-rw-r--r--gdb/go-lang.c2
-rw-r--r--gdb/go-lang.h2
-rw-r--r--gdb/go-typeprint.c2
-rw-r--r--gdb/go-valprint.c2
-rw-r--r--gdb/go32-nat.c4
-rw-r--r--gdb/gregset.h2
-rwxr-xr-xgdb/gstack-1.in8
-rw-r--r--gdb/guile/guile-internal.h11
-rw-r--r--gdb/guile/guile.c2
-rw-r--r--gdb/guile/guile.h2
-rw-r--r--gdb/guile/lib/gdb.scm2
-rw-r--r--gdb/guile/lib/gdb/boot.scm2
-rw-r--r--gdb/guile/lib/gdb/experimental.scm2
-rw-r--r--gdb/guile/lib/gdb/init.scm2
-rw-r--r--gdb/guile/lib/gdb/iterator.scm4
-rw-r--r--gdb/guile/lib/gdb/printing.scm2
-rw-r--r--gdb/guile/lib/gdb/support.scm2
-rw-r--r--gdb/guile/lib/gdb/types.scm2
-rw-r--r--gdb/guile/scm-arch.c2
-rw-r--r--gdb/guile/scm-auto-load.c2
-rw-r--r--gdb/guile/scm-block.c2
-rw-r--r--gdb/guile/scm-breakpoint.c2
-rw-r--r--gdb/guile/scm-cmd.c85
-rw-r--r--gdb/guile/scm-color.c13
-rw-r--r--gdb/guile/scm-disasm.c2
-rw-r--r--gdb/guile/scm-exception.c2
-rw-r--r--gdb/guile/scm-frame.c2
-rw-r--r--gdb/guile/scm-gsmob.c2
-rw-r--r--gdb/guile/scm-iterator.c2
-rw-r--r--gdb/guile/scm-lazy-string.c4
-rw-r--r--gdb/guile/scm-math.c2
-rw-r--r--gdb/guile/scm-objfile.c2
-rw-r--r--gdb/guile/scm-param.c43
-rw-r--r--gdb/guile/scm-ports.c12
-rw-r--r--gdb/guile/scm-pretty-print.c6
-rw-r--r--gdb/guile/scm-progspace.c2
-rw-r--r--gdb/guile/scm-safe-call.c2
-rw-r--r--gdb/guile/scm-string.c2
-rw-r--r--gdb/guile/scm-symbol.c2
-rw-r--r--gdb/guile/scm-symtab.c2
-rw-r--r--gdb/guile/scm-type.c2
-rw-r--r--gdb/guile/scm-utils.c2
-rw-r--r--gdb/guile/scm-value.c4
-rw-r--r--gdb/h8300-tdep.c4
-rw-r--r--gdb/hppa-bsd-tdep.c2
-rw-r--r--gdb/hppa-bsd-tdep.h2
-rw-r--r--gdb/hppa-linux-nat.c2
-rw-r--r--gdb/hppa-linux-offsets.h2
-rw-r--r--gdb/hppa-linux-tdep.c4
-rw-r--r--gdb/hppa-netbsd-nat.c2
-rw-r--r--gdb/hppa-netbsd-tdep.c2
-rw-r--r--gdb/hppa-obsd-nat.c2
-rw-r--r--gdb/hppa-obsd-tdep.c2
-rw-r--r--gdb/hppa-tdep.c2
-rw-r--r--gdb/hppa-tdep.h2
-rw-r--r--gdb/i386-bsd-nat.c2
-rw-r--r--gdb/i386-bsd-nat.h2
-rw-r--r--gdb/i386-bsd-tdep.c2
-rw-r--r--gdb/i386-darwin-nat.c2
-rw-r--r--gdb/i386-darwin-tdep.c2
-rw-r--r--gdb/i386-darwin-tdep.h2
-rw-r--r--gdb/i386-dicos-tdep.c2
-rw-r--r--gdb/i386-fbsd-nat.c6
-rw-r--r--gdb/i386-fbsd-tdep.c2
-rw-r--r--gdb/i386-fbsd-tdep.h2
-rw-r--r--gdb/i386-gnu-tdep.c15
-rw-r--r--gdb/i386-go32-tdep.c2
-rw-r--r--gdb/i386-linux-nat.c2
-rw-r--r--gdb/i386-linux-tdep.c498
-rw-r--r--gdb/i386-linux-tdep.h2
-rw-r--r--gdb/i386-netbsd-nat.c2
-rw-r--r--gdb/i386-netbsd-tdep.c2
-rw-r--r--gdb/i386-obsd-nat.c2
-rw-r--r--gdb/i386-obsd-tdep.c2
-rw-r--r--gdb/i386-sol2-nat.c4
-rw-r--r--gdb/i386-sol2-tdep.c2
-rw-r--r--gdb/i386-syscalls.def479
-rw-r--r--gdb/i386-tdep.c6
-rw-r--r--gdb/i386-tdep.h2
-rw-r--r--gdb/i386-windows-nat.c2
-rw-r--r--gdb/i386-windows-tdep.c2
-rw-r--r--gdb/i387-tdep.c2
-rw-r--r--gdb/i387-tdep.h2
-rw-r--r--gdb/ia64-libunwind-tdep.c2
-rw-r--r--gdb/ia64-libunwind-tdep.h2
-rw-r--r--gdb/ia64-linux-nat.c2
-rw-r--r--gdb/ia64-linux-tdep.c2
-rw-r--r--gdb/ia64-tdep.c10
-rw-r--r--gdb/ia64-tdep.h2
-rw-r--r--gdb/ia64-vms-tdep.c4
-rw-r--r--gdb/inf-child.c8
-rw-r--r--gdb/inf-child.h6
-rw-r--r--gdb/inf-loop.c4
-rw-r--r--gdb/inf-loop.h2
-rw-r--r--gdb/inf-ptrace.c2
-rw-r--r--gdb/inf-ptrace.h2
-rw-r--r--gdb/infcall.c4
-rw-r--r--gdb/infcall.h2
-rw-r--r--gdb/infcmd.c27
-rw-r--r--gdb/inferior-iter.h2
-rw-r--r--gdb/inferior.c7
-rw-r--r--gdb/inferior.h13
-rw-r--r--gdb/inflow.c2
-rw-r--r--gdb/infrun.c82
-rw-r--r--gdb/infrun.h5
-rw-r--r--gdb/inline-frame.c2
-rw-r--r--gdb/inline-frame.h2
-rw-r--r--gdb/interps.c6
-rw-r--r--gdb/interps.h24
-rw-r--r--gdb/iq2000-tdep.c4
-rw-r--r--gdb/jit-reader.in2
-rw-r--r--gdb/jit.c2
-rw-r--r--gdb/jit.h2
-rw-r--r--gdb/language.c10
-rw-r--r--gdb/language.h34
-rw-r--r--gdb/linespec.c85
-rw-r--r--gdb/linespec.h2
-rw-r--r--gdb/linux-fork.c127
-rw-r--r--gdb/linux-fork.h2
-rw-r--r--gdb/linux-nat-trad.c2
-rw-r--r--gdb/linux-nat-trad.h2
-rw-r--r--gdb/linux-nat.c48
-rw-r--r--gdb/linux-nat.h5
-rw-r--r--gdb/linux-record.c9
-rw-r--r--gdb/linux-record.h9
-rw-r--r--gdb/linux-tdep.c152
-rw-r--r--gdb/linux-tdep.h2
-rw-r--r--gdb/linux-thread-db.c5
-rw-r--r--gdb/lm32-tdep.c2
-rw-r--r--gdb/location.c2
-rw-r--r--gdb/location.h2
-rw-r--r--gdb/loongarch-linux-nat.c2
-rw-r--r--gdb/loongarch-linux-tdep.c25
-rw-r--r--gdb/loongarch-tdep.c26
-rw-r--r--gdb/loongarch-tdep.h2
-rw-r--r--gdb/m2-exp.h2
-rw-r--r--gdb/m2-exp.y2
-rw-r--r--gdb/m2-lang.c2
-rw-r--r--gdb/m2-lang.h2
-rw-r--r--gdb/m2-typeprint.c2
-rw-r--r--gdb/m2-valprint.c2
-rw-r--r--gdb/m32c-tdep.c2
-rw-r--r--gdb/m32r-linux-nat.c2
-rw-r--r--gdb/m32r-linux-tdep.c2
-rw-r--r--gdb/m32r-tdep.c2
-rw-r--r--gdb/m32r-tdep.h2
-rw-r--r--gdb/m68hc11-tdep.c7
-rw-r--r--gdb/m68k-bsd-nat.c2
-rw-r--r--gdb/m68k-bsd-tdep.c2
-rw-r--r--gdb/m68k-linux-nat.c2
-rw-r--r--gdb/m68k-linux-tdep.c2
-rw-r--r--gdb/m68k-tdep.c2
-rw-r--r--gdb/m68k-tdep.h2
-rw-r--r--gdb/machoread.c4
-rw-r--r--gdb/macrocmd.c39
-rw-r--r--gdb/macroexp.c2
-rw-r--r--gdb/macroexp.h2
-rw-r--r--gdb/macroscope.c37
-rw-r--r--gdb/macroscope.h22
-rw-r--r--gdb/macrotab.c2
-rw-r--r--gdb/macrotab.h2
-rw-r--r--gdb/main.c25
-rw-r--r--gdb/main.h5
-rw-r--r--gdb/maint-test-options.c14
-rw-r--r--gdb/maint-test-settings.c2
-rw-r--r--gdb/maint.c98
-rw-r--r--gdb/maint.h36
-rwxr-xr-xgdb/make-init-c6
-rwxr-xr-xgdb/make-target-delegates.py2
-rw-r--r--gdb/mdebugread.c38
-rw-r--r--gdb/mdebugread.h35
-rw-r--r--gdb/mem-break.c2
-rw-r--r--gdb/memattr.c2
-rw-r--r--gdb/memattr.h2
-rw-r--r--gdb/memory-map.c2
-rw-r--r--gdb/memory-map.h2
-rw-r--r--gdb/memrange.c2
-rw-r--r--gdb/memrange.h2
-rw-r--r--gdb/memtag.c2
-rw-r--r--gdb/memtag.h2
-rw-r--r--gdb/mep-tdep.c2
-rw-r--r--gdb/mi/mi-cmd-break.c5
-rw-r--r--gdb/mi/mi-cmd-break.h2
-rw-r--r--gdb/mi/mi-cmd-catch.c2
-rw-r--r--gdb/mi/mi-cmd-disas.c3
-rw-r--r--gdb/mi/mi-cmd-env.c4
-rw-r--r--gdb/mi/mi-cmd-file.c10
-rw-r--r--gdb/mi/mi-cmd-info.c2
-rw-r--r--gdb/mi/mi-cmd-stack.c6
-rw-r--r--gdb/mi/mi-cmd-target.c2
-rw-r--r--gdb/mi/mi-cmd-var.c3
-rw-r--r--gdb/mi/mi-cmds.c7
-rw-r--r--gdb/mi/mi-cmds.h2
-rw-r--r--gdb/mi/mi-common.c2
-rw-r--r--gdb/mi/mi-common.h2
-rw-r--r--gdb/mi/mi-console.c2
-rw-r--r--gdb/mi/mi-console.h2
-rw-r--r--gdb/mi/mi-getopt.c2
-rw-r--r--gdb/mi/mi-getopt.h2
-rw-r--r--gdb/mi/mi-interp.c37
-rw-r--r--gdb/mi/mi-interp.h6
-rw-r--r--gdb/mi/mi-main.c126
-rw-r--r--gdb/mi/mi-main.h2
-rw-r--r--gdb/mi/mi-out.c3
-rw-r--r--gdb/mi/mi-out.h3
-rw-r--r--gdb/mi/mi-parse.c3
-rw-r--r--gdb/mi/mi-parse.h2
-rw-r--r--gdb/mi/mi-symbol-cmds.c2
-rw-r--r--gdb/microblaze-linux-tdep.c5
-rw-r--r--gdb/microblaze-tdep.c2
-rw-r--r--gdb/microblaze-tdep.h2
-rw-r--r--gdb/mingw-hdep.c44
-rw-r--r--gdb/minidebug.c2
-rw-r--r--gdb/minsyms.c10
-rw-r--r--gdb/minsyms.h2
-rw-r--r--gdb/mips-fbsd-nat.c2
-rw-r--r--gdb/mips-fbsd-tdep.c2
-rw-r--r--gdb/mips-fbsd-tdep.h2
-rw-r--r--gdb/mips-linux-nat.c2
-rw-r--r--gdb/mips-linux-tdep.c13
-rw-r--r--gdb/mips-linux-tdep.h2
-rw-r--r--gdb/mips-netbsd-nat.c2
-rw-r--r--gdb/mips-netbsd-tdep.c2
-rw-r--r--gdb/mips-netbsd-tdep.h2
-rw-r--r--gdb/mips-sde-tdep.c2
-rw-r--r--gdb/mips-tdep.c143
-rw-r--r--gdb/mips-tdep.h2
-rw-r--r--gdb/mips64-obsd-nat.c2
-rw-r--r--gdb/mips64-obsd-tdep.c2
-rw-r--r--gdb/mipsread.c14
-rw-r--r--gdb/mn10300-linux-tdep.c2
-rw-r--r--gdb/mn10300-tdep.c2
-rw-r--r--gdb/mn10300-tdep.h2
-rw-r--r--gdb/moxie-tdep.c4
-rw-r--r--gdb/moxie-tdep.h2
-rw-r--r--gdb/msp430-tdep.c2
-rw-r--r--gdb/namespace.c2
-rw-r--r--gdb/namespace.h2
-rw-r--r--gdb/nat/aarch64-hw-point.c2
-rw-r--r--gdb/nat/aarch64-hw-point.h2
-rw-r--r--gdb/nat/aarch64-linux-hw-point.c2
-rw-r--r--gdb/nat/aarch64-linux-hw-point.h2
-rw-r--r--gdb/nat/aarch64-linux.c2
-rw-r--r--gdb/nat/aarch64-linux.h2
-rw-r--r--gdb/nat/aarch64-mte-linux-ptrace.c2
-rw-r--r--gdb/nat/aarch64-mte-linux-ptrace.h2
-rw-r--r--gdb/nat/aarch64-scalable-linux-ptrace.c2
-rw-r--r--gdb/nat/aarch64-scalable-linux-ptrace.h2
-rw-r--r--gdb/nat/aarch64-scalable-linux-sigcontext.h2
-rw-r--r--gdb/nat/amd64-linux-siginfo.c2
-rw-r--r--gdb/nat/amd64-linux-siginfo.h2
-rw-r--r--gdb/nat/fork-inferior.c83
-rw-r--r--gdb/nat/fork-inferior.h2
-rw-r--r--gdb/nat/gdb_ptrace.h2
-rw-r--r--gdb/nat/gdb_thread_db.h2
-rw-r--r--gdb/nat/i386-linux.c2
-rw-r--r--gdb/nat/i386-linux.h2
-rw-r--r--gdb/nat/linux-btrace.c4
-rw-r--r--gdb/nat/linux-btrace.h2
-rw-r--r--gdb/nat/linux-namespaces.c145
-rw-r--r--gdb/nat/linux-namespaces.h13
-rw-r--r--gdb/nat/linux-nat.h2
-rw-r--r--gdb/nat/linux-osdata.c2
-rw-r--r--gdb/nat/linux-osdata.h2
-rw-r--r--gdb/nat/linux-personality.c2
-rw-r--r--gdb/nat/linux-personality.h2
-rw-r--r--gdb/nat/linux-procfs.c17
-rw-r--r--gdb/nat/linux-procfs.h2
-rw-r--r--gdb/nat/linux-ptrace.c6
-rw-r--r--gdb/nat/linux-ptrace.h2
-rw-r--r--gdb/nat/linux-waitpid.c2
-rw-r--r--gdb/nat/linux-waitpid.h2
-rw-r--r--gdb/nat/loongarch-hw-point.c4
-rw-r--r--gdb/nat/loongarch-hw-point.h6
-rw-r--r--gdb/nat/loongarch-linux-hw-point.c2
-rw-r--r--gdb/nat/loongarch-linux-hw-point.h4
-rw-r--r--gdb/nat/loongarch-linux.c2
-rw-r--r--gdb/nat/loongarch-linux.h2
-rw-r--r--gdb/nat/mips-linux-watch.c2
-rw-r--r--gdb/nat/mips-linux-watch.h2
-rw-r--r--gdb/nat/netbsd-nat.c2
-rw-r--r--gdb/nat/netbsd-nat.h2
-rw-r--r--gdb/nat/ppc-linux.c2
-rw-r--r--gdb/nat/ppc-linux.h2
-rw-r--r--gdb/nat/riscv-linux-tdesc.c2
-rw-r--r--gdb/nat/riscv-linux-tdesc.h2
-rw-r--r--gdb/nat/windows-nat.c2
-rw-r--r--gdb/nat/windows-nat.h2
-rw-r--r--gdb/nat/x86-cpuid.h2
-rw-r--r--gdb/nat/x86-dregs.c2
-rw-r--r--gdb/nat/x86-dregs.h2
-rw-r--r--gdb/nat/x86-gcc-cpuid.h2
-rw-r--r--gdb/nat/x86-linux-dregs.c2
-rw-r--r--gdb/nat/x86-linux-dregs.h2
-rw-r--r--gdb/nat/x86-linux-tdesc.c2
-rw-r--r--gdb/nat/x86-linux-tdesc.h2
-rw-r--r--gdb/nat/x86-linux.c2
-rw-r--r--gdb/nat/x86-linux.h2
-rw-r--r--gdb/nat/x86-xstate.c2
-rw-r--r--gdb/nat/x86-xstate.h2
-rw-r--r--gdb/nds32-tdep.c4
-rw-r--r--gdb/nds32-tdep.h2
-rw-r--r--gdb/netbsd-nat.c2
-rw-r--r--gdb/netbsd-nat.h2
-rw-r--r--gdb/netbsd-tdep.c2
-rw-r--r--gdb/netbsd-tdep.h2
-rw-r--r--gdb/objc-lang.c2
-rw-r--r--gdb/objc-lang.h2
-rw-r--r--gdb/objfile-flags.h2
-rw-r--r--gdb/objfiles.c15
-rw-r--r--gdb/objfiles.h37
-rw-r--r--gdb/obsd-nat.c2
-rw-r--r--gdb/obsd-nat.h2
-rw-r--r--gdb/obsd-tdep.c2
-rw-r--r--gdb/obsd-tdep.h2
-rw-r--r--gdb/observable.c2
-rw-r--r--gdb/observable.h9
-rw-r--r--gdb/opencl-lang.c2
-rw-r--r--gdb/or1k-linux-nat.c2
-rw-r--r--gdb/or1k-linux-tdep.c2
-rw-r--r--gdb/or1k-linux-tdep.h2
-rw-r--r--gdb/or1k-tdep.c2
-rw-r--r--gdb/or1k-tdep.h2
-rw-r--r--gdb/osabi.c2
-rw-r--r--gdb/osabi.h2
-rw-r--r--gdb/osdata.c2
-rw-r--r--gdb/osdata.h2
-rw-r--r--gdb/p-exp.y4
-rw-r--r--gdb/p-lang.c2
-rw-r--r--gdb/p-lang.h2
-rw-r--r--gdb/p-typeprint.c2
-rw-r--r--gdb/p-valprint.c2
-rw-r--r--gdb/pager.h3
-rw-r--r--gdb/parse.c6
-rw-r--r--gdb/parser-defs.h5
-rw-r--r--gdb/posix-hdep.c2
-rw-r--r--gdb/ppc-fbsd-nat.c2
-rw-r--r--gdb/ppc-fbsd-tdep.c2
-rw-r--r--gdb/ppc-fbsd-tdep.h2
-rw-r--r--gdb/ppc-linux-nat.c2
-rw-r--r--gdb/ppc-linux-tdep.c85
-rw-r--r--gdb/ppc-linux-tdep.h2
-rw-r--r--gdb/ppc-netbsd-nat.c2
-rw-r--r--gdb/ppc-netbsd-tdep.c2
-rw-r--r--gdb/ppc-netbsd-tdep.h2
-rw-r--r--gdb/ppc-obsd-nat.c2
-rw-r--r--gdb/ppc-obsd-tdep.c2
-rw-r--r--gdb/ppc-obsd-tdep.h2
-rw-r--r--gdb/ppc-ravenscar-thread.c2
-rw-r--r--gdb/ppc-ravenscar-thread.h2
-rw-r--r--gdb/ppc-sysv-tdep.c3
-rw-r--r--gdb/ppc-tdep.h2
-rw-r--r--gdb/ppc64-tdep.c7
-rw-r--r--gdb/ppc64-tdep.h4
-rw-r--r--gdb/printcmd.c12
-rw-r--r--gdb/probe.c2
-rw-r--r--gdb/probe.h2
-rw-r--r--gdb/proc-api.c2
-rw-r--r--gdb/proc-events.c2
-rw-r--r--gdb/proc-flags.c2
-rw-r--r--gdb/proc-service.c2
-rw-r--r--gdb/proc-service.list2
-rw-r--r--gdb/proc-utils.h2
-rw-r--r--gdb/proc-why.c2
-rw-r--r--gdb/process-stratum-target.c6
-rw-r--r--gdb/process-stratum-target.h8
-rw-r--r--gdb/procfs.c16
-rw-r--r--gdb/procfs.h2
-rw-r--r--gdb/producer.c26
-rw-r--r--gdb/producer.h6
-rw-r--r--gdb/progspace-and-thread.c2
-rw-r--r--gdb/progspace-and-thread.h2
-rw-r--r--gdb/progspace.c11
-rw-r--r--gdb/progspace.h16
-rw-r--r--gdb/prologue-value.c2
-rw-r--r--gdb/prologue-value.h2
-rw-r--r--gdb/psymtab.c30
-rw-r--r--gdb/psymtab.h14
-rw-r--r--gdb/python/lib/gdb/FrameDecorator.py4
-rw-r--r--gdb/python/lib/gdb/FrameIterator.py2
-rw-r--r--gdb/python/lib/gdb/__init__.py155
-rw-r--r--gdb/python/lib/gdb/command/__init__.py2
-rw-r--r--gdb/python/lib/gdb/command/explore.py2
-rw-r--r--gdb/python/lib/gdb/command/frame_filters.py2
-rw-r--r--gdb/python/lib/gdb/command/missing_files.py2
-rw-r--r--gdb/python/lib/gdb/command/pretty_printers.py2
-rw-r--r--gdb/python/lib/gdb/command/prompt.py2
-rw-r--r--gdb/python/lib/gdb/command/type_printers.py2
-rw-r--r--gdb/python/lib/gdb/command/unwinders.py2
-rw-r--r--gdb/python/lib/gdb/command/xmethods.py4
-rw-r--r--gdb/python/lib/gdb/dap/__init__.py4
-rw-r--r--gdb/python/lib/gdb/dap/breakpoint.py16
-rw-r--r--gdb/python/lib/gdb/dap/bt.py2
-rw-r--r--gdb/python/lib/gdb/dap/completions.py63
-rw-r--r--gdb/python/lib/gdb/dap/disassemble.py18
-rw-r--r--gdb/python/lib/gdb/dap/evaluate.py8
-rw-r--r--gdb/python/lib/gdb/dap/events.py9
-rw-r--r--gdb/python/lib/gdb/dap/frames.py18
-rw-r--r--gdb/python/lib/gdb/dap/globalvars.py15
-rw-r--r--gdb/python/lib/gdb/dap/io.py2
-rw-r--r--gdb/python/lib/gdb/dap/launch.py3
-rw-r--r--gdb/python/lib/gdb/dap/locations.py2
-rw-r--r--gdb/python/lib/gdb/dap/memory.py2
-rw-r--r--gdb/python/lib/gdb/dap/modules.py2
-rw-r--r--gdb/python/lib/gdb/dap/next.py17
-rw-r--r--gdb/python/lib/gdb/dap/pause.py2
-rw-r--r--gdb/python/lib/gdb/dap/scopes.py27
-rw-r--r--gdb/python/lib/gdb/dap/server.py204
-rw-r--r--gdb/python/lib/gdb/dap/sources.py11
-rw-r--r--gdb/python/lib/gdb/dap/startup.py2
-rw-r--r--gdb/python/lib/gdb/dap/state.py2
-rw-r--r--gdb/python/lib/gdb/dap/threads.py2
-rw-r--r--gdb/python/lib/gdb/dap/typecheck.py2
-rw-r--r--gdb/python/lib/gdb/dap/varref.py87
-rw-r--r--gdb/python/lib/gdb/disassembler.py4
-rw-r--r--gdb/python/lib/gdb/frames.py2
-rw-r--r--gdb/python/lib/gdb/function/__init__.py2
-rw-r--r--gdb/python/lib/gdb/function/as_string.py2
-rw-r--r--gdb/python/lib/gdb/function/caller_is.py2
-rw-r--r--gdb/python/lib/gdb/function/strfns.py2
-rw-r--r--gdb/python/lib/gdb/missing_debug.py2
-rw-r--r--gdb/python/lib/gdb/missing_files.py2
-rw-r--r--gdb/python/lib/gdb/missing_objfile.py2
-rw-r--r--gdb/python/lib/gdb/printer/__init__.py2
-rw-r--r--gdb/python/lib/gdb/printing.py2
-rw-r--r--gdb/python/lib/gdb/prompt.py2
-rw-r--r--gdb/python/lib/gdb/ptwrite.py2
-rw-r--r--gdb/python/lib/gdb/styling.py13
-rw-r--r--gdb/python/lib/gdb/types.py2
-rw-r--r--gdb/python/lib/gdb/unwinder.py2
-rw-r--r--gdb/python/lib/gdb/xmethod.py2
-rw-r--r--gdb/python/py-all-events.def2
-rw-r--r--gdb/python/py-auto-load.c2
-rw-r--r--gdb/python/py-bpevent.c2
-rw-r--r--gdb/python/py-breakpoint.c29
-rw-r--r--gdb/python/py-cmd.c110
-rw-r--r--gdb/python/py-color.c79
-rw-r--r--gdb/python/py-color.h8
-rw-r--r--gdb/python/py-connection.c9
-rw-r--r--gdb/python/py-continueevent.c2
-rw-r--r--gdb/python/py-dap.c2
-rw-r--r--gdb/python/py-disasm.c42
-rw-r--r--gdb/python/py-event-types.def2
-rw-r--r--gdb/python/py-event.c2
-rw-r--r--gdb/python/py-event.h2
-rw-r--r--gdb/python/py-events.h2
-rw-r--r--gdb/python/py-evtregistry.c2
-rw-r--r--gdb/python/py-evts.c2
-rw-r--r--gdb/python/py-exitedevent.c2
-rw-r--r--gdb/python/py-finishbreakpoint.c2
-rw-r--r--gdb/python/py-frame.c2
-rw-r--r--gdb/python/py-framefilter.c6
-rw-r--r--gdb/python/py-function.c2
-rw-r--r--gdb/python/py-gdb-readline.c6
-rw-r--r--gdb/python/py-inferior.c8
-rw-r--r--gdb/python/py-infevents.c2
-rw-r--r--gdb/python/py-infthread.c2
-rw-r--r--gdb/python/py-instruction.c2
-rw-r--r--gdb/python/py-instruction.h2
-rw-r--r--gdb/python/py-lazy-string.c4
-rw-r--r--gdb/python/py-linetable.c2
-rw-r--r--gdb/python/py-membuf.c2
-rw-r--r--gdb/python/py-mi.c2
-rw-r--r--gdb/python/py-micmd.c2
-rw-r--r--gdb/python/py-newobjfileevent.c2
-rw-r--r--gdb/python/py-objfile.c2
-rw-r--r--gdb/python/py-param.c20
-rw-r--r--gdb/python/py-prettyprint.c2
-rw-r--r--gdb/python/py-progspace.c6
-rw-r--r--gdb/python/py-record-btrace.c2
-rw-r--r--gdb/python/py-record-btrace.h2
-rw-r--r--gdb/python/py-record-full.c2
-rw-r--r--gdb/python/py-record-full.h2
-rw-r--r--gdb/python/py-record.c2
-rw-r--r--gdb/python/py-record.h2
-rw-r--r--gdb/python/py-ref.h2
-rw-r--r--gdb/python/py-registers.c9
-rw-r--r--gdb/python/py-signalevent.c2
-rw-r--r--gdb/python/py-stopevent.c2
-rw-r--r--gdb/python/py-stopevent.h2
-rw-r--r--gdb/python/py-symbol.c73
-rw-r--r--gdb/python/py-symtab.c183
-rw-r--r--gdb/python/py-threadevent.c2
-rw-r--r--gdb/python/py-tui.c2
-rw-r--r--gdb/python/py-type.c96
-rw-r--r--gdb/python/py-uiout.h2
-rw-r--r--gdb/python/py-unwind.c8
-rw-r--r--gdb/python/py-utils.c2
-rw-r--r--gdb/python/py-value.c45
-rw-r--r--gdb/python/py-varobj.c2
-rw-r--r--gdb/python/py-xmethods.c2
-rw-r--r--gdb/python/python-internal.h213
-rw-r--r--gdb/python/python.c111
-rw-r--r--gdb/python/python.h2
-rw-r--r--gdb/quick-symbol.h63
-rw-r--r--gdb/ravenscar-thread.c8
-rw-r--r--gdb/ravenscar-thread.h2
-rw-r--r--gdb/record-btrace.c31
-rw-r--r--gdb/record-btrace.h2
-rw-r--r--gdb/record-full.c6
-rw-r--r--gdb/record-full.h2
-rw-r--r--gdb/record.c2
-rw-r--r--gdb/record.h2
-rw-r--r--gdb/regcache-dump.c2
-rw-r--r--gdb/regcache.c32
-rw-r--r--gdb/regcache.h2
-rwxr-xr-xgdb/regformats/regdat.sh2
-rw-r--r--gdb/regformats/regdef.h2
-rw-r--r--gdb/reggroups.c2
-rw-r--r--gdb/reggroups.h2
-rw-r--r--gdb/registry.h2
-rw-r--r--gdb/regset.h2
-rw-r--r--gdb/remote-fileio.c2
-rw-r--r--gdb/remote-fileio.h2
-rw-r--r--gdb/remote-notif.c2
-rw-r--r--gdb/remote-notif.h2
-rw-r--r--gdb/remote-sim.c2
-rw-r--r--gdb/remote.c122
-rw-r--r--gdb/remote.h2
-rw-r--r--gdb/reply_mig_hack.awk2
-rw-r--r--gdb/reverse.c2
-rw-r--r--gdb/riscv-canonicalize-syscall-gen.c358
-rw-r--r--gdb/riscv-fbsd-nat.c2
-rw-r--r--gdb/riscv-fbsd-tdep.c2
-rw-r--r--gdb/riscv-fbsd-tdep.h2
-rw-r--r--gdb/riscv-linux-nat.c2
-rw-r--r--gdb/riscv-linux-tdep.c337
-rw-r--r--gdb/riscv-linux-tdep.h29
-rw-r--r--gdb/riscv-none-tdep.c2
-rw-r--r--gdb/riscv-ravenscar-thread.c2
-rw-r--r--gdb/riscv-ravenscar-thread.h2
-rw-r--r--gdb/riscv-tdep.c691
-rw-r--r--gdb/riscv-tdep.h18
-rw-r--r--gdb/rl78-tdep.c2
-rw-r--r--gdb/rs6000-aix-nat.c2
-rw-r--r--gdb/rs6000-aix-tdep.c2
-rw-r--r--gdb/rs6000-aix-tdep.h2
-rw-r--r--gdb/rs6000-lynx178-tdep.c2
-rw-r--r--gdb/rs6000-tdep.c6
-rw-r--r--gdb/run-on-main-thread.c4
-rw-r--r--gdb/run-on-main-thread.h2
-rw-r--r--gdb/rust-exp.h38
-rw-r--r--gdb/rust-lang.c50
-rw-r--r--gdb/rust-lang.h2
-rw-r--r--gdb/rust-parse.c2
-rw-r--r--gdb/rx-tdep.c2
-rw-r--r--gdb/s12z-tdep.c2
-rw-r--r--gdb/s390-linux-nat.c2
-rw-r--r--gdb/s390-linux-tdep.c46
-rw-r--r--gdb/s390-linux-tdep.h2
-rw-r--r--gdb/s390-tdep.c58
-rw-r--r--gdb/s390-tdep.h2
-rw-r--r--gdb/sanitize.m42
-rw-r--r--gdb/scoped-mock-context.h4
-rw-r--r--gdb/selftest-arch.c23
-rw-r--r--gdb/selftest-arch.h7
-rw-r--r--gdb/sentinel-frame.c2
-rw-r--r--gdb/sentinel-frame.h2
-rw-r--r--gdb/ser-base.c2
-rw-r--r--gdb/ser-base.h2
-rw-r--r--gdb/ser-event.c2
-rw-r--r--gdb/ser-event.h2
-rw-r--r--gdb/ser-go32.c2
-rw-r--r--gdb/ser-mingw.c6
-rw-r--r--gdb/ser-pipe.c2
-rw-r--r--gdb/ser-tcp.c2
-rw-r--r--gdb/ser-tcp.h2
-rw-r--r--gdb/ser-uds.c2
-rw-r--r--gdb/ser-unix.c164
-rw-r--r--gdb/ser-unix.h2
-rw-r--r--gdb/serial.c2
-rw-r--r--gdb/serial.h2
-rw-r--r--gdb/sh-linux-tdep.c2
-rw-r--r--gdb/sh-netbsd-nat.c2
-rw-r--r--gdb/sh-netbsd-tdep.c2
-rw-r--r--gdb/sh-tdep.c2
-rw-r--r--gdb/sh-tdep.h2
-rw-r--r--gdb/sim-regno.h2
-rw-r--r--gdb/skip.c2
-rw-r--r--gdb/skip.h2
-rw-r--r--gdb/sol-thread.c29
-rw-r--r--gdb/sol2-tdep.c2
-rw-r--r--gdb/sol2-tdep.h2
-rw-r--r--gdb/solib-aix.c27
-rw-r--r--gdb/solib-aix.h2
-rw-r--r--gdb/solib-darwin.c51
-rw-r--r--gdb/solib-darwin.h2
-rw-r--r--gdb/solib-dsbt.c24
-rw-r--r--gdb/solib-dsbt.h2
-rw-r--r--gdb/solib-frv.c22
-rw-r--r--gdb/solib-rocm.c24
-rw-r--r--gdb/solib-svr4.c561
-rw-r--r--gdb/solib-svr4.h22
-rw-r--r--gdb/solib-target.c36
-rw-r--r--gdb/solib-target.h2
-rw-r--r--gdb/solib.c438
-rw-r--r--gdb/solib.h213
-rw-r--r--gdb/solist.h207
-rw-r--r--gdb/source-cache.c33
-rw-r--r--gdb/source-cache.h12
-rw-r--r--gdb/source.c2
-rw-r--r--gdb/source.h2
-rw-r--r--gdb/sparc-linux-nat.c2
-rw-r--r--gdb/sparc-linux-tdep.c2
-rw-r--r--gdb/sparc-nat.c2
-rw-r--r--gdb/sparc-nat.h2
-rw-r--r--gdb/sparc-netbsd-nat.c2
-rw-r--r--gdb/sparc-netbsd-tdep.c2
-rw-r--r--gdb/sparc-obsd-tdep.c4
-rw-r--r--gdb/sparc-ravenscar-thread.c2
-rw-r--r--gdb/sparc-ravenscar-thread.h2
-rw-r--r--gdb/sparc-sol2-nat.c4
-rw-r--r--gdb/sparc-sol2-tdep.c2
-rw-r--r--gdb/sparc-tdep.c2
-rw-r--r--gdb/sparc-tdep.h2
-rw-r--r--gdb/sparc64-fbsd-nat.c2
-rw-r--r--gdb/sparc64-fbsd-tdep.c2
-rw-r--r--gdb/sparc64-linux-nat.c2
-rw-r--r--gdb/sparc64-linux-tdep.c2
-rw-r--r--gdb/sparc64-nat.c2
-rw-r--r--gdb/sparc64-netbsd-nat.c2
-rw-r--r--gdb/sparc64-netbsd-tdep.c2
-rw-r--r--gdb/sparc64-obsd-nat.c2
-rw-r--r--gdb/sparc64-obsd-tdep.c4
-rw-r--r--gdb/sparc64-sol2-tdep.c2
-rw-r--r--gdb/sparc64-tdep.c2
-rw-r--r--gdb/sparc64-tdep.h2
-rw-r--r--gdb/split-name.c2
-rw-r--r--gdb/split-name.h2
-rw-r--r--gdb/stabsread.c14
-rw-r--r--gdb/stabsread.h10
-rw-r--r--gdb/stack.c10
-rw-r--r--gdb/stack.h2
-rw-r--r--gdb/stap-probe.c8
-rw-r--r--gdb/stap-probe.h2
-rw-r--r--gdb/std-operator.def2
-rw-r--r--gdb/std-regs.c2
-rw-r--r--gdb/stub-termcap.c2
-rw-r--r--gdb/stubs/buildvms.com2
-rw-r--r--gdb/stubs/ia64vms-stub.c2
-rw-r--r--gdb/stubs/z80-stub.c2
-rw-r--r--gdb/svr4-tls-tdep.c256
-rw-r--r--gdb/svr4-tls-tdep.h59
-rw-r--r--gdb/sym-domains.def2
-rw-r--r--gdb/symfile-add-flags.h2
-rw-r--r--gdb/symfile-debug.c32
-rw-r--r--gdb/symfile-mem.c2
-rw-r--r--gdb/symfile.c28
-rw-r--r--gdb/symfile.h15
-rw-r--r--gdb/symmisc.c2
-rw-r--r--gdb/symtab.c60
-rw-r--r--gdb/symtab.h12
-rw-r--r--gdb/syscalls/Makefile2
-rw-r--r--gdb/syscalls/apply-defaults.xsl2
-rw-r--r--gdb/syscalls/freebsd.xml2
-rw-r--r--gdb/syscalls/gdb-syscalls.dtd2
-rw-r--r--gdb/syscalls/netbsd.xml2
-rwxr-xr-xgdb/syscalls/riscv-canonicalize-syscall-gen.py171
-rwxr-xr-xgdb/syscalls/update-freebsd.sh2
-rwxr-xr-xgdb/syscalls/update-linux-defaults.sh2
-rwxr-xr-xgdb/syscalls/update-linux-from-src.sh2
-rwxr-xr-xgdb/syscalls/update-linux.sh2
-rwxr-xr-xgdb/syscalls/update-netbsd.sh4
-rw-r--r--gdb/system-gdbinit/elinos.py2
-rw-r--r--gdb/system-gdbinit/wrs-linux.py2
-rw-r--r--gdb/target-connection.c2
-rw-r--r--gdb/target-connection.h2
-rw-r--r--gdb/target-dcache.c2
-rw-r--r--gdb/target-dcache.h2
-rw-r--r--gdb/target-debug.h20
-rw-r--r--gdb/target-delegates-gen.c110
-rw-r--r--gdb/target-descriptions.c2
-rw-r--r--gdb/target-descriptions.h2
-rw-r--r--gdb/target-float.c2
-rw-r--r--gdb/target-float.h2
-rw-r--r--gdb/target-memory.c2
-rw-r--r--gdb/target-section.h2
-rw-r--r--gdb/target.c34
-rw-r--r--gdb/target.h47
-rw-r--r--gdb/target/resume.h2
-rw-r--r--gdb/target/target.c2
-rw-r--r--gdb/target/target.h2
-rw-r--r--gdb/target/wait.h2
-rw-r--r--gdb/target/waitstatus.c2
-rw-r--r--gdb/target/waitstatus.h2
-rw-r--r--gdb/terminal.h2
-rw-r--r--gdb/test-target.c2
-rw-r--r--gdb/test-target.h4
-rw-r--r--gdb/testsuite/ChangeLog-1993-20132
-rw-r--r--gdb/testsuite/ChangeLog-2014-20212
-rw-r--r--gdb/testsuite/Makefile.in7
-rwxr-xr-xgdb/testsuite/analyze-racy-logs.py5
-rw-r--r--gdb/testsuite/boards/cc-with-debug-names.exp2
-rw-r--r--gdb/testsuite/boards/cc-with-dwz-5.exp28
-rw-r--r--gdb/testsuite/boards/cc-with-dwz-m.exp2
-rw-r--r--gdb/testsuite/boards/cc-with-dwz.exp2
-rw-r--r--gdb/testsuite/boards/cc-with-gdb-index.exp2
-rw-r--r--gdb/testsuite/boards/cc-with-gnu-debuglink.exp2
-rw-r--r--gdb/testsuite/boards/cc-with-index-cache.exp2
-rw-r--r--gdb/testsuite/boards/cc-with-tweaks.exp2
-rw-r--r--gdb/testsuite/boards/debug-types.exp2
-rw-r--r--gdb/testsuite/boards/dwarf4-gdb-index.exp2
-rw-r--r--gdb/testsuite/boards/dwarf5-fission-debug-types.exp33
-rw-r--r--gdb/testsuite/boards/dwarf64.exp2
-rw-r--r--gdb/testsuite/boards/fission-dwp.exp2
-rw-r--r--gdb/testsuite/boards/fission.exp2
-rw-r--r--gdb/testsuite/boards/gdbserver-base.exp2
-rw-r--r--gdb/testsuite/boards/gold-gdb-index.exp2
-rw-r--r--gdb/testsuite/boards/gold.exp2
-rw-r--r--gdb/testsuite/boards/local-board.exp2
-rw-r--r--gdb/testsuite/boards/local-remote-host-native.exp2
-rw-r--r--gdb/testsuite/boards/local-remote-host-notty.exp2
-rw-r--r--gdb/testsuite/boards/local-remote-host.exp2
-rw-r--r--gdb/testsuite/boards/native-extended-gdbserver.exp2
-rw-r--r--gdb/testsuite/boards/native-gdbserver.exp2
-rw-r--r--gdb/testsuite/boards/native-stdio-gdbserver.exp2
-rw-r--r--gdb/testsuite/boards/readnow.exp2
-rw-r--r--gdb/testsuite/boards/remote-gdbserver-on-localhost.exp2
-rw-r--r--gdb/testsuite/boards/remote-stdio-gdbserver.exp2
-rw-r--r--gdb/testsuite/boards/simavr.exp2
-rw-r--r--gdb/testsuite/boards/stabs.exp2
-rw-r--r--gdb/testsuite/boards/stdio-gdbserver-base.exp2
-rw-r--r--gdb/testsuite/config/cfdbug.exp2
-rw-r--r--gdb/testsuite/config/d10v.exp2
-rw-r--r--gdb/testsuite/config/default.exp2
-rw-r--r--gdb/testsuite/config/dve.exp2
-rw-r--r--gdb/testsuite/config/extended-gdbserver.exp2
-rw-r--r--gdb/testsuite/config/gdbserver.exp2
-rw-r--r--gdb/testsuite/config/i960.exp2
-rw-r--r--gdb/testsuite/config/m32r.exp2
-rw-r--r--gdb/testsuite/config/mips-idt.exp2
-rw-r--r--gdb/testsuite/config/mips.exp2
-rw-r--r--gdb/testsuite/config/mn10300-eval.exp2
-rw-r--r--gdb/testsuite/config/monitor.exp2
-rw-r--r--gdb/testsuite/config/proelf.exp2
-rw-r--r--gdb/testsuite/config/rom68k.exp2
-rw-r--r--gdb/testsuite/config/sh.exp2
-rw-r--r--gdb/testsuite/config/sid.exp2
-rw-r--r--gdb/testsuite/config/sim.exp2
-rw-r--r--gdb/testsuite/config/slite.exp2
-rw-r--r--gdb/testsuite/config/unix.exp2
-rw-r--r--gdb/testsuite/config/vr4300.exp2
-rw-r--r--gdb/testsuite/config/vr5000.exp2
-rw-r--r--gdb/testsuite/configure.ac2
-rw-r--r--gdb/testsuite/gdb.ada/O2_float_param.exp2
-rw-r--r--gdb/testsuite/gdb.ada/O2_float_param/callee.adb2
-rw-r--r--gdb/testsuite/gdb.ada/O2_float_param/callee.ads2
-rw-r--r--gdb/testsuite/gdb.ada/O2_float_param/caller.adb2
-rw-r--r--gdb/testsuite/gdb.ada/O2_float_param/caller.ads2
-rw-r--r--gdb/testsuite/gdb.ada/O2_float_param/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/O2_float_param/io.adb2
-rw-r--r--gdb/testsuite/gdb.ada/O2_float_param/io.ads2
-rw-r--r--gdb/testsuite/gdb.ada/access_tagged_param.exp2
-rw-r--r--gdb/testsuite/gdb.ada/access_tagged_param/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/access_tagged_param/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/access_tagged_param/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/access_to_packed_array.exp2
-rw-r--r--gdb/testsuite/gdb.ada/access_to_packed_array/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/access_to_packed_array/pack.adb2
-rw-r--r--gdb/testsuite/gdb.ada/access_to_packed_array/pack.ads2
-rw-r--r--gdb/testsuite/gdb.ada/access_to_unbounded_array.exp7
-rw-r--r--gdb/testsuite/gdb.ada/access_to_unbounded_array/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/access_to_unbounded_array/pack.adb2
-rw-r--r--gdb/testsuite/gdb.ada/access_to_unbounded_array/pack.ads2
-rw-r--r--gdb/testsuite/gdb.ada/addr_arith.exp2
-rw-r--r--gdb/testsuite/gdb.ada/addr_arith/foo_na07_019.adb2
-rw-r--r--gdb/testsuite/gdb.ada/addr_arith/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/addr_arith/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/aliased_array.exp2
-rw-r--r--gdb/testsuite/gdb.ada/aliased_array/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/aliased_array/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/aliased_array/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/arr_acc_idx_w_gap.exp2
-rw-r--r--gdb/testsuite/gdb.ada/arr_acc_idx_w_gap/enum_with_gap.adb2
-rw-r--r--gdb/testsuite/gdb.ada/arr_acc_idx_w_gap/enum_with_gap.ads2
-rw-r--r--gdb/testsuite/gdb.ada/arr_acc_idx_w_gap/enum_with_gap_main.adb2
-rw-r--r--gdb/testsuite/gdb.ada/arr_arr.exp5
-rw-r--r--gdb/testsuite/gdb.ada/arr_arr/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/arr_arr/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/arr_arr/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/arr_enum_idx_w_gap.exp2
-rw-r--r--gdb/testsuite/gdb.ada/arr_enum_idx_w_gap/foo_q418_043.adb2
-rw-r--r--gdb/testsuite/gdb.ada/array_bounds.exp2
-rw-r--r--gdb/testsuite/gdb.ada/array_bounds/bar.adb2
-rw-r--r--gdb/testsuite/gdb.ada/array_char_idx.exp2
-rw-r--r--gdb/testsuite/gdb.ada/array_char_idx/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/array_char_idx/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/array_char_idx/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/array_of_symbolic_length.exp2
-rw-r--r--gdb/testsuite/gdb.ada/array_of_symbolic_length/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/array_of_symbolic_length/gl.adb2
-rw-r--r--gdb/testsuite/gdb.ada/array_of_symbolic_length/gl.ads2
-rw-r--r--gdb/testsuite/gdb.ada/array_of_symbolic_length/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/array_of_symbolic_length/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/array_of_variable_length.exp2
-rw-r--r--gdb/testsuite/gdb.ada/array_of_variable_length/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/array_of_variable_length/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/array_of_variable_length/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/array_of_variant.exp4
-rw-r--r--gdb/testsuite/gdb.ada/array_of_variant/p.adb2
-rw-r--r--gdb/testsuite/gdb.ada/array_of_variant/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/array_of_variant/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/array_ptr_renaming.exp2
-rw-r--r--gdb/testsuite/gdb.ada/array_ptr_renaming/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/array_ptr_renaming/pack.ads2
-rw-r--r--gdb/testsuite/gdb.ada/array_return.exp4
-rw-r--r--gdb/testsuite/gdb.ada/array_return/p.adb2
-rw-r--r--gdb/testsuite/gdb.ada/array_return/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/array_return/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/array_subscript_addr.exp2
-rw-r--r--gdb/testsuite/gdb.ada/array_subscript_addr/p.adb7
-rw-r--r--gdb/testsuite/gdb.ada/arraydim.exp2
-rw-r--r--gdb/testsuite/gdb.ada/arraydim/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/arraydim/inc.c2
-rw-r--r--gdb/testsuite/gdb.ada/arraydim/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/arraydim/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/arrayidx.exp2
-rw-r--r--gdb/testsuite/gdb.ada/arrayidx/p.adb2
-rw-r--r--gdb/testsuite/gdb.ada/arrayparam.exp2
-rw-r--r--gdb/testsuite/gdb.ada/arrayparam/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/arrayparam/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/arrayparam/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/arrayptr.exp9
-rw-r--r--gdb/testsuite/gdb.ada/arrayptr/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/arrayptr/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/arrayptr/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/assign_1.exp2
-rw-r--r--gdb/testsuite/gdb.ada/assign_arr.exp2
-rw-r--r--gdb/testsuite/gdb.ada/assign_arr/main_p324_051.adb2
-rw-r--r--gdb/testsuite/gdb.ada/assign_arr/target_wrapper.adb2
-rw-r--r--gdb/testsuite/gdb.ada/assign_arr/target_wrapper.ads2
-rw-r--r--gdb/testsuite/gdb.ada/assoc.exp2
-rw-r--r--gdb/testsuite/gdb.ada/assoc/main.adb2
-rw-r--r--gdb/testsuite/gdb.ada/assoc/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/assoc/xtra.adb2
-rw-r--r--gdb/testsuite/gdb.ada/assoc/xtra.ads2
-rw-r--r--gdb/testsuite/gdb.ada/atomic_enum.exp2
-rw-r--r--gdb/testsuite/gdb.ada/atomic_enum/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/atomic_enum/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/atomic_enum/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/attr_ref_and_charlit.exp2
-rw-r--r--gdb/testsuite/gdb.ada/attr_ref_and_charlit/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/ax-ada.exp2
-rw-r--r--gdb/testsuite/gdb.ada/ax-ada/prog.adb2
-rw-r--r--gdb/testsuite/gdb.ada/bad-task-bp-keyword.exp2
-rw-r--r--gdb/testsuite/gdb.ada/bad-task-bp-keyword/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/bias.exp12
-rw-r--r--gdb/testsuite/gdb.ada/bias/bias.adb2
-rw-r--r--gdb/testsuite/gdb.ada/bias/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/bias/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/big_packed_array.exp2
-rw-r--r--gdb/testsuite/gdb.ada/big_packed_array/foo_ra24_010.adb2
-rw-r--r--gdb/testsuite/gdb.ada/big_packed_array/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/big_packed_array/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/boolean_expr.exp2
-rw-r--r--gdb/testsuite/gdb.ada/bp_c_mixed_case.exp2
-rw-r--r--gdb/testsuite/gdb.ada/bp_c_mixed_case/bar.c2
-rw-r--r--gdb/testsuite/gdb.ada/bp_c_mixed_case/foo_h731_021.adb2
-rw-r--r--gdb/testsuite/gdb.ada/bp_c_mixed_case/qux.c2
-rw-r--r--gdb/testsuite/gdb.ada/bp_enum_homonym.exp2
-rw-r--r--gdb/testsuite/gdb.ada/bp_enum_homonym/p.adb2
-rw-r--r--gdb/testsuite/gdb.ada/bp_enum_homonym/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/bp_enum_homonym/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/bp_fun_addr.exp2
-rw-r--r--gdb/testsuite/gdb.ada/bp_fun_addr/bp_fun_addr.adb2
-rw-r--r--gdb/testsuite/gdb.ada/bp_inlined_func.exp6
-rw-r--r--gdb/testsuite/gdb.ada/bp_inlined_func/b.adb2
-rw-r--r--gdb/testsuite/gdb.ada/bp_inlined_func/b.ads2
-rw-r--r--gdb/testsuite/gdb.ada/bp_inlined_func/c.adb2
-rw-r--r--gdb/testsuite/gdb.ada/bp_inlined_func/c.ads2
-rw-r--r--gdb/testsuite/gdb.ada/bp_inlined_func/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/bp_on_var.exp2
-rw-r--r--gdb/testsuite/gdb.ada/bp_on_var/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/bp_on_var/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/bp_on_var/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/bp_range_type.exp2
-rw-r--r--gdb/testsuite/gdb.ada/bp_range_type/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/bp_range_type/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/bp_range_type/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/bp_reset.exp2
-rw-r--r--gdb/testsuite/gdb.ada/bp_reset/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/bp_reset/io.adb2
-rw-r--r--gdb/testsuite/gdb.ada/bp_reset/io.ads2
-rw-r--r--gdb/testsuite/gdb.ada/bp_reset/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/bp_reset/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/break-label.exp2
-rw-r--r--gdb/testsuite/gdb.ada/break-label/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/break-label/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/break-label/proc.adb2
-rw-r--r--gdb/testsuite/gdb.ada/byte_packed_arr.exp2
-rw-r--r--gdb/testsuite/gdb.ada/byte_packed_arr/array_list_g.ads2
-rw-r--r--gdb/testsuite/gdb.ada/byte_packed_arr/reprod.adb2
-rw-r--r--gdb/testsuite/gdb.ada/byte_packed_arr/reprod.ads2
-rw-r--r--gdb/testsuite/gdb.ada/byte_packed_arr/reprod_main.adb2
-rw-r--r--gdb/testsuite/gdb.ada/call-no-debug.exp2
-rw-r--r--gdb/testsuite/gdb.ada/call-no-debug/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/call-no-debug/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/call-no-debug/prog.adb2
-rw-r--r--gdb/testsuite/gdb.ada/call_pn.exp2
-rw-r--r--gdb/testsuite/gdb.ada/call_pn/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/call_pn/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/call_pn/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/catch_assert_if.exp2
-rw-r--r--gdb/testsuite/gdb.ada/catch_assert_if/bla.adb2
-rw-r--r--gdb/testsuite/gdb.ada/catch_assert_if/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/catch_ex.exp2
-rw-r--r--gdb/testsuite/gdb.ada/catch_ex/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/catch_ex_std.exp2
-rw-r--r--gdb/testsuite/gdb.ada/catch_ex_std/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/catch_ex_std/some_package.adb2
-rw-r--r--gdb/testsuite/gdb.ada/catch_ex_std/some_package.ads2
-rw-r--r--gdb/testsuite/gdb.ada/char_enum.exp2
-rw-r--r--gdb/testsuite/gdb.ada/char_enum/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/char_enum/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/char_enum/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/char_enum_overload.exp2
-rw-r--r--gdb/testsuite/gdb.ada/char_enum_overload/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/char_enum_overload/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/char_enum_overload/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/char_enum_unicode.exp2
-rw-r--r--gdb/testsuite/gdb.ada/char_enum_unicode/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/char_enum_unicode/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/char_enum_unicode/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/char_param.exp2
-rw-r--r--gdb/testsuite/gdb.ada/char_param/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/char_param/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/char_param/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/complete.exp59
-rw-r--r--gdb/testsuite/gdb.ada/complete/aux_pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/complete/aux_pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/complete/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/complete/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/complete/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/cond_lang.exp2
-rw-r--r--gdb/testsuite/gdb.ada/cond_lang/a.adb2
-rw-r--r--gdb/testsuite/gdb.ada/cond_lang/foo.c2
-rw-r--r--gdb/testsuite/gdb.ada/cond_lang/mixed.adb2
-rw-r--r--gdb/testsuite/gdb.ada/cond_lang/mixed.ads2
-rw-r--r--gdb/testsuite/gdb.ada/cond_lang/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/cond_lang/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/convvar_comp.exp2
-rw-r--r--gdb/testsuite/gdb.ada/convvar_comp/pb16_063.adb2
-rw-r--r--gdb/testsuite/gdb.ada/convvar_comp/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/convvar_comp/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/data-sections.exp2
-rw-r--r--gdb/testsuite/gdb.ada/data-sections/main.adb2
-rw-r--r--gdb/testsuite/gdb.ada/delta-assign.exp2
-rw-r--r--gdb/testsuite/gdb.ada/delta-assign/main.adb2
-rw-r--r--gdb/testsuite/gdb.ada/delta-assign/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/delta-assign/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/dgopt.exp2
-rw-r--r--gdb/testsuite/gdb.ada/dgopt/x.adb2
-rw-r--r--gdb/testsuite/gdb.ada/disc_arr_bound.exp2
-rw-r--r--gdb/testsuite/gdb.ada/disc_arr_bound/foo_n612_026.adb2
-rw-r--r--gdb/testsuite/gdb.ada/disc_arr_bound/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/disc_arr_bound/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/discrete-char.exp2
-rw-r--r--gdb/testsuite/gdb.ada/discrete-char/main.adb2
-rw-r--r--gdb/testsuite/gdb.ada/discrete-char/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/discrete-char/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/display_nested.exp2
-rw-r--r--gdb/testsuite/gdb.ada/display_nested/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/display_nested/pack.adb2
-rw-r--r--gdb/testsuite/gdb.ada/display_nested/pack.ads2
-rw-r--r--gdb/testsuite/gdb.ada/dot_all.exp2
-rw-r--r--gdb/testsuite/gdb.ada/dot_all/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/dot_all/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/dot_all/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/dyn-bit-offset.exp79
-rw-r--r--gdb/testsuite/gdb.ada/dyn-bit-offset/exam.adb45
-rw-r--r--gdb/testsuite/gdb.ada/dyn-range.exp5
-rw-r--r--gdb/testsuite/gdb.ada/dyn-range/dyn.adb2
-rw-r--r--gdb/testsuite/gdb.ada/dyn-range/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/dyn-range/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/dyn_arrayidx.exp2
-rw-r--r--gdb/testsuite/gdb.ada/dyn_arrayidx/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/dyn_loc.exp2
-rw-r--r--gdb/testsuite/gdb.ada/dyn_loc/p.adb2
-rw-r--r--gdb/testsuite/gdb.ada/dyn_loc/pack.adb2
-rw-r--r--gdb/testsuite/gdb.ada/dyn_loc/pack.ads2
-rw-r--r--gdb/testsuite/gdb.ada/dyn_stride.exp2
-rw-r--r--gdb/testsuite/gdb.ada/dyn_stride/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/dynamic-iface.exp2
-rw-r--r--gdb/testsuite/gdb.ada/dynamic-iface/concrete.adb2
-rw-r--r--gdb/testsuite/gdb.ada/dynamic-iface/concrete.ads2
-rw-r--r--gdb/testsuite/gdb.ada/dynamic-iface/main.adb2
-rw-r--r--gdb/testsuite/gdb.ada/enum_idx_packed.exp2
-rw-r--r--gdb/testsuite/gdb.ada/enum_idx_packed/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/enum_idx_packed/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/enum_idx_packed/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/enum_qual.exp2
-rw-r--r--gdb/testsuite/gdb.ada/enum_qual/gener.ads2
-rw-r--r--gdb/testsuite/gdb.ada/enum_qual/qual.adb2
-rw-r--r--gdb/testsuite/gdb.ada/enums_overload.exp2
-rw-r--r--gdb/testsuite/gdb.ada/enums_overload/enums_overload.adb2
-rw-r--r--gdb/testsuite/gdb.ada/enums_overload/enums_overload.ads2
-rw-r--r--gdb/testsuite/gdb.ada/enums_overload/enums_overload_main.adb2
-rw-r--r--gdb/testsuite/gdb.ada/excep_handle.exp2
-rw-r--r--gdb/testsuite/gdb.ada/excep_handle/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/excep_handle/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/exception-lto.c2
-rw-r--r--gdb/testsuite/gdb.ada/exception-lto.exp2
-rw-r--r--gdb/testsuite/gdb.ada/exec_changed.exp2
-rw-r--r--gdb/testsuite/gdb.ada/exec_changed/first.adb2
-rw-r--r--gdb/testsuite/gdb.ada/exec_changed/second.adb2
-rw-r--r--gdb/testsuite/gdb.ada/expr_delims.exp2
-rw-r--r--gdb/testsuite/gdb.ada/expr_delims/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/expr_delims/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/expr_delims/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/expr_with_funcall.exp2
-rw-r--r--gdb/testsuite/gdb.ada/expr_with_funcall/expr_r821_013.adb2
-rw-r--r--gdb/testsuite/gdb.ada/expr_with_funcall/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/expr_with_funcall/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/exprs.exp2
-rw-r--r--gdb/testsuite/gdb.ada/exprs/p.adb2
-rw-r--r--gdb/testsuite/gdb.ada/file-then-restart.exp2
-rw-r--r--gdb/testsuite/gdb.ada/file-then-restart/first.adb2
-rw-r--r--gdb/testsuite/gdb.ada/file-then-restart/second.adb2
-rw-r--r--gdb/testsuite/gdb.ada/fin_fun_out.exp2
-rw-r--r--gdb/testsuite/gdb.ada/fin_fun_out/bar.adb2
-rw-r--r--gdb/testsuite/gdb.ada/fin_fun_out/bar.ads2
-rw-r--r--gdb/testsuite/gdb.ada/fin_fun_out/foo_o525_013.adb2
-rw-r--r--gdb/testsuite/gdb.ada/finish-large.exp4
-rw-r--r--gdb/testsuite/gdb.ada/finish-large/p.adb2
-rw-r--r--gdb/testsuite/gdb.ada/finish-large/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/finish-large/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/finish-var-size.exp10
-rw-r--r--gdb/testsuite/gdb.ada/finish-var-size/p.adb2
-rw-r--r--gdb/testsuite/gdb.ada/finish-var-size/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/finish-var-size/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/fixed_cmp.exp2
-rw-r--r--gdb/testsuite/gdb.ada/fixed_cmp/fixed.adb2
-rw-r--r--gdb/testsuite/gdb.ada/fixed_cmp/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/fixed_cmp/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/fixed_points.exp6
-rw-r--r--gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb9
-rw-r--r--gdb/testsuite/gdb.ada/fixed_points/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/fixed_points/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/fixed_points_function.exp2
-rw-r--r--gdb/testsuite/gdb.ada/fixed_points_function/fixed_points_function.adb2
-rw-r--r--gdb/testsuite/gdb.ada/fixed_points_function/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/fixed_points_function/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/float-bits.exp2
-rw-r--r--gdb/testsuite/gdb.ada/float-bits/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/float-bits/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/float-bits/prog.adb2
-rw-r--r--gdb/testsuite/gdb.ada/float_param.exp2
-rw-r--r--gdb/testsuite/gdb.ada/float_param/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/float_param/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/float_param/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/formatted_ref.exp2
-rw-r--r--gdb/testsuite/gdb.ada/formatted_ref/defs.adb2
-rw-r--r--gdb/testsuite/gdb.ada/formatted_ref/defs.ads2
-rw-r--r--gdb/testsuite/gdb.ada/formatted_ref/formatted_ref.adb2
-rw-r--r--gdb/testsuite/gdb.ada/frame_arg_lang.exp2
-rw-r--r--gdb/testsuite/gdb.ada/frame_arg_lang/bla.adb2
-rw-r--r--gdb/testsuite/gdb.ada/frame_arg_lang/foo.c2
-rw-r--r--gdb/testsuite/gdb.ada/frame_arg_lang/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/frame_arg_lang/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/frame_args.exp2
-rw-r--r--gdb/testsuite/gdb.ada/frame_args/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/frame_args/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/frame_args/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/fullname_bp.exp2
-rw-r--r--gdb/testsuite/gdb.ada/fullname_bp/dn.adb2
-rw-r--r--gdb/testsuite/gdb.ada/fullname_bp/dn.ads2
-rw-r--r--gdb/testsuite/gdb.ada/fullname_bp/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/fullname_bp/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/fullname_bp/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/fun_addr.exp2
-rw-r--r--gdb/testsuite/gdb.ada/fun_addr/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/fun_in_declare.exp2
-rw-r--r--gdb/testsuite/gdb.ada/fun_in_declare/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/fun_in_declare/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/fun_in_declare/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/fun_overload_menu.exp45
-rw-r--r--gdb/testsuite/gdb.ada/fun_overload_menu/foo.adb6
-rw-r--r--gdb/testsuite/gdb.ada/fun_renaming.exp2
-rw-r--r--gdb/testsuite/gdb.ada/fun_renaming/fun_renaming.adb2
-rw-r--r--gdb/testsuite/gdb.ada/fun_renaming/pack.adb2
-rw-r--r--gdb/testsuite/gdb.ada/fun_renaming/pack.ads2
-rw-r--r--gdb/testsuite/gdb.ada/funcall_char.exp2
-rw-r--r--gdb/testsuite/gdb.ada/funcall_char/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/funcall_param.exp2
-rw-r--r--gdb/testsuite/gdb.ada/funcall_param/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/funcall_param/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/funcall_param/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/funcall_ptr.exp2
-rw-r--r--gdb/testsuite/gdb.ada/funcall_ptr/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/funcall_ptr/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/funcall_ptr/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/funcall_ref.exp2
-rw-r--r--gdb/testsuite/gdb.ada/funcall_ref/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/ghost.exp2
-rw-r--r--gdb/testsuite/gdb.ada/ghost/gpck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/ghost/main.adb2
-rw-r--r--gdb/testsuite/gdb.ada/ghost/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/homonym.exp4
-rw-r--r--gdb/testsuite/gdb.ada/homonym/homonym.adb2
-rw-r--r--gdb/testsuite/gdb.ada/homonym/homonym.ads2
-rw-r--r--gdb/testsuite/gdb.ada/homonym/homonym_main.adb2
-rw-r--r--gdb/testsuite/gdb.ada/homonym/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/homonym/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/huge.exp2
-rw-r--r--gdb/testsuite/gdb.ada/huge/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/huge/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/huge/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/import.exp2
-rw-r--r--gdb/testsuite/gdb.ada/import/inc.c2
-rw-r--r--gdb/testsuite/gdb.ada/import/pkg.adb2
-rw-r--r--gdb/testsuite/gdb.ada/import/pkg.ads2
-rw-r--r--gdb/testsuite/gdb.ada/import/prog.adb2
-rw-r--r--gdb/testsuite/gdb.ada/info_addr_mixed_case.exp2
-rw-r--r--gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/info_auto_lang.exp2
-rw-r--r--gdb/testsuite/gdb.ada/info_auto_lang/global_pack.ads2
-rw-r--r--gdb/testsuite/gdb.ada/info_auto_lang/proc_in_ada.adb2
-rw-r--r--gdb/testsuite/gdb.ada/info_auto_lang/some_c.c2
-rw-r--r--gdb/testsuite/gdb.ada/info_exc.exp2
-rw-r--r--gdb/testsuite/gdb.ada/info_exc/const.ads2
-rw-r--r--gdb/testsuite/gdb.ada/info_exc/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/info_locals_renaming.exp2
-rw-r--r--gdb/testsuite/gdb.ada/info_locals_renaming/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/info_locals_renaming/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/info_locals_renaming/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/info_types.c2
-rw-r--r--gdb/testsuite/gdb.ada/info_types.exp2
-rw-r--r--gdb/testsuite/gdb.ada/inline-section-gc.exp14
-rw-r--r--gdb/testsuite/gdb.ada/inline-section-gc/callee.adb2
-rw-r--r--gdb/testsuite/gdb.ada/inline-section-gc/callee.ads2
-rw-r--r--gdb/testsuite/gdb.ada/inline-section-gc/caller.adb2
-rw-r--r--gdb/testsuite/gdb.ada/int_deref.exp2
-rw-r--r--gdb/testsuite/gdb.ada/int_deref/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/int_deref/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/interface.exp2
-rw-r--r--gdb/testsuite/gdb.ada/interface/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/interface/types.adb2
-rw-r--r--gdb/testsuite/gdb.ada/interface/types.ads2
-rw-r--r--gdb/testsuite/gdb.ada/iterated-assign.exp2
-rw-r--r--gdb/testsuite/gdb.ada/iterated-assign/main.adb2
-rw-r--r--gdb/testsuite/gdb.ada/iterated-assign/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/iterated-assign/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/iwide.exp2
-rw-r--r--gdb/testsuite/gdb.ada/iwide/classes.adb2
-rw-r--r--gdb/testsuite/gdb.ada/iwide/classes.ads2
-rw-r--r--gdb/testsuite/gdb.ada/iwide/p.adb2
-rw-r--r--gdb/testsuite/gdb.ada/lang_switch.exp2
-rw-r--r--gdb/testsuite/gdb.ada/lang_switch/foo.c2
-rw-r--r--gdb/testsuite/gdb.ada/lang_switch/lang_switch.adb2
-rw-r--r--gdb/testsuite/gdb.ada/lazy-string.exp2
-rw-r--r--gdb/testsuite/gdb.ada/lazy-string/main.adb2
-rw-r--r--gdb/testsuite/gdb.ada/length_cond.exp2
-rw-r--r--gdb/testsuite/gdb.ada/length_cond/length_cond.adb2
-rw-r--r--gdb/testsuite/gdb.ada/length_cond/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/length_cond/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/limited-length.exp2
-rw-r--r--gdb/testsuite/gdb.ada/limited-length/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/limited-length/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/limited-length/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/literals.exp2
-rw-r--r--gdb/testsuite/gdb.ada/local-enum.exp13
-rw-r--r--gdb/testsuite/gdb.ada/local-enum/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/local-enum/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/maint_with_ada.exp2
-rw-r--r--gdb/testsuite/gdb.ada/maint_with_ada/pack.adb2
-rw-r--r--gdb/testsuite/gdb.ada/maint_with_ada/pack.ads2
-rw-r--r--gdb/testsuite/gdb.ada/maint_with_ada/var_arr_typedef.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_catch_assert.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_catch_assert/bla.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_catch_assert/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/mi_catch_ex.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_catch_ex/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_catch_ex_hand.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_catch_ex_hand/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_dyn_arr.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_dyn_arr/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_dyn_arr/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_dyn_arr/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/mi_ex_cond.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_ex_cond/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_ex_cond/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/mi_exc_info.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_exc_info/const.ads2
-rw-r--r--gdb/testsuite/gdb.ada/mi_exc_info/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_interface.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_interface/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_interface/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_interface/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/mi_prot.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_prot/pkg.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_prot/pkg.ads2
-rw-r--r--gdb/testsuite/gdb.ada/mi_prot/prot.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_ref_changeable.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_ref_changeable/foo_rb20_056.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_ref_changeable/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_ref_changeable/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/mi_string_access.exp5
-rw-r--r--gdb/testsuite/gdb.ada/mi_string_access/bar.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_string_access/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_string_access/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/mi_task_arg.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_task_arg/task_switch.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_task_info.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_task_info/task_switch.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_var_access.exp13
-rw-r--r--gdb/testsuite/gdb.ada/mi_var_access/mi_access.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_var_access/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_var_access/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/mi_var_array.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_var_array/bar.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_var_array/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_var_array/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/mi_var_union.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_var_union/bar.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_var_union/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/mi_var_union/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/mi_variant.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mi_variant/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/mi_variant/pkg.adb2
-rw-r--r--gdb/testsuite/gdb.ada/minsyms.exp2
-rw-r--r--gdb/testsuite/gdb.ada/minsyms/foo_qb07_057.adb2
-rw-r--r--gdb/testsuite/gdb.ada/minsyms/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/minsyms/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/mod_from_name.exp2
-rw-r--r--gdb/testsuite/gdb.ada/mod_from_name/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/multiarray.exp2
-rw-r--r--gdb/testsuite/gdb.ada/multiarray/p.adb2
-rw-r--r--gdb/testsuite/gdb.ada/multiarray/pack.adb2
-rw-r--r--gdb/testsuite/gdb.ada/multiarray/pack.ads2
-rw-r--r--gdb/testsuite/gdb.ada/n_arr_bound.exp2
-rw-r--r--gdb/testsuite/gdb.ada/n_arr_bound/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/n_arr_bound/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/n_arr_bound/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/negative-bit-offset.exp36
-rw-r--r--gdb/testsuite/gdb.ada/negative-bit-offset/prog.adb36
-rw-r--r--gdb/testsuite/gdb.ada/nested.exp2
-rw-r--r--gdb/testsuite/gdb.ada/nested/hello.adb2
-rw-r--r--gdb/testsuite/gdb.ada/non-ascii-latin-1.exp2
-rw-r--r--gdb/testsuite/gdb.ada/non-ascii-latin-1/pack.adb2
-rw-r--r--gdb/testsuite/gdb.ada/non-ascii-latin-1/pack.ads2
-rw-r--r--gdb/testsuite/gdb.ada/non-ascii-latin-1/prog.adb2
-rw-r--r--gdb/testsuite/gdb.ada/non-ascii-latin-3.exp2
-rw-r--r--gdb/testsuite/gdb.ada/non-ascii-latin-3/pack.adb2
-rw-r--r--gdb/testsuite/gdb.ada/non-ascii-latin-3/pack.ads2
-rw-r--r--gdb/testsuite/gdb.ada/non-ascii-latin-3/prog.adb2
-rw-r--r--gdb/testsuite/gdb.ada/non-ascii-utf-8.exp2
-rw-r--r--gdb/testsuite/gdb.ada/non-ascii-utf-8/pack.adb2
-rw-r--r--gdb/testsuite/gdb.ada/non-ascii-utf-8/pack.ads2
-rw-r--r--gdb/testsuite/gdb.ada/non-ascii-utf-8/prog.adb2
-rw-r--r--gdb/testsuite/gdb.ada/notcplusplus.exp2
-rw-r--r--gdb/testsuite/gdb.ada/notcplusplus/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/notcplusplus/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/notcplusplus/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/notcplusplus/ver.ads2
-rw-r--r--gdb/testsuite/gdb.ada/null_array.exp2
-rw-r--r--gdb/testsuite/gdb.ada/null_array/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/null_array/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/null_array/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/null_overload.exp5
-rw-r--r--gdb/testsuite/gdb.ada/null_overload/foo.adb6
-rw-r--r--gdb/testsuite/gdb.ada/null_overload/pck.adb23
-rw-r--r--gdb/testsuite/gdb.ada/null_overload/pck.ads22
-rw-r--r--gdb/testsuite/gdb.ada/null_record.exp2
-rw-r--r--gdb/testsuite/gdb.ada/null_record/bar.adb2
-rw-r--r--gdb/testsuite/gdb.ada/null_record/bar.ads2
-rw-r--r--gdb/testsuite/gdb.ada/null_record/null_record.adb2
-rw-r--r--gdb/testsuite/gdb.ada/operator_bp.exp2
-rw-r--r--gdb/testsuite/gdb.ada/operator_bp/ops.adb2
-rw-r--r--gdb/testsuite/gdb.ada/operator_bp/ops.ads2
-rw-r--r--gdb/testsuite/gdb.ada/operator_bp/ops_test.adb2
-rw-r--r--gdb/testsuite/gdb.ada/operator_call.exp2
-rw-r--r--gdb/testsuite/gdb.ada/operator_call/opcall.adb2
-rw-r--r--gdb/testsuite/gdb.ada/operator_call/twovecs.adb2
-rw-r--r--gdb/testsuite/gdb.ada/operator_call/twovecs.ads2
-rw-r--r--gdb/testsuite/gdb.ada/optim_drec.exp2
-rw-r--r--gdb/testsuite/gdb.ada/optim_drec/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/out_of_line_in_inlined.exp2
-rw-r--r--gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.adb2
-rw-r--r--gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.ads2
-rw-r--r--gdb/testsuite/gdb.ada/out_of_line_in_inlined/foo_o224_021.adb2
-rw-r--r--gdb/testsuite/gdb.ada/overload_menu_crash.exp2
-rw-r--r--gdb/testsuite/gdb.ada/overload_menu_crash/main.adb2
-rw-r--r--gdb/testsuite/gdb.ada/overload_menu_crash/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/overload_menu_crash/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/overloads.exp2
-rw-r--r--gdb/testsuite/gdb.ada/overloads/overloads.adb2
-rw-r--r--gdb/testsuite/gdb.ada/p-bounds/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/p-bounds/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/packed_array.exp5
-rw-r--r--gdb/testsuite/gdb.ada/packed_array/pa.adb2
-rw-r--r--gdb/testsuite/gdb.ada/packed_array/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/packed_array/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/packed_array_assign.exp2
-rw-r--r--gdb/testsuite/gdb.ada/packed_array_assign/aggregates.adb2
-rw-r--r--gdb/testsuite/gdb.ada/packed_array_assign/aggregates.ads2
-rw-r--r--gdb/testsuite/gdb.ada/packed_array_assign/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/packed_array_assign/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/packed_array_assign/tester.adb2
-rw-r--r--gdb/testsuite/gdb.ada/packed_record.exp2
-rw-r--r--gdb/testsuite/gdb.ada/packed_record/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/packed_record/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/packed_record/pr.adb2
-rw-r--r--gdb/testsuite/gdb.ada/packed_record_2.exp61
-rw-r--r--gdb/testsuite/gdb.ada/packed_record_2/exam.adb51
-rw-r--r--gdb/testsuite/gdb.ada/packed_tagged.exp2
-rw-r--r--gdb/testsuite/gdb.ada/packed_tagged/comp_bug.adb2
-rw-r--r--gdb/testsuite/gdb.ada/pckd_arr_ren.exp2
-rw-r--r--gdb/testsuite/gdb.ada/pckd_arr_ren/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/pckd_arr_ren/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/pckd_arr_ren/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/pckd_neg.exp2
-rw-r--r--gdb/testsuite/gdb.ada/pckd_neg/foo_o508_021.adb2
-rw-r--r--gdb/testsuite/gdb.ada/pckd_neg/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/pckd_neg/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/pkd_arr_elem.exp2
-rw-r--r--gdb/testsuite/gdb.ada/pkd_arr_elem/failure.adb2
-rw-r--r--gdb/testsuite/gdb.ada/pkd_arr_elem/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/pkd_arr_elem/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/pp-rec-component.exp2
-rw-r--r--gdb/testsuite/gdb.ada/pp-rec-component.py2
-rw-r--r--gdb/testsuite/gdb.ada/pp-rec-component/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/pp-rec-component/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/pp-rec-component/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/print_chars.exp2
-rw-r--r--gdb/testsuite/gdb.ada/print_chars/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/print_chars/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/print_chars/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/print_pc.exp2
-rw-r--r--gdb/testsuite/gdb.ada/ptr_typedef.exp2
-rw-r--r--gdb/testsuite/gdb.ada/ptr_typedef/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/ptr_typedef/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/ptr_typedef/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/ptype-o.exp4
-rw-r--r--gdb/testsuite/gdb.ada/ptype-o/pck.ads25
-rw-r--r--gdb/testsuite/gdb.ada/ptype-o/prog.adb13
-rw-r--r--gdb/testsuite/gdb.ada/ptype_arith_binop.exp2
-rw-r--r--gdb/testsuite/gdb.ada/ptype_array.exp2
-rw-r--r--gdb/testsuite/gdb.ada/ptype_array/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/ptype_array/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/ptype_array/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/ptype_field.exp2
-rw-r--r--gdb/testsuite/gdb.ada/ptype_field/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/ptype_field/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/ptype_field/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/ptype_tagged_param.exp2
-rw-r--r--gdb/testsuite/gdb.ada/ptype_tagged_param/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/ptype_tagged_param/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/ptype_tagged_param/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/ptype_union.c2
-rw-r--r--gdb/testsuite/gdb.ada/ptype_union.exp2
-rw-r--r--gdb/testsuite/gdb.ada/py_range.exp7
-rw-r--r--gdb/testsuite/gdb.ada/py_range/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/py_range/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/py_range/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/py_taft.exp2
-rw-r--r--gdb/testsuite/gdb.ada/py_taft/main.adb2
-rw-r--r--gdb/testsuite/gdb.ada/py_taft/pkg.adb2
-rw-r--r--gdb/testsuite/gdb.ada/py_taft/pkg.ads2
-rw-r--r--gdb/testsuite/gdb.ada/rdv_wait.exp2
-rw-r--r--gdb/testsuite/gdb.ada/rdv_wait/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/rdv_wait/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/rdv_wait/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/rec_comp.exp7
-rw-r--r--gdb/testsuite/gdb.ada/rec_comp/bar_o203_012.adb2
-rw-r--r--gdb/testsuite/gdb.ada/rec_comp/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/rec_comp/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/rec_ptype.exp2
-rw-r--r--gdb/testsuite/gdb.ada/rec_ptype/main.adb2
-rw-r--r--gdb/testsuite/gdb.ada/rec_ptype/p.ads2
-rw-r--r--gdb/testsuite/gdb.ada/rec_return.exp2
-rw-r--r--gdb/testsuite/gdb.ada/rec_return/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/rec_return/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/rec_return/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/recursive-variant.exp2
-rw-r--r--gdb/testsuite/gdb.ada/recursive-variant/main.adb2
-rw-r--r--gdb/testsuite/gdb.ada/ref_param.exp2
-rw-r--r--gdb/testsuite/gdb.ada/ref_param/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/ref_param/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/ref_param/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/ref_tick_size.exp2
-rw-r--r--gdb/testsuite/gdb.ada/ref_tick_size/p.adb2
-rw-r--r--gdb/testsuite/gdb.ada/ref_tick_size/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/ref_tick_size/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/rename_subscript_param.exp2
-rw-r--r--gdb/testsuite/gdb.ada/rename_subscript_param/pb30_012.adb2
-rw-r--r--gdb/testsuite/gdb.ada/rename_subscript_param/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/rename_subscript_param/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/rename_subscript_param/pkg.adb2
-rw-r--r--gdb/testsuite/gdb.ada/rename_subscript_param/pkg.ads2
-rw-r--r--gdb/testsuite/gdb.ada/repeat_dyn.exp2
-rw-r--r--gdb/testsuite/gdb.ada/repeat_dyn/foo_oc22_002.adb2
-rw-r--r--gdb/testsuite/gdb.ada/repeat_dyn/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/repeat_dyn/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/same_component_name.exp2
-rw-r--r--gdb/testsuite/gdb.ada/same_component_name/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/same_component_name/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/same_component_name/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/same_enum.exp2
-rw-r--r--gdb/testsuite/gdb.ada/same_enum/a.adb2
-rw-r--r--gdb/testsuite/gdb.ada/same_enum/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/same_enum/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/scalar_storage.exp46
-rw-r--r--gdb/testsuite/gdb.ada/scalar_storage/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/scalar_storage/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/scalar_storage/storage.adb2
-rw-r--r--gdb/testsuite/gdb.ada/scoped_watch.exp2
-rw-r--r--gdb/testsuite/gdb.ada/scoped_watch/foo_p708_025.adb2
-rw-r--r--gdb/testsuite/gdb.ada/scoped_watch/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/scoped_watch/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/set_pckd_arr_elt.exp2
-rw-r--r--gdb/testsuite/gdb.ada/set_pckd_arr_elt/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/set_wstr.exp2
-rw-r--r--gdb/testsuite/gdb.ada/set_wstr/a.adb2
-rw-r--r--gdb/testsuite/gdb.ada/set_wstr/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/set_wstr/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/small_reg_param.exp2
-rw-r--r--gdb/testsuite/gdb.ada/small_reg_param/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/small_reg_param/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/small_reg_param/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/start.exp2
-rw-r--r--gdb/testsuite/gdb.ada/start/dummy.adb2
-rw-r--r--gdb/testsuite/gdb.ada/static-link.exp2
-rw-r--r--gdb/testsuite/gdb.ada/static-link/pck.adb23
-rw-r--r--gdb/testsuite/gdb.ada/static-link/pck.ads5
-rw-r--r--gdb/testsuite/gdb.ada/static-link/prog.adb4
-rw-r--r--gdb/testsuite/gdb.ada/str_binop_equal.exp2
-rw-r--r--gdb/testsuite/gdb.ada/str_binop_equal/foo_p211_061.adb2
-rw-r--r--gdb/testsuite/gdb.ada/str_binop_equal/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/str_binop_equal/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/str_chars.exp2
-rw-r--r--gdb/testsuite/gdb.ada/str_chars/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/str_ref_cmp.exp2
-rw-r--r--gdb/testsuite/gdb.ada/str_ref_cmp/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/str_ref_cmp/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/str_uninit.exp2
-rw-r--r--gdb/testsuite/gdb.ada/str_uninit/parse.adb2
-rw-r--r--gdb/testsuite/gdb.ada/str_uninit/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/str_uninit/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/sub_variant.exp2
-rw-r--r--gdb/testsuite/gdb.ada/sub_variant/subv.adb2
-rw-r--r--gdb/testsuite/gdb.ada/sym_print_name.exp2
-rw-r--r--gdb/testsuite/gdb.ada/sym_print_name/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/sym_print_name/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/sym_print_name/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/taft_type.exp2
-rw-r--r--gdb/testsuite/gdb.ada/taft_type/p.adb2
-rw-r--r--gdb/testsuite/gdb.ada/taft_type/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/taft_type/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/tagged-lookup.exp2
-rw-r--r--gdb/testsuite/gdb.ada/tagged-lookup/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/tagged-lookup/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/tagged-lookup/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/tagged-lookup/pck2.adb2
-rw-r--r--gdb/testsuite/gdb.ada/tagged-lookup/pck2.ads2
-rw-r--r--gdb/testsuite/gdb.ada/tagged.exp2
-rw-r--r--gdb/testsuite/gdb.ada/tagged/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/tagged/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/tagged/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/tagged_access.exp2
-rw-r--r--gdb/testsuite/gdb.ada/tagged_access/p.adb2
-rw-r--r--gdb/testsuite/gdb.ada/tagged_access/pack.adb2
-rw-r--r--gdb/testsuite/gdb.ada/tagged_access/pack.ads2
-rw-r--r--gdb/testsuite/gdb.ada/tagged_not_init.exp2
-rw-r--r--gdb/testsuite/gdb.ada/tagged_not_init/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/tagged_not_init/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/tagged_not_init/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/task_bp.exp2
-rw-r--r--gdb/testsuite/gdb.ada/task_bp/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/task_bp/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/task_bp/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/task_switch_in_core.exp4
-rw-r--r--gdb/testsuite/gdb.ada/task_switch_in_core/crash.adb2
-rw-r--r--gdb/testsuite/gdb.ada/task_watch.exp2
-rw-r--r--gdb/testsuite/gdb.ada/task_watch/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/tasks.exp2
-rw-r--r--gdb/testsuite/gdb.ada/tasks/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/tick_last_segv.exp2
-rw-r--r--gdb/testsuite/gdb.ada/tick_last_segv/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/tick_length_array_enum_idx.exp2
-rw-r--r--gdb/testsuite/gdb.ada/tick_length_array_enum_idx/foo_n207_004.adb2
-rw-r--r--gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/type-tick-size.exp2
-rw-r--r--gdb/testsuite/gdb.ada/type-tick-size/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/type-tick-size/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/type-tick-size/prog.adb4
-rw-r--r--gdb/testsuite/gdb.ada/type-tick-size/support.adb2
-rw-r--r--gdb/testsuite/gdb.ada/type-tick-size/support.ads2
-rw-r--r--gdb/testsuite/gdb.ada/type_coercion.exp2
-rw-r--r--gdb/testsuite/gdb.ada/type_coercion/assign.adb2
-rw-r--r--gdb/testsuite/gdb.ada/type_coercion/ident.adb2
-rw-r--r--gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec.exp11
-rw-r--r--gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/unchecked_union.exp2
-rw-r--r--gdb/testsuite/gdb.ada/unchecked_union/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/unchecked_union/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/unchecked_union/unchecked_union.adb2
-rw-r--r--gdb/testsuite/gdb.ada/uninitialized-variable-record.exp2
-rw-r--r--gdb/testsuite/gdb.ada/uninitialized-variable-record/parse.adb2
-rw-r--r--gdb/testsuite/gdb.ada/uninitialized_vars.exp2
-rw-r--r--gdb/testsuite/gdb.ada/uninitialized_vars/parse.adb2
-rw-r--r--gdb/testsuite/gdb.ada/uninitialized_vars/parse_controlled.ads2
-rw-r--r--gdb/testsuite/gdb.ada/unsigned_last.exp2
-rw-r--r--gdb/testsuite/gdb.ada/unsigned_last/main.adb2
-rw-r--r--gdb/testsuite/gdb.ada/unsigned_range.exp2
-rw-r--r--gdb/testsuite/gdb.ada/unsigned_range/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/unsigned_range/pack.adb2
-rw-r--r--gdb/testsuite/gdb.ada/unsigned_range/pack.ads2
-rw-r--r--gdb/testsuite/gdb.ada/var_arr_attrs.exp2
-rw-r--r--gdb/testsuite/gdb.ada/var_arr_attrs/foo_o115_002.adb2
-rw-r--r--gdb/testsuite/gdb.ada/var_arr_attrs/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/var_arr_attrs/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/var_arr_typedef.exp2
-rw-r--r--gdb/testsuite/gdb.ada/var_arr_typedef/pack.adb2
-rw-r--r--gdb/testsuite/gdb.ada/var_arr_typedef/pack.ads2
-rw-r--r--gdb/testsuite/gdb.ada/var_arr_typedef/var_arr_typedef.adb2
-rw-r--r--gdb/testsuite/gdb.ada/var_rec_arr.exp2
-rw-r--r--gdb/testsuite/gdb.ada/var_rec_arr/foo_na09_042.adb2
-rw-r--r--gdb/testsuite/gdb.ada/var_rec_arr/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/var_rec_arr/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/variant-record.exp2
-rw-r--r--gdb/testsuite/gdb.ada/variant-record/proc.adb2
-rw-r--r--gdb/testsuite/gdb.ada/variant-record/value.adb2
-rw-r--r--gdb/testsuite/gdb.ada/variant-record/value.ads2
-rw-r--r--gdb/testsuite/gdb.ada/variant.exp2
-rw-r--r--gdb/testsuite/gdb.ada/variant/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/variant/pkg.adb2
-rw-r--r--gdb/testsuite/gdb.ada/variant_record_field.exp6
-rw-r--r--gdb/testsuite/gdb.ada/variant_record_field/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/variant_record_packed_array.exp4
-rw-r--r--gdb/testsuite/gdb.ada/variant_record_packed_array/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/variant_record_packed_array/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/variant_record_packed_array/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/varsize_limit.exp2
-rw-r--r--gdb/testsuite/gdb.ada/varsize_limit/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/varsize_limit/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/varsize_limit/vsizelim.adb2
-rw-r--r--gdb/testsuite/gdb.ada/verylong.exp2
-rw-r--r--gdb/testsuite/gdb.ada/verylong/prog.adb2
-rw-r--r--gdb/testsuite/gdb.ada/vla.exp2
-rw-r--r--gdb/testsuite/gdb.ada/vla/vla.adb2
-rw-r--r--gdb/testsuite/gdb.ada/voidctx.exp2
-rw-r--r--gdb/testsuite/gdb.ada/voidctx/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/voidctx/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/voidctx/voidctx.adb2
-rw-r--r--gdb/testsuite/gdb.ada/watch_arg.exp2
-rw-r--r--gdb/testsuite/gdb.ada/watch_arg/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/watch_arg/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/watch_arg/watch.adb2
-rw-r--r--gdb/testsuite/gdb.ada/watch_minus_l.exp2
-rw-r--r--gdb/testsuite/gdb.ada/watch_minus_l/foo_ra10_006.adb2
-rw-r--r--gdb/testsuite/gdb.ada/watch_minus_l/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/watch_minus_l/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/whatis_array_val.exp7
-rw-r--r--gdb/testsuite/gdb.ada/whatis_array_val/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/whatis_array_val/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/whatis_array_val/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/widewide.exp2
-rw-r--r--gdb/testsuite/gdb.ada/widewide/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/widewide/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/widewide/pck.ads2
-rw-r--r--gdb/testsuite/gdb.ada/win_fu_syms.exp3
-rw-r--r--gdb/testsuite/gdb.ada/win_fu_syms/foo.adb2
-rw-r--r--gdb/testsuite/gdb.ada/win_fu_syms/pck.adb2
-rw-r--r--gdb/testsuite/gdb.ada/win_fu_syms/pck.ads2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-atomic-inst.c2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-atomic-inst.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-brk-patterns.c2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-brk-patterns.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-dbreg-contents.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-fp.c2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-fp.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-mops-single-step.c2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-mops-single-step.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-mops-watchpoint.c2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-mops-watchpoint.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-mte-core.c2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-mte-core.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-mte.c2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-mte.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-non-address-bits.c2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-non-address-bits.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-pauth.c2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-pauth.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-prologue.c2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-prologue.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-pseudo-unwind-asm.S2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-pseudo-unwind.c2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-pseudo-unwind.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sighandler-regs.c2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sighandler-regs.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-core-0.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-core-1.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-core-2.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-core-3.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-core-4.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-core.c2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-core.exp.tcl2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-available-0.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-available-1.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-available-2.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-available-3.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-available-4.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-available-5.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-available-6.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-available-7.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-available-8.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-available-9.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-available.c2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-available.exp.tcl2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-0.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-1.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-2.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-3.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-4.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe.c2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe.exp.tcl2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-0.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-1.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-2.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-3.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-4.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-5.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-6.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-7.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-8.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-9.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable.c2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable.exp.tcl2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-sanity.c2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sme-sanity.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sve-sigunwind.c205
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sve-sigunwind.exp106
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sve.c2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-sve.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-tagged-pointer.c2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-tagged-pointer.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-unwind-pc.S2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-unwind-pc.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-w-registers.c2
-rw-r--r--gdb/testsuite/gdb.arch/aarch64-w-registers.exp2
-rw-r--r--gdb/testsuite/gdb.arch/aix-sighandle.c2
-rw-r--r--gdb/testsuite/gdb.arch/aix-sighandle.exp2
-rw-r--r--gdb/testsuite/gdb.arch/alpha-step.c2
-rw-r--r--gdb/testsuite/gdb.arch/alpha-step.exp2
-rw-r--r--gdb/testsuite/gdb.arch/altivec-abi.exp2
-rw-r--r--gdb/testsuite/gdb.arch/altivec-regs.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-break-on-asm-line.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-break-on-asm-line.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-byte.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-disp-step-avx.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-disp-step-avx.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-disp-step-self-call-alarm.c2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-disp-step-self-call.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-disp-step-self-call.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-disp-step-signal.c2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-disp-step.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-disp-step.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-dword.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-entry-value-inline.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-entry-value-inline.c2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-entry-value-inline.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.c2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-entry-value-param.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-entry-value-param.c2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-entry-value-param.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-entry-value-paramref.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-entry-value-paramref.cc2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-entry-value-paramref.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-entry-value.cc2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-entry-value.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-entry-value.s2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-eval.cc2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-eval.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-gs_base.c2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-gs_base.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-i386-address.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-i386-address.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-init-x87-values.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-init-x87-values.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.c2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-invalid-stack-top.c2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-invalid-stack-top.exp2
-rwxr-xr-xgdb/testsuite/gdb.arch/amd64-lam.c2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-lam.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-optimout-repeat.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-optimout-repeat.c2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-optimout-repeat.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-osabi.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-prologue-skip.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-prologue-skip.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-prologue-xmm.c2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-prologue-xmm.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-prologue-xmm.s2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-pseudo-unwind-asm.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-pseudo-unwind.c2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-pseudo-unwind.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-pseudo.c2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-stap-expressions.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-stap-expressions.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-stap-special-operands.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-stap-three-arg-disp.c2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-stap-triplet.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-stap-triplet.c2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-tailcall-cxx.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.cc2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.cc2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-tailcall-noret.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-tailcall-noret.c2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-tailcall-noret.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-tailcall-ret.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-tailcall-ret.c2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-tailcall-ret.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-tailcall-self.S2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-tailcall-self.c2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-tailcall-self.exp2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-watchpoint-downgrade.c2
-rw-r--r--gdb/testsuite/gdb.arch/amd64-watchpoint-downgrade.exp4
-rw-r--r--gdb/testsuite/gdb.arch/amd64-word.exp2
-rw-r--r--gdb/testsuite/gdb.arch/arc-analyze-prologue.S2
-rw-r--r--gdb/testsuite/gdb.arch/arc-analyze-prologue.exp2
-rw-r--r--gdb/testsuite/gdb.arch/arc-dbnz.S2
-rw-r--r--gdb/testsuite/gdb.arch/arc-dbnz.exp2
-rw-r--r--gdb/testsuite/gdb.arch/arc-decode-insn.S2
-rw-r--r--gdb/testsuite/gdb.arch/arc-decode-insn.exp2
-rw-r--r--gdb/testsuite/gdb.arch/arc-disassembler-options.exp2
-rw-r--r--gdb/testsuite/gdb.arch/arc-disassembler-options.s2
-rw-r--r--gdb/testsuite/gdb.arch/arc-tdesc-cpu.exp2
-rw-r--r--gdb/testsuite/gdb.arch/arc-tdesc-cpu.xml2
-rw-r--r--gdb/testsuite/gdb.arch/arm-bl-branch-dest.c2
-rw-r--r--gdb/testsuite/gdb.arch/arm-bl-branch-dest.exp2
-rw-r--r--gdb/testsuite/gdb.arch/arm-cmse-sgstubs.c2
-rw-r--r--gdb/testsuite/gdb.arch/arm-cmse-sgstubs.exp2
-rw-r--r--gdb/testsuite/gdb.arch/arm-disassembler-options.exp2
-rw-r--r--gdb/testsuite/gdb.arch/arm-disp-step.S2
-rw-r--r--gdb/testsuite/gdb.arch/arm-disp-step.exp2
-rw-r--r--gdb/testsuite/gdb.arch/arm-neon.c2
-rw-r--r--gdb/testsuite/gdb.arch/arm-neon.exp2
-rw-r--r--gdb/testsuite/gdb.arch/arm-pseudo-unwind-asm.S2
-rw-r--r--gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy-asm.S2
-rw-r--r--gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy.c2
-rw-r--r--gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy.exp2
-rw-r--r--gdb/testsuite/gdb.arch/arm-pseudo-unwind.c2
-rw-r--r--gdb/testsuite/gdb.arch/arm-pseudo-unwind.exp2
-rw-r--r--gdb/testsuite/gdb.arch/arm-pthread_cond_timedwait-bt.c2
-rw-r--r--gdb/testsuite/gdb.arch/arm-pthread_cond_timedwait-bt.exp2
-rw-r--r--gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.c2
-rw-r--r--gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.exp2
-rw-r--r--gdb/testsuite/gdb.arch/avr-flash-qualifier.c2
-rw-r--r--gdb/testsuite/gdb.arch/avr-flash-qualifier.exp2
-rw-r--r--gdb/testsuite/gdb.arch/core-file-pid0.exp2
-rw-r--r--gdb/testsuite/gdb.arch/disp-step-insn-reloc.exp2
-rw-r--r--gdb/testsuite/gdb.arch/e500-abi.exp2
-rw-r--r--gdb/testsuite/gdb.arch/e500-prologue.c2
-rw-r--r--gdb/testsuite/gdb.arch/e500-prologue.exp2
-rw-r--r--gdb/testsuite/gdb.arch/e500-regs.exp2
-rw-r--r--gdb/testsuite/gdb.arch/ftrace-insn-reloc.exp2
-rw-r--r--gdb/testsuite/gdb.arch/gdb1291.exp2
-rw-r--r--gdb/testsuite/gdb.arch/gdb1291.s2
-rw-r--r--gdb/testsuite/gdb.arch/gdb1431.exp2
-rw-r--r--gdb/testsuite/gdb.arch/gdb1431.s2
-rw-r--r--gdb/testsuite/gdb.arch/gdb1558.c2
-rw-r--r--gdb/testsuite/gdb.arch/gdb1558.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-attach-see-vdso.c2
-rw-r--r--gdb/testsuite/gdb.arch/i386-attach-see-vdso.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-avx.c2
-rw-r--r--gdb/testsuite/gdb.arch/i386-avx.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-avx512.c2
-rw-r--r--gdb/testsuite/gdb.arch/i386-avx512.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-biarch-core.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-bp_permanent.c2
-rw-r--r--gdb/testsuite/gdb.arch/i386-bp_permanent.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-byte.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-cfi-notcurrent.S2
-rw-r--r--gdb/testsuite/gdb.arch/i386-cfi-notcurrent.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-disp-step-self-call-alarm.c2
-rw-r--r--gdb/testsuite/gdb.arch/i386-disp-step-self-call.S2
-rw-r--r--gdb/testsuite/gdb.arch/i386-disp-step-self-call.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-disp-step.S2
-rw-r--r--gdb/testsuite/gdb.arch/i386-disp-step.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-dr3-watch.c2
-rw-r--r--gdb/testsuite/gdb.arch/i386-dr3-watch.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-float.S2
-rw-r--r--gdb/testsuite/gdb.arch/i386-float.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-gnu-cfi-asm.S2
-rw-r--r--gdb/testsuite/gdb.arch/i386-gnu-cfi.c2
-rw-r--r--gdb/testsuite/gdb.arch/i386-gnu-cfi.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-permbkpt.S2
-rw-r--r--gdb/testsuite/gdb.arch/i386-permbkpt.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-pkru.c2
-rw-r--r--gdb/testsuite/gdb.arch/i386-pkru.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection.c2
-rw-r--r--gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-prologue.c2
-rw-r--r--gdb/testsuite/gdb.arch/i386-prologue.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-pseudo.c2
-rw-r--r--gdb/testsuite/gdb.arch/i386-signal.c2
-rw-r--r--gdb/testsuite/gdb.arch/i386-signal.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-size-overlap.c2
-rw-r--r--gdb/testsuite/gdb.arch/i386-size-overlap.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-size.c2
-rw-r--r--gdb/testsuite/gdb.arch/i386-size.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-sse-stack-align.S2
-rw-r--r--gdb/testsuite/gdb.arch/i386-sse-stack-align.c2
-rw-r--r--gdb/testsuite/gdb.arch/i386-sse-stack-align.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-sse.c2
-rw-r--r--gdb/testsuite/gdb.arch/i386-sse.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.S2
-rw-r--r--gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.c2
-rw-r--r--gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-unwind.c2
-rw-r--r--gdb/testsuite/gdb.arch/i386-unwind.exp2
-rw-r--r--gdb/testsuite/gdb.arch/i386-word.exp2
-rw-r--r--gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.S2
-rw-r--r--gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.exp2
-rw-r--r--gdb/testsuite/gdb.arch/insn-reloc.c2
-rw-r--r--gdb/testsuite/gdb.arch/iwmmxt-regs.c2
-rw-r--r--gdb/testsuite/gdb.arch/iwmmxt-regs.exp2
-rw-r--r--gdb/testsuite/gdb.arch/mips-disassembler-options.exp2
-rw-r--r--gdb/testsuite/gdb.arch/mips-disassembler-options.s2
-rw-r--r--gdb/testsuite/gdb.arch/mips-fcr.c2
-rw-r--r--gdb/testsuite/gdb.arch/mips-fcr.exp2
-rw-r--r--gdb/testsuite/gdb.arch/mips-fpregset-core.c2
-rw-r--r--gdb/testsuite/gdb.arch/mips-fpregset-core.exp2
-rw-r--r--gdb/testsuite/gdb.arch/mips-octeon-bbit.exp2
-rw-r--r--gdb/testsuite/gdb.arch/mips16-thunks-inmain.c2
-rw-r--r--gdb/testsuite/gdb.arch/mips16-thunks-main.c2
-rw-r--r--gdb/testsuite/gdb.arch/mips16-thunks-sin.c2
-rw-r--r--gdb/testsuite/gdb.arch/mips16-thunks-sinfrob.c2
-rw-r--r--gdb/testsuite/gdb.arch/mips16-thunks-sinfrob16.c2
-rw-r--r--gdb/testsuite/gdb.arch/mips16-thunks-sinmain.c2
-rw-r--r--gdb/testsuite/gdb.arch/mips16-thunks-sinmips16.c2
-rw-r--r--gdb/testsuite/gdb.arch/mips16-thunks.exp2
-rw-r--r--gdb/testsuite/gdb.arch/pa-nullify.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-addpcis.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-addpcis.s2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-aix-prologue.c2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-altivec.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-altivec.s2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-altivec2.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-altivec2.s2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-altivec3.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-altivec3.s2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-d128-regs.c2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-d128-regs.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-disassembler-options.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-fpscr-gcore.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-htm-regs.c2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-htm-regs.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-lnia.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-lnia.s2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-plxv-nonrel.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-plxv-nonrel.s2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-power10.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-power10.s2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-power7.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-power7.s2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-power8.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-power8.s2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-power9.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-power9.s2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-ppr-dscr.c2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-ppr-dscr.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-prologue-frame.S2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-prologue-frame.c2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-prologue-frame.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-prologue.c2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-prologue.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-stackless.S2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-stackless.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-tar.c2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-tar.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-trap.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-trap.s2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-vector-regs.c2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-vector-regs.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-vsx-gcore.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-vsx.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-vsx.s2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-vsx2.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-vsx2.s2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-vsx3.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc-vsx3.s2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc64-prologue.c2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc64-prologue.exp2
-rw-r--r--gdb/testsuite/gdb.arch/powerpc64-trap.s2
-rw-r--r--gdb/testsuite/gdb.arch/ppc-dfp.c2
-rw-r--r--gdb/testsuite/gdb.arch/ppc-dfp.exp2
-rw-r--r--gdb/testsuite/gdb.arch/ppc-fp.c2
-rw-r--r--gdb/testsuite/gdb.arch/ppc-fp.exp2
-rw-r--r--gdb/testsuite/gdb.arch/ppc-longdouble.c2
-rw-r--r--gdb/testsuite/gdb.arch/ppc-longdouble.exp2
-rw-r--r--gdb/testsuite/gdb.arch/ppc64-atomic-inst.S2
-rw-r--r--gdb/testsuite/gdb.arch/ppc64-atomic-inst.exp2
-rw-r--r--gdb/testsuite/gdb.arch/ppc64-break-on-_exit-main.c2
-rw-r--r--gdb/testsuite/gdb.arch/ppc64-break-on-_exit.c2
-rw-r--r--gdb/testsuite/gdb.arch/ppc64-break-on-_exit.exp2
-rw-r--r--gdb/testsuite/gdb.arch/ppc64-break-on-_exit.s2
-rw-r--r--gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.S2
-rw-r--r--gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.c2
-rw-r--r--gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.exp2
-rw-r--r--gdb/testsuite/gdb.arch/ppc64-symtab-cordic.exp2
-rw-r--r--gdb/testsuite/gdb.arch/pr25124.S2
-rw-r--r--gdb/testsuite/gdb.arch/pr25124.exp2
-rw-r--r--gdb/testsuite/gdb.arch/riscv-bp-infcall.c2
-rw-r--r--gdb/testsuite/gdb.arch/riscv-bp-infcall.exp2
-rw-r--r--gdb/testsuite/gdb.arch/riscv-default-tdesc.exp2
-rw-r--r--gdb/testsuite/gdb.arch/riscv-info-fcsr.c2
-rw-r--r--gdb/testsuite/gdb.arch/riscv-info-fcsr.exp2
-rw-r--r--gdb/testsuite/gdb.arch/riscv-reg-aliases.c2
-rw-r--r--gdb/testsuite/gdb.arch/riscv-reg-aliases.exp2
-rw-r--r--gdb/testsuite/gdb.arch/riscv-tdesc-loading.exp2
-rw-r--r--gdb/testsuite/gdb.arch/riscv-tdesc-regs.c2
-rw-r--r--gdb/testsuite/gdb.arch/riscv-tdesc-regs.exp2
-rw-r--r--gdb/testsuite/gdb.arch/riscv-unwind-long-insn.S2
-rw-r--r--gdb/testsuite/gdb.arch/riscv-unwind-long-insn.c2
-rw-r--r--gdb/testsuite/gdb.arch/riscv-unwind-long-insn.exp2
-rw-r--r--gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-c_li-foo.s2
-rw-r--r--gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-c_li.c2
-rw-r--r--gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-c_li.exp2
-rw-r--r--gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-ld-lw-foo.s2
-rw-r--r--gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-ld-lw.c2
-rw-r--r--gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-ld-lw.exp2
-rw-r--r--gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-mv.c2
-rw-r--r--gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-mv.exp2
-rw-r--r--gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-mv.s2
-rw-r--r--gdb/testsuite/gdb.arch/s390-disassembler-options.exp2
-rw-r--r--gdb/testsuite/gdb.arch/s390-multiarch.c2
-rw-r--r--gdb/testsuite/gdb.arch/s390-multiarch.exp2
-rw-r--r--gdb/testsuite/gdb.arch/s390-stackless.S2
-rw-r--r--gdb/testsuite/gdb.arch/s390-stackless.exp2
-rw-r--r--gdb/testsuite/gdb.arch/s390-tdbregs.c2
-rw-r--r--gdb/testsuite/gdb.arch/s390-tdbregs.exp2
-rw-r--r--gdb/testsuite/gdb.arch/s390-vregs.S2
-rw-r--r--gdb/testsuite/gdb.arch/s390-vregs.exp2
-rw-r--r--gdb/testsuite/gdb.arch/skip-prologue.c2
-rw-r--r--gdb/testsuite/gdb.arch/skip-prologue.exp2
-rw-r--r--gdb/testsuite/gdb.arch/sparc-sysstep.c2
-rw-r--r--gdb/testsuite/gdb.arch/sparc-sysstep.exp2
-rw-r--r--gdb/testsuite/gdb.arch/sparc64-adi.c2
-rw-r--r--gdb/testsuite/gdb.arch/sparc64-adi.exp2
-rw-r--r--gdb/testsuite/gdb.arch/sparc64-regs.S2
-rw-r--r--gdb/testsuite/gdb.arch/sparc64-regs.exp2
-rw-r--r--gdb/testsuite/gdb.arch/thumb-bx-pc.S2
-rw-r--r--gdb/testsuite/gdb.arch/thumb-bx-pc.exp2
-rw-r--r--gdb/testsuite/gdb.arch/thumb-prologue.c2
-rw-r--r--gdb/testsuite/gdb.arch/thumb-prologue.exp2
-rw-r--r--gdb/testsuite/gdb.arch/thumb-singlestep.S2
-rw-r--r--gdb/testsuite/gdb.arch/thumb-singlestep.exp2
-rw-r--r--gdb/testsuite/gdb.arch/thumb2-it.S2
-rw-r--r--gdb/testsuite/gdb.arch/thumb2-it.exp2
-rw-r--r--gdb/testsuite/gdb.arch/vsx-regs.exp2
-rw-r--r--gdb/testsuite/gdb.arch/vsx-vsr-float28.c2
-rw-r--r--gdb/testsuite/gdb.arch/vsx-vsr-float28.exp2
-rw-r--r--gdb/testsuite/gdb.arch/x86-avx512bf16.c2
-rw-r--r--gdb/testsuite/gdb.arch/x86-avx512bf16.exp2
-rw-r--r--gdb/testsuite/gdb.arch/x86-avx512fp16-abi.c2
-rw-r--r--gdb/testsuite/gdb.arch/x86-avx512fp16-abi.exp2
-rw-r--r--gdb/testsuite/gdb.arch/x86-avx512fp16.c2
-rw-r--r--gdb/testsuite/gdb.arch/x86-avx512fp16.exp2
-rw-r--r--gdb/testsuite/gdb.arch/x86-set-solib-absolute-prefix.c32
-rw-r--r--gdb/testsuite/gdb.arch/x86-set-solib-absolute-prefix.exp51
-rw-r--r--gdb/testsuite/gdb.asm/asm-source.exp2
-rw-r--r--gdb/testsuite/gdb.base/a2-run.exp2
-rw-r--r--gdb/testsuite/gdb.base/access-mem-running.c2
-rw-r--r--gdb/testsuite/gdb.base/access-mem-running.exp2
-rw-r--r--gdb/testsuite/gdb.base/add-symbol-file-attach.c2
-rw-r--r--gdb/testsuite/gdb.base/add-symbol-file-attach.exp2
-rw-r--r--gdb/testsuite/gdb.base/address_space_qualifier.exp2
-rw-r--r--gdb/testsuite/gdb.base/advance-until-multiple-locations.cc2
-rw-r--r--gdb/testsuite/gdb.base/advance-until-multiple-locations.exp2
-rw-r--r--gdb/testsuite/gdb.base/advance.exp2
-rw-r--r--gdb/testsuite/gdb.base/alias.exp2
-rw-r--r--gdb/testsuite/gdb.base/align-c++.exp2
-rw-r--r--gdb/testsuite/gdb.base/align-c.exp2
-rw-r--r--gdb/testsuite/gdb.base/align.exp.tcl2
-rw-r--r--gdb/testsuite/gdb.base/all-architectures-0.exp2
-rw-r--r--gdb/testsuite/gdb.base/all-architectures-1.exp2
-rw-r--r--gdb/testsuite/gdb.base/all-architectures-2.exp2
-rw-r--r--gdb/testsuite/gdb.base/all-architectures-3.exp2
-rw-r--r--gdb/testsuite/gdb.base/all-architectures-4.exp2
-rw-r--r--gdb/testsuite/gdb.base/all-architectures-5.exp2
-rw-r--r--gdb/testsuite/gdb.base/all-architectures-6.exp2
-rw-r--r--gdb/testsuite/gdb.base/all-architectures-7.exp2
-rw-r--r--gdb/testsuite/gdb.base/all-architectures.exp.tcl2
-rw-r--r--gdb/testsuite/gdb.base/all-bin.exp2
-rw-r--r--gdb/testsuite/gdb.base/annota-input-while-running.c2
-rw-r--r--gdb/testsuite/gdb.base/annota-input-while-running.exp2
-rw-r--r--gdb/testsuite/gdb.base/annota1.exp2
-rw-r--r--gdb/testsuite/gdb.base/annota3.exp2
-rw-r--r--gdb/testsuite/gdb.base/annotate-symlink.exp2
-rw-r--r--gdb/testsuite/gdb.base/anon.exp2
-rw-r--r--gdb/testsuite/gdb.base/args.exp57
-rw-r--r--gdb/testsuite/gdb.base/argv0-symlink.c2
-rw-r--r--gdb/testsuite/gdb.base/argv0-symlink.exp2
-rw-r--r--gdb/testsuite/gdb.base/arithmet.exp2
-rw-r--r--gdb/testsuite/gdb.base/array-indices.exp2
-rw-r--r--gdb/testsuite/gdb.base/array-indices.exp.tcl2
-rw-r--r--gdb/testsuite/gdb.base/array-repeat.c2
-rw-r--r--gdb/testsuite/gdb.base/array-repeat.exp2
-rw-r--r--gdb/testsuite/gdb.base/array-repeat.exp.tcl2
-rw-r--r--gdb/testsuite/gdb.base/arrayidx.c2
-rw-r--r--gdb/testsuite/gdb.base/arrayidx.exp2
-rw-r--r--gdb/testsuite/gdb.base/asmlabel.c2
-rw-r--r--gdb/testsuite/gdb.base/asmlabel.exp2
-rw-r--r--gdb/testsuite/gdb.base/assign.exp2
-rw-r--r--gdb/testsuite/gdb.base/async-shell.c2
-rw-r--r--gdb/testsuite/gdb.base/async-shell.exp2
-rw-r--r--gdb/testsuite/gdb.base/async.exp2
-rw-r--r--gdb/testsuite/gdb.base/attach-deleted-exec.c2
-rw-r--r--gdb/testsuite/gdb.base/attach-deleted-exec.exp2
-rw-r--r--gdb/testsuite/gdb.base/attach-fail-twice.c2
-rw-r--r--gdb/testsuite/gdb.base/attach-fail-twice.exp2
-rw-r--r--gdb/testsuite/gdb.base/attach-non-pgrp-leader.c2
-rw-r--r--gdb/testsuite/gdb.base/attach-non-pgrp-leader.exp2
-rw-r--r--gdb/testsuite/gdb.base/attach-pie-misread.c2
-rw-r--r--gdb/testsuite/gdb.base/attach-pie-misread.exp2
-rw-r--r--gdb/testsuite/gdb.base/attach-pie-noexec.c2
-rw-r--r--gdb/testsuite/gdb.base/attach-pie-noexec.exp6
-rw-r--r--gdb/testsuite/gdb.base/attach-twice.c2
-rw-r--r--gdb/testsuite/gdb.base/attach-twice.exp2
-rw-r--r--gdb/testsuite/gdb.base/attach-wait-input.c2
-rw-r--r--gdb/testsuite/gdb.base/attach-wait-input.exp2
-rw-r--r--gdb/testsuite/gdb.base/attach.exp2
-rw-r--r--gdb/testsuite/gdb.base/auto-connect-native-target.c2
-rw-r--r--gdb/testsuite/gdb.base/auto-connect-native-target.exp2
-rw-r--r--gdb/testsuite/gdb.base/auto-load-script2
-rw-r--r--gdb/testsuite/gdb.base/auto-load.c2
-rw-r--r--gdb/testsuite/gdb.base/auto-load.exp2
-rw-r--r--gdb/testsuite/gdb.base/auxv.c2
-rw-r--r--gdb/testsuite/gdb.base/auxv.exp2
-rw-r--r--gdb/testsuite/gdb.base/backtrace.c2
-rw-r--r--gdb/testsuite/gdb.base/backtrace.exp2
-rw-r--r--gdb/testsuite/gdb.base/bad-file.exp2
-rw-r--r--gdb/testsuite/gdb.base/bang.exp2
-rw-r--r--gdb/testsuite/gdb.base/basic-edit-cmd.c2
-rw-r--r--gdb/testsuite/gdb.base/basic-edit-cmd.exp2
-rw-r--r--gdb/testsuite/gdb.base/batch-exit-status.exp2
-rw-r--r--gdb/testsuite/gdb.base/batch-preserve-term-settings.c2
-rw-r--r--gdb/testsuite/gdb.base/batch-preserve-term-settings.exp2
-rw-r--r--gdb/testsuite/gdb.base/bfd-errors-lib.c2
-rw-r--r--gdb/testsuite/gdb.base/bfd-errors.exp2
-rw-r--r--gdb/testsuite/gdb.base/bfp-test.c2
-rw-r--r--gdb/testsuite/gdb.base/bfp-test.exp2
-rw-r--r--gdb/testsuite/gdb.base/bg-exec-sigint-bp-cond.c2
-rw-r--r--gdb/testsuite/gdb.base/bg-exec-sigint-bp-cond.exp2
-rw-r--r--gdb/testsuite/gdb.base/bg-execution-repeat.c4
-rw-r--r--gdb/testsuite/gdb.base/bg-execution-repeat.exp13
-rw-r--r--gdb/testsuite/gdb.base/bigcore.c2
-rw-r--r--gdb/testsuite/gdb.base/bigcore.exp2
-rw-r--r--gdb/testsuite/gdb.base/bitfields.exp2
-rw-r--r--gdb/testsuite/gdb.base/bitfields2.exp2
-rw-r--r--gdb/testsuite/gdb.base/bitops.exp2
-rw-r--r--gdb/testsuite/gdb.base/bitshift.exp2
-rw-r--r--gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.c2
-rw-r--r--gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp2
-rw-r--r--gdb/testsuite/gdb.base/bp-cmds-execution-x-script.c2
-rw-r--r--gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp2
-rw-r--r--gdb/testsuite/gdb.base/bp-cmds-execution-x-script.gdb2
-rw-r--r--gdb/testsuite/gdb.base/bp-cmds-run-with-ex.c2
-rw-r--r--gdb/testsuite/gdb.base/bp-cmds-run-with-ex.exp2
-rw-r--r--gdb/testsuite/gdb.base/bp-cmds-run-with-ex.gdb2
-rw-r--r--gdb/testsuite/gdb.base/bp-cmds-sourced-script.c2
-rw-r--r--gdb/testsuite/gdb.base/bp-cmds-sourced-script.exp2
-rw-r--r--gdb/testsuite/gdb.base/bp-cmds-sourced-script.gdb2
-rw-r--r--gdb/testsuite/gdb.base/bp-cond-failure.c2
-rw-r--r--gdb/testsuite/gdb.base/bp-cond-failure.exp6
-rw-r--r--gdb/testsuite/gdb.base/bp-disabled-by-cond-lib.c24
-rw-r--r--gdb/testsuite/gdb.base/bp-disabled-by-cond.c64
-rw-r--r--gdb/testsuite/gdb.base/bp-disabled-by-cond.exp206
-rw-r--r--gdb/testsuite/gdb.base/bp-disabled-by-cond.py (renamed from gdb/contrib/common-misspellings.txt)19
-rw-r--r--gdb/testsuite/gdb.base/bp-permanent.c4
-rw-r--r--gdb/testsuite/gdb.base/bp-permanent.exp6
-rw-r--r--gdb/testsuite/gdb.base/branch-to-self.c2
-rw-r--r--gdb/testsuite/gdb.base/branch-to-self.exp2
-rw-r--r--gdb/testsuite/gdb.base/break-always.c2
-rw-r--r--gdb/testsuite/gdb.base/break-always.exp2
-rw-r--r--gdb/testsuite/gdb.base/break-caller-line.c2
-rw-r--r--gdb/testsuite/gdb.base/break-caller-line.exp2
-rw-r--r--gdb/testsuite/gdb.base/break-dbg.cc (renamed from sim/arm/sim-main.h)22
-rw-r--r--gdb/testsuite/gdb.base/break-dbg.exp70
-rw-r--r--gdb/testsuite/gdb.base/break-entry.exp2
-rw-r--r--gdb/testsuite/gdb.base/break-fun-addr.exp2
-rw-r--r--gdb/testsuite/gdb.base/break-fun-addr1.c2
-rw-r--r--gdb/testsuite/gdb.base/break-fun-addr2.c2
-rw-r--r--gdb/testsuite/gdb.base/break-idempotent.c2
-rw-r--r--gdb/testsuite/gdb.base/break-idempotent.exp2
-rw-r--r--gdb/testsuite/gdb.base/break-include.c2
-rw-r--r--gdb/testsuite/gdb.base/break-include.exp2
-rw-r--r--gdb/testsuite/gdb.base/break-include.inc2
-rw-r--r--gdb/testsuite/gdb.base/break-inline.c2
-rw-r--r--gdb/testsuite/gdb.base/break-inline.exp2
-rw-r--r--gdb/testsuite/gdb.base/break-interp-lib.c2
-rw-r--r--gdb/testsuite/gdb.base/break-interp-main.c2
-rw-r--r--gdb/testsuite/gdb.base/break-interp.exp2
-rw-r--r--gdb/testsuite/gdb.base/break-main-file-remove-fail.c2
-rw-r--r--gdb/testsuite/gdb.base/break-main-file-remove-fail.exp2
-rw-r--r--gdb/testsuite/gdb.base/break-on-linker-gcd-function.cc2
-rw-r--r--gdb/testsuite/gdb.base/break-on-linker-gcd-function.exp2
-rw-r--r--gdb/testsuite/gdb.base/break-probes-solib.c2
-rw-r--r--gdb/testsuite/gdb.base/break-probes.c2
-rw-r--r--gdb/testsuite/gdb.base/break-probes.exp2
-rw-r--r--gdb/testsuite/gdb.base/break-unload-file.c2
-rw-r--r--gdb/testsuite/gdb.base/break-unload-file.exp2
-rw-r--r--gdb/testsuite/gdb.base/break.c2
-rw-r--r--gdb/testsuite/gdb.base/break.exp2
-rw-r--r--gdb/testsuite/gdb.base/break1.c10
-rw-r--r--gdb/testsuite/gdb.base/breakpoint-in-ro-region.c2
-rw-r--r--gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp2
-rw-r--r--gdb/testsuite/gdb.base/breakpoint-shadow.c2
-rw-r--r--gdb/testsuite/gdb.base/breakpoint-shadow.exp2
-rw-r--r--gdb/testsuite/gdb.base/bt-on-error-and-warning.exp2
-rw-r--r--gdb/testsuite/gdb.base/bt-on-fatal-signal.c2
-rw-r--r--gdb/testsuite/gdb.base/bt-on-fatal-signal.exp2
-rw-r--r--gdb/testsuite/gdb.base/bt-selected-frame.c2
-rw-r--r--gdb/testsuite/gdb.base/bt-selected-frame.exp2
-rw-r--r--gdb/testsuite/gdb.base/build-id-seqno.c2
-rw-r--r--gdb/testsuite/gdb.base/build-id-seqno.exp2
-rw-r--r--gdb/testsuite/gdb.base/c-linkage-name-2.c2
-rw-r--r--gdb/testsuite/gdb.base/c-linkage-name.c2
-rw-r--r--gdb/testsuite/gdb.base/c-linkage-name.exp2
-rw-r--r--gdb/testsuite/gdb.base/cached-source-file.c2
-rw-r--r--gdb/testsuite/gdb.base/cached-source-file.exp2
-rw-r--r--gdb/testsuite/gdb.base/call-ar-st.exp2
-rw-r--r--gdb/testsuite/gdb.base/call-rt-st.exp2
-rw-r--r--gdb/testsuite/gdb.base/call-sc.c2
-rw-r--r--gdb/testsuite/gdb.base/call-sc.exp2
-rw-r--r--gdb/testsuite/gdb.base/call-signal-resume.exp2
-rw-r--r--gdb/testsuite/gdb.base/call-signals.c2
-rw-r--r--gdb/testsuite/gdb.base/call-strs.exp2
-rw-r--r--gdb/testsuite/gdb.base/callexit.c2
-rw-r--r--gdb/testsuite/gdb.base/callexit.exp2
-rw-r--r--gdb/testsuite/gdb.base/callfuncs.c2
-rw-r--r--gdb/testsuite/gdb.base/callfuncs.exp2
-rw-r--r--gdb/testsuite/gdb.base/cast-call.c2
-rw-r--r--gdb/testsuite/gdb.base/cast-call.exp2
-rw-r--r--gdb/testsuite/gdb.base/cast-indirection.c2
-rw-r--r--gdb/testsuite/gdb.base/cast-indirection.exp2
-rw-r--r--gdb/testsuite/gdb.base/catch-follow-exec.c2
-rw-r--r--gdb/testsuite/gdb.base/catch-follow-exec.exp2
-rw-r--r--gdb/testsuite/gdb.base/catch-fork-kill.c2
-rw-r--r--gdb/testsuite/gdb.base/catch-fork-kill.exp4
-rw-r--r--gdb/testsuite/gdb.base/catch-fork-static.exp6
-rw-r--r--gdb/testsuite/gdb.base/catch-gdb-caused-signals.c2
-rw-r--r--gdb/testsuite/gdb.base/catch-gdb-caused-signals.exp2
-rw-r--r--gdb/testsuite/gdb.base/catch-load-so.c2
-rw-r--r--gdb/testsuite/gdb.base/catch-load.c2
-rw-r--r--gdb/testsuite/gdb.base/catch-load.exp2
-rw-r--r--gdb/testsuite/gdb.base/catch-signal-fork.c2
-rw-r--r--gdb/testsuite/gdb.base/catch-signal-fork.exp3
-rw-r--r--gdb/testsuite/gdb.base/catch-signal-siginfo-cond.c2
-rw-r--r--gdb/testsuite/gdb.base/catch-signal-siginfo-cond.exp2
-rw-r--r--gdb/testsuite/gdb.base/catch-signal.c2
-rw-r--r--gdb/testsuite/gdb.base/catch-signal.exp2
-rw-r--r--gdb/testsuite/gdb.base/catch-syscall.exp2
-rw-r--r--gdb/testsuite/gdb.base/charset-malloc.c2
-rw-r--r--gdb/testsuite/gdb.base/charset.c2
-rw-r--r--gdb/testsuite/gdb.base/charset.exp2
-rw-r--r--gdb/testsuite/gdb.base/check-psymtab.c2
-rw-r--r--gdb/testsuite/gdb.base/check-psymtab.exp2
-rw-r--r--gdb/testsuite/gdb.base/checkpoint-ns.exp2
-rw-r--r--gdb/testsuite/gdb.base/checkpoint.c2
-rw-r--r--gdb/testsuite/gdb.base/checkpoint.exp2
-rw-r--r--gdb/testsuite/gdb.base/chng-syms.exp2
-rw-r--r--gdb/testsuite/gdb.base/clear_non_user_bp.exp2
-rw-r--r--gdb/testsuite/gdb.base/cli-suppress-notification.c2
-rw-r--r--gdb/testsuite/gdb.base/cli-suppress-notification.exp2
-rw-r--r--gdb/testsuite/gdb.base/code-expr.exp2
-rw-r--r--gdb/testsuite/gdb.base/code_elim.exp2
-rw-r--r--gdb/testsuite/gdb.base/code_elim1.c2
-rw-r--r--gdb/testsuite/gdb.base/code_elim2.c2
-rw-r--r--gdb/testsuite/gdb.base/command-line-input.exp2
-rw-r--r--gdb/testsuite/gdb.base/commands.exp2
-rw-r--r--gdb/testsuite/gdb.base/compare-sections.c2
-rw-r--r--gdb/testsuite/gdb.base/compare-sections.exp2
-rw-r--r--gdb/testsuite/gdb.base/complete-empty.exp2
-rw-r--r--gdb/testsuite/gdb.base/completion.exp2
-rw-r--r--gdb/testsuite/gdb.base/complex-parts.c2
-rw-r--r--gdb/testsuite/gdb.base/complex-parts.exp2
-rw-r--r--gdb/testsuite/gdb.base/complex.c2
-rw-r--r--gdb/testsuite/gdb.base/complex.exp2
-rw-r--r--gdb/testsuite/gdb.base/comprdebug.exp2
-rw-r--r--gdb/testsuite/gdb.base/cond-eval-mode.c2
-rw-r--r--gdb/testsuite/gdb.base/cond-eval-mode.exp2
-rw-r--r--gdb/testsuite/gdb.base/cond-expr.exp2
-rw-r--r--gdb/testsuite/gdb.base/condbreak-bad.c2
-rw-r--r--gdb/testsuite/gdb.base/condbreak-bad.exp2
-rw-r--r--gdb/testsuite/gdb.base/condbreak-call-false.c2
-rw-r--r--gdb/testsuite/gdb.base/condbreak-call-false.exp2
-rw-r--r--gdb/testsuite/gdb.base/condbreak-multi-context.cc8
-rw-r--r--gdb/testsuite/gdb.base/condbreak-multi-context.exp233
-rw-r--r--gdb/testsuite/gdb.base/condbreak.exp2
-rw-r--r--gdb/testsuite/gdb.base/consecutive-step-over.c2
-rw-r--r--gdb/testsuite/gdb.base/consecutive-step-over.exp2
-rw-r--r--gdb/testsuite/gdb.base/consecutive.exp2
-rw-r--r--gdb/testsuite/gdb.base/constvars.exp2
-rw-r--r--gdb/testsuite/gdb.base/continue-after-aborted-step-over.c2
-rw-r--r--gdb/testsuite/gdb.base/continue-after-aborted-step-over.exp2
-rw-r--r--gdb/testsuite/gdb.base/continue-all-already-running.c2
-rw-r--r--gdb/testsuite/gdb.base/continue-all-already-running.exp2
-rw-r--r--gdb/testsuite/gdb.base/coredump-filter-build-id.exp4
-rw-r--r--gdb/testsuite/gdb.base/coredump-filter.c2
-rw-r--r--gdb/testsuite/gdb.base/coredump-filter.exp2
-rw-r--r--gdb/testsuite/gdb.base/corefile-buildid-shlib-shr.c2
-rw-r--r--gdb/testsuite/gdb.base/corefile-buildid-shlib.c2
-rw-r--r--gdb/testsuite/gdb.base/corefile-buildid.c2
-rw-r--r--gdb/testsuite/gdb.base/corefile-buildid.exp2
-rw-r--r--gdb/testsuite/gdb.base/corefile-exec-context.c2
-rw-r--r--gdb/testsuite/gdb.base/corefile-exec-context.exp4
-rw-r--r--gdb/testsuite/gdb.base/corefile-find-exec.c2
-rw-r--r--gdb/testsuite/gdb.base/corefile-find-exec.exp2
-rw-r--r--gdb/testsuite/gdb.base/corefile-shmem-zero-id-lib.c522
-rw-r--r--gdb/testsuite/gdb.base/corefile-shmem-zero-id.c63
-rw-r--r--gdb/testsuite/gdb.base/corefile-shmem-zero-id.exp228
-rw-r--r--gdb/testsuite/gdb.base/corefile.exp2
-rw-r--r--gdb/testsuite/gdb.base/corefile2.exp2
-rw-r--r--gdb/testsuite/gdb.base/corefile3.c118
-rw-r--r--gdb/testsuite/gdb.base/corefile3.exp71
-rw-r--r--gdb/testsuite/gdb.base/coremaker.c2
-rw-r--r--gdb/testsuite/gdb.base/coremaker2.c2
-rw-r--r--gdb/testsuite/gdb.base/ctf-constvars.c2
-rw-r--r--gdb/testsuite/gdb.base/ctf-constvars.exp2
-rw-r--r--gdb/testsuite/gdb.base/ctf-ptype.c2
-rw-r--r--gdb/testsuite/gdb.base/ctf-ptype.exp2
-rw-r--r--gdb/testsuite/gdb.base/ctxobj-f.c2
-rw-r--r--gdb/testsuite/gdb.base/ctxobj-m.c2
-rw-r--r--gdb/testsuite/gdb.base/ctxobj-v.c2
-rw-r--r--gdb/testsuite/gdb.base/ctxobj.exp2
-rw-r--r--gdb/testsuite/gdb.base/cursal.c2
-rw-r--r--gdb/testsuite/gdb.base/cursal.exp2
-rw-r--r--gdb/testsuite/gdb.base/cvexpr.c2
-rw-r--r--gdb/testsuite/gdb.base/cvexpr.exp2
-rw-r--r--gdb/testsuite/gdb.base/dcache-flush.c2
-rw-r--r--gdb/testsuite/gdb.base/dcache-flush.exp2
-rw-r--r--gdb/testsuite/gdb.base/dcache-line-read-error.c2
-rw-r--r--gdb/testsuite/gdb.base/dcache-line-read-error.exp2
-rw-r--r--gdb/testsuite/gdb.base/debug-expr.exp2
-rw-r--r--gdb/testsuite/gdb.base/debug-frame-2.c2
-rw-r--r--gdb/testsuite/gdb.base/debug-frame.c2
-rw-r--r--gdb/testsuite/gdb.base/debug-frame.exp2
-rw-r--r--gdb/testsuite/gdb.base/decl-before-def-decl.c2
-rw-r--r--gdb/testsuite/gdb.base/decl-before-def-def.c2
-rw-r--r--gdb/testsuite/gdb.base/decl-before-def.exp2
-rw-r--r--gdb/testsuite/gdb.base/default-args.c2
-rw-r--r--gdb/testsuite/gdb.base/default-args.exp2
-rw-r--r--gdb/testsuite/gdb.base/default.exp211
-rw-r--r--gdb/testsuite/gdb.base/define-prefix.exp2
-rw-r--r--gdb/testsuite/gdb.base/define.exp2
-rw-r--r--gdb/testsuite/gdb.base/del.c2
-rw-r--r--gdb/testsuite/gdb.base/del.exp2
-rw-r--r--gdb/testsuite/gdb.base/detach-sysroot-target.c2
-rw-r--r--gdb/testsuite/gdb.base/detach-sysroot-target.exp2
-rw-r--r--gdb/testsuite/gdb.base/detach-while-running.c2
-rw-r--r--gdb/testsuite/gdb.base/detach-while-running.exp2
-rw-r--r--gdb/testsuite/gdb.base/detach.exp2
-rw-r--r--gdb/testsuite/gdb.base/dfp-exprs.exp2
-rw-r--r--gdb/testsuite/gdb.base/dfp-test.c2
-rw-r--r--gdb/testsuite/gdb.base/dfp-test.exp2
-rw-r--r--gdb/testsuite/gdb.base/disabled-location.c2
-rw-r--r--gdb/testsuite/gdb.base/disabled-location.exp2
-rw-r--r--gdb/testsuite/gdb.base/disasm-end-cu-1.c2
-rw-r--r--gdb/testsuite/gdb.base/disasm-end-cu-2.c2
-rw-r--r--gdb/testsuite/gdb.base/disasm-end-cu.exp2
-rw-r--r--gdb/testsuite/gdb.base/disasm-optim.S2
-rw-r--r--gdb/testsuite/gdb.base/disasm-optim.c2
-rw-r--r--gdb/testsuite/gdb.base/disasm-optim.exp2
-rw-r--r--gdb/testsuite/gdb.base/disasm-optim.h2
-rw-r--r--gdb/testsuite/gdb.base/displaced-step-closure.c2
-rw-r--r--gdb/testsuite/gdb.base/displaced-step-closure.exp2
-rw-r--r--gdb/testsuite/gdb.base/display.exp2
-rw-r--r--gdb/testsuite/gdb.base/dlmopen-lib-dep.c2
-rw-r--r--gdb/testsuite/gdb.base/dlmopen-lib.c2
-rw-r--r--gdb/testsuite/gdb.base/dlmopen-main.c2
-rw-r--r--gdb/testsuite/gdb.base/dlmopen-ns-ids-lib.c28
-rw-r--r--gdb/testsuite/gdb.base/dlmopen-ns-ids-main.c60
-rw-r--r--gdb/testsuite/gdb.base/dlmopen-ns-ids.exp247
-rw-r--r--gdb/testsuite/gdb.base/dlmopen.exp292
-rw-r--r--gdb/testsuite/gdb.base/dmsym.c2
-rw-r--r--gdb/testsuite/gdb.base/dmsym.exp2
-rw-r--r--gdb/testsuite/gdb.base/dmsym_main.c2
-rw-r--r--gdb/testsuite/gdb.base/document.exp2
-rw-r--r--gdb/testsuite/gdb.base/dprintf-bp-same-addr.c2
-rw-r--r--gdb/testsuite/gdb.base/dprintf-bp-same-addr.exp2
-rw-r--r--gdb/testsuite/gdb.base/dprintf-detach.c2
-rw-r--r--gdb/testsuite/gdb.base/dprintf-detach.exp2
-rw-r--r--gdb/testsuite/gdb.base/dprintf-execution-x-script.c2
-rw-r--r--gdb/testsuite/gdb.base/dprintf-execution-x-script.exp2
-rw-r--r--gdb/testsuite/gdb.base/dprintf-execution-x-script.gdb2
-rw-r--r--gdb/testsuite/gdb.base/dprintf-next.c2
-rw-r--r--gdb/testsuite/gdb.base/dprintf-next.exp2
-rw-r--r--gdb/testsuite/gdb.base/dprintf-non-stop.c2
-rw-r--r--gdb/testsuite/gdb.base/dprintf-non-stop.exp2
-rw-r--r--gdb/testsuite/gdb.base/dprintf-pending.c2
-rw-r--r--gdb/testsuite/gdb.base/dprintf-pending.exp2
-rw-r--r--gdb/testsuite/gdb.base/dprintf-pendshr.c2
-rw-r--r--gdb/testsuite/gdb.base/dprintf.c2
-rw-r--r--gdb/testsuite/gdb.base/dprintf.exp2
-rw-r--r--gdb/testsuite/gdb.base/dso2dso-dso1.c2
-rw-r--r--gdb/testsuite/gdb.base/dso2dso-dso1.h2
-rw-r--r--gdb/testsuite/gdb.base/dso2dso-dso2.c2
-rw-r--r--gdb/testsuite/gdb.base/dso2dso-dso2.h2
-rw-r--r--gdb/testsuite/gdb.base/dso2dso.c2
-rw-r--r--gdb/testsuite/gdb.base/dso2dso.exp2
-rw-r--r--gdb/testsuite/gdb.base/dtrace-probe.c2
-rw-r--r--gdb/testsuite/gdb.base/dtrace-probe.d2
-rw-r--r--gdb/testsuite/gdb.base/dtrace-probe.exp2
-rw-r--r--gdb/testsuite/gdb.base/dump.exp8
-rw-r--r--gdb/testsuite/gdb.base/dup-sect.S2
-rw-r--r--gdb/testsuite/gdb.base/dup-sect.exp2
-rw-r--r--gdb/testsuite/gdb.base/duplicate-bp.c2
-rw-r--r--gdb/testsuite/gdb.base/duplicate-bp.exp2
-rw-r--r--gdb/testsuite/gdb.base/early-init-file.c2
-rw-r--r--gdb/testsuite/gdb.base/early-init-file.exp2
-rw-r--r--gdb/testsuite/gdb.base/echo.exp2
-rw-r--r--gdb/testsuite/gdb.base/eh_return.c2
-rw-r--r--gdb/testsuite/gdb.base/eh_return.exp2
-rw-r--r--gdb/testsuite/gdb.base/empty-host-env-vars.exp2
-rw-r--r--gdb/testsuite/gdb.base/empty_exe.exp2
-rw-r--r--gdb/testsuite/gdb.base/ena-dis-br.exp2
-rw-r--r--gdb/testsuite/gdb.base/endian.c2
-rw-r--r--gdb/testsuite/gdb.base/endian.exp2
-rw-r--r--gdb/testsuite/gdb.base/endianity.c2
-rw-r--r--gdb/testsuite/gdb.base/endianity.exp2
-rw-r--r--gdb/testsuite/gdb.base/ending-run.exp2
-rw-r--r--gdb/testsuite/gdb.base/enum_cond.c18
-rw-r--r--gdb/testsuite/gdb.base/enum_cond.exp17
-rw-r--r--gdb/testsuite/gdb.base/enumval.c2
-rw-r--r--gdb/testsuite/gdb.base/enumval.exp2
-rw-r--r--gdb/testsuite/gdb.base/environ.exp2
-rw-r--r--gdb/testsuite/gdb.base/eof-exit.exp2
-rw-r--r--gdb/testsuite/gdb.base/errno.c2
-rw-r--r--gdb/testsuite/gdb.base/errno.exp2
-rw-r--r--gdb/testsuite/gdb.base/eu-strip-infcall.c2
-rw-r--r--gdb/testsuite/gdb.base/eu-strip-infcall.exp2
-rw-r--r--gdb/testsuite/gdb.base/eval-avoid-side-effects.exp2
-rw-r--r--gdb/testsuite/gdb.base/eval-skip.exp2
-rw-r--r--gdb/testsuite/gdb.base/eval.exp2
-rw-r--r--gdb/testsuite/gdb.base/examine-backward.c2
-rw-r--r--gdb/testsuite/gdb.base/examine-backward.exp2
-rw-r--r--gdb/testsuite/gdb.base/exe-lock.exp2
-rw-r--r--gdb/testsuite/gdb.base/exec-invalid-sysroot.exp2
-rw-r--r--gdb/testsuite/gdb.base/execl-update-breakpoints.c2
-rw-r--r--gdb/testsuite/gdb.base/execl-update-breakpoints.exp2
-rw-r--r--gdb/testsuite/gdb.base/execution-termios.c2
-rw-r--r--gdb/testsuite/gdb.base/execution-termios.exp2
-rw-r--r--gdb/testsuite/gdb.base/exitsignal.exp2
-rw-r--r--gdb/testsuite/gdb.base/expand-psymtabs.c2
-rw-r--r--gdb/testsuite/gdb.base/expand-psymtabs.exp2
-rw-r--r--gdb/testsuite/gdb.base/exprs.exp20
-rw-r--r--gdb/testsuite/gdb.base/fileio.exp2
-rw-r--r--gdb/testsuite/gdb.base/filename-completion.exp41
-rw-r--r--gdb/testsuite/gdb.base/filesym.c2
-rw-r--r--gdb/testsuite/gdb.base/filesym.exp2
-rw-r--r--gdb/testsuite/gdb.base/find-unmapped.c2
-rw-r--r--gdb/testsuite/gdb.base/find-unmapped.exp2
-rw-r--r--gdb/testsuite/gdb.base/find.c2
-rw-r--r--gdb/testsuite/gdb.base/find.exp2
-rw-r--r--gdb/testsuite/gdb.base/finish-pretty.c2
-rw-r--r--gdb/testsuite/gdb.base/finish-pretty.exp2
-rw-r--r--gdb/testsuite/gdb.base/finish.exp2
-rw-r--r--gdb/testsuite/gdb.base/fission-macro-2.c2
-rw-r--r--gdb/testsuite/gdb.base/fission-macro.c2
-rw-r--r--gdb/testsuite/gdb.base/fission-macro.exp2
-rw-r--r--gdb/testsuite/gdb.base/fixsection.c2
-rw-r--r--gdb/testsuite/gdb.base/fixsection.exp2
-rw-r--r--gdb/testsuite/gdb.base/flexible-array-member.c2
-rw-r--r--gdb/testsuite/gdb.base/flexible-array-member.exp2
-rw-r--r--gdb/testsuite/gdb.base/float.c2
-rw-r--r--gdb/testsuite/gdb.base/float.exp2
-rw-r--r--gdb/testsuite/gdb.base/float128.c2
-rw-r--r--gdb/testsuite/gdb.base/float128.exp2
-rw-r--r--gdb/testsuite/gdb.base/floatn.c2
-rw-r--r--gdb/testsuite/gdb.base/floatn.exp2
-rw-r--r--gdb/testsuite/gdb.base/foll-exec-c++.exp24
-rw-r--r--gdb/testsuite/gdb.base/foll-exec-c.exp23
-rw-r--r--gdb/testsuite/gdb.base/foll-exec-mode.c2
-rw-r--r--gdb/testsuite/gdb.base/foll-exec-mode.exp2
-rw-r--r--gdb/testsuite/gdb.base/foll-exec.c35
-rw-r--r--gdb/testsuite/gdb.base/foll-exec.exp.tcl (renamed from gdb/testsuite/gdb.base/foll-exec.exp)92
-rw-r--r--gdb/testsuite/gdb.base/foll-fork-syscall.c35
-rw-r--r--gdb/testsuite/gdb.base/foll-fork-syscall.exp143
-rw-r--r--gdb/testsuite/gdb.base/foll-fork.exp4
-rw-r--r--gdb/testsuite/gdb.base/foll-vfork-exit.c2
-rw-r--r--gdb/testsuite/gdb.base/foll-vfork.c2
-rw-r--r--gdb/testsuite/gdb.base/foll-vfork.exp9
-rw-r--r--gdb/testsuite/gdb.base/fork-no-detach-follow-child-dlopen-shlib.c2
-rw-r--r--gdb/testsuite/gdb.base/fork-no-detach-follow-child-dlopen.c2
-rw-r--r--gdb/testsuite/gdb.base/fork-no-detach-follow-child-dlopen.exp3
-rw-r--r--gdb/testsuite/gdb.base/fork-print-inferior-events.c2
-rw-r--r--gdb/testsuite/gdb.base/fork-print-inferior-events.exp4
-rw-r--r--gdb/testsuite/gdb.base/fork-running-state.c2
-rw-r--r--gdb/testsuite/gdb.base/fork-running-state.exp4
-rw-r--r--gdb/testsuite/gdb.base/fortran-sym-case.c2
-rw-r--r--gdb/testsuite/gdb.base/fortran-sym-case.exp2
-rw-r--r--gdb/testsuite/gdb.base/frame-args.c2
-rw-r--r--gdb/testsuite/gdb.base/frame-args.exp2
-rw-r--r--gdb/testsuite/gdb.base/frame-info-consistent.exp2
-rw-r--r--gdb/testsuite/gdb.base/frame-selection.c23
-rw-r--r--gdb/testsuite/gdb.base/frame-selection.exp39
-rw-r--r--gdb/testsuite/gdb.base/frame-view.c2
-rw-r--r--gdb/testsuite/gdb.base/frame-view.exp2
-rw-r--r--gdb/testsuite/gdb.base/frame-view.py2
-rw-r--r--gdb/testsuite/gdb.base/frameapply.c2
-rw-r--r--gdb/testsuite/gdb.base/frameapply.exp2
-rw-r--r--gdb/testsuite/gdb.base/freebpcmd.c2
-rw-r--r--gdb/testsuite/gdb.base/freebpcmd.exp2
-rw-r--r--gdb/testsuite/gdb.base/fullname.c2
-rw-r--r--gdb/testsuite/gdb.base/fullname.exp2
-rw-r--r--gdb/testsuite/gdb.base/fullpath-expand-func.c2
-rw-r--r--gdb/testsuite/gdb.base/fullpath-expand.c2
-rw-r--r--gdb/testsuite/gdb.base/fullpath-expand.exp2
-rw-r--r--gdb/testsuite/gdb.base/func-ptr.c2
-rw-r--r--gdb/testsuite/gdb.base/func-ptr.exp2
-rw-r--r--gdb/testsuite/gdb.base/func-ptrs.c2
-rw-r--r--gdb/testsuite/gdb.base/func-ptrs.exp2
-rw-r--r--gdb/testsuite/gdb.base/funcargs.exp2
-rw-r--r--gdb/testsuite/gdb.base/gcore-buffer-overflow.c2
-rw-r--r--gdb/testsuite/gdb.base/gcore-buffer-overflow.exp2
-rw-r--r--gdb/testsuite/gdb.base/gcore-memory-usage.c53
-rw-r--r--gdb/testsuite/gdb.base/gcore-memory-usage.exp96
-rw-r--r--gdb/testsuite/gdb.base/gcore-relro-lib.c2
-rw-r--r--gdb/testsuite/gdb.base/gcore-relro-main.c2
-rw-r--r--gdb/testsuite/gdb.base/gcore-relro-pie.c2
-rw-r--r--gdb/testsuite/gdb.base/gcore-relro-pie.exp2
-rw-r--r--gdb/testsuite/gdb.base/gcore-relro.exp2
-rw-r--r--gdb/testsuite/gdb.base/gcore-tls-pie.c2
-rw-r--r--gdb/testsuite/gdb.base/gcore-tls-pie.exp2
-rw-r--r--gdb/testsuite/gdb.base/gcore.c2
-rw-r--r--gdb/testsuite/gdb.base/gcore.exp3
-rw-r--r--gdb/testsuite/gdb.base/gcorebg.c2
-rw-r--r--gdb/testsuite/gdb.base/gcorebg.exp2
-rw-r--r--gdb/testsuite/gdb.base/gdb-index-err.c2
-rw-r--r--gdb/testsuite/gdb.base/gdb-index-err.exp2
-rw-r--r--gdb/testsuite/gdb.base/gdb-sigterm-2.exp2
-rw-r--r--gdb/testsuite/gdb.base/gdb-sigterm.c2
-rw-r--r--gdb/testsuite/gdb.base/gdb-sigterm.exp2
-rw-r--r--gdb/testsuite/gdb.base/gdb1056.exp2
-rw-r--r--gdb/testsuite/gdb.base/gdb1090.c2
-rw-r--r--gdb/testsuite/gdb.base/gdb1090.exp2
-rw-r--r--gdb/testsuite/gdb.base/gdb11530.c2
-rw-r--r--gdb/testsuite/gdb.base/gdb11530.exp2
-rw-r--r--gdb/testsuite/gdb.base/gdb11531.c2
-rw-r--r--gdb/testsuite/gdb.base/gdb11531.exp2
-rw-r--r--gdb/testsuite/gdb.base/gdb1250.c2
-rw-r--r--gdb/testsuite/gdb.base/gdb1250.exp2
-rw-r--r--gdb/testsuite/gdb.base/gdb1555-main.c2
-rw-r--r--gdb/testsuite/gdb.base/gdb1555.c2
-rw-r--r--gdb/testsuite/gdb.base/gdb1555.exp2
-rw-r--r--gdb/testsuite/gdb.base/gdb1821.c2
-rw-r--r--gdb/testsuite/gdb.base/gdb1821.exp2
-rw-r--r--gdb/testsuite/gdb.base/gdbhistsize-history.exp2
-rw-r--r--gdb/testsuite/gdb.base/gdbindex-stabs-dwarf.c2
-rw-r--r--gdb/testsuite/gdb.base/gdbindex-stabs.c2
-rw-r--r--gdb/testsuite/gdb.base/gdbindex-stabs.exp2
-rw-r--r--gdb/testsuite/gdb.base/gdbinit-history.exp2
-rw-r--r--gdb/testsuite/gdb.base/gdbvars.exp2
-rw-r--r--gdb/testsuite/gdb.base/global-var-nested-by-dso-solib1.c2
-rw-r--r--gdb/testsuite/gdb.base/global-var-nested-by-dso-solib2.c2
-rw-r--r--gdb/testsuite/gdb.base/global-var-nested-by-dso.c2
-rw-r--r--gdb/testsuite/gdb.base/global-var-nested-by-dso.exp2
-rw-r--r--gdb/testsuite/gdb.base/gnu-debugdata.c2
-rw-r--r--gdb/testsuite/gdb.base/gnu-debugdata.exp2
-rw-r--r--gdb/testsuite/gdb.base/gnu-ifunc-final.c2
-rw-r--r--gdb/testsuite/gdb.base/gnu-ifunc-lib.c2
-rw-r--r--gdb/testsuite/gdb.base/gnu-ifunc.c2
-rw-r--r--gdb/testsuite/gdb.base/gnu-ifunc.exp2
-rw-r--r--gdb/testsuite/gdb.base/gnu_vector.c2
-rw-r--r--gdb/testsuite/gdb.base/gnu_vector.exp2
-rw-r--r--gdb/testsuite/gdb.base/gold-gdb-index-2.c2
-rw-r--r--gdb/testsuite/gdb.base/gold-gdb-index.c2
-rw-r--r--gdb/testsuite/gdb.base/gold-gdb-index.exp2
-rw-r--r--gdb/testsuite/gdb.base/gold-gdb-index.h2
-rw-r--r--gdb/testsuite/gdb.base/gstack.c2
-rw-r--r--gdb/testsuite/gdb.base/gstack.exp10
-rw-r--r--gdb/testsuite/gdb.base/hashline1.exp2
-rw-r--r--gdb/testsuite/gdb.base/hashline2.exp2
-rw-r--r--gdb/testsuite/gdb.base/hashline3.exp2
-rw-r--r--gdb/testsuite/gdb.base/hbreak-in-shr-unsupported-shr.c2
-rw-r--r--gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.c2
-rw-r--r--gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.exp2
-rw-r--r--gdb/testsuite/gdb.base/hbreak-unmapped.c2
-rw-r--r--gdb/testsuite/gdb.base/hbreak-unmapped.exp2
-rw-r--r--gdb/testsuite/gdb.base/hbreak.c2
-rw-r--r--gdb/testsuite/gdb.base/hbreak.exp2
-rw-r--r--gdb/testsuite/gdb.base/hbreak2.exp2
-rw-r--r--gdb/testsuite/gdb.base/help.exp2
-rw-r--r--gdb/testsuite/gdb.base/history-duplicates.exp2
-rw-r--r--gdb/testsuite/gdb.base/hook-stop.c2
-rw-r--r--gdb/testsuite/gdb.base/hook-stop.exp2
-rw-r--r--gdb/testsuite/gdb.base/huge.exp2
-rw-r--r--gdb/testsuite/gdb.base/hw-sw-break-same-address.exp2
-rw-r--r--gdb/testsuite/gdb.base/ifelse.exp2
-rw-r--r--gdb/testsuite/gdb.base/include-main.c2
-rw-r--r--gdb/testsuite/gdb.base/include-main.exp2
-rw-r--r--gdb/testsuite/gdb.base/included.c2
-rw-r--r--gdb/testsuite/gdb.base/included.exp2
-rw-r--r--gdb/testsuite/gdb.base/included.h2
-rw-r--r--gdb/testsuite/gdb.base/index-cache-2.c2
-rw-r--r--gdb/testsuite/gdb.base/index-cache.c2
-rw-r--r--gdb/testsuite/gdb.base/index-cache.exp2
-rw-r--r--gdb/testsuite/gdb.base/infcall-exec.c2
-rw-r--r--gdb/testsuite/gdb.base/infcall-exec.exp2
-rw-r--r--gdb/testsuite/gdb.base/infcall-exec2.c2
-rw-r--r--gdb/testsuite/gdb.base/infcall-failure.c2
-rw-r--r--gdb/testsuite/gdb.base/infcall-failure.exp2
-rw-r--r--gdb/testsuite/gdb.base/infcall-input.c2
-rw-r--r--gdb/testsuite/gdb.base/infcall-input.exp2
-rw-r--r--gdb/testsuite/gdb.base/infcall-nested-structs-c++.exp2
-rw-r--r--gdb/testsuite/gdb.base/infcall-nested-structs-c.exp2
-rw-r--r--gdb/testsuite/gdb.base/infcall-nested-structs.c2
-rw-r--r--gdb/testsuite/gdb.base/infcall-nested-structs.exp.tcl2
-rw-r--r--gdb/testsuite/gdb.base/infcall-timeout.c2
-rw-r--r--gdb/testsuite/gdb.base/infcall-timeout.exp2
-rw-r--r--gdb/testsuite/gdb.base/inferior-args.c2
-rw-r--r--gdb/testsuite/gdb.base/inferior-args.exp133
-rw-r--r--gdb/testsuite/gdb.base/inferior-clone.exp2
-rw-r--r--gdb/testsuite/gdb.base/inferior-died.c2
-rw-r--r--gdb/testsuite/gdb.base/inferior-died.exp7
-rw-r--r--gdb/testsuite/gdb.base/inferior-noarg.c2
-rw-r--r--gdb/testsuite/gdb.base/inferior-noarg.exp2
-rw-r--r--gdb/testsuite/gdb.base/infnan.c2
-rw-r--r--gdb/testsuite/gdb.base/infnan.exp2
-rw-r--r--gdb/testsuite/gdb.base/info-fun-solib.c2
-rw-r--r--gdb/testsuite/gdb.base/info-fun.c2
-rw-r--r--gdb/testsuite/gdb.base/info-fun.exp2
-rw-r--r--gdb/testsuite/gdb.base/info-locals-unused-static-var.c2
-rw-r--r--gdb/testsuite/gdb.base/info-locals-unused-static-var.exp2
-rw-r--r--gdb/testsuite/gdb.base/info-macros.exp2
-rw-r--r--gdb/testsuite/gdb.base/info-os.c2
-rw-r--r--gdb/testsuite/gdb.base/info-os.exp2
-rw-r--r--gdb/testsuite/gdb.base/info-proc.exp2
-rw-r--r--gdb/testsuite/gdb.base/info-program.c2
-rw-r--r--gdb/testsuite/gdb.base/info-program.exp2
-rw-r--r--gdb/testsuite/gdb.base/info-shared-solib1.c2
-rw-r--r--gdb/testsuite/gdb.base/info-shared-solib2.c2
-rw-r--r--gdb/testsuite/gdb.base/info-shared.c2
-rw-r--r--gdb/testsuite/gdb.base/info-shared.exp2
-rw-r--r--gdb/testsuite/gdb.base/info-target.exp2
-rw-r--r--gdb/testsuite/gdb.base/info-types-c++.exp2
-rw-r--r--gdb/testsuite/gdb.base/info-types-c.exp2
-rw-r--r--gdb/testsuite/gdb.base/info-types.c2
-rw-r--r--gdb/testsuite/gdb.base/info-types.exp.tcl2
-rw-r--r--gdb/testsuite/gdb.base/info-var-f1.c2
-rw-r--r--gdb/testsuite/gdb.base/info-var-f2.c2
-rw-r--r--gdb/testsuite/gdb.base/info-var.exp2
-rw-r--r--gdb/testsuite/gdb.base/info-var.h2
-rw-r--r--gdb/testsuite/gdb.base/info_minsym.c2
-rw-r--r--gdb/testsuite/gdb.base/info_minsym.exp2
-rw-r--r--gdb/testsuite/gdb.base/info_qt.c2
-rw-r--r--gdb/testsuite/gdb.base/info_qt.exp2
-rw-r--r--gdb/testsuite/gdb.base/info_sources.c2
-rw-r--r--gdb/testsuite/gdb.base/info_sources.exp2
-rw-r--r--gdb/testsuite/gdb.base/info_sources_2-header.h2
-rw-r--r--gdb/testsuite/gdb.base/info_sources_2-lib.c2
-rw-r--r--gdb/testsuite/gdb.base/info_sources_2-test.c2
-rw-r--r--gdb/testsuite/gdb.base/info_sources_2.exp2
-rw-r--r--gdb/testsuite/gdb.base/info_sources_base.c2
-rw-r--r--gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.c2
-rw-r--r--gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.exp2
-rw-r--r--gdb/testsuite/gdb.base/infoline.c2
-rw-r--r--gdb/testsuite/gdb.base/infoline.exp2
-rw-r--r--gdb/testsuite/gdb.base/inline-frame-cycle-unwind.c2
-rw-r--r--gdb/testsuite/gdb.base/inline-frame-cycle-unwind.exp150
-rw-r--r--gdb/testsuite/gdb.base/inline-frame-cycle-unwind.py2
-rw-r--r--gdb/testsuite/gdb.base/interact.exp2
-rw-r--r--gdb/testsuite/gdb.base/internal-functions-ptype.exp2
-rw-r--r--gdb/testsuite/gdb.base/internal-string-values.c2
-rw-r--r--gdb/testsuite/gdb.base/internal-string-values.exp2
-rw-r--r--gdb/testsuite/gdb.base/interp.c2
-rw-r--r--gdb/testsuite/gdb.base/interp.exp2
-rw-r--r--gdb/testsuite/gdb.base/interpreter-exec.gdb2
-rw-r--r--gdb/testsuite/gdb.base/interrupt-a.c2
-rw-r--r--gdb/testsuite/gdb.base/interrupt-a.exp2
-rw-r--r--gdb/testsuite/gdb.base/interrupt-daemon-attach.c2
-rw-r--r--gdb/testsuite/gdb.base/interrupt-daemon-attach.exp2
-rw-r--r--gdb/testsuite/gdb.base/interrupt-daemon.c2
-rw-r--r--gdb/testsuite/gdb.base/interrupt-daemon.exp4
-rw-r--r--gdb/testsuite/gdb.base/interrupt-noterm.c2
-rw-r--r--gdb/testsuite/gdb.base/interrupt-noterm.exp2
-rw-r--r--gdb/testsuite/gdb.base/interrupt.exp2
-rw-r--r--gdb/testsuite/gdb.base/jit-attach-pie.c2
-rw-r--r--gdb/testsuite/gdb.base/jit-attach-pie.exp2
-rw-r--r--gdb/testsuite/gdb.base/jit-bfd-name.exp8
-rw-r--r--gdb/testsuite/gdb.base/jit-elf-fork-main.c2
-rw-r--r--gdb/testsuite/gdb.base/jit-elf-fork-solib.c2
-rw-r--r--gdb/testsuite/gdb.base/jit-elf-fork.exp3
-rw-r--r--gdb/testsuite/gdb.base/jit-elf-main.c2
-rw-r--r--gdb/testsuite/gdb.base/jit-elf-so.exp2
-rw-r--r--gdb/testsuite/gdb.base/jit-elf-solib.c4
-rw-r--r--gdb/testsuite/gdb.base/jit-elf-util.h2
-rw-r--r--gdb/testsuite/gdb.base/jit-elf.exp2
-rw-r--r--gdb/testsuite/gdb.base/jit-protocol.h2
-rw-r--r--gdb/testsuite/gdb.base/jit-reader-exec.c2
-rw-r--r--gdb/testsuite/gdb.base/jit-reader-exec.exp2
-rw-r--r--gdb/testsuite/gdb.base/jit-reader-execd.c2
-rw-r--r--gdb/testsuite/gdb.base/jit-reader-host.c2
-rw-r--r--gdb/testsuite/gdb.base/jit-reader-host.h2
-rw-r--r--gdb/testsuite/gdb.base/jit-reader-simple-dl.c2
-rw-r--r--gdb/testsuite/gdb.base/jit-reader-simple-jit.c2
-rw-r--r--gdb/testsuite/gdb.base/jit-reader-simple.c2
-rw-r--r--gdb/testsuite/gdb.base/jit-reader-simple.exp2
-rw-r--r--gdb/testsuite/gdb.base/jit-reader.c2
-rw-r--r--gdb/testsuite/gdb.base/jit-reader.exp2
-rw-r--r--gdb/testsuite/gdb.base/jump-inline.c2
-rw-r--r--gdb/testsuite/gdb.base/jump-inline.exp2
-rw-r--r--gdb/testsuite/gdb.base/jump.exp2
-rwxr-xr-xgdb/testsuite/gdb.base/jump_multiple_objfiles-foo.c2
-rwxr-xr-xgdb/testsuite/gdb.base/jump_multiple_objfiles.c2
-rwxr-xr-xgdb/testsuite/gdb.base/jump_multiple_objfiles.exp2
-rwxr-xr-xgdb/testsuite/gdb.base/jump_multiple_objfiles.h2
-rw-r--r--gdb/testsuite/gdb.base/kill-after-signal.c2
-rw-r--r--gdb/testsuite/gdb.base/kill-after-signal.exp2
-rw-r--r--gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.c2
-rw-r--r--gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.exp3
-rw-r--r--gdb/testsuite/gdb.base/kill-during-detach.c2
-rw-r--r--gdb/testsuite/gdb.base/kill-during-detach.exp2
-rw-r--r--gdb/testsuite/gdb.base/killed-outside.c2
-rw-r--r--gdb/testsuite/gdb.base/killed-outside.exp2
-rw-r--r--gdb/testsuite/gdb.base/label-without-address.c2
-rw-r--r--gdb/testsuite/gdb.base/label-without-address.exp2
-rw-r--r--gdb/testsuite/gdb.base/label.exp2
-rw-r--r--gdb/testsuite/gdb.base/langs.exp2
-rw-r--r--gdb/testsuite/gdb.base/langs1.f2
-rw-r--r--gdb/testsuite/gdb.base/large-frame-1.c2
-rw-r--r--gdb/testsuite/gdb.base/large-frame-2.c2
-rw-r--r--gdb/testsuite/gdb.base/large-frame.exp2
-rw-r--r--gdb/testsuite/gdb.base/large-frame.h2
-rw-r--r--gdb/testsuite/gdb.base/ldbl_e308.c2
-rw-r--r--gdb/testsuite/gdb.base/ldbl_e308.exp2
-rw-r--r--gdb/testsuite/gdb.base/libsegfault.exp4
-rw-r--r--gdb/testsuite/gdb.base/limited-length.c2
-rw-r--r--gdb/testsuite/gdb.base/limited-length.exp2
-rw-r--r--gdb/testsuite/gdb.base/line-symtabs.c2
-rw-r--r--gdb/testsuite/gdb.base/line-symtabs.exp2
-rw-r--r--gdb/testsuite/gdb.base/line-symtabs.h2
-rw-r--r--gdb/testsuite/gdb.base/line65535.c2
-rw-r--r--gdb/testsuite/gdb.base/line65535.exp2
-rw-r--r--gdb/testsuite/gdb.base/lineinc.exp2
-rw-r--r--gdb/testsuite/gdb.base/list-ambiguous-readnow.exp2
-rw-r--r--gdb/testsuite/gdb.base/list-ambiguous.exp2
-rw-r--r--gdb/testsuite/gdb.base/list-ambiguous0.c2
-rw-r--r--gdb/testsuite/gdb.base/list-ambiguous1.c2
-rw-r--r--gdb/testsuite/gdb.base/list-before-start.exp2
-rw-r--r--gdb/testsuite/gdb.base/list-dot-nodebug-extra.c2
-rw-r--r--gdb/testsuite/gdb.base/list-dot-nodebug.c2
-rw-r--r--gdb/testsuite/gdb.base/list-dot-nodebug.exp2
-rw-r--r--gdb/testsuite/gdb.base/list-missing-source.exp2
-rw-r--r--gdb/testsuite/gdb.base/list-nodebug-2.c2
-rw-r--r--gdb/testsuite/gdb.base/list-nodebug.c2
-rw-r--r--gdb/testsuite/gdb.base/list-nodebug.exp2
-rw-r--r--gdb/testsuite/gdb.base/list.exp2
-rw-r--r--gdb/testsuite/gdb.base/load-command.c2
-rw-r--r--gdb/testsuite/gdb.base/load-command.exp2
-rw-r--r--gdb/testsuite/gdb.base/logical.exp2
-rw-r--r--gdb/testsuite/gdb.base/long-inferior-output.c2
-rw-r--r--gdb/testsuite/gdb.base/long-inferior-output.exp2
-rw-r--r--gdb/testsuite/gdb.base/long_long.c2
-rw-r--r--gdb/testsuite/gdb.base/long_long.exp2
-rw-r--r--gdb/testsuite/gdb.base/longest-types.c2
-rw-r--r--gdb/testsuite/gdb.base/longest-types.exp2
-rw-r--r--gdb/testsuite/gdb.base/longjmp-until-in-main.c2
-rw-r--r--gdb/testsuite/gdb.base/longjmp-until-in-main.exp2
-rw-r--r--gdb/testsuite/gdb.base/longjmp.c2
-rw-r--r--gdb/testsuite/gdb.base/longjmp.exp2
-rw-r--r--gdb/testsuite/gdb.base/macro-source-path.c2
-rw-r--r--gdb/testsuite/gdb.base/macro-source-path.exp2
-rw-r--r--gdb/testsuite/gdb.base/macscp.exp2
-rw-r--r--gdb/testsuite/gdb.base/main-c.exp2
-rw-r--r--gdb/testsuite/gdb.base/main-psymtab.exp2
-rw-r--r--gdb/testsuite/gdb.base/main.c2
-rw-r--r--gdb/testsuite/gdb.base/maint-expand-symbols-header-file.c2
-rw-r--r--gdb/testsuite/gdb.base/maint-expand-symbols-header-file.exp2
-rw-r--r--gdb/testsuite/gdb.base/maint-expand-symbols-header-file.h2
-rw-r--r--gdb/testsuite/gdb.base/maint-info-inline-frames-and-blocks.c2
-rw-r--r--gdb/testsuite/gdb.base/maint-info-inline-frames-and-blocks.exp2
-rw-r--r--gdb/testsuite/gdb.base/maint-info-sections.exp2
-rw-r--r--gdb/testsuite/gdb.base/maint-print-frame-id.c2
-rw-r--r--gdb/testsuite/gdb.base/maint-print-frame-id.exp2
-rw-r--r--gdb/testsuite/gdb.base/maint-target-async-off.c2
-rw-r--r--gdb/testsuite/gdb.base/maint-target-async-off.exp2
-rw-r--r--gdb/testsuite/gdb.base/maint.exp45
-rw-r--r--gdb/testsuite/gdb.base/many-completions.exp2
-rw-r--r--gdb/testsuite/gdb.base/many-headers.c2
-rw-r--r--gdb/testsuite/gdb.base/many-headers.exp2
-rw-r--r--gdb/testsuite/gdb.base/max-depth-c++.exp2
-rw-r--r--gdb/testsuite/gdb.base/max-depth-c.exp2
-rw-r--r--gdb/testsuite/gdb.base/max-depth.c2
-rw-r--r--gdb/testsuite/gdb.base/max-depth.exp.tcl2
-rw-r--r--gdb/testsuite/gdb.base/max-value-size.c2
-rw-r--r--gdb/testsuite/gdb.base/max-value-size.exp2
-rw-r--r--gdb/testsuite/gdb.base/memattr.c2
-rw-r--r--gdb/testsuite/gdb.base/memattr.exp2
-rw-r--r--gdb/testsuite/gdb.base/memops-watchpoint.c2
-rw-r--r--gdb/testsuite/gdb.base/memops-watchpoint.exp2
-rw-r--r--gdb/testsuite/gdb.base/memtag.c2
-rw-r--r--gdb/testsuite/gdb.base/memtag.exp2
-rw-r--r--gdb/testsuite/gdb.base/mips_pro.exp2
-rw-r--r--gdb/testsuite/gdb.base/miscexprs.exp2
-rw-r--r--gdb/testsuite/gdb.base/morestack.c2
-rw-r--r--gdb/testsuite/gdb.base/morestack.exp2
-rw-r--r--gdb/testsuite/gdb.base/moribund-step.exp2
-rw-r--r--gdb/testsuite/gdb.base/msym-bp-2.c2
-rw-r--r--gdb/testsuite/gdb.base/msym-bp-shl-lib.c2
-rw-r--r--gdb/testsuite/gdb.base/msym-bp-shl-main-2.c2
-rw-r--r--gdb/testsuite/gdb.base/msym-bp-shl-main.c2
-rw-r--r--gdb/testsuite/gdb.base/msym-bp-shl.exp2
-rw-r--r--gdb/testsuite/gdb.base/msym-bp.c2
-rw-r--r--gdb/testsuite/gdb.base/msym-bp.exp2
-rw-r--r--gdb/testsuite/gdb.base/msym-lang-main.c2
-rw-r--r--gdb/testsuite/gdb.base/msym-lang.c2
-rw-r--r--gdb/testsuite/gdb.base/msym-lang.exp2
-rw-r--r--gdb/testsuite/gdb.base/multi-forks.c2
-rw-r--r--gdb/testsuite/gdb.base/multi-forks.exp8
-rw-r--r--gdb/testsuite/gdb.base/multi-line-starts-subshell.exp2
-rw-r--r--gdb/testsuite/gdb.base/native-target-noproc-tdesc.exp2
-rw-r--r--gdb/testsuite/gdb.base/nested-addr.c2
-rw-r--r--gdb/testsuite/gdb.base/nested-addr.exp2
-rw-r--r--gdb/testsuite/gdb.base/nested-subp1.c2
-rw-r--r--gdb/testsuite/gdb.base/nested-subp1.exp2
-rw-r--r--gdb/testsuite/gdb.base/nested-subp2.c2
-rw-r--r--gdb/testsuite/gdb.base/nested-subp2.exp2
-rw-r--r--gdb/testsuite/gdb.base/nested-subp3.c2
-rw-r--r--gdb/testsuite/gdb.base/nested-subp3.exp2
-rw-r--r--gdb/testsuite/gdb.base/new-ui-echo.c2
-rw-r--r--gdb/testsuite/gdb.base/new-ui-echo.exp2
-rw-r--r--gdb/testsuite/gdb.base/new-ui-pending-input.c2
-rw-r--r--gdb/testsuite/gdb.base/new-ui-pending-input.exp2
-rw-r--r--gdb/testsuite/gdb.base/new-ui.c2
-rw-r--r--gdb/testsuite/gdb.base/new-ui.exp2
-rw-r--r--gdb/testsuite/gdb.base/nextoverexit.c2
-rw-r--r--gdb/testsuite/gdb.base/nextoverexit.exp2
-rw-r--r--gdb/testsuite/gdb.base/nodebug.exp2
-rw-r--r--gdb/testsuite/gdb.base/nofield.c2
-rw-r--r--gdb/testsuite/gdb.base/nofield.exp2
-rw-r--r--gdb/testsuite/gdb.base/non-executable.exp2
-rw-r--r--gdb/testsuite/gdb.base/non-lazy-array-index.c2
-rw-r--r--gdb/testsuite/gdb.base/non-lazy-array-index.exp2
-rw-r--r--gdb/testsuite/gdb.base/noreturn-finish.c2
-rw-r--r--gdb/testsuite/gdb.base/noreturn-finish.exp2
-rw-r--r--gdb/testsuite/gdb.base/noreturn-return.c2
-rw-r--r--gdb/testsuite/gdb.base/noreturn-return.exp2
-rw-r--r--gdb/testsuite/gdb.base/normal.c2
-rw-r--r--gdb/testsuite/gdb.base/nostdlib.c2
-rw-r--r--gdb/testsuite/gdb.base/nostdlib.exp91
-rw-r--r--gdb/testsuite/gdb.base/offsets.c2
-rw-r--r--gdb/testsuite/gdb.base/offsets.exp2
-rw-r--r--gdb/testsuite/gdb.base/opaque.exp2
-rw-r--r--gdb/testsuite/gdb.base/options.c2
-rw-r--r--gdb/testsuite/gdb.base/options.exp38
-rw-r--r--gdb/testsuite/gdb.base/osabi.exp2
-rw-r--r--gdb/testsuite/gdb.base/overlays.exp2
-rw-r--r--gdb/testsuite/gdb.base/page-logging.exp2
-rw-r--r--gdb/testsuite/gdb.base/page.exp2
-rw-r--r--gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.c2
-rw-r--r--gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.exp2
-rw-r--r--gdb/testsuite/gdb.base/paginate-bg-execution.c2
-rw-r--r--gdb/testsuite/gdb.base/paginate-bg-execution.exp2
-rw-r--r--gdb/testsuite/gdb.base/paginate-execution-startup.c2
-rw-r--r--gdb/testsuite/gdb.base/paginate-execution-startup.exp2
-rw-r--r--gdb/testsuite/gdb.base/paginate-inferior-exit.c2
-rw-r--r--gdb/testsuite/gdb.base/paginate-inferior-exit.exp2
-rw-r--r--gdb/testsuite/gdb.base/parse_number.exp2
-rw-r--r--gdb/testsuite/gdb.base/paste-newline.exp2
-rw-r--r--gdb/testsuite/gdb.base/patch.c2
-rw-r--r--gdb/testsuite/gdb.base/patch.exp2
-rw-r--r--gdb/testsuite/gdb.base/pc-fp.exp2
-rw-r--r--gdb/testsuite/gdb.base/pc-not-saved.c2
-rw-r--r--gdb/testsuite/gdb.base/pc-not-saved.exp2
-rw-r--r--gdb/testsuite/gdb.base/pc-not-saved.py2
-rw-r--r--gdb/testsuite/gdb.base/pending.c2
-rw-r--r--gdb/testsuite/gdb.base/pending.exp2
-rw-r--r--gdb/testsuite/gdb.base/pendshr.c2
-rw-r--r--gdb/testsuite/gdb.base/permissions.exp2
-rw-r--r--gdb/testsuite/gdb.base/persistent-lang.cc2
-rw-r--r--gdb/testsuite/gdb.base/persistent-lang.exp2
-rw-r--r--gdb/testsuite/gdb.base/pie-execl.c2
-rw-r--r--gdb/testsuite/gdb.base/pie-execl.exp2
-rw-r--r--gdb/testsuite/gdb.base/pie-fork.c2
-rw-r--r--gdb/testsuite/gdb.base/pie-fork.exp4
-rw-r--r--gdb/testsuite/gdb.base/pointers.exp2
-rw-r--r--gdb/testsuite/gdb.base/pr10179.exp2
-rw-r--r--gdb/testsuite/gdb.base/pr11022.c2
-rw-r--r--gdb/testsuite/gdb.base/pr11022.exp2
-rw-r--r--gdb/testsuite/gdb.base/prelink-lib.c2
-rw-r--r--gdb/testsuite/gdb.base/prelink.c2
-rw-r--r--gdb/testsuite/gdb.base/prelink.exp2
-rw-r--r--gdb/testsuite/gdb.base/premature-dummy-frame-removal.c2
-rw-r--r--gdb/testsuite/gdb.base/premature-dummy-frame-removal.exp2
-rw-r--r--gdb/testsuite/gdb.base/premature-dummy-frame-removal.py2
-rw-r--r--gdb/testsuite/gdb.base/pretty-array.c2
-rw-r--r--gdb/testsuite/gdb.base/pretty-array.exp2
-rw-r--r--gdb/testsuite/gdb.base/pretty-print.c2
-rw-r--r--gdb/testsuite/gdb.base/pretty-print.exp2
-rw-r--r--gdb/testsuite/gdb.base/print-file-var-lib1.c2
-rw-r--r--gdb/testsuite/gdb.base/print-file-var-lib2.c2
-rw-r--r--gdb/testsuite/gdb.base/print-file-var-main.c2
-rw-r--r--gdb/testsuite/gdb.base/print-file-var.exp2
-rw-r--r--gdb/testsuite/gdb.base/print-file-var.h2
-rw-r--r--gdb/testsuite/gdb.base/print-internal-string.c2
-rw-r--r--gdb/testsuite/gdb.base/print-internal-string.exp2
-rw-r--r--gdb/testsuite/gdb.base/print-symbol-loading-lib.c2
-rw-r--r--gdb/testsuite/gdb.base/print-symbol-loading-main.c2
-rw-r--r--gdb/testsuite/gdb.base/print-symbol-loading.exp4
-rw-r--r--gdb/testsuite/gdb.base/printcmds.exp9
-rw-r--r--gdb/testsuite/gdb.base/printf-wchar_t.c2
-rw-r--r--gdb/testsuite/gdb.base/printf-wchar_t.exp2
-rw-r--r--gdb/testsuite/gdb.base/prologue-include.c2
-rw-r--r--gdb/testsuite/gdb.base/prologue-include.exp2
-rw-r--r--gdb/testsuite/gdb.base/prologue-include.h2
-rw-r--r--gdb/testsuite/gdb.base/prologue.c2
-rw-r--r--gdb/testsuite/gdb.base/prologue.exp2
-rw-r--r--gdb/testsuite/gdb.base/psym-external-decl-2.c2
-rw-r--r--gdb/testsuite/gdb.base/psym-external-decl.c2
-rw-r--r--gdb/testsuite/gdb.base/psym-external-decl.exp2
-rw-r--r--gdb/testsuite/gdb.base/psymtab.exp2
-rw-r--r--gdb/testsuite/gdb.base/ptr-typedef.c2
-rw-r--r--gdb/testsuite/gdb.base/ptr-typedef.exp2
-rw-r--r--gdb/testsuite/gdb.base/ptype-offsets.cc2
-rw-r--r--gdb/testsuite/gdb.base/ptype-offsets.exp2
-rw-r--r--gdb/testsuite/gdb.base/ptype.exp10
-rw-r--r--gdb/testsuite/gdb.base/quit-live.c2
-rw-r--r--gdb/testsuite/gdb.base/quit-live.exp2
-rw-r--r--gdb/testsuite/gdb.base/quit.exp2
-rw-r--r--gdb/testsuite/gdb.base/radix.exp2
-rw-r--r--gdb/testsuite/gdb.base/random-signal.c2
-rw-r--r--gdb/testsuite/gdb.base/random-signal.exp2
-rw-r--r--gdb/testsuite/gdb.base/randomize.c2
-rw-r--r--gdb/testsuite/gdb.base/randomize.exp2
-rw-r--r--gdb/testsuite/gdb.base/range-stepping.c2
-rw-r--r--gdb/testsuite/gdb.base/range-stepping.exp2
-rw-r--r--gdb/testsuite/gdb.base/readline-ask.c2
-rw-r--r--gdb/testsuite/gdb.base/readline-ask.exp2
-rw-r--r--gdb/testsuite/gdb.base/readline-ask.inputrc2
-rw-r--r--gdb/testsuite/gdb.base/readline-commands-eof.c2
-rw-r--r--gdb/testsuite/gdb.base/readline-commands-eof.exp2
-rw-r--r--gdb/testsuite/gdb.base/readline.exp2
-rw-r--r--gdb/testsuite/gdb.base/readnever.c2
-rw-r--r--gdb/testsuite/gdb.base/readnever.exp2
-rw-r--r--gdb/testsuite/gdb.base/realname-expand-real.c2
-rw-r--r--gdb/testsuite/gdb.base/realname-expand.c2
-rw-r--r--gdb/testsuite/gdb.base/realname-expand.exp2
-rw-r--r--gdb/testsuite/gdb.base/record-full-error.exp2
-rw-r--r--gdb/testsuite/gdb.base/recpar.c2
-rw-r--r--gdb/testsuite/gdb.base/recpar.exp2
-rw-r--r--gdb/testsuite/gdb.base/recurse.exp2
-rw-r--r--gdb/testsuite/gdb.base/reggroups.c2
-rw-r--r--gdb/testsuite/gdb.base/reggroups.exp2
-rw-r--r--gdb/testsuite/gdb.base/relational.exp2
-rw-r--r--gdb/testsuite/gdb.base/relativedebug.c2
-rw-r--r--gdb/testsuite/gdb.base/relativedebug.exp2
-rw-r--r--gdb/testsuite/gdb.base/relocate.c2
-rw-r--r--gdb/testsuite/gdb.base/relocate.exp2
-rw-r--r--gdb/testsuite/gdb.base/remote-exec-file.exp2
-rw-r--r--gdb/testsuite/gdb.base/remote.exp2
-rw-r--r--gdb/testsuite/gdb.base/remotetimeout.exp2
-rw-r--r--gdb/testsuite/gdb.base/reread-readsym.c2
-rw-r--r--gdb/testsuite/gdb.base/reread-readsym.exp2
-rw-r--r--gdb/testsuite/gdb.base/reread.exp2
-rw-r--r--gdb/testsuite/gdb.base/reset-catchpoint-cond-lib.c2
-rw-r--r--gdb/testsuite/gdb.base/reset-catchpoint-cond.c2
-rw-r--r--gdb/testsuite/gdb.base/reset-catchpoint-cond.exp2
-rw-r--r--gdb/testsuite/gdb.base/reset-catchpoint-cond.py2
-rw-r--r--gdb/testsuite/gdb.base/restore.c2
-rw-r--r--gdb/testsuite/gdb.base/restore.exp2
-rw-r--r--gdb/testsuite/gdb.base/return-nodebug.c2
-rw-r--r--gdb/testsuite/gdb.base/return-nodebug.exp2
-rw-r--r--gdb/testsuite/gdb.base/return-nodebug1.c2
-rw-r--r--gdb/testsuite/gdb.base/return.c2
-rw-r--r--gdb/testsuite/gdb.base/return.exp2
-rw-r--r--gdb/testsuite/gdb.base/return2.exp2
-rw-r--r--gdb/testsuite/gdb.base/retval-large-struct.c2
-rw-r--r--gdb/testsuite/gdb.base/retval-large-struct.exp2
-rw-r--r--gdb/testsuite/gdb.base/reverse-init-functions.exp2
-rw-r--r--gdb/testsuite/gdb.base/rtld-step-main.c2
-rw-r--r--gdb/testsuite/gdb.base/rtld-step-nodebugsym.c2
-rw-r--r--gdb/testsuite/gdb.base/rtld-step-nodebugsym.exp2
-rw-r--r--gdb/testsuite/gdb.base/rtld-step-rtld.c2
-rw-r--r--gdb/testsuite/gdb.base/rtld-step.exp2
-rw-r--r--gdb/testsuite/gdb.base/run-after-attach.c2
-rw-r--r--gdb/testsuite/gdb.base/run-after-attach.exp2
-rw-r--r--gdb/testsuite/gdb.base/run-attach-while-running.c2
-rw-r--r--gdb/testsuite/gdb.base/run-attach-while-running.exp2
-rw-r--r--gdb/testsuite/gdb.base/run-control-while-bg-execution.c2
-rw-r--r--gdb/testsuite/gdb.base/run-control-while-bg-execution.exp7
-rw-r--r--gdb/testsuite/gdb.base/run-fail-twice.c2
-rw-r--r--gdb/testsuite/gdb.base/run-fail-twice.exp2
-rw-r--r--gdb/testsuite/gdb.base/save-bp.c2
-rw-r--r--gdb/testsuite/gdb.base/save-bp.exp2
-rw-r--r--gdb/testsuite/gdb.base/savedregs.c2
-rw-r--r--gdb/testsuite/gdb.base/savedregs.exp2
-rw-r--r--gdb/testsuite/gdb.base/scope-hw-watch-disable.c2
-rw-r--r--gdb/testsuite/gdb.base/scope-hw-watch-disable.exp2
-rw-r--r--gdb/testsuite/gdb.base/scope.exp2
-rw-r--r--gdb/testsuite/gdb.base/sect-cmd.exp2
-rw-r--r--gdb/testsuite/gdb.base/segv.c2
-rw-r--r--gdb/testsuite/gdb.base/sep-proc.c2
-rw-r--r--gdb/testsuite/gdb.base/sep.c2
-rw-r--r--gdb/testsuite/gdb.base/sep.exp2
-rw-r--r--gdb/testsuite/gdb.base/sepdebug.c2
-rw-r--r--gdb/testsuite/gdb.base/sepdebug.exp2
-rw-r--r--gdb/testsuite/gdb.base/sepdebug2.c2
-rw-r--r--gdb/testsuite/gdb.base/sepsymtab.c2
-rw-r--r--gdb/testsuite/gdb.base/sepsymtab.exp2
-rw-r--r--gdb/testsuite/gdb.base/server-del-break.c2
-rw-r--r--gdb/testsuite/gdb.base/server-del-break.exp2
-rw-r--r--gdb/testsuite/gdb.base/set-cwd.c2
-rw-r--r--gdb/testsuite/gdb.base/set-cwd.exp2
-rw-r--r--gdb/testsuite/gdb.base/set-inferior-tty.c2
-rw-r--r--gdb/testsuite/gdb.base/set-inferior-tty.exp2
-rw-r--r--gdb/testsuite/gdb.base/set-lang-auto.exp2
-rw-r--r--gdb/testsuite/gdb.base/set-noassign.exp2
-rw-r--r--gdb/testsuite/gdb.base/setshow.exp2
-rw-r--r--gdb/testsuite/gdb.base/settings.c2
-rw-r--r--gdb/testsuite/gdb.base/settings.exp2
-rw-r--r--gdb/testsuite/gdb.base/setvar.exp2
-rw-r--r--gdb/testsuite/gdb.base/share-env-with-gdbserver.c2
-rw-r--r--gdb/testsuite/gdb.base/share-env-with-gdbserver.exp2
-rw-r--r--gdb/testsuite/gdb.base/share-psymtabs-bt-2.c2
-rw-r--r--gdb/testsuite/gdb.base/share-psymtabs-bt.c2
-rw-r--r--gdb/testsuite/gdb.base/share-psymtabs-bt.exp2
-rw-r--r--gdb/testsuite/gdb.base/shell.exp2
-rw-r--r--gdb/testsuite/gdb.base/shlib-call.exp2
-rw-r--r--gdb/testsuite/gdb.base/shlib-unload-lib.c (renamed from sim/arm/arm-sim.h)22
-rw-r--r--gdb/testsuite/gdb.base/shlib-unload.c63
-rw-r--r--gdb/testsuite/gdb.base/shlib-unload.exp299
-rw-r--r--gdb/testsuite/gdb.base/shlib-unload.h26
-rw-r--r--gdb/testsuite/gdb.base/shlib-unload.py33
-rw-r--r--gdb/testsuite/gdb.base/show-user-completion.exp2
-rw-r--r--gdb/testsuite/gdb.base/shreloc.exp2
-rw-r--r--gdb/testsuite/gdb.base/sigall.exp11
-rw-r--r--gdb/testsuite/gdb.base/sigaltstack.c2
-rw-r--r--gdb/testsuite/gdb.base/sigaltstack.exp2
-rw-r--r--gdb/testsuite/gdb.base/sigbpt.c2
-rw-r--r--gdb/testsuite/gdb.base/sigbpt.exp2
-rw-r--r--gdb/testsuite/gdb.base/sigchld.c2
-rw-r--r--gdb/testsuite/gdb.base/sigchld.exp2
-rw-r--r--gdb/testsuite/gdb.base/siginfo-addr.c2
-rw-r--r--gdb/testsuite/gdb.base/siginfo-addr.exp2
-rw-r--r--gdb/testsuite/gdb.base/siginfo-infcall.c2
-rw-r--r--gdb/testsuite/gdb.base/siginfo-infcall.exp2
-rw-r--r--gdb/testsuite/gdb.base/siginfo-obj.c2
-rw-r--r--gdb/testsuite/gdb.base/siginfo-obj.exp2
-rw-r--r--gdb/testsuite/gdb.base/siginfo-thread.c2
-rw-r--r--gdb/testsuite/gdb.base/siginfo-thread.exp2
-rw-r--r--gdb/testsuite/gdb.base/siginfo.c2
-rw-r--r--gdb/testsuite/gdb.base/siginfo.exp2
-rw-r--r--gdb/testsuite/gdb.base/signals-state-child.c2
-rw-r--r--gdb/testsuite/gdb.base/signals-state-child.exp2
-rw-r--r--gdb/testsuite/gdb.base/signals.exp2
-rw-r--r--gdb/testsuite/gdb.base/signed-builtin-types-lib.c2
-rw-r--r--gdb/testsuite/gdb.base/signed-builtin-types.c2
-rw-r--r--gdb/testsuite/gdb.base/signed-builtin-types.exp2
-rw-r--r--gdb/testsuite/gdb.base/signest.c2
-rw-r--r--gdb/testsuite/gdb.base/signest.exp2
-rw-r--r--gdb/testsuite/gdb.base/signull.c2
-rw-r--r--gdb/testsuite/gdb.base/signull.exp2
-rw-r--r--gdb/testsuite/gdb.base/sigrepeat.c2
-rw-r--r--gdb/testsuite/gdb.base/sigrepeat.exp2
-rw-r--r--gdb/testsuite/gdb.base/sigstep.c2
-rw-r--r--gdb/testsuite/gdb.base/sigstep.exp2
-rw-r--r--gdb/testsuite/gdb.base/sigwinch-notty.exp2
-rw-r--r--gdb/testsuite/gdb.base/sizeof.exp2
-rw-r--r--gdb/testsuite/gdb.base/skip-inline.c2
-rw-r--r--gdb/testsuite/gdb.base/skip-inline.exp2
-rw-r--r--gdb/testsuite/gdb.base/skip-solib.exp2
-rw-r--r--gdb/testsuite/gdb.base/skip.c2
-rw-r--r--gdb/testsuite/gdb.base/skip.exp2
-rw-r--r--gdb/testsuite/gdb.base/skip1.c2
-rw-r--r--gdb/testsuite/gdb.base/skipcxx.cc2
-rw-r--r--gdb/testsuite/gdb.base/skipcxx.exp2
-rw-r--r--gdb/testsuite/gdb.base/so-disc-shr.c2
-rw-r--r--gdb/testsuite/gdb.base/so-impl-ld.exp2
-rw-r--r--gdb/testsuite/gdb.base/solib-abort-lib.c2
-rw-r--r--gdb/testsuite/gdb.base/solib-abort.c2
-rw-r--r--gdb/testsuite/gdb.base/solib-abort.exp2
-rw-r--r--gdb/testsuite/gdb.base/solib-corrupted.exp2
-rw-r--r--gdb/testsuite/gdb.base/solib-disc.c2
-rw-r--r--gdb/testsuite/gdb.base/solib-disc.exp2
-rw-r--r--gdb/testsuite/gdb.base/solib-display-lib.c2
-rw-r--r--gdb/testsuite/gdb.base/solib-display-main.c2
-rw-r--r--gdb/testsuite/gdb.base/solib-display.exp2
-rw-r--r--gdb/testsuite/gdb.base/solib-nodir.exp2
-rw-r--r--gdb/testsuite/gdb.base/solib-overlap-lib.c2
-rw-r--r--gdb/testsuite/gdb.base/solib-overlap-main.c2
-rw-r--r--gdb/testsuite/gdb.base/solib-overlap.exp2
-rw-r--r--gdb/testsuite/gdb.base/solib-probes-nosharedlibrary.c2
-rw-r--r--gdb/testsuite/gdb.base/solib-probes-nosharedlibrary.exp2
-rw-r--r--gdb/testsuite/gdb.base/solib-search-lib1.c2
-rw-r--r--gdb/testsuite/gdb.base/solib-search-lib2.c2
-rw-r--r--gdb/testsuite/gdb.base/solib-search.c2
-rw-r--r--gdb/testsuite/gdb.base/solib-search.exp4
-rw-r--r--gdb/testsuite/gdb.base/solib-search.h2
-rw-r--r--gdb/testsuite/gdb.base/solib-symbol-lib.c2
-rw-r--r--gdb/testsuite/gdb.base/solib-symbol-main.c2
-rw-r--r--gdb/testsuite/gdb.base/solib-symbol.exp2
-rw-r--r--gdb/testsuite/gdb.base/solib-vanish-lib1.c2
-rw-r--r--gdb/testsuite/gdb.base/solib-vanish-lib2.c2
-rw-r--r--gdb/testsuite/gdb.base/solib-vanish-main.c2
-rw-r--r--gdb/testsuite/gdb.base/solib-vanish.exp2
-rw-r--r--gdb/testsuite/gdb.base/solib-weak.c2
-rw-r--r--gdb/testsuite/gdb.base/solib-weak.exp2
-rw-r--r--gdb/testsuite/gdb.base/source-dir.c2
-rw-r--r--gdb/testsuite/gdb.base/source-dir.exp2
-rw-r--r--gdb/testsuite/gdb.base/source-error-1.gdb2
-rw-r--r--gdb/testsuite/gdb.base/source-error.gdb2
-rw-r--r--gdb/testsuite/gdb.base/source-execution.c2
-rw-r--r--gdb/testsuite/gdb.base/source-execution.exp2
-rw-r--r--gdb/testsuite/gdb.base/source-execution.gdb2
-rw-r--r--gdb/testsuite/gdb.base/source-nofile.gdb2
-rw-r--r--gdb/testsuite/gdb.base/source-open.c2
-rw-r--r--gdb/testsuite/gdb.base/source-open.exp2
-rw-r--r--gdb/testsuite/gdb.base/source-test.gdb2
-rw-r--r--gdb/testsuite/gdb.base/source.exp2
-rw-r--r--gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.c2
-rw-r--r--gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp2
-rw-r--r--gdb/testsuite/gdb.base/sss-bp-on-user-bp.c2
-rw-r--r--gdb/testsuite/gdb.base/sss-bp-on-user-bp.exp2
-rw-r--r--gdb/testsuite/gdb.base/stack-checking.c2
-rw-r--r--gdb/testsuite/gdb.base/stack-checking.exp2
-rw-r--r--gdb/testsuite/gdb.base/stack-protector.c2
-rw-r--r--gdb/testsuite/gdb.base/stack-protector.exp2
-rw-r--r--gdb/testsuite/gdb.base/stale-infcall.c2
-rw-r--r--gdb/testsuite/gdb.base/stale-infcall.exp2
-rw-r--r--gdb/testsuite/gdb.base/stap-probe.c2
-rw-r--r--gdb/testsuite/gdb.base/stap-probe.exp2
-rw-r--r--gdb/testsuite/gdb.base/start-cpp.cc2
-rw-r--r--gdb/testsuite/gdb.base/start-cpp.exp2
-rw-r--r--gdb/testsuite/gdb.base/start.c2
-rw-r--r--gdb/testsuite/gdb.base/start.exp2
-rw-r--r--gdb/testsuite/gdb.base/starti.c2
-rw-r--r--gdb/testsuite/gdb.base/starti.exp2
-rw-r--r--gdb/testsuite/gdb.base/startup-with-shell.c2
-rw-r--r--gdb/testsuite/gdb.base/startup-with-shell.exp138
-rw-r--r--gdb/testsuite/gdb.base/statistics.exp2
-rw-r--r--gdb/testsuite/gdb.base/step-break.c2
-rw-r--r--gdb/testsuite/gdb.base/step-break.exp2
-rw-r--r--gdb/testsuite/gdb.base/step-bt.c2
-rw-r--r--gdb/testsuite/gdb.base/step-bt.exp2
-rw-r--r--gdb/testsuite/gdb.base/step-indirect-call-thunk.c2
-rw-r--r--gdb/testsuite/gdb.base/step-indirect-call-thunk.exp2
-rw-r--r--gdb/testsuite/gdb.base/step-into-other-file.c2
-rw-r--r--gdb/testsuite/gdb.base/step-into-other-file.exp2
-rw-r--r--gdb/testsuite/gdb.base/step-into-other-file.h2
-rw-r--r--gdb/testsuite/gdb.base/step-line.c2
-rw-r--r--gdb/testsuite/gdb.base/step-line.exp2
-rw-r--r--gdb/testsuite/gdb.base/step-line.inp2
-rw-r--r--gdb/testsuite/gdb.base/step-over-clone.c2
-rw-r--r--gdb/testsuite/gdb.base/step-over-exit.c2
-rw-r--r--gdb/testsuite/gdb.base/step-over-exit.exp9
-rw-r--r--gdb/testsuite/gdb.base/step-over-fork.c2
-rw-r--r--gdb/testsuite/gdb.base/step-over-no-symbols.exp2
-rw-r--r--gdb/testsuite/gdb.base/step-over-syscall.exp28
-rw-r--r--gdb/testsuite/gdb.base/step-over-vfork.c2
-rw-r--r--gdb/testsuite/gdb.base/step-resume-infcall.c2
-rw-r--r--gdb/testsuite/gdb.base/step-resume-infcall.exp2
-rw-r--r--gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.c2
-rw-r--r--gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp2
-rw-r--r--gdb/testsuite/gdb.base/step-symless.c2
-rw-r--r--gdb/testsuite/gdb.base/step-symless.exp2
-rw-r--r--gdb/testsuite/gdb.base/step-test.exp2
-rw-r--r--gdb/testsuite/gdb.base/step-through-epilogue.c2
-rw-r--r--gdb/testsuite/gdb.base/step-through-epilogue.exp2
-rw-r--r--gdb/testsuite/gdb.base/store.exp2
-rw-r--r--gdb/testsuite/gdb.base/structs.c2
-rw-r--r--gdb/testsuite/gdb.base/structs.exp2
-rw-r--r--gdb/testsuite/gdb.base/structs2.exp2
-rw-r--r--gdb/testsuite/gdb.base/structs3.c2
-rw-r--r--gdb/testsuite/gdb.base/structs3.exp2
-rw-r--r--gdb/testsuite/gdb.base/style-interp-exec-mi.c2
-rw-r--r--gdb/testsuite/gdb.base/style-interp-exec-mi.exp2
-rw-r--r--gdb/testsuite/gdb.base/style-logging.exp2
-rw-r--r--gdb/testsuite/gdb.base/style.c2
-rw-r--r--gdb/testsuite/gdb.base/style.exp83
-rw-r--r--gdb/testsuite/gdb.base/subst.exp2
-rw-r--r--gdb/testsuite/gdb.base/sym-file-lib.c2
-rw-r--r--gdb/testsuite/gdb.base/sym-file-loader.c2
-rw-r--r--gdb/testsuite/gdb.base/sym-file-loader.h2
-rw-r--r--gdb/testsuite/gdb.base/sym-file-main.c2
-rw-r--r--gdb/testsuite/gdb.base/sym-file.exp2
-rw-r--r--gdb/testsuite/gdb.base/symbol-alias.c2
-rw-r--r--gdb/testsuite/gdb.base/symbol-alias.exp2
-rw-r--r--gdb/testsuite/gdb.base/symbol-alias2.c2
-rw-r--r--gdb/testsuite/gdb.base/symbol-without-target_section.c2
-rw-r--r--gdb/testsuite/gdb.base/symbol-without-target_section.exp2
-rw-r--r--gdb/testsuite/gdb.base/symfile-warn.c2
-rw-r--r--gdb/testsuite/gdb.base/symfile-warn.exp2
-rw-r--r--gdb/testsuite/gdb.base/symlink-sourcefile.c2
-rw-r--r--gdb/testsuite/gdb.base/symlink-sourcefile.exp2
-rw-r--r--gdb/testsuite/gdb.base/symtab-search-order-1.c2
-rw-r--r--gdb/testsuite/gdb.base/symtab-search-order-shlib-1.c2
-rw-r--r--gdb/testsuite/gdb.base/symtab-search-order.c2
-rw-r--r--gdb/testsuite/gdb.base/symtab-search-order.exp2
-rw-r--r--gdb/testsuite/gdb.base/sysroot-debug-lookup.exp2
-rw-r--r--gdb/testsuite/gdb.base/template.c2
-rw-r--r--gdb/testsuite/gdb.base/template.exp2
-rw-r--r--gdb/testsuite/gdb.base/term.c2
-rw-r--r--gdb/testsuite/gdb.base/term.exp2
-rw-r--r--gdb/testsuite/gdb.base/testenv.c2
-rw-r--r--gdb/testsuite/gdb.base/testenv.exp2
-rw-r--r--gdb/testsuite/gdb.base/thread-bp-multi-loc.c2
-rw-r--r--gdb/testsuite/gdb.base/thread-bp-multi-loc.exp2
-rw-r--r--gdb/testsuite/gdb.base/timestamp.exp2
-rw-r--r--gdb/testsuite/gdb.base/tls-common.exp.tcl50
-rw-r--r--gdb/testsuite/gdb.base/tls-dlobj-lib.c87
-rw-r--r--gdb/testsuite/gdb.base/tls-dlobj.c311
-rw-r--r--gdb/testsuite/gdb.base/tls-dlobj.exp378
-rw-r--r--gdb/testsuite/gdb.base/tls-multiobj.c89
-rw-r--r--gdb/testsuite/gdb.base/tls-multiobj.exp230
-rw-r--r--gdb/testsuite/gdb.base/tls-multiobj1.c26
-rw-r--r--gdb/testsuite/gdb.base/tls-multiobj2.c26
-rw-r--r--gdb/testsuite/gdb.base/tls-multiobj3.c26
-rw-r--r--gdb/testsuite/gdb.base/tls-nothreads.c57
-rw-r--r--gdb/testsuite/gdb.base/tls-nothreads.exp248
-rw-r--r--gdb/testsuite/gdb.base/trace-commands.exp2
-rw-r--r--gdb/testsuite/gdb.base/traced-thread.c2
-rw-r--r--gdb/testsuite/gdb.base/traced-thread.exp2
-rw-r--r--gdb/testsuite/gdb.base/twice.exp2
-rw-r--r--gdb/testsuite/gdb.base/type-opaque-lib.c2
-rw-r--r--gdb/testsuite/gdb.base/type-opaque-main.c2
-rw-r--r--gdb/testsuite/gdb.base/type-opaque.exp2
-rw-r--r--gdb/testsuite/gdb.base/ui-redirect.exp2
-rw-r--r--gdb/testsuite/gdb.base/unload.c2
-rw-r--r--gdb/testsuite/gdb.base/unload.exp2
-rw-r--r--gdb/testsuite/gdb.base/unloadshr.c2
-rw-r--r--gdb/testsuite/gdb.base/unloadshr2.c2
-rw-r--r--gdb/testsuite/gdb.base/until-nodebug.exp2
-rw-r--r--gdb/testsuite/gdb.base/until-trailing-insns.c2
-rw-r--r--gdb/testsuite/gdb.base/until-trailing-insns.exp2
-rw-r--r--gdb/testsuite/gdb.base/until.exp2
-rw-r--r--gdb/testsuite/gdb.base/unwind-on-each-insn-amd64-2.exp2
-rw-r--r--gdb/testsuite/gdb.base/unwind-on-each-insn-amd64.exp2
-rw-r--r--gdb/testsuite/gdb.base/unwind-on-each-insn-foo.c2
-rw-r--r--gdb/testsuite/gdb.base/unwind-on-each-insn-i386.exp2
-rw-r--r--gdb/testsuite/gdb.base/unwind-on-each-insn.c2
-rw-r--r--gdb/testsuite/gdb.base/unwind-on-each-insn.exp2
-rw-r--r--gdb/testsuite/gdb.base/unwind-on-each-insn.exp.tcl2
-rw-r--r--gdb/testsuite/gdb.base/unwindonsignal.c2
-rw-r--r--gdb/testsuite/gdb.base/unwindonsignal.exp2
-rw-r--r--gdb/testsuite/gdb.base/utf8-identifiers.c2
-rw-r--r--gdb/testsuite/gdb.base/utf8-identifiers.exp2
-rw-r--r--gdb/testsuite/gdb.base/valgrind-bt.c2
-rw-r--r--gdb/testsuite/gdb.base/valgrind-bt.exp2
-rw-r--r--gdb/testsuite/gdb.base/valgrind-disp-step.c2
-rw-r--r--gdb/testsuite/gdb.base/valgrind-disp-step.exp2
-rw-r--r--gdb/testsuite/gdb.base/valgrind-infcall-2.c2
-rw-r--r--gdb/testsuite/gdb.base/valgrind-infcall-2.exp2
-rw-r--r--gdb/testsuite/gdb.base/valgrind-infcall.c2
-rw-r--r--gdb/testsuite/gdb.base/valgrind-infcall.exp2
-rw-r--r--gdb/testsuite/gdb.base/value-double-free.c2
-rw-r--r--gdb/testsuite/gdb.base/value-double-free.exp2
-rw-r--r--gdb/testsuite/gdb.base/value-history-unavailable.c2
-rw-r--r--gdb/testsuite/gdb.base/value-history-unavailable.exp2
-rw-r--r--gdb/testsuite/gdb.base/varargs.exp2
-rw-r--r--gdb/testsuite/gdb.base/vdso-warning.c2
-rw-r--r--gdb/testsuite/gdb.base/vdso-warning.exp2
-rw-r--r--gdb/testsuite/gdb.base/vfork-follow-parent.c2
-rw-r--r--gdb/testsuite/gdb.base/vfork-follow-parent.exp4
-rw-r--r--gdb/testsuite/gdb.base/vforked-prog.c2
-rw-r--r--gdb/testsuite/gdb.base/vla-datatypes.c2
-rw-r--r--gdb/testsuite/gdb.base/vla-datatypes.exp2
-rw-r--r--gdb/testsuite/gdb.base/vla-optimized-out.c2
-rw-r--r--gdb/testsuite/gdb.base/vla-optimized-out.exp2
-rw-r--r--gdb/testsuite/gdb.base/vla-ptr.c2
-rw-r--r--gdb/testsuite/gdb.base/vla-ptr.exp2
-rw-r--r--gdb/testsuite/gdb.base/vla-sideeffect.c2
-rw-r--r--gdb/testsuite/gdb.base/vla-sideeffect.exp2
-rw-r--r--gdb/testsuite/gdb.base/vla-struct-fields.c2
-rw-r--r--gdb/testsuite/gdb.base/vla-struct-fields.exp2
-rw-r--r--gdb/testsuite/gdb.base/vla-stub-define.c2
-rw-r--r--gdb/testsuite/gdb.base/vla-stub.c2
-rw-r--r--gdb/testsuite/gdb.base/vla-stub.exp2
-rw-r--r--gdb/testsuite/gdb.base/volatile.exp2
-rw-r--r--gdb/testsuite/gdb.base/warning.exp2
-rw-r--r--gdb/testsuite/gdb.base/watch-before-fork.c2
-rw-r--r--gdb/testsuite/gdb.base/watch-before-fork.exp4
-rw-r--r--gdb/testsuite/gdb.base/watch-bitfields.c2
-rw-r--r--gdb/testsuite/gdb.base/watch-bitfields.exp2
-rw-r--r--gdb/testsuite/gdb.base/watch-cond-infcall.c2
-rw-r--r--gdb/testsuite/gdb.base/watch-cond-infcall.exp2
-rw-r--r--gdb/testsuite/gdb.base/watch-cond.c2
-rw-r--r--gdb/testsuite/gdb.base/watch-cond.exp2
-rw-r--r--gdb/testsuite/gdb.base/watch-non-mem.c2
-rw-r--r--gdb/testsuite/gdb.base/watch-non-mem.exp2
-rw-r--r--gdb/testsuite/gdb.base/watch-read.c2
-rw-r--r--gdb/testsuite/gdb.base/watch-read.exp2
-rw-r--r--gdb/testsuite/gdb.base/watch-vfork.c2
-rw-r--r--gdb/testsuite/gdb.base/watch-vfork.exp4
-rw-r--r--gdb/testsuite/gdb.base/watch_thread_num.c2
-rw-r--r--gdb/testsuite/gdb.base/watch_thread_num.exp2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-cond-gone-stripped.c2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-cond-gone.c2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-cond-gone.exp2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-delete.c2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-delete.exp2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-hw-attach.c2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-hw-attach.exp23
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-hw-hit-once.c2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-hw-hit-once.exp2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-hw.c2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-hw.exp2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-reuse-slot.c2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-reuse-slot.exp2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-running.c2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-running.exp2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-solib-shr.c2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-solib.c2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-solib.exp2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.c2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.exp2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-unaligned.c2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint-unaligned.exp2
-rw-r--r--gdb/testsuite/gdb.base/watchpoint.exp2
-rw-r--r--gdb/testsuite/gdb.base/watchpoints.c2
-rw-r--r--gdb/testsuite/gdb.base/watchpoints.exp2
-rw-r--r--gdb/testsuite/gdb.base/wchar.c2
-rw-r--r--gdb/testsuite/gdb.base/wchar.exp2
-rw-r--r--gdb/testsuite/gdb.base/weaklib1.c2
-rw-r--r--gdb/testsuite/gdb.base/weaklib2.c2
-rw-r--r--gdb/testsuite/gdb.base/whatis-exp.exp2
-rw-r--r--gdb/testsuite/gdb.base/whatis-ptype-typedefs.c2
-rw-r--r--gdb/testsuite/gdb.base/whatis-ptype-typedefs.exp2
-rw-r--r--gdb/testsuite/gdb.base/whatis.c2
-rw-r--r--gdb/testsuite/gdb.base/whatis.exp2
-rw-r--r--gdb/testsuite/gdb.base/with-mf-inc.c2
-rw-r--r--gdb/testsuite/gdb.base/with-mf-main.c2
-rw-r--r--gdb/testsuite/gdb.base/with-mf.exp2
-rw-r--r--gdb/testsuite/gdb.base/with.c2
-rw-r--r--gdb/testsuite/gdb.base/with.exp2
-rw-r--r--gdb/testsuite/gdb.base/wrap-line.exp2
-rw-r--r--gdb/testsuite/gdb.base/write_mem.c2
-rw-r--r--gdb/testsuite/gdb.base/write_mem.exp2
-rw-r--r--gdb/testsuite/gdb.base/wrong_frame_bt_full-main.c2
-rw-r--r--gdb/testsuite/gdb.base/wrong_frame_bt_full-opaque.c2
-rw-r--r--gdb/testsuite/gdb.base/wrong_frame_bt_full.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/buffer-size.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/cpu.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/data.c2
-rw-r--r--gdb/testsuite/gdb.btrace/data.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/delta.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/dlopen-dso.c2
-rw-r--r--gdb/testsuite/gdb.btrace/dlopen.c2
-rw-r--r--gdb/testsuite/gdb.btrace/dlopen.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/enable-new-thread.c2
-rw-r--r--gdb/testsuite/gdb.btrace/enable-new-thread.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/enable-running.c2
-rw-r--r--gdb/testsuite/gdb.btrace/enable-running.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/enable.c2
-rw-r--r--gdb/testsuite/gdb.btrace/enable.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/event-tracing-gap.c2
-rw-r--r--gdb/testsuite/gdb.btrace/event-tracing-gap.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/event-tracing.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/exception.cc2
-rwxr-xr-xgdb/testsuite/gdb.btrace/exception.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/function_call_history.c2
-rw-r--r--gdb/testsuite/gdb.btrace/function_call_history.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/gcore.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/i386-ptwrite.S2
-rw-r--r--gdb/testsuite/gdb.btrace/i686-record_goto.S2
-rw-r--r--gdb/testsuite/gdb.btrace/i686-tailcall-only.S2
-rw-r--r--gdb/testsuite/gdb.btrace/i686-tailcall.S2
-rw-r--r--gdb/testsuite/gdb.btrace/instruction_history.S2
-rw-r--r--gdb/testsuite/gdb.btrace/instruction_history.c2
-rw-r--r--gdb/testsuite/gdb.btrace/instruction_history.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/multi-inferior.c2
-rw-r--r--gdb/testsuite/gdb.btrace/multi-inferior.exp4
-rw-r--r--gdb/testsuite/gdb.btrace/multi-thread-step.c2
-rw-r--r--gdb/testsuite/gdb.btrace/multi-thread-step.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/nohist.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/non-stop.c2
-rw-r--r--gdb/testsuite/gdb.btrace/non-stop.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/null-deref.c2
-rw-r--r--gdb/testsuite/gdb.btrace/ptwrite.c2
-rw-r--r--gdb/testsuite/gdb.btrace/ptwrite.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/reconnect.c2
-rw-r--r--gdb/testsuite/gdb.btrace/reconnect.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/record_goto-step.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/record_goto.c2
-rw-r--r--gdb/testsuite/gdb.btrace/record_goto.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/rn-dl-bind.c2
-rw-r--r--gdb/testsuite/gdb.btrace/rn-dl-bind.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/segv.c2
-rw-r--r--gdb/testsuite/gdb.btrace/segv.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/step.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/stepi.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/tailcall-only.c2
-rw-r--r--gdb/testsuite/gdb.btrace/tailcall-only.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/tailcall.c2
-rw-r--r--gdb/testsuite/gdb.btrace/tailcall.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/tsx.c2
-rw-r--r--gdb/testsuite/gdb.btrace/tsx.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/unknown_functions.c2
-rw-r--r--gdb/testsuite/gdb.btrace/unknown_functions.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/vdso.c2
-rw-r--r--gdb/testsuite/gdb.btrace/vdso.exp2
-rw-r--r--gdb/testsuite/gdb.btrace/x86-tsx.S2
-rw-r--r--gdb/testsuite/gdb.btrace/x86_64-ptwrite.S2
-rw-r--r--gdb/testsuite/gdb.btrace/x86_64-record_goto.S2
-rw-r--r--gdb/testsuite/gdb.btrace/x86_64-tailcall-only.S2
-rw-r--r--gdb/testsuite/gdb.btrace/x86_64-tailcall.S2
-rw-r--r--gdb/testsuite/gdb.compile/compile-constvar.S2
-rw-r--r--gdb/testsuite/gdb.compile/compile-constvar.c2
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus-anonymous.cc2
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus-anonymous.exp4
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus-array-decay.cc2
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus-array-decay.exp4
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus-inherit.cc2
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus-inherit.exp4
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus-member.cc2
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus-member.exp4
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus-method.cc2
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus-method.exp4
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus-mod.c2
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus-namespace.cc2
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus-namespace.exp4
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus-nested.cc2
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus-nested.exp4
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus-print.c2
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus-print.exp4
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus-virtual.cc2
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus-virtual.exp4
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus.c2
-rw-r--r--gdb/testsuite/gdb.compile/compile-cplus.exp4
-rw-r--r--gdb/testsuite/gdb.compile/compile-ifunc.c2
-rw-r--r--gdb/testsuite/gdb.compile/compile-ifunc.exp4
-rw-r--r--gdb/testsuite/gdb.compile/compile-mod.c2
-rw-r--r--gdb/testsuite/gdb.compile/compile-nodebug.c2
-rw-r--r--gdb/testsuite/gdb.compile/compile-ops.c2
-rw-r--r--gdb/testsuite/gdb.compile/compile-ops.exp4
-rw-r--r--gdb/testsuite/gdb.compile/compile-print.c2
-rw-r--r--gdb/testsuite/gdb.compile/compile-print.exp4
-rw-r--r--gdb/testsuite/gdb.compile/compile-setjmp-mod.c2
-rw-r--r--gdb/testsuite/gdb.compile/compile-setjmp.c2
-rw-r--r--gdb/testsuite/gdb.compile/compile-setjmp.exp4
-rw-r--r--gdb/testsuite/gdb.compile/compile-shlib.c2
-rw-r--r--gdb/testsuite/gdb.compile/compile-tls.c2
-rw-r--r--gdb/testsuite/gdb.compile/compile-tls.exp4
-rw-r--r--gdb/testsuite/gdb.compile/compile.c2
-rw-r--r--gdb/testsuite/gdb.compile/compile.exp4
-rw-r--r--gdb/testsuite/gdb.cp/abstract-origin.cc2
-rw-r--r--gdb/testsuite/gdb.cp/abstract-origin.exp2
-rw-r--r--gdb/testsuite/gdb.cp/align.exp2
-rw-r--r--gdb/testsuite/gdb.cp/ambiguous.exp2
-rw-r--r--gdb/testsuite/gdb.cp/annota2.exp2
-rw-r--r--gdb/testsuite/gdb.cp/annota3.exp2
-rw-r--r--gdb/testsuite/gdb.cp/anon-ns.cc2
-rw-r--r--gdb/testsuite/gdb.cp/anon-ns.exp2
-rw-r--r--gdb/testsuite/gdb.cp/anon-ns2.cc2
-rw-r--r--gdb/testsuite/gdb.cp/anon-struct.cc2
-rw-r--r--gdb/testsuite/gdb.cp/anon-struct.exp2
-rw-r--r--gdb/testsuite/gdb.cp/anon-union.exp2
-rw-r--r--gdb/testsuite/gdb.cp/arg-reference.cc2
-rw-r--r--gdb/testsuite/gdb.cp/arg-reference.exp2
-rw-r--r--gdb/testsuite/gdb.cp/array-indices.exp2
-rw-r--r--gdb/testsuite/gdb.cp/array-repeat.exp2
-rw-r--r--gdb/testsuite/gdb.cp/baseenum.cc2
-rw-r--r--gdb/testsuite/gdb.cp/baseenum.exp2
-rw-r--r--gdb/testsuite/gdb.cp/bool.cc2
-rw-r--r--gdb/testsuite/gdb.cp/bool.exp2
-rw-r--r--gdb/testsuite/gdb.cp/break-f-std-string.cc2
-rw-r--r--gdb/testsuite/gdb.cp/break-f-std-string.exp2
-rw-r--r--gdb/testsuite/gdb.cp/break-template-cast.cc2
-rw-r--r--gdb/testsuite/gdb.cp/break-template-cast.exp2
-rw-r--r--gdb/testsuite/gdb.cp/breakpoint-locs-2.cc2
-rw-r--r--gdb/testsuite/gdb.cp/breakpoint-locs.cc2
-rw-r--r--gdb/testsuite/gdb.cp/breakpoint-locs.exp2
-rw-r--r--gdb/testsuite/gdb.cp/breakpoint-locs.h2
-rw-r--r--gdb/testsuite/gdb.cp/breakpoint-shlib-func-lib.cc2
-rw-r--r--gdb/testsuite/gdb.cp/breakpoint-shlib-func.cc2
-rw-r--r--gdb/testsuite/gdb.cp/breakpoint-shlib-func.exp2
-rw-r--r--gdb/testsuite/gdb.cp/breakpoint.cc2
-rw-r--r--gdb/testsuite/gdb.cp/breakpoint.exp2
-rw-r--r--gdb/testsuite/gdb.cp/bs15503.cc2
-rw-r--r--gdb/testsuite/gdb.cp/bs15503.exp2
-rw-r--r--gdb/testsuite/gdb.cp/call-c-1.c2
-rw-r--r--gdb/testsuite/gdb.cp/call-c.cc2
-rw-r--r--gdb/testsuite/gdb.cp/call-c.exp2
-rw-r--r--gdb/testsuite/gdb.cp/call-method-register.cc2
-rw-r--r--gdb/testsuite/gdb.cp/call-method-register.exp2
-rw-r--r--gdb/testsuite/gdb.cp/casts.exp2
-rw-r--r--gdb/testsuite/gdb.cp/casts03.cc2
-rw-r--r--gdb/testsuite/gdb.cp/chained-calls.cc19
-rw-r--r--gdb/testsuite/gdb.cp/chained-calls.exp5
-rw-r--r--gdb/testsuite/gdb.cp/class2.cc2
-rw-r--r--gdb/testsuite/gdb.cp/class2.exp2
-rw-r--r--gdb/testsuite/gdb.cp/classes.cc2
-rw-r--r--gdb/testsuite/gdb.cp/classes.exp2
-rw-r--r--gdb/testsuite/gdb.cp/cmpd-minsyms.cc2
-rw-r--r--gdb/testsuite/gdb.cp/cmpd-minsyms.exp2
-rw-r--r--gdb/testsuite/gdb.cp/cold-clone.cc2
-rw-r--r--gdb/testsuite/gdb.cp/cold-clone.exp2
-rw-r--r--gdb/testsuite/gdb.cp/constexpr-field.cc2
-rw-r--r--gdb/testsuite/gdb.cp/constexpr-field.exp2
-rw-r--r--gdb/testsuite/gdb.cp/converts.exp2
-rw-r--r--gdb/testsuite/gdb.cp/cp-relocate.cc2
-rw-r--r--gdb/testsuite/gdb.cp/cp-relocate.exp2
-rw-r--r--gdb/testsuite/gdb.cp/cpcompletion.exp2
-rw-r--r--gdb/testsuite/gdb.cp/cpexprs-debug-types.exp2
-rw-r--r--gdb/testsuite/gdb.cp/cpexprs.cc2
-rw-r--r--gdb/testsuite/gdb.cp/cpexprs.exp2
-rw-r--r--gdb/testsuite/gdb.cp/cpexprs.exp.tcl38
-rw-r--r--gdb/testsuite/gdb.cp/cplabel.cc2
-rw-r--r--gdb/testsuite/gdb.cp/cplabel.exp2
-rw-r--r--gdb/testsuite/gdb.cp/cplusfuncs.exp5
-rw-r--r--gdb/testsuite/gdb.cp/cpsizeof.cc2
-rw-r--r--gdb/testsuite/gdb.cp/cpsizeof.exp2
-rw-r--r--gdb/testsuite/gdb.cp/ctti.exp2
-rw-r--r--gdb/testsuite/gdb.cp/cttiadd.cc2
-rw-r--r--gdb/testsuite/gdb.cp/cttiadd1.cc2
-rw-r--r--gdb/testsuite/gdb.cp/cttiadd2.cc2
-rw-r--r--gdb/testsuite/gdb.cp/cttiadd3.cc2
-rw-r--r--gdb/testsuite/gdb.cp/debug-expr.exp2
-rw-r--r--gdb/testsuite/gdb.cp/demangle.exp2
-rw-r--r--gdb/testsuite/gdb.cp/derivation.cc2
-rw-r--r--gdb/testsuite/gdb.cp/derivation.exp2
-rw-r--r--gdb/testsuite/gdb.cp/derivation2.cc2
-rw-r--r--gdb/testsuite/gdb.cp/destrprint.exp2
-rw-r--r--gdb/testsuite/gdb.cp/disasm-func-name.cc2
-rw-r--r--gdb/testsuite/gdb.cp/disasm-func-name.exp2
-rw-r--r--gdb/testsuite/gdb.cp/dispcxx.cc2
-rw-r--r--gdb/testsuite/gdb.cp/dispcxx.exp2
-rw-r--r--gdb/testsuite/gdb.cp/empty-enum.cc2
-rw-r--r--gdb/testsuite/gdb.cp/empty-enum.exp2
-rw-r--r--gdb/testsuite/gdb.cp/ena-dis-br-range.cc2
-rw-r--r--gdb/testsuite/gdb.cp/ena-dis-br-range.exp2
-rw-r--r--gdb/testsuite/gdb.cp/enum-class.cc2
-rw-r--r--gdb/testsuite/gdb.cp/enum-class.exp2
-rw-r--r--gdb/testsuite/gdb.cp/except-multi-location-lib.cc2
-rw-r--r--gdb/testsuite/gdb.cp/except-multi-location-main.cc2
-rw-r--r--gdb/testsuite/gdb.cp/except-multi-location.exp2
-rw-r--r--gdb/testsuite/gdb.cp/exception.cc2
-rw-r--r--gdb/testsuite/gdb.cp/exception.exp2
-rw-r--r--gdb/testsuite/gdb.cp/exceptprint.cc2
-rw-r--r--gdb/testsuite/gdb.cp/exceptprint.exp2
-rw-r--r--gdb/testsuite/gdb.cp/expand-psymtabs-cxx.cc2
-rw-r--r--gdb/testsuite/gdb.cp/expand-psymtabs-cxx.exp2
-rw-r--r--gdb/testsuite/gdb.cp/expand-sals.cc2
-rw-r--r--gdb/testsuite/gdb.cp/expand-sals.exp2
-rw-r--r--gdb/testsuite/gdb.cp/extern-c.cc2
-rw-r--r--gdb/testsuite/gdb.cp/extern-c.exp2
-rw-r--r--gdb/testsuite/gdb.cp/filename.cc2
-rw-r--r--gdb/testsuite/gdb.cp/filename.exp2
-rw-r--r--gdb/testsuite/gdb.cp/formatted-ref.cc2
-rw-r--r--gdb/testsuite/gdb.cp/formatted-ref.exp2
-rw-r--r--gdb/testsuite/gdb.cp/fpointer.exp2
-rw-r--r--gdb/testsuite/gdb.cp/gdb1355.exp2
-rw-r--r--gdb/testsuite/gdb.cp/gdb2384-base.cc2
-rw-r--r--gdb/testsuite/gdb.cp/gdb2384-base.h2
-rw-r--r--gdb/testsuite/gdb.cp/gdb2384.cc2
-rw-r--r--gdb/testsuite/gdb.cp/gdb2384.exp2
-rw-r--r--gdb/testsuite/gdb.cp/gdb2495.cc2
-rw-r--r--gdb/testsuite/gdb.cp/gdb2495.exp2
-rw-r--r--gdb/testsuite/gdb.cp/hang.exp2
-rw-r--r--gdb/testsuite/gdb.cp/impl-this.cc2
-rw-r--r--gdb/testsuite/gdb.cp/impl-this.exp2
-rw-r--r--gdb/testsuite/gdb.cp/includefile2
-rw-r--r--gdb/testsuite/gdb.cp/incomplete-type-overload.cc2
-rw-r--r--gdb/testsuite/gdb.cp/incomplete-type-overload.exp2
-rw-r--r--gdb/testsuite/gdb.cp/infcall-dlopen-lib.cc2
-rw-r--r--gdb/testsuite/gdb.cp/infcall-dlopen.cc2
-rw-r--r--gdb/testsuite/gdb.cp/infcall-dlopen.exp2
-rw-r--r--gdb/testsuite/gdb.cp/infcall-nodebug-c++-d0.exp2
-rw-r--r--gdb/testsuite/gdb.cp/infcall-nodebug-c++-d1.exp2
-rw-r--r--gdb/testsuite/gdb.cp/infcall-nodebug-c-d0.exp2
-rw-r--r--gdb/testsuite/gdb.cp/infcall-nodebug-c-d1.exp2
-rw-r--r--gdb/testsuite/gdb.cp/infcall-nodebug-lib.c2
-rw-r--r--gdb/testsuite/gdb.cp/infcall-nodebug-main.c2
-rw-r--r--gdb/testsuite/gdb.cp/infcall-nodebug.exp.tcl2
-rw-r--r--gdb/testsuite/gdb.cp/inherit.exp2
-rw-r--r--gdb/testsuite/gdb.cp/iostream.cc2
-rw-r--r--gdb/testsuite/gdb.cp/iostream.exp2
-rw-r--r--gdb/testsuite/gdb.cp/koenig.exp2
-rw-r--r--gdb/testsuite/gdb.cp/local-static.c2
-rw-r--r--gdb/testsuite/gdb.cp/local-static.exp2
-rw-r--r--gdb/testsuite/gdb.cp/local.exp2
-rw-r--r--gdb/testsuite/gdb.cp/m-data.exp2
-rw-r--r--gdb/testsuite/gdb.cp/m-static.exp2
-rw-r--r--gdb/testsuite/gdb.cp/main-cp.exp2
-rw-r--r--gdb/testsuite/gdb.cp/main.cc2
-rw-r--r--gdb/testsuite/gdb.cp/maint.exp2
-rw-r--r--gdb/testsuite/gdb.cp/many-args.cc2
-rw-r--r--gdb/testsuite/gdb.cp/many-args.exp2
-rw-r--r--gdb/testsuite/gdb.cp/mb-ctor.exp2
-rw-r--r--gdb/testsuite/gdb.cp/mb-inline.exp2
-rw-r--r--gdb/testsuite/gdb.cp/mb-inline.h2
-rw-r--r--gdb/testsuite/gdb.cp/mb-inline1.cc2
-rw-r--r--gdb/testsuite/gdb.cp/mb-inline2.cc2
-rw-r--r--gdb/testsuite/gdb.cp/mb-templates.exp2
-rw-r--r--gdb/testsuite/gdb.cp/member-name.cc2
-rw-r--r--gdb/testsuite/gdb.cp/member-name.exp2
-rw-r--r--gdb/testsuite/gdb.cp/member-ptr.cc2
-rw-r--r--gdb/testsuite/gdb.cp/member-ptr.exp2
-rw-r--r--gdb/testsuite/gdb.cp/meth-typedefs.cc2
-rw-r--r--gdb/testsuite/gdb.cp/meth-typedefs.exp2
-rw-r--r--gdb/testsuite/gdb.cp/method-call-in-c.cc2
-rw-r--r--gdb/testsuite/gdb.cp/method-call-in-c.exp2
-rw-r--r--gdb/testsuite/gdb.cp/method.exp2
-rw-r--r--gdb/testsuite/gdb.cp/method2.exp2
-rw-r--r--gdb/testsuite/gdb.cp/minsym-fallback-main.cc2
-rw-r--r--gdb/testsuite/gdb.cp/minsym-fallback.cc2
-rw-r--r--gdb/testsuite/gdb.cp/minsym-fallback.exp2
-rw-r--r--gdb/testsuite/gdb.cp/minsym-fallback.h2
-rw-r--r--gdb/testsuite/gdb.cp/misc.cc2
-rw-r--r--gdb/testsuite/gdb.cp/misc.exp2
-rw-r--r--gdb/testsuite/gdb.cp/namelessclass.S2
-rw-r--r--gdb/testsuite/gdb.cp/namelessclass.cc2
-rw-r--r--gdb/testsuite/gdb.cp/namelessclass.exp2
-rw-r--r--gdb/testsuite/gdb.cp/namespace-enum.exp2
-rw-r--r--gdb/testsuite/gdb.cp/namespace-nested-import.exp2
-rw-r--r--gdb/testsuite/gdb.cp/namespace.exp2
-rw-r--r--gdb/testsuite/gdb.cp/namespace1.cc2
-rw-r--r--gdb/testsuite/gdb.cp/nested-class-func-class.cc2
-rw-r--r--gdb/testsuite/gdb.cp/nested-class-func-class.exp2
-rw-r--r--gdb/testsuite/gdb.cp/nested-types.cc2
-rw-r--r--gdb/testsuite/gdb.cp/nested-types.exp2
-rw-r--r--gdb/testsuite/gdb.cp/nextoverthrow.cc2
-rw-r--r--gdb/testsuite/gdb.cp/nextoverthrow.exp2
-rw-r--r--gdb/testsuite/gdb.cp/no-libstdcxx-probe.exp2
-rw-r--r--gdb/testsuite/gdb.cp/non-trivial-retval.cc2
-rw-r--r--gdb/testsuite/gdb.cp/non-trivial-retval.exp2
-rw-r--r--gdb/testsuite/gdb.cp/noparam.cc2
-rw-r--r--gdb/testsuite/gdb.cp/noparam.exp2
-rw-r--r--gdb/testsuite/gdb.cp/nsalias.cc2
-rw-r--r--gdb/testsuite/gdb.cp/nsalias.exp2
-rw-r--r--gdb/testsuite/gdb.cp/nsdecl.exp2
-rw-r--r--gdb/testsuite/gdb.cp/nsimport.exp2
-rw-r--r--gdb/testsuite/gdb.cp/nsnested.exp2
-rw-r--r--gdb/testsuite/gdb.cp/nsnoimports.exp2
-rw-r--r--gdb/testsuite/gdb.cp/nsrecurs.exp2
-rw-r--r--gdb/testsuite/gdb.cp/nsstress.exp2
-rw-r--r--gdb/testsuite/gdb.cp/nsusing.exp2
-rw-r--r--gdb/testsuite/gdb.cp/operator.exp2
-rw-r--r--gdb/testsuite/gdb.cp/oranking.exp2
-rw-r--r--gdb/testsuite/gdb.cp/overload-const.cc2
-rw-r--r--gdb/testsuite/gdb.cp/overload-const.exp2
-rw-r--r--gdb/testsuite/gdb.cp/overload.exp2
-rw-r--r--gdb/testsuite/gdb.cp/ovldbreak.exp2
-rw-r--r--gdb/testsuite/gdb.cp/ovsrch.exp2
-rw-r--r--gdb/testsuite/gdb.cp/ovsrch.h2
-rw-r--r--gdb/testsuite/gdb.cp/ovsrch1.cc2
-rw-r--r--gdb/testsuite/gdb.cp/ovsrch2.cc2
-rw-r--r--gdb/testsuite/gdb.cp/ovsrch3.cc2
-rw-r--r--gdb/testsuite/gdb.cp/ovsrch4.cc2
-rw-r--r--gdb/testsuite/gdb.cp/paramless.cc2
-rw-r--r--gdb/testsuite/gdb.cp/paramless.exp17
-rw-r--r--gdb/testsuite/gdb.cp/paren-type.cc2
-rw-r--r--gdb/testsuite/gdb.cp/paren-type.exp2
-rw-r--r--gdb/testsuite/gdb.cp/parse-lang.cc2
-rw-r--r--gdb/testsuite/gdb.cp/parse-lang.exp2
-rw-r--r--gdb/testsuite/gdb.cp/pass-by-ref-2.cc2
-rw-r--r--gdb/testsuite/gdb.cp/pass-by-ref-2.exp2
-rw-r--r--gdb/testsuite/gdb.cp/pass-by-ref.exp2
-rw-r--r--gdb/testsuite/gdb.cp/pointer-to-member.cc2
-rw-r--r--gdb/testsuite/gdb.cp/pointer-to-member.exp2
-rw-r--r--gdb/testsuite/gdb.cp/pr-1023.exp2
-rw-r--r--gdb/testsuite/gdb.cp/pr-1210.exp2
-rw-r--r--gdb/testsuite/gdb.cp/pr-574.cc2
-rw-r--r--gdb/testsuite/gdb.cp/pr-574.exp2
-rw-r--r--gdb/testsuite/gdb.cp/pr10687.exp2
-rw-r--r--gdb/testsuite/gdb.cp/pr10728.exp2
-rw-r--r--gdb/testsuite/gdb.cp/pr12028.exp2
-rw-r--r--gdb/testsuite/gdb.cp/pr17132.cc2
-rw-r--r--gdb/testsuite/gdb.cp/pr17132.exp2
-rw-r--r--gdb/testsuite/gdb.cp/pr17494.cc2
-rw-r--r--gdb/testsuite/gdb.cp/pr17494.exp2
-rw-r--r--gdb/testsuite/gdb.cp/pr9067.exp2
-rw-r--r--gdb/testsuite/gdb.cp/pr9167.exp2
-rw-r--r--gdb/testsuite/gdb.cp/pr9631.cc2
-rw-r--r--gdb/testsuite/gdb.cp/pr9631.exp2
-rw-r--r--gdb/testsuite/gdb.cp/print-demangle.exp2
-rw-r--r--gdb/testsuite/gdb.cp/print-global-stub.cc2
-rw-r--r--gdb/testsuite/gdb.cp/print-global-stub.exp2
-rw-r--r--gdb/testsuite/gdb.cp/print-method-args.cc2
-rw-r--r--gdb/testsuite/gdb.cp/print-method-args.exp2
-rw-r--r--gdb/testsuite/gdb.cp/printmethod.cc2
-rw-r--r--gdb/testsuite/gdb.cp/printmethod.exp2
-rw-r--r--gdb/testsuite/gdb.cp/psmang.exp2
-rw-r--r--gdb/testsuite/gdb.cp/psmang1.cc2
-rw-r--r--gdb/testsuite/gdb.cp/psmang2.cc2
-rw-r--r--gdb/testsuite/gdb.cp/psymtab-parameter.cc2
-rw-r--r--gdb/testsuite/gdb.cp/psymtab-parameter.exp2
-rw-r--r--gdb/testsuite/gdb.cp/ptype-cv-cp.cc2
-rw-r--r--gdb/testsuite/gdb.cp/ptype-cv-cp.exp2
-rw-r--r--gdb/testsuite/gdb.cp/ptype-flags.cc2
-rw-r--r--gdb/testsuite/gdb.cp/ptype-flags.exp2
-rw-r--r--gdb/testsuite/gdb.cp/punctuator.exp2
-rw-r--r--gdb/testsuite/gdb.cp/re-set-overloaded.cc2
-rw-r--r--gdb/testsuite/gdb.cp/re-set-overloaded.exp2
-rw-r--r--gdb/testsuite/gdb.cp/readnow-language.cc2
-rw-r--r--gdb/testsuite/gdb.cp/readnow-language.exp2
-rw-r--r--gdb/testsuite/gdb.cp/ref-params.cc2
-rw-r--r--gdb/testsuite/gdb.cp/ref-params.exp2
-rw-r--r--gdb/testsuite/gdb.cp/ref-types.cc2
-rw-r--r--gdb/testsuite/gdb.cp/ref-types.exp2
-rw-r--r--gdb/testsuite/gdb.cp/rtti.exp2
-rw-r--r--gdb/testsuite/gdb.cp/rtti.h2
-rw-r--r--gdb/testsuite/gdb.cp/rtti1.cc2
-rw-r--r--gdb/testsuite/gdb.cp/rtti2.cc2
-rw-r--r--gdb/testsuite/gdb.cp/rvalue-ref-casts.cc2
-rw-r--r--gdb/testsuite/gdb.cp/rvalue-ref-casts.exp2
-rw-r--r--gdb/testsuite/gdb.cp/rvalue-ref-overload.cc2
-rw-r--r--gdb/testsuite/gdb.cp/rvalue-ref-overload.exp2
-rw-r--r--gdb/testsuite/gdb.cp/rvalue-ref-params.cc2
-rw-r--r--gdb/testsuite/gdb.cp/rvalue-ref-params.exp2
-rw-r--r--gdb/testsuite/gdb.cp/rvalue-ref-sizeof.cc2
-rw-r--r--gdb/testsuite/gdb.cp/rvalue-ref-sizeof.exp2
-rw-r--r--gdb/testsuite/gdb.cp/rvalue-ref-types.cc2
-rw-r--r--gdb/testsuite/gdb.cp/rvalue-ref-types.exp2
-rw-r--r--gdb/testsuite/gdb.cp/save-bp-qualified.cc2
-rw-r--r--gdb/testsuite/gdb.cp/save-bp-qualified.exp2
-rw-r--r--gdb/testsuite/gdb.cp/scope-err.cc2
-rw-r--r--gdb/testsuite/gdb.cp/scope-err.exp2
-rw-r--r--gdb/testsuite/gdb.cp/shadow.exp2
-rw-r--r--gdb/testsuite/gdb.cp/smartp.cc2
-rw-r--r--gdb/testsuite/gdb.cp/smartp.exp2
-rw-r--r--gdb/testsuite/gdb.cp/static-method.cc2
-rw-r--r--gdb/testsuite/gdb.cp/static-method.exp2
-rw-r--r--gdb/testsuite/gdb.cp/static-print-quit.cc2
-rw-r--r--gdb/testsuite/gdb.cp/static-print-quit.exp2
-rw-r--r--gdb/testsuite/gdb.cp/static-typedef-print.cc2
-rw-r--r--gdb/testsuite/gdb.cp/static-typedef-print.exp2
-rw-r--r--gdb/testsuite/gdb.cp/step-and-next-inline.cc2
-rw-r--r--gdb/testsuite/gdb.cp/step-and-next-inline.exp2
-rw-r--r--gdb/testsuite/gdb.cp/step-and-next-inline.h2
-rw-r--r--gdb/testsuite/gdb.cp/stub-array-size.cc2
-rw-r--r--gdb/testsuite/gdb.cp/stub-array-size.exp2
-rw-r--r--gdb/testsuite/gdb.cp/stub-array-size.h2
-rw-r--r--gdb/testsuite/gdb.cp/stub-array-size2.cc2
-rw-r--r--gdb/testsuite/gdb.cp/subtypes-2.cc2
-rw-r--r--gdb/testsuite/gdb.cp/subtypes.cc2
-rw-r--r--gdb/testsuite/gdb.cp/subtypes.exp2
-rw-r--r--gdb/testsuite/gdb.cp/subtypes.h2
-rw-r--r--gdb/testsuite/gdb.cp/temargs.cc2
-rw-r--r--gdb/testsuite/gdb.cp/temargs.exp2
-rw-r--r--gdb/testsuite/gdb.cp/templates.exp51
-rw-r--r--gdb/testsuite/gdb.cp/try_catch.cc2
-rw-r--r--gdb/testsuite/gdb.cp/try_catch.exp2
-rw-r--r--gdb/testsuite/gdb.cp/typed-enum.cc2
-rw-r--r--gdb/testsuite/gdb.cp/typed-enum.exp2
-rw-r--r--gdb/testsuite/gdb.cp/typedef-base.cc2
-rw-r--r--gdb/testsuite/gdb.cp/typedef-base.exp2
-rw-r--r--gdb/testsuite/gdb.cp/typedef-operator.cc2
-rw-r--r--gdb/testsuite/gdb.cp/typedef-operator.exp2
-rw-r--r--gdb/testsuite/gdb.cp/typeid.cc2
-rw-r--r--gdb/testsuite/gdb.cp/typeid.exp2
-rw-r--r--gdb/testsuite/gdb.cp/userdef.cc2
-rw-r--r--gdb/testsuite/gdb.cp/userdef.exp2
-rw-r--r--gdb/testsuite/gdb.cp/using-crash.cc2
-rw-r--r--gdb/testsuite/gdb.cp/using-crash.exp2
-rw-r--r--gdb/testsuite/gdb.cp/var-tag-2.cc2
-rw-r--r--gdb/testsuite/gdb.cp/var-tag-3.cc2
-rw-r--r--gdb/testsuite/gdb.cp/var-tag-4.cc2
-rw-r--r--gdb/testsuite/gdb.cp/var-tag.cc2
-rw-r--r--gdb/testsuite/gdb.cp/var-tag.exp2
-rw-r--r--gdb/testsuite/gdb.cp/virtbase.exp2
-rw-r--r--gdb/testsuite/gdb.cp/virtbase2.cc2
-rw-r--r--gdb/testsuite/gdb.cp/virtbase2.exp2
-rw-r--r--gdb/testsuite/gdb.cp/virtfunc.cc2
-rw-r--r--gdb/testsuite/gdb.cp/virtfunc.exp2
-rw-r--r--gdb/testsuite/gdb.cp/virtfunc2.cc2
-rw-r--r--gdb/testsuite/gdb.cp/virtfunc2.exp2
-rw-r--r--gdb/testsuite/gdb.cp/vla-cxx.cc2
-rw-r--r--gdb/testsuite/gdb.cp/vla-cxx.exp2
-rw-r--r--gdb/testsuite/gdb.cp/watch-cp.cc2
-rw-r--r--gdb/testsuite/gdb.cp/watch-cp.exp2
-rw-r--r--gdb/testsuite/gdb.cp/wide_char_types.c2
-rw-r--r--gdb/testsuite/gdb.cp/wide_char_types.exp2
-rw-r--r--gdb/testsuite/gdb.ctf/cross-tu-cyclic.exp2
-rw-r--r--gdb/testsuite/gdb.ctf/ctf-a.c2
-rw-r--r--gdb/testsuite/gdb.ctf/ctf-a.h2
-rw-r--r--gdb/testsuite/gdb.ctf/ctf-b.c2
-rw-r--r--gdb/testsuite/gdb.ctf/ctf-b.h2
-rw-r--r--gdb/testsuite/gdb.ctf/ctf-c.c2
-rw-r--r--gdb/testsuite/gdb.ctf/ctf-c.h2
-rw-r--r--gdb/testsuite/gdb.ctf/dwarf2-and-ctf-2.c2
-rw-r--r--gdb/testsuite/gdb.ctf/dwarf2-and-ctf.c2
-rw-r--r--gdb/testsuite/gdb.ctf/dwarf2-and-ctf.exp2
-rw-r--r--gdb/testsuite/gdb.ctf/funcreturn.exp2
-rw-r--r--gdb/testsuite/gdb.ctf/multi.exp2
-rw-r--r--gdb/testsuite/gdb.ctf/whatis.c2
-rw-r--r--gdb/testsuite/gdb.dap/ada-arrays.exp2
-rw-r--r--gdb/testsuite/gdb.dap/ada-arrays/cstuff.c2
-rw-r--r--gdb/testsuite/gdb.dap/ada-arrays/main.adb2
-rw-r--r--gdb/testsuite/gdb.dap/ada-arrays/pck.adb2
-rw-r--r--gdb/testsuite/gdb.dap/ada-arrays/pck.ads2
-rw-r--r--gdb/testsuite/gdb.dap/ada-nested.exp2
-rw-r--r--gdb/testsuite/gdb.dap/ada-nested/prog.adb2
-rw-r--r--gdb/testsuite/gdb.dap/ada-scopes.exp2
-rw-r--r--gdb/testsuite/gdb.dap/ada-scopes/pack.adb2
-rw-r--r--gdb/testsuite/gdb.dap/ada-scopes/pack.ads2
-rw-r--r--gdb/testsuite/gdb.dap/ada-scopes/prog.adb2
-rw-r--r--gdb/testsuite/gdb.dap/args-env.c2
-rw-r--r--gdb/testsuite/gdb.dap/args-env.exp2
-rw-r--r--gdb/testsuite/gdb.dap/assign.c2
-rw-r--r--gdb/testsuite/gdb.dap/assign.exp2
-rw-r--r--gdb/testsuite/gdb.dap/assign.py2
-rw-r--r--gdb/testsuite/gdb.dap/attach.c2
-rw-r--r--gdb/testsuite/gdb.dap/attach.exp6
-rw-r--r--gdb/testsuite/gdb.dap/basic-dap.c2
-rw-r--r--gdb/testsuite/gdb.dap/basic-dap.exp2
-rw-r--r--gdb/testsuite/gdb.dap/bt-inner.c2
-rw-r--r--gdb/testsuite/gdb.dap/bt-main.c2
-rw-r--r--gdb/testsuite/gdb.dap/bt-nodebug.exp2
-rw-r--r--gdb/testsuite/gdb.dap/cancel-launch.exp2
-rw-r--r--gdb/testsuite/gdb.dap/catch-exception.exp2
-rw-r--r--gdb/testsuite/gdb.dap/catch-exception/pck.ads2
-rw-r--r--gdb/testsuite/gdb.dap/catch-exception/prog.adb2
-rw-r--r--gdb/testsuite/gdb.dap/children.exp2
-rw-r--r--gdb/testsuite/gdb.dap/children.py2
-rw-r--r--gdb/testsuite/gdb.dap/cond-bp.c2
-rw-r--r--gdb/testsuite/gdb.dap/cond-bp.exp2
-rw-r--r--gdb/testsuite/gdb.dap/cwd.exp2
-rw-r--r--gdb/testsuite/gdb.dap/cxx-exception.cc2
-rw-r--r--gdb/testsuite/gdb.dap/cxx-exception.exp2
-rw-r--r--gdb/testsuite/gdb.dap/disassem.c2
-rw-r--r--gdb/testsuite/gdb.dap/disassem.exp2
-rw-r--r--gdb/testsuite/gdb.dap/eof.exp2
-rw-r--r--gdb/testsuite/gdb.dap/frameless.c2
-rw-r--r--gdb/testsuite/gdb.dap/frameless.exp2
-rw-r--r--gdb/testsuite/gdb.dap/global.c2
-rw-r--r--gdb/testsuite/gdb.dap/global.exp2
-rw-r--r--gdb/testsuite/gdb.dap/hover.c2
-rw-r--r--gdb/testsuite/gdb.dap/hover.exp2
-rw-r--r--gdb/testsuite/gdb.dap/insn-bp.exp2
-rw-r--r--gdb/testsuite/gdb.dap/lazy-string.c2
-rw-r--r--gdb/testsuite/gdb.dap/lazy-string.exp2
-rw-r--r--gdb/testsuite/gdb.dap/lazy-string.py2
-rw-r--r--gdb/testsuite/gdb.dap/line-zero.exp2
-rw-r--r--gdb/testsuite/gdb.dap/log-message.c2
-rw-r--r--gdb/testsuite/gdb.dap/log-message.exp2
-rw-r--r--gdb/testsuite/gdb.dap/max-size.c2
-rw-r--r--gdb/testsuite/gdb.dap/max-size.exp2
-rw-r--r--gdb/testsuite/gdb.dap/memory.c2
-rw-r--r--gdb/testsuite/gdb.dap/memory.exp6
-rw-r--r--gdb/testsuite/gdb.dap/modules-solib.c2
-rw-r--r--gdb/testsuite/gdb.dap/modules.c2
-rw-r--r--gdb/testsuite/gdb.dap/modules.exp2
-rw-r--r--gdb/testsuite/gdb.dap/pause.c2
-rw-r--r--gdb/testsuite/gdb.dap/pause.exp2
-rw-r--r--gdb/testsuite/gdb.dap/ptrref.cc2
-rw-r--r--gdb/testsuite/gdb.dap/ptrref.exp2
-rw-r--r--gdb/testsuite/gdb.dap/remote-dap.exp2
-rw-r--r--gdb/testsuite/gdb.dap/rust-slices.exp2
-rw-r--r--gdb/testsuite/gdb.dap/rust-slices.rs2
-rw-r--r--gdb/testsuite/gdb.dap/scopes.c2
-rw-r--r--gdb/testsuite/gdb.dap/scopes.exp2
-rw-r--r--gdb/testsuite/gdb.dap/sources.c2
-rw-r--r--gdb/testsuite/gdb.dap/sources.exp2
-rw-r--r--gdb/testsuite/gdb.dap/stack-format.c2
-rw-r--r--gdb/testsuite/gdb.dap/stack-format.exp2
-rw-r--r--gdb/testsuite/gdb.dap/stack-format.py2
-rw-r--r--gdb/testsuite/gdb.dap/step-out.c2
-rw-r--r--gdb/testsuite/gdb.dap/step-out.exp2
-rw-r--r--gdb/testsuite/gdb.dap/stop-at-main.exp2
-rw-r--r--gdb/testsuite/gdb.dap/terminate.exp2
-rw-r--r--gdb/testsuite/gdb.dap/type_check.exp2
-rw-r--r--gdb/testsuite/gdb.dap/type_check.py2
-rw-r--r--gdb/testsuite/gdb.debuginfod/build-id-no-debug-warning.c2
-rw-r--r--gdb/testsuite/gdb.debuginfod/build-id-no-debug-warning.exp4
-rw-r--r--gdb/testsuite/gdb.debuginfod/corefile-mapped-file-1.c2
-rw-r--r--gdb/testsuite/gdb.debuginfod/corefile-mapped-file-2.c2
-rw-r--r--gdb/testsuite/gdb.debuginfod/corefile-mapped-file-3.c2
-rw-r--r--gdb/testsuite/gdb.debuginfod/corefile-mapped-file.exp6
-rw-r--r--gdb/testsuite/gdb.debuginfod/crc_mismatch-2.c2
-rw-r--r--gdb/testsuite/gdb.debuginfod/crc_mismatch.c2
-rw-r--r--gdb/testsuite/gdb.debuginfod/crc_mismatch.exp2
-rw-r--r--gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.c2
-rw-r--r--gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.exp4
-rw-r--r--gdb/testsuite/gdb.debuginfod/solib-with-soname-1.c2
-rw-r--r--gdb/testsuite/gdb.debuginfod/solib-with-soname-2.c2
-rw-r--r--gdb/testsuite/gdb.debuginfod/solib-with-soname.exp4
-rw-r--r--gdb/testsuite/gdb.disasm/am33.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/basics.c2
-rw-r--r--gdb/testsuite/gdb.disasm/basics.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/disassembler-options.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/h8300s.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/hppa.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/mn10300.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/sh3.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/t01_mov.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/t02_mova.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/t03_add.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/t04_sub.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/t05_cmp.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/t06_ari2.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/t07_ari3.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/t08_or.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/t09_xor.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/t10_and.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/t11_logs.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/t12_bit.exp2
-rw-r--r--gdb/testsuite/gdb.disasm/t13_otr.exp2
-rw-r--r--gdb/testsuite/gdb.dlang/circular.c2
-rw-r--r--gdb/testsuite/gdb.dlang/circular.exp2
-rw-r--r--gdb/testsuite/gdb.dlang/debug-expr.exp2
-rw-r--r--gdb/testsuite/gdb.dlang/demangle.exp2
-rw-r--r--gdb/testsuite/gdb.dlang/dlang-start-2.exp2
-rw-r--r--gdb/testsuite/gdb.dlang/dlang-start.exp2
-rw-r--r--gdb/testsuite/gdb.dlang/dmain.c2
-rw-r--r--gdb/testsuite/gdb.dlang/expression.exp2
-rw-r--r--gdb/testsuite/gdb.dlang/primitive-types.exp2
-rw-r--r--gdb/testsuite/gdb.dlang/properties.exp2
-rw-r--r--gdb/testsuite/gdb.dlang/simple.d2
-rw-r--r--gdb/testsuite/gdb.dlang/watch-loc.c2
-rw-r--r--gdb/testsuite/gdb.dlang/watch-loc.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/DW_OP_piece_with_DW_OP_GNU_uninit.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/_start.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/ada-array-bound.c29
-rw-r--r--gdb/testsuite/gdb.dwarf2/ada-array-bound.exp89
-rw-r--r--gdb/testsuite/gdb.dwarf2/ada-cold-name.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/ada-linkage-name.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/ada-linkage-name.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/ada-thick-pointer.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/ada-valprint-error.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/ada-valprint-error.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/anon-ns-fn.cc2
-rw-r--r--gdb/testsuite/gdb.dwarf2/anon-ns-fn.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/arr-opt-out.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/arr-opt-out.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/arr-stride.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/arr-subrange.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/assign-variable-value-to-register.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/atomic-type.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/atomic-type.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/backward-spec-inter-cu.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/bad-regnum.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/break-inline-psymtab-2.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/break-inline-psymtab.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/break-inline-psymtab.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/callframecfa.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/callframecfa.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/calling-convention.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/calling-convention.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/clang-cli-macro.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/clang-cli-macro.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/clztest.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/clztest.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/comp-unit-lang.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/comp-unit-lang.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/corrupt.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/count.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/cpp-linkage-name.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/cpp-linkage-name.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/cu-empty-name.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/cu-empty-name.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/cu-no-addrs.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/data-loc.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/data-loc.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/debug-aranges-duplicate-offset-warning.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/debug-aranges-duplicate-offset-warning.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/debug-names-bad-cu-index.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/debug-names-duplicate-cu.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/debug-names-missing-cu.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/debug-names-non-ascending-cu.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/debug-names-tu-dwarf5.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/debug-names-tu.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/debug-names-tu.exp.tcl7
-rw-r--r--gdb/testsuite/gdb.dwarf2/debug-names.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dup-psym.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dup-psym.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw-form-strx-out-of-bounds.exp41
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw-form-strx.exp25
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw-form-strx.exp.tcl64
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello-dbg.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world-dbg.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-align.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-aranges.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-aranges.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-bad-abstract-origin.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-bad-abstract-origin.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-bad-elf-other.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-bad-elf.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-basic.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-basic.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-bfloat16.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-bfloat16.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-case-insensitive-debug.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-common-block.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-common-block.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-complex-parts.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-compressed.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-compressed.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-const.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-const.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static-main.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-cu-size.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-cu-size.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp4
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-disasm-over-non-stmt.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-dos-drive.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-dos-drive.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-dup-frame.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-dup-frame.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-dup-frame.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-empty-file-name.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-entry-pc.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-entry-pc.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-entry-points.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-entry-points.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-entry-value-2.c32
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-entry-value-2.exp125
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-entry-value-main.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-entry-value.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-entry-value.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin-2.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.c.inc2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.exp.tcl2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-error.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-error.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-error.exp4
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-filename.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-filename.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-fixed-point.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-fixed-point.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-gas-workaround.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-icycle.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-icycle.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inheritance.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inheritance.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-break.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-break.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-header-1.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-header-2.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-header-3.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-header-lbls.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-header.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-header.h2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-param-main.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-param.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-small-func-lbls.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.h2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-with-lexical-scope.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inline-with-lexical-scope.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inter-cu-error-2.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inter-cu-error.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inter-cu-forth-and-back.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-inter-cu-symbol.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-intercu.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-intercu.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-intermix.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-intermix.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-is-stmt-2.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-is-stmt-2.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-is-stmt.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-is-stmt.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-lexical-block-bare.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-line-number-zero.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-line-number-zero.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-lines.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-lines.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust-main.cc2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-main-no-line-number.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-multiple-debug-info.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-multiple-debug-info.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-no-code-cu.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-no-code-cu.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-noloc.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-noloc.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-inner.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-outer.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-op-call.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-op-call.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-op-out-param.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-op-out-param.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-param-error-main.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-param-error.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-param-error.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-producer.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-producer.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-prologue-end-2.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-prologue-end-2.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-prologue-end.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-prologue-end.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges-2.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges-3.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges-base.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges-func-hi-cold.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges-func-lo-cold.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges-func.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges-psym-warning-main.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges-psym-warning.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges-psym-warning.exp4
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ranges.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-func.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-main.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-restore.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-restore.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-restrict.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-restrict.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-restrict.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-skipped-line-entries.c50
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-skipped-line-entries.exp211
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-step-between-different-inline-functions.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-step-between-different-inline-functions.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-step-between-inline-func-blocks.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-step-between-inline-func-blocks.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-step-out-of-function-no-stmt.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-step-out-of-function-no-stmt.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-strp.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-strp.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-symtab-includes-lookup.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-symtab-includes.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-tu-dwarf-4-5-2.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-tu-dwarf-4-5.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-tu-dwarf-4-5.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-unexpected-entry-pc.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-unexpected-entry-pc.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-unresolved-main.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-unresolved.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-unresolved.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-unspecified-type-foo.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-unspecified-type.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-unspecified-type.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-unusual-field-names.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-unusual-field-names.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-using-debug-str.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-using-debug-str.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-vendor-extended-opcode.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-vendor-extended-opcode.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-weird-type-len.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-weird-type-len.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-wrong-mangled-name.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-wrong-mangled-name.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-zero-range-shlib.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-zero-range.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw2-zero-range.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw4-sig-types.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw4-toplevel-types.cc2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw4-toplevel-types.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw5-rnglist-test.cc2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dw5-rnglist-test.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dwp-sepdebug.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dwp-sepdebug.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dwp-symlink.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dwp-symlink.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dwz-unused-pu.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dwz.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dwzbuildid.exp161
-rw-r--r--gdb/testsuite/gdb.dwarf2/dwzbuildid.tcl184
-rw-r--r--gdb/testsuite/gdb.dwarf2/dwzbuildid5.exp17
-rw-r--r--gdb/testsuite/gdb.dwarf2/dwznolink.exp4
-rw-r--r--gdb/testsuite/gdb.dwarf2/dyn-type-unallocated.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dyn-type-unallocated.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dynamic-bit-offset.exp95
-rw-r--r--gdb/testsuite/gdb.dwarf2/dynarr-ptr.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/dynarr-ptr.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/entry-value-typedef-aarch64.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/entry-value-typedef-amd64.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/entry-value-typedef.cpp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/entry-value-typedef.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/enum-type-c++.cc2
-rw-r--r--gdb/testsuite/gdb.dwarf2/enum-type-c++.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/enum-type.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-absolute-dwo.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-absolute-dwo.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-base.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-base.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-base.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-dw-form-strx.exp88
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-loclists-pie.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-loclists-pie.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-loclists.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-loclists.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-mix-2.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-mix.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-mix.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-mix.h2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-multi-cu.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-multi-cu.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-relative-dwo.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-relative-dwo.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-reread.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-reread.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-with-type-unit.c23
-rw-r--r--gdb/testsuite/gdb.dwarf2/fission-with-type-unit.exp109
-rw-r--r--gdb/testsuite/gdb.dwarf2/formdata16.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fortran-var-string.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/fortran-var-string.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/forward-spec-inter-cu.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/forward-spec.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/frame-inlined-in-outer-frame.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/frame-inlined-in-outer-frame.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/gdb-add-index-symlink.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/gdb-add-index.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/gdb-index-cxx.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/gdb-index-nodebug.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/gdb-index-tilde.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/gdb-index-types-dwarf5.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/gdb-index-types-dwarf5.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/gdb-index.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/implptr-64bit.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/implptr.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/implptr.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/implptrconst.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/implptrpiece.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/implref-array.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/implref-array.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/implref-const.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/implref-global.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/implref-global.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/implref-struct.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/implref-struct.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/imported-unit-abstract-const-value.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/imported-unit-bp-alt.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/imported-unit-bp-c++.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/imported-unit-bp-c.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/imported-unit-bp-main.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/imported-unit-bp.exp.tcl2
-rw-r--r--gdb/testsuite/gdb.dwarf2/imported-unit-runto-main.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/imported-unit.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/imported-unit.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/index.cc2
-rw-r--r--gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/inline.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/inline.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/inlined_subroutine-inheritance.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/intbits.c5
-rw-r--r--gdb/testsuite/gdb.dwarf2/intbits.exp21
-rw-r--r--gdb/testsuite/gdb.dwarf2/loc-sec-offset.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/loc-sec-offset.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/local-var.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/local-var.f902
-rw-r--r--gdb/testsuite/gdb.dwarf2/locexpr-data-member-location-lib.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/locexpr-data-member-location-main.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/locexpr-data-member-location.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/locexpr-data-member-location.h2
-rw-r--r--gdb/testsuite/gdb.dwarf2/loclists-multiple-cus.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/loclists-multiple-cus.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/loclists-sec-offset.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/loclists-sec-offset.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/loclists-start-end.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/loclists-start-end.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/mac-fileno.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/mac-fileno.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/macro-complaints.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/macro-source-path-clang14-dw4.exp71
-rw-r--r--gdb/testsuite/gdb.dwarf2/macro-source-path-clang14-dw5.exp75
-rw-r--r--gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld234-dw5.exp70
-rw-r--r--gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld238-dw4.exp70
-rw-r--r--gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld238-dw5.exp81
-rw-r--r--gdb/testsuite/gdb.dwarf2/macro-source-path.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/macro-source-path.exp.tcl (renamed from gdb/testsuite/gdb.dwarf2/macro-source-path.exp)252
-rw-r--r--gdb/testsuite/gdb.dwarf2/main-foo.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/main-subprogram.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/main-subprogram.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/main.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/mega-enum.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/method-ptr.cc2
-rw-r--r--gdb/testsuite/gdb.dwarf2/method-ptr.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/missing-line-table.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/missing-line-table.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/missing-sig-type.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/missing-type-name-for-templates.cc2
-rw-r--r--gdb/testsuite/gdb.dwarf2/missing-type-name-for-templates.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/missing-type-name.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/multidictionary.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/negative-data-member-location.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/negative-data-member-location.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/no-expand-mixed-case.exp42
-rw-r--r--gdb/testsuite/gdb.dwarf2/no-gnu-debuglink.exp4
-rw-r--r--gdb/testsuite/gdb.dwarf2/nonvar-access.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/nostaticblock.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/nullptr_t.cc2
-rw-r--r--gdb/testsuite/gdb.dwarf2/nullptr_t.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/opaque-type-lookup-2.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/opaque-type-lookup.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/opt-out-not-implptr.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/per-bfd-sharing.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/per-bfd-sharing.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/pieces-optimized-out.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/pieces-optimized-out.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/pieces-optimized-out.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/pieces.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/pieces.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/pieces.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/pr10770.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/pr11465.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/pr11465.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/pr13961.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/pr13961.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/rnglists-multiple-cus.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/rnglists-sec-offset.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/rust-enum.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/self-spec.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/short-build-id.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/shortpiece.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/static-optimized-out.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/staticvirtual.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/struct-decl.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/struct-with-sig-2.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/struct-with-sig.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/subrange-enum.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/subrange.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/symbol_needs_eval.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/symbol_needs_eval_fail.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/symbol_needs_eval_timeout.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/symtab-producer.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/template-specification-full-name.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/trace-crash.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/typeddwarf-amd64.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/typeddwarf.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/typeddwarf.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/typedef-void-finish.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/utf-rust.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/valop.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/valop.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/var-access.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/var-access.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/variant.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/variant.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/varval.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/varval.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/void-type.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/void-type.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/watch-notconst.c2
-rw-r--r--gdb/testsuite/gdb.dwarf2/watch-notconst.exp2
-rw-r--r--gdb/testsuite/gdb.dwarf2/watch-notconst2.S2
-rw-r--r--gdb/testsuite/gdb.dwarf2/watch-notconst2.c2
-rw-r--r--gdb/testsuite/gdb.fortran/allocated.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/allocated.f902
-rw-r--r--gdb/testsuite/gdb.fortran/array-bounds-high.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/array-bounds-high.f902
-rw-r--r--gdb/testsuite/gdb.fortran/array-bounds.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/array-bounds.f902
-rw-r--r--gdb/testsuite/gdb.fortran/array-element.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/array-element.f2
-rw-r--r--gdb/testsuite/gdb.fortran/array-indices.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/array-no-bounds.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/array-no-bounds.f902
-rw-r--r--gdb/testsuite/gdb.fortran/array-repeat.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/array-repeat.f902
-rw-r--r--gdb/testsuite/gdb.fortran/array-slices-bad.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/array-slices-bad.f902
-rw-r--r--gdb/testsuite/gdb.fortran/array-slices-repeat.f902
-rw-r--r--gdb/testsuite/gdb.fortran/array-slices-sub-slices.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/array-slices-sub-slices.f902
-rw-r--r--gdb/testsuite/gdb.fortran/array-slices.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/array-slices.f902
-rw-r--r--gdb/testsuite/gdb.fortran/associated.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/associated.f902
-rw-r--r--gdb/testsuite/gdb.fortran/assumedrank.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/assumedrank.f902
-rw-r--r--gdb/testsuite/gdb.fortran/backtrace.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/backtrace.f902
-rw-r--r--gdb/testsuite/gdb.fortran/block-data.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/block-data.f2
-rw-r--r--gdb/testsuite/gdb.fortran/call-no-debug-func.f902
-rw-r--r--gdb/testsuite/gdb.fortran/call-no-debug-prog.f902
-rw-r--r--gdb/testsuite/gdb.fortran/call-no-debug.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/charset.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/class-allocatable-array.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/class-allocatable-array.f902
-rw-r--r--gdb/testsuite/gdb.fortran/common-block.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/common-block.f902
-rw-r--r--gdb/testsuite/gdb.fortran/completion.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/completion.f902
-rw-r--r--gdb/testsuite/gdb.fortran/complex.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/complex.f902
-rw-r--r--gdb/testsuite/gdb.fortran/debug-expr.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/debug-expr.f902
-rw-r--r--gdb/testsuite/gdb.fortran/derived-type-function.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/derived-type-function.f902
-rw-r--r--gdb/testsuite/gdb.fortran/derived-type-striding.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/derived-type-striding.f902
-rw-r--r--gdb/testsuite/gdb.fortran/derived-type.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/derived-type.f902
-rw-r--r--gdb/testsuite/gdb.fortran/dot-ops.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/dynamic-ptype-whatis.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/dynamic-ptype-whatis.f902
-rw-r--r--gdb/testsuite/gdb.fortran/empty-string.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/empty-string.f902
-rw-r--r--gdb/testsuite/gdb.fortran/entry-point.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/entry-point.f902
-rw-r--r--gdb/testsuite/gdb.fortran/exprs.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/function-calls.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/function-calls.f902
-rw-r--r--gdb/testsuite/gdb.fortran/huge.F902
-rw-r--r--gdb/testsuite/gdb.fortran/huge.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/info-main.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/info-main.f902
-rw-r--r--gdb/testsuite/gdb.fortran/info-modules.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/info-types-2.f902
-rw-r--r--gdb/testsuite/gdb.fortran/info-types.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/info-types.f902
-rw-r--r--gdb/testsuite/gdb.fortran/intrinsic-precedence.c2
-rw-r--r--gdb/testsuite/gdb.fortran/intrinsic-precedence.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/intrinsic-precedence.f902
-rw-r--r--gdb/testsuite/gdb.fortran/intrinsics.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/intrinsics.f902
-rw-r--r--gdb/testsuite/gdb.fortran/intvar-array.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/intvar-array.f902
-rw-r--r--gdb/testsuite/gdb.fortran/intvar-dynamic-types.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/intvar-dynamic-types.f902
-rw-r--r--gdb/testsuite/gdb.fortran/lbound-ubound.F902
-rw-r--r--gdb/testsuite/gdb.fortran/lbound-ubound.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/library-module-lib.f902
-rw-r--r--gdb/testsuite/gdb.fortran/library-module-main.f902
-rw-r--r--gdb/testsuite/gdb.fortran/library-module.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/limited-length.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/limited-length.f902
-rw-r--r--gdb/testsuite/gdb.fortran/logical.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/logical.f902
-rw-r--r--gdb/testsuite/gdb.fortran/max-depth.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/max-depth.f902
-rw-r--r--gdb/testsuite/gdb.fortran/mixed-lang-stack.c2
-rw-r--r--gdb/testsuite/gdb.fortran/mixed-lang-stack.cpp2
-rw-r--r--gdb/testsuite/gdb.fortran/mixed-lang-stack.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/mixed-lang-stack.f902
-rw-r--r--gdb/testsuite/gdb.fortran/module.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/module.f902
-rw-r--r--gdb/testsuite/gdb.fortran/multi-dim.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/multi-dim.f902
-rw-r--r--gdb/testsuite/gdb.fortran/namelist.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/namelist.f902
-rw-r--r--gdb/testsuite/gdb.fortran/nested-funcs-2.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/nested-funcs-2.f902
-rwxr-xr-xgdb/testsuite/gdb.fortran/nested-funcs.exp2
-rwxr-xr-xgdb/testsuite/gdb.fortran/nested-funcs.f902
-rwxr-xr-xgdb/testsuite/gdb.fortran/oop_extend_type.exp2
-rwxr-xr-xgdb/testsuite/gdb.fortran/oop_extend_type.f902
-rw-r--r--gdb/testsuite/gdb.fortran/pointer-to-pointer.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/pointer-to-pointer.f902
-rw-r--r--gdb/testsuite/gdb.fortran/pointers.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/pointers.f902
-rw-r--r--gdb/testsuite/gdb.fortran/print-formatted.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/print-formatted.f902
-rwxr-xr-xgdb/testsuite/gdb.fortran/print_type.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/printing-types.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/printing-types.f902
-rw-r--r--gdb/testsuite/gdb.fortran/ptr-indentation.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/ptr-indentation.f902
-rw-r--r--gdb/testsuite/gdb.fortran/ptype-on-functions.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/ptype-on-functions.f902
-rw-r--r--gdb/testsuite/gdb.fortran/rank.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/rank.f902
-rw-r--r--gdb/testsuite/gdb.fortran/shape.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/shape.f902
-rw-r--r--gdb/testsuite/gdb.fortran/short-circuit-argument-list.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/short-circuit-argument-list.f902
-rw-r--r--gdb/testsuite/gdb.fortran/size.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/size.f902
-rw-r--r--gdb/testsuite/gdb.fortran/sizeof.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/sizeof.f902
-rw-r--r--gdb/testsuite/gdb.fortran/string-types.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/string-types.f902
-rw-r--r--gdb/testsuite/gdb.fortran/subarray.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/subarray.f2
-rw-r--r--gdb/testsuite/gdb.fortran/type-kinds.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/type.f902
-rw-r--r--gdb/testsuite/gdb.fortran/types.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-array.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-array.f902
-rw-r--r--gdb/testsuite/gdb.fortran/vla-datatypes.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-datatypes.f902
-rw-r--r--gdb/testsuite/gdb.fortran/vla-history.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-ptr-info.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-ptype-sub.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-ptype.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-sizeof.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-sub.f902
-rwxr-xr-xgdb/testsuite/gdb.fortran/vla-type.exp2
-rwxr-xr-xgdb/testsuite/gdb.fortran/vla-type.f902
-rw-r--r--gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-value-sub.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla-value.exp2
-rw-r--r--gdb/testsuite/gdb.fortran/vla.f902
-rw-r--r--gdb/testsuite/gdb.fortran/whatis_type.exp2
-rw-r--r--gdb/testsuite/gdb.gdb/index-file.exp2
-rw-r--r--gdb/testsuite/gdb.gdb/python-helper.cc2
-rw-r--r--gdb/testsuite/gdb.gdb/python-helper.exp2
-rw-r--r--gdb/testsuite/gdb.gdb/selftest.exp2
-rw-r--r--gdb/testsuite/gdb.gdb/unittest.c2
-rw-r--r--gdb/testsuite/gdb.gdb/unittest.exp2
-rw-r--r--gdb/testsuite/gdb.go/basic-types.exp2
-rw-r--r--gdb/testsuite/gdb.go/chan.exp2
-rw-r--r--gdb/testsuite/gdb.go/global-local-var-shadow.exp2
-rw-r--r--gdb/testsuite/gdb.go/handcall.exp2
-rw-r--r--gdb/testsuite/gdb.go/hello.exp2
-rw-r--r--gdb/testsuite/gdb.go/integers.exp2
-rw-r--r--gdb/testsuite/gdb.go/max-depth.exp2
-rw-r--r--gdb/testsuite/gdb.go/max-depth.go2
-rw-r--r--gdb/testsuite/gdb.go/methods.exp2
-rw-r--r--gdb/testsuite/gdb.go/no-package.exp2
-rw-r--r--gdb/testsuite/gdb.go/package.exp2
-rw-r--r--gdb/testsuite/gdb.go/print.exp2
-rw-r--r--gdb/testsuite/gdb.go/strings.exp2
-rw-r--r--gdb/testsuite/gdb.go/types.exp2
-rw-r--r--gdb/testsuite/gdb.go/unsafe.exp2
-rw-r--r--gdb/testsuite/gdb.guile/guile.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-arch.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-arch.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-block.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-block.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-breakpoint.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-breakpoint.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-cmd.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-cmd.exp61
-rw-r--r--gdb/testsuite/gdb.guile/scm-color.exp12
-rw-r--r--gdb/testsuite/gdb.guile/scm-disasm.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-disasm.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-equal.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-equal.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-error-1.scm2
-rw-r--r--gdb/testsuite/gdb.guile/scm-error-2.scm2
-rw-r--r--gdb/testsuite/gdb.guile/scm-error.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-frame-args.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-frame-args.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-frame-args.scm2
-rw-r--r--gdb/testsuite/gdb.guile/scm-frame-inline.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-frame-inline.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-frame.exp4
-rw-r--r--gdb/testsuite/gdb.guile/scm-gsmob.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-iterator.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-iterator.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-lazy-string.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-lazy-string.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-math.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-math.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-objfile-script-gdb.in2
-rw-r--r--gdb/testsuite/gdb.guile/scm-objfile-script.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-objfile-script.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-objfile.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-objfile.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-parameter.exp197
-rw-r--r--gdb/testsuite/gdb.guile/scm-ports.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-ports.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-pretty-print.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-pretty-print.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-pretty-print.scm2
-rw-r--r--gdb/testsuite/gdb.guile/scm-progspace.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-progspace.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-section-script.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-section-script.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-section-script.scm2
-rw-r--r--gdb/testsuite/gdb.guile/scm-symbol.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-symbol.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-symtab-2.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-symtab.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-symtab.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-type.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-type.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-value-cc.cc2
-rw-r--r--gdb/testsuite/gdb.guile/scm-value-cc.exp2
-rw-r--r--gdb/testsuite/gdb.guile/scm-value.c2
-rw-r--r--gdb/testsuite/gdb.guile/scm-value.exp2
-rw-r--r--gdb/testsuite/gdb.guile/source2.scm2
-rw-r--r--gdb/testsuite/gdb.guile/types-module.cc2
-rw-r--r--gdb/testsuite/gdb.guile/types-module.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/3explicit.c2
-rw-r--r--gdb/testsuite/gdb.linespec/base/one/header.h2
-rw-r--r--gdb/testsuite/gdb.linespec/base/two/header.h2
-rw-r--r--gdb/testsuite/gdb.linespec/break-ask.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/break-asm-file.c2
-rw-r--r--gdb/testsuite/gdb.linespec/break-asm-file.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/break-asm-file0.S2
-rw-r--r--gdb/testsuite/gdb.linespec/break-asm-file1.S2
-rw-r--r--gdb/testsuite/gdb.linespec/cp-completion-aliases.cc2
-rw-r--r--gdb/testsuite/gdb.linespec/cp-completion-aliases.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/cp-replace-typedefs-ns-template.cc6
-rw-r--r--gdb/testsuite/gdb.linespec/cp-replace-typedefs-ns-template.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/cpcompletion.cc2
-rw-r--r--gdb/testsuite/gdb.linespec/cpcompletion.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/cpexplicit.cc2
-rw-r--r--gdb/testsuite/gdb.linespec/cpexplicit.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/cpls-abi-tag.cc2
-rw-r--r--gdb/testsuite/gdb.linespec/cpls-abi-tag.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/cpls-hyphen.cc2
-rw-r--r--gdb/testsuite/gdb.linespec/cpls-ops.cc2
-rw-r--r--gdb/testsuite/gdb.linespec/cpls-ops.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/cpls.cc2
-rw-r--r--gdb/testsuite/gdb.linespec/cpls2.cc2
-rw-r--r--gdb/testsuite/gdb.linespec/errors.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/explicit.c2
-rw-r--r--gdb/testsuite/gdb.linespec/explicit.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/explicit2.c2
-rw-r--r--gdb/testsuite/gdb.linespec/keywords.c2
-rw-r--r--gdb/testsuite/gdb.linespec/keywords.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/line-breakpoint-outside-function.c2
-rw-r--r--gdb/testsuite/gdb.linespec/line-breakpoint-outside-function.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/linespec.exp8
-rw-r--r--gdb/testsuite/gdb.linespec/ls-dollar.cc2
-rw-r--r--gdb/testsuite/gdb.linespec/ls-dollar.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/ls-errs.c2
-rw-r--r--gdb/testsuite/gdb.linespec/ls-errs.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/lspec.cc2
-rw-r--r--gdb/testsuite/gdb.linespec/macro-relative.c2
-rw-r--r--gdb/testsuite/gdb.linespec/macro-relative.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/skip-two.exp2
-rw-r--r--gdb/testsuite/gdb.linespec/thread.c2
-rw-r--r--gdb/testsuite/gdb.linespec/thread.exp2
-rw-r--r--gdb/testsuite/gdb.mi/array.f902
-rw-r--r--gdb/testsuite/gdb.mi/basics.c2
-rw-r--r--gdb/testsuite/gdb.mi/dw2-ref-missing-frame-func.c2
-rw-r--r--gdb/testsuite/gdb.mi/dw2-ref-missing-frame-main.c2
-rw-r--r--gdb/testsuite/gdb.mi/dw2-ref-missing-frame.S2
-rw-r--r--gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp2
-rw-r--r--gdb/testsuite/gdb.mi/gdb2549.exp2
-rw-r--r--gdb/testsuite/gdb.mi/gdb669.exp2
-rw-r--r--gdb/testsuite/gdb.mi/gdb680.exp2
-rw-r--r--gdb/testsuite/gdb.mi/gdb701.exp2
-rw-r--r--gdb/testsuite/gdb.mi/gdb792.exp2
-rw-r--r--gdb/testsuite/gdb.mi/interrupt-thread-group.c2
-rw-r--r--gdb/testsuite/gdb.mi/interrupt-thread-group.exp4
-rw-r--r--gdb/testsuite/gdb.mi/list-thread-groups-available.c2
-rw-r--r--gdb/testsuite/gdb.mi/list-thread-groups-available.exp2
-rw-r--r--gdb/testsuite/gdb.mi/list-thread-groups-no-inferior.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-add-inferior.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-async-run.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-async-run.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-async.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-basics.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-break-qualified.cc2
-rw-r--r--gdb/testsuite/gdb.mi/mi-break-qualified.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-break.exp6
-rw-r--r--gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-breakpoint-multiple-locations.cc2
-rw-r--r--gdb/testsuite/gdb.mi/mi-breakpoint-multiple-locations.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-breakpoint-script.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-breakpoint-script.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.cc2
-rw-r--r--gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-catch-load-so.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-catch-load.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-catch-load.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-cli.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-cmd-error.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-cmd-user-context.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-cmd-user-context.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-complete.cc2
-rw-r--r--gdb/testsuite/gdb.mi/mi-complete.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-mt.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-st.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-condbreak-fail.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-condbreak-fail.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-condbreak-throw.cc2
-rw-r--r--gdb/testsuite/gdb.mi/mi-condbreak-throw.exp4
-rw-r--r--gdb/testsuite/gdb.mi/mi-console.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-corefile.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-corefile.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-detach.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-disassemble.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-dlmopen-lib-dep.c21
-rw-r--r--gdb/testsuite/gdb.mi/mi-dlmopen-lib.c28
-rw-r--r--gdb/testsuite/gdb.mi/mi-dlmopen.c59
-rw-r--r--gdb/testsuite/gdb.mi/mi-dlmopen.exp222
-rw-r--r--gdb/testsuite/gdb.mi/mi-dprintf-modified-lib.c (renamed from sim/arm/armemu32.c)14
-rw-r--r--gdb/testsuite/gdb.mi/mi-dprintf-modified.c55
-rw-r--r--gdb/testsuite/gdb.mi/mi-dprintf-modified.exp119
-rw-r--r--gdb/testsuite/gdb.mi/mi-dprintf-pending.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-dprintf-pending.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-dprintf-pendshr.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-dprintf.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-dprintf.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-editing.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-eval.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-exec-run.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-exit-code.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-exit-code.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-file-transfer.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-file.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-fill-memory.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-fortran-modules-2.f902
-rw-r--r--gdb/testsuite/gdb.mi/mi-fortran-modules.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-fortran-modules.f902
-rw-r--r--gdb/testsuite/gdb.mi/mi-frame-regs.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-fullname-deleted.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-hack-cli.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-i-cmd.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-info-os.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-info-sources-base.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-info-sources.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-info-sources.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-inheritance-syntax-error.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-language.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-linespec-err-cp.cc2
-rw-r--r--gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-logging.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-memory-changed.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-multi-commands.exp8
-rw-r--r--gdb/testsuite/gdb.mi/mi-nonstop-exit.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-nonstop.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-ns-stale-regcache.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-nsintrall.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-nsmoribund.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-nsthrexec.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-pending.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-pending.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-pendshr.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-pendshr2.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-pthreads.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-py-modify-bp.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-py-modify-bp.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-py-modify-bp.py2
-rw-r--r--gdb/testsuite/gdb.mi/mi-read-memory.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-record-changed.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-reg-undefined.S2
-rw-r--r--gdb/testsuite/gdb.mi/mi-reg-undefined.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-reg-undefined.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-regs.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-return.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-simplerun.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-solib.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-stack.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-stack.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-start.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-start.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-stepi.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-stepn.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-stepn.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-sym-info-1.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-sym-info-2.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-sym-info.exp22
-rw-r--r--gdb/testsuite/gdb.mi/mi-syn-frame.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-thread-bp-deleted.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-thread-bp-deleted.exp8
-rw-r--r--gdb/testsuite/gdb.mi/mi-thread-specific-bp.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-thread-specific-bp.exp43
-rw-r--r--gdb/testsuite/gdb.mi/mi-threads-interrupt.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-threads-interrupt.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-undefined-cmd.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-until.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-block.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-child-f.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-child.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-child.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-cmd.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-cp.cc2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-cp.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-create-rtti.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-create-rtti.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-display.exp6
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-invalidate-shlib-lib.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-invalidate-shlib.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-invalidate-shlib.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-invalidate.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-rtti.cc2
-rw-r--r--gdb/testsuite/gdb.mi/mi-var-rtti.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-vla-c99.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-vla-fortran.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-watch-nonstop.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi-watch.exp6
-rw-r--r--gdb/testsuite/gdb.mi/mi2-amd64-entry-value.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi2-amd64-entry-value.s2
-rw-r--r--gdb/testsuite/gdb.mi/mi2-cli-display.c2
-rw-r--r--gdb/testsuite/gdb.mi/mi2-cli-display.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi2-prompt.exp2
-rw-r--r--gdb/testsuite/gdb.mi/mi2-var-child.exp2
-rw-r--r--gdb/testsuite/gdb.mi/new-ui-bp-deleted.c2
-rw-r--r--gdb/testsuite/gdb.mi/new-ui-bp-deleted.exp8
-rw-r--r--gdb/testsuite/gdb.mi/new-ui-mi-sync.c2
-rw-r--r--gdb/testsuite/gdb.mi/new-ui-mi-sync.exp28
-rw-r--r--gdb/testsuite/gdb.mi/non-stop-exit.c2
-rw-r--r--gdb/testsuite/gdb.mi/non-stop.c2
-rw-r--r--gdb/testsuite/gdb.mi/ns-stale-regcache.c2
-rw-r--r--gdb/testsuite/gdb.mi/nsintrall.c2
-rw-r--r--gdb/testsuite/gdb.mi/nsmoribund.c2
-rw-r--r--gdb/testsuite/gdb.mi/nsthrexec.c2
-rw-r--r--gdb/testsuite/gdb.mi/pending.c2
-rw-r--r--gdb/testsuite/gdb.mi/pendshr1.c2
-rw-r--r--gdb/testsuite/gdb.mi/pendshr2.c2
-rw-r--r--gdb/testsuite/gdb.mi/pr11022.c2
-rw-r--r--gdb/testsuite/gdb.mi/pr11022.exp2
-rw-r--r--gdb/testsuite/gdb.mi/print-simple-values.cc2
-rw-r--r--gdb/testsuite/gdb.mi/print-simple-values.exp2
-rw-r--r--gdb/testsuite/gdb.mi/pthreads.c2
-rw-r--r--gdb/testsuite/gdb.mi/run-with-two-mi-uis.exp6
-rw-r--r--gdb/testsuite/gdb.mi/solib-lib.c2
-rw-r--r--gdb/testsuite/gdb.mi/solib-main.c2
-rw-r--r--gdb/testsuite/gdb.mi/user-selected-context-sync.c2
-rw-r--r--gdb/testsuite/gdb.mi/user-selected-context-sync.exp41
-rw-r--r--gdb/testsuite/gdb.mi/var-cmd.c2
-rw-r--r--gdb/testsuite/gdb.mi/vla.c2
-rw-r--r--gdb/testsuite/gdb.mi/vla.f902
-rw-r--r--gdb/testsuite/gdb.mi/watch-nonstop.c2
-rw-r--r--gdb/testsuite/gdb.modula2/builtin-procedure-adr.exp2
-rw-r--r--gdb/testsuite/gdb.modula2/max-depth.c2
-rw-r--r--gdb/testsuite/gdb.modula2/max-depth.exp2
-rw-r--r--gdb/testsuite/gdb.modula2/multidim.c2
-rw-r--r--gdb/testsuite/gdb.modula2/multidim.exp2
-rw-r--r--gdb/testsuite/gdb.modula2/unbounded-array.exp2
-rw-r--r--gdb/testsuite/gdb.modula2/unbounded1.c2
-rw-r--r--gdb/testsuite/gdb.multi/attach-no-multi-process.c2
-rw-r--r--gdb/testsuite/gdb.multi/attach-no-multi-process.exp7
-rw-r--r--gdb/testsuite/gdb.multi/attach-while-running.c2
-rw-r--r--gdb/testsuite/gdb.multi/attach-while-running.exp5
-rw-r--r--gdb/testsuite/gdb.multi/base.exp2
-rw-r--r--gdb/testsuite/gdb.multi/bkpt-multi-exec.exp2
-rw-r--r--gdb/testsuite/gdb.multi/bp-thread-specific.c2
-rw-r--r--gdb/testsuite/gdb.multi/bp-thread-specific.exp4
-rw-r--r--gdb/testsuite/gdb.multi/checkpoint-multi.exp2
-rw-r--r--gdb/testsuite/gdb.multi/dummy-frame-restore.c2
-rw-r--r--gdb/testsuite/gdb.multi/dummy-frame-restore.exp4
-rw-r--r--gdb/testsuite/gdb.multi/gdb-settings.c2
-rw-r--r--gdb/testsuite/gdb.multi/gdb-settings.exp2
-rw-r--r--gdb/testsuite/gdb.multi/goodbye.c2
-rw-r--r--gdb/testsuite/gdb.multi/hangout.c2
-rw-r--r--gdb/testsuite/gdb.multi/hello.c2
-rw-r--r--gdb/testsuite/gdb.multi/inferior-specific-bp-1.c2
-rw-r--r--gdb/testsuite/gdb.multi/inferior-specific-bp-2.c2
-rw-r--r--gdb/testsuite/gdb.multi/inferior-specific-bp.exp2
-rw-r--r--gdb/testsuite/gdb.multi/info-threads.exp2
-rw-r--r--gdb/testsuite/gdb.multi/multi-arch-exec.c2
-rw-r--r--gdb/testsuite/gdb.multi/multi-arch-exec.exp2
-rw-r--r--gdb/testsuite/gdb.multi/multi-arch.exp4
-rw-r--r--gdb/testsuite/gdb.multi/multi-attach.c2
-rw-r--r--gdb/testsuite/gdb.multi/multi-attach.exp4
-rw-r--r--gdb/testsuite/gdb.multi/multi-exit.c2
-rw-r--r--gdb/testsuite/gdb.multi/multi-exit.exp4
-rw-r--r--gdb/testsuite/gdb.multi/multi-kill.c2
-rw-r--r--gdb/testsuite/gdb.multi/multi-kill.exp4
-rw-r--r--gdb/testsuite/gdb.multi/multi-re-run-1.c2
-rw-r--r--gdb/testsuite/gdb.multi/multi-re-run-2.c2
-rw-r--r--gdb/testsuite/gdb.multi/multi-re-run.exp4
-rw-r--r--gdb/testsuite/gdb.multi/multi-target-continue.exp2
-rw-r--r--gdb/testsuite/gdb.multi/multi-target-info-inferiors.exp2
-rw-r--r--gdb/testsuite/gdb.multi/multi-target-info-inferiors.py2
-rw-r--r--gdb/testsuite/gdb.multi/multi-target-interrupt.exp2
-rw-r--r--gdb/testsuite/gdb.multi/multi-target-no-resumed.exp2
-rw-r--r--gdb/testsuite/gdb.multi/multi-target-ping-pong-next.exp2
-rw-r--r--gdb/testsuite/gdb.multi/multi-target-thread-find.exp2
-rw-r--r--gdb/testsuite/gdb.multi/multi-target.c2
-rw-r--r--gdb/testsuite/gdb.multi/multi-target.exp.tcl6
-rw-r--r--gdb/testsuite/gdb.multi/multi-term-settings.c2
-rw-r--r--gdb/testsuite/gdb.multi/multi-term-settings.exp4
-rw-r--r--gdb/testsuite/gdb.multi/pending-bp-del-inferior.c2
-rw-r--r--gdb/testsuite/gdb.multi/pending-bp-del-inferior.exp2
-rw-r--r--gdb/testsuite/gdb.multi/pending-bp-lib.c2
-rw-r--r--gdb/testsuite/gdb.multi/pending-bp.c2
-rw-r--r--gdb/testsuite/gdb.multi/pending-bp.exp2
-rw-r--r--gdb/testsuite/gdb.multi/remove-inferiors.c2
-rw-r--r--gdb/testsuite/gdb.multi/remove-inferiors.exp2
-rw-r--r--gdb/testsuite/gdb.multi/run-only-second-inf.c2
-rw-r--r--gdb/testsuite/gdb.multi/run-only-second-inf.exp2
-rw-r--r--gdb/testsuite/gdb.multi/start-inferior-specific-other.c2
-rw-r--r--gdb/testsuite/gdb.multi/start-inferior-specific.c2
-rw-r--r--gdb/testsuite/gdb.multi/start-inferior-specific.exp4
-rw-r--r--gdb/testsuite/gdb.multi/stop-all-on-exit.c2
-rw-r--r--gdb/testsuite/gdb.multi/stop-all-on-exit.exp4
-rw-r--r--gdb/testsuite/gdb.multi/tids-gid-reset.c2
-rw-r--r--gdb/testsuite/gdb.multi/tids-gid-reset.exp4
-rw-r--r--gdb/testsuite/gdb.multi/tids.c2
-rw-r--r--gdb/testsuite/gdb.multi/tids.exp9
-rw-r--r--gdb/testsuite/gdb.multi/watchpoint-multi-exit.c2
-rw-r--r--gdb/testsuite/gdb.multi/watchpoint-multi-exit.exp4
-rw-r--r--gdb/testsuite/gdb.multi/watchpoint-multi.c2
-rw-r--r--gdb/testsuite/gdb.multi/watchpoint-multi.exp4
-rw-r--r--gdb/testsuite/gdb.objc/basicclass.exp2
-rw-r--r--gdb/testsuite/gdb.objc/nondebug.exp2
-rw-r--r--gdb/testsuite/gdb.objc/objcdecode.exp2
-rw-r--r--gdb/testsuite/gdb.objc/print.exp2
-rw-r--r--gdb/testsuite/gdb.opencl/callfuncs.cl2
-rw-r--r--gdb/testsuite/gdb.opencl/callfuncs.exp2
-rw-r--r--gdb/testsuite/gdb.opencl/convs_casts.cl2
-rw-r--r--gdb/testsuite/gdb.opencl/convs_casts.exp2
-rw-r--r--gdb/testsuite/gdb.opencl/datatypes.cl2
-rw-r--r--gdb/testsuite/gdb.opencl/datatypes.exp2
-rw-r--r--gdb/testsuite/gdb.opencl/operators.cl2
-rw-r--r--gdb/testsuite/gdb.opencl/operators.exp2
-rw-r--r--gdb/testsuite/gdb.opencl/vec_comps.cl2
-rw-r--r--gdb/testsuite/gdb.opencl/vec_comps.exp2
-rw-r--r--gdb/testsuite/gdb.opt/break-on-_exit.c2
-rw-r--r--gdb/testsuite/gdb.opt/break-on-_exit.exp4
-rw-r--r--gdb/testsuite/gdb.opt/clobbered-registers-O2-2.c2
-rw-r--r--gdb/testsuite/gdb.opt/clobbered-registers-O2-3.c2
-rw-r--r--gdb/testsuite/gdb.opt/clobbered-registers-O2.c2
-rw-r--r--gdb/testsuite/gdb.opt/clobbered-registers-O2.exp2
-rw-r--r--gdb/testsuite/gdb.opt/fortran-string.exp2
-rw-r--r--gdb/testsuite/gdb.opt/fortran-string.f902
-rw-r--r--gdb/testsuite/gdb.opt/inline-break.c2
-rw-r--r--gdb/testsuite/gdb.opt/inline-break.exp2
-rw-r--r--gdb/testsuite/gdb.opt/inline-bt.c2
-rw-r--r--gdb/testsuite/gdb.opt/inline-bt.exp2
-rw-r--r--gdb/testsuite/gdb.opt/inline-cmds.c2
-rw-r--r--gdb/testsuite/gdb.opt/inline-cmds.exp2
-rw-r--r--gdb/testsuite/gdb.opt/inline-entry.c2
-rw-r--r--gdb/testsuite/gdb.opt/inline-entry.exp2
-rw-r--r--gdb/testsuite/gdb.opt/inline-locals.c2
-rw-r--r--gdb/testsuite/gdb.opt/inline-locals.exp2
-rw-r--r--gdb/testsuite/gdb.opt/inline-markers.c2
-rw-r--r--gdb/testsuite/gdb.opt/inline-small-func.c2
-rw-r--r--gdb/testsuite/gdb.opt/inline-small-func.exp2
-rw-r--r--gdb/testsuite/gdb.opt/inline-small-func.h2
-rw-r--r--gdb/testsuite/gdb.opt/main.c2
-rw-r--r--gdb/testsuite/gdb.opt/solib-intra-step-lib.c2
-rw-r--r--gdb/testsuite/gdb.opt/solib-intra-step-main.c2
-rw-r--r--gdb/testsuite/gdb.opt/solib-intra-step.exp2
-rw-r--r--gdb/testsuite/gdb.opt/static-optimized-out.c2
-rw-r--r--gdb/testsuite/gdb.opt/static-optimized-out.exp2
-rw-r--r--gdb/testsuite/gdb.pascal/case-insensitive-symbols.exp2
-rw-r--r--gdb/testsuite/gdb.pascal/case-insensitive-symbols.pas2
-rw-r--r--gdb/testsuite/gdb.pascal/floats.exp2
-rw-r--r--gdb/testsuite/gdb.pascal/floats.pas2
-rw-r--r--gdb/testsuite/gdb.pascal/gdb11492.exp2
-rw-r--r--gdb/testsuite/gdb.pascal/gdb11492.pas2
-rw-r--r--gdb/testsuite/gdb.pascal/hello.exp2
-rw-r--r--gdb/testsuite/gdb.pascal/integers.exp4
-rw-r--r--gdb/testsuite/gdb.pascal/integers.pas2
-rw-r--r--gdb/testsuite/gdb.pascal/print.exp2
-rw-r--r--gdb/testsuite/gdb.pascal/str-chars.exp2
-rw-r--r--gdb/testsuite/gdb.pascal/str-chars.pas2
-rw-r--r--gdb/testsuite/gdb.pascal/stub-method.exp2
-rw-r--r--gdb/testsuite/gdb.pascal/stub-method.pas2
-rw-r--r--gdb/testsuite/gdb.pascal/types.exp2
-rw-r--r--gdb/testsuite/gdb.perf/backtrace.c2
-rw-r--r--gdb/testsuite/gdb.perf/backtrace.exp2
-rw-r--r--gdb/testsuite/gdb.perf/backtrace.py2
-rw-r--r--gdb/testsuite/gdb.perf/disassemble.exp2
-rw-r--r--gdb/testsuite/gdb.perf/disassemble.py2
-rw-r--r--gdb/testsuite/gdb.perf/gm-hello.cc2
-rw-r--r--gdb/testsuite/gdb.perf/gm-pervasive-typedef.cc2
-rw-r--r--gdb/testsuite/gdb.perf/gm-pervasive-typedef.h2
-rw-r--r--gdb/testsuite/gdb.perf/gm-std.cc2
-rw-r--r--gdb/testsuite/gdb.perf/gm-std.h2
-rw-r--r--gdb/testsuite/gdb.perf/gm-use-cerr.cc2
-rw-r--r--gdb/testsuite/gdb.perf/gm-utils.h2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster-null-lookup.py2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster-pervasive-typedef.py2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster-print-cerr.py2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster-ptype-string.py2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster-runto-main.py2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster-select-file.py2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster1-null-lookup.exp2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster1-pervasive-typedef.exp2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster1-print-cerr.exp2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster1-ptype-string.exp2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster1-runto-main.exp2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster1-select-file.exp2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster1.cc2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster1.exp2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster2-null-lookup.exp2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster2-pervasive-typedef.exp2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster2-print-cerr.exp2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster2-ptype-string.exp2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster2-runto-main.exp2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster2-select-file.exp2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster2.cc2
-rw-r--r--gdb/testsuite/gdb.perf/gmonster2.exp2
-rw-r--r--gdb/testsuite/gdb.perf/lib/perftest/__init__.py2
-rw-r--r--gdb/testsuite/gdb.perf/lib/perftest/measure.py2
-rw-r--r--gdb/testsuite/gdb.perf/lib/perftest/perftest.py2
-rw-r--r--gdb/testsuite/gdb.perf/lib/perftest/reporter.py2
-rw-r--r--gdb/testsuite/gdb.perf/lib/perftest/testresult.py2
-rw-r--r--gdb/testsuite/gdb.perf/lib/perftest/utils.py2
-rw-r--r--gdb/testsuite/gdb.perf/single-step.c2
-rw-r--r--gdb/testsuite/gdb.perf/single-step.exp2
-rw-r--r--gdb/testsuite/gdb.perf/single-step.py2
-rw-r--r--gdb/testsuite/gdb.perf/skip-command.cc2
-rw-r--r--gdb/testsuite/gdb.perf/skip-command.exp2
-rw-r--r--gdb/testsuite/gdb.perf/skip-command.py2
-rw-r--r--gdb/testsuite/gdb.perf/skip-prologue.c2
-rw-r--r--gdb/testsuite/gdb.perf/skip-prologue.exp2
-rw-r--r--gdb/testsuite/gdb.perf/skip-prologue.py2
-rw-r--r--gdb/testsuite/gdb.perf/solib.c2
-rw-r--r--gdb/testsuite/gdb.perf/solib.exp2
-rw-r--r--gdb/testsuite/gdb.perf/solib.py2
-rw-r--r--gdb/testsuite/gdb.perf/template-breakpoints.cc2
-rw-r--r--gdb/testsuite/gdb.perf/template-breakpoints.exp2
-rw-r--r--gdb/testsuite/gdb.perf/template-breakpoints.py2
-rw-r--r--gdb/testsuite/gdb.python/amd64-py-framefilter-invalidarg.S2
-rw-r--r--gdb/testsuite/gdb.python/compare-enum-type-a.c2
-rw-r--r--gdb/testsuite/gdb.python/compare-enum-type-b.c2
-rw-r--r--gdb/testsuite/gdb.python/compare-enum-type.exp2
-rw-r--r--gdb/testsuite/gdb.python/compare-enum-type.h2
-rw-r--r--gdb/testsuite/gdb.python/flexible-array-member.c2
-rw-r--r--gdb/testsuite/gdb.python/flexible-array-member.exp2
-rw-r--r--gdb/testsuite/gdb.python/gdb_leak_detector.py121
-rw-r--r--gdb/testsuite/gdb.python/lib-types.cc2
-rw-r--r--gdb/testsuite/gdb.python/lib-types.exp2
-rw-r--r--gdb/testsuite/gdb.python/libpy-autoloaded-pretty-printers-in-newobjfile-event.so-gdb.py2
-rw-r--r--gdb/testsuite/gdb.python/lotsa-lines.exp2
-rw-r--r--gdb/testsuite/gdb.python/pretty-print-call-by-hand.c2
-rw-r--r--gdb/testsuite/gdb.python/pretty-print-call-by-hand.exp2
-rw-r--r--gdb/testsuite/gdb.python/pretty-print-call-by-hand.py2
-rw-r--r--gdb/testsuite/gdb.python/py-arch-reg-groups.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-arch-reg-names.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-arch.c2
-rw-r--r--gdb/testsuite/gdb.python/py-arch.exp7
-rw-r--r--gdb/testsuite/gdb.python/py-as-string.c2
-rw-r--r--gdb/testsuite/gdb.python/py-as-string.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-auto-load-chaining-f1.c2
-rw-r--r--gdb/testsuite/gdb.python/py-auto-load-chaining-f1.o-gdb.py2
-rw-r--r--gdb/testsuite/gdb.python/py-auto-load-chaining-f2.c2
-rw-r--r--gdb/testsuite/gdb.python/py-auto-load-chaining-f2.o-gdb.py2
-rw-r--r--gdb/testsuite/gdb.python/py-auto-load-chaining.c2
-rw-r--r--gdb/testsuite/gdb.python/py-auto-load-chaining.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event-lib.cc2
-rw-r--r--gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event-lib.h2
-rw-r--r--gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event-main.cc2
-rw-r--r--gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event.py2
-rw-r--r--gdb/testsuite/gdb.python/py-bad-printers.c2
-rw-r--r--gdb/testsuite/gdb.python/py-bad-printers.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-bad-printers.py2
-rw-r--r--gdb/testsuite/gdb.python/py-block.c2
-rw-r--r--gdb/testsuite/gdb.python/py-bp-locations.c2
-rw-r--r--gdb/testsuite/gdb.python/py-bp-locations.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-breakpoint-create-fail.c2
-rw-r--r--gdb/testsuite/gdb.python/py-breakpoint-create-fail.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-breakpoint-create-fail.py2
-rw-r--r--gdb/testsuite/gdb.python/py-breakpoint.c2
-rw-r--r--gdb/testsuite/gdb.python/py-breakpoint.exp4
-rw-r--r--gdb/testsuite/gdb.python/py-caller-is.c2
-rw-r--r--gdb/testsuite/gdb.python/py-caller-is.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-charset.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-cmd-exception.c2
-rw-r--r--gdb/testsuite/gdb.python/py-cmd-exception.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-cmd-exception.py2
-rw-r--r--gdb/testsuite/gdb.python/py-cmd-prompt.c2
-rw-r--r--gdb/testsuite/gdb.python/py-cmd-prompt.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-cmd-prompt.py2
-rw-r--r--gdb/testsuite/gdb.python/py-cmd.c2
-rw-r--r--gdb/testsuite/gdb.python/py-cmd.exp87
-rw-r--r--gdb/testsuite/gdb.python/py-color-leak.exp28
-rw-r--r--gdb/testsuite/gdb.python/py-color-leak.py37
-rw-r--r--gdb/testsuite/gdb.python/py-color.exp77
-rw-r--r--gdb/testsuite/gdb.python/py-completion.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-completion.py2
-rw-r--r--gdb/testsuite/gdb.python/py-connection-removed.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-connection.c2
-rw-r--r--gdb/testsuite/gdb.python/py-connection.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-disasm-exec.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-disasm-obj.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-disasm.c2
-rw-r--r--gdb/testsuite/gdb.python/py-disasm.exp.tcl7
-rw-r--r--gdb/testsuite/gdb.python/py-disasm.py20
-rw-r--r--gdb/testsuite/gdb.python/py-doc-reformat.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-error.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-error.py2
-rw-r--r--gdb/testsuite/gdb.python/py-event-load.c2
-rw-r--r--gdb/testsuite/gdb.python/py-event-load.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-event-load.py2
-rw-r--r--gdb/testsuite/gdb.python/py-events-shlib.c2
-rw-r--r--gdb/testsuite/gdb.python/py-events.c2
-rw-r--r--gdb/testsuite/gdb.python/py-events.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-events.py2
-rw-r--r--gdb/testsuite/gdb.python/py-evsignal.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-evthreads.c2
-rw-r--r--gdb/testsuite/gdb.python/py-evthreads.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-exec-file.c2
-rw-r--r--gdb/testsuite/gdb.python/py-exec-file.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-exec-mi.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-explore-cc.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-explore.c2
-rw-r--r--gdb/testsuite/gdb.python/py-explore.cc2
-rw-r--r--gdb/testsuite/gdb.python/py-explore.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-failed-init.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-finish-breakpoint-deletion.c2
-rw-r--r--gdb/testsuite/gdb.python/py-finish-breakpoint-deletion.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-finish-breakpoint-deletion.py2
-rw-r--r--gdb/testsuite/gdb.python/py-finish-breakpoint.c2
-rw-r--r--gdb/testsuite/gdb.python/py-finish-breakpoint.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-finish-breakpoint.py2
-rw-r--r--gdb/testsuite/gdb.python/py-finish-breakpoint2.cc2
-rw-r--r--gdb/testsuite/gdb.python/py-finish-breakpoint2.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-finish-breakpoint2.py2
-rw-r--r--gdb/testsuite/gdb.python/py-format-address.c2
-rw-r--r--gdb/testsuite/gdb.python/py-format-address.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-format-string.c2
-rw-r--r--gdb/testsuite/gdb.python/py-format-string.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-format-string.py2
-rw-r--r--gdb/testsuite/gdb.python/py-frame-args.c2
-rw-r--r--gdb/testsuite/gdb.python/py-frame-args.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-frame-args.py2
-rw-r--r--gdb/testsuite/gdb.python/py-frame-inline.c2
-rw-r--r--gdb/testsuite/gdb.python/py-frame-inline.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-frame.exp17
-rw-r--r--gdb/testsuite/gdb.python/py-framefilter-addr.c2
-rw-r--r--gdb/testsuite/gdb.python/py-framefilter-addr.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-framefilter-addr.py2
-rw-r--r--gdb/testsuite/gdb.python/py-framefilter-gdb.py2
-rw-r--r--gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py2
-rw-r--r--gdb/testsuite/gdb.python/py-framefilter-invalidarg.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-framefilter-invalidarg.py2
-rw-r--r--gdb/testsuite/gdb.python/py-framefilter-mi.c2
-rw-r--r--gdb/testsuite/gdb.python/py-framefilter-mi.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-framefilter.c2
-rw-r--r--gdb/testsuite/gdb.python/py-framefilter.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-framefilter.py2
-rw-r--r--gdb/testsuite/gdb.python/py-function.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-inferior-leak.c2
-rw-r--r--gdb/testsuite/gdb.python/py-inferior-leak.exp16
-rw-r--r--gdb/testsuite/gdb.python/py-inferior-leak.py113
-rw-r--r--gdb/testsuite/gdb.python/py-inferior.exp6
-rw-r--r--gdb/testsuite/gdb.python/py-infthread.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-label-symbol-value.c2
-rw-r--r--gdb/testsuite/gdb.python/py-label-symbol-value.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-lazy-string.c2
-rw-r--r--gdb/testsuite/gdb.python/py-lazy-string.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-linetable-empty.c2
-rw-r--r--gdb/testsuite/gdb.python/py-linetable-empty.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-linetable.S2
-rw-r--r--gdb/testsuite/gdb.python/py-linetable.c2
-rw-r--r--gdb/testsuite/gdb.python/py-linetable.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-lookup-type.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-mi-cmd.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-mi-cmd.py2
-rw-r--r--gdb/testsuite/gdb.python/py-mi-events-gdb.py2
-rw-r--r--gdb/testsuite/gdb.python/py-mi-events.c2
-rw-r--r--gdb/testsuite/gdb.python/py-mi-events.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-mi-notify.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-mi-objfile-gdb.py2
-rw-r--r--gdb/testsuite/gdb.python/py-mi-objfile.c2
-rw-r--r--gdb/testsuite/gdb.python/py-mi-objfile.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-mi-var-info-path-expression.c2
-rw-r--r--gdb/testsuite/gdb.python/py-mi-var-info-path-expression.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-mi-var-info-path-expression.py2
-rw-r--r--gdb/testsuite/gdb.python/py-mi.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-missing-debug.c2
-rw-r--r--gdb/testsuite/gdb.python/py-missing-debug.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-missing-debug.py2
-rw-r--r--gdb/testsuite/gdb.python/py-missing-objfile-lib.c2
-rw-r--r--gdb/testsuite/gdb.python/py-missing-objfile.c2
-rw-r--r--gdb/testsuite/gdb.python/py-missing-objfile.exp12
-rw-r--r--gdb/testsuite/gdb.python/py-missing-objfile.py2
-rw-r--r--gdb/testsuite/gdb.python/py-nested-maps.c2
-rw-r--r--gdb/testsuite/gdb.python/py-nested-maps.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-nested-maps.py2
-rw-r--r--gdb/testsuite/gdb.python/py-objfile-script-gdb.py2
-rw-r--r--gdb/testsuite/gdb.python/py-objfile-script.c2
-rw-r--r--gdb/testsuite/gdb.python/py-objfile-script.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-objfile.c4
-rw-r--r--gdb/testsuite/gdb.python/py-objfile.exp5
-rw-r--r--gdb/testsuite/gdb.python/py-parameter-prefix.exp382
-rw-r--r--gdb/testsuite/gdb.python/py-parameter.exp189
-rw-r--r--gdb/testsuite/gdb.python/py-pending-frame-level.c2
-rw-r--r--gdb/testsuite/gdb.python/py-pending-frame-level.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-pending-frame-level.py2
-rw-r--r--gdb/testsuite/gdb.python/py-pp-cast.c2
-rw-r--r--gdb/testsuite/gdb.python/py-pp-cast.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-pp-cast.py2
-rw-r--r--gdb/testsuite/gdb.python/py-pp-integral.c2
-rw-r--r--gdb/testsuite/gdb.python/py-pp-integral.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-pp-integral.py2
-rw-r--r--gdb/testsuite/gdb.python/py-pp-maint.c2
-rw-r--r--gdb/testsuite/gdb.python/py-pp-maint.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-pp-maint.py2
-rw-r--r--gdb/testsuite/gdb.python/py-pp-re-notag.c2
-rw-r--r--gdb/testsuite/gdb.python/py-pp-re-notag.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-pp-re-notag.py2
-rw-r--r--gdb/testsuite/gdb.python/py-pp-registration.c2
-rw-r--r--gdb/testsuite/gdb.python/py-pp-registration.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-pp-registration.py2
-rw-r--r--gdb/testsuite/gdb.python/py-prettyprint-stub-2.cc2
-rw-r--r--gdb/testsuite/gdb.python/py-prettyprint-stub.cc2
-rw-r--r--gdb/testsuite/gdb.python/py-prettyprint-stub.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-prettyprint-stub.h2
-rw-r--r--gdb/testsuite/gdb.python/py-prettyprint-stub.py2
-rw-r--r--gdb/testsuite/gdb.python/py-prettyprint.c2
-rw-r--r--gdb/testsuite/gdb.python/py-prettyprint.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-prettyprint.py2
-rw-r--r--gdb/testsuite/gdb.python/py-progspace-events.c2
-rw-r--r--gdb/testsuite/gdb.python/py-progspace-events.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-progspace-events.py2
-rw-r--r--gdb/testsuite/gdb.python/py-progspace.c2
-rw-r--r--gdb/testsuite/gdb.python/py-progspace.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-prompt.c2
-rw-r--r--gdb/testsuite/gdb.python/py-prompt.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-rbreak-func2.c2
-rw-r--r--gdb/testsuite/gdb.python/py-rbreak.c2
-rw-r--r--gdb/testsuite/gdb.python/py-rbreak.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-read-memory-leak.c2
-rw-r--r--gdb/testsuite/gdb.python/py-read-memory-leak.exp16
-rw-r--r--gdb/testsuite/gdb.python/py-read-memory-leak.py88
-rw-r--r--gdb/testsuite/gdb.python/py-record-btrace-threads.c2
-rw-r--r--gdb/testsuite/gdb.python/py-record-btrace-threads.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-record-btrace.c2
-rw-r--r--gdb/testsuite/gdb.python/py-record-btrace.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-record-full.c2
-rw-r--r--gdb/testsuite/gdb.python/py-record-full.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-recurse-unwind.c2
-rw-r--r--gdb/testsuite/gdb.python/py-recurse-unwind.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-recurse-unwind.py2
-rw-r--r--gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.cc2
-rw-r--r--gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-section-script.c2
-rw-r--r--gdb/testsuite/gdb.python/py-section-script.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-section-script.py2
-rw-r--r--gdb/testsuite/gdb.python/py-send-packet.c2
-rw-r--r--gdb/testsuite/gdb.python/py-send-packet.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-send-packet.py2
-rw-r--r--gdb/testsuite/gdb.python/py-shared-sl.c2
-rw-r--r--gdb/testsuite/gdb.python/py-shared.c2
-rw-r--r--gdb/testsuite/gdb.python/py-shared.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-source-styling-2.c26
-rw-r--r--gdb/testsuite/gdb.python/py-source-styling-2.exp55
-rw-r--r--gdb/testsuite/gdb.python/py-source-styling.c2
-rw-r--r--gdb/testsuite/gdb.python/py-source-styling.exp174
-rw-r--r--gdb/testsuite/gdb.python/py-startup-opt.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-strfns.c2
-rw-r--r--gdb/testsuite/gdb.python/py-strfns.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-styled-execute.exp109
-rw-r--r--gdb/testsuite/gdb.python/py-sym-artificial.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-symbol-2.c2
-rw-r--r--gdb/testsuite/gdb.python/py-symbol-3.c2
-rw-r--r--gdb/testsuite/gdb.python/py-symbol.c2
-rw-r--r--gdb/testsuite/gdb.python/py-symbol.exp20
-rw-r--r--gdb/testsuite/gdb.python/py-symtab.exp30
-rw-r--r--gdb/testsuite/gdb.python/py-sync-interp.c2
-rw-r--r--gdb/testsuite/gdb.python/py-sync-interp.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-template.cc2
-rw-r--r--gdb/testsuite/gdb.python/py-template.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-thread-exited.c2
-rw-r--r--gdb/testsuite/gdb.python/py-thread-exited.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-thread-exited.py2
-rw-r--r--gdb/testsuite/gdb.python/py-thrhandle.c2
-rw-r--r--gdb/testsuite/gdb.python/py-thrhandle.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-type.c2
-rw-r--r--gdb/testsuite/gdb.python/py-type.exp17
-rw-r--r--gdb/testsuite/gdb.python/py-typeprint.cc2
-rw-r--r--gdb/testsuite/gdb.python/py-typeprint.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-typeprint.py2
-rw-r--r--gdb/testsuite/gdb.python/py-unwind-inline.c2
-rw-r--r--gdb/testsuite/gdb.python/py-unwind-inline.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-unwind-inline.py2
-rw-r--r--gdb/testsuite/gdb.python/py-unwind-maint.c2
-rw-r--r--gdb/testsuite/gdb.python/py-unwind-maint.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-unwind-maint.py2
-rw-r--r--gdb/testsuite/gdb.python/py-unwind-user-regs.c2
-rw-r--r--gdb/testsuite/gdb.python/py-unwind-user-regs.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-unwind-user-regs.py2
-rw-r--r--gdb/testsuite/gdb.python/py-unwind.c2
-rw-r--r--gdb/testsuite/gdb.python/py-unwind.exp9
-rw-r--r--gdb/testsuite/gdb.python/py-unwind.py22
-rw-r--r--gdb/testsuite/gdb.python/py-value-cc.cc2
-rw-r--r--gdb/testsuite/gdb.python/py-value-cc.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-value.c2
-rw-r--r--gdb/testsuite/gdb.python/py-value.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-varobj.c2
-rw-r--r--gdb/testsuite/gdb.python/py-varobj.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-varobj.py2
-rw-r--r--gdb/testsuite/gdb.python/py-warning.exp46
-rw-r--r--gdb/testsuite/gdb.python/py-watchpoint.c2
-rw-r--r--gdb/testsuite/gdb.python/py-watchpoint.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-watchpoint.py2
-rw-r--r--gdb/testsuite/gdb.python/py-xmethods.cc4
-rw-r--r--gdb/testsuite/gdb.python/py-xmethods.exp2
-rw-r--r--gdb/testsuite/gdb.python/py-xmethods.py2
-rw-r--r--gdb/testsuite/gdb.python/python-1.c2
-rw-r--r--gdb/testsuite/gdb.python/python.c2
-rw-r--r--gdb/testsuite/gdb.python/python.exp2
-rw-r--r--gdb/testsuite/gdb.python/source12
-rw-r--r--gdb/testsuite/gdb.python/source2.py2
-rw-r--r--gdb/testsuite/gdb.python/sys-exit.exp2
-rw-r--r--gdb/testsuite/gdb.python/tui-window-disabled.c2
-rw-r--r--gdb/testsuite/gdb.python/tui-window-disabled.exp2
-rw-r--r--gdb/testsuite/gdb.python/tui-window-disabled.py2
-rw-r--r--gdb/testsuite/gdb.python/tui-window-factory.exp2
-rw-r--r--gdb/testsuite/gdb.python/tui-window-factory.py2
-rw-r--r--gdb/testsuite/gdb.python/tui-window-names.exp2
-rw-r--r--gdb/testsuite/gdb.python/tui-window.exp2
-rw-r--r--gdb/testsuite/gdb.python/tui-window.py2
-rw-r--r--gdb/testsuite/gdb.replay/connect.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/aarch64-mops.c2
-rw-r--r--gdb/testsuite/gdb.reverse/aarch64-mops.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.S2
-rw-r--r--gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/break-precsave.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/break-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/break-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/consecutive-precsave.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/consecutive-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/consecutive-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/finish-precsave.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/finish-reverse-bkpt.c2
-rw-r--r--gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/finish-reverse-next.c2
-rw-r--r--gdb/testsuite/gdb.reverse/finish-reverse-next.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/finish-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/finish-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/fstatat-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/fstatat-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/func-map-to-same-line.c2
-rw-r--r--gdb/testsuite/gdb.reverse/func-map-to-same-line.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/getrandom.c2
-rw-r--r--gdb/testsuite/gdb.reverse/getrandom.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/getresuid-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/getresuid-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/i386-avx-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/i386-avx-reverse.exp4
-rw-r--r--gdb/testsuite/gdb.reverse/i386-precsave.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/i386-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/i386-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/i386-sse-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/i386-sse-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/i387-env-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/i387-stack-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/insn-reverse-aarch64.c2
-rw-r--r--gdb/testsuite/gdb.reverse/insn-reverse-arm.c2
-rw-r--r--gdb/testsuite/gdb.reverse/insn-reverse-x86.c2
-rw-r--r--gdb/testsuite/gdb.reverse/insn-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/insn-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/machinestate-precsave.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/machinestate.c2
-rw-r--r--gdb/testsuite/gdb.reverse/machinestate.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/maint-print-instruction.c2
-rw-r--r--gdb/testsuite/gdb.reverse/maint-print-instruction.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/map-to-same-line.c2
-rw-r--r--gdb/testsuite/gdb.reverse/map-to-same-line.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/ms1.c2
-rw-r--r--gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.c2
-rw-r--r--gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/pipe-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/pipe-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/ppc_record_test_isa_2_06.c2
-rw-r--r--gdb/testsuite/gdb.reverse/ppc_record_test_isa_2_06.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/ppc_record_test_isa_3_1.c2
-rw-r--r--gdb/testsuite/gdb.reverse/ppc_record_test_isa_3_1.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/readv-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/readv-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/recursion.c2
-rw-r--r--gdb/testsuite/gdb.reverse/recursion.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/recvmsg-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/recvmsg-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/rerun-prec.c2
-rw-r--r--gdb/testsuite/gdb.reverse/rerun-prec.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/s390-mvcle.c2
-rw-r--r--gdb/testsuite/gdb.reverse/s390-mvcle.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/shr.h2
-rw-r--r--gdb/testsuite/gdb.reverse/shr1.c2
-rw-r--r--gdb/testsuite/gdb.reverse/shr2.c2
-rw-r--r--gdb/testsuite/gdb.reverse/sigall-precsave.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/sigall-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/sigall-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.S2
-rw-r--r--gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.c2
-rw-r--r--gdb/testsuite/gdb.reverse/singlejmp-reverse.S2
-rw-r--r--gdb/testsuite/gdb.reverse/singlejmp-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/singlejmp-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/solib-precsave.exp4
-rw-r--r--gdb/testsuite/gdb.reverse/solib-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/solib-reverse.exp4
-rw-r--r--gdb/testsuite/gdb.reverse/step-indirect-call-thunk.c2
-rw-r--r--gdb/testsuite/gdb.reverse/step-indirect-call-thunk.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/step-precsave.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/step-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/step-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/test_ioctl_TCSETSW.c2
-rw-r--r--gdb/testsuite/gdb.reverse/test_ioctl_TCSETSW.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/time-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/time-reverse.exp45
-rw-r--r--gdb/testsuite/gdb.reverse/until-precsave.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/until-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/until-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/ur1.c2
-rw-r--r--gdb/testsuite/gdb.reverse/waitpid-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/waitpid-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/watch-precsave.exp2
-rw-r--r--gdb/testsuite/gdb.reverse/watch-reverse.c2
-rw-r--r--gdb/testsuite/gdb.reverse/watch-reverse.exp2
-rw-r--r--gdb/testsuite/gdb.rocm/code-object-load-while-breakpoint-hit.cpp86
-rw-r--r--gdb/testsuite/gdb.rocm/code-object-load-while-breakpoint-hit.exp68
-rw-r--r--gdb/testsuite/gdb.rocm/displaced-stepping.cpp48
-rw-r--r--gdb/testsuite/gdb.rocm/displaced-stepping.exp53
-rw-r--r--gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu-execee.cpp2
-rw-r--r--gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu-execer.cpp2
-rw-r--r--gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu.exp3
-rw-r--r--gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu-execee.cpp2
-rw-r--r--gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu-execer.cpp2
-rw-r--r--gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu.exp3
-rw-r--r--gdb/testsuite/gdb.rocm/mi-attach.cpp38
-rw-r--r--gdb/testsuite/gdb.rocm/mi-attach.exp33
-rw-r--r--gdb/testsuite/gdb.rocm/multi-inferior-gpu.cpp2
-rw-r--r--gdb/testsuite/gdb.rocm/multi-inferior-gpu.exp2
-rw-r--r--gdb/testsuite/gdb.rocm/precise-memory-exec.c2
-rw-r--r--gdb/testsuite/gdb.rocm/precise-memory-exec.exp2
-rw-r--r--gdb/testsuite/gdb.rocm/precise-memory-fork.c2
-rw-r--r--gdb/testsuite/gdb.rocm/precise-memory-fork.exp3
-rw-r--r--gdb/testsuite/gdb.rocm/precise-memory-multi-inferiors.exp2
-rw-r--r--gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.cpp2
-rw-r--r--gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.exp2
-rw-r--r--gdb/testsuite/gdb.rocm/precise-memory.cpp14
-rw-r--r--gdb/testsuite/gdb.rocm/precise-memory.exp40
-rw-r--r--gdb/testsuite/gdb.rocm/simple.cpp2
-rw-r--r--gdb/testsuite/gdb.rocm/simple.exp2
-rw-r--r--gdb/testsuite/gdb.rust/completion.exp2
-rw-r--r--gdb/testsuite/gdb.rust/completion.rs2
-rw-r--r--gdb/testsuite/gdb.rust/dwindex.exp2
-rw-r--r--gdb/testsuite/gdb.rust/dwindex.rs2
-rw-r--r--gdb/testsuite/gdb.rust/expr.exp6
-rw-r--r--gdb/testsuite/gdb.rust/finish.exp2
-rw-r--r--gdb/testsuite/gdb.rust/finish.rs2
-rw-r--r--gdb/testsuite/gdb.rust/fnfield.exp2
-rw-r--r--gdb/testsuite/gdb.rust/fnfield.rs2
-rw-r--r--gdb/testsuite/gdb.rust/generics.exp2
-rw-r--r--gdb/testsuite/gdb.rust/generics.rs2
-rw-r--r--gdb/testsuite/gdb.rust/main-crash.exp2
-rw-r--r--gdb/testsuite/gdb.rust/main.rs2
-rw-r--r--gdb/testsuite/gdb.rust/methods.exp2
-rw-r--r--gdb/testsuite/gdb.rust/methods.rs2
-rw-r--r--gdb/testsuite/gdb.rust/modules.exp2
-rw-r--r--gdb/testsuite/gdb.rust/modules.rs2
-rw-r--r--gdb/testsuite/gdb.rust/onetwoeight.exp2
-rw-r--r--gdb/testsuite/gdb.rust/onetwoeight.rs2
-rw-r--r--gdb/testsuite/gdb.rust/pp.exp2
-rw-r--r--gdb/testsuite/gdb.rust/pp.py2
-rw-r--r--gdb/testsuite/gdb.rust/pp.rs2
-rw-r--r--gdb/testsuite/gdb.rust/rawids.exp2
-rw-r--r--gdb/testsuite/gdb.rust/rawids.rs2
-rw-r--r--gdb/testsuite/gdb.rust/rust-start.exp2
-rw-r--r--gdb/testsuite/gdb.rust/rust-style.exp2
-rw-r--r--gdb/testsuite/gdb.rust/rust-style.rs2
-rw-r--r--gdb/testsuite/gdb.rust/simple.exp2
-rw-r--r--gdb/testsuite/gdb.rust/simple.rs2
-rw-r--r--gdb/testsuite/gdb.rust/traits.exp2
-rw-r--r--gdb/testsuite/gdb.rust/traits.rs2
-rw-r--r--gdb/testsuite/gdb.rust/unicode.exp2
-rw-r--r--gdb/testsuite/gdb.rust/unicode.rs2
-rw-r--r--gdb/testsuite/gdb.rust/union.exp2
-rw-r--r--gdb/testsuite/gdb.rust/union.rs2
-rw-r--r--gdb/testsuite/gdb.rust/unsized.exp2
-rw-r--r--gdb/testsuite/gdb.rust/unsized.rs2
-rw-r--r--gdb/testsuite/gdb.rust/unsized2.exp2
-rw-r--r--gdb/testsuite/gdb.rust/unsized2.rs2
-rw-r--r--gdb/testsuite/gdb.rust/watch.exp2
-rw-r--r--gdb/testsuite/gdb.rust/watch.rs2
-rw-r--r--gdb/testsuite/gdb.server/abspath.exp2
-rw-r--r--gdb/testsuite/gdb.server/attach-flag.exp2
-rw-r--r--gdb/testsuite/gdb.server/bkpt-other-inferior.exp2
-rw-r--r--gdb/testsuite/gdb.server/build-id-seqno.c2
-rw-r--r--gdb/testsuite/gdb.server/build-id-seqno.exp8
-rw-r--r--gdb/testsuite/gdb.server/connect-stopped-target.c2
-rw-r--r--gdb/testsuite/gdb.server/connect-stopped-target.exp2
-rw-r--r--gdb/testsuite/gdb.server/connect-with-no-symbol-file.c2
-rw-r--r--gdb/testsuite/gdb.server/connect-with-no-symbol-file.exp2
-rw-r--r--gdb/testsuite/gdb.server/connect-without-multi-process.c2
-rw-r--r--gdb/testsuite/gdb.server/connect-without-multi-process.exp2
-rw-r--r--gdb/testsuite/gdb.server/exit-multiple-threads.c2
-rw-r--r--gdb/testsuite/gdb.server/exit-multiple-threads.exp2
-rw-r--r--gdb/testsuite/gdb.server/ext-attach.c2
-rw-r--r--gdb/testsuite/gdb.server/ext-attach.exp2
-rw-r--r--gdb/testsuite/gdb.server/ext-restart.exp2
-rw-r--r--gdb/testsuite/gdb.server/ext-run.exp2
-rw-r--r--gdb/testsuite/gdb.server/ext-wrapper.exp2
-rw-r--r--gdb/testsuite/gdb.server/extended-remote-restart.c2
-rw-r--r--gdb/testsuite/gdb.server/extended-remote-restart.exp2
-rw-r--r--gdb/testsuite/gdb.server/file-transfer.exp2
-rw-r--r--gdb/testsuite/gdb.server/fileio-packets.exp66
-rw-r--r--gdb/testsuite/gdb.server/fileio-packets.py208
-rw-r--r--gdb/testsuite/gdb.server/monitor-exit-quit.exp2
-rw-r--r--gdb/testsuite/gdb.server/multi-ui-errors.c2
-rw-r--r--gdb/testsuite/gdb.server/multi-ui-errors.exp2
-rw-r--r--gdb/testsuite/gdb.server/no-thread-db.c2
-rw-r--r--gdb/testsuite/gdb.server/no-thread-db.exp6
-rw-r--r--gdb/testsuite/gdb.server/non-existing-program.exp2
-rw-r--r--gdb/testsuite/gdb.server/normal.c2
-rw-r--r--gdb/testsuite/gdb.server/pread-offset-size.S29
-rw-r--r--gdb/testsuite/gdb.server/pread-offset-size.exp49
-rw-r--r--gdb/testsuite/gdb.server/reconnect-ctrl-c.c2
-rw-r--r--gdb/testsuite/gdb.server/reconnect-ctrl-c.exp2
-rw-r--r--gdb/testsuite/gdb.server/remote-read-msgs.c2
-rw-r--r--gdb/testsuite/gdb.server/remote-read-msgs.exp2
-rw-r--r--gdb/testsuite/gdb.server/run-without-local-binary.exp2
-rw-r--r--gdb/testsuite/gdb.server/server-connect.exp2
-rw-r--r--gdb/testsuite/gdb.server/server-exec-info.exp2
-rw-r--r--gdb/testsuite/gdb.server/server-kill-python.exp2
-rw-r--r--gdb/testsuite/gdb.server/server-kill.c2
-rw-r--r--gdb/testsuite/gdb.server/server-kill.exp2
-rw-r--r--gdb/testsuite/gdb.server/server-mon.exp2
-rw-r--r--gdb/testsuite/gdb.server/server-pipe.exp2
-rw-r--r--gdb/testsuite/gdb.server/server-run.exp2
-rw-r--r--gdb/testsuite/gdb.server/server.c2
-rw-r--r--gdb/testsuite/gdb.server/solib-list-lib.c2
-rw-r--r--gdb/testsuite/gdb.server/solib-list-main.c2
-rw-r--r--gdb/testsuite/gdb.server/solib-list.exp2
-rw-r--r--gdb/testsuite/gdb.server/stop-reply-no-thread-multi.c2
-rw-r--r--gdb/testsuite/gdb.server/stop-reply-no-thread-multi.exp2
-rw-r--r--gdb/testsuite/gdb.server/stop-reply-no-thread.c2
-rw-r--r--gdb/testsuite/gdb.server/stop-reply-no-thread.exp2
-rw-r--r--gdb/testsuite/gdb.server/sysroot.c2
-rw-r--r--gdb/testsuite/gdb.server/sysroot.exp2
-rw-r--r--gdb/testsuite/gdb.server/target-exec-file.c2
-rw-r--r--gdb/testsuite/gdb.server/target-exec-file.exp2
-rw-r--r--gdb/testsuite/gdb.server/twice-connect.c2
-rw-r--r--gdb/testsuite/gdb.server/twice-connect.exp2
-rw-r--r--gdb/testsuite/gdb.server/unittest.exp2
-rw-r--r--gdb/testsuite/gdb.server/wrapper.c2
-rw-r--r--gdb/testsuite/gdb.server/wrapper.exp2
-rw-r--r--gdb/testsuite/gdb.stabs/exclfwd.exp2
-rw-r--r--gdb/testsuite/gdb.stabs/exclfwd.h2
-rw-r--r--gdb/testsuite/gdb.stabs/exclfwd1.c2
-rw-r--r--gdb/testsuite/gdb.stabs/exclfwd2.c2
-rw-r--r--gdb/testsuite/gdb.stabs/gdb11479.c2
-rw-r--r--gdb/testsuite/gdb.stabs/gdb11479.exp2
-rw-r--r--gdb/testsuite/gdb.stabs/weird.def2
-rw-r--r--gdb/testsuite/gdb.stabs/weird.exp4
-rw-r--r--gdb/testsuite/gdb.testsuite/board-sanity.exp2
-rw-r--r--gdb/testsuite/gdb.testsuite/capture-command-output.exp2
-rw-r--r--gdb/testsuite/gdb.testsuite/cond-wrap.exp2
-rw-r--r--gdb/testsuite/gdb.testsuite/dump-system-info.exp2
-rw-r--r--gdb/testsuite/gdb.testsuite/foreach_with_prefix.exp2
-rw-r--r--gdb/testsuite/gdb.testsuite/gdb-caching-proc-consistency.exp2
-rw-r--r--gdb/testsuite/gdb.testsuite/gdb-caching-proc.exp2
-rw-r--r--gdb/testsuite/gdb.testsuite/gdb-test.exp2
-rw-r--r--gdb/testsuite/gdb.testsuite/gdb_test_multiple-lbl.exp84
-rwxr-xr-xgdb/testsuite/gdb.testsuite/gdb_test_multiple-lbl.gdb25
-rw-r--r--gdb/testsuite/gdb.testsuite/lmap.exp2
-rw-r--r--gdb/testsuite/gdb.testsuite/parse_options_args.exp2
-rw-r--r--gdb/testsuite/gdb.testsuite/string-cat.exp2
-rw-r--r--gdb/testsuite/gdb.testsuite/string_to_regexp.exp2
-rw-r--r--gdb/testsuite/gdb.testsuite/version-compare.exp74
-rw-r--r--gdb/testsuite/gdb.testsuite/with-override.exp2
-rw-r--r--gdb/testsuite/gdb.threads/access-mem-running-thread-exit.c9
-rw-r--r--gdb/testsuite/gdb.threads/access-mem-running-thread-exit.exp93
-rw-r--r--gdb/testsuite/gdb.threads/async.c2
-rw-r--r--gdb/testsuite/gdb.threads/async.exp2
-rw-r--r--gdb/testsuite/gdb.threads/attach-into-signal.c2
-rw-r--r--gdb/testsuite/gdb.threads/attach-into-signal.exp2
-rw-r--r--gdb/testsuite/gdb.threads/attach-many-short-lived-threads.c2
-rw-r--r--gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp2
-rw-r--r--gdb/testsuite/gdb.threads/attach-non-stop.c2
-rw-r--r--gdb/testsuite/gdb.threads/attach-non-stop.exp2
-rw-r--r--gdb/testsuite/gdb.threads/attach-slow-waitpid.c2
-rw-r--r--gdb/testsuite/gdb.threads/attach-slow-waitpid.exp4
-rw-r--r--gdb/testsuite/gdb.threads/attach-stopped.c2
-rw-r--r--gdb/testsuite/gdb.threads/attach-stopped.exp2
-rw-r--r--gdb/testsuite/gdb.threads/bp_in_thread.c2
-rw-r--r--gdb/testsuite/gdb.threads/bp_in_thread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/break-while-running.c2
-rw-r--r--gdb/testsuite/gdb.threads/break-while-running.exp2
-rw-r--r--gdb/testsuite/gdb.threads/check-libthread-db.c2
-rw-r--r--gdb/testsuite/gdb.threads/check-libthread-db.exp2
-rw-r--r--gdb/testsuite/gdb.threads/clone-attach-detach.c2
-rw-r--r--gdb/testsuite/gdb.threads/clone-attach-detach.exp4
-rw-r--r--gdb/testsuite/gdb.threads/clone-new-thread-event.c2
-rw-r--r--gdb/testsuite/gdb.threads/clone-new-thread-event.exp2
-rw-r--r--gdb/testsuite/gdb.threads/clone-thread_db.c2
-rw-r--r--gdb/testsuite/gdb.threads/clone-thread_db.exp2
-rw-r--r--gdb/testsuite/gdb.threads/continue-pending-after-query.c2
-rw-r--r--gdb/testsuite/gdb.threads/continue-pending-after-query.exp2
-rw-r--r--gdb/testsuite/gdb.threads/continue-pending-status.c2
-rw-r--r--gdb/testsuite/gdb.threads/continue-pending-status.exp2
-rw-r--r--gdb/testsuite/gdb.threads/corethreads.c2
-rw-r--r--gdb/testsuite/gdb.threads/corethreads.exp2
-rw-r--r--gdb/testsuite/gdb.threads/create-fail.c2
-rw-r--r--gdb/testsuite/gdb.threads/create-fail.exp2
-rw-r--r--gdb/testsuite/gdb.threads/current-lwp-dead.c2
-rw-r--r--gdb/testsuite/gdb.threads/current-lwp-dead.exp4
-rw-r--r--gdb/testsuite/gdb.threads/del-pending-thread-bp-lib.c2
-rw-r--r--gdb/testsuite/gdb.threads/del-pending-thread-bp.c2
-rw-r--r--gdb/testsuite/gdb.threads/del-pending-thread-bp.exp2
-rw-r--r--gdb/testsuite/gdb.threads/detach-step-over.c2
-rw-r--r--gdb/testsuite/gdb.threads/detach-step-over.exp4
-rw-r--r--gdb/testsuite/gdb.threads/dlopen-libpthread-lib.c2
-rw-r--r--gdb/testsuite/gdb.threads/dlopen-libpthread.c2
-rw-r--r--gdb/testsuite/gdb.threads/dlopen-libpthread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/execl.c2
-rw-r--r--gdb/testsuite/gdb.threads/execl.exp2
-rw-r--r--gdb/testsuite/gdb.threads/execl1.c2
-rw-r--r--gdb/testsuite/gdb.threads/foll-fork-other-thread.c2
-rw-r--r--gdb/testsuite/gdb.threads/foll-fork-other-thread.exp4
-rw-r--r--gdb/testsuite/gdb.threads/fork-child-threads.c2
-rw-r--r--gdb/testsuite/gdb.threads/fork-child-threads.exp7
-rw-r--r--gdb/testsuite/gdb.threads/fork-plus-threads.c2
-rw-r--r--gdb/testsuite/gdb.threads/fork-plus-threads.exp4
-rw-r--r--gdb/testsuite/gdb.threads/fork-thread-pending.c2
-rw-r--r--gdb/testsuite/gdb.threads/fork-thread-pending.exp8
-rw-r--r--gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.c2
-rw-r--r--gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.exp4
-rw-r--r--gdb/testsuite/gdb.threads/gcore-stale-thread.c2
-rw-r--r--gdb/testsuite/gdb.threads/gcore-stale-thread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/gcore-thread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/hand-call-in-threads.c2
-rw-r--r--gdb/testsuite/gdb.threads/hand-call-in-threads.exp2
-rw-r--r--gdb/testsuite/gdb.threads/hand-call-new-thread.c2
-rw-r--r--gdb/testsuite/gdb.threads/hand-call-new-thread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/ia64-sigill.c2
-rw-r--r--gdb/testsuite/gdb.threads/ia64-sigill.exp2
-rw-r--r--gdb/testsuite/gdb.threads/inf-thr-count.c2
-rw-r--r--gdb/testsuite/gdb.threads/inf-thr-count.exp59
-rw-r--r--gdb/testsuite/gdb.threads/infcall-from-bp-cond-other-thread-event.c2
-rw-r--r--gdb/testsuite/gdb.threads/infcall-from-bp-cond-other-thread-event.exp2
-rw-r--r--gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.c4
-rw-r--r--gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.exp14
-rw-r--r--gdb/testsuite/gdb.threads/infcall-from-bp-cond-single.c2
-rw-r--r--gdb/testsuite/gdb.threads/infcall-from-bp-cond-single.exp2
-rw-r--r--gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.c2
-rw-r--r--gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.exp2
-rw-r--r--gdb/testsuite/gdb.threads/infcall-thread-announce.c2
-rw-r--r--gdb/testsuite/gdb.threads/infcall-thread-announce.exp2
-rw-r--r--gdb/testsuite/gdb.threads/info-threads-cur-sal-2.c2
-rw-r--r--gdb/testsuite/gdb.threads/info-threads-cur-sal.c2
-rw-r--r--gdb/testsuite/gdb.threads/info-threads-cur-sal.exp2
-rw-r--r--gdb/testsuite/gdb.threads/info-threads-options.c77
-rw-r--r--gdb/testsuite/gdb.threads/info-threads-options.exp131
-rw-r--r--gdb/testsuite/gdb.threads/interrupt-while-step-over.c2
-rw-r--r--gdb/testsuite/gdb.threads/interrupt-while-step-over.exp2
-rw-r--r--gdb/testsuite/gdb.threads/interrupted-hand-call.c2
-rw-r--r--gdb/testsuite/gdb.threads/interrupted-hand-call.exp2
-rw-r--r--gdb/testsuite/gdb.threads/kill.c2
-rw-r--r--gdb/testsuite/gdb.threads/kill.exp2
-rw-r--r--gdb/testsuite/gdb.threads/killed-outside.c2
-rw-r--r--gdb/testsuite/gdb.threads/killed-outside.exp2
-rw-r--r--gdb/testsuite/gdb.threads/killed.c2
-rw-r--r--gdb/testsuite/gdb.threads/killed.exp2
-rw-r--r--gdb/testsuite/gdb.threads/leader-exit-attach.exp2
-rw-r--r--gdb/testsuite/gdb.threads/leader-exit.c2
-rw-r--r--gdb/testsuite/gdb.threads/leader-exit.exp2
-rw-r--r--gdb/testsuite/gdb.threads/linux-dp.exp2
-rw-r--r--gdb/testsuite/gdb.threads/local-watch-wrong-thread.c2
-rw-r--r--gdb/testsuite/gdb.threads/local-watch-wrong-thread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/main-thread-exit-during-detach.c2
-rw-r--r--gdb/testsuite/gdb.threads/main-thread-exit-during-detach.exp2
-rw-r--r--gdb/testsuite/gdb.threads/manythreads.c2
-rw-r--r--gdb/testsuite/gdb.threads/manythreads.exp2
-rw-r--r--gdb/testsuite/gdb.threads/multi-create-ns-info-thr.exp2
-rw-r--r--gdb/testsuite/gdb.threads/multi-create.c2
-rw-r--r--gdb/testsuite/gdb.threads/multi-create.exp2
-rw-r--r--gdb/testsuite/gdb.threads/multiple-step-overs.c2
-rw-r--r--gdb/testsuite/gdb.threads/multiple-step-overs.exp2
-rw-r--r--gdb/testsuite/gdb.threads/multiple-successive-infcall.c2
-rw-r--r--gdb/testsuite/gdb.threads/multiple-successive-infcall.exp2
-rw-r--r--gdb/testsuite/gdb.threads/names.c2
-rw-r--r--gdb/testsuite/gdb.threads/names.exp2
-rw-r--r--gdb/testsuite/gdb.threads/next-bp-other-thread.c2
-rw-r--r--gdb/testsuite/gdb.threads/next-bp-other-thread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/next-fork-exec-other-thread.c2
-rw-r--r--gdb/testsuite/gdb.threads/next-fork-exec-other-thread.exp4
-rw-r--r--gdb/testsuite/gdb.threads/next-fork-other-thread.c2
-rw-r--r--gdb/testsuite/gdb.threads/next-fork-other-thread.exp4
-rw-r--r--gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.c2
-rw-r--r--gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.exp2
-rw-r--r--gdb/testsuite/gdb.threads/no-unwaited-for-left.c2
-rw-r--r--gdb/testsuite/gdb.threads/no-unwaited-for-left.exp2
-rw-r--r--gdb/testsuite/gdb.threads/non-ldr-exc-1.c2
-rw-r--r--gdb/testsuite/gdb.threads/non-ldr-exc-1.exp2
-rw-r--r--gdb/testsuite/gdb.threads/non-ldr-exc-2.c2
-rw-r--r--gdb/testsuite/gdb.threads/non-ldr-exc-2.exp2
-rw-r--r--gdb/testsuite/gdb.threads/non-ldr-exc-3.c2
-rw-r--r--gdb/testsuite/gdb.threads/non-ldr-exc-3.exp2
-rw-r--r--gdb/testsuite/gdb.threads/non-ldr-exc-4.c2
-rw-r--r--gdb/testsuite/gdb.threads/non-ldr-exc-4.exp2
-rw-r--r--gdb/testsuite/gdb.threads/non-ldr-exit.c2
-rw-r--r--gdb/testsuite/gdb.threads/non-ldr-exit.exp2
-rw-r--r--gdb/testsuite/gdb.threads/non-stop-fair-events.c2
-rw-r--r--gdb/testsuite/gdb.threads/non-stop-fair-events.exp2
-rw-r--r--gdb/testsuite/gdb.threads/omp-par-scope.c2
-rw-r--r--gdb/testsuite/gdb.threads/omp-par-scope.exp2
-rw-r--r--gdb/testsuite/gdb.threads/omp-task.c2
-rw-r--r--gdb/testsuite/gdb.threads/omp-task.exp2
-rw-r--r--gdb/testsuite/gdb.threads/pending-fork-event-detach-ns.c2
-rw-r--r--gdb/testsuite/gdb.threads/pending-fork-event-detach-ns.exp4
-rw-r--r--gdb/testsuite/gdb.threads/pending-fork-event-detach-touch-file.c2
-rw-r--r--gdb/testsuite/gdb.threads/pending-fork-event-detach.c2
-rw-r--r--gdb/testsuite/gdb.threads/pending-fork-event-detach.exp4
-rw-r--r--gdb/testsuite/gdb.threads/pending-step.c2
-rw-r--r--gdb/testsuite/gdb.threads/pending-step.exp2
-rw-r--r--gdb/testsuite/gdb.threads/print-threads.exp2
-rw-r--r--gdb/testsuite/gdb.threads/process-dies-while-detaching.c2
-rw-r--r--gdb/testsuite/gdb.threads/process-dies-while-detaching.exp2
-rw-r--r--gdb/testsuite/gdb.threads/process-dies-while-handling-bp.c2
-rw-r--r--gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp2
-rw-r--r--gdb/testsuite/gdb.threads/process-exit-status-is-leader-exit-status.c2
-rw-r--r--gdb/testsuite/gdb.threads/process-exit-status-is-leader-exit-status.exp2
-rw-r--r--gdb/testsuite/gdb.threads/pthread_cond_wait.c2
-rw-r--r--gdb/testsuite/gdb.threads/pthread_cond_wait.exp2
-rw-r--r--gdb/testsuite/gdb.threads/pthreads.c2
-rw-r--r--gdb/testsuite/gdb.threads/pthreads.exp2
-rw-r--r--gdb/testsuite/gdb.threads/queue-signal.c2
-rw-r--r--gdb/testsuite/gdb.threads/queue-signal.exp2
-rw-r--r--gdb/testsuite/gdb.threads/reconnect-signal.c2
-rw-r--r--gdb/testsuite/gdb.threads/reconnect-signal.exp2
-rw-r--r--gdb/testsuite/gdb.threads/schedlock-new-thread.c2
-rw-r--r--gdb/testsuite/gdb.threads/schedlock-new-thread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/schedlock-thread-exit.c2
-rw-r--r--gdb/testsuite/gdb.threads/schedlock-thread-exit.exp2
-rw-r--r--gdb/testsuite/gdb.threads/schedlock.c2
-rw-r--r--gdb/testsuite/gdb.threads/schedlock.exp2
-rw-r--r--gdb/testsuite/gdb.threads/siginfo-threads.c2
-rw-r--r--gdb/testsuite/gdb.threads/siginfo-threads.exp2
-rw-r--r--gdb/testsuite/gdb.threads/signal-command-handle-nopass.c2
-rw-r--r--gdb/testsuite/gdb.threads/signal-command-handle-nopass.exp2
-rw-r--r--gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.c2
-rw-r--r--gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp2
-rw-r--r--gdb/testsuite/gdb.threads/signal-delivered-right-thread.c2
-rw-r--r--gdb/testsuite/gdb.threads/signal-delivered-right-thread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/signal-sigtrap.c2
-rw-r--r--gdb/testsuite/gdb.threads/signal-sigtrap.exp2
-rw-r--r--gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.c2
-rw-r--r--gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/sigstep-threads.c2
-rw-r--r--gdb/testsuite/gdb.threads/sigstep-threads.exp2
-rw-r--r--gdb/testsuite/gdb.threads/sigthread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/slow-waitpid.c2
-rw-r--r--gdb/testsuite/gdb.threads/staticthreads.c2
-rw-r--r--gdb/testsuite/gdb.threads/staticthreads.exp2
-rw-r--r--gdb/testsuite/gdb.threads/step-N-all-progress.c2
-rw-r--r--gdb/testsuite/gdb.threads/step-N-all-progress.exp2
-rw-r--r--gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.c2
-rw-r--r--gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp2
-rw-r--r--gdb/testsuite/gdb.threads/step-over-exec-execd.c2
-rw-r--r--gdb/testsuite/gdb.threads/step-over-exec.c2
-rw-r--r--gdb/testsuite/gdb.threads/step-over-exec.exp2
-rw-r--r--gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.c2
-rw-r--r--gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.exp2
-rw-r--r--gdb/testsuite/gdb.threads/step-over-thread-exit-while-stop-all-threads.c2
-rw-r--r--gdb/testsuite/gdb.threads/step-over-thread-exit-while-stop-all-threads.exp2
-rw-r--r--gdb/testsuite/gdb.threads/step-over-thread-exit.c2
-rw-r--r--gdb/testsuite/gdb.threads/step-over-thread-exit.exp2
-rw-r--r--gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.c2
-rw-r--r--gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.exp2
-rw-r--r--gdb/testsuite/gdb.threads/stepi-over-clone.c2
-rw-r--r--gdb/testsuite/gdb.threads/stepi-over-clone.exp2
-rw-r--r--gdb/testsuite/gdb.threads/stepi-random-signal.c2
-rw-r--r--gdb/testsuite/gdb.threads/stepi-random-signal.exp2
-rw-r--r--gdb/testsuite/gdb.threads/stop-with-handle.c2
-rw-r--r--gdb/testsuite/gdb.threads/stop-with-handle.exp2
-rw-r--r--gdb/testsuite/gdb.threads/switch-threads.c2
-rw-r--r--gdb/testsuite/gdb.threads/switch-threads.exp2
-rw-r--r--gdb/testsuite/gdb.threads/thread-bp-deleted.c2
-rw-r--r--gdb/testsuite/gdb.threads/thread-bp-deleted.exp4
-rw-r--r--gdb/testsuite/gdb.threads/thread-execl.c12
-rw-r--r--gdb/testsuite/gdb.threads/thread-execl.exp2
-rw-r--r--gdb/testsuite/gdb.threads/thread-find.exp2
-rw-r--r--gdb/testsuite/gdb.threads/thread-specific-bp.c2
-rw-r--r--gdb/testsuite/gdb.threads/thread-specific-bp.exp2
-rw-r--r--gdb/testsuite/gdb.threads/thread-specific.c2
-rw-r--r--gdb/testsuite/gdb.threads/thread-specific.exp2
-rw-r--r--gdb/testsuite/gdb.threads/thread-unwindonsignal.exp2
-rw-r--r--gdb/testsuite/gdb.threads/thread_check.c2
-rw-r--r--gdb/testsuite/gdb.threads/thread_check.exp2
-rw-r--r--gdb/testsuite/gdb.threads/thread_events.c2
-rw-r--r--gdb/testsuite/gdb.threads/thread_events.exp2
-rw-r--r--gdb/testsuite/gdb.threads/threadapply.c2
-rw-r--r--gdb/testsuite/gdb.threads/threadapply.exp8
-rw-r--r--gdb/testsuite/gdb.threads/threadcrash.c2
-rw-r--r--gdb/testsuite/gdb.threads/threadcrash.exp2
-rw-r--r--gdb/testsuite/gdb.threads/threads-after-exec.c2
-rw-r--r--gdb/testsuite/gdb.threads/threads-after-exec.exp2
-rw-r--r--gdb/testsuite/gdb.threads/threxit-hop-specific.c2
-rw-r--r--gdb/testsuite/gdb.threads/threxit-hop-specific.exp2
-rw-r--r--gdb/testsuite/gdb.threads/tid-reuse.c2
-rw-r--r--gdb/testsuite/gdb.threads/tid-reuse.exp2
-rw-r--r--gdb/testsuite/gdb.threads/tls-core.c2
-rw-r--r--gdb/testsuite/gdb.threads/tls-core.exp2
-rw-r--r--gdb/testsuite/gdb.threads/tls-nodebug-pie.c2
-rw-r--r--gdb/testsuite/gdb.threads/tls-nodebug-pie.exp2
-rw-r--r--gdb/testsuite/gdb.threads/tls-nodebug.exp2
-rw-r--r--gdb/testsuite/gdb.threads/tls-sepdebug-main.c2
-rw-r--r--gdb/testsuite/gdb.threads/tls-sepdebug-shared.c2
-rw-r--r--gdb/testsuite/gdb.threads/tls-sepdebug.exp2
-rw-r--r--gdb/testsuite/gdb.threads/tls-shared.exp2
-rw-r--r--gdb/testsuite/gdb.threads/tls-so_extern.c2
-rw-r--r--gdb/testsuite/gdb.threads/tls-so_extern.exp2
-rw-r--r--gdb/testsuite/gdb.threads/tls-so_extern_main.c2
-rw-r--r--gdb/testsuite/gdb.threads/tls-var-main.c2
-rw-r--r--gdb/testsuite/gdb.threads/tls-var.c2
-rw-r--r--gdb/testsuite/gdb.threads/tls-var.exp2
-rw-r--r--gdb/testsuite/gdb.threads/tls.exp4
-rw-r--r--gdb/testsuite/gdb.threads/tls2.c2
-rw-r--r--gdb/testsuite/gdb.threads/vfork-follow-child-exec.c2
-rw-r--r--gdb/testsuite/gdb.threads/vfork-follow-child-exec.exp4
-rw-r--r--gdb/testsuite/gdb.threads/vfork-follow-child-exit.c2
-rw-r--r--gdb/testsuite/gdb.threads/vfork-follow-child-exit.exp4
-rw-r--r--gdb/testsuite/gdb.threads/vfork-multi-inferior-sleep.c2
-rw-r--r--gdb/testsuite/gdb.threads/vfork-multi-inferior.c2
-rw-r--r--gdb/testsuite/gdb.threads/vfork-multi-inferior.exp6
-rw-r--r--gdb/testsuite/gdb.threads/vfork-multi-thread.c2
-rw-r--r--gdb/testsuite/gdb.threads/vfork-multi-thread.exp4
-rw-r--r--gdb/testsuite/gdb.threads/watchpoint-fork-child.c2
-rw-r--r--gdb/testsuite/gdb.threads/watchpoint-fork-mt.c2
-rw-r--r--gdb/testsuite/gdb.threads/watchpoint-fork-parent.c2
-rw-r--r--gdb/testsuite/gdb.threads/watchpoint-fork-st.c2
-rw-r--r--gdb/testsuite/gdb.threads/watchpoint-fork.exp4
-rw-r--r--gdb/testsuite/gdb.threads/watchpoint-fork.h2
-rw-r--r--gdb/testsuite/gdb.threads/watchthreads-reorder.c2
-rw-r--r--gdb/testsuite/gdb.threads/watchthreads-reorder.exp2
-rw-r--r--gdb/testsuite/gdb.threads/watchthreads.c2
-rw-r--r--gdb/testsuite/gdb.threads/watchthreads.exp2
-rw-r--r--gdb/testsuite/gdb.threads/watchthreads2.c2
-rw-r--r--gdb/testsuite/gdb.threads/watchthreads2.exp2
-rw-r--r--gdb/testsuite/gdb.threads/wp-replication.c2
-rw-r--r--gdb/testsuite/gdb.threads/wp-replication.exp2
-rw-r--r--gdb/testsuite/gdb.trace/actions-changed.c2
-rw-r--r--gdb/testsuite/gdb.trace/actions-changed.exp2
-rw-r--r--gdb/testsuite/gdb.trace/actions.c2
-rw-r--r--gdb/testsuite/gdb.trace/actions.exp2
-rw-r--r--gdb/testsuite/gdb.trace/ax.exp2
-rw-r--r--gdb/testsuite/gdb.trace/backtrace.exp2
-rw-r--r--gdb/testsuite/gdb.trace/basic-libipa.c2
-rw-r--r--gdb/testsuite/gdb.trace/basic-libipa.exp4
-rw-r--r--gdb/testsuite/gdb.trace/change-loc-1.c2
-rw-r--r--gdb/testsuite/gdb.trace/change-loc-2.c2
-rw-r--r--gdb/testsuite/gdb.trace/change-loc.c2
-rw-r--r--gdb/testsuite/gdb.trace/change-loc.exp4
-rw-r--r--gdb/testsuite/gdb.trace/change-loc.h2
-rw-r--r--gdb/testsuite/gdb.trace/circ.c2
-rw-r--r--gdb/testsuite/gdb.trace/circ.exp2
-rw-r--r--gdb/testsuite/gdb.trace/collection.c2
-rw-r--r--gdb/testsuite/gdb.trace/collection.exp2
-rw-r--r--gdb/testsuite/gdb.trace/deltrace.exp2
-rw-r--r--gdb/testsuite/gdb.trace/disconnected-tracing.c2
-rw-r--r--gdb/testsuite/gdb.trace/disconnected-tracing.exp2
-rw-r--r--gdb/testsuite/gdb.trace/entry-values.c2
-rw-r--r--gdb/testsuite/gdb.trace/entry-values.exp2
-rw-r--r--gdb/testsuite/gdb.trace/ftrace-lock.c2
-rw-r--r--gdb/testsuite/gdb.trace/ftrace-lock.exp2
-rw-r--r--gdb/testsuite/gdb.trace/ftrace.c2
-rw-r--r--gdb/testsuite/gdb.trace/ftrace.exp2
-rw-r--r--gdb/testsuite/gdb.trace/infotrace.exp2
-rw-r--r--gdb/testsuite/gdb.trace/mi-trace-frame-collected.exp2
-rw-r--r--gdb/testsuite/gdb.trace/mi-trace-save.exp2
-rw-r--r--gdb/testsuite/gdb.trace/mi-trace-unavailable.exp2
-rw-r--r--gdb/testsuite/gdb.trace/mi-traceframe-changed.exp2
-rw-r--r--gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp2
-rw-r--r--gdb/testsuite/gdb.trace/mi-tsv-changed.exp2
-rw-r--r--gdb/testsuite/gdb.trace/no-attach-trace.c2
-rw-r--r--gdb/testsuite/gdb.trace/no-attach-trace.exp2
-rw-r--r--gdb/testsuite/gdb.trace/packetlen.exp2
-rw-r--r--gdb/testsuite/gdb.trace/passc-dyn.exp2
-rw-r--r--gdb/testsuite/gdb.trace/passcount.exp2
-rw-r--r--gdb/testsuite/gdb.trace/pending.c2
-rw-r--r--gdb/testsuite/gdb.trace/pending.exp2
-rw-r--r--gdb/testsuite/gdb.trace/pendshr1.c2
-rw-r--r--gdb/testsuite/gdb.trace/pendshr2.c2
-rw-r--r--gdb/testsuite/gdb.trace/pr16508.exp2
-rw-r--r--gdb/testsuite/gdb.trace/qtro.c2
-rw-r--r--gdb/testsuite/gdb.trace/qtro.exp2
-rw-r--r--gdb/testsuite/gdb.trace/range-stepping.c2
-rw-r--r--gdb/testsuite/gdb.trace/range-stepping.exp2
-rw-r--r--gdb/testsuite/gdb.trace/read-memory.c2
-rw-r--r--gdb/testsuite/gdb.trace/read-memory.exp2
-rw-r--r--gdb/testsuite/gdb.trace/report.exp2
-rw-r--r--gdb/testsuite/gdb.trace/save-trace.exp2
-rw-r--r--gdb/testsuite/gdb.trace/signal.c2
-rw-r--r--gdb/testsuite/gdb.trace/signal.exp2
-rw-r--r--gdb/testsuite/gdb.trace/stap-trace.c2
-rw-r--r--gdb/testsuite/gdb.trace/stap-trace.exp2
-rw-r--r--gdb/testsuite/gdb.trace/status-stop.c2
-rw-r--r--gdb/testsuite/gdb.trace/status-stop.exp2
-rw-r--r--gdb/testsuite/gdb.trace/strace.c2
-rw-r--r--gdb/testsuite/gdb.trace/strace.exp2
-rw-r--r--gdb/testsuite/gdb.trace/tfile.c2
-rw-r--r--gdb/testsuite/gdb.trace/tfile.exp2
-rw-r--r--gdb/testsuite/gdb.trace/tfind.exp2
-rw-r--r--gdb/testsuite/gdb.trace/trace-break.c2
-rw-r--r--gdb/testsuite/gdb.trace/trace-break.exp2
-rw-r--r--gdb/testsuite/gdb.trace/trace-buffer-size.c2
-rw-r--r--gdb/testsuite/gdb.trace/trace-buffer-size.exp2
-rw-r--r--gdb/testsuite/gdb.trace/trace-common.h2
-rw-r--r--gdb/testsuite/gdb.trace/trace-condition.c2
-rw-r--r--gdb/testsuite/gdb.trace/trace-condition.exp2
-rw-r--r--gdb/testsuite/gdb.trace/trace-enable-disable.c2
-rw-r--r--gdb/testsuite/gdb.trace/trace-enable-disable.exp2
-rw-r--r--gdb/testsuite/gdb.trace/trace-mt.c2
-rw-r--r--gdb/testsuite/gdb.trace/trace-mt.exp2
-rw-r--r--gdb/testsuite/gdb.trace/trace-unavailable.c2
-rw-r--r--gdb/testsuite/gdb.trace/tracecmd.exp2
-rw-r--r--gdb/testsuite/gdb.trace/tracefile-pseudo-reg.c2
-rw-r--r--gdb/testsuite/gdb.trace/tracefile-pseudo-reg.exp2
-rw-r--r--gdb/testsuite/gdb.trace/tspeed.c2
-rw-r--r--gdb/testsuite/gdb.trace/tspeed.exp4
-rw-r--r--gdb/testsuite/gdb.trace/tstatus.exp2
-rw-r--r--gdb/testsuite/gdb.trace/tsv.exp2
-rw-r--r--gdb/testsuite/gdb.trace/unavailable-dwarf-piece.c2
-rw-r--r--gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp2
-rw-r--r--gdb/testsuite/gdb.trace/unavailable.cc2
-rw-r--r--gdb/testsuite/gdb.trace/unavailable.exp2
-rw-r--r--gdb/testsuite/gdb.trace/while-dyn.exp2
-rw-r--r--gdb/testsuite/gdb.trace/while-stepping.exp2
-rw-r--r--gdb/testsuite/gdb.tui/basic.exp2
-rw-r--r--gdb/testsuite/gdb.tui/break.exp2
-rw-r--r--gdb/testsuite/gdb.tui/color-prompt.exp2
-rw-r--r--gdb/testsuite/gdb.tui/compact-source.exp2
-rw-r--r--gdb/testsuite/gdb.tui/completion.exp2
-rw-r--r--gdb/testsuite/gdb.tui/corefile-run.exp4
-rw-r--r--gdb/testsuite/gdb.tui/empty.exp2
-rw-r--r--gdb/testsuite/gdb.tui/flush-after-run.c54
-rw-r--r--gdb/testsuite/gdb.tui/flush-after-run.exp66
-rw-r--r--gdb/testsuite/gdb.tui/info-win.exp2
-rw-r--r--gdb/testsuite/gdb.tui/list-before.exp2
-rw-r--r--gdb/testsuite/gdb.tui/list.exp2
-rw-r--r--gdb/testsuite/gdb.tui/long-prompt.exp2
-rw-r--r--gdb/testsuite/gdb.tui/main-2.exp2
-rw-r--r--gdb/testsuite/gdb.tui/main-one-line.c2
-rw-r--r--gdb/testsuite/gdb.tui/main.exp2
-rw-r--r--gdb/testsuite/gdb.tui/narrow.exp2
-rw-r--r--gdb/testsuite/gdb.tui/new-layout.exp2
-rw-r--r--gdb/testsuite/gdb.tui/pr30056.exp6
-rw-r--r--gdb/testsuite/gdb.tui/regs.exp2
-rw-r--r--gdb/testsuite/gdb.tui/reread.exp2
-rw-r--r--gdb/testsuite/gdb.tui/resize-2.exp2
-rw-r--r--gdb/testsuite/gdb.tui/resize-3-foo.c24
-rw-r--r--gdb/testsuite/gdb.tui/resize-3-main.c24
-rw-r--r--gdb/testsuite/gdb.tui/resize-3.exp73
-rw-r--r--gdb/testsuite/gdb.tui/resize-one-line.exp2
-rw-r--r--gdb/testsuite/gdb.tui/resize.exp2
-rw-r--r--gdb/testsuite/gdb.tui/scroll.exp2
-rw-r--r--gdb/testsuite/gdb.tui/secondary-prompt.exp2
-rw-r--r--gdb/testsuite/gdb.tui/single-key-2.exp2
-rw-r--r--gdb/testsuite/gdb.tui/single-key.exp2
-rw-r--r--gdb/testsuite/gdb.tui/small-term.exp2
-rw-r--r--gdb/testsuite/gdb.tui/tui-disasm-long-lines.c2
-rw-r--r--gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp2
-rw-r--r--gdb/testsuite/gdb.tui/tui-disasm-styling.exp65
-rw-r--r--gdb/testsuite/gdb.tui/tui-focus.c2
-rw-r--r--gdb/testsuite/gdb.tui/tui-focus.exp4
-rw-r--r--gdb/testsuite/gdb.tui/tui-init-source.c47
-rw-r--r--gdb/testsuite/gdb.tui/tui-init-source.exp41
-rw-r--r--gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.S2
-rw-r--r--gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.exp2
-rw-r--r--gdb/testsuite/gdb.tui/tui-layout-asm.exp108
-rw-r--r--gdb/testsuite/gdb.tui/tui-layout.c2
-rw-r--r--gdb/testsuite/gdb.tui/tui-layout.exp2
-rw-r--r--gdb/testsuite/gdb.tui/tui-missing-src.exp2
-rw-r--r--gdb/testsuite/gdb.tui/tui-nl-filtered-output.exp2
-rw-r--r--gdb/testsuite/gdb.tui/tuiterm-2.exp2
-rw-r--r--gdb/testsuite/gdb.tui/tuiterm.exp2
-rw-r--r--gdb/testsuite/gdb.tui/winheight.exp2
-rw-r--r--gdb/testsuite/gdb.tui/winwidth.exp2
-rw-r--r--gdb/testsuite/gdb.tui/wrap-line.exp2
-rw-r--r--gdb/testsuite/gdb.xml/bad-include.xml2
-rw-r--r--gdb/testsuite/gdb.xml/maint-xml-dump.exp2
-rw-r--r--gdb/testsuite/gdb.xml/maint_print_struct.exp2
-rw-r--r--gdb/testsuite/gdb.xml/maint_print_struct.xml2
-rw-r--r--gdb/testsuite/gdb.xml/tdesc-arch.exp2
-rw-r--r--gdb/testsuite/gdb.xml/tdesc-errors.exp2
-rw-r--r--gdb/testsuite/gdb.xml/tdesc-regs.exp2
-rw-r--r--gdb/testsuite/gdb.xml/tdesc-reload.c2
-rw-r--r--gdb/testsuite/gdb.xml/tdesc-reload.exp2
-rw-r--r--gdb/testsuite/gdb.xml/tdesc-xinclude.exp4
-rw-r--r--gdb/testsuite/lib/aarch64-scalable.exp2
-rw-r--r--gdb/testsuite/lib/aarch64-test-sme.c2
-rw-r--r--gdb/testsuite/lib/aarch64-test-sve.c2
-rw-r--r--gdb/testsuite/lib/aarch64.exp2
-rw-r--r--gdb/testsuite/lib/ada.exp71
-rw-r--r--gdb/testsuite/lib/append_gdb_boards_dir.exp2
-rw-r--r--gdb/testsuite/lib/attributes.h2
-rw-r--r--gdb/testsuite/lib/build-piece.exp2
-rw-r--r--gdb/testsuite/lib/cache.exp2
-rw-r--r--gdb/testsuite/lib/check-test-names.exp2
-rw-r--r--gdb/testsuite/lib/cl_util.c2
-rw-r--r--gdb/testsuite/lib/cl_util.h2
-rw-r--r--gdb/testsuite/lib/compile-support.exp5
-rw-r--r--gdb/testsuite/lib/compiler.F902
-rw-r--r--gdb/testsuite/lib/compiler.c2
-rwxr-xr-xgdb/testsuite/lib/compiler.cc2
-rw-r--r--gdb/testsuite/lib/completion-support.exp2
-rw-r--r--gdb/testsuite/lib/cp-support.exp2
-rw-r--r--gdb/testsuite/lib/d-support.exp2
-rw-r--r--gdb/testsuite/lib/dap-support.exp2
-rw-r--r--gdb/testsuite/lib/data-structures.exp2
-rw-r--r--gdb/testsuite/lib/debuginfod-support.exp2
-rwxr-xr-xgdb/testsuite/lib/dg-add-core-file-count.sh2
-rw-r--r--gdb/testsuite/lib/dtrace.exp2
-rw-r--r--gdb/testsuite/lib/dwarf.exp209
-rw-r--r--gdb/testsuite/lib/fortran.exp2
-rw-r--r--gdb/testsuite/lib/future.exp2
-rw-r--r--gdb/testsuite/lib/gdb-guile.exp2
-rw-r--r--gdb/testsuite/lib/gdb-python.exp23
-rw-r--r--gdb/testsuite/lib/gdb-utils.exp7
-rw-r--r--gdb/testsuite/lib/gdb.exp262
-rw-r--r--gdb/testsuite/lib/gdbserver-support.exp4
-rw-r--r--gdb/testsuite/lib/gen-perf-test.exp2
-rw-r--r--gdb/testsuite/lib/gnat_debug_info_test.adb15
-rw-r--r--gdb/testsuite/lib/go.exp2
-rw-r--r--gdb/testsuite/lib/jit-elf-helpers.exp2
-rw-r--r--gdb/testsuite/lib/memory.exp2
-rw-r--r--gdb/testsuite/lib/mi-support.exp71
-rw-r--r--gdb/testsuite/lib/my-syscalls.S2
-rw-r--r--gdb/testsuite/lib/my-syscalls.h2
-rwxr-xr-xgdb/testsuite/lib/notty-wrap2
-rw-r--r--gdb/testsuite/lib/objc.exp2
-rw-r--r--gdb/testsuite/lib/opencl.exp2
-rw-r--r--gdb/testsuite/lib/opencl_hostapp.c2
-rw-r--r--gdb/testsuite/lib/pascal.exp2
-rwxr-xr-xgdb/testsuite/lib/pdtrace.in2
-rw-r--r--gdb/testsuite/lib/perftest.exp2
-rw-r--r--gdb/testsuite/lib/precise-aligned-alloc.c2
-rw-r--r--gdb/testsuite/lib/prelink-support.exp35
-rw-r--r--gdb/testsuite/lib/prompt.exp4
-rw-r--r--gdb/testsuite/lib/range-stepping-support.exp2
-rw-r--r--gdb/testsuite/lib/read1.c2
-rw-r--r--gdb/testsuite/lib/rocm.exp129
-rw-r--r--gdb/testsuite/lib/rust-support.exp2
-rw-r--r--gdb/testsuite/lib/selftest-support.exp2
-rw-r--r--gdb/testsuite/lib/set_unbuffered_mode.c2
-rw-r--r--gdb/testsuite/lib/sym-info-cmds.exp2
-rw-r--r--gdb/testsuite/lib/trace-support.exp2
-rw-r--r--gdb/testsuite/lib/tuiterm.exp25
-rw-r--r--gdb/testsuite/lib/unbuffer_output.c2
-rw-r--r--gdb/testsuite/lib/valgrind.exp2
-rwxr-xr-xgdb/testsuite/make-check-all.sh3
-rwxr-xr-xgdb/testsuite/print-ts.py2
-rw-r--r--gdb/thread-fsm.h2
-rw-r--r--gdb/thread-iter.c2
-rw-r--r--gdb/thread-iter.h2
-rw-r--r--gdb/thread.c129
-rw-r--r--gdb/tic6x-linux-tdep.c2
-rw-r--r--gdb/tic6x-tdep.c2
-rw-r--r--gdb/tic6x-tdep.h2
-rw-r--r--gdb/tid-parse.c2
-rw-r--r--gdb/tid-parse.h2
-rw-r--r--gdb/tilegx-linux-nat.c2
-rw-r--r--gdb/tilegx-linux-tdep.c2
-rw-r--r--gdb/tilegx-tdep.c2
-rw-r--r--gdb/tilegx-tdep.h2
-rw-r--r--gdb/top.c8
-rw-r--r--gdb/top.h2
-rw-r--r--gdb/tracectf.c2
-rw-r--r--gdb/tracectf.h2
-rw-r--r--gdb/tracefile-tfile.c14
-rw-r--r--gdb/tracefile.c2
-rw-r--r--gdb/tracefile.h2
-rw-r--r--gdb/tracepoint.c4
-rw-r--r--gdb/tracepoint.h2
-rw-r--r--gdb/trad-frame.c2
-rw-r--r--gdb/trad-frame.h2
-rw-r--r--gdb/tramp-frame.c2
-rw-r--r--gdb/tramp-frame.h2
-rw-r--r--gdb/transform.m42
-rw-r--r--gdb/tsan-suppressions.txt2
-rw-r--r--gdb/tui/tui-command.c2
-rw-r--r--gdb/tui/tui-command.h2
-rw-r--r--gdb/tui/tui-data.c2
-rw-r--r--gdb/tui/tui-data.h2
-rw-r--r--gdb/tui/tui-disasm.c12
-rw-r--r--gdb/tui/tui-disasm.h4
-rw-r--r--gdb/tui/tui-file.c2
-rw-r--r--gdb/tui/tui-file.h2
-rw-r--r--gdb/tui/tui-hooks.c7
-rw-r--r--gdb/tui/tui-hooks.h2
-rw-r--r--gdb/tui/tui-interp.c2
-rw-r--r--gdb/tui/tui-io.c35
-rw-r--r--gdb/tui/tui-io.h2
-rw-r--r--gdb/tui/tui-layout.c6
-rw-r--r--gdb/tui/tui-layout.h7
-rw-r--r--gdb/tui/tui-location.c2
-rw-r--r--gdb/tui/tui-location.h2
-rw-r--r--gdb/tui/tui-regs.c2
-rw-r--r--gdb/tui/tui-regs.h2
-rw-r--r--gdb/tui/tui-source.c6
-rw-r--r--gdb/tui/tui-source.h4
-rw-r--r--gdb/tui/tui-status.c9
-rw-r--r--gdb/tui/tui-status.h2
-rw-r--r--gdb/tui/tui-win.c4
-rw-r--r--gdb/tui/tui-win.h2
-rw-r--r--gdb/tui/tui-wingeneral.c11
-rw-r--r--gdb/tui/tui-wingeneral.h2
-rw-r--r--gdb/tui/tui-winsource.c37
-rw-r--r--gdb/tui/tui-winsource.h4
-rw-r--r--gdb/tui/tui.c26
-rw-r--r--gdb/tui/tui.h2
-rw-r--r--gdb/type-codes.def2
-rw-r--r--gdb/type-stack.c2
-rw-r--r--gdb/type-stack.h2
-rw-r--r--gdb/typeprint.c2
-rw-r--r--gdb/typeprint.h2
-rw-r--r--gdb/ui-file.c40
-rw-r--r--gdb/ui-file.h19
-rw-r--r--gdb/ui-out.c2
-rw-r--r--gdb/ui-out.h2
-rw-r--r--gdb/ui-style.c19
-rw-r--r--gdb/ui-style.h20
-rw-r--r--gdb/ui.c2
-rw-r--r--gdb/ui.h2
-rw-r--r--gdb/unittests/array-view-selftests.c15
-rw-r--r--gdb/unittests/child-path-selftests.c2
-rw-r--r--gdb/unittests/cli-utils-selftests.c2
-rw-r--r--gdb/unittests/command-def-selftests.c7
-rw-r--r--gdb/unittests/common-utils-selftests.c2
-rw-r--r--gdb/unittests/copy_bitwise-selftests.c2
-rw-r--r--gdb/unittests/enum-flags-selftests.c2
-rw-r--r--gdb/unittests/environ-selftests.c2
-rw-r--r--gdb/unittests/filtered_iterator-selftests.c2
-rw-r--r--gdb/unittests/format_pieces-selftests.c2
-rw-r--r--gdb/unittests/frame_info_ptr-selftests.c2
-rw-r--r--gdb/unittests/function-view-selftests.c2
-rw-r--r--gdb/unittests/gdb_tilde_expand-selftests.c2
-rw-r--r--gdb/unittests/gmp-utils-selftests.c8
-rw-r--r--gdb/unittests/intrusive_list-selftests.c8
-rw-r--r--gdb/unittests/lookup_name_info-selftests.c7
-rw-r--r--gdb/unittests/main-thread-selftests.c2
-rw-r--r--gdb/unittests/memory-map-selftests.c2
-rw-r--r--gdb/unittests/memrange-selftests.c2
-rw-r--r--gdb/unittests/mkdir-recursive-selftests.c2
-rw-r--r--gdb/unittests/observable-selftests.c2
-rw-r--r--gdb/unittests/offset-type-selftests.c2
-rw-r--r--gdb/unittests/packed-selftests.c2
-rw-r--r--gdb/unittests/parallel-for-selftests.c139
-rw-r--r--gdb/unittests/parse-connection-spec-selftests.c2
-rw-r--r--gdb/unittests/path-join-selftests.c2
-rw-r--r--gdb/unittests/ptid-selftests.c2
-rw-r--r--gdb/unittests/remote-arg-selftests.c166
-rw-r--r--gdb/unittests/rsp-low-selftests.c4
-rw-r--r--gdb/unittests/scoped_fd-selftests.c2
-rw-r--r--gdb/unittests/scoped_ignore_signal-selftests.c2
-rw-r--r--gdb/unittests/scoped_mmap-selftests.c2
-rw-r--r--gdb/unittests/scoped_restore-selftests.c2
-rw-r--r--gdb/unittests/search-memory-selftests.c2
-rw-r--r--gdb/unittests/style-selftests.c2
-rw-r--r--gdb/unittests/tracepoint-selftests.c2
-rw-r--r--gdb/unittests/tui-selftests.c2
-rw-r--r--gdb/unittests/ui-file-selftests.c2
-rw-r--r--gdb/unittests/unique_xmalloc_ptr_char.c2
-rw-r--r--gdb/unittests/unpack-selftests.c2
-rw-r--r--gdb/unittests/utils-selftests.c59
-rw-r--r--gdb/unittests/vec-utils-selftests.c2
-rw-r--r--gdb/unittests/xml-utils-selftests.c2
-rw-r--r--gdb/unwind_stop_reasons.def2
-rw-r--r--gdb/user-regs.c2
-rw-r--r--gdb/user-regs.h2
-rw-r--r--gdb/utils.c107
-rw-r--r--gdb/utils.h7
-rw-r--r--gdb/v850-tdep.c2
-rw-r--r--gdb/valarith.c2
-rw-r--r--gdb/valops.c30
-rw-r--r--gdb/valprint.c2
-rw-r--r--gdb/valprint.h2
-rw-r--r--gdb/value.c86
-rw-r--r--gdb/value.h18
-rw-r--r--gdb/varobj-iter.h2
-rw-r--r--gdb/varobj.c4
-rw-r--r--gdb/varobj.h2
-rw-r--r--gdb/vax-bsd-nat.c2
-rw-r--r--gdb/vax-netbsd-tdep.c2
-rw-r--r--gdb/vax-tdep.c4
-rw-r--r--gdb/vax-tdep.h2
-rw-r--r--gdb/windows-nat.c11
-rw-r--r--gdb/windows-nat.h6
-rw-r--r--gdb/windows-tdep.c5
-rw-r--r--gdb/windows-tdep.h2
-rw-r--r--gdb/x86-bsd-nat.c2
-rw-r--r--gdb/x86-bsd-nat.h2
-rw-r--r--gdb/x86-fbsd-nat.c2
-rw-r--r--gdb/x86-fbsd-nat.h2
-rw-r--r--gdb/x86-gnu-nat.c (renamed from gdb/i386-gnu-nat.c)173
-rw-r--r--gdb/x86-linux-nat.c2
-rw-r--r--gdb/x86-linux-nat.h2
-rw-r--r--gdb/x86-nat.c2
-rw-r--r--gdb/x86-nat.h2
-rw-r--r--gdb/x86-tdep.c2
-rw-r--r--gdb/x86-tdep.h2
-rw-r--r--gdb/xcoffread.c7
-rw-r--r--gdb/xcoffread.h2
-rw-r--r--gdb/xml-builtin.h2
-rw-r--r--gdb/xml-support.c2
-rw-r--r--gdb/xml-support.h2
-rw-r--r--gdb/xml-syscall.c4
-rw-r--r--gdb/xml-syscall.h2
-rw-r--r--gdb/xml-tdesc.c8
-rw-r--r--gdb/xml-tdesc.h2
-rw-r--r--gdb/xstormy16-tdep.c4
-rw-r--r--gdb/xtensa-config.c2
-rw-r--r--gdb/xtensa-linux-nat.c2
-rw-r--r--gdb/xtensa-linux-tdep.c2
-rw-r--r--gdb/xtensa-tdep.c4
-rw-r--r--gdb/xtensa-tdep.h2
-rw-r--r--gdb/xtensa-xtregs.c2
-rw-r--r--gdb/yy-remap.h2
-rw-r--r--gdb/z80-tdep.c8
-rw-r--r--gdb/z80-tdep.h2
-rw-r--r--gdbserver/.dir-locals.el2
-rw-r--r--gdbserver/Makefile.in3
-rw-r--r--gdbserver/ax-result-types.def2
-rw-r--r--gdbserver/ax.cc2
-rw-r--r--gdbserver/ax.h2
-rwxr-xr-xgdbserver/configure40
-rw-r--r--gdbserver/configure.ac4
-rw-r--r--gdbserver/configure.srv7
-rw-r--r--gdbserver/debug.cc2
-rw-r--r--gdbserver/debug.h2
-rw-r--r--gdbserver/dll.cc2
-rw-r--r--gdbserver/dll.h2
-rw-r--r--gdbserver/fork-child.cc2
-rw-r--r--gdbserver/gdb_proc_service.h2
-rw-r--r--gdbserver/gdbreplay.cc4
-rw-r--r--gdbserver/gdbthread.h2
-rw-r--r--gdbserver/hostio.cc64
-rw-r--r--gdbserver/hostio.h2
-rw-r--r--gdbserver/i387-fp.cc6
-rw-r--r--gdbserver/i387-fp.h2
-rw-r--r--gdbserver/inferiors.cc2
-rw-r--r--gdbserver/inferiors.h7
-rw-r--r--gdbserver/linux-aarch32-low.cc2
-rw-r--r--gdbserver/linux-aarch32-low.h2
-rw-r--r--gdbserver/linux-aarch32-tdesc.cc2
-rw-r--r--gdbserver/linux-aarch32-tdesc.h2
-rw-r--r--gdbserver/linux-aarch64-ipa.cc2
-rw-r--r--gdbserver/linux-aarch64-low.cc2
-rw-r--r--gdbserver/linux-aarch64-tdesc.cc6
-rw-r--r--gdbserver/linux-aarch64-tdesc.h2
-rw-r--r--gdbserver/linux-amd64-ipa.cc2
-rw-r--r--gdbserver/linux-arc-low.cc4
-rw-r--r--gdbserver/linux-arm-low.cc2
-rw-r--r--gdbserver/linux-arm-tdesc.cc2
-rw-r--r--gdbserver/linux-arm-tdesc.h2
-rw-r--r--gdbserver/linux-csky-low.cc2
-rw-r--r--gdbserver/linux-i386-ipa.cc2
-rw-r--r--gdbserver/linux-ia64-low.cc2
-rw-r--r--gdbserver/linux-loongarch-low.cc2
-rw-r--r--gdbserver/linux-low.cc8
-rw-r--r--gdbserver/linux-low.h4
-rw-r--r--gdbserver/linux-m68k-low.cc2
-rw-r--r--gdbserver/linux-microblaze-low.cc245
-rw-r--r--gdbserver/linux-mips-low.cc2
-rw-r--r--gdbserver/linux-or1k-low.cc2
-rw-r--r--gdbserver/linux-ppc-ipa.cc2
-rw-r--r--gdbserver/linux-ppc-low.cc10
-rw-r--r--gdbserver/linux-ppc-tdesc-init.h2
-rw-r--r--gdbserver/linux-riscv-low.cc2
-rw-r--r--gdbserver/linux-s390-ipa.cc2
-rw-r--r--gdbserver/linux-s390-low.cc2
-rw-r--r--gdbserver/linux-s390-tdesc.h2
-rw-r--r--gdbserver/linux-sh-low.cc2
-rw-r--r--gdbserver/linux-sparc-low.cc4
-rw-r--r--gdbserver/linux-tic6x-low.cc2
-rw-r--r--gdbserver/linux-x86-low.cc2
-rw-r--r--gdbserver/linux-x86-tdesc.cc2
-rw-r--r--gdbserver/linux-xtensa-low.cc2
-rw-r--r--gdbserver/mem-break.cc2
-rw-r--r--gdbserver/mem-break.h2
-rw-r--r--gdbserver/netbsd-aarch64-low.cc2
-rw-r--r--gdbserver/netbsd-amd64-low.cc2
-rw-r--r--gdbserver/netbsd-i386-low.cc2
-rw-r--r--gdbserver/netbsd-low.cc7
-rw-r--r--gdbserver/netbsd-low.h2
-rw-r--r--gdbserver/notif.cc6
-rw-r--r--gdbserver/notif.h2
-rw-r--r--gdbserver/proc-service.cc2
-rw-r--r--gdbserver/proc-service.list2
-rw-r--r--gdbserver/regcache.cc7
-rw-r--r--gdbserver/regcache.h2
-rw-r--r--gdbserver/remote-utils.cc2
-rw-r--r--gdbserver/remote-utils.h2
-rw-r--r--gdbserver/server.cc50
-rw-r--r--gdbserver/server.h2
-rw-r--r--gdbserver/symbol.cc2
-rw-r--r--gdbserver/target.cc17
-rw-r--r--gdbserver/target.h21
-rw-r--r--gdbserver/tdesc.cc2
-rw-r--r--gdbserver/tdesc.h2
-rw-r--r--gdbserver/thread-db.cc2
-rw-r--r--gdbserver/tracepoint.cc10
-rw-r--r--gdbserver/tracepoint.h2
-rw-r--r--gdbserver/utils.cc4
-rw-r--r--gdbserver/utils.h2
-rw-r--r--gdbserver/win32-i386-low.cc2
-rw-r--r--gdbserver/win32-low.cc2
-rw-r--r--gdbserver/win32-low.h2
-rw-r--r--gdbserver/x86-low.cc2
-rw-r--r--gdbserver/x86-low.h2
-rw-r--r--gdbserver/x86-tdesc.h2
-rw-r--r--gdbserver/xtensa-xtregs.cc22
-rw-r--r--gdbsupport/.dir-locals.el2
-rw-r--r--gdbsupport/Makefile.am3
-rw-r--r--gdbsupport/Makefile.in16
-rw-r--r--gdbsupport/agent.cc2
-rw-r--r--gdbsupport/agent.h2
-rw-r--r--gdbsupport/alt-stack.h2
-rw-r--r--gdbsupport/array-view.h11
-rw-r--r--gdbsupport/ax.def2
-rw-r--r--gdbsupport/block-signals.h2
-rw-r--r--gdbsupport/break-common.h2
-rw-r--r--gdbsupport/btrace-common.cc2
-rw-r--r--gdbsupport/btrace-common.h2
-rw-r--r--gdbsupport/buildargv.h2
-rw-r--r--gdbsupport/byte-vector.h2
-rw-r--r--gdbsupport/check-defines.el2
-rw-r--r--gdbsupport/cleanups.cc2
-rw-r--r--gdbsupport/cleanups.h2
-rw-r--r--gdbsupport/common-debug.cc2
-rw-r--r--gdbsupport/common-debug.h6
-rw-r--r--gdbsupport/common-defs.h4
-rw-r--r--gdbsupport/common-exceptions.cc2
-rw-r--r--gdbsupport/common-exceptions.h2
-rw-r--r--gdbsupport/common-gdbthread.h2
-rw-r--r--gdbsupport/common-inferior.cc175
-rw-r--r--gdbsupport/common-inferior.h12
-rw-r--r--gdbsupport/common-regcache.cc2
-rw-r--r--gdbsupport/common-regcache.h2
-rw-r--r--gdbsupport/common-types.h2
-rw-r--r--gdbsupport/common-utils.cc2
-rw-r--r--gdbsupport/common-utils.h12
-rw-r--r--gdbsupport/common.m46
-rw-r--r--gdbsupport/compiler-type.m42
-rwxr-xr-xgdbsupport/configure38
-rw-r--r--gdbsupport/configure.ac2
-rwxr-xr-xgdbsupport/create-version.sh2
-rw-r--r--gdbsupport/def-vector.h2
-rw-r--r--gdbsupport/default-init-alloc.h2
-rw-r--r--gdbsupport/eintr.h2
-rw-r--r--gdbsupport/enum-flags.h2
-rw-r--r--gdbsupport/environ.cc2
-rw-r--r--gdbsupport/environ.h2
-rw-r--r--gdbsupport/errors.cc2
-rw-r--r--gdbsupport/errors.h2
-rw-r--r--gdbsupport/event-loop.cc7
-rw-r--r--gdbsupport/event-loop.h2
-rw-r--r--gdbsupport/event-pipe.cc2
-rw-r--r--gdbsupport/event-pipe.h2
-rw-r--r--gdbsupport/fileio.cc2
-rw-r--r--gdbsupport/fileio.h2
-rw-r--r--gdbsupport/filestuff.cc9
-rw-r--r--gdbsupport/filestuff.h2
-rw-r--r--gdbsupport/filtered-iterator.h2
-rw-r--r--gdbsupport/format.cc2
-rw-r--r--gdbsupport/format.h2
-rw-r--r--gdbsupport/forward-scope-exit.h2
-rw-r--r--gdbsupport/function-view.h2
-rw-r--r--gdbsupport/gdb-checked-static-cast.h2
-rw-r--r--gdbsupport/gdb-dlfcn.cc2
-rw-r--r--gdbsupport/gdb-dlfcn.h2
-rw-r--r--gdbsupport/gdb-hashtab.h2
-rw-r--r--gdbsupport/gdb-safe-ctype.h2
-rw-r--r--gdbsupport/gdb-sigmask.h2
-rw-r--r--gdbsupport/gdb-xfree.h2
-rw-r--r--gdbsupport/gdb_assert.h2
-rw-r--r--gdbsupport/gdb_binary_search.h2
-rw-r--r--gdbsupport/gdb_file.h2
-rw-r--r--gdbsupport/gdb_locale.h2
-rw-r--r--gdbsupport/gdb_obstack.cc2
-rw-r--r--gdbsupport/gdb_obstack.h2
-rw-r--r--gdbsupport/gdb_proc_service.h2
-rw-r--r--gdbsupport/gdb_ref_ptr.h2
-rw-r--r--gdbsupport/gdb_regex.cc2
-rw-r--r--gdbsupport/gdb_regex.h2
-rw-r--r--gdbsupport/gdb_select.h2
-rw-r--r--gdbsupport/gdb_setjmp.h2
-rw-r--r--gdbsupport/gdb_signals.h2
-rw-r--r--gdbsupport/gdb_splay_tree.h2
-rw-r--r--gdbsupport/gdb_sys_time.h2
-rw-r--r--gdbsupport/gdb_tilde_expand.cc6
-rw-r--r--gdbsupport/gdb_tilde_expand.h2
-rw-r--r--gdbsupport/gdb_unique_ptr.h2
-rw-r--r--gdbsupport/gdb_unlinker.h2
-rw-r--r--gdbsupport/gdb_vecs.cc2
-rw-r--r--gdbsupport/gdb_vecs.h2
-rw-r--r--gdbsupport/gdb_wait.cc2
-rw-r--r--gdbsupport/gdb_wait.h2
-rw-r--r--gdbsupport/host-defs.h2
-rw-r--r--gdbsupport/intrusive_list.h2
-rw-r--r--gdbsupport/iterator-range.h2
-rw-r--r--gdbsupport/job-control.cc2
-rw-r--r--gdbsupport/job-control.h2
-rw-r--r--gdbsupport/libiberty.m42
-rw-r--r--gdbsupport/netstuff.cc2
-rw-r--r--gdbsupport/netstuff.h2
-rw-r--r--gdbsupport/new-op.cc2
-rw-r--r--gdbsupport/next-iterator.h2
-rw-r--r--gdbsupport/observable.h2
-rw-r--r--gdbsupport/offset-type.h2
-rw-r--r--gdbsupport/osabi.cc2
-rw-r--r--gdbsupport/osabi.def2
-rw-r--r--gdbsupport/osabi.h2
-rw-r--r--gdbsupport/owning_intrusive_list.h2
-rw-r--r--gdbsupport/packed.h4
-rw-r--r--gdbsupport/parallel-for.h12
-rw-r--r--gdbsupport/pathstuff.cc2
-rw-r--r--gdbsupport/pathstuff.h2
-rw-r--r--gdbsupport/poison.h4
-rw-r--r--gdbsupport/preprocessor.h2
-rw-r--r--gdbsupport/print-utils.cc20
-rw-r--r--gdbsupport/print-utils.h32
-rw-r--r--gdbsupport/ptid.cc2
-rw-r--r--gdbsupport/ptid.h2
-rw-r--r--gdbsupport/ptrace.m42
-rw-r--r--gdbsupport/range-chain.h2
-rw-r--r--gdbsupport/refcounted-object.h2
-rw-r--r--gdbsupport/reference-to-pointer-iterator.h2
-rw-r--r--gdbsupport/remote-args.cc43
-rw-r--r--gdbsupport/remote-args.h60
-rw-r--r--gdbsupport/rsp-low.cc2
-rw-r--r--gdbsupport/rsp-low.h2
-rw-r--r--gdbsupport/run-time-clock.cc45
-rw-r--r--gdbsupport/run-time-clock.h35
-rw-r--r--gdbsupport/safe-iterator.h2
-rw-r--r--gdbsupport/safe-strerror.cc2
-rw-r--r--gdbsupport/scope-exit.h2
-rw-r--r--gdbsupport/scoped_fd.h2
-rw-r--r--gdbsupport/scoped_ignore_signal.h2
-rw-r--r--gdbsupport/scoped_ignore_sigttou.h2
-rw-r--r--gdbsupport/scoped_mmap.cc2
-rw-r--r--gdbsupport/scoped_mmap.h2
-rw-r--r--gdbsupport/scoped_restore.h2
-rw-r--r--gdbsupport/scoped_signal_handler.h8
-rw-r--r--gdbsupport/search.cc2
-rw-r--r--gdbsupport/search.h2
-rw-r--r--gdbsupport/selftest.cc4
-rw-r--r--gdbsupport/selftest.h2
-rw-r--r--gdbsupport/selftest.m42
-rw-r--r--gdbsupport/signals-state-save-restore.cc2
-rw-r--r--gdbsupport/signals-state-save-restore.h2
-rw-r--r--gdbsupport/signals.cc2
-rw-r--r--gdbsupport/string-set.h129
-rw-r--r--gdbsupport/symbol.h2
-rw-r--r--gdbsupport/task-group.cc2
-rw-r--r--gdbsupport/task-group.h2
-rw-r--r--gdbsupport/tdesc.cc2
-rw-r--r--gdbsupport/tdesc.h2
-rw-r--r--gdbsupport/thread-pool.cc2
-rw-r--r--gdbsupport/thread-pool.h2
-rw-r--r--gdbsupport/traits.h2
-rw-r--r--gdbsupport/underlying.h2
-rw-r--r--gdbsupport/unordered_dense.h16
-rw-r--r--gdbsupport/unordered_map.h2
-rw-r--r--gdbsupport/unordered_set.h2
-rw-r--r--gdbsupport/valid-expr.h2
-rw-r--r--gdbsupport/version.h2
-rw-r--r--gdbsupport/warning.m440
-rw-r--r--gdbsupport/x86-xstate.h2
-rw-r--r--gdbsupport/xml-utils.cc2
-rw-r--r--gdbsupport/xml-utils.h2
-rw-r--r--gnulib/Makefile.am2
-rw-r--r--gnulib/Makefile.gnulib.inc.in2
-rw-r--r--gnulib/Makefile.in2
-rw-r--r--gnulib/configure.ac2
-rwxr-xr-xgnulib/update-gnulib.sh2
-rw-r--r--gold/po/sr.po125
-rw-r--r--gprof/Makefile.am2
-rw-r--r--gprof/Makefile.in2
-rw-r--r--gprof/aarch64.c3
-rw-r--r--gprof/alpha.c3
-rw-r--r--gprof/basic_blocks.c22
-rw-r--r--gprof/basic_blocks.h2
-rw-r--r--gprof/bb_exit_func.c2
-rw-r--r--gprof/call_graph.c14
-rw-r--r--gprof/call_graph.h2
-rw-r--r--gprof/cg_arcs.c51
-rw-r--r--gprof/cg_arcs.h2
-rw-r--r--gprof/cg_dfn.h2
-rw-r--r--gprof/cg_print.c64
-rw-r--r--gprof/cg_print.h2
-rwxr-xr-xgprof/configure40
-rw-r--r--gprof/configure.ac17
-rw-r--r--gprof/corefile.c364
-rw-r--r--gprof/corefile.h2
-rw-r--r--gprof/gmon_io.c15
-rw-r--r--gprof/gmon_io.h3
-rw-r--r--gprof/gmon_out.h2
-rw-r--r--gprof/gprof.c28
-rw-r--r--gprof/gprof.h2
-rw-r--r--gprof/hertz.h2
-rw-r--r--gprof/hist.c45
-rw-r--r--gprof/hist.h2
-rw-r--r--gprof/i386.c3
-rw-r--r--gprof/mips.c3
-rw-r--r--gprof/search_list.c2
-rw-r--r--gprof/search_list.h2
-rw-r--r--gprof/source.c2
-rw-r--r--gprof/source.h2
-rw-r--r--gprof/sparc.c3
-rw-r--r--gprof/sym_ids.c7
-rw-r--r--gprof/sym_ids.h2
-rw-r--r--gprof/symtab.c36
-rw-r--r--gprof/symtab.h6
-rw-r--r--gprof/testsuite/Makefile.am43
-rw-r--r--gprof/testsuite/Makefile.in892
-rwxr-xr-xgprof/testsuite/tst-gmon-gprof-l.sh74
-rwxr-xr-xgprof/testsuite/tst-gmon-gprof.sh74
-rw-r--r--gprof/testsuite/tst-gmon.c53
-rw-r--r--gprof/utils.h2
-rw-r--r--gprof/vax.c3
-rw-r--r--gprofng/common/core_pcbe.c4
-rw-r--r--gprofng/common/cpu_frequency.h8
-rw-r--r--gprofng/common/cpuid.c6
-rw-r--r--gprofng/common/gp-defs.h4
-rw-r--r--gprofng/common/gp-experiment.h62
-rw-r--r--gprofng/common/hwctable.c8
-rw-r--r--gprofng/doc/gprofng_ug.texi5
-rw-r--r--gprofng/libcollector/collector.c48
-rw-r--r--gprofng/libcollector/descendants.h14
-rw-r--r--gprofng/libcollector/envmgmt.c3
-rw-r--r--gprofng/libcollector/libcol-i386-dis.c2
-rw-r--r--gprofng/libcollector/libcol_util.h2
-rw-r--r--gprofng/libcollector/linetrace.c4
-rw-r--r--gprofng/src/CallStack.cc10
-rw-r--r--gprofng/src/Dwarf.cc271
-rw-r--r--gprofng/src/Dwarf.h4
-rw-r--r--gprofng/src/DwarfLib.cc357
-rw-r--r--gprofng/src/DwarfLib.h64
-rw-r--r--gprofng/src/Elf.cc69
-rw-r--r--gprofng/src/Elf.h3
-rw-r--r--gprofng/src/LoadObject.cc20
-rw-r--r--gprofng/src/Makefile.am13
-rw-r--r--gprofng/src/Makefile.in15
-rw-r--r--gprofng/src/Stabs.cc377
-rw-r--r--gprofng/src/Stabs.h11
-rw-r--r--gprofng/src/Symbol.cc218
-rw-r--r--gprofng/src/Symbol.h84
-rw-r--r--gprofng/src/collect.h1
-rw-r--r--gprofng/src/envsets.cc10
-rw-r--r--gprofng/src/gp-archive.cc3
-rw-r--r--gprofng/src/gp-collect-app.cc5
-rw-r--r--gprofng/src/gp-display-src.cc3
-rw-r--r--gprofng/src/gp-display-text.cc3
-rw-r--r--gprofng/src/gprofng.cc3
-rw-r--r--gprofng/src/ipcio.cc5
-rw-r--r--gprofng/src/vec.h7
-rw-r--r--include/bfdlink.h3
-rw-r--r--include/bout.h192
-rw-r--r--include/coff/xcoff.h24
-rw-r--r--include/elf/aarch64.h2
-rw-r--r--include/libiberty.h22
-rw-r--r--include/opcode/aarch64.h199
-rw-r--r--include/opcode/kvx.h4
-rw-r--r--include/opcode/riscv-opc.h61
-rw-r--r--include/opcode/riscv.h44
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/NEWS17
-rw-r--r--ld/config.in6
-rwxr-xr-xld/configure293
-rw-r--r--ld/configure.ac8
-rw-r--r--ld/emulparams/aarch64elf.sh1
-rw-r--r--ld/emulparams/aarch64elf32.sh1
-rw-r--r--ld/emultempl/alphaelf.em31
-rw-r--r--ld/emultempl/emulation.em3
-rw-r--r--ld/emultempl/kvxelf.em14
-rw-r--r--ld/emultempl/pe.em63
-rw-r--r--ld/emultempl/pep.em19
-rw-r--r--ld/emultempl/ppc64elf.em5
-rw-r--r--ld/emultempl/solaris2.em2
-rw-r--r--ld/ld.h37
-rw-r--r--ld/ld.texi107
-rw-r--r--ld/ldemul.c8
-rw-r--r--ld/ldemul.h8
-rw-r--r--ld/ldlang.c86
-rw-r--r--ld/ldlex.h2
-rw-r--r--ld/ldmain.c386
-rw-r--r--ld/ldmisc.c10
-rw-r--r--ld/lexsup.c17
-rw-r--r--ld/pe-dll.c16
-rw-r--r--ld/scripttempl/avr.sc20
-rw-r--r--ld/scripttempl/pe.sc29
-rw-r--r--ld/scripttempl/pep.sc31
-rw-r--r--ld/scripttempl/v850.sc14
-rw-r--r--ld/scripttempl/v850_rh850.sc14
-rw-r--r--ld/testsuite/config/default.exp13
-rw-r--r--ld/testsuite/ld-aarch64/aarch64.ld20
-rw-r--r--ld/testsuite/ld-aarch64/gc-got-relocs.d15
-rw-r--r--ld/testsuite/ld-aarch64/gc-plt-relocs.d60
-rw-r--r--ld/testsuite/ld-aarch64/gc-relocs-257-dyn.d4
-rw-r--r--ld/testsuite/ld-aarch64/gc-relocs-257.d4
-rw-r--r--ld/testsuite/ld-aarch64/gc-tls-relocs.d14
-rw-r--r--ld/testsuite/ld-aarch64/nto-stack-note-1.d5
-rw-r--r--ld/testsuite/ld-aarch64/nto-stack-note-2.d5
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-a.d45
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-b.d14
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-far-1.d4
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-far-opt.d4
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-far.ld26
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-pac-plt-1-a.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-pac-plt-1-b.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-pac-plt-2-a.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-pac-plt-2-b.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-pac-plt-3-a.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-pac-plt-3-b.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-plt-1-a.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-plt-1-b.d8
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-plt-1-c.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-plt-3.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/bti-plt.ld25
-rw-r--r--ld/testsuite/ld-aarch64/protections/pac-plt-1-a.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/pac-plt-1-b.d6
-rw-r--r--ld/testsuite/ld-aarch64/protections/pac-plt-2.d4
-rw-r--r--ld/testsuite/ld-aarch64/relocs-ilp32.ld2
-rw-r--r--ld/testsuite/ld-aarch64/relocs.ld2
-rw-r--r--ld/testsuite/ld-aarch64/variant_pcs-now.d98
-rw-r--r--ld/testsuite/ld-aarch64/variant_pcs-r.d10
-rw-r--r--ld/testsuite/ld-aarch64/variant_pcs-shared.d98
-rw-r--r--ld/testsuite/ld-aarch64/variant_pcs.ld32
-rw-r--r--ld/testsuite/ld-arm/arm.ld2
-rw-r--r--ld/testsuite/ld-arm/arm_purecode.ld2
-rw-r--r--ld/testsuite/ld-arm/discard-unwind.ld2
-rw-r--r--ld/testsuite/ld-arm/script-type.ld4
-rw-r--r--ld/testsuite/ld-arm/unwind-1.d9
-rw-r--r--ld/testsuite/ld-arm/unwind-2.d9
-rw-r--r--ld/testsuite/ld-arm/unwind-3.d11
-rw-r--r--ld/testsuite/ld-arm/unwind-4.d14
-rw-r--r--ld/testsuite/ld-elf/elf.exp33
-rw-r--r--ld/testsuite/ld-elf/pr32690.h17
-rw-r--r--ld/testsuite/ld-elf/pr32690a.c1297
-rw-r--r--ld/testsuite/ld-elf/pr32690b.c2119
-rw-r--r--ld/testsuite/ld-elf/pr32787.d9
-rw-r--r--ld/testsuite/ld-elf/pr32787.t12
-rw-r--r--ld/testsuite/ld-elf/sec64k.exp31
-rw-r--r--ld/testsuite/ld-elf/shared.exp14
-rw-r--r--ld/testsuite/ld-elf/tbss4.d13
-rw-r--r--ld/testsuite/ld-elf/tbss4.s25
-rw-r--r--ld/testsuite/ld-elfvers/vers7.c4
-rw-r--r--ld/testsuite/ld-i386/i386.exp7
-rw-r--r--ld/testsuite/ld-i386/load4c.d4
-rw-r--r--ld/testsuite/ld-i386/load5c.d4
-rw-r--r--ld/testsuite/ld-i386/load8.d14
-rw-r--r--ld/testsuite/ld-i386/load8.s21
-rw-r--r--ld/testsuite/ld-i386/load9.s20
-rw-r--r--ld/testsuite/ld-i386/load9a.d14
-rw-r--r--ld/testsuite/ld-i386/load9b.d13
-rw-r--r--ld/testsuite/ld-i386/no-plt.exp14
-rw-r--r--ld/testsuite/ld-loongarch-elf/32_pcrel.s6
-rw-r--r--ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp2
-rw-r--r--ld/testsuite/ld-loongarch-elf/overflow_32_pcrel.d4
-rw-r--r--ld/testsuite/ld-loongarch-elf/underflow_32_pcrel.d4
-rw-r--r--ld/testsuite/ld-pe/secidx.d8
-rw-r--r--ld/testsuite/ld-plugin/lto-20.ver1
-rw-r--r--ld/testsuite/ld-plugin/lto-20a.c2
-rw-r--r--ld/testsuite/ld-plugin/lto-20b.c11
-rw-r--r--ld/testsuite/ld-plugin/lto-binutils.exp358
-rw-r--r--ld/testsuite/ld-plugin/lto.exp47
-rw-r--r--ld/testsuite/ld-plugin/pr25618a.h1
-rw-r--r--ld/testsuite/ld-plugin/pr25618b.h1
-rw-r--r--ld/testsuite/ld-plugin/pr32846a.c6
-rw-r--r--ld/testsuite/ld-plugin/pr32846b.c4
-rw-r--r--ld/testsuite/ld-plugin/pr32846c.c6
-rw-r--r--ld/testsuite/ld-plugin/pr32846d.c12
-rw-r--r--ld/testsuite/ld-plugin/pr32846e.c4
-rw-r--r--ld/testsuite/ld-plugin/strip-1a-fat.c1
-rw-r--r--ld/testsuite/ld-plugin/strip-1a-fat.rd6
-rw-r--r--ld/testsuite/ld-plugin/strip-1a-s-all.nd3
-rw-r--r--ld/testsuite/ld-plugin/strip-1a.c4
-rw-r--r--ld/testsuite/ld-plugin/strip-1b-fat.c1
-rw-r--r--ld/testsuite/ld-plugin/strip-1b-fat.rd5
-rw-r--r--ld/testsuite/ld-plugin/strip-1b.c3
-rw-r--r--ld/testsuite/ld-s390/pr32969_64-1.dd15
-rw-r--r--ld/testsuite/ld-s390/pr32969_64-2.dd15
-rw-r--r--ld/testsuite/ld-s390/pr32969a.s14
-rw-r--r--ld/testsuite/ld-s390/pr32969b.s10
-rw-r--r--ld/testsuite/ld-s390/pr32969c.s10
-rw-r--r--ld/testsuite/ld-s390/s390.exp8
-rw-r--r--ld/testsuite/ld-scripts/map-address.exp37
-rw-r--r--ld/testsuite/ld-scripts/map-stats.d5
-rw-r--r--ld/testsuite/ld-shared/shared.exp34
-rw-r--r--ld/testsuite/ld-sparc/got-def.s15
-rw-r--r--ld/testsuite/ld-sparc/sparc.exp8
-rw-r--r--ld/testsuite/ld-tic6x/discard-unwind.ld2
-rw-r--r--ld/testsuite/ld-tic6x/unwind.ld2
-rw-r--r--ld/testsuite/ld-vsb/vsb.exp16
-rw-r--r--ld/testsuite/ld-x86-64/apx-load1.s6
-rw-r--r--ld/testsuite/ld-x86-64/apx-load1a.d5
-rw-r--r--ld/testsuite/ld-x86-64/apx-load1c.d5
-rw-r--r--ld/testsuite/ld-x86-64/apx-load1d.d5
-rw-r--r--ld/testsuite/ld-x86-64/dwarf4.s346
-rw-r--r--ld/testsuite/ld-x86-64/dwarf5a.s400
-rw-r--r--ld/testsuite/ld-x86-64/dwarf5b.s345
-rw-r--r--ld/testsuite/ld-x86-64/load3a.d16
-rw-r--r--ld/testsuite/ld-x86-64/load3b.d16
-rw-r--r--ld/testsuite/ld-x86-64/load4.d9
-rw-r--r--ld/testsuite/ld-x86-64/load4.s6
-rw-r--r--ld/testsuite/ld-x86-64/load5.s17
-rw-r--r--ld/testsuite/ld-x86-64/load5a.d15
-rw-r--r--ld/testsuite/ld-x86-64/load5b.d15
-rw-r--r--ld/testsuite/ld-x86-64/mark-plt-1a-x32.d2
-rw-r--r--ld/testsuite/ld-x86-64/mark-plt-1a.d2
-rw-r--r--ld/testsuite/ld-x86-64/mark-plt-1b-x32.d2
-rw-r--r--ld/testsuite/ld-x86-64/mark-plt-1b.d2
-rw-r--r--ld/testsuite/ld-x86-64/mark-plt-1c-x32.d2
-rw-r--r--ld/testsuite/ld-x86-64/mark-plt-1c.d2
-rw-r--r--ld/testsuite/ld-x86-64/mark-plt-1d-x32.d2
-rw-r--r--ld/testsuite/ld-x86-64/mark-plt-1d.d2
-rw-r--r--ld/testsuite/ld-x86-64/pr19636-3d.d10
-rw-r--r--ld/testsuite/ld-x86-64/pr32665.err3
-rw-r--r--ld/testsuite/ld-x86-64/pr32665.o.bz2bin0 -> 2827 bytes
-rw-r--r--ld/testsuite/ld-x86-64/pr32809.d71
-rw-r--r--ld/testsuite/ld-x86-64/sframe-ibt-plt-1.d2
-rw-r--r--ld/testsuite/ld-x86-64/sframe-plt-1.d2
-rw-r--r--ld/testsuite/ld-x86-64/sframe-pltgot-1.d2
-rw-r--r--ld/testsuite/ld-x86-64/sframe-pltgot-2.d2
-rw-r--r--ld/testsuite/ld-x86-64/sframe-simple-1.d2
-rw-r--r--ld/testsuite/ld-x86-64/tlsbindesc.dd8
-rw-r--r--ld/testsuite/ld-x86-64/x86-64.exp12
-rw-r--r--ld/testsuite/lib/ld-lib.exp9
-rw-r--r--libctf/ctf-archive.c9
-rw-r--r--libctf/ctf-create.c7
-rw-r--r--libctf/ctf-dedup.c249
-rw-r--r--libctf/ctf-hash.c29
-rw-r--r--libctf/ctf-impl.h16
-rw-r--r--libctf/ctf-link.c22
-rw-r--r--libctf/ctf-open.c2
-rw-r--r--libctf/ctf-types.c53
-rw-r--r--libctf/doc/ctf-spec.texi2
-rw-r--r--libctf/testsuite/libctf-lookup/add-to-opened.c15
-rw-r--r--libctf/testsuite/libctf-lookup/struct-iteration-ctf.c7
-rw-r--r--libctf/testsuite/libctf-lookup/struct-iteration.c18
-rw-r--r--libctf/testsuite/libctf-lookup/struct-iteration.lk10
-rw-r--r--libctf/testsuite/libctf-writable/ctf-compressed.c4
-rw-r--r--libctf/testsuite/libctf-writable/ctf-nonroot-linking.c11
-rw-r--r--libctf/testsuite/libctf-writable/slice-of-slice.c77
-rw-r--r--libctf/testsuite/libctf-writable/slice-of-slice.lk1
-rw-r--r--libiberty/ChangeLog41
-rw-r--r--libiberty/Makefile.in31
-rw-r--r--libiberty/config.in6
-rwxr-xr-xlibiberty/configure17
-rw-r--r--libiberty/configure.ac14
-rw-r--r--libiberty/configure.com2
-rw-r--r--libiberty/functions.texi14
-rw-r--r--libiberty/ldirname.c94
-rw-r--r--libiberty/makefile.vms2
-rw-r--r--libiberty/memrchr.c33
-rw-r--r--libiberty/regex.c2
-rw-r--r--libsframe/doc/sframe-spec.texi2
-rw-r--r--libsframe/sframe.c67
-rw-r--r--libsframe/testsuite/libsframe.find/findfre-1.c111
-rw-r--r--libsframe/testsuite/libsframe.find/findfunc-1.c141
-rw-r--r--libsframe/testsuite/libsframe.find/plt-findfre-1.c83
-rw-r--r--opcodes/aarch64-asm-2.c1347
-rw-r--r--opcodes/aarch64-asm.c10
-rw-r--r--opcodes/aarch64-dis-2.c7699
-rw-r--r--opcodes/aarch64-dis.c28
-rw-r--r--opcodes/aarch64-opc-2.c120
-rw-r--r--opcodes/aarch64-opc.c23
-rw-r--r--opcodes/aarch64-opc.h15
-rw-r--r--opcodes/aarch64-sys-regs.def35
-rw-r--r--opcodes/aarch64-tbl.h514
-rw-r--r--opcodes/config.in3
-rwxr-xr-xopcodes/configure287
-rw-r--r--opcodes/configure.ac2
-rw-r--r--opcodes/disassemble.c2
-rw-r--r--opcodes/disassemble.h1
-rw-r--r--opcodes/i386-dis.c21
-rw-r--r--opcodes/i386-gen.c8
-rw-r--r--opcodes/i386-init.h1410
-rw-r--r--opcodes/i386-mnem.h4351
-rw-r--r--opcodes/i386-opc.h19
-rw-r--r--opcodes/i386-opc.tbl69
-rw-r--r--opcodes/i386-reg.tbl20
-rw-r--r--opcodes/i386-tbl.h18792
-rw-r--r--opcodes/loongarch-dis.c7
-rw-r--r--opcodes/loongarch-opc.c6
-rw-r--r--opcodes/mips-dis.c27
-rw-r--r--opcodes/or1k-desc.c2
-rw-r--r--opcodes/or1k-desc.h547
-rw-r--r--opcodes/or1k-opc.h2
-rw-r--r--opcodes/ppc-opc.c67
-rw-r--r--opcodes/riscv-dis.c439
-rw-r--r--opcodes/riscv-opc.c101
-rw-r--r--opcodes/s390-dis.c2
-rw-r--r--opcodes/s390-mkopc.c3
-rw-r--r--readline/readline/tcap.h12
-rw-r--r--sim/Makefile.am5
-rw-r--r--sim/Makefile.in519
-rw-r--r--sim/aarch64/aarch64-sim.h2
-rw-r--r--sim/aarch64/cpustate.c2
-rw-r--r--sim/aarch64/cpustate.h2
-rw-r--r--sim/aarch64/decode.h2
-rw-r--r--sim/aarch64/interp.c2
-rw-r--r--sim/aarch64/local.mk2
-rw-r--r--sim/aarch64/memory.c2
-rw-r--r--sim/aarch64/memory.h2
-rw-r--r--sim/aarch64/sim-main.h2
-rw-r--r--sim/aarch64/simulator.c2
-rw-r--r--sim/aarch64/simulator.h2
-rw-r--r--sim/arm/ChangeLog-20212018
-rw-r--r--sim/arm/README27
-rw-r--r--sim/arm/armcopro.c1429
-rw-r--r--sim/arm/armdefs.h426
-rw-r--r--sim/arm/armemu.c6118
-rw-r--r--sim/arm/armemu.h557
-rw-r--r--sim/arm/armfpe.h1350
-rw-r--r--sim/arm/arminit.c355
-rw-r--r--sim/arm/armos.c873
-rw-r--r--sim/arm/armos.h93
-rw-r--r--sim/arm/armsupp.c1704
-rw-r--r--sim/arm/armvirt.c517
-rw-r--r--sim/arm/dbg_rdi.h84
-rw-r--r--sim/arm/iwmmxt.c3738
-rw-r--r--sim/arm/iwmmxt.h27
-rw-r--r--sim/arm/local.mk52
-rw-r--r--sim/arm/maverick.c1210
-rw-r--r--sim/arm/maverick.h46
-rw-r--r--sim/arm/thumbemu.c2623
-rw-r--r--sim/arm/wrapper.c938
-rw-r--r--sim/avr/avr-sim.h2
-rw-r--r--sim/avr/interp.c2
-rw-r--r--sim/avr/local.mk2
-rw-r--r--sim/avr/sim-main.h2
-rw-r--r--sim/bfin/arch.h2
-rw-r--r--sim/bfin/bfin-sim.c2
-rw-r--r--sim/bfin/bfin-sim.h2
-rw-r--r--sim/bfin/devices.c2
-rw-r--r--sim/bfin/devices.h2
-rw-r--r--sim/bfin/dv-bfin_cec.c2
-rw-r--r--sim/bfin/dv-bfin_cec.h2
-rw-r--r--sim/bfin/dv-bfin_ctimer.c2
-rw-r--r--sim/bfin/dv-bfin_ctimer.h2
-rw-r--r--sim/bfin/dv-bfin_dma.c2
-rw-r--r--sim/bfin/dv-bfin_dma.h2
-rw-r--r--sim/bfin/dv-bfin_dmac.c2
-rw-r--r--sim/bfin/dv-bfin_dmac.h2
-rw-r--r--sim/bfin/dv-bfin_ebiu_amc.c2
-rw-r--r--sim/bfin/dv-bfin_ebiu_amc.h2
-rw-r--r--sim/bfin/dv-bfin_ebiu_ddrc.c2
-rw-r--r--sim/bfin/dv-bfin_ebiu_ddrc.h2
-rw-r--r--sim/bfin/dv-bfin_ebiu_sdc.c2
-rw-r--r--sim/bfin/dv-bfin_ebiu_sdc.h2
-rw-r--r--sim/bfin/dv-bfin_emac.c2
-rw-r--r--sim/bfin/dv-bfin_emac.h2
-rw-r--r--sim/bfin/dv-bfin_eppi.c2
-rw-r--r--sim/bfin/dv-bfin_eppi.h2
-rw-r--r--sim/bfin/dv-bfin_evt.c2
-rw-r--r--sim/bfin/dv-bfin_evt.h2
-rw-r--r--sim/bfin/dv-bfin_gpio.c2
-rw-r--r--sim/bfin/dv-bfin_gpio.h2
-rw-r--r--sim/bfin/dv-bfin_gpio2.c2
-rw-r--r--sim/bfin/dv-bfin_gpio2.h2
-rw-r--r--sim/bfin/dv-bfin_gptimer.c2
-rw-r--r--sim/bfin/dv-bfin_gptimer.h2
-rw-r--r--sim/bfin/dv-bfin_jtag.c2
-rw-r--r--sim/bfin/dv-bfin_jtag.h2
-rw-r--r--sim/bfin/dv-bfin_mmu.c2
-rw-r--r--sim/bfin/dv-bfin_mmu.h2
-rw-r--r--sim/bfin/dv-bfin_nfc.c2
-rw-r--r--sim/bfin/dv-bfin_nfc.h2
-rw-r--r--sim/bfin/dv-bfin_otp.c2
-rw-r--r--sim/bfin/dv-bfin_otp.h2
-rw-r--r--sim/bfin/dv-bfin_pfmon.c2
-rw-r--r--sim/bfin/dv-bfin_pfmon.h2
-rw-r--r--sim/bfin/dv-bfin_pint.c2
-rw-r--r--sim/bfin/dv-bfin_pint.h2
-rw-r--r--sim/bfin/dv-bfin_pll.c2
-rw-r--r--sim/bfin/dv-bfin_pll.h2
-rw-r--r--sim/bfin/dv-bfin_ppi.c2
-rw-r--r--sim/bfin/dv-bfin_ppi.h2
-rw-r--r--sim/bfin/dv-bfin_rtc.c2
-rw-r--r--sim/bfin/dv-bfin_rtc.h2
-rw-r--r--sim/bfin/dv-bfin_sic.c2
-rw-r--r--sim/bfin/dv-bfin_sic.h2
-rw-r--r--sim/bfin/dv-bfin_spi.c2
-rw-r--r--sim/bfin/dv-bfin_spi.h2
-rw-r--r--sim/bfin/dv-bfin_trace.c2
-rw-r--r--sim/bfin/dv-bfin_trace.h2
-rw-r--r--sim/bfin/dv-bfin_twi.c2
-rw-r--r--sim/bfin/dv-bfin_twi.h2
-rw-r--r--sim/bfin/dv-bfin_uart.c2
-rw-r--r--sim/bfin/dv-bfin_uart.h2
-rw-r--r--sim/bfin/dv-bfin_uart2.c2
-rw-r--r--sim/bfin/dv-bfin_uart2.h2
-rw-r--r--sim/bfin/dv-bfin_wdog.c2
-rw-r--r--sim/bfin/dv-bfin_wdog.h2
-rw-r--r--sim/bfin/dv-bfin_wp.c2
-rw-r--r--sim/bfin/dv-bfin_wp.h2
-rw-r--r--sim/bfin/dv-eth_phy.c2
-rw-r--r--sim/bfin/gui.c2
-rw-r--r--sim/bfin/gui.h2
-rw-r--r--sim/bfin/insn_list.def2
-rw-r--r--sim/bfin/interp.c2
-rw-r--r--sim/bfin/linux-fixed-code.s2
-rw-r--r--sim/bfin/local.mk2
-rw-r--r--sim/bfin/machs.c2
-rw-r--r--sim/bfin/machs.h2
-rw-r--r--sim/bfin/proc_list.def2
-rw-r--r--sim/bfin/sim-main.h2
-rw-r--r--sim/bpf/bpf-sim.c2
-rw-r--r--sim/bpf/bpf-sim.h2
-rw-r--r--sim/bpf/local.mk2
-rw-r--r--sim/bpf/sim-main.h2
-rw-r--r--sim/bpf/traps.c2
-rw-r--r--sim/common/callback.c2
-rw-r--r--sim/common/cgen-cpu.h2
-rw-r--r--sim/common/cgen-defs.h2
-rw-r--r--sim/common/cgen-engine.h2
-rw-r--r--sim/common/cgen-mem.h2
-rw-r--r--sim/common/cgen-ops.h2
-rw-r--r--sim/common/cgen-par.c2
-rw-r--r--sim/common/cgen-par.h2
-rw-r--r--sim/common/cgen-run.c2
-rw-r--r--sim/common/cgen-scache.c2
-rw-r--r--sim/common/cgen-scache.h2
-rw-r--r--sim/common/cgen-sim.h2
-rw-r--r--sim/common/cgen-trace.c2
-rw-r--r--sim/common/cgen-trace.h2
-rw-r--r--sim/common/cgen-types.h2
-rw-r--r--sim/common/cgen-utils.c2
-rwxr-xr-xsim/common/create-version.sh2
-rw-r--r--sim/common/defs.h2
-rw-r--r--sim/common/dv-cfi.c2
-rw-r--r--sim/common/dv-cfi.h2
-rw-r--r--sim/common/dv-core.c2
-rw-r--r--sim/common/dv-glue.c2
-rw-r--r--sim/common/dv-pal.c2
-rw-r--r--sim/common/dv-sockser.c2
-rw-r--r--sim/common/dv-sockser.h2
-rwxr-xr-xsim/common/genmloop.sh2
-rwxr-xr-xsim/common/gennltvals.py2
-rw-r--r--sim/common/hw-alloc.c2
-rw-r--r--sim/common/hw-alloc.h2
-rw-r--r--sim/common/hw-base.c2
-rw-r--r--sim/common/hw-base.h2
-rw-r--r--sim/common/hw-device.c2
-rw-r--r--sim/common/hw-device.h2
-rw-r--r--sim/common/hw-events.c2
-rw-r--r--sim/common/hw-events.h2
-rw-r--r--sim/common/hw-handles.c2
-rw-r--r--sim/common/hw-handles.h2
-rw-r--r--sim/common/hw-instances.c2
-rw-r--r--sim/common/hw-instances.h2
-rw-r--r--sim/common/hw-main.h2
-rw-r--r--sim/common/hw-ports.c2
-rw-r--r--sim/common/hw-ports.h2
-rw-r--r--sim/common/hw-properties.c2
-rw-r--r--sim/common/hw-properties.h2
-rw-r--r--sim/common/hw-tree.c2
-rw-r--r--sim/common/hw-tree.h2
-rwxr-xr-xsim/common/lineno.sh2
-rw-r--r--sim/common/local.mk2
-rw-r--r--sim/common/nrun.c2
-rw-r--r--sim/common/portability.c2
-rw-r--r--sim/common/portability.h2
-rw-r--r--sim/common/run.12
-rw-r--r--sim/common/sim-abort.c2
-rw-r--r--sim/common/sim-alu.h2
-rw-r--r--sim/common/sim-arange.c2
-rw-r--r--sim/common/sim-arange.h2
-rw-r--r--sim/common/sim-assert.h2
-rw-r--r--sim/common/sim-base.h2
-rw-r--r--sim/common/sim-basics.h2
-rw-r--r--sim/common/sim-bits.c2
-rw-r--r--sim/common/sim-bits.h2
-rw-r--r--sim/common/sim-close.c2
-rw-r--r--sim/common/sim-command.c2
-rw-r--r--sim/common/sim-config.c2
-rw-r--r--sim/common/sim-config.h2
-rw-r--r--sim/common/sim-core.c2
-rw-r--r--sim/common/sim-core.h2
-rw-r--r--sim/common/sim-cpu.c2
-rw-r--r--sim/common/sim-cpu.h2
-rw-r--r--sim/common/sim-endian.c2
-rw-r--r--sim/common/sim-endian.h2
-rw-r--r--sim/common/sim-engine.c2
-rw-r--r--sim/common/sim-engine.h2
-rw-r--r--sim/common/sim-events.c2
-rw-r--r--sim/common/sim-events.h2
-rw-r--r--sim/common/sim-fpu.c2
-rw-r--r--sim/common/sim-fpu.h2
-rw-r--r--sim/common/sim-hload.c2
-rw-r--r--sim/common/sim-hrw.c2
-rw-r--r--sim/common/sim-hw.c2
-rw-r--r--sim/common/sim-hw.h2
-rw-r--r--sim/common/sim-info.c2
-rw-r--r--sim/common/sim-inline.c2
-rw-r--r--sim/common/sim-inline.h2
-rw-r--r--sim/common/sim-io.c2
-rw-r--r--sim/common/sim-io.h2
-rw-r--r--sim/common/sim-load.c2
-rw-r--r--sim/common/sim-memopt.c2
-rw-r--r--sim/common/sim-memopt.h2
-rw-r--r--sim/common/sim-model.c2
-rw-r--r--sim/common/sim-model.h2
-rw-r--r--sim/common/sim-module.c2
-rw-r--r--sim/common/sim-module.h2
-rw-r--r--sim/common/sim-n-bits.h2
-rw-r--r--sim/common/sim-n-core.h2
-rw-r--r--sim/common/sim-n-endian.h2
-rw-r--r--sim/common/sim-options.c2
-rw-r--r--sim/common/sim-options.h2
-rw-r--r--sim/common/sim-profile.c2
-rw-r--r--sim/common/sim-profile.h2
-rw-r--r--sim/common/sim-reason.c2
-rw-r--r--sim/common/sim-reg.c2
-rw-r--r--sim/common/sim-resume.c2
-rw-r--r--sim/common/sim-run.c2
-rw-r--r--sim/common/sim-signal.c2
-rw-r--r--sim/common/sim-signal.h2
-rw-r--r--sim/common/sim-stop.c2
-rw-r--r--sim/common/sim-syscall.c2
-rw-r--r--sim/common/sim-syscall.h2
-rw-r--r--sim/common/sim-trace.c2
-rw-r--r--sim/common/sim-trace.h2
-rw-r--r--sim/common/sim-types.h2
-rw-r--r--sim/common/sim-utils.c2
-rw-r--r--sim/common/sim-utils.h2
-rw-r--r--sim/common/sim-watch.c2
-rw-r--r--sim/common/sim-watch.h2
-rw-r--r--sim/common/syscall.c2
-rw-r--r--sim/common/target-newlib-errno.c2
-rw-r--r--sim/common/target-newlib-open.c2
-rw-r--r--sim/common/target-newlib-signal.c2
-rw-r--r--sim/common/target-newlib-syscall.c2
-rw-r--r--sim/common/target-newlib-syscall.h2
-rw-r--r--sim/common/version.h2
-rwxr-xr-xsim/configure58
-rw-r--r--sim/configure.ac1
-rw-r--r--sim/cr16/cr16-sim.h2
-rw-r--r--sim/cr16/gencode.c2
-rw-r--r--sim/cr16/interp.c2
-rw-r--r--sim/cr16/local.mk2
-rw-r--r--sim/cr16/sim-main.h2
-rw-r--r--sim/cr16/simops.c2
-rw-r--r--sim/cris/arch.c2
-rw-r--r--sim/cris/arch.h2
-rw-r--r--sim/cris/cpuall.h2
-rw-r--r--sim/cris/cpuv10.c2
-rw-r--r--sim/cris/cpuv10.h2
-rw-r--r--sim/cris/cpuv32.c2
-rw-r--r--sim/cris/cpuv32.h2
-rw-r--r--sim/cris/cris-sim.h2
-rw-r--r--sim/cris/cris-tmpl.c2
-rw-r--r--sim/cris/crisv10f.c2
-rw-r--r--sim/cris/crisv32f.c2
-rw-r--r--sim/cris/decodev10.c2
-rw-r--r--sim/cris/decodev10.h2
-rw-r--r--sim/cris/decodev32.c2
-rw-r--r--sim/cris/decodev32.h2
-rw-r--r--sim/cris/dv-cris.c2
-rw-r--r--sim/cris/dv-cris_900000xx.c2
-rw-r--r--sim/cris/dv-rv.c2
-rw-r--r--sim/cris/local.mk2
-rw-r--r--sim/cris/mloop.in2
-rw-r--r--sim/cris/modelv10.c2
-rw-r--r--sim/cris/modelv32.c2
-rw-r--r--sim/cris/rvdummy.c2
-rw-r--r--sim/cris/semcrisv10f-switch.c2
-rw-r--r--sim/cris/semcrisv32f-switch.c2
-rw-r--r--sim/cris/sim-if.c2
-rw-r--r--sim/cris/sim-main.h2
-rw-r--r--sim/cris/traps.c2
-rw-r--r--sim/d10v/gencode.c2
-rw-r--r--sim/d10v/local.mk2
-rw-r--r--sim/d10v/sim-main.h2
-rw-r--r--sim/erc32/erc32.c2
-rw-r--r--sim/erc32/exec.c2
-rw-r--r--sim/erc32/float.c2
-rw-r--r--sim/erc32/func.c2
-rw-r--r--sim/erc32/help.c2
-rw-r--r--sim/erc32/interf.c2
-rw-r--r--sim/erc32/local.mk2
-rw-r--r--sim/erc32/sis.c2
-rw-r--r--sim/erc32/sis.h2
-rw-r--r--sim/erc32/startsim2
-rw-r--r--sim/example-synacor/example-synacor-sim.h2
-rw-r--r--sim/example-synacor/interp.c2
-rw-r--r--sim/example-synacor/local.mk2
-rw-r--r--sim/example-synacor/sim-main.c2
-rw-r--r--sim/example-synacor/sim-main.h2
-rw-r--r--sim/frv/acinclude.m42
-rw-r--r--sim/frv/arch.c2
-rw-r--r--sim/frv/arch.h2
-rw-r--r--sim/frv/cache.c2
-rw-r--r--sim/frv/cache.h2
-rw-r--r--sim/frv/cpu.c2
-rw-r--r--sim/frv/cpu.h2
-rw-r--r--sim/frv/cpuall.h2
-rw-r--r--sim/frv/decode.c2
-rw-r--r--sim/frv/decode.h2
-rw-r--r--sim/frv/frv-sim.h2
-rw-r--r--sim/frv/frv.c2
-rw-r--r--sim/frv/interrupts.c2
-rw-r--r--sim/frv/local.mk2
-rw-r--r--sim/frv/memory.c2
-rw-r--r--sim/frv/mloop.in2
-rw-r--r--sim/frv/model.c2
-rw-r--r--sim/frv/options.c2
-rw-r--r--sim/frv/pipeline.c2
-rw-r--r--sim/frv/profile-fr400.c2
-rw-r--r--sim/frv/profile-fr400.h2
-rw-r--r--sim/frv/profile-fr450.c2
-rw-r--r--sim/frv/profile-fr500.c2
-rw-r--r--sim/frv/profile-fr500.h2
-rw-r--r--sim/frv/profile-fr550.c2
-rw-r--r--sim/frv/profile-fr550.h2
-rw-r--r--sim/frv/profile.c2
-rw-r--r--sim/frv/profile.h2
-rw-r--r--sim/frv/registers.c2
-rw-r--r--sim/frv/registers.h2
-rw-r--r--sim/frv/reset.c2
-rw-r--r--sim/frv/sem.c2
-rw-r--r--sim/frv/sim-if.c2
-rw-r--r--sim/frv/sim-main.h2
-rw-r--r--sim/frv/traps.c2
-rw-r--r--sim/ft32/ft32-sim.h2
-rw-r--r--sim/ft32/interp.c2
-rw-r--r--sim/ft32/local.mk2
-rw-r--r--sim/ft32/sim-main.h2
-rw-r--r--sim/h8300/local.mk2
-rwxr-xr-xsim/igen/compare_igen_models2
-rw-r--r--sim/igen/filter.c2
-rw-r--r--sim/igen/filter.h2
-rw-r--r--sim/igen/filter_host.c2
-rw-r--r--sim/igen/filter_host.h2
-rw-r--r--sim/igen/gen-engine.c2
-rw-r--r--sim/igen/gen-engine.h2
-rw-r--r--sim/igen/gen-icache.c2
-rw-r--r--sim/igen/gen-icache.h2
-rw-r--r--sim/igen/gen-idecode.c2
-rw-r--r--sim/igen/gen-idecode.h2
-rw-r--r--sim/igen/gen-itable.c2
-rw-r--r--sim/igen/gen-itable.h2
-rw-r--r--sim/igen/gen-model.c2
-rw-r--r--sim/igen/gen-model.h2
-rw-r--r--sim/igen/gen-semantics.c2
-rw-r--r--sim/igen/gen-semantics.h2
-rw-r--r--sim/igen/gen-support.c2
-rw-r--r--sim/igen/gen-support.h2
-rw-r--r--sim/igen/gen.c2
-rw-r--r--sim/igen/gen.h2
-rw-r--r--sim/igen/igen.c2
-rw-r--r--sim/igen/igen.h2
-rw-r--r--sim/igen/ld-cache.c2
-rw-r--r--sim/igen/ld-cache.h2
-rw-r--r--sim/igen/ld-decode.c2
-rw-r--r--sim/igen/ld-decode.h2
-rw-r--r--sim/igen/ld-insn.c2
-rw-r--r--sim/igen/ld-insn.h2
-rw-r--r--sim/igen/lf.c2
-rw-r--r--sim/igen/lf.h2
-rw-r--r--sim/igen/local.mk2
-rw-r--r--sim/igen/misc.c2
-rw-r--r--sim/igen/misc.h2
-rw-r--r--sim/igen/table.c2
-rw-r--r--sim/igen/table.h2
-rw-r--r--sim/iq2000/arch.c2
-rw-r--r--sim/iq2000/arch.h2
-rw-r--r--sim/iq2000/cpu.c2
-rw-r--r--sim/iq2000/cpu.h2
-rw-r--r--sim/iq2000/cpuall.h2
-rw-r--r--sim/iq2000/decode.c2
-rw-r--r--sim/iq2000/decode.h2
-rw-r--r--sim/iq2000/iq2000.c2
-rw-r--r--sim/iq2000/local.mk2
-rw-r--r--sim/iq2000/mloop.in2
-rw-r--r--sim/iq2000/model.c2
-rw-r--r--sim/iq2000/sem-switch.c2
-rw-r--r--sim/iq2000/sem.c2
-rw-r--r--sim/iq2000/sim-if.c2
-rw-r--r--sim/lm32/arch.c2
-rw-r--r--sim/lm32/arch.h2
-rw-r--r--sim/lm32/cpu.c2
-rw-r--r--sim/lm32/cpu.h2
-rw-r--r--sim/lm32/cpuall.h2
-rw-r--r--sim/lm32/decode.c2
-rw-r--r--sim/lm32/decode.h2
-rw-r--r--sim/lm32/dv-lm32cpu.c2
-rw-r--r--sim/lm32/dv-lm32timer.c2
-rw-r--r--sim/lm32/dv-lm32uart.c2
-rw-r--r--sim/lm32/lm32-sim.h2
-rw-r--r--sim/lm32/lm32.c2
-rw-r--r--sim/lm32/local.mk2
-rw-r--r--sim/lm32/model.c2
-rw-r--r--sim/lm32/sem-switch.c2
-rw-r--r--sim/lm32/sem.c2
-rw-r--r--sim/lm32/sim-if.c2
-rw-r--r--sim/lm32/sim-main.h2
-rw-r--r--sim/lm32/traps.c2
-rw-r--r--sim/lm32/user.c2
-rw-r--r--sim/m32c/cpu.h2
-rw-r--r--sim/m32c/gdb-if.c2
-rw-r--r--sim/m32c/int.c2
-rw-r--r--sim/m32c/int.h2
-rw-r--r--sim/m32c/load.c2
-rw-r--r--sim/m32c/load.h2
-rw-r--r--sim/m32c/local.mk2
-rw-r--r--sim/m32c/m32c.opc2
-rw-r--r--sim/m32c/main.c2
-rw-r--r--sim/m32c/mem.c2
-rw-r--r--sim/m32c/mem.h2
-rw-r--r--sim/m32c/misc.c2
-rw-r--r--sim/m32c/misc.h2
-rw-r--r--sim/m32c/opc2c.c2
-rw-r--r--sim/m32c/r8c.opc2
-rw-r--r--sim/m32c/reg.c2
-rw-r--r--sim/m32c/srcdest.c2
-rw-r--r--sim/m32c/syscalls.c2
-rw-r--r--sim/m32c/syscalls.h2
-rw-r--r--sim/m32c/trace.c2
-rw-r--r--sim/m32c/trace.h2
-rw-r--r--sim/m32r/arch.c2
-rw-r--r--sim/m32r/arch.h2
-rw-r--r--sim/m32r/cpu.c2
-rw-r--r--sim/m32r/cpu.h2
-rw-r--r--sim/m32r/cpu2.c2
-rw-r--r--sim/m32r/cpu2.h2
-rw-r--r--sim/m32r/cpuall.h2
-rw-r--r--sim/m32r/cpux.c2
-rw-r--r--sim/m32r/cpux.h2
-rw-r--r--sim/m32r/decode.c2
-rw-r--r--sim/m32r/decode.h2
-rw-r--r--sim/m32r/decode2.c2
-rw-r--r--sim/m32r/decode2.h2
-rw-r--r--sim/m32r/decodex.c2
-rw-r--r--sim/m32r/decodex.h2
-rw-r--r--sim/m32r/dv-m32r_cache.c2
-rw-r--r--sim/m32r/dv-m32r_cache.h2
-rw-r--r--sim/m32r/dv-m32r_uart.c2
-rw-r--r--sim/m32r/dv-m32r_uart.h2
-rw-r--r--sim/m32r/local.mk2
-rw-r--r--sim/m32r/m32r-sim.h2
-rw-r--r--sim/m32r/m32r.c2
-rw-r--r--sim/m32r/m32r2.c2
-rw-r--r--sim/m32r/m32rx.c2
-rw-r--r--sim/m32r/mloop.in2
-rw-r--r--sim/m32r/mloop2.in2
-rw-r--r--sim/m32r/mloopx.in2
-rw-r--r--sim/m32r/model.c2
-rw-r--r--sim/m32r/model2.c2
-rw-r--r--sim/m32r/modelx.c2
-rw-r--r--sim/m32r/sem-switch.c2
-rw-r--r--sim/m32r/sem.c2
-rw-r--r--sim/m32r/sem2-switch.c2
-rw-r--r--sim/m32r/semx-switch.c2
-rw-r--r--sim/m32r/sim-if.c2
-rw-r--r--sim/m32r/traps.c2
-rw-r--r--sim/m4/sim_ac_option_alignment.m42
-rw-r--r--sim/m4/sim_ac_option_assert.m42
-rw-r--r--sim/m4/sim_ac_option_bitsize.m42
-rw-r--r--sim/m4/sim_ac_option_cgen_maint.m42
-rw-r--r--sim/m4/sim_ac_option_debug.m42
-rw-r--r--sim/m4/sim_ac_option_endian.m42
-rw-r--r--sim/m4/sim_ac_option_environment.m42
-rw-r--r--sim/m4/sim_ac_option_float.m42
-rw-r--r--sim/m4/sim_ac_option_hardware.m42
-rw-r--r--sim/m4/sim_ac_option_inline.m42
-rw-r--r--sim/m4/sim_ac_option_profile.m42
-rw-r--r--sim/m4/sim_ac_option_reserved_bits.m42
-rw-r--r--sim/m4/sim_ac_option_scache.m42
-rw-r--r--sim/m4/sim_ac_option_smp.m42
-rw-r--r--sim/m4/sim_ac_option_stdio.m42
-rw-r--r--sim/m4/sim_ac_option_trace.m42
-rw-r--r--sim/m4/sim_ac_option_warnings.m42
-rw-r--r--sim/m4/sim_ac_option_xor_endian.m42
-rw-r--r--sim/m4/sim_ac_platform.m42
-rw-r--r--sim/m4/sim_ac_toolchain.m42
-rw-r--r--sim/m68hc11/dv-m68hc11.c2
-rw-r--r--sim/m68hc11/dv-m68hc11eepr.c2
-rw-r--r--sim/m68hc11/dv-m68hc11sio.c2
-rw-r--r--sim/m68hc11/dv-m68hc11spi.c2
-rw-r--r--sim/m68hc11/dv-m68hc11tim.c2
-rw-r--r--sim/m68hc11/dv-nvram.c2
-rw-r--r--sim/m68hc11/emulos.c2
-rw-r--r--sim/m68hc11/gencode.c2
-rw-r--r--sim/m68hc11/interp.c2
-rw-r--r--sim/m68hc11/interrupts.c2
-rw-r--r--sim/m68hc11/interrupts.h2
-rw-r--r--sim/m68hc11/local.mk2
-rw-r--r--sim/m68hc11/m68hc11-sim.h2
-rw-r--r--sim/m68hc11/m68hc11_sim.c2
-rw-r--r--sim/m68hc11/sim-main.h2
-rw-r--r--sim/mcore/interp.c2
-rw-r--r--sim/mcore/local.mk2
-rw-r--r--sim/mcore/mcore-sim.h2
-rw-r--r--sim/mcore/sim-main.h2
-rw-r--r--sim/microblaze/interp.c2
-rw-r--r--sim/microblaze/local.mk2
-rw-r--r--sim/microblaze/microblaze-sim.h2
-rw-r--r--sim/microblaze/microblaze.h2
-rw-r--r--sim/microblaze/microblaze.isa2
-rw-r--r--sim/microblaze/sim-main.h2
-rw-r--r--sim/mips/acinclude.m42
-rw-r--r--sim/mips/cp1.c2
-rw-r--r--sim/mips/cp1.h2
-rw-r--r--sim/mips/dsp.c2
-rw-r--r--sim/mips/dsp.igen2
-rw-r--r--sim/mips/dsp2.igen2
-rw-r--r--sim/mips/dv-tx3904cpu.c2
-rw-r--r--sim/mips/dv-tx3904irc.c2
-rw-r--r--sim/mips/dv-tx3904sio.c2
-rw-r--r--sim/mips/dv-tx3904tmr.c2
-rw-r--r--sim/mips/local.mk2
-rw-r--r--sim/mips/m16e.igen2
-rw-r--r--sim/mips/mdmx.c2
-rw-r--r--sim/mips/mdmx.igen2
-rw-r--r--sim/mips/micromips.igen2
-rw-r--r--sim/mips/micromipsdsp.igen2
-rw-r--r--sim/mips/micromipsrun.c2
-rw-r--r--sim/mips/mips3264r2.igen2
-rw-r--r--sim/mips/mips3d.igen2
-rw-r--r--sim/mips/sb1.igen2
-rw-r--r--sim/mips/sim-main.h2
-rw-r--r--sim/mips/smartmips.igen2
-rw-r--r--sim/mn10300/dv-mn103cpu.c2
-rw-r--r--sim/mn10300/dv-mn103int.c2
-rw-r--r--sim/mn10300/dv-mn103iop.c2
-rw-r--r--sim/mn10300/dv-mn103ser.c2
-rw-r--r--sim/mn10300/dv-mn103tim.c2
-rw-r--r--sim/mn10300/local.mk2
-rw-r--r--sim/mn10300/sim-main.h2
-rw-r--r--sim/moxie/interp.c2
-rw-r--r--sim/moxie/local.mk2
-rw-r--r--sim/moxie/moxie-sim.h2
-rw-r--r--sim/moxie/sim-main.h2
-rw-r--r--sim/msp430/local.mk2
-rw-r--r--sim/msp430/msp430-sim.c2
-rw-r--r--sim/msp430/msp430-sim.h2
-rw-r--r--sim/msp430/sim-main.h2
-rw-r--r--sim/or1k/arch.c2
-rw-r--r--sim/or1k/arch.h2
-rw-r--r--sim/or1k/cpu.c34
-rw-r--r--sim/or1k/cpu.h16
-rw-r--r--sim/or1k/cpuall.h2
-rw-r--r--sim/or1k/decode.c2
-rw-r--r--sim/or1k/decode.h2
-rw-r--r--sim/or1k/local.mk2
-rw-r--r--sim/or1k/mloop.in2
-rw-r--r--sim/or1k/model.c2
-rw-r--r--sim/or1k/or1k-sim.h2
-rw-r--r--sim/or1k/or1k.c6
-rw-r--r--sim/or1k/sem-switch.c2
-rw-r--r--sim/or1k/sem.c2
-rw-r--r--sim/or1k/sim-if.c2
-rw-r--r--sim/or1k/sim-main.h2
-rw-r--r--sim/or1k/traps.c4
-rw-r--r--sim/pru/interp.c2
-rw-r--r--sim/pru/local.mk2
-rw-r--r--sim/pru/pru.h2
-rw-r--r--sim/pru/pru.isa2
-rw-r--r--sim/pru/sim-main.h2
-rw-r--r--sim/riscv/acinclude.m42
-rw-r--r--sim/riscv/interp.c2
-rw-r--r--sim/riscv/local.mk2
-rw-r--r--sim/riscv/machs.c2
-rw-r--r--sim/riscv/machs.h2
-rw-r--r--sim/riscv/riscv-sim.h2
-rw-r--r--sim/riscv/sim-main.c2
-rw-r--r--sim/riscv/sim-main.h2
-rw-r--r--sim/rl78/cpu.c2
-rw-r--r--sim/rl78/cpu.h2
-rw-r--r--sim/rl78/gdb-if.c2
-rw-r--r--sim/rl78/load.c2
-rw-r--r--sim/rl78/load.h2
-rw-r--r--sim/rl78/local.mk2
-rw-r--r--sim/rl78/main.c2
-rw-r--r--sim/rl78/mem.c2
-rw-r--r--sim/rl78/mem.h2
-rw-r--r--sim/rl78/rl78.c2
-rw-r--r--sim/rl78/trace.c2
-rw-r--r--sim/rl78/trace.h2
-rw-r--r--sim/rx/acinclude.m42
-rw-r--r--sim/rx/cpu.h2
-rw-r--r--sim/rx/err.c2
-rw-r--r--sim/rx/err.h2
-rw-r--r--sim/rx/fpu.c2
-rw-r--r--sim/rx/fpu.h2
-rw-r--r--sim/rx/gdb-if.c2
-rw-r--r--sim/rx/load.c2
-rw-r--r--sim/rx/load.h2
-rw-r--r--sim/rx/local.mk2
-rw-r--r--sim/rx/main.c2
-rw-r--r--sim/rx/mem.c2
-rw-r--r--sim/rx/mem.h2
-rw-r--r--sim/rx/misc.c2
-rw-r--r--sim/rx/misc.h2
-rw-r--r--sim/rx/reg.c2
-rw-r--r--sim/rx/rx.c2
-rw-r--r--sim/rx/syscalls.c2
-rw-r--r--sim/rx/syscalls.h2
-rw-r--r--sim/rx/trace.c2
-rw-r--r--sim/rx/trace.h2
-rw-r--r--sim/sh/interp.c2
-rw-r--r--sim/sh/local.mk2
-rw-r--r--sim/sh/sh-sim.h2
-rw-r--r--sim/sh/sim-main.h2
-rw-r--r--sim/testsuite/common/bits-gen.c2
-rw-r--r--sim/testsuite/common/bits-tst.c5
-rw-r--r--sim/testsuite/common/local.mk2
-rw-r--r--sim/testsuite/cris/asm/asm.exp2
-rw-r--r--sim/testsuite/cris/c/c.exp2
-rw-r--r--sim/testsuite/cris/hw/rv-n-cris/rvc.exp2
-rw-r--r--sim/testsuite/local.mk2
-rw-r--r--sim/testsuite/m32c/blinky.s2
-rw-r--r--sim/testsuite/m32c/gloss.s2
-rw-r--r--sim/testsuite/m32c/sample.ld2
-rw-r--r--sim/testsuite/m32c/sample.s2
-rw-r--r--sim/testsuite/m32c/sample2.c2
-rw-r--r--sim/testsuite/mips/hilo-hazard-4.s2
-rw-r--r--sim/testsuite/mips/mips32-dsp.s2
-rw-r--r--sim/testsuite/mips/testutils.inc2
-rw-r--r--sim/testsuite/mips/utils-dsp.inc2
-rw-r--r--sim/testsuite/mips/utils-fpu.inc2
-rw-r--r--sim/testsuite/mips/utils-mdmx.inc2
-rw-r--r--sim/testsuite/or1k/add.S2
-rw-r--r--sim/testsuite/or1k/adrp.S2
-rw-r--r--sim/testsuite/or1k/alltests.exp2
-rw-r--r--sim/testsuite/or1k/and.S2
-rw-r--r--sim/testsuite/or1k/basic.S2
-rw-r--r--sim/testsuite/or1k/div.S2
-rw-r--r--sim/testsuite/or1k/ext.S2
-rw-r--r--sim/testsuite/or1k/find.S2
-rw-r--r--sim/testsuite/or1k/flag.S2
-rw-r--r--sim/testsuite/or1k/fpu-unordered.S2
-rw-r--r--sim/testsuite/or1k/fpu.S2
-rw-r--r--sim/testsuite/or1k/fpu64a32-unordered.S2
-rw-r--r--sim/testsuite/or1k/fpu64a32.S2
-rw-r--r--sim/testsuite/or1k/jump.S2
-rw-r--r--sim/testsuite/or1k/load.S2
-rw-r--r--sim/testsuite/or1k/mac.S2
-rw-r--r--sim/testsuite/or1k/mfspr.S2
-rw-r--r--sim/testsuite/or1k/mul.S2
-rw-r--r--sim/testsuite/or1k/or.S2
-rw-r--r--sim/testsuite/or1k/or1k-asm-test-env.h2
-rw-r--r--sim/testsuite/or1k/or1k-asm-test-helpers.h2
-rw-r--r--sim/testsuite/or1k/or1k-asm-test.h2
-rw-r--r--sim/testsuite/or1k/or1k-asm.h2
-rw-r--r--sim/testsuite/or1k/or1k-test.ld2
-rw-r--r--sim/testsuite/or1k/ror.S2
-rw-r--r--sim/testsuite/or1k/shift.S2
-rw-r--r--sim/testsuite/or1k/spr-defs.h2
-rw-r--r--sim/testsuite/or1k/sub.S2
-rw-r--r--sim/testsuite/or1k/xor.S2
-rw-r--r--sim/testsuite/pru/add.s2
-rw-r--r--sim/testsuite/pru/allinsn.exp2
-rw-r--r--sim/testsuite/pru/carry.s2
-rw-r--r--sim/testsuite/pru/dmem-zero-pass.s2
-rw-r--r--sim/testsuite/pru/dmem-zero-trap.s2
-rw-r--r--sim/testsuite/pru/dram.s2
-rw-r--r--sim/testsuite/pru/jmp.s2
-rw-r--r--sim/testsuite/pru/lmbd.s2
-rw-r--r--sim/testsuite/pru/loop-imm.s2
-rw-r--r--sim/testsuite/pru/loop-reg.s2
-rw-r--r--sim/testsuite/pru/loop-zero.s2
-rw-r--r--sim/testsuite/pru/mul.s2
-rw-r--r--sim/testsuite/pru/subreg.s2
-rw-r--r--sim/testsuite/pru/testutils.inc2
-rw-r--r--sim/v850/local.mk2
8793 files changed, 166109 insertions, 86360 deletions
diff --git a/.gitignore b/.gitignore
index eb1baf0..7f1c81e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,7 @@
*~
.#*
*#
+.*.swp
*.flt
*.gmo
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index be3ee82..16c7505 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -38,6 +38,7 @@
# See https://pre-commit.com/hooks.html for more hooks
minimum_pre_commit_version: 3.2.0
+default_install_hook_types: [pre-commit, commit-msg]
repos:
- repo: https://github.com/psf/black-pre-commit-mirror
rev: 25.1.0
@@ -46,7 +47,7 @@ repos:
types_or: [file]
files: 'gdb/.*\.py(\.in)?$'
- repo: https://github.com/pycqa/flake8
- rev: 7.1.1
+ rev: 7.2.0
hooks:
- id: flake8
types_or: [file]
@@ -60,11 +61,17 @@ repos:
files: '^gdb/(gdb-gdb\.py\.in|[^/]+\.py|python/.+\.py|testsuite/[^/]+\.py)$'
args: [--config, gdb/setup.cfg]
- repo: https://github.com/pycqa/isort
- rev: 6.0.0
+ rev: 6.0.1
hooks:
- id: isort
types_or: [file]
files: 'gdb/.*\.py(\.in)?$'
+ - repo: https://github.com/codespell-project/codespell
+ rev: v2.4.1
+ hooks:
+ - id: codespell
+ files: '^(gdbsupport|gdbserver|gdb/(tui|target|data-directory|po|system-gdbinit|mi|syscalls|arch|regformats|compile|python|guile|config|unittests|cli|testsuite/gdb.(ctf|dap|debuginfod|gdb|go|guile|mi|modula2|objc|opencl|opt|pascal|perf|replay|reverse|rocm|server|stabs|testsuite|tui|xml)))/'
+ args: [--config, gdb/contrib/setup.cfg]
- repo: local
hooks:
- id: check-include-guards
@@ -74,3 +81,10 @@ repos:
# All gdb header files, but not headers in the test suite.
files: '^(gdb(support|server)?)/.*\.h$'
exclude: '.*/testsuite/.*'
+ - id: codespell-log
+ name: codespell-log
+ language: script
+ entry: gdb/contrib/codespell-log.sh
+ verbose: true
+ always_run: true
+ stages: [commit-msg]
diff --git a/Makefile.def b/Makefile.def
index 4896c5c..93485c7 100644
--- a/Makefile.def
+++ b/Makefile.def
@@ -523,7 +523,7 @@ dependencies = { module=install-bfd; on=install-libsframe; };
dependencies = { module=install-strip-bfd; on=install-strip-libsframe; };
// libopcodes depends on libbfd
-dependencies = { module=configure-opcodes; on=configure-bfd; hard=true; };
+dependencies = { module=configure-opcodes; on=all-bfd; hard=true; };
dependencies = { module=install-opcodes; on=install-bfd; };
dependencies = { module=install-strip-opcodes; on=install-strip-bfd; };
@@ -549,8 +549,8 @@ dependencies = { module=install-gprofng; on=install-opcodes; };
dependencies = { module=install-gprofng; on=install-bfd; };
dependencies = { module=configure-ld; on=configure-gettext; };
+dependencies = { module=configure-ld; on=all-bfd; };
dependencies = { module=all-ld; on=all-libiberty; };
-dependencies = { module=all-ld; on=all-bfd; };
dependencies = { module=all-ld; on=all-opcodes; };
dependencies = { module=all-ld; on=all-build-bison; };
dependencies = { module=all-ld; on=all-build-flex; };
diff --git a/Makefile.in b/Makefile.in
index f12c251..2a53616 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -67369,16 +67369,16 @@ install-strip-ld: maybe-install-strip-bfd
install-strip-ld: maybe-install-strip-libctf
install-bfd: maybe-install-libsframe
install-strip-bfd: maybe-install-strip-libsframe
-configure-opcodes: configure-bfd
-configure-stage1-opcodes: configure-stage1-bfd
-configure-stage2-opcodes: configure-stage2-bfd
-configure-stage3-opcodes: configure-stage3-bfd
-configure-stage4-opcodes: configure-stage4-bfd
-configure-stageprofile-opcodes: configure-stageprofile-bfd
-configure-stagetrain-opcodes: configure-stagetrain-bfd
-configure-stagefeedback-opcodes: configure-stagefeedback-bfd
-configure-stageautoprofile-opcodes: configure-stageautoprofile-bfd
-configure-stageautofeedback-opcodes: configure-stageautofeedback-bfd
+configure-opcodes: all-bfd
+configure-stage1-opcodes: all-stage1-bfd
+configure-stage2-opcodes: all-stage2-bfd
+configure-stage3-opcodes: all-stage3-bfd
+configure-stage4-opcodes: all-stage4-bfd
+configure-stageprofile-opcodes: all-stageprofile-bfd
+configure-stagetrain-opcodes: all-stagetrain-bfd
+configure-stagefeedback-opcodes: all-stagefeedback-bfd
+configure-stageautoprofile-opcodes: all-stageautoprofile-bfd
+configure-stageautofeedback-opcodes: all-stageautofeedback-bfd
install-opcodes: maybe-install-bfd
install-strip-opcodes: maybe-install-strip-bfd
configure-gas: maybe-configure-gettext
@@ -67443,6 +67443,16 @@ configure-stagetrain-ld: maybe-configure-stagetrain-gettext
configure-stagefeedback-ld: maybe-configure-stagefeedback-gettext
configure-stageautoprofile-ld: maybe-configure-stageautoprofile-gettext
configure-stageautofeedback-ld: maybe-configure-stageautofeedback-gettext
+configure-ld: maybe-all-bfd
+configure-stage1-ld: maybe-all-stage1-bfd
+configure-stage2-ld: maybe-all-stage2-bfd
+configure-stage3-ld: maybe-all-stage3-bfd
+configure-stage4-ld: maybe-all-stage4-bfd
+configure-stageprofile-ld: maybe-all-stageprofile-bfd
+configure-stagetrain-ld: maybe-all-stagetrain-bfd
+configure-stagefeedback-ld: maybe-all-stagefeedback-bfd
+configure-stageautoprofile-ld: maybe-all-stageautoprofile-bfd
+configure-stageautofeedback-ld: maybe-all-stageautofeedback-bfd
all-ld: maybe-all-libiberty
all-stage1-ld: maybe-all-stage1-libiberty
all-stage2-ld: maybe-all-stage2-libiberty
@@ -67453,16 +67463,6 @@ all-stagetrain-ld: maybe-all-stagetrain-libiberty
all-stagefeedback-ld: maybe-all-stagefeedback-libiberty
all-stageautoprofile-ld: maybe-all-stageautoprofile-libiberty
all-stageautofeedback-ld: maybe-all-stageautofeedback-libiberty
-all-ld: maybe-all-bfd
-all-stage1-ld: maybe-all-stage1-bfd
-all-stage2-ld: maybe-all-stage2-bfd
-all-stage3-ld: maybe-all-stage3-bfd
-all-stage4-ld: maybe-all-stage4-bfd
-all-stageprofile-ld: maybe-all-stageprofile-bfd
-all-stagetrain-ld: maybe-all-stagetrain-bfd
-all-stagefeedback-ld: maybe-all-stagefeedback-bfd
-all-stageautoprofile-ld: maybe-all-stageautoprofile-bfd
-all-stageautofeedback-ld: maybe-all-stageautofeedback-bfd
all-ld: maybe-all-opcodes
all-stage1-ld: maybe-all-stage1-opcodes
all-stage2-ld: maybe-all-stage2-opcodes
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index d8facc2..3f02487 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2025-02-08 Alexandre Oliva <oliva@adacore.com>
+
+ * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Check for
+ _GLOBAL_OFFSET_TABLE_ references early, then compare hashed
+ symbols instead of strings.
+ (_bfd_sparc_elf_relocate_section): Compare hashed symbols.
+
2025-01-23 Jose E. Marchesi <jose.marchesi@oracle.com>
* doc/local.mk (AM_MAKEINFOFLAGS): Prepend the build directory to
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index 1543af7..8a670ad 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -113,7 +113,6 @@ target_triplet = @target@
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
- $(top_srcdir)/../config/bfd64.m4 \
$(top_srcdir)/../config/depstand.m4 \
$(top_srcdir)/../config/gettext-sister.m4 \
$(top_srcdir)/../config/gettext.m4 \
diff --git a/bfd/aclocal.m4 b/bfd/aclocal.m4
index 8364b5d..4d1b7ba 100644
--- a/bfd/aclocal.m4
+++ b/bfd/aclocal.m4
@@ -1168,7 +1168,6 @@ AC_SUBST([am__untar])
]) # _AM_PROG_TAR
m4_include([../config/acx.m4])
-m4_include([../config/bfd64.m4])
m4_include([../config/depstand.m4])
m4_include([../config/gettext-sister.m4])
m4_include([../config/gettext.m4])
diff --git a/bfd/aout-target.h b/bfd/aout-target.h
index f513e1b..1b71104 100644
--- a/bfd/aout-target.h
+++ b/bfd/aout-target.h
@@ -286,9 +286,6 @@ MY (set_sizes) (bfd *abfd)
#ifndef MY_add_dynamic_symbols
#define MY_add_dynamic_symbols 0
#endif
-#ifndef MY_add_one_symbol
-#define MY_add_one_symbol 0
-#endif
#ifndef MY_link_dynamic_object
#define MY_link_dynamic_object 0
#endif
@@ -312,7 +309,6 @@ static const struct aout_backend_data MY (backend_data) =
MY_set_sizes,
MY_exec_header_not_counted,
MY_add_dynamic_symbols,
- MY_add_one_symbol,
MY_link_dynamic_object,
MY_write_dynamic_symbol,
MY_check_dynamic_reloc,
diff --git a/bfd/aoutx.h b/bfd/aoutx.h
index 63c654f..81e0804 100644
--- a/bfd/aoutx.h
+++ b/bfd/aoutx.h
@@ -2973,9 +2973,6 @@ NAME (aout, link_hash_table_create) (bfd *abfd)
static bool
aout_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
{
- bool (*add_one_symbol)
- (struct bfd_link_info *, bfd *, const char *, flagword, asection *,
- bfd_vma, const char *, bool, bool, struct bfd_link_hash_entry **);
struct external_nlist *syms;
bfd_size_type sym_count;
char *strings;
@@ -3013,10 +3010,6 @@ aout_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
return false;
obj_aout_sym_hashes (abfd) = sym_hash;
- add_one_symbol = aout_backend_info (abfd)->add_one_symbol;
- if (add_one_symbol == NULL)
- add_one_symbol = _bfd_generic_link_add_one_symbol;
-
p = syms;
pend = p + sym_count;
for (; p < pend; p++, sym_hash++)
@@ -3167,7 +3160,7 @@ aout_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
break;
}
- if (! ((*add_one_symbol)
+ if (! (_bfd_generic_link_add_one_symbol
(info, abfd, name, flags, section, value, string, copy, false,
(struct bfd_link_hash_entry **) sym_hash)))
return false;
diff --git a/bfd/archive.c b/bfd/archive.c
index ef01095..8e20554 100644
--- a/bfd/archive.c
+++ b/bfd/archive.c
@@ -744,8 +744,8 @@ _bfd_get_elt_at_filepos (bfd *archive, file_ptr filepos,
case bfd_error_system_call:
if (info != NULL)
{
- info->callbacks->einfo
- (_("%F%P: %pB(%s): error opening thin archive member: %E\n"),
+ info->callbacks->fatal
+ (_("%P: %pB(%s): error opening thin archive member: %E\n"),
archive, filename);
break;
}
@@ -2399,12 +2399,8 @@ _bfd_compute_and_write_armap (bfd *arch, unsigned int elength)
map = new_map;
}
- if (syms[src_count]->name != NULL
- && syms[src_count]->name[0] == '_'
- && syms[src_count]->name[1] == '_'
- && strcmp (syms[src_count]->name
- + (syms[src_count]->name[2] == '_'),
- "__gnu_lto_slim") == 0
+ if (bfd_lto_slim_symbol_p (current,
+ syms[src_count]->name)
&& report_plugin_err)
{
report_plugin_err = false;
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 4aa814a..d5d1b51 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -976,57 +976,6 @@ discarded_section (const asection *sec)
&& sec->sec_info_type != SEC_INFO_TYPE_JUST_SYMS);
}
-#define BFD_FAKE_SECTION(SEC, SYM, NAME, IDX, FLAGS) \
- /* name, next, prev, id, section_id, index, flags, user_set_vma, */ \
- { NAME, NULL, NULL, IDX, 0, 0, FLAGS, 0, \
- \
- /* linker_mark, linker_has_input, gc_mark, decompress_status, */ \
- 0, 0, 1, 0, \
- \
- /* segment_mark, sec_info_type, use_rela_p, mmapped_p, alloced, */ \
- 0, 0, 0, 0, 0, \
- \
- /* sec_flg0, sec_flg1, sec_flg2, sec_flg3, sec_flg4, sec_flg5, */ \
- 0, 0, 0, 0, 0, 0, \
- \
- /* vma, lma, size, rawsize, compressed_size, */ \
- 0, 0, 0, 0, 0, \
- \
- /* output_offset, output_section, relocation, orelocation, */ \
- 0, &SEC, NULL, NULL, \
- \
- /* reloc_count, alignment_power, filepos, rel_filepos, */ \
- 0, 0, 0, 0, \
- \
- /* line_filepos, userdata, contents, lineno, lineno_count, */ \
- 0, NULL, NULL, NULL, 0, \
- \
- /* entsize, kept_section, moving_line_filepos, */ \
- 0, NULL, 0, \
- \
- /* target_index, used_by_bfd, constructor_chain, owner, */ \
- 0, NULL, NULL, NULL, \
- \
- /* symbol, */ \
- (struct bfd_symbol *) SYM, \
- \
- /* map_head, map_tail, already_assigned, type */ \
- { NULL }, { NULL }, NULL, 0 \
- \
- }
-
-/* We use a macro to initialize the static asymbol structures because
- traditional C does not permit us to initialize a union member while
- gcc warns if we don't initialize it.
- the_bfd, name, value, attr, section [, udata] */
-#ifdef __STDC__
-#define GLOBAL_SYM_INIT(NAME, SECTION) \
- { 0, NAME, 0, BSF_SECTION_SYM, SECTION, { 0 }}
-#else
-#define GLOBAL_SYM_INIT(NAME, SECTION) \
- { 0, NAME, 0, BSF_SECTION_SYM, SECTION }
-#endif
-
void bfd_section_list_clear (bfd *);
asection *bfd_get_section_by_name (bfd *abfd, const char *name);
@@ -2353,6 +2302,16 @@ bfd_get_lto_type (const bfd *abfd)
return abfd->lto_type;
}
+static inline bool
+bfd_lto_slim_symbol_p (const bfd *abfd, const char *name)
+{
+ return (bfd_get_lto_type (abfd) != lto_non_ir_object
+ && name != NULL
+ && name[0] == '_'
+ && name[1] == '_'
+ && strcmp (name + (name[2] == '_'), "__gnu_lto_slim") == 0);
+}
+
static inline flagword
bfd_get_file_flags (const bfd *abfd)
{
@@ -2964,6 +2923,20 @@ const char *bfd_format_string (bfd_format format);
&& bfd_is_abs_section ((H)->u.def.section) \
&& !(H)->rel_from_abs)
+bool _bfd_generic_link_add_one_symbol
+ (struct bfd_link_info *info,
+ bfd *abfd,
+ const char *name,
+ flagword flags,
+ asection *section,
+ bfd_vma value,
+ const char *string,
+ bool copy,
+ bool collect,
+ struct bfd_link_hash_entry **hashp);
+
+bool bfd_link_align_section (asection *, unsigned int);
+
bool bfd_link_split_section (bfd *abfd, asection *sec);
#define bfd_link_split_section(abfd, sec) \
@@ -7052,6 +7025,11 @@ enum bfd_reloc_code_real
assembler and not (currently) written to any object files. */
BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC,
+ /* AArch64 9 bit pc-relative conditional branch and compare & branch.
+ The lowest two bits must be zero and are not stored in the
+ instruction, giving an 11 bit signed byte offset. */
+ BFD_RELOC_AARCH64_BRANCH9,
+
/* Tilera TILEPro Relocations. */
BFD_RELOC_TILEPRO_COPY,
BFD_RELOC_TILEPRO_GLOB_DAT,
diff --git a/bfd/bfd.c b/bfd/bfd.c
index a8d1314..858ab5c 100644
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -470,6 +470,16 @@ EXTERNAL
. return abfd->lto_type;
.}
.
+.static inline bool
+.bfd_lto_slim_symbol_p (const bfd *abfd, const char *name)
+.{
+. return (bfd_get_lto_type (abfd) != lto_non_ir_object
+. && name != NULL
+. && name[0] == '_'
+. && name[1] == '_'
+. && strcmp (name + (name[2] == '_'), "__gnu_lto_slim") == 0);
+.}
+.
.static inline flagword
.bfd_get_file_flags (const bfd *abfd)
.{
@@ -709,6 +719,12 @@ EXTERNAL
#define EXIT_FAILURE 1
#endif
+#ifdef TLS
+#define THREAD_LOCAL TLS
+#else
+#define THREAD_LOCAL
+#endif
+
/* provide storage for subsystem, stack and heap data which may have been
passed in on the command line. Ld puts this data into a bfd_link_info
@@ -799,8 +815,8 @@ const char *const bfd_errmsgs[] =
N_("#<invalid error code>")
};
-static TLS bfd_error_type bfd_error;
-static TLS char *_bfd_error_buf;
+static THREAD_LOCAL bfd_error_type bfd_error;
+static THREAD_LOCAL char *_bfd_error_buf;
/* Free any data associated with the BFD error. */
@@ -1679,7 +1695,7 @@ _bfd_per_xvec_warn (struct per_xvec_messages *messages, size_t alloc)
error_handler_sprintf; when NULL, _bfd_error_internal will be used
instead. */
-static TLS struct per_xvec_messages *error_handler_messages;
+static THREAD_LOCAL struct per_xvec_messages *error_handler_messages;
/* A special value for error_handler_messages that indicates that the
error should simply be ignored. */
@@ -2012,18 +2028,20 @@ DESCRIPTION
Initialize BFD threading. The functions passed in will be
used to lock and unlock global data structures. This may only
be called a single time in a given process. Returns true on
- success and false on error. DATA is passed verbatim to the
- lock and unlock functions. The lock and unlock functions
- should return true on success, or set the BFD error and return
- false on failure. Note also that the lock must be a recursive
- lock: BFD may attempt to acquire the lock when it is already
- held by the current thread.
+ success and false on error. On error, the caller should
+ assume that BFD cannot be used by multiple threads. DATA is
+ passed verbatim to the lock and unlock functions. The lock
+ and unlock functions should return true on success, or set the
+ BFD error and return false on failure. Note also that the
+ lock must be a recursive lock: BFD may attempt to acquire the
+ lock when it is already held by the current thread.
*/
bool
bfd_thread_init (bfd_lock_unlock_fn_type lock, bfd_lock_unlock_fn_type unlock,
void *data)
{
+#ifdef TLS
/* Both functions must be set, and this cannot have been called
before. */
if (lock == NULL || unlock == NULL || unlock_fn != NULL)
@@ -2036,6 +2054,12 @@ bfd_thread_init (bfd_lock_unlock_fn_type lock, bfd_lock_unlock_fn_type unlock,
unlock_fn = unlock;
lock_data = data;
return true;
+#else /* TLS */
+ /* If thread-local storage wasn't found by configure, we disallow
+ threaded operation. */
+ bfd_set_error (bfd_error_invalid_operation);
+ return false;
+#endif /* TLS */
}
/*
diff --git a/bfd/coff-aarch64.c b/bfd/coff-aarch64.c
index 60cd6f8..af4a44d 100644
--- a/bfd/coff-aarch64.c
+++ b/bfd/coff-aarch64.c
@@ -907,10 +907,8 @@ coff_pe_aarch64_relocate_section (bfd *output_bfd,
}
default:
- info->callbacks->einfo (_("%F%P: Unhandled relocation type %u\n"),
+ info->callbacks->fatal (_("%P: Unhandled relocation type %u\n"),
rel->r_type);
- BFD_FAIL ();
- return false;
}
}
diff --git a/bfd/coff-alpha.c b/bfd/coff-alpha.c
index 2798efd..fcc8aef 100644
--- a/bfd/coff-alpha.c
+++ b/bfd/coff-alpha.c
@@ -517,8 +517,7 @@ alpha_ecoff_swap_reloc_in (bfd *abfd,
value is not actually a symbol index, but is instead a
special code. We put the code in the r_size field, and
clobber the symndx. */
- if (intern->r_size != 0)
- abort ();
+ BFD_ASSERT (intern->r_size == 0);
intern->r_size = intern->r_symndx;
intern->r_symndx = RELOC_SECTION_NONE;
}
@@ -526,12 +525,16 @@ alpha_ecoff_swap_reloc_in (bfd *abfd,
{
/* The IGNORE reloc generally follows a GPDISP reloc, and is
against the .lita section. The section is irrelevant. */
- if (! intern->r_extern &&
- intern->r_symndx == RELOC_SECTION_ABS)
- abort ();
+ BFD_ASSERT (intern->r_extern || intern->r_symndx != RELOC_SECTION_ABS);
if (! intern->r_extern && intern->r_symndx == RELOC_SECTION_LITA)
intern->r_symndx = RELOC_SECTION_ABS;
}
+ else if (intern->r_type == ALPHA_R_OP_STORE)
+ {
+ /* Size of 64 bits is encoded as 0 in this 6-bit field. */
+ if (intern->r_size == 0)
+ intern->r_size = 64;
+ }
}
/* Swap a reloc out. */
@@ -713,6 +716,50 @@ alpha_adjust_reloc_out (bfd *abfd ATTRIBUTE_UNUSED,
}
}
+/* Write VAL to a little-endian bitfield specified by BITOFFSET and
+ BITSIZE at CONTENTS + SECOFFSET. Verify that these parameter are
+ valid for SEC in ABFD. */
+
+static bool
+write_bit_field (bfd *abfd, asection *sec,
+ bfd_byte *contents, bfd_size_type secoffset,
+ unsigned int bitoffset, unsigned int bitsize, uint64_t val)
+{
+ if (bitsize == 0)
+ return true;
+
+ bfd_size_type secsize = bfd_get_section_limit_octets (abfd, sec);
+ unsigned int startbyte = bitoffset >> 3;
+ unsigned int endbyte = (bitoffset + bitsize - 1) >> 3;
+
+ if (secoffset > secsize || secsize - secoffset <= endbyte)
+ return false;
+
+ unsigned int startbit = bitoffset & 7;
+ unsigned int endbit = (bitoffset + bitsize - 1) & 7;
+ unsigned int mask = -1u << startbit;
+ unsigned char *p = contents + secoffset;
+ if (startbyte != endbyte)
+ {
+ p[startbyte] = (p[startbyte] & ~mask) | ((val << startbit) & mask);
+ val = val >> (8 - startbit);
+
+ for (unsigned int off = startbyte + 1; off < endbyte; ++off)
+ {
+ p[off] = val;
+ val >>= 8;
+ }
+ mask = ~(-1u << (1 + endbit));
+ }
+ else
+ {
+ val = val << startbit;
+ mask = mask & ~(-1u << (1 + endbit));
+ }
+ p[endbyte] = (p[endbyte] & ~mask) | (val & mask);
+ return true;
+}
+
/* The size of the stack for the relocation evaluator. */
#define RELOC_STACKSIZE (10)
@@ -1005,31 +1052,10 @@ alpha_ecoff_get_relocated_section_contents (bfd *abfd,
into the addend field by alpha_adjust_reloc_in. */
unsigned int offset = (rel->addend >> 8) & 0xff;
unsigned int size = rel->addend & 0xff;
- unsigned int startbyte = offset >> 3;
- unsigned int endbyte = (offset + size + 7) >> 3;
- unsigned int bytes = endbyte + 1 - startbyte;
-
- if (bytes <= 8
- && rel->address + startbyte + bytes >= rel->address
- && (rel->address + startbyte + bytes
- <= bfd_get_section_limit_octets (input_bfd, input_section)))
- {
- uint64_t val = 0;
- for (int off = bytes - 1; off >= 0; --off)
- val = (val << 8) | data[rel->address + startbyte + off];
-
- offset -= startbyte << 3;
- size -= startbyte << 3;
- uint64_t mask = (((uint64_t) 1 << size) - 1) << offset;
- val = (val & ~mask) | ((stack[--tos] << offset) & mask);
-
- for (unsigned int off = 0; off < bytes; ++off)
- {
- data[rel->address + startbyte + off] = val & 0xff;
- val >>= 8;
- }
- }
- else
+
+ if (!write_bit_field (input_bfd, input_section,
+ data, rel->address,
+ offset, size, stack[--tos]))
r = bfd_reloc_outofrange;
}
break;
@@ -1779,33 +1805,12 @@ alpha_relocate_section (bfd *output_bfd,
adjust the address of the reloc. */
if (! bfd_link_relocatable (info))
{
- unsigned int startbyte = r_offset >> 3;
- unsigned int endbyte = (r_offset + r_size + 7) >> 3;
- unsigned int bytes = endbyte + 1 - startbyte;
-
- if (bytes <= 8
- && r_vaddr >= input_section->vma
- && r_vaddr - input_section->vma < input_section->size
- && (input_section->size - (r_vaddr - input_section->vma)
- >= startbyte + bytes))
- {
- bfd_byte *p = contents + (r_vaddr - input_section->vma);
- uint64_t val = 0;
- for (int off = bytes - 1; off >= 0; --off)
- val = (val << 8) | p[startbyte + off];
-
- r_offset -= startbyte << 3;
- r_size -= startbyte << 3;
- uint64_t mask = (((uint64_t) 1 << r_size) - 1) << r_offset;
- val = (val & ~mask) | ((stack[--tos] << r_offset) & mask);
-
- for (unsigned int off = 0; off < bytes; ++off)
- {
- p[startbyte + off] = val & 0xff;
- val >>= 8;
- }
- }
- else
+ if (tos == 0)
+ r = bfd_reloc_notsupported;
+ else if (!write_bit_field (input_bfd, input_section,
+ contents,
+ r_vaddr - input_section->vma,
+ r_offset, r_size, stack[--tos]))
r = bfd_reloc_outofrange;
}
break;
@@ -2359,7 +2364,7 @@ static const struct ecoff_backend_data alpha_ecoff_backend_data =
alpha_ecoff_mkobject_hook, _bfd_ecoff_styp_to_sec_flags,
_bfd_ecoff_set_alignment_hook, _bfd_ecoff_slurp_symbol_table,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL
+ NULL, NULL, NULL,
},
/* Supported architecture. */
bfd_arch_alpha,
diff --git a/bfd/coff-arm.c b/bfd/coff-arm.c
index ab5f7b0..ee57451 100644
--- a/bfd/coff-arm.c
+++ b/bfd/coff-arm.c
@@ -1876,8 +1876,8 @@ record_arm_to_thumb_glue (struct bfd_link_info * info,
it. */
bh = NULL;
val = globals->arm_glue_size + 1;
- bfd_coff_link_add_one_symbol (info, globals->bfd_of_glue_owner, tmp_name,
- BSF_GLOBAL, s, val, NULL, true, false, &bh);
+ _bfd_generic_link_add_one_symbol (info, globals->bfd_of_glue_owner, tmp_name,
+ BSF_GLOBAL, s, val, NULL, true, false, &bh);
free (tmp_name);
@@ -1929,8 +1929,8 @@ record_thumb_to_arm_glue (struct bfd_link_info * info,
bh = NULL;
val = globals->thumb_glue_size + 1;
- bfd_coff_link_add_one_symbol (info, globals->bfd_of_glue_owner, tmp_name,
- BSF_GLOBAL, s, val, NULL, true, false, &bh);
+ _bfd_generic_link_add_one_symbol (info, globals->bfd_of_glue_owner, tmp_name,
+ BSF_GLOBAL, s, val, NULL, true, false, &bh);
/* If we mark it 'thumb', the disassembler will do a better job. */
myh = (struct coff_link_hash_entry *) bh;
@@ -1952,8 +1952,8 @@ record_thumb_to_arm_glue (struct bfd_link_info * info,
bh = NULL;
val = globals->thumb_glue_size + (globals->support_old_code ? 8 : 4);
- bfd_coff_link_add_one_symbol (info, globals->bfd_of_glue_owner, tmp_name,
- BSF_LOCAL, s, val, NULL, true, false, &bh);
+ _bfd_generic_link_add_one_symbol (info, globals->bfd_of_glue_owner, tmp_name,
+ BSF_LOCAL, s, val, NULL, true, false, &bh);
free (tmp_name);
diff --git a/bfd/coff-mips.c b/bfd/coff-mips.c
index e2c632c..8c4d4f7 100644
--- a/bfd/coff-mips.c
+++ b/bfd/coff-mips.c
@@ -1316,7 +1316,7 @@ static const struct ecoff_backend_data mips_ecoff_backend_data =
_bfd_ecoff_mkobject_hook, _bfd_ecoff_styp_to_sec_flags,
_bfd_ecoff_set_alignment_hook, _bfd_ecoff_slurp_symbol_table,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
- NULL, NULL, NULL
+ NULL, NULL,
},
/* Supported architecture. */
bfd_arch_mips,
diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c
index 7a20dba..ae9a0f6 100644
--- a/bfd/coff-rs6000.c
+++ b/bfd/coff-rs6000.c
@@ -4584,7 +4584,6 @@ static const struct xcoff_backend_data_rec bfd_xcoff_backend_data =
xcoff_ppc_relocate_section,
coff_rtype_to_howto,
NULL, /* _bfd_coff_adjust_symndx */
- _bfd_generic_link_add_one_symbol,
coff_link_output_has_begun,
coff_final_link_postscript,
NULL /* print_pdata. */
@@ -4774,7 +4773,6 @@ static const struct xcoff_backend_data_rec bfd_pmac_xcoff_backend_data =
xcoff_ppc_relocate_section,
coff_rtype_to_howto,
NULL, /* _bfd_coff_adjust_symndx */
- _bfd_generic_link_add_one_symbol,
coff_link_output_has_begun,
coff_final_link_postscript,
NULL /* print_pdata. */
diff --git a/bfd/coff-sh.c b/bfd/coff-sh.c
index 275c4f5..c3e0e42 100644
--- a/bfd/coff-sh.c
+++ b/bfd/coff-sh.c
@@ -3108,7 +3108,7 @@ static const bfd_coff_backend_data bfd_coff_small_swap_table =
coff_print_aux, coff_reloc16_extra_cases, coff_reloc16_estimate,
coff_classify_symbol, coff_compute_section_file_positions,
coff_start_final_link, coff_relocate_section, coff_rtype_to_howto,
- coff_adjust_symndx, coff_link_add_one_symbol,
+ coff_adjust_symndx,
coff_link_output_has_begun, coff_final_link_postscript,
bfd_pe_print_pdata
};
diff --git a/bfd/coff64-rs6000.c b/bfd/coff64-rs6000.c
index 5a4bcbf..ec7ed08 100644
--- a/bfd/coff64-rs6000.c
+++ b/bfd/coff64-rs6000.c
@@ -2495,7 +2495,6 @@ static const struct xcoff_backend_data_rec bfd_xcoff_backend_data =
xcoff64_ppc_relocate_section,
coff_rtype_to_howto,
NULL, /* _bfd_coff_adjust_symndx */
- _bfd_generic_link_add_one_symbol,
coff_link_output_has_begun,
coff_final_link_postscript,
NULL /* print_pdata. */
@@ -2768,7 +2767,6 @@ static const struct xcoff_backend_data_rec bfd_xcoff_aix5_backend_data =
xcoff64_ppc_relocate_section,
coff_rtype_to_howto,
NULL, /* _bfd_coff_adjust_symndx */
- _bfd_generic_link_add_one_symbol,
coff_link_output_has_begun,
coff_final_link_postscript,
NULL /* print_pdata. */
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index 325a8ab..bd0374f 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -1516,11 +1516,6 @@ CODE_FRAGMENT
. (bfd *, struct bfd_link_info *, bfd *, asection *,
. struct internal_reloc *, bool *);
.
-. bool (*_bfd_coff_link_add_one_symbol)
-. (struct bfd_link_info *, bfd *, const char *, flagword,
-. asection *, bfd_vma, const char *, bool, bool,
-. struct bfd_link_hash_entry **);
-.
. bool (*_bfd_coff_link_output_has_begun)
. (bfd *, struct coff_final_link_info *);
.
@@ -1659,10 +1654,6 @@ INTERNAL
.#define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\
. ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\
. (obfd, info, ibfd, sec, rel, adjustedp))
-.#define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\
-. value, string, cp, coll, hashp)\
-. ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\
-. (info, abfd, name, flags, section, value, string, cp, coll, hashp))
.
.#define bfd_coff_link_output_has_begun(a,p) \
. ((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a, p))
@@ -5513,10 +5504,6 @@ dummy_reloc16_extra_cases (bfd *abfd ATTRIBUTE_UNUSED,
#define coff_adjust_symndx NULL
#endif
-#ifndef coff_link_add_one_symbol
-#define coff_link_add_one_symbol _bfd_generic_link_add_one_symbol
-#endif
-
#ifndef coff_link_output_has_begun
static bool
@@ -5615,7 +5602,7 @@ static const bfd_coff_backend_data bfd_coff_std_swap_table ATTRIBUTE_UNUSED =
coff_print_aux, coff_reloc16_extra_cases, coff_reloc16_estimate,
coff_classify_symbol, coff_compute_section_file_positions,
coff_start_final_link, coff_relocate_section, coff_rtype_to_howto,
- coff_adjust_symndx, coff_link_add_one_symbol,
+ coff_adjust_symndx,
coff_link_output_has_begun, coff_final_link_postscript,
bfd_pe_print_pdata
};
@@ -5656,7 +5643,7 @@ static const bfd_coff_backend_data ticoff0_swap_table =
coff_print_aux, coff_reloc16_extra_cases, coff_reloc16_estimate,
coff_classify_symbol, coff_compute_section_file_positions,
coff_start_final_link, coff_relocate_section, coff_rtype_to_howto,
- coff_adjust_symndx, coff_link_add_one_symbol,
+ coff_adjust_symndx,
coff_link_output_has_begun, coff_final_link_postscript,
bfd_pe_print_pdata
};
@@ -5698,7 +5685,7 @@ static const bfd_coff_backend_data ticoff1_swap_table =
coff_print_aux, coff_reloc16_extra_cases, coff_reloc16_estimate,
coff_classify_symbol, coff_compute_section_file_positions,
coff_start_final_link, coff_relocate_section, coff_rtype_to_howto,
- coff_adjust_symndx, coff_link_add_one_symbol,
+ coff_adjust_symndx,
coff_link_output_has_begun, coff_final_link_postscript,
bfd_pe_print_pdata /* huh */
};
@@ -5941,7 +5928,7 @@ static const bfd_coff_backend_data bigobj_swap_table =
coff_print_aux, coff_reloc16_extra_cases, coff_reloc16_estimate,
coff_classify_symbol, coff_compute_section_file_positions,
coff_start_final_link, coff_relocate_section, coff_rtype_to_howto,
- coff_adjust_symndx, coff_link_add_one_symbol,
+ coff_adjust_symndx,
coff_link_output_has_begun, coff_final_link_postscript,
bfd_pe_print_pdata /* huh */
};
diff --git a/bfd/coffgen.c b/bfd/coffgen.c
index c734f05..c1811cb 100644
--- a/bfd/coffgen.c
+++ b/bfd/coffgen.c
@@ -42,7 +42,9 @@
#include "libbfd.h"
#include "coff/internal.h"
#include "libcoff.h"
+#include "elf-bfd.h"
#include "hashtab.h"
+#include "safe-ctype.h"
/* Extract a long section name at STRINDEX and copy it to the bfd objstack.
Return NULL in case of error. */
@@ -1270,9 +1272,24 @@ coff_write_alien_symbol (bfd *abfd,
if (c != (coff_symbol_type *) NULL)
native->u.syment.n_flags = bfd_asymbol_bfd (&c->symbol)->flags;
}
+
+ const elf_symbol_type *elfsym = elf_symbol_from (symbol);
+ if (elfsym
+ && (symbol->flags & BSF_FUNCTION)
+ && elfsym->internal_elf_sym.st_size)
+ {
+ /* coff_data (abfd)->local_n_btshft is what ought to be used here,
+ just that it's set only when reading in COFF objects. */
+ native->u.syment.n_type = DT_FCN << 4;
+ native->u.syment.n_numaux = 1;
+ native[1].u.auxent.x_sym.x_misc.x_fsize
+ = elfsym->internal_elf_sym.st_size;
+ /* FIXME .u.auxent.x_sym.x_fcnary.x_fcn.x_endndx would better also
+ be set, which would require updating the field once the next
+ function is seen. */
+ }
}
- native->u.syment.n_type = 0;
if (symbol->flags & BSF_FILE)
native->u.syment.n_sclass = C_FILE;
else if (symbol->flags & BSF_LOCAL)
@@ -2767,6 +2784,8 @@ _bfd_coff_section_already_linked (bfd *abfd,
}
already_linked_list = bfd_section_already_linked_table_lookup (key);
+ if (!already_linked_list)
+ goto bad;
for (l = already_linked_list->entry; l != NULL; l = l->next)
{
@@ -2794,7 +2813,10 @@ _bfd_coff_section_already_linked (bfd *abfd,
/* This is the first section with this name. Record it. */
if (!bfd_section_already_linked_table_insert (already_linked_list, sec))
- info->callbacks->einfo (_("%F%P: already_linked_table: %E\n"));
+ {
+ bad:
+ info->callbacks->fatal (_("%P: already_linked_table: %E\n"));
+ }
return false;
}
@@ -3099,6 +3121,19 @@ coff_gc_sweep_symbol (struct coff_link_hash_entry *h,
typedef bool (*gc_sweep_hook_fn)
(bfd *, struct bfd_link_info *, asection *, const struct internal_reloc *);
+static inline bool
+is_subsection (const char *str, const char *prefix)
+{
+ size_t n = strlen (prefix);
+ if (strncmp (str, prefix, n) != 0)
+ return false;
+ if (str[n] == 0)
+ return true;
+ else if (str[n] != '$')
+ return false;
+ return ISDIGIT (str[n + 1]) && str[n + 2] == 0;
+}
+
static bool
coff_gc_sweep (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info *info)
{
@@ -3120,6 +3155,7 @@ coff_gc_sweep (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info *info)
else if (startswith (o->name, ".idata")
|| startswith (o->name, ".pdata")
|| startswith (o->name, ".xdata")
+ || is_subsection (o->name, ".didat")
|| startswith (o->name, ".rsrc"))
o->gc_mark = 1;
diff --git a/bfd/cofflink.c b/bfd/cofflink.c
index 876aed7..38278e2 100644
--- a/bfd/cofflink.c
+++ b/bfd/cofflink.c
@@ -27,6 +27,7 @@
#include "libbfd.h"
#include "coff/internal.h"
#include "libcoff.h"
+#include "elf-bfd.h"
#include "safe-ctype.h"
static bool coff_link_add_object_symbols (bfd *, struct bfd_link_info *);
@@ -445,7 +446,7 @@ coff_link_add_symbols (bfd *abfd,
if (addit)
{
- if (! (bfd_coff_link_add_one_symbol
+ if (! (_bfd_generic_link_add_one_symbol
(info, abfd, name, flags, section, value,
(const char *) NULL, copy, false,
(struct bfd_link_hash_entry **) sym_hash)))
@@ -931,14 +932,52 @@ _bfd_coff_final_link (bfd *abfd,
bfd_vma written = 0;
bool rewrite = false;
- if (! (sym->flags & BSF_LOCAL)
- || (sym->flags & (BSF_SECTION_SYM | BSF_DEBUGGING_RELOC
- | BSF_THREAD_LOCAL | BSF_RELC | BSF_SRELC
- | BSF_SYNTHETIC))
+ if ((sym->flags & (BSF_SECTION_SYM | BSF_DEBUGGING_RELOC
+ | BSF_THREAD_LOCAL | BSF_RELC | BSF_SRELC
+ | BSF_SYNTHETIC))
|| ((sym->flags & BSF_DEBUGGING)
&& ! (sym->flags & BSF_FILE)))
continue;
+ if (! (sym->flags & BSF_LOCAL))
+ {
+ /* For ELF symbols try to represent their function-ness and
+ size, if available. */
+ if (! (sym->flags & BSF_FUNCTION))
+ continue;
+
+ const elf_symbol_type *elfsym = elf_symbol_from (sym);
+ if (!elfsym)
+ continue;
+
+ struct coff_link_hash_entry *hent
+ = (struct coff_link_hash_entry *) bfd_hash_lookup
+ (&info->hash->table, bfd_asymbol_name (sym),
+ false, false);
+ if (!hent)
+ continue;
+
+ /* coff_data (abfd)->local_n_btshft is what ought to be used
+ here, just that it's set only when reading in COFF
+ objects. */
+ hent->type = DT_FCN << 4;
+ if (!elfsym->internal_elf_sym.st_size)
+ continue;
+
+ hent->aux = bfd_zalloc (abfd, sizeof (*hent->aux));
+ if (!hent->aux)
+ continue;
+
+ hent->numaux = 1;
+ hent->aux->x_sym.x_misc.x_fsize
+ = elfsym->internal_elf_sym.st_size;
+ /* FIXME ->x_sym.x_fcnary.x_fcn.x_endndx would better
+ also be set, yet that would likely need to happen
+ elsewhere anyway. */
+
+ continue;
+ }
+
/* See if we are discarding symbols with this name. */
if ((flaginfo.info->strip == strip_some
&& (bfd_hash_lookup (flaginfo.info->keep_hash,
diff --git a/bfd/compress.c b/bfd/compress.c
index b635750..2878837 100644
--- a/bfd/compress.c
+++ b/bfd/compress.c
@@ -517,40 +517,23 @@ decompress_contents (bool is_zstd, bfd_byte *compressed_buffer,
#endif
}
- z_stream strm;
- int rc;
-
/* It is possible the section consists of several compressed
buffers concatenated together, so we uncompress in a loop. */
- /* PR 18313: The state field in the z_stream structure is supposed
- to be invisible to the user (ie us), but some compilers will
- still complain about it being used without initialisation. So
- we first zero the entire z_stream structure and then set the fields
- that we need. */
- memset (& strm, 0, sizeof strm);
- strm.avail_in = compressed_size;
- strm.next_in = (Bytef*) compressed_buffer;
- strm.avail_out = uncompressed_size;
- /* FIXME: strm.avail_in and strm.avail_out are typically unsigned
- int. Supporting sizes that don't fit in an unsigned int is
- possible but will require some rewriting of this function. */
- if (strm.avail_in != compressed_size || strm.avail_out != uncompressed_size)
- return false;
-
- BFD_ASSERT (Z_OK == 0);
- rc = inflateInit (&strm);
- while (strm.avail_in > 0 && strm.avail_out > 0)
+ do
{
+ uLongf dst_len = uncompressed_size;
+ uLong src_len = compressed_size;
+ int rc = uncompress2 ((Bytef *) uncompressed_buffer, &dst_len,
+ (Bytef *) compressed_buffer, &src_len);
if (rc != Z_OK)
- break;
- strm.next_out = ((Bytef*) uncompressed_buffer
- + (uncompressed_size - strm.avail_out));
- rc = inflate (&strm, Z_FINISH);
- if (rc != Z_STREAM_END)
- break;
- rc = inflateReset (&strm);
+ return false;
+ uncompressed_buffer += dst_len;
+ uncompressed_size -= dst_len;
+ compressed_buffer += src_len;
+ compressed_size -= src_len;
}
- return inflateEnd (&strm) == Z_OK && rc == Z_OK && strm.avail_out == 0;
+ while (compressed_size > 0 && uncompressed_size > 0);
+ return compressed_size == 0 && uncompressed_size == 0;
}
/* Compress section contents using zlib/zstd and store
@@ -987,7 +970,6 @@ bfd_init_section_decompress_status (bfd *abfd, sec_ptr sec)
bfd_size_type uncompressed_size;
unsigned int uncompressed_alignment_power = 0;
enum compression_type ch_type;
- z_stream strm;
compression_header_size = bfd_get_compression_header_size (abfd, sec);
if (compression_header_size > MAX_COMPRESSION_HEADER_SIZE)
@@ -1025,10 +1007,11 @@ bfd_init_section_decompress_status (bfd *abfd, sec_ptr sec)
return false;
}
- /* PR28530, reject sizes unsupported by decompress_contents. */
- strm.avail_in = sec->size;
- strm.avail_out = uncompressed_size;
- if (strm.avail_in != sec->size || strm.avail_out != uncompressed_size)
+ /* PR28530, reject sizes unsupported by decompress_contents. zlib
+ supports only up to 4 GiB input on machines whose long is 32 bits. */
+ if (ch_type == ch_compress_zlib
+ && (sec->size != (uLong) sec->size
+ || uncompressed_size != (uLongf) uncompressed_size))
{
bfd_set_error (bfd_error_nonrepresentable_section);
return false;
diff --git a/bfd/config.bfd b/bfd/config.bfd
index 0d79011..4e5a838 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -959,7 +959,6 @@ case "${targ}" in
mips64*el-*-linux*-gnuabi64)
targ_defvec=mips_elf64_trad_le_vec
targ_selvecs="mips_elf64_trad_be_vec mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec"
- want64=true
;;
mips64*el-*-linux*)
targ_defvec=mips_elf32_ntrad_le_vec
@@ -968,7 +967,6 @@ case "${targ}" in
mips64*-*-linux*-gnuabi64)
targ_defvec=mips_elf64_trad_be_vec
targ_selvecs="mips_elf64_trad_le_vec mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec"
- want64=true
;;
mips64*-*-linux*)
targ_defvec=mips_elf32_ntrad_be_vec
diff --git a/bfd/configure b/bfd/configure
index ca7f66f..f69df12 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -702,8 +702,6 @@ REPORT_BUGS_TEXI
REPORT_BUGS_TO
PKGVERSION
DEBUGDIR
-ENABLE_BFD_64_BIT_FALSE
-ENABLE_BFD_64_BIT_TRUE
PLUGINS_FALSE
PLUGINS_TRUE
LARGEFILE_CPPFLAGS
@@ -11155,7 +11153,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11158 "configure"
+#line 11156 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11261,7 +11259,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11264 "configure"
+#line 11262 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11930,56 +11928,6 @@ else
enable_64_bit_bfd=no
fi
-
-if test "x$enable_64_bit_bfd" = "xno"; then :
- # The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5
-$as_echo_n "checking size of void *... " >&6; }
-if ${ac_cv_sizeof_void_p+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then :
-
-else
- if test "$ac_cv_type_void_p" = yes; then
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (void *)
-See \`config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_void_p=0
- fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5
-$as_echo "$ac_cv_sizeof_void_p" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
-_ACEOF
-
-
- if test "x$ac_cv_sizeof_void_p" = "x8"; then :
- enable_64_bit_bfd=yes
-fi
-
-fi
-
- if test "x$enable_64_bit_bfd" = "xyes"; then
- ENABLE_BFD_64_BIT_TRUE=
- ENABLE_BFD_64_BIT_FALSE='#'
-else
- ENABLE_BFD_64_BIT_TRUE='#'
- ENABLE_BFD_64_BIT_FALSE=
-fi
-
-
if test $enable_64_bit_bfd = yes ; then
want64=true
else
@@ -17677,10 +17625,6 @@ if test -z "${PLUGINS_TRUE}" && test -z "${PLUGINS_FALSE}"; then
as_fn_error $? "conditional \"PLUGINS\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${ENABLE_BFD_64_BIT_TRUE}" && test -z "${ENABLE_BFD_64_BIT_FALSE}"; then
- as_fn_error $? "conditional \"ENABLE_BFD_64_BIT\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
diff --git a/bfd/configure.ac b/bfd/configure.ac
index 90fad54..e9942d2 100644
--- a/bfd/configure.ac
+++ b/bfd/configure.ac
@@ -81,7 +81,13 @@ if test x$ac_checking != x ; then
AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.])
fi
-BFD_64_BIT
+AC_ARG_ENABLE(64-bit-bfd,
+ AS_HELP_STRING([--enable-64-bit-bfd],
+ [64-bit support (on hosts with narrower word sizes)]),
+ [AS_CASE([$enableval],
+ [yes|no], [],
+ [*], [AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option)])],
+ [enable_64_bit_bfd=no])
if test $enable_64_bit_bfd = yes ; then
want64=true
else
diff --git a/bfd/cpu-riscv.c b/bfd/cpu-riscv.c
index ea25e78..67ee601 100644
--- a/bfd/cpu-riscv.c
+++ b/bfd/cpu-riscv.c
@@ -118,6 +118,7 @@ const struct riscv_spec riscv_priv_specs[] =
{"1.10", PRIV_SPEC_CLASS_1P10},
{"1.11", PRIV_SPEC_CLASS_1P11},
{"1.12", PRIV_SPEC_CLASS_1P12},
+ {"1.13", PRIV_SPEC_CLASS_1P13},
};
/* Get the corresponding CSR version class by giving privilege
diff --git a/bfd/cpu-riscv.h b/bfd/cpu-riscv.h
index 93a3f52..b07fcf8 100644
--- a/bfd/cpu-riscv.h
+++ b/bfd/cpu-riscv.h
@@ -33,6 +33,7 @@ enum riscv_spec_class
PRIV_SPEC_CLASS_1P10,
PRIV_SPEC_CLASS_1P11,
PRIV_SPEC_CLASS_1P12,
+ PRIV_SPEC_CLASS_1P13,
PRIV_SPEC_CLASS_DRAFT,
};
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
index bc17347..a62c952 100644
--- a/bfd/dwarf2.c
+++ b/bfd/dwarf2.c
@@ -5513,7 +5513,7 @@ _bfd_dwarf2_slurp_debug_info (bfd *abfd, bfd *debug_bfd,
if (! find_debug_info (debug_bfd, debug_sections, msec))
{
/* Case 1: only one info section. */
- total_size = msec->size;
+ total_size = bfd_get_section_limit_octets (debug_bfd, msec);
if (! read_section (debug_bfd, &stash->debug_sections[debug_info],
symbols, 0,
&stash->f.dwarf_info_buffer, &total_size))
@@ -5528,13 +5528,14 @@ _bfd_dwarf2_slurp_debug_info (bfd *abfd, bfd *debug_bfd,
{
if (bfd_section_size_insane (debug_bfd, msec))
goto restore_vma;
+ bfd_size_type readsz = bfd_get_section_limit_octets (debug_bfd, msec);
/* Catch PR25070 testcase overflowing size calculation here. */
- if (total_size + msec->size < total_size)
+ if (total_size + readsz < total_size)
{
bfd_set_error (bfd_error_no_memory);
goto restore_vma;
}
- total_size += msec->size;
+ total_size += readsz;
}
stash->f.dwarf_info_buffer = (bfd_byte *) bfd_malloc (total_size);
@@ -5546,10 +5547,8 @@ _bfd_dwarf2_slurp_debug_info (bfd *abfd, bfd *debug_bfd,
msec;
msec = find_debug_info (debug_bfd, debug_sections, msec))
{
- bfd_size_type size;
-
- size = msec->size;
- if (size == 0)
+ bfd_size_type readsz = bfd_get_section_limit_octets (debug_bfd, msec);
+ if (readsz == 0)
continue;
if (!(bfd_simple_get_relocated_section_contents
@@ -5557,7 +5556,7 @@ _bfd_dwarf2_slurp_debug_info (bfd *abfd, bfd *debug_bfd,
symbols)))
goto restore_vma;
- total_size += size;
+ total_size += readsz;
}
}
diff --git a/bfd/ecoff-bfd.h b/bfd/ecoff-bfd.h
index a1371fa..cb86960 100644
--- a/bfd/ecoff-bfd.h
+++ b/bfd/ecoff-bfd.h
@@ -18,6 +18,8 @@
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
+extern asection _bfd_ecoff_scom_section;
+
extern bool bfd_ecoff_set_gp_value
(bfd *abfd, bfd_vma gp_value);
extern bool bfd_ecoff_set_regmasks
diff --git a/bfd/ecoff.c b/bfd/ecoff.c
index 361f488..a77107b 100644
--- a/bfd/ecoff.c
+++ b/bfd/ecoff.c
@@ -661,18 +661,6 @@ _bfd_ecoff_slurp_symbolic_info (bfd *abfd,
/* ECOFF symbol table routines. The ECOFF symbol table is described
in gcc/mips-tfile.c. */
-/* ECOFF uses two common sections. One is the usual one, and the
- other is for small objects. All the small objects are kept
- together, and then referenced via the gp pointer, which yields
- faster assembler code. This is what we use for the small common
- section. */
-static asection ecoff_scom_section;
-static const asymbol ecoff_scom_symbol =
- GLOBAL_SYM_INIT (SCOMMON, &ecoff_scom_section);
-static asection ecoff_scom_section =
- BFD_FAKE_SECTION (ecoff_scom_section, &ecoff_scom_symbol,
- SCOMMON, 0, SEC_IS_COMMON | SEC_SMALL_DATA);
-
/* Create an empty symbol. */
asymbol *
@@ -813,7 +801,7 @@ ecoff_set_symbol_info (bfd *abfd,
}
/* Fall through. */
case scSCommon:
- asym->section = &ecoff_scom_section;
+ asym->section = &_bfd_ecoff_scom_section;
asym->flags = 0;
break;
case scVarRegister:
@@ -3144,9 +3132,9 @@ _bfd_ecoff_write_armap (bfd *abfd,
complain that the index is out of date. Actually, the Ultrix
linker just checks the archive name; the GNU linker may check the
date. */
- stat (bfd_get_filename (abfd), &statbuf);
- _bfd_ar_spacepad (hdr.ar_date, sizeof (hdr.ar_date), "%ld",
- (long) (statbuf.st_mtime + 60));
+ if (stat (bfd_get_filename (abfd), &statbuf) == 0)
+ _bfd_ar_spacepad (hdr.ar_date, sizeof (hdr.ar_date), "%ld",
+ (long) (statbuf.st_mtime + ARMAP_TIME_OFFSET));
/* The DECstation uses zeroes for the uid, gid and mode of the
armap. */
@@ -3441,7 +3429,7 @@ ecoff_link_add_externals (bfd *abfd,
}
/* Fall through. */
case scSCommon:
- section = &ecoff_scom_section;
+ section = &_bfd_ecoff_scom_section;
break;
case scSUndefined:
section = bfd_und_section_ptr;
diff --git a/bfd/ecofflink.c b/bfd/ecofflink.c
index c193491..ce1bd41 100644
--- a/bfd/ecofflink.c
+++ b/bfd/ecofflink.c
@@ -32,7 +32,18 @@
#include "coff/ecoff.h"
#include "libcoff.h"
#include "libecoff.h"
-
+
+/* ECOFF uses two common sections. One is the usual one, and the
+ other is for small objects. All the small objects are kept
+ together, and then referenced via the gp pointer, which yields
+ faster assembler code. This is what we use for the small common
+ section. */
+static const asymbol ecoff_scom_symbol =
+ GLOBAL_SYM_INIT (SCOMMON, &_bfd_ecoff_scom_section);
+asection _bfd_ecoff_scom_section =
+ BFD_FAKE_SECTION (_bfd_ecoff_scom_section, &ecoff_scom_symbol,
+ SCOMMON, 0, SEC_IS_COMMON | SEC_SMALL_DATA);
+
/* Routines to swap auxiliary information in and out. I am assuming
that the auxiliary information format is always going to be target
independent. */
diff --git a/bfd/elf-attrs.c b/bfd/elf-attrs.c
index f9fe088..bc653d7 100644
--- a/bfd/elf-attrs.c
+++ b/bfd/elf-attrs.c
@@ -25,11 +25,10 @@
#include "elf-bfd.h"
/* Return the number of bytes needed by I in uleb128 format. */
-static int
-uleb128_size (unsigned int i)
+static uint32_t
+uleb128_size (uint32_t i)
{
- int size;
- size = 1;
+ uint32_t size = 1;
while (i >= 0x80)
{
i >>= 7;
@@ -54,9 +53,18 @@ is_default_attr (obj_attribute *attr)
return true;
}
+/* Return the vendor name for a given object attributes section. */
+static const char *
+obj_attr_v1_vendor_name (bfd *abfd, int vendor)
+{
+ return (vendor == OBJ_ATTR_PROC
+ ? get_elf_backend_data (abfd)->obj_attrs_vendor
+ : "gnu");
+}
+
/* Return the size of a single attribute. */
static bfd_vma
-obj_attr_size (unsigned int tag, obj_attribute *attr)
+obj_attr_v1_size (unsigned int tag, obj_attribute *attr)
{
bfd_vma size;
@@ -71,26 +79,17 @@ obj_attr_size (unsigned int tag, obj_attribute *attr)
return size;
}
-/* Return the vendor name for a given object attributes section. */
-static const char *
-vendor_obj_attr_name (bfd *abfd, int vendor)
-{
- return (vendor == OBJ_ATTR_PROC
- ? get_elf_backend_data (abfd)->obj_attrs_vendor
- : "gnu");
-}
-
/* Return the size of the object attributes section for VENDOR
(OBJ_ATTR_PROC or OBJ_ATTR_GNU), or 0 if there are no attributes
for that vendor to record and the vendor is OBJ_ATTR_GNU. */
static bfd_vma
-vendor_obj_attr_size (bfd *abfd, int vendor)
+vendor_obj_attrs_v1_size (bfd *abfd, int vendor)
{
bfd_vma size;
obj_attribute *attr;
obj_attribute_list *list;
int i;
- const char *vendor_name = vendor_obj_attr_name (abfd, vendor);
+ const char *vendor_name = obj_attr_v1_vendor_name (abfd, vendor);
if (!vendor_name)
return 0;
@@ -98,12 +97,12 @@ vendor_obj_attr_size (bfd *abfd, int vendor)
attr = elf_known_obj_attributes (abfd)[vendor];
size = 0;
for (i = LEAST_KNOWN_OBJ_ATTRIBUTE; i < NUM_KNOWN_OBJ_ATTRIBUTES; i++)
- size += obj_attr_size (i, &attr[i]);
+ size += obj_attr_v1_size (i, &attr[i]);
for (list = elf_other_obj_attributes (abfd)[vendor];
list;
list = list->next)
- size += obj_attr_size (list->tag, &list->attr);
+ size += obj_attr_v1_size (list->tag, &list->attr);
/* <size> <vendor_name> NUL 0x1 <size> */
return (size
@@ -111,23 +110,28 @@ vendor_obj_attr_size (bfd *abfd, int vendor)
: 0);
}
+static bfd_vma
+bfd_elf_obj_attrs_v1_size (bfd *abfd)
+{
+ bfd_vma size = 0;
+ size = vendor_obj_attrs_v1_size (abfd, OBJ_ATTR_PROC);
+ size += vendor_obj_attrs_v1_size (abfd, OBJ_ATTR_GNU);
+ if (size > 0)
+ size += sizeof(uint8_t); /* <format-version: ‘A’> */
+ return size;
+}
+
/* Return the size of the object attributes section. */
bfd_vma
bfd_elf_obj_attr_size (bfd *abfd)
{
- bfd_vma size;
-
- size = vendor_obj_attr_size (abfd, OBJ_ATTR_PROC);
- size += vendor_obj_attr_size (abfd, OBJ_ATTR_GNU);
-
- /* 'A' <sections for each vendor> */
- return (size ? size + 1 : 0);
+ return bfd_elf_obj_attrs_v1_size (abfd);
}
/* Write VAL in uleb128 format to P, returning a pointer to the
following byte. */
static bfd_byte *
-write_uleb128 (bfd_byte *p, unsigned int val)
+write_uleb128 (bfd_byte *p, uint32_t val)
{
bfd_byte c;
do
@@ -145,7 +149,7 @@ write_uleb128 (bfd_byte *p, unsigned int val)
/* Write attribute ATTR to butter P, and return a pointer to the following
byte. */
static bfd_byte *
-write_obj_attribute (bfd_byte *p, unsigned int tag, obj_attribute *attr)
+write_obj_attr_v1 (bfd_byte *p, unsigned int tag, obj_attribute *attr)
{
/* Suppress default entries. */
if (is_default_attr (attr))
@@ -169,14 +173,14 @@ write_obj_attribute (bfd_byte *p, unsigned int tag, obj_attribute *attr)
/* Write the contents of the object attributes section (length SIZE)
for VENDOR to CONTENTS. */
static void
-vendor_set_obj_attr_contents (bfd *abfd, bfd_byte *contents, bfd_vma size,
- int vendor)
+write_vendor_obj_attrs_v1 (bfd *abfd, bfd_byte *contents, bfd_vma size,
+ int vendor)
{
bfd_byte *p;
obj_attribute *attr;
obj_attribute_list *list;
int i;
- const char *vendor_name = vendor_obj_attr_name (abfd, vendor);
+ const char *vendor_name = obj_attr_v1_vendor_name (abfd, vendor);
size_t vendor_length = strlen (vendor_name) + 1;
p = contents;
@@ -194,37 +198,40 @@ vendor_set_obj_attr_contents (bfd *abfd, bfd_byte *contents, bfd_vma size,
unsigned int tag = i;
if (get_elf_backend_data (abfd)->obj_attrs_order)
tag = get_elf_backend_data (abfd)->obj_attrs_order (i);
- p = write_obj_attribute (p, tag, &attr[tag]);
+ p = write_obj_attr_v1 (p, tag, &attr[tag]);
}
for (list = elf_other_obj_attributes (abfd)[vendor];
list;
list = list->next)
- p = write_obj_attribute (p, list->tag, &list->attr);
+ p = write_obj_attr_v1 (p, list->tag, &list->attr);
}
-/* Write the contents of the object attributes section to CONTENTS. */
-void
-bfd_elf_set_obj_attr_contents (bfd *abfd, bfd_byte *contents, bfd_vma size)
+static void
+write_obj_attr_section_v1 (bfd *abfd, bfd_byte *buffer, bfd_vma size)
{
- bfd_byte *p;
- int vendor;
- bfd_vma my_size;
+ bfd_byte *p = buffer;
- p = contents;
+ /* <format-version: ‘A’> */
*(p++) = 'A';
- my_size = 1;
- for (vendor = OBJ_ATTR_FIRST; vendor <= OBJ_ATTR_LAST; vendor++)
+
+ for (int vendor = OBJ_ATTR_FIRST; vendor <= OBJ_ATTR_LAST; ++vendor)
{
- bfd_vma vendor_size = vendor_obj_attr_size (abfd, vendor);
- if (vendor_size)
- vendor_set_obj_attr_contents (abfd, p, vendor_size, vendor);
+ bfd_vma vendor_size = vendor_obj_attrs_v1_size (abfd, vendor);
+ if (vendor_size > 0)
+ write_vendor_obj_attrs_v1 (abfd, p, vendor_size, vendor);
p += vendor_size;
- my_size += vendor_size;
}
- if (size != my_size)
- abort ();
+ /* We didn't overrun the buffer. */
+ BFD_ASSERT (p <= buffer + size);
+}
+
+/* Write the contents of the object attributes section to CONTENTS. */
+void
+bfd_elf_set_obj_attr_contents (bfd *abfd, bfd_byte *buffer, bfd_vma size)
+{
+ write_obj_attr_section_v1 (abfd, buffer, size);
}
/* Allocate/find an object attribute. */
@@ -482,160 +489,168 @@ _bfd_elf_obj_attrs_arg_type (bfd *abfd, int vendor, unsigned int tag)
}
}
+static void
+bfd_elf_parse_attr_section_v1 (bfd *abfd, bfd_byte *p, bfd_byte *p_end)
+{
+ const char *std_sec = get_elf_backend_data (abfd)->obj_attrs_vendor;
+
+ while (p_end - p >= 4)
+ {
+ size_t len = p_end - p;
+ size_t namelen;
+ size_t section_len;
+ int vendor;
+
+ section_len = bfd_get_32 (abfd, p);
+ p += 4;
+ if (section_len == 0)
+ break;
+ if (section_len > len)
+ section_len = len;
+ if (section_len <= 4)
+ {
+ _bfd_error_handler
+ (_("%pB: error: attribute section length too small: %ld"),
+ abfd, (long) section_len);
+ break;
+ }
+ section_len -= 4;
+ namelen = strnlen ((char *) p, section_len) + 1;
+ if (namelen >= section_len)
+ break;
+ if (std_sec && strcmp ((char *) p, std_sec) == 0)
+ vendor = OBJ_ATTR_PROC;
+ else if (strcmp ((char *) p, "gnu") == 0)
+ vendor = OBJ_ATTR_GNU;
+ else
+ {
+ /* Other vendor section. Ignore it. */
+ p += section_len;
+ continue;
+ }
+
+ p += namelen;
+ section_len -= namelen;
+ while (section_len > 0)
+ {
+ unsigned int tag;
+ unsigned int val;
+ size_t subsection_len;
+ bfd_byte *end, *orig_p;
+
+ orig_p = p;
+ tag = _bfd_safe_read_leb128 (abfd, &p, false, p_end);
+ if (p_end - p >= 4)
+ {
+ subsection_len = bfd_get_32 (abfd, p);
+ p += 4;
+ }
+ else
+ {
+ p = p_end;
+ break;
+ }
+ if (subsection_len > section_len)
+ subsection_len = section_len;
+ section_len -= subsection_len;
+ end = orig_p + subsection_len;
+ if (end < p)
+ break;
+ switch (tag)
+ {
+ case Tag_File:
+ while (p < end)
+ {
+ int type;
+ bool ok = false;
+
+ tag = _bfd_safe_read_leb128 (abfd, &p, false, end);
+ type = _bfd_elf_obj_attrs_arg_type (abfd, vendor, tag);
+ switch (type & (ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_STR_VAL))
+ {
+ case ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_STR_VAL:
+ val = _bfd_safe_read_leb128 (abfd, &p, false, end);
+ ok = elf_add_obj_attr_int_string (abfd, vendor, tag,
+ val, (char *) p,
+ (char *) end);
+ p += strnlen ((char *) p, end - p);
+ if (p < end)
+ p++;
+ break;
+ case ATTR_TYPE_FLAG_STR_VAL:
+ ok = elf_add_obj_attr_string (abfd, vendor, tag,
+ (char *) p,
+ (char *) end);
+ p += strnlen ((char *) p, end - p);
+ if (p < end)
+ p++;
+ break;
+ case ATTR_TYPE_FLAG_INT_VAL:
+ val = _bfd_safe_read_leb128 (abfd, &p, false, end);
+ ok = bfd_elf_add_obj_attr_int (abfd, vendor, tag, val);
+ break;
+ default:
+ abort ();
+ }
+ if (!ok)
+ bfd_perror (_("error adding attribute"));
+ }
+ break;
+ case Tag_Section:
+ case Tag_Symbol:
+ /* Don't have anywhere convenient to attach these.
+ Fall through for now. */
+ default:
+ /* Ignore things we don't know about. */
+ p = end;
+ break;
+ }
+ }
+ }
+}
+
/* Parse an object attributes section. */
void
_bfd_elf_parse_attributes (bfd *abfd, Elf_Internal_Shdr * hdr)
{
- bfd_byte *contents;
- bfd_byte *p;
- bfd_byte *p_end;
- const char *std_sec;
- ufile_ptr filesize;
-
/* PR 17512: file: 2844a11d. */
if (hdr->sh_size == 0)
return;
- filesize = bfd_get_file_size (abfd);
+ ufile_ptr filesize = bfd_get_file_size (abfd);
if (filesize != 0 && hdr->sh_size > filesize)
{
- /* xgettext:c-format */
_bfd_error_handler (_("%pB: error: attribute section '%pA' too big: %#llx"),
abfd, hdr->bfd_section, (long long) hdr->sh_size);
bfd_set_error (bfd_error_invalid_operation);
return;
}
- contents = (bfd_byte *) bfd_malloc (hdr->sh_size);
- if (!contents)
+ bfd_byte *data = (bfd_byte *) bfd_malloc (hdr->sh_size);
+ if (!data)
return;
- if (!bfd_get_section_contents (abfd, hdr->bfd_section, contents, 0,
- hdr->sh_size))
+
+ if (!bfd_get_section_contents (abfd, hdr->bfd_section, data, 0, hdr->sh_size))
+ goto free_data;
+
+ unsigned char *cursor = data;
+
+ /* The first character is the version of the attributes.
+ Currently only version 'A' is recognised here. */
+ if (*cursor != 'A')
{
- free (contents);
- return;
+ _bfd_error_handler (_("%pB: error: unknown attributes version '%c'(%d) "
+ "- expecting 'A'\n"), abfd, *cursor, *cursor);
+ bfd_set_error (bfd_error_wrong_format);
+ goto free_data;
}
- p = contents;
- p_end = p + hdr->sh_size;
- std_sec = get_elf_backend_data (abfd)->obj_attrs_vendor;
- if (*p++ == 'A')
- {
- while (p_end - p >= 4)
- {
- size_t len = p_end - p;
- size_t namelen;
- size_t section_len;
- int vendor;
-
- section_len = bfd_get_32 (abfd, p);
- p += 4;
- if (section_len == 0)
- break;
- if (section_len > len)
- section_len = len;
- if (section_len <= 4)
- {
- _bfd_error_handler
- (_("%pB: error: attribute section length too small: %ld"),
- abfd, (long) section_len);
- break;
- }
- section_len -= 4;
- namelen = strnlen ((char *) p, section_len) + 1;
- if (namelen >= section_len)
- break;
- if (std_sec && strcmp ((char *) p, std_sec) == 0)
- vendor = OBJ_ATTR_PROC;
- else if (strcmp ((char *) p, "gnu") == 0)
- vendor = OBJ_ATTR_GNU;
- else
- {
- /* Other vendor section. Ignore it. */
- p += section_len;
- continue;
- }
+ ++cursor;
- p += namelen;
- section_len -= namelen;
- while (section_len > 0)
- {
- unsigned int tag;
- unsigned int val;
- size_t subsection_len;
- bfd_byte *end, *orig_p;
-
- orig_p = p;
- tag = _bfd_safe_read_leb128 (abfd, &p, false, p_end);
- if (p_end - p >= 4)
- {
- subsection_len = bfd_get_32 (abfd, p);
- p += 4;
- }
- else
- {
- p = p_end;
- break;
- }
- if (subsection_len > section_len)
- subsection_len = section_len;
- section_len -= subsection_len;
- end = orig_p + subsection_len;
- if (end < p)
- break;
- switch (tag)
- {
- case Tag_File:
- while (p < end)
- {
- int type;
- bool ok = false;
-
- tag = _bfd_safe_read_leb128 (abfd, &p, false, end);
- type = _bfd_elf_obj_attrs_arg_type (abfd, vendor, tag);
- switch (type & (ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_STR_VAL))
- {
- case ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_STR_VAL:
- val = _bfd_safe_read_leb128 (abfd, &p, false, end);
- ok = elf_add_obj_attr_int_string (abfd, vendor, tag,
- val, (char *) p,
- (char *) end);
- p += strnlen ((char *) p, end - p);
- if (p < end)
- p++;
- break;
- case ATTR_TYPE_FLAG_STR_VAL:
- ok = elf_add_obj_attr_string (abfd, vendor, tag,
- (char *) p,
- (char *) end);
- p += strnlen ((char *) p, end - p);
- if (p < end)
- p++;
- break;
- case ATTR_TYPE_FLAG_INT_VAL:
- val = _bfd_safe_read_leb128 (abfd, &p, false, end);
- ok = bfd_elf_add_obj_attr_int (abfd, vendor, tag, val);
- break;
- default:
- abort ();
- }
- if (!ok)
- bfd_perror (_("error adding attribute"));
- }
- break;
- case Tag_Section:
- case Tag_Symbol:
- /* Don't have anywhere convenient to attach these.
- Fall through for now. */
- default:
- /* Ignore things we don't know about. */
- p = end;
- break;
- }
- }
- }
- }
- free (contents);
+ bfd_elf_parse_attr_section_v1 (abfd, cursor, data + hdr->sh_size);
+
+ free_data:
+ free (data);
}
/* Merge common object attributes from IBFD into OBFD. Raise an error
@@ -670,9 +685,9 @@ _bfd_elf_merge_object_attributes (bfd *ibfd, struct bfd_link_info *info)
{
_bfd_error_handler
/* xgettext:c-format */
- (_("error: %pB: object has vendor-specific contents that "
- "must be processed by the '%s' toolchain"),
- ibfd, in_attr->s);
+ (_("error: %pB: object has vendor-specific contents that "
+ "must be processed by the '%s' toolchain"),
+ ibfd, in_attr->s);
return false;
}
@@ -802,3 +817,21 @@ _bfd_elf_merge_unknown_attribute_list (bfd *ibfd, bfd *obfd)
return result;
}
+
+bool _bfd_elf_write_section_build_attributes (bfd *abfd,
+ struct bfd_link_info *info ATTRIBUTE_UNUSED)
+{
+ asection *sec = elf_obj_build_attributes (abfd);
+
+ if (sec == NULL)
+ return true;
+
+ bfd_byte *contents = (bfd_byte *) bfd_malloc (sec->size);
+ if (contents == NULL)
+ return false; /* Bail out and fail. */
+
+ bfd_elf_set_obj_attr_contents (abfd, contents, sec->size);
+ bfd_set_section_contents (abfd, sec, contents, 0, sec->size);
+ free (contents);
+ return true;
+}
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index d2bf8e5..5903d85 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -1676,7 +1676,7 @@ struct elf_backend_data
Returns the value to be installed in the ST_SHNDX field of the
emitted symbol. If not defined, the value is left unchanged. */
unsigned int (*symbol_section_index) (bfd *, elf_symbol_type *);
-
+
/* Called when a section has extra reloc sections. */
bool (*init_secondary_reloc_section) (bfd *, Elf_Internal_Shdr *,
const char *, unsigned int);
@@ -2030,6 +2030,9 @@ struct output_elf_obj_tdata
created. */
asection *sframe;
+ /* Holds the build attributes section if it exists. */
+ asection *obj_build_attributes;
+
/* Used to determine if the e_flags field has been initialized */
bool flags_init;
};
@@ -2214,6 +2217,8 @@ struct elf_obj_tdata
#define elf_next_file_pos(bfd) (elf_tdata(bfd) -> o->next_file_pos)
#define elf_stack_flags(bfd) (elf_tdata(bfd) -> o->stack_flags)
#define elf_sframe(bfd) (elf_tdata(bfd) -> o->sframe)
+#define elf_obj_build_attributes(bfd) \
+ (elf_tdata(bfd) -> o->obj_build_attributes)
#define elf_shstrtab(bfd) (elf_tdata(bfd) -> o->strtab_ptr)
#define elf_onesymtab(bfd) (elf_tdata(bfd) -> symtab_section)
#define elf_symtab_shndx_list(bfd) (elf_tdata(bfd) -> symtab_shndx_list)
@@ -3065,6 +3070,8 @@ extern obj_attribute *bfd_elf_add_obj_attr_int_string
bfd_elf_add_obj_attr_int_string ((BFD), OBJ_ATTR_PROC, (TAG), \
(INTVAL), (STRVAL))
+extern bool _bfd_elf_write_section_build_attributes
+ (bfd *, struct bfd_link_info *);
extern char *_bfd_elf_attr_strdup (bfd *, const char *);
extern void _bfd_elf_copy_obj_attributes (bfd *, bfd *);
extern int _bfd_elf_obj_attrs_arg_type (bfd *, int, unsigned int);
@@ -3078,6 +3085,8 @@ extern bool elf_read_notes (bfd *, file_ptr, bfd_size_type, size_t);
extern bool _bfd_elf_parse_gnu_properties
(bfd *, Elf_Internal_Note *);
+extern elf_property_list * _bfd_elf_find_property
+ (elf_property_list *, unsigned int, elf_property_list **);
extern elf_property * _bfd_elf_get_property
(bfd *, unsigned int, unsigned int);
extern bfd *_bfd_elf_link_setup_gnu_properties
diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c
index 78b3ecb..0250a8f 100644
--- a/bfd/elf-eh-frame.c
+++ b/bfd/elf-eh-frame.c
@@ -2506,7 +2506,7 @@ write_dwarf_eh_frame_hdr (bfd *abfd, struct bfd_link_info *info)
/* FIXME: octets_per_byte. */
if (!bfd_set_section_contents (abfd, sec->output_section, contents,
(file_ptr) sec->output_offset,
- sec->size))
+ size))
retval = false;
out:
free (contents);
diff --git a/bfd/elf-ifunc.c b/bfd/elf-ifunc.c
index f9569b8..96b8288 100644
--- a/bfd/elf-ifunc.c
+++ b/bfd/elf-ifunc.c
@@ -139,9 +139,9 @@ _bfd_elf_allocate_ifunc_dyn_relocs (struct bfd_link_info *info,
|| info->export_dynamic)
&& h->pointer_equality_needed)
{
- info->callbacks->einfo
+ info->callbacks->fatal
/* xgettext:c-format */
- (_("%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer "
+ (_("%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer "
"equality in `%pB' can not be used when making an "
"executable; recompile with -fPIE and relink with -pie\n"),
h->root.root.string,
diff --git a/bfd/elf-m10300.c b/bfd/elf-m10300.c
index ed399da..3aeaa06 100644
--- a/bfd/elf-m10300.c
+++ b/bfd/elf-m10300.c
@@ -2646,8 +2646,8 @@ mn10300_elf_relax_section (bfd *abfd,
bfd_vma align_gap_adjustment;
if (bfd_link_relocatable (link_info))
- (*link_info->callbacks->einfo)
- (_("%P%F: --relax and -r may not be used together\n"));
+ link_info->callbacks->fatal
+ (_("%P: --relax and -r may not be used together\n"));
/* Assume nothing changes. */
*again = false;
diff --git a/bfd/elf-properties.c b/bfd/elf-properties.c
index f150ab4..07ab380 100644
--- a/bfd/elf-properties.c
+++ b/bfd/elf-properties.c
@@ -28,37 +28,93 @@
#include "libbfd.h"
#include "elf-bfd.h"
+/* Find a property. */
+elf_property_list *
+_bfd_elf_find_property (elf_property_list *l,
+ unsigned int type,
+ elf_property_list **prev)
+{
+ if (prev != NULL)
+ *prev = NULL;
+
+ /* The properties are supposed to be sorted in the list. */
+ for (elf_property_list *n = l; n != NULL; n = n->next)
+ {
+ if (type == n->property.pr_type)
+ return n;
+ else if (type < n->property.pr_type)
+ break;
+ else if (prev != NULL)
+ *prev = n;
+ }
+ return NULL;
+}
+
+/* Insert a property into the list after prev. */
+static elf_property_list *
+_bfd_elf_insert_property (elf_property_list *l,
+ elf_property_list *what,
+ elf_property_list *prev)
+{
+ if (l == NULL) // First node.
+ return what;
+
+ if (prev == NULL) // Prepend.
+ {
+ what->next = l;
+ return what;
+ }
+
+ what->next = prev->next;
+ prev->next = what;
+ return l;
+}
+
+/* Remove a property from the list after prev. */
+static elf_property_list *
+_bfd_elf_remove_property (elf_property_list *l,
+ elf_property_list *what,
+ elf_property_list *prev)
+{
+ if (l == NULL)
+ return l;
+
+ if (prev == NULL) // Pop front
+ {
+ BFD_ASSERT (what == l);
+ l = what->next;
+ }
+ else
+ prev->next = what->next;
+
+ what->next = NULL;
+ return l;
+}
+
/* Get a property, allocate a new one if needed. */
elf_property *
_bfd_elf_get_property (bfd *abfd, unsigned int type, unsigned int datasz)
{
- elf_property_list *p, **lastp;
-
if (bfd_get_flavour (abfd) != bfd_target_elf_flavour)
{
/* Never should happen. */
abort ();
}
- /* Keep the property list in order of type. */
- lastp = &elf_properties (abfd);
- for (p = *lastp; p; p = p->next)
+ elf_property_list *prev;
+ elf_property_list *p =
+ _bfd_elf_find_property (elf_properties (abfd), type, &prev);
+ if (p != NULL) /* Reuse the existing entry. */
{
- /* Reuse the existing entry. */
- if (type == p->property.pr_type)
+ if (datasz > p->property.pr_datasz)
{
- if (datasz > p->property.pr_datasz)
- {
- /* This can happen when mixing 32-bit and 64-bit objects. */
- p->property.pr_datasz = datasz;
- }
- return &p->property;
+ /* This can happen when mixing 32-bit and 64-bit objects. */
+ p->property.pr_datasz = datasz;
}
- else if (type < p->property.pr_type)
- break;
- lastp = &p->next;
+ return &p->property;
}
+
p = (elf_property_list *) bfd_alloc (abfd, sizeof (*p));
if (p == NULL)
{
@@ -66,11 +122,14 @@ _bfd_elf_get_property (bfd *abfd, unsigned int type, unsigned int datasz)
abfd);
_exit (EXIT_FAILURE);
}
+
memset (p, 0, sizeof (*p));
p->property.pr_type = type;
p->property.pr_datasz = datasz;
- p->next = *lastp;
- *lastp = p;
+
+ elf_properties (abfd) =
+ _bfd_elf_insert_property (elf_properties (abfd), p, prev);
+
return &p->property;
}
@@ -357,23 +416,16 @@ static elf_property *
elf_find_and_remove_property (elf_property_list **listp,
unsigned int type, bool rm)
{
- elf_property_list *list;
+ elf_property_list *prev;
+ elf_property_list *p = _bfd_elf_find_property (*listp, type, &prev);
+ if (p == NULL)
+ return NULL;
- for (list = *listp; list; list = list->next)
- {
- if (type == list->property.pr_type)
- {
- /* Remove this property. */
- if (rm)
- *listp = list->next;
- return &list->property;
- }
- else if (type < list->property.pr_type)
- break;
- listp = &list->next;
- }
+ if (rm)
+ *listp = _bfd_elf_remove_property (*listp, p, prev);
- return NULL;
+ /* FIXME: we leak memory with this approach. */
+ return &p->property;
}
/* Merge GNU property list *LISTP in ABFD with FIRST_PBFD. */
@@ -636,13 +688,10 @@ _bfd_elf_link_create_gnu_property_sec (struct bfd_link_info *info, bfd *elf_bfd,
| SEC_READONLY
| SEC_HAS_CONTENTS
| SEC_DATA));
- if (sec == NULL)
- info->callbacks->einfo (_("%F%P: failed to create GNU property section\n"));
-
- if (!bfd_set_section_alignment (sec,
- elfclass == ELFCLASS64 ? 3 : 2))
- info->callbacks->einfo (_("%F%pA: failed to align section\n"),
- sec);
+ if (sec == NULL
+ || !bfd_set_section_alignment (sec, elfclass == ELFCLASS64 ? 3 : 2))
+ info->callbacks->fatal (_("%P: failed to create %s\n"),
+ NOTE_GNU_PROPERTY_SECTION_NAME);
elf_section_type (sec) = SHT_NOTE;
return sec;
diff --git a/bfd/elf-sframe.c b/bfd/elf-sframe.c
index 67ed874..97e0073 100644
--- a/bfd/elf-sframe.c
+++ b/bfd/elf-sframe.c
@@ -98,12 +98,13 @@ sframe_decoder_set_func_reloc_index (struct sframe_dec_info *sfd_info,
static bool
sframe_decoder_init_func_bfdinfo (bfd *abfd,
- asection *sec,
+ const asection *sec,
struct sframe_dec_info *sfd_info,
- struct elf_reloc_cookie *cookie)
+ const struct elf_reloc_cookie *cookie)
{
unsigned int fde_count;
unsigned int func_bfdinfo_size, i;
+ const Elf_Internal_Rela *rel;
fde_count = sframe_decoder_get_num_fidx (sfd_info->sfd_ctx);
sfd_info->sfd_fde_count = fde_count;
@@ -118,19 +119,17 @@ sframe_decoder_init_func_bfdinfo (bfd *abfd,
if ((sec->flags & SEC_LINKER_CREATED) && cookie->rels == NULL)
return true;
+ BFD_ASSERT (cookie->rels + fde_count == cookie->relend);
+ rel = cookie->rels;
for (i = 0; i < fde_count; i++)
{
- cookie->rel = cookie->rels + i;
- BFD_ASSERT (cookie->rel < cookie->relend);
/* Bookkeep the relocation offset and relocation index of each function
for later use. */
- sframe_decoder_set_func_r_offset (sfd_info, i, cookie->rel->r_offset);
- sframe_decoder_set_func_reloc_index (sfd_info, i,
- (cookie->rel - cookie->rels));
+ sframe_decoder_set_func_r_offset (sfd_info, i, rel->r_offset);
+ sframe_decoder_set_func_reloc_index (sfd_info, i, i);
- cookie->rel++;
+ rel++;
}
- BFD_ASSERT (cookie->rel == cookie->relend);
return true;
}
diff --git a/bfd/elf.c b/bfd/elf.c
index 0e40d6d..14ce15c 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -504,17 +504,44 @@ bfd_elf_get_elf_syms (bfd *ibfd,
shndx = extshndx_buf;
isym < isymend;
esym += extsym_size, isym++, shndx = shndx != NULL ? shndx + 1 : NULL)
- if (!(*bed->s->swap_symbol_in) (ibfd, esym, shndx, isym))
- {
- symoffset += (esym - (bfd_byte *) extsym_buf) / extsym_size;
- /* xgettext:c-format */
- _bfd_error_handler (_("%pB symbol number %lu references"
- " nonexistent SHT_SYMTAB_SHNDX section"),
- ibfd, (unsigned long) symoffset);
- free (alloc_intsym);
- intsym_buf = NULL;
- goto out1;
- }
+ {
+ if (!(*bed->s->swap_symbol_in) (ibfd, esym, shndx, isym))
+ {
+ symoffset += (esym - (bfd_byte *) extsym_buf) / extsym_size;
+ /* xgettext:c-format */
+ _bfd_error_handler (_("%pB symbol number %lu references"
+ " nonexistent SHT_SYMTAB_SHNDX section"),
+ ibfd, (unsigned long) symoffset);
+ free (alloc_intsym);
+ intsym_buf = NULL;
+ goto out1;
+ }
+
+ /* PR 33019: Do not accept unsupported binding values - they will
+ likely cause problems later on. */
+ int bind = ELF_ST_BIND (isym->st_info);
+ if (bind > STB_WEAK && bind < STB_LOOS)
+ {
+ /* xgettext:c-format */
+ _bfd_error_handler (_("%pB symbol number %lu uses unsupported binding of %u"),
+ ibfd, (unsigned long) (isym - intsym_buf), bind);
+ free (alloc_intsym);
+ intsym_buf = NULL;
+ goto out1;
+ }
+
+ /* Paranoia: Also refuse to accept the only undefined symbol type: 7. */
+ int t = ELF_ST_TYPE (isym->st_info);
+ if (t == 7)
+ {
+ /* xgettext:c-format */
+ _bfd_error_handler (_("%pB symbol number %lu uses unsupported type of %u"),
+ ibfd, (unsigned long) (isym - intsym_buf), t);
+ free (alloc_intsym);
+ intsym_buf = NULL;
+ goto out1;
+ }
+ }
out1:
_bfd_munmap_temporary (alloc_extshndx, alloc_extshndx_size);
@@ -3469,7 +3496,7 @@ _bfd_elf_init_reloc_shdr (bfd *abfd,
struct bfd_elf_section_reloc_data *reldata,
const char *sec_name,
bool use_rela_p,
- bool delay_st_name_p)
+ bool delay_sh_name_p)
{
Elf_Internal_Shdr *rel_hdr;
const struct elf_backend_data *bed = get_elf_backend_data (abfd);
@@ -3480,7 +3507,7 @@ _bfd_elf_init_reloc_shdr (bfd *abfd,
return false;
reldata->hdr = rel_hdr;
- if (delay_st_name_p)
+ if (delay_sh_name_p)
rel_hdr->sh_name = (unsigned int) -1;
else if (!_bfd_elf_set_reloc_sh_name (abfd, rel_hdr, sec_name,
use_rela_p))
@@ -3526,7 +3553,7 @@ elf_fake_sections (bfd *abfd, asection *asect, void *fsarg)
Elf_Internal_Shdr *this_hdr;
unsigned int sh_type;
const char *name = asect->name;
- bool delay_st_name_p = false;
+ bool delay_sh_name_p = false;
bfd_vma mask;
if (arg->failed)
@@ -3542,16 +3569,18 @@ elf_fake_sections (bfd *abfd, asection *asect, void *fsarg)
if (arg->link_info
&& (abfd->flags & BFD_COMPRESS) != 0
&& (asect->flags & SEC_DEBUGGING) != 0
+ && (asect->flags & SEC_ALLOC) == 0
+ && (asect->flags & SEC_HAS_CONTENTS) != 0
&& name[1] == 'd'
&& name[6] == '_')
{
/* If this section will be compressed, delay adding section
name to section name section after it is compressed in
_bfd_elf_assign_file_positions_for_non_load. */
- delay_st_name_p = true;
+ delay_sh_name_p = true;
}
- if (delay_st_name_p)
+ if (delay_sh_name_p)
this_hdr->sh_name = (unsigned int) -1;
else
{
@@ -3750,14 +3779,14 @@ elf_fake_sections (bfd *abfd, asection *asect, void *fsarg)
{
if (esd->rel.count && esd->rel.hdr == NULL
&& !_bfd_elf_init_reloc_shdr (abfd, &esd->rel, name,
- false, delay_st_name_p))
+ false, delay_sh_name_p))
{
arg->failed = true;
return;
}
if (esd->rela.count && esd->rela.hdr == NULL
&& !_bfd_elf_init_reloc_shdr (abfd, &esd->rela, name,
- true, delay_st_name_p))
+ true, delay_sh_name_p))
{
arg->failed = true;
return;
@@ -3768,7 +3797,7 @@ elf_fake_sections (bfd *abfd, asection *asect, void *fsarg)
? &esd->rela : &esd->rel),
name,
asect->use_rela_p,
- delay_st_name_p))
+ delay_sh_name_p))
{
arg->failed = true;
return;
@@ -4473,7 +4502,11 @@ elf_map_symbols (bfd *abfd, unsigned int *pnum_locals)
asection *sec = sym->section;
if (sec->owner != abfd)
- sec = sec->output_section;
+ {
+ sec = sec->output_section;
+ if (sec == NULL)
+ return false;
+ }
sect_syms[sec->index] = syms[idx];
}
@@ -5008,8 +5041,8 @@ _bfd_elf_map_sections_to_segments (bfd *abfd,
&& need_layout != NULL
&& bed->size_relative_relocs
&& !bed->size_relative_relocs (info, need_layout))
- info->callbacks->einfo
- (_("%F%P: failed to size relative relocations\n"));
+ info->callbacks->fatal
+ (_("%P: failed to size relative relocations\n"));
}
if (no_user_phdrs && bfd_count_sections (abfd) != 0)
@@ -5920,8 +5953,7 @@ assign_file_positions_for_load_sections (bfd *abfd,
asection **secpp;
bfd_vma off_adjust; /* Octets. */
bool no_contents;
- bfd_size_type p_align;
- bool p_align_p;
+ bfd_size_type align_pagesize;
/* An ELF segment (described by Elf_Internal_Phdr) may contain a
number of sections with contents contributing to both p_filesz
@@ -5932,8 +5964,6 @@ assign_file_positions_for_load_sections (bfd *abfd,
p = phdrs + m->idx;
p->p_type = m->p_type;
p->p_flags = m->p_flags;
- p_align = bed->p_align;
- p_align_p = false;
if (m->count == 0)
p->p_vaddr = m->p_vaddr_offset * opb;
@@ -5947,6 +5977,7 @@ assign_file_positions_for_load_sections (bfd *abfd,
else
p->p_paddr = (m->sections[0]->lma + m->p_vaddr_offset) * opb;
+ align_pagesize = 0;
if (p->p_type == PT_LOAD
&& (abfd->flags & D_PAGED) != 0)
{
@@ -5960,15 +5991,17 @@ assign_file_positions_for_load_sections (bfd *abfd,
segment. */
if (m->p_align_valid)
maxpagesize = m->p_align;
- else if (p_align != 0
+ else if (bed->p_align != 0
&& (link_info == NULL
|| !link_info->maxpagesize_is_set))
- /* Set p_align to the default p_align value while laying
- out segments aligning to the maximum page size or the
- largest section alignment. The run-time loader can
- align segments to the default p_align value or the
- maximum page size, depending on system page size. */
- p_align_p = true;
+ /* We will lay out this binary using maxpagesize but set
+ p->p_align later to the possibly smaller bed->p_align.
+ The run-time loader will then be able to load this
+ binary when the system page size is maxpagesize, but if
+ the system page size is smaller can use p->p_align.
+ In either case p->p_align will be increased if
+ necessary to match section alignment. */
+ align_pagesize = bed->p_align;
p->p_align = maxpagesize;
}
@@ -6001,22 +6034,20 @@ assign_file_positions_for_load_sections (bfd *abfd,
align_power = secalign;
}
align = (bfd_size_type) 1 << align_power;
+ /* If a section requires alignment higher than the
+ minimum p_align value, don't reduce a maxpagesize
+ p->p_align set earlier in this function. */
+ if (align > bed->p_align)
+ align_pagesize = 0;
if (align < maxpagesize)
- {
- /* If a section requires alignment higher than the
- default p_align value, don't set p_align to the
- default p_align value. */
- if (align > p_align)
- p_align_p = false;
- align = maxpagesize;
- }
+ align = maxpagesize;
else
{
/* If a section requires alignment higher than the
maximum page size, set p_align to the section
alignment. */
- p_align_p = true;
- p_align = align;
+ if ((abfd->flags & D_PAGED) != 0)
+ p->p_align = align;
}
}
@@ -6171,7 +6202,10 @@ assign_file_positions_for_load_sections (bfd *abfd,
align = p->p_align;
if (align < 1)
align = 1;
- p->p_offset = off % align;
+ /* Avoid p_offset of zero, which might be wrongly
+ interpreted as the segment being the first one,
+ containing the file header. PR32763. */
+ p->p_offset = (off + align - 1) % align + 1;
}
}
else
@@ -6185,6 +6219,9 @@ assign_file_positions_for_load_sections (bfd *abfd,
}
}
+ if (align_pagesize)
+ p->p_align = align_pagesize;
+
/* Set up p_filesz, p_memsz, p_align and p_flags from the section
maps. Set filepos for sections in PT_LOAD segments, and in
core files, for sections in PT_NOTE segments.
@@ -6287,27 +6324,28 @@ assign_file_positions_for_load_sections (bfd *abfd,
}
else
{
- if (p->p_type == PT_LOAD)
- {
- this_hdr->sh_offset = sec->filepos = off;
- if (this_hdr->sh_type != SHT_NOBITS)
- off += this_hdr->sh_size;
- }
- else if (this_hdr->sh_type == SHT_NOBITS
- && (this_hdr->sh_flags & SHF_TLS) != 0
- && this_hdr->sh_offset == 0)
+ if (this_hdr->sh_type == SHT_NOBITS
+ && (this_hdr->sh_flags & SHF_TLS) != 0
+ && this_hdr->sh_offset == 0)
{
- /* This is a .tbss section that didn't get a PT_LOAD.
- (See _bfd_elf_map_sections_to_segments "Create a
- final PT_LOAD".) Set sh_offset to the value it
- would have if we had created a zero p_filesz and
- p_memsz PT_LOAD header for the section. This
- also makes the PT_TLS header have the same
- p_offset value. */
+ /* Set sh_offset for .tbss sections to their nominal
+ offset after aligning. They are not loaded from
+ disk so the value doesn't really matter, except
+ when the .tbss section is the first one in a
+ PT_TLS segment. In that case it sets the
+ p_offset for the PT_TLS segment, which according
+ to the ELF gABI ought to satisfy
+ p_offset % p_align == p_vaddr % p_align. */
bfd_vma adjust = vma_page_aligned_bias (this_hdr->sh_addr,
off, align);
this_hdr->sh_offset = sec->filepos = off + adjust;
}
+ else if (p->p_type == PT_LOAD)
+ {
+ this_hdr->sh_offset = sec->filepos = off;
+ if (this_hdr->sh_type != SHT_NOBITS)
+ off += this_hdr->sh_size;
+ }
if (this_hdr->sh_type != SHT_NOBITS)
{
@@ -6403,9 +6441,6 @@ assign_file_positions_for_load_sections (bfd *abfd,
print_segment_map (m);
}
}
-
- if (p_align_p)
- p->p_align = p_align;
}
}
@@ -10389,6 +10424,12 @@ elfcore_grok_xstatereg (bfd *abfd, Elf_Internal_Note *note)
}
static bool
+elfcore_grok_sspreg (bfd *abfd, Elf_Internal_Note *note)
+{
+ return elfcore_make_note_pseudosection (abfd, ".reg-ssp", note);
+}
+
+static bool
elfcore_grok_ppc_vmx (bfd *abfd, Elf_Internal_Note *note)
{
return elfcore_make_note_pseudosection (abfd, ".reg-ppc-vmx", note);
@@ -11083,6 +11124,13 @@ elfcore_grok_note (bfd *abfd, Elf_Internal_Note *note)
else
return true;
+ case NT_X86_SHSTK: /* Linux CET extension. */
+ if (note->namesz == 6
+ && strcmp (note->namedata, "LINUX") == 0)
+ return elfcore_grok_sspreg (abfd, note);
+ else
+ return true;
+
case NT_PPC_VMX:
if (note->namesz == 6
&& strcmp (note->namedata, "LINUX") == 0)
@@ -12533,6 +12581,15 @@ elfcore_write_xstatereg (bfd *abfd, char *buf, int *bufsiz,
note_name, NT_X86_XSTATE, xfpregs, size);
}
+static char *
+elfcore_write_sspreg (bfd *abfd, char *buf, int *bufsiz,
+ const void *ssp, int size)
+{
+ const char *note_name = "LINUX";
+ return elfcore_write_note (abfd, buf, bufsiz,
+ note_name, NT_X86_SHSTK, ssp, size);
+}
+
char *
elfcore_write_x86_segbases (bfd *abfd, char *buf, int *bufsiz,
const void *regs, int size)
@@ -13128,6 +13185,8 @@ elfcore_write_register_note (bfd *abfd,
return elfcore_write_xstatereg (abfd, buf, bufsiz, data, size);
if (strcmp (section, ".reg-x86-segbases") == 0)
return elfcore_write_x86_segbases (abfd, buf, bufsiz, data, size);
+ if (strcmp (section, ".reg-ssp") == 0)
+ return elfcore_write_sspreg (abfd, buf, bufsiz, data, size);
if (strcmp (section, ".reg-ppc-vmx") == 0)
return elfcore_write_ppc_vmx (abfd, buf, bufsiz, data, size);
if (strcmp (section, ".reg-ppc-vsx") == 0)
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 10c93e2..c913f2b 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -5074,7 +5074,7 @@ arm_build_one_stub (struct bfd_hash_entry *gen_entry,
section. The user should fix his linker script. */
if (stub_entry->target_section->output_section == NULL
&& info->non_contiguous_regions)
- info->callbacks->einfo (_("%F%P: Could not assign `%pA' to an output section. "
+ info->callbacks->fatal (_("%P: Could not assign `%pA' to an output section. "
"Retry without --enable-non-contiguous-regions.\n"),
stub_entry->target_section);
@@ -18394,6 +18394,9 @@ elf32_arm_output_arch_local_syms (bfd *output_bfd,
struct arm_local_iplt_info **local_iplt;
unsigned int i, num_syms;
+ if (!is_arm_elf (input_bfd))
+ continue;
+
local_iplt = elf32_arm_local_iplt (input_bfd);
if (local_iplt != NULL)
{
diff --git a/bfd/elf32-avr.c b/bfd/elf32-avr.c
index 0c1c074..a98f181 100644
--- a/bfd/elf32-avr.c
+++ b/bfd/elf32-avr.c
@@ -2479,8 +2479,8 @@ elf32_avr_relax_section (bfd *abfd,
shrinkable = false;
if (bfd_link_relocatable (link_info))
- (*link_info->callbacks->einfo)
- (_("%P%F: --relax and -r may not be used together\n"));
+ link_info->callbacks->fatal
+ (_("%P: --relax and -r may not be used together\n"));
htab = avr_link_hash_table (link_info);
if (htab == NULL)
diff --git a/bfd/elf32-bfin.c b/bfd/elf32-bfin.c
index 547661a..7ac95a0 100644
--- a/bfd/elf32-bfin.c
+++ b/bfd/elf32-bfin.c
@@ -5049,11 +5049,8 @@ bfin_adjust_dynamic_symbol (struct bfd_link_info *info,
/* Apply the required alignment. */
s->size = BFD_ALIGN (s->size, (bfd_size_type) (1 << power_of_two));
- if (power_of_two > bfd_section_alignment (s))
- {
- if (!bfd_set_section_alignment (s, power_of_two))
- return false;
- }
+ if (!bfd_link_align_section (s, power_of_two))
+ return false;
/* Define the symbol as being at this point in the section. */
h->root.u.def.section = s;
diff --git a/bfd/elf32-csky.c b/bfd/elf32-csky.c
index dbb603b..47a6389 100644
--- a/bfd/elf32-csky.c
+++ b/bfd/elf32-csky.c
@@ -3726,7 +3726,7 @@ csky_build_one_stub (struct bfd_hash_entry *gen_entry,
section. The user should fix his linker script. */
if (stub_entry->target_section->output_section == NULL
&& info->non_contiguous_regions)
- info->callbacks->einfo (_("%F%P: Could not assign `%pA' to an output section. "
+ info->callbacks->fatal (_("%P: Could not assign `%pA' to an output section. "
"Retry without --enable-non-contiguous-regions.\n"),
stub_entry->target_section);
diff --git a/bfd/elf32-frv.c b/bfd/elf32-frv.c
index a7e8215..b129086 100644
--- a/bfd/elf32-frv.c
+++ b/bfd/elf32-frv.c
@@ -5623,8 +5623,8 @@ elf32_frvfdpic_relax_section (bfd *abfd ATTRIBUTE_UNUSED, asection *sec,
struct _frvfdpic_dynamic_got_plt_info gpinfo;
if (bfd_link_relocatable (info))
- (*info->callbacks->einfo)
- (_("%P%F: --relax and -r may not be used together\n"));
+ info->callbacks->fatal
+ (_("%P: --relax and -r may not be used together\n"));
/* If we return early, we didn't change anything. */
*again = false;
diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c
index ba20bc6..759912d 100644
--- a/bfd/elf32-hppa.c
+++ b/bfd/elf32-hppa.c
@@ -728,7 +728,7 @@ hppa_build_one_stub (struct bfd_hash_entry *bh, void *in_arg)
section. The user should fix his linker script. */
if (hsh->target_section->output_section == NULL
&& info->non_contiguous_regions)
- info->callbacks->einfo (_("%F%P: Could not assign `%pA' to an output "
+ info->callbacks->fatal (_("%P: Could not assign `%pA' to an output "
"section. Retry without "
"--enable-non-contiguous-regions.\n"),
hsh->target_section);
@@ -757,7 +757,7 @@ hppa_build_one_stub (struct bfd_hash_entry *bh, void *in_arg)
section. The user should fix his linker script. */
if (hsh->target_section->output_section == NULL
&& info->non_contiguous_regions)
- info->callbacks->einfo (_("%F%P: Could not assign `%pA' to an output "
+ info->callbacks->fatal (_("%P: Could not assign `%pA' to an output "
"section. Retry without "
"--enable-non-contiguous-regions.\n"),
hsh->target_section);
@@ -838,7 +838,7 @@ hppa_build_one_stub (struct bfd_hash_entry *bh, void *in_arg)
section. The user should fix his linker script. */
if (hsh->target_section->output_section == NULL
&& info->non_contiguous_regions)
- info->callbacks->einfo (_("%F%P: Could not assign `%pA' to an output "
+ info->callbacks->fatal (_("%P: Could not assign `%pA' to an output "
"section. Retry without "
"--enable-non-contiguous-regions.\n"),
hsh->target_section);
@@ -2216,12 +2216,10 @@ elf32_hppa_late_size_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
section. We want this stub right at the end, up
against the .got section. */
int gotalign = bfd_section_alignment (htab->etab.sgot);
- int pltalign = bfd_section_alignment (sec);
int align = gotalign > 3 ? gotalign : 3;
bfd_size_type mask;
- if (align > pltalign)
- bfd_set_section_alignment (sec, align);
+ (void) bfd_link_align_section (sec, align);
mask = ((bfd_size_type) 1 << gotalign) - 1;
sec->size = (sec->size + sizeof (plt_stub) + mask) & ~mask;
}
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index 81301bf..b417cb0 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -1209,6 +1209,10 @@ elf_i386_tls_transition (struct bfd_link_info *info, bfd *abfd,
to
test $foo, %reg1
and convert
+ push foo@GOT[(%reg)]
+ to
+ push $foo
+ and convert
binop foo@GOT[(%reg1)], %reg2
to
binop $foo, %reg2
@@ -1233,7 +1237,7 @@ elf_i386_convert_load_reloc (bfd *abfd, Elf_Internal_Shdr *symtab_hdr,
unsigned int addend;
unsigned int nop;
bfd_vma nop_offset;
- bool is_pic;
+ bool is_pic, is_branch = false;
bool to_reloc_32;
bool abs_symbol;
unsigned int r_type;
@@ -1301,9 +1305,26 @@ elf_i386_convert_load_reloc (bfd *abfd, Elf_Internal_Shdr *symtab_hdr,
opcode = bfd_get_8 (abfd, contents + roff - 2);
- /* Convert to R_386_32 if PIC is false or there is no base
- register. */
- to_reloc_32 = !is_pic || baseless;
+ if (opcode == 0xff)
+ {
+ switch (modrm & 0x38)
+ {
+ case 0x10: /* CALL */
+ case 0x20: /* JMP */
+ is_branch = true;
+ break;
+
+ case 0x30: /* PUSH */
+ break;
+
+ default:
+ return true;
+ }
+ }
+
+ /* Convert to R_386_32 if PIC is false (if PIC is true we already know
+ there is a base register). */
+ to_reloc_32 = !is_pic;
eh = elf_x86_hash_entry (h);
@@ -1311,7 +1332,7 @@ elf_i386_convert_load_reloc (bfd *abfd, Elf_Internal_Shdr *symtab_hdr,
reloc. */
if (h == NULL)
{
- if (opcode == 0x0ff)
+ if (is_branch)
/* Convert "call/jmp *foo@GOT[(%reg)]". */
goto convert_branch;
else
@@ -1327,7 +1348,7 @@ elf_i386_convert_load_reloc (bfd *abfd, Elf_Internal_Shdr *symtab_hdr,
&& !eh->linker_def
&& local_ref)
{
- if (opcode == 0xff)
+ if (is_branch)
{
/* No direct branch to 0 for PIC. */
if (is_pic)
@@ -1343,7 +1364,7 @@ elf_i386_convert_load_reloc (bfd *abfd, Elf_Internal_Shdr *symtab_hdr,
}
}
- if (opcode == 0xff)
+ if (is_branch)
{
/* We have "call/jmp *foo@GOT[(%reg)]". */
if ((h->root.type == bfd_link_hash_defined
@@ -1399,7 +1420,8 @@ elf_i386_convert_load_reloc (bfd *abfd, Elf_Internal_Shdr *symtab_hdr,
else
{
/* We have "mov foo@GOT[(%re1g)], %reg2",
- "test %reg1, foo@GOT(%reg2)" and
+ "test %reg1, foo@GOT(%reg2)",
+ "push foo@GOT[(%reg)]", or
"binop foo@GOT[(%reg1)], %reg2".
Avoid optimizing _DYNAMIC since ld.so may use its
@@ -1453,15 +1475,23 @@ elf_i386_convert_load_reloc (bfd *abfd, Elf_Internal_Shdr *symtab_hdr,
modrm = 0xc0 | (modrm & 0x38) >> 3;
opcode = 0xf7;
}
- else
+ else if ((opcode | 0x38) == 0x3b)
{
/* Convert "binop foo@GOT(%reg1), %reg2" to
"binop $foo, %reg2". */
- modrm = (0xc0
- | (modrm & 0x38) >> 3
- | (opcode & 0x3c));
+ modrm = 0xc0 | ((modrm & 0x38) >> 3) | (opcode & 0x38);
opcode = 0x81;
}
+ else if (opcode == 0xff)
+ {
+ /* Convert "push foo@GOT(%reg)" to
+ "push $foo". */
+ modrm = 0x68; /* Really the opcode. */
+ opcode = 0x2e; /* Really a meaningless %cs: prefix. */
+ }
+ else
+ return true;
+
bfd_put_8 (abfd, modrm, contents + roff - 1);
r_type = R_386_32;
}
@@ -1531,6 +1561,7 @@ elf_i386_scan_relocs (bfd *abfd,
const char *name;
bool size_reloc;
bool no_dynreloc;
+ reloc_howto_type *howto;
r_symndx = ELF32_R_SYM (rel->r_info);
r_type = ELF32_R_TYPE (rel->r_info);
@@ -1547,6 +1578,17 @@ elf_i386_scan_relocs (bfd *abfd,
goto error_return;
}
+ howto = elf_i386_rtype_to_howto (r_type);
+ if (rel->r_offset + bfd_get_reloc_size (howto) > sec->size)
+ {
+ /* xgettext:c-format */
+ _bfd_error_handler
+ (_("%pB: bad reloc offset (%#" PRIx32 " > %#" PRIx32 ") for"
+ " section `%pA'"), abfd, (uint32_t) rel->r_offset,
+ (uint32_t) sec->size, sec);
+ goto error_return;
+ }
+
if (r_symndx < symtab_hdr->sh_info)
{
/* A local symbol. */
@@ -4099,8 +4141,8 @@ elf_i386_finish_dynamic_sections (bfd *output_bfd,
{
if (bfd_is_abs_section (htab->elf.splt->output_section))
{
- info->callbacks->einfo
- (_("%F%P: discarded output section: `%pA'\n"),
+ info->callbacks->fatal
+ (_("%P: discarded output section: `%pA'\n"),
htab->elf.splt);
return false;
}
diff --git a/bfd/elf32-m68hc11.c b/bfd/elf32-m68hc11.c
index 3b564c9..f70716d 100644
--- a/bfd/elf32-m68hc11.c
+++ b/bfd/elf32-m68hc11.c
@@ -419,7 +419,7 @@ m68hc11_elf_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
section. The user should fix his linker script. */
if (stub_entry->target_section->output_section == NULL
&& info->non_contiguous_regions)
- info->callbacks->einfo (_("%F%P: Could not assign `%pA' to an output section. "
+ info->callbacks->fatal (_("%P: Could not assign `%pA' to an output section. "
"Retry without --enable-non-contiguous-regions.\n"),
stub_entry->target_section);
diff --git a/bfd/elf32-m68hc12.c b/bfd/elf32-m68hc12.c
index 43e550c..f861989 100644
--- a/bfd/elf32-m68hc12.c
+++ b/bfd/elf32-m68hc12.c
@@ -539,7 +539,7 @@ m68hc12_elf_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
section. The user should fix his linker script. */
if (stub_entry->target_section->output_section == NULL
&& info->non_contiguous_regions)
- info->callbacks->einfo (_("%F%P: Could not assign `%pA' to an output section. "
+ info->callbacks->fatal (_("%P: Could not assign `%pA' to an output section. "
"Retry without --enable-non-contiguous-regions.\n"),
stub_entry->target_section);
diff --git a/bfd/elf32-metag.c b/bfd/elf32-metag.c
index 479b9f4..9959a1f 100644
--- a/bfd/elf32-metag.c
+++ b/bfd/elf32-metag.c
@@ -3343,7 +3343,7 @@ metag_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
section. The user should fix his linker script. */
if (hsh->target_section->output_section == NULL
&& info->non_contiguous_regions)
- info->callbacks->einfo (_("%F%P: Could not assign `%pA' to an output section. "
+ info->callbacks->fatal (_("%P: Could not assign `%pA' to an output section. "
"Retry without --enable-non-contiguous-regions.\n"),
hsh->target_section);
diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c
index fb86b3e..57c37c5 100644
--- a/bfd/elf32-microblaze.c
+++ b/bfd/elf32-microblaze.c
@@ -2743,11 +2743,8 @@ microblaze_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
/* Apply the required alignment. */
s->size = BFD_ALIGN (s->size, (bfd_size_type) (1 << power_of_two));
- if (power_of_two > s->alignment_power)
- {
- if (!bfd_set_section_alignment (s, power_of_two))
- return false;
- }
+ if (!bfd_link_align_section (s, power_of_two))
+ return false;
/* Define the symbol as being at this point in the section. */
h->root.u.def.section = s;
diff --git a/bfd/elf32-nds32.c b/bfd/elf32-nds32.c
index 9db95e8..3627b30 100644
--- a/bfd/elf32-nds32.c
+++ b/bfd/elf32-nds32.c
@@ -2692,12 +2692,13 @@ nds32_elf_do_9_pcrel_reloc (bfd * abfd,
bfd_vma symbol_value,
bfd_vma addend)
{
- bfd_signed_vma relocation;
+ bfd_vma relocation;
unsigned short x;
bfd_reloc_status_type status;
/* Sanity check the address (offset in section). */
- if (offset > bfd_get_section_limit (abfd, input_section))
+ bfd_vma octet = offset * bfd_octets_per_byte (abfd, input_section);
+ if (!bfd_reloc_offset_in_range (howto, abfd, input_section, octet))
return bfd_reloc_outofrange;
relocation = symbol_value + addend;
@@ -2708,7 +2709,7 @@ nds32_elf_do_9_pcrel_reloc (bfd * abfd,
before doing pcrel calculations. */
relocation -= (offset & -(bfd_vma) 2);
- if (relocation < -ACCURATE_8BIT_S1 || relocation >= ACCURATE_8BIT_S1)
+ if (relocation + ACCURATE_8BIT_S1 >= 2 * ACCURATE_8BIT_S1)
status = bfd_reloc_overflow;
else
status = bfd_reloc_ok;
@@ -2751,7 +2752,7 @@ struct nds32_hi20
static struct nds32_hi20 *nds32_hi20_list;
static bfd_reloc_status_type
-nds32_elf_hi20_reloc (bfd *abfd ATTRIBUTE_UNUSED,
+nds32_elf_hi20_reloc (bfd *abfd,
arelent *reloc_entry,
asymbol *symbol,
void *data,
@@ -2774,7 +2775,10 @@ nds32_elf_hi20_reloc (bfd *abfd ATTRIBUTE_UNUSED,
}
/* Sanity check the address (offset in section). */
- if (reloc_entry->address > bfd_get_section_limit (abfd, input_section))
+ bfd_vma octet = (reloc_entry->address
+ * bfd_octets_per_byte (abfd, input_section));
+ if (!bfd_reloc_offset_in_range (reloc_entry->howto,
+ abfd, input_section, octet))
return bfd_reloc_outofrange;
ret = bfd_reloc_ok;
@@ -2938,7 +2942,10 @@ nds32_elf_generic_reloc (bfd *input_bfd, arelent *reloc_entry,
a section relative addend which is wrong. */
/* Sanity check the address (offset in section). */
- if (reloc_entry->address > bfd_get_section_limit (input_bfd, input_section))
+ bfd_vma octet = (reloc_entry->address
+ * bfd_octets_per_byte (input_bfd, input_section));
+ if (!bfd_reloc_offset_in_range (reloc_entry->howto, input_bfd, input_section,
+ octet))
return bfd_reloc_outofrange;
ret = bfd_reloc_ok;
@@ -4058,11 +4065,8 @@ nds32_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
/* Apply the required alignment. */
s->size = BFD_ALIGN (s->size, (bfd_size_type) (1 << power_of_two));
- if (power_of_two > bfd_section_alignment (s))
- {
- if (!bfd_set_section_alignment (s, power_of_two))
- return false;
- }
+ if (!bfd_link_align_section (s, power_of_two))
+ return false;
/* Define the symbol as being at this point in the section. */
h->root.u.def.section = s;
@@ -4701,7 +4705,8 @@ nds32_elf_final_link_relocate (reloc_howto_type *howto, bfd *input_bfd,
bfd_vma relocation;
/* Sanity check the address. */
- if (address > bfd_get_section_limit (input_bfd, input_section))
+ bfd_vma octet = address * bfd_octets_per_byte (input_bfd, input_section);
+ if (!bfd_reloc_offset_in_range (howto, input_bfd, input_section, octet))
return bfd_reloc_outofrange;
/* This function assumes that we are dealing with a basic relocation
diff --git a/bfd/elf32-sh.c b/bfd/elf32-sh.c
index 39a837c..abb7f5e 100644
--- a/bfd/elf32-sh.c
+++ b/bfd/elf32-sh.c
@@ -1429,9 +1429,9 @@ sh_elf_swap_insns (bfd *abfd, asection *sec, void *relocs,
off = irel->r_offset + 4 + irel->r_addend;
if (off == addr)
- irel->r_offset += 2;
+ irel->r_addend += 2;
else if (off == addr + 2)
- irel->r_offset -= 2;
+ irel->r_addend -= 2;
}
if (irel->r_offset == addr)
diff --git a/bfd/elf32-spu.c b/bfd/elf32-spu.c
index a6b4867..919b839 100644
--- a/bfd/elf32-spu.c
+++ b/bfd/elf32-spu.c
@@ -4689,8 +4689,7 @@ spu_elf_auto_overlay (struct bfd_link_info *info)
file_err:
bfd_set_error (bfd_error_system_call);
err_exit:
- info->callbacks->einfo (_("%F%P: auto overlay error: %E\n"));
- xexit (1);
+ info->callbacks->fatal (_("%P: auto overlay error: %E\n"));
}
/* Provide an estimate of total stack required. */
@@ -4743,7 +4742,7 @@ spu_elf_final_link (bfd *output_bfd, struct bfd_link_info *info)
info->callbacks->einfo (_("%X%P: stack/lrlive analysis error: %E\n"));
if (!spu_elf_build_stubs (info))
- info->callbacks->einfo (_("%F%P: can not build overlay stubs: %E\n"));
+ info->callbacks->fatal (_("%P: can not build overlay stubs: %E\n"));
return bfd_elf_final_link (output_bfd, info);
}
diff --git a/bfd/elf64-ia64-vms.c b/bfd/elf64-ia64-vms.c
index 26710ba..87cc16d 100644
--- a/bfd/elf64-ia64-vms.c
+++ b/bfd/elf64-ia64-vms.c
@@ -361,8 +361,8 @@ elf64_ia64_relax_section (bfd *abfd, asection *sec,
*again = false;
if (bfd_link_relocatable (link_info))
- (*link_info->callbacks->einfo)
- (_("%P%F: --relax and -r may not be used together\n"));
+ link_info->callbacks->fatal
+ (_("%P: --relax and -r may not be used together\n"));
/* Don't even try to relax for non-ELF outputs. */
if (!is_elf_hash_table (link_info->hash))
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 65415bd..3e768dc 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -10207,8 +10207,8 @@ size_global_entry_stubs (struct elf_link_hash_entry *h, void *inf)
non-empty. Otherwise the .text output section will be
aligned at least to plt_stub_align even when no global
entry stubs are needed. */
- if (s->alignment_power < align_power)
- s->alignment_power = align_power;
+ if (!bfd_link_align_section (s, align_power))
+ return false;
stub_align = (bfd_vma) 1 << align_power;
if (htab->params->plt_stub_align >= 0
|| ((((stub_off + stub_size - 1) & -stub_align)
@@ -12294,7 +12294,7 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
if (stub_entry->target_section != NULL
&& stub_entry->target_section->output_section == NULL
&& info->non_contiguous_regions)
- info->callbacks->einfo (_("%F%P: Could not assign `%pA' to an output section. "
+ info->callbacks->fatal (_("%P: Could not assign `%pA' to an output section. "
"Retry without --enable-non-contiguous-regions.\n"),
stub_entry->target_section);
@@ -12302,7 +12302,7 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
if (stub_entry->group->stub_sec != NULL
&& stub_entry->group->stub_sec->output_section == NULL
&& info->non_contiguous_regions)
- info->callbacks->einfo (_("%F%P: Could not assign `%pA' to an output section. "
+ info->callbacks->fatal (_("%P: Could not assign `%pA' to an output section. "
"Retry without --enable-non-contiguous-regions.\n"),
stub_entry->group->stub_sec);
diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
index 259ad13..e758d08 100644
--- a/bfd/elf64-s390.c
+++ b/bfd/elf64-s390.c
@@ -2276,9 +2276,6 @@ elf_s390_relocate_section (bfd *output_bfd,
|| SYMBOL_REFERENCES_LOCAL (info, h)
|| resolved_to_zero)
{
- Elf_Internal_Sym *isym;
- asection *sym_sec;
-
/* This is actually a static link, or it is a
-Bsymbolic link and the symbol is defined
locally, or the symbol was forced to be local
@@ -2318,16 +2315,13 @@ elf_s390_relocate_section (bfd *output_bfd,
& 0xff00f000) == 0xe300c000
&& bfd_get_8 (input_bfd,
contents + rel->r_offset + 3) == 0x04))
- && (isym = bfd_sym_from_r_symndx (&htab->elf.sym_cache,
- input_bfd, r_symndx))
- && isym->st_shndx != SHN_ABS
+ && !bfd_is_abs_symbol (&h->root)
&& h != htab->elf.hdynamic
&& h != htab->elf.hgot
&& h != htab->elf.hplt
- && !(isym->st_value & 1)
- && (sym_sec = bfd_section_from_elf_index (input_bfd,
- isym->st_shndx))
- && sym_sec->alignment_power)
+ && !((h->root.u.def.value
+ + sec->output_section->vma
+ + sec->output_offset) & 1))
{
unsigned short new_insn =
(0xc000 | (bfd_get_8 (input_bfd,
@@ -3204,13 +3198,14 @@ elf_s390_relocate_section (bfd *output_bfd,
_bfd_error_handler
/* xgettext:c-format */
(_("%pB(%pA+%#" PRIx64 "): "
- "misaligned symbol `%s' (%#" PRIx64 ") for relocation %s"),
+ "relocation %s against misaligned symbol `%s' (%#" PRIx64 ") in %pB"),
input_bfd,
input_section,
(uint64_t) rel->r_offset,
+ howto->name,
h->root.root.string,
(uint64_t)relocation,
- howto->name);
+ sec->owner);
return false;
}
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index bb42ed5..6867d49 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -1649,8 +1649,8 @@ elf_x86_64_tls_transition (struct bfd_link_info *info, bfd *abfd,
{
reloc_howto_type *from, *to;
- from = elf_x86_64_rtype_to_howto (abfd, from_type);
- to = elf_x86_64_rtype_to_howto (abfd, to_type);
+ from = &x86_64_elf_howto_table[from_type];
+ to = &x86_64_elf_howto_table[to_type];
if (from == NULL || to == NULL)
return false;
@@ -1739,13 +1739,16 @@ elf_x86_64_need_pic (struct bfd_link_info *info,
}
/* Move the R bits to the B bits in EVEX payload byte 1. */
-static unsigned int evex_move_r_to_b (unsigned int byte1)
+static unsigned int evex_move_r_to_b (unsigned int byte1, bool copy)
{
byte1 = (byte1 & ~(1 << 5)) | ((byte1 & (1 << 7)) >> 2); /* R3 -> B3 */
byte1 = (byte1 & ~(1 << 3)) | ((~byte1 & (1 << 4)) >> 1); /* R4 -> B4 */
/* Set both R bits, as they're inverted. */
- return byte1 | (1 << 4) | (1 << 7);
+ if (!copy)
+ byte1 |= (1 << 4) | (1 << 7);
+
+ return byte1;
}
/* With the local symbol, foo, we convert
@@ -1762,10 +1765,14 @@ static unsigned int evex_move_r_to_b (unsigned int byte1)
to
test $foo, %reg
and convert
+ push foo@GOTPCREL(%rip)
+ to
+ push $foo
+ and convert
binop foo@GOTPCREL(%rip), %reg
to
binop $foo, %reg
- where binop is one of adc, add, and, cmp, or, sbb, sub, xor
+ where binop is one of adc, add, and, cmp, imul, or, sbb, sub, xor
instructions. */
static bool
@@ -1782,6 +1789,7 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
bool is_pic;
bool no_overflow;
bool relocx;
+ bool is_branch = false;
bool to_reloc_pc32;
bool abs_symbol;
bool local_ref;
@@ -1878,6 +1886,23 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
r_symndx = htab->r_sym (irel->r_info);
opcode = bfd_get_8 (abfd, contents + roff - 2);
+ modrm = bfd_get_8 (abfd, contents + roff - 1);
+ if (opcode == 0xff)
+ {
+ switch (modrm & 0x38)
+ {
+ case 0x10: /* CALL */
+ case 0x20: /* JMP */
+ is_branch = true;
+ break;
+
+ case 0x30: /* PUSH */
+ break;
+
+ default:
+ return true;
+ }
+ }
/* Convert mov to lea since it has been done for a while. */
if (opcode != 0x8b)
@@ -1895,7 +1920,7 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
3. no_overflow is true.
4. PIC.
*/
- to_reloc_pc32 = (opcode == 0xff
+ to_reloc_pc32 = (is_branch
|| !relocx
|| no_overflow
|| is_pic);
@@ -1950,7 +1975,7 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
&& !eh->linker_def
&& local_ref))
{
- if (opcode == 0xff)
+ if (is_branch)
{
/* Skip for branch instructions since R_X86_64_PC32
may overflow. */
@@ -2055,7 +2080,7 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
else
relocation = 0;
- if (opcode == 0xff)
+ if (is_branch)
{
/* We have "call/jmp *foo@GOTPCREL(%rip)". */
unsigned int nop;
@@ -2065,7 +2090,7 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
r_type = R_X86_64_PC32;
/* Skip if the converted relocation will overflow. */
- howto = elf_x86_64_rtype_to_howto (abfd, r_type);
+ howto = &x86_64_elf_howto_table[r_type];
r = _bfd_final_link_relocate (howto, abfd, input_section,
contents, irel->r_offset,
relocation, raddend);
@@ -2074,7 +2099,6 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
/* Convert R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX to
R_X86_64_PC32. */
- modrm = bfd_get_8 (abfd, contents + roff - 1);
if (modrm == 0x25)
{
/* Convert to "jmp foo nop". */
@@ -2119,11 +2143,12 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
}
else if (r_type == R_X86_64_CODE_6_GOTPCRELX && opcode != 0x8b)
{
+ bool move_v_r = false;
+
/* R_X86_64_PC32 isn't supported. */
if (to_reloc_pc32)
return true;
- modrm = bfd_get_8 (abfd, contents + roff - 1);
if (opcode == 0x85)
{
/* Convert "ctest<cc> %reg, foo@GOTPCREL(%rip)" to
@@ -2149,6 +2174,23 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
modrm = 0xc0 | ((modrm & 0x38) >> 3) | (opcode & 0x38);
opcode = 0x81;
}
+ else if (opcode == 0xaf)
+ {
+ if (!(evex[2] & 0x10))
+ {
+ /* Convert "imul foo@GOTPCREL(%rip), %reg" to
+ "imul $foo, %reg, %reg". */
+ modrm = 0xc0 | ((modrm & 0x38) >> 3) | (modrm & 0x38);
+ }
+ else
+ {
+ /* Convert "imul foo@GOTPCREL(%rip), %reg1, %reg2" to
+ "imul $foo, %reg1, %reg2". */
+ modrm = 0xc0 | ((modrm & 0x38) >> 3) | (~evex[1] & 0x38);
+ move_v_r = true;
+ }
+ opcode = 0x69;
+ }
else
return true;
@@ -2182,7 +2224,23 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
bfd_put_8 (abfd, opcode, contents + roff - 2);
bfd_put_8 (abfd, modrm, contents + roff - 1);
- evex[0] = evex_move_r_to_b (evex[0]);
+ evex[0] = evex_move_r_to_b (evex[0], opcode == 0x69 && !move_v_r);
+ if (move_v_r)
+ {
+ /* Move the top two V bits to the R bits in EVEX payload byte 1.
+ Note that evex_move_r_to_b() set both R bits. */
+ if (!(evex[1] & (1 << 6)))
+ evex[0] &= ~(1 << 7); /* V3 -> R3 */
+ if (!(evex[2] & (1 << 3)))
+ evex[0] &= ~(1 << 4); /* V4 -> R4 */
+ /* Set all V bits, as they're inverted. */
+ evex[1] |= 0xf << 3;
+ evex[2] |= 1 << 3;
+ /* Clear the ND (ZU) bit (it ought to be ignored anyway). */
+ evex[2] &= ~(1 << 4);
+ bfd_put_8 (abfd, evex[2], contents + roff - 3);
+ bfd_put_8 (abfd, evex[1], contents + roff - 4);
+ }
bfd_put_8 (abfd, evex[0], contents + roff - 5);
/* No addend for R_X86_64_32/R_X86_64_32S relocations. */
@@ -2225,7 +2283,10 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
{
if (bfd_get_8 (abfd, contents + roff - 4) == 0xd5)
{
- rex2 = bfd_get_8 (abfd, contents + roff - 3);
+ /* Make sure even an all-zero payload leaves a non-zero value
+ in the variable. */
+ rex2 = bfd_get_8 (abfd, contents + roff - 3) | 0x100;
+ rex2_mask |= 0x100;
rex_w = (rex2 & REX_W) != 0;
}
else if (bfd_get_8 (abfd, contents + roff - 4) == 0x0f)
@@ -2250,7 +2311,7 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
r_type = R_X86_64_PC32;
/* Skip if the converted relocation will overflow. */
- howto = elf_x86_64_rtype_to_howto (abfd, r_type);
+ howto = &x86_64_elf_howto_table[r_type];
r = _bfd_final_link_relocate (howto, abfd, input_section,
contents, irel->r_offset,
relocation,
@@ -2267,7 +2328,6 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
/* Convert "mov foo@GOTPCREL(%rip), %reg" to
"mov $foo, %reg". */
opcode = 0xc7;
- modrm = bfd_get_8 (abfd, contents + roff - 1);
modrm = 0xc0 | (modrm & 0x38) >> 3;
if (rex_w && ABI_64_P (link_info->output_bfd))
{
@@ -2294,21 +2354,53 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
if (to_reloc_pc32)
return true;
- modrm = bfd_get_8 (abfd, contents + roff - 1);
- if (opcode == 0x85)
+ if (opcode == 0x85 && !(rex2 & (REX2_M << 4)))
{
/* Convert "test %reg, foo@GOTPCREL(%rip)" to
"test $foo, %reg". */
modrm = 0xc0 | (modrm & 0x38) >> 3;
opcode = 0xf7;
}
- else if ((opcode | 0x38) == 0x3b)
+ else if ((opcode | 0x38) == 0x3b && !(rex2 & (REX2_M << 4)))
{
/* Convert "binop foo@GOTPCREL(%rip), %reg" to
"binop $foo, %reg". */
modrm = 0xc0 | ((modrm & 0x38) >> 3) | (opcode & 0x38);
opcode = 0x81;
}
+ else if (opcode == 0xaf && (rex2 & (REX2_M << 4)))
+ {
+ /* Convert "imul foo@GOTPCREL(%rip), %reg" to
+ "imul $foo, %reg, %reg". */
+ modrm = 0xc0 | ((modrm & 0x38) >> 3) | (modrm & 0x38);
+ rex_mask = 0;
+ rex2_mask = REX2_M << 4;
+ opcode = 0x69;
+ }
+ else if (opcode == 0xff && !(rex2 & (REX2_M << 4)))
+ {
+ /* Convert "push foo@GOTPCREL(%rip)" to
+ "push $foo". */
+ bfd_put_8 (abfd, 0x68, contents + roff - 1);
+ if (rex)
+ {
+ bfd_put_8 (abfd, 0x2e, contents + roff - 3);
+ bfd_put_8 (abfd, rex, contents + roff - 2);
+ }
+ else if (rex2)
+ {
+ bfd_put_8 (abfd, 0x2e, contents + roff - 4);
+ bfd_put_8 (abfd, 0xd5, contents + roff - 3);
+ bfd_put_8 (abfd, rex2, contents + roff - 2);
+ }
+ else
+ bfd_put_8 (abfd, 0x2e, contents + roff - 2);
+
+ r_type = R_X86_64_32S;
+ /* No addend for R_X86_64_32S relocations. */
+ irel->r_addend = 0;
+ goto finish;
+ }
else
return true;
@@ -2362,13 +2454,13 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
bfd_put_8 (abfd, opcode, contents + roff - 2);
- /* For MOVRS zap the 0f38 or EVEX prefix, applying meaningless ES
+ /* For MOVRS zap the 0f38 or EVEX prefix, applying meaningless CS
segment overrides instead. When necessary also install the REX2
prefix and payload (which may not have been written yet). */
if (movrs)
{
- bfd_put_8 (abfd, 0x26, contents + roff - movrs);
- bfd_put_8 (abfd, 0x26, contents + roff - movrs + 1);
+ bfd_put_8 (abfd, 0x2e, contents + roff - movrs);
+ bfd_put_8 (abfd, 0x2e, contents + roff - movrs + 1);
if (movrs == 6)
{
bfd_put_8 (abfd, 0xd5, contents + roff - 4);
@@ -2377,6 +2469,7 @@ elf_x86_64_convert_load_reloc (bfd *abfd,
}
}
+ finish:
*r_type_p = r_type;
irel->r_info = htab->r_info (r_symndx,
r_type | R_X86_64_converted_reloc_bit);
@@ -2441,6 +2534,7 @@ elf_x86_64_scan_relocs (bfd *abfd, struct bfd_link_info *info,
bool size_reloc;
bool converted_reloc;
bool no_dynreloc;
+ reloc_howto_type *howto;
r_symndx = htab->r_sym (rel->r_info);
r_type = ELF32_R_TYPE (rel->r_info);
@@ -2457,6 +2551,23 @@ elf_x86_64_scan_relocs (bfd *abfd, struct bfd_link_info *info,
goto error_return;
}
+ howto = elf_x86_64_rtype_to_howto (abfd, r_type);
+ if (howto == NULL)
+ {
+ _bfd_error_handler (_("%pB: unsupported relocation type %#x"),
+ abfd, r_type);
+ goto error_return;
+ }
+ if (!bfd_reloc_offset_in_range (howto, abfd, sec, rel->r_offset))
+ {
+ /* xgettext:c-format */
+ _bfd_error_handler
+ (_("%pB: bad reloc offset (%#" PRIx64 " > %#" PRIx64 ") for"
+ " section `%pA'"), abfd, (uint64_t) rel->r_offset,
+ (uint64_t) sec->size, sec);
+ goto error_return;
+ }
+
if (r_symndx < symtab_hdr->sh_info)
{
/* A local symbol. */
@@ -4081,8 +4192,8 @@ elf_x86_64_relocate_section (bfd *output_bfd,
|| (roff - 3 + 22) > input_section->size)
{
corrupt_input:
- info->callbacks->einfo
- (_("%F%P: corrupt input: %pB\n"),
+ info->callbacks->fatal
+ (_("%P: corrupt input: %pB\n"),
input_bfd);
return false;
}
@@ -4349,11 +4460,11 @@ elf_x86_64_relocate_section (bfd *output_bfd,
byte. */
if (type == 0x8b)
{
- /* For MOVRS emit meaningless ES prefixes. */
+ /* For MOVRS emit meaningless CS prefixes. */
if (bfd_get_8 (input_bfd, contents + roff - 4) == 0x0f)
{
- bfd_put_8 (output_bfd, 0x26, contents + roff - 4);
- rex2 = 0x26;
+ bfd_put_8 (output_bfd, 0x2e, contents + roff - 4);
+ rex2 = 0x2e;
rex2_mask = 0;
}
type = 0xc7;
@@ -4391,10 +4502,10 @@ elf_x86_64_relocate_section (bfd *output_bfd,
unsigned int reg = bfd_get_8 (input_bfd, contents + roff - 1);
reg >>= 3;
- /* Replace 0f38 by meaningless ES prefixes, shifting the REX
+ /* Replace 0f38 by meaningless CS prefixes, shifting the REX
prefix forward. */
- bfd_put_8 (output_bfd, 0x26, contents + roff - 5);
- bfd_put_8 (output_bfd, 0x26, contents + roff - 4);
+ bfd_put_8 (output_bfd, 0x2e, contents + roff - 5);
+ bfd_put_8 (output_bfd, 0x2e, contents + roff - 4);
bfd_put_8 (output_bfd, rex, contents + roff - 3);
bfd_put_8 (output_bfd, 0xc7, contents + roff - 2);
bfd_put_8 (output_bfd, 0xc0 | reg, contents + roff - 1);
@@ -4443,8 +4554,8 @@ elf_x86_64_relocate_section (bfd *output_bfd,
rex2 |= REX_W;
- bfd_put_8 (output_bfd, 0x26, contents + roff - 6);
- bfd_put_8 (output_bfd, 0x26, contents + roff - 5);
+ bfd_put_8 (output_bfd, 0x2e, contents + roff - 6);
+ bfd_put_8 (output_bfd, 0x2e, contents + roff - 5);
bfd_put_8 (output_bfd, 0xd5, contents + roff - 4);
bfd_put_8 (output_bfd, rex2, contents + roff - 3);
bfd_put_8 (output_bfd, 0xc7, contents + roff - 2);
@@ -4455,7 +4566,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
continue;
}
- byte1 = evex_move_r_to_b (byte1);
+ byte1 = evex_move_r_to_b (byte1, false);
bfd_put_8 (output_bfd, byte1, contents + roff - 5);
bfd_put_8 (output_bfd, 0x81, contents + roff - 2);
bfd_put_8 (output_bfd, 0xc0 | reg, contents + roff - 1);
@@ -5110,7 +5221,7 @@ elf_x86_64_finish_dynamic_symbol (bfd *output_bfd,
/* Check PC-relative offset overflow in PLT entry. */
if ((plt_got_pcrel_offset + 0x80000000) > 0xffffffff)
/* xgettext:c-format */
- info->callbacks->einfo (_("%F%pB: PC-relative offset overflow in PLT entry for `%s'\n"),
+ info->callbacks->fatal (_("%pB: PC-relative offset overflow in PLT entry for `%s'\n"),
output_bfd, h->root.root.string);
bfd_put_32 (output_bfd, plt_got_pcrel_offset,
@@ -5136,6 +5247,9 @@ elf_x86_64_finish_dynamic_symbol (bfd *output_bfd,
+ got_offset);
if (PLT_LOCAL_IFUNC_P (info, h))
{
+ if (h->root.u.def.section == NULL)
+ return false;
+
info->callbacks->minfo (_("Local IFUNC function `%s' in %pB\n"),
h->root.root.string,
h->root.u.def.section->owner);
@@ -5183,7 +5297,7 @@ elf_x86_64_finish_dynamic_symbol (bfd *output_bfd,
will overflow first. */
if (plt0_offset > 0x80000000)
/* xgettext:c-format */
- info->callbacks->einfo (_("%F%pB: branch displacement overflow in PLT entry for `%s'\n"),
+ info->callbacks->fatal (_("%pB: branch displacement overflow in PLT entry for `%s'\n"),
output_bfd, h->root.root.string);
bfd_put_32 (output_bfd, - plt0_offset,
(plt->contents + h->plt.offset
@@ -5236,7 +5350,7 @@ elf_x86_64_finish_dynamic_symbol (bfd *output_bfd,
if ((got_after_plt && got_pcrel_offset < 0)
|| (!got_after_plt && got_pcrel_offset > 0))
/* xgettext:c-format */
- info->callbacks->einfo (_("%F%pB: PC-relative offset overflow in GOT PLT entry for `%s'\n"),
+ info->callbacks->fatal (_("%pB: PC-relative offset overflow in GOT PLT entry for `%s'\n"),
output_bfd, h->root.root.string);
bfd_put_32 (output_bfd, got_pcrel_offset,
@@ -5304,6 +5418,9 @@ elf_x86_64_finish_dynamic_symbol (bfd *output_bfd,
}
if (SYMBOL_REFERENCES_LOCAL_P (info, h))
{
+ if (h->root.u.def.section == NULL)
+ return false;
+
info->callbacks->minfo (_("Local IFUNC function `%s' in %pB\n"),
h->root.root.string,
h->root.u.def.section->owner);
@@ -5384,8 +5501,8 @@ elf_x86_64_finish_dynamic_symbol (bfd *output_bfd,
generate an error instead of a reloc. cf PR 32638. */
if (relgot == NULL || relgot->size == 0)
{
- info->callbacks->einfo (_("%F%pB: Unable to generate dynamic relocs because a suitable section does not exist\n"),
- output_bfd);
+ info->callbacks->fatal (_("%pB: Unable to generate dynamic relocs because a suitable section does not exist\n"),
+ output_bfd);
return false;
}
@@ -5523,8 +5640,8 @@ elf_x86_64_finish_dynamic_sections (bfd *output_bfd,
{
if (bfd_is_abs_section (htab->elf.splt->output_section))
{
- info->callbacks->einfo
- (_("%F%P: discarded output section: `%pA'\n"),
+ info->callbacks->fatal
+ (_("%P: discarded output section: `%pA'\n"),
htab->elf.splt);
return false;
}
diff --git a/bfd/elflink.c b/bfd/elflink.c
index df6eb25..666399b 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -3384,12 +3384,9 @@ _bfd_elf_adjust_dynamic_copy (struct bfd_link_info *info,
--power_of_two;
}
- if (power_of_two > bfd_section_alignment (dynbss))
- {
- /* Adjust the section alignment if needed. */
- if (!bfd_set_section_alignment (dynbss, power_of_two))
- return false;
- }
+ /* Adjust the section alignment if needed. */
+ if (!bfd_link_align_section (dynbss, power_of_two))
+ return false;
/* We make sure that the symbol will be aligned properly. */
dynbss->size = BFD_ALIGN (dynbss->size, mask + 1);
@@ -3609,7 +3606,7 @@ _bfd_elf_tls_setup (bfd *obfd, struct bfd_link_info *info)
/* Ensure the alignment of the first section (usually .tdata) is the largest
alignment, so that the tls segment starts aligned. */
if (tls != NULL)
- tls->alignment_power = align;
+ (void) bfd_link_align_section (tls, align);
return tls;
}
@@ -4362,8 +4359,8 @@ elf_link_add_to_first_hash (bfd *abfd, struct bfd_link_info *info,
= ((struct elf_link_first_hash_entry *)
bfd_hash_lookup (htab->first_hash, name, true, copy));
if (e == NULL)
- info->callbacks->einfo
- (_("%F%P: %pB: failed to add %s to first hash\n"), abfd, name);
+ info->callbacks->fatal
+ (_("%P: %pB: failed to add %s to first hash\n"), abfd, name);
if (e->abfd == NULL)
/* Store ABFD in abfd. */
@@ -4430,8 +4427,8 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
|| !bfd_hash_table_init
(htab->first_hash, elf_link_first_hash_newfunc,
sizeof (struct elf_link_first_hash_entry)))
- info->callbacks->einfo
- (_("%F%P: first_hash failed to create: %E\n"));
+ info->callbacks->fatal
+ (_("%P: first_hash failed to create: %E\n"));
}
}
else
@@ -4968,6 +4965,7 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
asection *sec, *new_sec;
flagword flags;
const char *name;
+ const char *defvername;
bool must_copy_name = false;
struct elf_link_hash_entry *h;
struct elf_link_hash_entry *hi;
@@ -5144,6 +5142,7 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
old_alignment = 0;
old_bfd = NULL;
new_sec = sec;
+ defvername = NULL;
if (is_elf_hash_table (&htab->root))
{
@@ -5262,7 +5261,7 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
default version of the symbol. */
if ((iver.vs_vers & VERSYM_HIDDEN) == 0
&& isym->st_shndx != SHN_UNDEF)
- *p++ = ELF_VER_CHR;
+ *p++ = ELF_VER_CHR, defvername = name;
memcpy (p, verstr, verlen + 1);
name = newname;
@@ -5712,9 +5711,15 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info)
}
else if (dynamic
&& h->root.u.def.section->owner == abfd)
- /* Add this symbol to first hash if this shared
- object has the first definition. */
- elf_link_add_to_first_hash (abfd, info, name, must_copy_name);
+ {
+ /* Add this symbol to first hash if this shared
+ object has the first definition. */
+ elf_link_add_to_first_hash (abfd, info, name, must_copy_name);
+ /* And if it was the default symbol version definition,
+ also add the short name. */
+ if (defvername)
+ elf_link_add_to_first_hash (abfd, info, defvername, false);
+ }
}
}
}
@@ -6276,12 +6281,30 @@ elf_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info)
if (h->type == bfd_link_hash_undefined)
{
- /* If the archive element has already been loaded then one
- of the symbols defined by that element might have been
- made undefined due to being in a discarded section. */
- if (is_elf_hash_table (info->hash)
- && ((struct elf_link_hash_entry *) h)->indx == -3)
- continue;
+ if (is_elf_hash_table (info->hash))
+ {
+ /* If the archive element has already been loaded then one
+ of the symbols defined by that element might have been
+ made undefined due to being in a discarded section. */
+ if (((struct elf_link_hash_entry *) h)->indx == -3)
+ continue;
+
+ /* In the pre-LTO-plugin pass we must not mistakenly
+ include this archive member if an earlier shared
+ library defined this symbol. */
+ struct elf_link_hash_table *htab = elf_hash_table (info);
+ if (htab->first_hash)
+ {
+ struct elf_link_first_hash_entry *e
+ = ((struct elf_link_first_hash_entry *)
+ bfd_hash_lookup (htab->first_hash, symdef->name,
+ false, false));
+ if (e
+ && (e->abfd->flags & DYNAMIC) != 0
+ && e->abfd != abfd)
+ continue;
+ }
+ }
}
else if (h->type == bfd_link_hash_common)
{
@@ -12209,9 +12232,9 @@ elf_link_input_bfd (struct elf_final_link_info *flinfo, bfd *input_bfd)
break;
case SEC_INFO_TYPE_SFRAME:
{
- /* Merge .sframe sections into the ctf frame encoder
- context of the output_bfd's section. The final .sframe
- output section will be written out later. */
+ /* Merge SFrame section into the SFrame encoder context of the
+ output_bfd's section. The final .sframe output section will
+ be written out later. */
if (!_bfd_elf_merge_section_sframe (output_bfd, flinfo->info,
o, contents))
return false;
@@ -12613,9 +12636,6 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
size_t relr_entsize;
asection *reldyn = 0;
bfd_size_type amt;
- asection *attr_section = NULL;
- bfd_vma attr_size = 0;
- const char *std_attrs_section;
struct elf_link_hash_table *htab = elf_hash_table (info);
bool sections_removed;
@@ -12661,12 +12681,12 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
sections from the link, and set the contents of the output
section. */
sections_removed = false;
- std_attrs_section = get_elf_backend_data (abfd)->obj_attrs_section;
+ const char *obj_attrs_section = get_elf_backend_data (abfd)->obj_attrs_section;
for (o = abfd->sections; o != NULL; o = o->next)
{
bool remove_section = false;
- if ((std_attrs_section && strcmp (o->name, std_attrs_section) == 0)
+ if ((obj_attrs_section && strcmp (o->name, obj_attrs_section) == 0)
|| strcmp (o->name, ".gnu.attributes") == 0)
{
for (p = o->map_head.link_order; p != NULL; p = p->next)
@@ -12681,12 +12701,16 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
input_section->flags &= ~SEC_HAS_CONTENTS;
}
- attr_size = bfd_elf_obj_attr_size (abfd);
- bfd_set_section_size (o, attr_size);
/* Skip this section later on. */
o->map_head.link_order = NULL;
- if (attr_size)
- attr_section = o;
+
+ bfd_vma attr_size = bfd_elf_obj_attr_size (abfd);
+ /* Once ELF headers have been written, the size of a section is
+ frozen. We need to set the size of the attribute section before
+ _bfd_elf_compute_section_file_positions. */
+ bfd_set_section_size (o, attr_size);
+ if (attr_size > 0)
+ elf_obj_build_attributes (abfd) = o;
else
remove_section = true;
}
@@ -13122,8 +13146,8 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
if (info->enable_dt_relr
&& bed->finish_relative_relocs
&& !bed->finish_relative_relocs (info))
- info->callbacks->einfo
- (_("%F%P: %pB: failed to finish relative relocations\n"), abfd);
+ info->callbacks->fatal
+ (_("%P: %pB: failed to finish relative relocations\n"), abfd);
/* Since ELF permits relocations to be against local symbols, we
must have the local symbols available when we do the relocations.
@@ -13801,21 +13825,14 @@ bfd_elf_final_link (bfd *abfd, struct bfd_link_info *info)
if (! _bfd_elf_write_section_sframe (abfd, info))
goto error_return;
+ if (! _bfd_elf_write_section_build_attributes (abfd, info))
+ goto error_ret2;
+
if (info->callbacks->emit_ctf)
info->callbacks->emit_ctf ();
elf_final_link_free (abfd, &flinfo);
- if (attr_section)
- {
- bfd_byte *contents = (bfd_byte *) bfd_malloc (attr_size);
- if (contents == NULL)
- goto error_ret2;
- bfd_elf_set_obj_attr_contents (abfd, contents, attr_size);
- bfd_set_section_contents (abfd, attr_section, contents, 0, attr_size);
- free (contents);
- }
-
if (info->unique_symbol)
bfd_hash_table_free (&flinfo.local_hash_table);
return true;
@@ -14041,7 +14058,7 @@ _bfd_elf_gc_mark_rsec (struct bfd_link_info *info, asection *sec,
h = get_ext_sym_hash_from_cookie (cookie, r_symndx);
if (h == NULL)
{
- /* A corrup tinput file can lead to a situation where the index
+ /* A corrupt input file can lead to a situation where the index
does not reference either a local or an external symbol. */
if (r_symndx >= cookie->locsymcount)
return NULL;
@@ -14292,7 +14309,7 @@ _bfd_elf_gc_mark_extra_sections (struct bfd_link_info *info,
else if (strcmp (bfd_section_name (isec),
"__patchable_function_entries") == 0
&& elf_linked_to_section (isec) == NULL)
- info->callbacks->einfo (_("%F%P: %pB(%pA): error: "
+ info->callbacks->fatal (_("%P: %pB(%pA): error: "
"need linked-to section "
"for --gc-sections\n"),
isec->owner, isec);
@@ -14393,7 +14410,8 @@ elf_gc_sweep (bfd *abfd, struct bfd_link_info *info)
if (o->flags & SEC_GROUP)
{
asection *first = elf_next_in_group (o);
- o->gc_mark = first->gc_mark;
+ if (first != NULL)
+ o->gc_mark = first->gc_mark;
}
if (o->gc_mark)
@@ -15469,7 +15487,7 @@ _bfd_elf_section_already_linked (bfd *abfd,
/* This is the first section with this name. Record it. */
if (!bfd_section_already_linked_table_insert (already_linked_list, sec))
- info->callbacks->einfo (_("%F%P: already_linked_table: %E\n"));
+ info->callbacks->fatal (_("%P: already_linked_table: %E\n"));
return sec->output_section == bfd_abs_section_ptr;
}
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
index 9b8b86f..8f39920 100644
--- a/bfd/elfnn-aarch64.c
+++ b/bfd/elfnn-aarch64.c
@@ -2268,6 +2268,9 @@ elfNN_aarch64_howto_from_bfd_reloc (bfd_reloc_code_real_type code)
if (code == BFD_RELOC_AARCH64_NONE)
return &elfNN_aarch64_howto_none;
+ if (code == BFD_RELOC_AARCH64_BRANCH9)
+ return &elfNN_aarch64_howto_none;
+
return NULL;
}
@@ -3263,7 +3266,7 @@ aarch64_build_one_stub (struct bfd_hash_entry *gen_entry,
section. The user should fix his linker script. */
if (stub_entry->target_section->output_section == NULL
&& info->non_contiguous_regions)
- info->callbacks->einfo (_("%F%P: Could not assign `%pA' to an output section. "
+ info->callbacks->fatal (_("%P: Could not assign `%pA' to an output section. "
"Retry without "
"--enable-non-contiguous-regions.\n"),
stub_entry->target_section);
@@ -8927,9 +8930,9 @@ elfNN_aarch64_allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
asection *s = p->sec->output_section;
if (s != NULL && (s->flags & SEC_READONLY) != 0)
{
- info->callbacks->einfo
+ info->callbacks->fatal
/* xgettext:c-format */
- (_ ("%F%P: %pB: copy relocation against non-copyable "
+ (_ ("%P: %pB: copy relocation against non-copyable "
"protected symbol `%s'\n"),
p->sec->owner, h->root.root.string);
return false;
@@ -10761,7 +10764,7 @@ const struct elf_size_info elfNN_aarch64_size_info =
#define elf_backend_hash_symbol elf_aarch64_hash_symbol
#undef elf_backend_obj_attrs_section
-#define elf_backend_obj_attrs_section ".ARM.attributes"
+#define elf_backend_obj_attrs_section SEC_AARCH64_ATTRIBUTES
#include "elfNN-target.h"
diff --git a/bfd/elfnn-ia64.c b/bfd/elfnn-ia64.c
index 36ccfef..075b344 100644
--- a/bfd/elfnn-ia64.c
+++ b/bfd/elfnn-ia64.c
@@ -361,8 +361,8 @@ elfNN_ia64_relax_section (bfd *abfd, asection *sec,
*again = false;
if (bfd_link_relocatable (link_info))
- (*link_info->callbacks->einfo)
- (_("%P%F: --relax and -r may not be used together\n"));
+ link_info->callbacks->fatal
+ (_("%P: --relax and -r may not be used together\n"));
/* Don't even try to relax for non-ELF outputs. */
if (!is_elf_hash_table (link_info->hash))
diff --git a/bfd/elfnn-kvx.c b/bfd/elfnn-kvx.c
index 3720c51..31dd7a5 100644
--- a/bfd/elfnn-kvx.c
+++ b/bfd/elfnn-kvx.c
@@ -926,7 +926,7 @@ kvx_build_one_stub (struct bfd_hash_entry *gen_entry,
section. The user should fix his linker script. */
if (stub_entry->target_section->output_section == NULL
&& info->non_contiguous_regions)
- info->callbacks->einfo (_("%F%P: Could not assign '%pA' to an output section. "
+ info->callbacks->fatal (_("%P: Could not assign '%pA' to an output section. "
"Retry without "
"--enable-non-contiguous-regions.\n"),
stub_entry->target_section);
diff --git a/bfd/elfnn-loongarch.c b/bfd/elfnn-loongarch.c
index 0e3bfac..a480a70 100644
--- a/bfd/elfnn-loongarch.c
+++ b/bfd/elfnn-loongarch.c
@@ -25,6 +25,7 @@
#define ARCH_SIZE NN
#include "elf-bfd.h"
#include "objalloc.h"
+#include "splay-tree.h"
#include "elf/loongarch.h"
#include "elfxx-loongarch.h"
#include "opcode/loongarch.h"
@@ -134,6 +135,10 @@ struct loongarch_elf_link_hash_table
a partially updated state (some sections have vma updated but the
others do not), and it's unsafe to do the normal relaxation. */
bool layout_mutating_for_relr;
+
+ /* Pending relaxation (byte deletion) operations meant for roughly
+ sequential access. */
+ splay_tree pending_delete_ops;
};
struct loongarch_elf_section_data
@@ -1699,9 +1704,9 @@ local_allocate_ifunc_dyn_relocs (struct bfd_link_info *info,
|| info->export_dynamic)
&& h->pointer_equality_needed)
{
- info->callbacks->einfo
+ info->callbacks->fatal
/* xgettext:c-format. */
- (_("%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer "
+ (_("%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer "
"equality in `%pB' can not be used when making an "
"executable; recompile with -fPIE and relink with -pie\n"),
h->root.root.string,
@@ -2933,11 +2938,21 @@ perform_relocation (const Elf_Internal_Rela *rel, asection *input_section,
{
value -= sec_addr (input_section) + rel->r_offset;
value += rel->r_addend;
- bfd_vma word = bfd_get (howto->bitsize, input_bfd,
- contents + rel->r_offset);
- word = (word & ~howto->dst_mask) | (value & howto->dst_mask);
- bfd_put (howto->bitsize, input_bfd, word, contents + rel->r_offset);
- r = bfd_reloc_ok;
+ /* Check overflow. */
+ if (ELFNN_R_TYPE (rel->r_info) == R_LARCH_32_PCREL)
+ {
+ r = loongarch_reloc_rewrite_imm_insn (rel, input_section,
+ howto, input_bfd,
+ contents, value);
+ }
+ else
+ {
+ bfd_vma word = bfd_get (howto->bitsize, input_bfd,
+ contents + rel->r_offset);
+ word = (word & ~howto->dst_mask) | (value & howto->dst_mask);
+ bfd_put (howto->bitsize, input_bfd, word, contents + rel->r_offset);
+ r = bfd_reloc_ok;
+ }
break;
}
@@ -4714,43 +4729,230 @@ loongarch_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
return !fatal;
}
-static bool
+/* A pending delete op during a linker relaxation trip, to be stored in a
+ splay tree.
+ The key is the starting offset of this op's deletion range, interpreted
+ as if no delete op were executed for this trip. */
+struct pending_delete_op
+{
+ /* Number of bytes to delete at the address. */
+ bfd_size_type size;
+
+ /* The total offset adjustment at the address as if all preceding delete
+ ops had been executed. Used for calculating expected addresses after
+ relaxation without actually adjusting anything. */
+ bfd_size_type cumulative_offset;
+};
+
+static int
+pending_delete_op_compare (splay_tree_key a, splay_tree_key b)
+{
+ bfd_vma off_a = (bfd_vma)a;
+ bfd_vma off_b = (bfd_vma)b;
+
+ if (off_a < off_b)
+ return -1;
+ else if (off_a > off_b)
+ return 1;
+ else
+ return 0;
+}
+
+static void *
+_allocate_on_bfd (int wanted, void *data)
+{
+ bfd *abfd = (bfd *)data;
+ return bfd_alloc (abfd, wanted);
+}
+
+static void
+_deallocate_on_bfd (void *p ATTRIBUTE_UNUSED, void *data ATTRIBUTE_UNUSED)
+{
+ /* Nothing to do; the data will get released along with the associated BFD
+ or an early bfd_release call. */
+}
+
+static splay_tree
+pending_delete_ops_new (bfd *abfd)
+{
+ /* The node values are allocated with bfd_zalloc, so they are automatically
+ taken care of at BFD release time. */
+ return splay_tree_new_with_allocator (pending_delete_op_compare, NULL, NULL,
+ _allocate_on_bfd, _deallocate_on_bfd, abfd);
+}
+
+static bfd_vma
+loongarch_calc_relaxed_addr (struct bfd_link_info *info, bfd_vma offset)
+{
+ struct loongarch_elf_link_hash_table *htab = loongarch_elf_hash_table (info);
+ splay_tree pdops = htab->pending_delete_ops;
+ struct pending_delete_op *op;
+ splay_tree_node node;
+
+ BFD_ASSERT (pdops != NULL);
+
+ /* Find the op that starts just before the given address. */
+ node = splay_tree_predecessor (pdops, (splay_tree_key)offset);
+ if (node == NULL)
+ /* Nothing has been deleted yet. */
+ return offset;
+ BFD_ASSERT (((bfd_vma)node->key) < offset);
+ op = (struct pending_delete_op *)node->value;
+
+ /* If offset is inside this op's range, it is actually one of the deleted
+ bytes, so the adjusted node->key should be returned in this case. */
+ bfd_vma op_end_off = (bfd_vma)node->key + op->size;
+ if (offset < op_end_off)
+ {
+ offset = (bfd_vma)node->key;
+ node = splay_tree_predecessor (pdops, node->key);
+ op = node ? (struct pending_delete_op *)node->value : NULL;
+ }
+
+ return offset - (op ? op->cumulative_offset : 0);
+}
+
+static void
loongarch_relax_delete_bytes (bfd *abfd,
- asection *sec,
bfd_vma addr,
size_t count,
struct bfd_link_info *link_info)
{
+ struct loongarch_elf_link_hash_table *htab
+ = loongarch_elf_hash_table (link_info);
+ splay_tree pdops = htab->pending_delete_ops;
+ splay_tree_node node;
+ struct pending_delete_op *op = NULL, *new_op = NULL;
+ bool need_new_node = true;
+
+ if (count == 0)
+ return;
+
+ BFD_ASSERT (pdops != NULL);
+
+ node = splay_tree_predecessor (pdops, addr);
+ if (node)
+ {
+ op = (struct pending_delete_op *)node->value;
+ if ((bfd_vma)node->key + op->size >= addr)
+ {
+ /* The previous op already covers this offset, coalesce the new op
+ into it. */
+ op->size += count;
+ op->cumulative_offset += count;
+ need_new_node = false;
+ }
+ }
+
+ if (need_new_node)
+ {
+ new_op = bfd_zalloc (abfd, sizeof (struct pending_delete_op));
+ new_op->size = count;
+ new_op->cumulative_offset = (op ? op->cumulative_offset : 0) + count;
+ node = splay_tree_insert (pdops, (splay_tree_key)addr,
+ (splay_tree_value)new_op);
+ }
+
+ /* Adjust all cumulative offsets after this op. At this point either:
+ - a new node is created, in which case `node` has been updated with the
+ new value, or
+ - an existing node is to be reused, in which case `node` is untouched by
+ the new node logic above and appropriate to use,
+ so we can just re-use `node` here. */
+ for (node = splay_tree_successor (pdops, node->key); node != NULL;
+ node = splay_tree_successor (pdops, node->key))
+ {
+ op = (struct pending_delete_op *)node->value;
+ op->cumulative_offset += count;
+ }
+}
+
+static void
+loongarch_relax_perform_deletes (bfd *abfd, asection *sec,
+ struct bfd_link_info *link_info)
+{
unsigned int i, symcount;
bfd_vma toaddr = sec->size;
struct elf_link_hash_entry **sym_hashes = elf_sym_hashes (abfd);
Elf_Internal_Shdr *symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
unsigned int sec_shndx = _bfd_elf_section_from_bfd_section (abfd, sec);
struct bfd_elf_section_data *data = elf_section_data (sec);
- bfd_byte *contents = data->this_hdr.contents;
+ bfd_byte *contents = data->this_hdr.contents, *contents_end = NULL;
struct relr_entry *relr = loongarch_elf_section_data (sec)->relr;
struct loongarch_elf_link_hash_table *htab =
loongarch_elf_hash_table (link_info);
struct relr_entry *relr_end = NULL;
+ splay_tree pdops = htab->pending_delete_ops;
+ splay_tree_node node1 = NULL, node2 = NULL;
if (htab->relr_count)
relr_end = htab->relr + htab->relr_count;
- /* Actually delete the bytes. */
- sec->size -= count;
- memmove (contents + addr, contents + addr + count, toaddr - addr - count);
+ BFD_ASSERT (pdops != NULL);
+ node1 = splay_tree_min (pdops);
+
+ if (node1 == NULL)
+ /* No pending delete ops, nothing to do. */
+ return;
+
+ /* Actually delete the bytes. For each delete op the pointer arithmetics
+ look like this:
+
+ node1->key -\ /- node2->key
+ |<- op1->size ->| |
+ v v v
+ ...-DDDDDD-------xxxxxxxxxxxxxxxxxSSSSSSxxxxxxxxxx----...
+ ^ ^ ^
+ contents_end node1->key + op1->size
+ |
+ contents_end after this memmove
+
+ where the "S" and "D" bytes are the memmove's source and destination
+ respectively. In case node1 is the first op, contents_end is initialized
+ to the op's start; in case node2 == NULL, the chunk's end is the section's
+ end. The contents_end pointer will be bumped to the new end of content
+ after each memmove. As no byte is added during the process, it is
+ guaranteed to trail behind the delete ops, and all bytes overwritten are
+ either already copied by an earlier memmove or meant to be discarded.
+
+ For memmove, we need to translate offsets to pointers by adding them to
+ `contents`. */
+ for (; node1; node1 = node2)
+ {
+ struct pending_delete_op *op1 = (struct pending_delete_op *)node1->value;
+ bfd_vma op1_start_off = (bfd_vma)node1->key;
+ bfd_vma op1_end_off = op1_start_off + op1->size;
+ node2 = splay_tree_successor (pdops, node1->key);
+ bfd_vma op2_start_off = node2 ? (bfd_vma)node2->key : toaddr;
+ bfd_size_type count = op2_start_off - op1_end_off;
+
+ if (count)
+ {
+ if (contents_end == NULL)
+ /* Start from the end of the first unmodified content chunk. */
+ contents_end = contents + op1_start_off;
+
+ memmove (contents_end, contents + op1_end_off, count);
+ contents_end += count;
+ }
+
+ /* Adjust the section size once, when we have reached the end. */
+ if (node2 == NULL)
+ sec->size -= op1->cumulative_offset;
+ }
/* Adjust the location of all of the relocs. Note that we need not
adjust the addends, since all PC-relative references must be against
symbols, which we will adjust below. */
for (i = 0; i < sec->reloc_count; i++)
- if (data->relocs[i].r_offset > addr && data->relocs[i].r_offset < toaddr)
- data->relocs[i].r_offset -= count;
+ if (data->relocs[i].r_offset < toaddr)
+ data->relocs[i].r_offset = loongarch_calc_relaxed_addr (
+ link_info, data->relocs[i].r_offset);
/* Likewise for relative relocs to be packed into .relr. */
for (; relr && relr < relr_end && relr->sec == sec; relr++)
- if (relr->off > addr && relr->off < toaddr)
- relr->off -= count;
+ if (relr->off < toaddr)
+ relr->off = loongarch_calc_relaxed_addr (link_info, relr->off);
/* Adjust the local symbols defined in this section. */
for (i = 0; i < symtab_hdr->sh_info; i++)
@@ -4758,24 +4960,35 @@ loongarch_relax_delete_bytes (bfd *abfd,
Elf_Internal_Sym *sym = (Elf_Internal_Sym *) symtab_hdr->contents + i;
if (sym->st_shndx == sec_shndx)
{
- /* If the symbol is in the range of memory we just moved, we
- have to adjust its value. */
- if (sym->st_value > addr && sym->st_value <= toaddr)
- sym->st_value -= count;
+ bfd_vma orig_value = sym->st_value;
+ if (orig_value <= toaddr)
+ sym->st_value
+ = loongarch_calc_relaxed_addr (link_info, orig_value);
- /* If the symbol *spans* the bytes we just deleted (i.e. its
- *end* is in the moved bytes but its *start* isn't), then we
- must adjust its size.
+ /* If the symbol *spans* some deleted bytes, that is its *end* is in
+ the moved bytes but its *start* isn't, then we must adjust its
+ size.
This test needs to use the original value of st_value, otherwise
we might accidentally decrease size when deleting bytes right
- before the symbol. But since deleted relocs can't span across
- symbols, we can't have both a st_value and a st_size decrease,
- so it is simpler to just use an else. */
- else if (sym->st_value <= addr
- && sym->st_value + sym->st_size > addr
- && sym->st_value + sym->st_size <= toaddr)
- sym->st_size -= count;
+ before the symbol. */
+ bfd_vma sym_end = orig_value + sym->st_size;
+ if (sym_end <= toaddr)
+ {
+ splay_tree_node node = splay_tree_predecessor (
+ pdops, (splay_tree_key)orig_value);
+ for (; node; node = splay_tree_successor (pdops, node->key))
+ {
+ bfd_vma addr = (bfd_vma)node->key;
+ struct pending_delete_op *op
+ = (struct pending_delete_op *)node->value;
+
+ if (addr >= sym_end)
+ break;
+ if (orig_value <= addr && sym_end > addr)
+ sym->st_size -= op->size;
+ }
+ }
}
}
@@ -4820,20 +5033,33 @@ loongarch_relax_delete_bytes (bfd *abfd,
|| sym_hash->root.type == bfd_link_hash_defweak)
&& sym_hash->root.u.def.section == sec)
{
- /* As above, adjust the value if needed. */
- if (sym_hash->root.u.def.value > addr
- && sym_hash->root.u.def.value <= toaddr)
- sym_hash->root.u.def.value -= count;
+ bfd_vma orig_value = sym_hash->root.u.def.value;
+
+ /* As above, adjust the value. */
+ if (orig_value <= toaddr)
+ sym_hash->root.u.def.value
+ = loongarch_calc_relaxed_addr (link_info, orig_value);
/* As above, adjust the size if needed. */
- else if (sym_hash->root.u.def.value <= addr
- && sym_hash->root.u.def.value + sym_hash->size > addr
- && sym_hash->root.u.def.value + sym_hash->size <= toaddr)
- sym_hash->size -= count;
+ bfd_vma sym_end = orig_value + sym_hash->size;
+ if (sym_end <= toaddr)
+ {
+ splay_tree_node node = splay_tree_predecessor (
+ pdops, (splay_tree_key)orig_value);
+ for (; node; node = splay_tree_successor (pdops, node->key))
+ {
+ bfd_vma addr = (bfd_vma)node->key;
+ struct pending_delete_op *op
+ = (struct pending_delete_op *)node->value;
+
+ if (addr >= sym_end)
+ break;
+ if (orig_value <= addr && sym_end > addr)
+ sym_hash->size -= op->size;
+ }
+ }
}
}
-
- return true;
}
/* Start perform TLS type transition.
@@ -4909,7 +5135,7 @@ loongarch_tls_perform_trans (bfd *abfd, asection *sec,
bfd_put (32, abfd, LARCH_NOP, contents + rel->r_offset);
/* link with -relax option will delete NOP. */
if (!info->disable_target_specific_optimizations)
- loongarch_relax_delete_bytes (abfd, sec, rel->r_offset, 4, info);
+ loongarch_relax_delete_bytes (abfd, rel->r_offset, 4, info);
return true;
case R_LARCH_TLS_IE_PC_HI20:
@@ -4998,8 +5224,7 @@ loongarch_tls_perform_trans (bfd *abfd, asection *sec,
lu52i.d $rd,$rd,%le64_hi12(sym) => (deleted)
*/
static bool
-loongarch_relax_tls_le (bfd *abfd, asection *sec,
- asection *sym_sec ATTRIBUTE_UNUSED,
+loongarch_relax_tls_le (bfd *abfd, asection *sec, asection *sym_sec,
Elf_Internal_Rela *rel, bfd_vma symval,
struct bfd_link_info *link_info,
bool *agin ATTRIBUTE_UNUSED,
@@ -5009,6 +5234,8 @@ loongarch_relax_tls_le (bfd *abfd, asection *sec,
uint32_t insn = bfd_get (32, abfd, contents + rel->r_offset);
static uint32_t insn_rj,insn_rd;
symval = symval - elf_hash_table (link_info)->tls_sec->vma;
+ if (sym_sec == sec)
+ symval = loongarch_calc_relaxed_addr (link_info, symval);
/* The old LE instruction sequence can be relaxed when the symbol offset
is smaller than the 12-bit range. */
if (symval <= 0xfff)
@@ -5023,7 +5250,7 @@ loongarch_relax_tls_le (bfd *abfd, asection *sec,
if (symval < 0x800)
{
rel->r_info = ELFNN_R_INFO (0, R_LARCH_NONE);
- loongarch_relax_delete_bytes (abfd, sec, rel->r_offset,
+ loongarch_relax_delete_bytes (abfd, rel->r_offset,
4, link_info);
}
break;
@@ -5048,7 +5275,7 @@ loongarch_relax_tls_le (bfd *abfd, asection *sec,
case R_LARCH_TLS_LE64_LO20:
case R_LARCH_TLS_LE64_HI12:
rel->r_info = ELFNN_R_INFO (0, R_LARCH_NONE);
- loongarch_relax_delete_bytes (abfd, sec, rel->r_offset,
+ loongarch_relax_delete_bytes (abfd, rel->r_offset,
4, link_info);
break;
@@ -5106,7 +5333,11 @@ loongarch_relax_pcala_addi (bfd *abfd, asection *sec, asection *sym_sec,
size_input_section already took care of updating it after relaxation,
so we additionally update once here. */
sec->output_offset = sec->output_section->size;
- bfd_vma pc = sec_addr (sec) + rel_hi->r_offset;
+ bfd_vma pc = sec_addr (sec)
+ + loongarch_calc_relaxed_addr (info, rel_hi->r_offset);
+ if (sym_sec == sec)
+ symval = sec_addr (sec)
+ + loongarch_calc_relaxed_addr (info, symval - sec_addr (sec));
/* If pc and symbol not in the same segment, add/sub segment alignment. */
if (!loongarch_two_sections_in_same_segment (info->output_bfd,
@@ -5145,7 +5376,7 @@ loongarch_relax_pcala_addi (bfd *abfd, asection *sec, asection *sym_sec,
R_LARCH_PCREL20_S2);
rel_lo->r_info = ELFNN_R_INFO (0, R_LARCH_NONE);
- loongarch_relax_delete_bytes (abfd, sec, rel_lo->r_offset, 4, info);
+ loongarch_relax_delete_bytes (abfd, rel_lo->r_offset, 4, info);
return true;
}
@@ -5167,7 +5398,11 @@ loongarch_relax_call36 (bfd *abfd, asection *sec, asection *sym_sec,
size_input_section already took care of updating it after relaxation,
so we additionally update once here. */
sec->output_offset = sec->output_section->size;
- bfd_vma pc = sec_addr (sec) + rel->r_offset;
+ bfd_vma pc = sec_addr (sec)
+ + loongarch_calc_relaxed_addr (info, rel->r_offset);
+ if (sym_sec == sec)
+ symval = sec_addr (sec)
+ + loongarch_calc_relaxed_addr (info, symval - sec_addr (sec));
/* If pc and symbol not in the same segment, add/sub segment alignment. */
if (!loongarch_two_sections_in_same_segment (info->output_bfd,
@@ -5201,7 +5436,7 @@ loongarch_relax_call36 (bfd *abfd, asection *sec, asection *sym_sec,
/* Adjust relocations. */
rel->r_info = ELFNN_R_INFO (ELFNN_R_SYM (rel->r_info), R_LARCH_B26);
/* Delete jirl instruction. */
- loongarch_relax_delete_bytes (abfd, sec, rel->r_offset + 4, 4, info);
+ loongarch_relax_delete_bytes (abfd, rel->r_offset + 4, 4, info);
return true;
}
@@ -5227,7 +5462,11 @@ loongarch_relax_pcala_ld (bfd *abfd, asection *sec,
size_input_section already took care of updating it after relaxation,
so we additionally update once here. */
sec->output_offset = sec->output_section->size;
- bfd_vma pc = sec_addr (sec) + rel_hi->r_offset;
+ bfd_vma pc = sec_addr (sec)
+ + loongarch_calc_relaxed_addr (info, rel_hi->r_offset);
+ if (sym_sec == sec)
+ symval = sec_addr (sec)
+ + loongarch_calc_relaxed_addr (info, symval - sec_addr (sec));
/* If pc and symbol not in the same segment, add/sub segment alignment. */
if (!loongarch_two_sections_in_same_segment (info->output_bfd,
@@ -5277,7 +5516,7 @@ bfd_elfNN_loongarch_set_data_segment_info (struct bfd_link_info *info,
static bool
loongarch_relax_align (bfd *abfd, asection *sec, asection *sym_sec,
Elf_Internal_Rela *rel,
- bfd_vma symval ATTRIBUTE_UNUSED,
+ bfd_vma symval,
struct bfd_link_info *link_info,
bool *again ATTRIBUTE_UNUSED,
bfd_vma max_alignment ATTRIBUTE_UNUSED)
@@ -5293,6 +5532,10 @@ loongarch_relax_align (bfd *abfd, asection *sec, asection *sym_sec,
else
alignment = rel->r_addend + 4;
+ if (sym_sec == sec)
+ symval = sec_addr (sec)
+ + loongarch_calc_relaxed_addr (link_info, symval - sec_addr (sec));
+
addend = alignment - 4; /* The bytes of NOPs added by R_LARCH_ALIGN. */
symval -= addend; /* The address of first NOP added by R_LARCH_ALIGN. */
bfd_vma aligned_addr = ((symval - 1) & ~(alignment - 1)) + alignment;
@@ -5318,17 +5561,19 @@ loongarch_relax_align (bfd *abfd, asection *sec, asection *sym_sec,
/* If skipping more bytes than the specified maximum,
then the alignment is not done at all and delete all NOPs. */
if (max > 0 && need_nop_bytes > max)
- return loongarch_relax_delete_bytes (abfd, sec, rel->r_offset,
- addend, link_info);
+ {
+ loongarch_relax_delete_bytes (abfd, rel->r_offset, addend, link_info);
+ return true;
+ }
/* If the number of NOPs is already correct, there's nothing to do. */
if (need_nop_bytes == addend)
return true;
/* Delete the excess NOPs. */
- return loongarch_relax_delete_bytes (abfd, sec,
- rel->r_offset + need_nop_bytes,
- addend - need_nop_bytes, link_info);
+ loongarch_relax_delete_bytes (abfd, rel->r_offset + need_nop_bytes,
+ addend - need_nop_bytes, link_info);
+ return true;
}
/* Relax pcalau12i + addi.d of TLS LD/GD/DESC to pcaddi. */
@@ -5349,7 +5594,11 @@ loongarch_relax_tls_ld_gd_desc (bfd *abfd, asection *sec, asection *sym_sec,
size_input_section already took care of updating it after relaxation,
so we additionally update once here. */
sec->output_offset = sec->output_section->size;
- bfd_vma pc = sec_addr (sec) + rel_hi->r_offset;
+ bfd_vma pc = sec_addr (sec)
+ + loongarch_calc_relaxed_addr (info, rel_hi->r_offset);
+ if (sym_sec == sec)
+ symval = sec_addr (sec)
+ + loongarch_calc_relaxed_addr (info, symval - sec_addr (sec));
/* If pc and symbol not in the same segment, add/sub segment alignment. */
if (!loongarch_two_sections_in_same_segment (info->output_bfd,
@@ -5404,7 +5653,7 @@ loongarch_relax_tls_ld_gd_desc (bfd *abfd, asection *sec, asection *sym_sec,
}
rel_lo->r_info = ELFNN_R_INFO (0, R_LARCH_NONE);
- loongarch_relax_delete_bytes (abfd, sec, rel_lo->r_offset, 4, info);
+ loongarch_relax_delete_bytes (abfd, rel_lo->r_offset, 4, info);
return true;
}
@@ -5492,6 +5741,9 @@ loongarch_elf_relax_section (bfd *abfd, asection *sec,
htab->max_alignment = max_alignment;
}
+ splay_tree pdops = pending_delete_ops_new (abfd);
+ htab->pending_delete_ops = pdops;
+
for (unsigned int i = 0; i < sec->reloc_count; i++)
{
char symtype;
@@ -5727,6 +5979,10 @@ loongarch_elf_relax_section (bfd *abfd, asection *sec,
info, again, max_alignment);
}
+ loongarch_relax_perform_deletes (abfd, sec, info);
+ htab->pending_delete_ops = NULL;
+ splay_tree_delete (pdops);
+
return true;
}
diff --git a/bfd/elfnn-riscv.c b/bfd/elfnn-riscv.c
index 57ced95..1c494f5 100644
--- a/bfd/elfnn-riscv.c
+++ b/bfd/elfnn-riscv.c
@@ -2263,6 +2263,7 @@ riscv_elf_relocate_section (bfd *output_bfd,
reloc_howto_type *howto = riscv_elf_rtype_to_howto (input_bfd, r_type);
const char *msg = NULL;
bool resolved_to_zero;
+ bool via_plt = false;
if (howto == NULL)
continue;
@@ -2565,6 +2566,12 @@ riscv_elf_relocate_section (bfd *output_bfd,
resolved_to_zero = (h != NULL
&& UNDEFWEAK_NO_DYNAMIC_RELOC (info, h));
+ /* Refer to the PLT entry. This check has to match the check in
+ _bfd_riscv_relax_section. */
+ via_plt = (htab->elf.splt != NULL
+ && h != NULL
+ && h->plt.offset != MINUS_ONE);
+
switch (r_type)
{
case R_RISCV_NONE:
@@ -2776,8 +2783,7 @@ riscv_elf_relocate_section (bfd *output_bfd,
case R_RISCV_CALL_PLT:
/* Handle a call to an undefined weak function. This won't be
relaxed, so we have to handle it here. */
- if (h != NULL && h->root.type == bfd_link_hash_undefweak
- && (!bfd_link_pic (info) || h->plt.offset == MINUS_ONE))
+ if (h != NULL && h->root.type == bfd_link_hash_undefweak && !via_plt)
{
/* We can use x0 as the base register. */
bfd_vma insn = bfd_getl32 (contents + rel->r_offset + 4);
@@ -2791,42 +2797,40 @@ riscv_elf_relocate_section (bfd *output_bfd,
case R_RISCV_JAL:
case R_RISCV_RVC_JUMP:
- if (bfd_link_pic (info) && h != NULL)
+ if (via_plt)
{
- if (h->plt.offset != MINUS_ONE)
- {
- /* Refer to the PLT entry. This check has to match the
- check in _bfd_riscv_relax_section. */
- relocation = sec_addr (htab->elf.splt) + h->plt.offset;
- unresolved_reloc = false;
- }
- else if (!SYMBOL_REFERENCES_LOCAL (info, h)
- && (input_section->flags & SEC_ALLOC) != 0
- && (input_section->flags & SEC_READONLY) != 0
- && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
- {
- /* PR 28509, when generating the shared object, these
- referenced 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 relocations, like
- R_RISCV_JAL and R_RISCV_RVC_JUMP relocations.
-
- 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. */
- msg = bfd_asprintf (_("%%X%%P: relocation %s against `%s'"
- " which may bind externally"
- " can not be used"
- " when making a shared object;"
- " recompile with -fPIC\n"),
- howto->name, h->root.root.string);
- r = bfd_reloc_notsupported;
- }
+ relocation = sec_addr (htab->elf.splt) + h->plt.offset;
+ unresolved_reloc = false;
+ }
+ else if (bfd_link_pic (info)
+ && h != NULL
+ && h->plt.offset == MINUS_ONE
+ && !SYMBOL_REFERENCES_LOCAL (info, h)
+ && (input_section->flags & SEC_ALLOC) != 0
+ && (input_section->flags & SEC_READONLY) != 0
+ && ELF_ST_VISIBILITY (h->other) == STV_DEFAULT)
+ {
+ /* PR 28509, when generating the shared object, these
+ referenced 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 relocations, like
+ R_RISCV_JAL and R_RISCV_RVC_JUMP relocations.
+
+ 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. */
+ msg = bfd_asprintf (_("%%X%%P: relocation %s against `%s'"
+ " which may bind externally"
+ " can not be used"
+ " when making a shared object;"
+ " recompile with -fPIC\n"),
+ howto->name, h->root.root.string);
+ r = bfd_reloc_notsupported;
}
break;
@@ -3936,7 +3940,7 @@ static char *
riscv_merge_arch_attr_info (bfd *ibfd, char *in_arch, char *out_arch)
{
riscv_subset_t *in, *out;
- char *merged_arch_str;
+ static char *merged_arch_str = NULL;
unsigned xlen_in, xlen_out;
merged_subsets.head = NULL;
@@ -3997,7 +4001,11 @@ riscv_merge_arch_attr_info (bfd *ibfd, char *in_arch, char *out_arch)
return NULL;
}
- merged_arch_str = riscv_arch_str (ARCH_SIZE, &merged_subsets);
+ /* Free the previous merged_arch_str which called xmalloc. */
+ free (merged_arch_str);
+
+ merged_arch_str = riscv_arch_str (ARCH_SIZE, &merged_subsets,
+ false/* update */);
/* Release the subset lists. */
riscv_release_subset_list (&in_subsets);
@@ -5365,9 +5373,9 @@ _bfd_riscv_relax_section (bfd *abfd, asection *sec,
undefined_weak = true;
}
- /* This line has to match the check in riscv_elf_relocate_section
- in the R_RISCV_CALL[_PLT] case. */
- if (bfd_link_pic (info) && h->plt.offset != MINUS_ONE)
+ /* This line has to match the via_pltcheck in
+ riscv_elf_relocate_section in the R_RISCV_CALL[_PLT] case. */
+ if (h->plt.offset != MINUS_ONE)
{
sym_sec = htab->elf.splt;
symval = h->plt.offset;
diff --git a/bfd/elfxx-aarch64.c b/bfd/elfxx-aarch64.c
index e3795be..551f74e 100644
--- a/bfd/elfxx-aarch64.c
+++ b/bfd/elfxx-aarch64.c
@@ -698,35 +698,51 @@ _bfd_aarch64_elf_write_core_note (bfd *abfd, char *buf, int *bufsiz, int note_ty
}
}
+typedef struct
+{
+ bfd *pbfd;
+ asection* sec;
+} bfd_search_result_t;
+
+static inline bool
+bfd_is_non_dynamic_elf_object (bfd *abfd, const struct elf_backend_data *out_be)
+{
+ const struct elf_backend_data *in_be = get_elf_backend_data (abfd);
+
+ return bfd_get_flavour (abfd) == bfd_target_elf_flavour
+ && bfd_count_sections (abfd) != 0
+ && (abfd->flags & (DYNAMIC | BFD_PLUGIN | BFD_LINKER_CREATED)) == 0
+ && out_be->elf_machine_code == in_be->elf_machine_code
+ && out_be->s->elfclass == in_be->s->elfclass;
+}
+
/* Find the first input bfd with GNU properties.
If such an input is found, set found to true and return the relevant input.
Otherwise, return the last input of bfd inputs. */
-static bfd *
-_bfd_aarch64_elf_find_1st_bfd_input_with_gnu_property (
- struct bfd_link_info *info,
- bool *has_gnu_property)
+static bfd_search_result_t
+bfd_linear_search_one_with_gnu_property (struct bfd_link_info *info)
{
- BFD_ASSERT (has_gnu_property);
- const struct elf_backend_data *obfd = get_elf_backend_data (info->output_bfd);
- bfd *pbfd = info->input_bfds;
- bfd *prev = NULL;
- for (; pbfd != NULL; pbfd = pbfd->link.next)
- if (bfd_get_flavour (pbfd) == bfd_target_elf_flavour
- && bfd_count_sections (pbfd) != 0
- && (pbfd->flags & (DYNAMIC | BFD_PLUGIN | BFD_LINKER_CREATED)) == 0
- && (obfd->elf_machine_code
- == get_elf_backend_data (pbfd)->elf_machine_code)
- && (obfd->s->elfclass == get_elf_backend_data (pbfd)->s->elfclass))
+ const struct elf_backend_data *be = get_elf_backend_data (info->output_bfd);
+
+ bfd_search_result_t res = {
+ .pbfd = NULL,
+ .sec = NULL,
+ };
+
+ for (bfd *pbfd = info->input_bfds; pbfd != NULL; pbfd = pbfd->link.next)
+ if (bfd_is_non_dynamic_elf_object (pbfd, be))
{
+ res.pbfd = pbfd;
+
/* Does the input have a list of GNU properties ? */
if (elf_properties (pbfd) != NULL)
- {
- *has_gnu_property = true;
- return pbfd;
- }
- prev = pbfd;
+ break;
}
- return prev;
+
+ if (res.pbfd != NULL)
+ res.sec = bfd_get_section_by_name (res.pbfd, NOTE_GNU_PROPERTY_SECTION_NAME);
+
+ return res;
}
/* Create a GNU property section for the given bfd input. */
@@ -743,14 +759,11 @@ _bfd_aarch64_elf_create_gnu_property_section (struct bfd_link_info *info,
| SEC_READONLY
| SEC_HAS_CONTENTS
| SEC_DATA));
- if (sec == NULL)
- info->callbacks->einfo (
- _("%F%P: failed to create GNU property section\n"));
-
unsigned align = (bfd_get_mach (ebfd) & bfd_mach_aarch64_ilp32) ? 2 : 3;
- if (!bfd_set_section_alignment (sec, align))
- info->callbacks->einfo (_("%F%pA: failed to align section\n"),
- sec);
+ if (sec == NULL
+ || !bfd_set_section_alignment (sec, align))
+ info->callbacks->fatal (_("%P: failed to create %s\n"),
+ NOTE_GNU_PROPERTY_SECTION_NAME);
elf_section_type (sec) = SHT_NOTE;
}
@@ -864,25 +877,31 @@ _bfd_aarch64_elf_link_setup_gnu_properties (struct bfd_link_info *info)
struct elf_aarch64_obj_tdata *tdata = elf_aarch64_tdata (info->output_bfd);
uint32_t outprop = tdata->gnu_property_aarch64_feature_1_and;
- bool has_gnu_property = false;
- bfd *ebfd =
- _bfd_aarch64_elf_find_1st_bfd_input_with_gnu_property (info,
- &has_gnu_property);
+ bfd_search_result_t res = bfd_linear_search_one_with_gnu_property (info);
/* If ebfd != NULL it is either an input with property note or the last input.
Either way if we have an output GNU property that was provided, we should
add it (by creating a section if needed). */
- if (ebfd != NULL)
+ if (res.pbfd != NULL)
{
- /* If no GNU property node was found, create the GNU property note
- section. */
- if (!has_gnu_property)
- _bfd_aarch64_elf_create_gnu_property_section (info, ebfd);
+ /* If no GNU property note section was found, create one.
+
+ Note: If there is no .gnu.note.property section, we might think that
+ elf_properties (res.pbfd) is always NULL. However, this is not always
+ true. In PR23900: old linkers were treating .note.gnu.property as a
+ generic note section, so old objects might contain properties inside
+ .note instead of .note.gnu.property. In this case, the section won't be
+ detected but the properties are still parsed. Consequently,
+ elf_properties (res.pbfd) is populated and different from NULL (see
+ https://sourceware.org/bugzilla/show_bug.cgi?id=23900 for more
+ details). */
+ if (res.sec == NULL && elf_properties (res.pbfd) == NULL)
+ _bfd_aarch64_elf_create_gnu_property_section (info, res.pbfd);
/* Merge the found input property with output properties. Note: if no
property was found, _bfd_elf_get_property will create one. */
elf_property *prop =
- _bfd_elf_get_property (ebfd,
+ _bfd_elf_get_property (res.pbfd,
GNU_PROPERTY_AARCH64_FEATURE_1_AND,
4);
@@ -891,13 +910,13 @@ _bfd_aarch64_elf_link_setup_gnu_properties (struct bfd_link_info *info)
outprop. */
if ((outprop & GNU_PROPERTY_AARCH64_FEATURE_1_BTI)
&& !(prop->u.number & GNU_PROPERTY_AARCH64_FEATURE_1_BTI))
- _bfd_aarch64_elf_check_bti_report (info, ebfd);
+ _bfd_aarch64_elf_check_bti_report (info, res.pbfd);
if (tdata->sw_protections.gcs_type == GCS_NEVER)
prop->u.number &= ~GNU_PROPERTY_AARCH64_FEATURE_1_GCS;
else if ((outprop & GNU_PROPERTY_AARCH64_FEATURE_1_GCS)
&& !(prop->u.number & GNU_PROPERTY_AARCH64_FEATURE_1_GCS))
- _bfd_aarch64_elf_check_gcs_report (info, ebfd);
+ _bfd_aarch64_elf_check_gcs_report (info, res.pbfd);
prop->u.number |= outprop;
if (prop->u.number == 0)
@@ -911,28 +930,20 @@ _bfd_aarch64_elf_link_setup_gnu_properties (struct bfd_link_info *info)
GNU properties (if found). */
bfd *pbfd = _bfd_elf_link_setup_gnu_properties (info);
- /* If pbfd has any GNU_PROPERTY_AARCH64_FEATURE_1_AND properties, update
- outprop accordingly. */
if (pbfd != NULL)
{
- /* The property list is sorted in order of type. */
- for (elf_property_list *p = elf_properties (pbfd);
- (p != NULL)
- && (GNU_PROPERTY_AARCH64_FEATURE_1_AND <= p->property.pr_type);
- p = p->next)
- {
- /* This merge of features should happen only once as all the identical
- properties are supposed to have been merged at this stage by
- _bfd_elf_link_setup_gnu_properties(). */
- if (p->property.pr_type == GNU_PROPERTY_AARCH64_FEATURE_1_AND)
- {
- outprop = (p->property.u.number
- & (GNU_PROPERTY_AARCH64_FEATURE_1_BTI
- | GNU_PROPERTY_AARCH64_FEATURE_1_PAC
- | GNU_PROPERTY_AARCH64_FEATURE_1_GCS));
- break;
- }
- }
+ elf_property_list *p;
+ elf_property_list *plist = elf_properties (pbfd);
+
+ /* If pbfd has any GNU_PROPERTY_AARCH64_FEATURE_1_AND properties, update
+ outprop accordingly. */
+ if ((p = _bfd_elf_find_property (plist,
+ GNU_PROPERTY_AARCH64_FEATURE_1_AND, NULL))
+ != NULL)
+ outprop = p->property.u.number
+ & (GNU_PROPERTY_AARCH64_FEATURE_1_BTI
+ | GNU_PROPERTY_AARCH64_FEATURE_1_PAC
+ | GNU_PROPERTY_AARCH64_FEATURE_1_GCS);
}
tdata->gnu_property_aarch64_feature_1_and = outprop;
diff --git a/bfd/elfxx-loongarch.c b/bfd/elfxx-loongarch.c
index 9498022..6268c47 100644
--- a/bfd/elfxx-loongarch.c
+++ b/bfd/elfxx-loongarch.c
@@ -1390,7 +1390,7 @@ static loongarch_reloc_howto_type loongarch_howto_table[] =
0xffffffff, /* dst_mask */
false, /* pcrel_offset */
BFD_RELOC_LARCH_32_PCREL, /* bfd_reloc_code_real_type */
- NULL, /* adjust_reloc_bits */
+ reloc_sign_bits, /* adjust_reloc_bits */
NULL), /* larch_reloc_type_name */
/* The paired relocation may be relaxed. */
@@ -2171,11 +2171,11 @@ loongarch_elf_add_sub_reloc_uleb128 (bfd *abfd,
if (output_bfd != NULL)
return bfd_reloc_continue;
- relocation = symbol->value + symbol->section->output_section->vma
- + symbol->section->output_offset + reloc_entry->addend;
+ relocation = (symbol->value + symbol->section->output_section->vma
+ + symbol->section->output_offset + reloc_entry->addend);
- bfd_size_type octets = reloc_entry->address
- * bfd_octets_per_byte (abfd, input_section);
+ bfd_size_type octets = (reloc_entry->address
+ * bfd_octets_per_byte (abfd, input_section));
if (!bfd_reloc_offset_in_range (reloc_entry->howto, abfd,
input_section, octets))
return bfd_reloc_outofrange;
@@ -2195,8 +2195,11 @@ loongarch_elf_add_sub_reloc_uleb128 (bfd *abfd,
break;
}
- bfd_vma mask = (1 << (7 * len)) - 1;
- relocation = relocation & mask;
+ if (7 * len < sizeof (bfd_vma))
+ {
+ bfd_vma mask = ((bfd_vma) 1 << (7 * len)) - 1;
+ relocation = relocation & mask;
+ }
loongarch_write_unsigned_leb128 (p, len, relocation);
return bfd_reloc_ok;
}
diff --git a/bfd/elfxx-mips.c b/bfd/elfxx-mips.c
index e428ae2..ace1d4b 100644
--- a/bfd/elfxx-mips.c
+++ b/bfd/elfxx-mips.c
@@ -1946,7 +1946,7 @@ mips_elf_add_la25_intro (struct mips_elf_la25_stub *stub,
/* Make sure that any padding goes before the stub. */
align = input_section->alignment_power;
- if (!bfd_set_section_alignment (s, align))
+ if (!bfd_link_align_section (s, align))
return false;
if (align > 3)
s->size = (1 << align) - 8;
@@ -1983,7 +1983,7 @@ mips_elf_add_la25_trampoline (struct mips_elf_la25_stub *stub,
asection *input_section = stub->h->root.root.u.def.section;
s = htab->add_stub_section (".text", NULL,
input_section->output_section);
- if (s == NULL || !bfd_set_section_alignment (s, 4))
+ if (s == NULL || !bfd_link_align_section (s, 4))
return false;
htab->strampoline = s;
}
@@ -9447,13 +9447,13 @@ _bfd_mips_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
Encourage better cache usage by aligning. We do this
lazily to avoid pessimizing traditional objects. */
if (htab->root.target_os != is_vxworks
- && !bfd_set_section_alignment (htab->root.splt, 5))
+ && !bfd_link_align_section (htab->root.splt, 5))
return false;
/* Make sure that .got.plt is word-aligned. We do this lazily
for the same reason as above. */
- if (!bfd_set_section_alignment (htab->root.sgotplt,
- MIPS_ELF_LOG_FILE_ALIGN (dynobj)))
+ if (!bfd_link_align_section (htab->root.sgotplt,
+ MIPS_ELF_LOG_FILE_ALIGN (dynobj)))
return false;
/* On non-VxWorks targets, the first two entries in .got.plt
diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c
index c9e4b03..0884bb7 100644
--- a/bfd/elfxx-riscv.c
+++ b/bfd/elfxx-riscv.c
@@ -1022,6 +1022,12 @@ static const struct elf_reloc_map riscv_reloc_map[] =
{ BFD_RELOC_RISCV_SUB_ULEB128, R_RISCV_SUB_ULEB128 },
};
+struct riscv_profiles
+{
+ const char *profile_name;
+ const char *profile_string;
+};
+
/* Given a BFD reloc type, return a howto structure. */
reloc_howto_type *
@@ -1148,7 +1154,8 @@ riscv_elf_ignore_reloc (bfd *abfd ATTRIBUTE_UNUSED,
/* Always add implicit extensions for the SUBSET. */
static bool
-check_implicit_always (riscv_subset_t *subset ATTRIBUTE_UNUSED)
+check_implicit_always (riscv_parse_subset_t *rps ATTRIBUTE_UNUSED,
+ const riscv_subset_t *subset ATTRIBUTE_UNUSED)
{
return true;
}
@@ -1156,20 +1163,34 @@ check_implicit_always (riscv_subset_t *subset ATTRIBUTE_UNUSED)
/* Add implicit extensions only when the version of SUBSET less than 2.1. */
static bool
-check_implicit_for_i (riscv_subset_t *subset)
+check_implicit_for_i (riscv_parse_subset_t *rps ATTRIBUTE_UNUSED,
+ const riscv_subset_t *subset ATTRIBUTE_UNUSED)
{
return (subset->major_version < 2
|| (subset->major_version == 2
&& subset->minor_version < 1));
}
+/* Add the IMPLICIT only when the 'f' extension is also available
+ and XLEN is 32. */
+
+static bool
+check_implicit_for_zcf (riscv_parse_subset_t *rps,
+ const riscv_subset_t *subset ATTRIBUTE_UNUSED)
+{
+ riscv_subset_t *tmp = NULL;
+ return *rps->xlen == 32
+ && riscv_lookup_subset (rps->subset_list, "f", &tmp);
+}
+
/* Record all implicit information for the subsets. */
struct riscv_implicit_subset
{
const char *ext;
const char *implicit_exts;
/* A function to determine if we need to add the implicit subsets. */
- bool (*check_func) (riscv_subset_t *);
+ bool (*check_func) (riscv_parse_subset_t *,
+ const riscv_subset_t *);
};
/* Please added in order since this table is only run once time. */
static struct riscv_implicit_subset riscv_implicit_subsets[] =
@@ -1191,6 +1212,9 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
{"xsfvqmaccdod", "+zve32x,+zvl128b", check_implicit_always},
{"xsfvfnrclipxfqf", "+zve32f", check_implicit_always},
+ {"xtheadvector", "+zicsr", check_implicit_always},
+ {"xtheadzvamo", "+zaamo", check_implicit_always},
+
{"v", "+zve64d,+zvl128b", check_implicit_always},
{"zvfh", "+zvfhmin,+zfhmin", check_implicit_always},
{"zvfhmin", "+zve32f", check_implicit_always},
@@ -1213,6 +1237,8 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
{"zvl128b", "+zvl64b", check_implicit_always},
{"zvl64b", "+zvl32b", check_implicit_always},
+ {"zce", "+zca,+zcb,+zcmp,+zcmt", check_implicit_always},
+ {"zce", "+zcf", check_implicit_for_zcf},
{"zcb", "+zca", check_implicit_always},
{"zcd", "+d,+zca", check_implicit_always},
{"zcf", "+f,+zca", check_implicit_always},
@@ -1222,6 +1248,9 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
{"zicfilp", "+zicsr", check_implicit_always},
{"zicfiss", "+zimop,+zicsr", check_implicit_always},
+ {"zclsd", "+zca,+zilsd", check_implicit_always},
+
+ {"sha", "+h,+ssstateen,+shcounterenw,+shvstvala,+shtvala,+shvstvecd,+shvsatpa,+shgatpa", check_implicit_always},
{"shcounterenw", "+h", check_implicit_always},
{"shgatpa", "+h", check_implicit_always},
@@ -1260,14 +1289,19 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
{"zvks", "+zvksed,+zvksh,+zvkb,+zvkt", check_implicit_always},
{"smaia", "+ssaia", check_implicit_always},
+ {"smcdeleg", "+ssccfg", check_implicit_always},
{"smcsrind", "+sscsrind", check_implicit_always},
{"smcntrpmf", "+zicsr", check_implicit_always},
{"smctr", "+zicsr", check_implicit_always},
+ {"smrnmi", "+zicsr", check_implicit_always},
{"smstateen", "+ssstateen", check_implicit_always},
{"smepmp", "+zicsr", check_implicit_always},
{"smdbltrp", "+zicsr", check_implicit_always},
+ {"smnpm", "+zicsr", check_implicit_always},
+ {"smmpm", "+zicsr", check_implicit_always},
{"ssaia", "+zicsr", check_implicit_always},
+ {"ssccfg", "+sscsrind", check_implicit_always},
{"sscsrind", "+zicsr", check_implicit_always},
{"sscofpmf", "+zicsr", check_implicit_always},
{"sscounterenw", "+zicsr", check_implicit_always},
@@ -1278,6 +1312,7 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
{"sstvecd", "+zicsr", check_implicit_always},
{"ssu64xl", "+zicsr", check_implicit_always},
{"ssdbltrp", "+zicsr", check_implicit_always},
+ {"ssnpm", "+zicsr", check_implicit_always},
{"svade", "+zicsr", check_implicit_always},
{"svadu", "+zicsr", check_implicit_always},
@@ -1285,6 +1320,47 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] =
{NULL, NULL, NULL}
};
+/* This table records the mapping form RISC-V Profiles into march string. */
+static struct riscv_profiles riscv_profiles_table[] =
+{
+ /* RVI20U only contains the base extension 'i' as mandatory extension. */
+ {"rvi20u64", "rv64i"},
+ {"rvi20u32", "rv32i"},
+
+ /* RVA20U contains the 'i,m,a,f,d,c,zicsr,zicntr,ziccif,ziccrse,ziccamoa,
+ zicclsm,za128rs' as mandatory extensions. */
+ {"rva20u64", "rv64imafdc_zicsr_zicntr_ziccif_ziccrse_ziccamoa"
+ "_zicclsm_za128rs"},
+
+ /* RVA22U contains the 'i,m,a,f,d,c,zicsr,zihintpause,zba,zbb,zbs,zicntr,
+ zihpm,ziccif,ziccrse,ziccamoa, zicclsm,zic64b,za64rs,zicbom,zicbop,zicboz,
+ zfhmin,zkt' as mandatory extensions. */
+ {"rva22u64", "rv64imafdc_zicsr_zicntr_ziccif_ziccrse_ziccamoa"
+ "_zicclsm_zic64b_za64rs_zihintpause_zba_zbb_zbs_zicbom_zicbop"
+ "_zicboz_zfhmin_zkt"},
+
+ /* RVA23 contains all mandatory base ISA for RVA22U64 and the new extension
+ 'v,zihintntl,zvfhmin,zvbb,zvkt,zicond,zimop,zcmop,zfa,zawrs' as mandatory
+ extensions. */
+ {"rva23u64", "rv64imafdcv_zicsr_zicntr_zihpm_ziccif_ziccrse_ziccamoa"
+ "_zicclsm_zic64b_za64rs_zihintpause_zba_zbb_zbs_zicbom_zicbop"
+ "_zicboz_zfhmin_zkt_zvfhmin_zvbb_zvkt_zihintntl_zicond_zimop_zcmop_zcb"
+ "_zfa_zawrs"},
+
+ /* RVB23 contains all mandatory base ISA for RVA22U64 and the new extension
+ 'zihintntl,zicond,zimop,zcmop,zfa,zawrs' as mandatory
+ extensions. */
+ {"rvb23u64", "rv64imafdc_zicsr_zicntr_zihpm_ziccif_ziccrse_ziccamoa"
+ "_zicclsm_zic64b_za64rs_zihintpause_zba_zbb_zbs_zicbom_zicbop"
+ "_zicboz_zfhmin_zkt_zihintntl_zicond_zimop_zcmop_zcb"
+ "_zfa_zawrs"},
+
+ /* Currently we do not define S/M mode Profiles. */
+
+ /* Terminate the list. */
+ {NULL, NULL}
+};
+
/* For default_enable field, decide if the extension should
be enbaled by default. */
@@ -1360,6 +1436,7 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] =
{"zimop", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zicfiss", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zicfilp", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"zilsd", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zmmul", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"za64rs", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"za128rs", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
@@ -1434,16 +1511,19 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] =
{"ztso", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zca", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zcb", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"zce", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zcf", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zcd", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zcmop", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zcmp", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"zcmt", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"zclsd", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{NULL, 0, 0, 0, 0}
};
static struct riscv_supported_ext riscv_supported_std_s_ext[] =
{
+ {"sha", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"shcounterenw", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"shgatpa", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"shtvala", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
@@ -1451,6 +1531,7 @@ static struct riscv_supported_ext riscv_supported_std_s_ext[] =
{"shvstvala", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"shvstvecd", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"smaia", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"smcdeleg", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"smcsrind", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"smcntrpmf", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"smctr", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
@@ -1459,6 +1540,7 @@ static struct riscv_supported_ext riscv_supported_std_s_ext[] =
{"smstateen", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"smdbltrp", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"ssaia", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"ssccfg", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"ssccptr", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"sscsrind", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"sscofpmf", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
@@ -1476,6 +1558,13 @@ static struct riscv_supported_ext riscv_supported_std_s_ext[] =
{"svinval", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"svnapot", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"svpbmt", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"svvptc", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"ssqosid", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"ssnpm", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"smnpm", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"smmpm", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"sspm", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"supm", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{NULL, 0, 0, 0, 0}
};
@@ -1506,6 +1595,7 @@ static struct riscv_supported_ext riscv_supported_vendor_x_ext[] =
{"xtheadmempair", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"xtheadsync", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"xtheadvector", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"xtheadvdot", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"xtheadzvamo", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"xventanacondops", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{"xsfvcp", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
@@ -1513,6 +1603,10 @@ static struct riscv_supported_ext riscv_supported_vendor_x_ext[] =
{"xsfvqmaccqoq", ISA_SPEC_CLASS_DRAFT, 1, 0, 0},
{"xsfvqmaccdod", ISA_SPEC_CLASS_DRAFT, 1, 0, 0},
{"xsfvfnrclipxfqf", ISA_SPEC_CLASS_DRAFT, 1, 0, 0},
+ {"xmipscbop", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"xmipscmov", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"xmipsexectl", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
+ {"xmipslsp", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 },
{NULL, 0, 0, 0, 0}
};
@@ -1930,10 +2024,11 @@ riscv_parsing_subset_version (const char *p,
static const char *
riscv_parse_extensions (riscv_parse_subset_t *rps,
const char *arch,
- const char *p)
+ const char *p,
+ bool profile)
{
- /* First letter must start with i, e or g. */
- if (*p != 'e' && *p != 'i' && *p != 'g')
+ /* First letter must start with i, e, g or a profile. */
+ if (*p != 'e' && *p != 'i' && *p != 'g' && !profile)
{
rps->error_handler
(_("%s: first ISA extension must be `e', `i' or `g'"),
@@ -2066,7 +2161,7 @@ riscv_parse_add_implicit_subsets (riscv_parse_subset_t *rps)
{
riscv_subset_t *subset = NULL;
if (riscv_lookup_subset (rps->subset_list, t->ext, &subset)
- && t->check_func (subset))
+ && t->check_func (rps, subset))
riscv_update_subset1 (rps, subset, t->implicit_exts);
}
}
@@ -2117,10 +2212,49 @@ riscv_parse_check_conflicts (riscv_parse_subset_t *rps)
no_conflict = false;
}
if (riscv_lookup_subset (rps->subset_list, "xtheadvector", &subset)
- && riscv_lookup_subset (rps->subset_list, "v", &subset))
+ && riscv_lookup_subset (rps->subset_list, "zve32x", &subset))
+ {
+ rps->error_handler
+ (_("`xtheadvector' is conflict with the `v/zve32x' extension"));
+ no_conflict = false;
+ }
+ if (riscv_lookup_subset (rps->subset_list, "zclsd", &subset)
+ && ((riscv_lookup_subset (rps->subset_list, "c", &subset)
+ && riscv_lookup_subset (rps->subset_list, "f", &subset))
+ || riscv_lookup_subset (rps->subset_list, "zcf", &subset)))
{
rps->error_handler
- (_("`xtheadvector' is conflict with the `v' extension"));
+ (_("`zclsd' is conflict with the `c+f'/ `zcf' extension"));
+ no_conflict = false;
+ }
+ if (riscv_lookup_subset (rps->subset_list, "ssnpm", &subset) && xlen != 64)
+ {
+ rps->error_handler (_ ("rv%d does not support the `ssnpm' extension"),
+ xlen);
+ no_conflict = false;
+ }
+ if (riscv_lookup_subset (rps->subset_list, "smnpm", &subset) && xlen != 64)
+ {
+ rps->error_handler (_ ("rv%d does not support the `smnpm' extension"),
+ xlen);
+ no_conflict = false;
+ }
+ if (riscv_lookup_subset (rps->subset_list, "smmpm", &subset) && xlen != 64)
+ {
+ rps->error_handler (_ ("rv%d does not support the `smmpm' extension"),
+ xlen);
+ no_conflict = false;
+ }
+ if (riscv_lookup_subset (rps->subset_list, "sspm", &subset) && xlen != 64)
+ {
+ rps->error_handler (_ ("rv%d does not support the `sspm' extension"),
+ xlen);
+ no_conflict = false;
+ }
+ if (riscv_lookup_subset (rps->subset_list, "supm", &subset) && xlen != 64)
+ {
+ rps->error_handler (_ ("rv%d does not support the `supm' extension"),
+ xlen);
no_conflict = false;
}
@@ -2172,6 +2306,42 @@ riscv_set_default_arch (riscv_parse_subset_t *rps)
}
}
+static bool
+riscv_find_profiles (riscv_parse_subset_t *rps, const char **pp)
+{
+ const char *p = *pp;
+
+ /* Checking if input string contains a Profiles.
+ There are two cases use Profiles in -march option:
+
+ 1. Only use Profiles in '-march' as input
+ 2. Mixed Profiles with other extensions
+
+ Use '_' to split Profiles and other extensions. */
+
+ for (int i = 0; riscv_profiles_table[i].profile_name != NULL; ++i)
+ {
+ /* Find profile at the begin. */
+ if (startswith (p, riscv_profiles_table[i].profile_name))
+ {
+ /* Handle the profile string. */
+ riscv_parse_subset (rps, riscv_profiles_table[i].profile_string);
+ p += strlen (riscv_profiles_table[i].profile_name);
+ /* Handle string after profiles if exists. If missing underline
+ bewteen profile and other extensions, warn the user but not deal
+ as an error. */
+ if (*p != '\0' && *p != '_')
+ _bfd_error_handler
+ (_("Warning: should use \"_\" to contact Profiles with other "
+ "extensions"));
+ *pp = p;
+ return true;
+ }
+ }
+ /* Not found profile, return directly. */
+ return false;
+}
+
/* Function for parsing ISA string.
Return Value:
@@ -2209,8 +2379,14 @@ riscv_parse_subset (riscv_parse_subset_t *rps,
}
}
+ bool profile = false;
p = arch;
- if (startswith (p, "rv32"))
+ if (riscv_find_profiles (rps, &p))
+ {
+ /* Check if using Profiles. */
+ profile = true;
+ }
+ else if (startswith (p, "rv32"))
{
*rps->xlen = 32;
p += 4;
@@ -2231,13 +2407,13 @@ riscv_parse_subset (riscv_parse_subset_t *rps,
string is empty. */
if (strlen (arch))
rps->error_handler (
- _("%s: ISA string must begin with rv32 or rv64"),
+ _("%s: ISA string must begin with rv32, rv64 or Profiles"),
arch);
return false;
}
/* Parse single standard and prefixed extensions. */
- if (riscv_parse_extensions (rps, arch, p) == NULL)
+ if (riscv_parse_extensions (rps, arch, p, profile) == NULL)
return false;
/* Finally add implicit extensions according to the current
@@ -2327,7 +2503,7 @@ riscv_arch_str1 (riscv_subset_t *subset,
/* Convert subset information into string with explicit versions. */
char *
-riscv_arch_str (unsigned xlen, const riscv_subset_list_t *subset)
+riscv_arch_str (unsigned xlen, riscv_subset_list_t *subset, bool update)
{
size_t arch_str_len = riscv_estimate_arch_strlen (subset);
char *attr_str = xmalloc (arch_str_len);
@@ -2338,6 +2514,13 @@ riscv_arch_str (unsigned xlen, const riscv_subset_list_t *subset)
riscv_arch_str1 (subset->head, attr_str, buf, arch_str_len);
free (buf);
+ if (update)
+ {
+ if (subset->arch_str != NULL)
+ free ((void *) subset->arch_str);
+ subset->arch_str = attr_str;
+ }
+
return attr_str;
}
@@ -2523,13 +2706,13 @@ riscv_update_subset1 (riscv_parse_subset_t *rps,
}
while (*p++ == ',');
- bool conflict = false;
+ bool no_conflict = true;
if (explicit_subset == NULL)
{
riscv_parse_add_implicit_subsets (rps);
- conflict = riscv_parse_check_conflicts (rps);
+ no_conflict = riscv_parse_check_conflicts (rps);
}
- return conflict;
+ return no_conflict;
}
/* Add/Remove an extension to/from the subset list. This is used for
@@ -2754,6 +2937,12 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps,
case INSN_CLASS_SMCTR_OR_SSCTR:
return (riscv_subset_supports (rps, "smctr")
|| riscv_subset_supports (rps, "ssctr"));
+ case INSN_CLASS_ZILSD:
+ return riscv_subset_supports (rps, "zilsd");
+ case INSN_CLASS_ZCLSD:
+ return riscv_subset_supports (rps, "zclsd");
+ case INSN_CLASS_SMRNMI:
+ return riscv_subset_supports (rps, "smrnmi");
case INSN_CLASS_SVINVAL:
return riscv_subset_supports (rps, "svinval");
case INSN_CLASS_H:
@@ -2798,6 +2987,8 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps,
return riscv_subset_supports (rps, "xtheadsync");
case INSN_CLASS_XTHEADVECTOR:
return riscv_subset_supports (rps, "xtheadvector");
+ case INSN_CLASS_XTHEADVDOT:
+ return riscv_subset_supports (rps, "xtheadvdot");
case INSN_CLASS_XTHEADZVAMO:
return riscv_subset_supports (rps, "xtheadzvamo");
case INSN_CLASS_XVENTANACONDOPS:
@@ -2812,6 +3003,14 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps,
return riscv_subset_supports (rps, "xsfvqmaccdod");
case INSN_CLASS_XSFVFNRCLIPXFQF:
return riscv_subset_supports (rps, "xsfvfnrclipxfqf");
+ case INSN_CLASS_XMIPSCBOP:
+ return riscv_subset_supports (rps, "xmipscbop");
+ case INSN_CLASS_XMIPSCMOV:
+ return riscv_subset_supports (rps, "xmipscmov");
+ case INSN_CLASS_XMIPSEXECTL:
+ return riscv_subset_supports (rps, "xmipsexectl");
+ case INSN_CLASS_XMIPSLSP:
+ return riscv_subset_supports (rps, "xmipslsp");
default:
rps->error_handler
(_("internal: unreachable INSN_CLASS_*"));
@@ -3059,6 +3258,12 @@ riscv_multi_subset_supports_ext (riscv_parse_subset_t *rps,
return "zcmt";
case INSN_CLASS_SMCTR_OR_SSCTR:
return _("smctr' or `ssctr");
+ case INSN_CLASS_ZILSD:
+ return "zilsd";
+ case INSN_CLASS_ZCLSD:
+ return "zclsd";
+ case INSN_CLASS_SMRNMI:
+ return "smrnmi";
case INSN_CLASS_SVINVAL:
return "svinval";
case INSN_CLASS_H:
@@ -3103,6 +3308,8 @@ riscv_multi_subset_supports_ext (riscv_parse_subset_t *rps,
return "xtheadsync";
case INSN_CLASS_XTHEADVECTOR:
return "xtheadvector";
+ case INSN_CLASS_XTHEADVDOT:
+ return "xtheadvdot";
case INSN_CLASS_XTHEADZVAMO:
return "xtheadzvamo";
case INSN_CLASS_XSFCEASE:
diff --git a/bfd/elfxx-riscv.h b/bfd/elfxx-riscv.h
index 19e04ad..1ce682a 100644
--- a/bfd/elfxx-riscv.h
+++ b/bfd/elfxx-riscv.h
@@ -98,7 +98,7 @@ extern void
riscv_release_subset_list (riscv_subset_list_t *);
extern char *
-riscv_arch_str (unsigned, const riscv_subset_list_t *);
+riscv_arch_str (unsigned, riscv_subset_list_t *, bool);
extern size_t
riscv_estimate_digit (unsigned);
diff --git a/bfd/elfxx-sparc.c b/bfd/elfxx-sparc.c
index 7106162..3d89a5f 100644
--- a/bfd/elfxx-sparc.c
+++ b/bfd/elfxx-sparc.c
@@ -1426,6 +1426,16 @@ _bfd_sparc_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
h->plt.refcount += 1;
}
+ /* If a relocation refers to _GLOBAL_OFFSET_TABLE_, create the .got. */
+ if (h != NULL
+ && htab->elf.sgot == NULL
+ && strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
+ {
+ if (!_bfd_elf_create_got_section (htab->elf.dynobj, info))
+ return false;
+ BFD_ASSERT (h == htab->elf.hgot);
+ }
+
/* Compatibility with old R_SPARC_REV32 reloc conflicting
with R_SPARC_TLS_GD_HI22. */
if (! ABI_64_P (abfd) && ! checked_tlsgd)
@@ -1645,8 +1655,7 @@ _bfd_sparc_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
if (h != NULL)
h->non_got_ref = 1;
- if (h != NULL
- && strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
+ if (h != NULL && h == htab->elf.hgot)
break;
/* Fall through. */
@@ -2678,8 +2687,8 @@ _bfd_sparc_elf_relax_section (bfd *abfd ATTRIBUTE_UNUSED,
bool *again)
{
if (bfd_link_relocatable (link_info))
- (*link_info->callbacks->einfo)
- (_("%P%F: --relax and -r may not be used together\n"));
+ link_info->callbacks->fatal
+ (_("%P: --relax and -r may not be used together\n"));
*again = false;
sec_do_relax (section) = 1;
@@ -3252,8 +3261,7 @@ _bfd_sparc_elf_relocate_section (bfd *output_bfd,
case R_SPARC_PC_HH22:
case R_SPARC_PC_HM10:
case R_SPARC_PC_LM22:
- if (h != NULL
- && strcmp (h->root.root.string, "_GLOBAL_OFFSET_TABLE_") == 0)
+ if (h != NULL && h == htab->elf.hgot)
break;
/* Fall through. */
case R_SPARC_DISP8:
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index f4bf58e..bc9bb70 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -529,9 +529,9 @@ elf_x86_allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
asection *s = p->sec->output_section;
if (s != NULL && (s->flags & SEC_READONLY) != 0)
{
- info->callbacks->einfo
+ info->callbacks->fatal
/* xgettext:c-format */
- (_("%F%P: %pB: copy relocation against non-copyable "
+ (_("%P: %pB: copy relocation against non-copyable "
"protected symbol `%s' in %pB\n"),
p->sec->owner, h->root.root.string,
h->root.u.def.section->owner);
@@ -609,8 +609,7 @@ _bfd_elf_x86_get_local_sym_hash (struct elf_x86_link_hash_table *htab,
return &ret->elf;
}
-/* Create an entry in a x86 ELF linker hash table. NB: THIS MUST BE IN
- SYNC WITH _bfd_elf_link_hash_newfunc. */
+/* Create an entry in an x86 ELF linker hash table. */
struct bfd_hash_entry *
_bfd_x86_elf_link_hash_newfunc (struct bfd_hash_entry *entry,
@@ -629,27 +628,14 @@ _bfd_x86_elf_link_hash_newfunc (struct bfd_hash_entry *entry,
}
/* Call the allocation method of the superclass. */
- entry = _bfd_link_hash_newfunc (entry, table, string);
+ entry = _bfd_elf_link_hash_newfunc (entry, table, string);
if (entry != NULL)
{
struct elf_x86_link_hash_entry *eh
= (struct elf_x86_link_hash_entry *) entry;
- struct elf_link_hash_table *htab
- = (struct elf_link_hash_table *) table;
- memset (&eh->elf.size, 0,
- (sizeof (struct elf_x86_link_hash_entry)
- - offsetof (struct elf_link_hash_entry, size)));
+ memset (&eh->elf + 1, 0, sizeof (*eh) - sizeof (eh->elf));
/* Set local fields. */
- eh->elf.indx = -1;
- eh->elf.dynindx = -1;
- eh->elf.got = htab->init_got_refcount;
- eh->elf.plt = htab->init_plt_refcount;
- /* Assume that we have been called by a non-ELF symbol reader.
- This flag is then reset by the code which reads an ELF input
- file. This ensures that a symbol created by a non-ELF symbol
- reader will have the flag set correctly. */
- eh->elf.non_elf = 1;
eh->plt_second.offset = (bfd_vma) -1;
eh->plt_got.offset = (bfd_vma) -1;
eh->tlsdesc_got = (bfd_vma) -1;
@@ -1036,9 +1022,9 @@ elf_x86_relative_reloc_record_add
if (relative_reloc->data == NULL)
{
- info->callbacks->einfo
+ info->callbacks->fatal
/* xgettext:c-format */
- (_("%F%P: %pB: failed to allocate relative reloc record\n"),
+ (_("%P: %pB: failed to allocate relative reloc record\n"),
info->output_bfd);
return false;
}
@@ -1397,9 +1383,9 @@ elf64_dt_relr_bitmap_add
if (bitmap->u.elf64 == NULL)
{
- info->callbacks->einfo
+ info->callbacks->fatal
/* xgettext:c-format */
- (_("%F%P: %pB: failed to allocate 64-bit DT_RELR bitmap\n"),
+ (_("%P: %pB: failed to allocate 64-bit DT_RELR bitmap\n"),
info->output_bfd);
}
@@ -1433,9 +1419,9 @@ elf32_dt_relr_bitmap_add
if (bitmap->u.elf32 == NULL)
{
- info->callbacks->einfo
+ info->callbacks->fatal
/* xgettext:c-format */
- (_("%F%P: %pB: failed to allocate 32-bit DT_RELR bitmap\n"),
+ (_("%P: %pB: failed to allocate 32-bit DT_RELR bitmap\n"),
info->output_bfd);
}
@@ -1572,9 +1558,9 @@ elf_x86_size_or_finish_relative_reloc
if (!_bfd_elf_mmap_section_contents (sec->owner,
sec,
&contents))
- info->callbacks->einfo
+ info->callbacks->fatal
/* xgettext:c-format */
- (_("%F%P: %pB: failed to allocate memory for section `%pA'\n"),
+ (_("%P: %pB: failed to allocate memory for section `%pA'\n"),
info->output_bfd, sec);
/* Cache the section contents for
@@ -1759,9 +1745,9 @@ elf_x86_compute_dl_relr_bitmap
*need_layout = true;
}
else
- info->callbacks->einfo
+ info->callbacks->fatal
/* xgettext:c-format */
- (_("%F%P: %pB: size of compact relative reloc section is "
+ (_("%P: %pB: size of compact relative reloc section is "
"changed: new (%lu) != old (%lu)\n"),
info->output_bfd, htab->dt_relr_bitmap.count,
dt_relr_bitmap_count);
@@ -1781,9 +1767,9 @@ elf_x86_write_dl_relr_bitmap (struct bfd_link_info *info,
contents = (unsigned char *) bfd_alloc (sec->owner, size);
if (contents == NULL)
- info->callbacks->einfo
+ info->callbacks->fatal
/* xgettext:c-format */
- (_("%F%P: %pB: failed to allocate compact relative reloc section\n"),
+ (_("%P: %pB: failed to allocate compact relative reloc section\n"),
info->output_bfd);
/* Cache the section contents for elf_link_input_bfd. */
@@ -1925,7 +1911,7 @@ _bfd_x86_elf_create_sframe_plt (bfd *output_bfd,
0, /* func start addr. */
plt0_entry_size,
func_info,
- 16,
+ 0,
0 /* Num FREs. */);
sframe_frame_row_entry plt0_fre;
unsigned int num_plt0_fres = htab->sframe_plt->plt0_num_fres;
@@ -2252,9 +2238,9 @@ _bfd_elf_x86_valid_reloc_p (asection *input_section,
else
name = bfd_elf_sym_name (input_section->owner, symtab_hdr,
sym, NULL);
- info->callbacks->einfo
+ info->callbacks->fatal
/* xgettext:c-format */
- (_("%F%P: %pB: relocation %s against absolute symbol "
+ (_("%P: %pB: relocation %s against absolute symbol "
"`%s' in section `%pA' is disallowed\n"),
input_section->owner, internal_reloc.howto->name, name,
input_section);
@@ -2665,8 +2651,9 @@ _bfd_x86_elf_late_size_sections (bfd *output_bfd,
avoid moving dot of the following section backwards when
it is empty. Update its section alignment now since it
is non-empty. */
- if (s == htab->elf.iplt)
- bfd_set_section_alignment (s, htab->plt.iplt_alignment);
+ if (s == htab->elf.iplt
+ && !bfd_link_align_section (s, htab->plt.iplt_alignment))
+ abort ();
/* Allocate memory for the section contents. We use bfd_zalloc
here in case unused entries are not reclaimed before the
@@ -3594,9 +3581,9 @@ _bfd_x86_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
s = p->sec->output_section;
if (s != NULL && (s->flags & SEC_READONLY) != 0)
{
- info->callbacks->einfo
+ info->callbacks->fatal
/* xgettext:c-format */
- (_("%F%P: %pB: copy relocation against non-copyable "
+ (_("%P: %pB: copy relocation against non-copyable "
"protected symbol `%s' in %pB\n"),
p->sec->owner, h->root.root.string,
h->root.u.def.section->owner);
@@ -4346,15 +4333,10 @@ _bfd_x86_elf_link_setup_gnu_properties
| SEC_READONLY
| SEC_HAS_CONTENTS
| SEC_DATA));
- if (sec == NULL)
- info->callbacks->einfo (_("%F%P: failed to create GNU property section\n"));
-
- if (!bfd_set_section_alignment (sec, class_align))
- {
- error_alignment:
- info->callbacks->einfo (_("%F%pA: failed to align section\n"),
- sec);
- }
+ if (sec == NULL
+ || !bfd_set_section_alignment (sec, class_align))
+ info->callbacks->fatal (_("%P: failed to create %sn"),
+ NOTE_GNU_PROPERTY_SECTION_NAME);
elf_section_type (sec) = SHT_NOTE;
}
@@ -4666,7 +4648,7 @@ _bfd_x86_elf_link_setup_gnu_properties
&& !elf_vxworks_create_dynamic_sections (dynobj, info,
&htab->srelplt2))
{
- info->callbacks->einfo (_("%F%P: failed to create VxWorks dynamic sections\n"));
+ info->callbacks->fatal (_("%P: failed to create VxWorks dynamic sections\n"));
return pbfd;
}
@@ -4675,7 +4657,7 @@ _bfd_x86_elf_link_setup_gnu_properties
don't need to do it in check_relocs. */
if (htab->elf.sgot == NULL
&& !_bfd_elf_create_got_section (dynobj, info))
- info->callbacks->einfo (_("%F%P: failed to create GOT sections\n"));
+ info->callbacks->fatal (_("%P: failed to create GOT sections\n"));
got_align = (bed->target_id == X86_64_ELF_DATA) ? 3 : 2;
@@ -4684,16 +4666,16 @@ _bfd_x86_elf_link_setup_gnu_properties
properly aligned even if create_dynamic_sections isn't called. */
sec = htab->elf.sgot;
if (!bfd_set_section_alignment (sec, got_align))
- goto error_alignment;
+ abort ();
sec = htab->elf.sgotplt;
if (!bfd_set_section_alignment (sec, got_align))
- goto error_alignment;
+ abort ();
/* Create the ifunc sections here so that check_relocs can be
simplified. */
if (!_bfd_elf_create_ifunc_sections (dynobj, info))
- info->callbacks->einfo (_("%F%P: failed to create ifunc sections\n"));
+ info->callbacks->fatal (_("%P: failed to create ifunc sections\n"));
plt_alignment = bfd_log2 (htab->plt.plt_entry_size);
@@ -4724,17 +4706,15 @@ _bfd_x86_elf_link_setup_gnu_properties
sec = pltsec;
if (!bfd_set_section_alignment (sec, plt_alignment))
- goto error_alignment;
+ abort ();
/* Create the GOT procedure linkage table. */
sec = bfd_make_section_anyway_with_flags (dynobj,
".plt.got",
pltflags);
- if (sec == NULL)
- info->callbacks->einfo (_("%F%P: failed to create GOT PLT section\n"));
-
- if (!bfd_set_section_alignment (sec, non_lazy_plt_alignment))
- goto error_alignment;
+ if (sec == NULL
+ || !bfd_set_section_alignment (sec, non_lazy_plt_alignment))
+ info->callbacks->fatal (_("%P: failed to create GOT PLT section\n"));
htab->plt_got = sec;
@@ -4749,11 +4729,9 @@ _bfd_x86_elf_link_setup_gnu_properties
sec = bfd_make_section_anyway_with_flags (dynobj,
".plt.sec",
pltflags);
- if (sec == NULL)
- info->callbacks->einfo (_("%F%P: failed to create IBT-enabled PLT section\n"));
-
- if (!bfd_set_section_alignment (sec, plt_alignment))
- goto error_alignment;
+ if (sec == NULL
+ || !bfd_set_section_alignment (sec, plt_alignment))
+ info->callbacks->fatal (_("%P: failed to create IBT-enabled PLT section\n"));
}
htab->plt_second = sec;
@@ -4769,11 +4747,9 @@ _bfd_x86_elf_link_setup_gnu_properties
sec = bfd_make_section_anyway_with_flags (dynobj,
".eh_frame",
flags);
- if (sec == NULL)
- info->callbacks->einfo (_("%F%P: failed to create PLT .eh_frame section\n"));
-
- if (!bfd_set_section_alignment (sec, class_align))
- goto error_alignment;
+ if (sec == NULL
+ || !bfd_set_section_alignment (sec, class_align))
+ info->callbacks->fatal (_("%P: failed to create PLT .eh_frame section\n"));
htab->plt_eh_frame = sec;
@@ -4782,11 +4758,9 @@ _bfd_x86_elf_link_setup_gnu_properties
sec = bfd_make_section_anyway_with_flags (dynobj,
".eh_frame",
flags);
- if (sec == NULL)
- info->callbacks->einfo (_("%F%P: failed to create GOT PLT .eh_frame section\n"));
-
- if (!bfd_set_section_alignment (sec, class_align))
- goto error_alignment;
+ if (sec == NULL
+ || !bfd_set_section_alignment (sec, class_align))
+ info->callbacks->fatal (_("%P: failed to create GOT PLT .eh_frame section\n"));
htab->plt_got_eh_frame = sec;
}
@@ -4796,11 +4770,9 @@ _bfd_x86_elf_link_setup_gnu_properties
sec = bfd_make_section_anyway_with_flags (dynobj,
".eh_frame",
flags);
- if (sec == NULL)
- info->callbacks->einfo (_("%F%P: failed to create the second PLT .eh_frame section\n"));
-
- if (!bfd_set_section_alignment (sec, class_align))
- goto error_alignment;
+ if (sec == NULL
+ || !bfd_set_section_alignment (sec, class_align))
+ info->callbacks->fatal (_("%P: failed to create the second PLT .eh_frame section\n"));
htab->plt_second_eh_frame = sec;
}
@@ -4817,7 +4789,7 @@ _bfd_x86_elf_link_setup_gnu_properties
".sframe",
flags);
if (sec == NULL)
- info->callbacks->einfo (_("%F%P: failed to create PLT .sframe section\n"));
+ info->callbacks->fatal (_("%P: failed to create PLT .sframe section\n"));
// FIXME check this
// if (!bfd_set_section_alignment (sec, class_align))
@@ -4832,7 +4804,7 @@ _bfd_x86_elf_link_setup_gnu_properties
".sframe",
flags);
if (sec == NULL)
- info->callbacks->einfo (_("%F%P: failed to create second PLT .sframe section\n"));
+ info->callbacks->fatal (_("%P: failed to create second PLT .sframe section\n"));
htab->plt_second_sframe = sec;
}
@@ -4844,7 +4816,7 @@ _bfd_x86_elf_link_setup_gnu_properties
".sframe",
flags);
if (sec == NULL)
- info->callbacks->einfo (_("%F%P: failed to create PLT GOT .sframe section\n"));
+ info->callbacks->fatal (_("%P: failed to create PLT GOT .sframe section\n"));
htab->plt_got_sframe = sec;
}
@@ -4863,7 +4835,7 @@ _bfd_x86_elf_link_setup_gnu_properties
being set properly. It later leads to a "File truncated"
error. */
if (!bfd_set_section_alignment (sec, 0))
- goto error_alignment;
+ abort ();
htab->plt.iplt_alignment = (normal_target
? plt_alignment
diff --git a/bfd/format.c b/bfd/format.c
index 7769ad0..a909b70 100644
--- a/bfd/format.c
+++ b/bfd/format.c
@@ -331,6 +331,25 @@ print_and_clear_messages (struct per_xvec_messages *list,
free (iter);
iter = next;
}
+
+ /* Don't retain a pointer to free'd memory. */
+ list->next = NULL;
+}
+
+/* Discard all messages associated with TARG in LIST. Unlike
+ print_and_clear_messages, PER_XVEC_NO_TARGET is not valid for TARG. */
+
+static void
+clear_messages (struct per_xvec_messages *list,
+ const bfd_target *targ)
+{
+ struct per_xvec_messages *iter;
+
+ for (iter = list; iter != NULL; iter = iter->next)
+ {
+ if (iter->targ == targ)
+ clear_warnmsg (&iter->messages);
+ }
}
/* This a copy of lto_section defined in GCC (lto-streamer.h). */
@@ -451,7 +470,18 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching)
/* Avoid clashes with bfd_cache_close_all running in another
thread. */
if (!bfd_cache_set_uncloseable (abfd, true, &old_in_format_matches))
- return false;
+ {
+ free (matching_vector);
+ return false;
+ }
+
+ /* Locking is required here in order to manage _bfd_section_id. */
+ if (!bfd_lock ())
+ {
+ bfd_cache_set_uncloseable (abfd, old_in_format_matches, NULL);
+ free (matching_vector);
+ return false;
+ }
/* Presume the answer is yes. */
abfd->format = format;
@@ -461,10 +491,6 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching)
of an archive. */
orig_messages = _bfd_set_error_handler_caching (&messages);
- /* Locking is required here in order to manage _bfd_section_id. */
- if (!bfd_lock ())
- return false;
-
preserve_match.marker = NULL;
if (!bfd_preserve_save (abfd, &preserve, NULL))
goto err_ret;
@@ -545,6 +571,12 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching)
/* Change BFD's target temporarily. */
abfd->xvec = *target;
+ /* It is possible that targets appear multiple times in
+ bfd_target_vector. If this is the case, then we want to avoid
+ accumulating duplicate messages for a target in MESSAGES, so
+ discard any previous messages associated with this target. */
+ clear_messages (&messages, abfd->xvec);
+
if (bfd_seek (abfd, 0, SEEK_SET) != 0)
goto err_ret;
@@ -754,7 +786,8 @@ bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching)
out:
if (preserve_match.marker != NULL)
bfd_preserve_finish (abfd, &preserve_match);
- bfd_preserve_restore (abfd, &preserve);
+ if (preserve.marker != NULL)
+ bfd_preserve_restore (abfd, &preserve);
_bfd_restore_error_handler_caching (orig_messages);
print_and_clear_messages (&messages, PER_XVEC_NO_TARGET);
bfd_cache_set_uncloseable (abfd, old_in_format_matches, NULL);
diff --git a/bfd/i386aout.c b/bfd/i386aout.c
index fb09597..082ebfb 100644
--- a/bfd/i386aout.c
+++ b/bfd/i386aout.c
@@ -79,7 +79,6 @@ static const struct aout_backend_data MY (backend_data) =
MY (set_sizes),
1, /* Exec header not counted. */
0, /* Add_dynamic_symbols. */
- 0, /* Add_one_symbol. */
0, /* Link_dynamic_object. */
0, /* Write_dynamic_symbol. */
0, /* Check_dynamic_reloc. */
diff --git a/bfd/libaout.h b/bfd/libaout.h
index ca4faec..7628d6a 100644
--- a/bfd/libaout.h
+++ b/bfd/libaout.h
@@ -177,13 +177,6 @@ struct aout_backend_data
(bfd *, struct bfd_link_info *, struct external_nlist **,
bfd_size_type *, char **);
- /* Callback from the add symbols phase of the linker code to handle
- adding a single symbol to the global linker hash table. */
- bool (*add_one_symbol)
- (struct bfd_link_info *, bfd *, const char *, flagword,
- asection *, bfd_vma, const char *, bool, bool,
- struct bfd_link_hash_entry **);
-
/* Called to handle linking a dynamic object. */
bool (*link_dynamic_object)
(struct bfd_link_info *, bfd *);
diff --git a/bfd/libbfd-in.h b/bfd/libbfd-in.h
index b2f70fb..ae6d303 100644
--- a/bfd/libbfd-in.h
+++ b/bfd/libbfd-in.h
@@ -645,12 +645,6 @@ extern bool _bfd_generic_link_add_archive_symbols
/* Forward declaration to avoid prototype errors. */
typedef struct bfd_link_hash_entry _bfd_link_hash_entry;
-/* Generic routine to add a single symbol. */
-extern bool _bfd_generic_link_add_one_symbol
- (struct bfd_link_info *, bfd *, const char *name, flagword,
- asection *, bfd_vma, const char *, bool copy,
- bool constructor, struct bfd_link_hash_entry **) ATTRIBUTE_HIDDEN;
-
/* Generic routine to mark section as supplying symbols only. */
extern void _bfd_generic_link_just_syms
(asection *, struct bfd_link_info *) ATTRIBUTE_HIDDEN;
diff --git a/bfd/libbfd.h b/bfd/libbfd.h
index 86f2203..3cb3c14 100644
--- a/bfd/libbfd.h
+++ b/bfd/libbfd.h
@@ -651,12 +651,6 @@ extern bool _bfd_generic_link_add_archive_symbols
/* Forward declaration to avoid prototype errors. */
typedef struct bfd_link_hash_entry _bfd_link_hash_entry;
-/* Generic routine to add a single symbol. */
-extern bool _bfd_generic_link_add_one_symbol
- (struct bfd_link_info *, bfd *, const char *name, flagword,
- asection *, bfd_vma, const char *, bool copy,
- bool constructor, struct bfd_link_hash_entry **) ATTRIBUTE_HIDDEN;
-
/* Generic routine to mark section as supplying symbols only. */
extern void _bfd_generic_link_just_syms
(asection *, struct bfd_link_info *) ATTRIBUTE_HIDDEN;
@@ -3236,6 +3230,7 @@ static const char *const bfd_reloc_code_real_names[] = { "@@uninitialized@@",
"BFD_RELOC_AARCH64_LD_GOT_LO12_NC",
"BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC",
"BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC",
+ "BFD_RELOC_AARCH64_BRANCH9",
"BFD_RELOC_TILEPRO_COPY",
"BFD_RELOC_TILEPRO_GLOB_DAT",
"BFD_RELOC_TILEPRO_JMP_SLOT",
@@ -3668,6 +3663,49 @@ bool _bfd_unrecognized_reloc
unsigned int r_type) ATTRIBUTE_HIDDEN;
/* Extracted from section.c. */
+#define BFD_FAKE_SECTION(SEC, SYM, NAME, IDX, FLAGS) \
+ /* name, next, prev, id, section_id, index, flags, user_set_vma, */ \
+ { NAME, NULL, NULL, IDX, 0, 0, FLAGS, 0, \
+ \
+ /* linker_mark, linker_has_input, gc_mark, decompress_status, */ \
+ 0, 0, 1, 0, \
+ \
+ /* segment_mark, sec_info_type, use_rela_p, mmapped_p, alloced, */ \
+ 0, 0, 0, 0, 0, \
+ \
+ /* sec_flg0, sec_flg1, sec_flg2, sec_flg3, sec_flg4, sec_flg5, */ \
+ 0, 0, 0, 0, 0, 0, \
+ \
+ /* vma, lma, size, rawsize, compressed_size, */ \
+ 0, 0, 0, 0, 0, \
+ \
+ /* output_offset, output_section, relocation, orelocation, */ \
+ 0, &SEC, NULL, NULL, \
+ \
+ /* reloc_count, alignment_power, filepos, rel_filepos, */ \
+ 0, 0, 0, 0, \
+ \
+ /* line_filepos, userdata, contents, lineno, lineno_count, */ \
+ 0, NULL, NULL, NULL, 0, \
+ \
+ /* entsize, kept_section, moving_line_filepos, */ \
+ 0, NULL, 0, \
+ \
+ /* target_index, used_by_bfd, constructor_chain, owner, */ \
+ 0, NULL, NULL, NULL, \
+ \
+ /* symbol, */ \
+ (struct bfd_symbol *) SYM, \
+ \
+ /* map_head, map_tail, already_assigned, type */ \
+ { NULL }, { NULL }, NULL, 0 \
+ \
+ }
+
+#define GLOBAL_SYM_INIT(NAME, SECTION) \
+ /* the_bfd, name, value, attr, section, udata */ \
+ { 0, NAME, 0, BSF_SECTION_SYM, SECTION, { 0 } }
+
/* Extracted from stabs.c. */
bool _bfd_link_section_stabs
(bfd *, struct stab_info *, asection *, asection *, void **,
diff --git a/bfd/libcoff.h b/bfd/libcoff.h
index d0cfd09..05ebe35 100644
--- a/bfd/libcoff.h
+++ b/bfd/libcoff.h
@@ -864,11 +864,6 @@ typedef struct
(bfd *, struct bfd_link_info *, bfd *, asection *,
struct internal_reloc *, bool *);
- bool (*_bfd_coff_link_add_one_symbol)
- (struct bfd_link_info *, bfd *, const char *, flagword,
- asection *, bfd_vma, const char *, bool, bool,
- struct bfd_link_hash_entry **);
-
bool (*_bfd_coff_link_output_has_begun)
(bfd *, struct coff_final_link_info *);
@@ -1005,10 +1000,6 @@ typedef struct
#define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\
((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\
(obfd, info, ibfd, sec, rel, adjustedp))
-#define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\
- value, string, cp, coll, hashp)\
- ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\
- (info, abfd, name, flags, section, value, string, cp, coll, hashp))
#define bfd_coff_link_output_has_begun(a,p) \
((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a, p))
diff --git a/bfd/linker.c b/bfd/linker.c
index 8b3579d..a9a23e5 100644
--- a/bfd/linker.c
+++ b/bfd/linker.c
@@ -1378,7 +1378,25 @@ hash_entry_bfd (struct bfd_link_hash_entry *h)
/*NOTREACHED*/
}
-/* Add a symbol to the global hash table.
+/*
+FUNCTION
+ _bfd_generic_link_add_one_symbol
+
+SYNOPSIS
+ bool _bfd_generic_link_add_one_symbol
+ (struct bfd_link_info *info,
+ bfd *abfd,
+ const char *name,
+ flagword flags,
+ asection *section,
+ bfd_vma value,
+ const char *string,
+ bool copy,
+ bool collect,
+ struct bfd_link_hash_entry **hashp);
+
+DESCRIPTION
+ Add a symbol to the global hash table.
ABFD is the BFD the symbol comes from.
NAME is the name of the symbol.
FLAGS is the BSF_* bits associated with the symbol.
@@ -1854,7 +1872,47 @@ _bfd_generic_link_add_one_symbol (struct bfd_link_info *info,
return true;
}
-
+
+/*
+FUNCTION
+ bfd_link_align_section
+
+SYNOPSIS
+ bool bfd_link_align_section (asection *, unsigned int);
+
+DESCRIPTION
+ Increase section alignment if the current section alignment is
+ less than the requested value. Adjust output section
+ alignment too, so that linker layout adjusts for alignment on
+ the current lang_size_sections pass. This is important for
+ lang_size_relro_segment. If the output section alignment
+ isn't adjusted, the linker will place the output section at an
+ address depending on its current alignment. When sizing the
+ output section, input sections attached transfer any increase
+ in alignment to the output section, which will affect layout
+ for the next sizing pass. Which is all well and good except
+ that lang_size_relro_segment for the current sizing pass uses
+ that possibly increased alignment with a layout that doesn't
+ suit.
+*/
+
+bool
+bfd_link_align_section (asection *sec, unsigned int align_p2)
+{
+ if (align_p2 > bfd_section_alignment (sec))
+ {
+ if (!bfd_set_section_alignment (sec, align_p2))
+ return false;
+ asection *osec = sec->output_section;
+ if (osec && align_p2 > bfd_section_alignment (osec))
+ {
+ if (!bfd_set_section_alignment (osec, align_p2))
+ return false;
+ }
+ }
+ return true;
+}
+
/* Generic final link routine. */
bool
@@ -2066,7 +2124,6 @@ _bfd_generic_link_output_symbols (bfd *output_bfd,
{
asymbol *sym;
struct generic_link_hash_entry *h;
- bool output;
h = NULL;
sym = *sym_ptr;
@@ -2160,12 +2217,20 @@ _bfd_generic_link_output_symbols (bfd *output_bfd,
}
}
+ bool output = false;
if ((sym->flags & BSF_KEEP) == 0
&& (info->strip == strip_all
|| (info->strip == strip_some
&& bfd_hash_lookup (info->keep_hash, bfd_asymbol_name (sym),
false, false) == NULL)))
- output = false;
+ ;
+ /* If this symbol is in a section which is not being included
+ in the output file, then we don't want to output the
+ symbol. */
+ else if (!bfd_is_abs_section (sym->section)
+ && bfd_section_removed_from_list (output_bfd,
+ sym->section->output_section))
+ ;
else if ((sym->flags & (BSF_GLOBAL | BSF_WEAK | BSF_GNU_UNIQUE)) != 0)
{
/* If this symbol is marked as occurring now, rather
@@ -2175,34 +2240,27 @@ _bfd_generic_link_output_symbols (bfd *output_bfd,
if (bfd_asymbol_bfd (sym) == input_bfd
&& (sym->flags & BSF_NOT_AT_END) != 0)
output = true;
- else
- output = false;
}
else if ((sym->flags & BSF_KEEP) != 0)
output = true;
else if (bfd_is_ind_section (sym->section))
- output = false;
+ ;
else if ((sym->flags & BSF_DEBUGGING) != 0)
{
if (info->strip == strip_none)
output = true;
- else
- output = false;
}
else if (bfd_is_und_section (sym->section)
|| bfd_is_com_section (sym->section))
- output = false;
+ ;
else if ((sym->flags & BSF_LOCAL) != 0)
{
- if ((sym->flags & BSF_WARNING) != 0)
- output = false;
- else
+ if ((sym->flags & BSF_WARNING) == 0)
{
switch (info->discard)
{
default:
case discard_all:
- output = false;
break;
case discard_sec_merge:
output = true;
@@ -2211,9 +2269,7 @@ _bfd_generic_link_output_symbols (bfd *output_bfd,
break;
/* FALLTHROUGH */
case discard_l:
- if (bfd_is_local_label (input_bfd, sym))
- output = false;
- else
+ if (!bfd_is_local_label (input_bfd, sym))
output = true;
break;
case discard_none:
@@ -2226,25 +2282,15 @@ _bfd_generic_link_output_symbols (bfd *output_bfd,
{
if (info->strip != strip_all)
output = true;
- else
- output = false;
}
- else if (sym->flags == 0
- && (sym->section->owner->flags & BFD_PLUGIN) != 0)
+ else if (sym->flags == 0)
/* LTO doesn't set symbol information. We get here with the
generic linker for a symbol that was "common" but no longer
- needs to be global. */
- output = false;
+ needs to be global. We also get here on fuzzed ELF objects
+ with bogus symbol type and binding. */
+ ;
else
- abort ();
-
- /* If this symbol is in a section which is not being included
- in the output file, then we don't want to output the
- symbol. */
- if (!bfd_is_abs_section (sym->section)
- && bfd_section_removed_from_list (output_bfd,
- sym->section->output_section))
- output = false;
+ BFD_FAIL ();
if (output)
{
@@ -2997,6 +3043,8 @@ _bfd_generic_section_already_linked (bfd *abfd ATTRIBUTE_UNUSED,
name = bfd_section_name (sec);
already_linked_list = bfd_section_already_linked_table_lookup (name);
+ if (!already_linked_list)
+ goto bad;
l = already_linked_list->entry;
if (l != NULL)
@@ -3008,7 +3056,10 @@ _bfd_generic_section_already_linked (bfd *abfd ATTRIBUTE_UNUSED,
/* This is the first section with this name. Record it. */
if (!bfd_section_already_linked_table_insert (already_linked_list, sec))
- info->callbacks->einfo (_("%F%P: already_linked_table: %E\n"));
+ {
+ bad:
+ info->callbacks->fatal (_("%P: already_linked_table: %E\n"));
+ }
return false;
}
diff --git a/bfd/pdp11.c b/bfd/pdp11.c
index bdd9fc2..2d12033 100644
--- a/bfd/pdp11.c
+++ b/bfd/pdp11.c
@@ -2839,9 +2839,6 @@ aout_link_check_archive_element (bfd *abfd,
static bool
aout_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
{
- bool (*add_one_symbol)
- (struct bfd_link_info *, bfd *, const char *, flagword, asection *,
- bfd_vma, const char *, bool, bool, struct bfd_link_hash_entry **);
struct external_nlist *syms;
bfd_size_type sym_count;
char *strings;
@@ -2875,10 +2872,6 @@ aout_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
return false;
obj_aout_sym_hashes (abfd) = sym_hash;
- add_one_symbol = aout_backend_info (abfd)->add_one_symbol;
- if (add_one_symbol == NULL)
- add_one_symbol = _bfd_generic_link_add_one_symbol;
-
p = syms;
pend = p + sym_count;
for (; p < pend; p++, sym_hash++)
@@ -2951,7 +2944,7 @@ aout_link_add_symbols (bfd *abfd, struct bfd_link_info *info)
break;
}
- if (! ((*add_one_symbol)
+ if (! (_bfd_generic_link_add_one_symbol
(info, abfd, name, flags, section, value, string, copy, false,
(struct bfd_link_hash_entry **) sym_hash)))
return false;
diff --git a/bfd/pe-aarch64.c b/bfd/pe-aarch64.c
index 64975d1..2204a51 100644
--- a/bfd/pe-aarch64.c
+++ b/bfd/pe-aarch64.c
@@ -48,6 +48,8 @@
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".didat"), \
+ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
diff --git a/bfd/pe-arm.c b/bfd/pe-arm.c
index fe4e18e..5efa559 100644
--- a/bfd/pe-arm.c
+++ b/bfd/pe-arm.c
@@ -43,6 +43,8 @@
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".didat"), \
+ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
diff --git a/bfd/pe-i386.c b/bfd/pe-i386.c
index 07f6743..3742fd8 100644
--- a/bfd/pe-i386.c
+++ b/bfd/pe-i386.c
@@ -36,6 +36,8 @@
#define COFF_SECTION_ALIGNMENT_ENTRIES \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".didat"), \
+ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
diff --git a/bfd/pe-x86_64.c b/bfd/pe-x86_64.c
index d56d75d..9151aac 100644
--- a/bfd/pe-x86_64.c
+++ b/bfd/pe-x86_64.c
@@ -57,6 +57,8 @@
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 4 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".didat"), \
+ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
diff --git a/bfd/peXXigen.c b/bfd/peXXigen.c
index 2901268..19f38a4 100644
--- a/bfd/peXXigen.c
+++ b/bfd/peXXigen.c
@@ -593,7 +593,7 @@ _bfd_XXi_swap_aouthdr_out (bfd * abfd, void * in, void * out)
struct internal_extra_pe_aouthdr *extra = &pe->pe_opthdr;
PEAOUTHDR *aouthdr_out = (PEAOUTHDR *) out;
bfd_vma sa, fa, ib;
- IMAGE_DATA_DIRECTORY idata2, idata5, tls;
+ IMAGE_DATA_DIRECTORY idata2, idata5, didat2, tls, loadcfg;
sa = extra->SectionAlignment;
fa = extra->FileAlignment;
@@ -601,7 +601,9 @@ _bfd_XXi_swap_aouthdr_out (bfd * abfd, void * in, void * out)
idata2 = pe->pe_opthdr.DataDirectory[PE_IMPORT_TABLE];
idata5 = pe->pe_opthdr.DataDirectory[PE_IMPORT_ADDRESS_TABLE];
+ didat2 = pe->pe_opthdr.DataDirectory[PE_DELAY_IMPORT_DESCRIPTOR];
tls = pe->pe_opthdr.DataDirectory[PE_TLS_TABLE];
+ loadcfg = pe->pe_opthdr.DataDirectory[PE_LOAD_CONFIG_TABLE];
if (aouthdr_in->tsize)
{
@@ -650,7 +652,9 @@ _bfd_XXi_swap_aouthdr_out (bfd * abfd, void * in, void * out)
a final link is going to be performed, it can overwrite them. */
extra->DataDirectory[PE_IMPORT_TABLE] = idata2;
extra->DataDirectory[PE_IMPORT_ADDRESS_TABLE] = idata5;
+ extra->DataDirectory[PE_DELAY_IMPORT_DESCRIPTOR] = didat2;
extra->DataDirectory[PE_TLS_TABLE] = tls;
+ extra->DataDirectory[PE_LOAD_CONFIG_TABLE] = loadcfg;
if (extra->DataDirectory[PE_IMPORT_TABLE].VirtualAddress == 0)
/* Until other .idata fixes are made (pending patch), the entry for
@@ -999,6 +1003,7 @@ _bfd_XXi_swap_scnhdr_out (bfd * abfd, void * in, void * out)
{ ".arch", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_DISCARDABLE | IMAGE_SCN_ALIGN_8BYTES },
{ ".bss", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_UNINITIALIZED_DATA | IMAGE_SCN_MEM_WRITE },
{ ".data", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_WRITE },
+ { ".didat", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA | IMAGE_SCN_MEM_WRITE },
{ ".edata", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA },
{ ".idata", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA },
{ ".pdata", IMAGE_SCN_MEM_READ | IMAGE_SCN_CNT_INITIALIZED_DATA },
@@ -4403,6 +4408,7 @@ _bfd_XXi_final_link_postscript (bfd * abfd, struct coff_final_link_info *pfinfo)
struct coff_link_hash_entry *h1;
struct bfd_link_info *info = pfinfo->info;
bool result = true;
+ char name[20];
/* There are a few fields that need to be filled in now while we
have symbol table access.
@@ -4430,8 +4436,8 @@ _bfd_XXi_final_link_postscript (bfd * abfd, struct coff_final_link_info *pfinfo)
else
{
_bfd_error_handler
- (_("%pB: unable to fill in DataDictionary[1] because .idata$2 is missing"),
- abfd);
+ (_("%pB: unable to fill in DataDirectory[%d]: %s is missing"),
+ abfd, PE_IMPORT_TABLE, ".idata$2");
result = false;
}
@@ -4450,8 +4456,8 @@ _bfd_XXi_final_link_postscript (bfd * abfd, struct coff_final_link_info *pfinfo)
else
{
_bfd_error_handler
- (_("%pB: unable to fill in DataDictionary[1] because .idata$4 is missing"),
- abfd);
+ (_("%pB: unable to fill in DataDirectory[%d]: %s is missing"),
+ abfd, PE_IMPORT_TABLE, ".idata$4");
result = false;
}
@@ -4471,8 +4477,8 @@ _bfd_XXi_final_link_postscript (bfd * abfd, struct coff_final_link_info *pfinfo)
else
{
_bfd_error_handler
- (_("%pB: unable to fill in DataDictionary[12] because .idata$5 is missing"),
- abfd);
+ (_("%pB: unable to fill in DataDirectory[%d]: %s is missing"),
+ abfd, PE_IMPORT_ADDRESS_TABLE, ".idata$5");
result = false;
}
@@ -4491,8 +4497,8 @@ _bfd_XXi_final_link_postscript (bfd * abfd, struct coff_final_link_info *pfinfo)
else
{
_bfd_error_handler
- (_("%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing"),
- abfd);
+ (_("%pB: unable to fill in DataDirectory[%d]: %s is missing"),
+ abfd, PE_IMPORT_ADDRESS_TABLE, ".idata$6");
result = false;
}
}
@@ -4533,17 +4539,62 @@ _bfd_XXi_final_link_postscript (bfd * abfd, struct coff_final_link_info *pfinfo)
else
{
_bfd_error_handler
- (_("%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)]"
- " because .idata$6 is missing"), abfd);
+ (_("%pB: unable to fill in DataDirectory[%d]: %s not defined correctly"),
+ abfd, PE_IMPORT_ADDRESS_TABLE, "__IAT_end__");
result = false;
}
}
}
+ /* The delay import directory. This is .didat$2 */
h1 = coff_link_hash_lookup (coff_hash_table (info),
- (bfd_get_symbol_leading_char (abfd) != 0
- ? "__tls_used" : "_tls_used"),
- false, false, true);
+ "__DELAY_IMPORT_DIRECTORY_start__", false, false,
+ true);
+ if (h1 != NULL
+ && (h1->root.type == bfd_link_hash_defined
+ || h1->root.type == bfd_link_hash_defweak)
+ && h1->root.u.def.section != NULL
+ && h1->root.u.def.section->output_section != NULL)
+ {
+ bfd_vma delay_va;
+
+ delay_va =
+ (h1->root.u.def.value
+ + h1->root.u.def.section->output_section->vma
+ + h1->root.u.def.section->output_offset);
+
+ h1 = coff_link_hash_lookup (coff_hash_table (info),
+ "__DELAY_IMPORT_DIRECTORY_end__", false,
+ false, true);
+ if (h1 != NULL
+ && (h1->root.type == bfd_link_hash_defined
+ || h1->root.type == bfd_link_hash_defweak)
+ && h1->root.u.def.section != NULL
+ && h1->root.u.def.section->output_section != NULL)
+ {
+ pe_data (abfd)->pe_opthdr.DataDirectory[PE_DELAY_IMPORT_DESCRIPTOR].Size =
+ ((h1->root.u.def.value
+ + h1->root.u.def.section->output_section->vma
+ + h1->root.u.def.section->output_offset)
+ - delay_va);
+ if (pe_data (abfd)->pe_opthdr.DataDirectory[PE_DELAY_IMPORT_DESCRIPTOR].Size
+ != 0)
+ pe_data (abfd)->pe_opthdr.DataDirectory[PE_DELAY_IMPORT_DESCRIPTOR].VirtualAddress =
+ delay_va - pe_data (abfd)->pe_opthdr.ImageBase;
+ }
+ else
+ {
+ _bfd_error_handler
+ (_("%pB: unable to fill in DataDirectory[%d]: %s not defined correctly"),
+ abfd, PE_DELAY_IMPORT_DESCRIPTOR,
+ "__DELAY_IMPORT_DIRECTORY_end__");
+ result = false;
+ }
+ }
+
+ name[0] = bfd_get_symbol_leading_char (abfd);
+ strcpy (name + !!name[0], "_tls_used");
+ h1 = coff_link_hash_lookup (coff_hash_table (info), name, false, false, true);
if (h1 != NULL)
{
if ((h1->root.type == bfd_link_hash_defined
@@ -4558,8 +4609,8 @@ _bfd_XXi_final_link_postscript (bfd * abfd, struct coff_final_link_info *pfinfo)
else
{
_bfd_error_handler
- (_("%pB: unable to fill in DataDictionary[9] because __tls_used is missing"),
- abfd);
+ (_("%pB: unable to fill in DataDirectory[%d]: %s not defined correctly"),
+ abfd, PE_TLS_TABLE, name);
result = false;
}
/* According to PECOFF sepcifications by Microsoft version 8.2
@@ -4573,6 +4624,81 @@ _bfd_XXi_final_link_postscript (bfd * abfd, struct coff_final_link_info *pfinfo)
#endif
}
+ name[0] = bfd_get_symbol_leading_char (abfd);
+ strcpy (name + !!name[0], "_load_config_used");
+ h1 = coff_link_hash_lookup (coff_hash_table (info), name, false, false, true);
+ if (h1 != NULL)
+ {
+ char data[4];
+ if ((h1->root.type == bfd_link_hash_defined
+ || h1->root.type == bfd_link_hash_defweak)
+ && h1->root.u.def.section != NULL
+ && h1->root.u.def.section->output_section != NULL)
+ {
+ pe_data (abfd)->pe_opthdr.DataDirectory[PE_LOAD_CONFIG_TABLE].VirtualAddress =
+ (h1->root.u.def.value
+ + h1->root.u.def.section->output_section->vma
+ + h1->root.u.def.section->output_offset
+ - pe_data (abfd)->pe_opthdr.ImageBase);
+
+ if (pe_data (abfd)->pe_opthdr.DataDirectory[PE_LOAD_CONFIG_TABLE].VirtualAddress
+ & (bfd_arch_bits_per_address (abfd) / bfd_arch_bits_per_byte (abfd)
+ - 1))
+ {
+ _bfd_error_handler
+ (_("%pB: unable to fill in DataDirectory[%d]: %s not properly aligned"),
+ abfd, PE_LOAD_CONFIG_TABLE, name);
+ result = false;
+ }
+
+ /* The size is stored as the first 4 bytes at _load_config_used. */
+ if (bfd_get_section_contents (abfd,
+ h1->root.u.def.section->output_section, data,
+ h1->root.u.def.section->output_offset + h1->root.u.def.value,
+ 4))
+ {
+ uint32_t size = bfd_get_32 (abfd, data);
+ /* The Microsoft PE format documentation says for compatibility
+ with Windows XP and earlier, the size must be 64 for x86
+ images. */
+ pe_data (abfd)->pe_opthdr.DataDirectory[PE_LOAD_CONFIG_TABLE].Size
+ = (bfd_get_arch (abfd) == bfd_arch_i386
+ && ((bfd_get_mach (abfd) & ~bfd_mach_i386_intel_syntax)
+ == bfd_mach_i386_i386)
+ && ((pe_data (abfd)->pe_opthdr.Subsystem
+ == IMAGE_SUBSYSTEM_WINDOWS_GUI)
+ || (pe_data (abfd)->pe_opthdr.Subsystem
+ == IMAGE_SUBSYSTEM_WINDOWS_CUI))
+ && (pe_data (abfd)->pe_opthdr.MajorSubsystemVersion * 256
+ + pe_data (abfd)->pe_opthdr.MinorSubsystemVersion
+ <= 0x0501))
+ ? 64 : size;
+
+ if (size > h1->root.u.def.section->size - h1->root.u.def.value)
+ {
+ _bfd_error_handler
+ (_("%pB: unable to fill in DataDirectory[%d]: size too large for the containing section"),
+ abfd, PE_LOAD_CONFIG_TABLE);
+ result = false;
+ }
+ }
+ else
+ {
+ _bfd_error_handler
+ (_("%pB: unable to fill in DataDirectory[%d]: size can't be read from %s"),
+ abfd, PE_LOAD_CONFIG_TABLE, name);
+ result = false;
+ }
+ }
+ else
+ {
+ _bfd_error_handler
+ (_("%pB: unable to fill in DataDirectory[%d]: %s not defined correctly"),
+ abfd, PE_LOAD_CONFIG_TABLE, name);
+ result = false;
+ }
+ }
+
/* If there is a .pdata section and we have linked pdata finally, we
need to sort the entries ascending. */
#if !defined(COFF_WITH_pep) && (defined(COFF_WITH_pex64) || defined(COFF_WITH_peAArch64) || defined(COFF_WITH_peLoongArch64) || defined (COFF_WITH_peRiscV64))
diff --git a/bfd/pei-aarch64.c b/bfd/pei-aarch64.c
index 3d7f5b3..00f38e0 100644
--- a/bfd/pei-aarch64.c
+++ b/bfd/pei-aarch64.c
@@ -49,6 +49,8 @@
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".didat"), \
+ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
diff --git a/bfd/pei-arm.c b/bfd/pei-arm.c
index 2abc14d..07cebb5 100644
--- a/bfd/pei-arm.c
+++ b/bfd/pei-arm.c
@@ -45,6 +45,8 @@
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".didat"), \
+ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
diff --git a/bfd/pei-i386.c b/bfd/pei-i386.c
index 676a824..a26f170 100644
--- a/bfd/pei-i386.c
+++ b/bfd/pei-i386.c
@@ -35,6 +35,8 @@
#define COFF_SECTION_ALIGNMENT_ENTRIES \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".didat"), \
+ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
diff --git a/bfd/pei-loongarch64.c b/bfd/pei-loongarch64.c
index 4b3a30d..f22498c 100644
--- a/bfd/pei-loongarch64.c
+++ b/bfd/pei-loongarch64.c
@@ -49,6 +49,8 @@
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".didat"), \
+ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
diff --git a/bfd/pei-riscv64.c b/bfd/pei-riscv64.c
index e87aa42..c4ae7bf 100644
--- a/bfd/pei-riscv64.c
+++ b/bfd/pei-riscv64.c
@@ -49,6 +49,8 @@
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".didat"), \
+ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
diff --git a/bfd/pei-x86_64.c b/bfd/pei-x86_64.c
index 3f8f255..a5c2fd8 100644
--- a/bfd/pei-x86_64.c
+++ b/bfd/pei-x86_64.c
@@ -51,6 +51,8 @@
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 4 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".idata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
+{ COFF_SECTION_NAME_PARTIAL_MATCH (".didat"), \
+ COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_EXACT_MATCH (".pdata"), \
COFF_ALIGNMENT_FIELD_EMPTY, COFF_ALIGNMENT_FIELD_EMPTY, 2 }, \
{ COFF_SECTION_NAME_PARTIAL_MATCH (".debug"), \
diff --git a/bfd/po/ms.po b/bfd/po/ms.po
index 338f113..92b41d0 100644
--- a/bfd/po/ms.po
+++ b/bfd/po/ms.po
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: bfd 2.43.90\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
"POT-Creation-Date: 2025-01-19 12:19+0000\n"
-"PO-Revision-Date: 2025-01-26 21:02+0800\n"
+"PO-Revision-Date: 2025-05-26 00:22+0800\n"
"Last-Translator: Sharuzzaman Ahmat Raslan <sharuzzaman@gmail.com>\n"
"Language-Team: Malay <translation-team-ms@lists.sourceforge.net>\n"
"Language: ms\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
-"X-Generator: Poedit 3.5\n"
+"X-Generator: Poedit 3.6\n"
#: aout-cris.c:196
#, c-format
@@ -35,9 +35,9 @@ msgid "%pB: bad relocation record imported: %d"
msgstr ""
#: aoutx.h:444 pdp11.c:481
-#, c-format
+#, fuzzy, c-format
msgid "%pB: %#<PRIx64> overflows header %s field"
-msgstr ""
+msgstr "Badan mesej adalah kosong tetapi tanda tangan dalam medan pengepala ialah \"(%s)\""
#: aoutx.h:1269 aoutx.h:1598 pdp11.c:1246 pdp11.c:1495
#, c-format
@@ -70,9 +70,9 @@ msgid "%pB: attempt to write out unknown reloc type"
msgstr ""
#: aoutx.h:4047 pdp11.c:3409
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unsupported relocation type"
-msgstr ""
+msgstr "Jenis _MIME tidak disokong %s"
#. Unknown relocation.
#: aoutx.h:4367 coff-alpha.c:601 coff-mips.c:356 coff-rs6000.c:3037
@@ -105,14 +105,14 @@ msgstr ""
#: elfxx-ia64.c:324 elfxx-loongarch.c:1897 elfxx-riscv.c:1062 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 elfnn-kvx.c:259
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unsupported relocation type %#x"
-msgstr ""
+msgstr "TYPE(x)"
#: aoutx.h:5387 pdp11.c:3825
-#, c-format
+#, fuzzy, c-format
msgid "%pB: relocatable link from %s to %s not supported"
-msgstr ""
+msgstr "Pertukaran dari set aksara \"%s\" ke \"UTF-8\" tidak disokong"
#: arc-got.h:69
#, c-format
@@ -133,32 +133,38 @@ msgid "%pB: plugin needed to handle lto object"
msgstr ""
#: archive.c:2644
+#, fuzzy
msgid "Reading archive file mod timestamp"
-msgstr ""
+msgstr "Setem masa penciptaan fail imej tidak ditetapkan dalam fail"
#: archive.c:2675
+#, fuzzy
msgid "Writing updated armap timestamp"
-msgstr ""
+msgstr "Dikemaskini"
#: bfd.c:777
msgid "no error"
msgstr "tiada ralat"
#: bfd.c:778
+#, fuzzy
msgid "system call error"
-msgstr ""
+msgstr "panggilan sistem fork() gagal"
#: bfd.c:779
+#, fuzzy
msgid "invalid bfd target"
-msgstr ""
+msgstr "Nilai sasaran tak sah."
#: bfd.c:780
+#, fuzzy
msgid "file in wrong format"
-msgstr ""
+msgstr "Format fail:"
#: bfd.c:781
+#, fuzzy
msgid "archive object file in wrong format"
-msgstr ""
+msgstr "Cipta arkib dengan objek terpilih"
#: bfd.c:782
#, fuzzy
@@ -166,9 +172,8 @@ msgid "invalid operation"
msgstr "Operasi tidak sah %d\n"
#: bfd.c:783
-#, fuzzy
msgid "memory exhausted"
-msgstr "memori keletihan"
+msgstr "kehabisan memori"
#: bfd.c:784
#, fuzzy
@@ -180,32 +185,39 @@ msgid "archive has no index; run ranlib to add one"
msgstr ""
#: bfd.c:786
+#, fuzzy
msgid "no more archived files"
-msgstr ""
+msgstr "Diarkib"
#: bfd.c:787
+#, fuzzy
msgid "malformed archive"
-msgstr ""
+msgstr "Respon cacat"
#: bfd.c:788
+#, fuzzy
msgid "DSO missing from command line"
-msgstr ""
+msgstr "Alatan KDE untuk pembukaan URL daripada baris arahan"
#: bfd.c:789
+#, fuzzy
msgid "file format not recognized"
-msgstr ""
+msgstr "PNM: Format fail tidak dikenal."
#: bfd.c:790
+#, fuzzy
msgid "file format is ambiguous"
-msgstr ""
+msgstr "Format Fail"
#: bfd.c:791
+#, fuzzy
msgid "section has no contents"
-msgstr ""
+msgstr "Kand_ungan"
#: bfd.c:792
+#, fuzzy
msgid "nonrepresentable section on output"
-msgstr ""
+msgstr "&Seksyen:"
#: bfd.c:793
msgid "symbol needs debug section which does not exist"
@@ -217,8 +229,9 @@ msgid "bad value"
msgstr "nilai salah untuk maklumat keadaan ikon terlabuh %s"
#: bfd.c:795
+#, fuzzy
msgid "file truncated"
-msgstr ""
+msgstr "PNM: Fail seperti dipotong."
#: bfd.c:796
#, fuzzy
@@ -226,8 +239,9 @@ msgid "file too big"
msgstr "Fail terlalu besar."
#: bfd.c:797
+#, fuzzy
msgid "sorry, cannot handle this file"
-msgstr ""
+msgstr "pluma tidak dapat mengendali lokasi ini."
#: bfd.c:798
#, fuzzy, c-format
@@ -235,23 +249,24 @@ msgid "error reading %s: %s"
msgstr "Ralat membaca %s: %s"
#: bfd.c:799
+#, fuzzy
msgid "#<invalid error code>"
-msgstr ""
+msgstr "kod kesalahan"
#: bfd.c:2242
-#, c-format
+#, fuzzy, c-format
msgid "BFD %s assertion fail %s:%d"
-msgstr ""
+msgstr "Gagal sebelum mengembalikan media kepada pengguna: %s"
#: bfd.c:2255
-#, c-format
+#, fuzzy, c-format
msgid "%s: BFD %s internal error, aborting at %s:%d in %s\n"
-msgstr ""
+msgstr "RALAT DALAMAN pada %s:%d: regex hilang atau tidak sah"
#: bfd.c:2259
-#, c-format
+#, fuzzy, c-format
msgid "%s: BFD %s internal error, aborting at %s:%d\n"
-msgstr ""
+msgstr "RALAT DALAMAN pada %s:%d: regex hilang atau tidak sah"
#: bfd.c:2262
#, fuzzy, c-format
@@ -264,9 +279,9 @@ msgid "warning: writing section `%pA' at huge (ie negative) file offset"
msgstr ""
#: cache.c:290
-#, c-format
+#, fuzzy, c-format
msgid "reopening %pB: %s"
-msgstr ""
+msgstr "PB"
#: coff-alpha.c:450
#, c-format
@@ -295,8 +310,9 @@ msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"
msgstr ""
#: coff-alpha.c:1489
+#, fuzzy
msgid "using multiple gp values"
-msgstr ""
+msgstr "Muat P_GP"
#: coff-alpha.c:1987
#, c-format
@@ -334,9 +350,9 @@ msgid "%pB: TOC reloc at %#<PRIx64> to symbol `%s' with no TOC entry"
msgstr ""
#: coff-rs6000.c:3251 coff64-rs6000.c:848
-#, c-format
+#, fuzzy, c-format
msgid "Unable to find the stub entry targeting %s"
-msgstr ""
+msgstr "Tak dapat hantar kemasukan senaraimain \"%s\""
#: coff-rs6000.c:3366
#, c-format
@@ -389,9 +405,9 @@ msgid "%pB: %#<PRIx64>: warning: could not find expected COUNT reloc"
msgstr ""
#: coff-sh.c:983 elf32-sh.c:738
-#, c-format
+#, fuzzy, c-format
msgid "%pB: %#<PRIx64>: warning: bad count"
-msgstr ""
+msgstr "Amaran: Tandatangan rosak."
#: coff-sh.c:1349 coff-sh.c:2636 elf32-sh.c:1138 elf32-sh.c:1506
#, c-format
@@ -415,8 +431,9 @@ msgid "%pB: warning: illegal symbol index %ld in relocs"
msgstr ""
#: coff-x86_64.c:147
+#, fuzzy
msgid "R_AMD64_IMAGEBASE with __ImageBase undefined"
-msgstr ""
+msgstr "Tidak ditakrif"
#: coff64-rs6000.c:447 coff64-rs6000.c:554
#, c-format
@@ -439,9 +456,9 @@ msgid "%pB: unable to load COMDAT section name"
msgstr ""
#: coffcode.h:976
-#, c-format
+#, fuzzy, c-format
msgid "%pB: warning: no symbol for section '%s' found"
-msgstr ""
+msgstr "simbol tidak dijumpai di dalam pengeluaran: %.*s"
#: coffcode.h:1148
#, c-format
@@ -487,9 +504,9 @@ msgid "%pB: reloc against a non-existent symbol index: %ld"
msgstr ""
#: coffcode.h:3162
-#, c-format
+#, fuzzy, c-format
msgid "%pB: too many sections (%d)"
-msgstr ""
+msgstr "Terlalu banyak titik henti. Maksimum ialah %d."
#: coffcode.h:3690
#, c-format
@@ -537,14 +554,14 @@ msgid "%pB: illegal relocation type %d at address %#<PRIx64>"
msgstr ""
#: coffgen.c:255 elf.c:1033
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unable to compress section %s"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: coffgen.c:265 elf.c:1043
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unable to decompress section %s"
-msgstr ""
+msgstr "Sumber pada \"%s\" gagal dinyahmampatkan"
#: coffgen.c:1778
#, c-format
@@ -558,9 +575,9 @@ msgid "<corrupt>"
msgstr "Fail rosak?"
#: coffgen.c:2191
-#, c-format
+#, fuzzy, c-format
msgid "<corrupt info> %s"
-msgstr ""
+msgstr "PNG imej kenit rosak: '%s'"
#: coffgen.c:2797 elflink.c:15435 linker.c:3011
msgid "%F%P: already_linked_table: %E\n"
@@ -572,8 +589,12 @@ msgid "removing unused section '%pA' in file '%pB'"
msgstr ""
#: coffgen.c:3216 elflink.c:14606
+#, fuzzy
msgid "warning: gc-sections option ignored"
msgstr ""
+"Amaran mengenai %(cleaner)s - %(option)s:\n"
+"\n"
+"%(warning)s"
#: cofflink.c:398
#, c-format
@@ -631,20 +652,20 @@ msgid "warning: unable to update contents of %s section in %pB"
msgstr ""
#: dwarf2.c:702
-#, c-format
+#, fuzzy, c-format
msgid "DWARF error: can't find %s section."
-msgstr ""
+msgstr "%s: tidak dapat mencari seksyen .text dalam %s\n"
#: dwarf2.c:710
-#, c-format
+#, fuzzy, c-format
msgid "DWARF error: section %s has no contents"
-msgstr ""
+msgstr "Ralat menyenaraikan kandungan folder '%s': %s"
#. PR 26946
#: dwarf2.c:719
-#, c-format
+#, fuzzy, c-format
msgid "DWARF error: section %s is too big"
-msgstr ""
+msgstr "Ralat: Saiz mesej %d terlalu besar\n"
#: dwarf2.c:754
#, c-format
@@ -665,8 +686,9 @@ msgid "DWARF error: mangled line number section (bad file number)"
msgstr ""
#: dwarf2.c:2614
+#, fuzzy
msgid "DWARF error: zero format count"
-msgstr ""
+msgstr "Sembunyi kiraan bila kosong:"
#: dwarf2.c:2624
#, c-format
@@ -762,58 +784,58 @@ msgid "%pB: warning: isymMax (%ld) is greater than ifdMax (%ld)"
msgstr ""
#: ecoff.c:1313
-#, c-format
+#, fuzzy, c-format
msgid "unknown basic type %d"
-msgstr ""
+msgstr "Jenis anak panah %d tak diketahui\n"
#: ecoff.c:1571
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
" End+1 symbol: %ld"
-msgstr ""
+msgstr "Tetapkan alamat &akhir simbol"
#: ecoff.c:1578 ecoff.c:1581
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
" First symbol: %ld"
-msgstr ""
+msgstr "Memadam fail %ld drpd %ld"
#: ecoff.c:1596
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
" End+1 symbol: %-7ld Type: %s"
-msgstr ""
+msgstr "jenis <%s> digunakan, tetapi tidak dihubungkan ke sebarang simbol"
#: ecoff.c:1604
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
" Local symbol: %ld"
-msgstr ""
+msgstr "Memadam fail %ld drpd %ld"
#: ecoff.c:1612
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
" struct; End+1 symbol: %ld"
-msgstr ""
+msgstr "Lumpuhkan simbol _akhir baris"
#: ecoff.c:1617
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
" union; End+1 symbol: %ld"
-msgstr ""
+msgstr "Lumpuhkan simbol _akhir baris"
#: ecoff.c:1622
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
" enum; End+1 symbol: %ld"
-msgstr ""
+msgstr "Lumpuhkan simbol _akhir baris"
#: ecoff.c:1630
#, fuzzy, c-format
@@ -823,8 +845,9 @@ msgid ""
msgstr "Indeks tidak sah untuk jenis %s untuk jenis asa %s"
#: elf-attrs.c:417 elf-attrs.c:447 elf-attrs.c:623
+#, fuzzy
msgid "error adding attribute"
-msgstr ""
+msgstr "Ralat ketika menambah hubungan"
#: elf-attrs.c:503
#, c-format
@@ -866,9 +889,9 @@ msgid "further warnings about FDE encoding preventing .eh_frame_hdr generation d
msgstr ""
#: elf-eh-frame.c:1872
-#, c-format
+#, fuzzy, c-format
msgid "%pB: %pA not in order"
-msgstr ""
+msgstr "PA="
#: elf-eh-frame.c:1886
#, c-format
@@ -890,13 +913,14 @@ msgid "invalid output section for .eh_frame_entry: %pA"
msgstr ""
#: elf-eh-frame.c:2340
-#, c-format
+#, fuzzy, c-format
msgid "invalid contents in %pA section"
-msgstr ""
+msgstr "PA="
#: elf-eh-frame.c:2496
+#, fuzzy
msgid ".eh_frame_hdr entry overflow"
-msgstr ""
+msgstr "Lukis bingkai disekeliling masukan"
#: elf-eh-frame.c:2498
msgid ".eh_frame_hdr refers to overlapping FDEs"
@@ -917,8 +941,9 @@ msgstr ""
#: elf32-or1k.c:1895 elf32-score.c:2724 elf32-score7.c:2535 elf32-spu.c:5081
#: elf32-tilepro.c:3369 elf32-v850.c:2297 elf32-visium.c:680
#: elf32-xstormy16.c:930 elf64-bpf.c:339 elf64-mmix.c:1537 elfxx-tilegx.c:3742
+#, fuzzy
msgid "internal error: out of range error"
-msgstr ""
+msgstr "Ralat dalaman: Ralat tidak diketahui"
#: elf-m10200.c:438 elf-m10300.c:2150 elf32-bfin.c:3136 elf32-cr16.c:1433
#: elf32-cris.c:2037 elf32-crx.c:926 elf32-d10v.c:514 elf32-fr30.c:598
@@ -929,15 +954,17 @@ msgstr ""
#: elf32-score7.c:2539 elf32-spu.c:5085 elf32-tilepro.c:3373 elf32-v850.c:2301
#: elf32-visium.c:684 elf32-xstormy16.c:934 elf64-mmix.c:1541
#: elfxx-mips.c:10642 elfxx-tilegx.c:3746
+#, fuzzy
msgid "internal error: unsupported relocation error"
-msgstr ""
+msgstr "Ralat dalaman: Ralat tidak diketahui"
#: elf-m10200.c:442 elf32-cr16.c:1437 elf32-crx.c:930 elf32-d10v.c:518
#: elf32-h8300.c:531 elf32-lm32.c:1077 elf32-m32r.c:2845 elf32-m68hc1x.c:1278
#: elf32-microblaze.c:1685 elf32-nds32.c:6100 elf32-score.c:2732
#: elf32-score7.c:2543 elf32-spu.c:5089
+#, fuzzy
msgid "internal error: dangerous error"
-msgstr ""
+msgstr "Ralat dalaman: Ralat tidak diketahui"
#: elf-m10200.c:446 elf-m10300.c:2167 elf32-bfin.c:3144 elf32-cr16.c:1441
#: elf32-cris.c:2045 elf32-crx.c:934 elf32-d10v.c:522 elf32-epiphany.c:578
@@ -1062,18 +1089,19 @@ msgid "%F%P: failed to create GNU property section\n"
msgstr ""
#: elf-properties.c:644 elfxx-aarch64.c:752 elfxx-x86.c:4353
-#, c-format
+#, fuzzy, c-format
msgid "%F%pA: failed to align section\n"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#. Merge .note.gnu.property sections.
#: elf-properties.c:749 elf-properties.c:751
msgid "\n"
-msgstr ""
+msgstr "\n"
#: elf-properties.c:750
+#, fuzzy
msgid "Merging program properties\n"
-msgstr ""
+msgstr "Tiada Penggabungan"
#: elf-sframe.c:239
#, c-format
@@ -1089,9 +1117,9 @@ msgid "input SFrame sections with different format versions prevent .sframe gene
msgstr ""
#: elf.c:299
-#, c-format
+#, fuzzy, c-format
msgid "%pB: string table [%u] is corrupt"
-msgstr ""
+msgstr "Fail nampaknya rosak. Melangkau jadual. "
#. PR 17512: file: f057ec89.
#: elf.c:328
@@ -1111,9 +1139,9 @@ msgid "%pB symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
msgstr ""
#: elf.c:614
-#, c-format
+#, fuzzy, c-format
msgid "%pB: could not read contents of group [%u]"
-msgstr ""
+msgstr "Tidak dapat membaca kandungan %s"
#: elf.c:645
#, c-format
@@ -1146,52 +1174,52 @@ msgid "%pB: invalid sh_link field (%d) in section number %d"
msgstr ""
#: elf.c:1253
-#, c-format
+#, fuzzy, c-format
msgid "%pB: failed to find link section for section %d"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: elf.c:1280
-#, c-format
+#, fuzzy, c-format
msgid "%pB: failed to find info section for section %d"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: elf.c:1457
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"Program Header:\n"
-msgstr ""
+msgstr "Program"
#: elf.c:1499
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"Dynamic Section:\n"
-msgstr ""
+msgstr "dinamik"
#: elf.c:1638
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"Version definitions:\n"
-msgstr ""
+msgstr "Sedang mentakrifkan item..."
#: elf.c:1663
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"Version References:\n"
-msgstr ""
+msgstr "Rujukan:"
#: elf.c:1668
-#, c-format
+#, fuzzy, c-format
msgid " required from %s:\n"
-msgstr ""
+msgstr "diperlukan=%s"
#: elf.c:1917
-#, c-format
+#, fuzzy, c-format
msgid "%pB: DT_STRTAB table is corrupt"
-msgstr ""
+msgstr "Fail nampaknya rosak. Melangkau jadual. "
#: elf.c:2426
#, c-format
@@ -1219,9 +1247,9 @@ msgid "%pB: warning: secondary relocation section '%s' for section %pA found - i
msgstr ""
#: elf.c:2879 elf.c:2893 elf.c:2904 elf.c:2917
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unknown type [%#x] section `%s'"
-msgstr ""
+msgstr "Seksyen tidak diketahui: %s"
#: elf.c:3586
#, c-format
@@ -1234,9 +1262,9 @@ msgid "warning: section `%pA' type changed to PROGBITS"
msgstr ""
#: elf.c:4130
-#, c-format
+#, fuzzy, c-format
msgid "%pB: too many sections: %u"
-msgstr ""
+msgstr "Terlalu banyak klien. Sambungan daripada %s:%u ditolak."
#: elf.c:4216
#, c-format
@@ -1258,19 +1286,19 @@ msgid "%F%P: failed to size relative relocations\n"
msgstr ""
#: elf.c:5440
-#, c-format
+#, fuzzy, c-format
msgid "%pB: TLS sections are not adjacent:"
-msgstr ""
+msgstr "PB"
#: elf.c:5447
#, c-format
msgid "\t TLS: %pA"
-msgstr ""
+msgstr "\t TLS: %pA"
#: elf.c:5451
-#, c-format
+#, fuzzy, c-format
msgid "\tnon-TLS: %pA"
-msgstr ""
+msgstr "PA="
#: elf.c:6075
#, c-format
@@ -1316,14 +1344,14 @@ msgid "%pB: error: non-load segment %d includes file header and/or program heade
msgstr ""
#: elf.c:6862
-#, c-format
+#, fuzzy, c-format
msgid "error: %pB has a TLS segment with execute permission"
-msgstr ""
+msgstr "Proses mempunyai keizinan untuk melakukan arahan yang terkandung di dalam segmen ingatan."
#: elf.c:6868
-#, c-format
+#, fuzzy, c-format
msgid "warning: %pB has a TLS segment with execute permission"
-msgstr ""
+msgstr "Proses mempunyai keizinan untuk melakukan arahan yang terkandung di dalam segmen ingatan."
#: elf.c:6883
#, c-format
@@ -1336,9 +1364,9 @@ msgid "warning: %pB has a LOAD segment with RWX permissions"
msgstr ""
#: elf.c:7284
-#, c-format
+#, fuzzy, c-format
msgid "%pB: symbol `%s' required but not present"
-msgstr ""
+msgstr "Satu unsur (%s) diperlukan tidak hadir."
#: elf.c:7661
#, c-format
@@ -1361,14 +1389,14 @@ msgid "unable to find equivalent output section for symbol '%s' from section '%s
msgstr ""
#: elf.c:9300
-#, c-format
+#, fuzzy, c-format
msgid "%pB: .gnu.version_r invalid entry"
-msgstr ""
+msgstr "Masukan rangkaian tidak sah."
#: elf.c:9478
-#, c-format
+#, fuzzy, c-format
msgid "%pB: .gnu.version_d invalid entry"
-msgstr ""
+msgstr "%d masukan"
#: elf.c:9981
#, c-format
@@ -1382,9 +1410,9 @@ msgstr ""
#: elf.c:10108 elf32-mcore.c:100 elf32-mcore.c:455 elf32-ppc.c:7675
#: elf32-ppc.c:8863 elf64-ppc.c:16860
-#, c-format
+#, fuzzy, c-format
msgid "%pB: %s unsupported"
-msgstr ""
+msgstr "PB"
#: elf.c:10923
#, c-format
@@ -1484,9 +1512,9 @@ msgstr ""
#: elf32-arc.c:454 elf32-arm.c:15194 elf32-frv.c:6612 elf32-iq2000.c:868
#: elf32-m32c.c:914 elf32-mt.c:560 elf32-rl78.c:1275 elf32-rx.c:3218
#: elf32-visium.c:844 elf64-ppc.c:5531 elfnn-aarch64.c:7573
-#, c-format
+#, fuzzy, c-format
msgid "private flags = 0x%lx:"
-msgstr ""
+msgstr "[find_call] %s: 0x%lx ke 0x%lx\n"
#: elf32-arc.c:641
#, c-format
@@ -1514,14 +1542,14 @@ msgid "error: %pB: cannot mix rf16 with full register set %pB"
msgstr ""
#: elf32-arc.c:789
-#, c-format
+#, fuzzy, c-format
msgid "error: %pB: conflicting attributes %s: %s with %s"
-msgstr ""
+msgstr "keluaran berkonflik kepada fail %s"
#: elf32-arc.c:816
-#, c-format
+#, fuzzy, c-format
msgid "error: %pB: conflicting attributes %s"
-msgstr ""
+msgstr "Konflik tindakan untuk %s"
#: elf32-arc.c:921
#, c-format
@@ -1535,8 +1563,9 @@ msgid "%pB: uses different e_flags (%#x) fields than previous modules (%#x)"
msgstr ""
#: elf32-arc.c:1026
+#, fuzzy
msgid "error: the ARC4 architecture is no longer supported"
-msgstr ""
+msgstr "%s: -c tidak disokong pada rekabentuk %s\n"
#: elf32-arc.c:1032
msgid "warning: unset or old architecture flags; use default machine"
@@ -1562,9 +1591,9 @@ msgid "%pB(%pA): warning: unaligned access to symbol '%s' in the small data area
msgstr ""
#: elf32-arc.c:1926 elf32-rx.c:1491
-#, c-format
+#, fuzzy, c-format
msgid "%pB(%pA): internal error: out of range error"
-msgstr ""
+msgstr "Ralat kaji hurai: Nombor terkeluar dari Julat (mesti kecil daripada %1)"
#: elf32-arc.c:1931 elf32-rx.c:1496
#, c-format
@@ -1577,9 +1606,9 @@ msgid "%pB(%pA): internal error: dangerous relocation"
msgstr ""
#: elf32-arc.c:1941 elf32-rx.c:1506
-#, c-format
+#, fuzzy, c-format
msgid "%pB(%pA): internal error: unknown error"
-msgstr ""
+msgstr "Ralat dalaman: Ralat tidak diketahui"
#: elf32-arc.c:2035 elf32-arc.c:2103 elf32-arm.c:15637 elf32-metag.c:2250
#: elf32-nds32.c:5542 elfnn-aarch64.c:7980 elfnn-riscv.c:722
@@ -1620,9 +1649,9 @@ msgstr ""
#: elf32-arm.c:4854 elf32-arm.c:7003 elf32-csky.c:3385 elf32-hppa.c:581
#: elf32-m68hc1x.c:163 elf32-metag.c:1179 elf64-ppc.c:3902 elf64-ppc.c:14175
#: elfnn-aarch64.c:3188 elfnn-kvx.c:894
-#, c-format
+#, fuzzy, c-format
msgid "%pB: cannot create stub entry %s"
-msgstr ""
+msgstr "%s: Tak dapat mencipta symlink ke %s"
#: elf32-arm.c:5075 elf32-csky.c:3727 elf32-hppa.c:731 elf32-hppa.c:760
#: elf32-hppa.c:841 elf32-m68hc11.c:422 elf32-m68hc12.c:542 elf32-metag.c:3344
@@ -1646,9 +1675,9 @@ msgid "%pB: invalid standard symbol `%s'; it must be a global or weak function s
msgstr ""
#: elf32-arm.c:6100
-#, c-format
+#, fuzzy, c-format
msgid "%pB: absent standard symbol `%s'"
-msgstr ""
+msgstr "%s: tiada simbol sedemikian"
#: elf32-arm.c:6112
#, c-format
@@ -1656,14 +1685,14 @@ msgid "%pB: `%s' and its special symbol are in different sections"
msgstr ""
#: elf32-arm.c:6124
-#, c-format
+#, fuzzy, c-format
msgid "%pB: entry function `%s' not output"
-msgstr ""
+msgstr "Gagal mencari fungsi titik masukan \"%s\" dalam \"%s\": %s"
#: elf32-arm.c:6131
-#, c-format
+#, fuzzy, c-format
msgid "%pB: entry function `%s' is empty"
-msgstr ""
+msgstr "Fungsi kosong"
#: elf32-arm.c:6260
#, c-format
@@ -1681,19 +1710,19 @@ msgid "entry function `%s' disappeared from secure code"
msgstr ""
#: elf32-arm.c:6355
-#, c-format
+#, fuzzy, c-format
msgid "`%s' refers to a non entry function"
-msgstr ""
+msgstr "Tuju atau hubungan merujuk pada anak yang tidak wujud"
#: elf32-arm.c:6370
-#, c-format
+#, fuzzy, c-format
msgid "%pB: visibility of symbol `%s' has changed"
-msgstr ""
+msgstr "Format mel setempat Evolution telah berubah."
#: elf32-arm.c:6379
-#, c-format
+#, fuzzy, c-format
msgid "%pB: incorrect size for symbol `%s'"
-msgstr ""
+msgstr "Tetapkan &saiz simbol"
#: elf32-arm.c:6398
#, c-format
@@ -1710,9 +1739,9 @@ msgid "start address of `%s' is different from previous link"
msgstr ""
#: elf32-arm.c:7137 elf32-arm.c:7175
-#, c-format
+#, fuzzy, c-format
msgid "unable to find %s glue '%s' for '%s'"
-msgstr ""
+msgstr "Tak menjumpai fail include: \"%s\""
#: elf32-arm.c:7886
#, c-format
@@ -1731,9 +1760,9 @@ msgid "%pB: warning: selected STM32L4XX erratum workaround is not necessary for
msgstr ""
#: elf32-arm.c:8677 elf32-arm.c:8697 elf32-arm.c:8764 elf32-arm.c:8783
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unable to find %s veneer `%s'"
-msgstr ""
+msgstr "Tidak dapat mencari \"%s\""
#: elf32-arm.c:8990
#, c-format
@@ -1741,9 +1770,9 @@ msgid "%pB(%pA+%#x): error: multiple load detected in non-last IT block instruct
msgstr ""
#: elf32-arm.c:9088
-#, c-format
+#, fuzzy, c-format
msgid "invalid TARGET2 relocation type '%s'"
-msgstr ""
+msgstr "Indeks tidak sah untuk jenis %s untuk jenis asa %s"
#. FIXME: We ought to be able to generate thumb-1 PLT
#. instructions...
@@ -1778,12 +1807,14 @@ msgid "(%s): Unknown destination type (ARM/Thumb) in %pB"
msgstr ""
#: elf32-arm.c:10615
+#, fuzzy
msgid "shared object"
-msgstr ""
+msgstr "objek memori terkongsi"
#: elf32-arm.c:10618
+#, fuzzy
msgid "PIE executable"
-msgstr ""
+msgstr "Pai"
#: elf32-arm.c:10621
#, c-format
@@ -1826,20 +1857,24 @@ msgid "%pB(%pA+%#<PRIx64>): overflow whilst splitting %#<PRIx64> for group reloc
msgstr ""
#: elf32-arm.c:12704 elf32-arm.c:12863
+#, fuzzy
msgid "local symbol index too big"
-msgstr ""
+msgstr "Tiada simbol untuk indeks"
#: elf32-arm.c:12714 elf32-arm.c:12748
+#, fuzzy
msgid "no dynamic index information available"
-msgstr ""
+msgstr "Tidak tersedia bila menggunakan senarai main dinamik"
#: elf32-arm.c:12756
+#, fuzzy
msgid "invalid dynamic index"
-msgstr ""
+msgstr "ICO: Indeks ikon tidak sah."
#: elf32-arm.c:12873
+#, fuzzy
msgid "dynamic index information not available"
-msgstr ""
+msgstr "Tidak tersedia bila menggunakan senarai main dinamik"
#: elf32-arm.c:13304 elf32-sh.c:3566
#, c-format
@@ -1865,8 +1900,9 @@ msgstr "Diluar Julat"
#: elf32-arm.c:13506 elf32-pru.c:936 elf32-tic6x.c:2645 elfnn-aarch64.c:7411
#: elfnn-kvx.c:2801
+#, fuzzy
msgid "unsupported relocation"
-msgstr ""
+msgstr " (tidak disokong)"
#: elf32-arm.c:13514 elf32-pru.c:946 elf32-tic6x.c:2653 elfnn-aarch64.c:7419
#: elfnn-kvx.c:2809
@@ -1899,9 +1935,9 @@ msgid "warning: %pB: unknown EABI object attribute %d"
msgstr ""
#: elf32-arm.c:14470
-#, c-format
+#, fuzzy, c-format
msgid "error: %pB: unknown CPU architecture"
-msgstr ""
+msgstr "Ralat tidak diketahui"
#: elf32-arm.c:14508
#, c-format
@@ -1929,14 +1965,14 @@ msgid "error: %pB: conflicting architecture profiles %c/%c"
msgstr ""
#: elf32-arm.c:14977
-#, c-format
+#, fuzzy, c-format
msgid "warning: %pB: conflicting platform configuration"
-msgstr ""
+msgstr "Kunci berkonflik dari Conflict1 yang sepatutnya beri satu amaran"
#: elf32-arm.c:14986
-#, c-format
+#, fuzzy, c-format
msgid "error: %pB: conflicting use of R9"
-msgstr ""
+msgstr "Kunci berkonflik dengan julat 0~5 yang sepatutnya berikan satu ralat"
#: elf32-arm.c:14998
#, c-format
@@ -1969,44 +2005,44 @@ msgid "%pB has both the current and legacy Tag_MPextension_use attributes"
msgstr ""
#: elf32-arm.c:15203
-#, c-format
+#, fuzzy, c-format
msgid " [interworking enabled]"
-msgstr ""
+msgstr "tidak dihidupkan"
#: elf32-arm.c:15211
-#, c-format
+#, fuzzy, c-format
msgid " [VFP float format]"
-msgstr ""
+msgstr "apung"
#: elf32-arm.c:15213
-#, c-format
+#, fuzzy, c-format
msgid " [FPA float format]"
-msgstr ""
+msgstr "apung"
#: elf32-arm.c:15216
-#, c-format
+#, fuzzy, c-format
msgid " [floats passed in float registers]"
-msgstr ""
+msgstr "&Daftar"
#: elf32-arm.c:15219 elf32-arm.c:15304
-#, c-format
+#, fuzzy, c-format
msgid " [position independent]"
-msgstr ""
+msgstr "Dokumen bebas"
#: elf32-arm.c:15222
-#, c-format
+#, fuzzy, c-format
msgid " [new ABI]"
-msgstr ""
+msgstr "Baharu"
#: elf32-arm.c:15225
-#, c-format
+#, fuzzy, c-format
msgid " [old ABI]"
-msgstr ""
+msgstr " tua "
#: elf32-arm.c:15228
-#, c-format
+#, fuzzy, c-format
msgid " [software FP]"
-msgstr ""
+msgstr "Segerak FP dibenarkan"
#: elf32-arm.c:15236
#, c-format
@@ -2014,14 +2050,14 @@ msgid " [Version1 EABI]"
msgstr ""
#: elf32-arm.c:15239 elf32-arm.c:15250
-#, c-format
+#, fuzzy, c-format
msgid " [sorted symbol table]"
-msgstr ""
+msgstr "Simbol"
#: elf32-arm.c:15241 elf32-arm.c:15252
-#, c-format
+#, fuzzy, c-format
msgid " [unsorted symbol table]"
-msgstr ""
+msgstr "Tidak Diisih"
#: elf32-arm.c:15247
#, c-format
@@ -2029,14 +2065,14 @@ msgid " [Version2 EABI]"
msgstr ""
#: elf32-arm.c:15255
-#, c-format
+#, fuzzy, c-format
msgid " [dynamic symbols use segment index]"
-msgstr ""
+msgstr "Guna kodek bab ditemui dalam segmen."
#: elf32-arm.c:15258
-#, c-format
+#, fuzzy, c-format
msgid " [mapping symbols precede others]"
-msgstr ""
+msgstr "Simbol"
#: elf32-arm.c:15265
#, c-format
@@ -2054,53 +2090,55 @@ msgid " [Version5 EABI]"
msgstr ""
#: elf32-arm.c:15276
-#, c-format
+#, fuzzy, c-format
msgid " [soft-float ABI]"
-msgstr ""
+msgstr "Soft"
#: elf32-arm.c:15279
-#, c-format
+#, fuzzy, c-format
msgid " [hard-float ABI]"
-msgstr ""
+msgstr "Sukar"
#: elf32-arm.c:15285
#, c-format
msgid " [BE8]"
-msgstr ""
+msgstr " [BE8]"
#: elf32-arm.c:15288
#, c-format
msgid " [LE8]"
-msgstr ""
+msgstr " [LE8]"
#: elf32-arm.c:15294
-#, c-format
+#, fuzzy, c-format
msgid " <EABI version unrecognised>"
msgstr ""
+"perintah tidak dikenali: %s\n"
+"\n"
#: elf32-arm.c:15301
-#, c-format
+#, fuzzy, c-format
msgid " [relocatable executable]"
-msgstr ""
+msgstr "Skema boleh letak semula"
#: elf32-arm.c:15307
-#, c-format
+#, fuzzy, c-format
msgid " [FDPIC ABI supplement]"
-msgstr ""
+msgstr "Latin-1 Tambahan"
#: elf32-arm.c:15312 elfnn-aarch64.c:7576
-#, c-format
+#, fuzzy, c-format
msgid " <Unrecognised flag bits set>"
-msgstr ""
+msgstr "Alamat mempunyai set bit melangkaui panjang awalan"
#: elf32-arm.c:15420 elf32-arm.c:15554 elf32-i386.c:1545 elf32-s390.c:921
#: elf32-tic6x.c:2716 elf32-tilepro.c:1433 elf32-xtensa.c:1088 elf64-s390.c:843
#: elf64-x86-64.c:2173 elfxx-sparc.c:1385 elfxx-tilegx.c:1661 elfxx-x86.c:971
#: elfnn-aarch64.c:7847 elfnn-kvx.c:3247 elfnn-loongarch.c:952
#: elfnn-riscv.c:766
-#, c-format
+#, fuzzy, c-format
msgid "%pB: bad symbol index: %d"
-msgstr ""
+msgstr "Tiada simbol untuk indeks"
#: elf32-arm.c:15810
#, c-format
@@ -2108,14 +2146,14 @@ msgid "FDPIC does not yet support %s relocation to become dynamic for executable
msgstr ""
#: elf32-arm.c:17072
-#, c-format
+#, fuzzy, c-format
msgid "errors encountered processing file %pB"
-msgstr ""
+msgstr "end-of-file tak matang berlaku"
#: elf32-arm.c:17442 elflink.c:13533 elflink.c:13580
-#, c-format
+#, fuzzy, c-format
msgid "could not find section %s"
-msgstr ""
+msgstr "Gagal mencipta sesi sftp: %s"
#: elf32-arm.c:18397
#, c-format
@@ -2135,9 +2173,9 @@ msgid "%pB: error: Cortex-A8 erratum stub out of range (input file too large)"
msgstr ""
#: elf32-arm.c:19509 elf32-arm.c:19531
-#, c-format
+#, fuzzy, c-format
msgid "%pB: error: VFP11 veneer out of range"
-msgstr ""
+msgstr "Ralat kaji hurai: Nombor terkeluar dari Julat (mesti kecil daripada %1)"
#: elf32-arm.c:19582
#, c-format
@@ -2145,9 +2183,9 @@ msgid "%pB(%#<PRIx64>): error: cannot create STM32L4XX veneer; jump out of range
msgstr ""
#: elf32-arm.c:19621
-#, c-format
+#, fuzzy, c-format
msgid "%pB: error: cannot create STM32L4XX veneer"
-msgstr ""
+msgstr "Ralat: Tidak dapat cipta fail sementara: %s\n"
#: elf32-arm.c:20704
#, c-format
@@ -2212,13 +2250,14 @@ msgid "%X%H: %s against `%s': internal error: unexpected relocation result %d\n"
msgstr ""
#: elf32-avr.c:3335 elfnn-aarch64.c:3219
-#, c-format
+#, fuzzy, c-format
msgid "cannot create stub entry %s"
-msgstr ""
+msgstr "%s: Tak dapat mencipta symlink ke %s"
#: elf32-bfin.c:107 elf32-bfin.c:364
+#, fuzzy
msgid "relocation should be even number"
-msgstr ""
+msgstr "Jumlah aksara genap diperlukan"
#: elf32-bfin.c:1589
#, c-format
@@ -2237,16 +2276,18 @@ msgid "%pB: relocation at `%pA+%#<PRIx64>' references symbol `%s' with nonzero a
msgstr ""
#: elf32-bfin.c:2663
+#, fuzzy
msgid "relocation references symbol not defined in the module"
-msgstr ""
+msgstr "simbol %s digunakan, tetapi tidak ditakrifkan sebagai token atau mempunyai hukum"
#: elf32-bfin.c:2761
msgid "R_BFIN_FUNCDESC references dynamic symbol with nonzero addend"
msgstr ""
#: elf32-bfin.c:2801 elf32-bfin.c:2922
+#, fuzzy
msgid "cannot emit fixups in read-only section"
-msgstr ""
+msgstr "Peristiwa tidak boleh disunting, kerana kalendar terpilih adalah baca sahaja"
#: elf32-bfin.c:2831 elf32-bfin.c:2959 elf32-lm32.c:1006 elf32-sh.c:4384
msgid "cannot emit dynamic relocations in read-only section"
@@ -2257,8 +2298,9 @@ msgid "R_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addend"
msgstr ""
#: elf32-bfin.c:3044
+#, fuzzy
msgid "relocations between different segments are not supported"
-msgstr ""
+msgstr "Operasi tidak disokong, fail berada pada lekap berbeza"
#: elf32-bfin.c:3045
msgid "warning: relocation references a different segment"
@@ -2270,16 +2312,17 @@ msgstr ""
#: elf32-msp430.c:1514 elf32-mt.c:406 elf32-or1k.c:1903 elf32-tilepro.c:3377
#: elf32-v850.c:2305 elf32-visium.c:688 elf32-xstormy16.c:938 elf64-bpf.c:348
#: elf64-mmix.c:1545 elfxx-tilegx.c:3750
+#, fuzzy
msgid "internal error: dangerous relocation"
-msgstr ""
+msgstr "Ralat dalaman: Ralat tidak diketahui"
#. Ignore init flag - it may not be set, despite the flags field containing valid data.
#: elf32-bfin.c:4728 elf32-cris.c:3860 elf32-m68hc1x.c:1414 elf32-m68k.c:1264
#: elf32-score.c:3984 elf32-score7.c:3791 elf32-vax.c:534 elf32-xgate.c:494
#: elfxx-mips.c:16366
-#, c-format
+#, fuzzy, c-format
msgid "private flags = %lx:"
-msgstr ""
+msgstr "Persendirian"
#: elf32-bfin.c:4779 elf32-frv.c:6585
#, c-format
@@ -2292,17 +2335,18 @@ msgid "%pB: cannot link fdpic object file into non-fdpic executable"
msgstr ""
#: elf32-bfin.c:4919
-#, c-format
+#, fuzzy, c-format
msgid "*** check this relocation %s"
-msgstr ""
+msgstr "Tidak dapat memeriksa folder: %s: %s"
#: elf32-bfin.c:5034
msgid "the bfin target does not currently support the generation of copy relocations"
msgstr ""
#: elf32-bfin.c:5329 elf32-cr16.c:2720 elf32-m68k.c:4420
+#, fuzzy
msgid "unsupported relocation type"
-msgstr ""
+msgstr "Jenis Python tidak disokong: %s"
#: elf32-cris.c:1119
#, c-format
@@ -2321,8 +2365,9 @@ msgstr ""
#: elf32-cris.c:1193 elf32-cris.c:1326 elf32-cris.c:1591 elf32-cris.c:1674
#: elf32-cris.c:1827 elf32-tic6x.c:2552
+#, fuzzy
msgid "[whose name is lost]"
-msgstr ""
+msgstr "Nama '%s' hilang dalam dbus mesej."
#: elf32-cris.c:1311 elf32-tic6x.c:2536
#, c-format
@@ -2391,13 +2436,14 @@ msgid "%pB, section `%pA', to symbol `%s': relocation %s should not be used in a
msgstr ""
#: elf32-cris.c:3811
+#, fuzzy
msgid "unexpected machine number"
-msgstr ""
+msgstr "Nombor pemacu %1 tak dijangka."
#: elf32-cris.c:3863
-#, c-format
+#, fuzzy, c-format
msgid " [symbols have a _ prefix]"
-msgstr ""
+msgstr "Pengenalpasti pulsar mempunyai awalan 'PSR'"
#: elf32-cris.c:3866
#, c-format
@@ -2407,7 +2453,7 @@ msgstr ""
#: elf32-cris.c:3869
#, c-format
msgid " [v32]"
-msgstr ""
+msgstr " [v32]"
#: elf32-cris.c:3913
#, c-format
@@ -2430,8 +2476,9 @@ msgid "%pB contains non-CRIS-v32 code, incompatible with previous objects"
msgstr ""
#: elf32-csky.c:2016
+#, fuzzy
msgid "GOT table size out of range"
-msgstr ""
+msgstr "Diluar Julat"
#: elf32-csky.c:2826
#, c-format
@@ -2439,9 +2486,9 @@ msgid "warning: unrecognized arch eflag '%#lx'"
msgstr ""
#: elf32-csky.c:2849
-#, c-format
+#, fuzzy, c-format
msgid "warning: unrecognised arch name '%#x'"
-msgstr ""
+msgstr "nama (x,y)"
#: elf32-csky.c:2914 elf32-csky.c:3074
#, c-format
@@ -2475,9 +2522,9 @@ msgstr ""
#. The r_type is error, not support it.
#: elf32-csky.c:4327 elf32-i386.c:344
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unsupported relocation type: %#x"
-msgstr ""
+msgstr "TYPE(x)"
#: elf32-dlx.c:141
#, c-format
@@ -2495,8 +2542,9 @@ msgid "unsupported relocation between data/insn address spaces"
msgstr ""
#: elf32-frv.c:1452 elf32-frv.c:1603
+#, fuzzy
msgid "relocation requires zero addend"
-msgstr ""
+msgstr "Sifar"
#: elf32-frv.c:2832
#, c-format
@@ -2573,9 +2621,9 @@ msgid "%H: reloc against `%s' references a different segment\n"
msgstr ""
#: elf32-frv.c:4068
-#, c-format
+#, fuzzy, c-format
msgid "%H: reloc against `%s': %s\n"
-msgstr ""
+msgstr "%s j %s"
#: elf32-frv.c:6496
#, c-format
@@ -2583,9 +2631,9 @@ msgid "%pB: compiled with %s and linked with modules that use non-pic relocation
msgstr ""
#: elf32-frv.c:6550 elf32-iq2000.c:830 elf32-m32c.c:876
-#, c-format
+#, fuzzy, c-format
msgid "%pB: compiled with %s and linked with modules compiled with %s"
-msgstr ""
+msgstr "Dia Versi %s dikompil %s, %s\n"
#: elf32-frv.c:6563
#, c-format
@@ -2608,9 +2656,9 @@ msgid "%pB: relocation %s can not be used when making a shared object; recompile
msgstr ""
#: elf32-hppa.c:2579
-#, c-format
+#, fuzzy, c-format
msgid "%pB: duplicate export stub %s"
-msgstr ""
+msgstr "%s Pb"
#: elf32-hppa.c:3235
#, c-format
@@ -2638,9 +2686,9 @@ msgid "%pB:%s has both normal and TLS relocs"
msgstr ""
#: elf32-hppa.c:4166
-#, c-format
+#, fuzzy, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot handle %s for %s"
-msgstr ""
+msgstr "Caja tidak dapat mengendali lokasi \"%s\"."
#: elf32-hppa.c:4470
msgid ".got section not immediately after .plt section"
@@ -2676,9 +2724,9 @@ msgstr ""
#: elf32-i386.c:2452 elf32-i386.c:3752 elf32-i386.c:3900 elf64-x86-64.c:3107
#: elf64-x86-64.c:4790 elf64-x86-64.c:4958 elfnn-riscv.c:2406
#: elfnn-riscv.c:3318 elfnn-riscv.c:3392
-#, c-format
+#, fuzzy, c-format
msgid "Local IFUNC function `%s' in %pB\n"
-msgstr ""
+msgstr "%s Pb"
#: elf32-i386.c:2630
#, c-format
@@ -2686,16 +2734,19 @@ msgid "%pB: direct GOT relocation %s against `%s' without base register can not
msgstr ""
#: elf32-i386.c:2665 elf64-x86-64.c:3324
+#, fuzzy
msgid "hidden symbol"
-msgstr ""
+msgstr "Tersembunyi"
#: elf32-i386.c:2668 elf64-x86-64.c:3327
+#, fuzzy
msgid "internal symbol"
-msgstr ""
+msgstr "Dalaman"
#: elf32-i386.c:2671 elf64-x86-64.c:3330
+#, fuzzy
msgid "protected symbol"
-msgstr ""
+msgstr "Dilindungi"
#: elf32-i386.c:2674 elf64-x86-64.c:3333
#, fuzzy
@@ -2743,9 +2794,9 @@ msgid "global pointer relative address out of range"
msgstr ""
#: elf32-lm32.c:959
-#, c-format
+#, fuzzy, c-format
msgid "internal error: addend should be zero for %s"
-msgstr ""
+msgstr "Ralat Dalaman, kiraan bukan-sifar"
#: elf32-m32r.c:1461
msgid "SDA relocation when _SDA_BASE_ not defined"
@@ -2762,24 +2813,24 @@ msgid "%pB: instruction set mismatch with previous modules"
msgstr ""
#: elf32-m32r.c:3298 elf32-nds32.c:6899
-#, c-format
+#, fuzzy, c-format
msgid "private flags = %lx"
-msgstr ""
+msgstr "Persendirian"
#: elf32-m32r.c:3303
-#, c-format
+#, fuzzy, c-format
msgid ": m32r instructions"
-msgstr ""
+msgstr "Arahan"
#: elf32-m32r.c:3304
-#, c-format
+#, fuzzy, c-format
msgid ": m32rx instructions"
-msgstr ""
+msgstr "Arahan"
#: elf32-m32r.c:3305
-#, c-format
+#, fuzzy, c-format
msgid ": m32r2 instructions"
-msgstr ""
+msgstr "Arahan"
#: elf32-m68hc1x.c:1134
#, c-format
@@ -2822,54 +2873,54 @@ msgid "%pB: linking files compiled for HCS12 with others compiled for HC12"
msgstr ""
#: elf32-m68hc1x.c:1417 elf32-xgate.c:497
-#, c-format
+#, fuzzy, c-format
msgid "[abi=32-bit int, "
-msgstr ""
+msgstr "32-bit"
#: elf32-m68hc1x.c:1419 elf32-xgate.c:499
-#, c-format
+#, fuzzy, c-format
msgid "[abi=16-bit int, "
-msgstr ""
+msgstr "16-bit"
#: elf32-m68hc1x.c:1422 elf32-xgate.c:502
-#, c-format
+#, fuzzy, c-format
msgid "64-bit double, "
-msgstr ""
+msgstr "64-bit"
#: elf32-m68hc1x.c:1424 elf32-xgate.c:504
-#, c-format
+#, fuzzy, c-format
msgid "32-bit double, "
-msgstr ""
+msgstr "32-bit"
#: elf32-m68hc1x.c:1427
#, c-format
msgid "cpu=HC11]"
-msgstr ""
+msgstr "cpu=HC11]"
#: elf32-m68hc1x.c:1429
#, c-format
msgid "cpu=HCS12]"
-msgstr ""
+msgstr "cpu=HCS12]"
#: elf32-m68hc1x.c:1431
#, c-format
msgid "cpu=HC12]"
-msgstr ""
+msgstr "cpu=HC12]"
#: elf32-m68hc1x.c:1434
-#, c-format
+#, fuzzy, c-format
msgid " [memory=bank-model]"
-msgstr ""
+msgstr "Bank"
#: elf32-m68hc1x.c:1436
-#, c-format
+#, fuzzy, c-format
msgid " [memory=flat]"
-msgstr ""
+msgstr "Rata."
#: elf32-m68hc1x.c:1439
-#, c-format
+#, fuzzy, c-format
msgid " [XGATE RAM offsetting]"
-msgstr ""
+msgstr "Kayu pelantak."
#: elf32-m68k.c:1156 elf32-m68k.c:1164 elf32-ppc.c:3570 elf32-ppc.c:3578
#, c-format
@@ -2877,7 +2928,6 @@ msgid "%pB uses hard float, %pB uses soft float"
msgstr ""
#: elf32-m68k.c:1279 elf32-m68k.c:1280 vms-alpha.c:8089 vms-alpha.c:8105
-#, fuzzy
msgid "unknown"
msgstr "tidak diketahui"
@@ -2893,29 +2943,32 @@ msgstr ""
#. Pacify gcc -Wall.
#: elf32-mep.c:139
-#, c-format
+#, fuzzy, c-format
msgid "mep: no reloc for code %d"
-msgstr ""
+msgstr "%d kod kemunculan"
#: elf32-mep.c:146
-#, c-format
+#, fuzzy, c-format
msgid "MeP: howto %d has type %d"
-msgstr ""
+msgstr "$$ untuk hukum pertengahan pada $%d bagi %s tidak mempunyai jenis yang diisytiharkan"
#: elf32-mep.c:618
-#, c-format
+#, fuzzy, c-format
msgid "%pB and %pB are for different cores"
-msgstr ""
+msgstr "%1 PB"
#: elf32-mep.c:637
-#, c-format
+#, fuzzy, c-format
msgid "%pB and %pB are for different configurations"
-msgstr ""
+msgstr "%1 PB"
#: elf32-mep.c:675
-#, c-format
+#, fuzzy, c-format
msgid "private flags = 0x%lx"
msgstr ""
+"\n"
+"Terdapat direktori nyahpepijat dalam %s pada 0x%lx\n"
+"\n"
#: elf32-metag.c:1856
#, c-format
@@ -2929,13 +2982,14 @@ msgstr ""
#: elf32-microblaze.c:1590 elf32-tilepro.c:3018 elfxx-sparc.c:3442
#: elfxx-tilegx.c:3415
-#, c-format
+#, fuzzy, c-format
msgid "%pB: probably compiled without -fPIC?"
-msgstr ""
+msgstr "Boxes telah dikompil tanpa sokongan RDP"
#: elf32-mips.c:1776 elf64-mips.c:3515 elfn32-mips.c:3334
+#, fuzzy
msgid "literal relocation occurs for an external symbol"
-msgstr ""
+msgstr "rentetan literal %s tidak dikepilkan pada simbol"
#: elf32-mips.c:1827 elf32-score.c:563 elf32-score7.c:465 elf64-mips.c:3558
#: elfn32-mips.c:3376
@@ -2996,9 +3050,9 @@ msgid "error: %pB can use the upper region for data, but %pB assumes data is exc
msgstr ""
#: elf32-nds32.c:3673
-#, c-format
+#, fuzzy, c-format
msgid "error: can't find symbol: %s"
-msgstr ""
+msgstr "Kami tidak menemui simbol \"%s\""
#: elf32-nds32.c:5572
#, c-format
@@ -3051,14 +3105,14 @@ msgid "%pB: warning: incompatible elf-versions %s and %s"
msgstr ""
#: elf32-nds32.c:6905
-#, c-format
+#, fuzzy, c-format
msgid ": n1 instructions"
-msgstr ""
+msgstr "Arahan"
#: elf32-nds32.c:6908
-#, c-format
+#, fuzzy, c-format
msgid ": n1h instructions"
-msgstr ""
+msgstr "Arahan"
#: elf32-nds32.c:9357
#, c-format
@@ -3086,9 +3140,9 @@ msgid "%pB: Cannot handle relocation value size of %d"
msgstr ""
#: elf32-or1k.c:1375
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unknown relocation type %d"
-msgstr ""
+msgstr "Jenis objek tak diketahui %d\n"
#: elf32-or1k.c:1429
#, c-format
@@ -3116,9 +3170,9 @@ msgid "%pB: non-pic relocation against symbol %s"
msgstr ""
#: elf32-or1k.c:1686
-#, c-format
+#, fuzzy, c-format
msgid "%pB: support for local dynamic not implemented"
-msgstr ""
+msgstr "Fail yang mengandungi berkas sokongan akan dimuat turun ke sistem domestik."
#: elf32-or1k.c:1865
#, c-format
@@ -3126,9 +3180,9 @@ msgid "%pB: will not resolve runtime TLS relocation"
msgstr ""
#: elf32-or1k.c:2199
-#, c-format
+#, fuzzy, c-format
msgid "%pB: bad relocation section name `%s'"
-msgstr ""
+msgstr "Nama petimel teruk untuk tapisan: %s"
#: elf32-or1k.c:3312
#, c-format
@@ -3136,19 +3190,19 @@ msgid "%pB: %s flag mismatch with previous modules"
msgstr ""
#: elf32-ppc.c:990 elf64-ppc.c:1753
-#, c-format
+#, fuzzy, c-format
msgid "generic linker can't handle %s"
-msgstr ""
+msgstr "Tidak boleh mengendalikan lokasi \"%s:\"."
#: elf32-ppc.c:1627
-#, c-format
+#, fuzzy, c-format
msgid "corrupt %s section in %pB"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: elf32-ppc.c:1646
-#, c-format
+#, fuzzy, c-format
msgid "unable to read in %s section from %pB"
-msgstr ""
+msgstr "Tidak boleh baca dari: %s"
#: elf32-ppc.c:1688
#, c-format
@@ -3160,12 +3214,14 @@ msgid "failed to allocate space for new APUinfo section"
msgstr ""
#: elf32-ppc.c:1756
+#, fuzzy
msgid "failed to compute new APUinfo section"
-msgstr ""
+msgstr "Anda tidak boleh menambah direktori baru pada seksyen ini."
#: elf32-ppc.c:1759
+#, fuzzy
msgid "failed to install new APUinfo section"
-msgstr ""
+msgstr "Gagal memasang: pengesahihan tidak sah"
#: elf32-ppc.c:2867
#, c-format
@@ -3223,8 +3279,9 @@ msgid "bss-plt forced due to %pB"
msgstr ""
#: elf32-ppc.c:4028
+#, fuzzy
msgid "bss-plt forced by profiling"
-msgstr ""
+msgstr "Paksa Dihidupkan"
#: elf32-ppc.c:4606 elf64-ppc.c:8516
msgid "%H: warning: %s unexpected insn %#x.\n"
@@ -3254,8 +3311,9 @@ msgid "%P: %H: error: %s with unexpected instruction %x\n"
msgstr ""
#: elf32-ppc.c:7501
+#, fuzzy
msgid "%H: fixup branch overflow\n"
-msgstr ""
+msgstr "Rekod melimpah"
#: elf32-ppc.c:7541 elf32-ppc.c:7579
#, c-format
@@ -3268,9 +3326,9 @@ msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n"
msgstr ""
#: elf32-ppc.c:7679
-#, c-format
+#, fuzzy, c-format
msgid "%pB: reloc %#x unsupported"
-msgstr ""
+msgstr "%1 PB"
#: elf32-ppc.c:7962
#, c-format
@@ -3305,9 +3363,9 @@ msgid "%X%P: %H: %s relocation unsupported for bss-plt\n"
msgstr ""
#: elf32-ppc.c:9025
-#, c-format
+#, fuzzy, c-format
msgid "%H: error: %s against `%s' not a multiple of %u\n"
-msgstr ""
+msgstr "Kod ralat %u ketika menyisip satu masukan: %s"
#: elf32-ppc.c:9054
#, c-format
@@ -3315,9 +3373,11 @@ msgid "%H: unresolvable %s relocation against symbol `%s'\n"
msgstr ""
#: elf32-ppc.c:9136
-#, c-format
+#, fuzzy, c-format
msgid "%H: %s reloc against `%s': error %d\n"
msgstr ""
+"\n"
+"%02d h %02d j %02d min pada: %s"
#: elf32-ppc.c:10018
msgid "%X%P: text relocations and GNU indirect functions will result in a segfault at runtime\n"
@@ -3328,9 +3388,9 @@ msgid "%P: warning: text relocations and GNU indirect functions may result in a
msgstr ""
#: elf32-ppc.c:10067
-#, c-format
+#, fuzzy, c-format
msgid "%s not defined in linker created %pA"
-msgstr ""
+msgstr "Port %s/%s tidak dinyatakan"
#: elf32-pru.c:582 elf32-pru.c:1477
#, c-format
@@ -3338,32 +3398,39 @@ msgid "error: %pB: old incompatible object file detected"
msgstr ""
#: elf32-pru.c:931
+#, fuzzy
msgid "relocation out of range"
-msgstr ""
+msgstr "Diluar Julat"
#: elf32-pru.c:941 elf32-tic6x.c:2649
+#, fuzzy
msgid "dangerous relocation"
-msgstr ""
+msgstr "Cuba Sekat _Tapak Sesawang Merbahaya"
#: elf32-rl78.c:551
+#, fuzzy
msgid "RL78 reloc stack overflow/underflow"
-msgstr ""
+msgstr "tindanan melimpah"
#: elf32-rl78.c:555
+#, fuzzy
msgid "RL78 reloc divide by zero"
-msgstr ""
+msgstr "Bahagi [/]"
#: elf32-rl78.c:1069
+#, fuzzy
msgid "warning: RL78_SYM reloc with an unknown symbol"
-msgstr ""
+msgstr "Jenis amaran tidak diketahui"
#: elf32-rl78.c:1115
+#, fuzzy
msgid "%H: %s out of range\n"
-msgstr ""
+msgstr "integer diluar julat: %s"
#: elf32-rl78.c:1122
+#, fuzzy
msgid "%H: relocation type %u is not supported\n"
-msgstr ""
+msgstr "%U pada %h"
#: elf32-rl78.c:1134
msgid "%H: relocation %s returns an unrecognized value %x\n"
@@ -3384,14 +3451,14 @@ msgid "RL78 merge conflict: cannot link 32-bit and 64-bit objects together"
msgstr ""
#: elf32-rl78.c:1250 elf32-rl78.c:1254
-#, c-format
+#, fuzzy, c-format
msgid "- %pB is 64-bit, %pB is not"
-msgstr ""
+msgstr "%1 PB"
#: elf32-rl78.c:1281
-#, c-format
+#, fuzzy, c-format
msgid " [64-bit doubles]"
-msgstr ""
+msgstr "64-bit"
#: elf32-rx.c:618
#, c-format
@@ -3432,14 +3499,14 @@ msgid "there is a conflict merging the ELF header flags from %pB"
msgstr ""
#: elf32-rx.c:3188
-#, c-format
+#, fuzzy, c-format
msgid " the input file's flags: %s"
-msgstr ""
+msgstr "%s: fail input adalah fail output"
#: elf32-rx.c:3190
-#, c-format
+#, fuzzy, c-format
msgid " the output file's flags: %s"
-msgstr ""
+msgstr "%s: fail input adalah fail output"
#: elf32-rx.c:3797
#, c-format
@@ -3461,8 +3528,9 @@ msgid "not enough GOT space for local GOT entries"
msgstr ""
#: elf32-score.c:2737
+#, fuzzy
msgid "address not word aligned"
-msgstr ""
+msgstr "_Biar Dijajar"
#: elf32-score.c:2818 elf32-score7.c:2625
#, c-format
@@ -3485,9 +3553,9 @@ msgid " [pic]"
msgstr ""
#: elf32-score.c:3991 elf32-score7.c:3798
-#, c-format
+#, fuzzy, c-format
msgid " [fix dep]"
-msgstr ""
+msgstr "A-DEP"
#: elf32-score.c:4038 elf32-score7.c:3845
#, c-format
@@ -3688,37 +3756,39 @@ msgid "%pA:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n"
msgstr ""
#: elf32-spu.c:1908
-#, c-format
+#, fuzzy, c-format
msgid "%pB is not allowed to define %s"
-msgstr ""
+msgstr "PB"
#: elf32-spu.c:1916
-#, c-format
+#, fuzzy, c-format
msgid "you are not allowed to define %s in a script"
-msgstr ""
+msgstr "pembolehubah %%define %s ditakrif semula"
#: elf32-spu.c:1950
-#, c-format
+#, fuzzy, c-format
msgid "%s in overlay section"
-msgstr ""
+msgstr "Tiada seksyen sebegitu: %s"
#: elf32-spu.c:1979
+#, fuzzy
msgid "overlay stub relocation overflow"
-msgstr ""
+msgstr "Stab"
#: elf32-spu.c:1988 elf64-ppc.c:15362
+#, fuzzy
msgid "stubs don't match calculated size"
-msgstr ""
+msgstr "Jika pola diatas tidak sepadan:"
#: elf32-spu.c:2571
-#, c-format
+#, fuzzy, c-format
msgid "warning: %s overlaps %s\n"
-msgstr ""
+msgstr "%s: Amaran: Tak dapat %s"
#: elf32-spu.c:2587
-#, c-format
+#, fuzzy, c-format
msgid "warning: %s exceeds section size\n"
-msgstr ""
+msgstr "Bahagian"
#: elf32-spu.c:2619
#, c-format
@@ -3738,17 +3808,17 @@ msgstr ""
#: elf32-spu.c:4023
#, fuzzy
msgid " calls:\n"
-msgstr "Panggilan"
+msgstr "Tiada panggilan"
#: elf32-spu.c:4338
-#, c-format
+#, fuzzy, c-format
msgid "%s duplicated in %s\n"
-msgstr ""
+msgstr "\"%s\" diduplikasi"
#: elf32-spu.c:4342
-#, c-format
+#, fuzzy, c-format
msgid "%s duplicated\n"
-msgstr ""
+msgstr "Satu unsur tunggal (%s) mempunyai pendua."
#: elf32-spu.c:4349
msgid "sorry, no support for duplicate object files in auto-overlay script\n"
@@ -3791,8 +3861,9 @@ msgid "%F%P: can not build overlay stubs: %E\n"
msgstr ""
#: elf32-spu.c:4811
+#, fuzzy
msgid "fatal error while creating .fixup"
-msgstr ""
+msgstr "Ralat ketika mencipta pautan ke %s."
#: elf32-spu.c:5047
#, c-format
@@ -3855,9 +3926,9 @@ msgstr ""
#: elf32-tilepro.c:3624 elfxx-tilegx.c:4017 elfxx-x86.c:2773
#: elfnn-aarch64.c:10343 elfnn-kvx.c:4628 elfnn-loongarch.c:6062
#: elfnn-riscv.c:3615
-#, c-format
+#, fuzzy, c-format
msgid "discarded output section: `%pA'"
-msgstr ""
+msgstr "Bahagian"
#: elf32-v850.c:152
#, c-format
@@ -3885,8 +3956,9 @@ msgid "variable `%s' cannot be in both zero and tiny data regions simultaneously
msgstr ""
#: elf32-v850.c:466
+#, fuzzy
msgid "failed to find previous HI16 reloc"
-msgstr ""
+msgstr "Cari terdahulu"
#: elf32-v850.c:2309
msgid "could not locate special linker symbol __gp"
@@ -3916,9 +3988,9 @@ msgid "error: %pB uses FPU-3.0 but %pB only supports FPU-2.0"
msgstr ""
#: elf32-v850.c:2601
-#, c-format
+#, fuzzy, c-format
msgid " alignment of 8-byte entities: "
-msgstr ""
+msgstr "Salin semula entiti sedia ada"
#: elf32-v850.c:2604
#, c-format
@@ -3937,9 +4009,9 @@ msgstr "tidak ditetapkan"
#: elf32-v850.c:2607 elf32-v850.c:2619 elf32-v850.c:2631 elf32-v850.c:2642
#: elf32-v850.c:2653 elf32-v850.c:2664
-#, c-format
+#, fuzzy, c-format
msgid "unknown: %x"
-msgstr ""
+msgstr "(Kod mekanisma GSSAPI tidak diketahui: %x)"
#: elf32-v850.c:2613
#, c-format
@@ -3957,9 +4029,9 @@ msgid "8-bytes"
msgstr ""
#: elf32-v850.c:2625
-#, c-format
+#, fuzzy, c-format
msgid " FPU support required: "
-msgstr ""
+msgstr "Periksa sama ada alatan sokongan yang diperlukan tersedia"
#: elf32-v850.c:2628
#, c-format
@@ -3977,9 +4049,9 @@ msgid "none"
msgstr "tiada"
#: elf32-v850.c:2637
-#, c-format
+#, fuzzy, c-format
msgid "SIMD use: "
-msgstr ""
+msgstr "_Guna sebagaimana ia"
#: elf32-v850.c:2640 elf32-v850.c:2651 elf32-v850.c:2662
#, c-format
@@ -3992,14 +4064,16 @@ msgid "no"
msgstr ""
#: elf32-v850.c:2648
-#, c-format
+#, fuzzy, c-format
msgid "CACHE use: "
msgstr ""
+"Tiada fail indeks tema dalam \"%s\".\n"
+"Jika anda pasti mahu mencipta satu cache ikon di sini, guna -ignore-theme-index.\n"
#: elf32-v850.c:2659
-#, c-format
+#, fuzzy, c-format
msgid "MMU use: "
-msgstr ""
+msgstr "Benarkan MMU"
#: elf32-v850.c:2826 elf32-v850.c:2882
#, c-format
@@ -4008,49 +4082,49 @@ msgstr ""
#. xgettext:c-format.
#: elf32-v850.c:2900
-#, c-format
+#, fuzzy, c-format
msgid "private flags = %lx: "
-msgstr ""
+msgstr "Persendirian"
#: elf32-v850.c:2905
-#, c-format
+#, fuzzy, c-format
msgid "unknown v850 architecture"
-msgstr ""
+msgstr "S_eni Bina"
#: elf32-v850.c:2907
-#, c-format
+#, fuzzy, c-format
msgid "v850 E3 architecture"
-msgstr ""
+msgstr "S_eni Bina"
#: elf32-v850.c:2909 elf32-v850.c:2916
-#, c-format
+#, fuzzy, c-format
msgid "v850 architecture"
-msgstr ""
+msgstr "S_eni Bina"
#: elf32-v850.c:2917
-#, c-format
+#, fuzzy, c-format
msgid "v850e architecture"
-msgstr ""
+msgstr "S_eni Bina"
#: elf32-v850.c:2918
-#, c-format
+#, fuzzy, c-format
msgid "v850e1 architecture"
-msgstr ""
+msgstr "S_eni Bina"
#: elf32-v850.c:2919
-#, c-format
+#, fuzzy, c-format
msgid "v850e2 architecture"
-msgstr ""
+msgstr "S_eni Bina"
#: elf32-v850.c:2920
-#, c-format
+#, fuzzy, c-format
msgid "v850e2v3 architecture"
-msgstr ""
+msgstr "S_eni Bina"
#: elf32-v850.c:2921
-#, c-format
+#, fuzzy, c-format
msgid "v850e3v5 architecture"
-msgstr ""
+msgstr "S_eni Bina"
#: elf32-v850.c:3595 elf32-v850.c:3834
#, c-format
@@ -4078,14 +4152,14 @@ msgid " [nonpic]"
msgstr ""
#: elf32-vax.c:540
-#, c-format
+#, fuzzy, c-format
msgid " [d-float]"
-msgstr ""
+msgstr "apung"
#: elf32-vax.c:543
-#, c-format
+#, fuzzy, c-format
msgid " [g-float]"
-msgstr ""
+msgstr "apung"
#: elf32-vax.c:629
#, c-format
@@ -4113,9 +4187,9 @@ msgid "%pB: compiled %s -mtune=%s and linked with modules compiled %s -mtune=%s"
msgstr ""
#: elf32-xgate.c:506
-#, c-format
+#, fuzzy, c-format
msgid "cpu=XGATE]"
-msgstr ""
+msgstr "% CPU"
#: elf32-xgate.c:508
#, c-format
@@ -4123,13 +4197,14 @@ msgid "error reading cpu type from elf private data"
msgstr ""
#: elf32-xstormy16.c:457 elf64-ia64-vms.c:2076 elfnn-ia64.c:2345
+#, fuzzy
msgid "non-zero addend in @fptr reloc"
-msgstr ""
+msgstr "Ralat Dalaman, kiraan bukan-sifar"
#: elf32-xtensa.c:996
-#, c-format
+#, fuzzy, c-format
msgid "%pB(%pA): invalid property table"
-msgstr ""
+msgstr "Jadual pemampasan paparan tidak sah"
#: elf32-xtensa.c:2730
#, c-format
@@ -4137,8 +4212,9 @@ msgid "%pB(%pA+%#<PRIx64>): relocation offset out of range (size=%#<PRIx64>)"
msgstr ""
#: elf32-xtensa.c:2813 elf32-xtensa.c:2936
+#, fuzzy
msgid "dynamic relocation in read-only section"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: elf32-xtensa.c:2913
msgid "TLS relocation invalid without dynamic sections"
@@ -4154,8 +4230,9 @@ msgid "%pB: incompatible machine type; output is 0x%x; input is 0x%x"
msgstr ""
#: elf32-xtensa.c:4731 elf32-xtensa.c:4739
+#, fuzzy
msgid "attempt to convert L32R/CALLX to CALL failed"
-msgstr ""
+msgstr "Percubaan dailan telah gagal"
#: elf32-xtensa.c:6567 elf32-xtensa.c:6646 elf32-xtensa.c:8072
#, c-format
@@ -4168,12 +4245,14 @@ msgid "%pB(%pA+%#<PRIx64>): could not decode instruction for XTENSA_ASM_SIMPLIFY
msgstr ""
#: elf32-xtensa.c:9671
+#, fuzzy
msgid "invalid relocation address"
-msgstr ""
+msgstr "Alamat IP tidak sah"
#: elf32-xtensa.c:9762
+#, fuzzy
msgid "overflow after relaxation"
-msgstr ""
+msgstr "nombor baris melimpah"
#: elf32-xtensa.c:10908
#, c-format
@@ -4186,14 +4265,14 @@ msgid "%pB: unsupported bfd mach %#lx"
msgstr ""
#: elf32-z80.c:518
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unsupported mach %#x"
-msgstr ""
+msgstr "%1 PB"
#: elf32-z80.c:546
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unsupported arch %#x"
-msgstr ""
+msgstr "PB"
#: elf64-alpha.c:472
msgid "GPDISP relocation did not find ldah and lda instructions"
@@ -4225,13 +4304,12 @@ msgid "%pB: gp-relative relocation against dynamic symbol %s"
msgstr ""
#: elf64-alpha.c:4438
-#, c-format
+#, fuzzy, c-format
msgid "%pB: change in gp: BRSGP %s"
-msgstr ""
+msgstr "%s Pb"
#: elf64-alpha.c:4463 mach-o.c:625 elfnn-loongarch.c:908 elfnn-riscv.c:724
#: elfnn-riscv.c:929 elfnn-riscv.c:971
-#, fuzzy
msgid "<unknown>"
msgstr "<tidak diketahui>"
@@ -4262,8 +4340,9 @@ msgstr ""
#. Only if it's not an unresolved symbol.
#: elf64-bpf.c:344
+#, fuzzy
msgid "internal error: relocation not supported"
-msgstr ""
+msgstr "Ralat dalaman: Ralat tidak diketahui"
#: elf64-gen.c:71
#, c-format
@@ -4315,14 +4394,14 @@ msgid "%pB: linking non-pic code in a position independent executable"
msgstr ""
#: elf64-ia64-vms.c:3783 elfnn-ia64.c:4223
-#, c-format
+#, fuzzy, c-format
msgid "%pB: @internal branch to dynamic symbol %s"
-msgstr ""
+msgstr "Gagal menemui simbol '%s' dalam pustaka dinamik"
#: elf64-ia64-vms.c:3786 elfnn-ia64.c:4226
-#, c-format
+#, fuzzy, c-format
msgid "%pB: speculation fixup to dynamic symbol %s"
-msgstr ""
+msgstr "Gagal menemui simbol '%s' dalam pustaka dinamik"
#: elf64-ia64-vms.c:3789 elfnn-ia64.c:4229
#, c-format
@@ -4330,8 +4409,9 @@ msgid "%pB: @pcrel relocation against dynamic symbol %s"
msgstr ""
#: elf64-ia64-vms.c:3913 elfnn-ia64.c:4426
+#, fuzzy
msgid "unsupported reloc"
-msgstr ""
+msgstr " (tidak disokong)"
#: elf64-ia64-vms.c:3950 elfnn-ia64.c:4464
#, c-format
@@ -4439,8 +4519,9 @@ msgid "%pB: error: multiple definition of `%s'; start of %s is set in a earlier
msgstr ""
#: elf64-mmix.c:2208
+#, fuzzy
msgid "register section has contents\n"
-msgstr ""
+msgstr "Bahagian"
#: elf64-mmix.c:2398
#, c-format
@@ -4448,9 +4529,9 @@ msgid "internal inconsistency: remaining %lu != max %lu; please report this bug"
msgstr ""
#: elf64-ppc.c:1361
-#, c-format
+#, fuzzy, c-format
msgid "warning: %s should be used rather than %s"
-msgstr ""
+msgstr "Baca jalur %s berbanding %s!"
#: elf64-ppc.c:4302
#, c-format
@@ -4468,8 +4549,9 @@ msgid "%H: %s reloc unsupported in shared libraries and PIEs\n"
msgstr ""
#: elf64-ppc.c:5277
+#, fuzzy
msgid "%H: %s reloc unsupported here\n"
-msgstr ""
+msgstr "%s berada di sini"
#: elf64-ppc.c:5500
#, c-format
@@ -4482,23 +4564,23 @@ msgid "%pB: ABI version %ld is not compatible with ABI version %ld output"
msgstr ""
#: elf64-ppc.c:5535
-#, c-format
+#, fuzzy, c-format
msgid " [abiv%ld]"
-msgstr ""
+msgstr "%ld:%02ld"
#: elf64-ppc.c:6844
msgid "%P: copy reloc against `%pT' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n"
msgstr ""
#: elf64-ppc.c:7111
-#, c-format
+#, fuzzy, c-format
msgid "%pB: undefined symbol on R_PPC64_TOCSAVE relocation"
-msgstr ""
+msgstr "simbol permulaan %s tidak ditakrifkan"
#: elf64-ppc.c:7362
-#, c-format
+#, fuzzy, c-format
msgid "dynreloc miscount for %pB, section %pA"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: elf64-ppc.c:7453
#, c-format
@@ -4535,9 +4617,9 @@ msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n"
msgstr ""
#: elf64-ppc.c:8745 elf64-ppc.c:9461
-#, c-format
+#, fuzzy, c-format
msgid "%s defined on removed toc entry"
-msgstr ""
+msgstr "Sistem mungkin tidak berfungsi dengan baik jika masukan ini diubah suai atau dibuang."
#: elf64-ppc.c:9418
#, c-format
@@ -4550,9 +4632,9 @@ msgid "%H: got/toc optimization is not supported for %s instruction\n"
msgstr ""
#: elf64-ppc.c:10534
-#, c-format
+#, fuzzy, c-format
msgid "warning: discarding dynamic section %s"
-msgstr ""
+msgstr "Bahagian"
#: elf64-ppc.c:11687
msgid "%P: cannot find opd entry toc for `%pT'\n"
@@ -4564,9 +4646,9 @@ msgid "long branch stub `%s' offset overflow"
msgstr ""
#: elf64-ppc.c:11864
-#, c-format
+#, fuzzy, c-format
msgid "can't find branch stub `%s'"
-msgstr ""
+msgstr "Gagal mencari posisi semasa dalam fail '%s'"
#: elf64-ppc.c:11925 elf64-ppc.c:12177 elf64-ppc.c:14742
#, c-format
@@ -4574,9 +4656,9 @@ msgid "%P: linkage table error against `%pT'\n"
msgstr ""
#: elf64-ppc.c:12376
-#, c-format
+#, fuzzy, c-format
msgid "can't build branch stub `%s'"
-msgstr ""
+msgstr "Gabung %s ke dalam cabang %s"
#: elf64-ppc.c:13407
#, c-format
@@ -4593,10 +4675,10 @@ msgid "%s offset too large for .eh_frame sdata4 encoding"
msgstr ""
#: elf64-ppc.c:15370
-#, c-format
+#, fuzzy, c-format
msgid "linker stubs in %u group"
msgid_plural "linker stubs in %u groups"
-msgstr[0] ""
+msgstr[0] "Pemaut"
#: elf64-ppc.c:15377
#, c-format
@@ -4609,9 +4691,9 @@ msgid ""
msgstr ""
#: elf64-ppc.c:15759
-#, c-format
+#, fuzzy, c-format
msgid "%H: %s used with TLS symbol `%pT'\n"
-msgstr ""
+msgstr "simbol %s digunakan lebih dari sekali sebagai rentetan perkataan"
#: elf64-ppc.c:15761
#, c-format
@@ -4629,9 +4711,9 @@ msgid "%H: call to `%pT' lacks nop, can't restore toc; (toc save/adjust stub)\n"
msgstr ""
#: elf64-ppc.c:17202
-#, c-format
+#, fuzzy, c-format
msgid "%H: %s against %pT is not supported\n"
-msgstr ""
+msgstr "%s pt"
#: elf64-ppc.c:17478
#, c-format
@@ -4644,24 +4726,26 @@ msgid "%X%P: %pB: %s against %pT is not supported by glibc as a dynamic relocati
msgstr ""
#: elf64-ppc.c:17620
-#, c-format
+#, fuzzy, c-format
msgid "%P: %pB: %s is not supported for `%pT'\n"
-msgstr ""
+msgstr "%s Pb"
#: elf64-ppc.c:17889
-#, c-format
+#, fuzzy, c-format
msgid "%H: error: %s not a multiple of %u\n"
-msgstr ""
+msgstr "Kod ralat %u ketika mengesahihkan: %s"
#: elf64-ppc.c:17912
-#, c-format
+#, fuzzy, c-format
msgid "%H: unresolvable %s against `%pT'\n"
-msgstr ""
+msgstr "%s pt"
#: elf64-ppc.c:18057
-#, c-format
+#, fuzzy, c-format
msgid "%H: %s against `%pT': error %d\n"
msgstr ""
+"\n"
+"%02d h %02d j %02d min pada: %s"
#: elf64-s390.c:2490
#, c-format
@@ -4704,16 +4788,19 @@ msgid "%pB: linking UltraSPARC specific with HAL specific code"
msgstr ""
#: elf64-x86-64.c:1660
+#, fuzzy
msgid "hidden symbol "
-msgstr ""
+msgstr "Tersembunyi"
#: elf64-x86-64.c:1663
+#, fuzzy
msgid "internal symbol "
-msgstr ""
+msgstr "Dalaman"
#: elf64-x86-64.c:1666 elf64-x86-64.c:1670
+#, fuzzy
msgid "protected symbol "
-msgstr ""
+msgstr "Dilindungi"
#: elf64-x86-64.c:1672
#, fuzzy
@@ -4726,20 +4813,23 @@ msgid "undefined "
msgstr "Tidak ditakrif"
#: elf64-x86-64.c:1688 elfnn-loongarch.c:892
+#, fuzzy
msgid "a shared object"
-msgstr ""
+msgstr "objek memori terkongsi"
#: elf64-x86-64.c:1690
msgid "; recompile with -fPIC"
msgstr ""
#: elf64-x86-64.c:1695 elfnn-loongarch.c:898
+#, fuzzy
msgid "a PIE object"
-msgstr ""
+msgstr "Pai"
#: elf64-x86-64.c:1697 elfnn-loongarch.c:900
+#, fuzzy
msgid "a PDE object"
-msgstr ""
+msgstr "Tiada objek sebegitu"
#: elf64-x86-64.c:1699
msgid "; recompile with -fPIE"
@@ -4865,9 +4955,9 @@ msgid "%pB: unexpected redefinition of indirect versioned symbol `%s'"
msgstr ""
#: elflink.c:2681
-#, c-format
+#, fuzzy, c-format
msgid "%pB: version node not found for symbol %s"
-msgstr ""
+msgstr "simbol tidak dijumpai di dalam pengeluaran: %.*s"
#: elflink.c:2780
#, c-format
@@ -4917,9 +5007,9 @@ msgid "%pB: %s local symbol at index %lu (>= sh_info of %lu)"
msgstr ""
#: elflink.c:5137
-#, c-format
+#, fuzzy, c-format
msgid "%pB: not enough version information"
-msgstr ""
+msgstr "Maklumat versi"
#: elflink.c:5175
#, c-format
@@ -4927,9 +5017,9 @@ msgid "%pB: %s: invalid version %u (max %d)"
msgstr ""
#: elflink.c:5212
-#, c-format
+#, fuzzy, c-format
msgid "%pB: %s: invalid needed version %d"
-msgstr ""
+msgstr "keperluan versi tidak sah: %s"
#: elflink.c:5498
#, c-format
@@ -4945,24 +5035,24 @@ msgid "warning: NOTE: size discrepancies can cause real problems. Investigation
msgstr ""
#: elflink.c:5670
-#, c-format
+#, fuzzy, c-format
msgid "%pB: undefined reference to symbol '%s'"
-msgstr ""
+msgstr "simbol permulaan %s tidak ditakrifkan"
#: elflink.c:6759
-#, c-format
+#, fuzzy, c-format
msgid "%pB: stack size specified and %s set"
-msgstr ""
+msgstr "Fail %s tidak wujud dan tiada saiz dinyatakan.\n"
#: elflink.c:6763
-#, c-format
+#, fuzzy, c-format
msgid "%pB: %s not absolute"
-msgstr ""
+msgstr "PB"
#: elflink.c:6975
-#, c-format
+#, fuzzy, c-format
msgid "%s: undefined version: %s"
-msgstr ""
+msgstr "%s: pembolehubah %s %%define tidak ditakrifkan"
#: elflink.c:7364
msgid "error: creating an executable stack because of -z execstack command line option"
@@ -5002,18 +5092,18 @@ msgid "%pB: .preinit_array section is not allowed in DSO"
msgstr ""
#: elflink.c:9218
-#, c-format
+#, fuzzy, c-format
msgid "undefined %s reference in complex symbol: %s"
-msgstr ""
+msgstr "simbol permulaan %s tidak ditakrifkan"
#: elflink.c:9381 elflink.c:9389
msgid "division by zero"
msgstr "dibahagi dengan sifar"
#: elflink.c:9403
-#, c-format
+#, fuzzy, c-format
msgid "unknown operator '%c' in complex symbol"
-msgstr ""
+msgstr "Pilihan tidak diketahui '-%c'\n"
#. PR 21524: Let the user know if a symbol was removed by garbage collection.
#: elflink.c:9739
@@ -5039,13 +5129,14 @@ msgid "%pB: unable to sort relocs - they are of an unknown size"
msgstr ""
#: elflink.c:10136
+#, fuzzy
msgid "not enough memory to sort relocations"
-msgstr ""
+msgstr "GIF: memori tidak mencukupi."
#: elflink.c:10470
-#, c-format
+#, fuzzy, c-format
msgid "%pB: too many sections: %d (>= %d)"
-msgstr ""
+msgstr "Terlalu banyak titik henti. Maksimum ialah %d."
#: elflink.c:10746
#, c-format
@@ -5068,19 +5159,19 @@ msgid "%pB: could not find output section %pA for input section %pA"
msgstr ""
#: elflink.c:11003
-#, c-format
+#, fuzzy, c-format
msgid "%pB: protected symbol `%s' isn't defined"
-msgstr ""
+msgstr "simbol %s digunakan, tetapi tidak ditakrifkan sebagai token atau mempunyai hukum"
#: elflink.c:11006
-#, c-format
+#, fuzzy, c-format
msgid "%pB: internal symbol `%s' isn't defined"
-msgstr ""
+msgstr "simbol %s digunakan, tetapi tidak ditakrifkan sebagai token atau mempunyai hukum"
#: elflink.c:11009
-#, c-format
+#, fuzzy, c-format
msgid "%pB: hidden symbol `%s' isn't defined"
-msgstr ""
+msgstr "simbol %s digunakan, tetapi tidak ditakrifkan sebagai token atau mempunyai hukum"
#: elflink.c:11041
#, c-format
@@ -5098,28 +5189,28 @@ msgid "error: %pB: size of section %pA is not multiple of address size"
msgstr ""
#: elflink.c:12473
-#, c-format
+#, fuzzy, c-format
msgid "%pB: no symbol found for import library"
-msgstr ""
+msgstr "Pustaka \"%1\" tidak dijumpai"
#: elflink.c:13078
msgid "%F%P: %pB: failed to finish relative relocations\n"
msgstr ""
#: elflink.c:13155
-#, c-format
+#, fuzzy, c-format
msgid "%pB: file class %s incompatible with %s"
-msgstr ""
+msgstr "%s: tidak sepadan dengan fail gmon pertama\n"
#: elflink.c:13377
-#, c-format
+#, fuzzy, c-format
msgid "%pB: failed to generate import library"
-msgstr ""
+msgstr "Pustaka yang digunakan untuk menjana lakaran kenit"
#: elflink.c:13538
-#, c-format
+#, fuzzy, c-format
msgid "warning: %s section has zero size"
-msgstr ""
+msgstr "Imej GIF yang terhasil bersaiz sifar"
#: elflink.c:13586
#, c-format
@@ -5161,9 +5252,9 @@ msgid "%pB: section '%pA': corrupt VTENTRY entry"
msgstr ""
#: elflink.c:14922
-#, c-format
+#, fuzzy, c-format
msgid "unrecognized INPUT_SECTION_FLAG %s\n"
-msgstr ""
+msgstr "%s: pilihan '--%s' tidak dikenali\n"
#: elflink.c:15703
#, c-format
@@ -5245,9 +5336,9 @@ msgid "%X%pB: error: GCS is required by -z gcs, but this input object file lacks
msgstr ""
#: elfxx-loongarch.c:1911
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unsupported relocation type %s"
-msgstr ""
+msgstr "%s Pb"
#: elfxx-loongarch.c:1939
#, c-format
@@ -5260,13 +5351,14 @@ msgid "%pB: relocation %s right shift %d error 0x%lx"
msgstr ""
#: elfxx-loongarch.c:2032
-#, c-format
+#, fuzzy, c-format
msgid "%pB: relocation %s overflow 0x%lx"
-msgstr ""
+msgstr "[find_call] %s: 0x%lx ke 0x%lx\n"
#: elfxx-mips.c:1534
+#, fuzzy
msgid "static procedure (no name)"
-msgstr ""
+msgstr "nama prosedur tiada"
#: elfxx-mips.c:5849
msgid "MIPS16 and microMIPS functions cannot call each other"
@@ -5299,9 +5391,12 @@ msgid "%pB: warning: bad `%s' option size %u smaller than its header"
msgstr ""
#: elfxx-mips.c:7635
-#, c-format
+#, fuzzy, c-format
msgid "%pB: warning: truncated `%s' option"
msgstr ""
+"Amaran mengenai %(cleaner)s - %(option)s:\n"
+"\n"
+"%(warning)s"
#: elfxx-mips.c:8453 elfxx-mips.c:8579
#, c-format
@@ -5334,14 +5429,14 @@ msgid "IFUNC symbol %s in dynamic symbol table - IFUNCS are not supported"
msgstr ""
#: elfxx-mips.c:9383
-#, c-format
+#, fuzzy, c-format
msgid "non-dynamic symbol %s in dynamic symbol table"
-msgstr ""
+msgstr "Gagal menemui simbol '%s' dalam pustaka dinamik"
#: elfxx-mips.c:9603
-#, c-format
+#, fuzzy, c-format
msgid "non-dynamic relocations refer to dynamic symbol %s"
-msgstr ""
+msgstr "Gagal menemui simbol '%s' dalam pustaka dinamik"
#: elfxx-mips.c:10523
#, c-format
@@ -5397,14 +5492,14 @@ msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n"
msgstr ""
#: elfxx-mips.c:14729
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unknown architecture %s"
-msgstr ""
+msgstr "%s: -c tidak disokong pada rekabentuk %s\n"
#: elfxx-mips.c:15257
-#, c-format
+#, fuzzy, c-format
msgid "%pB: illegal section name `%pA'"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: elfxx-mips.c:15534
#, c-format
@@ -5467,14 +5562,14 @@ msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses unknown MSA A
msgstr ""
#: elfxx-mips.c:15894
-#, c-format
+#, fuzzy, c-format
msgid "%pB: endianness incompatible with that of the selected emulation"
-msgstr ""
+msgstr "Kekunci DSA yang diberikan tidak serasi dengan protokol TLS yang dipilih."
#: elfxx-mips.c:15908
-#, c-format
+#, fuzzy, c-format
msgid "%pB: ABI is incompatible with that of the selected emulation"
-msgstr ""
+msgstr "Kekunci DSA yang diberikan tidak serasi dengan protokol TLS yang dipilih."
#: elfxx-mips.c:15961
#, c-format
@@ -5506,34 +5601,32 @@ msgid "-mips32r2 -mfp64 (12 callee-saved)"
msgstr ""
#: elfxx-mips.c:16234 elfxx-mips.c:16245
-#, fuzzy
msgid "None"
msgstr "Tiada"
#: elfxx-mips.c:16236 elfxx-mips.c:16305
-#, fuzzy
msgid "Unknown"
msgstr "Tidak Diketahui"
#: elfxx-mips.c:16316
-#, c-format
+#, fuzzy, c-format
msgid "Hard or soft float\n"
-msgstr ""
+msgstr "apung"
#: elfxx-mips.c:16319
-#, c-format
+#, fuzzy, c-format
msgid "Hard float (double precision)\n"
-msgstr ""
+msgstr "Kepersisan"
#: elfxx-mips.c:16322
-#, c-format
+#, fuzzy, c-format
msgid "Hard float (single precision)\n"
-msgstr ""
+msgstr "Volum audio jitu tunggal"
#: elfxx-mips.c:16325
-#, c-format
+#, fuzzy, c-format
msgid "Soft float\n"
-msgstr ""
+msgstr "Soft"
#: elfxx-mips.c:16328
#, c-format
@@ -5576,9 +5669,9 @@ msgid " [abi=EABI64]"
msgstr ""
#: elfxx-mips.c:16377
-#, c-format
+#, fuzzy, c-format
msgid " [abi unknown]"
-msgstr ""
+msgstr "Tidak diketahui "
#: elfxx-mips.c:16379
#, c-format
@@ -5588,17 +5681,17 @@ msgstr ""
#: elfxx-mips.c:16381
#, c-format
msgid " [abi=64]"
-msgstr ""
+msgstr " [abi=64]"
#: elfxx-mips.c:16383
-#, c-format
+#, fuzzy, c-format
msgid " [no abi set]"
-msgstr ""
+msgstr "tidak ditetapkan"
#: elfxx-mips.c:16408
-#, c-format
+#, fuzzy, c-format
msgid " [unknown ISA]"
-msgstr ""
+msgstr "Tidak diketahui "
#: elfxx-mips.c:16428
#, c-format
@@ -5631,9 +5724,9 @@ msgid "%s: invalid prefixed ISA extension `%s' ends with <number>p"
msgstr ""
#: elfxx-riscv.c:2023
-#, c-format
+#, fuzzy, c-format
msgid "%s: unknown prefixed ISA extension `%s'"
-msgstr ""
+msgstr "%s\t\tSambungan tidak diketahui %s (%s):\n"
#: elfxx-riscv.c:2047
#, c-format
@@ -5641,31 +5734,32 @@ msgid "%s: prefixed ISA extension must separate with _"
msgstr ""
#: elfxx-riscv.c:2087
-#, c-format
+#, fuzzy, c-format
msgid "rv%de does not support the `h' extension"
-msgstr ""
+msgstr "Sambungan tidak menyokong versi shell"
#: elfxx-riscv.c:2095
-#, c-format
+#, fuzzy, c-format
msgid "rv%d does not support the `q' extension"
-msgstr ""
+msgstr "Sambungan tidak menyokong versi shell"
#: elfxx-riscv.c:2102
msgid "zcmp' is incompatible with `d/zcd' extension"
msgstr ""
#: elfxx-riscv.c:2109
-#, c-format
+#, fuzzy, c-format
msgid "rv%d does not support the `zcf' extension"
-msgstr ""
+msgstr "Sambungan tidak menyokong versi shell"
#: elfxx-riscv.c:2116
msgid "`zfinx' is conflict with the `f/d/q/zfh/zfhmin' extension"
msgstr ""
#: elfxx-riscv.c:2123
+#, fuzzy
msgid "`xtheadvector' is conflict with the `v' extension"
-msgstr ""
+msgstr "V"
#: elfxx-riscv.c:2144
msgid "zvl*b extensions need to enable either `v' or `zve' extension"
@@ -5692,62 +5786,73 @@ msgid "%sinvalid ISA extension ends with <number>p in %s `%s'"
msgstr ""
#: elfxx-riscv.c:2494
-#, c-format
+#, fuzzy, c-format
msgid "%sunknown ISA extension `%s' in %s `%s'"
-msgstr ""
+msgstr "%s\t\tSambungan tidak diketahui %s (%s):\n"
#: elfxx-riscv.c:2506
-#, c-format
+#, fuzzy, c-format
msgid "%scannot + or - base extension `%s' in %s `%s'"
-msgstr ""
+msgstr "%s\t\tSambungan tidak diketahui %s (%s):\n"
#: elfxx-riscv.c:2817 elfxx-riscv.c:3112
+#, fuzzy
msgid "internal: unreachable INSN_CLASS_*"
-msgstr ""
+msgstr "KELAS"
#: elfxx-riscv.c:2851
msgid "zicfiss' and `zcmop"
msgstr ""
#: elfxx-riscv.c:2865
+#, fuzzy
msgid "zihintntl' and `c', or `zihintntl' and `zca"
-msgstr ""
+msgstr "_C/C++"
#: elfxx-riscv.c:2870 elfxx-riscv.c:2896
+#, fuzzy
msgid "c' or `zca"
-msgstr ""
+msgstr "_C/C++"
#: elfxx-riscv.c:2878
+#, fuzzy
msgid "m' or `zmmul"
-msgstr ""
+msgstr "%a dari %m"
#: elfxx-riscv.c:2902
+#, fuzzy
msgid "f' and `c', or `f' and `zcf"
-msgstr ""
+msgstr "F"
#: elfxx-riscv.c:2907
+#, fuzzy
msgid "c' or `zcf"
-msgstr ""
+msgstr "_C/C++"
#: elfxx-riscv.c:2913
+#, fuzzy
msgid "d' and `c', or `d' and `zcd"
-msgstr ""
+msgstr "Volum %d%c (disenyapkan)"
#: elfxx-riscv.c:2918
+#, fuzzy
msgid "c' or `zcd"
-msgstr ""
+msgstr "_C/C++"
#: elfxx-riscv.c:2920
+#, fuzzy
msgid "f' or `zfinx"
-msgstr ""
+msgstr "%.f%%"
#: elfxx-riscv.c:2922
+#, fuzzy
msgid "d' or `zdinx"
-msgstr ""
+msgstr "%d × %d"
#: elfxx-riscv.c:2924
+#, fuzzy
msgid "q' or `zqinx"
-msgstr ""
+msgstr "\t\tQ: "
#: elfxx-riscv.c:2926
msgid "zfh' or `zhinx"
@@ -5758,20 +5863,24 @@ msgid "zfhmin' or `zhinxmin"
msgstr ""
#: elfxx-riscv.c:2941
+#, fuzzy
msgid "zfhmin' and `d', or `zhinxmin' and `zdinx"
-msgstr ""
+msgstr "%d × %d"
#: elfxx-riscv.c:2952
+#, fuzzy
msgid "zfhmin' and `q', or `zhinxmin' and `zqinx"
-msgstr ""
+msgstr " q, Q, Esc Keluar"
#: elfxx-riscv.c:2960
+#, fuzzy
msgid "d' and `zfa"
-msgstr ""
+msgstr "%d × %d"
#: elfxx-riscv.c:2968
+#, fuzzy
msgid "q' and `zfa"
-msgstr ""
+msgstr "\t\tQ: "
#: elfxx-riscv.c:2976
msgid "zfh' and `zfa"
@@ -5798,12 +5907,14 @@ msgid "zknd' or `zkne"
msgstr ""
#: elfxx-riscv.c:3023
+#, fuzzy
msgid "v' or `zve64x' or `zve32x"
-msgstr ""
+msgstr "Ctrl+V"
#: elfxx-riscv.c:3025
+#, fuzzy
msgid "v' or `zve64d' or `zve64f' or `zve32f"
-msgstr ""
+msgstr "Ctrl+V"
#: elfxx-riscv.c:3027
msgid "zvbb"
@@ -5846,15 +5957,15 @@ msgid "zcb' and `zbb"
msgstr ""
#: elfxx-riscv.c:3053
+#, fuzzy
msgid "zcb' and `zmmul', or `zcb' and `m"
-msgstr ""
+msgstr "Mod:"
#: elfxx-riscv.c:3061
msgid "smctr' or `ssctr"
msgstr ""
#: elfxx-riscv.c:3065
-#, fuzzy
msgid "h"
msgstr "h"
@@ -5864,9 +5975,9 @@ msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
msgstr ""
#: elfxx-tilegx.c:4126
-#, c-format
+#, fuzzy, c-format
msgid "%pB: cannot link together %s and %s objects"
-msgstr ""
+msgstr "%s: Tak dapat memaut keras ke %s"
#: elfxx-x86.c:534 elfxx-x86.c:3597
#, c-format
@@ -5956,47 +6067,54 @@ msgid "error: %pB: <corrupt x86 property (0x%x) size: 0x%x>"
msgstr ""
#: elfxx-x86.c:4189
-#, c-format
+#, fuzzy, c-format
msgid "%pB: x86 ISA needed: "
-msgstr ""
+msgstr "Sistem x86 32-bit"
#: elfxx-x86.c:4191
-#, c-format
+#, fuzzy, c-format
msgid "%pB: x86 ISA used: "
-msgstr ""
+msgstr "Sistem x86 32-bit"
#: elfxx-x86.c:4213
-#, c-format
+#, fuzzy, c-format
msgid "<unknown: %x>"
-msgstr ""
+msgstr "(Kod mekanisma GSSAPI tidak diketahui: %x)"
#: elfxx-x86.c:4368
+#, fuzzy
msgid "%P: %pB: warning: missing %s\n"
-msgstr ""
+msgstr "%s Pb"
#: elfxx-x86.c:4369
+#, fuzzy
msgid "%X%P: %pB: error: missing %s\n"
-msgstr ""
+msgstr "Ralat dalam alamat \"%s\"— atribut hos hilang atau cacat"
#: elfxx-x86.c:4475
+#, fuzzy
msgid "IBT and SHSTK properties"
-msgstr ""
+msgstr "&Sifat…"
#: elfxx-x86.c:4477
+#, fuzzy
msgid "IBT property"
-msgstr ""
+msgstr "Si_fat:"
#: elfxx-x86.c:4479
+#, fuzzy
msgid "SHSTK property"
-msgstr ""
+msgstr "Si_fat:"
#: elfxx-x86.c:4484
+#, fuzzy
msgid "LAM_U48 property"
-msgstr ""
+msgstr "Si_fat:"
#: elfxx-x86.c:4489
+#, fuzzy
msgid "LAM_U57 property"
-msgstr ""
+msgstr "Si_fat:"
#: elfxx-x86.c:4667
msgid "%F%P: failed to create VxWorks dynamic sections\n"
@@ -6082,14 +6200,14 @@ msgid "%pB:%u: unrecognized ihex type %u in Intel Hex file"
msgstr ""
#: ihex.c:580
-#, c-format
+#, fuzzy, c-format
msgid "%pB: internal error in ihex_read_section"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: ihex.c:613
-#, c-format
+#, fuzzy, c-format
msgid "%pB: bad section length in ihex_read_section"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: ihex.c:784
#, c-format
@@ -6126,9 +6244,9 @@ msgid "attempt to do relocatable link with %s input and %s output"
msgstr ""
#: linker.c:2896
-#, c-format
+#, fuzzy, c-format
msgid "%pB: ignoring duplicate section `%pA'\n"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: linker.c:2906 linker.c:2916
#, c-format
@@ -6136,9 +6254,9 @@ msgid "%pB: duplicate section `%pA' has different size\n"
msgstr ""
#: linker.c:2930 linker.c:2938
-#, c-format
+#, fuzzy, c-format
msgid "%pB: could not read contents of section `%pA'\n"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: linker.c:2947
#, c-format
@@ -6190,9 +6308,9 @@ msgid "malformed mach-o ARM reloc: unknown reloc type: %d"
msgstr ""
#: mach-o.c:640
-#, c-format
+#, fuzzy, c-format
msgid "<unknown mask flags>"
-msgstr ""
+msgstr "Bendera"
#: mach-o.c:695
#, fuzzy
@@ -6200,49 +6318,61 @@ msgid " (<unknown>)"
msgstr "Tidak diketahui "
#: mach-o.c:707
-#, c-format
+#, fuzzy, c-format
msgid " MACH-O header:\n"
-msgstr ""
+msgstr "Output:"
#: mach-o.c:708
-#, c-format
+#, fuzzy, c-format
msgid " magic: %#lx\n"
-msgstr ""
+msgstr "Ajaib"
#: mach-o.c:709
-#, c-format
+#, fuzzy, c-format
msgid " cputype: %#lx (%s)\n"
msgstr ""
+"\n"
+"Terdapat direktori nyahpepijat dalam %s pada 0x%lx\n"
+"\n"
#: mach-o.c:711
-#, c-format
+#, fuzzy, c-format
msgid " cpusubtype: %#lx%s\n"
msgstr ""
+"\n"
+"Terdapat direktori nyahpepijat dalam %s pada 0x%lx\n"
+"\n"
#: mach-o.c:713
-#, c-format
+#, fuzzy, c-format
msgid " filetype: %#lx\n"
-msgstr ""
+msgstr "Tiada jenis fail"
#: mach-o.c:714
-#, c-format
+#, fuzzy, c-format
msgid " ncmds: %#lx\n"
msgstr ""
+"\n"
+"Terdapat direktori nyahpepijat dalam %s pada 0x%lx\n"
+"\n"
#: mach-o.c:715
-#, c-format
+#, fuzzy, c-format
msgid " sizeocmds: %#lx\n"
msgstr ""
+"\n"
+"Terdapat direktori nyahpepijat dalam %s pada 0x%lx\n"
+"\n"
#: mach-o.c:716
-#, c-format
+#, fuzzy, c-format
msgid " flags: %#lx\n"
-msgstr ""
+msgstr "Bendera"
#: mach-o.c:717
-#, c-format
+#, fuzzy, c-format
msgid " version: %x\n"
-msgstr ""
+msgstr "Versi"
#. Urg - what has happened ?
#: mach-o.c:752
@@ -6268,9 +6398,9 @@ msgid "mach-o: there are too many sections (%u) maximum is 255,\n"
msgstr ""
#: mach-o.c:2695
-#, c-format
+#, fuzzy, c-format
msgid "unable to allocate data for load command %#x"
-msgstr ""
+msgstr "Tidak boleh muatkan data imej"
#: mach-o.c:2800
#, c-format
@@ -6318,9 +6448,9 @@ msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field
msgstr ""
#: mach-o.c:5066
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unknown load command %#x"
-msgstr ""
+msgstr "Arahan tak diketahui '%1'"
#: mach-o.c:5264
#, c-format
@@ -6485,25 +6615,25 @@ msgstr ""
#: pei-x86_64.c:174 pei-x86_64.c:228 pei-x86_64.c:238 pei-x86_64.c:263
#: pei-x86_64.c:275 pei-x86_64.c:289 pei-x86_64.c:307 pei-x86_64.c:319
#: pei-x86_64.c:331
-#, c-format
+#, fuzzy, c-format
msgid "warning: corrupt unwind data\n"
-msgstr ""
+msgstr "Data piksel imej rosak"
#. PR 17512: file: 2245-7442-0.004.
#: pei-x86_64.c:352
-#, c-format
+#, fuzzy, c-format
msgid "Unknown: %x"
-msgstr ""
+msgstr "(Kod mekanisma GSSAPI tidak diketahui: %x)"
#: pei-x86_64.c:403 pei-x86_64.c:413 pei-x86_64.c:422
-#, c-format
+#, fuzzy, c-format
msgid "warning: xdata section corrupt\n"
-msgstr ""
+msgstr "AMARAN"
#: pei-x86_64.c:477
-#, c-format
+#, fuzzy, c-format
msgid "Too many unwind codes (%ld)\n"
-msgstr ""
+msgstr "Terlalu banyak rujukan dalam jadual"
#: pei-x86_64.c:563
#, c-format
@@ -6511,9 +6641,11 @@ msgid "Warning: %s section size (%ld) is not a multiple of %d\n"
msgstr ""
#: pei-x86_64.c:570
-#, c-format
+#, fuzzy, c-format
msgid "Warning: %s section size is zero\n"
msgstr ""
+"Terima Sifar\n"
+"Saiz"
#: pei-x86_64.c:585
#, c-format
@@ -6533,16 +6665,16 @@ msgid "vma:\t\t\tBeginAddress\t EndAddress\t UnwindData\n"
msgstr ""
#: pei-x86_64.c:722
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"Dump of %s\n"
-msgstr ""
+msgstr "Longgok Ingatan..."
#: peicode.h:823
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unrecognized import type; %x"
-msgstr ""
+msgstr "Tidak boleh menyalin jenis widget yang tidak dikenali."
#: peicode.h:840
#, c-format
@@ -6580,19 +6712,19 @@ msgid "%pB: error: debug data ends beyond end of debug directory"
msgstr ""
#: peicode.h:1598
-#, c-format
+#, fuzzy, c-format
msgid "%pB: adjusting invalid SectionAlignment"
-msgstr ""
+msgstr "Pelarasan"
#: peicode.h:1608
-#, c-format
+#, fuzzy, c-format
msgid "%pB: adjusting invalid FileAlignment"
-msgstr ""
+msgstr "Pelarasan"
#: peicode.h:1616
-#, c-format
+#, fuzzy, c-format
msgid "%pB: invalid NumberOfRvaAndSizes"
-msgstr ""
+msgstr "%1 PB"
#: plugin.c:197
#, c-format
@@ -6624,31 +6756,31 @@ msgid "plugin framework: out of file descriptors. Try using fewer objects/archiv
msgstr ""
#: ppcboot.c:392
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"ppcboot header:\n"
-msgstr ""
+msgstr "_Pengepala"
#: ppcboot.c:393
-#, c-format
+#, fuzzy, c-format
msgid "Entry offset = 0x%.8lx (%ld)\n"
-msgstr ""
+msgstr "offset fail zip kepada masukan rosak"
#: ppcboot.c:395
-#, c-format
+#, fuzzy, c-format
msgid "Length = 0x%.8lx (%ld)\n"
-msgstr ""
+msgstr "Memadam fail %ld drpd %ld"
#: ppcboot.c:399
-#, c-format
+#, fuzzy, c-format
msgid "Flag field = 0x%.2x\n"
-msgstr ""
+msgstr "2x"
#: ppcboot.c:405
-#, c-format
+#, fuzzy, c-format
msgid "Partition name = \"%s\"\n"
-msgstr ""
+msgstr "Ralat menetapkan nama sekatan"
#: ppcboot.c:425
#, c-format
@@ -6673,8 +6805,9 @@ msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
msgstr ""
#: reloc.c:8417
+#, fuzzy
msgid "INPUT_SECTION_FLAGS are not supported"
-msgstr ""
+msgstr "Bendera terima tidak disokong"
#: reloc.c:8683
#, c-format
@@ -6683,14 +6816,14 @@ msgstr ""
#. PR 21803: Suggest the most likely cause of this error.
#: reloc.c:8687
-#, c-format
+#, fuzzy, c-format
msgid "is this version of the linker - %s - out of date ?"
-msgstr ""
+msgstr "Pralihat sudah ketinggalan zaman"
#: rs6000-core.c:471
-#, c-format
+#, fuzzy, c-format
msgid "%pB: warning core file truncated"
-msgstr ""
+msgstr "Abai dan tinggalkan fail core"
#: som.c:3002
#, c-format
@@ -6709,15 +6842,16 @@ msgid "%pB[%pA]: no output section for space %pA"
msgstr ""
#: som.c:5449
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"Exec Auxiliary Header\n"
-msgstr ""
+msgstr "Jalankan"
#: som.c:5758
+#, fuzzy
msgid "som_sizeof_headers unimplemented"
-msgstr ""
+msgstr "Tak diimplementasi"
#: srec.c:260
#, c-format
@@ -6725,14 +6859,14 @@ msgid "%pB:%d: unexpected character `%s' in S-record file"
msgstr ""
#: srec.c:488
-#, c-format
+#, fuzzy, c-format
msgid "%pB:%d: byte count %d too small"
-msgstr ""
+msgstr "Saiz atom QTIF terlalu besar (%d bait)"
#: srec.c:580 srec.c:614
-#, c-format
+#, fuzzy, c-format
msgid "%pB:%d: bad checksum in S-record file"
-msgstr ""
+msgstr "%s: %s: tag buruk %d dijumpai (fail rosak?)\n"
#: stabs.c:308
#, c-format
@@ -6740,12 +6874,14 @@ msgid "%pB(%pA+%#lx): stabs entry has invalid string index"
msgstr ""
#: syms.c:1120
+#, fuzzy
msgid "unsupported .stab relocation"
-msgstr ""
+msgstr " (tidak disokong)"
#: vms-alpha.c:479
+#, fuzzy
msgid "corrupt EIHD record - size is too small"
-msgstr ""
+msgstr "Gagal menentukan saiz lightmap. Saiz lightmap maksimum terlalu kecil?"
#: vms-alpha.c:665
#, c-format
@@ -6777,9 +6913,9 @@ msgid "corrupt EGSD record: its psindx field is too big (%#lx)"
msgstr ""
#: vms-alpha.c:1441
-#, c-format
+#, fuzzy, c-format
msgid "unknown EGSD subtype %d"
-msgstr ""
+msgstr "Subjenis polyline tak diketahui: %d\n"
#: vms-alpha.c:1474
#, c-format
@@ -6787,37 +6923,40 @@ msgid "stack overflow (%d) in _bfd_vms_push"
msgstr ""
#: vms-alpha.c:1488
+#, fuzzy
msgid "stack underflow in _bfd_vms_pop"
-msgstr ""
+msgstr "tindanan bawah aliran\n"
#: vms-alpha.c:1562
-#, c-format
+#, fuzzy, c-format
msgid "dst_define_location %u too large"
-msgstr ""
+msgstr "Mesej terlalu besar untuk sambungan DTLS; maksimum ialah %u bait"
#. These names have not yet been added to this switch statement.
#: vms-alpha.c:1765
-#, c-format
+#, fuzzy, c-format
msgid "unknown ETIR command %d"
-msgstr ""
+msgstr "tidak diketahui-%d"
#: vms-alpha.c:1796
+#, fuzzy
msgid "corrupt vms value"
-msgstr ""
+msgstr "Takat rosak"
#: vms-alpha.c:1927
+#, fuzzy
msgid "corrupt ETIR record encountered"
-msgstr ""
+msgstr "Fail rosak?"
#: vms-alpha.c:1989
-#, c-format
+#, fuzzy, c-format
msgid "bad section index in %s"
-msgstr ""
+msgstr "Tiada seksyen sebegitu: %s"
#: vms-alpha.c:2003
-#, c-format
+#, fuzzy, c-format
msgid "unsupported STA cmd %s"
-msgstr ""
+msgstr "Tema tidak disokong '%s'."
#. Insert field.
#. Unsigned shift.
@@ -6842,27 +6981,29 @@ msgstr "%s tidak sah - %s"
#. Divide by zero is supposed to give a result of zero,
#. and a non-fatal warning message.
#: vms-alpha.c:2457
-#, c-format
+#, fuzzy, c-format
msgid "%s divide by zero"
-msgstr ""
+msgstr "Bahagi [/]"
#: vms-alpha.c:2523
-#, c-format
+#, fuzzy, c-format
msgid "invalid use of %s with contexts"
-msgstr ""
+msgstr "Tidak dapat menyenaraikan konteks fail"
#: vms-alpha.c:2581
-#, c-format
+#, fuzzy, c-format
msgid "reserved cmd %d"
-msgstr ""
+msgstr "Simpanan"
#: vms-alpha.c:2665
+#, fuzzy
msgid "corrupt EEOM record - size is too small"
-msgstr ""
+msgstr "Gagal menentukan saiz lightmap. Saiz lightmap maksimum terlalu kecil?"
#: vms-alpha.c:2674
+#, fuzzy
msgid "object module not error-free !"
-msgstr ""
+msgstr "Ralat: Laluan objek tidak dinyatakan\n"
#: vms-alpha.c:4006
#, c-format
@@ -6870,23 +7011,23 @@ msgid "SEC_RELOC with no relocs in section %pA"
msgstr ""
#: vms-alpha.c:4058 vms-alpha.c:4286
-#, c-format
+#, fuzzy, c-format
msgid "size error in section %pA"
-msgstr ""
+msgstr "Ralat sintaks dalam pengepala seksyen profil"
#: vms-alpha.c:4229
msgid "spurious ALPHA_R_BSR reloc"
msgstr ""
#: vms-alpha.c:4272
-#, c-format
+#, fuzzy, c-format
msgid "unhandled relocation %s"
-msgstr ""
+msgstr "Pengecualian tidak dikendalikan berlaku: %s"
#: vms-alpha.c:4637
-#, c-format
+#, fuzzy, c-format
msgid "unknown source command %d"
-msgstr ""
+msgstr "tidak diketahui-%d"
#: vms-alpha.c:4789 vms-alpha.c:4794 vms-alpha.c:4799 vms-alpha.c:4804
#: vms-alpha.c:4809 vms-alpha.c:4832 vms-alpha.c:4837 vms-alpha.c:4842
@@ -6896,122 +7037,125 @@ msgid "%s not implemented"
msgstr "%s tidak dilaksanakan"
#: vms-alpha.c:4883
-#, c-format
+#, fuzzy, c-format
msgid "unknown line command %d"
-msgstr ""
+msgstr "Nilai data tridak diketahui \"%s\" pada baris %d. Diabaikan."
#: vms-alpha.c:5322
+#, fuzzy
msgid "corrupt reloc record"
-msgstr ""
+msgstr "Fail rosak?"
#: vms-alpha.c:5352 vms-alpha.c:5370 vms-alpha.c:5387 vms-alpha.c:5405
#: vms-alpha.c:5418 vms-alpha.c:5430 vms-alpha.c:5443
-#, c-format
+#, fuzzy, c-format
msgid "unknown reloc %s + %s"
-msgstr ""
+msgstr "\t\tSambungan tidak diketahui %s (%s):\n"
#: vms-alpha.c:5502
-#, c-format
+#, fuzzy, c-format
msgid "unknown reloc %s"
-msgstr ""
+msgstr "\t\tSambungan tidak diketahui %s (%s):\n"
#: vms-alpha.c:5516
+#, fuzzy
msgid "invalid section index in ETIR"
-msgstr ""
+msgstr "Objek profile_section tidak sah"
#: vms-alpha.c:5525
+#, fuzzy
msgid "relocation for non-REL psect"
-msgstr ""
+msgstr "Direktori-direktori untuk diindeks secara bukan-rekursif"
#: vms-alpha.c:5578
-#, c-format
+#, fuzzy, c-format
msgid "unknown symbol in command %s"
-msgstr ""
+msgstr "arahan tidak diketahui: '%1$s'"
#: vms-alpha.c:5996
-#, c-format
+#, fuzzy, c-format
msgid "reloc (%d) is *UNKNOWN*"
-msgstr ""
+msgstr "Mod piksel tidak diketahui: %d\n"
#: vms-alpha.c:6113
-#, c-format
+#, fuzzy, c-format
msgid " EMH %d (len=%u): "
-msgstr ""
+msgstr "Ralat membaca dari klien, len = %d\n"
#: vms-alpha.c:6118 vms-alpha.c:6137 vms-alpha.c:6216
-#, c-format
+#, fuzzy, c-format
msgid " Error: %s min length is %u\n"
-msgstr ""
+msgstr "Jarak Fokus Min"
#: vms-alpha.c:6141
-#, c-format
+#, fuzzy, c-format
msgid "Module header\n"
-msgstr ""
+msgstr "Modul"
#: vms-alpha.c:6142
-#, c-format
+#, fuzzy, c-format
msgid " structure level: %u\n"
-msgstr ""
+msgstr "Struktur"
#: vms-alpha.c:6143
-#, c-format
+#, fuzzy, c-format
msgid " max record size: %u\n"
-msgstr ""
+msgstr "Nilai tidak sah bagi record_size"
#: vms-alpha.c:6149
-#, c-format
+#, fuzzy, c-format
msgid " Error: The module name is missing\n"
-msgstr ""
+msgstr "Nama tidak ditulis"
#: vms-alpha.c:6155
-#, c-format
+#, fuzzy, c-format
msgid " Error: The module name is too long\n"
-msgstr ""
+msgstr "Nama arkib terlalu panjang."
#: vms-alpha.c:6158
-#, c-format
+#, fuzzy, c-format
msgid " module name : %.*s\n"
-msgstr ""
+msgstr "Nama Modul Teratas"
#: vms-alpha.c:6162
-#, c-format
+#, fuzzy, c-format
msgid " Error: The module version is missing\n"
-msgstr ""
+msgstr "Ralat kaji hurai: Ruang Putih Hilang"
#: vms-alpha.c:6168
-#, c-format
+#, fuzzy, c-format
msgid " Error: The module version is too long\n"
-msgstr ""
+msgstr "Menunggu sistem fail terlalu lama"
#: vms-alpha.c:6171
-#, c-format
+#, fuzzy, c-format
msgid " module version : %.*s\n"
-msgstr ""
+msgstr "versi modul tidak sepadan dalam `%s'"
#: vms-alpha.c:6174
-#, c-format
+#, fuzzy, c-format
msgid " Error: The compile date is truncated\n"
-msgstr ""
+msgstr "Kompil ke…"
#: vms-alpha.c:6176
-#, c-format
+#, fuzzy, c-format
msgid " compile date : %.17s\n"
-msgstr ""
+msgstr "Kompil ke…"
#: vms-alpha.c:6181
-#, c-format
+#, fuzzy, c-format
msgid "Language Processor Name\n"
-msgstr ""
+msgstr "Bahasa Melayu"
#: vms-alpha.c:6182
-#, c-format
+#, fuzzy, c-format
msgid " language name: %.*s\n"
-msgstr ""
+msgstr "Bahasa: %s"
#: vms-alpha.c:6186
-#, c-format
+#, fuzzy, c-format
msgid "Source Files Header\n"
-msgstr ""
+msgstr "Jana pengepala sumber"
#: vms-alpha.c:6187
#, fuzzy, c-format
@@ -7019,9 +7163,9 @@ msgid " file: %.*s\n"
msgstr "Tiada fail %s sebegitu"
#: vms-alpha.c:6191
-#, c-format
+#, fuzzy, c-format
msgid "Title Text Header\n"
-msgstr ""
+msgstr "Pengepala Tetingkap - Tajuk"
#: vms-alpha.c:6192
#, fuzzy, c-format
@@ -7037,9 +7181,9 @@ msgstr ""
" under lay = %s\n"
#: vms-alpha.c:6196
-#, c-format
+#, fuzzy, c-format
msgid "Copyright Header\n"
-msgstr ""
+msgstr "Hakcipta"
#: vms-alpha.c:6197
#, fuzzy, c-format
@@ -7047,39 +7191,39 @@ msgid " copyright: %.*s\n"
msgstr "Hakcipta %s."
#: vms-alpha.c:6201
-#, c-format
+#, fuzzy, c-format
msgid "unhandled emh subtype %u\n"
-msgstr ""
+msgstr "Subjenis"
#: vms-alpha.c:6211
-#, c-format
+#, fuzzy, c-format
msgid " EEOM (len=%u):\n"
-msgstr ""
+msgstr "LEN(\"hello\") mengembalikan 5"
#: vms-alpha.c:6221
-#, c-format
+#, fuzzy, c-format
msgid " number of cond linkage pairs: %u\n"
-msgstr ""
+msgstr "bilangan pasangan asas per giliran heliks"
#: vms-alpha.c:6223
-#, c-format
+#, fuzzy, c-format
msgid " completion code: %u\n"
-msgstr ""
+msgstr "Kod ralat %u ketika mengesahihkan: %s"
#: vms-alpha.c:6228
-#, c-format
+#, fuzzy, c-format
msgid " transfer addr flags: 0x%02x\n"
-msgstr ""
+msgstr "DVDRead tidak dapa membaca blok %d/%d pada 0x%02x."
#: vms-alpha.c:6229
-#, c-format
+#, fuzzy, c-format
msgid " transfer addr psect: %u\n"
-msgstr ""
+msgstr "%u pemindahan selesai"
#: vms-alpha.c:6231
-#, c-format
+#, fuzzy, c-format
msgid " transfer address : 0x%08x\n"
-msgstr ""
+msgstr "Pindah"
#: vms-alpha.c:6240
#, fuzzy
@@ -7087,9 +7231,8 @@ msgid " WEAK"
msgstr "Lemah"
#: vms-alpha.c:6242
-#, fuzzy
msgid " DEF"
-msgstr "Takr. Pengguna 1"
+msgstr " DEF"
#: vms-alpha.c:6244
#, fuzzy
@@ -7173,9 +7316,9 @@ msgid " 64B"
msgstr ""
#: vms-alpha.c:6294
-#, c-format
+#, fuzzy, c-format
msgid " EGSD (len=%u):\n"
-msgstr ""
+msgstr "LEN(\"hello\") mengembalikan 5"
#: vms-alpha.c:6309
#, c-format
@@ -7183,24 +7326,24 @@ msgid " EGSD entry %2u (type: %u, len: %u): "
msgstr ""
#: vms-alpha.c:6315 vms-alpha.c:6610
-#, c-format
+#, fuzzy, c-format
msgid " Erroneous length\n"
-msgstr ""
+msgstr "Jangka masa"
#: vms-alpha.c:6328
-#, c-format
+#, fuzzy, c-format
msgid "PSC - Program section definition\n"
-msgstr ""
+msgstr "program tidak dibenarkan dalam seksyen ini"
#: vms-alpha.c:6329 vms-alpha.c:6349
-#, c-format
+#, fuzzy, c-format
msgid " alignment : 2**%u\n"
-msgstr ""
+msgstr "J&ajaran"
#: vms-alpha.c:6330 vms-alpha.c:6350
-#, c-format
+#, fuzzy, c-format
msgid " flags : 0x%04x"
-msgstr ""
+msgstr "(0x%04x, '%s'): "
#: vms-alpha.c:6334
#, c-format
@@ -7210,7 +7353,7 @@ msgstr ""
#: vms-alpha.c:6336 vms-alpha.c:6402 vms-alpha.c:6470
#, fuzzy, c-format
msgid " name : %.*s\n"
-msgstr "Nama %s sudah digunakan"
+msgstr " nama: %.*s\n"
#: vms-alpha.c:6348
#, c-format
@@ -7223,79 +7366,79 @@ msgid " alloc (len) : %u (0x%08x)\n"
msgstr ""
#: vms-alpha.c:6355
-#, c-format
+#, fuzzy, c-format
msgid " image offset : 0x%08x\n"
-msgstr ""
+msgstr "Ofset kawasan imej"
#: vms-alpha.c:6357
-#, c-format
+#, fuzzy, c-format
msgid " symvec offset : 0x%08x\n"
-msgstr ""
+msgstr "ofset"
#: vms-alpha.c:6360
#, fuzzy, c-format
msgid " name : %.*s\n"
-msgstr "Nama %s sudah digunakan"
+msgstr " nama: %.*s\n"
#: vms-alpha.c:6376
-#, c-format
+#, fuzzy, c-format
msgid "SYM - Global symbol definition\n"
-msgstr ""
+msgstr "Lompat ke takrifan simbol"
#: vms-alpha.c:6377 vms-alpha.c:6458 vms-alpha.c:6482 vms-alpha.c:6505
-#, c-format
+#, fuzzy, c-format
msgid " flags: 0x%04x"
-msgstr ""
+msgstr "(0x%04x, '%s'): "
#: vms-alpha.c:6380
-#, c-format
+#, fuzzy, c-format
msgid " psect offset: 0x%08x\n"
-msgstr ""
+msgstr "ofset"
#: vms-alpha.c:6384
-#, c-format
+#, fuzzy, c-format
msgid " code address: 0x%08x\n"
-msgstr ""
+msgstr "ralat tidak diketahui (kod ralat %08x)."
#: vms-alpha.c:6386
-#, c-format
+#, fuzzy, c-format
msgid " psect index for entry point : %u\n"
-msgstr ""
+msgstr "Masukan palet %u"
#: vms-alpha.c:6389 vms-alpha.c:6489 vms-alpha.c:6512
-#, c-format
+#, fuzzy, c-format
msgid " psect index : %u\n"
-msgstr ""
+msgstr "%U"
#: vms-alpha.c:6392 vms-alpha.c:6492 vms-alpha.c:6515
#, fuzzy, c-format
msgid " name : %.*s\n"
-msgstr "Nama %s sudah digunakan"
+msgstr " nama: %.*s\n"
#: vms-alpha.c:6400
-#, c-format
+#, fuzzy, c-format
msgid "SYM - Global symbol reference\n"
-msgstr ""
+msgstr "Simbol"
#: vms-alpha.c:6415
-#, c-format
+#, fuzzy, c-format
msgid "IDC - Ident Consistency check\n"
-msgstr ""
+msgstr "IDENT: socket() gagal"
#: vms-alpha.c:6416
-#, c-format
+#, fuzzy, c-format
msgid " flags : 0x%08x"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:6420
-#, c-format
+#, fuzzy, c-format
msgid " id match : %x\n"
-msgstr ""
+msgstr "Tiada padanan"
#: vms-alpha.c:6422
-#, c-format
+#, fuzzy, c-format
msgid " error severity: %x\n"
-msgstr ""
+msgstr "ralat dalaman X: %s\n"
#: vms-alpha.c:6426
#, fuzzy, c-format
@@ -7303,24 +7446,24 @@ msgid " entity name : %.*s\n"
msgstr "Nama entiti \"%-.*s\" tidak diketahui"
#: vms-alpha.c:6432
-#, c-format
+#, fuzzy, c-format
msgid " object name : %.*s\n"
-msgstr ""
+msgstr "Nama Objek"
#: vms-alpha.c:6441
-#, c-format
+#, fuzzy, c-format
msgid " binary ident : 0x%08x\n"
-msgstr ""
+msgstr "binari"
#: vms-alpha.c:6445
-#, c-format
+#, fuzzy, c-format
msgid " ascii ident : %.*s\n"
-msgstr ""
+msgstr "IDENT: disambungkan kepada %s:%u"
#: vms-alpha.c:6457
-#, c-format
+#, fuzzy, c-format
msgid "SYMG - Universal symbol definition\n"
-msgstr ""
+msgstr "Lompat ke takrifan simbol"
#: vms-alpha.c:6461
#, c-format
@@ -7328,49 +7471,49 @@ msgid " symbol vector offset: 0x%08x\n"
msgstr ""
#: vms-alpha.c:6463
-#, c-format
+#, fuzzy, c-format
msgid " entry point: 0x%08x\n"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:6465
-#, c-format
+#, fuzzy, c-format
msgid " proc descr : 0x%08x\n"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:6467
-#, c-format
+#, fuzzy, c-format
msgid " psect index: %u\n"
-msgstr ""
+msgstr "%U"
#: vms-alpha.c:6481
-#, c-format
+#, fuzzy, c-format
msgid "SYMV - Vectored symbol definition\n"
-msgstr ""
+msgstr "Lompat ke takrifan simbol"
#: vms-alpha.c:6485
-#, c-format
+#, fuzzy, c-format
msgid " vector : 0x%08x\n"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:6487 vms-alpha.c:6510
-#, c-format
+#, fuzzy, c-format
msgid " psect offset: %u\n"
-msgstr ""
+msgstr "ofset"
#: vms-alpha.c:6504
-#, c-format
+#, fuzzy, c-format
msgid "SYMM - Global symbol definition with version\n"
-msgstr ""
+msgstr "Lompat ke takrifan simbol"
#: vms-alpha.c:6508
-#, c-format
+#, fuzzy, c-format
msgid " version mask: 0x%08x\n"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:6521
-#, c-format
+#, fuzzy, c-format
msgid "unhandled egsd entry type %u\n"
-msgstr ""
+msgstr "Xmpdatum %1 tidak dikendali bagi jenis %2"
#: vms-alpha.c:6560
#, c-format
@@ -7393,34 +7536,34 @@ msgid " psect idx 3: %u, offset 3: 0x%08x %08x\n"
msgstr ""
#: vms-alpha.c:6580
-#, c-format
+#, fuzzy, c-format
msgid " global name: %.*s\n"
-msgstr ""
+msgstr "Tidak boleh bertembung dengan nama pemalar global yang telah wujud."
#: vms-alpha.c:6592
-#, c-format
+#, fuzzy, c-format
msgid " %s (len=%u):\n"
-msgstr ""
+msgstr "Len Tower"
#: vms-alpha.c:6615
-#, c-format
+#, fuzzy, c-format
msgid " (type: %3u, size: %3u): "
-msgstr ""
+msgstr "jenis saiz tidak sah `%c'"
#: vms-alpha.c:6621
-#, c-format
+#, fuzzy, c-format
msgid "STA_GBL (stack global) %.*s\n"
-msgstr ""
+msgstr "Batalkan perincian sejagat untuk repositori \"%s\":"
#: vms-alpha.c:6625
-#, c-format
+#, fuzzy, c-format
msgid "STA_LW (stack longword)"
-msgstr ""
+msgstr "Tarikh m_ula:"
#: vms-alpha.c:6631
-#, c-format
+#, fuzzy, c-format
msgid "STA_QW (stack quadword)"
-msgstr ""
+msgstr "Tarikh m_ula:"
#: vms-alpha.c:6638
#, c-format
@@ -7433,14 +7576,14 @@ msgid " psect: %u, offset: 0x%08x %08x\n"
msgstr ""
#: vms-alpha.c:6647
-#, c-format
+#, fuzzy, c-format
msgid "STA_LI (stack literal)\n"
-msgstr ""
+msgstr "Tarikh m_ula:"
#: vms-alpha.c:6650
-#, c-format
+#, fuzzy, c-format
msgid "STA_MOD (stack module)\n"
-msgstr ""
+msgstr "Modul %(mod)r tidak dipasang"
#: vms-alpha.c:6653
#, c-format
@@ -7448,24 +7591,24 @@ msgid "STA_CKARG (compare procedure argument)\n"
msgstr ""
#: vms-alpha.c:6657
-#, c-format
+#, fuzzy, c-format
msgid "STO_B (store byte)\n"
-msgstr ""
+msgstr "bait,bait,B"
#: vms-alpha.c:6660
-#, c-format
+#, fuzzy, c-format
msgid "STO_W (store word)\n"
-msgstr ""
+msgstr " -W, --word-mode banding perkataan dan bukannya baris\n"
#: vms-alpha.c:6663
-#, c-format
+#, fuzzy, c-format
msgid "STO_LW (store longword)\n"
-msgstr ""
+msgstr "&Simpan"
#: vms-alpha.c:6666
-#, c-format
+#, fuzzy, c-format
msgid "STO_QW (store quadword)\n"
-msgstr ""
+msgstr "&Simpan"
#: vms-alpha.c:6673
#, c-format
@@ -7473,9 +7616,9 @@ msgid "STO_IMMR (store immediate repeat) %u bytes\n"
msgstr ""
#: vms-alpha.c:6682
-#, c-format
+#, fuzzy, c-format
msgid "STO_GBL (store global) %.*s\n"
-msgstr ""
+msgstr "Batalkan perincian sejagat untuk repositori \"%s\":"
#: vms-alpha.c:6687
#, c-format
@@ -7488,9 +7631,9 @@ msgid "STO_RB (store relative branch)\n"
msgstr ""
#: vms-alpha.c:6694
-#, c-format
+#, fuzzy, c-format
msgid "STO_AB (store absolute branch)\n"
-msgstr ""
+msgstr "Punca simpanan %s bukan laluan mutlak"
#: vms-alpha.c:6697
#, c-format
@@ -7523,79 +7666,79 @@ msgid "STO_BR_PS (store branch psect + offset) *todo*\n"
msgstr ""
#: vms-alpha.c:6727
-#, c-format
+#, fuzzy, c-format
msgid "OPR_NOP (no-operation)\n"
-msgstr ""
+msgstr "Sisip &nop"
#: vms-alpha.c:6730
-#, c-format
+#, fuzzy, c-format
msgid "OPR_ADD (add)\n"
-msgstr ""
+msgstr "Tambah"
#: vms-alpha.c:6733
-#, c-format
+#, fuzzy, c-format
msgid "OPR_SUB (subtract)\n"
-msgstr ""
+msgstr "Tolak [-]"
#: vms-alpha.c:6736
-#, c-format
+#, fuzzy, c-format
msgid "OPR_MUL (multiply)\n"
-msgstr ""
+msgstr "Darab [*]"
#: vms-alpha.c:6739
-#, c-format
+#, fuzzy, c-format
msgid "OPR_DIV (divide)\n"
-msgstr ""
+msgstr "Bahagi [/]"
#: vms-alpha.c:6742
-#, c-format
+#, fuzzy, c-format
msgid "OPR_AND (logical and)\n"
-msgstr ""
+msgstr "logikal not"
#: vms-alpha.c:6745
-#, c-format
+#, fuzzy, c-format
msgid "OPR_IOR (logical inclusive or)\n"
-msgstr ""
+msgstr "logikal not"
#: vms-alpha.c:6748
-#, c-format
+#, fuzzy, c-format
msgid "OPR_EOR (logical exclusive or)\n"
-msgstr ""
+msgstr "Boolean Exclusive OR"
#: vms-alpha.c:6751
-#, c-format
+#, fuzzy, c-format
msgid "OPR_NEG (negate)\n"
-msgstr ""
+msgstr "Sangkal"
#: vms-alpha.c:6754
-#, c-format
+#, fuzzy, c-format
msgid "OPR_COM (complement)\n"
-msgstr ""
+msgstr "pelengkap"
#: vms-alpha.c:6757
-#, c-format
+#, fuzzy, c-format
msgid "OPR_INSV (insert field)\n"
-msgstr ""
+msgstr "Selitkan Ke Dalam Medan Edit"
#: vms-alpha.c:6760
-#, c-format
+#, fuzzy, c-format
msgid "OPR_ASH (arithmetic shift)\n"
-msgstr ""
+msgstr "Abu Gunung Berapi"
#: vms-alpha.c:6763
-#, c-format
+#, fuzzy, c-format
msgid "OPR_USH (unsigned shift)\n"
-msgstr ""
+msgstr "K_osongkan Peti Keluar"
#: vms-alpha.c:6766
-#, c-format
+#, fuzzy, c-format
msgid "OPR_ROT (rotate)\n"
-msgstr ""
+msgstr "&Putar..."
#: vms-alpha.c:6769
-#, c-format
+#, fuzzy, c-format
msgid "OPR_SEL (select)\n"
-msgstr ""
+msgstr "%(sel)s daripada %(cnt)s dipilih"
#: vms-alpha.c:6772
#, c-format
@@ -7603,9 +7746,9 @@ msgid "OPR_REDEF (redefine symbol to curr location)\n"
msgstr ""
#: vms-alpha.c:6775
-#, c-format
+#, fuzzy, c-format
msgid "OPR_REDEF (define a literal)\n"
-msgstr ""
+msgstr "Bidang perlu menjadi perkataan literal."
#: vms-alpha.c:6779
#, c-format
@@ -7618,9 +7761,9 @@ msgid "STC_LP_PSB (store cond linkage pair + signature)\n"
msgstr ""
#: vms-alpha.c:6787
-#, c-format
+#, fuzzy, c-format
msgid " linkage index: %u, procedure: %.*s\n"
-msgstr ""
+msgstr "%s bukan objek prosedur"
#: vms-alpha.c:6794
#, fuzzy, c-format
@@ -7633,9 +7776,9 @@ msgid "STC_GBL (store cond global)\n"
msgstr ""
#: vms-alpha.c:6803
-#, c-format
+#, fuzzy, c-format
msgid " linkage index: %u, global: %.*s\n"
-msgstr ""
+msgstr "Batalkan perincian sejagat untuk repositori \"%s\":"
#: vms-alpha.c:6808
#, c-format
@@ -7643,9 +7786,9 @@ msgid "STC_GCA (store cond code address)\n"
msgstr ""
#: vms-alpha.c:6811
-#, c-format
+#, fuzzy, c-format
msgid " linkage index: %u, procedure name: %.*s\n"
-msgstr ""
+msgstr "gagal mendapatkan nama untuk platform %u (%s)"
#: vms-alpha.c:6816
#, c-format
@@ -7718,19 +7861,19 @@ msgid "CTL_AUGRB (augment relocation base) %u\n"
msgstr ""
#: vms-alpha.c:6879
-#, c-format
+#, fuzzy, c-format
msgid "CTL_DFLOC (define location)\n"
-msgstr ""
+msgstr "Lokasi:"
#: vms-alpha.c:6882
-#, c-format
+#, fuzzy, c-format
msgid "CTL_STLOC (set location)\n"
-msgstr ""
+msgstr "Arahan log keluar belum ditetapkan"
#: vms-alpha.c:6885
-#, c-format
+#, fuzzy, c-format
msgid "CTL_STKDL (stack defined location)\n"
-msgstr ""
+msgstr "Laluan ke direktori pembayang. Jika tiada laluan ditakrifkan, lokasi lalai akan digunakan."
#: vms-alpha.c:6888 vms-alpha.c:7316 vms-alpha.c:7477
#, fuzzy, c-format
@@ -7738,9 +7881,9 @@ msgid "*unhandled*\n"
msgstr "Ralat tidak boleh kendali"
#: vms-alpha.c:6913
-#, c-format
+#, fuzzy, c-format
msgid "cannot read GST record header\n"
-msgstr ""
+msgstr "Gagal membaca pengepala QTIF"
#. Ill-formed.
#: vms-alpha.c:6936
@@ -7749,19 +7892,19 @@ msgid "cannot find EMH in first GST record\n"
msgstr ""
#: vms-alpha.c:6960
-#, c-format
+#, fuzzy, c-format
msgid "corrupted GST\n"
-msgstr ""
+msgstr "profil-gst"
#: vms-alpha.c:6973
-#, c-format
+#, fuzzy, c-format
msgid "cannot read GST record\n"
-msgstr ""
+msgstr "profil-gst"
#: vms-alpha.c:7000
-#, c-format
+#, fuzzy, c-format
msgid " unhandled EOBJ record type %u\n"
-msgstr ""
+msgstr "Xmpdatum %1 tidak dikendali bagi jenis %2"
#: vms-alpha.c:7025
#, c-format
@@ -7774,14 +7917,14 @@ msgid " bitmap: 0x%08x (count: %u):\n"
msgstr ""
#: vms-alpha.c:7046
-#, fuzzy, c-format
+#, c-format
msgid " %08x"
-msgstr "ralat tidak diketahui (kod ralat %08x)."
+msgstr " %08x"
#: vms-alpha.c:7073
-#, c-format
+#, fuzzy, c-format
msgid " image %u (%u entries)\n"
-msgstr ""
+msgstr "Menyimpan imej “%s†(%u/%u)"
#: vms-alpha.c:7079
#, c-format
@@ -7789,20 +7932,20 @@ msgid " offset: 0x%08x, val: 0x%08x\n"
msgstr ""
#: vms-alpha.c:7102
-#, c-format
+#, fuzzy, c-format
msgid " image %u (%u entries), offsets:\n"
-msgstr ""
+msgstr "Menyimpan imej “%s†(%u/%u)"
#: vms-alpha.c:7109
#, c-format
msgid " 0x%08x"
-msgstr ""
+msgstr " 0x%08x"
#. 64 bits.
#: vms-alpha.c:7235
-#, c-format
+#, fuzzy, c-format
msgid "64 bits *unhandled*\n"
-msgstr ""
+msgstr "64 bit"
#: vms-alpha.c:7240
#, c-format
@@ -7810,9 +7953,9 @@ msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n"
msgstr ""
#: vms-alpha.c:7251
-#, c-format
+#, fuzzy, c-format
msgid "non-contiguous array of %s\n"
-msgstr ""
+msgstr "data berterusan"
#: vms-alpha.c:7258
#, c-format
@@ -7835,24 +7978,24 @@ msgid "Bounds:\n"
msgstr "Batas Kiri"
#: vms-alpha.c:7288
-#, c-format
+#, fuzzy, c-format
msgid "[%u]: Lower: %u, upper: %u\n"
-msgstr ""
+msgstr "%u × %u"
#: vms-alpha.c:7302
-#, c-format
+#, fuzzy, c-format
msgid "unaligned bit-string of %s\n"
-msgstr ""
+msgstr "Tidak boleh membaca petikan bit: %s\n"
#: vms-alpha.c:7309
-#, c-format
+#, fuzzy, c-format
msgid "base: %u, pos: %u\n"
-msgstr ""
+msgstr "%u × %u"
#: vms-alpha.c:7335
-#, c-format
+#, fuzzy, c-format
msgid "vflags: 0x%02x, value: 0x%08x "
-msgstr ""
+msgstr "DVDRead tidak dapa membaca blok %d/%d pada 0x%02x."
#: vms-alpha.c:7342
#, fuzzy, c-format
@@ -7867,7 +8010,7 @@ msgstr "tidak aktif"
#: vms-alpha.c:7348
#, fuzzy, c-format
msgid "(not allocated)\n"
-msgstr "@r tidak diumpukkan. "
+msgstr "DIUMPUKKAN"
#: vms-alpha.c:7351
#, fuzzy, c-format
@@ -7875,19 +8018,19 @@ msgid "(descriptor)\n"
msgstr "Penerang salin"
#: vms-alpha.c:7356
-#, c-format
+#, fuzzy, c-format
msgid "(trailing value)\n"
-msgstr ""
+msgstr "Slash dibelakang"
#: vms-alpha.c:7359
-#, c-format
+#, fuzzy, c-format
msgid "(value spec follows)\n"
-msgstr ""
+msgstr "spec RPM"
#: vms-alpha.c:7362
-#, c-format
+#, fuzzy, c-format
msgid "(at bit offset %u)\n"
-msgstr ""
+msgstr "%u bit"
#: vms-alpha.c:7366
#, c-format
@@ -7914,14 +8057,14 @@ msgid "reg"
msgstr "Reg "
#: vms-alpha.c:7403
-#, c-format
+#, fuzzy, c-format
msgid "len: %2u, kind: %2u "
-msgstr ""
+msgstr "Len Tower"
#: vms-alpha.c:7411
-#, c-format
+#, fuzzy, c-format
msgid "atomic, type=0x%02x %s\n"
-msgstr ""
+msgstr "DVDRead tidak dapa membaca blok %d/%d pada 0x%02x."
#: vms-alpha.c:7416
#, c-format
@@ -7929,44 +8072,44 @@ msgid "indirect, defined at 0x%08x\n"
msgstr ""
#: vms-alpha.c:7420
-#, c-format
+#, fuzzy, c-format
msgid "typed pointer\n"
-msgstr ""
+msgstr "hukum kosong untuk bukan terminal ditaip, dan tiada tindakan"
#: vms-alpha.c:7424
-#, fuzzy, c-format
+#, c-format
msgid "pointer\n"
-msgstr "Penuding: %p"
+msgstr "penunjuk\n"
#: vms-alpha.c:7435
-#, c-format
+#, fuzzy, c-format
msgid "array, dim: %u, bitmap: "
-msgstr ""
+msgstr "Tatasusunan"
#: vms-alpha.c:7450
-#, c-format
+#, fuzzy, c-format
msgid "array descriptor:\n"
-msgstr ""
+msgstr "Penerang salin"
#: vms-alpha.c:7461
-#, c-format
+#, fuzzy, c-format
msgid "type spec for element:\n"
-msgstr ""
+msgstr "Jenis tidak dikenali \"%s\" pada unsur <%s>"
#: vms-alpha.c:7463
-#, c-format
+#, fuzzy, c-format
msgid "type spec for subscript %u:\n"
-msgstr ""
+msgstr "spec RPM"
#: vms-alpha.c:7488
-#, c-format
+#, fuzzy, c-format
msgid "Debug symbol table:\n"
-msgstr ""
+msgstr "nyahpepijat"
#: vms-alpha.c:7499
-#, c-format
+#, fuzzy, c-format
msgid "cannot read DST header\n"
-msgstr ""
+msgstr "Gagal membaca pengepala QTIF"
#: vms-alpha.c:7505
#, c-format
@@ -7974,19 +8117,19 @@ msgid " type: %3u, len: %3u (at 0x%08x): "
msgstr ""
#: vms-alpha.c:7524
-#, c-format
+#, fuzzy, c-format
msgid "cannot read DST symbol\n"
-msgstr ""
+msgstr "Tak dalat membaca CD: %s"
#: vms-alpha.c:7568
-#, c-format
+#, fuzzy, c-format
msgid "standard data: %s\n"
-msgstr ""
+msgstr "Hantar data sebagai &input standard"
#: vms-alpha.c:7572 vms-alpha.c:7696
-#, fuzzy, c-format
+#, c-format
msgid " name: %.*s\n"
-msgstr "Nama %s sudah digunakan"
+msgstr " nama: %.*s\n"
#: vms-alpha.c:7580
#, c-format
@@ -7999,14 +8142,14 @@ msgid " flags: %d, language: %u, major: %u, minor: %u\n"
msgstr ""
#: vms-alpha.c:7594 vms-alpha.c:7963
-#, c-format
+#, fuzzy, c-format
msgid " module name: %.*s\n"
-msgstr ""
+msgstr "Nama Modul Teratas"
#: vms-alpha.c:7601
-#, fuzzy, c-format
+#, c-format
msgid " compiler : %.*s\n"
-msgstr "Pengkompil: %s\n"
+msgstr " pembina : %.*s\n"
#: vms-alpha.c:7608
#, c-format
@@ -8023,14 +8166,14 @@ msgid " flags: %u, address: 0x%08x, pd-address: 0x%08x\n"
msgstr ""
#: vms-alpha.c:7628
-#, c-format
+#, fuzzy, c-format
msgid " routine name: %.*s\n"
-msgstr ""
+msgstr "Nama: %s, EntitiID: %s"
#: vms-alpha.c:7639
-#, c-format
+#, fuzzy, c-format
msgid "rtnend: size 0x%08x\n"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:7649
#, c-format
@@ -8038,39 +8181,39 @@ msgid "prolog: bkpt address 0x%08x\n"
msgstr ""
#: vms-alpha.c:7659
-#, c-format
+#, fuzzy, c-format
msgid "epilog: flags: %u, count: %u\n"
-msgstr ""
+msgstr "%u × %u"
#: vms-alpha.c:7674
-#, c-format
+#, fuzzy, c-format
msgid "blkbeg: address: 0x%08x, name: %.*s\n"
-msgstr ""
+msgstr "%s: nama hos adalah sah tetatpi tidak mempunyai alamat IP."
#: vms-alpha.c:7686
-#, c-format
+#, fuzzy, c-format
msgid "blkend: size: 0x%08x\n"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:7692
-#, c-format
+#, fuzzy, c-format
msgid "typspec (len: %u)\n"
-msgstr ""
+msgstr "LEN(\"hello\") mengembalikan 5"
#: vms-alpha.c:7708
-#, c-format
+#, fuzzy, c-format
msgid "septyp, name: %.*s\n"
-msgstr ""
+msgstr "Nama: %s, EntitiID: %s"
#: vms-alpha.c:7725
-#, c-format
+#, fuzzy, c-format
msgid "recbeg: name: %.*s\n"
-msgstr ""
+msgstr "Nama: %s, EntitiID: %s"
#: vms-alpha.c:7731
-#, c-format
+#, fuzzy, c-format
msgid " len: %u bits\n"
-msgstr ""
+msgstr "%u bit"
#: vms-alpha.c:7737
#, c-format
@@ -8078,14 +8221,14 @@ msgid "recend\n"
msgstr ""
#: vms-alpha.c:7742
-#, c-format
+#, fuzzy, c-format
msgid "enumbeg, len: %u, name: %.*s\n"
-msgstr ""
+msgstr "gagal mendapatkan nama untuk platform %u (%s)"
#: vms-alpha.c:7748
-#, c-format
+#, fuzzy, c-format
msgid "enumelt, name: %.*s\n"
-msgstr ""
+msgstr "Nama: %s, EntitiID: %s"
#: vms-alpha.c:7754
#, c-format
@@ -8093,69 +8236,69 @@ msgid "enumend\n"
msgstr ""
#: vms-alpha.c:7761
-#, c-format
+#, fuzzy, c-format
msgid "label, name: %.*s\n"
-msgstr ""
+msgstr "%s kehilangan nama atau label"
#: vms-alpha.c:7764
-#, c-format
+#, fuzzy, c-format
msgid " address: 0x%08x\n"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:7776
-#, c-format
+#, fuzzy, c-format
msgid "discontiguous range (nbr: %u)\n"
-msgstr ""
+msgstr "Blok buruk %u diluar julat; diabaikan.\n"
#: vms-alpha.c:7783
-#, c-format
+#, fuzzy, c-format
msgid " address: 0x%08x, size: %u\n"
-msgstr ""
+msgstr "%s: saiz alamat mempunyai nilai %u tidak dijangka\n"
#: vms-alpha.c:7794
-#, c-format
+#, fuzzy, c-format
msgid "line num (len: %u)\n"
-msgstr ""
+msgstr "%u aksara setiap baris"
#: vms-alpha.c:7813
-#, c-format
+#, fuzzy, c-format
msgid "delta_pc_w %u\n"
-msgstr ""
+msgstr "PC"
#: vms-alpha.c:7822
-#, c-format
+#, fuzzy, c-format
msgid "incr_linum(b): +%u\n"
-msgstr ""
+msgstr "%U"
#: vms-alpha.c:7830
-#, c-format
+#, fuzzy, c-format
msgid "incr_linum_w: +%u\n"
-msgstr ""
+msgstr "%U"
#: vms-alpha.c:7838
-#, c-format
+#, fuzzy, c-format
msgid "incr_linum_l: +%u\n"
-msgstr ""
+msgstr "Had Laju Muat Naik"
#: vms-alpha.c:7846
-#, c-format
+#, fuzzy, c-format
msgid "set_line_num(w) %u\n"
-msgstr ""
+msgstr "%u aksara setiap baris"
#: vms-alpha.c:7853
-#, c-format
+#, fuzzy, c-format
msgid "set_line_num_b %u\n"
-msgstr ""
+msgstr "%u aksara setiap baris"
#: vms-alpha.c:7860
-#, c-format
+#, fuzzy, c-format
msgid "set_line_num_l %u\n"
-msgstr ""
+msgstr "Kedua-dua L dan U dinyatakan.\n"
#: vms-alpha.c:7867
-#, c-format
+#, fuzzy, c-format
msgid "set_abs_pc: 0x%08x\n"
-msgstr ""
+msgstr "PC set 1"
#: vms-alpha.c:7873
#, c-format
@@ -8170,22 +8313,22 @@ msgstr ""
#: vms-alpha.c:7882
#, c-format
msgid " pc: 0x%08x\n"
-msgstr ""
+msgstr " pc: 0x%08x\n"
#: vms-alpha.c:7889
-#, c-format
+#, fuzzy, c-format
msgid "term_w: 0x%04x"
-msgstr ""
+msgstr "(0x%04x, '%s'): "
#: vms-alpha.c:7891
#, c-format
msgid " pc: 0x%08x\n"
-msgstr ""
+msgstr " pc: 0x%08x\n"
#: vms-alpha.c:7897
-#, c-format
+#, fuzzy, c-format
msgid "delta pc +%-4d"
-msgstr ""
+msgstr "PC"
#: vms-alpha.c:7901
#, c-format
@@ -8193,14 +8336,14 @@ msgid " pc: 0x%08x line: %5u\n"
msgstr ""
#: vms-alpha.c:7906
-#, c-format
+#, fuzzy, c-format
msgid " *unhandled* cmd %u\n"
-msgstr ""
+msgstr "Ralat tidak boleh kendali"
#: vms-alpha.c:7921
-#, c-format
+#, fuzzy, c-format
msgid "source (len: %u)\n"
-msgstr ""
+msgstr "LEN(\"hello\") mengembalikan 5"
#: vms-alpha.c:7940
#, c-format
@@ -8213,29 +8356,29 @@ msgid " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n"
msgstr ""
#: vms-alpha.c:7957
-#, fuzzy, c-format
+#, c-format
msgid " filename : %.*s\n"
-msgstr "Nama fail \"%s\" tidak sah"
+msgstr " nama fail : %.*s\n"
#: vms-alpha.c:7973
-#, c-format
+#, fuzzy, c-format
msgid " setfile %u\n"
-msgstr ""
+msgstr "%u × %u"
#: vms-alpha.c:7980 vms-alpha.c:7987
-#, c-format
+#, fuzzy, c-format
msgid " setrec %u\n"
-msgstr ""
+msgstr "%u × %u"
#: vms-alpha.c:7994 vms-alpha.c:8001
-#, c-format
+#, fuzzy, c-format
msgid " setlnum %u\n"
-msgstr ""
+msgstr "%u × %u"
#: vms-alpha.c:8008 vms-alpha.c:8015
-#, c-format
+#, fuzzy, c-format
msgid " deflines %u\n"
-msgstr ""
+msgstr "%u × %u"
#: vms-alpha.c:8019
#, c-format
@@ -8243,58 +8386,55 @@ msgid " formfeed\n"
msgstr ""
#: vms-alpha.c:8023
-#, c-format
+#, fuzzy, c-format
msgid " *unhandled* cmd %u\n"
-msgstr ""
+msgstr "Ralat tidak boleh kendali"
#: vms-alpha.c:8035
-#, c-format
+#, fuzzy, c-format
msgid "*unhandled* dst type %u\n"
-msgstr ""
+msgstr "Xmpdatum %1 tidak dikendali bagi jenis %2"
#: vms-alpha.c:8067
-#, c-format
+#, fuzzy, c-format
msgid "cannot read EIHD\n"
-msgstr ""
+msgstr "Tidak Dapat Baca"
#: vms-alpha.c:8071
-#, c-format
+#, fuzzy, c-format
msgid "EIHD: (size: %u, nbr blocks: %u)\n"
-msgstr ""
+msgstr "Blok buruk: %u"
#: vms-alpha.c:8075
-#, c-format
+#, fuzzy, c-format
msgid " majorid: %u, minorid: %u\n"
-msgstr ""
+msgstr "%u × %u"
#: vms-alpha.c:8083
-#, fuzzy
msgid "executable"
-msgstr "Boleh Laku"
+msgstr "boleh laksana"
#: vms-alpha.c:8086
msgid "linkable image"
msgstr ""
#: vms-alpha.c:8093
-#, c-format
+#, fuzzy, c-format
msgid " image type: %u (%s)"
-msgstr ""
+msgstr "Menyimpan imej “%s†(%u/%u)"
#: vms-alpha.c:8099
-#, fuzzy
msgid "native"
-msgstr "Asli"
+msgstr "asli"
#: vms-alpha.c:8102
-#, fuzzy
msgid "CLI"
-msgstr "Infrastruktur Mono/CLI"
+msgstr "CLI"
#: vms-alpha.c:8109
-#, c-format
+#, fuzzy, c-format
msgid ", subtype: %u (%s)\n"
-msgstr ""
+msgstr "Gagal untuk menambah sub jenis '%s': %s\n"
#: vms-alpha.c:8116
#, c-format
@@ -8302,21 +8442,21 @@ msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n"
msgstr ""
#: vms-alpha.c:8120
-#, c-format
+#, fuzzy, c-format
msgid " fixup info rva: "
-msgstr ""
+msgstr "Jenis Saiz Rva Offset\n"
#: vms-alpha.c:8122
-#, c-format
+#, fuzzy, c-format
msgid ", symbol vector rva: "
-msgstr ""
+msgstr "Grafik Vektor"
#: vms-alpha.c:8125
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
" version array off: %u\n"
-msgstr ""
+msgstr "Menggunakan VTE versi %u.%u.%u"
#: vms-alpha.c:8130
#, c-format
@@ -8324,9 +8464,9 @@ msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n"
msgstr ""
#: vms-alpha.c:8136
-#, c-format
+#, fuzzy, c-format
msgid " linker flags: %08x:"
-msgstr ""
+msgstr "Pemaut"
#: vms-alpha.c:8167
#, c-format
@@ -8334,9 +8474,9 @@ msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n"
msgstr ""
#: vms-alpha.c:8173
-#, c-format
+#, fuzzy, c-format
msgid " BPAGE: %u"
-msgstr ""
+msgstr "%u × %u"
#: vms-alpha.c:8180
#, c-format
@@ -8344,71 +8484,74 @@ msgid ", ext fixup offset: %u, no_opt psect off: %u"
msgstr ""
#: vms-alpha.c:8183
-#, c-format
+#, fuzzy, c-format
msgid ", alias: %u\n"
-msgstr ""
+msgstr "Alias"
#: vms-alpha.c:8191
-#, c-format
+#, fuzzy, c-format
msgid "system version array information:\n"
-msgstr ""
+msgstr "sistem, maklumat, terperinci, grafik, bunyi, kernel, versi"
#: vms-alpha.c:8195
-#, c-format
+#, fuzzy, c-format
msgid "cannot read EIHVN header\n"
-msgstr ""
+msgstr "Gagal membaca pengepala QTIF"
#: vms-alpha.c:8205
-#, c-format
+#, fuzzy, c-format
msgid "cannot read EIHVN version\n"
-msgstr ""
+msgstr "Versi Baca Jenis Doc"
#: vms-alpha.c:8208
-#, fuzzy, c-format
+#, c-format
msgid " %02u "
-msgstr "%u:%02u:%02u"
+msgstr " %02u "
#: vms-alpha.c:8212
-#, fuzzy
msgid "BASE_IMAGE "
-msgstr "[ Imej Asas ]"
+msgstr "IMEJ_ASAS "
#: vms-alpha.c:8215
-#, fuzzy
msgid "MEMORY_MANAGEMENT"
-msgstr "Benarkan Unit Pengurusan Ingatan, diperlukan oleh sesetengah permainan. (HIDUP = Serasi, MATI = Pantas)"
+msgstr "PENGURUSAN_INGATAN"
#: vms-alpha.c:8218
msgid "IO "
msgstr "IO "
#: vms-alpha.c:8221
+#, fuzzy
msgid "FILES_VOLUMES "
-msgstr ""
+msgstr "_Volum"
#: vms-alpha.c:8224
+#, fuzzy
msgid "PROCESS_SCHED "
-msgstr ""
+msgstr "(dalam proses)"
#: vms-alpha.c:8227
msgid "SYSGEN "
msgstr ""
#: vms-alpha.c:8230
+#, fuzzy
msgid "CLUSTERS_LOCKMGR "
-msgstr ""
+msgstr "kelompok"
#: vms-alpha.c:8233
+#, fuzzy
msgid "LOGICAL_NAMES "
-msgstr ""
+msgstr "logikal not"
#: vms-alpha.c:8236
msgid "SECURITY "
msgstr "KESELAMATAN "
#: vms-alpha.c:8239
+#, fuzzy
msgid "IMAGE_ACTIVATOR "
-msgstr ""
+msgstr "Bukan imej"
#: vms-alpha.c:8242
msgid "NETWORKS "
@@ -8443,8 +8586,9 @@ msgid "POSIX "
msgstr "POSIX "
#: vms-alpha.c:8266
+#, fuzzy
msgid "MULTI_PROCESSING "
-msgstr ""
+msgstr "pelbagai"
#: vms-alpha.c:8269
msgid "GALAXY "
@@ -8455,14 +8599,14 @@ msgid "*unknown* "
msgstr "*tidak diketahui* "
#: vms-alpha.c:8288 vms-alpha.c:8575
-#, c-format
+#, fuzzy, c-format
msgid "cannot read EIHA\n"
-msgstr ""
+msgstr "Tidak Dapat Baca"
#: vms-alpha.c:8291
-#, c-format
+#, fuzzy, c-format
msgid "Image activation: (size=%u)\n"
-msgstr ""
+msgstr "Saiz blok=%u (log=%u)\n"
#: vms-alpha.c:8294
#, c-format
@@ -8490,44 +8634,44 @@ msgid " Shared image : 0x%08x 0x%08x\n"
msgstr ""
#: vms-alpha.c:8321
-#, c-format
+#, fuzzy, c-format
msgid "cannot read EIHI\n"
-msgstr ""
+msgstr "Tidak Dapat Baca"
#: vms-alpha.c:8325
-#, c-format
+#, fuzzy, c-format
msgid "Image identification: (major: %u, minor: %u)\n"
-msgstr ""
+msgstr "Menyimpan imej “%s†(%u/%u)"
#: vms-alpha.c:8331
-#, c-format
+#, fuzzy, c-format
msgid " image name : %.*s\n"
-msgstr ""
+msgstr "Nama peta imej"
#: vms-alpha.c:8332
-#, c-format
+#, fuzzy, c-format
msgid " link time : %s\n"
-msgstr ""
+msgstr "Pautan %s terpilih %s"
#: vms-alpha.c:8337
-#, c-format
+#, fuzzy, c-format
msgid " image ident : %.*s\n"
-msgstr ""
+msgstr "IDENT: disambungkan kepada %s:%u"
#: vms-alpha.c:8341
-#, c-format
+#, fuzzy, c-format
msgid " linker ident : %.*s\n"
-msgstr ""
+msgstr "IDENT: disambungkan kepada %s:%u"
#: vms-alpha.c:8345
-#, c-format
+#, fuzzy, c-format
msgid " image build ident: %.*s\n"
-msgstr ""
+msgstr "IDENT: disambungkan kepada %s:%u"
#: vms-alpha.c:8354
-#, c-format
+#, fuzzy, c-format
msgid "cannot read EIHS\n"
-msgstr ""
+msgstr "Tidak Dapat Baca"
#: vms-alpha.c:8358
#, c-format
@@ -8550,9 +8694,9 @@ msgid " debug module table : vbn: %u, size: %u\n"
msgstr ""
#: vms-alpha.c:8387
-#, c-format
+#, fuzzy, c-format
msgid "cannot read EISD\n"
-msgstr ""
+msgstr "Tidak Dapat Baca"
#: vms-alpha.c:8398
#, c-format
@@ -8565,14 +8709,14 @@ msgid " section: base: 0x%08x%08x size: 0x%08x\n"
msgstr ""
#: vms-alpha.c:8411
-#, c-format
+#, fuzzy, c-format
msgid " flags: 0x%04x"
-msgstr ""
+msgstr "(0x%04x, '%s'): "
#: vms-alpha.c:8449
-#, c-format
+#, fuzzy, c-format
msgid " vbn: %u, pfc: %u, matchctl: %u type: %u ("
-msgstr ""
+msgstr "Satu integer biasa tidak bertanda tangan, jenis 'u'"
#: vms-alpha.c:8455
msgid "NORMAL"
@@ -8603,24 +8747,24 @@ msgid ")\n"
msgstr ""
#: vms-alpha.c:8483
-#, c-format
+#, fuzzy, c-format
msgid " ident: 0x%08x, name: %.*s\n"
-msgstr ""
+msgstr "IDENT: recvline() gagal: %s."
#: vms-alpha.c:8494
-#, c-format
+#, fuzzy, c-format
msgid "cannot read DMT\n"
-msgstr ""
+msgstr "Tidak Dapat Baca"
#: vms-alpha.c:8498
-#, c-format
+#, fuzzy, c-format
msgid "Debug module table:\n"
-msgstr ""
+msgstr "Ruang jadual"
#: vms-alpha.c:8507
-#, c-format
+#, fuzzy, c-format
msgid "cannot read DMT header\n"
-msgstr ""
+msgstr "Gagal membaca pengepala QTIF"
#: vms-alpha.c:8513
#, c-format
@@ -8628,9 +8772,9 @@ msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n"
msgstr ""
#: vms-alpha.c:8523
-#, c-format
+#, fuzzy, c-format
msgid "cannot read DMT psect\n"
-msgstr ""
+msgstr "Tak dalat membaca CD: %s"
#: vms-alpha.c:8527
#, c-format
@@ -8638,19 +8782,19 @@ msgid " psect start: 0x%08x, length: %u\n"
msgstr ""
#: vms-alpha.c:8540
-#, c-format
+#, fuzzy, c-format
msgid "cannot read DST\n"
-msgstr ""
+msgstr "Tidak Dapat Baca"
#: vms-alpha.c:8550
-#, c-format
+#, fuzzy, c-format
msgid "cannot read GST\n"
-msgstr ""
+msgstr "profil-gst"
#: vms-alpha.c:8554
-#, c-format
+#, fuzzy, c-format
msgid "Global symbol table:\n"
-msgstr ""
+msgstr "Simbol"
#: vms-alpha.c:8581
#, c-format
@@ -8658,14 +8802,14 @@ msgid "Image activator fixup: (major: %u, minor: %u)\n"
msgstr ""
#: vms-alpha.c:8585
-#, c-format
+#, fuzzy, c-format
msgid " iaflink : 0x%08x %08x\n"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:8589
-#, c-format
+#, fuzzy, c-format
msgid " fixuplnk: 0x%08x %08x\n"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:8592
#, c-format
@@ -8673,9 +8817,9 @@ msgid " size : %u\n"
msgstr " saiz : %u\n"
#: vms-alpha.c:8594
-#, c-format
+#, fuzzy, c-format
msgid " flags: 0x%08x\n"
-msgstr ""
+msgstr "Ralat DDE %08x tidak diketahui"
#: vms-alpha.c:8599
#, c-format
@@ -8708,9 +8852,9 @@ msgid " shlextra : %5u, permctx : %5u\n"
msgstr ""
#: vms-alpha.c:8622
-#, c-format
+#, fuzzy, c-format
msgid " base_va : 0x%08x\n"
-msgstr ""
+msgstr "Penyahkod video VA-API"
#: vms-alpha.c:8624
#, c-format
@@ -8718,9 +8862,9 @@ msgid " lppsbfixoff: %5u\n"
msgstr ""
#: vms-alpha.c:8631
-#, c-format
+#, fuzzy, c-format
msgid " Shareable images:\n"
-msgstr ""
+msgstr "Senarai Main Boleh Kongsi (%s)"
#: vms-alpha.c:8642
#, c-format
@@ -8728,14 +8872,14 @@ msgid " %u: size: %u, flags: 0x%02x, name: %.*s\n"
msgstr ""
#: vms-alpha.c:8649
-#, c-format
+#, fuzzy, c-format
msgid " quad-word relocation fixups:\n"
-msgstr ""
+msgstr "Anak Panah Quad"
#: vms-alpha.c:8655
-#, c-format
+#, fuzzy, c-format
msgid " long-word relocation fixups:\n"
-msgstr ""
+msgstr "perkataan"
#: vms-alpha.c:8661
#, c-format
@@ -8743,24 +8887,24 @@ msgid " quad-word .address reference fixups:\n"
msgstr ""
#: vms-alpha.c:8666
-#, c-format
+#, fuzzy, c-format
msgid " long-word .address reference fixups:\n"
-msgstr ""
+msgstr "Panjang %u terlalu panjang untuk alamat"
#: vms-alpha.c:8671
-#, c-format
+#, fuzzy, c-format
msgid " Code Address Reference Fixups:\n"
-msgstr ""
+msgstr "Rujukan(en)"
#: vms-alpha.c:8676
-#, c-format
+#, fuzzy, c-format
msgid " Linkage Pairs Reference Fixups:\n"
-msgstr ""
+msgstr "Pasangan AT"
#: vms-alpha.c:8684
-#, c-format
+#, fuzzy, c-format
msgid " Change Protection (%u entries):\n"
-msgstr ""
+msgstr "Sebuah penyimpan buku catatan yang berguna, menyimpan %u masukan."
#: vms-alpha.c:8693
#, c-format
@@ -8770,8 +8914,9 @@ msgstr ""
#. FIXME: we do not yet support relocatable link. It is not obvious
#. how to do it for debug infos.
#: vms-alpha.c:9570
+#, fuzzy
msgid "%P: relocatable link is not supported\n"
-msgstr ""
+msgstr "Skema boleh letak semula"
#: vms-alpha.c:9641
#, c-format
@@ -8779,9 +8924,9 @@ msgid "%P: multiple entry points: in modules %pB and %pB\n"
msgstr ""
#: vms-lib.c:1530
-#, c-format
+#, fuzzy, c-format
msgid "could not open shared image '%s' from '%s'"
-msgstr ""
+msgstr "Tidak dapat membuka penukar dari \"%s\" ke \"%s\""
#: vms-misc.c:374
msgid "_bfd_vms_output_counted called with zero bytes"
@@ -8802,9 +8947,9 @@ msgid "%pB: XCOFF shared object when not producing XCOFF output"
msgstr ""
#: xcofflink.c:902
-#, c-format
+#, fuzzy, c-format
msgid "%pB: dynamic object with no .loader section"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: xcofflink.c:1484
#, c-format
@@ -8837,19 +8982,19 @@ msgid "%pB: TOC entry `%s' has a R_TLSMLrelocation not targeting itself"
msgstr ""
#: xcofflink.c:1776
-#, c-format
+#, fuzzy, c-format
msgid "%pB: csect `%s' not in enclosing section"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: xcofflink.c:1885
-#, c-format
+#, fuzzy, c-format
msgid "%pB: misplaced XTY_LD `%s'"
-msgstr ""
+msgstr "%s Pb"
#: xcofflink.c:2228
-#, c-format
+#, fuzzy, c-format
msgid "%pB: reloc %s:%<PRId64> not in csect"
-msgstr ""
+msgstr "%s Pb"
#: xcofflink.c:3337
#, c-format
@@ -8862,13 +9007,14 @@ msgid "%s: no such symbol"
msgstr "%s: tiada simbol sedemikian"
#: xcofflink.c:3494
-#, c-format
+#, fuzzy, c-format
msgid "warning: attempt to export undefined symbol `%s'"
-msgstr ""
+msgstr "amaran: pembolehubah tidak dinyatakan `%.*s'"
#: xcofflink.c:3842
+#, fuzzy
msgid "error: undefined symbol __rtinit"
-msgstr ""
+msgstr "simbol permulaan %s tidak ditakrifkan"
#: xcofflink.c:4855
#, c-format
@@ -8876,9 +9022,9 @@ msgid "%pB: Unable to find a stub csect in rangeof relocation at %#<PRIx64> targ
msgstr ""
#: xcofflink.c:4884
-#, c-format
+#, fuzzy, c-format
msgid "%pB: Cannot create stub entry '%s'"
-msgstr ""
+msgstr "%s: Tak dapat mencipta symlink ke %s"
#: xcofflink.c:5004
msgid "TOC overflow during stub generation; try -mminimal-toc when compiling"
@@ -8890,9 +9036,9 @@ msgid "%pB: loader reloc in unrecognized section `%s'"
msgstr ""
#: xcofflink.c:5084
-#, c-format
+#, fuzzy, c-format
msgid "%pB: `%s' in loader reloc but not loader sym"
-msgstr ""
+msgstr "Ralat dalaman pada pemuat GIF (%s)"
#: xcofflink.c:5101
#, c-format
@@ -8905,34 +9051,35 @@ msgid "TOC overflow: %#<PRIx64> > 0x10000; try -mminimal-toc when compiling"
msgstr ""
#: xcofflink.c:7296
-#, c-format
+#, fuzzy, c-format
msgid "Unable to link input file: %s"
-msgstr ""
+msgstr "menutup fail input %s"
#: xtensa-dynconfig.c:60
+#, fuzzy
msgid "Unable to load DLL."
-msgstr ""
+msgstr "Tidak boleh muatkan lokasi"
#: xtensa-dynconfig.c:86
-#, c-format
+#, fuzzy, c-format
msgid "%s is defined but could not be loaded: %s"
-msgstr ""
+msgstr "Fail '%s' tidak dapat dimuatkan."
#: xtensa-dynconfig.c:102
-#, c-format
+#, fuzzy, c-format
msgid "%s is loaded but symbol \"%s\" is not found: %s"
-msgstr ""
+msgstr "simbol tidak dijumpai di dalam pengeluaran: %.*s"
#: xtensa-dynconfig.c:115
-#, c-format
+#, fuzzy, c-format
msgid "%s is defined but plugin support is disabled"
-msgstr ""
+msgstr "Gagal memulakan perkhidmatan Penjejak: %s. Pemalam dilumpuhkan."
#. Not fatal, this callback cannot fail.
#: elfnn-aarch64.c:2878 elfnn-riscv.c:5739
-#, c-format
+#, fuzzy, c-format
msgid "unknown attribute for symbol `%s': 0x%02x"
-msgstr ""
+msgstr "Vendor GPU anda tidak diketahui: %s (0x%X)"
#: elfnn-aarch64.c:5468
#, c-format
@@ -8997,61 +9144,61 @@ msgid "%pB(%pA+%#<PRIx64>): unresolvable %s relocation in section `%s'"
msgstr ""
#: elfnn-kvx.c:2850
-#, c-format
+#, fuzzy, c-format
msgid "%s: Bad ELF id: `%d'"
-msgstr ""
+msgstr "%s: ofset teruk pada halaman %d\n"
#: elfnn-kvx.c:2905
-#, c-format
+#, fuzzy, c-format
msgid "%s: compiled as 32-bit object and %s is 64-bit"
-msgstr ""
+msgstr "Dikompil oleh %s pada %s (%s)\n"
#: elfnn-kvx.c:2908
-#, c-format
+#, fuzzy, c-format
msgid "%s: compiled as 64-bit object and %s is 32-bit"
-msgstr ""
+msgstr "Dikompil oleh %s pada %s (%s)\n"
#: elfnn-kvx.c:2910
-#, c-format
+#, fuzzy, c-format
msgid "%s: object size does not match that of target %s"
-msgstr ""
+msgstr "Direktori sasaran \"%s\" tidak wujud"
#. Ignore init flag - it may not be set, despite the flags field
#. containing valid data.
#: elfnn-kvx.c:2998
-#, c-format
+#, fuzzy, c-format
msgid "Private flags = 0x%lx : "
-msgstr ""
+msgstr "[find_call] %s: 0x%lx ke 0x%lx\n"
#: elfnn-kvx.c:3002
-#, c-format
+#, fuzzy, c-format
msgid "Coolidge (kv3) V1 64 bits"
-msgstr ""
+msgstr "64 bit"
#: elfnn-kvx.c:3004
-#, c-format
+#, fuzzy, c-format
msgid "Coolidge (kv3) V2 64 bits"
-msgstr ""
+msgstr "64 bit"
#: elfnn-kvx.c:3006
-#, c-format
+#, fuzzy, c-format
msgid "Coolidge (kv4) V1 64 bits"
-msgstr ""
+msgstr "64 bit"
#: elfnn-kvx.c:3011
-#, c-format
+#, fuzzy, c-format
msgid "Coolidge (kv3) V1 32 bits"
-msgstr ""
+msgstr "Himpun data dengan 32 bit"
#: elfnn-kvx.c:3013
-#, c-format
+#, fuzzy, c-format
msgid "Coolidge (kv3) V2 32 bits"
-msgstr ""
+msgstr "Himpun data dengan 32 bit"
#: elfnn-kvx.c:3015
-#, c-format
+#, fuzzy, c-format
msgid "Coolidge (kv4) V1 32 bits"
-msgstr ""
+msgstr "Himpun data dengan 32 bit"
#: elfnn-kvx.c:3847
#, c-format
@@ -9076,8 +9223,9 @@ msgid "%pB: can't link different ABI object."
msgstr ""
#: elfnn-loongarch.c:726
+#, fuzzy
msgid "Internal error: unreachable."
-msgstr ""
+msgstr "Ralat dalaman: Ralat tidak diketahui"
#: elfnn-loongarch.c:906
#, c-format
@@ -9085,8 +9233,9 @@ msgid "%pB:(%pA+%#lx): relocation %s against `%s` can not be used when making %s
msgstr ""
#: elfnn-loongarch.c:910
+#, fuzzy
msgid " and check the symbol visibility"
-msgstr ""
+msgstr "Simbol"
#: elfnn-loongarch.c:1036
#, c-format
@@ -9153,9 +9302,9 @@ msgid "%%pcrel_lo overflow with an addend, the value of %%pcrel_hi is 0x%<PRIx64
msgstr ""
#: elfnn-riscv.c:2156
-#, c-format
+#, fuzzy, c-format
msgid "%pcrel_lo overflow with an addend"
-msgstr ""
+msgstr "Rekod melimpah"
#: elfnn-riscv.c:2639
#, c-format
@@ -9191,9 +9340,9 @@ msgid "%pcrel_lo section symbol with an addend"
msgstr ""
#: elfnn-riscv.c:2923
-#, c-format
+#, fuzzy, c-format
msgid "%tlsdesc_lo with addend"
-msgstr ""
+msgstr "Tambah _Lokasi...:"
#: elfnn-riscv.c:3156
#, c-format
@@ -9201,20 +9350,24 @@ msgid "%%X%%P: unresolvable %s relocation against symbol `%s'\n"
msgstr ""
#: elfnn-riscv.c:3191
+#, fuzzy
msgid "%X%P: internal error: out of range error\n"
-msgstr ""
+msgstr "ralat dalaman X: %s\n"
#: elfnn-riscv.c:3196
+#, fuzzy
msgid "%X%P: internal error: unsupported relocation error\n"
-msgstr ""
+msgstr "ralat dalaman X: %s\n"
#: elfnn-riscv.c:3202
+#, fuzzy
msgid "dangerous relocation error"
-msgstr ""
+msgstr "Fail berpontensi bahaya"
#: elfnn-riscv.c:3208
+#, fuzzy
msgid "%X%P: internal error: unknown error\n"
-msgstr ""
+msgstr "Ralat dalaman: Ralat tidak diketahui"
#: elfnn-riscv.c:3785
#, c-format
@@ -9251,9 +9404,9 @@ msgid "error: %pB use %u-byte stack aligned but the output use %u-byte stack ali
msgstr ""
#: elfnn-riscv.c:4238
-#, c-format
+#, fuzzy, c-format
msgid "%pB: can't link %s modules with %s modules"
-msgstr ""
+msgstr "Tidak dapat awalkan modul berdaftar PKCS#11: %s"
#: elfnn-riscv.c:4248
#, c-format
@@ -9271,9 +9424,9 @@ msgid "%pB: relocation %s against non-absolute symbol `%s' can not be used in RV
msgstr ""
#: peXXigen.c:161
-#, c-format
+#, fuzzy, c-format
msgid "%pB: unable to find name for empty section"
-msgstr ""
+msgstr "Pemasangan: Tidak jumpa nama folder yang sesuai untuk $1"
#: peXXigen.c:188
#, c-format
@@ -9291,9 +9444,9 @@ msgid "%pB:%.8s: section below image base"
msgstr ""
#: peXXigen.c:929
-#, c-format
+#, fuzzy, c-format
msgid "%pB:%.8s: RVA truncated"
-msgstr ""
+msgstr "DIPANGKAS"
#: peXXigen.c:1061
#, c-format
@@ -9305,60 +9458,74 @@ msgid "Export Directory [.edata (or where ever we found it)]"
msgstr ""
#: peXXigen.c:1228
+#, fuzzy
msgid "Import Directory [parts of .idata]"
-msgstr ""
+msgstr "bahagian"
#: peXXigen.c:1229
+#, fuzzy
msgid "Resource Directory [.rsrc]"
-msgstr ""
+msgstr "Sumber pada \"%s\" bukan satu direktori"
#: peXXigen.c:1230
+#, fuzzy
msgid "Exception Directory [.pdata]"
-msgstr ""
+msgstr "Maklumat pengecualian:"
#: peXXigen.c:1231
+#, fuzzy
msgid "Security Directory"
-msgstr ""
+msgstr "KESELAMATAN "
#: peXXigen.c:1232
+#, fuzzy
msgid "Base Relocation Directory [.reloc]"
-msgstr ""
+msgstr "_Pangkalan Direktori:"
#: peXXigen.c:1233
+#, fuzzy
msgid "Debug Directory"
-msgstr ""
+msgstr "gagal mengemaskini offset fail dalam direktori nyahpijat"
#: peXXigen.c:1234
+#, fuzzy
msgid "Description Directory"
-msgstr ""
+msgstr "Keterangan"
#: peXXigen.c:1235
+#, fuzzy
msgid "Special Directory"
-msgstr ""
+msgstr "SPECIAL"
#: peXXigen.c:1236
+#, fuzzy
msgid "Thread Storage Directory [.tls]"
-msgstr ""
+msgstr "Gagal memulakan benang: ralat menulis TLS."
#: peXXigen.c:1237
+#, fuzzy
msgid "Load Configuration Directory"
-msgstr ""
+msgstr "Muatkan item tambahan konfigurasi"
#: peXXigen.c:1238
+#, fuzzy
msgid "Bound Import Directory"
-msgstr ""
+msgstr "Import direktori"
#: peXXigen.c:1239
+#, fuzzy
msgid "Import Address Table Directory"
-msgstr ""
+msgstr "Import direktori"
#: peXXigen.c:1240
+#, fuzzy
msgid "Delay Import Directory"
-msgstr ""
+msgstr "Import direktori"
#: peXXigen.c:1241
+#, fuzzy
msgid "CLR Runtime Header"
-msgstr ""
+msgstr "Masa Jalan"
#: peXXigen.c:1242
msgid "Reserved"
@@ -9372,18 +9539,18 @@ msgid ""
msgstr ""
#: peXXigen.c:1313
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"There is an import table in %s, but that section has no contents\n"
-msgstr ""
+msgstr "Jadual %s telah dipindahkan ke %s."
#: peXXigen.c:1320
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"There is an import table in %s at 0x%lx\n"
-msgstr ""
+msgstr "[find_call] %s: 0x%lx ke 0x%lx\n"
#: peXXigen.c:1326
#, c-format
@@ -9400,11 +9567,11 @@ msgid ""
msgstr ""
#: peXXigen.c:1378
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"\tDLL Name: %.*s\n"
-msgstr ""
+msgstr "Nama: %s, EntitiID: %s"
#: peXXigen.c:1394
#, c-format
@@ -9419,9 +9586,9 @@ msgid ""
msgstr ""
#: peXXigen.c:1469 peXXigen.c:1514
-#, c-format
+#, fuzzy, c-format
msgid "\t<corrupt: 0x%08lx>"
-msgstr ""
+msgstr "Eksponen: 0x"
#: peXXigen.c:1608
#, c-format
@@ -9438,18 +9605,18 @@ msgid ""
msgstr ""
#: peXXigen.c:1629
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"There is an export table in %s, but contents cannot be read\n"
-msgstr ""
+msgstr "Tidak dapat menyediakan kandungan sebagai \"%s\""
#: peXXigen.c:1635
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"There is an export table in %s at 0x%lx\n"
-msgstr ""
+msgstr "[find_call] %s: 0x%lx ke 0x%lx\n"
#: peXXigen.c:1666
#, c-format
@@ -9460,19 +9627,19 @@ msgid ""
msgstr ""
#: peXXigen.c:1670
-#, c-format
+#, fuzzy, c-format
msgid "Export Flags \t\t\t%lx\n"
-msgstr ""
+msgstr "Eksport"
#: peXXigen.c:1673
-#, c-format
+#, fuzzy, c-format
msgid "Time/Date stamp \t\t%lx\n"
-msgstr ""
+msgstr "Setem Tarikh GPS"
#: peXXigen.c:1677
-#, c-format
+#, fuzzy, c-format
msgid "Major/Minor \t\t\t%d/%d\n"
-msgstr ""
+msgstr "Penggunaan: %s [OPSYEN]... NAMA JENIS [MAJOR MINOR]\n"
#: peXXigen.c:1680
#, c-format
@@ -9480,9 +9647,9 @@ msgid "Name \t\t\t\t"
msgstr "Nama \t\t\t\t"
#: peXXigen.c:1691
-#, c-format
+#, fuzzy, c-format
msgid "Ordinal Base \t\t\t%ld\n"
-msgstr ""
+msgstr "ordinal"
#: peXXigen.c:1694
#, c-format
@@ -9490,34 +9657,34 @@ msgid "Number in:\n"
msgstr "Nombor dalam:\n"
#: peXXigen.c:1697
-#, c-format
+#, fuzzy, c-format
msgid "\tExport Address Table \t\t%08lx\n"
-msgstr ""
+msgstr "Eksport"
#: peXXigen.c:1701
-#, c-format
+#, fuzzy, c-format
msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
-msgstr ""
+msgstr "Nama jadual adalah kosong!"
#: peXXigen.c:1704
-#, c-format
+#, fuzzy, c-format
msgid "Table Addresses\n"
-msgstr ""
+msgstr "Alamat:"
#: peXXigen.c:1707
-#, c-format
+#, fuzzy, c-format
msgid "\tExport Address Table \t\t"
-msgstr ""
+msgstr "Eksport"
#: peXXigen.c:1712
-#, c-format
+#, fuzzy, c-format
msgid "\tName Pointer Table \t\t"
-msgstr ""
+msgstr "Nama jadual adalah kosong!"
#: peXXigen.c:1717
-#, c-format
+#, fuzzy, c-format
msgid "\tOrdinal Table \t\t\t"
-msgstr ""
+msgstr "ordinal"
#: peXXigen.c:1731
#, c-format
@@ -9532,12 +9699,14 @@ msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n"
msgstr ""
#: peXXigen.c:1760
+#, fuzzy
msgid "Forwarder RVA"
-msgstr ""
+msgstr "Jenis Saiz Rva Offset\n"
#: peXXigen.c:1772
+#, fuzzy
msgid "Export RVA"
-msgstr ""
+msgstr "Jenis Saiz Rva Offset\n"
#: peXXigen.c:1779
#, c-format
@@ -9618,34 +9787,34 @@ msgid "\treloc %4d offset %4x [%4lx] %s"
msgstr ""
#: peXXigen.c:2276
-#, c-format
+#, fuzzy, c-format
msgid "%03x %*.s Entry: "
-msgstr ""
+msgstr "Masukan EXIF '%s' "
#: peXXigen.c:2300
-#, c-format
+#, fuzzy, c-format
msgid "name: [val: %08lx len %d]: "
-msgstr ""
+msgstr "Ralat membaca dari klien, len = %d\n"
#: peXXigen.c:2320
-#, c-format
+#, fuzzy, c-format
msgid "<corrupt string length: %#x>\n"
-msgstr ""
+msgstr "-X <rentetan>"
#: peXXigen.c:2330
-#, c-format
+#, fuzzy, c-format
msgid "<corrupt string offset: %#lx>\n"
-msgstr ""
+msgstr "ofset"
#: peXXigen.c:2335
#, c-format
msgid "ID: %#08lx"
-msgstr ""
+msgstr "ID: %#08lx"
#: peXXigen.c:2338
-#, c-format
+#, fuzzy, c-format
msgid ", Value: %#08lx\n"
-msgstr ""
+msgstr "nilai"
#: peXXigen.c:2360
#, c-format
@@ -9653,9 +9822,9 @@ msgid "%03x %*.s Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n"
msgstr ""
#: peXXigen.c:2402
-#, c-format
+#, fuzzy, c-format
msgid "<unknown directory type: %d>\n"
-msgstr ""
+msgstr "Jenis objek tak diketahui %d\n"
#: peXXigen.c:2410
#, c-format
@@ -9663,9 +9832,9 @@ msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n"
msgstr ""
#: peXXigen.c:2498
-#, c-format
+#, fuzzy, c-format
msgid "Corrupt .rsrc section detected!\n"
-msgstr ""
+msgstr "Fail rosak?"
#: peXXigen.c:2522
#, c-format
@@ -9680,9 +9849,9 @@ msgid " String table starts at offset: %#03x\n"
msgstr ""
#: peXXigen.c:2531
-#, c-format
+#, fuzzy, c-format
msgid " Resources start at offset: %#03x\n"
-msgstr ""
+msgstr "Mulakan Offset"
#: peXXigen.c:2588
#, c-format
@@ -9692,11 +9861,11 @@ msgid ""
msgstr ""
#: peXXigen.c:2594
-#, c-format
+#, fuzzy, c-format
msgid ""
"\n"
"There is a debug directory in %s, but that section has no contents\n"
-msgstr ""
+msgstr "Gagal memproses laporan nyahpijat, meninggalkan fail dalam direktori \"%s\"."
#: peXXigen.c:2601
#, c-format
@@ -9712,6 +9881,9 @@ msgid ""
"There is a debug directory in %s at 0x%lx\n"
"\n"
msgstr ""
+"\n"
+"Terdapat direktori nyahpepijat dalam %s pada 0x%lx\n"
+"\n"
#: peXXigen.c:2613
#, c-format
@@ -9721,7 +9893,7 @@ msgstr ""
#: peXXigen.c:2618
#, c-format
msgid "Type Size Rva Offset\n"
-msgstr ""
+msgstr "Jenis Saiz Rva Offset\n"
#: peXXigen.c:2666
#, c-format
@@ -9742,6 +9914,8 @@ msgid ""
"\n"
"Characteristics 0x%x\n"
msgstr ""
+"\n"
+"Ciri-ciri 0x%x\n"
#: peXXigen.c:3047
#, c-format
@@ -9750,12 +9924,12 @@ msgstr ""
#: peXXigen.c:3088
msgid "failed to update file offsets in debug directory"
-msgstr ""
+msgstr "gagal mengemaskini offset fail dalam direktori nyahpijat"
#: peXXigen.c:3097
#, c-format
msgid "%pB: failed to read debug data section"
-msgstr ""
+msgstr "%pB: gagal membaca bahagian data nyahpepijat"
#: peXXigen.c:3900
#, c-format
diff --git a/bfd/po/sr.po b/bfd/po/sr.po
index 274676b..20faead 100644
--- a/bfd/po/sr.po
+++ b/bfd/po/sr.po
@@ -1,14 +1,14 @@
# Serbian translation of bfd.
# Copyright © 2014 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
-# МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>, 2016-2024.
+# МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>, 2016-2025.
#
msgid ""
msgstr ""
-"Project-Id-Version: bfd-2.42.90\n"
+"Project-Id-Version: bfd-2.43.90\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2024-07-20 12:56+0100\n"
-"PO-Revision-Date: 2024-12-16 21:50+0100\n"
+"POT-Creation-Date: 2025-01-19 12:19+0000\n"
+"PO-Revision-Date: 2025-03-02 16:32+0100\n"
"Last-Translator: МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n"
"Language: sr\n"
@@ -39,76 +39,76 @@ msgstr "%pB: увезен је лош Ñнимак премештања: %d"
msgid "%pB: %#<PRIx64> overflows header %s field"
msgstr "%pB: %#<PRIx64> прекорачује заглавље „%s“ поља"
-#: aoutx.h:1277 aoutx.h:1606 pdp11.c:1253 pdp11.c:1502
+#: aoutx.h:1269 aoutx.h:1598 pdp11.c:1246 pdp11.c:1495
#, c-format
msgid "%pB: can not represent section `%pA' in a.out object file format"
msgstr "%pB: не могу да предÑтавим одељак „%pA“ у „a.out“ запиÑу датотеке објекта"
-#: aoutx.h:1570 pdp11.c:1474
+#: aoutx.h:1562 pdp11.c:1467
#, c-format
msgid "%pB: can not represent section for symbol `%s' in a.out object file format"
msgstr "%pB: не могу да предÑтавим одељак за Ñимбол „%s“ у „a.out“ запиÑу датотеке објекта"
-#: aoutx.h:1573 vms-alpha.c:8472
+#: aoutx.h:1565 vms-alpha.c:8473
msgid "*unknown*"
msgstr "*непознато*"
-#: aoutx.h:1709 pdp11.c:1570
+#: aoutx.h:1701 pdp11.c:1563
#, c-format
msgid "%pB: invalid string offset %<PRIu64> >= %<PRIu64>"
msgstr "%pB: неиÑправан померај ниÑке „%<PRIu64> >= %<PRIu64>“"
-#: aoutx.h:1953
+#: aoutx.h:1945
#, c-format
msgid "%pB: unsupported AOUT relocation size: %d"
msgstr "%pB: неподржана величина „AOUT“ премештања: %d"
-#: aoutx.h:2397 aoutx.h:2415 pdp11.c:2047
+#: aoutx.h:2389 aoutx.h:2407 pdp11.c:2040
#, c-format
msgid "%pB: attempt to write out unknown reloc type"
msgstr "%pB: покушавам да запишем непознату врÑту премештања"
-#: aoutx.h:4055 pdp11.c:3416
+#: aoutx.h:4047 pdp11.c:3409
#, c-format
msgid "%pB: unsupported relocation type"
msgstr "%pB: врÑта премештања није подржана"
#. Unknown relocation.
-#: aoutx.h:4375 coff-alpha.c:601 coff-mips.c:356 coff-rs6000.c:3050
+#: aoutx.h:4367 coff-alpha.c:601 coff-mips.c:356 coff-rs6000.c:3037
#: 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:4687
+#: elf-hppa.h:826 elf-m10200.c:226 elf-m10300.c:813 elf32-arc.c:531
+#: elf32-arm.c:1985 elf32-avr.c:957 elf32-bfin.c:1063 elf32-bfin.c:4686
#: elf32-cr16.c:654 elf32-cr16.c:684 elf32-cris.c:467 elf32-crx.c:429
#: elf32-csky.c:991 elf32-d10v.c:234 elf32-d30v.c:522 elf32-d30v.c:544
-#: elf32-dlx.c:546 elf32-epiphany.c:373 elf32-fr30.c:381 elf32-frv.c:2559
-#: elf32-frv.c:6241 elf32-ft32.c:304 elf32-h8300.c:302 elf32-i386.c:394
-#: elf32-ip2k.c:1241 elf32-iq2000.c:442 elf32-lm32.c:496 elf32-m32c.c:305
-#: elf32-m32r.c:1286 elf32-m32r.c:1311 elf32-m32r.c:2210 elf32-m68hc11.c:390
+#: elf32-dlx.c:546 elf32-epiphany.c:373 elf32-fr30.c:381 elf32-frv.c:2558
+#: elf32-frv.c:6240 elf32-ft32.c:304 elf32-h8300.c:302 elf32-i386.c:394
+#: elf32-ip2k.c:1241 elf32-iq2000.c:442 elf32-lm32.c:495 elf32-m32c.c:305
+#: elf32-m32r.c:1286 elf32-m32r.c:1311 elf32-m32r.c:2209 elf32-m68hc11.c:390
#: elf32-m68hc12.c:510 elf32-m68k.c:354 elf32-mcore.c:354 elf32-mcore.c:440
#: elf32-mep.c:385 elf32-metag.c:871 elf32-microblaze.c:708
-#: elf32-microblaze.c:1020 elf32-mips.c:2242 elf32-moxie.c:137
-#: elf32-msp430.c:737 elf32-msp430.c:747 elf32-mt.c:241 elf32-nds32.c:3288
-#: elf32-nds32.c:3309 elf32-nds32.c:5079 elf32-nios2.c:3017 elf32-or1k.c:1087
-#: elf32-pj.c:326 elf32-ppc.c:900 elf32-ppc.c:913 elf32-pru.c:423
-#: elf32-rl78.c:291 elf32-rx.c:324 elf32-rx.c:333 elf32-s12z.c:296
-#: elf32-s390.c:347 elf32-score.c:2383 elf32-score7.c:2224 elf32-sh.c:437
-#: elf32-spu.c:163 elf32-tic6x.c:1498 elf32-tic6x.c:1508 elf32-tic6x.c:1527
-#: elf32-tic6x.c:1537 elf32-tic6x.c:2583 elf32-tilepro.c:792 elf32-v850.c:1902
-#: elf32-v850.c:1924 elf32-v850.c:4250 elf32-vax.c:288 elf32-visium.c:481
-#: elf32-wasm32.c:105 elf32-xgate.c:418 elf32-xstormy16.c:395
-#: elf32-xtensa.c:510 elf32-xtensa.c:544 elf32-z80.c:331 elf64-alpha.c:1114
-#: elf64-alpha.c:4057 elf64-alpha.c:4205 elf64-bpf.c:132 elf64-ia64-vms.c:255
-#: elf64-ia64-vms.c:3427 elf64-mips.c:3965 elf64-mips.c:3981 elf64-mmix.c:1264
+#: elf32-microblaze.c:1015 elf32-mips.c:2242 elf32-moxie.c:137
+#: elf32-msp430.c:737 elf32-msp430.c:747 elf32-mt.c:241 elf32-nds32.c:3287
+#: elf32-nds32.c:3308 elf32-nds32.c:5077 elf32-or1k.c:1085 elf32-pj.c:326
+#: elf32-ppc.c:900 elf32-ppc.c:913 elf32-pru.c:423 elf32-rl78.c:291
+#: elf32-rx.c:324 elf32-rx.c:333 elf32-s12z.c:296 elf32-s390.c:347
+#: elf32-score.c:2373 elf32-score7.c:2214 elf32-sh.c:437 elf32-spu.c:163
+#: elf32-tic6x.c:1498 elf32-tic6x.c:1508 elf32-tic6x.c:1527 elf32-tic6x.c:1537
+#: elf32-tic6x.c:2575 elf32-tilepro.c:791 elf32-v850.c:1902 elf32-v850.c:1924
+#: elf32-v850.c:4253 elf32-vax.c:288 elf32-visium.c:481 elf32-wasm32.c:105
+#: elf32-xgate.c:418 elf32-xstormy16.c:395 elf32-xtensa.c:510
+#: elf32-xtensa.c:544 elf32-z80.c:331 elf64-alpha.c:1112 elf64-alpha.c:4055
+#: elf64-alpha.c:4203 elf64-bpf.c:132 elf64-ia64-vms.c:255
+#: elf64-ia64-vms.c:3426 elf64-mips.c:3965 elf64-mips.c:3981 elf64-mmix.c:1260
#: 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:305 elfn32-mips.c:3799
#: elfxx-ia64.c:324 elfxx-loongarch.c:1897 elfxx-riscv.c:1062 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:3822 elfnn-kvx.c:259
+#: elfnn-aarch64.c:2313 elfnn-ia64.c:214 elfnn-ia64.c:3821 elfnn-kvx.c:259
#, c-format
msgid "%pB: unsupported relocation type %#x"
msgstr "%pB: врÑта премештања није подржана „%#x“"
-#: aoutx.h:5402 pdp11.c:3839
+#: aoutx.h:5387 pdp11.c:3825
#, c-format
msgid "%pB: relocatable link from %s to %s not supported"
msgstr "%pB: премеÑтива веза Ñа „%s“ на „%s“ није подржана"
@@ -118,24 +118,24 @@ msgstr "%pB: премеÑтива веза Ñа „%s“ на „%s“ није
msgid "%pB: cannot allocate memory for local GOT entries"
msgstr "%pB: не могу да доделим меморију за локалне „GOT“ уноÑе"
-#: archive.c:753
+#: archive.c:748
msgid "%F%P: %pB(%s): error opening thin archive member: %E\n"
msgstr "%F%P: %pB(%s): грешка отварања мајушног члана архиве: %E\n"
-#: archive.c:2294
+#: archive.c:2282
msgid "warning: writing archive was slow: rewriting timestamp"
msgstr "упозорење: ÑƒÐ¿Ð¸Ñ Ñƒ архиву је Ñпор: поново упиÑујем време"
-#: archive.c:2363 archive.c:2424 elflink.c:4930 linker.c:1436
+#: archive.c:2351 archive.c:2412 elflink.c:4931 linker.c:1452
#, c-format
msgid "%pB: plugin needed to handle lto object"
msgstr "%pB: потребан је прикључак за руковање „lto“ објектом"
-#: archive.c:2656
+#: archive.c:2644
msgid "Reading archive file mod timestamp"
msgstr "Читам време режима датотеке архиве"
-#: archive.c:2687
+#: archive.c:2675
msgid "Writing updated armap timestamp"
msgstr "УпиÑујем оÑвежено време армапа"
@@ -232,22 +232,22 @@ msgstr "грешка читања „%s“: %s"
msgid "#<invalid error code>"
msgstr "#<неиÑправан код грешке>"
-#: bfd.c:2198
+#: bfd.c:2242
#, c-format
msgid "BFD %s assertion fail %s:%d"
msgstr "„BFD“ „%s“ тврдња није уÑпела „%s“:%d"
-#: bfd.c:2211
+#: bfd.c:2255
#, c-format
msgid "%s: BFD %s internal error, aborting at %s:%d in %s\n"
msgstr "%s: унутрашња „BFD %s“ грешка, прекидам на „%s:%d“ у „%s“\n"
-#: bfd.c:2215
+#: bfd.c:2259
#, c-format
msgid "%s: BFD %s internal error, aborting at %s:%d\n"
msgstr "%s: унутрашња „BFD %s “ грешка, прекидам на „%s:%d“\n"
-#: bfd.c:2218
+#: bfd.c:2262
#, c-format
msgid "Please report this bug.\n"
msgstr "Пријавите ову грешку.\n"
@@ -271,19 +271,19 @@ msgstr "%pB: не могу да радим Ñа Ñажетим бинарним
msgid "GP relative relocation used when GP not defined"
msgstr "употребљено је релативно премештање општег показивача када није дефиниÑан"
-#: coff-alpha.c:1151 coff-z80.c:351 coff-z8k.c:214 elf32-nds32.c:13190
-#: elfxx-mips.c:13522 reloc.c:8703 reloc16.c:314
+#: coff-alpha.c:1151 coff-z80.c:351 coff-z8k.c:214 elf32-nds32.c:13188
+#: elfxx-mips.c:13509 reloc.c:8596 reloc16.c:314
#, c-format
msgid "%X%P: %pB(%pA): relocation \"%pR\" goes out of range\n"
msgstr "%X%P: %pB(%pA): премештање „%pR“ иде ван опÑега\n"
-#: coff-alpha.c:1157 coff-z80.c:477 coff-z8k.c:378 elfxx-mips.c:13532
-#: reloc.c:8713
+#: coff-alpha.c:1157 coff-z80.c:477 coff-z8k.c:378 elfxx-mips.c:13519
+#: reloc.c:8606
#, c-format
msgid "%X%P: %pB(%pA): relocation \"%pR\" is not supported\n"
msgstr "%X%P: %pB(%pA): премештање „%pR“ није подржано\n"
-#: coff-alpha.c:1163 elfxx-mips.c:13541 reloc.c:8722
+#: coff-alpha.c:1163 elfxx-mips.c:13528 reloc.c:8615
#, c-format
msgid "%X%P: %pB(%pA): relocation \"%pR\" returns an unrecognized value %x\n"
msgstr "%X%P: %pB(%pA): премештање „%pR“ је вратило непознату вредноÑÑ‚ „%x“\n"
@@ -322,32 +322,32 @@ msgstr "%pB: неподржано „swap_aux_in“ за Ñмештајну кл
msgid "%pB: unsupported swap_aux_out for storage class %#x"
msgstr "%pB: неподржано „swap_aux_out“ за Ñмештајну клаÑу „%#x“"
-#: coff-rs6000.c:3140
+#: coff-rs6000.c:3127
#, c-format
msgid "%pB: TOC reloc at %#<PRIx64> to symbol `%s' with no TOC entry"
msgstr "%pB: премештање табеле Ñадржаја Ñа „%#<PRIx64>“ на Ñимбол „%s“ без уноÑа табеле Ñадржаја"
-#: coff-rs6000.c:3264 coff64-rs6000.c:848
+#: coff-rs6000.c:3251 coff64-rs6000.c:848
#, c-format
msgid "Unable to find the stub entry targeting %s"
msgstr "Ðе могу да нађем ÑƒÐ½Ð¾Ñ Ð¾ÐºÑ€Ð°Ñ˜Ð°Ðº који показује на „%s“"
-#: coff-rs6000.c:3379
+#: coff-rs6000.c:3366
#, c-format
msgid "%pB: TLS relocation at 0x%<PRIx64> over non-TLS symbol %s (0x%x)\n"
msgstr "%pB: ТЛС премештање на 0x%<PRIx64> преко не-ТЛС Ñимбола „%s“ (0x%x)\n"
-#: coff-rs6000.c:3392
+#: coff-rs6000.c:3379
#, c-format
msgid "%pB: TLS local relocation at 0x%<PRIx64> over imported symbol %s\n"
msgstr "%pB: ТЛС локално премештање на 0x%<PRIx64> преко увезеног Ñимбола „%s“\n"
-#: coff-rs6000.c:3798
+#: coff-rs6000.c:3785
#, c-format
msgid "%pB: relocation (%d) at 0x%<PRIx64> has wrong r_rsize (0x%x)\n"
msgstr "%pB: премештање (%d) на 0x%<PRIx64> има погрешну r_r-величину (0x%x)\n"
-#: coff-rs6000.c:4060 coff64-rs6000.c:2030
+#: coff-rs6000.c:4047 coff64-rs6000.c:2021
#, c-format
msgid "%pB: symbol `%s' has unrecognized smclas %d"
msgstr "%pB: Ñимбол „%s“ има непознату клаÑу Ñимбола „%d“"
@@ -530,41 +530,41 @@ msgstr "упозорење: %pB: локални Ñимбол „%s“ нема Ð
msgid "%pB: illegal relocation type %d at address %#<PRIx64>"
msgstr "%pB: неиÑправна врÑта премештања %d на адреÑи %#<PRIx64>"
-#: coffgen.c:255 elf.c:1030
+#: coffgen.c:255 elf.c:1033
#, c-format
msgid "%pB: unable to compress section %s"
msgstr "%pB: не могу да запакујем одељак „%s“"
-#: coffgen.c:265 elf.c:1040
+#: coffgen.c:265 elf.c:1043
#, c-format
msgid "%pB: unable to decompress section %s"
msgstr "%pB: не могу да раÑпакујем одељак „%s“"
-#: coffgen.c:1781
+#: coffgen.c:1778
#, c-format
msgid "%pB: bad string table size %<PRIu64>"
msgstr "%pB: лоша величина табеле низа %<PRIu64>"
-#: coffgen.c:1931 coffgen.c:1981 coffgen.c:2031 coffgen.c:2050 cofflink.c:2012
-#: elf.c:2288 xcofflink.c:5538
+#: coffgen.c:2162 coffgen.c:2301 cofflink.c:2012 ecoff.c:1456 elf.c:2288
+#: elf.c:2320 pef.c:214 syms.c:788 xcofflink.c:5530
msgid "<corrupt>"
msgstr "<оштећење>"
-#: coffgen.c:2192
+#: coffgen.c:2191
#, c-format
msgid "<corrupt info> %s"
msgstr "<оштећени подаци> %s"
-#: coffgen.c:2796 elflink.c:15466 linker.c:2987
+#: coffgen.c:2797 elflink.c:15435 linker.c:3011
msgid "%F%P: already_linked_table: %E\n"
msgstr "%F%P: већ_повезана_табела: %E\n"
-#: coffgen.c:3138 elflink.c:14404
+#: coffgen.c:3139 elflink.c:14375
#, c-format
msgid "removing unused section '%pA' in file '%pB'"
msgstr "уклањам некоришћени одељак „%pA“ у датотеци „%pB“"
-#: coffgen.c:3215 elflink.c:14635
+#: coffgen.c:3216 elflink.c:14606
msgid "warning: gc-sections option ignored"
msgstr "упозорење: опција „gc“ одељака је занемарена"
@@ -573,7 +573,7 @@ msgstr "упозорење: опција „gc“ одељака је занем
msgid "warning: symbol `%s' is both section and non-section"
msgstr "упозорење: Ñимбол „%s“ је и одељак и није одељак"
-#: cofflink.c:503 elf64-ia64-vms.c:5199 elflink.c:5559
+#: cofflink.c:503 elf64-ia64-vms.c:5198 elflink.c:5560
#, c-format
msgid "warning: type of symbol `%s' changed from %d to %d in %pB"
msgstr "упозорење: врÑта Ñимбола „%s“ је измењена из „%d“ у „%d“ за „%pB“"
@@ -583,7 +583,7 @@ msgstr "упозорење: врÑта Ñимбола „%s“ је измење
msgid "%pB: relocs in section `%pA', but it has no contents"
msgstr "%pB: премештања у одељку „%pA“, али нема никаквог Ñадржаја"
-#: cofflink.c:2403 elflink.c:11802
+#: cofflink.c:2403 elflink.c:11809
#, c-format
msgid "%X`%s' referenced in section `%pA' of %pB: defined in discarded section `%pA' of %pB\n"
msgstr "%X„%s“ је упутно у одељку „%pA“ од „%pB“: дефиниÑано је у одбаченом одељку „%pA“ од „%pB“\n"
@@ -601,7 +601,7 @@ msgstr "%pB: %pA: прекорачење премештања: %#x > 0xffff"
#: cofflink.c:2724
#, c-format
msgid "%pB: warning: %pA: line number overflow: %#x > 0xffff"
-msgstr "%pB: упозорење: %pA: прекорачење броја редова: %#x > 0xffff"
+msgstr "%pB: warning: %pA: line number overflow: %#x > 0xffff"
#: cofflink.c:3118
#, c-format
@@ -613,7 +613,7 @@ msgstr "%pB: погрешна адреÑа премештања %#<PRIx64> у о
msgid "%pB: %s: reloc overflow: 0x%lx > 0xffff"
msgstr "%pB: %s: прекорачење премештања: 0x%lx > 0xffff"
-#: compress.c:748 compress.c:765 libbfd.c:1329
+#: compress.c:748 compress.c:765 libbfd.c:1322
#, c-format
msgid "error: %pB(%pA) is too large (%#<PRIx64> bytes)"
msgstr "грешка: %pB(%pA) је превелико (%#<PRIx64> бајта)"
@@ -623,128 +623,128 @@ msgstr "грешка: %pB(%pA) је превелико (%#<PRIx64> бајта)"
msgid "warning: unable to update contents of %s section in %pB"
msgstr "упозорење: не могу да оÑвежим Ñадржај „%s“ одељка у %pB"
-#: dwarf2.c:705
+#: dwarf2.c:702
#, c-format
msgid "DWARF error: can't find %s section."
msgstr "„DWARF“ грешка: не могу да нађем одељак „%s“."
-#: dwarf2.c:713
+#: dwarf2.c:710
#, c-format
msgid "DWARF error: section %s has no contents"
msgstr "„DWARF“ грешка: одељак „%s“ не Ñадржи ништа"
#. PR 26946
-#: dwarf2.c:722
+#: dwarf2.c:719
#, c-format
msgid "DWARF error: section %s is too big"
msgstr "„DWARF“ грешка: одељак „%s“ је превелик"
-#: dwarf2.c:757
+#: dwarf2.c:754
#, c-format
msgid "DWARF error: offset (%<PRIu64>) greater than or equal to %s size (%<PRIu64>)"
msgstr "„DWARF“ грешка: померај (%<PRIu64>) је већи или једнак величини %s (%<PRIu64>)"
-#: dwarf2.c:1504
+#: dwarf2.c:1501
msgid "DWARF error: info pointer extends beyond end of attributes"
msgstr "„DWARF“ грешка: инфо указивач превазилази крај атрибута"
-#: dwarf2.c:1696
+#: dwarf2.c:1693
#, c-format
msgid "DWARF error: invalid or unhandled FORM value: %#x"
msgstr "„DWARF“ грешка: неиÑправна или непозната вредноÑÑ‚ „FORM“: %#x"
-#: dwarf2.c:2043
+#: dwarf2.c:2050
msgid "DWARF error: mangled line number section (bad file number)"
msgstr "„DWARF“ грешка: број реда одељка је одÑечен (лош број датотеке)"
-#: dwarf2.c:2607
+#: dwarf2.c:2614
msgid "DWARF error: zero format count"
msgstr "„DWARF“ грешка: нулти број запиÑа"
-#: dwarf2.c:2617
+#: dwarf2.c:2624
#, c-format
msgid "DWARF error: data count (%<PRIx64>) larger than buffer size"
msgstr "„DWARF“ грешка: број података (%<PRIx64>) је већи од величине међумеморије"
-#: dwarf2.c:2656
+#: dwarf2.c:2663
#, c-format
msgid "DWARF error: unknown format content type %<PRIu64>"
msgstr "„DWARF“ грешка: непозната врÑта Ñадржаја запиÑа „%<PRIu64>“"
-#: dwarf2.c:2729
+#: dwarf2.c:2736
#, c-format
msgid "DWARF error: line info section is too small (%<PRId64>)"
msgstr "„DWARF“ грешка: одељак података реда је премали (%<PRId64>)"
-#: dwarf2.c:2756
+#: dwarf2.c:2763
#, c-format
msgid "DWARF error: line info data is bigger (%#<PRIx64>) than the space remaining in the section (%#lx)"
msgstr "„DWARF“ грешка: одељак података реда је већи (%#<PRIx64>) од проÑтора преоÑталог у одељку (%#lx)"
-#: dwarf2.c:2769
+#: dwarf2.c:2776
#, c-format
msgid "DWARF error: unhandled .debug_line version %d"
msgstr "„DWARF“ грешка: необрађено „.debug_line“ издање %d"
-#: dwarf2.c:2778
+#: dwarf2.c:2785
msgid "DWARF error: ran out of room reading prologue"
msgstr "„DWARFд грешка: пнеÑтало је проÑтора читајући пролог"
-#: dwarf2.c:2794
+#: dwarf2.c:2801
#, c-format
msgid "DWARF error: line info unsupported segment selector size %u"
msgstr "„DWARF“ грешка: неподржана величина избирача подеока података реда %u"
-#: dwarf2.c:2816
+#: dwarf2.c:2823
msgid "DWARF error: invalid maximum operations per instruction"
msgstr "„DWARF“ грешка: ÐеиÑправан највећи број операција по инÑтрукцији"
-#: dwarf2.c:2828
+#: dwarf2.c:2835
msgid "DWARF error: ran out of room reading opcodes"
msgstr "„DWARFд грешка: пнеÑтало је проÑтора читајући опкодове"
-#: dwarf2.c:3005
+#: dwarf2.c:3012
msgid "DWARF error: mangled line number section"
msgstr "„DWARF“ грешка: број реда одељка је одÑечен"
-#: dwarf2.c:3476
+#: dwarf2.c:3483
msgid "DWARF error: abstract instance recursion detected"
msgstr "„DWARF“ грешка: дубачење апÑтрактног примерка је откривено"
-#: dwarf2.c:3510 dwarf2.c:3600
+#: dwarf2.c:3517 dwarf2.c:3607
msgid "DWARF error: invalid abstract instance DIE ref"
msgstr "„DWARF“ грешка: неиÑправан апÑтрактан примерак „DIE“ упуте"
-#: dwarf2.c:3526
+#: dwarf2.c:3533
#, c-format
msgid "DWARF error: unable to read alt ref %<PRIu64>"
msgstr "„DWARF“ грешка: не могу да прочитам „alt“ упуту %<PRIu64>"
-#: dwarf2.c:3578
+#: dwarf2.c:3585
#, c-format
msgid "DWARF error: unable to locate abstract instance DIE ref %<PRIu64>"
msgstr "„DWARF“ грешка: не могу да пронађем апÑтрактни примерак „DIE“ упуте %<PRIu64>"
-#: dwarf2.c:3615 dwarf2.c:3931 dwarf2.c:4504
+#: dwarf2.c:3622 dwarf2.c:3938 dwarf2.c:4511
#, c-format
msgid "DWARF error: could not find abbrev number %u"
msgstr "„DWARF“ грешка: не могу да нађем Ñкраћени број %u"
-#: dwarf2.c:4204
+#: dwarf2.c:4211
#, c-format
msgid "DWARF error: could not find variable specification at offset 0x%lx"
msgstr "„DWARF“ грешка: не могу да нађем одредбу променљиве на померају 0×%lx"
-#: dwarf2.c:4350 dwarf2.c:4604
+#: dwarf2.c:4357 dwarf2.c:4611
msgid "DWARF error: DW_AT_comp_dir attribute encountered with a non-string form"
msgstr "„DWARF“ грешка: оÑобина „DW_AT_comp_dir“ је нађена Ñа запиÑом не-ниÑке"
-#: dwarf2.c:4421
+#: dwarf2.c:4428
#, c-format
msgid "DWARF error: found dwarf version '%u', this reader only handles version 2, 3, 4 and 5 information"
msgstr "„DWARF“ грешка: нађох „DWARF“ издање „%u“, овај читач ради Ñамо Ñа подацима издања 2, 3, 4 и 5"
-#: dwarf2.c:4468
+#: dwarf2.c:4475
#, c-format
msgid "DWARF error: found address size '%u', this reader can not handle sizes greater than '%u'"
msgstr "„DWARF“ грешка: нађох величину адреÑе „%u“, овај читач не може да ради Ñа величинама већим од „%u“"
@@ -759,7 +759,7 @@ msgstr "%pB: упозорење: „isymMax“ (%ld) је веће од „ifdMa
msgid "unknown basic type %d"
msgstr "непозната оÑновна врÑта „%d“"
-#: ecoff.c:1569
+#: ecoff.c:1571
#, c-format
msgid ""
"\n"
@@ -768,7 +768,7 @@ msgstr ""
"\n"
" ПоÑледњи+1 Ñимбол: %ld"
-#: ecoff.c:1576 ecoff.c:1579
+#: ecoff.c:1578 ecoff.c:1581
#, c-format
msgid ""
"\n"
@@ -777,7 +777,7 @@ msgstr ""
"\n"
" Први Ñимбол: %ld"
-#: ecoff.c:1594
+#: ecoff.c:1596
#, c-format
msgid ""
"\n"
@@ -786,7 +786,7 @@ msgstr ""
"\n"
" ПоÑледњи+1 Ñимбол: %-7ld Ð’Ñ€Ñта: %s"
-#: ecoff.c:1602
+#: ecoff.c:1604
#, c-format
msgid ""
"\n"
@@ -795,7 +795,7 @@ msgstr ""
"\n"
" Локални Ñимбол: %ld"
-#: ecoff.c:1610
+#: ecoff.c:1612
#, c-format
msgid ""
"\n"
@@ -804,7 +804,7 @@ msgstr ""
"\n"
" struct; ПоÑледњи+1 Ñимбол: %ld"
-#: ecoff.c:1615
+#: ecoff.c:1617
#, c-format
msgid ""
"\n"
@@ -813,7 +813,7 @@ msgstr ""
"\n"
" union; ПоÑледњи+1 Ñимбол: %ld"
-#: ecoff.c:1620
+#: ecoff.c:1622
#, c-format
msgid ""
"\n"
@@ -822,7 +822,7 @@ msgstr ""
"\n"
" enum; ПоÑледњи+1 Ñимбол: %ld"
-#: ecoff.c:1628
+#: ecoff.c:1630
#, c-format
msgid ""
"\n"
@@ -855,12 +855,12 @@ msgstr "грешка: %pB: објекат има Ñадржај продавцу
msgid "error: %pB: object tag '%d, %s' is incompatible with tag '%d, %s'"
msgstr "грешка: %pB: ознака објекта „%d, %s“ није ÑаглаÑна Ñа ознаком „%d, %s“"
-#: elf-eh-frame.c:945
+#: elf-eh-frame.c:946
#, c-format
msgid "discarding zero address range FDE in %pB(%pA).\n"
msgstr "одбацујем нулти опÑег адреÑе „FDE“ у „%pB(%pA)“.\n"
-#: elf-eh-frame.c:1050
+#: elf-eh-frame.c:1051
#, c-format
msgid "error in %pB(%pA); no .eh_frame_hdr table will be created"
msgstr "грешка у „%pB(%pA)“; неће бити направљена ниједна „.eh_frame_hdr“ табела"
@@ -874,89 +874,89 @@ msgstr "„FDE“ кодирање у „%pB(%pA)“ Ñпречава Ñтвар
msgid "further warnings about FDE encoding preventing .eh_frame_hdr generation dropped"
msgstr "будућа упозорења о „FDE“ кодирању Ñпречава одбацивање „.eh_frame_hdr“ генерације"
-#: elf-eh-frame.c:1868
+#: elf-eh-frame.c:1872
#, c-format
msgid "%pB: %pA not in order"
msgstr "%pB: „%pA“ није у поретку"
-#: elf-eh-frame.c:1882
+#: elf-eh-frame.c:1886
#, c-format
msgid "%pB: %pA invalid input section size"
msgstr "%pB: „%pA“ неиÑправна величина одељак улаза"
-#: elf-eh-frame.c:1890
+#: elf-eh-frame.c:1894
#, c-format
msgid "%pB: %pA points past end of text section"
msgstr "%pB: „%pA“ тачака прелази крај одељка текÑта"
-#: elf-eh-frame.c:2143
+#: elf-eh-frame.c:2147
msgid "DW_EH_PE_datarel unspecified for this architecture"
msgstr "„DW_EH_PE_datarel“ није одређено за ову архитектуру"
-#: elf-eh-frame.c:2314
+#: elf-eh-frame.c:2317
#, c-format
msgid "invalid output section for .eh_frame_entry: %pA"
msgstr "неиÑправан одељак излаза за „.eh_frame_entry“: %pA"
-#: elf-eh-frame.c:2337
+#: elf-eh-frame.c:2340
#, c-format
msgid "invalid contents in %pA section"
msgstr "неиÑправан Ñадржај у одељку „%pA“"
-#: elf-eh-frame.c:2493
+#: elf-eh-frame.c:2496
msgid ".eh_frame_hdr entry overflow"
msgstr "прекорачење „.eh_frame_hdr“ уноÑа"
-#: elf-eh-frame.c:2495
+#: elf-eh-frame.c:2498
msgid ".eh_frame_hdr refers to overlapping FDEs"
msgstr "„.eh_frame_hdr“ упућује на преклапајуће „FDE“-ове"
#. xgettext:c-format.
-#: elf-ifunc.c:144 elfnn-loongarch.c:1624
+#: elf-ifunc.c:144 elfnn-loongarch.c:1704
#, c-format
msgid "%F%P: dynamic STT_GNU_IFUNC symbol `%s' with pointer equality in `%pB' can not be used when making an executable; recompile with -fPIE and relink with -pie\n"
msgstr "%F%P: динамички „STT_GNU_IFUNC“ Ñимбол „%s“ Ñа једнакошћу показивача у „%pB“ Ñе не може кориÑтити приликом Ñтварања извршне; преведите поново Ñа „-fPIE“ и повежите поново Ñа „-pie“\n"
-#: elf-m10200.c:434 elf-m10300.c:2146 elf32-bfin.c:3133 elf32-cr16.c:1429
-#: elf32-cris.c:2034 elf32-crx.c:922 elf32-d10v.c:510 elf32-epiphany.c:563
-#: elf32-fr30.c:594 elf32-frv.c:4049 elf32-ft32.c:492 elf32-h8300.c:523
-#: elf32-ip2k.c:1478 elf32-iq2000.c:691 elf32-lm32.c:1070 elf32-m32c.c:624
-#: elf32-m32r.c:2838 elf32-m68hc1x.c:1271 elf32-mep.c:522 elf32-metag.c:1984
-#: elf32-microblaze.c:1682 elf32-moxie.c:288 elf32-mt.c:402 elf32-nds32.c:6094
-#: elf32-or1k.c:1897 elf32-score.c:2734 elf32-score7.c:2545 elf32-spu.c:5085
-#: elf32-tilepro.c:3371 elf32-v850.c:2294 elf32-visium.c:680
-#: elf32-xstormy16.c:930 elf64-bpf.c:339 elf64-mmix.c:1541 elfxx-tilegx.c:3743
+#: elf-m10200.c:434 elf-m10300.c:2146 elf32-bfin.c:3132 elf32-cr16.c:1429
+#: elf32-cris.c:2033 elf32-crx.c:922 elf32-d10v.c:510 elf32-epiphany.c:563
+#: elf32-fr30.c:594 elf32-frv.c:4048 elf32-ft32.c:492 elf32-h8300.c:523
+#: elf32-ip2k.c:1478 elf32-iq2000.c:691 elf32-lm32.c:1069 elf32-m32c.c:624
+#: elf32-m32r.c:2837 elf32-m68hc1x.c:1270 elf32-mep.c:522 elf32-metag.c:1983
+#: elf32-microblaze.c:1677 elf32-moxie.c:288 elf32-mt.c:402 elf32-nds32.c:6092
+#: elf32-or1k.c:1895 elf32-score.c:2724 elf32-score7.c:2535 elf32-spu.c:5081
+#: elf32-tilepro.c:3369 elf32-v850.c:2297 elf32-visium.c:680
+#: elf32-xstormy16.c:930 elf64-bpf.c:339 elf64-mmix.c:1537 elfxx-tilegx.c:3742
msgid "internal error: out of range error"
msgstr "унутрашња грешка: изван опÑега"
-#: elf-m10200.c:438 elf-m10300.c:2150 elf32-bfin.c:3137 elf32-cr16.c:1433
-#: elf32-cris.c:2038 elf32-crx.c:926 elf32-d10v.c:514 elf32-fr30.c:598
-#: elf32-frv.c:4053 elf32-ft32.c:496 elf32-h8300.c:527 elf32-iq2000.c:695
-#: elf32-lm32.c:1074 elf32-m32c.c:628 elf32-m32r.c:2842 elf32-m68hc1x.c:1275
-#: elf32-mep.c:526 elf32-metag.c:1988 elf32-microblaze.c:1686 elf32-moxie.c:292
-#: elf32-msp430.c:1510 elf32-nds32.c:6098 elf32-or1k.c:1901 elf32-score.c:2738
-#: elf32-score7.c:2549 elf32-spu.c:5089 elf32-tilepro.c:3375 elf32-v850.c:2298
-#: elf32-visium.c:684 elf32-xstormy16.c:934 elf64-mmix.c:1545
-#: elfxx-mips.c:10655 elfxx-tilegx.c:3747
+#: elf-m10200.c:438 elf-m10300.c:2150 elf32-bfin.c:3136 elf32-cr16.c:1433
+#: elf32-cris.c:2037 elf32-crx.c:926 elf32-d10v.c:514 elf32-fr30.c:598
+#: elf32-frv.c:4052 elf32-ft32.c:496 elf32-h8300.c:527 elf32-iq2000.c:695
+#: elf32-lm32.c:1073 elf32-m32c.c:628 elf32-m32r.c:2841 elf32-m68hc1x.c:1274
+#: elf32-mep.c:526 elf32-metag.c:1987 elf32-microblaze.c:1681 elf32-moxie.c:292
+#: elf32-msp430.c:1510 elf32-nds32.c:6096 elf32-or1k.c:1899 elf32-score.c:2728
+#: elf32-score7.c:2539 elf32-spu.c:5085 elf32-tilepro.c:3373 elf32-v850.c:2301
+#: elf32-visium.c:684 elf32-xstormy16.c:934 elf64-mmix.c:1541
+#: elfxx-mips.c:10642 elfxx-tilegx.c:3746
msgid "internal error: unsupported relocation error"
msgstr "унутрашња грешка: премештање није подржано"
#: elf-m10200.c:442 elf32-cr16.c:1437 elf32-crx.c:930 elf32-d10v.c:518
-#: elf32-h8300.c:531 elf32-lm32.c:1078 elf32-m32r.c:2846 elf32-m68hc1x.c:1279
-#: elf32-microblaze.c:1690 elf32-nds32.c:6102 elf32-score.c:2742
-#: elf32-score7.c:2553 elf32-spu.c:5093
+#: elf32-h8300.c:531 elf32-lm32.c:1077 elf32-m32r.c:2845 elf32-m68hc1x.c:1278
+#: elf32-microblaze.c:1685 elf32-nds32.c:6100 elf32-score.c:2732
+#: elf32-score7.c:2543 elf32-spu.c:5089
msgid "internal error: dangerous error"
msgstr "унутрашња грешка: грешка опаÑноÑти"
-#: elf-m10200.c:446 elf-m10300.c:2167 elf32-bfin.c:3145 elf32-cr16.c:1441
-#: elf32-cris.c:2046 elf32-crx.c:934 elf32-d10v.c:522 elf32-epiphany.c:578
-#: elf32-fr30.c:606 elf32-frv.c:4061 elf32-ft32.c:504 elf32-h8300.c:535
-#: elf32-ip2k.c:1493 elf32-iq2000.c:703 elf32-lm32.c:1082 elf32-m32c.c:636
-#: elf32-m32r.c:2850 elf32-m68hc1x.c:1283 elf32-mep.c:534 elf32-metag.c:1996
-#: elf32-microblaze.c:1694 elf32-moxie.c:300 elf32-msp430.c:1518 elf32-mt.c:410
-#: elf32-nds32.c:6106 elf32-or1k.c:1909 elf32-score.c:2751 elf32-score7.c:2557
-#: elf32-spu.c:5097 elf32-tilepro.c:3383 elf32-v850.c:2318 elf32-visium.c:692
-#: elf32-xstormy16.c:942 elf64-bpf.c:352 elf64-mmix.c:1553 elfxx-tilegx.c:3755
+#: elf-m10200.c:446 elf-m10300.c:2167 elf32-bfin.c:3144 elf32-cr16.c:1441
+#: elf32-cris.c:2045 elf32-crx.c:934 elf32-d10v.c:522 elf32-epiphany.c:578
+#: elf32-fr30.c:606 elf32-frv.c:4060 elf32-ft32.c:504 elf32-h8300.c:535
+#: elf32-ip2k.c:1493 elf32-iq2000.c:703 elf32-lm32.c:1081 elf32-m32c.c:636
+#: elf32-m32r.c:2849 elf32-m68hc1x.c:1282 elf32-mep.c:534 elf32-metag.c:1995
+#: elf32-microblaze.c:1689 elf32-moxie.c:300 elf32-msp430.c:1518 elf32-mt.c:410
+#: elf32-nds32.c:6104 elf32-or1k.c:1907 elf32-score.c:2741 elf32-score7.c:2547
+#: elf32-spu.c:5093 elf32-tilepro.c:3381 elf32-v850.c:2321 elf32-visium.c:692
+#: elf32-xstormy16.c:942 elf64-bpf.c:352 elf64-mmix.c:1549 elfxx-tilegx.c:3754
msgid "internal error: unknown error"
msgstr "унутрашња грешка: непозната грешка"
@@ -970,11 +970,11 @@ msgstr "%pB: неподржан прелазак Ñа „%s“ на „%s“"
msgid "%pB: %s' accessed both as normal and thread local symbol"
msgstr "%pB: „%s“ Ñе приÑтупило и као нормалном и као Ñимболу локалне нити"
-#: elf-m10300.c:2093 elf32-arm.c:13394 elf32-i386.c:3493 elf32-m32r.c:2332
-#: elf32-m68k.c:3930 elf32-s390.c:3074 elf32-sh.c:3674 elf32-tilepro.c:3274
-#: elf32-xtensa.c:3022 elf64-s390.c:3131 elf64-x86-64.c:4479 elfxx-sparc.c:2918
-#: elfxx-sparc.c:3815 elfxx-tilegx.c:3666 elfnn-aarch64.c:5726
-#: elfnn-aarch64.c:7344 elfnn-kvx.c:2773
+#: elf-m10300.c:2093 elf32-arm.c:13472 elf32-i386.c:3503 elf32-m32r.c:2331
+#: elf32-m68k.c:3929 elf32-s390.c:3072 elf32-sh.c:3672 elf32-tilepro.c:3272
+#: elf32-xtensa.c:3020 elf64-s390.c:3129 elf64-x86-64.c:4564 elfxx-sparc.c:2913
+#: elfxx-sparc.c:3810 elfxx-tilegx.c:3665 elfnn-aarch64.c:5725
+#: elfnn-aarch64.c:7343 elfnn-kvx.c:2772
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unresolvable %s relocation against symbol `%s'"
msgstr "%pB(%pA+%#<PRIx64>): нерешиво „%s“ премештање наÑпрам Ñимбола „%s“"
@@ -992,8 +992,8 @@ msgstr "%pB: узимање адреÑе заштићене функције „
msgid "internal error: suspicious relocation type used in shared library"
msgstr "унутрашња грешка: Ñумњива врÑта премештања је коришћена у дељеној библиотеци"
-#: elf-m10300.c:2650 elf32-avr.c:2488 elf32-frv.c:5622 elf64-ia64-vms.c:365
-#: elfxx-sparc.c:2685 reloc.c:8477 reloc16.c:155 elfnn-ia64.c:365
+#: elf-m10300.c:2650 elf32-avr.c:2483 elf32-frv.c:5621 elf64-ia64-vms.c:365
+#: elfxx-sparc.c:2680 reloc.c:8370 reloc16.c:155 elfnn-ia64.c:365
msgid "%P%F: --relax and -r may not be used together\n"
msgstr "%P%F: „--relax“ и „-r“ Ñе не могу кориÑтити заједно\n"
@@ -1022,92 +1022,98 @@ msgstr "упозорење: %pB: оштећена величина ÑпремнÐ
msgid "warning: %pB: corrupt no copy on protected size: 0x%x"
msgstr "упозорење: %pB: оштећење не умножава на заштићеној величине: 0x%x"
-#: elf-properties.c:189
+#: elf-properties.c:184
+#, c-format
+msgid "warning: %pB: corrupt memory sealing size: 0x%x"
+msgstr "упозорење: %pB: оштећена величина затварања меморије: 0x%x"
+
+#: elf-properties.c:203
#, c-format
msgid "error: %pB: <corrupt property (0x%x) size: 0x%x>"
msgstr "грешка: %pB: <оштећено ÑвојÑтво (0x%x) величине: 0x%x>"
-#: elf-properties.c:214
+#: elf-properties.c:228
#, c-format
msgid "warning: %pB: unsupported GNU_PROPERTY_TYPE (%ld) type: 0x%x"
msgstr "упозорење: %pB: неподржано „GNU_PROPERTY_TYPE“ (%ld) врÑта: 0x%x"
-#: elf-properties.c:400
+#: elf-properties.c:415
msgid "Removed property %W to merge %pB (0x%v) and %pB (0x%v)\n"
msgstr "Уклоњено ÑвојÑтво „%W“ за Ñтапање „%pB“ (0x%v) и „%pB“ (0x%v)\n"
-#: elf-properties.c:406
+#: elf-properties.c:421
msgid "Removed property %W to merge %pB (0x%v) and %pB (not found)\n"
msgstr "Уклоњено ÑвојÑтво „%W“ за Ñтапање „%pB“ (0x%v) и „%pB“ (ниÑам нашао)\n"
-#: elf-properties.c:415 elf-properties.c:493
+#: elf-properties.c:430 elf-properties.c:508
msgid "Removed property %W to merge %pB and %pB\n"
msgstr "Уклоњено ÑвојÑтво „%W“ за Ñтапање „%pB“ и „%pB“\n"
-#: elf-properties.c:419
+#: elf-properties.c:434
msgid "Removed property %W to merge %pB and %pB (not found)\n"
msgstr "Уклоњено ÑвојÑтво „%W“ за Ñтапање „%pB“ и „%pB“ (ниÑам нашао)\n"
-#: elf-properties.c:436
+#: elf-properties.c:451
msgid "Updated property %W (0x%v) to merge %pB (0x%v) and %pB (0x%v)\n"
msgstr "ОÑвежено ÑвојÑтво „%W“ (0x%v) за Ñтапање „%pB“ (0x%v) и „%pB“ (0x%v)\n"
-#: elf-properties.c:445
+#: elf-properties.c:460
msgid "Updated property %W (%v) to merge %pB (0x%v) and %pB (not found)\n"
msgstr "ОÑвежено ÑвојÑтво „%W“ (%v) за Ñтапање „%pB“ (0x%v) и „%pB“ (ниÑам нашао)\n"
-#: elf-properties.c:487
+#: elf-properties.c:502
msgid "Removed property %W to merge %pB (not found) and %pB (0x%v)\n"
msgstr "Уклоњено ÑвојÑтво „%W“ за Ñтапање „%pB“ (ниÑам нашао) и „%pB“ (0x%v)\n"
-#: elf-properties.c:668 elfxx-aarch64.c:758 elfxx-x86.c:4189
+#: elf-properties.c:640 elfxx-aarch64.c:748 elfxx-x86.c:4348
msgid "%F%P: failed to create GNU property section\n"
msgstr "%F%P: ниÑам уÑпео да направим одељак ГÐУ ÑвојÑтва\n"
-#: elf-properties.c:672 elfxx-aarch64.c:762 elfxx-x86.c:4194
+#: elf-properties.c:644 elfxx-aarch64.c:752 elfxx-x86.c:4353
#, c-format
msgid "%F%pA: failed to align section\n"
msgstr "%F%pA: ниÑам уÑпео да поравнам одељак\n"
#. Merge .note.gnu.property sections.
-#: elf-properties.c:698 elf-properties.c:700
+#: elf-properties.c:749 elf-properties.c:751
msgid "\n"
msgstr "\n"
-#: elf-properties.c:699
+#: elf-properties.c:750
msgid "Merging program properties\n"
msgstr "Стапам ÑвојÑтва програма\n"
-#: elf-sframe.c:240
+#: elf-sframe.c:239
#, c-format
msgid "error in %pB(%pA); no .sframe will be created"
msgstr "грешка у „%pB(%pA)“; неће бити направљено „.sframe“"
-#: elf-sframe.c:400
+#: elf-sframe.c:399
msgid "input SFrame sections with different abi prevent .sframe generation"
msgstr "улазни „SFrame“ одељци Ñа различитим „abi“-ем Ñпречавају „.sframe“ Ñтварање"
-#: elf-sframe.c:411
+#: elf-sframe.c:410
msgid "input SFrame sections with different format versions prevent .sframe generation"
msgstr "улазни „SFrame“ одељци Ñа различитим издањима формата Ñпречавају „.sframe“ Ñтварање"
-#: elf.c:305
+#: elf.c:299
#, c-format
-msgid "%pB(%pA): string table is corrupt"
-msgstr "%pB(%pA): табела ниÑке је оштећена"
+msgid "%pB: string table [%u] is corrupt"
+msgstr "%pB(: табела ниÑке [%u] је оштећена"
#. PR 17512: file: f057ec89.
-#: elf.c:335
+#: elf.c:328
#, c-format
msgid "%pB: attempt to load strings from a non-string section (number %d)"
msgstr "%pB: покушавам да учитам ниÑке из одељка не-ниÑке (број %d)"
-#: elf.c:360
+#: elf.c:353
#, c-format
msgid "%pB: invalid string offset %u >= %<PRIu64> for section `%s'"
msgstr "%pB: неиÑправан померај ниÑке „%u >= %<PRIu64>“ за одељак „%s“"
-#: elf.c:518 elf32-arm.c:17695 elfnn-aarch64.c:8344 elfnn-loongarch.c:5920
+#: elf.c:511 elf32-arm.c:17773 elfnn-aarch64.c:8343 elfnn-loongarch.c:6132
+#: elfnn-riscv.c:3688
#, c-format
msgid "%pB symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section"
msgstr "„%pB“ Ñимбол број %lu упућује на непоÑтојећи одељак „SHT_SYMTAB_SHNDX“"
@@ -1137,27 +1143,27 @@ msgstr "%pB: „sh_link [%d]“ у одељку „%pA“ није иÑправÐ
msgid "%pB: section group entry number %u is corrupt"
msgstr "%pB: број одељка уноÑа групе %u је оштећен"
-#: elf.c:1048
+#: elf.c:1051
#, c-format
msgid "%pB: section %s is compressed with zstd, but BFD is not built with zstd support"
msgstr "%pB: одељак „%s“ је запакован Ñа „zstd“, али BFD није изграђен Ñа „zstd“ подршком"
-#: elf.c:1234
+#: elf.c:1237
#, c-format
msgid "%pB: invalid sh_link field (%d) in section number %d"
msgstr "%pB: неиÑправно „sh_link“ поље (%d) у броју одељка %d"
-#: elf.c:1250
+#: elf.c:1253
#, c-format
msgid "%pB: failed to find link section for section %d"
msgstr "%pB: ниÑам уÑпео да нађем одељак везе за одељак %d"
-#: elf.c:1277
+#: elf.c:1280
#, c-format
msgid "%pB: failed to find info section for section %d"
msgstr "%pB: ниÑам уÑпео да нађем одељак података за одељак %d"
-#: elf.c:1454
+#: elf.c:1457
#, c-format
msgid ""
"\n"
@@ -1166,7 +1172,7 @@ msgstr ""
"\n"
"Заглавље програма:\n"
-#: elf.c:1496
+#: elf.c:1499
#, c-format
msgid ""
"\n"
@@ -1175,7 +1181,7 @@ msgstr ""
"\n"
"Динамички одељак:\n"
-#: elf.c:1635
+#: elf.c:1638
#, c-format
msgid ""
"\n"
@@ -1184,7 +1190,7 @@ msgstr ""
"\n"
"Дефиниција издања:\n"
-#: elf.c:1660
+#: elf.c:1663
#, c-format
msgid ""
"\n"
@@ -1193,106 +1199,106 @@ msgstr ""
"\n"
"Упута издања:\n"
-#: elf.c:1665
+#: elf.c:1668
#, c-format
msgid " required from %s:\n"
msgstr " захтевано из „%s“:\n"
-#: elf.c:1916
+#: elf.c:1917
#, c-format
msgid "%pB: DT_STRTAB table is corrupt"
msgstr "%pB: DT_STRTAB табела је оштећена"
-#: elf.c:2424
+#: elf.c:2426
#, c-format
msgid "%pB: warning: loop in section dependencies detected"
msgstr "%pB: упозорење: петља у завиÑноÑтима одељка је откривена"
-#: elf.c:2531
+#: elf.c:2533
#, c-format
msgid "%pB: warning: multiple symbol tables detected - ignoring the table in section %u"
msgstr "%pB: упозорење: откривено је више табела Ñимбола – занемарујем табелу у одељку %u"
-#: elf.c:2616
+#: elf.c:2618
#, c-format
msgid "%pB: warning: multiple dynamic symbol tables detected - ignoring the table in section %u"
msgstr "%pB: упозорење: откривено је више динамичких табела Ñимбола – занемарујем табелу у одељку %u"
-#: elf.c:2735
+#: elf.c:2737
#, c-format
msgid "%pB: invalid link %u for reloc section %s (index %u)"
msgstr "%pB: неиÑправна веза „%u“ за одељак премештања „%s“ (Ð¸Ð½Ð´ÐµÐºÑ â€ž%u“)"
-#: elf.c:2792
+#: elf.c:2794
#, c-format
msgid "%pB: warning: secondary relocation section '%s' for section %pA found - ignoring"
msgstr "%pB: упозорење: нађох Ñекундарни одељак премештања „%s“ за одељак „%pA“ – занемарујем"
-#: elf.c:2877 elf.c:2891 elf.c:2902 elf.c:2915
+#: elf.c:2879 elf.c:2893 elf.c:2904 elf.c:2917
#, c-format
msgid "%pB: unknown type [%#x] section `%s'"
msgstr "%pB: непозната врÑта [%#x] одељак „%s“"
-#: elf.c:3577
+#: elf.c:3586
#, c-format
msgid "%pB: error: alignment power %d of section `%pA' is too big"
msgstr "%pB: грешка: Ñнага поравнања %d одељка „%pA“ је превелика"
-#: elf.c:3612
+#: elf.c:3621
#, c-format
msgid "warning: section `%pA' type changed to PROGBITS"
msgstr "упозорење: врÑта „%pA“ одељка је измењена у „PROGBITS“"
-#: elf.c:4118
+#: elf.c:4130
#, c-format
msgid "%pB: too many sections: %u"
msgstr "%pB: превише одељака: %u"
-#: elf.c:4204
+#: elf.c:4216
#, c-format
msgid "%pB: sh_link of section `%pA' points to discarded section `%pA' of `%pB'"
msgstr "%pB: „sh_link“ одељка „%pA“ указује на одбачени одељак „%pA“ од „%pB“"
-#: elf.c:4222
+#: elf.c:4234
#, c-format
msgid "%pB: sh_link of section `%pA' points to removed section `%pA' of `%pB'"
msgstr "%pB: „sh_link“ одељка „%pA“ указује на уклоњени одељак „%pA“ од „%pB“"
-#: elf.c:4814
+#: elf.c:4830
#, c-format
msgid "%pB: GNU_MBIND section `%pA' has invalid sh_info field: %d"
msgstr "%pB: „GNU_MBIND“ одељак „%pA“ има неиÑправно „sh_info“ поље: %d"
-#: elf.c:4997
+#: elf.c:5013
msgid "%F%P: failed to size relative relocations\n"
msgstr "%F%P: ниÑам уÑпео на величину релативна премештања\n"
-#: elf.c:5424
+#: elf.c:5440
#, c-format
msgid "%pB: TLS sections are not adjacent:"
msgstr "%pB: ТЛС одељци ниÑу ÑуÑедни:"
-#: elf.c:5431
+#: elf.c:5447
#, c-format
msgid "\t TLS: %pA"
msgstr "\t ТЛС: %pA"
-#: elf.c:5435
+#: elf.c:5451
#, c-format
msgid "\tnon-TLS: %pA"
msgstr "\tне-ТЛС: %pA"
-#: elf.c:6063
+#: elf.c:6075
#, c-format
msgid "%pB: The first section in the PT_DYNAMIC segment is not the .dynamic section"
msgstr "%pB: Први одељак у подеоку „PT_DYNAMIC“ није „.dynamic“ одељак"
-#: elf.c:6089
+#: elf.c:6101
#, c-format
msgid "%pB: not enough room for program headers, try linking with -N"
msgstr "%pB: нема довољно меÑта за заглавље програм, пробајте да повежете Ñа „-N“"
-#: elf.c:6206
+#: elf.c:6222
#, c-format
msgid "%pB: section %pA lma %#<PRIx64> adjusted to %#<PRIx64>"
msgstr "%pB: одељак „%pA lma %#<PRIx64>“ је дотеран на %#<PRIx64>"
@@ -1300,189 +1306,189 @@ msgstr "%pB: одељак „%pA lma %#<PRIx64>“ је дотеран на %#<P
#. The fix for this error is usually to edit the linker script being
#. used and set up the program headers manually. Either that or
#. leave room for the headers at the start of the SECTIONS.
-#: elf.c:6346
+#: elf.c:6362
#, c-format
msgid "%pB: error: PHDR segment not covered by LOAD segment"
msgstr "%pB: грешка: „PHDR“ подеок није покривен „LOAD“ подеоком"
-#: elf.c:6386
+#: elf.c:6402
#, c-format
-msgid "%pB: section `%pA' can't be allocated in segment %d"
-msgstr "%pB: одељак „%pA“ Ñе не може доделити у подеоку %d"
+msgid "%pB: section `%pA' can't be allocated in segment %u"
+msgstr "%pB: одељак „%pA“ Ñе не може доделити у подеоку %u"
-#: elf.c:6527
+#: elf.c:6543
#, c-format
msgid "%pB: warning: allocated section `%s' not in segment"
msgstr "%pB: упозорење: додељени одељак „%s“ није у подеоку"
-#: elf.c:6662
+#: elf.c:6678
#, c-format
msgid "%pB: warning: unable to allocate any sections to PT_GNU_RELRO segment"
msgstr "%pB: упозорење: не могу да доделим ниједан одељак на „PT_GNU_RELRO“ подеок"
-#: elf.c:6693
+#: elf.c:6709
#, c-format
msgid "%pB: error: non-load segment %d includes file header and/or program header"
msgstr "%pB: грешка: подеок не-учитавања %d укључује заглавље датотеке и/или заглавље програма"
-#: elf.c:6841
+#: elf.c:6862
#, c-format
msgid "error: %pB has a TLS segment with execute permission"
msgstr "грешка: „%pB“ има ТЛС подеок Ñа овлашћењем извршавања"
-#: elf.c:6847
+#: elf.c:6868
#, c-format
msgid "warning: %pB has a TLS segment with execute permission"
msgstr "упозорење: „%pB“ има ТЛС подеок Ñа овлашћењем извршавања"
-#: elf.c:6862
+#: elf.c:6883
#, c-format
msgid "error: %pB has a LOAD segment with RWX permissions"
msgstr "грешка: „%pB“ има подеок УЧИТÐЈ Ñа овлашћењима пиÑања и бриÑања"
-#: elf.c:6868
+#: elf.c:6889
#, c-format
msgid "warning: %pB has a LOAD segment with RWX permissions"
msgstr "упозорење: „%pB“ има подеок УЧИТÐЈ Ñа овлашћењима пиÑања и бриÑања"
-#: elf.c:7261
+#: elf.c:7284
#, c-format
msgid "%pB: symbol `%s' required but not present"
msgstr "%pB: Ñимбол „%s“ је потребан али није приÑутан"
-#: elf.c:7638
+#: elf.c:7661
#, c-format
msgid "%pB: warning: empty loadable segment detected at vaddr=%#<PRIx64>, is this intentional?"
msgstr "%pB: упозорење: празан подеок који Ñе може учитати откривен је на „vaddr=%#<PRIx64>“, да ли је то намеравано?"
-#: elf.c:8311
+#: elf.c:8334
#, c-format
msgid "%pB: warning: segment alignment of %#<PRIx64> is too large"
msgstr "%pB: упозорење: поравнање подеока за „%#<PRIx64>“ је превелико"
-#: elf.c:8815
+#: elf.c:8837
#, c-format
msgid "%pB: Unable to handle section index %x in ELF symbol. Using ABS instead."
msgstr "%pB: Ðе могу да рукујем Ñа индекÑом одељка %x у ЕЛФ Ñимболу. КориÑтићу „ABS“."
-#: elf.c:8845
+#: elf.c:8867
#, c-format
msgid "unable to find equivalent output section for symbol '%s' from section '%s'"
msgstr "не могу да нађем еквивалентан одељак излаза за Ñимбол „%s“ из одељка „%s“"
-#: elf.c:9280
+#: elf.c:9300
#, c-format
msgid "%pB: .gnu.version_r invalid entry"
msgstr "%pB: „.gnu.version_r“ неиÑправан уноÑ"
-#: elf.c:9459
+#: elf.c:9478
#, c-format
msgid "%pB: .gnu.version_d invalid entry"
msgstr "%pB: „.gnu.version_d“ неиÑправан уноÑ"
-#: elf.c:9963
+#: elf.c:9981
#, c-format
msgid "%pB:%pA: error: attempting to write over the end of the section"
msgstr "%pB:%pA: грешка: покушавам да пишем преко краја одељка"
-#: elf.c:9975
+#: elf.c:9993
#, c-format
msgid "%pB:%pA: error: attempting to write section into an empty buffer"
msgstr "%pB:%pA: грешка: покушавам да упишем одељак у празну међумеморију"
-#: elf.c:10090 elf32-mcore.c:100 elf32-mcore.c:455 elf32-ppc.c:7677
-#: elf32-ppc.c:8865 elf64-ppc.c:16844
+#: elf.c:10108 elf32-mcore.c:100 elf32-mcore.c:455 elf32-ppc.c:7675
+#: elf32-ppc.c:8863 elf64-ppc.c:16860
#, c-format
msgid "%pB: %s unsupported"
msgstr "%pB: „%s“ није подржано"
-#: elf.c:10903
+#: elf.c:10923
#, c-format
msgid "%pB: warning: win32pstatus %s of size %lu bytes is too small"
msgstr "%pB: упозорење: „win32pstatus %s“ величине %lu бајта је превише мало"
-#: elf.c:10982
+#: elf.c:11002
#, c-format
msgid "%pB: win32pstatus NOTE_INFO_MODULE of size %lu is too small to contain a name of size %u"
msgstr "%pB: „win32pstatus NOTE_INFO_MODULE“ величине %lu је превише мало да би Ñадржало назив величине %u"
-#: elf.c:13620
+#: elf.c:13640
msgid "GNU_MBIND section is supported only by GNU and FreeBSD targets"
msgstr "„GNU_MBIND“ одељак је подржан Ñамо Гну и ФриБСД метама"
-#: elf.c:13623
+#: elf.c:13643
msgid "symbol type STT_GNU_IFUNC is supported only by GNU and FreeBSD targets"
msgstr "врÑта Ñимбола „STT_GNU_IFUNC“ је подржана Ñамо Гну и ФриБСД метама"
-#: elf.c:13626
+#: elf.c:13646
msgid "symbol binding STB_GNU_UNIQUE is supported only by GNU and FreeBSD targets"
msgstr "Ñвеза Ñимбола „STB_GNU_UNIQUE“ је подржана Ñамо Гну и ФриБСД метама"
-#: elf.c:13629
+#: elf.c:13649
msgid "GNU_RETAIN section is supported only by GNU and FreeBSD targets"
msgstr "„GNU_RETAIN“ одељак је подржан Ñамо Гну и ФриБСД метама"
-#: elf.c:13847
+#: elf.c:13866
#, c-format
msgid "%pB(%pA): relocation %zu has invalid symbol index %lu"
msgstr "%pB(%pA): премештање „%zu“ има неиÑправан Ð¸Ð½Ð´ÐµÐºÑ Ñимбола %lu"
-#: elf.c:13923
+#: elf.c:13941
#, c-format
msgid "%pB(%pA): link section cannot be set because the output file does not have a symbol table"
msgstr "%pB(%pA): одељак везе Ñе не може подеÑити зато што излазна датотека нема табелу Ñимбола"
-#: elf.c:13937
+#: elf.c:13955
#, c-format
msgid "%pB(%pA): info section index is invalid"
msgstr "%pB(%pA): Ð¸Ð½Ð´ÐµÐºÑ Ð¾Ð´ÐµÑ™ÐºÐ° података није иÑправан"
-#: elf.c:13951
+#: elf.c:13969
#, c-format
msgid "%pB(%pA): info section index cannot be set because the section is not in the output"
msgstr "%pB(%pA): Ð¸Ð½Ð´ÐµÐºÑ Ð¾Ð´ÐµÑ™ÐºÐ° података Ñе не може подеÑити зато што одељак није у излазу"
-#: elf.c:14027
+#: elf.c:14045
#, c-format
msgid "%pB(%pA): error: secondary reloc section processed twice"
msgstr "%pB(%pA): грешка: Ñекундарни одељак премештаја је обрађен два пута"
-#: elf.c:14039
+#: elf.c:14057
#, c-format
msgid "%pB(%pA): error: secondary reloc section has zero sized entries"
msgstr "%pB(%pA): грешка: Ñекундарни одељак премештаја има уноÑе нулте величине"
-#: elf.c:14051
+#: elf.c:14069
#, c-format
msgid "%pB(%pA): error: secondary reloc section has non-standard sized entries"
msgstr "%pB(%pA): грешка: Ñекундарни одељак премештаја има уноÑе неуобичајене величине"
-#: elf.c:14065
+#: elf.c:14083
#, c-format
msgid "%pB(%pA): error: secondary reloc section is empty!"
msgstr "%pB(%pA): грешка: Ñекундарни одељак премештаја је празан!"
-#: elf.c:14088
+#: elf.c:14106
#, c-format
msgid "%pB(%pA): error: internal relocs missing for secondary reloc section"
msgstr "%pB(%pA): грешка: унутрашњи премештаји недоÑтају за Ñекундарни одељак премештаја"
-#: elf.c:14108
+#: elf.c:14126
#, c-format
msgid "%pB(%pA): error: reloc table entry %zu is empty"
msgstr "%pB(%pA): грешка: ÑƒÐ½Ð¾Ñ Ñ‚Ð°Ð±ÐµÐ»Ðµ премештаја %zu је празан"
-#: elf.c:14133
+#: elf.c:14151
#, c-format
msgid "%pB(%pA): error: secondary reloc %zu references a missing symbol"
msgstr "%pB(%pA): грешка: Ñекундарни премштај %zu упућује на недоÑтајући Ñимбол"
-#: elf.c:14151
+#: elf.c:14169
#, c-format
msgid "%pB(%pA): error: secondary reloc %zu references a deleted symbol"
msgstr "%pB(%pA): грешка: Ñекундарни премштај %zu упућује на обриÑан Ñимбол"
-#: elf.c:14165
+#: elf.c:14183
#, c-format
msgid "%pB(%pA): error: secondary reloc %zu is of an unknown type"
msgstr "%pB(%pA): грешка: Ñекундарни премештај %zu је непознате врÑте"
@@ -1491,718 +1497,736 @@ msgstr "%pB(%pA): грешка: Ñекундарни премештај %zu је
#. containing valid data.
#. Ignore init flag - it may not be set, despite the flags field
#. containing valid data.
-#: elf32-arc.c:455 elf32-arm.c:15116 elf32-frv.c:6613 elf32-iq2000.c:868
+#: elf32-arc.c:454 elf32-arm.c:15194 elf32-frv.c:6612 elf32-iq2000.c:868
#: elf32-m32c.c:914 elf32-mt.c:560 elf32-rl78.c:1275 elf32-rx.c:3218
-#: elf32-visium.c:844 elf64-ppc.c:5527 elfnn-aarch64.c:7574
+#: elf32-visium.c:844 elf64-ppc.c:5531 elfnn-aarch64.c:7573
#, c-format
msgid "private flags = 0x%lx:"
msgstr "приватне заÑтавице = 0x%lx:"
-#: elf32-arc.c:642
+#: elf32-arc.c:641
#, c-format
msgid "warning: %pB: conflicting platform configuration %s with %s"
msgstr "упозорење: %pB: подешавање платформе „%s“ је у Ñукобу Ñа „%s“"
-#: elf32-arc.c:661
+#: elf32-arc.c:660
#, c-format
msgid "error: %pB: unable to merge CPU base attributes %s with %s"
msgstr "грешка: %pB: не могу да Ñпојим оÑновне атрибуте процеÑора „%s“ Ñа „%s“"
-#: elf32-arc.c:698
+#: elf32-arc.c:697
#, c-format
msgid "error: %pB: unable to merge ISA extension attributes %s"
msgstr "грешка: %pB: не могу да Ñпојим атрибуте ISA проширења „%s“"
-#: elf32-arc.c:722
+#: elf32-arc.c:721
#, c-format
msgid "error: %pB: conflicting ISA extension attributes %s with %s"
msgstr "грешка: %pB: у Ñукобу Ñу атрибути ISA проширења „%s“ Ñа „%s“"
-#: elf32-arc.c:762
+#: elf32-arc.c:761
#, c-format
msgid "error: %pB: cannot mix rf16 with full register set %pB"
msgstr "грешка: %pB: не могу да помешам „rf16“ Ñа пуним Ñкупом региÑтра „%pB“"
-#: elf32-arc.c:790
+#: elf32-arc.c:789
#, c-format
msgid "error: %pB: conflicting attributes %s: %s with %s"
msgstr "грешка: %pB: Ñукоб атрибута „%s“: „%s“ Ñа „%s“"
-#: elf32-arc.c:817
+#: elf32-arc.c:816
#, c-format
msgid "error: %pB: conflicting attributes %s"
msgstr "грешка: %pB: Ñукоб атрибута „%s“"
-#: elf32-arc.c:922
+#: elf32-arc.c:921
#, c-format
msgid "error: attempting to link %pB with a binary %pB of different architecture"
msgstr "грешка: покушавам да увежем „%pB“ Ñа извршном „%pB“ другачије архитектуре"
-#: 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:15694
+#: elf32-arc.c:937 elf32-iq2000.c:844 elf32-m32c.c:889 elf32-m68hc1x.c:1389
+#: elf32-ppc.c:3854 elf64-sparc.c:737 elfxx-mips.c:15680
#, c-format
msgid "%pB: uses different e_flags (%#x) fields than previous modules (%#x)"
msgstr "%pB: кориÑти другачија поља „e_flags“ (%#x) него претходни модули (%#x)"
-#: elf32-arc.c:1027
+#: elf32-arc.c:1026
msgid "error: the ARC4 architecture is no longer supported"
msgstr "грешка: „ARC4“ архитектура више није подржана"
-#: elf32-arc.c:1033
+#: elf32-arc.c:1032
msgid "warning: unset or old architecture flags; use default machine"
msgstr "упозорење: неподешене или Ñтаре заÑтавице архитектуре; кориÑтим оÑновну машину"
-#: elf32-arc.c:1159
+#: elf32-arc.c:1158
#, c-format
msgid "%pB(%pA+%#<PRIx64>): CMEM relocation to `%s' is invalid, 16 MSB should be %#x (value is %#<PRIx64>)"
msgstr "%pB(%pA+%#<PRIx64>): „CMEM“ премештање на „%s“ је неиÑправно, „16 MSB“ треба да буде „%#x“ (вредноÑÑ‚ је %#<PRIx64>)"
-#: elf32-arc.c:1170
+#: elf32-arc.c:1169
#, c-format
msgid "%pB(%pA+%#<PRIx64>): CMEM relocation to `%s+%#<PRIx64>' is invalid, 16 MSB should be %#x (value is %#<PRIx64>)"
msgstr "%pB(%pA+%#<PRIx64>): „CMEM“ премештање на „%s+%#<PRIx64>“ је неиÑправно, „16 MSB“ треба да буде „%#x“ (вредноÑÑ‚ је %#<PRIx64>)"
-#: elf32-arc.c:1898
+#: elf32-arc.c:1897
msgid "GOT and PLT relocations cannot be fixed with a non dynamic linker"
msgstr "„GOT“ и „PLT“ премештања Ñе не могу поправити Ñа не динамичким увезивачем"
-#: elf32-arc.c:1922 elf32-rx.c:1486
+#: elf32-arc.c:1921 elf32-rx.c:1486
#, c-format
msgid "%pB(%pA): warning: unaligned access to symbol '%s' in the small data area"
msgstr "%pB(%pA): упозорење: непоравнати приÑтуп ка Ñимболу „%s“ облаÑти малих података"
-#: elf32-arc.c:1927 elf32-rx.c:1491
+#: elf32-arc.c:1926 elf32-rx.c:1491
#, c-format
msgid "%pB(%pA): internal error: out of range error"
msgstr "%pB(%pA): унутрашња грешка: изван опÑега"
-#: elf32-arc.c:1932 elf32-rx.c:1496
+#: elf32-arc.c:1931 elf32-rx.c:1496
#, c-format
msgid "%pB(%pA): internal error: unsupported relocation error"
msgstr "%pB(%pA): унутрашња грешка: премештање није подржано"
-#: elf32-arc.c:1937 elf32-rx.c:1501
+#: elf32-arc.c:1936 elf32-rx.c:1501
#, c-format
msgid "%pB(%pA): internal error: dangerous relocation"
msgstr "%pB(%pA): унутрашња грешка: опаÑно премештање"
-#: elf32-arc.c:1942 elf32-rx.c:1506
+#: elf32-arc.c:1941 elf32-rx.c:1506
#, c-format
msgid "%pB(%pA): internal error: unknown error"
msgstr "%pB(%pA): унутрашња грешка: непозната грешка"
-#: elf32-arc.c:2036 elf32-arc.c:2104 elf32-arm.c:15559 elf32-metag.c:2251
-#: elf32-nds32.c:5544 elfnn-aarch64.c:7981 elfnn-riscv.c:724
+#: elf32-arc.c:2035 elf32-arc.c:2103 elf32-arm.c:15637 elf32-metag.c:2250
+#: elf32-nds32.c:5542 elfnn-aarch64.c:7980 elfnn-riscv.c:722
#, c-format
msgid "%pB: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC"
msgstr "%pB: премештање „%s“ наÑпрам „%s“ Ñе не може кориÑтити приликом Ñтварања дељеног објекта; поново преведите Ñа „-fPIC“"
-#: elf32-arc.c:2921
+#: elf32-arc.c:2920
#, c-format
msgid "%pB: unknown mandatory ARC object attribute %d"
msgstr "%pB: непознат атрибут „%d“ обавезног „ARC“ објекта"
-#: elf32-arc.c:2929
+#: elf32-arc.c:2928
#, c-format
msgid "warning: %pB: unknown ARC object attribute %d"
msgstr "упозорење: %pB: непознат атрибут „%d“ објекта „ARC“"
-#: elf32-arm.c:4346 elf32-arm.c:4380 elf32-arm.c:4399 elf32-arm.c:4451
+#: elf32-arm.c:4365 elf32-arm.c:4399 elf32-arm.c:4418 elf32-arm.c:4470
#, c-format
msgid "%pB(%pA): warning: long branch veneers used in section with SHF_ARM_PURECODE section attribute is only supported for M-profile targets that implement the movw instruction"
msgstr "%pB(%pA): упозорење: дуге превлаке гране коришћене Ñу у одељку Ñа атрибутом „SHF_ARM_PURECODE“ одељком је подржана Ñамо за циљеве M-профила које примењују „movw“ инÑтрукцију"
-#: elf32-arm.c:4411 elf32-arm.c:4465 elf32-arm.c:9162 elf32-arm.c:9252
+#: elf32-arm.c:4430 elf32-arm.c:4484 elf32-arm.c:9181 elf32-arm.c:9271
#, c-format
msgid "%pB(%s): warning: interworking not enabled; first occurrence: %pB: %s call to %s"
msgstr "%pB(%s): упозорење: међудејÑтво није укључено; прво појављивање: %pB: „%s“ позива „%s“"
-#: elf32-arm.c:4591
+#: elf32-arm.c:4610
#, c-format
msgid "ERROR: CMSE stub (%s section) too far (%#<PRIx64>) from destination (%#<PRIx64>)"
msgstr "ГРЕШКÐ: „CMSE“ окрајак (одељак „%s“) је превише далеко (%#<PRIx64>) од пдредишта (%#<PRIx64>)"
-#: elf32-arm.c:4760
+#: elf32-arm.c:4779
#, c-format
msgid "no address assigned to the veneers output section %s"
msgstr "ниједна адреÑа није додељена излазу превлаке одељка „%s“"
-#: elf32-arm.c:4835 elf32-arm.c:6984 elf32-csky.c:3387 elf32-hppa.c:582
-#: elf32-m68hc1x.c:164 elf32-metag.c:1180 elf32-nios2.c:2199 elf64-ppc.c:3907
-#: elf64-ppc.c:14162 elfnn-aarch64.c:3216 elfnn-kvx.c:895
+#: elf32-arm.c:4854 elf32-arm.c:7003 elf32-csky.c:3385 elf32-hppa.c:581
+#: elf32-m68hc1x.c:163 elf32-metag.c:1179 elf64-ppc.c:3902 elf64-ppc.c:14175
+#: elfnn-aarch64.c:3188 elfnn-kvx.c:894
#, c-format
msgid "%pB: cannot create stub entry %s"
msgstr "%pB: не могу да Ñтворим ÑƒÐ½Ð¾Ñ Ð¾ÐºÑ€Ð°Ñ˜ÐºÐ° „%s“"
-#: elf32-arm.c:5056 elf32-csky.c:3729 elf32-hppa.c:732 elf32-hppa.c:761
-#: elf32-hppa.c:842 elf32-m68hc11.c:422 elf32-m68hc12.c:542 elf32-metag.c:3345
-#: elf32-nios2.c:2492 elf64-ppc.c:12283 elf64-ppc.c:12291 xcofflink.c:4684
-#: elfnn-aarch64.c:3288
+#: elf32-arm.c:5075 elf32-csky.c:3727 elf32-hppa.c:731 elf32-hppa.c:760
+#: elf32-hppa.c:841 elf32-m68hc11.c:422 elf32-m68hc12.c:542 elf32-metag.c:3344
+#: elf64-ppc.c:12292 elf64-ppc.c:12300 xcofflink.c:4676 elfnn-aarch64.c:3260
msgid "%F%P: Could not assign `%pA' to an output section. Retry without --enable-non-contiguous-regions.\n"
msgstr "%F%P: Ðе могу да доделим „%pA“ излазном одељку. Покушајте поново без „--enable-non-contiguous-regions“.\n"
-#: elf32-arm.c:6027
+#: elf32-arm.c:6046
#, c-format
msgid "%pB: special symbol `%s' only allowed for ARMv8-M architecture or later"
msgstr "%pB: Ñпецијални Ñимбол „%s“ је дозвољен Ñамо за „ARMv8-M“ архитектуру или новију"
-#: elf32-arm.c:6036
+#: elf32-arm.c:6055
#, c-format
msgid "%pB: invalid special symbol `%s'; it must be a global or weak function symbol"
msgstr "%pB: неиÑправан Ñпецијални Ñимбол „%s“; мора бити општи или Ñимбол Ñлабе функције"
-#: elf32-arm.c:6075
+#: elf32-arm.c:6094
#, c-format
msgid "%pB: invalid standard symbol `%s'; it must be a global or weak function symbol"
msgstr "%pB: неиÑправан Ñтандардни Ñимбол „%s“; мора бити општи или Ñимбол Ñлабе функције"
-#: elf32-arm.c:6081
+#: elf32-arm.c:6100
#, c-format
msgid "%pB: absent standard symbol `%s'"
msgstr "%pB: недоÑтаје Ñтандардни Ñимбол „%s“"
-#: elf32-arm.c:6093
+#: elf32-arm.c:6112
#, c-format
msgid "%pB: `%s' and its special symbol are in different sections"
msgstr "%pB: „%s“ и њен Ñпецијални Ñимбол Ñу у различитим одељцима"
-#: elf32-arm.c:6105
+#: elf32-arm.c:6124
#, c-format
msgid "%pB: entry function `%s' not output"
msgstr "%pB: функцја уноÑа „%s“ није излаз"
-#: elf32-arm.c:6112
+#: elf32-arm.c:6131
#, c-format
msgid "%pB: entry function `%s' is empty"
msgstr "%pB: функцја уноÑа „%s“ је празна"
-#: elf32-arm.c:6241
+#: elf32-arm.c:6260
#, c-format
msgid "%pB: --in-implib only supported for Secure Gateway import libraries"
msgstr "%pB: „--in-implib“ је подржана Ñамо за „Secure Gateway“ библиотеке уноÑа"
-#: elf32-arm.c:6290
+#: elf32-arm.c:6309
#, c-format
msgid "%pB: invalid import library entry: `%s'; symbol should be absolute, global and refer to Thumb functions"
msgstr "%pB: неиÑправан ÑƒÐ½Ð¾Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñ‚ÐµÐºÐµ уноÑа: „%s“; Ñимбол треба да буде апÑолутни, општи и да Ñе одноÑи на „Thumb“ функције"
-#: elf32-arm.c:6312
+#: elf32-arm.c:6331
#, c-format
msgid "entry function `%s' disappeared from secure code"
msgstr "функција уноÑа „%s“ је неÑтала из безбедног кода"
-#: elf32-arm.c:6336
+#: elf32-arm.c:6355
#, c-format
msgid "`%s' refers to a non entry function"
msgstr "„%s“ упућује на не улазну функцију"
-#: elf32-arm.c:6351
+#: elf32-arm.c:6370
#, c-format
msgid "%pB: visibility of symbol `%s' has changed"
msgstr "%pB: видљивоÑÑ‚ Ñимбола „%s“ је измењена"
-#: elf32-arm.c:6360
+#: elf32-arm.c:6379
#, c-format
msgid "%pB: incorrect size for symbol `%s'"
msgstr "%pB: неиÑправна величина за Ñимбол „%s“"
-#: elf32-arm.c:6379
+#: elf32-arm.c:6398
#, c-format
msgid "offset of veneer for entry function `%s' not a multiple of its size"
msgstr "померај превлаке за функцију уноÑа „%s“ није умножак величине"
-#: elf32-arm.c:6399
+#: elf32-arm.c:6418
msgid "new entry function(s) introduced but no output import library specified:"
msgstr "нова функција уноÑа је приÑтигла али није наведена излазно улазна библиотека:"
-#: elf32-arm.c:6407
+#: elf32-arm.c:6426
#, c-format
msgid "start address of `%s' is different from previous link"
msgstr "почетна адреÑа за „%s“ Ñе разликује од претходне везе"
-#: elf32-arm.c:7118 elf32-arm.c:7156
+#: elf32-arm.c:7137 elf32-arm.c:7175
#, c-format
msgid "unable to find %s glue '%s' for '%s'"
msgstr "не могу да нађем „%s“ лепак „%s“ за „%s“"
-#: elf32-arm.c:7867
+#: elf32-arm.c:7886
#, c-format
msgid "%pB: BE8 images only valid in big-endian mode"
msgstr "%pB: „BE8“ Ñлике Ñу иÑправне Ñамо у режиму велике крајњоÑти"
#. Give a warning, but do as the user requests anyway.
-#: elf32-arm.c:8095
+#: elf32-arm.c:8114
#, c-format
msgid "%pB: warning: selected VFP11 erratum workaround is not necessary for target architecture"
msgstr "%pB: упозорење: изабрано решење „VFP11“ грешака није потребно за циљну архитектуру"
-#: elf32-arm.c:8122
+#: elf32-arm.c:8141
#, c-format
msgid "%pB: warning: selected STM32L4XX erratum workaround is not necessary for target architecture"
msgstr "%pB: упозорење: изабрано решење „STM32L4XX“ грешака није потребно за циљну архитектуру"
-#: elf32-arm.c:8658 elf32-arm.c:8678 elf32-arm.c:8745 elf32-arm.c:8764
+#: elf32-arm.c:8677 elf32-arm.c:8697 elf32-arm.c:8764 elf32-arm.c:8783
#, c-format
msgid "%pB: unable to find %s veneer `%s'"
msgstr "%pB: не могу да нађем „%s“ превлаку „%s“"
-#: elf32-arm.c:8971
+#: elf32-arm.c:8990
#, c-format
msgid "%pB(%pA+%#x): error: multiple load detected in non-last IT block instruction: STM32L4XX veneer cannot be generated; use gcc option -mrestrict-it to generate only one instruction per IT block"
msgstr "%pB(%pA+%#x): грешка: вишеÑтруко учитавање је откривено у не-поÑледњој инÑтрукцији „IT“ блока: „STM32L4XX“ превлака Ñе не може Ñтворити; кориÑтите „gcc“ опцију „-mrestrict-it“ за Ñтварање Ñамо једне инÑтрукције по „IT“ блоку"
-#: elf32-arm.c:9069
+#: elf32-arm.c:9088
#, c-format
msgid "invalid TARGET2 relocation type '%s'"
msgstr "неиÑправна врÑта „TARGET2“ премештања „%s“"
#. FIXME: We ought to be able to generate thumb-1 PLT
#. instructions...
-#: elf32-arm.c:9838
+#: elf32-arm.c:9857
#, c-format
msgid "%pB: warning: thumb-1 mode PLT generation not currently supported"
msgstr "%pB: упозорење: „PLT“ Ñтварање у „thumb-1“ режиму тренутно није подржано"
-#: elf32-arm.c:10147 elf32-arm.c:10189
+#: elf32-arm.c:10166 elf32-arm.c:10208
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' in TLS trampoline"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана „%s“ инÑтрукција „%#lx“ у „TLS“ трамбулини"
-#: elf32-arm.c:10537
+#: elf32-arm.c:10489
+#, c-format
+msgid "warning: %pB(%s): Forcing bramch to absolute symbol in Thumb mode (Thumb-only CPU) in %pB"
+msgstr "упозорење: %pB(%s): Приморавам грану на апÑолутни Ñимбол у Thumb режиму (Thumb-Ñамо процеÑор) у „%pB“"
+
+#: elf32-arm.c:10494
+#, c-format
+msgid "warning: (%s): Forcing branch to absolute symbol in Thumb mode (Thumb-only CPU) in %pB"
+msgstr "упозорење: (%s): Приморавам грану на апÑолутни Ñимбол у Thumb режиму (Thumb-Ñамо процеÑор) у „%pB“"
+
+#: elf32-arm.c:10523
+#, c-format
+msgid "%pB(%s): Unknown destination type (ARM/Thumb) in %pB"
+msgstr "%pB(%s): Ðепозната врÑта одредишта (ARM/Thumb) у „%pB“"
+
+#: elf32-arm.c:10527
+#, c-format
+msgid "(%s): Unknown destination type (ARM/Thumb) in %pB"
+msgstr "(%s): Ðепозната врÑта одрдишта (ARM/Thumb) у „%pB“"
+
+#: elf32-arm.c:10615
msgid "shared object"
msgstr "дељени објекат"
-#: elf32-arm.c:10540
+#: elf32-arm.c:10618
msgid "PIE executable"
msgstr "„PIE“ извршна"
-#: elf32-arm.c:10543
+#: elf32-arm.c:10621
#, c-format
msgid "%pB: relocation %s against external or undefined symbol `%s' can not be used when making a %s; recompile with -fPIC"
msgstr "%pB: премештање „%s“ наÑпрам Ñпољног или неодређеног Ñимбола „%s“ Ñе не може кориÑтити приликом Ñтварања „%s“; поново преведите Ñа „-fPIC“"
-#: elf32-arm.c:10645
+#: elf32-arm.c:10723
#, c-format
msgid "\\%pB: warning: %s BLX instruction targets %s function '%s'"
msgstr "\\%pB: упозорење: инÑтрукција „%s BLX“ циља на „%s“ функцију „%s“"
-#: elf32-arm.c:11062
+#: elf32-arm.c:11140
#, c-format
msgid "%pB: warning: %s BLX instruction targets %s function '%s'"
msgstr "%pB: упозорење: инÑтрукција „%s BLX“ циља на „%s“ функцију „%s“"
-#: elf32-arm.c:11696
+#: elf32-arm.c:11774
#, c-format
msgid "%pB: expected symbol index in range 0..%lu but found local symbol with index %lu"
msgstr "%pB: очекивах Ð¸Ð½Ð´ÐµÐºÑ Ñимбола у опÑегу 0..%lu али нађох локални Ñимбол Ñа индекÑом %lu"
-#: elf32-arm.c:11971 elf32-arm.c:11997
+#: elf32-arm.c:12049 elf32-arm.c:12075
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected %s instruction '%#lx' referenced by TLS_GOTDESC"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана „%s“ инÑтрукција „%#lx“ на коју упућује „TLS_GOTDESC“"
-#: elf32-arm.c:12043 elf32-csky.c:4957 elf32-m68k.c:3734 elf32-metag.c:1913
-#: elf32-nios2.c:4375
+#: elf32-arm.c:12121 elf32-csky.c:4955 elf32-m68k.c:3733 elf32-metag.c:1912
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s relocation not permitted in shared object"
msgstr "%pB(%pA+%#<PRIx64>): „%s“ премештање није допуштено у дељеним објектима"
-#: elf32-arm.c:12257
+#: elf32-arm.c:12335
#, c-format
msgid "%pB(%pA+%#<PRIx64>): only ADD or SUB instructions are allowed for ALU group relocations"
msgstr "%pB(%pA+%#<PRIx64>): дозвољене Ñу Ñамо „ADD“ или „SUB“ инÑтрукције за премештања „ALU“ групе"
-#: elf32-arm.c:12298 elf32-arm.c:12390 elf32-arm.c:12478 elf32-arm.c:12568
+#: elf32-arm.c:12376 elf32-arm.c:12468 elf32-arm.c:12556 elf32-arm.c:12646
#, c-format
msgid "%pB(%pA+%#<PRIx64>): overflow whilst splitting %#<PRIx64> for group relocation %s"
msgstr "%pB(%pA+%#<PRIx64>): прекорачење за време дељења %#<PRIx64> за премештање групе „%s“"
-#: elf32-arm.c:12626 elf32-arm.c:12785
+#: elf32-arm.c:12704 elf32-arm.c:12863
msgid "local symbol index too big"
msgstr "Ð¸Ð½Ð´ÐµÐºÑ Ð»Ð¾ÐºÐ°Ð»Ð½Ð¾Ð³ Ñимбола је превелик"
-#: elf32-arm.c:12636 elf32-arm.c:12670
+#: elf32-arm.c:12714 elf32-arm.c:12748
msgid "no dynamic index information available"
msgstr "нема доÑтупних података динамичког индекÑа"
-#: elf32-arm.c:12678
+#: elf32-arm.c:12756
msgid "invalid dynamic index"
msgstr "неиÑправан динамички индекÑ"
-#: elf32-arm.c:12795
+#: elf32-arm.c:12873
msgid "dynamic index information not available"
msgstr "подаци динамичког индекÑа ниÑу доÑтупни"
-#: elf32-arm.c:13226 elf32-sh.c:3568
+#: elf32-arm.c:13304 elf32-sh.c:3566
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s relocation against SEC_MERGE section"
msgstr "%pB(%pA+%#<PRIx64>): „%s“ премештање наÑпрам „SEC_MERGE“ одељка"
-#: elf32-arm.c:13339 elf32-m68k.c:3967 elf32-xtensa.c:2760 elfnn-aarch64.c:7071
-#: elfnn-kvx.c:2569
+#: elf32-arm.c:13417 elf32-m68k.c:3966 elf32-xtensa.c:2758 elfnn-aarch64.c:7070
+#: elfnn-kvx.c:2568
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s used with TLS symbol %s"
msgstr "%pB(%pA+%#<PRIx64>): „%s“ је употребљено Ñа „TLS“ Ñимболом „%s“"
-#: elf32-arm.c:13341 elf32-m68k.c:3969 elf32-xtensa.c:2762 elfnn-aarch64.c:7073
-#: elfnn-kvx.c:2571
+#: elf32-arm.c:13419 elf32-m68k.c:3968 elf32-xtensa.c:2760 elfnn-aarch64.c:7072
+#: elfnn-kvx.c:2570
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s used with non-TLS symbol %s"
msgstr "%pB(%pA+%#<PRIx64>): „%s“ је употребљено Ñа „не-TLS“ Ñимболом „%s“"
-#: elf32-arm.c:13424 elf32-tic6x.c:2649 elfnn-aarch64.c:7408 elfnn-kvx.c:2798
+#: elf32-arm.c:13502 elf32-tic6x.c:2641 elfnn-aarch64.c:7407 elfnn-kvx.c:2797
msgid "out of range"
msgstr "изван опÑега"
-#: elf32-arm.c:13428 elf32-nios2.c:4509 elf32-pru.c:936 elf32-tic6x.c:2653
-#: elfnn-aarch64.c:7412 elfnn-kvx.c:2802
+#: elf32-arm.c:13506 elf32-pru.c:936 elf32-tic6x.c:2645 elfnn-aarch64.c:7411
+#: elfnn-kvx.c:2801
msgid "unsupported relocation"
msgstr "неподржано премештање"
-#: elf32-arm.c:13436 elf32-nios2.c:4519 elf32-pru.c:946 elf32-tic6x.c:2661
-#: elfnn-aarch64.c:7420 elfnn-kvx.c:2810
+#: elf32-arm.c:13514 elf32-pru.c:946 elf32-tic6x.c:2653 elfnn-aarch64.c:7419
+#: elfnn-kvx.c:2809
msgid "unknown error"
msgstr "непозната грешка"
-#: elf32-arm.c:13913
+#: elf32-arm.c:13991
#, c-format
msgid "warning: not setting interworking flag of %pB since it has already been specified as non-interworking"
msgstr "упозорење: ниÑам подеÑио заÑтавицу међудејÑтва за „%pB“ пошто је већ наведен као не-међудејÑтвено"
-#: elf32-arm.c:13917
+#: elf32-arm.c:13995
#, c-format
msgid "warning: clearing the interworking flag of %pB due to outside request"
msgstr "упозорење: уклањам заÑтавицу међудејÑтва за „%pB“ уÑлед захтева Ñпоља"
-#: elf32-arm.c:13962
+#: elf32-arm.c:14040
#, c-format
msgid "warning: clearing the interworking flag of %pB because non-interworking code in %pB has been linked with it"
msgstr "упозорење: чиÑтим заÑтавицу међудејÑтва за „%pB“ зато што је немеђудејÑтвени код у „%pB“ повезан Ñа њим"
-#: elf32-arm.c:14049
+#: elf32-arm.c:14127
#, c-format
msgid "%pB: unknown mandatory EABI object attribute %d"
msgstr "%pB: обавезан „%d“ атрибут „EABI“ објекта није познат"
-#: elf32-arm.c:14057
+#: elf32-arm.c:14135
#, c-format
msgid "warning: %pB: unknown EABI object attribute %d"
msgstr "упозорење: %pB: „%d“ атрибут „EABI“ објекта није познат"
-#: elf32-arm.c:14392
+#: elf32-arm.c:14470
#, c-format
msgid "error: %pB: unknown CPU architecture"
msgstr "грешка: %pB: непозната архитектура процеÑора"
-#: elf32-arm.c:14430
+#: elf32-arm.c:14508
#, c-format
msgid "error: conflicting CPU architectures %s vs %s in %pB"
msgstr "грешка: Ñукобљене архитектуре процеÑора „%s“ и „%s“ у „%pB“"
-#: elf32-arm.c:14527
+#: elf32-arm.c:14605
#, c-format
msgid "Error: %pB has both the current and legacy Tag_MPextension_use attributes"
msgstr "Грешка: „%pB“ поÑедује и тренутни и Ñтари „Tag_MPextension_use“ атрибут"
-#: elf32-arm.c:14564
+#: elf32-arm.c:14642
#, c-format
msgid "error: %pB uses VFP register arguments, %pB does not"
msgstr "грешка: „%pB“ кориÑти аргументе „VFP“ региÑтра, а „%pB“ не"
-#: elf32-arm.c:14734
+#: elf32-arm.c:14812
#, c-format
msgid "error: %pB: unable to merge virtualization attributes with %pB"
msgstr "грешка: %pB: не могу да Ñпојим атрибуте виртуелизације Ñа „%pB“"
-#: elf32-arm.c:14760
+#: elf32-arm.c:14838
#, c-format
msgid "error: %pB: conflicting architecture profiles %c/%c"
msgstr "грешка: %pB: У Ñукобу Ñу профили архитектуре „%c/%c“"
-#: elf32-arm.c:14899
+#: elf32-arm.c:14977
#, c-format
msgid "warning: %pB: conflicting platform configuration"
msgstr "упозорење: %pB: подешавање платформе је у Ñукобу"
-#: elf32-arm.c:14908
+#: elf32-arm.c:14986
#, c-format
msgid "error: %pB: conflicting use of R9"
msgstr "грешка: %pB: у Ñукобу је коришћење „R9“"
-#: elf32-arm.c:14920
+#: elf32-arm.c:14998
#, c-format
msgid "error: %pB: SB relative addressing conflicts with use of R9"
msgstr "грешка: %pB: релативно „SB“ адреÑирање је у Ñукобу Ñа коришћењем „R9“"
-#: elf32-arm.c:14933
+#: elf32-arm.c:15011
#, c-format
msgid "warning: %pB uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may fail"
msgstr "упозорење: „%pB“ кориÑти %u-бајтни „wchar_t“ онда ће излаз да кориÑти %u-бајтни „wchar_t“; коришћење „wchar_t“ вредноÑти кроз објекте можда неће уÑпети"
-#: elf32-arm.c:14964
+#: elf32-arm.c:15042
#, c-format
msgid "warning: %pB uses %s enums yet the output is to use %s enums; use of enum values across objects may fail"
msgstr "упозорење: „%pB“ кориÑти %s набрајања онда ће излаз да кориÑти %s набрајања; коришћење вредноÑти набрајања кроз објекте можда неће уÑпети"
-#: elf32-arm.c:14976
+#: elf32-arm.c:15054
#, c-format
msgid "error: %pB uses iWMMXt register arguments, %pB does not"
msgstr "грешка: „%pB“ кориÑти аргументе „iWMMXt“ региÑтра, а „%pB“ не"
-#: elf32-arm.c:14993
+#: elf32-arm.c:15071
#, c-format
msgid "error: fp16 format mismatch between %pB and %pB"
msgstr "грешка: „fp16“ Ð·Ð°Ð¿Ð¸Ñ Ð½Ð¸Ñ˜Ðµ иÑти за „%pB“ и „%pB“"
-#: elf32-arm.c:15029
+#: elf32-arm.c:15107
#, c-format
msgid "%pB has both the current and legacy Tag_MPextension_use attributes"
msgstr "„%pB“ поÑедује и тренутни и Ñтари „Tag_MPextension_use“ атрибут"
-#: elf32-arm.c:15125
+#: elf32-arm.c:15203
#, c-format
msgid " [interworking enabled]"
msgstr " [међудејÑтво је укључено]"
-#: elf32-arm.c:15133
+#: elf32-arm.c:15211
#, c-format
msgid " [VFP float format]"
msgstr " [„VFP“ Ð·Ð°Ð¿Ð¸Ñ Ð´ÐµÑ†Ð¸Ð¼Ð°Ð»Ð½Ð¾Ð³ броја]"
-#: elf32-arm.c:15135
+#: elf32-arm.c:15213
#, c-format
msgid " [FPA float format]"
msgstr " [„FPA“ Ð·Ð°Ð¿Ð¸Ñ Ð´ÐµÑ†Ð¸Ð¼Ð°Ð»Ð½Ð¾Ð³ броја]"
-#: elf32-arm.c:15138
+#: elf32-arm.c:15216
#, c-format
msgid " [floats passed in float registers]"
msgstr " [децималне вредноÑти Ñу проÑлеђене у региÑтре децималних вредноÑти]"
-#: elf32-arm.c:15141 elf32-arm.c:15226
+#: elf32-arm.c:15219 elf32-arm.c:15304
#, c-format
msgid " [position independent]"
msgstr " [незавиÑтан од положаја]"
-#: elf32-arm.c:15144
+#: elf32-arm.c:15222
#, c-format
msgid " [new ABI]"
msgstr " [нови „ABI“]"
-#: elf32-arm.c:15147
+#: elf32-arm.c:15225
#, c-format
msgid " [old ABI]"
msgstr " [Ñтари „ABI“]"
-#: elf32-arm.c:15150
+#: elf32-arm.c:15228
#, c-format
msgid " [software FP]"
msgstr " [логички покретни зарез]"
-#: elf32-arm.c:15158
+#: elf32-arm.c:15236
#, c-format
msgid " [Version1 EABI]"
msgstr " [Издање1 „EABI“]"
-#: elf32-arm.c:15161 elf32-arm.c:15172
+#: elf32-arm.c:15239 elf32-arm.c:15250
#, c-format
msgid " [sorted symbol table]"
msgstr " [табела Ñређених Ñимбола]"
-#: elf32-arm.c:15163 elf32-arm.c:15174
+#: elf32-arm.c:15241 elf32-arm.c:15252
#, c-format
msgid " [unsorted symbol table]"
msgstr " [табела неÑређених Ñимбола]"
-#: elf32-arm.c:15169
+#: elf32-arm.c:15247
#, c-format
msgid " [Version2 EABI]"
msgstr " [Издање2 „EABI“]"
-#: elf32-arm.c:15177
+#: elf32-arm.c:15255
#, c-format
msgid " [dynamic symbols use segment index]"
msgstr " [динамички Ñимболи кориÑте Ð¸Ð½Ð´ÐµÐºÑ Ñегмента]"
-#: elf32-arm.c:15180
+#: elf32-arm.c:15258
#, c-format
msgid " [mapping symbols precede others]"
msgstr " [мапирање Ñимбола претходи другима]"
-#: elf32-arm.c:15187
+#: elf32-arm.c:15265
#, c-format
msgid " [Version3 EABI]"
msgstr " [Издање3 „EABI“]"
-#: elf32-arm.c:15191
+#: elf32-arm.c:15269
#, c-format
msgid " [Version4 EABI]"
msgstr " [Издање4 „EABI“]"
-#: elf32-arm.c:15195
+#: elf32-arm.c:15273
#, c-format
msgid " [Version5 EABI]"
msgstr " [Издање5 „EABI“]"
-#: elf32-arm.c:15198
+#: elf32-arm.c:15276
#, c-format
msgid " [soft-float ABI]"
msgstr " [„ABI“ ÑофтверÑког покретног зареза]"
-#: elf32-arm.c:15201
+#: elf32-arm.c:15279
#, c-format
msgid " [hard-float ABI]"
msgstr " [„ABI“ хардверÑког покретног зареза]"
-#: elf32-arm.c:15207
+#: elf32-arm.c:15285
#, c-format
msgid " [BE8]"
msgstr " [BE8]"
-#: elf32-arm.c:15210
+#: elf32-arm.c:15288
#, c-format
msgid " [LE8]"
msgstr " [LE8]"
-#: elf32-arm.c:15216
+#: elf32-arm.c:15294
#, c-format
msgid " <EABI version unrecognised>"
msgstr " <Ðепознато „EABI“ издање>"
-#: elf32-arm.c:15223
+#: elf32-arm.c:15301
#, c-format
msgid " [relocatable executable]"
msgstr " [премеÑтива извршна]"
-#: elf32-arm.c:15229
+#: elf32-arm.c:15307
#, c-format
msgid " [FDPIC ABI supplement]"
msgstr " [„FDPIC ABI“ додатак]"
-#: elf32-arm.c:15234 elfnn-aarch64.c:7577
+#: elf32-arm.c:15312 elfnn-aarch64.c:7576
#, c-format
msgid " <Unrecognised flag bits set>"
msgstr " <Ðепознат Ñкуп битова заÑтавице>"
-#: elf32-arm.c:15342 elf32-arm.c:15476 elf32-i386.c:1535 elf32-s390.c:923
-#: elf32-tic6x.c:2724 elf32-tilepro.c:1435 elf32-xtensa.c:1090 elf64-s390.c:845
-#: elf64-x86-64.c:2094 elfxx-sparc.c:1386 elfxx-tilegx.c:1662 elfxx-x86.c:970
-#: elfnn-aarch64.c:7848 elfnn-kvx.c:3248 elfnn-loongarch.c:910
-#: elfnn-riscv.c:768
+#: elf32-arm.c:15420 elf32-arm.c:15554 elf32-i386.c:1545 elf32-s390.c:921
+#: elf32-tic6x.c:2716 elf32-tilepro.c:1433 elf32-xtensa.c:1088 elf64-s390.c:843
+#: elf64-x86-64.c:2173 elfxx-sparc.c:1385 elfxx-tilegx.c:1661 elfxx-x86.c:971
+#: elfnn-aarch64.c:7847 elfnn-kvx.c:3247 elfnn-loongarch.c:952
+#: elfnn-riscv.c:766
#, c-format
msgid "%pB: bad symbol index: %d"
msgstr "%pB: лош Ð¸Ð½Ð´ÐµÐºÑ Ñимбола: %d"
-#: elf32-arm.c:15732
+#: elf32-arm.c:15810
#, c-format
msgid "FDPIC does not yet support %s relocation to become dynamic for executable"
msgstr "„FDPIC“ још увек не подржава „%s“ премештање да би поÑтао динамички за извршне"
-#: elf32-arm.c:16994
+#: elf32-arm.c:17072
#, c-format
msgid "errors encountered processing file %pB"
msgstr "наиђох на грешке током обраде датотеке „%pB“"
-#: elf32-arm.c:17364 elflink.c:13561 elflink.c:13608
+#: elf32-arm.c:17442 elflink.c:13533 elflink.c:13580
#, c-format
msgid "could not find section %s"
msgstr "не могу да нађем одељак „%s“"
-#: elf32-arm.c:18319
+#: elf32-arm.c:18397
#, c-format
msgid "%pB: Number of symbols in input file has increased from %lu to %u\n"
msgstr "%pB: Број Ñимбола у улазној датотеци Ñе повећао Ñа %lu на %u\n"
-#: elf32-arm.c:18583
+#: elf32-arm.c:18655
#, c-format
msgid "%pB: error: Cortex-A8 erratum stub is allocated in unsafe location"
msgstr "%pB: грешка: окрајак грешке КортекÑа Ð8 је додељен небезбедној локацији"
#. There's not much we can do apart from complain if this
#. happens.
-#: elf32-arm.c:18610
+#: elf32-arm.c:18682
#, c-format
msgid "%pB: error: Cortex-A8 erratum stub out of range (input file too large)"
msgstr "%pB: грешка: окрајак грешке КортекÑа Ð8 је ван опÑега (улазна датотека је превелика)"
-#: elf32-arm.c:19437 elf32-arm.c:19459
+#: elf32-arm.c:19509 elf32-arm.c:19531
#, c-format
msgid "%pB: error: VFP11 veneer out of range"
msgstr "%pB: грешка: „VFP11“ превлака је ван опÑега"
-#: elf32-arm.c:19510
+#: elf32-arm.c:19582
#, c-format
msgid "%pB(%#<PRIx64>): error: cannot create STM32L4XX veneer; jump out of range by %<PRId64> bytes; cannot encode branch instruction"
msgstr "%pB(%#<PRIx64>): грешка: не могу да Ñтворим „STM32L4XX“ превлаку; иÑкочих из опÑега за %<PRId64> бајта; не могу да декодирам инÑтрукцију гране"
-#: elf32-arm.c:19549
+#: elf32-arm.c:19621
#, c-format
msgid "%pB: error: cannot create STM32L4XX veneer"
msgstr "%pB: грешка: не могу да Ñтворим „STM32L4XX“ превлаку"
-#: elf32-arm.c:20632
+#: elf32-arm.c:20704
#, c-format
msgid "error: %pB is already in final BE8 format"
msgstr "грешка: „%pB“ је већ у завршном запиÑу „BE8“"
-#: elf32-arm.c:20709
+#: elf32-arm.c:20781
#, c-format
msgid "error: source object %pB has EABI version %d, but target %pB has EABI version %d"
msgstr "грешка: изворни објекат „%pB“ Ñадржи „EABI“ издање %d, али циљни „%pB“ има „EABI“ издање %d"
-#: elf32-arm.c:20724
+#: elf32-arm.c:20796
#, c-format
msgid "error: %pB is compiled for APCS-%d, whereas target %pB uses APCS-%d"
msgstr "грешка: „%pB“ је преведен за „APCS-%d“, док циљни „%pB“ кориÑти „APCS-%d“"
-#: elf32-arm.c:20734
+#: elf32-arm.c:20806
#, c-format
msgid "error: %pB passes floats in float registers, whereas %pB passes them in integer registers"
msgstr "грешка: „%pB“ проÑлеђује децималне вредноÑти у региÑтре децималних, док их „%pB“ проÑлеђује у региÑтре целих вредноÑти"
-#: elf32-arm.c:20738
+#: elf32-arm.c:20810
#, c-format
msgid "error: %pB passes floats in integer registers, whereas %pB passes them in float registers"
msgstr "грешка: „%pB“ проÑлеђује децималне вредноÑти у региÑтре целих, док их „%pB“ проÑлеђује у региÑтре децималних вредноÑти"
-#: elf32-arm.c:20748 elf32-arm.c:20752
+#: elf32-arm.c:20820 elf32-arm.c:20824
#, c-format
msgid "error: %pB uses %s instructions, whereas %pB does not"
msgstr "грешка: „%pB“ кориÑти „%s“ инÑтрукције, али „%pB“ не"
-#: elf32-arm.c:20771
+#: elf32-arm.c:20843
#, c-format
msgid "error: %pB uses software FP, whereas %pB uses hardware FP"
msgstr "грешка: „%pB“ кориÑти ÑофтверÑки покретни зарез, док „%pB“ кориÑти хардверÑки"
-#: elf32-arm.c:20775
+#: elf32-arm.c:20847
#, c-format
msgid "error: %pB uses hardware FP, whereas %pB uses software FP"
msgstr "грешка: „%pB“ кориÑти хардверÑки покретни зарез, док „%pB“ кориÑти ÑофтверÑки"
-#: elf32-arm.c:20789
+#: elf32-arm.c:20861
#, c-format
msgid "warning: %pB supports interworking, whereas %pB does not"
msgstr "упозорење: „%pB“ подржава међудејÑтво, док га „%pB“ не подржава"
-#: elf32-arm.c:20795
+#: elf32-arm.c:20867
#, c-format
msgid "warning: %pB does not support interworking, whereas %pB does"
msgstr "упозорење: „%pB“ не подржава међудејÑтво, док га „%pB“ подржава"
-#: elf32-avr.c:1508
+#: elf32-avr.c:1503
msgid "%X%H: %s against `%s': error: relocation applies outside section\n"
msgstr "%X%H: %s наÑпрам „%s“: грешка: премештање Ñе примењује ван одељка\n"
-#: elf32-avr.c:1516
+#: elf32-avr.c:1511
msgid "%X%H: %s against `%s': error: relocation target address is odd\n"
msgstr "%X%H: %s наÑпрам „%s“: грешка: адреÑа мете премештања је нетачна\n"
-#: elf32-avr.c:1524
+#: elf32-avr.c:1519
msgid "%X%H: %s against `%s': internal error: unexpected relocation result %d\n"
msgstr "%X%H: %s наÑпрам „%s“: унутрашња грешка: неочекивани резултат премештања %d\n"
-#: elf32-avr.c:3340 elfnn-aarch64.c:3247
+#: elf32-avr.c:3335 elfnn-aarch64.c:3219
#, c-format
msgid "cannot create stub entry %s"
msgstr "не могу да Ñтворим ÑƒÐ½Ð¾Ñ Ð¾ÐºÑ€Ð°Ñ˜ÐºÐ° „%s“"
@@ -2216,155 +2240,155 @@ msgstr "премештање треба бити паран број"
msgid "%pB(%pA+%#<PRIx64>): unresolvable relocation against symbol `%s'"
msgstr "%pB(%pA+%#<PRIx64>): нерешиво премештање наÑпрам Ñимбола „%s“"
-#: elf32-bfin.c:1621 elf32-i386.c:3533 elf32-m68k.c:4007 elf32-s390.c:3132
-#: elf64-s390.c:3207 elf64-x86-64.c:4534
+#: elf32-bfin.c:1621 elf32-i386.c:3543 elf32-m68k.c:4006 elf32-s390.c:3130
+#: elf64-s390.c:3205 elf64-x86-64.c:4619
#, c-format
msgid "%pB(%pA+%#<PRIx64>): reloc against `%s': error %d"
msgstr "%pB(%pA+%#<PRIx64>): премештање наÑпрам „%s“: грешка %d"
-#: elf32-bfin.c:2647
+#: elf32-bfin.c:2646
#, c-format
msgid "%pB: relocation at `%pA+%#<PRIx64>' references symbol `%s' with nonzero addend"
msgstr "%pB: премештање на „%pA+%#<PRIx64>“ Ñтвара упуту Ñимбола „%s“ Ñа не-нултим Ñабирком"
-#: elf32-bfin.c:2664
+#: elf32-bfin.c:2663
msgid "relocation references symbol not defined in the module"
msgstr "премештање упућује на Ñимбол који није дефиниÑан у модулу"
-#: elf32-bfin.c:2762
+#: elf32-bfin.c:2761
msgid "R_BFIN_FUNCDESC references dynamic symbol with nonzero addend"
msgstr "„R_BFIN_FUNCDESC“ Ñтвара упуту динамичког Ñимбола Ñа не-нултим Ñабирком"
-#: elf32-bfin.c:2802 elf32-bfin.c:2923
+#: elf32-bfin.c:2801 elf32-bfin.c:2922
msgid "cannot emit fixups in read-only section"
msgstr "не могу да пошаљем иÑправке у одељку Ñамо за читање"
-#: elf32-bfin.c:2832 elf32-bfin.c:2960 elf32-lm32.c:1007 elf32-sh.c:4386
+#: elf32-bfin.c:2831 elf32-bfin.c:2959 elf32-lm32.c:1006 elf32-sh.c:4384
msgid "cannot emit dynamic relocations in read-only section"
msgstr "не могу да пошаљем динамичка премештања у одељку Ñамо за читање"
-#: elf32-bfin.c:2882
+#: elf32-bfin.c:2881
msgid "R_BFIN_FUNCDESC_VALUE references dynamic symbol with nonzero addend"
msgstr "„R_BFIN_FUNCDESC_VALUE“ Ñтвара упуту динамичког Ñимбола Ñа не-нултим Ñабирком"
-#: elf32-bfin.c:3045
+#: elf32-bfin.c:3044
msgid "relocations between different segments are not supported"
msgstr "премештања између различитих Ñегмената ниÑу подржана"
-#: elf32-bfin.c:3046
+#: elf32-bfin.c:3045
msgid "warning: relocation references a different segment"
msgstr "упозорење: премештање упућује на другачији Ñегмент"
-#: elf32-bfin.c:3141 elf32-cris.c:2042 elf32-epiphany.c:574 elf32-fr30.c:602
-#: elf32-frv.c:4057 elf32-ft32.c:500 elf32-ip2k.c:1489 elf32-iq2000.c:699
-#: elf32-m32c.c:632 elf32-mep.c:530 elf32-metag.c:1992 elf32-moxie.c:296
-#: elf32-msp430.c:1514 elf32-mt.c:406 elf32-or1k.c:1905 elf32-tilepro.c:3379
-#: elf32-v850.c:2302 elf32-visium.c:688 elf32-xstormy16.c:938 elf64-bpf.c:348
-#: elf64-mmix.c:1549 elfxx-tilegx.c:3751
+#: elf32-bfin.c:3140 elf32-cris.c:2041 elf32-epiphany.c:574 elf32-fr30.c:602
+#: elf32-frv.c:4056 elf32-ft32.c:500 elf32-ip2k.c:1489 elf32-iq2000.c:699
+#: elf32-m32c.c:632 elf32-mep.c:530 elf32-metag.c:1991 elf32-moxie.c:296
+#: elf32-msp430.c:1514 elf32-mt.c:406 elf32-or1k.c:1903 elf32-tilepro.c:3377
+#: elf32-v850.c:2305 elf32-visium.c:688 elf32-xstormy16.c:938 elf64-bpf.c:348
+#: elf64-mmix.c:1545 elfxx-tilegx.c:3750
msgid "internal error: dangerous relocation"
msgstr "унутрашња грешка: опаÑно премештање"
#. Ignore init flag - it may not be set, despite the flags field containing valid data.
-#: elf32-bfin.c:4729 elf32-cris.c:3861 elf32-m68hc1x.c:1415 elf32-m68k.c:1265
-#: elf32-score.c:3994 elf32-score7.c:3801 elf32-vax.c:535 elf32-xgate.c:494
-#: elfxx-mips.c:16380
+#: elf32-bfin.c:4728 elf32-cris.c:3860 elf32-m68hc1x.c:1414 elf32-m68k.c:1264
+#: elf32-score.c:3984 elf32-score7.c:3791 elf32-vax.c:534 elf32-xgate.c:494
+#: elfxx-mips.c:16366
#, c-format
msgid "private flags = %lx:"
msgstr "приватне заÑтавице = %lx:"
-#: elf32-bfin.c:4780 elf32-frv.c:6586
+#: elf32-bfin.c:4779 elf32-frv.c:6585
#, c-format
msgid "%pB: cannot link non-fdpic object file into fdpic executable"
msgstr "%pB: не могу да повежем датотеку не-„fdpic“ објекта у „fdpic“ извршну"
-#: elf32-bfin.c:4784 elf32-frv.c:6590
+#: elf32-bfin.c:4783 elf32-frv.c:6589
#, c-format
msgid "%pB: cannot link fdpic object file into non-fdpic executable"
msgstr "%pB: не могу да повежем датотеку „fdpic“ објекта у не-„fdpic“ извршну"
-#: elf32-bfin.c:4921
+#: elf32-bfin.c:4919
#, c-format
msgid "*** check this relocation %s"
msgstr "*** проверава ово премештање „%s“"
-#: elf32-bfin.c:5036
+#: elf32-bfin.c:5034
msgid "the bfin target does not currently support the generation of copy relocations"
msgstr "„bfin“ циљ тренутно не подржава Ñтварање премештања умножавања"
-#: elf32-bfin.c:5331 elf32-cr16.c:2721 elf32-m68k.c:4421
+#: elf32-bfin.c:5329 elf32-cr16.c:2720 elf32-m68k.c:4420
msgid "unsupported relocation type"
msgstr "неподржана врÑта премештања"
-#: elf32-cris.c:1120
+#: elf32-cris.c:1119
#, c-format
msgid "%pB, section %pA: unresolvable relocation %s against symbol `%s'"
msgstr "„%pB“, одељак „%pA“: нерешиво премештање „%s“ наÑпрам Ñимбола „%s“"
-#: elf32-cris.c:1185
+#: elf32-cris.c:1184
#, c-format
msgid "%pB, section %pA: no PLT nor GOT for relocation %s against symbol `%s'"
msgstr "„%pB“, одељак „%pA“: нема ни „PLT“ ни „GOT“ за премештање „%s“ наÑпрам Ñимбола „%s“"
-#: elf32-cris.c:1188
+#: elf32-cris.c:1187
#, c-format
msgid "%pB, section %pA: no PLT for relocation %s against symbol `%s'"
msgstr "„%pB“, одељак „%pA“: нема „PLT“ за премештање „%s“ наÑпрам Ñимбола „%s“"
-#: elf32-cris.c:1194 elf32-cris.c:1327 elf32-cris.c:1592 elf32-cris.c:1675
-#: elf32-cris.c:1828 elf32-tic6x.c:2560
+#: elf32-cris.c:1193 elf32-cris.c:1326 elf32-cris.c:1591 elf32-cris.c:1674
+#: elf32-cris.c:1827 elf32-tic6x.c:2552
msgid "[whose name is lost]"
msgstr "[чији назив је изгубљен]"
-#: elf32-cris.c:1312 elf32-tic6x.c:2544
+#: elf32-cris.c:1311 elf32-tic6x.c:2536
#, c-format
msgid "%pB, section %pA: relocation %s with non-zero addend %<PRId64> against local symbol"
msgstr "„%pB“, одељак „%pA“: премештање „%s“ Ñа не-нултим Ñабирком %<PRId64> наÑпрам локалног Ñимбола"
-#: elf32-cris.c:1321 elf32-cris.c:1669 elf32-cris.c:1822 elf32-tic6x.c:2553
+#: elf32-cris.c:1320 elf32-cris.c:1668 elf32-cris.c:1821 elf32-tic6x.c:2545
#, c-format
msgid "%pB, section %pA: relocation %s with non-zero addend %<PRId64> against symbol `%s'"
msgstr "„%pB“, одељак „%pA“: премештање „%s“ Ñа не-нултим Ñабирком %<PRId64> наÑпрам Ñимбола „%s“"
-#: elf32-cris.c:1348
+#: elf32-cris.c:1347
#, c-format
msgid "%pB, section %pA: relocation %s is not allowed for global symbol: `%s'"
msgstr "„%pB“, одељак „%pA“: премештање „%s“ није дозвољено за општи Ñимбол: „%s“"
-#: elf32-cris.c:1365
+#: elf32-cris.c:1364
#, c-format
msgid "%pB, section %pA: relocation %s with no GOT created"
msgstr "„%pB“, одељак „%pA“: премештање „%s“ без Ñтвореног „GOT“"
#. We shouldn't get here for GCC-emitted code.
-#: elf32-cris.c:1582
+#: elf32-cris.c:1581
#, c-format
msgid "%pB, section %pA: relocation %s has an undefined reference to `%s', perhaps a declaration mixup?"
msgstr "„%pB“, одељак „%pA“: премештање „%s“ Ñадржи недефиниÑану упуту ка „%s“, можда је дошло до мешања декларације?"
-#: elf32-cris.c:1585
+#: elf32-cris.c:1584
#, c-format
msgid "%pB, section %pA: relocation %s is not allowed for `%s', a global symbol with default visibility, perhaps a declaration mixup?"
msgstr "„%pB“, одељак „%pA“: премештање „%s“ није дозвољено за Ñимбол „%s“, који је дефиниÑан изван програма, можда је дошло до мешања декларације?"
-#: elf32-cris.c:1956
+#: elf32-cris.c:1955
#, c-format
msgid "%pB, section %pA: relocation %s is not allowed for symbol: `%s' which is defined outside the program, perhaps a declaration mixup?"
msgstr "„%pB“, одељак „%pA“: премештање „%s“ није дозвољено за Ñимбол „%s“, који је дефиниÑан изван програма, можда је дошло до мешања декларације?"
-#: elf32-cris.c:2009
+#: elf32-cris.c:2008
msgid "(too many global variables for -fpic: recompile with -fPIC)"
msgstr "(превише општих променљивих за „-fpic“: поново преведите Ñа „-fPIC“)"
-#: elf32-cris.c:2016
+#: elf32-cris.c:2015
msgid "(thread-local data too big for -fpic or -msmall-tls: recompile with -fPIC or -mno-small-tls)"
msgstr "(локални подаци нити Ñу превелики за „-fpic“ или „-msmall-tls“: поново преведите Ñа „-fPIC“ или „-mno-small-tls“)"
-#: elf32-cris.c:3049
+#: elf32-cris.c:3048
#, c-format
msgid "%pB, section %pA: v10/v32 compatible object must not contain a PIC relocation"
msgstr "„%pB“, одељак „%pA“: v10/v32 ÑаглаÑан објекат не Ñме да Ñадржи „PIC“ премештање"
-#: elf32-cris.c:3103
+#: elf32-cris.c:3102
#, c-format
msgid ""
"%pB, section %pA:\n"
@@ -2373,101 +2397,101 @@ msgstr ""
"„%pB“, одељак „%pA“:\n"
" премештање „%s“ није иÑправно у дељеном објекту; типично мешање опција, поново преведите Ñа „-fPIC“"
-#: elf32-cris.c:3321
+#: elf32-cris.c:3320
#, c-format
msgid "%pB, section %pA: relocation %s should not be used in a shared object; recompile with -fPIC"
msgstr "„%pB“, одељак „%pA“: премештање „%s“ не треба да Ñе кориÑти у дељеном објекту; поново преведите Ñа „-fPIC“"
-#: elf32-cris.c:3700
+#: elf32-cris.c:3699
#, c-format
msgid "%pB, section `%pA', to symbol `%s': relocation %s should not be used in a shared object; recompile with -fPIC"
msgstr "„%pB“, одељак „%pA“, ка Ñимболу „%s“: премештање „%s“ не треба да Ñе кориÑти у дељеном објекту; поново преведите Ñа „-fPIC“"
-#: elf32-cris.c:3812
+#: elf32-cris.c:3811
msgid "unexpected machine number"
msgstr "неочекивани број машине"
-#: elf32-cris.c:3864
+#: elf32-cris.c:3863
#, c-format
msgid " [symbols have a _ prefix]"
msgstr " [Ñимболи Ñадрже префикÑе „ _ “]"
-#: elf32-cris.c:3867
+#: elf32-cris.c:3866
#, c-format
msgid " [v10 and v32]"
msgstr " [v10 и v32]"
-#: elf32-cris.c:3870
+#: elf32-cris.c:3869
#, c-format
msgid " [v32]"
msgstr " [v32]"
-#: elf32-cris.c:3914
+#: elf32-cris.c:3913
#, c-format
msgid "%pB: uses _-prefixed symbols, but writing file with non-prefixed symbols"
msgstr "%pB: кориÑти Ñимболе Ñа префикÑом „_“, али запиÑује датотеку Ñа Ñимболима без префикÑа"
-#: elf32-cris.c:3915
+#: elf32-cris.c:3914
#, c-format
msgid "%pB: uses non-prefixed symbols, but writing file with _-prefixed symbols"
msgstr "%pB: кориÑти Ñимболе без префикÑа, али запиÑује датотеку Ñа Ñимболима Ñа префикÑом „_“"
-#: elf32-cris.c:3934
+#: elf32-cris.c:3933
#, c-format
msgid "%pB contains CRIS v32 code, incompatible with previous objects"
msgstr "„%pB„ Ñадржи „CRIS v32“ код који није ÑаглаÑан Ñа претходним објектима"
-#: elf32-cris.c:3936
+#: elf32-cris.c:3935
#, c-format
msgid "%pB contains non-CRIS-v32 code, incompatible with previous objects"
msgstr "„%pB„ Ñадржи не-„CRIS-v32“ код који није ÑаглаÑан Ñа претходним објектима"
-#: elf32-csky.c:2018
+#: elf32-csky.c:2016
msgid "GOT table size out of range"
msgstr "величина „GOT“ табеле је ван опÑега"
-#: elf32-csky.c:2828
+#: elf32-csky.c:2826
#, c-format
msgid "warning: unrecognized arch eflag '%#lx'"
msgstr "упозорење: непрепозната „e“-заÑтавица архитектуре „%#lx“"
-#: elf32-csky.c:2851
+#: elf32-csky.c:2849
#, c-format
msgid "warning: unrecognised arch name '%#x'"
msgstr "упозорење: непознат назив архитектуре „%#x“"
-#: elf32-csky.c:2916 elf32-csky.c:3076
+#: elf32-csky.c:2914 elf32-csky.c:3074
#, c-format
msgid "%pB: machine flag conflict with target"
msgstr "%pB: заÑтавица машине је у Ñукобу Ñа циљем"
-#: elf32-csky.c:2929
+#: elf32-csky.c:2927
#, c-format
msgid "warning: file %pB's arch flag %s conflict with target %s,set target arch flag to %s"
msgstr "упозорење: заÑтавица архитектуре “%pB“-а датотеке „%s“ је у Ñукобу Ñа циљним „%s“, поÑтавите заÑтавицу архитектуре мете на „%s“"
-#: elf32-csky.c:2958
+#: elf32-csky.c:2956
#, c-format
msgid "Error: %pB and %pB has different VDSP version"
msgstr "Грешка: „%pB“ и „%pB“ имају различита „VDSP“ издања"
-#: elf32-csky.c:2975
+#: elf32-csky.c:2973
#, c-format
msgid "Error: %pB and %pB has different DSP version"
msgstr "Грешка: „%pB“ и „%pB“ имају различита „DSP“ издања"
-#: elf32-csky.c:2993
+#: elf32-csky.c:2991
#, c-format
msgid "Error: %pB and %pB has different FPU ABI"
msgstr "Грешка: „%pB“ и „%pB“ имају различите „FPU ABI“"
-#: elf32-csky.c:3090
+#: elf32-csky.c:3088
#, c-format
msgid "warning: file %pB's arch flag %s conflicts with target ck%s, using %s"
msgstr "упозорење: заÑтавица архитектуре “%pB“-а датотеке „%s“ је у Ñукобу Ñа циљним „ck%s“, кориÑтим „%s“"
#. The r_type is error, not support it.
-#: elf32-csky.c:4329 elf32-i386.c:344
+#: elf32-csky.c:4327 elf32-i386.c:344
#, c-format
msgid "%pB: unsupported relocation type: %#x"
msgstr "%pB: неподржана врÑта премештања: %#x"
@@ -2487,100 +2511,100 @@ msgstr "уÑкакање (PC rel26) у одељак (%s) није подржан
msgid "unsupported relocation between data/insn address spaces"
msgstr "није подржано премештање између размака адреÑе „data/insn“"
-#: elf32-frv.c:1453 elf32-frv.c:1604
+#: elf32-frv.c:1452 elf32-frv.c:1603
msgid "relocation requires zero addend"
msgstr "премештање захтева нулти Ñабирак"
-#: elf32-frv.c:2833
+#: elf32-frv.c:2832
#, c-format
msgid "%H: relocation to `%s+%v' may have caused the error above\n"
msgstr "%H: „премештање у „%s+%v“ је можда проузроковало горњу грешку\n"
-#: elf32-frv.c:2850
+#: elf32-frv.c:2849
msgid "%H: relocation references symbol not defined in the module\n"
msgstr "%H: „премештање упућује на Ñимбол који није дефиниÑан у модулу\n"
-#: elf32-frv.c:2926
+#: elf32-frv.c:2925
msgid "%H: R_FRV_GETTLSOFF not applied to a call instruction\n"
msgstr "%H: „R_FRV_GETTLSOFF“ није примењено на инÑтрукцију позива\n"
-#: elf32-frv.c:2967
+#: elf32-frv.c:2966
msgid "%H: R_FRV_GOTTLSDESC12 not applied to an lddi instruction\n"
msgstr "%H: „R_FRV_GOTTLSDESC12“ није примењено на инÑтрукцију „lddi“\n"
-#: elf32-frv.c:3038
+#: elf32-frv.c:3037
msgid "%H: R_FRV_GOTTLSDESCHI not applied to a sethi instruction\n"
msgstr "%H: „R_FRV_GOTTLSDESCHI“ није примењено на инÑтрукцију „sethi“\n"
-#: elf32-frv.c:3075
+#: elf32-frv.c:3074
msgid "%H: R_FRV_GOTTLSDESCLO not applied to a setlo or setlos instruction\n"
msgstr "%H: „R_FRV_GOTTLSDESCLO“ није примењено на инÑтрукцију „setlo“ или „setlos“\n"
-#: elf32-frv.c:3122
+#: elf32-frv.c:3121
msgid "%H: R_FRV_TLSDESC_RELAX not applied to an ldd instruction\n"
msgstr "%H: „R_FRV_TLSDESC_RELAX“ није примењено на инÑтрукцију „ldd“\n"
-#: elf32-frv.c:3206
+#: elf32-frv.c:3205
msgid "%H: R_FRV_GETTLSOFF_RELAX not applied to a calll instruction\n"
msgstr "%H: „R_FRV_GETTLSOFF_RELAX“ није примењено на инÑтрукцију „calll“\n"
-#: elf32-frv.c:3260
+#: elf32-frv.c:3259
msgid "%H: R_FRV_GOTTLSOFF12 not applied to an ldi instruction\n"
msgstr "%H: „R_FRV_GOTTLSOFF12“ није примењено на инÑтрукцију „ldi“\n"
-#: elf32-frv.c:3290
+#: elf32-frv.c:3289
msgid "%H: R_FRV_GOTTLSOFFHI not applied to a sethi instruction\n"
msgstr "%H: „R_FRV_GOTTLSOFFHI“ није примењено на инÑтрукцију „sethi“\n"
-#: elf32-frv.c:3319
+#: elf32-frv.c:3318
msgid "%H: R_FRV_GOTTLSOFFLO not applied to a setlo or setlos instruction\n"
msgstr "%H: „R_FRV_GOTTLSOFFLO“ није примењено на инÑтрукцију „setlo“ или „setlos“\n"
-#: elf32-frv.c:3349
+#: elf32-frv.c:3348
msgid "%H: R_FRV_TLSOFF_RELAX not applied to an ld instruction\n"
msgstr "%H: „R_FRV_TLSOFF_RELAX“ није примењено на инÑтрукцију „ld“\n"
-#: elf32-frv.c:3394
+#: elf32-frv.c:3393
msgid "%H: R_FRV_TLSMOFFHI not applied to a sethi instruction\n"
msgstr "%H: „R_FRV_TLSMOFFHI“ није примењено на инÑтрукцију „sethi“\n"
-#: elf32-frv.c:3421
+#: elf32-frv.c:3420
msgid "R_FRV_TLSMOFFLO not applied to a setlo or setlos instruction\n"
msgstr "R_FRV_TLSMOFFLO“ није примењено на инÑтрукцију „setlo“ или „setlos“\n"
-#: elf32-frv.c:3542 elf32-frv.c:3662
+#: elf32-frv.c:3541 elf32-frv.c:3661
msgid "%H: %s references dynamic symbol with nonzero addend\n"
msgstr "%H: „%s“ Ñтвара упуту динамичког Ñимбола Ñа не-нултим Ñабирком\n"
-#: elf32-frv.c:3583 elf32-frv.c:3704
+#: elf32-frv.c:3582 elf32-frv.c:3703
msgid "%H: cannot emit fixups in read-only section\n"
msgstr "%H: не могу да пошаљем иÑправке у одељку који је Ñамо за читање\n"
-#: elf32-frv.c:3613 elf32-frv.c:3746
+#: elf32-frv.c:3612 elf32-frv.c:3745
msgid "%H: cannot emit dynamic relocations in read-only section\n"
msgstr "%H: не могу да пошаљем динамичка премештања у одељку Ñамо за читање\n"
-#: elf32-frv.c:3918
+#: elf32-frv.c:3917
#, c-format
msgid "%H: reloc against `%s' references a different segment\n"
msgstr "%H: премештање наÑпрам „%s“ Ñтвара упуту другог Ñегмента\n"
-#: elf32-frv.c:4069
+#: elf32-frv.c:4068
#, c-format
msgid "%H: reloc against `%s': %s\n"
msgstr "%H: премештање наÑпрам „%s“: %s\n"
-#: elf32-frv.c:6497
+#: elf32-frv.c:6496
#, c-format
msgid "%pB: compiled with %s and linked with modules that use non-pic relocations"
msgstr "%pB: преведено Ñа „%s“ и повезано Ñа модулима који кориÑте не-„pic“ премештања"
-#: elf32-frv.c:6551 elf32-iq2000.c:830 elf32-m32c.c:876
+#: elf32-frv.c:6550 elf32-iq2000.c:830 elf32-m32c.c:876
#, c-format
msgid "%pB: compiled with %s and linked with modules compiled with %s"
msgstr "%pB: преведено Ñа „%s“ и повезано Ñа модулима који Ñу преведени Ñа „%s“"
-#: elf32-frv.c:6564
+#: elf32-frv.c:6563
#, c-format
msgid "%pB: uses different unknown e_flags (%#x) fields than previous modules (%#x)"
msgstr "%pB: кориÑти другачија непозната поља „e_flags“ (%#x) него претходни модули (%#x)"
@@ -2590,126 +2614,121 @@ msgstr "%pB: кориÑти другачија непозната поља „e_
msgid "%pB: relocations in generic ELF (EM: %d)"
msgstr "%pB: премештања у општем „ELF“-у (EM: %d)"
-#: elf32-hppa.c:863 elf32-hppa.c:3403
+#: elf32-hppa.c:862 elf32-hppa.c:3402
#, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot reach %s, recompile with -ffunction-sections"
msgstr "%pB(%pA+%#<PRIx64>): не могу да доÑтигнем „%s“, поново преведите Ñа „-ffunction-sections“"
-#: elf32-hppa.c:1241
+#: elf32-hppa.c:1240
#, c-format
msgid "%pB: relocation %s can not be used when making a shared object; recompile with -fPIC"
msgstr "%pB: премештање „%s“ Ñе не може кориÑтити приликом Ñтварања дељеног објекта; поново преведите Ñа „-fPIC“"
-#: elf32-hppa.c:2580
+#: elf32-hppa.c:2579
#, c-format
msgid "%pB: duplicate export stub %s"
msgstr "%pB: удвоÑтручени окрајак извоза „%s“"
-#: elf32-hppa.c:3236
+#: elf32-hppa.c:3235
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s fixup for insn %#x is not supported in a non-shared link"
msgstr "%pB(%pA+%#<PRIx64>): иÑправка „%s“ за „insn %#x“ није подржана у не-дељеној вези"
-#: elf32-hppa.c:3456
+#: elf32-hppa.c:3455
#, c-format
msgid "%pB(%pA+%#<PRIx64>): displacement %#x for insn %#x is not a multiple of 8 (gp %#x)"
msgstr "%pB(%pA+%#<PRIx64>): премештај %#x за “insn %#x“ није производ броја 8 (gp %#x)"
-#: elf32-hppa.c:3475
+#: elf32-hppa.c:3474
#, c-format
msgid "%pB(%pA+%#<PRIx64>): displacement %#x for insn %#x is not a multiple of 4 (gp %#x)"
msgstr "%pB(%pA+%#<PRIx64>): премештај %#x за „insn %#x“ није производ броја 4 (gp %#x)"
-#: elf32-hppa.c:4090
+#: elf32-hppa.c:4089
#, c-format
msgid "%s has both normal and TLS relocs"
msgstr "„%s“ има и нормално и „TLS“ премештање"
-#: elf32-hppa.c:4108
+#: elf32-hppa.c:4107
#, c-format
msgid "%pB:%s has both normal and TLS relocs"
msgstr "%pB: „%s“ има и нормално и „TLS“ премештање"
-#: elf32-hppa.c:4167
+#: elf32-hppa.c:4166
#, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot handle %s for %s"
msgstr "%pB(%pA+%#<PRIx64>): не могу да радим Ñа „%s“ за „%s“"
-#: elf32-hppa.c:4471
+#: elf32-hppa.c:4470
msgid ".got section not immediately after .plt section"
msgstr "одељак „.got“ није одмах након одељка „.plt“"
-#: elf32-i386.c:1177 elf64-x86-64.c:1550
-#, c-format
-msgid "%pB: TLS transition from %s to %s against `%s' at %#<PRIx64> in section `%pA' failed"
-msgstr "%pB: није уÑпео „TLS“ прелаз Ñа „%s“ на „%s“ наÑпрам „%s“ при %#<PRIx64> у одељку „%pA“"
-
-#: elf32-i386.c:1286
+#: elf32-i386.c:1296
#, c-format
msgid "%pB: direct GOT relocation R_386_GOT32X against `%s' without base register can not be used when making a shared object"
msgstr "%pB: директно „GOT“ премештање „R_386_GOT32X“ наÑпрам „%s“ без региÑтра оÑнове Ñе не може кориÑтити када Ñе Ñтвара дељени објекат"
-#: elf32-i386.c:1719 elf32-s390.c:1151 elf32-sh.c:5500 elf32-tilepro.c:1548
-#: elf32-xtensa.c:1263 elf64-s390.c:1083 elfxx-sparc.c:1556 elfxx-tilegx.c:1767
-#: elfnn-loongarch.c:726 elfnn-riscv.c:675
+#: elf32-i386.c:1729 elf32-s390.c:1149 elf32-sh.c:5498 elf32-tilepro.c:1546
+#: elf32-xtensa.c:1261 elf64-s390.c:1081 elfxx-sparc.c:1555 elfxx-tilegx.c:1766
+#: elfnn-loongarch.c:741 elfnn-riscv.c:673
#, c-format
msgid "%pB: `%s' accessed both as normal and thread local symbol"
msgstr "%pB: „%s“ Ñе приÑтупило и као нормалном и као Ñимболу локалне нити"
-#: elf32-i386.c:1791
+#: elf32-i386.c:1801
#, c-format
msgid "%pB: unsupported non-PIC call to IFUNC `%s'"
msgstr "%pB: неподржани не-„PIC“ позив за „IFUNC“ „%s“"
-#: elf32-i386.c:1846 elf64-x86-64.c:2482
+#: elf32-i386.c:1856 elf64-x86-64.c:2567
#, c-format
msgid "%pB: non-canonical reference to canonical protected function `%s' in %pB"
msgstr "%pB: не-канонÑка упута ка канонÑкој заштићеној функцији „%s“ %pB"
-#: elf32-i386.c:2409 elf64-x86-64.c:2965 elfnn-riscv.c:2546
+#: elf32-i386.c:2419 elf64-x86-64.c:3050 elfnn-riscv.c:2544
#, c-format
msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't supported"
msgstr "%pB: премештање „%s“ наÑпрам „STT_GNU_IFUNC“ Ñимбола „%s“ није подржано"
-#: elf32-i386.c:2442 elf32-i386.c:3742 elf32-i386.c:3890 elf64-x86-64.c:3022
-#: elf64-x86-64.c:4705 elf64-x86-64.c:4873 elfnn-riscv.c:2408
-#: elfnn-riscv.c:3320 elfnn-riscv.c:3394
+#: elf32-i386.c:2452 elf32-i386.c:3752 elf32-i386.c:3900 elf64-x86-64.c:3107
+#: elf64-x86-64.c:4790 elf64-x86-64.c:4958 elfnn-riscv.c:2406
+#: elfnn-riscv.c:3318 elfnn-riscv.c:3392
#, c-format
msgid "Local IFUNC function `%s' in %pB\n"
msgstr "Локална „IFUNC“ функција „%s“ у „%pB“\n"
-#: elf32-i386.c:2620
+#: elf32-i386.c:2630
#, c-format
msgid "%pB: direct GOT relocation %s against `%s' without base register can not be used when making a shared object"
msgstr "%pB: директно „GOT“ премештање „%s“ наÑпрам „%s“ без региÑтра оÑнове Ñе не може кориÑтити када Ñе Ñтвара дељени објекат"
-#: elf32-i386.c:2655 elf64-x86-64.c:3239
+#: elf32-i386.c:2665 elf64-x86-64.c:3324
msgid "hidden symbol"
msgstr "Ñкривени Ñимбол"
-#: elf32-i386.c:2658 elf64-x86-64.c:3242
+#: elf32-i386.c:2668 elf64-x86-64.c:3327
msgid "internal symbol"
msgstr "унутрашњи Ñимбол"
-#: elf32-i386.c:2661 elf64-x86-64.c:3245
+#: elf32-i386.c:2671 elf64-x86-64.c:3330
msgid "protected symbol"
msgstr "заштићени Ñимбол"
-#: elf32-i386.c:2664 elf64-x86-64.c:3248
+#: elf32-i386.c:2674 elf64-x86-64.c:3333
msgid "symbol"
msgstr "Ñимбол"
-#: elf32-i386.c:2670
+#: elf32-i386.c:2680
#, c-format
msgid "%pB: relocation R_386_GOTOFF against undefined %s `%s' can not be used when making a shared object"
msgstr "%pB: премештање „R_386_GOTOFF“ наÑпрам недефиниÑаног %s „%s“ Ñе не може кориÑтити када Ñе Ñтвара дељени објекат"
-#: elf32-i386.c:2683
+#: elf32-i386.c:2693
#, c-format
msgid "%pB: relocation R_386_GOTOFF against protected %s `%s' can not be used when making a shared object"
msgstr "%pB: премештање „R_386_GOTOFF“ наÑпрам заштићеног %s „%s“ Ñе не може кориÑтити када Ñе Ñтвара дељени објекат"
-#: elf32-i386.c:4093 elf64-x86-64.c:5084
+#: elf32-i386.c:4103 elf64-x86-64.c:5169
msgid "%F%P: discarded output section: `%pA'\n"
msgstr "%F%P: одбачени одељак излаза: „%pA“\n"
@@ -2731,15 +2750,15 @@ msgstr "увезивач „ip2k“: недоÑтаје инÑтрукција Ñ
msgid "ip2k linker: redundant page instruction at %#<PRIx64> (dest = %#<PRIx64>)"
msgstr "увезивач „ip2k“: Ñувишна инÑтрукција Ñтранице на %#<PRIx64> (циљ = %#<PRIx64>)"
-#: elf32-lm32.c:609 elf32-nios2.c:3143
+#: elf32-lm32.c:608
msgid "global pointer relative relocation when _gp not defined"
msgstr "релативно премештање општег показивача када „_gp“ није дефиниÑано"
-#: elf32-lm32.c:664 elf32-nios2.c:3580
+#: elf32-lm32.c:663
msgid "global pointer relative address out of range"
msgstr "релативна адреÑа општег показивача је ван опÑега"
-#: elf32-lm32.c:960
+#: elf32-lm32.c:959
#, c-format
msgid "internal error: addend should be zero for %s"
msgstr "унутрашња грешка: Ñабирак треба да буде нула за „%s“"
@@ -2748,141 +2767,141 @@ msgstr "унутрашња грешка: Ñабирак треба да буде
msgid "SDA relocation when _SDA_BASE_ not defined"
msgstr "„SDA“ премештање када „_SDA_BASE_“ није дефиниÑано"
-#: elf32-m32r.c:2777 elf32-microblaze.c:1152 elf32-microblaze.c:1200
+#: elf32-m32r.c:2776 elf32-microblaze.c:1147 elf32-microblaze.c:1195
#, c-format
msgid "%pB: the target (%s) of an %s relocation is in the wrong section (%pA)"
msgstr "%pB: мета (%s) премештања „%s“ је у погрешном одељку (%pA)"
-#: elf32-m32r.c:3278
+#: elf32-m32r.c:3277
#, c-format
msgid "%pB: instruction set mismatch with previous modules"
msgstr "%pB: Ñкуп инÑтрукција Ñе разликује од претходних модула"
-#: elf32-m32r.c:3299 elf32-nds32.c:6901
+#: elf32-m32r.c:3298 elf32-nds32.c:6899
#, c-format
msgid "private flags = %lx"
msgstr "приватне заÑтавице = %lx"
-#: elf32-m32r.c:3304
+#: elf32-m32r.c:3303
#, c-format
msgid ": m32r instructions"
msgstr ": инÑтрукције „m32r“"
-#: elf32-m32r.c:3305
+#: elf32-m32r.c:3304
#, c-format
msgid ": m32rx instructions"
msgstr ": инÑтрукције „m32rx“"
-#: elf32-m32r.c:3306
+#: elf32-m32r.c:3305
#, c-format
msgid ": m32r2 instructions"
msgstr ": инÑтрукције „m32r2“"
-#: elf32-m68hc1x.c:1135
+#: elf32-m68hc1x.c:1134
#, c-format
msgid "reference to the far symbol `%s' using a wrong relocation may result in incorrect execution"
msgstr "упућивање на далеки Ñимбол „%s“ употребом погрешног премештања може довеÑти до нетачног извршавања"
-#: elf32-m68hc1x.c:1166
+#: elf32-m68hc1x.c:1165
#, c-format
msgid "XGATE address (%lx) is not within shared RAM(0xE000-0xFFFF), therefore you must manually offset the address, and possibly manage the page, in your code."
msgstr "ÐдреÑа „XGATE“ (%lx) није унутар дељене меморије (0xE000-0xFFFF), Ñтога морате ручно да померите адреÑу, и по могућÑтву да радите Ñа Ñтраницом у вашем коду."
-#: elf32-m68hc1x.c:1182
+#: elf32-m68hc1x.c:1181
#, c-format
msgid "banked address [%lx:%04lx] (%lx) is not in the same bank as current banked address [%lx:%04lx] (%lx)"
msgstr "групиÑана адреÑа [%lx:%04lx] (%lx) није у иÑтој групи као тренутна групиÑана адреÑа [%lx:%04lx] (%lx)"
-#: elf32-m68hc1x.c:1197
+#: elf32-m68hc1x.c:1196
#, c-format
msgid "reference to a banked address [%lx:%04lx] in the normal address space at %04lx"
msgstr "упута на групиÑану адреÑу [%lx:%04lx] у обичном проÑтору адреÑе на %04lx"
-#: elf32-m68hc1x.c:1233
+#: elf32-m68hc1x.c:1232
#, c-format
msgid "S12 address (%lx) is not within shared RAM(0x2000-0x4000), therefore you must manually offset the address in your code"
msgstr "ÐдреÑа „S12“ (%lx) није унутар дељене меморије (0x2000-0x4000), Ñтога морате ручно да померите адреÑу у вашем коду"
-#: elf32-m68hc1x.c:1357
+#: elf32-m68hc1x.c:1356
#, c-format
msgid "%pB: linking files compiled for 16-bit integers (-mshort) and others for 32-bit integers"
msgstr "%pB: Ñвезујуће датотеке Ñу преведене за целе бројеве од 16 бита (-mshort) а друге за целе бројеве од 32 бита"
-#: elf32-m68hc1x.c:1364
+#: elf32-m68hc1x.c:1363
#, c-format
msgid "%pB: linking files compiled for 32-bit double (-fshort-double) and others for 64-bit double"
msgstr "%pB: Ñвезујуће датотеке Ñу преведене за целе бројеве од 32 бита (-fshort-double) а друге за целе бројеве од 64 бита"
-#: elf32-m68hc1x.c:1373
+#: elf32-m68hc1x.c:1372
#, c-format
msgid "%pB: linking files compiled for HCS12 with others compiled for HC12"
msgstr "%pB: Ñвезујуће датотеке Ñу преведене за „HCS12“ Ñа другима преведеним за „HC12“"
-#: elf32-m68hc1x.c:1418 elf32-xgate.c:497
+#: elf32-m68hc1x.c:1417 elf32-xgate.c:497
#, c-format
msgid "[abi=32-bit int, "
msgstr "[аби=32-битни цео број, "
-#: elf32-m68hc1x.c:1420 elf32-xgate.c:499
+#: elf32-m68hc1x.c:1419 elf32-xgate.c:499
#, c-format
msgid "[abi=16-bit int, "
msgstr "[аби=16-битни цео број, "
-#: elf32-m68hc1x.c:1423 elf32-xgate.c:502
+#: elf32-m68hc1x.c:1422 elf32-xgate.c:502
#, c-format
msgid "64-bit double, "
msgstr "64-битни мешовити, "
-#: elf32-m68hc1x.c:1425 elf32-xgate.c:504
+#: elf32-m68hc1x.c:1424 elf32-xgate.c:504
#, c-format
msgid "32-bit double, "
msgstr "32-битни мешовити, "
-#: elf32-m68hc1x.c:1428
+#: elf32-m68hc1x.c:1427
#, c-format
msgid "cpu=HC11]"
msgstr "процеÑор=HC11]"
-#: elf32-m68hc1x.c:1430
+#: elf32-m68hc1x.c:1429
#, c-format
msgid "cpu=HCS12]"
msgstr "процеÑор=HCS12]"
-#: elf32-m68hc1x.c:1432
+#: elf32-m68hc1x.c:1431
#, c-format
msgid "cpu=HC12]"
msgstr "процеÑор=HC12]"
-#: elf32-m68hc1x.c:1435
+#: elf32-m68hc1x.c:1434
#, c-format
msgid " [memory=bank-model]"
msgstr " [меморија=модел-групе]"
-#: elf32-m68hc1x.c:1437
+#: elf32-m68hc1x.c:1436
#, c-format
msgid " [memory=flat]"
msgstr " [меморија=обично]"
-#: elf32-m68hc1x.c:1440
+#: elf32-m68hc1x.c:1439
#, c-format
msgid " [XGATE RAM offsetting]"
msgstr " [XGATE RAM померај]"
-#: elf32-m68k.c:1157 elf32-m68k.c:1165 elf32-ppc.c:3572 elf32-ppc.c:3580
+#: elf32-m68k.c:1156 elf32-m68k.c:1164 elf32-ppc.c:3570 elf32-ppc.c:3578
#, c-format
msgid "%pB uses hard float, %pB uses soft float"
msgstr "„%pB“ кориÑти хардверÑки покретни зарез, „%pB“ кориÑти ÑофтверÑки покретни зарез"
-#: elf32-m68k.c:1280 elf32-m68k.c:1281 vms-alpha.c:8096 vms-alpha.c:8112
+#: elf32-m68k.c:1279 elf32-m68k.c:1280 vms-alpha.c:8089 vms-alpha.c:8105
msgid "unknown"
msgstr "непознато"
-#: elf32-m68k.c:1731
+#: elf32-m68k.c:1730
#, c-format
msgid "%pB: GOT overflow: number of relocations with 8-bit offset > %d"
msgstr "%pB: прекорачење „GOT“: број премештања Ñа 8-битним померајем > %d"
-#: elf32-m68k.c:1738
+#: elf32-m68k.c:1737
#, c-format
msgid "%pB: GOT overflow: number of relocations with 8- or 16-bit offset > %d"
msgstr "%pB: прекорачење „GOT“: број премештања Ñа 8- или 16-битним померајем > %d"
@@ -2913,18 +2932,18 @@ msgstr "„%pB“ и „%pB“ Ñу за различита подешавања
msgid "private flags = 0x%lx"
msgstr "приватне заÑтавице = 0x%lx"
-#: elf32-metag.c:1857
+#: elf32-metag.c:1856
#, c-format
msgid "%pB(%pA): multiple TLS models are not supported"
msgstr "%pB(%pA): више „TLS“ модела није подржано"
-#: elf32-metag.c:1860
+#: elf32-metag.c:1859
#, c-format
msgid "%pB(%pA): shared library symbol %s encountered whilst performing a static link"
msgstr "%pB(%pA): наиђох на Ñимбол дељене библиотеке „%s“ за време обављања Ñтатичке везе"
-#: elf32-microblaze.c:1595 elf32-tilepro.c:3020 elfxx-sparc.c:3447
-#: elfxx-tilegx.c:3416
+#: elf32-microblaze.c:1590 elf32-tilepro.c:3018 elfxx-sparc.c:3442
+#: elfxx-tilegx.c:3415
#, c-format
msgid "%pB: probably compiled without -fPIC?"
msgstr "%pB: вероватно је преведено без „-fPIC“?"
@@ -2991,175 +3010,142 @@ msgstr "грешка: „%pB“ кориÑти модел „%s“ податаÐ
msgid "error: %pB can use the upper region for data, but %pB assumes data is exclusively in lower memory"
msgstr "грешка: „%pB“ може да кориÑти горњу облаÑÑ‚ за податке, али „%pB“ подразумева да Ñу подаци иÑкључиво у доњој меморији"
-#: elf32-nds32.c:3674
+#: elf32-nds32.c:3673
#, c-format
msgid "error: can't find symbol: %s"
msgstr "грешка: не могу да нађем Ñимбол: %s"
-#: elf32-nds32.c:5574
+#: elf32-nds32.c:5572
#, c-format
msgid "%pB: warning: %s unsupported in shared mode"
msgstr "%pB: упозорење: „%s“ није подржано у дељеном режиму"
-#: elf32-nds32.c:5700
+#: elf32-nds32.c:5698
#, c-format
msgid "%pB: warning: unaligned access to GOT entry"
msgstr "%pB: упозорење: непоравнат приÑтуп уноÑу „GOT“"
-#: elf32-nds32.c:5741
+#: elf32-nds32.c:5739
#, c-format
msgid "%pB: warning: relocate SDA_BASE failed"
msgstr "%pB: упозорење: није уÑпело премештање „SDA_BASE“"
-#: elf32-nds32.c:5763
+#: elf32-nds32.c:5761
#, c-format
msgid "%pB(%pA): warning: unaligned small data access of type %d"
msgstr "%pB(%pA): упозорење: приÑтуп непоравнатим малим подацима врÑте „%d“"
-#: elf32-nds32.c:6689
+#: elf32-nds32.c:6687
#, c-format
msgid "%pB: ISR vector size mismatch with previous modules, previous %u-byte, current %u-byte"
msgstr "%pB: величина вектора „ISR“ Ñе разликује од претходних модула: претходна %u бајта; текућа %u бајта"
-#: elf32-nds32.c:6737
+#: elf32-nds32.c:6735
#, c-format
msgid "%pB: warning: endian mismatch with previous modules"
msgstr "%pB: упозорење: крајњоÑÑ‚ Ñе разликује од претходних модула"
-#: elf32-nds32.c:6751
+#: elf32-nds32.c:6749
#, c-format
msgid "%pB: warning: older version of object file encountered, please recompile with current tool chain"
msgstr "%pB: упозорење: наишао Ñам на Ñтарије издање датотеке објекта, преведите поново Ñа текућим ланцем алата"
-#: elf32-nds32.c:6839
+#: elf32-nds32.c:6837
#, c-format
msgid "%pB: error: ABI mismatch with previous modules"
msgstr "%pB: грешка: „ABI“ Ñе разликује од претходних модула"
-#: elf32-nds32.c:6849
+#: elf32-nds32.c:6847
#, c-format
msgid "%pB: error: instruction set mismatch with previous modules"
msgstr "%pB: грешка: Ñкуп инÑтрукција Ñе разликује од претходних модула"
-#: elf32-nds32.c:6876
+#: elf32-nds32.c:6874
#, c-format
msgid "%pB: warning: incompatible elf-versions %s and %s"
msgstr "%pB: упозорење: елф издања %s и %s ниÑу ÑаглаÑна"
-#: elf32-nds32.c:6907
+#: elf32-nds32.c:6905
#, c-format
msgid ": n1 instructions"
msgstr ": инÑтрукције „n1“"
-#: elf32-nds32.c:6910
+#: elf32-nds32.c:6908
#, c-format
msgid ": n1h instructions"
msgstr ": инÑтрукције „n1h“"
-#: elf32-nds32.c:9359
+#: elf32-nds32.c:9357
#, c-format
msgid "%pB: error: search_nds32_elf_blank reports wrong node"
msgstr "%pB: грешка: „search_nds32_elf_blank“ извештава о погрешном чвору"
-#: elf32-nds32.c:9623
+#: elf32-nds32.c:9621
#, c-format
msgid "%pB: warning: %s points to unrecognized reloc at %#<PRIx64>"
msgstr "%pB: упозорење: „%s“ показује на непознато премештање на %#<PRIx64>"
-#: elf32-nds32.c:12888
+#: elf32-nds32.c:12886
#, c-format
msgid "%pB: nested OMIT_FP in %pA"
msgstr "%pB: угнежђено „OMIT_FP“ у „%pA“"
-#: elf32-nds32.c:12907
+#: elf32-nds32.c:12905
#, c-format
msgid "%pB: unmatched OMIT_FP in %pA"
msgstr "%pB: неодговарајуће „OMIT_FP“ у „%pA“"
-#: elf32-nios2.c:2932
-#, c-format
-msgid "error: %pB: big-endian R2 is not supported"
-msgstr "грешка: %pB: велика крајњоÑÑ‚ „R2“ није подржана"
-
-#: elf32-nios2.c:2948
-#, c-format
-msgid "error: %pB: conflicting CPU architectures %d/%d"
-msgstr "грешка: %pB: архитектуре процеÑора %d/%d Ñу у Ñукобу"
-
-#: elf32-nios2.c:3823
-#, c-format
-msgid "global pointer relative relocation at address %#<PRIx64> when _gp not defined\n"
-msgstr "релативно премештање општег показивача на адреÑи %#<PRIx64> када „_gp“ није дефиниÑано\n"
-
-#: elf32-nios2.c:3850
-#, c-format
-msgid "unable to reach %s (at %#<PRIx64>) from the global pointer (at %#<PRIx64>) because the offset (%<PRId64>) is out of the allowed range, -32678 to 32767\n"
-msgstr "не могу да доÑтигнем „%s“ (на %#<PRIx64>) из општег показивача (на %#<PRIx64>) зато што је померај (%<PRId64>) изван допуштеног опÑега, од -32678 до 32767\n"
-
-#: elf32-nios2.c:4504 elf32-pru.c:931
-msgid "relocation out of range"
-msgstr "премештање је ван опÑега"
-
-#: elf32-nios2.c:4514 elf32-pru.c:941 elf32-tic6x.c:2657
-msgid "dangerous relocation"
-msgstr "опаÑно премештање"
-
-#: elf32-nios2.c:5362
-#, c-format
-msgid "dynamic variable `%s' is zero size"
-msgstr "динамичка променљива „%s“ је нулте величине"
-
-#: elf32-or1k.c:1258
+#: elf32-or1k.c:1256
#, c-format
msgid "%pB: Cannot handle relocation value size of %d"
msgstr "%pB: не могу да радим Ñа величином вредноÑти премештања од %d"
-#: elf32-or1k.c:1377
+#: elf32-or1k.c:1375
#, c-format
msgid "%pB: unknown relocation type %d"
msgstr "%pB: непозната врÑта премештања „%d“"
-#: elf32-or1k.c:1431
+#: elf32-or1k.c:1429
#, c-format
msgid "%pB: addend should be zero for plt relocations"
msgstr "%pB: Ñабирак треба да буде нула за „plt“ премештања"
-#: elf32-or1k.c:1544
+#: elf32-or1k.c:1542
#, c-format
msgid "%pB: addend should be zero for got relocations"
msgstr "%pB: Ñабирак треба да буде нула за „got“ премештања"
-#: elf32-or1k.c:1561
+#: elf32-or1k.c:1559
#, c-format
msgid "%pB: gotoff relocation against dynamic symbol %s"
msgstr "%pB: „gotoff“ премештање наÑпрам динамичког Ñимбола „%s“"
-#: elf32-or1k.c:1575 elf32-or1k.c:1590 elf64-alpha.c:4411 elf64-alpha.c:4555
+#: elf32-or1k.c:1573 elf32-or1k.c:1588 elf64-alpha.c:4409 elf64-alpha.c:4553
#, c-format
msgid "%pB: pc-relative relocation against dynamic symbol %s"
msgstr "%pB: „pc“-одноÑно премештање наÑпрам динамичког Ñимбола „%s“"
-#: elf32-or1k.c:1604
+#: elf32-or1k.c:1602
#, c-format
msgid "%pB: non-pic relocation against symbol %s"
msgstr "%pB: „non-pic“ премештање наÑпрам Ñимбола „%s“"
-#: elf32-or1k.c:1688
+#: elf32-or1k.c:1686
#, c-format
msgid "%pB: support for local dynamic not implemented"
msgstr "%pB: подршка за локално динамичко није примењена"
-#: elf32-or1k.c:1867
+#: elf32-or1k.c:1865
#, c-format
msgid "%pB: will not resolve runtime TLS relocation"
msgstr "%pB: нећу решити време покретања „TLS“ премештања"
-#: elf32-or1k.c:2201
+#: elf32-or1k.c:2199
#, c-format
msgid "%pB: bad relocation section name `%s'"
msgstr "%pB: лош назив одељка премештања „%s“"
-#: elf32-or1k.c:3314
+#: elf32-or1k.c:3312
#, c-format
msgid "%pB: %s flag mismatch with previous modules"
msgstr "%pB: „%s“ заÑтавица Ñе разликује од претходних модула"
@@ -3169,93 +3155,93 @@ msgstr "%pB: „%s“ заÑтавица Ñе разликује од претх
msgid "generic linker can't handle %s"
msgstr "општи повезивач не може да ради Ñа „%s“"
-#: elf32-ppc.c:1628
+#: elf32-ppc.c:1627
#, c-format
msgid "corrupt %s section in %pB"
msgstr "оштећен „%s“ одељак у „%pB“"
-#: elf32-ppc.c:1647
+#: elf32-ppc.c:1646
#, c-format
msgid "unable to read in %s section from %pB"
msgstr "не могу да читам у одељку „%s“ из „%pB“"
-#: elf32-ppc.c:1689
+#: elf32-ppc.c:1688
#, c-format
msgid "warning: unable to set size of %s section in %pB"
msgstr "упозорење: не могу да поÑтавим величину одељка „%s“ у „%pB“"
-#: elf32-ppc.c:1738
+#: elf32-ppc.c:1737
msgid "failed to allocate space for new APUinfo section"
msgstr "ниÑам уÑпео да доделим проÑтор за нови одељак „APUinfo“"
-#: elf32-ppc.c:1757
+#: elf32-ppc.c:1756
msgid "failed to compute new APUinfo section"
msgstr "ниÑам уÑпео да израчунам нови одељак „APUinfo“"
-#: elf32-ppc.c:1760
+#: elf32-ppc.c:1759
msgid "failed to install new APUinfo section"
msgstr "ниÑам уÑпео да инÑталирам нови одељак „APUinfo“"
-#: elf32-ppc.c:2869
+#: elf32-ppc.c:2867
#, c-format
msgid "%pB: relocation %s cannot be used when making a shared object"
msgstr "%pB: премештање „%s“ Ñе не може кориÑтити приликом Ñтварања дељеног објекта"
-#: elf32-ppc.c:3588 elf32-ppc.c:3596
+#: elf32-ppc.c:3586 elf32-ppc.c:3594
#, c-format
msgid "%pB uses double-precision hard float, %pB uses single-precision hard float"
msgstr "„%pB“ кориÑти хардверÑки покретни зарез двоÑтруке тачноÑти, „%pB“ кориÑти хардверÑки покретни зарез једне тачноÑти"
-#: elf32-ppc.c:3618 elf32-ppc.c:3626
+#: elf32-ppc.c:3616 elf32-ppc.c:3624
#, c-format
msgid "%pB uses 64-bit long double, %pB uses 128-bit long double"
msgstr "„%pB“ кориÑти 64-битни дуги дубл, „%pB“ кориÑти 128-битни дуги дубл"
-#: elf32-ppc.c:3634 elf32-ppc.c:3642
+#: elf32-ppc.c:3632 elf32-ppc.c:3640
#, c-format
msgid "%pB uses IBM long double, %pB uses IEEE long double"
msgstr "„%pB“ кориÑти „IBM“ дуги дубл, „%pB“ кориÑти „IEEE“ дуги дубл"
-#: elf32-ppc.c:3709 elf32-ppc.c:3718
+#: elf32-ppc.c:3707 elf32-ppc.c:3716
#, c-format
msgid "%pB uses AltiVec vector ABI, %pB uses SPE vector ABI"
msgstr "„%pB“ кориÑти „AltiVec“ вектор „ABI“, „%pB“ кориÑти „SPE“ вектор „ABI“"
-#: elf32-ppc.c:3747 elf32-ppc.c:3756
+#: elf32-ppc.c:3745 elf32-ppc.c:3754
#, c-format
msgid "%pB uses r3/r4 for small structure returns, %pB uses memory"
msgstr "„%pB“ кориÑти „r3/r4“ за мале резултате Ñтруктуре, „%pB“ кориÑти меморију"
-#: elf32-ppc.c:3820
+#: elf32-ppc.c:3818
#, c-format
msgid "%pB: compiled with -mrelocatable and linked with modules compiled normally"
msgstr "%pB: преведено Ñа „-mrelocatable“ и повезано Ñа модулима који Ñу преведени уобичајеним путем"
-#: elf32-ppc.c:3828
+#: elf32-ppc.c:3826
#, c-format
msgid "%pB: compiled normally and linked with modules compiled with -mrelocatable"
msgstr "%pB: преведено уобичајеним путем и повезано Ñа модулима који Ñу преведени Ñа „-mrelocatable“"
-#: elf32-ppc.c:3899
+#: elf32-ppc.c:3897
#, c-format
msgid "%pB(%pA+0x%lx): expected 16A style relocation on 0x%08x insn"
msgstr "%pB(%pA+0x%lx): очекивах премештање „16A“ Ñтила на „0x%08x insn“"
-#: elf32-ppc.c:3918
+#: elf32-ppc.c:3916
#, c-format
msgid "%pB(%pA+0x%lx): expected 16D style relocation on 0x%08x insn"
msgstr "%pB(%pA+0x%lx): очекивах премештање „16D“ Ñтила на „0x%08x insn“"
-#: elf32-ppc.c:4028
+#: elf32-ppc.c:4026
#, c-format
msgid "bss-plt forced due to %pB"
msgstr "„bss-plt“ је приÑиљено због „%pB“"
-#: elf32-ppc.c:4030
+#: elf32-ppc.c:4028
msgid "bss-plt forced by profiling"
msgstr "„bss-plt“ је приÑиљено профилиÑањем"
-#: elf32-ppc.c:4608 elf64-ppc.c:8507
+#: elf32-ppc.c:4606 elf64-ppc.c:8516
msgid "%H: warning: %s unexpected insn %#x.\n"
msgstr "%H: упозорење: „%s“ неочекивани улазни знак „%#x“.\n"
@@ -3263,45 +3249,45 @@ msgstr "%H: упозорење: „%s“ неочекивани улазни зÐ
#. could just mark this symbol to exclude it
#. from tls optimization but it's safer to skip
#. the entire optimization.
-#: elf32-ppc.c:4638 elf64-ppc.c:8572
+#: elf32-ppc.c:4636 elf64-ppc.c:8581
#, c-format
msgid "%H arg lost __tls_get_addr, TLS optimization disabled\n"
msgstr "Ðргумент „%H“ је изгубио „__tls_get_addr“, „TLS“ оптимизација је иÑкључена\n"
-#: elf32-ppc.c:5566 elf32-sh.c:3020 elf32-tilepro.c:2247 elfxx-sparc.c:2455
-#: elfxx-tilegx.c:2495
+#: elf32-ppc.c:5564 elf32-sh.c:3018 elf32-tilepro.c:2245 elfxx-sparc.c:2454
+#: elfxx-tilegx.c:2494
#, c-format
msgid "%pB: dynamic relocation in read-only section `%pA'\n"
msgstr "%pB: динамичко премештање у одељку Ñамо за читање %pA\n"
-#: elf32-ppc.c:6512
+#: elf32-ppc.c:6510
msgid "%pB: Adjusting branch at 0x%V towards \"%s\" in section %s\n"
msgstr "%pB: Дотерујем грану на 0x%V према „%s“ у одељку „%s“\n"
-#: elf32-ppc.c:7465
+#: elf32-ppc.c:7463
msgid "%P: %H: error: %s with unexpected instruction %x\n"
msgstr "%P: %H: грешка: „%s“ Ñа неочекиваном инÑтрукцијом „%x“\n"
-#: elf32-ppc.c:7503
+#: elf32-ppc.c:7501
msgid "%H: fixup branch overflow\n"
msgstr "%H: прекорачење „fixup“ гране\n"
-#: elf32-ppc.c:7543 elf32-ppc.c:7581
+#: elf32-ppc.c:7541 elf32-ppc.c:7579
#, c-format
msgid "%pB(%pA+%#<PRIx64>): error: %s with unexpected instruction %#x"
msgstr "%pB(%pA+%#<PRIx64>): грешка: „%s“ Ñа неочекиваном инÑтрукцијом „%#x“"
-#: elf32-ppc.c:7645
+#: elf32-ppc.c:7643
#, c-format
msgid "%X%H: unsupported bss-plt -fPIC ifunc %s\n"
msgstr "%X%H: неподржано „bss-plt“ „-fPIC“ „ifunc“ „%s“\n"
-#: elf32-ppc.c:7681
+#: elf32-ppc.c:7679
#, c-format
msgid "%pB: reloc %#x unsupported"
msgstr "%pB: премештање „%#x“ није подржано"
-#: elf32-ppc.c:7964
+#: elf32-ppc.c:7962
#, c-format
msgid "%H: non-zero addend on %s reloc against `%s'\n"
msgstr "%H: не нулти Ñабирак на „%s“ премештању наÑпрам „%s“\n"
@@ -3314,49 +3300,49 @@ msgstr "%H: не нулти Ñабирак на „%s“ премештању н
#. local won't have the +32k reloc addend trick marking
#. -fPIC code, so the linker won't know whether r30 is
#. _GLOBAL_OFFSET_TABLE_ or pointing into a .got2 section.
-#: elf32-ppc.c:7996
+#: elf32-ppc.c:7994
#, c-format
msgid "%X%H: @local call to ifunc %s\n"
msgstr "%X%H: позив „@local“ за i-функцију „%s“\n"
-#: elf32-ppc.c:8174
+#: elf32-ppc.c:8172
#, c-format
msgid "%H: relocation %s for indirect function %s unsupported\n"
msgstr "%H: „%s“ премештање за индиректну функцију „%s“ није подржано\n"
-#: elf32-ppc.c:8512 elf32-ppc.c:8543 elf32-ppc.c:8646 elf32-ppc.c:8746
+#: elf32-ppc.c:8510 elf32-ppc.c:8541 elf32-ppc.c:8644 elf32-ppc.c:8744
#, c-format
msgid "%pB: the target (%s) of a %s relocation is in the wrong output section (%s)"
msgstr "%pB: мета (%s) премештања „%s“ је у погрешном излазном одељку (%s)"
-#: elf32-ppc.c:8924 elf32-ppc.c:8945
+#: elf32-ppc.c:8922 elf32-ppc.c:8943
msgid "%X%P: %H: %s relocation unsupported for bss-plt\n"
msgstr "%X%P: %H: „%s“ премештање није подржано за „bss-plt“\n"
-#: elf32-ppc.c:9027
+#: elf32-ppc.c:9025
#, c-format
msgid "%H: error: %s against `%s' not a multiple of %u\n"
msgstr "%H: грешка: „%s“ наÑпрам „%s“ није производ „%u“\n"
-#: elf32-ppc.c:9056
+#: elf32-ppc.c:9054
#, c-format
msgid "%H: unresolvable %s relocation against symbol `%s'\n"
msgstr "%H: нерешиво „%s“ премештање наÑпрам Ñимбола „%s“\n"
-#: elf32-ppc.c:9138
+#: elf32-ppc.c:9136
#, c-format
msgid "%H: %s reloc against `%s': error %d\n"
msgstr "%H: „%s“ премештање наÑпрам „%s“: грешка %d\n"
-#: elf32-ppc.c:10020
+#: elf32-ppc.c:10018
msgid "%X%P: text relocations and GNU indirect functions will result in a segfault at runtime\n"
msgstr "%X%P: премештање текÑта и ГÐУ-ове индиректне функције ће резултирати неуÑпехом Ñегментације у време извршавања\n"
-#: elf32-ppc.c:10024 elf64-ppc.c:18304
+#: elf32-ppc.c:10022 elf64-ppc.c:18320
msgid "%P: warning: text relocations and GNU indirect functions may result in a segfault at runtime\n"
msgstr "%P: упозорење: премештање текÑта и ГÐУ-ове индиректне функције могу резултирати неуÑпехом Ñегментације у време извршавања\n"
-#: elf32-ppc.c:10069
+#: elf32-ppc.c:10067
#, c-format
msgid "%s not defined in linker created %pA"
msgstr "„%s“ није дефиниÑано у повезивачу Ñтвореном „%pA“"
@@ -3366,6 +3352,14 @@ msgstr "„%s“ није дефиниÑано у повезивачу ÑтвоÑ
msgid "error: %pB: old incompatible object file detected"
msgstr "грешка: %pB: Ñтара неÑаглаÑна датотека објекта је откривена"
+#: elf32-pru.c:931
+msgid "relocation out of range"
+msgstr "премештање је ван опÑега"
+
+#: elf32-pru.c:941 elf32-tic6x.c:2649
+msgid "dangerous relocation"
+msgstr "опаÑно премештање"
+
#: elf32-rl78.c:551
msgid "RL78 reloc stack overflow/underflow"
msgstr "прекорачење/поткорачење Ñремника „RL78“ премештања"
@@ -3472,45 +3466,45 @@ msgstr "%pB:%pA: табели „%s“ недоÑтаје одговарајућ
msgid "%pB:%pA: %s and %s must be in the same input section"
msgstr "%pB:%pA: „%s“ и „%s“ морају бити у иÑтом улазном одељку"
-#: elf32-s390.c:2007 elf64-s390.c:1976
+#: elf32-s390.c:2005 elf64-s390.c:1974
#, c-format
msgid "%pB(%pA+%#<PRIx64>): invalid instruction for TLS relocation %s"
msgstr "%pB(%pA+%#<PRIx64>): неиÑправна инÑтрукција за „TLS“ премештање „%s“"
-#: elf32-score.c:1515 elf32-score7.c:1378 elfxx-mips.c:3875
+#: elf32-score.c:1505 elf32-score7.c:1368 elfxx-mips.c:3868
msgid "not enough GOT space for local GOT entries"
msgstr "нема довољно „GOT“ проÑтора за меÑне уноÑе „GOT“"
-#: elf32-score.c:2747
+#: elf32-score.c:2737
msgid "address not word aligned"
msgstr "адреÑа није поравната по речи"
-#: elf32-score.c:2828 elf32-score7.c:2635
+#: elf32-score.c:2818 elf32-score7.c:2625
#, c-format
msgid "%pB: malformed reloc detected for section %pA"
msgstr "%pB: откривено је лоше премештање за одељак „%pA“"
-#: elf32-score.c:2882 elf32-score7.c:2689
+#: elf32-score.c:2872 elf32-score7.c:2679
#, c-format
msgid "%pB: CALL15 reloc at %#<PRIx64> not against global symbol"
msgstr "%pB: „CALL15“ премештање на %#<PRIx64> није наÑпрам општег Ñимбола"
-#: elf32-score.c:3491 elf32-score7.c:3302 elfxx-mips.c:11188
+#: elf32-score.c:3481 elf32-score7.c:3292 elfxx-mips.c:11175
#, c-format
msgid "%pB: cannot handle more than %d dynamic symbols"
msgstr "%pB: не могу да радим Ñа више од %d динамичких Ñимбола"
-#: elf32-score.c:3997 elf32-score7.c:3804
+#: elf32-score.c:3987 elf32-score7.c:3794
#, c-format
msgid " [pic]"
msgstr " [пик]"
-#: elf32-score.c:4001 elf32-score7.c:3808
+#: elf32-score.c:3991 elf32-score7.c:3798
#, c-format
msgid " [fix dep]"
msgstr " [Ñ„Ð¸ÐºÑ Ð´ÑƒÐ±]"
-#: elf32-score.c:4048 elf32-score7.c:3855
+#: elf32-score.c:4038 elf32-score7.c:3845
#, c-format
msgid "%pB: warning: linking PIC files with non-PIC files"
msgstr "%pB: упозорење: повезујем „PIC“ датотеке Ñа не-„PIC“ датотекама"
@@ -3520,148 +3514,148 @@ msgstr "%pB: упозорење: повезујем „PIC“ датотеке Ñ
msgid "%pB: %#<PRIx64>: warning: R_SH_USES points to unrecognized insn 0x%x"
msgstr "%pB: %#<PRIx64>: упозорење: „R_SH_USES“ показује на непознат улазни злак 0x%x"
-#: elf32-sh.c:3755
+#: elf32-sh.c:3753
#, c-format
msgid "%pB: %#<PRIx64>: fatal: unaligned branch target for relax-support relocation"
msgstr "%pB: %#<PRIx64>: кобна грешка: непоравнат циљ гране за премештање подршке опуштања"
-#: elf32-sh.c:3785 elf32-sh.c:3801
+#: elf32-sh.c:3783 elf32-sh.c:3799
#, c-format
msgid "%pB: %#<PRIx64>: fatal: unaligned %s relocation %#<PRIx64>"
msgstr "%pB: %#<PRIx64>: кобна грешка: непоравнато премештање „%s“ %#<PRIx64>"
-#: elf32-sh.c:3817
+#: elf32-sh.c:3815
#, c-format
msgid "%pB: %#<PRIx64>: fatal: R_SH_PSHA relocation %<PRId64> not in range -32..32"
msgstr "%pB: %#<PRIx64>: кобна грешка: „R_SH_PSHA“ премештање „%#<PRId64>“ није у опÑегу -32..32"
-#: elf32-sh.c:3833
+#: elf32-sh.c:3831
#, c-format
msgid "%pB: %#<PRIx64>: fatal: R_SH_PSHL relocation %<PRId64> not in range -32..32"
msgstr "%pB: %#<PRIx64>: кобна грешка: „R_SH_PSHL“ премештање „%#<PRId64>“ није у опÑегу -32..32"
-#: elf32-sh.c:3963 elf32-sh.c:4358
+#: elf32-sh.c:3961 elf32-sh.c:4356
#, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot emit fixup to `%s' in read-only section"
msgstr "%pB(%pA+%#<PRIx64>): не могу да унеÑем иÑправке у „%s“ у одељку Ñамо за читање"
-#: elf32-sh.c:4461
+#: elf32-sh.c:4459
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %s relocation against external symbol \"%s\""
msgstr "%pB(%pA+%#<PRIx64>): „%s“ премештање наÑпрам Ñпољног Ñимбола „%s“"
-#: elf32-sh.c:4580
+#: elf32-sh.c:4578
#, c-format
msgid "%pB(%pA): offset in relocation for GD->LE translation is too small: %#<PRIx64>"
msgstr "%pB(%pA): померај у премештању за „GD->LE“ превод је премали: %#<PRIx64>"
#. The backslash is to prevent bogus trigraph detection.
-#: elf32-sh.c:4598
+#: elf32-sh.c:4596
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd4??)"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана инÑтрукција „%#04X“ (очекивах 0xd4??)"
-#: elf32-sh.c:4606
+#: elf32-sh.c:4604
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xc7??)"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана инÑтрукција „%#04X“ (очекивах 0xc7??)"
-#: elf32-sh.c:4613
+#: elf32-sh.c:4611
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd1??)"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана инÑтрукција „%#04X“ (очекивах 0xd1??)"
-#: elf32-sh.c:4620
+#: elf32-sh.c:4618
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x310c)"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана инÑтрукција „%#04X“ (очекивах 0x310c??)"
-#: elf32-sh.c:4627
+#: elf32-sh.c:4625
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x410b)"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана инÑтрукција „%#04X“ (очекивах 0x410b??)"
-#: elf32-sh.c:4634
+#: elf32-sh.c:4632
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x34cc)"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана инÑтрукција „%#04X“ (очекивах 0x34cc??)"
-#: elf32-sh.c:4669
+#: elf32-sh.c:4667
#, c-format
msgid "%pB(%pA): offset in relocation for IE->LE translation is too small: %#<PRIx64>"
msgstr "%pB(%pA): померај у премештању за „IE->LE“ превод је премали: %#<PRIx64>"
-#: elf32-sh.c:4687
+#: elf32-sh.c:4685
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0xd0??: mov.l)"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана инÑтрукција „%#04X“ (очекивах 0xd0??: mov.l)"
-#: elf32-sh.c:4696
+#: elf32-sh.c:4694
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x0?12: stc)"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана инÑтрукција „%#04X“ (очекивах 0x0?12: stc)"
-#: elf32-sh.c:4703
+#: elf32-sh.c:4701
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected instruction %#04X (expected 0x0?ce: mov.l)"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана инÑтрукција „%#04X“ (очекивах 0x0?ce: mov.l)"
-#: elf32-sh.c:4818
+#: elf32-sh.c:4816
#, c-format
msgid "%pB(%pA): offset in relocation for GD->IE translation is too small: %#<PRIx64>"
msgstr "%pB(%pA): померај у премештању за „GD->IE“ превод је премали: %#<PRIx64>"
-#: elf32-sh.c:4886
+#: elf32-sh.c:4884
#, c-format
msgid "%pB(%pA): offset in relocation for LD->LE translation is too small: %#<PRIx64>"
msgstr "%pB(%pA): померај у премештању за „LD->LE“ превод је премали: %#<PRIx64>"
-#: elf32-sh.c:5014
+#: elf32-sh.c:5012
#, c-format
msgid "%X%H: relocation to \"%s\" references a different segment\n"
msgstr "%X%H: премештање у „%s“ Ñтвара упуту другог Ñегмента\n"
-#: elf32-sh.c:5021
+#: elf32-sh.c:5019
#, c-format
msgid "%H: warning: relocation to \"%s\" references a different segment\n"
msgstr "%H: упозорење: премештање у „%s“ Ñтвара упуту другог Ñегмента\n"
-#: elf32-sh.c:5489 elf32-sh.c:5571
+#: elf32-sh.c:5487 elf32-sh.c:5569
#, c-format
msgid "%pB: `%s' accessed both as normal and FDPIC symbol"
msgstr "%pB: „%s“ Ñе приÑтупило и као нормалном и као Ñимболу „FDPIC“"
-#: elf32-sh.c:5495 elf32-sh.c:5576
+#: elf32-sh.c:5493 elf32-sh.c:5574
#, c-format
msgid "%pB: `%s' accessed both as FDPIC and thread local symbol"
msgstr "%pB: „%s“ Ñе приÑтупило и као „FDPIC“-у и као Ñимболу локалне нити"
-#: elf32-sh.c:5526
+#: elf32-sh.c:5524
#, c-format
msgid "%pB: Function descriptor relocation with non-zero addend"
msgstr "%pB: Премештање опиÑника функције Ñа не-нултим Ñабирком"
-#: elf32-sh.c:5733 elf64-alpha.c:4647
+#: elf32-sh.c:5731 elf64-alpha.c:4645
#, c-format
msgid "%pB: TLS local exec code cannot be linked into shared objects"
msgstr "%pB: „TLS“ меÑни извршни код не може бити повезан у дељеним објектима"
-#: elf32-sh.c:5848
+#: elf32-sh.c:5846
#, c-format
msgid "%pB: uses %s instructions while previous modules use %s instructions"
msgstr "%pB: кориÑти „%s“ инÑтрукције док претходни модули кориÑте „%s“ инÑтрукције"
-#: elf32-sh.c:5860
+#: elf32-sh.c:5858
#, c-format
msgid "internal error: merge of architecture '%s' with architecture '%s' produced unknown architecture"
msgstr "унутрашња грешка: Ñтапање архитектуре „%s“ Ñа архитектуром „%s“ је дало непознату архитектуру"
-#: elf32-sh.c:5901
+#: elf32-sh.c:5899
#, c-format
msgid "%pB: uses instructions which are incompatible with instructions used in previous modules"
msgstr "%pB: кориÑти инÑтрукције које ниÑу ÑаглаÑне Ñа инÑтрукцијама коришћеним у претходним модулима"
-#: elf32-sh.c:5914
+#: elf32-sh.c:5912
#, c-format
msgid "%pB: attempt to mix FDPIC and non-FDPIC objects"
msgstr "%pB: покушавам да помешам „FDPIC“ и не-„FDPIC“ објекте"
@@ -3681,118 +3675,118 @@ msgstr "%pB: повезујем датотеке мале крајњоÑти ÑÐ
msgid "%pB: unhandled sparc machine value '%lu' detected during write processing"
msgstr "%pB: необрадива вредноÑÑ‚ „sparc“ машине „%lu“ је откривена за време обрађивања пиÑања"
-#: elf32-spu.c:737
+#: elf32-spu.c:733
msgid "%X%P: overlay section %pA does not start on a cache line\n"
msgstr "%X%P: одељак преклапања „%pA“ не почиње у реду оÑтаве\n"
-#: elf32-spu.c:745
+#: elf32-spu.c:741
msgid "%X%P: overlay section %pA is larger than a cache line\n"
msgstr "%X%P: одељак преклапања „%pA“ је већи од реда оÑтаве\n"
-#: elf32-spu.c:765
+#: elf32-spu.c:761
msgid "%X%P: overlay section %pA is not in cache area\n"
msgstr "%X%P: одељак преклапања „%pA“ није у реду оÑтаве\n"
-#: elf32-spu.c:806
+#: elf32-spu.c:802
#, c-format
msgid "%X%P: overlay sections %pA and %pA do not start at the same address\n"
msgstr "%X%P: одељци преклапања „%pA“ и „%pA“ не почињу на иÑтој адреÑи\n"
-#: elf32-spu.c:1032
+#: elf32-spu.c:1028
#, c-format
msgid "warning: call to non-function symbol %s defined in %pB"
msgstr "упозорење: позив не-функцијÑком Ñимболу „%s“ је дефиниÑан у „%pB“"
-#: elf32-spu.c:1382
+#: elf32-spu.c:1378
#, c-format
msgid "%pA:0x%v lrlive .brinfo (%u) differs from analysis (%u)\n"
msgstr "%pA:0x%v „lrlive .brinfo“ (%u) Ñе разликује од анализе (%u)\n"
-#: elf32-spu.c:1912
+#: elf32-spu.c:1908
#, c-format
msgid "%pB is not allowed to define %s"
msgstr "„%pB“ нема дозволу да дефинише „%s“"
-#: elf32-spu.c:1920
+#: elf32-spu.c:1916
#, c-format
msgid "you are not allowed to define %s in a script"
msgstr "ви немате дозволу да дефинишете „%s“ у Ñкрипти"
-#: elf32-spu.c:1954
+#: elf32-spu.c:1950
#, c-format
msgid "%s in overlay section"
msgstr "„%s“ у одељку преклапања"
-#: elf32-spu.c:1983
+#: elf32-spu.c:1979
msgid "overlay stub relocation overflow"
msgstr "прекорачење премештања окрајка прекривања"
-#: elf32-spu.c:1992 elf64-ppc.c:15346
+#: elf32-spu.c:1988 elf64-ppc.c:15362
msgid "stubs don't match calculated size"
msgstr "окрајци не одговарају израчунатој величини"
-#: elf32-spu.c:2575
+#: elf32-spu.c:2571
#, c-format
msgid "warning: %s overlaps %s\n"
msgstr "упозорење: „%s“ преклапа „%s“\n"
-#: elf32-spu.c:2591
+#: elf32-spu.c:2587
#, c-format
msgid "warning: %s exceeds section size\n"
msgstr "упозорење: „%s“ превазилази величину одељка\n"
-#: elf32-spu.c:2623
+#: elf32-spu.c:2619
#, c-format
msgid "%pA:0x%v not found in function table\n"
msgstr "„%pA:0x%v“ ниÑам нашао у табели функције\n"
-#: elf32-spu.c:2764
+#: elf32-spu.c:2760
#, c-format
msgid "%pB(%pA+0x%v): call to non-code section %pB(%pA), analysis incomplete\n"
msgstr "%pB(%pA+0x%v): позив не-кодном одељку „%pB(%pA)“, анализа је непотпуна\n"
-#: elf32-spu.c:3330
+#: elf32-spu.c:3326
#, c-format
msgid "stack analysis will ignore the call from %s to %s\n"
msgstr "анализа Ñпремника ће занемарити позив од „%s“ до „%s“\n"
-#: elf32-spu.c:4027
+#: elf32-spu.c:4023
msgid " calls:\n"
msgstr " позиви:\n"
-#: elf32-spu.c:4342
+#: elf32-spu.c:4338
#, c-format
msgid "%s duplicated in %s\n"
msgstr "„%s“ је удвоÑтручено у „%s“\n"
-#: elf32-spu.c:4346
+#: elf32-spu.c:4342
#, c-format
msgid "%s duplicated\n"
msgstr "„%s“ је удвоÑтручено\n"
-#: elf32-spu.c:4353
+#: elf32-spu.c:4349
msgid "sorry, no support for duplicate object files in auto-overlay script\n"
msgstr "извините, нема подршке за удвоÑтручене датотеке објекта у Ñкрипти Ñамо-преклапања\n"
-#: elf32-spu.c:4395
+#: elf32-spu.c:4391
#, c-format
msgid "non-overlay size of 0x%v plus maximum overlay size of 0x%v exceeds local store\n"
msgstr "не-преклапајућа величина 0x%v Ð¿Ð»ÑƒÑ Ð½Ð°Ñ˜Ð²ÐµÑ›Ð° величина преклапања 0x%v превазилазе меÑно Ñпремиште\n"
-#: elf32-spu.c:4551
+#: elf32-spu.c:4547
#, c-format
msgid "%pB:%pA%s exceeds overlay size\n"
msgstr "„%pB:%pA%s“ превазилази величину преклапања\n"
-#: elf32-spu.c:4692
+#: elf32-spu.c:4688
msgid "%F%P: auto overlay error: %E\n"
msgstr "%F%P: грешка Ñамопреклапања: %E\n"
-#: elf32-spu.c:4713
+#: elf32-spu.c:4709
msgid "Stack size for call graph root nodes.\n"
msgstr "Величина Ñпремника за позив чворова корена графика.\n"
-#: elf32-spu.c:4714
+#: elf32-spu.c:4710
msgid ""
"\n"
"Stack size for functions. Annotations: '*' max stack, 't' tail call\n"
@@ -3800,83 +3794,83 @@ msgstr ""
"\n"
"Величина Ñпремника за функције. Ðапомене: „*“ највећи Ñпремник, „t“ позив оÑтатка\n"
-#: elf32-spu.c:4724
+#: elf32-spu.c:4720
msgid "Maximum stack required is 0x%v\n"
msgstr "Ðајвећи потребан Ñпремник је 0x%v\n"
-#: elf32-spu.c:4743
+#: elf32-spu.c:4739
msgid "%X%P: stack/lrlive analysis error: %E\n"
msgstr "%X%P: грешка „stack/lrlive“ анализе: %E\n"
-#: elf32-spu.c:4746
+#: elf32-spu.c:4742
msgid "%F%P: can not build overlay stubs: %E\n"
msgstr "%F%P: не могу да изградим окрајке преклапања „%E“\n"
-#: elf32-spu.c:4815
+#: elf32-spu.c:4811
msgid "fatal error while creating .fixup"
msgstr "кобна грешка приликом Ñтварања „.fixup“-а"
-#: elf32-spu.c:5051
+#: elf32-spu.c:5047
#, c-format
msgid "%pB(%s+%#<PRIx64>): unresolvable %s relocation against symbol `%s'"
msgstr "%pB(%s+%#<PRIx64>): нерешиво „%s“ премештање наÑпрам Ñимбола „%s“"
-#: elf32-tic6x.c:1588
+#: elf32-tic6x.c:1587
msgid "warning: generating a shared library containing non-PIC code"
msgstr "упозорење: Ñтварам дељену библиотеку која Ñадржи не-ПИЦ код"
-#: elf32-tic6x.c:1593
+#: elf32-tic6x.c:1592
msgid "warning: generating a shared library containing non-PID code"
msgstr "упозорење: Ñтварам дељену библиотеку која Ñадржи не-ПИД код"
-#: elf32-tic6x.c:2434
+#: elf32-tic6x.c:2426
#, c-format
msgid "%pB: SB-relative relocation but __c6xabi_DSBT_BASE not defined"
msgstr "%pB: премештање Ñе одноÑи на „SB“ али „__c6xabi_DSBT_BASE“ није дефиниÑано"
-#: elf32-tic6x.c:3498
+#: elf32-tic6x.c:3490
#, c-format
msgid "%pB: error: unknown mandatory EABI object attribute %d"
msgstr "%pB: грешка: обавезан „%d“ атрибут „EABI“ објекта није познат"
-#: elf32-tic6x.c:3507
+#: elf32-tic6x.c:3499
#, c-format
msgid "%pB: warning: unknown EABI object attribute %d"
msgstr "%pB: упозорење: „%d“ атрибут „EABI“ објекта није познат"
-#: elf32-tic6x.c:3625 elf32-tic6x.c:3634
+#: elf32-tic6x.c:3617 elf32-tic6x.c:3626
#, c-format
msgid "error: %pB requires more stack alignment than %pB preserves"
msgstr "грешка: „%pB“ захтева веће поравнање Ñпремника него што „%pB“ Ñадржи"
-#: elf32-tic6x.c:3644 elf32-tic6x.c:3653
+#: elf32-tic6x.c:3636 elf32-tic6x.c:3645
#, c-format
msgid "error: unknown Tag_ABI_array_object_alignment value in %pB"
msgstr "грешка: непозната вредноÑÑ‚ „Tag_ABI_array_object_alignment“ у „%pB“"
-#: elf32-tic6x.c:3662 elf32-tic6x.c:3671
+#: elf32-tic6x.c:3654 elf32-tic6x.c:3663
#, c-format
msgid "error: unknown Tag_ABI_array_object_align_expected value in %pB"
msgstr "грешка: непозната вредноÑÑ‚ „Tag_ABI_array_object_align_expected“ у „%pB“"
-#: elf32-tic6x.c:3680 elf32-tic6x.c:3688
+#: elf32-tic6x.c:3672 elf32-tic6x.c:3680
#, c-format
msgid "error: %pB requires more array alignment than %pB preserves"
msgstr "грешка: „%pB“ захтева веће поравнање низа него што „%pB“ Ñадржи"
-#: elf32-tic6x.c:3711
+#: elf32-tic6x.c:3703
#, c-format
msgid "warning: %pB and %pB differ in wchar_t size"
msgstr "упозорење: „%pB“ и „%pB“ имају различите „wchar_t“"
-#: elf32-tic6x.c:3730
+#: elf32-tic6x.c:3722
#, c-format
msgid "warning: %pB and %pB differ in whether code is compiled for DSBT"
msgstr "упозорење: „%pB“ и „%pB“ Ñе разликују по томе да ли је код преведен за „DSBT“"
-#: elf32-tilepro.c:3626 elfxx-tilegx.c:4018 elfxx-x86.c:2727
-#: elfnn-aarch64.c:10453 elfnn-kvx.c:4633 elfnn-loongarch.c:5850
-#: elfnn-riscv.c:3617
+#: elf32-tilepro.c:3624 elfxx-tilegx.c:4017 elfxx-x86.c:2773
+#: elfnn-aarch64.c:10343 elfnn-kvx.c:4628 elfnn-loongarch.c:6062
+#: elfnn-riscv.c:3615
#, c-format
msgid "discarded output section: `%pA'"
msgstr "одбачени одељак излаза: „%pA“"
@@ -3910,221 +3904,221 @@ msgstr "променљива „%s“ не може бити иÑтовремеÐ
msgid "failed to find previous HI16 reloc"
msgstr "ниÑам уÑпео да нађем претходно „HI16“ премештање"
-#: elf32-v850.c:2306
+#: elf32-v850.c:2309
msgid "could not locate special linker symbol __gp"
msgstr "не могу да нађем нарочит „__gp“ Ñимбол повезивача"
-#: elf32-v850.c:2310
+#: elf32-v850.c:2313
msgid "could not locate special linker symbol __ep"
msgstr "не могу да нађем нарочит „__ep“ Ñимбол повезивача"
-#: elf32-v850.c:2314
+#: elf32-v850.c:2317
msgid "could not locate special linker symbol __ctbp"
msgstr "не могу да нађем нарочит „__ctbp“ Ñимбол повезивача"
-#: elf32-v850.c:2535
+#: elf32-v850.c:2538
#, c-format
msgid "error: %pB needs 8-byte alignment but %pB is set for 4-byte alignment"
msgstr "грешка: „%pBд захтева 8-битно поравнање али је „%pB“ подешено на 4-битно"
-#: elf32-v850.c:2551
+#: elf32-v850.c:2554
#, c-format
msgid "error: %pB uses 64-bit doubles but %pB uses 32-bit doubles"
msgstr "грешка: „%pB“ кориÑти 64-битне дублере али „%pB“ кориÑти 32-битне"
-#: elf32-v850.c:2566
+#: elf32-v850.c:2569
#, c-format
msgid "error: %pB uses FPU-3.0 but %pB only supports FPU-2.0"
msgstr "грешка: „%pB“ кориÑти „FPU-3.0“ али „%pB“ подржава Ñамо „FPU-2.0“"
-#: elf32-v850.c:2598
+#: elf32-v850.c:2601
#, c-format
msgid " alignment of 8-byte entities: "
msgstr " поравнање 8-битних ентитета: "
-#: elf32-v850.c:2601
+#: elf32-v850.c:2604
#, c-format
msgid "4-byte"
msgstr "4-бита"
-#: elf32-v850.c:2602
+#: elf32-v850.c:2605
#, c-format
msgid "8-byte"
msgstr "8-бита"
-#: elf32-v850.c:2603 elf32-v850.c:2615
+#: elf32-v850.c:2606 elf32-v850.c:2618
#, c-format
msgid "not set"
msgstr "није подешено"
-#: elf32-v850.c:2604 elf32-v850.c:2616 elf32-v850.c:2628 elf32-v850.c:2639
-#: elf32-v850.c:2650 elf32-v850.c:2661
+#: elf32-v850.c:2607 elf32-v850.c:2619 elf32-v850.c:2631 elf32-v850.c:2642
+#: elf32-v850.c:2653 elf32-v850.c:2664
#, c-format
msgid "unknown: %x"
msgstr "непознато: %x"
-#: elf32-v850.c:2610
+#: elf32-v850.c:2613
#, c-format
msgid " size of doubles: "
msgstr " величина дублера: "
-#: elf32-v850.c:2613
+#: elf32-v850.c:2616
#, c-format
msgid "4-bytes"
msgstr "4-бајта"
-#: elf32-v850.c:2614
+#: elf32-v850.c:2617
#, c-format
msgid "8-bytes"
msgstr "8-бајта"
-#: elf32-v850.c:2622
+#: elf32-v850.c:2625
#, c-format
msgid " FPU support required: "
msgstr " „FPU“ подршка је потребна: "
-#: elf32-v850.c:2625
+#: elf32-v850.c:2628
#, c-format
msgid "FPU-2.0"
msgstr "FPU-2.0"
-#: elf32-v850.c:2626
+#: elf32-v850.c:2629
#, c-format
msgid "FPU-3.0"
msgstr "FPU-3.0"
-#: elf32-v850.c:2627
+#: elf32-v850.c:2630
#, c-format
msgid "none"
msgstr "ништа"
-#: elf32-v850.c:2634
+#: elf32-v850.c:2637
#, c-format
msgid "SIMD use: "
msgstr "„SIMD“ коришћење: "
-#: elf32-v850.c:2637 elf32-v850.c:2648 elf32-v850.c:2659
+#: elf32-v850.c:2640 elf32-v850.c:2651 elf32-v850.c:2662
#, c-format
msgid "yes"
msgstr "да"
-#: elf32-v850.c:2638 elf32-v850.c:2649 elf32-v850.c:2660
+#: elf32-v850.c:2641 elf32-v850.c:2652 elf32-v850.c:2663
#, c-format
msgid "no"
msgstr "не"
-#: elf32-v850.c:2645
+#: elf32-v850.c:2648
#, c-format
msgid "CACHE use: "
msgstr "„CACHE“ коришћење: "
-#: elf32-v850.c:2656
+#: elf32-v850.c:2659
#, c-format
msgid "MMU use: "
msgstr "„MMU“ коришћење: "
-#: elf32-v850.c:2823 elf32-v850.c:2879
+#: elf32-v850.c:2826 elf32-v850.c:2882
#, c-format
msgid "%pB: architecture mismatch with previous modules"
msgstr "%pB: архитектура Ñе разликује од претходних модула"
#. xgettext:c-format.
-#: elf32-v850.c:2897
+#: elf32-v850.c:2900
#, c-format
msgid "private flags = %lx: "
msgstr "приватне заÑтавице = %lx: "
-#: elf32-v850.c:2902
+#: elf32-v850.c:2905
#, c-format
msgid "unknown v850 architecture"
msgstr "непозната архитектура „v850“"
-#: elf32-v850.c:2904
+#: elf32-v850.c:2907
#, c-format
msgid "v850 E3 architecture"
msgstr "архитектура „v850 E3“"
-#: elf32-v850.c:2906 elf32-v850.c:2913
+#: elf32-v850.c:2909 elf32-v850.c:2916
#, c-format
msgid "v850 architecture"
msgstr "архитектура „v850“"
-#: elf32-v850.c:2914
+#: elf32-v850.c:2917
#, c-format
msgid "v850e architecture"
msgstr "архитектура „v850e“"
-#: elf32-v850.c:2915
+#: elf32-v850.c:2918
#, c-format
msgid "v850e1 architecture"
msgstr "архитектура „v850e1“"
-#: elf32-v850.c:2916
+#: elf32-v850.c:2919
#, c-format
msgid "v850e2 architecture"
msgstr "архитектура „v850e2“"
-#: elf32-v850.c:2917
+#: elf32-v850.c:2920
#, c-format
msgid "v850e2v3 architecture"
msgstr "архитектура „v850e2v3“"
-#: elf32-v850.c:2918
+#: elf32-v850.c:2921
#, c-format
msgid "v850e3v5 architecture"
msgstr "архитектура „v850e3v5“"
-#: elf32-v850.c:3592 elf32-v850.c:3831
+#: elf32-v850.c:3595 elf32-v850.c:3834
#, c-format
msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized insns"
msgstr "%pB: %#<PRIx64>: упозорење: „%s“ показује на непознат улазни знак"
-#: elf32-v850.c:3602 elf32-v850.c:3841
+#: elf32-v850.c:3605 elf32-v850.c:3844
#, c-format
msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized insn %#x"
msgstr "%pB: %#<PRIx64>: упозорење: „%s“ показује на непознат улазни знак „%#x“"
-#: elf32-v850.c:3648 elf32-v850.c:3876
+#: elf32-v850.c:3651 elf32-v850.c:3879
#, c-format
msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized reloc"
msgstr "%pB: %#<PRIx64>: упозорење: „%s“ показује на непознато премештање"
-#: elf32-v850.c:3688
+#: elf32-v850.c:3691
#, c-format
msgid "%pB: %#<PRIx64>: warning: %s points to unrecognized reloc %#<PRIx64>"
msgstr "%pB: %#<PRIx64>: упозорење: „%s“ показује на непознато премештање „%#<PRIx64>“"
-#: elf32-vax.c:538
+#: elf32-vax.c:537
#, c-format
msgid " [nonpic]"
msgstr " [не-пиц]"
-#: elf32-vax.c:541
+#: elf32-vax.c:540
#, c-format
msgid " [d-float]"
msgstr " [d-покретни зарез]"
-#: elf32-vax.c:544
+#: elf32-vax.c:543
#, c-format
msgid " [g-float]"
msgstr " [g-покретни зарез]"
-#: elf32-vax.c:630
+#: elf32-vax.c:629
#, c-format
msgid "%pB: warning: GOT addend of %<PRId64> to `%s' does not match previous GOT addend of %<PRId64>"
msgstr "%pB: упозорење: „GOT“ Ñабирак „%<PRId64>“-а за „%s“ не одговара претходном „GOT“ Ñабирку „%<PRId64>“-а"
-#: elf32-vax.c:1388
+#: elf32-vax.c:1387
#, c-format
msgid "%pB: warning: PLT addend of %<PRId64> to `%s' from %pA section ignored"
msgstr "%pB: упозорење: „PLT“ Ñабирак „%<PRId64>“-а за „%s“ из одељка „%pA“ је занемарен"
-#: elf32-vax.c:1514
+#: elf32-vax.c:1513
#, c-format
msgid "%pB: warning: %s relocation against symbol `%s' from %pA section"
msgstr "%pB: упозорење: „%s“ премештање наÑпрам Ñимбола „%s“ из одељка „%pA“"
-#: elf32-vax.c:1521
+#: elf32-vax.c:1520
#, c-format
msgid "%pB: warning: %s relocation to %#<PRIx64> from %pA section"
msgstr "%pB: упозорење: „%s“ премештање у %#<PRIx64> из одељка „%pA“"
@@ -4144,60 +4138,60 @@ msgstr "процеÑор=XGATE]"
msgid "error reading cpu type from elf private data"
msgstr "грешка читања врÑте процеÑора из личних података елф-а"
-#: elf32-xstormy16.c:457 elf64-ia64-vms.c:2077 elfnn-ia64.c:2346
+#: elf32-xstormy16.c:457 elf64-ia64-vms.c:2076 elfnn-ia64.c:2345
msgid "non-zero addend in @fptr reloc"
msgstr "не-нулти Ñабирак у „@fptr“ премештању"
-#: elf32-xtensa.c:998
+#: elf32-xtensa.c:996
#, c-format
msgid "%pB(%pA): invalid property table"
msgstr "%pB(%pA): неиÑправна табела влаÑништва"
-#: elf32-xtensa.c:2732
+#: elf32-xtensa.c:2730
#, c-format
msgid "%pB(%pA+%#<PRIx64>): relocation offset out of range (size=%#<PRIx64>)"
msgstr "%pB(%pA+%#<PRIx64>): померај премештања је ван опÑега (величина=%#<PRIx64>)"
-#: elf32-xtensa.c:2815 elf32-xtensa.c:2938
+#: elf32-xtensa.c:2813 elf32-xtensa.c:2936
msgid "dynamic relocation in read-only section"
msgstr "динамичко премештање у одељку Ñамо за читање"
-#: elf32-xtensa.c:2915
+#: elf32-xtensa.c:2913
msgid "TLS relocation invalid without dynamic sections"
msgstr "ТЛС премештање је неиÑправно без динамичких одељака"
-#: elf32-xtensa.c:3128
+#: elf32-xtensa.c:3126
msgid "internal inconsistency in size of .got.loc section"
msgstr "унутрашња недоÑледноÑÑ‚ у величини одељка „.got.loc“"
-#: elf32-xtensa.c:3434
+#: elf32-xtensa.c:3432
#, c-format
msgid "%pB: incompatible machine type; output is 0x%x; input is 0x%x"
msgstr "%pB: неÑаглаÑна врÑта машине; излаз је 0x%x, а улаз 0x%x"
-#: elf32-xtensa.c:4733 elf32-xtensa.c:4741
+#: elf32-xtensa.c:4731 elf32-xtensa.c:4739
msgid "attempt to convert L32R/CALLX to CALL failed"
msgstr "покушај претварања „L32R/CALLX“ у „CALL“ није уÑпео"
-#: elf32-xtensa.c:6573 elf32-xtensa.c:6652 elf32-xtensa.c:8078
+#: elf32-xtensa.c:6567 elf32-xtensa.c:6646 elf32-xtensa.c:8072
#, c-format
msgid "%pB(%pA+%#<PRIx64>): could not decode instruction; possible configuration mismatch"
msgstr "%pB(%pA+%#<PRIx64>): не могу да декодирам инÑтрукцију; вероватно је подешавање погрешно"
-#: elf32-xtensa.c:7819
+#: elf32-xtensa.c:7813
#, c-format
msgid "%pB(%pA+%#<PRIx64>): could not decode instruction for XTENSA_ASM_SIMPLIFY relocation; possible configuration mismatch"
msgstr "%pB(%pA+%#<PRIx64>): не могу да декодирам инÑтрукцију за „XTENSA_ASM_SIMPLIFY“ премештање; вероватно је подешавање погрешно"
-#: elf32-xtensa.c:9677
+#: elf32-xtensa.c:9671
msgid "invalid relocation address"
msgstr "неиÑправна адреÑа премештања"
-#: elf32-xtensa.c:9768
+#: elf32-xtensa.c:9762
msgid "overflow after relaxation"
msgstr "прекорачење након опуштања"
-#: elf32-xtensa.c:10914
+#: elf32-xtensa.c:10908
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unexpected fix for %s relocation"
msgstr "%pB(%pA+%#<PRIx64>): неочекивана иÑправка за „%s“ премештање"
@@ -4217,66 +4211,66 @@ msgstr "%pB: неподржано поклапање „%#x“"
msgid "%pB: unsupported arch %#x"
msgstr "%pB: неподржана архитектура „%#x“"
-#: elf64-alpha.c:474
+#: elf64-alpha.c:472
msgid "GPDISP relocation did not find ldah and lda instructions"
msgstr "„GPDISP“ премештање није нашло инÑтрукције „ldah“ и „lda“"
-#: elf64-alpha.c:1985
+#: elf64-alpha.c:1983
#, c-format
msgid "%pB: dynamic relocation against a local symbol in read-only section `%pA'\n"
msgstr "%pB: динамичко премештање за локални Ñимбол у одељку „%pA“ Ñамо за читање\n"
-#: elf64-alpha.c:2437
+#: elf64-alpha.c:2435
#, c-format
msgid "%pB: .got subsegment exceeds 64K (size %d)"
msgstr "%pB: под-подеок „.got“ превазилази 64K (величина је %d)"
-#: elf64-alpha.c:2680 elflink.c:15728 elfnn-kvx.c:4020 elfnn-loongarch.c:1927
+#: elf64-alpha.c:2678 elflink.c:15697 elfnn-kvx.c:4015 elfnn-loongarch.c:2007
#, c-format
msgid "%pB: dynamic relocation against `%pT' in read-only section `%pA'\n"
msgstr "%pB: премештање наÑпрам „%pT“ у одељку „%pA“ који је Ñамо за читање\n"
-#: elf64-alpha.c:2976 elf64-alpha.c:3171
+#: elf64-alpha.c:2974 elf64-alpha.c:3169
#, c-format
msgid "%pB: %pA+%#<PRIx64>: warning: %s relocation against unexpected insn"
msgstr "%pB: %pA+%#<PRIx64>: упозорење: „%s“ премештање неочекиваног улазног знака"
-#: elf64-alpha.c:4371 elf64-alpha.c:4384
+#: elf64-alpha.c:4369 elf64-alpha.c:4382
#, c-format
msgid "%pB: gp-relative relocation against dynamic symbol %s"
msgstr "%pB: „gp“-одноÑно премештање наÑпрам динамичког Ñимбола „%s“"
-#: elf64-alpha.c:4440
+#: elf64-alpha.c:4438
#, c-format
msgid "%pB: change in gp: BRSGP %s"
msgstr "%pB: измена у „gp“-у: BRSGP %s"
-#: elf64-alpha.c:4465 mach-o.c:625 elfnn-loongarch.c:868 elfnn-riscv.c:726
-#: elfnn-riscv.c:931 elfnn-riscv.c:973
+#: elf64-alpha.c:4463 mach-o.c:625 elfnn-loongarch.c:908 elfnn-riscv.c:724
+#: elfnn-riscv.c:929 elfnn-riscv.c:971
msgid "<unknown>"
msgstr "<непознато>"
-#: elf64-alpha.c:4471
+#: elf64-alpha.c:4469
#, c-format
msgid "%pB: !samegp reloc against symbol without .prologue: %s"
msgstr "%pB: „!samegp“ премештање наÑпрам Ñимбола без „.prologue“-а: %s"
-#: elf64-alpha.c:4529
+#: elf64-alpha.c:4527
#, c-format
msgid "%pB: unhandled dynamic relocation against %s"
msgstr "%pB: необрађено динамичко премештање наÑпрам „%s“"
-#: elf64-alpha.c:4564
+#: elf64-alpha.c:4562
#, c-format
msgid "%pB: pc-relative relocation against undefined weak symbol %s"
msgstr "%pB: „pc“-одноÑно премештање наÑпрам недефиниÑаног Ñлабог Ñимбола „%s“"
-#: elf64-alpha.c:4630
+#: elf64-alpha.c:4628
#, c-format
msgid "%pB: dtp-relative relocation against dynamic symbol %s"
msgstr "%pB: „dtp“-одноÑно премештање наÑпрам динамичког Ñимбола „%s“"
-#: elf64-alpha.c:4655
+#: elf64-alpha.c:4653
#, c-format
msgid "%pB: tp-relative relocation against dynamic symbol %s"
msgstr "%pB: „tp“-одноÑно премештање наÑпрам динамичког Ñимбола „%s“"
@@ -4291,12 +4285,12 @@ msgstr "унутрашња грешка: премештање није подрÐ
msgid "%pB: Relocations in generic ELF (EM: %d)"
msgstr "%pB: Премештања у општем „ELF“-у (EM: %d)"
-#: elf64-hppa.c:2036
+#: elf64-hppa.c:2035
#, c-format
msgid "stub entry for %s cannot load .plt, dp offset = %<PRId64>"
msgstr "ÑƒÐ½Ð¾Ñ Ð¾ÐºÑ€Ð°Ñ˜ÐºÐ° за „%s“ не може да учита „.plt“, померај „dp“ = %<PRId64>"
-#: elf64-hppa.c:3240
+#: elf64-hppa.c:3239
#, c-format
msgid "%pB(%pA+%#<PRIx64>): cannot reach %s"
msgstr "%pB(%pA+%#<PRIx64>): не може доÑтићи „%s“"
@@ -4306,100 +4300,100 @@ msgstr "%pB(%pA+%#<PRIx64>): не може доÑтићи „%s“"
msgid "%pB: can't relax br at %#<PRIx64> in section `%pA'; please use brl or indirect branch"
msgstr "%pB: не могу да опуÑтим „br“ на %#<PRIx64> у одељку „%pA“; кориÑтите „brl“ или индиректну грану"
-#: elf64-ia64-vms.c:2032 elfnn-ia64.c:2294
+#: elf64-ia64-vms.c:2031 elfnn-ia64.c:2293
msgid "@pltoff reloc against local symbol"
msgstr "„@pltoff“ премештање наÑпрам локалног Ñимбола"
-#: elf64-ia64-vms.c:3279 elfnn-ia64.c:3672
+#: elf64-ia64-vms.c:3278 elfnn-ia64.c:3671
#, c-format
msgid "%pB: short data segment overflowed (%#<PRIx64> >= 0x400000)"
msgstr "%pB: прекорачење Ñегмента кратких података (%#<PRIx64> >= 0x400000)"
-#: elf64-ia64-vms.c:3289 elfnn-ia64.c:3682
+#: elf64-ia64-vms.c:3288 elfnn-ia64.c:3681
#, c-format
msgid "%pB: __gp does not cover short data segment"
msgstr "%pB: „__gp“ не покрива Ñегмент кратких података"
-#: elf64-ia64-vms.c:3559 elfnn-ia64.c:3955
+#: elf64-ia64-vms.c:3558 elfnn-ia64.c:3954
#, c-format
msgid "%pB: non-pic code with imm relocation against dynamic symbol `%s'"
msgstr "%pB: не-„pic“ код Ñа „imm“ премештањем наÑпрам динамичког Ñимбола „%s“"
-#: elf64-ia64-vms.c:3623 elfnn-ia64.c:4023
+#: elf64-ia64-vms.c:3622 elfnn-ia64.c:4022
#, c-format
msgid "%pB: @gprel relocation against dynamic symbol %s"
msgstr "%pB: „@gprel“ премештање наÑпрам динамичког Ñимбола „%s“"
-#: elf64-ia64-vms.c:3682 elfnn-ia64.c:4086
+#: elf64-ia64-vms.c:3681 elfnn-ia64.c:4085
#, c-format
msgid "%pB: linking non-pic code in a position independent executable"
msgstr "%pB: повезујем не-„pic“ код у извршном незавиÑном од положаја"
-#: elf64-ia64-vms.c:3784 elfnn-ia64.c:4224
+#: elf64-ia64-vms.c:3783 elfnn-ia64.c:4223
#, c-format
msgid "%pB: @internal branch to dynamic symbol %s"
msgstr "%pB: „@internal“ грана ка динамичком Ñимболу „%s“"
-#: elf64-ia64-vms.c:3787 elfnn-ia64.c:4227
+#: elf64-ia64-vms.c:3786 elfnn-ia64.c:4226
#, c-format
msgid "%pB: speculation fixup to dynamic symbol %s"
msgstr "%pB: разматрам иÑправку динамичког Ñимбола „%s“"
-#: elf64-ia64-vms.c:3790 elfnn-ia64.c:4230
+#: elf64-ia64-vms.c:3789 elfnn-ia64.c:4229
#, c-format
msgid "%pB: @pcrel relocation against dynamic symbol %s"
msgstr "%pB: „@pcrel“ премештање наÑпрам динамичког Ñимбола „%s“"
-#: elf64-ia64-vms.c:3914 elfnn-ia64.c:4427
+#: elf64-ia64-vms.c:3913 elfnn-ia64.c:4426
msgid "unsupported reloc"
msgstr "неподржано премештање"
-#: elf64-ia64-vms.c:3951 elfnn-ia64.c:4465
+#: elf64-ia64-vms.c:3950 elfnn-ia64.c:4464
#, c-format
msgid "%pB: missing TLS section for relocation %s against `%s' at %#<PRIx64> in section `%pA'."
msgstr "%pB: недоÑтаје „TLS“ одељак за „%s“ премештање наÑпрам „%s“ на %#<PRIx64> у одељку „%pA“."
-#: elf64-ia64-vms.c:3968 elfnn-ia64.c:4482
+#: elf64-ia64-vms.c:3967 elfnn-ia64.c:4481
#, c-format
msgid "%pB: Can't relax br (%s) to `%s' at %#<PRIx64> in section `%pA' with size %#<PRIx64> (> 0x1000000)."
msgstr "%pB: Ðе могу да опуÑтим „br“ (%s) у „%s“ на %#<PRIx64> у одељку „%pA“ Ñа величином %#<PRIx64> (> 0x1000000)."
-#: elf64-ia64-vms.c:4262 elfnn-ia64.c:4741
+#: elf64-ia64-vms.c:4261 elfnn-ia64.c:4740
#, c-format
msgid "%pB: linking trap-on-NULL-dereference with non-trapping files"
msgstr "%pB: повезујем захват-на-ÐИШТÐÐ’ÐОЈ-дереференци Ñа не-захватним датотекама"
-#: elf64-ia64-vms.c:4271 elfnn-ia64.c:4750
+#: elf64-ia64-vms.c:4270 elfnn-ia64.c:4749
#, c-format
msgid "%pB: linking big-endian files with little-endian files"
msgstr "%pB: повезујем датотеке велике крајњоÑти Ñа датотекама мале крајњоÑти"
-#: elf64-ia64-vms.c:4280 elfnn-ia64.c:4759
+#: elf64-ia64-vms.c:4279 elfnn-ia64.c:4758
#, c-format
msgid "%pB: linking 64-bit files with 32-bit files"
msgstr "%pB: повезујем 64-битне датотеке Ñа 32-битним датотекама"
-#: elf64-ia64-vms.c:4289 elfnn-ia64.c:4768
+#: elf64-ia64-vms.c:4288 elfnn-ia64.c:4767
#, c-format
msgid "%pB: linking constant-gp files with non-constant-gp files"
msgstr "%pB: повезујем датотеке „конÑтантног-гп“-а Ñа датотекама „не-конÑтантног-гп“-а"
-#: elf64-ia64-vms.c:4299 elfnn-ia64.c:4778
+#: elf64-ia64-vms.c:4298 elfnn-ia64.c:4777
#, c-format
msgid "%pB: linking auto-pic files with non-auto-pic files"
msgstr "%pB: повезујем датотеке ауто-„pic“-а Ñа датотекама не-ауто-„pic“"
-#: elf64-ia64-vms.c:5149 elflink.c:5490
+#: elf64-ia64-vms.c:5148 elflink.c:5491
#, c-format
msgid "warning: alignment %u of common symbol `%s' in %pB is greater than the alignment (%u) of its section %pA"
msgstr "упозорење: „%u“ поравнање општег Ñимбола „%s“ у „%pB“ је веће од поравнања (%u) његовог одељка „%pA“"
-#: elf64-ia64-vms.c:5156
+#: elf64-ia64-vms.c:5155
#, c-format
msgid "warning: alignment %u of symbol `%s' in %pB is smaller than %u in %pB"
msgstr "упозорење: „%u“ поравнање Ñимбола „%s“ у „%pB“ је мање од „%u“ у „%pB“"
-#: elf64-ia64-vms.c:5172 elflink.c:5519
+#: elf64-ia64-vms.c:5171 elflink.c:5520
#, c-format
msgid "warning: size of symbol `%s' changed from %<PRIu64> in %pB to %<PRIu64> in %pB"
msgstr "упозорење: величина Ñимбола „%s“ је измењена из „%<PRIx64>“ у „%pB“ у „%<PRIx64>“ у „%pB“"
@@ -4409,15 +4403,15 @@ msgstr "упозорење: величина Ñимбола „%s“ је изм
msgid "%pB(%pA): relocation %<PRIu64> has invalid symbol index %ld"
msgstr "%pB(%pA): премештање „%<PRIx64>“ има неиÑправан Ð¸Ð½Ð´ÐµÐºÑ Ñимбола %ld"
-#: elf64-mmix.c:984
+#: elf64-mmix.c:980
msgid "invalid input relocation when producing non-ELF, non-mmo format output; please use the objcopy program to convert from ELF or mmo, or assemble using \"-no-expand\" (for gcc, \"-Wa,-no-expand\""
msgstr "неиÑправно премештање улаза приликом давања не-„ELF“, не-„mmo“ запиÑа излаза; кориÑтите програм „objcopy“ да претворите из „ELF“-а или „mmo“-а, или ÑаÑтавите кориÑтећи „-no-expand“ (за гцц, „-Wa,-no-expand“)"
-#: elf64-mmix.c:1168
+#: elf64-mmix.c:1164
msgid "invalid input relocation when producing non-ELF, non-mmo format output; please use the objcopy program to convert from ELF or mmo, or compile using the gcc-option \"-mno-base-addresses\"."
msgstr "неиÑправно премештање улаза приликом давања не-„ELF“, не-„mmo“ запиÑа излаза; кориÑтите програм „objcopy“ да претворите из „ELF“-а или „mmo“-а, или преведите кориÑтећи гцц-опцију „-mno-base-addresses“."
-#: elf64-mmix.c:1195
+#: elf64-mmix.c:1191
#, c-format
msgid ""
"%pB: Internal inconsistency error for value for\n"
@@ -4426,46 +4420,46 @@ msgstr ""
"%pB: Унутрашња грешка недоÑледноÑти за вредноÑÑ‚ за\n"
" општи региÑтар додељен повезивачем: повезано: %#<PRIx64> != опуштено: %#<PRIx64>"
-#: elf64-mmix.c:1619
+#: elf64-mmix.c:1615
#, c-format
msgid "%pB: base-plus-offset relocation against register symbol: (unknown) in %pA"
msgstr "%pB: премештање оÑнове Ð¿Ð»ÑƒÑ Ð¿Ð¾Ð¼ÐµÑ€Ð°Ñ˜ наÑпрам Ñимбола региÑтра: (непознато) у „%pA“"
-#: elf64-mmix.c:1625
+#: elf64-mmix.c:1621
#, c-format
msgid "%pB: base-plus-offset relocation against register symbol: %s in %pA"
msgstr "%pB: премештање оÑнове Ð¿Ð»ÑƒÑ Ð¿Ð¾Ð¼ÐµÑ€Ð°Ñ˜ наÑпрам Ñимбола региÑтра: „%s“ у „%pA“"
-#: elf64-mmix.c:1670
+#: elf64-mmix.c:1666
#, c-format
msgid "%pB: register relocation against non-register symbol: (unknown) in %pA"
msgstr "%pB: премештање региÑтра наÑпрам Ñимбола не-региÑтра: (непознато) у „%pA“"
-#: elf64-mmix.c:1676
+#: elf64-mmix.c:1672
#, c-format
msgid "%pB: register relocation against non-register symbol: %s in %pA"
msgstr "%pB: премештање региÑтра наÑпрам Ñимбола не-региÑтра: „%s“ у „%pA“"
-#: elf64-mmix.c:1713
+#: elf64-mmix.c:1709
#, c-format
msgid "%pB: directive LOCAL valid only with a register or absolute value"
msgstr "%pB: директива „LOCAL“ је иÑправна Ñамо Ñа региÑтром или апÑолутном вредношћу"
-#: elf64-mmix.c:1742
+#: elf64-mmix.c:1738
#, c-format
msgid "%pB: LOCAL directive: register $%<PRId64> is not a local register; first global register is $%<PRId64>"
msgstr "%pB: директива „LOCAL“: региÑтар „$%<PRId64>“ није меÑни региÑтар; први општи региÑтар је „$%<PRId64>“"
-#: elf64-mmix.c:2157
+#: elf64-mmix.c:2153
#, c-format
msgid "%pB: error: multiple definition of `%s'; start of %s is set in a earlier linked file"
msgstr "%pB: грешка: неколико дефиниција за „%s“; почетак „%s“ је подешен у раније повезаној датотеци"
-#: elf64-mmix.c:2212
+#: elf64-mmix.c:2208
msgid "register section has contents\n"
msgstr "одељак региÑтра има Ñадржај\n"
-#: elf64-mmix.c:2402
+#: elf64-mmix.c:2398
#, c-format
msgid "internal inconsistency: remaining %lu != max %lu; please report this bug"
msgstr "унутрашња недоÑледноÑÑ‚: преоÑтаје %lu != max %lu; пријавите ову грешку"
@@ -4475,65 +4469,65 @@ msgstr "унутрашња недоÑледноÑÑ‚: преоÑтаје %lu != m
msgid "warning: %s should be used rather than %s"
msgstr "упозорење: „%s“ Ñе треба кориÑтити умеÑто „%s“"
-#: elf64-ppc.c:4307
+#: elf64-ppc.c:4302
#, c-format
msgid "symbol '%s' has invalid st_other for ABI version 1"
msgstr "Ñимбол „%s“ има неиÑправан „st_other“ за ÐБИ издање 1"
-#: elf64-ppc.c:4490
+#: elf64-ppc.c:4485
#, c-format
msgid "%pB .opd not allowed in ABI version %d"
msgstr "%pB: „.opd“ није допуштен у „ABI“ издање %d"
-#: elf64-ppc.c:5103
+#: elf64-ppc.c:5107
#, c-format
msgid "%H: %s reloc unsupported in shared libraries and PIEs\n"
msgstr "%H: „%s“ премештање није подржано у дељеним библиотекама и „PIE“-има\n"
-#: elf64-ppc.c:5273
+#: elf64-ppc.c:5277
msgid "%H: %s reloc unsupported here\n"
msgstr "%H: „%s“ премештање није подржано овде\n"
-#: elf64-ppc.c:5496
+#: elf64-ppc.c:5500
#, c-format
msgid "%pB uses unknown e_flags 0x%lx"
msgstr "„%pB“ кориÑти непознато „e_flags“ 0x%lx"
-#: elf64-ppc.c:5504
+#: elf64-ppc.c:5508
#, c-format
msgid "%pB: ABI version %ld is not compatible with ABI version %ld output"
msgstr "%pB: „ABI“ издање %ld није ÑаглаÑно Ñа „ABI“ издања %ld"
-#: elf64-ppc.c:5531
+#: elf64-ppc.c:5535
#, c-format
msgid " [abiv%ld]"
msgstr " [abiv%ld]"
-#: elf64-ppc.c:6835
+#: elf64-ppc.c:6844
msgid "%P: copy reloc against `%pT' requires lazy plt linking; avoid setting LD_BIND_NOW=1 or upgrade gcc\n"
msgstr "%P: премештање умножавања наÑпрам „%pT“ захтева лењо „plt“ повезивање; избегавајте подешавање „LD_BIND_NOW=1“ или надоградите гцц\n"
-#: elf64-ppc.c:7102
+#: elf64-ppc.c:7111
#, c-format
msgid "%pB: undefined symbol on R_PPC64_TOCSAVE relocation"
msgstr "%pB: неодређени Ñимбол на „R_PPC64_TOCSAVE“ премештању"
-#: elf64-ppc.c:7353
+#: elf64-ppc.c:7362
#, c-format
msgid "dynreloc miscount for %pB, section %pA"
msgstr "грешка бројања динамичког премештања за „%pB“, одељак „%pA“"
-#: elf64-ppc.c:7444
+#: elf64-ppc.c:7453
#, c-format
msgid "%pB: .opd is not a regular array of opd entries"
msgstr "%pB: „.opd“ није регуларан низ уноÑа операнда"
-#: elf64-ppc.c:7454
+#: elf64-ppc.c:7463
#, c-format
msgid "%pB: unexpected reloc type %u in .opd section"
msgstr "%pB: неочекивана врÑта премештања „%u“ у „.opd“ одељку"
-#: elf64-ppc.c:7476
+#: elf64-ppc.c:7485
#, c-format
msgid "%pB: undefined sym `%s' in .opd section"
msgstr "%pB: неодређени Ñимбол „%s“ у „.opd“ одељку"
@@ -4545,77 +4539,77 @@ msgstr "%pB: неодређени Ñимбол „%s“ у „.opd“ одељк
#. __glink_PLTresolve save of r2 is incompatible with code
#. making tail calls, because the tail call might go via the
#. resolver and thus overwrite the proper saved r2.
-#: elf64-ppc.c:7977
+#: elf64-ppc.c:7986
msgid "warning: --plt-localentry is incompatible with power10 pc-relative code"
msgstr "упозорење: „--plt-localentry“ је неÑаглаÑно Ñа „power10 pc-relative“ кодом"
-#: elf64-ppc.c:7985
+#: elf64-ppc.c:7994
msgid "warning: --plt-localentry is especially dangerous without ld.so support to detect ABI violations"
msgstr "упозорење: „--plt-localentry“ је нарочито опаÑно без „ld.so“ подршке за откривање „ABI“ преÑтупа"
-#: elf64-ppc.c:8301
+#: elf64-ppc.c:8310
msgid "%H __tls_get_addr lost arg, TLS optimization disabled\n"
msgstr "„%H“ „__tls_get_addr“ је изгубио аргумент, ТЛС оптимизација је иÑкључена\n"
-#: elf64-ppc.c:8736 elf64-ppc.c:9452
+#: elf64-ppc.c:8745 elf64-ppc.c:9461
#, c-format
msgid "%s defined on removed toc entry"
msgstr "„%s“ је дефиниÑано на уклоњеном уноÑу табеле Ñадржаја"
-#: elf64-ppc.c:9409
+#: elf64-ppc.c:9418
#, c-format
msgid "%H: %s references optimized away TOC entry\n"
msgstr "%H: „%s“ упућује на оптимизацијом одÑтрањени ÑƒÐ½Ð¾Ñ Ñ‚Ð°Ð±ÐµÐ»Ðµ Ñадржаја\n"
-#: elf64-ppc.c:9630
+#: elf64-ppc.c:9639
#, c-format
msgid "%H: got/toc optimization is not supported for %s instruction\n"
msgstr "%H: оптимизација табеле Ñадржаја није подржана за инÑтрукцију „%s“\n"
-#: elf64-ppc.c:10525
+#: elf64-ppc.c:10534
#, c-format
msgid "warning: discarding dynamic section %s"
msgstr "упозорење: одбацујем динамички одељак „%s“"
-#: elf64-ppc.c:11678
+#: elf64-ppc.c:11687
msgid "%P: cannot find opd entry toc for `%pT'\n"
msgstr "%P: не могу да нађем табелу Ñадржаја уноÑа операнда за „%pT“\n"
-#: elf64-ppc.c:11828
+#: elf64-ppc.c:11837
#, c-format
msgid "long branch stub `%s' offset overflow"
msgstr "прекорачење помераја дугог окрајка гране „%s“"
-#: elf64-ppc.c:11855
+#: elf64-ppc.c:11864
#, c-format
msgid "can't find branch stub `%s'"
msgstr "не могу да нађем окрајак гране „%s“"
-#: elf64-ppc.c:11916 elf64-ppc.c:12168 elf64-ppc.c:14729
+#: elf64-ppc.c:11925 elf64-ppc.c:12177 elf64-ppc.c:14742
#, c-format
msgid "%P: linkage table error against `%pT'\n"
msgstr "%P: грешка табеле повезивања наÑпрам „%pT“\n"
-#: elf64-ppc.c:12367
+#: elf64-ppc.c:12376
#, c-format
msgid "can't build branch stub `%s'"
msgstr "не могу да изградим окрајак гране „%s“"
-#: elf64-ppc.c:13394
+#: elf64-ppc.c:13407
#, c-format
msgid "%pB section %pA exceeds stub group size"
msgstr "„%pB“ одељак „%pA“ превазилази величину групе окрајка"
-#: elf64-ppc.c:14909
+#: elf64-ppc.c:14923
msgid "__tls_get_addr call offset overflow"
msgstr "прекорачење помераја „__tls_get_addr“ позива"
-#: elf64-ppc.c:15249 elf64-ppc.c:15268
+#: elf64-ppc.c:15263 elf64-ppc.c:15282
#, c-format
msgid "%s offset too large for .eh_frame sdata4 encoding"
msgstr "„%s“ померај је превелик за „.eh_frame sdata4“ кодирање"
-#: elf64-ppc.c:15354
+#: elf64-ppc.c:15370
#, c-format
msgid "linker stubs in %u group"
msgid_plural "linker stubs in %u groups"
@@ -4623,7 +4617,7 @@ msgstr[0] "окрајци повезивача у %u групи"
msgstr[1] "окрајци повезивача у %u групе"
msgstr[2] "окрајци повезивача у %u група"
-#: elf64-ppc.c:15361
+#: elf64-ppc.c:15377
#, c-format
msgid ""
"%s, iter %u\n"
@@ -4638,67 +4632,67 @@ msgstr ""
" „plt“ позив %lu\n"
" општи ÑƒÐ½Ð¾Ñ %lu"
-#: elf64-ppc.c:15743
+#: elf64-ppc.c:15759
#, c-format
msgid "%H: %s used with TLS symbol `%pT'\n"
msgstr "%H: „%s“ је коришћено Ñа „TLS“ Ñимболом „%pT“\n"
-#: elf64-ppc.c:15745
+#: elf64-ppc.c:15761
#, c-format
msgid "%H: %s used with non-TLS symbol `%pT'\n"
msgstr "%H: „%s“ је коришћено Ñа не-„TLS“ Ñимболом „%pT“\n"
-#: elf64-ppc.c:16529
+#: elf64-ppc.c:16545
#, c-format
msgid "%H: call to `%pT' lacks nop, can't restore toc; (plt call stub)\n"
msgstr "%H: позиву за „%pT“ недоÑтаје „nop“, не могу да вратим табелу Ñадржаја; (plt call stub)\n"
-#: elf64-ppc.c:16535
+#: elf64-ppc.c:16551
#, c-format
msgid "%H: call to `%pT' lacks nop, can't restore toc; (toc save/adjust stub)\n"
msgstr "%H: позиву за „%pT“ недоÑтаје „nop“, не могу да вратим табелу Ñадржаја; (toc save/adjust stub)\n"
-#: elf64-ppc.c:17186
+#: elf64-ppc.c:17202
#, c-format
msgid "%H: %s against %pT is not supported\n"
msgstr "%H: „%s“ наÑпрам „%pT“ није подржано\n"
-#: elf64-ppc.c:17462
+#: elf64-ppc.c:17478
#, c-format
msgid "%H: %s for indirect function `%pT' unsupported\n"
msgstr "%H: „%s“ за индиректну функцију „%pT“ није подржано\n"
-#: elf64-ppc.c:17549
+#: elf64-ppc.c:17565
#, c-format
msgid "%X%P: %pB: %s against %pT is not supported by glibc as a dynamic relocation\n"
msgstr "%X%P: %pB: „%s“ наÑпрам „%pT“ није подржано „glibc“-ом као динамичко премештање\n"
-#: elf64-ppc.c:17604
+#: elf64-ppc.c:17620
#, c-format
msgid "%P: %pB: %s is not supported for `%pT'\n"
msgstr "%P: %pB: „%s“ није подржано за „%pT“\n"
-#: elf64-ppc.c:17873
+#: elf64-ppc.c:17889
#, c-format
msgid "%H: error: %s not a multiple of %u\n"
msgstr "%H: грешка: „%s“ није производ „%u“\n"
-#: elf64-ppc.c:17896
+#: elf64-ppc.c:17912
#, c-format
msgid "%H: unresolvable %s against `%pT'\n"
msgstr "%H: „%s“ је нерешиво наÑпрам „%pT“\n"
-#: elf64-ppc.c:18041
+#: elf64-ppc.c:18057
#, c-format
msgid "%H: %s against `%pT': error %d\n"
msgstr "%H: „%s“ наÑпрам „%pT“: грешка %d\n"
-#: elf64-s390.c:2492
+#: elf64-s390.c:2490
#, c-format
msgid "%pB: `%s' non-PLT reloc for symbol defined in shared library and accessed from executable (rebuild file with -fPIC ?)"
msgstr "%pB: „%s“ не-„PLT“ премештање за Ñимбол дефиниÑан у дељеној библиотеци и коме је приÑтупљено из извршног (да поново изградим датотеку Ñа „-fPIC“ ?)"
-#: elf64-s390.c:3155
+#: elf64-s390.c:3153
#, c-format
msgid "%pB(%pA+%#<PRIx64>): misaligned symbol `%s' (%#<PRIx64>) for relocation %s"
msgstr "%pB(%pA+%#<PRIx64>): лоше поравнат Ñимбол „%s“ (%#<PRIx64>) за премештање „%s“"
@@ -4733,106 +4727,106 @@ msgstr "Симбол „%s“ има другачије врÑте: „%s“ у
msgid "%pB: linking UltraSPARC specific with HAL specific code"
msgstr "%pB: повезујем код Ñпецифичан „UltraSPARC“-у Ñа кодом Ñпецифичним „HAL“-у"
-#: elf64-x86-64.c:1581
+#: elf64-x86-64.c:1660
msgid "hidden symbol "
msgstr "Ñкривени Ñимбол "
-#: elf64-x86-64.c:1584
+#: elf64-x86-64.c:1663
msgid "internal symbol "
msgstr "унутрашњи Ñимбол "
-#: elf64-x86-64.c:1587 elf64-x86-64.c:1591
+#: elf64-x86-64.c:1666 elf64-x86-64.c:1670
msgid "protected symbol "
msgstr "заштићени Ñимбол "
-#: elf64-x86-64.c:1593
+#: elf64-x86-64.c:1672
msgid "symbol "
msgstr "Ñимбол "
-#: elf64-x86-64.c:1599
+#: elf64-x86-64.c:1678
msgid "undefined "
msgstr "неодређено "
-#: elf64-x86-64.c:1609
+#: elf64-x86-64.c:1688 elfnn-loongarch.c:892
msgid "a shared object"
msgstr "дељени објекат"
-#: elf64-x86-64.c:1611
+#: elf64-x86-64.c:1690
msgid "; recompile with -fPIC"
msgstr "; поново преведите Ñа „-fPIC“"
-#: elf64-x86-64.c:1616
+#: elf64-x86-64.c:1695 elfnn-loongarch.c:898
msgid "a PIE object"
msgstr "„PIE“ објекат"
-#: elf64-x86-64.c:1618
+#: elf64-x86-64.c:1697 elfnn-loongarch.c:900
msgid "a PDE object"
msgstr "„PDE“ објекат"
-#: elf64-x86-64.c:1620
+#: elf64-x86-64.c:1699
msgid "; recompile with -fPIE"
msgstr "; поново преведите Ñа „-fPIE“"
-#: elf64-x86-64.c:1624
+#: elf64-x86-64.c:1703
#, c-format
msgid "%pB: relocation %s against %s%s`%s' can not be used when making %s%s"
msgstr "%pB: премештање „%s“ наÑпрам „%s%s“ „%s“ Ñе не може кориÑтити приликом Ñтварања „%s%s“"
-#: elf64-x86-64.c:2160
+#: elf64-x86-64.c:2239
#, c-format
msgid "%pB: relocation %s against symbol `%s' isn't supported in x32 mode"
msgstr "%pB: „%s“ премештање наÑпрам Ñимбола „%s“ није подржано у режиму x32"
-#: elf64-x86-64.c:2312
+#: elf64-x86-64.c:2394
#, c-format
msgid "%pB: '%s' accessed both as normal and thread local symbol"
msgstr "%pB: „%s“ Ñе приÑтупило и као нормалном и као Ñимболу локалне нити"
-#: elf64-x86-64.c:2567
+#: elf64-x86-64.c:2652
#, c-format
msgid "%pB: unsupported relocation %s against symbol `%s'"
msgstr "%pB: неподржан премештај „%s “ за Ñимбол „%s“"
-#: elf64-x86-64.c:2991 elfnn-aarch64.c:5767 elfnn-riscv.c:2376
+#: elf64-x86-64.c:3076 elfnn-aarch64.c:5766 elfnn-riscv.c:2374
#, c-format
msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' has non-zero addend: %<PRId64>"
msgstr "%pB: премештање „%s“ наÑпрам „STT_GNU_IFUNC“ Ñимбола „%s“ има не-нулти Ñабирак: %<PRId64>"
-#: elf64-x86-64.c:3254
+#: elf64-x86-64.c:3339
#, c-format
msgid "%pB: relocation R_X86_64_GOTOFF64 against undefined %s `%s' can not be used when making a shared object"
msgstr "%pB: премештање „R_X86_64_GOTOFF64“ наÑпрам недефиниÑаног %s „%s“ Ñе не може кориÑтити када Ñе Ñтвара дељени објекат"
-#: elf64-x86-64.c:3268
+#: elf64-x86-64.c:3353
#, c-format
msgid "%pB: relocation R_X86_64_GOTOFF64 against protected %s `%s' can not be used when making a shared object"
msgstr "%pB: премештање „R_X86_64_GOTOFF64“ наÑпрам заштићеног %s „%s“ Ñе не може кориÑтити када Ñе Ñтвара дељени објекат"
-#: elf64-x86-64.c:3558
+#: elf64-x86-64.c:3643
#, c-format
msgid "%pB: addend %s%#x in relocation %s against symbol `%s' at %#<PRIx64> in section `%pA' is out of range"
msgstr "%pB: Ñабирак %s%#x у премештању „%s“ наÑпрам Ñимбола „%s“ на %#<PRIx64> у одељку „%pA“ је ван опÑега"
-#: elf64-x86-64.c:3709 elflink.c:14034
+#: elf64-x86-64.c:3794 elflink.c:14005
msgid "%F%P: corrupt input: %pB\n"
msgstr "%F%P: оштећени уноÑ: %pB\n"
-#: elf64-x86-64.c:4520
+#: elf64-x86-64.c:4605
#, c-format
msgid " failed to convert GOTPCREL relocation against '%s'; relink with --no-relax\n"
msgstr " ниÑам уÑпео да претворим „GOTPCREL“ премештање за „%s“; поново повежите Ñа „--no-relax“\n"
-#: elf64-x86-64.c:4679
+#: elf64-x86-64.c:4764
#, c-format
msgid "%F%pB: PC-relative offset overflow in PLT entry for `%s'\n"
msgstr "%F%pB: прекорачење „PC“-одноÑног помераја у „PLT“ уноÑу за „%s“\n"
-#: elf64-x86-64.c:4752
+#: elf64-x86-64.c:4837
#, c-format
msgid "%F%pB: branch displacement overflow in PLT entry for `%s'\n"
msgstr "%F%pB: прекорачење размештаја гране у „PLT“ уноÑу за „%s“\n"
-#: elf64-x86-64.c:4805
+#: elf64-x86-64.c:4890
#, c-format
msgid "%F%pB: PC-relative offset overflow in GOT PLT entry for `%s'\n"
msgstr "%F%pB: прекорачење „PC“-одноÑног помераја у „GOT PLT“ уноÑу за „%s“\n"
@@ -4921,58 +4915,58 @@ msgstr "упозорење: врÑта и величина динамичког
msgid "%P: copy reloc against protected `%pT' is dangerous\n"
msgstr "%P: умножи премештање наÑпрам заштићеног „%pT“ је опаÑно\n"
-#: elflink.c:4337
+#: elflink.c:4338
msgid "%F%P: %pB: failed to add %s to first hash\n"
msgstr "%F%P: %pB: ниÑам уÑпео да додам „%s“ у први хеш\n"
-#: elflink.c:4405
+#: elflink.c:4406
msgid "%F%P: first_hash failed to create: %E\n"
msgstr "%F%P: „first_hash“ није уÑпео да Ñе направи: %E\n"
-#: elflink.c:4436
+#: elflink.c:4437
#, c-format
msgid "alternate ELF machine code found (%d) in %pB, expecting %d"
msgstr "нађох измењени „ELF“ машинÑки код (%d) у „%pB“, очекивах „%d“"
-#: elflink.c:4919
+#: elflink.c:4920
#, c-format
msgid "%pB: invalid version offset %lx (max %lx)"
msgstr "%pB: неиÑправан померај издања %lx (најв. %lx)"
-#: elflink.c:4988
+#: elflink.c:4989
#, c-format
msgid "%pB: %s local symbol at index %lu (>= sh_info of %lu)"
msgstr "%pB: „%s“ локални Ñимбол у индекÑу %lu (>= sh_info %lu)"
-#: elflink.c:5136
+#: elflink.c:5137
#, c-format
msgid "%pB: not enough version information"
msgstr "%pB: нема довољно података о издању"
-#: elflink.c:5174
+#: elflink.c:5175
#, c-format
msgid "%pB: %s: invalid version %u (max %d)"
msgstr "%pB: %s: неиÑправно издање %u (најв. %d)"
-#: elflink.c:5211
+#: elflink.c:5212
#, c-format
msgid "%pB: %s: invalid needed version %d"
msgstr "%pB: %s: неиÑправно потребно издање %d"
-#: elflink.c:5497
+#: elflink.c:5498
#, c-format
msgid "warning: alignment %u of normal symbol `%s' in %pB is smaller than %u used by the common definition in %pB"
msgstr "упозорење: „%u“ поравнање обичног Ñимбола „%s“ у „%pB“ је мање од „%u“ коришћеног општом дефиницијом у „%pB“"
-#: elflink.c:5504
+#: elflink.c:5505
msgid "warning: NOTE: alignment discrepancies can cause real problems. Investigation is advised."
msgstr "уозорење: ÐÐПОМЕÐÐ: неподударноÑти поравнања могу довеÑти до озбиљних проблема. ИÑпитивање Ñе препоручује."
-#: elflink.c:5526
+#: elflink.c:5527
msgid "warning: NOTE: size discrepancies can cause real problems. Investigation is advised."
msgstr "уозорење: ÐÐПОМЕÐÐ: неподударноÑти величине могу довеÑти до озбиљних проблема. ИÑпитивање Ñе препоручује."
-#: elflink.c:5669
+#: elflink.c:5670
#, c-format
msgid "%pB: undefined reference to symbol '%s'"
msgstr "%pB: недефиниÑана упута ка Ñимболу „%s“"
@@ -5029,194 +5023,249 @@ msgstr "ÐÐПОМЕÐÐ: Ово понашање је заÑтарело и бÐ
msgid "%pB: .preinit_array section is not allowed in DSO"
msgstr "%pB: одељак „.preinit_array“ није дозвољен у „DSO“-у"
-#: elflink.c:9207
+#: elflink.c:9218
#, c-format
msgid "undefined %s reference in complex symbol: %s"
msgstr "недефиниÑана „%s“ упута у Ñложеном Ñимболу: %s"
-#: elflink.c:9370 elflink.c:9378
+#: elflink.c:9381 elflink.c:9389
msgid "division by zero"
msgstr "дељење нулом"
-#: elflink.c:9392
+#: elflink.c:9403
#, c-format
msgid "unknown operator '%c' in complex symbol"
msgstr "непознат оператор „%c“ у Ñложеном Ñимболу"
#. PR 21524: Let the user know if a symbol was removed by garbage collection.
-#: elflink.c:9728
+#: elflink.c:9739
#, c-format
msgid "%pB:%pA: error: relocation references symbol %s which was removed by garbage collection"
msgstr "%pB:%pA: грешка: Ñимбол упута премештања „%s“ који је уклоњен Ñкупљањем отпада"
-#: elflink.c:9731
+#: elflink.c:9742
#, c-format
msgid "%pB:%pA: error: try relinking with --gc-keep-exported enabled"
msgstr "%pB:%pA: грешка: покушајте поновно повезивање Ñа укљученим „--gc-keep-exported“"
-#: elflink.c:9982 elflink.c:10000 elflink.c:10039 elflink.c:10057
+#: elflink.c:9993 elflink.c:10011 elflink.c:10050 elflink.c:10068
#, c-format
msgid "%pB: unable to sort relocs - they are in more than one size"
msgstr "%pB: не могу да поређам премештања — имају више од једне величине"
#. The section size is not divisible by either -
#. something is wrong.
-#: elflink.c:10016 elflink.c:10073
+#: elflink.c:10027 elflink.c:10084
#, c-format
msgid "%pB: unable to sort relocs - they are of an unknown size"
msgstr "%pB: не могу да поређам премештања — непознате Ñу величине"
-#: elflink.c:10125
+#: elflink.c:10136
msgid "not enough memory to sort relocations"
msgstr "нема довољно меморије за ређање премештања"
-#: elflink.c:10463
+#: elflink.c:10470
#, c-format
msgid "%pB: too many sections: %d (>= %d)"
msgstr "%pB: превише одељака: %d (>= %d)"
-#: elflink.c:10739
+#: elflink.c:10746
#, c-format
msgid "%pB: internal symbol `%s' in %pB is referenced by DSO"
msgstr "%pB: на унутрашњи Ñимбол „%s“ у „%pB“ упућује „DSO“"
-#: elflink.c:10742
+#: elflink.c:10749
#, c-format
msgid "%pB: hidden symbol `%s' in %pB is referenced by DSO"
msgstr "%pB: на Ñкривени Ñимбол „%s“ у „%pB“ упућује „DSO“"
-#: elflink.c:10745
+#: elflink.c:10752
#, c-format
msgid "%pB: local symbol `%s' in %pB is referenced by DSO"
msgstr "%pB: на локални Ñимбол „%s“ у „%pB“ упућује „DSO“"
-#: elflink.c:10838
+#: elflink.c:10845
#, c-format
msgid "%pB: could not find output section %pA for input section %pA"
msgstr "%pB: не могу да нађем излазни одељак „%pA“ за улазни одељак „%pA“"
-#: elflink.c:10996
+#: elflink.c:11003
#, c-format
msgid "%pB: protected symbol `%s' isn't defined"
msgstr "%pB: заштићени Ñимбол „%s“ није дефиниÑан"
-#: elflink.c:10999
+#: elflink.c:11006
#, c-format
msgid "%pB: internal symbol `%s' isn't defined"
msgstr "%pB: унутрашњи Ñимбол „%s“ није дефиниÑан"
-#: elflink.c:11002
+#: elflink.c:11009
#, c-format
msgid "%pB: hidden symbol `%s' isn't defined"
msgstr "%pB: Ñкривени Ñимбол „%s“ није дефиниÑан"
-#: elflink.c:11034
+#: elflink.c:11041
#, c-format
msgid "%pB: no symbol version section for versioned symbol `%s'"
msgstr "%pB: нема одељка издања Ñимбола за верзиониÑани Ñимбол „%s“"
-#: elflink.c:11716
+#: elflink.c:11723
#, c-format
msgid "error: %pB contains a reloc (%#<PRIx64>) for section %pA that references a non-existent global symbol"
msgstr "грешка: „%pB“ Ñадржи премештање (%#<PRIx64>) за одељак „%pA“ који упућује на не-поÑтојећи општи Ñимбол"
-#: elflink.c:12186
+#: elflink.c:12193
#, c-format
msgid "error: %pB: size of section %pA is not multiple of address size"
msgstr "грешка: %pB: величина одељка „%pA“ није производ величине адреÑе"
-#: elflink.c:12466
+#: elflink.c:12473
#, c-format
msgid "%pB: no symbol found for import library"
msgstr "%pB: ниÑам нашао никакав Ñимбол за увозну библиотеку"
-#: elflink.c:13072
+#: elflink.c:13078
msgid "%F%P: %pB: failed to finish relative relocations\n"
msgstr "%F%P: %pB: ниÑам уÑпео да довршим релативна премештања\n"
-#: elflink.c:13149
+#: elflink.c:13155
#, c-format
msgid "%pB: file class %s incompatible with %s"
msgstr "%pB: клаÑа датотеке „%s“ није ÑаглаÑна Ñа „%s“"
-#: elflink.c:13398
+#: elflink.c:13377
#, c-format
msgid "%pB: failed to generate import library"
msgstr "%pB: ниÑам уÑпео да направим увозну библиотеку"
-#: elflink.c:13566
+#: elflink.c:13538
#, c-format
msgid "warning: %s section has zero size"
msgstr "упозорење: одељак „%s“ је нулте величине"
-#: elflink.c:13614
+#: elflink.c:13586
#, c-format
msgid "warning: section '%s' is being made into a note"
msgstr "упозорење: одељак „%s“ је претворен у белешку"
-#: elflink.c:13708
+#: elflink.c:13680
msgid "%P%X: read-only segment has dynamic relocations\n"
msgstr "%P%X: одељак Ñамо за читање има динамичка премештања\n"
-#: elflink.c:13711
+#: elflink.c:13683
msgid "%P: warning: creating DT_TEXTREL in a shared object\n"
msgstr "%P: упозорење: Ñтварам „DT_TEXTREL“ у дељеном објекту\n"
-#: elflink.c:13714
+#: elflink.c:13686
msgid "%P: warning: creating DT_TEXTREL in a PDE\n"
msgstr "%P: упозорење: Ñтварам „DT_TEXTREL“ у „PDE“\n"
-#: elflink.c:13717
+#: elflink.c:13689
msgid "%P: warning: creating DT_TEXTREL in a PIE\n"
msgstr "%P: упозорење: Ñтварам „DT_TEXTREL“ у „PIE“\n"
-#: elflink.c:13854
+#: elflink.c:13825
msgid "%P%X: can not read symbols: %E\n"
msgstr "%P%X: не може да чита Ñимболе: %E\n"
-#: elflink.c:14287
+#: elflink.c:14258
msgid "%F%P: %pB(%pA): error: need linked-to section for --gc-sections\n"
msgstr "%F%P: %pB(%pA): грешка: потребан је повезан-на одељак за „--gc-sections“\n"
-#: elflink.c:14767
+#: elflink.c:14738
#, c-format
msgid "%pB: %pA+%#<PRIx64>: no symbol found for INHERIT"
msgstr "%pB: %pA+%#<PRIx64>: ниÑам нашао никакав Ñимбол за „INHERIT“"
-#: elflink.c:14808
+#: elflink.c:14779
#, c-format
msgid "%pB: section '%pA': corrupt VTENTRY entry"
msgstr "%pB: одељак „%pA“: оштећен „VTENTRY“ уноÑ"
-#: elflink.c:14951
+#: elflink.c:14922
#, c-format
msgid "unrecognized INPUT_SECTION_FLAG %s\n"
msgstr "непознато „INPUT_SECTION_FLAG %s“\n"
-#: elflink.c:15734
+#: elflink.c:15703
#, c-format
msgid "%P: %pB: warning: relocation against `%s' in read-only section `%pA'\n"
msgstr "%P: %pB: упозорење: премештање наÑпрам „%s“ у одељку „%pA“ који је Ñамо за читање\n"
-#: elflink.c:15823
+#: elflink.c:15792
msgid "%P: warning: GNU indirect functions with DT_TEXTREL may result in a segfault at runtime; recompile with %s\n"
msgstr "%P: упозорење: ГÐУ-ове индиректне функције Ñа „DT_TEXTREL“ могу резултирати неуÑпехом Ñегментације у време извршавања; поново преведите Ñа „%s“\n"
-#: elfxx-aarch64.c:477
+#: elfxx-aarch64.c:478
#, c-format
msgid "%pB: warning: Weak TLS is implementation defined and may not work as expected"
msgstr "%pB: упозорење: Ñлабо „TLS“ је дефиниÑана примена и можда неће радити као што Ñе очекује"
-#: elfxx-aarch64.c:738 elfnn-aarch64.c:10654 elfnn-aarch64.c:10661
+#: elfxx-aarch64.c:773
+#, c-format
+msgid "%Xerror: found a total of %d inputs incompatible with BTI requirements.\n"
+msgstr "%Xгрешка: нађох укупно %d улаза неÑаглаÑна Ñа BTI захтевима.\n"
+
+#: elfxx-aarch64.c:775
+#, c-format
+msgid "warning: found a total of %d inputs incompatible with BTI requirements.\n"
+msgstr "упозорење: нађох укупно %d улаза неÑаглаÑна Ñа BTI захтевима.\n"
+
+#: elfxx-aarch64.c:785
+#, c-format
+msgid "%Xerror: found a total of %d inputs incompatible with GCS requirements.\n"
+msgstr "%Xгрешка: нађох укупно %d улаза неÑаглаÑна Ñа GCS захтевима.\n"
+
+#: elfxx-aarch64.c:787
+#, c-format
+msgid "warning: found a total of %d inputs incompatible with GCS requirements.\n"
+msgstr "упозорење: нађох укупно %d улаза неÑаглаÑна Ñа GCS захтевима.\n"
+
+#: elfxx-aarch64.c:797
+#, c-format
+msgid "%Xerror: found a total of %d dynamically-linked objects incompatible with GCS requirements.\n"
+msgstr "%Xгрешка: нађох укупно %d динамички повезана објекта неÑаглаÑна Ñа GCS захтевима.\n"
+
+#: elfxx-aarch64.c:799
#, c-format
-msgid "%pB: warning: BTI turned on by -z force-bti when all inputs do not have BTI in NOTE section."
-msgstr "%pB: упозорење: „BTI“ је укључено „-z force-bti“-јем када Ñви уноÑи немају „BTI“ у „NOTE“ одељку."
+msgid "warning: found a total of %d dynamically-linked objects incompatible with GCS requirements.\n"
+msgstr "упозорење: нађох укупно %d динамички повезана објекта неÑаглаÑна Ñа GCS захтевима.\n"
-#: elfxx-aarch64.c:812
+#: elfxx-aarch64.c:960
#, c-format
msgid "error: %pB: <corrupt AArch64 used size: 0x%x>"
msgstr "грешка: %pB: <оштећена „AArch64“ коришћена величина: 0x%x>"
+#: elfxx-aarch64.c:1104
+#, c-format
+msgid "%pB: warning: BTI is required by -z force-bti, but this input object file lacks the necessary property note.\n"
+msgstr "%pB: упозорење: BTI Ñе захтева од Ñтране „-z force-bti“, али овој датотеци улазног објекта недоÑтаје неопходна напомена ÑвојÑтва.\n"
+
+#: elfxx-aarch64.c:1106
+#, c-format
+msgid "%X%pB: error: BTI is required by -z force-bti, but this input object file lacks the necessary property note.\n"
+msgstr "%X%pB: грешка: BTI Ñе захтева од Ñтране „-z force-bti“, али тој датотеци улазног објекта недоÑтаје неопходна напомена ÑвојÑтва.\n"
+
+#: elfxx-aarch64.c:1138
+#, c-format
+msgid "%pB: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking.\n"
+msgstr "%pB: упозорење: GCS Ñе захтева од Ñтране „-z gcs“, али тој дељеној библиотеци недоÑтаје неопходна напомена ÑвојÑтва. Динамички учитавач неће моћ да омогући GCS или ће одбити да учита програм оÑим ако Ñве завиÑноÑти дељене библиотеке не буду имале GCS означавање.\n"
+
+#: elfxx-aarch64.c:1142
+#, c-format
+msgid "%X%pB: error: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking.\n"
+msgstr "%X%pB: грешка: GCS Ñе захтева од Ñтране „-z gcs“, али тој дељеној библиотеци недоÑтаје неопходна напомена ÑвојÑтва. Динамички учитавач неће моћи да омогући GCS или ће одбити да учита програм оÑим ако Ñве завиÑноÑти дељене библиотеке не буду имале GCS означавање.\n"
+
+#: elfxx-aarch64.c:1148
+#, c-format
+msgid "%pB: warning: GCS is required by -z gcs, but this input object file lacks the necessary property note.\n"
+msgstr "%pB: упозорење: GCS Ñе захтева од Ñтране „-z gcs“, али тој датотеци улазног објекта недоÑтаје напомена ÑвојÑтва.\n"
+
+#: elfxx-aarch64.c:1150
+#, c-format
+msgid "%X%pB: error: GCS is required by -z gcs, but this input object file lacks the necessary property note.\n"
+msgstr "%X%pB: грешка: GCS Ñе захтева од Ñтране „-z gcs“, али тој датотеци улазног објекта недоÑтаје неопходна напомена ÑвојÑтва.\n"
+
#: elfxx-loongarch.c:1911
#, c-format
msgid "%pB: unsupported relocation type %s"
@@ -5237,735 +5286,781 @@ msgstr "%pB: премештање „%s“ деÑни помак %d грешка
msgid "%pB: relocation %s overflow 0x%lx"
msgstr "%pB: премештање „%s“ препуњава 0x%lx"
-#: elfxx-mips.c:1541
+#: elfxx-mips.c:1534
msgid "static procedure (no name)"
msgstr "Ñтатички поÑтупак (без назива)"
-#: elfxx-mips.c:5856
+#: elfxx-mips.c:5849
msgid "MIPS16 and microMIPS functions cannot call each other"
msgstr "Функције „MIPS16“ и „microMIPS“ не могу да позивају једна другу"
-#: elfxx-mips.c:6626
+#: elfxx-mips.c:6619
msgid "%X%H: unsupported JALX to the same ISA mode\n"
msgstr "%X%H: неподржано „JALX“ у иÑтом ISA режиму\n"
-#: elfxx-mips.c:6659
+#: elfxx-mips.c:6652
msgid "%X%H: unsupported jump between ISA modes; consider recompiling with interlinking enabled\n"
msgstr "%X%H: неподржан Ñкок између ISA режима; размотрите поновно превођење Ñа укљученим међуповезивањем\n"
-#: elfxx-mips.c:6704
+#: elfxx-mips.c:6697
msgid "%X%H: cannot convert branch between ISA modes to JALX: relocation out of range\n"
msgstr "%X%H: не могу да претворим гране између ISA режима у „JALX“: премештање је ван опÑега\n"
-#: elfxx-mips.c:6716
+#: elfxx-mips.c:6709
msgid "%X%H: unsupported branch between ISA modes\n"
msgstr "%X%H: неподржана грана између ISA режима\n"
-#: elfxx-mips.c:7362
+#: elfxx-mips.c:7355
#, c-format
msgid "%pB: incorrect `.reginfo' section size; expected %<PRIu64>, got %<PRIu64>"
msgstr "%pB: нетачна величина „.reginfo“ одељка; очекивах %<PRIu64>, али добих %<PRIu64>"
-#: elfxx-mips.c:7406
+#: elfxx-mips.c:7399
#, c-format
msgid "%pB: warning: bad `%s' option size %u smaller than its header"
msgstr "%pB: упозорење: лоша величина опције „%s“ %u мања од заглавља"
-#: elfxx-mips.c:7642
+#: elfxx-mips.c:7635
#, c-format
msgid "%pB: warning: truncated `%s' option"
msgstr "%pB: упозорење: Ñкраћена опција „%s“"
-#: elfxx-mips.c:8466 elfxx-mips.c:8592
+#: elfxx-mips.c:8453 elfxx-mips.c:8579
#, c-format
msgid "%pB: warning: cannot determine the target function for stub section `%s'"
msgstr "%pB: упозорење: не могу да одредим циљну функцију за одељак окрајка „%s“"
-#: elfxx-mips.c:8724
+#: elfxx-mips.c:8711
#, c-format
msgid "%pB: malformed reloc detected for section %s"
msgstr "%pB: откривено је лоше премештање за одељак „%s“"
-#: elfxx-mips.c:8824
+#: elfxx-mips.c:8811
#, c-format
msgid "%pB: GOT reloc at %#<PRIx64> not expected in executables"
msgstr "%pB: „GOT“ премештање на %#<PRIx64> није очекивано у извршним"
-#: elfxx-mips.c:8964
+#: elfxx-mips.c:8951
#, c-format
msgid "%pB: CALL16 reloc at %#<PRIx64> not against global symbol"
msgstr "%pB: „CALL16“ премештање на %#<PRIx64> није наÑпрам општег Ñимбола"
-#: elfxx-mips.c:9267
+#: elfxx-mips.c:9254
#, c-format
msgid "%X%H: relocation %s against `%s' cannot be used when making a shared object; recompile with -fPIC\n"
msgstr "%X%H: премештање „%s“ наÑпрам „%s“ Ñе не може кориÑтити приликом Ñтварања дељеног објекта; поново преведите Ñа „-fPIC“\n"
-#: elfxx-mips.c:9393
+#: elfxx-mips.c:9380
#, c-format
msgid "IFUNC symbol %s in dynamic symbol table - IFUNCS are not supported"
msgstr "„IFUNC„ Ñимбол „%s“ у табели динамичког Ñимбола – „IFUNCS“ ниÑу подржане"
-#: elfxx-mips.c:9396
+#: elfxx-mips.c:9383
#, c-format
msgid "non-dynamic symbol %s in dynamic symbol table"
msgstr "не-динамички Ñимбол „%s“ у табели динамичког Ñимбола"
-#: elfxx-mips.c:9616
+#: elfxx-mips.c:9603
#, c-format
msgid "non-dynamic relocations refer to dynamic symbol %s"
msgstr "не-динамичка премештања упућују на динамички Ñимбол „%s“"
-#: elfxx-mips.c:10536
+#: elfxx-mips.c:10523
#, c-format
msgid "%pB: can't find matching LO16 reloc against `%s' for %s at %#<PRIx64> in section `%pA'"
msgstr "%pB: не могу да нађем упоређујуће „LO16“ премештање наÑпрам „%s“ за „%s“ на %#<PRIx64> у одељку „%pA“"
-#: elfxx-mips.c:10676
+#: elfxx-mips.c:10663
msgid "small-data section too large; lower small-data size limit (see option -G)"
msgstr "одељак малих података је превелик; доња граница величине малих података (видите опцију „-G“)"
-#: elfxx-mips.c:10695
+#: elfxx-mips.c:10682
msgid "cannot convert a jump to JALX for a non-word-aligned address"
msgstr "не могу да претворим Ñкок у „JALX“ за адреÑу поравнату не-речју"
-#: elfxx-mips.c:10698
+#: elfxx-mips.c:10685
msgid "jump to a non-word-aligned address"
msgstr "Ñкок на адреÑу поравнату не-речју"
-#: elfxx-mips.c:10699
+#: elfxx-mips.c:10686
msgid "jump to a non-instruction-aligned address"
msgstr "Ñкок на адреÑу поравнату не-инÑтрукцијом"
-#: elfxx-mips.c:10702
+#: elfxx-mips.c:10689
msgid "cannot convert a branch to JALX for a non-word-aligned address"
msgstr "не могу да претворим грану у „JALX“ за адреÑу поравнату не-речју"
-#: elfxx-mips.c:10704
+#: elfxx-mips.c:10691
msgid "branch to a non-instruction-aligned address"
msgstr "грана на адреÑу поравнату не-инÑтрукцијом"
-#: elfxx-mips.c:10706
+#: elfxx-mips.c:10693
msgid "PC-relative load from unaligned address"
msgstr "„PC“-одноÑни утовар из непоравнате адреÑе"
-#: elfxx-mips.c:11006
+#: elfxx-mips.c:10993
#, c-format
msgid "%pB: `%pA' entry VMA of %#<PRIx64> outside the 32-bit range supported; consider using `-Ttext-segment=...'"
msgstr "%pB: „%pA“ ÑƒÐ½Ð¾Ñ â€žVMA“ од %#<PRIx64> ван 32-битног опÑега је подржано; кориÑтите „-Ttext-segment=...“"
-#: elfxx-mips.c:11121 elfxx-mips.c:11714
+#: elfxx-mips.c:11108 elfxx-mips.c:11701
#, c-format
msgid "%pB: `%pA' offset of %<PRId64> from `%pA' beyond the range of ADDIUPC"
msgstr "%pB: „%pA“ померај %<PRId64> из „%pA“ иза опÑега „ADDIUPC“"
-#: elfxx-mips.c:11686
+#: elfxx-mips.c:11673
#, c-format
msgid "%pB: `%pA' start VMA of %#<PRIx64> outside the 32-bit range supported; consider using `-Ttext-segment=...'"
msgstr "%pB: „%pA“ почетак „VMA“ од %#<PRIx64> ван 32-битног опÑега је подржано; кориÑтите „-Ttext-segment=...“"
-#: elfxx-mips.c:13431 reloc.c:8625
+#: elfxx-mips.c:13418 reloc.c:8518
#, c-format
msgid "%X%P: %pB(%pA): error: relocation for offset %V has no value\n"
msgstr "%X%P: %pB(%pA): грешка: премештање за померај „%V“ нема вредноÑÑ‚\n"
-#: elfxx-mips.c:14743
+#: elfxx-mips.c:14729
#, c-format
msgid "%pB: unknown architecture %s"
msgstr "%pB: непозната архитектура „%s“"
-#: elfxx-mips.c:15271
+#: elfxx-mips.c:15257
#, c-format
msgid "%pB: illegal section name `%pA'"
msgstr "%pB: неиÑправан назив одељка „%pA“"
-#: elfxx-mips.c:15548
+#: elfxx-mips.c:15534
#, c-format
msgid "%pB: warning: linking abicalls files with non-abicalls files"
msgstr "%pB: упозорење: повезујем датотеке абипозива Ñа датотекама не-абипозива"
-#: elfxx-mips.c:15565
+#: elfxx-mips.c:15551
#, c-format
msgid "%pB: linking 32-bit code with 64-bit code"
msgstr "%pB: повезујем 32-битни код Ñа 64-битним кодом"
-#: elfxx-mips.c:15597 elfxx-mips.c:15663 elfxx-mips.c:15678
+#: elfxx-mips.c:15583 elfxx-mips.c:15649 elfxx-mips.c:15664
#, c-format
msgid "%pB: linking %s module with previous %s modules"
msgstr "%pB: повезујем „%s“ модул Ñа претходним „%s“ модулима"
-#: elfxx-mips.c:15621
+#: elfxx-mips.c:15607
#, c-format
msgid "%pB: ABI mismatch: linking %s module with previous %s modules"
msgstr "%pB: „ABI“ не одговара: повезујем „%s“ модул Ñа претходним „%s“ модулима"
-#: elfxx-mips.c:15646
+#: elfxx-mips.c:15632
#, c-format
msgid "%pB: ASE mismatch: linking %s module with previous %s modules"
msgstr "%pB: „ASE“ не одговара: повезујем „%s“ модул Ñа претходним „%s“ модулима"
-#: elfxx-mips.c:15780
+#: elfxx-mips.c:15766
#, c-format
msgid "warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses unknown floating point ABI %d"
msgstr "упозорење: „%pB“ кориÑти непознату „ABI“ тачку покретног зареза „%d“ (подешено Ñа „%pB“), „%pB“ кориÑти непознату „ABI“ тачку покретног зареза „%d“"
-#: elfxx-mips.c:15786
+#: elfxx-mips.c:15772
#, c-format
msgid "warning: %pB uses unknown floating point ABI %d (set by %pB), %pB uses %s"
msgstr "упозорење: „%pB“ кориÑти непознату „ABI“ тачку покретног зареза „%d“ (подешено Ñа „%pB“), „%pB“ кориÑти „%s“"
-#: elfxx-mips.c:15792
+#: elfxx-mips.c:15778
#, c-format
msgid "warning: %pB uses %s (set by %pB), %pB uses unknown floating point ABI %d"
msgstr "упозорење: „%pB“ кориÑти „%s“ (подешено Ñа „%pB“), „%pB“ кориÑти непознату „ABI“ тачку покретног зареза „%d“"
-#: elfxx-mips.c:15806
+#: elfxx-mips.c:15792
#, c-format
msgid "warning: %pB uses %s (set by %pB), %pB uses %s"
msgstr "упозорење: „%pB“ кориÑти „%s“ (подешено Ñа „%pB“), „%pB“ кориÑти „%s“"
-#: elfxx-mips.c:15825
+#: elfxx-mips.c:15811
#, c-format
msgid "warning: %pB uses %s (set by %pB), %pB uses unknown MSA ABI %d"
msgstr "упозорење: „%pB“ кориÑти „%s“ (подешено Ñа „%pB“), „%pB“ кориÑти непознато „MSA ABI“ „%d“"
-#: elfxx-mips.c:15837
+#: elfxx-mips.c:15823
#, c-format
msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses %s"
msgstr "упозорење: „%pB“ кориÑти непознато „MSA ABI“ „%d“ (подешено Ñа „%pB“), „%pB“ кориÑти „%s“"
-#: elfxx-mips.c:15846
+#: elfxx-mips.c:15832
#, c-format
msgid "warning: %pB uses unknown MSA ABI %d (set by %pB), %pB uses unknown MSA ABI %d"
msgstr "упозорење: „%pB“ кориÑти непознато „MSA ABI“ „%d“ (подешено Ñа „%pB“), „%pB“ кориÑти непознато „MSA ABI %d“"
-#: elfxx-mips.c:15908
+#: elfxx-mips.c:15894
#, c-format
msgid "%pB: endianness incompatible with that of the selected emulation"
msgstr "%pB: крајњоÑÑ‚ није ÑаглаÑна Ñа оном изабране емулације"
-#: elfxx-mips.c:15922
+#: elfxx-mips.c:15908
#, c-format
msgid "%pB: ABI is incompatible with that of the selected emulation"
msgstr "%pB: „ABI“ није ÑаглаÑна Ñа оном изабране емулације"
-#: elfxx-mips.c:15975
+#: elfxx-mips.c:15961
#, c-format
msgid "%pB: warning: inconsistent ISA between e_flags and .MIPS.abiflags"
msgstr "%pB: упозорење: недоÑледно ISA између „e_flags“ и „.MIPS.abiflags“"
-#: elfxx-mips.c:15980
+#: elfxx-mips.c:15966
#, c-format
msgid "%pB: warning: inconsistent FP ABI between .gnu.attributes and .MIPS.abiflags"
msgstr "%pB: упозорење: недоÑледно „FP ABI“ између „.gnu.attributes“ и „.MIPS.abiflags“"
-#: elfxx-mips.c:15984
+#: elfxx-mips.c:15970
#, c-format
msgid "%pB: warning: inconsistent ASEs between e_flags and .MIPS.abiflags"
msgstr "%pB: упозорење: недоÑледно „ASE“ између „e_flags“ и „.MIPS.abiflags“"
-#: elfxx-mips.c:15991
+#: elfxx-mips.c:15977
#, c-format
msgid "%pB: warning: inconsistent ISA extensions between e_flags and .MIPS.abiflags"
msgstr "%pB: упозорење: недоÑледна ISA проширења између „e_flags“ и „.MIPS.abiflags“"
-#: elfxx-mips.c:15995
+#: elfxx-mips.c:15981
#, c-format
msgid "%pB: warning: unexpected flag in the flags2 field of .MIPS.abiflags (0x%lx)"
msgstr "%pB: упозорење: неочекивана заÑтавица у „flags2“ пољу „.MIPS.abiflags“-а (0x%lx)"
-#: elfxx-mips.c:16186
+#: elfxx-mips.c:16172
msgid "-mips32r2 -mfp64 (12 callee-saved)"
msgstr "-mips32r2 -mfp64 (12 позиваоца-Ñачувано)"
-#: elfxx-mips.c:16248 elfxx-mips.c:16259
+#: elfxx-mips.c:16234 elfxx-mips.c:16245
msgid "None"
msgstr "Ðишта"
-#: elfxx-mips.c:16250 elfxx-mips.c:16319
+#: elfxx-mips.c:16236 elfxx-mips.c:16305
msgid "Unknown"
msgstr "Ðепознато"
-#: elfxx-mips.c:16330
+#: elfxx-mips.c:16316
#, c-format
msgid "Hard or soft float\n"
msgstr "ХардверÑки или ÑофтверÑки покретни зарез\n"
-#: elfxx-mips.c:16333
+#: elfxx-mips.c:16319
#, c-format
msgid "Hard float (double precision)\n"
msgstr "ХардверÑки покретни зарез (двоÑтрука тачноÑÑ‚)\n"
-#: elfxx-mips.c:16336
+#: elfxx-mips.c:16322
#, c-format
msgid "Hard float (single precision)\n"
msgstr "ХардверÑки покретни зарез (једноÑтрука тачноÑÑ‚)\n"
-#: elfxx-mips.c:16339
+#: elfxx-mips.c:16325
#, c-format
msgid "Soft float\n"
msgstr "СофтверÑки покретни зарез\n"
-#: elfxx-mips.c:16342
+#: elfxx-mips.c:16328
#, c-format
msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
msgstr "ХардверÑки покретни зарез („MIPS32r2“ 64-бита „FPU 12 callee-saved“)\n"
-#: elfxx-mips.c:16345
+#: elfxx-mips.c:16331
#, c-format
msgid "Hard float (32-bit CPU, Any FPU)\n"
msgstr "ХардверÑки покретни зарез (32-битни процеÑор, било који „FPU“)\n"
-#: elfxx-mips.c:16348
+#: elfxx-mips.c:16334
#, c-format
msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
msgstr "ХардверÑки покретни зарез (32-битни процеÑор, 64-битни „FPU“)\n"
-#: elfxx-mips.c:16351
+#: elfxx-mips.c:16337
#, c-format
msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
msgstr "ХардверÑко покретном зарезу ÑаглаÑно (32-битни процеÑор, 64-битни „FPU“)\n"
-#: elfxx-mips.c:16383
+#: elfxx-mips.c:16369
#, c-format
msgid " [abi=O32]"
msgstr " [аби=O32]"
-#: elfxx-mips.c:16385
+#: elfxx-mips.c:16371
#, c-format
msgid " [abi=O64]"
msgstr " [аби=O64]"
-#: elfxx-mips.c:16387
+#: elfxx-mips.c:16373
#, c-format
msgid " [abi=EABI32]"
msgstr " [аби=EABI32]"
-#: elfxx-mips.c:16389
+#: elfxx-mips.c:16375
#, c-format
msgid " [abi=EABI64]"
msgstr " [аби=EABI64]"
-#: elfxx-mips.c:16391
+#: elfxx-mips.c:16377
#, c-format
msgid " [abi unknown]"
msgstr " [аби није познато]"
-#: elfxx-mips.c:16393
+#: elfxx-mips.c:16379
#, c-format
msgid " [abi=N32]"
msgstr " [аби=N32]"
-#: elfxx-mips.c:16395
+#: elfxx-mips.c:16381
#, c-format
msgid " [abi=64]"
msgstr " [аби=64]"
-#: elfxx-mips.c:16397
+#: elfxx-mips.c:16383
#, c-format
msgid " [no abi set]"
msgstr " [аби није подешено]"
-#: elfxx-mips.c:16422
+#: elfxx-mips.c:16408
#, c-format
msgid " [unknown ISA]"
msgstr " [непознато ИСÐ]"
-#: elfxx-mips.c:16442
+#: elfxx-mips.c:16428
#, c-format
msgid " [not 32bitmode]"
msgstr " [није 32-битни режим]"
-#: elfxx-riscv.c:1799
+#: elfxx-riscv.c:1827
#, c-format
msgid "x ISA extension `%s' must be set with the versions"
msgstr "x ISA проширење „%s“ мора бити поÑтављено Ñа издањима"
-#: elfxx-riscv.c:1805
+#: elfxx-riscv.c:1833
#, c-format
msgid "cannot find default versions of the ISA extension `%s'"
msgstr "не могу да нађем оÑновна издања за ISA проширење „%s“"
-#: elfxx-riscv.c:1911
+#: elfxx-riscv.c:1939
#, c-format
msgid "%s: first ISA extension must be `e', `i' or `g'"
msgstr "%s: прво ISA проширење мора бити „e“, „i“ или „g“"
-#: elfxx-riscv.c:1935
+#: elfxx-riscv.c:1963
#, c-format
msgid "%s: unknown standard ISA extension or prefix class `%c'"
msgstr "%s: непознато Ñтандардно ISA проширење или клаÑа префикÑа „%c“"
-#: elfxx-riscv.c:1971
+#: elfxx-riscv.c:1999
#, c-format
msgid "%s: invalid prefixed ISA extension `%s' ends with <number>p"
msgstr "%s: неиÑправно Ñа префикÑом ISA проширење „%s“ Ñе завршава Ñа <број>p"
-#: elfxx-riscv.c:1995
+#: elfxx-riscv.c:2023
#, c-format
msgid "%s: unknown prefixed ISA extension `%s'"
msgstr "%s: непознато Ñа префикÑом ISA проширење „%s“"
-#: elfxx-riscv.c:2019
+#: elfxx-riscv.c:2047
#, c-format
msgid "%s: prefixed ISA extension must separate with _"
msgstr "%s: Ñа префикÑом ISA проширење Ñе мора раздвојити Ñа „_“"
-#: elfxx-riscv.c:2059
+#: elfxx-riscv.c:2087
#, c-format
msgid "rv%de does not support the `h' extension"
msgstr "„rv%de“ не подржава проширење „h“"
-#: elfxx-riscv.c:2067
+#: elfxx-riscv.c:2095
#, c-format
msgid "rv%d does not support the `q' extension"
msgstr "„rv%d“ не подржава проширење „q“"
-#: elfxx-riscv.c:2074
+#: elfxx-riscv.c:2102
msgid "zcmp' is incompatible with `d/zcd' extension"
msgstr "zcmp' није ÑаглаÑно Ñа „d/zcd“ проширењем"
-#: elfxx-riscv.c:2081
+#: elfxx-riscv.c:2109
#, c-format
msgid "rv%d does not support the `zcf' extension"
msgstr "„rv%d“ не подржава проширење „zcf“"
-#: elfxx-riscv.c:2088
+#: elfxx-riscv.c:2116
msgid "`zfinx' is conflict with the `f/d/q/zfh/zfhmin' extension"
msgstr "„zfinx“ је у Ñукобу Ñа проширењем „f/d/q/zfh/zfhmin“"
-#: elfxx-riscv.c:2095
+#: elfxx-riscv.c:2123
msgid "`xtheadvector' is conflict with the `v' extension"
msgstr "„xtheadvector“ је у Ñукобу Ñа проширењем „v“"
-#: elfxx-riscv.c:2116
+#: elfxx-riscv.c:2144
msgid "zvl*b extensions need to enable either `v' or `zve' extension"
msgstr "„zvl*b“ проширења треба да укључе или „v“ или „zve“ проширење"
-#: elfxx-riscv.c:2178
+#: elfxx-riscv.c:2206
#, c-format
msgid "%s: ISA string cannot contain uppercase letters"
msgstr "%s: ISA ниÑка не може Ñадржати велика Ñлова"
-#: elfxx-riscv.c:2206
+#: elfxx-riscv.c:2234
#, c-format
msgid "%s: ISA string must begin with rv32 or rv64"
msgstr "%s: ISA ниÑка мора почети Ñа „rv32“ или „rv64“"
-#: elfxx-riscv.c:2443
+#: elfxx-riscv.c:2417
+msgid "internal: "
+msgstr "унутрашње: "
+
+#: elfxx-riscv.c:2471
#, c-format
msgid "%sinvalid ISA extension ends with <number>p in %s `%s'"
msgstr "%sнеиÑправно ISA проширење Ñе завршава Ñа <број>p у %s „%s“"
-#: elfxx-riscv.c:2466
+#: elfxx-riscv.c:2494
#, c-format
msgid "%sunknown ISA extension `%s' in %s `%s'"
msgstr "%sнепознато ISA проширење „%s“ у %s „%s“"
-#: elfxx-riscv.c:2478
+#: elfxx-riscv.c:2506
#, c-format
msgid "%scannot + or - base extension `%s' in %s `%s'"
msgstr "%sне могу да + или - проширење оÑнове „%s“ у %s „%s“"
-#: elfxx-riscv.c:2763 elfxx-riscv.c:3033
+#: elfxx-riscv.c:2817 elfxx-riscv.c:3112
msgid "internal: unreachable INSN_CLASS_*"
msgstr "унутрашње: недоÑтижна „INSN_CLASS_*“"
-#: elfxx-riscv.c:2798
+#: elfxx-riscv.c:2851
+msgid "zicfiss' and `zcmop"
+msgstr "zicfiss“ и „zcmop"
+
+#: elfxx-riscv.c:2865
msgid "zihintntl' and `c', or `zihintntl' and `zca"
msgstr "zihintntl“ и „c“, или „zihintntl“ и „zca"
-#: elfxx-riscv.c:2803 elfxx-riscv.c:2827
+#: elfxx-riscv.c:2870 elfxx-riscv.c:2896
msgid "c' or `zca"
msgstr "c“ или „zca"
-#: elfxx-riscv.c:2809
+#: elfxx-riscv.c:2878
msgid "m' or `zmmul"
msgstr "m“ или „zmmul"
-#: elfxx-riscv.c:2833
+#: elfxx-riscv.c:2902
msgid "f' and `c', or `f' and `zcf"
msgstr "f“ и „c“, или „f“ и „zcf"
-#: elfxx-riscv.c:2838
+#: elfxx-riscv.c:2907
msgid "c' or `zcf"
msgstr "c“ или „zcf"
-#: elfxx-riscv.c:2844
+#: elfxx-riscv.c:2913
msgid "d' and `c', or `d' and `zcd"
msgstr "d“ и „c“, или „d“ и „zcd"
-#: elfxx-riscv.c:2849
+#: elfxx-riscv.c:2918
msgid "c' or `zcd"
msgstr "c“ или „zcd"
-#: elfxx-riscv.c:2851
+#: elfxx-riscv.c:2920
msgid "f' or `zfinx"
msgstr "f“ или „zfinx"
-#: elfxx-riscv.c:2853
+#: elfxx-riscv.c:2922
msgid "d' or `zdinx"
msgstr "d“ или „zdinx"
-#: elfxx-riscv.c:2855
+#: elfxx-riscv.c:2924
msgid "q' or `zqinx"
msgstr "q“ или „zqinx"
-#: elfxx-riscv.c:2857
+#: elfxx-riscv.c:2926
msgid "zfh' or `zhinx"
msgstr "zfh“ или „zhinx"
-#: elfxx-riscv.c:2861
+#: elfxx-riscv.c:2930
msgid "zfhmin' or `zhinxmin"
msgstr "zfhmin“ или „zhinxmin"
-#: elfxx-riscv.c:2872
+#: elfxx-riscv.c:2941
msgid "zfhmin' and `d', or `zhinxmin' and `zdinx"
msgstr "zfhmin“ и „d“, или „zhinxmin“ и „zdinx"
-#: elfxx-riscv.c:2883
+#: elfxx-riscv.c:2952
msgid "zfhmin' and `q', or `zhinxmin' and `zqinx"
msgstr "zfhmin“ и „q“, или „zhinxmin“ и „zqinx"
-#: elfxx-riscv.c:2891
+#: elfxx-riscv.c:2960
msgid "d' and `zfa"
msgstr "d“ и „zfa"
-#: elfxx-riscv.c:2899
+#: elfxx-riscv.c:2968
msgid "q' and `zfa"
msgstr "q“ и „zfa"
-#: elfxx-riscv.c:2907
+#: elfxx-riscv.c:2976
msgid "zfh' and `zfa"
msgstr "zfh“ и „zfa"
-#: elfxx-riscv.c:2917
+#: elfxx-riscv.c:2986
msgid "zfh' and `zfa', or `zvfh' and `zfa"
msgstr "zfh“ и „zfa“, или „zvfh“ и „zfa"
-#: elfxx-riscv.c:2922
+#: elfxx-riscv.c:2991
msgid "zfh' or `zvfh"
msgstr "zfh“ или „zvfh"
-#: elfxx-riscv.c:2938
+#: elfxx-riscv.c:3007
msgid "zbb' or `zbkb"
msgstr "zbb“ или „zbkb"
-#: elfxx-riscv.c:2940
+#: elfxx-riscv.c:3009
msgid "zbc' or `zbkc"
msgstr "zbc“ или „zbkc"
-#: elfxx-riscv.c:2948
+#: elfxx-riscv.c:3017
msgid "zknd' or `zkne"
msgstr "zknd“ или „zkne"
-#: elfxx-riscv.c:2954
+#: elfxx-riscv.c:3023
msgid "v' or `zve64x' or `zve32x"
msgstr "v“ или „zve64x“ или „zve32x"
-#: elfxx-riscv.c:2956
+#: elfxx-riscv.c:3025
msgid "v' or `zve64d' or `zve64f' or `zve32f"
msgstr "v“ или „zve64d“ или „zve64f“ или „zve32f"
-#: elfxx-riscv.c:2958
+#: elfxx-riscv.c:3027
msgid "zvbb"
msgstr "zvbb"
-#: elfxx-riscv.c:2960
+#: elfxx-riscv.c:3029
msgid "zvbc"
msgstr "zvbc"
-#: elfxx-riscv.c:2966
+#: elfxx-riscv.c:3035
msgid "zvkb"
msgstr "zvkb"
-#: elfxx-riscv.c:2968
+#: elfxx-riscv.c:3037
msgid "zvkg"
msgstr "zvkg"
-#: elfxx-riscv.c:2970
+#: elfxx-riscv.c:3039
msgid "zvkned"
msgstr "zvkned"
-#: elfxx-riscv.c:2972
+#: elfxx-riscv.c:3041
msgid "zvknha' or `zvknhb"
msgstr "zvknha“ или „zvknhb"
-#: elfxx-riscv.c:2974
+#: elfxx-riscv.c:3043
msgid "zvksed"
msgstr "zvksed"
-#: elfxx-riscv.c:2976
+#: elfxx-riscv.c:3045
msgid "zvksh"
msgstr "zvksh"
-#: elfxx-riscv.c:2980
+#: elfxx-riscv.c:3049
msgid "zcb' and `zba"
msgstr "zcb“ и „zba"
-#: elfxx-riscv.c:2982
+#: elfxx-riscv.c:3051
msgid "zcb' and `zbb"
msgstr "zcb“ и „zbb"
-#: elfxx-riscv.c:2984
+#: elfxx-riscv.c:3053
msgid "zcb' and `zmmul', or `zcb' and `m"
msgstr "zcb“ и „zmmul“, или „zcb“ и „m"
-#: elfxx-riscv.c:2990
+#: elfxx-riscv.c:3061
+msgid "smctr' or `ssctr"
+msgstr "smctr“ или „ssctr"
+
+#: elfxx-riscv.c:3065
msgid "h"
msgstr "h"
-#: elfxx-sparc.c:3022 elfnn-aarch64.c:5751
+#: elfxx-sparc.c:3017 elfnn-aarch64.c:5750
#, c-format
msgid "%pB: relocation %s against STT_GNU_IFUNC symbol `%s' isn't handled by %s"
msgstr "%pB: премештање „%s“ наÑпрам „STT_GNU_IFUNC“ Ñимбола „%s“ „%s“ не може да одради"
-#: elfxx-tilegx.c:4127
+#: elfxx-tilegx.c:4126
#, c-format
msgid "%pB: cannot link together %s and %s objects"
msgstr "%pB: не могу да повежем заједно објекте „%s“ и „%s“"
-#: elfxx-x86.c:536 elfxx-x86.c:3438
+#: elfxx-x86.c:534 elfxx-x86.c:3597
#, c-format
msgid "%F%P: %pB: copy relocation against non-copyable protected symbol `%s' in %pB\n"
msgstr "%F%P: %pB: премештање умношка за неумноживи заштићени Ñимбол „%s“ у „%pB“\n"
-#: elfxx-x86.c:1043
+#: elfxx-x86.c:1044
#, c-format
msgid "%F%P: %pB: failed to allocate relative reloc record\n"
msgstr "%F%P: %pB: ниÑам уÑпео да доделим Ð·Ð°Ð¿Ð¸Ñ Ñ€ÐµÐ»Ð°Ñ‚Ð¸Ð²Ð½Ð¾Ð³ премештања\n"
-#: elfxx-x86.c:1399
+#: elfxx-x86.c:1403
#, c-format
msgid "%F%P: %pB: failed to allocate 64-bit DT_RELR bitmap\n"
msgstr "%F%P: %pB: ниÑам уÑпео да доделим 64-битну „DT_RELR“ битмапу\n"
-#: elfxx-x86.c:1435
+#: elfxx-x86.c:1439
#, c-format
msgid "%F%P: %pB: failed to allocate 32-bit DT_RELR bitmap\n"
msgstr "%F%P: %pB: ниÑам уÑпео да доделим 32-битну „DT_RELR“ битмапу\n"
-#: elfxx-x86.c:1574
+#: elfxx-x86.c:1578
#, c-format
msgid "%F%P: %pB: failed to allocate memory for section `%pA'\n"
msgstr "%F%P: %pB: ниÑам уÑпео да доделим меморију за одељак „%pA“\n"
-#: elfxx-x86.c:1761
+#: elfxx-x86.c:1765
#, c-format
msgid "%F%P: %pB: size of compact relative reloc section is changed: new (%lu) != old (%lu)\n"
msgstr "%F%P: %pB: величина Ñажетог одељка релативног премештања је измењено: нова (%lu) != Ñтара (%lu)\n"
-#: elfxx-x86.c:1783
+#: elfxx-x86.c:1787
#, c-format
msgid "%F%P: %pB: failed to allocate compact relative reloc section\n"
msgstr "%F%P: %pB: ниÑам уÑпео да доделим Ñажети одељак релативног премештања\n"
-#: elfxx-x86.c:2229
+#: elfxx-x86.c:2256
#, c-format
msgid "%F%P: %pB: relocation %s against absolute symbol `%s' in section `%pA' is disallowed\n"
msgstr "%F%P: %pB: премештај „%s“ наÑпрам апÑолутног Ñимбола „%s“ у одељку „%pA“ је иÑкључен\n"
-#: elfxx-x86.c:2311
+#: elfxx-x86.c:2338
msgid "%P: %pB: warning: relocation in read-only section `%pA'\n"
msgstr "%P: %pB: упозорење: премештање у одељку „%pA“ који је Ñамо за читање\n"
-#: elfxx-x86.c:3191
+#: elfxx-x86.c:3265
msgid "%pB: %s (offset: 0x%v, info: 0x%v, addend: 0x%v) against '%s' for section '%pA' in %pB\n"
msgstr "%pB: %s (померај: 0x%v, инфо: 0x%v, Ñабирак: 0x%v) за „%s“ за одељак „%pA“ у „%pB“\n"
-#: elfxx-x86.c:3197
+#: elfxx-x86.c:3271
msgid "%pB: %s (offset: 0x%v, info: 0x%v) against '%s' for section '%pA' in %pB\n"
msgstr "%pB: %s (померај: 0x%v, инфо: 0x%v) за „%s“ за одељак „%pA“ у „%pB“\n"
-#: elfxx-x86.c:3817
+#: elfxx-x86.c:3307
+#, c-format
+msgid "%pB: TLS transition from %s to %s against `%s' at 0x%v in section `%pA' failed\n"
+msgstr "%pB: није уÑпео „TLS“ прелаз Ñа „%s“ на „%s“ наÑпрам „%s“ при 0x%v у одељку „%pA“\n"
+
+#: elfxx-x86.c:3316
+#, c-format
+msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in ADD only\n"
+msgstr "%pB(%pA+0x%v): премештање „%s“ наÑпрам „%s“ Ñе мора кориÑтити Ñамо у „ADD“\n"
+
+#: elfxx-x86.c:3324
+#, c-format
+msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in ADD or MOV only\n"
+msgstr "%pB(%pA+0x%v): премештање „%s“ наÑпрам „%s“ Ñе мора кориÑтити Ñамо у „ADD“ или „MOV“\n"
+
+#: elfxx-x86.c:3332
+#, c-format
+msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in ADD, SUB or MOV only\n"
+msgstr "%pB(%pA+0x%v): премештање „%s“ наÑпрам „%s“ Ñе мора кориÑтити Ñамо у „ADD“, „SUB“ или „MOV“\n"
+
+#: elfxx-x86.c:3340
+#, c-format
+msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in indirect CALL with %s register only\n"
+msgstr "%pB(%pA+0x%v): премештање „%s“ наÑпрам „%s“ Ñе мора кориÑтити Ñамо у индиректном CALL Ñа „%s“ региÑтром\n"
+
+#: elfxx-x86.c:3349
+#, c-format
+msgid "%pB(%pA+0x%v): relocation %s against `%s' must be used in LEA only\n"
+msgstr "%pB(%pA+0x%v): премештање „%s“ наÑпрам „%s“ Ñе мора кориÑтити Ñамо у „LEA“\n"
+
+#: elfxx-x86.c:3976
#, c-format
msgid "error: %pB: <corrupt x86 property (0x%x) size: 0x%x>"
msgstr "грешка: %pB: <оштећено x86 ÑвојÑтво (0x%x) величине: 0x%x>"
-#: elfxx-x86.c:4030
+#: elfxx-x86.c:4189
#, c-format
msgid "%pB: x86 ISA needed: "
msgstr "%pB: x86 ISA је потребно: "
-#: elfxx-x86.c:4032
+#: elfxx-x86.c:4191
#, c-format
msgid "%pB: x86 ISA used: "
msgstr "%pB: x86 ISA Ñе кориÑти: "
-#: elfxx-x86.c:4054
+#: elfxx-x86.c:4213
#, c-format
msgid "<unknown: %x>"
msgstr "<непознато: %x>"
-#: elfxx-x86.c:4209
+#: elfxx-x86.c:4368
msgid "%P: %pB: warning: missing %s\n"
msgstr "%P: %pB: упозорење: недоÑтаје „%s“\n"
-#: elfxx-x86.c:4210
+#: elfxx-x86.c:4369
msgid "%X%P: %pB: error: missing %s\n"
msgstr "%X%P: %pB: грешка: недоÑтаје „%s“\n"
-#: elfxx-x86.c:4316
+#: elfxx-x86.c:4475
msgid "IBT and SHSTK properties"
msgstr "„IBT“ и „SHSTK“ ÑвојÑтва"
-#: elfxx-x86.c:4318
+#: elfxx-x86.c:4477
msgid "IBT property"
msgstr "„IBT“ ÑвојÑтво"
-#: elfxx-x86.c:4320
+#: elfxx-x86.c:4479
msgid "SHSTK property"
msgstr "„SHSTK“ ÑвојÑтво"
-#: elfxx-x86.c:4325
+#: elfxx-x86.c:4484
msgid "LAM_U48 property"
msgstr "„LAM_U48“ property"
-#: elfxx-x86.c:4330
+#: elfxx-x86.c:4489
msgid "LAM_U57 property"
msgstr "„LAM_U57“ ÑвојÑтво"
-#: elfxx-x86.c:4508
+#: elfxx-x86.c:4667
msgid "%F%P: failed to create VxWorks dynamic sections\n"
msgstr "%F%P: ниÑам уÑпео да Ñтворим „VxWorks“ динамичке одељке\n"
-#: elfxx-x86.c:4517
+#: elfxx-x86.c:4676
msgid "%F%P: failed to create GOT sections\n"
msgstr "%F%P: ниÑам уÑпео да направим „GOT“ одељке\n"
-#: elfxx-x86.c:4535
+#: elfxx-x86.c:4694
msgid "%F%P: failed to create ifunc sections\n"
msgstr "%F%P: ниÑам уÑпео да направим „ifunc“ одељке\n"
-#: elfxx-x86.c:4572
+#: elfxx-x86.c:4731
msgid "%F%P: failed to create GOT PLT section\n"
msgstr "%F%P: ниÑам уÑпео да направим „GOT PLT“ одељак\n"
-#: elfxx-x86.c:4591
+#: elfxx-x86.c:4750
msgid "%F%P: failed to create IBT-enabled PLT section\n"
msgstr "%F%P: ниÑам уÑпео да направим „IBT“-ом укључен „PLT“ одељак\n"
-#: elfxx-x86.c:4611
+#: elfxx-x86.c:4770
msgid "%F%P: failed to create PLT .eh_frame section\n"
msgstr "%F%P: ниÑам уÑпео да направим „PLT .eh_frame“ одељак\n"
-#: elfxx-x86.c:4624
+#: elfxx-x86.c:4783
msgid "%F%P: failed to create GOT PLT .eh_frame section\n"
msgstr "%F%P: ниÑам уÑпео да направим „GOT .eh_frame“ одељак\n"
-#: elfxx-x86.c:4638
+#: elfxx-x86.c:4797
msgid "%F%P: failed to create the second PLT .eh_frame section\n"
msgstr "%F%P: ниÑам уÑпео да направим други „PLT .eh_frame“ одељак\n"
-#: elfxx-x86.c:4658
+#: elfxx-x86.c:4817
msgid "%F%P: failed to create PLT .sframe section\n"
msgstr "%F%P: ниÑам уÑпео да направим PLT „.sframe“ одељак\n"
-#: elfxx-x86.c:4673
+#: elfxx-x86.c:4832
msgid "%F%P: failed to create second PLT .sframe section\n"
msgstr "%F%P: ниÑам уÑпео да направим други PLT „.sframe“ одељак\n"
-#: elfxx-x86.c:4713
+#: elfxx-x86.c:4844
+msgid "%F%P: failed to create PLT GOT .sframe section\n"
+msgstr "%F%P: ниÑам уÑпео да направим PLT GOT „.sframe“ одељак\n"
+
+#: elfxx-x86.c:4883
msgid "%X%P: attempted static link of dynamic object `%pB'\n"
msgstr "%X%P: покушах Ñтатичку везу динамичког објекта „%pB“\n"
@@ -6004,76 +6099,76 @@ msgstr "%pB:%u: лоша дужина запиÑа проширене линеа
msgid "%pB:%u: unrecognized ihex type %u in Intel Hex file"
msgstr "%pB:%u: непозната „ihex“ врÑта „%u“ у Интеловој хекÑадецималној датотеци"
-#: ihex.c:581
+#: ihex.c:580
#, c-format
msgid "%pB: internal error in ihex_read_section"
msgstr "%pB: унутрашња грешка у „ihex_одељак_читања“"
-#: ihex.c:614
+#: ihex.c:613
#, c-format
msgid "%pB: bad section length in ihex_read_section"
msgstr "%pB: лоша дужина одељка у „ihex_одељак_читања“"
-#: ihex.c:785
+#: ihex.c:784
#, c-format
msgid "%pB 64-bit address %#<PRIx64> out of range for Intel Hex file"
msgstr "%pB 64-битна адреÑа %#<PRIx64> је ван опÑега за Интелову хекÑадецималну датотеку"
-#: ihex.c:843
+#: ihex.c:842
#, c-format
msgid "%pB: address %#<PRIx64> out of range for Intel Hex file"
msgstr "%pB: адреÑа %#<PRIx64> је ван опÑега за Интелову хекÑадецималну датотеку"
-#: libbfd.c:1264
+#: libbfd.c:1260
#, c-format
msgid "%pB: unable to get decompressed section %pA"
msgstr "%pB: не могу да добавим раÑпаковани одељак „%pA“"
-#: libbfd.c:1276
+#: libbfd.c:1272
#, c-format
msgid "%pB: mapped section %pA has non-NULL buffer"
msgstr "%pB: мапирани одељак „%pA“ има не-ПРÐЗÐУ међумеморију"
-#: linker.c:1715
+#: linker.c:1731
#, c-format
msgid "%pB: indirect symbol `%s' to `%s' is a loop"
msgstr "%pB: индиректни Ñимбол „%s“ ка „%s“ је петља"
-#: linker.c:1795
+#: linker.c:1811
msgid "%P: %pB: note: the message above does not take linker garbage collection into account\n"
msgstr "%P: %pB: напомена: порука изнад не узима збирку ђубра повезивача у налог\n"
-#: linker.c:2593
+#: linker.c:2617
#, c-format
msgid "attempt to do relocatable link with %s input and %s output"
msgstr "покушавам да одрадим премеÑтиву везу Ñа „%s“ улазом и „%s“ излазом"
-#: linker.c:2872
+#: linker.c:2896
#, c-format
msgid "%pB: ignoring duplicate section `%pA'\n"
msgstr "%pB: занемарујем удвоÑтручени одељак „%pA“\n"
-#: linker.c:2882 linker.c:2892
+#: linker.c:2906 linker.c:2916
#, c-format
msgid "%pB: duplicate section `%pA' has different size\n"
msgstr "%pB: удвоÑтручени одељак „%pA“ има другачију величину\n"
-#: linker.c:2906 linker.c:2914
+#: linker.c:2930 linker.c:2938
#, c-format
msgid "%pB: could not read contents of section `%pA'\n"
msgstr "%pB: не могу да прочитам Ñадржај одељка „%pA“\n"
-#: linker.c:2923
+#: linker.c:2947
#, c-format
msgid "%pB: duplicate section `%pA' has different contents\n"
msgstr "%pB: удвоÑтручени одељак „%pA“ има другачији Ñадржај\n"
-#: linker.c:3442
+#: linker.c:3466
#, c-format
msgid "%pB: compiled for a big endian system and target is little endian"
msgstr "%pB: преведено за ÑиÑтем велике крајноÑти а циљ је мала крајноÑÑ‚"
-#: linker.c:3445
+#: linker.c:3469
#, c-format
msgid "%pB: compiled for a little endian system and target is big endian"
msgstr "%pB: преведено за ÑиÑтем мале крајноÑти а циљ је велика крајноÑÑ‚"
@@ -6209,52 +6304,52 @@ msgstr "адреÑа подеока (%#<PRIx64>) је иÑпод почетка
msgid "unable to layout unknown load command %#x"
msgstr "не могу да прикажем непознату наредбу учитавања „%#x“"
-#: mach-o.c:3661
+#: mach-o.c:3652
#, c-format
msgid "bfd_mach_o_read_section_32: overlarge alignment value: %#lx"
msgstr "bfd_mach_o_read_section_32: превелика вредноÑÑ‚ поравања: %#lx"
-#: mach-o.c:3704
+#: mach-o.c:3695
#, c-format
msgid "bfd_mach_o_read_section_64: overlarge alignment value: %#lx"
msgstr "bfd_mach_o_read_section_64: превелика вредноÑÑ‚ поравања: %#lx"
-#: mach-o.c:3755
+#: mach-o.c:3746
#, c-format
msgid "bfd_mach_o_read_symtab_symbol: unable to read %d bytes at %u"
msgstr "bfd_mach_o_read_symtab_symbol: не могу да прочитам %d бајта на %u"
-#: mach-o.c:3774
+#: mach-o.c:3765
#, c-format
msgid "bfd_mach_o_read_symtab_symbol: name out of range (%lu >= %u)"
msgstr "bfd_mach_o_read_symtab_symbol: назив је ван опÑега (%lu >= %u)"
-#: mach-o.c:3857
+#: mach-o.c:3848
#, c-format
msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid section %d (max %lu): setting to undefined"
msgstr "bfd_mach_o_read_symtab_symbol: Ñимбол „%s“ је навео неиÑправан одељак „%d“ (најв. %lu): поÑтављам на недефиниÑано"
-#: mach-o.c:3876
+#: mach-o.c:3867
#, c-format
msgid "bfd_mach_o_read_symtab_symbol: symbol \"%s\" specified invalid type field 0x%x: setting to undefined"
msgstr "bfd_mach_o_read_symtab_symbol: Ñимбол „%s“ је навео неиÑправно поље врÑте 0x%x: поÑтављам на недефиниÑано"
-#: mach-o.c:5075
+#: mach-o.c:5066
#, c-format
msgid "%pB: unknown load command %#x"
msgstr "%pB: непозната наредба учитавања „%#x“"
-#: mach-o.c:5274
+#: mach-o.c:5264
#, c-format
msgid "bfd_mach_o_scan: unknown architecture 0x%lx/0x%lx"
msgstr "bfd_mach_o_scan: непозната архитектура 0x%lx/0x%lx"
-#: mach-o.c:5396
+#: mach-o.c:5389
#, c-format
msgid "unknown header byte-order value %#x"
msgstr "непозната вредноÑÑ‚ поретка бајта заглавља „%#x“"
-#: merge.c:1118
+#: merge.c:1126
#, c-format
msgid "%pB: access beyond end of merged section (%<PRId64>)"
msgstr "%pB: приÑтуп иза краја Ñтопљеног одељка (%<PRId64>)"
@@ -6264,142 +6359,142 @@ msgstr "%pB: приÑтуп иза краја Ñтопљеног одељка (%
msgid "%pB: no core to allocate a symbol %d bytes long"
msgstr "%pB: нема језгра за додељивање Ñимбола дугог %d бајта"
-#: mmo.c:956
+#: mmo.c:951
#, c-format
msgid "%pB: attempt to emit contents at non-multiple-of-4 address %#<PRIx64>"
msgstr "%pB: покушах да емитујем Ñадржај на адреÑи која није производ 4 „%#<PRIx64>“"
-#: mmo.c:1251
+#: mmo.c:1246
#, c-format
msgid "%pB: invalid mmo file: initialization value for $255 is not `Main'\n"
msgstr "%pB: неиÑправна „mmo“ датотека: вредноÑÑ‚ покретања за $255 није „Main“\n"
-#: mmo.c:1398
+#: mmo.c:1393
#, c-format
msgid "%pB: unsupported wide character sequence 0x%02X 0x%02X after symbol name starting with `%s'\n"
msgstr "%pB: неподржан широки низ знака 0x%02X 0x%02X након назива Ñимбола који почиње Ñа „%s“\n"
-#: mmo.c:1414
+#: mmo.c:1409
#, c-format
msgid "%pB: symbol name exceeds given max length of %d"
msgstr "%pB: назив Ñимбола премашује дату највећу дужину од %d"
-#: mmo.c:1643
+#: mmo.c:1638
#, c-format
msgid "%pB: invalid mmo file: unsupported lopcode `%d'\n"
msgstr "%pB: неиÑправна „mmo“ датотека: лопкод „%d“ није подржан\n"
-#: mmo.c:1654
+#: mmo.c:1649
#, c-format
msgid "%pB: invalid mmo file: expected YZ = 1 got YZ = %d for lop_quote\n"
msgstr "%pB: неиÑправна „mmo“ датотека: очекивах YZ = 1 добих YZ = %d за „lop_quote“\n"
-#: mmo.c:1698
+#: mmo.c:1693
#, c-format
msgid "%pB: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_loc\n"
msgstr "%pB: неиÑправна „mmo“ датотека: очекивах z = 1 или z = 2, добих z = %d за „lop_loc“\n"
-#: mmo.c:1749
+#: mmo.c:1744
#, c-format
msgid "%pB: invalid mmo file: expected z = 1 or z = 2, got z = %d for lop_fixo\n"
msgstr "%pB: неиÑправна „mmo“ датотека: очекивах z = 1 или z = 2, добих z = %d за „lop_fixo“\n"
-#: mmo.c:1798
+#: mmo.c:1793
#, c-format
msgid "%pB: invalid mmo file: expected y = 0, got y = %d for lop_fixrx\n"
msgstr "%pB: неиÑправна „mmo“ датотека: очекивах y = 0 добих y = %d за „lop_fixrx“\n"
-#: mmo.c:1809
+#: mmo.c:1804
#, c-format
msgid "%pB: invalid mmo file: expected z = 16 or z = 24, got z = %d for lop_fixrx\n"
msgstr "%pB: неиÑправна „mmo“ датотека: очекивах z = 16 или z = 24, добих z = %d за „lop_fixrx“\n"
-#: mmo.c:1834
+#: mmo.c:1829
#, c-format
msgid "%pB: invalid mmo file: leading byte of operand word must be 0 or 1, got %d for lop_fixrx\n"
msgstr "%pB: неиÑправна „mmo“ датотека: водећи бајт речи операнда мора бити 0 или 1, добих %d за „lop_fixrx“\n"
-#: mmo.c:1863
+#: mmo.c:1858
#, c-format
msgid "%pB: cannot allocate file name for file number %d, %d bytes\n"
msgstr "%pB: не могу да доделим назив датотеке за број датотеке %d, %d бајта\n"
-#: mmo.c:1885
+#: mmo.c:1880
#, c-format
msgid "%pB: invalid mmo file: file number %d `%s', was already entered as `%s'\n"
msgstr "%pB: неиÑправна „mmo“ датотека: број датотеке %d „%s“, је већ унешен као „%s“\n"
-#: mmo.c:1900
+#: mmo.c:1895
#, c-format
msgid "%pB: invalid mmo file: file name for number %d was not specified before use\n"
msgstr "%pB: неиÑправна „mmo“ датотека: назив датотеке за број %d није наведен пре употребе\n"
-#: mmo.c:2012
+#: mmo.c:2007
#, c-format
msgid "%pB: invalid mmo file: fields y and z of lop_stab non-zero, y: %d, z: %d\n"
msgstr "%pB: неиÑправна „mmo“ датотека: поље y и z „lop_stab“-а није нула, y: %d, z: %d\n"
-#: mmo.c:2049
+#: mmo.c:2044
#, c-format
msgid "%pB: invalid mmo file: lop_end not last item in file\n"
msgstr "%pB: неиÑправна „mmo“ датотека: „lop_end“ није поÑледња Ñтавка у датотеци\n"
-#: mmo.c:2063
+#: mmo.c:2058
#, c-format
msgid "%pB: invalid mmo file: YZ of lop_end (%ld) not equal to the number of tetras to the preceding lop_stab (%ld)\n"
msgstr "%pB: неиÑправна „mmo“ датотека: YZ „lop_end“-а (%ld) није једнако Ñа бројем тетраÑа до претходног „lop_stab“-а (%ld)\n"
-#: mmo.c:2776
+#: mmo.c:2768
#, c-format
msgid "%pB: invalid symbol table: duplicate symbol `%s'\n"
msgstr "%pB: неиÑправна табела Ñимбола: удвоÑтручени Ñимбол „%s“\n"
-#: mmo.c:3015
+#: mmo.c:3007
#, c-format
msgid "%pB: bad symbol definition: `Main' set to %<PRIx64> rather than the start address %<PRIx64>\n"
msgstr "%pB: лоша дефиниција Ñимбола: „Main“ је поÑтављено на „%<PRIx64>“ умеÑто почетне адреÑе „%<PRIx64>“\n"
-#: mmo.c:3114
+#: mmo.c:3106
#, c-format
msgid "%pB: warning: symbol table too large for mmo, larger than 65535 32-bit words: %d. Only `Main' will be emitted.\n"
msgstr "%pB: упозорење: табела Ñимбола је превише велика за „mmo“, већа од 65535 32-битних речи: %d. Само „Main“ биће дато.\n"
-#: mmo.c:3160
+#: mmo.c:3152
#, c-format
msgid "%pB: internal error, symbol table changed size from %d to %d words\n"
msgstr "%pB: унутрашња грешка, табела Ñимбола је изменила величину из %d у %d речи\n"
-#: mmo.c:3213
+#: mmo.c:3205
#, c-format
msgid "%pB: internal error, internal register section %pA had contents\n"
msgstr "%pB: унутрашња грешка, унутрашњи одељак региÑтра „%pA“ има Ñадржај\n"
-#: mmo.c:3264
+#: mmo.c:3256
#, c-format
msgid "%pB: no initialized registers; section length 0\n"
msgstr "%pB: нема покренутих региÑтара; дужина одељка 0\n"
-#: mmo.c:3271
+#: mmo.c:3263
#, c-format
msgid "%pB: too many initialized registers; section length %<PRId64>"
msgstr "%pB: превише покренутих региÑтара; дужина одељка %<PRId64>"
-#: mmo.c:3276
+#: mmo.c:3268
#, c-format
msgid "%pB: invalid start address for initialized registers of length %<PRId64>: %#<PRIx64>"
msgstr "%pB: неиÑправна почетна адреÑа за покренуте региÑтре дужине %<PRId64>: %#<PRIx64>"
-#: osf-core.c:127
+#: osf-core.c:128
#, c-format
msgid "unhandled OSF/1 core file section type %d"
msgstr "не могу да радим Ñа врÑтом одељка %d датотеке OSF/1 језгра"
-#: pdp11.c:1580
+#: pdp11.c:1573
#, c-format
msgid "%pB: symbol indicates overlay (not supported)"
msgstr "%pB: Ñимбол означава прекорачење (није подржано)"
-#: pef.c:530
+#: pef.c:534
#, c-format
msgid "bfd_pef_scan: unknown architecture 0x%lx"
msgstr "bfd_pef_scan: непозната архитектура 0x%lx"
@@ -6465,63 +6560,87 @@ msgstr ""
"\n"
"Излаз за „%s“\n"
-#. XXX code yet to be written.
-#: peicode.h:820
-#, c-format
-msgid "%pB: unhandled import type; %x"
-msgstr "%pB: необрадива врÑта увоза; %x"
-
-#: peicode.h:826
+#: peicode.h:823
#, c-format
msgid "%pB: unrecognized import type; %x"
msgstr "%pB: непозната врÑта увоза; %x"
-#: peicode.h:841
+#: peicode.h:840
+#, c-format
+msgid "%pB: missing import name for IMPORT_NAME_EXPORTAS for %s"
+msgstr "%pB: недоÑтаје назив увоза за „IMPORT_NAME_EXPORTAS“ за „%s“"
+
+#: peicode.h:849
#, c-format
msgid "%pB: unrecognized import name type; %x"
msgstr "%pB: непознат назив врÑте увоза; %x"
-#: peicode.h:1280
+#: peicode.h:1298
#, c-format
msgid "%pB: unrecognised machine type (0x%x) in Import Library Format archive"
msgstr "%pB: непозната врÑта машине (0x%x) у архиви запиÑа библиотеке увоза"
-#: peicode.h:1293
+#: peicode.h:1311
#, c-format
msgid "%pB: recognised but unhandled machine type (0x%x) in Import Library Format archive"
msgstr "%pB: позната али необрадива врÑта машине (0x%x) у архиви запиÑа библиотеке увоза"
-#: peicode.h:1311
+#: peicode.h:1329
#, c-format
msgid "%pB: size field is zero in Import Library Format header"
msgstr "%pB: поље величине је нула у заглављу запиÑа библиотеке увоза"
-#: peicode.h:1337
+#: peicode.h:1355
#, c-format
msgid "%pB: string not null terminated in ILF object file"
msgstr "%pB: ниÑка Ñе не завршава нулом у датотеци „ILF“ објекта"
-#: peicode.h:1393
+#: peicode.h:1426
#, c-format
msgid "%pB: error: debug data ends beyond end of debug directory"
msgstr "%pB: грешка: подаци прочишћавања Ñе завршавају изван краја директоријума прочишћавања"
-#: peicode.h:1563
+#: peicode.h:1598
#, c-format
msgid "%pB: adjusting invalid SectionAlignment"
msgstr "%pB: поправљам неиÑправно поравнање одељка"
-#: peicode.h:1573
+#: peicode.h:1608
#, c-format
msgid "%pB: adjusting invalid FileAlignment"
msgstr "%pB: поправљам неиÑправно поравнање датотеке"
-#: peicode.h:1581
+#: peicode.h:1616
#, c-format
msgid "%pB: invalid NumberOfRvaAndSizes"
msgstr "%pB: неиÑправан број Рва и величина"
-#: plugin.c:258
+#: plugin.c:197
+#, c-format
+msgid "%s: failed to open to extract object only section: %s"
+msgstr "%s: ниÑÑам уÑпео да отворим да извучем одељак Ñамо објекта: %s"
+
+#: plugin.c:214
+#, c-format
+msgid "%pB: invalid file to extract object only section: %s"
+msgstr "%pB: неиÑправна датотека за извлачење одељка Ñамо објекта: %s"
+
+#: plugin.c:227
+#, c-format
+msgid "%pB: failed to extract object only section: %s"
+msgstr "%pB: ниÑам уÑпео да извучем одељак Ñамо објекта: %s"
+
+#: plugin.c:247
+#, c-format
+msgid "%pB: failed to open object only section: %s"
+msgstr "%pB: ниÑам уÑпео да отворим одељак Ñамо објекта: %s"
+
+#: plugin.c:257
+#, c-format
+msgid "%pB: failed to get symbol table in object only section: %s"
+msgstr "%pB: ниÑам уÑпео да добавим табелу Ñимбола у одељку Ñамо објекта: %s"
+
+#: plugin.c:413
msgid "plugin framework: out of file descriptors. Try using fewer objects/archives\n"
msgstr "радни оквир прикључка: нема више опиÑника датотека. Покушајте да кориÑтите мање објеката/архива\n"
@@ -6578,17 +6697,17 @@ msgstr "Одељак партиције[%d] = 0x%.8lx (%ld)\n"
msgid "Partition[%d] length = 0x%.8lx (%ld)\n"
msgstr "Дужина партиције[%d] = 0x%.8lx (%ld)\n"
-#: reloc.c:8524
+#: reloc.c:8417
msgid "INPUT_SECTION_FLAGS are not supported"
msgstr "„INPUT_SECTION_FLAGS“ није подржано"
-#: reloc.c:8790
+#: reloc.c:8683
#, c-format
msgid "%pB: unrecognized relocation type %#x in section `%pA'"
msgstr "%pB: непозната врÑта премештања %#x у одељку „%pA“"
#. PR 21803: Suggest the most likely cause of this error.
-#: reloc.c:8794
+#: reloc.c:8687
#, c-format
msgid "is this version of the linker - %s - out of date ?"
msgstr "да није ово издање повезивача – %s – мало заÑтарело ?"
@@ -6609,12 +6728,12 @@ msgid "%pB(%pA+%#<PRIx64>): %s relocation offset out of range"
msgstr "%pB(%pA+%#<PRIx64>): померај премештања „%s“ је ван опÑега"
#. User has specified a subspace without its containing space.
-#: som.c:5405
+#: som.c:5403
#, c-format
msgid "%pB[%pA]: no output section for space %pA"
msgstr "%pB[%pA]: нема излазног одељка за размак „%pA“"
-#: som.c:5451
+#: som.c:5449
#, c-format
msgid ""
"\n"
@@ -6623,7 +6742,7 @@ msgstr ""
"\n"
"Помоћно заглавље извршне\n"
-#: som.c:5760
+#: som.c:5758
msgid "som_sizeof_headers unimplemented"
msgstr "„som_sizeof_headers“ није примењено"
@@ -6647,7 +6766,7 @@ msgstr "%pB:%d: лоша Ñума провере у датотеци S-запиÑ
msgid "%pB(%pA+%#lx): stabs entry has invalid string index"
msgstr "%pB(%pA+%#lx): ÑƒÐ½Ð¾Ñ Ð¾ÐºÑ€ÑšÐ°ÐºÐ° има неиÑправан Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð¸Ñке"
-#: syms.c:1112
+#: syms.c:1120
msgid "unsupported .stab relocation"
msgstr "неподржано „.stab“ премештање"
@@ -6772,1429 +6891,1429 @@ msgstr "оштећен „EEOM“ Ñнимак – величина је преÐ
msgid "object module not error-free !"
msgstr "модул објекта није без грешака !"
-#: vms-alpha.c:4012
+#: vms-alpha.c:4006
#, c-format
msgid "SEC_RELOC with no relocs in section %pA"
msgstr "„SEC_RELOC“ је без премештања у одељку „%pA“"
-#: vms-alpha.c:4064 vms-alpha.c:4292
+#: vms-alpha.c:4058 vms-alpha.c:4286
#, c-format
msgid "size error in section %pA"
msgstr "грешка величине у одељку „%pA“"
-#: vms-alpha.c:4235
+#: vms-alpha.c:4229
msgid "spurious ALPHA_R_BSR reloc"
msgstr "привидно „ALPHA_R_BSR“ премештање"
-#: vms-alpha.c:4278
+#: vms-alpha.c:4272
#, c-format
msgid "unhandled relocation %s"
msgstr "необрадиво премештање „%s“"
-#: vms-alpha.c:4643
+#: vms-alpha.c:4637
#, c-format
msgid "unknown source command %d"
msgstr "непозната наредба извора „%d“"
-#: vms-alpha.c:4795 vms-alpha.c:4800 vms-alpha.c:4805 vms-alpha.c:4810
-#: vms-alpha.c:4815 vms-alpha.c:4838 vms-alpha.c:4843 vms-alpha.c:4848
-#: vms-alpha.c:4853
+#: vms-alpha.c:4789 vms-alpha.c:4794 vms-alpha.c:4799 vms-alpha.c:4804
+#: vms-alpha.c:4809 vms-alpha.c:4832 vms-alpha.c:4837 vms-alpha.c:4842
+#: vms-alpha.c:4847
#, c-format
msgid "%s not implemented"
msgstr "„%s“ није примењено"
-#: vms-alpha.c:4889
+#: vms-alpha.c:4883
#, c-format
msgid "unknown line command %d"
msgstr "непозната редна наредба „%d“"
-#: vms-alpha.c:5328
+#: vms-alpha.c:5322
msgid "corrupt reloc record"
msgstr "оштећени Ñнимак премештања"
-#: vms-alpha.c:5358 vms-alpha.c:5376 vms-alpha.c:5393 vms-alpha.c:5411
-#: vms-alpha.c:5424 vms-alpha.c:5436 vms-alpha.c:5449
+#: vms-alpha.c:5352 vms-alpha.c:5370 vms-alpha.c:5387 vms-alpha.c:5405
+#: vms-alpha.c:5418 vms-alpha.c:5430 vms-alpha.c:5443
#, c-format
msgid "unknown reloc %s + %s"
msgstr "непознато премештање „%s + %s“"
-#: vms-alpha.c:5508
+#: vms-alpha.c:5502
#, c-format
msgid "unknown reloc %s"
msgstr "непознато премештање „%s“"
-#: vms-alpha.c:5522
+#: vms-alpha.c:5516
msgid "invalid section index in ETIR"
msgstr "неиÑправан Ð¸Ð½Ð´ÐµÐºÑ Ð¾Ð´ÐµÑ™ÐºÐ° у „ETIR“-у"
-#: vms-alpha.c:5531
+#: vms-alpha.c:5525
msgid "relocation for non-REL psect"
msgstr "премештање за не-„REL“ п-одељак"
-#: vms-alpha.c:5584
+#: vms-alpha.c:5578
#, c-format
msgid "unknown symbol in command %s"
msgstr "непознати Ñимбол у наредби „%s“"
-#: vms-alpha.c:6003
+#: vms-alpha.c:5996
#, c-format
msgid "reloc (%d) is *UNKNOWN*"
msgstr "премештање (%d) је *ÐЕПОЗÐÐТО*"
-#: vms-alpha.c:6120
+#: vms-alpha.c:6113
#, c-format
msgid " EMH %d (len=%u): "
msgstr " EMH %d (дужина=%u): "
-#: vms-alpha.c:6125 vms-alpha.c:6144 vms-alpha.c:6223
+#: vms-alpha.c:6118 vms-alpha.c:6137 vms-alpha.c:6216
#, c-format
msgid " Error: %s min length is %u\n"
msgstr " Грешка: %s најм. дужина је %u\n"
-#: vms-alpha.c:6148
+#: vms-alpha.c:6141
#, c-format
msgid "Module header\n"
msgstr "Заглавље модула\n"
-#: vms-alpha.c:6149
+#: vms-alpha.c:6142
#, c-format
msgid " structure level: %u\n"
msgstr " ниво Ñтруктуре : %u\n"
-#: vms-alpha.c:6150
+#: vms-alpha.c:6143
#, c-format
msgid " max record size: %u\n"
msgstr " најв. величина бележења: %u\n"
-#: vms-alpha.c:6156
+#: vms-alpha.c:6149
#, c-format
msgid " Error: The module name is missing\n"
msgstr " Грешка: Ðазив модула недоÑтаје\n"
-#: vms-alpha.c:6162
+#: vms-alpha.c:6155
#, c-format
msgid " Error: The module name is too long\n"
msgstr " Грешка: Ðазив модула је предуг\n"
-#: vms-alpha.c:6165
+#: vms-alpha.c:6158
#, c-format
msgid " module name : %.*s\n"
msgstr " назив модула : %.*s\n"
-#: vms-alpha.c:6169
+#: vms-alpha.c:6162
#, c-format
msgid " Error: The module version is missing\n"
msgstr " Грешка: Издање модула недоÑтаје\n"
-#: vms-alpha.c:6175
+#: vms-alpha.c:6168
#, c-format
msgid " Error: The module version is too long\n"
msgstr " Грешка: Издање модула је предуго\n"
-#: vms-alpha.c:6178
+#: vms-alpha.c:6171
#, c-format
msgid " module version : %.*s\n"
msgstr " издање модула : %.*s\n"
-#: vms-alpha.c:6181
+#: vms-alpha.c:6174
#, c-format
msgid " Error: The compile date is truncated\n"
msgstr " Грешка: Датум превођења је Ñкраћен\n"
-#: vms-alpha.c:6183
+#: vms-alpha.c:6176
#, c-format
msgid " compile date : %.17s\n"
msgstr " датум превођења : %.17s\n"
-#: vms-alpha.c:6188
+#: vms-alpha.c:6181
#, c-format
msgid "Language Processor Name\n"
msgstr "Ðазив језика процеÑора\n"
-#: vms-alpha.c:6189
+#: vms-alpha.c:6182
#, c-format
msgid " language name: %.*s\n"
msgstr " назив језика: %.*s\n"
-#: vms-alpha.c:6193
+#: vms-alpha.c:6186
#, c-format
msgid "Source Files Header\n"
msgstr "Заглавље датотека извора\n"
-#: vms-alpha.c:6194
+#: vms-alpha.c:6187
#, c-format
msgid " file: %.*s\n"
msgstr " датотека: %.*s\n"
-#: vms-alpha.c:6198
+#: vms-alpha.c:6191
#, c-format
msgid "Title Text Header\n"
msgstr "Заглавље текÑта наÑлова\n"
-#: vms-alpha.c:6199
+#: vms-alpha.c:6192
#, c-format
msgid " title: %.*s\n"
msgstr " наÑлов: %.*s\n"
-#: vms-alpha.c:6203
+#: vms-alpha.c:6196
#, c-format
msgid "Copyright Header\n"
msgstr "Заглавље ауторÑких права\n"
-#: vms-alpha.c:6204
+#: vms-alpha.c:6197
#, c-format
msgid " copyright: %.*s\n"
msgstr " ауторÑка права: %.*s\n"
-#: vms-alpha.c:6208
+#: vms-alpha.c:6201
#, c-format
msgid "unhandled emh subtype %u\n"
msgstr "необрадива emh подврÑта „%u“\n"
-#: vms-alpha.c:6218
+#: vms-alpha.c:6211
#, c-format
msgid " EEOM (len=%u):\n"
msgstr " EEOM (дужина=%u):\n"
-#: vms-alpha.c:6228
+#: vms-alpha.c:6221
#, c-format
msgid " number of cond linkage pairs: %u\n"
msgstr " број „cond“ парова повезивања: %u\n"
-#: vms-alpha.c:6230
+#: vms-alpha.c:6223
#, c-format
msgid " completion code: %u\n"
msgstr " довршавање кода: %u\n"
-#: vms-alpha.c:6235
+#: vms-alpha.c:6228
#, c-format
msgid " transfer addr flags: 0x%02x\n"
msgstr " заÑтавице адреÑе преноÑа: 0x%02x\n"
-#: vms-alpha.c:6236
+#: vms-alpha.c:6229
#, c-format
msgid " transfer addr psect: %u\n"
msgstr " п-одељак адреÑе преноÑа : %u\n"
-#: vms-alpha.c:6238
+#: vms-alpha.c:6231
#, c-format
msgid " transfer address : 0x%08x\n"
msgstr " адреÑа преноÑа : 0x%08x\n"
-#: vms-alpha.c:6247
+#: vms-alpha.c:6240
msgid " WEAK"
msgstr " WEAK"
-#: vms-alpha.c:6249
+#: vms-alpha.c:6242
msgid " DEF"
msgstr " DEF"
-#: vms-alpha.c:6251
+#: vms-alpha.c:6244
msgid " UNI"
msgstr " UNI"
-#: vms-alpha.c:6253 vms-alpha.c:6274
+#: vms-alpha.c:6246 vms-alpha.c:6267
msgid " REL"
msgstr " REL"
-#: vms-alpha.c:6255
+#: vms-alpha.c:6248
msgid " COMM"
msgstr " COMM"
-#: vms-alpha.c:6257
+#: vms-alpha.c:6250
msgid " VECEP"
msgstr " VECEP"
-#: vms-alpha.c:6259
+#: vms-alpha.c:6252
msgid " NORM"
msgstr " NORM"
-#: vms-alpha.c:6261
+#: vms-alpha.c:6254
msgid " QVAL"
msgstr " QVAL"
-#: vms-alpha.c:6268
+#: vms-alpha.c:6261
msgid " PIC"
msgstr " PIC"
-#: vms-alpha.c:6270
+#: vms-alpha.c:6263
msgid " LIB"
msgstr " LIB"
-#: vms-alpha.c:6272
+#: vms-alpha.c:6265
msgid " OVR"
msgstr " OVR"
-#: vms-alpha.c:6276
+#: vms-alpha.c:6269
msgid " GBL"
msgstr " GBL"
-#: vms-alpha.c:6278
+#: vms-alpha.c:6271
msgid " SHR"
msgstr " SHR"
-#: vms-alpha.c:6280
+#: vms-alpha.c:6273
msgid " EXE"
msgstr " EXE"
-#: vms-alpha.c:6282
+#: vms-alpha.c:6275
msgid " RD"
msgstr " RD"
-#: vms-alpha.c:6284
+#: vms-alpha.c:6277
msgid " WRT"
msgstr " WRT"
-#: vms-alpha.c:6286
+#: vms-alpha.c:6279
msgid " VEC"
msgstr " VEC"
-#: vms-alpha.c:6288
+#: vms-alpha.c:6281
msgid " NOMOD"
msgstr " NOMOD"
-#: vms-alpha.c:6290
+#: vms-alpha.c:6283
msgid " COM"
msgstr " COM"
-#: vms-alpha.c:6292
+#: vms-alpha.c:6285
msgid " 64B"
msgstr " 64B"
-#: vms-alpha.c:6301
+#: vms-alpha.c:6294
#, c-format
msgid " EGSD (len=%u):\n"
msgstr " EGSD (дужина=%u):\n"
-#: vms-alpha.c:6316
+#: vms-alpha.c:6309
#, c-format
msgid " EGSD entry %2u (type: %u, len: %u): "
msgstr " „EGSD“ ÑƒÐ½Ð¾Ñ â€ž%2u“ (врÑта: %u, дужина: %u): "
-#: vms-alpha.c:6322 vms-alpha.c:6617
+#: vms-alpha.c:6315 vms-alpha.c:6610
#, c-format
msgid " Erroneous length\n"
msgstr " Погрешна дужина\n"
-#: vms-alpha.c:6335
+#: vms-alpha.c:6328
#, c-format
msgid "PSC - Program section definition\n"
msgstr "PSC — Дефиниција одељка програма\n"
-#: vms-alpha.c:6336 vms-alpha.c:6356
+#: vms-alpha.c:6329 vms-alpha.c:6349
#, c-format
msgid " alignment : 2**%u\n"
msgstr " поравнање : 2**%u\n"
-#: vms-alpha.c:6337 vms-alpha.c:6357
+#: vms-alpha.c:6330 vms-alpha.c:6350
#, c-format
msgid " flags : 0x%04x"
msgstr " заÑтавице : 0x%04x"
-#: vms-alpha.c:6341
+#: vms-alpha.c:6334
#, c-format
msgid " alloc (len): %u (0x%08x)\n"
msgstr " додела (дужина): %u (0x%08x)\n"
-#: vms-alpha.c:6343 vms-alpha.c:6409 vms-alpha.c:6477
+#: vms-alpha.c:6336 vms-alpha.c:6402 vms-alpha.c:6470
#, c-format
msgid " name : %.*s\n"
msgstr " назив : %.*s\n"
-#: vms-alpha.c:6355
+#: vms-alpha.c:6348
#, c-format
msgid "SPSC - Shared Image Program section def\n"
msgstr "SPSC — Дефиниција одељка програма дељене Ñлике\n"
-#: vms-alpha.c:6361
+#: vms-alpha.c:6354
#, c-format
msgid " alloc (len) : %u (0x%08x)\n"
msgstr " додела (дужина) : %u (0x%08x)\n"
-#: vms-alpha.c:6362
+#: vms-alpha.c:6355
#, c-format
msgid " image offset : 0x%08x\n"
msgstr " померај Ñлике: 0x%08x\n"
-#: vms-alpha.c:6364
+#: vms-alpha.c:6357
#, c-format
msgid " symvec offset : 0x%08x\n"
msgstr " померај Ñимвек-а : 0x%08x\n"
-#: vms-alpha.c:6367
+#: vms-alpha.c:6360
#, c-format
msgid " name : %.*s\n"
msgstr " назив : %.*s\n"
-#: vms-alpha.c:6383
+#: vms-alpha.c:6376
#, c-format
msgid "SYM - Global symbol definition\n"
msgstr "SYM — Дефиниција општег Ñимбола\n"
-#: vms-alpha.c:6384 vms-alpha.c:6465 vms-alpha.c:6489 vms-alpha.c:6512
+#: vms-alpha.c:6377 vms-alpha.c:6458 vms-alpha.c:6482 vms-alpha.c:6505
#, c-format
msgid " flags: 0x%04x"
msgstr " заÑтавице : 0x%04x"
-#: vms-alpha.c:6387
+#: vms-alpha.c:6380
#, c-format
msgid " psect offset: 0x%08x\n"
msgstr " померај п-одељка: 0x%08x\n"
-#: vms-alpha.c:6391
+#: vms-alpha.c:6384
#, c-format
msgid " code address: 0x%08x\n"
msgstr " адреÑа кода: 0x%08x\n"
-#: vms-alpha.c:6393
+#: vms-alpha.c:6386
#, c-format
msgid " psect index for entry point : %u\n"
msgstr " Ð¸Ð½Ð´ÐµÐºÑ Ð¿-одељка за тачку уноÑа: %u\n"
-#: vms-alpha.c:6396 vms-alpha.c:6496 vms-alpha.c:6519
+#: vms-alpha.c:6389 vms-alpha.c:6489 vms-alpha.c:6512
#, c-format
msgid " psect index : %u\n"
msgstr " Ð¸Ð½Ð´ÐµÐºÑ Ð¿-одељка : %u\n"
-#: vms-alpha.c:6399 vms-alpha.c:6499 vms-alpha.c:6522
+#: vms-alpha.c:6392 vms-alpha.c:6492 vms-alpha.c:6515
#, c-format
msgid " name : %.*s\n"
msgstr " назив : %.*s\n"
-#: vms-alpha.c:6407
+#: vms-alpha.c:6400
#, c-format
msgid "SYM - Global symbol reference\n"
msgstr "SYM — Упута општег Ñимбола\n"
-#: vms-alpha.c:6422
+#: vms-alpha.c:6415
#, c-format
msgid "IDC - Ident Consistency check\n"
msgstr "IDC — Провера доÑледноÑти увлачења\n"
-#: vms-alpha.c:6423
+#: vms-alpha.c:6416
#, c-format
msgid " flags : 0x%08x"
msgstr " заÑтавице : 0x%08x"
-#: vms-alpha.c:6427
+#: vms-alpha.c:6420
#, c-format
msgid " id match : %x\n"
msgstr " подударање ид-а : %x\n"
-#: vms-alpha.c:6429
+#: vms-alpha.c:6422
#, c-format
msgid " error severity: %x\n"
msgstr " озбиљноÑÑ‚ грешке: %x\n"
-#: vms-alpha.c:6433
+#: vms-alpha.c:6426
#, c-format
msgid " entity name : %.*s\n"
msgstr " назив ентитета : %.*s\n"
-#: vms-alpha.c:6439
+#: vms-alpha.c:6432
#, c-format
msgid " object name : %.*s\n"
msgstr " назив објекта : %.*s\n"
-#: vms-alpha.c:6448
+#: vms-alpha.c:6441
#, c-format
msgid " binary ident : 0x%08x\n"
msgstr " увлачење бинарног : 0x%08x\n"
-#: vms-alpha.c:6452
+#: vms-alpha.c:6445
#, c-format
msgid " ascii ident : %.*s\n"
msgstr " аÑкри увлачење : %.*s\n"
-#: vms-alpha.c:6464
+#: vms-alpha.c:6457
#, c-format
msgid "SYMG - Universal symbol definition\n"
msgstr "SYMG — Дефиниција универзалног Ñимбола\n"
-#: vms-alpha.c:6468
+#: vms-alpha.c:6461
#, c-format
msgid " symbol vector offset: 0x%08x\n"
msgstr " померај вектора Ñимбола: 0x%08x\n"
-#: vms-alpha.c:6470
+#: vms-alpha.c:6463
#, c-format
msgid " entry point: 0x%08x\n"
msgstr " тачка уноÑа: 0x%08x\n"
-#: vms-alpha.c:6472
+#: vms-alpha.c:6465
#, c-format
msgid " proc descr : 0x%08x\n"
msgstr " опиÑник процеÑа : 0x%08x\n"
-#: vms-alpha.c:6474
+#: vms-alpha.c:6467
#, c-format
msgid " psect index: %u\n"
msgstr " Ð¸Ð½Ð´ÐµÐºÑ Ð¿-одељка: %u\n"
-#: vms-alpha.c:6488
+#: vms-alpha.c:6481
#, c-format
msgid "SYMV - Vectored symbol definition\n"
msgstr "SYMV — Дефиниција векториÑаног Ñимбола\n"
-#: vms-alpha.c:6492
+#: vms-alpha.c:6485
#, c-format
msgid " vector : 0x%08x\n"
msgstr " вектор : 0x%08x\n"
-#: vms-alpha.c:6494 vms-alpha.c:6517
+#: vms-alpha.c:6487 vms-alpha.c:6510
#, c-format
msgid " psect offset: %u\n"
msgstr " померај п-одељка: %u\n"
-#: vms-alpha.c:6511
+#: vms-alpha.c:6504
#, c-format
msgid "SYMM - Global symbol definition with version\n"
msgstr "SYMM — Општа дефиниција Ñимбола Ñа верзијом\n"
-#: vms-alpha.c:6515
+#: vms-alpha.c:6508
#, c-format
msgid " version mask: 0x%08x\n"
msgstr " маÑка верзије: 0x%08x\n"
-#: vms-alpha.c:6528
+#: vms-alpha.c:6521
#, c-format
msgid "unhandled egsd entry type %u\n"
msgstr "необрадив „egsd“ ÑƒÐ½Ð¾Ñ Ð²Ñ€Ñте %u\n"
-#: vms-alpha.c:6567
+#: vms-alpha.c:6560
#, c-format
msgid " linkage index: %u, replacement insn: 0x%08x\n"
msgstr " Ð¸Ð½Ð´ÐµÐºÑ Ð¿Ð¾Ð²ÐµÐ·Ð¸Ð²Ð°ÑšÐ°: %u, инÑтрукција премештања: 0x%08x\n"
-#: vms-alpha.c:6571
+#: vms-alpha.c:6564
#, c-format
msgid " psect idx 1: %u, offset 1: 0x%08x %08x\n"
msgstr " Ð¸Ð½Ð´ÐµÐºÑ Ð¿-одељка 1: %u, померај 1: 0x%08x %08x\n"
-#: vms-alpha.c:6576
+#: vms-alpha.c:6569
#, c-format
msgid " psect idx 2: %u, offset 2: 0x%08x %08x\n"
msgstr " Ð¸Ð½Ð´ÐµÐºÑ Ð¿-одељка 2: %u, померај 2: 0x%08x %08x\n"
-#: vms-alpha.c:6582
+#: vms-alpha.c:6575
#, c-format
msgid " psect idx 3: %u, offset 3: 0x%08x %08x\n"
msgstr " Ð¸Ð½Ð´ÐµÐºÑ Ð¿-одељка 3: %u, померај 3: 0x%08x %08x\n"
-#: vms-alpha.c:6587
+#: vms-alpha.c:6580
#, c-format
msgid " global name: %.*s\n"
msgstr " општи назив: %.*s\n"
-#: vms-alpha.c:6599
+#: vms-alpha.c:6592
#, c-format
msgid " %s (len=%u):\n"
msgstr " %s (дужина=%u):\n"
-#: vms-alpha.c:6622
+#: vms-alpha.c:6615
#, c-format
msgid " (type: %3u, size: %3u): "
msgstr " (врÑта: %3u, величина: %3u): "
-#: vms-alpha.c:6628
+#: vms-alpha.c:6621
#, c-format
msgid "STA_GBL (stack global) %.*s\n"
msgstr "STA_GBL (општоÑÑ‚ Ñпремника) %.*s\n"
-#: vms-alpha.c:6632
+#: vms-alpha.c:6625
#, c-format
msgid "STA_LW (stack longword)"
msgstr "STA_LW (дуга реч Ñпремника)"
-#: vms-alpha.c:6638
+#: vms-alpha.c:6631
#, c-format
msgid "STA_QW (stack quadword)"
msgstr "STA_QW (четвороÑтрука реч Ñпремника)"
-#: vms-alpha.c:6645
+#: vms-alpha.c:6638
#, c-format
msgid "STA_PQ (stack psect base + offset)\n"
msgstr "STA_PQ (оÑнова п-одељка Ñпремника + померај)\n"
-#: vms-alpha.c:6648
+#: vms-alpha.c:6641
#, c-format
msgid " psect: %u, offset: 0x%08x %08x\n"
msgstr " п-одељак: %u, померај: 0x%08x %08x\n"
-#: vms-alpha.c:6654
+#: vms-alpha.c:6647
#, c-format
msgid "STA_LI (stack literal)\n"
msgstr "STA_LI (доÑловноÑÑ‚ Ñпремника)\n"
-#: vms-alpha.c:6657
+#: vms-alpha.c:6650
#, c-format
msgid "STA_MOD (stack module)\n"
msgstr "STA_MOD (модул Ñпремника)\n"
-#: vms-alpha.c:6660
+#: vms-alpha.c:6653
#, c-format
msgid "STA_CKARG (compare procedure argument)\n"
msgstr "STA_CKARG (аргумент поÑтупка поређења)\n"
-#: vms-alpha.c:6664
+#: vms-alpha.c:6657
#, c-format
msgid "STO_B (store byte)\n"
msgstr "STO_B (Ñмешта бајт)\n"
-#: vms-alpha.c:6667
+#: vms-alpha.c:6660
#, c-format
msgid "STO_W (store word)\n"
msgstr "STO_W (Ñмешта реч)\n"
-#: vms-alpha.c:6670
+#: vms-alpha.c:6663
#, c-format
msgid "STO_LW (store longword)\n"
msgstr "STO_LW (Ñмешта дугу реч)\n"
-#: vms-alpha.c:6673
+#: vms-alpha.c:6666
#, c-format
msgid "STO_QW (store quadword)\n"
msgstr "STO_QW (Ñмешта четворореч)\n"
-#: vms-alpha.c:6680
+#: vms-alpha.c:6673
#, c-format
msgid "STO_IMMR (store immediate repeat) %u bytes\n"
msgstr "STO_IMMR (Ñмешта моментално понављање) %u бајта\n"
-#: vms-alpha.c:6689
+#: vms-alpha.c:6682
#, c-format
msgid "STO_GBL (store global) %.*s\n"
msgstr "STO_GBL (Ñмешта опште) %.*s\n"
-#: vms-alpha.c:6694
+#: vms-alpha.c:6687
#, c-format
msgid "STO_CA (store code address) %.*s\n"
msgstr "STO_CA (Ñмешта адреÑу кода) %.*s\n"
-#: vms-alpha.c:6698
+#: vms-alpha.c:6691
#, c-format
msgid "STO_RB (store relative branch)\n"
msgstr "STO_RB (Ñмешта релативну грану)\n"
-#: vms-alpha.c:6701
+#: vms-alpha.c:6694
#, c-format
msgid "STO_AB (store absolute branch)\n"
msgstr "STO_AB (Ñмешта апÑолутну грану)\n"
-#: vms-alpha.c:6704
+#: vms-alpha.c:6697
#, c-format
msgid "STO_OFF (store offset to psect)\n"
msgstr "STO_OFF (Ñмешта померај у п-одељак)\n"
-#: vms-alpha.c:6711
+#: vms-alpha.c:6704
#, c-format
msgid "STO_IMM (store immediate) %u bytes\n"
msgstr "STO_IMM (Ñмешта моментално) %u бајта\n"
-#: vms-alpha.c:6720
+#: vms-alpha.c:6713
#, c-format
msgid "STO_GBL_LW (store global longword) %.*s\n"
msgstr "STO_GBL_LW (Ñмешта општу дугу реч) %.*s\n"
-#: vms-alpha.c:6724
+#: vms-alpha.c:6717
#, c-format
msgid "STO_OFF (store LP with procedure signature)\n"
msgstr "STO_OFF (Ñмешта ЛП Ñа потпиÑом поÑтупка)\n"
-#: vms-alpha.c:6727
+#: vms-alpha.c:6720
#, c-format
msgid "STO_BR_GBL (store branch global) *todo*\n"
msgstr "STO_BR_GBL (Ñмешта општоÑÑ‚ гране) *урадити*\n"
-#: vms-alpha.c:6730
+#: vms-alpha.c:6723
#, c-format
msgid "STO_BR_PS (store branch psect + offset) *todo*\n"
msgstr "STO_BR_PS (Ñмешта п-одељак + померај гране) *урадити*\n"
-#: vms-alpha.c:6734
+#: vms-alpha.c:6727
#, c-format
msgid "OPR_NOP (no-operation)\n"
msgstr "OPR_NOP (без радње)\n"
-#: vms-alpha.c:6737
+#: vms-alpha.c:6730
#, c-format
msgid "OPR_ADD (add)\n"
msgstr "OPR_ADD (збраја)\n"
-#: vms-alpha.c:6740
+#: vms-alpha.c:6733
#, c-format
msgid "OPR_SUB (subtract)\n"
msgstr "OPR_SUB (одузима)\n"
-#: vms-alpha.c:6743
+#: vms-alpha.c:6736
#, c-format
msgid "OPR_MUL (multiply)\n"
msgstr "OPR_MUL (множи)\n"
-#: vms-alpha.c:6746
+#: vms-alpha.c:6739
#, c-format
msgid "OPR_DIV (divide)\n"
msgstr "OPR_DIV (дели)\n"
-#: vms-alpha.c:6749
+#: vms-alpha.c:6742
#, c-format
msgid "OPR_AND (logical and)\n"
msgstr "OPR_AND (логичко И)\n"
-#: vms-alpha.c:6752
+#: vms-alpha.c:6745
#, c-format
msgid "OPR_IOR (logical inclusive or)\n"
msgstr "OPR_IOR (логичко укључиво ИЛИ)\n"
-#: vms-alpha.c:6755
+#: vms-alpha.c:6748
#, c-format
msgid "OPR_EOR (logical exclusive or)\n"
msgstr "OPR_EOR (логичко иÑкључиво ИЛИ)\n"
-#: vms-alpha.c:6758
+#: vms-alpha.c:6751
#, c-format
msgid "OPR_NEG (negate)\n"
msgstr "OPR_NEG (негација)\n"
-#: vms-alpha.c:6761
+#: vms-alpha.c:6754
#, c-format
msgid "OPR_COM (complement)\n"
msgstr "OPR_COM (комплемент)\n"
-#: vms-alpha.c:6764
+#: vms-alpha.c:6757
#, c-format
msgid "OPR_INSV (insert field)\n"
msgstr "OPR_INSV (умеће поље)\n"
-#: vms-alpha.c:6767
+#: vms-alpha.c:6760
#, c-format
msgid "OPR_ASH (arithmetic shift)\n"
msgstr "OPR_ASH (аритметички помак)\n"
-#: vms-alpha.c:6770
+#: vms-alpha.c:6763
#, c-format
msgid "OPR_USH (unsigned shift)\n"
msgstr "OPR_USH (помак без знака)\n"
-#: vms-alpha.c:6773
+#: vms-alpha.c:6766
#, c-format
msgid "OPR_ROT (rotate)\n"
msgstr "OPR_ROT (окреће)\n"
-#: vms-alpha.c:6776
+#: vms-alpha.c:6769
#, c-format
msgid "OPR_SEL (select)\n"
msgstr "OPR_SEL (бира)\n"
-#: vms-alpha.c:6779
+#: vms-alpha.c:6772
#, c-format
msgid "OPR_REDEF (redefine symbol to curr location)\n"
msgstr "OPR_REDEF (поново дефинише Ñимбол текуће локације)\n"
-#: vms-alpha.c:6782
+#: vms-alpha.c:6775
#, c-format
msgid "OPR_REDEF (define a literal)\n"
msgstr "OPR_REDEF (дефинише доÑловноÑÑ‚)\n"
-#: vms-alpha.c:6786
+#: vms-alpha.c:6779
#, c-format
msgid "STC_LP (store cond linkage pair)\n"
msgstr "STC_LP (Ñмешта пар повезивања уÑлова)\n"
-#: vms-alpha.c:6790
+#: vms-alpha.c:6783
#, c-format
msgid "STC_LP_PSB (store cond linkage pair + signature)\n"
msgstr "STC_LP_PSB (Ñмешта пар повезивања уÑлова + потпиÑ)\n"
-#: vms-alpha.c:6794
+#: vms-alpha.c:6787
#, c-format
msgid " linkage index: %u, procedure: %.*s\n"
msgstr " Ð¸Ð½Ð´ÐµÐºÑ Ð¿Ð¾Ð²ÐµÐ·Ð¸Ð²Ð°ÑšÐ°: %u, поÑтупак: %.*s\n"
-#: vms-alpha.c:6801
+#: vms-alpha.c:6794
#, c-format
msgid " signature: %.*s\n"
msgstr " потпиÑ: %.*s\n"
-#: vms-alpha.c:6807
+#: vms-alpha.c:6800
#, c-format
msgid "STC_GBL (store cond global)\n"
msgstr "STC_GBL (Ñмешта општоÑÑ‚ уÑлова)\n"
-#: vms-alpha.c:6810
+#: vms-alpha.c:6803
#, c-format
msgid " linkage index: %u, global: %.*s\n"
msgstr " Ð¸Ð½Ð´ÐµÐºÑ Ð¿Ð¾Ð²ÐµÐ·Ð¸Ð²Ð°ÑšÐ°: %u, опште: %.*s\n"
-#: vms-alpha.c:6815
+#: vms-alpha.c:6808
#, c-format
msgid "STC_GCA (store cond code address)\n"
msgstr "STC_GCA (Ñмешта адреÑу кода уÑлова)\n"
-#: vms-alpha.c:6818
+#: vms-alpha.c:6811
#, c-format
msgid " linkage index: %u, procedure name: %.*s\n"
msgstr " Ð¸Ð½Ð´ÐµÐºÑ Ð¿Ð¾Ð²ÐµÐ·Ð¸Ð²Ð°ÑšÐ°: %u, назив поÑтупка: %.*s\n"
-#: vms-alpha.c:6823
+#: vms-alpha.c:6816
#, c-format
msgid "STC_PS (store cond psect + offset)\n"
msgstr "STC_PS (Ñмешта п-одељак + померај уÑлова)\n"
-#: vms-alpha.c:6827
+#: vms-alpha.c:6820
#, c-format
msgid " linkage index: %u, psect: %u, offset: 0x%08x %08x\n"
msgstr " Ð¸Ð½Ð´ÐµÐºÑ Ð¿Ð¾Ð²ÐµÐ·Ð¸Ð²Ð°ÑšÐ°: %u, п-одељак: %u, померај: 0x%08x %08x\n"
-#: vms-alpha.c:6834
+#: vms-alpha.c:6827
#, c-format
msgid "STC_NOP_GBL (store cond NOP at global addr)\n"
msgstr "STC_NOP_GBL (Ñмешта „NOP“ уÑлова на општој адреÑи)\n"
-#: vms-alpha.c:6838
+#: vms-alpha.c:6831
#, c-format
msgid "STC_NOP_PS (store cond NOP at psect + offset)\n"
msgstr "STC_NOP_PS (Ñмешта „NOP“ уÑлова на п-одељку + померај)\n"
-#: vms-alpha.c:6842
+#: vms-alpha.c:6835
#, c-format
msgid "STC_BSR_GBL (store cond BSR at global addr)\n"
msgstr "STC_BSR_GBL (Ñмешта „BSR“ уÑлова на општој адреÑи)\n"
-#: vms-alpha.c:6846
+#: vms-alpha.c:6839
#, c-format
msgid "STC_BSR_PS (store cond BSR at psect + offset)\n"
msgstr "STC_BSR_PS (Ñмешта „BSR“ уÑлова на п-одељку + померај)\n"
-#: vms-alpha.c:6850
+#: vms-alpha.c:6843
#, c-format
msgid "STC_LDA_GBL (store cond LDA at global addr)\n"
msgstr "STC_LDA_GBL (Ñмешта „LDA“ уÑлова на општој адреÑи)\n"
-#: vms-alpha.c:6854
+#: vms-alpha.c:6847
#, c-format
msgid "STC_LDA_PS (store cond LDA at psect + offset)\n"
msgstr "STC_LDA_PS (Ñмешта „LDA“ уÑлова на п-одељку + померај)\n"
-#: vms-alpha.c:6858
+#: vms-alpha.c:6851
#, c-format
msgid "STC_BOH_GBL (store cond BOH at global addr)\n"
msgstr "STC_BOH_GBL (Ñмешта „BOH“ уÑлова на општој адреÑи)\n"
-#: vms-alpha.c:6862
+#: vms-alpha.c:6855
#, c-format
msgid "STC_BOH_PS (store cond BOH at psect + offset)\n"
msgstr "STC_BOH_PS (Ñмешта „BOH“ уÑлова на п-одељку + померај)\n"
-#: vms-alpha.c:6867
+#: vms-alpha.c:6860
#, c-format
msgid "STC_NBH_GBL (store cond or hint at global addr)\n"
msgstr "STC_NBH_GBL (Ñмешта уÑлов или најаву на општој адреÑи)\n"
-#: vms-alpha.c:6871
+#: vms-alpha.c:6864
#, c-format
msgid "STC_NBH_PS (store cond or hint at psect + offset)\n"
msgstr "STC_NBH_PS (Ñмешта уÑлов или најаву на п-одељку + померај)\n"
-#: vms-alpha.c:6875
+#: vms-alpha.c:6868
#, c-format
msgid "CTL_SETRB (set relocation base)\n"
msgstr "CTL_SETRB (поÑтавља оÑнову премештања)\n"
-#: vms-alpha.c:6881
+#: vms-alpha.c:6874
#, c-format
msgid "CTL_AUGRB (augment relocation base) %u\n"
msgstr "CTL_AUGRB (повећава оÑнову премештања) %u\n"
-#: vms-alpha.c:6886
+#: vms-alpha.c:6879
#, c-format
msgid "CTL_DFLOC (define location)\n"
msgstr "CTL_DFLOC (дефинише меÑто)\n"
-#: vms-alpha.c:6889
+#: vms-alpha.c:6882
#, c-format
msgid "CTL_STLOC (set location)\n"
msgstr "CTL_STLOC (поÑтавља меÑто)\n"
-#: vms-alpha.c:6892
+#: vms-alpha.c:6885
#, c-format
msgid "CTL_STKDL (stack defined location)\n"
msgstr "CTL_STKDL (Ñпремником дефиниÑано меÑто)\n"
-#: vms-alpha.c:6895 vms-alpha.c:7323 vms-alpha.c:7484
+#: vms-alpha.c:6888 vms-alpha.c:7316 vms-alpha.c:7477
#, c-format
msgid "*unhandled*\n"
msgstr "*необрадиво*\n"
-#: vms-alpha.c:6920
+#: vms-alpha.c:6913
#, c-format
msgid "cannot read GST record header\n"
msgstr "не могу да прочитам заглавље „GST“ запиÑа\n"
#. Ill-formed.
-#: vms-alpha.c:6943
+#: vms-alpha.c:6936
#, c-format
msgid "cannot find EMH in first GST record\n"
msgstr "не могу да нађем „EMH“ у првом „GST“ запиÑу\n"
-#: vms-alpha.c:6967
+#: vms-alpha.c:6960
#, c-format
msgid "corrupted GST\n"
msgstr "оштећено „GST“\n"
-#: vms-alpha.c:6980
+#: vms-alpha.c:6973
#, c-format
msgid "cannot read GST record\n"
msgstr "не могу да читам „GST“ запиÑ\n"
-#: vms-alpha.c:7007
+#: vms-alpha.c:7000
#, c-format
msgid " unhandled EOBJ record type %u\n"
msgstr " необрадив „EOBJ“ ÑƒÐ½Ð¾Ñ Ð²Ñ€Ñте %u\n"
-#: vms-alpha.c:7032
+#: vms-alpha.c:7025
#, c-format
msgid " bitcount: %u, base addr: 0x%08x\n"
msgstr " број бита: %u, оÑновна адреÑа: 0x%08x\n"
-#: vms-alpha.c:7046
+#: vms-alpha.c:7039
#, c-format
msgid " bitmap: 0x%08x (count: %u):\n"
msgstr " мапа бита: 0x%08x (укупно: %u):\n"
-#: vms-alpha.c:7053
+#: vms-alpha.c:7046
#, c-format
msgid " %08x"
msgstr " %08x"
-#: vms-alpha.c:7080
+#: vms-alpha.c:7073
#, c-format
msgid " image %u (%u entries)\n"
msgstr " Ñлика %u (%u уноÑа)\n"
-#: vms-alpha.c:7086
+#: vms-alpha.c:7079
#, c-format
msgid " offset: 0x%08x, val: 0x%08x\n"
msgstr " померај: 0x%08x, вредноÑÑ‚: 0x%08x\n"
-#: vms-alpha.c:7109
+#: vms-alpha.c:7102
#, c-format
msgid " image %u (%u entries), offsets:\n"
msgstr " Ñлика %u (%u уноÑа), померај:\n"
-#: vms-alpha.c:7116
+#: vms-alpha.c:7109
#, c-format
msgid " 0x%08x"
msgstr " 0x%08x"
#. 64 bits.
-#: vms-alpha.c:7242
+#: vms-alpha.c:7235
#, c-format
msgid "64 bits *unhandled*\n"
msgstr "64 бита *није подржано*\n"
-#: vms-alpha.c:7247
+#: vms-alpha.c:7240
#, c-format
msgid "class: %u, dtype: %u, length: %u, pointer: 0x%08x\n"
msgstr "клаÑа: %u, д-врÑта: %u, дужина: %u, показивач: 0x%08x\n"
-#: vms-alpha.c:7258
+#: vms-alpha.c:7251
#, c-format
msgid "non-contiguous array of %s\n"
msgstr "низ „%s“ није непрекидан\n"
-#: vms-alpha.c:7265
+#: vms-alpha.c:7258
#, c-format
msgid "dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n"
msgstr "димцт: %u, а-заÑтавице: 0x%02x, цифре: %u, размера: %u\n"
-#: vms-alpha.c:7270
+#: vms-alpha.c:7263
#, c-format
msgid "arsize: %u, a0: 0x%08x\n"
msgstr "ар-величина: %u, a0: 0x%08x\n"
-#: vms-alpha.c:7274
+#: vms-alpha.c:7267
#, c-format
msgid "Strides:\n"
msgstr "Кораци:\n"
-#: vms-alpha.c:7288
+#: vms-alpha.c:7281
#, c-format
msgid "Bounds:\n"
msgstr "Границе:\n"
-#: vms-alpha.c:7295
+#: vms-alpha.c:7288
#, c-format
msgid "[%u]: Lower: %u, upper: %u\n"
msgstr "[%u]: Доња: %u, горња: %u\n"
-#: vms-alpha.c:7309
+#: vms-alpha.c:7302
#, c-format
msgid "unaligned bit-string of %s\n"
msgstr "ниÑка бита „%s“ није поравната\n"
-#: vms-alpha.c:7316
+#: vms-alpha.c:7309
#, c-format
msgid "base: %u, pos: %u\n"
msgstr "оÑнова: %u, положај: %u\n"
-#: vms-alpha.c:7342
+#: vms-alpha.c:7335
#, c-format
msgid "vflags: 0x%02x, value: 0x%08x "
msgstr "в-заÑтавице: 0x%02x, вредноÑÑ‚: 0x%08x "
-#: vms-alpha.c:7349
+#: vms-alpha.c:7342
#, c-format
msgid "(no value)\n"
msgstr "(без вредноÑти)\n"
-#: vms-alpha.c:7352
+#: vms-alpha.c:7345
#, c-format
msgid "(not active)\n"
msgstr "(није активно)\n"
-#: vms-alpha.c:7355
+#: vms-alpha.c:7348
#, c-format
msgid "(not allocated)\n"
msgstr "(није додељено)\n"
-#: vms-alpha.c:7358
+#: vms-alpha.c:7351
#, c-format
msgid "(descriptor)\n"
msgstr "(опиÑник)\n"
-#: vms-alpha.c:7363
+#: vms-alpha.c:7356
#, c-format
msgid "(trailing value)\n"
msgstr "(пратећа вредноÑÑ‚)\n"
-#: vms-alpha.c:7366
+#: vms-alpha.c:7359
#, c-format
msgid "(value spec follows)\n"
msgstr "(Ñпецификација Ñледеће вредноÑти)\n"
-#: vms-alpha.c:7369
+#: vms-alpha.c:7362
#, c-format
msgid "(at bit offset %u)\n"
msgstr "(померај бита %u)\n"
-#: vms-alpha.c:7373
+#: vms-alpha.c:7366
#, c-format
msgid "(reg: %u, disp: %u, indir: %u, kind: "
msgstr "(региÑтар: %u, размештај: %u, индиректно: %u, врÑта: "
-#: vms-alpha.c:7380
+#: vms-alpha.c:7373
msgid "literal"
msgstr "доÑловноÑÑ‚"
-#: vms-alpha.c:7383
+#: vms-alpha.c:7376
msgid "address"
msgstr "адреÑа"
-#: vms-alpha.c:7386
+#: vms-alpha.c:7379
msgid "desc"
msgstr "опиÑ"
-#: vms-alpha.c:7389
+#: vms-alpha.c:7382
msgid "reg"
msgstr "рег"
-#: vms-alpha.c:7410
+#: vms-alpha.c:7403
#, c-format
msgid "len: %2u, kind: %2u "
msgstr "дужина: %2u, врÑта: %2u "
-#: vms-alpha.c:7418
+#: vms-alpha.c:7411
#, c-format
msgid "atomic, type=0x%02x %s\n"
msgstr "атомÑки, врÑта=0x%02x %s\n"
-#: vms-alpha.c:7423
+#: vms-alpha.c:7416
#, c-format
msgid "indirect, defined at 0x%08x\n"
msgstr "непоÑредно, одређено на 0x%08x\n"
-#: vms-alpha.c:7427
+#: vms-alpha.c:7420
#, c-format
msgid "typed pointer\n"
msgstr "укуцани показивач\n"
-#: vms-alpha.c:7431
+#: vms-alpha.c:7424
#, c-format
msgid "pointer\n"
msgstr "показивач\n"
-#: vms-alpha.c:7442
+#: vms-alpha.c:7435
#, c-format
msgid "array, dim: %u, bitmap: "
msgstr "низ, величина: %u, битмапа: "
-#: vms-alpha.c:7457
+#: vms-alpha.c:7450
#, c-format
msgid "array descriptor:\n"
msgstr "опиÑник низа:\n"
-#: vms-alpha.c:7468
+#: vms-alpha.c:7461
#, c-format
msgid "type spec for element:\n"
msgstr "одредба врÑте за елемент:\n"
-#: vms-alpha.c:7470
+#: vms-alpha.c:7463
#, c-format
msgid "type spec for subscript %u:\n"
msgstr "одредба врÑте за подÑкрипту „%u“:\n"
-#: vms-alpha.c:7495
+#: vms-alpha.c:7488
#, c-format
msgid "Debug symbol table:\n"
msgstr "Табела Ñимбола прочишћавања:\n"
-#: vms-alpha.c:7506
+#: vms-alpha.c:7499
#, c-format
msgid "cannot read DST header\n"
msgstr "не могу да читам „GST“ заглавље\n"
-#: vms-alpha.c:7512
+#: vms-alpha.c:7505
#, c-format
msgid " type: %3u, len: %3u (at 0x%08x): "
msgstr " врÑта: %3u, дужина: %3u (при 0x%08x): "
-#: vms-alpha.c:7531
+#: vms-alpha.c:7524
#, c-format
msgid "cannot read DST symbol\n"
msgstr "не могу да читам „DST“ Ñимбол\n"
-#: vms-alpha.c:7575
+#: vms-alpha.c:7568
#, c-format
msgid "standard data: %s\n"
msgstr "Ñтандардни подаци: %s\n"
-#: vms-alpha.c:7579 vms-alpha.c:7703
+#: vms-alpha.c:7572 vms-alpha.c:7696
#, c-format
msgid " name: %.*s\n"
msgstr " назив: %.*s\n"
-#: vms-alpha.c:7587
+#: vms-alpha.c:7580
#, c-format
msgid "modbeg\n"
msgstr "почетак модула\n"
-#: vms-alpha.c:7591
+#: vms-alpha.c:7584
#, c-format
msgid " flags: %d, language: %u, major: %u, minor: %u\n"
msgstr " заÑтавице: %d, језик: %u, већи: %u, мањи: %u\n"
-#: vms-alpha.c:7601 vms-alpha.c:7970
+#: vms-alpha.c:7594 vms-alpha.c:7963
#, c-format
msgid " module name: %.*s\n"
msgstr " назив модула : %.*s\n"
-#: vms-alpha.c:7608
+#: vms-alpha.c:7601
#, c-format
msgid " compiler : %.*s\n"
msgstr " преводилац : %.*s\n"
-#: vms-alpha.c:7615
+#: vms-alpha.c:7608
#, c-format
msgid "modend\n"
msgstr "крај модула\n"
-#: vms-alpha.c:7622
+#: vms-alpha.c:7615
msgid "rtnbeg\n"
msgstr "почетак рутине\n"
-#: vms-alpha.c:7626
+#: vms-alpha.c:7619
#, c-format
msgid " flags: %u, address: 0x%08x, pd-address: 0x%08x\n"
msgstr " заÑтавице: %u, адреÑа: 0x%08x, пд-адреÑа: 0x%08x\n"
-#: vms-alpha.c:7635
+#: vms-alpha.c:7628
#, c-format
msgid " routine name: %.*s\n"
msgstr " назив рутине : %.*s\n"
-#: vms-alpha.c:7646
+#: vms-alpha.c:7639
#, c-format
msgid "rtnend: size 0x%08x\n"
msgstr "крај рутине: величина 0x%08x\n"
-#: vms-alpha.c:7656
+#: vms-alpha.c:7649
#, c-format
msgid "prolog: bkpt address 0x%08x\n"
msgstr "пролог: бкпт адреÑа 0x%08x\n"
-#: vms-alpha.c:7666
+#: vms-alpha.c:7659
#, c-format
msgid "epilog: flags: %u, count: %u\n"
msgstr "епилог: заÑтавице: %u, број: %u\n"
-#: vms-alpha.c:7681
+#: vms-alpha.c:7674
#, c-format
msgid "blkbeg: address: 0x%08x, name: %.*s\n"
msgstr "блк почетак: адреÑа: 0x%08x, назив: %.*s\n"
-#: vms-alpha.c:7693
+#: vms-alpha.c:7686
#, c-format
msgid "blkend: size: 0x%08x\n"
msgstr "блк крај: величина: 0x%08x\n"
-#: vms-alpha.c:7699
+#: vms-alpha.c:7692
#, c-format
msgid "typspec (len: %u)\n"
msgstr "одредба врÑте (дужина: %u)\n"
-#: vms-alpha.c:7715
+#: vms-alpha.c:7708
#, c-format
msgid "septyp, name: %.*s\n"
msgstr "врÑта поÑтавке, назив: %.*s\n"
-#: vms-alpha.c:7732
+#: vms-alpha.c:7725
#, c-format
msgid "recbeg: name: %.*s\n"
msgstr "почетак запиÑа: назив: %.*s\n"
-#: vms-alpha.c:7738
+#: vms-alpha.c:7731
#, c-format
msgid " len: %u bits\n"
msgstr " дужина: %u бита\n"
-#: vms-alpha.c:7744
+#: vms-alpha.c:7737
#, c-format
msgid "recend\n"
msgstr "крај запиÑа\n"
-#: vms-alpha.c:7749
+#: vms-alpha.c:7742
#, c-format
msgid "enumbeg, len: %u, name: %.*s\n"
msgstr "почетак бројања, дужина: %u, назив: %.*s\n"
-#: vms-alpha.c:7755
+#: vms-alpha.c:7748
#, c-format
msgid "enumelt, name: %.*s\n"
msgstr "елементи бројања, назив: %.*s\n"
-#: vms-alpha.c:7761
+#: vms-alpha.c:7754
#, c-format
msgid "enumend\n"
msgstr "крај бројања\n"
-#: vms-alpha.c:7768
+#: vms-alpha.c:7761
#, c-format
msgid "label, name: %.*s\n"
msgstr "натпиÑ, назив: %.*s\n"
-#: vms-alpha.c:7771
+#: vms-alpha.c:7764
#, c-format
msgid " address: 0x%08x\n"
msgstr " адреÑа: 0x%08x\n"
-#: vms-alpha.c:7783
+#: vms-alpha.c:7776
#, c-format
msgid "discontiguous range (nbr: %u)\n"
msgstr "непрекидни опÑег (бр.: %u)\n"
-#: vms-alpha.c:7790
+#: vms-alpha.c:7783
#, c-format
msgid " address: 0x%08x, size: %u\n"
msgstr " адреÑа: 0x%08x, величина: %u\n"
-#: vms-alpha.c:7801
+#: vms-alpha.c:7794
#, c-format
msgid "line num (len: %u)\n"
msgstr "број реда (дужина: %u)\n"
-#: vms-alpha.c:7820
+#: vms-alpha.c:7813
#, c-format
msgid "delta_pc_w %u\n"
msgstr "delta_pc_w %u\n"
-#: vms-alpha.c:7829
+#: vms-alpha.c:7822
#, c-format
msgid "incr_linum(b): +%u\n"
msgstr "incr_linum(b): +%u\n"
-#: vms-alpha.c:7837
+#: vms-alpha.c:7830
#, c-format
msgid "incr_linum_w: +%u\n"
msgstr "incr_linum_w: +%u\n"
-#: vms-alpha.c:7845
+#: vms-alpha.c:7838
#, c-format
msgid "incr_linum_l: +%u\n"
msgstr "incr_linum_l: +%u\n"
-#: vms-alpha.c:7853
+#: vms-alpha.c:7846
#, c-format
msgid "set_line_num(w) %u\n"
msgstr "set_line_num(w) %u\n"
-#: vms-alpha.c:7860
+#: vms-alpha.c:7853
#, c-format
msgid "set_line_num_b %u\n"
msgstr "set_line_num_b %u\n"
-#: vms-alpha.c:7867
+#: vms-alpha.c:7860
#, c-format
msgid "set_line_num_l %u\n"
msgstr "set_line_num_l %u\n"
-#: vms-alpha.c:7874
+#: vms-alpha.c:7867
#, c-format
msgid "set_abs_pc: 0x%08x\n"
msgstr "set_abs_pc: 0x%08x\n"
-#: vms-alpha.c:7880
+#: vms-alpha.c:7873
#, c-format
msgid "delta_pc_l: +0x%08x\n"
msgstr "delta_pc_l: +0x%08x\n"
-#: vms-alpha.c:7887
+#: vms-alpha.c:7880
#, c-format
msgid "term(b): 0x%02x"
msgstr "term(b): 0x%02x"
-#: vms-alpha.c:7889
+#: vms-alpha.c:7882
#, c-format
msgid " pc: 0x%08x\n"
msgstr " pc: 0x%08x\n"
-#: vms-alpha.c:7896
+#: vms-alpha.c:7889
#, c-format
msgid "term_w: 0x%04x"
msgstr "term_w: 0x%04x"
-#: vms-alpha.c:7898
+#: vms-alpha.c:7891
#, c-format
msgid " pc: 0x%08x\n"
msgstr " pc: 0x%08x\n"
-#: vms-alpha.c:7904
+#: vms-alpha.c:7897
#, c-format
msgid "delta pc +%-4d"
msgstr "delta pc +%-4d"
-#: vms-alpha.c:7908
+#: vms-alpha.c:7901
#, c-format
msgid " pc: 0x%08x line: %5u\n"
msgstr " pc: 0x%08x ред: %5u\n"
-#: vms-alpha.c:7913
+#: vms-alpha.c:7906
#, c-format
msgid " *unhandled* cmd %u\n"
msgstr " *необрадива* наредба „%u“\n"
-#: vms-alpha.c:7928
+#: vms-alpha.c:7921
#, c-format
msgid "source (len: %u)\n"
msgstr "извор (дужина: %u)\n"
-#: vms-alpha.c:7947
+#: vms-alpha.c:7940
#, c-format
msgid " declfile: len: %u, flags: %u, fileid: %u\n"
msgstr " declfile: дужина: %u, заÑтавице: %u, ид поља: %u\n"
-#: vms-alpha.c:7952
+#: vms-alpha.c:7945
#, c-format
msgid " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n"
msgstr " rms: cdt: 0x%08x %08x, ebk: 0x%08x, ffb: 0x%04x, rfo: %u\n"
-#: vms-alpha.c:7964
+#: vms-alpha.c:7957
#, c-format
msgid " filename : %.*s\n"
msgstr " назив датотеке: %.*s\n"
-#: vms-alpha.c:7980
+#: vms-alpha.c:7973
#, c-format
msgid " setfile %u\n"
msgstr " setfile %u\n"
-#: vms-alpha.c:7987 vms-alpha.c:7994
+#: vms-alpha.c:7980 vms-alpha.c:7987
#, c-format
msgid " setrec %u\n"
msgstr " setrec %u\n"
-#: vms-alpha.c:8001 vms-alpha.c:8008
+#: vms-alpha.c:7994 vms-alpha.c:8001
#, c-format
msgid " setlnum %u\n"
msgstr " setlnum %u\n"
-#: vms-alpha.c:8015 vms-alpha.c:8022
+#: vms-alpha.c:8008 vms-alpha.c:8015
#, c-format
msgid " deflines %u\n"
msgstr " deflines %u\n"
-#: vms-alpha.c:8026
+#: vms-alpha.c:8019
#, c-format
msgid " formfeed\n"
msgstr " formfeed\n"
-#: vms-alpha.c:8030
+#: vms-alpha.c:8023
#, c-format
msgid " *unhandled* cmd %u\n"
msgstr " *необрадива* наредба „%u“\n"
-#: vms-alpha.c:8042
+#: vms-alpha.c:8035
#, c-format
msgid "*unhandled* dst type %u\n"
msgstr "*необрадива* дÑÑ‚ врÑта „%u“\n"
-#: vms-alpha.c:8074
+#: vms-alpha.c:8067
#, c-format
msgid "cannot read EIHD\n"
msgstr "не могу да читам „EIHD“\n"
-#: vms-alpha.c:8078
+#: vms-alpha.c:8071
#, c-format
msgid "EIHD: (size: %u, nbr blocks: %u)\n"
msgstr "EIHD: (величина: %u, број блокова: %u)\n"
-#: vms-alpha.c:8082
+#: vms-alpha.c:8075
#, c-format
msgid " majorid: %u, minorid: %u\n"
msgstr " већи ид: %u, мањи ид: %u\n"
-#: vms-alpha.c:8090
+#: vms-alpha.c:8083
msgid "executable"
msgstr "извршна"
-#: vms-alpha.c:8093
+#: vms-alpha.c:8086
msgid "linkable image"
msgstr "повезива Ñлика"
-#: vms-alpha.c:8100
+#: vms-alpha.c:8093
#, c-format
msgid " image type: %u (%s)"
msgstr " врÑта Ñлике: %u (%s)"
-#: vms-alpha.c:8106
+#: vms-alpha.c:8099
msgid "native"
msgstr "изворна"
-#: vms-alpha.c:8109
+#: vms-alpha.c:8102
msgid "CLI"
msgstr "CLI"
-#: vms-alpha.c:8116
+#: vms-alpha.c:8109
#, c-format
msgid ", subtype: %u (%s)\n"
msgstr ", подврÑта: %u (%s)\n"
-#: vms-alpha.c:8123
+#: vms-alpha.c:8116
#, c-format
msgid " offsets: isd: %u, activ: %u, symdbg: %u, imgid: %u, patch: %u\n"
msgstr " помераји: иÑд: %u, активно: %u, проч Ñимб: %u, ид Ñлике: %u, закрпа: %u\n"
-#: vms-alpha.c:8127
+#: vms-alpha.c:8120
#, c-format
msgid " fixup info rva: "
msgstr " поправка инфо рва: "
-#: vms-alpha.c:8129
+#: vms-alpha.c:8122
#, c-format
msgid ", symbol vector rva: "
msgstr ", вектор Ñимбола рва: "
-#: vms-alpha.c:8132
+#: vms-alpha.c:8125
#, c-format
msgid ""
"\n"
@@ -8203,196 +8322,196 @@ msgstr ""
"\n"
" померај низа верзије: %u\n"
-#: vms-alpha.c:8137
+#: vms-alpha.c:8130
#, c-format
msgid " img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n"
msgstr " број У/И Ñлике: %u, бр. канала: %u, рек при: %08x%08x\n"
-#: vms-alpha.c:8143
+#: vms-alpha.c:8136
#, c-format
msgid " linker flags: %08x:"
msgstr " заÑтавице повезивача: %08x:"
-#: vms-alpha.c:8174
+#: vms-alpha.c:8167
#, c-format
msgid " ident: 0x%08x, sysver: 0x%08x, match ctrl: %u, symvect_size: %u\n"
msgstr " увлачење: 0x%08x, верзија ÑиÑтема: 0x%08x, поклопљено ктрл: %u, величина Ñимвектора: %u\n"
-#: vms-alpha.c:8180
+#: vms-alpha.c:8173
#, c-format
msgid " BPAGE: %u"
msgstr " БСТРÐÐИЦÐ: %u"
-#: vms-alpha.c:8187
+#: vms-alpha.c:8180
#, c-format
msgid ", ext fixup offset: %u, no_opt psect off: %u"
msgstr ", померај Ñпољне иÑправке: %u, померај п-одељка „no_opt“-а: %u"
-#: vms-alpha.c:8190
+#: vms-alpha.c:8183
#, c-format
msgid ", alias: %u\n"
msgstr ", алијаÑ: %u\n"
-#: vms-alpha.c:8198
+#: vms-alpha.c:8191
#, c-format
msgid "system version array information:\n"
msgstr "низ података верзије ÑиÑтема:\n"
-#: vms-alpha.c:8202
+#: vms-alpha.c:8195
#, c-format
msgid "cannot read EIHVN header\n"
msgstr "не могу да читам „EIHVN“ заглавље\n"
-#: vms-alpha.c:8212
+#: vms-alpha.c:8205
#, c-format
msgid "cannot read EIHVN version\n"
msgstr "не могу да читам „EIHVN“ издање\n"
-#: vms-alpha.c:8215
+#: vms-alpha.c:8208
#, c-format
msgid " %02u "
msgstr " %02u "
-#: vms-alpha.c:8219
+#: vms-alpha.c:8212
msgid "BASE_IMAGE "
msgstr "СЛИКÐ_ОСÐОВЕ "
-#: vms-alpha.c:8222
+#: vms-alpha.c:8215
msgid "MEMORY_MANAGEMENT"
msgstr "УПРÐВЉÐЊЕ_МЕМОРИЈОМ"
-#: vms-alpha.c:8225
+#: vms-alpha.c:8218
msgid "IO "
msgstr "УИ "
-#: vms-alpha.c:8228
+#: vms-alpha.c:8221
msgid "FILES_VOLUMES "
msgstr "ВОЛУМЕÐИ_ДÐТОТЕКР"
-#: vms-alpha.c:8231
+#: vms-alpha.c:8224
msgid "PROCESS_SCHED "
msgstr "ЗÐКÐЗÐÐИ_ПРОЦЕСИ "
-#: vms-alpha.c:8234
+#: vms-alpha.c:8227
msgid "SYSGEN "
msgstr "СТВÐРÐЊЕ_СИСТЕМР"
-#: vms-alpha.c:8237
+#: vms-alpha.c:8230
msgid "CLUSTERS_LOCKMGR "
msgstr "МГРЗÐКЉУЧÐÐ’ÐЊЕ_КЛÐСТЕРР"
-#: vms-alpha.c:8240
+#: vms-alpha.c:8233
msgid "LOGICAL_NAMES "
msgstr "ЛОГИЧКИ_ÐÐЗИВИ "
-#: vms-alpha.c:8243
+#: vms-alpha.c:8236
msgid "SECURITY "
msgstr "БЕЗБЕДÐОСТ "
-#: vms-alpha.c:8246
+#: vms-alpha.c:8239
msgid "IMAGE_ACTIVATOR "
msgstr "ПОКРЕТÐЧ_СЛИКЕ "
-#: vms-alpha.c:8249
+#: vms-alpha.c:8242
msgid "NETWORKS "
msgstr "МРЕЖЕ "
-#: vms-alpha.c:8252
+#: vms-alpha.c:8245
msgid "COUNTERS "
msgstr "БРОЈÐЧИ "
-#: vms-alpha.c:8255
+#: vms-alpha.c:8248
msgid "STABLE "
msgstr "СТÐБИЛÐО "
-#: vms-alpha.c:8258
+#: vms-alpha.c:8251
msgid "MISC "
msgstr "РÐЗÐО "
-#: vms-alpha.c:8261
+#: vms-alpha.c:8254
msgid "CPU "
msgstr "ЦПЈ "
-#: vms-alpha.c:8264
+#: vms-alpha.c:8257
msgid "VOLATILE "
msgstr "ПРОМЕÐЉИВО "
-#: vms-alpha.c:8267
+#: vms-alpha.c:8260
msgid "SHELL "
msgstr "ШКОЉКР"
-#: vms-alpha.c:8270
+#: vms-alpha.c:8263
msgid "POSIX "
msgstr "ПОСИКС "
-#: vms-alpha.c:8273
+#: vms-alpha.c:8266
msgid "MULTI_PROCESSING "
msgstr "ВИШЕ_ОБРÐДÐО "
-#: vms-alpha.c:8276
+#: vms-alpha.c:8269
msgid "GALAXY "
msgstr "ГÐЛÐКСИЈР"
-#: vms-alpha.c:8279
+#: vms-alpha.c:8272
msgid "*unknown* "
msgstr "*непознато* "
-#: vms-alpha.c:8295 vms-alpha.c:8569
+#: vms-alpha.c:8288 vms-alpha.c:8575
#, c-format
msgid "cannot read EIHA\n"
msgstr "не могу да читам „EIHA“\n"
-#: vms-alpha.c:8298
+#: vms-alpha.c:8291
#, c-format
msgid "Image activation: (size=%u)\n"
msgstr "Ðктивирање Ñлике: (величина=%u)\n"
-#: vms-alpha.c:8301
+#: vms-alpha.c:8294
#, c-format
msgid " First address : 0x%08x 0x%08x\n"
msgstr " Прва адреÑа : 0x%08x 0x%08x\n"
-#: vms-alpha.c:8305
+#: vms-alpha.c:8298
#, c-format
msgid " Second address: 0x%08x 0x%08x\n"
msgstr " Друга адреÑа : 0x%08x 0x%08x\n"
-#: vms-alpha.c:8309
+#: vms-alpha.c:8302
#, c-format
msgid " Third address : 0x%08x 0x%08x\n"
msgstr " Трећа адреÑа : 0x%08x 0x%08x\n"
-#: vms-alpha.c:8313
+#: vms-alpha.c:8306
#, c-format
msgid " Fourth address: 0x%08x 0x%08x\n"
msgstr " Четврта адреÑа : 0x%08x 0x%08x\n"
-#: vms-alpha.c:8317
+#: vms-alpha.c:8310
#, c-format
msgid " Shared image : 0x%08x 0x%08x\n"
msgstr " Дељена Ñлика : 0x%08x 0x%08x\n"
-#: vms-alpha.c:8328
+#: vms-alpha.c:8321
#, c-format
msgid "cannot read EIHI\n"
msgstr "не могу да читам „EIHI“\n"
-#: vms-alpha.c:8332
+#: vms-alpha.c:8325
#, c-format
msgid "Image identification: (major: %u, minor: %u)\n"
msgstr "Препознавање Ñлике: (веће: %u, мање: %u)\n"
-#: vms-alpha.c:8335
+#: vms-alpha.c:8331
#, c-format
msgid " image name : %.*s\n"
msgstr " назив Ñлике : %.*s\n"
-#: vms-alpha.c:8337
+#: vms-alpha.c:8332
#, c-format
msgid " link time : %s\n"
msgstr " време везивања : %s\n"
-#: vms-alpha.c:8339
+#: vms-alpha.c:8337
#, c-format
msgid " image ident : %.*s\n"
msgstr " увлачење Ñлике : %.*s\n"
@@ -8402,261 +8521,261 @@ msgstr " увлачење Ñлике : %.*s\n"
msgid " linker ident : %.*s\n"
msgstr " увлачење повезивача : %.*s\n"
-#: vms-alpha.c:8343
+#: vms-alpha.c:8345
#, c-format
msgid " image build ident: %.*s\n"
msgstr " увлачење изградње Ñлике: %.*s\n"
-#: vms-alpha.c:8353
+#: vms-alpha.c:8354
#, c-format
msgid "cannot read EIHS\n"
msgstr "не могу да читам „EIHS“\n"
-#: vms-alpha.c:8357
+#: vms-alpha.c:8358
#, c-format
msgid "Image symbol & debug table: (major: %u, minor: %u)\n"
msgstr "Симбол Ñлике и табела прочишћавања: (веће: %u, мање: %u)\n"
-#: vms-alpha.c:8363
+#: vms-alpha.c:8364
#, c-format
msgid " debug symbol table : vbn: %u, size: %u (0x%x)\n"
msgstr " табела Ñимбола прочишћавања : вбн: %u, величина: %u (0x%x)\n"
-#: vms-alpha.c:8368
+#: vms-alpha.c:8369
#, c-format
msgid " global symbol table: vbn: %u, records: %u\n"
msgstr " табела општег Ñимбола: вбн: %u, запиÑи: %u\n"
-#: vms-alpha.c:8373
+#: vms-alpha.c:8374
#, c-format
msgid " debug module table : vbn: %u, size: %u\n"
msgstr " табела модула прочишћавања: вбн: %u, величина: %u\n"
-#: vms-alpha.c:8386
+#: vms-alpha.c:8387
#, c-format
msgid "cannot read EISD\n"
msgstr "не могу да читам „EISD“\n"
-#: vms-alpha.c:8397
+#: vms-alpha.c:8398
#, c-format
msgid "Image section descriptor: (major: %u, minor: %u, size: %u, offset: %u)\n"
msgstr "ОпиÑник одељка Ñлике: (већи: %u, мањи: %u, величина: %u, померај: %u)\n"
-#: vms-alpha.c:8405
+#: vms-alpha.c:8406
#, c-format
msgid " section: base: 0x%08x%08x size: 0x%08x\n"
msgstr " одељак: оÑнова: 0x%08x%08x величина: 0x%08x\n"
-#: vms-alpha.c:8410
+#: vms-alpha.c:8411
#, c-format
msgid " flags: 0x%04x"
msgstr " заÑтавице : 0x%04x"
-#: vms-alpha.c:8448
+#: vms-alpha.c:8449
#, c-format
msgid " vbn: %u, pfc: %u, matchctl: %u type: %u ("
msgstr " вбн: %u, пфц: %u, пореди_цтл: %u врÑта: %u ("
-#: vms-alpha.c:8454
+#: vms-alpha.c:8455
msgid "NORMAL"
msgstr "NORMAL"
-#: vms-alpha.c:8457
+#: vms-alpha.c:8458
msgid "SHRFXD"
msgstr "SHRFXD"
-#: vms-alpha.c:8460
+#: vms-alpha.c:8461
msgid "PRVFXD"
msgstr "PRVFXD"
-#: vms-alpha.c:8463
+#: vms-alpha.c:8464
msgid "SHRPIC"
msgstr "SHRPIC"
-#: vms-alpha.c:8466
+#: vms-alpha.c:8467
msgid "PRVPIC"
msgstr "PRVPIC"
-#: vms-alpha.c:8469
+#: vms-alpha.c:8470
msgid "USRSTACK"
msgstr "USRSTACK"
-#: vms-alpha.c:8475
+#: vms-alpha.c:8476
msgid ")\n"
msgstr ")\n"
-#: vms-alpha.c:8478
+#: vms-alpha.c:8483
#, c-format
msgid " ident: 0x%08x, name: %.*s\n"
msgstr " увлачење: 0x%08x, назив: %.*s\n"
-#: vms-alpha.c:8488
+#: vms-alpha.c:8494
#, c-format
msgid "cannot read DMT\n"
msgstr "не могу да читам „DMT“\n"
-#: vms-alpha.c:8492
+#: vms-alpha.c:8498
#, c-format
msgid "Debug module table:\n"
msgstr "Табела модула прочишћавања:\n"
-#: vms-alpha.c:8501
+#: vms-alpha.c:8507
#, c-format
msgid "cannot read DMT header\n"
msgstr "не могу да читам „DMT“ заглавље\n"
-#: vms-alpha.c:8507
+#: vms-alpha.c:8513
#, c-format
msgid " module offset: 0x%08x, size: 0x%08x, (%u psects)\n"
msgstr " померај модула: 0x%08x, величина: 0x%08x, (%u п-одељака)\n"
-#: vms-alpha.c:8517
+#: vms-alpha.c:8523
#, c-format
msgid "cannot read DMT psect\n"
msgstr "не могу да читам „DMT“ п-одељак\n"
-#: vms-alpha.c:8521
+#: vms-alpha.c:8527
#, c-format
msgid " psect start: 0x%08x, length: %u\n"
msgstr " почетак п-одељка: 0x%08x, дужина: %u\n"
-#: vms-alpha.c:8534
+#: vms-alpha.c:8540
#, c-format
msgid "cannot read DST\n"
msgstr "не могу да читам „DST“\n"
-#: vms-alpha.c:8544
+#: vms-alpha.c:8550
#, c-format
msgid "cannot read GST\n"
msgstr "не могу да читам „GST“\n"
-#: vms-alpha.c:8548
+#: vms-alpha.c:8554
#, c-format
msgid "Global symbol table:\n"
msgstr "Табела општих Ñимбола:\n"
-#: vms-alpha.c:8575
+#: vms-alpha.c:8581
#, c-format
msgid "Image activator fixup: (major: %u, minor: %u)\n"
msgstr "ИÑправка покретача Ñлике: (већи: %u, мањи: %u)\n"
-#: vms-alpha.c:8579
+#: vms-alpha.c:8585
#, c-format
msgid " iaflink : 0x%08x %08x\n"
msgstr " иаф веза : 0x%08x %08x\n"
-#: vms-alpha.c:8583
+#: vms-alpha.c:8589
#, c-format
msgid " fixuplnk: 0x%08x %08x\n"
msgstr " веза иÑправке: 0x%08x %08x\n"
-#: vms-alpha.c:8586
+#: vms-alpha.c:8592
#, c-format
msgid " size : %u\n"
msgstr " величина : %u\n"
-#: vms-alpha.c:8588
+#: vms-alpha.c:8594
#, c-format
msgid " flags: 0x%08x\n"
msgstr " заÑтавице : 0x%08x\n"
-#: vms-alpha.c:8593
+#: vms-alpha.c:8599
#, c-format
msgid " qrelfixoff: %5u, lrelfixoff: %5u\n"
msgstr " qrelfixoff: %5u, lrelfixoff: %5u\n"
-#: vms-alpha.c:8598
+#: vms-alpha.c:8604
#, c-format
msgid " qdotadroff: %5u, ldotadroff: %5u\n"
msgstr " qdotadroff: %5u, ldotadroff: %5u\n"
-#: vms-alpha.c:8603
+#: vms-alpha.c:8609
#, c-format
msgid " codeadroff: %5u, lpfixoff : %5u\n"
msgstr " codeadroff: %5u, lpfixoff : %5u\n"
-#: vms-alpha.c:8606
+#: vms-alpha.c:8612
#, c-format
msgid " chgprtoff : %5u\n"
msgstr " chgprtoff : %5u\n"
-#: vms-alpha.c:8610
+#: vms-alpha.c:8616
#, c-format
msgid " shlstoff : %5u, shrimgcnt : %5u\n"
msgstr " shlstoff : %5u, shrimgcnt : %5u\n"
-#: vms-alpha.c:8613
+#: vms-alpha.c:8619
#, c-format
msgid " shlextra : %5u, permctx : %5u\n"
msgstr " shlextra : %5u, permctx : %5u\n"
-#: vms-alpha.c:8616
+#: vms-alpha.c:8622
#, c-format
msgid " base_va : 0x%08x\n"
msgstr " base_va : 0x%08x\n"
-#: vms-alpha.c:8618
+#: vms-alpha.c:8624
#, c-format
msgid " lppsbfixoff: %5u\n"
msgstr " lppsbfixoff: %5u\n"
-#: vms-alpha.c:8625
+#: vms-alpha.c:8631
#, c-format
msgid " Shareable images:\n"
msgstr " Дељиве Ñлике:\n"
-#: vms-alpha.c:8633
+#: vms-alpha.c:8642
#, c-format
msgid " %u: size: %u, flags: 0x%02x, name: %.*s\n"
msgstr " %u: величина: %u, заÑтавице: 0x%02x, назив: %.*s\n"
-#: vms-alpha.c:8640
+#: vms-alpha.c:8649
#, c-format
msgid " quad-word relocation fixups:\n"
msgstr " иÑправке премештања четворо-речи:\n"
-#: vms-alpha.c:8646
+#: vms-alpha.c:8655
#, c-format
msgid " long-word relocation fixups:\n"
msgstr " иÑправке премештања дуге-речи:\n"
-#: vms-alpha.c:8652
+#: vms-alpha.c:8661
#, c-format
msgid " quad-word .address reference fixups:\n"
msgstr " иÑправке „.address“ упуте четворо-речи:\n"
-#: vms-alpha.c:8657
+#: vms-alpha.c:8666
#, c-format
msgid " long-word .address reference fixups:\n"
msgstr " иÑправке „.address“ упуте дуге-речи:\n"
-#: vms-alpha.c:8662
+#: vms-alpha.c:8671
#, c-format
msgid " Code Address Reference Fixups:\n"
msgstr " ИÑправке упуте адреÑе кода:\n"
-#: vms-alpha.c:8667
+#: vms-alpha.c:8676
#, c-format
msgid " Linkage Pairs Reference Fixups:\n"
msgstr " ИÑправке упуте парова повезивања:\n"
-#: vms-alpha.c:8675
+#: vms-alpha.c:8684
#, c-format
msgid " Change Protection (%u entries):\n"
msgstr " Промена заштите (%u уноÑа):\n"
-#: vms-alpha.c:8684
+#: vms-alpha.c:8693
#, c-format
msgid " base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x "
msgstr " оÑнова: 0x%08x %08x, величина: 0x%08x, заштита: 0x%08x "
#. FIXME: we do not yet support relocatable link. It is not obvious
#. how to do it for debug infos.
-#: vms-alpha.c:9561
+#: vms-alpha.c:9570
msgid "%P: relocatable link is not supported\n"
msgstr "%P: премеÑтива веза није подржана\n"
-#: vms-alpha.c:9632
+#: vms-alpha.c:9641
#, c-format
msgid "%P: multiple entry points: in modules %pB and %pB\n"
msgstr "%P: тачке више уноÑа: у модулима „%pB“ и „%pB“\n"
@@ -8674,115 +8793,120 @@ msgstr "„_bfd_vms_output_counted“ је позвано Ñа нула бајт
msgid "_bfd_vms_output_counted called with too many bytes"
msgstr "„_bfd_vms_output_counted“ је позвано Ñа превише бајтова"
-#: xcofflink.c:889
+#: xcofflink.c:462
+#, c-format
+msgid "%pB: warning: illegal symbol index %lu in relocs"
+msgstr "%pB: упозорење: неиÑправан Ð¸Ð½Ð´ÐµÐºÑ Ñимбола %lu у премештањима"
+
+#: xcofflink.c:881
#, c-format
msgid "%pB: XCOFF shared object when not producing XCOFF output"
msgstr "%pB: „XCOFF“ дељени објекат када Ñе не производи „XCOFF“ излаз"
-#: xcofflink.c:910
+#: xcofflink.c:902
#, c-format
msgid "%pB: dynamic object with no .loader section"
msgstr "%pB: динамички објекат без „.loader“ одељка"
-#: xcofflink.c:1492
+#: xcofflink.c:1484
#, c-format
msgid "%pB: `%s' has line numbers but no enclosing section"
msgstr "%pB: „%s“ има бројеве редова али не и затварајући одељак"
-#: xcofflink.c:1548
+#: xcofflink.c:1540
#, c-format
msgid "%pB: class %d symbol `%s' has no aux entries"
msgstr "%pB: клаÑа %d Ñимбола „%s“ нема помоћних уноÑа"
-#: xcofflink.c:1571
+#: xcofflink.c:1563
#, c-format
msgid "%pB: symbol `%s' has unrecognized csect type %d"
msgstr "%pB: Ñимбол „%s“ има непознату врÑту цÑектора „%d“"
-#: xcofflink.c:1584
+#: xcofflink.c:1576
#, c-format
msgid "%pB: bad XTY_ER symbol `%s': class %d scnum %d scnlen %<PRId64>"
msgstr "%pB: лош „XTY_ER“ Ñимбол „%s“: клаÑа %d Ñцброј %d Ñцндужине %<PRId64>"
-#: xcofflink.c:1615
+#: xcofflink.c:1607
#, c-format
msgid "%pB: XMC_TC0 symbol `%s' is class %d scnlen %<PRIu64>"
msgstr "%pB: „XMC_TC0“ Ñимбол „%s“ је клаÑа %d scn-дужине %<PRIu64>"
-#: xcofflink.c:1750
+#: xcofflink.c:1742
#, c-format
msgid "%pB: TOC entry `%s' has a R_TLSMLrelocation not targeting itself"
msgstr "%pB: ÑƒÐ½Ð¾Ñ Ñ‚Ð°Ð±ÐµÐ»Ðµ Ñадржаја „%s“ има „R_TLSML“-премештање које не циља на Ñебе Ñамог"
-#: xcofflink.c:1784
+#: xcofflink.c:1776
#, c-format
msgid "%pB: csect `%s' not in enclosing section"
msgstr "%pB: ц-одељак „%s“ није у затварајућем одељку"
-#: xcofflink.c:1893
+#: xcofflink.c:1885
#, c-format
msgid "%pB: misplaced XTY_LD `%s'"
msgstr "%pB: лоше поÑтављено „XTY_LD“ „%s“"
-#: xcofflink.c:2236
+#: xcofflink.c:2228
#, c-format
msgid "%pB: reloc %s:%<PRId64> not in csect"
msgstr "%pB: премештање „%s:%<PRId64>“ није у ц-одељку"
-#: xcofflink.c:3345
+#: xcofflink.c:3337
#, c-format
msgid "%pB: cannot export internal symbol `%s`."
msgstr "%pB: не могу да извезем унутрашњи Ñимбол „%s“."
-#: xcofflink.c:3393
+#: xcofflink.c:3385
#, c-format
msgid "%s: no such symbol"
msgstr "%s: нема таквог Ñимбола"
-#: xcofflink.c:3502
+#: xcofflink.c:3494
#, c-format
msgid "warning: attempt to export undefined symbol `%s'"
msgstr "упозорење: покушај извоза недефиниÑаног Ñимбола „%s“"
-#: xcofflink.c:3850
+#: xcofflink.c:3842
msgid "error: undefined symbol __rtinit"
msgstr "грешка: Ñимбол „__rtinit“ није дефиниÑан"
-#: xcofflink.c:4863
+#: xcofflink.c:4855
#, c-format
msgid "%pB: Unable to find a stub csect in rangeof relocation at %#<PRIx64> targeting'%s'"
msgstr "%pB: Ðе могу да нађем окрајак ц-одељка у премештају опÑега на %#<PRIx64> који показује на „%s“"
-#: xcofflink.c:4892
+#: xcofflink.c:4884
#, c-format
msgid "%pB: Cannot create stub entry '%s'"
msgstr "%pB: Ðе могу да Ñтворим ÑƒÐ½Ð¾Ñ Ð¾ÐºÑ€Ð°Ñ˜ÐºÐ° „%s“"
-#: xcofflink.c:5012
+#: xcofflink.c:5004
msgid "TOC overflow during stub generation; try -mminimal-toc when compiling"
msgstr "Прекорачење табеле Ñадржаја за време Ñтварања окрајка; пробајте Ñа „-mminimal-toc“ приликом превођења"
-#: xcofflink.c:5080
+#: xcofflink.c:5072
#, c-format
msgid "%pB: loader reloc in unrecognized section `%s'"
msgstr "%pB: премештање утоваривача у непознатом одељку „%s“"
-#: xcofflink.c:5092
+#: xcofflink.c:5084
#, c-format
msgid "%pB: `%s' in loader reloc but not loader sym"
msgstr "%pB: „%s“ је у премештању утоваривача али није Ñимбол утоваривача"
-#: xcofflink.c:5109
+#: xcofflink.c:5101
#, c-format
msgid "%pB: loader reloc in read-only section %pA"
msgstr "%pB: премештање утоваривача у одељку Ñамо за читање „%pA“"
-#: xcofflink.c:6188
+#: xcofflink.c:6180
#, c-format
msgid "TOC overflow: %#<PRIx64> > 0x10000; try -mminimal-toc when compiling"
msgstr "Прекорачење табеле Ñадржаја: %#<PRIx64> > 0x10000; пробајте Ñа „-mminimal-toc“ приликом превођења"
-#: xcofflink.c:7304
+#: xcofflink.c:7296
#, c-format
msgid "Unable to link input file: %s"
msgstr "Ðе могу да повежем улазну датотеку: %s"
@@ -8807,141 +8931,141 @@ msgid "%s is defined but plugin support is disabled"
msgstr "„%s“ је дефиниÑано али је подршка прикључка иÑкључена"
#. Not fatal, this callback cannot fail.
-#: elfnn-aarch64.c:2906 elfnn-riscv.c:5693
+#: elfnn-aarch64.c:2878 elfnn-riscv.c:5739
#, c-format
msgid "unknown attribute for symbol `%s': 0x%02x"
msgstr "непознат атрибут за Ñимбол „%s“: 0x%02x"
-#: elfnn-aarch64.c:5469
+#: elfnn-aarch64.c:5468
#, c-format
msgid "%pB: error: erratum 835769 stub out of range (input file too large)"
msgstr "%pB: грешка: окрајак грешке 835769 је ван опÑега (улазна датотека је превелика)"
-#: elfnn-aarch64.c:5561
+#: elfnn-aarch64.c:5560
#, c-format
msgid "%pB: error: erratum 843419 stub out of range (input file too large)"
msgstr "%pB: грешка: окрајак грешке 843419 је ван опÑега (улазна датотека је превелика)"
-#: elfnn-aarch64.c:5574
+#: elfnn-aarch64.c:5573
#, c-format
msgid "%pB: error: erratum 843419 immediate 0x%<PRIx64> out of range for ADR (input file too large) and --fix-cortex-a53-843419=adr used. Run the linker with --fix-cortex-a53-843419=full instead"
msgstr "%pB: грешка: погрешка 843419 непоÑредно 0x%<PRIx64> је ван опÑега за ÐДР (улазна датотека је превелика) и коришћено је „--fix-cortex-a53-843419=адр“. Тако да покрећем повезивача Ñа „--fix-cortex-a53-843419=full“"
-#: elfnn-aarch64.c:6117
+#: elfnn-aarch64.c:6116
#, c-format
msgid "%pB: relocation %s against symbol `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC"
msgstr "%pB: премештање „%s“ наÑпрам Ñимбола „%s“ која Ñе може Ñвезати Ñпоља не може Ñе кориÑтити приликом Ñтварања дељеног објекта; поново преведите Ñа „-fPIC“"
-#: elfnn-aarch64.c:6137
+#: elfnn-aarch64.c:6136
#, c-format
msgid "%pB: conditional branch to undefined symbol `%s' not allowed"
msgstr "%pB: уÑловна грана за недефиниÑани Ñимбол „%s“ није дозвољена"
-#: elfnn-aarch64.c:6225 elfnn-kvx.c:2382
+#: elfnn-aarch64.c:6224 elfnn-kvx.c:2381
#, c-format
msgid "%pB: local symbol descriptor table be NULL when applying relocation %s against local symbol"
msgstr "%pB: табела опиÑника локалног Ñимбола биће „NULL“ приликом примене премештања „%s“ наÑпрам локалног Ñимбола"
-#: elfnn-aarch64.c:6339 elfnn-aarch64.c:6376
+#: elfnn-aarch64.c:6338 elfnn-aarch64.c:6375
#, c-format
msgid "%pB: TLS relocation %s against undefined symbol `%s'"
msgstr "%pB: „TLS“ премештање „%s“ наÑпрам недефиниÑаног Ñимбола „%s“"
-#: elfnn-aarch64.c:7367
+#: elfnn-aarch64.c:7366
msgid "too many GOT entries for -fpic, please recompile with -fPIC"
msgstr "превише „GOT“ уноÑа за „-fpic“, поново преведите Ñа „-fPIC“"
-#: elfnn-aarch64.c:7395
+#: elfnn-aarch64.c:7394
msgid "one possible cause of this error is that the symbol is being referenced in the indicated code as if it had a larger alignment than was declared where it was defined"
msgstr "један од могућих разлога ове грешке може бити да Ñимбол упутан у назначеном коду има веће поравнање него што је објављено тамо где је дефиниÑан"
-#: elfnn-aarch64.c:7962
+#: elfnn-aarch64.c:7961
#, c-format
msgid "%pB: relocation %s against `%s' can not be used when making a shared object"
msgstr "%pB: премештање „%s“ наÑпрам „%s“ Ñе не може кориÑтити приликом Ñтварања дељеног објекта"
-#: elfnn-aarch64.c:9035
+#: elfnn-aarch64.c:8922
#, c-format
msgid "%F%P: %pB: copy relocation against non-copyable protected symbol `%s'\n"
msgstr "%F%P: %pB: премештање умношка за неумноживи заштићени Ñимбол „%s“\n"
-#: elfnn-kvx.c:930
+#: elfnn-kvx.c:929
msgid "%F%P: Could not assign '%pA' to an output section. Retry without --enable-non-contiguous-regions.\n"
msgstr "%F%P: Ðе могу да доделим „%pA“ излазном одељку. Покушајте поново без „--enable-non-contiguous-regions“.\n"
-#: elfnn-kvx.c:2127
+#: elfnn-kvx.c:2126
#, c-format
msgid "%pB(%pA+%#<PRIx64>): unresolvable %s relocation in section `%s'"
msgstr "%pB(%pA+%#<PRIx64>): нерешиво „%s“ премештање у одељку „%s“"
-#: elfnn-kvx.c:2851
+#: elfnn-kvx.c:2850
#, c-format
msgid "%s: Bad ELF id: `%d'"
msgstr "%s: Лош ELF ид: „%d“"
-#: elfnn-kvx.c:2906
+#: elfnn-kvx.c:2905
#, c-format
msgid "%s: compiled as 32-bit object and %s is 64-bit"
msgstr "%s: преведен је као 32-битни објекат а „%s“ је 64-битни"
-#: elfnn-kvx.c:2909
+#: elfnn-kvx.c:2908
#, c-format
msgid "%s: compiled as 64-bit object and %s is 32-bit"
msgstr "%s: преведен је као 64-битни објекат а „%s“ је 32-битни"
-#: elfnn-kvx.c:2911
+#: elfnn-kvx.c:2910
#, c-format
msgid "%s: object size does not match that of target %s"
msgstr "%s: величина објекта не одговара величини циља „%s“"
#. Ignore init flag - it may not be set, despite the flags field
#. containing valid data.
-#: elfnn-kvx.c:2999
+#: elfnn-kvx.c:2998
#, c-format
msgid "Private flags = 0x%lx : "
msgstr "Приватне заÑтавице = 0x%lx: "
-#: elfnn-kvx.c:3003
+#: elfnn-kvx.c:3002
#, c-format
msgid "Coolidge (kv3) V1 64 bits"
msgstr "Coolidge (kv3) V1 64 бита"
-#: elfnn-kvx.c:3005
+#: elfnn-kvx.c:3004
#, c-format
msgid "Coolidge (kv3) V2 64 bits"
msgstr "Coolidge (kv3) V2 64 бита"
-#: elfnn-kvx.c:3007
+#: elfnn-kvx.c:3006
#, c-format
msgid "Coolidge (kv4) V1 64 bits"
msgstr "Coolidge (kv4) V1 64 бита"
-#: elfnn-kvx.c:3012
+#: elfnn-kvx.c:3011
#, c-format
msgid "Coolidge (kv3) V1 32 bits"
msgstr "Coolidge (kv3) V1 32 бита"
-#: elfnn-kvx.c:3014
+#: elfnn-kvx.c:3013
#, c-format
msgid "Coolidge (kv3) V2 32 bits"
msgstr "Coolidge (kv3) V2 32 бита"
-#: elfnn-kvx.c:3016
+#: elfnn-kvx.c:3015
#, c-format
msgid "Coolidge (kv4) V1 32 bits"
msgstr "Coolidge (kv4) V1 32 бита"
-#: elfnn-kvx.c:3852
+#: elfnn-kvx.c:3847
#, c-format
msgid "relocation against `%s' has faulty GOT type "
msgstr "премештање за „%s“ има погрешну GOT врÑту "
-#: elfnn-loongarch.c:283 elfnn-loongarch.c:335
+#: elfnn-loongarch.c:294 elfnn-loongarch.c:346
#, c-format
msgid "%#<PRIx64> invaild imm"
msgstr "%#<PRIx64> неиÑправно „imm“"
-#: elfnn-loongarch.c:517 elfnn-riscv.c:4161
+#: elfnn-loongarch.c:528 elfnn-riscv.c:4182
#, c-format
msgid ""
"%pB: ABI is incompatible with that of the selected emulation:\n"
@@ -8950,91 +9074,99 @@ msgstr ""
"%pB: „ABI“ није ÑаглаÑно Ñа оним из изабране емулације:\n"
" циљна емулација „%s“ Ñе не подудара Ñа „%s“"
-#: elfnn-loongarch.c:572
+#: elfnn-loongarch.c:583
#, c-format
msgid "%pB: can't link different ABI object."
msgstr "%pB: не могу да повежем другачији „ABI“ објекат."
-#: elfnn-loongarch.c:714
+#: elfnn-loongarch.c:726
msgid "Internal error: unreachable."
msgstr "Унутрашња грешка: недоÑтижно."
-#: elfnn-loongarch.c:866
+#: elfnn-loongarch.c:906
#, c-format
-msgid "%pB:(%pA+%#lx): relocation %s against `%s` can not be used when making a shared object; recompile with -fPIC"
-msgstr "%pB:(%pA+%#lx): премештај „%s“ за „%s“ Ñе не може кориÑтити приликом Ñтварања дељеног објекта; поново преведите Ñа „-fPIC“"
+msgid "%pB:(%pA+%#lx): relocation %s against `%s` can not be used when making %s; recompile with %s%s"
+msgstr "%pB:(%pA+%#lx): премештај „%s“ за „%s“ Ñе не може кориÑтити приликом Ñтварања „%s“; поново преведите Ñа „%s%s“"
+
+#: elfnn-loongarch.c:910
+msgid " and check the symbol visibility"
+msgstr " и проверава видљивоÑÑ‚ Ñимбола"
-#: elfnn-loongarch.c:990
+#: elfnn-loongarch.c:1036
#, c-format
msgid "%pB: stack based reloc type (%u) is not supported with -z pack-relative-relocs"
msgstr "%pB: врÑта премештаја на оÑнову Ñпремника (%u) није подржана Ñа „-z pack-relative-relocs“"
-#: elfnn-loongarch.c:1151
+#: elfnn-loongarch.c:1231
#, c-format
msgid "%pB: relocation R_LARCH_32 against non-absolute symbol `%s' cannot be used in ELFCLASS64 when making a shared object or PIE"
msgstr "%pB: премештај „R_LARCH_32“ за не-апÑолутни Ñимбол „%s“ Ñе не може кориÑтити у „ELFCLASS64“ приликом Ñтварања дељеног објекта или IPE"
-#: elfnn-loongarch.c:1216
+#: elfnn-loongarch.c:1296
#, c-format
msgid "%pB: R_LARCH_ALIGN with offset %<PRId64> not aligned to instruction boundary"
msgstr "%pB: R_LARCH_ALIGN Ñа померајем %<PRId64> није поравнато на границу инÑтрукције"
-#: elfnn-loongarch.c:4526
+#: elfnn-loongarch.c:4174
+msgid "cannot resolve R_LARCH_PCREL20_S2 against undefined weak symbol with addend out of [-2048, 2048)"
+msgstr "не могу да решим „R_LARCH_PCREL20_S2“ за неодређено Ñлаб Ñимбол Ñа Ñабирком ван [-2048, 2048)"
+
+#: elfnn-loongarch.c:4684
msgid "recompile with 'gcc -mno-relax' or 'as -mno-relax' or 'ld --no-relax'"
msgstr "поново преведите Ñа „gcc -mno-relax“ или „as -mno-relax“ или „ld --no-relax“"
-#: elfnn-loongarch.c:5124 elfnn-riscv.c:4934
+#: elfnn-loongarch.c:5301 elfnn-riscv.c:4967
#, c-format
msgid "%pB(%pA+%#<PRIx64>): %<PRId64> bytes required for alignment to %<PRId64>-byte boundary, but only %<PRId64> present"
msgstr "%pB(%pA+%#<PRIx64>): %<PRId64> бајта је потребно за поравнање на %<PRId64>-бајтну границу, али Ñамо %<PRId64> је приÑутно"
-#: elfnn-riscv.c:330 elfnn-riscv.c:365
+#: elfnn-riscv.c:329 elfnn-riscv.c:364
#, c-format
msgid "%pB: warning: RVE PLT generation not supported"
msgstr "%pB: упозорење: „RVE PLT“ Ñтварање није подржано"
-#: elfnn-riscv.c:929
+#: elfnn-riscv.c:927
#, c-format
msgid "%pB: relocation %s against absolute symbol `%s' can not be used when making a shared object"
msgstr "%pB: премештање „%s“ наÑпрам апÑолутног Ñимбола „%s“ Ñе не може кориÑтити приликом Ñтварања дељеног објекта"
-#: elfnn-riscv.c:971
+#: elfnn-riscv.c:969
#, c-format
msgid "%pB: relocation %s against non-absolute symbol `%s' can not be used in RV32 when making a shared object"
msgstr "%pB: премештање „%s“ наÑпрам неапÑолутног Ñимбола „%s“ Ñе не може кориÑтити у „RV32“ приликом Ñтварања дељеног објекта"
-#: elfnn-riscv.c:1900
+#: elfnn-riscv.c:1898
#, c-format
msgid "final size of uleb128 value at offset 0x%lx in %pA from %pB exceeds available space"
msgstr "крајња величина „uleb128“ вредноÑти на померају 0x%lx у „%pA“ из „%pB“ премашује раÑположиви проÑтор"
-#: elfnn-riscv.c:2142
+#: elfnn-riscv.c:2140
#, c-format
msgid "%pcrel_lo missing matching %pcrel_hi"
msgstr "„%pcrel_lo“-у недоÑтаје подударајуће „%pcrel_hi“"
-#: elfnn-riscv.c:2145
+#: elfnn-riscv.c:2143
#, c-format
msgid "%pcrel_lo with addend isn't allowed for R_RISCV_GOT_HI20"
msgstr "„%pcrel_lo“ Ñа Ñабирком није дозвољено за „R_RISCV_GOT_HI20“"
#. Check the overflow when adding reloc addend.
-#: elfnn-riscv.c:2150
+#: elfnn-riscv.c:2148
#, c-format
msgid "%%pcrel_lo overflow with an addend, the value of %%pcrel_hi is 0x%<PRIx64> without any addend, but may be 0x%<PRIx64> after adding the %%pcrel_lo addend"
msgstr "„%%pcrel_lo“ прекорачење Ñа Ñабирком, вредноÑÑ‚ за „%%pcrel_hi“ је 0x%<PRIx64> без икаквог Ñабирка, али може бити 0x%<PRIx64> након додавања „%%pcrel_lo“ Ñабирка"
-#: elfnn-riscv.c:2158
+#: elfnn-riscv.c:2156
#, c-format
msgid "%pcrel_lo overflow with an addend"
msgstr "„%pcrel_lo“ прекорачење Ñа Ñабирком"
-#: elfnn-riscv.c:2641
+#: elfnn-riscv.c:2639
#, c-format
msgid "%pB: warning: R_RISCV_SUB_ULEB128 with non-zero addend, please rebuild by binutils 2.42 or up"
msgstr "%pB: упозорење: „R_RISCV_SUB_ULEB128“ Ñа не-нултим додатком, поново изградите binutils-ом 2.42 или већим"
-#: elfnn-riscv.c:2721
+#: elfnn-riscv.c:2719
msgid "The addend isn't allowed for R_RISCV_GOT_HI20"
msgstr "Сабирак није дозвољен за „R_RISCV_GOT_HI20“"
@@ -9052,97 +9184,92 @@ msgstr "Сабирак није дозвољен за „R_RISCV_GOT_HI20“"
#.
#. Perhaps we also need the similar checks for the
#. R_RISCV_BRANCH and R_RISCV_RVC_BRANCH relocations.
-#: elfnn-riscv.c:2822
+#: elfnn-riscv.c:2820
#, c-format
msgid "%%X%%P: relocation %s against `%s' which may bind externally can not be used when making a shared object; recompile with -fPIC\n"
msgstr "%%X%%P: премештање „%s“ наÑпрам „%s“ која Ñе може Ñвезати Ñпоља не може Ñе кориÑтити приликом Ñтварања дељеног објекта; поново преведите Ñа „-fPIC“\n"
-#: elfnn-riscv.c:2904
+#: elfnn-riscv.c:2902
#, c-format
msgid "%pcrel_lo section symbol with an addend"
msgstr "Ñимбол „%pcrel_lo“ одељка Ñа Ñабирком"
-#: elfnn-riscv.c:2925
+#: elfnn-riscv.c:2923
#, c-format
msgid "%tlsdesc_lo with addend"
msgstr "„%tlsdesc_lo“ Ñа Ñабирком"
-#: elfnn-riscv.c:3158
+#: elfnn-riscv.c:3156
#, c-format
msgid "%%X%%P: unresolvable %s relocation against symbol `%s'\n"
msgstr "%%X%%P: нерешиво „%s“ премештање наÑпрам Ñимбола „%s“\n"
-#: elfnn-riscv.c:3193
+#: elfnn-riscv.c:3191
msgid "%X%P: internal error: out of range error\n"
msgstr "%X%P: унутрашња грешка: изван опÑега\n"
-#: elfnn-riscv.c:3198
+#: elfnn-riscv.c:3196
msgid "%X%P: internal error: unsupported relocation error\n"
msgstr "%X%P: унутрашња грешка: премештање није подржано\n"
-#: elfnn-riscv.c:3204
+#: elfnn-riscv.c:3202
msgid "dangerous relocation error"
msgstr "опаÑно премештање"
-#: elfnn-riscv.c:3210
+#: elfnn-riscv.c:3208
msgid "%X%P: internal error: unknown error\n"
msgstr "%X%P: унутрашња грешка: непозната грешка\n"
-#: elfnn-riscv.c:3753
+#: elfnn-riscv.c:3785
#, c-format
msgid "error: %pB: corrupted ISA string '%s'. First letter should be 'i' or 'e' but got '%s'"
msgstr "грешка: %pB: оштећена ISA ниÑка „%s“. Прво Ñлово треба да буде „i“ или „e“ али добих „%s“"
-#: elfnn-riscv.c:3796
+#: elfnn-riscv.c:3828
#, c-format
msgid "error: %pB: mis-matched ISA string to merge '%s' and '%s'"
msgstr "грешка: %pB: неодговарајућа ISA ниÑка за Ñтапање „%s“ и „%s“"
-#: elfnn-riscv.c:3933
+#: elfnn-riscv.c:3965
#, c-format
msgid "error: %pB: ISA string of input (%s) doesn't match output (%s)"
msgstr "грешка: %pB: ISA ниÑка улаза (%s) не одговара излазу (%s)"
-#: elfnn-riscv.c:3953
+#: elfnn-riscv.c:3985
#, c-format
msgid "error: %pB: XLEN of input (%u) doesn't match output (%u)"
msgstr "грешка: %pB: „XLEN“ ниÑка улаза (%u) не одговара излазу (%u)"
-#: elfnn-riscv.c:3961
+#: elfnn-riscv.c:3993
#, c-format
msgid "error: %pB: unsupported XLEN (%u), you might be using wrong emulation"
msgstr "грешка: %pB: неподржано „XLEN“ (%u), можда кориÑтите погрешну емулацију"
-#: elfnn-riscv.c:4075
-#, c-format
-msgid "warning: %pB use privileged spec version %u.%u.%u but the output use version %u.%u.%u"
-msgstr "упозорење: „%pB“ кориÑти привилеговано Ñпец издање „%u.%u.%u“ али излаз кориÑти издање „%u.%u.%u“"
-
-#: elfnn-riscv.c:4092
+#: elfnn-riscv.c:4113
msgid "warning: privileged spec version 1.9.1 can not be linked with other spec versions"
msgstr "упозорење: привилеговано Ñпец издање 1.9.1 Ñе не може повезати Ñа другим Ñпец издањима"
-#: elfnn-riscv.c:4120
+#: elfnn-riscv.c:4141
#, c-format
msgid "error: %pB use %u-byte stack aligned but the output use %u-byte stack aligned"
msgstr "грешка: „%pB“ кориÑти %u-бајтно поравнан Ñпремник али излаз кориÑти %u-бајтно поравнан Ñпремник"
-#: elfnn-riscv.c:4217
+#: elfnn-riscv.c:4238
#, c-format
msgid "%pB: can't link %s modules with %s modules"
msgstr "%pB: не могу да повежем „%s“ модуле Ñа „%s“ модулима"
-#: elfnn-riscv.c:4227
+#: elfnn-riscv.c:4248
#, c-format
msgid "%pB: can't link RVE with other target"
msgstr "%pB: не могу да повежем „RVE“ Ñа другом метом"
-#: elfnn-riscv.c:4251
+#: elfnn-riscv.c:4272
#, c-format
msgid "warning: %pB: unknown RISCV ABI object attribute %d"
msgstr "упозорење: %pB: атрибут „%d“ објекта „RISCV ABI“ није познат"
-#: elfnn-riscv.c:971
+#: elfnn-riscv.c:969
#, c-format
msgid "%pB: relocation %s against non-absolute symbol `%s' can not be used in RV64 when making a shared object"
msgstr "%pB: премештање „%s“ наÑпрам неапÑолутног Ñимбола „%s“ Ñе не може кориÑтити у „RV64“ приликом Ñтварања дељеног објекта"
@@ -9172,76 +9299,76 @@ msgstr "%pB:%.8s: одељак иÑпод оÑнове Ñлике"
msgid "%pB:%.8s: RVA truncated"
msgstr "%pB:%.8s: „RVA“ је Ñкраћено"
-#: peXXigen.c:1060
+#: peXXigen.c:1061
#, c-format
msgid "%pB: line number overflow: 0x%lx > 0xffff"
msgstr "%pB: прекорачење броја редова: 0x%lx > 0xffff"
-#: peXXigen.c:1226
+#: peXXigen.c:1227
msgid "Export Directory [.edata (or where ever we found it)]"
msgstr "Директоријум извоза [„.edata“ (или тамо где Ñмо га нашли)]"
-#: peXXigen.c:1227
+#: peXXigen.c:1228
msgid "Import Directory [parts of .idata]"
msgstr "Директоријум увоза [део „.idata“]"
-#: peXXigen.c:1228
+#: peXXigen.c:1229
msgid "Resource Directory [.rsrc]"
msgstr "Директоријум изворишта [.rsrc]"
-#: peXXigen.c:1229
+#: peXXigen.c:1230
msgid "Exception Directory [.pdata]"
msgstr "Директоријум изузетака [.pdata]"
-#: peXXigen.c:1230
+#: peXXigen.c:1231
msgid "Security Directory"
msgstr "Директоријум безбедноÑти"
-#: peXXigen.c:1231
+#: peXXigen.c:1232
msgid "Base Relocation Directory [.reloc]"
msgstr "Директоријум премештања оÑнове [.reloc]"
-#: peXXigen.c:1232
+#: peXXigen.c:1233
msgid "Debug Directory"
msgstr "Директоријум прочишћавања"
-#: peXXigen.c:1233
+#: peXXigen.c:1234
msgid "Description Directory"
msgstr "Директоријум опиÑа"
-#: peXXigen.c:1234
+#: peXXigen.c:1235
msgid "Special Directory"
msgstr "Директоријум поÑебноÑти"
-#: peXXigen.c:1235
+#: peXXigen.c:1236
msgid "Thread Storage Directory [.tls]"
msgstr "Директоријум Ñмештаја нити [.tls]"
-#: peXXigen.c:1236
+#: peXXigen.c:1237
msgid "Load Configuration Directory"
msgstr "Директоријум подешавања учитавања"
-#: peXXigen.c:1237
+#: peXXigen.c:1238
msgid "Bound Import Directory"
msgstr "Директоријум увоза Ñвеза"
-#: peXXigen.c:1238
+#: peXXigen.c:1239
msgid "Import Address Table Directory"
msgstr "Директоријум табеле увоза адреÑе"
-#: peXXigen.c:1239
+#: peXXigen.c:1240
msgid "Delay Import Directory"
msgstr "Директоријум заÑтоја увоза"
-#: peXXigen.c:1240
+#: peXXigen.c:1241
msgid "CLR Runtime Header"
msgstr "Заглавље ЦЛР извршавања"
-#: peXXigen.c:1241
+#: peXXigen.c:1242
msgid "Reserved"
msgstr "РезервиÑано"
-#: peXXigen.c:1306
+#: peXXigen.c:1307
#, c-format
msgid ""
"\n"
@@ -9250,7 +9377,7 @@ msgstr ""
"\n"
"ПоÑтоји табела увоза, али не могу да нађем одељак који је Ñадржи\n"
-#: peXXigen.c:1312
+#: peXXigen.c:1313
#, c-format
msgid ""
"\n"
@@ -9259,7 +9386,7 @@ msgstr ""
"\n"
"ПоÑтоји табела увоза у „%s“, али одељак нема Ñадржај\n"
-#: peXXigen.c:1319
+#: peXXigen.c:1320
#, c-format
msgid ""
"\n"
@@ -9268,7 +9395,7 @@ msgstr ""
"\n"
"ПоÑтоји табела увоза у „%s“ на 0x%lx\n"
-#: peXXigen.c:1325
+#: peXXigen.c:1326
#, c-format
msgid ""
"\n"
@@ -9277,7 +9404,7 @@ msgstr ""
"\n"
"Табеле увоза (протумачени Ñадржај одељка „%s“)\n"
-#: peXXigen.c:1328
+#: peXXigen.c:1329
#, c-format
msgid ""
" vma: Hint Time Forward DLL First\n"
@@ -9286,7 +9413,7 @@ msgstr ""
" vma: Ðајава Време Ðапред ДЛЛ Први\n"
" Табела ОтиÑак Ланац Ðазив Потпрограм\n"
-#: peXXigen.c:1377
+#: peXXigen.c:1378
#, c-format
msgid ""
"\n"
@@ -9295,12 +9422,12 @@ msgstr ""
"\n"
"\t„DLL“ назив: %.*s\n"
-#: peXXigen.c:1393
+#: peXXigen.c:1394
#, c-format
msgid "\tvma: Ordinal Hint Member-Name Bound-To\n"
msgstr "\tvma: Редни Ðајава Ðазив_члана Свезан-за\n"
-#: peXXigen.c:1418
+#: peXXigen.c:1419
#, c-format
msgid ""
"\n"
@@ -9309,12 +9436,12 @@ msgstr ""
"\n"
"ПоÑтоји први потпрограм, али не могу да нађем одељак који га Ñадржи\n"
-#: peXXigen.c:1468 peXXigen.c:1513
+#: peXXigen.c:1469 peXXigen.c:1514
#, c-format
msgid "\t<corrupt: 0x%08lx>"
msgstr "\t<оштећење: 0x%08lx>"
-#: peXXigen.c:1607
+#: peXXigen.c:1608
#, c-format
msgid ""
"\n"
@@ -9323,7 +9450,7 @@ msgstr ""
"\n"
"ПоÑтоји табела извоза, али не могу да нађем одељак који је Ñадржи\n"
-#: peXXigen.c:1620
+#: peXXigen.c:1621
#, c-format
msgid ""
"\n"
@@ -9332,7 +9459,7 @@ msgstr ""
"\n"
"ПоÑтоји табела извоза у „%s“, али је премала (%d)\n"
-#: peXXigen.c:1628
+#: peXXigen.c:1629
#, c-format
msgid ""
"\n"
@@ -9341,7 +9468,7 @@ msgstr ""
"\n"
"ПоÑтоји табела извоза у „%s“, али Ñадржај Ñе не може прочитати\n"
-#: peXXigen.c:1634
+#: peXXigen.c:1635
#, c-format
msgid ""
"\n"
@@ -9350,7 +9477,7 @@ msgstr ""
"\n"
"ПоÑтоји табела извоза у „%s“ на 0x%lx\n"
-#: peXXigen.c:1665
+#: peXXigen.c:1666
#, c-format
msgid ""
"\n"
@@ -9361,67 +9488,67 @@ msgstr ""
"Табеле извоза (протумачени Ñадржај одељка „%s“)\n"
"\n"
-#: peXXigen.c:1669
+#: peXXigen.c:1670
#, c-format
msgid "Export Flags \t\t\t%lx\n"
msgstr "ЗаÑтавице извоза \t\t%lx\n"
-#: peXXigen.c:1672
+#: peXXigen.c:1673
#, c-format
msgid "Time/Date stamp \t\t%lx\n"
msgstr "ОтиÑак времена/датума \t\t%lx\n"
-#: peXXigen.c:1676
+#: peXXigen.c:1677
#, c-format
msgid "Major/Minor \t\t\t%d/%d\n"
msgstr "Већи/Мањи \t\t\t%d/%d\n"
-#: peXXigen.c:1679
+#: peXXigen.c:1680
#, c-format
msgid "Name \t\t\t\t"
msgstr "Ðазив \t\t\t\t"
-#: peXXigen.c:1690
+#: peXXigen.c:1691
#, c-format
msgid "Ordinal Base \t\t\t%ld\n"
msgstr "ОÑнова редног броја \t\t\t%ld\n"
-#: peXXigen.c:1693
+#: peXXigen.c:1694
#, c-format
msgid "Number in:\n"
msgstr "Број улаза:\n"
-#: peXXigen.c:1696
+#: peXXigen.c:1697
#, c-format
msgid "\tExport Address Table \t\t%08lx\n"
msgstr "\tТабела адреÑа извоза \t %08lx\n"
-#: peXXigen.c:1700
+#: peXXigen.c:1701
#, c-format
msgid "\t[Name Pointer/Ordinal] Table\t%08lx\n"
msgstr "\tТабела [Ðазив показивача/редног броја]\t%08lx\n"
-#: peXXigen.c:1703
+#: peXXigen.c:1704
#, c-format
msgid "Table Addresses\n"
msgstr "Табела адреÑа\n"
-#: peXXigen.c:1706
+#: peXXigen.c:1707
#, c-format
msgid "\tExport Address Table \t\t"
msgstr "\tТабела адреÑа извоза \t\t"
-#: peXXigen.c:1711
+#: peXXigen.c:1712
#, c-format
msgid "\tName Pointer Table \t\t"
msgstr "\tТабела назива показивача \t\t"
-#: peXXigen.c:1716
+#: peXXigen.c:1717
#, c-format
msgid "\tOrdinal Table \t\t\t"
msgstr "\tТабела редних бројева \t\t\t"
-#: peXXigen.c:1730
+#: peXXigen.c:1731
#, c-format
msgid ""
"\n"
@@ -9430,20 +9557,20 @@ msgstr ""
"\n"
"Табела адреÑе извоза —— ОÑнова редних бројева %ld\n"
-#: peXXigen.c:1740
+#: peXXigen.c:1741
#, c-format
msgid "\tInvalid Export Address Table rva (0x%lx) or entry count (0x%lx)\n"
msgstr "\tÐеиÑправна табела адреÑе извоза „rva“ (0x%lx) или број уноÑа (0x%lx)\n"
-#: peXXigen.c:1759
+#: peXXigen.c:1760
msgid "Forwarder RVA"
msgstr "„RVA“ проÑлеђивача"
-#: peXXigen.c:1771
+#: peXXigen.c:1772
msgid "Export RVA"
msgstr "„RVA“ извоза"
-#: peXXigen.c:1778
+#: peXXigen.c:1779
#, c-format
msgid ""
"\n"
@@ -9452,27 +9579,27 @@ msgstr ""
"\n"
"[Редни/Ðазив Показивач] Табела – Редни ОÑнова %ld\n"
-#: peXXigen.c:1788
+#: peXXigen.c:1789
#, c-format
msgid "\tInvalid Name Pointer Table rva (0x%lx) or entry count (0x%lx)\n"
msgstr "\tÐеиÑправна табела назива показивача „rva“ (0x%lx) или број уноÑа (0x%lx)\n"
-#: peXXigen.c:1795
+#: peXXigen.c:1796
#, c-format
msgid "\tInvalid Ordinal Table rva (0x%lx) or entry count (0x%lx)\n"
msgstr "\tÐеиÑправна табела редног „rva“ (0x%lx) или број уноÑа (0x%lx)\n"
-#: peXXigen.c:1809
+#: peXXigen.c:1810
#, c-format
msgid "\t[%4ld] +base[%4ld] %04lx <corrupt offset: %lx>\n"
msgstr "\t[%4ld] +base[%4ld] %04lx <оштећен померај: %lx>\n"
-#: peXXigen.c:1866 peXXigen.c:2036
+#: peXXigen.c:1867 peXXigen.c:2037
#, c-format
msgid "warning, .pdata section size (%ld) is not a multiple of %d\n"
msgstr "упозорење, величина одељка „.pdata“ (%ld) није производ од %d\n"
-#: peXXigen.c:1870 peXXigen.c:2040
+#: peXXigen.c:1871 peXXigen.c:2041
#, c-format
msgid ""
"\n"
@@ -9481,12 +9608,12 @@ msgstr ""
"\n"
"Табела функција (протумачени Ñадржај одељка „.pdata“)\n"
-#: peXXigen.c:1873
+#: peXXigen.c:1874
#, c-format
msgid " vma:\t\t\tBegin Address End Address Unwind Info\n"
msgstr " vma:\t\t\tÐдреÑа почетка\t ÐдреÑа краја\t\tИзложени подаци\n"
-#: peXXigen.c:1875
+#: peXXigen.c:1876
#, c-format
msgid ""
" vma:\t\tBegin End EH EH PrologEnd Exception\n"
@@ -9495,12 +9622,12 @@ msgstr ""
" vma:\t\tПочетак Крај EH EH Крај пролога Изузетак\n"
" \t\tÐдреÑа ÐдреÑа Руковалац Подаци ÐдреÑа МаÑка\n"
-#: peXXigen.c:1888
+#: peXXigen.c:1889
#, c-format
msgid "Virtual size of .pdata section (%ld) larger than real size (%ld)\n"
msgstr "Виртуелна величина „.pdata“ одељка (%ld) је већа од Ñтварне величине (%ld)\n"
-#: peXXigen.c:2042
+#: peXXigen.c:2043
#, c-format
msgid ""
" vma:\t\tBegin Prolog Function Flags Exception EH\n"
@@ -9509,7 +9636,7 @@ msgstr ""
" vma:\t\tПочетак Пролог Функција ЗаÑтавице Изузетак ЕХ\n"
" \t\tÐдреÑа Дужина Дужина 32b извр Руковлац Подаци\n"
-#: peXXigen.c:2167
+#: peXXigen.c:2168
#, c-format
msgid ""
"\n"
@@ -9520,7 +9647,7 @@ msgstr ""
"\n"
"Премештање оÑнове ПЕ датотеке (протумачени Ñадржај „.reloc“ одељка)\n"
-#: peXXigen.c:2196
+#: peXXigen.c:2197
#, c-format
msgid ""
"\n"
@@ -9529,62 +9656,62 @@ msgstr ""
"\n"
"Виртуелна адреÑа: %08lx величина одломка %ld (0x%lx) Број иÑправки %ld\n"
-#: peXXigen.c:2214
+#: peXXigen.c:2215
#, c-format
msgid "\treloc %4d offset %4x [%4lx] %s"
msgstr "\tпремештање %4d померај %4x [%4lx] %s"
-#: peXXigen.c:2275
+#: peXXigen.c:2276
#, c-format
msgid "%03x %*.s Entry: "
msgstr "„%03x %*.s“ уноÑ: "
-#: peXXigen.c:2299
+#: peXXigen.c:2300
#, c-format
msgid "name: [val: %08lx len %d]: "
msgstr "назив: [вредноÑÑ‚: %08lx дужина %d]: "
-#: peXXigen.c:2319
+#: peXXigen.c:2320
#, c-format
msgid "<corrupt string length: %#x>\n"
msgstr "<оштећена дужина ниÑке: %#x>\n"
-#: peXXigen.c:2329
+#: peXXigen.c:2330
#, c-format
msgid "<corrupt string offset: %#lx>\n"
msgstr "<оштећен померај ниÑке: %#lx>\n"
-#: peXXigen.c:2334
+#: peXXigen.c:2335
#, c-format
msgid "ID: %#08lx"
msgstr "ИД: %#08lx"
-#: peXXigen.c:2337
+#: peXXigen.c:2338
#, c-format
msgid ", Value: %#08lx\n"
msgstr ", ВредноÑÑ‚: %#08lx\n"
-#: peXXigen.c:2359
+#: peXXigen.c:2360
#, c-format
msgid "%03x %*.s Leaf: Addr: %#08lx, Size: %#08lx, Codepage: %d\n"
msgstr "%03x%*.s ЛиÑÑ‚: ÐдреÑа: %#08lx, Величина: %#08lx, Кодна Ñтраница: %d\n"
-#: peXXigen.c:2401
+#: peXXigen.c:2402
#, c-format
msgid "<unknown directory type: %d>\n"
msgstr "<непозната врÑта директоријума: %d>\n"
-#: peXXigen.c:2409
+#: peXXigen.c:2410
#, c-format
msgid " Table: Char: %d, Time: %08lx, Ver: %d/%d, Num Names: %d, IDs: %d\n"
msgstr " Табела: Знак: %d, Време: %08lx, Изд: %d/%d, Број назива: %d, ИД-ови: %d\n"
-#: peXXigen.c:2497
+#: peXXigen.c:2498
#, c-format
msgid "Corrupt .rsrc section detected!\n"
msgstr "Откривен је оштећени „.rsrc“ одељак!\n"
-#: peXXigen.c:2521
+#: peXXigen.c:2522
#, c-format
msgid ""
"\n"
@@ -9593,17 +9720,17 @@ msgstr ""
"\n"
"УПОЗОРЕЊЕ: Вишак података у „.rsrc“ одељку – Виндоуз ће их занемарити:\n"
-#: peXXigen.c:2527
+#: peXXigen.c:2528
#, c-format
msgid " String table starts at offset: %#03x\n"
msgstr " Табела ниÑке почиње на померају: %#03x\n"
-#: peXXigen.c:2530
+#: peXXigen.c:2531
#, c-format
msgid " Resources start at offset: %#03x\n"
msgstr " Изворишта почињу на померају: %#03x\n"
-#: peXXigen.c:2587
+#: peXXigen.c:2588
#, c-format
msgid ""
"\n"
@@ -9612,7 +9739,7 @@ msgstr ""
"\n"
"ПоÑтоји директоријум прочишћавања, али не могу да нађем одељак који га Ñадржи\n"
-#: peXXigen.c:2593
+#: peXXigen.c:2594
#, c-format
msgid ""
"\n"
@@ -9621,7 +9748,7 @@ msgstr ""
"\n"
"ПоÑтоји директоријум прочишћавања у „%s“, али тај одељак нема Ñадржаја\n"
-#: peXXigen.c:2600
+#: peXXigen.c:2601
#, c-format
msgid ""
"\n"
@@ -9630,7 +9757,7 @@ msgstr ""
"\n"
"Грешка: одељак „%s“ Ñадржи почетну адреÑу података прочишћавања али је премали\n"
-#: peXXigen.c:2605
+#: peXXigen.c:2606
#, c-format
msgid ""
"\n"
@@ -9641,22 +9768,22 @@ msgstr ""
"ПоÑтоји директоријум прочишћавања у „%s“ на 0x%lx\n"
"\n"
-#: peXXigen.c:2612
+#: peXXigen.c:2613
#, c-format
msgid "The debug data size field in the data directory is too big for the section"
msgstr "Поље величине података прочишћавања у директоријуму података је превелико за одељак"
-#: peXXigen.c:2617
+#: peXXigen.c:2618
#, c-format
msgid "Type Size Rva Offset\n"
msgstr "Ð’Ñ€Ñта Величина Rva Померај\n"
-#: peXXigen.c:2665
+#: peXXigen.c:2666
#, c-format
msgid "(format %c%c%c%c signature %s age %ld pdb %s)\n"
msgstr "(Ð·Ð°Ð¿Ð¸Ñ %c%c%c%c Ð¿Ð¾Ñ‚Ð¿Ð¸Ñ %s ÑтароÑÑ‚ %ld пдб %s)\n"
-#: peXXigen.c:2677
+#: peXXigen.c:2678
#, c-format
msgid "The debug directory size is not a multiple of the debug directory entry size\n"
msgstr "Величина директоријума прочишћавања није производ величине уноÑа директоријума прочишћавања\n"
@@ -9664,7 +9791,7 @@ msgstr "Величина директоријума прочишћавања нÐ
#. The MS dumpbin program reportedly ands with 0xff0f before
#. printing the characteristics field. Not sure why. No reason to
#. emulate it here.
-#: peXXigen.c:2761
+#: peXXigen.c:2762
#, c-format
msgid ""
"\n"
@@ -9673,92 +9800,124 @@ msgstr ""
"\n"
"ОÑобеноÑти 0x%x\n"
-#: peXXigen.c:3046
+#: peXXigen.c:3047
#, c-format
msgid "%pB: Data Directory (%lx bytes at %<PRIx64>) extends across section boundary at %<PRIx64>"
msgstr "%pB: Директоријум података (%lx бајта на %<PRIx64>) Ñе преноÑи преко границе одељка на %<PRIx64>"
-#: peXXigen.c:3087
+#: peXXigen.c:3088
msgid "failed to update file offsets in debug directory"
msgstr "ниÑам уÑпео да оÑвежим помераје датотеке у директоријуму прочишћавања"
-#: peXXigen.c:3096
+#: peXXigen.c:3097
#, c-format
msgid "%pB: failed to read debug data section"
msgstr "%pB: ниÑам уÑпео да читам одељак података прочишћавања"
-#: peXXigen.c:3899
+#: peXXigen.c:3900
#, c-format
msgid ".rsrc merge failure: duplicate string resource: %d"
msgstr "неуÑпело „.rsrc“ Ñтапање: извориште удвоÑтручене ниÑке: %d"
-#: peXXigen.c:4034
+#: peXXigen.c:4035
msgid ".rsrc merge failure: multiple non-default manifests"
msgstr "неуÑпело „.rsrc“ Ñтапање: неколико не-подразумеваних иÑпољавања"
-#: peXXigen.c:4052
+#: peXXigen.c:4053
msgid ".rsrc merge failure: a directory matches a leaf"
msgstr "неуÑпело „.rsrc“ Ñтапање: директоријум одговара лиÑту"
-#: peXXigen.c:4094
+#: peXXigen.c:4095
msgid ".rsrc merge failure: duplicate leaf"
msgstr "неуÑпело „.rsrc“ Ñтапање: удвоÑтручени лиÑÑ‚"
-#: peXXigen.c:4099
+#: peXXigen.c:4100
#, c-format
msgid ".rsrc merge failure: duplicate leaf: %s"
msgstr "неуÑпело „.rsrc“ Ñтапање: удвоÑтручени лиÑÑ‚: %s"
-#: peXXigen.c:4166
+#: peXXigen.c:4167
msgid ".rsrc merge failure: dirs with differing characteristics"
msgstr "неуÑпело „.rsrc“ Ñтапање: директоријуми Ñа различитим оÑобеноÑтима"
-#: peXXigen.c:4173
+#: peXXigen.c:4174
msgid ".rsrc merge failure: differing directory versions"
msgstr "неуÑпело „.rsrc“ Ñтапање: издања директоријума Ñе разликују"
#. Corrupted .rsrc section - cannot merge.
-#: peXXigen.c:4285
+#: peXXigen.c:4286
#, c-format
msgid "%pB: .rsrc merge failure: corrupt .rsrc section"
msgstr "%pB: неуÑпело „.rsrc“ Ñтапање: оштећени „.rsrc“ одељак"
-#: peXXigen.c:4293
+#: peXXigen.c:4294
#, c-format
msgid "%pB: .rsrc merge failure: unexpected .rsrc size"
msgstr "%pB: неуÑпело „.rsrc“ Ñтапање: оштећени „.rsrc“ одељак"
-#: peXXigen.c:4432
+#: peXXigen.c:4433
#, c-format
msgid "%pB: unable to fill in DataDictionary[1] because .idata$2 is missing"
msgstr "%pB: не могу да попуним речник података[1] зато што недоÑтаје „.idata$2“"
-#: peXXigen.c:4452
+#: peXXigen.c:4453
#, c-format
msgid "%pB: unable to fill in DataDictionary[1] because .idata$4 is missing"
msgstr "%pB: не могу да попуним речник података[1] зато што недоÑтаје „.idata$4“"
-#: peXXigen.c:4473
+#: peXXigen.c:4474
#, c-format
msgid "%pB: unable to fill in DataDictionary[12] because .idata$5 is missing"
msgstr "%pB: не могу да попуним речник података[12] зато што недоÑтаје „.idata$5“"
-#: peXXigen.c:4493
+#: peXXigen.c:4494
#, c-format
msgid "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE (12)] because .idata$6 is missing"
msgstr "%pB: не могу да попуним речник података[PE_IMPORT_ADDRESS_TABLE (12)] зато што недоÑтаје „.idata$6“"
-#: peXXigen.c:4535
+#: peXXigen.c:4536
#, c-format
msgid "%pB: unable to fill in DataDictionary[PE_IMPORT_ADDRESS_TABLE(12)] because .idata$6 is missing"
msgstr "%pB: не могу да попуним речник података[PE_IMPORT_ADDRESS_TABLE(12)] зато што недоÑтаје „.idata$6“"
-#: peXXigen.c:4560
+#: peXXigen.c:4561
#, c-format
msgid "%pB: unable to fill in DataDictionary[9] because __tls_used is missing"
msgstr "%pB: не могу да попуним речник података[9] зато што недоÑтаје „__tls_used“"
#, c-format
+#~ msgid "error: %pB: big-endian R2 is not supported"
+#~ msgstr "грешка: %pB: велика крајњоÑÑ‚ „R2“ није подржана"
+
+#, c-format
+#~ msgid "error: %pB: conflicting CPU architectures %d/%d"
+#~ msgstr "грешка: %pB: архитектуре процеÑора %d/%d Ñу у Ñукобу"
+
+#, c-format
+#~ msgid "global pointer relative relocation at address %#<PRIx64> when _gp not defined\n"
+#~ msgstr "релативно премештање општег показивача на адреÑи %#<PRIx64> када „_gp“ није дефиниÑано\n"
+
+#, c-format
+#~ msgid "unable to reach %s (at %#<PRIx64>) from the global pointer (at %#<PRIx64>) because the offset (%<PRId64>) is out of the allowed range, -32678 to 32767\n"
+#~ msgstr "не могу да доÑтигнем „%s“ (на %#<PRIx64>) из општег показивача (на %#<PRIx64>) зато што је померај (%<PRId64>) изван допуштеног опÑега, од -32678 до 32767\n"
+
+#, c-format
+#~ msgid "dynamic variable `%s' is zero size"
+#~ msgstr "динамичка променљива „%s“ је нулте величине"
+
+#, c-format
+#~ msgid "%pB: warning: BTI turned on by -z force-bti when all inputs do not have BTI in NOTE section."
+#~ msgstr "%pB: упозорење: „BTI“ је укључено „-z force-bti“-јем када Ñви уноÑи немају „BTI“ у „NOTE“ одељку."
+
+#, c-format
+#~ msgid "%pB: unhandled import type; %x"
+#~ msgstr "%pB: необрадива врÑта увоза; %x"
+
+#, c-format
+#~ msgid "warning: %pB use privileged spec version %u.%u.%u but the output use version %u.%u.%u"
+#~ msgstr "упозорење: „%pB“ кориÑти привилеговано Ñпец издање „%u.%u.%u“ али излаз кориÑти издање „%u.%u.%u“"
+
+#, c-format
#~ msgid "not mapping: data=%lx mapped=%d\n"
#~ msgstr "не мапирам: податак=%lx мапиран=%d\n"
@@ -9810,9 +9969,6 @@ msgstr "%pB: не могу да попуним речник података[9]
#~ msgid "%pB: unsupported relocation type name %s"
#~ msgstr "%pB: неподржана врÑта премештања имена „%s“"
-#~ msgid "f' and `c"
-#~ msgstr "f“ и „c"
-
#~ msgid "d' and `c"
#~ msgstr "d“ и „c"
@@ -10196,15 +10352,9 @@ msgstr "%pB: не могу да попуним речник података[9]
#~ msgid "%B: Relocation %s (%d) is not currently supported.\n"
#~ msgstr "%B: Премештање „%s“ (%d) тренутно није подржано.\n"
-#~ msgid "%B: Unknown relocation type %d\n"
-#~ msgstr "%B: Ðепозната врÑта премештања „%d“\n"
-
#~ msgid "%B(%A+0x%lx): R_METAG_TLS_LE/IENONPIC relocation not permitted in shared object"
#~ msgstr "%B(%A+0x%lx): „R_METAG_TLS_LE/IENONPIC“ премештање није допуштено у дељеним објектима"
-#~ msgid "%s: unknown relocation type %d"
-#~ msgstr "%s: непозната врÑта премештања „%d“"
-
#~ msgid "%s: The target (%s) of an %s relocation is in the wrong section (%s)"
#~ msgstr "%s: Мета (%s) премештања „%s“ је у погрешном одељку (%s)"
diff --git a/bfd/reloc.c b/bfd/reloc.c
index cbb56dd..c9d53bb 100644
--- a/bfd/reloc.c
+++ b/bfd/reloc.c
@@ -7419,6 +7419,12 @@ ENUMDOC
AArch64 pseudo relocation code to be used internally by the AArch64
assembler and not (currently) written to any object files.
ENUM
+ BFD_RELOC_AARCH64_BRANCH9
+ENUMDOC
+ AArch64 9 bit pc-relative conditional branch and compare & branch.
+ The lowest two bits must be zero and are not stored in the
+ instruction, giving an 11 bit signed byte offset.
+ENUM
BFD_RELOC_TILEPRO_COPY
ENUMX
BFD_RELOC_TILEPRO_GLOB_DAT
@@ -8366,8 +8372,8 @@ bfd_generic_relax_section (bfd *abfd ATTRIBUTE_UNUSED,
bool *again)
{
if (bfd_link_relocatable (link_info))
- (*link_info->callbacks->einfo)
- (_("%P%F: --relax and -r may not be used together\n"));
+ link_info->callbacks->fatal
+ (_("%P: --relax and -r may not be used together\n"));
*again = false;
return true;
diff --git a/bfd/reloc16.c b/bfd/reloc16.c
index e77a237..2a90a1d 100644
--- a/bfd/reloc16.c
+++ b/bfd/reloc16.c
@@ -151,8 +151,8 @@ bfd_coff_reloc16_relax_section (bfd *abfd,
long reloc_count;
if (bfd_link_relocatable (link_info))
- (*link_info->callbacks->einfo)
- (_("%P%F: --relax and -r may not be used together\n"));
+ link_info->callbacks->fatal
+ (_("%P: --relax and -r may not be used together\n"));
/* We only do global relaxation once. It is not safe to do it multiple
times (see discussion of the "shrinks" array below). */
diff --git a/bfd/section.c b/bfd/section.c
index b1f7564..9460ff9 100644
--- a/bfd/section.c
+++ b/bfd/section.c
@@ -712,6 +712,7 @@ EXTERNAL
. && sec->sec_info_type != SEC_INFO_TYPE_JUST_SYMS);
.}
.
+INTERNAL
.#define BFD_FAKE_SECTION(SEC, SYM, NAME, IDX, FLAGS) \
. {* name, next, prev, id, section_id, index, flags, user_set_vma, *} \
. { NAME, NULL, NULL, IDX, 0, 0, FLAGS, 0, \
@@ -749,19 +750,11 @@ EXTERNAL
. {* map_head, map_tail, already_assigned, type *} \
. { NULL }, { NULL }, NULL, 0 \
. \
-. }
-.
-.{* We use a macro to initialize the static asymbol structures because
-. traditional C does not permit us to initialize a union member while
-. gcc warns if we don't initialize it.
-. the_bfd, name, value, attr, section [, udata] *}
-.#ifdef __STDC__
-.#define GLOBAL_SYM_INIT(NAME, SECTION) \
-. { 0, NAME, 0, BSF_SECTION_SYM, SECTION, { 0 }}
-.#else
-.#define GLOBAL_SYM_INIT(NAME, SECTION) \
-. { 0, NAME, 0, BSF_SECTION_SYM, SECTION }
-.#endif
+. }
+.
+.#define GLOBAL_SYM_INIT(NAME, SECTION) \
+. {* the_bfd, name, value, attr, section, udata *} \
+. { 0, NAME, 0, BSF_SECTION_SYM, SECTION, { 0 } }
.
*/
diff --git a/bfd/syms.c b/bfd/syms.c
index 95017ba..df2229b 100644
--- a/bfd/syms.c
+++ b/bfd/syms.c
@@ -594,6 +594,7 @@ struct section_to_type
adding entries. Since it is so short, a linear search is used. */
static const struct section_to_type stt[] =
{
+ {".didat", 'i'}, /* MSVC's .didat (delay import) section */
{".drectve", 'i'}, /* MSVC's .drective section */
{".edata", 'e'}, /* MSVC's .edata (export) section */
{".idata", 'i'}, /* MSVC's .idata (import) section */
diff --git a/bfd/tekhex.c b/bfd/tekhex.c
index aab0b2f..7e4e698 100644
--- a/bfd/tekhex.c
+++ b/bfd/tekhex.c
@@ -327,9 +327,7 @@ find_chunk (bfd *abfd, bfd_vma vma, bool create)
if (!d && create)
{
/* No chunk for this address, so make one up. */
- d = (struct data_struct *)
- bfd_zalloc (abfd, (bfd_size_type) sizeof (struct data_struct));
-
+ d = bfd_zalloc (abfd, sizeof (struct data_struct));
if (!d)
return NULL;
@@ -340,17 +338,20 @@ find_chunk (bfd *abfd, bfd_vma vma, bool create)
return d;
}
-static void
+static bool
insert_byte (bfd *abfd, int value, bfd_vma addr)
{
if (value != 0)
{
/* Find the chunk that this byte needs and put it in. */
struct data_struct *d = find_chunk (abfd, addr, true);
+ if (!d)
+ return false;
d->chunk_data[addr & CHUNK_MASK] = value;
d->chunk_init[(addr & CHUNK_MASK) / CHUNK_SPAN] = 1;
}
+ return true;
}
/* The first pass is to find the names of all the sections, and see
@@ -374,7 +375,8 @@ first_phase (bfd *abfd, int type, char *src, char * src_end)
while (*src && src < src_end - 1)
{
- insert_byte (abfd, HEX (src), addr);
+ if (!insert_byte (abfd, HEX (src), addr))
+ return false;
src += 2;
addr++;
}
@@ -628,7 +630,7 @@ tekhex_object_p (bfd *abfd)
return _bfd_no_cleanup;
}
-static void
+static bool
move_section_contents (bfd *abfd,
asection *section,
const void * locationp,
@@ -653,6 +655,8 @@ move_section_contents (bfd *abfd,
{
/* Different chunk, so move pointer. */
d = find_chunk (abfd, chunk_number, must_write);
+ if (!d)
+ return false;
prev_number = chunk_number;
}
@@ -671,22 +675,19 @@ move_section_contents (bfd *abfd,
location++;
}
+ return true;
}
static bool
tekhex_get_section_contents (bfd *abfd,
asection *section,
- void * locationp,
+ void *location,
file_ptr offset,
bfd_size_type count)
{
- if (section->flags & (SEC_LOAD | SEC_ALLOC))
- {
- move_section_contents (abfd, section, locationp, offset, count, true);
- return true;
- }
-
- return false;
+ if ((section->flags & (SEC_LOAD | SEC_ALLOC)) == 0)
+ return false;
+ return move_section_contents (abfd, section, location, offset, count, true);
}
static bool
@@ -704,18 +705,13 @@ tekhex_set_arch_mach (bfd *abfd,
static bool
tekhex_set_section_contents (bfd *abfd,
sec_ptr section,
- const void * locationp,
+ const void *location,
file_ptr offset,
- bfd_size_type bytes_to_do)
+ bfd_size_type count)
{
- if (section->flags & (SEC_LOAD | SEC_ALLOC))
- {
- move_section_contents (abfd, section, locationp, offset, bytes_to_do,
- false);
- return true;
- }
-
- return false;
+ if ((section->flags & (SEC_LOAD | SEC_ALLOC)) == 0)
+ return false;
+ return move_section_contents (abfd, section, location, offset, count, false);
}
static void
diff --git a/bfd/version.h b/bfd/version.h
index dba8cf2..9f84a66 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 20250206
+#define BFD_VERSION_DATE 20250622
#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/xcofflink.c b/bfd/xcofflink.c
index 14eb008..b50b17f 100644
--- a/bfd/xcofflink.c
+++ b/bfd/xcofflink.c
@@ -243,6 +243,55 @@ xcoff_get_section_contents (bfd *abfd, asection *sec)
return contents;
}
+/* Read .loader and swap in the header. Sanity check to prevent
+ buffer overflows. Don't bother to check for overlap as that sort
+ of insanity shouldn't lead to incorrect program behaviour. */
+
+static bfd_byte *
+xcoff_get_ldhdr (bfd *abfd, asection *lsec, struct internal_ldhdr *ldhdr)
+{
+ bfd_byte *contents = xcoff_get_section_contents (abfd, lsec);
+ if (contents)
+ {
+ bfd_xcoff_swap_ldhdr_in (abfd, contents, ldhdr);
+ if (ldhdr->l_nsyms != 0)
+ {
+ bfd_vma symoff = bfd_xcoff_loader_symbol_offset (abfd, ldhdr);
+ if (symoff > lsec->size)
+ goto fail;
+ bfd_size_type onesym = bfd_xcoff_ldsymsz (abfd);
+ bfd_size_type syms;
+ if (_bfd_mul_overflow (ldhdr->l_nsyms, onesym, &syms)
+ || syms > lsec->size - symoff)
+ goto fail;
+ }
+ if (ldhdr->l_stlen != 0
+ && (ldhdr->l_stoff > lsec->size
+ || ldhdr->l_stlen > lsec->size - ldhdr->l_stoff))
+ goto fail;
+ if (ldhdr->l_nreloc != 0)
+ {
+ bfd_vma reloff = bfd_xcoff_loader_reloc_offset (abfd, ldhdr);
+ if (reloff > lsec->size)
+ goto fail;
+ bfd_size_type onerel = bfd_xcoff_ldrelsz (abfd);
+ bfd_size_type rels;
+ if (_bfd_mul_overflow (ldhdr->l_nreloc, onerel, &rels)
+ || rels > lsec->size - reloff)
+ goto fail;
+ }
+ if (ldhdr->l_nimpid != 0
+ && (ldhdr->l_impoff > lsec->size
+ || ldhdr->l_istlen > lsec->size - ldhdr->l_impoff))
+ goto fail;
+ }
+ return contents;
+
+ fail:
+ bfd_set_error (bfd_error_file_truncated);
+ return NULL;
+}
+
/* Get the size required to hold the dynamic symbols. */
long
@@ -265,12 +314,10 @@ _bfd_xcoff_get_dynamic_symtab_upper_bound (bfd *abfd)
return -1;
}
- contents = xcoff_get_section_contents (abfd, lsec);
+ contents = xcoff_get_ldhdr (abfd, lsec, &ldhdr);
if (!contents)
return -1;
- bfd_xcoff_swap_ldhdr_in (abfd, (void *) contents, &ldhdr);
-
return (ldhdr.l_nsyms + 1) * sizeof (asymbol *);
}
@@ -299,12 +346,10 @@ _bfd_xcoff_canonicalize_dynamic_symtab (bfd *abfd, asymbol **psyms)
return -1;
}
- contents = xcoff_get_section_contents (abfd, lsec);
+ contents = xcoff_get_ldhdr (abfd, lsec, &ldhdr);
if (!contents)
return -1;
- bfd_xcoff_swap_ldhdr_in (abfd, contents, &ldhdr);
-
strings = (char *) contents + ldhdr.l_stoff;
symbuf = bfd_zalloc (abfd, ldhdr.l_nsyms * sizeof (* symbuf));
@@ -322,9 +367,7 @@ _bfd_xcoff_canonicalize_dynamic_symtab (bfd *abfd, asymbol **psyms)
symbuf->symbol.the_bfd = abfd;
- if (ldsym._l._l_l._l_zeroes == 0)
- symbuf->symbol.name = strings + ldsym._l._l_l._l_offset;
- else
+ if (ldsym._l._l_l._l_zeroes != 0)
{
char *c;
@@ -335,6 +378,10 @@ _bfd_xcoff_canonicalize_dynamic_symtab (bfd *abfd, asymbol **psyms)
c[SYMNMLEN] = '\0';
symbuf->symbol.name = c;
}
+ else if (ldsym._l._l_l._l_offset < ldhdr.l_stlen)
+ symbuf->symbol.name = strings + ldsym._l._l_l._l_offset;
+ else
+ symbuf->symbol.name = _("<corrupt>");
if (ldsym.l_smclas == XMC_XO)
symbuf->symbol.section = bfd_abs_section_ptr;
@@ -384,12 +431,10 @@ _bfd_xcoff_get_dynamic_reloc_upper_bound (bfd *abfd)
return -1;
}
- contents = xcoff_get_section_contents (abfd, lsec);
+ contents = xcoff_get_ldhdr (abfd, lsec, &ldhdr);
if (!contents)
return -1;
- bfd_xcoff_swap_ldhdr_in (abfd, (struct external_ldhdr *) contents, &ldhdr);
-
return (ldhdr.l_nreloc + 1) * sizeof (arelent *);
}
@@ -419,12 +464,10 @@ _bfd_xcoff_canonicalize_dynamic_reloc (bfd *abfd,
return -1;
}
- contents = xcoff_get_section_contents (abfd, lsec);
+ contents = xcoff_get_ldhdr (abfd, lsec, &ldhdr);
if (!contents)
return -1;
- bfd_xcoff_swap_ldhdr_in (abfd, contents, &ldhdr);
-
relbuf = bfd_alloc (abfd, ldhdr.l_nreloc * sizeof (arelent));
if (relbuf == NULL)
return -1;
@@ -905,7 +948,7 @@ xcoff_link_add_dynamic_symbols (bfd *abfd, struct bfd_link_info *info)
return false;
}
- contents = xcoff_get_section_contents (abfd, lsec);
+ contents = xcoff_get_ldhdr (abfd, lsec, &ldhdr);
if (!contents)
return false;
@@ -913,8 +956,6 @@ xcoff_link_add_dynamic_symbols (bfd *abfd, struct bfd_link_info *info)
included in the link. */
bfd_section_list_clear (abfd);
- bfd_xcoff_swap_ldhdr_in (abfd, contents, &ldhdr);
-
strings = (char *) contents + ldhdr.l_stoff;
elsym = contents + bfd_xcoff_loader_symbol_offset(abfd, &ldhdr);
@@ -934,14 +975,16 @@ xcoff_link_add_dynamic_symbols (bfd *abfd, struct bfd_link_info *info)
if ((ldsym.l_smtype & L_EXPORT) == 0)
continue;
- if (ldsym._l._l_l._l_zeroes == 0)
- name = strings + ldsym._l._l_l._l_offset;
- else
+ if (ldsym._l._l_l._l_zeroes != 0)
{
memcpy (nambuf, ldsym._l._l_name, SYMNMLEN);
nambuf[SYMNMLEN] = '\0';
name = nambuf;
}
+ else if (ldsym._l._l_l._l_offset < ldhdr.l_stlen)
+ name = strings + ldsym._l._l_l._l_offset;
+ else
+ continue;
/* Normally we could not call xcoff_link_hash_lookup in an add
symbols routine, since we might not be using an XCOFF hash
@@ -2368,12 +2411,10 @@ xcoff_link_check_dynamic_ar_symbols (bfd *abfd,
/* There are no symbols, so don't try to include it. */
return true;
- contents = xcoff_get_section_contents (abfd, lsec);
+ contents = xcoff_get_ldhdr (abfd, lsec, &ldhdr);
if (!contents)
return false;
- bfd_xcoff_swap_ldhdr_in (abfd, contents, &ldhdr);
-
strings = (char *) contents + ldhdr.l_stoff;
elsym = contents + bfd_xcoff_loader_symbol_offset (abfd, &ldhdr);
@@ -2392,14 +2433,16 @@ xcoff_link_check_dynamic_ar_symbols (bfd *abfd,
if ((ldsym.l_smtype & L_EXPORT) == 0)
continue;
- if (ldsym._l._l_l._l_zeroes == 0)
- name = strings + ldsym._l._l_l._l_offset;
- else
+ if (ldsym._l._l_l._l_zeroes != 0)
{
memcpy (nambuf, ldsym._l._l_name, SYMNMLEN);
nambuf[SYMNMLEN] = '\0';
name = nambuf;
}
+ else if (ldsym._l._l_l._l_offset < ldhdr.l_stlen)
+ name = strings + ldsym._l._l_l._l_offset;
+ else
+ continue;
h = bfd_link_hash_lookup (info->hash, name, false, false, true);
@@ -4677,7 +4720,7 @@ xcoff_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
if (hstub->target_section != NULL
&& hstub->target_section->output_section == NULL
&& info->non_contiguous_regions)
- info->callbacks->einfo (_("%F%P: Could not assign `%pA' to an output section. "
+ info->callbacks->fatal (_("%P: Could not assign `%pA' to an output section. "
"Retry without --enable-non-contiguous-regions.\n"),
hstub->target_section);
diff --git a/binutils/MAINTAINERS b/binutils/MAINTAINERS
index b62536d..14c24af 100644
--- a/binutils/MAINTAINERS
+++ b/binutils/MAINTAINERS
@@ -63,7 +63,7 @@ maintainer. The first maintainer is free to devolve that
responsibility among the other maintainers.
AARCH64 Richard Earnshaw <rearnsha@arm.com>
- AARCH64 Marcus Shawcroft <marcus.shawcroft@arm.com>
+ AARCH64 Alice Carlotti <alice.carlotti@arm.com>
ARC Claudiu Zissulescu <claziss@gmail.com>
ARM Nick Clifton <nickc@redhat.com>
ARM Richard Earnshaw <rearnsha@arm.com>
@@ -91,7 +91,6 @@ responsibility among the other maintainers.
HPPA Dave Anglin <dave.anglin@bell.net>
HPPA elf64 Jeff Law <law@redhat.com> [Basic maintainance only]
IA-64 Jim Wilson <wilson@tuliptree.org>
- IQ2000 Stan Cox <scox@redhat.com>
ix86 H.J. Lu <hjl.tools@gmail.com>
ix86 COFF DJ Delorie <dj@redhat.com>
ix86 PE/COFF Dave Korn <dave.korn.cygwin@gmail.com>
@@ -118,7 +117,8 @@ responsibility among the other maintainers.
OR1K Christian Svensson <blue@cmd.nu>
OR1K Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
OR1K Stafford Horne <shorne@gmail.com>
- PPC Peter Bergner <bergner@linux.ibm.com>
+ PPC Surya Kumari Jangala <jskumari@linux.ibm.com>
+ PPC Peter Bergner <bergner@tenstorrent.com>
PPC vector ext Aldy Hernandez <aldyh@redhat.com>
RISC-V Palmer Dabbelt <palmer@dabbelt.com>
RISC-V Andrew Waterman <andrew@sifive.com>
diff --git a/binutils/Makefile.am b/binutils/Makefile.am
index 20c711a..1528302 100644
--- a/binutils/Makefile.am
+++ b/binutils/Makefile.am
@@ -255,7 +255,7 @@ LDADD = $(BFDLIB) $(LIBIBERTY) $(LIBINTL)
size_SOURCES = size.c $(BULIBS)
-objcopy_SOURCES = objcopy.c not-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
+objcopy_SOURCES = not-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
strings_SOURCES = strings.c $(BULIBS)
@@ -265,7 +265,7 @@ readelf_LDADD = $(LIBCTF_NOBFD) $(LIBINTL) $(LIBIBERTY) $(ZLIB) $(ZSTD_LIBS) $
elfedit_SOURCES = elfedit.c version.c $(ELFLIBS)
elfedit_LDADD = $(LIBINTL) $(LIBIBERTY)
-strip_new_SOURCES = objcopy.c is-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
+strip_new_SOURCES = is-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
nm_new_SOURCES = nm.c demanguse.c $(BULIBS)
@@ -287,13 +287,13 @@ endif
cxxfilt_SOURCES = cxxfilt.c $(BULIBS)
-ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c rename.c binemul.c \
+ar_SOURCES = arparse.y arlex.l not-ranlib.c arsup.c rename.c binemul.c \
emul_$(EMULATION).c $(BULIBS)
EXTRA_ar_SOURCES = $(CFILES)
ar_LDADD = $(BFDLIB) $(LIBIBERTY) $(LEXLIB) $(LIBINTL)
-ranlib_SOURCES = ar.c is-ranlib.c arparse.y arlex.l arsup.c rename.c \
- binemul.c emul_$(EMULATION).c $(BULIBS)
+ranlib_SOURCES = arparse.y arlex.l is-ranlib.c arsup.c rename.c binemul.c \
+ emul_$(EMULATION).c $(BULIBS)
ranlib_LDADD = $(BFDLIB) $(LIBIBERTY) $(LEXLIB) $(LIBINTL)
addr2line_SOURCES = addr2line.c $(BULIBS)
diff --git a/binutils/Makefile.in b/binutils/Makefile.in
index 8029bc2..549b5a3 100644
--- a/binutils/Makefile.in
+++ b/binutils/Makefile.in
@@ -208,9 +208,9 @@ AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
-am_ar_OBJECTS = arparse.$(OBJEXT) arlex.$(OBJEXT) ar.$(OBJEXT) \
- not-ranlib.$(OBJEXT) arsup.$(OBJEXT) rename.$(OBJEXT) \
- binemul.$(OBJEXT) emul_$(EMULATION).$(OBJEXT) $(am__objects_1)
+am_ar_OBJECTS = arparse.$(OBJEXT) arlex.$(OBJEXT) not-ranlib.$(OBJEXT) \
+ arsup.$(OBJEXT) rename.$(OBJEXT) binemul.$(OBJEXT) \
+ emul_$(EMULATION).$(OBJEXT) $(am__objects_1)
ar_OBJECTS = $(am_ar_OBJECTS)
bfdtest1_SOURCES = bfdtest1.c
bfdtest1_OBJECTS = bfdtest1.$(OBJEXT)
@@ -240,8 +240,8 @@ nm_new_LDADD = $(LDADD)
am__objects_3 = rddbg.$(OBJEXT) debug.$(OBJEXT) stabs.$(OBJEXT) \
rdcoff.$(OBJEXT)
am__objects_4 = $(am__objects_3) wrstabs.$(OBJEXT)
-am_objcopy_OBJECTS = objcopy.$(OBJEXT) not-strip.$(OBJEXT) \
- rename.$(OBJEXT) $(am__objects_4) $(am__objects_1)
+am_objcopy_OBJECTS = not-strip.$(OBJEXT) rename.$(OBJEXT) \
+ $(am__objects_4) $(am__objects_1)
objcopy_OBJECTS = $(am_objcopy_OBJECTS)
objcopy_LDADD = $(LDADD)
am_objdump_OBJECTS = objdump.$(OBJEXT) dwarf.$(OBJEXT) prdbg.$(OBJEXT) \
@@ -249,8 +249,8 @@ am_objdump_OBJECTS = objdump.$(OBJEXT) dwarf.$(OBJEXT) prdbg.$(OBJEXT) \
$(am__objects_2)
objdump_OBJECTS = $(am_objdump_OBJECTS)
@ENABLE_LIBCTF_TRUE@am__DEPENDENCIES_2 = ../libctf/libctf.la
-am_ranlib_OBJECTS = ar.$(OBJEXT) is-ranlib.$(OBJEXT) arparse.$(OBJEXT) \
- arlex.$(OBJEXT) arsup.$(OBJEXT) rename.$(OBJEXT) \
+am_ranlib_OBJECTS = arparse.$(OBJEXT) arlex.$(OBJEXT) \
+ is-ranlib.$(OBJEXT) arsup.$(OBJEXT) rename.$(OBJEXT) \
binemul.$(OBJEXT) emul_$(EMULATION).$(OBJEXT) $(am__objects_1)
ranlib_OBJECTS = $(am_ranlib_OBJECTS)
am_readelf_OBJECTS = readelf.$(OBJEXT) version.$(OBJEXT) \
@@ -268,8 +268,8 @@ srconv_LDADD = $(LDADD)
am_strings_OBJECTS = strings.$(OBJEXT) $(am__objects_1)
strings_OBJECTS = $(am_strings_OBJECTS)
strings_LDADD = $(LDADD)
-am_strip_new_OBJECTS = objcopy.$(OBJEXT) is-strip.$(OBJEXT) \
- rename.$(OBJEXT) $(am__objects_4) $(am__objects_1)
+am_strip_new_OBJECTS = is-strip.$(OBJEXT) rename.$(OBJEXT) \
+ $(am__objects_4) $(am__objects_1)
strip_new_OBJECTS = $(am_strip_new_OBJECTS)
strip_new_LDADD = $(LDADD)
am_sysdump_OBJECTS = sysdump.$(OBJEXT) $(am__objects_1)
@@ -793,25 +793,25 @@ bfdtest1_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB)
bfdtest2_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB)
LDADD = $(BFDLIB) $(LIBIBERTY) $(LIBINTL)
size_SOURCES = size.c $(BULIBS)
-objcopy_SOURCES = objcopy.c not-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
+objcopy_SOURCES = not-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
strings_SOURCES = strings.c $(BULIBS)
readelf_SOURCES = readelf.c version.c unwind-ia64.c dwarf.c demanguse.c $(ELFLIBS)
readelf_LDADD = $(LIBCTF_NOBFD) $(LIBINTL) $(LIBIBERTY) $(ZLIB) $(ZSTD_LIBS) $(DEBUGINFOD_LIBS) $(MSGPACK_LIBS) $(LIBSFRAME)
elfedit_SOURCES = elfedit.c version.c $(ELFLIBS)
elfedit_LDADD = $(LIBINTL) $(LIBIBERTY)
-strip_new_SOURCES = objcopy.c is-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
+strip_new_SOURCES = is-strip.c rename.c $(WRITE_DEBUG_SRCS) $(BULIBS)
nm_new_SOURCES = nm.c demanguse.c $(BULIBS)
objdump_SOURCES = objdump.c dwarf.c prdbg.c demanguse.c $(DEBUG_SRCS) $(BULIBS) $(ELFLIBS)
EXTRA_objdump_SOURCES = od-elf32_avr.c od-macho.c od-xcoff.c od-pe.c
objdump_LDADD = $(OBJDUMP_PRIVATE_OFILES) $(OPCODES) $(LIBCTF) $(BFDLIB) $(LIBIBERTY) $(LIBINTL) $(DEBUGINFOD_LIBS) $(LIBSFRAME)
cxxfilt_SOURCES = cxxfilt.c $(BULIBS)
-ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c rename.c binemul.c \
+ar_SOURCES = arparse.y arlex.l not-ranlib.c arsup.c rename.c binemul.c \
emul_$(EMULATION).c $(BULIBS)
EXTRA_ar_SOURCES = $(CFILES)
ar_LDADD = $(BFDLIB) $(LIBIBERTY) $(LEXLIB) $(LIBINTL)
-ranlib_SOURCES = ar.c is-ranlib.c arparse.y arlex.l arsup.c rename.c \
- binemul.c emul_$(EMULATION).c $(BULIBS)
+ranlib_SOURCES = arparse.y arlex.l is-ranlib.c arsup.c rename.c binemul.c \
+ emul_$(EMULATION).c $(BULIBS)
ranlib_LDADD = $(BFDLIB) $(LIBIBERTY) $(LEXLIB) $(LIBINTL)
addr2line_SOURCES = addr2line.c $(BULIBS)
diff --git a/binutils/NEWS b/binutils/NEWS
index d647fa6..a4599d9 100644
--- a/binutils/NEWS
+++ b/binutils/NEWS
@@ -1,5 +1,8 @@
-*- text -*-
+* For RISC-V dis-assembler, the definition of mapping symbol $x is changed,
+ so the file needs to be rebuilt since 2.45 once used .option arch directives.
+
Changes in 2.44:
* Support for Nios II targets has been removed except in the readelf utility,
diff --git a/binutils/ar.c b/binutils/ar.c
index 40cad57..de41c9e 100644
--- a/binutils/ar.c
+++ b/binutils/ar.c
@@ -67,7 +67,9 @@ static int mri_mode;
/* This flag distinguishes between ar and ranlib:
1 means this is 'ranlib'; 0 means this is 'ar'.
-1 means if we should use argv[0] to decide. */
+#ifndef is_ranlib
extern int is_ranlib;
+#endif
/* Nonzero means don't warn about creating the archive file if necessary. */
int silent_create = 0;
@@ -735,16 +737,23 @@ main (int argc, char **argv)
expandargv (&argc, &argv);
+#ifndef is_ranlib
if (is_ranlib < 0)
{
- const char *temp = lbasename (program_name);
+ size_t l = strlen (program_name);
- if (strlen (temp) >= 6
- && FILENAME_CMP (temp + strlen (temp) - 6, "ranlib") == 0)
- is_ranlib = 1;
- else
- is_ranlib = 0;
+#ifdef HAVE_DOS_BASED_FILE_SYSTEM
+ /* Drop the .exe suffix, if any. */
+ if (l > 4 && FILENAME_CMP (program_name + l - 4, ".exe") == 0)
+ {
+ l -= 4;
+ program_name[l] = '\0';
+ }
+#endif
+ is_ranlib = (l >= 6 &&
+ FILENAME_CMP (program_name + l - 6, "ranlib") == 0);
}
+#endif
if (bfd_init () != BFD_INIT_MAGIC)
fatal (_("fatal error: libbfd ABI mismatch"));
diff --git a/binutils/bucomm.c b/binutils/bucomm.c
index ccf5409..d455473 100644
--- a/binutils/bucomm.c
+++ b/binutils/bucomm.c
@@ -435,6 +435,7 @@ display_info (void)
if (!arg.error)
display_target_tables (&arg);
+ free (arg.info);
return arg.error;
}
diff --git a/binutils/debug.c b/binutils/debug.c
index dcc8ccd..465b18e 100644
--- a/binutils/debug.c
+++ b/binutils/debug.c
@@ -2554,9 +2554,6 @@ debug_write_type (struct debug_handle *info,
case DEBUG_KIND_UNION_CLASS:
return debug_write_class_type (info, fns, fhandle, type, tag);
case DEBUG_KIND_ENUM:
- if (type->u.kenum == NULL)
- return (*fns->enum_type) (fhandle, tag, (const char **) NULL,
- (bfd_signed_vma *) NULL);
return (*fns->enum_type) (fhandle, tag, type->u.kenum->names,
type->u.kenum->values);
case DEBUG_KIND_POINTER:
@@ -3097,9 +3094,9 @@ debug_type_samep (struct debug_handle *info, struct debug_type_s *t1,
break;
case DEBUG_KIND_ENUM:
- if (t1->u.kenum == NULL)
- ret = t2->u.kenum == NULL;
- else if (t2->u.kenum == NULL)
+ if (t1->u.kenum->names == NULL)
+ ret = t2->u.kenum->names == NULL;
+ else if (t2->u.kenum->names == NULL)
ret = false;
else
{
diff --git a/binutils/defparse.y b/binutils/defparse.y
index 4040279..a2c4c4b 100644
--- a/binutils/defparse.y
+++ b/binutils/defparse.y
@@ -193,23 +193,27 @@ opt_name2: ID { $$ = $1; }
{
char *name = xmalloc (strlen ($2) + 2);
sprintf (name, ".%s", $2);
+ free ($2);
$$ = name;
}
| keyword_as_name '.' opt_name2
{
char *name = xmalloc (strlen ($1) + 1 + strlen ($3) + 1);
sprintf (name, "%s.%s", $1, $3);
+ free ($3);
$$ = name;
}
| ID '.' opt_name2
{
char *name = xmalloc (strlen ($1) + 1 + strlen ($3) + 1);
sprintf (name, "%s.%s", $1, $3);
+ free ($1);
+ free ($3);
$$ = name;
}
;
opt_name: opt_name2 { $$ =$1; }
- | { $$=""; }
+ | { $$ = xstrdup (""); }
;
opt_ordinal:
diff --git a/binutils/dlltool.c b/binutils/dlltool.c
index d32bf20..99c651f 100644
--- a/binutils/dlltool.c
+++ b/binutils/dlltool.c
@@ -326,15 +326,15 @@
typedef struct ifunct
{
- char * name; /* Name of function being imported. */
- char * its_name; /* Optional import table symbol name. */
+ const char * name; /* Name of function being imported. */
+ const char *its_name; /* Optional import table symbol name. */
int ord; /* Two-byte ordinal value associated with function. */
struct ifunct *next;
} ifunctype;
typedef struct iheadt
{
- char * dllname; /* Name of dll file imported from. */
+ const char * dllname; /* Name of dll file imported from. */
long nfuncs; /* Number of functions in list. */
struct ifunct *funchead; /* First function in list. */
struct ifunct *functail; /* Last function in list. */
@@ -762,7 +762,7 @@ mtable[] =
typedef struct dlist
{
- char *text;
+ const char *text;
struct dlist *next;
}
dlist_type;
@@ -796,7 +796,7 @@ static struct string_list *excludes;
/* Forward references. */
static char *deduce_name (const char *);
-static const char *xlate (const char *);
+static char *xlate (const char *);
static void dll_name_list_free_contents (dll_name_list_node_type *);
static void identify_search_archive
(bfd *, void (*) (bfd *, bfd *, void *), void *);
@@ -1021,12 +1021,7 @@ set_dll_name_from_def (const char *name, char is_dll)
def_file, name);
/* Append the default suffix, if none specified. */
if (strchr (image_basename, '.') == 0)
- {
- const char * suffix = is_dll ? ".dll" : ".exe";
-
- dll_name = xmalloc (strlen (image_basename) + strlen (suffix) + 1);
- sprintf (dll_name, "%s%s", image_basename, suffix);
- }
+ dll_name = xasprintf ("%s%s", image_basename, is_dll ? ".dll" : ".exe");
else
dll_name = xstrdup (image_basename);
}
@@ -1042,6 +1037,7 @@ def_name (const char *name, int base)
if (dll_name_set_by_exp_name && name && *name != 0)
{
+ free (dll_name);
dll_name = NULL;
dll_name_set_by_exp_name = 0;
}
@@ -1049,6 +1045,7 @@ def_name (const char *name, int base)
FIXME: Is this appropriate for executables? */
if (!dll_name)
set_dll_name_from_def (name, 0);
+ free ((char *) name);
d_is_exe = 1;
}
@@ -1063,6 +1060,7 @@ def_library (const char *name, int base)
if (dll_name_set_by_exp_name && name && *name != 0)
{
+ free (dll_name);
dll_name = NULL;
dll_name_set_by_exp_name = 0;
}
@@ -1070,6 +1068,7 @@ def_library (const char *name, int base)
/* If --dllname not provided, use the one in the DEF file. */
if (!dll_name)
set_dll_name_from_def (name, 1);
+ free ((char *) name);
d_is_dll = 1;
}
@@ -1077,7 +1076,7 @@ void
def_description (const char *desc)
{
dlist_type *d = (dlist_type *) xmalloc (sizeof (dlist_type));
- d->text = xstrdup (desc);
+ d->text = desc;
d->next = d_list;
d_list = d;
}
@@ -1086,7 +1085,7 @@ static void
new_directive (char *dir)
{
dlist_type *d = (dlist_type *) xmalloc (sizeof (dlist_type));
- d->text = xstrdup (dir);
+ d->text = dir;
d->next = a_list;
a_list = d;
}
@@ -1094,23 +1093,23 @@ new_directive (char *dir)
void
def_heapsize (int reserve, int commit)
{
- char b[200];
+ char *s;
if (commit > 0)
- sprintf (b, "-heap 0x%x,0x%x ", reserve, commit);
+ s = xasprintf ("-heap 0x%x,0x%x ", reserve, commit);
else
- sprintf (b, "-heap 0x%x ", reserve);
- new_directive (xstrdup (b));
+ s = xasprintf ("-heap 0x%x ", reserve);
+ new_directive (s);
}
void
def_stacksize (int reserve, int commit)
{
- char b[200];
+ char *s;
if (commit > 0)
- sprintf (b, "-stack 0x%x,0x%x ", reserve, commit);
+ s = xasprintf ("-stack 0x%x,0x%x ", reserve, commit);
else
- sprintf (b, "-stack 0x%x ", reserve);
- new_directive (xstrdup (b));
+ s = xasprintf ( "-stack 0x%x ", reserve);
+ new_directive (s);
}
/* append_import simply adds the given import definition to the global
@@ -1131,8 +1130,8 @@ append_import (const char *symbol_name, const char *dllname, int func_ordinal,
q->functail->next = xmalloc (sizeof (ifunctype));
q->functail = q->functail->next;
q->functail->ord = func_ordinal;
- q->functail->name = xstrdup (symbol_name);
- q->functail->its_name = its_name ? xstrdup (its_name) : NULL;
+ q->functail->name = symbol_name;
+ q->functail->its_name = its_name;
q->functail->next = NULL;
q->nfuncs++;
return;
@@ -1140,13 +1139,13 @@ append_import (const char *symbol_name, const char *dllname, int func_ordinal,
}
q = xmalloc (sizeof (iheadtype));
- q->dllname = xstrdup (dllname);
+ q->dllname = dllname;
q->nfuncs = 1;
q->funchead = xmalloc (sizeof (ifunctype));
q->functail = q->funchead;
q->next = NULL;
- q->functail->name = xstrdup (symbol_name);
- q->functail->its_name = its_name ? xstrdup (its_name) : NULL;
+ q->functail->name = symbol_name;
+ q->functail->its_name = its_name;
q->functail->ord = func_ordinal;
q->functail->next = NULL;
@@ -1188,7 +1187,6 @@ def_import (const char *app_name, const char *module, const char *dllext,
const char *entry, int ord_val, const char *its_name)
{
const char *application_name;
- char *buf = NULL;
if (entry != NULL)
application_name = entry;
@@ -1200,12 +1198,14 @@ def_import (const char *app_name, const char *module, const char *dllext,
application_name = "";
}
+ const char *mod_name = module;
if (dllext != NULL)
- module = buf = concat (module, ".", dllext, NULL);
-
- append_import (application_name, module, ord_val, its_name);
+ {
+ mod_name = concat (module, ".", dllext, NULL);
+ free ((char *) module);
+ }
- free (buf);
+ append_import (application_name, mod_name, ord_val, its_name);
}
void
@@ -1217,12 +1217,10 @@ def_version (int major, int minor)
void
def_section (const char *name, int attr)
{
- char buf[200];
char atts[5];
char *d = atts;
if (attr & 1)
*d++ = 'R';
-
if (attr & 2)
*d++ = 'W';
if (attr & 4)
@@ -1230,8 +1228,8 @@ def_section (const char *name, int attr)
if (attr & 8)
*d++ = 'S';
*d++ = 0;
- sprintf (buf, "-attr %s %s", name, atts);
- new_directive (xstrdup (buf));
+ char *s = xasprintf ("-attr %s %s", name, atts);
+ new_directive (s);
}
void
@@ -1286,6 +1284,7 @@ run (const char *what, char *args)
pid = pexecute (argv[0], (char * const *) argv, program_name, temp_base,
&errmsg_fmt, &errmsg_arg, PEXECUTE_ONE | PEXECUTE_SEARCH);
free (argv);
+ free (temp_base);
if (pid == -1)
{
@@ -1323,22 +1322,14 @@ run (const char *what, char *args)
static void
scan_drectve_symbols (bfd *abfd)
{
- asection * s;
- int size;
- char * buf;
- char * p;
- char * e;
-
/* Look for .drectve's */
- s = bfd_get_section_by_name (abfd, DRECTVE_SECTION_NAME);
-
+ asection *s = bfd_get_section_by_name (abfd, DRECTVE_SECTION_NAME);
if (s == NULL)
return;
- size = bfd_section_size (s);
- buf = xmalloc (size);
-
- bfd_get_section_contents (abfd, s, buf, 0, size);
+ bfd_byte *buf;
+ if (!bfd_malloc_and_get_section (abfd, s, &buf))
+ return;
/* xgettext:c-format */
inform (_("Sucking in info from %s section in %s"),
@@ -1347,15 +1338,15 @@ scan_drectve_symbols (bfd *abfd)
/* Search for -export: strings. The exported symbols can optionally
have type tags (eg., -export:foo,data), so handle those as well.
Currently only data tag is supported. */
- p = buf;
- e = buf + size;
+ const char *p = (const char *) buf;
+ const char *e = (const char *) buf + bfd_section_size (s);
while (p < e)
{
if (p[0] == '-'
&& startswith (p, "-export:"))
{
- char * name;
- char * c;
+ const char *name;
+ char *c;
flagword flags = BSF_FUNCTION;
p += 8;
@@ -1373,15 +1364,13 @@ scan_drectve_symbols (bfd *abfd)
while (p < e && *p != ',' && *p != ' ' && *p != '-')
p++;
}
- c = xmalloc (p - name + 1);
- memcpy (c, name, p - name);
- c[p - name] = 0;
+ c = xmemdup (name, p - name, p - name + 1);
/* Advance over trailing quote. */
if (p < e && *p == '"')
++p;
if (p < e && *p == ',') /* found type tag. */
{
- char *tag_start = ++p;
+ const char *tag_start = ++p;
while (p < e && *p != ' ' && *p != '-')
p++;
if (startswith (tag_start, "data"))
@@ -1398,9 +1387,10 @@ scan_drectve_symbols (bfd *abfd)
int lead_at = (*c == '@') ;
char *exported_name = xstrdup (c + lead_at);
char *atsym = strchr (exported_name, '@');
- *atsym = '\0';
+ if (atsym)
+ *atsym = '\0';
/* Note: stdcall alias symbols can never be data. */
- def_exports (exported_name, xstrdup (c), -1, 0, 0, 0, 0, NULL);
+ def_exports (exported_name, c, -1, 0, 0, 0, 0, NULL);
}
}
else
@@ -1439,7 +1429,7 @@ scan_filtered_symbols (bfd *abfd, void *minisyms, long symcount,
&& *symbol_name == bfd_get_symbol_leading_char (abfd))
++symbol_name;
- def_exports (xstrdup (symbol_name) , 0, -1, 0, 0,
+ def_exports (symbol_name , 0, -1, 0, 0,
! (sym->flags & BSF_FUNCTION), 0, NULL);
if (add_stdcall_alias && strchr (symbol_name, '@'))
@@ -1447,9 +1437,10 @@ scan_filtered_symbols (bfd *abfd, void *minisyms, long symcount,
int lead_at = (*symbol_name == '@');
char *exported_name = xstrdup (symbol_name + lead_at);
char *atsym = strchr (exported_name, '@');
- *atsym = '\0';
+ if (atsym)
+ *atsym = '\0';
/* Note: stdcall alias symbols can never be data. */
- def_exports (exported_name, xstrdup (symbol_name),
+ def_exports (exported_name, symbol_name,
-1, 0, 0, 0, 0, NULL);
}
}
@@ -1468,17 +1459,13 @@ add_excludes (const char *new_excludes)
exclude_string = strtok (local_copy, ",:");
for (; exclude_string; exclude_string = strtok (NULL, ",:"))
{
- struct string_list *new_exclude;
-
- new_exclude = ((struct string_list *)
- xmalloc (sizeof (struct string_list)));
- new_exclude->string = (char *) xmalloc (strlen (exclude_string) + 2);
+ struct string_list *new_exclude = xmalloc (sizeof (*new_exclude));
/* Don't add a leading underscore for fastcall symbols. */
if (*exclude_string == '@')
- sprintf (new_exclude->string, "%s", exclude_string);
+ new_exclude->string = xstrdup (exclude_string);
else
- sprintf (new_exclude->string, "%s%s", leading_underscore,
- exclude_string);
+ new_exclude->string = xasprintf ("%s%s", leading_underscore,
+ exclude_string);
new_exclude->next = excludes;
excludes = new_exclude;
@@ -1918,13 +1905,8 @@ generate_idata_ofile (FILE *filvar)
static void
assemble_file (const char * source, const char * dest)
{
- char * cmd;
-
- cmd = xmalloc (strlen (ASM_SWITCHES) + strlen (as_flags)
- + strlen (source) + strlen (dest) + 50);
-
- sprintf (cmd, "%s %s -o %s %s", ASM_SWITCHES, as_flags, dest, source);
-
+ char *cmd = xasprintf ("%s %s -o %s %s",
+ ASM_SWITCHES, as_flags, dest, source);
run (as_name, cmd);
free (cmd);
}
@@ -2063,9 +2045,14 @@ gen_exp_file (void)
for (i = 0; (exp = d_exports_lexically[i]); i++)
{
if (!exp->noname || show_allnames)
- fprintf (f, "n%d: %s \"%s\"\n",
- exp->ordinal, ASM_TEXT,
- exp->its_name ? exp->its_name : xlate (exp->name));
+ {
+ const char *xname = (exp->its_name ? exp->its_name
+ : xlate (exp->name));
+ fprintf (f, "n%d: %s \"%s\"\n",
+ exp->ordinal, ASM_TEXT, xname);
+ if (!exp->its_name)
+ free ((char *) xname);
+ }
if (exp->forward != 0)
fprintf (f, "f%d: %s \"%s\"\n",
exp->forward, ASM_TEXT, exp->internal_name);
@@ -2085,7 +2072,7 @@ gen_exp_file (void)
fprintf (f, "\t.section .rdata\n");
for (dl = d_list; dl; dl = dl->next)
{
- char *p;
+ const char *p;
int l;
/* We don't output as ascii because there can
@@ -2190,6 +2177,7 @@ gen_exp_file (void)
fprintf (f, "\t%s\t0,0\t%s End\n", ASM_LONG, ASM_C);
#endif
}
+ free (copy);
}
generate_idata_ofile (f);
@@ -2208,33 +2196,27 @@ gen_exp_file (void)
inform (_("Generated exports file"));
}
-static const char *
+static char *
xlate (const char *name)
{
int lead_at = *name == '@';
int is_stdcall = !lead_at && strchr (name, '@') != NULL;
+ char *copy;
if (!lead_at && (add_underscore
|| (add_stdcall_underscore && is_stdcall)))
- {
- char *copy = xmalloc (strlen (name) + 2);
-
- copy[0] = '_';
- strcpy (copy + 1, name);
- name = copy;
- }
+ copy = xasprintf ("_%s", name);
+ else
+ copy = xstrdup (name + (killat ? lead_at : 0));
if (killat)
{
- char *p;
-
- name += lead_at;
/* PR 9766: Look for the last @ sign in the name. */
- p = strrchr (name, '@');
+ char *p = strrchr (copy, '@');
if (p && ISDIGIT (p[1]))
*p = 0;
}
- return name;
+ return copy;
}
typedef struct
@@ -2268,7 +2250,7 @@ typedef struct
#define DATA_SEC_FLAGS (SEC_ALLOC | SEC_LOAD | SEC_DATA)
#define BSS_SEC_FLAGS SEC_ALLOC
-static sinfo secdata[NSECS] =
+static sinfo secdata_plain[NSECS] =
{
INIT_SEC_DATA (TEXT, ".text", TEXT_SEC_FLAGS, 2),
INIT_SEC_DATA (DATA, ".data", DATA_SEC_FLAGS, 2),
@@ -2279,6 +2261,17 @@ static sinfo secdata[NSECS] =
INIT_SEC_DATA (IDATA6, ".idata$6", SEC_HAS_CONTENTS, 1)
};
+static sinfo secdata_delay[NSECS] =
+{
+ INIT_SEC_DATA (TEXT, ".text", TEXT_SEC_FLAGS, 2),
+ INIT_SEC_DATA (DATA, ".data", DATA_SEC_FLAGS, 2),
+ INIT_SEC_DATA (BSS, ".bss", BSS_SEC_FLAGS, 2),
+ INIT_SEC_DATA (IDATA7, ".didat$7", SEC_HAS_CONTENTS, 2),
+ INIT_SEC_DATA (IDATA5, ".didat$5", SEC_HAS_CONTENTS, 2),
+ INIT_SEC_DATA (IDATA4, ".didat$4", SEC_HAS_CONTENTS, 2),
+ INIT_SEC_DATA (IDATA6, ".didat$6", SEC_HAS_CONTENTS, 1)
+};
+
/* This is what we're trying to make. We generate the imp symbols with
both single and double underscores, for compatibility.
@@ -2315,7 +2308,7 @@ make_label (const char *prefix, const char *name)
}
static char *
-make_imp_label (const char *prefix, const char *name)
+make_imp_label (bfd *abfd, const char *prefix, const char *name)
{
int len;
char *copy;
@@ -2323,14 +2316,14 @@ make_imp_label (const char *prefix, const char *name)
if (name[0] == '@')
{
len = strlen (prefix) + strlen (name);
- copy = xmalloc (len + 1);
+ copy = bfd_xalloc (abfd, len + 1);
strcpy (copy, prefix);
strcat (copy, name);
}
else
{
len = strlen (ASM_PREFIX (name)) + strlen (prefix) + strlen (name);
- copy = xmalloc (len + 1);
+ copy = bfd_xalloc (abfd, len + 1);
strcpy (copy, prefix);
strcat (copy, ASM_PREFIX (name));
strcat (copy, name);
@@ -2341,6 +2334,7 @@ make_imp_label (const char *prefix, const char *name)
static bfd *
make_one_lib_file (export_type *exp, int i, int delay)
{
+ sinfo *const secdata = delay ? secdata_delay : secdata_plain;
char *outname = TMP_STUB;
size_t name_len = strlen (outname);
sprintf (outname + name_len - 7, "%05d.o", i);
@@ -2396,7 +2390,7 @@ make_one_lib_file (export_type *exp, int i, int delay)
if (! exp->data)
{
asymbol *exp_label = bfd_make_empty_symbol (abfd);
- exp_label->name = make_imp_label ("", exp->name);
+ exp_label->name = make_imp_label (abfd, "", exp->name);
exp_label->section = secdata[TEXT].sec;
exp_label->flags = BSF_GLOBAL;
exp_label->value = 0;
@@ -2415,14 +2409,14 @@ make_one_lib_file (export_type *exp, int i, int delay)
if (create_compat_implib)
{
iname = bfd_make_empty_symbol (abfd);
- iname->name = make_imp_label ("___imp", exp->name);
+ iname->name = make_imp_label (abfd, "___imp", exp->name);
iname->section = secdata[IDATA5].sec;
iname->flags = BSF_GLOBAL;
iname->value = 0;
}
asymbol *iname2 = bfd_make_empty_symbol (abfd);
- iname2->name = make_imp_label ("__imp_", exp->name);
+ iname2->name = make_imp_label (abfd, "__imp_", exp->name);
iname2->section = secdata[IDATA5].sec;
iname2->flags = BSF_GLOBAL;
iname2->value = 0;
@@ -2458,18 +2452,18 @@ make_one_lib_file (export_type *exp, int i, int delay)
unsigned int rpp_len;
si->size = HOW_JTAB_SIZE;
- si->data = xmalloc (HOW_JTAB_SIZE);
+ si->data = bfd_xalloc (abfd, HOW_JTAB_SIZE);
memcpy (si->data, HOW_JTAB, HOW_JTAB_SIZE);
/* Add the reloc into idata$5. */
- rel = xmalloc (sizeof (arelent));
+ rel = bfd_xalloc (abfd, sizeof (arelent));
rpp_len = delay ? 4 : 2;
if (machine == MAARCH64)
rpp_len++;
- rpp = xmalloc (sizeof (arelent *) * rpp_len);
+ rpp = bfd_xalloc (abfd, sizeof (arelent *) * rpp_len);
rpp[0] = rel;
rpp[1] = 0;
@@ -2478,11 +2472,11 @@ make_one_lib_file (export_type *exp, int i, int delay)
if (delay)
{
- rel2 = xmalloc (sizeof (arelent));
+ rel2 = bfd_xalloc (abfd, sizeof (arelent));
rpp[1] = rel2;
rel2->address = HOW_JTAB_ROFF2;
rel2->addend = 0;
- rel3 = xmalloc (sizeof (arelent));
+ rel3 = bfd_xalloc (abfd, sizeof (arelent));
rpp[2] = rel3;
rel3->address = HOW_JTAB_ROFF3;
rel3->addend = 0;
@@ -2502,7 +2496,7 @@ make_one_lib_file (export_type *exp, int i, int delay)
rel->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_AARCH64_ADR_HI21_NC_PCREL);
rel->sym_ptr_ptr = secdata[IDATA5].sympp;
- rel_add = xmalloc (sizeof (arelent));
+ rel_add = bfd_xalloc (abfd, sizeof (arelent));
rel_add->address = 4;
rel_add->howto = bfd_reloc_type_lookup (abfd, BFD_RELOC_AARCH64_ADD_LO12);
rel_add->sym_ptr_ptr = secdata[IDATA5].sympp;
@@ -2539,13 +2533,13 @@ make_one_lib_file (export_type *exp, int i, int delay)
if (delay)
{
si->size = create_for_pep ? 8 : 4;
- si->data = xmalloc (si->size);
+ si->data = bfd_xalloc (abfd, si->size);
sec->reloc_count = 1;
memset (si->data, 0, si->size);
/* Point after jmp [__imp_...] instruction. */
si->data[0] = 6;
- rel = xmalloc (sizeof (arelent));
- rpp = xmalloc (sizeof (arelent *) * 2);
+ rel = bfd_xalloc (abfd, sizeof (arelent));
+ rpp = bfd_xalloc (abfd, sizeof (arelent *) * 2);
rpp[0] = rel;
rpp[1] = 0;
rel->address = 0;
@@ -2566,7 +2560,7 @@ make_one_lib_file (export_type *exp, int i, int delay)
if (create_for_pep)
{
- si->data = xmalloc (8);
+ si->data = bfd_xalloc (abfd, 8);
si->size = 8;
if (exp->noname)
{
@@ -2583,8 +2577,8 @@ make_one_lib_file (export_type *exp, int i, int delay)
{
sec->reloc_count = 1;
memset (si->data, 0, si->size);
- rel = xmalloc (sizeof (arelent));
- rpp = xmalloc (sizeof (arelent *) * 2);
+ rel = bfd_xalloc (abfd, sizeof (arelent));
+ rpp = bfd_xalloc (abfd, sizeof (arelent *) * 2);
rpp[0] = rel;
rpp[1] = 0;
rel->address = 0;
@@ -2596,7 +2590,7 @@ make_one_lib_file (export_type *exp, int i, int delay)
}
else
{
- si->data = xmalloc (4);
+ si->data = bfd_xalloc (abfd, 4);
si->size = 4;
if (exp->noname)
@@ -2610,8 +2604,8 @@ make_one_lib_file (export_type *exp, int i, int delay)
{
sec->reloc_count = 1;
memset (si->data, 0, si->size);
- rel = xmalloc (sizeof (arelent));
- rpp = xmalloc (sizeof (arelent *) * 2);
+ rel = bfd_xalloc (abfd, sizeof (arelent));
+ rpp = bfd_xalloc (abfd, sizeof (arelent *) * 2);
rpp[0] = rel;
rpp[1] = 0;
rel->address = 0;
@@ -2630,28 +2624,25 @@ make_one_lib_file (export_type *exp, int i, int delay)
why it did that, and it does not match what I see
in programs compiled with the MS tools. */
int idx = exp->hint;
- if (exp->its_name)
- si->size = strlen (exp->its_name) + 3;
- else
- si->size = strlen (xlate (exp->import_name)) + 3;
- si->data = xmalloc (si->size);
- memset (si->data, 0, si->size);
+ const char *xname = (exp->its_name ? exp->its_name
+ : xlate (exp->import_name));
+ si->size = strlen (xname) + 3;
+ si->data = bfd_xalloc (abfd, si->size);
si->data[0] = idx & 0xff;
si->data[1] = idx >> 8;
- if (exp->its_name)
- strcpy ((char *) si->data + 2, exp->its_name);
- else
- strcpy ((char *) si->data + 2, xlate (exp->import_name));
+ memcpy (si->data + 2, xname, si->size - 2);
+ if (!exp->its_name)
+ free ((char *) xname);
}
break;
case IDATA7:
if (delay)
break;
si->size = 4;
- si->data = xmalloc (4);
+ si->data = bfd_xalloc (abfd, 4);
memset (si->data, 0, si->size);
- rel = xmalloc (sizeof (arelent));
- rpp = xmalloc (sizeof (arelent *) * 2);
+ rel = bfd_xalloc (abfd, sizeof (arelent));
+ rpp = bfd_xalloc (abfd, sizeof (arelent *) * 2);
rpp[0] = rel;
rel->address = 0;
rel->addend = 0;
@@ -2807,7 +2798,7 @@ make_delay_head (void)
/* Output the delay import descriptor */
fprintf (f, "\n%s DELAY_IMPORT_DESCRIPTOR\n", ASM_C);
- fprintf (f, ".section\t.text$2\n");
+ fprintf (f, ".section\t.didat$2\n");
fprintf (f, "%s __DELAY_IMPORT_DESCRIPTOR_%s\n", ASM_GLOBAL,imp_name_lab);
fprintf (f, "__DELAY_IMPORT_DESCRIPTOR_%s:\n", imp_name_lab);
fprintf (f, "\t%s 1\t%s grAttrs\n", ASM_LONG, ASM_C);
@@ -2835,27 +2826,29 @@ make_delay_head (void)
if (!no_idata5)
{
- fprintf (f, "\t.section\t.idata$5\n");
- /* NULL terminating list. */
- if (create_for_pep)
- fprintf (f, "\t%s\t0\n\t%s\t0\n", ASM_LONG, ASM_LONG);
- else
- fprintf (f, "\t%s\t0\n", ASM_LONG);
+ fprintf (f, "\t.section\t.didat$5\n");
+ if (use_nul_prefixed_import_tables)
+ {
+ if (create_for_pep)
+ fprintf (f, "\t%s\t0\n\t%s\t0\n", ASM_LONG, ASM_LONG);
+ else
+ fprintf (f, "\t%s\t0\n", ASM_LONG);
+ }
fprintf (f, "__IAT_%s:\n", imp_name_lab);
}
if (!no_idata4)
{
- fprintf (f, "\t.section\t.idata$4\n");
- fprintf (f, "\t%s\t0\n", ASM_LONG);
- if (create_for_pep)
- fprintf (f, "\t%s\t0\n", ASM_LONG);
- fprintf (f, "\t.section\t.idata$4\n");
+ fprintf (f, "\t.section\t.didat$4\n");
+ if (use_nul_prefixed_import_tables)
+ {
+ fprintf (f, "\t%s\t0\n", ASM_LONG);
+ if (create_for_pep)
+ fprintf (f, "\t%s\t0\n", ASM_LONG);
+ }
fprintf (f, "__INT_%s:\n", imp_name_lab);
}
- fprintf (f, "\t.section\t.idata$2\n");
-
fclose (f);
assemble_file (TMP_HEAD_S, TMP_HEAD_O);
@@ -2921,6 +2914,57 @@ make_tail (void)
return abfd;
}
+static bfd *
+make_delay_tail (void)
+{
+ FILE *f = fopen (TMP_TAIL_S, FOPEN_WT);
+ bfd *abfd;
+
+ if (f == NULL)
+ {
+ fatal (_("failed to open temporary tail file: %s"), TMP_TAIL_S);
+ return NULL;
+ }
+
+ temp_file_to_remove[TEMP_TAIL_FILE] = TMP_TAIL_S;
+
+ if (!no_idata4)
+ {
+ fprintf (f, "\t.section\t.didat$4\n");
+ if (create_for_pep)
+ fprintf (f, "\t%s\t0\n\t%s\t0\n", ASM_LONG, ASM_LONG);
+ else
+ fprintf (f, "\t%s\t0\n", ASM_LONG); /* NULL terminating list. */
+ }
+
+ if (!no_idata5)
+ {
+ fprintf (f, "\t.section\t.didat$5\n");
+ if (create_for_pep)
+ fprintf (f, "\t%s\t0\n\t%s\t0\n", ASM_LONG, ASM_LONG);
+ else
+ fprintf (f, "\t%s\t0\n", ASM_LONG); /* NULL terminating list. */
+ }
+
+ fprintf (f, "\t.section\t.didat$7\n");
+ fprintf (f, "\t%s\t__%s_iname\n", ASM_GLOBAL, imp_name_lab);
+ fprintf (f, "__%s_iname:\t%s\t\"%s\"\n",
+ imp_name_lab, ASM_TEXT, dll_name);
+
+ fclose (f);
+
+ assemble_file (TMP_TAIL_S, TMP_TAIL_O);
+
+ abfd = bfd_openr (TMP_TAIL_O, HOW_BFD_READ_TARGET);
+ if (abfd == NULL)
+ /* xgettext:c-format */
+ fatal (_("failed to open temporary tail file: %s: %s"),
+ TMP_TAIL_O, bfd_get_errmsg ());
+
+ temp_file_to_remove[TEMP_TAIL_O_FILE] = TMP_TAIL_O;
+ return abfd;
+}
+
static void
gen_lib_file (int delay)
{
@@ -2956,12 +3000,13 @@ gen_lib_file (int delay)
if (delay)
{
ar_head = make_delay_head ();
+ ar_tail = make_delay_tail();
}
else
{
ar_head = make_head ();
+ ar_tail = make_tail();
}
- ar_tail = make_tail();
if (ar_head == NULL || ar_tail == NULL)
return;
@@ -2980,7 +3025,7 @@ gen_lib_file (int delay)
export_type alias_exp;
assert (i < PREFIX_ALIAS_BASE);
- alias_exp.name = make_imp_label (ext_prefix_alias, exp->name);
+ alias_exp.name = make_imp_label (outarch, ext_prefix_alias, exp->name);
alias_exp.internal_name = exp->internal_name;
alias_exp.its_name = exp->its_name;
alias_exp.import_name = exp->name;
@@ -3125,12 +3170,12 @@ dll_name_list_free (dll_name_list_type * list)
static void
dll_name_list_free_contents (dll_name_list_node_type * entry)
{
- if (entry)
+ while (entry)
{
- if (entry->next)
- dll_name_list_free_contents (entry->next);
+ dll_name_list_node_type *next = entry->next;
free (entry->dllname);
free (entry);
+ entry = next;
}
}
@@ -3644,6 +3689,7 @@ mangle_defs (void)
d_export_vec[i]->next = d_exports;
d_exports = d_export_vec[i];
}
+ free (d_export_vec);
/* Build list in alpha order. */
d_exports_lexically = (export_type **)
@@ -4023,8 +4069,7 @@ main (int ac, char **av)
const char *input = imp_name ? imp_name : delayimp_name;
if (input && strlen (input) + sizeof ("_snnnnn.o") - 1 <= NAME_MAX)
{
- tmp_prefix = xmalloc (strlen (input) + 2);
- sprintf (tmp_prefix, "%s_", input);
+ tmp_prefix = xasprintf ("%s_", input);
for (i = 0; tmp_prefix[i]; i++)
if (!ISALNUM (tmp_prefix[i]))
tmp_prefix[i] = '_';
@@ -4049,7 +4094,7 @@ main (int ac, char **av)
if (!ISALNUM (*p))
*p = '_';
}
- head_label = make_label("_head_", imp_name_lab);
+ head_label = make_label ("_head_", imp_name_lab);
gen_lib_file (0);
}
@@ -4073,7 +4118,7 @@ main (int ac, char **av)
if (!ISALNUM (*p))
*p = '_';
}
- head_label = make_label("__tailMerge_", imp_name_lab);
+ head_label = make_label ("__tailMerge_", imp_name_lab);
gen_lib_file (1);
}
}
diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi
index 9c0c7de..4543341 100644
--- a/binutils/doc/binutils.texi
+++ b/binutils/doc/binutils.texi
@@ -879,7 +879,7 @@ symbol is defined anywhere, the common symbols are treated as undefined
references.
@ifclear man
For more details on common symbols, see the discussion of
---warn-common in @ref{Options,,Linker options,ld.info,The GNU linker}.
+--warn-common in @ref{Options,,Linker options,ld,The GNU linker}.
@end ifclear
The lower case @var{c} character is used when the symbol is in a
special section for small commons.
@@ -1362,7 +1362,7 @@ between any two formats may not work as expected.
deletes them afterward. @command{objcopy} uses @sc{bfd} to do all its
translation work; it has access to all the formats described in @sc{bfd}
and thus is able to recognize most formats without being told
-explicitly. @xref{BFD,,BFD,ld.info,Using LD}.
+explicitly. @xref{BFD,,BFD,ld,Using LD}.
@command{objcopy} can be used to generate S-records by using an output
target of @samp{srec} (e.g., use @samp{-O srec}).
@@ -2146,9 +2146,6 @@ Sets the section alignment field in the PE header - if one is present
in the binary. Sections in memory will always begin at addresses
which are a multiple of this number. Defaults to 0x1000.
-Note - this option will also set the alignment field in each section's
-flags.
-
Note - if a section's LMA or VMA addresses are no longer aligned, and
those addresses have not been set via the @option{--set-section-lma} or
@option{--set-section-vma} options, and the file has been fully
@@ -2432,11 +2429,11 @@ with ctags tool.
Display the assembler mnemonics for the machine instructions from the
input file. This option only disassembles those sections which are
expected to contain instructions. If the optional @var{symbol}
-argument is given, then display the assembler mnemonics starting at
-@var{symbol}. If @var{symbol} is a function name then disassembly
-will stop at the end of the function, otherwise it will stop when the
-next symbol is encountered. If there are no matches for @var{symbol}
-then nothing will be displayed.
+argument is given (perhaps multiple times), then display the assembler
+mnemonics starting at (all the) @var{symbol}. If @var{symbol} is a
+function name then disassembly will stop at the end of the function,
+otherwise it will stop when the next symbol is encountered. If there
+are no matches for any @var{symbol} then nothing will be displayed.
Note if the @option{--dwarf=follow-links} option is enabled
then any symbol tables in linked debug info files will be read in and
@@ -2701,6 +2698,31 @@ If you disassemble without giving a CPU selection, a default will be
chosen from information gleaned by BFD from the object files headers,
but the result again may not be as you expect.
+For RISC-V, the following options are supported:
+
+@table @code
+@item max
+Disassemble without checking architecture string. This is a best effort mode, so
+for overlapping ISA extensions the first match (possibly incorrect in a given
+context) will be used to decode the instruction. It's useful, if the ELF file
+doesn't expose ISA string, preventing automatic ISA subset deduction, and the
+default fallback ISA string (@code{rv64gc}) doesn't cover all instructions in
+the binary.
+
+@item numeric
+Print numeric register names, rather than ABI names (e.g., print @code{x2}
+instead of @code{sp}).
+
+@item no-aliases
+Disassemble only into canonical instructions. For example, compressed
+instructions will be represented as such (@code{addi sp,sp,-128} will be
+@code{c.addi16sp sp,-128}).
+
+@item priv-spec=@var{SPEC}
+Print the CSR according to the chosen privilege spec version (e.g.,
+@code{1.10}, @code{1.11}, @code{1.12}, @code{1.13}).
+@end table
+
For MIPS, this option controls the printing of instruction mnemonic
names and register names in disassembled instructions. Multiple
selections from the following may be specified as a comma separated
@@ -2817,6 +2839,9 @@ libraries. As for @option{-r}, if used with @option{-d} or
@option{-D}, the relocations are printed interspersed with the
disassembly.
+Note: @command{objdump} does not support displaying RELR type
+relocations. These can be displayed by the @command{readelf} program.
+
@item -s
@itemx --full-contents
@cindex sections, full contents
@@ -2886,7 +2911,7 @@ after it has previously been enabled then use
@item --disassembler-color=off
@itemx --disassembler-color=terminal
@itemx --disassembler-color=on|color|colour
-@itemx --disassembler-color=extened|extended-color|extened-colour
+@itemx --disassembler-color=extended|extended-color|extended-colour
Enables or disables the use of colored syntax highlighting in
disassembly output. The default behaviour is determined via a
configure time option. Note, not all architectures support colored
@@ -3541,6 +3566,7 @@ strip [@option{-F} @var{bfdname} |@option{--target=}@var{bfdname}]
[@option{--keep-section-symbols}]
[@option{--keep-file-symbols}]
[@option{--only-keep-debug}]
+ [@option{--plugin} @var{name}]
[@option{-v} |@option{--verbose}] [@option{-V}|@option{--version}]
[@option{--help}] [@option{--info}]
@var{objfile}@dots{}
@@ -3800,6 +3826,26 @@ currently only supports the presence of one filename containing
debugging information, not multiple filenames on a one-per-object-file
basis.
+@item --plugin @var{name}
+@cindex plugins
+Load the plugin called @var{name} to add support for extra target
+types. This option is only available if the toolchain has been built
+with plugin support enabled.
+
+If @option{--plugin} is not provided, but plugin support has been
+enabled then @command{strip} iterates over the files in
+@file{$@{libdir@}/bfd-plugins} in alphabetic order and the first
+plugin that claims the object in question is used.
+
+Please note that this plugin search directory is @emph{not} the one
+used by @command{ld}'s @option{-plugin} option. In order to make
+@command{strip} use the linker plugin it must be copied into the
+@file{$@{libdir@}/bfd-plugins} directory. For GCC based compilations
+the linker plugin is called @file{liblto_plugin.so.0.0.0}. For Clang
+based compilations it is called @file{LLVMgold.so}. The GCC plugin
+is always backwards compatible with earlier versions, so it is
+sufficient to just copy the newest one.
+
@item -V
@itemx --version
Show the version number for @command{strip}.
diff --git a/binutils/dwarf-mode.el b/binutils/dwarf-mode.el
index fd6c7c4..3de7d42 100644
--- a/binutils/dwarf-mode.el
+++ b/binutils/dwarf-mode.el
@@ -1,6 +1,6 @@
;;; dwarf-mode.el --- Browser for DWARF information. -*-lexical-binding:t-*-
-;; Version: 1.8
+;; Version: 1.9
;; Copyright (C) 2012-2025 Free Software Foundation, Inc.
@@ -30,7 +30,7 @@
("DW_AT_[a-zA-Z_]*name\\s *:\\(?:\\s *(.*):\\)?\\s *\\(.*\\)\\s *$"
(1 font-lock-function-name-face))
- ("Compilation Unit @ offset 0x[0-9a-f]+"
+ ("Compilation Unit @ offset \\(0x[0-9a-f]+\\|0\\)"
(0 font-lock-string-face))
))
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 8e004ce..5b3ece5 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -489,7 +489,7 @@ process_extended_line_op (unsigned char * data,
printf (_("set Discriminator to %" PRIu64 "\n"), val);
break;
- /* HP extensions. */
+ /* HP extensions. */
case DW_LNE_HP_negate_is_UV_update:
printf ("DW_LNE_HP_negate_is_UV_update\n");
break;
@@ -753,7 +753,7 @@ fetch_indexed_offset (uint64_t idx,
offset_of_offset, section->name);
return -1;
}
-
+
return base_address + byte_get (section->start + offset_of_offset, offset_size);
}
@@ -1053,7 +1053,7 @@ find_and_process_abbrev_set (struct dwarf_section *section,
/* PR 17531: file:4bcd9ce9. */
warn (_("Debug info is corrupted, abbrev size (%#" PRIx64 ")"
" is larger than abbrev section size (%#" PRIx64 ")\n"),
- abbrev_base + abbrev_size, section->size);
+ abbrev_base + abbrev_size, section->size);
return NULL;
}
if (abbrev_offset >= abbrev_size)
@@ -1577,8 +1577,8 @@ decode_location_expression (unsigned char * data,
/* PR 17531: file: 0cc9cd00. */
if (uvalue > (size_t) (end - data))
uvalue = end - data;
- printf ("%s: (", (op == DW_OP_entry_value ? "DW_OP_entry_value"
- : "DW_OP_GNU_entry_value"));
+ printf ("%s: (", (op == DW_OP_entry_value
+ ? "DW_OP_entry_value" : "DW_OP_GNU_entry_value"));
if (decode_location_expression (data, pointer_size, offset_size,
dwarf_version, uvalue,
cu_offset, section))
@@ -1590,8 +1590,8 @@ decode_location_expression (unsigned char * data,
case DW_OP_GNU_const_type:
READ_ULEB (uvalue, data, end);
printf ("%s: <%#" PRIx64 "> ",
- (op == DW_OP_const_type ? "DW_OP_const_type"
- : "DW_OP_GNU_const_type"),
+ (op == DW_OP_const_type
+ ? "DW_OP_const_type" : "DW_OP_GNU_const_type"),
cu_offset + uvalue);
SAFE_BYTE_GET_AND_INC (uvalue, data, 1, end);
data = display_block (data, uvalue, end, ' ');
@@ -1600,8 +1600,8 @@ decode_location_expression (unsigned char * data,
case DW_OP_GNU_regval_type:
READ_ULEB (uvalue, data, end);
printf ("%s: %" PRIu64 " (%s)",
- (op == DW_OP_regval_type ? "DW_OP_regval_type"
- : "DW_OP_GNU_regval_type"),
+ (op == DW_OP_regval_type
+ ? "DW_OP_regval_type" : "DW_OP_GNU_regval_type"),
uvalue, regname (uvalue, 1));
READ_ULEB (uvalue, data, end);
printf (" <%#" PRIx64 ">", cu_offset + uvalue);
@@ -1610,8 +1610,8 @@ decode_location_expression (unsigned char * data,
case DW_OP_GNU_deref_type:
SAFE_BYTE_GET_AND_INC (uvalue, data, 1, end);
printf ("%s: %" PRId64,
- (op == DW_OP_deref_type ? "DW_OP_deref_type"
- : "DW_OP_GNU_deref_type"),
+ (op == DW_OP_deref_type
+ ? "DW_OP_deref_type" : "DW_OP_GNU_deref_type"),
uvalue);
READ_ULEB (uvalue, data, end);
printf (" <%#" PRIx64 ">", cu_offset + uvalue);
@@ -1627,8 +1627,8 @@ decode_location_expression (unsigned char * data,
case DW_OP_GNU_reinterpret:
READ_ULEB (uvalue, data, end);
printf ("%s <%#" PRIx64 ">",
- (op == DW_OP_reinterpret ? "DW_OP_reinterpret"
- : "DW_OP_GNU_reinterpret"),
+ (op == DW_OP_reinterpret
+ ? "DW_OP_reinterpret" : "DW_OP_GNU_reinterpret"),
uvalue ? cu_offset + uvalue : uvalue);
break;
case DW_OP_GNU_parameter_ref:
@@ -3617,17 +3617,17 @@ skip_attribute (unsigned long form,
case DW_FORM_flag:
case DW_FORM_data1:
case DW_FORM_strx1:
- case DW_FORM_addrx1:
+ case DW_FORM_addrx1:
inc = 1;
break;
case DW_FORM_ref2:
case DW_FORM_data2:
case DW_FORM_strx2:
- case DW_FORM_addrx2:
+ case DW_FORM_addrx2:
inc = 2;
break;
case DW_FORM_strx3:
- case DW_FORM_addrx3:
+ case DW_FORM_addrx3:
inc = 3;
break;
case DW_FORM_ref_sup4:
@@ -3643,7 +3643,7 @@ skip_attribute (unsigned long form,
case DW_FORM_ref_sig8:
inc = 8;
break;
- case DW_FORM_data16:
+ case DW_FORM_data16:
inc = 16;
break;
case DW_FORM_sdata:
@@ -3807,13 +3807,11 @@ process_debug_info (struct dwarf_section * section,
}
if ((do_loc || do_debug_loc || do_debug_ranges || do_debug_info)
- && num_debug_info_entries == 0
- && ! do_types)
+ && alloc_num_debug_info_entries == 0
+ && !do_types)
{
-
/* Then allocate an array to hold the information. */
- debug_information = (debug_info *) cmalloc (num_units,
- sizeof (* debug_information));
+ debug_information = cmalloc (num_units, sizeof (*debug_information));
if (debug_information == NULL)
{
error (_("Not enough memory for a debug info array of %u entries\n"),
@@ -4242,15 +4240,15 @@ process_debug_info (struct dwarf_section * section,
break;
case DW_TAG_subprogram:
need_base_address = 0;
- if (level <= frame_base_level)
- /* Don't reset that for nested subprogram. */
- have_frame_base = 0;
+ if (level <= frame_base_level)
+ /* Don't reset that for nested subprogram. */
+ have_frame_base = 0;
break;
}
- debug_info *debug_info_p =
- (debug_information && unit < alloc_num_debug_info_entries)
- ? debug_information + unit : NULL;
+ debug_info *debug_info_p = ((debug_information
+ && unit < alloc_num_debug_info_entries)
+ ? debug_information + unit : NULL);
assert (!debug_info_p
|| (debug_info_p->num_loc_offsets
@@ -4332,7 +4330,7 @@ process_debug_info (struct dwarf_section * section,
default:
assert (0);
- }
+ }
if (entry->children)
++level;
@@ -7326,7 +7324,7 @@ display_debug_loc (struct dwarf_section *section, void *file)
unsigned int *array = NULL;
const char *suffix = strrchr (section->name, '.');
bool is_dwo = false;
- int is_loclists = strstr (section->name, "debug_loclists") != NULL;
+ bool is_loclists = strstr (section->name, "debug_loclists") != NULL;
uint64_t next_header_offset = 0;
if (suffix && strcmp (suffix, ".dwo") == 0)
@@ -7416,8 +7414,7 @@ display_debug_loc (struct dwarf_section *section, void *file)
for (; j < num; j++)
{
- if (last_offset >
- debug_information [i].loc_offsets [j]
+ if (last_offset > debug_information [i].loc_offsets [j]
|| (last_offset == debug_information [i].loc_offsets [j]
&& last_view > debug_information [i].loc_views [j]))
{
@@ -7450,9 +7447,18 @@ display_debug_loc (struct dwarf_section *section, void *file)
uint64_t base_address;
unsigned int k;
int has_frame_base;
- debug_info *debug_info_p = debug_information + i;
- uint32_t offset_count;
-
+ debug_info *debug_info_p = debug_information + i;
+ uint32_t offset_count;
+
+ /* .debug_loclists section is loaded into debug_information as
+ DWARF-5 debug info and .debug_loc section is loaded into
+ debug_information as pre-DWARF-5 debug info. When dumping
+ .debug_loc section, we should only process pre-DWARF-5 debug
+ info in debug_information. When dumping .debug_loclists
+ section, we should only process DWARF-5 info in
+ debug_information. */
+ if ((debug_info_p->dwarf_version >= 5) != is_loclists)
+ continue;
if (!locs_sorted)
{
@@ -7466,7 +7472,7 @@ display_debug_loc (struct dwarf_section *section, void *file)
/* .debug_loclists has a per-unit header.
Update start if we are detecting it. */
- if (debug_info_p->dwarf_version == 5)
+ if (debug_info_p->dwarf_version >= 5)
{
j = locs_sorted ? 0 : array [0];
@@ -7503,10 +7509,10 @@ display_debug_loc (struct dwarf_section *section, void *file)
j = locs_sorted ? k : array[k];
if (k
&& (debug_info_p->loc_offsets [locs_sorted
- ? k - 1 : array [k - 1]]
+ ? k - 1 : array [k - 1]]
== debug_info_p->loc_offsets [j])
&& (debug_info_p->loc_views [locs_sorted
- ? k - 1 : array [k - 1]]
+ ? k - 1 : array [k - 1]]
== debug_info_p->loc_views [j]))
continue;
has_frame_base = debug_info_p->have_frame_base [j];
@@ -8084,7 +8090,7 @@ range_entry_compar (const void *ap, const void *bp)
return (a > b) - (b > a);
}
-static void
+static unsigned char *
display_debug_ranges_list (unsigned char * start,
unsigned char * finish,
unsigned int pointer_size,
@@ -8131,6 +8137,8 @@ display_debug_ranges_list (unsigned char * start,
putchar ('\n');
}
+
+ return start;
}
static unsigned char *
@@ -8352,6 +8360,7 @@ display_debug_ranges (struct dwarf_section *section,
{
unsigned char *start = section->start;
unsigned char *last_start = start;
+ unsigned char *last_end;
uint64_t bytes = section->size;
unsigned char *section_begin = start;
unsigned char *finish = start + bytes;
@@ -8370,7 +8379,7 @@ display_debug_ranges (struct dwarf_section *section,
}
introduce (section, false);
-
+
if (load_debug_info (file) == 0)
{
warn (_("Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"),
@@ -8415,14 +8424,11 @@ display_debug_ranges (struct dwarf_section *section,
qsort (range_entries, num_range_list, sizeof (*range_entries),
range_entry_compar);
- if (dwarf_check != 0 && range_entries[0].ranges_offset != 0)
- warn (_("Range lists in %s section start at %#" PRIx64 "\n"),
- section->name, range_entries[0].ranges_offset);
-
putchar ('\n');
if (!is_rnglists)
printf (_(" Offset Begin End\n"));
+ last_end = NULL;
for (i = 0; i < num_range_list; i++)
{
struct range_entry *range_entry = &range_entries[i];
@@ -8460,7 +8466,13 @@ display_debug_ranges (struct dwarf_section *section,
}
next = section_begin + offset; /* Offset is from the section start, the base has already been added. */
-
+
+ if (i == 0)
+ {
+ last_end = section_begin;
+ if (is_rnglists)
+ last_end += 2 * offset_size - 4 + 2 + 1 + 1 + 4;
+ }
/* If multiple DWARF entities reference the same range then we will
have multiple entries in the `range_entries' list for the same
offset. Thanks to the sort above these will all be consecutive in
@@ -8470,11 +8482,15 @@ display_debug_ranges (struct dwarf_section *section,
continue;
last_offset = offset;
- if (dwarf_check != 0 && i > 0)
+ if (dwarf_check != 0)
{
if (start < next)
- warn (_("There is a hole [%#tx - %#tx] in %s section.\n"),
- start - section_begin, next - section_begin, section->name);
+ {
+ if (last_end != next)
+ warn (_("There is a hole [%#tx - %#tx] in %s section.\n"),
+ last_end - section_begin, next - section_begin,
+ section->name);
+ }
else if (start > next)
{
if (next == last_start)
@@ -8488,11 +8504,14 @@ display_debug_ranges (struct dwarf_section *section,
last_start = next;
if (is_rnglists)
- display_debug_rnglists_list
- (start, finish, pointer_size, offset, base_address, debug_info_p->addr_base);
+ last_end
+ = display_debug_rnglists_list
+ (start, finish, pointer_size, offset, base_address,
+ debug_info_p->addr_base);
else
- display_debug_ranges_list
- (start, finish, pointer_size, offset, base_address);
+ last_end
+ = display_debug_ranges_list
+ (start, finish, pointer_size, offset, base_address);
}
/* Display trailing empty (or unreferenced) compile units, if any. */
@@ -9270,7 +9289,7 @@ decode_eh_encoding (unsigned int value)
Upon success, returns the read value and sets * RETURN_LEN to
the number of bytes read.
Upon failure returns zero and sets * RETURN_LEN to 0.
-
+
Note: does not perform any application transformations to the value. */
static uint64_t
@@ -9344,7 +9363,6 @@ get_encoded_eh_value (unsigned int encoding,
fail:
* return_len = 0;
return 0;
-
}
static uint64_t
@@ -9417,7 +9435,7 @@ display_eh_frame_hdr (struct dwarf_section *section,
uint64_t offset_eh_frame_ptr = encoded_eh_offset (ptr_enc, section, 4, eh_frame_ptr);
if (offset_eh_frame_ptr != eh_frame_ptr)
printf (_(" (offset: %#" PRIx64 ")"), offset_eh_frame_ptr);
-
+
printf ("\n");
start += len;
@@ -9432,7 +9450,7 @@ display_eh_frame_hdr (struct dwarf_section *section,
warn (_("The count field format should be absolute, not relative to an address\n"));
return 0;
}
-
+
uint64_t fde_count = get_encoded_eh_value (count_enc, start, end, & len);
if (len == 0)
{
@@ -9524,7 +9542,7 @@ display_debug_frames (struct dwarf_section *section,
if (length == 0)
{
printf ("\n%08tx ZERO terminator\n\n",
- saved_start - section_start);
+ saved_start - section_start);
/* Skip any zero terminators that directly follow.
A corrupt section size could have loaded a whole
slew of zero filled memory bytes. eg
@@ -10833,6 +10851,7 @@ display_debug_names (struct dwarf_section *section, void *file)
uint64_t abbrev_tag;
uint64_t dwarf_tag;
const struct abbrev_lookup_entry *entry;
+ uint64_t this_entry = entryptr - entry_pool;
READ_ULEB (abbrev_tag, entryptr, unit_end);
if (tagno == -1)
@@ -10845,9 +10864,9 @@ display_debug_names (struct dwarf_section *section, void *file)
if (abbrev_tag == 0)
break;
if (tagno >= 0)
- printf ("%s<%" PRIu64 ">",
+ printf ("%s<%#" PRIx64 "><%" PRIu64 ">",
(tagno == 0 && second_abbrev_tag == 0 ? " " : "\n\t"),
- abbrev_tag);
+ this_entry, abbrev_tag);
for (entry = abbrev_lookup;
entry < abbrev_lookup + abbrev_lookup_used;
@@ -11015,7 +11034,7 @@ display_gdb_index (struct dwarf_section *section,
if (version < 6)
warn (_("Version 5 does not include inlined functions.\n"));
if (version < 7)
- warn (_("Version 6 does not include symbol attributes.\n"));
+ warn (_("Version 6 does not include symbol attributes.\n"));
/* Version 7 indices generated by Gold have bad type unit references,
PR binutils/15021. But we don't know if the index was generated by
Gold or not, so to avoid worrying users with gdb-generated indices
@@ -11248,24 +11267,24 @@ get_DW_SECT_short_name (unsigned int dw_sect)
switch (dw_sect)
{
- case DW_SECT_INFO:
- return "info";
- case DW_SECT_TYPES:
- return "types";
- case DW_SECT_ABBREV:
- return "abbrev";
- case DW_SECT_LINE:
- return "line";
- case DW_SECT_LOC:
- return "loc";
- case DW_SECT_STR_OFFSETS:
- return "str_off";
- case DW_SECT_MACINFO:
- return "macinfo";
- case DW_SECT_MACRO:
- return "macro";
- default:
- break;
+ case DW_SECT_INFO:
+ return "info";
+ case DW_SECT_TYPES:
+ return "types";
+ case DW_SECT_ABBREV:
+ return "abbrev";
+ case DW_SECT_LINE:
+ return "line";
+ case DW_SECT_LOC:
+ return "loc";
+ case DW_SECT_STR_OFFSETS:
+ return "str_off";
+ case DW_SECT_MACINFO:
+ return "macinfo";
+ case DW_SECT_MACRO:
+ return "macro";
+ default:
+ break;
}
snprintf (buf, sizeof (buf), "%d", dw_sect);
@@ -11427,7 +11446,7 @@ process_cu_tu_index (struct dwarf_section *section, int do_display)
{
printf (_(" Offset table\n"));
printf (" slot %-16s ",
- is_tu_index ? _("signature") : _("dwo_id"));
+ is_tu_index ? _("signature") : _("dwo_id"));
}
else
{
@@ -11514,7 +11533,7 @@ process_cu_tu_index (struct dwarf_section *section, int do_display)
printf ("\n");
printf (_(" Size table\n"));
printf (" slot %-16s ",
- is_tu_index ? _("signature") : _("dwo_id"));
+ is_tu_index ? _("signature") : _("dwo_id"));
}
for (j = 0; j < ncols; j++)
@@ -11567,7 +11586,7 @@ process_cu_tu_index (struct dwarf_section *section, int do_display)
if (dw_sect >= DW_SECT_MAX)
warn (_("Overlarge Dwarf section index detected: %u\n"), dw_sect);
else
- this_set [row - 1].section_sizes [dw_sect] = val;
+ this_set [row - 1].section_sizes [dw_sect] = val;
}
}
@@ -11583,7 +11602,7 @@ process_cu_tu_index (struct dwarf_section *section, int do_display)
printf (_(" Unsupported version (%d)\n"), version);
if (do_display)
- printf ("\n");
+ printf ("\n");
return true;
}
@@ -11653,7 +11672,7 @@ display_debug_not_supported (struct dwarf_section *section,
void *file ATTRIBUTE_UNUSED)
{
printf (_("Displaying the debug contents of section %s is not yet supported.\n"),
- section->name);
+ section->name);
return 1;
}
diff --git a/binutils/elfedit.c b/binutils/elfedit.c
index 1178d8a..43c319f 100644
--- a/binutils/elfedit.c
+++ b/binutils/elfedit.c
@@ -105,7 +105,18 @@ update_gnu_property (const char *file_name, FILE *file)
if (map == MAP_FAILED)
{
error (_("%s: mmap () failed\n"), file_name);
- return 0;
+ return 1;
+ }
+
+ if ((elf_header.e_ident[EI_CLASS] == ELFCLASS32
+ ? sizeof (Elf32_External_Phdr)
+ : sizeof (Elf64_External_Phdr)) != elf_header.e_phentsize
+ || elf_header.e_phoff > (size_t) st_buf.st_size
+ || (elf_header.e_phnum * (size_t) elf_header.e_phentsize
+ > st_buf.st_size - elf_header.e_phoff))
+ {
+ error (_("%s: can't read program headers\n"), file_name);
+ return 1;
}
phdrs = xmalloc (elf_header.e_phnum * sizeof (*phdrs));
diff --git a/binutils/is-ranlib.c b/binutils/is-ranlib.c
index 4a04adb..47296eb 100644
--- a/binutils/is-ranlib.c
+++ b/binutils/is-ranlib.c
@@ -17,6 +17,5 @@
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
-/* Linked with ar.o to flag that this program is 'ranlib' (not 'ar'). */
-
-int is_ranlib = 1;
+#define is_ranlib 1
+#include "ar.c"
diff --git a/binutils/is-strip.c b/binutils/is-strip.c
index 26aeaf0..4ac1035 100644
--- a/binutils/is-strip.c
+++ b/binutils/is-strip.c
@@ -17,7 +17,5 @@
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
-/* Linked with objcopy.o to flag that this program is 'strip' (not
- 'objcopy'). */
-
-int is_strip = 1;
+#define is_strip 1
+#include "objcopy.c"
diff --git a/binutils/nm.c b/binutils/nm.c
index 4e86057..a5d5631 100644
--- a/binutils/nm.c
+++ b/binutils/nm.c
@@ -79,7 +79,15 @@ struct extended_symbol_info
#define SYM_STAB_DESC(sym) (sym->sinfo->stab_desc)
#define SYM_STAB_OTHER(sym) (sym->sinfo->stab_other)
#define SYM_SIZE(sym) \
- (sym->elfinfo ? sym->elfinfo->internal_elf_sym.st_size: sym->ssize)
+ (sym->elfinfo \
+ && sym->elfinfo->internal_elf_sym.st_size \
+ ? sym->elfinfo->internal_elf_sym.st_size \
+ : sym->coffinfo \
+ && ISFCN (sym->coffinfo->native->u.syment.n_type) \
+ && sym->coffinfo->native->u.syment.n_numaux \
+ && sym->coffinfo->native[1].u.auxent.x_sym.x_misc.x_fsize \
+ ? sym->coffinfo->native[1].u.auxent.x_sym.x_misc.x_fsize \
+ : sym->ssize)
/* The output formatting functions. */
static void print_object_filename_bsd (const char *);
@@ -793,10 +801,7 @@ filter_symbols (bfd *abfd, bool is_dynamic, void *minisyms,
if (sym == NULL)
continue;
- if (sym->name != NULL
- && sym->name[0] == '_'
- && sym->name[1] == '_'
- && strcmp (sym->name + (sym->name[2] == '_'), "__gnu_lto_slim") == 0
+ if (bfd_lto_slim_symbol_p (abfd, sym->name)
&& report_plugin_err)
{
report_plugin_err = false;
@@ -1036,9 +1041,9 @@ size_forward2 (const void *P_x, const void *P_y)
return sorters[0][reverse_sort] (x->minisym, y->minisym);
}
-/* Sort the symbols by size. ELF provides a size but for other formats
- we have to make a guess by assuming that the difference between the
- address of a symbol and the address of the next higher symbol is the
+/* Sort the symbols by size. ELF and COFF may provide a size but for other
+ formats we have to make a guess by assuming that the difference between
+ the address of a symbol and the address of the next higher symbol is the
size. */
static long
@@ -1081,6 +1086,8 @@ sort_symbols_by_size (bfd *abfd, bool is_dynamic, void *minisyms,
asection *sec;
bfd_vma sz;
asymbol *temp;
+ const elf_symbol_type *elfsym;
+ const coff_symbol_type *coffsym;
if (from + size < fromend)
{
@@ -1100,8 +1107,15 @@ sort_symbols_by_size (bfd *abfd, bool is_dynamic, void *minisyms,
we can't rely on that information for the symbol size. Ditto for
bfd/section.c:global_syms like *ABS*. */
if ((sym->flags & (BSF_SECTION_SYM | BSF_SYNTHETIC)) == 0
- && bfd_get_flavour (abfd) == bfd_target_elf_flavour)
- sz = ((elf_symbol_type *) sym)->internal_elf_sym.st_size;
+ && (elfsym = elf_symbol_from (sym)) != NULL
+ && elfsym->internal_elf_sym.st_size != 0)
+ sz = elfsym->internal_elf_sym.st_size;
+ else if ((sym->flags & (BSF_SECTION_SYM | BSF_SYNTHETIC)) == 0
+ && (coffsym = coff_symbol_from (sym)) != NULL
+ && ISFCN (coffsym->native->u.syment.n_type)
+ && coffsym->native->u.syment.n_numaux != 0
+ && coffsym->native[1].u.auxent.x_sym.x_misc.x_fsize != 0)
+ sz = coffsym->native[1].u.auxent.x_sym.x_misc.x_fsize;
else if ((sym->flags & (BSF_SECTION_SYM | BSF_SYNTHETIC)) == 0
&& bfd_is_com_section (sec))
sz = sym->value;
diff --git a/binutils/not-ranlib.c b/binutils/not-ranlib.c
index 5fc0d6a..17da296 100644
--- a/binutils/not-ranlib.c
+++ b/binutils/not-ranlib.c
@@ -17,6 +17,5 @@
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
-/* Linked with ar.o to flag that this program is 'ar' (not 'ranlib'). */
-
-int is_ranlib = 0;
+#define is_ranlib 0
+#include "ar.c"
diff --git a/binutils/not-strip.c b/binutils/not-strip.c
index 5c72848..9e39da4 100644
--- a/binutils/not-strip.c
+++ b/binutils/not-strip.c
@@ -17,7 +17,5 @@
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
-/* Linked with objcopy.o to flag that this program is 'objcopy' (not
- 'strip'). */
-
-int is_strip = 0;
+#define is_strip 0
+#include "objcopy.c"
diff --git a/binutils/objcopy.c b/binutils/objcopy.c
index e2e6bd7..366e107 100644
--- a/binutils/objcopy.c
+++ b/binutils/objcopy.c
@@ -30,6 +30,8 @@
#include "coff/internal.h"
#include "libcoff.h"
#include "safe-ctype.h"
+#include "plugin-api.h"
+#include "plugin.h"
/* FIXME: See bfd/peXXigen.c for why we include an architecture specific
header in generic PE code. */
@@ -165,6 +167,11 @@ static struct section_list *change_sections;
/* TRUE if some sections are to be removed. */
static bool sections_removed;
+#if BFD_SUPPORTS_PLUGINS
+/* TRUE if all GCC LTO sections are to be removed. */
+static bool lto_sections_removed;
+#endif
+
/* TRUE if only some sections are to be copied. */
static bool sections_copied;
@@ -359,6 +366,7 @@ enum command_line_switch
OPTION_RENAME_SECTION,
OPTION_REVERSE_BYTES,
OPTION_PE_SECTION_ALIGNMENT,
+ OPTION_PLUGIN,
OPTION_SET_SECTION_FLAGS,
OPTION_SET_SECTION_ALIGNMENT,
OPTION_SET_START,
@@ -402,6 +410,7 @@ static struct option strip_options[] =
{"output-file", required_argument, 0, 'o'},
{"output-format", required_argument, 0, 'O'}, /* Obsolete */
{"output-target", required_argument, 0, 'O'},
+ {"plugin", required_argument, 0, OPTION_PLUGIN},
{"preserve-dates", no_argument, 0, 'p'},
{"remove-section", required_argument, 0, 'R'},
{"remove-relocations", required_argument, 0, OPTION_REMOVE_RELOCS},
@@ -533,7 +542,9 @@ extern char *program_name;
/* This flag distinguishes between strip and objcopy:
1 means this is 'strip'; 0 means this is 'objcopy'.
-1 means if we should use argv[0] to decide. */
+#ifndef is_strip
extern int is_strip;
+#endif
/* The maximum length of an S record. This variable is defined in srec.c
and can be modified by the --srec-len parameter. */
@@ -756,6 +767,10 @@ strip_usage (FILE *stream, int exit_status)
--info List object formats & architectures supported\n\
-o <file> Place stripped output into <file>\n\
"));
+#if BFD_SUPPORTS_PLUGINS
+ fprintf (stream, _("\
+ --plugin NAME Load the specified plugin\n"));
+#endif
list_supported_targets (program_name, stream);
if (REPORT_BUGS_TO[0] && exit_status == 0)
@@ -1914,20 +1929,11 @@ add_redefine_syms_file (const char *filename)
Returns TRUE upon success, FALSE otherwise. */
static bool
-copy_unknown_object (bfd *ibfd, bfd *obfd)
+copy_unknown_file (bfd *ibfd, bfd *obfd, off_t size, unsigned int mode)
{
char *cbuf;
bfd_size_type tocopy;
- off_t size;
- struct stat buf;
-
- if (bfd_stat_arch_elt (ibfd, &buf) != 0)
- {
- bfd_nonfatal_message (NULL, ibfd, NULL, NULL);
- return false;
- }
- size = buf.st_size;
if (size < 0)
{
non_fatal (_("stat returns negative size for `%s'"),
@@ -1972,11 +1978,31 @@ copy_unknown_object (bfd *ibfd, bfd *obfd)
/* We should at least to be able to read it back when copying an
unknown object in an archive. */
- chmod (bfd_get_filename (obfd), buf.st_mode | S_IRUSR);
+ chmod (bfd_get_filename (obfd), mode | S_IRUSR);
free (cbuf);
return true;
}
+/* Copy unknown object file archive member IBFD onto OBFD.
+ Returns TRUE upon success, FALSE otherwise. */
+
+static bool
+copy_unknown_object (bfd *ibfd, bfd *obfd)
+{
+ struct stat buf;
+
+ if (bfd_stat_arch_elt (ibfd, &buf) != 0)
+ {
+ bfd_nonfatal_message (NULL, ibfd, NULL, NULL);
+ return false;
+ }
+
+ if (!copy_unknown_file (ibfd, obfd, buf.st_size, buf.st_mode))
+ return false;
+
+ return true;
+}
+
typedef struct objcopy_internal_note
{
Elf_Internal_Note note;
@@ -2832,7 +2858,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
if (pe_file_alignment != (bfd_vma) -1)
pe->pe_opthdr.FileAlignment = pe_file_alignment;
- else
+ else if (!is_strip)
pe_file_alignment = PE_DEF_FILE_ALIGNMENT;
if (pe_heap_commit != (bfd_vma) -1)
@@ -2846,7 +2872,7 @@ copy_object (bfd *ibfd, bfd *obfd, const bfd_arch_info_type *input_arch)
if (pe_section_alignment != (bfd_vma) -1)
pe->pe_opthdr.SectionAlignment = pe_section_alignment;
- else
+ else if (!is_strip)
pe_section_alignment = PE_DEF_SECTION_ALIGNMENT;
if (pe_stack_commit != (bfd_vma) -1)
@@ -3742,6 +3768,12 @@ copy_archive (bfd *ibfd, bfd *obfd, const char *output_target,
goto cleanup_and_exit;
}
+#if BFD_SUPPORTS_PLUGINS
+ /* Copy LTO IR file as unknown object. */
+ if (bfd_plugin_target_p (this_element->xvec))
+ ok_object = false;
+ else
+#endif
if (ok_object)
{
ok = copy_object (this_element, output_element, input_arch);
@@ -3843,6 +3875,7 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
char **obj_matching;
char **core_matching;
off_t size = get_file_size (input_filename);
+ const char *target = input_target;
if (size < 1)
{
@@ -3853,9 +3886,16 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
return;
}
+#if BFD_SUPPORTS_PLUGINS
+ /* Enable LTO plugin in strip unless all LTO sections should be
+ removed. */
+ if (is_strip && !target && !lto_sections_removed)
+ target = "plugin";
+#endif
+
/* To allow us to do "strip *" without dying on the first
non-object file, failures are nonfatal. */
- ibfd = bfd_openr (input_filename, input_target);
+ ibfd = bfd_openr (input_filename, target);
if (ibfd == NULL || bfd_stat (ibfd, in_stat) != 0)
{
bfd_nonfatal_message (input_filename, NULL, NULL, NULL);
@@ -3972,17 +4012,31 @@ copy_file (const char *input_filename, const char *output_filename, int ofd,
return;
}
- if (! copy_object (ibfd, obfd, input_arch))
- status = 1;
-
- /* PR 17512: file: 0f15796a.
- If the file could not be copied it may not be in a writeable
- state. So use bfd_close_all_done to avoid the possibility of
- writing uninitialised data into the file. */
- if (! (status ? bfd_close_all_done (obfd) : bfd_close (obfd)))
+#if BFD_SUPPORTS_PLUGINS
+ if (bfd_plugin_target_p (ibfd->xvec))
{
- status = 1;
- bfd_nonfatal_message (output_filename, NULL, NULL, NULL);
+ /* Copy LTO IR file as unknown file. */
+ if (!copy_unknown_file (ibfd, obfd, in_stat->st_size,
+ in_stat->st_mode))
+ status = 1;
+ else if (!bfd_close_all_done (obfd))
+ status = 1;
+ }
+ else
+#endif
+ {
+ if (! copy_object (ibfd, obfd, input_arch))
+ status = 1;
+
+ /* PR 17512: file: 0f15796a.
+ If the file could not be copied it may not be in a writeable
+ state. So use bfd_close_all_done to avoid the possibility of
+ writing uninitialised data into the file. */
+ if (! (status ? bfd_close_all_done (obfd) : bfd_close (obfd)))
+ {
+ status = 1;
+ bfd_nonfatal_message (output_filename, NULL, NULL, NULL);
+ }
}
if (!bfd_close (ibfd))
@@ -4112,29 +4166,6 @@ power_of_two (bfd_vma val)
return result;
}
-static unsigned int
-image_scn_align (unsigned int alignment)
-{
- switch (alignment)
- {
- case 8192: return IMAGE_SCN_ALIGN_8192BYTES;
- case 4096: return IMAGE_SCN_ALIGN_4096BYTES;
- case 2048: return IMAGE_SCN_ALIGN_2048BYTES;
- case 1024: return IMAGE_SCN_ALIGN_1024BYTES;
- case 512: return IMAGE_SCN_ALIGN_512BYTES;
- case 256: return IMAGE_SCN_ALIGN_256BYTES;
- case 128: return IMAGE_SCN_ALIGN_128BYTES;
- case 64: return IMAGE_SCN_ALIGN_64BYTES;
- case 32: return IMAGE_SCN_ALIGN_32BYTES;
- case 16: return IMAGE_SCN_ALIGN_16BYTES;
- case 8: return IMAGE_SCN_ALIGN_8BYTES;
- case 4: return IMAGE_SCN_ALIGN_4BYTES;
- case 2: return IMAGE_SCN_ALIGN_2BYTES;
- case 1: return IMAGE_SCN_ALIGN_1BYTES;
- default: return 0;
- }
-}
-
/* Create a section in OBFD with the same
name and attributes as ISECTION in IBFD. */
@@ -4300,24 +4331,9 @@ setup_section (bfd *ibfd, sec_ptr isection, bfd *obfd)
if (p != NULL)
alignment = p->alignment;
else if (pe_section_alignment != (bfd_vma) -1
- && bfd_get_flavour (ibfd) == bfd_target_coff_flavour
- && bfd_get_flavour (obfd) == bfd_target_coff_flavour)
- {
- alignment = power_of_two (pe_section_alignment);
-
- if (coff_section_data (ibfd, isection))
- {
- struct pei_section_tdata * pei_data = pei_section_data (ibfd, isection);
-
- if (pei_data != NULL)
- {
- /* Set the alignment flag of the input section, which will
- be copied to the output section later on. */
- pei_data->pe_flags &= ~IMAGE_SCN_ALIGN_POWER_BIT_MASK;
- pei_data->pe_flags |= image_scn_align (pe_section_alignment);
- }
- }
- }
+ && bfd_get_flavour (obfd) == bfd_target_coff_flavour
+ && bfd_pei_p (obfd))
+ alignment = power_of_two (pe_section_alignment);
else
alignment = bfd_section_alignment (isection);
@@ -4873,6 +4889,10 @@ strip_main (int argc, char *argv[])
char *output_file = NULL;
bool merge_notes_set = false;
+#if BFD_SUPPORTS_PLUGINS
+ bfd_plugin_set_program_name (argv[0]);
+#endif
+
while ((c = getopt_long (argc, argv, "I:O:F:K:MN:R:o:sSpdgxXHhVvwDU",
strip_options, (int *) 0)) != EOF)
{
@@ -4963,6 +4983,13 @@ strip_main (int argc, char *argv[])
case OPTION_KEEP_SECTION_SYMBOLS:
keep_section_symbols = true;
break;
+ case OPTION_PLUGIN: /* --plugin */
+#if BFD_SUPPORTS_PLUGINS
+ bfd_plugin_set_plugin (optarg);
+#else
+ fatal (_("sorry - this program has been built without plugin support\n"));
+#endif
+ break;
case 0:
/* We've been given a long option. */
break;
@@ -5007,6 +5034,14 @@ strip_main (int argc, char *argv[])
if (output_target == NULL)
output_target = input_target;
+#if BFD_SUPPORTS_PLUGINS
+ /* Check if all GCC LTO sections should be removed, assuming all LTO
+ sections will be removed with -R .gnu.lto_.*. * Remove .gnu.lto_.*
+ sections will also remove .gnu.debuglto_. sections. */
+ lto_sections_removed = !!find_section_list (".gnu.lto_.*", false,
+ SECTION_CONTEXT_REMOVE);
+#endif
+
i = optind;
if (i == argc
|| (output_file != NULL && (i + 1) < argc))
@@ -5979,6 +6014,11 @@ copy_main (int argc, char *argv[])
case OPTION_FILE_ALIGNMENT:
pe_file_alignment = parse_vma (optarg, "--file-alignment");
+ if (power_of_two (pe_file_alignment) == -1)
+ {
+ non_fatal (_("--file-alignment argument is not a power of two: %s - ignoring"), optarg);
+ pe_file_alignment = (bfd_vma) -1;
+ }
break;
case OPTION_HEAP:
@@ -6222,9 +6262,11 @@ main (int argc, char *argv[])
fatal (_("fatal error: libbfd ABI mismatch"));
set_default_bfd_target ();
+#ifndef is_strip
if (is_strip < 0)
{
- int i = strlen (program_name);
+ size_t i = strlen (program_name);
+
#ifdef HAVE_DOS_BASED_FILE_SYSTEM
/* Drop the .exe suffix, if any. */
if (i > 4 && FILENAME_CMP (program_name + i - 4, ".exe") == 0)
@@ -6235,6 +6277,7 @@ main (int argc, char *argv[])
#endif
is_strip = (i >= 5 && FILENAME_CMP (program_name + i - 5, "strip") == 0);
}
+#endif /* is_strip */
create_symbol_htabs ();
xatexit (delete_symbol_htabs);
diff --git a/binutils/objdump.c b/binutils/objdump.c
index ebe586e..43cfb79 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -132,7 +132,6 @@ static const char *prefix; /* --prefix */
static int prefix_strip; /* --prefix-strip */
static size_t prefix_length;
static bool unwind_inlines; /* --inlines. */
-static const char * disasm_sym; /* Disassembly start symbol. */
static const char * source_comment; /* --source_comment. */
static bool visualize_jumps = false; /* --visualize-jumps. */
static bool color_output = false; /* --visualize-jumps=color. */
@@ -141,6 +140,12 @@ static int process_links = false; /* --process-links. */
static int show_all_symbols; /* --show-all-symbols. */
static bool decompressed_dumps = false; /* -Z, --decompress. */
+static struct symbol_entry
+ {
+ const char *name;
+ struct symbol_entry *next;
+ } *disasm_sym_list; /* Disassembly start symbol(s). */
+
static enum color_selection
{
on_if_terminal_output,
@@ -187,7 +192,7 @@ struct objdump_disasm_info
bool require_sec;
disassembler_ftype disassemble_fn;
arelent *reloc;
- const char *symbol;
+ struct symbol_entry *symbol_list;
};
/* Architecture to disassemble for, or default if NULL. */
@@ -1107,6 +1112,28 @@ remove_useless_symbols (asymbol **symbols, long count)
return out_ptr - symbols;
}
+/* Return true iff SEC1 and SEC2 are the same section.
+ This would just be a simple pointer comparison except that one of
+ the sections might be from a separate debug info file. */
+
+static bool
+is_same_section (const asection *sec1, const asection *sec2)
+{
+ if (sec1 == sec2)
+ return true;
+ if (sec1->owner == sec2->owner
+ || sec1->owner == NULL
+ || sec2->owner == NULL)
+ return false;
+ /* OK, so we have one section in a debug info file. (Or they both
+ are, but the way this function is currently used sec1 will be in
+ a normal object.) Compare names, vma and size. This ought to
+ cover all the usual cases. */
+ return (sec1->vma == sec2->vma
+ && sec1->size == sec2->size
+ && strcmp (sec1->name, sec2->name) == 0);
+}
+
static const asection *compare_section;
/* Sort symbols into value order. */
@@ -1131,10 +1158,9 @@ compare_symbols (const void *ap, const void *bp)
/* Prefer symbols from the section currently being disassembled.
Don't sort symbols from other sections by section, since there
- isn't much reason to prefer one section over another otherwise.
- See sym_ok comment for why we compare by section name. */
- as = strcmp (compare_section->name, a->section->name) == 0;
- bs = strcmp (compare_section->name, b->section->name) == 0;
+ isn't much reason to prefer one section over another otherwise. */
+ as = is_same_section (compare_section, a->section);
+ bs = is_same_section (compare_section, b->section);
if (as && !bs)
return -1;
if (!as && bs)
@@ -1353,26 +1379,8 @@ sym_ok (bool want_section,
asection *sec,
struct disassemble_info *inf)
{
- if (want_section)
- {
- /* NB: An object file can have different sections with the same
- section name. Compare compare section pointers if they have
- the same owner. */
- if (sorted_syms[place]->section->owner == sec->owner
- && sorted_syms[place]->section != sec)
- return false;
-
- /* Note - we cannot just compare section pointers because they could
- be different, but the same... Ie the symbol that we are trying to
- find could have come from a separate debug info file. Under such
- circumstances the symbol will be associated with a section in the
- debug info file, whilst the section we want is in a normal file.
- So the section pointers will be different, but the section names
- will be the same. */
- if (strcmp (bfd_section_name (sorted_syms[place]->section),
- bfd_section_name (sec)) != 0)
- return false;
- }
+ if (want_section && !is_same_section (sec, sorted_syms[place]->section))
+ return false;
return inf->symbol_is_valid (sorted_syms[place], inf);
}
@@ -3895,7 +3903,7 @@ disassemble_section (bfd *abfd, asection *section, void *inf)
the symbol we have just found. Then print the symbol and find the
next symbol on. Repeat until we have disassembled the entire section
or we have reached the end of the address range we are interested in. */
- do_print = paux->symbol == NULL;
+ do_print = paux->symbol_list == NULL;
loop_until = stop_offset_reached;
while (addr_offset < stop_offset)
@@ -3935,9 +3943,9 @@ disassemble_section (bfd *abfd, asection *section, void *inf)
pinfo->symtab_pos = -1;
}
- /* If we are only disassembling from a specific symbol,
+ /* If we are only disassembling from specific symbols,
check to see if we should start or stop displaying. */
- if (sym && paux->symbol)
+ if (sym && paux->symbol_list)
{
if (do_print)
{
@@ -3954,15 +3962,13 @@ disassemble_section (bfd *abfd, asection *section, void *inf)
break;
case next_sym:
- /* FIXME: There is an implicit assumption here
- that the name of sym is different from
- paux->symbol. */
if (! bfd_is_local_label (abfd, sym))
do_print = false;
break;
}
}
- else
+
+ if (!do_print)
{
const char * name = bfd_asymbol_name (sym);
char * alloc = NULL;
@@ -3976,8 +3982,16 @@ disassemble_section (bfd *abfd, asection *section, void *inf)
}
/* We are not currently printing. Check to see
- if the current symbol matches the requested symbol. */
- if (streq (name, paux->symbol)
+ if the current symbol matches any of the requested symbols. */
+ for (const struct symbol_entry *ent = paux->symbol_list;
+ ent;
+ ent = ent->next)
+ if (streq (name, ent->name))
+ {
+ do_print = true;
+ break;
+ }
+ if (do_print
&& bfd_asymbol_value (sym) <= addr)
{
do_print = true;
@@ -4174,7 +4188,7 @@ disassemble_data (bfd *abfd)
disasm_info.dynrelbuf = NULL;
disasm_info.dynrelcount = 0;
aux.reloc = NULL;
- aux.symbol = disasm_sym;
+ aux.symbol_list = disasm_sym_list;
disasm_info.print_address_func = objdump_print_address;
disasm_info.symbol_at_address_func = objdump_symbol_at_address;
@@ -4192,12 +4206,12 @@ disassemble_data (bfd *abfd)
abfd->arch_info = inf;
}
+ const struct bfd_target *old_xvec = NULL;
if (endian != BFD_ENDIAN_UNKNOWN)
{
- struct bfd_target *xvec;
-
- xvec = (struct bfd_target *) xmalloc (sizeof (struct bfd_target));
- memcpy (xvec, abfd->xvec, sizeof (struct bfd_target));
+ struct bfd_target *xvec = xmalloc (sizeof (*xvec));
+ old_xvec = abfd->xvec;
+ memcpy (xvec, old_xvec, sizeof (*xvec));
xvec->byteorder = endian;
abfd->xvec = xvec;
}
@@ -4211,8 +4225,7 @@ disassemble_data (bfd *abfd)
non_fatal (_("can't disassemble for architecture %s\n"),
bfd_printable_arch_mach (bfd_get_arch (abfd), 0));
exit_status = 1;
- free (sorted_syms);
- return;
+ goto out;
}
disasm_info.flavour = bfd_get_flavour (abfd);
@@ -4266,8 +4279,15 @@ disassemble_data (bfd *abfd)
free (disasm_info.dynrelbuf);
disasm_info.dynrelbuf = NULL;
- free (sorted_syms);
disassemble_free_target (&disasm_info);
+ out:
+ free (sorted_syms);
+ sorted_syms = NULL;
+ if (old_xvec)
+ {
+ free ((void *) abfd->xvec);
+ abfd->xvec = old_xvec;
+ }
}
static bool
@@ -4940,7 +4960,10 @@ dump_ctf (bfd *abfd, const char *sect_name, const char *parent_name,
printf (_("Contents of CTF section %s:\n"), sanitize_string (sect_name));
while ((fp = ctf_archive_next (ctfa, &i, &name, 0, &err)) != NULL)
- dump_ctf_archive_member (fp, name, parent, member++);
+ {
+ dump_ctf_archive_member (fp, name, parent, member++);
+ ctf_dict_close (fp);
+ }
if (err != ECTF_NEXT_END)
{
dump_ctf_errs (NULL);
@@ -5473,7 +5496,7 @@ dump_reloc_set (bfd *abfd, asection *sec, arelent **relpp, long relcount)
static void
dump_relocs_in_section (bfd *abfd,
asection *section,
- void *dummy ATTRIBUTE_UNUSED)
+ void *counter)
{
arelent **relpp;
long relcount;
@@ -5522,41 +5545,71 @@ dump_relocs_in_section (bfd *abfd,
printf ("\n\n");
}
free (relpp);
+
+ * ((unsigned int *) counter) += 1;
+}
+
+static void
+is_relr_section (bfd *abfd ATTRIBUTE_UNUSED,
+ asection * section, void *data)
+{
+ if (section->flags & SEC_LINKER_CREATED)
+ return;
+
+ struct bfd_elf_section_data * esd = elf_section_data (section);
+ if (esd == NULL)
+ return;
+
+ if (esd->this_hdr.sh_type == SHT_RELR)
+ * ((bool *) data) = true;
+}
+
+static bool
+contains_relr_relocs (bfd *abfd)
+{
+ if (bfd_get_flavour (abfd) != bfd_target_elf_flavour)
+ return false;
+
+ bool result = false;
+
+ bfd_map_over_sections (abfd, is_relr_section, &result);
+
+ return result;
}
static void
dump_relocs (bfd *abfd)
{
- bfd_map_over_sections (abfd, dump_relocs_in_section, NULL);
+ unsigned int counter = 0;
+
+ bfd_map_over_sections (abfd, dump_relocs_in_section, & counter);
+
+ if (counter == 0 && contains_relr_relocs (abfd))
+ {
+ printf (_("%s: This file does not contain any ordinary relocations.\n"),
+ sanitize_string (bfd_get_filename (abfd)));
+
+ printf (_("%s: It does however contain RELR relocations. These can be displayed by the readelf program\n"),
+ sanitize_string (bfd_get_filename (abfd)));
+ }
}
static void
dump_dynamic_relocs (bfd *abfd)
{
long relsize;
- arelent **relpp;
+ arelent **relpp = NULL;
long relcount;
relsize = bfd_get_dynamic_reloc_upper_bound (abfd);
printf ("DYNAMIC RELOCATION RECORDS");
- if (relsize == 0)
- {
- printf (" (none)\n\n");
- return;
- }
+ if (relsize <= 0)
+ goto none;
- if (relsize < 0)
- {
- relpp = NULL;
- relcount = relsize;
- }
- else
- {
- relpp = (arelent **) xmalloc (relsize);
- relcount = bfd_canonicalize_dynamic_reloc (abfd, relpp, dynsyms);
- }
+ relpp = (arelent **) xmalloc (relsize);
+ relcount = bfd_canonicalize_dynamic_reloc (abfd, relpp, dynsyms);
if (relcount < 0)
{
@@ -5566,7 +5619,7 @@ dump_dynamic_relocs (bfd *abfd)
my_bfd_nonfatal (_("error message was"));
}
else if (relcount == 0)
- printf (" (none)\n\n");
+ goto none;
else
{
printf ("\n");
@@ -5574,6 +5627,18 @@ dump_dynamic_relocs (bfd *abfd)
printf ("\n\n");
}
free (relpp);
+ return;
+
+ none:
+ printf (" (none)\n\n");
+
+ if (contains_relr_relocs (abfd))
+ printf (_("%s: contains RELR relocations which are not displayed by %s.\n\
+These can be displayed by the readelf program instead.\n"),
+ sanitize_string (bfd_get_filename (abfd)),
+ program_name);
+
+ free (relpp);
}
/* Creates a table of paths, to search for source files. */
@@ -6183,7 +6248,14 @@ main (int argc, char **argv)
case 'd':
disassemble = true;
seenflag = true;
- disasm_sym = optarg;
+ if (optarg)
+ {
+ struct symbol_entry *sym = xmalloc (sizeof (*sym));
+
+ sym->name = optarg;
+ sym->next = disasm_sym_list;
+ disasm_sym_list = sym;
+ }
break;
case 'z':
disassemble_zeroes = true;
diff --git a/binutils/po/ca.po b/binutils/po/ca.po
index 7deb1eb..3a62dbb 100644
--- a/binutils/po/ca.po
+++ b/binutils/po/ca.po
@@ -1,37 +1,39 @@
# Translation of binutils to Catalan
# Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
-# Walter Garcia-Fontes <walter.garcia@upf.edu>, 2015.
+# Walter Garcia-Fontes <walter.garcia@upf.edu>, 2024.
msgid ""
msgstr ""
-"Project-Id-Version: binutils 2.31.90\n"
-"Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
-"POT-Creation-Date: 2019-01-19 16:32+0000\n"
-"PO-Revision-Date: 2019-05-17 15:09+0200\n"
+"Project-Id-Version: binutils 2.43.90\n"
+"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
+"POT-Creation-Date: 2025-01-19 12:20+0000\n"
+"PO-Revision-Date: 2025-03-12 16:02+0100\n"
"Last-Translator: Walter Garcia-Fontes <walter.garcia@upf.edu>\n"
"Language-Team: Catalan <ca@dodds.net>\n"
"Language: ca\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Poedit 3.5\n"
-#: addr2line.c:87
+#: addr2line.c:89
#, c-format
msgid "Usage: %s [option(s)] [addr(s)]\n"
msgstr "Forma d'ús: %s [opcions(ns)] [adreça(es)]\n"
-#: addr2line.c:88
+#: addr2line.c:90
#, c-format
msgid " Convert addresses into line number/file name pairs.\n"
-msgstr " Converteix les adreces a parelles número de línia/nom de fitxer.\n"
+msgstr " Converteix les adreces a parelles nombre de línia/nom de fitxer.\n"
-#: addr2line.c:89
+#: addr2line.c:91
#, c-format
msgid " If no addresses are specified on the command line, they will be read from stdin\n"
msgstr "Si no s'especifiquen adreces a la línia d'ordres, es llegiran l'entrada estàndard\n"
-#: addr2line.c:90
+#: addr2line.c:92
#, c-format
msgid ""
" The options are:\n"
@@ -69,10 +71,10 @@ msgstr ""
" -h --help Mostra aquesta informació\n"
" -v --version Mostra la versió del programa\n"
-#: addr2line.c:109 ar.c:340 ar.c:377 coffdump.c:473 dlltool.c:3990
-#: dllwrap.c:518 elfedit.c:906 objcopy.c:666 objcopy.c:719 readelf.c:4474
-#: size.c:97 srconv.c:1706 strings.c:727 sysdump.c:648 windmc.c:227
-#: windres.c:688
+#: addr2line.c:111 ar.c:354 ar.c:391 coffdump.c:470 dlltool.c:3724
+#: dllwrap.c:518 elfedit.c:976 objcopy.c:706 objcopy.c:762 readelf.c:6328
+#: size.c:110 srconv.c:1705 strings.c:1361 sysdump.c:655 windmc.c:227
+#: windres.c:690
#, c-format
msgid "Report bugs to %s\n"
msgstr "Informa dels errors a %s\n"
@@ -82,7 +84,7 @@ msgstr "Informa dels errors a %s\n"
#. file name pair that is about to be printed below. Eg:
#.
#. foo at 123:bar.c
-#: addr2line.c:313
+#: addr2line.c:379
#, c-format
msgid " at "
msgstr " a "
@@ -93,227 +95,247 @@ msgstr " a "
#. by the next iteration of the while loop. Eg:
#.
#. 123:bar.c (inlined by) 456:main.c
-#: addr2line.c:354
+#: addr2line.c:419
#, c-format
msgid " (inlined by) "
msgstr " (inserit per) "
-#: addr2line.c:387
+#: addr2line.c:453
#, c-format
msgid "%s: cannot get addresses from archive"
msgstr "%s: no es poden obtenir les adreces del fitxer"
-#: addr2line.c:404
+#: addr2line.c:472
#, c-format
msgid "%s: cannot find section %s"
msgstr "%s: no es pot trobar la secció %s"
-#: addr2line.c:448 ar.c:722 dlltool.c:3508 nm.c:1668 objcopy.c:5670
-#: objdump.c:4036 size.c:141 strings.c:291 windmc.c:960 windres.c:816
+#: addr2line.c:514 ar.c:750 dlltool.c:3240 nm.c:1981 objcopy.c:6222
+#: objdump.c:5982 size.c:152 strings.c:356 windmc.c:958 windres.c:816
msgid "fatal error: libbfd ABI mismatch"
-msgstr ""
+msgstr "error fatal: libbfd ABI no coincideix"
-#: addr2line.c:475 nm.c:1694 objdump.c:4083
+#: addr2line.c:541 nm.c:2007 objdump.c:6034 readelf.c:6635
#, c-format
msgid "unknown demangling style `%s'"
msgstr "estil desconegut de descodificació `%s'"
-#: ar.c:260
+#: ar.c:270
#, c-format
msgid "no entry %s in archive\n"
msgstr "no hi ha una entrada %s al fitxer\n"
-#: ar.c:274
+#: ar.c:284
#, c-format
msgid "Usage: %s [emulation options] [-]{dmpqrstx}[abcDfilMNoOPsSTuvV] [--plugin <name>] [member-name] [count] archive-file file...\n"
msgstr "Forma d'ús: %s [opcions d'emulació] [-]{dmpqrstx}[abcDfilMNoPsSTuvV] [--plugin <nom>] [nom-del-membre] [nombre] fitxer-arxiu fitxer...\n"
-#: ar.c:280
+#: ar.c:290
#, c-format
msgid "Usage: %s [emulation options] [-]{dmpqrstx}[abcDfilMNoOPsSTuvV] [member-name] [count] archive-file file...\n"
msgstr "Forma d'ús: %s [opcions d'emulació] [-]{dmpqrstx}[abcDfilMNoPsSTuvV] [--plugin <nom>] [nom-del-membre] [nombre] fitxer-arxiu fitxer...\n"
-#: ar.c:288
+#: ar.c:298
#, c-format
msgid " %s -M [<mri-script]\n"
msgstr " %s -M [<script-mri]\n"
-#: ar.c:289
+#: ar.c:299
#, c-format
msgid " commands:\n"
msgstr " ordres:\n"
-#: ar.c:290
+#: ar.c:300
#, c-format
msgid " d - delete file(s) from the archive\n"
msgstr " d - esborra el(s) fitxer(s) de l'arxiu\n"
-#: ar.c:291
+#: ar.c:301
#, c-format
msgid " m[ab] - move file(s) in the archive\n"
msgstr " m[ab] - mou el(s) fitxer(s) a l'arxiu\n"
-#: ar.c:292
+#: ar.c:302
#, c-format
msgid " p - print file(s) found in the archive\n"
msgstr " p - imprimeix el(s) fitxer(s) trobats a l'arxiu\n"
-#: ar.c:293
+#: ar.c:303
#, c-format
msgid " q[f] - quick append file(s) to the archive\n"
msgstr " q[f] - afegeix ràpid el(s) fitxer(s) a l'arxiu\n"
-#: ar.c:294
+#: ar.c:304
#, c-format
msgid " r[ab][f][u] - replace existing or insert new file(s) into the archive\n"
msgstr " r[ab][f][u] - reemplaça l'existent i insereix un(s) nou(s) fitxer(s) a l'arxiu\n"
-#: ar.c:295
+#: ar.c:305
#, c-format
msgid " s - act as ranlib\n"
msgstr " s - actua com ranlib\n"
-#: ar.c:296
+#: ar.c:306
#, c-format
msgid " t[O][v] - display contents of the archive\n"
msgstr " t[O][v] - mostra els continguts de l'arxiu\n"
-#: ar.c:297
+#: ar.c:307
#, c-format
msgid " x[o] - extract file(s) from the archive\n"
msgstr " x[o] - extrau el(s) fitxer(s) de l'arxiu\n"
-#: ar.c:298
+#: ar.c:308
#, c-format
msgid " command specific modifiers:\n"
msgstr " modificadors específics de l'ordre:\n"
-#: ar.c:299
+#: ar.c:309
#, c-format
msgid " [a] - put file(s) after [member-name]\n"
msgstr " [a] - posa el(s) fitxer(s) després de [nom-membre]\n"
-#: ar.c:300
+#: ar.c:310
#, c-format
msgid " [b] - put file(s) before [member-name] (same as [i])\n"
msgstr " [b] - posa el(s) fitxer(s) abans de [nom-membre] (igual que [i])\n"
-#: ar.c:303
+#: ar.c:313
#, c-format
msgid " [D] - use zero for timestamps and uids/gids (default)\n"
msgstr " [D] - usa zero per a les marques horàries i uids/gids (predeterminat)\n"
-#: ar.c:305
+#: ar.c:315
#, c-format
msgid " [U] - use actual timestamps and uids/gids\n"
msgstr " [D] - usa les marques horàries i uids/gids reals\n"
-#: ar.c:310
+#: ar.c:320
#, c-format
msgid " [D] - use zero for timestamps and uids/gids\n"
msgstr " [D] - usa zero per a marques horàries i uids/gids\n"
-#: ar.c:312
+#: ar.c:322
#, c-format
msgid " [U] - use actual timestamps and uids/gids (default)\n"
msgstr " [D] - usa marques horàries i uids/gids reals (predeterminat)\n"
-#: ar.c:315
+#: ar.c:325
#, c-format
msgid " [N] - use instance [count] of name\n"
msgstr " [N] - usa la instància [nombre] del nom\n"
-#: ar.c:316
+#: ar.c:326
#, c-format
msgid " [f] - truncate inserted file names\n"
msgstr " [f] - trunca els noms inserits de fitxers\n"
-#: ar.c:317
+#: ar.c:327
#, c-format
msgid " [P] - use full path names when matching\n"
msgstr " [P] - usa noms complets de camí quan es facin emparellats\n"
-#: ar.c:318
+#: ar.c:328
#, c-format
msgid " [o] - preserve original dates\n"
msgstr " [o] - preserva les dates originals\n"
-#: ar.c:319
+#: ar.c:329
#, c-format
msgid " [O] - display offsets of files in the archive\n"
msgstr " [O] - mostra els inicis dels fitxers a l'arxiu\n"
-#: ar.c:320
+#: ar.c:330
#, c-format
msgid " [u] - only replace files that are newer than current archive contents\n"
msgstr " [u] - reemplaça únicament els fitxers que siguin més nous que el contingut actual de l'arxiu\n"
-#: ar.c:321
+#: ar.c:331
#, c-format
msgid " generic modifiers:\n"
msgstr " modificadors genèrics:\n"
-#: ar.c:322
+#: ar.c:332
#, c-format
msgid " [c] - do not warn if the library had to be created\n"
msgstr " [c] - no adverteixis si s'hagut de crear la biblioteca\n"
-#: ar.c:323
+#: ar.c:333
#, c-format
msgid " [s] - create an archive index (cf. ranlib)\n"
msgstr " [s] - crea un índex de l'arxiu (compareu amb ranlib)\n"
-#: ar.c:324
+#: ar.c:334
+#, c-format
+msgid " [l <text> ] - specify the dependencies of this library\n"
+msgstr "[l <text> ] - especifiqueu les dependències d'aquesta biblioteca\n"
+
+#: ar.c:335
#, c-format
msgid " [S] - do not build a symbol table\n"
msgstr " [S] - no construeixis una taula de símbols\n"
-#: ar.c:325
+#: ar.c:336
#, c-format
-msgid " [T] - make a thin archive\n"
-msgstr " [T] - fes un arxiu prim\n"
+msgid " [T] - deprecated, use --thin instead\n"
+msgstr " [T] - obsolet, useu --thin en canvi\n"
-#: ar.c:326
+#: ar.c:337
#, c-format
msgid " [v] - be verbose\n"
msgstr " [v] - mostra tots els missatges\n"
-#: ar.c:327
+#: ar.c:338
#, c-format
msgid " [V] - display the version number\n"
-msgstr " [V] - mostra el número de versió\n"
+msgstr " [V] - mostra el nombre de versió\n"
-#: ar.c:328
+#: ar.c:339
#, c-format
msgid " @<file> - read options from <file>\n"
msgstr " @<file> - llegeix les opcions des del <fitxer>\n"
-#: ar.c:329
+#: ar.c:340
#, c-format
msgid " --target=BFDNAME - specify the target object format as BFDNAME\n"
msgstr " --target=NOMBFD - especifica el format de l'object destí com NOMBFD\n"
-#: ar.c:331
+#: ar.c:341
+#, c-format
+msgid " --output=DIRNAME - specify the output directory for extraction operations\n"
+msgstr " --output=NOMDIR - especifica el directori de sortida per a l'extracció\n"
+
+#: ar.c:342
+#, c-format
+msgid " --record-libdeps=<text> - specify the dependencies of this library\n"
+msgstr "--record-libdeps {<text> - especifiqueu les dependències d'aquesta biblioteca\n"
+
+#: ar.c:343
+#, c-format
+msgid " --thin - make a thin archive\n"
+msgstr " --thin - fes un arxiu prim\n"
+
+#: ar.c:345
#, c-format
msgid " optional:\n"
msgstr " opcional:\n"
-#: ar.c:332
+#: ar.c:346
#, c-format
msgid " --plugin <p> - load the specified plugin\n"
msgstr " --plugin <p> - carrega el connector especificat\n"
-#: ar.c:353
+#: ar.c:367
#, c-format
msgid "Usage: %s [options] archive\n"
msgstr "Forma d'ús: %s [opcions] fitxer\n"
-#: ar.c:354
+#: ar.c:368
#, c-format
msgid " Generate an index to speed access to archives\n"
msgstr "Genera un índex per fer més ràpid l'accés als fitxers\n"
-#: ar.c:355
+#: ar.c:369
#, c-format
msgid ""
" The options are:\n"
@@ -322,12 +344,12 @@ msgstr ""
" Les opcions són:\n"
" @<fitxer> Llegeix les opcions des del <fitxer>\n"
-#: ar.c:358
+#: ar.c:372
#, c-format
msgid " --plugin <name> Load the specified plugin\n"
msgstr " --plugin <nom> Carrega el connector especificat\n"
-#: ar.c:362
+#: ar.c:376
#, c-format
msgid ""
" -D Use zero for symbol map timestamp (default)\n"
@@ -336,7 +358,7 @@ msgstr ""
" -D Usa zero per a la marca horària del mapa de símbols (predeterminat)\n"
" -U Usa una marca horària real del mapa de símbols\n"
-#: ar.c:366
+#: ar.c:380
#, c-format
msgid ""
" -D Use zero for symbol map timestamp\n"
@@ -345,7 +367,7 @@ msgstr ""
" -D Usa zero per a marques horàries del mapa de símbols\n"
" -U Usa la marca horària real del mapa de simbols (predeterminat)\n"
-#: ar.c:369
+#: ar.c:383
#, c-format
msgid ""
" -t Update the archive's symbol map timestamp\n"
@@ -356,156 +378,193 @@ msgstr ""
" -h --help Imprimeix aquest missatge d'ajuda\n"
" -v --version Imprimeix informació de la versió\n"
-#: ar.c:493
+#: ar.c:507
msgid "two different operation options specified"
msgstr "s'han especificat dues opcions d'operació diferents"
-#: ar.c:587 ar.c:647 nm.c:1781
+#: ar.c:543
+msgid "libdeps specified more than once"
+msgstr "libdeps especificat més d'una vegada"
+
+#: ar.c:604 ar.c:679 nm.c:2126
#, c-format
msgid "sorry - this program has been built without plugin support\n"
msgstr "ho sento - aquest programa s'ha construït sense suport per a connectors\n"
-#: ar.c:778
+#: ar.c:806
msgid "no operation specified"
msgstr "no s'ha especificat una operació"
-#: ar.c:781
+#: ar.c:809
msgid "`u' is only meaningful with the `r' option."
msgstr "`u' és significatiu únicament amb l'opció `r'."
-#: ar.c:784
-msgid "`u' is not meaningful with the `D' option."
-msgstr "`u' no és significatiu amb l'opció `D'."
+#: ar.c:812
+msgid "`u' is not meaningful with the `D' option - replacement will always happen."
+msgstr "`u' no és significatiu amb l'opció `D' - sempre hi haurà un reemplaçament"
-#: ar.c:787
+#: ar.c:815
msgid "`u' modifier ignored since `D' is the default (see `U')"
msgstr "s'ha ignorat `u' ja que `D' és el predeterminat (vegeu `U')"
-#: ar.c:796
+#: ar.c:824
msgid "missing position arg."
-msgstr ""
+msgstr "manca l'argument de posició."
-#: ar.c:802
+#: ar.c:830
msgid "`N' is only meaningful with the `x' and `d' options."
msgstr "`N' és significatiu únicament amb les opcions `x' i `d'."
-#: ar.c:804
+#: ar.c:832
msgid "`N' missing value."
-msgstr ""
+msgstr "Falta el valor de «N»."
-#: ar.c:807
+#: ar.c:835
msgid "Value for `N' must be positive."
msgstr "El valor per `N' ha de ser positiu."
-#: ar.c:823
+#: ar.c:851
msgid "`x' cannot be used on thin archives."
msgstr "`x' no es pot utilitzar en arxius prims."
-#: ar.c:870
+#: ar.c:865
+msgid "Cannot create libdeps record."
+msgstr "No es pot crear un registre libdeps."
+
+#: ar.c:868
+msgid "Cannot set libdeps record type to binary."
+msgstr "No es pot establir el tipus de registre libdeps a binari."
+
+#: ar.c:871
+msgid "Cannot set libdeps object format."
+msgstr "No es pot establir el format de l'objecte libdeps."
+
+#: ar.c:874
+msgid "Cannot make libdeps object writable."
+msgstr "No es pot fer que libdeps sigui un objecte d'escriptura."
+
+#: ar.c:877
+msgid "Cannot write libdeps record."
+msgstr "No es pot escriure el registre de la «libdeps»."
+
+#: ar.c:880
+msgid "Cannot make libdeps object readable."
+msgstr "No s'ha pogut fer libdeps llegible."
+
+#: ar.c:883
+msgid "Cannot reset libdeps record type."
+msgstr "No es pot restablir el tipus de registre del libdeps."
+
+#: ar.c:955
#, c-format
msgid "internal error -- this option not implemented"
msgstr "error intern -- aquesta opció no està implementada"
-#: ar.c:939
+#: ar.c:1026
#, c-format
msgid "creating %s"
msgstr "s'està creant %s"
-#: ar.c:970
+#: ar.c:1051
#, c-format
msgid "Cannot convert existing library %s to thin format"
msgstr "No es pot convertir la llibreria existent %s al format prim"
-#: ar.c:976
+#: ar.c:1057
#, c-format
msgid "Cannot convert existing thin library %s to normal format"
msgstr "No es pot convertir la llibreria prima %s al format normal"
-#: ar.c:1008 ar.c:1072 ar.c:1402 objcopy.c:3357
+#: ar.c:1088 ar.c:1193 ar.c:1522 objcopy.c:3716
#, c-format
msgid "internal stat error on %s"
msgstr "error intern en accedir %s"
-#: ar.c:1027 ar.c:1105
+#: ar.c:1108 ar.c:1220
#, c-format
msgid "%s is not a valid archive"
msgstr "%s no és un fitxer vàlid"
-#: ar.c:1064 objcopy.c:3319
+#: ar.c:1138
#, c-format
-msgid "illegal pathname found in archive member: %s"
-msgstr ""
+msgid "illegal output pathname for archive member: %s, using '%s' instead"
+msgstr "el nom del camí de sortida per al membre de l'arxiu és il·legal: %s, en el seu lloc s'utilitza «%s»"
-#: ar.c:1163
+#: ar.c:1270
msgid "could not create temporary file whilst writing archive"
msgstr "no s'ha pogut crear un fitxer temporari quan s'estava escrivint l'arxiu"
-#: ar.c:1307
+#: ar.c:1420
#, c-format
msgid "No member named `%s'\n"
msgstr "No hi ha un membre nomenat `%s'\n"
-#: ar.c:1357
+#: ar.c:1473
#, c-format
msgid "no entry %s in archive %s!"
msgstr "no hi ha una entrada %s a l'arxiu %s"
-#: ar.c:1496
+#: ar.c:1655
#, c-format
msgid "%s: no archive map to update"
msgstr "%s: ni hi ha un mapa d'arxiu per actualitzar"
-#: arsup.c:89
+#: arsup.c:91
#, c-format
msgid "No entry %s in archive.\n"
msgstr "No hi ha una entrada %s a l'arxiu.\n"
-#: arsup.c:114
+#: arsup.c:116
#, c-format
msgid "Can't open file %s\n"
msgstr "No s'ha pogut obrir el fitxer %s\n"
-#: arsup.c:164
+#: arsup.c:159
+#, c-format
+msgid "%s: Can't open temporary file (%s)\n"
+msgstr "%s: no es pot obrir el fitxer temporari (%s)\n"
+
+#: arsup.c:170
#, c-format
msgid "%s: Can't open output archive %s\n"
-msgstr "%s: No es pot obrir l'arxiu d'entrada %s\n"
+msgstr "%s: No es pot obrir l'arxiu de sortida %s\n"
-#: arsup.c:181
+#: arsup.c:191
#, c-format
msgid "%s: Can't open input archive %s\n"
msgstr "%s: No s'ha pogut obrir l'arxiu d'entrada %s\n"
-#: arsup.c:190
+#: arsup.c:200
#, c-format
msgid "%s: file %s is not an archive\n"
msgstr "%s: el fitxer %s no és un arxiu \n"
-#: arsup.c:230
+#: arsup.c:240
#, c-format
msgid "%s: no output archive specified yet\n"
msgstr "%s: no s'ha especificat un arxiu de sortida encara\n"
-#: arsup.c:250 arsup.c:293 arsup.c:335 arsup.c:358 arsup.c:424
+#: arsup.c:260 arsup.c:303 arsup.c:345 arsup.c:383 arsup.c:449
#, c-format
msgid "%s: no open output archive\n"
msgstr "%s: no hi ha un arxiu de sortida obert\n"
-#: arsup.c:266 arsup.c:379 arsup.c:405
+#: arsup.c:276 arsup.c:404 arsup.c:430
#, c-format
msgid "%s: can't open file %s\n"
msgstr "%s: no es pot obrir el fitxer %s\n"
-#: arsup.c:320 arsup.c:401 arsup.c:482
+#: arsup.c:330 arsup.c:426 arsup.c:508
#, c-format
msgid "%s: can't find module file %s\n"
msgstr "%s: no es pot trobar el fitxer de mòdul %s\n"
-#: arsup.c:433
+#: arsup.c:458
#, c-format
msgid "Current open archive is %s\n"
msgstr "El fitxer actualment obert és %s\n"
-#: arsup.c:457
+#: arsup.c:483
#, c-format
msgid "%s: no open archive\n"
msgstr "%s: no hi ha un arxiu obert\n"
@@ -516,54 +575,58 @@ msgid " No emulation specific options\n"
msgstr " No hi ha opcions específiques d'emulació\n"
#. Macros for common output.
-#: binemul.h:49
+#: binemul.h:45
#, c-format
msgid " emulation options: \n"
msgstr " opcions d'emulació: \n"
-#: bucomm.c:156
+#: bucomm.c:43 bucomm.c:76
+msgid "cause of error unknown"
+msgstr "causa d'error desconeguda"
+
+#: bucomm.c:170
#, c-format
msgid "can't set BFD default target to `%s': %s"
msgstr "no es pot establir el destí per defecte BFD a `%s': %s"
-#: bucomm.c:168
+#: bucomm.c:182
#, c-format
msgid "%s: Matching formats:"
msgstr "%s: Formats coincidents:"
-#: bucomm.c:183
+#: bucomm.c:199
#, c-format
msgid "Supported targets:"
msgstr "Destins suportats:"
-#: bucomm.c:185
+#: bucomm.c:201
#, c-format
msgid "%s: supported targets:"
msgstr "%s: destins suportats:"
-#: bucomm.c:203
+#: bucomm.c:219
#, c-format
msgid "Supported architectures:"
msgstr "Arquitectures suportades:"
-#: bucomm.c:205
+#: bucomm.c:221
#, c-format
msgid "%s: supported architectures:"
msgstr "%s: arquitectures suportades:"
-#: bucomm.c:218
+#: bucomm.c:234
msgid "big endian"
msgstr "big endian"
-#: bucomm.c:219
+#: bucomm.c:235
msgid "little endian"
msgstr "little endian"
-#: bucomm.c:220
+#: bucomm.c:236
msgid "endianness unknown"
msgstr "es desconeix la codificació endian"
-#: bucomm.c:267
+#: bucomm.c:283
#, c-format
msgid ""
"%s\n"
@@ -572,45 +635,45 @@ msgstr ""
"%s\n"
" (capçalera %s, dades %s)\n"
-#: bucomm.c:416
+#: bucomm.c:432
#, c-format
msgid "BFD header file version %s\n"
msgstr "Versió %s de capçalera BFD\n"
-#: bucomm.c:446
+#: bucomm.c:461
#, c-format
msgid "<time data corrupt>"
-msgstr "<dades de temps corruptes>"
+msgstr "<dades de temps malmeses>"
-#: bucomm.c:586
+#: bucomm.c:606
#, c-format
msgid "%s: bad number: %s"
-msgstr "%s: número incorrecte: %s"
+msgstr "%s: nombre incorrecte: %s"
-#: bucomm.c:606 strings.c:404
+#: bucomm.c:626 strings.c:469
#, c-format
msgid "'%s': No such file"
-msgstr "'%s': No hi és aques fitxer"
+msgstr "«%s»: No hi és aques fitxer"
-#: bucomm.c:608 strings.c:406
+#: bucomm.c:628 strings.c:471
#, c-format
msgid "Warning: could not locate '%s'. reason: %s"
-msgstr "Advertiment: no s'ha pogut localitzar '%s'. raó: %s"
+msgstr "Advertiment: no s'ha pogut localitzar «%s». raó: %s"
-#: bucomm.c:612 strings.c:412
+#: bucomm.c:632 strings.c:477
#, c-format
msgid "Warning: '%s' is a directory"
-msgstr "Advertiment: '%s' és un directori"
+msgstr "Advertiment: «%s» és un directori"
-#: bucomm.c:614
+#: bucomm.c:634 bucomm.c:647
#, c-format
msgid "Warning: '%s' is not an ordinary file"
-msgstr "Advertiment: '%s' no és un fitxer ordinari"
+msgstr "Advertiment: «%s» no és un fitxer ordinari"
-#: bucomm.c:616
+#: bucomm.c:636
#, c-format
msgid "Warning: '%s' has negative size, probably it is too large"
-msgstr "Advertiment: '%s' té una mida negativa, probablement és massa gran"
+msgstr "Advertiment: «%s» té una mida negativa, probablement és massa gran"
#: coffdump.c:106
#, c-format
@@ -715,9 +778,9 @@ msgstr "Llista de símbols"
#: coffdump.c:341
#, c-format
msgid "Symbol %s, tag %d, number %d"
-msgstr "Símbol %s, etiqueta %d, número %d"
+msgstr "Símbol %s, etiqueta %d, nombre %d"
-#: coffdump.c:345 readelf.c:16565 readelf.c:16653
+#: coffdump.c:345 readelf.c:20401 readelf.c:20497
#, c-format
msgid "Type"
msgstr "Tipus"
@@ -732,56 +795,56 @@ msgstr "On"
msgid "Visible"
msgstr "Visible"
-#: coffdump.c:370
+#: coffdump.c:369
msgid "List of blocks "
msgstr "Llista de blocs"
-#: coffdump.c:383
+#: coffdump.c:382
#, c-format
msgid "vars %d"
msgstr "variables %d"
-#: coffdump.c:386
+#: coffdump.c:385
#, c-format
msgid "blocks"
msgstr "blocs"
-#: coffdump.c:404
+#: coffdump.c:403
#, c-format
msgid "List of source files"
msgstr "Llista de fitxers font"
-#: coffdump.c:410
+#: coffdump.c:409
#, c-format
msgid "Source file %s"
msgstr "Fitxer font %s"
-#: coffdump.c:424
+#: coffdump.c:423
#, c-format
msgid "section %s %d %d address %x size %x number %d nrelocs %u"
-msgstr "secció %s %d %d adreça %x mida %x número %d nrelocs %u"
+msgstr "secció %s %d %d adreça %x mida %x nombre %d nrelocs %u"
#. PR 17512: file: 0a38fb7c.
-#: coffdump.c:436
+#: coffdump.c:435
msgid "<no sym>"
msgstr "<no sím>"
-#: coffdump.c:451
+#: coffdump.c:450
#, c-format
msgid "#sources %d"
msgstr "#fonts %d"
-#: coffdump.c:464 sysdump.c:641
+#: coffdump.c:461 sysdump.c:648
#, c-format
msgid "Usage: %s [option(s)] in-file\n"
msgstr "Forma d'ús: %s [opció(ns)] fitxer-entrada\n"
-#: coffdump.c:465
+#: coffdump.c:462
#, c-format
msgid " Print a human readable interpretation of a COFF object file\n"
msgstr " Imprimeix una interpretació llegible per humans d'un fitxer objecte COFF\n"
-#: coffdump.c:466
+#: coffdump.c:463
#, c-format
msgid ""
" The options are:\n"
@@ -796,725 +859,729 @@ msgstr ""
" -v --version Mostra la versió del programa\n"
"\n"
-#: coffdump.c:536 srconv.c:1797 sysdump.c:706
+#: coffdump.c:531 srconv.c:1794 sysdump.c:711
msgid "no input file specified"
msgstr "no s'ha especificat un fitxer d'entrada"
#: coffgrok.c:107
msgid "Out of context scope change encountered"
-msgstr ""
+msgstr "S'ha trobat un canvi fora de l'àmbit contextual"
#: coffgrok.c:130
-#, fuzzy, c-format
-#| msgid "dynamic section image fixups"
+#, c-format
msgid "Invalid section target index: %u"
-msgstr "correccions d'imatge de secció dinàmica"
+msgstr "Ãndex destí de secció no vàlid: %u"
#: coffgrok.c:187
-#, fuzzy, c-format
-#| msgid "<string table index: %3ld>"
+#, c-format
msgid "Invalid section target index: %d"
-msgstr "<índex de taula de cadena de caràcters: %3ld>"
+msgstr "Ãndex de destí de secció no vàlid: %d"
#: coffgrok.c:190
msgid "Target section has insufficient relocs"
-msgstr ""
+msgstr "La secció de destinació no té prou relocalitzacions"
-#: coffgrok.c:198 coffgrok.c:445
+#: coffgrok.c:198
#, c-format
msgid "Symbol index %u encountered when there are no symbols"
-msgstr ""
+msgstr "S'ha trobat l'índex de símbols %u quan no hi ha símbols"
-#: coffgrok.c:199 coffgrok.c:446
-#, fuzzy, c-format
-#| msgid "Unknown ARM compact model index encountered\n"
+#: coffgrok.c:199
+#, c-format
msgid "Invalid symbol index %u encountered"
-msgstr "Trobat u índex desconegut de model compacte ARM\n"
+msgstr "S'ha trobat nombre de secció %u no vàlid"
#: coffgrok.c:251
#, c-format
msgid "Invalid section number (%d) encountered"
-msgstr ""
+msgstr "S'ha trobat un nombre de secció no vàlid (%d)"
#: coffgrok.c:273
-#, fuzzy, c-format
-#| msgid "Unrecognized form: %lu\n"
+#, c-format
msgid "Unrecognized symbol class: %d"
-msgstr "Forma no reconeguda: %lu\n"
+msgstr "Classe de símbol no reconeguda: %d"
#: coffgrok.c:351
#, c-format
msgid "Type entry %u does not have enough symbolic information"
-msgstr ""
+msgstr "L'entrada de tipus %u no té prou informació simbòlica"
#: coffgrok.c:354
#, c-format
msgid "Type entry %u does not refer to a symbol"
-msgstr ""
+msgstr "L'entrada de tipus %u no es refereix a cap símbol"
#: coffgrok.c:376
-#, fuzzy
-#| msgid "version definition section"
msgid "Section definition needs a section length"
-msgstr "secció de definició de versió"
+msgstr "Cal una longitud de secció per a la definició de secció"
#: coffgrok.c:427
-#, fuzzy
-#| msgid "Missing Version Needs auxillary information\n"
-msgid "Aggregate definition needs auxillary information"
-msgstr "La versió que falta necessita de informació auxiliar\n"
+msgid "Aggregate definition needs auxiliary information"
+msgstr "Cal informació auxiliar per a la definició agregada"
-#: coffgrok.c:436
-#, c-format
-msgid "Invalid tag index %#lx encountered"
-msgstr ""
+#: coffgrok.c:460
+msgid "Enum definition needs auxiliary information"
+msgstr "Cal informació auxiliar per a la definició enum"
-#: coffgrok.c:477
-#, fuzzy
-#| msgid "Missing Version Needs auxillary information\n"
-msgid "Enum definition needs auxillary information"
-msgstr "La versió que falta necessita de informació auxiliar\n"
-
-#: coffgrok.c:484
-#, c-format
-msgid "Invalid enum symbol index %u encountered"
-msgstr ""
-
-#: coffgrok.c:520
-#, fuzzy
-#| msgid "Missing Version Needs auxillary information\n"
-msgid "Array definition needs auxillary information"
-msgstr "La versió que falta necessita de informació auxiliar\n"
+#: coffgrok.c:500
+msgid "Array definition needs auxiliary information"
+msgstr "Cal informació auxiliar per a la definició de matriu"
-#: coffgrok.c:536
+#: coffgrok.c:516
#, c-format
msgid "Out of range sum for els (%#x) * size (%#x)"
-msgstr ""
+msgstr "Suma fora de l'interval per als (%#x) * mida (%#x)"
-#: coffgrok.c:627 coffgrok.c:870
-#, fuzzy, c-format
-#| msgid "Unrecognized form: %lu\n"
+#: coffgrok.c:607 coffgrok.c:850
+#, c-format
msgid "Unrecognised symbol class: %d"
-msgstr "Forma no reconeguda: %lu\n"
+msgstr "Classe de símbol no reconeguda: %d"
-#: coffgrok.c:644
+#: coffgrok.c:624
msgid "ICE: do_define called without a block"
-msgstr ""
+msgstr "ICE: do_define cridat sense bloc"
-#: coffgrok.c:646
-#, fuzzy, c-format
-#| msgid " bad symbol index: %08lx"
+#: coffgrok.c:626
+#, c-format
msgid "Out of range symbol index: %u"
-msgstr " índex de símbol dolent: %08lx"
+msgstr "Ãndex de símbol fora de rang: %u"
-#: coffgrok.c:683
+#: coffgrok.c:663
msgid "Section referenced before any file is defined"
-msgstr ""
+msgstr "Secció referenciada abans de definir qualsevol fitxer"
-#: coffgrok.c:701
+#: coffgrok.c:681
#, c-format
msgid "Out of range sum for offset (%#x) + size (%#x)"
-msgstr ""
+msgstr "Suma fora de l'interval per al desplaçament (%#x) + mida (%#x)"
-#: coffgrok.c:706
+#: coffgrok.c:686
#, c-format
msgid "Out of range type size: %u"
-msgstr ""
+msgstr "Mida de tipus fora de rang: %u"
-#: coffgrok.c:792
+#: coffgrok.c:772
msgid "Function start encountered without a top level scope."
-msgstr ""
+msgstr "S'ha trobat l'inici de la funció sense un àmbit de nivell superior."
-#: coffgrok.c:818
+#: coffgrok.c:798
msgid "Block start encountered without a scope for it."
-msgstr ""
+msgstr "S'ha trobat l'inici del bloc sense un àmbit."
-#: coffgrok.c:828
+#: coffgrok.c:808
msgid "Function arguments encountered without a function definition"
-msgstr ""
+msgstr "S'han trobat arguments de funció sense una definició de funció"
-#: coffgrok.c:836
+#: coffgrok.c:816
msgid "Structure element encountered without a structure definition"
-msgstr ""
+msgstr "S'ha trobat un element d'estructura sense una definició d'estructura"
-#: coffgrok.c:841
+#: coffgrok.c:821
msgid "Enum element encountered without an enum definition"
-msgstr ""
+msgstr "S'ha trobat un element enumerat sense una definició d'enumeració"
-#: coffgrok.c:849
+#: coffgrok.c:829
msgid "Aggregate definition encountered without a scope"
-msgstr ""
+msgstr "S'ha trobat una definició agregada sense un àmbit"
-#: coffgrok.c:855
+#: coffgrok.c:835
msgid "Label definition encountered without a file scope"
-msgstr ""
+msgstr "S'ha trobat una definició d'etiqueta sense un àmbit de fitxer"
-#: coffgrok.c:863
+#: coffgrok.c:843
msgid "Variable definition encountered without a scope"
-msgstr ""
+msgstr "S'ha trobat una definició de variable sense un àmbit"
-#: coffgrok.c:886
-#, fuzzy, c-format
-#| msgid "'%s' is not an ordinary file\n"
+#: coffgrok.c:866
+#, c-format
msgid "%s: is not a COFF format file"
-msgstr "'%s' no és un fitxer ordinari\n"
+msgstr "%s: no és un fitxer de format COFF"
-#: cxxfilt.c:124 nm.c:295 objdump.c:291
+#: cxxfilt.c:124 nm.c:380 objdump.c:465
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Informeu els erros a %s.\n"
-#: debug.c:647
+#: debug.c:650
msgid "debug_add_to_current_namespace: no current file"
msgstr "debug_add_to_current_namespace: cap fitxer actual"
-#: debug.c:726
+#: debug.c:744
msgid "debug_start_source: no debug_set_filename call"
msgstr "debug_start_source: no hi ha una crida a debug_set_filename"
-#: debug.c:780
+#: debug.c:796
msgid "debug_record_function: no debug_set_filename call"
msgstr "debug_record_function: no hi ha una crida a debug_set_filename"
-#: debug.c:832
+#: debug.c:846
msgid "debug_record_parameter: no current function"
msgstr "debug_record_parameter: cap funció actual"
-#: debug.c:864
+#: debug.c:877
msgid "debug_end_function: no current function"
msgstr "debug_end_function: cap funció actual"
-#: debug.c:870
+#: debug.c:883
msgid "debug_end_function: some blocks were not closed"
msgstr "debug_end_function: no s'han tancat alguns blocs"
-#: debug.c:898
+#: debug.c:911
msgid "debug_start_block: no current block"
msgstr "debug_start_block: cap bloc actual"
-#: debug.c:934
+#: debug.c:946
msgid "debug_end_block: no current block"
msgstr "debug_end_block: cap bloc actual"
-#: debug.c:941
+#: debug.c:953
msgid "debug_end_block: attempt to close top level block"
msgstr "debug_end_block: s'ha intentat tancar al bloc de primer nivell"
-#: debug.c:964
+#: debug.c:976
msgid "debug_record_line: no current unit"
msgstr "debug_record_line: cap unitat actual"
#. FIXME
-#: debug.c:1017
+#: debug.c:1028
msgid "debug_start_common_block: not implemented"
msgstr "debug_start_common_block: no està implementat"
#. FIXME
-#: debug.c:1028
+#: debug.c:1039
msgid "debug_end_common_block: not implemented"
msgstr "debug_end_common_block: no està implementat"
#. FIXME.
-#: debug.c:1112
+#: debug.c:1122
msgid "debug_record_label: not implemented"
msgstr "debug_record_label: no està implementat"
-#: debug.c:1134
+#: debug.c:1144
msgid "debug_record_variable: no current file"
msgstr "debug_record_variable: cap fitxer actual"
-#: debug.c:1662
+#: debug.c:1660
msgid "debug_make_undefined_type: unsupported kind"
msgstr "debug_make_undefined_type: tipus no suportat"
-#: debug.c:1839
+#: debug.c:1837
msgid "debug_name_type: no current file"
msgstr "debug_name_type: cap fitxer actual"
-#: debug.c:1884
+#: debug.c:1881
msgid "debug_tag_type: no current file"
msgstr "debug_tag_type: cap fitxer actual"
-#: debug.c:1892
+#: debug.c:1889
msgid "debug_tag_type: extra tag attempted"
msgstr "debug_tag_type: s'ha intentat una etiqueta extra"
-#: debug.c:1929
+#: debug.c:1925
#, c-format
msgid "Warning: changing type size from %d to %d\n"
msgstr "Advertiment: s'esta canviant la mida de tipus de %d a %d\n"
-#: debug.c:1951
+#: debug.c:1947
msgid "debug_find_named_type: no current compilation unit"
msgstr "debug_find_named_type: cap unitat actual de compilació"
-#: debug.c:2054
+#: debug.c:2050
#, c-format
msgid "debug_get_real_type: circular debug information for %s\n"
msgstr "debug_get_real_type: informació circular de depuració per a %s\n"
-#: debug.c:2481
+#: debug.c:2489
msgid "debug_write_type: illegal type encountered"
msgstr "debug_write_type: s'ha trobat un tipus il·legal"
-#: dlltool.c:901 dlltool.c:926 dlltool.c:956
+#: dlltool.c:876 dlltool.c:901
#, c-format
msgid "Internal error: Unknown machine type: %d"
msgstr "Error intern: Tipus de màquina desconegut: %d"
-#: dlltool.c:997
+#: dlltool.c:952
#, c-format
msgid "Can't open def file: %s"
msgstr "No es pot obrir el fitxer de definicions: %s"
-#: dlltool.c:1002
+#: dlltool.c:957
#, c-format
msgid "Processing def file: %s"
msgstr "S'està processant el fitxer de definicions: %s"
-#: dlltool.c:1006
+#: dlltool.c:961
msgid "Processed def file"
msgstr "S'ha processat el fitxer de definicions"
-#: dlltool.c:1030
+#: dlltool.c:985
#, c-format
msgid "Syntax error in def file %s:%d"
msgstr "Error de sintaxis al fitxer de definicions %s:%d"
-#: dlltool.c:1067
+#: dlltool.c:1020
#, c-format
msgid "%s: Path components stripped from image name, '%s'."
-msgstr "%s: El components de camí han estat trets del nom de la imatge, '%s'."
+msgstr "%s: El components de camí han estat trets del nom de la imatge, «%s»."
-#: dlltool.c:1085
+#: dlltool.c:1038
#, c-format
msgid "NAME: %s base: %x"
msgstr "Nom: %s base: %x"
-#: dlltool.c:1088 dlltool.c:1109
+#: dlltool.c:1041 dlltool.c:1062
msgid "Can't have LIBRARY and NAME"
msgstr "No pot haver-hi BIBLIOTECA i NOM"
-#: dlltool.c:1106
+#: dlltool.c:1059
#, c-format
msgid "LIBRARY: %s base: %x"
msgstr "BIBLIOTECA: %s base: %x"
-#: dlltool.c:1262
+#: dlltool.c:1214
#, c-format
msgid "VERSION %d.%d\n"
msgstr "VERSIÓ %d.%d\n"
-#: dlltool.c:1310
+#: dlltool.c:1261
#, c-format
msgid "run: %s %s"
msgstr "executa: %s %s"
-#: dlltool.c:1351 resrc.c:288
+#: dlltool.c:1302 resrc.c:289
#, c-format
msgid "wait: %s"
msgstr "espera: %s"
-#: dlltool.c:1356 dllwrap.c:416 resrc.c:293
+#: dlltool.c:1307 dllwrap.c:416 resrc.c:294
#, c-format
msgid "subprocess got fatal signal %d"
msgstr "el subprocés ha rebut un senyal fatal %d"
-#: dlltool.c:1362 dllwrap.c:423 resrc.c:300
+#: dlltool.c:1313 dllwrap.c:423 resrc.c:301
#, c-format
msgid "%s exited with status %d"
msgstr "%s ha sortit amb estat %d"
-#: dlltool.c:1393
+#: dlltool.c:1344
#, c-format
msgid "Sucking in info from %s section in %s"
msgstr "S'està xuclant informació des de la secció %s a la secció %s"
-#: dlltool.c:1533
+#: dlltool.c:1486
#, c-format
msgid "Excluding symbol: %s"
msgstr "S'està excloent el símbol: %s"
-#: dlltool.c:1622 dlltool.c:1633 nm.c:1121 nm.c:1131 nm.c:1140
+#: dlltool.c:1575 dlltool.c:1586 nm.c:1410 nm.c:1419
#, c-format
msgid "%s: no symbols"
msgstr "%s: no hi ha símbols"
#. FIXME: we ought to read in and block out the base relocations.
-#: dlltool.c:1659
+#: dlltool.c:1612
#, c-format
msgid "Done reading %s"
msgstr "S'ha acabat de llegir %s"
-#: dlltool.c:1669
+#: dlltool.c:1622
#, c-format
msgid "Unable to open object file: %s: %s"
msgstr "No s'ha pogut obrir el fitxer objecte: %s: %s"
-#: dlltool.c:1672
+#: dlltool.c:1625
#, c-format
msgid "Scanning object file %s"
msgstr "S'està explotant el fitxer objecte %s"
-#: dlltool.c:1692
+#: dlltool.c:1645
#, c-format
msgid "Cannot produce mcore-elf dll from archive file: %s"
msgstr "No es pot produir un dll mcore-elf des del fitxer d'arxiu: %s"
-#: dlltool.c:1794
+#: dlltool.c:1747
msgid "Adding exports to output file"
msgstr "S'estan afegint les exportacions al fitxer de sortida"
-#: dlltool.c:1846
+#: dlltool.c:1799
msgid "Added exports to output file"
msgstr "S'han afegit les exportacions al fitxer de sortida"
-#: dlltool.c:2014
+#: dlltool.c:1966
#, c-format
msgid "Generating export file: %s"
msgstr "S'està generant el fitxer d'exportació: %s"
-#: dlltool.c:2019
+#: dlltool.c:1971
#, c-format
msgid "Unable to open temporary assembler file: %s"
msgstr "No es pot obrir el fitxer temporal d'assemblador: %s"
-#: dlltool.c:2024
+#: dlltool.c:1976
#, c-format
msgid "Opened temporary file: %s"
msgstr "S'ha obert el fitxer temporal: %s"
-#: dlltool.c:2200
+#: dlltool.c:2157
msgid "failed to read the number of entries from base file"
msgstr "no s'ha pogut llegir el nombre d'entrades des del fitxer base"
-#: dlltool.c:2251
+#: dlltool.c:2208
msgid "Generated exports file"
msgstr "S'ha generat el fitxer d'exportacions"
-#: dlltool.c:2461
+#: dlltool.c:2351
#, c-format
msgid "bfd_open failed open stub file: %s: %s"
msgstr "bfd_open ha fallat d'obrir un fitxer marcador: %s: %s "
-#: dlltool.c:2465
+#: dlltool.c:2355
#, c-format
msgid "Creating stub file: %s"
msgstr "S'està creant un fixer marcador: %s"
-#: dlltool.c:2936
+#: dlltool.c:2698
#, c-format
msgid "bfd_open failed reopen stub file: %s: %s"
msgstr "bfd_open no ha pogut reobrir el fitxer marcador: %s: %s"
-#: dlltool.c:2950 dlltool.c:3029
+#: dlltool.c:2712 dlltool.c:2791
#, c-format
msgid "failed to open temporary head file: %s"
msgstr "no s'ha pogut obrir un fitxer capçalera temporal: %s"
-#: dlltool.c:3014 dlltool.c:3100
+#: dlltool.c:2776 dlltool.c:2866
#, c-format
msgid "failed to open temporary head file: %s: %s"
msgstr "no s'ha pogut obrir un fitxer capçalera temporal: %s: %s"
-#: dlltool.c:3115
+#: dlltool.c:2881
#, c-format
msgid "failed to open temporary tail file: %s"
msgstr "no s'ha pogut obrir un fitxer cua temporal: %s"
-#: dlltool.c:3174
+#: dlltool.c:2917
#, c-format
msgid "failed to open temporary tail file: %s: %s"
msgstr "no s'ha pogut obrir un fitxer cua temporal: %s: %s"
-#: dlltool.c:3197
+#: dlltool.c:2940
#, c-format
msgid "Can't create .lib file: %s: %s"
msgstr "No es pot crear un fitxer .lib: %s: %s"
-#: dlltool.c:3201
+#: dlltool.c:2944
#, c-format
msgid "Creating library file: %s"
msgstr "S'està creant un fitxer biblioteca: %s"
-#: dlltool.c:3288 dlltool.c:3294
+#: dlltool.c:3028 dlltool.c:3034
#, c-format
msgid "cannot delete %s: %s"
msgstr "no es pot esborrar %s: %s"
-#: dlltool.c:3300
+#: dlltool.c:3039
msgid "Created lib file"
msgstr "S'ha creat un fitxer biblioteca"
-#: dlltool.c:3513
+#: dlltool.c:3245
#, c-format
msgid "Can't open .lib file: %s: %s"
msgstr "No es pot obrir el fitxer .lib: %s: %s"
-#: dlltool.c:3521 dlltool.c:3543
+#: dlltool.c:3253 dlltool.c:3275
#, c-format
msgid "%s is not a library"
msgstr "%s no és una biblioteca"
-#: dlltool.c:3561
+#: dlltool.c:3293
#, c-format
msgid "Import library `%s' specifies two or more dlls"
msgstr "La biblioteca d'importació `%s' especifica una o més dlls"
-#: dlltool.c:3572
+#: dlltool.c:3304
#, c-format
msgid "Unable to determine dll name for `%s' (not an import library?)"
msgstr "No es pot determinar el nom de la dll per a `%s' (no és una biblioteca d'importació?)"
-#: dlltool.c:3804
+#: dlltool.c:3521
#, c-format
msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
msgstr "Advertiment, s'ignorarà EXPORTACIÓ duplicada %s %d, %d"
-#: dlltool.c:3810
+#: dlltool.c:3527
#, c-format
msgid "Error, duplicate EXPORT with ordinals: %s"
msgstr "Error, EXPORTACIÓ duplicada amb ordinals: %s"
-#: dlltool.c:3913
+#: dlltool.c:3632
msgid "Processing definitions"
msgstr "S'estan processant les definicions"
-#: dlltool.c:3940
+#: dlltool.c:3664
msgid "Processed definitions"
msgstr "S'han processat les definicions"
#. xgetext:c-format
-#: dlltool.c:3947 dllwrap.c:477
+#: dlltool.c:3671 dllwrap.c:477
#, c-format
msgid "Usage %s <option(s)> <object-file(s)>\n"
msgstr "Forma d'ús %s <opció(ns)> <fitxer(s)-objecte>\n"
#. xgetext:c-format
-#: dlltool.c:3949
+#: dlltool.c:3673
#, c-format
msgid " -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
msgstr " -m --machine <màquina> Crea com a DLL per a <màquina>. [per defecte: %s]\n"
-#: dlltool.c:3950
+#: dlltool.c:3674
#, c-format
-msgid " possible <machine>: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
+msgid " possible <machine>: arm[_interwork], arm64, i386, mcore[-elf]{-le|-be}, thumb\n"
msgstr " <màquina> possible: arm[_interwork], i386, mcore[-elf]{-le|-be}, ppc, thumb\n"
-#: dlltool.c:3951
+#: dlltool.c:3675
#, c-format
msgid " -e --output-exp <outname> Generate an export file.\n"
msgstr " -e --output-exp <nom-de-sortida> Genera un fitxer d'exportació.\n"
-#: dlltool.c:3952
+#: dlltool.c:3676
#, c-format
msgid " -l --output-lib <outname> Generate an interface library.\n"
msgstr " -l --output-lib <nom-de-sortida> Genera una biblioteca d'interfície.\n"
-#: dlltool.c:3953
+#: dlltool.c:3677
#, c-format
msgid " -y --output-delaylib <outname> Create a delay-import library.\n"
msgstr " -y --output-delaylib <nom-de-sortida> Crea una biblioteca d'importació diferida.\n"
-#: dlltool.c:3954
+#: dlltool.c:3678
+#, c-format
+msgid " --deterministic-libraries\n"
+msgstr " --deterministic-libraries\n"
+
+#: dlltool.c:3680
+#, c-format
+msgid " Use zero for timestamps and uids/gids in output libraries (default)\n"
+msgstr " Usa zero per a marques horàries i uids/gids a les llibreries de sortida (per defecte)\n"
+
+#: dlltool.c:3682
+#, c-format
+msgid " Use zero for timestamps and uids/gids in output libraries\n"
+msgstr " Usa zero per a marques horàries i uids/gids\n"
+
+#: dlltool.c:3683
+#, c-format
+msgid " --non-deterministic-libraries\n"
+msgstr " --non-deterministic-libraries\n"
+
+#: dlltool.c:3685
+#, c-format
+msgid " Use actual timestamps and uids/gids in output libraries\n"
+msgstr " Usa les marques de temps i uids/gids reals a les llibreries de sortida\n"
+
+#: dlltool.c:3687
+#, c-format
+msgid " Use actual timestamps and uids/gids in output libraries (default)\n"
+msgstr " Usa marques horàries i uids/gids reals a les llibreries de sortida (per defecte)\n"
+
+#: dlltool.c:3688
#, c-format
msgid " -a --add-indirect Add dll indirects to export file.\n"
msgstr " -a --add-indirect Afegeix els indirectes de dll al fitxer d'exportació.\n"
-#: dlltool.c:3955
+#: dlltool.c:3689
#, c-format
msgid " -D --dllname <name> Name of input dll to put into interface lib.\n"
msgstr " -D --dllname <nom> Nom de l'entrada dll per posar a la biblioteca d'interfície.\n"
-#: dlltool.c:3956
+#: dlltool.c:3690
#, c-format
msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
msgstr " -d --input-def <fitxer-definició> Nom del fitxer .def a llegir.\n"
-#: dlltool.c:3957
+#: dlltool.c:3691
#, c-format
msgid " -z --output-def <deffile> Name of .def file to be created.\n"
msgstr " -z --output-def <fitxer-definició> Nom del fitxer .def a crear.\n"
-#: dlltool.c:3958
+#: dlltool.c:3692
#, c-format
msgid " --export-all-symbols Export all symbols to .def\n"
msgstr " --export-all-symbols Exporta tots els símbols a .def\n"
-#: dlltool.c:3959
+#: dlltool.c:3693
#, c-format
msgid " --no-export-all-symbols Only export listed symbols\n"
msgstr " --no-export-all-symbols Exporta sols els símbols llistats\n"
-#: dlltool.c:3960
+#: dlltool.c:3694
#, c-format
msgid " --exclude-symbols <list> Don't export <list>\n"
msgstr " --exclude-symbols <llista> No exportis <llista>\n"
-#: dlltool.c:3961
+#: dlltool.c:3695
#, c-format
msgid " --no-default-excludes Clear default exclude symbols\n"
msgstr " --no-default-excludes Neteja els símbols per defecte d'exclusió\n"
-#: dlltool.c:3962
+#: dlltool.c:3696
#, c-format
msgid " -b --base-file <basefile> Read linker generated base file.\n"
msgstr " -b --base-file <fitxer-base> Llegeix el fitxer base generat per l'enllaçador.\n"
-#: dlltool.c:3963
+#: dlltool.c:3697
#, c-format
msgid " -x --no-idata4 Don't generate idata$4 section.\n"
msgstr " -x --no-idata4 No generis la secció idata$4\n"
-#: dlltool.c:3964
+#: dlltool.c:3698
#, c-format
msgid " -c --no-idata5 Don't generate idata$5 section.\n"
msgstr " -c --no-idata5 No generis la secció idata$5\n"
-#: dlltool.c:3965
+#: dlltool.c:3699
#, c-format
msgid " --use-nul-prefixed-import-tables Use zero prefixed idata$4 and idata$5.\n"
msgstr " --use-nul-prefixed-import-tables Usa idata$4 i idata$5 prefixat per zeros.\n"
-#: dlltool.c:3966
+#: dlltool.c:3700
#, c-format
msgid " -U --add-underscore Add underscores to all symbols in interface library.\n"
msgstr " -U --add-underscore Afegeix subratllats a tots els símbols de la biblioteca d'interfície.\n"
-#: dlltool.c:3967
+#: dlltool.c:3701
#, c-format
msgid " --add-stdcall-underscore Add underscores to stdcall symbols in interface library.\n"
msgstr " --add-stdcall-underscore Afegeix subratllats als símbols stdcall de la biblioteca d'interfície.\n"
-#: dlltool.c:3968
+#: dlltool.c:3702
#, c-format
msgid " --no-leading-underscore All symbols shouldn't be prefixed by an underscore.\n"
msgstr " --no-leading-underscore No s'hauria de prefixar tots els simbols per un subratllat.\n"
-#: dlltool.c:3969
+#: dlltool.c:3703
#, c-format
msgid " --leading-underscore All symbols should be prefixed by an underscore.\n"
msgstr " --leading-underscore S'haurien de prefixar tots els símbols per un subratllat.\n"
-#: dlltool.c:3970
+#: dlltool.c:3704
#, c-format
msgid " -k --kill-at Kill @<n> from exported names.\n"
msgstr " -k --kill-at Elimina @<n> dels noms exportats.\n"
-#: dlltool.c:3971
+#: dlltool.c:3705
#, c-format
msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
msgstr " -A --add-stdcall-alias Afegeix els àlies sense @<n>\n"
-#: dlltool.c:3972
+#: dlltool.c:3706
#, c-format
msgid " -p --ext-prefix-alias <prefix> Add aliases with <prefix>.\n"
msgstr " -p --ext-prefix-alias <prefix> Afegeix àlies amb <prefix>.\n"
-#: dlltool.c:3973
+#: dlltool.c:3707
#, c-format
msgid " -S --as <name> Use <name> for assembler.\n"
msgstr " -S --as <nom> Usa <nom> per l'assemblador.\n"
-#: dlltool.c:3974
+#: dlltool.c:3708
#, c-format
msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
msgstr " -f --as-flags <senyaladors> Passa <senyaladors> per a l'assemblador.\n"
-#: dlltool.c:3975
+#: dlltool.c:3709
#, c-format
msgid " -C --compat-implib Create backward compatible import library.\n"
msgstr " -C --compat-implib Crea una biblioteca d'importació compatible amb versions anteriors.\n"
-#: dlltool.c:3976
+#: dlltool.c:3710
#, c-format
msgid " -n --no-delete Keep temp files (repeat for extra preservation).\n"
msgstr " -n --no-delete Manté els fitxers temporals (repeteix per a preservació extra).\n"
-#: dlltool.c:3977
+#: dlltool.c:3711
#, c-format
msgid " -t --temp-prefix <prefix> Use <prefix> to construct temp file names.\n"
msgstr ""
" -t --temp-prefix <prefix> Usa <prefix> per construir el noms dels\n"
" fitxers temporals.\n"
-#: dlltool.c:3978
+#: dlltool.c:3712
#, c-format
msgid " -I --identify <implib> Report the name of the DLL associated with <implib>.\n"
msgstr " -I --identify <implib> Reporta el nom de la DLL associada amb <implib>.\n"
-#: dlltool.c:3979
+#: dlltool.c:3713
#, c-format
msgid " --identify-strict Causes --identify to report error when multiple DLLs.\n"
msgstr " --identify-strict Causa que --identify reporti un error quan hi ha multiples DLLs.\n"
-#: dlltool.c:3980
+#: dlltool.c:3714
#, c-format
msgid " -v --verbose Be verbose.\n"
msgstr " -v --verbose Ensenya tots els missatges.\n"
-#: dlltool.c:3981
+#: dlltool.c:3715
#, c-format
msgid " -V --version Display the program version.\n"
msgstr " -V --version Mostra la versió del programa.\n"
-#: dlltool.c:3982
+#: dlltool.c:3716
#, c-format
msgid " -h --help Display this information.\n"
msgstr " -h --help Mostra aquesta informació.\n"
-#: dlltool.c:3983
+#: dlltool.c:3717
#, c-format
msgid " @<file> Read options from <file>.\n"
msgstr " @<fitxer> Llegeix les opcions de <fitxer>.\n"
-#: dlltool.c:3985
+#: dlltool.c:3719
#, c-format
msgid " -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
msgstr " -M --mcore-elf <nom-de-sortida> Processa els fitxers objectes mcore-els a <nom-de-sortida>.\n"
-#: dlltool.c:3986
+#: dlltool.c:3720
#, c-format
msgid " -L --linker <name> Use <name> as the linker.\n"
msgstr " -L --linker <nom> Usa <nom> com l'enllaçador.\n"
-#: dlltool.c:3987
+#: dlltool.c:3721
#, c-format
msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
msgstr " -F --linker-flags <senyaladors> Passa <senyaladors> a l'enllaçador.\n"
-#: dlltool.c:4133
-#, fuzzy, c-format
-#| msgid "Unable to open base-file: %s"
+#: dlltool.c:3871
+#, c-format
msgid "Unable to open def-file: %s"
-msgstr "No s'ha pogut obrir fitxer-base: %s"
+msgstr "No s'ha pogut obrir el fitxer def: %s"
-#: dlltool.c:4138
+#: dlltool.c:3876
#, c-format
msgid "Path components stripped from dllname, '%s'."
-msgstr "Els components de camí s'han eliminat del nom de la dll, '%s'."
+msgstr "Els components de camí s'han eliminat del nom de la dll, «%s»."
-#: dlltool.c:4186
+#: dlltool.c:3924
#, c-format
msgid "Unable to open base-file: %s"
msgstr "No s'ha pogut obrir fitxer-base: %s"
-#: dlltool.c:4221
+#: dlltool.c:3962
#, c-format
msgid "Machine '%s' not supported"
-msgstr "La màquina '%s' no està suportada"
+msgstr "La màquina «%s» no està suportada"
-#: dlltool.c:4301
+#: dlltool.c:4063
#, c-format
msgid "Warning, machine type (%d) not supported for delayimport."
msgstr "Advertiment, la màquina tipus (%d) no està suportada per a delayimport."
-#: dlltool.c:4369 dllwrap.c:206
+#: dlltool.c:4131 dllwrap.c:206
#, c-format
msgid "Tried file: %s"
msgstr "S'ha provat el fitxer: %s"
-#: dlltool.c:4376 dllwrap.c:213
+#: dlltool.c:4138 dllwrap.c:213
#, c-format
msgid "Using file: %s"
msgstr "S'està usant %s"
@@ -1744,11 +1811,16 @@ msgstr " --leading-underscore Punt d'entrada amb subratllat.\n"
msgid " Rest are passed unmodified to the language driver\n"
msgstr " La resta es passen sense modificació al controlador de llenguatge\n"
-#: dllwrap.c:799
+#: dllwrap.c:640
+#, c-format
+msgid "WARNING: %s is deprecated, use gcc -shared or ld -shared instead\n"
+msgstr "AVÃS: %s està obsolet, utilitzeu gcc -shared o ld -shared en el seu lloc\n"
+
+#: dllwrap.c:800
msgid "Must provide at least one of -o or --dllname options"
msgstr "Heu de proveir almenys una de les opcions -o o --dllname"
-#: dllwrap.c:828
+#: dllwrap.c:829
msgid ""
"no export definition file provided.\n"
"Creating one, but that may not be what you want"
@@ -1756,68 +1828,68 @@ msgstr ""
"no s'ha proveït un fitxer de definicions d'exportació.\n"
"S'està creant un, però potser això no és el que voleu"
-#: dllwrap.c:1017
+#: dllwrap.c:1018
#, c-format
msgid "DLLTOOL name : %s\n"
msgstr "Nom de DLLTOOL : %s\n"
-#: dllwrap.c:1018
+#: dllwrap.c:1019
#, c-format
msgid "DLLTOOL options : %s\n"
msgstr "Opcions de DLLTOOL : %s\n"
-#: dllwrap.c:1019
+#: dllwrap.c:1020
#, c-format
msgid "DRIVER name : %s\n"
msgstr "Nom de CONTROLADOR : %s\n"
-#: dllwrap.c:1020
+#: dllwrap.c:1021
#, c-format
msgid "DRIVER options : %s\n"
msgstr "Opcions de CONTROLADOR : %s\n"
-#: dwarf.c:152
-#, fuzzy
-#| msgid " Version def aux past end of section\n"
+#: dwarf.c:187
msgid "Encoded value extends past end of section\n"
-msgstr " Versió def aux s'estén més enllà del final de la secció\n"
+msgstr "El valor codificat s'estén més enllà del final de la secció\n"
-#: dwarf.c:160
+#: dwarf.c:195
#, c-format
msgid "Encoded size of %d is too large to read\n"
-msgstr ""
+msgstr "La mida codificada de %d és massa gran per llegir\n"
-#: dwarf.c:168
+#: dwarf.c:203
msgid "Encoded size of 0 is too small to read\n"
-msgstr ""
+msgstr "La mida codificada de 0 és massa petita per llegir\n"
-#: dwarf.c:369 dwarf.c:383
-#, c-format
-msgid "Internal error: %s:%d: LEB value (%s) too large for containing variable\n"
-msgstr ""
+#: dwarf.c:263 readelf.c:3943 readelf.c:12059
+msgid "unknown"
+msgstr "desconegut"
-#. Read AMOUNT bytes from PTR and store them in VAL as an unsigned value.
-#. Checks to make sure that the read will not reach or pass END
-#. and that VAL is big enough to hold AMOUNT bytes.
-#: dwarf.c:399
+#. Read AMOUNT bytes from PTR and store them in VAL.
+#. Checks to make sure that the read will not reach or pass END.
+#. FUNC chooses whether the value read is unsigned or signed, and may
+#. be either byte_get or byte_get_signed. If INC is true, PTR is
+#. incremented after reading the value.
+#. This macro cannot protect against PTR values derived from user input.
+#. The C standard sections 6.5.6 and 6.5.8 say attempts to do so using
+#. pointers is undefined behaviour.
+#: dwarf.c:342
#, c-format
msgid "internal error: attempt to read %d byte of data in to %d sized variable"
msgid_plural "internal error: attempt to read %d bytes of data in to %d sized variable"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "error intern: s'intenta llegir %d byte de dades a la variable de mida %d"
+msgstr[1] "error intern: s'intenta llegir %d bytes de dades a la variable de mida %d"
-#: dwarf.c:525 dwarf.c:4422
-#, fuzzy
-#| msgid "badly formed extended line op encountered!\n"
+#: dwarf.c:430 dwarf.c:5574
msgid "Badly formed extended line op encountered!\n"
-msgstr "s'ha trobat una línia op formada malament!\n"
+msgstr "S'ha trobat una línia op formada malament!\n"
-#: dwarf.c:532
+#: dwarf.c:436
#, c-format
msgid " Extended opcode %d: "
msgstr " Opcode estès %d: "
-#: dwarf.c:537
+#: dwarf.c:441
#, c-format
msgid ""
"End of Sequence\n"
@@ -1826,36 +1898,36 @@ msgstr ""
"Final de seqüència\n"
"\n"
-#: dwarf.c:545
+#: dwarf.c:449
#, c-format
-msgid "Length (%d) of DW_LNE_set_address op is too long\n"
-msgstr ""
+msgid "Length (%zu) of DW_LNE_set_address op is too long\n"
+msgstr "La longitud (%zu) de l'operació DW_LNE_set_address és massa llarga\n"
-#: dwarf.c:551
+#: dwarf.c:455
#, c-format
-msgid "set Address to 0x%s\n"
-msgstr "estableix Adreça a 0x%s\n"
+msgid "set Address to %#<PRIx64>\n"
+msgstr "estableix Address a %#<PRIx64>\n"
-#: dwarf.c:558
+#: dwarf.c:462
#, c-format
msgid "define new File Table entry\n"
msgstr " defineix una nova entrada de la taula de fitxers\n"
-#: dwarf.c:559 dwarf.c:3711
+#: dwarf.c:463 dwarf.c:4847
#, c-format
msgid " Entry\tDir\tTime\tSize\tName\n"
msgstr " Entrada\tDirectori\tTemps\tMida\tNom\n"
-#: dwarf.c:578
+#: dwarf.c:484
msgid "DW_LNE_define_file: Bad opcode length\n"
msgstr "DW_LNE_define_file: Longitud d'opcode incorrecta\n"
-#: dwarf.c:582
+#: dwarf.c:489
#, c-format
-msgid "set Discriminator to %s\n"
-msgstr "estableix el Discriminador a %s\n"
+msgid "set Discriminator to %<PRIu64>\n"
+msgstr "estableix Discriminator a %<PRIu64>\n"
-#: dwarf.c:657
+#: dwarf.c:555
#, c-format
msgid " UNKNOWN DW_LNE_HP_SFC opcode (%u)\n"
msgstr " opcode DW_LNE_HP_SFC desconegut (%u)\n"
@@ -1864,480 +1936,535 @@ msgstr " opcode DW_LNE_HP_SFC desconegut (%u)\n"
#. the limited range of the unsigned char data type used
#. for op_code.
#. && op_code <= DW_LNE_hi_user
-#: dwarf.c:674
+#: dwarf.c:572
#, c-format
msgid "user defined: "
msgstr "definit per l'usuari: "
-#: dwarf.c:676
+#: dwarf.c:574
#, c-format
msgid "UNKNOWN: "
msgstr "DESCONEGUT: "
-#: dwarf.c:677
+#: dwarf.c:575
#, c-format
msgid "length %d ["
msgstr "longitud %d ["
-#: dwarf.c:695 dwarf.c:771 dwarf.c:1728
+#: dwarf.c:593 dwarf.c:661
msgid "<no .debug_str section>"
msgstr "<no hi ha secció .debug_str>"
-#: dwarf.c:699
+#: dwarf.c:597
#, c-format
-msgid "DW_FORM_strp offset too big: %s\n"
-msgstr "Desplaçament DW_FORM_strp massa gran: %s\n"
+msgid "DW_FORM_strp offset too big: %#<PRIx64>\n"
+msgstr "Desplaçament DW_FORM_strp massa gran: %#<PRIx64>\n"
-#: dwarf.c:701 dwarf.c:729 dwarf.c:1733
+#: dwarf.c:598 dwarf.c:625 dwarf.c:1796
msgid "<offset is too big>"
msgstr "<el desplaçament és massa gran>"
-#: dwarf.c:711 dwarf.c:1742
-#, fuzzy
-#| msgid "<no .debug_str section>"
+#: dwarf.c:608
msgid "<no NUL byte at end of .debug_str section>"
-msgstr "<no hi ha secció .debug_str>"
+msgstr "<no hi ha byte NUL al final de la secció .debug_str>"
-#: dwarf.c:723
-#, fuzzy
-#| msgid "<no .debug_str section>"
+#: dwarf.c:620
msgid "<no .debug_line_str section>"
-msgstr "<no hi ha secció .debug_str>"
+msgstr "<no hi ha secció .debug_line_str>"
-#: dwarf.c:727
-#, fuzzy, c-format
-#| msgid "DW_FORM_strp offset too big: %s\n"
-msgid "DW_FORM_line_strp offset too big: %s\n"
-msgstr "Desplaçament DW_FORM_strp massa gran: %s\n"
+#: dwarf.c:624
+#, c-format
+msgid "DW_FORM_line_strp offset too big: %#<PRIx64>\n"
+msgstr "Desplaçament DW_FORM_line_strp massa gran: %#<PRIx64>\n"
-#: dwarf.c:739
-#, fuzzy
-#| msgid "<no .debug_str section>"
+#: dwarf.c:635
msgid "<no NUL byte at end of .debug_line_str section>"
-msgstr "<no hi ha secció .debug_str>"
+msgstr "<no hi ha byte NUL al final de la secció .debug_line_str>"
-#: dwarf.c:757
+#: dwarf.c:656
msgid "<no .debug_str_offsets.dwo section>"
msgstr "<no hi ha secció .debug_str_offsets.dwo>"
-#: dwarf.c:758
+#: dwarf.c:657
msgid "<no .debug_str_offsets section>"
msgstr "<no hi ha secció .debug_str_offset>"
-#: dwarf.c:764
-#, c-format
-msgid "DW_FORM_GNU_str_index offset too big: %s\n"
-msgstr "Desplaçament DW_FORM_GNU_str_index massa gran: %s\n"
-
-#: dwarf.c:766
-msgid "<index offset is too big>"
-msgstr "<el desplaçament de l'índex és massa gran>"
-
-#: dwarf.c:770
+#: dwarf.c:660
msgid "<no .debug_str.dwo section>"
msgstr "<no hi ha secció .debug_str.dwo>"
-#: dwarf.c:777
+#: dwarf.c:671
+#, c-format
+msgid "string index of %<PRIu64> converts to an offset of %#<PRIx64> which is too big for section %s\n"
+msgstr "l'índex de cadena de %<PRIu64> converteix a un desplaçament de %#<PRIx64> que és massa gran per a la secció %s\n"
+
+#: dwarf.c:675
+msgid "<string index too big>"
+msgstr "<el desplaçament és massa gran>"
+
+#: dwarf.c:682
#, c-format
-msgid "DW_FORM_GNU_str_index indirect offset too big: %s\n"
-msgstr "Desplaçament indirecte DW_FORM_GNU_str_index massa gran: %s\n"
+msgid "indirect offset too big: %#<PRIx64>\n"
+msgstr "el desplaçament de l'índex indirecte és massa gran: %#<PRIx64>\n"
-#: dwarf.c:779
+#: dwarf.c:683
msgid "<indirect index offset is too big>"
msgstr "<el desplaçament de l'índex indirecte és massa gran>"
-#: dwarf.c:788
-#, fuzzy
-#| msgid " Version def aux past end of section\n"
+#: dwarf.c:693
msgid "<no NUL byte at end of section>"
-msgstr " Versió def aux s'estén més enllà del final de la secció\n"
+msgstr "<no hi ha byte NUL al final de la secció>"
-#: dwarf.c:799
-msgid "<no .debug_addr section>"
-msgstr "<no hi ha secció .debug_str>"
+#: dwarf.c:705
+msgid "Cannot fetch indexed address: the .debug_addr section is missing\n"
+msgstr "No es pot obtenir l'adreça indexada: falta la secció .debug_addr\n"
-#: dwarf.c:803
+#: dwarf.c:711
#, c-format
-msgid "Offset into section %s too big: %s\n"
-msgstr "La posició dins de la secció %s és massa gran: %s\n"
+msgid "Offset into section %s too big: %#<PRIx64>\n"
+msgstr "El desplaçament dins de la secció %s és massa gran: %#<PRIx64>\n"
+
+#: dwarf.c:739
+#, c-format
+msgid "Unable to locate %s section\n"
+msgstr "No s'ha pogut trobar la secció %s!\n"
+
+#: dwarf.c:745
+#, c-format
+msgid "Section %s is too small to contain an value indexed from another section!\n"
+msgstr "La secció %s és massa petita per contenir un valor indexat d'una altra secció.\n"
+
+#: dwarf.c:752
+#, c-format
+msgid "Offset of %#<PRIx64> is too big for section %s\n"
+msgstr "El desplaçament de %#<PRIx64> és massa gran per a la secció %s\n"
#. Report the missing single zero which ends the section.
-#: dwarf.c:981
-msgid ".debug_abbrev section not zero terminated\n"
-msgstr "La secció .debug_abbrev no està terminada amb zeros\n"
+#: dwarf.c:1027
+#, c-format
+msgid "%s section not zero terminated\n"
+msgstr "La secció %s no està terminada amb zeros\n"
-#: dwarf.c:996
-#, fuzzy, c-format
-#| msgid "Unknown TAG value: %lx"
-msgid "User TAG value: %#lx"
-msgstr "Valor TAG desconegut: %lx"
+#. PR 17531: file:4bcd9ce9.
+#: dwarf.c:1054
+#, c-format
+msgid "Debug info is corrupted, abbrev size (%#<PRIx64>) is larger than abbrev section size (%#<PRIx64>)\n"
+msgstr "La informació de depuració està malmesa, la posició d'abreviació (%#<PRIx64>) és més gran que la mida de la secció abreujada (%#<PRIx64>)\n"
-#: dwarf.c:998
-#, fuzzy, c-format
-#| msgid "Unknown TAG value: %lx"
-msgid "Unknown TAG value: %#lx"
-msgstr "Valor TAG desconegut: %lx"
+#: dwarf.c:1061
+#, c-format
+msgid "Debug info is corrupted, abbrev offset (%#<PRIx64>) is larger than abbrev section size (%#<PRIx64>)\n"
+msgstr "La informació de depuració està malmesa, la posició d'abreviació (%#<PRIx64>) és més gran que la mida de la secció abreujada (%#<PRIx64>)\n"
-#: dwarf.c:1018
+#: dwarf.c:1094
+#, c-format
+msgid "User TAG value: %#<PRIx64>"
+msgstr "Valor TAG desconegut: %#<PRIx64>"
+
+#: dwarf.c:1097
+#, c-format
+msgid "Unknown TAG value: %#<PRIx64>"
+msgstr "Valor TAG desconegut: %#<PRIx64>"
+
+#: dwarf.c:1118
#, c-format
msgid "Unknown FORM value: %lx"
msgstr "Valor FORM desconegut: %lx"
-#: dwarf.c:1034
-#, fuzzy, c-format
-#| msgid "Unknown AT value: %lx"
+#: dwarf.c:1136
+#, c-format
msgid "Unknown IDX value: %lx"
-msgstr "Valor AT desconegut: %lx"
+msgstr "Valor IDX desconegut: %lx"
-#: dwarf.c:1048
-#, fuzzy, c-format
-#| msgid " %s byte block: "
-msgid "%c%s byte block: "
-msgstr " %s bloc byte: "
+#: dwarf.c:1150
+#, c-format
+msgid "%c%<PRIu64> byte block: "
+msgstr "%c%<PRIu64> bloc byte: "
-#: dwarf.c:1402
+#: dwarf.c:1487
#, c-format
msgid "(DW_OP_call_ref in frame info)"
msgstr "(DW_OP_call_ref informació en el marc)"
-#: dwarf.c:1424
+#: dwarf.c:1510
#, c-format
-msgid "size: %s "
-msgstr "mida: %s "
+msgid "size: %<PRIu64> "
+msgstr "mida: %<PRIu64> "
-#: dwarf.c:1427
+#: dwarf.c:1512
#, c-format
-msgid "offset: %s "
-msgstr "posició: %s "
+msgid "offset: %<PRIu64> "
+msgstr "posició: %<PRIu64> "
-#: dwarf.c:1446
+#: dwarf.c:1528
#, c-format
msgid "DW_OP_GNU_push_tls_address or DW_OP_HP_unknown"
msgstr "DW_OP_GNU_push_tls_address o DW_OP_HP_unknown"
-#: dwarf.c:1471
-#, fuzzy, c-format
-#| msgid "(DW_OP_call_ref in frame info)"
+#: dwarf.c:1553
+#, c-format
msgid "(%s in frame info)"
-msgstr "(DW_OP_call_ref informació en el marc)"
+msgstr "(%s en la informació del marc)"
-#: dwarf.c:1583
-#, fuzzy, c-format
-#| msgid "(DW_OP_call_ref in frame info)"
+#: dwarf.c:1656
+#, c-format
msgid "(DW_OP_GNU_variable_value in frame info)"
-msgstr "(DW_OP_call_ref informació en el marc)"
+msgstr "(DW_OP_GNU_variable_value en la informació del marc)"
-#: dwarf.c:1636
-#, fuzzy, c-format
-#| msgid "(User defined location op)"
-msgid "(User defined location op 0x%x)"
-msgstr "(Localització op definida per l'usuari)"
+#: dwarf.c:1709
+#, c-format
+msgid "(User defined location op %#x)"
+msgstr "(Localització op %#x definida per l'usuari)"
-#: dwarf.c:1638
-#, fuzzy, c-format
-#| msgid "(Unknown location op)"
-msgid "(Unknown location op 0x%x)"
-msgstr "(Localització op desconeguda)"
+#: dwarf.c:1711
+#, c-format
+msgid "(Unknown location op %#x)"
+msgstr "(Localització op %#x desconeguda)"
-#: dwarf.c:1721
-msgid "<following link not possible>"
-msgstr ""
+#: dwarf.c:1765
+msgid "<no links available>"
+msgstr "<no hi ha enllaços disponibles>"
-#: dwarf.c:1724
-#, fuzzy
-#| msgid "could not retrieve section contents"
-msgid "<could not load separate string section>"
-msgstr "no s'han pogut recuperar els continguts de la secció"
+#: dwarf.c:1789
+msgid "<no NUL byte at end of alt .debug_str section>"
+msgstr "<no hi ha byte NUL al final de la secció alt .debug_str>"
-#: dwarf.c:1732
-#, fuzzy, c-format
-#| msgid "DW_FORM_GNU_str_index offset too big: %s\n"
-msgid "DW_FORM_GNU_strp_alt offset too big: %s\n"
-msgstr "Desplaçament DW_FORM_GNU_str_index massa gran: %s\n"
+#: dwarf.c:1794
+#, c-format
+msgid "DW_FORM_GNU_strp_alt offset (%#<PRIx64>) too big or no string sections available\n"
+msgstr "Desplaçament DW_FORM_GNU_str_strp (%#<PRIx64>) massa gran o no hi ha secció de cadenes\n"
-#: dwarf.c:1765
+#: dwarf.c:1817
#, c-format
msgid "Unknown AT value: %lx"
msgstr "Valor AT desconegut: %lx"
-#: dwarf.c:1796
-#, fuzzy
-#| msgid "corrupt attribute\n"
-msgid "Corrupt attribute\n"
-msgstr "atribut corrupte\n"
+#: dwarf.c:1883
+#, c-format
+msgid "Corrupt attribute block length: %#<PRIx64>\n"
+msgstr "Longitud de bloc d'atributs malmesa :%#<PRIx64>\n"
+
+#: dwarf.c:2055
+#, c-format
+msgid "Unable to resolve ref_addr form: uvalue %<PRIx64> >= section size %<PRIx64> (%s)\n"
+msgstr "No s'ha pogut resoldre el formulari de ref_addr: uvalue %<PRIx64> >= mida de la secció %<PRIx64> (%s)\n"
-#: dwarf.c:1811
-msgid "Internal error: DWARF version is not 2, 3 or 4.\n"
-msgstr "Error intern: La versió DWARF no és 2, 3 o 4.\n"
+#: dwarf.c:2074
+#, c-format
+msgid "Unable to resolve ref form: uvalue %<PRIx64> + cu_offset %<PRIx64> > CU size %tx\n"
+msgstr "No s'ha pogut resoldre el formulari de referència: uvalue %<PRIx64> + cu_offset %<PRIx64> > mida CU %tx\n"
-#: dwarf.c:1949
-msgid "DW_FORM_data8 is unsupported when sizeof (dwarf_vma) != 8\n"
-msgstr "DW_FORM_data8 no està suportat quan sizeof (dwarf_vma) != 8\n"
+#: dwarf.c:2085
+#, c-format
+msgid "Unexpected form %lx encountered whilst finding abbreviation for type\n"
+msgstr "S'ha trobat una forma inesperada %lx mentre es buscava l'abreviatura per al tipus\n"
-#: dwarf.c:1993 dwarf.c:2018 dwarf.c:2039 dwarf.c:2061
-msgid "Block ends prematurely\n"
+#: dwarf.c:2093
+#, c-format
+msgid "Unable to find abbreviations for CU offset %<PRIx64>\n"
+msgstr "No s'han pogut trobar abreviacions per al desplaçament CU %<PRIx64>\n"
+
+#: dwarf.c:2099
+#, c-format
+msgid "Empty abbreviation list encountered for CU offset %<PRIx64>\n"
+msgstr "S'ha trobat una llista d'abreviatura buida per al desplaçament CU %<PRIx64>\n"
+
+#: dwarf.c:2131
+#, c-format
+msgid "Unable to find entry for abbreviation %lu\n"
msgstr ""
+"No s'ha pogut trobar la secció %lu\n"
+"\n"
-#: dwarf.c:2004 dwarf.c:2025 dwarf.c:2046 dwarf.c:2070
-#, fuzzy, c-format
-#| msgid "corrupt index table entry: %x\n"
-msgid "Corrupt attribute block length: %lx\n"
-msgstr "entrada de taula d'índex corrrupta: %x\n"
+#: dwarf.c:2285
+msgid "corrupt discr_list - not using a block form\n"
+msgstr "discrlist malmès - no s'utilitza un formulari de bloc\n"
-#: dwarf.c:2081
-#, fuzzy, c-format
-#| msgid " (indirect string, offset: 0x%s): %s"
-msgid "%c(indirect string, offset: 0x%s): %s"
-msgstr "(cadena indirecta, posició: 0x%s):%s"
+#: dwarf.c:2292
+msgid "corrupt discr_list - block not long enough\n"
+msgstr "discrlist malmès - bloc no prou llarg\n"
-#: dwarf.c:2088
-#, fuzzy, c-format
-#| msgid " (indirect string, offset: 0x%s): %s"
-msgid "%c(indirect line string, offset: 0x%s): %s"
-msgstr "(cadena indirecta, posició: 0x%s):%s"
+#: dwarf.c:2327
+#, c-format
+msgid "corrupt discr_list - unrecognized discriminant byte %#x\n"
+msgstr "discrlist malmès - byte discriminant no reconegut %#x\n"
-#: dwarf.c:2099
-#, fuzzy, c-format
-#| msgid " (indexed string: 0x%s): %s"
-msgid "%c(indexed string: 0x%s): %s"
-msgstr "(cadena indexada: 0x%s):%s"
+#: dwarf.c:2426
+#, c-format
+msgid "implementation defined: %#<PRIx64>"
+msgstr "implementació definida: %<PRIx64>"
-#: dwarf.c:2108
-#, fuzzy, c-format
-#| msgid " (alt indirect string, offset: 0x%s)"
-msgid "%c(alt indirect string, offset: 0x%s) %s"
-msgstr "(cadena indirecta alternativa, posició: 0x%s)"
+#: dwarf.c:2428
+#, c-format
+msgid "unknown: %#<PRIx64>"
+msgstr "desconegut: %<PRIx64>"
-#: dwarf.c:2133
-#, fuzzy, c-format
-#| msgid " (addr_index: 0x%s): %s"
-msgid "%c(addr_index: 0x%s): %s"
-msgstr " (addr_index: 0x%s): %s"
+#: dwarf.c:2459
+msgid "Corrupt attribute\n"
+msgstr "Atribut malmès\n"
+
+#: dwarf.c:2482
+msgid "Internal error: DW_FORM_ref_addr is not supported in DWARF version 1.\n"
+msgstr "Error intern: DW_FORM_ref_addr no és compatible amb la versió 1 de DWARF.\n"
+
+#: dwarf.c:2676
+msgid "Block ends prematurely\n"
+msgstr "El bloc acaba prematurament\n"
+
+#. We have already displayed the form name.
+#: dwarf.c:2711 dwarf.c:2724 dwarf.c:2748
+#, c-format
+msgid "%c(offset: %#<PRIx64>): %s"
+msgstr "%c(desplaçament: %#<PRIx64>): %s"
+
+#: dwarf.c:2714
+#, c-format
+msgid "%c(indirect string, offset: %#<PRIx64>): %s"
+msgstr "%c(cadena indirecta, posició: %#<PRIx64>): %s"
+
+#: dwarf.c:2727
+#, c-format
+msgid "%c(indirect line string, offset: %#<PRIx64>): %s"
+msgstr "%c(cadena indirecta, posició: %#<PRIx64>): %s"
-#: dwarf.c:2139
+#: dwarf.c:2751
#, c-format
-msgid "Unrecognized form: %lu\n"
-msgstr "Forma no reconeguda: %lu\n"
+msgid "%c(indexed string: %#<PRIx64>): %s"
+msgstr "%c(cadena indexada: %#<PRIx64>): %s"
-#: dwarf.c:2200
+#. We have already displayed the form name.
+#: dwarf.c:2761
+#, c-format
+msgid "%c(offset: %#<PRIx64>) %s"
+msgstr "%c(desplaçament: %#<PRIx64>) %s"
+
+#: dwarf.c:2764
+#, c-format
+msgid "%c(alt indirect string, offset: %#<PRIx64>) %s"
+msgstr "%c(cadena indirecta alternativa, posició: %#<PRIx64>) %s"
+
+#: dwarf.c:2823
+#, c-format
+msgid "loc_offset %<PRIu64> too big\n"
+msgstr "loc_offset %<PRIu64> massa gran\n"
+
+#: dwarf.c:2853
+#, c-format
+msgid "%c(index: %#<PRIx64>): %#<PRIx64>"
+msgstr "%c(índex: %#<PRIx64>): %#<PRIx64>"
+
+#: dwarf.c:2864
+#, c-format
+msgid "Unrecognized form: %#lx\n"
+msgstr "Forma no reconeguda: %lx\n"
+
+#: dwarf.c:2878
+#, c-format
+msgid "CU @ %#<PRIx64> has multiple loclists_base values (%#<PRIx64> and %#<PRIx64>)\n"
+msgstr "CU @ %#<PRIx64> té múltiples valors de loclists_base (%#<PRIx64> i %#<PRIx64>)\n"
+
+#: dwarf.c:2885
+#, c-format
+msgid "CU @ %#<PRIx64> has has a negative loclists_base value of %#<PRIx64> - treating as zero\n"
+msgstr "CU @ %#<PRIx64> té un valor negatiu de loclists_base de %#<PRIx64> - es tracta com a zero\n"
+
+#: dwarf.c:2899
+#, c-format
+msgid "CU @ %#<PRIx64> has multiple str_offsets_base values %#<PRIx64> and %#<PRIx64>)\n"
+msgstr "CU @ %#<PRIx64> té múltiples valors de str_offsets_base %#<PRIx64> i %#<PRIx64>)\n"
+
+#: dwarf.c:2906
+#, c-format
+msgid "CU @ %#<PRIx64> has has a negative stroffsets_base value of %#<PRIx64> - treating as zero\n"
+msgstr "CU @ %#<PRIx64> té un valor negatiu de stroffsets_base de %#<PRIx64> - es tracta com a zero\n"
+
+#: dwarf.c:2974
msgid "More location offset attributes than DW_AT_GNU_locview attributes\n"
-msgstr ""
+msgstr "Més atributs de desplaçament de la ubicació que els atributs DW_AT_GNU_locview\n"
-#: dwarf.c:2212
+#: dwarf.c:2985
+#, c-format
+msgid "The number of views (%u) is greater than the number of locations (%u)\n"
+msgstr "secció El nombre de visualitzacions %u és més gran que el nombre de seccions (%u)\n"
+
+#: dwarf.c:2992
msgid "More DW_AT_GNU_locview attributes than location offset attributes\n"
-msgstr ""
+msgstr "Més atributs DW_AT_GNU_locview que atributs de desplaçament de la ubicació\n"
-#: dwarf.c:2272 dwarf.c:2297 dwarf.c:2313
+#: dwarf.c:3081 dwarf.c:3115 dwarf.c:3130
#, c-format
msgid "Unsupported form (%s) for attribute %s\n"
-msgstr ""
-
-#: dwarf.c:2274 dwarf.c:2299 dwarf.c:4344 dwarf.c:4654 readelf.c:5849
-#: readelf.c:5924 readelf.c:5942 readelf.c:5960 readelf.c:10408
-#: readelf.c:11040 readelf.c:15684 readelf.c:15716
-msgid "<unknown>"
-msgstr "<desconegut>"
+msgstr "Formulari no admès (%s) per a l'atribut %s\n"
-#: dwarf.c:2336
+#: dwarf.c:3177
#, c-format
msgid "(not inlined)"
msgstr "(no està en línia)"
-#: dwarf.c:2339
+#: dwarf.c:3180
#, c-format
msgid "(inlined)"
msgstr "(en línia)"
-#: dwarf.c:2342
+#: dwarf.c:3183
#, c-format
msgid "(declared as inline but ignored)"
msgstr "(declarat com en línia però s'ignorarà)"
-#: dwarf.c:2345
+#: dwarf.c:3186
#, c-format
msgid "(declared as inline and inlined)"
msgstr "(declarat com en línia i s'ha posat en línia)"
-#: dwarf.c:2348
-#, c-format
-msgid " (Unknown inline attribute value: %s)"
-msgstr " (Valor de l'atribut en línia desconegut: %s)"
-
-#: dwarf.c:2405
+#: dwarf.c:3189
#, c-format
-msgid "(implementation defined: %s)"
-msgstr "(implementació definida: %s)"
+msgid " (Unknown inline attribute value: %#<PRIx64>)"
+msgstr " (Valor de l'atribut en línia desconegut: %#<PRIx64>)"
-#: dwarf.c:2408
-#, c-format
-msgid "(Unknown: %s)"
-msgstr "(Desconegut: %s)"
-
-#: dwarf.c:2453
+#: dwarf.c:3241
#, c-format
msgid "(user defined type)"
msgstr "(tipus definit per l'usuari)"
-#: dwarf.c:2455
+#: dwarf.c:3243
#, c-format
msgid "(unknown type)"
msgstr "(tipus desconegut)"
-#: dwarf.c:2468
+#: dwarf.c:3256
#, c-format
msgid "(unknown accessibility)"
msgstr "(accessibilitat desconeguda)"
-#: dwarf.c:2480
+#: dwarf.c:3268
#, c-format
msgid "(unknown visibility)"
msgstr "(visibilitat desconeguda)"
-#: dwarf.c:2493
-#, fuzzy, c-format
-#| msgid "(user defined)"
+#: dwarf.c:3281
+#, c-format
msgid "(user specified)"
-msgstr "(definit per l'usuari)"
+msgstr "(especificat per l'usuari)"
-#: dwarf.c:2495
-#, fuzzy, c-format
-#| msgid "(unknown virtuality)"
+#: dwarf.c:3283
+#, c-format
msgid "(unknown endianity)"
-msgstr "(virtualitat desconeguda)"
+msgstr "(codificació endian desconeguda)"
-#: dwarf.c:2507
+#: dwarf.c:3295
#, c-format
msgid "(unknown virtuality)"
msgstr "(virtualitat desconeguda)"
-#: dwarf.c:2519
+#: dwarf.c:3307
#, c-format
msgid "(unknown case)"
msgstr "(cas desconegut)"
-#: dwarf.c:2537
+#: dwarf.c:3325
#, c-format
msgid "(user defined)"
msgstr "(definit per l'usuari)"
-#: dwarf.c:2539
+#: dwarf.c:3327
#, c-format
msgid "(unknown convention)"
msgstr "(convenció desconeguda)"
-#: dwarf.c:2548
+#: dwarf.c:3336
#, c-format
msgid "(undefined)"
msgstr "(no definit)"
-#: dwarf.c:2558
-#, fuzzy, c-format
-#| msgid "(undefined)"
+#: dwarf.c:3346
+#, c-format
msgid "(unsigned)"
-msgstr "(no definit)"
+msgstr "(no signat)"
-#: dwarf.c:2559
+#: dwarf.c:3347
#, c-format
msgid "(leading overpunch)"
-msgstr ""
+msgstr "(sobrepunch inicial)"
-#: dwarf.c:2560
+#: dwarf.c:3348
#, c-format
msgid "(trailing overpunch)"
-msgstr ""
+msgstr "(sobrepunch al final)"
-#: dwarf.c:2561
+#: dwarf.c:3349
#, c-format
msgid "(leading separate)"
-msgstr ""
+msgstr "(separació inicial)"
-#: dwarf.c:2562
+#: dwarf.c:3350
#, c-format
msgid "(trailing separate)"
-msgstr ""
+msgstr "(arrossegament separat)"
-#: dwarf.c:2563 dwarf.c:2574 dwarf.c:2584
-#, fuzzy, c-format
-#| msgid "unrecognized: %-7lx"
+#: dwarf.c:3351 dwarf.c:3362
+#, c-format
msgid "(unrecognised)"
-msgstr "no reconegut: %-7lx"
+msgstr "(no reconegut)"
-#: dwarf.c:2571
+#: dwarf.c:3359
#, c-format
msgid "(no)"
-msgstr ""
+msgstr "(no)"
-#: dwarf.c:2572
+#: dwarf.c:3360
#, c-format
msgid "(in class)"
-msgstr ""
+msgstr "(a classe)"
-#: dwarf.c:2573
+#: dwarf.c:3361
#, c-format
msgid "(out of class)"
-msgstr ""
+msgstr "(fora de classe)"
-#: dwarf.c:2582
-#, c-format
-msgid "(label)"
-msgstr ""
-
-#: dwarf.c:2583
-#, c-format
-msgid "(range)"
-msgstr ""
-
-#: dwarf.c:2610
+#: dwarf.c:3400
#, c-format
msgid " (location list)"
msgstr "(llista de localitzacions)"
-#: dwarf.c:2631 dwarf.c:5616 dwarf.c:5773 dwarf.c:5955
+#: dwarf.c:3423 dwarf.c:6830 dwarf.c:7032 dwarf.c:7207
#, c-format
msgid " [without DW_AT_frame_base]"
msgstr " [sense DW_AT_frame_base]"
-#: dwarf.c:2664
-#, fuzzy, c-format
-#| msgid "Offset %s used as value for DW_AT_import attribute of DIE at offset %lx is too big.\n"
-msgid "Offset %s used as value for DW_AT_import attribute of DIE at offset 0x%lx is too big.\n"
-msgstr "La posició %s usada com a valor per a l'atribut DW_AT_import de DIE al desplaçament %lx és massa gran.\n"
+#: dwarf.c:3453
+#, c-format
+msgid "Offset %#<PRIx64> used as value for DW_AT_import attribute of DIE at offset %#tx is too big.\n"
+msgstr "La posició %#<PRIx64> usada com a valor per a l'atribut DW_AT_import de DIE al desplaçament %#tx és massa gran.\n"
-#: dwarf.c:2674
+#: dwarf.c:3459
#, c-format
msgid "\t[Abbrev Number: %ld"
msgstr "[Nom d'abreviatura: %ld"
-#: dwarf.c:2759
-#, fuzzy, c-format
-#| msgid ""
-#| "Raw dump of debug contents of section %s:\n"
-#| "\n"
+#: dwarf.c:3554
+#, c-format
msgid ""
"Raw dump of debug contents of section %s (loaded from %s):\n"
"\n"
-msgstr "Volcat en brut dels continguts de depuració de la secció %s:\n"
+msgstr "Volcat en brut dels continguts de depuració de la secció %s (carregada de %s):\n"
-#: dwarf.c:2762
+#: dwarf.c:3557
#, c-format
msgid ""
"Raw dump of debug contents of section %s:\n"
"\n"
msgstr "Volcat en brut dels continguts de depuració de la secció %s:\n"
-#: dwarf.c:2767
-#, fuzzy, c-format
-#| msgid ""
-#| "Contents of the %s section:\n"
-#| "\n"
+#: dwarf.c:3562
+#, c-format
msgid ""
"Contents of the %s section (loaded from %s):\n"
"\n"
msgstr ""
-"Continguts de la secció %s:\n"
+"Continguts de la secció %s (carregada de %s):\n"
"\n"
-#: dwarf.c:2770
+#: dwarf.c:3565
#, c-format
msgid ""
"Contents of the %s section:\n"
@@ -2346,359 +2473,405 @@ msgstr ""
"Continguts de la secció %s:\n"
"\n"
-#: dwarf.c:2819
+#: dwarf.c:3692
+msgid "Unexpected form in top DIE\n"
+msgstr "Formulari inesperat al DIE superior\n"
+
+#: dwarf.c:3727
+msgid "Unexpected form of DW_AT_rnglists_base in the top DIE\n"
+msgstr "Forma inesperada de DW_AT_rnglists_base a la part superior de DIE\n"
+
+#: dwarf.c:3738
+msgid "Unexpected form of DW_AT_addr_base in the top DIE\n"
+msgstr "Forma inesperada de DW_AT_addr_base a la part superior de DIE\n"
+
+#: dwarf.c:3785
#, c-format
-msgid "Reserved length value (0x%s) found in section %s\n"
-msgstr "S'ha trobat un valor reservat de longitud (0x%s) a la secció %s\n"
+msgid "Reserved length value (%#<PRIx64>) found in section %s\n"
+msgstr "S'ha trobat un valor reservat de longitud (%#<PRIx64>) a la secció %s\n"
-#: dwarf.c:2831
+#: dwarf.c:3795
#, c-format
-msgid "Corrupt unit length (0x%s) found in section %s\n"
-msgstr "S'ha trobat un valor corrupte de longitud (0x%s) a la secció %s\n"
+msgid "Corrupt unit length (got %#<PRIx64> expected at most %#tx) in section %s\n"
+msgstr "Mida unitària malmesa (s'obté %#<PRIx64> s'esperava com a molt %#tx) a la secció %s\n"
-#: dwarf.c:2839
-#, fuzzy, c-format
-#| msgid "No comp units in %s section ?"
+#: dwarf.c:3805
+#, c-format
msgid "No comp units in %s section ?\n"
-msgstr "No hi ha unitats comp a la secció %s ?"
+msgstr "No hi ha unitats comp a la secció %s ?\n"
-#: dwarf.c:2848
-#, fuzzy, c-format
-#| msgid "Not enough memory for a debug info array of %u entries"
+#: dwarf.c:3819
+#, c-format
msgid "Not enough memory for a debug info array of %u entries\n"
-msgstr "No hi ha suficient memòria per a una matriu de informació de depuració amb %u entrades"
+msgstr "No hi ha suficient memòria per a una matriu de informació de depuració amb %u entrades\n"
-#: dwarf.c:2877
+#: dwarf.c:3853
#, c-format
msgid "Unable to locate %s section!\n"
msgstr "No s'ha pogut trobar la secció %s!\n"
-#: dwarf.c:2957
+#: dwarf.c:4020
#, c-format
msgid "Invalid pointer size (%d) in compunit header, using %d instead\n"
-msgstr ""
+msgstr "Mida no vàlida del punter (%d) a la capçalera de la compunit, s'utilitzarà %d en el seu lloc\n"
-#: dwarf.c:3000
+#: dwarf.c:4054
#, c-format
-msgid " Compilation Unit @ offset 0x%s:\n"
-msgstr " Unitat de compilació @ posició 0x%s:\n"
+msgid " Compilation Unit @ offset %#<PRIx64>:\n"
+msgstr " Unitat de compilació @ posició %#<PRIx64>:\n"
-#: dwarf.c:3002
+#: dwarf.c:4056
#, c-format
-msgid " Length: 0x%s (%s)\n"
-msgstr " Longitud: 0x%s (%s)\n"
+msgid " Length: %#<PRIx64> (%s)\n"
+msgstr " Longitud: %#<PRIx64> (%s)\n"
-#: dwarf.c:3005
+#: dwarf.c:4059
#, c-format
msgid " Version: %d\n"
msgstr " Versió: %d\n"
-#: dwarf.c:3006
+#: dwarf.c:4064
#, c-format
-msgid " Abbrev Offset: 0x%s\n"
-msgstr " Posició d'abreviatura: 0x%s\n"
+msgid " Unit Type: %s (%x)\n"
+msgstr " Tipus d'unitat: %s (%x)\n"
-#: dwarf.c:3008
+#: dwarf.c:4068
+#, c-format
+msgid " Abbrev Offset: %#<PRIx64>\n"
+msgstr " Posició d'abreviatura: %#<PRIx64>\n"
+
+#: dwarf.c:4070
#, c-format
msgid " Pointer Size: %d\n"
msgstr " Mida del punter: %d\n"
-#: dwarf.c:3013
+#: dwarf.c:4073
+#, c-format
+msgid " Signature: %#<PRIx64>\n"
+msgstr " Signatura: %#<PRIx64>\n"
+
+#: dwarf.c:4074
#, c-format
-msgid " Signature: 0x%s\n"
-msgstr " Signatura: 0x%s\n"
+msgid " Type Offset: %#<PRIx64>\n"
+msgstr " Posició de tipus: %#<PRIx64>\n"
-#: dwarf.c:3016
+#: dwarf.c:4077
#, c-format
-msgid " Type Offset: 0x%s\n"
-msgstr " Posició de tipus: 0x%s\n"
+msgid " DWO ID: %#<PRIx64>\n"
+msgstr "ID DWO: %#<PRIx64>\n"
-#: dwarf.c:3024
+#: dwarf.c:4083
#, c-format
msgid " Section contributions:\n"
msgstr "Contribucions de la secció:\n"
-#: dwarf.c:3025
+#: dwarf.c:4084
#, c-format
-msgid " .debug_abbrev.dwo: 0x%s 0x%s\n"
-msgstr " .debug_abbrev.dwo: 0x%s 0x%s\n"
+msgid " .debug_abbrev.dwo: %#<PRIx64> %#zx\n"
+msgstr " .debug_abbrev.dwo: %#<PRIx64> %#zx\n"
-#: dwarf.c:3028
+#: dwarf.c:4086
#, c-format
-msgid " .debug_line.dwo: 0x%s 0x%s\n"
-msgstr " .debug_line.dwo: 0x%s 0x%s\n"
+msgid " .debug_line.dwo: %#<PRIx64> %#zx\n"
+msgstr " .debug_line.dwo: %#<PRIx64> %#zx\n"
-#: dwarf.c:3031
+#: dwarf.c:4088
#, c-format
-msgid " .debug_loc.dwo: 0x%s 0x%s\n"
-msgstr " .debug_loc.dwo: 0x%s 0x%s\n"
+msgid " .debug_loc.dwo: %#<PRIx64> %#zx\n"
+msgstr " .debug_loc.dwo: %#<PRIx64> %#zx\n"
-#: dwarf.c:3034
+#: dwarf.c:4090
#, c-format
-msgid " .debug_str_offsets.dwo: 0x%s 0x%s\n"
-msgstr " .debug_str_offsets.dwo: 0x%s 0x%s\n"
-
-#: dwarf.c:3044 dwarf.c:4833 dwarf.c:6381 dwarf.c:8487
-#, fuzzy, c-format
-#| msgid "Debug info is corrupted, length of CU at %s extends beyond end of section (length = %s)\n"
-msgid "Debug info is corrupted, %s header at %#lx has length %s\n"
-msgstr "La informació de depuració està corrupta, la mida de CU a %s s'estén més enllà del final de la secció (longitud = %s)\n"
+msgid " .debug_str_offsets.dwo: %#<PRIx64> %#zx\n"
+msgstr " .debug_str_offsets.dwo: %#<PRIx64> %#zx\n"
-#: dwarf.c:3057
+#: dwarf.c:4100
#, c-format
-msgid "CU at offset %s contains corrupt or unsupported version number: %d.\n"
-msgstr "La CU a la posició %s conté un número de versió corrupte o no suportat: %d\n"
+msgid "CU at offset %#<PRIx64> contains corrupt or unsupported version number: %d.\n"
+msgstr "La CU a la posició %#<PRIx64> conté un nombre de versió malmès o no suportat: %d.\n"
-#: dwarf.c:3066
-#, fuzzy, c-format
-#| msgid "CU at offset %s contains corrupt or unsupported version number: %d.\n"
-msgid "CU at offset %s contains corrupt or unsupported unit type: %d.\n"
-msgstr "La CU a la posició %s conté un número de versió corrupte o no suportat: %d\n"
-
-#: dwarf.c:3076
+#: dwarf.c:4112
#, c-format
-msgid "Debug info is corrupted, abbrev offset (%lx) is larger than abbrev section size (%lx)\n"
-msgstr "La informació de depuració està corrupta, la posició d'abreviació (%lx) és més gran que la mida de la secció abreujada (%lx)\n"
-
-#: dwarf.c:3082
-#, fuzzy, c-format
-#| msgid "Debug info is corrupted, abbrev offset (%lx) is larger than abbrev section size (%lx)\n"
-msgid "Debug info is corrupted, abbrev size (%lx) is larger than abbrev section size (%lx)\n"
-msgstr "La informació de depuració està corrupta, la posició d'abreviació (%lx) és més gran que la mida de la secció abreujada (%lx)\n"
+msgid "CU at offset %#<PRIx64> contains corrupt or unsupported unit type: %d.\n"
+msgstr "La CU a la posició %#<PRIx64> conté un nombre de versió malmès o no suportat: %d\n"
-#: dwarf.c:3128
+#: dwarf.c:4157
#, c-format
msgid " <%d><%lx>: Abbrev Number: 0\n"
-msgstr " <%d><%lx>: Número d'abreviatura: 0\n"
+msgstr " <%d><%lx>: Nombre d'abreviatura: 0\n"
-#: dwarf.c:3138
+#: dwarf.c:4167
#, c-format
msgid "Bogus end-of-siblings marker detected at offset %lx in %s section\n"
msgstr "S'ha detectat un marcador end-of-siblings fals a la posició %lx a la secció %s\n"
-#: dwarf.c:3142
+#: dwarf.c:4171
msgid "Further warnings about bogus end-of-sibling markers suppressed\n"
msgstr "S'han suprimit els advertiments addicionals sobre marcadors end-of-sibling falsos\n"
-#: dwarf.c:3161
+#: dwarf.c:4194
#, c-format
msgid " <%d><%lx>: Abbrev Number: %lu"
-msgstr " <%d><%lx>: Número d'abreviatura: %lu"
+msgstr " <%d><%lx>: Nombre d'abreviatura: %lu"
-#: dwarf.c:3165
+#: dwarf.c:4198
#, c-format
msgid " <%d><%lx>: ...\n"
msgstr " <%d><%lx>: ...\n"
-#: dwarf.c:3184
-#, fuzzy, c-format
-#| msgid "DIE at offset %lx refers to abbreviation number %lu which does not exist\n"
-msgid "DIE at offset 0x%lx refers to abbreviation number %lu which does not exist\n"
-msgstr "El DIE a la posició %lx es refereix a un número %lu d'una abreviatura que no existeix\n"
+#: dwarf.c:4218
+#, c-format
+msgid "DIE at offset %#lx refers to abbreviation number %lu which does not exist\n"
+msgstr "El DIE a la posició %#lx es refereix a un nombre %lu d'una abreviatura que no existeix\n"
+
+#: dwarf.c:4281
+#, c-format
+msgid "CU @ %#<PRIx64> has has a negative rnglists_base value of %#<PRIx64> - treating as zero\n"
+msgstr "CU { %#<PRIx64> té un valor negatiu de rnglists_base de %#<PRIx64> - es tracta com a zero\n"
-#: dwarf.c:3257
+#: dwarf.c:4329
msgid "DIE has locviews without loclist\n"
-msgstr ""
+msgstr "DIE té locviews sense loclist\n"
-#: dwarf.c:3372
-#, fuzzy, c-format
-#| msgid "The line info appears to be corrupt - the section is too small\n"
-msgid "The length field (0x%lx) in the debug_line header is wrong - the section is too small\n"
-msgstr "La informació de línia sembla estar corrupta - la secció és massa petita\n"
+#: dwarf.c:4440
+#, c-format
+msgid "The length field (%#<PRIx64>) in the debug_line header is wrong - the section is too small\n"
+msgstr "La longitud del camp (%#<PRIx64>) a la debug_line header és incorrecta - la secció és massa petita\n"
-#: dwarf.c:3386
-#, fuzzy
-#| msgid "Only DWARF version 2, 3 and 4 line info is currently supported.\n"
+#: dwarf.c:4457
msgid "Only DWARF version 2, 3, 4 and 5 line info is currently supported.\n"
-msgstr "Sols estan actualment suportades les versions DWARF 2, 3 i 4.\n"
+msgstr "Sols estan actualment suportades les versions DWARF 2, 3 , 4 i 5.\n"
-#: dwarf.c:3398 dwarf.c:6048 dwarf.c:6794
+#: dwarf.c:4469 dwarf.c:7370 dwarf.c:8308
#, c-format
msgid "The %s section contains unsupported segment selector size: %d.\n"
-msgstr ""
+msgstr "La secció %s conté una mida de selector de segments no admesa: %d.\n"
-#: dwarf.c:3415
+#: dwarf.c:4486
msgid "Invalid maximum operations per insn.\n"
msgstr "Màxim invàlid de operacions per insn.\n"
-#: dwarf.c:3431
-#, fuzzy, c-format
-#| msgid "Debug info is corrupted, length of CU at %s extends beyond end of section (length = %s)\n"
-msgid "Line length %s extends beyond end of section\n"
-msgstr "La informació de depuració està corrupta, la mida de CU a %s s'estén més enllà del final de la secció (longitud = %s)\n"
-
-#: dwarf.c:3463
-#, fuzzy
-#| msgid "Corrupt file name table entry\n"
-msgid "Corrupt directory format table entry\n"
-msgstr "Entrada corrupta de taula de noms de fitxers\n"
+#: dwarf.c:4513
+msgid "Directory Table"
+msgstr "Taula de directoris"
-#: dwarf.c:3465
-#, fuzzy
-#| msgid "Corrupt file name table entry\n"
-msgid "Corrupt file name format table entry\n"
-msgstr "Entrada corrupta de taula de noms de fitxers\n"
+#: dwarf.c:4513
+msgid "File Name Table"
+msgstr "Taul de noms de fitxers"
-#: dwarf.c:3475
-#, fuzzy
-#| msgid "Corrupt header in group section `%s'\n"
-msgid "Corrupt directory list\n"
-msgstr "Capçalera corrupta en la secció de grup `%s'\n"
+#: dwarf.c:4517
+#, c-format
+msgid "Unexpectedly large number of columns in the %s (%u)\n"
+msgstr "Nombre inesperadament llarg de columna a %s (%u)\n"
-#: dwarf.c:3477 dwarf.c:4160 dwarf.c:4183 dwarf.c:4230
-#, fuzzy
-#| msgid "Corrupt file name table entry\n"
-msgid "Corrupt file name list\n"
-msgstr "Entrada corrupta de taula de noms de fitxers\n"
+#: dwarf.c:4527
+#, c-format
+msgid "%s: Corrupt format description entry\n"
+msgstr "%s: Entrada malmesa de descripció de format\n"
-#: dwarf.c:3484 dwarf.c:3681
+#: dwarf.c:4535
#, c-format
msgid ""
"\n"
-" The Directory Table is empty.\n"
+" The %s is empty.\n"
msgstr ""
"\n"
-" La taula de directoris està buida.\n"
+" La %s és buida.\n"
-#: dwarf.c:3486 dwarf.c:3706
+#: dwarf.c:4541
#, c-format
-msgid ""
-"\n"
-" The File Name Table is empty.\n"
-msgstr ""
-"\n"
-" La taula de noms de fitxers està buida.\n"
+msgid "%s: Corrupt entry count %#<PRIx64>\n"
+msgstr "%s: Nombre d'entrades malmès %#<PRIx64>\n"
-#: dwarf.c:3491 dwarf.c:3686
+#: dwarf.c:4547
#, c-format
-msgid ""
-"\n"
-" The Directory Table (offset 0x%lx):\n"
-msgstr ""
-"\n"
-" La taula de directoris (posició 0x%lx)::\n"
+msgid "%s: format count is zero, but the table is not empty\n"
+msgstr "%s: el nombre de formats és zero, però la taula no està buida\n"
-#: dwarf.c:3494 dwarf.c:3709
+#: dwarf.c:4552
#, c-format
msgid ""
"\n"
-" The File Name Table (offset 0x%lx):\n"
+" The %s (offset %#tx, lines %<PRIu64>, columns %u):\n"
msgstr ""
"\n"
-" La taula de noms de fitxers (posició 0x%lx):\n"
+" The %s (desplaçament %#tx, líniess %<PRIu64>, columnes %u):\n"
-#: dwarf.c:3497
+#: dwarf.c:4555
#, c-format
msgid " Entry"
-msgstr ""
+msgstr " Entrada"
-#: dwarf.c:3512
-#, fuzzy, c-format
-#| msgid "Name"
+#: dwarf.c:4569
+#, c-format
msgid "\tName"
-msgstr "Nom"
+msgstr "\tNom"
-#: dwarf.c:3515
+#: dwarf.c:4572
#, c-format
msgid "\tDir"
-msgstr ""
+msgstr "\tDir"
-#: dwarf.c:3518
+#: dwarf.c:4575
#, c-format
msgid "\tTime"
-msgstr ""
+msgstr "\tHora"
-#: dwarf.c:3521
+#: dwarf.c:4578
#, c-format
msgid "\tSize"
-msgstr ""
+msgstr "\tMida"
+
+#: dwarf.c:4581
+#, c-format
+msgid "\tMD5\t\t\t"
+msgstr "\tMD5\t\t\t"
-#: dwarf.c:3524
+#: dwarf.c:4584
#, c-format
-msgid "\tMD5"
+msgid "\t(Unknown format content type %<PRIu64>)"
+msgstr "\t(Tipus desconegut de contigut de format %<PRIu64>)"
+
+#: dwarf.c:4618
+#, c-format
+msgid ""
+"\n"
+"%s: Corrupt entries list\n"
msgstr ""
+"\n"
+"%s: Llista malmesa d'entrades\n"
-#: dwarf.c:3527
-#, fuzzy, c-format
-#| msgid "unknown format type `%s'"
-msgid "\t(Unknown format content type %s)"
-msgstr "Tipus `%s' desconegut de format "
+#: dwarf.c:4644
+msgid "corrupt .debug_sup section: size is too small\n"
+msgstr "secció .debu_sup malmesa: la mida és massa petita\n"
-#: dwarf.c:3564
-#, fuzzy
-#| msgid "Corrupt header in the %s section.\n"
-msgid "Corrupt directory entries list\n"
-msgstr "Capçalera corrupta a la secció %s.\n"
+#: dwarf.c:4651
+msgid "corrupt .debug_sup section: version < 5\n"
+msgstr "secció .debug_sup malmesa: versió < 5\n"
-#: dwarf.c:3566
-#, fuzzy
-#| msgid "Corrupt file name table entry\n"
-msgid "Corrupt file name entries list\n"
-msgstr "Entrada corrupta de taula de noms de fitxers\n"
+#: dwarf.c:4655
+msgid "corrupt .debug_sup section: is_supplementary not 0 or 1\n"
+msgstr "secció .debug_sup malmesa: és suplementari no 0 o 1\n"
+
+#: dwarf.c:4659
+msgid "corrupt .debug_sup section: filename not empty in supplementary section\n"
+msgstr "secció malmesa .debugsup: el nom del fitxer no està buit a la secció suplementària\n"
+
+#: dwarf.c:4664
+msgid "corrupt .debug_sup section: filename is not NUL terminated\n"
+msgstr "secció .debug_sup malmesa: el nom de fitxer no està acabat amb NUL\n"
+
+#: dwarf.c:4672
+msgid "corrupt .debug_sup section: bad LEB128 field for checksum length\n"
+msgstr "secció .debug_sup malmesa: el camp LEB128 és incorrecte per a la longitud de la suma de verificació\n"
+
+#: dwarf.c:4678
+msgid "corrupt .debug_sup section: checksum length is longer than the remaining section length\n"
+msgstr "secció .debug_sup malmesa: la longitud de la suma de verificació és més llarga que la longitud de la secció restant\n"
+
+#: dwarf.c:4683
+#, c-format
+msgid "corrupt .debug_sup section: there are %#<PRIx64> extra, unused bytes at the end of the section\n"
+msgstr "secció .debug_sup malmesa: hi ha %#<PRIx64> additional, bytes sense usar al final de la secció\n"
-#: dwarf.c:3614 dwarf.c:4030
+#: dwarf.c:4688
+#, c-format
+msgid " Version: %u\n"
+msgstr " Versió: %u\n"
+
+#: dwarf.c:4689
+#, c-format
+msgid " Is Supp: %u\n"
+msgstr " Versió: %u\n"
+
+#: dwarf.c:4690
+#, c-format
+msgid " Filename: %s\n"
+msgstr " Nom de fitxer: %s\n"
+
+#: dwarf.c:4691
+#, c-format
+msgid " Checksum Len: %<PRIu64>\n"
+msgstr "Longitud de la suma de verificació: %<PRIu64>\n"
+
+#: dwarf.c:4694
+#, c-format
+msgid " Checksum: "
+msgstr " Suma de verificació:"
+
+#: dwarf.c:4742 dwarf.c:5160
msgid "Partial .debug_line. section encountered without a prior full .debug_line section\n"
-msgstr ""
+msgstr ".debug_line parcial. s'ha trobat una secció sense una secció completa prèvia de .debug-line\n"
-#: dwarf.c:3627 dwarf.c:5151
+#: dwarf.c:4755
#, c-format
-msgid " Offset: 0x%lx\n"
-msgstr " Posició: 0x%lx\n"
+msgid " Offset: %#tx\n"
+msgstr " Posició: %#tx\n"
-#: dwarf.c:3628
+#: dwarf.c:4756
#, c-format
-msgid " Length: %ld\n"
-msgstr " Longitud: %ld\n"
+msgid " Length: %<PRId64>\n"
+msgstr " Longitud: %<PRId64>\n"
-#: dwarf.c:3629
+#: dwarf.c:4757
#, c-format
msgid " DWARF Version: %d\n"
msgstr " Versió DWARF: %d\n"
-#: dwarf.c:3630
+#: dwarf.c:4760
+#, c-format
+msgid " Address size (bytes): %d\n"
+msgstr " Mida de l'adreça (bytes): %d\n"
+
+#: dwarf.c:4761
+#, c-format
+msgid " Segment selector (bytes): %d\n"
+msgstr "Selector de segments (bytes): %d\n"
+
+#: dwarf.c:4763
#, c-format
msgid " Prologue Length: %d\n"
msgstr " Longitud de pròleg: %d\n"
-#: dwarf.c:3631
+#: dwarf.c:4764
#, c-format
msgid " Minimum Instruction Length: %d\n"
msgstr " Longitud mínima d'instrucció: %d\n"
-#: dwarf.c:3633
+#: dwarf.c:4766
#, c-format
msgid " Maximum Ops per Instruction: %d\n"
msgstr " Màxim d'operacions per instrucció: %d\n"
-#: dwarf.c:3634
+#: dwarf.c:4767
#, c-format
msgid " Initial value of 'is_stmt': %d\n"
msgstr " El valor inicial de 'is_stmt': %d\n"
-#: dwarf.c:3635
+#: dwarf.c:4768
#, c-format
msgid " Line Base: %d\n"
msgstr " Base de línia: %d\n"
-#: dwarf.c:3636
+#: dwarf.c:4769
#, c-format
msgid " Line Range: %d\n"
msgstr " Rang de línia: %d\n"
-#: dwarf.c:3637
+#: dwarf.c:4770
#, c-format
msgid " Opcode Base: %d\n"
msgstr " Base d'opcode: %d\n"
-#: dwarf.c:3642 dwarf.c:4046
+#: dwarf.c:4775 dwarf.c:5176
msgid "Line range of 0 is invalid, using 1 instead\n"
-msgstr ""
+msgstr "L'interval de línia de 0 no és vàlid, s'utilitzarà 1 en el seu lloc\n"
-#: dwarf.c:3654
+#: dwarf.c:4787
msgid "Line Base extends beyond end of section\n"
-msgstr ""
+msgstr "La base de línia s'estén més enllà del final de la secció\n"
-#: dwarf.c:3658
+#: dwarf.c:4791
#, c-format
msgid ""
"\n"
@@ -2707,198 +2880,260 @@ msgstr ""
"\n"
" Opcodes:\n"
-#: dwarf.c:3661
-#, fuzzy, c-format
-#| msgid " Opcode %d has %d args\n"
+#: dwarf.c:4794
+#, c-format
msgid " Opcode %d has %d arg\n"
msgid_plural " Opcode %d has %d args\n"
-msgstr[0] " L'opcode %d te %d arguments\n"
-msgstr[1] " L'opcode %d te %d arguments\n"
+msgstr[0] " L'opcode %d té %d argument\n"
+msgstr[1] " L'opcode %d té %d arguments\n"
+
+#: dwarf.c:4814
+#, c-format
+msgid ""
+"\n"
+" The Directory Table is empty.\n"
+msgstr ""
+"\n"
+" La taula de directoris està buida.\n"
+
+#: dwarf.c:4819
+#, c-format
+msgid ""
+"\n"
+" The Directory Table (offset %#tx):\n"
+msgstr ""
+"\n"
+" La taula de directoris (posició %#tx):\n"
+
+#: dwarf.c:4842
+#, c-format
+msgid ""
+"\n"
+" The File Name Table is empty.\n"
+msgstr ""
+"\n"
+" La taula de noms de fitxers està buida.\n"
-#: dwarf.c:3735
+#: dwarf.c:4845
+#, c-format
+msgid ""
+"\n"
+" The File Name Table (offset %#tx):\n"
+msgstr ""
+"\n"
+" La taula de noms de fitxers (posició %#tx):\n"
+
+#: dwarf.c:4870
msgid "Corrupt file name table entry\n"
-msgstr "Entrada corrupta de taula de noms de fitxers\n"
+msgstr "Entrada malmesa de taula de noms de fitxers\n"
-#: dwarf.c:3751
+#: dwarf.c:4887
#, c-format
msgid " No Line Number Statements.\n"
-msgstr " No hi ha cap declaració de número de línia.\n"
+msgstr " No hi ha cap declaració de nombre de línia.\n"
-#: dwarf.c:3754
+#: dwarf.c:4890
#, c-format
msgid " Line Number Statements:\n"
-msgstr "Declaracions de números de línia:\n"
+msgstr "Declaracions de nombres de línia:\n"
-#: dwarf.c:3777
-#, fuzzy, c-format
-#| msgid " Special opcode %d: advance Address by %s to 0x%s"
-msgid " Special opcode %d: advance Address by %s to 0x%s%s"
-msgstr " Opcode especial %d: avança l'adreça per %s a 0x%s"
+#: dwarf.c:4912
+#, c-format
+msgid " Special opcode %d: advance Address by %<PRIu64> to %#<PRIx64>%s"
+msgstr " Opcode especial %d: avança l'adreça per %<PRIu64> a %#<PRIx64>%s"
-#: dwarf.c:3782 dwarf.c:3803 dwarf.c:3843 dwarf.c:3863 dwarf.c:3916
-#: dwarf.c:3936
+#: dwarf.c:4917 dwarf.c:4938 dwarf.c:4980 dwarf.c:5000 dwarf.c:5048
+#: dwarf.c:5068
msgid " (reset view)"
-msgstr ""
+msgstr " (reinicia la vista)"
-#: dwarf.c:3797
-#, fuzzy, c-format
-#| msgid " Special opcode %d: advance Address by %s to 0x%s[%d]"
-msgid " Special opcode %d: advance Address by %s to 0x%s[%d]%s"
-msgstr " Opcode especial %d: avança l'adreça per %s a 0x%s[%d]"
+#: dwarf.c:4932
+#, c-format
+msgid " Special opcode %d: advance Address by %<PRIu64> to %#<PRIx64>[%d]%s"
+msgstr " Opcode especial %d: avança l'adreça per %<PRIu64> a %#<PRIx64>[%d[%s"
-#: dwarf.c:3807
-#, fuzzy, c-format
-#| msgid " and Line by %s to %d\n"
-msgid " and Line by %s to %d"
-msgstr " i la línia per %s a %d\n"
+#: dwarf.c:4942
+#, c-format
+msgid " and Line by %d to %d"
+msgstr " i la línia per %d a %d"
-#: dwarf.c:3810 dwarf.c:3824
+#: dwarf.c:4945 dwarf.c:4962
#, c-format
msgid " (view %u)\n"
-msgstr ""
+msgstr "(vista %u)\n"
-#: dwarf.c:3822
-#, fuzzy, c-format
-#| msgid " Copy\n"
+#: dwarf.c:4960
+#, c-format
msgid " Copy"
-msgstr " Copia\n"
+msgstr " Copia"
-#: dwarf.c:3839
-#, fuzzy, c-format
-#| msgid " Advance PC by %s to 0x%s\n"
-msgid " Advance PC by %s to 0x%s%s\n"
-msgstr " Avança PC per %s a 0x%s\n"
+#: dwarf.c:4976
+#, c-format
+msgid " Advance PC by %<PRIu64> to %#<PRIx64>%s\n"
+msgstr " Avança PC per %<PRIu64> a %#<PRIx64>%s\n"
-#: dwarf.c:3858
-#, fuzzy, c-format
-#| msgid " Advance PC by %s to 0x%s[%d]\n"
-msgid " Advance PC by %s to 0x%s[%d]%s\n"
-msgstr " Avança PC per %s a 0x%s[%d]\n"
+#: dwarf.c:4995
+#, c-format
+msgid " Advance PC by %<PRIu64> to %#<PRIx64>[%d]%s\n"
+msgstr " Avança PC per %<PRIu64> a %#<PRIu64>[%d]%s\n"
-#: dwarf.c:3871
+#: dwarf.c:5007
#, c-format
-msgid " Advance Line by %s to %d\n"
-msgstr " Avança la línia per %s a %d\n"
+msgid " Advance Line by %d to %d\n"
+msgstr " Avança la línia per %d a %d\n"
-#: dwarf.c:3879
+#: dwarf.c:5013
#, c-format
-msgid " Set File Name to entry %s in the File Name Table\n"
-msgstr " Estableix el nom del fitxer a l'entrada %s a la taula de noms de fitxers\n"
+msgid " Set File Name to entry %<PRIu64> in the File Name Table\n"
+msgstr " Estableix el nom del fitxer a l'entrada %<PRIu64> a la taula de noms de fitxers\n"
-#: dwarf.c:3887
+#: dwarf.c:5020
#, c-format
-msgid " Set column to %s\n"
-msgstr " Estableix la columna a %s\n"
+msgid " Set column to %<PRIu64>\n"
+msgstr " Estableix la columna a %<PRIu64>\n"
-#: dwarf.c:3895
+#: dwarf.c:5027
#, c-format
-msgid " Set is_stmt to %s\n"
-msgstr " Estableix is_stmt a %s\n"
+msgid " Set is_stmt to %d\n"
+msgstr " Estableix is_stmt a %d\n"
-#: dwarf.c:3900
+#: dwarf.c:5032
#, c-format
msgid " Set basic block\n"
msgstr " Estableix el bloc bàsic\n"
-#: dwarf.c:3912
-#, fuzzy, c-format
-#| msgid " Advance PC by constant %s to 0x%s\n"
-msgid " Advance PC by constant %s to 0x%s%s\n"
-msgstr " Avança PC per la constant %s a 0x%s\n"
+#: dwarf.c:5044
+#, c-format
+msgid " Advance PC by constant %<PRIu64> to %#<PRIx64>%s\n"
+msgstr " Avança PC per la constant %<PRIu64> a %#<PRIx64>%s\n"
-#: dwarf.c:3931
-#, fuzzy, c-format
-#| msgid " Advance PC by constant %s to 0x%s[%d]\n"
-msgid " Advance PC by constant %s to 0x%s[%d]%s\n"
-msgstr " Avança PC per la constant %s a 0x%s[%d]\n"
+#: dwarf.c:5063
+#, c-format
+msgid " Advance PC by constant %<PRIu64> to %#<PRIx64>[%d]%s\n"
+msgstr " Avança PC per la constant %<PRIu64> a %#<PRIx64>[%d]%s\n"
-#: dwarf.c:3944
+#: dwarf.c:5076
#, c-format
-msgid " Advance PC by fixed size amount %s to 0x%s\n"
-msgstr " Avança PC per una quantitat %s de mida fixa a 0x%s\n"
+msgid " Advance PC by fixed size amount %<PRIu64> to %#<PRIx64>\n"
+msgstr " Avança PC per una quantitat %<PRIu64> de mida fixa a %#<PRIx64>\n"
-#: dwarf.c:3951
+#: dwarf.c:5083
#, c-format
msgid " Set prologue_end to true\n"
msgstr " Estableix prologue_end a vertader\n"
-#: dwarf.c:3955
+#: dwarf.c:5087
#, c-format
msgid " Set epilogue_begin to true\n"
msgstr " Estableix epilogue_begin a vertader\n"
-#: dwarf.c:3961
+#: dwarf.c:5092
#, c-format
-msgid " Set ISA to %s\n"
-msgstr " Estableix ISA a %s\n"
+msgid " Set ISA to %<PRIu64>\n"
+msgstr " Estableix ISA a %<PRIu64>\n"
-#: dwarf.c:3965 dwarf.c:4617
+#: dwarf.c:5096 dwarf.c:5773
#, c-format
msgid " Unknown opcode %d with operands: "
msgstr " Opcode desconegut %d amb operands: "
-#: dwarf.c:4059
-#, fuzzy, c-format
-#| msgid "Debug info is corrupted, length of CU at %s extends beyond end of section (length = %s)\n"
+#: dwarf.c:5189
+#, c-format
msgid "opcode base of %d extends beyond end of section\n"
-msgstr "La informació de depuració està corrupta, la mida de CU a %s s'estén més enllà del final de la secció (longitud = %s)\n"
+msgstr "la base opcode de %d s'estén més enllà del final de secció\n"
-#: dwarf.c:4087 dwarf.c:4110 dwarf.c:4140
-#, fuzzy
-#| msgid "Corrupt header in the %s section.\n"
+#: dwarf.c:5204
+#, c-format
+msgid "Unexpectedly large number of columns in the directory name table (%u)\n"
+msgstr "Nombre inesperat de columnes a la taula de noms de directori (%u)\n"
+
+#: dwarf.c:5216 dwarf.c:5246 dwarf.c:5276
msgid "Corrupt directories list\n"
-msgstr "Capçalera corrupta a la secció %s.\n"
+msgstr "Llista de directoris malmesa\n"
-#: dwarf.c:4250
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| " The Directory Table is empty.\n"
+#: dwarf.c:5224
+#, c-format
+msgid "number of directories (0x%x) exceeds size of section %s\n"
+msgstr "el nombre de directoris (0x%x) excedeix la mida de la secció %s\n"
+
+#: dwarf.c:5284
+#, c-format
+msgid "Unexpectedly large number of columns in the file name table (%u)\n"
+msgstr "Nombre inesperat de columnes a la taula de noms de fitxer (%u)\n"
+
+#: dwarf.c:5297 dwarf.c:5328 dwarf.c:5375
+msgid "Corrupt file name list\n"
+msgstr "Llista de noms malmeses de fitxers\n"
+
+#: dwarf.c:5305
+#, c-format
+msgid "number of files (0x%x) exceeds size of section %s\n"
+msgstr "el nombre de fitxers (0x%x) excedeix la mida de la secció %s\n"
+
+#: dwarf.c:5397
msgid "directory table ends unexpectedly\n"
-msgstr ""
-"\n"
-" La taula de directoris està buida.\n"
+msgstr "la taula de directoris acaba inesperadament\n"
-#: dwarf.c:4295
+#: dwarf.c:5437
msgid "file table ends unexpectedly\n"
-msgstr ""
+msgstr "la taula de fitxers acaba de manera inesperada\n"
+
+#: dwarf.c:5470
+#, c-format
+msgid "CU: No directory table\n"
+msgstr "CU: No hi ha taula de directoris\n"
-#: dwarf.c:4334
+#: dwarf.c:5472
#, c-format
msgid "CU: %s:\n"
msgstr "CU: %s:\n"
-#: dwarf.c:4347 dwarf.c:4545
+#: dwarf.c:5482 dwarf.c:5814 readelf.c:7978 readelf.c:8074 readelf.c:8091
+#: readelf.c:8108 readelf.c:8921 readelf.c:13160 readelf.c:13822
+#: readelf.c:13835 readelf.c:19485 readelf.c:19517
+msgid "<unknown>"
+msgstr "<desconegut>"
+
+#: dwarf.c:5489 dwarf.c:5700
#, c-format
-msgid "directory index %u > number of directories %s\n"
-msgstr ""
+msgid "directory index %u >= number of directories %u\n"
+msgstr "índex de directoris %u >= nombre de directoris %u\n"
-#: dwarf.c:4349 dwarf.c:4648 elfcomm.c:891 readelf.c:309 readelf.c:650
-#: readelf.c:6844 readelf.c:7395 readelf.c:9389 readelf.c:11440
-#: readelf.c:11507 readelf.c:11511 readelf.c:11853 readelf.c:14540
-#: readelf.c:14635 readelf.c:15217 readelf.c:15236 readelf.c:15360
-#: readelf.c:15693 readelf.c:16808 readelf.c:16811
+#: dwarf.c:5492 dwarf.c:5808 elfcomm.c:776 readelf.c:980 readelf.c:9099
+#: readelf.c:9712 readelf.c:11738 readelf.c:14129 readelf.c:14195
+#: readelf.c:14199 readelf.c:14313 readelf.c:18214 readelf.c:18304
+#: readelf.c:18897 readelf.c:18916 readelf.c:19035 readelf.c:19494
+#: readelf.c:20657 readelf.c:20660
#, c-format
msgid "<corrupt>"
-msgstr "<corrupte>"
+msgstr "<malmès>"
-#: dwarf.c:4355
+#: dwarf.c:5498
#, c-format
msgid "CU: %s/%s:\n"
msgstr "CU: %s/%s:\n"
-#: dwarf.c:4360
-#, fuzzy, c-format
-#| msgid "File name Line number Starting address\n"
+#: dwarf.c:5508
+#, c-format
msgid "File name Line number Starting address View Stmt\n"
-msgstr "Nom de fitxer Número de línia Adreça d'inici\n"
+msgstr "Nom de fitxer Nombre de línia Adreça d'inici Visualització Stmt\n"
+
+#: dwarf.c:5510
+#, c-format
+msgid "File name Line number Starting address View Stmt\n"
+msgstr "Nom de fitxer Nombre de línia Adreça d'inici Visualització Stmt\n"
-#: dwarf.c:4476
+#: dwarf.c:5513
#, c-format
-msgid "UNKNOWN (%u): length %d\n"
-msgstr "DESCONEGUT (%u): longitud %d\n"
+msgid "CU: Empty file name table\n"
+msgstr "CU: Taula de nom de fitxers buits\n"
-#: dwarf.c:4529
+#: dwarf.c:5620
+#, c-format
+msgid "UNKNOWN (%u): length %ld\n"
+msgstr "DESCONEGUT (%u): longitud %ld\n"
+
+#: dwarf.c:5670
#, c-format
msgid ""
"\n"
@@ -2907,117 +3142,110 @@ msgstr ""
"\n"
" [Usa l'entrada de taula de fitxers %d]\n"
-#: dwarf.c:4533
-#, fuzzy, c-format
-#| msgid "Line numbers for %s (%u)\n"
-msgid "file index %u > number of files %u\n"
-msgstr "Números de línia per a %s (%u)\n"
+#: dwarf.c:5674 dwarf.c:5806
+#, c-format
+msgid "file index %u >= number of files %u\n"
+msgstr "índex de fitxers %u >= nombre de fitxers %u\n"
-#: dwarf.c:4534
-#, fuzzy, c-format
-#| msgid "<corrupt string table index: %3ld>"
+#: dwarf.c:5676
+#, c-format
msgid ""
"\n"
" <over large file table index %u>"
-msgstr "<índex corrupte de taula de cadena de caràcters: %3ld>"
+msgstr ""
+"\n"
+" <índex de taula de fitxers massa gran %u>"
-#: dwarf.c:4540
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| " [Use directory table entry %d]\n"
+#: dwarf.c:5690
+#, c-format
msgid ""
"\n"
" [Use file %s in directory table entry %d]\n"
msgstr ""
"\n"
-" [Usa l'entrada de taula de fitxers %d]\n"
+" [Usa el fitxer %s l'entrada de taula de directoris %d]\n"
-#: dwarf.c:4547
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| " [Use directory table entry %d]\n"
+#: dwarf.c:5703
+#, c-format
msgid ""
"\n"
" <over large directory table entry %u>\n"
msgstr ""
"\n"
-" [Usa l'entrada de taula de fitxers %d]\n"
+" <entrada de taula de directoris massa gran %u>\n"
-#: dwarf.c:4613
+#: dwarf.c:5769
#, c-format
msgid " Set ISA to %lu\n"
msgstr " Estableix ISA a %lu\n"
-#: dwarf.c:4647
-#, fuzzy, c-format
-#| msgid "Corrupt file name table entry\n"
-msgid "corrupt file index %u encountered\n"
-msgstr "Entrada corrupta de taula de noms de fitxers\n"
-
-#: dwarf.c:4782
+#: dwarf.c:5976
msgid "no info"
msgstr "sense informació"
-#: dwarf.c:4783
+#: dwarf.c:5977
msgid "type"
msgstr "tipus"
-#: dwarf.c:4784
+#: dwarf.c:5978
msgid "variable"
msgstr "variable"
-#: dwarf.c:4785
+#: dwarf.c:5979
msgid "function"
msgstr "funció"
-#: dwarf.c:4786
+#: dwarf.c:5980
msgid "other"
msgstr "un altre"
-#: dwarf.c:4787
+#: dwarf.c:5981
msgid "unused5"
msgstr "unused5"
-#: dwarf.c:4788
+#: dwarf.c:5982
msgid "unused6"
msgstr "unused6"
-#: dwarf.c:4789
+#: dwarf.c:5983
msgid "unused7"
msgstr "unused7"
-#: dwarf.c:4849 dwarf.c:6394
+#: dwarf.c:6021
#, c-format
-msgid ".debug_info offset of 0x%lx in %s section does not point to a CU header.\n"
-msgstr "La posició de .debug_infor de 0x%lx a la secció %s no apunta a una capçalera CU\n"
+msgid "Debug info is corrupted, %s header at %#lx has length %#<PRIx64>\n"
+msgstr "La informació de depuració està correupta, la capçalera %s a %#lx té longitud %#<PRIx64>\n"
-#: dwarf.c:4854
+#: dwarf.c:6036 dwarf.c:7738
#, c-format
-msgid " Length: %ld\n"
-msgstr " Longitud: %ld\n"
+msgid ".debug_info offset of %#<PRIx64> in %s section does not point to a CU header.\n"
+msgstr "el desplaçament .debug_info de %#<PRIx64> a la secció %s no apunta a una capçalera CU.\n"
-#: dwarf.c:4856
+#: dwarf.c:6042
+#, c-format
+msgid " Length: %<PRId64>\n"
+msgstr " Longitud: %<PRId64>\n"
+
+#: dwarf.c:6044
#, c-format
msgid " Version: %d\n"
msgstr " Versió: %d\n"
-#: dwarf.c:4858
+#: dwarf.c:6046
#, c-format
-msgid " Offset into .debug_info section: 0x%lx\n"
-msgstr " Posició a la secció .debug_info: 0x%lx\n"
+msgid " Offset into .debug_info section: %#<PRIx64>\n"
+msgstr " Posició a la secció .debug_info: %<PRIx64>\n"
-#: dwarf.c:4860
+#: dwarf.c:6048
#, c-format
-msgid " Size of area in .debug_info section: %ld\n"
-msgstr " Mida de l'àrea a la secció .debug_info: %ld\n"
+msgid " Size of area in .debug_info section: %<PRId64>\n"
+msgstr " Mida de l'àrea a la secció .debug_info: %<PRId64>\n"
-#: dwarf.c:4869
+#: dwarf.c:6057
msgid "Only DWARF 2 and 3 pubnames are currently supported\n"
msgstr "Actualment sols estan suportats els noms pub DWARF 2 i 3.\n"
-#: dwarf.c:4877
+#: dwarf.c:6065
#, c-format
msgid ""
"\n"
@@ -3026,7 +3254,7 @@ msgstr ""
"\n"
" Posició Tipus Nom\n"
-#: dwarf.c:4879
+#: dwarf.c:6067
#, c-format
msgid ""
"\n"
@@ -3035,277 +3263,328 @@ msgstr ""
"\n"
" Posició Nom\n"
-#: dwarf.c:4915
+#: dwarf.c:6101
msgid "s"
msgstr "s"
-#: dwarf.c:4915
+#: dwarf.c:6101
msgid "g"
msgstr "g"
-#: dwarf.c:4975
+#: dwarf.c:6159
#, c-format
msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n"
-msgstr " DW_MACINFO_start_file - línia-número: %d fitxer-número: %d\n"
+msgstr " DW_MACINFO_start_file - línia-nombre: %d fitxer-nombre: %d\n"
-#: dwarf.c:4981
+#: dwarf.c:6165
#, c-format
msgid " DW_MACINFO_end_file\n"
msgstr " DW_MACINFO_end_file\n"
-#: dwarf.c:4989
+#: dwarf.c:6172
#, c-format
-msgid " DW_MACINFO_define - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_define - línia-número: %d macro: %s\n"
+msgid " DW_MACINFO_define - lineno : %d macro : %*s\n"
+msgstr " DW_MACINFO_define - línia-nombre: %d macro : %*s\n"
-#: dwarf.c:4998
+#: dwarf.c:6182
#, c-format
-msgid " DW_MACINFO_undef - lineno : %d macro : %s\n"
-msgstr " DW_MACINFO_undef - línia-número: %d macro: %s\n"
+msgid " DW_MACINFO_undef - lineno : %d macro : %*s\n"
+msgstr " DW_MACINFO_undef - línia-nombre: %d macro: %*s\n"
-#: dwarf.c:5010
+#: dwarf.c:6195
#, c-format
-msgid " DW_MACINFO_vendor_ext - constant : %d string : %s\n"
-msgstr " DW_MACINFO_vendor_ext - constant : %d cadena : %s\n"
+msgid " DW_MACINFO_vendor_ext - constant : %d string : %*s\n"
+msgstr " DW_MACINFO_vendor_ext - constant : %d cadena : %*s\n"
-#: dwarf.c:5143
-#, fuzzy, c-format
-#| msgid "Only GNU extension to DWARF 4 of %s is currently supported.\n"
-msgid "Only GNU extension to DWARF 4 or 5 of %s is currently supported.\n"
-msgstr "Actualment sols està suportada la extensió GNU a DWARF 4 de %s\n"
+#: dwarf.c:6347
+#, c-format
+msgid "Expected to find a version number of 4 or 5 in section %s but found %d instead\n"
+msgstr "S'esperava trobar un nombre de versió de 4 o 5 a la secció %s però s'ha trobat %d\n"
+
+#: dwarf.c:6354
+#, c-format
+msgid " Offset: %#<PRIx64>\n"
+msgstr " Posició: %<PRIx64>\n"
-#: dwarf.c:5153
+#: dwarf.c:6355
#, c-format
msgid " Version: %d\n"
msgstr " Versió: %d\n"
-#: dwarf.c:5154
+#: dwarf.c:6356
#, c-format
msgid " Offset size: %d\n"
msgstr " Mida de posicio: %d\n"
-#: dwarf.c:5158
+#: dwarf.c:6360
#, c-format
-msgid " Offset into .debug_line: 0x%lx\n"
-msgstr " Posició a dins de .debug-line: 0x%lx\n"
+msgid " Offset into .debug_line: %#<PRIx64>\n"
+msgstr " Posició a dins de .debug-line: %<PRIx64>\n"
-#: dwarf.c:5172
+#: dwarf.c:6374
#, c-format
msgid " Extension opcode arguments:\n"
msgstr " Arguments opcode d'extensió:\n"
-#: dwarf.c:5180
-#, fuzzy, c-format
-#| msgid " DW_MACRO_GNU_%02x has no arguments\n"
+#: dwarf.c:6381
+#, c-format
msgid " DW_MACRO_%02x has no arguments\n"
-msgstr " DW_MACRO_GNU_%02x no té cap argument: \n"
+msgstr " DW_MACRO_GNU_%02x no té cap arguments\n"
-#: dwarf.c:5183
-#, fuzzy, c-format
-#| msgid " DW_MACRO_GNU_%02x arguments: "
+#: dwarf.c:6384
+#, c-format
msgid " DW_MACRO_%02x arguments: "
-msgstr " DW_MACRO_GNU_%02x arguments: "
+msgstr " Arguments de DW_MACRO_GNU_%02x : "
-#: dwarf.c:5209
+#: dwarf.c:6410
#, c-format
msgid "Invalid extension opcode form %s\n"
msgstr "Formulari invàlid per a l'opcode d'extensió %s\n"
-#: dwarf.c:5226
+#: dwarf.c:6427
msgid ".debug_macro section not zero terminated\n"
msgstr "La secció .debug_macro no està terminada amb zeros\n"
-#: dwarf.c:5247
-#, fuzzy
-#| msgid "DW_MACRO_GNU_start_file used, but no .debug_line offset provided.\n"
+#: dwarf.c:6441
+#, c-format
+msgid " DW_MACRO_define - lineno : %d macro : %*s\n"
+msgstr " DW_MACRO_GNU_define - línia-numero : %d macro : %*s\n"
+
+#: dwarf.c:6451
+#, c-format
+msgid " DW_MACRO_undef - lineno : %d macro : %*s\n"
+msgstr " DW_MACRO_GNU_undef - línia-nombre : %d macro : %*s\n"
+
+#: dwarf.c:6466
msgid "DW_MACRO_start_file used, but no .debug_line offset provided.\n"
-msgstr "S'ha usat DW_MACRO_GNU_start_file, però no s'ha proveït cap posició .debug_line.\n"
+msgstr "S'ha usat DW_MACRO_start_file, però no s'ha proveït cap posició .debug_line.\n"
-#: dwarf.c:5253
-#, fuzzy, c-format
-#| msgid " DW_MACRO_GNU_start_file - lineno: %d filenum: %d\n"
+#: dwarf.c:6472
+#, c-format
msgid " DW_MACRO_start_file - lineno: %d filenum: %d\n"
-msgstr " DW_MACRO_GNU_start_file - línia-número: %d fitxer-número: %d\n"
+msgstr " DW_MACRO_start_file - línia-nombre: %d fitxer-nombre: %d\n"
-#: dwarf.c:5256
-#, fuzzy, c-format
-#| msgid " DW_MACRO_GNU_start_file - lineno: %d filenum: %d filename: %s%s%s\n"
+#: dwarf.c:6475
+#, c-format
msgid " DW_MACRO_start_file - lineno: %d filenum: %d filename: %s%s%s\n"
-msgstr " DW_MACRO_GNU_start_file - línia-número: %d fitxer-número: %d nom de fitxer: %s%s%s\n"
+msgstr " DW_MACRO_start_file - línia-nombre: %d fitxer-nombre: %d nom de fitxer: %s%s%s\n"
-#: dwarf.c:5264
-#, fuzzy, c-format
-#| msgid " DW_MACRO_GNU_end_file\n"
+#: dwarf.c:6483
+#, c-format
msgid " DW_MACRO_end_file\n"
-msgstr " DW_MACRO_GNU_end_file\n"
-
-#: dwarf.c:5272
-#, fuzzy, c-format
-#| msgid " DW_MACRO_GNU_define - lineno : %d macro : %s\n"
-msgid " DW_MACRO_define - lineno : %d macro : %s\n"
-msgstr " DW_MACRO_GNU_define - línia-numero : %d macro : %s\n"
+msgstr " DW_MACRO_end_file\n"
-#: dwarf.c:5281
-#, fuzzy, c-format
-#| msgid " DW_MACRO_GNU_undef - lineno : %d macro : %s\n"
-msgid " DW_MACRO_undef - lineno : %d macro : %s\n"
-msgstr " DW_MACRO_GNU_undef - línia-número : %d macro : %s\n"
-
-#: dwarf.c:5290
-#, fuzzy, c-format
-#| msgid " DW_MACRO_GNU_define - lineno : %d macro : %s\n"
+#: dwarf.c:6493
+#, c-format
msgid " DW_MACRO_define_strp - lineno : %d macro : %s\n"
-msgstr " DW_MACRO_GNU_define - línia-numero : %d macro : %s\n"
+msgstr " DW_MACRO_define_strp - línia-numero : %d macro : %s\n"
-#: dwarf.c:5299
-#, fuzzy, c-format
-#| msgid " DW_MACRO_GNU_undef - lineno : %d macro : %s\n"
+#: dwarf.c:6504
+#, c-format
msgid " DW_MACRO_undef_strp - lineno : %d macro : %s\n"
-msgstr " DW_MACRO_GNU_undef - línia-número : %d macro : %s\n"
+msgstr " DW_MACRO_undef_strp - línia-nombre : %d macro : %s\n"
-#: dwarf.c:5305
-#, fuzzy, c-format
-#| msgid " DW_MACRO_GNU_transparent_include - offset : 0x%lx\n"
-msgid " DW_MACRO_import - offset : 0x%lx\n"
-msgstr " DW_MACRO_GNU_transparent_include - posició : 0x%lx\n"
+#: dwarf.c:6510
+#, c-format
+msgid " DW_MACRO_import - offset : %#<PRIx64>\n"
+msgstr " DW_MACRO_import - posició : %<PRIx64>\n"
-#: dwarf.c:5313
-#, fuzzy, c-format
-#| msgid " DW_MACRO_GNU_undef_indirect_alt - lineno : %d macro offset : 0x%lx\n"
-msgid " DW_MACRO_define_sup - lineno : %d macro offset : 0x%lx\n"
-msgstr " DW_MACRO_GNU_undef_indirect-alt - línia-número : %d macro : 0x%lx\n"
+#: dwarf.c:6517
+#, c-format
+msgid " DW_MACRO_define_sup - lineno : %d macro offset : %#<PRIx64>\n"
+msgstr " DW_MACRO_GNU_def_sup - línia-nombre : %d posició macro : %#<PRIx64>\n"
-#: dwarf.c:5321
-#, fuzzy, c-format
-#| msgid " DW_MACRO_GNU_undef_indirect_alt - lineno : %d macro offset : 0x%lx\n"
-msgid " DW_MACRO_undef_sup - lineno : %d macro offset : 0x%lx\n"
-msgstr " DW_MACRO_GNU_undef_indirect-alt - línia-número : %d macro : 0x%lx\n"
+#: dwarf.c:6525
+#, c-format
+msgid " DW_MACRO_undef_sup - lineno : %d macro offset : %#<PRIx64>\n"
+msgstr " DW_MACRO_undef_sup - línia nombre : %d posició macro : %#<PRIx64>\n"
-#: dwarf.c:5327
-#, fuzzy, c-format
-#| msgid " DW_MACRO_GNU_transparent_include - offset : 0x%lx\n"
-msgid " DW_MACRO_import_sup - offset : 0x%lx\n"
-msgstr " DW_MACRO_GNU_transparent_include - posició : 0x%lx\n"
+#: dwarf.c:6532
+#, c-format
+msgid " DW_MACRO_import_sup - offset : %#<PRIx64>\n"
+msgstr " DW_MACRO_import_sup - posició : %#<PRIx64>\n"
+
+#: dwarf.c:6547
+#, c-format
+msgid "(with offset %#<PRIx64>) "
+msgstr "(amb el desplaçament %#<PRIx64>) "
+
+#: dwarf.c:6548
+#, c-format
+msgid "lineno : %d macro : %s\n"
+msgstr "línia-nombre : %d macro : %s\n"
+
+#: dwarf.c:6555
+#, c-format
+msgid " <Target Specific macro op: %#x - UNHANDLED"
+msgstr " <Macro específic del destíop: %#x - NO GESTIONAT"
-#: dwarf.c:5334
+#: dwarf.c:6561
#, c-format
msgid " Unknown macro opcode %02x seen\n"
msgstr "S'ha vist un macro opcode desconegut %02x\n"
-#: dwarf.c:5346
-#, fuzzy, c-format
-#| msgid " DW_MACRO_GNU_%02x\n"
+#: dwarf.c:6572
+#, c-format
msgid " DW_MACRO_%02x\n"
-msgstr " DW_MACRO_GNU_%02x\n"
+msgstr " DW_MACRO_%02x\n"
-#: dwarf.c:5349
-#, fuzzy, c-format
-#| msgid " DW_MACRO_GNU_%02x -"
+#: dwarf.c:6575
+#, c-format
msgid " DW_MACRO_%02x -"
-msgstr " DW_MACRO_GNU_%02x -"
+msgstr " DW_MACRO_%02x -"
-#: dwarf.c:5398
+#: dwarf.c:6622
#, c-format
-msgid " Number TAG (0x%lx)\n"
-msgstr " INDICADOR de número (0x%lx)\n"
+msgid " Number TAG (%#<PRIx64>)\n"
+msgstr " INDICADOR de Nombre (%#<PRIx64>)\n"
-#: dwarf.c:5407
+#: dwarf.c:6631
msgid "has children"
msgstr "té fills"
-#: dwarf.c:5407
+#: dwarf.c:6631
msgid "no children"
msgstr "sense fills"
-#: dwarf.c:5476
+#: dwarf.c:6695
#, c-format
msgid "location view pair\n"
-msgstr ""
+msgstr "parella de la vista d'ubicació\n"
-#: dwarf.c:5508
+#: dwarf.c:6726
#, c-format
msgid "No debug information available for loc lists of entry: %u\n"
-msgstr ""
+msgstr "No hi ha informació de depuració disponible per a les llistes de loc d'entrada: %u\n"
-#: dwarf.c:5520 dwarf.c:5672 dwarf.c:5842
+#: dwarf.c:6738 dwarf.c:6879 dwarf.c:7100
#, c-format
msgid "Invalid pointer size (%d) in debug info for entry %d\n"
-msgstr ""
+msgstr "La mida del punter (%d) no és vàlida a la informació de depuració de l'entrada %d\n"
-#: dwarf.c:5532 dwarf.c:5589 dwarf.c:5598 dwarf.c:5684 dwarf.c:5752
-#: dwarf.c:5853 dwarf.c:5932 dwarf.c:5940
+#: dwarf.c:6750 dwarf.c:6803 dwarf.c:6812 dwarf.c:6891 dwarf.c:7006
+#: dwarf.c:7014 dwarf.c:7112 dwarf.c:7184 dwarf.c:7192
#, c-format
-msgid "Location list starting at offset 0x%lx is not terminated.\n"
-msgstr "La llista de localització que comença a la posició 0x%lx no està terminada.\n"
+msgid "Location list starting at offset %#<PRIx64> is not terminated.\n"
+msgstr "La llista de localització que comença a la posició %#<PRIx64> no està terminada.\n"
-#: dwarf.c:5553 dwarf.c:5712 dwarf.c:5893 dwarf.c:6616 dwarf.c:6672
+#: dwarf.c:6772 dwarf.c:6919 dwarf.c:7149 dwarf.c:8109 dwarf.c:8168
#, c-format
msgid "<End of list>\n"
msgstr "<Final de llista>\n"
-#: dwarf.c:5565 dwarf.c:5724 dwarf.c:6677
+#: dwarf.c:6784 dwarf.c:6929 dwarf.c:6964 dwarf.c:8177 dwarf.c:8201
#, c-format
msgid "(base address)\n"
msgstr "(adreça de base)\n"
-#: dwarf.c:5583 dwarf.c:5705 dwarf.c:5881
+#: dwarf.c:6798 dwarf.c:6913 dwarf.c:7138
#, c-format
msgid ""
-"views at %8.8lx for:\n"
+"views at %8.8<PRIx64> for:\n"
" %*s "
msgstr ""
+"visualitzacions a %8.8<PRIx64> per a:\n"
+" %*s"
-#: dwarf.c:5619 dwarf.c:5776
+#: dwarf.c:6833 dwarf.c:7035 dwarf.c:8128 dwarf.c:8234
msgid " (start == end)"
msgstr "(inici == fi)"
-#: dwarf.c:5621 dwarf.c:5778
+#: dwarf.c:6835 dwarf.c:7037 dwarf.c:8130 dwarf.c:8236
msgid " (start > end)"
msgstr "(inici > fi)"
-#: dwarf.c:5659
+#: dwarf.c:6925
#, c-format
-msgid "No debug information available for loclists lists of entry: %u\n"
-msgstr ""
+msgid "(index into .debug_addr) "
+msgstr "(índex dins de .debug_str) "
-#: dwarf.c:5729
+#: dwarf.c:6981
#, c-format
msgid "View pair entry in loclist with locviews attribute\n"
-msgstr ""
+msgstr "Mostra l'entrada de parella a loclist amb l'atribut locviews\n"
-#: dwarf.c:5738
+#: dwarf.c:6988
#, c-format
msgid "views for:\n"
-msgstr ""
+msgstr "vistes per a:\n"
-#: dwarf.c:5742
-#, fuzzy, c-format
-#| msgid "Unknown location list entry type 0x%x.\n"
+#: dwarf.c:6993
+#, c-format
msgid "Invalid location list entry type %d\n"
-msgstr "Tipus desconegut d'entrada de llista de localització 0x%x.\n"
+msgstr "Tipus desconegut d'entrada de llista de localització %d\n"
-#: dwarf.c:5787
+#: dwarf.c:7046
#, c-format
msgid "Trailing view pair not used in a range"
-msgstr ""
+msgstr "Parella de vista final no utilitzada en un interval"
-#: dwarf.c:5830
-#, fuzzy, c-format
-#| msgid "no information for symbol number %ld\n"
+#: dwarf.c:7088
+#, c-format
msgid "No debug information for loc lists of entry: %u\n"
-msgstr "no hi ha informació per al símbol número %ld\n"
+msgstr "No hi ha informació de depuració per a les llistes loc d'entrada: %u\n"
-#: dwarf.c:5900
+#: dwarf.c:7155
#, c-format
msgid "(base address selection entry)\n"
msgstr "(entrada de selecció d'adreça de base)\n"
-#: dwarf.c:5924
+#: dwarf.c:7176
#, c-format
msgid "Unknown location list entry type 0x%x.\n"
msgstr "Tipus desconegut d'entrada de llista de localització 0x%x.\n"
-#: dwarf.c:6017 dwarf.c:6270 dwarf.c:6491 dwarf.c:6563 dwarf.c:6734
+#: dwarf.c:7260
+#, c-format
+msgid "Table at Offset %#<PRIx64>\n"
+msgstr "Taula al desplaçament %#<PRIx64>\n"
+
+#: dwarf.c:7276 dwarf.c:8299
+#, c-format
+msgid " Length: %#<PRIx64>\n"
+msgstr " Longitud: %#<PRIx64>\n"
+
+#: dwarf.c:7277 dwarf.c:8300
+#, c-format
+msgid " DWARF version: %u\n"
+msgstr " Versió DWARF: %u\n"
+
+#: dwarf.c:7278 dwarf.c:8301
+#, c-format
+msgid " Address size: %u\n"
+msgstr " Mida d'adreça: %u\n"
+
+#: dwarf.c:7279 dwarf.c:8302
+#, c-format
+msgid " Segment size: %u\n"
+msgstr " Mida del segment: %u\n"
+
+#: dwarf.c:7280 dwarf.c:8303
+#, c-format
+msgid " Offset entries: %u\n"
+msgstr " Entrades de desplaçament: %u\n"
+
+#: dwarf.c:7284
+#, c-format
+msgid "The %s section contains an unsupported segment selector size: %d.\n"
+msgstr "La secció %s conté una mida de selector de segment no suportada: %d.\n"
+
+#: dwarf.c:7292
+#, c-format
+msgid ""
+"\n"
+" Offset Entries starting at %#tx:\n"
+msgstr ""
+"\n"
+" Entrades de desplaçament que comencen a %#tx:\n"
+
+#: dwarf.c:7300 dwarf.c:8330
+#, c-format
+msgid " [%6u] %#<PRIx64>\n"
+msgstr " [%6u] %#<PRIx64>\n"
+
+#: dwarf.c:7339 dwarf.c:7619 dwarf.c:7836 dwarf.c:7960 dwarf.c:8368
#, c-format
msgid ""
"\n"
@@ -3314,122 +3593,113 @@ msgstr ""
"\n"
"La secció %s està buida.\n"
-#: dwarf.c:6037
-#, fuzzy, c-format
-#| msgid "CU at offset %s contains corrupt or unsupported version number: %d.\n"
-msgid "The %s section contains corrupt or unsupported version number: %d.\n"
-msgstr "La CU a la posició %s conté un número de versió corrupte o no suportat: %d\n"
-
-#: dwarf.c:6057
+#: dwarf.c:7359
#, c-format
-msgid "The %s section contains unsupported offset entry count: %d.\n"
+msgid "The %s section contains corrupt or unsupported version number: %d.\n"
msgstr ""
+"La secció %s conté un nombre de versió malmès o no suportat: %d.\n"
+"\n"
-#: dwarf.c:6068 dwarf.c:6497 dwarf.c:6812
+#: dwarf.c:7386 dwarf.c:7842 dwarf.c:8376
#, c-format
msgid "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"
msgstr "No es pot carregar/analitzar la secció .debug_info, per això no es pot interpretar la secció %s.\n"
-#: dwarf.c:6116
+#: dwarf.c:7434
msgid "No location lists in .debug_info section!\n"
msgstr "No hi ha llistes de localització a la secció .debug_info!\n"
-#: dwarf.c:6121
-#, c-format
-msgid "Location lists in %s section start at 0x%s\n"
-msgstr "Les llistes de localització a la secció %s comencen a 0x%s\n"
-
-#: dwarf.c:6131
+#: dwarf.c:7442
#, c-format
msgid ""
" Warning: This section has relocations - addresses seen here may not be accurate.\n"
"\n"
-msgstr ""
+msgstr "Avís: Aquesta secció té relocalitzacions - les adreces que es veuen aquí poden no ser precises.\n"
-#: dwarf.c:6133
-#, fuzzy, c-format
-#| msgid " Offset Begin End Expression\n"
+#: dwarf.c:7445 dwarf.c:7494
+#, c-format
msgid " Offset Begin End Expression\n"
-msgstr " Posició Inici Fi Expressió\n"
+msgstr " Posició Inici Fi Expressió\n"
-#: dwarf.c:6188
+#: dwarf.c:7533 dwarf.c:7537
#, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in .debug_loc section.\n"
-msgstr "Hi ha un forat [0x%lx - 0x%lx] a la secció .debug_loc.\n"
+msgid "There is a hole [%#tx - %#<PRIx64>] in %s section.\n"
+msgstr "Hi ha un forat [%#tx - %#<PRIx64>] a la secció %s.\n"
-#: dwarf.c:6192
+#: dwarf.c:7542
#, c-format
-msgid "There is an overlap [0x%lx - 0x%lx] in .debug_loc section.\n"
-msgstr "Hi ha un desplaçament [0x%lx - 0x%lx] a la secció .debug_loc.\n"
+msgid "There is an overlap [%#tx - %#<PRIx64>] in %s section.\n"
+msgstr "Hi ha una superposició [%#tx - %#<PRIx64>] a la secció %s.\n"
-#: dwarf.c:6201
+#: dwarf.c:7550
#, c-format
-msgid "Offset 0x%lx is bigger than .debug_loc section size.\n"
-msgstr "La posició 0x%lx és més gran que la mida de la secció .debug_loc.\n"
+msgid "Offset %#<PRIx64> is bigger than %s section size.\n"
+msgstr "La posició %#<PRIx64> és més gran que la mida de la secció %s.\n"
-#: dwarf.c:6208
-#, fuzzy, c-format
-#| msgid "Offset 0x%lx is bigger than .debug_loc section size.\n"
-msgid "View Offset 0x%lx is bigger than .debug_loc section size.\n"
-msgstr "La posició 0x%lx és més gran que la mida de la secció .debug_loc.\n"
+#: dwarf.c:7557
+#, c-format
+msgid "View Offset %#<PRIx64> is bigger than %s section size.\n"
+msgstr "La posició %#<PRIx64> és més gran que la mida de la secció %s.\n"
-#: dwarf.c:6225
-#, fuzzy
-#| msgid "BCD float type not supported"
+#: dwarf.c:7574
msgid "DWO is not yet supported.\n"
-msgstr "Tipus BCD flotant no suportat"
+msgstr "Encara no està suportat DWO.\n"
-#: dwarf.c:6242
+#: dwarf.c:7591
msgid "Hole and overlap detection requires adjacent view lists and loclists.\n"
-msgstr ""
+msgstr "La detecció del forat i la superposició requereix llistes de visualització adjacents i loclists.\n"
-#: dwarf.c:6251
-#, fuzzy, c-format
-#| msgid "There are %ld unused bytes at the end of section %s\n"
+#: dwarf.c:7600
+#, c-format
msgid "There is %ld unused byte at the end of section %s\n"
msgid_plural "There are %ld unused bytes at the end of section %s\n"
msgstr[0] "Hi ha %ld bytes sense usar al final de la secció %s\n"
msgstr[1] "Hi ha %ld bytes sense usar al final de la secció %s\n"
-#: dwarf.c:6407
+#: dwarf.c:7724
+#, c-format
+msgid "Debug info is corrupted, %s header at %#<PRIx64> has length %#<PRIx64>\n"
+msgstr "La informació de depuració està malmesa, la capçalera %s a %#<PRIx64> té longitud %#<PRIx64>\n"
+
+#: dwarf.c:7752
msgid "Only DWARF 2 and 3 aranges are currently supported.\n"
msgstr "Actualment sols estan suportats organitzacions DWARF 2 i 3.\n"
-#: dwarf.c:6411
+#: dwarf.c:7756
#, c-format
-msgid " Length: %ld\n"
-msgstr " Longitud: %ld\n"
+msgid " Length: %<PRId64>\n"
+msgstr " Longitud: %<PRId64>\n"
-#: dwarf.c:6413
+#: dwarf.c:7757
#, c-format
msgid " Version: %d\n"
msgstr " Versió: %d\n"
-#: dwarf.c:6414
+#: dwarf.c:7758
#, c-format
-msgid " Offset into .debug_info: 0x%lx\n"
-msgstr " Posició a .debug_info: 0x%lx\n"
+msgid " Offset into .debug_info: %#<PRIx64>\n"
+msgstr " Desplaçamet a .debug_info: %#<PRIx64>\n"
-#: dwarf.c:6416
+#: dwarf.c:7760
#, c-format
msgid " Pointer Size: %d\n"
msgstr " Mida del punter: %d\n"
-#: dwarf.c:6417
+#: dwarf.c:7761
#, c-format
msgid " Segment Size: %d\n"
msgstr " Mida del segment: %d\n"
-#: dwarf.c:6424
+#: dwarf.c:7768
#, c-format
msgid "Invalid address size in %s section!\n"
msgstr "Adreça invàlida a la secció %s!\n"
-#: dwarf.c:6434
+#: dwarf.c:7778
msgid "Pointer size + Segment size is not a power of two.\n"
msgstr "La mida del punter + la mida del segment no és una potència de dos.\n"
-#: dwarf.c:6439
+#: dwarf.c:7783
#, c-format
msgid ""
"\n"
@@ -3438,7 +3708,7 @@ msgstr ""
"\n"
" Adreça Mida\n"
-#: dwarf.c:6441
+#: dwarf.c:7785
#, c-format
msgid ""
"\n"
@@ -3447,295 +3717,385 @@ msgstr ""
"\n"
" Adreça Mida\n"
-#: dwarf.c:6517
-#, fuzzy, c-format
-#| msgid "Corrupt unit length (0x%s) found in section %s\n"
-msgid "Corrupt address base (%lx) found in debug section %u\n"
-msgstr "S'ha trobat un valor corrupte de longitud (0x%s) a la secció %s\n"
+#: dwarf.c:7862
+#, c-format
+msgid "Corrupt address base (%#<PRIx64>) found in debug section %u\n"
+msgstr "S'ha trobat una base d'adreça malmesa (%#<PRIx64>) a la seccció de depuració %u\n"
-#: dwarf.c:6533
+#: dwarf.c:7880
#, c-format
-msgid " For compilation unit at offset 0x%s:\n"
-msgstr " Per a la unitat de compilació a la posició 0x%s:\n"
+msgid " For compilation unit at offset %#<PRIx64>:\n"
+msgstr " Per a la unitat de compilació a la posició %#<PRIx64>:\n"
-#: dwarf.c:6536
+#: dwarf.c:7883
#, c-format
msgid "\tIndex\tAddress\n"
msgstr "\tÃndex\tAddreça\n"
-#: dwarf.c:6543
+#: dwarf.c:7895
+#, c-format
+msgid "Corrupt %s section: expecting header size of 8 or 16, but found %zd instead\n"
+msgstr "Secció %s malmesa: s'esperava una mida de capçalera de 8 o 16, però s'ha trobat %zd\n"
+
+#: dwarf.c:7906
+#, c-format
+msgid "Corrupt %s section: unit_length field of %#<PRIx64> is invalid\n"
+msgstr "Secció %s malmesa: el camp de longitud unitària de %#<PRIx64> no és vàlid\n"
+
+#: dwarf.c:7913
+#, c-format
+msgid "Corrupt %s section: expecting version number 5 in header but found %d instead\n"
+msgstr "Secció %s malmesa: s'esperava la versió nombre 5 a la capçalera però s'ha trobat %d en el seu lloc\n"
+
+#: dwarf.c:7928
+#, c-format
+msgid "Corrupt %s section: address size (%x) is wrong\n"
+msgstr "La secció %s està malmesa: la mida de l'adreça (%x) és incorrecta\n"
+
+#: dwarf.c:7936
#, c-format
msgid "\t%d:\t"
msgstr "\t%d:\t"
-#: dwarf.c:6635 dwarf.c:6709
-msgid "(start == end)"
-msgstr "(inici == fi)"
+#: dwarf.c:8008 dwarf.c:8032
+#, c-format
+msgid " Length: %#<PRIx64>\n"
+msgstr " Longitud: %#<PRIx64>\n"
-#: dwarf.c:6637 dwarf.c:6711
-msgid "(start > end)"
-msgstr "(inici < fi)"
+#: dwarf.c:8009 dwarf.c:8034
+#, c-format
+msgid " Index Offset [String]\n"
+msgstr " Desplaçament de l'índex [String]\n"
-#: dwarf.c:6660
-#, fuzzy, c-format
-#| msgid "Location list starting at offset 0x%lx is not terminated.\n"
-msgid "Range list starting at offset 0x%lx is not terminated.\n"
-msgstr "La llista de localització que comença a la posició 0x%lx no està terminada.\n"
+#: dwarf.c:8017
+#, c-format
+msgid "Section %s is too small %#<PRIx64>\n"
+msgstr "La secció %s és massa petita %#<PRIx64>\n"
-#: dwarf.c:6696
-#, fuzzy, c-format
-#| msgid "Unknown location list entry type 0x%x.\n"
+#: dwarf.c:8025
+#, c-format
+msgid "Unexpected version number in str_offset header: %#x\n"
+msgstr "Nombre de versió no esperat a str_offset header: %#x\n"
+
+#: dwarf.c:8030
+#, c-format
+msgid "Unexpected value in str_offset header's padding field: %#x\n"
+msgstr "Valor inesperat al camp de farciment de la capçalera str_offset: %#x\n"
+
+#: dwarf.c:8033
+#, c-format
+msgid " Version: %#x\n"
+msgstr " Versió: %#x\n"
+
+#: dwarf.c:8155
+#, c-format
+msgid "Range list starting at offset %#<PRIx64> is not terminated.\n"
+msgstr "La llista de localització que comença a la posició %#<PRIx64> no està terminada.\n"
+
+#: dwarf.c:8173
+#, c-format
+msgid "(base address index) "
+msgstr "(index d'adreça de base) "
+
+#: dwarf.c:8213
+#, c-format
msgid "Invalid range list entry type %d\n"
-msgstr "Tipus desconegut d'entrada de llista de localització 0x%x.\n"
+msgstr "Tipus d'entrada de llista de rang invàlid %d\n"
-#: dwarf.c:6773
-#, fuzzy, c-format
-#| msgid "The line info appears to be corrupt - the section is too small\n"
-msgid "The length field (0x%lx) in the debug_rnglists header is wrong - the section is too small\n"
-msgstr "La informació de línia sembla estar corrupta - la secció és massa petita\n"
+#: dwarf.c:8281
+#, c-format
+msgid "The length field (%#<PRIx64>) in the debug_rnglists header is wrong - the section is too small\n"
+msgstr "El camp de longitud (%#<PRIx64>) a la capçalera debug_rnglists és incorrecte - la secció és massa petita\n"
-#: dwarf.c:6784
-#, fuzzy
-#| msgid "Only DWARF version 2, 3 and 4 line info is currently supported.\n"
-msgid "Only DWARF version 5 debug_rnglists info is currently supported.\n"
-msgstr "Sols estan actualment suportades les versions DWARF 2, 3 i 4.\n"
+#: dwarf.c:8298
+#, c-format
+msgid " Table at Offset: %#<PRIx64>:\n"
+msgstr "Taula al desplaçament: %#<PRIx64>:\n"
+
+#: dwarf.c:8316
+msgid "Only DWARF version 5+ debug_rnglists info is currently supported.\n"
+msgstr "Sols estan actualment suportades les versions DWARF 5+ d'informació debug_rnglists.\n"
-#: dwarf.c:6803
+#: dwarf.c:8323
#, c-format
-msgid "The %s section contains unsupported offset entry count: %u.\n"
+msgid ""
+"\n"
+" Offsets starting at %#tx:\n"
msgstr ""
+"\n"
+" Desplaçaments que comencena %#tx:\n"
#. This can happen when the file was compiled with -gsplit-debug
#. which removes references to range lists from the primary .o file.
-#: dwarf.c:6825
+#: dwarf.c:8390
#, c-format
-msgid "No range lists in .debug_info section.\n"
-msgstr "No hi ha llistes de rang a la secció .debug_info.\n"
+msgid "No range lists referenced by .debug_info section.\n"
+msgstr "No hi ha llistes de rang referenciades a la secció .debug_info.\n"
-#: dwarf.c:6850
+#: dwarf.c:8419
#, c-format
-msgid "Range lists in %s section start at 0x%lx\n"
-msgstr "Les llistes de rang a la secció %s comencen a 0x%lx\n"
+msgid "Range lists in %s section start at %#<PRIx64>\n"
+msgstr "Les llistes de rang a la secció %s comencen a %#<PRIx64>\n"
-#: dwarf.c:6855
+#: dwarf.c:8424 dwarf.c:8459
#, c-format
msgid " Offset Begin End\n"
msgstr " Posició Inici Fi\n"
-#: dwarf.c:6874
+#: dwarf.c:8442
#, c-format
-msgid "Corrupt pointer size (%d) in debug entry at offset %8.8lx\n"
-msgstr ""
+msgid "Corrupt pointer size (%d) in debug entry at offset %#<PRIx64>\n"
+msgstr "Mida de punter malmès (%d) a l'entrada de depuració al desplaçament %#<PRIx64>\n"
-#: dwarf.c:6881
-#, fuzzy, c-format
-#| msgid "Corrupt file name table entry\n"
-msgid "Corrupt offset (%#8.8lx) in range entry %u\n"
-msgstr "Entrada corrupta de taula de noms de fitxers\n"
+#: dwarf.c:8449
+#, c-format
+msgid "Corrupt offset (%#<PRIx64>) in range entry %u\n"
+msgstr "Corrupt offset (%#<PRIx64>) in range entry %u\n"
-#: dwarf.c:6889
+#: dwarf.c:8476
#, c-format
-msgid "There is a hole [0x%lx - 0x%lx] in %s section.\n"
-msgstr "Hi ha un forat [0x%lx - 0x%lx] a la secció %s.\n"
+msgid "There is a hole [%#tx - %#tx] in %s section.\n"
+msgstr "Hi ha un buit [%#tx - %#tx] a la secció %s.\n"
-#: dwarf.c:6896
+#: dwarf.c:8482
#, c-format
-msgid "There is an overlap [0x%lx - 0x%lx] in %s section.\n"
-msgstr "Hi ha una superposició [0x%lx - 0x%lx] a la secció %s.\n"
+msgid "There is an overlap [%#tx - %#tx] in %s section.\n"
+msgstr "Hi ha una superposició [%#tx - %#tx] a la secció %s.\n"
-#: dwarf.c:6969
+#: dwarf.c:8567
#, c-format
msgid "Unfeasibly large register number: %u\n"
-msgstr ""
+msgstr "Nombre de registre no gaire gran: %u\n"
-#: dwarf.c:6982
-#, fuzzy, c-format
-#| msgid "Out of memory allocating 0x%lx bytes for %s\n"
+#: dwarf.c:8581
+#, c-format
msgid "Out of memory allocating %u columns in dwarf frame arrays\n"
-msgstr "Memòria exhaurida quan s'estava assignant 0x%lx bytes per a %s\n"
+msgstr "Memòria exhaurida quan s'estava assignant %u columnes a les matrius de marc dwarf\n"
-#: dwarf.c:7325
+#: dwarf.c:9077
msgid "No terminator for augmentation name\n"
-msgstr ""
+msgstr "No hi ha terminador per al nom d'augment\n"
-#: dwarf.c:7337
+#: dwarf.c:9095
#, c-format
msgid "Invalid pointer size (%d) in CIE data\n"
-msgstr ""
+msgstr "Mida no vàlida del punter (%d) a les dades CIE\n"
-#: dwarf.c:7345
+#: dwarf.c:9103
#, c-format
msgid "Invalid segment size (%d) in CIE data\n"
-msgstr ""
+msgstr "Mida del segment no vàlida (%d) a les dades CIE\n"
-#: dwarf.c:7376
+#: dwarf.c:9139 dwarf.c:9770
#, c-format
-msgid "Augmentation data too long: 0x%s, expected at most %#lx\n"
-msgstr ""
+msgid "Augmentation data too long: %#<PRIx64>, expected at most %#tx\n"
+msgstr "Dades d'augment massa llargues: %#<PRIx64>, s'espera com a màxim %#tx\n"
-#: dwarf.c:7463
+#: dwarf.c:9224
#, c-format
msgid " Augmentation data: "
-msgstr ""
+msgstr " Dades d'augment:"
+
+#: dwarf.c:9382
+msgid ".eh_frame_hdr section is too small\n"
+msgstr "La secció .eh_frame_hdr és massa petita\n"
+
+#: dwarf.c:9389
+#, c-format
+msgid "Unsupported .eh_frame_hdr version %u\n"
+msgstr "Versió .eh_frame_hdr no suportada %u\n"
+
+#: dwarf.c:9393 dwarf.c:11324
+#, c-format
+msgid " Version: %u\n"
+msgstr " Versió: %u\n"
+
+#. Strictly speaking this is the encoding format of the eh_frame_ptr field below.
+#: dwarf.c:9397
+#, c-format
+msgid " Pointer Encoding Format: %#x (%s)\n"
+msgstr " Format de codificació del punter: %#x (%s)\n"
+
+#: dwarf.c:9400
+#, c-format
+msgid " Count Encoding Format: %#x (%s)\n"
+msgstr " Format de codificació del comptador: %#x (%s)\n"
+
+#: dwarf.c:9403
+#, c-format
+msgid " Table Encoding Format: %#x (%s)\n"
+msgstr "Format de codificació de la taula: %#x (%s)\n"
+
+#: dwarf.c:9412
+msgid "unable to read eh_frame_ptr field in .eh_frame_hdr section\n"
+msgstr "no s'ha pogut llegir el camp eh_frame_ptr a la secció .eh_frame_hdr\n"
+
+#: dwarf.c:9415
+#, c-format
+msgid " Start of frame section: %#<PRIx64>"
+msgstr " Inici de la secció de marcs: %#<PRIx64>"
+
+#: dwarf.c:9419
+#, c-format
+msgid " (offset: %#<PRIx64>)"
+msgstr " (posició: %#<PRIx64>)"
+
+#: dwarf.c:9426
+msgid "It is suspicious to have a .eh_frame_hdr section with an empty search table\n"
+msgstr "És sospitós tenir una secció .eh_frame_hdr amb una taula de cerca buida\n"
+
+#: dwarf.c:9432
+msgid "The count field format should be absolute, not relative to an address\n"
+msgstr "El format del camp de recompte ha de ser absolut, no relatiu a una adreça\n"
+
+#: dwarf.c:9439
+msgid "unable to read fde_count field in .eh_frame_hdr section\n"
+msgstr "no s'ha pogut llegir el camp fde_count a la secció .eh_frame_hdr\n"
+
+#: dwarf.c:9442
+#, c-format
+msgid " Entries in search table: %#<PRIx64>"
+msgstr " Entrades a la taula de cerca: %#<PRIx64>"
+
+#: dwarf.c:9448
+msgid "It is suspicious to have a .eh_frame_hdr section an empty table but a non empty count field\n"
+msgstr "És sospitós tenir una secció .eh_frame_hdr una taula buida però un camp de comptatge no buit\n"
-#: dwarf.c:7480
+#: dwarf.c:9462
+#, c-format
+msgid "Failed to read location field for entry %#<PRIx64> in the .eh_frame_hdr's search table\n"
+msgstr "No s'ha pogut llegir el camp d'ubicació de l'entrada %#<PRIx64> a la taula de cerca de .eh_frame_hdr\n"
+
+#: dwarf.c:9470
+#, c-format
+msgid "Failed to read address field for entry %#<PRIx64> in the .eh_frame_hdr's search table\n"
+msgstr "No s'ha pogut llegir el camp d'adreça de l'entrada %#<PRIx64> a la taula de cerca de .eh_frame_hdr\n"
+
+#: dwarf.c:9499
msgid "bad register: "
msgstr "registre dolent: "
-#: dwarf.c:7650
-#, fuzzy
-#| msgid "Failed to read in number of chains\n"
+#: dwarf.c:9670
msgid "Failed to read CIE information\n"
-msgstr "No s'ha pogut llegir el nombre de cadenes\n"
+msgstr "No s'ha pogut llegir la informació CIE\n"
-#: dwarf.c:7661 dwarf.c:7685 dwarf.c:7712
-#, fuzzy
-#| msgid "Invalid radix: %s\n"
+#: dwarf.c:9681 dwarf.c:9702 dwarf.c:9731
msgid "Invalid max register\n"
-msgstr "Radix invàlid: %s\n"
+msgstr "Registre max invàlid\n"
#. PR 17512: file: 9e196b3e.
-#: dwarf.c:7727
+#: dwarf.c:9746
#, c-format
msgid "Probably corrupt segment size: %d - using 4 instead\n"
-msgstr ""
-
-#: dwarf.c:7751
-#, c-format
-msgid "Corrupt augmentation data length: 0x%s\n"
-msgstr ""
+msgstr "Probablement la mida del segment està malmesa: %d - s'utilitza 4 en el seu lloc\n"
-#: dwarf.c:7873
+#. Ideally translate "invalid " to 8 chars, trailing space
+#. is optional.
+#: dwarf.c:9790
#, c-format
-msgid "Corrupt CFA_def expression value: %lu\n"
-msgstr ""
-
-#. PR 17512: file:306-192417-0.005.
-#: dwarf.c:7887
-#, c-format
-msgid "Corrupt CFA expression value: %lu\n"
-msgstr ""
+msgid "cie=invalid "
+msgstr "cie=invàlid"
-#: dwarf.c:8190
+#: dwarf.c:10224
msgid "Invalid column number in saved frame state\n"
-msgstr ""
+msgstr "El nombre de columna no és vàlid en l'estat del marc desat\n"
-#: dwarf.c:8237
+#: dwarf.c:10274 dwarf.c:10298
#, c-format
-msgid " DW_CFA_def_cfa_expression: <corrupt len %lu>\n"
-msgstr ""
+msgid " %s: <corrupt len %<PRIu64>>\n"
+msgstr "%s: <corrupt len %<PRIu64>>\n"
-#: dwarf.c:8261
-#, c-format
-msgid " DW_CFA_expression: <corrupt len %lu>\n"
-msgstr ""
-
-#: dwarf.c:8393
+#: dwarf.c:10447
#, c-format
msgid " DW_CFA_??? (User defined call frame op: %#x)\n"
msgstr " DW_CFA_??? (op de marc de crida definit per l'usuari: %#x)\n"
-#: dwarf.c:8395
-#, fuzzy, c-format
-#| msgid "unsupported or unknown Dwarf Call Frame Instruction number: %#x\n"
+#: dwarf.c:10449
+#, c-format
msgid "Unsupported or unknown Dwarf Call Frame Instruction number: %#x\n"
-msgstr "Número de instrucció de marc de crida DWARF no suportat o desconegut: %#x\n"
+msgstr "Nombre de instrucció de marc de crida DWARF no suportat o desconegut: %#x\n"
-#: dwarf.c:8496 dwarf.c:8893
+#: dwarf.c:10553
#, c-format
-msgid "Version %ld\n"
-msgstr "Versió %ld\n"
+msgid "Debug info is corrupted, %s header at %#tx has length %#<PRIx64>\n"
+msgstr "La informació de depuració està malmesa, la capçalera %s a %#tx té una longitud %#<PRIx64>\n"
-#: dwarf.c:8502
-#, fuzzy
-#| msgid "Only DWARF version 2, 3 and 4 line info is currently supported.\n"
+#: dwarf.c:10562
+#, c-format
+msgid "Version %d\n"
+msgstr "Versió %d\n"
+
+#: dwarf.c:10568
msgid "Only DWARF version 5 .debug_names is currently supported.\n"
-msgstr "Sols estan actualment suportades les versions DWARF 2, 3 i 4.\n"
+msgstr "Sols estan actualment suportats els .debug_names versió DWARF 5.\n"
-#: dwarf.c:8509
+#: dwarf.c:10575
#, c-format
msgid "Padding field of .debug_names must be 0 (found 0x%x)\n"
-msgstr ""
+msgstr "El camp de farciment de .debug_names ha de ser 0 (trobat 0x%x)\n"
-#: dwarf.c:8514
+#: dwarf.c:10580
msgid "Compilation unit count must be >= 1 in .debug_names\n"
-msgstr ""
+msgstr "El nombre d'unitats de compilació ha de ser >= 1 a .debug_names\n"
-#: dwarf.c:8525
+#: dwarf.c:10591
#, c-format
msgid "Augmentation string length %u must be rounded up to a multiple of 4 in .debug_names.\n"
-msgstr ""
+msgstr "La longitud de cadena d'augment %u s'ha d'arrodonir fins a un múltiple de 4 a .debug_names.\n"
-#: dwarf.c:8530
-#, fuzzy, c-format
-#| msgid "version string"
+#: dwarf.c:10599
+#, c-format
msgid "Augmentation string:"
-msgstr "cadena de caràcters de versió"
+msgstr "Cadena de caràcters d'augment:"
-#: dwarf.c:8541
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "CU table:\n"
+#: dwarf.c:10626
+#, c-format
msgid "CU table:\n"
-msgstr ""
-"\n"
-"Taula CU:\n"
+msgstr "Taula CU:\n"
-#: dwarf.c:8547 dwarf.c:8557
-#, fuzzy, c-format
-#| msgid "[%3u] 0x%lx - 0x%lx\n"
-msgid "[%3u] 0x%lx\n"
-msgstr "[%3u] 0x%lx - 0x%lx\n"
-
-#: dwarf.c:8551
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "TU table:\n"
+#: dwarf.c:10639
+#, c-format
msgid "TU table:\n"
-msgstr ""
-"\n"
-"Taula TU:\n"
+msgstr "Taula TU:\n"
-#: dwarf.c:8561
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "TU table:\n"
+#: dwarf.c:10652
+#, c-format
msgid "Foreign TU table:\n"
-msgstr ""
-"\n"
-"Taula TU:\n"
+msgstr "Taula TU forània\n"
-#: dwarf.c:8567
+#: dwarf.c:10661
#, c-format
msgid "[%3u] "
-msgstr ""
+msgstr "[%3u]"
-#: dwarf.c:8587
+#: dwarf.c:10672
#, c-format
-msgid "Entry pool offset (0x%lx) exceeds unit size 0x%lx for unit 0x%lx in the debug_names\n"
-msgstr ""
+msgid "Entry pool offset (%#<PRIx64>) exceeds unit size %#tx for unit %#tx in the debug_names\n"
+msgstr "El desplaçament del fons d'entrada (%#<PRIx64>) excedeix la mida de la unitat %#tx per la unitat %#tx als debug_names\n"
-#: dwarf.c:8604
+#: dwarf.c:10700
#, c-format
msgid "Used %zu of %lu bucket.\n"
msgid_plural "Used %zu of %lu buckets.\n"
-msgstr[0] ""
-msgstr[1] ""
+msgstr[0] "S'utilitza %zu de %lu bucket.\n"
+msgstr[1] "S'utilitza %zu de %lu buckets.\n"
-#: dwarf.c:8631
+#: dwarf.c:10729
#, c-format
-msgid "Out of %lu items there are %zu bucket clashes (longest of %zu entries).\n"
-msgstr ""
+msgid "Out of %<PRIu64> items there are %zu bucket clashes (longest of %zu entries).\n"
+msgstr "De %<PRIu64> elements hi ha %zu conflictes de cubs (el més llarg de %zu entrades).\n"
-#: dwarf.c:8669
+#: dwarf.c:10734
#, c-format
-msgid "Duplicate abbreviation tag %lu in unit 0x%lx in the debug_names\n"
-msgstr ""
+msgid "The name_count (%<PRIu64>) is not the same as the used bucket_count (%zu) + the hash clash count (%zu)\n"
+msgstr "El name_count (%<PRIu64>) no és el mateix que el bucket_cunt (%zu) usat + el recompte de conflictes hash (%zu)\n"
-#: dwarf.c:8695 dwarf.c:9019
+#: dwarf.c:10772
+#, c-format
+msgid "Duplicate abbreviation tag %<PRIu64> in unit %#tx in the debug_names section\n"
+msgstr "Etiqueta d'abreviació duplicada %<PRIu64> a la unitat %#tx a la secció debug_names\n"
+
+#: dwarf.c:10794 dwarf.c:11097
#, c-format
msgid ""
"\n"
@@ -3744,109 +4104,91 @@ msgstr ""
"\n"
"Tauls de símbols:\n"
-#: dwarf.c:8748
+#: dwarf.c:10827
#, c-format
-msgid "Undefined abbreviation tag %lu in unit 0x%lx in the debug_names\n"
-msgstr ""
+msgid "Invalid entry offset value: %<PRIx64>\n"
+msgstr "Valor de desplaçament d'entrada no vàlid: %<PRIx64>\n"
-#: dwarf.c:8784
-#, fuzzy, c-format
-#| msgid " Local entries:\n"
+#: dwarf.c:10859
+#, c-format
+msgid "Undefined abbreviation tag %<PRId64> in unit %#tx in the debug_names section\n"
+msgstr "Etiqueta d'abreviatura no definida %<PRId64> a la unitat %#tx a la secció debug_names\n"
+
+#: dwarf.c:10890
+#, c-format
msgid " <no entries>"
-msgstr " Entrades locals\n"
+msgstr " <sense entrades>"
-#: dwarf.c:8816
+#: dwarf.c:10922
msgid "The debuglink filename is corrupt/missing\n"
-msgstr ""
+msgstr "El nom de fitxer debuglink està corromput/falta\n"
-#: dwarf.c:8820
-#, fuzzy, c-format
-#| msgid " Size of area in .debug_info section: %ld\n"
+#: dwarf.c:10926
+#, c-format
msgid " Separate debug info file: %s\n"
-msgstr " Mida de l'àrea a la secció .debug_info: %ld\n"
+msgstr " Mida de l'àrea a la secció debug info: %s\n"
-#: dwarf.c:8831
+#: dwarf.c:10937
msgid "CRC offset missing/truncated\n"
-msgstr ""
+msgstr "Manca el desplaçament CRC/truncat\n"
-#: dwarf.c:8837
-#, fuzzy, c-format
-#| msgid " Language: %s\n"
+#: dwarf.c:10943
+#, c-format
msgid " CRC value: %#x\n"
-msgstr " Idioma: %s\n"
+msgstr " Valor CRC: %#x\n"
-#: dwarf.c:8841
-#, fuzzy, c-format
-#| msgid "There are %ld unused bytes at the end of section %s\n"
-msgid "There are %#lx extraneous bytes at the end of the section\n"
-msgstr "Hi ha %ld bytes sense usar al final de la secció %s\n"
+#: dwarf.c:10947
+#, c-format
+msgid "There are %#<PRIx64> extraneous bytes at the end of the section\n"
+msgstr "Hi ha %#<PRIx64> bytes estranys al final de la secció\n"
-#: dwarf.c:8855
+#: dwarf.c:10962
#, c-format
-msgid "Build-ID is too short (%#lx bytes)\n"
-msgstr ""
+msgid "Build-ID is too short (%#zx bytes)\n"
+msgstr "L'ID de compilació és massa curt (%#zx bytes)\n"
-#: dwarf.c:8859
+#: dwarf.c:10966
#, c-format
-msgid " Build-ID (%#lx bytes):"
-msgstr ""
+msgid " Build-ID (%#zx bytes):"
+msgstr "Identificador de compilació (%#zx bytes):"
-#: dwarf.c:8888
+#: dwarf.c:10998
#, c-format
msgid "Truncated header in the %s section.\n"
msgstr "Capçalera truncada a la secció %s.\n"
-#: dwarf.c:8899
+#: dwarf.c:11002
+#, c-format
+msgid "Version %lu\n"
+msgstr "Versió %lu\n"
+
+#: dwarf.c:11008
#, c-format
msgid "Unsupported version %lu.\n"
msgstr "Versió no suportada %lu.\n"
-#: dwarf.c:8903
+#: dwarf.c:11012
msgid "The address table data in version 3 may be wrong.\n"
msgstr "Les dades de la taula d'adreces a la versió 3 poden ser incorrectes.\n"
-#: dwarf.c:8905
+#: dwarf.c:11014
msgid "Version 4 does not support case insensitive lookups.\n"
msgstr "La versió 4 no dóna suport a cerques no sensitives a majúscula/minúscula.\n"
-#: dwarf.c:8907
+#: dwarf.c:11016
msgid "Version 5 does not include inlined functions.\n"
msgstr "La versió 5 no inclou funcions en línia.\n"
-#: dwarf.c:8909
+#: dwarf.c:11018
msgid "Version 6 does not include symbol attributes.\n"
msgstr "La versió 6 no inclou atributs de símbols.\n"
-#: dwarf.c:8927
+#: dwarf.c:11046
#, c-format
msgid "Corrupt header in the %s section.\n"
-msgstr "Capçalera corrupta a la secció %s.\n"
-
-#: dwarf.c:8934
-#, c-format
-msgid "TU offset (%x) is less than CU offset (%x)\n"
-msgstr ""
+msgstr "Capçalera malmesa a la secció %s.\n"
-#: dwarf.c:8943
-#, c-format
-msgid "Address table offset (%x) is less than TU offset (%x)\n"
-msgstr ""
-
-#: dwarf.c:8953
-#, c-format
-msgid "Symbol table offset (%x) is less then Address table offset (%x)\n"
-msgstr ""
-
-#: dwarf.c:8962
-#, c-format
-msgid "Constant pool offset (%x) is less than symbol table offset (%x)\n"
-msgstr ""
-
-#: dwarf.c:8977
-msgid "Address table extends beyond end of section.\n"
-msgstr ""
-
-#: dwarf.c:8981
+#: dwarf.c:11062
#, c-format
msgid ""
"\n"
@@ -3855,12 +4197,7 @@ msgstr ""
"\n"
"Taula CU:\n"
-#: dwarf.c:8987
-#, c-format
-msgid "[%3u] 0x%lx - 0x%lx\n"
-msgstr "[%3u] 0x%lx - 0x%lx\n"
-
-#: dwarf.c:8992
+#: dwarf.c:11072
#, c-format
msgid ""
"\n"
@@ -3869,12 +4206,7 @@ msgstr ""
"\n"
"Taula TU:\n"
-#: dwarf.c:8999
-#, c-format
-msgid "[%3u] 0x%lx 0x%lx "
-msgstr "[%3u] 0x%lx 0x%lx "
-
-#: dwarf.c:9006
+#: dwarf.c:11085
#, c-format
msgid ""
"\n"
@@ -3883,506 +4215,563 @@ msgstr ""
"\n"
"Taula d'adreces:\n"
-#: dwarf.c:9016
+#: dwarf.c:11112
#, c-format
-msgid "%lu\n"
-msgstr "%lu\n"
-
-#: dwarf.c:9036
-#, fuzzy, c-format
-#| msgid " <corrupt: %14ld>"
msgid "[%3u] <corrupt offset: %x>"
-msgstr " <corrupte: %14ld>"
+msgstr "[%3u] <desplaçament malmès: %x>"
-#: dwarf.c:9037
+#: dwarf.c:11113
#, c-format
msgid "Corrupt name offset of 0x%x found for symbol table slot %d\n"
-msgstr ""
+msgstr "S'ha trobat un desplaçament del nom incorrecte de 0x%x per a l'espai %d de la taula de símbols\n"
-#: dwarf.c:9048
+#: dwarf.c:11124
#, c-format
msgid "<invalid CU vector offset: %x>\n"
-msgstr ""
+msgstr "<invalid CU vector offset: %x>\n"
-#: dwarf.c:9049
+#: dwarf.c:11125
#, c-format
msgid "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"
-msgstr ""
+msgstr "S'ha trobat un desplaçament incorrecte del vector CU de 0x%x per a l'espai %d de la taula de símbols\n"
-#: dwarf.c:9062
+#: dwarf.c:11136
#, c-format
msgid "Invalid number of CUs (0x%x) for symbol table slot %d\n"
-msgstr ""
+msgstr "El nombre de CUs (0x%x) per a l'espai %d de la taula de símbols no és vàlid\n"
-#: dwarf.c:9087
+#: dwarf.c:11161
msgid "static"
msgstr "estàtic"
-#: dwarf.c:9087
+#: dwarf.c:11161
msgid "global"
msgstr "global"
-#: dwarf.c:9125 dwarf.c:9136
-msgid "Internal error: out of space in the shndx pool.\n"
-msgstr "Error intern: espai exhaurit al conjunt shndx.\n"
-
-#: dwarf.c:9200
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "The %s section is empty.\n"
-msgid "Section %s is empty\n"
+#: dwarf.c:11173
+#, c-format
+msgid ""
+"\n"
+"Shortcut table:\n"
msgstr ""
"\n"
-"La secció %s està buida.\n"
+"Taula de dreceres:\n"
-#: dwarf.c:9206
-#, fuzzy, c-format
-#| msgid "Section %s too small for offset and size tables\n"
-msgid "Section %s is too small to contain a CU/TU header\n"
-msgstr "La secció %s és massa petita per a les taules de desplaçaments i mides\n"
+#: dwarf.c:11177
+#, c-format
+msgid "Corrupt shortcut table in the %s section.\n"
+msgstr "Tala de dreceres malmesa a la secció %s.\n"
-#: dwarf.c:9224
-#, fuzzy, c-format
-#| msgid "Section %s too small for shndx pool\n"
-msgid "Section %s is too small for %d slot\n"
-msgid_plural "Section %s is too small for %d slots\n"
-msgstr[0] "La secció %s és massa petita per al fons shndx\n"
-msgstr[1] "La secció %s és massa petita per al fons shndx\n"
+#: dwarf.c:11182
+#, c-format
+msgid "Language of main: "
+msgstr "Idioma del principal: "
-#: dwarf.c:9235
+#: dwarf.c:11186
#, c-format
-msgid " Version: %d\n"
-msgstr " Versió: %d\n"
+msgid "Name of main: "
+msgstr "Nom del principal: "
+
+#: dwarf.c:11188
+#, c-format
+msgid "<unknown>\n"
+msgstr "<desconegut>\n"
-#: dwarf.c:9237
+#: dwarf.c:11194
#, c-format
-msgid " Number of columns: %d\n"
-msgstr " Nombre de columnes: %d\n"
+msgid "<corrupt offset: %x>\n"
+msgstr "<desplaçament malmès: %x\n"
-#: dwarf.c:9238
+#: dwarf.c:11195
#, c-format
-msgid " Number of used entries: %d\n"
-msgstr " Nombre d'entrades usades: %d\n"
+msgid "Corrupt name offset of 0x%x found for name of main\n"
+msgstr "S'ha trobat un desplaçament del nom incorrecte de 0x%x per al nom del principal\n"
-#: dwarf.c:9239
+#: dwarf.c:11299
+#, c-format
+msgid "Section %s is empty\n"
+msgstr "La secció %s està buida.\n"
+
+#: dwarf.c:11305
+#, c-format
+msgid "Section %s is too small to contain a CU/TU header\n"
+msgstr "La secció %s és massa petita per contenir una capçalera CU/TU\n"
+
+#: dwarf.c:11326
+#, c-format
+msgid " Number of columns: %u\n"
+msgstr " Nombre de columnes: %u\n"
+
+#: dwarf.c:11327
+#, c-format
+msgid " Number of used entries: %u\n"
+msgstr " Nombre d'entrades usades: %u\n"
+
+#: dwarf.c:11328
#, c-format
msgid ""
-" Number of slots: %d\n"
+" Number of slots: %u\n"
"\n"
-msgstr " Nombre de posicions: %d\n"
+msgstr " Nombre de llocs: %u\n"
-#: dwarf.c:9244
+#: dwarf.c:11335
#, c-format
-msgid "Section %s too small for %d hash table entries\n"
-msgstr "La secció %s és massa petita per a %d entrades de taula de resum\n"
+msgid "Section %s is too small for %u slot\n"
+msgid_plural "Section %s is too small for %u slots\n"
+msgstr[0] "La secció %s és massa petita per a %u lloc\n"
+msgstr[1] "La secció %s és massa petita per a %u llocs\n"
-#: dwarf.c:9266
+#: dwarf.c:11368
msgid "Section index pool located before start of section\n"
-msgstr ""
+msgstr "Fons d'índex de secció situat abans de l'inici de la secció\n"
-#: dwarf.c:9271
+#: dwarf.c:11372
#, c-format
-msgid " [%3d] Signature: 0x%s Sections: "
-msgstr " [%3d] Signatura: 0x%s Seccions: "
+msgid " [%3d] Signature: %#<PRIx64> Sections: "
+msgstr " [%3d] Signatura: %#<PRIx64> Seccions: "
-#: dwarf.c:9278
+#: dwarf.c:11378
#, c-format
msgid "Section %s too small for shndx pool\n"
msgstr "La secció %s és massa petita per al fons shndx\n"
-#: dwarf.c:9320
-#, fuzzy, c-format
-#| msgid " Number of columns: %d\n"
-msgid "Overlarge number of columns: %x\n"
-msgstr " Nombre de columnes: %d\n"
-
-#: dwarf.c:9326
+#: dwarf.c:11421
#, c-format
msgid "Section %s too small for offset and size tables\n"
msgstr "La secció %s és massa petita per a les taules de desplaçaments i mides\n"
-#: dwarf.c:9333
+#: dwarf.c:11428
#, c-format
msgid " Offset table\n"
msgstr " Taula de posicions\n"
-#: dwarf.c:9335 dwarf.c:9436
+#: dwarf.c:11430 dwarf.c:11517
msgid "signature"
msgstr "signatura"
-#: dwarf.c:9335 dwarf.c:9436
+#: dwarf.c:11430 dwarf.c:11517
msgid "dwo_id"
msgstr "dwo_id"
-#: dwarf.c:9373
-#, fuzzy, c-format
-#| msgid "section %u: sh_link value of %u is larger than the number of sections\n"
-msgid "Row index (%u) is larger than number of used entries (%u)\n"
-msgstr "secció %u: el valor sh_link de %u és més gran que el nombre de seccions\n"
-
-#: dwarf.c:9387
-#, c-format
-msgid "Signature (%p) extends beyond end of space in section\n"
-msgstr ""
-
-#: dwarf.c:9396
-#, c-format
-msgid "Row index (%u) * num columns (%u) > space remaining in section\n"
-msgstr ""
-
-#: dwarf.c:9402 dwarf.c:9459
+#: dwarf.c:11469
#, c-format
-msgid " [%3d] 0x%s"
-msgstr " [%3d] 0x%s"
+msgid "Row index (%u) is larger than number of used entries (%u)\n"
+msgstr "L'índex de files (%u) és més gran que el nombre d'entrades usades (%u)\n"
-#: dwarf.c:9416 dwarf.c:9472
+#: dwarf.c:11497 dwarf.c:11568
#, c-format
msgid "Overlarge Dwarf section index detected: %u\n"
-msgstr ""
+msgstr "S'ha detectat un índex de secció Dwarf sobredimensionat: %u\n"
-#: dwarf.c:9434
+#: dwarf.c:11515
#, c-format
msgid " Size table\n"
msgstr "Mida de la taula\n"
-#: dwarf.c:9487
-#, fuzzy, c-format
-#| msgid " Unsupported version\n"
+#: dwarf.c:11554
+#, c-format
+msgid "Too many rows/columns in DWARF index section %s\n"
+msgstr "Massa files/columnes a la secció d'índex DWARF %s\n"
+
+#: dwarf.c:11583
+#, c-format
msgid " Unsupported version (%d)\n"
-msgstr "Versió no suportada\n"
+msgstr " Versió no suportada (%d)\n"
-#: dwarf.c:9559
+#: dwarf.c:11655
#, c-format
msgid "Displaying the debug contents of section %s is not yet supported.\n"
msgstr "Encara no està suportat mostrar els continguts de depuració de la secció %s.\n"
-#: dwarf.c:9590
+#: dwarf.c:11686
#, c-format
-msgid "Attempt to allocate an array with an excessive number of elements: 0x%lx\n"
-msgstr ""
+msgid "Attempt to allocate an array with an excessive number of elements: %#<PRIx64>\n"
+msgstr "Intent d'assignar una matriu amb un nombre excessiu d'elements: %#<PRIx64>\n"
-#: dwarf.c:9608
+#: dwarf.c:11704
#, c-format
-msgid "Attempt to re-allocate an array with an excessive number of elements: 0x%lx\n"
-msgstr ""
+msgid "Attempt to re-allocate an array with an excessive number of elements: %#<PRIx64>\n"
+msgstr "Intent de reassignar una matriu amb un nombre excessiu d'elements: %#<PRIx64>\n"
-#: dwarf.c:9624
+#: dwarf.c:11720
#, c-format
-msgid "Attempt to allocate a zero'ed array with an excessive number of elements: 0x%lx\n"
-msgstr ""
+msgid "Attempt to allocate a zero'ed array with an excessive number of elements: %#<PRIx64>\n"
+msgstr "Intent d'assignar una matriu de zero amb un nombre excessiu d'elements: %#<PRIx64>\n"
-#: dwarf.c:9722
-#, fuzzy, c-format
-#| msgid "Unable to open temporary assembler file: %s"
+#: dwarf.c:11818
+#, c-format
msgid "Unable to reopen separate debug info file: %s\n"
-msgstr "No es pot obrir el fitxer temporal d'assemblador: %s"
+msgstr "No es pot obrir el fitxer separat d'informació de depuració: %s\n"
-#: dwarf.c:9734
+#: dwarf.c:11830
#, c-format
msgid "Separate debug info file %s found, but CRC does not match - ignoring\n"
-msgstr ""
+msgstr "S'ha trobat el fitxer d'informació de depuració separat %s, però CRC no coincideix - s'ignora\n"
-#: dwarf.c:9829
-#, fuzzy, c-format
-#| msgid "cannot create debug link section `%s'"
+#: dwarf.c:12010
+#, c-format
msgid "Corrupt debuglink section: %s\n"
-msgstr "no es pot crear la secció d'enllaçament de depuració `%s'"
+msgstr "Secció debuglink malmesa: %s\n"
-#: dwarf.c:9867
-#, fuzzy
-#| msgid "Out of memory\n"
-msgid "Out of memory"
+#: dwarf.c:12049 elfcomm.c:295 elfcomm.c:320 elfcomm.c:794
+msgid "Out of memory\n"
msgstr "Memòria exhaurida\n"
#. Failed to find the file.
-#: dwarf.c:9917
-#, fuzzy, c-format
-#| msgid "could not open section dump file"
+#: dwarf.c:12125
+#, c-format
msgid "could not find separate debug file '%s'\n"
-msgstr "no s'ha pogut obrir el fitxer de bolcat de secció"
+msgstr ""
+"no s'ha pogut trobar el fitxer separat de depuració «%s»\n"
+"\n"
-#: dwarf.c:9918 dwarf.c:9922 dwarf.c:9927 dwarf.c:9931 dwarf.c:9934
-#: dwarf.c:9937 dwarf.c:9940
-#, fuzzy, c-format
-#| msgid "Tried `%s'\n"
+#: dwarf.c:12127 dwarf.c:12132 dwarf.c:12138 dwarf.c:12142 dwarf.c:12147
+#: dwarf.c:12150 dwarf.c:12153 dwarf.c:12156
+#, c-format
msgid "tried: %s\n"
-msgstr "S'ha provat `%s'\n"
+msgstr "s'ha provat: %s\n"
-#: dwarf.c:9952
-#, fuzzy, c-format
-#| msgid "failed to open temporary head file: %s"
+#: dwarf.c:12166
+#, c-format
+msgid "tried: DEBUGINFOD_URLS=%s\n"
+msgstr "provat: DEBUGINFOD_URLS=%s\n"
+
+#: dwarf.c:12194
+#, c-format
msgid "failed to open separate debug file: %s\n"
-msgstr "no s'ha pogut obrir un fitxer capçalera temporal: %s"
+msgstr "no s'ha pogut obrir un fitxer separat de depuració: %s\n"
-#. FIXME: We do not check to see if there are any other separate debug info
-#. files that would also match.
-#: dwarf.c:9960
+#: dwarf.c:12203
#, c-format
msgid ""
-"%s: Found separate debug info file: %s\n"
"\n"
+"%s: Found separate debug info file: %s\n"
msgstr ""
+"\n"
+"%s: S'ha trobat un fitxer separat d'informació de depuració: %s\n"
-#: dwarf.c:9979
-#, fuzzy
-#| msgid "Out of memory allocating dump request table.\n"
+#: dwarf.c:12226
msgid "Out of memory allocating dwo filename\n"
-msgstr "S'ha exhaurit la memòria quan s'estava assignant la taula de demanda de bolcat\n"
+msgstr "S'ha exhaurit la memòria quan s'estava assignant el nom de fitxer dwo\n"
-#: dwarf.c:9985
-#, fuzzy, c-format
-#| msgid "Unable to open base-file: %s"
+#: dwarf.c:12232
+#, c-format
msgid "Unable to load dwo file: %s\n"
-msgstr "No s'ha pogut obrir fitxer-base: %s"
+msgstr "No s'ha pogut obrir un fiter dwo: %s\n"
#. FIXME: We should check the dwo_id.
-#: dwarf.c:9992
+#: dwarf.c:12239
#, c-format
msgid ""
"%s: Found separate debug object file: %s\n"
"\n"
msgstr ""
+"%s: S'ha trobat un fitxer d'objecte de depuració separat: %s\n"
+"\n"
-#: dwarf.c:10024
+#: dwarf.c:12271
+msgid "Unable to load the .note.gnu.build-id section\n"
+msgstr "No s'ha pogut carregar la secció .note.gnu.build-id\n"
+
+#: dwarf.c:12277
+msgid ".note.gnu.build-id section is corrupt/empty\n"
+msgstr "La secció .note.gnu.build-id està malmesa/buida\n"
+
+#: dwarf.c:12298
+msgid ".note.gnu.build-id data size is too small\n"
+msgstr "La mida de les dades .note.gnu.build-id és massa petita\n"
+
+#: dwarf.c:12304
+msgid ".note.gnu.build-id data size is too big\n"
+msgstr "La mida de les dades .note.gnu.build-id és massa gran\n"
+
+#: dwarf.c:12365
+msgid ".debug_sup section is corrupt/empty\n"
+msgstr "la secció .debug_sup esta malmesa/buida\n"
+
+#: dwarf.c:12375
+msgid "filename in .debug_sup section is corrupt\n"
+msgstr "el nom de fitxer a la secció .debug_sup està malmès\n"
+
+#: dwarf.c:12392
#, c-format
-msgid "The %s section contains a link to a dwo file:\n"
+msgid "unable to open file '%s' referenced from .debug_sup section\n"
+msgstr "no s'ha pogut obrir el fitxer «%s» referenciat a la seccio .debug_sup\n"
+
+#: dwarf.c:12397
+#, c-format
+msgid ""
+"%s: Found supplementary debug file: %s\n"
+"\n"
msgstr ""
+"%s: S'ha trobat un fitxer suplementari de depuració: %s\n"
+"\n"
-#: dwarf.c:10026
-#, fuzzy, c-format
-#| msgid " Name: %s\n"
+#: dwarf.c:12498
+msgid "Multiple DWO_NAMEs encountered for the same CU\n"
+msgstr "S'han trobat múltiples DWO_NAMEs per a la mateixa CU\n"
+
+#: dwarf.c:12510
+msgid "multiple DWO_IDs encountered for the same CU\n"
+msgstr "S'han trobat múltiples DWO_IDs per a la mateixa CU\n"
+
+#: dwarf.c:12515
+msgid "Unexpected DWO INFO type"
+msgstr "Tipus DWO_INFO no esperat"
+
+#: dwarf.c:12530
+#, c-format
+msgid ""
+"The %s section contains link(s) to dwo file(s):\n"
+"\n"
+msgstr ""
+"La secció %s conté enllaços a fitxer(s) dwo:\n"
+"\n"
+
+#: dwarf.c:12535
+#, c-format
msgid " Name: %s\n"
-msgstr " Nom: %s\n"
+msgstr " Nom: %s\n"
-#: dwarf.c:10027
-#, fuzzy, c-format
-#| msgid " identity: %s\n"
+#: dwarf.c:12536
+#, c-format
msgid " Directory: %s\n"
-msgstr " identitat: %s\n"
+msgstr " Directori: %s\n"
-#: dwarf.c:10027
-#, fuzzy
-#| msgid " no tags found\n"
+#: dwarf.c:12536
msgid "<not-found>"
-msgstr " no s'han trobat senyaladors\n"
+msgstr "<no-trobat>"
-#: dwarf.c:10029
-#, fuzzy, c-format
-#| msgid " Version: %d\n"
+#: dwarf.c:12538
+#, c-format
msgid " ID: "
-msgstr " Versió: %d\n"
+msgstr " ID: "
-#: dwarf.c:10031
-#, fuzzy, c-format
-#| msgid ", <unknown>"
-msgid " ID: <unknown>\n"
-msgstr ", <desconegut>"
+#: dwarf.c:12540
+#, c-format
+msgid " ID: <not specified>\n"
+msgstr "ID: <no especificat>\n"
-#: dwarf.c:10190 dwarf.c:10232
+#: dwarf.c:12697
#, c-format
msgid "Unrecognized debug option '%s'\n"
-msgstr "Opció de depuració '%s' no reconeguda\n"
+msgstr "Opció de depuració «%s» no reconeguda\n"
+
+#: dwarf.c:12741
+#, c-format
+msgid "Unrecognized debug letter option '%c'\n"
+msgstr "Lletra d'opció de depuració «%c» no reconeguda\n"
+
+#: dwarf.h:282
+msgid "end of data encountered whilst reading LEB\n"
+msgstr "s'ha trobat el final de les dades en llegir la LEB\n"
-#: elfcomm.c:42
+#: dwarf.h:284
+msgid "read LEB value is too large to store in destination variable\n"
+msgstr "el valor LEB de lectura és massa gran per a emmagatzemar en la variable de destinació\n"
+
+#: elfcomm.c:47
#, c-format
msgid "%s: Error: "
msgstr "%s: Error: "
-#: elfcomm.c:56
+#: elfcomm.c:61
#, c-format
msgid "%s: Warning: "
msgstr "%s: Advertiment: "
-#: elfcomm.c:88 elfcomm.c:123 elfcomm.c:228 elfcomm.c:338
+#: elfcomm.c:75
+#, c-format
+msgid "%s: Info: "
+msgstr "%s: Error: "
+
+#: elfcomm.c:87 elfcomm.c:102 elfcomm.c:172 elfcomm.c:235
#, c-format
msgid "Unhandled data length: %d\n"
msgstr "Longitud de dades no controlada: %d\n"
-#: elfcomm.c:417 elfcomm.c:442 elfcomm.c:909
-msgid "Out of memory\n"
-msgstr "Memòria exhaurida\n"
-
-#: elfcomm.c:434
+#: elfcomm.c:312
#, c-format
msgid "Abnormal length of thin archive member name: %lx\n"
-msgstr ""
+msgstr "Longitud anormal del nom del membre de l'arxiu prim: %lx\n"
-#: elfcomm.c:478
-#, fuzzy, c-format
-#| msgid "%s: did not find a valid archive header\n"
+#: elfcomm.c:356
+#, c-format
msgid "%s: invalid archive header size: %ld\n"
-msgstr "%s: no s'ha pogut trobar una capçalera vàlida d'arxiu\n"
+msgstr "%s: mida de la capçalera de fitxer no vàlida: %ld\n"
-#: elfcomm.c:491
+#: elfcomm.c:369
#, c-format
msgid "%s: failed to skip archive symbol table\n"
msgstr "%s: no s'ha pogut saltar la taula de símbols de l'arxiu\n"
-#: elfcomm.c:510
+#: elfcomm.c:388
#, c-format
msgid "%s: the archive index is empty\n"
msgstr "%s: l'índex del fitxer està buit\n"
-#: elfcomm.c:518 elfcomm.c:547
+#: elfcomm.c:396 elfcomm.c:425
#, c-format
msgid "%s: failed to read archive index\n"
msgstr "%s: ha fallat la lectura de l'índex del fitxer\n"
-#: elfcomm.c:529
-#, fuzzy, c-format
-#| msgid "%s: the archive index is supposed to have %ld entries of %d bytes, but the size is only %ld\n"
+#: elfcomm.c:407
+#, c-format
msgid "%s: the archive index is supposed to have 0x%lx entries of %d bytes, but the size is only 0x%lx\n"
-msgstr "%s:l'index de l'arxiu hauria de tenir %ld entrades de %d bytes, però la mida és sols %ld\n"
+msgstr "%s: l'index de l'arxiu hauria de tenir 0x%lx entrades de %d bytes, però la mida és sols 0x%lx\n"
-#: elfcomm.c:539
+#: elfcomm.c:417
msgid "Out of memory whilst trying to read archive symbol index\n"
msgstr "S'ha exhaurit la memòria quan s'estava intentant llegir l'índex de símbols de l'arxiu\n"
-#: elfcomm.c:559
+#: elfcomm.c:437
msgid "Out of memory whilst trying to convert the archive symbol index\n"
msgstr "S'ha exhaurit la memòria quan s'estava intentant convertir l'índex de simbols dels fitxer\n"
-#: elfcomm.c:572
+#: elfcomm.c:450
#, c-format
msgid "%s: the archive has an index but no symbols\n"
msgstr "%s: l'arxiu té un índex però cap símbol\n"
-#: elfcomm.c:580
+#: elfcomm.c:458
msgid "Out of memory whilst trying to read archive index symbol table\n"
msgstr "S'ha exhaurit la memòria quan s'estava intentant llegir la taula de símbols de l'índex de l'arxiu\n"
-#: elfcomm.c:588
+#: elfcomm.c:466
#, c-format
msgid "%s: failed to read archive index symbol table\n"
msgstr "%s: no s'ha pogut llegir la taula de símbols de l'índex de l'arxiu\n"
-#: elfcomm.c:598
+#: elfcomm.c:476
#, c-format
msgid "%s: failed to read archive header following archive index\n"
msgstr "%s: no s'ha pogut llegir la capçalera de l'arxiu a continuació de l'índex de l'arxiu\n"
-#: elfcomm.c:631
+#: elfcomm.c:509
#, c-format
msgid "%s: failed to seek to first archive header\n"
msgstr "%s: ha fallat la cerca a la primera capçalera de fitxer\n"
#. PR 24049 - we cannot use filedata->file_name as this will
#. have already been freed.
-#: elfcomm.c:640 elfcomm.c:867 elfedit.c:584 readelf.c:19511
+#: elfcomm.c:518 elfcomm.c:752 elfedit.c:613 readelf.c:24034
#, c-format
msgid "%s: failed to read archive header\n"
msgstr "%s: ha fallat la lectura de la capçalera del fitxer\n"
-#: elfcomm.c:657
+#: elfcomm.c:535
#, c-format
msgid "%s has no archive index\n"
msgstr "%s no té cap índex d'arxiu\n"
-#: elfcomm.c:669
+#: elfcomm.c:547
#, c-format
-msgid "%s: long name table is too small, (size = %ld)\n"
-msgstr ""
+msgid "%s: long name table is too small, (size = %<PRId64>)\n"
+msgstr "%s: la taula de noms llarga és massa petita, (mida = %<PRId64>)\n"
-#: elfcomm.c:676
+#: elfcomm.c:555
#, c-format
-msgid "%s: long name table is too big, (size = 0x%lx)\n"
-msgstr ""
+msgid "%s: long name table is too big, (size = %#<PRIx64>)\n"
+msgstr "%s: la taula de noms llarga és massa gran, (mida ) %#<PRIx64>)\n"
-#: elfcomm.c:687
+#: elfcomm.c:566
msgid "Out of memory reading long symbol names in archive\n"
msgstr "S'ha exhaurit la memòria quan s'estaven llegint noms llargs de símbol a l'arxiu\n"
-#: elfcomm.c:695
+#: elfcomm.c:574
#, c-format
msgid "%s: failed to read long symbol name string table\n"
msgstr "%s: no s'ha pogut llegir la taula de cadenes de noms llargs de símbols\n"
-#: elfcomm.c:772
+#: elfcomm.c:657
msgid "Archive member uses long names, but no longname table found\n"
msgstr "El membre de l'arxiu fa servir noms llargs, però no s'ha trobar cap taula de noms llargs\n"
-#: elfcomm.c:786
+#: elfcomm.c:671
#, c-format
msgid "Found long name index (%ld) beyond end of long name table\n"
-msgstr ""
+msgstr "S'ha trobat l'índex de nom llarg (%ld) més enllà del final de la taula de noms llargs\n"
-#: elfcomm.c:805
-#, fuzzy
-#| msgid "%s: bad archive file name\n"
+#: elfcomm.c:690
msgid "Invalid Thin archive member name\n"
-msgstr "%s: nom dolent de fixer d'arxiu\n"
+msgstr "%s: nom invàlid de membre de fixer Thin\n"
-#: elfcomm.c:861
+#: elfcomm.c:746
#, c-format
msgid "%s: failed to seek to next file name\n"
msgstr "%s: no s'ha pogut buscar el pròxim nom de fitxer\n"
-#: elfcomm.c:872 elfedit.c:591 readelf.c:19518
+#: elfcomm.c:757 elfedit.c:620 readelf.c:24041
#, c-format
msgid "%s: did not find a valid archive header\n"
msgstr "%s: no s'ha pogut trobar una capçalera vàlida d'arxiu\n"
-#: elfedit.c:90
+#: elfedit.c:93
#, c-format
msgid "%s: Not an i386 nor x86-64 ELF file\n"
-msgstr ""
+msgstr "%s: No és un fitxer i386 ni x86-64 ELF\n"
-#: elfedit.c:96
-#, fuzzy, c-format
-#| msgid "%s: fread failed"
+#: elfedit.c:99
+#, c-format
msgid "%s: stat () failed\n"
-msgstr "%s: lectura-f ha fallat"
+msgstr "%s: stat () ha fallat\n"
-#: elfedit.c:104
-#, fuzzy, c-format
-#| msgid "%s: fread failed"
+#: elfedit.c:107
+#, c-format
msgid "%s: mmap () failed\n"
-msgstr "%s: lectura-f ha fallat"
+msgstr "%s: mmap () ha fallat\n"
-#: elfedit.c:243
+#: elfedit.c:246
#, c-format
msgid "%s: Invalid PT_NOTE segment\n"
-msgstr ""
+msgstr "%s: El segment PT_NOTE no és vàlid\n"
-#: elfedit.c:309
+#: elfedit.c:271
+#, c-format
+msgid "Unknown x86 feature: %s\n"
+msgstr "Característica x86 no coneguda: %s\n"
+
+#: elfedit.c:319
#, c-format
msgid "%s: Unsupported EI_VERSION: %d is not %d\n"
msgstr "%s: Versió EI no suportada: %d no és %d\n"
-#: elfedit.c:330
-#, fuzzy, c-format
-#| msgid "%s: Unmatched EI_CLASS: %d is not %d\n"
+#: elfedit.c:340
+#, c-format
msgid "%s: Unmatched input EI_CLASS: %d is not %d\n"
-msgstr "%s: CLASSE EI sense coincidència: %d no és %d\n"
+msgstr "%s: Entrada EI_CLASS sense coincidència: %d no és %d\n"
-#: elfedit.c:339
-#, fuzzy, c-format
-#| msgid "%s: Unmatched EI_CLASS: %d is not %d\n"
+#: elfedit.c:349
+#, c-format
msgid "%s: Unmatched output EI_CLASS: %d is not %d\n"
msgstr "%s: CLASSE EI sense coincidència: %d no és %d\n"
-#: elfedit.c:348
+#: elfedit.c:358
#, c-format
msgid "%s: Unmatched e_machine: %d is not %d\n"
msgstr "%s: Màquina e sense coincidència: %d no és %d\n"
-#: elfedit.c:359
+#: elfedit.c:369
#, c-format
msgid "%s: Unmatched e_type: %d is not %d\n"
msgstr "%s: Tipus e sense coincidència: %d no és %d\n"
-#: elfedit.c:370
+#: elfedit.c:380
#, c-format
msgid "%s: Unmatched EI_OSABI: %d is not %d\n"
msgstr "%s: EI_OSABI sense coincidència:; %d no és %d\n"
-#: elfedit.c:403
+#: elfedit.c:392
+#, c-format
+msgid "%s: Unmatched EI_ABIVERSION: %d is not %d\n"
+msgstr "%s: EI_ABIVERSION sense coincidència:; %d no és %d\n"
+
+#: elfedit.c:429
#, c-format
msgid "%s: Failed to update ELF header: %s\n"
msgstr "%s: No s'ha pogut actualitzar la capçalera ELF: %s\n"
-#: elfedit.c:473
+#: elfedit.c:499
msgid ""
"This executable has been built without support for a\n"
"64 bit data type and so it cannot process 64 bit ELF files.\n"
@@ -4390,147 +4779,146 @@ msgstr ""
"Aquest executable s'ha construït sense suport per a un tipus\n"
"de 64 bits i per això no pot processar fitxers ELF de 64 bits.\n"
-#: elfedit.c:514
+#: elfedit.c:540
#, c-format
msgid "%s: Failed to read ELF header\n"
msgstr "%s: No s'ha pogut llegir la capçalera ELF\n"
-#: elfedit.c:521
+#: elfedit.c:547
#, c-format
msgid "%s: Failed to seek to ELF header\n"
msgstr "%s: No s'ha pogut buscar la capçalera ELF\n"
-#: elfedit.c:575 readelf.c:19501
+#: elfedit.c:604 readelf.c:24022
#, c-format
msgid "%s: failed to seek to next archive header\n"
msgstr "%s: no s'ha pogut buscar la capçalera següent de l'arxiu\n"
-#: elfedit.c:606 elfedit.c:615 readelf.c:19532 readelf.c:19541
+#: elfedit.c:635 elfedit.c:644 readelf.c:24054 readelf.c:24063
#, c-format
msgid "%s: bad archive file name\n"
msgstr "%s: nom dolent de fixer d'arxiu\n"
-#: elfedit.c:635 elfedit.c:727
+#: elfedit.c:667 elfedit.c:778
#, c-format
msgid "Input file '%s' is not readable\n"
-msgstr "El fixer '%s' d'entrada no és llegible\n"
+msgstr "El fixer «%s» d'entrada no és llegible\n"
-#: elfedit.c:659
+#: elfedit.c:694
#, c-format
msgid "%s: failed to seek to archive member\n"
msgstr "%s: no s'ha pogut buscar el membre de l'arxiu\n"
-#: elfedit.c:698 readelf.c:19650
+#: elfedit.c:735 readelf.c:24182
#, c-format
msgid "'%s': No such file\n"
-msgstr "'%s': No existeix aquest fitxer\n"
+msgstr "«%s»: No existeix aquest fitxer\n"
-#: elfedit.c:700 readelf.c:19652
+#: elfedit.c:737 readelf.c:24184
#, c-format
msgid "Could not locate '%s'. System error message: %s\n"
-msgstr "No s'ha pogut localitzar '%s'. Missatge d'error de sistema: %s\n"
+msgstr "No s'ha pogut localitzar «%s». Missatge d'error de sistema: %s\n"
-#: elfedit.c:707 readelf.c:19659
+#: elfedit.c:758 readelf.c:24191
#, c-format
msgid "'%s' is not an ordinary file\n"
-msgstr "'%s' no és un fitxer ordinari\n"
+msgstr "«%s» no és un fitxer ordinari\n"
-#: elfedit.c:733 readelf.c:19681
+#: elfedit.c:784 readelf.c:24213
#, c-format
msgid "%s: Failed to read file's magic number\n"
-msgstr "%s: No s'ha pogut llegir el número màgic del fixer\n"
+msgstr "%s: No s'ha pogut llegir el nombre màgic del fixer\n"
-#: elfedit.c:797
+#: elfedit.c:848
#, c-format
msgid "Unknown OSABI: %s\n"
msgstr "OSABI desconegut: %s\n"
-#: elfedit.c:822
+#: elfedit.c:873
#, c-format
msgid "Unknown machine type: %s\n"
msgstr "Tipus de màquina desconeguda: %s\n"
-#: elfedit.c:841
+#: elfedit.c:892
#, c-format
msgid "Unknown type: %s\n"
msgstr "Tipus desconegut: %s\n"
-#: elfedit.c:882
+#: elfedit.c:943
#, c-format
msgid "Usage: %s <option(s)> elffile(s)\n"
msgstr "Forma d'ús: %s <opció(ns)> fitxer(s)-elf\n"
-#: elfedit.c:884
+#: elfedit.c:945
#, c-format
msgid " Update the ELF header of ELF files\n"
msgstr "Actualitza la capçalera ELF dels fitxers ELF\n"
-#: elfedit.c:885 objcopy.c:539 objcopy.c:675 strings.c:700
+#: elfedit.c:946 nm.c:294 objcopy.c:573 objcopy.c:715 strings.c:1332
#, c-format
msgid " The options are:\n"
msgstr "Les opcions són:\n"
-#: elfedit.c:886
-#, fuzzy, c-format
-#| msgid ""
-#| " --input-mach <machine> Set input machine type to <machine>\n"
-#| " --output-mach <machine> Set output machine type to <machine>\n"
-#| " --input-type <type> Set input file type to <type>\n"
-#| " --output-type <type> Set output file type to <type>\n"
-#| " --input-osabi <osabi> Set input OSABI to <osabi>\n"
-#| " --output-osabi <osabi> Set output OSABI to <osabi>\n"
-#| " -h --help Display this information\n"
-#| " -v --version Display the version number of %s\n"
-msgid ""
-" --input-mach <machine> Set input machine type to <machine>\n"
-" --output-mach <machine> Set output machine type to <machine>\n"
-" --input-type <type> Set input file type to <type>\n"
-" --output-type <type> Set output file type to <type>\n"
-" --input-osabi <osabi> Set input OSABI to <osabi>\n"
-" --output-osabi <osabi> Set output OSABI to <osabi>\n"
-msgstr ""
-" --input-mach <màquina> Estableix el tipus de màquina d'entrada a \n"
-" <màquina>\n"
-" --output-mach <màquina> Estableix el tipus de màquina de sortida a\n"
-" <màquina>\n"
-" --input-type <tipus> Estableix el tipus de fitxer d'entrada a <tipus>\n"
-" --output-type <tipus> Estableix el tipus de fitxer de sortida a <tipus>\n"
-" --input-osabi <osabi> Estableix l'OSABI d'entrada a <osabi>\n"
-" --output-osabi <osabi> Estableix l'OSABI de sortida a <osabi>\n"
-" -h --help Mostra aquesta informació\n"
-" -v --version Mostra el número de versió de %s\n"
-
-#: elfedit.c:894
-#, fuzzy, c-format
-#| msgid ""
-#| " -D --enable-deterministic-archives\n"
-#| " Produce deterministic output when stripping archives\n"
-#| " -U --disable-deterministic-archives\n"
-#| " Disable -D behavior (default)\n"
-msgid ""
-" --enable-x86-feature <feature>\n"
-" Enable x86 feature <feature>\n"
-" --disable-x86-feature <feature>\n"
-" Disable x86 feature <feature>\n"
-msgstr ""
-" -D --enable-deterministic-archives\n"
-" Produeix sortida determinista quan es redueixin fitxers\n"
-" -U --disable-deterministic-archives\n"
-" Desactiva el comportament -D\n"
-
-#: elfedit.c:900
-#, fuzzy, c-format
-#| msgid ""
-#| " The options are:\n"
-#| " -h --help Display this information\n"
-#| " -v --version Print the program's version number\n"
+#: elfedit.c:947
+#, c-format
+msgid ""
+" --input-mach [none|i386|iamcu|l1om|k1om|x86_64]\n"
+" Set input machine type\n"
+" --output-mach [none|i386|iamcu|l1om|k1om|x86_64]\n"
+" Set output machine type\n"
+" --input-type [none|rel|exec|dyn]\n"
+" Set input file type\n"
+" --output-type [none|rel|exec|dyn]\n"
+" Set output file type\n"
+" --input-osabi [%s]\n"
+" Set input OSABI\n"
+" --output-osabi [%s]\n"
+" Set output OSABI\n"
+" --input-abiversion [0-255] Set input ABIVERSION\n"
+" --output-abiversion [0-255] Set output ABIVERSION\n"
+msgstr ""
+" --input-mach [none]i386]iamcu]l1om]k1om]x8664]\n"
+" Estableix el tipus de màquina d'entrada\n"
+" --output-mach [none]i386]iamcu]l1om]k1om]x8664]\n"
+" Estableix el tipus de màquina de sortida\n"
+" --input-type [none]rel]exec]dyn]\n"
+" Estableix el tipus de fitxer d'entrada\n"
+" --output-type [none]rel]exec]dyn]\n"
+" Estableix el tipus de fitxer de sortida\n"
+" --input-osabi [%s]\n"
+" Estableix l'OSABI d'entrada\n"
+" --output-osabi [%s]\n"
+" Estableix l'OSABI de sortida\n"
+" --input-abiversion [0-255] Estableix l'ABIVERSION de l'entrada\n"
+" --output-abiversion [0-255] Estableix l'ABIVERSION de la sortida\n"
+
+#: elfedit.c:964
+#, c-format
+msgid ""
+" --enable-x86-feature [ibt|shstk|lam_u48|lam_u57]\n"
+" Enable x86 feature\n"
+" --disable-x86-feature [ibt|shstk|lam_u48|lam_u57]\n"
+" Disable x86 feature\n"
+msgstr ""
+" --enable-x86-feature [ibt|shstk|lam_u48|lam_u57]\n"
+" Habilita la característica x86\n"
+" --disable-x86-feature [ibt|shstk|lam_u48|lam_u57]\n"
+" Deshabilita la característica x86\n"
+
+#: elfedit.c:970
+#, c-format
msgid ""
" -h --help Display this information\n"
" -v --version Display the version number of %s\n"
msgstr ""
" Les opcions són:\n"
-" -h --help Mostra aquesta informació\n"
-" -v --version Imprimeix el número de versió del programa\n"
+" -h --help Mostra aquesta informació\n"
+" -v --version Mostra el nombre de versió de %s\n"
+
+#: elfedit.c:1049 elfedit.c:1060
+#, c-format
+msgid "Invalid ABIVERSION: %s\n"
+msgstr "ABIVERSION invàlid: %s\n"
#: emul_aix.c:44
#, c-format
@@ -4552,180 +4940,254 @@ msgstr " [-X64] - ignora objectes de 32 bit\n"
msgid " [-X32_64] - accepts 32 and 64 bit objects\n"
msgstr " [-X32_64] - accepta objectes de 32 i 64 bits\n"
-#: mclex.c:240
+#: mclex.c:245
msgid "Duplicate symbol entered into keyword list."
msgstr "S'ha entrat un símbol duplicat a una llista de paraules clau."
-#: nm.c:248 size.c:76 strings.c:698
+#: nm.c:292 size.c:88 strings.c:1330
#, c-format
msgid "Usage: %s [option(s)] [file(s)]\n"
msgstr "Forma d'ús: %s [opció(ns)] [fitxer(s)]\n"
-#: nm.c:249
+#: nm.c:293
#, c-format
msgid " List symbols in [file(s)] (a.out by default).\n"
msgstr "Llista els símbols a [fitxer(s)] (per defecte a.out).\n"
-#: nm.c:250
-#, fuzzy, c-format
-#| msgid ""
-#| " The options are:\n"
-#| " -a, --debug-syms Display debugger-only symbols\n"
-#| " -A, --print-file-name Print name of the input file before every symbol\n"
-#| " -B Same as --format=bsd\n"
-#| " -C, --demangle[=STYLE] Decode low-level symbol names into user-level names\n"
-#| " The STYLE, if specified, can be `auto' (the default),\n"
-#| " `gnu', `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-#| " or `gnat'\n"
-#| " --no-demangle Do not demangle low-level symbol names\n"
-#| " -D, --dynamic Display dynamic symbols instead of normal symbols\n"
-#| " --defined-only Display only defined symbols\n"
-#| " -e (ignored)\n"
-#| " -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n"
-#| " `sysv' or `posix'. The default is `bsd'\n"
-#| " -g, --extern-only Display only external symbols\n"
-#| " -l, --line-numbers Use debugging information to find a filename and\n"
-#| " line number for each symbol\n"
-#| " -n, --numeric-sort Sort symbols numerically by address\n"
-#| " -o Same as -A\n"
-#| " -p, --no-sort Do not sort the symbols\n"
-#| " -P, --portability Same as --format=posix\n"
-#| " -r, --reverse-sort Reverse the sense of the sort\n"
+#: nm.c:295
+#, c-format
+msgid " -a, --debug-syms Display debugger-only symbols\n"
+msgstr "-a, --debug-syms Mostra els símbols de només el depurador\n"
+
+#: nm.c:297
+#, c-format
+msgid " -A, --print-file-name Print name of the input file before every symbol\n"
+msgstr "-A, --print-file-name Imprimeix el nom del fitxer d'entrada abans de cada símbol\n"
+
+#: nm.c:299
+#, c-format
+msgid " -B Same as --format=bsd\n"
+msgstr " -B Igual que --format=bsd\n"
+
+#: nm.c:301
+#, c-format
+msgid " -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
+msgstr "-C, --demangle[=STYLE] Descodifica els noms dels símbols descodificats/processats\n"
+
+#: nm.c:303 readelf.c:6202
+msgid " STYLE can be "
+msgstr " STYLE pot ser "
+
+#: nm.c:305
+#, c-format
+msgid " --no-demangle Do not demangle low-level symbol names\n"
+msgstr " --no-demangle No descodifiquis els noms dels símbols de nivell baix\n"
+
+#: nm.c:307
+#, c-format
+msgid " --recurse-limit Enable a demangling recursion limit. (default)\n"
+msgstr " --recurse-limit Activa un límit de recursivitat de descodificat. (predeterminat)\n"
+
+#: nm.c:309
+#, c-format
+msgid " --no-recurse-limit Disable a demangling recursion limit.\n"
+msgstr " --no-recurse-limit Desactiva un límit de recursivitat de descodificat.\n"
+
+#: nm.c:311
+#, c-format
+msgid " -D, --dynamic Display dynamic symbols instead of normal symbols\n"
+msgstr " -D, --dynamic Mostra els símbols dinàmics en lloc dels símbols normals\n"
+
+#: nm.c:313
+#, c-format
+msgid " -e (ignored)\n"
+msgstr " -e (ignorat)\n"
+
+#: nm.c:315
+#, c-format
msgid ""
-" The options are:\n"
-" -a, --debug-syms Display debugger-only symbols\n"
-" -A, --print-file-name Print name of the input file before every symbol\n"
-" -B Same as --format=bsd\n"
-" -C, --demangle[=STYLE] Decode low-level symbol names into user-level names\n"
-" The STYLE, if specified, can be `auto' (the default),\n"
-" `gnu', `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" or `gnat'\n"
-" --no-demangle Do not demangle low-level symbol names\n"
-" --recurse-limit Enable a demangling recursion limit. This is the default.\n"
-" --no-recurse-limit Disable a demangling recursion limit.\n"
-" -D, --dynamic Display dynamic symbols instead of normal symbols\n"
-" --defined-only Display only defined symbols\n"
-" -e (ignored)\n"
" -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n"
-" `sysv' or `posix'. The default is `bsd'\n"
-" -g, --extern-only Display only external symbols\n"
+" `sysv', `posix' or 'just-symbols'.\n"
+" The default is `bsd'\n"
+msgstr ""
+" -f, --format.FORMAT Usa el format de sortida FORMAT. El FORMAT pot ser «bsd»,\n"
+" «sysv», «posix» o «just-symbols».\n"
+" El valor per defecte és «bsd»\n"
+
+#: nm.c:319
+#, c-format
+msgid " -g, --extern-only Display only external symbols\n"
+msgstr " -g, --extern-only Mostra només els símbols externs\n"
+
+#: nm.c:321
+#, c-format
+msgid " --ifunc-chars=CHARS Characters to use when displaying ifunc symbols\n"
+msgstr " --ifunc-chars=CHARS Caràcters a utilitzar quan es mostrin els símbols ifunc\n"
+
+#: nm.c:323
+#, c-format
+msgid " -j, --just-symbols Same as --format=just-symbols\n"
+msgstr " -j, --just-symbols Igual que --formats=just-symbols\n"
+
+#: nm.c:325
+#, c-format
+msgid ""
" -l, --line-numbers Use debugging information to find a filename and\n"
" line number for each symbol\n"
-" -n, --numeric-sort Sort symbols numerically by address\n"
-" -o Same as -A\n"
-" -p, --no-sort Do not sort the symbols\n"
-" -P, --portability Same as --format=posix\n"
-" -r, --reverse-sort Reverse the sense of the sort\n"
msgstr ""
-" Les opcions són:\n"
-" -a, --debug-syms Mostra únicamant els símbols del depurador\n"
-" -A, --print-file-name Imprimeix el nom del fitxer d'entrada abans\n"
-" de cada símbol\n"
-" -B El mateix que --format=bsd\n"
-" -C, --demangle[=ESTIL] Decodifica els noms dels símbols de nivell\n"
-" baix a nivell d'usuari\n"
-" L'ESTIL, si s'especifica, pot ser `auto' \n"
-" (predeterminat), `gnu', `lucid', `arm',\n"
-" `hp', `edg', `gnu-v3', `java' o `gnat'\n"
-" --no-demangle No decodifiquis els noms de símbols de nivell baix\n"
-" -D, --dynamic Mostra els símbols dinàmics en comptes dels \n"
-" símbols normals\n"
-" --defined-only Mostra únicament els símbols definits\n"
-" -e (ignorat)\n"
-" -f, --format=FORMAT Usa el format d'uaout FORMAT, FORMAT pot ser `bsd',\n"
-" `sysv' o `posix'. Per defecte és `bsd'\n"
-" -g, --extern-only Mostra sols els símbols externs\n"
-" -l, --line-numbers Usa informació de depuració per trobar un fitxer \n"
-" i el número de línia per a cada símbol\n"
-" -n, --numeric-sort Ordena els símbols numèricament per adreça\n"
-" -o El mateix que -A\n"
-" -p, --no-sort No ordenis els símbols\n"
-" -P, --portability El mateix que --format=posix\n"
-" -r, --reverse-sort Reverteix el sentit de l'ordenació\n"
-
-#: nm.c:275
+" -l, --line-numbers Usa la informació de depuració per a trobar un nom de fitxer i\n"
+" nombre de línia per a cada símbol\n"
+
+#: nm.c:328
+#, c-format
+msgid " -n, --numeric-sort Sort symbols numerically by address\n"
+msgstr " -n, --numeric-sort Ordena els símbols numèricament per adreça\n"
+
+#: nm.c:330
+#, c-format
+msgid " -o Same as -A\n"
+msgstr " -o El mateix que -A\n"
+
+#: nm.c:332
+#, c-format
+msgid " -p, --no-sort Do not sort the symbols\n"
+msgstr " -p, --no-sort No ordenis els símbols\n"
+
+#: nm.c:334
+#, c-format
+msgid " -P, --portability Same as --format=posix\n"
+msgstr " -P, --portability Igual que --format asposix\n"
+
+#: nm.c:336
+#, c-format
+msgid " -r, --reverse-sort Reverse the sense of the sort\n"
+msgstr " -r, --reverse-sort Inverteix el sentit de l'ordenació\n"
+
+#: nm.c:339
#, c-format
msgid " --plugin NAME Load the specified plugin\n"
msgstr " --plugin NOM Carrega el connector especificat\n"
-#: nm.c:278
-#, fuzzy, c-format
-#| msgid ""
-#| " -S, --print-size Print size of defined symbols\n"
-#| " -s, --print-armap Include index for symbols from archive members\n"
-#| " --size-sort Sort symbols by size\n"
-#| " --special-syms Include special symbols in the output\n"
-#| " --synthetic Display synthetic symbols as well\n"
-#| " -t, --radix=RADIX Use RADIX for printing symbol values\n"
-#| " --target=BFDNAME Specify the target object format as BFDNAME\n"
-#| " -u, --undefined-only Display only undefined symbols\n"
-#| " -X 32_64 (ignored)\n"
-#| " @FILE Read options from FILE\n"
-#| " -h, --help Display this information\n"
-#| " -V, --version Display this program's version number\n"
-#| "\n"
-msgid ""
-" -S, --print-size Print size of defined symbols\n"
-" -s, --print-armap Include index for symbols from archive members\n"
-" --size-sort Sort symbols by size\n"
-" --special-syms Include special symbols in the output\n"
-" --synthetic Display synthetic symbols as well\n"
-" -t, --radix=RADIX Use RADIX for printing symbol values\n"
-" --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -u, --undefined-only Display only undefined symbols\n"
-" --with-symbol-versions Display version strings after symbol names\n"
-" -X 32_64 (ignored)\n"
-" @FILE Read options from FILE\n"
-" -h, --help Display this information\n"
-" -V, --version Display this program's version number\n"
-"\n"
-msgstr ""
-" -S, --print-size Imprimeix la mida dels símbols definits\n"
-" -s, --print-armap Inclou un índex per als símbols dels membres de l'arxiu\n"
-" --size-sort Ordena els símbos per mida\n"
-" --special-syms Inclou símbols especials a la sortida\n"
-" --synthetic Mostra també els símbos sintètics\n"
-" -t, --radix=RADIX Usa RADIX per imprimir els valors dels símbols\n"
-" --target=BFDNAME Especifica el format de l'objecte de destí com BDFNAME\n"
-" -u, --undefined-only Mostra sols els símbols no definits\n"
-" -X 32_64 (ignorat)\n"
-" @FITXER Llegeix les opcions des de FITXER\n"
-" -h, --help Mostra aquesta informació\n"
-" -V, --version Mostra el número de versió d'aquest programa\n"
-"\n"
-
-#: nm.c:327
+#: nm.c:342
+#, c-format
+msgid " -S, --print-size Print size of defined symbols\n"
+msgstr " -S, --print-size Mida d'impressió dels símbols definits\n"
+
+#: nm.c:344
+#, c-format
+msgid " -s, --print-armap Include index for symbols from archive members\n"
+msgstr " -s, --print-armap Inclou l'índex per als símbols dels membres de l'arxiu\n"
+
+#: nm.c:346
+#, c-format
+msgid " --quiet Suppress \"no symbols\" diagnostic\n"
+msgstr " --quiet Suprimeix el diagnòstic «sense símbols»\n"
+
+#: nm.c:348
+#, c-format
+msgid " --size-sort Sort symbols by size\n"
+msgstr " --size-sort Ordena els símbols per mida\n"
+
+#: nm.c:350
+#, c-format
+msgid " --special-syms Include special symbols in the output\n"
+msgstr " --special-syms Inclou símbols especials a la sortida\n"
+
+#: nm.c:352
+#, c-format
+msgid " --synthetic Display synthetic symbols as well\n"
+msgstr " --synthetic Mostra també els símbols sintètics\n"
+
+#: nm.c:354
+#, c-format
+msgid " -t, --radix=RADIX Use RADIX for printing symbol values\n"
+msgstr " -t, --radix=RADIX Usa RADIX per imprimir els valors dels símbols\n"
+
+#: nm.c:356
+#, c-format
+msgid " --target=BFDNAME Specify the target object format as BFDNAME\n"
+msgstr " --target=BFDNAME Especifica el format de l'object destí com a BFDNAME\n"
+
+#: nm.c:358
+#, c-format
+msgid " -u, --undefined-only Display only undefined symbols\n"
+msgstr " -u, --undefined-only Mostra només els símbols no definits\n"
+
+#: nm.c:360
+#, c-format
+msgid " -U, --defined-only Display only defined symbols\n"
+msgstr " -U, --defined-only Mostra només els símbols definits\n"
+
+#: nm.c:362
+#, c-format
+msgid ""
+" --unicode={default|show|invalid|hex|escape|highlight}\n"
+" Specify how to treat UTF-8 encoded unicode characters\n"
+msgstr ""
+" --unicode}{default}show}invalid|hex|escape}highlight}\n"
+" Especifiqueu com tractar els caràcters unicode codificats en UTF-8\n"
+
+#: nm.c:365
+#, c-format
+msgid " -W, --no-weak Ignore weak symbols\n"
+msgstr " -W, --no-weak Ignora els símbols febles\n"
+
+#: nm.c:367
+#, c-format
+msgid " --without-symbol-versions Do not display version strings after symbol names\n"
+msgstr " --without-symbol-versions No mostris les cadenes de versió després dels noms dels símbols\n"
+
+#: nm.c:369
+#, c-format
+msgid " -X 32_64 (ignored)\n"
+msgstr " -X 32-64 (ignorat)\n"
+
+#: nm.c:371
+#, c-format
+msgid " @FILE Read options from FILE\n"
+msgstr " @FITXER Llegeix les opcions de FITXER\n"
+
+#: nm.c:373
+#, c-format
+msgid " -h, --help Display this information\n"
+msgstr " -h, --help Mostra aquesta informació\n"
+
+#: nm.c:375
+#, c-format
+msgid " -V, --version Display this program's version number\n"
+msgstr " -V --version Mostra el nombre de versió del programa.\n"
+
+#: nm.c:396
#, c-format
msgid "%s: invalid radix"
msgstr "%s radix no vàlid"
-#: nm.c:351
+#: nm.c:426
#, c-format
msgid "%s: invalid output format"
msgstr "%s: format de sortida no vàlid"
-#: nm.c:375 readelf.c:10957 readelf.c:11002
+#: nm.c:450 readelf.c:13743 readelf.c:13786
#, c-format
msgid "<processor specific>: %d"
msgstr "<específic per al processador>: %d"
-#: nm.c:377 readelf.c:10966 readelf.c:11021
+#: nm.c:452 readelf.c:13750 readelf.c:13803
#, c-format
msgid "<OS specific>: %d"
msgstr "<específic per al SO>: %d"
-#: nm.c:379 readelf.c:10969 readelf.c:11024
+#: nm.c:454 readelf.c:13753 readelf.c:13806
#, c-format
msgid "<unknown>: %d"
msgstr "<desconegut>: %d"
-#: nm.c:409
-#, fuzzy, c-format
-#| msgid "<unknown>: %d"
+#: nm.c:481
+#, c-format
msgid "<unknown>: %d/%d"
-msgstr "<desconegut>: %d"
+msgstr "<desconegut>: %d/%d"
-#: nm.c:450
+#: nm.c:749
#, c-format
msgid ""
"\n"
@@ -4734,12 +5196,12 @@ msgstr ""
"\n"
"Ãndex de l'arxiu:\n"
-#: nm.c:497
+#: nm.c:803 nm.c:1476
#, c-format
msgid "%s: plugin needed to handle lto object"
-msgstr ""
+msgstr "%s: cal un connector per a gestionar l'objecte lto"
-#: nm.c:1376
+#: nm.c:1685
#, c-format
msgid ""
"\n"
@@ -4752,7 +5214,7 @@ msgstr ""
"Símbols no definits de %s:\n"
"\n"
-#: nm.c:1378
+#: nm.c:1687
#, c-format
msgid ""
"\n"
@@ -4765,7 +5227,7 @@ msgstr ""
"Símbols de %s:\n"
"\n"
-#: nm.c:1380 nm.c:1431
+#: nm.c:1689 nm.c:1750
#, c-format
msgid ""
"Name Value Class Type Size Line Section\n"
@@ -4774,7 +5236,7 @@ msgstr ""
"Nom Valor Classe Tipus Mida Línia Secció\n"
"\n"
-#: nm.c:1383 nm.c:1434
+#: nm.c:1692 nm.c:1753
#, c-format
msgid ""
"Name Value Class Type Size Line Section\n"
@@ -4783,7 +5245,7 @@ msgstr ""
"Nom Valor Classe Tipus Mida Línia Secció\n"
"\n"
-#: nm.c:1427
+#: nm.c:1746
#, c-format
msgid ""
"\n"
@@ -4796,7 +5258,7 @@ msgstr ""
"Símbols no definits de %s[%s]:\n"
"\n"
-#: nm.c:1429
+#: nm.c:1748
#, c-format
msgid ""
"\n"
@@ -4809,34 +5271,39 @@ msgstr ""
"Símbols de %s[%s]:\n"
"\n"
-#: nm.c:1521
+#: nm.c:1832
#, c-format
msgid "Print width has not been initialized (%d)"
msgstr "No s'ha inicialitzat l'ample de la impressió (%d)"
-#: nm.c:1770
+#: nm.c:2097 objdump.c:6330 readelf.c:6669 strings.c:314
+#, c-format
+msgid "invalid argument to -U/--unicode: %s"
+msgstr "argument no vàlid per a -U/--unicode: %s"
+
+#: nm.c:2115
msgid "Only -X 32_64 is supported"
msgstr "Sols està suportat -X 32_64"
-#: nm.c:1798
+#: nm.c:2147
msgid "Using the --size-sort and --undefined-only options together"
msgstr "S'estan usant conjuntament les opcions --size-sort i --undefined-only"
-#: nm.c:1799
+#: nm.c:2148
msgid "will produce no output, since undefined symbols have no size."
msgstr "no es produirà cap sortida, ja que els símbols no definits no tenen mida."
-#: objcopy.c:537 srconv.c:1695
+#: objcopy.c:571 srconv.c:1694
#, c-format
msgid "Usage: %s [option(s)] in-file [out-file]\n"
msgstr "Forma d'ús: %s [opció(ns)] fitxer-entrada [fitxer-sortida]\n"
-#: objcopy.c:538
+#: objcopy.c:572
#, c-format
msgid " Copies a binary file, possibly transforming it in the process\n"
msgstr "Còpia un fitxer binari, possiblement transformant-lo en el procés\n"
-#: objcopy.c:540
+#: objcopy.c:574
#, c-format
msgid ""
" -I --input-target <bfdname> Assume input file is in format <bfdname>\n"
@@ -4853,7 +5320,7 @@ msgstr ""
" --debugging Converteix la informació de depuració, si és possible\n"
" -p --preserve-dates Copia les marques horàries de modificat/accés a l'output\n"
-#: objcopy.c:548 objcopy.c:683
+#: objcopy.c:582 objcopy.c:723
#, c-format
msgid ""
" -D --enable-deterministic-archives\n"
@@ -4866,7 +5333,7 @@ msgstr ""
" -U --disable-deterministic-archives\n"
" Desactiva el comportament -D\n"
-#: objcopy.c:554 objcopy.c:689
+#: objcopy.c:588 objcopy.c:729
#, c-format
msgid ""
" -D --enable-deterministic-archives\n"
@@ -4879,107 +5346,14 @@ msgstr ""
" -U --disable-deterministic-archives\n"
" Desactiva el comportament -D\n"
-#: objcopy.c:559
-#, fuzzy, c-format
-#| msgid ""
-#| " -j --only-section <name> Only copy section <name> into the output\n"
-#| " --add-gnu-debuglink=<file> Add section .gnu_debuglink linking to <file>\n"
-#| " -R --remove-section <name> Remove section <name> from the output\n"
-#| " -S --strip-all Remove all symbol and relocation information\n"
-#| " -g --strip-debug Remove all debugging symbols & sections\n"
-#| " --strip-dwo Remove all DWO sections\n"
-#| " --strip-unneeded Remove all symbols not needed by relocations\n"
-#| " -N --strip-symbol <name> Do not copy symbol <name>\n"
-#| " --strip-unneeded-symbol <name>\n"
-#| " Do not copy symbol <name> unless needed by\n"
-#| " relocations\n"
-#| " --only-keep-debug Strip everything but the debug information\n"
-#| " --extract-dwo Copy only DWO sections\n"
-#| " --extract-symbol Remove section contents but keep symbols\n"
-#| " -K --keep-symbol <name> Do not strip symbol <name>\n"
-#| " --keep-file-symbols Do not strip file symbol(s)\n"
-#| " --localize-hidden Turn all ELF hidden symbols into locals\n"
-#| " -L --localize-symbol <name> Force symbol <name> to be marked as a local\n"
-#| " --globalize-symbol <name> Force symbol <name> to be marked as a global\n"
-#| " -G --keep-global-symbol <name> Localize all symbols except <name>\n"
-#| " -W --weaken-symbol <name> Force symbol <name> to be marked as a weak\n"
-#| " --weaken Force all global symbols to be marked as weak\n"
-#| " -w --wildcard Permit wildcard in symbol comparison\n"
-#| " -x --discard-all Remove all non-global symbols\n"
-#| " -X --discard-locals Remove any compiler-generated symbols\n"
-#| " -i --interleave [<number>] Only copy N out of every <number> bytes\n"
-#| " --interleave-width <number> Set N for --interleave\n"
-#| " -b --byte <num> Select byte <num> in every interleaved block\n"
-#| " --gap-fill <val> Fill gaps between sections with <val>\n"
-#| " --pad-to <addr> Pad the last section up to address <addr>\n"
-#| " --set-start <addr> Set the start address to <addr>\n"
-#| " {--change-start|--adjust-start} <incr>\n"
-#| " Add <incr> to the start address\n"
-#| " {--change-addresses|--adjust-vma} <incr>\n"
-#| " Add <incr> to LMA, VMA and start addresses\n"
-#| " {--change-section-address|--adjust-section-vma} <name>{=|+|-}<val>\n"
-#| " Change LMA and VMA of section <name> by <val>\n"
-#| " --change-section-lma <name>{=|+|-}<val>\n"
-#| " Change the LMA of section <name> by <val>\n"
-#| " --change-section-vma <name>{=|+|-}<val>\n"
-#| " Change the VMA of section <name> by <val>\n"
-#| " {--[no-]change-warnings|--[no-]adjust-warnings}\n"
-#| " Warn if a named section does not exist\n"
-#| " --set-section-flags <name>=<flags>\n"
-#| " Set section <name>'s properties to <flags>\n"
-#| " --add-section <name>=<file> Add section <name> found in <file> to output\n"
-#| " --dump-section <name>=<file> Dump the contents of section <name> into <file>\n"
-#| " --rename-section <old>=<new>[,<flags>] Rename section <old> to <new>\n"
-#| " --long-section-names {enable|disable|keep}\n"
-#| " Handle long section names in Coff objects.\n"
-#| " --change-leading-char Force output format's leading character style\n"
-#| " --remove-leading-char Remove leading character from global symbols\n"
-#| " --reverse-bytes=<num> Reverse <num> bytes at a time, in output sections with content\n"
-#| " --redefine-sym <old>=<new> Redefine symbol name <old> to <new>\n"
-#| " --redefine-syms <file> --redefine-sym for all symbol pairs \n"
-#| " listed in <file>\n"
-#| " --srec-len <number> Restrict the length of generated Srecords\n"
-#| " --srec-forceS3 Restrict the type of generated Srecords to S3\n"
-#| " --strip-symbols <file> -N for all symbols listed in <file>\n"
-#| " --strip-unneeded-symbols <file>\n"
-#| " --strip-unneeded-symbol for all symbols listed\n"
-#| " in <file>\n"
-#| " --keep-symbols <file> -K for all symbols listed in <file>\n"
-#| " --localize-symbols <file> -L for all symbols listed in <file>\n"
-#| " --globalize-symbols <file> --globalize-symbol for all in <file>\n"
-#| " --keep-global-symbols <file> -G for all symbols listed in <file>\n"
-#| " --weaken-symbols <file> -W for all symbols listed in <file>\n"
-#| " --alt-machine-code <index> Use the target's <index>'th alternative machine\n"
-#| " --writable-text Mark the output text as writable\n"
-#| " --readonly-text Make the output text write protected\n"
-#| " --pure Mark the output file as demand paged\n"
-#| " --impure Mark the output file as impure\n"
-#| " --prefix-symbols <prefix> Add <prefix> to start of every symbol name\n"
-#| " --prefix-sections <prefix> Add <prefix> to start of every section name\n"
-#| " --prefix-alloc-sections <prefix>\n"
-#| " Add <prefix> to start of every allocatable\n"
-#| " section name\n"
-#| " --file-alignment <num> Set PE file alignment to <num>\n"
-#| " --heap <reserve>[,<commit>] Set PE reserve/commit heap to <reserve>/\n"
-#| " <commit>\n"
-#| " --image-base <address> Set PE image base to <address>\n"
-#| " --section-alignment <num> Set PE section alignment to <num>\n"
-#| " --stack <reserve>[,<commit>] Set PE reserve/commit stack to <reserve>/\n"
-#| " <commit>\n"
-#| " --subsystem <name>[:<version>]\n"
-#| " Set PE subsystem to <name> [& <version>]\n"
-#| " --compress-debug-sections Compress DWARF debug sections using zlib\n"
-#| " --decompress-debug-sections Decompress DWARF debug sections using zlib\n"
-#| " -v --verbose List all object files modified\n"
-#| " @<file> Read options from <file>\n"
-#| " -V --version Display this program's version number\n"
-#| " -h --help Display this output\n"
-#| " --info List object formats & architectures supported\n"
+#: objcopy.c:593
+#, c-format
msgid ""
" -j --only-section <name> Only copy section <name> into the output\n"
" --add-gnu-debuglink=<file> Add section .gnu_debuglink linking to <file>\n"
" -R --remove-section <name> Remove section <name> from the output\n"
" --remove-relocations <name> Remove relocations from section <name>\n"
+" --strip-section-headers Strip section header from the output\n"
" -S --strip-all Remove all symbol and relocation information\n"
" -g --strip-debug Remove all debugging symbols & sections\n"
" --strip-dwo Remove all DWO sections\n"
@@ -4991,7 +5365,9 @@ msgid ""
" --only-keep-debug Strip everything but the debug information\n"
" --extract-dwo Copy only DWO sections\n"
" --extract-symbol Remove section contents but keep symbols\n"
+" --keep-section <name> Do not strip section <name>\n"
" -K --keep-symbol <name> Do not strip symbol <name>\n"
+" --keep-section-symbols Do not strip section symbols\n"
" --keep-file-symbols Do not strip file symbol(s)\n"
" --localize-hidden Turn all ELF hidden symbols into locals\n"
" -L --localize-symbol <name> Force symbol <name> to be marked as a local\n"
@@ -5022,6 +5398,8 @@ msgid ""
" Warn if a named section does not exist\n"
" --set-section-flags <name>=<flags>\n"
" Set section <name>'s properties to <flags>\n"
+" --set-section-alignment <name>=<align>\n"
+" Set section <name>'s alignment to <align> bytes\n"
" --add-section <name>=<file> Add section <name> found in <file> to output\n"
" --update-section <name>=<file>\n"
" Update contents of section <name> with\n"
@@ -5067,11 +5445,12 @@ msgid ""
" <commit>\n"
" --subsystem <name>[:<version>]\n"
" Set PE subsystem to <name> [& <version>]\n"
-" --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi}]\n"
-" Compress DWARF debug sections using zlib\n"
+" --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi|zstd}]\n"
+"\t\t\t\t Compress DWARF debug sections\n"
" --decompress-debug-sections Decompress DWARF debug sections using zlib\n"
" --elf-stt-common=[yes|no] Generate ELF common symbols with STT_COMMON\n"
" type\n"
+" --verilog-data-width <number> Specifies data width, in bytes, for verilog output\n"
" -M --merge-notes Remove redundant entries in note sections\n"
" --no-merge-notes Do not attempt to remove redundant notes (default)\n"
" -v --verbose List all object files modified\n"
@@ -5083,6 +5462,8 @@ msgstr ""
" -j --only-section <nom> Copia sols <nom> a la sortida\n"
" --add-gnu-debuglink=<fitxer> Afegeix la secció .gnu_debuglink a <fitxer>\n"
" -R --remove-section <nom> Elimina la secció <nom> de la sortida\n"
+" --remove-relocations <name> Elimina les relocalitzacions de la secció <nom>\n"
+" --strip-section-headers Treu la capçalera de secció de la sortida\n"
" -S --strip-all Elimina tota la informació sobre símbols\n"
" i relocalització\n"
" -g --strip-debug Elimina totes les seccions i símbols de\n"
@@ -5100,6 +5481,7 @@ msgstr ""
" --extract-symbol Elimina els continguts de la secció però\n"
" manté els símbols\n"
" -K --keep-symbol <nom> No eliminis el símbol <nom>\n"
+" --keep-section-symbols No treguis els símbols de secció\n"
" --keep-file-symbols No eliminis el(s) símbols(s) de fitxers\n"
" --localize-hidden Converteix tots els símbols ELF amagats a\n"
" locals\n"
@@ -5115,7 +5497,7 @@ msgstr ""
" -x --discard-all Elimina tots els símbols no globals\n"
" -X --discard-locals Remou qualsevol símbols generat pel\n"
" compilador \n"
-" -i --interleave [<número>] Copia únicament N de cada <número> bytes\n"
+" -i --interleave [<nombre>] Copia únicament N de cada <nombre> bytes\n"
" --interleave-width <number> Estableix N per a --interleave\n"
" -b --byte <num> Selecciona el byte <num> en cada bloc\n"
" intercalat\n"
@@ -5140,8 +5522,17 @@ msgstr ""
" --set-section-flags <nom>=<senyaladors>\n"
" Estableix les propietats de la secció <nom>\n"
" a <indicadors>\n"
+" --set-section-alignment <nom>=<alineació>\n"
+" Estableix l'alineació de la secció <nom> a\n"
+" <alineació> bytes\n"
" --add-section <nom>=<fitxer> Afegeix la secció <nom> trobada a <fitxer>\n"
" a la sortida\n"
+" --update-section <nom>=<fitxer>\n"
+" Actualitza els continguts de la secció <nom>\n"
+" amb els continguts trobats a <fitxer>\n"
+" --dump-section <nom>=<fitxer> \n"
+" Bolca els continguts de la secció <nom> a \n"
+" <fitxer>\n"
" --rename-section <vella>=<nova>[,<indicadors>] Rebateja la secció <vella>\n"
" a <nova>\n"
" --long-section-names {enable|disable|keep}\n"
@@ -5156,7 +5547,7 @@ msgstr ""
" --redefine-sym <vell>=<nou> Redefineix el nom del símbol <vell> a <nou>\n"
" --redefine-syms <fitxer> --redefineix-símbols per a totes les\n"
" parelles de símbols llistades a <fitxer>\n"
-" --srec-len <número> Restringeix la longitud dels Srecords \n"
+" --srec-len <nombre> Restringeix la longitud dels Srecords \n"
" generats\n"
" --srec-forceS3 Restringeix el tipus de Srecords generats\n"
" a S3\n"
@@ -5171,6 +5562,8 @@ msgstr ""
" --keep-global-symbols <fitxer> -G per a totes els símbols llistats a \n"
" <fitxer>\n"
" --weaken-symbols <fitxer> -W per a tots els símbols a <fitxer>\n"
+" --add-symbol <name>=[<secció>:]<valor>[,<senyalador>] \n"
+" Afegeix un símbol\n"
" --alt-machine-code <índex> Usa la màquina alternativa amb índex\n"
" <index>-èssim del destí\n"
" --writable-text Marca el text de la sortida com escrivible\n"
@@ -5197,25 +5590,31 @@ msgstr ""
" --compress-debug-sections Comprimeix les seccions de depuració DWARF \n"
" usant zlib\n"
" --decompress-debug-sections Descomprimeix les seccions de depuració DWARF \n"
+" --elf-stt-common=[yes|no] Genera símbols ELF comuns amb tipus STT_COMMON\n"
+" --verilog-data-width <nombre> Especifica l'amplitud de les dades, en bytes,\n"
+" per a l'output verilog\n"
+" -M --merge-notes Elimina entradades redundants a seccions de \n"
+" notes\n"
+" --no-merge-notes No intentis elminar notes redundants (predeterminat)\n"
" usant zlib\n"
-" -v --verbose Llista totes els fitxers objecte modificats\n"
-" @<fitxer> Llegeix les opcions de <fitxer>\n"
-" -V --version Mostra el número de versió d'aquest programa\n"
-" -h --help Mostra aquesta sortida\n"
-" --info Llista els formats i arquitectures d'objecte \n"
-" suportats \n"
+" -v --verbose Llista totes els fitxers objecte modificats\n"
+" @<fitxer> Llegeix les opcions de <fitxer>\n"
+" -V --version Mostra el nombre de versió d'aquest programa\n"
+" -h --help Mostra aquesta sortida\n"
+" --info Llista els formats i arquitectures d'objecte \n"
+" suportats \n"
-#: objcopy.c:673
+#: objcopy.c:713
#, c-format
msgid "Usage: %s <option(s)> in-file(s)\n"
msgstr "Forma d'ús: %s <opció(ns)> fitxer(s)-entrada\n"
-#: objcopy.c:674
+#: objcopy.c:714
#, c-format
msgid " Removes symbols and sections from files\n"
msgstr " Elimina els símbols i les seccions dels fitxers\n"
-#: objcopy.c:676
+#: objcopy.c:716
#, c-format
msgid ""
" -I --input-target=<bfdname> Assume input file is in format <bfdname>\n"
@@ -5228,29 +5627,12 @@ msgstr ""
" -F --target=<bfdname> Estableix el format tant d'entrada com de sortida a <bfdname>\n"
" -p --preserve-dates Copia les marques horàries de modificació/accés a <bfdname>\n"
-#: objcopy.c:694
-#, fuzzy, c-format
-#| msgid ""
-#| " -R --remove-section=<name> Remove section <name> from the output\n"
-#| " -s --strip-all Remove all symbol and relocation information\n"
-#| " -g -S -d --strip-debug Remove all debugging symbols & sections\n"
-#| " --strip-dwo Remove all DWO sections\n"
-#| " --strip-unneeded Remove all symbols not needed by relocations\n"
-#| " --only-keep-debug Strip everything but the debug information\n"
-#| " -N --strip-symbol=<name> Do not copy symbol <name>\n"
-#| " -K --keep-symbol=<name> Do not strip symbol <name>\n"
-#| " --keep-file-symbols Do not strip file symbol(s)\n"
-#| " -w --wildcard Permit wildcard in symbol comparison\n"
-#| " -x --discard-all Remove all non-global symbols\n"
-#| " -X --discard-locals Remove any compiler-generated symbols\n"
-#| " -v --verbose List all object files modified\n"
-#| " -V --version Display this program's version number\n"
-#| " -h --help Display this output\n"
-#| " --info List object formats & architectures supported\n"
-#| " -o <file> Place stripped output into <file>\n"
+#: objcopy.c:734
+#, c-format
msgid ""
" -R --remove-section=<name> Also remove section <name> from the output\n"
" --remove-relocations <name> Remove relocations from section <name>\n"
+" --strip-section-headers Strip section headers from the output\n"
" -s --strip-all Remove all symbol and relocation information\n"
" -g -S -d --strip-debug Remove all debugging symbols & sections\n"
" --strip-dwo Remove all DWO sections\n"
@@ -5259,7 +5641,9 @@ msgid ""
" -M --merge-notes Remove redundant entries in note sections (default)\n"
" --no-merge-notes Do not attempt to remove redundant notes\n"
" -N --strip-symbol=<name> Do not copy symbol <name>\n"
+" --keep-section=<name> Do not strip section <name>\n"
" -K --keep-symbol=<name> Do not strip symbol <name>\n"
+" --keep-section-symbols Do not strip section symbols\n"
" --keep-file-symbols Do not strip file symbol(s)\n"
" -w --wildcard Permit wildcard in symbol comparison\n"
" -x --discard-all Remove all non-global symbols\n"
@@ -5280,6 +5664,8 @@ msgstr ""
" per a relocalitzacions\n"
" --only-keep-debug Elimina tot excepte la informació de\n"
" depuració\n"
+" -M --merge-notes Elimina entrades redudants a les seccions de notes (predeterminat)\n"
+" --no-merge-notes No intentis eliminar notes redundants\n"
" -N --strip-symbol=<nom> No copiïs el símbol <nom>\n"
" -K --keep-symbol=<nom> No eliminis el símbol <nom>\n"
" --keep-file-symbols No eliminis el(s) símbol(s) del fitxer\n"
@@ -5289,646 +5675,835 @@ msgstr ""
" -X --discard-locals Elimina tots els símbols generats pel\n"
" compilador\n"
" -v --verbose Llista tots els fitxers objecte modificats\n"
-" -V --version Mostra el número de versió d'aquest programa\n"
+" -V --version Mostra el nombre de versió d'aquest programa\n"
" -h --help Mostra aquesta sortida\n"
" --info Llista els formats i arquitectures suportats\n"
" -o <fitxer> Posa la sortida netejada a <fitxer>\n"
-#: objcopy.c:769
+#: objcopy.c:814
#, c-format
msgid "unrecognized section flag `%s'"
msgstr "senyalador `%s' de secció no reconegut"
-#: objcopy.c:770 objcopy.c:842
+#: objcopy.c:815 objcopy.c:889
#, c-format
msgid "supported flags: %s"
msgstr "senyaladors suportats: %s"
-#: objcopy.c:841
-#, fuzzy, c-format
-#| msgid "unrecognized section flag `%s'"
+#: objcopy.c:888
+#, c-format
msgid "unrecognized symbol flag `%s'"
msgstr "senyalador `%s' de secció no reconegut"
-#: objcopy.c:900
+#: objcopy.c:947
#, c-format
msgid "error: %s both copied and removed"
msgstr "error: %s tan copiat com esborrat"
-#: objcopy.c:906
+#: objcopy.c:953
#, c-format
msgid "error: %s both sets and alters VMA"
msgstr "error: %s tant estableix com altera el VMA"
-#: objcopy.c:912
+#: objcopy.c:959
#, c-format
msgid "error: %s both sets and alters LMA"
msgstr "error: %s tant estableix com altera el VMA<"
-#: objcopy.c:1063
+#: objcopy.c:1122
#, c-format
msgid "cannot open '%s': %s"
-msgstr "no es pot obrir '%s': %s"
+msgstr "no es pot obrir «%s»: %s"
-#: objcopy.c:1066 objcopy.c:4742
+#: objcopy.c:1125 objcopy.c:5282
#, c-format
msgid "%s: fread failed"
msgstr "%s: lectura-f ha fallat"
-#: objcopy.c:1139
+#: objcopy.c:1198
#, c-format
msgid "%s:%d: Ignoring rubbish found on this line"
msgstr "%s:%d: S'ignorarà la brossa trobada en aquesta línia"
-#: objcopy.c:1304
+#: objcopy.c:1342
#, c-format
msgid "error: section %s matches both remove and copy options"
msgstr "error: les concordances de la secció %s tant eliminen com copies opcions"
-#: objcopy.c:1307
-#, fuzzy, c-format
-#| msgid "error: section %s matches both remove and copy options"
+#: objcopy.c:1345
+#, c-format
msgid "error: section %s matches both update and remove options"
-msgstr "error: les concordances de la secció %s tant eliminen com copies opcions"
+msgstr "error: la secció %s concorda tant amb les opcions actualitza com elimina"
-#: objcopy.c:1460
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "Section '%s' has no data to dump.\n"
+#: objcopy.c:1520
+#, c-format
msgid "Section %s not found"
-msgstr ""
-"\n"
-"La secció %s no té dades per bolcar.\n"
+msgstr "No s'ha trobat la secció %s"
+
+#: objcopy.c:1569
+msgid "redefining symbols does not work on LTO-compiled object files"
+msgstr "la redefinició de símbols no funciona en fitxers object compilats amb LTO"
-#: objcopy.c:1608
+#: objcopy.c:1682
#, c-format
msgid "not stripping symbol `%s' because it is named in a relocation"
msgstr "no s'eliminarà el símbol `%s' perquè se'l menciona a una relocalització"
-#: objcopy.c:1668
-#, fuzzy, c-format
-#| msgid "C++ reference not found"
+#: objcopy.c:1745
+#, c-format
msgid "'before=%s' not found"
-msgstr "no s'ha trobat la referència C++"
+msgstr "no s'ha trobat «before=%s»"
-#: objcopy.c:1707
+#: objcopy.c:1785
#, c-format
msgid "%s: Multiple redefinition of symbol \"%s\""
msgstr "%s: Redefinició múltiple del símbol \"%s\""
-#: objcopy.c:1711
+#: objcopy.c:1789
#, c-format
msgid "%s: Symbol \"%s\" is target of more than one redefinition"
msgstr "%s: Símbol \"%s\" és el destí de més d'una redefinició"
-#: objcopy.c:1738
+#: objcopy.c:1816
#, c-format
msgid "couldn't open symbol redefinition file %s (error: %s)"
msgstr "no s'ha pogut obrir el fitxer de redefinició de símbols %s (error: %s)"
-#: objcopy.c:1816
+#: objcopy.c:1894
#, c-format
msgid "%s:%d: garbage found at end of line"
msgstr "%s:%d: s'ha trobat brossa al final de la línia"
-#: objcopy.c:1819
+#: objcopy.c:1897
#, c-format
msgid "%s:%d: missing new symbol name"
msgstr "%s:%d: nom del nou símbol absent"
-#: objcopy.c:1829
+#: objcopy.c:1907
#, c-format
msgid "%s:%d: premature end of file"
msgstr "%s:%d: acabament prematur del fitxer"
-#: objcopy.c:1856
+#: objcopy.c:1933
#, c-format
msgid "stat returns negative size for `%s'"
msgstr "stat retorna una mida negativa per a `%s'"
-#: objcopy.c:1868
+#: objcopy.c:1945
#, c-format
msgid "copy from `%s' [unknown] to `%s' [unknown]\n"
msgstr "copia de `%s' [desconegut] a `%s' [desconegut]\n"
-#: objcopy.c:2021
+#: objcopy.c:2193
+#, c-format
+msgid "%s[%s]: Cannot merge - there are relocations against this section"
+msgstr "%s[%s]: No es pot fusionar - hi ha relocalitzacions contra aquesta secció"
+
+#: objcopy.c:2215
+msgid "corrupt GNU build attribute note: description size not a factor of 4"
+msgstr "nota malmesa d'atribut de construcció de GNU: la mida de la descripció no és un factor de 4"
+
+#: objcopy.c:2222
msgid "corrupt GNU build attribute note: wrong note type"
-msgstr ""
+msgstr "nota d'atribut de construcció de GNU malmesa: tipus de nota incorrecte"
-#: objcopy.c:2027
+#: objcopy.c:2228
msgid "corrupt GNU build attribute note: note too big"
-msgstr ""
+msgstr "nota d'atribut de construcció de GNU malmesa: nota massa gran"
-#: objcopy.c:2033
+#: objcopy.c:2234
msgid "corrupt GNU build attribute note: name too small"
-msgstr ""
+msgstr "nota d'atribut de construcció de GNU malmesa: el nom és massa petit"
-#: objcopy.c:2060
+#: objcopy.c:2257
msgid "corrupt GNU build attribute note: unsupported version"
-msgstr ""
+msgstr "nota d'atribut de construcció de GNU malmesa: versió no admesa"
-#: objcopy.c:2109
+#: objcopy.c:2291
msgid "corrupt GNU build attribute note: bad description size"
-msgstr ""
+msgstr "nota d'atribut de construcció de GNU malmesa: mida de descripció incorrecta"
-#: objcopy.c:2140
+#: objcopy.c:2327
msgid "corrupt GNU build attribute note: name not NUL terminated"
-msgstr ""
+msgstr "nota d'atribut de construcció de GNU malmesa: el nom no ha finalitzat NUL"
-#: objcopy.c:2152
+#: objcopy.c:2339
msgid "corrupt GNU build attribute notes: excess data at end"
-msgstr ""
+msgstr "notes d'atribut de construcció de GNU malmeses: s'han excedit les dades al final"
-#: objcopy.c:2158
+#: objcopy.c:2346
msgid "bad GNU build attribute notes: no known versions detected"
-msgstr ""
+msgstr "notes d'atribut de construcció de GNU incorrectes: no s'ha detectat cap versió coneguda"
-#: objcopy.c:2166
+#. This happens with glibc. No idea why.
+#: objcopy.c:2350
+#, c-format
+msgid "%s[%s]: Warning: version note missing - assuming version 3"
+msgstr "%s[%s]: Avís: manca la nota de versió -assumint la versió 3"
+
+#: objcopy.c:2360
msgid "bad GNU build attribute notes: multiple different versions"
-msgstr ""
+msgstr "notes d'atribut de construcció de GNU incorrectes: múltiples versions diferents"
-#: objcopy.c:2180
-msgid "bad GNU build attribute notes: first note not version note"
-msgstr ""
+#: objcopy.c:2608
+#, c-format
+msgid "%s[%s]: Note - dropping 'share' flag as output format is not COFF"
+msgstr "%s[%s]: Nota - deixar anar l'indicador «share» com a format de sortida no és COFF"
+
+#: objcopy.c:2620
+#, c-format
+msgid "%s[%s]: 'large' flag is ELF x86-64 specific"
+msgstr "%s[%s]: l'indicador «large» és l'especificació ELF x86-64"
#. PR 17636: Call non-fatal so that we return to our parent who
#. may need to tidy temporary files.
-#: objcopy.c:2473
-msgid "Unable to change endianness of input file(s)"
-msgstr "No és possible canviar la codificació endian del(s) fitxer(s) d'entrada"
+#: objcopy.c:2666
+#, c-format
+msgid "unable to change endianness of '%s'"
+msgstr "No és possible canviar la codificació endian d'«%s»"
-#: objcopy.c:2485
-#, fuzzy, c-format
-#| msgid "error: the input file '%s' is empty"
+#: objcopy.c:2673
+#, c-format
+msgid "unable to modify '%s' due to errors"
+msgstr "no es pot modificar «%s» degut a errors"
+
+#: objcopy.c:2686
+#, c-format
msgid "error: the input file '%s' has no sections"
-msgstr "error: el fitxer d'entrada '%s' està buit"
+msgstr "error: el fitxer d'entrada «%s» no té seccions"
-#: objcopy.c:2495
+#: objcopy.c:2714
#, c-format
-msgid "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi] is unsupported on `%s'"
-msgstr ""
+msgid "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi|zstd] is unsupported on `%s'"
+msgstr "--compress-debug-sections[[zlibzzlib-gnu]zlib-gabi]zstd] no és compatible amb «%s»"
-#: objcopy.c:2502
+#: objcopy.c:2722
#, c-format
msgid "--elf-stt-common=[yes|no] is unsupported on `%s'"
-msgstr ""
+msgstr "--elf-stt-common[[yes]no] no és compatible amb «%s»"
+
+#: objcopy.c:2729
+#, c-format
+msgid "--strip-section-headers is unsupported on `%s'"
+msgstr "--strip-section-headers no és compatible amb «%s»"
-#: objcopy.c:2509
+#: objcopy.c:2736
#, c-format
msgid "copy from `%s' [%s] to `%s' [%s]\n"
msgstr "copia de `%s' [%s] a `%s' [%s]\n"
-#: objcopy.c:2558
+#: objcopy.c:2784
#, c-format
msgid "Input file `%s' ignores binary architecture parameter."
msgstr "El fitxer d'entrada `%s' ignora el paràmetre d'arquitectura binària."
-#: objcopy.c:2566
+#: objcopy.c:2800
#, c-format
msgid "Unable to recognise the format of the input file `%s'"
msgstr "No s'ha pogut reconèixer el format del fitxer d'entrada `%s'"
-#: objcopy.c:2569
+#: objcopy.c:2803
#, c-format
msgid "Output file cannot represent architecture `%s'"
msgstr "El fitxer de sortida no pot representar l'arquitectura `%s'"
-#: objcopy.c:2632
+#: objcopy.c:2869
#, c-format
-msgid "warning: file alignment (0x%s) > section alignment (0x%s)"
-msgstr "advertiment: alineació de fitxer (0x%s) > alineació de secció (0x%s)"
+msgid "warning: file alignment (0x%<PRIx64>) > section alignment (0x%<PRIx64>)"
+msgstr "advertiment: alineació de fitxer (0x%<PRIx64>) > alineació de secció (0x%<PRIx64>)"
-#: objcopy.c:2698
+#: objcopy.c:2943
#, c-format
msgid "can't add section '%s'"
-msgstr "no es pot afegir la secció '%s'"
+msgstr "no es pot afegir la secció «%s»"
-#: objcopy.c:2712
+#: objcopy.c:2957
#, c-format
msgid "can't create section `%s'"
msgstr "no es pot crear la secció `%s'"
-#: objcopy.c:2761
-#, fuzzy, c-format
-#| msgid "error: %s both copied and removed"
+#: objcopy.c:3005
+#, c-format
msgid "error: %s not found, can't be updated"
-msgstr "error: %s tan copiat com esborrat"
+msgstr "error: no s'ha trobat %s, no es pot actualitzar"
-#: objcopy.c:2786
-#, fuzzy
-#| msgid "can't dump section - it is empty"
-msgid "warning: note section is empty"
-msgstr "no es pot bolcar la seccció - està buida"
-
-#: objcopy.c:2791
-#, fuzzy
-#| msgid "Warning: could not locate '%s'. reason: %s"
+#: objcopy.c:3045
msgid "warning: could not load note section"
-msgstr "Advertiment: no s'ha pogut localitzar '%s'. raó: %s"
+msgstr "advertiment: no s'ha pogut carregar la secció de la nota"
-#: objcopy.c:2812
-#, fuzzy
-#| msgid "failed to set size"
+#: objcopy.c:3066
msgid "warning: failed to set merged notes size"
-msgstr "no s'ha pogut establir la mida"
+msgstr "advertiment: no s'ha pogut establir la mida de les notes fusionades"
-#: objcopy.c:2833
+#: objcopy.c:3092
#, c-format
msgid "can't dump section '%s' - it does not exist"
-msgstr "no s'ha pogut bolcar La secció '%s' - no existeix"
+msgstr "no s'ha pogut bolcar La secció «%s» - no existeix"
-#: objcopy.c:2841
+#: objcopy.c:3100
msgid "can't dump section - it has no contents"
msgstr "no es pot bolcar la secció - no té continguts"
-#: objcopy.c:2849
-msgid "can't dump section - it is empty"
-msgstr "no es pot bolcar la seccció - està buida"
-
-#: objcopy.c:2858
+#: objcopy.c:3112
msgid "could not open section dump file"
msgstr "no s'ha pogut obrir el fitxer de bolcat de secció"
-#: objcopy.c:2867
+#: objcopy.c:3120
#, c-format
msgid "error writing section contents to %s (error: %s)"
-msgstr ""
+msgstr "error en escriure el contingut de la secció a %s (error: %s)"
-#: objcopy.c:2877
+#: objcopy.c:3130
msgid "could not retrieve section contents"
msgstr "no s'han pogut recuperar els continguts de la secció"
-#: objcopy.c:2891
+#: objcopy.c:3144
#, c-format
msgid "%s: debuglink section already exists"
msgstr "%s: la secció debuglink ja existeix"
-#: objcopy.c:2903
+#: objcopy.c:3156
#, c-format
msgid "cannot create debug link section `%s'"
msgstr "no es pot crear la secció d'enllaçament de depuració `%s'"
-#: objcopy.c:2995
+#: objcopy.c:3249
msgid "Can't fill gap after section"
msgstr "No es pot omplir el buit després de la secció"
-#: objcopy.c:3019
+#: objcopy.c:3273
msgid "can't add padding"
msgstr "no es pot afegir el farcit"
-#: objcopy.c:3152
+#: objcopy.c:3445
+msgid "error: failed to locate merged notes"
+msgstr "error: no s'han pogut trobar les notes fusionades"
+
+#: objcopy.c:3454
+msgid "error: failed to merge notes"
+msgstr "error: no s'han pogut fusionar les notes"
+
+#: objcopy.c:3463
msgid "error: failed to copy merged notes into output"
-msgstr ""
+msgstr "error: no s'han pogut copiar les notes fusionades a la sortida"
-#: objcopy.c:3157
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| "Could not find unwind info section for "
-msgid "could not find any mergeable note sections"
-msgstr ""
-"\n"
-"No s'ha pogut trobar la secció d'informació de desplegament per "
+#: objcopy.c:3480
+#, c-format
+msgid "%s: Could not find any mergeable note sections"
+msgstr "%s: No s'ha pogut trobar cap secció amb notes fusionables"
-#: objcopy.c:3169
+#: objcopy.c:3489
#, c-format
msgid "cannot fill debug link section `%s'"
msgstr "no es pot omplir la secció d'enllaçament de depuració `%s'"
-#: objcopy.c:3231
+#: objcopy.c:3552
msgid "error copying private BFD data"
msgstr "s'ha produït un error copiant dades BFD privades"
-#: objcopy.c:3242
+#: objcopy.c:3563
#, c-format
msgid "this target does not support %lu alternative machine codes"
msgstr "aquest destí no suporta codis de màquina alternatius %lu"
-#: objcopy.c:3246
+#: objcopy.c:3567
msgid "treating that number as an absolute e_machine value instead"
-msgstr "es tractarà aquest número en canvi com un valor e_machine absolut"
+msgstr "es tractarà aquest nombre en canvi com un valor e_machine absolut"
-#: objcopy.c:3250
+#: objcopy.c:3571
msgid "ignoring the alternative value"
msgstr "s'ignorarà el valor alternatiu"
-#: objcopy.c:3282 objcopy.c:3337
+#: objcopy.c:3632
+msgid "sorry: copying thin archives is not currently supported"
+msgstr "ho sentim: la còpia de fitxers prims no està suportada actualment"
+
+#: objcopy.c:3639 objcopy.c:3695
#, c-format
msgid "cannot create tempdir for archive copying (error: %s)"
msgstr "no es pot crear el directori temporal per al fitxer que es copiarà (error: %s)"
-#: objcopy.c:3370
+#: objcopy.c:3674
+#, c-format
+msgid "warning: illegal pathname found in archive member: %s"
+msgstr "avís: s'ha trobat un nom de camí il·legal al membre de l'arxiu: %s"
+
+#: objcopy.c:3680
+#, c-format
+msgid "warning: using the basename of the member instead: %s"
+msgstr "avís: s'està utilitzant el nom base del membre en el seu lloc: %s"
+
+#: objcopy.c:3728
msgid "Unable to recognise the format of file"
msgstr "No s'ha pogut reconèixer el format del fitxer"
-#: objcopy.c:3503
+#: objcopy.c:3850
#, c-format
msgid "error: the input file '%s' is empty"
-msgstr "error: el fitxer d'entrada '%s' està buit"
+msgstr "error: el fitxer d'entrada «%s» està buit"
+
+#: objcopy.c:3885
+msgid "--compress-debug-sections=zstd: binutils is not built with zstd support"
+msgstr "--compress-debug-sections:zstd: els «binutils» no es construeixen amb suport «zstd»"
-#: objcopy.c:3671
+#: objcopy.c:3941
+#, c-format
+msgid "--add-gnu-debuglink ignored for archive %s"
+msgstr "s'ha ignorat --add-gnu-debuglink per a l'arxiu %s"
+
+#: objcopy.c:4041
#, c-format
msgid "Multiple renames of section %s"
msgstr "Canvis de nom múltiples de la secció %s"
-#: objcopy.c:3717
+#: objcopy.c:4086
msgid "error in private header data"
msgstr "error en dades de capçalera privada"
-#: objcopy.c:3795
+#: objcopy.c:4242 objcopy.c:4250
msgid "failed to create output section"
msgstr "ha fallat la creació d'una secció de la sortida"
-#: objcopy.c:3810
+#: objcopy.c:4259
msgid "failed to set size"
msgstr "no s'ha pogut establir la mida"
-#: objcopy.c:3829
+#: objcopy.c:4278
msgid "failed to set vma"
msgstr "no s'ha pogut establir la vma"
-#: objcopy.c:3854
+#: objcopy.c:4327
msgid "failed to set alignment"
msgstr "no s'ha pogut establir l'alineació"
-#: objcopy.c:3886
+#: objcopy.c:4342
+#, c-format
+msgid "output section %s's alignment does not match its VMA"
+msgstr "l'alineació de la secció %s de sortida no concorda amb el seu VMA"
+
+#: objcopy.c:4356
+#, c-format
+msgid "output section %s's alignment does not match its LMA"
+msgstr "l'alineació de la secció %s de sortida no concorda amb el seu LMA"
+
+#: objcopy.c:4386
msgid "failed to copy private data"
msgstr "no s'han pogut copiar les dades privades"
-#: objcopy.c:4043
+#: objcopy.c:4540
msgid "relocation count is negative"
msgstr "la comptabilització de la relocalització és negativa"
#. User must pad the section up in order to do this.
-#: objcopy.c:4140
+#: objcopy.c:4626
#, c-format
msgid "cannot reverse bytes: length of section %s must be evenly divisible by %d"
msgstr "no es poden revertir els bits: la longitud de la secció %s ha de poder-se dividir exactament per %d"
-#: objcopy.c:4345
+#: objcopy.c:4826
msgid "can't create debugging section"
msgstr "no es pot crear la secció de depuració"
-#: objcopy.c:4359
+#: objcopy.c:4840
msgid "can't set debugging section contents"
msgstr "no es poden establir els continguts de la secció de depuració"
-#: objcopy.c:4368
+#: objcopy.c:4850
#, c-format
msgid "don't know how to write debugging information for %s"
msgstr "no hi ha informació per escriure la informació de depuració per a %s"
-#: objcopy.c:4539
+#: objcopy.c:5042
msgid "could not create temporary file to hold stripped copy"
msgstr "no s'ha pogut crear el fitxer temporari per mantenir la còpia netejada"
-#: objcopy.c:4611
+#: objcopy.c:5116
#, c-format
msgid "%s: bad version in PE subsystem"
msgstr "%s: versió dolenta al subsistema PE"
-#: objcopy.c:4641
+#: objcopy.c:5146
#, c-format
msgid "unknown PE subsystem: %s"
msgstr "subsistema PE desconegut: %s"
-#: objcopy.c:4695 objcopy.c:4961 objcopy.c:5041 objcopy.c:5182 objcopy.c:5214
-#: objcopy.c:5237 objcopy.c:5241 objcopy.c:5261
+#: objcopy.c:5235 objcopy.c:5511 objcopy.c:5591 objcopy.c:5729 objcopy.c:5761
+#: objcopy.c:5817 objcopy.c:5821 objcopy.c:5841
#, c-format
msgid "bad format for %s"
msgstr "format dolent per a %s"
-#: objcopy.c:4724
+#: objcopy.c:5264
#, c-format
msgid "cannot open: %s: %s"
msgstr "no es pot obrir: %s: %s"
-#: objcopy.c:4777
+#: objcopy.c:5319
msgid "byte number must be non-negative"
msgstr "el nombre de bytes ha de ser no-negatiu"
-#: objcopy.c:4783
+#: objcopy.c:5325
#, c-format
msgid "architecture %s unknown"
msgstr "arquitectura %s desconeguda"
-#: objcopy.c:4791
+#: objcopy.c:5333
msgid "interleave must be positive"
msgstr "l'interllaçat ha de ser positiu"
-#: objcopy.c:4800
+#: objcopy.c:5342
msgid "interleave width must be positive"
msgstr "l'amplada de l'interllaçat ha de ser positiva"
-#: objcopy.c:5114
-#, fuzzy, c-format
-#| msgid "unrecognized --endian type `%s'"
+#: objcopy.c:5666
+#, c-format
msgid "unrecognized --compress-debug-sections type `%s'"
-msgstr "tipus --endian no reconegut `%s'"
+msgstr "tipus «%s» --compress-debug-sections no reconegut"
-#: objcopy.c:5135
-#, fuzzy, c-format
-#| msgid "unrecognized section flag `%s'"
+#: objcopy.c:5687
+#, c-format
msgid "unrecognized --elf-stt-common= option `%s'"
-msgstr "senyalador `%s' de secció no reconegut"
+msgstr "opció «%s» --elf-stt-common= option no reconeguda"
-#: objcopy.c:5151
+#: objcopy.c:5698
#, c-format
-msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
-msgstr "Advertiment: s'està truncant el farciment de buit de 0x%s a 0x%x"
+msgid "Warning: truncating gap-fill from 0x%<PRIx64> to 0x%x"
+msgstr "Advertiment: s'està truncant el farciment de buit de 0x%<PRIx64> a 0x%x"
+
+#: objcopy.c:5784
+msgid "bad format for --set-section-alignment: argument needed"
+msgstr "format incorrecte per --set-section-alignment: cal un argument"
-#: objcopy.c:5316
+#: objcopy.c:5788
+msgid "bad format for --set-section-alignment: numeric argument needed"
+msgstr "format incorrecte per --set-section-alignment: es necessita un argument numèric"
+
+#: objcopy.c:5793
+msgid "bad format for --set-section-alignment: alignment is not a power of two"
+msgstr "format incorrecte per a --set-section-alignment: l'alineació no és una potència de dos"
+
+#: objcopy.c:5900
#, c-format
msgid "unknown long section names option '%s'"
-msgstr "opció desconeguda '%s' de nom llargs de secció"
+msgstr "opció desconeguda «%s» de nom llargs de secció"
-#: objcopy.c:5339
+#: objcopy.c:5923
msgid "unable to parse alternative machine code"
msgstr "no s'ha pogut analitzar el codi alternatiu de màquina"
-#: objcopy.c:5388
+#: objcopy.c:5972
msgid "number of bytes to reverse must be positive and even"
msgstr "el nombre de bytes a revertir ha de ser positiu i parell"
-#: objcopy.c:5391
+#: objcopy.c:5975
#, c-format
msgid "Warning: ignoring previous --reverse-bytes value of %d"
msgstr "Advertiment: s'ignoraran els valors previs --reverse-bytes de %d"
-#: objcopy.c:5406
+#: objcopy.c:5990
#, c-format
msgid "%s: invalid reserve value for --heap"
msgstr "%s: valor de reserva no vàlid per a --heap"
-#: objcopy.c:5412
+#: objcopy.c:5996
#, c-format
msgid "%s: invalid commit value for --heap"
msgstr "%s: valor de publicació no vàlid per a --heap"
-#: objcopy.c:5437
+#: objcopy.c:6011
+#, c-format
+msgid "--section-alignment argument is not a power of two: %s - ignoring"
+msgstr "--section-alignment argument no és una potència de dos: %s - s'ignorarà"
+
+#: objcopy.c:6026
#, c-format
msgid "%s: invalid reserve value for --stack"
msgstr "%s: valor de reserva no vàlid per a --stack"
-#: objcopy.c:5443
+#: objcopy.c:6032
#, c-format
msgid "%s: invalid commit value for --stack"
msgstr "%s: valor de publicació no vàlid per a --stack"
-#: objcopy.c:5463
+#: objcopy.c:6050
+msgid "error: verilog data width must be 1, 2, 4, 8 or 16"
+msgstr "error: l'amplada de les dades del verilog ha de ser 1, 2, 4, 8 o 16"
+
+#: objcopy.c:6068
msgid "--globalize-symbol(s) is incompatible with -G/--keep-global-symbol(s)"
-msgstr ""
+msgstr "--globalize-symbol(s) és incompatible amb -G/--keep-global-symbol(s)"
-#: objcopy.c:5475
+#: objcopy.c:6080
msgid "interleave start byte must be set with --byte"
msgstr "el byte d'inici d'intercalació s'ha d'establir amb --byte"
-#: objcopy.c:5478
+#: objcopy.c:6083
msgid "byte number must be less than interleave"
-msgstr "el número de bytes ha de ser menor a la intercalació"
+msgstr "el nombre de bytes ha de ser menor a la intercalació"
-#: objcopy.c:5481
+#: objcopy.c:6086
msgid "interleave width must be less than or equal to interleave - byte`"
msgstr "l'amplada de la intercalació ha de ser menor o igual a intercalació - byte`"
-#: objcopy.c:5510
+#: objcopy.c:6109
#, c-format
msgid "unknown input EFI target: %s"
msgstr "destí EFI d'entrada desconegut: %s"
-#: objcopy.c:5541
+#: objcopy.c:6119
#, c-format
msgid "unknown output EFI target: %s"
msgstr "destí EFI de sortida desconegut: %s"
-#: objcopy.c:5554
-#, c-format
-msgid "warning: could not locate '%s'. System error message: %s"
-msgstr "advertiment: no s'ha pogut localitzar '%s'. Missatge d'error de sistema: %s"
-
-#: objcopy.c:5566
+#: objcopy.c:6143
#, c-format
msgid "warning: could not create temporary file whilst copying '%s', (error: %s)"
-msgstr "advertiment: no s'ha pogut crear el fitxer temporari quan s'estava copiant '%s', (error: %s)"
+msgstr "advertiment: no s'ha pogut crear el fitxer temporari quan s'estava copiant «%s», (error: %s)"
-#: objcopy.c:5599 objcopy.c:5613
+#: objcopy.c:6175 objcopy.c:6183
#, c-format
-msgid "%s %s%c0x%s never used"
-msgstr "no s'ha usat mai %s %s%c0x%s"
+msgid "%s %s%c0x%<PRIx64> never used"
+msgstr "no s'ha usat mai %s %s%c0x%<PRIx64>"
-#: objdump.c:204
+#: objdump.c:256
#, c-format
msgid "Usage: %s <option(s)> <file(s)>\n"
msgstr "Forma d'ús: %s <opció(ns)> <fitxer(s)>\n"
-#: objdump.c:205
+#: objdump.c:257
#, c-format
msgid " Display information from object <file(s)>.\n"
msgstr "Mostra la informació del(s) <fitxer(s)> object(es)\n"
-#: objdump.c:206
+#: objdump.c:258
#, c-format
msgid " At least one of the following switches must be given:\n"
msgstr " S'ha de donar almenys una de les opcions següents:\n"
-#: objdump.c:207
-#, fuzzy, c-format
-#| msgid ""
-#| " -a, --archive-headers Display archive header information\n"
-#| " -f, --file-headers Display the contents of the overall file header\n"
-#| " -p, --private-headers Display object format specific file header contents\n"
-#| " -P, --private=OPT,OPT... Display object format specific contents\n"
-#| " -h, --[section-]headers Display the contents of the section headers\n"
-#| " -x, --all-headers Display the contents of all headers\n"
-#| " -d, --disassemble Display assembler contents of executable sections\n"
-#| " -D, --disassemble-all Display assembler contents of all sections\n"
-#| " -S, --source Intermix source code with disassembly\n"
-#| " -s, --full-contents Display the full contents of all sections requested\n"
-#| " -g, --debugging Display debug information in object file\n"
-#| " -e, --debugging-tags Display debug information using ctags style\n"
-#| " -G, --stabs Display (in raw form) any STABS info in the file\n"
-#| " -W[lLiaprmfFsoRt] or\n"
-#| " --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n"
-#| " =frames-interp,=str,=loc,=Ranges,=pubtypes,\n"
-#| " =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n"
-#| " =addr,=cu_index]\n"
-#| " Display DWARF info in the file\n"
-#| " -t, --syms Display the contents of the symbol table(s)\n"
-#| " -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
-#| " -r, --reloc Display the relocation entries in the file\n"
-#| " -R, --dynamic-reloc Display the dynamic relocation entries in the file\n"
-#| " @<file> Read options from <file>\n"
-#| " -v, --version Display this program's version number\n"
-#| " -i, --info List object formats and architectures supported\n"
-#| " -H, --help Display this information\n"
-msgid ""
-" -a, --archive-headers Display archive header information\n"
-" -f, --file-headers Display the contents of the overall file header\n"
-" -p, --private-headers Display object format specific file header contents\n"
-" -P, --private=OPT,OPT... Display object format specific contents\n"
-" -h, --[section-]headers Display the contents of the section headers\n"
-" -x, --all-headers Display the contents of all headers\n"
-" -d, --disassemble Display assembler contents of executable sections\n"
-" -D, --disassemble-all Display assembler contents of all sections\n"
-" --disassemble=<sym> Display assembler contents from <sym>\n"
-" -S, --source Intermix source code with disassembly\n"
-" -s, --full-contents Display the full contents of all sections requested\n"
-" -g, --debugging Display debug information in object file\n"
-" -e, --debugging-tags Display debug information using ctags style\n"
-" -G, --stabs Display (in raw form) any STABS info in the file\n"
-" -W[lLiaprmfFsoRtUuTgAckK] or\n"
-" --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n"
-" =frames-interp,=str,=loc,=Ranges,=pubtypes,\n"
-" =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n"
-" =addr,=cu_index,=links,=follow-links]\n"
-" Display DWARF info in the file\n"
-" -t, --syms Display the contents of the symbol table(s)\n"
-" -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
-" -r, --reloc Display the relocation entries in the file\n"
-" -R, --dynamic-reloc Display the dynamic relocation entries in the file\n"
-" @<file> Read options from <file>\n"
-" -v, --version Display this program's version number\n"
-" -i, --info List object formats and architectures supported\n"
-" -H, --help Display this information\n"
-msgstr ""
-" -a, --archive-headers Mostra la informació de capçaleres del fitxer\n"
-" -f, --file-headers Mostra els continguts de la capçalera \n"
-" general del fitxer\n"
-" -p, --private-headers Mostra els continguts de les capçaleres del\n"
-" fitxer específics del format\n"
-" -P, --private=OPC,OPC... Mostra els continguts específics del format d'objecte\n"
-" -h, --[section-]headers Mostra els continguts de les capçaleres de la secció\n"
-" -x, --all-headers Mostra els continguts de totes les capçaleres\n"
-" -d, --disassemble Mostra els continguts de l'assemblador de\n"
-" les secciones executables\n"
-" -D, --disassemble-all Mostra els continguts de l'assemblador de \n"
-" totes les seccions\n"
-" -S, --source Barreja el codi font amb desassemblador\n"
-" -s, --full-contents Mostra el contingut complet de totes les \n"
-" seccions requerides\n"
-" -g, --debugging Mostra la informació de depuració del fitxer objecte\n"
-" -e, --debugging-tags Mostra la informació de depuració usant estil ctags\n"
-" -G, --stabs Mostra (en format brut) qualsevol informació STABS\n"
-" al fitxer\n"
-" -W[lLiaprmfFsoRt] o\n"
-" --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n"
-" =frames-interp,=str,=loc,=Ranges,=pubtypes,\n"
-" =gdb_index,=trace_info,=trace_abbrev,=trace_aranges]\n"
-" Mostra la informació DWARF al fitxer\n"
-" -t, --syms Mostra els continguts de la(es) taula(es) de símbols\n"
-" -T, --dynamic-syms Mostra els continguts de la taula dinàmica\n"
-" de símbols\n"
-" -r, --reloc Mostra les entrades de relocalització del fitxer\n"
-" -R, --dynamic-reloc Mostra les entrades de relocalització\n"
-" dinàmica al fitxer\n"
-" @<fitxer> Llegeix les opcions del <fitxer>\n"
-" -v, --version Mostra el número de versió d'aquest programa\n"
-" -i, --info Llista els formats i les arquitectures dels\n"
-" objectes suportats\n"
-" -H, --help Mostra aquesta informació\n"
-
-#: objdump.c:241
+#: objdump.c:259
+#, c-format
+msgid " -a, --archive-headers Display archive header information\n"
+msgstr "-a, --archive-headers Mostra la informació de la capçalera de l'arxiu\n"
+
+#: objdump.c:261
+#, c-format
+msgid " -f, --file-headers Display the contents of the overall file header\n"
+msgstr "-f, --file-headers Mostra el contingut de la capçalera general del fitxer\n"
+
+#: objdump.c:263
+#, c-format
+msgid " -p, --private-headers Display object format specific file header contents\n"
+msgstr "-p, --private-headers Mostra el format d'objecte específic del contingut de la capçalera del fitxer\n"
+
+#: objdump.c:265
+#, c-format
+msgid " -P, --private=OPT,OPT... Display object format specific contents\n"
+msgstr "-P, --private...OPT,OPT... Mostra el contingut específic del format de l'objecte\n"
+
+#: objdump.c:267
+#, c-format
+msgid " -h, --[section-]headers Display the contents of the section headers\n"
+msgstr "-h, --[section-]headers Mostra el contingut de les capçaleres de la secció\n"
+
+#: objdump.c:269
+#, c-format
+msgid " -x, --all-headers Display the contents of all headers\n"
+msgstr "-x, --all-headers Mostra el contingut de totes les capçaleres\n"
+
+#: objdump.c:271
+#, c-format
+msgid " -d, --disassemble Display assembler contents of executable sections\n"
+msgstr "-d, --disassemble Mostra el contingut de l'assemblador de seccions executables\n"
+
+#: objdump.c:273
+#, c-format
+msgid " -D, --disassemble-all Display assembler contents of all sections\n"
+msgstr " -D, --disassemble-all Mostra el contingut de l'assemblador de totes les seccions\n"
+
+#: objdump.c:275
+#, c-format
+msgid " --disassemble=<sym> Display assembler contents from <sym>\n"
+msgstr " --disassemble from<sym> Mostra el contingut de l'assemblador des de<sym>\n"
+
+#: objdump.c:277
+#, c-format
+msgid " -S, --source Intermix source code with disassembly\n"
+msgstr " -S , --source Entremescla codi font amb desassemblador\n"
+
+#: objdump.c:279
+#, c-format
+msgid " --source-comment[=<txt>] Prefix lines of source code with <txt>\n"
+msgstr " --source-comment[=<txt>] Prefixa les línies de codi font amb <txt>\n"
+
+#: objdump.c:281
+#, c-format
+msgid " -s, --full-contents Display the full contents of all sections requested\n"
+msgstr " -s, --full-contents Mostra el contingut complet de totes les seccions sol·licitades\n"
+
+#: objdump.c:283
+#, c-format
+msgid " -Z, --decompress Decompress section(s) before displaying their contents\n"
+msgstr " -Z, --decompress Descomprimeix les seccions abans de mostrar el seu contingut\n"
+
+#: objdump.c:285
+#, c-format
+msgid " -g, --debugging Display debug information in object file\n"
+msgstr " -g, --debugging Mostra la informació de depuració al fitxer object\n"
+
+#: objdump.c:287
+#, c-format
+msgid " -e, --debugging-tags Display debug information using ctags style\n"
+msgstr " -e, --debugging-tags Mostra la informació de depuració utilitzant l'estil ctags\n"
+
+#: objdump.c:289
+#, c-format
+msgid " -G, --stabs Display (in raw form) any STABS info in the file\n"
+msgstr "-G, --stabs Mostra (en forma RAW) qualsevol informació STABS al fitxer\n"
+
+#: objdump.c:291
+#, c-format
+msgid ""
+" -W, --dwarf[a/=abbrev, A/=addr, r/=aranges, c/=cu_index, L/=decodedline,\n"
+" f/=frames, F/=frames-interp, g/=gdb_index, i/=info, o/=loc,\n"
+" m/=macro, p/=pubnames, t/=pubtypes, R/=Ranges, l/=rawline,\n"
+" s/=str, O/=str-offsets, u/=trace_abbrev, T/=trace_aranges,\n"
+" U/=trace_info]\n"
+" Display the contents of DWARF debug sections\n"
+msgstr ""
+"-W, --dwarf[a/,abbrev, A/addaddr, r/,aranges, c/,cuindex, L/,decodedline,\n"
+" f/,frames, F/,frames-interp, g/,gdbindex, i/,info, o/,loc,\n"
+" m/,macro, p/spubnames, t/spubtypes, R/,Ranges, l/,rawline,\n"
+" s/,str, O/,str-offsets, u/,traceabbrev, T/,tracearanges,\n"
+" U/]traceinfo]\n"
+" Mostra el contingut de les seccions de depuració DWARF\n"
+
+#: objdump.c:298
+#, c-format
+msgid ""
+" -Wk,--dwarf=links Display the contents of sections that link to\n"
+" separate debuginfo files\n"
+msgstr ""
+" -Wk,--dwarf thelinks Mostra el contingut de les seccions a les quals enllaça\n"
+" Separa els fitxers debuginfo\n"
+
+#: objdump.c:302
+#, c-format
+msgid ""
+" -WK,--dwarf=follow-links\n"
+" Follow links to separate debug info files (default)\n"
+msgstr ""
+" -WK,--dwarfsfollow-links\n"
+" Segueix els enllaços per separar els fitxers d'informació de depuració (predeterminat)\n"
+
+#: objdump.c:305
+#, c-format
+msgid ""
+" -WN,--dwarf=no-follow-links\n"
+" Do not follow links to separate debug info files\n"
+msgstr ""
+" -WN,--dwarfsno-follow-links\n"
+" No segueixis els enllaços per separar els fitxers d'informació de depuració\n"
+
+#: objdump.c:309
+#, c-format
+msgid ""
+" -WK,--dwarf=follow-links\n"
+" Follow links to separate debug info files\n"
+msgstr ""
+" -WK,--dwarfsfollow-links\n"
+" Segueix els enllaços per separar els fitxers d'informació de depuració\n"
+
+#: objdump.c:312
+#, c-format
+msgid ""
+" -WN,--dwarf=no-follow-links\n"
+" Do not follow links to separate debug info files\n"
+" (default)\n"
+msgstr ""
+" -WN,--dwarfsno-follow-links\n"
+" No segueixis els enllaços per separar els fitxers d'informació de depuració\n"
+" (predeterminat)\n"
+
+#: objdump.c:318
+#, c-format
+msgid ""
+" -WD --dwarf=use-debuginfod\n"
+" When following links, also query debuginfod servers (default)\n"
+msgstr ""
+"-WD --dwarf=use-debuginfod\n"
+" En seguir enllaços, també consulta els servidors debuginfod (per defecte)\n"
+
+#: objdump.c:321
+#, c-format
+msgid ""
+" -WE --dwarf=do-not-use-debuginfod\n"
+" When following links, do not query debuginfod servers\n"
+msgstr ""
+" -WE --dwarfddo-not-use-debuginfod\n"
+" En seguir els enllaços, no consultar els servidors debuginfod\n"
+
+#: objdump.c:325
+#, c-format
+msgid ""
+" -L, --process-links Display the contents of non-debug sections in\n"
+" separate debuginfo files. (Implies -WK)\n"
+msgstr ""
+" -L, --process-links mostra el contingut de les seccions que no són de depuració a\n"
+" Separa els fitxers debuginfo. (Implies -WK)\n"
+
+#: objdump.c:329
+#, c-format
+msgid " --ctf[=SECTION] Display CTF info from SECTION, (default `.ctf')\n"
+msgstr "--ctf[)SECCIÓ] Mostra la informació CTF de la SECCIÓ, (per defecte ).ctf')\n"
+
+#: objdump.c:332
+#, c-format
+msgid " --sframe[=SECTION] Display SFrame info from SECTION, (default '.sframe')\n"
+msgstr " --sframe[)SECTION] Mostra la informació de l'SFrame des de SECTION, (predeterminat «.sframe»)\n"
+
+#: objdump.c:334
+#, c-format
+msgid " -t, --syms Display the contents of the symbol table(s)\n"
+msgstr " -t --syms Mostra els continguts de la(les) taula(taules) de símbols\n"
+
+#: objdump.c:336
+#, c-format
+msgid " -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
+msgstr " -T, --dynamic-syms Mostra el contingut de la taula de símbols dinàmics\n"
+
+#: objdump.c:338
+#, c-format
+msgid " -r, --reloc Display the relocation entries in the file\n"
+msgstr ""
+" -r --reloc Mostra les entrades de reubicació al fitxer\n"
+"\n"
+
+#: objdump.c:340
+#, c-format
+msgid " -R, --dynamic-reloc Display the dynamic relocation entries in the file\n"
+msgstr "-R, --dynamic-reloc Mostra les entrades dinàmiques de reubicació al fitxer\n"
+
+#: objdump.c:342
+#, c-format
+msgid " @<file> Read options from <file>\n"
+msgstr " @<fitxer> Llegeix les opcions de <fitxer>\n"
+
+#: objdump.c:344
+#, c-format
+msgid " -v, --version Display this program's version number\n"
+msgstr " -V --version Mostra la versió del programa\n"
+
+#: objdump.c:346
+#, c-format
+msgid " -i, --info List object formats and architectures supported\n"
+msgstr " -i, --info Llista els formats d'objecte i les arquitectures admeses\n"
+
+#: objdump.c:348
+#, c-format
+msgid " -H, --help Display this information\n"
+msgstr " -H --help Mostra aquesta informació\n"
+
+#: objdump.c:355
#, c-format
msgid ""
"\n"
@@ -5937,124 +6512,235 @@ msgstr ""
"\n"
" Les opcions següents són opcionals:\n"
-#: objdump.c:242
-#, fuzzy, c-format
-#| msgid ""
-#| " -b, --target=BFDNAME Specify the target object format as BFDNAME\n"
-#| " -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
-#| " -j, --section=NAME Only display information for section NAME\n"
-#| " -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
-#| " -EB --endian=big Assume big endian format when disassembling\n"
-#| " -EL --endian=little Assume little endian format when disassembling\n"
-#| " --file-start-context Include context from start of file (with -S)\n"
-#| " -I, --include=DIR Add DIR to search list for source files\n"
-#| " -l, --line-numbers Include line numbers and filenames in output\n"
-#| " -F, --file-offsets Include file offsets when displaying information\n"
-#| " -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
-#| " The STYLE, if specified, can be `auto', `gnu',\n"
-#| " `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-#| " or `gnat'\n"
-#| " -w, --wide Format output for more than 80 columns\n"
-#| " -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n"
-#| " --start-address=ADDR Only process data whose address is >= ADDR\n"
-#| " --stop-address=ADDR Only process data whose address is <= ADDR\n"
-#| " --prefix-addresses Print complete address alongside disassembly\n"
-#| " --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
-#| " --insn-width=WIDTH Display WIDTH bytes on a single line for -d\n"
-#| " --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n"
-#| " --special-syms Include special symbols in symbol dumps\n"
-#| " --prefix=PREFIX Add PREFIX to absolute paths for -S\n"
-#| " --prefix-strip=LEVEL Strip initial directory names for -S\n"
-msgid ""
-" -b, --target=BFDNAME Specify the target object format as BFDNAME\n"
-" -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
-" -j, --section=NAME Only display information for section NAME\n"
-" -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
-" -EB --endian=big Assume big endian format when disassembling\n"
-" -EL --endian=little Assume little endian format when disassembling\n"
-" --file-start-context Include context from start of file (with -S)\n"
-" -I, --include=DIR Add DIR to search list for source files\n"
-" -l, --line-numbers Include line numbers and filenames in output\n"
-" -F, --file-offsets Include file offsets when displaying information\n"
-" -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
-" The STYLE, if specified, can be `auto', `gnu',\n"
-" `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
-" or `gnat'\n"
-" --recurse-limit Enable a limit on recursion whilst demangling. [Default]\n"
-" --no-recurse-limit Disable a limit on recursion whilst demangling\n"
-" -w, --wide Format output for more than 80 columns\n"
-" -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n"
-" --start-address=ADDR Only process data whose address is >= ADDR\n"
-" --stop-address=ADDR Only process data whose address is <= ADDR\n"
-" --prefix-addresses Print complete address alongside disassembly\n"
-" --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
-" --insn-width=WIDTH Display WIDTH bytes on a single line for -d\n"
-" --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n"
-" --special-syms Include special symbols in symbol dumps\n"
-" --inlines Print all inlines for source line (with -l)\n"
-" --prefix=PREFIX Add PREFIX to absolute paths for -S\n"
-" --prefix-strip=LEVEL Strip initial directory names for -S\n"
-msgstr ""
-" -b, --target=NOM-BFD Especifica el format del objecte destí com \n"
-" NOM-BFD\n"
-" -m, --architecture=MÀQUINA Especifica l'arquitectura del destí\n"
-" com MÀQUINA\n"
-" -j, --section=NOM Mostra sols informació per a la secció NOM\n"
-" -M, --disassembler-options=OPC Passa el text OPC cap al desassemblador\n"
-" -EB --endian=big Suposa format endian gran quan s'estigui \n"
-" desassemblant\n"
-" -EL --endian=little Suposa format endian petit quan s'estigui\n"
-" desassemblant\n"
-" --file-start-context Incloeix el context des de l'inici del fitxer\n"
-" (amb -S)\n"
-" -I, --include=DIR Afegeix DIR a les llistes de cerca per als \n"
-" fitxers font\n"
-" -l, --line-numbers Inclou els números de línia i els fitxers a la \n"
-" sortida\n"
-" -F, --file-offsets Inclou les posicions dels quan es mostri la\n"
-" informació\n"
-" -C, --demangle[=ESTIL] Decodifica els noms del símbols \n"
-" filtrats/processats \n"
-" L'ESTIL, si s'ha especificat, pot ser\n"
-" `auto', `gnu', `lucid', `arm', `hp',\n"
-" `edg', `gnu-v3', `java' o `gnat'\n"
-" -w, --wide Formateja la sortida per a més de 80 columnes\n"
-" -z, --disassemble-zeroes No saltis els blocs de zeros quan\n"
-" s'estigui desassemblant\n"
-" --start-address=ADR Processa sols les dades l'adreça de les\n"
-" quals sigui >= ADR\n"
-" --stop-address=ADR Processa sols les dades l'adreça de les\n"
-" quals sigui <= ADR\n"
-" --prefix-addresses Imprimeix les adreces completes al costat\n"
-" del codi desassemblat\n"
-" --[no-]show-raw-insn Mostra hex al costat del desassemblament\n"
-" simbòlic\n"
-" --insn-width=AMPLADA Mostra AMPLADA bytes a una línia única\n"
-" per a -d \n"
-" --adjust-vma=DESPLAÇAMENT Afegeix DESPLAÇAMENT a totes les adreces\n"
-" de secció mostrades\n"
-" --special-syms Inclou els símbols especials als bolcats\n"
-" de símbols\n"
-" --prefix=PREFIX Afegeix PREFIX als camins absoluts per\n"
-" a -S\n"
-" --prefix-strip=NIVELL Elimina els noms del directoris inicials\n"
-" per a -S\n"
+#: objdump.c:356
+#, c-format
+msgid " -b, --target=BFDNAME Specify the target object format as BFDNAME\n"
+msgstr " -b --target=NOMBFD Especifica el format de l'object destí com NOMBFD\n"
-#: objdump.c:271
+#: objdump.c:358
+#, c-format
+msgid " -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
+msgstr " -m, --architecture theMACHINE Especifiqueu l'arquitectura de destinació com a MÀQUINA\n"
+
+#: objdump.c:360
+#, c-format
+msgid " -j, --section=NAME Only display information for section NAME\n"
+msgstr " -j --section=NOM Mostra sols la informació per a la secció NOM\n"
+
+#: objdump.c:362
+#, c-format
+msgid " -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
+msgstr " -M, --disassembler-options=OPT Passa text OPT al desassemblador\n"
+
+#: objdump.c:364
+#, c-format
+msgid " -EB --endian=big Assume big endian format when disassembling\n"
+msgstr "-EB --endian=big Assumeix el format big endian en desassemblar\n"
+
+#: objdump.c:366
+#, c-format
+msgid " -EL --endian=little Assume little endian format when disassembling\n"
+msgstr "-EL --endian=little Assumeix el format endian petit en desassemblar\n"
+
+#: objdump.c:368
+#, c-format
+msgid " --file-start-context Include context from start of file (with -S)\n"
+msgstr " --file-start-context Inclou el context des de l'inici del fitxer (amb -S)\n"
+
+#: objdump.c:370
+#, c-format
+msgid " -I, --include=DIR Add DIR to search list for source files\n"
+msgstr " -I, --include=DIR Afegeix DIR a la llista de cerca de fitxers font\n"
+
+#: objdump.c:372
+#, c-format
+msgid " -l, --line-numbers Include line numbers and filenames in output\n"
+msgstr " -l, --line-numbers Inclou els nombres de línia i els noms de fitxer a la sortida\n"
+
+#: objdump.c:374
+#, c-format
+msgid " -F, --file-offsets Include file offsets when displaying information\n"
+msgstr " -F, --file-offsets Inclou el \n"
+
+#: objdump.c:376
+#, c-format
+msgid " -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
+msgstr "-C, --demangle[=STYLE] Descodifica els noms dels símbols descodificats/processat\n"
+
+#: objdump.c:378
+msgid " STYLE can be "
+msgstr " STYLE pot ser "
+
+#: objdump.c:380
#, c-format
msgid ""
-" --dwarf-depth=N Do not display DIEs at depth N or greater\n"
-" --dwarf-start=N Display DIEs starting with N, at the same depth\n"
-" or deeper\n"
-" --dwarf-check Make additional dwarf internal consistency checks. \n"
-"\n"
+" --recurse-limit Enable a limit on recursion whilst demangling\n"
+" (default)\n"
msgstr ""
-" --dwarf-depth=N No mostris els DIEs a una profunditat N o més gran\n"
-" --dwarf-start=N Mostra els DIEs que comencen amb N, a la mateixa\n"
-" profunditat o més gran\n"
-" --dwarf-check Fes verificacions addicionals de consistència interna de DIEs\n"
+" --recurse-limit Habilita un límit en la recursivitat mentre es descodifica\n"
+" (predeterminat)\n"
-#: objdump.c:285
+#: objdump.c:383
+#, c-format
+msgid " --no-recurse-limit Disable a limit on recursion whilst demangling\n"
+msgstr " --no-recurse-limit Desactiva un límit en la recursivitat mentre es decodifica\n"
+
+#: objdump.c:385
+#, c-format
+msgid " -w, --wide Format output for more than 80 columns\n"
+msgstr " -w, --wide Format de sortida per a més de 80 columnes\n"
+
+#: objdump.c:387
+#, c-format
+msgid ""
+" -U[d|l|i|x|e|h] Controls the display of UTF-8 unicode characters\n"
+" --unicode=[default|locale|invalid|hex|escape|highlight]\n"
+msgstr ""
+" -U[d|l|i|x|e|h] Controla la visualització dels caràcters unicode UTF-8\n"
+" --unicode][default]locale]invalid]hex]escape]highlight]\n"
+
+#: objdump.c:390
+#, c-format
+msgid " -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n"
+msgstr " -z, --disassemble-zeroes No ometis blocs de zeros en desmuntar\n"
+
+#: objdump.c:392
+#, c-format
+msgid " --start-address=ADDR Only process data whose address is >= ADDR\n"
+msgstr " --start-address=ADDR Només processa dades l'adreça de les quals és >= ADDR\n"
+
+#: objdump.c:394
+#, c-format
+msgid " --stop-address=ADDR Only process data whose address is < ADDR\n"
+msgstr " --stop-address=ADDR Només processa dades l'adreça de les quals és < ADDR\n"
+
+#: objdump.c:396
+#, c-format
+msgid " --no-addresses Do not print address alongside disassembly\n"
+msgstr " --no-addresses No imprimeixis l'adreça juntament amb el desmuntatge\n"
+
+#: objdump.c:398
+#, c-format
+msgid " --prefix-addresses Print complete address alongside disassembly\n"
+msgstr " --prefix-addresss Imprimeix l'adreça completa juntament amb el desmuntatge\n"
+
+#: objdump.c:400
+#, c-format
+msgid " --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
+msgstr " --[no-]show-raw-insn Mostra hexadecimal al costat del desmuntatge simbòlic\n"
+
+#: objdump.c:402
+#, c-format
+msgid " --insn-width=WIDTH Display WIDTH bytes on a single line for -d\n"
+msgstr " --insn-width=AMPLADA Mostra els bytes d'AMPLADA en una sola línia per a -d\n"
+
+#: objdump.c:404
+#, c-format
+msgid " --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n"
+msgstr " --adjust-vma=DESPLAÇA Afegeix un desplaçament igual a DESPLAÇA a totes les adreces de secció mostrades\n"
+
+#: objdump.c:406
+#, c-format
+msgid " --show-all-symbols When disassembling, display all symbols at a given address\n"
+msgstr " --show-all-symbols En desmuntar, mostra tots els símbols en una adreça donada\n"
+
+#: objdump.c:408
+#, c-format
+msgid " --special-syms Include special symbols in symbol dumps\n"
+msgstr " --special-syms Inclou símbols especials als bolcats de símbols\n"
+
+#: objdump.c:410
+#, c-format
+msgid " --inlines Print all inlines for source line (with -l)\n"
+msgstr " --inlines Imprimeix tots els elements en línia per a la línia de font (amb -l)\n"
+
+#: objdump.c:412
+#, c-format
+msgid " --prefix=PREFIX Add PREFIX to absolute paths for -S\n"
+msgstr " --prefix=PREFIX Afegeix un PREFIX als camins absoluts per a -S\n"
+
+#: objdump.c:414
+#, c-format
+msgid " --prefix-strip=LEVEL Strip initial directory names for -S\n"
+msgstr " --prefix-strip=NIVELL Elimina els noms de directori inicial per a -S\n"
+
+#: objdump.c:416
+#, c-format
+msgid " --dwarf-depth=N Do not display DIEs at depth N or greater\n"
+msgstr " --dwarf-depth=N No mostris DIE a la profunditat N o més gran\n"
+
+#: objdump.c:418
+#, c-format
+msgid " --dwarf-start=N Display DIEs starting at offset N\n"
+msgstr " --dwarf-start=N Mostra els DIE començant al desplaçament N\n"
+
+#: objdump.c:420
+#, c-format
+msgid " --dwarf-check Make additional dwarf consistency checks.\n"
+msgstr " --dwarf-check Fes comprovacions addicionals de consistència nana.\n"
+
+#: objdump.c:423
+#, c-format
+msgid " --ctf-parent=NAME Use CTF archive member NAME as the CTF parent\n"
+msgstr " --ctf-parent=NOM Usa el NOM del membre de l'arxiu CTF com a pare del CTF\n"
+
+#: objdump.c:426
+#, c-format
+msgid " --visualize-jumps Visualize jumps by drawing ASCII art lines\n"
+msgstr " --visualize-jumps Visualitza els salts dibuixant línies d'art ASCII\n"
+
+#: objdump.c:428
+#, c-format
+msgid " --visualize-jumps=color Use colors in the ASCII art\n"
+msgstr " --visualize-jumps=color Usa els colors en l'art ASCII\n"
+
+#: objdump.c:430
+#, c-format
+msgid ""
+" --visualize-jumps=extended-color\n"
+" Use extended 8-bit color codes\n"
+msgstr ""
+" --visualize-jumps=extended-color\n"
+" Utilitza codis de color de 8 bits ampliats\n"
+
+#: objdump.c:433
+#, c-format
+msgid " --visualize-jumps=off Disable jump visualization\n"
+msgstr " --visualize-jumps=off Desactiva la visualització del salt\n"
+
+#: objdump.c:436
+#, c-format
+msgid " --disassembler-color=off Disable disassembler color output.\n"
+msgstr " --disassembler-color=off Desactiva la sortida de color del desassemblador.\n"
+
+#: objdump.c:438
+#, c-format
+msgid " --disassembler-color=terminal Enable disassembler color output if displaying on a terminal. (default)\n"
+msgstr " --disassembler-color=terminal Activa la sortida de color del desassemblador si es mostra en un terminal. (predeterminat)\n"
+
+#: objdump.c:441
+#, c-format
+msgid " --disassembler-color=off Disable disassembler color output. (default)\n"
+msgstr " --disassembler-color=off Desactiva la sortida de color del desassemblador. (predeterminat)\n"
+
+#: objdump.c:443
+#, c-format
+msgid " --disassembler-color=terminal Enable disassembler color output if displaying on a terminal.\n"
+msgstr " --disassembler-color=terminal Activa la sortida de color del desassemblador si es mostra en un terminal.\n"
+
+#: objdump.c:446
+#, c-format
+msgid " --disassembler-color=on Enable disassembler color output.\n"
+msgstr " --disassembler-color=on Activa la sortida de color del desassemblador.\n"
+
+#: objdump.c:448
+#, c-format
+msgid ""
+" --disassembler-color=extended Use 8-bit colors in disassembler output.\n"
+"\n"
+msgstr " --disassembler-color=extended Usa colors de 8 bits a la sortida del desassemblador.\n"
+
+#: objdump.c:459
#, c-format
msgid ""
"\n"
@@ -6063,63 +6749,70 @@ msgstr ""
"\n"
"Opcions suportades per a l'opció -P/--private:\n"
-#: objdump.c:508
+#: objdump.c:832
#, c-format
msgid "section '%s' mentioned in a -j option, but not found in any input file"
-msgstr "la secció '%s' mencionada en una opció -j, pero no trobada en cap fitxer d'entrada"
+msgstr "la secció «%s» mencionada en una opció -j, pero no trobada en cap fitxer d'entrada"
-#: objdump.c:659
+#: objdump.c:990
#, c-format
msgid "Sections:\n"
msgstr "Seccions:\n"
-#: objdump.c:665
+#: objdump.c:996
#, c-format
msgid "Idx %-*s Size %-*s%-*sFile off Algn"
-msgstr ""
+msgstr "Idx %-*s Mida %-*s%-*sFile off Algn"
-#: objdump.c:671
+#: objdump.c:1002
#, c-format
msgid " Flags"
msgstr " Senyaladors"
-#: objdump.c:693
-#, fuzzy, c-format
-#| msgid "cannot read symbol table"
+#: objdump.c:1019
+#, c-format
msgid "failed to read symbol table from: %s"
-msgstr "no es pot llegir la taula de símbols"
+msgstr "no es pot llegir la taula de símbols des de: %s"
-#: objdump.c:694 objdump.c:3675
+#: objdump.c:1021 objdump.c:5514 objdump.c:5566
msgid "error message was"
-msgstr ""
+msgstr "el missatge d'error ha sigut"
-#: objdump.c:718
+#: objdump.c:1050
#, c-format
msgid "%s: not a dynamic object"
msgstr "%s: no és un objecte dinàmic"
-#: objdump.c:1265 objdump.c:1289
+#: objdump.c:1655 objdump.c:1720
#, c-format
msgid " (File Offset: 0x%lx)"
msgstr " (Desplaçament de fitxer: 0x%lx)"
-#: objdump.c:1531
+#: objdump.c:2142
#, c-format
msgid "source file %s is more recent than object file\n"
-msgstr ""
+msgstr "el fitxer d'origen %s és més recent que el fitxer d'objecte\n"
-#: objdump.c:1987
+#: objdump.c:2511
+msgid "disassembly color not correctly selected"
+msgstr "el color de desmuntatge no està correctament seleccionat"
+
+#: objdump.c:3385
+#, c-format
+msgid "\t... (skipping %lu zeroes, resuming at file offset: 0x%lx)\n"
+msgstr "\t... (saltant %lu zeros, continuant al desplaçament de fitxer 0x%lx)\n"
+
+#: objdump.c:3524
#, c-format
msgid "disassemble_fn returned length %d"
msgstr "disassemble_fn ha retornat la longitud %d"
-#: objdump.c:2300 objdump.c:3294
-#, fuzzy, c-format
-#| msgid "reading %s section of %s failed: %s"
+#: objdump.c:3861 objdump.c:5131
+#, c-format
msgid "Reading section %s failed because: %s"
-msgstr "ha fallat la lectura de %s de la secció %s: %s"
+msgstr "Ha fallat quan es llegia la secció %s a causa de: %s"
-#: objdump.c:2317
+#: objdump.c:3877
#, c-format
msgid ""
"\n"
@@ -6128,52 +6821,52 @@ msgstr ""
"\n"
"Desassemblament de la secció %s:\n"
-#: objdump.c:2575
+#: objdump.c:4188
#, c-format
msgid "can't use supplied machine %s"
msgstr "no es pot usar la màquina aportada %s"
-#: objdump.c:2596
+#: objdump.c:4211
#, c-format
msgid "can't disassemble for architecture %s\n"
msgstr "no es pot desassemblar per a l'arquitectura %s\n"
-#: objdump.c:2682
-#, fuzzy, c-format
-#| msgid "Section %d has invalid sh_entsize of %"
+#: objdump.c:4304
+#, c-format
msgid ""
"\n"
-"Section '%s' has an invalid size: %#llx.\n"
-msgstr "La secció %d té sh_entsize no vàlida de %"
+"Section '%s' has an invalid size: %#<PRIx64>.\n"
+msgstr ""
+"\n"
+"La secció «%s» té una mida no vàlida: %#<PRIx64>.\n"
-#: objdump.c:2692 objdump.c:2714
+#: objdump.c:4353
#, c-format
msgid ""
"\n"
"Can't get contents for section '%s'.\n"
msgstr ""
"\n"
-"No es poden obtenir els continguts per a la secció '%s'.\n"
+"No es poden obtenir els continguts per a la secció «%s».\n"
-#: objdump.c:2898
-#, fuzzy, c-format
-#| msgid "%s: no recognized debugging information"
+#: objdump.c:4516
+#, c-format
msgid "File %s does not contain any dwarf debug information\n"
-msgstr "%s: informació de depuració no reconeguda"
+msgstr "El fitxer %s no conté cap informació de depuració dwarf\n"
-#: objdump.c:2971
+#: objdump.c:4552
#, c-format
msgid ""
"No %s section present\n"
"\n"
msgstr "Ni ha ha una secció %s present\n"
-#: objdump.c:2978
+#: objdump.c:4561
#, c-format
msgid "reading %s section of %s failed: %s"
msgstr "ha fallat la lectura de %s de la secció %s: %s"
-#: objdump.c:3022
+#: objdump.c:4599
#, c-format
msgid ""
"Contents of %s section:\n"
@@ -6182,17 +6875,17 @@ msgstr ""
"Continguts de la secció %s:\n"
"\n"
-#: objdump.c:3156
+#: objdump.c:4741
#, c-format
msgid "architecture: %s, "
msgstr "arquitectura: %s, "
-#: objdump.c:3159
+#: objdump.c:4744
#, c-format
msgid "flags 0x%08x:\n"
msgstr "senyaladors 0x%08x:\n"
-#: objdump.c:3172
+#: objdump.c:4757
#, c-format
msgid ""
"\n"
@@ -6201,47 +6894,108 @@ msgstr ""
"\n"
"adreça d'inici 0x"
-#: objdump.c:3198
+#: objdump.c:4803 readelf.c:16929
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: objdump.c:4803 readelf.c:16929
+msgid "warning"
+msgstr "advertiment"
+
+#: objdump.c:4803 readelf.c:16929
+msgid "error"
+msgstr "error"
+
+#: objdump.c:4809 readelf.c:16934
+#, c-format
+msgid "CTF error: cannot get CTF errors: `%s'"
+msgstr "Error de CTF: no es poden obtenir errors de CTF: «%s»"
+
+#: objdump.c:4833 readelf.c:16956
+#, c-format
+msgid ""
+"\n"
+"CTF archive member: %s:\n"
+msgstr ""
+"\n"
+"Membre d'arxiu CTF: %s:\n"
+
+#: objdump.c:4853
+#, c-format
+msgid "Iteration failed: %s, %s"
+msgstr "Ha fallat la interacció: %s: %s"
+
+#: objdump.c:4899 objdump.c:4919 objdump.c:4932
+#, c-format
+msgid "CTF open failure: %s"
+msgstr "Error d'obertura CTF: %s"
+
+#: objdump.c:4940
+#, c-format
+msgid "Contents of CTF section %s:\n"
+msgstr "Continguts de la secció CTF %s:\n"
+
+#: objdump.c:4947
+#, c-format
+msgid "CTF archive member open failure: %s"
+msgstr "Ha fallat l'obertura del membre de l'arxiu CTF: %s"
+
+#: objdump.c:4998 readelf.c:17130
+#, c-format
+msgid "Contents of the SFrame section %s:"
+msgstr "Continguts de la secció SFrame %s:"
+
+#: objdump.c:5012
+#, c-format
+msgid "warning: private headers incomplete: %s"
+msgstr "advertiment: capçaleres privades incompletes: %s"
+
+#: objdump.c:5030
msgid "option -P/--private not supported by this file"
msgstr "l'opció -P/--private no està suportada per aquest fitxer"
-#: objdump.c:3222
+#: objdump.c:5054
#, c-format
msgid "target specific dump '%s' not supported"
-msgstr "el bolcat '%s' específic del destí no està suportat"
+msgstr "el bolcat «%s» específic del destí no està suportat"
-#: objdump.c:3286
+#: objdump.c:5120
#, c-format
msgid "Contents of section %s:"
msgstr "Continguts de la secció %s:"
-#: objdump.c:3288
+#: objdump.c:5122
#, c-format
msgid " (Starting at file offset: 0x%lx)"
msgstr " (S'està començant a la posició del fitxer: 0x%lx)"
-#: objdump.c:3398
+#: objdump.c:5127 readelf.c:16627
+#, c-format
+msgid " NOTE: This section is compressed, but its contents have NOT been expanded for this dump.\n"
+msgstr " NOTA: Aquesta secció està comprimida, però els seus continguts NO han estat expandits en aquest bolcat.\n"
+
+#: objdump.c:5235
#, c-format
msgid "no symbols\n"
msgstr "no hi ha símbols\n"
-#: objdump.c:3405
+#: objdump.c:5242
#, c-format
msgid "no information for symbol number %ld\n"
-msgstr "no hi ha informació per al símbol número %ld\n"
+msgstr "no hi ha informació per al símbol nombre %ld\n"
-#: objdump.c:3408
+#: objdump.c:5245
#, c-format
msgid "could not determine the type of symbol number %ld\n"
-msgstr "no s'ha pogut determinar el tipus del símbol número %ld\n"
+msgstr "no s'ha pogut determinar el tipus del símbol nombre %ld\n"
-#: objdump.c:3674
-#, fuzzy, c-format
-#| msgid "%s: failed to read archive index\n"
+#: objdump.c:5512 objdump.c:5564
+#, c-format
msgid "failed to read relocs in: %s"
-msgstr "%s: ha fallat la lectura de l'índex del fitxer\n"
+msgstr "no s'han pogut llegir els relocs a: %s"
-#: objdump.c:3774
+#: objdump.c:5695
#, c-format
msgid ""
"\n"
@@ -6250,63 +7004,85 @@ msgstr ""
"\n"
"%s: format de fixer %s\n"
-#: objdump.c:3837
+#: objdump.c:5808
#, c-format
msgid "%s: printing debugging information failed"
msgstr "%s: ha fallat la impressió de la informació de depuració"
-#: objdump.c:3930
+#: objdump.c:5895
#, c-format
msgid "In archive %s:\n"
msgstr "Al fitxer %s:\n"
#. Prevent corrupted files from spinning us into an
#. infinite loop. 100 is an arbitrary heuristic.
-#: objdump.c:3935
+#: objdump.c:5900
msgid "Archive nesting is too deep"
-msgstr ""
+msgstr "La imbricació de l'arxiu és massa profunda"
-#: objdump.c:3939
+#: objdump.c:5905
#, c-format
msgid "In nested archive %s:\n"
msgstr "Al fitxer niuat %s:\n"
-#: objdump.c:4104
+#: objdump.c:6055
msgid "error: the start address should be before the end address"
msgstr "error: l'adreça d'inici hauria d'estar abans que l'adreça final"
-#: objdump.c:4109
+#: objdump.c:6060
msgid "error: the stop address should be after the start address"
msgstr "error: l'adreça d'aturada hauria d'estar després de l'adreça d'inici"
-#: objdump.c:4121
+#: objdump.c:6072
msgid "error: prefix strip must be non-negative"
msgstr "error: l'eliminació de prefix ha de ser no-negativa"
-#: objdump.c:4126
-msgid "error: instruction width must be positive"
-msgstr "error: l'amplada de la instrucció ha de ser positiva"
+#: objdump.c:6077
+msgid "error: instruction width must be in the range 1 to "
+msgstr "error: l'amplada de la instrucció ha d'estar en el rang d'1 fins a "
+
+#: objdump.c:6100
+msgid "unrecognized argument to --visualize-option"
+msgstr "argument no reconegut per a --visualize-option"
-#: objdump.c:4138
+#: objdump.c:6120
+msgid "unrecognized argument to --disassembler-color"
+msgstr "argument no reconegut per a --disassembler-color"
+
+#: objdump.c:6131
msgid "unrecognized -E option"
msgstr "opció -E no reconeguda"
-#: objdump.c:4149
+#: objdump.c:6142
#, c-format
msgid "unrecognized --endian type `%s'"
msgstr "tipus --endian no reconegut `%s'"
-#: od-macho.c:73
-#, fuzzy, c-format
-#| msgid ""
-#| "For Mach-O files:\n"
-#| " header Display the file header\n"
-#| " section Display the segments and sections commands\n"
-#| " map Display the section map\n"
-#| " load Display the load commands\n"
-#| " dysymtab Display the dynamic symbol table\n"
-#| " codesign Display code signature\n"
-#| " seg_split_info Display segment split info\n"
+#: od-elf32_avr.c:55
+#, c-format
+msgid ""
+"For AVR ELF files:\n"
+" mem-usage Display memory usage\n"
+" avr-prop Display contents of .avr.prop section\n"
+" avr-deviceinfo Display contents of .note.gnu.avr.deviceinfo section\n"
+msgstr ""
+"Per a fitxers AVR ELF:\n"
+" mem-usage Mostra l'ús de memòria\n"
+" avr-prop Mostra els continguts de la secció .avr.prop\n"
+" avr-deviceinfo Mostra els continguts de la secció .note.gnu.avr.deviceinfo\n"
+
+#: od-elf32_avr.c:190
+#, c-format
+msgid "Warning: section %s has a negative size of %ld bytes, saturating to 0 bytes\n"
+msgstr "Advertiment: la secció %s té una mida negativa de %ld bytes, es saturarà a 0 bytes\n"
+
+#: od-elf32_avr.c:197
+#, c-format
+msgid "Warning: section %s has an impossible size of %lu bytes, truncating to %lu bytes\n"
+msgstr "Advertiment: la secció %s té una mida impossible de %lu bytes, truncant a %lu bytes\n"
+
+#: od-macho.c:75
+#, c-format
msgid ""
"For Mach-O files:\n"
" header Display the file header\n"
@@ -6330,254 +7106,745 @@ msgstr ""
" dysymtab Mostra la taula de símbols dinàmics\n"
" codesign Mostra la signatura del codi\n"
" seg_split_info Mostra la informació de divisió de segment\n"
+" function_starts Mostra l'adreça d'inici de la visuatlització\n"
+" data_in_code Mostra les dades en entrades de codi\n"
+" twolevel_hints Mostra la taula de pistes de cerca d'espai de noms de dos nivells\n"
+" dyld_info Mostra la informació dyld\n"
-#: od-macho.c:319
+#: od-macho.c:314
msgid "Mach-O header:\n"
msgstr "Capçalera Mach-O:\n"
-#: od-macho.c:320
+#: od-macho.c:315
#, c-format
msgid " magic : %08lx\n"
msgstr " màgic : %08lx\n"
-#: od-macho.c:321
+#: od-macho.c:316
#, c-format
msgid " cputype : %08lx (%s)\n"
msgstr " cputype : %08lx (%s)\n"
-#: od-macho.c:323
+#: od-macho.c:318
#, c-format
msgid " cpusubtype: %08lx\n"
msgstr " cpusubtype: %08lx\n"
-#: od-macho.c:324
+#: od-macho.c:319
#, c-format
msgid " filetype : %08lx (%s)\n"
msgstr " tipus de fitxer : %08lx (%s)\n"
-#: od-macho.c:327
+#: od-macho.c:322
#, c-format
msgid " ncmds : %08lx (%lu)\n"
msgstr " ncmds : %08lx (%lu)\n"
-#: od-macho.c:328
-#, fuzzy, c-format
-#| msgid " sizeofcmds: %08lx\n"
+#: od-macho.c:323
+#, c-format
msgid " sizeofcmds: %08lx (%lu)\n"
-msgstr " sizeofcmds: %08lx\n"
+msgstr " sizeofcmds: %08lx (%lu)\n"
-#: od-macho.c:329
+#: od-macho.c:324
#, c-format
msgid " flags : %08lx ("
msgstr " senyaladors : %08lx ("
-#: od-macho.c:331
+#: od-macho.c:326
msgid ")\n"
msgstr ")\n"
-#: od-macho.c:332
+#: od-macho.c:327
#, c-format
msgid " reserved : %08x\n"
msgstr " reservat : %08x\n"
-#: od-macho.c:351
+#: od-macho.c:346
msgid "Segments and Sections:\n"
msgstr " Segments i seccions:\n"
-#: od-macho.c:352
+#: od-macho.c:347
msgid " #: Segment name Section name Address\n"
msgstr " #: Nom de Segment Nom de secció Adreça\n"
-#: od-macho.c:994
-#, fuzzy
-#| msgid "cannot read segment split info"
+#: od-macho.c:989
msgid "cannot read rebase dyld info"
-msgstr "no es pot llegir la informació de la divisió de segments"
+msgstr "no es pot llegir la informació rebase dyld"
-#: od-macho.c:999
-#, fuzzy
-#| msgid "cannot read segment split info"
+#: od-macho.c:994
msgid "cannot read bind dyld info"
-msgstr "no es pot llegir la informació de la divisió de segments"
+msgstr "no es pot llegir la informació bind dyld"
-#: od-macho.c:1004
-#, fuzzy
-#| msgid "cannot read segment split info"
+#: od-macho.c:999
msgid "cannot read weak bind dyld info"
-msgstr "no es pot llegir la informació de la divisió de segments"
+msgstr "no es pot llegir la informació weak bind dyld"
-#: od-macho.c:1009
-#, fuzzy
-#| msgid "cannot read loader info table"
+#: od-macho.c:1004
msgid "cannot read lazy bind dyld info"
-msgstr "no es pot llegir la taula de informació del carregador"
+msgstr "no es pot llegir la informació bind dyld"
-#: od-macho.c:1014
-#, fuzzy
-#| msgid "cannot read symbol table"
+#: od-macho.c:1009
msgid "cannot read export symbols dyld info"
-msgstr "no es pot llegir la taula de símbols"
+msgstr "no es poden exportar els símbols d'informació dyld"
-#: od-macho.c:1094 od-macho.c:1104 od-macho.c:1178 od-macho.c:1230
+#: od-macho.c:1089 od-macho.c:1099 od-macho.c:1173 od-macho.c:1225
#, c-format
msgid " [bad block length]\n"
msgstr "[longitud incorrecta de bloc]\n"
-#: od-macho.c:1098
-#, fuzzy, c-format
-#| msgid " %u index entries:\n"
+#: od-macho.c:1093
+#, c-format
msgid " %u index entry:\n"
msgid_plural " %u index entries:\n"
-msgstr[0] " %u entrades d'índex:\n"
+msgstr[0] " %u entrada d'índex:\n"
msgstr[1] " %u entrades d'índex:\n"
-#: od-macho.c:1114
+#: od-macho.c:1109
#, c-format
msgid " index entry %u: type: %08x, offset: %08x\n"
msgstr " entrada d'índex %u: tipus: %08x, desplaçament: %08x\n"
-#: od-macho.c:1185
+#: od-macho.c:1180
#, c-format
msgid " version: %08x\n"
msgstr " versió: %08x\n"
-#: od-macho.c:1186
+#: od-macho.c:1181
#, c-format
msgid " flags: %08x\n"
msgstr " senyaladors: %08x\n"
-#: od-macho.c:1187
+#: od-macho.c:1182
#, c-format
msgid " hash offset: %08x\n"
msgstr " posició del resum: %08x\n"
-#: od-macho.c:1189
+#: od-macho.c:1184
#, c-format
msgid " ident offset: %08x (- %08x)\n"
msgstr " posició del sagnat: %08x (- %08x)\n"
-#: od-macho.c:1191
+#: od-macho.c:1186
#, c-format
msgid " identity: %s\n"
msgstr " identitat: %s\n"
-#: od-macho.c:1192
+#: od-macho.c:1187
#, c-format
msgid " nbr special slots: %08x (at offset %08x)\n"
msgstr " posicions especials nbr: %08x (al desplaçament %08x)\n"
-#: od-macho.c:1195
+#: od-macho.c:1190
#, c-format
msgid " nbr code slots: %08x\n"
msgstr " posicions de codi nbr: %08x\n"
-#: od-macho.c:1196
+#: od-macho.c:1191
#, c-format
msgid " code limit: %08x\n"
msgstr " límit de codi %08x\n"
-#: od-macho.c:1197
+#: od-macho.c:1192
#, c-format
msgid " hash size: %02x\n"
msgstr " mida del resum: %02x\n"
-#: od-macho.c:1198
+#: od-macho.c:1193
#, c-format
msgid " hash type: %02x (%s)\n"
msgstr " tipus de resum: %02x (%s)\n"
-#: od-macho.c:1201
+#: od-macho.c:1196
#, c-format
msgid " spare1: %02x\n"
msgstr " spare1: %02x\n"
-#: od-macho.c:1202
+#: od-macho.c:1197
#, c-format
msgid " page size: %02x\n"
msgstr " mida de la pàgina: %02x\n"
-#: od-macho.c:1203
+#: od-macho.c:1198
#, c-format
msgid " spare2: %08x\n"
msgstr " spare2: %08x\n"
-#: od-macho.c:1205
+#: od-macho.c:1200
#, c-format
msgid " scatter offset: %08x\n"
msgstr " posició de la dispersió: %08x\n"
-#: od-macho.c:1217
+#: od-macho.c:1212
#, c-format
msgid " [truncated block]\n"
msgstr "[bloc truncat]\n"
-#: od-macho.c:1225
+#: od-macho.c:1220
#, c-format
msgid " magic : %08x (%s)\n"
msgstr " màgic : %08x (%s)\n"
-#: od-macho.c:1227
+#: od-macho.c:1222
#, c-format
msgid " length: %08x\n"
msgstr " longitud: %08x\n"
-#: od-macho.c:1258
+#: od-macho.c:1253
msgid "cannot read code signature data"
msgstr "no es poden llegir les dades de la signatura del codi"
-#: od-macho.c:1286
+#: od-macho.c:1281
msgid "cannot read segment split info"
msgstr "no es pot llegir la informació de la divisió de segments"
-#: od-macho.c:1292
+#: od-macho.c:1287
msgid "segment split info is not nul terminated"
msgstr "la informació de divisió de segment no està terminada amb nul"
-#: od-macho.c:1300
+#: od-macho.c:1295
#, c-format
msgid " 32 bit pointers:\n"
msgstr "punters de 32 bit:\n"
-#: od-macho.c:1303
+#: od-macho.c:1298
#, c-format
msgid " 64 bit pointers:\n"
msgstr "punters de 64 bit:\n"
-#: od-macho.c:1306
+#: od-macho.c:1301
#, c-format
msgid " PPC hi-16:\n"
msgstr " PPC hi-16:\n"
-#: od-macho.c:1309
+#: od-macho.c:1304
#, c-format
msgid " Unhandled location type %u\n"
msgstr " Tipus de localització no gestionada %u\n"
-#: od-macho.c:1333
-#, fuzzy
-#| msgid "cannot read section headers"
+#: od-macho.c:1328
msgid "cannot read function starts"
-msgstr "no es poden llegir les capçaleres de la secció"
+msgstr "no es poden els començaments de les funcions"
-#: od-macho.c:1397
-#, fuzzy
-#| msgid "cannot read header"
+#: od-macho.c:1392
msgid "cannot read data_in_code"
-msgstr "no es pot llegir la capçalera"
+msgstr "no es pot llegir data_in_code"
-#: od-macho.c:1435
-#, fuzzy
-#| msgid "cannot read relocations"
+#: od-macho.c:1430
msgid "cannot read twolevel hints"
-msgstr "no es poden llegir les relocalitzacions"
+msgstr "no es poden llegir les pistes de dos nivells"
-#: od-macho.c:1503
-#, fuzzy
-#| msgid "cannot read symbol table"
+#: od-macho.c:1498
msgid "cannot read build tools"
-msgstr "no es pot llegir la taula de símbols"
+msgstr "no es poden llegir les eines de compilació"
+
+#: od-pe.c:215
+#, c-format
+msgid ""
+"For PE files:\n"
+" header Display the file header\n"
+" sections Display the section headers\n"
+msgstr ""
+"Per als fitxers PE:\n"
+" capçalera Mostra la capçalera del fitxer\n"
+" seccions Mostra les capçaleres de la secció\n"
+
+#: od-pe.c:268
+#, c-format
+msgid "unknown: 0x%x"
+msgstr "desconegut: 0x%x"
+
+#: od-pe.c:284
+#, c-format
+msgid ""
+"\n"
+" File header not present\n"
+msgstr ""
+"\n"
+" Capçalera absent de fitxer\n"
+
+#: od-pe.c:287
+#, c-format
+msgid ""
+"\n"
+" File Header (at offset 0):\n"
+msgstr ""
+"\n"
+" Capçalera de fitxer (a la posició 0):\n"
+
+#: od-pe.c:293
+#, c-format
+msgid "Bytes on Last Page:\t\t%d\n"
+msgstr "Bytes a l'última pàgina:\t\t%d\n"
+
+#: od-pe.c:296
+#, c-format
+msgid "Pages In File:\t\t\t%d\n"
+msgstr "Pàgines al fitxer:\t\t\t%d\n"
+
+#: od-pe.c:299
+#, c-format
+msgid "Relocations:\t\t\t%d\n"
+msgstr "Reubicacions:\t\t\t%d\n"
+
+#: od-pe.c:302
+#, c-format
+msgid "Size of header in paragraphs:\t%d\n"
+msgstr "Mida de la capçalera als paràgrafs:\t%d\n"
+
+#: od-pe.c:305
+#, c-format
+msgid "Min extra paragraphs needed:\t%d\n"
+msgstr "Calen paràgrafs addicionals mínim:\t%d\n"
+
+#: od-pe.c:308
+#, c-format
+msgid "Max extra paragraphs needed:\t%d\n"
+msgstr "Nombre màxim de paràgrafs addicionals necessaris:\t%d\n"
+
+#: od-pe.c:311
+#, c-format
+msgid "Initial (relative) SS value:\t%d\n"
+msgstr "Valor SS inicial (relatiu):\t%d\n"
+
+#: od-pe.c:314
+#, c-format
+msgid "Initial SP value:\t\t%d\n"
+msgstr "Valor inicial SP:\t\t%d\n"
+
+#: od-pe.c:317
+#, c-format
+msgid "Checksum:\t\t\t%#x\n"
+msgstr "Suma de verificació:\t\t\t%#x\n"
+
+#: od-pe.c:320
+#, c-format
+msgid "Initial IP value:\t\t%d\n"
+msgstr "Valor IP inicial:\t\t%d\n"
+
+#: od-pe.c:323
+#, c-format
+msgid "Initial (relative) CS value:\t%d\n"
+msgstr "Valor CS inicial (relatiu):\t%d\n"
+
+#: od-pe.c:326
+#, c-format
+msgid "File address of reloc table:\t%d\n"
+msgstr "Adreça del fitxer de la taula de relocalització:\t%d\n"
+
+#: od-pe.c:329
+#, c-format
+msgid "Overlay number:\t\t\t%d\n"
+msgstr "Nombre de superposició:\t\t\t%d\n"
+
+#: od-pe.c:332
+#, c-format
+msgid "OEM identifier:\t\t\t%d\n"
+msgstr "Identificador OEM:\t\t\t%d\n"
+
+#: od-pe.c:335
+#, c-format
+msgid "OEM information:\t\t%#x\n"
+msgstr "Informació OEM:\t\t%#x\n"
+
+#: od-pe.c:338
+#, c-format
+msgid "File address of new exe header:\t%#lx\n"
+msgstr "Adreça del fitxer de la capçalera exe nova:\t%#lx\n"
+
+#: od-pe.c:369
+#, c-format
+msgid "Stub message:\t\t\t"
+msgstr "Missatge d'estiba:\t\t\t"
+
+#: od-pe.c:383
+#, c-format
+msgid ""
+"\n"
+" Image Header (at offset %#lx):\n"
+msgstr ""
+"\n"
+" Capçalera d'imatge (a la posició %#lx):\n"
+
+#: od-pe.c:391
+#, c-format
+msgid "Machine Number:\t\t\t%#x\t\t- %s\n"
+msgstr "Nombre de màquinar:\t\t\t%#x\t\t- %s\n"
+
+#: od-pe.c:394
+#, c-format
+msgid "Number of sections:\t\t\\%d\n"
+msgstr "Nombre de seccions:\t\t\\%d\n"
+
+#: od-pe.c:397
+#, c-format
+msgid "Time/Date:\t\t\t%#08lx\t- "
+msgstr "Hora/Data:\t\t\t%#08lx\t- "
+
+#: od-pe.c:399 od-xcoff.c:422 readelf.c:21727
+#, c-format
+msgid "not set\n"
+msgstr "no establert\n"
+
+#: od-pe.c:407
+#, c-format
+msgid "Symbol table offset:\t\t%#08lx\n"
+msgstr "Posició de la taula de símbols:\t\t%#08lx\n"
+
+#: od-pe.c:409
+#, c-format
+msgid "Number of symbols:\t\t\\%ld\n"
+msgstr "Nombre de símbols:\t\t\\%ld\n"
+
+#: od-pe.c:413
+#, c-format
+msgid "Optional header size:\t\t%#x\n"
+msgstr "Mida opcional de capçalera:\t\t%#x\n"
+
+#: od-pe.c:416
+#, c-format
+msgid "Flags:\t\t\t\t0x%04x\t\t- "
+msgstr "Indicadors:\t\t\t\t0x%04x\t\t- "
+
+#: od-pe.c:424
+#, c-format
+msgid ""
+"\n"
+" Optional 64-bit AOUT Header (at offset %#lx):\n"
+msgstr ""
+"\n"
+" Capçalera 64-bit AOUT opcional (a la posició %#lx):\n"
+
+#: od-pe.c:431
+#, c-format
+msgid "error: unable to read AOUT and PE+ headers\n"
+msgstr "error: no es poden llegir les capçaleres AOUT i PE+\n"
+
+#: od-pe.c:435 od-pe.c:537
+#, c-format
+msgid "Magic:\t\t\t\t%x\t\t- %s\n"
+msgstr "Màgia:\t\t\t\t%x\t\t- %s\n"
+
+#: od-pe.c:436 od-pe.c:538 readelf.c:19576 readelf.c:19645
+msgid "Unknown"
+msgstr "Desconegut"
+
+#: od-pe.c:438 od-pe.c:540
+#, c-format
+msgid "Linker Version:\t\t\t%x\t\t- %u.%02u\n"
+msgstr "Versió de l'enllaçador:\t\t\t%x\t\t- %u.%02u\n"
+
+#: od-pe.c:443 od-pe.c:545
+#, c-format
+msgid "Text Size:\t\t\t%#lx\n"
+msgstr "Mida del text:\t\t\t%#lx\n"
+
+#: od-pe.c:445 od-pe.c:547
+#, c-format
+msgid "Data Size:\t\t\t%#lx\n"
+msgstr "Mida de les dades:\t\t\t%#lx\n"
+
+#: od-pe.c:447 od-pe.c:549
+#, c-format
+msgid "BSS Size:\t\t\t%#lx\n"
+msgstr "Mida BSS:\t\t\t%#lx\n"
+
+#: od-pe.c:449 od-pe.c:551
+#, c-format
+msgid "Entry Point:\t\t\t%#lx\n"
+msgstr "Punt d'entrada:\t\t\t%#lx\n"
+
+#: od-pe.c:451 od-pe.c:553
+#, c-format
+msgid "Text Start:\t\t\t%#lx\n"
+msgstr "Inici del text:\t\t\t%#lx\n"
+
+#. There is no data_start field in the PE+ standard header.
+#: od-pe.c:455
+#, c-format
+msgid ""
+"\n"
+" Optional PE+ Header (at offset %#lx):\n"
+msgstr ""
+"\n"
+" Capçalera opcional PE+ (a la posició %#lx):\n"
+
+#: od-pe.c:458 od-pe.c:571
+#, c-format
+msgid "Image Base:\t\t\t%#lx\n"
+msgstr "Base de la imatge:\t\t\t%#lx\n"
+
+#: od-pe.c:460 od-pe.c:573
+#, c-format
+msgid "Section Alignment:\t\t%#lx\n"
+msgstr "Alineació de la secció:\t\t%#lx\n"
+
+#: od-pe.c:462 od-pe.c:575
+#, c-format
+msgid "File Alignment:\t\t\t%#lx\n"
+msgstr "Alineació del fitxer:\t\t\t%#lx\n"
+
+#: od-pe.c:465 od-pe.c:578
+#, c-format
+msgid "Image Version:\t\t\t%lx\t\t- %u.%02u\n"
+msgstr "Versió de la imatgen:\t\t\t%lx\t\t- %u.%02u\n"
+
+#: od-pe.c:470 od-pe.c:583
+#, c-format
+msgid "Minimal Subsystem Version:\t%lx\t\t- %u.%02u\n"
+msgstr "Versió mínima del subsistema:\t%lx\t\t- %u.%02u\n"
+
+#: od-pe.c:475 od-pe.c:588
+#, c-format
+msgid "Minimal OS Version:\t\t%lx\t\t- %u.%02u\n"
+msgstr "Versió mínima del SO:\t\t%lx\t\t- %u.%02u\n"
+
+#: od-pe.c:480 od-pe.c:593
+#, c-format
+msgid "Overwrite OS Version:\t\t%lx\t\t- "
+msgstr "Sobreescriu la versió del SO:\t\t%lx\t\t- "
+
+#: od-pe.c:483 od-pe.c:596
+#, c-format
+msgid "(default)\n"
+msgstr "(per defecte)\n"
+
+#: od-pe.c:485 od-pe.c:598
+#, c-format
+msgid "%u.%02u (build %u, platform %s)\n"
+msgstr "%u.%02u (compilació %u, plataforma %s)\n"
+
+#: od-pe.c:491 od-pe.c:604
+#, c-format
+msgid "Size Of Image:\t\t\t%#lx\n"
+msgstr "Mida de la imatge:\t\t\t%#lx\n"
+
+#: od-pe.c:493 od-pe.c:606
+#, c-format
+msgid "Size Of Headers:\t\t%#lx\n"
+msgstr "Mida de les capçaleres:\t\t%#lx\n"
+
+#: od-pe.c:495 od-pe.c:608
+#, c-format
+msgid "CheckSum:\t\t\t%#lx\n"
+msgstr "Suma de comprovació:\t\t\t%#lx\n"
+
+#: od-pe.c:497 od-pe.c:610
+#, c-format
+msgid "Subsystem:\t\t\t%d\n"
+msgstr "Subsistema:\t\t\t%d\n"
+
+#. FIXME: Decode the characteristics.
+#: od-pe.c:500 od-pe.c:613
+#, c-format
+msgid "DllCharacteristics:\t\t%#x\n"
+msgstr "DllCharacteristics:\t\t%#x\n"
+
+#: od-pe.c:502 od-pe.c:615
+#, c-format
+msgid "Size Of Stack Reserve:\t\t%#lx\n"
+msgstr "Mida de la reserva de la pila\t%#lx\n"
+
+#: od-pe.c:504 od-pe.c:617
+#, c-format
+msgid "Size Of Stack Commit:\t\t%#lx\n"
+msgstr "Mida de la publicació de la pila:\t\t%#lx\n"
+
+#: od-pe.c:506 od-pe.c:619
+#, c-format
+msgid "Size Of Heap Reserve:\t\t%#lx\n"
+msgstr "Mida de la memòria en monticles:\t\t%#lx\n"
+
+#: od-pe.c:508 od-pe.c:621
+#, c-format
+msgid "Size Of Heap Commit:\t\t%#lx\n"
+msgstr "Mida de la publicació de la memòria en monticles:\t\t%#lx\n"
+
+#: od-pe.c:510 od-pe.c:623
+#, c-format
+msgid "Loader Flags:\t\t\t%#lx\n"
+msgstr "Indicadors del carregador:\t\t\t%#lx\n"
+
+#: od-pe.c:512 od-pe.c:625
+#, c-format
+msgid "Number Of Rva and Sizes:\t%#lx\n"
+msgstr "Nombre de Rva i Sizes:\t%#lx\n"
+
+#: od-pe.c:528
+#, c-format
+msgid ""
+"\n"
+" Optional 32-bit AOUT Header (at offset %#lx, size %d):\n"
+msgstr ""
+"\n"
+" Capçalera 32-bit AOUT opcional (a la posició %#lx, mida %d):\n"
+
+#: od-pe.c:533
+#, c-format
+msgid "error: unable to seek to/read AOUT header\n"
+msgstr "error: no es pot buscar a la capçalera to/read AOUT\n"
+
+#: od-pe.c:555
+#, c-format
+msgid "Data Start:\t\t\t%#lx\n"
+msgstr "Inici de dades:\t\t\t%#lx\n"
+
+#: od-pe.c:562
+#, c-format
+msgid ""
+"\n"
+" Optional PE Header (at offset %#lx):\n"
+msgstr ""
+"\n"
+" Capçalera PE opcional (a la posició %#lx):\n"
+
+#: od-pe.c:568
+#, c-format
+msgid "error: unable to seek to/read PE header\n"
+msgstr "error: no se pot buscar a la capçalera to/read PE\n"
-#: od-xcoff.c:77
+#: od-pe.c:633
+#, c-format
+msgid ""
+"\n"
+"Unsupported size of Optional Header\n"
+msgstr ""
+"\n"
+"Mida no admesa de la capçalera opcional\n"
+
+#: od-pe.c:636
+#, c-format
+msgid ""
+"\n"
+" Optional header not present\n"
+msgstr ""
+"\n"
+" Capçalera opcional absent\n"
+
+#: od-pe.c:645
+#, c-format
+msgid "Align: 8192 "
+msgstr "Alineació: 8192 "
+
+#: od-pe.c:647
+#, c-format
+msgid "Align: 4096 "
+msgstr "Alineació: 4096 "
+
+#: od-pe.c:649
+#, c-format
+msgid "Align: 2048 "
+msgstr "Alineació: 2048 "
+
+#: od-pe.c:651
+#, c-format
+msgid "Align: 1024 "
+msgstr "Alineació: 1024 "
+
+#: od-pe.c:653
+#, c-format
+msgid "Align: 512 "
+msgstr "Alineació: 512 "
+
+#: od-pe.c:655
+#, c-format
+msgid "Align: 256 "
+msgstr "Alineació: 256 "
+
+#: od-pe.c:657
+#, c-format
+msgid "Align: 128 "
+msgstr "Alineació: 128 "
+
+#: od-pe.c:659
+#, c-format
+msgid "Align: 64 "
+msgstr "Alineació: 64 "
+
+#: od-pe.c:661
+#, c-format
+msgid "Align: 32 "
+msgstr "Alineació: 32 "
+
+#: od-pe.c:663
+#, c-format
+msgid "Align: 16 "
+msgstr "Alineació: 16 "
+
+#: od-pe.c:665
+#, c-format
+msgid "Align: 8 "
+msgstr "Alineació: 8 "
+
+#: od-pe.c:667
+#, c-format
+msgid "Align: 4 "
+msgstr "Alineació: 4 "
+
+#: od-pe.c:669
+#, c-format
+msgid "Align: 2 "
+msgstr "Alineació: 2 "
+
+#: od-pe.c:671
+#, c-format
+msgid "Align: 1 "
+msgstr "Alineació: 1 "
+
+#: od-pe.c:673
+#, c-format
+msgid "Align: *unknown* "
+msgstr "Alineació: *desconeguda* "
+
+#: od-pe.c:693
+#, c-format
+msgid ""
+"\n"
+"Section headers (at offset 0x%08x):\n"
+msgstr ""
+"\n"
+"Capçaleres de secció (a la posició 0x%08x):\n"
+
+#: od-pe.c:697
+#, c-format
+msgid " No section headers\n"
+msgstr " No hi ha capçaleres de secció\n"
+
+#: od-pe.c:702
+msgid "cannot seek to section headers start\n"
+msgstr "no es pot buscar a la secció d'inici de les capçaleres\n"
+
+#: od-pe.c:720 od-xcoff.c:535 od-xcoff.c:547 od-xcoff.c:602
+msgid "cannot read section header"
+msgstr "no es pot llegir la capçalera de secció"
+
+#: od-pe.c:737
+#, c-format
+msgid " %08x "
+msgstr " %08x "
+
+#: od-pe.c:739
+#, c-format
+msgid ""
+"\n"
+" Flags: %08x: "
+msgstr ""
+"\n"
+" Senyaladors: %08x: "
+
+#: od-pe.c:779
+msgid "cannot seek to/read file header"
+msgstr "no es pot buscar a la capçalera del fitxer to/read"
+
+#: od-pe.c:799
+#, c-format
+msgid "cannot seek to/read image header at offset %#x"
+msgstr "no es pot buscar a la capçalera de la imatge to/read a la posició %#x"
+
+#: od-pe.c:822
+msgid "cannot seek to/read image header"
+msgstr "no es pot buscar a la caçalera de la imatge to/read"
+
+#: od-xcoff.c:78
#, c-format
msgid ""
"For XCOFF files:\n"
@@ -6600,7 +7867,7 @@ msgstr ""
" sections Mostra les capçaleres de les seccions\n"
" syms Mostra la taula dels símbols\n"
" relocs Mostra les entrades de relocalització\n"
-" lineno Mostra les entrades de números de línia\n"
+" lineno Mostra les entrades de nombres de línia\n"
" loader Mostra la secció del carregador\n"
" except Mostra la taula d'excepcions\n"
" typchk Mostra la secció type-check\n"
@@ -6618,11 +7885,6 @@ msgstr " seccions nbr: %d\n"
msgid " time and date: 0x%08x - "
msgstr " temps i data: 0x%08x - "
-#: od-xcoff.c:422 readelf.c:17664
-#, c-format
-msgid "not set\n"
-msgstr "no establert\n"
-
#: od-xcoff.c:429
#, c-format
msgid " symbols off: 0x%08x\n"
@@ -6672,10 +7934,6 @@ msgstr "Capçaleres de la secció (at %u+%u=0x%08x to 0x%08x):\n"
msgid " No section header\n"
msgstr " No hi ha capçalera de secció\n"
-#: od-xcoff.c:535 od-xcoff.c:547 od-xcoff.c:602
-msgid "cannot read section header"
-msgstr "no es pot llegir la capçalera de secció"
-
#: od-xcoff.c:561
#, c-format
msgid " Flags: %08x "
@@ -6773,11 +8031,11 @@ msgstr "no es pot llegir l'entrada de la relocalització"
#: od-xcoff.c:993
#, c-format
msgid "Line numbers for %s (%u)\n"
-msgstr "Números de línia per a %s (%u)\n"
+msgstr "Nombres de línia per a %s (%u)\n"
#: od-xcoff.c:996
msgid "cannot read line numbers"
-msgstr "no es poden llegir los números de línia"
+msgstr "no es poden llegir los nombres de línia"
#. Line number, symbol index and physical address.
#: od-xcoff.c:1000
@@ -6787,7 +8045,7 @@ msgstr "lineno symndx/paddr\n"
#: od-xcoff.c:1008
msgid "cannot read line number entry"
-msgstr "no es pot llegir l'entrada de números de línies"
+msgstr "no es pot llegir l'entrada de nombres de línies"
#: od-xcoff.c:1051
#, c-format
@@ -6913,7 +8171,7 @@ msgstr " senyaladors a %08x\n"
#: od-xcoff.c:1383
#, c-format
msgid " number of CTL anchors: %u\n"
-msgstr " número d'àncores CTL: %u\n"
+msgstr " nombre d'àncores CTL: %u\n"
#: od-xcoff.c:1402
#, c-format
@@ -6984,16 +8242,16 @@ msgstr "(TOCMAGIC: segments de text sols lectura i TOC)"
msgid "unknown magic"
msgstr "màgic desconegut"
-#: od-xcoff.c:1673 od-xcoff.c:1813
+#: od-xcoff.c:1673 od-xcoff.c:1815
#, c-format
msgid " Unhandled magic\n"
msgstr " Màgic no gestionat\n"
-#: od-xcoff.c:1737
+#: od-xcoff.c:1739
msgid "cannot read loader info table"
msgstr "no es pot llegir la taula de informació del carregador"
-#: od-xcoff.c:1769
+#: od-xcoff.c:1771
#, c-format
msgid ""
"\n"
@@ -7002,31 +8260,31 @@ msgstr ""
"\n"
"el bolcat ldinfo no està suportat en entorns de 32 bits\n"
-#: od-xcoff.c:1787
+#: od-xcoff.c:1789
msgid "cannot core read header"
msgstr "no es pot llegir la capçalera del nucli"
-#: od-xcoff.c:1794
+#: od-xcoff.c:1796
#, c-format
msgid "Core header:\n"
msgstr "Capçalera del nucli:\n"
-#: od-xcoff.c:1795
+#: od-xcoff.c:1797
#, c-format
msgid " version: 0x%08x "
msgstr " versió: 0x%08x "
-#: od-xcoff.c:1799
+#: od-xcoff.c:1801
#, c-format
msgid "(dumpx format - aix4.3 / 32 bits)"
msgstr "(format dumpx - aix4.3 / 32 bits)"
-#: od-xcoff.c:1802
+#: od-xcoff.c:1804
#, c-format
msgid "(dumpxx format - aix5.0 / 64 bits)"
msgstr "(format dumpxx - aix5.0 / 64 bits)"
-#: od-xcoff.c:1805
+#: od-xcoff.c:1807
#, c-format
msgid "unknown format"
msgstr "format desconegut"
@@ -7035,583 +8293,890 @@ msgstr "format desconegut"
msgid "invalid value specified for pragma code_page.\n"
msgstr "s'ha especificat un valor no vàlid per a pragma code_page.\n"
-#: rdcoff.c:116
-#, c-format
-msgid "Excessively large slot index: %lx"
-msgstr ""
-
-#: rdcoff.c:202
+#: rdcoff.c:172
#, c-format
msgid "parse_coff_type: Bad type code 0x%x"
msgstr "parse_coff_type: Codi de tipus dolent 0x%x"
-#: rdcoff.c:410 rdcoff.c:517 rdcoff.c:707
+#: rdcoff.c:353 rdcoff.c:467 rdcoff.c:661
#, c-format
msgid "bfd_coff_get_syment failed: %s"
msgstr "ha fallat bfd_coff_get_syment: %s"
-#: rdcoff.c:427 rdcoff.c:727
+#: rdcoff.c:370 rdcoff.c:681
#, c-format
msgid "bfd_coff_get_auxent failed: %s"
msgstr "ha fallat bfd_coff_get_auxent: %s"
-#: rdcoff.c:794
+#: rdcoff.c:748
#, c-format
msgid "%ld: .bf without preceding function"
msgstr "%ld: .bf sense funció que precedeix"
-#: rdcoff.c:844
+#: rdcoff.c:798
#, c-format
msgid "%ld: unexpected .ef\n"
msgstr "%ld: .ef no esperat\n"
-#: rddbg.c:80
+#: rddbg.c:84
#, c-format
msgid "%s: no recognized debugging information"
msgstr "%s: informació de depuració no reconeguda"
-#: rddbg.c:196
+#: rddbg.c:200
#, c-format
msgid "%s: %s: stab entry %ld is corrupt, strx = 0x%x, type = %d\n"
-msgstr ""
+msgstr "%s: %s: l'entrada %ld de la pestanya està malmesa, strx = 0x%x, tipus = %d\n"
-#: rddbg.c:220
+#: rddbg.c:224
#, c-format
msgid "%s: %s: stab entry %ld is corrupt\n"
-msgstr ""
+msgstr "%s: %s: l'entrada stab %ld està malmesa\n"
-#: rddbg.c:391
+#: rddbg.c:388
#, c-format
msgid "Last stabs entries before error:\n"
msgstr "Últimes entrades stabs abans de l'error:\n"
-#: readelf.c:307
-msgid "<none>"
-msgstr "<cap>"
-
-#: readelf.c:308
-#, fuzzy
-#| msgid " (no strings):\n"
-msgid "<no-strings>"
-msgstr " (no hi cadenes de caràcters):\n"
+#: readelf.c:509
+#, c-format
+msgid "Size overflow prevents reading %<PRIu64> elements of size %<PRIu64> for %s\n"
+msgstr "El desbordament de mida impedeix llegir %<PRIu64> elements de mida %<PRIu64> per a %s\n"
-#: readelf.c:385
+#: readelf.c:522
#, c-format
-msgid "Size truncation prevents reading %s elements of size %s for %s\n"
-msgstr ""
+msgid "Reading %<PRIu64> bytes extends past end of file for %s\n"
+msgstr "S'està llegint %<PRIu64> bytes s'estén més enllà del final del fitxer per a %s\n"
-#: readelf.c:395
+#: readelf.c:531
#, c-format
-msgid "Size overflow prevents reading %s elements of size %s for %s\n"
-msgstr ""
+msgid "Unable to seek to %#<PRIx64> for %s\n"
+msgstr "No es pot buscar fins a %#<PRIx64> per a %s\n"
-#: readelf.c:407
+#: readelf.c:545
#, c-format
-msgid "Reading %s bytes extends past end of file for %s\n"
-msgstr ""
+msgid "Out of memory allocating %<PRIu64> bytes for %s\n"
+msgstr "Memòria exhaurida quan s'estava assignant %#<PRIu64> bytes per a %s\n"
-#: readelf.c:415
+#: readelf.c:556
#, c-format
-msgid "Unable to seek to 0x%lx for %s\n"
-msgstr "No es pot buscar fins a 0x%lx per a %s\n"
+msgid "Unable to read in %<PRIu64> bytes of %s\n"
+msgstr "No es pot llegir a %#<PRIx64> bytes de %s\n"
-#: readelf.c:431
-#, fuzzy, c-format
-#| msgid "Out of memory allocating 0x%lx bytes for %s\n"
-msgid "Out of memory allocating %s bytes for %s\n"
-msgstr "Memòria exhaurida quan s'estava assignant 0x%lx bytes per a %s\n"
+#: readelf.c:974
+msgid "<internal error>"
+msgstr "<error intern>"
-#: readelf.c:442
-#, fuzzy, c-format
-#| msgid "Unable to read in 0x%lx bytes of %s\n"
-msgid "Unable to read in %s bytes of %s\n"
-msgstr "No es pot llegir a 0x%lx bytes de %s\n"
+#: readelf.c:976
+msgid "<none>"
+msgstr "<cap>"
+
+#: readelf.c:978
+msgid "<no-strings>"
+msgstr "<no hi cadenes de caràcters>"
-#: readelf.c:884
+#: readelf.c:1073
+#, c-format
+msgid "BAD[0x%lx]"
+msgstr "DOLENT[0x%lx]"
+
+#: readelf.c:1315
msgid "Don't know about relocations on this machine architecture\n"
msgstr "No hi ha informació sobre relocalitzacions a aquesta arquitectura de màquina\n"
-#: readelf.c:911 readelf.c:1016
+#: readelf.c:1342 readelf.c:1442
msgid "32-bit relocation data"
msgstr "Dades de relocalització 32-bit"
-#: readelf.c:923 readelf.c:953 readelf.c:1027 readelf.c:1056
+#: readelf.c:1354 readelf.c:1384 readelf.c:1453 readelf.c:1482
msgid "out of memory parsing relocs\n"
msgstr "memòria exhaurida quan s'estaven analitzant les relocalitzacions\n"
-#: readelf.c:941 readelf.c:1045
+#: readelf.c:1372 readelf.c:1471
msgid "64-bit relocation data"
msgstr "dades de relocalització 64-bit"
-#: readelf.c:1175
+#: readelf.c:1801 readelf.c:1868
+msgid "RELR relocation data"
+msgstr "Dades de relocalització RELR"
+
+#: readelf.c:1864
+msgid "Unexpected entsize for RELR section\n"
+msgstr "entsize inesperat per a la secció RELR\n"
+
+#: readelf.c:1889
+#, c-format
+msgid "Index: Entry Address Symbolic Address\n"
+msgstr "Ãndex: Entrada Adreça Adreça simbólica\n"
+
+#: readelf.c:1891
+#, c-format
+msgid "Index: Entry Address Symbolic Address\n"
+msgstr "Ãndex: Entrada Addreça Adreça simbòlica\n"
+
+#. We assume that there will never be more than 9999 entries.
+#: readelf.c:1903
+#, c-format
+msgid "%04u: "
+msgstr "%04u: "
+
+#: readelf.c:1925
+msgid "Unusual RELR bitmap - no previous entry to set the base address\n"
+msgstr "Mapa de bits RELR no habitual - no hi ha cap entrada anterior per establir l'adreça base\n"
+
+#: readelf.c:1939
+#, c-format
+msgid ""
+"\n"
+"%*s "
+msgstr ""
+"\n"
+"%*s "
+
+#: readelf.c:1995
#, c-format
msgid " Offset Info Type Sym. Value Symbol's Name + Addend\n"
msgstr " Posició Info Tipus Valor Sim. Nom símbol + sumand\n"
-#: readelf.c:1177
+#: readelf.c:1997
#, c-format
msgid " Offset Info Type Sym.Value Sym. Name + Addend\n"
msgstr " Posició Info Tips Valor Sim. Nom símbol + sumand\n"
-#: readelf.c:1182
+#: readelf.c:2002
#, c-format
msgid " Offset Info Type Sym. Value Symbol's Name\n"
msgstr " Posició Info Tipus Valor Sim. Nom Símbol\n"
-#: readelf.c:1184
+#: readelf.c:2004
#, c-format
msgid " Offset Info Type Sym.Value Sym. Name\n"
msgstr "Posició Info Tipus Valor Sim. Nom Símbol\n"
-#: readelf.c:1192
+#: readelf.c:2012
#, c-format
msgid " Offset Info Type Symbol's Value Symbol's Name + Addend\n"
msgstr " Posició Info Tipus Valor Símbol Nom Símbol + Sumand\n"
-#: readelf.c:1194
+#: readelf.c:2014
#, c-format
msgid " Offset Info Type Sym. Value Sym. Name + Addend\n"
msgstr " Posició Info Tipus Valor Sim. Nom Símbol + Sumand\n"
-#: readelf.c:1199
+#: readelf.c:2019
#, c-format
msgid " Offset Info Type Symbol's Value Symbol's Name\n"
msgstr " Posició Info Tipus Valor Símbol Nom Símbol\n"
-#: readelf.c:1201
+#: readelf.c:2021
#, c-format
msgid " Offset Info Type Sym. Value Sym. Name\n"
msgstr " Posició Info Tipus Valor Símbol Nom Símbol\n"
-#: readelf.c:1586 readelf.c:1776 readelf.c:1784
+#: readelf.c:2401 readelf.c:2560 readelf.c:2568
#, c-format
msgid "unrecognized: %-7lx"
msgstr "no reconegut: %-7lx"
-#: readelf.c:1612
+#: readelf.c:2427
#, c-format
-msgid "<unknown addend: %lx>"
-msgstr "<sumand desconegut: %lx>"
+msgid "<unknown addend: %<PRIx64>>"
+msgstr "<sumand desconegut: %<PRIx64>>"
-#: readelf.c:1621
-#, fuzzy, c-format
-#| msgid " bad symbol index: %08lx"
-msgid " bad symbol index: %08lx in reloc"
-msgstr " índex de símbol dolent: %08lx"
+#: readelf.c:2436
+#, c-format
+msgid " bad symbol index: %08lx in reloc\n"
+msgstr " índex de símbol dolent: %08lx a reloc\n"
-#: readelf.c:1722
+#: readelf.c:2506
#, c-format
msgid "<string table index: %3ld>"
msgstr "<índex de taula de cadena de caràcters: %3ld>"
-#: readelf.c:1725
+#: readelf.c:2509
#, c-format
-msgid "<corrupt string table index: %3ld>"
-msgstr "<índex corrupte de taula de cadena de caràcters: %3ld>"
+msgid "<corrupt string table index: %3ld>\n"
+msgstr "<índex malmès de taula de cadena de caràcters: %3ld>\n"
-#: readelf.c:2211
+#: readelf.c:3048
#, c-format
msgid "Processor Specific: %lx"
msgstr "Específic del processador: %lx"
-#: readelf.c:2238
+#: readelf.c:3075
#, c-format
msgid "Operating System specific: %lx"
msgstr "Específic del sistema operatiu. %lx"
-#: readelf.c:2242 readelf.c:4008
+#: readelf.c:3079 readelf.c:5580
#, c-format
msgid "<unknown>: %lx"
msgstr "<desconegut>: %lx"
-#: readelf.c:2255
+#: readelf.c:3179
msgid "NONE (None)"
msgstr "CAP (cap)"
-#: readelf.c:2256
+#: readelf.c:3180
msgid "REL (Relocatable file)"
msgstr "REL (Fitxer reubicable)"
-#: readelf.c:2257
+#: readelf.c:3181
msgid "EXEC (Executable file)"
msgstr "EXEC (Fitxer executable)"
-#: readelf.c:2258
+#: readelf.c:3184
+msgid "DYN (Position-Independent Executable file)"
+msgstr "DYN (Fitxer executable independent de la posició)"
+
+#: readelf.c:3186
msgid "DYN (Shared object file)"
msgstr "DYN (Fitxer objecte compartit)"
-#: readelf.c:2259
+#: readelf.c:3187
msgid "CORE (Core file)"
msgstr "CORE (Fitxer de nucli)"
-#: readelf.c:2263
+#: readelf.c:3191
#, c-format
msgid "Processor Specific: (%x)"
msgstr "Específic del processador: (%x)"
-#: readelf.c:2265
+#: readelf.c:3193
#, c-format
msgid "OS Specific: (%x)"
msgstr "Específic de SO: (%x)"
-#: readelf.c:2267
+#: readelf.c:3195
#, c-format
msgid "<unknown>: %x"
msgstr "<desconegut>: %x"
#. Please keep this switch table sorted by increasing EM_ value.
#. 0
-#: readelf.c:2281 readelf.c:15773 readelf.c:15784
+#: readelf.c:3209 readelf.c:19574 readelf.c:19585
msgid "None"
msgstr "Cap"
-#: readelf.c:2513
+#: readelf.c:3457
#, c-format
msgid "<unknown>: 0x%x"
msgstr "<desconegut>: 0x%x"
-#: readelf.c:2799
+#: readelf.c:3740
msgid ", <unknown>"
msgstr ", <desconegut>"
-#: readelf.c:3168 readelf.c:9685
-msgid "unknown"
-msgstr "desconegut"
+#: readelf.c:3907
+#, c-format
+msgid "Unrecognised IA64 VMS Command Code: %x\n"
+msgstr "Codi d'ordre VMS IA64 no reconegut: %x\n"
-#: readelf.c:3169
+#: readelf.c:3944
msgid "unknown mac"
msgstr "mac desconegut"
-#: readelf.c:3237
-#, fuzzy
-#| msgid "unknown BB type"
+#: readelf.c:4028
msgid ", <unknown MeP cpu type>"
-msgstr "tipus BB desconegut"
+msgstr ", <tipus de cpu MeP desconegut>"
-#: readelf.c:3247
-#, fuzzy
-#| msgid "unknown BB type"
+#: readelf.c:4049
msgid "<unknown MeP copro type>"
-msgstr "tipus BB desconegut"
+msgstr "<tipus MeP copro desconegut>"
-#: readelf.c:3258
-#, fuzzy, c-format
-#| msgid " <unknown tag %d>: "
+#: readelf.c:4061 readelf.c:5010
+#, c-format
msgid ", unknown flags bits: %#x"
-msgstr "<Senyalador desconegut %d>: "
-
-#: readelf.c:3267
-msgid ", relocatable"
-msgstr ", reubicable"
+msgstr ", bits d'indicadors desconeguts: %#x"
-#: readelf.c:3270
-msgid ", relocatable-lib"
-msgstr ", bib-reubicable"
-
-#: readelf.c:3352
-msgid ", unknown v850 architecture variant"
-msgstr "variant d'arquitectura v850 desconeguda"
-
-#: readelf.c:3420
+#: readelf.c:4170
msgid ", unknown CPU"
msgstr ", CPU desconeguda"
-#: readelf.c:3435
+#: readelf.c:4195
msgid ", unknown ABI"
msgstr ", ABI desconeguda"
-#: readelf.c:3460 readelf.c:3531
+#: readelf.c:4244 readelf.c:4691
msgid ", unknown ISA"
msgstr ", ISA desconeguda"
-#: readelf.c:3641
-#, c-format
-msgid "Unrecognised IA64 VMS Command Code: %x\n"
-msgstr ""
-
-#: readelf.c:3707
+#: readelf.c:4253
msgid ": architecture variant: "
msgstr ": variant d'arquitectura: "
-#: readelf.c:3726
+#: readelf.c:4302
msgid ": unknown"
msgstr ": desconegut"
-#: readelf.c:3730
+#: readelf.c:4307
msgid ": unknown extra flag bits also present"
msgstr ": bits desconeguts de senyaladors extra també estan presents"
-#: readelf.c:3780
+#: readelf.c:4830
+msgid ", unknown v850 architecture variant"
+msgstr "variant d'arquitectura v850 desconeguda"
+
+#: readelf.c:4863
+msgid ", unknown"
+msgstr ", desconegut"
+
+#: readelf.c:4929
+#, c-format
+msgid ", <unknown AMDGPU GPU type: %#x>"
+msgstr ", <tipus AMDGPU GPU desconegut: %#x>"
+
+#: readelf.c:4977
+#, c-format
+msgid ", <unknown xnack value: %#x>"
+msgstr ", <valor xnack desconegut: %#x>"
+
+#: readelf.c:5002
+#, c-format
+msgid ", <unknown sramecc value: %#x>"
+msgstr ", <valor sramecc desconegut: %#x>"
+
+#: readelf.c:5075
+msgid ", relocatable"
+msgstr ", reubicable"
+
+#: readelf.c:5078
+msgid ", relocatable-lib"
+msgstr ", bib-reubicable"
+
+#: readelf.c:5279
msgid "Standalone App"
msgstr "Aplicació independent"
-#: readelf.c:3789
+#: readelf.c:5288
msgid "Bare-metal C6000"
msgstr "C6000 metall nu"
-#: readelf.c:3799 readelf.c:4733 readelf.c:4749 readelf.c:17138
-#: readelf.c:17235 readelf.c:17266 readelf.c:17321
+#: readelf.c:5298 readelf.c:6732 readelf.c:6748 readelf.c:21014 readelf.c:21114
+#: readelf.c:21161 readelf.c:21198 readelf.c:21259 readelf.c:21290
+#: readelf.c:21312
#, c-format
msgid "<unknown: %x>"
msgstr "<desconegut: %x>"
#. This message is probably going to be displayed in a 15
#. character wide field, so put the hex value first.
-#: readelf.c:4363
+#: readelf.c:6075
#, c-format
msgid "%08x: <unknown>"
msgstr "%08x: <desconegut>"
-#: readelf.c:4421
+#: readelf.c:6167
#, c-format
msgid "Usage: readelf <option(s)> elf-file(s)\n"
msgstr "Forma d'ús: readelf <opció(ns> fitxer(s)-elf\n"
-#: readelf.c:4422
+#: readelf.c:6168
#, c-format
msgid " Display information about the contents of ELF format files\n"
msgstr "Mostra la informació sobre els continguts dels fitxers en format ELF\n"
-#: readelf.c:4423
-#, fuzzy, c-format
-#| msgid ""
-#| " Options are:\n"
-#| " -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
-#| " -h --file-header Display the ELF file header\n"
-#| " -l --program-headers Display the program headers\n"
-#| " --segments An alias for --program-headers\n"
-#| " -S --section-headers Display the sections' header\n"
-#| " --sections An alias for --section-headers\n"
-#| " -g --section-groups Display the section groups\n"
-#| " -t --section-details Display the section details\n"
-#| " -e --headers Equivalent to: -h -l -S\n"
-#| " -s --syms Display the symbol table\n"
-#| " --symbols An alias for --syms\n"
-#| " --dyn-syms Display the dynamic symbol table\n"
-#| " -n --notes Display the core notes (if present)\n"
-#| " -r --relocs Display the relocations (if present)\n"
-#| " -u --unwind Display the unwind info (if present)\n"
-#| " -d --dynamic Display the dynamic section (if present)\n"
-#| " -V --version-info Display the version sections (if present)\n"
-#| " -A --arch-specific Display architecture specific information (if any)\n"
-#| " -c --archive-index Display the symbol/file index in an archive\n"
-#| " -D --use-dynamic Use the dynamic section info when displaying symbols\n"
-#| " -x --hex-dump=<number|name>\n"
-#| " Dump the contents of section <number|name> as bytes\n"
-#| " -p --string-dump=<number|name>\n"
-#| " Dump the contents of section <number|name> as strings\n"
-#| " -R --relocated-dump=<number|name>\n"
-#| " Dump the contents of section <number|name> as relocated bytes\n"
-#| " -w[lLiaprmfFsoRt] or\n"
-#| " --debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n"
-#| " =frames-interp,=str,=loc,=Ranges,=pubtypes,\n"
-#| " =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n"
-#| " =addr,=cu_index]\n"
-#| " Display the contents of DWARF2 debug sections\n"
-msgid ""
-" Options are:\n"
-" -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
-" -h --file-header Display the ELF file header\n"
-" -l --program-headers Display the program headers\n"
-" --segments An alias for --program-headers\n"
-" -S --section-headers Display the sections' header\n"
-" --sections An alias for --section-headers\n"
-" -g --section-groups Display the section groups\n"
-" -t --section-details Display the section details\n"
-" -e --headers Equivalent to: -h -l -S\n"
-" -s --syms Display the symbol table\n"
-" --symbols An alias for --syms\n"
-" --dyn-syms Display the dynamic symbol table\n"
-" -n --notes Display the core notes (if present)\n"
-" -r --relocs Display the relocations (if present)\n"
-" -u --unwind Display the unwind info (if present)\n"
-" -d --dynamic Display the dynamic section (if present)\n"
-" -V --version-info Display the version sections (if present)\n"
-" -A --arch-specific Display architecture specific information (if any)\n"
-" -c --archive-index Display the symbol/file index in an archive\n"
-" -D --use-dynamic Use the dynamic section info when displaying symbols\n"
+#: readelf.c:6169
+#, c-format
+msgid " Options are:\n"
+msgstr " Les opcions són:\n"
+
+#: readelf.c:6170
+#, c-format
+msgid " -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
+msgstr " -a --all Equivalent a: -h -l -S -s -r -d -V -A -I\n"
+
+#: readelf.c:6172
+#, c-format
+msgid " -h --file-header Display the ELF file header\n"
+msgstr " -h --file-header Mostra la capçalera del fitxer ELF\n"
+
+#: readelf.c:6174
+#, c-format
+msgid " -l --program-headers Display the program headers\n"
+msgstr " -l --program-headers Mostra les capçaleres de programa\n"
+
+#: readelf.c:6176
+#, c-format
+msgid " --segments An alias for --program-headers\n"
+msgstr " --segments Un àlies per a --program-headers\n"
+
+#: readelf.c:6178
+#, c-format
+msgid " -S --section-headers Display the sections' header\n"
+msgstr " -S --section-headers Mostra la capçalera de les seccions\n"
+
+#: readelf.c:6180
+#, c-format
+msgid " --sections An alias for --section-headers\n"
+msgstr " --sections Un àlies per a --section-headers\n"
+
+#: readelf.c:6182
+#, c-format
+msgid " -g --section-groups Display the section groups\n"
+msgstr " -g --section-groups Mostra els grups de seccions\n"
+
+#: readelf.c:6184
+#, c-format
+msgid " -t --section-details Display the section details\n"
+msgstr " -t --section-details Mostra els detalls de la secció\n"
+
+#: readelf.c:6186
+#, c-format
+msgid " -e --headers Equivalent to: -h -l -S\n"
+msgstr " -e --headers Equivalent a: -h -l -S\n"
+
+#: readelf.c:6188
+#, c-format
+msgid " -s --syms Display the symbol table\n"
+msgstr " -s --syms Mostra la taula de símbols\n"
+
+#: readelf.c:6190
+#, c-format
+msgid " --symbols An alias for --syms\n"
+msgstr " --symbols Un àlies per a --syms\n"
+
+#: readelf.c:6192
+#, c-format
+msgid " --dyn-syms Display the dynamic symbol table\n"
+msgstr " --dyn-syms Mostra la taula de símbols dinàmics\n"
+
+#: readelf.c:6194
+#, c-format
+msgid " --lto-syms Display LTO symbol tables\n"
+msgstr " --lto-syms Mostra les taules des símbols LTO\n"
+
+#: readelf.c:6196
+#, c-format
+msgid ""
+" --sym-base=[0|8|10|16] \n"
+" Force base for symbol sizes. The options are \n"
+" mixed (the default), octal, decimal, hexadecimal.\n"
+msgstr ""
+" --sym-base=[0|8|10|16] \n"
+" Força la base per a mida de símbols. Les opcions són\n"
+" mixed (predeterminat), octal, decimal, hexadecimal.\n"
+
+#: readelf.c:6200
+#, c-format
+msgid " -C --demangle[=STYLE] Decode mangled/processed symbol names\n"
+msgstr " -C --demangle[STYLESTYLE] Descodifica els noms dels símbols mangled/processats\n"
+
+#: readelf.c:6204
+#, c-format
+msgid " --no-demangle Do not demangle low-level symbol names. (default)\n"
+msgstr " --no-demangle No decodifiquies els noms dels símbols de baix nivell. (predeterminat)\n"
+
+#: readelf.c:6206
+#, c-format
+msgid " --recurse-limit Enable a demangling recursion limit. (default)\n"
+msgstr " --recurse-limit Activa un límit de recursivitat de desmantell. (predeterminat)\n"
+
+#: readelf.c:6208
+#, c-format
+msgid " --no-recurse-limit Disable a demangling recursion limit\n"
+msgstr " --no-recurse-limit Desactiva un límit de recursivitat de la descodificació\n"
+
+#: readelf.c:6210
+#, c-format
+msgid ""
+" -U[dlexhi] --unicode=[default|locale|escape|hex|highlight|invalid]\n"
+" Display unicode characters as determined by the current locale\n"
+" (default), escape sequences, \"<hex sequences>\", highlighted\n"
+" escape sequences, or treat them as invalid and display as\n"
+" \"{hex sequences}\"\n"
+msgstr ""
+" -U[dlexhi] --unicode][default]locale]escape]hex]highlight]invalid]\n"
+" Mostra els caràcters unicode determinats per la configuració regional actual\n"
+" (predeterminat), seqüències d'escapament, «<hex sequences>», ressaltat\n"
+" escapa seqüències, o tracta-les com a no vàlides i mostra-les com a\n"
+" \"{hex sequences}\"\n"
+
+#: readelf.c:6216
+#, c-format
+msgid " -X --extra-sym-info Display extra information when showing symbols\n"
+msgstr " -X --extra-sym-info Mostra informació addicional en mostrar símbols\n"
+
+#: readelf.c:6218
+#, c-format
+msgid " --no-extra-sym-info Do not display extra information when showing symbols (default)\n"
+msgstr " --no-extra-sym-info No mostra informació addicional quan es mostren símbols (per defecte)\n"
+
+#: readelf.c:6220
+#, c-format
+msgid " -n --notes Display the contents of note sections (if present)\n"
+msgstr " -n --notes Mostra els continguts de les seccions de notes (si n'hi ha)\n"
+
+#: readelf.c:6222
+#, c-format
+msgid " -r --relocs Display the relocations (if present)\n"
+msgstr " -r --relocs Mostra les relocalitzacions (si n'hi ha)\n"
+
+#: readelf.c:6224
+#, c-format
+msgid " -u --unwind Display the unwind info (if present)\n"
+msgstr " -u --unwind Mostra la informació d'unwind (si n'hi ha)\n"
+
+#: readelf.c:6226
+#, c-format
+msgid " -d --dynamic Display the dynamic section (if present)\n"
+msgstr " -d --dynamic Mostra la secció dinàmica (si n'hi ha)\n"
+
+#: readelf.c:6228
+#, c-format
+msgid " -V --version-info Display the version sections (if present)\n"
+msgstr " -V --version-info Mostra les seccions de versió (si n'hi ha)\n"
+
+#: readelf.c:6230
+#, c-format
+msgid " -A --arch-specific Display architecture specific information (if any)\n"
+msgstr " -A --arch-specific Mostra informació específica de l'arquitectura (si n'hi ha)\n"
+
+#: readelf.c:6232
+#, c-format
+msgid " -c --archive-index Display the symbol/file index in an archive\n"
+msgstr " -c --archive-index Mostra l'índex de símbols/fitxers en un arxiu\n"
+
+#: readelf.c:6234
+#, c-format
+msgid " -D --use-dynamic Use the dynamic section info when displaying symbols\n"
+msgstr " -D --use-dynamic Usa la informació de la secció dinàmica quan es mostrin símbols\n"
+
+#: readelf.c:6236
+#, c-format
+msgid ""
+" -L --lint|--enable-checks\n"
+" Display warning messages for possible problems\n"
+msgstr ""
+" -L --lints--enable-checks\n"
+" Mostra els missatges d'avís per a possibles problemes\n"
+
+#: readelf.c:6239
+#, c-format
+msgid ""
" -x --hex-dump=<number|name>\n"
" Dump the contents of section <number|name> as bytes\n"
+msgstr ""
+" -x --hex-dump=<nombre|nom>\n"
+" Bolca els onsinguts de la secció <nombre|nom> com a bytes\n"
+
+#: readelf.c:6242
+#, c-format
+msgid ""
" -p --string-dump=<number|name>\n"
" Dump the contents of section <number|name> as strings\n"
+msgstr ""
+" -p --string-dump=<nombre|nom>\n"
+" Bolca els continguts de la secció <nombre|nom> com a cadenes de caràcters\n"
+
+#: readelf.c:6245
+#, c-format
+msgid ""
" -R --relocated-dump=<number|name>\n"
-" Dump the contents of section <number|name> as relocated bytes\n"
-" -z --decompress Decompress section before dumping it\n"
-" -w[lLiaprmfFsoRtUuTgAckK] or\n"
-" --debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n"
-" =frames-interp,=str,=loc,=Ranges,=pubtypes,\n"
-" =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n"
-" =addr,=cu_index,=links,=follow-links]\n"
+" Dump the relocated contents of section <number|name>\n"
+msgstr ""
+" -R --relocated-dump=<nombre|nom>\n"
+" Bolca els continguts reubicats de la secció <nombre|nom>\n"
+
+#: readelf.c:6248
+#, c-format
+msgid " -z --decompress Decompress section before dumping it\n"
+msgstr " -z --decompress Descomprimeix la secció abans d'eliminar-la\n"
+
+#: readelf.c:6250
+#, c-format
+msgid ""
+"\n"
+" -j --display-section=<name|number>\n"
+"\t\t Display the contents of the indicated section. Can be repeated\n"
+msgstr ""
+"\n"
+" -j --display-section=<nom|nombre>\n"
+"\t\t Mostra els continguts de la secció indicada. Pot repetir-se\n"
+
+#: readelf.c:6253
+#, c-format
+msgid ""
+" -w --debug-dump[a/=abbrev, A/=addr, r/=aranges, c/=cu_index, L/=decodedline,\n"
+" f/=frames, F/=frames-interp, g/=gdb_index, i/=info, o/=loc,\n"
+" m/=macro, p/=pubnames, t/=pubtypes, R/=Ranges, l/=rawline,\n"
+" s/=str, O/=str-offsets, u/=trace_abbrev, T/=trace_aranges,\n"
+" U/=trace_info]\n"
" Display the contents of DWARF debug sections\n"
msgstr ""
-" Les opcions són:\n"
-" -a --all Equivalent a: -h -l -S -s -r -d -V -A -I\n"
-" -h --file-header Mostra la capçalera del fitxer ELF\n"
-" -l --program-headers Mostra les capçaleres del programa\n"
-" --segments Un àlias per a --program-headers\n"
-" -S --section-headers Mostra la capçalera de la secció\n"
-" --sections Un àlias per a --section-headers\n"
-" -g --section-groups Mostra els grups de la secció\n"
-" -t --section-details Mostra els detalls de la secció\n"
-" -e --headers Equivalent a: -h -l -S\n"
-" -s --syms Mostra la taula de símbols\n"
-" --symbols Un àlias per a --syms\n"
-" --dyn-syms Mostra la taula de símbols dinàmics\n"
-" -n --notes Mostra les notes del nucli (si n'hi ha)\n"
-" -r --relocs Mostra les relocalitzacios (si n'hi ha)\n"
-" -u --unwind Mostra la informació genèrica (si n'hi ha)\n"
-" -d --dynamic Mostra la secció dinàmica (si n'hi ha)\n"
-" -V --version-info Mostra les versions de la secció (si n'hi ha)\n"
-" -A --arch-specific Mostra la informació específica de l'arquitectura (si \n"
-" n'hi ha)\n"
-" -c --archive-index Mostra l'índex del sìmbol/fitxer a un fitxer\n"
-" -D --use-dynamic Usa la informació dinàmica de la secció quan mostris \n"
-" els símbols\n"
-" -x --hex-dump=<número|nom>\n"
-" Bolca els continguts de la secció <número|nom> com\n"
-" a bytes\n"
-" -p --string-dump=<número|nom>\n"
-" Bolca els continguts de la secció <número|nom> com \n"
-" a cadena de caràcters\n"
-" -R --relocated-dump=<número|nom>\n"
-" Bolca els continguts de la secció <número|nom> com a\n"
-" bytes reubicables\n"
-" -w[lLiaprmfFsoRt] or\n"
-" --debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n"
-" =frames-interp,=str,=loc,=Ranges,=pubtypes,\n"
-" =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n"
-" =addr,=cu_index]\n"
-" Mostra els continguts de les seccions de depuració\n"
-" DWARF2\n"
-
-#: readelf.c:4457
-#, c-format
-msgid ""
-" --dwarf-depth=N Do not display DIEs at depth N or greater\n"
-" --dwarf-start=N Display DIEs starting with N, at the same depth\n"
-" or deeper\n"
-msgstr ""
-" --dwarf-depth=N No mostris DIEs a una profunditat N o més gran\n"
-" --dwarf-start=N Mostra DIEs que comencen amb N, a la mateixa\n"
-" profunditat o més gran\n"
-
-#: readelf.c:4462
+" -w --debug-dump[a/=abbrev, A/=addr, r/=aranges, c/=cu_index, L/=decodedline,\n"
+" f/=frames, F/=frames-interp, g/=gdb_index, i/=info, o/=loc,\n"
+" m/=macro, p/=pubnames, t/=pubtypes, R/=Ranges, l/=rawline,\n"
+" s/=str, O/=str-offsets, u/=trace_abbrev, T/=trace_aranges,\n"
+" U/=trace_info]\n"
+" Mostra els continguts de les seccions de depuració DWARF\n"
+
+#: readelf.c:6260
#, c-format
msgid ""
-" -i --instruction-dump=<number|name>\n"
-" Disassemble the contents of section <number|name>\n"
+" -wk --debug-dump=links Display the contents of sections that link to separate\n"
+" debuginfo files\n"
msgstr ""
-" -i --instruction-dump=<número|nom>\n"
-" Desassembla els continguts de la secció <número|nom>\n"
+" -wk --debug-dumpdlinks Mostra el contingut de les seccions que enllacen per separar\n"
+" fitxers debuginfo\n"
-#: readelf.c:4466
+#: readelf.c:6263
#, c-format
msgid ""
-" -I --histogram Display histogram of bucket list lengths\n"
-" -W --wide Allow output width to exceed 80 characters\n"
-" @<file> Read options from <file>\n"
-" -H --help Display this information\n"
-" -v --version Display the version number of readelf\n"
+" -P --process-links Display the contents of non-debug sections in separate\n"
+" debuginfo files. (Implies -wK)\n"
msgstr ""
-" -I --histogram Mostra l'histograma de les longituds de llistes de \n"
-" cubells\n"
-" -W --wide Permet amplada de sotrida que excedeix 80 caràcters\n"
-" @<fitxer> Llegeix les opcions de <fitxer>\n"
-" -H --help Mostra aquesta informació\n"
-" -v --version Mostar el número de versió de readelf\n"
+" -P --process-links Mostra el contingut de les seccions que no són de depuració per separat\n"
+" fitxers debuginfo. (Implica -wK)\n"
+
+#: readelf.c:6267
+#, c-format
+msgid ""
+" -wK --debug-dump=follow-links\n"
+" Follow links to separate debug info files (default)\n"
+msgstr ""
+" -wK --debug-dumpsfollow-links\n"
+" Segueix els enllaços per separar els fitxers d'informació de depuració (predeterminat)\n"
+
+#: readelf.c:6270
+#, c-format
+msgid ""
+" -wN --debug-dump=no-follow-links\n"
+" Do not follow links to separate debug info files\n"
+msgstr ""
+" -wN --debug-dumpsno-follow-links\n"
+" No segueixis els enllaços per separar els fitxers d'informació de depuració\n"
+
+#: readelf.c:6274
+#, c-format
+msgid ""
+" -wK --debug-dump=follow-links\n"
+" Follow links to separate debug info files\n"
+msgstr ""
+" -wK --debug-dumpsfollow-links\n"
+" Segueix els enllaços per separar els fitxers d'informació de depuració\n"
+
+#: readelf.c:6277
+#, c-format
+msgid ""
+" -wN --debug-dump=no-follow-links\n"
+" Do not follow links to separate debug info files\n"
+" (default)\n"
+msgstr ""
+" -wN --debug-dumpsno-follow-links\n"
+" No segueixis els enllaços per separar els fitxers d'informació de depuració\n"
+" (predeterminat)\n"
+
+#: readelf.c:6283
+#, c-format
+msgid ""
+" -wD --debug-dump=use-debuginfod\n"
+" When following links, also query debuginfod servers (default)\n"
+msgstr ""
+" -wD --debug-dump=use-debuginfod\n"
+" En seguir enllaços, també consulta els servidors debuginfod (per defecte)\n"
+
+#: readelf.c:6286
+#, c-format
+msgid ""
+" -wE --debug-dump=do-not-use-debuginfod\n"
+" When following links, do not query debuginfod servers\n"
+msgstr ""
+" -wE --debug-dumpddo-not-use-debuginfod\n"
+" En seguir els enllaços, no consultar els servidors debuginfod\n"
-#: readelf.c:4495 readelf.c:4526 readelf.c:4530
+#: readelf.c:6290
+#, c-format
+msgid " --dwarf-depth=N Do not display DIEs at depth N or greater\n"
+msgstr " --dwarf-depth=N No mostris DIE a la profunditat N o més gran\n"
+
+#: readelf.c:6292
+#, c-format
+msgid " --dwarf-start=N Display DIEs starting at offset N\n"
+msgstr " --dwarf-start=N Mostra els DIE començant a la posició N\n"
+
+#: readelf.c:6295
+#, c-format
+msgid " --ctf=<number|name> Display CTF info from section <number|name>\n"
+msgstr " --ctf=<nombre|nom> Mostra la informació CTF de la secció <nombre|nom>\n"
+
+#: readelf.c:6297
+#, c-format
+msgid " --ctf-parent=<name> Use CTF archive member <name> as the CTF parent\n"
+msgstr " --ctf-parent=<om> Usa el membre <nom> de l'arxiu CTF com a pare CTF\n"
+
+#: readelf.c:6299
+#, c-format
+msgid ""
+" --ctf-symbols=<number|name>\n"
+" Use section <number|name> as the CTF external symtab\n"
+msgstr ""
+" --ctf-symbols=<nombre|nom>\n"
+" Usa la secció <nombre|nom> com el symtab extern CTF\n"
+
+#: readelf.c:6302
+#, c-format
+msgid ""
+" --ctf-strings=<number|name>\n"
+" Use section <number|name> as the CTF external strtab\n"
+msgstr ""
+" --ctf-strings=<nombre|nom>\n"
+" Usa la secció <nombre|nom> com el strtab extern CTF\n"
+
+#: readelf.c:6306
+#, c-format
+msgid " --sframe[=NAME] Display SFrame info from section NAME, (default '.sframe')\n"
+msgstr " --sframe[=NOM] Mostra la informació de l'SFrame des del NOM de la secció (per defecte «.sframe»)\n"
+
+#: readelf.c:6310
+#, c-format
+msgid ""
+" -i --instruction-dump=<number|name>\n"
+" Disassemble the contents of section <number|name>\n"
+msgstr ""
+" -i --instruction-dump=<nombre|nom>\n"
+" Desassembla els continguts de la secció <nombre|nom>\n"
+
+#: readelf.c:6314
+#, c-format
+msgid " -I --histogram Display histogram of bucket list lengths\n"
+msgstr " -I --histogram Mostra l'histograma de les longituds de la llista de contenidors\n"
+
+#: readelf.c:6316
+#, c-format
+msgid " -W --wide Allow output width to exceed 80 characters\n"
+msgstr " -W --wide Permet que l'amplada de sortida superi els 80 caràcters\n"
+
+#: readelf.c:6318
+#, c-format
+msgid " -T --silent-truncation If a symbol name is truncated, do not add [...] suffix\n"
+msgstr " -T --silent-truncation Si un nom de símbol està truncat, no afegeixis [...] sufix\n"
+
+#: readelf.c:6320
+#, c-format
+msgid " @<file> Read options from <file>\n"
+msgstr " @<fitxer> Llegeix les opcions de <fitxer>\n"
+
+#: readelf.c:6322
+#, c-format
+msgid " -H --help Display this information\n"
+msgstr " -H --help Mostra aquesta informació.\n"
+
+#: readelf.c:6324
+#, c-format
+msgid " -v --version Display the version number of readelf\n"
+msgstr " -v --version Mostra la versió de readelf\n"
+
+#: readelf.c:6350 readelf.c:6381 readelf.c:6385
msgid "Out of memory allocating dump request table.\n"
msgstr "S'ha exhaurit la memòria quan s'estava assignant la taula de demanda de bolcat\n"
-#: readelf.c:4707
+#: readelf.c:6655
+msgid "Missing arg to -U/--unicode"
+msgstr "Falta l'argument a -U/--unicode"
+
+#: readelf.c:6694
#, c-format
msgid "Invalid option '-%c'\n"
msgstr "Opció no vàlida '-%c'\n"
-#: readelf.c:4729 readelf.c:4745 readelf.c:10382
+#: readelf.c:6728 readelf.c:6744 readelf.c:13134
msgid "none"
msgstr "cap"
-#: readelf.c:4746
+#: readelf.c:6745
msgid "2's complement, little endian"
msgstr "complement de 2, endian petit"
-#: readelf.c:4747
+#: readelf.c:6746
msgid "2's complement, big endian"
msgstr "complement de 2, endian gran"
-#: readelf.c:4767
+#: readelf.c:6779
+msgid "This is a LLVM bitcode file - try using llvm-bcanalyzer\n"
+msgstr "Aquest és un fitxer de codi de bits LLVM - proveu amb llvm-bcanalyzer\n"
+
+#: readelf.c:6780
+msgid "This is a LLVM bitcode file - try extracting and then using llvm-bcanalyzer\n"
+msgstr "Aquest és un fitxer de codi de bits LLVM - proveu d'extreure i després utilitzar llvm-bcanalyzer\n"
+
+#: readelf.c:6783
+msgid "This is a GO binary file - try using 'go tool objdump' or 'go tool nm'\n"
+msgstr "Aquest és un fitxer binari GO - proveu d'utilitzar «go tool objdump» o «go tool nm»\n"
+
+#: readelf.c:6807
msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
msgstr "No és un fitxer ELF - té els bytes màgics incorrectes al principi\n"
-#: readelf.c:4777
+#: readelf.c:6829
+#, c-format
+msgid "ELF Header in linked file '%s':\n"
+msgstr "Capçalera ELF al fitxer enllaçat «%s»:\n"
+
+#: readelf.c:6832
#, c-format
msgid "ELF Header:\n"
msgstr "Capçalera ELF:\n"
-#: readelf.c:4778
+#: readelf.c:6833
#, c-format
msgid " Magic: "
msgstr " Màgic: "
-#: readelf.c:4782
+#: readelf.c:6837
#, c-format
msgid " Class: %s\n"
msgstr " Classe: %s\n"
-#: readelf.c:4784
+#: readelf.c:6839
#, c-format
msgid " Data: %s\n"
msgstr " Dades: %s\n"
-#: readelf.c:4786
-#, fuzzy, c-format
-#| msgid " Version: %d %s\n"
+#: readelf.c:6841
+#, c-format
msgid " Version: %d%s\n"
-msgstr " Versió: %d %s\n"
+msgstr " Versió: %d%s\n"
-#: readelf.c:4789
+#: readelf.c:6844
msgid " (current)"
-msgstr ""
+msgstr "(actual)"
-#: readelf.c:4791
-#, fuzzy
-#| msgid ", <unknown>"
+#: readelf.c:6846
msgid " <unknown>"
-msgstr ", <desconegut>"
+msgstr " <desconegut>"
-#: readelf.c:4793
+#: readelf.c:6848
#, c-format
msgid " OS/ABI: %s\n"
msgstr " SO/ABI: %s\n"
-#: readelf.c:4795
+#: readelf.c:6850
#, c-format
msgid " ABI Version: %d\n"
msgstr " Versió ABI: %d\n"
-#: readelf.c:4797
+#: readelf.c:6852
#, c-format
msgid " Type: %s\n"
msgstr " Tipus: %s\n"
-#: readelf.c:4799
+#: readelf.c:6854
#, c-format
msgid " Machine: %s\n"
msgstr " Màquina: %s\n"
-#: readelf.c:4801
+#: readelf.c:6856
#, c-format
msgid " Version: 0x%lx\n"
msgstr " Versió: 0x%lx\n"
-#: readelf.c:4804
+#: readelf.c:6859
#, c-format
msgid " Entry point address: "
msgstr " Adreça del punt d'entrada: "
-#: readelf.c:4806
+#: readelf.c:6861
#, c-format
msgid ""
"\n"
@@ -7620,7 +9185,7 @@ msgstr ""
"\n"
" Començament de les capçaleres del programa:"
-#: readelf.c:4808
+#: readelf.c:6863
#, c-format
msgid ""
" (bytes into file)\n"
@@ -7629,87 +9194,87 @@ msgstr ""
" (bytes al fitxer)\n"
" Començament de les capçaleres de la secció:"
-#: readelf.c:4810
+#: readelf.c:6865
#, c-format
msgid " (bytes into file)\n"
msgstr " (bytes al fitxer)\n"
-#: readelf.c:4812
+#: readelf.c:6867
#, c-format
msgid " Flags: 0x%lx%s\n"
msgstr " Senyaladors: 0x%lx%s\n"
-#: readelf.c:4815
-#, fuzzy, c-format
-#| msgid " Size of this header: %ld (bytes)\n"
+#: readelf.c:6870
+#, c-format
msgid " Size of this header: %u (bytes)\n"
-msgstr " Mida d'aquesta capçalera: %ld (bytes)\n"
+msgstr " Mida d'aquesta capçalera: %u (bytes)\n"
-#: readelf.c:4817
-#, fuzzy, c-format
-#| msgid " Size of program headers: %ld (bytes)\n"
+#: readelf.c:6872
+#, c-format
msgid " Size of program headers: %u (bytes)\n"
-msgstr " Mida de les capçaleres del programa: %ld (bytes)\n"
+msgstr " Mida de les capçaleres del programa: %u (bytes)\n"
-#: readelf.c:4819
-#, fuzzy, c-format
-#| msgid " Number of program headers: %ld"
+#: readelf.c:6874
+#, c-format
msgid " Number of program headers: %u"
-msgstr " Número de les capçaleres del programa: %ld"
+msgstr " Nombre de les capçaleres del programa: %u"
-#: readelf.c:4829
-#, fuzzy, c-format
-#| msgid " Size of section headers: %ld (bytes)\n"
+#: readelf.c:6881
+#, c-format
msgid " Size of section headers: %u (bytes)\n"
-msgstr " Mida de les capçaleres de secció: %ld (bytes)\n"
+msgstr " Mida de les capçaleres de secció: %u (bytes)\n"
-#: readelf.c:4831
-#, fuzzy, c-format
-#| msgid " Number of section headers: %ld"
+#: readelf.c:6883
+#, c-format
msgid " Number of section headers: %u"
-msgstr " Número de les capçaleres de secció: %ld"
+msgstr " Nombre de les capçaleres de secció: %u"
-#: readelf.c:4839
-#, fuzzy, c-format
-#| msgid " Section header string table index: %ld"
+#: readelf.c:6891
+#, c-format
msgid " Section header string table index: %u"
-msgstr " Ãndex de la taula de cadenes de caràcters de la capçalera de la secció: %ld"
+msgstr " Ãndex de la taula de cadenes de caràcters de la capçalera de la secció: %u"
-#: readelf.c:4851
+#: readelf.c:6903
#, c-format
msgid " <corrupt: out of range>"
-msgstr " <corrupte: fora de rang>"
+msgstr " <malmès: fora de rang>"
-#: readelf.c:4892 readelf.c:4939
+#: readelf.c:6947 readelf.c:6994
msgid "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"
-msgstr ""
+msgstr "El camp e_phentsize a la capçalera ELF és menor que la mida d'una capçalera de programa ELF\n"
-#: readelf.c:4896 readelf.c:4943
+#: readelf.c:6951 readelf.c:6998
msgid "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"
-msgstr ""
+msgstr "El camp e_phentsize a la capçalera ELF és més gran que la mida d'una capçalera de programa ELF\n"
-#: readelf.c:4899 readelf.c:4946
+#: readelf.c:6954 readelf.c:7001
msgid "program headers"
msgstr "capçaleres de programa"
-#: readelf.c:4985
+#: readelf.c:7040
#, c-format
msgid "Too many program headers - %#x - the file is not that big\n"
-msgstr ""
+msgstr "Hi ha massa capçaleres de programa - %#x - el fitxer no és tan gran\n"
-#: readelf.c:4994
-#, fuzzy, c-format
-#| msgid "Out of memory reading long symbol names in archive\n"
+#: readelf.c:7049
+#, c-format
msgid "Out of memory reading %u program headers\n"
-msgstr "S'ha exhaurit la memòria quan s'estaven llegint noms llargs de símbol a l'arxiu\n"
+msgstr "S'ha exhaurit la memòria quan es llegien %u capçaleres de programa\n"
-#: readelf.c:5025
-#, fuzzy
-#| msgid "possibly corrupt ELF header - it has a non-zero program header offset, but no program headers"
+#: readelf.c:7079
msgid "possibly corrupt ELF header - it has a non-zero program header offset, but no program headers\n"
-msgstr "capçalera ELF possiblement corrupta - té una posició no-zero de la de programa, però cap capçalera de programa"
+msgstr "capçalera ELF possiblement malmesa - té una posició no-zero de la de programa, però cap capçalera de programa\n"
-#: readelf.c:5030
+#: readelf.c:7084
+#, c-format
+msgid ""
+"\n"
+"There are no program headers in linked file '%s'.\n"
+msgstr ""
+"\n"
+"No hi ha cap capçalera de programa al fitxer enllaçat «%s».\n"
+
+#: readelf.c:7087
#, c-format
msgid ""
"\n"
@@ -7718,7 +9283,7 @@ msgstr ""
"\n"
"No hi ha cap capçalera de programa en aquest fitxer.\n"
-#: readelf.c:5036
+#: readelf.c:7099
#, c-format
msgid ""
"\n"
@@ -7727,27 +9292,19 @@ msgstr ""
"\n"
"El tipus de fitxer Elf és %s\n"
-#: readelf.c:5037
-#, fuzzy, c-format
-#| msgid "Entry point "
-msgid "Entry point 0x%s\n"
-msgstr "Punt d'entrada"
+#: readelf.c:7100
+#, c-format
+msgid "Entry point 0x%<PRIx64>\n"
+msgstr "Punt d'entrada 0x%<PRIx64>\n"
-#: readelf.c:5038
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "There are %d program headers, starting at offset "
-msgid "There is %d program header, starting at offset %s\n"
-msgid_plural "There are %d program headers, starting at offset %s\n"
-msgstr[0] ""
-"\n"
-"Hi ha %d capçaleres de programa, començant a la posició "
-msgstr[1] ""
-"\n"
-"Hi ha %d capçaleres de programa, començant a la posició "
+#: readelf.c:7102
+#, c-format
+msgid "There is %d program header, starting at offset %<PRIu64>\n"
+msgid_plural "There are %d program headers, starting at offset %<PRIu64>\n"
+msgstr[0] "Hi ha %d capçaleres de programa, començant a la posició %<PRIu64>\n"
+msgstr[1] "Hi ha %d capçaleres de programa, començant a la posició %<PRIu64>\n"
-#: readelf.c:5051 readelf.c:5053
+#: readelf.c:7117 readelf.c:7119
#, c-format
msgid ""
"\n"
@@ -7756,85 +9313,68 @@ msgstr ""
"\n"
"Capçaleres de programa:\n"
-#: readelf.c:5057
+#: readelf.c:7123
#, c-format
msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
msgstr " Tipus Posició AdrVirt AdrFís MidaFit MidaMem Seny Alin\n"
-#: readelf.c:5060
+#: readelf.c:7126
#, c-format
msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
msgstr " Tipus Posició AdrVirt AdrFís MidaFit MidaMem Seny Alin\n"
-#: readelf.c:5064
+#: readelf.c:7130
#, c-format
msgid " Type Offset VirtAddr PhysAddr\n"
msgstr " Tipus Posició AdrVirt AdrFís\n"
-#: readelf.c:5066
+#: readelf.c:7132
#, c-format
msgid " FileSiz MemSiz Flags Align\n"
msgstr " MidaFit MidaMem Seny Alin\n"
-#: readelf.c:5165
+#: readelf.c:7230
msgid "LOAD segments must be sorted in order of increasing VirtAddr\n"
-msgstr ""
+msgstr "Els segments de càrrega s'han d'ordenar per ordre d'increment de VirtAddr\n"
-#: readelf.c:5168
+#: readelf.c:7233
msgid "the segment's file size is larger than its memory size\n"
-msgstr ""
+msgstr "la mida del fitxer del segment és més gran que la mida de la memòria\n"
-#: readelf.c:5175
+#: readelf.c:7240
msgid "the PHDR segment must occur before any LOAD segment\n"
-msgstr ""
+msgstr "el segment del PHDR ha d'ocórrer abans de qualsevol segment LOAD\n"
-#: readelf.c:5187
+#: readelf.c:7258
msgid "the PHDR segment is not covered by a LOAD segment\n"
-msgstr ""
+msgstr "el segment del PHDR no està cobert per un segment LOAD\n"
-#: readelf.c:5193
+#: readelf.c:7264
msgid "more than one dynamic segment\n"
msgstr "més d'un segment dinàmic\n"
-#: readelf.c:5212
+#: readelf.c:7283
msgid "no .dynamic section in the dynamic segment\n"
msgstr "cap secció .dynamic al segment dinàmic\n"
-#: readelf.c:5227
-msgid "the .dynamic section is not contained within the dynamic segment\n"
-msgstr "la secció .dynamic no està continguda dins del segment dinàmica\n"
-
-#: readelf.c:5230
-msgid "the .dynamic section is not the first section in the dynamic segment.\n"
-msgstr "la secció .dynamic no és la primera secció en la segment dinàmic.\n"
+#: readelf.c:7302
+msgid "the .dynamic section is not the same as the dynamic segment\n"
+msgstr "la secció .dynamic no és la primera secció en la segment dinàmic\n"
-#: readelf.c:5240
+#: readelf.c:7313
msgid "the dynamic segment offset + size exceeds the size of the file\n"
-msgstr ""
+msgstr "el desplaçament dinàmic del segment + mida excedeix la mida del fitxer\n"
-#: readelf.c:5248
+#: readelf.c:7326
msgid "Unable to find program interpreter name\n"
msgstr "No és possible trobar el nom de l'intèrpret del programa\n"
-#: readelf.c:5255
-msgid "Internal error: failed to create format string to display program interpreter\n"
-msgstr "Error intern: no s'ha pogut crear la cadena de format per l'intèrpret del programa\n"
-
-#: readelf.c:5259
-msgid "Unable to read program interpreter name\n"
-msgstr "No es pot llegir el nom de l'intèrpret del programa\n"
-
-#: readelf.c:5262
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| " [Requesting program interpreter: %s]"
+#: readelf.c:7337
+#, c-format
msgid " [Requesting program interpreter: %s]\n"
-msgstr ""
-"\n"
-" [S'està demanant l'intèrpret del programa: %s]"
+msgstr " [S'està demanant l'intèrpret del programa: %s]\n"
-#: readelf.c:5273
+#: readelf.c:7348
#, c-format
msgid ""
"\n"
@@ -7843,110 +9383,102 @@ msgstr ""
"\n"
" Correspondència secció a segment:\n"
-#: readelf.c:5274
+#: readelf.c:7349
#, c-format
msgid " Segment Sections...\n"
msgstr " Seccions de segment...\n"
-#: readelf.c:5310
+#: readelf.c:7391 readelf.c:12419
msgid "Cannot interpret virtual addresses without program headers.\n"
msgstr "No es poden interpretar les adreces virtuals sense les capçaleres del programa.\n"
-#: readelf.c:5326
+#: readelf.c:7407
#, c-format
-msgid "Virtual address 0x%lx not located in any PT_LOAD segment.\n"
-msgstr "Les adreces virtual 0x%lx no estan localitzades en cap segment PT_LOAD.\n"
+msgid "Virtual address %#<PRIx64> not located in any PT_LOAD segment.\n"
+msgstr "Les adreces virtual %#<PRIx64> no estan localitzades en cap segment PT_LOAD.\n"
-#: readelf.c:5351 readelf.c:5416
+#: readelf.c:7439 readelf.c:7509
msgid "The e_shentsize field in the ELF header is less than the size of an ELF section header\n"
-msgstr ""
+msgstr "El camp e_shentsize de la capçalera ELF és menor que la mida d'una capçalera de secció ELF\n"
-#: readelf.c:5355 readelf.c:5421
+#: readelf.c:7443 readelf.c:7514
msgid "The e_shentsize field in the ELF header is larger than the size of an ELF section header\n"
-msgstr ""
+msgstr "El camp e_shentsize de la capçalera ELF és més gran que la mida d'una capçalera de secció ELF\n"
-#: readelf.c:5359 readelf.c:5426
+#: readelf.c:7447 readelf.c:7519
msgid "section headers"
msgstr "capçaleres de secció"
-#: readelf.c:5369 readelf.c:5436
-#, fuzzy, c-format
-#| msgid "Out of memory reading long symbol names in archive\n"
+#: readelf.c:7456 readelf.c:7528
+#, c-format
msgid "Out of memory reading %u section headers\n"
-msgstr "S'ha exhaurit la memòria quan s'estaven llegint noms llargs de símbol a l'arxiu\n"
+msgstr "S'ha exhaurit la memòria llegint %u capçaleres de secció\n"
-#: readelf.c:5389 readelf.c:5456
-#, fuzzy, c-format
-#| msgid "Section %d has invalid sh_entsize of %"
+#: readelf.c:7476 readelf.c:7548
+#, c-format
msgid "Section %u has an out of range sh_link value of %u\n"
-msgstr "La secció %d té sh_entsize no vàlida de %"
+msgstr "La secció %u té un valor sh_link for rang per a %u\n"
-#: readelf.c:5391 readelf.c:5458
-#, fuzzy, c-format
-#| msgid "Section %d has invalid sh_entsize of %"
+#: readelf.c:7478 readelf.c:7550
+#, c-format
msgid "Section %u has an out of range sh_info value of %u\n"
-msgstr "La secció %d té sh_entsize no vàlida de %"
+msgstr "La secció %u té un valor sh_info fora de rang per a %u\n"
-#: readelf.c:5488 readelf.c:5605
-#, fuzzy, c-format
-#| msgid "Section %d has invalid sh_entsize of %"
-msgid "Section %s has an invalid sh_entsize of 0x%lx\n"
-msgstr "La secció %d té sh_entsize no vàlida de %"
+#: readelf.c:7592 readelf.c:7709
+#, c-format
+msgid "Section %s has an invalid sh_entsize of %#<PRIx64>\n"
+msgstr "La secció %s té un sh_entsize no vàlid de %#<PRIx64>\n"
-#: readelf.c:5496 readelf.c:5613
-#, fuzzy, c-format
-#| msgid "Section %d has invalid sh_entsize of %"
-msgid "Section %s has an invalid sh_size of 0x%lx\n"
-msgstr "La secció %d té sh_entsize no vàlida de %"
+#: readelf.c:7600 readelf.c:7717 readelf.c:14441
+#, c-format
+msgid "Section %s has an invalid sh_size of %#<PRIx64>\n"
+msgstr "La secció %s té un sh_size no vàlid de %#<PRIx64>\n"
-#: readelf.c:5506 readelf.c:5623
+#: readelf.c:7610 readelf.c:7727
#, c-format
-msgid "Size (0x%lx) of section %s is not a multiple of its sh_entsize (0x%lx)\n"
-msgstr ""
+msgid "Size (%#<PRIx64>) of section %s is not a multiple of its sh_entsize (%#<PRIx64>)\n"
+msgstr "La mida (%#<PRIx64>) de la secció %s no és un múltiple de la seva mida sh_entsize (%#<PRIx64>)\n"
-#: readelf.c:5514 readelf.c:5631
+#: readelf.c:7619 readelf.c:7736 readelf.c:17026
msgid "symbols"
msgstr "símbols"
-#: readelf.c:5526 readelf.c:5643
+#: readelf.c:7631 readelf.c:7748
msgid "Multiple symbol table index sections associated with the same symbol section\n"
-msgstr ""
+msgstr "Múltiples seccions d'índex de taula de símbols associades amb la mateixa secció de símbols\n"
-#: readelf.c:5533 readelf.c:5650
-#, fuzzy
-#| msgid "symbol table section indicies"
+#: readelf.c:7638 readelf.c:7755
msgid "symbol table section indices"
msgstr "índexs de la secció de taula de símbols"
-#: readelf.c:5540 readelf.c:5657
+#: readelf.c:7645 readelf.c:7762
#, c-format
-msgid "Index section %s has an sh_size of 0x%lx - expected 0x%lx\n"
-msgstr ""
+msgid "Index section %s has an sh_size of %#<PRIx64> - expected %#<PRIx64>\n"
+msgstr "La secció d'índex %s té una mida sh_size de %#<PRIx64> - s'esperava %#<PRIx64>\n"
-#: readelf.c:5552 readelf.c:5669
-#, fuzzy, c-format
-#| msgid "Out of memory reading long symbol names in archive\n"
-msgid "Out of memory reading %lu symbols\n"
-msgstr "S'ha exhaurit la memòria quan s'estaven llegint noms llargs de símbol a l'arxiu\n"
+#: readelf.c:7657 readelf.c:7774
+#, c-format
+msgid "Out of memory reading %<PRIu64> symbols\n"
+msgstr "S'ha exhaurit la memòria quan es llegien %<PRIu64> símbols\n"
-#: readelf.c:5848 readelf.c:5923 readelf.c:5941 readelf.c:5959
+#: readelf.c:7977 readelf.c:8073 readelf.c:8090 readelf.c:8107
msgid "Internal error: not enough buffer room for section flag info"
-msgstr ""
+msgstr "Error intern: no hi ha prou sala de memòria intermèdia per a la informació de l'indicador de secció"
-#: readelf.c:5966
+#: readelf.c:8115
#, c-format
msgid "UNKNOWN (%*.*lx)"
msgstr "DESCONEGUT (%*.*lx)"
-#: readelf.c:5985 readelf.c:6000
+#: readelf.c:8134 readelf.c:8149
msgid "Compressed section is too small even for a compression header\n"
-msgstr ""
+msgstr "La secció comprimida és massa petita fins i tot per a una capçalera de compressió\n"
-#: readelf.c:6024
+#: readelf.c:8171
msgid "possibly corrupt ELF file header - it has a non-zero section header offset, but no section headers\n"
-msgstr "capçalera de fitxer ELF possiblement corrupte - té una posició no- de la capçalera de secció, però cap capçalera de secció\n"
+msgstr "capçalera de fitxer ELF possiblement malmesa - té una posició no- de la capçalera de secció, però cap capçalera de secció\n"
-#: readelf.c:6029
+#: readelf.c:8176
#, c-format
msgid ""
"\n"
@@ -7955,45 +9487,64 @@ msgstr ""
"\n"
"No hi ha cap secció en aquest fitxer.\n"
-#: readelf.c:6035
-#, fuzzy, c-format
-#| msgid "There are %d section headers, starting at offset 0x%lx:\n"
-msgid "There is %d section header, starting at offset 0x%lx:\n"
-msgid_plural "There are %d section headers, starting at offset 0x%lx:\n"
-msgstr[0] "Hi ha %d capçaleres de secció, començant a la posició 0x%lx:\n"
-msgstr[1] "Hi ha %d capçaleres de secció, començant a la posició 0x%lx:\n"
-
-#: readelf.c:6064 readelf.c:6840 readelf.c:7286 readelf.c:7704 readelf.c:8168
-#: readelf.c:9272 readelf.c:11822 readelf.c:13844 readelf.c:18041
+#: readelf.c:8184 readelf.c:23101
+#, c-format
+msgid "In linked file '%s': "
+msgstr "Al fixer enllaçat «%s»: "
+
+#: readelf.c:8187
+#, c-format
+msgid "There is %d section header, starting at offset %#<PRIx64>:\n"
+msgid_plural "There are %d section headers, starting at offset %#<PRIx64>:\n"
+msgstr[0] "Hi ha %d capçaleres de secció, començant a la posició %#<PRIx64>:\n"
+msgstr[1] "Hi ha %d capçaleres de secció, començant a la posició %#<PRIx64>:\n"
+
+#: readelf.c:8210 readelf.c:8893 readelf.c:9095 readelf.c:14723 readelf.c:17432
msgid "string table"
msgstr "taula de cadenes de caràcters"
-#. Note: coded this way so that there is a single string for translation.
-#: readelf.c:6135
-#, fuzzy, c-format
-#| msgid "Section %d has invalid sh_entsize of %"
-msgid "Section %d has invalid sh_entsize of %s\n"
-msgstr "La secció %d té sh_entsize no vàlida de %"
+#: readelf.c:8272
+#, c-format
+msgid "Section %d has invalid sh_entsize of %<PRIx64>\n"
+msgstr "La secció %d té una mida sh_entsize de %<PRIx64>\n"
-#: readelf.c:6136
-#, fuzzy, c-format
-#| msgid "(Using the expected size of %d for the rest of this dump)\n"
-msgid "(Using the expected size of %u for the rest of this dump)\n"
-msgstr "(S'usarà la mida esperada de %d per a la resta d'aquest bolcat)\n"
+#: readelf.c:8274
+#, c-format
+msgid "(Using the expected size of %<PRIx64> for the rest of this dump)\n"
+msgstr "(S'usarà la mida esperada de %<PRIx64> per a la resta d'aquest bolcat)\n"
-#: readelf.c:6157
+#: readelf.c:8298
msgid "File contains multiple dynamic symbol tables\n"
msgstr "El fitxer conté múltiples taules de símbols dinàmics\n"
-#: readelf.c:6169
+#: readelf.c:8313
msgid "File contains multiple dynamic string tables\n"
msgstr "El fitxer conté múltiples taules de símbols dinàmics\n"
-#: readelf.c:6175
+#: readelf.c:8319
msgid "dynamic strings"
msgstr "cadenes de caràcters dinàmiques"
-#: readelf.c:6265
+#: readelf.c:8347 readelf.c:8353
+#, c-format
+msgid "Section '%s': zero-sized relocation section\n"
+msgstr "Secció «%s»: secció de reubicació de mida zero\n"
+
+#: readelf.c:8366
+#, c-format
+msgid "Section '%s': has a size of zero - is this intended ?\n"
+msgstr "Secció «%s»: té una mida de zero - està pensada ?\n"
+
+#: readelf.c:8452
+#, c-format
+msgid ""
+"\n"
+"Section Headers in linked file '%s':\n"
+msgstr ""
+"\n"
+"Capçaleres de secció al fitxer enllaçat «%s»:\n"
+
+#: readelf.c:8455
#, c-format
msgid ""
"\n"
@@ -8002,7 +9553,7 @@ msgstr ""
"\n"
"Capçaleres de secció:\n"
-#: readelf.c:6267
+#: readelf.c:8457
#, c-format
msgid ""
"\n"
@@ -8011,118 +9562,115 @@ msgstr ""
"\n"
"Capçalera de secció:\n"
-#: readelf.c:6273 readelf.c:6284 readelf.c:6295
+#: readelf.c:8463 readelf.c:8474 readelf.c:8485
#, c-format
msgid " [Nr] Name\n"
msgstr " [Nr] Nom\n"
-#: readelf.c:6274
+#: readelf.c:8464
#, c-format
msgid " Type Addr Off Size ES Lk Inf Al\n"
msgstr " Tipus Adr Pos Mida ES Lk Inf Al\n"
-#: readelf.c:6278
+#: readelf.c:8468
#, c-format
msgid " [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n"
msgstr " [Nr] Nom Tipus Adr Pos Mida ES Sen Lk Inf Al\n"
-#: readelf.c:6285
+#: readelf.c:8475
#, c-format
msgid " Type Address Off Size ES Lk Inf Al\n"
msgstr " Tipus Adreça Pos Mida ES Lk Inf Al\n"
-#: readelf.c:6289
+#: readelf.c:8479
#, c-format
msgid " [Nr] Name Type Address Off Size ES Flg Lk Inf Al\n"
msgstr " [Nr] Nom Tipus Adreça Pos Mida ES Sen Lk Inf Al\n"
-#: readelf.c:6296
+#: readelf.c:8486
#, c-format
msgid " Type Address Offset Link\n"
msgstr " Tipus Adreça Posició Enllaç\n"
-#: readelf.c:6297
+#: readelf.c:8487
#, c-format
msgid " Size EntSize Info Align\n"
msgstr " Mida MidaEnt Info Alin\n"
-#: readelf.c:6301
+#: readelf.c:8491
#, c-format
msgid " [Nr] Name Type Address Offset\n"
msgstr " [Nr] Nom Tipus Adreça Posició\n"
-#: readelf.c:6302
+#: readelf.c:8492
#, c-format
msgid " Size EntSize Flags Link Info Align\n"
msgstr " Mida MidaEnt Seny Enllaç Info Alin\n"
-#: readelf.c:6307
+#: readelf.c:8497
#, c-format
msgid " Flags\n"
msgstr " Senyaladors\n"
-#: readelf.c:6336
+#: readelf.c:8527
#, c-format
msgid "[%2u]: Link field (%u) should index a symtab section.\n"
-msgstr ""
+msgstr "[%2u]: El camp d'enllaç (%u) hauria d'indexar una secció de la pestanya simbòlica.\n"
-#: readelf.c:6349
+#: readelf.c:8540
#, c-format
msgid "[%2u]: Link field (%u) should index a string section.\n"
-msgstr ""
+msgstr "[%2u]: El camp d'enllaç (%u) hauria d'indexar una secció de cadena.\n"
-#: readelf.c:6357 readelf.c:6368
+#: readelf.c:8548 readelf.c:8559
#, c-format
msgid "[%2u]: Unexpected value (%u) in link field.\n"
-msgstr ""
+msgstr "[%2u]: Valor inesperat (%u) en el camp de l'enllaç.\n"
-#: readelf.c:6395
+#: readelf.c:8586
#, c-format
msgid "[%2u]: Info field (%u) should index a relocatable section.\n"
-msgstr ""
+msgstr "[%2u]: El camp d'informació (%u) hauria d'indexar una secció reubicable.\n"
-#: readelf.c:6406 readelf.c:6433
+#: readelf.c:8597 readelf.c:8624
#, c-format
msgid "[%2u]: Unexpected value (%u) in info field.\n"
-msgstr ""
+msgstr "[%2u]: Valor inesperat (%u) en el camp d'informació.\n"
-#: readelf.c:6428
+#: readelf.c:8619
#, c-format
msgid "[%2u]: Expected link to another section in info field"
-msgstr ""
+msgstr "[%2u]: S'esperava un enllaç a una altra secció del camp d'informació"
-#: readelf.c:6443
+#: readelf.c:8634
#, c-format
msgid "Size of section %u is larger than the entire file!\n"
-msgstr ""
+msgstr "La mida de la secció %u és més gran que tot el fitxer!\n"
-#: readelf.c:6512
+#: readelf.c:8703
#, c-format
msgid "section %u: sh_link value of %u is larger than the number of sections\n"
msgstr "secció %u: el valor sh_link de %u és més gran que el nombre de seccions\n"
-#: readelf.c:6613
-#, fuzzy
-#| msgid "menu header"
+#: readelf.c:8804
msgid "compression header"
-msgstr "capçalera de menú"
+msgstr "capçalera de compressió"
-#: readelf.c:6622
-#, fuzzy, c-format
-#| msgid "[<unknown>: 0x%x] "
+#: readelf.c:8809
+#, c-format
+msgid " [<corrupt>]\n"
+msgstr " [<malmès>]\n"
+
+#: readelf.c:8817
+#, c-format
msgid " [<unknown>: 0x%x], "
-msgstr "[<desconegut>: 0x%x] "
+msgstr " [<desconegut>: 0x%x], "
#. The ordering of the letters shown here matches the ordering of the
#. corresponding SHF_xxx values, and hence the order in which these
#. letters will be displayed to the user.
-#: readelf.c:6636
-#, fuzzy, c-format
-#| msgid ""
-#| "Key to Flags:\n"
-#| " W (write), A (alloc), X (execute), M (merge), S (strings)\n"
-#| " I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)\n"
-#| " O (extra OS processing required) o (OS specific), p (processor specific)\n"
+#: readelf.c:8832
+#, c-format
msgid ""
"Key to Flags:\n"
" W (write), A (alloc), X (execute), M (merge), S (strings), I (info),\n"
@@ -8130,90 +9678,120 @@ msgid ""
" C (compressed), x (unknown), o (OS specific), E (exclude),\n"
" "
msgstr ""
-"Clau per a senyaladors:\n"
-" W (escriptura), A (assignació), X (execució), M (fusió), S (cadenes)\n"
-" I (info), L (ordre d'enllaç), G (grup), T (TLS), E (exclusió), x (desconegut)\n"
-" O (processament SO extra requerit) o (específic de SO), p (especific de processador)\n"
+"Clau per als senyaladors:\n"
+" W (escriptura), A (assig), X (execució), M (fusió), S (cadenes), I (info),\n"
+" L (ordre enllaç), O (processament extra requerit SO), G (grup), T (TLS),\n"
+" C (comprimit), x (desconegut), o (específic OS), E (exclou),\n"
+" "
+
+#: readelf.c:8840
+#, c-format
+msgid "R (retain), "
+msgstr "R (reté), "
+
+#: readelf.c:8843
+#, c-format
+msgid "D (mbind), "
+msgstr "D (mbind), "
-#: readelf.c:6643
+#: readelf.c:8851
#, c-format
msgid "l (large), "
-msgstr ""
+msgstr "l (gran), "
-#: readelf.c:6645
+#: readelf.c:8853
#, c-format
msgid "y (purecode), "
-msgstr ""
+msgstr "y (purecode), "
-#: readelf.c:6647
+#: readelf.c:8855
#, c-format
msgid "v (VLE), "
-msgstr ""
+msgstr "v (VLE), "
+
+#: readelf.c:8883
+msgid "Bad sh_link in symbol table section\n"
+msgstr "sh_link incorrecte a la secció de taula de símbols\n"
+
+#: readelf.c:8918
+msgid "<OS specific>"
+msgstr "<específic per al SO>"
+
+#: readelf.c:8919
+msgid "<PROC specific>"
+msgstr "<específic per a PROC>"
-#: readelf.c:6664
+#: readelf.c:8948
#, c-format
-msgid "[0x%x: "
+msgid ""
+"\n"
+"There are no sections group in linked file '%s'.\n"
msgstr ""
+"\n"
+"No hi ha grup de seccions al fitxer enllaçat «%s».\n"
-#: readelf.c:6706
+#: readelf.c:8951 readelf.c:8990
#, c-format
msgid ""
"\n"
-"There are no sections to group in this file.\n"
+"There are no section groups in this file.\n"
msgstr ""
"\n"
-"No hi seccions per agrupar a aquest fitxer.\n"
+"No hi ha grups de secció en aquest fitxer.\n"
-#: readelf.c:6713
+#: readelf.c:8958
msgid "Section headers are not available!\n"
msgstr "Les capçaleres de secció no estan disponibles!\n"
-#: readelf.c:6723
-#, fuzzy, c-format
-#| msgid "Out of memory reading long symbol names in archive\n"
+#: readelf.c:8969
+#, c-format
msgid "Out of memory reading %u section group headers\n"
-msgstr "S'ha exhaurit la memòria quan s'estaven llegint noms llargs de símbol a l'arxiu\n"
+msgstr "S'ha exhaurit la memòria quan es llegien %u capçaleres de grups de secció\n"
-#: readelf.c:6739
+#: readelf.c:8987
#, c-format
msgid ""
"\n"
-"There are no section groups in this file.\n"
+"There are no section groups in linked file '%s'.\n"
msgstr ""
"\n"
-"No hi ha grups de secció en aquest fitxer.\n"
+"No hi ha grups de secció al fitxer enllaçat «%s».\n"
-#: readelf.c:6748
-#, fuzzy, c-format
-#| msgid "out of memory parsing relocs\n"
-msgid "Out of memory reading %lu groups\n"
-msgstr "memòria exhaurida quan s'estaven analitzant les relocalitzacions\n"
+#: readelf.c:9001
+#, c-format
+msgid "Out of memory reading %zu groups\n"
+msgstr "S'ha exhaurit la memòria quan es llegien %zu grups\n"
-#: readelf.c:6778
+#: readelf.c:9013
+#, c-format
+msgid "Section groups in linked file '%s'\n"
+msgstr "Grups de secció al fitxer enllaçat «%s»\n"
+
+#: readelf.c:9035
#, c-format
msgid "Bad sh_link in group section `%s'\n"
msgstr "sh_link dolent en la secció de grup `%s'\n"
-#: readelf.c:6792
+#: readelf.c:9048
#, c-format
msgid "Corrupt header in group section `%s'\n"
-msgstr "Capçalera corrupta en la secció de grup `%s'\n"
+msgstr "Capçalera malmesa en la secció de grup `%s'\n"
-#: readelf.c:6798 readelf.c:6809
+#: readelf.c:9054 readelf.c:9065
#, c-format
msgid "Bad sh_info in group section `%s'\n"
msgstr "sh_info dolenta en la secció de grup `%s'\n"
-#: readelf.c:6850
+#: readelf.c:9105
#, c-format
-msgid "Section %s has sh_entsize (0x%lx) which is larger than its size (0x%lx)\n"
-msgstr ""
+msgid "Section %s has sh_entsize (%#<PRIx64>) which is larger than its size (%#<PRIx64>)\n"
+msgstr "La secció %s té una mida inicial (%#<PRIx64>) que és més gran que la seva mida (%#<PRIx64>)\n"
-#: readelf.c:6859
+#: readelf.c:9115
msgid "section data"
msgstr "dades de secció"
-#: readelf.c:6870
+#: readelf.c:9126
#, c-format
msgid ""
"\n"
@@ -8222,62 +9800,62 @@ msgstr ""
"\n"
"%sgrup secció [%5u] `%s' [%s] conté %u seccions:\n"
-#: readelf.c:6873
+#: readelf.c:9129
#, c-format
msgid " [Index] Name\n"
msgstr " [Ãndex] Nom\n"
-#: readelf.c:6891
+#: readelf.c:9147
#, c-format
msgid "section [%5u] in group section [%5u] > maximum section [%5u]\n"
msgstr "secció [%5u] a la secció de grup [%5u] > secció màxima [%5u]\n"
-#: readelf.c:6894
+#: readelf.c:9150
msgid "Further error messages about overlarge group section indices suppressed\n"
-msgstr ""
+msgstr "S'han suprimit més missatges d'error sobre els índexs de secció de grups més grans\n"
-#: readelf.c:6907
+#: readelf.c:9163
#, c-format
msgid "section [%5u] in group section [%5u] already in group section [%5u]\n"
msgstr "secció [%5u] a la secció de grup [%5u] ja està a la secció de grup [%5u]\n"
-#: readelf.c:6911
+#: readelf.c:9167
msgid "Further error messages about already contained group sections suppressed\n"
-msgstr ""
+msgstr "S'han suprimit més missatges d'error sobre les seccions de grup ja contingudes\n"
-#: readelf.c:6923
+#: readelf.c:9179
#, c-format
msgid "section 0 in group section [%5u]\n"
msgstr "secció 0 a secció de grup [%5u]\n"
-#: readelf.c:6992
+#: readelf.c:9246
msgid "dynamic section image fixups"
msgstr "correccions d'imatge de secció dinàmica"
-#: readelf.c:7000
+#: readelf.c:9254
#, c-format
-msgid "corrupt library name index of 0x%lx found in dynamic entry"
-msgstr ""
+msgid "corrupt library name index of %#<PRIx64> found in dynamic entry"
+msgstr "s'ha trobat un índex de nom de biblioteca malmès de %#<PRIx64> a l'entrada dinàmica"
-#: readelf.c:7004
+#: readelf.c:9259
#, c-format
msgid ""
"\n"
-"Image fixups for needed library #%d: %s - ident: %lx\n"
+"Image fixups for needed library #%<PRId64>: %s - ident: %<PRIx64>\n"
msgstr ""
"\n"
-"Correcciones de imatge per la biblioteca que es necessita #%d: %s - identitat: %lx\n"
+"Correccions d'imatge per a la llibreria necessària #%<PRId64>: %s - ident: %<PRIx64>\n"
-#: readelf.c:7007
+#: readelf.c:9263
#, c-format
msgid "Seg Offset Type SymVec DataType\n"
msgstr "Posició Seg Tipus SymVec Tipus Dades\n"
-#: readelf.c:7040
+#: readelf.c:9297
msgid "dynamic section image relocations"
msgstr "relocalitzacions dinàmiques d'imatge de seccions"
-#: readelf.c:7044
+#: readelf.c:9301
#, c-format
msgid ""
"\n"
@@ -8286,25 +9864,87 @@ msgstr ""
"\n"
"Relocalitzacions d'imatge\n"
-#: readelf.c:7046
+#: readelf.c:9303
#, c-format
msgid "Seg Offset Type Addend Seg Sym Off\n"
msgstr "Posició Seg Tipus Apèndix Pos Sim Seg\n"
-#: readelf.c:7102
+#: readelf.c:9358
msgid "dynamic string section"
msgstr "secció de cadenes dinàmiques de caràcters"
-#: readelf.c:7203
+#: readelf.c:9441
#, c-format
msgid ""
"\n"
-"'%s' relocation section at offset 0x%lx contains %ld bytes:\n"
+"In linked file '%s' relocation section "
msgstr ""
"\n"
-"'%s' secció de relocalització a la posició 0x%lx conté %ld bytes:\n"
+"Al fitxer enllaçat «%s» secció de reubicació"
-#: readelf.c:7220
+#: readelf.c:9444
+#, c-format
+msgid ""
+"\n"
+"Relocation section "
+msgstr ""
+"\n"
+"Secció de relocalització "
+
+#: readelf.c:9463
+#, c-format
+msgid " at offset %#<PRIx64>"
+msgstr " a la posició: %#<PRIx64>"
+
+#: readelf.c:9464
+#, c-format
+msgid " contains %<PRIu64> entry which relocates"
+msgid_plural " contains %<PRIu64> entries which relocate"
+msgstr[0] " conté %<PRIu64> entrada a reubicar"
+msgstr[1] " conté %<PRIu64> entrades a reubicar"
+
+#: readelf.c:9467
+#, c-format
+msgid " %<PRIu64> location:\n"
+msgid_plural " %<PRIu64> locations:\n"
+msgstr[0] " %<PRIu64> localizació:\n"
+msgstr[1] " %<PRIu64> localizacions:\n"
+
+#: readelf.c:9473
+#, c-format
+msgid " at offset %#<PRIx64> contains %<PRIu64> entry:\n"
+msgid_plural " at offset %#<PRIx64> contains %<PRIu64> entries:\n"
+msgstr[0] " a la posició %#<PRIx64> conté %<PRIu64> entrada:\n"
+msgstr[1] " a la posició %#<PRIx64> conté %<PRIu64> entrades:\n"
+
+#: readelf.c:9572
+#, c-format
+msgid ""
+"\n"
+"In linked file '%s' section '%s' at offset %#<PRIx64> contains %<PRId64> bytes:\n"
+msgstr ""
+"\n"
+"Al fitxer enllaçat «%s» secció «%s» a la posició %#<PRIx64> contés %<PRId64> bytes:\n"
+
+#: readelf.c:9577
+#, c-format
+msgid ""
+"\n"
+"'%s' relocation section at offset %#<PRIx64> contains %<PRId64> bytes:\n"
+msgstr ""
+"\n"
+"«%s» secció de relocalització a la posició %#<PRIx64> conté %<PRId64> bytes:\n"
+
+#: readelf.c:9599
+#, c-format
+msgid ""
+"\n"
+"There are no dynamic relocations in linked file '%s'.\n"
+msgstr ""
+"\n"
+"No hi ha reubicacions dinámiques al fitxer enllaçat «%s».\n"
+
+#: readelf.c:9602
#, c-format
msgid ""
"\n"
@@ -8313,104 +9953,95 @@ msgstr ""
"\n"
"No hi ha relocalitzacions dinàmiques a aquest fitxer.\n"
-#: readelf.c:7245
+#: readelf.c:9627
#, c-format
msgid ""
"\n"
-"Relocation section "
+"There are no static relocations in linked file '%s'."
msgstr ""
"\n"
-"Secció de relocalització "
-
-#: readelf.c:7253
-#, fuzzy, c-format
-#| msgid " at offset 0x%lx contains %lu entries:\n"
-msgid " at offset 0x%lx contains %lu entry:\n"
-msgid_plural " at offset 0x%lx contains %lu entries:\n"
-msgstr[0] " a la posició 0x%lx conté %lu entrades:\n"
-msgstr[1] " a la posició 0x%lx conté %lu entrades:\n"
+"No hi ha reubicacions estatiques al fitxer enllaçat «%s»."
-#: readelf.c:7314
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "There are no dynamic relocations in this file.\n"
+#: readelf.c:9630
+#, c-format
msgid ""
"\n"
"There are no static relocations in this file."
msgstr ""
"\n"
-"No hi ha relocalitzacions dinàmiques a aquest fitxer.\n"
+"No hi ha reubicacions estatiques a aquest fitxer."
-#: readelf.c:7315
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "There are no dynamic relocations in this file.\n"
+#: readelf.c:9631
+#, c-format
msgid ""
"\n"
"To see the dynamic relocations add --use-dynamic to the command line.\n"
msgstr ""
"\n"
-"No hi ha relocalitzacions dinàmiques a aquest fitxer.\n"
+"Per veure les reubicacions dinàmiques afegiu --use-dynamic a la línia d'ordres.\n"
-#: readelf.c:7321
+#: readelf.c:9639
#, c-format
msgid ""
"\n"
-"There are no relocations in this file.\n"
+"There are no relocations in linked file '%s'.\n"
msgstr ""
"\n"
-"No hi ha relocalitzacions a aquest fitxer.\n"
+"No hi ha reubicacions al fitxer enllaçat «%s».\n"
-#: readelf.c:7491
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| " [Use file table entry %d]\n"
-msgid "Invalid offset %lx in table entry %ld\n"
+#: readelf.c:9642
+#, c-format
+msgid ""
+"\n"
+"There are no relocations in this file.\n"
msgstr ""
"\n"
-" [Usa l'entrada de taula de fitxers %d]\n"
+"No hi ha relocalitzacions a aquest fitxer.\n"
-#: readelf.c:7509
+#: readelf.c:9801
+#, c-format
+msgid "Invalid section %u in table entry %td\n"
+msgstr "Secció no vàlida %u a l'entrada de taula %td\n"
+
+#: readelf.c:9813
+#, c-format
+msgid "Invalid offset %<PRIx64> in table entry %td\n"
+msgstr "Posició no vàlida %<PRIx64> a l'entrada de taula %td\n"
+
+#: readelf.c:9831
#, c-format
msgid "\tUnknown version.\n"
msgstr "\tVersió desconeguda.\n"
-#: readelf.c:7572 readelf.c:8005
+#: readelf.c:9894 readelf.c:10332
msgid "unwind table"
msgstr "desplega la taula"
-#: readelf.c:7623 readelf.c:8087
-#, fuzzy, c-format
-#| msgid "Skipping unexpected relocation type %s\n"
+#: readelf.c:9945 readelf.c:10415
+#, c-format
msgid "Skipping unknown relocation type: %u\n"
-msgstr "Se saltarà el tipus de relocalització no esperat %s\n"
+msgstr "Se saltarà el tipus de relocalització no esperat %u\n"
-#: readelf.c:7629 readelf.c:8094
-#, fuzzy, c-format
-#| msgid "Skipping unexpected relocation type %s\n"
+#: readelf.c:9951 readelf.c:10422
+#, c-format
msgid "Skipping unexpected relocation type: %s\n"
msgstr "Se saltarà el tipus de relocalització no esperat %s\n"
-#: readelf.c:7638 readelf.c:8101
-#, fuzzy, c-format
-#| msgid "Skipping unexpected relocation at offset 0x%lx\n"
-msgid "Skipping reloc with overlarge offset: %lx\n"
-msgstr "Se saltarà la relocalització no esperada a la posició 0x%lx\n"
+#: readelf.c:9960 readelf.c:10429
+#, c-format
+msgid "Skipping reloc with overlarge offset: %#<PRIx64>\n"
+msgstr "Se saltarà reloc amb una posició massa llarga: %#<PRIx64>\n"
-#: readelf.c:7645 readelf.c:8108
-#, fuzzy, c-format
-#| msgid "skipping invalid relocation symbol index 0x%lx in section %s\n"
+#: readelf.c:9968 readelf.c:10437
+#, c-format
msgid "Skipping reloc with invalid symbol index: %u\n"
-msgstr "se saltarà l'índex 0x%lx no vàlid de símbols de relocalització a la secció %s\n"
+msgstr "Se saltarà reloc amb un índex de símbol no vàlid: %u\n"
-#: readelf.c:7698 readelf.c:8162
-msgid "Multiple auxillary string tables encountered\n"
-msgstr ""
+#: readelf.c:10016 readelf.c:10484 readelf.c:11595
+msgid "Multiple symbol tables encountered\n"
+msgstr "S'han trobat taules múltiples de símbols\n"
-#: readelf.c:7712 readelf.c:8176 readelf.c:9280
+#: readelf.c:10031 readelf.c:10500 readelf.c:11610
#, c-format
msgid ""
"\n"
@@ -8419,7 +10050,7 @@ msgstr ""
"\n"
"No hi ha seccions sense desplegar a aquest fitxer.\n"
-#: readelf.c:7786
+#: readelf.c:10117
#, c-format
msgid ""
"\n"
@@ -8428,11 +10059,11 @@ msgstr ""
"\n"
"No s'ha pogut trobar la secció d'informació de desplegament per "
-#: readelf.c:7798
+#: readelf.c:10129
msgid "unwind info"
msgstr "informació de desplegament"
-#: readelf.c:7801
+#: readelf.c:10132
#, c-format
msgid ""
"\n"
@@ -8441,221 +10072,222 @@ msgstr ""
"\n"
"Secció de desplegament"
-#: readelf.c:7808
+#: readelf.c:10139
#, c-format
-msgid " at offset 0x%lx contains %lu entries:\n"
-msgstr " a la posició 0x%lx conté %lu entrades:\n"
+msgid " at offset %#<PRIx64> contains %<PRIu64> entries:\n"
+msgstr " a la posició %#<PRIx64> conté %<PRIu64> entrades:\n"
-#: readelf.c:8184 readelf.c:9287
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "Unwind table index '%s' at offset 0x%lx contains %lu entries:\n"
+#: readelf.c:10509 readelf.c:11617
+#, c-format
msgid ""
"\n"
-"Unwind section '%s' at offset 0x%lx contains %lu entry:\n"
+"Unwind section '%s' at offset %#<PRIx64> contains %<PRIu64> entry:\n"
msgid_plural ""
"\n"
-"Unwind section '%s' at offset 0x%lx contains %lu entries:\n"
+"Unwind section '%s' at offset %#<PRIx64> contains %<PRIu64> entries:\n"
msgstr[0] ""
"\n"
-"Desplega l'index de taula '%s' a la posició 0x%lx que conté %lu entrades:\n"
+"La secció de desplegament «%s» a la posició %#<PRIx64> conté %<PRIu64> entrada:\n"
msgstr[1] ""
"\n"
-"Desplega l'index de taula '%s' a la posició 0x%lx que conté %lu entrades:\n"
+"La secció de desplegament «%s» a la posició %#<PRIx64> conté %<PRIu64> entrades:\n"
-#: readelf.c:8323
+#: readelf.c:10642
msgid "unwind data"
msgstr "dades de desplegament"
-#: readelf.c:8396
+#: readelf.c:10714
#, c-format
-msgid "Skipping unexpected relocation at offset 0x%lx\n"
-msgstr "Se saltarà la relocalització no esperada a la posició 0x%lx\n"
+msgid "Skipping unexpected relocation at offset %#<PRIx64>\n"
+msgstr "Se saltarà la relocalització no esperada a la posició %#<PRIx64>\n"
-#: readelf.c:8418
-#, fuzzy, c-format
-#| msgid "Unknown ARM compact model index encountered\n"
+#: readelf.c:10736
+#, c-format
msgid "Unknown section relocation type %d encountered\n"
-msgstr "Trobat u índex desconegut de model compacte ARM\n"
+msgstr "S'ha trobat un tipus %d desconegut de reubicació de secció \n"
-#: readelf.c:8426
+#: readelf.c:10744
#, c-format
-msgid "Bad symbol index in unwind relocation (%lu > %lu)\n"
-msgstr ""
+msgid "Bad symbol index in unwind relocation (%<PRIu64> > %<PRIu64>)\n"
+msgstr "L'índex de símbols és incorrecte en la deslocalització de desenrotllament (%<PRIu64> ) %<PRIu64>)\n"
-#: readelf.c:8441
-#, fuzzy, c-format
-#| msgid "Skipping unexpected relocation type %s\n"
+#: readelf.c:10760
+#, c-format
msgid "Skipping unknown ARM relocation type: %d\n"
-msgstr "Se saltarà el tipus de relocalització no esperat %s\n"
+msgstr "Se saltarà el tipus de relocalització ARM desconegut %d\n"
-#: readelf.c:8451
-#, fuzzy, c-format
-#| msgid "Skipping unexpected relocation type %s\n"
+#: readelf.c:10770
+#, c-format
msgid "Skipping unexpected ARM relocation type %s\n"
-msgstr "Se saltarà el tipus de relocalització no esperat %s\n"
+msgstr "Se saltarà el tipus de relocalització ARM no esperat %s\n"
-#: readelf.c:8460
-#, fuzzy, c-format
-#| msgid "Skipping unexpected relocation type %s\n"
+#: readelf.c:10779
+#, c-format
msgid "Skipping unknown C6000 relocation type: %d\n"
-msgstr "Se saltarà el tipus de relocalització no esperat %s\n"
+msgstr "Se saltarà el tipus de relocalització C6000 no esperat %d\n"
-#: readelf.c:8470
-#, fuzzy, c-format
-#| msgid "Skipping unexpected relocation type %s\n"
+#: readelf.c:10789
+#, c-format
msgid "Skipping unexpected C6000 relocation type %s\n"
-msgstr "Se saltarà el tipus de relocalització no esperat %s\n"
+msgstr "Se saltarà el tipus de relocalització C6000 no esperat %s\n"
#. This function currently only supports ARM and TI unwinders.
-#: readelf.c:8479
-#, fuzzy
-#| msgid "Only DWARF 2 and 3 pubnames are currently supported\n"
+#: readelf.c:10798
msgid "Only TI and ARM unwinders are currently supported\n"
-msgstr "Actualment sols estan suportats els noms pub DWARF 2 i 3.\n"
+msgstr "Sols estan suportat els desplegadors TI i ARM\n"
-#: readelf.c:8542
+#: readelf.c:10861
#, c-format
msgid "[Truncated opcode]\n"
msgstr "[Opcode truncat]\n"
-#: readelf.c:8590 readelf.c:8806
+#: readelf.c:10909 readelf.c:11129
#, c-format
msgid "Refuse to unwind"
msgstr "No es pot desplegar"
-#: readelf.c:8613
+#: readelf.c:10932
#, c-format
msgid " [Reserved]"
msgstr " [Reservat]"
-#: readelf.c:8641
+#: readelf.c:10960
#, c-format
msgid " finish"
msgstr " acaba"
-#: readelf.c:8646 readelf.c:8739
+#: readelf.c:10965 readelf.c:11062
#, c-format
msgid "[Spare]"
msgstr "[Estalvia]"
-#: readelf.c:8680
-#, fuzzy
-#| msgid "corrupt tag\n"
-msgid "corrupt change to vsp"
-msgstr "senyalador corrupte\n"
+#: readelf.c:10999
+msgid "corrupt change to vsp\n"
+msgstr "canvi malmés a vsp\n"
+
+#: readelf.c:11025
+#, c-format
+msgid " pop {ra_auth_code}"
+msgstr " pop {ra_auth_code}"
+
+#: readelf.c:11027
+#, c-format
+msgid " vsp as modifier for PAC validation"
+msgstr " vsp com a modificador per a la validació PAC"
-#: readelf.c:8761 readelf.c:8911
+#: readelf.c:11084 readelf.c:11241
#, c-format
msgid " [unsupported opcode]"
msgstr " [opcode no suportat]"
-#: readelf.c:8854
+#: readelf.c:11177
#, c-format
msgid "pop frame {"
msgstr "mostra marc {"
-#: readelf.c:8865
+#: readelf.c:11180
+#, c-format
+msgid "*corrupt* - no registers specified"
+msgstr "*malmès* - no s'ha especificat cap registre"
+
+#: readelf.c:11194
msgid "[pad]"
msgstr "[farceix]"
-#: readelf.c:8893
+#: readelf.c:11223
msgid "Corrupt stack pointer adjustment detected\n"
-msgstr ""
+msgstr "S'ha detectat un ajust del punter de la pila malmès\n"
-#: readelf.c:8900
+#: readelf.c:11230
#, c-format
-msgid "sp = sp + %ld"
-msgstr "sp = sp + %ld"
+msgid "sp = sp + %<PRId64>"
+msgstr "sp = sp + %<PRId64>"
-#: readelf.c:8970
+#: readelf.c:11305
#, c-format
msgid " Personality routine: "
msgstr " Rutina de personalitat: "
-#: readelf.c:9002
+#: readelf.c:11337
#, c-format
msgid " [Truncated data]\n"
msgstr " [Dades truncades]\n"
-#: readelf.c:9026
+#: readelf.c:11361
#, c-format
msgid "Corrupt ARM compact model table entry: %x \n"
-msgstr "Entrada corrupta de tauls de model compacte ARM: %x \n"
+msgstr "Entrada malmesa de tauls de model compacte ARM: %x \n"
-#: readelf.c:9031
+#: readelf.c:11366
#, c-format
msgid " Compact model index: %d\n"
msgstr " Ãndex de model compacte %d\n"
-#: readelf.c:9057
+#: readelf.c:11392
msgid "Unknown ARM compact model index encountered\n"
msgstr "Trobat u índex desconegut de model compacte ARM\n"
-#: readelf.c:9058
+#: readelf.c:11393
#, c-format
msgid " [reserved]\n"
msgstr " [reservat]\n"
-#: readelf.c:9073
+#: readelf.c:11408
#, c-format
msgid " Restore stack from frame pointer\n"
msgstr " Recupera la pila del punter de marc\n"
-#: readelf.c:9075
+#: readelf.c:11410
#, c-format
msgid " Stack increment %d\n"
msgstr " Increment de pila %d\n"
-#: readelf.c:9076
+#: readelf.c:11411
#, c-format
msgid " Registers restored: "
msgstr " Registres restaurats: "
-#: readelf.c:9081
+#: readelf.c:11416
#, c-format
msgid " Return register: %s\n"
msgstr " Registre de retorn: %s\n"
-#: readelf.c:9085
+#: readelf.c:11420
#, c-format
msgid " [reserved (%d)]\n"
msgstr " [reservat (%d)]\n"
-#: readelf.c:9089
-#, fuzzy, c-format
-#| msgid "Unsupported architecture type %d encountered when decoding unwind table"
+#: readelf.c:11424
+#, c-format
msgid "Unsupported architecture type %d encountered when decoding unwind table\n"
-msgstr "S'ha trobat un tipus d'arquitectura no suportada %d quan s'estava decodificant la taula de desplegament"
+msgstr "S'ha trobat un tipus d'arquitectura no suportada %d quan s'estava decodificant la taula de desplegament\n"
-#: readelf.c:9144
+#: readelf.c:11479
#, c-format
msgid "corrupt index table entry: %x\n"
msgstr "entrada de taula d'índex corrrupta: %x\n"
-#: readelf.c:9184
-#, fuzzy, c-format
-#| msgid "skipping invalid relocation offset 0x%lx in section %s\n"
-msgid "Unwind entry contains corrupt offset (0x%lx) into section %s\n"
-msgstr "se saltarà la posició 0x%lx de relocalització no vàlida a la secció %s\n"
+#: readelf.c:11518
+#, c-format
+msgid "Unwind entry contains corrupt offset (%#<PRIx64>) into section %s\n"
+msgstr "L'entrada de desplegament conté un posició malmesa (%#<PRIx64>) a la secció %s\n"
-#: readelf.c:9200
+#: readelf.c:11534
#, c-format
-msgid "Could not locate .ARM.extab section containing 0x%lx.\n"
-msgstr "No s'ha pogut localitzar la secció .ARM.extab que conté 0x%lx.\n"
+msgid "Could not locate .ARM.extab section containing %#<PRIx64>.\n"
+msgstr "No s'ha pogut localitzar la secció .ARM.extab que conté %#<PRIx64>.\n"
-#: readelf.c:9245
-#, fuzzy, c-format
-#| msgid "Unsupported architecture type %d encountered when processing unwind table"
+#: readelf.c:11578
+#, c-format
msgid "Unsupported architecture type %d encountered when processing unwind table\n"
-msgstr "S'ha trobat un tipus d'arquitectura no suportada %d quan s'estava processant la taula de desplegament<"
+msgstr "S'ha trobat un tipus d'arquitectura no suportada %d quan s'estava processant la taula de desplegament\n"
-#: readelf.c:9267
-msgid "Multiple string tables found in file.\n"
-msgstr ""
+#: readelf.c:11640
+#, c-format
+msgid "No processor specific unwind information to decode\n"
+msgstr "No hi ha informació específica per a desenrotllar el processador per a descodificar\n"
-#: readelf.c:9333
+#: readelf.c:11670
#, c-format
msgid ""
"\n"
@@ -8664,200 +10296,260 @@ msgstr ""
"\n"
"La decodificació de les seccions de desplegament per al tipus de màquina %s no està suportada actualment.\n"
-#: readelf.c:9345
+#: readelf.c:11697
#, c-format
msgid "NONE"
msgstr "CAP"
-#: readelf.c:9370
+#: readelf.c:11722
#, c-format
msgid "Interface Version: %s"
msgstr "Versió d'interfície: %s"
-#. Note: coded this way so that there is a single string for translation.
-#: readelf.c:9376
-#, fuzzy, c-format
-#| msgid "<corrupt: %"
-msgid "<corrupt: %s>"
-msgstr "<corrupte: %"
+#: readelf.c:11725
+#, c-format
+msgid "Interface Version: <corrupt: %<PRIx64>>"
+msgstr "Versió d'interfície: <malmès: %<PRIx64>>"
-#: readelf.c:9394
+#: readelf.c:11743
#, c-format
msgid "Time Stamp: %s"
msgstr "Marca de temps: %s"
-#: readelf.c:9572 readelf.c:9620
+#: readelf.c:11932 readelf.c:11982
msgid "dynamic section"
msgstr "secció dinàmica"
-#: readelf.c:9592 readelf.c:9641
-#, fuzzy, c-format
-#| msgid "Out of memory allocating 0x%lx bytes for %s\n"
-msgid "Out of memory allocating space for %lu dynamic entries\n"
-msgstr "Memòria exhaurida quan s'estava assignant 0x%lx bytes per a %s\n"
+#: readelf.c:11952 readelf.c:12003 readelf.c:12111
+#, c-format
+msgid "Out of memory allocating space for %<PRIu64> dynamic entries\n"
+msgstr "S'ha exhaurit la memòria quan s'assignava espai per a %<PRIu64> entrades dinàmiques\n"
+
+#: readelf.c:12077
+#, c-format
+msgid "Size overflow prevents reading %<PRIu64> elements of size %u\n"
+msgstr "El desbordament de mida impedeix llegir %<PRIu64> elements de mida %u\n"
+
+#: readelf.c:12087
+#, c-format
+msgid "Invalid number of dynamic entries: %<PRIu64>\n"
+msgstr "Nombre no vàlid d'entrades dinàmiques: %<PRIu64>\n"
+
+#: readelf.c:12095
+#, c-format
+msgid "Out of memory reading %<PRIu64> dynamic entries\n"
+msgstr "S'ha exhaurit la memòria quan es llegien %<PRIu64> entrades dinàmiques\n"
+
+#: readelf.c:12102
+#, c-format
+msgid "Unable to read in %<PRIu64> bytes of dynamic data\n"
+msgstr "No s'han pogut llegir %<PRIu64> bytes de dades dinàmiques\n"
+
+#: readelf.c:12152 readelf.c:12206 readelf.c:12230 readelf.c:12263
+#: readelf.c:12289 readelf.c:12308
+msgid "Unable to seek to start of dynamic information\n"
+msgstr "No s'ha pogut buscar fins al principi de la informació dinàmica\n"
+
+#: readelf.c:12158 readelf.c:12212
+msgid "Failed to read in number of buckets\n"
+msgstr "No s'ha pogut llegir el nombre de cubells\n"
-#: readelf.c:9701
+#: readelf.c:12164
+msgid "Failed to read in number of chains\n"
+msgstr "No s'ha pogut llegir el nombre de cadenes\n"
+
+#: readelf.c:12271
+msgid "Failed to determine last chain length\n"
+msgstr "No s'ha pogut determinar l'última longitud de cadena\n"
+
+#: readelf.c:12371
#, c-format
msgid ""
"\n"
-"There is no dynamic section in this file.\n"
+"There is no dynamic section in linked file '%s'.\n"
msgstr ""
"\n"
-"No hi ha una secció dinàmica a aquest fitxer.\n"
+"No hi ha una secció dinàmica al fitxer enllaçat «%s».\n"
-#. See PR 21379 for a reproducer.
-#: readelf.c:9739
+#: readelf.c:12374
#, c-format
-msgid "Invalid DT_SYMTAB entry: %lx"
+msgid ""
+"\n"
+"There is no dynamic section in this file.\n"
msgstr ""
+"\n"
+"No hi ha una secció dinàmica a aquest fitxer.\n"
-#: readelf.c:9756
-#, fuzzy
-#| msgid "File contains multiple dynamic symbol tables\n"
-msgid "Multiple dynamic symbol table sections found\n"
-msgstr "El fitxer conté múltiples taules de símbols dinàmics\n"
+#. See PR 21379 for a reproducer.
+#: readelf.c:12434
+msgid "Invalid PT_LOAD entry\n"
+msgstr "Entrada PT_LOAD no vàlida\n"
-#: readelf.c:9762
-msgid "Unable to determine the number of symbols to load\n"
-msgstr "No es pot determinar el nombre de símbols per carregar\n"
+#: readelf.c:12460
+msgid "the .dynsym section doesn't match the DT_SYMTAB and DT_SYMENT tags\n"
+msgstr "la secció .dynsym no coincideix amb les etiquetes DT_SYMTAB i DT_SYMENT\n"
-#: readelf.c:9798
-msgid "Unable to determine the length of the dynamic string table\n"
-msgstr "No es pot determinar la longitud de la taula de cadenes dinàmiques de caràcters\n"
+#: readelf.c:12470
+msgid "Corrupt DT_SYMTAB dynamic entry\n"
+msgstr "Entrada dinàmica DT_SYMTAB malmesa\n"
-#: readelf.c:9804
-#, fuzzy
-#| msgid "File contains multiple dynamic string tables\n"
-msgid "Multiple dynamic string tables found\n"
-msgstr "El fitxer conté múltiples taules de símbols dinàmics\n"
+#: readelf.c:12506
+msgid "the .dynstr section doesn't match the DT_STRTAB and DT_STRSZ tags\n"
+msgstr "la secció .dynstr no coincideix amb les etiquetes DT_STRTAB i DT_STRSZ\n"
-#: readelf.c:9810
+#: readelf.c:12511
msgid "dynamic string table"
msgstr "taula de cadenes dinàmiques de caràcters"
-#: readelf.c:9831
+#: readelf.c:12514
+msgid "Corrupt DT_STRTAB dynamic entry\n"
+msgstr "Entrada dinàmica DT_STRTAB malmesa\n"
+
+#: readelf.c:12539
#, c-format
msgid "Bad value (%d) for SYMINENT entry\n"
-msgstr ""
+msgstr "Valor incorrecte (%d) per a l'entrada SYMINENT\n"
-#: readelf.c:9850
+#: readelf.c:12558
msgid "symbol information"
msgstr "informació de símbols"
-#: readelf.c:9856
+#: readelf.c:12564
msgid "Multiple dynamic symbol information sections found\n"
-msgstr ""
+msgstr "S'han trobat múltiples seccions d'informació de símbols dinàmics\n"
-#: readelf.c:9862
-#, fuzzy, c-format
-#| msgid "Out of memory allocating 0x%lx bytes for %s\n"
-msgid "Out of memory allocating %lu byte for dynamic symbol info\n"
-msgstr "Memòria exhaurida quan s'estava assignant 0x%lx bytes per a %s\n"
+#: readelf.c:12570
+#, c-format
+msgid "Out of memory allocating %<PRIu64> bytes for dynamic symbol info\n"
+msgstr "Memòria exhaurida quan s'estava assignant %<PRIu64> bytes per a la informació de símbols dinàmics\n"
-#: readelf.c:9881
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "Dynamic section at offset 0x%lx contains %u entries:\n"
+#: readelf.c:12594
+#, c-format
msgid ""
"\n"
-"Dynamic section at offset 0x%lx contains %lu entry:\n"
+"In linked file '%s' the dynamic section at offset %#<PRIx64> contains %<PRIu64> entry:\n"
msgid_plural ""
"\n"
-"Dynamic section at offset 0x%lx contains %lu entries:\n"
+"In linked file '%s' the dynamic section at offset %#<PRIx64> contains %<PRIu64> entries:\n"
msgstr[0] ""
"\n"
-"La secció dinàmica a la posició 0x%lx conté %u entrades:\n"
+"Al fitxer enllaçat «%s» la secció dinàmica a la posició %#<PRIx64> conté %<PRIu64> entrada:\n"
msgstr[1] ""
"\n"
-"La secció dinàmica a la posició 0x%lx conté %u entrades:\n"
+"Al fitxer enllaçat «%s» la secció dinàmica a la posició %#<PRIx64> conté %<PRIu64> entrades:\n"
-#: readelf.c:9888
+#: readelf.c:12601
+#, c-format
+msgid ""
+"\n"
+"Dynamic section at offset %#<PRIx64> contains %<PRIu64> entry:\n"
+msgid_plural ""
+"\n"
+"Dynamic section at offset %#<PRIx64> contains %<PRIu64> entries:\n"
+msgstr[0] ""
+"\n"
+"La secció dinàmica a la posició %#<PRIx64> conté %<PRIu64> entrada:\n"
+msgstr[1] ""
+"\n"
+"La secció dinàmica a la posició %#<PRIx64> conté %<PRIu64> entrades:\n"
+
+#: readelf.c:12608
#, c-format
msgid " Tag Type Name/Value\n"
msgstr " Seny Tipus Nom/Valor\n"
-#: readelf.c:9922
+#: readelf.c:12642
#, c-format
msgid "Auxiliary library"
msgstr "Biblioteca auxiliar"
-#: readelf.c:9926
+#: readelf.c:12646
#, c-format
msgid "Filter library"
msgstr "Biblioteca de filtres"
-#: readelf.c:9930
+#: readelf.c:12650
#, c-format
msgid "Configuration file"
msgstr "Fitxer de configuració"
-#: readelf.c:9934
+#: readelf.c:12654
#, c-format
msgid "Dependency audit library"
msgstr "Biblioteca d'auditoria de dependències"
-#: readelf.c:9938
+#: readelf.c:12658
#, c-format
msgid "Audit library"
msgstr "Biblioteca d'auditoria"
-#: readelf.c:9956 readelf.c:9984 readelf.c:10012
+#: readelf.c:12677 readelf.c:12705 readelf.c:12733 readelf.c:13073
#, c-format
msgid "Flags:"
msgstr "Senyaladors:"
-#: readelf.c:9959 readelf.c:9987 readelf.c:10014
+#: readelf.c:12680 readelf.c:12708 readelf.c:12735 readelf.c:13075
#, c-format
msgid " None\n"
msgstr " Cap\n"
-#: readelf.c:10220
+#: readelf.c:12942
#, c-format
msgid "Shared library: [%s]"
msgstr "Biblioteca compartida: [%s]"
-#: readelf.c:10223
+#: readelf.c:12946
#, c-format
msgid " program interpreter"
msgstr " intèrpret del programa"
-#: readelf.c:10227
+#: readelf.c:12950
#, c-format
msgid "Library soname: [%s]"
msgstr "soname de la biblioteca: [%s]"
-#: readelf.c:10231
+#: readelf.c:12954
#, c-format
msgid "Library rpath: [%s]"
msgstr "rpath de la biblioteca: [%s]"
-#: readelf.c:10235
+#: readelf.c:12958
#, c-format
msgid "Library runpath: [%s]"
msgstr "runpath de la biblioteca: [%s]"
-#: readelf.c:10269
+#: readelf.c:12995
#, c-format
msgid " (bytes)\n"
msgstr " (bytes)\n"
-#: readelf.c:10299
+#: readelf.c:13026
#, c-format
msgid "Not needed object: [%s]\n"
msgstr "Objecte que no es necessita: [%s]\n"
-#: readelf.c:10324
-#, fuzzy, c-format
-#| msgid "<corrupt: %"
-msgid "<corrupt time val: %lx"
-msgstr "<corrupte: %"
+#: readelf.c:13051
+#, c-format
+msgid "<corrupt time val: %<PRIx64>"
+msgstr "<val de temps malmès: %<PRIx64>"
-#: readelf.c:10441
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "Version definition section '%s' contains %u entries:\n"
+#: readelf.c:13194
+#, c-format
+msgid ""
+"\n"
+"In linked file '%s' the version definition section '%s' contains %u entry:\n"
+msgid_plural ""
+"\n"
+"In linked file '%s' the version definition section '%s' contains %u entries:\n"
+msgstr[0] ""
+"\n"
+"Al fitxer enllaçat «%s» la secció de definició de versió «%s» conté %u entrada:\n"
+msgstr[1] ""
+"\n"
+"Al fitxer enllaçat «%s» la secció de definició de versió «%s» conté %u entrades:\n"
+
+#: readelf.c:13201
+#, c-format
msgid ""
"\n"
"Version definition section '%s' contains %u entry:\n"
@@ -8866,229 +10558,246 @@ msgid_plural ""
"Version definition section '%s' contains %u entries:\n"
msgstr[0] ""
"\n"
-"La secció de definició de versió '%s' conté %u entrades:\n"
+"La secció de definició de versió «%s» conté %u entrada:\n"
msgstr[1] ""
"\n"
-"La secció de definició de versió '%s' conté %u entrades:\n"
+"La secció de definició de versió «%s» conté %u entrades:\n"
-#: readelf.c:10449
+#: readelf.c:13209 readelf.c:13355 readelf.c:13520
#, c-format
-msgid " Addr: 0x"
-msgstr " Adr: 0x"
+msgid " Addr: 0x%016<PRIx64>"
+msgstr " Adr: 0x%016<PRIx64>"
-#: readelf.c:10451 readelf.c:10587 readelf.c:10743
+#: readelf.c:13210 readelf.c:13356 readelf.c:13521
#, c-format
-msgid " Offset: %#08lx Link: %u (%s)\n"
-msgstr " Posició: %#08lx Enllaç: %u (%s)\n"
+msgid " Offset: 0x%08<PRIx64> Link: %u (%s)\n"
+msgstr " Posició: 0x%08<PRIx64> Enllaç: %u (%s)\n"
-#: readelf.c:10457
+#: readelf.c:13216
msgid "version definition section"
msgstr "secció de definició de versió"
-#: readelf.c:10486
-#, fuzzy, c-format
-#| msgid " %#06x: Rev: %d Flags: %s"
-msgid " %#06lx: Rev: %d Flags: %s"
-msgstr " %#06x: Rev: %d Senyaladors: %s"
+#: readelf.c:13245
+#, c-format
+msgid " %#06zx: Rev: %d Flags: %s"
+msgstr " %#06zx: Rev: %d Senyaladors: %s"
-#: readelf.c:10489
+#: readelf.c:13248
#, c-format
msgid " Index: %d Cnt: %d "
msgstr " Ãndex: %d Cnt: %d "
-#: readelf.c:10506
+#: readelf.c:13265
#, c-format
msgid "Name: %s\n"
msgstr "Nom: %s\n"
-#: readelf.c:10508
+#: readelf.c:13268
#, c-format
msgid "Name index: %ld\n"
msgstr "Ãndex de noms: %ld\n"
-#: readelf.c:10517
+#: readelf.c:13277
#, c-format
msgid "Invalid vda_next field of %lx\n"
-msgstr ""
+msgstr "Camp vda_next no vàlid de %lx\n"
-#: readelf.c:10537
-#, fuzzy, c-format
-#| msgid " %#06x: Parent %d: %s\n"
-msgid " %#06lx: Parent %d: %s\n"
-msgstr " %#06x: Pare %d: %s\n"
+#: readelf.c:13297
+#, c-format
+msgid " %#06zx: Parent %d: %s\n"
+msgstr " %#06zx: Pare %d: %s\n"
-#: readelf.c:10540
-#, fuzzy, c-format
-#| msgid " %#06x: Parent %d, name index: %ld\n"
-msgid " %#06lx: Parent %d, name index: %ld\n"
-msgstr " %#06x: Pare %d, índex de noms: %ld\n"
+#: readelf.c:13301
+#, c-format
+msgid " %#06zx: Parent %d, name index: %ld\n"
+msgstr " %#06zx: Pare %d, índex de noms: %ld\n"
-#: readelf.c:10545
+#: readelf.c:13306
#, c-format
msgid " Version def aux past end of section\n"
msgstr " Versió def aux s'estén més enllà del final de la secció\n"
-#: readelf.c:10552
+#: readelf.c:13313
#, c-format
msgid "Invalid vd_next field of %lx\n"
-msgstr ""
+msgstr "Camp vd_next no vàlid de %lx\n"
-#: readelf.c:10563
+#: readelf.c:13324
#, c-format
msgid " Version definition past end of section\n"
msgstr " La definició de la versió s'estén més enllà del final de la secció\n"
-#: readelf.c:10578
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "Version needs section '%s' contains %u entries:\n"
+#: readelf.c:13340
+#, c-format
msgid ""
"\n"
-"Version needs section '%s' contains %u entry:\n"
+"In linked file '%s' the version needs section '%s' contains %u entry:\n"
msgid_plural ""
"\n"
-"Version needs section '%s' contains %u entries:\n"
+"In linked file '%s' the version needs section '%s' contains %u entries:\n"
msgstr[0] ""
"\n"
-"La versió necessita de la secció '%s' conté %u entrades:\n"
+"Al fitxer enllaçat «%s» la versió necessita la secció «%s» conté %u entrada:\n"
msgstr[1] ""
"\n"
-"La versió necessita de la secció '%s' conté %u entrades:\n"
+"Al fitxer enllaçat «%s» la versió necessita la secció «%s» conté %u entrades:\n"
-#: readelf.c:10585
+#: readelf.c:13347
#, c-format
-msgid " Addr: 0x"
-msgstr " Adr: 0x"
+msgid ""
+"\n"
+"Version needs section '%s' contains %u entry:\n"
+msgid_plural ""
+"\n"
+"Version needs section '%s' contains %u entries:\n"
+msgstr[0] ""
+"\n"
+"La versió necessita de la secció «%s» conté %u entrada:\n"
+msgstr[1] ""
+"\n"
+"La versió necessita de la secció «%s» conté %u entrades:\n"
-#: readelf.c:10594
+#: readelf.c:13363
msgid "Version Needs section"
msgstr "La versió necessita secció"
-#: readelf.c:10619
-#, fuzzy, c-format
-#| msgid " %#06x: Version: %d"
-msgid " %#06lx: Version: %d"
-msgstr " %#06x: Versió: %d"
+#: readelf.c:13388
+#, c-format
+msgid " %#06zx: Version: %d"
+msgstr " %#06zx: Versió: %d"
-#: readelf.c:10622
+#: readelf.c:13391
#, c-format
msgid " File: %s"
msgstr " Fitxer: %s"
-#: readelf.c:10624
+#: readelf.c:13394
#, c-format
msgid " File: %lx"
msgstr " Fitxer: %lx"
-#: readelf.c:10626
+#: readelf.c:13396
#, c-format
msgid " Cnt: %d\n"
msgstr " Cnt: %d\n"
-#: readelf.c:10649
-#, fuzzy, c-format
-#| msgid " %#06x: Name: %s"
-msgid " %#06lx: Name: %s"
-msgstr " %#06x: Nom: %s"
+#: readelf.c:13419
+#, c-format
+msgid " %#06zx: Name: %s"
+msgstr " %#06zx: Nom: %s"
-#: readelf.c:10652
-#, fuzzy, c-format
-#| msgid " %#06x: Name index: %lx"
-msgid " %#06lx: Name index: %lx"
-msgstr " %#06x: Ãndex de noms: %lx"
+#: readelf.c:13422
+#, c-format
+msgid " %#06zx: Name index: %lx"
+msgstr " %#06zx: Ãndex de noms: %lx"
-#: readelf.c:10655
+#: readelf.c:13425
#, c-format
msgid " Flags: %s Version: %d\n"
msgstr " Senyaladors: %s Versió: %d\n"
-#: readelf.c:10661
+#: readelf.c:13431
#, c-format
msgid "Invalid vna_next field of %lx\n"
-msgstr ""
+msgstr "Camp vna_next no vàlid de %lx\n"
-#: readelf.c:10674
-msgid "Missing Version Needs auxillary information\n"
+#: readelf.c:13444
+msgid "Missing Version Needs auxiliary information\n"
msgstr "La versió que falta necessita de informació auxiliar\n"
-#: readelf.c:10679
+#: readelf.c:13449
#, c-format
msgid "Invalid vn_next field of %lx\n"
-msgstr ""
+msgstr "Camp vn_next no vàlid de %lx\n"
-#: readelf.c:10689
+#: readelf.c:13459
msgid "Missing Version Needs information\n"
msgstr "La versió que falta necessita informació\n"
-#: readelf.c:10727
+#: readelf.c:13497
msgid "version string table"
msgstr "taula de cadenes de caràcters de versió"
-#: readelf.c:10734
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "Version symbols section '%s' contains %d entries:\n"
+#: readelf.c:13505
+#, c-format
msgid ""
"\n"
-"Version symbols section '%s' contains %lu entry:\n"
+"In linked file '%s' the version symbols section '%s' contains %<PRIu64> entry:\n"
msgid_plural ""
"\n"
-"Version symbols section '%s' contains %lu entries:\n"
+"In linked file '%s' the version symbols section '%s' contains %<PRIu64> entries:\n"
msgstr[0] ""
"\n"
-"La secció de símbols de versió '%s' conté %d entrades:\n"
+"Al fitxer enllaçat «%s» la secció de símbols de versió «%s» conté% <PRIu64> entrada:\n"
msgstr[1] ""
"\n"
-"La secció de símbols de versió '%s' conté %d entrades:\n"
+"Al fitxer enllaçat «%s» la secció de símbols de versió «%s» conté %<PRIu64> entrades:\n"
-#: readelf.c:10741
+#: readelf.c:13512
#, c-format
-msgid " Addr: "
-msgstr " Adr: "
+msgid ""
+"\n"
+"Version symbols section '%s' contains %<PRIu64> entry:\n"
+msgid_plural ""
+"\n"
+"Version symbols section '%s' contains %<PRIu64> entries:\n"
+msgstr[0] ""
+"\n"
+"La secció de símbols de versió «%s» conté %<PRIu64> entrada:\n"
+msgstr[1] ""
+"\n"
+"La secció de símbols de versió «%s» conté %<PRIu64> entrades:\n"
-#: readelf.c:10752
+#: readelf.c:13530
msgid "version symbol data"
msgstr "dades de símbols de versió"
-#: readelf.c:10772
+#: readelf.c:13550
msgid "*invalid*"
msgstr "no vàlid"
-#: readelf.c:10780
+#: readelf.c:13558
msgid " 0 (*local*) "
msgstr " 0 (*local*) "
-#: readelf.c:10784
+#: readelf.c:13562
msgid " 1 (*global*) "
msgstr " 1 (*global*) "
-#: readelf.c:10795
+#: readelf.c:13573
msgid "invalid index into symbol array\n"
msgstr "índex no vàlid a matriu de símbols\n"
-#: readelf.c:10817 readelf.c:11460
+#: readelf.c:13596 readelf.c:14148
msgid "version need"
msgstr "necessitat de versió"
-#: readelf.c:10828
+#: readelf.c:13607
msgid "version need aux (2)"
msgstr "necessitat aux (2) de versió"
-#: readelf.c:10874 readelf.c:11400
+#: readelf.c:13654 readelf.c:14092
msgid "version def"
msgstr "definició de versió"
-#: readelf.c:10902 readelf.c:11431
+#: readelf.c:13682 readelf.c:14123
msgid "version def aux"
msgstr "definició de versió aux"
-#: readelf.c:10910
+#: readelf.c:13690
msgid "*both*"
+msgstr "*ambdós*"
+
+#: readelf.c:13722
+#, c-format
+msgid ""
+"\n"
+"No version information found in linked file '%s'.\n"
msgstr ""
+"\n"
+"Sense informació de versió al fitxer enllaçat «%s».\n"
-#: readelf.c:10940
+#: readelf.c:13725
#, c-format
msgid ""
"\n"
@@ -9097,179 +10806,246 @@ msgstr ""
"\n"
"No s'ha trobat informació de versió en aquest fitxer.\n"
-#: readelf.c:11039
-#, fuzzy, c-format
-#| msgid "Unrecognized form: %lu\n"
-msgid "Unrecognized visibility value: %u"
-msgstr "Forma no reconeguda: %lu\n"
+#: readelf.c:13821
+#, c-format
+msgid "Unrecognized visibility value: %u\n"
+msgstr "Valor de visibilitat no reconegut: %u\n"
-#: readelf.c:11100
-#, fuzzy, c-format
-#| msgid "Unrecognized XCOFF type %d\n"
+#: readelf.c:13834
+#, c-format
+msgid "Unrecognized alpha specific other value: %u\n"
+msgstr "Altre valor específic alpha no reconegut: %u\n"
+
+#: readelf.c:13911
+#, c-format
msgid "Unrecognized IA64 VMS ST Function type: %d\n"
-msgstr "Tipus XCOFF no reconegut %d\n"
+msgstr "Tipus de funció IA64 VMS ST no reconegut: %d\n"
-#: readelf.c:11124
+#: readelf.c:13935
#, c-format
msgid "Unrecognized IA64 VMS ST Linkage: %d\n"
-msgstr ""
+msgstr "Enllaçament IA64 VMS ST Linkage no reconegut: %d\n"
-#: readelf.c:11150
+#: readelf.c:13961
#, c-format
msgid "<localentry>: %d"
msgstr "<localentry>: %d"
-#: readelf.c:11184
+#: readelf.c:13975
+msgid " VARIANT_CC"
+msgstr " VARIANT_CC"
+
+#: readelf.c:14026
#, c-format
msgid "<other>: %x"
msgstr "<un altre>: %x"
-#: readelf.c:11223
-#, fuzzy, c-format
-#| msgid "Reading section failed"
-msgid "bad section index[%3d]"
-msgstr "La lectura de la secció ha fallat"
-
-#: readelf.c:11244
-#, c-format
-msgid "Size truncation prevents reading %s elements of size %u\n"
-msgstr ""
-
-#: readelf.c:11253
-#, fuzzy, c-format
-#| msgid " Number of used entries: %d\n"
-msgid "Invalid number of dynamic entries: %s\n"
-msgstr " Nombre d'entrades usades: %d\n"
-
-#: readelf.c:11261
-#, fuzzy, c-format
-#| msgid "Out of memory reading long symbol names in archive\n"
-msgid "Out of memory reading %s dynamic entries\n"
-msgstr "S'ha exhaurit la memòria quan s'estaven llegint noms llargs de símbol a l'arxiu\n"
-
-#: readelf.c:11268
-#, fuzzy, c-format
-#| msgid "Unable to read in dynamic data\n"
-msgid "Unable to read in %s bytes of dynamic data\n"
-msgstr "No s'ha pogut llegir dins de les dades dinàmiques\n"
-
-#: readelf.c:11277
-#, fuzzy, c-format
-#| msgid "Out of memory allocating 0x%lx bytes for %s\n"
-msgid "Out of memory allocating space for %s dynamic entries\n"
-msgstr "Memòria exhaurida quan s'estava assignant 0x%lx bytes per a %s\n"
-
-#: readelf.c:11304
-#, fuzzy, c-format
-#| msgid "no information for symbol number %ld\n"
-msgid "<No info available for dynamic symbol number %lu>\n"
-msgstr "no hi ha informació per al símbol número %ld\n"
-
-#: readelf.c:11336
-#, c-format
-msgid " <corrupt: %14ld>"
-msgstr " <corrupte: %14ld>"
-
-#: readelf.c:11363
+#: readelf.c:14054
msgid "version data"
msgstr "dades de versió"
-#: readelf.c:11478
+#: readelf.c:14166
msgid "version need aux (3)"
msgstr "aux necessitat de versió (3)"
-#: readelf.c:11556 readelf.c:11608 readelf.c:11632 readelf.c:11662
-#: readelf.c:11686
-msgid "Unable to seek to start of dynamic information\n"
-msgstr "No s'ha pogut buscar fins al principi de la informació dinàmica\n"
+#: readelf.c:14357
+#, c-format
+msgid "local symbol %<PRIu64> found at index >= %s's sh_info value of %u\n"
+msgstr "s'ha trobat el símbol local %<PRIu64> a l'índex >= %s el valor sh_info de %u\n"
-#: readelf.c:11562 readelf.c:11614
-msgid "Failed to read in number of buckets\n"
-msgstr "No s'ha pogut llegir el nombre de cubells\n"
+#: readelf.c:14376
+#, c-format
+msgid "Unknown LTO symbol definition encountered: %u\n"
+msgstr "S'ha trobat una definició de símbol LTO desconeguda: %u\n"
-#: readelf.c:11568
-msgid "Failed to read in number of chains\n"
-msgstr "No s'ha pogut llegir el nombre de cadenes\n"
+#: readelf.c:14395
+#, c-format
+msgid "Unknown LTO symbol visibility encountered: %u\n"
+msgstr "S'ha trobat una visibilitat de símbol LTO desconeguda: %u\n"
-#: readelf.c:11670
-msgid "Failed to determine last chain length\n"
-msgstr "No s'ha pogut determinar l'última longitud de cadena\n"
+#: readelf.c:14413
+#, c-format
+msgid "Unknown LTO symbol type encountered: %u\n"
+msgstr "S'ha trobat un tipus de símbol LTO desconegut: %u\n"
-#: readelf.c:11717
+#: readelf.c:14429
#, c-format
msgid ""
"\n"
-"Symbol table for image:\n"
+"The LTO Symbol table section '%s' in linked file '%s' is empty!\n"
msgstr ""
"\n"
-"Taula de símbols per la imatge:\n"
+"La secció «%s» de taula dse símbols al fitxer enllaçat «%s» està buida.\n"
-#: readelf.c:11719 readelf.c:11745
+#: readelf.c:14433
#, c-format
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Nom. Cub: Valor Mida Tipus Unió Vis Nom Ndx\n"
+msgid ""
+"\n"
+"LTO Symbol table '%s' is empty!\n"
+msgstr ""
+"\n"
+"La taula de símbols LTO «%s» està buida.\n"
-#: readelf.c:11721 readelf.c:11747
-#, c-format
-msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Nom. Cub: Valor Mida Tipus Unió Vis Nom Ndx\n"
+#: readelf.c:14448
+msgid "LTO symbols"
+msgstr "símbols LTO"
-#: readelf.c:11732 readelf.c:11928
-msgid "histogram chain is corrupt\n"
+#: readelf.c:14463
+#, c-format
+msgid "LTO Symbol extension table '%s' is empty!\n"
msgstr ""
+"La taula d'extensions de símbols LTO «%s» està buida.\n"
+"\n"
-#: readelf.c:11743
+#: readelf.c:14469
+msgid "LTO ext symbol data"
+msgstr "dades de símbols LTO ext"
+
+#: readelf.c:14474
+msgid "Unexpected version number in symbol extension table\n"
+msgstr "Nombre de versió inesperat a la taula d'extensions de símbols\n"
+
+#: readelf.c:14483
#, c-format
msgid ""
"\n"
-"Symbol table of `.gnu.hash' for image:\n"
+"In linked file '%s': "
msgstr ""
"\n"
-"Taula de símbols de `.gnu.hash' per a l'imatge:\n"
+"Al fitxer enllaçat «%s»: "
+
+#: readelf.c:14490
+#, c-format
+msgid "LTO Symbol table '%s' and extension table '%s' contain:\n"
+msgstr "La taula de símbols LTO «%s» i la taula d'extensions «%s» contenen:\n"
+
+#: readelf.c:14495
+#, c-format
+msgid "LTO Symbol table '%s'\n"
+msgstr "Taula de símbols LTO «%s»\n"
+
+#: readelf.c:14497
+#, c-format
+msgid " and extension table '%s' contain:\n"
+msgstr "i la taula d'extensions «%s» conté:\n"
-#: readelf.c:11788
+#: readelf.c:14502
+#, c-format
+msgid "LTO Symbol table '%s' contains:\n"
+msgstr "La taula de símbols LTO «%s» conté:\n"
+
+#: readelf.c:14507
+#, c-format
+msgid " Comdat_Key Kind Visibility Size Slot Type Section Name\n"
+msgstr " Comdat_Key Classe Visibilitat Mida Ranura Tipus Nom de secció\n"
+
+#: readelf.c:14509
+#, c-format
+msgid " Comdat_Key Kind Visibility Size Slot Name\n"
+msgstr " Comdat_Key Classe Visibilitat Mida Nom de la ranura\n"
+
+#: readelf.c:14556
+msgid "Ran out of LTO symbol extension data\n"
+msgstr "S'han esgotat les dades de l'extensió de símbols LTO\n"
+
+#: readelf.c:14576
+msgid "Data remains in the LTO symbol extension table\n"
+msgstr "Les dades romanen a la taula d'extensió de símbols LTO\n"
+
+#: readelf.c:14586
+msgid "Buffer overrun encountered whilst decoding LTO symbol table\n"
+msgstr "S'ha trobat un desbordament de memòria intermèdia mentre es descodifica la taula de símbols LTO\n"
+
+#: readelf.c:14628
+#, c-format
+msgid " Num: Value Size Type Bind Vis+Other Ndx(SecName) Name [+ Version Info]\n"
+msgstr " Num: Valor Tipus de mida Unió Vis+Altre Ndx(NomSec) Nom [+ Info Versió]\n"
+
+#: readelf.c:14634 readelf.c:14640
+#, c-format
+msgid " Num: Value Size Type Bind Vis Ndx Name\n"
+msgstr " Nom.: Valor Mida Tipus Unió Vis Nom Ndx\n"
+
+#: readelf.c:14649
+#, c-format
+msgid " Num: Value Size Type Bind Vis+Other Ndx(SecName) Name [+ Version Info]\n"
+msgstr " Num: Valor Tipus de Mida Unió Vis+Altre Ndx(NomSec) Nom [+ Info Versió]\n"
+
+#: readelf.c:14656 readelf.c:14662
+#, c-format
+msgid " Num: Value Size Type Bind Vis Ndx Name\n"
+msgstr " Nom.: Valor Mida Tipus Unió Vis Nom Ndx\n"
+
+#: readelf.c:14675
#, c-format
msgid ""
"\n"
"Symbol table '%s' has a sh_entsize of zero!\n"
msgstr ""
"\n"
-"La taula de símbols '%s' té una sh_entsize de zero!\n"
+"La taula de símbols «%s» té una sh_entsize de zero\n"
-#: readelf.c:11794
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "Symbol table '%s' contains %lu entries:\n"
+#: readelf.c:14683
+#, c-format
msgid ""
"\n"
-"Symbol table '%s' contains %lu entry:\n"
+"In linked file '%s' symbol section '%s' contains %<PRIu64> entry:\n"
msgid_plural ""
"\n"
-"Symbol table '%s' contains %lu entries:\n"
+"In linked file '%s' symbol section '%s' contains %<PRIu64> entries:\n"
msgstr[0] ""
"\n"
-"La taula de símbols '%s' conté %lu entrades:\n"
+"Al fitxer enllçat «%s» la secció de símbols «%s» conté %<PRIu64> entrada:\n"
msgstr[1] ""
"\n"
-"La taula de símbols '%s' conté %lu entrades:\n"
+"Al fitxer enllçat «%s» la secció de símbols «%s» conté %<PRIu64> entrades:\n"
-#: readelf.c:11801
+#: readelf.c:14692
#, c-format
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Nom.: Valor Mida Tipus Unió Vis Nom Ndx\n"
+msgid ""
+"\n"
+"Symbol table '%s' contains %<PRIu64> entry:\n"
+msgid_plural ""
+"\n"
+"Symbol table '%s' contains %<PRIu64> entries:\n"
+msgstr[0] ""
+"\n"
+"La taula de símbols «%s» conté %<PRIu64> entrada:\n"
+msgstr[1] ""
+"\n"
+"La taula de símbols «%s» conté %<PRIu64> entrades:\n"
-#: readelf.c:11803
+#: readelf.c:14760
#, c-format
-msgid " Num: Value Size Type Bind Vis Ndx Name\n"
-msgstr " Nom.: Valor Mida Tipus Unió Vis Nom Ndx\n"
+msgid ""
+"\n"
+"In linked file '%s' the dynamic symbol table contains %<PRIu64> entry:\n"
+msgid_plural ""
+"\n"
+"In linked file '%s' the dynamic symbol table contains %<PRIu64> entries:\n"
+msgstr[0] ""
+"\n"
+"En el fitxer enllaçat «%s» la taula de símbols dinàmics conté %<PRIu64> entrada:\n"
+msgstr[1] ""
+"\n"
+"Al fitxer enllaçat «%s» la taula de símbols dinàmics conté %<PRIu64> entrades:\n"
-#: readelf.c:11878
+#: readelf.c:14770
#, c-format
-msgid "local symbol %u found at index >= %s's sh_info value of %u\n"
-msgstr ""
+msgid ""
+"\n"
+"Symbol table for image contains %<PRIu64> entry:\n"
+msgid_plural ""
+"\n"
+"Symbol table for image contains %<PRIu64> entries:\n"
+msgstr[0] ""
+"\n"
+"La taula de símbols per a la imatge conté %<PRIu64> entrada:\n"
+msgstr[1] ""
+"\n"
+"La taula de símbols per a la imatge conté %<PRIu64> entrades:\n"
-#: readelf.c:11889
+#: readelf.c:14805
#, c-format
msgid ""
"\n"
@@ -9278,185 +11054,172 @@ msgstr ""
"\n"
"La informació de símbols dinàmics no està disponible per mostrar els símbols.\n"
-#: readelf.c:11902
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "Histogram for bucket list length (total of %lu buckets):\n"
+#: readelf.c:14818
+#, c-format
msgid ""
"\n"
-"Histogram for bucket list length (total of %lu bucket):\n"
+"Histogram for bucket list length (total of %<PRIu64> bucket):\n"
msgid_plural ""
"\n"
-"Histogram for bucket list length (total of %lu buckets):\n"
+"Histogram for bucket list length (total of %<PRIu64> buckets):\n"
msgstr[0] ""
"\n"
-"L'histograma per a la longitud de la llista de cubells (total de %lu cubells):\n"
+"L'histograma per a la longitud de la llista de cubells (total de%<PRIu64> cubell):\n"
msgstr[1] ""
"\n"
-"L'histograma per a la longitud de la llista de cubells (total de %lu cubells):\n"
+"L'histograma per a la longitud de la llista de cubells (total de%<PRIu64> cubells):\n"
-#: readelf.c:11912
-#, fuzzy
-#| msgid "Out of memory allocating dump request table.\n"
+#: readelf.c:14828
msgid "Out of memory allocating space for histogram buckets\n"
-msgstr "S'ha exhaurit la memòria quan s'estava assignant la taula de demanda de bolcat\n"
+msgstr "S'ha exhaurit la memòria quan s'estava assignant espai per als cubells d'histograma\n"
-#: readelf.c:11918 readelf.c:11994
+#: readelf.c:14834 readelf.c:14911
#, c-format
msgid " Length Number %% of total Coverage\n"
msgstr " Longitud Nombre %% del total Cobertura\n"
-#: readelf.c:11940
-#, fuzzy
-#| msgid "Out of memory allocating 0x%lx bytes for %s\n"
+#: readelf.c:14844
+msgid "histogram chain is corrupt\n"
+msgstr "la cadena de l'histograma està malmesa\n"
+
+#: readelf.c:14856
msgid "Out of memory allocating space for histogram counts\n"
-msgstr "Memòria exhaurida quan s'estava assignant 0x%lx bytes per a %s\n"
+msgstr "Memòria exhaurida quan s'estava assignant espai per al compteig d'histogrames\n"
-#: readelf.c:11980
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "Histogram for `.gnu.hash' bucket list length (total of %lu buckets):\n"
+#: readelf.c:14896
+#, c-format
msgid ""
"\n"
-"Histogram for `.gnu.hash' bucket list length (total of %lu bucket):\n"
+"Histogram for `%s' bucket list length (total of %<PRIu64> bucket):\n"
msgid_plural ""
"\n"
-"Histogram for `.gnu.hash' bucket list length (total of %lu buckets):\n"
+"Histogram for `%s' bucket list length (total of %<PRIu64> buckets):\n"
msgstr[0] ""
"\n"
-"L'histograma per a la longitud de la llista de cubells `.gnu.hash' (total de %lu cubells):\n"
+"L'histograma per a la longitud «%s» de la llista de cubells (total de%<PRIu64> cubell):\n"
msgstr[1] ""
"\n"
-"L'histograma per a la longitud de la llista de cubells `.gnu.hash' (total de %lu cubells):\n"
+"L'histograma per a la longitud «%s» de la llista de cubells (total de%<PRIu64> cubells):\n"
-#: readelf.c:11990
-#, fuzzy
-#| msgid "Out of memory allocating dump request table.\n"
+#: readelf.c:14907
msgid "Out of memory allocating space for gnu histogram buckets\n"
-msgstr "S'ha exhaurit la memòria quan s'estava assignant la taula de demanda de bolcat\n"
+msgstr "S'ha exhaurit la memòria quan s'estava assignant espai per a cubells d'histograma gnu\n"
-#: readelf.c:12016
-#, fuzzy
-#| msgid "Out of memory allocating dump request table.\n"
+#: readelf.c:14934
msgid "Out of memory allocating space for gnu histogram counts\n"
-msgstr "S'ha exhaurit la memòria quan s'estava assignant la taula de demanda de bolcat\n"
+msgstr "S'ha exhaurit la memòria quan s'estava assignant espai per a cubells d'histograma gnu\n"
-#: readelf.c:12061
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "Dynamic info segment at offset 0x%lx contains %d entries:\n"
+#: readelf.c:15000
+#, c-format
msgid ""
"\n"
-"Dynamic info segment at offset 0x%lx contains %d entry:\n"
+"In linked file '%s: the dynamic info segment at offset %#<PRIx64> contains %d entry:\n"
msgid_plural ""
"\n"
-"Dynamic info segment at offset 0x%lx contains %d entries:\n"
+"In linked file '%s: the dynamic info segment at offset %#<PRIx64> contains %d entries:\n"
msgstr[0] ""
"\n"
-"El segment d'informació dinàmica a la posicio 0x%lx conté %d entrades:\n"
+"Al fitxer enllaçat «%s»: el segment d'informació dinàmica a la posició %#<PRIx64> conté %d entrada:\n"
msgstr[1] ""
"\n"
-"El segment d'informació dinàmica a la posicio 0x%lx conté %d entrades:\n"
+"Al fitxer enllaçat «%s»: el segment d'informació dinàmica a la posició %#<PRIx64> conté %d entrades:\n"
-#: readelf.c:12068
+#: readelf.c:15007
+#, c-format
+msgid ""
+"\n"
+"Dynamic info segment at offset %#<PRIx64> contains %d entry:\n"
+msgid_plural ""
+"\n"
+"Dynamic info segment at offset %#<PRIx64> contains %d entries:\n"
+msgstr[0] ""
+"\n"
+"El segment d'informació dinàmica a la posició %#<PRIx64> conté %d entrada:\n"
+msgstr[1] ""
+"\n"
+"El segment d'informació dinàmica a la posició %#<PRIx64> conté %d entrades:\n"
+
+#: readelf.c:15015
#, c-format
msgid " Num: Name BoundTo Flags\n"
msgstr " Nomb.: Nom Unit a Senyaladors\n"
-#: readelf.c:12075
-#, fuzzy, c-format
-#| msgid "<corrupt>"
+#: readelf.c:15022
+#, c-format
msgid "<corrupt index>"
-msgstr "<corrupte>"
+msgstr "<índex malmès>"
-#: readelf.c:12079
+#: readelf.c:15027
#, c-format
msgid "<corrupt: %19ld>"
-msgstr "<corrupte: %19ld>"
+msgstr "<malmès: %19ld>"
-#: readelf.c:12168
+#: readelf.c:15119
#, c-format
-msgid "MSP430 SYM_DIFF reloc contains invalid symbol index %lu\n"
-msgstr ""
+msgid "LoongArch ULEB128 field at 0x%lx contains invalid ULEB128 value\n"
+msgstr "El camp de LoongArch ULEB128 a 0x%lx conté un valor no vàlid d'ULEB128\n"
-#: readelf.c:12197
+#: readelf.c:15124 readelf.c:15178 readelf.c:15229 readelf.c:15275
+#: readelf.c:15289 readelf.c:15333
#, c-format
-msgid "MSP430 reloc contains invalid symbol index %lu\n"
-msgstr ""
+msgid "%s reloc contains invalid symbol index %<PRIu64>\n"
+msgstr "reloc %s conté un índex de símbol invàlid %<PRIu64>\n"
-#. PR 21137
-#: readelf.c:12208
+#: readelf.c:15225
#, c-format
-msgid "MSP430 sym diff reloc contains invalid offset: 0x%lx\n"
-msgstr ""
-
-#: readelf.c:12219
-#, fuzzy
-#| msgid "Unhandled MSP430 reloc type found after SYM_DIFF reloc"
-msgid "Unhandled MSP430 reloc type found after SYM_DIFF reloc\n"
-msgstr "S'ha trobat el tipus MSP430 de relocalització no gestionat després de la relocalització SYM_DIFF"
+msgid "MSP430 ULEB128 field at %#<PRIx64> contains invalid ULEB128 value\n"
+msgstr "El camp MSP430 a %#<PRIx64> conté un valor ULEB128 no vàlid\n"
-#: readelf.c:12242
+#. PR 21137
+#: readelf.c:15240
#, c-format
-msgid "MN10300_SYM_DIFF reloc contains invalid symbol index %lu\n"
-msgstr ""
+msgid "MSP430 sym diff reloc contains invalid offset: %#<PRIx64>\n"
+msgstr "MSPF430 sym diff reloc conté una posició no vàlida: %#<PRIx64>\n"
-#: readelf.c:12256
-#, c-format
-msgid "MN10300 reloc contains invalid symbol index %lu\n"
-msgstr ""
+#: readelf.c:15252
+msgid "Unhandled MSP430 reloc type found after SYM_DIFF reloc\n"
+msgstr "S'ha trobat el tipus MSP430 de relocalització no gestionat després de la relocalització SYM_DIFF\n"
-#: readelf.c:12266
+#: readelf.c:15299
#, c-format
-msgid "MN10300 sym diff reloc contains invalid offset: 0x%lx\n"
-msgstr ""
+msgid "MN10300 sym diff reloc contains invalid offset: %#<PRIx64>\n"
+msgstr "La relocalització de les diferències de símbols MN10300 conté una posició no vàlida: %#<PRIx64>\n"
-#: readelf.c:12276
-#, fuzzy
-#| msgid "Unhandled MN10300 reloc type found after SYM_DIFF reloc"
+#: readelf.c:15310
msgid "Unhandled MN10300 reloc type found after SYM_DIFF reloc\n"
-msgstr "S'ha trobat el tipus MN10300 de relocalització no gestionat després de la relocalitzacío SYM_DIFF"
+msgstr "S'ha trobat el tipus MN10300 de relocalització no gestionat després de la relocalitzacío SYM_DIFF\n"
-#: readelf.c:12299
+#: readelf.c:15352 readelf.c:15362
#, c-format
-msgid "RL78_SYM reloc contains invalid symbol index %lu\n"
-msgstr ""
-
-#: readelf.c:12318 readelf.c:12327
-#, c-format
-msgid "RL78 sym diff reloc contains invalid offset: 0x%lx\n"
-msgstr ""
+msgid "RL78 sym diff reloc contains invalid offset: %#<PRIx64>\n"
+msgstr "La relocalització de les diferències de símbols RL78 conté un desplaçament no vàlid: %#<PRIx64>\n"
-#: readelf.c:12542
+#: readelf.c:15585
#, c-format
msgid "Missing knowledge of 32-bit reloc types used in DWARF sections of machine number %d\n"
-msgstr "Coneixement absent dels tipus de relocalització 32-bit usats a les seccions DWARF de la màquina número %d\n"
+msgstr "Coneixement absent dels tipus de relocalització 32-bit usats a les seccions DWARF de la màquina nombre %d\n"
-#: readelf.c:13209
+#: readelf.c:16320
#, c-format
msgid "unable to apply unsupported reloc type %d to section %s\n"
msgstr "no s'ha pogut aplicar el tipus %d de relocalització no suportada a la secció %s\n"
-#: readelf.c:13218
+#: readelf.c:16329
#, c-format
-msgid "skipping invalid relocation offset 0x%lx in section %s\n"
-msgstr "se saltarà la posició 0x%lx de relocalització no vàlida a la secció %s\n"
+msgid "skipping invalid relocation offset %#<PRIx64> in section %s\n"
+msgstr "se saltarà la posició %#<PRIx64> de relocalització no vàlida a la secció %s\n"
-#: readelf.c:13227
+#: readelf.c:16339
#, c-format
-msgid "skipping invalid relocation symbol index 0x%lx in section %s\n"
-msgstr "se saltarà l'índex 0x%lx no vàlid de símbols de relocalització a la secció %s\n"
+msgid "skipping invalid relocation symbol index %#<PRIx64> in section %s\n"
+msgstr "se saltarà l'índex %#<PRIx64> no vàlid de símbols de relocalització a la secció %s\n"
-#: readelf.c:13250
-#, fuzzy, c-format
-#| msgid "skipping unexpected symbol type %s in %ld'th relocation in section %s\n"
-msgid "skipping unexpected symbol type %s in section %s relocation %ld\n"
-msgstr "se saltarà el tipus %s de símbol no esperat a la relocalització %ld-èssima a la secció %s\n"
+#: readelf.c:16363
+#, c-format
+msgid "skipping unexpected symbol type %s in section %s relocation %tu\n"
+msgstr "se saltarà el tipus de símbol no esperat %s a la secció %s relocalització %tu\n"
-#: readelf.c:13327
+#: readelf.c:16441
#, c-format
msgid ""
"\n"
@@ -9465,706 +11228,763 @@ msgstr ""
"\n"
"Bolcat d'ensamblatge de la secció %s\n"
-#: readelf.c:13345
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "Section '%s' has no data to dump.\n"
+#: readelf.c:16459
+#, c-format
msgid "Section '%s' has no data to dump.\n"
-msgstr ""
-"\n"
-"La secció %s no té dades per bolcar.\n"
+msgstr "La secció «%s» no té dades per bolcar.\n"
-#: readelf.c:13351
+#: readelf.c:16465
msgid "section contents"
msgstr "continguts de la secció"
-#: readelf.c:13426
+#: readelf.c:16488
#, c-format
-msgid ""
-"\n"
-"String dump of section '%s':\n"
-msgstr ""
-"\n"
-"Bolcat de cadenes de caràcters de la secció '%s':\n"
+msgid "Uncompressed section size is suspiciously large: 0x%<PRIu64>\n"
+msgstr "La mida de la secció no comprimida és sospitosament gran: 0x%<PRIu64>\n"
-#: readelf.c:13442 readelf.c:13583 readelf.c:13752
-#, fuzzy, c-format
-#| msgid "IEEE unsupported complex type size %u\n"
+#: readelf.c:16580 readelf.c:17199
+#, c-format
msgid "section '%s' has unsupported compress type: %d\n"
-msgstr "Mida de tipus complex IEEE no suportat %u\n"
+msgstr "la secció «%s» té un tipus de compressió no suportada: %d\n"
-#: readelf.c:13474 readelf.c:13617 readelf.c:13789
-#, fuzzy, c-format
-#| msgid "Unable to locate %s section!\n"
+#: readelf.c:16616 readelf.c:17236
+#, c-format
msgid "Unable to decompress section %s\n"
-msgstr "No s'ha pogut trobar la secció %s!\n"
+msgstr "No s'ha pogut descomprimir la secció %s\n"
+
+#: readelf.c:16655
+#, c-format
+msgid " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"
+msgstr " NOTA: Aquesta secció té relocalitzacions contra ella, pero NO s'han aplicat a aquest bolcat.\n"
-#: readelf.c:13499
+#: readelf.c:16683
#, c-format
-msgid " Note: This section has relocations against it, but these have NOT been applied to this dump.\n"
-msgstr " Nota: Aquesta secció té relocalitzacions contra ella, però NO s'han aplicat a aquest bolcat \n"
+msgid ""
+"\n"
+"String dump of section '%s' in linked file %s:\n"
+msgstr ""
+"\n"
+"Bolcat de cadenes de caràcters de la secció «%s» al fitxer enllaçat %s:\n"
-#: readelf.c:13532 readelf.c:14621 readelf.c:14664 readelf.c:14712
-#: readelf.c:14744
-#, fuzzy, c-format
-#| msgid "<corrupt>"
+#: readelf.c:16687
+#, c-format
+msgid ""
+"\n"
+"String dump of section '%s':\n"
+msgstr ""
+"\n"
+"Bolcat de cadenes de caràcters de la secció «%s»:\n"
+
+#: readelf.c:16785 readelf.c:18290 readelf.c:18330 readelf.c:18368
+#: readelf.c:18415 readelf.c:18446 readelf.c:20052 readelf.c:20084
+#, c-format
msgid "<corrupt>\n"
-msgstr "<corrupte>"
+msgstr "<malmès>\n"
-#: readelf.c:13540
+#: readelf.c:16793
#, c-format
msgid " No strings found in this section."
msgstr " No s'han trobat cadenes de caràcter en aquesta secció."
-#: readelf.c:13568
+#: readelf.c:16828
+#, c-format
+msgid ""
+"\n"
+"Hex dump of section '%s' in linked file %s:\n"
+msgstr ""
+"\n"
+"Bolcat hex de la secció «%s» al fitxer enllaçat %s:\n"
+
+#: readelf.c:16832
#, c-format
msgid ""
"\n"
"Hex dump of section '%s':\n"
msgstr ""
"\n"
-"Bolcat hex de la secció '%s':\n"
+"Bolcat hex de la secció «%s»:\n"
-#: readelf.c:13650
+#: readelf.c:16976
#, c-format
-msgid " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"
-msgstr " NOTA: Aquesta secció té relocalitzacions contra ella, pero NO s'han aplicat a aquest bolcat.\n"
+msgid "Iteration failed: %s, %s\n"
+msgstr "Ha fallat la iteració: %s, %s\n"
-#: readelf.c:13719
+#: readelf.c:17020
+#, c-format
+msgid "No symbol section named %s\n"
+msgstr "No hi una secció de símbols anomenada %s\n"
+
+#: readelf.c:17036
+#, c-format
+msgid "No string table section named %s\n"
+msgstr "Cap secció de tauls de cadenes de caràcters anomenada %s\n"
+
+#: readelf.c:17043
+msgid "strings"
+msgstr "cadenes de caràcters"
+
+#: readelf.c:17056 readelf.c:17068
+#, c-format
+msgid "CTF open failure: %s\n"
+msgstr "ha fallat l'obertura CTF: %s\n"
+
+#: readelf.c:17075
+#, c-format
+msgid ""
+"\n"
+"Dump of CTF section '%s' in linked file %s:\n"
+msgstr ""
+"\n"
+"Bolcat a la secció CTF «%s» al fitxer enllaçat %s:\n"
+
+#: readelf.c:17079
+#, c-format
+msgid ""
+"\n"
+"Dump of CTF section '%s':\n"
+msgstr ""
+"\n"
+"Bolcat de la secció CTF «%s»:\n"
+
+#: readelf.c:17087
+#, c-format
+msgid "CTF member open failure: %s\n"
+msgstr "Ha fallat l'obertura del membre CTF: %s\n"
+
+#: readelf.c:17114
+msgid "Section name must be provided \n"
+msgstr "S'ha de proveir el nom de secció\n"
+
+#: readelf.c:17126
+#, c-format
+msgid "SFrame decode failure: %s\n"
+msgstr "Ha fallat la decodificació de SFrame: %s\n"
+
+#: readelf.c:17156
#, c-format
msgid "%s section data"
msgstr "%s dades de la secció"
-#: readelf.c:13743
+#: readelf.c:17180
#, c-format
-msgid "compressed section %s is too small to contain a compression header"
-msgstr ""
+msgid "compressed section %s is too small to contain a compression header\n"
+msgstr "la secció comprimida %s és massa petita per contenir una capçalera de compressió\n"
+
+#: readelf.c:17312 readelf.c:17339 readelf.c:17364
+#, c-format
+msgid "malformed note encountered in section %s whilst scanning for build-id note\n"
+msgstr "s'ha trobat una nota malformada a la secció %s mentre s'escanejava per a la nota de ID de construcció\n"
-#: readelf.c:13899
+#: readelf.c:17492
#, c-format
msgid ""
"\n"
"Section '%s' has no debugging data.\n"
msgstr ""
"\n"
-"La secció '%s' no té dades de depuració.\n"
+"La secció «%s» no té dades de depuració.\n"
#. There is no point in dumping the contents of a debugging section
#. which has the NOBITS type - the bits in the file will be random.
#. This can happen when a file containing a .eh_frame section is
#. stripped with the --only-keep-debug command line option.
-#: readelf.c:13908
+#: readelf.c:17501
#, c-format
msgid "section '%s' has the NOBITS type - its contents are unreliable.\n"
-msgstr "la secció '%s' té el tipus NOBITS - els seus continguts no fiables.\n"
+msgstr "la secció «%s» té el tipus NOBITS - els seus continguts no fiables.\n"
-#: readelf.c:13958
+#: readelf.c:17551
#, c-format
msgid "Unrecognized debug section: %s\n"
msgstr "Secció de depuració no reconeguda: %s\n"
-#: readelf.c:13986
+#: readelf.c:17581
+#, c-format
+msgid "Section '%s' was not dumped because it does not exist\n"
+msgstr "La secció «%s» no s'ha bolcat perquè no existeix\n"
+
+#: readelf.c:17644
+#, c-format
+msgid "Unable to display section %d - it has a NULL type\n"
+msgstr "No s'ha pogut mostrar la secció %d - té un tipus NULL\n"
+
+#: readelf.c:17648
#, c-format
-msgid "Section '%s' was not dumped because it does not exist!\n"
-msgstr "La secció '%s' no s'ha bolcat perquè no existeix!\n"
+msgid "Unable to display section %d - it has no contents\n"
+msgstr "No es pot mostrar la secció %d - no té continguts\n"
-#: readelf.c:14047
+#. FIXME: Add Proc and OS specific section types ?
+#: readelf.c:17659
+#, c-format
+msgid "Unable to determine how to dump section %d (type %#x)\n"
+msgstr "No es pot determinar com bolcar la secció %d (tipus %#x)\n"
+
+#: readelf.c:17718
#, c-format
msgid "Section %d was not dumped because it does not exist!\n"
msgstr "La secció %d no s'ha bolcat perquè no existeix!\n"
-#: readelf.c:14104
-#, fuzzy
-#| msgid "corrupt tag\n"
+#: readelf.c:17774
msgid "<corrupt tag>\n"
-msgstr "senyalador corrupte\n"
+msgstr "<senyalador malmès>\n"
-#: readelf.c:14119
-#, fuzzy, c-format
-#| msgid "<corrupt string table index: %3ld>"
+#: readelf.c:17789
+#, c-format
msgid "<corrupt string tag>"
-msgstr "<índex corrupte de taula de cadena de caràcters: %3ld>"
+msgstr "<senyalador de cadena de caràcters malmès>"
-#: readelf.c:14159
+#: readelf.c:17823
#, c-format
msgid "Absent/Non standard\n"
-msgstr ""
+msgstr "Absent/No estàndard\n"
-#: readelf.c:14162
+#: readelf.c:17826
#, c-format
msgid "Bare metal/mwdt\n"
-msgstr ""
+msgstr "Metall nu/mwdt\n"
-#: readelf.c:14165
+#: readelf.c:17829
#, c-format
msgid "Bare metal/newlib\n"
-msgstr ""
+msgstr "Metall simple/newlib\n"
-#: readelf.c:14168
+#: readelf.c:17832
#, c-format
msgid "Linux/uclibc\n"
-msgstr ""
+msgstr "Linux/uclibc\n"
-#: readelf.c:14171
+#: readelf.c:17835
#, c-format
msgid "Linux/glibc\n"
-msgstr ""
+msgstr "Linux/glibc\n"
-#: readelf.c:14174 readelf.c:14258
-#, fuzzy, c-format
-#| msgid "unknown"
+#: readelf.c:17838 readelf.c:17917
+#, c-format
msgid "Unknown\n"
-msgstr "desconegut"
+msgstr "Desconegut\n"
-#: readelf.c:14187 readelf.c:14218 readelf.c:14249
+#: readelf.c:17850 readelf.c:17880 readelf.c:17908
#, c-format
msgid "Absent\n"
-msgstr ""
+msgstr "Absent\n"
-#: readelf.c:14231
+#: readelf.c:17892
msgid "yes"
-msgstr ""
+msgstr "sí"
-#: readelf.c:14231
-#, fuzzy
-#| msgid "none"
+#: readelf.c:17892
msgid "no"
msgstr "cap"
-#: readelf.c:14272 readelf.c:14280
+#: readelf.c:17929 readelf.c:17936
msgid "default"
-msgstr ""
+msgstr "per defecte"
-#: readelf.c:14273
+#: readelf.c:17930
msgid "smallest"
-msgstr ""
+msgstr "més petit"
-#: readelf.c:14279
+#: readelf.c:17935
msgid "OPTFP"
-msgstr ""
+msgstr "OPTFP"
-#: readelf.c:14479 readelf.c:14493 readelf.c:14512 readelf.c:15020
-#: readelf.c:15311 readelf.c:15324 readelf.c:15337
+#: readelf.c:18156 readelf.c:18169 readelf.c:18187 readelf.c:18709
+#: readelf.c:18988 readelf.c:19000 readelf.c:19012
#, c-format
msgid "None\n"
msgstr "Cap\n"
-#: readelf.c:14480
+#: readelf.c:18157
#, c-format
msgid "Application\n"
msgstr "Aplicació\n"
-#: readelf.c:14481
+#: readelf.c:18158
#, c-format
msgid "Realtime\n"
msgstr "Temps real\n"
-#: readelf.c:14482
+#: readelf.c:18159
#, c-format
msgid "Microcontroller\n"
msgstr "Microcontrolador\n"
-#: readelf.c:14483
+#: readelf.c:18160
#, c-format
msgid "Application or Realtime\n"
msgstr "Aplicació o temps real\n"
-#: readelf.c:14494 readelf.c:14514 readelf.c:15074 readelf.c:15092
-#: readelf.c:15167 readelf.c:15188 readelf.c:17674
+#: readelf.c:18170 readelf.c:18189 readelf.c:18761 readelf.c:18778
+#: readelf.c:18849 readelf.c:18869 readelf.c:21737
#, c-format
msgid "8-byte\n"
msgstr "8-byte\n"
-#: readelf.c:14495 readelf.c:15170 readelf.c:15191 readelf.c:17673
+#: readelf.c:18171 readelf.c:18852 readelf.c:18872 readelf.c:21736
#, c-format
msgid "4-byte\n"
msgstr "4-byte\n"
-#: readelf.c:14499 readelf.c:14518
+#: readelf.c:18175 readelf.c:18193
#, c-format
msgid "8-byte and up to %d-byte extended\n"
msgstr "8-byte i fins a %d-byte estès\n"
-#: readelf.c:14513
+#: readelf.c:18188
#, c-format
msgid "8-byte, except leaf SP\n"
msgstr "8-byte, excepte la fulla SP\n"
-#: readelf.c:14530 readelf.c:14618 readelf.c:15207
-#, fuzzy, c-format
-#| msgid "flag = %d, vendor = %s\n"
+#: readelf.c:18204 readelf.c:18287 readelf.c:18887
+#, c-format
msgid "flag = %d, vendor = "
-msgstr "senyalador = %d, proveïdor = %s\n"
+msgstr "senyalador = %d, proveïdor = "
-#: readelf.c:14551
+#: readelf.c:18225
#, c-format
msgid "True\n"
msgstr "Veritat\n"
-#: readelf.c:14573
-#, fuzzy, c-format
-#| msgid "<unknown: %x>"
+#: readelf.c:18245
+#, c-format
msgid "<unknown: %d>\n"
-msgstr "<desconegut: %x>"
+msgstr "<desconegut: %d>\n"
-#: readelf.c:14622
+#: readelf.c:18291
msgid "corrupt vendor attribute\n"
-msgstr "atribut corrupte de proveïdor\n"
+msgstr "atribut malmès de proveïdor\n"
-#: readelf.c:14674
+#: readelf.c:18341
+#, c-format
+msgid "unspecified hard/soft float\n"
+msgstr "flotador dur/suau no especificat\n"
+
+#: readelf.c:18344
+#, c-format
+msgid "hard float\n"
+msgstr "tipus flotant dur\n"
+
+#: readelf.c:18347
+#, c-format
+msgid "soft float\n"
+msgstr "tipus flotant tou\n"
+
+#: readelf.c:18379
#, c-format
msgid "unspecified hard/soft float, "
-msgstr ""
+msgstr "flotant dur/suau no especificat, "
-#: readelf.c:14677
-#, fuzzy, c-format
-#| msgid "Hard float\n"
+#: readelf.c:18382
+#, c-format
msgid "hard float, "
-msgstr "Tipus flotant dur\n"
+msgstr "tipus flotant dur, "
-#: readelf.c:14680
-#, fuzzy, c-format
-#| msgid "Soft float\n"
+#: readelf.c:18385
+#, c-format
msgid "soft float, "
-msgstr "Tipus flotant tou\n"
+msgstr "tipus flotant tou, "
-#: readelf.c:14683
-#, fuzzy, c-format
-#| msgid "Single-precision hard float\n"
+#: readelf.c:18388
+#, c-format
msgid "single-precision hard float, "
-msgstr "Tipus flotant dur de precisió simple\n"
+msgstr "tipus flotant dur de precisió simple, "
-#: readelf.c:14690
+#: readelf.c:18395
#, c-format
msgid "unspecified long double\n"
-msgstr ""
+msgstr "doble llarg no especificat\n"
-#: readelf.c:14693
+#: readelf.c:18398
#, c-format
msgid "128-bit IBM long double\n"
-msgstr ""
+msgstr "Doble llarg IBM de 128 bits\n"
-#: readelf.c:14696
+#: readelf.c:18401
#, c-format
msgid "64-bit long double\n"
-msgstr ""
+msgstr "64 bits doble llarg\n"
-#: readelf.c:14699
+#: readelf.c:18404
#, c-format
msgid "128-bit IEEE long double\n"
-msgstr ""
+msgstr "IEEE de 128 bits doble llarg\n"
-#: readelf.c:14722 readelf.c:14754
+#: readelf.c:18426 readelf.c:18457
#, c-format
msgid "unspecified\n"
-msgstr ""
+msgstr "sense especificar\n"
-#: readelf.c:14725
-#, fuzzy, c-format
-#| msgid "Generic\n"
+#: readelf.c:18429
+#, c-format
msgid "generic\n"
-msgstr "Genèric\n"
+msgstr "genèric\n"
-#: readelf.c:14760
-#, fuzzy, c-format
-#| msgid "Memory\n"
+#: readelf.c:18463
+#, c-format
msgid "memory\n"
-msgstr "Memòria\n"
+msgstr "memòria\n"
-#: readelf.c:14789
+#: readelf.c:18490
#, c-format
msgid "any\n"
-msgstr ""
+msgstr "qualsevol\n"
-#: readelf.c:14792
+#: readelf.c:18493
#, c-format
msgid "software\n"
-msgstr ""
+msgstr "programari\n"
-#: readelf.c:14795
+#: readelf.c:18496
#, c-format
msgid "hardware\n"
-msgstr ""
+msgstr "maquinari\n"
-#: readelf.c:14921
+#: readelf.c:18619
#, c-format
msgid "Hard or soft float\n"
msgstr "Tipus flotant dur o tou\n"
-#: readelf.c:14924
+#: readelf.c:18622
#, c-format
msgid "Hard float (double precision)\n"
msgstr "Tipus flotant dur (de precisió doble)\n"
-#: readelf.c:14927
+#: readelf.c:18625
#, c-format
msgid "Hard float (single precision)\n"
msgstr "Tipus flotant tou (de precisió simple)\n"
-#: readelf.c:14930
+#: readelf.c:18628
#, c-format
msgid "Soft float\n"
msgstr "Tipus flotant tou\n"
-#: readelf.c:14933
-#, fuzzy, c-format
-#| msgid "Hard float (MIPS32r2 64-bit FPU)\n"
+#: readelf.c:18631
+#, c-format
msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
-msgstr "Tipus flotant dur (MIPS32r2 64-bit FPU)\n"
+msgstr "Tipus flotant dur (MIPS32r2 64-bit FPU 12 calle-saved)\n"
-#: readelf.c:14936
-#, fuzzy, c-format
-#| msgid "Hard float (MIPS32r2 64-bit FPU)\n"
+#: readelf.c:18634
+#, c-format
msgid "Hard float (32-bit CPU, Any FPU)\n"
-msgstr "Tipus flotant dur (MIPS32r2 64-bit FPU)\n"
+msgstr "Tipus flotant dur (CPU 32-bit, qualsevol FPU)\n"
-#: readelf.c:14939
-#, fuzzy, c-format
-#| msgid "Hard float (MIPS32r2 64-bit FPU)\n"
+#: readelf.c:18637
+#, c-format
msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
-msgstr "Tipus flotant dur (MIPS32r2 64-bit FPU)\n"
+msgstr "Tipus flotant dur (CPU 32-bit, FPU 64-bit)\n"
-#: readelf.c:14942
-#, fuzzy, c-format
-#| msgid "Hard float (MIPS32r2 64-bit FPU)\n"
+#: readelf.c:18640
+#, c-format
msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
-msgstr "Tipus flotant dur (MIPS32r2 64-bit FPU)\n"
+msgstr "Tipus flotant dur (CPU 32-bit, FPU 64-bit)\n"
-#: readelf.c:14945
+#: readelf.c:18643
#, c-format
msgid "NaN 2008 compatibility\n"
-msgstr ""
+msgstr "Compatibilitat NaN 2008\n"
-#: readelf.c:14984
+#: readelf.c:18676
#, c-format
msgid "Any MSA or not\n"
msgstr "Qualsevol MSA o no\n"
-#: readelf.c:14987
+#: readelf.c:18679
#, c-format
msgid "128-bit MSA\n"
msgstr "128-bit MSA\n"
-#: readelf.c:15053
+#: readelf.c:18741
#, c-format
msgid "Not used\n"
msgstr "No s'ha usat\n"
-#: readelf.c:15056
+#: readelf.c:18744
#, c-format
msgid "2 bytes\n"
msgstr "2 bytes\n"
-#: readelf.c:15059
+#: readelf.c:18747
#, c-format
msgid "4 bytes\n"
msgstr "4 bytes\n"
-#: readelf.c:15077 readelf.c:15095 readelf.c:15173 readelf.c:15194
+#: readelf.c:18764 readelf.c:18781 readelf.c:18855 readelf.c:18875
#, c-format
msgid "16-byte\n"
msgstr "16-byte\n"
-#: readelf.c:15110
+#: readelf.c:18795
#, c-format
msgid "DSBT addressing not used\n"
msgstr "No s'ha usat l'adreçament DSBT\n"
-#: readelf.c:15113
+#: readelf.c:18798
#, c-format
msgid "DSBT addressing used\n"
msgstr "S'ha usat l'adreçament DSBT\n"
-#: readelf.c:15128
+#: readelf.c:18812
#, c-format
msgid "Data addressing position-dependent\n"
msgstr "Adreçament de dades depenent de la posició\n"
-#: readelf.c:15131
+#: readelf.c:18815
#, c-format
msgid "Data addressing position-independent, GOT near DP\n"
msgstr "Adreçament de dades independent de la posició, GOT a prop de DP\n"
-#: readelf.c:15134
+#: readelf.c:18818
#, c-format
msgid "Data addressing position-independent, GOT far from DP\n"
msgstr "Adreçament de dades independent de la posició, GOT lluny de DP\n"
-#: readelf.c:15149
+#: readelf.c:18832
#, c-format
msgid "Code addressing position-dependent\n"
msgstr "Adreçament de codi dependent de la posició\n"
-#: readelf.c:15152
+#: readelf.c:18835
#, c-format
msgid "Code addressing position-independent\n"
msgstr "Adreçament de codi independent de la posició\n"
-#: readelf.c:15312
+#: readelf.c:18989
#, c-format
msgid "MSP430\n"
msgstr "MSP430\n"
-#: readelf.c:15313
+#: readelf.c:18990
#, c-format
msgid "MSP430X\n"
msgstr "MSP430X\n"
-#: readelf.c:15325 readelf.c:15338
+#: readelf.c:19001 readelf.c:19013
#, c-format
msgid "Small\n"
msgstr "Petit\n"
-#: readelf.c:15326 readelf.c:15339
+#: readelf.c:19002 readelf.c:19014
#, c-format
msgid "Large\n"
msgstr "Gran\n"
-#: readelf.c:15340
+#: readelf.c:19015
#, c-format
msgid "Restricted Large\n"
msgstr "Gran restringit\n"
-#: readelf.c:15346
+#: readelf.c:19021
#, c-format
-msgid " <unknown tag %d>: "
-msgstr "<Senyalador desconegut %d>: "
+msgid " <unknown tag %<PRId64>>: "
+msgstr "<Senyalador desconegut %<PRId64>>: "
-#: readelf.c:15430
+#: readelf.c:19067
#, c-format
-msgid "%d\n"
-msgstr ""
+msgid "Any Region\n"
+msgstr "Qualsevol regió\n"
-#: readelf.c:15438
+#: readelf.c:19070
+#, c-format
+msgid "Lower Region Only\n"
+msgstr "Només la regió inferior\n"
+
+#: readelf.c:19136
#, c-format
msgid "No unaligned access\n"
-msgstr ""
+msgstr "Sense accés no alineat\n"
-#: readelf.c:15441
+#: readelf.c:19139
#, c-format
msgid "Unaligned access\n"
-msgstr ""
+msgstr "Accés no alineat\n"
-#: readelf.c:15448
-#, fuzzy, c-format
-#| msgid "8-byte\n"
-msgid "%d-bytes\n"
-msgstr "8-byte\n"
+#: readelf.c:19145
+#, c-format
+msgid "%<PRIu64>-bytes\n"
+msgstr "%<PRIu64>-bytes\n"
-#: readelf.c:15483
+#: readelf.c:19287
msgid "attributes"
msgstr "atributs"
-#: readelf.c:15495
+#: readelf.c:19299
#, c-format
msgid "Unknown attributes version '%c'(%d) - expecting 'A'\n"
-msgstr ""
+msgstr "Versió «%c» (%d) d'atributs desconeguda - s'esperava «A»\n"
-#: readelf.c:15514
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| "The %s section is empty.\n"
+#: readelf.c:19318
msgid "Tag section ends prematurely\n"
-msgstr ""
-"\n"
-"La secció %s està buida.\n"
+msgstr "La secció de senyaladors finalitza prematurament\n"
-#: readelf.c:15523
-#, fuzzy, c-format
-#| msgid "ERROR: Bad section length (%d > %d)\n"
+#: readelf.c:19327
+#, c-format
msgid "Bad attribute length (%u > %u)\n"
-msgstr "ERROR: longitud dolenta de secció (%d > %d)\n"
+msgstr "Longitud incorrecta d'atributs (%u > %u)\n"
-#: readelf.c:15531
+#: readelf.c:19335
#, c-format
msgid "Attribute length of %u is too small\n"
-msgstr ""
+msgstr "La longitud de l'atribut %u és massa petita\n"
-#: readelf.c:15542
-#, fuzzy
-#| msgid "corrupt attribute\n"
+#: readelf.c:19346
msgid "Corrupt attribute section name\n"
-msgstr "atribut corrupte\n"
+msgstr "Nom de secció d'atributs incorrecte\n"
-#: readelf.c:15547
-#, fuzzy, c-format
-#| msgid "Attribute Section: %s\n"
+#: readelf.c:19351
+#, c-format
msgid "Attribute Section: "
-msgstr "Secció d'atributs: %s\n"
+msgstr "Secció d'atributs: "
-#: readelf.c:15574
-#, fuzzy
-#| msgid "There are %ld unused bytes at the end of section %s\n"
+#: readelf.c:19378
msgid "Unused bytes at end of section\n"
-msgstr "Hi ha %ld bytes sense usar al final de la secció %s\n"
+msgstr "Bytes sense usar al final de la secció\n"
-#: readelf.c:15584
-#, fuzzy, c-format
-#| msgid "ERROR: Bad subsection length (%d > %d)\n"
+#: readelf.c:19388
+#, c-format
msgid "Bad subsection length (%u > %u)\n"
-msgstr "ERROR: Longitud dolenta de subsecció (%d > %d)\n"
+msgstr "Longitud dolenta de subsecció (%u > %u)\n"
-#: readelf.c:15592
-#, fuzzy, c-format
-#| msgid "ERROR: Bad subsection length (%d > %d)\n"
+#: readelf.c:19396
+#, c-format
msgid "Bad subsection length (%u < 6)\n"
-msgstr "ERROR: Longitud dolenta de subsecció (%d > %d)\n"
+msgstr "Longitud incorrecta de subsecció (%u < 6)\n"
-#: readelf.c:15607
+#: readelf.c:19411
#, c-format
msgid "File Attributes\n"
msgstr "Atributs de fitxer\n"
-#: readelf.c:15610
+#: readelf.c:19414
#, c-format
msgid "Section Attributes:"
msgstr "Atributs de secció:"
-#: readelf.c:15613
+#: readelf.c:19417
#, c-format
msgid "Symbol Attributes:"
msgstr "Atributs de símbol:"
-#: readelf.c:15629
+#: readelf.c:19430
#, c-format
msgid "Unknown tag: %d\n"
msgstr "Senyalador desconegut: %d\n"
-#: readelf.c:15650
-#, fuzzy, c-format
-#| msgid " (Unknown inline attribute value: %s)"
+#: readelf.c:19451
+#, c-format
msgid " Unknown attribute:\n"
-msgstr " (Valor de l'atribut en línia desconegut: %s)"
+msgstr " Atribut desconegut:\n"
-#: readelf.c:15692
+#: readelf.c:19493
msgid "MIPS GOT entry extends beyond the end of available data\n"
-msgstr ""
+msgstr "L'entrada MIPS GOT s'estén més enllà del final de les dades disponibles\n"
-#: readelf.c:15775 readelf.c:15844
-#, fuzzy
-#| msgid "unknown"
-msgid "Unknown"
-msgstr "desconegut"
-
-#: readelf.c:15891
-#, fuzzy
-#| msgid "Corrupt header in the %s section.\n"
+#: readelf.c:19692
msgid "Corrupt MIPS ABI Flags section.\n"
-msgstr "Capçalera corrupta a la secció %s.\n"
+msgstr "Secció malmesa de senyaladores MIPS ABI.\n"
-#: readelf.c:15897
-#, fuzzy
-#| msgid "NDS32 elf flags section"
+#: readelf.c:19698
msgid "MIPS ABI Flags section"
-msgstr "Secció de senyaladors NDS32 elf"
+msgstr "Secció de senyaladors MIPS ABI Flags"
-#: readelf.c:15956 readelf.c:16504
+#: readelf.c:19757 readelf.c:20340
msgid "Global Offset Table data"
msgstr "Dades de la taula de les posicions globals"
-#: readelf.c:15960
+#: readelf.c:19761
#, c-format
msgid ""
"\n"
"Static GOT:\n"
msgstr ""
+"\n"
+"GOT estàtic:\n"
-#: readelf.c:15961 readelf.c:16509
+#: readelf.c:19762 readelf.c:20345
#, c-format
msgid " Canonical gp value: "
msgstr " Valor gp canònic: "
-#: readelf.c:15975 readelf.c:16513 readelf.c:16640
+#: readelf.c:19776 readelf.c:20349 readelf.c:20484
#, c-format
msgid " Reserved entries:\n"
msgstr " Entrades reservades:\n"
-#: readelf.c:15976
-#, fuzzy, c-format
-#| msgid " %*s %10s %*s Purpose\n"
+#: readelf.c:19777
+#, c-format
msgid " %*s %10s %*s\n"
-msgstr " %*s %10s %*s Propòsit\n"
+msgstr " %*s %10s %*s\n"
-#: readelf.c:15977 readelf.c:16007 readelf.c:16515 readelf.c:16543
-#: readelf.c:16561 readelf.c:16642 readelf.c:16651
+#: readelf.c:19778 readelf.c:19808 readelf.c:20351 readelf.c:20379
+#: readelf.c:20397 readelf.c:20486 readelf.c:20495
msgid "Address"
msgstr "Adreça"
-#: readelf.c:15977 readelf.c:16007 readelf.c:16515 readelf.c:16543
-#: readelf.c:16562
+#: readelf.c:19778 readelf.c:19808 readelf.c:20351 readelf.c:20379
+#: readelf.c:20398
msgid "Access"
msgstr "Accés"
-#: readelf.c:15978 readelf.c:16008
+#: readelf.c:19779 readelf.c:19809
msgid "Value"
-msgstr ""
+msgstr "Valor"
-#: readelf.c:16005 readelf.c:16541
+#: readelf.c:19806 readelf.c:20377
#, c-format
msgid " Local entries:\n"
msgstr " Entrades locals\n"
-#: readelf.c:16087 readelf.c:16754
+#: readelf.c:19888 readelf.c:20601
msgid "liblist section data"
msgstr "dades de secció liblist"
-#: readelf.c:16090
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "Section '.liblist' contains %lu entries:\n"
+#: readelf.c:19891
+#, c-format
msgid ""
"\n"
-"Section '.liblist' contains %lu entry:\n"
+"Section '.liblist' contains %zu entry:\n"
msgid_plural ""
"\n"
-"Section '.liblist' contains %lu entries:\n"
+"Section '.liblist' contains %zu entries:\n"
msgstr[0] ""
"\n"
-"La secció '.liblist' conté %lu entrades:\n"
+"La secció '.liblist' conté %zu entrada:\n"
msgstr[1] ""
"\n"
-"La secció '.liblist' conté %lu entrades:\n"
+"La secció '.liblist' conté %zu entrades:\n"
-#: readelf.c:16094
+#: readelf.c:19895
msgid " Library Time Stamp Checksum Version Flags\n"
msgstr " Biblioteca Marca de temps Checksum Senyaladors de versió\n"
-#: readelf.c:16120
+#: readelf.c:19921
#, c-format
msgid "<corrupt: %9ld>"
-msgstr "<corrupte: %9ld>"
+msgstr "<malmès: %9ld>"
-#: readelf.c:16125
+#: readelf.c:19926
msgid " NONE"
msgstr " CAP"
-#: readelf.c:16178
+#: readelf.c:19976
msgid "No MIPS_OPTIONS header found\n"
-msgstr ""
+msgstr "No s'ha trobat una capçalera MIPS_OPTIONS\n"
+
+#: readelf.c:19982
+msgid "The MIPS options section is too small.\n"
+msgstr "La secció d'opcions MIPS és massa petita.\n"
-#: readelf.c:16183
+#: readelf.c:19987
msgid "options"
msgstr "opcions"
-#: readelf.c:16190
-#, fuzzy
-#| msgid "Out of memory allocating 0x%lx bytes for %s\n"
-msgid "Out of memory allocating space for MIPS options\n"
-msgstr "Memòria exhaurida quan s'estava assignant 0x%lx bytes per a %s\n"
-
-#: readelf.c:16212
+#: readelf.c:20006
#, c-format
msgid "Invalid size (%u) for MIPS option\n"
-msgstr ""
+msgstr "Mida no vàlida (%u) per a l'opció MIPS\n"
-#: readelf.c:16221
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "Section '%s' contains %d entries:\n"
+#: readelf.c:20015
+#, c-format
msgid ""
"\n"
"Section '%s' contains %d entry:\n"
@@ -10173,75 +11993,72 @@ msgid_plural ""
"Section '%s' contains %d entries:\n"
msgstr[0] ""
"\n"
-"La secció '%s' conté %d entrades:\n"
+"La secció «%s» conté %d entrada:\n"
msgstr[1] ""
"\n"
-"La secció '%s' conté %d entrades:\n"
+"La secció «%s» conté %d entrades:\n"
+
+#: readelf.c:20053 readelf.c:20085
+msgid "Truncated MIPS REGINFO option\n"
+msgstr "Opció truncada MIPS REGINFO\n"
-#: readelf.c:16392
+#: readelf.c:20221
msgid "conflict list found without a dynamic symbol table\n"
msgstr "s'ha trobat una llista de conflictes sense una taula de símbols dinàmics\n"
-#: readelf.c:16400
+#: readelf.c:20229
#, c-format
-msgid "Overlarge number of conflicts detected: %lx\n"
-msgstr ""
+msgid "Overlarge number of conflicts detected: %zx\n"
+msgstr "S'ha detectat un nombre massa gran de conflictes: %zx\n"
-#: readelf.c:16408
-#, fuzzy
-#| msgid "Out of memory allocating 0x%lx bytes for %s\n"
+#: readelf.c:20237
msgid "Out of memory allocating space for dynamic conflicts\n"
-msgstr "Memòria exhaurida quan s'estava assignant 0x%lx bytes per a %s\n"
+msgstr "S'ha exhaurit de memòria quan s'assignava espai per a conflictes dinàmics\n"
-#: readelf.c:16418 readelf.c:16433
+#: readelf.c:20247 readelf.c:20265
msgid "conflict"
msgstr "conflicte"
-#: readelf.c:16443
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "Section '.conflict' contains %lu entries:\n"
+#: readelf.c:20278
+#, c-format
msgid ""
"\n"
-"Section '.conflict' contains %lu entry:\n"
+"Section '.conflict' contains %zu entry:\n"
msgid_plural ""
"\n"
-"Section '.conflict' contains %lu entries:\n"
+"Section '.conflict' contains %zu entries:\n"
msgstr[0] ""
"\n"
-"La secció '.conflict' conté %lu entrades:\n"
+"La secció «.conflict» conté %zu entrada:\n"
msgstr[1] ""
"\n"
-"La secció '.conflict' conté %lu entrades:\n"
+"La secció «.conflict» conté %zu entrades:\n"
-#: readelf.c:16447
+#: readelf.c:20282
msgid " Num: Index Value Name"
msgstr " Núm: Ãndex Valor Nom"
-#: readelf.c:16454
-#, fuzzy, c-format
-#| msgid "<corrupt string table index: %3ld>"
+#: readelf.c:20289
+#, c-format
msgid "<corrupt symbol index>"
-msgstr "<índex corrupte de taula de cadena de caràcters: %3ld>"
+msgstr "<índex malmès de símbols>"
-#: readelf.c:16465 readelf.c:16590 readelf.c:16675
+#: readelf.c:20300 readelf.c:20432 readelf.c:20520
#, c-format
msgid "<corrupt: %14ld>"
-msgstr "<corrupte: %14ld>"
+msgstr "<malmès: %14ld>"
-#: readelf.c:16488
+#: readelf.c:20323
#, c-format
-msgid "The GOT symbol offset (%lu) is greater than the symbol table size (%lu)\n"
-msgstr ""
+msgid "The GOT symbol offset (%<PRIu64>) is greater than the symbol table size (%<PRIu64>)\n"
+msgstr "El desplaçament del símbol GOT (%<PRIu64>) és més gran que la mida de la taula de símbols (%<PRIu64>)\n"
-#: readelf.c:16497
-#, fuzzy, c-format
-#| msgid " nbr symbols: %d\n"
-msgid "Too many GOT symbols: %lu\n"
-msgstr " símbols nbrs: %d\n"
+#: readelf.c:20333
+#, c-format
+msgid "Too many GOT symbols: %<PRIu64>\n"
+msgstr "Massa símbols GOT: %<PRIu64>\n"
-#: readelf.c:16508
+#: readelf.c:20344
#, c-format
msgid ""
"\n"
@@ -10250,536 +12067,577 @@ msgstr ""
"\n"
"GOT Primària:\n"
-#: readelf.c:16514
+#: readelf.c:20350
#, c-format
msgid " %*s %10s %*s Purpose\n"
msgstr " %*s %10s %*s Propòsit\n"
-#: readelf.c:16516 readelf.c:16544 readelf.c:16563 readelf.c:16642
-#: readelf.c:16652
+#: readelf.c:20352 readelf.c:20380 readelf.c:20399 readelf.c:20486
+#: readelf.c:20496
msgid "Initial"
msgstr "Inicial"
-#: readelf.c:16518
+#: readelf.c:20354
#, c-format
msgid " Lazy resolver\n"
msgstr "Resolvedor fluix\n"
-#: readelf.c:16533
+#: readelf.c:20369
#, c-format
msgid " Module pointer (GNU extension)\n"
msgstr "Punter de mòduls (extensió GNU)\n"
-#: readelf.c:16559
+#: readelf.c:20395
#, c-format
msgid " Global entries:\n"
msgstr " Entrades globals:\n"
-#: readelf.c:16564 readelf.c:16653
+#: readelf.c:20400 readelf.c:20497
msgid "Sym.Val."
msgstr "Val.Sim."
#. Note for translators: "Ndx" = abbreviated form of "Index".
-#: readelf.c:16567 readelf.c:16653
+#: readelf.c:20403 readelf.c:20497
msgid "Ndx"
msgstr "Ndx"
-#: readelf.c:16567 readelf.c:16653
+#: readelf.c:20403 readelf.c:20497
msgid "Name"
msgstr "Nom"
-#: readelf.c:16577
-#, fuzzy, c-format
-#| msgid "bad dynamic symbol\n"
+#: readelf.c:20413
+#, c-format
msgid "<no dynamic symbols>"
-msgstr "símbol dinàmic dolent\n"
+msgstr "<cap símbol dinàmic>"
-#: readelf.c:16593
+#: readelf.c:20435
#, c-format
-msgid "<symbol index %lu exceeds number of dynamic symbols>"
-msgstr ""
+msgid "<symbol index %zu exceeds number of dynamic symbols>"
+msgstr "<l'índex de símbols %zu excedeix el nombre de símbols dinàmics>"
-#: readelf.c:16635
+#: readelf.c:20476
msgid "Procedure Linkage Table data"
msgstr "Dades de la taula d'enllaçament de procediments"
-#: readelf.c:16641
+#: readelf.c:20485
#, c-format
msgid " %*s %*s Purpose\n"
msgstr " %*s %*s Propòsit\n"
-#: readelf.c:16644
+#: readelf.c:20488
#, c-format
msgid " PLT lazy resolver\n"
msgstr " Resolvedor fluix PLT\n"
-#: readelf.c:16646
+#: readelf.c:20490
#, c-format
msgid " Module pointer\n"
msgstr " Punter de mòduls\n"
-#: readelf.c:16649
+#: readelf.c:20493
#, c-format
msgid " Entries:\n"
msgstr " Entrades:\n"
-#: readelf.c:16663
-#, fuzzy, c-format
-#| msgid "<corrupt string table index: %3ld>"
-msgid "<corrupt symbol index: %lu>"
-msgstr "<índex corrupte de taula de cadena de caràcters: %3ld>"
+#: readelf.c:20507
+#, c-format
+msgid "<corrupt symbol index: %<PRIu64>>"
+msgstr "<índex malmès de símbols: %<PRIu64>>"
-#: readelf.c:16701
+#: readelf.c:20546
msgid "NDS32 elf flags section"
msgstr "Secció de senyaladors NDS32 elf"
-#: readelf.c:16765
+#: readelf.c:20612
msgid "liblist string table"
msgstr " taula de cadena de caràcters liblist"
-#: readelf.c:16777
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "Library list section '%s' contains %lu entries:\n"
+#: readelf.c:20624
+#, c-format
msgid ""
"\n"
-"Library list section '%s' contains %lu entries:\n"
+"Library list section '%s' contains %<PRIu64> entries:\n"
msgid_plural ""
"\n"
-"Library list section '%s' contains %lu entries:\n"
+"Library list section '%s' contains %<PRIu64> entries:\n"
msgstr[0] ""
"\n"
-"La secció de llista de biblioteques '%s' conté %lu entrades:\n"
+"La secció de llistes de llibreries «%s» conté %<PRIu64> entrada:\n"
msgstr[1] ""
"\n"
-"La secció de llista de biblioteques '%s' conté %lu entrades:\n"
+"La secció de llistes de llibreries «%s» conté %<PRIu64> entrades:\n"
-#: readelf.c:16783
+#: readelf.c:20632
msgid " Library Time Stamp Checksum Version Flags"
msgstr " Biblioteca Marca de temps Checksum Senyaladors de versió"
-#: readelf.c:16833
+#: readelf.c:20682
msgid "NT_AUXV (auxiliary vector)"
msgstr "NT_AUXV (vector auxiliar)"
-#: readelf.c:16835
+#: readelf.c:20684
msgid "NT_PRSTATUS (prstatus structure)"
msgstr "NT_PRSTATUS (estructura prstatus)"
-#: readelf.c:16837
+#: readelf.c:20686
msgid "NT_FPREGSET (floating point registers)"
msgstr "NT_FPREGSET (registres de punt flotant)"
-#: readelf.c:16839
+#: readelf.c:20688
msgid "NT_PRPSINFO (prpsinfo structure)"
msgstr "NT_PRPSINFO (estructura prpsinfo)"
-#: readelf.c:16841
+#: readelf.c:20690
msgid "NT_TASKSTRUCT (task structure)"
msgstr "NT_TASKSTRUCT (estructura de tasques)"
-#: readelf.c:16843
+#: readelf.c:20692
+msgid "NT_GDB_TDESC (GDB XML target description)"
+msgstr "NT_GDB_TDESC (Descripció de l'objectiu XML de GDB)"
+
+#: readelf.c:20694
msgid "NT_PRXFPREG (user_xfpregs structure)"
msgstr "NT_PRXFPREG (estructura user_xfpregs)"
-#: readelf.c:16845
+#: readelf.c:20696
msgid "NT_PPC_VMX (ppc Altivec registers)"
msgstr "NT_PPC_VMX (registres ppc Altivec)"
-#: readelf.c:16847
+#: readelf.c:20698
msgid "NT_PPC_VSX (ppc VSX registers)"
msgstr "NT_PPC_VSX (registres ppc VSX)"
-#: readelf.c:16849
-#, fuzzy
-#| msgid "NT_PPC_VSX (ppc VSX registers)"
+#: readelf.c:20700
msgid "NT_PPC_TAR (ppc TAR register)"
-msgstr "NT_PPC_VSX (registres ppc VSX)"
+msgstr "NT_PPC_TAR (registre ppc TAR)"
-#: readelf.c:16851
-#, fuzzy
-#| msgid "NT_PPC_VSX (ppc VSX registers)"
+#: readelf.c:20702
msgid "NT_PPC_PPR (ppc PPR register)"
-msgstr "NT_PPC_VSX (registres ppc VSX)"
+msgstr "NT_PPC_PPR (registre ppc PPR)"
-#: readelf.c:16853
-#, fuzzy
-#| msgid "NT_PPC_VSX (ppc VSX registers)"
+#: readelf.c:20704
msgid "NT_PPC_DSCR (ppc DSCR register)"
-msgstr "NT_PPC_VSX (registres ppc VSX)"
+msgstr "NT_PPC_DSCR (registre ppc DSCR)"
-#: readelf.c:16855
-#, fuzzy
-#| msgid "NT_PPC_VSX (ppc VSX registers)"
+#: readelf.c:20706
msgid "NT_PPC_EBB (ppc EBB registers)"
-msgstr "NT_PPC_VSX (registres ppc VSX)"
+msgstr "NT_PPC_EBB (registres ppc EBB)"
-#: readelf.c:16857
-#, fuzzy
-#| msgid "NT_PPC_VSX (ppc VSX registers)"
+#: readelf.c:20708
msgid "NT_PPC_PMU (ppc PMU registers)"
-msgstr "NT_PPC_VSX (registres ppc VSX)"
+msgstr "NT_PPC_PMU (registres ppc PMU)"
-#: readelf.c:16859
-#, fuzzy
-#| msgid "NT_PPC_VMX (ppc Altivec registers)"
+#: readelf.c:20710
msgid "NT_PPC_TM_CGPR (ppc checkpointed GPR registers)"
-msgstr "NT_PPC_VMX (registres ppc Altivec)"
+msgstr "NT_PPC_TM_CGPR (registred ppc controlats GPR)"
-#: readelf.c:16861
-#, fuzzy
-#| msgid "NT_FPREGS (floating point registers)"
+#: readelf.c:20712
msgid "NT_PPC_TM_CFPR (ppc checkpointed floating point registers)"
-msgstr "NT_FPREGS (registres de punt flotant)"
+msgstr "NT_PPC_TM_CFPR (registres ppc controlats de punt flotant)"
-#: readelf.c:16863
-#, fuzzy
-#| msgid "NT_PPC_VMX (ppc Altivec registers)"
+#: readelf.c:20714
msgid "NT_PPC_TM_CVMX (ppc checkpointed Altivec registers)"
-msgstr "NT_PPC_VMX (registres ppc Altivec)"
+msgstr "NT_PPC_TM_CVMX (registres ppc controlats Altivec)"
-#: readelf.c:16865
-#, fuzzy
-#| msgid "NT_PPC_VSX (ppc VSX registers)"
+#: readelf.c:20716
msgid "NT_PPC_TM_CVSX (ppc checkpointed VSX registers)"
-msgstr "NT_PPC_VSX (registres ppc VSX)"
+msgstr "NT_PPC_TM_CVSX (registres ppc controlats VSX)"
-#: readelf.c:16867
-#, fuzzy
-#| msgid "NT_PPC_VMX (ppc Altivec registers)"
+#: readelf.c:20718
msgid "NT_PPC_TM_SPR (ppc TM special purpose registers)"
-msgstr "NT_PPC_VMX (registres ppc Altivec)"
+msgstr "NT_PPC_TM_SPR (registres de propòsit especial ppc TM)"
-#: readelf.c:16869
-#, fuzzy
-#| msgid "NT_PPC_VMX (ppc Altivec registers)"
+#: readelf.c:20720
msgid "NT_PPC_TM_CTAR (ppc checkpointed TAR register)"
-msgstr "NT_PPC_VMX (registres ppc Altivec)"
+msgstr "NT_PPC_TM_CTAR (registre ppc controlat TAR)"
-#: readelf.c:16871
-#, fuzzy
-#| msgid "NT_PPC_VMX (ppc Altivec registers)"
+#: readelf.c:20722
msgid "NT_PPC_TM_CPPR (ppc checkpointed PPR register)"
-msgstr "NT_PPC_VMX (registres ppc Altivec)"
+msgstr "NT_PPC_TM_CPPR (registre ppc controlat PPR)"
-#: readelf.c:16873
-#, fuzzy
-#| msgid "NT_PPC_VSX (ppc VSX registers)"
+#: readelf.c:20724
msgid "NT_PPC_TM_CDSCR (ppc checkpointed DSCR register)"
-msgstr "NT_PPC_VSX (registres ppc VSX)"
+msgstr "NT_PPC_TM_CDSCR (registre ppc controlat DSCR)"
-#: readelf.c:16875
+#: readelf.c:20726
msgid "NT_386_TLS (x86 TLS information)"
msgstr "NT_386_TLS (informació x86 TLS)"
-#: readelf.c:16877
+#: readelf.c:20728
msgid "NT_386_IOPERM (x86 I/O permissions)"
msgstr "NT_386_IOPERM (informació x86 I/O)"
-#: readelf.c:16879
+#: readelf.c:20730
msgid "NT_X86_XSTATE (x86 XSAVE extended state)"
msgstr "NT_X86_XSTATE (estat estès x86 XSAVE)"
-#: readelf.c:16881
+#: readelf.c:20732
+msgid "NT_X86_CET (x86 CET state)"
+msgstr "NT_X86_CET (estat x86 CET)"
+
+#: readelf.c:20734
+msgid "NT_X86_SHSTK (x86 SHSTK state)"
+msgstr "NT_X86_SHSTK (estat x86 SHSTK)"
+
+#: readelf.c:20736
msgid "NT_S390_HIGH_GPRS (s390 upper register halves)"
msgstr "NT_S390_HIGH_GPRS (s390 meitats de registres superiors)"
-#: readelf.c:16883
+#: readelf.c:20738
msgid "NT_S390_TIMER (s390 timer register)"
msgstr "NT_S390_TIMER (registre de temporalització s390)"
-#: readelf.c:16885
+#: readelf.c:20740
msgid "NT_S390_TODCMP (s390 TOD comparator register)"
msgstr "NT_S390_TODCMP (registre comparatiu s390 TOD)"
-#: readelf.c:16887
+#: readelf.c:20742
msgid "NT_S390_TODPREG (s390 TOD programmable register)"
msgstr "NT_S390_TODPREG (registre programable s390 TOD)"
-#: readelf.c:16889
+#: readelf.c:20744
msgid "NT_S390_CTRS (s390 control registers)"
msgstr "NT_S390_CTRS (registres de control s390)"
-#: readelf.c:16891
+#: readelf.c:20746
msgid "NT_S390_PREFIX (s390 prefix register)"
msgstr "NT_S390_PREFIX (registres de prefixos s390)"
-#: readelf.c:16893
+#: readelf.c:20748
msgid "NT_S390_LAST_BREAK (s390 last breaking event address)"
msgstr "NT_S390_LAST_BREAK (s390 adreça de l'últim esdeveniment interruptor)"
-#: readelf.c:16895
+#: readelf.c:20750
msgid "NT_S390_SYSTEM_CALL (s390 system call restart data)"
msgstr "NT_S390_SYSTEM (dades de reinici de crida de sistema s390)"
-#: readelf.c:16897
+#: readelf.c:20752
msgid "NT_S390_TDB (s390 transaction diagnostic block)"
msgstr "NT_S390_TDB (bloc de diagnòstic de transacció s390)"
-#: readelf.c:16899
-#, fuzzy
-#| msgid "NT_S390_CTRS (s390 control registers)"
+#: readelf.c:20754
msgid "NT_S390_VXRS_LOW (s390 vector registers 0-15 upper half)"
-msgstr "NT_S390_CTRS (registres de control s390)"
+msgstr "NT_S390_VXRS_LOW (registres vectorials s390 0-15 meitat superior)"
-#: readelf.c:16901
-#, fuzzy
-#| msgid "NT_S390_CTRS (s390 control registers)"
+#: readelf.c:20756
msgid "NT_S390_VXRS_HIGH (s390 vector registers 16-31)"
-msgstr "NT_S390_CTRS (registres de control s390)"
+msgstr "NT_S390_VXRS_HIGH (registres vectorials s390 16-31)"
-#: readelf.c:16903
-#, fuzzy
-#| msgid "NT_S390_CTRS (s390 control registers)"
+#: readelf.c:20758
msgid "NT_S390_GS_CB (s390 guarded-storage registers)"
-msgstr "NT_S390_CTRS (registres de control s390)"
+msgstr "NT_S390_GS_CB (registres d'emmagatzematge vigilat s390)"
-#: readelf.c:16905
+#: readelf.c:20760
msgid "NT_S390_GS_BC (s390 guarded-storage broadcast control)"
-msgstr ""
+msgstr "NT_S390_GS_BC (control d'emissió d'emmagatzematge vigilat s390)"
-#: readelf.c:16907
+#: readelf.c:20762
msgid "NT_ARM_VFP (arm VFP registers)"
msgstr "NT_ARM_VFP (registres arm VFP)"
-#: readelf.c:16909
+#: readelf.c:20764
msgid "NT_ARM_TLS (AArch TLS registers)"
msgstr "NT_ARM_TLS (registres AArch TLS)"
-#: readelf.c:16911
+#: readelf.c:20766
msgid "NT_ARM_HW_BREAK (AArch hardware breakpoint registers)"
msgstr "NT_ARM_HW_BREAK (registres de punt d'interrupció de maquinari AArch)"
-#: readelf.c:16913
+#: readelf.c:20768
msgid "NT_ARM_HW_WATCH (AArch hardware watchpoint registers)"
msgstr "NT_ARM_HW_WATCH (registres de punt d'inspecció de maquinari AArch)"
-#: readelf.c:16915
+#: readelf.c:20770
+msgid "NT_ARM_SYSTEM_CALL (AArch system call number)"
+msgstr "NT_ARM_SYSTEM_CALL (nombre de crida de sistema AArch)"
+
+#: readelf.c:20772
+msgid "NT_ARM_SVE (AArch SVE registers)"
+msgstr "NT_ARM_SVE (registres AArch SVE)"
+
+#: readelf.c:20774
+msgid "NT_ARM_PAC_MASK (AArch pointer authentication code masks)"
+msgstr "NT_ARM_PAC_MASK (màscares de codi d'autenticació de punter AArch)"
+
+#: readelf.c:20776
+msgid "NT_ARM_PACA_KEYS (ARM pointer authentication address keys)"
+msgstr "NT_ARM_PACA_KEYS (claus d'adreces d'autenticació de peuntr ARM)"
+
+#: readelf.c:20778
+msgid "NT_ARM_PACG_KEYS (ARM pointer authentication generic keys)"
+msgstr "NT_ARM_PACG_KEYS (claus genèriques d'autenticació de punter ARM)"
+
+#: readelf.c:20780
+msgid "NT_ARM_TAGGED_ADDR_CTRL (AArch tagged address control)"
+msgstr "NT_ARM_TAGGED_ADDR_CTRL (control d'adreçes etiquetat AArch)"
+
+#: readelf.c:20782
+msgid "NT_ARM_SSVE (AArch64 streaming SVE registers)"
+msgstr "NT_ARM_SSVE (registres AArch64 streaming SVE)"
+
+#: readelf.c:20784
+msgid "NT_ARM_ZA (AArch64 SME ZA register)"
+msgstr "NT_ARM_ZA (registre AArch64 SME ZA)"
+
+#: readelf.c:20786
+msgid "NT_ARM_ZT (AArch64 SME2 ZT registers)"
+msgstr "NT_ARM_ZT (registres AArch64 SME2 ZT)"
+
+#: readelf.c:20788
+msgid "NT_ARM_PAC_ENABLED_KEYS (AArch64 pointer authentication enabled keys)"
+msgstr "NT_ARM_PAC_ENABLED_KEYS (claus habilitades d'autenticació de punter AArch64)"
+
+#: readelf.c:20790
+msgid "NT_ARC_V2 (ARC HS accumulator/extra registers)"
+msgstr "NT_ARC_V2 (registres ARC HS accumulador/extra)"
+
+#: readelf.c:20792
+msgid "NT_RISCV_CSR (RISC-V control and status registers)"
+msgstr "NT_RISCV_CSR (registres de control i estat RISC-V)"
+
+#: readelf.c:20794
msgid "NT_PSTATUS (pstatus structure)"
msgstr "NT_PSTATUS (estructura pstatus)"
-#: readelf.c:16917
+#: readelf.c:20796
msgid "NT_FPREGS (floating point registers)"
msgstr "NT_FPREGS (registres de punt flotant)"
-#: readelf.c:16919
+#: readelf.c:20798
msgid "NT_PSINFO (psinfo structure)"
msgstr "NT_PSINFO (estructura psinfo)"
-#: readelf.c:16921
+#: readelf.c:20800
msgid "NT_LWPSTATUS (lwpstatus_t structure)"
msgstr "NT_LWPSTATUS (estructura lwpstatus_t)"
-#: readelf.c:16923
+#: readelf.c:20802
msgid "NT_LWPSINFO (lwpsinfo_t structure)"
msgstr "NT_LWPSINFO (estructura lwpsinfo_t)"
-#: readelf.c:16925
+#: readelf.c:20804
msgid "NT_WIN32PSTATUS (win32_pstatus structure)"
msgstr "NT_WIN32PSTATUS (estructura win32_pstatus)"
-#: readelf.c:16927
+#: readelf.c:20806
msgid "NT_SIGINFO (siginfo_t data)"
msgstr "NT_SIGINFO (dades siginfo_t)"
-#: readelf.c:16929
+#: readelf.c:20808
msgid "NT_FILE (mapped files)"
msgstr "NT_FILE (fitxers mapejats)"
-#: readelf.c:16937
+#: readelf.c:20816
msgid "NT_VERSION (version)"
msgstr "NT_VERSION (versió)"
-#: readelf.c:16939
+#: readelf.c:20818
msgid "NT_ARCH (architecture)"
msgstr "NT_ARCH (arquitectura)"
-#: readelf.c:16941
+#: readelf.c:20820
msgid "OPEN"
-msgstr ""
+msgstr "OBRE"
-#: readelf.c:16943
-#, fuzzy
-#| msgid "function"
+#: readelf.c:20822
msgid "func"
msgstr "funció"
-#: readelf.c:16948 readelf.c:17067 readelf.c:17647 readelf.c:17791
-#: readelf.c:17849 readelf.c:17926
+#: readelf.c:20824
+msgid "GO BUILDID"
+msgstr "GO BUILDID"
+
+#: readelf.c:20826
+msgid "FDO_PACKAGING_METADATA"
+msgstr "FDO_PACKAGING_METADATA"
+
+#: readelf.c:20828
+msgid "FDO_DLOPEN_METADATA"
+msgstr "FDO_DLOPEN_METADATA"
+
+#: readelf.c:20833 readelf.c:20943 readelf.c:21132 readelf.c:21710
+#: readelf.c:21880 readelf.c:22009 readelf.c:22142
#, c-format
msgid "Unknown note type: (0x%08x)"
msgstr "Tipus de nota desconeguda: (0x%08x)"
-#: readelf.c:16969
-#, c-format
-msgid " Cannot decode 64-bit note in 32-bit build\n"
-msgstr " No es pot decodificar la nota de 64-bit a compilació 32-bit\n"
-
-#: readelf.c:16977
+#: readelf.c:20853
msgid " Malformed note - too short for header\n"
msgstr " Nota formada malament - massa petita per a la capçalera\n"
-#: readelf.c:16986
+#: readelf.c:20862
msgid " Malformed note - does not end with \\0\n"
msgstr " Nota formada malament - no finalitza amb \\0\n"
-#: readelf.c:16999
+#: readelf.c:20875
msgid " Malformed note - too short for supplied file count\n"
msgstr " Nota formada malament - massa curta per al compte de fitxers proveïts\n"
-#: readelf.c:17003
+#: readelf.c:20879
#, c-format
msgid " Page size: "
msgstr " Mida de pàgina: "
-#: readelf.c:17007
+#: readelf.c:20883
#, c-format
msgid " %*s%*s%*s\n"
msgstr " %*s%*s%*s\n"
-#: readelf.c:17008
+#: readelf.c:20884
msgid "Start"
msgstr "Inicia"
-#: readelf.c:17009
+#: readelf.c:20885
msgid "End"
msgstr "Finalitza"
-#: readelf.c:17010
+#: readelf.c:20886
msgid "Page Offset"
msgstr "Desplaçament de la pàgina"
-#: readelf.c:17018
+#: readelf.c:20894
msgid " Malformed note - filenames end too early\n"
msgstr "Nota formada malament - els noms dels fitxers finalitzen massa aviat\n"
-#: readelf.c:17050
+#: readelf.c:20926
msgid "NT_GNU_ABI_TAG (ABI version tag)"
msgstr "NT_GNU_ABI_TAG (senyalador de versió ABI)"
-#: readelf.c:17052
+#: readelf.c:20928
msgid "NT_GNU_HWCAP (DSO-supplied software HWCAP info)"
msgstr "NT_GNU_HWCAP (informació HWCAP de programari proveït per DSO)"
-#: readelf.c:17054
+#: readelf.c:20930
msgid "NT_GNU_BUILD_ID (unique build ID bitstring)"
msgstr "NT_GNU_BUILD_ID (bitsring ID de compilació única)"
-#: readelf.c:17056
+#: readelf.c:20932
msgid "NT_GNU_GOLD_VERSION (gold version)"
msgstr "NT_GNU_GOLD_VERSION (versió or)"
-#: readelf.c:17058
+#: readelf.c:20934
msgid "NT_GNU_PROPERTY_TYPE_0"
-msgstr ""
+msgstr "NT_GNU_PROPERTY_TYPE_0"
-#: readelf.c:17060
+#: readelf.c:20936
msgid "NT_GNU_BUILD_ATTRIBUTE_OPEN"
-msgstr ""
+msgstr "NT_GNU_BUILD_ATTRIBUTE_OPEN"
-#: readelf.c:17062
+#: readelf.c:20938
msgid "NT_GNU_BUILD_ATTRIBUTE_FUNC"
-msgstr ""
+msgstr "NT_GNU_BUILD_ATTRIBUTE_FUNC"
-#: readelf.c:17151 readelf.c:17248 readelf.c:17279
-#, fuzzy, c-format
-#| msgid "<none>"
+#: readelf.c:21027 readelf.c:21174 readelf.c:21211
+#, c-format
msgid "<None>"
-msgstr "<cap>"
+msgstr "<Cap>"
-#: readelf.c:17336
-#, fuzzy, c-format
-#| msgid " Provider: %s\n"
+#: readelf.c:21128
+msgid "NT_AMDGPU_METADATA (code object metadata)"
+msgstr "NT_AMDGPU_METADATA (metadata d'objecte de codi)"
+
+#: readelf.c:21327
+#, c-format
msgid " Properties: "
-msgstr " Proveïdor: %s\n"
+msgstr " Propietats: "
-#: readelf.c:17340
+#: readelf.c:21331
#, c-format
msgid "<corrupt GNU_PROPERTY_TYPE, size = %#lx>\n"
-msgstr ""
+msgstr "<corrupt GNU_PROPERTY_TYPE, mida = %#lx>\n"
-#: readelf.c:17352
-#, fuzzy, c-format
-#| msgid "<corrupt: %9ld>"
+#: readelf.c:21343
+#, c-format
msgid "<corrupt descsz: %#lx>\n"
-msgstr "<corrupte: %9ld>"
+msgstr "<descsz malmès: %#lx>\n"
-#: readelf.c:17363
+#: readelf.c:21354
#, c-format
msgid "<corrupt type (%#x) datasz: %#x>\n"
-msgstr ""
+msgstr "<tipus malmès (%#x) datasz: %#x>\n"
-#: readelf.c:17385 readelf.c:17439
+#: readelf.c:21376 readelf.c:21430 readelf.c:21452
#, c-format
msgid "x86 ISA used: <corrupt length: %#x> "
-msgstr ""
+msgstr "x86 ISA usat: <longitud malmesa: %#x> "
-#: readelf.c:17396 readelf.c:17450
+#: readelf.c:21387 readelf.c:21441 readelf.c:21463
#, c-format
msgid "x86 ISA needed: <corrupt length: %#x> "
-msgstr ""
+msgstr "x86 ISA necessari: <longitud malmesa: %#x> "
-#: readelf.c:17407
+#: readelf.c:21398
#, c-format
msgid "x86 feature: <corrupt length: %#x> "
-msgstr ""
+msgstr "x86 característica: <longitud malmesa: %#x> "
-#: readelf.c:17418
+#: readelf.c:21409
#, c-format
msgid "x86 feature used: <corrupt length: %#x> "
-msgstr ""
+msgstr "característica x86 utilitzada: <longitud malmesa: %#x>"
-#: readelf.c:17429
+#: readelf.c:21420
#, c-format
msgid "x86 feature needed: <corrupt length: %#x> "
-msgstr ""
+msgstr "característica x86 necessària: <longitud malmesa: %#x>"
-#: readelf.c:17469
-#, fuzzy, c-format
-#| msgid "Data size"
+#: readelf.c:21482 readelf.c:21496 readelf.c:21504 readelf.c:21510
+#: readelf.c:21541
+#, c-format
+msgid "<corrupt length: %#x> "
+msgstr "<longitud malmesa: %#x> "
+
+#: readelf.c:21494
+#, c-format
msgid "stack size: "
-msgstr "Mida de les dades"
+msgstr "mida de la pila: "
-#: readelf.c:17471 readelf.c:17479
-#, fuzzy, c-format
-#| msgid "<corrupt: %"
-msgid "<corrupt length: %#x> "
-msgstr "<corrupte: %"
+#: readelf.c:21523
+#, c-format
+msgid "1_needed: <corrupt length: %#x> "
+msgstr "1_needed: <longitud malmesa: %#x> "
-#: readelf.c:17488
-#, fuzzy, c-format
-#| msgid " <unknown tag %d>: "
+#: readelf.c:21537
+#, c-format
+msgid "UINT32_AND (%#x): "
+msgstr "UINT32_AND (%#x): "
+
+#: readelf.c:21539
+#, c-format
+msgid "UINT32_OR (%#x): "
+msgstr "UINT32_OR (%#x): "
+
+#: readelf.c:21551
+#, c-format
msgid "<unknown type %#x data: "
-msgstr "<Senyalador desconegut %d>: "
+msgstr "<tipus desconegut dades %#x: "
-#: readelf.c:17490
-#, fuzzy, c-format
-#| msgid "<processor specific>: %d"
-msgid "<procesor-specific type %#x data: "
-msgstr "<específic per al processador>: %d"
+#: readelf.c:21553
+#, c-format
+msgid "<processor-specific type %#x data: "
+msgstr "específic per al processador dades %#x: "
-#: readelf.c:17492
+#: readelf.c:21555
#, c-format
msgid "<application-specific type %#x data: "
-msgstr ""
+msgstr "<específic d'aplicació tipus de dades %#x: "
-#: readelf.c:17521
+#: readelf.c:21584
#, c-format
msgid " Build ID: "
msgstr " ID de compilació: "
-#: readelf.c:17536
+#: readelf.c:21599
#, c-format
msgid " <corrupt GNU_ABI_TAG>\n"
-msgstr ""
+msgstr " <GNU_ABI_TAG malmès>\n"
-#: readelf.c:17573
+#: readelf.c:21636
#, c-format
-msgid " OS: %s, ABI: %ld.%ld.%ld\n"
-msgstr " SO: %s, ABI: %ld.%ld.%ld\n"
+msgid " OS: %s, ABI: %d.%d.%d\n"
+msgstr " SO: %s, ABI: %d.%d.%d\n"
-#: readelf.c:17582
+#: readelf.c:21645
#, c-format
msgid " Version: "
msgstr " Versió:: "
@@ -10789,275 +12647,370 @@ msgstr " Versió:: "
#. is a series of entries, where each entry is a single byte followed
#. by a nul terminated string. The byte gives the bit number to test
#. if enabled in the bitmask.
-#: readelf.c:17598
+#: readelf.c:21661
#, c-format
msgid " Hardware Capabilities: "
-msgstr ""
+msgstr " Capacitats del maquinari:"
-#: readelf.c:17601
-#, fuzzy
-#| msgid "<corrupt>"
+#: readelf.c:21664
msgid "<corrupt GNU_HWCAP>\n"
-msgstr "<corrupte>"
+msgstr "<GNU_HWCAP malmès>\n"
-#: readelf.c:17606
+#: readelf.c:21669
#, c-format
-msgid "num entries: %ld, enabled mask: %lx\n"
-msgstr ""
+msgid "num entries: %d, enabled mask: %x\n"
+msgstr "nombre d'entrades: %d, màscara habilitada: %x\n"
-#: readelf.c:17622
-#, fuzzy, c-format
-#| msgid "%s section data"
+#: readelf.c:21685
+#, c-format
msgid " Description data: "
-msgstr "%s dades de la secció"
+msgstr " Dades de decripció: "
-#: readelf.c:17640
+#: readelf.c:21703
msgid "Alignment of 8-byte objects"
-msgstr ""
+msgstr "Alineació d'objectes de 8 bytes"
-#: readelf.c:17641
+#: readelf.c:21704
msgid "Sizeof double and long double"
-msgstr ""
+msgstr "Mida del doble i el doble llarg"
-#: readelf.c:17642
+#: readelf.c:21705
msgid "Type of FPU support needed"
-msgstr ""
+msgstr "Cal un tipus de suport FPU"
-#: readelf.c:17643
+#: readelf.c:21706
msgid "Use of SIMD instructions"
-msgstr ""
+msgstr "Ús d'instruccions SIMD"
-#: readelf.c:17644
+#: readelf.c:21707
msgid "Use of cache"
-msgstr ""
+msgstr "Ús de la memòria cau"
-#: readelf.c:17645
+#: readelf.c:21708
msgid "Use of MMU"
-msgstr ""
+msgstr "Ús de MMU"
-#: readelf.c:17681
-#, fuzzy, c-format
-#| msgid "4-byte\n"
+#: readelf.c:21744
+#, c-format
msgid "4-bytes\n"
-msgstr "4-byte\n"
+msgstr "4-bytes\n"
-#: readelf.c:17682
-#, fuzzy, c-format
-#| msgid "8-byte\n"
+#: readelf.c:21745
+#, c-format
msgid "8-bytes\n"
-msgstr "8-byte\n"
+msgstr "8-bytes\n"
-#: readelf.c:17689
+#: readelf.c:21752
#, c-format
msgid "FPU-2.0\n"
-msgstr ""
+msgstr "FPU-2.0\n"
-#: readelf.c:17690
+#: readelf.c:21753
#, c-format
msgid "FPU-3.0\n"
-msgstr ""
+msgstr "FPU-3.0\n"
-#: readelf.c:17699
+#: readelf.c:21762
#, c-format
msgid "yes\n"
-msgstr ""
+msgstr "sí\n"
-#: readelf.c:17709
-#, fuzzy, c-format
-#| msgid "Unknown AT value: %lx"
+#: readelf.c:21772
+#, c-format
msgid "unknown value: %x\n"
-msgstr "Valor AT desconegut: %lx"
+msgstr "valor desconegut: %x\n"
-#: readelf.c:17751
-#, fuzzy
-#| msgid "NT_TASKSTRUCT (task structure)"
+#: readelf.c:21828
msgid "NT_THRMISC (thrmisc structure)"
-msgstr "NT_TASKSTRUCT (estructura de tasques)"
+msgstr "NT_THRMISC (estructura thrmisc)"
-#: readelf.c:17753
+#: readelf.c:21830
msgid "NT_PROCSTAT_PROC (proc data)"
-msgstr ""
+msgstr "NT_PROCSTAT_PROC (dades proc)"
-#: readelf.c:17755
+#: readelf.c:21832
msgid "NT_PROCSTAT_FILES (files data)"
-msgstr ""
+msgstr "NT_PROCSTAT_FILES (dades de fitxers)"
-#: readelf.c:17757
+#: readelf.c:21834
msgid "NT_PROCSTAT_VMMAP (vmmap data)"
-msgstr ""
+msgstr "NT_PROCSTAT_VMMAP (dades vmmap)"
-#: readelf.c:17759
+#: readelf.c:21836
msgid "NT_PROCSTAT_GROUPS (groups data)"
-msgstr ""
+msgstr "NT_PROCSTAT_GROUPS (dades de grups)"
-#: readelf.c:17761
+#: readelf.c:21838
msgid "NT_PROCSTAT_UMASK (umask data)"
-msgstr ""
+msgstr "NT_PROCSTAT_UMASK (dades umask)"
-#: readelf.c:17763
+#: readelf.c:21840
msgid "NT_PROCSTAT_RLIMIT (rlimit data)"
-msgstr ""
+msgstr "NT_PROCSTAT_RLIMIT (dades rlimit)"
-#: readelf.c:17765
+#: readelf.c:21842
msgid "NT_PROCSTAT_OSREL (osreldate data)"
-msgstr ""
+msgstr "NT_PROCSTAT_OSREL (dades osreldate)"
-#: readelf.c:17767
+#: readelf.c:21844
msgid "NT_PROCSTAT_PSSTRINGS (ps_strings data)"
-msgstr ""
+msgstr "NT_PROCSTAT_PSSTRINGS (dades ps_strings)"
-#: readelf.c:17769
+#: readelf.c:21846
msgid "NT_PROCSTAT_AUXV (auxv data)"
-msgstr ""
+msgstr "NT_PROCSTAT_AUXV (dades auxv)"
-#: readelf.c:17771
-#, fuzzy
-#| msgid "NT_LWPSINFO (lwpsinfo_t structure)"
+#: readelf.c:21848
msgid "NT_PTLWPINFO (ptrace_lwpinfo structure)"
-msgstr "NT_LWPSINFO (estructura lwpsinfo_t)"
+msgstr "NT_PTLWPINFO (estructura ptrace_lwpinfo)"
+
+#: readelf.c:21850
+msgid "NT_X86_SEGBASES (x86 segment base registers)"
+msgstr "NT_X86_SEGBASES (registres de base de segment x86)"
-#: readelf.c:17782
+#. NetBSD core "procinfo" structure.
+#: readelf.c:21864
msgid "NetBSD procinfo structure"
msgstr "Estructura procinfo NetBSD"
-#: readelf.c:17808 readelf.c:17822
+#: readelf.c:21867
+msgid "NetBSD ELF auxiliary vector data"
+msgstr "dades auxiliar de vectors NetBSD ELF"
+
+#: readelf.c:21870
+msgid "PT_LWPSTATUS (ptrace_lwpstatus structure)"
+msgstr "PT_LWPSTATUS (estructura ptrace_lwpstatus)"
+
+#: readelf.c:21899 readelf.c:21916 readelf.c:21930
msgid "PT_GETREGS (reg structure)"
msgstr "PT_GETREGS (estructura reg)"
-#: readelf.c:17810 readelf.c:17824
+#: readelf.c:21901 readelf.c:21918 readelf.c:21932
msgid "PT_GETFPREGS (fpreg structure)"
msgstr "PT_GETFPREGS (estructura fpreg)"
-#: readelf.c:17843
+#: readelf.c:21914
+msgid "PT___GETREGS40 (old reg structure)"
+msgstr "PT___GETREGS40 (estructura old reg)"
+
+#: readelf.c:21949
+msgid "OpenBSD procinfo structure"
+msgstr "estructura OpenBSD procinfo"
+
+#: readelf.c:21951
+msgid "OpenBSD ELF auxiliary vector data"
+msgstr "Dades vectorials auxiliars OpenBSD ELF"
+
+#: readelf.c:21953
+msgid "OpenBSD regular registers"
+msgstr "Registres regulars d'OpenBSD"
+
+#: readelf.c:21955
+msgid "OpenBSD floating point registers"
+msgstr "registres de punt flotant OpenBSD"
+
+#: readelf.c:21957
+msgid "OpenBSD window cookie"
+msgstr "Cookie de la finestra OpenBSD"
+
+#: readelf.c:21969
+msgid "QNX debug fullpath"
+msgstr "QNX depura camí complet"
+
+#: readelf.c:21971
+msgid "QNX debug relocation"
+msgstr "reubicació QNX depuració"
+
+#: readelf.c:21973
+msgid "QNX stack"
+msgstr "Pila QNX"
+
+#: readelf.c:21975
+msgid "QNX generator"
+msgstr "Generador QNX"
+
+#: readelf.c:21977
+msgid "QNX default library"
+msgstr "llibreria predeterminada QNX"
+
+#: readelf.c:21979
+msgid "QNX core sysinfo"
+msgstr "QNX sysinfo del nucli"
+
+#: readelf.c:21981
+msgid "QNX core info"
+msgstr "informació del nucli QNX"
+
+#: readelf.c:21983
+msgid "QNX core status"
+msgstr "Estat del nucli QNX"
+
+#: readelf.c:21985
+msgid "QNX general registers"
+msgstr "registres generals QNX"
+
+#: readelf.c:21987
+msgid "QNX floating point registers"
+msgstr "registres de punt flotant QNX"
+
+#: readelf.c:21989
+msgid "QNX link map"
+msgstr "Mapa d'enllaços QNX"
+
+#: readelf.c:22003
msgid "NT_STAPSDT (SystemTap probe descriptors)"
msgstr "NT_STAPSDT (descriptors de sonda SystemTap)"
-#: readelf.c:17876
+#: readelf.c:22071
#, c-format
msgid " Provider: %s\n"
msgstr " Proveïdor: %s\n"
-#: readelf.c:17877
+#: readelf.c:22072
#, c-format
msgid " Name: %s\n"
msgstr " Nom: %s\n"
-#: readelf.c:17878
+#: readelf.c:22073
#, c-format
msgid " Location: "
msgstr " Localització: "
-#: readelf.c:17880
+#: readelf.c:22075
#, c-format
msgid ", Base: "
msgstr ", Base: "
-#: readelf.c:17882
+#: readelf.c:22077
#, c-format
msgid ", Semaphore: "
msgstr ", Semàfor: "
-#: readelf.c:17885
+#: readelf.c:22080
#, c-format
msgid " Arguments: %s\n"
msgstr " Arguments: %s\n"
-#: readelf.c:17898
+#: readelf.c:22085
+#, c-format
+msgid " <corrupt - note is too small>\n"
+msgstr " <malmès - la nota és massa petita>\n"
+
+#: readelf.c:22086
+msgid "corrupt stapdt note - the data size is too small\n"
+msgstr "nota stapdt malmesa - la mida de les dades és massa petita\n"
+
+#: readelf.c:22095
+#, c-format
+msgid " Packaging Metadata: %.*s\n"
+msgstr " Metadades d'empaquetament: %.*s\n"
+
+#: readelf.c:22100
+#, c-format
+msgid " Dlopen Metadata: %.*s\n"
+msgstr " Metadades Dlopen: %.*s\n"
+
+#: readelf.c:22114
msgid "NT_VMS_MHD (module header)"
msgstr "NT_VMS_MHD (capçalera de mòdul)"
-#: readelf.c:17900
+#: readelf.c:22116
msgid "NT_VMS_LNM (language name)"
msgstr "NT_VMS_LNM (nom d'idioma)"
-#: readelf.c:17902
+#: readelf.c:22118
msgid "NT_VMS_SRC (source files)"
msgstr "NT_VMS_SRC (fitxers de codi font)"
-#: readelf.c:17906
+#: readelf.c:22122
msgid "NT_VMS_EIDC (consistency check)"
msgstr "NT_VMS_EIDC (verificació de consistència)"
-#: readelf.c:17908
+#: readelf.c:22124
msgid "NT_VMS_FPMODE (FP mode)"
msgstr "NT_VMS_FPMODE (mode FP)"
-#: readelf.c:17912
+#: readelf.c:22128
msgid "NT_VMS_IMGNAM (image name)"
msgstr "NT_VMS_IMGNAM (nom d'imatge)"
-#: readelf.c:17914
+#: readelf.c:22130
msgid "NT_VMS_IMGID (image id)"
msgstr "NT_VMS_IMGID (id d'imatge)"
-#: readelf.c:17916
+#: readelf.c:22132
msgid "NT_VMS_LINKID (link id)"
msgstr "NT_VMS_LINKID (id d'enllaçament)"
-#: readelf.c:17918
+#: readelf.c:22134
msgid "NT_VMS_IMGBID (build id)"
msgstr "NT_VMS_IMGBID (id de compilació)"
-#: readelf.c:17920
+#: readelf.c:22136
msgid "NT_VMS_GSTNAM (sym table name)"
msgstr "NT_VMS_GSTNAM (nom de la taula de símbols)"
-#: readelf.c:17940
+#: readelf.c:22163
#, c-format
msgid " Creation date : %.17s\n"
msgstr " Data de creació : %.17s\n"
-#: readelf.c:17941
+#: readelf.c:22164
#, c-format
msgid " Last patch date: %.17s\n"
msgstr " Data de l'últim pegat: %.17s\n"
-#: readelf.c:17942
+#: readelf.c:22167
#, c-format
msgid " Module name : %s\n"
msgstr " Nom del mòdul : %s\n"
-#: readelf.c:17943
+#: readelf.c:22169
#, c-format
msgid " Module version : %s\n"
msgstr " Versió del mòdul : %s\n"
-#: readelf.c:17946
+#: readelf.c:22171 readelf.c:22176
#, c-format
-msgid " Invalid size\n"
-msgstr " Mida no vàlida\n"
+msgid " Module version : <missing>\n"
+msgstr " Versió del mòdul : <faltant>\n"
-#: readelf.c:17949
+#: readelf.c:22175
#, c-format
-msgid " Language: %s\n"
-msgstr " Idioma: %s\n"
+msgid " Module name : <missing>\n"
+msgstr " Nom del mòdul : <faltant>\n"
-#: readelf.c:17953
+#: readelf.c:22181
+#, c-format
+msgid " Language: %.*s\n"
+msgstr " Idioma: %.*s\n"
+
+#: readelf.c:22185
#, c-format
msgid " Floating Point mode: "
msgstr " Mode de punt flotant: "
-#: readelf.c:17958
+#: readelf.c:22195
#, c-format
msgid " Link time: "
msgstr " Temps d'enllaçament: "
-#: readelf.c:17964
+#: readelf.c:22205
#, c-format
msgid " Patch time: "
msgstr " Temps de pegat: "
-#: readelf.c:17970
+#: readelf.c:22218
#, c-format
msgid " Major id: %u, minor id: %u\n"
msgstr " Id major: %u, id menor: %u\n"
-#: readelf.c:17973
+#: readelf.c:22221
#, c-format
msgid " Last modified : "
msgstr " Modificat per últim cop : "
-#: readelf.c:17976
+#: readelf.c:22223
#, c-format
msgid ""
"\n"
@@ -11066,300 +13019,295 @@ msgstr ""
"\n"
" Senyaladors d'enllaçament : "
-#: readelf.c:17979
+#: readelf.c:22226
#, c-format
msgid " Header flags: 0x%08x\n"
msgstr " Senyaladors de capçalera: 0x%08x\n"
-#: readelf.c:17981
+#: readelf.c:22228
#, c-format
-msgid " Image id : %s\n"
-msgstr " Id d'imatge : %s\n"
+msgid " Image id : %.*s\n"
+msgstr " Id d'imatge : %.*s\n"
-#: readelf.c:17985
+#: readelf.c:22232
#, c-format
-msgid " Image name: %s\n"
-msgstr " Nom d'imatge: %s\n"
+msgid " Image name: %.*s\n"
+msgstr " Nom d'imatge: %.*s\n"
-#: readelf.c:17988
+#: readelf.c:22236
#, c-format
-msgid " Global symbol table name: %s\n"
-msgstr " Nom de la taula de símbols globals: %s\n"
+msgid " Global symbol table name: %.*s\n"
+msgstr " Nom de taula de símbols globals: %.*s\n"
-#: readelf.c:17991
+#: readelf.c:22240
#, c-format
-msgid " Image id: %s\n"
-msgstr " Id d'imatge: %s\n"
+msgid " Image id: %.*s\n"
+msgstr " Id d'imatge: %.*s\n"
-#: readelf.c:17994
+#: readelf.c:22244
#, c-format
-msgid " Linker id: %s\n"
-msgstr " Id d'enllaçador: %s\n"
+msgid " Linker id: %.*s\n"
+msgstr " Id d'enllaçador: %.*s\n"
-#: readelf.c:18166 readelf.c:18174
+#: readelf.c:22254 readelf.c:22947
#, c-format
-msgid " Applies to region from %#lx to %#lx\n"
-msgstr ""
+msgid " <corrupt - data size is too small>\n"
+msgstr "<malmès - la mida de les dades és massa petita>\n"
+
+#: readelf.c:22255
+msgid "corrupt IA64 note: data size is too small\n"
+msgstr "nota IA64 malmesa: la mida de les dades és massa petita\n"
-#: readelf.c:18169 readelf.c:18176
+#: readelf.c:22422 readelf.c:22431
#, c-format
-msgid " Applies to region from %#lx\n"
-msgstr ""
+msgid " Applies to region from %#<PRIx64> to %#<PRIx64>\n"
+msgstr " Aplica a la regió des de %#<PRIx64> a %#<PRIx64>\n"
-#: readelf.c:18205
-#, fuzzy, c-format
-#| msgid " Invalid size\n"
+#: readelf.c:22425 readelf.c:22434
+#, c-format
+msgid " Applies to region from %#<PRIx64>\n"
+msgstr " S'aplica a la regió des de %#<PRIx64>\n"
+
+#: readelf.c:22455
+#, c-format
msgid " <invalid description size: %lx>\n"
-msgstr " Mida no vàlida\n"
+msgstr " <mida de descripció no vàlida: %lx>\n"
-#: readelf.c:18206
-#, fuzzy, c-format
-#| msgid " Invalid size\n"
+#: readelf.c:22456
+#, c-format
msgid " <invalid descsz>"
-msgstr " Mida no vàlida\n"
+msgstr " <descsz no vàlid>"
-#: readelf.c:18232
+#: readelf.c:22482
#, c-format
-msgid "Gap in build notes detected from %#lx to %#lx\n"
-msgstr ""
+msgid "Gap in build notes detected from %#<PRIx64> to %#<PRIx64>\n"
+msgstr "S'ha detectat un buit en les notes de construcció de %#<PRIx64> a %#<PRIx64>\n"
-#: readelf.c:18235 readelf.c:18246
+#: readelf.c:22486 readelf.c:22497
#, c-format
-msgid " Applies to region from %#lx"
-msgstr ""
+msgid " Applies to region from %#<PRIx64>"
+msgstr " S'aplica a la regió des de %#<PRIx64>"
-#: readelf.c:18240 readelf.c:18251
+#: readelf.c:22491 readelf.c:22502
#, c-format
-msgid " to %#lx"
-msgstr ""
+msgid " to %#<PRIx64>"
+msgstr " a %#<PRIx64>"
-#: readelf.c:18257
+#: readelf.c:22508
#, c-format
msgid " (%s)"
-msgstr ""
+msgstr " (%s)"
-#: readelf.c:18278 readelf.c:18293
+#: readelf.c:22529 readelf.c:22544
#, c-format
msgid "corrupt name field in GNU build attribute note: size = %ld\n"
-msgstr ""
+msgstr "camp de nom malmès a la nota d'atribut de construcció de GNU: mida = %ld\n"
-#: readelf.c:18279 readelf.c:18294
-#, fuzzy
-#| msgid "<corrupt>"
+#: readelf.c:22530 readelf.c:22545
msgid " <corrupt name>"
-msgstr "<corrupte>"
+msgstr " <nom malmès>"
-#: readelf.c:18313
+#: readelf.c:22564
#, c-format
msgid "unrecognised attribute type in name field: %d\n"
-msgstr ""
+msgstr "tipus d'atribut no reconegut al camp de nom: %d\n"
-#: readelf.c:18314
-#, fuzzy
-#| msgid "unknown BB type"
+#: readelf.c:22565
msgid "<unknown name type>"
-msgstr "tipus BB desconegut"
+msgstr "<tipus de nom desconegut>"
-#: readelf.c:18324
-#, fuzzy
-#| msgid "version def"
+#: readelf.c:22575
msgid "<version>"
-msgstr "definició de versió"
+msgstr "<versió>"
-#: readelf.c:18329
-#, fuzzy
-#| msgid "stack overflow"
+#: readelf.c:22580
msgid "<stack prot>"
-msgstr "sobreeiximent de la pila"
+msgstr "<pila prot>"
-#: readelf.c:18334
+#: readelf.c:22585
msgid "<relro>"
-msgstr ""
+msgstr "<relro>"
-#: readelf.c:18339
-#, fuzzy
-#| msgid "Data size"
+#: readelf.c:22590
msgid "<stack size>"
-msgstr "Mida de les dades"
+msgstr "<mida de la pila>"
-#: readelf.c:18344
+#: readelf.c:22595
msgid "<tool>"
-msgstr ""
+msgstr "<eina>"
-#: readelf.c:18349
+#: readelf.c:22600
msgid "<ABI>"
-msgstr ""
+msgstr "<ABI>"
-#: readelf.c:18354
+#: readelf.c:22605
msgid "<PIC>"
-msgstr ""
+msgstr "<PIC>"
-#: readelf.c:18359
+#: readelf.c:22610
msgid "<short enum>"
-msgstr ""
+msgstr "<enum curt>"
-#: readelf.c:18378
-#, fuzzy, c-format
-#| msgid "unrecognized section flag `%s'"
+#: readelf.c:22629
+#, c-format
msgid "unrecognised byte in name field: %d\n"
-msgstr "senyalador `%s' de secció no reconegut"
+msgstr "byte no reconegut al camp de nom : %d\n"
-#: readelf.c:18379
-#, fuzzy, c-format
-#| msgid "<unknown: %x>"
+#: readelf.c:22630
+#, c-format
msgid "<unknown:_%d>"
-msgstr "<desconegut: %x>"
+msgstr "<desconegut:_%d>"
-#: readelf.c:18391
+#: readelf.c:22642
#, c-format
msgid "attribute does not have an expected type (%c)\n"
-msgstr ""
+msgstr "l'atribut no té un tipus esperat (%c)\n"
-#: readelf.c:18395
+#: readelf.c:22646
#, c-format
-msgid "corrupt name field: namesz: %lu but parsing gets to %ld\n"
-msgstr ""
+msgid "corrupt name field: namesz: %lu but parsing gets to %td\n"
+msgstr "camp de nom malmès: namesz: %lu però l'anàlisi arriba a %td\n"
-#: readelf.c:18422
+#: readelf.c:22673
#, c-format
msgid "corrupt numeric name field: too many bytes in the value: %x\n"
-msgstr ""
+msgstr "camp numèric malmès de nom: hi ha massa bytes al valor: %x\n"
-#: readelf.c:18590
-#, fuzzy, c-format
-#| msgid "section data"
+#: readelf.c:22762
+#, c-format
msgid " description data: "
-msgstr "dades de secció"
+msgstr " dades de descripció: "
+
+#: readelf.c:22910
+msgid "failed to unpack msgpack contents in NT_AMDGPU_METADATA note"
+msgstr "no s'ha pogut desempaquetar el contingut de msgpack a la nota NT_AMDGPU_METADATA"
+
+#: readelf.c:22933
+#, c-format
+msgid " Stack Size: 0x%<PRIx32>\n"
+msgstr " Mida de la pila: 0x%<PRIx32>\n"
-#: readelf.c:18629
+#: readelf.c:22935
+#, c-format
+msgid " Stack allocated: %<PRIx32>\n"
+msgstr " Pila assignada: %<PRIx32>\n"
+
+#: readelf.c:22937
+#, c-format
+msgid " Executable: %s\n"
+msgstr " Executable: %s\n"
+
+#: readelf.c:22948
+msgid "corrupt QNX note: data size is too small\n"
+msgstr "nota QNX malmesa: la mida de les dades és massa petita\n"
+
+#: readelf.c:23093
msgid "notes"
msgstr "notes"
-#: readelf.c:18637
+#: readelf.c:23105
#, c-format
-msgid ""
-"\n"
-"Displaying notes found in: %s\n"
-msgstr ""
+msgid "Displaying notes found in: %s\n"
+msgstr "S'estan mostrant les notes trobades a: %s\n"
-#: readelf.c:18639
+#: readelf.c:23107
#, c-format
-msgid ""
-"\n"
-"Displaying notes found at file offset 0x%08lx with length 0x%08lx:\n"
-msgstr ""
-"\n"
-"S'estan mostrant notes trobades a la posició 0x%08lx amb longitud 0x%08lx:\n"
+msgid "Displaying notes found at file offset 0x%08<PRIx64> with length 0x%08<PRIx64>:\n"
+msgstr "S'estan mostrant notes trobades a la posició 0x%08<PRIx64> amb longitud 0x%08<PRIx64>:\n"
-#: readelf.c:18651
+#: readelf.c:23120
#, c-format
-msgid "Corrupt note: alignment %ld, expecting 4 or 8\n"
-msgstr ""
+msgid "Corrupt note: alignment %<PRId64>, expecting 4 or 8\n"
+msgstr "Nota malmesa: alineació %<PRId64>, esperant 4 o 8\n"
-#: readelf.c:18656
+#: readelf.c:23126
#, c-format
-msgid " %-20s %10s\tDescription\n"
+msgid " %-20s %-10s\tDescription\n"
msgstr " %-20s %10s\tDescripció\n"
-#: readelf.c:18656
+#: readelf.c:23126
msgid "Owner"
msgstr "Propietari"
-#: readelf.c:18656
+#: readelf.c:23126
msgid "Data size"
msgstr "Mida de les dades"
-#: readelf.c:18674 readelf.c:18703
-#, fuzzy, c-format
-#| msgid "Corrupt note: only %d bytes remain, not enough for a full note\n"
-msgid "Corrupt note: only %ld byte remains, not enough for a full note\n"
-msgid_plural "Corrupt note: only %ld bytes remain, not enough for a full note\n"
-msgstr[0] "Nota corrupta: sols resten %d bytes, no són prou per a una nota completa\n"
-msgstr[1] "Nota corrupta: sols resten %d bytes, no són prou per a una nota completa\n"
+#: readelf.c:23144 readelf.c:23173
+#, c-format
+msgid "Corrupt note: only %zd byte remains, not enough for a full note\n"
+msgid_plural "Corrupt note: only %zd bytes remain, not enough for a full note\n"
+msgstr[0] "Nota malmesa: sols resten %zd byte, no és prou per a una nota completa\n"
+msgstr[1] "Nota malmesa: sols resten %zd bytes, no són prou per a una nota completa\n"
-#: readelf.c:18731
+#: readelf.c:23201
#, c-format
-msgid "note with invalid namesz and/or descsz found at offset 0x%lx\n"
-msgstr "nota amb namesz no vàlida i/o descsz no trobat al desplaçament 0x%lx\n"
+msgid "note with invalid namesz and/or descsz found at offset %#tx\n"
+msgstr "nota amb namesz no vàlida i/o descsz no trobat al desplaçament %#tx\n"
-#: readelf.c:18733
-#, fuzzy, c-format
-#| msgid " type: 0x%lx, namesize: 0x%08lx, descsize: 0x%08lx\n"
-msgid " type: 0x%lx, namesize: 0x%08lx, descsize: 0x%08lx, alignment: %u\n"
-msgstr " tipus: 0x%lx, namesize: 0x%08lx, descsize: 0x%08lx\n"
+#: readelf.c:23203
+#, c-format
+msgid " type: %#lx, namesize: %#lx, descsize: %#lx, alignment: %u\n"
+msgstr " tipus: %#lx, namesize: %#lx, descsize: %#lx, alineació: %u\n"
-#: readelf.c:18751
-#, fuzzy
-#| msgid "Out of memory allocating dump request table.\n"
+#: readelf.c:23221
msgid "Out of memory allocating space for inote name\n"
-msgstr "S'ha exhaurit la memòria quan s'estava assignant la taula de demanda de bolcat\n"
+msgstr "S'ha exhaurit la memòria quan s'estava assignant espai per al nom d'inote\n"
-#: readelf.c:18814
-#, fuzzy
-#| msgid "notes"
+#: readelf.c:23279
msgid "v850 notes"
-msgstr "notes"
+msgstr "notes v850"
-#: readelf.c:18821
-#, fuzzy, c-format
-#| msgid ""
-#| "\n"
-#| "Displaying notes found at file offset 0x%08lx with length 0x%08lx:\n"
+#: readelf.c:23286
+#, c-format
msgid ""
"\n"
-"Displaying contents of Renesas V850 notes section at offset 0x%lx with length 0x%lx:\n"
+"Displaying contents of Renesas V850 notes section at offset %#<PRIx64> with length %#<PRIx64>:\n"
msgstr ""
"\n"
-"S'estan mostrant notes trobades a la posició 0x%08lx amb longitud 0x%08lx:\n"
+"S'estan mostrant els contintus de la secció de notes Renesas V860 a la posició %#<PRIx64> amb longitud %#<PRIx64>:\n"
-#: readelf.c:18838
+#: readelf.c:23304
#, c-format
msgid "Corrupt note: name size is too big: %lx\n"
-msgstr ""
+msgstr "Nota malmesa: la mida del nom és massa gran: %lx\n"
-#: readelf.c:18848
-#, fuzzy, c-format
-#| msgid "corrupt note found at offset %lx into core notes\n"
-msgid "corrupt descsz found in note at offset 0x%lx\n"
-msgstr "s'ha trobat una nota corrupta a la posició %lx dins de les notes del nucli\n"
+#: readelf.c:23314
+#, c-format
+msgid "corrupt descsz found in note at offset %#tx\n"
+msgstr "s'ha trobat descsz malmès a la nota a la posició %#tx\n"
-#: readelf.c:18850 readelf.c:18863
-#, fuzzy, c-format
-#| msgid " type: 0x%lx, namesize: 0x%08lx, descsize: 0x%08lx\n"
-msgid " type: 0x%lx, namesize: 0x%lx, descsize: 0x%lx\n"
-msgstr " tipus: 0x%lx, namesize: 0x%08lx, descsize: 0x%08lx\n"
+#: readelf.c:23316 readelf.c:23329
+#, c-format
+msgid " type: %#lx, namesize: %#lx, descsize: %#lx\n"
+msgstr " tipus: %#lx, namesize: %#lx, descsize: %#lx\n"
-#: readelf.c:18861
-#, fuzzy, c-format
-#| msgid "corrupt note found at offset %lx into core notes\n"
-msgid "corrupt namesz found in note at offset 0x%lx\n"
-msgstr "s'ha trobat una nota corrupta a la posició %lx dins de les notes del nucli\n"
+#: readelf.c:23327
+#, c-format
+msgid "corrupt namesz found in note at offset %#zx\n"
+msgstr "s'ha trobat namesz malmès a la nota a la posició %#zx\n"
-#: readelf.c:18939
+#: readelf.c:23403
#, c-format
-msgid "No note segments present in the core file.\n"
-msgstr "No s'han trobat segments de notes presents al fitxer central.\n"
+msgid "No notes found in linked file '%s'.\n"
+msgstr "No s'han trobat notes al fitxer enllaçat «%s».\n"
-#: readelf.c:18947
-#, fuzzy, c-format
-#| msgid " (Unknown inline attribute value: %s)"
-msgid " Unknown GNU attribute: %s\n"
-msgstr " (Valor de l'atribut en línia desconegut: %s)"
+#: readelf.c:23406
+#, c-format
+msgid "No notes found file.\n"
+msgstr "Fitxer de notes no trobades.\n"
-#: readelf.c:19087
-msgid ""
-"This instance of readelf has been built without support for a\n"
-"64 bit data type and so it cannot read 64 bit ELF files.\n"
-msgstr ""
-"Aquesta instància de readelf s'ha compilat sense suport per a\n"
-"tipus de dades de 64 bit i en conseqüència no pot llegir fitxers ELF de 64 bits.\n"
+#: readelf.c:23415
+#, c-format
+msgid " Unknown GNU attribute: %s\n"
+msgstr " Atribut GNU desconegut: %s\n"
-#: readelf.c:19210
+#: readelf.c:23744
#, c-format
msgid "%s: Failed to read file header\n"
msgstr "%s: No s'ha pogut llegir la capçalera del fitxer\n"
-#: readelf.c:19224
+#: readelf.c:23759
#, c-format
msgid ""
"\n"
@@ -11368,85 +13316,75 @@ msgstr ""
"\n"
"Fitxer: %s\n"
-#: readelf.c:19410
+#: readelf.c:23920
#, c-format
msgid "%s: unable to dump the index as none was found\n"
msgstr "%s: no s'ha pogut el bolcat de l'índex perquè no s'ha trobat cap\n"
-#: readelf.c:19416
-#, fuzzy, c-format
-#| msgid "Index of archive %s: (%ld entries, 0x%lx bytes in the symbol table)\n"
-msgid "Index of archive %s: (%lu entries, 0x%lx bytes in the symbol table)\n"
-msgstr "Ãndex de l'arxiu %s: (%ld entrades, 0x%lx bytes a la taula de símbols)\n"
+#: readelf.c:23927
+#, c-format
+msgid "Index of archive %s: (%<PRIu64> entries, %#<PRIx64> bytes in the symbol table)\n"
+msgstr "Ãndex de fitxer %s: (%<PRIu64> entrades, %#<PRIx64> bytes a la taula de símbols)\n"
-#: readelf.c:19435
+#: readelf.c:23951
#, c-format
msgid "Contents of binary %s at offset "
msgstr "Continguts del binari %s a la posició "
-#: readelf.c:19445
+#: readelf.c:23963
#, c-format
msgid "%s: end of the symbol table reached before the end of the index\n"
msgstr "%s: s'ha assolit el final de la taula de símbols abans que el final de l'índex\n"
-#: readelf.c:19462
-#, fuzzy, c-format
-#| msgid "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"
-msgid "%s: %ld byte remains in the symbol table, but without corresponding entries in the index table\n"
-msgid_plural "%s: %ld bytes remain in the symbol table, but without corresponding entries in the index table\n"
-msgstr[0] "%s: resten %ld bytes a la taula de símbols d'índex, però sense les corresponents entrades a la taula d'índexs\n"
-msgstr[1] "%s: resten %ld bytes a la taula de símbols d'índex, però sense les corresponents entrades a la taula d'índexs\n"
+#: readelf.c:23982
+#, c-format
+msgid "%s: %<PRId64> byte remains in the symbol table, but without corresponding entries in the index table\n"
+msgid_plural "%s: %<PRId64> bytes remain in the symbol table, but without corresponding entries in the index table\n"
+msgstr[0] "%s: %<PRId64> byte resta a la taula de símbols, però sense entrades corresponents a la taula d'índex\n"
+msgstr[1] "%s: %<PRId64> bytes resten a la taula de símbols, però sense entrades corresponents a la taula d'índex\n"
-#: readelf.c:19475
+#: readelf.c:23995
#, c-format
msgid "%s: failed to seek back to start of object files in the archive\n"
msgstr "%s: no s'ha pogut buscar fins a l'inici dels fitxers objecte a l'arxiu\n"
-#: readelf.c:19562 readelf.c:19674
+#: readelf.c:24087 readelf.c:24206
#, c-format
msgid "Input file '%s' is not readable.\n"
-msgstr "El fitxer d'entrada '%s' no és llegible.\n"
+msgstr "El fitxer d'entrada «%s» no és llegible.\n"
-#: readelf.c:19586
+#: readelf.c:24115
#, c-format
msgid "%s: contains corrupt thin archive: %s\n"
-msgstr "%s: conté arxiu prim corrupte: %s\n"
+msgstr "%s: conté arxiu prim malmès: %s\n"
-#: readelf.c:19599
+#: readelf.c:24133
#, c-format
msgid "%s: failed to seek to archive member.\n"
msgstr "%s: no s'ha pogut buscar fins al membre de l'arxiu.\n"
-#: readelf.c:19666
-#, fuzzy
-#| msgid "Out of memory allocating dump request table.\n"
+#: readelf.c:24198
msgid "Out of memory allocating file data structure\n"
-msgstr "S'ha exhaurit la memòria quan s'estava assignant la taula de demanda de bolcat\n"
+msgstr "S'ha exhaurit la memòria quan s'assignava l'estructura de dades de fitxer\n"
-#: readelf.c:19702
+#: readelf.c:24235
#, c-format
msgid "File %s is not an archive so its index cannot be displayed.\n"
msgstr "El fitxer %s no és un arxiu i en conseqüència el seu índex no es mostrar.\n"
-#: readelf.c:19761
+#: readelf.c:24301
msgid "Nothing to do.\n"
msgstr "No hi ha res per fer.\n"
-#: rename.c:122
+#: rename.c:200
#, c-format
msgid "%s: cannot set time: %s"
msgstr "%s: no es pot establir el temps: %s"
-#. We have to clean up here.
-#: rename.c:157 rename.c:195
-#, c-format
-msgid "unable to rename '%s'; reason: %s"
-msgstr "no es pot canviar el nom a '%s?; raó: %s"
-
-#: rename.c:203
+#: rename.c:219
#, c-format
msgid "unable to copy file '%s'; reason: %s"
-msgstr "no es pot copiar el fitxer '%s'; raó: %s"
+msgstr "no es pot copiar el fitxer «%s»; raó: %s"
#: resbin.c:119
#, c-format
@@ -11555,7 +13493,7 @@ msgstr "accelerador"
msgid "group cursor header"
msgstr "capçalera de cursor de grup"
-#: resbin.c:798 resrc.c:1350
+#: resbin.c:798 resrc.c:1346
#, c-format
msgid "unexpected group cursor type %d"
msgstr "tipus %d inesperat de cursor de grup"
@@ -11568,7 +13506,7 @@ msgstr "cursor de grup"
msgid "group icon header"
msgstr "capçalera d'icona de grup"
-#: resbin.c:853 resrc.c:1297
+#: resbin.c:853 resrc.c:1293
#, c-format
msgid "unexpected group icon type %d"
msgstr "tipus %d inesperat d'icona de grup"
@@ -11582,92 +13520,88 @@ msgid "unexpected version string"
msgstr "cadena de caràcters inesperada de versió"
#: resbin.c:964
-#, fuzzy, c-format
-#| msgid "version length %d does not match resource length %lu"
+#, c-format
msgid "version length %lu greater than resource length %lu"
-msgstr "la longitud de versió %d no es correspon amb la longitud del recurs %lu"
+msgstr "longitud de versió %lu més gran que longitud de recursos %lu"
#: resbin.c:968
#, c-format
msgid "unexpected version type %d"
msgstr "tipus %d inesperat de versió"
-#: resbin.c:980
+#: resbin.c:983
#, c-format
msgid "unexpected fixed version information length %ld"
msgstr "longitud %ld inesperada d'informació de versió fixa"
-#: resbin.c:983
+#: resbin.c:986
msgid "fixed version info"
msgstr "informació de versió fixa"
-#: resbin.c:987
+#: resbin.c:990
#, c-format
msgid "unexpected fixed version signature %lu"
msgstr "signatura %lu inesperada de versió fixa"
-#: resbin.c:991
+#: resbin.c:994
#, c-format
msgid "unexpected fixed version info version %lu"
msgstr "versió %lu inesperada d'informació de versió fixa"
-#: resbin.c:1020
+#: resbin.c:1023
msgid "version var info"
msgstr "informació de variables de versió"
-#: resbin.c:1037
+#: resbin.c:1040
#, c-format
msgid "unexpected stringfileinfo value length %ld"
msgstr "longitud %ld inesperada de valor stringfileinfo"
-#: resbin.c:1054
+#: resbin.c:1057
msgid "version stringtable"
msgstr "taula de cadenes de caràcters de versió"
-#: resbin.c:1062
+#: resbin.c:1065
#, c-format
msgid "unexpected version stringtable value length %ld"
msgstr "longitud %ld inesperada de valor de taula de cadenes de caràcters de versió"
-#: resbin.c:1079
+#: resbin.c:1082
msgid "version string"
msgstr "cadena de caràcters de versió"
-#: resbin.c:1094
+#: resbin.c:1097
#, c-format
msgid "unexpected version string length %ld != %ld + %ld"
msgstr "longitud %ld != %ld + %ld inesperada de cadena de caràcters de versió"
-#: resbin.c:1101
+#: resbin.c:1104
#, c-format
msgid "unexpected version string length %ld < %ld"
msgstr "longitud %ld < %ld inesperada de cadena de caràcters de versió"
-#: resbin.c:1127
+#: resbin.c:1130
#, c-format
msgid "unexpected varfileinfo value length %ld"
msgstr "longitud %ld inesperada de valor varfileinfo"
-#: resbin.c:1146
+#: resbin.c:1149
msgid "version varfileinfo"
msgstr "varfileinfo de versió"
-#: resbin.c:1161
+#: resbin.c:1164
#, c-format
msgid "unexpected version value length %ld"
msgstr "longitud %ld inesperada de valor de versió"
-#: resbin.c:1171
-#, fuzzy
-#| msgid "unexpected version string"
+#: resbin.c:1174
msgid "nul bytes found in version string"
-msgstr "cadena de caràcters inesperada de versió"
+msgstr "s'han trobat bytes nul a la cadena de caràcters de versió"
-#: resbin.c:1174
-#, fuzzy, c-format
-#| msgid "unexpected version string"
+#: resbin.c:1177
+#, c-format
msgid "unexpected version string character: %x"
-msgstr "cadena de caràcters inesperada de versió"
+msgstr "caràcter inesperat de cadena de caràcters de versió %x"
#: rescoff.c:123
msgid "filename required for COFF input"
@@ -11681,7 +13615,7 @@ msgstr "%s: no hi ha una secció de recursos"
#: rescoff.c:150
#, c-format
msgid "%s: .rsrc section is bigger than the file!"
-msgstr ""
+msgstr "%s: la secció .rsrc és més gran que el fitxer"
#: rescoff.c:178
#, c-format
@@ -11690,7 +13624,7 @@ msgstr "%s: %s: adreça fora de límits"
#: rescoff.c:199
msgid "Resources nest too deep"
-msgstr ""
+msgstr "El niu de recursos és massa profund"
#: rescoff.c:202
msgid "directory"
@@ -11705,10 +13639,8 @@ msgid "directory entry name"
msgstr "nom d'entrada de directori"
#: rescoff.c:253
-#, fuzzy
-#| msgid "resource data"
msgid "resource name"
-msgstr "dades de recurs"
+msgstr "nom de recurs"
#: rescoff.c:264
msgid "named subdirectory"
@@ -11750,222 +13682,214 @@ msgstr "mida de dades de recurs"
msgid "filename required for COFF output"
msgstr "es requereix un nom de fitxer per a la sortida COFF"
-#: rescoff.c:732
+#: rescoff.c:735
msgid "can't get BFD_RELOC_RVA relocation type"
msgstr "no s'ha pogut obtenir el tipus de relocalització BFD_RELOC_RVA"
-#: resrc.c:256 resrc.c:328
+#: resrc.c:257 resrc.c:329
#, c-format
msgid "can't open temporary file `%s': %s"
msgstr "no es pot obrir el fitxer temporari `%s': %s"
-#: resrc.c:262
+#: resrc.c:263
#, c-format
msgid "can't redirect stdout: `%s': %s"
msgstr "no es pot redirigir la sortida estàndard: `%s': %s"
-#: resrc.c:324
+#: resrc.c:325
#, c-format
msgid "can't execute `%s': %s"
msgstr "no es pot executar `%s': %s"
-#: resrc.c:333
+#: resrc.c:334
#, c-format
msgid "Using temporary file `%s' to read preprocessor output\n"
msgstr "S'està usant el fitxer temporari `%s' per llegir la sortida de preprocessador\n"
-#: resrc.c:340
+#: resrc.c:341
#, c-format
msgid "can't popen `%s': %s"
msgstr "no es pot fer popen a `%s': %s"
-#: resrc.c:342
+#: resrc.c:343
#, c-format
msgid "Using popen to read preprocessor output\n"
msgstr "S'està usant popen per llegir la sortida del preprocessador\n"
-#: resrc.c:408
+#: resrc.c:405
#, c-format
msgid "Tried `%s'\n"
msgstr "S'ha provat `%s'\n"
-#: resrc.c:419
+#: resrc.c:422
#, c-format
msgid "Using `%s'\n"
msgstr "S'està usant `%s'\n"
-#: resrc.c:603
+#: resrc.c:599
msgid "preprocessing failed."
msgstr "ha fallat el preprocessament"
-#: resrc.c:634
+#: resrc.c:630
#, c-format
msgid "%s: unexpected EOF"
msgstr "%s: final inesperat de fitxer"
-#: resrc.c:683
+#: resrc.c:679
#, c-format
msgid "%s: read of %lu returned %lu"
msgstr "%s: la lectura de %lu ha retornat %lu"
-#: resrc.c:722 resrc.c:1497
+#: resrc.c:718 resrc.c:1493
#, c-format
msgid "stat failed on bitmap file `%s': %s"
msgstr "ha fallat el stat al fitxer bitmap `%s': %s"
-#: resrc.c:773
+#: resrc.c:769
#, c-format
msgid "cursor file `%s' does not contain cursor data"
msgstr "el fitxer de cursos `%s' no conté dades de cursor"
-#: resrc.c:805 resrc.c:1205
+#: resrc.c:801 resrc.c:1201
#, c-format
msgid "%s: fseek to %lu failed: %s"
msgstr "%s: ha fallat el fseek a %lu: %s"
-#: resrc.c:931
+#: resrc.c:927
msgid "help ID requires DIALOGEX"
msgstr "l'ID d'ajuda requereix DIALOGEX"
-#: resrc.c:933
+#: resrc.c:929
msgid "control data requires DIALOGEX"
msgstr "les dades de control requereixen DIALOGEX"
-#: resrc.c:961
+#: resrc.c:957
#, c-format
msgid "stat failed on font file `%s': %s"
msgstr "ha fallat l'stat al fitxer de tipus de lletra `%s': %s"
-#: resrc.c:1174
+#: resrc.c:1170
#, c-format
msgid "icon file `%s' does not contain icon data"
msgstr "el fitxer d'icones `%s' no conté dades d'icones"
-#: resrc.c:1723 resrc.c:1758
+#: resrc.c:1719 resrc.c:1754
#, c-format
msgid "stat failed on file `%s': %s"
msgstr "ha fallat l'stat al fitxer `%s': %s"
-#: resrc.c:1957
+#: resrc.c:1953
#, c-format
msgid "can't open `%s' for output: %s"
msgstr "no es pot obrir `%s' per a sortida: %s"
-#: size.c:77
+#: size.c:89
#, c-format
msgid " Displays the sizes of sections inside binary files\n"
msgstr " Mostra les mides de les seccions dins de fitxers binaris\n"
-#: size.c:78
+#: size.c:90
#, c-format
msgid " If no input file(s) are specified, a.out is assumed\n"
msgstr " Si no s'especifica fitxer(s) d'entrada, se suposa a.out\n"
-#: size.c:79
+#: size.c:91
#, c-format
msgid ""
" The options are:\n"
-" -A|-B --format={sysv|berkeley} Select output style (default is %s)\n"
+" -A|-B|-G --format={sysv|berkeley|gnu} Select output style (default is %s)\n"
" -o|-d|-x --radix={8|10|16} Display numbers in octal, decimal or hex\n"
" -t --totals Display the total sizes (Berkeley only)\n"
+" -f Ignored.\n"
" --common Display total size for *COM* syms\n"
" --target=<bfdname> Set the binary file format\n"
" @<file> Read options from <file>\n"
-" -h --help Display this information\n"
-" -v --version Display the program's version\n"
+" -h|-H|-? --help Display this information\n"
+" -v|-V --version Display the program's version\n"
"\n"
msgstr ""
" Les opcions són:\n"
-" -A|-B --format={sysv|berkeley} Seleccioneu l'estil de la sortida (per \n"
-" defecte és %s)\n"
+" -A|-B|-G --format={sysv|berkeley|gnu} Selecciona l'estil d'output (per defecte és %s)\n"
" -o|-d|-x --radix={8|10|16} Mostra els nombres en octal, decimal o hex\n"
" -t --totals Mostra les mides totals (sols Berkeley)\n"
+" -f Ignorat.\n"
" --common Mostra la mida total per a *COM* syms\n"
-" --target=<nom-bfd> Estableix el format de fitxer binari\n"
-" @<fitxer> Llegeix les opcions de <fitxer>\n"
-" -h --help Mostra aquesta informació\n"
-" -v --version Mostra la versió del programa\n"
+" --target=<bfdname> Estableix el format de fitxer binari\n"
+" @<fitxer> Llegeix les opcions des de <fitxer>\n"
+" -h|-H|-? --help Mostra aquesta informació\n"
+" -v|-V --version Mostra la versió del programa\n"
"\n"
-#: size.c:160
+#: size.c:175
#, c-format
msgid "invalid argument to --format: %s"
msgstr "argument no vàlid per a --format: %s"
-#: size.c:187
+#: size.c:202
#, c-format
msgid "Invalid radix: %s\n"
msgstr "Radix invàlid: %s\n"
#: srconv.c:130
msgid "Checksum failure"
-msgstr ""
+msgstr "Ha fallat la suma de verificació"
#. FIXME: Return error status.
#: srconv.c:142
msgid "Failed to write checksum"
-msgstr ""
+msgstr "No s'ha pogut escriure la suma de verificació"
#: srconv.c:182
-#, fuzzy, c-format
-#| msgid "IEEE unsupported integer type size %u\n"
+#, c-format
msgid "Unsupported integer write size: %d"
-msgstr "Mida de tipus d'enter IEEE no suportat %u\n"
+msgstr "Mida no suportada d'escriptura de enter: %d"
#. FIXME: Return error status.
#: srconv.c:268
-#, fuzzy
-#| msgid "Failed to read in number of buckets\n"
msgid "Failed to write TR block"
-msgstr "No s'ha pogut llegir el nombre de cubells\n"
+msgstr "No s'ha pogut escriure el bloc TR"
-#: srconv.c:359
+#: srconv.c:360
#, c-format
msgid "Unrecognized H8300 sub-architecture: %ld"
-msgstr ""
+msgstr "Subarquitectura H8300 no reconeguda: %ld"
-#: srconv.c:377
-#, fuzzy, c-format
-#| msgid "Supported architectures:"
+#: srconv.c:378
+#, c-format
msgid "Unsupported architecture: %d"
-msgstr "Arquitectures suportades:"
+msgstr "Arquitectura no suportada: %d:"
-#: srconv.c:831
-#, fuzzy, c-format
-#| msgid "Unrecognized XCOFF type %d\n"
+#: srconv.c:832
+#, c-format
msgid "Unrecognised type: %d"
-msgstr "Tipus XCOFF no reconegut %d\n"
+msgstr "Tipus XCOFF no reconegut %d"
-#: srconv.c:957
-#, fuzzy, c-format
-#| msgid "Unrecognized XCOFF type %d\n"
+#: srconv.c:958
+#, c-format
msgid "Unrecognised coff symbol type: %d"
-msgstr "Tipus XCOFF no reconegut %d\n"
+msgstr "Tipus de simbol coff no reconegut: %d"
-#: srconv.c:1019 srconv.c:1119
+#: srconv.c:1020 srconv.c:1120
#, c-format
msgid "Unrecognised coff symbol visibility: %d"
-msgstr ""
+msgstr "No es reconeix la visibilitat del símbol del coff: %d"
-#: srconv.c:1045 srconv.c:1090
-#, fuzzy, c-format
-#| msgid "Unrecognized debug section: %s\n"
+#: srconv.c:1046 srconv.c:1091
+#, c-format
msgid "Unrecognised coff symbol location: %d"
-msgstr "Secció de depuració no reconeguda: %s\n"
+msgstr "Localització del símbol coff no reconeguda: %d"
#. FIXME: Return error status.
-#: srconv.c:1424
-#, fuzzy
-#| msgid "failed to create output section"
+#: srconv.c:1425
msgid "Failed to write CS struct"
-msgstr "ha fallat la creació d'una secció de la sortida"
+msgstr "No s'ha pogut escriure el CS struct"
-#: srconv.c:1696
+#: srconv.c:1695
#, c-format
msgid "Convert a COFF object file into a SYSROFF object file\n"
msgstr "Converteix un fitxer objecte COFF a un fitxer objecte SYSROFF\n"
-#: srconv.c:1697
+#: srconv.c:1696
#, c-format
msgid ""
" The options are:\n"
@@ -11982,18 +13906,18 @@ msgstr ""
" -d --debug Mostra informació sobre el què s'està fent\n"
" @<fitxer> Llegeix les opcions de <fitxer>\n"
" -h --help Mostra aquesta informació\n"
-" -v --version Imprimeix el número de versió del programa\n"
+" -v --version Imprimeix el nombre de versió del programa\n"
-#: srconv.c:1788
+#: srconv.c:1785
msgid "input and output files must be different"
msgstr "els fitxers d'entrada i sortida han de ser diferents"
-#: srconv.c:1844
+#: srconv.c:1838
#, c-format
msgid "unable to open output file %s"
msgstr "no s'ha pogut obrir el fitxer de sortida %s"
-#: stabs.c:344 stabs.c:1772
+#: stabs.c:344 stabs.c:1796
msgid "numeric overflow"
msgstr "desbordament numèric"
@@ -12007,257 +13931,251 @@ msgstr "Stab dolent: %s\n"
msgid "Warning: %s: %s\n"
msgstr "Advertiment: %s: %s\n"
-#: stabs.c:474
+#: stabs.c:486
#, c-format
msgid "N_LBRAC not within function\n"
msgstr "N_LBRAC no està a la funció\n"
-#: stabs.c:513
+#: stabs.c:525
#, c-format
msgid "Too many N_RBRACs\n"
msgstr "Massa N_RBRACs\n"
-#: stabs.c:746
+#: stabs.c:764
msgid "unknown C++ encoded name"
msgstr "nom codificat C++ desconegut"
#. Complain and keep going, so compilers can invent new
#. cross-reference types.
-#: stabs.c:1307
+#: stabs.c:1325
msgid "unrecognized cross reference type"
msgstr "tipus no reconegut de referència creuada"
#. Does this actually ever happen? Is that why we are worrying
#. about dealing with it rather than just calling error_type?
-#: stabs.c:1864
+#: stabs.c:1888
msgid "missing index type"
msgstr "tipus absent d'índex"
-#: stabs.c:2216
+#: stabs.c:2239
msgid "unknown virtual character for baseclass"
msgstr "caràcter virtual desconegut per a baseclass"
-#: stabs.c:2237
+#: stabs.c:2260
msgid "unknown visibility character for baseclass"
msgstr "caràcter de visibilitat desconegut per a baseclass"
-#: stabs.c:2442
+#: stabs.c:2471
msgid "unnamed $vb type"
msgstr "tipus $vb sense nom"
-#: stabs.c:2448
+#: stabs.c:2480
msgid "unrecognized C++ abbreviation"
msgstr "abreviació C++ no reconeguda"
-#: stabs.c:2533
+#: stabs.c:2565
msgid "unknown visibility character for field"
msgstr "caràcter desconegut de visibilitat per al camp"
-#: stabs.c:2802
+#: stabs.c:2826
msgid "const/volatile indicator missing"
msgstr "indicador const/volàtil absent"
-#: stabs.c:3346
+#: stabs.c:3369
msgid "Undefined N_EXCL"
msgstr "N_EXCL no definit"
-#: stabs.c:3426
+#: stabs.c:3445
#, c-format
msgid "Type file number %d out of range\n"
-msgstr "Número %d de fitxer de tipus fora de rang\n"
-
-#: stabs.c:3431
-#, c-format
-msgid "Type index number %d out of range\n"
-msgstr "Número %d d'índex de tipus fora de rang\n"
+msgstr "Nombre %d de fitxer de tipus fora de rang\n"
-#: stabs.c:3510
+#: stabs.c:3521
#, c-format
msgid "Unrecognized XCOFF type %d\n"
msgstr "Tipus XCOFF no reconegut %d\n"
-#: stabs.c:3803
+#: stabs.c:3807
#, c-format
msgid "bad mangled name `%s'\n"
msgstr "nom codificat dolent `%s'\n"
-#: stabs.c:3898
+#: stabs.c:3900
#, c-format
msgid "no argument types in mangled string\n"
msgstr "no hi ha tipus d'arguments a la cadena codificada de caràcters\n"
-#: stabs.c:5248
+#: stabs.c:5240
#, c-format
msgid "Demangled name is not a function\n"
msgstr "Nom decodificat no és una funció\n"
-#: stabs.c:5290
+#: stabs.c:5282
#, c-format
msgid "Unexpected type in v3 arglist demangling\n"
msgstr "Tipus inesperat a la decodificació v3 arglist\n"
-#: stabs.c:5362
+#: stabs.c:5357
#, c-format
msgid "Unrecognized demangle component %d\n"
msgstr "Component %d de decodificació no reconegut\n"
-#: stabs.c:5414
+#: stabs.c:5409
#, c-format
msgid "Failed to print demangled template\n"
msgstr "No s'ha pogut imprimir la plantilla de decodificació\n"
-#: stabs.c:5494
+#: stabs.c:5489
#, c-format
msgid "Couldn't get demangled builtin type\n"
msgstr "NO s'ha pogut obtenir el tipus incorporat de decodificació\n"
-#: stabs.c:5543
+#: stabs.c:5538
#, c-format
msgid "Unexpected demangled varargs\n"
msgstr "Varargs inesperades de decodificació\n"
-#: stabs.c:5550
+#: stabs.c:5545
#, c-format
msgid "Unrecognized demangled builtin type\n"
msgstr "Tipus incorporat no reconegut de decodificació\n"
-#: strings.c:200 strings.c:267
+#: strings.c:181
#, c-format
msgid "invalid integer argument %s"
msgstr "argument %s d'enter no vàlid"
-#: strings.c:270
+#: strings.c:186
#, c-format
-msgid "invalid minimum string length %d"
-msgstr "longitud %d no vàlida de cadena de caràcters mínima"
+msgid "minimum string length is too big: %s"
+msgstr "la longitud mínima de la cadena de caràcters és massa gran: %s"
-#: strings.c:341
-#, fuzzy, c-format
-#| msgid "reading %s section of %s failed: %s"
+#: strings.c:189
+#, c-format
+msgid "minimum string length is too small: %s"
+msgstr "la longitud mínima de la cadena de caràcters és massa petita: %s"
+
+#: strings.c:193
+#, c-format
+msgid "minimum string length %s is too big"
+msgstr "la longitud mínima de la cadena de caràcters %s és massa gran"
+
+#: strings.c:406
+#, c-format
msgid "%s: Reading section %s failed: %s"
-msgstr "ha fallat la lectura de %s de la secció %s: %s"
+msgstr "%s: Ha fallat la lectura de la secció %s: %s"
-#: strings.c:699
+#: strings.c:1331
#, c-format
msgid " Display printable strings in [file(s)] (stdin by default)\n"
msgstr "Mostra les cadenes de caràcters imprimibles a [fitxer(s)] (per defecte stdin)\n"
-#: strings.c:703
+#: strings.c:1335
#, c-format
msgid ""
" -a - --all Scan the entire file, not just the data section [default]\n"
" -d --data Only scan the data sections in the file\n"
msgstr ""
+" -a - --all Escaneja tot el fitxer, no només la secció de dades [per defecte]\n"
+" -d --data Escaneja només les seccions de dades del fitxer\n"
-#: strings.c:707
+#: strings.c:1339
#, c-format
msgid ""
" -a - --all Scan the entire file, not just the data section\n"
" -d --data Only scan the data sections in the file [default]\n"
msgstr ""
+" -a - --all Escaneja tot el fitxer, no només la secció de dades\n"
+" -d --data Escaneja només les seccions de dades del fitxer [per defecte]\n"
-#: strings.c:711
-#, fuzzy, c-format
-#| msgid ""
-#| " The options are:\n"
-#| " -a - --all Scan the entire file, not just the data section\n"
-#| " -f --print-file-name Print the name of the file before each string\n"
-#| " -n --bytes=[number] Locate & print any NUL-terminated sequence of at\n"
-#| " -<number> least [number] characters (default 4).\n"
-#| " -t --radix={o,d,x} Print the location of the string in base 8, 10 or 16\n"
-#| " -o An alias for --radix=o\n"
-#| " -T --target=<BFDNAME> Specify the binary file format\n"
-#| " -e --encoding={s,S,b,l,B,L} Select character size and endianness:\n"
-#| " s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n"
-#| " @<file> Read options from <file>\n"
-#| " -h --help Display this information\n"
-#| " -v -V --version Print the program's version number\n"
+#: strings.c:1343
+#, c-format
msgid ""
" -f --print-file-name Print the name of the file before each string\n"
-" -n --bytes=[number] Locate & print any NUL-terminated sequence of at\n"
-" -<number> least [number] characters (default 4).\n"
+" -n <number> Locate & print any sequence of at least <number>\n"
+" --bytes=<number> displayable characters. (The default is 4).\n"
" -t --radix={o,d,x} Print the location of the string in base 8, 10 or 16\n"
" -w --include-all-whitespace Include all whitespace as valid string characters\n"
" -o An alias for --radix=o\n"
" -T --target=<BFDNAME> Specify the binary file format\n"
" -e --encoding={s,S,b,l,B,L} Select character size and endianness:\n"
" s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n"
+" --unicode={default|locale|invalid|hex|escape|highlight}\n"
+" -U {d|l|i|x|e|h} Specify how to treat UTF-8 encoded unicode characters\n"
" -s --output-separator=<string> String used to separate strings in output.\n"
" @<file> Read options from <file>\n"
" -h --help Display this information\n"
" -v -V --version Print the program's version number\n"
msgstr ""
-" Les opcions són:\n"
-" -a - --all Analitza tot el fitxer, no sols la secció de dades\n"
-" -f --print-file-name Imprimeix el nom del fitxer abans de cada cadena \n"
-" de caràcters\n"
-" -n --bytes=[número] Localitza i imprimeix totes les seqüències acabades\n"
-" -<número> d'almenys [número] caràcters (per defecte 4).\n"
-" -t --radix={o,d,x} Imprimeix la localització de la cadena de caràcters \n"
-" en base 8, 10 o 16\n"
+" -f --print-file-name Imprimeix el nom del fitxer abas de cada cadena\n"
+" -n <nombre> Localitza i imprimeix qualsevol seqüència d'almenys <nombre>\n"
+" --bytes=<nombre> caràcters imprimibles. (Per defecte és 4)\n"
+" -t --radix={o,d,x} Imprimeix la localització de la cadena en base 8, 10 o 16\n"
+" -w --include-all-whitespace Inclou tot l'espai en blanc com a cadenes vàlides de caràcters \n"
" -o Un àlias per a --radix=o\n"
-" -T --target=<NOM-BFD> Especifiqueu el format de fitxer binari\n"
-" -e --encoding={s,S,b,l,B,L} Seleccioneu la mida del caràcter i el tipus endian\n"
+" -T --target=<BFDNAME> Especifica el format de fitxer binari\n"
+" -e --encoding={s,S,b,l,B,L} Selecciona la mida de caràcter i codifiació endian:\n"
" s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n"
-" @<fitxer> Llegeix les opcions de <fitxer>\n"
+" --unicode={default|locale|invalid|hex|escape|highlight}\n"
+" -U {d|l|i|x|e|h} Especifica com tractar als caràcters unicode codificats UTF-8\n"
+" -s --output-separator=<string> Cadena per separar a les cadenes a la sortida.\n"
+" @<fitxer> Llegeix les opcions des de fitxer\n"
" -h --help Mostra aquesta informació\n"
-" -v -V --version Imprimeix el número de versió del programa\n"
+" -v -V --version Imprimeix la versió del programa\n"
#: sysdump.c:51
msgid "*undefined*"
msgstr "*no definit*"
-#: sysdump.c:57
-#, fuzzy
-#| msgid "<corrupt>"
+#. PR 28564
+#: sysdump.c:57 sysdump.c:66
msgid "*corrupt*"
-msgstr "<corrupte>"
+msgstr "*malmès*"
-#: sysdump.c:125
+#: sysdump.c:131
#, c-format
msgid "SUM IS %x\n"
msgstr "LA SUMA ÉS %x\n"
#. PR 17512: file: id:000001,src:000002,op:flip1,pos:45.
#. Prevent infinite loops re-reading beyond the end of the buffer.
-#: sysdump.c:161
+#: sysdump.c:169
msgid "ICE: getINT: Out of buffer space"
-msgstr ""
+msgstr "ICE: getINT: Fora de l'espai de memòria intermèdia"
-#: sysdump.c:185
-#, fuzzy, c-format
-#| msgid "unsupported menu version %d"
+#: sysdump.c:194
+#, c-format
msgid "Unsupported read size: %d"
-msgstr "versió %d no suportada de menú"
+msgstr "Mida no suportada de lectura: %d"
-#: sysdump.c:496
+#: sysdump.c:505
#, c-format
msgid "GOT A %x\n"
msgstr "S'HA OBTINGUT UN %x\n"
-#: sysdump.c:514
+#: sysdump.c:523
#, c-format
msgid "WANTED %x!!\n"
msgstr "ES VOL %x!!\n"
-#: sysdump.c:532
+#: sysdump.c:541
msgid "SYMBOL INFO"
msgstr "INFORMACIÓ DE SÃMBOL"
-#: sysdump.c:550
+#: sysdump.c:559
msgid "DERIVED TYPE"
msgstr "TIPUS DERIVAT"
-#: sysdump.c:607
+#: sysdump.c:616
msgid "MODULE***\n"
msgstr "MÃ’DUL***\n"
-#: sysdump.c:642
+#: sysdump.c:649
#, c-format
msgid "Print a human readable interpretation of a SYSROFF object file\n"
msgstr "Imprimeix una interpretació llegible per humans d'un fitxer SYSROFF\n"
-#: sysdump.c:643
+#: sysdump.c:650
#, c-format
msgid ""
" The options are:\n"
@@ -12266,18 +14184,99 @@ msgid ""
msgstr ""
" Les opcions són:\n"
" -h --help Mostra aquesta informació\n"
-" -v --version Imprimeix el número de versió del programa\n"
+" -v --version Imprimeix el nombre de versió del programa\n"
-#: sysdump.c:711
+#: sysdump.c:716
#, c-format
msgid "cannot open input file %s"
msgstr "no es pot obrir el fitxer d'entrada %s"
+#: unwind-ia64.c:180
+#, c-format
+msgid "Unknown code 0x%02x\n"
+msgstr "Codi desconegut 0x%02x\n"
+
+#. PR 18420.
+#: unwind-ia64.c:366
+#, c-format
+msgid ""
+"\n"
+"ERROR: unwind length too long (0x%lx > 0x%lx)\n"
+"\n"
+msgstr ""
+"\n"
+"ERROR: longitud de desenrotllament massa llarga (0x%lx > 0x%lx)\n"
+"\n"
+
+#: unwind-ia64.c:578
+#, c-format
+msgid "Bad uleb128\n"
+msgstr "Incorrecte uleb128\n"
+
+#: unwind-ia64.c:592
+#, c-format
+msgid "\t<corrupt X1>\n"
+msgstr "\t<X1 malmès>\n"
+
+#: unwind-ia64.c:616
+#, c-format
+msgid "\t<corrupt X2>\n"
+msgstr "\t<X2 malmès>\n"
+
+#: unwind-ia64.c:642
+#, c-format
+msgid "\t<corrupt X3>\n"
+msgstr "\t<X3 malmès>\n"
+
+#: unwind-ia64.c:670
+#, c-format
+msgid "\t<corrupt X4>\n"
+msgstr "\t<X4 malmès>\n"
+
+#: unwind-ia64.c:712
+#, c-format
+msgid "\t<corrupt R2>\n"
+msgstr "\t<R2 malmès>\n"
+
+#: unwind-ia64.c:758
+#, c-format
+msgid "\t<corrupt P2>\n"
+msgstr "\t<P2 malmès>\n"
+
+#: unwind-ia64.c:773
+#, c-format
+msgid "\t<corrupt P3>\n"
+msgstr "\t<P3 malmès>\n"
+
+#: unwind-ia64.c:832
+#, c-format
+msgid "\t<corrupt P5>\n"
+msgstr "\t<P5 malmès>\n"
+
+#: unwind-ia64.c:939
+#, c-format
+msgid "\t<corrupt P8>\n"
+msgstr "\t<P8 malmès>\n"
+
+#: unwind-ia64.c:1014
+#, c-format
+msgid "\t<corrupt P9>\n"
+msgstr "\t<P9 malmès>\n"
+
+#: unwind-ia64.c:1026
+#, c-format
+msgid "\t<corrupt P10>\n"
+msgstr "\t<P10 malmès>\n"
+
+#: unwind-ia64.c:1157
+#, c-format
+msgid "\t<corrupt IA64 descriptor>\n"
+msgstr "\t<descriptor IA64 malmès>\n"
+
#: version.c:34
-#, fuzzy, c-format
-#| msgid "Copyright 2014 Free Software Foundation, Inc.\n"
-msgid "Copyright (C) 2019 Free Software Foundation, Inc.\n"
-msgstr "Copyright 2014 Free Software Foundation, Inc.\n"
+#, c-format
+msgid "Copyright (C) 2025 Free Software Foundation, Inc.\n"
+msgstr "Copyright (C) 2025 Free Software Foundation, Inc.\n"
#: version.c:35
#, c-format
@@ -12387,17 +14386,17 @@ msgstr "\ts'ignoraran els paràmetres de codi de pàgina.\n"
msgid "try to add a ill language."
msgstr "prova d'afegir un idioma malalt."
-#: windmc.c:1117
+#: windmc.c:1115
#, c-format
msgid "unable to open file `%s' for input.\n"
msgstr "no s'ha pogut obrir el fitxer `%s' per a l'entrada.\n"
-#: windmc.c:1125
+#: windmc.c:1123
#, c-format
msgid "unable to read contents of %s"
msgstr "no s'han pogut llegir els continguts de %s"
-#: windmc.c:1137
+#: windmc.c:1135
msgid "input file does not seems to be UFT16.\n"
msgstr "el fitxer d'entrada no sembla ser UFT16.\n"
@@ -12421,28 +14420,28 @@ msgstr ": s'esperava que fos una fulla\n"
msgid ": duplicate value\n"
msgstr ": valor duplicat\n"
-#: windres.c:556
+#: windres.c:558
#, c-format
msgid "unknown format type `%s'"
msgstr "Tipus `%s' desconegut de format "
-#: windres.c:557
+#: windres.c:559
#, c-format
msgid "%s: supported formats:"
msgstr "%s_ formats suportats:"
#. Otherwise, we give up.
-#: windres.c:640
+#: windres.c:642
#, c-format
msgid "can not determine type of file `%s'; use the -J option"
msgstr "no s'ha pogut determinar el tipus de fitxer `%s';: useu l'opció -J"
-#: windres.c:652
+#: windres.c:654
#, c-format
msgid "Usage: %s [option(s)] [input-file] [output-file]\n"
msgstr "Forma d'ús: %s [opció(ns)] [fitxer-entrad] [fitxer-sortida]\n"
-#: windres.c:654
+#: windres.c:656
#, c-format
msgid ""
" The options are:\n"
@@ -12485,12 +14484,12 @@ msgstr ""
" llegir la sortida del preprocessador\n"
" --no-use-temp-file Useu popen (predeterminat)\n"
-#: windres.c:672
+#: windres.c:674
#, c-format
msgid " --yydebug Turn on parser debugging\n"
msgstr " --yydebug Engegueu la depuració de l'analitzador\n"
-#: windres.c:675
+#: windres.c:677
#, c-format
msgid ""
" -r Ignored for compatibility with rc\n"
@@ -12503,7 +14502,7 @@ msgstr ""
" -h --help Imprimeix aquest missatge\n"
" -V --version Imprimeix la informació de la versió\n"
-#: windres.c:680
+#: windres.c:682
#, c-format
msgid ""
"FORMAT is one of rc, res, or coff, and is deduced from the file name\n"
@@ -12527,30 +14526,645 @@ msgstr "opció -f no vàlida\n"
msgid "No filename following the -fo option.\n"
msgstr "No hi ha un nom de fitxer seguint l'opció -fo.\n"
-#: windres.c:954
+#: windres.c:957
#, c-format
msgid "Option -I is deprecated for setting the input format, please use -J instead.\n"
msgstr "L'opció -I és obsoleta per establir el format d'input, sisplau useu en comptes -J\n"
-#: windres.c:1067
+#: windres.c:1070
msgid "no resources"
msgstr "sense recursos"
-#: wrstabs.c:353 wrstabs.c:1914
+#: wrstabs.c:336 wrstabs.c:1909
#, c-format
msgid "string_hash_lookup failed: %s"
msgstr "ha fallat string_hash_lookup: %s"
-#: wrstabs.c:636
+#: wrstabs.c:660
#, c-format
msgid "stab_int_type: bad size %u"
msgstr "stab_int_type: mida dolenta %u"
-#: wrstabs.c:1392
+#: wrstabs.c:1382
#, c-format
msgid "%s: warning: unknown size for field `%s' in struct"
msgstr "%s: advertiment: mida desconeguda per al camp `%s' a struct"
+#, c-format
+#~ msgid "DW_FORM_GNU_str_index offset too big: %s\n"
+#~ msgstr "Desplaçament DW_FORM_GNU_str_index massa gran: %s\n"
+
+#~ msgid "<index offset is too big>"
+#~ msgstr "<el desplaçament de l'índex és massa gran>"
+
+#, c-format
+#~ msgid "DW_FORM_GNU_str_index indirect offset too big: %s\n"
+#~ msgstr "Desplaçament indirecte DW_FORM_GNU_str_index massa gran: %s\n"
+
+#~ msgid ".debug_abbrev section not zero terminated\n"
+#~ msgstr "La secció .debug_abbrev no està terminada amb zeros\n"
+
+#, fuzzy
+#~ msgid "<could not load separate string section>"
+#~ msgstr "no s'han pogut recuperar els continguts de la secció"
+
+#~ msgid "Internal error: DWARF version is not 2, 3 or 4.\n"
+#~ msgstr "Error intern: La versió DWARF no és 2, 3 o 4.\n"
+
+#~ msgid "DW_FORM_data8 is unsupported when sizeof (dwarf_vma) != 8\n"
+#~ msgstr "DW_FORM_data8 no està suportat quan sizeof (dwarf_vma) != 8\n"
+
+#, fuzzy, c-format
+#~ msgid "%c(addr_index: 0x%s): %s"
+#~ msgstr " (addr_index: 0x%s): %s"
+
+#, c-format
+#~ msgid "(Unknown: %s)"
+#~ msgstr "(Desconegut: %s)"
+
+#, fuzzy, c-format
+#~ msgid "Line length %s extends beyond end of section\n"
+#~ msgstr "La informació de depuració està malmesa, la mida de CU a %s s'estén més enllà del final de la secció (longitud = %s)\n"
+
+#, fuzzy
+#~ msgid "Corrupt directory format table entry\n"
+#~ msgstr "Entrada malmesa de taula de noms de fitxers\n"
+
+#, fuzzy
+#~ msgid "Corrupt directory entries list\n"
+#~ msgstr "Capçalera malmesa a la secció %s.\n"
+
+#, fuzzy
+#~ msgid "Corrupt file name entries list\n"
+#~ msgstr "Entrada malmesa de taula de noms de fitxers\n"
+
+#, c-format
+#~ msgid " Set ISA to %s\n"
+#~ msgstr " Estableix ISA a %s\n"
+
+#, fuzzy, c-format
+#~ msgid "corrupt file index %u encountered\n"
+#~ msgstr "Entrada malmesa de taula de noms de fitxers\n"
+
+#, fuzzy, c-format
+#~ msgid "Only GNU extension to DWARF 4 or 5 of %s is currently supported.\n"
+#~ msgstr "Actualment sols està suportada la extensió GNU a DWARF 4 de %s\n"
+
+#, c-format
+#~ msgid "Location lists in %s section start at 0x%s\n"
+#~ msgstr "Les llistes de localització a la secció %s comencen a 0x%s\n"
+
+#, c-format
+#~ msgid "There is a hole [0x%lx - 0x%lx] in .debug_loc section.\n"
+#~ msgstr "Hi ha un forat [0x%lx - 0x%lx] a la secció .debug_loc.\n"
+
+#, c-format
+#~ msgid "There is an overlap [0x%lx - 0x%lx] in .debug_loc section.\n"
+#~ msgstr "Hi ha un desplaçament [0x%lx - 0x%lx] a la secció .debug_loc.\n"
+
+#~ msgid "(start == end)"
+#~ msgstr "(inici == fi)"
+
+#~ msgid "(start > end)"
+#~ msgstr "(inici < fi)"
+
+#, fuzzy, c-format
+#~ msgid "[%3u] 0x%lx\n"
+#~ msgstr "[%3u] 0x%lx - 0x%lx\n"
+
+#, c-format
+#~ msgid "[%3u] 0x%lx - 0x%lx\n"
+#~ msgstr "[%3u] 0x%lx - 0x%lx\n"
+
+#, c-format
+#~ msgid "[%3u] 0x%lx 0x%lx "
+#~ msgstr "[%3u] 0x%lx 0x%lx "
+
+#, c-format
+#~ msgid "%lu\n"
+#~ msgstr "%lu\n"
+
+#~ msgid "Internal error: out of space in the shndx pool.\n"
+#~ msgstr "Error intern: espai exhaurit al conjunt shndx.\n"
+
+#, c-format
+#~ msgid "Section %s too small for %d hash table entries\n"
+#~ msgstr "La secció %s és massa petita per a %d entrades de taula de resum\n"
+
+#, c-format
+#~ msgid " [%3d] 0x%s"
+#~ msgstr " [%3d] 0x%s"
+
+#, fuzzy
+#~ msgid "Out of memory"
+#~ msgstr "Memòria exhaurida\n"
+
+#, fuzzy, c-format
+#~ msgid " ID: <unknown>\n"
+#~ msgstr ", <desconegut>"
+
+#, fuzzy, c-format
+#~ msgid ""
+#~ " --input-mach <machine> Set input machine type to <machine>\n"
+#~ " --output-mach <machine> Set output machine type to <machine>\n"
+#~ " --input-type <type> Set input file type to <type>\n"
+#~ " --output-type <type> Set output file type to <type>\n"
+#~ " --input-osabi <osabi> Set input OSABI to <osabi>\n"
+#~ " --output-osabi <osabi> Set output OSABI to <osabi>\n"
+#~ msgstr ""
+#~ " --input-mach <màquina> Estableix el tipus de màquina d'entrada a \n"
+#~ " <màquina>\n"
+#~ " --output-mach <màquina> Estableix el tipus de màquina de sortida a\n"
+#~ " <màquina>\n"
+#~ " --input-type <tipus> Estableix el tipus de fitxer d'entrada a <tipus>\n"
+#~ " --output-type <tipus> Estableix el tipus de fitxer de sortida a <tipus>\n"
+#~ " --input-osabi <osabi> Estableix l'OSABI d'entrada a <osabi>\n"
+#~ " --output-osabi <osabi> Estableix l'OSABI de sortida a <osabi>\n"
+#~ " -h --help Mostra aquesta informació\n"
+#~ " -v --version Mostra el nombre de versió de %s\n"
+
+#, fuzzy, c-format
+#~ msgid ""
+#~ " The options are:\n"
+#~ " -a, --debug-syms Display debugger-only symbols\n"
+#~ " -A, --print-file-name Print name of the input file before every symbol\n"
+#~ " -B Same as --format=bsd\n"
+#~ " -C, --demangle[=STYLE] Decode low-level symbol names into user-level names\n"
+#~ " The STYLE, if specified, can be `auto' (the default),\n"
+#~ " `gnu', `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
+#~ " or `gnat'\n"
+#~ " --no-demangle Do not demangle low-level symbol names\n"
+#~ " --recurse-limit Enable a demangling recursion limit. This is the default.\n"
+#~ " --no-recurse-limit Disable a demangling recursion limit.\n"
+#~ " -D, --dynamic Display dynamic symbols instead of normal symbols\n"
+#~ " --defined-only Display only defined symbols\n"
+#~ " -e (ignored)\n"
+#~ " -f, --format=FORMAT Use the output format FORMAT. FORMAT can be `bsd',\n"
+#~ " `sysv' or `posix'. The default is `bsd'\n"
+#~ " -g, --extern-only Display only external symbols\n"
+#~ " -l, --line-numbers Use debugging information to find a filename and\n"
+#~ " line number for each symbol\n"
+#~ " -n, --numeric-sort Sort symbols numerically by address\n"
+#~ " -o Same as -A\n"
+#~ " -p, --no-sort Do not sort the symbols\n"
+#~ " -P, --portability Same as --format=posix\n"
+#~ " -r, --reverse-sort Reverse the sense of the sort\n"
+#~ msgstr ""
+#~ " Les opcions són:\n"
+#~ " -a, --debug-syms Mostra únicamant els símbols del depurador\n"
+#~ " -A, --print-file-name Imprimeix el nom del fitxer d'entrada abans\n"
+#~ " de cada símbol\n"
+#~ " -B El mateix que --format=bsd\n"
+#~ " -C, --demangle[=ESTIL] Decodifica els noms dels símbols de nivell\n"
+#~ " baix a nivell d'usuari\n"
+#~ " L'ESTIL, si s'especifica, pot ser `auto' \n"
+#~ " (predeterminat), `gnu', `lucid', `arm',\n"
+#~ " `hp', `edg', `gnu-v3', `java' o `gnat'\n"
+#~ " --no-demangle No decodifiquis els noms de símbols de nivell baix\n"
+#~ " -D, --dynamic Mostra els símbols dinàmics en comptes dels \n"
+#~ " símbols normals\n"
+#~ " --defined-only Mostra únicament els símbols definits\n"
+#~ " -e (ignorat)\n"
+#~ " -f, --format=FORMAT Usa el format d'uaout FORMAT, FORMAT pot ser `bsd',\n"
+#~ " `sysv' o `posix'. Per defecte és `bsd'\n"
+#~ " -g, --extern-only Mostra sols els símbols externs\n"
+#~ " -l, --line-numbers Usa informació de depuració per trobar un fitxer \n"
+#~ " i el nombre de línia per a cada símbol\n"
+#~ " -n, --numeric-sort Ordena els símbols numèricament per adreça\n"
+#~ " -o El mateix que -A\n"
+#~ " -p, --no-sort No ordenis els símbols\n"
+#~ " -P, --portability El mateix que --format=posix\n"
+#~ " -r, --reverse-sort Reverteix el sentit de l'ordenació\n"
+
+#, fuzzy, c-format
+#~ msgid ""
+#~ " -S, --print-size Print size of defined symbols\n"
+#~ " -s, --print-armap Include index for symbols from archive members\n"
+#~ " --size-sort Sort symbols by size\n"
+#~ " --special-syms Include special symbols in the output\n"
+#~ " --synthetic Display synthetic symbols as well\n"
+#~ " -t, --radix=RADIX Use RADIX for printing symbol values\n"
+#~ " --target=BFDNAME Specify the target object format as BFDNAME\n"
+#~ " -u, --undefined-only Display only undefined symbols\n"
+#~ " --with-symbol-versions Display version strings after symbol names\n"
+#~ " -X 32_64 (ignored)\n"
+#~ " @FILE Read options from FILE\n"
+#~ " -h, --help Display this information\n"
+#~ " -V, --version Display this program's version number\n"
+#~ "\n"
+#~ msgstr ""
+#~ " -S, --print-size Imprimeix la mida dels símbols definits\n"
+#~ " -s, --print-armap Inclou un índex per als símbols dels membres de l'arxiu\n"
+#~ " --size-sort Ordena els símbos per mida\n"
+#~ " --special-syms Inclou símbols especials a la sortida\n"
+#~ " --synthetic Mostra també els símbos sintètics\n"
+#~ " -t, --radix=RADIX Usa RADIX per imprimir els valors dels símbols\n"
+#~ " --target=BFDNAME Especifica el format de l'objecte de destí com BDFNAME\n"
+#~ " -u, --undefined-only Mostra sols els símbols no definits\n"
+#~ " -X 32_64 (ignorat)\n"
+#~ " @FITXER Llegeix les opcions des de FITXER\n"
+#~ " -h, --help Mostra aquesta informació\n"
+#~ " -V, --version Mostra el nombre de versió d'aquest programa\n"
+#~ "\n"
+
+#, fuzzy
+#~ msgid "warning: note section is empty"
+#~ msgstr "no es pot bolcar la seccció - està buida"
+
+#~ msgid "can't dump section - it is empty"
+#~ msgstr "no es pot bolcar la seccció - està buida"
+
+#, c-format
+#~ msgid "warning: could not locate '%s'. System error message: %s"
+#~ msgstr "advertiment: no s'ha pogut localitzar «%s». Missatge d'error de sistema: %s"
+
+#, fuzzy, c-format
+#~ msgid ""
+#~ " -a, --archive-headers Display archive header information\n"
+#~ " -f, --file-headers Display the contents of the overall file header\n"
+#~ " -p, --private-headers Display object format specific file header contents\n"
+#~ " -P, --private=OPT,OPT... Display object format specific contents\n"
+#~ " -h, --[section-]headers Display the contents of the section headers\n"
+#~ " -x, --all-headers Display the contents of all headers\n"
+#~ " -d, --disassemble Display assembler contents of executable sections\n"
+#~ " -D, --disassemble-all Display assembler contents of all sections\n"
+#~ " --disassemble=<sym> Display assembler contents from <sym>\n"
+#~ " -S, --source Intermix source code with disassembly\n"
+#~ " -s, --full-contents Display the full contents of all sections requested\n"
+#~ " -g, --debugging Display debug information in object file\n"
+#~ " -e, --debugging-tags Display debug information using ctags style\n"
+#~ " -G, --stabs Display (in raw form) any STABS info in the file\n"
+#~ " -W[lLiaprmfFsoRtUuTgAckK] or\n"
+#~ " --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n"
+#~ " =frames-interp,=str,=loc,=Ranges,=pubtypes,\n"
+#~ " =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n"
+#~ " =addr,=cu_index,=links,=follow-links]\n"
+#~ " Display DWARF info in the file\n"
+#~ " -t, --syms Display the contents of the symbol table(s)\n"
+#~ " -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
+#~ " -r, --reloc Display the relocation entries in the file\n"
+#~ " -R, --dynamic-reloc Display the dynamic relocation entries in the file\n"
+#~ " @<file> Read options from <file>\n"
+#~ " -v, --version Display this program's version number\n"
+#~ " -i, --info List object formats and architectures supported\n"
+#~ " -H, --help Display this information\n"
+#~ msgstr ""
+#~ " -a, --archive-headers Mostra la informació de capçaleres del fitxer\n"
+#~ " -f, --file-headers Mostra els continguts de la capçalera \n"
+#~ " general del fitxer\n"
+#~ " -p, --private-headers Mostra els continguts de les capçaleres del\n"
+#~ " fitxer específics del format\n"
+#~ " -P, --private=OPC,OPC... Mostra els continguts específics del format d'objecte\n"
+#~ " -h, --[section-]headers Mostra els continguts de les capçaleres de la secció\n"
+#~ " -x, --all-headers Mostra els continguts de totes les capçaleres\n"
+#~ " -d, --disassemble Mostra els continguts de l'assemblador de\n"
+#~ " les secciones executables\n"
+#~ " -D, --disassemble-all Mostra els continguts de l'assemblador de \n"
+#~ " totes les seccions\n"
+#~ " -S, --source Barreja el codi font amb desassemblador\n"
+#~ " -s, --full-contents Mostra el contingut complet de totes les \n"
+#~ " seccions requerides\n"
+#~ " -g, --debugging Mostra la informació de depuració del fitxer objecte\n"
+#~ " -e, --debugging-tags Mostra la informació de depuració usant estil ctags\n"
+#~ " -G, --stabs Mostra (en format brut) qualsevol informació STABS\n"
+#~ " al fitxer\n"
+#~ " -W[lLiaprmfFsoRt] o\n"
+#~ " --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n"
+#~ " =frames-interp,=str,=loc,=Ranges,=pubtypes,\n"
+#~ " =gdb_index,=trace_info,=trace_abbrev,=trace_aranges]\n"
+#~ " Mostra la informació DWARF al fitxer\n"
+#~ " -t, --syms Mostra els continguts de la(es) taula(es) de símbols\n"
+#~ " -T, --dynamic-syms Mostra els continguts de la taula dinàmica\n"
+#~ " de símbols\n"
+#~ " -r, --reloc Mostra les entrades de relocalització del fitxer\n"
+#~ " -R, --dynamic-reloc Mostra les entrades de relocalització\n"
+#~ " dinàmica al fitxer\n"
+#~ " @<fitxer> Llegeix les opcions del <fitxer>\n"
+#~ " -v, --version Mostra el nombre de versió d'aquest programa\n"
+#~ " -i, --info Llista els formats i les arquitectures dels\n"
+#~ " objectes suportats\n"
+#~ " -H, --help Mostra aquesta informació\n"
+
+#, fuzzy, c-format
+#~ msgid ""
+#~ " -b, --target=BFDNAME Specify the target object format as BFDNAME\n"
+#~ " -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
+#~ " -j, --section=NAME Only display information for section NAME\n"
+#~ " -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
+#~ " -EB --endian=big Assume big endian format when disassembling\n"
+#~ " -EL --endian=little Assume little endian format when disassembling\n"
+#~ " --file-start-context Include context from start of file (with -S)\n"
+#~ " -I, --include=DIR Add DIR to search list for source files\n"
+#~ " -l, --line-numbers Include line numbers and filenames in output\n"
+#~ " -F, --file-offsets Include file offsets when displaying information\n"
+#~ " -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
+#~ " The STYLE, if specified, can be `auto', `gnu',\n"
+#~ " `lucid', `arm', `hp', `edg', `gnu-v3', `java'\n"
+#~ " or `gnat'\n"
+#~ " --recurse-limit Enable a limit on recursion whilst demangling. [Default]\n"
+#~ " --no-recurse-limit Disable a limit on recursion whilst demangling\n"
+#~ " -w, --wide Format output for more than 80 columns\n"
+#~ " -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n"
+#~ " --start-address=ADDR Only process data whose address is >= ADDR\n"
+#~ " --stop-address=ADDR Only process data whose address is <= ADDR\n"
+#~ " --prefix-addresses Print complete address alongside disassembly\n"
+#~ " --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
+#~ " --insn-width=WIDTH Display WIDTH bytes on a single line for -d\n"
+#~ " --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n"
+#~ " --special-syms Include special symbols in symbol dumps\n"
+#~ " --inlines Print all inlines for source line (with -l)\n"
+#~ " --prefix=PREFIX Add PREFIX to absolute paths for -S\n"
+#~ " --prefix-strip=LEVEL Strip initial directory names for -S\n"
+#~ msgstr ""
+#~ " -b, --target=NOM-BFD Especifica el format del objecte destí com \n"
+#~ " NOM-BFD\n"
+#~ " -m, --architecture=MÀQUINA Especifica l'arquitectura del destí\n"
+#~ " com MÀQUINA\n"
+#~ " -j, --section=NOM Mostra sols informació per a la secció NOM\n"
+#~ " -M, --disassembler-options=OPC Passa el text OPC cap al desassemblador\n"
+#~ " -EB --endian=big Suposa format endian gran quan s'estigui \n"
+#~ " desassemblant\n"
+#~ " -EL --endian=little Suposa format endian petit quan s'estigui\n"
+#~ " desassemblant\n"
+#~ " --file-start-context Incloeix el context des de l'inici del fitxer\n"
+#~ " (amb -S)\n"
+#~ " -I, --include=DIR Afegeix DIR a les llistes de cerca per als \n"
+#~ " fitxers font\n"
+#~ " -l, --line-numbers Inclou els nombres de línia i els fitxers a la \n"
+#~ " sortida\n"
+#~ " -F, --file-offsets Inclou les posicions dels quan es mostri la\n"
+#~ " informació\n"
+#~ " -C, --demangle[=ESTIL] Decodifica els noms del símbols \n"
+#~ " filtrats/processats \n"
+#~ " L'ESTIL, si s'ha especificat, pot ser\n"
+#~ " `auto', `gnu', `lucid', `arm', `hp',\n"
+#~ " `edg', `gnu-v3', `java' o `gnat'\n"
+#~ " -w, --wide Formateja la sortida per a més de 80 columnes\n"
+#~ " -z, --disassemble-zeroes No saltis els blocs de zeros quan\n"
+#~ " s'estigui desassemblant\n"
+#~ " --start-address=ADR Processa sols les dades l'adreça de les\n"
+#~ " quals sigui >= ADR\n"
+#~ " --stop-address=ADR Processa sols les dades l'adreça de les\n"
+#~ " quals sigui <= ADR\n"
+#~ " --prefix-addresses Imprimeix les adreces completes al costat\n"
+#~ " del codi desassemblat\n"
+#~ " --[no-]show-raw-insn Mostra hex al costat del desassemblament\n"
+#~ " simbòlic\n"
+#~ " --insn-width=AMPLADA Mostra AMPLADA bytes a una línia única\n"
+#~ " per a -d \n"
+#~ " --adjust-vma=DESPLAÇAMENT Afegeix DESPLAÇAMENT a totes les adreces\n"
+#~ " de secció mostrades\n"
+#~ " --special-syms Inclou els símbols especials als bolcats\n"
+#~ " de símbols\n"
+#~ " --prefix=PREFIX Afegeix PREFIX als camins absoluts per\n"
+#~ " a -S\n"
+#~ " --prefix-strip=NIVELL Elimina els noms del directoris inicials\n"
+#~ " per a -S\n"
+
+#, c-format
+#~ msgid ""
+#~ " --dwarf-depth=N Do not display DIEs at depth N or greater\n"
+#~ " --dwarf-start=N Display DIEs starting with N, at the same depth\n"
+#~ " or deeper\n"
+#~ " --dwarf-check Make additional dwarf internal consistency checks. \n"
+#~ "\n"
+#~ msgstr ""
+#~ " --dwarf-depth=N No mostris els DIEs a una profunditat N o més gran\n"
+#~ " --dwarf-start=N Mostra els DIEs que comencen amb N, a la mateixa\n"
+#~ " profunditat o més gran\n"
+#~ " --dwarf-check Fes verificacions addicionals de consistència interna de DIEs\n"
+
+#, fuzzy, c-format
+#~ msgid ""
+#~ " Options are:\n"
+#~ " -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
+#~ " -h --file-header Display the ELF file header\n"
+#~ " -l --program-headers Display the program headers\n"
+#~ " --segments An alias for --program-headers\n"
+#~ " -S --section-headers Display the sections' header\n"
+#~ " --sections An alias for --section-headers\n"
+#~ " -g --section-groups Display the section groups\n"
+#~ " -t --section-details Display the section details\n"
+#~ " -e --headers Equivalent to: -h -l -S\n"
+#~ " -s --syms Display the symbol table\n"
+#~ " --symbols An alias for --syms\n"
+#~ " --dyn-syms Display the dynamic symbol table\n"
+#~ " -n --notes Display the core notes (if present)\n"
+#~ " -r --relocs Display the relocations (if present)\n"
+#~ " -u --unwind Display the unwind info (if present)\n"
+#~ " -d --dynamic Display the dynamic section (if present)\n"
+#~ " -V --version-info Display the version sections (if present)\n"
+#~ " -A --arch-specific Display architecture specific information (if any)\n"
+#~ " -c --archive-index Display the symbol/file index in an archive\n"
+#~ " -D --use-dynamic Use the dynamic section info when displaying symbols\n"
+#~ " -x --hex-dump=<number|name>\n"
+#~ " Dump the contents of section <number|name> as bytes\n"
+#~ " -p --string-dump=<number|name>\n"
+#~ " Dump the contents of section <number|name> as strings\n"
+#~ " -R --relocated-dump=<number|name>\n"
+#~ " Dump the contents of section <number|name> as relocated bytes\n"
+#~ " -z --decompress Decompress section before dumping it\n"
+#~ " -w[lLiaprmfFsoRtUuTgAckK] or\n"
+#~ " --debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n"
+#~ " =frames-interp,=str,=loc,=Ranges,=pubtypes,\n"
+#~ " =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n"
+#~ " =addr,=cu_index,=links,=follow-links]\n"
+#~ " Display the contents of DWARF debug sections\n"
+#~ msgstr ""
+#~ " Les opcions són:\n"
+#~ " -a --all Equivalent a: -h -l -S -s -r -d -V -A -I\n"
+#~ " -h --file-header Mostra la capçalera del fitxer ELF\n"
+#~ " -l --program-headers Mostra les capçaleres del programa\n"
+#~ " --segments Un àlias per a --program-headers\n"
+#~ " -S --section-headers Mostra la capçalera de la secció\n"
+#~ " --sections Un àlias per a --section-headers\n"
+#~ " -g --section-groups Mostra els grups de la secció\n"
+#~ " -t --section-details Mostra els detalls de la secció\n"
+#~ " -e --headers Equivalent a: -h -l -S\n"
+#~ " -s --syms Mostra la taula de símbols\n"
+#~ " --symbols Un àlias per a --syms\n"
+#~ " --dyn-syms Mostra la taula de símbols dinàmics\n"
+#~ " -n --notes Mostra les notes del nucli (si n'hi ha)\n"
+#~ " -r --relocs Mostra les relocalitzacios (si n'hi ha)\n"
+#~ " -u --unwind Mostra la informació genèrica (si n'hi ha)\n"
+#~ " -d --dynamic Mostra la secció dinàmica (si n'hi ha)\n"
+#~ " -V --version-info Mostra les versions de la secció (si n'hi ha)\n"
+#~ " -A --arch-specific Mostra la informació específica de l'arquitectura (si \n"
+#~ " n'hi ha)\n"
+#~ " -c --archive-index Mostra l'índex del sìmbol/fitxer a un fitxer\n"
+#~ " -D --use-dynamic Usa la informació dinàmica de la secció quan mostris \n"
+#~ " els símbols\n"
+#~ " -x --hex-dump=<nombre|nom>\n"
+#~ " Bolca els continguts de la secció <nombre|nom> com\n"
+#~ " a bytes\n"
+#~ " -p --string-dump=<nombre|nom>\n"
+#~ " Bolca els continguts de la secció <nombre|nom> com \n"
+#~ " a cadena de caràcters\n"
+#~ " -R --relocated-dump=<nombre|nom>\n"
+#~ " Bolca els continguts de la secció <nombre|nom> com a\n"
+#~ " bytes reubicables\n"
+#~ " -w[lLiaprmfFsoRt] or\n"
+#~ " --debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,\n"
+#~ " =frames-interp,=str,=loc,=Ranges,=pubtypes,\n"
+#~ " =gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n"
+#~ " =addr,=cu_index]\n"
+#~ " Mostra els continguts de les seccions de depuració\n"
+#~ " DWARF2\n"
+
+#, c-format
+#~ msgid ""
+#~ " --dwarf-depth=N Do not display DIEs at depth N or greater\n"
+#~ " --dwarf-start=N Display DIEs starting with N, at the same depth\n"
+#~ " or deeper\n"
+#~ msgstr ""
+#~ " --dwarf-depth=N No mostris DIEs a una profunditat N o més gran\n"
+#~ " --dwarf-start=N Mostra DIEs que comencen amb N, a la mateixa\n"
+#~ " profunditat o més gran\n"
+
+#, c-format
+#~ msgid ""
+#~ " -I --histogram Display histogram of bucket list lengths\n"
+#~ " -W --wide Allow output width to exceed 80 characters\n"
+#~ " @<file> Read options from <file>\n"
+#~ " -H --help Display this information\n"
+#~ " -v --version Display the version number of readelf\n"
+#~ msgstr ""
+#~ " -I --histogram Mostra l'histograma de les longituds de llistes de \n"
+#~ " cubells\n"
+#~ " -W --wide Permet amplada de sotrida que excedeix 80 caràcters\n"
+#~ " @<fitxer> Llegeix les opcions de <fitxer>\n"
+#~ " -H --help Mostra aquesta informació\n"
+#~ " -v --version Mostar el nombre de versió de readelf\n"
+
+#~ msgid "the .dynamic section is not contained within the dynamic segment\n"
+#~ msgstr "la secció .dynamic no està continguda dins del segment dinàmica\n"
+
+#~ msgid "Internal error: failed to create format string to display program interpreter\n"
+#~ msgstr "Error intern: no s'ha pogut crear la cadena de format per l'intèrpret del programa\n"
+
+#~ msgid "Unable to read program interpreter name\n"
+#~ msgstr "No es pot llegir el nom de l'intèrpret del programa\n"
+
+#, c-format
+#~ msgid ""
+#~ "\n"
+#~ "There are no sections to group in this file.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "No hi seccions per agrupar a aquest fitxer.\n"
+
+#, fuzzy, c-format
+#~ msgid "<corrupt: %s>"
+#~ msgstr "<malmès: %"
+
+#~ msgid "Unable to determine the number of symbols to load\n"
+#~ msgstr "No es pot determinar el nombre de símbols per carregar\n"
+
+#, fuzzy
+#~ msgid "Multiple dynamic string tables found\n"
+#~ msgstr "El fitxer conté múltiples taules de símbols dinàmics\n"
+
+#, c-format
+#~ msgid " Addr: 0x"
+#~ msgstr " Adr: 0x"
+
+#, c-format
+#~ msgid " Addr: "
+#~ msgstr " Adr: "
+
+#, fuzzy, c-format
+#~ msgid "bad section index[%3d]"
+#~ msgstr "La lectura de la secció ha fallat"
+
+#, fuzzy, c-format
+#~ msgid "Out of memory allocating space for %s dynamic entries\n"
+#~ msgstr "Memòria exhaurida quan s'estava assignant 0x%lx bytes per a %s\n"
+
+#, fuzzy, c-format
+#~ msgid "<No info available for dynamic symbol number %lu>\n"
+#~ msgstr "no hi ha informació per al símbol nombre %ld\n"
+
+#, c-format
+#~ msgid " <corrupt: %14ld>"
+#~ msgstr " <malmès: %14ld>"
+
+#, c-format
+#~ msgid ""
+#~ "\n"
+#~ "Symbol table for image:\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Taula de símbols per la imatge:\n"
+
+#, c-format
+#~ msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
+#~ msgstr " Nom. Cub: Valor Mida Tipus Unió Vis Nom Ndx\n"
+
+#, c-format
+#~ msgid " Num Buc: Value Size Type Bind Vis Ndx Name\n"
+#~ msgstr " Nom. Cub: Valor Mida Tipus Unió Vis Nom Ndx\n"
+
+#, c-format
+#~ msgid ""
+#~ "\n"
+#~ "Symbol table of `.gnu.hash' for image:\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Taula de símbols de `.gnu.hash' per a l'imatge:\n"
+
+#, fuzzy, c-format
+#~ msgid ""
+#~ "\n"
+#~ "Histogram for `.gnu.hash' bucket list length (total of %lu bucket):\n"
+#~ msgid_plural ""
+#~ "\n"
+#~ "Histogram for `.gnu.hash' bucket list length (total of %lu buckets):\n"
+#~ msgstr[0] ""
+#~ "\n"
+#~ "L'histograma per a la longitud de la llista de cubells `.gnu.hash' (total de %lu cubells):\n"
+#~ msgstr[1] ""
+#~ "\n"
+#~ "L'histograma per a la longitud de la llista de cubells `.gnu.hash' (total de %lu cubells):\n"
+
+#, c-format
+#~ msgid " Note: This section has relocations against it, but these have NOT been applied to this dump.\n"
+#~ msgstr " Nota: Aquesta secció té relocalitzacions contra ella, però NO s'han aplicat a aquest bolcat \n"
+
+#, fuzzy, c-format
+#~ msgid "%d-bytes\n"
+#~ msgstr "8-byte\n"
+
+#, fuzzy
+#~ msgid "Out of memory allocating space for MIPS options\n"
+#~ msgstr "Memòria exhaurida quan s'estava assignant 0x%lx bytes per a %s\n"
+
+#, c-format
+#~ msgid " Cannot decode 64-bit note in 32-bit build\n"
+#~ msgstr " No es pot decodificar la nota de 64-bit a compilació 32-bit\n"
+
+#, c-format
+#~ msgid " Invalid size\n"
+#~ msgstr " Mida no vàlida\n"
+
+#, c-format
+#~ msgid "No note segments present in the core file.\n"
+#~ msgstr "No s'han trobat segments de notes presents al fitxer central.\n"
+
+#~ msgid ""
+#~ "This instance of readelf has been built without support for a\n"
+#~ "64 bit data type and so it cannot read 64 bit ELF files.\n"
+#~ msgstr ""
+#~ "Aquesta instància de readelf s'ha compilat sense suport per a\n"
+#~ "tipus de dades de 64 bit i en conseqüència no pot llegir fitxers ELF de 64 bits.\n"
+
+#, c-format
+#~ msgid "unable to rename '%s'; reason: %s"
+#~ msgstr "no es pot canviar el nom a '%s?; raó: %s"
+
+#, c-format
+#~ msgid "Type index number %d out of range\n"
+#~ msgstr "Nombre %d d'índex de tipus fora de rang\n"
+
#~ msgid "(DW_OP_GNU_implicit_pointer in frame info)"
#~ msgstr "(DW_OP_GNU_implicit_pointer informació en el marc)"
@@ -12560,13 +15174,13 @@ msgstr "%s: advertiment: mida desconeguda per al camp `%s' a struct"
#~ msgstr "Volcat decodificat de continguts de depuració de la secció %s:\n"
#~ msgid " DW_MACRO_GNU_define_indirect - lineno : %d macro : %s\n"
-#~ msgstr " DW_MACRO_GNU_define_indirect - línia-número : %d macro : %s\n"
+#~ msgstr " DW_MACRO_GNU_define_indirect - línia-nombre : %d macro : %s\n"
#~ msgid " DW_MACRO_GNU_undef_indirect - lineno : %d macro : %s\n"
-#~ msgstr " DW_MACRO_GNU_undef_indirect - línia-número : %d macro : %s\n"
+#~ msgstr " DW_MACRO_GNU_undef_indirect - línia-nombre : %d macro : %s\n"
#~ msgid " DW_MACRO_GNU_define_indirect_alt - lineno : %d macro offset : 0x%lx\n"
-#~ msgstr " DW_MACRO_GNU_define_indirect_alt - línia-número : %d posició de macro : 0x%lx\n"
+#~ msgstr " DW_MACRO_GNU_define_indirect_alt - línia-nombre : %d posició de macro : 0x%lx\n"
#~ msgid " DW_MACRO_GNU_transparent_include_alt - offset : 0x%lx\n"
#~ msgstr " DW_MACRO_GNU_transparent_include_alt - posició : 0x%lx\n"
@@ -12587,7 +15201,7 @@ msgstr "%s: advertiment: mida desconeguda per al camp `%s' a struct"
#~ msgstr "final no esperat de la informació de depuració"
#~ msgid "invalid number"
-#~ msgstr "número no vàlid"
+#~ msgstr "nombre no vàlid"
#~ msgid "invalid string length"
#~ msgstr "longitud de cadena no vàlida"
@@ -12613,9 +15227,6 @@ msgstr "%s: advertiment: mida desconeguda per al camp `%s' a struct"
#~ msgid "unexpected number"
#~ msgstr "número no esperat"
-#~ msgid "unexpected record type"
-#~ msgstr "tipus de registre no esperat"
-
#~ msgid "blocks left on stack at end"
#~ msgstr "s'han deixat blocs a la pila al final"
@@ -12799,9 +15410,6 @@ msgstr "%s: advertiment: mida desconeguda per al camp `%s' a struct"
#~ msgid "warning: No version number given"
#~ msgstr "advertiment: No s'ha donat un número de versió"
-#~ msgid "%s: read: %s"
-#~ msgstr "%s: s'ha llegit: %s"
-
#~ msgid "warning: FULLMAP is not supported; try ld -M"
#~ msgstr "advertiment: FULLMAP no està suportat: proveu ld -M"
@@ -12843,9 +15451,6 @@ msgstr "%s: advertiment: mida desconeguda per al camp `%s' a struct"
#~ msgid "set section size"
#~ msgstr "estableix la mida de la secció"
-#~ msgid "set section alignment"
-#~ msgstr "estableix l'alineació de la secció"
-
#~ msgid "set section flags"
#~ msgstr "estableix els senyaladors de la secció"
@@ -12891,9 +15496,6 @@ msgstr "%s: advertiment: mida desconeguda per al camp `%s' a struct"
#~ msgid "sh_entsize is zero\n"
#~ msgstr "sh_entsize és zero\n"
-#~ msgid "Invalid sh_entsize\n"
-#~ msgstr "sh_entsize no vàlida\n"
-
#~ msgid "File contains multiple symtab shndx tables\n"
#~ msgstr "El fitxer conté múltiples taules symtab shndx\n"
@@ -12921,13 +15523,13 @@ msgstr "%s: advertiment: mida desconeguda per al camp `%s' a struct"
#~ msgstr "| <desconegut>"
#~ msgid "flag = %d, vendor = <corrupt>\n"
-#~ msgstr "senyalador = %d, proveïdor = <corrupte>\n"
+#~ msgstr "senyalador = %d, proveïdor = <malmès>\n"
#~ msgid "Any\n"
#~ msgstr "Qualsevol\n"
#~ msgid "corrupt Tag_GNU_Power_ABI_Struct_Return"
-#~ msgstr "Tag_GNU_Power_ABI_Struct_Return corrupte"
+#~ msgstr "Tag_GNU_Power_ABI_Struct_Return malmès"
#~ msgid " Unknown section contexts\n"
#~ msgstr " Contextos desconeguts de secció \n"
@@ -12942,7 +15544,27 @@ msgstr "%s: advertiment: mida desconeguda per al camp `%s' a struct"
#~ msgstr "Mida incorrecta a print_dwarf_vma"
#~ msgid "The information in section %s appears to be corrupt - the section is too small\n"
-#~ msgstr "La informació de la secció %s sembla estar corrupta - la secció és massa petita\n"
+#~ msgstr "La informació de la secció %s sembla estar malmesa - la secció és massa petita\n"
#~ msgid "Binary %s contains:\n"
#~ msgstr "El binari %s conté:\n"
+
+#~ msgid "unable to construct path for supplementary debug file\n"
+#~ msgstr "No s'ha pogut construir el camí per al fixer complementari de depuració\n"
+
+#~ msgid "out of memory constructing filename for .debug_sup link\n"
+#~ msgstr "S'ha exhaurit la memòria quan s'estava construint el nom de fitxer per a l'enllaç .debug_sup\n"
+
+#, fuzzy, c-format
+#~| msgid "Interface Version: %s"
+#~ msgid "Minor Image Version:\t\t%d\n"
+#~ msgstr "Versió d'interfície: %s"
+
+#, fuzzy, c-format
+#~ msgid "Major Subsystem Version:\t%d\n"
+#~ msgstr "Versió principal del subsistema: %d"
+
+#, fuzzy, c-format
+#~| msgid " at offset 0x%lx contains %lu entries:\n"
+#~ msgid " at offset %#<PRIx64> contains 1 entry which relocates 1 location:\n"
+#~ msgstr " a la posició 0x%lx conté %lu entrades:\n"
diff --git a/binutils/po/sr.po b/binutils/po/sr.po
index 79b18fb..6aa51d5 100644
--- a/binutils/po/sr.po
+++ b/binutils/po/sr.po
@@ -5,10 +5,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: binutils-2.42.90\n"
+"Project-Id-Version: binutils-2.43.90\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2024-07-20 12:58+0100\n"
-"PO-Revision-Date: 2025-01-15 10:05+0100\n"
+"POT-Creation-Date: 2025-01-19 12:20+0000\n"
+"PO-Revision-Date: 2025-03-02 16:44+0100\n"
"Last-Translator: МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n"
"Language: sr\n"
@@ -71,8 +71,8 @@ msgstr ""
" -v --version Приказује издање програма\n"
"\n"
-#: addr2line.c:111 ar.c:354 ar.c:391 coffdump.c:470 dlltool.c:3822
-#: dllwrap.c:518 elfedit.c:976 objcopy.c:706 objcopy.c:762 readelf.c:6305
+#: addr2line.c:111 ar.c:354 ar.c:391 coffdump.c:470 dlltool.c:3724
+#: dllwrap.c:518 elfedit.c:976 objcopy.c:706 objcopy.c:762 readelf.c:6328
#: size.c:110 srconv.c:1705 strings.c:1361 sysdump.c:655 windmc.c:227
#: windres.c:690
#, c-format
@@ -110,12 +110,12 @@ msgstr "%s: не могу да добавим адреÑе из архиве"
msgid "%s: cannot find section %s"
msgstr "%s: не могу да пронађем одељак %s"
-#: addr2line.c:514 ar.c:748 dlltool.c:3329 nm.c:1987 objcopy.c:6253
-#: objdump.c:6002 size.c:152 strings.c:356 windmc.c:958 windres.c:816
+#: addr2line.c:514 ar.c:750 dlltool.c:3240 nm.c:1981 objcopy.c:6222
+#: objdump.c:5982 size.c:152 strings.c:356 windmc.c:958 windres.c:816
msgid "fatal error: libbfd ABI mismatch"
msgstr "кобна грешка: „libbfd ABI“ не одговара"
-#: addr2line.c:541 nm.c:2013 objdump.c:6052 readelf.c:6612
+#: addr2line.c:541 nm.c:2007 objdump.c:6034 readelf.c:6635
#, c-format
msgid "unknown demangling style `%s'"
msgstr "непознат Ñтил раÑкршчавања „%s“"
@@ -378,133 +378,133 @@ msgstr ""
" -h --help Приказује ову поруку помоћи\n"
" -V --version ИÑпиÑује податке о издању\n"
-#: ar.c:505
+#: ar.c:507
msgid "two different operation options specified"
msgstr "наведене Ñу две различите опције радње"
-#: ar.c:541
+#: ar.c:543
msgid "libdeps specified more than once"
msgstr "„libdeps“ је наведено више од једном"
-#: ar.c:602 ar.c:677 nm.c:2132
+#: ar.c:604 ar.c:679 nm.c:2126
#, c-format
msgid "sorry - this program has been built without plugin support\n"
msgstr "извините – овај програм је изграђен без подршке за прикључке\n"
-#: ar.c:804
+#: ar.c:806
msgid "no operation specified"
msgstr "није наведена радња"
-#: ar.c:807
+#: ar.c:809
msgid "`u' is only meaningful with the `r' option."
msgstr "„u“ има ÑмиÑла Ñамо Ñа опцијом „r“."
-#: ar.c:810
+#: ar.c:812
msgid "`u' is not meaningful with the `D' option - replacement will always happen."
msgstr "„u“ нема ÑмиÑла Ñа опцијом „D“ – замена ће Ñе увек деÑити."
-#: ar.c:813
+#: ar.c:815
msgid "`u' modifier ignored since `D' is the default (see `U')"
msgstr "„u“ измењивач је занемарен јер је „D“ оÑновно (видите „U“)"
-#: ar.c:822
+#: ar.c:824
msgid "missing position arg."
msgstr "недоÑтаје аргумент положаја."
-#: ar.c:828
+#: ar.c:830
msgid "`N' is only meaningful with the `x' and `d' options."
msgstr "„N“ има ÑмиÑла Ñамо Ñа опцијама „x“ и „d“."
-#: ar.c:830
+#: ar.c:832
msgid "`N' missing value."
msgstr "„N“ недоÑтајућа вредноÑÑ‚."
-#: ar.c:833
+#: ar.c:835
msgid "Value for `N' must be positive."
msgstr "ВредноÑÑ‚ за „N“ мора бити позитивна."
-#: ar.c:849
+#: ar.c:851
msgid "`x' cannot be used on thin archives."
msgstr "„x“ не може да Ñе кориÑти на лаким архивама."
-#: ar.c:863
+#: ar.c:865
msgid "Cannot create libdeps record."
msgstr "Ðе могу да направим „libdeps“ запиÑ."
-#: ar.c:866
+#: ar.c:868
msgid "Cannot set libdeps record type to binary."
msgstr "Ðе могу да поÑтавим врÑту „libdeps“ запиÑа за извршну."
-#: ar.c:869
+#: ar.c:871
msgid "Cannot set libdeps object format."
msgstr "Ðе могу да поÑтавим формат „libdeps“ објекат."
-#: ar.c:872
+#: ar.c:874
msgid "Cannot make libdeps object writable."
msgstr "Ðе могу да учиним упиÑивим „libdeps“ објекат."
-#: ar.c:875
+#: ar.c:877
msgid "Cannot write libdeps record."
msgstr "Ðе могу да пишем „libdeps“ запиÑ."
-#: ar.c:878
+#: ar.c:880
msgid "Cannot make libdeps object readable."
msgstr "Ðе могу да учиним читљивим „libdeps“ објекат."
-#: ar.c:881
+#: ar.c:883
msgid "Cannot reset libdeps record type."
msgstr "Ðе могу поново да поÑтавим врÑту „libdeps“ запиÑа."
-#: ar.c:944
+#: ar.c:955
#, c-format
msgid "internal error -- this option not implemented"
msgstr "унутрашња грешка –– ова опција није примењена"
-#: ar.c:1011
+#: ar.c:1026
#, c-format
msgid "creating %s"
msgstr "Ñтварам „%s“"
-#: ar.c:1039
+#: ar.c:1051
#, c-format
msgid "Cannot convert existing library %s to thin format"
msgstr "Ðе могу да претворим поÑтојећу библиотеку „%s“ у лаки запиÑ"
-#: ar.c:1045
+#: ar.c:1057
#, c-format
msgid "Cannot convert existing thin library %s to normal format"
msgstr "Ðе могу да претворим лаку библиотеку „%s“ у обичан запиÑ"
-#: ar.c:1076 ar.c:1177 ar.c:1499 objcopy.c:3744
+#: ar.c:1088 ar.c:1193 ar.c:1522 objcopy.c:3716
#, c-format
msgid "internal stat error on %s"
msgstr "унутрашња грешка добављања података над „%s“"
-#: ar.c:1096 ar.c:1204
+#: ar.c:1108 ar.c:1220
#, c-format
msgid "%s is not a valid archive"
msgstr "%s није иÑправна архива"
-#: ar.c:1124
+#: ar.c:1138
#, c-format
msgid "illegal output pathname for archive member: %s, using '%s' instead"
msgstr "неиÑправна путања излаза за члана архиве: %s, кориÑтићу „%s“"
-#: ar.c:1252
+#: ar.c:1270
msgid "could not create temporary file whilst writing archive"
msgstr "не могу да Ñтворим привремену датотеку док пишем архиву"
-#: ar.c:1400
+#: ar.c:1420
#, c-format
msgid "No member named `%s'\n"
msgstr "Ðема члана под називом „%s“\n"
-#: ar.c:1450
+#: ar.c:1473
#, c-format
msgid "no entry %s in archive %s!"
msgstr "нема уноÑа „%s“ у архиви „%s“!"
-#: ar.c:1629
+#: ar.c:1655
#, c-format
msgid "%s: no archive map to update"
msgstr "%s: нема мапе архиве за оÑвежавање"
@@ -780,7 +780,7 @@ msgstr "СпиÑак Ñимбола"
msgid "Symbol %s, tag %d, number %d"
msgstr "Симбол %s, ознака %d, број %d"
-#: coffdump.c:345 readelf.c:20364 readelf.c:20460
+#: coffdump.c:345 readelf.c:20401 readelf.c:20497
#, c-format
msgid "Type"
msgstr "Ð’Ñ€Ñта"
@@ -999,7 +999,7 @@ msgstr "Ðаиђох на одредницу променљиве без доÑÐ
msgid "%s: is not a COFF format file"
msgstr "%s: није датотека у „COFF“ запиÑу"
-#: cxxfilt.c:124 nm.c:380 objdump.c:464
+#: cxxfilt.c:124 nm.c:380 objdump.c:465
#, c-format
msgid "Report bugs to %s.\n"
msgstr "Грешке пријавите на „%s“.\n"
@@ -1097,491 +1097,491 @@ msgstr "debug_get_real_type: кружни подаци прочишћавања
msgid "debug_write_type: illegal type encountered"
msgstr "debug_write_type: наиђох на неиÑправну врÑту"
-#: dlltool.c:927 dlltool.c:952 dlltool.c:982
+#: dlltool.c:876 dlltool.c:901
#, c-format
msgid "Internal error: Unknown machine type: %d"
msgstr "Унутрашња грешка: Ðепозната врÑта машине: %d"
-#: dlltool.c:1024
+#: dlltool.c:952
#, c-format
msgid "Can't open def file: %s"
msgstr "Ðе могу да отворим датотеку одреднице: %s"
-#: dlltool.c:1029
+#: dlltool.c:957
#, c-format
msgid "Processing def file: %s"
msgstr "Обрађујем датотеку одреднице: %s"
-#: dlltool.c:1033
+#: dlltool.c:961
msgid "Processed def file"
msgstr "Датотека одреднице је обрађена"
-#: dlltool.c:1057
+#: dlltool.c:985
#, c-format
msgid "Syntax error in def file %s:%d"
msgstr "Садржајна грешка у датотеци одреднице „%s“:%d"
-#: dlltool.c:1092
+#: dlltool.c:1020
#, c-format
msgid "%s: Path components stripped from image name, '%s'."
msgstr "%s: СаÑтојци путање Ñу иÑцепљени из назива Ñлике, „%s“."
-#: dlltool.c:1110
+#: dlltool.c:1038
#, c-format
msgid "NAME: %s base: %x"
msgstr "ÐÐЗИВ: %s оÑнова: %x"
-#: dlltool.c:1113 dlltool.c:1134
+#: dlltool.c:1041 dlltool.c:1062
msgid "Can't have LIBRARY and NAME"
msgstr "Ðе могу да имам БИБЛИОТЕКУ и ÐÐЗИВ"
-#: dlltool.c:1131
+#: dlltool.c:1059
#, c-format
msgid "LIBRARY: %s base: %x"
msgstr "БИБЛИОТЕКÐ: %s оÑнова: %x"
-#: dlltool.c:1286
+#: dlltool.c:1214
#, c-format
msgid "VERSION %d.%d\n"
msgstr "ИЗДÐЊЕ %d.%d\n"
-#: dlltool.c:1334
+#: dlltool.c:1261
#, c-format
msgid "run: %s %s"
msgstr "покрени: %s %s"
-#: dlltool.c:1375 resrc.c:289
+#: dlltool.c:1302 resrc.c:289
#, c-format
msgid "wait: %s"
msgstr "чекај: %s"
-#: dlltool.c:1380 dllwrap.c:416 resrc.c:294
+#: dlltool.c:1307 dllwrap.c:416 resrc.c:294
#, c-format
msgid "subprocess got fatal signal %d"
msgstr "Ð¿Ð¾Ñ‚Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ˜Ðµ добио кобни Ñигнал %d"
-#: dlltool.c:1386 dllwrap.c:423 resrc.c:301
+#: dlltool.c:1313 dllwrap.c:423 resrc.c:301
#, c-format
msgid "%s exited with status %d"
msgstr "%s је изашао Ñа Ñтањем %d"
-#: dlltool.c:1417
+#: dlltool.c:1344
#, c-format
msgid "Sucking in info from %s section in %s"
msgstr "ИÑиÑавам податке из %s одељка у %s"
-#: dlltool.c:1558
+#: dlltool.c:1486
#, c-format
msgid "Excluding symbol: %s"
msgstr "Избацујем Ñимбол: %s"
-#: dlltool.c:1647 dlltool.c:1658 nm.c:1408 nm.c:1417
+#: dlltool.c:1575 dlltool.c:1586 nm.c:1410 nm.c:1419
#, c-format
msgid "%s: no symbols"
msgstr "%s: нема Ñимбола"
#. FIXME: we ought to read in and block out the base relocations.
-#: dlltool.c:1684
+#: dlltool.c:1612
#, c-format
msgid "Done reading %s"
msgstr "Завршио Ñам читање „%s“"
-#: dlltool.c:1694
+#: dlltool.c:1622
#, c-format
msgid "Unable to open object file: %s: %s"
msgstr "Ðе могу да отворим датотеку објекта: %s: %s"
-#: dlltool.c:1697
+#: dlltool.c:1625
#, c-format
msgid "Scanning object file %s"
msgstr "Скенирам датотеку објекта „%s“"
-#: dlltool.c:1717
+#: dlltool.c:1645
#, c-format
msgid "Cannot produce mcore-elf dll from archive file: %s"
msgstr "Ðе могу да произведем „dll mcore-elf“ из датотеке архиве: %s"
-#: dlltool.c:1819
+#: dlltool.c:1747
msgid "Adding exports to output file"
msgstr "Додајем извозе у датотеку излаза"
-#: dlltool.c:1871
+#: dlltool.c:1799
msgid "Added exports to output file"
msgstr "Додао Ñам извозе у излазну датотеку"
-#: dlltool.c:2039
+#: dlltool.c:1966
#, c-format
msgid "Generating export file: %s"
msgstr "Стварам датотеку извоза: %s"
-#: dlltool.c:2044
+#: dlltool.c:1971
#, c-format
msgid "Unable to open temporary assembler file: %s"
msgstr "Ðе могу да отворим привремену датотеку аÑемблера: %s"
-#: dlltool.c:2049
+#: dlltool.c:1976
#, c-format
msgid "Opened temporary file: %s"
msgstr "Привремена датотека је отворена: %s"
-#: dlltool.c:2225
+#: dlltool.c:2157
msgid "failed to read the number of entries from base file"
msgstr "ниÑам уÑпео да прочитам број уноÑа из оÑновне датотеке"
-#: dlltool.c:2276
+#: dlltool.c:2208
msgid "Generated exports file"
msgstr "Датотека извоза је Ñтворена"
-#: dlltool.c:2434
+#: dlltool.c:2351
#, c-format
msgid "bfd_open failed open stub file: %s: %s"
msgstr "бфд_отвори није уÑпео да отвори привидну датотеку: %s: %s"
-#: dlltool.c:2438
+#: dlltool.c:2355
#, c-format
msgid "Creating stub file: %s"
msgstr "Правим привидну датотеку: %s"
-#: dlltool.c:2777
+#: dlltool.c:2698
#, c-format
msgid "bfd_open failed reopen stub file: %s: %s"
msgstr "бфд_отвори није уÑпео поново да отвори привидну датотеку: %s: %s"
-#: dlltool.c:2791 dlltool.c:2870
+#: dlltool.c:2712 dlltool.c:2791
#, c-format
msgid "failed to open temporary head file: %s"
msgstr "ниÑам уÑпео да отворим привремену прву датотеку: %s"
-#: dlltool.c:2855 dlltool.c:2945
+#: dlltool.c:2776 dlltool.c:2866
#, c-format
msgid "failed to open temporary head file: %s: %s"
msgstr "ниÑам уÑпео да отворим привремену прву датотеку: %s: %s"
-#: dlltool.c:2960
+#: dlltool.c:2881
#, c-format
msgid "failed to open temporary tail file: %s"
msgstr "ниÑам уÑпео да отворим привремену поÑледњу датотеку: %s"
-#: dlltool.c:2996
+#: dlltool.c:2917
#, c-format
msgid "failed to open temporary tail file: %s: %s"
msgstr "ниÑам уÑпео да отворим привремену поÑледњу датотеку: %s: %s"
-#: dlltool.c:3019
+#: dlltool.c:2940
#, c-format
msgid "Can't create .lib file: %s: %s"
msgstr "Ðе могу да направим датотеку „.lib“: %s: %s"
-#: dlltool.c:3023
+#: dlltool.c:2944
#, c-format
msgid "Creating library file: %s"
msgstr "Правим датотеку библиотеке: %s"
-#: dlltool.c:3116 dlltool.c:3122
+#: dlltool.c:3028 dlltool.c:3034
#, c-format
msgid "cannot delete %s: %s"
msgstr "не могу да обришем „%s“: %s"
-#: dlltool.c:3128
+#: dlltool.c:3039
msgid "Created lib file"
msgstr "Ðаправљена је библ датотека"
-#: dlltool.c:3334
+#: dlltool.c:3245
#, c-format
msgid "Can't open .lib file: %s: %s"
msgstr "Ðе могу да отворим датотеку „.lib“: %s: %s"
-#: dlltool.c:3342 dlltool.c:3364
+#: dlltool.c:3253 dlltool.c:3275
#, c-format
msgid "%s is not a library"
msgstr "%s није библиотека"
-#: dlltool.c:3382
+#: dlltool.c:3293
#, c-format
msgid "Import library `%s' specifies two or more dlls"
msgstr "Библиотека увоза „%s“ наводи два или више ДЛЛ-а"
-#: dlltool.c:3393
+#: dlltool.c:3304
#, c-format
msgid "Unable to determine dll name for `%s' (not an import library?)"
msgstr "Ðе могу да одредим длл назив за „%s“ (није библиотека увоза?)"
-#: dlltool.c:3619
+#: dlltool.c:3521
#, c-format
msgid "Warning, ignoring duplicate EXPORT %s %d,%d"
msgstr "Упозорење, занемарујем двоÑтруко ИЗВОЗ %s %d,%d"
-#: dlltool.c:3625
+#: dlltool.c:3527
#, c-format
msgid "Error, duplicate EXPORT with ordinals: %s"
msgstr "Грешка двоÑтруки ИЗВОЗ Ñа редним бројевима: %s"
-#: dlltool.c:3730
+#: dlltool.c:3632
msgid "Processing definitions"
msgstr "Обрађујем одреднице"
-#: dlltool.c:3762
+#: dlltool.c:3664
msgid "Processed definitions"
msgstr "Обрађене одреднице"
#. xgetext:c-format
-#: dlltool.c:3769 dllwrap.c:477
+#: dlltool.c:3671 dllwrap.c:477
#, c-format
msgid "Usage %s <option(s)> <object-file(s)>\n"
msgstr "Употреба %s <опције> <датотека-објкета>\n"
#. xgetext:c-format
-#: dlltool.c:3771
+#: dlltool.c:3673
#, c-format
msgid " -m --machine <machine> Create as DLL for <machine>. [default: %s]\n"
msgstr " -m --machine <машина> Прави као ДЛЛ за <машину>. [оÑновно је: %s]\n"
-#: dlltool.c:3772
+#: dlltool.c:3674
#, c-format
msgid " possible <machine>: arm[_interwork], arm64, i386, mcore[-elf]{-le|-be}, thumb\n"
msgstr " могућа <машина>: arm[_interwork], arm64, i386, mcore[-elf]{-le|-be}, thumb\n"
-#: dlltool.c:3773
+#: dlltool.c:3675
#, c-format
msgid " -e --output-exp <outname> Generate an export file.\n"
msgstr " -e --output-exp <назив-излаза> Ствара датотеку извоза.\n"
-#: dlltool.c:3774
+#: dlltool.c:3676
#, c-format
msgid " -l --output-lib <outname> Generate an interface library.\n"
msgstr " -l --output-lib <назив-излаза> Ствара библиотеку Ñучеља.\n"
-#: dlltool.c:3775
+#: dlltool.c:3677
#, c-format
msgid " -y --output-delaylib <outname> Create a delay-import library.\n"
msgstr " -y --output-delaylib <назив-излаза> Ствара библиотеку кашњења-увоза.\n"
-#: dlltool.c:3776
+#: dlltool.c:3678
#, c-format
msgid " --deterministic-libraries\n"
msgstr " --deterministic-libraries\n"
-#: dlltool.c:3778
+#: dlltool.c:3680
#, c-format
msgid " Use zero for timestamps and uids/gids in output libraries (default)\n"
msgstr " КориÑти нулу за временÑке ознаке и уид-е/гид-е у излазним библиотекама (оÑновно)\n"
-#: dlltool.c:3780
+#: dlltool.c:3682
#, c-format
msgid " Use zero for timestamps and uids/gids in output libraries\n"
msgstr " КориÑти нулу за временÑке ознаке и уид-е/гид-е у излазним библиотекама\n"
-#: dlltool.c:3781
+#: dlltool.c:3683
#, c-format
msgid " --non-deterministic-libraries\n"
msgstr " --non-deterministic-libraries\n"
-#: dlltool.c:3783
+#: dlltool.c:3685
#, c-format
msgid " Use actual timestamps and uids/gids in output libraries\n"
msgstr " КориÑти Ñтварне временÑке ознаке и уид-е/гид-е у излазним библиотекама\n"
-#: dlltool.c:3785
+#: dlltool.c:3687
#, c-format
msgid " Use actual timestamps and uids/gids in output libraries (default)\n"
msgstr " КориÑти Ñтварне временÑке ознаке и уид-е/гид-е у излазним библиотекама (оÑновно)\n"
-#: dlltool.c:3786
+#: dlltool.c:3688
#, c-format
msgid " -a --add-indirect Add dll indirects to export file.\n"
msgstr " -a --add-indirect Додаје „длл“ поÑредно у датотеку извоза.\n"
-#: dlltool.c:3787
+#: dlltool.c:3689
#, c-format
msgid " -D --dllname <name> Name of input dll to put into interface lib.\n"
msgstr " -D --dllname <назив> Ðазив улазне длл за Ñтављање у библиотеку Ñучеља.\n"
-#: dlltool.c:3788
+#: dlltool.c:3690
#, c-format
msgid " -d --input-def <deffile> Name of .def file to be read in.\n"
msgstr " -d --input-def <дефотека> Ðазив „.def“ датотеке за читање.\n"
-#: dlltool.c:3789
+#: dlltool.c:3691
#, c-format
msgid " -z --output-def <deffile> Name of .def file to be created.\n"
msgstr " -z --output-def <дефотека> Ðазив „.def“ датотеке за Ñтварање.\n"
-#: dlltool.c:3790
+#: dlltool.c:3692
#, c-format
msgid " --export-all-symbols Export all symbols to .def\n"
msgstr " --export-all-symbols Извози Ñве Ñимболе у „.def“\n"
-#: dlltool.c:3791
+#: dlltool.c:3693
#, c-format
msgid " --no-export-all-symbols Only export listed symbols\n"
msgstr " --no-export-all-symbols Извози Ñамо иÑпиÑане Ñимболе\n"
-#: dlltool.c:3792
+#: dlltool.c:3694
#, c-format
msgid " --exclude-symbols <list> Don't export <list>\n"
msgstr " --exclude-symbols <ÑпиÑак> Ðе извози <ÑпиÑак>\n"
-#: dlltool.c:3793
+#: dlltool.c:3695
#, c-format
msgid " --no-default-excludes Clear default exclude symbols\n"
msgstr " --no-default-excludes ЧиÑти оÑновне Ñимболе иÑкључивања\n"
-#: dlltool.c:3794
+#: dlltool.c:3696
#, c-format
msgid " -b --base-file <basefile> Read linker generated base file.\n"
msgstr " -b --base-file <fichier_base> Чита датотеку оÑнове Ñтворену Ñвезивачем.\n"
-#: dlltool.c:3795
+#: dlltool.c:3697
#, c-format
msgid " -x --no-idata4 Don't generate idata$4 section.\n"
msgstr " -x --no-idata4 Ðе прави одељак „idata$4“.\n"
-#: dlltool.c:3796
+#: dlltool.c:3698
#, c-format
msgid " -c --no-idata5 Don't generate idata$5 section.\n"
msgstr " -c --no-idata5 Ðе прави одељак „idata$5“.\n"
-#: dlltool.c:3797
+#: dlltool.c:3699
#, c-format
msgid " --use-nul-prefixed-import-tables Use zero prefixed idata$4 and idata$5.\n"
msgstr " --use-nul-prefixed-import-tables КориÑти „idata$4“ и „idata$5“ Ñа префикÑом нуле.\n"
-#: dlltool.c:3798
+#: dlltool.c:3700
#, c-format
msgid " -U --add-underscore Add underscores to all symbols in interface library.\n"
msgstr " -U --add-underscore Додаје подвлаке Ñвим Ñимболима у библиотеци Ñучеља.\n"
-#: dlltool.c:3799
+#: dlltool.c:3701
#, c-format
msgid " --add-stdcall-underscore Add underscores to stdcall symbols in interface library.\n"
msgstr " --add-stdcall-underscore Додаје подвлаке Ñимболима Ñтандардног позива у библиотеци Ñучеља.\n"
-#: dlltool.c:3800
+#: dlltool.c:3702
#, c-format
msgid " --no-leading-underscore All symbols shouldn't be prefixed by an underscore.\n"
msgstr " --no-leading-underscore Сви Ñимболи не требају имати подвлаку као префикÑ.\n"
-#: dlltool.c:3801
+#: dlltool.c:3703
#, c-format
msgid " --leading-underscore All symbols should be prefixed by an underscore.\n"
msgstr " --leading-underscore Сви Ñимболи требају имати подвлаку као префикÑ.\n"
-#: dlltool.c:3802
+#: dlltool.c:3704
#, c-format
msgid " -k --kill-at Kill @<n> from exported names.\n"
msgstr " -k --kill-at Убија @<n> из извезених назива.\n"
-#: dlltool.c:3803
+#: dlltool.c:3705
#, c-format
msgid " -A --add-stdcall-alias Add aliases without @<n>.\n"
msgstr " -A --add-stdcall-alias Додаје пÑеудониме без @<n>.\n"
-#: dlltool.c:3804
+#: dlltool.c:3706
#, c-format
msgid " -p --ext-prefix-alias <prefix> Add aliases with <prefix>.\n"
msgstr " -p --axd-prefix-alias <префикÑ> Додаје пÑеудониме Ñа <префикÑом>.\n"
-#: dlltool.c:3805
+#: dlltool.c:3707
#, c-format
msgid " -S --as <name> Use <name> for assembler.\n"
msgstr " -S --as <назив> КориÑти <назив> за аÑемблера.\n"
-#: dlltool.c:3806
+#: dlltool.c:3708
#, c-format
msgid " -f --as-flags <flags> Pass <flags> to the assembler.\n"
msgstr " -f --as-flags <опције> ПроÑлеђује <опције> у аÑемблер.\n"
-#: dlltool.c:3807
+#: dlltool.c:3709
#, c-format
msgid " -C --compat-implib Create backward compatible import library.\n"
msgstr " -C --compat-implib Ствара повратно ÑаглаÑну библиотеку увоза.\n"
-#: dlltool.c:3808
+#: dlltool.c:3710
#, c-format
msgid " -n --no-delete Keep temp files (repeat for extra preservation).\n"
msgstr " -n --no-delete Задржава привремене датотеке (понавља зарад додатнпог очувања).\n"
-#: dlltool.c:3809
+#: dlltool.c:3711
#, c-format
msgid " -t --temp-prefix <prefix> Use <prefix> to construct temp file names.\n"
msgstr " -t --temp-prefix <префикÑ> КориÑти <префикÑ> да изгради називе привремених датотека.\n"
-#: dlltool.c:3810
+#: dlltool.c:3712
#, c-format
msgid " -I --identify <implib> Report the name of the DLL associated with <implib>.\n"
msgstr " -I --identify <библувз> Даје назив ДЛЛ-а придруженог <библувз>-а.\n"
-#: dlltool.c:3811
+#: dlltool.c:3713
#, c-format
msgid " --identify-strict Causes --identify to report error when multiple DLLs.\n"
msgstr " --identify-strict Доводи до тога да „--identify“ да грешку када има више ДЛЛ-а.\n"
-#: dlltool.c:3812
+#: dlltool.c:3714
#, c-format
msgid " -v --verbose Be verbose.\n"
msgstr " -v --verbose Бива опширан.\n"
-#: dlltool.c:3813
+#: dlltool.c:3715
#, c-format
msgid " -V --version Display the program version.\n"
msgstr " -V --version Приказује издање програма.\n"
-#: dlltool.c:3814
+#: dlltool.c:3716
#, c-format
msgid " -h --help Display this information.\n"
msgstr " -h --help Приказује ове податке.\n"
-#: dlltool.c:3815
+#: dlltool.c:3717
#, c-format
msgid " @<file> Read options from <file>.\n"
msgstr " @<датотека> Чита опције из <датотеке>.\n"
-#: dlltool.c:3817
+#: dlltool.c:3719
#, c-format
msgid " -M --mcore-elf <outname> Process mcore-elf object files into <outname>.\n"
msgstr " -M --mcore-elf <излзназив> Обрађује „mcore-elf“ датотеке предмета у <излзназив>.\n"
-#: dlltool.c:3818
+#: dlltool.c:3720
#, c-format
msgid " -L --linker <name> Use <name> as the linker.\n"
msgstr " -L --linker <назив> КориÑти <назив> као Ñвезивача.\n"
-#: dlltool.c:3819
+#: dlltool.c:3721
#, c-format
msgid " -F --linker-flags <flags> Pass <flags> to the linker.\n"
msgstr " -F --linker-flags <опције> ПроÑлеђује <опције> до Ñвезивача.\n"
-#: dlltool.c:3969
+#: dlltool.c:3871
#, c-format
msgid "Unable to open def-file: %s"
msgstr "Ðе могу да отворим датотеку одреднице: %s"
-#: dlltool.c:3974
+#: dlltool.c:3876
#, c-format
msgid "Path components stripped from dllname, '%s'."
msgstr "СаÑтојци путање Ñу иÑцепљени из дллназива, „%s“."
-#: dlltool.c:4022
+#: dlltool.c:3924
#, c-format
msgid "Unable to open base-file: %s"
msgstr "Ðе могу да отворим оÑновну датотеку: %s"
-#: dlltool.c:4060
+#: dlltool.c:3962
#, c-format
msgid "Machine '%s' not supported"
msgstr "Machine „%s“ није подржана"
-#: dlltool.c:4159
+#: dlltool.c:4063
#, c-format
msgid "Warning, machine type (%d) not supported for delayimport."
msgstr "Упозорење, врÑта машине (%d) није подржана за кашњење-увоза."
-#: dlltool.c:4227 dllwrap.c:206
+#: dlltool.c:4131 dllwrap.c:206
#, c-format
msgid "Tried file: %s"
msgstr "Покушах датотеку: %s"
-#: dlltool.c:4234 dllwrap.c:213
+#: dlltool.c:4138 dllwrap.c:213
#, c-format
msgid "Using file: %s"
msgstr "КориÑтим датотеку: %s"
@@ -1861,7 +1861,7 @@ msgstr "Кодирана величина %d је превелика за чит
msgid "Encoded size of 0 is too small to read\n"
msgstr "Кодирана величина 0 је премала за читање\n"
-#: dwarf.c:263 readelf.c:3921 readelf.c:12029
+#: dwarf.c:263 readelf.c:3943 readelf.c:12059
msgid "unknown"
msgstr "непознато"
@@ -1881,7 +1881,7 @@ msgstr[0] "унутрашња грешка: покушах да прочитам
msgstr[1] "унутрашња грешка: покушах да прочитам %d бајта података у променљивој величине %d"
msgstr[2] "унутрашња грешка: покушах да прочитам %d бајтова података у променљивој величине %d"
-#: dwarf.c:430 dwarf.c:5553
+#: dwarf.c:430 dwarf.c:5574
msgid "Badly formed extended line op encountered!\n"
msgstr "Дошло је до лоше обликованог проширеноиг оп реда!\n"
@@ -1914,7 +1914,7 @@ msgstr "подешава адреÑу на %#<PRIx64>\n"
msgid "define new File Table entry\n"
msgstr "одређује нови ÑƒÐ½Ð¾Ñ Ñ‚Ð°Ð±ÐµÐ»Ðµ датотека\n"
-#: dwarf.c:463 dwarf.c:4826
+#: dwarf.c:463 dwarf.c:4847
#, c-format
msgid " Entry\tDir\tTime\tSize\tName\n"
msgstr " Улазни дир\tВреме\tВеличина\tÐазив\n"
@@ -1961,7 +1961,7 @@ msgstr "<нема одељка „.debug_str“>"
msgid "DW_FORM_strp offset too big: %#<PRIx64>\n"
msgstr "померај „DW_FORM_strp“ је превелик: %#<PRIx64>\n"
-#: dwarf.c:598 dwarf.c:625 dwarf.c:1797
+#: dwarf.c:598 dwarf.c:625 dwarf.c:1796
msgid "<offset is too big>"
msgstr "<померај је превелик>"
@@ -2003,444 +2003,444 @@ msgstr "Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð¸Ñке %#<PRIu64> претвара Ñе у помера
msgid "<string index too big>"
msgstr "<Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð¸Ñке је превелик>"
-#: dwarf.c:683
+#: dwarf.c:682
#, c-format
msgid "indirect offset too big: %#<PRIx64>\n"
msgstr "поÑредни померај је превелик: %#<PRIx64>\n"
-#: dwarf.c:684
+#: dwarf.c:683
msgid "<indirect index offset is too big>"
msgstr "<померај поÑредног индекÑа је превелик>"
-#: dwarf.c:694
+#: dwarf.c:693
msgid "<no NUL byte at end of section>"
msgstr "<нема NUL бајта на крају одељка>"
-#: dwarf.c:706
+#: dwarf.c:705
msgid "Cannot fetch indexed address: the .debug_addr section is missing\n"
msgstr "Ðе могу да довучем индекÑирану адреÑу: недоÑтаје „.debug_addr“ одељак\n"
-#: dwarf.c:712
+#: dwarf.c:711
#, c-format
msgid "Offset into section %s too big: %#<PRIx64>\n"
msgstr "Померај у одељку „%s“ је превелик: %#<PRIx64>\n"
-#: dwarf.c:740
+#: dwarf.c:739
#, c-format
msgid "Unable to locate %s section\n"
msgstr "Ðе могу да пронађем одељак „%s“\n"
-#: dwarf.c:746
+#: dwarf.c:745
#, c-format
msgid "Section %s is too small to contain an value indexed from another section!\n"
msgstr "Одељак „%s“ је премали да Ñадржи вредноÑÑ‚ индекÑирану из другог одељка!\n"
-#: dwarf.c:753
+#: dwarf.c:752
#, c-format
msgid "Offset of %#<PRIx64> is too big for section %s\n"
msgstr "Померај %#<PRIx64> је превелик за одељак „%s“\n"
#. Report the missing single zero which ends the section.
-#: dwarf.c:1028
+#: dwarf.c:1027
#, c-format
msgid "%s section not zero terminated\n"
msgstr "Одељак „%s“ није окончан нулом\n"
#. PR 17531: file:4bcd9ce9.
-#: dwarf.c:1055
+#: dwarf.c:1054
#, c-format
msgid "Debug info is corrupted, abbrev size (%#<PRIx64>) is larger than abbrev section size (%#<PRIx64>)\n"
msgstr "Подаци прочишћавања Ñу оштећени, величина Ñкраћења (%#<PRIx64>) је већи од величине одељка Ñкраћења (%#<PRIx64>)\n"
-#: dwarf.c:1062
+#: dwarf.c:1061
#, c-format
msgid "Debug info is corrupted, abbrev offset (%#<PRIx64>) is larger than abbrev section size (%#<PRIx64>)\n"
msgstr "Подаци прочишћавања Ñу оштећени, померај Ñкраћења (%#<PRIx64>) је већи од величине одељка Ñкраћења (%#<PRIx64>)\n"
-#: dwarf.c:1095
+#: dwarf.c:1094
#, c-format
msgid "User TAG value: %#<PRIx64>"
msgstr "ВредноÑÑ‚ кориÑничке ОЗÐÐКЕ: %#<PRIx64>"
-#: dwarf.c:1098
+#: dwarf.c:1097
#, c-format
msgid "Unknown TAG value: %#<PRIx64>"
msgstr "Ðепозната вредноÑÑ‚ ОЗÐÐКЕ: %#<PRIx64>"
-#: dwarf.c:1119
+#: dwarf.c:1118
#, c-format
msgid "Unknown FORM value: %lx"
msgstr "Ðепозната вредноÑÑ‚ ОБЛИКÐ: %lx"
-#: dwarf.c:1137
+#: dwarf.c:1136
#, c-format
msgid "Unknown IDX value: %lx"
msgstr "Ðепозната вредноÑÑ‚ ИÐДЕКСÐ: %lx"
-#: dwarf.c:1151
+#: dwarf.c:1150
#, c-format
msgid "%c%<PRIu64> byte block: "
msgstr "%c%<PRIu64> бајта блок: "
-#: dwarf.c:1488
+#: dwarf.c:1487
#, c-format
msgid "(DW_OP_call_ref in frame info)"
msgstr "(„DW_OP_call_ref“ у подацима оквира)"
-#: dwarf.c:1511
+#: dwarf.c:1510
#, c-format
msgid "size: %<PRIu64> "
msgstr "величина: %<PRIu64> "
-#: dwarf.c:1513
+#: dwarf.c:1512
#, c-format
msgid "offset: %<PRIu64> "
msgstr "померај: %<PRIu64> "
-#: dwarf.c:1529
+#: dwarf.c:1528
#, c-format
msgid "DW_OP_GNU_push_tls_address or DW_OP_HP_unknown"
msgstr "„DW_OP_GNU_push_tls_address“ или „DW_OP_HP_unknown“"
-#: dwarf.c:1554
+#: dwarf.c:1553
#, c-format
msgid "(%s in frame info)"
msgstr "(„%s“ у подацима оквира)"
-#: dwarf.c:1657
+#: dwarf.c:1656
#, c-format
msgid "(DW_OP_GNU_variable_value in frame info)"
msgstr "(„DW_OP_GNU_variable_value“ у подацима оквира)"
-#: dwarf.c:1710
+#: dwarf.c:1709
#, c-format
msgid "(User defined location op %#x)"
msgstr "(Оп меÑта који је одредио кориÑник %#x)"
-#: dwarf.c:1712
+#: dwarf.c:1711
#, c-format
msgid "(Unknown location op %#x)"
msgstr "(Ðепознат оп меÑта %#x)"
-#: dwarf.c:1766
+#: dwarf.c:1765
msgid "<no links available>"
msgstr "<нема доÑтупних веза>"
-#: dwarf.c:1790
+#: dwarf.c:1789
msgid "<no NUL byte at end of alt .debug_str section>"
msgstr "<нема NUL бајта на крају одељка „alt .debug_str“>"
-#: dwarf.c:1795
+#: dwarf.c:1794
#, c-format
msgid "DW_FORM_GNU_strp_alt offset (%#<PRIx64>) too big or no string sections available\n"
msgstr "Померај „DW_FORM_GNU_strp_alt“ (%#<PRIx64>) је превелик или није доÑтупна ниједна ниÑка одељака\n"
-#: dwarf.c:1818
+#: dwarf.c:1817
#, c-format
msgid "Unknown AT value: %lx"
msgstr "Ðепозната ÐТ вредноÑÑ‚: %lx"
-#: dwarf.c:1884
+#: dwarf.c:1883
#, c-format
msgid "Corrupt attribute block length: %#<PRIx64>\n"
msgstr "Оштећена дужина блока атрибута: %#<PRIx64>\n"
-#: dwarf.c:2066
+#: dwarf.c:2055
#, c-format
-msgid "Unable to resolve ref_addr form: uvalue %lx > section size %<PRIx64> (%s)\n"
-msgstr "Ðе могу да решим „ref_addr“ образац: uvalue %lx > величине одељка %<PRIx64> (%s)\n"
+msgid "Unable to resolve ref_addr form: uvalue %<PRIx64> >= section size %<PRIx64> (%s)\n"
+msgstr "Ðе могу да решим „ref_addr“ образац: uvalue %<PRIx64> >= величина одељка %<PRIx64> (%s)\n"
-#: dwarf.c:2085
+#: dwarf.c:2074
#, c-format
-msgid "Unable to resolve ref form: uvalue %lx + cu_offset %<PRIx64> > CU size %tx\n"
-msgstr "Ðе могу да решим образац „ref“: uvalue %lx + cu_offset %<PRIx64> > CU величине %tx\n"
+msgid "Unable to resolve ref form: uvalue %<PRIx64> + cu_offset %<PRIx64> > CU size %tx\n"
+msgstr "Ðе могу да решим образац: uvalue %<PRIx64> + cu_offset %<PRIx64> > CU величине %tx\n"
-#: dwarf.c:2096
+#: dwarf.c:2085
#, c-format
msgid "Unexpected form %lx encountered whilst finding abbreviation for type\n"
msgstr "Ðађох неочекивани образац %lx док Ñам тражио Ñкраћеницу за врÑту\n"
-#: dwarf.c:2105
+#: dwarf.c:2093
#, c-format
-msgid "Unable to find abbreviations for CU offset %#lx\n"
-msgstr "Ðе могу да нађем Ñкраћенице за померај процеÑора %#lx\n"
+msgid "Unable to find abbreviations for CU offset %<PRIx64>\n"
+msgstr "Ðе могу да нађем Ñкраћенице за померај процеÑора %<PRIx64>\n"
-#: dwarf.c:2110
+#: dwarf.c:2099
#, c-format
-msgid "Empty abbreviation list encountered for CU offset %lx\n"
-msgstr "Ðаиђох на празан ÑпиÑак Ñкраћеница за померај процеÑора %lx\n"
+msgid "Empty abbreviation list encountered for CU offset %<PRIx64>\n"
+msgstr "Ðаиђох на празан ÑпиÑак Ñкраћеница за померај процеÑора %<PRIx64>\n"
-#: dwarf.c:2135
+#: dwarf.c:2131
#, c-format
msgid "Unable to find entry for abbreviation %lu\n"
msgstr "Ðе могу да нађем ÑƒÐ½Ð¾Ñ Ð·Ð° Ñкраћеницу %lu\n"
-#: dwarf.c:2289
+#: dwarf.c:2285
msgid "corrupt discr_list - not using a block form\n"
msgstr "оштећен је „discr_list“ – не кориÑтим облик блока\n"
-#: dwarf.c:2296
+#: dwarf.c:2292
msgid "corrupt discr_list - block not long enough\n"
msgstr "оштећен „discr_list“ – блок није довољно дуг\n"
-#: dwarf.c:2331
+#: dwarf.c:2327
#, c-format
msgid "corrupt discr_list - unrecognized discriminant byte %#x\n"
msgstr "оштећен „discr_list“ – непознат диÑкриминантни бајт %#x\n"
-#: dwarf.c:2405
+#: dwarf.c:2426
#, c-format
msgid "implementation defined: %#<PRIx64>"
msgstr "дефиниÑана примена: %#<PRIx64>"
-#: dwarf.c:2407
+#: dwarf.c:2428
#, c-format
msgid "unknown: %#<PRIx64>"
msgstr "непознато: %#<PRIx64>"
-#: dwarf.c:2438
+#: dwarf.c:2459
msgid "Corrupt attribute\n"
msgstr "Оштећен атрибут\n"
-#: dwarf.c:2461
+#: dwarf.c:2482
msgid "Internal error: DW_FORM_ref_addr is not supported in DWARF version 1.\n"
msgstr "Унутрашња грешка: „DW_FORM_ref_addr“ није подржано у „DWARF“-у издања 1.\n"
-#: dwarf.c:2655
+#: dwarf.c:2676
msgid "Block ends prematurely\n"
msgstr "Блок је прерано завршио\n"
#. We have already displayed the form name.
-#: dwarf.c:2690 dwarf.c:2703 dwarf.c:2727
+#: dwarf.c:2711 dwarf.c:2724 dwarf.c:2748
#, c-format
msgid "%c(offset: %#<PRIx64>): %s"
msgstr "%c(померај: %#<PRIx64>): %s"
-#: dwarf.c:2693
+#: dwarf.c:2714
#, c-format
msgid "%c(indirect string, offset: %#<PRIx64>): %s"
msgstr "%c(поÑредна ниÑка, померај: %#<PRIx64>): %s"
-#: dwarf.c:2706
+#: dwarf.c:2727
#, c-format
msgid "%c(indirect line string, offset: %#<PRIx64>): %s"
msgstr "%c(поÑредна ниÑка реда, померај: %#<PRIx64>): %s"
-#: dwarf.c:2730
+#: dwarf.c:2751
#, c-format
msgid "%c(indexed string: %#<PRIx64>): %s"
msgstr "%c(индекÑирана ниÑка: %#<PRIx64>): %s"
#. We have already displayed the form name.
-#: dwarf.c:2740
+#: dwarf.c:2761
#, c-format
msgid "%c(offset: %#<PRIx64>) %s"
msgstr "%c(померај: %#<PRIx64>) %s"
-#: dwarf.c:2743
+#: dwarf.c:2764
#, c-format
msgid "%c(alt indirect string, offset: %#<PRIx64>) %s"
msgstr "%c(поÑредна ниÑка алт, померај: %#<PRIx64>) %s"
-#: dwarf.c:2802
+#: dwarf.c:2823
#, c-format
msgid "loc_offset %<PRIu64> too big\n"
msgstr "„loc_offset“ %<PRIu64> је превелико\n"
-#: dwarf.c:2832
+#: dwarf.c:2853
#, c-format
msgid "%c(index: %#<PRIx64>): %#<PRIx64>"
msgstr "%c(индекÑ: %#<PRIx64>): %#<PRIx64>"
-#: dwarf.c:2843
+#: dwarf.c:2864
#, c-format
msgid "Unrecognized form: %#lx\n"
msgstr "Ðепознат облик: %#lx\n"
-#: dwarf.c:2857
+#: dwarf.c:2878
#, c-format
msgid "CU @ %#<PRIx64> has multiple loclists_base values (%#<PRIx64> and %#<PRIx64>)\n"
msgstr "CU @ %#<PRIx64> имаше негативну вредноÑÑ‚ „loclists_base“ (%#<PRIx64> и %#<PRIx64>)\n"
-#: dwarf.c:2864
+#: dwarf.c:2885
#, c-format
msgid "CU @ %#<PRIx64> has has a negative loclists_base value of %#<PRIx64> - treating as zero\n"
msgstr "CU @ %#<PRIx64> имаше негативну вредноÑÑ‚ „loclists_base“ од %#<PRIx64> – Ñматрам то нулом\n"
-#: dwarf.c:2878
+#: dwarf.c:2899
#, c-format
msgid "CU @ %#<PRIx64> has multiple str_offsets_base values %#<PRIx64> and %#<PRIx64>)\n"
msgstr "CU @ %#<PRIx64> има неколико вредноÑти „str_offsets_base“ (%#<PRIx64> и %#<PRIx64>)\n"
-#: dwarf.c:2885
+#: dwarf.c:2906
#, c-format
msgid "CU @ %#<PRIx64> has has a negative stroffsets_base value of %#<PRIx64> - treating as zero\n"
msgstr "CU @ %#<PRIx64> имаше негативну вредноÑÑ‚ „stroffsets_base“ од %#<PRIx64> – Ñматрам то нулом\n"
-#: dwarf.c:2953
+#: dwarf.c:2974
msgid "More location offset attributes than DW_AT_GNU_locview attributes\n"
msgstr "Има више атрибута помераја меÑта него „DW_AT_GNU_locview“ атрибута\n"
-#: dwarf.c:2964
+#: dwarf.c:2985
#, c-format
msgid "The number of views (%u) is greater than the number of locations (%u)\n"
msgstr "Померај „GOT“ Ñимбола (%u) је већи од броја меÑта (%u)\n"
-#: dwarf.c:2971
+#: dwarf.c:2992
msgid "More DW_AT_GNU_locview attributes than location offset attributes\n"
msgstr "Има више „DW_AT_GNU_locview“ атрибута него атрибута помераја меÑта\n"
-#: dwarf.c:3060 dwarf.c:3094 dwarf.c:3109
+#: dwarf.c:3081 dwarf.c:3115 dwarf.c:3130
#, c-format
msgid "Unsupported form (%s) for attribute %s\n"
msgstr "Ðеподржан облик (%s) за атрибут „%s“\n"
-#: dwarf.c:3156
+#: dwarf.c:3177
#, c-format
msgid "(not inlined)"
msgstr "(није надовезано)"
-#: dwarf.c:3159
+#: dwarf.c:3180
#, c-format
msgid "(inlined)"
msgstr "(надовезано)"
-#: dwarf.c:3162
+#: dwarf.c:3183
#, c-format
msgid "(declared as inline but ignored)"
msgstr "(објављено као надовезујуће али занемарено)"
-#: dwarf.c:3165
+#: dwarf.c:3186
#, c-format
msgid "(declared as inline and inlined)"
msgstr "(објављено као надовезујуће и надовезано)"
-#: dwarf.c:3168
+#: dwarf.c:3189
#, c-format
msgid " (Unknown inline attribute value: %#<PRIx64>)"
msgstr " (Ðепозната вредноÑÑ‚ оÑобине надовезујућег: %#<PRIx64>)"
-#: dwarf.c:3220
+#: dwarf.c:3241
#, c-format
msgid "(user defined type)"
msgstr "(кориÑник је одредио врÑту)"
-#: dwarf.c:3222
+#: dwarf.c:3243
#, c-format
msgid "(unknown type)"
msgstr "(непозната врÑта)"
-#: dwarf.c:3235
+#: dwarf.c:3256
#, c-format
msgid "(unknown accessibility)"
msgstr "(непозната приÑтупачноÑÑ‚)"
-#: dwarf.c:3247
+#: dwarf.c:3268
#, c-format
msgid "(unknown visibility)"
msgstr "(непозната видљивоÑÑ‚)"
-#: dwarf.c:3260
+#: dwarf.c:3281
#, c-format
msgid "(user specified)"
msgstr "(кориÑник је навео)"
-#: dwarf.c:3262
+#: dwarf.c:3283
#, c-format
msgid "(unknown endianity)"
msgstr "(непозната крајноÑÑ‚)"
-#: dwarf.c:3274
+#: dwarf.c:3295
#, c-format
msgid "(unknown virtuality)"
msgstr "(непозната виртуалноÑÑ‚)"
-#: dwarf.c:3286
+#: dwarf.c:3307
#, c-format
msgid "(unknown case)"
msgstr "(непозната величина Ñлова)"
-#: dwarf.c:3304
+#: dwarf.c:3325
#, c-format
msgid "(user defined)"
msgstr "(кориÑник је одредио)"
-#: dwarf.c:3306
+#: dwarf.c:3327
#, c-format
msgid "(unknown convention)"
msgstr "(непознат одоговор)"
-#: dwarf.c:3315
+#: dwarf.c:3336
#, c-format
msgid "(undefined)"
msgstr "(неодређено)"
-#: dwarf.c:3325
+#: dwarf.c:3346
#, c-format
msgid "(unsigned)"
msgstr "(неозначено)"
-#: dwarf.c:3326
+#: dwarf.c:3347
#, c-format
msgid "(leading overpunch)"
msgstr "(водеће пребушавање)"
-#: dwarf.c:3327
+#: dwarf.c:3348
#, c-format
msgid "(trailing overpunch)"
msgstr "(пратеће пребушавање)"
-#: dwarf.c:3328
+#: dwarf.c:3349
#, c-format
msgid "(leading separate)"
msgstr "(водећи раздвојник)"
-#: dwarf.c:3329
+#: dwarf.c:3350
#, c-format
msgid "(trailing separate)"
msgstr "(пратећи раздвојник)"
-#: dwarf.c:3330 dwarf.c:3341
+#: dwarf.c:3351 dwarf.c:3362
#, c-format
msgid "(unrecognised)"
msgstr "(непрепознато)"
-#: dwarf.c:3338
+#: dwarf.c:3359
#, c-format
msgid "(no)"
msgstr "(не)"
-#: dwarf.c:3339
+#: dwarf.c:3360
#, c-format
msgid "(in class)"
msgstr "(у клаÑи)"
-#: dwarf.c:3340
+#: dwarf.c:3361
#, c-format
msgid "(out of class)"
msgstr "(ван клаÑе)"
-#: dwarf.c:3379
+#: dwarf.c:3400
#, c-format
msgid " (location list)"
msgstr " (ÑпиÑак меÑта)"
-#: dwarf.c:3402 dwarf.c:6809 dwarf.c:7011 dwarf.c:7186
+#: dwarf.c:3423 dwarf.c:6830 dwarf.c:7032 dwarf.c:7207
#, c-format
msgid " [without DW_AT_frame_base]"
msgstr " [без „DW_AT_frame_base“]"
-#: dwarf.c:3432
+#: dwarf.c:3453
#, c-format
msgid "Offset %#<PRIx64> used as value for DW_AT_import attribute of DIE at offset %#tx is too big.\n"
msgstr "Померај %#<PRIx64> коришћен као вредноÑÑ‚ за DW_AT_import атрибут DIE-а на померају %#tx је превелик.\n"
-#: dwarf.c:3438
+#: dwarf.c:3459
#, c-format
msgid "\t[Abbrev Number: %ld"
msgstr "\t[Број Ñкраћенице: %ld"
-#: dwarf.c:3533
+#: dwarf.c:3554
#, c-format
msgid ""
"Raw dump of debug contents of section %s (loaded from %s):\n"
@@ -2449,7 +2449,7 @@ msgstr ""
"Сирови избачај Ñадржаја прочишћавања одељка %s (учитано из %s):\n"
"\n"
-#: dwarf.c:3536
+#: dwarf.c:3557
#, c-format
msgid ""
"Raw dump of debug contents of section %s:\n"
@@ -2458,7 +2458,7 @@ msgstr ""
"Сирови избачај Ñадржаја прочишћавања одељка %s:\n"
"\n"
-#: dwarf.c:3541
+#: dwarf.c:3562
#, c-format
msgid ""
"Contents of the %s section (loaded from %s):\n"
@@ -2467,7 +2467,7 @@ msgstr ""
"Садржај одељка %s (учитано из %s):\n"
"\n"
-#: dwarf.c:3544
+#: dwarf.c:3565
#, c-format
msgid ""
"Contents of the %s section:\n"
@@ -2476,203 +2476,203 @@ msgstr ""
"Садржај одељка %s:\n"
"\n"
-#: dwarf.c:3671
+#: dwarf.c:3692
msgid "Unexpected form in top DIE\n"
msgstr "Ðеочекиван облик у горњем DIE\n"
-#: dwarf.c:3706
+#: dwarf.c:3727
msgid "Unexpected form of DW_AT_rnglists_base in the top DIE\n"
msgstr "Ðеочекиван облик „DW_AT_rnglists_base“ у горњрм DIE\n"
-#: dwarf.c:3717
+#: dwarf.c:3738
msgid "Unexpected form of DW_AT_addr_base in the top DIE\n"
msgstr "Ðеочекиван облик „DW_AT_addr_base“ у горњем DIE\n"
-#: dwarf.c:3764
+#: dwarf.c:3785
#, c-format
msgid "Reserved length value (%#<PRIx64>) found in section %s\n"
msgstr "РезервиÑана вредноÑÑ‚ дужине (%#<PRIx64>) је пронађена у одељку %s\n"
-#: dwarf.c:3774
+#: dwarf.c:3795
#, c-format
msgid "Corrupt unit length (got %#<PRIx64> expected at most %#tx) in section %s\n"
msgstr "Оштећена дужина јединице (добих %#<PRIx64>, очекивах барем %#tx) у одељку %s\n"
-#: dwarf.c:3784
+#: dwarf.c:3805
#, c-format
msgid "No comp units in %s section ?\n"
msgstr "Ðема јединица поређења у одељку %s ?\n"
-#: dwarf.c:3798
+#: dwarf.c:3819
#, c-format
msgid "Not enough memory for a debug info array of %u entries\n"
msgstr "Ðема довољно меморије за низ података прочишћавања од %u уноÑа\n"
-#: dwarf.c:3832
+#: dwarf.c:3853
#, c-format
msgid "Unable to locate %s section!\n"
msgstr "Ðе могу да пронађем одељак %s!\n"
-#: dwarf.c:3999
+#: dwarf.c:4020
#, c-format
msgid "Invalid pointer size (%d) in compunit header, using %d instead\n"
msgstr "ÐеиÑправна величина показивача (%d) у заглављу поређења јединица, кориÑтићу %d\n"
-#: dwarf.c:4033
+#: dwarf.c:4054
#, c-format
msgid " Compilation Unit @ offset %#<PRIx64>:\n"
msgstr " Јединица превођења на померају %#<PRIx64>:\n"
-#: dwarf.c:4035
+#: dwarf.c:4056
#, c-format
msgid " Length: %#<PRIx64> (%s)\n"
msgstr " Дужина: %#<PRIx64> (%s)\n"
-#: dwarf.c:4038
+#: dwarf.c:4059
#, c-format
msgid " Version: %d\n"
msgstr " Издање: %d\n"
-#: dwarf.c:4043
+#: dwarf.c:4064
#, c-format
msgid " Unit Type: %s (%x)\n"
msgstr " Ð’Ñ€Ñта јединице: %s (%x)\n"
-#: dwarf.c:4047
+#: dwarf.c:4068
#, c-format
msgid " Abbrev Offset: %#<PRIx64>\n"
msgstr " Померај Ñкраћења: %#<PRIx64>\n"
-#: dwarf.c:4049
+#: dwarf.c:4070
#, c-format
msgid " Pointer Size: %d\n"
msgstr " Величина показивача: %d\n"
-#: dwarf.c:4052
+#: dwarf.c:4073
#, c-format
msgid " Signature: %#<PRIx64>\n"
msgstr " ПотпиÑ: %#<PRIx64>\n"
-#: dwarf.c:4053
+#: dwarf.c:4074
#, c-format
msgid " Type Offset: %#<PRIx64>\n"
msgstr " Померај врÑте: %#<PRIx64>\n"
-#: dwarf.c:4056
+#: dwarf.c:4077
#, c-format
msgid " DWO ID: %#<PRIx64>\n"
msgstr " DWO ИД: %#<PRIx64>\n"
-#: dwarf.c:4062
+#: dwarf.c:4083
#, c-format
msgid " Section contributions:\n"
msgstr " ДоприноÑи одељка:\n"
-#: dwarf.c:4063
+#: dwarf.c:4084
#, c-format
msgid " .debug_abbrev.dwo: %#<PRIx64> %#zx\n"
msgstr " .debug_abbrev.dwo: %#<PRIx64> %#zx\n"
-#: dwarf.c:4065
+#: dwarf.c:4086
#, c-format
msgid " .debug_line.dwo: %#<PRIx64> %#zx\n"
msgstr " .debug_line.dwo: %#<PRIx64> %#zx\n"
-#: dwarf.c:4067
+#: dwarf.c:4088
#, c-format
msgid " .debug_loc.dwo: %#<PRIx64> %#zx\n"
msgstr " .debug_loc.dwo: %#<PRIx64> %#zx\n"
-#: dwarf.c:4069
+#: dwarf.c:4090
#, c-format
msgid " .debug_str_offsets.dwo: %#<PRIx64> %#zx\n"
msgstr " .debug_str_offsets.dwo: %#<PRIx64> %#zx\n"
-#: dwarf.c:4079
+#: dwarf.c:4100
#, c-format
msgid "CU at offset %#<PRIx64> contains corrupt or unsupported version number: %d.\n"
msgstr "ПЈ на померају %#<PRIx64> Ñадржи оштећени или неподржани број издања: %d.\n"
-#: dwarf.c:4091
+#: dwarf.c:4112
#, c-format
msgid "CU at offset %#<PRIx64> contains corrupt or unsupported unit type: %d.\n"
msgstr "ПЈ на померају %#<PRIx64> Ñадржи оштећену или неподржану врÑту јединице: %d.\n"
-#: dwarf.c:4136
+#: dwarf.c:4157
#, c-format
msgid " <%d><%lx>: Abbrev Number: 0\n"
msgstr " <%d><%lx>: Број Ñкраћења: 0\n"
-#: dwarf.c:4146
+#: dwarf.c:4167
#, c-format
msgid "Bogus end-of-siblings marker detected at offset %lx in %s section\n"
msgstr "Откривен је привидан означавач краја-потомака на померају %lx у одељку „%s“\n"
-#: dwarf.c:4150
+#: dwarf.c:4171
msgid "Further warnings about bogus end-of-sibling markers suppressed\n"
msgstr "Даља упозорења о привидним означавачима краја-потомка Ñу потиÑнута\n"
-#: dwarf.c:4173
+#: dwarf.c:4194
#, c-format
msgid " <%d><%lx>: Abbrev Number: %lu"
msgstr " <%d><%lx>: Број Ñкраћења: %lu"
-#: dwarf.c:4177
+#: dwarf.c:4198
#, c-format
msgid " <%d><%lx>: ...\n"
msgstr " <%d><%lx>: ...\n"
-#: dwarf.c:4197
+#: dwarf.c:4218
#, c-format
msgid "DIE at offset %#lx refers to abbreviation number %lu which does not exist\n"
msgstr "DIE на померају %#lx упућује на број Ñкраћења %lu који не поÑтоји\n"
-#: dwarf.c:4260
+#: dwarf.c:4281
#, c-format
msgid "CU @ %#<PRIx64> has has a negative rnglists_base value of %#<PRIx64> - treating as zero\n"
msgstr "CU @ %#<PRIx64> имаше негативну вредноÑÑ‚ „rnglists_base“ од %#<PRIx64> – Ñматрам то нулом\n"
-#: dwarf.c:4308
+#: dwarf.c:4329
msgid "DIE has locviews without loclist\n"
msgstr "„DIE“ има прегледе меÑта без ÑпиÑка меÑта\n"
-#: dwarf.c:4419
+#: dwarf.c:4440
#, c-format
msgid "The length field (%#<PRIx64>) in the debug_line header is wrong - the section is too small\n"
msgstr "Поље дужине (%#<PRIx64>) у заглављу „ред_прочишћавања“ је погрешно – одељак је премали\n"
-#: dwarf.c:4436
+#: dwarf.c:4457
msgid "Only DWARF version 2, 3, 4 and 5 line info is currently supported.\n"
msgstr "Само „DWARF“ издање 2, 3, 4 и 5 податка реда је тренутно подржано.\n"
-#: dwarf.c:4448 dwarf.c:7349 dwarf.c:8287
+#: dwarf.c:4469 dwarf.c:7370 dwarf.c:8308
#, c-format
msgid "The %s section contains unsupported segment selector size: %d.\n"
msgstr "Одељак „%s“ Ñадржи неподржану величину бирача одељка: %d.\n"
-#: dwarf.c:4465
+#: dwarf.c:4486
msgid "Invalid maximum operations per insn.\n"
msgstr "ÐеиÑправно највише радњи по инÑн-у.\n"
-#: dwarf.c:4492
+#: dwarf.c:4513
msgid "Directory Table"
msgstr "Табеал директоријума"
-#: dwarf.c:4492
+#: dwarf.c:4513
msgid "File Name Table"
msgstr "Табела назива датотека"
-#: dwarf.c:4496
+#: dwarf.c:4517
#, c-format
msgid "Unexpectedly large number of columns in the %s (%u)\n"
msgstr "Ðеочекивано велики број Ñтубаца у „%s“ (%u)\n"
-#: dwarf.c:4506
+#: dwarf.c:4527
#, c-format
msgid "%s: Corrupt format description entry\n"
msgstr "%s: Оштећен ÑƒÐ½Ð¾Ñ Ð¾Ð¿Ð¸Ñа формата\n"
-#: dwarf.c:4514
+#: dwarf.c:4535
#, c-format
msgid ""
"\n"
@@ -2681,17 +2681,17 @@ msgstr ""
"\n"
" „%s“ је празан.\n"
-#: dwarf.c:4520
+#: dwarf.c:4541
#, c-format
msgid "%s: Corrupt entry count %#<PRIx64>\n"
msgstr "%s: Број оштећеног уноÑа %#<PRIx64>\n"
-#: dwarf.c:4526
+#: dwarf.c:4547
#, c-format
msgid "%s: format count is zero, but the table is not empty\n"
msgstr "%s: број формата је нула, али табела није празна\n"
-#: dwarf.c:4531
+#: dwarf.c:4552
#, c-format
msgid ""
"\n"
@@ -2700,42 +2700,42 @@ msgstr ""
"\n"
" „%s“ (померај %#tx, редова %<PRIu64>, Ñтубаца %u):\n"
-#: dwarf.c:4534
+#: dwarf.c:4555
#, c-format
msgid " Entry"
msgstr " УноÑ"
-#: dwarf.c:4548
+#: dwarf.c:4569
#, c-format
msgid "\tName"
msgstr "\tÐазив"
-#: dwarf.c:4551
+#: dwarf.c:4572
#, c-format
msgid "\tDir"
msgstr "\tДир"
-#: dwarf.c:4554
+#: dwarf.c:4575
#, c-format
msgid "\tTime"
msgstr "\tВреме"
-#: dwarf.c:4557
+#: dwarf.c:4578
#, c-format
msgid "\tSize"
msgstr "\tВеличина"
-#: dwarf.c:4560
+#: dwarf.c:4581
#, c-format
msgid "\tMD5\t\t\t"
msgstr "\tМД5\t\t\t"
-#: dwarf.c:4563
+#: dwarf.c:4584
#, c-format
msgid "\t(Unknown format content type %<PRIu64>)"
msgstr "\t(Ðепозната врÑта Ñадржаја запиÑа „%<PRIu64>“)"
-#: dwarf.c:4597
+#: dwarf.c:4618
#, c-format
msgid ""
"\n"
@@ -2744,137 +2744,137 @@ msgstr ""
"\n"
"%s: Оштећен ÑпиÑак уноÑа\n"
-#: dwarf.c:4623
+#: dwarf.c:4644
msgid "corrupt .debug_sup section: size is too small\n"
msgstr "оштећени „.debug_sup“ одељак: величина је премала\n"
-#: dwarf.c:4630
+#: dwarf.c:4651
msgid "corrupt .debug_sup section: version < 5\n"
msgstr "оштећени „.debug_sup“ одељак: издање < 5\n"
-#: dwarf.c:4634
+#: dwarf.c:4655
msgid "corrupt .debug_sup section: is_supplementary not 0 or 1\n"
msgstr "оштећени „.debug_sup“ одељак: „is_supplementary“ није ни 0 ни 1\n"
-#: dwarf.c:4638
+#: dwarf.c:4659
msgid "corrupt .debug_sup section: filename not empty in supplementary section\n"
msgstr "оштећени „.debug_sup“ одељак: назив датотеке није празан у додатном одељку\n"
-#: dwarf.c:4643
+#: dwarf.c:4664
msgid "corrupt .debug_sup section: filename is not NUL terminated\n"
msgstr "оштећени „.debug_sup“ одељак: назив није „NUL“ окончан\n"
-#: dwarf.c:4651
+#: dwarf.c:4672
msgid "corrupt .debug_sup section: bad LEB128 field for checksum length\n"
msgstr "оштећени „.debug_sup“ одељак: лоше „LEB128“ поље за дужину Ñуме провере\n"
-#: dwarf.c:4657
+#: dwarf.c:4678
msgid "corrupt .debug_sup section: checksum length is longer than the remaining section length\n"
msgstr "оштећени „.debug_sup“ одељак: дужина Ñуме провере је већа од преоÑтале дужине одељка\n"
-#: dwarf.c:4662
+#: dwarf.c:4683
#, c-format
msgid "corrupt .debug_sup section: there are %#<PRIx64> extra, unused bytes at the end of the section\n"
msgstr "corrupt .debug_sup section: поÑтоји %#<PRIx64> додатних, неиÑкоришћених бајтова на крају одељка\n"
-#: dwarf.c:4667
+#: dwarf.c:4688
#, c-format
msgid " Version: %u\n"
msgstr " Издање: %u\n"
-#: dwarf.c:4668
+#: dwarf.c:4689
#, c-format
msgid " Is Supp: %u\n"
msgstr " ЈеÑте додатни: %u\n"
-#: dwarf.c:4669
+#: dwarf.c:4690
#, c-format
msgid " Filename: %s\n"
msgstr " Ðазив датотеке: %s\n"
-#: dwarf.c:4670
+#: dwarf.c:4691
#, c-format
msgid " Checksum Len: %<PRIu64>\n"
msgstr " Дужина Ñуме провере: %<PRIu64>\n"
-#: dwarf.c:4673
+#: dwarf.c:4694
#, c-format
msgid " Checksum: "
msgstr " Сума провере: "
-#: dwarf.c:4721 dwarf.c:5139
+#: dwarf.c:4742 dwarf.c:5160
msgid "Partial .debug_line. section encountered without a prior full .debug_line section\n"
msgstr "Ðаиђох на делимичан одељак „.debug_line.“ без претходног пуног одељка „.debug_line“\n"
-#: dwarf.c:4734
+#: dwarf.c:4755
#, c-format
msgid " Offset: %#tx\n"
msgstr " Померај: %#tx\n"
-#: dwarf.c:4735
+#: dwarf.c:4756
#, c-format
msgid " Length: %<PRId64>\n"
msgstr " Дужина: %<PRId64>\n"
-#: dwarf.c:4736
+#: dwarf.c:4757
#, c-format
msgid " DWARF Version: %d\n"
msgstr " ДВÐРФ издање: %d\n"
-#: dwarf.c:4739
+#: dwarf.c:4760
#, c-format
msgid " Address size (bytes): %d\n"
msgstr " Величина адреÑе (бајтова): %d\n"
-#: dwarf.c:4740
+#: dwarf.c:4761
#, c-format
msgid " Segment selector (bytes): %d\n"
msgstr " Избирач подеока (бајтова): %d\n"
-#: dwarf.c:4742
+#: dwarf.c:4763
#, c-format
msgid " Prologue Length: %d\n"
msgstr " Дужина пролога: %d\n"
-#: dwarf.c:4743
+#: dwarf.c:4764
#, c-format
msgid " Minimum Instruction Length: %d\n"
msgstr " Ðајмања дужина инÑтрукције: %d\n"
-#: dwarf.c:4745
+#: dwarf.c:4766
#, c-format
msgid " Maximum Ops per Instruction: %d\n"
msgstr " Ðајвише опција по инÑтрукцији: %d\n"
-#: dwarf.c:4746
+#: dwarf.c:4767
#, c-format
msgid " Initial value of 'is_stmt': %d\n"
msgstr " Почетна вредноÑÑ‚ за „is_stmt“: %d\n"
-#: dwarf.c:4747
+#: dwarf.c:4768
#, c-format
msgid " Line Base: %d\n"
msgstr " ОÑновни ред: %d\n"
-#: dwarf.c:4748
+#: dwarf.c:4769
#, c-format
msgid " Line Range: %d\n"
msgstr " ОпÑег реда: %d\n"
-#: dwarf.c:4749
+#: dwarf.c:4770
#, c-format
msgid " Opcode Base: %d\n"
msgstr " ОÑнова опкода: %d\n"
-#: dwarf.c:4754 dwarf.c:5155
+#: dwarf.c:4775 dwarf.c:5176
msgid "Line range of 0 is invalid, using 1 instead\n"
msgstr "ОпÑег реда 0 није иÑправан, кориÑтићу 1\n"
-#: dwarf.c:4766
+#: dwarf.c:4787
msgid "Line Base extends beyond end of section\n"
msgstr "ОÑнова реда превазилази крај одељка\n"
-#: dwarf.c:4770
+#: dwarf.c:4791
#, c-format
msgid ""
"\n"
@@ -2883,7 +2883,7 @@ msgstr ""
"\n"
" Опкодови:\n"
-#: dwarf.c:4773
+#: dwarf.c:4794
#, c-format
msgid " Opcode %d has %d arg\n"
msgid_plural " Opcode %d has %d args\n"
@@ -2891,7 +2891,7 @@ msgstr[0] " Опкод %d има %d аргумент\n"
msgstr[1] " Опкод %d има %d аргумента\n"
msgstr[2] " Опкод %d има %d аргумената\n"
-#: dwarf.c:4793
+#: dwarf.c:4814
#, c-format
msgid ""
"\n"
@@ -2900,7 +2900,7 @@ msgstr ""
"\n"
" Табела директоријума је празна.\n"
-#: dwarf.c:4798
+#: dwarf.c:4819
#, c-format
msgid ""
"\n"
@@ -2909,7 +2909,7 @@ msgstr ""
"\n"
" Табела директоријума (померај %#tx):\n"
-#: dwarf.c:4821
+#: dwarf.c:4842
#, c-format
msgid ""
"\n"
@@ -2918,7 +2918,7 @@ msgstr ""
"\n"
" Табела назива датотека је празна.\n"
-#: dwarf.c:4824
+#: dwarf.c:4845
#, c-format
msgid ""
"\n"
@@ -2927,217 +2927,217 @@ msgstr ""
"\n"
" Табела назива датотека (померај %#tx):\n"
-#: dwarf.c:4849
+#: dwarf.c:4870
msgid "Corrupt file name table entry\n"
msgstr "Оштећен је ÑƒÐ½Ð¾Ñ Ñ‚Ð°Ð±ÐµÐ»Ðµ назива датотека\n"
-#: dwarf.c:4866
+#: dwarf.c:4887
#, c-format
msgid " No Line Number Statements.\n"
msgstr " Ðема тврдње броја реда.\n"
-#: dwarf.c:4869
+#: dwarf.c:4890
#, c-format
msgid " Line Number Statements:\n"
msgstr " Тврдње броја реда:\n"
-#: dwarf.c:4891
+#: dwarf.c:4912
#, c-format
msgid " Special opcode %d: advance Address by %<PRIu64> to %#<PRIx64>%s"
msgstr " ПоÑебан опкод %d: напредује адреÑу Ñа %<PRIu64> до %#<PRIx64>%s"
-#: dwarf.c:4896 dwarf.c:4917 dwarf.c:4959 dwarf.c:4979 dwarf.c:5027
-#: dwarf.c:5047
+#: dwarf.c:4917 dwarf.c:4938 dwarf.c:4980 dwarf.c:5000 dwarf.c:5048
+#: dwarf.c:5068
msgid " (reset view)"
msgstr " (поврати преглед)"
-#: dwarf.c:4911
+#: dwarf.c:4932
#, c-format
msgid " Special opcode %d: advance Address by %<PRIu64> to %#<PRIx64>[%d]%s"
msgstr " ПоÑебан опкод %d: напредује адреÑу Ñа %<PRIu64> до %#<PRIx64>[%d]%s"
-#: dwarf.c:4921
+#: dwarf.c:4942
#, c-format
msgid " and Line by %d to %d"
msgstr " и ред Ñа %d до %d"
-#: dwarf.c:4924 dwarf.c:4941
+#: dwarf.c:4945 dwarf.c:4962
#, c-format
msgid " (view %u)\n"
msgstr " (преглед %u)\n"
-#: dwarf.c:4939
+#: dwarf.c:4960
#, c-format
msgid " Copy"
msgstr " Умножи"
-#: dwarf.c:4955
+#: dwarf.c:4976
#, c-format
msgid " Advance PC by %<PRIu64> to %#<PRIx64>%s\n"
msgstr " Ðапредује PC за %<PRIu64> до %#<PRIx64>%s\n"
-#: dwarf.c:4974
+#: dwarf.c:4995
#, c-format
msgid " Advance PC by %<PRIu64> to %#<PRIx64>[%d]%s\n"
msgstr " Ðапредује PC за %<PRIu64> до %#<PRIx64>[%d]%s\n"
-#: dwarf.c:4986
+#: dwarf.c:5007
#, c-format
msgid " Advance Line by %d to %d\n"
msgstr " Ðапредује ред Ñа %d до %d\n"
-#: dwarf.c:4992
+#: dwarf.c:5013
#, c-format
msgid " Set File Name to entry %<PRIu64> in the File Name Table\n"
msgstr " Подешава назив датотеке на ÑƒÐ½Ð¾Ñ %<PRIu64> у табели назива датотеке\n"
-#: dwarf.c:4999
+#: dwarf.c:5020
#, c-format
msgid " Set column to %<PRIu64>\n"
msgstr " Подешава Ñтубац на %<PRIu64>\n"
-#: dwarf.c:5006
+#: dwarf.c:5027
#, c-format
msgid " Set is_stmt to %d\n"
msgstr " ПоÑтавља „is_stmt“ на %d\n"
-#: dwarf.c:5011
+#: dwarf.c:5032
#, c-format
msgid " Set basic block\n"
msgstr " Подешава блок оÑнове\n"
-#: dwarf.c:5023
+#: dwarf.c:5044
#, c-format
msgid " Advance PC by constant %<PRIu64> to %#<PRIx64>%s\n"
msgstr " Ðапредује PC конÑтантом %<PRIu64> до %#<PRIx64>%s\n"
-#: dwarf.c:5042
+#: dwarf.c:5063
#, c-format
msgid " Advance PC by constant %<PRIu64> to %#<PRIx64>[%d]%s\n"
msgstr " Ðапредује PC конÑтантом %<PRIu64> до %#<PRIx64>[%d]%s\n"
-#: dwarf.c:5055
+#: dwarf.c:5076
#, c-format
msgid " Advance PC by fixed size amount %<PRIu64> to %#<PRIx64>\n"
msgstr " Ðапредује PC изноÑом Ñталне величине %<PRIu64> до %#<PRIx64>\n"
-#: dwarf.c:5062
+#: dwarf.c:5083
#, c-format
msgid " Set prologue_end to true\n"
msgstr " Подешава „prologue_end“ на тачно\n"
-#: dwarf.c:5066
+#: dwarf.c:5087
#, c-format
msgid " Set epilogue_begin to true\n"
msgstr " Подешава „epilogue_begin“ на тачно\n"
-#: dwarf.c:5071
+#: dwarf.c:5092
#, c-format
msgid " Set ISA to %<PRIu64>\n"
msgstr " Подешава ISA на „%<PRIu64>“\n"
-#: dwarf.c:5075 dwarf.c:5752
+#: dwarf.c:5096 dwarf.c:5773
#, c-format
msgid " Unknown opcode %d with operands: "
msgstr " Ðепознат опкод „%d“ Ñа операндима: "
-#: dwarf.c:5168
+#: dwarf.c:5189
#, c-format
msgid "opcode base of %d extends beyond end of section\n"
msgstr "оÑнова опкода од %d превазилази крај одељка\n"
-#: dwarf.c:5183
+#: dwarf.c:5204
#, c-format
msgid "Unexpectedly large number of columns in the directory name table (%u)\n"
msgstr "Ðеочекивано велики број Ñтубаца у табели назива директоријума (%u)\n"
-#: dwarf.c:5195 dwarf.c:5225 dwarf.c:5255
+#: dwarf.c:5216 dwarf.c:5246 dwarf.c:5276
msgid "Corrupt directories list\n"
msgstr "Оштећен је ÑпиÑак директоријума\n"
-#: dwarf.c:5203
+#: dwarf.c:5224
#, c-format
msgid "number of directories (0x%x) exceeds size of section %s\n"
msgstr "број директоријума (0x%x) премашује величину одељка %s\n"
-#: dwarf.c:5263
+#: dwarf.c:5284
#, c-format
msgid "Unexpectedly large number of columns in the file name table (%u)\n"
msgstr "Ðеочекивано велики број Ñтубаца у табели назива датотека (%u)\n"
-#: dwarf.c:5276 dwarf.c:5307 dwarf.c:5354
+#: dwarf.c:5297 dwarf.c:5328 dwarf.c:5375
msgid "Corrupt file name list\n"
msgstr "Оштећен је ÑпиÑак назива датотека\n"
-#: dwarf.c:5284
+#: dwarf.c:5305
#, c-format
msgid "number of files (0x%x) exceeds size of section %s\n"
msgstr "број датотека (0x%x) премашује величину одељка %s\n"
-#: dwarf.c:5376
+#: dwarf.c:5397
msgid "directory table ends unexpectedly\n"
msgstr "табела директоријума Ñе неочекивано завршила\n"
-#: dwarf.c:5416
+#: dwarf.c:5437
msgid "file table ends unexpectedly\n"
msgstr "табела датотеке Ñе неочекивано завршила\n"
-#: dwarf.c:5449
+#: dwarf.c:5470
#, c-format
msgid "CU: No directory table\n"
msgstr "ЦУ: Ðема табеле директоријума\n"
-#: dwarf.c:5451
+#: dwarf.c:5472
#, c-format
msgid "CU: %s:\n"
msgstr "ЦУ: %s:\n"
-#: dwarf.c:5461 dwarf.c:5793 readelf.c:7953 readelf.c:8049 readelf.c:8066
-#: readelf.c:8083 readelf.c:8893 readelf.c:13130 readelf.c:13792
-#: readelf.c:13805 readelf.c:19448 readelf.c:19480
+#: dwarf.c:5482 dwarf.c:5814 readelf.c:7978 readelf.c:8074 readelf.c:8091
+#: readelf.c:8108 readelf.c:8921 readelf.c:13160 readelf.c:13822
+#: readelf.c:13835 readelf.c:19485 readelf.c:19517
msgid "<unknown>"
msgstr "<непознато>"
-#: dwarf.c:5468 dwarf.c:5679
+#: dwarf.c:5489 dwarf.c:5700
#, c-format
msgid "directory index %u >= number of directories %u\n"
msgstr "Ð¸Ð½Ð´ÐµÐºÑ Ð´Ð¸Ñ€ÐµÐºÑ‚Ð¾Ñ€Ð¸Ñ˜ÑƒÐ¼Ð° %u >= броју директоријума %u\n"
-#: dwarf.c:5471 dwarf.c:5787 elfcomm.c:776 readelf.c:918 readelf.c:9070
-#: readelf.c:9682 readelf.c:11708 readelf.c:14099 readelf.c:14165
-#: readelf.c:14169 readelf.c:14283 readelf.c:18177 readelf.c:18267
-#: readelf.c:18860 readelf.c:18879 readelf.c:18998 readelf.c:19457
-#: readelf.c:20620 readelf.c:20623
+#: dwarf.c:5492 dwarf.c:5808 elfcomm.c:776 readelf.c:980 readelf.c:9099
+#: readelf.c:9712 readelf.c:11738 readelf.c:14129 readelf.c:14195
+#: readelf.c:14199 readelf.c:14313 readelf.c:18214 readelf.c:18304
+#: readelf.c:18897 readelf.c:18916 readelf.c:19035 readelf.c:19494
+#: readelf.c:20657 readelf.c:20660
#, c-format
msgid "<corrupt>"
msgstr "<оштећено>"
-#: dwarf.c:5477
+#: dwarf.c:5498
#, c-format
msgid "CU: %s/%s:\n"
msgstr "ЦУ: %s/%s:\n"
-#: dwarf.c:5487
+#: dwarf.c:5508
#, c-format
msgid "File name Line number Starting address View Stmt\n"
msgstr "Ðазив датотеке Број реда Почетна адреÑа Преглед Стмт\n"
-#: dwarf.c:5489
+#: dwarf.c:5510
#, c-format
msgid "File name Line number Starting address View Stmt\n"
msgstr "Ðазив датотеке Број реда Почетна адреÑа Преглед Стмт\n"
-#: dwarf.c:5492
+#: dwarf.c:5513
#, c-format
msgid "CU: Empty file name table\n"
msgstr "ЦУ: Празна табела назива датотека\n"
-#: dwarf.c:5599
+#: dwarf.c:5620
#, c-format
msgid "UNKNOWN (%u): length %ld\n"
msgstr "ÐЕПОЗÐÐТО (%u): дужина %ld\n"
-#: dwarf.c:5649
+#: dwarf.c:5670
#, c-format
msgid ""
"\n"
@@ -3146,12 +3146,12 @@ msgstr ""
"\n"
" [КориÑти ÑƒÐ½Ð¾Ñ Ñ‚Ð°Ð±ÐµÐ»Ðµ датотека „%d“]\n"
-#: dwarf.c:5653 dwarf.c:5785
+#: dwarf.c:5674 dwarf.c:5806
#, c-format
msgid "file index %u >= number of files %u\n"
msgstr "Ð¸Ð½Ð´ÐµÐºÑ Ð´Ð°Ñ‚Ð¾Ñ‚ÐµÐºÐµ %u >= броју датотека %u\n"
-#: dwarf.c:5655
+#: dwarf.c:5676
#, c-format
msgid ""
"\n"
@@ -3160,7 +3160,7 @@ msgstr ""
"\n"
" <превелик Ð¸Ð½Ð´ÐµÐºÑ Ñ‚Ð°Ð±ÐµÐ»Ðµ датотеке %u>"
-#: dwarf.c:5669
+#: dwarf.c:5690
#, c-format
msgid ""
"\n"
@@ -3169,7 +3169,7 @@ msgstr ""
"\n"
" [КориÑти датотеку „%s“ у уноÑу табеле директоријума %d]\n"
-#: dwarf.c:5682
+#: dwarf.c:5703
#, c-format
msgid ""
"\n"
@@ -3178,78 +3178,78 @@ msgstr ""
"\n"
" <превелик Ð¸Ð½Ð´ÐµÐºÑ Ñ‚Ð°Ð±ÐµÐ»Ðµ директоријума %u>\n"
-#: dwarf.c:5748
+#: dwarf.c:5769
#, c-format
msgid " Set ISA to %lu\n"
msgstr " Подешава ISA на „%lu“\n"
-#: dwarf.c:5955
+#: dwarf.c:5976
msgid "no info"
msgstr "нема података"
-#: dwarf.c:5956
+#: dwarf.c:5977
msgid "type"
msgstr "врÑта"
-#: dwarf.c:5957
+#: dwarf.c:5978
msgid "variable"
msgstr "променљива"
-#: dwarf.c:5958
+#: dwarf.c:5979
msgid "function"
msgstr "функција"
-#: dwarf.c:5959
+#: dwarf.c:5980
msgid "other"
msgstr "друго"
-#: dwarf.c:5960
+#: dwarf.c:5981
msgid "unused5"
msgstr "некоришћено5"
-#: dwarf.c:5961
+#: dwarf.c:5982
msgid "unused6"
msgstr "некоришћено6"
-#: dwarf.c:5962
+#: dwarf.c:5983
msgid "unused7"
msgstr "некоришћено7"
-#: dwarf.c:6000
+#: dwarf.c:6021
#, c-format
msgid "Debug info is corrupted, %s header at %#lx has length %#<PRIx64>\n"
msgstr "Подаци прочишћавања Ñу оштећени, „%s“ заглавље на %#lx је дужине %#<PRIx64>\n"
-#: dwarf.c:6015 dwarf.c:7717
+#: dwarf.c:6036 dwarf.c:7738
#, c-format
msgid ".debug_info offset of %#<PRIx64> in %s section does not point to a CU header.\n"
msgstr "Померај „.debug_info“ од %#<PRIx64> у одељку %s не указује на CU заглавље.\n"
-#: dwarf.c:6021
+#: dwarf.c:6042
#, c-format
msgid " Length: %<PRId64>\n"
msgstr " Дужина: %<PRId64>\n"
-#: dwarf.c:6023
+#: dwarf.c:6044
#, c-format
msgid " Version: %d\n"
msgstr " Издање: %d\n"
-#: dwarf.c:6025
+#: dwarf.c:6046
#, c-format
msgid " Offset into .debug_info section: %#<PRIx64>\n"
msgstr " Померај у одељку „.debug_info“: %#<PRIx64>\n"
-#: dwarf.c:6027
+#: dwarf.c:6048
#, c-format
msgid " Size of area in .debug_info section: %<PRId64>\n"
msgstr " Величина облаÑти у одељку „.debug_info“: %<PRId64>\n"
-#: dwarf.c:6036
+#: dwarf.c:6057
msgid "Only DWARF 2 and 3 pubnames are currently supported\n"
msgstr "Само ДВÐРФ 2 и 3 пубназиви Ñу тренутно подржани\n"
-#: dwarf.c:6044
+#: dwarf.c:6065
#, c-format
msgid ""
"\n"
@@ -3258,7 +3258,7 @@ msgstr ""
"\n"
" Померај Ð’Ñ€Ñта Ðазив\n"
-#: dwarf.c:6046
+#: dwarf.c:6067
#, c-format
msgid ""
"\n"
@@ -3267,222 +3267,222 @@ msgstr ""
"\n"
" Померај\tÐазив\n"
-#: dwarf.c:6080
+#: dwarf.c:6101
msgid "s"
msgstr "Ñ"
-#: dwarf.c:6080
+#: dwarf.c:6101
msgid "g"
msgstr "г"
-#: dwarf.c:6138
+#: dwarf.c:6159
#, c-format
msgid " DW_MACINFO_start_file - lineno: %d filenum: %d\n"
msgstr " DW_MACINFO_start_file – број реда: %d број датотеке: %d\n"
-#: dwarf.c:6144
+#: dwarf.c:6165
#, c-format
msgid " DW_MACINFO_end_file\n"
msgstr " DW_MACINFO_end_file\n"
-#: dwarf.c:6151
+#: dwarf.c:6172
#, c-format
msgid " DW_MACINFO_define - lineno : %d macro : %*s\n"
msgstr " DW_MACINFO_define – број реда : %d макро : %*s\n"
-#: dwarf.c:6161
+#: dwarf.c:6182
#, c-format
msgid " DW_MACINFO_undef - lineno : %d macro : %*s\n"
msgstr " DW_MACINFO_undef – број реда : %d макро : %*s\n"
-#: dwarf.c:6174
+#: dwarf.c:6195
#, c-format
msgid " DW_MACINFO_vendor_ext - constant : %d string : %*s\n"
msgstr " DW_MACINFO_vendor_ext – конÑтанта : %d ниÑка : %*s\n"
-#: dwarf.c:6326
+#: dwarf.c:6347
#, c-format
msgid "Expected to find a version number of 4 or 5 in section %s but found %d instead\n"
msgstr "Очекивах да нађем број издања 4 или 5 у одељку „%s“ али нађох %d+\n"
-#: dwarf.c:6333
+#: dwarf.c:6354
#, c-format
msgid " Offset: %#<PRIx64>\n"
msgstr " Померај: %#<PRIx64>\n"
-#: dwarf.c:6334
+#: dwarf.c:6355
#, c-format
msgid " Version: %d\n"
msgstr " Издање: %d\n"
-#: dwarf.c:6335
+#: dwarf.c:6356
#, c-format
msgid " Offset size: %d\n"
msgstr " Величина помераја: %d\n"
-#: dwarf.c:6339
+#: dwarf.c:6360
#, c-format
msgid " Offset into .debug_line: %#<PRIx64>\n"
msgstr " Померај у „.debug_line“: %#<PRIx64>\n"
-#: dwarf.c:6353
+#: dwarf.c:6374
#, c-format
msgid " Extension opcode arguments:\n"
msgstr " Ðргументи опкода проширења:\n"
-#: dwarf.c:6360
+#: dwarf.c:6381
#, c-format
msgid " DW_MACRO_%02x has no arguments\n"
msgstr " „DW_MACRO_%02x“ нема аргументе\n"
-#: dwarf.c:6363
+#: dwarf.c:6384
#, c-format
msgid " DW_MACRO_%02x arguments: "
msgstr " „DW_MACRO_%02x“ аргументи: "
-#: dwarf.c:6389
+#: dwarf.c:6410
#, c-format
msgid "Invalid extension opcode form %s\n"
msgstr "ÐеиÑправан облик опкода проширења „%s“\n"
-#: dwarf.c:6406
+#: dwarf.c:6427
msgid ".debug_macro section not zero terminated\n"
msgstr "Одељак „.debug_macro“ није окончан нулом\n"
-#: dwarf.c:6420
+#: dwarf.c:6441
#, c-format
msgid " DW_MACRO_define - lineno : %d macro : %*s\n"
msgstr " „DW_MACRO_define“ – број реда : %d макро : %*s\n"
-#: dwarf.c:6430
+#: dwarf.c:6451
#, c-format
msgid " DW_MACRO_undef - lineno : %d macro : %*s\n"
msgstr " „DW_MACRO_undef“ – број реда : %d макро : %*s\n"
-#: dwarf.c:6445
+#: dwarf.c:6466
msgid "DW_MACRO_start_file used, but no .debug_line offset provided.\n"
msgstr "„DW_MACRO_start_file“ Ñе кориÑти, али није доÑтављен померај „.debug_line“.\n"
-#: dwarf.c:6451
+#: dwarf.c:6472
#, c-format
msgid " DW_MACRO_start_file - lineno: %d filenum: %d\n"
msgstr " „DW_MACRO_start_file“ – број реда : %d бр. датотеке: %d\n"
-#: dwarf.c:6454
+#: dwarf.c:6475
#, c-format
msgid " DW_MACRO_start_file - lineno: %d filenum: %d filename: %s%s%s\n"
msgstr " „DW_MACRO_start_file“ – број реда : %d бр. реда: %d назив датотеке: %s%s%s\n"
-#: dwarf.c:6462
+#: dwarf.c:6483
#, c-format
msgid " DW_MACRO_end_file\n"
msgstr " „DW_MACRO_end_file“\n"
-#: dwarf.c:6472
+#: dwarf.c:6493
#, c-format
msgid " DW_MACRO_define_strp - lineno : %d macro : %s\n"
msgstr " „DW_MACRO_define“_strp – број реда : %d макро : %s\n"
-#: dwarf.c:6483
+#: dwarf.c:6504
#, c-format
msgid " DW_MACRO_undef_strp - lineno : %d macro : %s\n"
msgstr " „DW_MACRO_undef_strp“ – број реда : %d макро : %s\n"
-#: dwarf.c:6489
+#: dwarf.c:6510
#, c-format
msgid " DW_MACRO_import - offset : %#<PRIx64>\n"
msgstr " „DW_MACRO_import“ – померај : %#<PRIx64>\n"
-#: dwarf.c:6496
+#: dwarf.c:6517
#, c-format
msgid " DW_MACRO_define_sup - lineno : %d macro offset : %#<PRIx64>\n"
msgstr " DW_MACRO_define_sup“ – број реда : %d макро померај : %#<PRIx64>\n"
-#: dwarf.c:6504
+#: dwarf.c:6525
#, c-format
msgid " DW_MACRO_undef_sup - lineno : %d macro offset : %#<PRIx64>\n"
msgstr " DW_MACRO_undef_sup“ – број реда : %d макро померај : %<PRIx64>\n"
-#: dwarf.c:6511
+#: dwarf.c:6532
#, c-format
msgid " DW_MACRO_import_sup - offset : %#<PRIx64>\n"
msgstr " DW_MACRO_import_sup“ – померај : %#<PRIx64>\n"
-#: dwarf.c:6526
+#: dwarf.c:6547
#, c-format
msgid "(with offset %#<PRIx64>) "
msgstr "(Ñа померајем %#<PRIx64>) "
-#: dwarf.c:6527
+#: dwarf.c:6548
#, c-format
msgid "lineno : %d macro : %s\n"
msgstr "број реда : %d макро : %s\n"
-#: dwarf.c:6534
+#: dwarf.c:6555
#, c-format
msgid " <Target Specific macro op: %#x - UNHANDLED"
msgstr " <Мети Ñпецифичан макро оп: %#x – ÐЕОБРÐЂЕÐО"
-#: dwarf.c:6540
+#: dwarf.c:6561
#, c-format
msgid " Unknown macro opcode %02x seen\n"
msgstr " Виђен је непознат макро опкод %02x\n"
-#: dwarf.c:6551
+#: dwarf.c:6572
#, c-format
msgid " DW_MACRO_%02x\n"
msgstr " „DW_MACRO_%02x“\n"
-#: dwarf.c:6554
+#: dwarf.c:6575
#, c-format
msgid " DW_MACRO_%02x -"
msgstr " „DW_MACRO_%02x“ –"
-#: dwarf.c:6601
+#: dwarf.c:6622
#, c-format
msgid " Number TAG (%#<PRIx64>)\n"
msgstr " ОЗÐÐКРброја (%#<PRIx64>)\n"
-#: dwarf.c:6610
+#: dwarf.c:6631
msgid "has children"
msgstr "има пород"
-#: dwarf.c:6610
+#: dwarf.c:6631
msgid "no children"
msgstr "нема пород"
-#: dwarf.c:6674
+#: dwarf.c:6695
#, c-format
msgid "location view pair\n"
msgstr "пар прегледа меÑта\n"
-#: dwarf.c:6705
+#: dwarf.c:6726
#, c-format
msgid "No debug information available for loc lists of entry: %u\n"
msgstr "ÐиÑу доÑтупни подаци прочишћавања за ÑпиÑкове меÑта уноÑа: %u\n"
-#: dwarf.c:6717 dwarf.c:6858 dwarf.c:7079
+#: dwarf.c:6738 dwarf.c:6879 dwarf.c:7100
#, c-format
msgid "Invalid pointer size (%d) in debug info for entry %d\n"
msgstr "ÐеиÑправна величина показивача (%d) у подацима прочишћавања за ÑƒÐ½Ð¾Ñ %d\n"
-#: dwarf.c:6729 dwarf.c:6782 dwarf.c:6791 dwarf.c:6870 dwarf.c:6985
-#: dwarf.c:6993 dwarf.c:7091 dwarf.c:7163 dwarf.c:7171
+#: dwarf.c:6750 dwarf.c:6803 dwarf.c:6812 dwarf.c:6891 dwarf.c:7006
+#: dwarf.c:7014 dwarf.c:7112 dwarf.c:7184 dwarf.c:7192
#, c-format
msgid "Location list starting at offset %#<PRIx64> is not terminated.\n"
msgstr "СпиÑак меÑта који почиње на померају %#<PRIx64> није окончан.\n"
-#: dwarf.c:6751 dwarf.c:6898 dwarf.c:7128 dwarf.c:8088 dwarf.c:8147
+#: dwarf.c:6772 dwarf.c:6919 dwarf.c:7149 dwarf.c:8109 dwarf.c:8168
#, c-format
msgid "<End of list>\n"
msgstr "<Крај ÑпиÑка>\n"
-#: dwarf.c:6763 dwarf.c:6908 dwarf.c:6943 dwarf.c:8156 dwarf.c:8180
+#: dwarf.c:6784 dwarf.c:6929 dwarf.c:6964 dwarf.c:8177 dwarf.c:8201
#, c-format
msgid "(base address)\n"
msgstr "(адреÑа оÑнове)\n"
-#: dwarf.c:6777 dwarf.c:6892 dwarf.c:7117
+#: dwarf.c:6798 dwarf.c:6913 dwarf.c:7138
#, c-format
msgid ""
"views at %8.8<PRIx64> for:\n"
@@ -3491,90 +3491,90 @@ msgstr ""
"прегледи на %8.8<PRIx64> за:\n"
" %*s "
-#: dwarf.c:6812 dwarf.c:7014 dwarf.c:8107 dwarf.c:8213
+#: dwarf.c:6833 dwarf.c:7035 dwarf.c:8128 dwarf.c:8234
msgid " (start == end)"
msgstr " (почетак == крај)"
-#: dwarf.c:6814 dwarf.c:7016 dwarf.c:8109 dwarf.c:8215
+#: dwarf.c:6835 dwarf.c:7037 dwarf.c:8130 dwarf.c:8236
msgid " (start > end)"
msgstr " (почетак > крај)"
-#: dwarf.c:6904
+#: dwarf.c:6925
#, c-format
msgid "(index into .debug_addr) "
msgstr "(Ð¸Ð½Ð´ÐµÐºÑ Ñƒ „.debug_addr“) "
-#: dwarf.c:6960
+#: dwarf.c:6981
#, c-format
msgid "View pair entry in loclist with locviews attribute\n"
msgstr "Ð£Ð½Ð¾Ñ Ð¿Ð°Ñ€Ð° прегледа на ÑпиÑку меÑта Ñа атрибутом прегледа меÑта\n"
-#: dwarf.c:6967
+#: dwarf.c:6988
#, c-format
msgid "views for:\n"
msgstr "прегледи за:\n"
-#: dwarf.c:6972
+#: dwarf.c:6993
#, c-format
msgid "Invalid location list entry type %d\n"
msgstr "ÐеиÑправна врÑта уноÑа ÑпиÑка меÑта %d\n"
-#: dwarf.c:7025
+#: dwarf.c:7046
#, c-format
msgid "Trailing view pair not used in a range"
msgstr "Пратећи пар прегледа није коришћен у опÑегу"
-#: dwarf.c:7067
+#: dwarf.c:7088
#, c-format
msgid "No debug information for loc lists of entry: %u\n"
msgstr "Ðема података прочишћавања за ÑпиÑкове меÑта уноÑа: %u\n"
-#: dwarf.c:7134
+#: dwarf.c:7155
#, c-format
msgid "(base address selection entry)\n"
msgstr "(ÑƒÐ½Ð¾Ñ Ð¸Ð·Ð±Ð¾Ñ€Ð° адреÑе оÑнове)\n"
-#: dwarf.c:7155
+#: dwarf.c:7176
#, c-format
msgid "Unknown location list entry type 0x%x.\n"
msgstr "Ðепозната врÑта уноÑа ÑпиÑка меÑта 0x%x.\n"
-#: dwarf.c:7239
+#: dwarf.c:7260
#, c-format
msgid "Table at Offset %#<PRIx64>\n"
msgstr "Табела на померају %#<PRIx64>\n"
-#: dwarf.c:7255 dwarf.c:8278
+#: dwarf.c:7276 dwarf.c:8299
#, c-format
msgid " Length: %#<PRIx64>\n"
msgstr " Дужина: %#<PRIx64>\n"
-#: dwarf.c:7256 dwarf.c:8279
+#: dwarf.c:7277 dwarf.c:8300
#, c-format
msgid " DWARF version: %u\n"
msgstr " DWARF издање: %u\n"
-#: dwarf.c:7257 dwarf.c:8280
+#: dwarf.c:7278 dwarf.c:8301
#, c-format
msgid " Address size: %u\n"
msgstr " Величина адреÑе: %u\n"
-#: dwarf.c:7258 dwarf.c:8281
+#: dwarf.c:7279 dwarf.c:8302
#, c-format
msgid " Segment size: %u\n"
msgstr " Величина подеока: %u\n"
-#: dwarf.c:7259 dwarf.c:8282
+#: dwarf.c:7280 dwarf.c:8303
#, c-format
msgid " Offset entries: %u\n"
msgstr " УноÑи помераја: %u\n"
-#: dwarf.c:7263
+#: dwarf.c:7284
#, c-format
msgid "The %s section contains an unsupported segment selector size: %d.\n"
msgstr "Одељак „%s“ Ñадржи неподржану величину бирача одељка: %d.\n"
-#: dwarf.c:7271
+#: dwarf.c:7292
#, c-format
msgid ""
"\n"
@@ -3583,12 +3583,12 @@ msgstr ""
"\n"
" УноÑи помераја почињу на %#tx:\n"
-#: dwarf.c:7279 dwarf.c:8309
+#: dwarf.c:7300 dwarf.c:8330
#, c-format
msgid " [%6u] %#<PRIx64>\n"
msgstr " [%6u] %#<PRIx64>\n"
-#: dwarf.c:7318 dwarf.c:7598 dwarf.c:7815 dwarf.c:7939 dwarf.c:8347
+#: dwarf.c:7339 dwarf.c:7619 dwarf.c:7836 dwarf.c:7960 dwarf.c:8368
#, c-format
msgid ""
"\n"
@@ -3597,21 +3597,21 @@ msgstr ""
"\n"
"Одељак %s је празан.\n"
-#: dwarf.c:7338
+#: dwarf.c:7359
#, c-format
msgid "The %s section contains corrupt or unsupported version number: %d.\n"
msgstr "Одељак %s Ñадржи оштећени или неподржани број издања: %d.\n"
-#: dwarf.c:7365 dwarf.c:7821 dwarf.c:8355
+#: dwarf.c:7386 dwarf.c:7842 dwarf.c:8376
#, c-format
msgid "Unable to load/parse the .debug_info section, so cannot interpret the %s section.\n"
msgstr "Ðе могу да учитам/обрадим одељак „.debug_info“, тако да не могу да раÑтумачим одељак %s.\n"
-#: dwarf.c:7413
+#: dwarf.c:7434
msgid "No location lists in .debug_info section!\n"
msgstr "Ðема ÑпиÑкова меÑта у одељку „.debug_info“!\n"
-#: dwarf.c:7421
+#: dwarf.c:7442
#, c-format
msgid ""
" Warning: This section has relocations - addresses seen here may not be accurate.\n"
@@ -3620,40 +3620,40 @@ msgstr ""
" Упозорење: Овај одељак има премештања – адреÑе овде виђене могу бити нетачне.\n"
"\n"
-#: dwarf.c:7424 dwarf.c:7473
+#: dwarf.c:7445 dwarf.c:7494
#, c-format
msgid " Offset Begin End Expression\n"
msgstr " Померај Почетак Крај Израз\n"
-#: dwarf.c:7512 dwarf.c:7516
+#: dwarf.c:7533 dwarf.c:7537
#, c-format
msgid "There is a hole [%#tx - %#<PRIx64>] in %s section.\n"
msgstr "ПоÑтоји рупа [%#tx – %#<PRIx64>] у одељку „%s.\n"
-#: dwarf.c:7521
+#: dwarf.c:7542
#, c-format
msgid "There is an overlap [%#tx - %#<PRIx64>] in %s section.\n"
msgstr "ПоÑтоји преклапање [%#tx – %#<PRIx64>] у одељку „%s“.\n"
-#: dwarf.c:7529
+#: dwarf.c:7550
#, c-format
msgid "Offset %#<PRIx64> is bigger than %s section size.\n"
msgstr "Померај %#<PRIx64> је већи од величине одељка „%s“.\n"
-#: dwarf.c:7536
+#: dwarf.c:7557
#, c-format
msgid "View Offset %#<PRIx64> is bigger than %s section size.\n"
msgstr "Померај прегледа %#<PRIx64> је већи од величине одељка „%s“.\n"
-#: dwarf.c:7553
+#: dwarf.c:7574
msgid "DWO is not yet supported.\n"
msgstr "„DWO“ још није подржано.\n"
-#: dwarf.c:7570
+#: dwarf.c:7591
msgid "Hole and overlap detection requires adjacent view lists and loclists.\n"
msgstr "Откривање рупа и преклапања захтева ÑуÑедне ÑпиÑкове прегледа и ÑпиÑкове меÑта.\n"
-#: dwarf.c:7579
+#: dwarf.c:7600
#, c-format
msgid "There is %ld unused byte at the end of section %s\n"
msgid_plural "There are %ld unused bytes at the end of section %s\n"
@@ -3661,50 +3661,50 @@ msgstr[0] "ПоÑтоји %ld некоришћени бајт на крају о
msgstr[1] "ПоÑтоје %ld некоришћена бајта на крају одељка %s\n"
msgstr[2] "ПоÑтоји %ld некоришћених бајтова на крају одељка %s\n"
-#: dwarf.c:7703
+#: dwarf.c:7724
#, c-format
msgid "Debug info is corrupted, %s header at %#<PRIx64> has length %#<PRIx64>\n"
msgstr "Подаци прочишћавања Ñу оштећени, „%s“ заглавље на %#<PRIx64> је дужине %#<PRIx64>\n"
-#: dwarf.c:7731
+#: dwarf.c:7752
msgid "Only DWARF 2 and 3 aranges are currently supported.\n"
msgstr "Само ДВÐРФ 2 и 3 ређања Ñу тренутно подржана.\n"
-#: dwarf.c:7735
+#: dwarf.c:7756
#, c-format
msgid " Length: %<PRId64>\n"
msgstr " Дужина: %<PRId64>\n"
-#: dwarf.c:7736
+#: dwarf.c:7757
#, c-format
msgid " Version: %d\n"
msgstr " Издање: %d\n"
-#: dwarf.c:7737
+#: dwarf.c:7758
#, c-format
msgid " Offset into .debug_info: %#<PRIx64>\n"
msgstr " Померај у „.debug_info“: %#<PRIx64>\n"
-#: dwarf.c:7739
+#: dwarf.c:7760
#, c-format
msgid " Pointer Size: %d\n"
msgstr " Величина показивача: %d\n"
-#: dwarf.c:7740
+#: dwarf.c:7761
#, c-format
msgid " Segment Size: %d\n"
msgstr " Величина подеока: %d\n"
-#: dwarf.c:7747
+#: dwarf.c:7768
#, c-format
msgid "Invalid address size in %s section!\n"
msgstr "ÐеиÑправна величина адреÑе у одељку %s!\n"
-#: dwarf.c:7757
+#: dwarf.c:7778
msgid "Pointer size + Segment size is not a power of two.\n"
msgstr "Величина показивача + величина подеока није Ñтепен двојке.\n"
-#: dwarf.c:7762
+#: dwarf.c:7783
#, c-format
msgid ""
"\n"
@@ -3713,7 +3713,7 @@ msgstr ""
"\n"
" ÐдреÑа Дужина\n"
-#: dwarf.c:7764
+#: dwarf.c:7785
#, c-format
msgid ""
"\n"
@@ -3722,106 +3722,106 @@ msgstr ""
"\n"
" ÐдреÑа Дужина\n"
-#: dwarf.c:7841
+#: dwarf.c:7862
#, c-format
msgid "Corrupt address base (%#<PRIx64>) found in debug section %u\n"
msgstr "Оштећена оÑнова адреÑе (%#<PRIx64>) је пронађена у одељку прочишћавања %u\n"
-#: dwarf.c:7859
+#: dwarf.c:7880
#, c-format
msgid " For compilation unit at offset %#<PRIx64>:\n"
msgstr " За јединицу превођења на померају %#<PRIx64>:\n"
-#: dwarf.c:7862
+#: dwarf.c:7883
#, c-format
msgid "\tIndex\tAddress\n"
msgstr "\tПопиÑ\tÐдреÑа\n"
-#: dwarf.c:7874
+#: dwarf.c:7895
#, c-format
msgid "Corrupt %s section: expecting header size of 8 or 16, but found %zd instead\n"
msgstr "Оштећени одељак „%s“: очекујући величину заглавља 8 или 16, али нађох %zd\n"
-#: dwarf.c:7885
+#: dwarf.c:7906
#, c-format
msgid "Corrupt %s section: unit_length field of %#<PRIx64> is invalid\n"
msgstr "Оштећен одељак „%s“: поље „unit_length“ од %#<PRIx64> је нетачно\n"
-#: dwarf.c:7892
+#: dwarf.c:7913
#, c-format
msgid "Corrupt %s section: expecting version number 5 in header but found %d instead\n"
msgstr "Оштећени одељак „%s“: очекујући број издања 5 у заглављу, али нађох %d\n"
-#: dwarf.c:7907
+#: dwarf.c:7928
#, c-format
msgid "Corrupt %s section: address size (%x) is wrong\n"
msgstr "Оштећени „%s“ одељак: величина адреÑе (%x) је погрешна\n"
-#: dwarf.c:7915
+#: dwarf.c:7936
#, c-format
msgid "\t%d:\t"
msgstr "\t%d:\t"
-#: dwarf.c:7987 dwarf.c:8011
+#: dwarf.c:8008 dwarf.c:8032
#, c-format
msgid " Length: %#<PRIx64>\n"
msgstr " Дужина: %#<PRIx64>\n"
-#: dwarf.c:7988 dwarf.c:8013
+#: dwarf.c:8009 dwarf.c:8034
#, c-format
msgid " Index Offset [String]\n"
msgstr " Ð˜Ð½Ð´ÐµÐºÑ ÐŸÐ¾Ð¼ÐµÑ€Ð°Ñ˜ [ÐиÑка]\n"
-#: dwarf.c:7996
+#: dwarf.c:8017
#, c-format
msgid "Section %s is too small %#<PRIx64>\n"
msgstr "Одељак „%s“ је премали за %#<PRIx64>\n"
-#: dwarf.c:8004
+#: dwarf.c:8025
#, c-format
msgid "Unexpected version number in str_offset header: %#x\n"
msgstr "Ðеочекивани број издања у заглављу помераја ниÑке: %#x\n"
-#: dwarf.c:8009
+#: dwarf.c:8030
#, c-format
msgid "Unexpected value in str_offset header's padding field: %#x\n"
msgstr "Ðеочекивана вредноÑÑ‚ у пољу попуне заглавља помераја ниÑке: %#x\n"
-#: dwarf.c:8012
+#: dwarf.c:8033
#, c-format
msgid " Version: %#x\n"
msgstr " Издање: %#x\n"
-#: dwarf.c:8134
+#: dwarf.c:8155
#, c-format
msgid "Range list starting at offset %#<PRIx64> is not terminated.\n"
msgstr "СпиÑак опÑега који почиње на померају %#<PRIx64> није окончан.\n"
-#: dwarf.c:8152
+#: dwarf.c:8173
#, c-format
msgid "(base address index) "
msgstr "(Ð¸Ð½Ð´ÐµÐºÑ Ð°Ð´Ñ€ÐµÑа оÑнове) "
-#: dwarf.c:8192
+#: dwarf.c:8213
#, c-format
msgid "Invalid range list entry type %d\n"
msgstr "ÐеиÑправна врÑта уноÑа ÑпиÑка опÑега %d\n"
-#: dwarf.c:8260
+#: dwarf.c:8281
#, c-format
msgid "The length field (%#<PRIx64>) in the debug_rnglists header is wrong - the section is too small\n"
msgstr "Поље дужине (%#<PRIx64>) у заглављу „ÑпиÑковиопÑега_прочишћавања“ је погрешно – одељак је премали\n"
-#: dwarf.c:8277
+#: dwarf.c:8298
#, c-format
msgid " Table at Offset: %#<PRIx64>:\n"
msgstr " Табела на померају: %#<PRIx64>:\n"
-#: dwarf.c:8295
+#: dwarf.c:8316
msgid "Only DWARF version 5+ debug_rnglists info is currently supported.\n"
msgstr "Само DWARF издање 5+ ÑпиÑкова_опÑега_прочишћавања је тренутно подржано.\n"
-#: dwarf.c:8302
+#: dwarf.c:8323
#, c-format
msgid ""
"\n"
@@ -3832,253 +3832,253 @@ msgstr ""
#. This can happen when the file was compiled with -gsplit-debug
#. which removes references to range lists from the primary .o file.
-#: dwarf.c:8369
+#: dwarf.c:8390
#, c-format
msgid "No range lists referenced by .debug_info section.\n"
msgstr "Ðема упутних ÑпиÑкова опÑега у одељку „.debug_info“.\n"
-#: dwarf.c:8398
+#: dwarf.c:8419
#, c-format
msgid "Range lists in %s section start at %#<PRIx64>\n"
msgstr "СпиÑкови опÑега у одељку %s почињу на %#<PRIx64>\n"
-#: dwarf.c:8403 dwarf.c:8438
+#: dwarf.c:8424 dwarf.c:8459
#, c-format
msgid " Offset Begin End\n"
msgstr " Померај Почетак Крај\n"
-#: dwarf.c:8421
+#: dwarf.c:8442
#, c-format
msgid "Corrupt pointer size (%d) in debug entry at offset %#<PRIx64>\n"
msgstr "Оштећена величина показивача (%d) у уноÑу прочишћавања на померају %#<PRIx64>\n"
-#: dwarf.c:8428
+#: dwarf.c:8449
#, c-format
msgid "Corrupt offset (%#<PRIx64>) in range entry %u\n"
msgstr "Оштећен померај (%#<PRIx64>) у уноÑу опÑега %u\n"
-#: dwarf.c:8455
+#: dwarf.c:8476
#, c-format
msgid "There is a hole [%#tx - %#tx] in %s section.\n"
msgstr "ПоÑтоји рупа [%#tx – %#tx] у одељку „%s.\n"
-#: dwarf.c:8461
+#: dwarf.c:8482
#, c-format
msgid "There is an overlap [%#tx - %#tx] in %s section.\n"
msgstr "ПоÑтоји преклапање [%#tx – %#tx] у одељку „%s“.\n"
-#: dwarf.c:8546
+#: dwarf.c:8567
#, c-format
msgid "Unfeasibly large register number: %u\n"
msgstr "ÐеоÑтвариво велики број региÑтра: %u\n"
-#: dwarf.c:8560
+#: dwarf.c:8581
#, c-format
msgid "Out of memory allocating %u columns in dwarf frame arrays\n"
msgstr "Ðема више меморије за додељивање %u Ñтупца у низовима „dwarf“ оквира\n"
-#: dwarf.c:9027
+#: dwarf.c:9077
msgid "No terminator for augmentation name\n"
msgstr "Ðема окончивача за назив повећања\n"
-#: dwarf.c:9045
+#: dwarf.c:9095
#, c-format
msgid "Invalid pointer size (%d) in CIE data\n"
msgstr "ÐеиÑправна величина показивача (%d) у „CIE“ подацима\n"
-#: dwarf.c:9053
+#: dwarf.c:9103
#, c-format
msgid "Invalid segment size (%d) in CIE data\n"
msgstr "ÐеиÑправна величина подеока (%d) у „CIE“ подацима\n"
-#: dwarf.c:9089 dwarf.c:9720
+#: dwarf.c:9139 dwarf.c:9770
#, c-format
msgid "Augmentation data too long: %#<PRIx64>, expected at most %#tx\n"
msgstr "Подаци повећања Ñу предуги: %#<PRIx64>, очекивах највише %#tx\n"
-#: dwarf.c:9174
+#: dwarf.c:9224
#, c-format
msgid " Augmentation data: "
msgstr " Подаци повећања: "
-#: dwarf.c:9332
+#: dwarf.c:9382
msgid ".eh_frame_hdr section is too small\n"
msgstr "Одељак „.eh_frame_hdr“ опција је премали.\n"
-#: dwarf.c:9339
+#: dwarf.c:9389
#, c-format
msgid "Unsupported .eh_frame_hdr version %u\n"
msgstr "Ðеподржано „.eh_frame_hdr“ издање %u\n"
-#: dwarf.c:9343 dwarf.c:11269
+#: dwarf.c:9393 dwarf.c:11324
#, c-format
msgid " Version: %u\n"
msgstr " Издање: %u\n"
#. Strictly speaking this is the encoding format of the eh_frame_ptr field below.
-#: dwarf.c:9347
+#: dwarf.c:9397
#, c-format
msgid " Pointer Encoding Format: %#x (%s)\n"
msgstr " Формат кодирања показивача: %#x (%s)\n"
-#: dwarf.c:9350
+#: dwarf.c:9400
#, c-format
msgid " Count Encoding Format: %#x (%s)\n"
msgstr " Формат кодирања бројања: %#x (%s)\n"
-#: dwarf.c:9353
+#: dwarf.c:9403
#, c-format
msgid " Table Encoding Format: %#x (%s)\n"
msgstr " Формат кодирања табеле: %#x (%s)\n"
-#: dwarf.c:9362
+#: dwarf.c:9412
msgid "unable to read eh_frame_ptr field in .eh_frame_hdr section\n"
msgstr "не могу да прочитам поље „eh_frame_ptr“ у одељку „.eh_frame_hdr“\n"
-#: dwarf.c:9365
+#: dwarf.c:9415
#, c-format
msgid " Start of frame section: %#<PRIx64>"
msgstr " Почетак одељка оквира: %#<PRIx64>"
-#: dwarf.c:9369
+#: dwarf.c:9419
#, c-format
msgid " (offset: %#<PRIx64>)"
msgstr " (помераај: %#<PRIx64>)"
-#: dwarf.c:9376
+#: dwarf.c:9426
msgid "It is suspicious to have a .eh_frame_hdr section with an empty search table\n"
msgstr "Сумњиво је имати „.eh_frame_hdr“ одељак Ñа празном табелом претраге\n"
-#: dwarf.c:9382
+#: dwarf.c:9432
msgid "The count field format should be absolute, not relative to an address\n"
msgstr "Формат поља укупноÑти треба бити апÑолутан а не релативан на адреÑу\n"
-#: dwarf.c:9389
+#: dwarf.c:9439
msgid "unable to read fde_count field in .eh_frame_hdr section\n"
msgstr "не могу да прочитам поље „fde_count“ у одељку „.eh_frame_hdr“\n"
-#: dwarf.c:9392
+#: dwarf.c:9442
#, c-format
msgid " Entries in search table: %#<PRIx64>"
msgstr " УноÑи у табели претраге: %#<PRIx64>"
-#: dwarf.c:9398
+#: dwarf.c:9448
msgid "It is suspicious to have a .eh_frame_hdr section an empty table but a non empty count field\n"
msgstr "Сумњиво је да „.eh_frame_hdr“ одељак има празну табелу али не и празно поље укупноÑти\n"
-#: dwarf.c:9412
+#: dwarf.c:9462
#, c-format
msgid "Failed to read location field for entry %#<PRIx64> in the .eh_frame_hdr's search table\n"
msgstr "ÐиÑам уÑпео да прочитам поље меÑта за ÑƒÐ½Ð¾Ñ %#<PRIx64> у „.eh_frame_hdr“ табели претраге\n"
-#: dwarf.c:9420
+#: dwarf.c:9470
#, c-format
msgid "Failed to read address field for entry %#<PRIx64> in the .eh_frame_hdr's search table\n"
msgstr "ÐиÑам упео да прочитам поље адреÑе за ÑƒÐ½Ð¾Ñ %#<PRIx64> у „.eh_frame_hdr“ табели претраге\n"
-#: dwarf.c:9449
+#: dwarf.c:9499
msgid "bad register: "
msgstr "лош региÑтар: "
-#: dwarf.c:9620
+#: dwarf.c:9670
msgid "Failed to read CIE information\n"
msgstr "ÐиÑам уÑпео да прочитам „CIE“ податке\n"
-#: dwarf.c:9631 dwarf.c:9652 dwarf.c:9681
+#: dwarf.c:9681 dwarf.c:9702 dwarf.c:9731
msgid "Invalid max register\n"
msgstr "ÐеиÑправан највећи региÑтар\n"
#. PR 17512: file: 9e196b3e.
-#: dwarf.c:9696
+#: dwarf.c:9746
#, c-format
msgid "Probably corrupt segment size: %d - using 4 instead\n"
msgstr "Вероватно је оштећена величина подеока: %d – кориÑтићу 4\n"
#. Ideally translate "invalid " to 8 chars, trailing space
#. is optional.
-#: dwarf.c:9740
+#: dwarf.c:9790
#, c-format
msgid "cie=invalid "
msgstr "cie=нетачно "
-#: dwarf.c:10174
+#: dwarf.c:10224
msgid "Invalid column number in saved frame state\n"
msgstr "ÐеиÑправан број Ñтупца у Ñачуваном Ñтању оквира\n"
-#: dwarf.c:10224 dwarf.c:10248
+#: dwarf.c:10274 dwarf.c:10298
#, c-format
msgid " %s: <corrupt len %<PRIu64>>\n"
msgstr " %s: <оштећена дужина %<PRIu64>>\n"
-#: dwarf.c:10392
+#: dwarf.c:10447
#, c-format
msgid " DW_CFA_??? (User defined call frame op: %#x)\n"
msgstr " DW_CFA_??? (Оп кадра позива који је одредио кориÑник: %#x)\n"
-#: dwarf.c:10394
+#: dwarf.c:10449
#, c-format
msgid "Unsupported or unknown Dwarf Call Frame Instruction number: %#x\n"
msgstr "Ðеподржан или непознат број инÑтрукције „Dwarf Call Frame“: %#x\n"
-#: dwarf.c:10498
+#: dwarf.c:10553
#, c-format
msgid "Debug info is corrupted, %s header at %#tx has length %#<PRIx64>\n"
msgstr "Подаци прочишћавања Ñу оштећени, „%s“ заглавље на %#tx је дужине %#<PRIx64>\n"
-#: dwarf.c:10507
+#: dwarf.c:10562
#, c-format
msgid "Version %d\n"
msgstr "Издање %d\n"
-#: dwarf.c:10513
+#: dwarf.c:10568
msgid "Only DWARF version 5 .debug_names is currently supported.\n"
msgstr "Само „DWARF“ издање 5 „.назива_прочишћавања“ је тренутно подржано.\n"
-#: dwarf.c:10520
+#: dwarf.c:10575
#, c-format
msgid "Padding field of .debug_names must be 0 (found 0x%x)\n"
msgstr "Поље попуњавања за „.debug_names“ мора бити 0 (нађох 0x%x)\n"
-#: dwarf.c:10525
+#: dwarf.c:10580
msgid "Compilation unit count must be >= 1 in .debug_names\n"
msgstr "Број јединица иÑпуњавања мора бити >= 1 у „.debug_names“\n"
-#: dwarf.c:10536
+#: dwarf.c:10591
#, c-format
msgid "Augmentation string length %u must be rounded up to a multiple of 4 in .debug_names.\n"
msgstr "Дужина ниÑке повећања %u мора бити заокружена на производ 4 у „.debug_names“.\n"
-#: dwarf.c:10544
+#: dwarf.c:10599
#, c-format
msgid "Augmentation string:"
msgstr "ÐиÑка повећања:"
-#: dwarf.c:10571
+#: dwarf.c:10626
#, c-format
msgid "CU table:\n"
msgstr "ЦУ табела:\n"
-#: dwarf.c:10584
+#: dwarf.c:10639
#, c-format
msgid "TU table:\n"
msgstr "ТУ табела:\n"
-#: dwarf.c:10597
+#: dwarf.c:10652
#, c-format
msgid "Foreign TU table:\n"
msgstr "Страна ТУ табела:\n"
-#: dwarf.c:10606
+#: dwarf.c:10661
#, c-format
msgid "[%3u] "
msgstr "[%3u] "
-#: dwarf.c:10617
+#: dwarf.c:10672
#, c-format
msgid "Entry pool offset (%#<PRIx64>) exceeds unit size %#tx for unit %#tx in the debug_names\n"
msgstr "Померај уноÑа припреме (%#<PRIx64>) превазилази величину јединице %#tx за јединицу %#tx у називима_прочишћавања\n"
-#: dwarf.c:10645
+#: dwarf.c:10700
#, c-format
msgid "Used %zu of %lu bucket.\n"
msgid_plural "Used %zu of %lu buckets.\n"
@@ -4086,22 +4086,22 @@ msgstr[0] "Коришћено је %zu од %lu ведара.\n"
msgstr[1] "Коришћена Ñу %zu од %lu ведара.\n"
msgstr[2] "Коришћено је %zu од %lu ведара.\n"
-#: dwarf.c:10674
+#: dwarf.c:10729
#, c-format
msgid "Out of %<PRIu64> items there are %zu bucket clashes (longest of %zu entries).\n"
msgstr "Од %<PRIu64> Ñтавке имамо %zu преклапања ведра (најдужих од %zu уноÑа).\n"
-#: dwarf.c:10679
+#: dwarf.c:10734
#, c-format
msgid "The name_count (%<PRIu64>) is not the same as the used bucket_count (%zu) + the hash clash count (%zu)\n"
msgstr "УкупноÑÑ‚ назива (%<PRIu64>) није иÑта као коришћена укупноÑÑ‚ ведра (%zu) + укупноÑÑ‚ преклапања хеша (%zu)\n"
-#: dwarf.c:10717
+#: dwarf.c:10772
#, c-format
msgid "Duplicate abbreviation tag %<PRIu64> in unit %#tx in the debug_names section\n"
msgstr "УдвоÑтручена ознака Ñкраћења %<PRIu64> у јединици %#tx у одељку „debug_names“\n"
-#: dwarf.c:10739 dwarf.c:11042
+#: dwarf.c:10794 dwarf.c:11097
#, c-format
msgid ""
"\n"
@@ -4110,91 +4110,91 @@ msgstr ""
"\n"
"Табела Ñимбола:\n"
-#: dwarf.c:10772
+#: dwarf.c:10827
#, c-format
msgid "Invalid entry offset value: %<PRIx64>\n"
msgstr "Ðетачна вредноÑÑ‚ помераја уноÑа: %<PRIx64>\n"
-#: dwarf.c:10804
+#: dwarf.c:10859
#, c-format
msgid "Undefined abbreviation tag %<PRId64> in unit %#tx in the debug_names section\n"
msgstr "Ðеодређена ознака Ñкраћења %<PRId64> у јединици %#tx у одељку „debug_names“\n"
-#: dwarf.c:10835
+#: dwarf.c:10890
#, c-format
msgid " <no entries>"
msgstr " <нема уноÑа>"
-#: dwarf.c:10867
+#: dwarf.c:10922
msgid "The debuglink filename is corrupt/missing\n"
msgstr "Ðазив датотеке везе прочишћавања је оштећен или недоÑтаје\n"
-#: dwarf.c:10871
+#: dwarf.c:10926
#, c-format
msgid " Separate debug info file: %s\n"
msgstr " Одвојена датотека података прочишћавања: %s\n"
-#: dwarf.c:10882
+#: dwarf.c:10937
msgid "CRC offset missing/truncated\n"
msgstr "„CRC“ померај недоÑтаје или је Ñкраћен\n"
-#: dwarf.c:10888
+#: dwarf.c:10943
#, c-format
msgid " CRC value: %#x\n"
msgstr " „CRC“ вредноÑÑ‚: %#x\n"
-#: dwarf.c:10892
+#: dwarf.c:10947
#, c-format
msgid "There are %#<PRIx64> extraneous bytes at the end of the section\n"
msgstr "ПоÑтоје %#<PRIx64> Ñтрана бајта на крају одељка\n"
-#: dwarf.c:10907
+#: dwarf.c:10962
#, c-format
msgid "Build-ID is too short (%#zx bytes)\n"
msgstr "ИД изградње је прекратак (%#zx бајта)\n"
-#: dwarf.c:10911
+#: dwarf.c:10966
#, c-format
msgid " Build-ID (%#zx bytes):"
msgstr " ИБ изградње (%#zx бајта):"
-#: dwarf.c:10943
+#: dwarf.c:10998
#, c-format
msgid "Truncated header in the %s section.\n"
msgstr "Скраћено заглавље у одељку %s.\n"
-#: dwarf.c:10947
+#: dwarf.c:11002
#, c-format
msgid "Version %lu\n"
msgstr "Издање %lu\n"
-#: dwarf.c:10953
+#: dwarf.c:11008
#, c-format
msgid "Unsupported version %lu.\n"
msgstr "Издање %lu није подржано.\n"
-#: dwarf.c:10957
+#: dwarf.c:11012
msgid "The address table data in version 3 may be wrong.\n"
msgstr "Можда Ñу погрешни подаци табеле адреÑе у издању 3.\n"
-#: dwarf.c:10959
+#: dwarf.c:11014
msgid "Version 4 does not support case insensitive lookups.\n"
msgstr "Издање 4 не подржава тражење неоÑетљиво на величину Ñлова.\n"
-#: dwarf.c:10961
+#: dwarf.c:11016
msgid "Version 5 does not include inlined functions.\n"
msgstr "Издање 5 не укључује уграђене функције.\n"
-#: dwarf.c:10963
+#: dwarf.c:11018
msgid "Version 6 does not include symbol attributes.\n"
msgstr "Издање 6 не укључује атрибуте Ñимбола.\n"
-#: dwarf.c:10991
+#: dwarf.c:11046
#, c-format
msgid "Corrupt header in the %s section.\n"
msgstr "Оштећено заглавље у одељку %s.\n"
-#: dwarf.c:11007
+#: dwarf.c:11062
#, c-format
msgid ""
"\n"
@@ -4203,7 +4203,7 @@ msgstr ""
"\n"
"ЦУ табела:\n"
-#: dwarf.c:11017
+#: dwarf.c:11072
#, c-format
msgid ""
"\n"
@@ -4212,7 +4212,7 @@ msgstr ""
"\n"
"ТУ табела:\n"
-#: dwarf.c:11030
+#: dwarf.c:11085
#, c-format
msgid ""
"\n"
@@ -4221,40 +4221,40 @@ msgstr ""
"\n"
"Табела адреÑе:\n"
-#: dwarf.c:11057
+#: dwarf.c:11112
#, c-format
msgid "[%3u] <corrupt offset: %x>"
msgstr "[%3u] <оштећен померај: %x>"
-#: dwarf.c:11058
+#: dwarf.c:11113
#, c-format
msgid "Corrupt name offset of 0x%x found for symbol table slot %d\n"
msgstr "Ðађох оштећен померај назива 0x%x за утор табеле Ñимбола %d\n"
-#: dwarf.c:11069
+#: dwarf.c:11124
#, c-format
msgid "<invalid CU vector offset: %x>\n"
msgstr "<неиÑправан померај ЦУ вектора: %x>\n"
-#: dwarf.c:11070
+#: dwarf.c:11125
#, c-format
msgid "Corrupt CU vector offset of 0x%x found for symbol table slot %d\n"
msgstr "Ðађох оштећен померај ЦУ вектора 0x%x за утор табеле Ñимбола %d\n"
-#: dwarf.c:11081
+#: dwarf.c:11136
#, c-format
msgid "Invalid number of CUs (0x%x) for symbol table slot %d\n"
msgstr "ÐеиÑправан број ЦУ-ова (0x%x) за утор табеле Ñимбола %d\n"
-#: dwarf.c:11106
+#: dwarf.c:11161
msgid "static"
msgstr "Ñтатичко"
-#: dwarf.c:11106
+#: dwarf.c:11161
msgid "global"
msgstr "опште"
-#: dwarf.c:11118
+#: dwarf.c:11173
#, c-format
msgid ""
"\n"
@@ -4263,57 +4263,57 @@ msgstr ""
"\n"
"Табела пречица:\n"
-#: dwarf.c:11122
+#: dwarf.c:11177
#, c-format
msgid "Corrupt shortcut table in the %s section.\n"
msgstr "Оштећена табела Ñкраћенице у одељку %s.\n"
-#: dwarf.c:11127
+#: dwarf.c:11182
#, c-format
msgid "Language of main: "
msgstr "Језик главног: "
-#: dwarf.c:11131
+#: dwarf.c:11186
#, c-format
msgid "Name of main: "
msgstr "Ðазив главног: "
-#: dwarf.c:11133
+#: dwarf.c:11188
#, c-format
msgid "<unknown>\n"
msgstr "<непознато>\n"
-#: dwarf.c:11139
+#: dwarf.c:11194
#, c-format
msgid "<corrupt offset: %x>\n"
msgstr "<оштећен померај: %x>\n"
-#: dwarf.c:11140
+#: dwarf.c:11195
#, c-format
msgid "Corrupt name offset of 0x%x found for name of main\n"
msgstr "Ðађох оштећен померај назива 0x%x за назив главног\n"
-#: dwarf.c:11244
+#: dwarf.c:11299
#, c-format
msgid "Section %s is empty\n"
msgstr "Одељак %s је празан\n"
-#: dwarf.c:11250
+#: dwarf.c:11305
#, c-format
msgid "Section %s is too small to contain a CU/TU header\n"
msgstr "Одељак „%s“ је премали да Ñадржи ЦУ/ТУ заглавље\n"
-#: dwarf.c:11271
+#: dwarf.c:11326
#, c-format
msgid " Number of columns: %u\n"
msgstr " Број Ñтубаца: %u\n"
-#: dwarf.c:11272
+#: dwarf.c:11327
#, c-format
msgid " Number of used entries: %u\n"
msgstr " Број коришћених уноÑа: %u\n"
-#: dwarf.c:11273
+#: dwarf.c:11328
#, c-format
msgid ""
" Number of slots: %u\n"
@@ -4322,7 +4322,7 @@ msgstr ""
" Број прикључака: %u\n"
"\n"
-#: dwarf.c:11280
+#: dwarf.c:11335
#, c-format
msgid "Section %s is too small for %u slot\n"
msgid_plural "Section %s is too small for %u slots\n"
@@ -4330,125 +4330,125 @@ msgstr[0] "Одељак „%s“ је премали за %u утор\n"
msgstr[1] "Одељак „%s“ је премали за %u утора\n"
msgstr[2] "Одељак „%s“ је премали за %u утора\n"
-#: dwarf.c:11313
+#: dwarf.c:11368
msgid "Section index pool located before start of section\n"
msgstr "Припрема индекÑа одељка Ñе налази пре почетка одељка\n"
-#: dwarf.c:11317
+#: dwarf.c:11372
#, c-format
msgid " [%3d] Signature: %#<PRIx64> Sections: "
msgstr " [%3d] ПотпиÑ: %#<PRIx64> Одељци: "
-#: dwarf.c:11323
+#: dwarf.c:11378
#, c-format
msgid "Section %s too small for shndx pool\n"
msgstr "Одељак „%s“ је премали за „shndx“ припрему\n"
-#: dwarf.c:11366
+#: dwarf.c:11421
#, c-format
msgid "Section %s too small for offset and size tables\n"
msgstr "Одељак „%s“ је премали за табеле помераја и величине\n"
-#: dwarf.c:11373
+#: dwarf.c:11428
#, c-format
msgid " Offset table\n"
msgstr " Табела помераја\n"
-#: dwarf.c:11375 dwarf.c:11462
+#: dwarf.c:11430 dwarf.c:11517
msgid "signature"
msgstr "потпиÑ"
-#: dwarf.c:11375 dwarf.c:11462
+#: dwarf.c:11430 dwarf.c:11517
msgid "dwo_id"
msgstr "dwo_id"
-#: dwarf.c:11414
+#: dwarf.c:11469
#, c-format
msgid "Row index (%u) is larger than number of used entries (%u)\n"
msgstr "Ð˜Ð½Ð´ÐµÐºÑ Ñ€ÐµÐ´Ð° (%u) је већи од броја коришћених уноÑа (%u)\n"
-#: dwarf.c:11442 dwarf.c:11513
+#: dwarf.c:11497 dwarf.c:11568
#, c-format
msgid "Overlarge Dwarf section index detected: %u\n"
msgstr "Откривен је превелик Ð¸Ð½Ð´ÐµÐºÑ â€ždwarf“ одељка: %u\n"
-#: dwarf.c:11460
+#: dwarf.c:11515
#, c-format
msgid " Size table\n"
msgstr " Табела величине\n"
-#: dwarf.c:11499
+#: dwarf.c:11554
#, c-format
msgid "Too many rows/columns in DWARF index section %s\n"
msgstr "Превише редова/колона у „DWARF“ одељку индекÑа „%s“\n"
-#: dwarf.c:11528
+#: dwarf.c:11583
#, c-format
msgid " Unsupported version (%d)\n"
msgstr " Ðеподржано издање (%d)\n"
-#: dwarf.c:11600
+#: dwarf.c:11655
#, c-format
msgid "Displaying the debug contents of section %s is not yet supported.\n"
msgstr "Приказивање Ñадржаја прочишћавања одељка %s још није подржано.\n"
-#: dwarf.c:11631
+#: dwarf.c:11686
#, c-format
msgid "Attempt to allocate an array with an excessive number of elements: %#<PRIx64>\n"
msgstr "Покушах да доделим низ Ñа превеликим бројем елемената: %#<PRIx64>\n"
-#: dwarf.c:11649
+#: dwarf.c:11704
#, c-format
msgid "Attempt to re-allocate an array with an excessive number of elements: %#<PRIx64>\n"
msgstr "Покушах поново да доделим низ Ñа превеликим бројем елемената: %#<PRIx64>\n"
-#: dwarf.c:11665
+#: dwarf.c:11720
#, c-format
msgid "Attempt to allocate a zero'ed array with an excessive number of elements: %#<PRIx64>\n"
msgstr "Покушах да доделим нулиран низ Ñа превеликим бројем елемената: %#<PRIx64>\n"
-#: dwarf.c:11763
+#: dwarf.c:11818
#, c-format
msgid "Unable to reopen separate debug info file: %s\n"
msgstr "Ðе могу поново да отворим одвојену датотеку података прочишћавања: %s\n"
-#: dwarf.c:11775
+#: dwarf.c:11830
#, c-format
msgid "Separate debug info file %s found, but CRC does not match - ignoring\n"
msgstr "Ðађох одвојену датотеку података прочишћавања „%s“, али „CRC“ не одговара – занемарујем\n"
-#: dwarf.c:11954
+#: dwarf.c:12010
#, c-format
msgid "Corrupt debuglink section: %s\n"
msgstr "Оштећен одељак везе прочишћавања: %s\n"
-#: dwarf.c:11993 elfcomm.c:295 elfcomm.c:320 elfcomm.c:794
+#: dwarf.c:12049 elfcomm.c:295 elfcomm.c:320 elfcomm.c:794
msgid "Out of memory\n"
msgstr "ПонеÑтало је меморије\n"
#. Failed to find the file.
-#: dwarf.c:12069
+#: dwarf.c:12125
#, c-format
msgid "could not find separate debug file '%s'\n"
msgstr "не могу да нађем одвојену датотеку прочишћавања „%s“\n"
-#: dwarf.c:12071 dwarf.c:12076 dwarf.c:12082 dwarf.c:12086 dwarf.c:12091
-#: dwarf.c:12094 dwarf.c:12097 dwarf.c:12100
+#: dwarf.c:12127 dwarf.c:12132 dwarf.c:12138 dwarf.c:12142 dwarf.c:12147
+#: dwarf.c:12150 dwarf.c:12153 dwarf.c:12156
#, c-format
msgid "tried: %s\n"
msgstr "покушах „%s“\n"
-#: dwarf.c:12110
+#: dwarf.c:12166
#, c-format
msgid "tried: DEBUGINFOD_URLS=%s\n"
msgstr "покушах: „DEBUGINFOD_URLS=%s“\n"
-#: dwarf.c:12138
+#: dwarf.c:12194
#, c-format
msgid "failed to open separate debug file: %s\n"
msgstr "ниÑам уÑпео да отворим одвојену датотеку прочишћавања: %s\n"
-#: dwarf.c:12147
+#: dwarf.c:12203
#, c-format
msgid ""
"\n"
@@ -4457,17 +4457,17 @@ msgstr ""
"\n"
"%s: Ðађох одвојену датотеку података прочишћавања: %s\n"
-#: dwarf.c:12170
+#: dwarf.c:12226
msgid "Out of memory allocating dwo filename\n"
msgstr "ПонеÑтало је меморије приликом додељивања „dwo“ назива датотеке\n"
-#: dwarf.c:12176
+#: dwarf.c:12232
#, c-format
msgid "Unable to load dwo file: %s\n"
msgstr "Ðе могу да учитам „dwo“ датотеку: %s\n"
#. FIXME: We should check the dwo_id.
-#: dwarf.c:12183
+#: dwarf.c:12239
#, c-format
msgid ""
"%s: Found separate debug object file: %s\n"
@@ -4476,44 +4476,36 @@ msgstr ""
"%s: Ðађох одвојену датотеку објекта прочишћавања: %s\n"
"\n"
-#: dwarf.c:12215
+#: dwarf.c:12271
msgid "Unable to load the .note.gnu.build-id section\n"
msgstr "Ðе могу да учитам одељак „.note.gnu.build-id“\n"
-#: dwarf.c:12221
+#: dwarf.c:12277
msgid ".note.gnu.build-id section is corrupt/empty\n"
msgstr "одељак „.note.gnu.build-id“ је оштећен/празан\n"
-#: dwarf.c:12242
+#: dwarf.c:12298
msgid ".note.gnu.build-id data size is too small\n"
msgstr "величина података „.note.gnu.build-id“ је премала\n"
-#: dwarf.c:12248
+#: dwarf.c:12304
msgid ".note.gnu.build-id data size is too big\n"
msgstr "величина података „.note.gnu.build-id“ је превелика\n"
-#: dwarf.c:12309
+#: dwarf.c:12365
msgid ".debug_sup section is corrupt/empty\n"
msgstr "одељак „.debug_sup“ је оштећен/празан\n"
-#: dwarf.c:12319
+#: dwarf.c:12375
msgid "filename in .debug_sup section is corrupt\n"
msgstr "назив датотеке у „.debug_sup“ одељку је оштећен\n"
-#: dwarf.c:12334
-msgid "unable to construct path for supplementary debug file\n"
-msgstr "не могу да направим путању за додатну датотеку прочишћавања\n"
-
-#: dwarf.c:12348
-msgid "out of memory constructing filename for .debug_sup link\n"
-msgstr "неÑтало је меморије приликом изградње назива датотеке за „.debug_sup“ везу\n"
-
-#: dwarf.c:12356
+#: dwarf.c:12392
#, c-format
msgid "unable to open file '%s' referenced from .debug_sup section\n"
msgstr "не могу да отворим датотеку „%s“ упутну из „.debug_sup“ одељка\n"
-#: dwarf.c:12361
+#: dwarf.c:12397
#, c-format
msgid ""
"%s: Found supplementary debug file: %s\n"
@@ -4522,19 +4514,19 @@ msgstr ""
"%s: Ðађох додатну датотеку прочишћавања: %s\n"
"\n"
-#: dwarf.c:12462
+#: dwarf.c:12498
msgid "Multiple DWO_NAMEs encountered for the same CU\n"
msgstr "Ðаиђох на више „DWO_NAME“-а за иÑту ЦЈ\n"
-#: dwarf.c:12474
+#: dwarf.c:12510
msgid "multiple DWO_IDs encountered for the same CU\n"
msgstr "наиђох на више „DWO_ID“-а за иÑту ЦЈ\n"
-#: dwarf.c:12479
+#: dwarf.c:12515
msgid "Unexpected DWO INFO type"
msgstr "Ðеочекивана „DWO INFO“ врÑта"
-#: dwarf.c:12494
+#: dwarf.c:12530
#, c-format
msgid ""
"The %s section contains link(s) to dwo file(s):\n"
@@ -4543,36 +4535,36 @@ msgstr ""
"Одељак „%s“ Ñадржи везу до „dwo“ датотеке:\n"
"\n"
-#: dwarf.c:12499
+#: dwarf.c:12535
#, c-format
msgid " Name: %s\n"
msgstr " Ðазив: %s\n"
-#: dwarf.c:12500
+#: dwarf.c:12536
#, c-format
msgid " Directory: %s\n"
msgstr " Директоријум: %s\n"
-#: dwarf.c:12500
+#: dwarf.c:12536
msgid "<not-found>"
msgstr "<ниÑам нашао>"
-#: dwarf.c:12502
+#: dwarf.c:12538
#, c-format
msgid " ID: "
msgstr " ИБ: "
-#: dwarf.c:12504
+#: dwarf.c:12540
#, c-format
msgid " ID: <not specified>\n"
msgstr " ИБ: <није наведено>\n"
-#: dwarf.c:12661
+#: dwarf.c:12697
#, c-format
msgid "Unrecognized debug option '%s'\n"
msgstr "Ðепозната опција прочишћавања „%s“\n"
-#: dwarf.c:12705
+#: dwarf.c:12741
#, c-format
msgid "Unrecognized debug letter option '%c'\n"
msgstr "Ðепозната опција Ñлова прочишћавања „%c“\n"
@@ -4669,7 +4661,7 @@ msgstr "%s: ниÑам уÑпео да премотам до првог загл
#. PR 24049 - we cannot use filedata->file_name as this will
#. have already been freed.
-#: elfcomm.c:518 elfcomm.c:752 elfedit.c:613 readelf.c:23987
+#: elfcomm.c:518 elfcomm.c:752 elfedit.c:613 readelf.c:24034
#, c-format
msgid "%s: failed to read archive header\n"
msgstr "%s: ниÑам уÑпео да прочитам заглавље архиве\n"
@@ -4716,7 +4708,7 @@ msgstr "ÐеиÑправан назив члана танане архиве\n"
msgid "%s: failed to seek to next file name\n"
msgstr "%s: ниÑам уÑпео да премотам до Ñледећег назива датотеке\n"
-#: elfcomm.c:757 elfedit.c:620 readelf.c:23994
+#: elfcomm.c:757 elfedit.c:620 readelf.c:24041
#, c-format
msgid "%s: did not find a valid archive header\n"
msgstr "%s: ниÑам пронашао иÑправно заглавље архиве\n"
@@ -4804,12 +4796,12 @@ msgstr "%s: ÐиÑам уÑпео да прочитам ЕЛФ заглавље\
msgid "%s: Failed to seek to ELF header\n"
msgstr "%s: ÐиÑам уÑпео да премотам до ЕЛФ заглавља\n"
-#: elfedit.c:604 readelf.c:23975
+#: elfedit.c:604 readelf.c:24022
#, c-format
msgid "%s: failed to seek to next archive header\n"
msgstr "%s: ниÑам уÑпео да премотам до Ñледећег заглавља архиве\n"
-#: elfedit.c:635 elfedit.c:644 readelf.c:24007 readelf.c:24016
+#: elfedit.c:635 elfedit.c:644 readelf.c:24054 readelf.c:24063
#, c-format
msgid "%s: bad archive file name\n"
msgstr "%s: лош назив датотеке архиве\n"
@@ -4824,22 +4816,22 @@ msgstr "Улазна датотека „%s“ није читљива\n"
msgid "%s: failed to seek to archive member\n"
msgstr "%s: ниÑам уÑпео да премотам до члана архиве\n"
-#: elfedit.c:735 readelf.c:24135
+#: elfedit.c:735 readelf.c:24182
#, c-format
msgid "'%s': No such file\n"
msgstr "„%s“: Ðема такве датотеке\n"
-#: elfedit.c:737 readelf.c:24137
+#: elfedit.c:737 readelf.c:24184
#, c-format
msgid "Could not locate '%s'. System error message: %s\n"
msgstr "Ðе могу да пронађем „%s“. Порука грешке ÑиÑтема: %s\n"
-#: elfedit.c:758 readelf.c:24144
+#: elfedit.c:758 readelf.c:24191
#, c-format
msgid "'%s' is not an ordinary file\n"
msgstr "„%s“ није обична датотека\n"
-#: elfedit.c:784 readelf.c:24166
+#: elfedit.c:784 readelf.c:24213
#, c-format
msgid "%s: Failed to read file's magic number\n"
msgstr "%s: ÐиÑам уÑпео да прочитам магичан број датотеке\n"
@@ -4989,7 +4981,7 @@ msgstr " -B ИÑто као „--format=bsd“\n"
msgid " -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
msgstr " -C, --demangle[=СТИЛ] Декодира прекрштене/обрађене називе Ñимбола\n"
-#: nm.c:303 readelf.c:6179
+#: nm.c:303 readelf.c:6202
msgid " STYLE can be "
msgstr " СТИЛ може бити "
@@ -5182,27 +5174,27 @@ msgstr "%s: неиÑправна бројевна оÑнова"
msgid "%s: invalid output format"
msgstr "%s: неиÑправан излазни запиÑ"
-#: nm.c:451 readelf.c:13713 readelf.c:13756
+#: nm.c:450 readelf.c:13743 readelf.c:13786
#, c-format
msgid "<processor specific>: %d"
msgstr "<поÑебноÑÑ‚ процеÑора>: %d"
-#: nm.c:453 readelf.c:13720 readelf.c:13773
+#: nm.c:452 readelf.c:13750 readelf.c:13803
#, c-format
msgid "<OS specific>: %d"
msgstr "<ПоÑебноÑÑ‚ ОС-а>: %d"
-#: nm.c:455 readelf.c:13723 readelf.c:13776
+#: nm.c:454 readelf.c:13753 readelf.c:13806
#, c-format
msgid "<unknown>: %d"
msgstr "<непознато>: %d"
-#: nm.c:485
+#: nm.c:481
#, c-format
msgid "<unknown>: %d/%d"
msgstr "<непознато>: %d/%d"
-#: nm.c:747
+#: nm.c:749
#, c-format
msgid ""
"\n"
@@ -5211,12 +5203,12 @@ msgstr ""
"\n"
"Ð˜Ð½Ð´ÐµÐºÑ Ð°Ñ€Ñ…Ð¸Ð²Ðµ:\n"
-#: nm.c:801 nm.c:1474
+#: nm.c:803 nm.c:1476
#, c-format
msgid "%s: plugin needed to handle lto object"
msgstr "%s: потребан је прикључак за руковање „lto“ објектом"
-#: nm.c:1691
+#: nm.c:1685
#, c-format
msgid ""
"\n"
@@ -5229,7 +5221,7 @@ msgstr ""
"Ðеодређени Ñимболи из %s:\n"
"\n"
-#: nm.c:1693
+#: nm.c:1687
#, c-format
msgid ""
"\n"
@@ -5242,7 +5234,7 @@ msgstr ""
"Симболи из „%s“:\n"
"\n"
-#: nm.c:1695 nm.c:1756
+#: nm.c:1689 nm.c:1750
#, c-format
msgid ""
"Name Value Class Type Size Line Section\n"
@@ -5251,7 +5243,7 @@ msgstr ""
"Ðазив Вред Разред Ð’Ñ€Ñта Вел Ред Одељак\n"
"\n"
-#: nm.c:1698 nm.c:1759
+#: nm.c:1692 nm.c:1753
#, c-format
msgid ""
"Name Value Class Type Size Line Section\n"
@@ -5260,7 +5252,7 @@ msgstr ""
"Ðазив Вред Разред Ð’Ñ€Ñта Вел Ред Одељак\n"
"\n"
-#: nm.c:1752
+#: nm.c:1746
#, c-format
msgid ""
"\n"
@@ -5273,7 +5265,7 @@ msgstr ""
"Ðеодређени Ñимболи из %s[%s]:\n"
"\n"
-#: nm.c:1754
+#: nm.c:1748
#, c-format
msgid ""
"\n"
@@ -5286,25 +5278,25 @@ msgstr ""
"Симболи из %s[%s]:\n"
"\n"
-#: nm.c:1838
+#: nm.c:1832
#, c-format
msgid "Print width has not been initialized (%d)"
msgstr "Ширина иÑпиÑивања није покренута (%d)"
-#: nm.c:2103 objdump.c:6347 readelf.c:6646 strings.c:314
+#: nm.c:2097 objdump.c:6330 readelf.c:6669 strings.c:314
#, c-format
msgid "invalid argument to -U/--unicode: %s"
msgstr "неиÑправан аргумент за „-U/--unicode“: %s"
-#: nm.c:2121
+#: nm.c:2115
msgid "Only -X 32_64 is supported"
msgstr "Подржано је Ñамо „-X 32_64“"
-#: nm.c:2153
+#: nm.c:2147
msgid "Using the --size-sort and --undefined-only options together"
msgstr "КориÑтим заједно опције „--size-sort“ и „--undefined-only“"
-#: nm.c:2154
+#: nm.c:2148
msgid "will produce no output, since undefined symbols have no size."
msgstr "неће дати никаквих резултата, јер неодређени Ñимболи немају величину."
@@ -5692,7 +5684,7 @@ msgstr "грешка: „%s“ и подешава и мења ЛМÐ"
msgid "cannot open '%s': %s"
msgstr "не могу да отворим „%s“ : %s"
-#: objcopy.c:1125 objcopy.c:5313
+#: objcopy.c:1125 objcopy.c:5282
#, c-format
msgid "%s: fread failed"
msgstr "%s: није уÑпело оÑлобађање"
@@ -5702,642 +5694,642 @@ msgstr "%s: није уÑпело оÑлобађање"
msgid "%s:%d: Ignoring rubbish found on this line"
msgstr "%s:%d: Занемарујем Ñмеће пронађено на овом реду"
-#: objcopy.c:1370
+#: objcopy.c:1342
#, c-format
msgid "error: section %s matches both remove and copy options"
msgstr "грешка: одељак „%s“ одговара и опцији уклањања и умножавања"
-#: objcopy.c:1373
+#: objcopy.c:1345
#, c-format
msgid "error: section %s matches both update and remove options"
msgstr "грешка: одељак „%s“ одговара и опцији оÑвежења и уклањања"
-#: objcopy.c:1548
+#: objcopy.c:1520
#, c-format
msgid "Section %s not found"
msgstr "ÐиÑам нашао одељак „%s“"
-#: objcopy.c:1598
+#: objcopy.c:1569
msgid "redefining symbols does not work on LTO-compiled object files"
msgstr "поновно дефиниÑање Ñимбола не ради на „LTO“-преведеним објектним датотекама"
-#: objcopy.c:1710
+#: objcopy.c:1682
#, c-format
msgid "not stripping symbol `%s' because it is named in a relocation"
msgstr "не огољавам Ñимбол „%s“ јер је именован у премештају"
-#: objcopy.c:1773
+#: objcopy.c:1745
#, c-format
msgid "'before=%s' not found"
msgstr "ÐиÑам нашао „before=%s“"
-#: objcopy.c:1813
+#: objcopy.c:1785
#, c-format
msgid "%s: Multiple redefinition of symbol \"%s\""
msgstr "%s: ВишеÑтруко поновно одређивање Ñимбола „%s“"
-#: objcopy.c:1817
+#: objcopy.c:1789
#, c-format
msgid "%s: Symbol \"%s\" is target of more than one redefinition"
msgstr "%s: Симбол „%s“ је мета за више од једног поновног одређивања"
-#: objcopy.c:1844
+#: objcopy.c:1816
#, c-format
msgid "couldn't open symbol redefinition file %s (error: %s)"
msgstr "не могу да отворим датотеку поновног одређивања Ñимбола „%s“ (грешка: %s)"
-#: objcopy.c:1922
+#: objcopy.c:1894
#, c-format
msgid "%s:%d: garbage found at end of line"
msgstr "%s:%d: пронађено је ђубре на крају реда"
-#: objcopy.c:1925
+#: objcopy.c:1897
#, c-format
msgid "%s:%d: missing new symbol name"
msgstr "%s:%d: недоÑтаје назив новог Ñимбола"
-#: objcopy.c:1935
+#: objcopy.c:1907
#, c-format
msgid "%s:%d: premature end of file"
msgstr "%s:%d: прерани крај датотеке"
-#: objcopy.c:1961
+#: objcopy.c:1933
#, c-format
msgid "stat returns negative size for `%s'"
msgstr "Ñтат враћа негативну величину за „%s“"
-#: objcopy.c:1973
+#: objcopy.c:1945
#, c-format
msgid "copy from `%s' [unknown] to `%s' [unknown]\n"
msgstr "умножавам из „%s“ [непознато] у „%s“ [непознато]\n"
-#: objcopy.c:2221
+#: objcopy.c:2193
#, c-format
msgid "%s[%s]: Cannot merge - there are relocations against this section"
msgstr "%s[%s]: Ðе могу да Ñтопим – поÑтоје премештаји за овај одељак"
-#: objcopy.c:2243
+#: objcopy.c:2215
msgid "corrupt GNU build attribute note: description size not a factor of 4"
msgstr "оштећена напомена атрибута Гну изградње: величина опиÑа није фактор 4"
-#: objcopy.c:2250
+#: objcopy.c:2222
msgid "corrupt GNU build attribute note: wrong note type"
msgstr "оштећена напомена атрибута Гну изградње: погрешна врÑта напомене"
-#: objcopy.c:2256
+#: objcopy.c:2228
msgid "corrupt GNU build attribute note: note too big"
msgstr "оштећена напомена атрибута Гну изградње: напомена је превелика"
-#: objcopy.c:2262
+#: objcopy.c:2234
msgid "corrupt GNU build attribute note: name too small"
msgstr "оштећена напомена атрибута Гну изградње: назив је премали"
-#: objcopy.c:2285
+#: objcopy.c:2257
msgid "corrupt GNU build attribute note: unsupported version"
msgstr "оштећена напомена атрибута Гну изградње: неподжано издање"
-#: objcopy.c:2319
+#: objcopy.c:2291
msgid "corrupt GNU build attribute note: bad description size"
msgstr "оштећена напомена атрибута Гну изградње: лоша величина опиÑа"
-#: objcopy.c:2355
+#: objcopy.c:2327
msgid "corrupt GNU build attribute note: name not NUL terminated"
msgstr "оштећена напомена атрибута Гну изградње: назив није „NUL“ окончан"
-#: objcopy.c:2367
+#: objcopy.c:2339
msgid "corrupt GNU build attribute notes: excess data at end"
msgstr "оштећена напомена атрибута Гну изградње: превише података на крају"
-#: objcopy.c:2374
+#: objcopy.c:2346
msgid "bad GNU build attribute notes: no known versions detected"
msgstr "лоше напомене атрибута Гну изградње: ниÑам открио позната издања"
#. This happens with glibc. No idea why.
-#: objcopy.c:2378
+#: objcopy.c:2350
#, c-format
msgid "%s[%s]: Warning: version note missing - assuming version 3"
msgstr "%s[%s]: Упозорење: недоÑтаје напомена издања – подразумевам издање 3"
-#: objcopy.c:2388
+#: objcopy.c:2360
msgid "bad GNU build attribute notes: multiple different versions"
msgstr "лоше напомене атрибута Гну изградње: више различитих издања"
-#: objcopy.c:2636
+#: objcopy.c:2608
#, c-format
msgid "%s[%s]: Note - dropping 'share' flag as output format is not COFF"
msgstr "%s[%s]: Ðапомена – одбацујем заÑтавицу „share“ као формат излаза није „COFF“"
-#: objcopy.c:2648
+#: objcopy.c:2620
#, c-format
msgid "%s[%s]: 'large' flag is ELF x86-64 specific"
msgstr "%s[%s]: заÑтавица „large“ је поÑебна за ELF x86-64"
#. PR 17636: Call non-fatal so that we return to our parent who
#. may need to tidy temporary files.
-#: objcopy.c:2694
+#: objcopy.c:2666
#, c-format
msgid "unable to change endianness of '%s'"
msgstr "не могу да променим крајњоÑÑ‚ за „%s“"
-#: objcopy.c:2701
+#: objcopy.c:2673
#, c-format
msgid "unable to modify '%s' due to errors"
msgstr "не могу да изменим „%s“ због грешака"
-#: objcopy.c:2714
+#: objcopy.c:2686
#, c-format
msgid "error: the input file '%s' has no sections"
msgstr "грешка: улазна датотека „%s“ нема одељке"
-#: objcopy.c:2742
+#: objcopy.c:2714
#, c-format
msgid "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi|zstd] is unsupported on `%s'"
msgstr "--compress-debug-sections=[zlib|zlib-gnu|zlib-gabi|zstd] није подржано на „%s“"
-#: objcopy.c:2750
+#: objcopy.c:2722
#, c-format
msgid "--elf-stt-common=[yes|no] is unsupported on `%s'"
msgstr "--elf-stt-common=[да|не] није подржано на „%s“"
-#: objcopy.c:2757
+#: objcopy.c:2729
#, c-format
msgid "--strip-section-headers is unsupported on `%s'"
msgstr "„--strip-section-headers“ није подржано на „%s“"
-#: objcopy.c:2764
+#: objcopy.c:2736
#, c-format
msgid "copy from `%s' [%s] to `%s' [%s]\n"
msgstr "умножавам из „%s“ [%s] у „%s“ [%s]\n"
-#: objcopy.c:2812
+#: objcopy.c:2784
#, c-format
msgid "Input file `%s' ignores binary architecture parameter."
msgstr "Улазна датотека „%s“ занемарује бинарне параметре архитектуре."
-#: objcopy.c:2828
+#: objcopy.c:2800
#, c-format
msgid "Unable to recognise the format of the input file `%s'"
msgstr "Ðе могу да препознам Ð·Ð°Ð¿Ð¸Ñ ÑƒÐ»Ð°Ð·Ð½Ðµ датотеке „%s“"
-#: objcopy.c:2831
+#: objcopy.c:2803
#, c-format
msgid "Output file cannot represent architecture `%s'"
msgstr "Излазна датотека не може да предÑтавља архитектуру „%s“"
-#: objcopy.c:2897
+#: objcopy.c:2869
#, c-format
msgid "warning: file alignment (0x%<PRIx64>) > section alignment (0x%<PRIx64>)"
msgstr "упозорење: поравнање датотеке (0x%<PRIx64>) > поравнање одељка (0x%<PRIx64>)"
-#: objcopy.c:2971
+#: objcopy.c:2943
#, c-format
msgid "can't add section '%s'"
msgstr "не могу да додам одељак „%s“"
-#: objcopy.c:2985
+#: objcopy.c:2957
#, c-format
msgid "can't create section `%s'"
msgstr "не могу да направим одељак „%s“"
-#: objcopy.c:3033
+#: objcopy.c:3005
#, c-format
msgid "error: %s not found, can't be updated"
msgstr "грешка: ниÑам нашао „%s“, не може бити оÑвежено"
-#: objcopy.c:3073
+#: objcopy.c:3045
msgid "warning: could not load note section"
msgstr "упозорење : не могу да учитам одељак напомене"
-#: objcopy.c:3094
+#: objcopy.c:3066
msgid "warning: failed to set merged notes size"
msgstr "упозорење: ниÑам уÑпео да подеÑим Ñпојену величину напомена"
-#: objcopy.c:3120
+#: objcopy.c:3092
#, c-format
msgid "can't dump section '%s' - it does not exist"
msgstr "не могу да избацим одељак „%s“ – не поÑтоји"
-#: objcopy.c:3128
+#: objcopy.c:3100
msgid "can't dump section - it has no contents"
msgstr "не могу да избацим одељак – не Ñадржи ништа"
-#: objcopy.c:3140
+#: objcopy.c:3112
msgid "could not open section dump file"
msgstr "не могу да отворим датотеку избачаја одељка"
-#: objcopy.c:3148
+#: objcopy.c:3120
#, c-format
msgid "error writing section contents to %s (error: %s)"
msgstr "грешка пиÑања Ñадржаја одељка у „%s“ (грешка: %s)"
-#: objcopy.c:3158
+#: objcopy.c:3130
msgid "could not retrieve section contents"
msgstr "не могу да довучем Ñадржај одељка"
-#: objcopy.c:3172
+#: objcopy.c:3144
#, c-format
msgid "%s: debuglink section already exists"
msgstr "%s: већ поÑтоји одељак везе прочишћавања"
-#: objcopy.c:3184
+#: objcopy.c:3156
#, c-format
msgid "cannot create debug link section `%s'"
msgstr "не могу да направим одељак прочишћавања „%s“"
-#: objcopy.c:3277
+#: objcopy.c:3249
msgid "Can't fill gap after section"
msgstr "Ðе могу да попуним јаз након одељка"
-#: objcopy.c:3301
+#: objcopy.c:3273
msgid "can't add padding"
msgstr "не могу да додам попуну"
-#: objcopy.c:3473
+#: objcopy.c:3445
msgid "error: failed to locate merged notes"
msgstr "грешка: ниÑам уÑпео да нађем Ñпојене напомене"
-#: objcopy.c:3482
+#: objcopy.c:3454
msgid "error: failed to merge notes"
msgstr "грешка: ниÑам уÑпео да Ñпојим напомене"
-#: objcopy.c:3491
+#: objcopy.c:3463
msgid "error: failed to copy merged notes into output"
msgstr "грешка: ниÑам уÑпео да умножим Ñпојене напомене у излаз"
-#: objcopy.c:3508
+#: objcopy.c:3480
#, c-format
msgid "%s: Could not find any mergeable note sections"
msgstr "%s: Ðе могу да нађем ниједан Ñпојиви одељак напомена"
-#: objcopy.c:3517
+#: objcopy.c:3489
#, c-format
msgid "cannot fill debug link section `%s'"
msgstr "не могу да попуним одељак прочишћавања „%s“"
-#: objcopy.c:3580
+#: objcopy.c:3552
msgid "error copying private BFD data"
msgstr "ниÑам уÑпео да умножим личне БФД податке"
-#: objcopy.c:3591
+#: objcopy.c:3563
#, c-format
msgid "this target does not support %lu alternative machine codes"
msgstr "ова мета не подржава %lu заменÑке кодове машине"
-#: objcopy.c:3595
+#: objcopy.c:3567
msgid "treating that number as an absolute e_machine value instead"
msgstr "Ñматрам тај број за апÑолутну вредноÑÑ‚ „e_machine“"
-#: objcopy.c:3599
+#: objcopy.c:3571
msgid "ignoring the alternative value"
msgstr "занемарујем заменÑку вредноÑÑ‚"
-#: objcopy.c:3660
+#: objcopy.c:3632
msgid "sorry: copying thin archives is not currently supported"
msgstr "извините: умножавање танане архиве тренутно није подржано"
-#: objcopy.c:3667 objcopy.c:3723
+#: objcopy.c:3639 objcopy.c:3695
#, c-format
msgid "cannot create tempdir for archive copying (error: %s)"
msgstr "не могу да направим привремениу директоријум за умножавање архиве (грешка: %s)"
-#: objcopy.c:3702
+#: objcopy.c:3674
#, c-format
msgid "warning: illegal pathname found in archive member: %s"
msgstr "упозорење: нађох неиÑправан назив путање у члану архиве: %s"
-#: objcopy.c:3708
+#: objcopy.c:3680
#, c-format
msgid "warning: using the basename of the member instead: %s"
msgstr "упозорење: кориÑтим назив оÑнове члана: %s"
-#: objcopy.c:3756
+#: objcopy.c:3728
msgid "Unable to recognise the format of file"
msgstr "Ðе могу да препознам Ð·Ð°Ð¿Ð¸Ñ Ð´Ð°Ñ‚Ð¾Ñ‚ÐµÐºÐµ"
-#: objcopy.c:3881
+#: objcopy.c:3850
#, c-format
msgid "error: the input file '%s' is empty"
msgstr "грешка: улазна датотека „%s“ је празна"
-#: objcopy.c:3916
+#: objcopy.c:3885
msgid "--compress-debug-sections=zstd: binutils is not built with zstd support"
msgstr "--compress-debug-sections=zstd: binutils није изграђен Ñа „zstd“ подршком"
-#: objcopy.c:3972
+#: objcopy.c:3941
#, c-format
msgid "--add-gnu-debuglink ignored for archive %s"
msgstr "„--add-gnu-debuglink“ је занемарено за архиву „%s“"
-#: objcopy.c:4072
+#: objcopy.c:4041
#, c-format
msgid "Multiple renames of section %s"
msgstr "ВишеÑтрука преименовања одељка %s"
-#: objcopy.c:4117
+#: objcopy.c:4086
msgid "error in private header data"
msgstr "грешка у личним подацима заглавља"
-#: objcopy.c:4273 objcopy.c:4281
+#: objcopy.c:4242 objcopy.c:4250
msgid "failed to create output section"
msgstr "ниÑам уÑпео да направим излазни одељак"
-#: objcopy.c:4290
+#: objcopy.c:4259
msgid "failed to set size"
msgstr "ниÑам уÑпео да подеÑим величину"
-#: objcopy.c:4309
+#: objcopy.c:4278
msgid "failed to set vma"
msgstr "ниÑам уÑпео да подеÑим вма"
-#: objcopy.c:4358
+#: objcopy.c:4327
msgid "failed to set alignment"
msgstr "ниÑам уÑпео да подеÑим поравнање"
-#: objcopy.c:4373
+#: objcopy.c:4342
#, c-format
msgid "output section %s's alignment does not match its VMA"
msgstr "поравнање „%s“ одељка излаза Ñе не поклапа Ñа Ñвојим VMA"
-#: objcopy.c:4387
+#: objcopy.c:4356
#, c-format
msgid "output section %s's alignment does not match its LMA"
msgstr "поравнање „%s“ одељка излаза Ñе не поклапа Ñа Ñвојим LMA"
-#: objcopy.c:4417
+#: objcopy.c:4386
msgid "failed to copy private data"
msgstr "ниÑам уÑпео да умножим личне податке"
-#: objcopy.c:4571
+#: objcopy.c:4540
msgid "relocation count is negative"
msgstr "укупноÑÑ‚ премештаја је негативна"
#. User must pad the section up in order to do this.
-#: objcopy.c:4657
+#: objcopy.c:4626
#, c-format
msgid "cannot reverse bytes: length of section %s must be evenly divisible by %d"
msgstr "не могу да преокренем бајтове: дужина одељка %s мора бити парно дељива Ñа %d"
-#: objcopy.c:4857
+#: objcopy.c:4826
msgid "can't create debugging section"
msgstr "не могу да направим одељак прочишћавања"
-#: objcopy.c:4871
+#: objcopy.c:4840
msgid "can't set debugging section contents"
msgstr "не могу да подеÑим Ñадржај одељка прочишћавања"
-#: objcopy.c:4881
+#: objcopy.c:4850
#, c-format
msgid "don't know how to write debugging information for %s"
msgstr "не знам како да упишем податке прочишћавања за %s"
-#: objcopy.c:5073
+#: objcopy.c:5042
msgid "could not create temporary file to hold stripped copy"
msgstr "не могу да Ñтворим привремену датотеку да држим огољени примерак"
-#: objcopy.c:5147
+#: objcopy.c:5116
#, c-format
msgid "%s: bad version in PE subsystem"
msgstr "%s: лоше издање у ПЕ подÑиÑтему"
-#: objcopy.c:5177
+#: objcopy.c:5146
#, c-format
msgid "unknown PE subsystem: %s"
msgstr "непознат ПЕ подÑиÑтем: %s"
-#: objcopy.c:5266 objcopy.c:5542 objcopy.c:5622 objcopy.c:5760 objcopy.c:5792
-#: objcopy.c:5848 objcopy.c:5852 objcopy.c:5872
+#: objcopy.c:5235 objcopy.c:5511 objcopy.c:5591 objcopy.c:5729 objcopy.c:5761
+#: objcopy.c:5817 objcopy.c:5821 objcopy.c:5841
#, c-format
msgid "bad format for %s"
msgstr "лош Ð·Ð°Ð¿Ð¸Ñ Ð·Ð° „%s“"
-#: objcopy.c:5295
+#: objcopy.c:5264
#, c-format
msgid "cannot open: %s: %s"
msgstr "не могу да отворим: %s: %s"
-#: objcopy.c:5350
+#: objcopy.c:5319
msgid "byte number must be non-negative"
msgstr "број бајта мора бити не-негативан"
-#: objcopy.c:5356
+#: objcopy.c:5325
#, c-format
msgid "architecture %s unknown"
msgstr "непозната архитектура %s"
-#: objcopy.c:5364
+#: objcopy.c:5333
msgid "interleave must be positive"
msgstr "преплетање мора бити позитивно"
-#: objcopy.c:5373
+#: objcopy.c:5342
msgid "interleave width must be positive"
msgstr "ширина преплетања мора бити позитивна"
-#: objcopy.c:5697
+#: objcopy.c:5666
#, c-format
msgid "unrecognized --compress-debug-sections type `%s'"
msgstr "непозната „--compress-debug-sections“ врÑта „%s“"
-#: objcopy.c:5718
+#: objcopy.c:5687
#, c-format
msgid "unrecognized --elf-stt-common= option `%s'"
msgstr "непозната „--elf-stt-common“ опција „%s“"
-#: objcopy.c:5729
+#: objcopy.c:5698
#, c-format
msgid "Warning: truncating gap-fill from 0x%<PRIx64> to 0x%x"
msgstr "Упозорење: Ñкраћујем иÑпуну јаза од 0x%<PRIx64> до 0x%x"
-#: objcopy.c:5815
+#: objcopy.c:5784
msgid "bad format for --set-section-alignment: argument needed"
msgstr "лош Ð·Ð°Ð¿Ð¸Ñ Ð·Ð° „--set-section-alignment“: потребан је аргумент"
-#: objcopy.c:5819
+#: objcopy.c:5788
msgid "bad format for --set-section-alignment: numeric argument needed"
msgstr "лош Ð·Ð°Ð¿Ð¸Ñ Ð·Ð° „--set-section-alignment“: потребан је бројевни аргумент"
-#: objcopy.c:5824
+#: objcopy.c:5793
msgid "bad format for --set-section-alignment: alignment is not a power of two"
msgstr "лош Ð·Ð°Ð¿Ð¸Ñ Ð·Ð° „--set-section-alignment“: поравнање није Ñтепен двојке"
-#: objcopy.c:5931
+#: objcopy.c:5900
#, c-format
msgid "unknown long section names option '%s'"
msgstr "непозната дуга опција назива одељка „%s“"
-#: objcopy.c:5954
+#: objcopy.c:5923
msgid "unable to parse alternative machine code"
msgstr "не могу да обрадим заменÑки код машине"
-#: objcopy.c:6003
+#: objcopy.c:5972
msgid "number of bytes to reverse must be positive and even"
msgstr "број бајтова за преокретање мора бити позитиван и паран"
-#: objcopy.c:6006
+#: objcopy.c:5975
#, c-format
msgid "Warning: ignoring previous --reverse-bytes value of %d"
msgstr "Упозорење: занемарујем претходну вредноÑÑ‚ „--reverse-bytes“ од %d"
-#: objcopy.c:6021
+#: objcopy.c:5990
#, c-format
msgid "%s: invalid reserve value for --heap"
msgstr "%s: неиÑправна вредноÑÑ‚ резерве за „--heap“"
-#: objcopy.c:6027
+#: objcopy.c:5996
#, c-format
msgid "%s: invalid commit value for --heap"
msgstr "%s: неиÑправна вредноÑÑ‚ предаје за „--heap“"
-#: objcopy.c:6042
+#: objcopy.c:6011
#, c-format
msgid "--section-alignment argument is not a power of two: %s - ignoring"
msgstr "„--section-alignment“ аргумент није Ñтепен двојке: %s – занемарујем"
-#: objcopy.c:6057
+#: objcopy.c:6026
#, c-format
msgid "%s: invalid reserve value for --stack"
msgstr "%s: неиÑправна вредноÑÑ‚ резерве за „--stack“"
-#: objcopy.c:6063
+#: objcopy.c:6032
#, c-format
msgid "%s: invalid commit value for --stack"
msgstr "%s: неиÑправна вредноÑÑ‚ предаје за „--stack“"
-#: objcopy.c:6081
+#: objcopy.c:6050
msgid "error: verilog data width must be 1, 2, 4, 8 or 16"
msgstr "грешка: ширина верилог података мора бити 1, 2, 4, 8 или 16"
-#: objcopy.c:6099
+#: objcopy.c:6068
msgid "--globalize-symbol(s) is incompatible with -G/--keep-global-symbol(s)"
msgstr "„--globalize-symbol(s)“ није ÑаглаÑно Ñа „-G/--keep-global-symbol(s)“"
-#: objcopy.c:6111
+#: objcopy.c:6080
msgid "interleave start byte must be set with --byte"
msgstr "почетни бајт преплетања мора бити подешен опцијом „--byte“"
-#: objcopy.c:6114
+#: objcopy.c:6083
msgid "byte number must be less than interleave"
msgstr "број бајтова мора бити мањи од преплетања"
-#: objcopy.c:6117
+#: objcopy.c:6086
msgid "interleave width must be less than or equal to interleave - byte`"
msgstr "ширина преплетања мора бити мања од или иÑта као преплетање – byte`"
-#: objcopy.c:6140
+#: objcopy.c:6109
#, c-format
msgid "unknown input EFI target: %s"
msgstr "непозната улазна ЕФИ мета: %s"
-#: objcopy.c:6150
+#: objcopy.c:6119
#, c-format
msgid "unknown output EFI target: %s"
msgstr "непозната излазна ЕФИ мета: %s"
-#: objcopy.c:6174
+#: objcopy.c:6143
#, c-format
msgid "warning: could not create temporary file whilst copying '%s', (error: %s)"
msgstr "упозорење: не могу да направим привремену датотеку док умножавам „%s“ (грешка: %s)"
-#: objcopy.c:6206 objcopy.c:6214
+#: objcopy.c:6175 objcopy.c:6183
#, c-format
msgid "%s %s%c0x%<PRIx64> never used"
msgstr "%s %s%c0x%<PRIx64> никад коришћено"
-#: objdump.c:255
+#: objdump.c:256
#, c-format
msgid "Usage: %s <option(s)> <file(s)>\n"
msgstr "Употреба: %s <опција(е)> <датотека(е)>\n"
-#: objdump.c:256
+#: objdump.c:257
#, c-format
msgid " Display information from object <file(s)>.\n"
msgstr " Приказује податке из <датотеке(а)> предмета.\n"
-#: objdump.c:257
+#: objdump.c:258
#, c-format
msgid " At least one of the following switches must be given:\n"
msgstr " Барем један од Ñледећих прекидача мора бити дат:\n"
-#: objdump.c:258
+#: objdump.c:259
#, c-format
msgid " -a, --archive-headers Display archive header information\n"
msgstr " -a, --archive-headers Приказује информације заглавља архиве\n"
-#: objdump.c:260
+#: objdump.c:261
#, c-format
msgid " -f, --file-headers Display the contents of the overall file header\n"
msgstr " -f, --file-headers Приказује Ñадржаје преклопних заглавља датотеке\n"
-#: objdump.c:262
+#: objdump.c:263
#, c-format
msgid " -p, --private-headers Display object format specific file header contents\n"
msgstr " -p, --private-headers Приказује Ñадржај заглавља датотеке Ñпецифичне за формат објекта\n"
-#: objdump.c:264
+#: objdump.c:265
#, c-format
msgid " -P, --private=OPT,OPT... Display object format specific contents\n"
msgstr " -P, --private=OPT,OPT... Приказује Ñадржај Ñпецифичан формату објекта\n"
-#: objdump.c:266
+#: objdump.c:267
#, c-format
msgid " -h, --[section-]headers Display the contents of the section headers\n"
msgstr " -h, --[одељка-]заглавља Приказује Ñадржај заглавља одељка\n"
-#: objdump.c:268
+#: objdump.c:269
#, c-format
msgid " -x, --all-headers Display the contents of all headers\n"
msgstr " -x, --all-headers Приказује Ñадржај Ñвих заглавља\n"
-#: objdump.c:270
+#: objdump.c:271
#, c-format
msgid " -d, --disassemble Display assembler contents of executable sections\n"
msgstr " -d, --disassemble Приказује Ñадржај аÑемблера извршних одељака\n"
-#: objdump.c:272
+#: objdump.c:273
#, c-format
msgid " -D, --disassemble-all Display assembler contents of all sections\n"
msgstr " -D, --disassemble Приказује Ñадржај аÑемблера Ñвих одељака\n"
-#: objdump.c:274
+#: objdump.c:275
#, c-format
msgid " --disassemble=<sym> Display assembler contents from <sym>\n"
msgstr " --disassemble=<Ñим> Приказује Ñадржај аÑемблера за <Ñим>\n"
-#: objdump.c:276
+#: objdump.c:277
#, c-format
msgid " -S, --source Intermix source code with disassembly\n"
msgstr " -S, --source Меша изворни код Ñа рашчлањивачем\n"
-#: objdump.c:278
+#: objdump.c:279
#, c-format
msgid " --source-comment[=<txt>] Prefix lines of source code with <txt>\n"
msgstr " --source-comment[=<текÑÑ‚>] Ставља <текÑÑ‚> као Ð¿Ñ€ÐµÑ„Ð¸ÐºÑ Ð¸Ð·Ð²Ð¾Ñ€Ð½Ð¾Ð³ кода\n"
-#: objdump.c:280
+#: objdump.c:281
#, c-format
msgid " -s, --full-contents Display the full contents of all sections requested\n"
msgstr " -s, --full-contents Приказује пун Ñадржај Ñвих захтеваних одељака\n"
-#: objdump.c:282
+#: objdump.c:283
#, c-format
msgid " -Z, --decompress Decompress section(s) before displaying their contents\n"
msgstr " -Z, --decompress РаÑпакује одељак(е) пре приказивања њиховог Ñадржаја\n"
-#: objdump.c:284
+#: objdump.c:285
#, c-format
msgid " -g, --debugging Display debug information in object file\n"
msgstr " -g, --debugging Приказује информације прочишћавања у објектној датотеци\n"
-#: objdump.c:286
+#: objdump.c:287
#, c-format
msgid " -e, --debugging-tags Display debug information using ctags style\n"
msgstr " -e, --debugging-tags Приказује информације прочишћавања кориÑтећи „ctags“ Ñтил\n"
-#: objdump.c:288
+#: objdump.c:289
#, c-format
msgid " -G, --stabs Display (in raw form) any STABS info in the file\n"
msgstr " -G, --stabs Приказује (у Ñировом облики+у) Ñве „STABS“ информације у датотеци\n"
-#: objdump.c:290
+#: objdump.c:291
#, c-format
msgid ""
" -W, --dwarf[a/=abbrev, A/=addr, r/=aranges, c/=cu_index, L/=decodedline,\n"
@@ -6354,7 +6346,7 @@ msgstr ""
" U/=инфо_трага]\n"
" Приказује Ñадржај одељака „DWARF“ прочишћавања\n"
-#: objdump.c:297
+#: objdump.c:298
#, c-format
msgid ""
" -Wk,--dwarf=links Display the contents of sections that link to\n"
@@ -6363,7 +6355,7 @@ msgstr ""
" -Wk,--dwarf=links Приказује Ñадржај одељака који повезују на одвојене\n"
" датотеке информација прочишћавања\n"
-#: objdump.c:301
+#: objdump.c:302
#, c-format
msgid ""
" -WK,--dwarf=follow-links\n"
@@ -6372,7 +6364,7 @@ msgstr ""
" -WK,--dwarf=follow-links\n"
" Прати везе до одвојених датотека информација прочишћавања (оÑновно)\n"
-#: objdump.c:304
+#: objdump.c:305
#, c-format
msgid ""
" -WN,--dwarf=no-follow-links\n"
@@ -6381,7 +6373,7 @@ msgstr ""
" -WN,--dwarf=no-follow-links\n"
" Ðе прати везе до одвојених датотека информација прочишћавања\n"
-#: objdump.c:308
+#: objdump.c:309
#, c-format
msgid ""
" -WK,--dwarf=follow-links\n"
@@ -6390,7 +6382,7 @@ msgstr ""
" -WK,--dwarf=follow-links\n"
" Прати везе до одвојених датотека информација прочишћавања\n"
-#: objdump.c:311
+#: objdump.c:312
#, c-format
msgid ""
" -WN,--dwarf=no-follow-links\n"
@@ -6401,7 +6393,7 @@ msgstr ""
" Ðе прати везе до одвојених датотека информација прочишћавања\n"
" (оÑновно)\n"
-#: objdump.c:317
+#: objdump.c:318
#, c-format
msgid ""
" -WD --dwarf=use-debuginfod\n"
@@ -6410,7 +6402,7 @@ msgstr ""
" -WD --dwarf=use-debuginfod\n"
" Када прати везе, такође пропитује Ñервере позадинца информација прочишћавања (оÑновно)\n"
-#: objdump.c:320
+#: objdump.c:321
#, c-format
msgid ""
" -WE --dwarf=do-not-use-debuginfod\n"
@@ -6419,7 +6411,7 @@ msgstr ""
" -WE --dwarf=do-not-use-debuginfod\n"
" Када прати везе, не пропитује Ñервере позадинца информација прочишћавања\n"
-#: objdump.c:324
+#: objdump.c:325
#, c-format
msgid ""
" -L, --process-links Display the contents of non-debug sections in\n"
@@ -6428,57 +6420,57 @@ msgstr ""
" -L, --process-links Приказује Ñадржај одељака не-прочишћавања у\n"
" одвојеним датотекама информација прочишћавања. (Подразумева „-WK“)\n"
-#: objdump.c:328
+#: objdump.c:329
#, c-format
msgid " --ctf[=SECTION] Display CTF info from SECTION, (default `.ctf')\n"
msgstr " --ctf[=ОДЕЉÐК] Приказује „CTF“ податке из ОДЕЉКÐ, (оÑновно је „.ctf“)\n"
-#: objdump.c:331
+#: objdump.c:332
#, c-format
msgid " --sframe[=SECTION] Display SFrame info from SECTION, (default '.sframe')\n"
msgstr " --sframe[=ОДЕЉÐК] Приказује „SFrame“ инфо из ОДЕЉКÐ, (оÑновно „.sframe“)\n"
-#: objdump.c:333
+#: objdump.c:334
#, c-format
msgid " -t, --syms Display the contents of the symbol table(s)\n"
msgstr " -t, --syms Приказује Ñадржај табеле(а) Ñимбола\n"
-#: objdump.c:335
+#: objdump.c:336
#, c-format
msgid " -T, --dynamic-syms Display the contents of the dynamic symbol table\n"
msgstr " -T, --dynamic-syms Приказује Ñадржај динамичке табеле Ñимбола\n"
-#: objdump.c:337
+#: objdump.c:338
#, c-format
msgid " -r, --reloc Display the relocation entries in the file\n"
msgstr " -r, --reloc Приказује уноÑе премештања у датотеци\n"
-#: objdump.c:339
+#: objdump.c:340
#, c-format
msgid " -R, --dynamic-reloc Display the dynamic relocation entries in the file\n"
msgstr " -R, --reloc Приказује динамичке уноÑе премештања у датотеци\n"
-#: objdump.c:341
+#: objdump.c:342
#, c-format
msgid " @<file> Read options from <file>\n"
msgstr " @<датотека> Чита опције из <датотеке>\n"
-#: objdump.c:343
+#: objdump.c:344
#, c-format
msgid " -v, --version Display this program's version number\n"
msgstr " -V --version Приказује издање овог програма\n"
-#: objdump.c:345
+#: objdump.c:346
#, c-format
msgid " -i, --info List object formats and architectures supported\n"
msgstr " -i, --info ИÑпиÑује подржане објектне формате и архитектуре\n"
-#: objdump.c:347
+#: objdump.c:348
#, c-format
msgid " -H, --help Display this information\n"
msgstr " -H --help Приказује ове информације\n"
-#: objdump.c:354
+#: objdump.c:355
#, c-format
msgid ""
"\n"
@@ -6487,66 +6479,66 @@ msgstr ""
"\n"
" Следећи прекидачи Ñу опционални:\n"
-#: objdump.c:355
+#: objdump.c:356
#, c-format
msgid " -b, --target=BFDNAME Specify the target object format as BFDNAME\n"
msgstr " -b, --target=БФДÐÐЗИВ Ðаводи формат објекта мете као БФДÐÐЗИВ\n"
-#: objdump.c:357
+#: objdump.c:358
#, c-format
msgid " -m, --architecture=MACHINE Specify the target architecture as MACHINE\n"
msgstr " -m, --architecture=РÐЧУÐÐР Ðаводи циљну архитектуру као РÐЧУÐÐР\n"
-#: objdump.c:359
+#: objdump.c:360
#, c-format
msgid " -j, --section=NAME Only display information for section NAME\n"
msgstr " -j, --section=ÐÐЗИВ Само приказује информације за одељак ÐÐЗИВ\n"
-#: objdump.c:361
+#: objdump.c:362
#, c-format
msgid " -M, --disassembler-options=OPT Pass text OPT on to the disassembler\n"
msgstr " -M, --disassembler-options=ОПЦ Убацује текÑÑ‚ ОПЦ у рашчлањивач\n"
-#: objdump.c:363
+#: objdump.c:364
#, c-format
msgid " -EB --endian=big Assume big endian format when disassembling\n"
msgstr " -EB --endian=велика Подразумева формат велике крајњоÑти приликом рашчлањивања\n"
-#: objdump.c:365
+#: objdump.c:366
#, c-format
msgid " -EL --endian=little Assume little endian format when disassembling\n"
msgstr " -EL --endian=мала Подразумева формат мале крајњоÑти приликом рашчлањивања\n"
-#: objdump.c:367
+#: objdump.c:368
#, c-format
msgid " --file-start-context Include context from start of file (with -S)\n"
msgstr " --file-start-context Укључује Ñаджај Ñа почетка датотеке (Ñа „-S“)\n"
-#: objdump.c:369
+#: objdump.c:370
#, c-format
msgid " -I, --include=DIR Add DIR to search list for source files\n"
msgstr " -I, --include=ДИР Додаје ДИР на ÑпиÑак претраге за изворне датотеке\n"
-#: objdump.c:371
+#: objdump.c:372
#, c-format
msgid " -l, --line-numbers Include line numbers and filenames in output\n"
msgstr " -l, --line-numbers Укључује бројеве редова и називе датотека на излазу\n"
-#: objdump.c:373
+#: objdump.c:374
#, c-format
msgid " -F, --file-offsets Include file offsets when displaying information\n"
msgstr " -F, --file-offsets Укључује помераје датотека приликом приказивања информација\n"
-#: objdump.c:375
+#: objdump.c:376
#, c-format
msgid " -C, --demangle[=STYLE] Decode mangled/processed symbol names\n"
msgstr " -C, --demangle[=СТИЛ] Декодира прекрштене/обрађене називе Ñимбола\n"
-#: objdump.c:377
+#: objdump.c:378
msgid " STYLE can be "
msgstr " СТИЛ може бити "
-#: objdump.c:379
+#: objdump.c:380
#, c-format
msgid ""
" --recurse-limit Enable a limit on recursion whilst demangling\n"
@@ -6555,17 +6547,17 @@ msgstr ""
" --recurse-limit Укључује ограничење понављања приликом раÑкршћавања\n"
" (оÑновно)\n"
-#: objdump.c:382
+#: objdump.c:383
#, c-format
msgid " --no-recurse-limit Disable a limit on recursion whilst demangling\n"
msgstr " --no-recurse-limit ИÑкључује ограничење понављања приликом раÑкршћавања\n"
-#: objdump.c:384
+#: objdump.c:385
#, c-format
msgid " -w, --wide Format output for more than 80 columns\n"
msgstr " -w, --wide Обликује излаз за више од 80 колона\n"
-#: objdump.c:386
+#: objdump.c:387
#, c-format
msgid ""
" -U[d|l|i|x|e|h] Controls the display of UTF-8 unicode characters\n"
@@ -6574,102 +6566,102 @@ msgstr ""
" -U[d|l|i|x|e|h] Контролише приказ УТФ-8 јуникод знакова\n"
" --unicode=[default|locale|invalid|hex|escape|highlight]\n"
-#: objdump.c:389
+#: objdump.c:390
#, c-format
msgid " -z, --disassemble-zeroes Do not skip blocks of zeroes when disassembling\n"
msgstr " -z, --disassemble-zeroes Ðе преÑкаче блокове нула приликом рашчлањивања\n"
-#: objdump.c:391
+#: objdump.c:392
#, c-format
msgid " --start-address=ADDR Only process data whose address is >= ADDR\n"
msgstr " --start-address=ÐДР Само обрађује податке чија адреÑа је >= ÐДР\n"
-#: objdump.c:393
+#: objdump.c:394
#, c-format
msgid " --stop-address=ADDR Only process data whose address is < ADDR\n"
msgstr " --stop-address=ÐДР Само обрађује податке чија адреÑа је < ÐДР\n"
-#: objdump.c:395
+#: objdump.c:396
#, c-format
msgid " --no-addresses Do not print address alongside disassembly\n"
msgstr " --no-addresses Ðе иÑпиÑује адреÑе уз рашчлањивање\n"
-#: objdump.c:397
+#: objdump.c:398
#, c-format
msgid " --prefix-addresses Print complete address alongside disassembly\n"
msgstr " --prefix-addresses ИÑпиÑује потпуну адреÑу уз рашчлањивање\n"
-#: objdump.c:399
+#: objdump.c:400
#, c-format
msgid " --[no-]show-raw-insn Display hex alongside symbolic disassembly\n"
msgstr " --[no-]show-raw-insn Приказује хекÑадецимално уз Ñимболичко рашчлањивање\n"
-#: objdump.c:401
+#: objdump.c:402
#, c-format
msgid " --insn-width=WIDTH Display WIDTH bytes on a single line for -d\n"
msgstr " --insn-width=ШИРИÐРПриказује ШИРИÐРбајтова у једном реду за „-d“\n"
-#: objdump.c:403
+#: objdump.c:404
#, c-format
msgid " --adjust-vma=OFFSET Add OFFSET to all displayed section addresses\n"
msgstr " --adjust-vma=ПОМЕРÐЈ Додаје ПОМЕРÐЈ Ñвим приказаним адреÑама одељка\n"
-#: objdump.c:405
+#: objdump.c:406
#, c-format
msgid " --show-all-symbols When disassembling, display all symbols at a given address\n"
msgstr " --show-all-symbols Приликом рашчлањивања, приказује Ñве Ñимболе на датој адреÑи\n"
-#: objdump.c:407
+#: objdump.c:408
#, c-format
msgid " --special-syms Include special symbols in symbol dumps\n"
msgstr " --special-syms Укључује нарочите Ñимболе у иÑпиÑу Ñимбола\n"
-#: objdump.c:409
+#: objdump.c:410
#, c-format
msgid " --inlines Print all inlines for source line (with -l)\n"
msgstr " --inlines ИÑпиÑује Ñва надовезивања за изворни ред (Ñа „-l“)\n"
-#: objdump.c:411
+#: objdump.c:412
#, c-format
msgid " --prefix=PREFIX Add PREFIX to absolute paths for -S\n"
msgstr " --prefix=ПРЕФИКС Додаје ПРЕФИКС апÑолутним путањама за „-S“\n"
-#: objdump.c:413
+#: objdump.c:414
#, c-format
msgid " --prefix-strip=LEVEL Strip initial directory names for -S\n"
msgstr " --prefix-strip=ÐИВО ИÑпражњује почетне називе директоријума за „-S“\n"
-#: objdump.c:415
+#: objdump.c:416
#, c-format
msgid " --dwarf-depth=N Do not display DIEs at depth N or greater\n"
msgstr " --dwarf-depth=N Ðе приказује „DIE“-е на дубини N или већој\n"
-#: objdump.c:417
+#: objdump.c:418
#, c-format
msgid " --dwarf-start=N Display DIEs starting at offset N\n"
msgstr " --dwarf-start=N Приказује „DIE“ почевши на померају N\n"
-#: objdump.c:419
+#: objdump.c:420
#, c-format
msgid " --dwarf-check Make additional dwarf consistency checks.\n"
msgstr " --dwarf-check Одрађује додатна проверавања „dwarf“ доÑледноÑти.\n"
-#: objdump.c:422
+#: objdump.c:423
#, c-format
msgid " --ctf-parent=NAME Use CTF archive member NAME as the CTF parent\n"
msgstr " --ctf-parent=ÐÐЗИВ КориÑти ÐÐЗИВ „CTF“ члана архиве као родитеља „CTF“-а\n"
-#: objdump.c:425
+#: objdump.c:426
#, c-format
msgid " --visualize-jumps Visualize jumps by drawing ASCII art lines\n"
msgstr " --visualize-jumps Приказује Ñкокове иÑцртавајући редове ÐСКРИ Ñимболима\n"
-#: objdump.c:427
+#: objdump.c:428
#, c-format
msgid " --visualize-jumps=color Use colors in the ASCII art\n"
msgstr " --visualize-jumps=боја КориÑти боје у ÐСКРИ иÑпиÑу\n"
-#: objdump.c:429
+#: objdump.c:430
#, c-format
msgid ""
" --visualize-jumps=extended-color\n"
@@ -6678,37 +6670,37 @@ msgstr ""
" --visualize-jumps=проширена-боја\n"
" КориÑти проширене 8-битне кодове боје\n"
-#: objdump.c:432
+#: objdump.c:433
#, c-format
msgid " --visualize-jumps=off Disable jump visualization\n"
msgstr " --visualize-jumps=off ИÑкључује приказивање Ñкока\n"
-#: objdump.c:435
+#: objdump.c:436
#, c-format
msgid " --disassembler-color=off Disable disassembler color output.\n"
msgstr " --disassembler-color=off ИÑкључује обојени излаз раÑтављача.\n"
-#: objdump.c:437
+#: objdump.c:438
#, c-format
msgid " --disassembler-color=terminal Enable disassembler color output if displaying on a terminal. (default)\n"
msgstr " --disassembler-color=terminal Укључује обојени излаз раÑтављача ако приказује на терминалу. (оÑновно)\n"
-#: objdump.c:440
+#: objdump.c:441
#, c-format
msgid " --disassembler-color=off Disable disassembler color output. (default)\n"
msgstr " --disassembler-color=off ИÑкључује обојени излаз раÑтављача. (оÑновно)\n"
-#: objdump.c:442
+#: objdump.c:443
#, c-format
msgid " --disassembler-color=terminal Enable disassembler color output if displaying on a terminal.\n"
msgstr " --disassembler-color=terminal Укључује обојени излаз раÑтављача ако приказује на терминалу.\n"
-#: objdump.c:445
+#: objdump.c:446
#, c-format
msgid " --disassembler-color=on Enable disassembler color output.\n"
msgstr " --disassembler-color=on Укључује обојени излаз раÑтављача.\n"
-#: objdump.c:447
+#: objdump.c:448
#, c-format
msgid ""
" --disassembler-color=extended Use 8-bit colors in disassembler output.\n"
@@ -6717,7 +6709,7 @@ msgstr ""
" --disassembler-color=extended КориÑти 8-битне боје у излазу раÑтављача.\n"
"\n"
-#: objdump.c:458
+#: objdump.c:459
#, c-format
msgid ""
"\n"
@@ -6726,70 +6718,70 @@ msgstr ""
"\n"
"Подржане опције за прекидач „-P/--private“:\n"
-#: objdump.c:831
+#: objdump.c:832
#, c-format
msgid "section '%s' mentioned in a -j option, but not found in any input file"
msgstr "одељак „%s“ је поменут у опцији „-j“, али га нема ни у једној улазној датотеци"
-#: objdump.c:989
+#: objdump.c:990
#, c-format
msgid "Sections:\n"
msgstr "Одељци:\n"
-#: objdump.c:995
+#: objdump.c:996
#, c-format
msgid "Idx %-*s Size %-*s%-*sFile off Algn"
msgstr "Idx %-*s Величина %-*s%-*sДатотека Поравн"
-#: objdump.c:1001
+#: objdump.c:1002
#, c-format
msgid " Flags"
msgstr " Опције"
-#: objdump.c:1018
+#: objdump.c:1019
#, c-format
msgid "failed to read symbol table from: %s"
msgstr "ниÑам уÑпео да прочитам табелу Ñимбола из: %s"
-#: objdump.c:1020 objdump.c:5517 objdump.c:5569
+#: objdump.c:1021 objdump.c:5514 objdump.c:5566
msgid "error message was"
msgstr "порука грешке беше"
-#: objdump.c:1049
+#: objdump.c:1050
#, c-format
msgid "%s: not a dynamic object"
msgstr "%s: није динамички објекат"
-#: objdump.c:1654 objdump.c:1719
+#: objdump.c:1655 objdump.c:1720
#, c-format
msgid " (File Offset: 0x%lx)"
msgstr " (Померај датотеке: 0x%lx)"
-#: objdump.c:2141
+#: objdump.c:2142
#, c-format
msgid "source file %s is more recent than object file\n"
msgstr "датотека извора „%s“ је новија од датотеке објекта\n"
-#: objdump.c:2510
+#: objdump.c:2511
msgid "disassembly color not correctly selected"
msgstr "боја рашчлањења није правилно изабрана"
-#: objdump.c:3384
+#: objdump.c:3385
#, c-format
msgid "\t... (skipping %lu zeroes, resuming at file offset: 0x%lx)\n"
msgstr "\t... (преÑкачем %lu нуле, наÑтављам на померају датотеке: 0x%lx)\n"
-#: objdump.c:3523
+#: objdump.c:3524
#, c-format
msgid "disassemble_fn returned length %d"
msgstr "„disassemble_fn“ даје дужину %d"
-#: objdump.c:3860 objdump.c:5134
+#: objdump.c:3861 objdump.c:5131
#, c-format
msgid "Reading section %s failed because: %s"
msgstr "ÐиÑам уÑпео да прочитам одељак %s због: %s"
-#: objdump.c:3876
+#: objdump.c:3877
#, c-format
msgid ""
"\n"
@@ -6798,17 +6790,17 @@ msgstr ""
"\n"
"РаÑтављање одељка %s:\n"
-#: objdump.c:4187
+#: objdump.c:4188
#, c-format
msgid "can't use supplied machine %s"
msgstr "не могу да кориÑтим доÑтављену машину %s"
-#: objdump.c:4210
+#: objdump.c:4211
#, c-format
msgid "can't disassemble for architecture %s\n"
msgstr "не могу да раÑтавим за архитектуру %s\n"
-#: objdump.c:4303
+#: objdump.c:4304
#, c-format
msgid ""
"\n"
@@ -6817,7 +6809,7 @@ msgstr ""
"\n"
"Одељак „%s“ има неиÑправну величину: %#<PRIx64>.\n"
-#: objdump.c:4352
+#: objdump.c:4353
#, c-format
msgid ""
"\n"
@@ -6826,12 +6818,12 @@ msgstr ""
"\n"
"Ðе могу да добавим Ñадржај за одељак „%s“.\n"
-#: objdump.c:4515
+#: objdump.c:4516
#, c-format
msgid "File %s does not contain any dwarf debug information\n"
msgstr "Датотека „%s“ не Ñадржи никакве „dwarf“ податке прочишћавања\n"
-#: objdump.c:4551
+#: objdump.c:4552
#, c-format
msgid ""
"No %s section present\n"
@@ -6840,12 +6832,12 @@ msgstr ""
"Ðема %s одељка\n"
"\n"
-#: objdump.c:4560
+#: objdump.c:4561
#, c-format
msgid "reading %s section of %s failed: %s"
msgstr "читање „%s“ одељка %s поља: %s"
-#: objdump.c:4598
+#: objdump.c:4599
#, c-format
msgid ""
"Contents of %s section:\n"
@@ -6854,17 +6846,17 @@ msgstr ""
"Садржај одељка %s:\n"
"\n"
-#: objdump.c:4740
+#: objdump.c:4741
#, c-format
msgid "architecture: %s, "
msgstr "архитектура: %s, "
-#: objdump.c:4743
+#: objdump.c:4744
#, c-format
msgid "flags 0x%08x:\n"
msgstr "опције 0x%08x:\n"
-#: objdump.c:4756
+#: objdump.c:4757
#, c-format
msgid ""
"\n"
@@ -6873,25 +6865,25 @@ msgstr ""
"\n"
"почетна адреÑа 0x"
-#: objdump.c:4806 readelf.c:16892
+#: objdump.c:4803 readelf.c:16929
#, c-format
msgid "%s: %s"
msgstr "%s: %s"
-#: objdump.c:4806 readelf.c:16892
+#: objdump.c:4803 readelf.c:16929
msgid "warning"
msgstr "упозорење"
-#: objdump.c:4806 readelf.c:16892
+#: objdump.c:4803 readelf.c:16929
msgid "error"
msgstr "грешка"
-#: objdump.c:4812 readelf.c:16897
+#: objdump.c:4809 readelf.c:16934
#, c-format
msgid "CTF error: cannot get CTF errors: `%s'"
msgstr "„CTF“ грешка: не могу да добавим „CTF“ грешке: %s"
-#: objdump.c:4836 readelf.c:16919
+#: objdump.c:4833 readelf.c:16956
#, c-format
msgid ""
"\n"
@@ -6900,81 +6892,81 @@ msgstr ""
"\n"
"Члан „CTF“ архиве: %s:\n"
-#: objdump.c:4856
+#: objdump.c:4853
#, c-format
msgid "Iteration failed: %s, %s"
msgstr "Понављање није уÑпело: %s, %s"
-#: objdump.c:4902 objdump.c:4922 objdump.c:4935
+#: objdump.c:4899 objdump.c:4919 objdump.c:4932
#, c-format
msgid "CTF open failure: %s"
msgstr "ÐиÑам уÑпео да отворим „CTF“: %s"
-#: objdump.c:4943
+#: objdump.c:4940
#, c-format
msgid "Contents of CTF section %s:\n"
msgstr "Садржај „CTF“ одељка %s:\n"
-#: objdump.c:4950
+#: objdump.c:4947
#, c-format
msgid "CTF archive member open failure: %s"
msgstr "неуÑпех отварања члана „CTF“ архиве: %s"
-#: objdump.c:5001 readelf.c:17093
+#: objdump.c:4998 readelf.c:17130
#, c-format
msgid "Contents of the SFrame section %s:"
msgstr "Садржај одељка „SFrame“ „%s“:"
-#: objdump.c:5015
+#: objdump.c:5012
#, c-format
msgid "warning: private headers incomplete: %s"
msgstr "упозорење: лична заглавља Ñу непотпуна: %s"
-#: objdump.c:5033
+#: objdump.c:5030
msgid "option -P/--private not supported by this file"
msgstr "опција „-P/--private“ није подржана овом датотеком"
-#: objdump.c:5057
+#: objdump.c:5054
#, c-format
msgid "target specific dump '%s' not supported"
msgstr "нарочит избачај мете „%s“ није подржан"
-#: objdump.c:5123
+#: objdump.c:5120
#, c-format
msgid "Contents of section %s:"
msgstr "Садржај одељка %s:"
-#: objdump.c:5125
+#: objdump.c:5122
#, c-format
msgid " (Starting at file offset: 0x%lx)"
msgstr " (Почињем на померају датотеке: 0x%lx)"
-#: objdump.c:5130 readelf.c:16596
+#: objdump.c:5127 readelf.c:16627
#, c-format
msgid " NOTE: This section is compressed, but its contents have NOT been expanded for this dump.\n"
msgstr " ÐÐПОМЕÐÐ: Овај одељак је Ñажет, али његов Ñадржај ÐИЈЕ раширен за овај избачај.\n"
-#: objdump.c:5238
+#: objdump.c:5235
#, c-format
msgid "no symbols\n"
msgstr "нема Ñимбола\n"
-#: objdump.c:5245
+#: objdump.c:5242
#, c-format
msgid "no information for symbol number %ld\n"
msgstr "нема података за број Ñимбола %ld\n"
-#: objdump.c:5248
+#: objdump.c:5245
#, c-format
msgid "could not determine the type of symbol number %ld\n"
msgstr "не могу да одредим врÑту броја Ñимбола %ld\n"
-#: objdump.c:5515 objdump.c:5567
+#: objdump.c:5512 objdump.c:5564
#, c-format
msgid "failed to read relocs in: %s"
msgstr "ниÑам уÑпео да прочитам премештања у: %s"
-#: objdump.c:5698
+#: objdump.c:5695
#, c-format
msgid ""
"\n"
@@ -6983,56 +6975,56 @@ msgstr ""
"\n"
"%s: Ð·Ð°Ð¿Ð¸Ñ Ð´Ð°Ñ‚Ð¾Ñ‚ÐµÐºÐµ %s\n"
-#: objdump.c:5809
+#: objdump.c:5808
#, c-format
msgid "%s: printing debugging information failed"
msgstr "%s: није уÑпело иÑпиÑивање података прочишћавања"
-#: objdump.c:5899
+#: objdump.c:5895
#, c-format
msgid "In archive %s:\n"
msgstr "У архиви %s:\n"
#. Prevent corrupted files from spinning us into an
#. infinite loop. 100 is an arbitrary heuristic.
-#: objdump.c:5904
+#: objdump.c:5900
msgid "Archive nesting is too deep"
msgstr "Угнежђење архиве је предубоко"
-#: objdump.c:5909
+#: objdump.c:5905
#, c-format
msgid "In nested archive %s:\n"
msgstr "У угнежденој архиви %s:\n"
-#: objdump.c:6073
+#: objdump.c:6055
msgid "error: the start address should be before the end address"
msgstr "грешка: адреÑа почетка мора бити пре адреÑе краја"
-#: objdump.c:6078
+#: objdump.c:6060
msgid "error: the stop address should be after the start address"
msgstr "грешка: адреÑа краја мора бити након адреÑе почетка"
-#: objdump.c:6090
+#: objdump.c:6072
msgid "error: prefix strip must be non-negative"
msgstr "грешка: иÑцепак префикÑа мора бити не-негативан"
-#: objdump.c:6095
-msgid "error: instruction width must be positive"
-msgstr "грешка: ширина инÑтрукције мора бити позитивна"
+#: objdump.c:6077
+msgid "error: instruction width must be in the range 1 to "
+msgstr "грешка: ширина инÑтрукције мора бити у опÑегу од 1 до "
-#: objdump.c:6117
+#: objdump.c:6100
msgid "unrecognized argument to --visualize-option"
msgstr "непознати аргументи за „--visualize-option“"
-#: objdump.c:6137
+#: objdump.c:6120
msgid "unrecognized argument to --disassembler-color"
msgstr "непознат аргумент за „--disassembler-color“"
-#: objdump.c:6148
+#: objdump.c:6131
msgid "unrecognized -E option"
msgstr "непозната опција „-E“"
-#: objdump.c:6159
+#: objdump.c:6142
#, c-format
msgid "unrecognized --endian type `%s'"
msgstr "непозната „--endian“ врÑта „%s“"
@@ -7329,12 +7321,12 @@ msgstr ""
" header Приказује заглавље датотеке\n"
" sections Приказује заглавља одељка\n"
-#: od-pe.c:257
+#: od-pe.c:268
#, c-format
msgid "unknown: 0x%x"
msgstr "непознато: 0x%x"
-#: od-pe.c:273
+#: od-pe.c:284
#, c-format
msgid ""
"\n"
@@ -7343,7 +7335,7 @@ msgstr ""
"\n"
" Заглавље датотеке није приÑутно\n"
-#: od-pe.c:276
+#: od-pe.c:287
#, c-format
msgid ""
"\n"
@@ -7352,92 +7344,92 @@ msgstr ""
"\n"
" Заглавље датотеке (на померају 0):\n"
-#: od-pe.c:282
+#: od-pe.c:293
#, c-format
msgid "Bytes on Last Page:\t\t%d\n"
msgstr "Бајтови на поÑледњој Ñтраници:\t\t%d\n"
-#: od-pe.c:285
+#: od-pe.c:296
#, c-format
msgid "Pages In File:\t\t\t%d\n"
msgstr "Страница у датотеци:\t\t\t%d\n"
-#: od-pe.c:288
+#: od-pe.c:299
#, c-format
msgid "Relocations:\t\t\t%d\n"
msgstr "Премештаји:\t\t\t%d\n"
-#: od-pe.c:291
+#: od-pe.c:302
#, c-format
msgid "Size of header in paragraphs:\t%d\n"
msgstr "Величина заглавља у паÑуÑима:\t%d\n"
-#: od-pe.c:294
+#: od-pe.c:305
#, c-format
msgid "Min extra paragraphs needed:\t%d\n"
msgstr "Ðајмање потребних додатних паÑуÑа:\t%d\n"
-#: od-pe.c:297
+#: od-pe.c:308
#, c-format
msgid "Max extra paragraphs needed:\t%d\n"
msgstr "Ðајвише потребних додатних паÑуÑа:\t%d\n"
-#: od-pe.c:300
+#: od-pe.c:311
#, c-format
msgid "Initial (relative) SS value:\t%d\n"
msgstr "Почетна (релативна) SS вредноÑÑ‚:\t%d\n"
-#: od-pe.c:303
+#: od-pe.c:314
#, c-format
msgid "Initial SP value:\t\t%d\n"
msgstr "Почетна SP вредноÑÑ‚:\t\t%d\n"
-#: od-pe.c:306
+#: od-pe.c:317
#, c-format
msgid "Checksum:\t\t\t%#x\n"
msgstr "Сума провере:\t\t\t%#x\n"
-#: od-pe.c:309
+#: od-pe.c:320
#, c-format
msgid "Initial IP value:\t\t%d\n"
msgstr "Почетна IP вредноÑÑ‚:\t\t%d\n"
-#: od-pe.c:312
+#: od-pe.c:323
#, c-format
msgid "Initial (relative) CS value:\t%d\n"
msgstr "Почетна (релативна) CS вредноÑÑ‚:\t%d\n"
-#: od-pe.c:315
+#: od-pe.c:326
#, c-format
msgid "File address of reloc table:\t%d\n"
msgstr "ÐдреÑа датотеке табеле премештаја:\t%d\n"
-#: od-pe.c:318
+#: od-pe.c:329
#, c-format
msgid "Overlay number:\t\t\t%d\n"
msgstr "Број преклапања:\t\t\t%d\n"
-#: od-pe.c:321
+#: od-pe.c:332
#, c-format
msgid "OEM identifier:\t\t\t%d\n"
msgstr "OEM одредник:\t\t\t%d\n"
-#: od-pe.c:324
+#: od-pe.c:335
#, c-format
msgid "OEM information:\t\t%#x\n"
msgstr "OEM информација:\t\t%#x\n"
-#: od-pe.c:327
+#: od-pe.c:338
#, c-format
msgid "File address of new exe header:\t%#lx\n"
msgstr "ÐдреÑа датотеке новог „exe“ заглавља:\t%#lx\n"
-#: od-pe.c:358
+#: od-pe.c:369
#, c-format
msgid "Stub message:\t\t\t"
msgstr "Привидна порука:\t\t\t"
-#: od-pe.c:372
+#: od-pe.c:383
#, c-format
msgid ""
"\n"
@@ -7446,47 +7438,47 @@ msgstr ""
"\n"
" Заглавље Ñлике (на померају %#lx):\n"
-#: od-pe.c:380
+#: od-pe.c:391
#, c-format
msgid "Machine Number:\t\t\t%#x\t\t- %s\n"
msgstr "Број машине:\t\t\t%#x\t\t- %s\n"
-#: od-pe.c:383
+#: od-pe.c:394
#, c-format
msgid "Number of sections:\t\t\\%d\n"
msgstr "Број одељака:\t\t\\%d\n"
-#: od-pe.c:386
+#: od-pe.c:397
#, c-format
msgid "Time/Date:\t\t\t%#08lx\t- "
msgstr "Време/датум:\t\t\t%#08lx\t- "
-#: od-pe.c:388 od-xcoff.c:422 readelf.c:21680
+#: od-pe.c:399 od-xcoff.c:422 readelf.c:21727
#, c-format
msgid "not set\n"
msgstr "није подешено\n"
-#: od-pe.c:396
+#: od-pe.c:407
#, c-format
msgid "Symbol table offset:\t\t%#08lx\n"
msgstr "Померај табеле Ñимбола:\t\t%#08lx\n"
-#: od-pe.c:398
+#: od-pe.c:409
#, c-format
msgid "Number of symbols:\t\t\\%ld\n"
msgstr "Број Ñимбола:\t\t\\%ld\n"
-#: od-pe.c:402
+#: od-pe.c:413
#, c-format
msgid "Optional header size:\t\t%#x\n"
msgstr "Опционална величина заглавља:\t\t%#x\n"
-#: od-pe.c:405
+#: od-pe.c:416
#, c-format
msgid "Flags:\t\t\t\t0x%04x\t\t- "
msgstr "ЗаÑтавице:\t\t\t\t0x%04x\t\t- "
-#: od-pe.c:413
+#: od-pe.c:424
#, c-format
msgid ""
"\n"
@@ -7495,52 +7487,52 @@ msgstr ""
"\n"
" Изборно AOUT заглавље 64-бита (на померају %#lx):\n"
-#: od-pe.c:420
+#: od-pe.c:431
#, c-format
msgid "error: unable to read AOUT and PE+ headers\n"
msgstr "грешка: не могу да прочитам AOUT и PE+ заглавља\n"
-#: od-pe.c:424 od-pe.c:509
+#: od-pe.c:435 od-pe.c:537
#, c-format
msgid "Magic:\t\t\t\t%x\t\t- %s\n"
msgstr "Магија:\t\t\t\t%x\t\t- %s\n"
-#: od-pe.c:425 od-pe.c:510 readelf.c:19539 readelf.c:19608
+#: od-pe.c:436 od-pe.c:538 readelf.c:19576 readelf.c:19645
msgid "Unknown"
msgstr "Ðепознато"
-#: od-pe.c:427 od-pe.c:512
+#: od-pe.c:438 od-pe.c:540
#, c-format
-msgid "Version:\t\t\t%x\n"
-msgstr "Издање:\t\t\t%x\n"
+msgid "Linker Version:\t\t\t%x\t\t- %u.%02u\n"
+msgstr "Издање повезивача:\t\t\t%x\t\t- %u.%02u\n"
-#: od-pe.c:430 od-pe.c:515
+#: od-pe.c:443 od-pe.c:545
#, c-format
msgid "Text Size:\t\t\t%#lx\n"
msgstr "Величина текÑта:\t\t\t%#lx\n"
-#: od-pe.c:432 od-pe.c:517
+#: od-pe.c:445 od-pe.c:547
#, c-format
msgid "Data Size:\t\t\t%#lx\n"
msgstr "Величина података:\t\t\t%#lx\n"
-#: od-pe.c:434 od-pe.c:519
+#: od-pe.c:447 od-pe.c:549
#, c-format
msgid "BSS Size:\t\t\t%#lx\n"
msgstr "BSS величина:\t\t\t%#lx\n"
-#: od-pe.c:436 od-pe.c:521
+#: od-pe.c:449 od-pe.c:551
#, c-format
msgid "Entry Point:\t\t\t%#lx\n"
msgstr "Улазна тачка:\t\t\t%#lx\n"
-#: od-pe.c:438 od-pe.c:523
+#: od-pe.c:451 od-pe.c:553
#, c-format
msgid "Text Start:\t\t\t%#lx\n"
msgstr "Почетак текÑта:\t\t\t%#lx\n"
#. There is no data_start field in the PE+ standard header.
-#: od-pe.c:442
+#: od-pe.c:455
#, c-format
msgid ""
"\n"
@@ -7549,108 +7541,108 @@ msgstr ""
"\n"
" Изборно PE+ заглавље (на померају %#lx):\n"
-#: od-pe.c:445 od-pe.c:541
+#: od-pe.c:458 od-pe.c:571
#, c-format
msgid "Image Base:\t\t\t%#lx\n"
msgstr "ОÑнова Ñлике:\t\t\t%#lx\n"
-#: od-pe.c:447 od-pe.c:543
+#: od-pe.c:460 od-pe.c:573
#, c-format
msgid "Section Alignment:\t\t%#lx\n"
msgstr "Поравнање одељка:\t\t%#lx\n"
-#: od-pe.c:449 od-pe.c:545
+#: od-pe.c:462 od-pe.c:575
#, c-format
msgid "File Alignment:\t\t\t%#lx\n"
msgstr "Поравнање датотеке:\t\t\t%#lx\n"
-#: od-pe.c:451 od-pe.c:547
+#: od-pe.c:465 od-pe.c:578
#, c-format
-msgid "Major OS Version:\t\t%d\n"
-msgstr "Главно издање ОС-а:\t\t%d\n"
+msgid "Image Version:\t\t\t%lx\t\t- %u.%02u\n"
+msgstr "Издање Ñлике:\t\t\t%lx\t\t- %u.%02u\n"
-#: od-pe.c:453 od-pe.c:549
+#: od-pe.c:470 od-pe.c:583
#, c-format
-msgid "Minor OS ersion:\t\t%d\n"
-msgstr "Споредно издање ОС-а:\t\t%d\n"
+msgid "Minimal Subsystem Version:\t%lx\t\t- %u.%02u\n"
+msgstr "Ðајмање издање подÑиÑтема:\t%lx\t\t- %u.%02u\n"
-#: od-pe.c:455 od-pe.c:551
+#: od-pe.c:475 od-pe.c:588
#, c-format
-msgid "Major Image Version:\t\t%d\n"
-msgstr "Главно издање Ñлике:\t\t%d\n"
+msgid "Minimal OS Version:\t\t%lx\t\t- %u.%02u\n"
+msgstr "Ðајмање издање ОС-а:\t\t%lx\t\t- %u.%02u\n"
-#: od-pe.c:457 od-pe.c:553
+#: od-pe.c:480 od-pe.c:593
#, c-format
-msgid "Minor Image Version:\t\t%d\n"
-msgstr "Споредно издање Ñлике:\t\t%d\n"
+msgid "Overwrite OS Version:\t\t%lx\t\t- "
+msgstr "Издање ОС-а препиÑивања:\t\t%lx\t\t- "
-#: od-pe.c:459 od-pe.c:555
+#: od-pe.c:483 od-pe.c:596
#, c-format
-msgid "Major Subsystem Version:\t%d\n"
-msgstr "Главно издање подÑиÑтема:\t%d\n"
+msgid "(default)\n"
+msgstr "(оÑновно)\n"
-#: od-pe.c:461 od-pe.c:557
+#: od-pe.c:485 od-pe.c:598
#, c-format
-msgid "Minor Subsystem Version:\t%d\n"
-msgstr "Споредно издање подÑиÑтема:\t%d\n"
+msgid "%u.%02u (build %u, platform %s)\n"
+msgstr "%u.%02u (изградња %u, платформа „%s“)\n"
-#: od-pe.c:463 od-pe.c:559
+#: od-pe.c:491 od-pe.c:604
#, c-format
msgid "Size Of Image:\t\t\t%#lx\n"
msgstr "Величина Ñлике:\t\t\t%#lx\n"
-#: od-pe.c:465 od-pe.c:561
+#: od-pe.c:493 od-pe.c:606
#, c-format
msgid "Size Of Headers:\t\t%#lx\n"
msgstr "Величина заглавља:\t\t%#lx\n"
-#: od-pe.c:467 od-pe.c:563
+#: od-pe.c:495 od-pe.c:608
#, c-format
msgid "CheckSum:\t\t\t%#lx\n"
msgstr "Сума провере:\t\t\t%#lx\n"
-#: od-pe.c:469 od-pe.c:565
+#: od-pe.c:497 od-pe.c:610
#, c-format
msgid "Subsystem:\t\t\t%d\n"
msgstr "ПодÑиÑтем:\t\t\t%d\n"
#. FIXME: Decode the characteristics.
-#: od-pe.c:472 od-pe.c:568
+#: od-pe.c:500 od-pe.c:613
#, c-format
msgid "DllCharacteristics:\t\t%#x\n"
msgstr "Dll_карактериÑтика:\t\t%#x\n"
-#: od-pe.c:474 od-pe.c:570
+#: od-pe.c:502 od-pe.c:615
#, c-format
msgid "Size Of Stack Reserve:\t\t%#lx\n"
msgstr "Величина резерве Ñпремника:\t\t%#lx\n"
-#: od-pe.c:476 od-pe.c:572
+#: od-pe.c:504 od-pe.c:617
#, c-format
msgid "Size Of Stack Commit:\t\t%#lx\n"
msgstr "Величина предаје Ñпремника:\t\t%#lx\n"
-#: od-pe.c:478 od-pe.c:574
+#: od-pe.c:506 od-pe.c:619
#, c-format
msgid "Size Of Heap Reserve:\t\t%#lx\n"
msgstr "Величина групне резерве:\t\t%#lx\n"
-#: od-pe.c:480 od-pe.c:576
+#: od-pe.c:508 od-pe.c:621
#, c-format
msgid "Size Of Heap Commit:\t\t%#lx\n"
msgstr "Величина групне предаје:\t\t%#lx\n"
-#: od-pe.c:482 od-pe.c:578
+#: od-pe.c:510 od-pe.c:623
#, c-format
msgid "Loader Flags:\t\t\t%#lx\n"
msgstr "ЗаÑтавице утоваривача:\t\t\t%#lx\n"
-#: od-pe.c:484 od-pe.c:580
+#: od-pe.c:512 od-pe.c:625
#, c-format
msgid "Number Of Rva and Sizes:\t%#lx\n"
msgstr "Број „Rva“ и величина:\t%#lx\n"
-#: od-pe.c:500
+#: od-pe.c:528
#, c-format
msgid ""
"\n"
@@ -7659,17 +7651,17 @@ msgstr ""
"\n"
" Изборно AOUT заглавље 32-бита (на померају %#lx, величина %d):\n"
-#: od-pe.c:505
+#: od-pe.c:533
#, c-format
msgid "error: unable to seek to/read AOUT header\n"
msgstr "грешка: не могу да Ñкокнем на/прочитам AOUT заглавље\n"
-#: od-pe.c:525
+#: od-pe.c:555
#, c-format
msgid "Data Start:\t\t\t%#lx\n"
msgstr "Почетак података:\t\t\t%#lx\n"
-#: od-pe.c:532
+#: od-pe.c:562
#, c-format
msgid ""
"\n"
@@ -7678,12 +7670,12 @@ msgstr ""
"\n"
" Изборно PE заглавље (на померају %#lx):\n"
-#: od-pe.c:538
+#: od-pe.c:568
#, c-format
msgid "error: unable to seek to/read PE header\n"
msgstr "грешка: не могу да Ñкокнем на/прочитам PE заглавље\n"
-#: od-pe.c:588
+#: od-pe.c:633
#, c-format
msgid ""
"\n"
@@ -7692,7 +7684,7 @@ msgstr ""
"\n"
"Ðеподржана величина опционалног заглавља\n"
-#: od-pe.c:591
+#: od-pe.c:636
#, c-format
msgid ""
"\n"
@@ -7701,82 +7693,82 @@ msgstr ""
"\n"
" Изборно заглавље није приÑутно\n"
-#: od-pe.c:600
+#: od-pe.c:645
#, c-format
msgid "Align: 8192 "
msgstr "Поравнање: 8192 "
-#: od-pe.c:602
+#: od-pe.c:647
#, c-format
msgid "Align: 4096 "
msgstr "Поравнање: 4096 "
-#: od-pe.c:604
+#: od-pe.c:649
#, c-format
msgid "Align: 2048 "
msgstr "Поравнање: 2048 "
-#: od-pe.c:606
+#: od-pe.c:651
#, c-format
msgid "Align: 1024 "
msgstr "Поравнање: 1024 "
-#: od-pe.c:608
+#: od-pe.c:653
#, c-format
msgid "Align: 512 "
msgstr "Поравнање: 512 "
-#: od-pe.c:610
+#: od-pe.c:655
#, c-format
msgid "Align: 256 "
msgstr "Поравнање: 256 "
-#: od-pe.c:612
+#: od-pe.c:657
#, c-format
msgid "Align: 128 "
msgstr "Поравнање: 128 "
-#: od-pe.c:614
+#: od-pe.c:659
#, c-format
msgid "Align: 64 "
msgstr "Поравнање: 64 "
-#: od-pe.c:616
+#: od-pe.c:661
#, c-format
msgid "Align: 32 "
msgstr "Поравнање: 32 "
-#: od-pe.c:618
+#: od-pe.c:663
#, c-format
msgid "Align: 16 "
msgstr "Поравнање: 16 "
-#: od-pe.c:620
+#: od-pe.c:665
#, c-format
msgid "Align: 8 "
msgstr "Поравнање: 8 "
-#: od-pe.c:622
+#: od-pe.c:667
#, c-format
msgid "Align: 4 "
msgstr "Поравнање: 4 "
-#: od-pe.c:624
+#: od-pe.c:669
#, c-format
msgid "Align: 2 "
msgstr "Поравнање: 2 "
-#: od-pe.c:626
+#: od-pe.c:671
#, c-format
msgid "Align: 1 "
msgstr "Поравнање: 1 "
-#: od-pe.c:628
+#: od-pe.c:673
#, c-format
msgid "Align: *unknown* "
msgstr "Поравнање: *непознато* "
-#: od-pe.c:648
+#: od-pe.c:693
#, c-format
msgid ""
"\n"
@@ -7785,25 +7777,25 @@ msgstr ""
"\n"
"Заглавља одељка (на померају 0x%08x):\n"
-#: od-pe.c:652
+#: od-pe.c:697
#, c-format
msgid " No section headers\n"
msgstr " Ðема заглавља одељка\n"
-#: od-pe.c:657
+#: od-pe.c:702
msgid "cannot seek to section headers start\n"
msgstr "не могу да Ñкокнем на почетак заглавља одељка\n"
-#: od-pe.c:675 od-xcoff.c:535 od-xcoff.c:547 od-xcoff.c:602
+#: od-pe.c:720 od-xcoff.c:535 od-xcoff.c:547 od-xcoff.c:602
msgid "cannot read section header"
msgstr "не могу да прочитам заглавље одељка"
-#: od-pe.c:692
+#: od-pe.c:737
#, c-format
msgid " %08x "
msgstr " %08x "
-#: od-pe.c:694
+#: od-pe.c:739
#, c-format
msgid ""
"\n"
@@ -7812,16 +7804,16 @@ msgstr ""
"\n"
" Опције: %08x "
-#: od-pe.c:734
+#: od-pe.c:779
msgid "cannot seek to/read file header"
msgstr "не могу да Ñкокнем на/прочитам заглавље датотеке"
-#: od-pe.c:754
+#: od-pe.c:799
#, c-format
msgid "cannot seek to/read image header at offset %#x"
msgstr "не могу да Ñкокнем на/прочитам заглавље Ñлике на померају %#x"
-#: od-pe.c:777
+#: od-pe.c:822
msgid "cannot seek to/read image header"
msgstr "не могу да Ñкокнем на/прочитам заглавље Ñлике"
@@ -8344,68 +8336,68 @@ msgstr "ПонеÑтало је меморије за време додељивÐ
msgid "Unable to read in %<PRIu64> bytes of %s\n"
msgstr "Ðе могу да прочитам %<PRIu64> бајта од %s\n"
-#: readelf.c:912
+#: readelf.c:974
msgid "<internal error>"
msgstr "<унутрашња грешка>"
-#: readelf.c:914
+#: readelf.c:976
msgid "<none>"
msgstr "<ништа>"
-#: readelf.c:916
+#: readelf.c:978
msgid "<no-strings>"
msgstr "<нема ниÑки>"
-#: readelf.c:1051
+#: readelf.c:1073
#, c-format
msgid "BAD[0x%lx]"
msgstr "ЛОШЕ[0x%lx]"
-#: readelf.c:1293
+#: readelf.c:1315
msgid "Don't know about relocations on this machine architecture\n"
msgstr "Ðе знам о премештајима на овој архитектури машине\n"
-#: readelf.c:1320 readelf.c:1420
+#: readelf.c:1342 readelf.c:1442
msgid "32-bit relocation data"
msgstr "32-битни подаци премештаја"
-#: readelf.c:1332 readelf.c:1362 readelf.c:1431 readelf.c:1460
+#: readelf.c:1354 readelf.c:1384 readelf.c:1453 readelf.c:1482
msgid "out of memory parsing relocs\n"
msgstr "понеÑтало је меморије за време обраде премештаја\n"
-#: readelf.c:1350 readelf.c:1449
+#: readelf.c:1372 readelf.c:1471
msgid "64-bit relocation data"
msgstr "64-битни подаци премештаја"
-#: readelf.c:1779 readelf.c:1846
+#: readelf.c:1801 readelf.c:1868
msgid "RELR relocation data"
msgstr "„RELR“ подаци премештаја"
-#: readelf.c:1842
+#: readelf.c:1864
msgid "Unexpected entsize for RELR section\n"
msgstr "Ðеочекивана величина уноÑа за RELR одељак\n"
-#: readelf.c:1867
+#: readelf.c:1889
#, c-format
msgid "Index: Entry Address Symbolic Address\n"
msgstr "ИндекÑ: Ð£Ð½Ð¾Ñ ÐдреÑа Симболичка адреÑа\n"
-#: readelf.c:1869
+#: readelf.c:1891
#, c-format
msgid "Index: Entry Address Symbolic Address\n"
msgstr "ИдекÑ: Ð£Ð½Ð¾Ñ ÐдреÑа Симболична адреÑа\n"
#. We assume that there will never be more than 9999 entries.
-#: readelf.c:1881
+#: readelf.c:1903
#, c-format
msgid "%04u: "
msgstr "%04u: "
-#: readelf.c:1903
+#: readelf.c:1925
msgid "Unusual RELR bitmap - no previous entry to set the base address\n"
msgstr "Ðеуобичајена RELR битмапа – нема претходног уноÑа за поÑтављање адреÑе оÑнове\n"
-#: readelf.c:1917
+#: readelf.c:1939
#, c-format
msgid ""
"\n"
@@ -8414,320 +8406,320 @@ msgstr ""
"\n"
"%*s "
-#: readelf.c:1973
+#: readelf.c:1995
#, c-format
msgid " Offset Info Type Sym. Value Symbol's Name + Addend\n"
msgstr " Померај Инфо Ð’Ñ€Ñта Вред Ñмбла Ðзив Ñмбла + Сабирак\n"
-#: readelf.c:1975
+#: readelf.c:1997
#, c-format
msgid " Offset Info Type Sym.Value Sym. Name + Addend\n"
msgstr " Померај Инфо Ð’Ñ€Ñта Вред Ñмбла Ðзив Ñмбла + Сабирак\n"
-#: readelf.c:1980
+#: readelf.c:2002
#, c-format
msgid " Offset Info Type Sym. Value Symbol's Name\n"
msgstr " Померај Инфо Ð’Ñ€Ñта Вред Ñмбла Ðзив Ñмбла\n"
-#: readelf.c:1982
+#: readelf.c:2004
#, c-format
msgid " Offset Info Type Sym.Value Sym. Name\n"
msgstr " Померај Инфо Ð’Ñ€Ñта Вред Ñмбла Ðзив Ñмбла\n"
-#: readelf.c:1990
+#: readelf.c:2012
#, c-format
msgid " Offset Info Type Symbol's Value Symbol's Name + Addend\n"
msgstr " Померај Инфо Ð’Ñ€Ñта Вред. Ñимбола Ðазив Ñимбола + Сабирак\n"
-#: readelf.c:1992
+#: readelf.c:2014
#, c-format
msgid " Offset Info Type Sym. Value Sym. Name + Addend\n"
msgstr " Померај Инфо Ð’Ñ€Ñта Вред Ñмбла Ðзив Ñмбла + Сабирак\n"
-#: readelf.c:1997
+#: readelf.c:2019
#, c-format
msgid " Offset Info Type Symbol's Value Symbol's Name\n"
msgstr " Померај Инфо Ð’Ñ€Ñта Вред. Ñимбола Ðазив Ñимбола\n"
-#: readelf.c:1999
+#: readelf.c:2021
#, c-format
msgid " Offset Info Type Sym. Value Sym. Name\n"
msgstr " Померај Подаци Ð’Ñ€Ñта Вред. Ñмбла Ðазив Ñмбла\n"
-#: readelf.c:2379 readelf.c:2538 readelf.c:2546
+#: readelf.c:2401 readelf.c:2560 readelf.c:2568
#, c-format
msgid "unrecognized: %-7lx"
msgstr "непознато: %-7lx"
-#: readelf.c:2405
+#: readelf.c:2427
#, c-format
msgid "<unknown addend: %<PRIx64>>"
msgstr "<непознат Ñабирак: %<PRIx64>>"
-#: readelf.c:2414
+#: readelf.c:2436
#, c-format
msgid " bad symbol index: %08lx in reloc\n"
msgstr " лош Ð¸Ð½Ð´ÐµÐºÑ Ñимбола: %08lx у премештају\n"
-#: readelf.c:2484
+#: readelf.c:2506
#, c-format
msgid "<string table index: %3ld>"
msgstr "<Ð¸Ð½Ð´ÐµÐºÑ Ñ‚Ð°Ð±ÐµÐ»Ðµ ниÑке: %3ld>"
-#: readelf.c:2487
+#: readelf.c:2509
#, c-format
msgid "<corrupt string table index: %3ld>\n"
msgstr "<оштећен Ð¸Ð½Ð´ÐµÐºÑ Ñ‚Ð°Ð±ÐµÐ»Ðµ ниÑке: %3ld>\n"
-#: readelf.c:3026
+#: readelf.c:3048
#, c-format
msgid "Processor Specific: %lx"
msgstr "ПоÑебноÑÑ‚ процеÑора: %lx"
-#: readelf.c:3053
+#: readelf.c:3075
#, c-format
msgid "Operating System specific: %lx"
msgstr "ПоÑебноÑÑ‚ оперативног ÑиÑтема: %lx"
-#: readelf.c:3057 readelf.c:5558
+#: readelf.c:3079 readelf.c:5580
#, c-format
msgid "<unknown>: %lx"
msgstr "<непознато>: %lx"
-#: readelf.c:3157
+#: readelf.c:3179
msgid "NONE (None)"
msgstr "NONE (ништа)"
-#: readelf.c:3158
+#: readelf.c:3180
msgid "REL (Relocatable file)"
msgstr "REL (премеÑтива датотека)"
-#: readelf.c:3159
+#: readelf.c:3181
msgid "EXEC (Executable file)"
msgstr "EXEC (извршна датотека)"
-#: readelf.c:3162
+#: readelf.c:3184
msgid "DYN (Position-Independent Executable file)"
msgstr "DYN (Положајно незавиÑна извршна датотека)"
-#: readelf.c:3164
+#: readelf.c:3186
msgid "DYN (Shared object file)"
msgstr "DYN (дељена датотека предмета)"
-#: readelf.c:3165
+#: readelf.c:3187
msgid "CORE (Core file)"
msgstr "CORE (кључна датотека)"
-#: readelf.c:3169
+#: readelf.c:3191
#, c-format
msgid "Processor Specific: (%x)"
msgstr "ПоÑебноÑÑ‚ процеÑора: (%x)"
-#: readelf.c:3171
+#: readelf.c:3193
#, c-format
msgid "OS Specific: (%x)"
msgstr "ПоÑебноÑÑ‚ ОС-а: (%x)"
-#: readelf.c:3173
+#: readelf.c:3195
#, c-format
msgid "<unknown>: %x"
msgstr "<непознато>: %x"
#. Please keep this switch table sorted by increasing EM_ value.
#. 0
-#: readelf.c:3187 readelf.c:19537 readelf.c:19548
+#: readelf.c:3209 readelf.c:19574 readelf.c:19585
msgid "None"
msgstr "Ðишта"
-#: readelf.c:3435
+#: readelf.c:3457
#, c-format
msgid "<unknown>: 0x%x"
msgstr "<непознато>: 0x%x"
-#: readelf.c:3718
+#: readelf.c:3740
msgid ", <unknown>"
msgstr ", <непознато>"
-#: readelf.c:3885
+#: readelf.c:3907
#, c-format
msgid "Unrecognised IA64 VMS Command Code: %x\n"
msgstr "Ðепознат „IA64 VMS“ код наредби: %x\n"
-#: readelf.c:3922
+#: readelf.c:3944
msgid "unknown mac"
msgstr "непознат мак"
-#: readelf.c:4006
+#: readelf.c:4028
msgid ", <unknown MeP cpu type>"
msgstr ", <непозната врÑта „MeP“ процеÑора>"
-#: readelf.c:4027
+#: readelf.c:4049
msgid "<unknown MeP copro type>"
msgstr "<непозната „MeP copro“ врÑте>"
-#: readelf.c:4039 readelf.c:4988
+#: readelf.c:4061 readelf.c:5010
#, c-format
msgid ", unknown flags bits: %#x"
msgstr ", непознати битови заÑтавица: %#x"
-#: readelf.c:4148
+#: readelf.c:4170
msgid ", unknown CPU"
msgstr ", непозната ЦПЈ"
-#: readelf.c:4173
+#: readelf.c:4195
msgid ", unknown ABI"
msgstr ", непознат ÐБИ"
-#: readelf.c:4222 readelf.c:4669
+#: readelf.c:4244 readelf.c:4691
msgid ", unknown ISA"
msgstr ", непознат ИСÐ"
-#: readelf.c:4231
+#: readelf.c:4253
msgid ": architecture variant: "
msgstr ": варијанта архитектуре: "
-#: readelf.c:4280
+#: readelf.c:4302
msgid ": unknown"
msgstr ": непознато"
-#: readelf.c:4285
+#: readelf.c:4307
msgid ": unknown extra flag bits also present"
msgstr ": приÑутни Ñу битови непознате додатне опције"
-#: readelf.c:4808
+#: readelf.c:4830
msgid ", unknown v850 architecture variant"
msgstr ", непозната варијанта и850 архитектуре"
-#: readelf.c:4841
+#: readelf.c:4863
msgid ", unknown"
msgstr ", непознато"
-#: readelf.c:4907
+#: readelf.c:4929
#, c-format
msgid ", <unknown AMDGPU GPU type: %#x>"
msgstr ", <непозната врÑта графичког процеÑора „AMDGPU“: %#x>"
-#: readelf.c:4955
+#: readelf.c:4977
#, c-format
msgid ", <unknown xnack value: %#x>"
msgstr ", <непозната вредноÑÑ‚ „xnack“: %#x>"
-#: readelf.c:4980
+#: readelf.c:5002
#, c-format
msgid ", <unknown sramecc value: %#x>"
msgstr ", <непозната вредноÑÑ‚ „sramecc“: %#x>"
-#: readelf.c:5053
+#: readelf.c:5075
msgid ", relocatable"
msgstr ", премеÑтиво"
-#: readelf.c:5056
+#: readelf.c:5078
msgid ", relocatable-lib"
msgstr ", премеÑтива библиотека"
-#: readelf.c:5257
+#: readelf.c:5279
msgid "Standalone App"
msgstr "СамоÑталан програм"
-#: readelf.c:5266
+#: readelf.c:5288
msgid "Bare-metal C6000"
msgstr "Огољени-метал Ц6000"
-#: readelf.c:5276 readelf.c:6709 readelf.c:6725 readelf.c:20977 readelf.c:21077
-#: readelf.c:21124 readelf.c:21161 readelf.c:21222 readelf.c:21249
-#: readelf.c:21271
+#: readelf.c:5298 readelf.c:6732 readelf.c:6748 readelf.c:21014 readelf.c:21114
+#: readelf.c:21161 readelf.c:21198 readelf.c:21259 readelf.c:21290
+#: readelf.c:21312
#, c-format
msgid "<unknown: %x>"
msgstr "<непознато: %x>"
#. This message is probably going to be displayed in a 15
#. character wide field, so put the hex value first.
-#: readelf.c:6052
+#: readelf.c:6075
#, c-format
msgid "%08x: <unknown>"
msgstr "%08x: <непознато>"
-#: readelf.c:6144
+#: readelf.c:6167
#, c-format
msgid "Usage: readelf <option(s)> elf-file(s)\n"
msgstr "Употреба: readelf <опција(е)> елф-датотека(е)\n"
-#: readelf.c:6145
+#: readelf.c:6168
#, c-format
msgid " Display information about the contents of ELF format files\n"
msgstr " Приказује податке о Ñадржају датотека ЕЛФ запиÑа\n"
-#: readelf.c:6146
+#: readelf.c:6169
#, c-format
msgid " Options are:\n"
msgstr " Опције Ñу:\n"
-#: readelf.c:6147
+#: readelf.c:6170
#, c-format
msgid " -a --all Equivalent to: -h -l -S -s -r -d -V -A -I\n"
msgstr " -a --all ИÑто као: -h -l -S -s -r -d -V -A -I\n"
-#: readelf.c:6149
+#: readelf.c:6172
#, c-format
msgid " -h --file-header Display the ELF file header\n"
msgstr " -h --file-header Приказује заглавље „ELF“ датотеке\n"
-#: readelf.c:6151
+#: readelf.c:6174
#, c-format
msgid " -l --program-headers Display the program headers\n"
msgstr " -l --program-headers Приказује заглавља програма\n"
-#: readelf.c:6153
+#: readelf.c:6176
#, c-format
msgid " --segments An alias for --program-headers\n"
msgstr " --segments ÐÐ»Ð¸Ñ˜Ð°Ñ Ð·Ð° „--program-headers“\n"
-#: readelf.c:6155
+#: readelf.c:6178
#, c-format
msgid " -S --section-headers Display the sections' header\n"
msgstr " -S --section-headers Приказује заглавље одељака\n"
-#: readelf.c:6157
+#: readelf.c:6180
#, c-format
msgid " --sections An alias for --section-headers\n"
msgstr " --sections ÐÐ»Ð¸Ñ˜Ð°Ñ Ð·Ð° „--section-headers“\n"
-#: readelf.c:6159
+#: readelf.c:6182
#, c-format
msgid " -g --section-groups Display the section groups\n"
msgstr " -g --section-groups Приказује групе одељка\n"
-#: readelf.c:6161
+#: readelf.c:6184
#, c-format
msgid " -t --section-details Display the section details\n"
msgstr " -t --section-details Приказује појединоÑти одељка\n"
-#: readelf.c:6163
+#: readelf.c:6186
#, c-format
msgid " -e --headers Equivalent to: -h -l -S\n"
msgstr " -e --headers ИÑто као: -h -l -S\n"
-#: readelf.c:6165
+#: readelf.c:6188
#, c-format
msgid " -s --syms Display the symbol table\n"
msgstr " -s --syms Приказује табелу Ñимбола\n"
-#: readelf.c:6167
+#: readelf.c:6190
#, c-format
msgid " --symbols An alias for --syms\n"
msgstr " --symbols ÐÐ»Ð¸Ñ˜Ð°Ñ Ð·Ð° „--syms“\n"
-#: readelf.c:6169
+#: readelf.c:6192
#, c-format
msgid " --dyn-syms Display the dynamic symbol table\n"
msgstr " --dyn-syms Приказује динамичку табелу Ñимбола\n"
-#: readelf.c:6171
+#: readelf.c:6194
#, c-format
msgid " --lto-syms Display LTO symbol tables\n"
msgstr " --lto-syms Приказује „LTO“ табеле Ñимбола\n"
-#: readelf.c:6173
+#: readelf.c:6196
#, c-format
msgid ""
" --sym-base=[0|8|10|16] \n"
@@ -8738,27 +8730,27 @@ msgstr ""
" Приморава оÑнову за величинама Ñимбола. Опције Ñу \n"
" mixed (оÑновно), octal, decimal, hexadecimal.\n"
-#: readelf.c:6177
+#: readelf.c:6200
#, c-format
msgid " -C --demangle[=STYLE] Decode mangled/processed symbol names\n"
msgstr " -C --demangle[=СТИЛ] Декодира прекрштене/обрађене називе Ñимбола\n"
-#: readelf.c:6181
+#: readelf.c:6204
#, c-format
msgid " --no-demangle Do not demangle low-level symbol names. (default)\n"
msgstr " --no-demangle Ðе раÑкршћавања називе Ñимбола ниÑког нивоа. (оÑновно)\n"
-#: readelf.c:6183
+#: readelf.c:6206
#, c-format
msgid " --recurse-limit Enable a demangling recursion limit. (default)\n"
msgstr " --recurse-limit Укључује ограничење понављања раÑкршћавања. (оÑновно)\n"
-#: readelf.c:6185
+#: readelf.c:6208
#, c-format
msgid " --no-recurse-limit Disable a demangling recursion limit\n"
msgstr " --no-recurse-limit ИÑкључује ограничење понављања раÑкршћавања\n"
-#: readelf.c:6187
+#: readelf.c:6210
#, c-format
msgid ""
" -U[dlexhi] --unicode=[default|locale|escape|hex|highlight|invalid]\n"
@@ -8773,57 +8765,57 @@ msgstr ""
" нитовима промене реда, или их Ñматра неиÑправним и приказје као\n"
" „{Ñ…ÐµÐºÑ Ð½Ð¸Ð·Ð¾Ð²Ðµ}“\n"
-#: readelf.c:6193
+#: readelf.c:6216
#, c-format
msgid " -X --extra-sym-info Display extra information when showing symbols\n"
msgstr " -X --extra-sym-info Приказује додатне информације када приказује Ñимболе\n"
-#: readelf.c:6195
+#: readelf.c:6218
#, c-format
msgid " --no-extra-sym-info Do not display extra information when showing symbols (default)\n"
msgstr " --no-extra-sym-info Ðе приказује додатне информације када приказује Ñимболе (оÑновно)\n"
-#: readelf.c:6197
+#: readelf.c:6220
#, c-format
msgid " -n --notes Display the contents of note sections (if present)\n"
msgstr " -n --notes Приказује Ñадржај одељака напомене (ако их има)\n"
-#: readelf.c:6199
+#: readelf.c:6222
#, c-format
msgid " -r --relocs Display the relocations (if present)\n"
msgstr " -r --relocs Приказује премештаје (ако их има)\n"
-#: readelf.c:6201
+#: readelf.c:6224
#, c-format
msgid " -u --unwind Display the unwind info (if present)\n"
msgstr " -u --unwind Приказује информације развијања (ако их има)\n"
-#: readelf.c:6203
+#: readelf.c:6226
#, c-format
msgid " -d --dynamic Display the dynamic section (if present)\n"
msgstr " -d --dynamic Приказује динамичке одељке (ако их има)\n"
-#: readelf.c:6205
+#: readelf.c:6228
#, c-format
msgid " -V --version-info Display the version sections (if present)\n"
msgstr " -V --version-info Приказује одељке издања (ако их има)\n"
-#: readelf.c:6207
+#: readelf.c:6230
#, c-format
msgid " -A --arch-specific Display architecture specific information (if any)\n"
msgstr " -A --arch-specific Приказује Ñпецифичне информације о архитектури (ако поÑтоје)\n"
-#: readelf.c:6209
+#: readelf.c:6232
#, c-format
msgid " -c --archive-index Display the symbol/file index in an archive\n"
msgstr " -c --archive-index Приказује Ð¸Ð½Ð´ÐµÐºÑ Ñимбола/датотеке у архиви\n"
-#: readelf.c:6211
+#: readelf.c:6234
#, c-format
msgid " -D --use-dynamic Use the dynamic section info when displaying symbols\n"
msgstr " -D --use-dynamic КориÑти информације динамичког одељка приликом приказивања Ñимбола\n"
-#: readelf.c:6213
+#: readelf.c:6236
#, c-format
msgid ""
" -L --lint|--enable-checks\n"
@@ -8832,7 +8824,7 @@ msgstr ""
" -L --lint|--enable-checks\n"
" Приказује поруке упозорења за могуће проблеме\n"
-#: readelf.c:6216
+#: readelf.c:6239
#, c-format
msgid ""
" -x --hex-dump=<number|name>\n"
@@ -8841,7 +8833,7 @@ msgstr ""
" -x --hex-dump=<број|назив>\n"
" ИÑпиÑује Ñадржај одељка <број|назив> као бајтове\n"
-#: readelf.c:6219
+#: readelf.c:6242
#, c-format
msgid ""
" -p --string-dump=<number|name>\n"
@@ -8850,7 +8842,7 @@ msgstr ""
" -p --string-dump=<број|назив>\n"
" ИÑпиÑује Ñадржај одељка <број|назив> као ниÑке\n"
-#: readelf.c:6222
+#: readelf.c:6245
#, c-format
msgid ""
" -R --relocated-dump=<number|name>\n"
@@ -8859,12 +8851,12 @@ msgstr ""
" -R --relocated-dump=<број|назив>\n"
" ИÑпиÑује премештене Ñадржаје одељка <број|назив>\n"
-#: readelf.c:6225
+#: readelf.c:6248
#, c-format
msgid " -z --decompress Decompress section before dumping it\n"
msgstr " -z --decompress РаÑпакује одељак пре иÑпиÑивања\n"
-#: readelf.c:6227
+#: readelf.c:6250
#, c-format
msgid ""
"\n"
@@ -8875,7 +8867,7 @@ msgstr ""
" -j --display-section=<назив|број>\n"
"\t\t Приказује Ñадржај назначеног одељка. Може Ñе понављати\n"
-#: readelf.c:6230
+#: readelf.c:6253
#, c-format
msgid ""
" -w --debug-dump[a/=abbrev, A/=addr, r/=aranges, c/=cu_index, L/=decodedline,\n"
@@ -8892,7 +8884,7 @@ msgstr ""
" U/=инфо_трага]\n"
" Приказује Ñадржај одељака „DWARF“ прочишћавања\n"
-#: readelf.c:6237
+#: readelf.c:6260
#, c-format
msgid ""
" -wk --debug-dump=links Display the contents of sections that link to separate\n"
@@ -8901,7 +8893,7 @@ msgstr ""
" -wk --debug-dump=везе Приказује Ñадржај одељака који повезују на одвојене\n"
" датотеке информација прочишћавања\n"
-#: readelf.c:6240
+#: readelf.c:6263
#, c-format
msgid ""
" -P --process-links Display the contents of non-debug sections in separate\n"
@@ -8910,7 +8902,7 @@ msgstr ""
" -P, --process-links Приказује Ñадржај одељака не-прочишћавања у\n"
" одвојеним датотекама информација прочишћавања. (Подразумева „-wK“)\n"
-#: readelf.c:6244
+#: readelf.c:6267
#, c-format
msgid ""
" -wK --debug-dump=follow-links\n"
@@ -8919,7 +8911,7 @@ msgstr ""
" -wK --debug-dump=follow-links\n"
" Прати везе до одвојених датотека информација прочишћавања (оÑновно)\n"
-#: readelf.c:6247
+#: readelf.c:6270
#, c-format
msgid ""
" -wN --debug-dump=no-follow-links\n"
@@ -8928,7 +8920,7 @@ msgstr ""
" wN --debug-dump=no-follow-links\n"
" Ðе прати везе до одвојених датотека информација прочишћавања\n"
-#: readelf.c:6251
+#: readelf.c:6274
#, c-format
msgid ""
" -wK --debug-dump=follow-links\n"
@@ -8937,7 +8929,7 @@ msgstr ""
" -wK --debug-dump=follow-links\n"
" Прати везе до одвојених датотека информација прочишћавања\n"
-#: readelf.c:6254
+#: readelf.c:6277
#, c-format
msgid ""
" -wN --debug-dump=no-follow-links\n"
@@ -8948,7 +8940,7 @@ msgstr ""
" Ðе прати везе до одвојених датотека информација прочишћавања\n"
" (оÑновно)\n"
-#: readelf.c:6260
+#: readelf.c:6283
#, c-format
msgid ""
" -wD --debug-dump=use-debuginfod\n"
@@ -8957,7 +8949,7 @@ msgstr ""
" -wD --debug-dump=use-debuginfod\n"
" Када прати везе, такође пропитује Ñервере позадинца информација прочишћавања (оÑновно)\n"
-#: readelf.c:6263
+#: readelf.c:6286
#, c-format
msgid ""
" -wE --debug-dump=do-not-use-debuginfod\n"
@@ -8966,27 +8958,27 @@ msgstr ""
" -wE --debug-dump=do-not-use-debuginfod\n"
" Када прати везе, не пропитује Ñервере позадинца информација прочишћавања\n"
-#: readelf.c:6267
+#: readelf.c:6290
#, c-format
msgid " --dwarf-depth=N Do not display DIEs at depth N or greater\n"
msgstr " --dwarf-depth=N Ðе приказује „DIE“-е на дубини N или већој\n"
-#: readelf.c:6269
+#: readelf.c:6292
#, c-format
msgid " --dwarf-start=N Display DIEs starting at offset N\n"
msgstr " --dwarf-start=N Приказује „DIE“ почевши на померају N\n"
-#: readelf.c:6272
+#: readelf.c:6295
#, c-format
msgid " --ctf=<number|name> Display CTF info from section <number|name>\n"
msgstr " --ctf=<број|назив> Приказује „CTF“ информације из одељка <број|назив>\n"
-#: readelf.c:6274
+#: readelf.c:6297
#, c-format
msgid " --ctf-parent=<name> Use CTF archive member <name> as the CTF parent\n"
msgstr " --ctf-parent=<назив> КориÑти <назив> „CTF“ члана архиве као родитеља „CTF“-а\n"
-#: readelf.c:6276
+#: readelf.c:6299
#, c-format
msgid ""
" --ctf-symbols=<number|name>\n"
@@ -8995,7 +8987,7 @@ msgstr ""
" --ctf-symbols=<број|назив>\n"
" КориÑти одељак <број|назив> као „CTF“ Ñпољну табелу Ñимбола\n"
-#: readelf.c:6279
+#: readelf.c:6302
#, c-format
msgid ""
" --ctf-strings=<number|name>\n"
@@ -9004,12 +8996,12 @@ msgstr ""
" --ctf-strings=<број|назив>\n"
" КориÑти одељак <број|назив> као „CTF“ Ñпољну табелу ниÑки\n"
-#: readelf.c:6283
+#: readelf.c:6306
#, c-format
msgid " --sframe[=NAME] Display SFrame info from section NAME, (default '.sframe')\n"
msgstr " --sframe[=ÐÐЗИВ] Приказује „SFrame“ инфо из одељка ÐÐЗИВ, (оÑновно „.sframe“)\n"
-#: readelf.c:6287
+#: readelf.c:6310
#, c-format
msgid ""
" -i --instruction-dump=<number|name>\n"
@@ -9018,146 +9010,146 @@ msgstr ""
" -i --instruction-dump=<број|назив>\n"
" РаÑтавља Ñадржај одељка <број|назив>\n"
-#: readelf.c:6291
+#: readelf.c:6314
#, c-format
msgid " -I --histogram Display histogram of bucket list lengths\n"
msgstr " -I --histogram Приказује хиÑтограм дужина ÑпиÑка ведра\n"
-#: readelf.c:6293
+#: readelf.c:6316
#, c-format
msgid " -W --wide Allow output width to exceed 80 characters\n"
msgstr " -W --wide Допушта да ширина излаза премаши 80 знакова\n"
-#: readelf.c:6295
+#: readelf.c:6318
#, c-format
msgid " -T --silent-truncation If a symbol name is truncated, do not add [...] suffix\n"
msgstr " -T --silent-truncation Ðко је назив Ñимбола Ñкраћен, не додаје ÑÑƒÑ„Ð¸ÐºÑ [...]\n"
-#: readelf.c:6297
+#: readelf.c:6320
#, c-format
msgid " @<file> Read options from <file>\n"
msgstr " @<датотека> Чита опције из <датотеке>\n"
-#: readelf.c:6299
+#: readelf.c:6322
#, c-format
msgid " -H --help Display this information\n"
msgstr " -H --help Приказује ове информације\n"
-#: readelf.c:6301
+#: readelf.c:6324
#, c-format
msgid " -v --version Display the version number of readelf\n"
msgstr " -v --version Приказује број издања за „readelf“\n"
-#: readelf.c:6327 readelf.c:6358 readelf.c:6362
+#: readelf.c:6350 readelf.c:6381 readelf.c:6385
msgid "Out of memory allocating dump request table.\n"
msgstr "ПонеÑтало је меморије приликом додељивања табеле захтева избачаја.\n"
-#: readelf.c:6632
+#: readelf.c:6655
msgid "Missing arg to -U/--unicode"
msgstr "ÐедоÑтаје аргумент за „-U/--unicode“"
-#: readelf.c:6671
+#: readelf.c:6694
#, c-format
msgid "Invalid option '-%c'\n"
msgstr "ÐеиÑправна опција „-%c“\n"
-#: readelf.c:6705 readelf.c:6721 readelf.c:13104
+#: readelf.c:6728 readelf.c:6744 readelf.c:13134
msgid "none"
msgstr "ништа"
-#: readelf.c:6722
+#: readelf.c:6745
msgid "2's complement, little endian"
msgstr "комплемент двојке, мала крајњоÑÑ‚"
-#: readelf.c:6723
+#: readelf.c:6746
msgid "2's complement, big endian"
msgstr "комплемент двојке, велика крајњоÑÑ‚"
-#: readelf.c:6756
+#: readelf.c:6779
msgid "This is a LLVM bitcode file - try using llvm-bcanalyzer\n"
msgstr "Ово је LLVM датотека биткода – покушајте да кориÑтите „llvm-bcanalyzer“\n"
-#: readelf.c:6757
+#: readelf.c:6780
msgid "This is a LLVM bitcode file - try extracting and then using llvm-bcanalyzer\n"
msgstr "Ово је LLVM датотека биткода – покушајте да је раÑпакујете и затим кориÑтите „llvm-bcanalyzer“\n"
-#: readelf.c:6760
+#: readelf.c:6783
msgid "This is a GO binary file - try using 'go tool objdump' or 'go tool nm'\n"
msgstr "Ово је GO бинарна датотека – покушајте да кориÑтите „go tool objdump“ или „go tool nm“\n"
-#: readelf.c:6784
+#: readelf.c:6807
msgid "Not an ELF file - it has the wrong magic bytes at the start\n"
msgstr "Ðије ЕЛФ датотека – има погрешне магичне бајтове на почетку\n"
-#: readelf.c:6806
+#: readelf.c:6829
#, c-format
msgid "ELF Header in linked file '%s':\n"
msgstr "ЕЛФ заглавље у повезаној датотеци „%s“:\n"
-#: readelf.c:6808
+#: readelf.c:6832
#, c-format
msgid "ELF Header:\n"
msgstr "ЕЛФ заглавље:\n"
-#: readelf.c:6809
+#: readelf.c:6833
#, c-format
msgid " Magic: "
msgstr " Магија: "
-#: readelf.c:6813
+#: readelf.c:6837
#, c-format
msgid " Class: %s\n"
msgstr " Разред: %s\n"
-#: readelf.c:6815
+#: readelf.c:6839
#, c-format
msgid " Data: %s\n"
msgstr " Подаци: %s\n"
-#: readelf.c:6817
+#: readelf.c:6841
#, c-format
msgid " Version: %d%s\n"
msgstr " Издање: %d%s\n"
-#: readelf.c:6820
+#: readelf.c:6844
msgid " (current)"
msgstr " (текуће)"
-#: readelf.c:6822
+#: readelf.c:6846
msgid " <unknown>"
msgstr " <непознато>"
-#: readelf.c:6824
+#: readelf.c:6848
#, c-format
msgid " OS/ABI: %s\n"
msgstr " ОС/ÐБИ: %s\n"
-#: readelf.c:6826
+#: readelf.c:6850
#, c-format
msgid " ABI Version: %d\n"
msgstr " Издање ABI-ја: %d\n"
-#: readelf.c:6828
+#: readelf.c:6852
#, c-format
msgid " Type: %s\n"
msgstr " Ð’Ñ€Ñта: %s\n"
-#: readelf.c:6830
+#: readelf.c:6854
#, c-format
msgid " Machine: %s\n"
msgstr " Машина: %s\n"
-#: readelf.c:6832
+#: readelf.c:6856
#, c-format
msgid " Version: 0x%lx\n"
msgstr " Издање: 0x%lx\n"
-#: readelf.c:6835
+#: readelf.c:6859
#, c-format
msgid " Entry point address: "
msgstr " ÐдреÑа улазне тачке: "
-#: readelf.c:6837
+#: readelf.c:6861
#, c-format
msgid ""
"\n"
@@ -9166,7 +9158,7 @@ msgstr ""
"\n"
" Почетак заглавља програма: "
-#: readelf.c:6839
+#: readelf.c:6863
#, c-format
msgid ""
" (bytes into file)\n"
@@ -9175,78 +9167,78 @@ msgstr ""
" (бајтова у датотеци)\n"
" Почетак заглавља одељка: "
-#: readelf.c:6841
+#: readelf.c:6865
#, c-format
msgid " (bytes into file)\n"
msgstr " (бајтова у датотеци)\n"
-#: readelf.c:6843
+#: readelf.c:6867
#, c-format
msgid " Flags: 0x%lx%s\n"
msgstr " Опције: 0x%lx%s\n"
-#: readelf.c:6846
+#: readelf.c:6870
#, c-format
msgid " Size of this header: %u (bytes)\n"
msgstr " Величина овог заглавља: %u (бајта)\n"
-#: readelf.c:6848
+#: readelf.c:6872
#, c-format
msgid " Size of program headers: %u (bytes)\n"
msgstr " Величина заглавља програма: %u (бајта)\n"
-#: readelf.c:6850
+#: readelf.c:6874
#, c-format
msgid " Number of program headers: %u"
msgstr " Број заглавља програма: %u"
-#: readelf.c:6857
+#: readelf.c:6881
#, c-format
msgid " Size of section headers: %u (bytes)\n"
msgstr " Величина заглавља одељка: %u (бајта)\n"
-#: readelf.c:6859
+#: readelf.c:6883
#, c-format
msgid " Number of section headers: %u"
msgstr " Број заглавља одељка: %u"
-#: readelf.c:6867
+#: readelf.c:6891
#, c-format
msgid " Section header string table index: %u"
msgstr " Ð˜Ð½Ð´ÐµÐºÑ Ñ‚Ð°Ð±ÐµÐ»Ðµ ниÑке заглавља одељка: %u"
-#: readelf.c:6879
+#: readelf.c:6903
#, c-format
msgid " <corrupt: out of range>"
msgstr " <оштећено: ван опÑега>"
-#: readelf.c:6923 readelf.c:6970
+#: readelf.c:6947 readelf.c:6994
msgid "The e_phentsize field in the ELF header is less than the size of an ELF program header\n"
msgstr "Поље „e_phentsize“ у ЕЛФ заглављу је мање од величине заглавља ЕЛФ програма\n"
-#: readelf.c:6927 readelf.c:6974
+#: readelf.c:6951 readelf.c:6998
msgid "The e_phentsize field in the ELF header is larger than the size of an ELF program header\n"
msgstr "Поље „e_phentsize“ у ЕЛФ заглављу је веће од величине заглавља ЕЛФ програма\n"
-#: readelf.c:6930 readelf.c:6977
+#: readelf.c:6954 readelf.c:7001
msgid "program headers"
msgstr "заглавља програма"
-#: readelf.c:7016
+#: readelf.c:7040
#, c-format
msgid "Too many program headers - %#x - the file is not that big\n"
msgstr "Превише заглавља програма – %#x – датотека није толико велика\n"
-#: readelf.c:7025
+#: readelf.c:7049
#, c-format
msgid "Out of memory reading %u program headers\n"
msgstr "ПонеÑтало је меморије за време читања %u заглавља програма\n"
-#: readelf.c:7055
+#: readelf.c:7079
msgid "possibly corrupt ELF header - it has a non-zero program header offset, but no program headers\n"
msgstr "вероватно оштећено ЕЛФ заглавље – има не-нулти померај заглавља програма, али нема заглавља програма\n"
-#: readelf.c:7060
+#: readelf.c:7084
#, c-format
msgid ""
"\n"
@@ -9255,7 +9247,7 @@ msgstr ""
"\n"
"Ðема заглавља програма у овој повезаној датотеци „%s“.\n"
-#: readelf.c:7063
+#: readelf.c:7087
#, c-format
msgid ""
"\n"
@@ -9264,7 +9256,7 @@ msgstr ""
"\n"
"Ðема заглавља програма у овој датотеци.\n"
-#: readelf.c:7074
+#: readelf.c:7099
#, c-format
msgid ""
"\n"
@@ -9273,12 +9265,12 @@ msgstr ""
"\n"
"Ð’Ñ€Ñта елф датотеке је „%s“\n"
-#: readelf.c:7075
+#: readelf.c:7100
#, c-format
msgid "Entry point 0x%<PRIx64>\n"
msgstr "Улазна тачка 0x%<PRIx64>\n"
-#: readelf.c:7077
+#: readelf.c:7102
#, c-format
msgid "There is %d program header, starting at offset %<PRIu64>\n"
msgid_plural "There are %d program headers, starting at offset %<PRIu64>\n"
@@ -9286,7 +9278,7 @@ msgstr[0] "ПоÑтоји %d заглавље програма, које почÐ
msgstr[1] "ПоÑтоје %d заглавља програма, која почињу на померају %<PRIx64>\n"
msgstr[2] "ПоÑтоји %d заглавља програма, која почињу на померају %<PRIx64>\n"
-#: readelf.c:7092 readelf.c:7094
+#: readelf.c:7117 readelf.c:7119
#, c-format
msgid ""
"\n"
@@ -9295,68 +9287,68 @@ msgstr ""
"\n"
"Заглавља програма:\n"
-#: readelf.c:7098
+#: readelf.c:7123
#, c-format
msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
msgstr " Ð’Ñ€Ñта Померај Вирт.адр Физ.адр Вел.дат Вел.мем Опц Првнње\n"
-#: readelf.c:7101
+#: readelf.c:7126
#, c-format
msgid " Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align\n"
msgstr " Ð’Ñ€Ñта Померај Вирт.адр Физ.адр Вел.дат Вел.мем Опц Првнње\n"
-#: readelf.c:7105
+#: readelf.c:7130
#, c-format
msgid " Type Offset VirtAddr PhysAddr\n"
msgstr " Ð’Ñ€Ñта Померај Вирт.адр Физ.адр\n"
-#: readelf.c:7107
+#: readelf.c:7132
#, c-format
msgid " FileSiz MemSiz Flags Align\n"
msgstr " Вел.дат Вел.мем Опцје Првнње\n"
-#: readelf.c:7205
+#: readelf.c:7230
msgid "LOAD segments must be sorted in order of increasing VirtAddr\n"
msgstr "„LOAD“ подеоци морају бити поређани по раÑтућем „VirtAddr“\n"
-#: readelf.c:7208
+#: readelf.c:7233
msgid "the segment's file size is larger than its memory size\n"
msgstr "величина датотеке подеока је већа од његове величине меморије\n"
-#: readelf.c:7215
+#: readelf.c:7240
msgid "the PHDR segment must occur before any LOAD segment\n"
msgstr "„PHDR“ подеок Ñе мора појавити пре било ког „LOAD“ подеока\n"
-#: readelf.c:7233
+#: readelf.c:7258
msgid "the PHDR segment is not covered by a LOAD segment\n"
msgstr "„PHDR“ подеок није покривен „LOAD“ подеоком\n"
-#: readelf.c:7239
+#: readelf.c:7264
msgid "more than one dynamic segment\n"
msgstr "више од једног динамичког одломка\n"
-#: readelf.c:7258
+#: readelf.c:7283
msgid "no .dynamic section in the dynamic segment\n"
msgstr "нема одељака „.dynamic“ у динамичком одломку\n"
-#: readelf.c:7277
+#: readelf.c:7302
msgid "the .dynamic section is not the same as the dynamic segment\n"
msgstr "одељак „.dynamic“ није иÑти као динамички одломак\n"
-#: readelf.c:7288
+#: readelf.c:7313
msgid "the dynamic segment offset + size exceeds the size of the file\n"
msgstr "померај динамичког подеока + величина превазилазе величину датотеке\n"
-#: readelf.c:7301
+#: readelf.c:7326
msgid "Unable to find program interpreter name\n"
msgstr "Ðе могу да нађем назив тумача програма\n"
-#: readelf.c:7312
+#: readelf.c:7337
#, c-format
msgid " [Requesting program interpreter: %s]\n"
msgstr " [Потражујем тумача програма: %s]\n"
-#: readelf.c:7323
+#: readelf.c:7348
#, c-format
msgid ""
"\n"
@@ -9365,102 +9357,102 @@ msgstr ""
"\n"
" Мапирање одељка у одломак:\n"
-#: readelf.c:7324
+#: readelf.c:7349
#, c-format
msgid " Segment Sections...\n"
msgstr " Одељци одломка...\n"
-#: readelf.c:7366 readelf.c:12389
+#: readelf.c:7391 readelf.c:12419
msgid "Cannot interpret virtual addresses without program headers.\n"
msgstr "Ðе могу да протумачим виртуелне адреÑе без заглавља програма.\n"
-#: readelf.c:7382
+#: readelf.c:7407
#, c-format
msgid "Virtual address %#<PRIx64> not located in any PT_LOAD segment.\n"
msgstr "Виртуелна адреÑа %#<PRIx64> Ñе не налази ни у једном PT_LOAD одломку.\n"
-#: readelf.c:7414 readelf.c:7484
+#: readelf.c:7439 readelf.c:7509
msgid "The e_shentsize field in the ELF header is less than the size of an ELF section header\n"
msgstr "Поље „e_shentsize“ у ЕЛФ заглављу је мање од величине заглавља ЕЛФ одељка\n"
-#: readelf.c:7418 readelf.c:7489
+#: readelf.c:7443 readelf.c:7514
msgid "The e_shentsize field in the ELF header is larger than the size of an ELF section header\n"
msgstr "Поље „e_shentsize“ у ЕЛФ заглављу је веће од величине заглавља ЕЛФ одељка\n"
-#: readelf.c:7422 readelf.c:7494
+#: readelf.c:7447 readelf.c:7519
msgid "section headers"
msgstr "заглавља одељка"
-#: readelf.c:7431 readelf.c:7503
+#: readelf.c:7456 readelf.c:7528
#, c-format
msgid "Out of memory reading %u section headers\n"
msgstr "ПонеÑтало је меморије за време читања %u заглавља одељка\n"
-#: readelf.c:7451 readelf.c:7523
+#: readelf.c:7476 readelf.c:7548
#, c-format
msgid "Section %u has an out of range sh_link value of %u\n"
msgstr "Одељак %u има ван опÑега „sh_link“ вредноÑÑ‚ од %u\n"
-#: readelf.c:7453 readelf.c:7525
+#: readelf.c:7478 readelf.c:7550
#, c-format
msgid "Section %u has an out of range sh_info value of %u\n"
msgstr "Одељак %u има ван опÑега „sh_info“ вредноÑÑ‚ од %u\n"
-#: readelf.c:7567 readelf.c:7684
+#: readelf.c:7592 readelf.c:7709
#, c-format
msgid "Section %s has an invalid sh_entsize of %#<PRIx64>\n"
msgstr "Одељак %s има неиÑправну „sh_entsize“ од %#<PRIx64>\n"
-#: readelf.c:7575 readelf.c:7692 readelf.c:14411
+#: readelf.c:7600 readelf.c:7717 readelf.c:14441
#, c-format
msgid "Section %s has an invalid sh_size of %#<PRIx64>\n"
msgstr "Одељак %s има неиÑправну „sh_size“ од %#<PRIx64>\n"
-#: readelf.c:7585 readelf.c:7702
+#: readelf.c:7610 readelf.c:7727
#, c-format
msgid "Size (%#<PRIx64>) of section %s is not a multiple of its sh_entsize (%#<PRIx64>)\n"
msgstr "Величина (%#<PRIx64>) одељка %s није производ његове „sh_entsize“ (%#<PRIx64>)\n"
-#: readelf.c:7594 readelf.c:7711 readelf.c:16989
+#: readelf.c:7619 readelf.c:7736 readelf.c:17026
msgid "symbols"
msgstr "Ñимболи"
-#: readelf.c:7606 readelf.c:7723
+#: readelf.c:7631 readelf.c:7748
msgid "Multiple symbol table index sections associated with the same symbol section\n"
msgstr "Више одељака индекÑа табеле Ñимбола придружених Ñа иÑтим одељком Ñимбола\n"
-#: readelf.c:7613 readelf.c:7730
+#: readelf.c:7638 readelf.c:7755
msgid "symbol table section indices"
msgstr "индекÑи одељка табеле Ñимбола"
-#: readelf.c:7620 readelf.c:7737
+#: readelf.c:7645 readelf.c:7762
#, c-format
msgid "Index section %s has an sh_size of %#<PRIx64> - expected %#<PRIx64>\n"
msgstr "Одељак индекÑа %s има „sh_size“ од %#<PRIx64> – очекивах %#<PRIx64>\n"
-#: readelf.c:7632 readelf.c:7749
+#: readelf.c:7657 readelf.c:7774
#, c-format
msgid "Out of memory reading %<PRIu64> symbols\n"
msgstr "ПонеÑтало је меморије током читања %<PRIu64> Ñимбола\n"
-#: readelf.c:7952 readelf.c:8048 readelf.c:8065 readelf.c:8082
+#: readelf.c:7977 readelf.c:8073 readelf.c:8090 readelf.c:8107
msgid "Internal error: not enough buffer room for section flag info"
msgstr "Унутрашња грешка: нема довољно међумеморије за податке заÑтавице одељка"
-#: readelf.c:8090
+#: readelf.c:8115
#, c-format
msgid "UNKNOWN (%*.*lx)"
msgstr "ÐЕПОЗÐÐТО (%*.*lx)"
-#: readelf.c:8109 readelf.c:8124
+#: readelf.c:8134 readelf.c:8149
msgid "Compressed section is too small even for a compression header\n"
msgstr "Сажети одељак је премали чак и за заглавље Ñажимања\n"
-#: readelf.c:8146
+#: readelf.c:8171
msgid "possibly corrupt ELF file header - it has a non-zero section header offset, but no section headers\n"
msgstr "вероватно је оштећено заглавље ЕЛФ датотеке – има не-нулти померај заглавља одељка, али нема заглавља одељка\n"
-#: readelf.c:8151
+#: readelf.c:8176
#, c-format
msgid ""
"\n"
@@ -9469,12 +9461,12 @@ msgstr ""
"\n"
"Ðема одељака у овој датотеци.\n"
-#: readelf.c:8159 readelf.c:23054
+#: readelf.c:8184 readelf.c:23101
#, c-format
msgid "In linked file '%s': "
msgstr "У повезаној датотеци „%s“: "
-#: readelf.c:8161
+#: readelf.c:8187
#, c-format
msgid "There is %d section header, starting at offset %#<PRIx64>:\n"
msgid_plural "There are %d section headers, starting at offset %#<PRIx64>:\n"
@@ -9482,43 +9474,43 @@ msgstr[0] "ПоÑтоји %d заглавље одељка, које почињÐ
msgstr[1] "ПоÑтоје %d заглавља одељака, која почињу на померају %#<PRIx64>:\n"
msgstr[2] "ПоÑтоји %d заглавља одељака, која почињу на померају %#<PRIx64>:\n"
-#: readelf.c:8183 readelf.c:8865 readelf.c:9066 readelf.c:14696 readelf.c:17395
+#: readelf.c:8210 readelf.c:8893 readelf.c:9095 readelf.c:14723 readelf.c:17432
msgid "string table"
msgstr "табела ниÑке"
-#: readelf.c:8245
+#: readelf.c:8272
#, c-format
msgid "Section %d has invalid sh_entsize of %<PRIx64>\n"
msgstr "Одељак %d има неиÑправну „sh_entsize“ од %<PRIx64>\n"
-#: readelf.c:8247
+#: readelf.c:8274
#, c-format
msgid "(Using the expected size of %<PRIx64> for the rest of this dump)\n"
msgstr "(КориÑтим очекивану величину од %<PRIx64> за оÑтатак овог избачаја)\n"
-#: readelf.c:8271
+#: readelf.c:8298
msgid "File contains multiple dynamic symbol tables\n"
msgstr "Датотека Ñадржи више табела динамичких Ñимбола\n"
-#: readelf.c:8286
+#: readelf.c:8313
msgid "File contains multiple dynamic string tables\n"
msgstr "Датотека Ñадржи више табела динамичке ниÑке\n"
-#: readelf.c:8292
+#: readelf.c:8319
msgid "dynamic strings"
msgstr "динамичке ниÑке"
-#: readelf.c:8320 readelf.c:8326
+#: readelf.c:8347 readelf.c:8353
#, c-format
msgid "Section '%s': zero-sized relocation section\n"
msgstr "Одељак „%s“: одељак премештаја нулте величине\n"
-#: readelf.c:8339
+#: readelf.c:8366
#, c-format
msgid "Section '%s': has a size of zero - is this intended ?\n"
msgstr "Одељак „%s“: има нулту величину – да ли је то намеравано ?\n"
-#: readelf.c:8425
+#: readelf.c:8452
#, c-format
msgid ""
"\n"
@@ -9527,7 +9519,7 @@ msgstr ""
"\n"
"Заглавља одељака у повезаној датотеци „%s“:\n"
-#: readelf.c:8427
+#: readelf.c:8455
#, c-format
msgid ""
"\n"
@@ -9536,7 +9528,7 @@ msgstr ""
"\n"
"Заглавља одељка:\n"
-#: readelf.c:8429
+#: readelf.c:8457
#, c-format
msgid ""
"\n"
@@ -9545,106 +9537,106 @@ msgstr ""
"\n"
"Заглавље одељка:\n"
-#: readelf.c:8435 readelf.c:8446 readelf.c:8457
+#: readelf.c:8463 readelf.c:8474 readelf.c:8485
#, c-format
msgid " [Nr] Name\n"
msgstr " [Бр] Ðазив\n"
-#: readelf.c:8436
+#: readelf.c:8464
#, c-format
msgid " Type Addr Off Size ES Lk Inf Al\n"
msgstr " Ð’Ñ€Ñта ÐдреÑа Пмрај Влчна ЕС Вз Инф Пор\n"
-#: readelf.c:8440
+#: readelf.c:8468
#, c-format
msgid " [Nr] Name Type Addr Off Size ES Flg Lk Inf Al\n"
msgstr " [Бр] Ðазив Ð’Ñ€Ñта ÐдреÑа Пмрј Влчна ЕС Опц Вз Инф Пор\n"
-#: readelf.c:8447
+#: readelf.c:8475
#, c-format
msgid " Type Address Off Size ES Lk Inf Al\n"
msgstr " Ð’Ñ€Ñта ÐдреÑа Пмрј Влчна ЕС Вз Инф Пор\n"
-#: readelf.c:8451
+#: readelf.c:8479
#, c-format
msgid " [Nr] Name Type Address Off Size ES Flg Lk Inf Al\n"
msgstr " [Бр] Ðазив Ð’Ñ€Ñта ÐдреÑа Пмрј Влчна ЕС Опц Вз Инф Пор\n"
-#: readelf.c:8458
+#: readelf.c:8486
#, c-format
msgid " Type Address Offset Link\n"
msgstr " Ð’Ñ€Ñта ÐдреÑа Померај Веза\n"
-#: readelf.c:8459
+#: readelf.c:8487
#, c-format
msgid " Size EntSize Info Align\n"
msgstr " Величина Улзна вел Инфо Поравнање\n"
-#: readelf.c:8463
+#: readelf.c:8491
#, c-format
msgid " [Nr] Name Type Address Offset\n"
msgstr " [Бр] Ðазив Ð’Ñ€Ñта ÐдреÑа Померај\n"
-#: readelf.c:8464
+#: readelf.c:8492
#, c-format
msgid " Size EntSize Flags Link Info Align\n"
msgstr " Величина Улзна вел. Опције Веза Инфо Порвнње\n"
-#: readelf.c:8469
+#: readelf.c:8497
#, c-format
msgid " Flags\n"
msgstr " Опције\n"
-#: readelf.c:8499
+#: readelf.c:8527
#, c-format
msgid "[%2u]: Link field (%u) should index a symtab section.\n"
msgstr "[%2u]: Поље везе (%u) треба да индекÑира одељак Ñимтаб.\n"
-#: readelf.c:8512
+#: readelf.c:8540
#, c-format
msgid "[%2u]: Link field (%u) should index a string section.\n"
msgstr "[%2u]: Поље везе (%u) треба да индекÑира одељак ниÑке.\n"
-#: readelf.c:8520 readelf.c:8531
+#: readelf.c:8548 readelf.c:8559
#, c-format
msgid "[%2u]: Unexpected value (%u) in link field.\n"
msgstr "[%2u]: Ðеочекивана вредноÑÑ‚ (%u) у пољу везе.\n"
-#: readelf.c:8558
+#: readelf.c:8586
#, c-format
msgid "[%2u]: Info field (%u) should index a relocatable section.\n"
msgstr "[%2u]: Поље података (%u) треба да индекÑира премеÑтиви одељак.\n"
-#: readelf.c:8569 readelf.c:8596
+#: readelf.c:8597 readelf.c:8624
#, c-format
msgid "[%2u]: Unexpected value (%u) in info field.\n"
msgstr "[%2u]: Ðеочекивана вредноÑÑ‚ (%u) у пољу података.\n"
-#: readelf.c:8591
+#: readelf.c:8619
#, c-format
msgid "[%2u]: Expected link to another section in info field"
msgstr "[%2u]: Очекивах везу до другог одељка у пољу података"
-#: readelf.c:8606
+#: readelf.c:8634
#, c-format
msgid "Size of section %u is larger than the entire file!\n"
msgstr "Величина одељка %u је већа од читаве датотеке!\n"
-#: readelf.c:8675
+#: readelf.c:8703
#, c-format
msgid "section %u: sh_link value of %u is larger than the number of sections\n"
msgstr "одељак %u: „sh_link“ вредноÑÑ‚ за %u је већа од броја одељака\n"
-#: readelf.c:8776
+#: readelf.c:8804
msgid "compression header"
msgstr "заглавље Ñажимања"
-#: readelf.c:8781
+#: readelf.c:8809
#, c-format
msgid " [<corrupt>]\n"
msgstr " [<оштећено>]\n"
-#: readelf.c:8789
+#: readelf.c:8817
#, c-format
msgid " [<unknown>: 0x%x], "
msgstr " [<непознато>: 0x%x], "
@@ -9652,7 +9644,7 @@ msgstr " [<непознато>: 0x%x], "
#. The ordering of the letters shown here matches the ordering of the
#. corresponding SHF_xxx values, and hence the order in which these
#. letters will be displayed to the user.
-#: readelf.c:8804
+#: readelf.c:8832
#, c-format
msgid ""
"Key to Flags:\n"
@@ -9667,44 +9659,44 @@ msgstr ""
" C (Ñажето), x (непознато), o (поÑебноÑÑ‚ ОС-а), E (иÑкључи),\n"
" "
-#: readelf.c:8812
+#: readelf.c:8840
#, c-format
msgid "R (retain), "
msgstr "R (задржи), "
-#: readelf.c:8815
+#: readelf.c:8843
#, c-format
msgid "D (mbind), "
msgstr "D (mbind), "
-#: readelf.c:8823
+#: readelf.c:8851
#, c-format
msgid "l (large), "
msgstr "l (велико), "
-#: readelf.c:8825
+#: readelf.c:8853
#, c-format
msgid "y (purecode), "
msgstr "y (чиÑÑ‚ код), "
-#: readelf.c:8827
+#: readelf.c:8855
#, c-format
msgid "v (VLE), "
msgstr "v (VLE), "
-#: readelf.c:8855
+#: readelf.c:8883
msgid "Bad sh_link in symbol table section\n"
msgstr "Лоша „sh_link“ у одељку табеле Ñимбола\n"
-#: readelf.c:8890
+#: readelf.c:8918
msgid "<OS specific>"
msgstr "<ПоÑебноÑÑ‚ ОС-а>"
-#: readelf.c:8891
+#: readelf.c:8919
msgid "<PROC specific>"
msgstr "<ПоÑебноÑÑ‚ „PROC“-а>"
-#: readelf.c:8920
+#: readelf.c:8948
#, c-format
msgid ""
"\n"
@@ -9713,7 +9705,7 @@ msgstr ""
"\n"
"Ðема групе заглавља у повезаној датотеци „%s“.\n"
-#: readelf.c:8923 readelf.c:8962
+#: readelf.c:8951 readelf.c:8990
#, c-format
msgid ""
"\n"
@@ -9722,16 +9714,16 @@ msgstr ""
"\n"
"Ðема група одељка у овој датотеци.\n"
-#: readelf.c:8930
+#: readelf.c:8958
msgid "Section headers are not available!\n"
msgstr "Заглавља одељка ниÑу доÑтупна!\n"
-#: readelf.c:8941
+#: readelf.c:8969
#, c-format
msgid "Out of memory reading %u section group headers\n"
msgstr "ПонеÑтало је меморије за време читања %u заглавља групе одељка\n"
-#: readelf.c:8959
+#: readelf.c:8987
#, c-format
msgid ""
"\n"
@@ -9740,41 +9732,41 @@ msgstr ""
"\n"
"Ðема група заглавља у повезаној датотеци „%s“.\n"
-#: readelf.c:8973
+#: readelf.c:9001
#, c-format
msgid "Out of memory reading %zu groups\n"
msgstr "ПонеÑтало је меморије током читања %zu група\n"
-#: readelf.c:8985
+#: readelf.c:9013
#, c-format
msgid "Section groups in linked file '%s'\n"
msgstr "Групе одељка у повезаној датотеци „%s“\n"
-#: readelf.c:9006
+#: readelf.c:9035
#, c-format
msgid "Bad sh_link in group section `%s'\n"
msgstr "Лоша „sh_link“ у одељку групе „%s“\n"
-#: readelf.c:9019
+#: readelf.c:9048
#, c-format
msgid "Corrupt header in group section `%s'\n"
msgstr "Оштећено заглавље у одељку групе „%s“\n"
-#: readelf.c:9025 readelf.c:9036
+#: readelf.c:9054 readelf.c:9065
#, c-format
msgid "Bad sh_info in group section `%s'\n"
msgstr "Лоши „sh_info“ у одељку групе „%s“\n"
-#: readelf.c:9076
+#: readelf.c:9105
#, c-format
msgid "Section %s has sh_entsize (%#<PRIx64>) which is larger than its size (%#<PRIx64>)\n"
msgstr "Одељак %s има „sh_entsize“ (%#<PRIx64>) која је већа од његове величине (%#<PRIx64>)\n"
-#: readelf.c:9086
+#: readelf.c:9115
msgid "section data"
msgstr "подаци одељка"
-#: readelf.c:9097
+#: readelf.c:9126
#, c-format
msgid ""
"\n"
@@ -9783,44 +9775,44 @@ msgstr ""
"\n"
"%sгрупа одељка [%5u] „%s“ [%s] Ñадржи %u одељка:\n"
-#: readelf.c:9100
+#: readelf.c:9129
#, c-format
msgid " [Index] Name\n"
msgstr " [ИндекÑ] Ðазив\n"
-#: readelf.c:9118
+#: readelf.c:9147
#, c-format
msgid "section [%5u] in group section [%5u] > maximum section [%5u]\n"
msgstr "одељак [%5u] у одељку групе [%5u] > највише одељака [%5u]\n"
-#: readelf.c:9121
+#: readelf.c:9150
msgid "Further error messages about overlarge group section indices suppressed\n"
msgstr "Будуће поруке грешака о превеликим индекÑима одељка групе Ñу потиÑнуте\n"
-#: readelf.c:9134
+#: readelf.c:9163
#, c-format
msgid "section [%5u] in group section [%5u] already in group section [%5u]\n"
msgstr "одељак [%5u] у одељку групе [%5u] је већ у одељку групе [%5u]\n"
-#: readelf.c:9138
+#: readelf.c:9167
msgid "Further error messages about already contained group sections suppressed\n"
msgstr "Будуће поруке грешака о већ Ñадржаним одељцима групе Ñу потиÑнуте\n"
-#: readelf.c:9150
+#: readelf.c:9179
#, c-format
msgid "section 0 in group section [%5u]\n"
msgstr "одељак 0 у одељку групе [%5u]\n"
-#: readelf.c:9217
+#: readelf.c:9246
msgid "dynamic section image fixups"
msgstr "преправке Ñлике динамичког одељка"
-#: readelf.c:9225
+#: readelf.c:9254
#, c-format
msgid "corrupt library name index of %#<PRIx64> found in dynamic entry"
msgstr "нађох оштећен Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð°Ð·Ð¸Ð²Ð° biblioteke %#<PRIx64> у динамичком уноÑу"
-#: readelf.c:9230
+#: readelf.c:9259
#, c-format
msgid ""
"\n"
@@ -9829,16 +9821,16 @@ msgstr ""
"\n"
"Преправке Ñлике потребне библиотеке #%<PRId64>: %s – увлачење: %<PRIx64>\n"
-#: readelf.c:9234
+#: readelf.c:9263
#, c-format
msgid "Seg Offset Type SymVec DataType\n"
msgstr "Одл Померај Ð’Ñ€Ñта ВекСим Ð’Ñ€Ñта пдтка\n"
-#: readelf.c:9268
+#: readelf.c:9297
msgid "dynamic section image relocations"
msgstr "премештаји Ñлике динамичког одељка"
-#: readelf.c:9272
+#: readelf.c:9301
#, c-format
msgid ""
"\n"
@@ -9847,16 +9839,16 @@ msgstr ""
"\n"
"Премештаји Ñлике\n"
-#: readelf.c:9274
+#: readelf.c:9303
#, c-format
msgid "Seg Offset Type Addend Seg Sym Off\n"
msgstr "Одл Померај Ð’Ñ€Ñта Сабирак Одл Сим Пом\n"
-#: readelf.c:9329
+#: readelf.c:9358
msgid "dynamic string section"
msgstr "одељак динамичке ниÑке"
-#: readelf.c:9412
+#: readelf.c:9441
#, c-format
msgid ""
"\n"
@@ -9865,7 +9857,7 @@ msgstr ""
"\n"
"У повезаној датотеци „%s“одељак премештаја "
-#: readelf.c:9415
+#: readelf.c:9444
#, c-format
msgid ""
"\n"
@@ -9874,18 +9866,28 @@ msgstr ""
"\n"
"Одељак премештаја "
-#. This is unlikely, but possible.
-#: readelf.c:9433
+#: readelf.c:9463
+#, c-format
+msgid " at offset %#<PRIx64>"
+msgstr " на померају %#<PRIx64>"
+
+#: readelf.c:9464
#, c-format
-msgid " at offset %#<PRIx64> contains 1 entry which relocates 1 location:\n"
-msgstr " на померају %#<PRIx64> Ñадржи 1 ÑƒÐ½Ð¾Ñ ÐºÐ¾Ñ˜Ð¸ премешта 1 меÑто:\n"
+msgid " contains %<PRIu64> entry which relocates"
+msgid_plural " contains %<PRIu64> entries which relocate"
+msgstr[0] " Ñадржи %<PRIu64> ÑƒÐ½Ð¾Ñ ÐºÐ¾Ñ˜Ð¸ премешта"
+msgstr[1] " Ñадржи %<PRIu64> уноÑа који премештају"
+msgstr[2] " Ñадржи %<PRIu64> уноÑа који премештају"
-#: readelf.c:9437
+#: readelf.c:9467
#, c-format
-msgid " at offset %#<PRIx64> contains %<PRIu64> entries which relocate %<PRIu64> locations:\n"
-msgstr " на померају %#<PRIx64> Ñадржи %<PRIu64> уноÑа који премештају %<PRIu64> меÑта:\n"
+msgid " %<PRIu64> location:\n"
+msgid_plural " %<PRIu64> locations:\n"
+msgstr[0] " %<PRIu64> меÑто:\n"
+msgstr[1] " %<PRIu64> меÑта:\n"
+msgstr[2] " %<PRIu64> меÑта:\n"
-#: readelf.c:9443
+#: readelf.c:9473
#, c-format
msgid " at offset %#<PRIx64> contains %<PRIu64> entry:\n"
msgid_plural " at offset %#<PRIx64> contains %<PRIu64> entries:\n"
@@ -9893,7 +9895,7 @@ msgstr[0] " на померају %#<PRIx64> Ñадржи %<PRIu64> уноÑ:\n"
msgstr[1] " на померају %#<PRIx64> Ñадржи %<PRIu64> уноÑа:\n"
msgstr[2] " на померају %#<PRIx64> Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:9542
+#: readelf.c:9572
#, c-format
msgid ""
"\n"
@@ -9902,7 +9904,7 @@ msgstr ""
"\n"
"У повезаној датотеци „%s“ одељак „%s“ на померају %#<PRIx64> Ñадржи %<PRId64> бајта:\n"
-#: readelf.c:9547
+#: readelf.c:9577
#, c-format
msgid ""
"\n"
@@ -9911,7 +9913,7 @@ msgstr ""
"\n"
"одељак премештаја „%s“ на померају %#<PRIx64> Ñадржи %<PRId64> бајта:\n"
-#: readelf.c:9569
+#: readelf.c:9599
#, c-format
msgid ""
"\n"
@@ -9920,7 +9922,7 @@ msgstr ""
"\n"
"Ðема динамичких премештаја у повезаној датотеци „%s“.\n"
-#: readelf.c:9572
+#: readelf.c:9602
#, c-format
msgid ""
"\n"
@@ -9929,7 +9931,7 @@ msgstr ""
"\n"
"Ðема динамичких премештаја у овој датотеци.\n"
-#: readelf.c:9597
+#: readelf.c:9627
#, c-format
msgid ""
"\n"
@@ -9938,7 +9940,7 @@ msgstr ""
"\n"
"Ðема Ñтатичких премештаја у повезаној датотеци „%s“."
-#: readelf.c:9600
+#: readelf.c:9630
#, c-format
msgid ""
"\n"
@@ -9947,7 +9949,7 @@ msgstr ""
"\n"
"Ðема Ñтатичких премештаја у овој датотеци."
-#: readelf.c:9601
+#: readelf.c:9631
#, c-format
msgid ""
"\n"
@@ -9956,7 +9958,7 @@ msgstr ""
"\n"
"Да видите динамичке премештаје додајте „--use-dynamic“ на линију наредби.\n"
-#: readelf.c:9609
+#: readelf.c:9639
#, c-format
msgid ""
"\n"
@@ -9965,7 +9967,7 @@ msgstr ""
"\n"
"Ðема премештаја у повезаној датотеци „%s“.\n"
-#: readelf.c:9612
+#: readelf.c:9642
#, c-format
msgid ""
"\n"
@@ -9974,50 +9976,50 @@ msgstr ""
"\n"
"Ðема премештаја у овој датотеци.\n"
-#: readelf.c:9771
+#: readelf.c:9801
#, c-format
msgid "Invalid section %u in table entry %td\n"
msgstr "ÐеиÑправан одељак %u у уноÑу табеле %td\n"
-#: readelf.c:9783
+#: readelf.c:9813
#, c-format
msgid "Invalid offset %<PRIx64> in table entry %td\n"
msgstr "ÐеиÑправан померај %<PRIx64> у уноÑу табеле %td\n"
-#: readelf.c:9801
+#: readelf.c:9831
#, c-format
msgid "\tUnknown version.\n"
msgstr "\tÐепознато издање.\n"
-#: readelf.c:9864 readelf.c:10302
+#: readelf.c:9894 readelf.c:10332
msgid "unwind table"
msgstr "табела одмотавања"
-#: readelf.c:9915 readelf.c:10385
+#: readelf.c:9945 readelf.c:10415
#, c-format
msgid "Skipping unknown relocation type: %u\n"
msgstr "ПреÑкачем неопознату врÑту премештаја: %u\n"
-#: readelf.c:9921 readelf.c:10392
+#: readelf.c:9951 readelf.c:10422
#, c-format
msgid "Skipping unexpected relocation type: %s\n"
msgstr "ПреÑкачем неочекивану врÑту премештаја: %s\n"
-#: readelf.c:9930 readelf.c:10399
+#: readelf.c:9960 readelf.c:10429
#, c-format
msgid "Skipping reloc with overlarge offset: %#<PRIx64>\n"
msgstr "ПреÑкачем премештај Ñа превеликим померајем: %#<PRIx64>\n"
-#: readelf.c:9938 readelf.c:10407
+#: readelf.c:9968 readelf.c:10437
#, c-format
msgid "Skipping reloc with invalid symbol index: %u\n"
msgstr "ПреÑкачем премештај Ñа неиÑправним индекÑом Ñимбола: %u\n"
-#: readelf.c:9986 readelf.c:10454 readelf.c:11565
+#: readelf.c:10016 readelf.c:10484 readelf.c:11595
msgid "Multiple symbol tables encountered\n"
msgstr "Ðаиђох на више табела Ñимбола\n"
-#: readelf.c:10001 readelf.c:10470 readelf.c:11580
+#: readelf.c:10031 readelf.c:10500 readelf.c:11610
#, c-format
msgid ""
"\n"
@@ -10026,7 +10028,7 @@ msgstr ""
"\n"
"Ðема одељка одмотавања у овој датотеци.\n"
-#: readelf.c:10087
+#: readelf.c:10117
#, c-format
msgid ""
"\n"
@@ -10035,11 +10037,11 @@ msgstr ""
"\n"
"Ðе могу да пронађем одељак података одмотавања за "
-#: readelf.c:10099
+#: readelf.c:10129
msgid "unwind info"
msgstr "подаци одмотавања"
-#: readelf.c:10102
+#: readelf.c:10132
#, c-format
msgid ""
"\n"
@@ -10048,12 +10050,12 @@ msgstr ""
"\n"
"Одељак одмотавања "
-#: readelf.c:10109
+#: readelf.c:10139
#, c-format
msgid " at offset %#<PRIx64> contains %<PRIu64> entries:\n"
msgstr " на померају %#<PRIx64> Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:10479 readelf.c:11587
+#: readelf.c:10509 readelf.c:11617
#, c-format
msgid ""
"\n"
@@ -10071,202 +10073,202 @@ msgstr[2] ""
"\n"
"Одељак одмотавања „%s“ на померају %#<PRIx64> Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:10612
+#: readelf.c:10642
msgid "unwind data"
msgstr "подаци одмотавања"
-#: readelf.c:10684
+#: readelf.c:10714
#, c-format
msgid "Skipping unexpected relocation at offset %#<PRIx64>\n"
msgstr "ПреÑкачем неочекивани премештај на померају %#<PRIx64>\n"
-#: readelf.c:10706
+#: readelf.c:10736
#, c-format
msgid "Unknown section relocation type %d encountered\n"
msgstr "Ðаиђох на непознату врÑту премештаја %d\n"
-#: readelf.c:10714
+#: readelf.c:10744
#, c-format
msgid "Bad symbol index in unwind relocation (%<PRIu64> > %<PRIu64>)\n"
msgstr "Лош Ð¸Ð½Ð´ÐµÐºÑ Ñимбола у неодвијеном премештају (%<PRIu64> > %<PRIu64>)\n"
-#: readelf.c:10730
+#: readelf.c:10760
#, c-format
msgid "Skipping unknown ARM relocation type: %d\n"
msgstr "ПреÑкачем непознату врÑту „ARM“ премештаја: %d\n"
-#: readelf.c:10740
+#: readelf.c:10770
#, c-format
msgid "Skipping unexpected ARM relocation type %s\n"
msgstr "ПреÑкачем неочекивану врÑту „ARM“ премештаја „%s“\n"
-#: readelf.c:10749
+#: readelf.c:10779
#, c-format
msgid "Skipping unknown C6000 relocation type: %d\n"
msgstr "ПреÑкачем непознату врÑту „C6000“ премештаја: %d\n"
-#: readelf.c:10759
+#: readelf.c:10789
#, c-format
msgid "Skipping unexpected C6000 relocation type %s\n"
msgstr "ПреÑкачем неочекивану врÑту „C6000“ премештаја „%s“\n"
#. This function currently only supports ARM and TI unwinders.
-#: readelf.c:10768
+#: readelf.c:10798
msgid "Only TI and ARM unwinders are currently supported\n"
msgstr "Само „TI“ и „ARM“ одмотавачи Ñу тренутно подржани\n"
-#: readelf.c:10831
+#: readelf.c:10861
#, c-format
msgid "[Truncated opcode]\n"
msgstr "[Скраћени опкод]\n"
-#: readelf.c:10879 readelf.c:11099
+#: readelf.c:10909 readelf.c:11129
#, c-format
msgid "Refuse to unwind"
msgstr "Одбија да одмота"
-#: readelf.c:10902
+#: readelf.c:10932
#, c-format
msgid " [Reserved]"
msgstr " [РезервиÑано]"
-#: readelf.c:10930
+#: readelf.c:10960
#, c-format
msgid " finish"
msgstr " крај"
-#: readelf.c:10935 readelf.c:11032
+#: readelf.c:10965 readelf.c:11062
#, c-format
msgid "[Spare]"
msgstr "[ДопунÑко]"
-#: readelf.c:10969
+#: readelf.c:10999
msgid "corrupt change to vsp\n"
msgstr "оштећена измена у „vsp“\n"
-#: readelf.c:10995
+#: readelf.c:11025
#, c-format
msgid " pop {ra_auth_code}"
msgstr " pop {ra_auth_code}"
-#: readelf.c:10997
+#: readelf.c:11027
#, c-format
msgid " vsp as modifier for PAC validation"
msgstr " „vsp“ као измењивач за PAC потврђивање"
-#: readelf.c:11054 readelf.c:11211
+#: readelf.c:11084 readelf.c:11241
#, c-format
msgid " [unsupported opcode]"
msgstr " [неподржан опкод]"
-#: readelf.c:11147
+#: readelf.c:11177
#, c-format
msgid "pop frame {"
msgstr "поп кадар {"
-#: readelf.c:11150
+#: readelf.c:11180
#, c-format
msgid "*corrupt* - no registers specified"
msgstr "*оштећено* – ниÑу наведени региÑтри"
-#: readelf.c:11164
+#: readelf.c:11194
msgid "[pad]"
msgstr "[пад]"
-#: readelf.c:11193
+#: readelf.c:11223
msgid "Corrupt stack pointer adjustment detected\n"
msgstr "Оштећено дотеривање показивача Ñпремника је откривено\n"
-#: readelf.c:11200
+#: readelf.c:11230
#, c-format
msgid "sp = sp + %<PRId64>"
msgstr "sp = sp + %<PRId64>"
-#: readelf.c:11275
+#: readelf.c:11305
#, c-format
msgid " Personality routine: "
msgstr " Потпрограм личноÑти: "
-#: readelf.c:11307
+#: readelf.c:11337
#, c-format
msgid " [Truncated data]\n"
msgstr " [Скраћени подаци]\n"
-#: readelf.c:11331
+#: readelf.c:11361
#, c-format
msgid "Corrupt ARM compact model table entry: %x \n"
msgstr "Оштећен ÑƒÐ½Ð¾Ñ Ñ‚Ð°Ð±ÐµÐ»Ðµ збијеног ÐРМ модела: %x \n"
-#: readelf.c:11336
+#: readelf.c:11366
#, c-format
msgid " Compact model index: %d\n"
msgstr " ÐŸÐ¾Ð¿Ð¸Ñ Ð·Ð±Ð¸Ñ˜ÐµÐ½Ð¾Ð³ модела: %d\n"
-#: readelf.c:11362
+#: readelf.c:11392
msgid "Unknown ARM compact model index encountered\n"
msgstr "Ðађох непознати Ð¸Ð½Ð´ÐµÐºÑ Ð·Ð±Ð¸Ñ˜ÐµÐ½Ð¾Ð³ ÐРМ модела\n"
-#: readelf.c:11363
+#: readelf.c:11393
#, c-format
msgid " [reserved]\n"
msgstr " [резервиÑано]\n"
-#: readelf.c:11378
+#: readelf.c:11408
#, c-format
msgid " Restore stack from frame pointer\n"
msgstr " Поврати Ñпремник од показивача кадра\n"
-#: readelf.c:11380
+#: readelf.c:11410
#, c-format
msgid " Stack increment %d\n"
msgstr " Повећање Ñпремника %d\n"
-#: readelf.c:11381
+#: readelf.c:11411
#, c-format
msgid " Registers restored: "
msgstr " Повраћени региÑтри: "
-#: readelf.c:11386
+#: readelf.c:11416
#, c-format
msgid " Return register: %s\n"
msgstr " РегиÑтар резултата: %s\n"
-#: readelf.c:11390
+#: readelf.c:11420
#, c-format
msgid " [reserved (%d)]\n"
msgstr " [резервиÑано (%d)]\n"
-#: readelf.c:11394
+#: readelf.c:11424
#, c-format
msgid "Unsupported architecture type %d encountered when decoding unwind table\n"
msgstr "Ðеподржана врÑта архитектуре %d је откривена приликом декодирања табеле развијања\n"
-#: readelf.c:11449
+#: readelf.c:11479
#, c-format
msgid "corrupt index table entry: %x\n"
msgstr "оштећен Ð¸Ð½Ð´ÐµÐºÑ Ñ‚Ð°Ð±ÐµÐ»Ðµ ниÑке: %x\n"
-#: readelf.c:11488
+#: readelf.c:11518
#, c-format
msgid "Unwind entry contains corrupt offset (%#<PRIx64>) into section %s\n"
msgstr "Ðеодмотани ÑƒÐ½Ð¾Ñ Ñадржи оштећени померај (%#<PRIx64>) у одељку %s\n"
-#: readelf.c:11504
+#: readelf.c:11534
#, c-format
msgid "Could not locate .ARM.extab section containing %#<PRIx64>.\n"
msgstr "Ðе могу да нађем одељак „.ARM.extab“ који Ñадржи %#<PRIx64>.\n"
-#: readelf.c:11548
+#: readelf.c:11578
#, c-format
msgid "Unsupported architecture type %d encountered when processing unwind table\n"
msgstr "Ðеподржана врÑта архитектуре %d је откривена приликом обраде табеле развијања\n"
-#: readelf.c:11610
+#: readelf.c:11640
#, c-format
msgid "No processor specific unwind information to decode\n"
msgstr "Ðема информација развијања Ñпецифичних процеÑору за декодирање\n"
-#: readelf.c:11640
+#: readelf.c:11670
#, c-format
msgid ""
"\n"
@@ -10275,73 +10277,73 @@ msgstr ""
"\n"
"Декодирање одељака развијања за врÑту машине %s није тренутно подржано.\n"
-#: readelf.c:11667
+#: readelf.c:11697
#, c-format
msgid "NONE"
msgstr "ÐИШТÐ"
-#: readelf.c:11692
+#: readelf.c:11722
#, c-format
msgid "Interface Version: %s"
msgstr "Издање Ñучеља: %s"
-#: readelf.c:11695
+#: readelf.c:11725
#, c-format
msgid "Interface Version: <corrupt: %<PRIx64>>"
msgstr "Издање Ñучеља: <оштећено: %<PRIx64>>"
-#: readelf.c:11713
+#: readelf.c:11743
#, c-format
msgid "Time Stamp: %s"
msgstr "ВременÑка ознака: %s"
-#: readelf.c:11902 readelf.c:11952
+#: readelf.c:11932 readelf.c:11982
msgid "dynamic section"
msgstr "динамички одељак"
-#: readelf.c:11922 readelf.c:11973 readelf.c:12081
+#: readelf.c:11952 readelf.c:12003 readelf.c:12111
#, c-format
msgid "Out of memory allocating space for %<PRIu64> dynamic entries\n"
msgstr "ПонеÑтало је меморије током додељивања проÑтора за %<PRIu64> динамичка уноÑа\n"
-#: readelf.c:12047
+#: readelf.c:12077
#, c-format
msgid "Size overflow prevents reading %<PRIu64> elements of size %u\n"
msgstr "Прекорачење величине Ñпречава читање %<PRIu64> елемента величине %u\n"
-#: readelf.c:12057
+#: readelf.c:12087
#, c-format
msgid "Invalid number of dynamic entries: %<PRIu64>\n"
msgstr "Ðетачан број динамичких уноÑа: %<PRIu64>\n"
-#: readelf.c:12065
+#: readelf.c:12095
#, c-format
msgid "Out of memory reading %<PRIu64> dynamic entries\n"
msgstr "ПонеÑтало је меморије за време читања %<PRIu64> динамичка уноÑа\n"
-#: readelf.c:12072
+#: readelf.c:12102
#, c-format
msgid "Unable to read in %<PRIu64> bytes of dynamic data\n"
msgstr "Ðе могу да прочитам %<PRIu64> бајта динамичких података\n"
-#: readelf.c:12122 readelf.c:12176 readelf.c:12200 readelf.c:12233
-#: readelf.c:12259 readelf.c:12278
+#: readelf.c:12152 readelf.c:12206 readelf.c:12230 readelf.c:12263
+#: readelf.c:12289 readelf.c:12308
msgid "Unable to seek to start of dynamic information\n"
msgstr "Ðе могу да премотам на почетак променљивих података\n"
-#: readelf.c:12128 readelf.c:12182
+#: readelf.c:12158 readelf.c:12212
msgid "Failed to read in number of buckets\n"
msgstr "ÐиÑам уÑпео да прочитам број ведара\n"
-#: readelf.c:12134
+#: readelf.c:12164
msgid "Failed to read in number of chains\n"
msgstr "ÐиÑам уÑпео да прочитам број ланаца\n"
-#: readelf.c:12241
+#: readelf.c:12271
msgid "Failed to determine last chain length\n"
msgstr "ÐиÑам уÑпео да одредим дужину поÑледњег ланца\n"
-#: readelf.c:12341
+#: readelf.c:12371
#, c-format
msgid ""
"\n"
@@ -10350,7 +10352,7 @@ msgstr ""
"\n"
"Ðема динамичког одељка у повезаној датотеци „%s“.\n"
-#: readelf.c:12344
+#: readelf.c:12374
#, c-format
msgid ""
"\n"
@@ -10360,49 +10362,49 @@ msgstr ""
"Ðема динамичког одељка у овој датотеци.\n"
#. See PR 21379 for a reproducer.
-#: readelf.c:12404
+#: readelf.c:12434
msgid "Invalid PT_LOAD entry\n"
msgstr "ÐеиÑправан „PT_LOAD“ уноÑ\n"
-#: readelf.c:12430
+#: readelf.c:12460
msgid "the .dynsym section doesn't match the DT_SYMTAB and DT_SYMENT tags\n"
msgstr "одељак „.dynsym“ не одговара ознакама „DT_SYMTAB“ и „DT_SYMENT“\n"
-#: readelf.c:12440
+#: readelf.c:12470
msgid "Corrupt DT_SYMTAB dynamic entry\n"
msgstr "Оштећен динамички ÑƒÐ½Ð¾Ñ â€žDT_SYMTAB“\n"
-#: readelf.c:12476
+#: readelf.c:12506
msgid "the .dynstr section doesn't match the DT_STRTAB and DT_STRSZ tags\n"
msgstr "одељак „.dynstr“ не одговара ознакама „DT_STRTAB“ и „DT_STRSZ“\n"
-#: readelf.c:12481
+#: readelf.c:12511
msgid "dynamic string table"
msgstr "табела динамичке ниÑке"
-#: readelf.c:12484
+#: readelf.c:12514
msgid "Corrupt DT_STRTAB dynamic entry\n"
msgstr "Оштећен динамички ÑƒÐ½Ð¾Ñ â€žDT_STRTAB“\n"
-#: readelf.c:12509
+#: readelf.c:12539
#, c-format
msgid "Bad value (%d) for SYMINENT entry\n"
msgstr "Лоша вредноÑÑ‚ (%d) за „SYMINENT“ уноÑ\n"
-#: readelf.c:12528
+#: readelf.c:12558
msgid "symbol information"
msgstr "подаци Ñимбола"
-#: readelf.c:12534
+#: readelf.c:12564
msgid "Multiple dynamic symbol information sections found\n"
msgstr "Ðађох више одељака података динамичког Ñимбола\n"
-#: readelf.c:12540
+#: readelf.c:12570
#, c-format
msgid "Out of memory allocating %<PRIu64> bytes for dynamic symbol info\n"
msgstr "ПонеÑтало је меморије током додељивања %<PRIu64> бајта за инфо динамичких Ñимбола\n"
-#: readelf.c:12564
+#: readelf.c:12594
#, c-format
msgid ""
"\n"
@@ -10420,7 +10422,7 @@ msgstr[2] ""
"\n"
"У повезаној датотеци „%s“ динамички одељак на померају %#<PRIx64> Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:12571
+#: readelf.c:12601
#, c-format
msgid ""
"\n"
@@ -10438,87 +10440,87 @@ msgstr[2] ""
"\n"
"Динамички одељак на померају %#<PRIx64> Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:12578
+#: readelf.c:12608
#, c-format
msgid " Tag Type Name/Value\n"
msgstr " Ознака Ð’Ñ€Ñта Ðазив/ВредноÑÑ‚\n"
-#: readelf.c:12612
+#: readelf.c:12642
#, c-format
msgid "Auxiliary library"
msgstr "Помоћна библиотека"
-#: readelf.c:12616
+#: readelf.c:12646
#, c-format
msgid "Filter library"
msgstr "Библиотека пропуÑника"
-#: readelf.c:12620
+#: readelf.c:12650
#, c-format
msgid "Configuration file"
msgstr "Датотека подешавања"
-#: readelf.c:12624
+#: readelf.c:12654
#, c-format
msgid "Dependency audit library"
msgstr "Библиотека прегледа завиÑноÑти"
-#: readelf.c:12628
+#: readelf.c:12658
#, c-format
msgid "Audit library"
msgstr "Библиотека прегледа"
-#: readelf.c:12647 readelf.c:12675 readelf.c:12703 readelf.c:13043
+#: readelf.c:12677 readelf.c:12705 readelf.c:12733 readelf.c:13073
#, c-format
msgid "Flags:"
msgstr "Опције:"
-#: readelf.c:12650 readelf.c:12678 readelf.c:12705 readelf.c:13045
+#: readelf.c:12680 readelf.c:12708 readelf.c:12735 readelf.c:13075
#, c-format
msgid " None\n"
msgstr " Ðишта\n"
-#: readelf.c:12912
+#: readelf.c:12942
#, c-format
msgid "Shared library: [%s]"
msgstr "Дељена библиотека: [%s]"
-#: readelf.c:12916
+#: readelf.c:12946
#, c-format
msgid " program interpreter"
msgstr " тумач програма"
-#: readelf.c:12920
+#: readelf.c:12950
#, c-format
msgid "Library soname: [%s]"
msgstr "тзвназив библиотеке: [%s]"
-#: readelf.c:12924
+#: readelf.c:12954
#, c-format
msgid "Library rpath: [%s]"
msgstr "рпутања библиотеке: [%s]"
-#: readelf.c:12928
+#: readelf.c:12958
#, c-format
msgid "Library runpath: [%s]"
msgstr "покретања_путања библиотеке: [%s]"
-#: readelf.c:12965
+#: readelf.c:12995
#, c-format
msgid " (bytes)\n"
msgstr " (бајта)\n"
-#: readelf.c:12996
+#: readelf.c:13026
#, c-format
msgid "Not needed object: [%s]\n"
msgstr "Ðепотребан предмет: [%s]\n"
-#: readelf.c:13021
+#: readelf.c:13051
#, c-format
msgid "<corrupt time val: %<PRIx64>"
msgstr "<оштећена вредноÑÑ‚ времена: %<PRIx64>"
-#: readelf.c:13164
+#: readelf.c:13194
#, c-format
msgid ""
"\n"
@@ -10536,7 +10538,7 @@ msgstr[2] ""
"\n"
"У повезаној датотеци „%s“ одељак одреднице издања „%s“ Ñадржи %u уноÑа:\n"
-#: readelf.c:13171
+#: readelf.c:13201
#, c-format
msgid ""
"\n"
@@ -10554,71 +10556,71 @@ msgstr[2] ""
"\n"
"Одељак одреднице издања „%s“ Ñадржи %u уноÑа:\n"
-#: readelf.c:13179 readelf.c:13325 readelf.c:13490
+#: readelf.c:13209 readelf.c:13355 readelf.c:13520
#, c-format
msgid " Addr: 0x%016<PRIx64>"
msgstr " ÐдреÑа: 0x%016<PRIx64>"
-#: readelf.c:13180 readelf.c:13326 readelf.c:13491
+#: readelf.c:13210 readelf.c:13356 readelf.c:13521
#, c-format
msgid " Offset: 0x%08<PRIx64> Link: %u (%s)\n"
msgstr " Померај: 0x%08<PRIx64> Веза: %u (%s)\n"
-#: readelf.c:13186
+#: readelf.c:13216
msgid "version definition section"
msgstr "одељак одреднице издања"
-#: readelf.c:13215
+#: readelf.c:13245
#, c-format
msgid " %#06zx: Rev: %d Flags: %s"
msgstr " %#06zx: Рев: %d Опције: %s"
-#: readelf.c:13218
+#: readelf.c:13248
#, c-format
msgid " Index: %d Cnt: %d "
msgstr " ИндекÑ: %d Бројач: %d "
-#: readelf.c:13235
+#: readelf.c:13265
#, c-format
msgid "Name: %s\n"
msgstr "Ðазив: %s\n"
-#: readelf.c:13238
+#: readelf.c:13268
#, c-format
msgid "Name index: %ld\n"
msgstr "Ð˜Ð½Ð´ÐµÐºÑ Ð½Ð°Ð·Ð¸Ð²Ð°: %ld\n"
-#: readelf.c:13247
+#: readelf.c:13277
#, c-format
msgid "Invalid vda_next field of %lx\n"
msgstr "ÐеиÑправно „vda_next“ поље од %lx\n"
-#: readelf.c:13267
+#: readelf.c:13297
#, c-format
msgid " %#06zx: Parent %d: %s\n"
msgstr " %#06zx: Родитељ %d: %s\n"
-#: readelf.c:13271
+#: readelf.c:13301
#, c-format
msgid " %#06zx: Parent %d, name index: %ld\n"
msgstr " %#06zx: Родитељ %d, Ð¸Ð½Ð´ÐµÐºÑ Ð½Ð°Ð·Ð¸Ð²Ð°: %ld\n"
-#: readelf.c:13276
+#: readelf.c:13306
#, c-format
msgid " Version def aux past end of section\n"
msgstr " Одредница издања „aux“ је прешла крај одељка\n"
-#: readelf.c:13283
+#: readelf.c:13313
#, c-format
msgid "Invalid vd_next field of %lx\n"
msgstr "ÐеиÑправно „vd_next“ поље од %lx\n"
-#: readelf.c:13294
+#: readelf.c:13324
#, c-format
msgid " Version definition past end of section\n"
msgstr " Одредница издања је прешла крај одељка\n"
-#: readelf.c:13310
+#: readelf.c:13340
#, c-format
msgid ""
"\n"
@@ -10636,7 +10638,7 @@ msgstr[2] ""
"\n"
"У повезаној датотеци „%s“ одељку потребно издање „%s“ Ñадржи %u уноÑа:\n"
-#: readelf.c:13317
+#: readelf.c:13347
#, c-format
msgid ""
"\n"
@@ -10654,68 +10656,68 @@ msgstr[2] ""
"\n"
"Издању треба одељак „%s“ који Ñадржи %u уноÑа:\n"
-#: readelf.c:13333
+#: readelf.c:13363
msgid "Version Needs section"
msgstr "Одељак „Издању треба“"
-#: readelf.c:13358
+#: readelf.c:13388
#, c-format
msgid " %#06zx: Version: %d"
msgstr " %#06zx: Издање: %d"
-#: readelf.c:13361
+#: readelf.c:13391
#, c-format
msgid " File: %s"
msgstr " Датотека: %s"
-#: readelf.c:13364
+#: readelf.c:13394
#, c-format
msgid " File: %lx"
msgstr " Датотека: %lx"
-#: readelf.c:13366
+#: readelf.c:13396
#, c-format
msgid " Cnt: %d\n"
msgstr " Бројач: %d\n"
-#: readelf.c:13389
+#: readelf.c:13419
#, c-format
msgid " %#06zx: Name: %s"
msgstr " %#06zx: Ðазив: %s"
-#: readelf.c:13392
+#: readelf.c:13422
#, c-format
msgid " %#06zx: Name index: %lx"
msgstr " %#06zx: Ð˜Ð½Ð´ÐµÐºÑ Ð½Ð°Ð·Ð¸Ð²Ð°: %lx"
-#: readelf.c:13395
+#: readelf.c:13425
#, c-format
msgid " Flags: %s Version: %d\n"
msgstr " Опције: %s Издање: %d\n"
-#: readelf.c:13401
+#: readelf.c:13431
#, c-format
msgid "Invalid vna_next field of %lx\n"
msgstr "ÐеиÑправно „vna_next“ поље од %lx\n"
-#: readelf.c:13414
+#: readelf.c:13444
msgid "Missing Version Needs auxiliary information\n"
msgstr "Потребне Ñу додатне информације недоÑтајућег издања\n"
-#: readelf.c:13419
+#: readelf.c:13449
#, c-format
msgid "Invalid vn_next field of %lx\n"
msgstr "ÐеиÑправно „vn_next“ поље од %lx\n"
-#: readelf.c:13429
+#: readelf.c:13459
msgid "Missing Version Needs information\n"
msgstr "ÐедоÑтају подаци за „Издању треба“\n"
-#: readelf.c:13467
+#: readelf.c:13497
msgid "version string table"
msgstr "табела ниÑке издања"
-#: readelf.c:13475
+#: readelf.c:13505
#, c-format
msgid ""
"\n"
@@ -10733,7 +10735,7 @@ msgstr[2] ""
"\n"
"У повезаној датотеци „%s“ одељак Ñимбола издања „%s“ Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:13482
+#: readelf.c:13512
#, c-format
msgid ""
"\n"
@@ -10751,47 +10753,47 @@ msgstr[2] ""
"\n"
"Одељак Ñимбола издања „%s“ Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:13500
+#: readelf.c:13530
msgid "version symbol data"
msgstr "подаци Ñимбола издања"
-#: readelf.c:13520
+#: readelf.c:13550
msgid "*invalid*"
msgstr "*неиÑправно*"
-#: readelf.c:13528
+#: readelf.c:13558
msgid " 0 (*local*) "
msgstr " 0 (*меÑно*) "
-#: readelf.c:13532
+#: readelf.c:13562
msgid " 1 (*global*) "
msgstr " 1 (*опште*) "
-#: readelf.c:13543
+#: readelf.c:13573
msgid "invalid index into symbol array\n"
msgstr "неиÑправан Ð¸Ð½Ð´ÐµÐºÑ Ñƒ низу Ñимбола\n"
-#: readelf.c:13566 readelf.c:14118
+#: readelf.c:13596 readelf.c:14148
msgid "version need"
msgstr "издање „need“"
-#: readelf.c:13577
+#: readelf.c:13607
msgid "version need aux (2)"
msgstr "издање „need aux“ (2)"
-#: readelf.c:13624 readelf.c:14062
+#: readelf.c:13654 readelf.c:14092
msgid "version def"
msgstr "одредница издања"
-#: readelf.c:13652 readelf.c:14093
+#: readelf.c:13682 readelf.c:14123
msgid "version def aux"
msgstr "помоћна одредница издања"
-#: readelf.c:13660
+#: readelf.c:13690
msgid "*both*"
msgstr "*оба*"
-#: readelf.c:13692
+#: readelf.c:13722
#, c-format
msgid ""
"\n"
@@ -10800,7 +10802,7 @@ msgstr ""
"\n"
"Ðема података о издању у повезаној датотеци „%s“.\n"
-#: readelf.c:13695
+#: readelf.c:13725
#, c-format
msgid ""
"\n"
@@ -10809,69 +10811,69 @@ msgstr ""
"\n"
"Ðема података о издању у овој датотеци.\n"
-#: readelf.c:13791
+#: readelf.c:13821
#, c-format
msgid "Unrecognized visibility value: %u\n"
msgstr "Ðепозната вредноÑÑ‚ видљивоÑти: %u\n"
-#: readelf.c:13804
+#: readelf.c:13834
#, c-format
msgid "Unrecognized alpha specific other value: %u\n"
msgstr "Ðепозната друга „alpha“ Ñпецифична вредноÑÑ‚: %u\n"
-#: readelf.c:13881
+#: readelf.c:13911
#, c-format
msgid "Unrecognized IA64 VMS ST Function type: %d\n"
msgstr "Ðепозната врÑта „IA64 VMS ST“ функције: %d\n"
-#: readelf.c:13905
+#: readelf.c:13935
#, c-format
msgid "Unrecognized IA64 VMS ST Linkage: %d\n"
msgstr "Ðепознато „IA64 VMS ST“ повезивање: %d\n"
-#: readelf.c:13931
+#: readelf.c:13961
#, c-format
msgid "<localentry>: %d"
msgstr "<меÑни_уноÑ>: %d"
-#: readelf.c:13945
+#: readelf.c:13975
msgid " VARIANT_CC"
msgstr " VARIANT_CC"
-#: readelf.c:13996
+#: readelf.c:14026
#, c-format
msgid "<other>: %x"
msgstr "<друго>: %x"
-#: readelf.c:14024
+#: readelf.c:14054
msgid "version data"
msgstr "подаци издања"
-#: readelf.c:14136
+#: readelf.c:14166
msgid "version need aux (3)"
msgstr "издање „need aux“ (3)"
-#: readelf.c:14327
+#: readelf.c:14357
#, c-format
msgid "local symbol %<PRIu64> found at index >= %s's sh_info value of %u\n"
msgstr "нађох локални Ñимбол %<PRIu64> у индекÑу >= %s „sh_info“ вредноÑÑ‚ %u\n"
-#: readelf.c:14346
+#: readelf.c:14376
#, c-format
msgid "Unknown LTO symbol definition encountered: %u\n"
msgstr "Ðаиђох на непознату дефиницију „LTO“ Ñимбола: %u\n"
-#: readelf.c:14365
+#: readelf.c:14395
#, c-format
msgid "Unknown LTO symbol visibility encountered: %u\n"
msgstr "Ðаиђох на непознату видљивоÑÑ‚ „LTO“ Ñимбола: %u\n"
-#: readelf.c:14383
+#: readelf.c:14413
#, c-format
msgid "Unknown LTO symbol type encountered: %u\n"
msgstr "Ðаиђох на непознату врÑту „LTO“ Ñимбола: %u\n"
-#: readelf.c:14399
+#: readelf.c:14429
#, c-format
msgid ""
"\n"
@@ -10880,7 +10882,7 @@ msgstr ""
"\n"
"Одељак табеле „LTO“ Ñимбола „%s“ у повезаној датотеци „%s“ је празан!\n"
-#: readelf.c:14403
+#: readelf.c:14433
#, c-format
msgid ""
"\n"
@@ -10889,24 +10891,24 @@ msgstr ""
"\n"
"Табела „LTO“ Ñимбола „%s“ је празна!\n"
-#: readelf.c:14418
+#: readelf.c:14448
msgid "LTO symbols"
msgstr "„LTO“ Ñимболи"
-#: readelf.c:14436
+#: readelf.c:14463
#, c-format
msgid "LTO Symbol extension table '%s' is empty!\n"
msgstr "Табела проширења „LTO“ Ñимбола „%s“ је празна!\n"
-#: readelf.c:14442
+#: readelf.c:14469
msgid "LTO ext symbol data"
msgstr "Подаци проширења „LTO“ Ñимбола"
-#: readelf.c:14447
+#: readelf.c:14474
msgid "Unexpected version number in symbol extension table\n"
msgstr "Ðеочекивани број издања у табели проширења Ñимбола\n"
-#: readelf.c:14456
+#: readelf.c:14483
#, c-format
msgid ""
"\n"
@@ -10915,69 +10917,69 @@ msgstr ""
"\n"
"У повезаној датотеци „%s“: "
-#: readelf.c:14463
+#: readelf.c:14490
#, c-format
msgid "LTO Symbol table '%s' and extension table '%s' contain:\n"
msgstr "Табела „LTO“ Ñимбола „%s“ и табела проширења „%s“ Ñадрже:\n"
-#: readelf.c:14468
+#: readelf.c:14495
#, c-format
msgid "LTO Symbol table '%s'\n"
msgstr "Табела „LTO“ Ñимбола „%s“\n"
-#: readelf.c:14470
+#: readelf.c:14497
#, c-format
msgid " and extension table '%s' contain:\n"
msgstr " и табела проширења „%s“ Ñадрже:\n"
-#: readelf.c:14475
+#: readelf.c:14502
#, c-format
msgid "LTO Symbol table '%s' contains:\n"
msgstr "Табела „LTO“ Ñимбола „%s“ Ñадржи:\n"
-#: readelf.c:14480
+#: readelf.c:14507
#, c-format
msgid " Comdat_Key Kind Visibility Size Slot Type Section Name\n"
msgstr " Ðарпод_Кључ Ð’Ñ€Ñта ВидљивоÑÑ‚ Величина Утор Ð’Ñ€Ñта Ðазив одељка\n"
-#: readelf.c:14482
+#: readelf.c:14509
#, c-format
msgid " Comdat_Key Kind Visibility Size Slot Name\n"
msgstr " Ðарпод_Кључ Ð’Ñ€Ñта ВидљивоÑÑ‚ Величина Ðазив утора\n"
-#: readelf.c:14529
+#: readelf.c:14556
msgid "Ran out of LTO symbol extension data\n"
msgstr "Ðема више података проширења „LTO“ Ñимбола\n"
-#: readelf.c:14549
+#: readelf.c:14576
msgid "Data remains in the LTO symbol extension table\n"
msgstr "Подаци оÑтали у табели проширења „LTO“ Ñимбола\n"
-#: readelf.c:14559
+#: readelf.c:14586
msgid "Buffer overrun encountered whilst decoding LTO symbol table\n"
msgstr "Ðаиђох на прекорачење међумеморије за време дешифровања табеле „LTO“ Ñимбола\n"
-#: readelf.c:14601
+#: readelf.c:14628
#, c-format
msgid " Num: Value Size Type Bind Vis+Other Ndx(SecName) Name [+ Version Info]\n"
msgstr " Број: ВрднÑÑ‚ Влчна Тип Свеза Виз+Дрги ИндкÑ(ÐзивОдљка) Ðазив [+ Инфо Издња]\n"
-#: readelf.c:14607 readelf.c:14613
+#: readelf.c:14634 readelf.c:14640
#, c-format
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " Број: ВрднÑÑ‚ Вел. Ð’Ñ€Ñта Свеза Виз Инд Ðазив\n"
-#: readelf.c:14622
+#: readelf.c:14649
#, c-format
msgid " Num: Value Size Type Bind Vis+Other Ndx(SecName) Name [+ Version Info]\n"
msgstr " Број: ВрднÑÑ‚ Влчна Тип Свеза Виз+Дрги ИндкÑ(ÐзивОдљка) Ðазив [+ Инфо Издња]\n"
-#: readelf.c:14629 readelf.c:14635
+#: readelf.c:14656 readelf.c:14662
#, c-format
msgid " Num: Value Size Type Bind Vis Ndx Name\n"
msgstr " Број: ВрднÑÑ‚ Вел. Ð’Ñ€Ñта Свеза Виз Инд Ðазив\n"
-#: readelf.c:14648
+#: readelf.c:14675
#, c-format
msgid ""
"\n"
@@ -10986,7 +10988,7 @@ msgstr ""
"\n"
"Табела Ñимбола „%s“ има нулту „sh_entsize“!\n"
-#: readelf.c:14656
+#: readelf.c:14683
#, c-format
msgid ""
"\n"
@@ -11004,7 +11006,7 @@ msgstr[2] ""
"\n"
"У повезаној датотеци „%s“ одељак Ñимбола „%s“ Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:14665
+#: readelf.c:14692
#, c-format
msgid ""
"\n"
@@ -11022,7 +11024,7 @@ msgstr[2] ""
"\n"
"Табела Ñимбола „%s“ Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:14733
+#: readelf.c:14760
#, c-format
msgid ""
"\n"
@@ -11040,7 +11042,7 @@ msgstr[2] ""
"\n"
"У повезаној датотеци „%s“ табела динамичког Ñимбола Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:14743
+#: readelf.c:14770
#, c-format
msgid ""
"\n"
@@ -11058,7 +11060,7 @@ msgstr[2] ""
"\n"
"Табела Ñимбола за Ñлику Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:14778
+#: readelf.c:14805
#, c-format
msgid ""
"\n"
@@ -11067,7 +11069,7 @@ msgstr ""
"\n"
"Подаци динамичког Ñимбола ниÑу доÑтупни за приказивање Ñимбола.\n"
-#: readelf.c:14791
+#: readelf.c:14818
#, c-format
msgid ""
"\n"
@@ -11085,24 +11087,24 @@ msgstr[2] ""
"\n"
"ХиÑтограм за дужину ÑпиÑка ведра (укупно %<PRIu64> ведара):\n"
-#: readelf.c:14801
+#: readelf.c:14828
msgid "Out of memory allocating space for histogram buckets\n"
msgstr "ПонеÑтало је меморије приликом додељивања проÑтора за ведра хиÑтограма\n"
-#: readelf.c:14807 readelf.c:14884
+#: readelf.c:14834 readelf.c:14911
#, c-format
msgid " Length Number %% of total Coverage\n"
msgstr " Дужина Број %% од укупно ПокривеноÑÑ‚\n"
-#: readelf.c:14817
+#: readelf.c:14844
msgid "histogram chain is corrupt\n"
msgstr "ланац хиÑтограма је оштећен\n"
-#: readelf.c:14829
+#: readelf.c:14856
msgid "Out of memory allocating space for histogram counts\n"
msgstr "ПонеÑтало је меморије приликом додељивања проÑтора за број хиÑтограма\n"
-#: readelf.c:14869
+#: readelf.c:14896
#, c-format
msgid ""
"\n"
@@ -11120,15 +11122,15 @@ msgstr[2] ""
"\n"
"ХиÑтограм за „%s“ дужину ÑпиÑка ведра (укупно %<PRIu64> ведара):\n"
-#: readelf.c:14880
+#: readelf.c:14907
msgid "Out of memory allocating space for gnu histogram buckets\n"
msgstr "ПонеÑтало је меморије приликом додељивања проÑтора за ведра гну хиÑтограма\n"
-#: readelf.c:14907
+#: readelf.c:14934
msgid "Out of memory allocating space for gnu histogram counts\n"
msgstr "ПонеÑтало је меморије приликом додељивања проÑтора за број гну хиÑтограма\n"
-#: readelf.c:14973
+#: readelf.c:15000
#, c-format
msgid ""
"\n"
@@ -11146,7 +11148,7 @@ msgstr[2] ""
"\n"
"У повезаној датотеци „%s“ одломак динамичких информација на померају %#<PRIx64> Ñадржи %d уноÑа:\n"
-#: readelf.c:14980
+#: readelf.c:15007
#, c-format
msgid ""
"\n"
@@ -11164,87 +11166,87 @@ msgstr[2] ""
"\n"
"Одломак динамичких података на померају %#<PRIx64> Ñадржи %d уноÑа:\n"
-#: readelf.c:14988
+#: readelf.c:15015
#, c-format
msgid " Num: Name BoundTo Flags\n"
msgstr " Бр.: Ðазив Свезан за Опције\n"
-#: readelf.c:14995
+#: readelf.c:15022
#, c-format
msgid "<corrupt index>"
msgstr "<оштећен индекÑ>"
-#: readelf.c:15000
+#: readelf.c:15027
#, c-format
msgid "<corrupt: %19ld>"
msgstr "<оштећено: %19ld>"
-#: readelf.c:15092
+#: readelf.c:15119
#, c-format
msgid "LoongArch ULEB128 field at 0x%lx contains invalid ULEB128 value\n"
msgstr "LoongArch ULEB128 поље на 0x%lx Ñадржи нетачну ULEB128 вредноÑÑ‚\n"
-#: readelf.c:15097 readelf.c:15151 readelf.c:15202 readelf.c:15248
-#: readelf.c:15262 readelf.c:15306
+#: readelf.c:15124 readelf.c:15178 readelf.c:15229 readelf.c:15275
+#: readelf.c:15289 readelf.c:15333
#, c-format
msgid "%s reloc contains invalid symbol index %<PRIu64>\n"
msgstr "„%s“ премештај Ñадржи неиÑправан Ð¸Ð½Ð´ÐµÐºÑ Ñимбола %<PRIu64>\n"
-#: readelf.c:15198
+#: readelf.c:15225
#, c-format
msgid "MSP430 ULEB128 field at %#<PRIx64> contains invalid ULEB128 value\n"
msgstr "MSP430 ULEB128 поље на %#<PRIx64> Ñадржи неиÑправну „ULEB128“ вредноÑÑ‚\n"
#. PR 21137
-#: readelf.c:15213
+#: readelf.c:15240
#, c-format
msgid "MSP430 sym diff reloc contains invalid offset: %#<PRIx64>\n"
msgstr "MSP430 премештај разлике Ñимбола Ñадржи неиÑправан померај: %#<PRIx64>\n"
-#: readelf.c:15225
+#: readelf.c:15252
msgid "Unhandled MSP430 reloc type found after SYM_DIFF reloc\n"
msgstr "Ðађох необрадиву „MSP430“ врÑту премештаја након „SYM_DIFF“ премештаја\n"
-#: readelf.c:15272
+#: readelf.c:15299
#, c-format
msgid "MN10300 sym diff reloc contains invalid offset: %#<PRIx64>\n"
msgstr "MN10300 премештај разлике Ñимбола Ñадржи неиÑправан померај: %#<PRIx64>\n"
-#: readelf.c:15283
+#: readelf.c:15310
msgid "Unhandled MN10300 reloc type found after SYM_DIFF reloc\n"
msgstr "Пронађох непознату MN10300 врÑту премештаја након „SYM_DIFF“ премештаја\n"
-#: readelf.c:15325 readelf.c:15335
+#: readelf.c:15352 readelf.c:15362
#, c-format
msgid "RL78 sym diff reloc contains invalid offset: %#<PRIx64>\n"
msgstr "RL78 премештај разлике Ñимбола Ñадржи неиÑправан померај: %#<PRIx64>\n"
-#: readelf.c:15558
+#: readelf.c:15585
#, c-format
msgid "Missing knowledge of 32-bit reloc types used in DWARF sections of machine number %d\n"
msgstr "ÐедоÑтаје знање о 32-битним врÑтама премештаја коришћених у „DWARF“ одељцима броја машине %d\n"
-#: readelf.c:16293
+#: readelf.c:16320
#, c-format
msgid "unable to apply unsupported reloc type %d to section %s\n"
msgstr "не могу да применим неподржану врÑту премештаја %d на одељак %s\n"
-#: readelf.c:16302
+#: readelf.c:16329
#, c-format
msgid "skipping invalid relocation offset %#<PRIx64> in section %s\n"
msgstr "преÑкачем неиÑправан померај премештаја %#<PRIx64> у одељку %s\n"
-#: readelf.c:16312
+#: readelf.c:16339
#, c-format
msgid "skipping invalid relocation symbol index %#<PRIx64> in section %s\n"
msgstr "преÑкачем неиÑправан Ð¸Ð½Ð´ÐµÐºÑ Ñимбола премештаја %#<PRIx64> у одељку %s\n"
-#: readelf.c:16336
+#: readelf.c:16363
#, c-format
msgid "skipping unexpected symbol type %s in section %s relocation %tu\n"
msgstr "преÑкачем неочекивану врÑту Ñимбола %s у одељку %s премештај %tu\n"
-#: readelf.c:16414
+#: readelf.c:16441
#, c-format
msgid ""
"\n"
@@ -11253,36 +11255,36 @@ msgstr ""
"\n"
"Избачај аÑемблера за одељак %s\n"
-#: readelf.c:16432
+#: readelf.c:16459
#, c-format
msgid "Section '%s' has no data to dump.\n"
msgstr "Одељак „%s“ нема податке за избачај.\n"
-#: readelf.c:16438
+#: readelf.c:16465
msgid "section contents"
msgstr "Ñадржај одељка"
-#: readelf.c:16461
+#: readelf.c:16488
#, c-format
msgid "Uncompressed section size is suspiciously large: 0x%<PRIu64>\n"
msgstr "Величина неÑажетог одељка је Ñумњиво велика: 0x%<PRIu64>\n"
-#: readelf.c:16552 readelf.c:17162
+#: readelf.c:16580 readelf.c:17199
#, c-format
msgid "section '%s' has unsupported compress type: %d\n"
msgstr "одељак „%s“ има неподржану врÑту Ñажимања: %d\n"
-#: readelf.c:16585 readelf.c:17199
+#: readelf.c:16616 readelf.c:17236
#, c-format
msgid "Unable to decompress section %s\n"
msgstr "Ðе могу да раÑпакујем одељак %s\n"
-#: readelf.c:16624
+#: readelf.c:16655
#, c-format
msgid " NOTE: This section has relocations against it, but these have NOT been applied to this dump.\n"
msgstr " ÐÐПОМЕÐÐ: Ðад овим одељком Ñе раде премештаји, али они ÐИСУ примењени на овај избачај.\n"
-#: readelf.c:16651
+#: readelf.c:16683
#, c-format
msgid ""
"\n"
@@ -11291,7 +11293,7 @@ msgstr ""
"\n"
"Избачај ниÑке одељка „%s“ у повезаној датотеци „%s“:\n"
-#: readelf.c:16655
+#: readelf.c:16687
#, c-format
msgid ""
"\n"
@@ -11300,18 +11302,18 @@ msgstr ""
"\n"
"Избачај ниÑке одељка „%s“:\n"
-#: readelf.c:16751 readelf.c:18253 readelf.c:18293 readelf.c:18331
-#: readelf.c:18378 readelf.c:18409 readelf.c:20015 readelf.c:20047
+#: readelf.c:16785 readelf.c:18290 readelf.c:18330 readelf.c:18368
+#: readelf.c:18415 readelf.c:18446 readelf.c:20052 readelf.c:20084
#, c-format
msgid "<corrupt>\n"
msgstr "<оштећено>\n"
-#: readelf.c:16759
+#: readelf.c:16793
#, c-format
msgid " No strings found in this section."
msgstr " Ðема пронађених ниÑки у овом одељку."
-#: readelf.c:16791
+#: readelf.c:16828
#, c-format
msgid ""
"\n"
@@ -11320,7 +11322,7 @@ msgstr ""
"\n"
"ХекÑадецимални избачај одељка „%s“ у повезаној датотеци „%s“:\n"
-#: readelf.c:16795
+#: readelf.c:16832
#, c-format
msgid ""
"\n"
@@ -11329,31 +11331,31 @@ msgstr ""
"\n"
"ХекÑадецимални избачај одељка „%s“:\n"
-#: readelf.c:16939
+#: readelf.c:16976
#, c-format
msgid "Iteration failed: %s, %s\n"
msgstr "Понављање није уÑпело: %s, %s\n"
-#: readelf.c:16983
+#: readelf.c:17020
#, c-format
msgid "No symbol section named %s\n"
msgstr "Ðема одељка Ñимбола под називом „%s“\n"
-#: readelf.c:16999
+#: readelf.c:17036
#, c-format
msgid "No string table section named %s\n"
msgstr "Ðема одељка табеле ниÑке под називом „%s“\n"
-#: readelf.c:17006
+#: readelf.c:17043
msgid "strings"
msgstr "ниÑке"
-#: readelf.c:17019 readelf.c:17031
+#: readelf.c:17056 readelf.c:17068
#, c-format
msgid "CTF open failure: %s\n"
msgstr "ÐиÑам уÑпео да отворим „CTF“: %s\n"
-#: readelf.c:17038
+#: readelf.c:17075
#, c-format
msgid ""
"\n"
@@ -11362,7 +11364,7 @@ msgstr ""
"\n"
"Избачај „CTF“ одељка „%s“ у повезаној датотеци „%s“:\n"
-#: readelf.c:17042
+#: readelf.c:17079
#, c-format
msgid ""
"\n"
@@ -11371,36 +11373,36 @@ msgstr ""
"\n"
"Избачај „CTF“ одељка „%s“:\n"
-#: readelf.c:17050
+#: readelf.c:17087
#, c-format
msgid "CTF member open failure: %s\n"
msgstr "ÐеуÑпех отварања „CTF“ члана: %s\n"
-#: readelf.c:17077
+#: readelf.c:17114
msgid "Section name must be provided \n"
msgstr "Ðазив одељка мора бити доÑтављен \n"
-#: readelf.c:17089
+#: readelf.c:17126
#, c-format
msgid "SFrame decode failure: %s\n"
msgstr "Декодирање „SFrame“-а није уÑпело: %s\n"
-#: readelf.c:17119
+#: readelf.c:17156
#, c-format
msgid "%s section data"
msgstr "подаци одељка %s"
-#: readelf.c:17143
+#: readelf.c:17180
#, c-format
msgid "compressed section %s is too small to contain a compression header\n"
msgstr "Ñажети одељак „%s“ је премали да Ñадржи заглавље Ñажимања\n"
-#: readelf.c:17275 readelf.c:17302 readelf.c:17327
+#: readelf.c:17312 readelf.c:17339 readelf.c:17364
#, c-format
msgid "malformed note encountered in section %s whilst scanning for build-id note\n"
msgstr "наиђох на лошу напомену у одељку „%s“ док Ñам тражио напомену иб-а изградње\n"
-#: readelf.c:17455
+#: readelf.c:17492
#, c-format
msgid ""
"\n"
@@ -11413,510 +11415,510 @@ msgstr ""
#. which has the NOBITS type - the bits in the file will be random.
#. This can happen when a file containing a .eh_frame section is
#. stripped with the --only-keep-debug command line option.
-#: readelf.c:17464
+#: readelf.c:17501
#, c-format
msgid "section '%s' has the NOBITS type - its contents are unreliable.\n"
msgstr "одељак „%s“ има врÑту „NOBITS“ – његови Ñадржаји Ñу непоуздани.\n"
-#: readelf.c:17514
+#: readelf.c:17551
#, c-format
msgid "Unrecognized debug section: %s\n"
msgstr "Ðепознат одељак прочишћавања: %s\n"
-#: readelf.c:17544
+#: readelf.c:17581
#, c-format
msgid "Section '%s' was not dumped because it does not exist\n"
msgstr "Одељак „%s“ није избачен зато што не поÑтоји\n"
-#: readelf.c:17607
+#: readelf.c:17644
#, c-format
msgid "Unable to display section %d - it has a NULL type\n"
msgstr "Ðе могу да прикажем одељак %d – има врÑту ÐИШТÐ\n"
-#: readelf.c:17611
+#: readelf.c:17648
#, c-format
msgid "Unable to display section %d - it has no contents\n"
msgstr "Ðе могу да прикажем одељак %d – нема Ñадржаја\n"
#. FIXME: Add Proc and OS specific section types ?
-#: readelf.c:17622
+#: readelf.c:17659
#, c-format
msgid "Unable to determine how to dump section %d (type %#x)\n"
msgstr "Ðе могу да одредим како да иÑпишем одељак %d (врÑта „%#x“)\n"
-#: readelf.c:17681
+#: readelf.c:17718
#, c-format
msgid "Section %d was not dumped because it does not exist!\n"
msgstr "Одељак %d није избачен зато што не поÑтоји!\n"
-#: readelf.c:17737
+#: readelf.c:17774
msgid "<corrupt tag>\n"
msgstr "<оштећена ознака>\n"
-#: readelf.c:17752
+#: readelf.c:17789
#, c-format
msgid "<corrupt string tag>"
msgstr "<оштећена ознака ниÑке>"
-#: readelf.c:17786
+#: readelf.c:17823
#, c-format
msgid "Absent/Non standard\n"
msgstr "ОдÑтутно/ÐеÑтандардно\n"
-#: readelf.c:17789
+#: readelf.c:17826
#, c-format
msgid "Bare metal/mwdt\n"
msgstr "Огољени метал/mwdt\n"
-#: readelf.c:17792
+#: readelf.c:17829
#, c-format
msgid "Bare metal/newlib\n"
msgstr "Огољени метал/newlib\n"
-#: readelf.c:17795
+#: readelf.c:17832
#, c-format
msgid "Linux/uclibc\n"
msgstr "ЛинукÑ/uclibc\n"
-#: readelf.c:17798
+#: readelf.c:17835
#, c-format
msgid "Linux/glibc\n"
msgstr "ЛинукÑ/glibc\n"
-#: readelf.c:17801 readelf.c:17880
+#: readelf.c:17838 readelf.c:17917
#, c-format
msgid "Unknown\n"
msgstr "Ðепознато\n"
-#: readelf.c:17813 readelf.c:17843 readelf.c:17871
+#: readelf.c:17850 readelf.c:17880 readelf.c:17908
#, c-format
msgid "Absent\n"
msgstr "ÐедоÑтаје\n"
-#: readelf.c:17855
+#: readelf.c:17892
msgid "yes"
msgstr "да"
-#: readelf.c:17855
+#: readelf.c:17892
msgid "no"
msgstr "не"
-#: readelf.c:17892 readelf.c:17899
+#: readelf.c:17929 readelf.c:17936
msgid "default"
msgstr "оÑновно"
-#: readelf.c:17893
+#: readelf.c:17930
msgid "smallest"
msgstr "најмање"
-#: readelf.c:17898
+#: readelf.c:17935
msgid "OPTFP"
msgstr "OPTFP"
-#: readelf.c:18119 readelf.c:18132 readelf.c:18150 readelf.c:18672
-#: readelf.c:18951 readelf.c:18963 readelf.c:18975
+#: readelf.c:18156 readelf.c:18169 readelf.c:18187 readelf.c:18709
+#: readelf.c:18988 readelf.c:19000 readelf.c:19012
#, c-format
msgid "None\n"
msgstr "Ðишта\n"
-#: readelf.c:18120
+#: readelf.c:18157
#, c-format
msgid "Application\n"
msgstr "Програм\n"
-#: readelf.c:18121
+#: readelf.c:18158
#, c-format
msgid "Realtime\n"
msgstr "Стварно време\n"
-#: readelf.c:18122
+#: readelf.c:18159
#, c-format
msgid "Microcontroller\n"
msgstr "Микроконтролер\n"
-#: readelf.c:18123
+#: readelf.c:18160
#, c-format
msgid "Application or Realtime\n"
msgstr "Програм или Ñтварно време\n"
-#: readelf.c:18133 readelf.c:18152 readelf.c:18724 readelf.c:18741
-#: readelf.c:18812 readelf.c:18832 readelf.c:21690
+#: readelf.c:18170 readelf.c:18189 readelf.c:18761 readelf.c:18778
+#: readelf.c:18849 readelf.c:18869 readelf.c:21737
#, c-format
msgid "8-byte\n"
msgstr "8-бајта\n"
-#: readelf.c:18134 readelf.c:18815 readelf.c:18835 readelf.c:21689
+#: readelf.c:18171 readelf.c:18852 readelf.c:18872 readelf.c:21736
#, c-format
msgid "4-byte\n"
msgstr "4-бајта\n"
-#: readelf.c:18138 readelf.c:18156
+#: readelf.c:18175 readelf.c:18193
#, c-format
msgid "8-byte and up to %d-byte extended\n"
msgstr "8-бајта и Ñве до %d-бајта проширено\n"
-#: readelf.c:18151
+#: readelf.c:18188
#, c-format
msgid "8-byte, except leaf SP\n"
msgstr "8-бајта, оÑим за лиÑÑ‚ СП\n"
-#: readelf.c:18167 readelf.c:18250 readelf.c:18850
+#: readelf.c:18204 readelf.c:18287 readelf.c:18887
#, c-format
msgid "flag = %d, vendor = "
msgstr "опција = %d, продавац = "
-#: readelf.c:18188
+#: readelf.c:18225
#, c-format
msgid "True\n"
msgstr "Тачно\n"
-#: readelf.c:18208
+#: readelf.c:18245
#, c-format
msgid "<unknown: %d>\n"
msgstr "<непознато: %d>\n"
-#: readelf.c:18254
+#: readelf.c:18291
msgid "corrupt vendor attribute\n"
msgstr "оштећен атрибут продавца\n"
-#: readelf.c:18304
+#: readelf.c:18341
#, c-format
msgid "unspecified hard/soft float\n"
msgstr "неодређеи машинÑки/ÑофтверÑки покретни зарез\n"
-#: readelf.c:18307
+#: readelf.c:18344
#, c-format
msgid "hard float\n"
msgstr "машинÑки зарез\n"
-#: readelf.c:18310
+#: readelf.c:18347
#, c-format
msgid "soft float\n"
msgstr "ÑофтверÑки зарез\n"
-#: readelf.c:18342
+#: readelf.c:18379
#, c-format
msgid "unspecified hard/soft float, "
msgstr "неодређеи машинÑки/ÑофтверÑки покретни зарез, "
-#: readelf.c:18345
+#: readelf.c:18382
#, c-format
msgid "hard float, "
msgstr "машинÑки зарез, "
-#: readelf.c:18348
+#: readelf.c:18385
#, c-format
msgid "soft float, "
msgstr "ÑофтверÑки зарез, "
-#: readelf.c:18351
+#: readelf.c:18388
#, c-format
msgid "single-precision hard float, "
msgstr "машинÑки зарез једно-тачноÑти, "
-#: readelf.c:18358
+#: readelf.c:18395
#, c-format
msgid "unspecified long double\n"
msgstr "неодређени дуги дубл\n"
-#: readelf.c:18361
+#: readelf.c:18398
#, c-format
msgid "128-bit IBM long double\n"
msgstr "128-битни „IBM“ дуги дубл\n"
-#: readelf.c:18364
+#: readelf.c:18401
#, c-format
msgid "64-bit long double\n"
msgstr "64-битни дуги дубл\n"
-#: readelf.c:18367
+#: readelf.c:18404
#, c-format
msgid "128-bit IEEE long double\n"
msgstr "128-битни „IEEE“ дуги дубл\n"
-#: readelf.c:18389 readelf.c:18420
+#: readelf.c:18426 readelf.c:18457
#, c-format
msgid "unspecified\n"
msgstr "неодређено\n"
-#: readelf.c:18392
+#: readelf.c:18429
#, c-format
msgid "generic\n"
msgstr "опште\n"
-#: readelf.c:18426
+#: readelf.c:18463
#, c-format
msgid "memory\n"
msgstr "меморија\n"
-#: readelf.c:18453
+#: readelf.c:18490
#, c-format
msgid "any\n"
msgstr "било који\n"
-#: readelf.c:18456
+#: readelf.c:18493
#, c-format
msgid "software\n"
msgstr "ÑофтверÑки\n"
-#: readelf.c:18459
+#: readelf.c:18496
#, c-format
msgid "hardware\n"
msgstr "машинÑки\n"
-#: readelf.c:18582
+#: readelf.c:18619
#, c-format
msgid "Hard or soft float\n"
msgstr "МашинÑки или програмÑки зарез\n"
-#: readelf.c:18585
+#: readelf.c:18622
#, c-format
msgid "Hard float (double precision)\n"
msgstr "МашинÑки зарез (дво-тачноÑÑ‚)\n"
-#: readelf.c:18588
+#: readelf.c:18625
#, c-format
msgid "Hard float (single precision)\n"
msgstr "МашинÑки зарез (једно-тачноÑÑ‚)\n"
-#: readelf.c:18591
+#: readelf.c:18628
#, c-format
msgid "Soft float\n"
msgstr "СофтверÑки зарез\n"
-#: readelf.c:18594
+#: readelf.c:18631
#, c-format
msgid "Hard float (MIPS32r2 64-bit FPU 12 callee-saved)\n"
msgstr "ХардверÑки покретни зарез („MIPS32r2“ 64-бита „FPU 12 callee-saved“)\n"
-#: readelf.c:18597
+#: readelf.c:18634
#, c-format
msgid "Hard float (32-bit CPU, Any FPU)\n"
msgstr "ХардверÑки покретни зарез (32-битни процеÑор, било који „FPU“)\n"
-#: readelf.c:18600
+#: readelf.c:18637
#, c-format
msgid "Hard float (32-bit CPU, 64-bit FPU)\n"
msgstr "ХардверÑки покретни зарез (32-битни процеÑор, 64-битни „FPU“)\n"
-#: readelf.c:18603
+#: readelf.c:18640
#, c-format
msgid "Hard float compat (32-bit CPU, 64-bit FPU)\n"
msgstr "ХардверÑко покретном зарезу ÑаглаÑно (32-битни процеÑор, 64-битни „FPU“)\n"
-#: readelf.c:18606
+#: readelf.c:18643
#, c-format
msgid "NaN 2008 compatibility\n"
msgstr "NaN 2008 ÑаглаÑноÑÑ‚\n"
-#: readelf.c:18639
+#: readelf.c:18676
#, c-format
msgid "Any MSA or not\n"
msgstr "Било који МСРили не\n"
-#: readelf.c:18642
+#: readelf.c:18679
#, c-format
msgid "128-bit MSA\n"
msgstr "128-битни МСÐ\n"
-#: readelf.c:18704
+#: readelf.c:18741
#, c-format
msgid "Not used\n"
msgstr "Ðе кориÑти Ñе\n"
-#: readelf.c:18707
+#: readelf.c:18744
#, c-format
msgid "2 bytes\n"
msgstr "2 бајта\n"
-#: readelf.c:18710
+#: readelf.c:18747
#, c-format
msgid "4 bytes\n"
msgstr "4 бајта\n"
-#: readelf.c:18727 readelf.c:18744 readelf.c:18818 readelf.c:18838
+#: readelf.c:18764 readelf.c:18781 readelf.c:18855 readelf.c:18875
#, c-format
msgid "16-byte\n"
msgstr "16-бајта\n"
-#: readelf.c:18758
+#: readelf.c:18795
#, c-format
msgid "DSBT addressing not used\n"
msgstr "ДСБТ адреÑирање није коришћено\n"
-#: readelf.c:18761
+#: readelf.c:18798
#, c-format
msgid "DSBT addressing used\n"
msgstr "ДСБТ адреÑирање је коришћено\n"
-#: readelf.c:18775
+#: readelf.c:18812
#, c-format
msgid "Data addressing position-dependent\n"
msgstr "ÐдреÑирање података завиÑно од положаја\n"
-#: readelf.c:18778
+#: readelf.c:18815
#, c-format
msgid "Data addressing position-independent, GOT near DP\n"
msgstr "ÐдреÑирање података незавиÑно од положаја, ТОП близу ДП\n"
-#: readelf.c:18781
+#: readelf.c:18818
#, c-format
msgid "Data addressing position-independent, GOT far from DP\n"
msgstr "ÐдреÑирање података незавиÑно од положаја, ТОП далеко од ДП\n"
-#: readelf.c:18795
+#: readelf.c:18832
#, c-format
msgid "Code addressing position-dependent\n"
msgstr "ÐдреÑирање кода завиÑно од положаја\n"
-#: readelf.c:18798
+#: readelf.c:18835
#, c-format
msgid "Code addressing position-independent\n"
msgstr "ÐдреÑирање кода незавиÑно од положаја\n"
-#: readelf.c:18952
+#: readelf.c:18989
#, c-format
msgid "MSP430\n"
msgstr "MSP430\n"
-#: readelf.c:18953
+#: readelf.c:18990
#, c-format
msgid "MSP430X\n"
msgstr "MSP430X\n"
-#: readelf.c:18964 readelf.c:18976
+#: readelf.c:19001 readelf.c:19013
#, c-format
msgid "Small\n"
msgstr "Мало\n"
-#: readelf.c:18965 readelf.c:18977
+#: readelf.c:19002 readelf.c:19014
#, c-format
msgid "Large\n"
msgstr "Велико\n"
-#: readelf.c:18978
+#: readelf.c:19015
#, c-format
msgid "Restricted Large\n"
msgstr "Ограничене дужине\n"
-#: readelf.c:18984
+#: readelf.c:19021
#, c-format
msgid " <unknown tag %<PRId64>>: "
msgstr " <непозната ознака %<PRId64>>: "
-#: readelf.c:19030
+#: readelf.c:19067
#, c-format
msgid "Any Region\n"
msgstr "Било која облаÑÑ‚\n"
-#: readelf.c:19033
+#: readelf.c:19070
#, c-format
msgid "Lower Region Only\n"
msgstr "Само нижа облаÑÑ‚\n"
-#: readelf.c:19099
+#: readelf.c:19136
#, c-format
msgid "No unaligned access\n"
msgstr "Ðема непоравнатог приÑтупа\n"
-#: readelf.c:19102
+#: readelf.c:19139
#, c-format
msgid "Unaligned access\n"
msgstr "Ðепоравнат приÑтуп\n"
-#: readelf.c:19108
+#: readelf.c:19145
#, c-format
msgid "%<PRIu64>-bytes\n"
msgstr "%<PRIu64>-бајта\n"
-#: readelf.c:19250
+#: readelf.c:19287
msgid "attributes"
msgstr "оÑобине"
-#: readelf.c:19262
+#: readelf.c:19299
#, c-format
msgid "Unknown attributes version '%c'(%d) - expecting 'A'\n"
msgstr "Ðепознато издање атрибута „%c“(%d) – очекујем „A“\n"
-#: readelf.c:19281
+#: readelf.c:19318
msgid "Tag section ends prematurely\n"
msgstr "Одељак ознаке Ñе завршава прерано\n"
-#: readelf.c:19290
+#: readelf.c:19327
#, c-format
msgid "Bad attribute length (%u > %u)\n"
msgstr "Лоша дужина атрибута (%u > %u)\n"
-#: readelf.c:19298
+#: readelf.c:19335
#, c-format
msgid "Attribute length of %u is too small\n"
msgstr "Дужина атрибута %u је премала\n"
-#: readelf.c:19309
+#: readelf.c:19346
msgid "Corrupt attribute section name\n"
msgstr "Ðазив одељка оштећеног атрибута\n"
-#: readelf.c:19314
+#: readelf.c:19351
#, c-format
msgid "Attribute Section: "
msgstr "Одељак атрибута: "
-#: readelf.c:19341
+#: readelf.c:19378
msgid "Unused bytes at end of section\n"
msgstr "Ðекоришћени бајтови на крају одељка\n"
-#: readelf.c:19351
+#: readelf.c:19388
#, c-format
msgid "Bad subsection length (%u > %u)\n"
msgstr "Лоша дужина пододељка (%u > %u)\n"
-#: readelf.c:19359
+#: readelf.c:19396
#, c-format
msgid "Bad subsection length (%u < 6)\n"
msgstr "Лоша дужина пододељка (%u < 6)\n"
-#: readelf.c:19374
+#: readelf.c:19411
#, c-format
msgid "File Attributes\n"
msgstr "ОÑобине датотеке\n"
-#: readelf.c:19377
+#: readelf.c:19414
#, c-format
msgid "Section Attributes:"
msgstr "ОÑобине одељка:"
-#: readelf.c:19380
+#: readelf.c:19417
#, c-format
msgid "Symbol Attributes:"
msgstr "ОÑобине Ñимбола:"
-#: readelf.c:19393
+#: readelf.c:19430
#, c-format
msgid "Unknown tag: %d\n"
msgstr "Ðепозната ознака: %d\n"
-#: readelf.c:19414
+#: readelf.c:19451
#, c-format
msgid " Unknown attribute:\n"
msgstr " Ðепознат атрибут:\n"
-#: readelf.c:19456
+#: readelf.c:19493
msgid "MIPS GOT entry extends beyond the end of available data\n"
msgstr "„MIPS GOT“ ÑƒÐ½Ð¾Ñ Ð¿Ñ€ÐµÐ²Ð°Ð·Ð¸Ð»Ð°Ð·Ð¸ крај доÑтупних података\n"
-#: readelf.c:19655
+#: readelf.c:19692
msgid "Corrupt MIPS ABI Flags section.\n"
msgstr "Оштећени одељак „MIPS ABI“ заÑтавица.\n"
-#: readelf.c:19661
+#: readelf.c:19698
msgid "MIPS ABI Flags section"
msgstr "Одељак „MIPS ABI“ заÑтавица"
-#: readelf.c:19720 readelf.c:20303
+#: readelf.c:19757 readelf.c:20340
msgid "Global Offset Table data"
msgstr "Подаци табеле општег помераја"
-#: readelf.c:19724
+#: readelf.c:19761
#, c-format
msgid ""
"\n"
@@ -11925,45 +11927,45 @@ msgstr ""
"\n"
"Статичко „GOT“:\n"
-#: readelf.c:19725 readelf.c:20308
+#: readelf.c:19762 readelf.c:20345
#, c-format
msgid " Canonical gp value: "
msgstr " ПропиÑна гп вредноÑÑ‚: "
-#: readelf.c:19739 readelf.c:20312 readelf.c:20447
+#: readelf.c:19776 readelf.c:20349 readelf.c:20484
#, c-format
msgid " Reserved entries:\n"
msgstr " РезервиÑани уноÑи:\n"
-#: readelf.c:19740
+#: readelf.c:19777
#, c-format
msgid " %*s %10s %*s\n"
msgstr " %*s %10s %*s\n"
-#: readelf.c:19741 readelf.c:19771 readelf.c:20314 readelf.c:20342
-#: readelf.c:20360 readelf.c:20449 readelf.c:20458
+#: readelf.c:19778 readelf.c:19808 readelf.c:20351 readelf.c:20379
+#: readelf.c:20397 readelf.c:20486 readelf.c:20495
msgid "Address"
msgstr "ÐдреÑа"
-#: readelf.c:19741 readelf.c:19771 readelf.c:20314 readelf.c:20342
-#: readelf.c:20361
+#: readelf.c:19778 readelf.c:19808 readelf.c:20351 readelf.c:20379
+#: readelf.c:20398
msgid "Access"
msgstr "ПриÑтуп"
-#: readelf.c:19742 readelf.c:19772
+#: readelf.c:19779 readelf.c:19809
msgid "Value"
msgstr "ВредноÑÑ‚"
-#: readelf.c:19769 readelf.c:20340
+#: readelf.c:19806 readelf.c:20377
#, c-format
msgid " Local entries:\n"
msgstr " МеÑни подаци:\n"
-#: readelf.c:19851 readelf.c:20564
+#: readelf.c:19888 readelf.c:20601
msgid "liblist section data"
msgstr "подаци одељка библÑпиÑка"
-#: readelf.c:19854
+#: readelf.c:19891
#, c-format
msgid ""
"\n"
@@ -11981,37 +11983,37 @@ msgstr[2] ""
"\n"
"Одељак „.liblist“ Ñадржи %zu уноÑа:\n"
-#: readelf.c:19858
+#: readelf.c:19895
msgid " Library Time Stamp Checksum Version Flags\n"
msgstr " Библиотека ВременÑка ознака Сума пров. Издање Опције\n"
-#: readelf.c:19884
+#: readelf.c:19921
#, c-format
msgid "<corrupt: %9ld>"
msgstr "<оштећено: %9ld>"
-#: readelf.c:19889
+#: readelf.c:19926
msgid " NONE"
msgstr " ÐИШТÐ"
-#: readelf.c:19939
+#: readelf.c:19976
msgid "No MIPS_OPTIONS header found\n"
msgstr "ÐиÑам нашао „MIPS_OPTIONS“ заглавље\n"
-#: readelf.c:19945
+#: readelf.c:19982
msgid "The MIPS options section is too small.\n"
msgstr "Одељак „MIPS“ опција је премали.\n"
-#: readelf.c:19950
+#: readelf.c:19987
msgid "options"
msgstr "опције"
-#: readelf.c:19969
+#: readelf.c:20006
#, c-format
msgid "Invalid size (%u) for MIPS option\n"
msgstr "ÐеиÑправна величина (%u) за „MIPS“ опцију\n"
-#: readelf.c:19978
+#: readelf.c:20015
#, c-format
msgid ""
"\n"
@@ -12029,28 +12031,28 @@ msgstr[2] ""
"\n"
"Одељак „%s“ Ñадржи %d уноÑа:\n"
-#: readelf.c:20016 readelf.c:20048
+#: readelf.c:20053 readelf.c:20085
msgid "Truncated MIPS REGINFO option\n"
msgstr "Скраћена „MIPS REGINFO“ опција\n"
-#: readelf.c:20184
+#: readelf.c:20221
msgid "conflict list found without a dynamic symbol table\n"
msgstr "пронађен је Ñукобљавајући ÑпиÑак без динамичке табеле Ñимбола\n"
-#: readelf.c:20192
+#: readelf.c:20229
#, c-format
msgid "Overlarge number of conflicts detected: %zx\n"
msgstr "Превелик број Ñукоба је откривен: %zx\n"
-#: readelf.c:20200
+#: readelf.c:20237
msgid "Out of memory allocating space for dynamic conflicts\n"
msgstr "ПонеÑтало је меморије за време додељивања проÑтора за динамичке Ñукобе\n"
-#: readelf.c:20210 readelf.c:20228
+#: readelf.c:20247 readelf.c:20265
msgid "conflict"
msgstr "Ñукоб"
-#: readelf.c:20241
+#: readelf.c:20278
#, c-format
msgid ""
"\n"
@@ -12068,31 +12070,31 @@ msgstr[2] ""
"\n"
"Одељак „.conflict“ Ñадржи %zu уноÑа:\n"
-#: readelf.c:20245
+#: readelf.c:20282
msgid " Num: Index Value Name"
msgstr " Број: Ð˜Ð½Ð´ÐµÐºÑ Ð’Ñ€Ð´Ð½ÑÑ‚ Ðазив"
-#: readelf.c:20252
+#: readelf.c:20289
#, c-format
msgid "<corrupt symbol index>"
msgstr "<оштећен Ð¸Ð½Ð´ÐµÐºÑ Ñимбола>"
-#: readelf.c:20263 readelf.c:20395 readelf.c:20483
+#: readelf.c:20300 readelf.c:20432 readelf.c:20520
#, c-format
msgid "<corrupt: %14ld>"
msgstr "<оштећено: %14ld>"
-#: readelf.c:20286
+#: readelf.c:20323
#, c-format
msgid "The GOT symbol offset (%<PRIu64>) is greater than the symbol table size (%<PRIu64>)\n"
msgstr "Померај GOT Ñимбола (%<PRIu64>) је већи од величине табеле Ñимбола (%<PRIu64>)\n"
-#: readelf.c:20296
+#: readelf.c:20333
#, c-format
msgid "Too many GOT symbols: %<PRIu64>\n"
msgstr "Превише „GOT“ Ñимбола: %<PRIu64>\n"
-#: readelf.c:20307
+#: readelf.c:20344
#, c-format
msgid ""
"\n"
@@ -12101,92 +12103,92 @@ msgstr ""
"\n"
"Главни ТОП:\n"
-#: readelf.c:20313
+#: readelf.c:20350
#, c-format
msgid " %*s %10s %*s Purpose\n"
msgstr " %*s %10s %*s Ñврха\n"
-#: readelf.c:20315 readelf.c:20343 readelf.c:20362 readelf.c:20449
-#: readelf.c:20459
+#: readelf.c:20352 readelf.c:20380 readelf.c:20399 readelf.c:20486
+#: readelf.c:20496
msgid "Initial"
msgstr "Почетно"
-#: readelf.c:20317
+#: readelf.c:20354
#, c-format
msgid " Lazy resolver\n"
msgstr " Лењи решавач\n"
-#: readelf.c:20332
+#: readelf.c:20369
#, c-format
msgid " Module pointer (GNU extension)\n"
msgstr " Показивач модула (Гну проширење)\n"
-#: readelf.c:20358
+#: readelf.c:20395
#, c-format
msgid " Global entries:\n"
msgstr " Општи подаци:\n"
-#: readelf.c:20363 readelf.c:20460
+#: readelf.c:20400 readelf.c:20497
msgid "Sym.Val."
msgstr "Сим.Вред."
#. Note for translators: "Ndx" = abbreviated form of "Index".
-#: readelf.c:20366 readelf.c:20460
+#: readelf.c:20403 readelf.c:20497
msgid "Ndx"
msgstr "Инд"
-#: readelf.c:20366 readelf.c:20460
+#: readelf.c:20403 readelf.c:20497
msgid "Name"
msgstr "Ðазив"
-#: readelf.c:20376
+#: readelf.c:20413
#, c-format
msgid "<no dynamic symbols>"
msgstr "<нема динамичких Ñимбола>"
-#: readelf.c:20398
+#: readelf.c:20435
#, c-format
msgid "<symbol index %zu exceeds number of dynamic symbols>"
msgstr "<Ð¸Ð½Ð´ÐµÐºÑ Ñимбола %zu превазилази број динамичких Ñимбола>"
-#: readelf.c:20439
+#: readelf.c:20476
msgid "Procedure Linkage Table data"
msgstr "Подаци табеле повезивања поÑтупка"
-#: readelf.c:20448
+#: readelf.c:20485
#, c-format
msgid " %*s %*s Purpose\n"
msgstr " %*s %*s Ñврха\n"
-#: readelf.c:20451
+#: readelf.c:20488
#, c-format
msgid " PLT lazy resolver\n"
msgstr " ТПП лењи решавач\n"
-#: readelf.c:20453
+#: readelf.c:20490
#, c-format
msgid " Module pointer\n"
msgstr " Показивач модула\n"
-#: readelf.c:20456
+#: readelf.c:20493
#, c-format
msgid " Entries:\n"
msgstr " УноÑи:\n"
-#: readelf.c:20470
+#: readelf.c:20507
#, c-format
msgid "<corrupt symbol index: %<PRIu64>>"
msgstr "<оштећен Ð¸Ð½Ð´ÐµÐºÑ Ñимбола: %<PRIu64>>"
-#: readelf.c:20509
+#: readelf.c:20546
msgid "NDS32 elf flags section"
msgstr "одељак NDS32 елф опција"
-#: readelf.c:20575
+#: readelf.c:20612
msgid "liblist string table"
msgstr "табела ниÑке библÑпиÑка"
-#: readelf.c:20587
+#: readelf.c:20624
#, c-format
msgid ""
"\n"
@@ -12204,476 +12206,477 @@ msgstr[2] ""
"\n"
"Одељак ÑпиÑка библиотека „%s“ Ñадржи %<PRIu64> уноÑа:\n"
-#: readelf.c:20595
+#: readelf.c:20632
msgid " Library Time Stamp Checksum Version Flags"
msgstr " Библиотека ВременÑка ознака Сума првре Издање Опције"
-#: readelf.c:20645
+#: readelf.c:20682
msgid "NT_AUXV (auxiliary vector)"
msgstr "NT_AUXV (помоћни вектор)"
-#: readelf.c:20647
+#: readelf.c:20684
msgid "NT_PRSTATUS (prstatus structure)"
msgstr "NT_PRSTATUS (Ñтруктура прÑтања)"
-#: readelf.c:20649
+#: readelf.c:20686
msgid "NT_FPREGSET (floating point registers)"
msgstr "NT_FPREGSET (региÑтри покретног зареза)"
-#: readelf.c:20651
+#: readelf.c:20688
msgid "NT_PRPSINFO (prpsinfo structure)"
msgstr "NT_PRPSINFO (Ñтруктура прпÑподатака)"
-#: readelf.c:20653
+#: readelf.c:20690
msgid "NT_TASKSTRUCT (task structure)"
msgstr "NT_TASKSTRUCT (Ñтруктура задатка)"
-#: readelf.c:20655
+#: readelf.c:20692
msgid "NT_GDB_TDESC (GDB XML target description)"
msgstr "NT_GDB_TDESC (Ð¾Ð¿Ð¸Ñ â€žGDB XML“ мете)"
-#: readelf.c:20657
+#: readelf.c:20694
msgid "NT_PRXFPREG (user_xfpregs structure)"
msgstr "NT_PRXFPREG (Ñтруктура кориÑничког_икÑфпрегÑа)"
-#: readelf.c:20659
+#: readelf.c:20696
msgid "NT_PPC_VMX (ppc Altivec registers)"
msgstr "NT_PPC_VMX (ппц Ðлтивек региÑтри)"
-#: readelf.c:20661
+#: readelf.c:20698
msgid "NT_PPC_VSX (ppc VSX registers)"
msgstr "NT_PPC_VSX (ппц Ð’Ð¡Ð˜ÐºÑ Ñ€ÐµÐ³Ð¸Ñтри)"
-#: readelf.c:20663
+#: readelf.c:20700
msgid "NT_PPC_TAR (ppc TAR register)"
msgstr "NT_PPC_TAR (ппц „TAR“ региÑтар)"
-#: readelf.c:20665
+#: readelf.c:20702
msgid "NT_PPC_PPR (ppc PPR register)"
msgstr "NT_PPC_PPR (ппц „PPR“ региÑтар)"
-#: readelf.c:20667
+#: readelf.c:20704
msgid "NT_PPC_DSCR (ppc DSCR register)"
msgstr "NT_PPC_DSCR (ппц „DSCR“ региÑтар)"
-#: readelf.c:20669
+#: readelf.c:20706
msgid "NT_PPC_EBB (ppc EBB registers)"
msgstr "NT_PPC_EBB (ппц „EBB“ региÑтри)"
-#: readelf.c:20671
+#: readelf.c:20708
msgid "NT_PPC_PMU (ppc PMU registers)"
msgstr "NT_PPC_PMU (ппц „PMU“ региÑтри)"
-#: readelf.c:20673
+#: readelf.c:20710
msgid "NT_PPC_TM_CGPR (ppc checkpointed GPR registers)"
msgstr "NT_PPC_TM_CGPR (ппц проверени „GPR“ региÑтри)"
-#: readelf.c:20675
+#: readelf.c:20712
msgid "NT_PPC_TM_CFPR (ppc checkpointed floating point registers)"
msgstr "NT_PPC_TM_CFPR (ппц проверени региÑтри покретне тачке)"
-#: readelf.c:20677
+#: readelf.c:20714
msgid "NT_PPC_TM_CVMX (ppc checkpointed Altivec registers)"
msgstr "NT_PPC_TM_CVMX (ппц проверени „Altivec“ региÑтри)"
-#: readelf.c:20679
+#: readelf.c:20716
msgid "NT_PPC_TM_CVSX (ppc checkpointed VSX registers)"
msgstr "NT_PPC_TM_CVSX (ппц проверени „VSX“ региÑтри)"
-#: readelf.c:20681
+#: readelf.c:20718
msgid "NT_PPC_TM_SPR (ppc TM special purpose registers)"
msgstr "NT_PPC_TM_SPR (ппц „TM“ региÑтри поÑебне намене)"
-#: readelf.c:20683
+#: readelf.c:20720
msgid "NT_PPC_TM_CTAR (ppc checkpointed TAR register)"
msgstr "NT_PPC_TM_CTAR (ппц проверени „TAR“ региÑтар)"
-#: readelf.c:20685
+#: readelf.c:20722
msgid "NT_PPC_TM_CPPR (ppc checkpointed PPR register)"
msgstr "NT_PPC_TM_CPPR (ппц проверени „PPR“ региÑтар)"
-#: readelf.c:20687
+#: readelf.c:20724
msgid "NT_PPC_TM_CDSCR (ppc checkpointed DSCR register)"
msgstr "NT_PPC_TM_CDSCR (ппц проверени „DSCR“ региÑтар)"
-#: readelf.c:20689
+#: readelf.c:20726
msgid "NT_386_TLS (x86 TLS information)"
msgstr "NT_386_TLS (x86 ТЛС подаци)"
-#: readelf.c:20691
+#: readelf.c:20728
msgid "NT_386_IOPERM (x86 I/O permissions)"
msgstr "NT_386_IOPERM (x86 У/И овлашћења)"
-#: readelf.c:20693
+#: readelf.c:20730
msgid "NT_X86_XSTATE (x86 XSAVE extended state)"
msgstr "NT_X86_XSTATE (x86 XSAVE проширено Ñтање)"
-#: readelf.c:20695
+#: readelf.c:20732
msgid "NT_X86_CET (x86 CET state)"
msgstr "NT_X86_CET (x86 CET Ñтање)"
-#: readelf.c:20697
+#: readelf.c:20734
msgid "NT_X86_SHSTK (x86 SHSTK state)"
msgstr "NT_X86_SHSTK (x86 SHSTK Ñтање)"
-#: readelf.c:20699
+#: readelf.c:20736
msgid "NT_S390_HIGH_GPRS (s390 upper register halves)"
msgstr "NT_S390_HIGH_GPRS (s390 горње половине региÑтра)"
-#: readelf.c:20701
+#: readelf.c:20738
msgid "NT_S390_TIMER (s390 timer register)"
msgstr "NT_S390_TIMER (s390 временÑки региÑтар)"
-#: readelf.c:20703
+#: readelf.c:20740
msgid "NT_S390_TODCMP (s390 TOD comparator register)"
msgstr "NT_S390_TODCMP (s390 ТОД региÑтар упоређивача)"
-#: readelf.c:20705
+#: readelf.c:20742
msgid "NT_S390_TODPREG (s390 TOD programmable register)"
msgstr "NT_S390_TODPREG (s390 ТОД програмљив региÑтар)"
-#: readelf.c:20707
+#: readelf.c:20744
msgid "NT_S390_CTRS (s390 control registers)"
msgstr "NT_S390_CTRS (s390 региÑтри управљања)"
-#: readelf.c:20709
+#: readelf.c:20746
msgid "NT_S390_PREFIX (s390 prefix register)"
msgstr "NT_S390_PREFIX (s390 региÑтар префикÑа)"
-#: readelf.c:20711
+#: readelf.c:20748
msgid "NT_S390_LAST_BREAK (s390 last breaking event address)"
msgstr "NT_S390_LAST_BREAK (s390 адреÑа поÑледњег догађаја прекида)"
-#: readelf.c:20713
+#: readelf.c:20750
msgid "NT_S390_SYSTEM_CALL (s390 system call restart data)"
msgstr "NT_S390_SYSTEM_CALL (s390 подаци поновног покретања ÑиÑтемÑког позива)"
-#: readelf.c:20715
+#: readelf.c:20752
msgid "NT_S390_TDB (s390 transaction diagnostic block)"
msgstr "NT_S390_TDB (s390 блок дијагнозе преноÑа)"
-#: readelf.c:20717
+#: readelf.c:20754
msgid "NT_S390_VXRS_LOW (s390 vector registers 0-15 upper half)"
msgstr "NT_S390_VXRS_LOW (региÑтри „s390“ вектора 0-15 горње половине)"
-#: readelf.c:20719
+#: readelf.c:20756
msgid "NT_S390_VXRS_HIGH (s390 vector registers 16-31)"
msgstr "NT_S390_VXRS_HIGH (региÑтри „s390“ вектора 16-31)"
-#: readelf.c:20721
+#: readelf.c:20758
msgid "NT_S390_GS_CB (s390 guarded-storage registers)"
msgstr "NT_S390_GS_CB (региÑтри „s390“ чуваног Ñмештаја)"
-#: readelf.c:20723
+#: readelf.c:20760
msgid "NT_S390_GS_BC (s390 guarded-storage broadcast control)"
msgstr "NT_S390_GS_BC (контрола емитовања „s390“ чуваног Ñмештаја)"
-#: readelf.c:20725
+#: readelf.c:20762
msgid "NT_ARM_VFP (arm VFP registers)"
msgstr "NT_ARM_VFP (арм ВФП региÑтри)"
-#: readelf.c:20727
+#: readelf.c:20764
msgid "NT_ARM_TLS (AArch TLS registers)"
msgstr "NT_ARM_TLS (ÐÐрх ТЛС региÑтри)"
-#: readelf.c:20729
+#: readelf.c:20766
msgid "NT_ARM_HW_BREAK (AArch hardware breakpoint registers)"
msgstr "NT_ARM_HW_BREAK (ÐÐрх региÑтри тачке прекида хардвера)"
-#: readelf.c:20731
+#: readelf.c:20768
msgid "NT_ARM_HW_WATCH (AArch hardware watchpoint registers)"
msgstr "NT_ARM_HW_WATCH (ÐÐрх региÑтри тачке оÑматрања хардвера)"
-#: readelf.c:20733
+#: readelf.c:20770
msgid "NT_ARM_SYSTEM_CALL (AArch system call number)"
msgstr "NT_ARM_SYSTEM_CALL (AArch број ÑиÑтемÑког позива)"
-#: readelf.c:20735
+#: readelf.c:20772
msgid "NT_ARM_SVE (AArch SVE registers)"
msgstr "NT_ARM_SVE (ÐÐрх SVE региÑтри)"
-#: readelf.c:20737
+#: readelf.c:20774
msgid "NT_ARM_PAC_MASK (AArch pointer authentication code masks)"
msgstr "NT_ARM_PAC_MASK (ÐÐрх показивача маÑке кода потврђивања идентитета)"
-#: readelf.c:20739
+#: readelf.c:20776
msgid "NT_ARM_PACA_KEYS (ARM pointer authentication address keys)"
msgstr "NT_ARM_PACA_KEYS (кључеви адреÑе потврђивања идентитета ARM показивача)"
-#: readelf.c:20741
+#: readelf.c:20778
msgid "NT_ARM_PACG_KEYS (ARM pointer authentication generic keys)"
msgstr "NT_ARM_PACG_KEYS (општи кључеви потврђивања идентитета ARM показивача)"
-#: readelf.c:20743
+#: readelf.c:20780
msgid "NT_ARM_TAGGED_ADDR_CTRL (AArch tagged address control)"
msgstr "NT_ARM_TAGGED_ADDR_CTRL (ÐÐрх означена контрола адреÑе)"
-#: readelf.c:20745
+#: readelf.c:20782
msgid "NT_ARM_SSVE (AArch64 streaming SVE registers)"
msgstr "NT_ARM_SSVE (AArch64 Ñтримујући SVE региÑтри)"
-#: readelf.c:20747
+#: readelf.c:20784
msgid "NT_ARM_ZA (AArch64 SME ZA register)"
msgstr "NT_ARM_ZA (AArch64 SME ZA региÑтар)"
-#: readelf.c:20749
+#: readelf.c:20786
msgid "NT_ARM_ZT (AArch64 SME2 ZT registers)"
msgstr "NT_ARM_ZT (AArch64 SME2 ZT региÑтри)"
-#: readelf.c:20751
+#: readelf.c:20788
msgid "NT_ARM_PAC_ENABLED_KEYS (AArch64 pointer authentication enabled keys)"
msgstr "NT_ARM_PAC_ENABLED_KEYS (укључени кључеви потврђивања идентитета AArch64 показивача)"
-#: readelf.c:20753
+#: readelf.c:20790
msgid "NT_ARC_V2 (ARC HS accumulator/extra registers)"
msgstr "NT_ARC_V2 („ARC HS“ акумулатор/додатни региÑтри)"
-#: readelf.c:20755
+#: readelf.c:20792
msgid "NT_RISCV_CSR (RISC-V control and status registers)"
msgstr "NT_RISCV_CSR (региÑтри „RISC-V“ контроле и Ñтања)"
-#: readelf.c:20757
+#: readelf.c:20794
msgid "NT_PSTATUS (pstatus structure)"
msgstr "NT_PSTATUS (Ñтруктура пÑÑтања)"
-#: readelf.c:20759
+#: readelf.c:20796
msgid "NT_FPREGS (floating point registers)"
msgstr "NT_FPREGS (региÑтри покретног зареза)"
-#: readelf.c:20761
+#: readelf.c:20798
msgid "NT_PSINFO (psinfo structure)"
msgstr "NT_PSINFO (Ñтруктура пÑподатака)"
-#: readelf.c:20763
+#: readelf.c:20800
msgid "NT_LWPSTATUS (lwpstatus_t structure)"
msgstr "NT_LWPSTATUS (Ñтруктура лвпÑÑтања_Ñ‚)"
-#: readelf.c:20765
+#: readelf.c:20802
msgid "NT_LWPSINFO (lwpsinfo_t structure)"
msgstr "NT_LWPSINFO (Ñтруктура лвпÑподатака_Ñ‚)"
-#: readelf.c:20767
+#: readelf.c:20804
msgid "NT_WIN32PSTATUS (win32_pstatus structure)"
msgstr "NT_WIN32PSTATUS (Ñтруктура win32_пÑÑтања)"
-#: readelf.c:20769
+#: readelf.c:20806
msgid "NT_SIGINFO (siginfo_t data)"
msgstr "NT_SIGINFO (Ñигинфо_Ñ‚ подаци)"
-#: readelf.c:20771
+#: readelf.c:20808
msgid "NT_FILE (mapped files)"
msgstr "NT_FILE (мапиране датотеке)"
-#: readelf.c:20779
+#: readelf.c:20816
msgid "NT_VERSION (version)"
msgstr "NT_VERSION (издање)"
-#: readelf.c:20781
+#: readelf.c:20818
msgid "NT_ARCH (architecture)"
msgstr "NT_ARCH (архитектура)"
-#: readelf.c:20783
+#: readelf.c:20820
msgid "OPEN"
msgstr "OPEN"
-#: readelf.c:20785
+#: readelf.c:20822
msgid "func"
msgstr "функција"
-#: readelf.c:20787
+#: readelf.c:20824
msgid "GO BUILDID"
msgstr "GO BUILDID"
-#: readelf.c:20789
+#: readelf.c:20826
msgid "FDO_PACKAGING_METADATA"
msgstr "FDO_МЕТÐПОДÐЦИ_ПÐКОВÐЊÐ"
-#: readelf.c:20791
+#: readelf.c:20828
msgid "FDO_DLOPEN_METADATA"
msgstr "FDO_DLOPEN_МЕТÐПОДÐЦИ"
-#: readelf.c:20796 readelf.c:20906 readelf.c:21095 readelf.c:21663
-#: readelf.c:21833 readelf.c:21962 readelf.c:22095
+#: readelf.c:20833 readelf.c:20943 readelf.c:21132 readelf.c:21710
+#: readelf.c:21880 readelf.c:22009 readelf.c:22142
#, c-format
msgid "Unknown note type: (0x%08x)"
msgstr "Ðепозната врÑта напомене: (0x%08x)"
-#: readelf.c:20816
+#: readelf.c:20853
msgid " Malformed note - too short for header\n"
msgstr " Лоша напомена – прекратка за заглавље\n"
-#: readelf.c:20825
+#: readelf.c:20862
msgid " Malformed note - does not end with \\0\n"
msgstr " Лоша напомена – не завршава Ñе на \\0\n"
-#: readelf.c:20838
+#: readelf.c:20875
msgid " Malformed note - too short for supplied file count\n"
msgstr " Лоша напомена – прекратка за доÑтављени број датотека\n"
-#: readelf.c:20842
+#: readelf.c:20879
#, c-format
msgid " Page size: "
msgstr " Величина Ñтранице: "
-#: readelf.c:20846
+#: readelf.c:20883
#, c-format
msgid " %*s%*s%*s\n"
msgstr " %*s%*s%*s\n"
-#: readelf.c:20847
+#: readelf.c:20884
msgid "Start"
msgstr "Почетак"
-#: readelf.c:20848
+#: readelf.c:20885
msgid "End"
msgstr "Крај"
-#: readelf.c:20849
+#: readelf.c:20886
msgid "Page Offset"
msgstr "Померај Ñтранице"
-#: readelf.c:20857
+#: readelf.c:20894
msgid " Malformed note - filenames end too early\n"
msgstr " Лоша напомена – називи датотека Ñе прерано завршавају\n"
-#: readelf.c:20889
+#: readelf.c:20926
msgid "NT_GNU_ABI_TAG (ABI version tag)"
msgstr "NT_GNU_ABI_TAG (ознака ÐБИ издања)"
-#: readelf.c:20891
+#: readelf.c:20928
msgid "NT_GNU_HWCAP (DSO-supplied software HWCAP info)"
msgstr "NT_GNU_HWCAP (ÑофтверÑки „HWCAP“ подаци које доÑтавља ДСО)"
-#: readelf.c:20893
+#: readelf.c:20930
msgid "NT_GNU_BUILD_ID (unique build ID bitstring)"
msgstr "NT_GNU_BUILD_ID (јединÑтвена битниÑка ИБ-а изградње)"
-#: readelf.c:20895
+#: readelf.c:20932
msgid "NT_GNU_GOLD_VERSION (gold version)"
msgstr "NT_GNU_GOLD_VERSION (златно издање)"
-#: readelf.c:20897
+#: readelf.c:20934
msgid "NT_GNU_PROPERTY_TYPE_0"
msgstr "NT_GNU_PROPERTY_TYPE_0"
-#: readelf.c:20899
+#: readelf.c:20936
msgid "NT_GNU_BUILD_ATTRIBUTE_OPEN"
msgstr "NT_GNU_BUILD_ATTRIBUTE_OPEN"
-#: readelf.c:20901
+#: readelf.c:20938
msgid "NT_GNU_BUILD_ATTRIBUTE_FUNC"
msgstr "NT_GNU_BUILD_ATTRIBUTE_FUNC"
-#: readelf.c:20990 readelf.c:21137 readelf.c:21174
+#: readelf.c:21027 readelf.c:21174 readelf.c:21211
#, c-format
msgid "<None>"
msgstr "<Ðишта>"
-#: readelf.c:21091
+#: readelf.c:21128
msgid "NT_AMDGPU_METADATA (code object metadata)"
msgstr "NT_AMDGPU_МЕТÐПОДÐЦИ (метаподаци објектног кода)"
-#: readelf.c:21286
+#: readelf.c:21327
#, c-format
msgid " Properties: "
msgstr " СвојÑтва: "
-#: readelf.c:21290
+#: readelf.c:21331
#, c-format
msgid "<corrupt GNU_PROPERTY_TYPE, size = %#lx>\n"
msgstr "<оштећено „GNU_PROPERTY_TYPE“, величина = %#lx>\n"
-#: readelf.c:21302
+#: readelf.c:21343
#, c-format
msgid "<corrupt descsz: %#lx>\n"
msgstr "<оштећена вел_опиÑа: %#lx>\n"
-#: readelf.c:21313
+#: readelf.c:21354
#, c-format
msgid "<corrupt type (%#x) datasz: %#x>\n"
msgstr "<оштећена врÑта (%#x) вел_података: %#x>\n"
-#: readelf.c:21335 readelf.c:21389 readelf.c:21411
+#: readelf.c:21376 readelf.c:21430 readelf.c:21452
#, c-format
msgid "x86 ISA used: <corrupt length: %#x> "
msgstr "„x86 ISA“ је коришћено: <оштећена дужина: %#x> "
-#: readelf.c:21346 readelf.c:21400 readelf.c:21422
+#: readelf.c:21387 readelf.c:21441 readelf.c:21463
#, c-format
msgid "x86 ISA needed: <corrupt length: %#x> "
msgstr "„x86 ISA“ је потребно: <оштећена дужина: %#x> "
-#: readelf.c:21357
+#: readelf.c:21398
#, c-format
msgid "x86 feature: <corrupt length: %#x> "
msgstr "„x86“ функција: <оштећена дужина: %#x> "
-#: readelf.c:21368
+#: readelf.c:21409
#, c-format
msgid "x86 feature used: <corrupt length: %#x> "
msgstr "„x86“ функција је коришћена: <оштећена дужина: %#x> "
-#: readelf.c:21379
+#: readelf.c:21420
#, c-format
msgid "x86 feature needed: <corrupt length: %#x> "
msgstr "„x86“ функција је потребна: <оштећена дужина: %#x> "
-#: readelf.c:21441 readelf.c:21455 readelf.c:21463 readelf.c:21494
+#: readelf.c:21482 readelf.c:21496 readelf.c:21504 readelf.c:21510
+#: readelf.c:21541
#, c-format
msgid "<corrupt length: %#x> "
msgstr "<оштећена дужина: %#x> "
-#: readelf.c:21453
+#: readelf.c:21494
#, c-format
msgid "stack size: "
msgstr "величина Ñпремника: "
-#: readelf.c:21476
+#: readelf.c:21523
#, c-format
msgid "1_needed: <corrupt length: %#x> "
msgstr "„1“ је потребно: <оштећена дужина: %#x> "
-#: readelf.c:21490
+#: readelf.c:21537
#, c-format
msgid "UINT32_AND (%#x): "
msgstr "UINT32_AND (%#x): "
-#: readelf.c:21492
+#: readelf.c:21539
#, c-format
msgid "UINT32_OR (%#x): "
msgstr "UINT32_OR (%#x): "
-#: readelf.c:21504
+#: readelf.c:21551
#, c-format
msgid "<unknown type %#x data: "
msgstr "<непозната врÑта %#x података: "
-#: readelf.c:21506
+#: readelf.c:21553
#, c-format
msgid "<processor-specific type %#x data: "
msgstr "<процеÑору Ñпецифичне врÑте %#x подаци: "
-#: readelf.c:21508
+#: readelf.c:21555
#, c-format
msgid "<application-specific type %#x data: "
msgstr "<програму Ñпецифичне врÑте %#x подаци: "
-#: readelf.c:21537
+#: readelf.c:21584
#, c-format
msgid " Build ID: "
msgstr " ИБ изградње: "
-#: readelf.c:21552
+#: readelf.c:21599
#, c-format
msgid " <corrupt GNU_ABI_TAG>\n"
msgstr " <оштећено „GNU_ABI_TAG“>\n"
-#: readelf.c:21589
+#: readelf.c:21636
#, c-format
msgid " OS: %s, ABI: %d.%d.%d\n"
msgstr " ОС: %s, ABI: %d.%d.%d\n"
-#: readelf.c:21598
+#: readelf.c:21645
#, c-format
msgid " Version: "
msgstr " Издање: "
@@ -12683,370 +12686,370 @@ msgstr " Издање: "
#. is a series of entries, where each entry is a single byte followed
#. by a nul terminated string. The byte gives the bit number to test
#. if enabled in the bitmask.
-#: readelf.c:21614
+#: readelf.c:21661
#, c-format
msgid " Hardware Capabilities: "
msgstr " ХардверÑке могућноÑти: "
-#: readelf.c:21617
+#: readelf.c:21664
msgid "<corrupt GNU_HWCAP>\n"
msgstr "<оштећено „GNU_HWCAP“>\n"
-#: readelf.c:21622
+#: readelf.c:21669
#, c-format
msgid "num entries: %d, enabled mask: %x\n"
msgstr "број уноÑа: %d, укључена маÑка: %x\n"
-#: readelf.c:21638
+#: readelf.c:21685
#, c-format
msgid " Description data: "
msgstr " Подаци опиÑа: "
-#: readelf.c:21656
+#: readelf.c:21703
msgid "Alignment of 8-byte objects"
msgstr "Поравнање 8-бајтних објеката"
-#: readelf.c:21657
+#: readelf.c:21704
msgid "Sizeof double and long double"
msgstr "Величина дубла или дугог дубла"
-#: readelf.c:21658
+#: readelf.c:21705
msgid "Type of FPU support needed"
msgstr "Ð’Ñ€Ñта „FPU“ подршке је потребна"
-#: readelf.c:21659
+#: readelf.c:21706
msgid "Use of SIMD instructions"
msgstr "Употреба „SIMD“ инÑтрукција"
-#: readelf.c:21660
+#: readelf.c:21707
msgid "Use of cache"
msgstr "Употреба оÑтаве"
-#: readelf.c:21661
+#: readelf.c:21708
msgid "Use of MMU"
msgstr "Употреба „MMU“"
-#: readelf.c:21697
+#: readelf.c:21744
#, c-format
msgid "4-bytes\n"
msgstr "4-бајта\n"
-#: readelf.c:21698
+#: readelf.c:21745
#, c-format
msgid "8-bytes\n"
msgstr "8-бајта\n"
-#: readelf.c:21705
+#: readelf.c:21752
#, c-format
msgid "FPU-2.0\n"
msgstr "FPU-2.0\n"
-#: readelf.c:21706
+#: readelf.c:21753
#, c-format
msgid "FPU-3.0\n"
msgstr "FPU-3.0\n"
-#: readelf.c:21715
+#: readelf.c:21762
#, c-format
msgid "yes\n"
msgstr "да\n"
-#: readelf.c:21725
+#: readelf.c:21772
#, c-format
msgid "unknown value: %x\n"
msgstr "непозната вредноÑÑ‚: %x\n"
-#: readelf.c:21781
+#: readelf.c:21828
msgid "NT_THRMISC (thrmisc structure)"
msgstr "NT_THRMISC („thrmisc“ Ñтруктура)"
-#: readelf.c:21783
+#: readelf.c:21830
msgid "NT_PROCSTAT_PROC (proc data)"
msgstr "NT_PROCSTAT_PROC (подаци процеÑора)"
-#: readelf.c:21785
+#: readelf.c:21832
msgid "NT_PROCSTAT_FILES (files data)"
msgstr "NT_PROCSTAT_FILES (подаци датотека)"
-#: readelf.c:21787
+#: readelf.c:21834
msgid "NT_PROCSTAT_VMMAP (vmmap data)"
msgstr "NT_PROCSTAT_VMMAP („vmmap“ подаци)"
-#: readelf.c:21789
+#: readelf.c:21836
msgid "NT_PROCSTAT_GROUPS (groups data)"
msgstr "NT_PROCSTAT_GROUPS (подаци група)"
-#: readelf.c:21791
+#: readelf.c:21838
msgid "NT_PROCSTAT_UMASK (umask data)"
msgstr "NT_PROCSTAT_UMASK („umask“ подаци)"
-#: readelf.c:21793
+#: readelf.c:21840
msgid "NT_PROCSTAT_RLIMIT (rlimit data)"
msgstr "NT_PROCSTAT_RLIMIT („rlimit“ подаци)"
-#: readelf.c:21795
+#: readelf.c:21842
msgid "NT_PROCSTAT_OSREL (osreldate data)"
msgstr "NT_PROCSTAT_OSREL („osreldate“ подаци)"
-#: readelf.c:21797
+#: readelf.c:21844
msgid "NT_PROCSTAT_PSSTRINGS (ps_strings data)"
msgstr "NT_PROCSTAT_PSSTRINGS („ps_strings“ подаци)"
-#: readelf.c:21799
+#: readelf.c:21846
msgid "NT_PROCSTAT_AUXV (auxv data)"
msgstr "NT_PROCSTAT_AUXV („auxv“ подаци)"
-#: readelf.c:21801
+#: readelf.c:21848
msgid "NT_PTLWPINFO (ptrace_lwpinfo structure)"
msgstr "NT_PTLWPINFO („ptrace_lwpinfo“ Ñтруктура)"
-#: readelf.c:21803
+#: readelf.c:21850
msgid "NT_X86_SEGBASES (x86 segment base registers)"
msgstr "NT_X86_SEGBASES (x86 региÑтри оÑнове подеока)"
#. NetBSD core "procinfo" structure.
-#: readelf.c:21817
+#: readelf.c:21864
msgid "NetBSD procinfo structure"
msgstr "ÐетБСД прокинфо Ñтруктура"
-#: readelf.c:21820
+#: readelf.c:21867
msgid "NetBSD ELF auxiliary vector data"
msgstr "„NetBSD ELF“ подаци помоћног вектора"
-#: readelf.c:21823
+#: readelf.c:21870
msgid "PT_LWPSTATUS (ptrace_lwpstatus structure)"
msgstr "PT_LWPSTATUS (Ñтруктура „ptrace_lwpstatus“)"
-#: readelf.c:21852 readelf.c:21869 readelf.c:21883
+#: readelf.c:21899 readelf.c:21916 readelf.c:21930
msgid "PT_GETREGS (reg structure)"
msgstr "PT_GETREGS (рег Ñтруктура)"
-#: readelf.c:21854 readelf.c:21871 readelf.c:21885
+#: readelf.c:21901 readelf.c:21918 readelf.c:21932
msgid "PT_GETFPREGS (fpreg structure)"
msgstr "PT_GETFPPREGS (фпрег Ñтруктура)"
-#: readelf.c:21867
+#: readelf.c:21914
msgid "PT___GETREGS40 (old reg structure)"
msgstr "PT___GETREGS40 (Ñтара „reg“ Ñтруктура)"
-#: readelf.c:21902
+#: readelf.c:21949
msgid "OpenBSD procinfo structure"
msgstr "Структура података процеÑора OpenBSD-а"
-#: readelf.c:21904
+#: readelf.c:21951
msgid "OpenBSD ELF auxiliary vector data"
msgstr "„OpenBSD ELF“ подаци помоћног вектора"
-#: readelf.c:21906
+#: readelf.c:21953
msgid "OpenBSD regular registers"
msgstr "„OpenBSD“ уобичајени региÑтри"
-#: readelf.c:21908
+#: readelf.c:21955
msgid "OpenBSD floating point registers"
msgstr "„OpenBSD“ региÑтри покретног зареза"
-#: readelf.c:21910
+#: readelf.c:21957
msgid "OpenBSD window cookie"
msgstr "„OpenBSD“ колачићи прозора"
-#: readelf.c:21922
+#: readelf.c:21969
msgid "QNX debug fullpath"
msgstr "QNX пуна путања прочишћавања"
-#: readelf.c:21924
+#: readelf.c:21971
msgid "QNX debug relocation"
msgstr "QNX премештај прочишћавања"
-#: readelf.c:21926
+#: readelf.c:21973
msgid "QNX stack"
msgstr "QNX Ñпремник"
-#: readelf.c:21928
+#: readelf.c:21975
msgid "QNX generator"
msgstr "QNX творац"
-#: readelf.c:21930
+#: readelf.c:21977
msgid "QNX default library"
msgstr "QNX оÑновна библиотека"
-#: readelf.c:21932
+#: readelf.c:21979
msgid "QNX core sysinfo"
msgstr "QNX кључни ÑиÑтемÑки подаци"
-#: readelf.c:21934
+#: readelf.c:21981
msgid "QNX core info"
msgstr "QNX кључни подаци"
-#: readelf.c:21936
+#: readelf.c:21983
msgid "QNX core status"
msgstr "QNX кључно Ñтање"
-#: readelf.c:21938
+#: readelf.c:21985
msgid "QNX general registers"
msgstr "QNX општи региÑтри"
-#: readelf.c:21940
+#: readelf.c:21987
msgid "QNX floating point registers"
msgstr "QNX региÑтри покретног зареза"
-#: readelf.c:21942
+#: readelf.c:21989
msgid "QNX link map"
msgstr "QNX мапа везе"
-#: readelf.c:21956
+#: readelf.c:22003
msgid "NT_STAPSDT (SystemTap probe descriptors)"
msgstr "NT_STAPSDT (опиÑници СиÑтемТап иÑпитивања)"
-#: readelf.c:22024
+#: readelf.c:22071
#, c-format
msgid " Provider: %s\n"
msgstr " ДоÑтављач: %s\n"
-#: readelf.c:22025
+#: readelf.c:22072
#, c-format
msgid " Name: %s\n"
msgstr " Ðазив: %s\n"
-#: readelf.c:22026
+#: readelf.c:22073
#, c-format
msgid " Location: "
msgstr " МеÑто: "
-#: readelf.c:22028
+#: readelf.c:22075
#, c-format
msgid ", Base: "
msgstr ", ОÑнова: "
-#: readelf.c:22030
+#: readelf.c:22077
#, c-format
msgid ", Semaphore: "
msgstr ", Семафор: "
-#: readelf.c:22033
+#: readelf.c:22080
#, c-format
msgid " Arguments: %s\n"
msgstr " Ðргументи: %s\n"
-#: readelf.c:22038
+#: readelf.c:22085
#, c-format
msgid " <corrupt - note is too small>\n"
msgstr " <оштећено – напомена је премала>\n"
-#: readelf.c:22039
+#: readelf.c:22086
msgid "corrupt stapdt note - the data size is too small\n"
msgstr "оштећена „stapdt“ напомена – величина података је премала\n"
-#: readelf.c:22048
+#: readelf.c:22095
#, c-format
msgid " Packaging Metadata: %.*s\n"
msgstr " Метаподаци паковања: %.*s\n"
-#: readelf.c:22053
+#: readelf.c:22100
#, c-format
msgid " Dlopen Metadata: %.*s\n"
msgstr " Метаподаци dl-отвори: %.*s\n"
-#: readelf.c:22067
+#: readelf.c:22114
msgid "NT_VMS_MHD (module header)"
msgstr "NT_VMS_MHD (заглавље модула)"
-#: readelf.c:22069
+#: readelf.c:22116
msgid "NT_VMS_LNM (language name)"
msgstr "NT_VMS_LNM (назив језика)"
-#: readelf.c:22071
+#: readelf.c:22118
msgid "NT_VMS_SRC (source files)"
msgstr "NT_VMS_SRC (изворне датотеке)"
-#: readelf.c:22075
+#: readelf.c:22122
msgid "NT_VMS_EIDC (consistency check)"
msgstr "NT_VMS_EIDC (провера доÑледноÑти)"
-#: readelf.c:22077
+#: readelf.c:22124
msgid "NT_VMS_FPMODE (FP mode)"
msgstr "NT_VMS_FPMODE (ФП режим)"
-#: readelf.c:22081
+#: readelf.c:22128
msgid "NT_VMS_IMGNAM (image name)"
msgstr "NT_VMS_IMGNAM (назив Ñлике)"
-#: readelf.c:22083
+#: readelf.c:22130
msgid "NT_VMS_IMGID (image id)"
msgstr "NT_VMS_IMGID (иб Ñлике)"
-#: readelf.c:22085
+#: readelf.c:22132
msgid "NT_VMS_LINKID (link id)"
msgstr "NT_VMS_LINKID (иб везе)"
-#: readelf.c:22087
+#: readelf.c:22134
msgid "NT_VMS_IMGBID (build id)"
msgstr "NT_VMS_IMGBID (иб изградње)"
-#: readelf.c:22089
+#: readelf.c:22136
msgid "NT_VMS_GSTNAM (sym table name)"
msgstr "NT_VMS_GSTNAM (назив табеле Ñимбола)"
-#: readelf.c:22116
+#: readelf.c:22163
#, c-format
msgid " Creation date : %.17s\n"
msgstr " Датум Ñтварања : %.17s\n"
-#: readelf.c:22117
+#: readelf.c:22164
#, c-format
msgid " Last patch date: %.17s\n"
msgstr " Датум поÑледње закрпе: %.17s\n"
-#: readelf.c:22120
+#: readelf.c:22167
#, c-format
msgid " Module name : %s\n"
msgstr " Ðазив модула : %s\n"
-#: readelf.c:22122
+#: readelf.c:22169
#, c-format
msgid " Module version : %s\n"
msgstr " Издање модула : %s\n"
-#: readelf.c:22124 readelf.c:22129
+#: readelf.c:22171 readelf.c:22176
#, c-format
msgid " Module version : <missing>\n"
msgstr " Издање модула : <недоÑтаје>\n"
-#: readelf.c:22128
+#: readelf.c:22175
#, c-format
msgid " Module name : <missing>\n"
msgstr " Ðазив модула : <недоÑтаје>\n"
-#: readelf.c:22134
+#: readelf.c:22181
#, c-format
msgid " Language: %.*s\n"
msgstr " Језик: %.*s\n"
-#: readelf.c:22138
+#: readelf.c:22185
#, c-format
msgid " Floating Point mode: "
msgstr " Режим покретног зареза: "
-#: readelf.c:22148
+#: readelf.c:22195
#, c-format
msgid " Link time: "
msgstr " Време везе: "
-#: readelf.c:22158
+#: readelf.c:22205
#, c-format
msgid " Patch time: "
msgstr " Време закрпе: "
-#: readelf.c:22171
+#: readelf.c:22218
#, c-format
msgid " Major id: %u, minor id: %u\n"
msgstr " Главни иб: %u, Ñпоредни иб: %u\n"
-#: readelf.c:22174
+#: readelf.c:22221
#, c-format
msgid " Last modified : "
msgstr " ПоÑледња измена : "
-#: readelf.c:22176
+#: readelf.c:22223
#, c-format
msgid ""
"\n"
@@ -13055,221 +13058,221 @@ msgstr ""
"\n"
" Опције везе : "
-#: readelf.c:22179
+#: readelf.c:22226
#, c-format
msgid " Header flags: 0x%08x\n"
msgstr " Опције заглавља: 0x%08x\n"
-#: readelf.c:22181
+#: readelf.c:22228
#, c-format
msgid " Image id : %.*s\n"
msgstr " ИБ Ñлике : %.*s\n"
-#: readelf.c:22185
+#: readelf.c:22232
#, c-format
msgid " Image name: %.*s\n"
msgstr " Ðазив Ñлике: %.*s\n"
-#: readelf.c:22189
+#: readelf.c:22236
#, c-format
msgid " Global symbol table name: %.*s\n"
msgstr " Ðазив опште табеле Ñимбола: %.*s\n"
-#: readelf.c:22193
+#: readelf.c:22240
#, c-format
msgid " Image id: %.*s\n"
msgstr " ИБ Ñлике: %.*s\n"
-#: readelf.c:22197
+#: readelf.c:22244
#, c-format
msgid " Linker id: %.*s\n"
msgstr " Иб Ñвезивача: %.*s\n"
-#: readelf.c:22207 readelf.c:22900
+#: readelf.c:22254 readelf.c:22947
#, c-format
msgid " <corrupt - data size is too small>\n"
msgstr " <оштећено – величина података је премала>\n"
-#: readelf.c:22208
+#: readelf.c:22255
msgid "corrupt IA64 note: data size is too small\n"
msgstr "оштећена „IA64“ напомена – величина података је премала\n"
-#: readelf.c:22375 readelf.c:22384
+#: readelf.c:22422 readelf.c:22431
#, c-format
msgid " Applies to region from %#<PRIx64> to %#<PRIx64>\n"
msgstr " Примењује Ñе на облаÑÑ‚ од %#<PRIx64> до %#<PRIx64>\n"
-#: readelf.c:22378 readelf.c:22387
+#: readelf.c:22425 readelf.c:22434
#, c-format
msgid " Applies to region from %#<PRIx64>\n"
msgstr " Примењује Ñе на облаÑÑ‚ од %#<PRIx64>\n"
-#: readelf.c:22408
+#: readelf.c:22455
#, c-format
msgid " <invalid description size: %lx>\n"
msgstr " <неиÑправна величина опиÑа: %lx>\n"
-#: readelf.c:22409
+#: readelf.c:22456
#, c-format
msgid " <invalid descsz>"
msgstr " <неиÑправна вел_опиÑа>"
-#: readelf.c:22435
+#: readelf.c:22482
#, c-format
msgid "Gap in build notes detected from %#<PRIx64> to %#<PRIx64>\n"
msgstr "Јаз у напоменама изградње је откривен од %#<PRIx64> до %#<PRIx64>\n"
-#: readelf.c:22439 readelf.c:22450
+#: readelf.c:22486 readelf.c:22497
#, c-format
msgid " Applies to region from %#<PRIx64>"
msgstr " Примењује Ñе на облаÑÑ‚ од %#<PRIx64>"
-#: readelf.c:22444 readelf.c:22455
+#: readelf.c:22491 readelf.c:22502
#, c-format
msgid " to %#<PRIx64>"
msgstr " до %#<PRIx64>"
-#: readelf.c:22461
+#: readelf.c:22508
#, c-format
msgid " (%s)"
msgstr " (%s)"
-#: readelf.c:22482 readelf.c:22497
+#: readelf.c:22529 readelf.c:22544
#, c-format
msgid "corrupt name field in GNU build attribute note: size = %ld\n"
msgstr "оштећено поље назива у напомени атрибута Гну изградње: величина = %ld\n"
-#: readelf.c:22483 readelf.c:22498
+#: readelf.c:22530 readelf.c:22545
msgid " <corrupt name>"
msgstr " <оштећен назив>"
-#: readelf.c:22517
+#: readelf.c:22564
#, c-format
msgid "unrecognised attribute type in name field: %d\n"
msgstr "непозната врÑта атрибута у пољу назива: %d\n"
-#: readelf.c:22518
+#: readelf.c:22565
msgid "<unknown name type>"
msgstr "<непозната врÑта назива>"
-#: readelf.c:22528
+#: readelf.c:22575
msgid "<version>"
msgstr "<издање>"
-#: readelf.c:22533
+#: readelf.c:22580
msgid "<stack prot>"
msgstr "<прот Ñпремника>"
-#: readelf.c:22538
+#: readelf.c:22585
msgid "<relro>"
msgstr "<relro>"
-#: readelf.c:22543
+#: readelf.c:22590
msgid "<stack size>"
msgstr "<величина Ñпремника>"
-#: readelf.c:22548
+#: readelf.c:22595
msgid "<tool>"
msgstr "<алат>"
-#: readelf.c:22553
+#: readelf.c:22600
msgid "<ABI>"
msgstr "<ABI>"
-#: readelf.c:22558
+#: readelf.c:22605
msgid "<PIC>"
msgstr "<PIC>"
-#: readelf.c:22563
+#: readelf.c:22610
msgid "<short enum>"
msgstr "<кратко набрајање>"
-#: readelf.c:22582
+#: readelf.c:22629
#, c-format
msgid "unrecognised byte in name field: %d\n"
msgstr "непознат бајт у пољу назива: %d\n"
-#: readelf.c:22583
+#: readelf.c:22630
#, c-format
msgid "<unknown:_%d>"
msgstr "<непознато:_%d>"
-#: readelf.c:22595
+#: readelf.c:22642
#, c-format
msgid "attribute does not have an expected type (%c)\n"
msgstr "атрибут нема очекивану врÑту (%c)\n"
-#: readelf.c:22599
+#: readelf.c:22646
#, c-format
msgid "corrupt name field: namesz: %lu but parsing gets to %td\n"
msgstr "оштећено поље назива: вел_назива: %lu али обрадом добија %td\n"
-#: readelf.c:22626
+#: readelf.c:22673
#, c-format
msgid "corrupt numeric name field: too many bytes in the value: %x\n"
msgstr "оштећено бројевно поље назива: превише бајтова у вредноÑти: %x\n"
-#: readelf.c:22715
+#: readelf.c:22762
#, c-format
msgid " description data: "
msgstr " подаци опиÑа: "
-#: readelf.c:22863
+#: readelf.c:22910
msgid "failed to unpack msgpack contents in NT_AMDGPU_METADATA note"
msgstr "ниÑам уÑпео да раÑпакујем Ñадржај пакета поруке у напомени NT_AMDGPU_METADATA"
-#: readelf.c:22886
+#: readelf.c:22933
#, c-format
msgid " Stack Size: 0x%<PRIx32>\n"
msgstr " Величина Ñпремника: 0x%<PRIx32>\n"
-#: readelf.c:22888
+#: readelf.c:22935
#, c-format
msgid " Stack allocated: %<PRIx32>\n"
msgstr " ДоÑељен Ñпремник: %<PRIx32>\n"
-#: readelf.c:22890
+#: readelf.c:22937
#, c-format
msgid " Executable: %s\n"
msgstr " Извршна: %s\n"
-#: readelf.c:22901
+#: readelf.c:22948
msgid "corrupt QNX note: data size is too small\n"
msgstr "оштећена „QNX“ напомена: величина података је премала\n"
-#: readelf.c:23046
+#: readelf.c:23093
msgid "notes"
msgstr "напомене"
-#: readelf.c:23058
+#: readelf.c:23105
#, c-format
msgid "Displaying notes found in: %s\n"
msgstr "Приказујем напомене нађене у: %s\n"
-#: readelf.c:23060
+#: readelf.c:23107
#, c-format
msgid "Displaying notes found at file offset 0x%08<PRIx64> with length 0x%08<PRIx64>:\n"
msgstr "Приказујем напомене нађене на померају датотеке 0x%08<PRIx64> Ñа дужином 0x%08<PRIx64>:\n"
-#: readelf.c:23073
+#: readelf.c:23120
#, c-format
msgid "Corrupt note: alignment %<PRId64>, expecting 4 or 8\n"
msgstr "Оштећена напомена: поравнање %<PRId64>, очекујем 4 или 8\n"
-#: readelf.c:23079
+#: readelf.c:23126
#, c-format
msgid " %-20s %-10s\tDescription\n"
msgstr " %-20s %-10s\tОпиÑ\n"
-#: readelf.c:23079
+#: readelf.c:23126
msgid "Owner"
msgstr "ВлаÑник"
-#: readelf.c:23079
+#: readelf.c:23126
msgid "Data size"
msgstr "Величина података"
-#: readelf.c:23097 readelf.c:23126
+#: readelf.c:23144 readelf.c:23173
#, c-format
msgid "Corrupt note: only %zd byte remains, not enough for a full note\n"
msgid_plural "Corrupt note: only %zd bytes remain, not enough for a full note\n"
@@ -13277,25 +13280,25 @@ msgstr[0] "Оштећена напомена: оÑтаје Ñамо %zd бајт
msgstr[1] "Оштећена напомена: оÑтају Ñамо %zd бајта, недовољно за читаву напомену\n"
msgstr[2] "Оштећена напомена: оÑтаје Ñамо %zd бајтова, недовољно за читаву напомену\n"
-#: readelf.c:23154
+#: readelf.c:23201
#, c-format
msgid "note with invalid namesz and/or descsz found at offset %#tx\n"
msgstr "напомена Ñа неиÑправним „namesz“ и/или „descsz“ је нађена на померају %#tx\n"
-#: readelf.c:23156
+#: readelf.c:23203
#, c-format
msgid " type: %#lx, namesize: %#lx, descsize: %#lx, alignment: %u\n"
msgstr " врÑта: %#lx, величина назива: %#lx, величина опиÑа: %#lx, поравнање: %u\n"
-#: readelf.c:23174
+#: readelf.c:23221
msgid "Out of memory allocating space for inote name\n"
msgstr "ПонеÑтало је меморије приликом додељивања проÑтора за назив и-напомене\n"
-#: readelf.c:23232
+#: readelf.c:23279
msgid "v850 notes"
msgstr "„v850“ напомене"
-#: readelf.c:23239
+#: readelf.c:23286
#, c-format
msgid ""
"\n"
@@ -13304,47 +13307,47 @@ msgstr ""
"\n"
"Приказујем Ñадржај одељка „Renesas V850“ напомена на померају %#<PRIx64> Ñа дужином %#<PRIx64>:\n"
-#: readelf.c:23257
+#: readelf.c:23304
#, c-format
msgid "Corrupt note: name size is too big: %lx\n"
msgstr "Оштећена напомена: величина назива је превелика: %lx\n"
-#: readelf.c:23267
+#: readelf.c:23314
#, c-format
msgid "corrupt descsz found in note at offset %#tx\n"
msgstr "нађох оштећену вел_опиÑа у напомени на померају %#tx\n"
-#: readelf.c:23269 readelf.c:23282
+#: readelf.c:23316 readelf.c:23329
#, c-format
msgid " type: %#lx, namesize: %#lx, descsize: %#lx\n"
msgstr " врÑта: %#lx, величина назива: %#lx, величина опиÑа: %#lx\n"
-#: readelf.c:23280
+#: readelf.c:23327
#, c-format
msgid "corrupt namesz found in note at offset %#zx\n"
msgstr "нађох оштећену вел_назива у напомени на померају %#zx\n"
-#: readelf.c:23356
+#: readelf.c:23403
#, c-format
msgid "No notes found in linked file '%s'.\n"
msgstr "ÐиÑам нашао никакве напомене у повезаној датотеци „%s“.\n"
-#: readelf.c:23359
+#: readelf.c:23406
#, c-format
msgid "No notes found file.\n"
msgstr "ÐиÑам нашао напомене у датотеци.\n"
-#: readelf.c:23368
+#: readelf.c:23415
#, c-format
msgid " Unknown GNU attribute: %s\n"
msgstr " Ðепознат Гну атрибут: %s\n"
-#: readelf.c:23697
+#: readelf.c:23744
#, c-format
msgid "%s: Failed to read file header\n"
msgstr "%s: ÐиÑам уÑпео да прочитам заглавље датотеке\n"
-#: readelf.c:23712
+#: readelf.c:23759
#, c-format
msgid ""
"\n"
@@ -13353,27 +13356,27 @@ msgstr ""
"\n"
"Датотека: %s\n"
-#: readelf.c:23873
+#: readelf.c:23920
#, c-format
msgid "%s: unable to dump the index as none was found\n"
msgstr "%s: не могу да изнеÑем Ð¸Ð½Ð´ÐµÐºÑ Ñ˜ÐµÑ€ нема ни једног\n"
-#: readelf.c:23880
+#: readelf.c:23927
#, c-format
msgid "Index of archive %s: (%<PRIu64> entries, %#<PRIx64> bytes in the symbol table)\n"
msgstr "Ð˜Ð½Ð´ÐµÐºÑ Ð°Ñ€Ñ…Ð¸Ð²Ðµ %s: (%<PRIu64> уноÑа, %#<PRIx64> бајта у табели Ñимбола)\n"
-#: readelf.c:23904
+#: readelf.c:23951
#, c-format
msgid "Contents of binary %s at offset "
msgstr "Садржај извршног „%s“ на померају "
-#: readelf.c:23916
+#: readelf.c:23963
#, c-format
msgid "%s: end of the symbol table reached before the end of the index\n"
msgstr "%s: Ñтигох до краја табеле Ñимбола пре краја индекÑа\n"
-#: readelf.c:23935
+#: readelf.c:23982
#, c-format
msgid "%s: %<PRId64> byte remains in the symbol table, but without corresponding entries in the index table\n"
msgid_plural "%s: %<PRId64> bytes remain in the symbol table, but without corresponding entries in the index table\n"
@@ -13381,36 +13384,36 @@ msgstr[0] "%s: %<PRId64> бајт оÑтаје у табели Ñимбола, Ð
msgstr[1] "%s: %<PRId64> бајта оÑтају у табели Ñимбола, али без одговарајућих уноÑа у табели индекÑа\n"
msgstr[2] "%s: %<PRId64> бајтова оÑтаје у табели Ñимбола, али без одговарајућих уноÑа у табели индекÑа\n"
-#: readelf.c:23948
+#: readelf.c:23995
#, c-format
msgid "%s: failed to seek back to start of object files in the archive\n"
msgstr "%s: ниÑам уÑпео да премотам назад на почетак датотека предмета у архиви\n"
-#: readelf.c:24040 readelf.c:24159
+#: readelf.c:24087 readelf.c:24206
#, c-format
msgid "Input file '%s' is not readable.\n"
msgstr "Улазна датотека %s није читљива.\n"
-#: readelf.c:24068
+#: readelf.c:24115
#, c-format
msgid "%s: contains corrupt thin archive: %s\n"
msgstr "%s: Ñадржи оштећену лаку архиву: %s\n"
-#: readelf.c:24086
+#: readelf.c:24133
#, c-format
msgid "%s: failed to seek to archive member.\n"
msgstr "%s: ниÑам уÑпео да премотам до члана архиве.\n"
-#: readelf.c:24151
+#: readelf.c:24198
msgid "Out of memory allocating file data structure\n"
msgstr "ПонеÑтало је меморије приликом додељивања Ñтруктуре података датотеке\n"
-#: readelf.c:24188
+#: readelf.c:24235
#, c-format
msgid "File %s is not an archive so its index cannot be displayed.\n"
msgstr "Датотека %s није архива тако да њен Ð¸Ð½Ð´ÐµÐºÑ Ð½Ðµ може бити приказан.\n"
-#: readelf.c:24259
+#: readelf.c:24301
msgid "Nothing to do.\n"
msgstr "Ðишта за радити.\n"
@@ -14138,8 +14141,8 @@ msgid ""
" -T --target=<BFDNAME> Specify the binary file format\n"
" -e --encoding={s,S,b,l,B,L} Select character size and endianness:\n"
" s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit\n"
-" --unicode={default|show|invalid|hex|escape|highlight}\n"
-" -U {d|s|i|x|e|h} Specify how to treat UTF-8 encoded unicode characters\n"
+" --unicode={default|locale|invalid|hex|escape|highlight}\n"
+" -U {d|l|i|x|e|h} Specify how to treat UTF-8 encoded unicode characters\n"
" -s --output-separator=<string> String used to separate strings in output.\n"
" @<file> Read options from <file>\n"
" -h --help Display this information\n"
@@ -14155,7 +14158,7 @@ msgstr ""
" -e --encoding={s,S,b,l,B,L} Бира величину знака и крајноÑÑ‚:\n"
" s = 7-бита, S = 8-бита, {b,l} = 16-бита, {B,L} = 32-бита\n"
" --unicode={default|show|invalid|hex|escape|highlight}\n"
-" -U {d|s|i|x|e|h} Ðаводи како да Ñе ради Ñа УТФ-8 кодираним јуникод знаковима\n"
+" -U {d|l|i|x|e|h} Ðаводи како да Ñе ради Ñа УТФ-8 кодираним јуникод знаковима\n"
" -s --output-separator=<ниÑка> ÐиÑка коришћена за раздвајање ниÑки у излазу.\n"
" @<датотека> Чита опције из <датотеке>\n"
" -h --help Приказује ове информације\n"
@@ -14313,8 +14316,8 @@ msgstr "\t<оштећен „IA64“ опиÑ>\n"
#: version.c:34
#, c-format
-msgid "Copyright (C) 2024 Free Software Foundation, Inc.\n"
-msgstr "ÐуторÑка права © 204. Фондација Ñлободног Ñофтвера, Доо.\n"
+msgid "Copyright (C) 2025 Free Software Foundation, Inc.\n"
+msgstr "ÐуторÑка права © 2025. Фондација Ñлободног Ñофтвера, Доо.\n"
#: version.c:35
#, c-format
@@ -14545,12 +14548,12 @@ msgstr "неиÑправна опција „-f“\n"
msgid "No filename following the -fo option.\n"
msgstr "Ðема назива датотеке након опције „-fo“.\n"
-#: windres.c:960
+#: windres.c:957
#, c-format
msgid "Option -I is deprecated for setting the input format, please use -J instead.\n"
msgstr "Опција „-I“ је занемарена за подешавање улазног запиÑа, кориÑтите „-J“ умеÑто ње.\n"
-#: windres.c:1073
+#: windres.c:1070
msgid "no resources"
msgstr "нема изворишта"
@@ -14569,6 +14572,24 @@ msgstr "stab_int_type: лоша величина %u"
msgid "%s: warning: unknown size for field `%s' in struct"
msgstr "%s: упозорење: непозната величина за поље „%s“ у Ñтруктури"
+#~ msgid "unable to construct path for supplementary debug file\n"
+#~ msgstr "не могу да направим путању за додатну датотеку прочишћавања\n"
+
+#~ msgid "out of memory constructing filename for .debug_sup link\n"
+#~ msgstr "неÑтало је меморије приликом изградње назива датотеке за „.debug_sup“ везу\n"
+
+#, c-format
+#~ msgid "Minor Image Version:\t\t%d\n"
+#~ msgstr "Споредно издање Ñлике:\t\t%d\n"
+
+#, c-format
+#~ msgid "Major Subsystem Version:\t%d\n"
+#~ msgstr "Главно издање подÑиÑтема:\t%d\n"
+
+#, c-format
+#~ msgid " at offset %#<PRIx64> contains 1 entry which relocates 1 location:\n"
+#~ msgstr " на померају %#<PRIx64> Ñадржи 1 ÑƒÐ½Ð¾Ñ ÐºÐ¾Ñ˜Ð¸ премешта 1 меÑто:\n"
+
#, c-format
#~ msgid "Invalid tag index %#lx encountered"
#~ msgstr "Ðаиђох на неиÑправан Ð¸Ð½Ð´ÐµÐºÑ Ð¾Ð·Ð½Ð°ÐºÐµ „%#lx“"
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 70d0c53..dd1871d 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -438,7 +438,7 @@ section_index_real (const Filedata *filedata, unsigned int ndx)
&& ndx < filedata->file_header.e_shnum
&& ndx > 0);
}
-
+
#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) /* Reverse order! */
static inline bool
@@ -585,7 +585,7 @@ print_vma (uint64_t vma, print_mode mode)
if (is_32bit_elf)
return printf ("%08" PRIx64, vma);
return printf ("%016" PRIx64, vma);
-
+
case DEC_5:
if (vma <= 99999)
return printf ("%5" PRId64, vma);
@@ -800,7 +800,7 @@ print_symbol_name (signed int width, const char * symbol)
if (width_remaining < (nbytes * 2) + 2)
break;
-
+
putchar (is_utf8 ? '<' : '{');
printf ("0x");
for (i = 0; i < nbytes; i++)
@@ -811,14 +811,14 @@ print_symbol_name (signed int width, const char * symbol)
{
if (unicode_display == unicode_highlight && isatty (1))
printf ("\x1B[31;47m"); /* Red. */
-
+
switch (nbytes)
{
case 2:
if (width_remaining < 6)
break;
printf ("\\u%02x%02x",
- (bytes[0] & 0x1c) >> 2,
+ (bytes[0] & 0x1c) >> 2,
((bytes[0] & 0x03) << 6) | (bytes[1] & 0x3f));
break;
case 3:
@@ -835,7 +835,7 @@ print_symbol_name (signed int width, const char * symbol)
((bytes[0] & 0x07) << 6) | ((bytes[1] & 0x3c) >> 2),
((bytes[1] & 0x03) << 6) | ((bytes[2] & 0x3c) >> 2),
((bytes[2] & 0x03) << 6) | (bytes[3] & 0x3f));
-
+
break;
default:
/* URG. */
@@ -845,7 +845,7 @@ print_symbol_name (signed int width, const char * symbol)
if (unicode_display == unicode_highlight && isatty (1))
printf ("\033[0m"); /* Default colour. */
}
-
+
if (bytes[nbytes - 1] == 0)
break;
}
@@ -904,7 +904,7 @@ printable_string (const char * string, unsigned int max_len)
{
#define NUM_STRING_BUFS 5
#define MAX_STRING_LEN 256
-
+
static int string_buf_index = 0;
static char string_buf [NUM_STRING_BUFS][MAX_STRING_LEN + 1];
@@ -918,7 +918,7 @@ printable_string (const char * string, unsigned int max_len)
char c;
unsigned int remaining = MAX_STRING_LEN;
-
+
while ((c = * string ++) != 0)
{
if (ISCNTRL (c))
@@ -960,7 +960,7 @@ printable_string (const char * string, unsigned int max_len)
}
* buf = 0;
- return buf_start;
+ return buf_start;
}
/* Returns a pointer to a static buffer containing a
@@ -1793,7 +1793,7 @@ count_relr_relocations (Filedata * filedata,
nentries = section->sh_size / entsize;
if (nentries == 0)
return 0;
-
+
/* FIXME: This call to get_data duplicates one that follows in
dump_relr_relocations(). They could be combined into just
one call. */
@@ -1928,7 +1928,7 @@ dump_relr_relocations (Filedata * filedata,
if ((entry & 1) == 1)
{
uint64_t addr = where + (j * relr_entsize);
-
+
if (first)
{
print_relr_addr_and_sym (filedata, symtab, nsyms, strtab, addr);
@@ -1949,7 +1949,7 @@ dump_relr_relocations (Filedata * filedata,
free (relrs);
return true;
}
-
+
/* Display the contents of the relocation data found at the specified
offset. */
@@ -3534,7 +3534,7 @@ static char *
decode_ARM_machine_flags (char *out, unsigned e_flags)
{
unsigned eabi;
- bool unknown = false;
+ bool unknown_abi = false;
eabi = EF_ARM_EABI_VERSION (e_flags);
e_flags &= ~ EF_ARM_EABIMASK;
@@ -3558,7 +3558,7 @@ decode_ARM_machine_flags (char *out, unsigned e_flags)
default:
out = stpcpy (out, ", <unrecognized EABI>");
if (e_flags)
- unknown = true;
+ unknown_abi = true;
break;
case EF_ARM_EABI_VER1:
@@ -3578,7 +3578,7 @@ decode_ARM_machine_flags (char *out, unsigned e_flags)
break;
default:
- unknown = true;
+ unknown_abi = true;
break;
}
}
@@ -3609,7 +3609,7 @@ decode_ARM_machine_flags (char *out, unsigned e_flags)
break;
default:
- unknown = true;
+ unknown_abi = true;
break;
}
}
@@ -3640,7 +3640,7 @@ decode_ARM_machine_flags (char *out, unsigned e_flags)
break;
default:
- unknown = true;
+ unknown_abi = true;
break;
}
}
@@ -3675,7 +3675,7 @@ decode_ARM_machine_flags (char *out, unsigned e_flags)
break;
default:
- unknown = true;
+ unknown_abi = true;
break;
}
}
@@ -3730,13 +3730,13 @@ decode_ARM_machine_flags (char *out, unsigned e_flags)
break;
default:
- unknown = true;
+ unknown_abi = true;
break;
}
}
}
- if (unknown)
+ if (unknown_abi)
out = stpcpy (out,_(", <unknown>"));
return out;
}
@@ -5475,7 +5475,7 @@ get_os_specific_segment_type (Filedata * filedata, unsigned long p_type)
if (result != NULL)
return result;
-
+
switch (p_type)
{
case PT_GNU_EH_FRAME: return "GNU_EH_FRAME";
@@ -5552,7 +5552,7 @@ get_processor_specific_segment_type (Filedata * filedata, unsigned long p_type)
sprintf (buff, "LOPROC+%#lx", p_type - PT_LOPROC);
return buff;
}
-
+
static const char *
get_segment_type (Filedata * filedata, unsigned long p_type)
{
@@ -5971,7 +5971,7 @@ get_os_specific_section_type_name (Filedata * filedata, unsigned int sh_type)
case SHT_GNU_verdef: return "VERDEF";
case SHT_GNU_verneed: return "VERNEED";
case SHT_GNU_versym: return "VERSYM";
-
+
case SHT_LLVM_ODRTAB: return "LLVM_ODRTAB";
case SHT_LLVM_LINKER_OPTIONS: return "LLVM_LINKER_OPTIONS";
case SHT_LLVM_ADDRSIG: return "LLVM_ADDRSIG";
@@ -5990,10 +5990,10 @@ get_os_specific_section_type_name (Filedata * filedata, unsigned int sh_type)
case SHT_ANDROID_RELR: return "ANDROID_RELR";
case SHT_CHECKSUM: return "CHECKSUM";
-
+
/* FIXME: Are these correct ? If so, why do they not have #define's ? */
case 0x6ffffff0: return "VERSYM";
-
+
default:
break;
}
@@ -6216,7 +6216,7 @@ usage (FILE * stream)
fprintf (stream, _("\
-X --extra-sym-info Display extra information when showing symbols\n"));
fprintf (stream, _("\
- --no-extra-sym-info Do not display extra information when showing symbols (default)\n"));
+ --no-extra-sym-info Do not display extra information when showing symbols (default)\n"));
fprintf (stream, _("\
-n --notes Display the contents of note sections (if present)\n"));
fprintf (stream, _("\
@@ -6606,7 +6606,7 @@ parse_args (struct dump_data *dumpdata, int argc, char ** argv)
case OPTION_NO_EXTRA_SYM_INFO:
extra_sym_info = false;
break;
-
+
#ifdef SUPPORT_DISASSEMBLY
case 'i':
request_dump (dumpdata, DISASS_DUMP);
@@ -6766,7 +6766,7 @@ check_magic_number (Filedata * filedata, Elf_Internal_Ehdr * header)
FIXME: It is not clear if all four bytes are used as constant magic
valus by all compilers. It may be necessary to recode this function if
different tools use different length sequences. */
-
+
static struct
{
unsigned char magic[4];
@@ -6775,7 +6775,7 @@ check_magic_number (Filedata * filedata, Elf_Internal_Ehdr * header)
}
known_magic[] =
{
- { { 'B', 'C', 0xc0, 0xde },
+ { { 'B', 'C', 0xc0, 0xde },
N_("This is a LLVM bitcode file - try using llvm-bcanalyzer\n"),
N_("This is a LLVM bitcode file - try extracting and then using llvm-bcanalyzer\n")
},
@@ -14296,7 +14296,7 @@ print_symbol (Filedata * filedata,
printf ("%*s", 10 - printed, "");
}
}
-
+
/* Get the symbol's name. For section symbols without a
specific name use the (already computed) section name. */
if (ELF_ST_TYPE (psym->st_info) == STT_SECTION
@@ -16491,7 +16491,7 @@ uncompress_section_contents (bool is_zstd,
}
uncompressed_buffer = xmalloc (uncompressed_size);
-
+
if (is_zstd)
{
#ifdef HAVE_ZSTD
@@ -16551,7 +16551,7 @@ maybe_expand_or_relocate_section (Elf_Internal_Shdr * section,
{
uint64_t section_size = section->sh_size;
unsigned char * start = * start_ptr;
-
+
if (decompress_dumps)
{
uint64_t new_size = section_size;
@@ -17080,7 +17080,10 @@ dump_section_as_ctf (Elf_Internal_Shdr * section, Filedata * filedata)
printable_section_name (filedata, section));
while ((fp = ctf_archive_next (ctfa, &i, &name, 0, &err)) != NULL)
- dump_ctf_archive_member (fp, name, parent, member++);
+ {
+ dump_ctf_archive_member (fp, name, parent, member++);
+ ctf_dict_close (fp);
+ }
if (err != ECTF_NEXT_END)
{
dump_ctf_errs (NULL);
@@ -19268,199 +19271,188 @@ process_attributes (Filedata * filedata,
unsigned char * (* display_pub_attribute) (unsigned char *, const unsigned char * const),
unsigned char * (* display_proc_gnu_attribute) (unsigned char *, unsigned int, const unsigned char * const))
{
- Elf_Internal_Shdr * sect;
- unsigned i;
- bool res = true;
-
/* Find the section header so that we get the size. */
- for (i = 0, sect = filedata->section_headers;
- i < filedata->file_header.e_shnum;
- i++, sect++)
+ Elf_Internal_Shdr * sect = find_section_by_type (filedata, proc_type);
+ if (sect == NULL)
+ sect = find_section_by_type (filedata, SHT_GNU_ATTRIBUTES);
+
+ if (sect == NULL)
+ /* No section, exit without error. */
+ return true;
+
+ unsigned char * contents = (unsigned char *)
+ get_data (NULL, filedata, sect->sh_offset, 1, sect->sh_size, _("attributes"));
+ if (contents == NULL)
+ return false;
+
+ bool res = true;
+ unsigned char * p = contents;
+ /* The first character is the version of the attributes.
+ Currently only version 1, (aka 'A') is recognised here. */
+ if (*p != 'A')
{
- unsigned char * contents;
- unsigned char * p;
+ printf (_("Unknown attributes version '%c'(%d) - expecting 'A'\n"), *p, *p);
+ res = false;
+ goto free_data;
+ }
- if (sect->sh_type != proc_type && sect->sh_type != SHT_GNU_ATTRIBUTES)
- continue;
+ uint64_t section_len = sect->sh_size - 1;
+ p++;
- contents = (unsigned char *) get_data (NULL, filedata, sect->sh_offset, 1,
- sect->sh_size, _("attributes"));
- if (contents == NULL)
+ while (section_len > 0)
+ {
+ uint64_t attr_len;
+ unsigned int namelen;
+ bool public_section;
+ bool gnu_section;
+
+ if (section_len <= 4)
{
+ error (_("Tag section ends prematurely\n"));
res = false;
- continue;
+ break;
}
+ attr_len = byte_get (p, 4);
+ p += 4;
- p = contents;
- /* The first character is the version of the attributes.
- Currently only version 1, (aka 'A') is recognised here. */
- if (*p != 'A')
+ if (attr_len > section_len)
{
- printf (_("Unknown attributes version '%c'(%d) - expecting 'A'\n"), *p, *p);
+ error (_("Bad attribute length (%u > %u)\n"),
+ (unsigned) attr_len, (unsigned) section_len);
+ attr_len = section_len;
res = false;
}
- else
+ /* PR 17531: file: 001-101425-0.004 */
+ else if (attr_len < 5)
{
- uint64_t section_len;
+ error (_("Attribute length of %u is too small\n"), (unsigned) attr_len);
+ res = false;
+ break;
+ }
- section_len = sect->sh_size - 1;
- p++;
+ section_len -= attr_len;
+ attr_len -= 4;
- while (section_len > 0)
- {
- uint64_t attr_len;
- unsigned int namelen;
- bool public_section;
- bool gnu_section;
+ namelen = strnlen ((char *) p, attr_len) + 1;
+ if (namelen == 0 || namelen >= attr_len)
+ {
+ error (_("Corrupt attribute section name\n"));
+ res = false;
+ break;
+ }
- if (section_len <= 4)
- {
- error (_("Tag section ends prematurely\n"));
- res = false;
- break;
- }
- attr_len = byte_get (p, 4);
- p += 4;
+ printf (_("Attribute Section: "));
+ print_symbol_name (INT_MAX, (const char *) p);
+ putchar ('\n');
- if (attr_len > section_len)
- {
- error (_("Bad attribute length (%u > %u)\n"),
- (unsigned) attr_len, (unsigned) section_len);
- attr_len = section_len;
- res = false;
- }
- /* PR 17531: file: 001-101425-0.004 */
- else if (attr_len < 5)
- {
- error (_("Attribute length of %u is too small\n"), (unsigned) attr_len);
- res = false;
- break;
- }
+ if (public_name && streq ((char *) p, public_name))
+ public_section = true;
+ else
+ public_section = false;
- section_len -= attr_len;
- attr_len -= 4;
+ if (streq ((char *) p, "gnu"))
+ gnu_section = true;
+ else
+ gnu_section = false;
- namelen = strnlen ((char *) p, attr_len) + 1;
- if (namelen == 0 || namelen >= attr_len)
- {
- error (_("Corrupt attribute section name\n"));
- res = false;
- break;
- }
+ p += namelen;
+ attr_len -= namelen;
- printf (_("Attribute Section: "));
- print_symbol_name (INT_MAX, (const char *) p);
- putchar ('\n');
+ while (attr_len > 0 && p < contents + sect->sh_size)
+ {
+ int tag;
+ unsigned int val;
+ uint64_t size;
+ unsigned char * end;
- if (public_name && streq ((char *) p, public_name))
- public_section = true;
- else
- public_section = false;
+ /* PR binutils/17531: Safe handling of corrupt files. */
+ if (attr_len < 6)
+ {
+ error (_("Unused bytes at end of section\n"));
+ res = false;
+ section_len = 0;
+ break;
+ }
- if (streq ((char *) p, "gnu"))
- gnu_section = true;
- else
- gnu_section = false;
+ tag = *(p++);
+ size = byte_get (p, 4);
+ if (size > attr_len)
+ {
+ error (_("Bad subsection length (%u > %u)\n"),
+ (unsigned) size, (unsigned) attr_len);
+ res = false;
+ size = attr_len;
+ }
+ /* PR binutils/17531: Safe handling of corrupt files. */
+ if (size < 6)
+ {
+ error (_("Bad subsection length (%u < 6)\n"),
+ (unsigned) size);
+ res = false;
+ section_len = 0;
+ break;
+ }
- p += namelen;
- attr_len -= namelen;
+ attr_len -= size;
+ end = p + size - 1;
+ assert (end <= contents + sect->sh_size);
+ p += 4;
- while (attr_len > 0 && p < contents + sect->sh_size)
+ switch (tag)
+ {
+ case 1:
+ printf (_("File Attributes\n"));
+ break;
+ case 2:
+ printf (_("Section Attributes:"));
+ goto do_numlist;
+ case 3:
+ printf (_("Symbol Attributes:"));
+ /* Fall through. */
+ do_numlist:
+ for (;;)
{
- int tag;
- unsigned int val;
- uint64_t size;
- unsigned char * end;
-
- /* PR binutils/17531: Safe handling of corrupt files. */
- if (attr_len < 6)
- {
- error (_("Unused bytes at end of section\n"));
- res = false;
- section_len = 0;
- break;
- }
-
- tag = *(p++);
- size = byte_get (p, 4);
- if (size > attr_len)
- {
- error (_("Bad subsection length (%u > %u)\n"),
- (unsigned) size, (unsigned) attr_len);
- res = false;
- size = attr_len;
- }
- /* PR binutils/17531: Safe handling of corrupt files. */
- if (size < 6)
- {
- error (_("Bad subsection length (%u < 6)\n"),
- (unsigned) size);
- res = false;
- section_len = 0;
- break;
- }
-
- attr_len -= size;
- end = p + size - 1;
- assert (end <= contents + sect->sh_size);
- p += 4;
-
- switch (tag)
- {
- case 1:
- printf (_("File Attributes\n"));
- break;
- case 2:
- printf (_("Section Attributes:"));
- goto do_numlist;
- case 3:
- printf (_("Symbol Attributes:"));
- /* Fall through. */
- do_numlist:
- for (;;)
- {
- READ_ULEB (val, p, end);
- if (val == 0)
- break;
- printf (" %d", val);
- }
- printf ("\n");
- break;
- default:
- printf (_("Unknown tag: %d\n"), tag);
- public_section = false;
- break;
- }
-
- if (public_section && display_pub_attribute != NULL)
- {
- while (p < end)
- p = display_pub_attribute (p, end);
- assert (p == end);
- }
- else if (gnu_section && display_proc_gnu_attribute != NULL)
- {
- while (p < end)
- p = display_gnu_attribute (p,
- display_proc_gnu_attribute,
- end);
- assert (p == end);
- }
- else if (p < end)
- {
- printf (_(" Unknown attribute:\n"));
- display_raw_attribute (p, end);
- p = end;
- }
- else
- attr_len = 0;
+ READ_ULEB (val, p, end);
+ if (val == 0)
+ break;
+ printf (" %d", val);
}
+ printf ("\n");
+ break;
+ default:
+ printf (_("Unknown tag: %d\n"), tag);
+ public_section = false;
+ break;
}
- }
- free (contents);
+ if (public_section && display_pub_attribute != NULL)
+ {
+ while (p < end)
+ p = display_pub_attribute (p, end);
+ assert (p == end);
+ }
+ else if (gnu_section && display_proc_gnu_attribute != NULL)
+ {
+ while (p < end)
+ p = display_gnu_attribute (p,
+ display_proc_gnu_attribute,
+ end);
+ assert (p == end);
+ }
+ else if (p < end)
+ {
+ printf (_(" Unknown attribute:\n"));
+ display_raw_attribute (p, end);
+ p = end;
+ }
+ else
+ attr_len = 0;
+ }
}
+free_data:
+ free (contents);
+
return res;
}
@@ -23719,8 +23711,8 @@ might_need_separate_debug_info (Filedata * filedata)
deliberate user action. */
if (DEFAULT_FOR_FOLLOW_LINKS == 0 && do_follow_links)
return true;
-
- if (process_links || do_syms || do_unwind
+
+ if (process_links || do_syms || do_unwind
|| dump_any_debugging || do_dump || do_debugging)
return true;
diff --git a/binutils/resbin.c b/binutils/resbin.c
index 388b016..889126e 100644
--- a/binutils/resbin.c
+++ b/binutils/resbin.c
@@ -54,8 +54,8 @@ static rc_res_resource *bin_to_res_group_cursor (windres_bfd *, const bfd_byte *
static rc_res_resource *bin_to_res_group_icon (windres_bfd *, const bfd_byte *, rc_uint_type);
static rc_res_resource *bin_to_res_version (windres_bfd *, const bfd_byte *, rc_uint_type);
static rc_res_resource *bin_to_res_userdata (windres_bfd *, const bfd_byte *, rc_uint_type);
-static rc_res_resource *bin_to_res_toolbar (windres_bfd *, const bfd_byte *);
-static void get_version_header (windres_bfd *, const bfd_byte *, rc_uint_type, const char *,
+static rc_res_resource *bin_to_res_toolbar (windres_bfd *, const bfd_byte *, rc_uint_type);
+static bool get_version_header (windres_bfd *, const bfd_byte *, rc_uint_type, const char *,
unichar **, rc_uint_type *, rc_uint_type *, rc_uint_type *,
rc_uint_type *);
@@ -105,7 +105,7 @@ bin_to_res (windres_bfd *wrbfd, rc_res_id type, const bfd_byte *data,
case RT_VERSION:
return bin_to_res_version (wrbfd, data, length);
case RT_TOOLBAR:
- return bin_to_res_toolbar (wrbfd, data);
+ return bin_to_res_toolbar (wrbfd, data, length);
}
}
@@ -116,7 +116,7 @@ bin_to_res (windres_bfd *wrbfd, rc_res_id type, const bfd_byte *data,
static void
toosmall (const char *msg)
{
- fatal (_("%s: not enough binary data"), msg);
+ non_fatal (_("%s: not enough binary data"), msg);
}
/* Swap in a NULL terminated unicode string. */
@@ -132,16 +132,19 @@ get_unicode (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length,
while (1)
{
if (length < c * 2 + 2)
- toosmall (_("null terminated unicode string"));
- if (windres_get_16 (wrbfd, data + c * 2, 2) == 0)
+ {
+ toosmall (_("null terminated unicode string"));
+ return NULL;
+ }
+ if (windres_get_16 (wrbfd, data + c * 2) == 0)
break;
++c;
}
- ret = (unichar *) res_alloc ((c + 1) * sizeof (unichar));
+ ret = res_alloc ((c + 1) * sizeof (unichar));
for (i = 0; i < c; i++)
- ret[i] = windres_get_16 (wrbfd, data + i * 2, 2);
+ ret[i] = windres_get_16 (wrbfd, data + i * 2);
ret[i] = 0;
if (retlen != NULL)
@@ -159,21 +162,29 @@ get_resid (windres_bfd *wrbfd, rc_res_id *id, const bfd_byte *data,
rc_uint_type first;
if (length < 2)
- toosmall (_("resource ID"));
+ {
+ toosmall (_("resource ID"));
+ return -1;
+ }
- first = windres_get_16 (wrbfd, data, 2);
+ first = windres_get_16 (wrbfd, data);
if (first == 0xffff)
{
if (length < 4)
- toosmall (_("resource ID"));
+ {
+ toosmall (_("resource ID"));
+ return -1;
+ }
id->named = 0;
- id->u.id = windres_get_16 (wrbfd, data + 2, 2);
+ id->u.id = windres_get_16 (wrbfd, data + 2);
return 4;
}
else
{
id->named = 1;
id->u.n.name = get_unicode (wrbfd, data, length, &id->u.n.length);
+ if (id->u.n.name == NULL)
+ return -1;
return id->u.n.length * 2 + 2;
}
}
@@ -187,7 +198,7 @@ bin_to_res_generic (windres_bfd *wrbfd ATTRIBUTE_UNUSED, enum rc_res_type type,
{
rc_res_resource *r;
- r = (rc_res_resource *) res_alloc (sizeof (rc_res_resource));
+ r = res_alloc (sizeof (rc_res_resource));
r->type = type;
r->u.data.data = data;
r->u.data.length = length;
@@ -204,15 +215,18 @@ bin_to_res_cursor (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length
rc_res_resource *r;
if (length < 4)
- toosmall (_("cursor"));
+ {
+ toosmall (_("cursor"));
+ return NULL;
+ }
- c = (rc_cursor *) res_alloc (sizeof (rc_cursor));
- c->xhotspot = windres_get_16 (wrbfd, data, 2);
- c->yhotspot = windres_get_16 (wrbfd, data + 2, 2);
+ c = res_alloc (sizeof (rc_cursor));
+ c->xhotspot = windres_get_16 (wrbfd, data);
+ c->yhotspot = windres_get_16 (wrbfd, data + 2);
c->length = length - 4;
c->data = data + 4;
- r = (rc_res_resource *) res_alloc (sizeof *r);
+ r = res_alloc (sizeof *r);
r->type = RES_TYPE_CURSOR;
r->u.cursor = c;
@@ -228,39 +242,58 @@ bin_to_res_menu (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length)
rc_menu *m;
rc_uint_type version, got;
- r = (rc_res_resource *) res_alloc (sizeof *r);
+ r = res_alloc (sizeof *r);
r->type = RES_TYPE_MENU;
- m = (rc_menu *) res_alloc (sizeof (rc_menu));
+ m = res_alloc (sizeof (rc_menu));
r->u.menu = m;
if (length < 2)
- toosmall (_("menu header"));
+ {
+ toosmall (_("menu header"));
+ return NULL;
+ }
- version = windres_get_16 (wrbfd, data, 2);
+ version = windres_get_16 (wrbfd, data);
if (version == 0)
{
if (length < 4)
- toosmall (_("menu header"));
+ {
+ toosmall (_("menu header"));
+ return NULL;
+ }
m->help = 0;
m->items = bin_to_res_menuitems (wrbfd, data + 4, length - 4, &got);
+ if (m->items == NULL)
+ return NULL;
}
else if (version == 1)
{
rc_uint_type offset;
if (length < 8)
- toosmall (_("menuex header"));
- m->help = windres_get_32 (wrbfd, data + 4, 4);
- offset = windres_get_16 (wrbfd, data + 2, 2);
+ {
+ toosmall (_("menuex header"));
+ return NULL;
+ }
+ m->help = windres_get_32 (wrbfd, data + 4);
+ offset = windres_get_16 (wrbfd, data + 2);
if (offset + 4 >= length)
- toosmall (_("menuex offset"));
+ {
+ toosmall (_("menuex offset"));
+ return NULL;
+ }
m->items = bin_to_res_menuexitems (wrbfd, data + 4 + offset,
length - (4 + offset), &got);
+ if (m->items == NULL)
+ return NULL;
}
else
- fatal (_("unsupported menu version %d"), (int) version);
+ {
+ non_fatal (_("unsupported menu version %d"), (int) version);
+ return NULL;
+ }
return r;
}
@@ -268,8 +301,8 @@ bin_to_res_menu (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length)
/* Convert menu items from binary. */
static rc_menuitem *
-bin_to_res_menuitems (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length,
- rc_uint_type *got)
+bin_to_res_menuitems (windres_bfd *wrbfd, const bfd_byte *data,
+ rc_uint_type length, rc_uint_type *got)
{
rc_menuitem *first, **pp;
@@ -285,13 +318,16 @@ bin_to_res_menuitems (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type len
rc_menuitem *mi;
if (length < 4)
- toosmall (_("menuitem header"));
+ {
+ toosmall (_("menuitem header"));
+ return NULL;
+ }
- mi = (rc_menuitem *) res_alloc (sizeof *mi);
+ mi = res_alloc (sizeof *mi);
mi->state = 0;
mi->help = 0;
- flags = windres_get_16 (wrbfd, data, 2);
+ flags = windres_get_16 (wrbfd, data);
mi->type = flags &~ (MENUITEM_POPUP | MENUITEM_ENDMENU);
if ((flags & MENUITEM_POPUP) == 0)
@@ -300,30 +336,39 @@ bin_to_res_menuitems (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type len
stroff = 2;
if (length < stroff + 2)
- toosmall (_("menuitem header"));
+ {
+ toosmall (_("menuitem header"));
+ return NULL;
+ }
- if (windres_get_16 (wrbfd, data + stroff, 2) == 0)
+ if (windres_get_16 (wrbfd, data + stroff) == 0)
{
slen = 0;
mi->text = NULL;
}
else
- mi->text = get_unicode (wrbfd, data + stroff, length - stroff, &slen);
+ {
+ mi->text = get_unicode (wrbfd, data + stroff, length - stroff, &slen);
+ if (mi->text == NULL)
+ return NULL;
+ }
itemlen = stroff + slen * 2 + 2;
if ((flags & MENUITEM_POPUP) == 0)
{
mi->popup = NULL;
- mi->id = windres_get_16 (wrbfd, data + 2, 2);
+ mi->id = windres_get_16 (wrbfd, data + 2);
}
else
{
rc_uint_type subread;
mi->id = 0;
- mi->popup = bin_to_res_menuitems (wrbfd, data + itemlen, length - itemlen,
- &subread);
+ mi->popup = bin_to_res_menuitems (wrbfd, data + itemlen,
+ length - itemlen, &subread);
+ if (mi->popup == NULL)
+ return NULL;
itemlen += subread;
}
@@ -345,8 +390,8 @@ bin_to_res_menuitems (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type len
/* Convert menuex items from binary. */
static rc_menuitem *
-bin_to_res_menuexitems (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length,
- rc_uint_type *got)
+bin_to_res_menuexitems (windres_bfd *wrbfd, const bfd_byte *data,
+ rc_uint_type length, rc_uint_type *got)
{
rc_menuitem *first, **pp;
@@ -362,25 +407,37 @@ bin_to_res_menuexitems (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type l
rc_menuitem *mi;
if (length < 16)
- toosmall (_("menuitem header"));
+ {
+ toosmall (_("menuitem header"));
+ return NULL;
+ }
- mi = (rc_menuitem *) res_alloc (sizeof (rc_menuitem));
- mi->type = windres_get_32 (wrbfd, data, 4);
- mi->state = windres_get_32 (wrbfd, data + 4, 4);
- mi->id = windres_get_32 (wrbfd, data + 8, 4);
+ mi = res_alloc (sizeof (rc_menuitem));
+ mi->type = windres_get_32 (wrbfd, data);
+ mi->state = windres_get_32 (wrbfd, data + 4);
+ mi->id = windres_get_32 (wrbfd, data + 8);
- flags = windres_get_16 (wrbfd, data + 12, 2);
+ flags = windres_get_16 (wrbfd, data + 12);
- if (windres_get_16 (wrbfd, data + 14, 2) == 0)
+ if (windres_get_16 (wrbfd, data + 14) == 0)
{
slen = 0;
mi->text = NULL;
}
else
- mi->text = get_unicode (wrbfd, data + 14, length - 14, &slen);
+ {
+ mi->text = get_unicode (wrbfd, data + 14, length - 14, &slen);
+ if (mi->text == NULL)
+ return NULL;
+ }
itemlen = 14 + slen * 2 + 2;
itemlen = (itemlen + 3) &~ 3;
+ /* Don't allow rounding up of itemlen to exceed length. This
+ is an anti-fuzzer measure to cope with unexpected offsets and
+ lengths. */
+ if (itemlen > length)
+ itemlen = length;
if ((flags & 1) == 0)
{
@@ -392,12 +449,17 @@ bin_to_res_menuexitems (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type l
rc_uint_type subread;
if (length < itemlen + 4)
- toosmall (_("menuitem"));
- mi->help = windres_get_32 (wrbfd, data + itemlen, 4);
+ {
+ toosmall (_("menuitem"));
+ return NULL;
+ }
+ mi->help = windres_get_32 (wrbfd, data + itemlen);
itemlen += 4;
mi->popup = bin_to_res_menuexitems (wrbfd, data + itemlen,
length - itemlen, &subread);
+ if (mi->popup == NULL)
+ return NULL;
itemlen += subread;
}
@@ -424,56 +486,72 @@ bin_to_res_dialog (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length
rc_uint_type signature;
rc_dialog *d;
rc_uint_type c, sublen, i;
+ int ilen;
rc_uint_type off;
rc_dialog_control **pp;
rc_res_resource *r;
if (length < 18)
- toosmall (_("dialog header"));
+ {
+ toosmall (_("dialog header"));
+ return NULL;
+ }
- d = (rc_dialog *) res_alloc (sizeof (rc_dialog));
+ d = res_alloc (sizeof (rc_dialog));
- signature = windres_get_16 (wrbfd, data + 2, 2);
+ signature = windres_get_16 (wrbfd, data + 2);
if (signature != 0xffff)
{
d->ex = NULL;
- d->style = windres_get_32 (wrbfd, data, 4);
- d->exstyle = windres_get_32 (wrbfd, data + 4, 4);
+ d->style = windres_get_32 (wrbfd, data);
+ d->exstyle = windres_get_32 (wrbfd, data + 4);
off = 8;
}
else
{
int version;
- version = windres_get_16 (wrbfd, data, 2);
+ version = windres_get_16 (wrbfd, data);
if (version != 1)
- fatal (_("unexpected DIALOGEX version %d"), version);
+ {
+ non_fatal (_("unexpected DIALOGEX version %d"), version);
+ return NULL;
+ }
- d->ex = (rc_dialog_ex *) res_alloc (sizeof (rc_dialog_ex));
- d->ex->help = windres_get_32 (wrbfd, data + 4, 4);
- d->exstyle = windres_get_32 (wrbfd, data + 8, 4);
- d->style = windres_get_32 (wrbfd, data + 12, 4);
+ d->ex = res_alloc (sizeof (rc_dialog_ex));
+ d->ex->help = windres_get_32 (wrbfd, data + 4);
+ d->exstyle = windres_get_32 (wrbfd, data + 8);
+ d->style = windres_get_32 (wrbfd, data + 12);
off = 16;
}
if (length < off + 10)
- toosmall (_("dialog header"));
+ {
+ toosmall (_("dialog header"));
+ return NULL;
+ }
- c = windres_get_16 (wrbfd, data + off, 2);
- d->x = windres_get_16 (wrbfd, data + off + 2, 2);
- d->y = windres_get_16 (wrbfd, data + off + 4, 2);
- d->width = windres_get_16 (wrbfd, data + off + 6, 2);
- d->height = windres_get_16 (wrbfd, data + off + 8, 2);
+ c = windres_get_16 (wrbfd, data + off);
+ d->x = windres_get_16 (wrbfd, data + off + 2);
+ d->y = windres_get_16 (wrbfd, data + off + 4);
+ d->width = windres_get_16 (wrbfd, data + off + 6);
+ d->height = windres_get_16 (wrbfd, data + off + 8);
off += 10;
- sublen = get_resid (wrbfd, &d->menu, data + off, length - off);
- off += sublen;
+ ilen = get_resid (wrbfd, &d->menu, data + off, length - off);
+ if (ilen == -1)
+ return NULL;
+ off += ilen;
- sublen = get_resid (wrbfd, &d->class, data + off, length - off);
- off += sublen;
+ ilen = get_resid (wrbfd, &d->class, data + off, length - off);
+ if (ilen == -1)
+ return NULL;
+ off += ilen;
d->caption = get_unicode (wrbfd, data + off, length - off, &sublen);
+ if (d->caption == NULL)
+ return NULL;
off += sublen * 2 + 2;
if (sublen == 0)
d->caption = NULL;
@@ -492,22 +570,30 @@ bin_to_res_dialog (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length
else
{
if (length < off + 2)
- toosmall (_("dialog font point size"));
+ {
+ toosmall (_("dialog font point size"));
+ return NULL;
+ }
- d->pointsize = windres_get_16 (wrbfd, data + off, 2);
+ d->pointsize = windres_get_16 (wrbfd, data + off);
off += 2;
if (d->ex != NULL)
{
if (length < off + 4)
- toosmall (_("dialogex font information"));
- d->ex->weight = windres_get_16 (wrbfd, data + off, 2);
- d->ex->italic = windres_get_8 (wrbfd, data + off + 2, 1);
- d->ex->charset = windres_get_8 (wrbfd, data + off + 3, 1);
+ {
+ toosmall (_("dialogex font information"));
+ return NULL;
+ }
+ d->ex->weight = windres_get_16 (wrbfd, data + off);
+ d->ex->italic = windres_get_8 (wrbfd, data + off + 2);
+ d->ex->charset = windres_get_8 (wrbfd, data + off + 3);
off += 4;
}
d->font = get_unicode (wrbfd, data + off, length - off, &sublen);
+ if (d->font == NULL)
+ return NULL;
off += sublen * 2 + 2;
}
@@ -521,53 +607,69 @@ bin_to_res_dialog (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length
off = (off + 3) &~ 3;
- dc = (rc_dialog_control *) res_alloc (sizeof (rc_dialog_control));
+ dc = res_alloc (sizeof (rc_dialog_control));
if (d->ex == NULL)
{
if (length < off + 8)
- toosmall (_("dialog control"));
+ {
+ toosmall (_("dialog control"));
+ return NULL;
+ }
- dc->style = windres_get_32 (wrbfd, data + off, 4);
- dc->exstyle = windres_get_32 (wrbfd, data + off + 4, 4);
+ dc->style = windres_get_32 (wrbfd, data + off);
+ dc->exstyle = windres_get_32 (wrbfd, data + off + 4);
dc->help = 0;
off += 8;
}
else
{
if (length < off + 12)
- toosmall (_("dialogex control"));
- dc->help = windres_get_32 (wrbfd, data + off, 4);
- dc->exstyle = windres_get_32 (wrbfd, data + off + 4, 4);
- dc->style = windres_get_32 (wrbfd, data + off + 8, 4);
+ {
+ toosmall (_("dialogex control"));
+ return NULL;
+ }
+ dc->help = windres_get_32 (wrbfd, data + off);
+ dc->exstyle = windres_get_32 (wrbfd, data + off + 4);
+ dc->style = windres_get_32 (wrbfd, data + off + 8);
off += 12;
}
if (length < off + (d->ex != NULL ? 2 : 0) + 10)
- toosmall (_("dialog control"));
+ {
+ toosmall (_("dialog control"));
+ return NULL;
+ }
- dc->x = windres_get_16 (wrbfd, data + off, 2);
- dc->y = windres_get_16 (wrbfd, data + off + 2, 2);
- dc->width = windres_get_16 (wrbfd, data + off + 4, 2);
- dc->height = windres_get_16 (wrbfd, data + off + 6, 2);
+ dc->x = windres_get_16 (wrbfd, data + off);
+ dc->y = windres_get_16 (wrbfd, data + off + 2);
+ dc->width = windres_get_16 (wrbfd, data + off + 4);
+ dc->height = windres_get_16 (wrbfd, data + off + 6);
if (d->ex != NULL)
- dc->id = windres_get_32 (wrbfd, data + off + 8, 4);
+ dc->id = windres_get_32 (wrbfd, data + off + 8);
else
- dc->id = windres_get_16 (wrbfd, data + off + 8, 2);
+ dc->id = windres_get_16 (wrbfd, data + off + 8);
off += 10 + (d->ex != NULL ? 2 : 0);
- sublen = get_resid (wrbfd, &dc->class, data + off, length - off);
- off += sublen;
+ ilen = get_resid (wrbfd, &dc->class, data + off, length - off);
+ if (ilen == -1)
+ return NULL;
+ off += ilen;
- sublen = get_resid (wrbfd, &dc->text, data + off, length - off);
- off += sublen;
+ ilen = get_resid (wrbfd, &dc->text, data + off, length - off);
+ if (ilen == -1)
+ return NULL;
+ off += ilen;
if (length < off + 2)
- toosmall (_("dialog control end"));
+ {
+ toosmall (_("dialog control end"));
+ return NULL;
+ }
- datalen = windres_get_16 (wrbfd, data + off, 2);
+ datalen = windres_get_16 (wrbfd, data + off);
off += 2;
if (datalen == 0)
@@ -575,10 +677,12 @@ bin_to_res_dialog (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length
else
{
if (length < off + datalen)
- toosmall (_("dialog control data"));
+ {
+ toosmall (_("dialog control data"));
+ return NULL;
+ }
- dc->data = ((rc_rcdata_item *)
- res_alloc (sizeof (rc_rcdata_item)));
+ dc->data = res_alloc (sizeof (rc_rcdata_item));
dc->data->next = NULL;
dc->data->type = RCDATA_BUFFER;
dc->data->u.buffer.length = datalen;
@@ -592,7 +696,7 @@ bin_to_res_dialog (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length
pp = &dc->next;
}
- r = (rc_res_resource *) res_alloc (sizeof *r);
+ r = res_alloc (sizeof *r);
r->type = RES_TYPE_DIALOG;
r->u.dialog = d;
@@ -608,15 +712,18 @@ bin_to_res_string (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length
int i;
rc_res_resource *r;
- st = (rc_stringtable *) res_alloc (sizeof (rc_stringtable));
+ st = res_alloc (sizeof (rc_stringtable));
for (i = 0; i < 16; i++)
{
unsigned int slen;
if (length < 2)
- toosmall (_("stringtable string length"));
- slen = windres_get_16 (wrbfd, data, 2);
+ {
+ toosmall (_("stringtable string length"));
+ return NULL;
+ }
+ slen = windres_get_16 (wrbfd, data);
st->strings[i].length = slen;
if (slen > 0)
@@ -625,20 +732,23 @@ bin_to_res_string (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length
unsigned int j;
if (length < 2 + 2 * slen)
- toosmall (_("stringtable string"));
+ {
+ toosmall (_("stringtable string"));
+ return NULL;
+ }
- s = (unichar *) res_alloc (slen * sizeof (unichar));
+ s = res_alloc (slen * sizeof (unichar));
st->strings[i].string = s;
for (j = 0; j < slen; j++)
- s[j] = windres_get_16 (wrbfd, data + 2 + j * 2, 2);
+ s[j] = windres_get_16 (wrbfd, data + 2 + j * 2);
}
data += 2 + 2 * slen;
length -= 2 + 2 * slen;
}
- r = (rc_res_resource *) res_alloc (sizeof *r);
+ r = res_alloc (sizeof *r);
r->type = RES_TYPE_STRINGTABLE;
r->u.stringtable = st;
@@ -648,16 +758,20 @@ bin_to_res_string (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length
/* Convert a fontdir resource from binary. */
static rc_res_resource *
-bin_to_res_fontdir (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length)
+bin_to_res_fontdir (windres_bfd *wrbfd, const bfd_byte *data,
+ rc_uint_type length)
{
rc_uint_type c, i;
rc_fontdir *first, **pp;
rc_res_resource *r;
if (length < 2)
- toosmall (_("fontdir header"));
+ {
+ toosmall (_("fontdir header"));
+ return NULL;
+ }
- c = windres_get_16 (wrbfd, data, 2);
+ c = windres_get_16 (wrbfd, data);
first = NULL;
pp = &first;
@@ -669,11 +783,14 @@ bin_to_res_fontdir (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type lengt
unsigned int off;
if (length < 56)
- toosmall (_("fontdir"));
+ {
+ toosmall (_("fontdir"));
+ return NULL;
+ }
bfi = (const struct bin_fontdir_item *) data;
- fd = (rc_fontdir *) res_alloc (sizeof *fd);
- fd->index = windres_get_16 (wrbfd, bfi->index, 2);
+ fd = res_alloc (sizeof *fd);
+ fd->index = windres_get_16 (wrbfd, bfi->index);
/* To work out the length of the fontdir data, we must get the
length of the device name and face name strings, even though
@@ -686,13 +803,19 @@ bin_to_res_fontdir (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type lengt
while (off < length && data[off] != '\0')
++off;
if (off >= length)
- toosmall (_("fontdir device name"));
+ {
+ toosmall (_("fontdir device name"));
+ return NULL;
+ }
++off;
while (off < length && data[off] != '\0')
++off;
if (off >= length)
- toosmall (_("fontdir face name"));
+ {
+ toosmall (_("fontdir face name"));
+ return NULL;
+ }
++off;
fd->length = off;
@@ -709,7 +832,7 @@ bin_to_res_fontdir (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type lengt
length -= off;
}
- r = (rc_res_resource *) res_alloc (sizeof *r);
+ r = res_alloc (sizeof *r);
r->type = RES_TYPE_FONTDIR;
r->u.fontdir = first;
@@ -719,7 +842,8 @@ bin_to_res_fontdir (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type lengt
/* Convert an accelerators resource from binary. */
static rc_res_resource *
-bin_to_res_accelerators (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length)
+bin_to_res_accelerators (windres_bfd *wrbfd, const bfd_byte *data,
+ rc_uint_type length)
{
rc_accelerator *first, **pp;
rc_res_resource *r;
@@ -732,13 +856,16 @@ bin_to_res_accelerators (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type
rc_accelerator *a;
if (length < 8)
- toosmall (_("accelerator"));
+ {
+ toosmall (_("accelerator"));
+ return NULL;
+ }
- a = (rc_accelerator *) res_alloc (sizeof (rc_accelerator));
+ a = res_alloc (sizeof (rc_accelerator));
- a->flags = windres_get_16 (wrbfd, data, 2);
- a->key = windres_get_16 (wrbfd, data + 2, 2);
- a->id = windres_get_16 (wrbfd, data + 4, 2);
+ a->flags = windres_get_16 (wrbfd, data);
+ a->key = windres_get_16 (wrbfd, data + 2);
+ a->id = windres_get_16 (wrbfd, data + 4);
a->next = NULL;
*pp = a;
@@ -751,7 +878,7 @@ bin_to_res_accelerators (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type
length -= 8;
}
- r = (rc_res_resource *) res_alloc (sizeof (rc_res_resource));
+ r = res_alloc (sizeof (rc_res_resource));
r->type = RES_TYPE_ACCELERATOR;
r->u.acc = first;
@@ -767,14 +894,14 @@ bin_to_res_rcdata (windres_bfd *wrbfd ATTRIBUTE_UNUSED, const bfd_byte *data,
rc_rcdata_item *ri;
rc_res_resource *r;
- ri = (rc_rcdata_item *) res_alloc (sizeof (rc_rcdata_item));
+ ri = res_alloc (sizeof (rc_rcdata_item));
ri->next = NULL;
ri->type = RCDATA_BUFFER;
ri->u.buffer.length = length;
ri->u.buffer.data = data;
- r = (rc_res_resource *) res_alloc (sizeof *r);
+ r = res_alloc (sizeof *r);
r->type = rctyp;
r->u.rcdata = ri;
@@ -784,20 +911,27 @@ bin_to_res_rcdata (windres_bfd *wrbfd ATTRIBUTE_UNUSED, const bfd_byte *data,
/* Convert a group cursor resource from binary. */
static rc_res_resource *
-bin_to_res_group_cursor (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length)
+bin_to_res_group_cursor (windres_bfd *wrbfd, const bfd_byte *data,
+ rc_uint_type length)
{
int type, c, i;
rc_group_cursor *first, **pp;
rc_res_resource *r;
if (length < 6)
- toosmall (_("group cursor header"));
+ {
+ toosmall (_("group cursor header"));
+ return NULL;
+ }
- type = windres_get_16 (wrbfd, data + 2, 2);
+ type = windres_get_16 (wrbfd, data + 2);
if (type != 2)
- fatal (_("unexpected group cursor type %d"), type);
+ {
+ non_fatal (_("unexpected group cursor type %d"), type);
+ return NULL;
+ }
- c = windres_get_16 (wrbfd, data + 4, 2);
+ c = windres_get_16 (wrbfd, data + 4);
data += 6;
length -= 6;
@@ -810,16 +944,19 @@ bin_to_res_group_cursor (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type
rc_group_cursor *gc;
if (length < 14)
- toosmall (_("group cursor"));
+ {
+ toosmall (_("group cursor"));
+ return NULL;
+ }
- gc = (rc_group_cursor *) res_alloc (sizeof *gc);
+ gc = res_alloc (sizeof *gc);
- gc->width = windres_get_16 (wrbfd, data, 2);
- gc->height = windres_get_16 (wrbfd, data + 2, 2);
- gc->planes = windres_get_16 (wrbfd, data + 4, 2);
- gc->bits = windres_get_16 (wrbfd, data + 6, 2);
- gc->bytes = windres_get_32 (wrbfd, data + 8, 4);
- gc->index = windres_get_16 (wrbfd, data + 12, 2);
+ gc->width = windres_get_16 (wrbfd, data);
+ gc->height = windres_get_16 (wrbfd, data + 2);
+ gc->planes = windres_get_16 (wrbfd, data + 4);
+ gc->bits = windres_get_16 (wrbfd, data + 6);
+ gc->bytes = windres_get_32 (wrbfd, data + 8);
+ gc->index = windres_get_16 (wrbfd, data + 12);
gc->next = NULL;
*pp = gc;
@@ -829,7 +966,7 @@ bin_to_res_group_cursor (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type
length -= 14;
}
- r = (rc_res_resource *) res_alloc (sizeof (rc_res_resource));
+ r = res_alloc (sizeof (rc_res_resource));
r->type = RES_TYPE_GROUP_CURSOR;
r->u.group_cursor = first;
@@ -839,20 +976,27 @@ bin_to_res_group_cursor (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type
/* Convert a group icon resource from binary. */
static rc_res_resource *
-bin_to_res_group_icon (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length)
+bin_to_res_group_icon (windres_bfd *wrbfd, const bfd_byte *data,
+ rc_uint_type length)
{
int type, c, i;
rc_group_icon *first, **pp;
rc_res_resource *r;
if (length < 6)
- toosmall (_("group icon header"));
+ {
+ toosmall (_("group icon header"));
+ return NULL;
+ }
- type = windres_get_16 (wrbfd, data + 2, 2);
+ type = windres_get_16 (wrbfd, data + 2);
if (type != 1)
- fatal (_("unexpected group icon type %d"), type);
+ {
+ non_fatal (_("unexpected group icon type %d"), type);
+ return NULL;
+ }
- c = windres_get_16 (wrbfd, data + 4, 2);
+ c = windres_get_16 (wrbfd, data + 4);
data += 6;
length -= 6;
@@ -865,17 +1009,20 @@ bin_to_res_group_icon (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type le
rc_group_icon *gi;
if (length < 14)
- toosmall (_("group icon"));
+ {
+ toosmall (_("group icon"));
+ return NULL;
+ }
- gi = (rc_group_icon *) res_alloc (sizeof (rc_group_icon));
+ gi = res_alloc (sizeof (rc_group_icon));
- gi->width = windres_get_8 (wrbfd, data, 1);
- gi->height = windres_get_8 (wrbfd, data + 1, 1);
- gi->colors = windres_get_8 (wrbfd, data + 2, 1);
- gi->planes = windres_get_16 (wrbfd, data + 4, 2);
- gi->bits = windres_get_16 (wrbfd, data + 6, 2);
- gi->bytes = windres_get_32 (wrbfd, data + 8, 4);
- gi->index = windres_get_16 (wrbfd, data + 12, 2);
+ gi->width = windres_get_8 (wrbfd, data);
+ gi->height = windres_get_8 (wrbfd, data + 1);
+ gi->colors = windres_get_8 (wrbfd, data + 2);
+ gi->planes = windres_get_16 (wrbfd, data + 4);
+ gi->bits = windres_get_16 (wrbfd, data + 6);
+ gi->bytes = windres_get_32 (wrbfd, data + 8);
+ gi->index = windres_get_16 (wrbfd, data + 12);
gi->next = NULL;
*pp = gi;
@@ -885,7 +1032,7 @@ bin_to_res_group_icon (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type le
length -= 14;
}
- r = (rc_res_resource *) res_alloc (sizeof *r);
+ r = res_alloc (sizeof *r);
r->type = RES_TYPE_GROUP_ICON;
r->u.group_icon = first;
@@ -897,18 +1044,21 @@ bin_to_res_group_icon (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type le
sets *LEN to the total length, *VALLEN to the value length, *TYPE
to the type, and *OFF to the offset to the children. */
-static void
-get_version_header (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length,
- const char *key, unichar **pkey,
+static bool
+get_version_header (windres_bfd *wrbfd, const bfd_byte *data,
+ rc_uint_type length, const char *key, unichar **pkey,
rc_uint_type *len, rc_uint_type *vallen, rc_uint_type *type,
rc_uint_type *off)
{
if (length < 8)
- toosmall (key);
+ {
+ toosmall (key);
+ return false;
+ }
- *len = (windres_get_16 (wrbfd, data, 2) + 3) & ~3;
- *vallen = windres_get_16 (wrbfd, data + 2, 2);
- *type = windres_get_16 (wrbfd, data + 4, 2);
+ *len = (windres_get_16 (wrbfd, data) + 3) & ~3;
+ *vallen = windres_get_16 (wrbfd, data + 2);
+ *type = windres_get_16 (wrbfd, data + 4);
*off = 6;
@@ -920,6 +1070,8 @@ get_version_header (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type lengt
rc_uint_type sublen;
*pkey = get_unicode (wrbfd, data, length, &sublen);
+ if (*pkey == NULL)
+ return false;
*off += (sublen + 1) * sizeof (unichar);
}
else
@@ -927,9 +1079,15 @@ get_version_header (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type lengt
while (1)
{
if (length < 2)
- toosmall (key);
- if (windres_get_16 (wrbfd, data, 2) != (bfd_byte) *key)
- fatal (_("unexpected version string"));
+ {
+ toosmall (key);
+ return false;
+ }
+ if (windres_get_16 (wrbfd, data) != (bfd_byte) *key)
+ {
+ non_fatal (_("unexpected version string"));
+ return false;
+ }
*off += 2;
length -= 2;
@@ -943,12 +1101,14 @@ get_version_header (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type lengt
}
*off = (*off + 3) &~ 3;
+ return true;
}
/* Convert a version resource from binary. */
static rc_res_resource *
-bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type length)
+bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data,
+ rc_uint_type length)
{
rc_uint_type verlen, vallen, type, off;
rc_fixed_versioninfo *fi;
@@ -956,18 +1116,26 @@ bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type lengt
rc_versioninfo *v;
rc_res_resource *r;
- get_version_header (wrbfd, data, length, "VS_VERSION_INFO",
- (unichar **) NULL, &verlen, &vallen, &type, &off);
+ if (!get_version_header (wrbfd, data, length, "VS_VERSION_INFO",
+ (unichar **) NULL, &verlen, &vallen, &type, &off))
+ return NULL;
/* PR 17512: The verlen field does not include padding length. */
if (verlen > length)
- fatal (_("version length %lu greater than resource length %lu"),
- (unsigned long) verlen, (unsigned long) length);
+ {
+ non_fatal (_("version length %lu greater than resource length %lu"),
+ (unsigned long) verlen, (unsigned long) length);
+ return NULL;
+ }
if (type != 0)
- fatal (_("unexpected version type %d"), (int) type);
+ {
+ non_fatal (_("unexpected version type %d"), (int) type);
+ return NULL;
+ }
- /* PR 27686: Ignore any padding bytes after the end of the version structure. */
+ /* PR 27686: Ignore any padding bytes after the end of the version
+ structure. */
length = verlen;
data += off;
@@ -980,32 +1148,45 @@ bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type lengt
unsigned long signature, fiv;
if (vallen != 52)
- fatal (_("unexpected fixed version information length %ld"), (long) vallen);
+ {
+ non_fatal (_("unexpected fixed version information length %ld"),
+ (long) vallen);
+ return NULL;
+ }
if (length < 52)
- toosmall (_("fixed version info"));
+ {
+ toosmall (_("fixed version info"));
+ return NULL;
+ }
- signature = windres_get_32 (wrbfd, data, 4);
+ signature = windres_get_32 (wrbfd, data);
if (signature != 0xfeef04bd)
- fatal (_("unexpected fixed version signature %lu"), signature);
+ {
+ non_fatal (_("unexpected fixed version signature %lu"), signature);
+ return NULL;
+ }
- fiv = windres_get_32 (wrbfd, data + 4, 4);
+ fiv = windres_get_32 (wrbfd, data + 4);
if (fiv != 0 && fiv != 0x10000)
- fatal (_("unexpected fixed version info version %lu"), fiv);
-
- fi = (rc_fixed_versioninfo *) res_alloc (sizeof (rc_fixed_versioninfo));
-
- fi->file_version_ms = windres_get_32 (wrbfd, data + 8, 4);
- fi->file_version_ls = windres_get_32 (wrbfd, data + 12, 4);
- fi->product_version_ms = windres_get_32 (wrbfd, data + 16, 4);
- fi->product_version_ls = windres_get_32 (wrbfd, data + 20, 4);
- fi->file_flags_mask = windres_get_32 (wrbfd, data + 24, 4);
- fi->file_flags = windres_get_32 (wrbfd, data + 28, 4);
- fi->file_os = windres_get_32 (wrbfd, data + 32, 4);
- fi->file_type = windres_get_32 (wrbfd, data + 36, 4);
- fi->file_subtype = windres_get_32 (wrbfd, data + 40, 4);
- fi->file_date_ms = windres_get_32 (wrbfd, data + 44, 4);
- fi->file_date_ls = windres_get_32 (wrbfd, data + 48, 4);
+ {
+ non_fatal (_("unexpected fixed version info version %lu"), fiv);
+ return NULL;
+ }
+
+ fi = res_alloc (sizeof (rc_fixed_versioninfo));
+
+ fi->file_version_ms = windres_get_32 (wrbfd, data + 8);
+ fi->file_version_ls = windres_get_32 (wrbfd, data + 12);
+ fi->product_version_ms = windres_get_32 (wrbfd, data + 16);
+ fi->product_version_ls = windres_get_32 (wrbfd, data + 20);
+ fi->file_flags_mask = windres_get_32 (wrbfd, data + 24);
+ fi->file_flags = windres_get_32 (wrbfd, data + 28);
+ fi->file_os = windres_get_32 (wrbfd, data + 32);
+ fi->file_type = windres_get_32 (wrbfd, data + 36);
+ fi->file_subtype = windres_get_32 (wrbfd, data + 40);
+ fi->file_date_ms = windres_get_32 (wrbfd, data + 44);
+ fi->file_date_ls = windres_get_32 (wrbfd, data + 48);
data += 52;
length -= 52;
@@ -1020,11 +1201,14 @@ bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type lengt
int ch;
if (length < 8)
- toosmall (_("version var info"));
+ {
+ toosmall (_("version var info"));
+ return NULL;
+ }
- vi = (rc_ver_info *) res_alloc (sizeof (rc_ver_info));
+ vi = res_alloc (sizeof (rc_ver_info));
- ch = windres_get_16 (wrbfd, data + 6, 2);
+ ch = windres_get_16 (wrbfd, data + 6);
if (ch == 'S')
{
@@ -1032,12 +1216,17 @@ bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type lengt
vi->type = VERINFO_STRING;
- get_version_header (wrbfd, data, length, "StringFileInfo",
- (unichar **) NULL, &verlen, &vallen, &type,
- &off);
+ if (!get_version_header (wrbfd, data, length, "StringFileInfo",
+ (unichar **) NULL, &verlen, &vallen, &type,
+ &off))
+ return NULL;
if (vallen != 0)
- fatal (_("unexpected stringfileinfo value length %ld"), (long) vallen);
+ {
+ non_fatal (_("unexpected stringfileinfo value length %ld"),
+ (long) vallen);
+ return NULL;
+ }
data += off;
length -= off;
@@ -1054,66 +1243,88 @@ bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type lengt
rc_ver_stringinfo **ppvs;
if (length < 8)
- toosmall (_("version stringtable"));
+ {
+ toosmall (_("version stringtable"));
+ return NULL;
+ }
- vst = (rc_ver_stringtable *) res_alloc (sizeof (rc_ver_stringtable));
+ vst = res_alloc (sizeof (rc_ver_stringtable));
- get_version_header (wrbfd, data, length, (const char *) NULL,
- &vst->language, &stverlen, &vallen, &type, &off);
+ if (!get_version_header (wrbfd, data, length, "version stringtable",
+ &vst->language, &stverlen, &vallen,
+ &type, &off))
+ return NULL;
if (vallen != 0)
- fatal (_("unexpected version stringtable value length %ld"), (long) vallen);
+ {
+ non_fatal (_("unexpected version stringtable value length %ld"),
+ (long) vallen);
+ return NULL;
+ }
data += off;
length -= off;
verlen -= off;
- stverlen -= off;
-
- vst->strings = NULL;
- ppvs = &vst->strings;
-
- while (stverlen > 0)
- {
- rc_ver_stringinfo *vs;
- rc_uint_type sverlen, vslen, valoff;
-
- if (length < 8)
- toosmall (_("version string"));
-
- vs = (rc_ver_stringinfo *) res_alloc (sizeof (rc_ver_stringinfo));
-
- get_version_header (wrbfd, data, length, (const char *) NULL,
- &vs->key, &sverlen, &vallen, &type, &off);
-
- data += off;
- length -= off;
-
- vs->value = get_unicode (wrbfd, data, length, &vslen);
- valoff = vslen * 2 + 2;
- valoff = (valoff + 3) & ~3;
-
- if (off + valoff != sverlen)
- fatal (_("unexpected version string length %ld != %ld + %ld"),
- (long) sverlen, (long) off, (long) valoff);
-
- data += valoff;
- length -= valoff;
-
- if (stverlen < sverlen)
- fatal (_("unexpected version string length %ld < %ld"),
- (long) verlen, (long) sverlen);
- stverlen -= sverlen;
- verlen -= sverlen;
-
- vs->next = NULL;
- *ppvs = vs;
- ppvs = &vs->next;
- }
-
- vst->next = NULL;
- *ppvst = vst;
- ppvst = &vst->next;
+ stverlen -= off;
+
+ vst->strings = NULL;
+ ppvs = &vst->strings;
+
+ while (stverlen > 0)
+ {
+ rc_ver_stringinfo *vs;
+ rc_uint_type sverlen, vslen, valoff;
+
+ if (length < 8)
+ {
+ toosmall (_("version string"));
+ return NULL;
+ }
+
+ vs = res_alloc (sizeof (rc_ver_stringinfo));
+
+ if (!get_version_header (wrbfd, data, length, "version string",
+ &vs->key, &sverlen, &vallen,
+ &type, &off))
+ return NULL;
+
+ data += off;
+ length -= off;
+
+ vs->value = get_unicode (wrbfd, data, length, &vslen);
+ if (vs->value == NULL)
+ return NULL;
+ valoff = vslen * 2 + 2;
+ valoff = (valoff + 3) & ~3;
+
+ if (off + valoff != sverlen)
+ {
+ non_fatal (_("unexpected version string length %ld != %ld + %ld"),
+ (long) sverlen, (long) off, (long) valoff);
+ return NULL;
+ }
+
+ data += valoff;
+ length -= valoff;
+
+ if (stverlen < sverlen)
+ {
+ non_fatal (_("unexpected version string length %ld < %ld"),
+ (long) verlen, (long) sverlen);
+ return NULL;
+ }
+ stverlen -= sverlen;
+ verlen -= sverlen;
+
+ vs->next = NULL;
+ *ppvs = vs;
+ ppvs = &vs->next;
+ }
+
+ vst->next = NULL;
+ *ppvst = vst;
+ ppvst = &vst->next;
}
}
else if (ch == 'V')
@@ -1122,18 +1333,25 @@ bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type lengt
vi->type = VERINFO_VAR;
- get_version_header (wrbfd, data, length, "VarFileInfo",
- (unichar **) NULL, &verlen, &vallen, &type,
- &off);
+ if (!get_version_header (wrbfd, data, length, "VarFileInfo",
+ (unichar **) NULL, &verlen, &vallen,
+ &type, &off))
+ return NULL;
if (vallen != 0)
- fatal (_("unexpected varfileinfo value length %ld"), (long) vallen);
+ {
+ non_fatal (_("unexpected varfileinfo value length %ld"),
+ (long) vallen);
+ return NULL;
+ }
data += off;
length -= off;
- get_version_header (wrbfd, data, length, (const char *) NULL,
- &vi->u.var.key, &verlen, &vallen, &type, &off);
+ if (!get_version_header (wrbfd, data, length, "version varfileinfo",
+ &vi->u.var.key, &verlen, &vallen,
+ &type, &off))
+ return NULL;
data += off;
length -= off;
@@ -1146,12 +1364,15 @@ bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type lengt
rc_ver_varinfo *vv;
if (length < 4)
- toosmall (_("version varfileinfo"));
+ {
+ toosmall (_("version varfileinfo"));
+ return NULL;
+ }
- vv = (rc_ver_varinfo *) res_alloc (sizeof (rc_ver_varinfo));
+ vv = res_alloc (sizeof (rc_ver_varinfo));
- vv->language = windres_get_16 (wrbfd, data, 2);
- vv->charset = windres_get_16 (wrbfd, data + 2, 2);
+ vv->language = windres_get_16 (wrbfd, data);
+ vv->charset = windres_get_16 (wrbfd, data + 2);
vv->next = NULL;
*ppvv = vv;
@@ -1161,7 +1382,11 @@ bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type lengt
length -= 4;
if (vallen < 4)
- fatal (_("unexpected version value length %ld"), (long) vallen);
+ {
+ non_fatal (_("unexpected version value length %ld"),
+ (long) vallen);
+ return NULL;
+ }
vallen -= 4;
}
@@ -1171,21 +1396,25 @@ bin_to_res_version (windres_bfd *wrbfd, const bfd_byte *data, rc_uint_type lengt
if (length == 8)
/* Padding - skip. */
break;
- fatal (_("nul bytes found in version string"));
+ non_fatal (_("nul bytes found in version string"));
+ return NULL;
}
else
- fatal (_("unexpected version string character: %x"), ch);
+ {
+ non_fatal (_("unexpected version string character: %x"), ch);
+ return NULL;
+ }
vi->next = NULL;
*pp = vi;
pp = &vi->next;
}
- v = (rc_versioninfo *) res_alloc (sizeof (rc_versioninfo));
+ v = res_alloc (sizeof (rc_versioninfo));
v->fixed = fi;
v->var = first;
- r = (rc_res_resource *) res_alloc (sizeof *r);
+ r = res_alloc (sizeof *r);
r->type = RES_TYPE_VERSIONINFO;
r->u.versioninfo = v;
@@ -1201,14 +1430,14 @@ bin_to_res_userdata (windres_bfd *wrbfd ATTRIBUTE_UNUSED, const bfd_byte *data,
rc_rcdata_item *ri;
rc_res_resource *r;
- ri = (rc_rcdata_item *) res_alloc (sizeof (rc_rcdata_item));
+ ri = res_alloc (sizeof (rc_rcdata_item));
ri->next = NULL;
ri->type = RCDATA_BUFFER;
ri->u.buffer.length = length;
ri->u.buffer.data = data;
- r = (rc_res_resource *) res_alloc (sizeof *r);
+ r = res_alloc (sizeof *r);
r->type = RES_TYPE_USERDATA;
r->u.rcdata = ri;
@@ -1216,38 +1445,51 @@ bin_to_res_userdata (windres_bfd *wrbfd ATTRIBUTE_UNUSED, const bfd_byte *data,
}
static rc_res_resource *
-bin_to_res_toolbar (windres_bfd *wrbfd, const bfd_byte *data)
+bin_to_res_toolbar (windres_bfd *wrbfd, const bfd_byte *data,
+ rc_uint_type length)
{
rc_toolbar *ri;
rc_res_resource *r;
rc_uint_type i;
- ri = (rc_toolbar *) res_alloc (sizeof (rc_toolbar));
- ri->button_width = windres_get_32 (wrbfd, data, 4);
- ri->button_height = windres_get_32 (wrbfd, data + 4, 4);
- ri->nitems = windres_get_32 (wrbfd, data + 8, 4);
+ if (length < 12)
+ {
+ toosmall (_("toolbar"));
+ return NULL;
+ }
+ ri = res_alloc (sizeof (rc_toolbar));
+ ri->button_width = windres_get_32 (wrbfd, data);
+ ri->button_height = windres_get_32 (wrbfd, data + 4);
+ ri->nitems = windres_get_32 (wrbfd, data + 8);
ri->items = NULL;
data += 12;
- for (i=0 ; i < ri->nitems; i++)
- {
- rc_toolbar_item *it;
- it = (rc_toolbar_item *) res_alloc (sizeof (rc_toolbar_item));
- it->id.named = 0;
- it->id.u.id = (int) windres_get_32 (wrbfd, data, 4);
- it->prev = it->next = NULL;
- data += 4;
- if(ri->items) {
- rc_toolbar_item *ii = ri->items;
- while (ii->next != NULL)
- ii = ii->next;
- it->prev = ii;
- ii->next = it;
- }
- else
- ri->items = it;
- }
- r = (rc_res_resource *) res_alloc (sizeof *r);
+ length -= 12;
+ for (i = 0; i < ri->nitems; i++)
+ {
+ rc_toolbar_item *it;
+ it = res_alloc (sizeof (rc_toolbar_item));
+ it->id.named = 0;
+ if (length < 4)
+ {
+ toosmall (_("toolbar item"));
+ return NULL;
+ }
+ it->id.u.id = (int) windres_get_32 (wrbfd, data);
+ it->prev = it->next = NULL;
+ data += 4;
+ length -= 4;
+ if(ri->items) {
+ rc_toolbar_item *ii = ri->items;
+ while (ii->next != NULL)
+ ii = ii->next;
+ it->prev = ii;
+ ii->next = it;
+ }
+ else
+ ri->items = it;
+ }
+ r = res_alloc (sizeof *r);
r->type = RES_TYPE_TOOLBAR;
r->u.toolbar = ri;
return r;
@@ -1286,7 +1528,8 @@ res_to_bin (windres_bfd *wrbfd, rc_uint_type off, const rc_res_resource *res)
case RES_TYPE_FONT:
case RES_TYPE_ICON:
case RES_TYPE_MESSAGETABLE:
- return res_to_bin_generic (wrbfd, off, res->u.data.length, res->u.data.data);
+ return res_to_bin_generic (wrbfd, off, res->u.data.length,
+ res->u.data.data);
case RES_TYPE_ACCELERATOR:
return res_to_bin_accelerator (wrbfd, off, res->u.acc);
case RES_TYPE_CURSOR:
@@ -1337,13 +1580,13 @@ resid_to_bin (windres_bfd *wrbfd, rc_uint_type off, rc_res_id id)
rc_uint_type len = (id.u.n.name ? unichar_len (id.u.n.name) : 0);
if (wrbfd)
{
- bfd_byte *d = (bfd_byte *) reswr_alloc ((len + 1) * sizeof (unichar));
+ bfd_byte *d = reswr_alloc ((len + 1) * sizeof (unichar));
rc_uint_type i;
for (i = 0; i < len; i++)
windres_put_16 (wrbfd, d + (i * sizeof (unichar)), id.u.n.name[i]);
windres_put_16 (wrbfd, d + (len * sizeof (unichar)), 0);
set_windres_bfd_content (wrbfd, d, off, (len + 1) * sizeof (unichar));
- }
+ }
off += (rc_uint_type) ((len + 1) * sizeof (unichar));
}
return off;
@@ -1364,7 +1607,7 @@ unicode_to_bin (windres_bfd *wrbfd, rc_uint_type off, const unichar *str)
{
bfd_byte *d;
rc_uint_type i;
- d = (bfd_byte *) reswr_alloc ( (len + 1) * sizeof (unichar));
+ d = reswr_alloc ((len + 1) * sizeof (unichar));
for (i = 0; i < len; i++)
windres_put_16 (wrbfd, d + (i * sizeof (unichar)), str[i]);
windres_put_16 (wrbfd, d + (len * sizeof (unichar)), 0);
@@ -1389,12 +1632,13 @@ res_to_bin_accelerator (windres_bfd *wrbfd, rc_uint_type off,
{
struct bin_accelerator ba;
- windres_put_16 (wrbfd, ba.flags, a->flags | (a->next != NULL ? 0 : ACC_LAST));
+ windres_put_16 (wrbfd, ba.flags,
+ a->flags | (a->next != NULL ? 0 : ACC_LAST));
windres_put_16 (wrbfd, ba.key, a->key);
windres_put_16 (wrbfd, ba.id, a->id);
windres_put_16 (wrbfd, ba.pad, 0);
set_windres_bfd_content (wrbfd, &ba, off, BIN_ACCELERATOR_SIZE);
- }
+ }
off += BIN_ACCELERATOR_SIZE;
}
return off;
@@ -1413,7 +1657,8 @@ res_to_bin_cursor (windres_bfd *wrbfd, rc_uint_type off, const rc_cursor *c)
windres_put_16 (wrbfd, bc.yhotspot, c->yhotspot);
set_windres_bfd_content (wrbfd, &bc, off, BIN_CURSOR_SIZE);
if (c->length)
- set_windres_bfd_content (wrbfd, c->data, off + BIN_CURSOR_SIZE, c->length);
+ set_windres_bfd_content (wrbfd, c->data, off + BIN_CURSOR_SIZE,
+ c->length);
}
off = (off + BIN_CURSOR_SIZE + (rc_uint_type) c->length);
return off;
@@ -1443,8 +1688,9 @@ res_to_bin_group_cursor (windres_bfd *wrbfd, rc_uint_type off,
windres_put_16 (wrbfd, bgci.bits, gc->bits);
windres_put_32 (wrbfd, bgci.bytes, gc->bytes);
windres_put_16 (wrbfd, bgci.index, gc->index);
- set_windres_bfd_content (wrbfd, &bgci, off, BIN_GROUP_CURSOR_ITEM_SIZE);
- }
+ set_windres_bfd_content (wrbfd, &bgci, off,
+ BIN_GROUP_CURSOR_ITEM_SIZE);
+ }
off += BIN_GROUP_CURSOR_ITEM_SIZE;
}
@@ -1477,17 +1723,17 @@ res_to_bin_dialog (windres_bfd *wrbfd, rc_uint_type off, const rc_dialog *dialog
if (wrbfd)
{
- if (! dialogex)
- {
+ if (! dialogex)
+ {
windres_put_32 (wrbfd, bd.style, dialog->style);
windres_put_32 (wrbfd, bd.exstyle, dialog->exstyle);
windres_put_16 (wrbfd, bd.x, dialog->x);
windres_put_16 (wrbfd, bd.y, dialog->y);
windres_put_16 (wrbfd, bd.width, dialog->width);
windres_put_16 (wrbfd, bd.height, dialog->height);
- }
- else
- {
+ }
+ else
+ {
windres_put_16 (wrbfd, bdx.sig1, 1);
windres_put_16 (wrbfd, bdx.sig2, 0xffff);
windres_put_32 (wrbfd, bdx.help, (dialog->ex ? dialog->ex->help : 0));
@@ -1520,9 +1766,12 @@ res_to_bin_dialog (windres_bfd *wrbfd, rc_uint_type off, const rc_dialog *dialog
{
struct bin_dialogexfont bdxf;
windres_put_16 (wrbfd, bdxf.pointsize, dialog->pointsize);
- windres_put_16 (wrbfd, bdxf.weight, (dialog->ex == NULL ? 0 : dialog->ex->weight));
- windres_put_8 (wrbfd, bdxf.italic, (dialog->ex == NULL ? 0 : dialog->ex->italic));
- windres_put_8 (wrbfd, bdxf.charset, (dialog->ex == NULL ? 1 : dialog->ex->charset));
+ windres_put_16 (wrbfd, bdxf.weight,
+ dialog->ex == NULL ? 0 : dialog->ex->weight);
+ windres_put_8 (wrbfd, bdxf.italic,
+ dialog->ex == NULL ? 0 : dialog->ex->italic);
+ windres_put_8 (wrbfd, bdxf.charset,
+ dialog->ex == NULL ? 1 : dialog->ex->charset);
set_windres_bfd_content (wrbfd, &bdxf, off, BIN_DIALOGEXFONT_SIZE);
}
}
@@ -1536,8 +1785,8 @@ res_to_bin_dialog (windres_bfd *wrbfd, rc_uint_type off, const rc_dialog *dialog
off += (4 - ((off - off_delta) & 3)) & 3;
if (wrbfd)
{
- if (! dialogex)
- {
+ if (! dialogex)
+ {
struct bin_dialog_control bdc;
windres_put_32 (wrbfd, bdc.style, dc->style);
@@ -1547,10 +1796,11 @@ res_to_bin_dialog (windres_bfd *wrbfd, rc_uint_type off, const rc_dialog *dialog
windres_put_16 (wrbfd, bdc.width, dc->width);
windres_put_16 (wrbfd, bdc.height, dc->height);
windres_put_16 (wrbfd, bdc.id, dc->id);
- set_windres_bfd_content (wrbfd, &bdc, off, BIN_DIALOG_CONTROL_SIZE);
- }
- else
- {
+ set_windres_bfd_content (wrbfd, &bdc, off,
+ BIN_DIALOG_CONTROL_SIZE);
+ }
+ else
+ {
struct bin_dialogex_control bdc;
windres_put_32 (wrbfd, bdc.help, dc->help);
@@ -1561,11 +1811,11 @@ res_to_bin_dialog (windres_bfd *wrbfd, rc_uint_type off, const rc_dialog *dialog
windres_put_16 (wrbfd, bdc.width, dc->width);
windres_put_16 (wrbfd, bdc.height, dc->height);
windres_put_32 (wrbfd, bdc.id, dc->id);
- set_windres_bfd_content (wrbfd, &bdc, off, BIN_DIALOGEX_CONTROL_SIZE);
+ set_windres_bfd_content (wrbfd, &bdc, off,
+ BIN_DIALOGEX_CONTROL_SIZE);
}
}
- off += (dialogex != 0 ? BIN_DIALOGEX_CONTROL_SIZE : BIN_DIALOG_CONTROL_SIZE);
-
+ off += dialogex != 0 ? BIN_DIALOGEX_CONTROL_SIZE : BIN_DIALOG_CONTROL_SIZE;
off = resid_to_bin (wrbfd, off, dc->class);
off = resid_to_bin (wrbfd, off, dc->text);
@@ -1607,7 +1857,8 @@ res_to_bin_dialog (windres_bfd *wrbfd, rc_uint_type off, const rc_dialog *dialog
/* Convert a fontdir resource to binary. */
static rc_uint_type
-res_to_bin_fontdir (windres_bfd *wrbfd, rc_uint_type off, const rc_fontdir *fontdirs)
+res_to_bin_fontdir (windres_bfd *wrbfd, rc_uint_type off,
+ const rc_fontdir *fontdirs)
{
rc_uint_type start;
int c;
@@ -1641,7 +1892,8 @@ res_to_bin_fontdir (windres_bfd *wrbfd, rc_uint_type off, const rc_fontdir *font
/* Convert a group icon resource to binary. */
static rc_uint_type
-res_to_bin_group_icon (windres_bfd *wrbfd, rc_uint_type off, const rc_group_icon *group_icons)
+res_to_bin_group_icon (windres_bfd *wrbfd, rc_uint_type off,
+ const rc_group_icon *group_icons)
{
rc_uint_type start;
struct bin_group_icon bgi;
@@ -1691,21 +1943,21 @@ res_to_bin_menu (windres_bfd *wrbfd, rc_uint_type off, const rc_menu *menu)
if (wrbfd)
{
- if (! menuex)
- {
+ if (! menuex)
+ {
struct bin_menu bm;
windres_put_16 (wrbfd, bm.sig1, 0);
windres_put_16 (wrbfd, bm.sig2, 0);
set_windres_bfd_content (wrbfd, &bm, off, BIN_MENU_SIZE);
- }
- else
- {
+ }
+ else
+ {
struct bin_menuex bm;
windres_put_16 (wrbfd, bm.sig1, 1);
windres_put_16 (wrbfd, bm.sig2, 4);
windres_put_32 (wrbfd, bm.help, menu->help);
set_windres_bfd_content (wrbfd, &bm, off, BIN_MENUEX_SIZE);
- }
+ }
}
off += (menuex != 0 ? BIN_MENUEX_SIZE : BIN_MENU_SIZE);
if (! menuex)
@@ -1722,7 +1974,8 @@ res_to_bin_menu (windres_bfd *wrbfd, rc_uint_type off, const rc_menu *menu)
/* Convert menu items to binary. */
static rc_uint_type
-res_to_bin_menuitems (windres_bfd *wrbfd, rc_uint_type off, const rc_menuitem *items)
+res_to_bin_menuitems (windres_bfd *wrbfd, rc_uint_type off,
+ const rc_menuitem *items)
{
const rc_menuitem *mi;
@@ -1740,11 +1993,12 @@ res_to_bin_menuitems (windres_bfd *wrbfd, rc_uint_type off, const rc_menuitem *i
if (wrbfd)
{
windres_put_16 (wrbfd, bmi.flags, flags);
- if (mi->popup == NULL)
+ if (mi->popup == NULL)
windres_put_16 (wrbfd, bmi.id, mi->id);
set_windres_bfd_content (wrbfd, &bmi, off,
- mi->popup == NULL ? BIN_MENUITEM_SIZE
- : BIN_MENUITEM_POPUP_SIZE);
+ (mi->popup == NULL
+ ? BIN_MENUITEM_SIZE
+ : BIN_MENUITEM_POPUP_SIZE));
}
off += (mi->popup == NULL ? BIN_MENUITEM_SIZE : BIN_MENUITEM_POPUP_SIZE);
@@ -1761,7 +2015,8 @@ res_to_bin_menuitems (windres_bfd *wrbfd, rc_uint_type off, const rc_menuitem *i
/* Convert menuex items to binary. */
static rc_uint_type
-res_to_bin_menuexitems (windres_bfd *wrbfd, rc_uint_type off, const rc_menuitem *items)
+res_to_bin_menuexitems (windres_bfd *wrbfd, rc_uint_type off,
+ const rc_menuitem *items)
{
rc_uint_type off_delta = off;
const rc_menuitem *mi;
@@ -1814,7 +2069,8 @@ res_to_bin_menuexitems (windres_bfd *wrbfd, rc_uint_type off, const rc_menuitem
to binary. */
static rc_uint_type
-res_to_bin_rcdata (windres_bfd *wrbfd, rc_uint_type off, const rc_rcdata_item *items)
+res_to_bin_rcdata (windres_bfd *wrbfd, rc_uint_type off,
+ const rc_rcdata_item *items)
{
const rc_rcdata_item *ri;
@@ -1855,22 +2111,23 @@ res_to_bin_rcdata (windres_bfd *wrbfd, rc_uint_type off, const rc_rcdata_item *i
break;
case RCDATA_STRING:
hp = (bfd_byte *) ri->u.string.s;
- break;
- case RCDATA_WSTRING:
- {
+ break;
+ case RCDATA_WSTRING:
+ {
rc_uint_type i;
- hp = (bfd_byte *) reswr_alloc (len);
- for (i = 0; i < ri->u.wstring.length; i++)
- windres_put_16 (wrbfd, hp + i * sizeof (unichar), ri->u.wstring.w[i]);
- }
+ hp = reswr_alloc (len);
+ for (i = 0; i < ri->u.wstring.length; i++)
+ windres_put_16 (wrbfd, hp + i * sizeof (unichar),
+ ri->u.wstring.w[i]);
+ }
break;
- case RCDATA_BUFFER:
+ case RCDATA_BUFFER:
hp = (bfd_byte *) ri->u.buffer.data;
- break;
- }
+ break;
+ }
set_windres_bfd_content (wrbfd, hp, off, len);
- }
+ }
off += len;
}
return off;
@@ -1899,13 +2156,13 @@ res_to_bin_stringtable (windres_bfd *wrbfd, rc_uint_type off,
bfd_byte *hp;
rc_uint_type j;
- hp = (bfd_byte *) reswr_alloc (length);
+ hp = reswr_alloc (length);
windres_put_16 (wrbfd, hp, slen);
- for (j = 0; j < slen; j++)
+ for (j = 0; j < slen; j++)
windres_put_16 (wrbfd, hp + 2 + j * 2, s[j]);
set_windres_bfd_content (wrbfd, hp, off, length);
- }
+ }
off += length;
}
return off;
@@ -1926,7 +2183,7 @@ string_to_unicode_bin (windres_bfd *wrbfd, rc_uint_type off, const char *s)
rc_uint_type i;
bfd_byte *hp;
- hp = (bfd_byte *) reswr_alloc ((len + 1) * sizeof (unichar));
+ hp = reswr_alloc ((len + 1) * sizeof (unichar));
for (i = 0; i < len; i++)
windres_put_16 (wrbfd, hp + i * 2, s[i]);
@@ -1953,7 +2210,7 @@ res_to_bin_toolbar (windres_bfd *wrbfd, rc_uint_type off, rc_toolbar *tb)
bfd_byte *ids;
rc_uint_type i = 0;
- ids = (bfd_byte *) reswr_alloc (tb->nitems * 4);
+ ids = reswr_alloc (tb->nitems * 4);
it=tb->items;
while(it != NULL)
{
@@ -1992,7 +2249,7 @@ res_to_bin_versioninfo (windres_bfd *wrbfd, rc_uint_type off,
struct bin_fixed_versioninfo bfv;
const rc_fixed_versioninfo *fi;
- fi = versioninfo->fixed;
+ fi = versioninfo->fixed;
windres_put_32 (wrbfd, bfv.sig1, 0xfeef04bd);
windres_put_32 (wrbfd, bfv.sig2, 0x10000);
windres_put_32 (wrbfd, bfv.file_version, fi->file_version_ms);
@@ -2119,13 +2376,13 @@ res_to_bin_versioninfo (windres_bfd *wrbfd, rc_uint_type off,
off += 4;
}
if (wrbfd)
- {
+ {
windres_put_16 (wrbfd, bvvd.size, off - vvd_off);
windres_put_16 (wrbfd, bvvd.sig1, off - vvvd_off);
windres_put_16 (wrbfd, bvvd.sig2, 0);
set_windres_bfd_content (wrbfd, &bvvd, vvd_off,
BIN_VER_INFO_SIZE);
- }
+ }
break;
}
@@ -2146,7 +2403,7 @@ res_to_bin_versioninfo (windres_bfd *wrbfd, rc_uint_type off,
windres_put_16 (wrbfd, bvi.size, off - start);
windres_put_16 (wrbfd, bvi.fixed_size,
versioninfo->fixed == NULL ? 0
- : BIN_FIXED_VERSIONINFO_SIZE);
+ : BIN_FIXED_VERSIONINFO_SIZE);
windres_put_16 (wrbfd, bvi.sig2, 0);
set_windres_bfd_content (wrbfd, &bvi, start, BIN_VER_INFO_SIZE);
}
diff --git a/binutils/rescoff.c b/binutils/rescoff.c
index 200d0a3..14546a4 100644
--- a/binutils/rescoff.c
+++ b/binutils/rescoff.c
@@ -120,24 +120,41 @@ read_coff_rsrc (const char *filename, const char *target)
struct coff_file_info flaginfo;
if (filename == NULL)
- fatal (_("filename required for COFF input"));
+ {
+ non_fatal (_("filename required for COFF input"));
+ return NULL;
+ }
abfd = bfd_openr (filename, target);
if (abfd == NULL)
- bfd_fatal (filename);
+ {
+ bfd_nonfatal (filename);
+ return NULL;
+ }
if (! bfd_check_format_matches (abfd, bfd_object, &matching))
{
bfd_nonfatal (bfd_get_filename (abfd));
if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
list_matching_formats (matching);
- xexit (1);
+ free (matching);
+ bfd_close (abfd);
+ return NULL;
+ }
+ if (bfd_get_flavour (abfd) != bfd_target_coff_flavour
+ || !obj_pe (abfd))
+ {
+ non_fatal (_("%s: not a PE file"), filename);
+ bfd_close (abfd);
+ return NULL;
}
sec = bfd_get_section_by_name (abfd, ".rsrc");
if (sec == NULL)
{
- fatal (_("%s: no resource section"), filename);
+ non_fatal (_("%s: no resource section"), filename);
+ bfd_close (abfd);
+ return NULL;
}
set_windres_bfd (&wrbfd, abfd, sec, WR_KIND_BFD);
@@ -147,7 +164,11 @@ read_coff_rsrc (const char *filename, const char *target)
but there is no other way to determine if the section size
is reasonable. */
if (size > (bfd_size_type) get_file_size (filename))
- fatal (_("%s: .rsrc section is bigger than the file!"), filename);
+ {
+ non_fatal (_("%s: .rsrc section is bigger than the file!"), filename);
+ bfd_close (abfd);
+ return NULL;
+ }
data = (bfd_byte *) res_alloc (size);
get_windres_bfd_content (&wrbfd, data, 0, size);
@@ -175,7 +196,7 @@ read_coff_rsrc (const char *filename, const char *target)
static void
overrun (const struct coff_file_info *flaginfo, const char *msg)
{
- fatal (_("%s: %s: address out of bounds"), flaginfo->filename, msg);
+ non_fatal (_("%s: %s: address out of bounds"), flaginfo->filename, msg);
}
/* Read a resource directory. */
@@ -196,22 +217,29 @@ read_coff_res_dir (windres_bfd *wrbfd, const bfd_byte *data,
Microsoft only defines 3 levels. Corrupt files however might
claim to use more. */
if (level > 4)
- overrun (flaginfo, _("Resources nest too deep"));
+ {
+ non_fatal (_("%s: resources nest too deep"), flaginfo->filename);
+ return NULL;
+ }
- if ((size_t) (flaginfo->data_end - data) < sizeof (struct extern_res_directory))
- overrun (flaginfo, _("directory"));
+ size_t data_len = flaginfo->data_end - data;
+ if (data_len < sizeof (struct extern_res_directory))
+ {
+ overrun (flaginfo, _("directory"));
+ return NULL;
+ }
erd = (const struct extern_res_directory *) data;
rd = (rc_res_directory *) res_alloc (sizeof (rc_res_directory));
- rd->characteristics = windres_get_32 (wrbfd, erd->characteristics, 4);
- rd->time = windres_get_32 (wrbfd, erd->time, 4);
- rd->major = windres_get_16 (wrbfd, erd->major, 2);
- rd->minor = windres_get_16 (wrbfd, erd->minor, 2);
+ rd->characteristics = windres_get_32 (wrbfd, erd->characteristics);
+ rd->time = windres_get_32 (wrbfd, erd->time);
+ rd->major = windres_get_16 (wrbfd, erd->major);
+ rd->minor = windres_get_16 (wrbfd, erd->minor);
rd->entries = NULL;
- name_count = windres_get_16 (wrbfd, erd->name_count, 2);
- id_count = windres_get_16 (wrbfd, erd->id_count, 2);
+ name_count = windres_get_16 (wrbfd, erd->name_count);
+ id_count = windres_get_16 (wrbfd, erd->id_count);
pp = &rd->entries;
@@ -226,33 +254,45 @@ read_coff_res_dir (windres_bfd *wrbfd, const bfd_byte *data,
const bfd_byte *ers;
int length, j;
- if ((const bfd_byte *) ere >= flaginfo->data_end)
- overrun (flaginfo, _("named directory entry"));
+ if ((const bfd_byte *) ere > flaginfo->data_end
+ || flaginfo->data_end - (const bfd_byte *) ere < 8)
+ {
+ overrun (flaginfo, _("named directory entry"));
+ return NULL;
+ }
- name = windres_get_32 (wrbfd, ere->name, 4);
- rva = windres_get_32 (wrbfd, ere->rva, 4);
+ name = windres_get_32 (wrbfd, ere->name);
+ rva = windres_get_32 (wrbfd, ere->rva);
/* For some reason the high bit in NAME is set. */
name &=~ 0x80000000;
- if (name > (rc_uint_type) (flaginfo->data_end - flaginfo->data))
- overrun (flaginfo, _("directory entry name"));
+ if (name > data_len)
+ {
+ overrun (flaginfo, _("directory entry name"));
+ return NULL;
+ }
ers = flaginfo->data + name;
-
+ if (flaginfo->data_end - ers < 2)
+ {
+ overrun (flaginfo, _("resource name"));
+ return NULL;
+ }
+ length = windres_get_16 (wrbfd, ers);
+ /* PR 17512: file: 05dc4a16. */
+ if (length * 2 + 4 > flaginfo->data_end - ers)
+ {
+ overrun (flaginfo, _("resource name"));
+ return NULL;
+ }
re = (rc_res_entry *) res_alloc (sizeof *re);
re->next = NULL;
re->id.named = 1;
- length = windres_get_16 (wrbfd, ers, 2);
re->id.u.n.length = length;
re->id.u.n.name = (unichar *) res_alloc (length * sizeof (unichar));
for (j = 0; j < length; j++)
- {
- /* PR 17512: file: 05dc4a16. */
- if (length < 0 || ers >= flaginfo->data_end || ers + j * 2 + 4 >= flaginfo->data_end)
- overrun (flaginfo, _("resource name"));
- re->id.u.n.name[j] = windres_get_16 (wrbfd, ers + j * 2 + 2, 2);
- }
+ re->id.u.n.name[j] = windres_get_16 (wrbfd, ers + j * 2 + 2);
if (level == 0)
type = &re->id;
@@ -260,18 +300,25 @@ read_coff_res_dir (windres_bfd *wrbfd, const bfd_byte *data,
if ((rva & 0x80000000) != 0)
{
rva &=~ 0x80000000;
- if (rva >= (rc_uint_type) (flaginfo->data_end - flaginfo->data))
- overrun (flaginfo, _("named subdirectory"));
+ if (rva >= data_len)
+ {
+ overrun (flaginfo, _("named subdirectory"));
+ return NULL;
+ }
re->subdir = 1;
- re->u.dir = read_coff_res_dir (wrbfd, flaginfo->data + rva, flaginfo, type,
- level + 1);
+ re->u.dir = read_coff_res_dir (wrbfd, flaginfo->data + rva, flaginfo,
+ type, level + 1);
}
else
{
- if (rva >= (rc_uint_type) (flaginfo->data_end - flaginfo->data))
- overrun (flaginfo, _("named resource"));
+ if (rva >= data_len)
+ {
+ overrun (flaginfo, _("named resource"));
+ return NULL;
+ }
re->subdir = 0;
- re->u.res = read_coff_data_entry (wrbfd, flaginfo->data + rva, flaginfo, type);
+ re->u.res = read_coff_data_entry (wrbfd, flaginfo->data + rva,
+ flaginfo, type);
}
*pp = re;
@@ -283,11 +330,15 @@ read_coff_res_dir (windres_bfd *wrbfd, const bfd_byte *data,
unsigned long name, rva;
rc_res_entry *re;
- if ((const bfd_byte *) ere >= flaginfo->data_end)
- overrun (flaginfo, _("ID directory entry"));
+ if ((const bfd_byte *) ere > flaginfo->data_end
+ || flaginfo->data_end - (const bfd_byte *) ere < 8)
+ {
+ overrun (flaginfo, _("ID directory entry"));
+ return NULL;
+ }
- name = windres_get_32 (wrbfd, ere->name, 4);
- rva = windres_get_32 (wrbfd, ere->rva, 4);
+ name = windres_get_32 (wrbfd, ere->name);
+ rva = windres_get_32 (wrbfd, ere->rva);
re = (rc_res_entry *) res_alloc (sizeof *re);
re->next = NULL;
@@ -300,18 +351,25 @@ read_coff_res_dir (windres_bfd *wrbfd, const bfd_byte *data,
if ((rva & 0x80000000) != 0)
{
rva &=~ 0x80000000;
- if (rva >= (rc_uint_type) (flaginfo->data_end - flaginfo->data))
- overrun (flaginfo, _("ID subdirectory"));
+ if (rva >= data_len)
+ {
+ overrun (flaginfo, _("ID subdirectory"));
+ return NULL;
+ }
re->subdir = 1;
- re->u.dir = read_coff_res_dir (wrbfd, flaginfo->data + rva, flaginfo, type,
- level + 1);
+ re->u.dir = read_coff_res_dir (wrbfd, flaginfo->data + rva, flaginfo,
+ type, level + 1);
}
else
{
- if (rva >= (rc_uint_type) (flaginfo->data_end - flaginfo->data))
- overrun (flaginfo, _("ID resource"));
+ if (rva >= data_len)
+ {
+ overrun (flaginfo, _("ID resource"));
+ return NULL;
+ }
re->subdir = 0;
- re->u.res = read_coff_data_entry (wrbfd, flaginfo->data + rva, flaginfo, type);
+ re->u.res = read_coff_data_entry (wrbfd, flaginfo->data + rva,
+ flaginfo, type);
}
*pp = re;
@@ -334,29 +392,43 @@ read_coff_data_entry (windres_bfd *wrbfd, const bfd_byte *data,
const bfd_byte *resdata;
if (type == NULL)
- fatal (_("resource type unknown"));
+ {
+ non_fatal (_("resource type unknown"));
+ return NULL;
+ }
if ((size_t) (flaginfo->data_end - data) < sizeof (struct extern_res_data))
- overrun (flaginfo, _("data entry"));
+ {
+ overrun (flaginfo, _("data entry"));
+ return NULL;
+ }
erd = (const struct extern_res_data *) data;
- size = windres_get_32 (wrbfd, erd->size, 4);
- rva = windres_get_32 (wrbfd, erd->rva, 4);
+ size = windres_get_32 (wrbfd, erd->size);
+ rva = windres_get_32 (wrbfd, erd->rva);
if (rva < flaginfo->secaddr
|| rva - flaginfo->secaddr >= (rc_uint_type) (flaginfo->data_end - flaginfo->data))
- overrun (flaginfo, _("resource data"));
+ {
+ overrun (flaginfo, _("resource data"));
+ return NULL;
+ }
resdata = flaginfo->data + (rva - flaginfo->secaddr);
if (size > (rc_uint_type) (flaginfo->data_end - resdata))
- overrun (flaginfo, _("resource data size"));
+ {
+ overrun (flaginfo, _("resource data size"));
+ return NULL;
+ }
r = bin_to_res (wrbfd, *type, resdata, size);
-
- memset (&r->res_info, 0, sizeof (rc_res_res_info));
- r->coff_info.codepage = windres_get_32 (wrbfd, erd->codepage, 4);
- r->coff_info.reserved = windres_get_32 (wrbfd, erd->reserved, 4);
+ if (r != NULL)
+ {
+ memset (&r->res_info, 0, sizeof (rc_res_res_info));
+ r->coff_info.codepage = windres_get_32 (wrbfd, erd->codepage);
+ r->coff_info.reserved = windres_get_32 (wrbfd, erd->reserved);
+ }
return r;
}
@@ -419,9 +491,9 @@ struct coff_write_info
static void coff_bin_sizes (const rc_res_directory *, struct coff_write_info *);
static bfd_byte *coff_alloc (struct bindata_build *, rc_uint_type);
-static void coff_to_bin
+static bool coff_to_bin
(const rc_res_directory *, struct coff_write_info *);
-static void coff_res_to_bin
+static bool coff_res_to_bin
(const rc_res_resource *, struct coff_write_info *);
/* Write resources to a COFF file. RESOURCES should already be
@@ -432,7 +504,7 @@ static void coff_res_to_bin
would require doing the basic work of objcopy, just modifying or
adding the .rsrc section. */
-void
+bool
write_coff_file (const char *filename, const char *target,
const rc_res_directory *resources)
{
@@ -445,44 +517,86 @@ write_coff_file (const char *filename, const char *target,
unsigned long length, offset;
if (filename == NULL)
- fatal (_("filename required for COFF output"));
+ {
+ non_fatal (_("filename required for COFF output"));
+ return false;
+ }
abfd = bfd_openw (filename, target);
if (abfd == NULL)
- bfd_fatal (filename);
+ {
+ bfd_nonfatal (filename);
+ return false;
+ }
if (! bfd_set_format (abfd, bfd_object))
- bfd_fatal ("bfd_set_format");
+ {
+ bfd_nonfatal ("bfd_set_format");
+ bfd_close_all_done (abfd);
+ return false;
+ }
#if defined DLLTOOL_SH
if (! bfd_set_arch_mach (abfd, bfd_arch_sh, 0))
- bfd_fatal ("bfd_set_arch_mach(sh)");
+ {
+ bfd_nonfatal ("bfd_set_arch_mach(sh)");
+ bfd_close_all_done (abfd);
+ return false;
+ }
#elif defined DLLTOOL_MIPS
if (! bfd_set_arch_mach (abfd, bfd_arch_mips, 0))
- bfd_fatal ("bfd_set_arch_mach(mips)");
+ {
+ bfd_nonfatal ("bfd_set_arch_mach(mips)");
+ bfd_close_all_done (abfd);
+ return false;
+ }
#elif defined DLLTOOL_ARM
if (! bfd_set_arch_mach (abfd, bfd_arch_arm, 0))
- bfd_fatal ("bfd_set_arch_mach(arm)");
+ {
+ bfd_nonfatal ("bfd_set_arch_mach(arm)");
+ bfd_close_all_done (abfd);
+ return false;
+ }
#elif defined DLLTOOL_AARCH64
if (! bfd_set_arch_mach (abfd, bfd_arch_aarch64, 0))
- bfd_fatal ("bfd_set_arch_mach(aarch64)");
+ {
+ bfd_nonfatal ("bfd_set_arch_mach(aarch64)");
+ bfd_close_all_done (abfd);
+ return false;
+ }
#else
/* FIXME: This is obviously i386 specific. */
if (! bfd_set_arch_mach (abfd, bfd_arch_i386, 0))
- bfd_fatal ("bfd_set_arch_mach(i386)");
+ {
+ bfd_nonfatal ("bfd_set_arch_mach(i386)");
+ bfd_close_all_done (abfd);
+ return false;
+ }
#endif
if (! bfd_set_file_flags (abfd, HAS_SYMS | HAS_RELOC))
- bfd_fatal ("bfd_set_file_flags");
+ {
+ bfd_nonfatal ("bfd_set_file_flags");
+ bfd_close_all_done (abfd);
+ return false;
+ }
sec = bfd_make_section_with_flags (abfd, ".rsrc",
(SEC_HAS_CONTENTS | SEC_ALLOC
| SEC_LOAD | SEC_DATA | SEC_READONLY));
if (sec == NULL)
- bfd_fatal ("bfd_make_section");
+ {
+ bfd_nonfatal ("bfd_make_section");
+ bfd_close_all_done (abfd);
+ return false;
+ }
if (! bfd_set_symtab (abfd, &sec->symbol, 1))
- bfd_fatal ("bfd_set_symtab");
+ {
+ bfd_nonfatal ("bfd_set_symtab");
+ bfd_close_all_done (abfd);
+ return false;
+ }
/* Requiring this is probably a bug in BFD. */
sec->output_section = sec;
@@ -526,7 +640,12 @@ write_coff_file (const char *filename, const char *target,
cwi.dirstrsize = (cwi.dirstrsize + 7) & ~7;
/* Actually convert the resources to binary. */
- coff_to_bin (resources, &cwi);
+ if (!coff_to_bin (resources, &cwi))
+ {
+ bfd_close_all_done (abfd);
+ free (cwi.relocs);
+ return false;
+ }
/* Add another few bytes to the directory strings if needed for
alignment. */
@@ -551,7 +670,12 @@ write_coff_file (const char *filename, const char *target,
+ cwi.resources.length);
if (!bfd_set_section_size (sec, length))
- bfd_fatal ("bfd_set_section_size");
+ {
+ bfd_nonfatal ("bfd_set_section_size");
+ bfd_close_all_done (abfd);
+ free (cwi.relocs);
+ return false;
+ }
bfd_set_reloc (abfd, sec, cwi.relocs, cwi.reloc_count);
@@ -559,7 +683,12 @@ write_coff_file (const char *filename, const char *target,
for (d = cwi.dirs.d; d != NULL; d = d->next)
{
if (! bfd_set_section_contents (abfd, sec, d->data, offset, d->length))
- bfd_fatal ("bfd_set_section_contents");
+ {
+ bfd_nonfatal ("bfd_set_section_contents");
+ bfd_close_all_done (abfd);
+ free (cwi.relocs);
+ return false;
+ }
offset += d->length;
}
for (d = cwi.dirstrs.d; d != NULL; d = d->next)
@@ -574,17 +703,28 @@ write_coff_file (const char *filename, const char *target,
}
for (rd = cwi.resources.d; rd != NULL; rd = rd->next)
{
- res_to_bin (cwi.wrbfd, (rc_uint_type) offset, rd->res);
+ if (res_to_bin (cwi.wrbfd, (rc_uint_type) offset, rd->res)
+ == (rc_uint_type) -1)
+ {
+ bfd_close_all_done (abfd);
+ free (cwi.relocs);
+ return false;
+ }
offset += rd->length;
}
assert (offset == length);
if (! bfd_close (abfd))
- bfd_fatal ("bfd_close");
+ {
+ bfd_nonfatal ("bfd_close");
+ free (cwi.relocs);
+ return false;
+ }
/* We allocated the relocs array using malloc. */
free (cwi.relocs);
+ return true;
}
/* Work out the sizes of the various fixed size resource directory
@@ -637,7 +777,7 @@ coff_alloc (struct bindata_build *bb, rc_uint_type size)
/* Convert the resource directory RESDIR to binary. */
-static void
+static bool
coff_to_bin (const rc_res_directory *resdir, struct coff_write_info *cwi)
{
struct extern_res_directory *erd;
@@ -698,21 +838,24 @@ coff_to_bin (const rc_res_directory *resdir, struct coff_write_info *cwi)
if (e->subdir)
{
windres_put_32 (cwi->wrbfd, ere->rva, 0x80000000 | cwi->dirs.length);
- coff_to_bin (e->u.dir, cwi);
+ if (!coff_to_bin (e->u.dir, cwi))
+ return false;
}
else
{
windres_put_32 (cwi->wrbfd, ere->rva,
- cwi->dirsize + cwi->dirstrsize + cwi->dataents.length);
+ cwi->dirsize + cwi->dirstrsize + cwi->dataents.length);
- coff_res_to_bin (e->u.res, cwi);
+ if (!coff_res_to_bin (e->u.res, cwi))
+ return false;
}
}
+ return true;
}
/* Convert the resource RES to binary. */
-static void
+static bool
coff_res_to_bin (const rc_res_resource *res, struct coff_write_info *cwi)
{
arelent *r;
@@ -732,7 +875,10 @@ coff_res_to_bin (const rc_res_resource *res, struct coff_write_info *cwi)
r->addend = 0;
r->howto = bfd_reloc_type_lookup (WR_BFD (cwi->wrbfd), BFD_RELOC_RVA);
if (r->howto == NULL)
- bfd_fatal (_("can't get BFD_RELOC_RVA relocation type"));
+ {
+ bfd_nonfatal (_("can't get BFD_RELOC_RVA relocation type"));
+ return false;
+ }
cwi->relocs = xrealloc (cwi->relocs,
(cwi->reloc_count + 2) * sizeof (arelent *));
@@ -752,6 +898,8 @@ coff_res_to_bin (const rc_res_resource *res, struct coff_write_info *cwi)
d = (coff_res_data *) reswr_alloc (sizeof (coff_res_data));
d->length = res_to_bin (NULL, (rc_uint_type) 0, res);
+ if (d->length == (rc_uint_type) -1)
+ return false;
d->res = res;
d->next = NULL;
@@ -767,4 +915,5 @@ coff_res_to_bin (const rc_res_resource *res, struct coff_write_info *cwi)
/* Force the next resource to have 64 bit alignment. */
d->length = (d->length + 7) & ~7;
+ return true;
}
diff --git a/binutils/resrc.c b/binutils/resrc.c
index d265818..4ab830f 100644
--- a/binutils/resrc.c
+++ b/binutils/resrc.c
@@ -299,7 +299,7 @@ run_cmd (char *cmd, const char *redir)
if (WEXITSTATUS (wait_status) != 0)
{
fatal (_("%s exited with status %d"), cmd,
- WEXITSTATUS (wait_status));
+ WEXITSTATUS (wait_status));
retcode = 1;
}
}
@@ -331,7 +331,7 @@ open_input_stream (char *cmd)
if (verbose)
fprintf (stderr,
- _("Using temporary file `%s' to read preprocessor output\n"),
+ _("Using temporary file `%s' to read preprocessor output\n"),
cpp_temp_file);
}
else
@@ -359,15 +359,15 @@ filename_need_quotes (const char *filename)
while (*filename != 0)
{
switch (*filename)
- {
- case '&':
- case ' ':
- case '<':
- case '>':
- case '|':
- case '%':
- return 1;
- }
+ {
+ case '&':
+ case ' ':
+ case '<':
+ case '>':
+ case '|':
+ case '%':
+ return 1;
+ }
++filename;
}
return 0;
@@ -529,7 +529,7 @@ read_rc_file (const char *filename, const char *preprocessor,
if (slash && ! cpp_pipe)
{
/* Next, try looking for a gcc in the same directory as
- that windres */
+ that windres */
cpp_pipe = look_for_default (cmd, program_name, slash - program_name + 1,
preprocargs, filename);
@@ -586,11 +586,11 @@ close_input_stream (void)
else
{
if (cpp_pipe != NULL)
- {
+ {
int err;
err = pclose (cpp_pipe);
/* We are reading from a pipe, therefore we don't
- know if cpp failed or succeeded until pclose. */
+ know if cpp failed or succeeded until pclose. */
if (err != 0 || errno == ECHILD)
{
/* Since this is also run via xatexit, safeguard. */
@@ -598,7 +598,7 @@ close_input_stream (void)
cpp_temp_file = NULL;
fatal (_("preprocessing failed."));
}
- }
+ }
}
/* Since this is also run via xatexit, safeguard. */
@@ -679,6 +679,22 @@ get_data (FILE *e, bfd_byte *p, rc_uint_type c, const char *msg)
fatal (_("%s: read of %lu returned %lu"),
msg, (unsigned long) c, (unsigned long) got);
}
+
+static rc_uint_type
+target_get_16 (const void *p, size_t len)
+{
+ if (len < 2)
+ fatal (_("not enough data"));
+ return windres_get_16 (&wrtarget, p);
+}
+
+static rc_uint_type
+target_get_32 (const void *p, size_t len)
+{
+ if (len < 4)
+ fatal (_("not enough data"));
+ return windres_get_32 (&wrtarget, p);
+}
/* Define an accelerator resource. */
@@ -1094,7 +1110,7 @@ define_fontdir_rcdata (rc_res_id id,const rc_res_res_info *resinfo,
if (pb_data)
{
rc_uint_type off = 2;
- c = windres_get_16 (&wrtarget, pb_data, len_data);
+ c = target_get_16 (pb_data, len_data);
for (; c > 0; c--)
{
size_t len;
@@ -1103,7 +1119,7 @@ define_fontdir_rcdata (rc_res_id id,const rc_res_res_info *resinfo,
bfi = (const struct bin_fontdir_item *) pb_data + off;
fd = (rc_fontdir *) res_alloc (sizeof (rc_fontdir));
- fd->index = windres_get_16 (&wrtarget, bfi->index, len_data - off);
+ fd->index = target_get_16 (bfi->index, len_data - off);
fd->data = pb_data + off;
off += 56;
len = strlen ((char *) bfi->device_name) + 1;
@@ -1230,8 +1246,8 @@ define_icon (rc_res_id id, const rc_res_res_info *resinfo,
rc_group_icon *cg;
/* For some reason, at least in some files the planes and bits
- are zero. We instead set them from the color. This is
- copied from rcl. */
+ are zero. We instead set them from the color. This is
+ copied from rcl. */
cg = (rc_group_icon *) res_alloc (sizeof (rc_group_icon));
cg->next = NULL;
@@ -1288,10 +1304,10 @@ define_group_icon_rcdata (rc_res_id id, const rc_res_res_info *resinfo,
{
int c, i;
unsigned short type;
- type = windres_get_16 (&wrtarget, pb_data + 2, len_data - 2);
+ type = target_get_16 (pb_data + 2, len_data - 2);
if (type != 1)
fatal (_("unexpected group icon type %d"), type);
- c = windres_get_16 (&wrtarget, pb_data + 4, len_data - 4);
+ c = target_get_16 (pb_data + 4, len_data - 4);
len_data -= 6;
pb_data += 6;
@@ -1304,10 +1320,10 @@ define_group_icon_rcdata (rc_res_id id, const rc_res_res_info *resinfo,
cg->width = pb_data[0];
cg->height = pb_data[1];
cg->colors = pb_data[2];
- cg->planes = windres_get_16 (&wrtarget, pb_data + 4, len_data - 4);
- cg->bits = windres_get_16 (&wrtarget, pb_data + 6, len_data - 6);
- cg->bytes = windres_get_32 (&wrtarget, pb_data + 8, len_data - 8);
- cg->index = windres_get_16 (&wrtarget, pb_data + 12, len_data - 12);
+ cg->planes = target_get_16 (pb_data + 4, len_data - 4);
+ cg->bits = target_get_16 (pb_data + 6, len_data - 6);
+ cg->bytes = target_get_32 (pb_data + 8, len_data - 8);
+ cg->index = target_get_16 (pb_data + 12, len_data - 12);
if (! first)
first = cg;
else
@@ -1341,10 +1357,10 @@ define_group_cursor_rcdata (rc_res_id id, const rc_res_res_info *resinfo,
{
int c, i;
unsigned short type;
- type = windres_get_16 (&wrtarget, pb_data + 2, len_data - 2);
+ type = target_get_16 (pb_data + 2, len_data - 2);
if (type != 2)
fatal (_("unexpected group cursor type %d"), type);
- c = windres_get_16 (&wrtarget, pb_data + 4, len_data - 4);
+ c = target_get_16 (pb_data + 4, len_data - 4);
len_data -= 6;
pb_data += 6;
@@ -1354,12 +1370,12 @@ define_group_cursor_rcdata (rc_res_id id, const rc_res_res_info *resinfo,
fatal ("too small group icon rcdata");
cg = (rc_group_cursor *) res_alloc (sizeof (rc_group_cursor));
cg->next = NULL;
- cg->width = windres_get_16 (&wrtarget, pb_data, len_data);
- cg->height = windres_get_16 (&wrtarget, pb_data + 2, len_data - 2);
- cg->planes = windres_get_16 (&wrtarget, pb_data + 4, len_data - 4);
- cg->bits = windres_get_16 (&wrtarget, pb_data + 6, len_data - 6);
- cg->bytes = windres_get_32 (&wrtarget, pb_data + 8, len_data - 8);
- cg->index = windres_get_16 (&wrtarget, pb_data + 12, len_data - 12);
+ cg->width = target_get_16 (pb_data, len_data);
+ cg->height = target_get_16 (pb_data + 2, len_data - 2);
+ cg->planes = target_get_16 (pb_data + 4, len_data - 4);
+ cg->bits = target_get_16 (pb_data + 6, len_data - 6);
+ cg->bytes = target_get_32 (pb_data + 8, len_data - 8);
+ cg->index = target_get_16 (pb_data + 12, len_data - 12);
if (! first)
first = cg;
else
@@ -1389,8 +1405,8 @@ define_cursor_rcdata (rc_res_id id, const rc_res_res_info *resinfo,
pb_data = rcdata_render_as_buffer (data, &len_data);
c = (rc_cursor *) res_alloc (sizeof (rc_cursor));
- c->xhotspot = windres_get_16 (&wrtarget, pb_data, len_data);
- c->yhotspot = windres_get_16 (&wrtarget, pb_data + 2, len_data - 2);
+ c->xhotspot = target_get_16 (pb_data, len_data);
+ c->yhotspot = target_get_16 (pb_data + 2, len_data - 2);
c->length = len_data - BIN_CURSOR_SIZE;
c->data = (const bfd_byte *) (data + BIN_CURSOR_SIZE);
@@ -1938,7 +1954,7 @@ indent (FILE *e, int c)
refer to that file, we use the user-data model for that to express it binary
without the need to store it somewhere externally. */
-void
+bool
write_rc_file (const char *filename, const rc_res_directory *res_dir)
{
FILE *e;
@@ -1950,12 +1966,17 @@ write_rc_file (const char *filename, const rc_res_directory *res_dir)
{
e = fopen (filename, FOPEN_WT);
if (e == NULL)
- fatal (_("can't open `%s' for output: %s"), filename, strerror (errno));
+ {
+ non_fatal (_("can't open `%s' for output: %s"),
+ filename, strerror (errno));
+ return false;
+ }
}
language = (rc_uint_type) ((bfd_signed_vma) -1);
write_rc_directory (e, res_dir, (const rc_res_id *) NULL,
(const rc_res_id *) NULL, &language, 1);
+ return true;
}
/* Write out a directory. E is the file to write to. RD is the
@@ -1989,9 +2010,9 @@ write_rc_directory (FILE *e, const rc_res_directory *rd,
{
case 1:
/* If we're at level 1, the key of this resource is the
- type. This normally duplicates the information we have
- stored with the resource itself, but we need to remember
- the type if this is a user define resource type. */
+ type. This normally duplicates the information we have
+ stored with the resource itself, but we need to remember
+ the type if this is a user define resource type. */
type = &re->id;
break;
@@ -2026,10 +2047,10 @@ write_rc_directory (FILE *e, const rc_res_directory *rd,
if (level == 3)
{
/* This is the normal case: the three levels are
- TYPE/NAME/LANGUAGE. NAME will have been set at level
- 2, and represents the name to use. We probably just
- set LANGUAGE, and it will probably match what the
- resource itself records if anything. */
+ TYPE/NAME/LANGUAGE. NAME will have been set at level
+ 2, and represents the name to use. We probably just
+ set LANGUAGE, and it will probably match what the
+ resource itself records if anything. */
write_rc_resource (e, type, name, re->u.res, language);
}
else
@@ -2488,7 +2509,7 @@ write_rc_cursor (FILE *e, const rc_cursor *cursor)
(unsigned int) cursor->xhotspot, (unsigned int) cursor->yhotspot,
(int) cursor->xhotspot, (int) cursor->yhotspot);
write_rc_datablock (e, (rc_uint_type) cursor->length, (const bfd_byte *) cursor->data,
- 0, 0, 0);
+ 0, 0, 0);
fprintf (e, "END\n");
}
@@ -2649,10 +2670,10 @@ write_rc_dialog_control (FILE *e, const rc_dialog_control *control)
/* For EDITTEXT, COMBOBOX, LISTBOX, and SCROLLBAR don't dump text. */
if ((control->text.named || control->text.u.id != 0)
&& (!ci
- || (ci->class != CTL_EDIT
- && ci->class != CTL_COMBOBOX
- && ci->class != CTL_LISTBOX
- && ci->class != CTL_SCROLLBAR)))
+ || (ci->class != CTL_EDIT
+ && ci->class != CTL_COMBOBOX
+ && ci->class != CTL_LISTBOX
+ && ci->class != CTL_SCROLLBAR)))
{
fprintf (e, " ");
res_id_print (e, control->text, 1);
@@ -2901,8 +2922,8 @@ test_rc_datablock_text (rc_uint_type length, const bfd_byte *data)
for (i = 0, c = 0; i < length; i++)
{
if (! ISPRINT (data[i]) && data[i] != '\n'
- && ! (data[i] == '\r' && (i + 1) < length && data[i + 1] == '\n')
- && data[i] != '\t'
+ && ! (data[i] == '\r' && (i + 1) < length && data[i + 1] == '\n')
+ && data[i] != '\t'
&& ! (data[i] == 0 && (i + 1) != length))
{
if (data[i] <= 7)
@@ -2939,7 +2960,7 @@ write_rc_messagetable (FILE *e, rc_uint_type length, const bfd_byte *data)
rc_uint_type m, i;
mt = (const struct bin_messagetable *) data;
- m = windres_get_32 (&wrtarget, mt->cblocks, length);
+ m = target_get_32 (mt->cblocks, length);
if (length < (BIN_MESSAGETABLE_SIZE + m * BIN_MESSAGETABLE_BLOCK_SIZE))
{
@@ -2951,9 +2972,9 @@ write_rc_messagetable (FILE *e, rc_uint_type length, const bfd_byte *data)
rc_uint_type low, high, offset;
const struct bin_messagetable_item *mti;
- low = windres_get_32 (&wrtarget, mt->items[i].lowid, 4);
- high = windres_get_32 (&wrtarget, mt->items[i].highid, 4);
- offset = windres_get_32 (&wrtarget, mt->items[i].offset, 4);
+ low = windres_get_32 (&wrtarget, mt->items[i].lowid);
+ high = windres_get_32 (&wrtarget, mt->items[i].highid);
+ offset = windres_get_32 (&wrtarget, mt->items[i].offset);
while (low <= high)
{
@@ -2964,8 +2985,8 @@ write_rc_messagetable (FILE *e, rc_uint_type length, const bfd_byte *data)
break;
}
mti = (const struct bin_messagetable_item *) &data[offset];
- elen = windres_get_16 (&wrtarget, mti->length, 2);
- flags = windres_get_16 (&wrtarget, mti->flags, 2);
+ elen = windres_get_16 (&wrtarget, mti->length);
+ flags = windres_get_16 (&wrtarget, mti->flags);
if ((offset + elen) > length)
{
has_error = 1;
@@ -3003,8 +3024,8 @@ write_rc_messagetable (FILE *e, rc_uint_type length, const bfd_byte *data)
}
static void
-write_rc_datablock (FILE *e, rc_uint_type length, const bfd_byte *data, int has_next,
- int hasblock, int show_comment)
+write_rc_datablock (FILE *e, rc_uint_type length, const bfd_byte *data,
+ int has_next, int hasblock, int show_comment)
{
int plen;
@@ -3026,23 +3047,23 @@ write_rc_datablock (FILE *e, rc_uint_type length, const bfd_byte *data, int has_
if (i < length && data[i] == '\n')
++i, ++c;
ascii_print(e, (const char *) &data[i - c], c);
- fprintf (e, "\"");
+ fprintf (e, "\"");
if (i < length)
fprintf (e, "\n");
}
if (i == 0)
- {
+ {
indent (e, 2);
fprintf (e, "\"\"");
- }
+ }
if (has_next)
fprintf (e, ",");
fprintf (e, "\n");
if (hasblock)
fprintf (e, "END\n");
return;
- }
+ }
if (test_rc_datablock_unicode (length, data))
{
rc_uint_type i, c;
@@ -3052,20 +3073,20 @@ write_rc_datablock (FILE *e, rc_uint_type length, const bfd_byte *data, int has_
u = (const unichar *) &data[i];
indent (e, 2);
- fprintf (e, "L\"");
+ fprintf (e, "L\"");
for (c = 0; i < length && c < 160 && u[c] != '\n'; c++, i += 2)
;
if (i < length && u[c] == '\n')
i += 2, ++c;
unicode_print (e, u, c);
- fprintf (e, "\"");
+ fprintf (e, "\"");
if (i < length)
fprintf (e, "\n");
}
if (i == 0)
- {
+ {
indent (e, 2);
fprintf (e, "L\"\"");
}
@@ -3081,14 +3102,14 @@ write_rc_datablock (FILE *e, rc_uint_type length, const bfd_byte *data, int has_
}
if (length != 0)
- {
+ {
rc_uint_type i, max_row;
int first = 1;
max_row = (show_comment ? 4 : 8);
indent (e, 2);
for (i = 0; i + 3 < length;)
- {
+ {
rc_uint_type k;
rc_uint_type comment_start;
@@ -3098,65 +3119,68 @@ write_rc_datablock (FILE *e, rc_uint_type length, const bfd_byte *data, int has_
indent (e, 2);
for (k = 0; k < max_row && i + 3 < length; k++, i += 4)
- {
+ {
if (k == 0)
- plen = fprintf (e, "0x%lxL",
- (unsigned long) windres_get_32 (&wrtarget, data + i, length - i));
- else
+ plen = fprintf (e, "0x%lxL",
+ (unsigned long) target_get_32 (data + i,
+ length - i));
+ else
plen = fprintf (e, " 0x%lxL",
- (unsigned long) windres_get_32 (&wrtarget, data + i, length - i)) - 1;
+ (unsigned long) target_get_32 (data + i,
+ length - i)) - 1;
if (has_next || (i + 4) < length)
- {
+ {
if (plen>0 && plen < 11)
indent (e, 11 - plen);
fprintf (e, ",");
- }
- }
+ }
+ }
if (show_comment)
{
fprintf (e, "\t/* ");
- ascii_print (e, (const char *) &data[comment_start], i - comment_start);
+ ascii_print (e, (const char *) &data[comment_start],
+ i - comment_start);
fprintf (e, ". */");
- }
- fprintf (e, "\n");
- first = 0;
- }
+ }
+ fprintf (e, "\n");
+ first = 0;
+ }
if (i + 1 < length)
- {
- if (! first)
+ {
+ if (! first)
indent (e, 2);
plen = fprintf (e, "0x%x",
- (int) windres_get_16 (&wrtarget, data + i, length - i));
+ (int) target_get_16 (data + i, length - i));
if (has_next || i + 2 < length)
- {
+ {
if (plen > 0 && plen < 11)
indent (e, 11 - plen);
fprintf (e, ",");
- }
+ }
if (show_comment)
{
fprintf (e, "\t/* ");
ascii_print (e, (const char *) &data[i], 2);
fprintf (e, ". */");
- }
- fprintf (e, "\n");
- i += 2;
- first = 0;
- }
+ }
+ fprintf (e, "\n");
+ i += 2;
+ first = 0;
+ }
if (i < length)
- {
- if (! first)
+ {
+ if (! first)
indent (e, 2);
fprintf (e, "\"");
ascii_print (e, (const char *) &data[i], 1);
fprintf (e, "\"");
if (has_next)
- fprintf (e, ",");
- fprintf (e, "\n");
- first = 0;
- }
+ fprintf (e, ",");
+ fprintf (e, "\n");
+ first = 0;
+ }
}
if (hasblock)
fprintf (e, "END\n");
@@ -3209,9 +3233,9 @@ write_rc_rcdata (FILE *e, const rc_rcdata_item *rcdata, int ind)
case RCDATA_BUFFER:
write_rc_datablock (e, (rc_uint_type) ri->u.buffer.length,
- (const bfd_byte *) ri->u.buffer.data,
- ri->next != NULL, 0, -1);
- break;
+ (const bfd_byte *) ri->u.buffer.data,
+ ri->next != NULL, 0, -1);
+ break;
}
if (ri->type != RCDATA_BUFFER)
@@ -3252,7 +3276,7 @@ write_rc_stringtable (FILE *e, const rc_res_id *name,
{
fprintf (e, " %lu, ", (unsigned long) offset + i);
unicode_print_quoted (e, stringtable->strings[i].string,
- stringtable->strings[i].length);
+ stringtable->strings[i].length);
fprintf (e, "\n");
}
}
@@ -3293,7 +3317,7 @@ write_rc_versioninfo (FILE *e, const rc_versioninfo *versioninfo)
fprintf (e, " FILESUBTYPE 0x%x\n", (unsigned int) f->file_subtype);
if (f->file_date_ms != 0 || f->file_date_ls != 0)
fprintf (e, "/* Date: %u, %u. */\n",
- (unsigned int) f->file_date_ms, (unsigned int) f->file_date_ls);
+ (unsigned int) f->file_date_ms, (unsigned int) f->file_date_ls);
fprintf (e, "BEGIN\n");
@@ -3361,7 +3385,7 @@ rcdata_copy (const rc_rcdata_item *src, bfd_byte *dst)
if (! src)
return 0;
switch (src->type)
- {
+ {
case RCDATA_WORD:
if (dst)
windres_put_16 (&wrtarget, dst, (rc_uint_type) src->u.word);
diff --git a/binutils/resres.c b/binutils/resres.c
index 684c389..6505580 100644
--- a/binutils/resres.c
+++ b/binutils/resres.c
@@ -109,14 +109,14 @@ read_res_file (const char *fn)
}
/* Write resource file */
-void
+bool
write_res_file (const char *fn,const rc_res_directory *resdir)
{
asection *sec;
rc_uint_type language;
bfd *abfd;
windres_bfd wrbfd;
- unsigned long sec_length = 0,sec_length_wrote;
+ rc_uint_type sec_length = 0, sec_length_wrote;
static const bfd_byte sign[] =
{0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00,
@@ -130,7 +130,10 @@ write_res_file (const char *fn,const rc_res_directory *resdir)
(SEC_HAS_CONTENTS | SEC_ALLOC
| SEC_LOAD | SEC_DATA));
if (sec == NULL)
- bfd_fatal ("bfd_make_section");
+ {
+ bfd_nonfatal ("bfd_make_section");
+ return false;
+ }
/* Requiring this is probably a bug in BFD. */
sec->output_section = sec;
@@ -142,8 +145,13 @@ write_res_file (const char *fn,const rc_res_directory *resdir)
sec_length = write_res_directory ((windres_bfd *) NULL, 0x20UL, resdir,
(const rc_res_id *) NULL,
(const rc_res_id *) NULL, &language, 1);
+ if (sec_length == (rc_uint_type) -1)
+ return false;
if (!bfd_set_section_size (sec, (sec_length + 3) & ~3))
- bfd_fatal ("bfd_set_section_size");
+ {
+ bfd_nonfatal ("bfd_set_section_size");
+ return false;
+ }
if ((sec_length & 3) != 0)
set_windres_bfd_content (&wrbfd, sign, sec_length, 4-(sec_length & 3));
set_windres_bfd_content (&wrbfd, sign, 0, sizeof (sign));
@@ -152,12 +160,16 @@ write_res_file (const char *fn,const rc_res_directory *resdir)
(const rc_res_id *) NULL,
(const rc_res_id *) NULL,
&language, 1);
+ if (sec_length_wrote == (rc_uint_type) -1)
+ return false;
if (sec_length != sec_length_wrote)
- fatal ("res write failed with different sizes (%lu/%lu).",
- (unsigned long) sec_length, (unsigned long) sec_length_wrote);
+ {
+ non_fatal ("res write failed with different sizes (%lu/%lu).",
+ (unsigned long) sec_length, (unsigned long) sec_length_wrote);
+ return false;
+ }
- bfd_close (abfd);
- return;
+ return bfd_close (abfd);
}
/* Read a resource entry, returns 0 when all resources are read */
@@ -189,11 +201,11 @@ read_resource_entry (windres_bfd *wrbfd, rc_uint_type *off, rc_uint_type omax)
/* Read additional resource header */
read_res_data (wrbfd, off, omax, &l, BIN_RES_INFO_SIZE);
- resinfo.version = windres_get_32 (wrbfd, l.version, 4);
- resinfo.memflags = windres_get_16 (wrbfd, l.memflags, 2);
- resinfo.language = windres_get_16 (wrbfd, l.language, 2);
- /* resinfo.version2 = windres_get_32 (wrbfd, l.version2, 4); */
- resinfo.characteristics = windres_get_32 (wrbfd, l.characteristics, 4);
+ resinfo.version = windres_get_32 (wrbfd, l.version);
+ resinfo.memflags = windres_get_16 (wrbfd, l.memflags);
+ resinfo.language = windres_get_16 (wrbfd, l.language);
+ /* resinfo.version2 = windres_get_32 (wrbfd, l.version2); */
+ resinfo.characteristics = windres_get_32 (wrbfd, l.characteristics);
off[0] = (off[0] + 3) & ~3;
@@ -252,8 +264,12 @@ write_res_directory (windres_bfd *wrbfd, rc_uint_type off, const rc_res_director
}
if (re->subdir)
- off = write_res_directory (wrbfd, off, re->u.dir, type, name, language,
- level + 1);
+ {
+ off = write_res_directory (wrbfd, off, re->u.dir, type, name, language,
+ level + 1);
+ if (off == (rc_uint_type) -1)
+ return off;
+ }
else
{
if (level == 3)
@@ -265,12 +281,16 @@ write_res_directory (windres_bfd *wrbfd, rc_uint_type off, const rc_res_director
resource itself records if anything. */
off = write_res_resource (wrbfd, off, type, name, re->u.res,
language);
+ if (off == (rc_uint_type) -1)
+ return off;
}
else
{
fprintf (stderr, "// Resource at unexpected level %d\n", level);
off = write_res_resource (wrbfd, off, type, (rc_res_id *) NULL,
re->u.res, language);
+ if (off == (rc_uint_type) -1)
+ return off;
}
}
}
@@ -378,6 +398,8 @@ write_res_bin (windres_bfd *wrbfd, rc_uint_type off, const rc_res_resource *res,
rc_uint_type datasize = 0;
noff = res_to_bin ((windres_bfd *) NULL, off, res);
+ if (noff == (rc_uint_type) -1)
+ return noff;
datasize = noff - off;
off = write_res_header (wrbfd, off, datasize, type, name, resinfo);
@@ -442,8 +464,8 @@ read_res_data_hdr (windres_bfd *wrbfd, rc_uint_type *off, rc_uint_type omax,
fatal ("%s: unexpected end of file %ld/%ld", filename,(long) off[0], (long) omax);
get_windres_bfd_content (wrbfd, &brh, off[0], BIN_RES_HDR_SIZE);
- reshdr->data_size = windres_get_32 (wrbfd, brh.data_size, 4);
- reshdr->header_size = windres_get_32 (wrbfd, brh.header_size, 4);
+ reshdr->data_size = windres_get_32 (wrbfd, brh.data_size);
+ reshdr->header_size = windres_get_32 (wrbfd, brh.header_size);
off[0] += BIN_RES_HDR_SIZE;
}
@@ -474,6 +496,7 @@ write_res_id (windres_bfd *wrbfd, rc_uint_type off, const rc_res_id *id)
windres_put_16 (wrbfd, d + (i * sizeof (unichar)), id->u.n.name[i]);
windres_put_16 (wrbfd, d + (i * sizeof (unichar)), 0);
set_windres_bfd_content (wrbfd, d, off, (len * sizeof (unichar)));
+ free (d);
}
off += (len * sizeof (unichar));
}
@@ -519,12 +542,12 @@ read_res_id (windres_bfd *wrbfd, rc_uint_type *off, rc_uint_type omax, rc_res_id
rc_uint_type len;
read_res_data (wrbfd, off, omax, &bid, BIN_RES_ID - 2);
- ord = (unsigned short) windres_get_16 (wrbfd, bid.sig, 2);
+ ord = (unsigned short) windres_get_16 (wrbfd, bid.sig);
if (ord == 0xFFFF) /* an ordinal id */
{
read_res_data (wrbfd, off, omax, bid.id, BIN_RES_ID - 2);
id->named = 0;
- id->u.id = windres_get_16 (wrbfd, bid.id, 2);
+ id->u.id = windres_get_16 (wrbfd, bid.id);
}
else
/* named id */
@@ -552,7 +575,7 @@ read_unistring (windres_bfd *wrbfd, rc_uint_type *off, rc_uint_type omax,
do
{
read_res_data (wrbfd, &soff, omax, d, sizeof (unichar));
- c = windres_get_16 (wrbfd, d, 2);
+ c = windres_get_16 (wrbfd, d);
}
while (c != 0);
l = ((soff - off[0]) / sizeof (unichar));
@@ -562,7 +585,7 @@ read_unistring (windres_bfd *wrbfd, rc_uint_type *off, rc_uint_type omax,
do
{
read_res_data (wrbfd, off, omax, d, sizeof (unichar));
- c = windres_get_16 (wrbfd, d, 2);
+ c = windres_get_16 (wrbfd, d);
*p++ = c;
}
while (c != 0);
diff --git a/binutils/testsuite/binutils-all/compress.exp b/binutils/testsuite/binutils-all/compress.exp
index 5db9417..db167f0 100644
--- a/binutils/testsuite/binutils-all/compress.exp
+++ b/binutils/testsuite/binutils-all/compress.exp
@@ -163,24 +163,24 @@ if ![string match "" $got] then {
}
set testname "objdump compress debug sections"
-set got [remote_exec host "$OBJDUMP -W ${compressedfile}.o" "" "/dev/null" "objdump.out"]
+set got [remote_exec host "$OBJDUMP -W ${compressedfile}.o" "" "/dev/null" "tmpdir/objdump.out"]
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
fail "$testname"
send_log "$got\n"
}
-if { [regexp_diff objdump.out $srcdir/$subdir/dw2-1.W] } then {
+if { [regexp_diff tmpdir/objdump.out $srcdir/$subdir/dw2-1.W] } then {
fail "$testname"
} else {
pass "$testname"
}
set testname "objdump compress debug sections 3"
-set got [remote_exec host "$OBJDUMP -W ${compressedfile3}.o" "" "/dev/null" "objdump.out"]
+set got [remote_exec host "$OBJDUMP -W ${compressedfile3}.o" "" "/dev/null" "tmpdir/objdump.out"]
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
fail "$testname"
send_log "$got\n"
}
-if { [regexp_diff objdump.out $srcdir/$subdir/dw2-3.W] } then {
+if { [regexp_diff tmpdir/objdump.out $srcdir/$subdir/dw2-3.W] } then {
fail "$testname"
} else {
pass "$testname"
@@ -565,12 +565,12 @@ if ![string match "" $got] then {
}
set testname "objdump compress debug sections 3 with zlib-gabi"
-set got [remote_exec host "$OBJDUMP -W ${compressedfile3}gabi.o" "" "/dev/null" "objdump.out"]
+set got [remote_exec host "$OBJDUMP -W ${compressedfile3}gabi.o" "" "/dev/null" "tmpdir/objdump.out"]
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
fail "$testname"
send_log "$got\n"
}
-if { [regexp_diff objdump.out $srcdir/$subdir/dw2-3gabi.W] } then {
+if { [regexp_diff tmpdir/objdump.out $srcdir/$subdir/dw2-3gabi.W] } then {
fail "$testname"
} else {
pass "$testname"
@@ -639,7 +639,7 @@ proc convert_test { testname as_flags objcop_flags } {
return
}
- set got [remote_exec host "$OBJDUMP -W ${copyfile}.o" "" "/dev/null" "objdump.out"]
+ set got [remote_exec host "$OBJDUMP -W ${copyfile}.o" "" "/dev/null" "tmpdir/objdump.out"]
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
fail "$testname (reason: unexpected output)"
@@ -648,7 +648,7 @@ proc convert_test { testname as_flags objcop_flags } {
return
}
- if { [regexp_diff objdump.out $srcdir/$subdir/dw2-3.W] } then {
+ if { [regexp_diff tmpdir/objdump.out $srcdir/$subdir/dw2-3.W] } then {
fail "$testname"
} else {
pass "$testname"
diff --git a/binutils/testsuite/binutils-all/loongarch64/dis-options-multi.d b/binutils/testsuite/binutils-all/loongarch64/dis-options-multi.d
new file mode 100644
index 0000000..2f34cb8
--- /dev/null
+++ b/binutils/testsuite/binutils-all/loongarch64/dis-options-multi.d
@@ -0,0 +1,10 @@
+#name: LoongArch disassembler options: multiple
+#source: dis-options.s
+#objdump: -d --no-show-raw-insn -M no-aliases,numeric
+
+#...
+Disassembly of section \.text:
+
+[0-9a-f]+ <\.text>:
+ [0-9a-f]+:[ ]+or[ ]+\$r4, \$r21, \$r0
+ [0-9a-f]+:[ ]+jirl[ ]+\$r0, \$r1, 0
diff --git a/binutils/testsuite/binutils-all/loongarch64/dis-options-no-alises.d b/binutils/testsuite/binutils-all/loongarch64/dis-options-no-alises.d
new file mode 100644
index 0000000..eb4ea62
--- /dev/null
+++ b/binutils/testsuite/binutils-all/loongarch64/dis-options-no-alises.d
@@ -0,0 +1,10 @@
+#name: LoongArch disassembler options: no-aliases
+#source: dis-options.s
+#objdump: -d --no-show-raw-insn -M no-aliases
+
+#...
+Disassembly of section \.text:
+
+[0-9a-f]+ <\.text>:
+ [0-9a-f]+:[ ]+or[ ]+\$a0, \$r21, \$zero
+ [0-9a-f]+:[ ]+jirl[ ]+\$zero, \$ra, 0
diff --git a/binutils/testsuite/binutils-all/loongarch64/dis-options-numeric.d b/binutils/testsuite/binutils-all/loongarch64/dis-options-numeric.d
new file mode 100644
index 0000000..e669cef
--- /dev/null
+++ b/binutils/testsuite/binutils-all/loongarch64/dis-options-numeric.d
@@ -0,0 +1,10 @@
+#name: LoongArch disassembler options: numeric
+#source: dis-options.s
+#objdump: -d --no-show-raw-insn -M numeric
+
+#...
+Disassembly of section \.text:
+
+[0-9a-f]+ <\.text>:
+ [0-9a-f]+:[ ]+move[ ]+\$r4, \$r21
+ [0-9a-f]+:[ ]+ret
diff --git a/binutils/testsuite/binutils-all/loongarch64/dis-options.s b/binutils/testsuite/binutils-all/loongarch64/dis-options.s
new file mode 100644
index 0000000..a3a4469
--- /dev/null
+++ b/binutils/testsuite/binutils-all/loongarch64/dis-options.s
@@ -0,0 +1,3 @@
+.text
+ move $a0, $r21
+ ret
diff --git a/binutils/testsuite/binutils-all/multi-1.d b/binutils/testsuite/binutils-all/multi-1.d
new file mode 100644
index 0000000..4cfdc61
--- /dev/null
+++ b/binutils/testsuite/binutils-all/multi-1.d
@@ -0,0 +1,23 @@
+#name: objdump --disassemble= of consecutive same-name functions (1)
+#source: multi1.s
+#source: multi2.s
+#ld: -r
+#objdump: --disassemble=func -wz
+# ECOFF disassembly omits local symbols, for whatever reason.
+#xfail: "alpha*-*-*ecoff" "alpha*-*-osf*"
+
+.*: +file format .*
+
+Disassembly of section .*:
+
+0+ <func>:
+[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].*
+#?[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].*
+#?[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].*
+
+# HPPA 32-bit ELF "ld -r" leaves .text unmerged.
+#?Disassembly of section .*:
+
+0+[0-3][0-9a-f] <func>:
+[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].*
+#pass
diff --git a/binutils/testsuite/binutils-all/multi-2.d b/binutils/testsuite/binutils-all/multi-2.d
new file mode 100644
index 0000000..791aa87
--- /dev/null
+++ b/binutils/testsuite/binutils-all/multi-2.d
@@ -0,0 +1,23 @@
+#name: objdump --disassemble= of consecutive same-name functions (2)
+#source: multi2.s
+#source: multi1.s
+#ld: -r
+#objdump: --disassemble=func2 -wz
+# ECOFF disassembly omits local symbols, for whatever reason.
+#xfail: "alpha*-*-*ecoff" "alpha*-*-osf*"
+
+.*: +file format .*
+
+Disassembly of section .*:
+
+0+ <func2>:
+[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].*
+#?[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].*
+#?[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].*
+
+# HPPA 32-bit ELF "ld -r" leaves .text unmerged.
+#?Disassembly of section .*:
+
+0+[0-3][0-9a-f] <func2>:
+[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].*
+#pass
diff --git a/binutils/testsuite/binutils-all/multi-3.d b/binutils/testsuite/binutils-all/multi-3.d
new file mode 100644
index 0000000..bc6f744
--- /dev/null
+++ b/binutils/testsuite/binutils-all/multi-3.d
@@ -0,0 +1,28 @@
+#name: objdump multiple --disassemble=
+#source: multi1.s
+#source: multi2.s
+#ld: -r
+#objdump: --disassemble=func --disassemble=func2 -wz
+# ECOFF disassembly omits local symbols, for whatever reason.
+#xfail: "alpha*-*-*ecoff" "alpha*-*-osf*"
+
+.*: +file format .*
+
+Disassembly of section .*:
+
+0+ <func>:
+[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].*
+#?[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].*
+#?[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].*
+
+0+[0-1][0-9a-f] <func2>:
+[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].*
+#...
+0+[0-2][0-9a-f] <func2>:
+[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].*
+#?[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].*
+#?[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].*
+
+0+[0-3][0-9a-f] <func>:
+[ ]*[0-9a-f]+: [0-9a-f][0-9a-f].*
+#pass
diff --git a/binutils/testsuite/binutils-all/multi1.s b/binutils/testsuite/binutils-all/multi1.s
new file mode 100644
index 0000000..ee7a397
--- /dev/null
+++ b/binutils/testsuite/binutils-all/multi1.s
@@ -0,0 +1,6 @@
+ .text
+func:
+ .nop
+
+func2:
+ .nop
diff --git a/binutils/testsuite/binutils-all/multi2.s b/binutils/testsuite/binutils-all/multi2.s
new file mode 100644
index 0000000..34e52e8
--- /dev/null
+++ b/binutils/testsuite/binutils-all/multi2.s
@@ -0,0 +1,6 @@
+ .text
+func2:
+ .nop
+
+func:
+ .nop
diff --git a/binutils/testsuite/binutils-all/nm-coff-1.s b/binutils/testsuite/binutils-all/nm-coff-1.s
new file mode 100644
index 0000000..3efc10e
--- /dev/null
+++ b/binutils/testsuite/binutils-all/nm-coff-1.s
@@ -0,0 +1,26 @@
+ .globl text_symbol1
+ .globl text_symbol2
+ .globl text_symbol3
+ .macro ENDFN name:req
+ .def \name
+ .type 0x20 /* DT_FUNC */
+ .scl 2 /* C_EXT */
+ .endef
+ .def \name
+ .scl 0xff /* C_EFCN */
+ .val .
+ .endef
+ .endm
+ .text
+text_symbol1:
+ .long 0
+ .long 0
+ .long 0
+ ENDFN text_symbol1
+text_symbol2:
+ .long 0
+ .long 0
+ ENDFN text_symbol2
+text_symbol3:
+ .long 0
+ ENDFN text_symbol3
diff --git a/binutils/testsuite/binutils-all/nm-coff-sdef-1.s b/binutils/testsuite/binutils-all/nm-coff-sdef-1.s
new file mode 100644
index 0000000..f1a10bb
--- /dev/null
+++ b/binutils/testsuite/binutils-all/nm-coff-sdef-1.s
@@ -0,0 +1,26 @@
+ .globl text_symbol1
+ .globl text_symbol2
+ .globl text_symbol3
+ .macro ENDFN name:req
+ .sdef \name
+ .type 0x20 /* DT_FUNC */
+ .scl 2 /* C_EXT */
+ .endef
+ .sdef \name
+ .scl 0xff /* C_EFCN */
+ .val .
+ .endef
+ .endm
+ .text
+text_symbol1:
+ .byte 0,0,0,0
+ .byte 0,0,0,0
+ .byte 0,0,0,0
+ ENDFN text_symbol1
+text_symbol2:
+ .byte 0,0,0,0
+ .byte 0,0,0,0
+ ENDFN text_symbol2
+text_symbol3:
+ .byte 0,0,0,0
+ ENDFN text_symbol3
diff --git a/binutils/testsuite/binutils-all/nm.exp b/binutils/testsuite/binutils-all/nm.exp
index e1b2d16..c571520 100644
--- a/binutils/testsuite/binutils-all/nm.exp
+++ b/binutils/testsuite/binutils-all/nm.exp
@@ -163,6 +163,12 @@ if { [is_elf_format]
|| [istarget wasm32-*-*]
|| [istarget bpf-*-*]} {
set nm_1_src "nm-elf-1.s"
+} elseif {[is_coff_format]} {
+ if {[istarget *c4x-*-*] || [istarget *c54x-*-*]} {
+ set nm_1_src "nm-coff-sdef-1.s"
+ } else {
+ set nm_1_src "nm-coff-1.s"
+ }
} else {
set nm_1_src "nm-1.s"
}
diff --git a/binutils/testsuite/binutils-all/objcopy.exp b/binutils/testsuite/binutils-all/objcopy.exp
index a706efb..6aa6d2d 100644
--- a/binutils/testsuite/binutils-all/objcopy.exp
+++ b/binutils/testsuite/binutils-all/objcopy.exp
@@ -180,7 +180,7 @@ proc objcopy_test_verilog {testname} {
untested "verilog width-4 and width-8 tests"
return
}
-
+
foreach width {4 8} {
set got [binutils_run $OBJCOPY "-O verilog --verilog-data-width $width $binfile $verilog-$width.hex"]
if ![string equal "" $got] then {
@@ -194,7 +194,7 @@ proc objcopy_test_verilog {testname} {
}
}
- # Test generating endian correct output.
+ # Test generating endian correct output.
set testname "objcopy (verilog output endian-ness == input endian-ness)"
set got [binutils_run $OBJCOPY "-O verilog --verilog-data-width 4 $binfile $verilog-I4.hex"]
if ![string equal "" $got] then {
@@ -202,9 +202,9 @@ proc objcopy_test_verilog {testname} {
}
send_log "regexp_diff $verilog-I4.hex $srcdir/$subdir/verilog-I4.hex\n"
if {! [regexp_diff "$verilog-I4.hex" "$srcdir/$subdir/verilog-I4.hex"]} {
- pass $testname
+ pass $testname
} else {
- fail $testname
+ fail $testname
}
}
@@ -661,6 +661,87 @@ proc strip_test_with_saving_a_symbol { } {
strip_test_with_saving_a_symbol
+# Test stripping an archive.
+
+proc strip_test_archive { } {
+ global AR
+ global CC
+ global STRIP
+ global srcdir
+ global subdir
+
+ set test "strip -g on archive"
+
+ if { [target_compile $srcdir/$subdir/testprog.c tmpdir/testprog.o object debug] != "" } {
+ untested $test
+ return
+ }
+
+ set stripobjfile tmpdir/striptestprog.o
+ set stripobjarchive testprog.o
+ if [is_remote host] {
+ set archive libstrip.a
+ set objfile [remote_download host tmpdir/testprog.o]
+ remote_file host delete $archive
+ remote_file host delete $stripobjfile
+ remote_file host delete $stripobjarchive
+ } else {
+ set archive tmpdir/libstrip.a
+ set objfile tmpdir/testprog.o
+ remote_file build delete $stripobjfile
+ remote_file build delete $stripobjarchive
+ }
+
+ remote_file build delete tmpdir/libstrip.a
+
+ set exec_output [binutils_run $STRIP "-g -o $stripobjfile $objfile"]
+ set exec_output [prune_warnings $exec_output]
+ if ![string equal "" $exec_output] {
+ fail $test
+ return
+ }
+
+ set exec_output [binutils_run $AR "rc $archive ${objfile}"]
+ set exec_output [prune_warnings $exec_output]
+ if ![string equal "" $exec_output] {
+ fail $test
+ return
+ }
+
+ set exec_output [binutils_run $STRIP "-g $archive"]
+ set exec_output [prune_warnings $exec_output]
+ if ![string equal "" $exec_output] {
+ fail $test
+ return
+ }
+
+ set exec_output [binutils_run $AR "x $archive"]
+ set exec_output [prune_warnings $exec_output]
+ if ![string equal "" $exec_output] {
+ fail $test
+ return
+ }
+
+ if [is_remote host] {
+ set stripobjfile [remote_download host $stripobjfile]
+ set stripobjarchive [remote_download host $stripobjarchive]
+ }
+
+ send_log "cmp $stripobjarchive $stripobjfile\n"
+ verbose "cmp $stripobjarchive $stripobjfile"
+ set status [remote_exec build cmp "$stripobjarchive $stripobjfile"]
+ set exec_output [lindex $status 1]
+ set exec_output [prune_warnings $exec_output]
+
+ if [string equal "" $exec_output] then {
+ pass $test
+ } else {
+ fail $test
+ }
+}
+
+strip_test_archive
+
# Build a final executable.
set exe [exeext]
@@ -1463,7 +1544,6 @@ if [is_elf_format] {
run_dump_test "pr23633"
run_dump_test "set-section-alignment"
-run_dump_test "section-alignment"
setup_xfail "hppa*-*-*"
setup_xfail "spu-*-*"
diff --git a/binutils/testsuite/binutils-all/objdump.exp b/binutils/testsuite/binutils-all/objdump.exp
index e74b77b..f3142b1 100644
--- a/binutils/testsuite/binutils-all/objdump.exp
+++ b/binutils/testsuite/binutils-all/objdump.exp
@@ -249,6 +249,23 @@ if { [ remote_file host exists $testarchive ] } then {
test_objdump_d $testarchive bintest2.${obj}
}
+# AIX gas doesn't add local symbols to the symbol table.
+# TI C30 and C54x ld emits various "address .. of tmpdir/dump section `...' is
+# not within region `...'" errors, which look bogus for relocatable linking.
+# alpha-vms doesn't support relocatable linking.
+# i?86-msdos ld generates an executable despite being passed -r.
+# Don't chance other than our own ld improperly handling -r.
+if { ![istarget "*-*-aix*"]
+ && ![istarget "*c30-*-*"]
+ && ![istarget "*c54x-*-*"]
+ && ![istarget "alpha-*-*vms*"]
+ && ![istarget "i?86-*-msdos"]
+ && [file normalize "$LD"] == [file normalize "$objdir/../ld/ld-new"]} then {
+ run_dump_test multi-1
+ run_dump_test multi-2
+ run_dump_test multi-3
+}
+
# Test objdump --disassemble=<symbol>
proc test_objdump_d_sym { testfile dumpfile } {
global OBJDUMP
@@ -437,7 +454,7 @@ if { ![is_elf_format] } then {
set compressed_testfile tmpdir/dw2-compressed.${obj}
}
- set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -s -j .zdebug_abbrev $compressed_testfile" "" "/dev/null" "objdump.out"]
+ set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -s -j .zdebug_abbrev $compressed_testfile" "" "/dev/null" "tmpdir/objdump.out"]
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
fail "objdump -s -j .zdebug_abbrev (reason: unexpected output)"
@@ -445,7 +462,7 @@ if { ![is_elf_format] } then {
send_log "\n"
}
- if { [regexp_diff objdump.out $srcdir/$subdir/objdump.s] } then {
+ if { [regexp_diff tmpdir/objdump.out $srcdir/$subdir/objdump.s] } then {
fail "objdump -s -j .zdebug_abbrev"
} else {
pass "objdump -s -j .zdebug_abbrev"
@@ -453,7 +470,7 @@ if { ![is_elf_format] } then {
# Test objdump -W on a file that contains some compressed .debug sections
- set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -W $compressed_testfile" "" "/dev/null" "objdump.out"]
+ set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -W $compressed_testfile" "" "/dev/null" "tmpdir/objdump.out"]
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
fail "objdump -W (reason: unexpected output)"
@@ -461,7 +478,7 @@ if { ![is_elf_format] } then {
send_log "\n"
}
- if { [regexp_diff objdump.out $srcdir/$subdir/objdump.W] } then {
+ if { [regexp_diff tmpdir/objdump.out $srcdir/$subdir/objdump.W] } then {
fail "objdump -W"
} else {
pass "objdump -W"
@@ -469,7 +486,7 @@ if { ![is_elf_format] } then {
# Test objdump -Z -s on a file that contains some compressed .debug sections
- set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -Z -s -j .zdebug_abbrev $compressed_testfile" "" "/dev/null" "objdump.out"]
+ set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -Z -s -j .zdebug_abbrev $compressed_testfile" "" "/dev/null" "tmpdir/objdump.out"]
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
fail "objdump -Z -s (reason: unexpected output)"
@@ -477,7 +494,7 @@ if { ![is_elf_format] } then {
send_log "\n"
}
- if { [regexp_diff objdump.out $srcdir/$subdir/objdump.Zs] } then {
+ if { [regexp_diff tmpdir/objdump.out $srcdir/$subdir/objdump.Zs] } then {
fail "objdump -Z -s"
} else {
pass "objdump -Z -s"
@@ -513,7 +530,7 @@ if { ![is_elf_format]
set decodedline_testfile tmpdir/dw2-decodedline.${obj}
}
- set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -WL $decodedline_testfile" "" "/dev/null" "objdump.out"]
+ set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -WL $decodedline_testfile" "" "/dev/null" "tmpdir/objdump.out"]
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
fail "objdump -WL (reason: unexpected output)"
@@ -521,7 +538,7 @@ if { ![is_elf_format]
send_log "\n"
}
- if { [regexp_diff objdump.out $srcdir/$subdir/objdump.WL] } then {
+ if { [regexp_diff tmpdir/objdump.out $srcdir/$subdir/objdump.WL] } then {
fail "objdump -WL"
} else {
pass "objdump -WL"
@@ -541,7 +558,7 @@ if { ![is_elf_format] } then {
set ranges_testfile tmpdir/dw2-ranges.${obj}
}
- set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS --dwarf=Ranges $ranges_testfile" "" "/dev/null" "objdump.out"]
+ set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS --dwarf=Ranges $ranges_testfile" "" "/dev/null" "tmpdir/objdump.out"]
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
fail "objdump -W for debug_ranges (reason: unexpected output)"
@@ -550,7 +567,7 @@ if { ![is_elf_format] } then {
}
setup_xfail "msp430-*-*"
- if { [regexp_diff objdump.out $srcdir/$subdir/dw2-ranges.W] } then {
+ if { [regexp_diff tmpdir/objdump.out $srcdir/$subdir/dw2-ranges.W] } then {
fail "objdump -W for debug_ranges"
} else {
pass "objdump -W for debug_ranges"
@@ -570,7 +587,7 @@ if { ![is_elf_format] } then {
set op_testfile tmpdir/dw5-op.${obj}
}
- set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -Wi $op_testfile" "" "/dev/null" "objdump.out"]
+ set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -Wi $op_testfile" "" "/dev/null" "tmpdir/objdump.out"]
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
fail "objdump -Wi (reason: unexpected output)"
@@ -578,8 +595,8 @@ if { ![is_elf_format] } then {
send_log "\n"
}
- set got [remote_exec host "tail -n +4 objdump.out" "" "/dev/null" "objdump.out"]
- set output [remote_upload host objdump.out]
+ set got [remote_exec host "tail -n +4 tmpdir/objdump.out" "" "/dev/null" "tmpdir/objdump.tail"]
+ set output [remote_upload host tmpdir/objdump.tail]
if ![file size $output] then {
# If the output file is empty, then this target does not
@@ -589,7 +606,7 @@ if { ![is_elf_format] } then {
return
}
- if { [regexp_diff objdump.out $srcdir/$subdir/dw5-op.W] } then {
+ if { [regexp_diff tmpdir/objdump.tail $srcdir/$subdir/dw5-op.W] } then {
fail "objdump -Wi for DW_OP_*"
} else {
pass "objdump -Wi for DW_OP_*"
@@ -695,7 +712,7 @@ if { [is_elf_format] } then {
set testfile tmpdir/debuglink.${obj}
}
- set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -Wk -WN $testfile" "" "/dev/null" "objdump.out"]
+ set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -Wk -WN $testfile" "" "/dev/null" "tmpdir/objdump.out"]
if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
fail "objdump -Wk (reason: unexpected output)"
@@ -703,7 +720,7 @@ if { [is_elf_format] } then {
send_log "\n"
}
- if { [regexp_diff objdump.out $srcdir/$subdir/objdump.Wk] } then {
+ if { [regexp_diff tmpdir/objdump.out $srcdir/$subdir/objdump.Wk] } then {
fail "objdump -Wk (reason: output does not match expectations)"
} else {
pass "objdump -Wk"
@@ -747,7 +764,7 @@ proc test_follow_debuglink { options dumpfile } {
if { [regexp_diff tmpdir/objdump.out $srcdir/$subdir/$dumpfile] } then {
fail $test
- verbose "output is \n[file_contents objdump.out]" 2
+ verbose "output is \n[file_contents tmpdir/objdump.out]" 2
return
}
diff --git a/binutils/testsuite/binutils-all/section-alignment.d b/binutils/testsuite/binutils-all/section-alignment.d
deleted file mode 100644
index d62528c..0000000
--- a/binutils/testsuite/binutils-all/section-alignment.d
+++ /dev/null
@@ -1,9 +0,0 @@
-#source: pr23633.s
-#PROG: objcopy
-#objcopy: --section-alignment=512
-#objdump: -P sections
-#target: [is_pecoff_format]
-
-#...
-.* Align: 512.*
-#pass
diff --git a/binutils/testsuite/binutils-all/set-section-alignment.d b/binutils/testsuite/binutils-all/set-section-alignment.d
index a193bb7..2f6379a 100644
--- a/binutils/testsuite/binutils-all/set-section-alignment.d
+++ b/binutils/testsuite/binutils-all/set-section-alignment.d
@@ -2,8 +2,8 @@
#PROG: objcopy
#objcopy: --set-section-alignment .text=16
#objdump: --section-headers
-#target: [is_elf_format]
-#xfail: rx-*-*
+#target: [is_elf_format] || [is_coff_format]
+#xfail: rx-*-* *c30-*-* z8k-*-*
#...
.*\.text.*2\*\*4
diff --git a/binutils/testsuite/binutils-all/x86-64/dwarf4.s b/binutils/testsuite/binutils-all/x86-64/dwarf4.s
new file mode 100644
index 0000000..6c393b9
--- /dev/null
+++ b/binutils/testsuite/binutils-all/x86-64/dwarf4.s
@@ -0,0 +1,26166 @@
+/* Assembly outputs of
+
+#include <memory>
+struct Base {};
+void func() {
+ static std::unique_ptr<Base> varStatic = std::make_unique<Base>();
+}
+int main(int, char**) {
+ func();
+ return 0;
+}
+
+compiled by GCC 15.1.1 with -g3 -O2 -dA -gdwarf-4. */
+
+ .file "dwarf.cc"
+ .text
+.Ltext0:
+ .file 1 "dwarf.cc"
+ .section .text._ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED2Ev,"axG",@progbits,_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED5Ev,comdat
+ .align 2
+ .p2align 4
+ .weak _ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED2Ev
+ .type _ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED2Ev, @function
+_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED2Ev:
+.LVL0:
+ # DEBUG this => di
+.LFB1565:
+ .file 2 "/usr/include/c++/15/bits/unique_ptr.h"
+ # /usr/include/c++/15/bits/unique_ptr.h:393:7
+ .loc 2 393 7 view -0
+ .cfi_startproc
+# BLOCK 2, count:1073741824 (estimated locally) seq:0
+# PRED: ENTRY [always] count:1073741824 (estimated locally, freq 1.0000) (FALLTHRU)
+ # DEBUG this => di
+.LBB143:
+.LBB144:
+.LBB145:
+.LBI145:
+ # /usr/include/c++/15/bits/unique_ptr.h:191:18
+ .loc 2 191 18 view .LVU1
+ # DEBUG this RESET
+ # DEBUG __ptr => di
+ # /usr/include/c++/15/bits/unique_ptr.h:191:18
+ .loc 2 191 18 is_stmt 0 view .LVU2
+.LBE145:
+ # /usr/include/c++/15/bits/unique_ptr.h:398:12
+ .loc 2 398 12 view .LVU3
+ movq (%rdi), %rdi
+.LVL1:
+ # DEBUG __ptr => entry_value
+ # DEBUG this => entry_value
+ # /usr/include/c++/15/bits/unique_ptr.h:398:2
+ .loc 2 398 2 view .LVU4
+ testq %rdi, %rdi
+# SUCC: 3 [53.5% (guessed)] count:574129752 (estimated locally, freq 0.5347) (FALLTHRU,CAN_FALLTHRU) 4 [46.5% (guessed)] count:499612072 (estimated locally, freq 0.4653) (CAN_FALLTHRU)
+ je .L1
+# BLOCK 3, count:574129752 (estimated locally) seq:1
+# PRED: 2 [53.5% (guessed)] count:574129752 (estimated locally, freq 0.5347) (FALLTHRU,CAN_FALLTHRU)
+.LVL2:
+ # DEBUG this => entry_value
+.LBB146:
+.LBI146:
+ # /usr/include/c++/15/bits/unique_ptr.h:478:7
+ .loc 2 478 7 is_stmt 1 view .LVU5
+ # DEBUG this RESET
+ # DEBUG __ptr => di
+ # /usr/include/c++/15/bits/unique_ptr.h:478:7
+ .loc 2 478 7 is_stmt 0 view .LVU6
+.LBE146:
+.LBB147:
+.LBI147:
+ # /usr/include/c++/15/bits/unique_ptr.h:87:7
+ .loc 2 87 7 is_stmt 1 view .LVU7
+.LBB148:
+ # /usr/include/c++/15/bits/unique_ptr.h:93:2
+ .loc 2 93 2 is_stmt 0 discriminator 1 view .LVU8
+ movl $1, %esi
+# SUCC: EXIT [always] count:574129752 (estimated locally, freq 0.5347) (ABNORMAL,SIBCALL)
+ jmp _ZdlPvm
+.LVL3:
+ # DEBUG __ptr RESET
+ # DEBUG __ptr RESET
+# BLOCK 4, count:499612072 (estimated locally) seq:2
+# PRED: 2 [46.5% (guessed)] count:499612072 (estimated locally, freq 0.4653) (CAN_FALLTHRU)
+ .p2align 4,,10
+ .p2align 3
+.L1:
+ # /usr/include/c++/15/bits/unique_ptr.h:93:2
+ .loc 2 93 2 discriminator 1 view .LVU9
+.LBE148:
+.LBE147:
+.LBE144:
+.LBE143:
+# SUCC: EXIT [always] count:499612072 (estimated locally, freq 0.4653)
+ # /usr/include/c++/15/bits/unique_ptr.h:401:7
+ .loc 2 401 7 view .LVU10
+ ret
+ .cfi_endproc
+.LFE1565:
+ .size _ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED2Ev, .-_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED2Ev
+ .weak _ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED1Ev
+ .set _ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED1Ev,_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED2Ev
+ .section .text.unlikely,"ax",@progbits
+.LCOLDB0:
+ .text
+.LHOTB0:
+ .p2align 4
+ .section .text.unlikely
+.Ltext_cold0:
+ .text
+ .globl _Z4funcv
+ .type _Z4funcv, @function
+_Z4funcv:
+.LFB1545:
+ # dwarf.cc:3:13
+ .loc 1 3 13 is_stmt 1 view -0
+ .cfi_startproc
+ .cfi_personality 0x3,__gxx_personality_v0
+ .cfi_lsda 0x3,.LLSDA1545
+# BLOCK 2, count:1073741824 (estimated locally) seq:0
+# PRED: ENTRY [always] count:1073741824 (estimated locally, freq 1.0000) (FALLTHRU)
+ # dwarf.cc:4:2
+ .loc 1 4 2 view .LVU12
+ # dwarf.cc:4:66
+ .loc 1 4 66 is_stmt 0 view .LVU13
+ movzbl _ZGVZ4funcvE9varStatic(%rip), %eax
+ # dwarf.cc:4:66
+ .loc 1 4 66 discriminator 1 view .LVU14
+ testb %al, %al
+# SUCC: 4 [33.0% (guessed)] count:354334800 (estimated locally, freq 0.3300) (CAN_FALLTHRU) 3 [67.0% (guessed)] count:719407024 (estimated locally, freq 0.6700) (FALLTHRU,CAN_FALLTHRU)
+ je .L17
+# BLOCK 3, count:641063600 (estimated locally) seq:1
+# PRED: 2 [67.0% (guessed)] count:719407024 (estimated locally, freq 0.6700) (FALLTHRU,CAN_FALLTHRU)
+# SUCC: EXIT [always] count:641063600 (estimated locally, freq 0.5970)
+ ret
+# BLOCK 4, count:354334800 (estimated locally) seq:2
+# PRED: 2 [33.0% (guessed)] count:354334800 (estimated locally, freq 0.3300) (CAN_FALLTHRU)
+ .p2align 4,,10
+ .p2align 3
+.L17:
+ # dwarf.cc:3:13
+ .loc 1 3 13 view .LVU15
+ pushq %rbx
+ .cfi_def_cfa_offset 16
+ .cfi_offset 3, -16
+ # dwarf.cc:4:66
+ .loc 1 4 66 discriminator 2 view .LVU16
+ movl $_ZGVZ4funcvE9varStatic, %edi
+ call __cxa_guard_acquire
+.LVL4:
+ # dwarf.cc:4:66
+ .loc 1 4 66 discriminator 3 view .LVU17
+ testl %eax, %eax
+# SUCC: 6 [33.0% (guessed)] count:116930483 (estimated locally, freq 0.1089) (CAN_FALLTHRU) 5 [67.0% (guessed)] count:237404317 (estimated locally, freq 0.2211) (FALLTHRU,CAN_FALLTHRU)
+ jne .L18
+# BLOCK 5, count:315747741 (estimated locally) seq:3
+# PRED: 4 [67.0% (guessed)] count:237404317 (estimated locally, freq 0.2211) (FALLTHRU,CAN_FALLTHRU)
+ # dwarf.cc:5:1
+ .loc 1 5 1 view .LVU18
+ popq %rbx
+ .cfi_remember_state
+ .cfi_def_cfa_offset 8
+# SUCC: EXIT [always] count:315747741 (estimated locally, freq 0.2941)
+ ret
+# BLOCK 6, count:116930483 (estimated locally) seq:4
+# PRED: 4 [33.0% (guessed)] count:116930483 (estimated locally, freq 0.1089) (CAN_FALLTHRU)
+ .p2align 4,,10
+ .p2align 3
+.L18:
+ .cfi_restore_state
+.LBB149:
+.LBI149:
+ # /usr/include/c++/15/bits/unique_ptr.h:1084:5
+ .loc 2 1084 5 is_stmt 1 view .LVU19
+.LBB150:
+ # /usr/include/c++/15/bits/unique_ptr.h:1085:30
+ .loc 2 1085 30 is_stmt 0 view .LVU20
+ movl $1, %edi
+.LEHB0:
+# SUCC: 8 [never] count:0 (precise, freq 0.0000) (ABNORMAL,ABNORMAL_CALL,EH) 7 [always (adjusted)] count:116930483 (estimated locally, freq 0.1089) (FALLTHRU,CAN_FALLTHRU)
+ call _Znwm
+.LVL5:
+.LEHE0:
+# BLOCK 7, count:116930483 (estimated locally) seq:5
+# PRED: 6 [always (adjusted)] count:116930483 (estimated locally, freq 0.1089) (FALLTHRU,CAN_FALLTHRU)
+ # DEBUG this => `_ZZ4funcvE9varStatic'
+ # DEBUG __p => ax
+.LBB151:
+.LBI151:
+ # /usr/include/c++/15/bits/unique_ptr.h:311:2
+ .loc 2 311 2 is_stmt 1 view .LVU21
+ # DEBUG this => `_ZZ4funcvE9varStatic'
+ # DEBUG => ax
+.LBB152:
+.LBI152:
+ # /usr/include/c++/15/bits/unique_ptr.h:235:40
+ .loc 2 235 40 view .LVU22
+ # DEBUG this => `_ZZ4funcvE9varStatic'
+ # DEBUG __p => ax
+.LBB153:
+.LBI153:
+ # /usr/include/c++/15/bits/unique_ptr.h:170:7
+ .loc 2 170 7 view .LVU23
+ # DEBUG this => `_ZZ4funcvE9varStatic'
+.LBB154:
+.LBB155:
+.LBI155:
+ .file 3 "/usr/include/c++/15/tuple"
+ # /usr/include/c++/15/tuple:2090:2
+ .loc 3 2090 2 view .LVU24
+ # DEBUG this => `_ZZ4funcvE9varStatic'
+.LBB156:
+.LBI156:
+ # /usr/include/c++/15/tuple:302:17
+ .loc 3 302 17 view .LVU25
+ # DEBUG this => `_ZZ4funcvE9varStatic'
+.LBB157:
+.LBI157:
+ # /usr/include/c++/15/tuple:560:7
+ .loc 3 560 7 view .LVU26
+ # DEBUG this => `_ZZ4funcvE9varStatic'
+.LBB158:
+.LBI158:
+ # /usr/include/c++/15/tuple:93:17
+ .loc 3 93 17 view .LVU27
+ # DEBUG this RESET
+ # DEBUG this RESET
+ # DEBUG this => `_ZZ4funcvE9varStatic'
+ # /usr/include/c++/15/tuple:93:17
+ .loc 3 93 17 is_stmt 0 view .LVU28
+.LBE158:
+.LBE157:
+.LBB159:
+.LBI159:
+ # /usr/include/c++/15/tuple:202:17
+ .loc 3 202 17 is_stmt 1 view .LVU29
+ # DEBUG this RESET
+ # DEBUG this RESET
+ # DEBUG this RESET
+ # DEBUG this => `_ZZ4funcvE9varStatic'
+ # /usr/include/c++/15/tuple:202:17
+ .loc 3 202 17 is_stmt 0 view .LVU30
+.LBE159:
+.LBE156:
+.LBE155:
+.LBB160:
+.LBI160:
+ # /usr/include/c++/15/bits/unique_ptr.h:191:18
+ .loc 2 191 18 is_stmt 1 view .LVU31
+ # DEBUG this RESET
+ # /usr/include/c++/15/bits/unique_ptr.h:191:18
+ .loc 2 191 18 is_stmt 0 view .LVU32
+.LBE160:
+.LBE154:
+.LBE153:
+.LBE152:
+.LBE151:
+.LBE150:
+.LBE149:
+ # dwarf.cc:4:66
+ .loc 1 4 66 discriminator 7 view .LVU33
+ movl $_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED1Ev, %edi
+ movl $__dso_handle, %edx
+ movl $_ZZ4funcvE9varStatic, %esi
+.LBB166:
+.LBB165:
+.LBB164:
+.LBB163:
+.LBB162:
+.LBB161:
+ # /usr/include/c++/15/bits/unique_ptr.h:170:56
+ .loc 2 170 56 discriminator 2 view .LVU34
+ movq %rax, _ZZ4funcvE9varStatic(%rip)
+.LVL6:
+ # DEBUG this RESET
+ # DEBUG __p RESET
+ # DEBUG this RESET
+ # DEBUG RESET
+ # DEBUG this RESET
+ # DEBUG __p RESET
+ # /usr/include/c++/15/bits/unique_ptr.h:170:56
+ .loc 2 170 56 discriminator 2 view .LVU35
+.LBE161:
+.LBE162:
+.LBE163:
+.LBE164:
+.LBE165:
+.LBE166:
+ # dwarf.cc:4:66
+ .loc 1 4 66 discriminator 7 view .LVU36
+ call __cxa_atexit
+.LVL7:
+ # dwarf.cc:4:66
+ .loc 1 4 66 discriminator 8 view .LVU37
+ movl $_ZGVZ4funcvE9varStatic, %edi
+ # dwarf.cc:5:1
+ .loc 1 5 1 view .LVU38
+ popq %rbx
+ .cfi_remember_state
+ .cfi_restore 3
+ .cfi_def_cfa_offset 8
+.LEHB1:
+# SUCC: EXIT [always] count:116930483 (estimated locally, freq 0.1089) (ABNORMAL,SIBCALL)
+ # dwarf.cc:4:66
+ .loc 1 4 66 discriminator 8 view .LVU39
+ jmp __cxa_guard_release
+.LVL8:
+.LEHE1:
+# BLOCK 8, count:0 (precise) seq:6
+# PRED: 6 [never] count:0 (precise, freq 0.0000) (ABNORMAL,ABNORMAL_CALL,EH)
+.L9:
+ .cfi_restore_state
+ # dwarf.cc:4:66
+ .loc 1 4 66 discriminator 10 view .LVU40
+ movq %rax, %rbx
+# SUCC: 9 [always] count:0 (precise, freq 0.0000) (CROSSING)
+ jmp .L8
+ .section .gcc_except_table,"a",@progbits
+.LLSDA1545:
+ .byte 0xff # @LPStart format (omit)
+ .byte 0xff # @TType format (omit)
+ .byte 0x1 # call-site format (uleb128)
+ .uleb128 .LLSDACSE1545-.LLSDACSB1545 # Call-site table length
+.LLSDACSB1545:
+ .uleb128 .LEHB0-.LFB1545 # region 0 start
+ .uleb128 .LEHE0-.LEHB0 # length
+ .uleb128 .L9-.LFB1545 # landing pad
+ .uleb128 0 # action
+ .uleb128 .LEHB1-.LFB1545 # region 1 start
+ .uleb128 .LEHE1-.LEHB1 # length
+ .uleb128 0 # landing pad
+ .uleb128 0 # action
+.LLSDACSE1545:
+ .text
+ .cfi_endproc
+ .section .text.unlikely
+ .cfi_startproc
+ .cfi_personality 0x3,__gxx_personality_v0
+ .cfi_lsda 0x3,.LLSDAC1545
+ .type _Z4funcv.cold, @function
+_Z4funcv.cold:
+.LFSB1545:
+# BLOCK 9, count:0 (precise) seq:7
+# PRED: 8 [always] count:0 (precise, freq 0.0000) (CROSSING)
+.L8:
+ .cfi_def_cfa_offset 16
+ .cfi_offset 3, -16
+ movl $_ZGVZ4funcvE9varStatic, %edi
+ call __cxa_guard_abort
+.LVL9:
+ movq %rbx, %rdi
+.LEHB2:
+# SUCC:
+ call _Unwind_Resume
+.LVL10:
+.LEHE2:
+ .cfi_endproc
+.LFE1545:
+ .section .gcc_except_table
+.LLSDAC1545:
+ .byte 0xff # @LPStart format (omit)
+ .byte 0xff # @TType format (omit)
+ .byte 0x1 # call-site format (uleb128)
+ .uleb128 .LLSDACSEC1545-.LLSDACSBC1545 # Call-site table length
+.LLSDACSBC1545:
+ .uleb128 .LEHB2-.LCOLDB0 # region 0 start
+ .uleb128 .LEHE2-.LEHB2 # length
+ .uleb128 0 # landing pad
+ .uleb128 0 # action
+.LLSDACSEC1545:
+ .section .text.unlikely
+ .text
+ .size _Z4funcv, .-_Z4funcv
+ .section .text.unlikely
+ .size _Z4funcv.cold, .-_Z4funcv.cold
+.LCOLDE0:
+ .text
+.LHOTE0:
+ .section .text.startup,"ax",@progbits
+ .p2align 4
+ .globl main
+ .type main, @function
+main:
+.LFB1555:
+ # dwarf.cc:6:23
+ .loc 1 6 23 is_stmt 1 view -0
+ .cfi_startproc
+# BLOCK 2, count:1073741824 (estimated locally) seq:0
+# PRED: ENTRY [always] count:1073741824 (estimated locally, freq 1.0000) (FALLTHRU)
+ # dwarf.cc:7:2
+ .loc 1 7 2 view .LVU42
+ # dwarf.cc:6:23
+ .loc 1 6 23 is_stmt 0 view .LVU43
+ subq $8, %rsp
+ .cfi_def_cfa_offset 16
+ # dwarf.cc:7:6
+ .loc 1 7 6 view .LVU44
+ call _Z4funcv
+.LVL11:
+ # dwarf.cc:8:2
+ .loc 1 8 2 is_stmt 1 view .LVU45
+ # dwarf.cc:9:1
+ .loc 1 9 1 is_stmt 0 view .LVU46
+ xorl %eax, %eax
+ addq $8, %rsp
+ .cfi_def_cfa_offset 8
+# SUCC: EXIT [always] count:1073741824 (estimated locally, freq 1.0000)
+ ret
+ .cfi_endproc
+.LFE1555:
+ .size main, .-main
+ .local _ZGVZ4funcvE9varStatic
+ .comm _ZGVZ4funcvE9varStatic,8,8
+ .local _ZZ4funcvE9varStatic
+ .comm _ZZ4funcvE9varStatic,8,8
+ .text
+.Letext0:
+ .section .text.unlikely
+.Letext_cold0:
+ .file 4 "/usr/include/c++/15/type_traits"
+ .file 5 "/usr/include/c++/15/debug/debug.h"
+ .file 6 "/usr/include/c++/15/bits/uses_allocator.h"
+ .file 7 "/usr/include/c++/15/x86_64-redhat-linux/bits/c++config.h"
+ .file 8 "/usr/include/c++/15/cwchar"
+ .file 9 "/usr/include/c++/15/bits/exception_ptr.h"
+ .file 10 "/usr/include/c++/15/bits/shared_ptr_base.h"
+ .file 11 "/usr/include/c++/15/bits/utility.h"
+ .file 12 "/usr/include/c++/15/bits/predefined_ops.h"
+ .file 13 "/usr/include/c++/15/bits/stl_iterator.h"
+ .file 14 "/usr/lib/gcc/x86_64-redhat-linux/15/include/stddef.h"
+ .file 15 "<built-in>"
+ .file 16 "/usr/include/bits/types/wint_t.h"
+ .file 17 "/usr/include/bits/types/__mbstate_t.h"
+ .file 18 "/usr/include/bits/types/mbstate_t.h"
+ .file 19 "/usr/include/bits/types/__FILE.h"
+ .file 20 "/usr/include/wchar.h"
+ .file 21 "/usr/include/bits/types/struct_tm.h"
+ .file 22 "/usr/include/c++/15/pstl/execution_defs.h"
+ .file 23 "/usr/include/c++/15/new"
+ .file 24 "/usr/include/c++/15/ext/concurrence.h"
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .long 0x2787 # Length of Compilation Unit Info
+ .value 0x4 # DWARF version number
+ .long .Ldebug_abbrev0 # Offset Into Abbrev. Section
+ .byte 0x8 # Pointer Size (in bytes)
+ .uleb128 0x48 # (DIE (0xb) DW_TAG_compile_unit)
+ .long .LASF2378 # DW_AT_producer: "GNU C++17 15.1.1 20250425 (Red Hat 15.1.1-1) -mtune=generic -march=x86-64 -g3 -gdwarf-4 -O2"
+ .byte 0x4 # DW_AT_language
+ .long .LASF2379 # DW_AT_name: "dwarf.cc"
+ .long .LASF2380 # DW_AT_comp_dir: "."
+ .long .Ldebug_ranges0+0x90 # DW_AT_ranges
+ .quad 0 # DW_AT_low_pc
+ .long .Ldebug_line0 # DW_AT_stmt_list
+ .long .Ldebug_macro0 # DW_AT_GNU_macros
+ .uleb128 0x49 # (DIE (0x2d) DW_TAG_namespace)
+ .ascii "std\0" # DW_AT_name
+ .byte 0x7 # DW_AT_decl_file (/usr/include/c++/15/x86_64-redhat-linux/bits/c++config.h)
+ .value 0x8ca # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x12ea # DW_AT_sibling
+ .uleb128 0x37 # (DIE (0x3a) DW_TAG_namespace)
+ .long .LASF2295 # DW_AT_name: "__cxx11"
+ .byte 0x7 # DW_AT_decl_file (/usr/include/c++/15/x86_64-redhat-linux/bits/c++config.h)
+ .value 0x8ed # DW_AT_decl_line
+ .byte 0x41 # DW_AT_decl_column
+ # DW_AT_export_symbols
+ .uleb128 0x38 # (DIE (0x43) DW_TAG_imported_module)
+ .byte 0x7 # DW_AT_decl_file (/usr/include/c++/15/x86_64-redhat-linux/bits/c++config.h)
+ .value 0x8ed # DW_AT_decl_line
+ .byte 0x41 # DW_AT_decl_column
+ .long 0x3a # DW_AT_import
+ .uleb128 0x18 # (DIE (0x4c) DW_TAG_typedef)
+ .long .LASF2130 # DW_AT_name: "size_t"
+ .byte 0x7 # DW_AT_decl_file (/usr/include/c++/15/x86_64-redhat-linux/bits/c++config.h)
+ .value 0x8cc # DW_AT_decl_line
+ .byte 0x1a # DW_AT_decl_column
+ .long 0x1368 # DW_AT_type
+ .uleb128 0x39 # (DIE (0x59) DW_TAG_namespace)
+ .long .LASF2124 # DW_AT_name: "__swappable_details"
+ .byte 0x4 # DW_AT_decl_file (/usr/include/c++/15/type_traits)
+ .value 0xb92 # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .uleb128 0x39 # (DIE (0x62) DW_TAG_namespace)
+ .long .LASF2125 # DW_AT_name: "__swappable_with_details"
+ .byte 0x4 # DW_AT_decl_file (/usr/include/c++/15/type_traits)
+ .value 0xbe7 # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .uleb128 0x3a # (DIE (0x6b) DW_TAG_namespace)
+ .long .LASF2126 # DW_AT_name: "__debug"
+ .byte 0x5 # DW_AT_decl_file (/usr/include/c++/15/debug/debug.h)
+ .byte 0x32 # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .uleb128 0x16 # (DIE (0x73) DW_TAG_structure_type)
+ .long .LASF2127 # DW_AT_name: "allocator_arg_t"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x6 # DW_AT_decl_file (/usr/include/c++/15/bits/uses_allocator.h)
+ .byte 0x38 # DW_AT_decl_line
+ .byte 0xa # DW_AT_decl_column
+ .long 0x98 # DW_AT_sibling
+ .uleb128 0x4a # (DIE (0x80) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2127 # DW_AT_name: "allocator_arg_t"
+ .byte 0x6 # DW_AT_decl_file (/usr/include/c++/15/bits/uses_allocator.h)
+ .byte 0x38 # DW_AT_decl_line
+ .byte 0x25 # DW_AT_decl_column
+ .long .LASF2136 # DW_AT_linkage_name: "_ZNSt15allocator_arg_tC4Ev"
+ # DW_AT_declaration
+ # DW_AT_explicit
+ .byte 0x1 # DW_AT_defaulted
+ .long 0x91 # DW_AT_object_pointer
+ .uleb128 0x2 # (DIE (0x91) DW_TAG_formal_parameter)
+ .long 0x1435 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x80
+ .byte 0 # end of children of DIE 0x73
+ .uleb128 0x3b # (DIE (0x98) DW_TAG_structure_type)
+ .long .LASF2354 # DW_AT_name: "__uses_alloc_base"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x6 # DW_AT_decl_file (/usr/include/c++/15/bits/uses_allocator.h)
+ .byte 0x4d # DW_AT_decl_line
+ .byte 0xa # DW_AT_decl_column
+ .uleb128 0x16 # (DIE (0xa1) DW_TAG_structure_type)
+ .long .LASF2128 # DW_AT_name: "__uses_alloc0"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x6 # DW_AT_decl_file (/usr/include/c++/15/bits/uses_allocator.h)
+ .byte 0x4f # DW_AT_decl_line
+ .byte 0xa # DW_AT_decl_column
+ .long 0xeb # DW_AT_sibling
+ .uleb128 0x16 # (DIE (0xae) DW_TAG_structure_type)
+ .long .LASF2129 # DW_AT_name: "_Sink"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x6 # DW_AT_decl_file (/usr/include/c++/15/bits/uses_allocator.h)
+ .byte 0x51 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0xd7 # DW_AT_sibling
+ .uleb128 0x4b # (DIE (0xbb) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2148 # DW_AT_name: "operator="
+ .byte 0x6 # DW_AT_decl_file (/usr/include/c++/15/bits/uses_allocator.h)
+ .byte 0x51 # DW_AT_decl_line
+ .byte 0x2e # DW_AT_decl_column
+ .long .LASF2359 # DW_AT_linkage_name: "_ZNSt13__uses_alloc05_SinkaSEPKv"
+ # DW_AT_declaration
+ .long 0xcb # DW_AT_object_pointer
+ .uleb128 0x2 # (DIE (0xcb) DW_TAG_formal_parameter)
+ .long 0x143b # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xd0) DW_TAG_formal_parameter)
+ .long 0x13df # DW_AT_type
+ .byte 0 # end of children of DIE 0xbb
+ .byte 0 # end of children of DIE 0xae
+ .uleb128 0x2c # (DIE (0xd7) DW_TAG_inheritance)
+ .long 0x98 # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0xdd) DW_TAG_member)
+ .long .LASF2133 # DW_AT_name: "_M_a"
+ .byte 0x6 # DW_AT_decl_file (/usr/include/c++/15/bits/uses_allocator.h)
+ .byte 0x51 # DW_AT_decl_line
+ .byte 0x4b # DW_AT_decl_column
+ .long 0xae # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .byte 0 # end of children of DIE 0xa1
+ .uleb128 0x18 # (DIE (0xeb) DW_TAG_typedef)
+ .long .LASF2131 # DW_AT_name: "nullptr_t"
+ .byte 0x7 # DW_AT_decl_file (/usr/include/c++/15/x86_64-redhat-linux/bits/c++config.h)
+ .value 0x8d0 # DW_AT_decl_line
+ .byte 0x1d # DW_AT_decl_column
+ .long 0x1441 # DW_AT_type
+ .uleb128 0x3 # (DIE (0xf8) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x42 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1501 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x100) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x8f # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x148f # DW_AT_import
+ .uleb128 0x3 # (DIE (0x108) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x91 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1523 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x110) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x92 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x153a # DW_AT_import
+ .uleb128 0x3 # (DIE (0x118) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x93 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1557 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x120) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x94 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1578 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x128) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x95 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1594 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x130) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x96 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x15b0 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x138) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x97 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x15cc # DW_AT_import
+ .uleb128 0x3 # (DIE (0x140) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x98 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x15e9 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x148) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x99 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x160a # DW_AT_import
+ .uleb128 0x3 # (DIE (0x150) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x9a # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1621 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x158) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x9b # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x162e # DW_AT_import
+ .uleb128 0x3 # (DIE (0x160) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x9c # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1655 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x168) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x9d # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x167b # DW_AT_import
+ .uleb128 0x3 # (DIE (0x170) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x9e # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1698 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x178) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x9f # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x16c4 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x180) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xa0 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x16e0 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x188) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xa2 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x16f7 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x190) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xa4 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1719 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x198) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xa5 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x173a # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1a0) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xa6 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1756 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1a8) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xa8 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x177d # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1b0) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xab # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x17a2 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1b8) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xae # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x17c8 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1c0) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xb0 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x17ed # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1c8) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xb2 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1809 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1d0) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xb4 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1829 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1d8) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xb5 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x184a # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1e0) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xb6 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1865 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1e8) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xb7 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1880 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1f0) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xb8 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x189b # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1f8) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xb9 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x18b6 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x200) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xba # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x18d1 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x208) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xbb # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x199e # DW_AT_import
+ .uleb128 0x3 # (DIE (0x210) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xbc # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x19b4 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x218) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xbd # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x19d4 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x220) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xbe # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x19f4 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x228) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xbf # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1a14 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x230) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xc0 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1a40 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x238) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xc1 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1a5b # DW_AT_import
+ .uleb128 0x3 # (DIE (0x240) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xc3 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1a7d # DW_AT_import
+ .uleb128 0x3 # (DIE (0x248) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xc5 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1a99 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x250) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xc6 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1ab9 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x258) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xc7 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1ade # DW_AT_import
+ .uleb128 0x3 # (DIE (0x260) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xc8 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1b03 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x268) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xc9 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1b23 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x270) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xca # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1b3a # DW_AT_import
+ .uleb128 0x3 # (DIE (0x278) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xcb # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1b5b # DW_AT_import
+ .uleb128 0x3 # (DIE (0x280) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xcc # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1b7c # DW_AT_import
+ .uleb128 0x3 # (DIE (0x288) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xcd # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1b9d # DW_AT_import
+ .uleb128 0x3 # (DIE (0x290) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xce # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1bbe # DW_AT_import
+ .uleb128 0x3 # (DIE (0x298) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xcf # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1bd6 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x2a0) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xd0 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1bf2 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x2a8) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xd0 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1c11 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x2b0) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xd1 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1c30 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x2b8) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xd1 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1c4f # DW_AT_import
+ .uleb128 0x3 # (DIE (0x2c0) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xd2 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1c6e # DW_AT_import
+ .uleb128 0x3 # (DIE (0x2c8) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xd2 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1c8d # DW_AT_import
+ .uleb128 0x3 # (DIE (0x2d0) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xd3 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1cac # DW_AT_import
+ .uleb128 0x3 # (DIE (0x2d8) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xd3 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1ccb # DW_AT_import
+ .uleb128 0x3 # (DIE (0x2e0) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xd4 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1cea # DW_AT_import
+ .uleb128 0x3 # (DIE (0x2e8) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xd4 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1d0f # DW_AT_import
+ .uleb128 0x11 # (DIE (0x2f0) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .value 0x10d # DW_AT_decl_line
+ .byte 0x16 # DW_AT_decl_column
+ .long 0x1d34 # DW_AT_import
+ .uleb128 0x11 # (DIE (0x2f9) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .value 0x10e # DW_AT_decl_line
+ .byte 0x16 # DW_AT_decl_column
+ .long 0x1d50 # DW_AT_import
+ .uleb128 0x11 # (DIE (0x302) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .value 0x10f # DW_AT_decl_line
+ .byte 0x16 # DW_AT_decl_column
+ .long 0x1d75 # DW_AT_import
+ .uleb128 0x11 # (DIE (0x30b) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .value 0x11d # DW_AT_decl_line
+ .byte 0xe # DW_AT_decl_column
+ .long 0x1a7d # DW_AT_import
+ .uleb128 0x11 # (DIE (0x314) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .value 0x120 # DW_AT_decl_line
+ .byte 0xe # DW_AT_decl_column
+ .long 0x177d # DW_AT_import
+ .uleb128 0x11 # (DIE (0x31d) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .value 0x123 # DW_AT_decl_line
+ .byte 0xe # DW_AT_decl_column
+ .long 0x17c8 # DW_AT_import
+ .uleb128 0x11 # (DIE (0x326) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .value 0x126 # DW_AT_decl_line
+ .byte 0xe # DW_AT_decl_column
+ .long 0x1809 # DW_AT_import
+ .uleb128 0x11 # (DIE (0x32f) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .value 0x12a # DW_AT_decl_line
+ .byte 0xe # DW_AT_decl_column
+ .long 0x1d34 # DW_AT_import
+ .uleb128 0x11 # (DIE (0x338) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .value 0x12b # DW_AT_decl_line
+ .byte 0xe # DW_AT_decl_column
+ .long 0x1d50 # DW_AT_import
+ .uleb128 0x11 # (DIE (0x341) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .value 0x12c # DW_AT_decl_line
+ .byte 0xe # DW_AT_decl_column
+ .long 0x1d75 # DW_AT_import
+ .uleb128 0x2d # (DIE (0x34a) DW_TAG_namespace)
+ .long .LASF2132 # DW_AT_name: "__exception_ptr"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x3d # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0x53f # DW_AT_sibling
+ .uleb128 0x3c # (DIE (0x356) DW_TAG_class_type)
+ .long .LASF2135 # DW_AT_name: "exception_ptr"
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x61 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x51a # DW_AT_sibling
+ .uleb128 0xa # (DIE (0x363) DW_TAG_member)
+ .long .LASF2134 # DW_AT_name: "_M_exception_object"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x63 # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0x13dd # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .uleb128 0x4c # (DIE (0x370) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2135 # DW_AT_name: "exception_ptr"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x65 # DW_AT_decl_line
+ .byte 0x10 # DW_AT_decl_column
+ .long .LASF2137 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptrC4EPv"
+ # DW_AT_declaration
+ # DW_AT_explicit
+ .long 0x384 # DW_AT_object_pointer
+ .long 0x38f # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x384) DW_TAG_formal_parameter)
+ .long 0x1d9a # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x389) DW_TAG_formal_parameter)
+ .long 0x13dd # DW_AT_type
+ .byte 0 # end of children of DIE 0x370
+ .uleb128 0x19 # (DIE (0x38f) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2138 # DW_AT_name: "_M_addref"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x67 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long .LASF2140 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptr9_M_addrefEv"
+ # DW_AT_declaration
+ .long 0x3a3 # DW_AT_object_pointer
+ .long 0x3a9 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x3a3) DW_TAG_formal_parameter)
+ .long 0x1d9a # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x38f
+ .uleb128 0x19 # (DIE (0x3a9) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2139 # DW_AT_name: "_M_release"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x68 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long .LASF2141 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptr10_M_releaseEv"
+ # DW_AT_declaration
+ .long 0x3bd # DW_AT_object_pointer
+ .long 0x3c3 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x3bd) DW_TAG_formal_parameter)
+ .long 0x1d9a # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x3a9
+ .uleb128 0x4d # (DIE (0x3c3) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2142 # DW_AT_name: "_M_get"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x6a # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long .LASF2143 # DW_AT_linkage_name: "_ZNKSt15__exception_ptr13exception_ptr6_M_getEv"
+ .long 0x13dd # DW_AT_type
+ # DW_AT_declaration
+ .long 0x3db # DW_AT_object_pointer
+ .long 0x3e1 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x3db) DW_TAG_formal_parameter)
+ .long 0x1da0 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x3c3
+ .uleb128 0x17 # (DIE (0x3e1) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2135 # DW_AT_name: "exception_ptr"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x72 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2144 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptrC4Ev"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x3f6 # DW_AT_object_pointer
+ .long 0x3fc # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x3f6) DW_TAG_formal_parameter)
+ .long 0x1d9a # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x3e1
+ .uleb128 0x17 # (DIE (0x3fc) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2135 # DW_AT_name: "exception_ptr"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x74 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2145 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptrC4ERKS0_"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x411 # DW_AT_object_pointer
+ .long 0x41c # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x411) DW_TAG_formal_parameter)
+ .long 0x1d9a # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x416) DW_TAG_formal_parameter)
+ .long 0x1da6 # DW_AT_type
+ .byte 0 # end of children of DIE 0x3fc
+ .uleb128 0x17 # (DIE (0x41c) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2135 # DW_AT_name: "exception_ptr"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x77 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2146 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptrC4EDn"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x431 # DW_AT_object_pointer
+ .long 0x43c # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x431) DW_TAG_formal_parameter)
+ .long 0x1d9a # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x436) DW_TAG_formal_parameter)
+ .long 0xeb # DW_AT_type
+ .byte 0 # end of children of DIE 0x41c
+ .uleb128 0x17 # (DIE (0x43c) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2135 # DW_AT_name: "exception_ptr"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x7b # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2147 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptrC4EOS0_"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x451 # DW_AT_object_pointer
+ .long 0x45c # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x451) DW_TAG_formal_parameter)
+ .long 0x1d9a # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x456) DW_TAG_formal_parameter)
+ .long 0x1dac # DW_AT_type
+ .byte 0 # end of children of DIE 0x43c
+ .uleb128 0x1c # (DIE (0x45c) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2148 # DW_AT_name: "operator="
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x88 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2149 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptraSERKS0_"
+ .long 0x1db2 # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x475 # DW_AT_object_pointer
+ .long 0x480 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x475) DW_TAG_formal_parameter)
+ .long 0x1d9a # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x47a) DW_TAG_formal_parameter)
+ .long 0x1da6 # DW_AT_type
+ .byte 0 # end of children of DIE 0x45c
+ .uleb128 0x1c # (DIE (0x480) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2148 # DW_AT_name: "operator="
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x8c # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2150 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptraSEOS0_"
+ .long 0x1db2 # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x499 # DW_AT_object_pointer
+ .long 0x4a4 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x499) DW_TAG_formal_parameter)
+ .long 0x1d9a # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x49e) DW_TAG_formal_parameter)
+ .long 0x1dac # DW_AT_type
+ .byte 0 # end of children of DIE 0x480
+ .uleb128 0x17 # (DIE (0x4a4) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2151 # DW_AT_name: "~exception_ptr"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x93 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2152 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptrD4Ev"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x4b9 # DW_AT_object_pointer
+ .long 0x4bf # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x4b9) DW_TAG_formal_parameter)
+ .long 0x1d9a # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x4a4
+ .uleb128 0x17 # (DIE (0x4bf) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2153 # DW_AT_name: "swap"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x96 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2154 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptr4swapERS0_"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x4d4 # DW_AT_object_pointer
+ .long 0x4df # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x4d4) DW_TAG_formal_parameter)
+ .long 0x1d9a # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x4d9) DW_TAG_formal_parameter)
+ .long 0x1db2 # DW_AT_type
+ .byte 0 # end of children of DIE 0x4bf
+ .uleb128 0x4e # (DIE (0x4df) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2252 # DW_AT_name: "operator bool"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0xa1 # DW_AT_decl_line
+ .byte 0x10 # DW_AT_decl_column
+ .long .LASF2381 # DW_AT_linkage_name: "_ZNKSt15__exception_ptr13exception_ptrcvbEv"
+ .long 0x136f # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ # DW_AT_explicit
+ .long 0x4f8 # DW_AT_object_pointer
+ .long 0x4fe # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x4f8) DW_TAG_formal_parameter)
+ .long 0x1da0 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x4df
+ .uleb128 0x4f # (DIE (0x4fe) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2155 # DW_AT_name: "__cxa_exception_type"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0xb6 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2156 # DW_AT_linkage_name: "_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv"
+ .long 0x1db8 # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x513 # DW_AT_object_pointer
+ .uleb128 0x2 # (DIE (0x513) DW_TAG_formal_parameter)
+ .long 0x1da0 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x4fe
+ .byte 0 # end of children of DIE 0x356
+ .uleb128 0x7 # (DIE (0x51a) DW_TAG_const_type)
+ .long 0x356 # DW_AT_type
+ .uleb128 0x3 # (DIE (0x51f) DW_TAG_imported_declaration)
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x55 # DW_AT_decl_line
+ .byte 0x10 # DW_AT_decl_column
+ .long 0x547 # DW_AT_import
+ .uleb128 0x50 # (DIE (0x527) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2153 # DW_AT_name: "swap"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0xe5 # DW_AT_decl_line
+ .byte 0x5 # DW_AT_decl_column
+ .long .LASF2382 # DW_AT_linkage_name: "_ZNSt15__exception_ptr4swapERNS_13exception_ptrES1_"
+ # DW_AT_declaration
+ .uleb128 0x1 # (DIE (0x533) DW_TAG_formal_parameter)
+ .long 0x1db2 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x538) DW_TAG_formal_parameter)
+ .long 0x1db2 # DW_AT_type
+ .byte 0 # end of children of DIE 0x527
+ .byte 0 # end of children of DIE 0x34a
+ .uleb128 0x3 # (DIE (0x53f) DW_TAG_imported_declaration)
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x42 # DW_AT_decl_line
+ .byte 0x1a # DW_AT_decl_column
+ .long 0x356 # DW_AT_import
+ .uleb128 0x51 # (DIE (0x547) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2157 # DW_AT_name: "rethrow_exception"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x51 # DW_AT_decl_line
+ .byte 0x8 # DW_AT_decl_column
+ .long .LASF2158 # DW_AT_linkage_name: "_ZSt17rethrow_exceptionNSt15__exception_ptr13exception_ptrE"
+ # DW_AT_noreturn
+ # DW_AT_declaration
+ .long 0x55d # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x557) DW_TAG_formal_parameter)
+ .long 0x356 # DW_AT_type
+ .byte 0 # end of children of DIE 0x547
+ .uleb128 0x52 # (DIE (0x55d) DW_TAG_class_type)
+ .long .LASF2383 # DW_AT_name: "type_info"
+ # DW_AT_declaration
+ .uleb128 0x7 # (DIE (0x562) DW_TAG_const_type)
+ .long 0x55d # DW_AT_type
+ .uleb128 0x3 # (DIE (0x567) DW_TAG_imported_declaration)
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0xf2 # DW_AT_decl_line
+ .byte 0x1a # DW_AT_decl_column
+ .long 0x527 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x56f) DW_TAG_imported_declaration)
+ .byte 0xa # DW_AT_decl_file (/usr/include/c++/15/bits/shared_ptr_base.h)
+ .byte 0x61 # DW_AT_decl_line
+ .byte 0x14 # DW_AT_decl_column
+ .long 0x132b # DW_AT_import
+ .uleb128 0x3 # (DIE (0x577) DW_TAG_imported_declaration)
+ .byte 0xa # DW_AT_decl_file (/usr/include/c++/15/bits/shared_ptr_base.h)
+ .byte 0x62 # DW_AT_decl_line
+ .byte 0x14 # DW_AT_decl_column
+ .long 0x1dbe # DW_AT_import
+ .uleb128 0x3 # (DIE (0x57f) DW_TAG_imported_declaration)
+ .byte 0xa # DW_AT_decl_file (/usr/include/c++/15/bits/shared_ptr_base.h)
+ .byte 0x63 # DW_AT_decl_line
+ .byte 0x14 # DW_AT_decl_column
+ .long 0x133d # DW_AT_import
+ .uleb128 0x3 # (DIE (0x587) DW_TAG_imported_declaration)
+ .byte 0xa # DW_AT_decl_file (/usr/include/c++/15/bits/shared_ptr_base.h)
+ .byte 0x64 # DW_AT_decl_line
+ .byte 0x14 # DW_AT_decl_column
+ .long 0x1343 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x58f) DW_TAG_imported_declaration)
+ .byte 0xa # DW_AT_decl_file (/usr/include/c++/15/bits/shared_ptr_base.h)
+ .byte 0x65 # DW_AT_decl_line
+ .byte 0x14 # DW_AT_decl_column
+ .long 0x1349 # DW_AT_import
+ .uleb128 0x16 # (DIE (0x597) DW_TAG_structure_type)
+ .long .LASF2159 # DW_AT_name: "default_delete<Base>"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0x45 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x5e8 # DW_AT_sibling
+ .uleb128 0x22 # (DIE (0x5a4) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2160 # DW_AT_name: "default_delete"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0x48 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2161 # DW_AT_linkage_name: "_ZNSt14default_deleteI4BaseEC4Ev"
+ # DW_AT_declaration
+ .byte 0x1 # DW_AT_defaulted
+ .long 0x5b9 # DW_AT_object_pointer
+ .long 0x5bf # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x5b9) DW_TAG_formal_parameter)
+ .long 0x1df1 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x5a4
+ .uleb128 0x19 # (DIE (0x5bf) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2162 # DW_AT_name: "operator()"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0x57 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2163 # DW_AT_linkage_name: "_ZNKSt14default_deleteI4BaseEclEPS0_"
+ # DW_AT_declaration
+ .long 0x5d3 # DW_AT_object_pointer
+ .long 0x5de # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x5d3) DW_TAG_formal_parameter)
+ .long 0x1df7 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x5d8) DW_TAG_formal_parameter)
+ .long 0x1e02 # DW_AT_type
+ .byte 0 # end of children of DIE 0x5bf
+ .uleb128 0xd # (DIE (0x5de) DW_TAG_template_type_param)
+ .ascii "_Tp\0" # DW_AT_name
+ .long 0x1de8 # DW_AT_type
+ .byte 0 # end of children of DIE 0x597
+ .uleb128 0x7 # (DIE (0x5e8) DW_TAG_const_type)
+ .long 0x597 # DW_AT_type
+ .uleb128 0x3c # (DIE (0x5ed) DW_TAG_class_type)
+ .long .LASF2164 # DW_AT_name: "__uniq_ptr_impl<Base, std::default_delete<Base> >"
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0x8e # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x7ae # DW_AT_sibling
+ .uleb128 0x16 # (DIE (0x5fa) DW_TAG_structure_type)
+ .long .LASF2165 # DW_AT_name: "_Ptr<Base, std::default_delete<Base>, void>"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0x91 # DW_AT_decl_line
+ .byte 0x9 # DW_AT_decl_column
+ .long 0x626 # DW_AT_sibling
+ .uleb128 0xe # (DIE (0x607) DW_TAG_typedef)
+ .long .LASF2166 # DW_AT_name: "type"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0x93 # DW_AT_decl_line
+ .byte 0xa # DW_AT_decl_column
+ .long 0x1e02 # DW_AT_type
+ .uleb128 0xd # (DIE (0x613) DW_TAG_template_type_param)
+ .ascii "_Up\0" # DW_AT_name
+ .long 0x1de8 # DW_AT_type
+ .uleb128 0xd # (DIE (0x61c) DW_TAG_template_type_param)
+ .ascii "_Ep\0" # DW_AT_name
+ .long 0x597 # DW_AT_type
+ .byte 0 # end of children of DIE 0x5fa
+ .uleb128 0x53 # (DIE (0x626) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2167 # DW_AT_name: "__uniq_ptr_impl"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xa8 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2168 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EEC4Ev"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .byte 0x1 # DW_AT_defaulted
+ .long 0x63c # DW_AT_object_pointer
+ .long 0x642 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x63c) DW_TAG_formal_parameter)
+ .long 0x1ec2 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x626
+ .uleb128 0x17 # (DIE (0x642) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2167 # DW_AT_name: "__uniq_ptr_impl"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xaa # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2169 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EEC4EPS0_"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x657 # DW_AT_object_pointer
+ .long 0x662 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x657) DW_TAG_formal_parameter)
+ .long 0x1ec2 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x65c) DW_TAG_formal_parameter)
+ .long 0x662 # DW_AT_type
+ .byte 0 # end of children of DIE 0x642
+ .uleb128 0x54 # (DIE (0x662) DW_TAG_typedef)
+ .long .LASF2256 # DW_AT_name: "pointer"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xa2 # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0x607 # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ .uleb128 0x17 # (DIE (0x66f) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2167 # DW_AT_name: "__uniq_ptr_impl"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xb2 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2170 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EEC4EOS3_"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x684 # DW_AT_object_pointer
+ .long 0x68f # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x684) DW_TAG_formal_parameter)
+ .long 0x1ec2 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x689) DW_TAG_formal_parameter)
+ .long 0x1ecd # DW_AT_type
+ .byte 0 # end of children of DIE 0x66f
+ .uleb128 0x1c # (DIE (0x68f) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2148 # DW_AT_name: "operator="
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xb7 # DW_AT_decl_line
+ .byte 0x18 # DW_AT_decl_column
+ .long .LASF2171 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EEaSEOS3_"
+ .long 0x1ed3 # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x6a8 # DW_AT_object_pointer
+ .long 0x6b3 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x6a8) DW_TAG_formal_parameter)
+ .long 0x1ec2 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x6ad) DW_TAG_formal_parameter)
+ .long 0x1ecd # DW_AT_type
+ .byte 0 # end of children of DIE 0x68f
+ .uleb128 0x1c # (DIE (0x6b3) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2172 # DW_AT_name: "_M_ptr"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xbf # DW_AT_decl_line
+ .byte 0x12 # DW_AT_decl_column
+ .long .LASF2173 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE6_M_ptrEv"
+ .long 0x1ed9 # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x6cc # DW_AT_object_pointer
+ .long 0x6d2 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x6cc) DW_TAG_formal_parameter)
+ .long 0x1ec2 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x6b3
+ .uleb128 0x1c # (DIE (0x6d2) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2172 # DW_AT_name: "_M_ptr"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xc1 # DW_AT_decl_line
+ .byte 0x12 # DW_AT_decl_column
+ .long .LASF2174 # DW_AT_linkage_name: "_ZNKSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE6_M_ptrEv"
+ .long 0x662 # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x6eb # DW_AT_object_pointer
+ .long 0x6f1 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x6eb) DW_TAG_formal_parameter)
+ .long 0x1edf # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x6d2
+ .uleb128 0x1c # (DIE (0x6f1) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2175 # DW_AT_name: "_M_deleter"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xc3 # DW_AT_decl_line
+ .byte 0x12 # DW_AT_decl_column
+ .long .LASF2176 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE10_M_deleterEv"
+ .long 0x1e2a # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x70a # DW_AT_object_pointer
+ .long 0x710 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x70a) DW_TAG_formal_parameter)
+ .long 0x1ec2 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x6f1
+ .uleb128 0x1c # (DIE (0x710) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2175 # DW_AT_name: "_M_deleter"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xc5 # DW_AT_decl_line
+ .byte 0x12 # DW_AT_decl_column
+ .long .LASF2177 # DW_AT_linkage_name: "_ZNKSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE10_M_deleterEv"
+ .long 0x1e18 # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x729 # DW_AT_object_pointer
+ .long 0x72f # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x729) DW_TAG_formal_parameter)
+ .long 0x1edf # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x710
+ .uleb128 0x17 # (DIE (0x72f) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2178 # DW_AT_name: "reset"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xc8 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long .LASF2179 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE5resetEPS0_"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x744 # DW_AT_object_pointer
+ .long 0x74f # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x744) DW_TAG_formal_parameter)
+ .long 0x1ec2 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x749) DW_TAG_formal_parameter)
+ .long 0x662 # DW_AT_type
+ .byte 0 # end of children of DIE 0x72f
+ .uleb128 0x1c # (DIE (0x74f) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2180 # DW_AT_name: "release"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xd1 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long .LASF2181 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE7releaseEv"
+ .long 0x662 # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x768 # DW_AT_object_pointer
+ .long 0x76e # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x768) DW_TAG_formal_parameter)
+ .long 0x1ec2 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x74f
+ .uleb128 0x17 # (DIE (0x76e) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2153 # DW_AT_name: "swap"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xda # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2182 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE4swapERS3_"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x783 # DW_AT_object_pointer
+ .long 0x78e # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x783) DW_TAG_formal_parameter)
+ .long 0x1ec2 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x788) DW_TAG_formal_parameter)
+ .long 0x1ed3 # DW_AT_type
+ .byte 0 # end of children of DIE 0x76e
+ .uleb128 0xa # (DIE (0x78e) DW_TAG_member)
+ .long .LASF2183 # DW_AT_name: "_M_t"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xe2 # DW_AT_decl_line
+ .byte 0x1b # DW_AT_decl_column
+ .long 0xc88 # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .uleb128 0xd # (DIE (0x79b) DW_TAG_template_type_param)
+ .ascii "_Tp\0" # DW_AT_name
+ .long 0x1de8 # DW_AT_type
+ .uleb128 0xd # (DIE (0x7a4) DW_TAG_template_type_param)
+ .ascii "_Dp\0" # DW_AT_name
+ .long 0x597 # DW_AT_type
+ .byte 0 # end of children of DIE 0x5ed
+ .uleb128 0x7 # (DIE (0x7ae) DW_TAG_const_type)
+ .long 0x5ed # DW_AT_type
+ .uleb128 0x16 # (DIE (0x7b3) DW_TAG_structure_type)
+ .long .LASF2184 # DW_AT_name: "_Head_base<1, std::default_delete<Base>, true>"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0x5b # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x8b2 # DW_AT_sibling
+ .uleb128 0x19 # (DIE (0x7c0) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2185 # DW_AT_name: "_Head_base"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0x5d # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2186 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC4Ev"
+ # DW_AT_declaration
+ .long 0x7d4 # DW_AT_object_pointer
+ .long 0x7da # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x7d4) DW_TAG_formal_parameter)
+ .long 0x1e0d # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x7c0
+ .uleb128 0x19 # (DIE (0x7da) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2185 # DW_AT_name: "_Head_base"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0x60 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2187 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC4ERKS2_"
+ # DW_AT_declaration
+ .long 0x7ee # DW_AT_object_pointer
+ .long 0x7f9 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x7ee) DW_TAG_formal_parameter)
+ .long 0x1e0d # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x7f3) DW_TAG_formal_parameter)
+ .long 0x1e18 # DW_AT_type
+ .byte 0 # end of children of DIE 0x7da
+ .uleb128 0x22 # (DIE (0x7f9) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2185 # DW_AT_name: "_Head_base"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0x63 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2188 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC4ERKS3_"
+ # DW_AT_declaration
+ .byte 0x1 # DW_AT_defaulted
+ .long 0x80e # DW_AT_object_pointer
+ .long 0x819 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x80e) DW_TAG_formal_parameter)
+ .long 0x1e0d # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x813) DW_TAG_formal_parameter)
+ .long 0x1e1e # DW_AT_type
+ .byte 0 # end of children of DIE 0x7f9
+ .uleb128 0x22 # (DIE (0x819) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2185 # DW_AT_name: "_Head_base"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0x64 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2189 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC4EOS3_"
+ # DW_AT_declaration
+ .byte 0x1 # DW_AT_defaulted
+ .long 0x82e # DW_AT_object_pointer
+ .long 0x839 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x82e) DW_TAG_formal_parameter)
+ .long 0x1e0d # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x833) DW_TAG_formal_parameter)
+ .long 0x1e24 # DW_AT_type
+ .byte 0 # end of children of DIE 0x819
+ .uleb128 0x19 # (DIE (0x839) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2185 # DW_AT_name: "_Head_base"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0x6b # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2190 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC4ESt15allocator_arg_tSt13__uses_alloc0"
+ # DW_AT_declaration
+ .long 0x84d # DW_AT_object_pointer
+ .long 0x85d # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x84d) DW_TAG_formal_parameter)
+ .long 0x1e0d # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x852) DW_TAG_formal_parameter)
+ .long 0x73 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x857) DW_TAG_formal_parameter)
+ .long 0xa1 # DW_AT_type
+ .byte 0 # end of children of DIE 0x839
+ .uleb128 0xf # (DIE (0x85d) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2191 # DW_AT_name: "_M_head"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0x89 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2192 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EE7_M_headERS3_"
+ .long 0x1e2a # DW_AT_type
+ # DW_AT_declaration
+ .long 0x877 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x871) DW_TAG_formal_parameter)
+ .long 0x1e30 # DW_AT_type
+ .byte 0 # end of children of DIE 0x85d
+ .uleb128 0xf # (DIE (0x877) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2191 # DW_AT_name: "_M_head"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0x8c # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2193 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EE7_M_headERKS3_"
+ .long 0x1e18 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x891 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x88b) DW_TAG_formal_parameter)
+ .long 0x1e1e # DW_AT_type
+ .byte 0 # end of children of DIE 0x877
+ .uleb128 0xa # (DIE (0x891) DW_TAG_member)
+ .long .LASF2194 # DW_AT_name: "_M_head_impl"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0x8e # DW_AT_decl_line
+ .byte 0x27 # DW_AT_decl_column
+ .long 0x597 # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .uleb128 0x27 # (DIE (0x89e) DW_TAG_template_value_param)
+ .long .LASF2206 # DW_AT_name: "_Idx"
+ .long 0x1368 # DW_AT_type
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0x23 # (DIE (0x8a8) DW_TAG_template_type_param)
+ .long .LASF2195 # DW_AT_name: "_Head"
+ .long 0x597 # DW_AT_type
+ .byte 0 # end of children of DIE 0x7b3
+ .uleb128 0x7 # (DIE (0x8b2) DW_TAG_const_type)
+ .long 0x7b3 # DW_AT_type
+ .uleb128 0x24 # (DIE (0x8b7) DW_TAG_structure_type)
+ .long .LASF2196 # DW_AT_name: "_Tuple_impl<1, std::default_delete<Base> >"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x222 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x9d9 # DW_AT_sibling
+ .uleb128 0x2e # (DIE (0x8c5) DW_TAG_inheritance)
+ .long 0x7b3 # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .byte 0x3 # DW_AT_accessibility
+ .uleb128 0x8 # (DIE (0x8cc) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2191 # DW_AT_name: "_M_head"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x22a # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2197 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEE7_M_headERS3_"
+ .long 0x1e2a # DW_AT_type
+ # DW_AT_declaration
+ .long 0x8e7 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x8e1) DW_TAG_formal_parameter)
+ .long 0x1e36 # DW_AT_type
+ .byte 0 # end of children of DIE 0x8cc
+ .uleb128 0x8 # (DIE (0x8e7) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2191 # DW_AT_name: "_M_head"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x22d # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2198 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEE7_M_headERKS3_"
+ .long 0x1e18 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x902 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x8fc) DW_TAG_formal_parameter)
+ .long 0x1e3c # DW_AT_type
+ .byte 0 # end of children of DIE 0x8e7
+ .uleb128 0x2f # (DIE (0x902) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2199 # DW_AT_name: "_Tuple_impl"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x230 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2200 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEC4Ev"
+ # DW_AT_declaration
+ .long 0x917 # DW_AT_object_pointer
+ .long 0x91d # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x917) DW_TAG_formal_parameter)
+ .long 0x1e42 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x902
+ .uleb128 0x3d # (DIE (0x91d) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2199 # DW_AT_name: "_Tuple_impl"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x234 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2201 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEC4ERKS2_"
+ # DW_AT_declaration
+ # DW_AT_explicit
+ .long 0x932 # DW_AT_object_pointer
+ .long 0x93d # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x932) DW_TAG_formal_parameter)
+ .long 0x1e42 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x937) DW_TAG_formal_parameter)
+ .long 0x1e18 # DW_AT_type
+ .byte 0 # end of children of DIE 0x91d
+ .uleb128 0x30 # (DIE (0x93d) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2199 # DW_AT_name: "_Tuple_impl"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x23e # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2202 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEC4ERKS3_"
+ # DW_AT_declaration
+ .byte 0x1 # DW_AT_defaulted
+ .long 0x953 # DW_AT_object_pointer
+ .long 0x95e # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x953) DW_TAG_formal_parameter)
+ .long 0x1e42 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x958) DW_TAG_formal_parameter)
+ .long 0x1e3c # DW_AT_type
+ .byte 0 # end of children of DIE 0x93d
+ .uleb128 0x3e # (DIE (0x95e) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2148 # DW_AT_name: "operator="
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x242 # DW_AT_decl_line
+ .byte 0x14 # DW_AT_decl_column
+ .long .LASF2225 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEaSERKS3_"
+ .long 0x1e36 # DW_AT_type
+ # DW_AT_declaration
+ # DW_AT_deleted
+ .long 0x977 # DW_AT_object_pointer
+ .long 0x982 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x977) DW_TAG_formal_parameter)
+ .long 0x1e42 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x97c) DW_TAG_formal_parameter)
+ .long 0x1e3c # DW_AT_type
+ .byte 0 # end of children of DIE 0x95e
+ .uleb128 0x2f # (DIE (0x982) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2199 # DW_AT_name: "_Tuple_impl"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x248 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2203 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEC4EOS3_"
+ # DW_AT_declaration
+ .long 0x997 # DW_AT_object_pointer
+ .long 0x9a2 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x997) DW_TAG_formal_parameter)
+ .long 0x1e42 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x99c) DW_TAG_formal_parameter)
+ .long 0x1e4d # DW_AT_type
+ .byte 0 # end of children of DIE 0x982
+ .uleb128 0x20 # (DIE (0x9a2) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2204 # DW_AT_name: "_M_swap"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x2f0 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2205 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEE7_M_swapERS3_"
+ .byte 0x2 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x9b8 # DW_AT_object_pointer
+ .long 0x9c3 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x9b8) DW_TAG_formal_parameter)
+ .long 0x1e42 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x9bd) DW_TAG_formal_parameter)
+ .long 0x1e36 # DW_AT_type
+ .byte 0 # end of children of DIE 0x9a2
+ .uleb128 0x27 # (DIE (0x9c3) DW_TAG_template_value_param)
+ .long .LASF2206 # DW_AT_name: "_Idx"
+ .long 0x1368 # DW_AT_type
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0x28 # (DIE (0x9cd) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2229 # DW_AT_name: "_Elements"
+ .uleb128 0xb # (DIE (0x9d2) DW_TAG_template_type_param)
+ .long 0x597 # DW_AT_type
+ .byte 0 # end of children of DIE 0x9cd
+ .byte 0 # end of children of DIE 0x8b7
+ .uleb128 0x7 # (DIE (0x9d9) DW_TAG_const_type)
+ .long 0x8b7 # DW_AT_type
+ .uleb128 0x16 # (DIE (0x9de) DW_TAG_structure_type)
+ .long .LASF2207 # DW_AT_name: "_Head_base<0, Base*, false>"
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0xc8 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0xadd # DW_AT_sibling
+ .uleb128 0x19 # (DIE (0x9eb) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2185 # DW_AT_name: "_Head_base"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0xca # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2208 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm0EP4BaseLb0EEC4Ev"
+ # DW_AT_declaration
+ .long 0x9ff # DW_AT_object_pointer
+ .long 0xa05 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x9ff) DW_TAG_formal_parameter)
+ .long 0x1e53 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x9eb
+ .uleb128 0x19 # (DIE (0xa05) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2185 # DW_AT_name: "_Head_base"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0xcd # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2209 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm0EP4BaseLb0EEC4ERKS1_"
+ # DW_AT_declaration
+ .long 0xa19 # DW_AT_object_pointer
+ .long 0xa24 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xa19) DW_TAG_formal_parameter)
+ .long 0x1e53 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xa1e) DW_TAG_formal_parameter)
+ .long 0x1e5e # DW_AT_type
+ .byte 0 # end of children of DIE 0xa05
+ .uleb128 0x22 # (DIE (0xa24) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2185 # DW_AT_name: "_Head_base"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0xd0 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2210 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm0EP4BaseLb0EEC4ERKS2_"
+ # DW_AT_declaration
+ .byte 0x1 # DW_AT_defaulted
+ .long 0xa39 # DW_AT_object_pointer
+ .long 0xa44 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xa39) DW_TAG_formal_parameter)
+ .long 0x1e53 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xa3e) DW_TAG_formal_parameter)
+ .long 0x1e64 # DW_AT_type
+ .byte 0 # end of children of DIE 0xa24
+ .uleb128 0x22 # (DIE (0xa44) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2185 # DW_AT_name: "_Head_base"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0xd1 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2211 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm0EP4BaseLb0EEC4EOS2_"
+ # DW_AT_declaration
+ .byte 0x1 # DW_AT_defaulted
+ .long 0xa59 # DW_AT_object_pointer
+ .long 0xa64 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xa59) DW_TAG_formal_parameter)
+ .long 0x1e53 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xa5e) DW_TAG_formal_parameter)
+ .long 0x1e6a # DW_AT_type
+ .byte 0 # end of children of DIE 0xa44
+ .uleb128 0x19 # (DIE (0xa64) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2185 # DW_AT_name: "_Head_base"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0xd8 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2212 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm0EP4BaseLb0EEC4ESt15allocator_arg_tSt13__uses_alloc0"
+ # DW_AT_declaration
+ .long 0xa78 # DW_AT_object_pointer
+ .long 0xa88 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xa78) DW_TAG_formal_parameter)
+ .long 0x1e53 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xa7d) DW_TAG_formal_parameter)
+ .long 0x73 # DW_AT_type
+ .uleb128 0x1 # (DIE (0xa82) DW_TAG_formal_parameter)
+ .long 0xa1 # DW_AT_type
+ .byte 0 # end of children of DIE 0xa64
+ .uleb128 0xf # (DIE (0xa88) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2191 # DW_AT_name: "_M_head"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0xf6 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2213 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm0EP4BaseLb0EE7_M_headERS2_"
+ .long 0x1e70 # DW_AT_type
+ # DW_AT_declaration
+ .long 0xaa2 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0xa9c) DW_TAG_formal_parameter)
+ .long 0x1e76 # DW_AT_type
+ .byte 0 # end of children of DIE 0xa88
+ .uleb128 0xf # (DIE (0xaa2) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2191 # DW_AT_name: "_M_head"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0xf9 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2214 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm0EP4BaseLb0EE7_M_headERKS2_"
+ .long 0x1e5e # DW_AT_type
+ # DW_AT_declaration
+ .long 0xabc # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0xab6) DW_TAG_formal_parameter)
+ .long 0x1e64 # DW_AT_type
+ .byte 0 # end of children of DIE 0xaa2
+ .uleb128 0xa # (DIE (0xabc) DW_TAG_member)
+ .long .LASF2194 # DW_AT_name: "_M_head_impl"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0xfb # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0x1e02 # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .uleb128 0x27 # (DIE (0xac9) DW_TAG_template_value_param)
+ .long .LASF2206 # DW_AT_name: "_Idx"
+ .long 0x1368 # DW_AT_type
+ .byte 0 # DW_AT_const_value
+ .uleb128 0x23 # (DIE (0xad3) DW_TAG_template_type_param)
+ .long .LASF2195 # DW_AT_name: "_Head"
+ .long 0x1e02 # DW_AT_type
+ .byte 0 # end of children of DIE 0x9de
+ .uleb128 0x7 # (DIE (0xadd) DW_TAG_const_type)
+ .long 0x9de # DW_AT_type
+ .uleb128 0x24 # (DIE (0xae2) DW_TAG_structure_type)
+ .long .LASF2215 # DW_AT_name: "_Tuple_impl<0, Base*, std::default_delete<Base> >"
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x119 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0xc5d # DW_AT_sibling
+ .uleb128 0x2c # (DIE (0xaf0) DW_TAG_inheritance)
+ .long 0x8b7 # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .uleb128 0x2e # (DIE (0xaf6) DW_TAG_inheritance)
+ .long 0x9de # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .byte 0x3 # DW_AT_accessibility
+ .uleb128 0x8 # (DIE (0xafd) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2191 # DW_AT_name: "_M_head"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x123 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2216 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEE7_M_headERS4_"
+ .long 0x1e70 # DW_AT_type
+ # DW_AT_declaration
+ .long 0xb18 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0xb12) DW_TAG_formal_parameter)
+ .long 0x1e7c # DW_AT_type
+ .byte 0 # end of children of DIE 0xafd
+ .uleb128 0x8 # (DIE (0xb18) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2191 # DW_AT_name: "_M_head"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x126 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2217 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEE7_M_headERKS4_"
+ .long 0x1e5e # DW_AT_type
+ # DW_AT_declaration
+ .long 0xb33 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0xb2d) DW_TAG_formal_parameter)
+ .long 0x1e82 # DW_AT_type
+ .byte 0 # end of children of DIE 0xb18
+ .uleb128 0x18 # (DIE (0xb33) DW_TAG_typedef)
+ .long .LASF2218 # DW_AT_name: "_Inherited"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x11f # DW_AT_decl_line
+ .byte 0x2f # DW_AT_decl_column
+ .long 0x8b7 # DW_AT_type
+ .uleb128 0x7 # (DIE (0xb40) DW_TAG_const_type)
+ .long 0xb33 # DW_AT_type
+ .uleb128 0x8 # (DIE (0xb45) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2219 # DW_AT_name: "_M_tail"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x129 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2220 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEE7_M_tailERS4_"
+ .long 0x1e88 # DW_AT_type
+ # DW_AT_declaration
+ .long 0xb60 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0xb5a) DW_TAG_formal_parameter)
+ .long 0x1e7c # DW_AT_type
+ .byte 0 # end of children of DIE 0xb45
+ .uleb128 0x8 # (DIE (0xb60) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2219 # DW_AT_name: "_M_tail"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x12c # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2221 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEE7_M_tailERKS4_"
+ .long 0x1e8e # DW_AT_type
+ # DW_AT_declaration
+ .long 0xb7b # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0xb75) DW_TAG_formal_parameter)
+ .long 0x1e82 # DW_AT_type
+ .byte 0 # end of children of DIE 0xb60
+ .uleb128 0x2f # (DIE (0xb7b) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2199 # DW_AT_name: "_Tuple_impl"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x12e # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2222 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEC4Ev"
+ # DW_AT_declaration
+ .long 0xb90 # DW_AT_object_pointer
+ .long 0xb96 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xb90) DW_TAG_formal_parameter)
+ .long 0x1e94 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0xb7b
+ .uleb128 0x3d # (DIE (0xb96) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2199 # DW_AT_name: "_Tuple_impl"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x132 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2223 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEC4ERKS1_RKS3_"
+ # DW_AT_declaration
+ # DW_AT_explicit
+ .long 0xbab # DW_AT_object_pointer
+ .long 0xbbb # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xbab) DW_TAG_formal_parameter)
+ .long 0x1e94 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xbb0) DW_TAG_formal_parameter)
+ .long 0x1e5e # DW_AT_type
+ .uleb128 0x1 # (DIE (0xbb5) DW_TAG_formal_parameter)
+ .long 0x1e18 # DW_AT_type
+ .byte 0 # end of children of DIE 0xb96
+ .uleb128 0x30 # (DIE (0xbbb) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2199 # DW_AT_name: "_Tuple_impl"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x13e # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2224 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEC4ERKS4_"
+ # DW_AT_declaration
+ .byte 0x1 # DW_AT_defaulted
+ .long 0xbd1 # DW_AT_object_pointer
+ .long 0xbdc # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xbd1) DW_TAG_formal_parameter)
+ .long 0x1e94 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xbd6) DW_TAG_formal_parameter)
+ .long 0x1e82 # DW_AT_type
+ .byte 0 # end of children of DIE 0xbbb
+ .uleb128 0x3e # (DIE (0xbdc) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2148 # DW_AT_name: "operator="
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x142 # DW_AT_decl_line
+ .byte 0x14 # DW_AT_decl_column
+ .long .LASF2226 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEaSERKS4_"
+ .long 0x1e7c # DW_AT_type
+ # DW_AT_declaration
+ # DW_AT_deleted
+ .long 0xbf5 # DW_AT_object_pointer
+ .long 0xc00 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xbf5) DW_TAG_formal_parameter)
+ .long 0x1e94 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xbfa) DW_TAG_formal_parameter)
+ .long 0x1e82 # DW_AT_type
+ .byte 0 # end of children of DIE 0xbdc
+ .uleb128 0x30 # (DIE (0xc00) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2199 # DW_AT_name: "_Tuple_impl"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x144 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2227 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEC4EOS4_"
+ # DW_AT_declaration
+ .byte 0x1 # DW_AT_defaulted
+ .long 0xc16 # DW_AT_object_pointer
+ .long 0xc21 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xc16) DW_TAG_formal_parameter)
+ .long 0x1e94 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xc1b) DW_TAG_formal_parameter)
+ .long 0x1e9f # DW_AT_type
+ .byte 0 # end of children of DIE 0xc00
+ .uleb128 0x20 # (DIE (0xc21) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2204 # DW_AT_name: "_M_swap"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x20e # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2228 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEE7_M_swapERS4_"
+ .byte 0x2 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0xc37 # DW_AT_object_pointer
+ .long 0xc42 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xc37) DW_TAG_formal_parameter)
+ .long 0x1e94 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xc3c) DW_TAG_formal_parameter)
+ .long 0x1e7c # DW_AT_type
+ .byte 0 # end of children of DIE 0xc21
+ .uleb128 0x27 # (DIE (0xc42) DW_TAG_template_value_param)
+ .long .LASF2206 # DW_AT_name: "_Idx"
+ .long 0x1368 # DW_AT_type
+ .byte 0 # DW_AT_const_value
+ .uleb128 0x28 # (DIE (0xc4c) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2229 # DW_AT_name: "_Elements"
+ .uleb128 0xb # (DIE (0xc51) DW_TAG_template_type_param)
+ .long 0x1e02 # DW_AT_type
+ .uleb128 0xb # (DIE (0xc56) DW_TAG_template_type_param)
+ .long 0x597 # DW_AT_type
+ .byte 0 # end of children of DIE 0xc4c
+ .byte 0 # end of children of DIE 0xae2
+ .uleb128 0x7 # (DIE (0xc5d) DW_TAG_const_type)
+ .long 0xae2 # DW_AT_type
+ .uleb128 0x16 # (DIE (0xc62) DW_TAG_structure_type)
+ .long .LASF2230 # DW_AT_name: "__conditional<true>"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x4 # DW_AT_decl_file (/usr/include/c++/15/type_traits)
+ .byte 0x92 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0xc88 # DW_AT_sibling
+ .uleb128 0xe # (DIE (0xc6f) DW_TAG_typedef)
+ .long .LASF2166 # DW_AT_name: "type"
+ .byte 0x4 # DW_AT_decl_file (/usr/include/c++/15/type_traits)
+ .byte 0x95 # DW_AT_decl_line
+ .byte 0x8 # DW_AT_decl_column
+ .long 0x1eb0 # DW_AT_type
+ .uleb128 0xe # (DIE (0xc7b) DW_TAG_typedef)
+ .long .LASF2166 # DW_AT_name: "type"
+ .byte 0x4 # DW_AT_decl_file (/usr/include/c++/15/type_traits)
+ .byte 0x95 # DW_AT_decl_line
+ .byte 0x8 # DW_AT_decl_column
+ .long 0x1eb6 # DW_AT_type
+ .byte 0 # end of children of DIE 0xc62
+ .uleb128 0x3f # (DIE (0xc88) DW_TAG_class_type)
+ .long .LASF2231 # DW_AT_name: "tuple<Base*, std::default_delete<Base> >"
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x7d8 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0xd85 # DW_AT_sibling
+ .uleb128 0x2e # (DIE (0xc96) DW_TAG_inheritance)
+ .long 0xae2 # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .byte 0x1 # DW_AT_accessibility
+ .uleb128 0x55 # (DIE (0xc9d) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2384 # DW_AT_name: "__nothrow_default_constructible"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x80e # DW_AT_decl_line
+ .byte 0x1d # DW_AT_decl_column
+ .long .LASF2385 # DW_AT_linkage_name: "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEE31__nothrow_default_constructibleEv"
+ .long 0x136f # DW_AT_type
+ # DW_AT_declaration
+ .uleb128 0x31 # (DIE (0xcae) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2232 # DW_AT_name: "tuple"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x853 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2233 # DW_AT_linkage_name: "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEC4ERKS4_"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .byte 0x1 # DW_AT_defaulted
+ .long 0xcc5 # DW_AT_object_pointer
+ .long 0xcd0 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xcc5) DW_TAG_formal_parameter)
+ .long 0x1ea5 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xcca) DW_TAG_formal_parameter)
+ .long 0x1eb0 # DW_AT_type
+ .byte 0 # end of children of DIE 0xcae
+ .uleb128 0x31 # (DIE (0xcd0) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2232 # DW_AT_name: "tuple"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x855 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2234 # DW_AT_linkage_name: "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEC4EOS4_"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .byte 0x1 # DW_AT_defaulted
+ .long 0xce7 # DW_AT_object_pointer
+ .long 0xcf2 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xce7) DW_TAG_formal_parameter)
+ .long 0x1ea5 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xcec) DW_TAG_formal_parameter)
+ .long 0x1eb6 # DW_AT_type
+ .byte 0 # end of children of DIE 0xcd0
+ .uleb128 0x1d # (DIE (0xcf2) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2148 # DW_AT_name: "operator="
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x91b # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2235 # DW_AT_linkage_name: "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEaSERKS4_"
+ .long 0x1ebc # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0xd0c # DW_AT_object_pointer
+ .long 0xd17 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xd0c) DW_TAG_formal_parameter)
+ .long 0x1ea5 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xd11) DW_TAG_formal_parameter)
+ .long 0xd8a # DW_AT_type
+ .byte 0 # end of children of DIE 0xcf2
+ .uleb128 0x1d # (DIE (0xd17) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2148 # DW_AT_name: "operator="
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x926 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2236 # DW_AT_linkage_name: "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEaSEOS4_"
+ .long 0x1ebc # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0xd31 # DW_AT_object_pointer
+ .long 0xd3c # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xd31) DW_TAG_formal_parameter)
+ .long 0x1ea5 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xd36) DW_TAG_formal_parameter)
+ .long 0xd96 # DW_AT_type
+ .byte 0 # end of children of DIE 0xd17
+ .uleb128 0x20 # (DIE (0xd3c) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2153 # DW_AT_name: "swap"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x95b # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2237 # DW_AT_linkage_name: "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEE4swapERS4_"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0xd52 # DW_AT_object_pointer
+ .long 0xd5d # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xd52) DW_TAG_formal_parameter)
+ .long 0x1ea5 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xd57) DW_TAG_formal_parameter)
+ .long 0x1ebc # DW_AT_type
+ .byte 0 # end of children of DIE 0xd3c
+ .uleb128 0x20 # (DIE (0xd5d) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2238 # DW_AT_name: "tuple<>"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x82a # DW_AT_decl_line
+ .byte 0x2 # DW_AT_decl_column
+ .long .LASF2239 # DW_AT_linkage_name: "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEC4ILb1ELb1EEEv"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0xd7d # DW_AT_object_pointer
+ .long 0xd83 # DW_AT_sibling
+ .uleb128 0x32 # (DIE (0xd73) DW_TAG_template_value_param)
+ .long .LASF2368 # DW_AT_name: "_Dummy"
+ .long 0x136f # DW_AT_type
+ # DW_AT_default_value
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0x2 # (DIE (0xd7d) DW_TAG_formal_parameter)
+ .long 0x1ea5 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0xd5d
+ .uleb128 0x56 # (DIE (0xd83) DW_TAG_GNU_template_parameter_pack)
+ .byte 0 # end of children of DIE 0xc88
+ .uleb128 0x7 # (DIE (0xd85) DW_TAG_const_type)
+ .long 0xc88 # DW_AT_type
+ .uleb128 0xe # (DIE (0xd8a) DW_TAG_typedef)
+ .long .LASF2240 # DW_AT_name: "__conditional_t"
+ .byte 0x4 # DW_AT_decl_file (/usr/include/c++/15/type_traits)
+ .byte 0xa1 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0xc6f # DW_AT_type
+ .uleb128 0xe # (DIE (0xd96) DW_TAG_typedef)
+ .long .LASF2240 # DW_AT_name: "__conditional_t"
+ .byte 0x4 # DW_AT_decl_file (/usr/include/c++/15/type_traits)
+ .byte 0xa1 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0xc7b # DW_AT_type
+ .uleb128 0x16 # (DIE (0xda2) DW_TAG_structure_type)
+ .long .LASF2241 # DW_AT_name: "__uniq_ptr_data<Base, std::default_delete<Base>, true, true>"
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xe9 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0xe28 # DW_AT_sibling
+ .uleb128 0x2c # (DIE (0xdaf) DW_TAG_inheritance)
+ .long 0x5ed # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .uleb128 0x22 # (DIE (0xdb5) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2242 # DW_AT_name: "__uniq_ptr_data"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xec # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2243 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_dataI4BaseSt14default_deleteIS0_ELb1ELb1EEC4EOS3_"
+ # DW_AT_declaration
+ .byte 0x1 # DW_AT_defaulted
+ .long 0xdca # DW_AT_object_pointer
+ .long 0xdd5 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xdca) DW_TAG_formal_parameter)
+ .long 0x1ee5 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xdcf) DW_TAG_formal_parameter)
+ .long 0x1ef0 # DW_AT_type
+ .byte 0 # end of children of DIE 0xdb5
+ .uleb128 0x57 # (DIE (0xdd5) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2148 # DW_AT_name: "operator="
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xed # DW_AT_decl_line
+ .byte 0x18 # DW_AT_decl_column
+ .long .LASF2244 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_dataI4BaseSt14default_deleteIS0_ELb1ELb1EEaSEOS3_"
+ .long 0x1ef6 # DW_AT_type
+ # DW_AT_declaration
+ .byte 0x1 # DW_AT_defaulted
+ .long 0xdee # DW_AT_object_pointer
+ .long 0xdf9 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xdee) DW_TAG_formal_parameter)
+ .long 0x1ee5 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xdf3) DW_TAG_formal_parameter)
+ .long 0x1ef0 # DW_AT_type
+ .byte 0 # end of children of DIE 0xdd5
+ .uleb128 0x58 # (DIE (0xdf9) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2242 # DW_AT_name: "__uniq_ptr_data"
+ .long .LASF2386 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_dataI4BaseSt14default_deleteIS0_ELb1ELb1EECI4St15__uniq_ptr_implIS0_S2_EEPS0_"
+ # DW_AT_artificial
+ # DW_AT_declaration
+ .long 0xe0a # DW_AT_object_pointer
+ .long 0xe15 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xe0a) DW_TAG_formal_parameter)
+ .long 0x1ee5 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xe0f) DW_TAG_formal_parameter)
+ .long 0x662 # DW_AT_type
+ .byte 0 # end of children of DIE 0xdf9
+ .uleb128 0xd # (DIE (0xe15) DW_TAG_template_type_param)
+ .ascii "_Tp\0" # DW_AT_name
+ .long 0x1de8 # DW_AT_type
+ .uleb128 0xd # (DIE (0xe1e) DW_TAG_template_type_param)
+ .ascii "_Dp\0" # DW_AT_name
+ .long 0x597 # DW_AT_type
+ .byte 0 # end of children of DIE 0xda2
+ .uleb128 0x24 # (DIE (0xe28) DW_TAG_structure_type)
+ .long .LASF2245 # DW_AT_name: "add_lvalue_reference<Base>"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x4 # DW_AT_decl_file (/usr/include/c++/15/type_traits)
+ .value 0x6fd # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0xe4d # DW_AT_sibling
+ .uleb128 0x18 # (DIE (0xe36) DW_TAG_typedef)
+ .long .LASF2166 # DW_AT_name: "type"
+ .byte 0x4 # DW_AT_decl_file (/usr/include/c++/15/type_traits)
+ .value 0x6fe # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0xe4d # DW_AT_type
+ .uleb128 0xd # (DIE (0xe43) DW_TAG_template_type_param)
+ .ascii "_Tp\0" # DW_AT_name
+ .long 0x1de8 # DW_AT_type
+ .byte 0 # end of children of DIE 0xe28
+ .uleb128 0x18 # (DIE (0xe4d) DW_TAG_typedef)
+ .long .LASF2246 # DW_AT_name: "__add_lval_ref_t"
+ .byte 0x4 # DW_AT_decl_file (/usr/include/c++/15/type_traits)
+ .value 0x497 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1efc # DW_AT_type
+ .uleb128 0x3f # (DIE (0xe5a) DW_TAG_class_type)
+ .long .LASF2247 # DW_AT_name: "unique_ptr<Base, std::default_delete<Base> >"
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x10f # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x10c5 # DW_AT_sibling
+ .uleb128 0x59 # (DIE (0xe68) DW_TAG_member)
+ .long .LASF2183 # DW_AT_name: "_M_t"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x115 # DW_AT_decl_line
+ .byte 0x21 # DW_AT_decl_column
+ .long 0xda2 # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .uleb128 0x31 # (DIE (0xe76) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2248 # DW_AT_name: "unique_ptr"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x168 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2249 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEC4EOS3_"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .byte 0x1 # DW_AT_defaulted
+ .long 0xe8d # DW_AT_object_pointer
+ .long 0xe98 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xe8d) DW_TAG_formal_parameter)
+ .long 0x1f02 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xe92) DW_TAG_formal_parameter)
+ .long 0x1f0d # DW_AT_type
+ .byte 0 # end of children of DIE 0xe76
+ .uleb128 0x20 # (DIE (0xe98) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2250 # DW_AT_name: "~unique_ptr"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x189 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2251 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED4Ev"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0xeae # DW_AT_object_pointer
+ .long 0xeb4 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xeae) DW_TAG_formal_parameter)
+ .long 0x1f02 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0xe98
+ .uleb128 0x5a # (DIE (0xeb4) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2148 # DW_AT_name: "operator="
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x199 # DW_AT_decl_line
+ .byte 0x13 # DW_AT_decl_column
+ .long .LASF2263 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEaSEOS3_"
+ .long 0x1f13 # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .byte 0x1 # DW_AT_defaulted
+ .long 0xecf # DW_AT_object_pointer
+ .long 0xeda # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xecf) DW_TAG_formal_parameter)
+ .long 0x1f02 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xed4) DW_TAG_formal_parameter)
+ .long 0x1f0d # DW_AT_type
+ .byte 0 # end of children of DIE 0xeb4
+ .uleb128 0x1d # (DIE (0xeda) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2148 # DW_AT_name: "operator="
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x1b3 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2253 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEaSEDn"
+ .long 0x1f13 # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0xef4 # DW_AT_object_pointer
+ .long 0xeff # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xef4) DW_TAG_formal_parameter)
+ .long 0x1f02 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xef9) DW_TAG_formal_parameter)
+ .long 0xeb # DW_AT_type
+ .byte 0 # end of children of DIE 0xeda
+ .uleb128 0x1d # (DIE (0xeff) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2254 # DW_AT_name: "operator*"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x1be # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2255 # DW_AT_linkage_name: "_ZNKSt10unique_ptrI4BaseSt14default_deleteIS0_EEdeEv"
+ .long 0xe36 # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0xf19 # DW_AT_object_pointer
+ .long 0xf1f # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xf19) DW_TAG_formal_parameter)
+ .long 0x1f19 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0xeff
+ .uleb128 0x40 # (DIE (0xf1f) DW_TAG_typedef)
+ .long .LASF2256 # DW_AT_name: "pointer"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x118 # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0x662 # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ .uleb128 0x1d # (DIE (0xf2d) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2257 # DW_AT_name: "operator->"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x1cf # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2258 # DW_AT_linkage_name: "_ZNKSt10unique_ptrI4BaseSt14default_deleteIS0_EEptEv"
+ .long 0xf1f # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0xf47 # DW_AT_object_pointer
+ .long 0xf4d # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xf47) DW_TAG_formal_parameter)
+ .long 0x1f19 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0xf2d
+ .uleb128 0x5b # (DIE (0xf4d) DW_TAG_subprogram)
+ # DW_AT_external
+ .ascii "get\0" # DW_AT_name
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x1d8 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2387 # DW_AT_linkage_name: "_ZNKSt10unique_ptrI4BaseSt14default_deleteIS0_EE3getEv"
+ .long 0xf1f # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0xf67 # DW_AT_object_pointer
+ .long 0xf6d # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xf67) DW_TAG_formal_parameter)
+ .long 0x1f19 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0xf4d
+ .uleb128 0x40 # (DIE (0xf6d) DW_TAG_typedef)
+ .long .LASF2259 # DW_AT_name: "deleter_type"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x11a # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0x597 # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ .uleb128 0x7 # (DIE (0xf7b) DW_TAG_const_type)
+ .long 0xf6d # DW_AT_type
+ .uleb128 0x1d # (DIE (0xf80) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2260 # DW_AT_name: "get_deleter"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x1de # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2261 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EE11get_deleterEv"
+ .long 0x1f1f # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0xf9a # DW_AT_object_pointer
+ .long 0xfa0 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xf9a) DW_TAG_formal_parameter)
+ .long 0x1f02 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0xf80
+ .uleb128 0x1d # (DIE (0xfa0) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2260 # DW_AT_name: "get_deleter"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x1e4 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2262 # DW_AT_linkage_name: "_ZNKSt10unique_ptrI4BaseSt14default_deleteIS0_EE11get_deleterEv"
+ .long 0x1f25 # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0xfba # DW_AT_object_pointer
+ .long 0xfc0 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xfba) DW_TAG_formal_parameter)
+ .long 0x1f19 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0xfa0
+ .uleb128 0x5c # (DIE (0xfc0) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2252 # DW_AT_name: "operator bool"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x1e9 # DW_AT_decl_line
+ .byte 0x10 # DW_AT_decl_column
+ .long .LASF2264 # DW_AT_linkage_name: "_ZNKSt10unique_ptrI4BaseSt14default_deleteIS0_EEcvbEv"
+ .long 0x136f # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ # DW_AT_explicit
+ .long 0xfda # DW_AT_object_pointer
+ .long 0xfe0 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xfda) DW_TAG_formal_parameter)
+ .long 0x1f19 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0xfc0
+ .uleb128 0x1d # (DIE (0xfe0) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2180 # DW_AT_name: "release"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x1f1 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2265 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EE7releaseEv"
+ .long 0xf1f # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0xffa # DW_AT_object_pointer
+ .long 0x1000 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xffa) DW_TAG_formal_parameter)
+ .long 0x1f02 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0xfe0
+ .uleb128 0x20 # (DIE (0x1000) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2178 # DW_AT_name: "reset"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x1fc # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2266 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EE5resetEPS0_"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x1016 # DW_AT_object_pointer
+ .long 0x1021 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x1016) DW_TAG_formal_parameter)
+ .long 0x1f02 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x101b) DW_TAG_formal_parameter)
+ .long 0xf1f # DW_AT_type
+ .byte 0 # end of children of DIE 0x1000
+ .uleb128 0x20 # (DIE (0x1021) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2153 # DW_AT_name: "swap"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x206 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2267 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EE4swapERS3_"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x1037 # DW_AT_object_pointer
+ .long 0x1042 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x1037) DW_TAG_formal_parameter)
+ .long 0x1f02 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x103c) DW_TAG_formal_parameter)
+ .long 0x1f13 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1021
+ .uleb128 0x5d # (DIE (0x1042) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2248 # DW_AT_name: "unique_ptr"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x20d # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2268 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEC4ERKS3_"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ # DW_AT_deleted
+ .long 0x1058 # DW_AT_object_pointer
+ .long 0x1063 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x1058) DW_TAG_formal_parameter)
+ .long 0x1f02 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x105d) DW_TAG_formal_parameter)
+ .long 0x1f2b # DW_AT_type
+ .byte 0 # end of children of DIE 0x1042
+ .uleb128 0x5e # (DIE (0x1063) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2148 # DW_AT_name: "operator="
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x20e # DW_AT_decl_line
+ .byte 0x13 # DW_AT_decl_column
+ .long .LASF2269 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEaSERKS3_"
+ .long 0x1f13 # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ # DW_AT_deleted
+ .long 0x107d # DW_AT_object_pointer
+ .long 0x1088 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x107d) DW_TAG_formal_parameter)
+ .long 0x1f02 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x1082) DW_TAG_formal_parameter)
+ .long 0x1f2b # DW_AT_type
+ .byte 0 # end of children of DIE 0x1063
+ .uleb128 0x5f # (DIE (0x1088) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2270 # DW_AT_name: "unique_ptr<>"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x137 # DW_AT_decl_line
+ .byte 0x2 # DW_AT_decl_column
+ .long .LASF2271 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEC4IS2_vEEPS0_"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ # DW_AT_explicit
+ .long 0x10a7 # DW_AT_object_pointer
+ .long 0x10b2 # DW_AT_sibling
+ .uleb128 0x33 # (DIE (0x109e) DW_TAG_template_type_param)
+ .long .LASF2272 # DW_AT_name: "_Del"
+ .long 0x597 # DW_AT_type
+ # DW_AT_default_value
+ .uleb128 0x2 # (DIE (0x10a7) DW_TAG_formal_parameter)
+ .long 0x1f02 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x10ac) DW_TAG_formal_parameter)
+ .long 0xf1f # DW_AT_type
+ .byte 0 # end of children of DIE 0x1088
+ .uleb128 0xd # (DIE (0x10b2) DW_TAG_template_type_param)
+ .ascii "_Tp\0" # DW_AT_name
+ .long 0x1de8 # DW_AT_type
+ .uleb128 0x60 # (DIE (0x10bb) DW_TAG_template_type_param)
+ .ascii "_Dp\0" # DW_AT_name
+ .long 0x597 # DW_AT_type
+ # DW_AT_default_value
+ .byte 0 # end of children of DIE 0xe5a
+ .uleb128 0x7 # (DIE (0x10c5) DW_TAG_const_type)
+ .long 0xe5a # DW_AT_type
+ .uleb128 0x2d # (DIE (0x10ca) DW_TAG_namespace)
+ .long .LASF2273 # DW_AT_name: "__detail"
+ .byte 0x4 # DW_AT_decl_file (/usr/include/c++/15/type_traits)
+ .byte 0xac # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0x1109 # DW_AT_sibling
+ .uleb128 0x24 # (DIE (0x10d6) DW_TAG_structure_type)
+ .long .LASF2274 # DW_AT_name: "_MakeUniq<Base>"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x41e # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x10fb # DW_AT_sibling
+ .uleb128 0x18 # (DIE (0x10e4) DW_TAG_typedef)
+ .long .LASF2275 # DW_AT_name: "__single_object"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x41f # DW_AT_decl_line
+ .byte 0x1f # DW_AT_decl_column
+ .long 0xe5a # DW_AT_type
+ .uleb128 0xd # (DIE (0x10f1) DW_TAG_template_type_param)
+ .ascii "_Tp\0" # DW_AT_name
+ .long 0x1de8 # DW_AT_type
+ .byte 0 # end of children of DIE 0x10d6
+ .uleb128 0x18 # (DIE (0x10fb) DW_TAG_typedef)
+ .long .LASF2276 # DW_AT_name: "__unique_ptr_t"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x42a # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x10e4 # DW_AT_type
+ .byte 0 # end of children of DIE 0x10ca
+ .uleb128 0x16 # (DIE (0x1109) DW_TAG_structure_type)
+ .long .LASF2277 # DW_AT_name: "_Nth_type<0, Base*, std::default_delete<Base> >"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0xb # DW_AT_decl_file (/usr/include/c++/15/bits/utility.h)
+ .byte 0xeb # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x113d # DW_AT_sibling
+ .uleb128 0xe # (DIE (0x1116) DW_TAG_typedef)
+ .long .LASF2166 # DW_AT_name: "type"
+ .byte 0xb # DW_AT_decl_file (/usr/include/c++/15/bits/utility.h)
+ .byte 0xec # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0x1e02 # DW_AT_type
+ .uleb128 0x12 # (DIE (0x1122) DW_TAG_template_value_param)
+ .ascii "_Np\0" # DW_AT_name
+ .long 0x1368 # DW_AT_type
+ .byte 0 # DW_AT_const_value
+ .uleb128 0x28 # (DIE (0x112c) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2278 # DW_AT_name: "_Types"
+ .uleb128 0xb # (DIE (0x1131) DW_TAG_template_type_param)
+ .long 0x1e02 # DW_AT_type
+ .uleb128 0xb # (DIE (0x1136) DW_TAG_template_type_param)
+ .long 0x597 # DW_AT_type
+ .byte 0 # end of children of DIE 0x112c
+ .byte 0 # end of children of DIE 0x1109
+ .uleb128 0x24 # (DIE (0x113d) DW_TAG_structure_type)
+ .long .LASF2279 # DW_AT_name: "tuple_element<0, std::tuple<Base*, std::default_delete<Base> > >"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x973 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x116c # DW_AT_sibling
+ .uleb128 0x18 # (DIE (0x114b) DW_TAG_typedef)
+ .long .LASF2166 # DW_AT_name: "type"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x977 # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0x1116 # DW_AT_type
+ .uleb128 0x12 # (DIE (0x1158) DW_TAG_template_value_param)
+ .ascii "__i\0" # DW_AT_name
+ .long 0x1368 # DW_AT_type
+ .byte 0 # DW_AT_const_value
+ .uleb128 0xd # (DIE (0x1162) DW_TAG_template_type_param)
+ .ascii "_Tp\0" # DW_AT_name
+ .long 0xc88 # DW_AT_type
+ .byte 0 # end of children of DIE 0x113d
+ .uleb128 0x16 # (DIE (0x116c) DW_TAG_structure_type)
+ .long .LASF2280 # DW_AT_name: "_Nth_type<1, Base*, std::default_delete<Base> >"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0xb # DW_AT_decl_file (/usr/include/c++/15/bits/utility.h)
+ .byte 0xeb # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x11a0 # DW_AT_sibling
+ .uleb128 0xe # (DIE (0x1179) DW_TAG_typedef)
+ .long .LASF2166 # DW_AT_name: "type"
+ .byte 0xb # DW_AT_decl_file (/usr/include/c++/15/bits/utility.h)
+ .byte 0xec # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0x597 # DW_AT_type
+ .uleb128 0x12 # (DIE (0x1185) DW_TAG_template_value_param)
+ .ascii "_Np\0" # DW_AT_name
+ .long 0x1368 # DW_AT_type
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0x28 # (DIE (0x118f) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2278 # DW_AT_name: "_Types"
+ .uleb128 0xb # (DIE (0x1194) DW_TAG_template_type_param)
+ .long 0x1e02 # DW_AT_type
+ .uleb128 0xb # (DIE (0x1199) DW_TAG_template_type_param)
+ .long 0x597 # DW_AT_type
+ .byte 0 # end of children of DIE 0x118f
+ .byte 0 # end of children of DIE 0x116c
+ .uleb128 0x24 # (DIE (0x11a0) DW_TAG_structure_type)
+ .long .LASF2281 # DW_AT_name: "tuple_element<1, std::tuple<Base*, std::default_delete<Base> > >"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x973 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x11cf # DW_AT_sibling
+ .uleb128 0x18 # (DIE (0x11ae) DW_TAG_typedef)
+ .long .LASF2166 # DW_AT_name: "type"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x977 # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0x1179 # DW_AT_type
+ .uleb128 0x12 # (DIE (0x11bb) DW_TAG_template_value_param)
+ .ascii "__i\0" # DW_AT_name
+ .long 0x1368 # DW_AT_type
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0xd # (DIE (0x11c5) DW_TAG_template_type_param)
+ .ascii "_Tp\0" # DW_AT_name
+ .long 0xc88 # DW_AT_type
+ .byte 0 # end of children of DIE 0x11a0
+ .uleb128 0x8 # (DIE (0x11cf) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2282 # DW_AT_name: "__get_helper<1, std::default_delete<Base> >"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x97c # DW_AT_decl_line
+ .byte 0x5 # DW_AT_decl_column
+ .long .LASF2283 # DW_AT_linkage_name: "_ZSt12__get_helperILm1ESt14default_deleteI4BaseEJEERT0_RSt11_Tuple_implIXT_EJS3_DpT1_EE"
+ .long 0x1e2a # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1202 # DW_AT_sibling
+ .uleb128 0x12 # (DIE (0x11e4) DW_TAG_template_value_param)
+ .ascii "__i\0" # DW_AT_name
+ .long 0x1368 # DW_AT_type
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0x23 # (DIE (0x11ee) DW_TAG_template_type_param)
+ .long .LASF2195 # DW_AT_name: "_Head"
+ .long 0x597 # DW_AT_type
+ .uleb128 0x29 # (DIE (0x11f7) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2289 # DW_AT_name: "_Tail"
+ .uleb128 0x1 # (DIE (0x11fc) DW_TAG_formal_parameter)
+ .long 0x1e36 # DW_AT_type
+ .byte 0 # end of children of DIE 0x11cf
+ .uleb128 0xe # (DIE (0x1202) DW_TAG_typedef)
+ .long .LASF2284 # DW_AT_name: "__tuple_element_t"
+ .byte 0xb # DW_AT_decl_file (/usr/include/c++/15/bits/utility.h)
+ .byte 0x56 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x11ae # DW_AT_type
+ .uleb128 0x8 # (DIE (0x120e) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2285 # DW_AT_name: "get<1, Base*, std::default_delete<Base> >"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x98c # DW_AT_decl_line
+ .byte 0x5 # DW_AT_decl_column
+ .long .LASF2286 # DW_AT_linkage_name: "_ZSt3getILm1EJP4BaseSt14default_deleteIS0_EEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS8_"
+ .long 0x20f0 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1247 # DW_AT_sibling
+ .uleb128 0x12 # (DIE (0x1223) DW_TAG_template_value_param)
+ .ascii "__i\0" # DW_AT_name
+ .long 0x1368 # DW_AT_type
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0x25 # (DIE (0x122d) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2229 # DW_AT_name: "_Elements"
+ .long 0x1241 # DW_AT_sibling
+ .uleb128 0xb # (DIE (0x1236) DW_TAG_template_type_param)
+ .long 0x1e02 # DW_AT_type
+ .uleb128 0xb # (DIE (0x123b) DW_TAG_template_type_param)
+ .long 0x597 # DW_AT_type
+ .byte 0 # end of children of DIE 0x122d
+ .uleb128 0x1 # (DIE (0x1241) DW_TAG_formal_parameter)
+ .long 0x1ebc # DW_AT_type
+ .byte 0 # end of children of DIE 0x120e
+ .uleb128 0x8 # (DIE (0x1247) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2287 # DW_AT_name: "__get_helper<0, Base*, std::default_delete<Base> >"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x97c # DW_AT_decl_line
+ .byte 0x5 # DW_AT_decl_column
+ .long .LASF2288 # DW_AT_linkage_name: "_ZSt12__get_helperILm0EP4BaseJSt14default_deleteIS0_EEERT0_RSt11_Tuple_implIXT_EJS4_DpT1_EE"
+ .long 0x1e70 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1284 # DW_AT_sibling
+ .uleb128 0x12 # (DIE (0x125c) DW_TAG_template_value_param)
+ .ascii "__i\0" # DW_AT_name
+ .long 0x1368 # DW_AT_type
+ .byte 0 # DW_AT_const_value
+ .uleb128 0x23 # (DIE (0x1266) DW_TAG_template_type_param)
+ .long .LASF2195 # DW_AT_name: "_Head"
+ .long 0x1e02 # DW_AT_type
+ .uleb128 0x25 # (DIE (0x126f) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2289 # DW_AT_name: "_Tail"
+ .long 0x127e # DW_AT_sibling
+ .uleb128 0xb # (DIE (0x1278) DW_TAG_template_type_param)
+ .long 0x597 # DW_AT_type
+ .byte 0 # end of children of DIE 0x126f
+ .uleb128 0x1 # (DIE (0x127e) DW_TAG_formal_parameter)
+ .long 0x1e7c # DW_AT_type
+ .byte 0 # end of children of DIE 0x1247
+ .uleb128 0xe # (DIE (0x1284) DW_TAG_typedef)
+ .long .LASF2284 # DW_AT_name: "__tuple_element_t"
+ .byte 0xb # DW_AT_decl_file (/usr/include/c++/15/bits/utility.h)
+ .byte 0x56 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x114b # DW_AT_type
+ .uleb128 0x8 # (DIE (0x1290) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2290 # DW_AT_name: "get<0, Base*, std::default_delete<Base> >"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x98c # DW_AT_decl_line
+ .byte 0x5 # DW_AT_decl_column
+ .long .LASF2291 # DW_AT_linkage_name: "_ZSt3getILm0EJP4BaseSt14default_deleteIS0_EEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS8_"
+ .long 0x21c1 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x12c9 # DW_AT_sibling
+ .uleb128 0x12 # (DIE (0x12a5) DW_TAG_template_value_param)
+ .ascii "__i\0" # DW_AT_name
+ .long 0x1368 # DW_AT_type
+ .byte 0 # DW_AT_const_value
+ .uleb128 0x25 # (DIE (0x12af) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2229 # DW_AT_name: "_Elements"
+ .long 0x12c3 # DW_AT_sibling
+ .uleb128 0xb # (DIE (0x12b8) DW_TAG_template_type_param)
+ .long 0x1e02 # DW_AT_type
+ .uleb128 0xb # (DIE (0x12bd) DW_TAG_template_type_param)
+ .long 0x597 # DW_AT_type
+ .byte 0 # end of children of DIE 0x12af
+ .uleb128 0x1 # (DIE (0x12c3) DW_TAG_formal_parameter)
+ .long 0x1ebc # DW_AT_type
+ .byte 0 # end of children of DIE 0x1290
+ .uleb128 0x61 # (DIE (0x12c9) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2292 # DW_AT_name: "make_unique<Base>"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x43c # DW_AT_decl_line
+ .byte 0x5 # DW_AT_decl_column
+ .long .LASF2388 # DW_AT_linkage_name: "_ZSt11make_uniqueI4BaseJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_"
+ .long 0x10fb # DW_AT_type
+ # DW_AT_declaration
+ .uleb128 0xd # (DIE (0x12da) DW_TAG_template_type_param)
+ .ascii "_Tp\0" # DW_AT_name
+ .long 0x1de8 # DW_AT_type
+ .uleb128 0x29 # (DIE (0x12e3) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2293 # DW_AT_name: "_Args"
+ .byte 0 # end of children of DIE 0x12c9
+ .byte 0 # end of children of DIE 0x2d
+ .uleb128 0x41 # (DIE (0x12ea) DW_TAG_namespace)
+ .long .LASF2294 # DW_AT_name: "__gnu_cxx"
+ .byte 0x7 # DW_AT_decl_file (/usr/include/c++/15/x86_64-redhat-linux/bits/c++config.h)
+ .value 0x8ef # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1368 # DW_AT_sibling
+ .uleb128 0x37 # (DIE (0x12f7) DW_TAG_namespace)
+ .long .LASF2295 # DW_AT_name: "__cxx11"
+ .byte 0x7 # DW_AT_decl_file (/usr/include/c++/15/x86_64-redhat-linux/bits/c++config.h)
+ .value 0x8f1 # DW_AT_decl_line
+ .byte 0x41 # DW_AT_decl_column
+ # DW_AT_export_symbols
+ .uleb128 0x38 # (DIE (0x1300) DW_TAG_imported_module)
+ .byte 0x7 # DW_AT_decl_file (/usr/include/c++/15/x86_64-redhat-linux/bits/c++config.h)
+ .value 0x8f1 # DW_AT_decl_line
+ .byte 0x41 # DW_AT_decl_column
+ .long 0x12f7 # DW_AT_import
+ .uleb128 0x3a # (DIE (0x1309) DW_TAG_namespace)
+ .long .LASF2296 # DW_AT_name: "__ops"
+ .byte 0xc # DW_AT_decl_file (/usr/include/c++/15/bits/predefined_ops.h)
+ .byte 0x25 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .uleb128 0x3 # (DIE (0x1311) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xfd # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1d34 # DW_AT_import
+ .uleb128 0x11 # (DIE (0x1319) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .value 0x106 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1d50 # DW_AT_import
+ .uleb128 0x11 # (DIE (0x1322) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .value 0x107 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1d75 # DW_AT_import
+ .uleb128 0x62 # (DIE (0x132b) DW_TAG_enumeration_type)
+ .long .LASF2389 # DW_AT_name: "_Lock_policy"
+ .byte 0x7 # DW_AT_encoding
+ .byte 0x4 # DW_AT_byte_size
+ .long 0x1384 # DW_AT_type
+ .byte 0x18 # DW_AT_decl_file (/usr/include/c++/15/ext/concurrence.h)
+ .byte 0x36 # DW_AT_decl_line
+ .byte 0x8 # DW_AT_decl_column
+ .long 0x1350 # DW_AT_sibling
+ .uleb128 0x34 # (DIE (0x133d) DW_TAG_enumerator)
+ .long .LASF2297 # DW_AT_name: "_S_single"
+ .byte 0 # DW_AT_const_value
+ .uleb128 0x34 # (DIE (0x1343) DW_TAG_enumerator)
+ .long .LASF2298 # DW_AT_name: "_S_mutex"
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0x34 # (DIE (0x1349) DW_TAG_enumerator)
+ .long .LASF2299 # DW_AT_name: "_S_atomic"
+ .byte 0x2 # DW_AT_const_value
+ .byte 0 # end of children of DIE 0x132b
+ .uleb128 0x7 # (DIE (0x1350) DW_TAG_const_type)
+ .long 0x132b # DW_AT_type
+ .uleb128 0x63 # (DIE (0x1355) DW_TAG_variable)
+ .long .LASF2390 # DW_AT_name: "__default_lock_policy"
+ .byte 0x18 # DW_AT_decl_file (/usr/include/c++/15/ext/concurrence.h)
+ .byte 0x3a # DW_AT_decl_line
+ .byte 0x28 # DW_AT_decl_column
+ .long .LASF2391 # DW_AT_linkage_name: "_ZN9__gnu_cxx21__default_lock_policyE"
+ .long 0x1350 # DW_AT_type
+ # DW_AT_external
+ # DW_AT_declaration
+ .byte 0x2 # DW_AT_const_value
+ .byte 0x3 # DW_AT_inline
+ .byte 0 # end of children of DIE 0x12ea
+ .uleb128 0x9 # (DIE (0x1368) DW_TAG_base_type)
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x7 # DW_AT_encoding
+ .long .LASF2300 # DW_AT_name: "long unsigned int"
+ .uleb128 0x9 # (DIE (0x136f) DW_TAG_base_type)
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x2 # DW_AT_encoding
+ .long .LASF2301 # DW_AT_name: "bool"
+ .uleb128 0x9 # (DIE (0x1376) DW_TAG_base_type)
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x8 # DW_AT_encoding
+ .long .LASF2302 # DW_AT_name: "unsigned char"
+ .uleb128 0x9 # (DIE (0x137d) DW_TAG_base_type)
+ .byte 0x2 # DW_AT_byte_size
+ .byte 0x7 # DW_AT_encoding
+ .long .LASF2303 # DW_AT_name: "short unsigned int"
+ .uleb128 0x9 # (DIE (0x1384) DW_TAG_base_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x7 # DW_AT_encoding
+ .long .LASF2304 # DW_AT_name: "unsigned int"
+ .uleb128 0x9 # (DIE (0x138b) DW_TAG_base_type)
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x7 # DW_AT_encoding
+ .long .LASF2305 # DW_AT_name: "long long unsigned int"
+ .uleb128 0x9 # (DIE (0x1392) DW_TAG_base_type)
+ .byte 0x10 # DW_AT_byte_size
+ .byte 0x7 # DW_AT_encoding
+ .long .LASF2306 # DW_AT_name: "__int128 unsigned"
+ .uleb128 0x9 # (DIE (0x1399) DW_TAG_base_type)
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x6 # DW_AT_encoding
+ .long .LASF2307 # DW_AT_name: "signed char"
+ .uleb128 0x9 # (DIE (0x13a0) DW_TAG_base_type)
+ .byte 0x2 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .long .LASF2308 # DW_AT_name: "short int"
+ .uleb128 0x64 # (DIE (0x13a7) DW_TAG_base_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .ascii "int\0" # DW_AT_name
+ .uleb128 0x9 # (DIE (0x13ae) DW_TAG_base_type)
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .long .LASF2309 # DW_AT_name: "long int"
+ .uleb128 0x9 # (DIE (0x13b5) DW_TAG_base_type)
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .long .LASF2310 # DW_AT_name: "long long int"
+ .uleb128 0x9 # (DIE (0x13bc) DW_TAG_base_type)
+ .byte 0x10 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .long .LASF2311 # DW_AT_name: "__int128"
+ .uleb128 0x9 # (DIE (0x13c3) DW_TAG_base_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .long .LASF2312 # DW_AT_name: "wchar_t"
+ .uleb128 0x7 # (DIE (0x13ca) DW_TAG_const_type)
+ .long 0x13c3 # DW_AT_type
+ .uleb128 0x9 # (DIE (0x13cf) DW_TAG_base_type)
+ .byte 0x2 # DW_AT_byte_size
+ .byte 0x10 # DW_AT_encoding
+ .long .LASF2313 # DW_AT_name: "char16_t"
+ .uleb128 0x9 # (DIE (0x13d6) DW_TAG_base_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x10 # DW_AT_encoding
+ .long .LASF2314 # DW_AT_name: "char32_t"
+ .uleb128 0x65 # (DIE (0x13dd) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .uleb128 0x4 # (DIE (0x13df) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x13e5 # DW_AT_type
+ .uleb128 0x66 # (DIE (0x13e5) DW_TAG_const_type)
+ .uleb128 0x4 # (DIE (0x13e6) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x13ec # DW_AT_type
+ .uleb128 0x9 # (DIE (0x13ec) DW_TAG_base_type)
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x6 # DW_AT_encoding
+ .long .LASF2315 # DW_AT_name: "char"
+ .uleb128 0x7 # (DIE (0x13f3) DW_TAG_const_type)
+ .long 0x13ec # DW_AT_type
+ .uleb128 0x4 # (DIE (0x13f8) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x13f3 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x13fe) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x13c3 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1404) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x13ca # DW_AT_type
+ .uleb128 0x9 # (DIE (0x140a) DW_TAG_base_type)
+ .byte 0x10 # DW_AT_byte_size
+ .byte 0x4 # DW_AT_encoding
+ .long .LASF2316 # DW_AT_name: "long double"
+ .uleb128 0x9 # (DIE (0x1411) DW_TAG_base_type)
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x4 # DW_AT_encoding
+ .long .LASF2317 # DW_AT_name: "double"
+ .uleb128 0x9 # (DIE (0x1418) DW_TAG_base_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x4 # DW_AT_encoding
+ .long .LASF2318 # DW_AT_name: "float"
+ .uleb128 0x41 # (DIE (0x141f) DW_TAG_namespace)
+ .long .LASF2319 # DW_AT_name: "__gnu_debug"
+ .byte 0xd # DW_AT_decl_file (/usr/include/c++/15/bits/stl_iterator.h)
+ .value 0xba7 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1435 # DW_AT_sibling
+ .uleb128 0x42 # (DIE (0x142c) DW_TAG_imported_module)
+ .byte 0x5 # DW_AT_decl_file (/usr/include/c++/15/debug/debug.h)
+ .byte 0x3a # DW_AT_decl_line
+ .byte 0x18 # DW_AT_decl_column
+ .long 0x6b # DW_AT_import
+ .byte 0 # end of children of DIE 0x141f
+ .uleb128 0x4 # (DIE (0x1435) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x73 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x143b) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0xae # DW_AT_type
+ .uleb128 0x67 # (DIE (0x1441) DW_TAG_unspecified_type)
+ .long .LASF2392 # DW_AT_name: "decltype(nullptr)"
+ .uleb128 0xe # (DIE (0x1446) DW_TAG_typedef)
+ .long .LASF2130 # DW_AT_name: "size_t"
+ .byte 0xe # DW_AT_decl_file (/usr/lib/gcc/x86_64-redhat-linux/15/include/stddef.h)
+ .byte 0xe5 # DW_AT_decl_line
+ .byte 0x17 # DW_AT_decl_column
+ .long 0x1368 # DW_AT_type
+ .uleb128 0x68 # (DIE (0x1452) DW_TAG_structure_type)
+ .long .LASF2393 # DW_AT_name: "typedef __va_list_tag __va_list_tag"
+ .byte 0x18 # DW_AT_byte_size
+ .byte 0xf # DW_AT_decl_file (<built-in>)
+ .byte 0 # DW_AT_decl_line
+ .long 0x148f # DW_AT_sibling
+ .uleb128 0x2a # (DIE (0x145e) DW_TAG_member)
+ .long .LASF2320 # DW_AT_name: "gp_offset"
+ .byte 0xf # DW_AT_decl_file (<built-in>)
+ .byte 0 # DW_AT_decl_line
+ .long 0x1384 # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .uleb128 0x2a # (DIE (0x146a) DW_TAG_member)
+ .long .LASF2321 # DW_AT_name: "fp_offset"
+ .byte 0xf # DW_AT_decl_file (<built-in>)
+ .byte 0 # DW_AT_decl_line
+ .long 0x1384 # DW_AT_type
+ .byte 0x4 # DW_AT_data_member_location
+ .uleb128 0x2a # (DIE (0x1476) DW_TAG_member)
+ .long .LASF2322 # DW_AT_name: "overflow_arg_area"
+ .byte 0xf # DW_AT_decl_file (<built-in>)
+ .byte 0 # DW_AT_decl_line
+ .long 0x13dd # DW_AT_type
+ .byte 0x8 # DW_AT_data_member_location
+ .uleb128 0x2a # (DIE (0x1482) DW_TAG_member)
+ .long .LASF2323 # DW_AT_name: "reg_save_area"
+ .byte 0xf # DW_AT_decl_file (<built-in>)
+ .byte 0 # DW_AT_decl_line
+ .long 0x13dd # DW_AT_type
+ .byte 0x10 # DW_AT_data_member_location
+ .byte 0 # end of children of DIE 0x1452
+ .uleb128 0xe # (DIE (0x148f) DW_TAG_typedef)
+ .long .LASF2324 # DW_AT_name: "wint_t"
+ .byte 0x10 # DW_AT_decl_file (/usr/include/bits/types/wint_t.h)
+ .byte 0x14 # DW_AT_decl_line
+ .byte 0x17 # DW_AT_decl_column
+ .long 0x1384 # DW_AT_type
+ .uleb128 0x69 # (DIE (0x149b) DW_TAG_structure_type)
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x11 # DW_AT_decl_file (/usr/include/bits/types/__mbstate_t.h)
+ .byte 0xe # DW_AT_decl_line
+ .byte 0x1 # DW_AT_decl_column
+ .long .LASF2394 # DW_AT_linkage_name: "11__mbstate_t"
+ .long 0x14e5 # DW_AT_sibling
+ .uleb128 0x6a # (DIE (0x14a8) DW_TAG_union_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x11 # DW_AT_decl_file (/usr/include/bits/types/__mbstate_t.h)
+ .byte 0x11 # DW_AT_decl_line
+ .byte 0x3 # DW_AT_decl_column
+ .long 0x14ca # DW_AT_sibling
+ .uleb128 0x43 # (DIE (0x14b1) DW_TAG_member)
+ .long .LASF2325 # DW_AT_name: "__wch"
+ .byte 0x11 # DW_AT_decl_file (/usr/include/bits/types/__mbstate_t.h)
+ .byte 0x12 # DW_AT_decl_line
+ .byte 0x13 # DW_AT_decl_column
+ .long 0x1384 # DW_AT_type
+ .uleb128 0x43 # (DIE (0x14bd) DW_TAG_member)
+ .long .LASF2326 # DW_AT_name: "__wchb"
+ .byte 0x11 # DW_AT_decl_file (/usr/include/bits/types/__mbstate_t.h)
+ .byte 0x13 # DW_AT_decl_line
+ .byte 0xa # DW_AT_decl_column
+ .long 0x14e5 # DW_AT_type
+ .byte 0 # end of children of DIE 0x14a8
+ .uleb128 0xa # (DIE (0x14ca) DW_TAG_member)
+ .long .LASF2327 # DW_AT_name: "__count"
+ .byte 0x11 # DW_AT_decl_file (/usr/include/bits/types/__mbstate_t.h)
+ .byte 0xf # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x14d7) DW_TAG_member)
+ .long .LASF2328 # DW_AT_name: "__value"
+ .byte 0x11 # DW_AT_decl_file (/usr/include/bits/types/__mbstate_t.h)
+ .byte 0x14 # DW_AT_decl_line
+ .byte 0x5 # DW_AT_decl_column
+ .long 0x14a8 # DW_AT_type
+ .byte 0x4 # DW_AT_data_member_location
+ .byte 0 # end of children of DIE 0x149b
+ .uleb128 0x6b # (DIE (0x14e5) DW_TAG_array_type)
+ .long 0x13ec # DW_AT_type
+ .long 0x14f5 # DW_AT_sibling
+ .uleb128 0x6c # (DIE (0x14ee) DW_TAG_subrange_type)
+ .long 0x1368 # DW_AT_type
+ .byte 0x3 # DW_AT_upper_bound
+ .byte 0 # end of children of DIE 0x14e5
+ .uleb128 0xe # (DIE (0x14f5) DW_TAG_typedef)
+ .long .LASF2329 # DW_AT_name: "__mbstate_t"
+ .byte 0x11 # DW_AT_decl_file (/usr/include/bits/types/__mbstate_t.h)
+ .byte 0x15 # DW_AT_decl_line
+ .byte 0x3 # DW_AT_decl_column
+ .long 0x149b # DW_AT_type
+ .uleb128 0xe # (DIE (0x1501) DW_TAG_typedef)
+ .long .LASF2330 # DW_AT_name: "mbstate_t"
+ .byte 0x12 # DW_AT_decl_file (/usr/include/bits/types/mbstate_t.h)
+ .byte 0x6 # DW_AT_decl_line
+ .byte 0x15 # DW_AT_decl_column
+ .long 0x14f5 # DW_AT_type
+ .uleb128 0x7 # (DIE (0x150d) DW_TAG_const_type)
+ .long 0x1501 # DW_AT_type
+ .uleb128 0xe # (DIE (0x1512) DW_TAG_typedef)
+ .long .LASF2331 # DW_AT_name: "__FILE"
+ .byte 0x13 # DW_AT_decl_file (/usr/include/bits/types/__FILE.h)
+ .byte 0x5 # DW_AT_decl_line
+ .byte 0x19 # DW_AT_decl_column
+ .long 0x151e # DW_AT_type
+ .uleb128 0x6d # (DIE (0x151e) DW_TAG_structure_type)
+ .long .LASF2395 # DW_AT_name: "_IO_FILE"
+ # DW_AT_declaration
+ .uleb128 0x5 # (DIE (0x1523) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1635 # DW_AT_name: "btowc"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x157 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_decl_column
+ .long 0x148f # DW_AT_type
+ # DW_AT_declaration
+ .long 0x153a # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1534) DW_TAG_formal_parameter)
+ .long 0x13a7 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1523
+ .uleb128 0x5 # (DIE (0x153a) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1636 # DW_AT_name: "fgetwc"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x3a7 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x148f # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1551 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x154b) DW_TAG_formal_parameter)
+ .long 0x1551 # DW_AT_type
+ .byte 0 # end of children of DIE 0x153a
+ .uleb128 0x4 # (DIE (0x1551) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x1512 # DW_AT_type
+ .uleb128 0x5 # (DIE (0x1557) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1637 # DW_AT_name: "fgetws"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x3c4 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long 0x13fe # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1578 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1568) DW_TAG_formal_parameter)
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x1 # (DIE (0x156d) DW_TAG_formal_parameter)
+ .long 0x13a7 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1572) DW_TAG_formal_parameter)
+ .long 0x1551 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1557
+ .uleb128 0x5 # (DIE (0x1578) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1638 # DW_AT_name: "fputwc"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x3b5 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x148f # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1594 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1589) DW_TAG_formal_parameter)
+ .long 0x13c3 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x158e) DW_TAG_formal_parameter)
+ .long 0x1551 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1578
+ .uleb128 0x5 # (DIE (0x1594) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1639 # DW_AT_name: "fputws"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x3cb # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x15b0 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x15a5) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x15aa) DW_TAG_formal_parameter)
+ .long 0x1551 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1594
+ .uleb128 0x5 # (DIE (0x15b0) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1640 # DW_AT_name: "fwide"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x2d5 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x15cc # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x15c1) DW_TAG_formal_parameter)
+ .long 0x1551 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x15c6) DW_TAG_formal_parameter)
+ .long 0x13a7 # DW_AT_type
+ .byte 0 # end of children of DIE 0x15b0
+ .uleb128 0x5 # (DIE (0x15cc) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1641 # DW_AT_name: "fwprintf"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x2dc # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x15e9 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x15dd) DW_TAG_formal_parameter)
+ .long 0x1551 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x15e2) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x26 # (DIE (0x15e7) DW_TAG_unspecified_parameters)
+ .byte 0 # end of children of DIE 0x15cc
+ .uleb128 0x8 # (DIE (0x15e9) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1642 # DW_AT_name: "fwscanf"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x31b # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long .LASF2332 # DW_AT_linkage_name: "__isoc23_fwscanf"
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x160a # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x15fe) DW_TAG_formal_parameter)
+ .long 0x1551 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1603) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x26 # (DIE (0x1608) DW_TAG_unspecified_parameters)
+ .byte 0 # end of children of DIE 0x15e9
+ .uleb128 0x5 # (DIE (0x160a) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1643 # DW_AT_name: "getwc"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x3a8 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x148f # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1621 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x161b) DW_TAG_formal_parameter)
+ .long 0x1551 # DW_AT_type
+ .byte 0 # end of children of DIE 0x160a
+ .uleb128 0x6e # (DIE (0x1621) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1644 # DW_AT_name: "getwchar"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x3ae # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x148f # DW_AT_type
+ # DW_AT_declaration
+ .uleb128 0x5 # (DIE (0x162e) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1645 # DW_AT_name: "mbrlen"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x162 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_decl_column
+ .long 0x1446 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x164f # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x163f) DW_TAG_formal_parameter)
+ .long 0x13f8 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1644) DW_TAG_formal_parameter)
+ .long 0x1446 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1649) DW_TAG_formal_parameter)
+ .long 0x164f # DW_AT_type
+ .byte 0 # end of children of DIE 0x162e
+ .uleb128 0x4 # (DIE (0x164f) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x1501 # DW_AT_type
+ .uleb128 0x5 # (DIE (0x1655) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1646 # DW_AT_name: "mbrtowc"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x141 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x1446 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x167b # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1666) DW_TAG_formal_parameter)
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x1 # (DIE (0x166b) DW_TAG_formal_parameter)
+ .long 0x13f8 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1670) DW_TAG_formal_parameter)
+ .long 0x1446 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1675) DW_TAG_formal_parameter)
+ .long 0x164f # DW_AT_type
+ .byte 0 # end of children of DIE 0x1655
+ .uleb128 0x5 # (DIE (0x167b) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1647 # DW_AT_name: "mbsinit"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x13d # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1692 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x168c) DW_TAG_formal_parameter)
+ .long 0x1692 # DW_AT_type
+ .byte 0 # end of children of DIE 0x167b
+ .uleb128 0x4 # (DIE (0x1692) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x150d # DW_AT_type
+ .uleb128 0x5 # (DIE (0x1698) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1648 # DW_AT_name: "mbsrtowcs"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x16a # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x1446 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x16be # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x16a9) DW_TAG_formal_parameter)
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x1 # (DIE (0x16ae) DW_TAG_formal_parameter)
+ .long 0x16be # DW_AT_type
+ .uleb128 0x1 # (DIE (0x16b3) DW_TAG_formal_parameter)
+ .long 0x1446 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x16b8) DW_TAG_formal_parameter)
+ .long 0x164f # DW_AT_type
+ .byte 0 # end of children of DIE 0x1698
+ .uleb128 0x4 # (DIE (0x16be) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x13f8 # DW_AT_type
+ .uleb128 0x5 # (DIE (0x16c4) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1649 # DW_AT_name: "putwc"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x3b6 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x148f # DW_AT_type
+ # DW_AT_declaration
+ .long 0x16e0 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x16d5) DW_TAG_formal_parameter)
+ .long 0x13c3 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x16da) DW_TAG_formal_parameter)
+ .long 0x1551 # DW_AT_type
+ .byte 0 # end of children of DIE 0x16c4
+ .uleb128 0x5 # (DIE (0x16e0) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1650 # DW_AT_name: "putwchar"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x3bc # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x148f # DW_AT_type
+ # DW_AT_declaration
+ .long 0x16f7 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x16f1) DW_TAG_formal_parameter)
+ .long 0x13c3 # DW_AT_type
+ .byte 0 # end of children of DIE 0x16e0
+ .uleb128 0x5 # (DIE (0x16f7) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1651 # DW_AT_name: "swprintf"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x2e6 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1719 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1708) DW_TAG_formal_parameter)
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x1 # (DIE (0x170d) DW_TAG_formal_parameter)
+ .long 0x1446 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1712) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x26 # (DIE (0x1717) DW_TAG_unspecified_parameters)
+ .byte 0 # end of children of DIE 0x16f7
+ .uleb128 0x8 # (DIE (0x1719) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1652 # DW_AT_name: "swscanf"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x322 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long .LASF2333 # DW_AT_linkage_name: "__isoc23_swscanf"
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x173a # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x172e) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1733) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x26 # (DIE (0x1738) DW_TAG_unspecified_parameters)
+ .byte 0 # end of children of DIE 0x1719
+ .uleb128 0x5 # (DIE (0x173a) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1653 # DW_AT_name: "ungetwc"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x3d3 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x148f # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1756 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x174b) DW_TAG_formal_parameter)
+ .long 0x148f # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1750) DW_TAG_formal_parameter)
+ .long 0x1551 # DW_AT_type
+ .byte 0 # end of children of DIE 0x173a
+ .uleb128 0x5 # (DIE (0x1756) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1654 # DW_AT_name: "vfwprintf"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x2ee # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1777 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1767) DW_TAG_formal_parameter)
+ .long 0x1551 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x176c) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1771) DW_TAG_formal_parameter)
+ .long 0x1777 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1756
+ .uleb128 0x4 # (DIE (0x1777) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x1452 # DW_AT_type
+ .uleb128 0x8 # (DIE (0x177d) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1655 # DW_AT_name: "vfwscanf"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x36b # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long .LASF2334 # DW_AT_linkage_name: "__isoc23_vfwscanf"
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x17a2 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1792) DW_TAG_formal_parameter)
+ .long 0x1551 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1797) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x179c) DW_TAG_formal_parameter)
+ .long 0x1777 # DW_AT_type
+ .byte 0 # end of children of DIE 0x177d
+ .uleb128 0x5 # (DIE (0x17a2) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1656 # DW_AT_name: "vswprintf"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x2fb # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x17c8 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x17b3) DW_TAG_formal_parameter)
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x1 # (DIE (0x17b8) DW_TAG_formal_parameter)
+ .long 0x1446 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x17bd) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x17c2) DW_TAG_formal_parameter)
+ .long 0x1777 # DW_AT_type
+ .byte 0 # end of children of DIE 0x17a2
+ .uleb128 0x8 # (DIE (0x17c8) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1657 # DW_AT_name: "vswscanf"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x372 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long .LASF2335 # DW_AT_linkage_name: "__isoc23_vswscanf"
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x17ed # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x17dd) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x17e2) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x17e7) DW_TAG_formal_parameter)
+ .long 0x1777 # DW_AT_type
+ .byte 0 # end of children of DIE 0x17c8
+ .uleb128 0x5 # (DIE (0x17ed) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1658 # DW_AT_name: "vwprintf"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x2f6 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1809 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x17fe) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1803) DW_TAG_formal_parameter)
+ .long 0x1777 # DW_AT_type
+ .byte 0 # end of children of DIE 0x17ed
+ .uleb128 0x8 # (DIE (0x1809) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1659 # DW_AT_name: "vwscanf"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x36f # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long .LASF2336 # DW_AT_linkage_name: "__isoc23_vwscanf"
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1829 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x181e) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1823) DW_TAG_formal_parameter)
+ .long 0x1777 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1809
+ .uleb128 0x5 # (DIE (0x1829) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1660 # DW_AT_name: "wcrtomb"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x146 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x1446 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x184a # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x183a) DW_TAG_formal_parameter)
+ .long 0x13e6 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x183f) DW_TAG_formal_parameter)
+ .long 0x13c3 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1844) DW_TAG_formal_parameter)
+ .long 0x164f # DW_AT_type
+ .byte 0 # end of children of DIE 0x1829
+ .uleb128 0x13 # (DIE (0x184a) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1661 # DW_AT_name: "wcscat"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0x79 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long 0x13fe # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1865 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x185a) DW_TAG_formal_parameter)
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x1 # (DIE (0x185f) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .byte 0 # end of children of DIE 0x184a
+ .uleb128 0x13 # (DIE (0x1865) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1663 # DW_AT_name: "wcscmp"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0x82 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1880 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1875) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x187a) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1865
+ .uleb128 0x13 # (DIE (0x1880) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1664 # DW_AT_name: "wcscoll"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0x9b # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x189b # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1890) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1895) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1880
+ .uleb128 0x13 # (DIE (0x189b) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1665 # DW_AT_name: "wcscpy"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0x62 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long 0x13fe # DW_AT_type
+ # DW_AT_declaration
+ .long 0x18b6 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x18ab) DW_TAG_formal_parameter)
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x1 # (DIE (0x18b0) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .byte 0 # end of children of DIE 0x189b
+ .uleb128 0x13 # (DIE (0x18b6) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1666 # DW_AT_name: "wcscspn"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0xd4 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x1446 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x18d1 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x18c6) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x18cb) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .byte 0 # end of children of DIE 0x18b6
+ .uleb128 0x5 # (DIE (0x18d1) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1667 # DW_AT_name: "wcsftime"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x413 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x1446 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x18f7 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x18e2) DW_TAG_formal_parameter)
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x1 # (DIE (0x18e7) DW_TAG_formal_parameter)
+ .long 0x1446 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x18ec) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x18f1) DW_TAG_formal_parameter)
+ .long 0x18f7 # DW_AT_type
+ .byte 0 # end of children of DIE 0x18d1
+ .uleb128 0x4 # (DIE (0x18f7) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x1999 # DW_AT_type
+ .uleb128 0x6f # (DIE (0x18fd) DW_TAG_structure_type)
+ .ascii "tm\0" # DW_AT_name
+ .byte 0x38 # DW_AT_byte_size
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0x7 # DW_AT_decl_line
+ .byte 0x8 # DW_AT_decl_column
+ .long 0x1999 # DW_AT_sibling
+ .uleb128 0xa # (DIE (0x1909) DW_TAG_member)
+ .long .LASF2337 # DW_AT_name: "tm_sec"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0x9 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x1916) DW_TAG_member)
+ .long .LASF2338 # DW_AT_name: "tm_min"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0xa # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ .byte 0x4 # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x1923) DW_TAG_member)
+ .long .LASF2339 # DW_AT_name: "tm_hour"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0xb # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ .byte 0x8 # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x1930) DW_TAG_member)
+ .long .LASF2340 # DW_AT_name: "tm_mday"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0xc # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ .byte 0xc # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x193d) DW_TAG_member)
+ .long .LASF2341 # DW_AT_name: "tm_mon"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0xd # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ .byte 0x10 # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x194a) DW_TAG_member)
+ .long .LASF2342 # DW_AT_name: "tm_year"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0xe # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ .byte 0x14 # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x1957) DW_TAG_member)
+ .long .LASF2343 # DW_AT_name: "tm_wday"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0xf # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ .byte 0x18 # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x1964) DW_TAG_member)
+ .long .LASF2344 # DW_AT_name: "tm_yday"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0x10 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ .byte 0x1c # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x1971) DW_TAG_member)
+ .long .LASF2345 # DW_AT_name: "tm_isdst"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0x11 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ .byte 0x20 # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x197e) DW_TAG_member)
+ .long .LASF2346 # DW_AT_name: "tm_gmtoff"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0x14 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x13ae # DW_AT_type
+ .byte 0x28 # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x198b) DW_TAG_member)
+ .long .LASF2347 # DW_AT_name: "tm_zone"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0x15 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x13f8 # DW_AT_type
+ .byte 0x30 # DW_AT_data_member_location
+ .byte 0 # end of children of DIE 0x18fd
+ .uleb128 0x7 # (DIE (0x1999) DW_TAG_const_type)
+ .long 0x18fd # DW_AT_type
+ .uleb128 0x13 # (DIE (0x199e) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1668 # DW_AT_name: "wcslen"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0xf7 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x1446 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x19b4 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x19ae) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .byte 0 # end of children of DIE 0x199e
+ .uleb128 0x13 # (DIE (0x19b4) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1669 # DW_AT_name: "wcsncat"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0x7d # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long 0x13fe # DW_AT_type
+ # DW_AT_declaration
+ .long 0x19d4 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x19c4) DW_TAG_formal_parameter)
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x1 # (DIE (0x19c9) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x19ce) DW_TAG_formal_parameter)
+ .long 0x1446 # DW_AT_type
+ .byte 0 # end of children of DIE 0x19b4
+ .uleb128 0x13 # (DIE (0x19d4) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1670 # DW_AT_name: "wcsncmp"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0x85 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x19f4 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x19e4) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x19e9) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x19ee) DW_TAG_formal_parameter)
+ .long 0x1446 # DW_AT_type
+ .byte 0 # end of children of DIE 0x19d4
+ .uleb128 0x13 # (DIE (0x19f4) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1671 # DW_AT_name: "wcsncpy"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0x67 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long 0x13fe # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1a14 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1a04) DW_TAG_formal_parameter)
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1a09) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1a0e) DW_TAG_formal_parameter)
+ .long 0x1446 # DW_AT_type
+ .byte 0 # end of children of DIE 0x19f4
+ .uleb128 0x5 # (DIE (0x1a14) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1674 # DW_AT_name: "wcsrtombs"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x170 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x1446 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1a3a # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1a25) DW_TAG_formal_parameter)
+ .long 0x13e6 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1a2a) DW_TAG_formal_parameter)
+ .long 0x1a3a # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1a2f) DW_TAG_formal_parameter)
+ .long 0x1446 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1a34) DW_TAG_formal_parameter)
+ .long 0x164f # DW_AT_type
+ .byte 0 # end of children of DIE 0x1a14
+ .uleb128 0x4 # (DIE (0x1a3a) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x13 # (DIE (0x1a40) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1675 # DW_AT_name: "wcsspn"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0xd8 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x1446 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1a5b # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1a50) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1a55) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1a40
+ .uleb128 0x5 # (DIE (0x1a5b) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1677 # DW_AT_name: "wcstod"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x192 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x1411 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1a77 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1a6c) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1a71) DW_TAG_formal_parameter)
+ .long 0x1a77 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1a5b
+ .uleb128 0x4 # (DIE (0x1a77) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x5 # (DIE (0x1a7d) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1678 # DW_AT_name: "wcstof"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x197 # DW_AT_decl_line
+ .byte 0xe # DW_AT_decl_column
+ .long 0x1418 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1a99 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1a8e) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1a93) DW_TAG_formal_parameter)
+ .long 0x1a77 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1a7d
+ .uleb128 0x13 # (DIE (0x1a99) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1679 # DW_AT_name: "wcstok"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0xf2 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long 0x13fe # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1ab9 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1aa9) DW_TAG_formal_parameter)
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1aae) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1ab3) DW_TAG_formal_parameter)
+ .long 0x1a77 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1a99
+ .uleb128 0x8 # (DIE (0x1ab9) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1680 # DW_AT_name: "wcstol"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x1f4 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2348 # DW_AT_linkage_name: "__isoc23_wcstol"
+ .long 0x13ae # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1ade # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1ace) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1ad3) DW_TAG_formal_parameter)
+ .long 0x1a77 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1ad8) DW_TAG_formal_parameter)
+ .long 0x13a7 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1ab9
+ .uleb128 0x8 # (DIE (0x1ade) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1681 # DW_AT_name: "wcstoul"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x1f7 # DW_AT_decl_line
+ .byte 0x1a # DW_AT_decl_column
+ .long .LASF2349 # DW_AT_linkage_name: "__isoc23_wcstoul"
+ .long 0x1368 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1b03 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1af3) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1af8) DW_TAG_formal_parameter)
+ .long 0x1a77 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1afd) DW_TAG_formal_parameter)
+ .long 0x13a7 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1ade
+ .uleb128 0x13 # (DIE (0x1b03) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1682 # DW_AT_name: "wcsxfrm"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0x9f # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x1446 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1b23 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1b13) DW_TAG_formal_parameter)
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1b18) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1b1d) DW_TAG_formal_parameter)
+ .long 0x1446 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1b03
+ .uleb128 0x5 # (DIE (0x1b23) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1683 # DW_AT_name: "wctob"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x15d # DW_AT_decl_line
+ .byte 0x1 # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1b3a # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1b34) DW_TAG_formal_parameter)
+ .long 0x148f # DW_AT_type
+ .byte 0 # end of children of DIE 0x1b23
+ .uleb128 0x5 # (DIE (0x1b3a) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1685 # DW_AT_name: "wmemcmp"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x11b # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1b5b # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1b4b) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1b50) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1b55) DW_TAG_formal_parameter)
+ .long 0x1446 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1b3a
+ .uleb128 0x5 # (DIE (0x1b5b) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1686 # DW_AT_name: "wmemcpy"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x11f # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long 0x13fe # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1b7c # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1b6c) DW_TAG_formal_parameter)
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1b71) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1b76) DW_TAG_formal_parameter)
+ .long 0x1446 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1b5b
+ .uleb128 0x5 # (DIE (0x1b7c) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1687 # DW_AT_name: "wmemmove"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x124 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long 0x13fe # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1b9d # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1b8d) DW_TAG_formal_parameter)
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1b92) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1b97) DW_TAG_formal_parameter)
+ .long 0x1446 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1b7c
+ .uleb128 0x5 # (DIE (0x1b9d) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1688 # DW_AT_name: "wmemset"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x128 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long 0x13fe # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1bbe # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1bae) DW_TAG_formal_parameter)
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1bb3) DW_TAG_formal_parameter)
+ .long 0x13c3 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1bb8) DW_TAG_formal_parameter)
+ .long 0x1446 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1b9d
+ .uleb128 0x5 # (DIE (0x1bbe) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1689 # DW_AT_name: "wprintf"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x2e3 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1bd6 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1bcf) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x26 # (DIE (0x1bd4) DW_TAG_unspecified_parameters)
+ .byte 0 # end of children of DIE 0x1bbe
+ .uleb128 0x8 # (DIE (0x1bd6) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1690 # DW_AT_name: "wscanf"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x31f # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long .LASF2350 # DW_AT_linkage_name: "__isoc23_wscanf"
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1bf2 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1beb) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x26 # (DIE (0x1bf0) DW_TAG_unspecified_parameters)
+ .byte 0 # end of children of DIE 0x1bd6
+ .uleb128 0xf # (DIE (0x1bf2) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1662 # DW_AT_name: "wcschr"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0xba # DW_AT_decl_line
+ .byte 0x1d # DW_AT_decl_column
+ .long .LASF1662 # DW_AT_linkage_name: "wcschr"
+ .long 0x1404 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1c11 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1c06) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1c0b) DW_TAG_formal_parameter)
+ .long 0x13c3 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1bf2
+ .uleb128 0xf # (DIE (0x1c11) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1662 # DW_AT_name: "wcschr"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0xb8 # DW_AT_decl_line
+ .byte 0x17 # DW_AT_decl_column
+ .long .LASF1662 # DW_AT_linkage_name: "wcschr"
+ .long 0x13fe # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1c30 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1c25) DW_TAG_formal_parameter)
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1c2a) DW_TAG_formal_parameter)
+ .long 0x13c3 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1c11
+ .uleb128 0xf # (DIE (0x1c30) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1672 # DW_AT_name: "wcspbrk"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0xde # DW_AT_decl_line
+ .byte 0x1d # DW_AT_decl_column
+ .long .LASF1672 # DW_AT_linkage_name: "wcspbrk"
+ .long 0x1404 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1c4f # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1c44) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1c49) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1c30
+ .uleb128 0xf # (DIE (0x1c4f) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1672 # DW_AT_name: "wcspbrk"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0xdc # DW_AT_decl_line
+ .byte 0x17 # DW_AT_decl_column
+ .long .LASF1672 # DW_AT_linkage_name: "wcspbrk"
+ .long 0x13fe # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1c6e # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1c63) DW_TAG_formal_parameter)
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1c68) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1c4f
+ .uleb128 0xf # (DIE (0x1c6e) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1673 # DW_AT_name: "wcsrchr"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0xc4 # DW_AT_decl_line
+ .byte 0x1d # DW_AT_decl_column
+ .long .LASF1673 # DW_AT_linkage_name: "wcsrchr"
+ .long 0x1404 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1c8d # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1c82) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1c87) DW_TAG_formal_parameter)
+ .long 0x13c3 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1c6e
+ .uleb128 0xf # (DIE (0x1c8d) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1673 # DW_AT_name: "wcsrchr"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0xc2 # DW_AT_decl_line
+ .byte 0x17 # DW_AT_decl_column
+ .long .LASF1673 # DW_AT_linkage_name: "wcsrchr"
+ .long 0x13fe # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1cac # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1ca1) DW_TAG_formal_parameter)
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1ca6) DW_TAG_formal_parameter)
+ .long 0x13c3 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1c8d
+ .uleb128 0xf # (DIE (0x1cac) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1676 # DW_AT_name: "wcsstr"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0xe9 # DW_AT_decl_line
+ .byte 0x1d # DW_AT_decl_column
+ .long .LASF1676 # DW_AT_linkage_name: "wcsstr"
+ .long 0x1404 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1ccb # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1cc0) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1cc5) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1cac
+ .uleb128 0xf # (DIE (0x1ccb) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1676 # DW_AT_name: "wcsstr"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0xe7 # DW_AT_decl_line
+ .byte 0x17 # DW_AT_decl_column
+ .long .LASF1676 # DW_AT_linkage_name: "wcsstr"
+ .long 0x13fe # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1cea # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1cdf) DW_TAG_formal_parameter)
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1ce4) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1ccb
+ .uleb128 0x8 # (DIE (0x1cea) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1684 # DW_AT_name: "wmemchr"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x112 # DW_AT_decl_line
+ .byte 0x1d # DW_AT_decl_column
+ .long .LASF1684 # DW_AT_linkage_name: "wmemchr"
+ .long 0x1404 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1d0f # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1cff) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1d04) DW_TAG_formal_parameter)
+ .long 0x13c3 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1d09) DW_TAG_formal_parameter)
+ .long 0x1446 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1cea
+ .uleb128 0x8 # (DIE (0x1d0f) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1684 # DW_AT_name: "wmemchr"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x110 # DW_AT_decl_line
+ .byte 0x17 # DW_AT_decl_column
+ .long .LASF1684 # DW_AT_linkage_name: "wmemchr"
+ .long 0x13fe # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1d34 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1d24) DW_TAG_formal_parameter)
+ .long 0x13fe # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1d29) DW_TAG_formal_parameter)
+ .long 0x13c3 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1d2e) DW_TAG_formal_parameter)
+ .long 0x1446 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1d0f
+ .uleb128 0x5 # (DIE (0x1d34) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1691 # DW_AT_name: "wcstold"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x199 # DW_AT_decl_line
+ .byte 0x14 # DW_AT_decl_column
+ .long 0x140a # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1d50 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1d45) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1d4a) DW_TAG_formal_parameter)
+ .long 0x1a77 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1d34
+ .uleb128 0x8 # (DIE (0x1d50) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1692 # DW_AT_name: "wcstoll"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x1fc # DW_AT_decl_line
+ .byte 0x16 # DW_AT_decl_column
+ .long .LASF2351 # DW_AT_linkage_name: "__isoc23_wcstoll"
+ .long 0x13b5 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1d75 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1d65) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1d6a) DW_TAG_formal_parameter)
+ .long 0x1a77 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1d6f) DW_TAG_formal_parameter)
+ .long 0x13a7 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1d50
+ .uleb128 0x8 # (DIE (0x1d75) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1693 # DW_AT_name: "wcstoull"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x201 # DW_AT_decl_line
+ .byte 0x1f # DW_AT_decl_column
+ .long .LASF2352 # DW_AT_linkage_name: "__isoc23_wcstoull"
+ .long 0x138b # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1d9a # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1d8a) DW_TAG_formal_parameter)
+ .long 0x1404 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1d8f) DW_TAG_formal_parameter)
+ .long 0x1a77 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1d94) DW_TAG_formal_parameter)
+ .long 0x13a7 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1d75
+ .uleb128 0x4 # (DIE (0x1d9a) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x356 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1da0) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x51a # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1da6) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x51a # DW_AT_type
+ .uleb128 0x1a # (DIE (0x1dac) DW_TAG_rvalue_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x356 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1db2) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x356 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1db8) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x562 # DW_AT_type
+ .uleb128 0x70 # (DIE (0x1dbe) DW_TAG_variable)
+ .long 0x1355 # DW_AT_specification
+ .uleb128 0x2d # (DIE (0x1dc3) DW_TAG_namespace)
+ .long .LASF2353 # DW_AT_name: "__pstl"
+ .byte 0x16 # DW_AT_decl_file (/usr/include/c++/15/pstl/execution_defs.h)
+ .byte 0xf # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1de8 # DW_AT_sibling
+ .uleb128 0x71 # (DIE (0x1dcf) DW_TAG_namespace)
+ .long .LASF2396 # DW_AT_name: "execution"
+ .byte 0x16 # DW_AT_decl_file (/usr/include/c++/15/pstl/execution_defs.h)
+ .byte 0x11 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .uleb128 0x72 # (DIE (0x1dd7) DW_TAG_namespace)
+ .ascii "v1\0" # DW_AT_name
+ .byte 0x16 # DW_AT_decl_file (/usr/include/c++/15/pstl/execution_defs.h)
+ .byte 0x13 # DW_AT_decl_line
+ .byte 0x12 # DW_AT_decl_column
+ # DW_AT_export_symbols
+ .uleb128 0x42 # (DIE (0x1dde) DW_TAG_imported_module)
+ .byte 0x16 # DW_AT_decl_file (/usr/include/c++/15/pstl/execution_defs.h)
+ .byte 0x13 # DW_AT_decl_line
+ .byte 0x12 # DW_AT_decl_column
+ .long 0x1dd7 # DW_AT_import
+ .byte 0 # end of children of DIE 0x1dcf
+ .byte 0 # end of children of DIE 0x1dc3
+ .uleb128 0x3b # (DIE (0x1de8) DW_TAG_structure_type)
+ .long .LASF2355 # DW_AT_name: "Base"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x1 # DW_AT_decl_file (dwarf.cc)
+ .byte 0x2 # DW_AT_decl_line
+ .byte 0x8 # DW_AT_decl_column
+ .uleb128 0x4 # (DIE (0x1df1) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x597 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1df7) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x5e8 # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1dfd) DW_TAG_const_type)
+ .long 0x1df7 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1e02) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x1de8 # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1e08) DW_TAG_const_type)
+ .long 0x1e02 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1e0d) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x7b3 # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1e13) DW_TAG_const_type)
+ .long 0x1e0d # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1e18) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x5e8 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1e1e) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x8b2 # DW_AT_type
+ .uleb128 0x1a # (DIE (0x1e24) DW_TAG_rvalue_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x7b3 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1e2a) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x597 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1e30) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x7b3 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1e36) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x8b7 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1e3c) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x9d9 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1e42) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x8b7 # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1e48) DW_TAG_const_type)
+ .long 0x1e42 # DW_AT_type
+ .uleb128 0x1a # (DIE (0x1e4d) DW_TAG_rvalue_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x8b7 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1e53) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x9de # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1e59) DW_TAG_const_type)
+ .long 0x1e53 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1e5e) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x1e08 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1e64) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0xadd # DW_AT_type
+ .uleb128 0x1a # (DIE (0x1e6a) DW_TAG_rvalue_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x9de # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1e70) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x1e02 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1e76) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x9de # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1e7c) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0xae2 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1e82) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0xc5d # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1e88) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0xb33 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1e8e) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0xb40 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1e94) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0xae2 # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1e9a) DW_TAG_const_type)
+ .long 0x1e94 # DW_AT_type
+ .uleb128 0x1a # (DIE (0x1e9f) DW_TAG_rvalue_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0xae2 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1ea5) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0xc88 # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1eab) DW_TAG_const_type)
+ .long 0x1ea5 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1eb0) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0xd85 # DW_AT_type
+ .uleb128 0x1a # (DIE (0x1eb6) DW_TAG_rvalue_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0xc88 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1ebc) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0xc88 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1ec2) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x5ed # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1ec8) DW_TAG_const_type)
+ .long 0x1ec2 # DW_AT_type
+ .uleb128 0x1a # (DIE (0x1ecd) DW_TAG_rvalue_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x5ed # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1ed3) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x5ed # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1ed9) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x662 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1edf) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x7ae # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1ee5) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0xda2 # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1eeb) DW_TAG_const_type)
+ .long 0x1ee5 # DW_AT_type
+ .uleb128 0x1a # (DIE (0x1ef0) DW_TAG_rvalue_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0xda2 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1ef6) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0xda2 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1efc) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x1de8 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1f02) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0xe5a # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1f08) DW_TAG_const_type)
+ .long 0x1f02 # DW_AT_type
+ .uleb128 0x1a # (DIE (0x1f0d) DW_TAG_rvalue_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0xe5a # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1f13) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0xe5a # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1f19) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x10c5 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1f1f) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0xf6d # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1f25) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0xf7b # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1f2b) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x10c5 # DW_AT_type
+ .uleb128 0x73 # (DIE (0x1f31) DW_TAG_variable)
+ .long .LASF2374 # DW_AT_name: "__dso_handle"
+ .long 0x13dd # DW_AT_type
+ # DW_AT_external
+ # DW_AT_artificial
+ # DW_AT_declaration
+ .uleb128 0xf # (DIE (0x1f3a) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2356 # DW_AT_name: "operator new"
+ .byte 0x17 # DW_AT_decl_file (/usr/include/c++/15/new)
+ .byte 0x89 # DW_AT_decl_line
+ .byte 0x1a # DW_AT_decl_column
+ .long .LASF2357 # DW_AT_linkage_name: "_Znwm"
+ .long 0x13dd # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1f54 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1f4e) DW_TAG_formal_parameter)
+ .long 0x4c # DW_AT_type
+ .byte 0 # end of children of DIE 0x1f3a
+ .uleb128 0x74 # (DIE (0x1f54) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2358 # DW_AT_name: "operator delete"
+ .byte 0x17 # DW_AT_decl_file (/usr/include/c++/15/new)
+ .byte 0x94 # DW_AT_decl_line
+ .byte 0x6 # DW_AT_decl_column
+ .long .LASF2360 # DW_AT_linkage_name: "_ZdlPvm"
+ # DW_AT_declaration
+ .long 0x1f6f # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1f64) DW_TAG_formal_parameter)
+ .long 0x13dd # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1f69) DW_TAG_formal_parameter)
+ .long 0x4c # DW_AT_type
+ .byte 0 # end of children of DIE 0x1f54
+ .uleb128 0x44 # (DIE (0x1f6f) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2361 # DW_AT_name: "__cxa_guard_abort"
+ # DW_AT_artificial
+ # DW_AT_declaration
+ .long 0x1f7e # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1f78) DW_TAG_formal_parameter)
+ .long 0x1f7e # DW_AT_type
+ .byte 0 # end of children of DIE 0x1f6f
+ .uleb128 0x4 # (DIE (0x1f7e) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x13b5 # DW_AT_type
+ .uleb128 0x44 # (DIE (0x1f84) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2362 # DW_AT_name: "__cxa_guard_release"
+ # DW_AT_artificial
+ # DW_AT_declaration
+ .long 0x1f93 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1f8d) DW_TAG_formal_parameter)
+ .long 0x1f7e # DW_AT_type
+ .byte 0 # end of children of DIE 0x1f84
+ .uleb128 0x75 # (DIE (0x1f93) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2397 # DW_AT_name: "__cxa_guard_acquire"
+ .long 0x13a7 # DW_AT_type
+ # DW_AT_artificial
+ # DW_AT_declaration
+ .long 0x1fa6 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1fa0) DW_TAG_formal_parameter)
+ .long 0x1f7e # DW_AT_type
+ .byte 0 # end of children of DIE 0x1f93
+ .uleb128 0x1b # (DIE (0x1fa6) DW_TAG_subprogram)
+ .long 0x85d # DW_AT_specification
+ .byte 0x3 # DW_AT_inline
+ .long 0x1fbd # DW_AT_sibling
+ .uleb128 0x35 # (DIE (0x1fb0) DW_TAG_formal_parameter)
+ .ascii "__b\0" # DW_AT_name
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0x89 # DW_AT_decl_line
+ .byte 0x1b # DW_AT_decl_column
+ .long 0x1e30 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1fa6
+ .uleb128 0x14 # (DIE (0x1fbd) DW_TAG_subprogram)
+ .long 0x7c0 # DW_AT_specification
+ .long 0x1fcb # DW_AT_object_pointer
+ .byte 0x2 # DW_AT_inline
+ .long 0x1fd5 # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x1fcb) DW_TAG_formal_parameter)
+ .long .LASF2363 # DW_AT_name: "this"
+ .long 0x1e13 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x1fbd
+ .uleb128 0x1e # (DIE (0x1fd5) DW_TAG_subprogram)
+ .long 0x1fbd # DW_AT_abstract_origin
+ .long .LASF2364 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC2Ev"
+ .long 0x1fe6 # DW_AT_object_pointer
+ .long 0x1fec # DW_AT_sibling
+ .uleb128 0x15 # (DIE (0x1fe6) DW_TAG_formal_parameter)
+ .long 0x1fcb # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x1fd5
+ .uleb128 0x1b # (DIE (0x1fec) DW_TAG_subprogram)
+ .long 0x8cc # DW_AT_specification
+ .byte 0x3 # DW_AT_inline
+ .long 0x2004 # DW_AT_sibling
+ .uleb128 0x21 # (DIE (0x1ff6) DW_TAG_formal_parameter)
+ .ascii "__t\0" # DW_AT_name
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x22a # DW_AT_decl_line
+ .byte 0x1c # DW_AT_decl_column
+ .long 0x1e36 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1fec
+ .uleb128 0x1b # (DIE (0x2004) DW_TAG_subprogram)
+ .long 0xa88 # DW_AT_specification
+ .byte 0x3 # DW_AT_inline
+ .long 0x201b # DW_AT_sibling
+ .uleb128 0x35 # (DIE (0x200e) DW_TAG_formal_parameter)
+ .ascii "__b\0" # DW_AT_name
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0xf6 # DW_AT_decl_line
+ .byte 0x1b # DW_AT_decl_column
+ .long 0x1e76 # DW_AT_type
+ .byte 0 # end of children of DIE 0x2004
+ .uleb128 0x14 # (DIE (0x201b) DW_TAG_subprogram)
+ .long 0x9eb # DW_AT_specification
+ .long 0x2029 # DW_AT_object_pointer
+ .byte 0x2 # DW_AT_inline
+ .long 0x2033 # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x2029) DW_TAG_formal_parameter)
+ .long .LASF2363 # DW_AT_name: "this"
+ .long 0x1e59 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x201b
+ .uleb128 0x1e # (DIE (0x2033) DW_TAG_subprogram)
+ .long 0x201b # DW_AT_abstract_origin
+ .long .LASF2365 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm0EP4BaseLb0EEC2Ev"
+ .long 0x2044 # DW_AT_object_pointer
+ .long 0x204a # DW_AT_sibling
+ .uleb128 0x15 # (DIE (0x2044) DW_TAG_formal_parameter)
+ .long 0x2029 # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x2033
+ .uleb128 0x14 # (DIE (0x204a) DW_TAG_subprogram)
+ .long 0x902 # DW_AT_specification
+ .long 0x2058 # DW_AT_object_pointer
+ .byte 0x2 # DW_AT_inline
+ .long 0x2062 # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x2058) DW_TAG_formal_parameter)
+ .long .LASF2363 # DW_AT_name: "this"
+ .long 0x1e48 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x204a
+ .uleb128 0x1e # (DIE (0x2062) DW_TAG_subprogram)
+ .long 0x204a # DW_AT_abstract_origin
+ .long .LASF2366 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEC2Ev"
+ .long 0x2073 # DW_AT_object_pointer
+ .long 0x2079 # DW_AT_sibling
+ .uleb128 0x15 # (DIE (0x2073) DW_TAG_formal_parameter)
+ .long 0x2058 # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x2062
+ .uleb128 0x1b # (DIE (0x2079) DW_TAG_subprogram)
+ .long 0x11cf # DW_AT_specification
+ .byte 0x3 # DW_AT_inline
+ .long 0x20a9 # DW_AT_sibling
+ .uleb128 0x12 # (DIE (0x2083) DW_TAG_template_value_param)
+ .ascii "__i\0" # DW_AT_name
+ .long 0x1368 # DW_AT_type
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0x23 # (DIE (0x208d) DW_TAG_template_type_param)
+ .long .LASF2195 # DW_AT_name: "_Head"
+ .long 0x597 # DW_AT_type
+ .uleb128 0x29 # (DIE (0x2096) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2289 # DW_AT_name: "_Tail"
+ .uleb128 0x21 # (DIE (0x209b) DW_TAG_formal_parameter)
+ .ascii "__t\0" # DW_AT_name
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x97c # DW_AT_decl_line
+ .byte 0x35 # DW_AT_decl_column
+ .long 0x1e36 # DW_AT_type
+ .byte 0 # end of children of DIE 0x2079
+ .uleb128 0x1b # (DIE (0x20a9) DW_TAG_subprogram)
+ .long 0xafd # DW_AT_specification
+ .byte 0x3 # DW_AT_inline
+ .long 0x20c1 # DW_AT_sibling
+ .uleb128 0x21 # (DIE (0x20b3) DW_TAG_formal_parameter)
+ .ascii "__t\0" # DW_AT_name
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x123 # DW_AT_decl_line
+ .byte 0x1c # DW_AT_decl_column
+ .long 0x1e7c # DW_AT_type
+ .byte 0 # end of children of DIE 0x20a9
+ .uleb128 0x14 # (DIE (0x20c1) DW_TAG_subprogram)
+ .long 0xb7b # DW_AT_specification
+ .long 0x20cf # DW_AT_object_pointer
+ .byte 0x2 # DW_AT_inline
+ .long 0x20d9 # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x20cf) DW_TAG_formal_parameter)
+ .long .LASF2363 # DW_AT_name: "this"
+ .long 0x1e9a # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x20c1
+ .uleb128 0x1e # (DIE (0x20d9) DW_TAG_subprogram)
+ .long 0x20c1 # DW_AT_abstract_origin
+ .long .LASF2367 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEC2Ev"
+ .long 0x20ea # DW_AT_object_pointer
+ .long 0x20f0 # DW_AT_sibling
+ .uleb128 0x15 # (DIE (0x20ea) DW_TAG_formal_parameter)
+ .long 0x20cf # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x20d9
+ .uleb128 0x6 # (DIE (0x20f0) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x1202 # DW_AT_type
+ .uleb128 0x1b # (DIE (0x20f6) DW_TAG_subprogram)
+ .long 0x120e # DW_AT_specification
+ .byte 0x3 # DW_AT_inline
+ .long 0x212c # DW_AT_sibling
+ .uleb128 0x12 # (DIE (0x2100) DW_TAG_template_value_param)
+ .ascii "__i\0" # DW_AT_name
+ .long 0x1368 # DW_AT_type
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0x25 # (DIE (0x210a) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2229 # DW_AT_name: "_Elements"
+ .long 0x211e # DW_AT_sibling
+ .uleb128 0xb # (DIE (0x2113) DW_TAG_template_type_param)
+ .long 0x1e02 # DW_AT_type
+ .uleb128 0xb # (DIE (0x2118) DW_TAG_template_type_param)
+ .long 0x597 # DW_AT_type
+ .byte 0 # end of children of DIE 0x210a
+ .uleb128 0x21 # (DIE (0x211e) DW_TAG_formal_parameter)
+ .ascii "__t\0" # DW_AT_name
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x98c # DW_AT_decl_line
+ .byte 0x1e # DW_AT_decl_column
+ .long 0x1ebc # DW_AT_type
+ .byte 0 # end of children of DIE 0x20f6
+ .uleb128 0x1b # (DIE (0x212c) DW_TAG_subprogram)
+ .long 0x1247 # DW_AT_specification
+ .byte 0x3 # DW_AT_inline
+ .long 0x2166 # DW_AT_sibling
+ .uleb128 0x12 # (DIE (0x2136) DW_TAG_template_value_param)
+ .ascii "__i\0" # DW_AT_name
+ .long 0x1368 # DW_AT_type
+ .byte 0 # DW_AT_const_value
+ .uleb128 0x23 # (DIE (0x2140) DW_TAG_template_type_param)
+ .long .LASF2195 # DW_AT_name: "_Head"
+ .long 0x1e02 # DW_AT_type
+ .uleb128 0x25 # (DIE (0x2149) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2289 # DW_AT_name: "_Tail"
+ .long 0x2158 # DW_AT_sibling
+ .uleb128 0xb # (DIE (0x2152) DW_TAG_template_type_param)
+ .long 0x597 # DW_AT_type
+ .byte 0 # end of children of DIE 0x2149
+ .uleb128 0x21 # (DIE (0x2158) DW_TAG_formal_parameter)
+ .ascii "__t\0" # DW_AT_name
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x97c # DW_AT_decl_line
+ .byte 0x35 # DW_AT_decl_column
+ .long 0x1e7c # DW_AT_type
+ .byte 0 # end of children of DIE 0x212c
+ .uleb128 0x14 # (DIE (0x2166) DW_TAG_subprogram)
+ .long 0xd5d # DW_AT_specification
+ .long 0x217e # DW_AT_object_pointer
+ .byte 0x2 # DW_AT_inline
+ .long 0x2188 # DW_AT_sibling
+ .uleb128 0x32 # (DIE (0x2174) DW_TAG_template_value_param)
+ .long .LASF2368 # DW_AT_name: "_Dummy"
+ .long 0x136f # DW_AT_type
+ # DW_AT_default_value
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0x10 # (DIE (0x217e) DW_TAG_formal_parameter)
+ .long .LASF2363 # DW_AT_name: "this"
+ .long 0x1eab # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x2166
+ .uleb128 0x1e # (DIE (0x2188) DW_TAG_subprogram)
+ .long 0x2166 # DW_AT_abstract_origin
+ .long .LASF2369 # DW_AT_linkage_name: "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEC2ILb1ELb1EEEv"
+ .long 0x21a3 # DW_AT_object_pointer
+ .long 0x21a9 # DW_AT_sibling
+ .uleb128 0x32 # (DIE (0x2199) DW_TAG_template_value_param)
+ .long .LASF2368 # DW_AT_name: "_Dummy"
+ .long 0x136f # DW_AT_type
+ # DW_AT_default_value
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0x15 # (DIE (0x21a3) DW_TAG_formal_parameter)
+ .long 0x217e # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x2188
+ .uleb128 0x14 # (DIE (0x21a9) DW_TAG_subprogram)
+ .long 0x6f1 # DW_AT_specification
+ .long 0x21b7 # DW_AT_object_pointer
+ .byte 0x3 # DW_AT_inline
+ .long 0x21c1 # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x21b7) DW_TAG_formal_parameter)
+ .long .LASF2363 # DW_AT_name: "this"
+ .long 0x1ec8 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x21a9
+ .uleb128 0x6 # (DIE (0x21c1) DW_TAG_reference_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x1284 # DW_AT_type
+ .uleb128 0x1b # (DIE (0x21c7) DW_TAG_subprogram)
+ .long 0x1290 # DW_AT_specification
+ .byte 0x3 # DW_AT_inline
+ .long 0x21fd # DW_AT_sibling
+ .uleb128 0x12 # (DIE (0x21d1) DW_TAG_template_value_param)
+ .ascii "__i\0" # DW_AT_name
+ .long 0x1368 # DW_AT_type
+ .byte 0 # DW_AT_const_value
+ .uleb128 0x25 # (DIE (0x21db) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2229 # DW_AT_name: "_Elements"
+ .long 0x21ef # DW_AT_sibling
+ .uleb128 0xb # (DIE (0x21e4) DW_TAG_template_type_param)
+ .long 0x1e02 # DW_AT_type
+ .uleb128 0xb # (DIE (0x21e9) DW_TAG_template_type_param)
+ .long 0x597 # DW_AT_type
+ .byte 0 # end of children of DIE 0x21db
+ .uleb128 0x21 # (DIE (0x21ef) DW_TAG_formal_parameter)
+ .ascii "__t\0" # DW_AT_name
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x98c # DW_AT_decl_line
+ .byte 0x1e # DW_AT_decl_column
+ .long 0x1ebc # DW_AT_type
+ .byte 0 # end of children of DIE 0x21c7
+ .uleb128 0x14 # (DIE (0x21fd) DW_TAG_subprogram)
+ .long 0x642 # DW_AT_specification
+ .long 0x220b # DW_AT_object_pointer
+ .byte 0x2 # DW_AT_inline
+ .long 0x2221 # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x220b) DW_TAG_formal_parameter)
+ .long .LASF2363 # DW_AT_name: "this"
+ .long 0x1ec8 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x35 # (DIE (0x2214) DW_TAG_formal_parameter)
+ .ascii "__p\0" # DW_AT_name
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xaa # DW_AT_decl_line
+ .byte 0x1f # DW_AT_decl_column
+ .long 0x662 # DW_AT_type
+ .byte 0 # end of children of DIE 0x21fd
+ .uleb128 0x1e # (DIE (0x2221) DW_TAG_subprogram)
+ .long 0x21fd # DW_AT_abstract_origin
+ .long .LASF2370 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EEC2EPS0_"
+ .long 0x2232 # DW_AT_object_pointer
+ .long 0x223d # DW_AT_sibling
+ .uleb128 0x15 # (DIE (0x2232) DW_TAG_formal_parameter)
+ .long 0x220b # DW_AT_abstract_origin
+ .uleb128 0x15 # (DIE (0x2237) DW_TAG_formal_parameter)
+ .long 0x2214 # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x2221
+ .uleb128 0x14 # (DIE (0x223d) DW_TAG_subprogram)
+ .long 0x5bf # DW_AT_specification
+ .long 0x224b # DW_AT_object_pointer
+ .byte 0x3 # DW_AT_inline
+ .long 0x2261 # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x224b) DW_TAG_formal_parameter)
+ .long .LASF2363 # DW_AT_name: "this"
+ .long 0x1dfd # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x76 # (DIE (0x2254) DW_TAG_formal_parameter)
+ .long .LASF2371 # DW_AT_name: "__ptr"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0x57 # DW_AT_decl_line
+ .byte 0x17 # DW_AT_decl_column
+ .long 0x1e02 # DW_AT_type
+ .byte 0 # end of children of DIE 0x223d
+ .uleb128 0x14 # (DIE (0x2261) DW_TAG_subprogram)
+ .long 0xf80 # DW_AT_specification
+ .long 0x226f # DW_AT_object_pointer
+ .byte 0x3 # DW_AT_inline
+ .long 0x2279 # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x226f) DW_TAG_formal_parameter)
+ .long .LASF2363 # DW_AT_name: "this"
+ .long 0x1f08 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x2261
+ .uleb128 0x14 # (DIE (0x2279) DW_TAG_subprogram)
+ .long 0x6b3 # DW_AT_specification
+ .long 0x2287 # DW_AT_object_pointer
+ .byte 0x3 # DW_AT_inline
+ .long 0x2291 # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x2287) DW_TAG_formal_parameter)
+ .long .LASF2363 # DW_AT_name: "this"
+ .long 0x1ec8 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x2279
+ .uleb128 0x14 # (DIE (0x2291) DW_TAG_subprogram)
+ .long 0x1088 # DW_AT_specification
+ .long 0x22a8 # DW_AT_object_pointer
+ .byte 0x2 # DW_AT_inline
+ .long 0x22bf # DW_AT_sibling
+ .uleb128 0x33 # (DIE (0x229f) DW_TAG_template_type_param)
+ .long .LASF2272 # DW_AT_name: "_Del"
+ .long 0x597 # DW_AT_type
+ # DW_AT_default_value
+ .uleb128 0x10 # (DIE (0x22a8) DW_TAG_formal_parameter)
+ .long .LASF2363 # DW_AT_name: "this"
+ .long 0x1f08 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x21 # (DIE (0x22b1) DW_TAG_formal_parameter)
+ .ascii "__p\0" # DW_AT_name
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x137 # DW_AT_decl_line
+ .byte 0x15 # DW_AT_decl_column
+ .long 0xf1f # DW_AT_type
+ .byte 0 # end of children of DIE 0x2291
+ .uleb128 0x1e # (DIE (0x22bf) DW_TAG_subprogram)
+ .long 0x2291 # DW_AT_abstract_origin
+ .long .LASF2372 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEC2IS2_vEEPS0_"
+ .long 0x22d9 # DW_AT_object_pointer
+ .long 0x22e4 # DW_AT_sibling
+ .uleb128 0x33 # (DIE (0x22d0) DW_TAG_template_type_param)
+ .long .LASF2272 # DW_AT_name: "_Del"
+ .long 0x597 # DW_AT_type
+ # DW_AT_default_value
+ .uleb128 0x15 # (DIE (0x22d9) DW_TAG_formal_parameter)
+ .long 0x22a8 # DW_AT_abstract_origin
+ .uleb128 0x15 # (DIE (0x22de) DW_TAG_formal_parameter)
+ .long 0x22b1 # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x22bf
+ .uleb128 0x77 # (DIE (0x22e4) DW_TAG_subprogram)
+ .long 0xdf9 # DW_AT_specification
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xeb # DW_AT_decl_line
+ .byte 0x28 # DW_AT_decl_column
+ .long 0x22f5 # DW_AT_object_pointer
+ .byte 0x2 # DW_AT_inline
+ .long 0x2304 # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x22f5) DW_TAG_formal_parameter)
+ .long .LASF2363 # DW_AT_name: "this"
+ .long 0x1eeb # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x22fe) DW_TAG_formal_parameter)
+ .long 0x662 # DW_AT_type
+ .byte 0 # end of children of DIE 0x22e4
+ .uleb128 0x1e # (DIE (0x2304) DW_TAG_subprogram)
+ .long 0x22e4 # DW_AT_abstract_origin
+ .long .LASF2373 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_dataI4BaseSt14default_deleteIS0_ELb1ELb1EECI2St15__uniq_ptr_implIS0_S2_EEPS0_"
+ .long 0x2315 # DW_AT_object_pointer
+ .long 0x2320 # DW_AT_sibling
+ .uleb128 0x15 # (DIE (0x2315) DW_TAG_formal_parameter)
+ .long 0x22f5 # DW_AT_abstract_origin
+ .uleb128 0x15 # (DIE (0x231a) DW_TAG_formal_parameter)
+ .long 0x22fe # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x2304
+ .uleb128 0x14 # (DIE (0x2320) DW_TAG_subprogram)
+ .long 0xe98 # DW_AT_specification
+ .long 0x232e # DW_AT_object_pointer
+ .byte 0x2 # DW_AT_inline
+ .long 0x2347 # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x232e) DW_TAG_formal_parameter)
+ .long .LASF2363 # DW_AT_name: "this"
+ .long 0x1f08 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x78 # (DIE (0x2337) DW_TAG_lexical_block)
+ .uleb128 0x79 # (DIE (0x2338) DW_TAG_variable)
+ .long .LASF2371 # DW_AT_name: "__ptr"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x18d # DW_AT_decl_line
+ .byte 0x8 # DW_AT_decl_column
+ .long 0x1e70 # DW_AT_type
+ .byte 0 # end of children of DIE 0x2337
+ .byte 0 # end of children of DIE 0x2320
+ .uleb128 0x7a # (DIE (0x2347) DW_TAG_subprogram)
+ .long 0x2320 # DW_AT_abstract_origin
+ .long .LASF2398 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED2Ev"
+ .long 0x236a # DW_AT_object_pointer
+ .quad .LFB1565 # DW_AT_low_pc
+ .quad .LFE1565-.LFB1565 # DW_AT_high_pc
+ .uleb128 0x1 # DW_AT_frame_base
+ .byte 0x9c # DW_OP_call_frame_cfa
+ # DW_AT_GNU_all_call_sites
+ .long 0x245a # DW_AT_sibling
+ .uleb128 0xc # (DIE (0x236a) DW_TAG_formal_parameter)
+ .long 0x232e # DW_AT_abstract_origin
+ .long .LLST0 # DW_AT_location
+ .long .LVUS0 # DW_AT_GNU_locviews
+ .uleb128 0x7b # (DIE (0x2377) DW_TAG_lexical_block)
+ .long 0x2337 # DW_AT_abstract_origin
+ .long 0x2386 # DW_AT_sibling
+ .uleb128 0x7c # (DIE (0x2380) DW_TAG_variable)
+ .long 0x2338 # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x2377
+ .uleb128 0x7d # (DIE (0x2386) DW_TAG_lexical_block)
+ .long 0x2337 # DW_AT_abstract_origin
+ .quad .LBB144 # DW_AT_low_pc
+ .quad .LBE144-.LBB144 # DW_AT_high_pc
+ .uleb128 0x7e # (DIE (0x239b) DW_TAG_variable)
+ .long 0x2338 # DW_AT_abstract_origin
+ .long .LLST1 # DW_AT_location
+ .long .LVUS1 # DW_AT_GNU_locviews
+ .uleb128 0x36 # (DIE (0x23a8) DW_TAG_inlined_subroutine)
+ .long 0x2279 # DW_AT_abstract_origin
+ .quad .LBI145 # DW_AT_entry_pc
+ .byte .LVU1 # DW_AT_GNU_entry_view
+ .quad .LBB145 # DW_AT_low_pc
+ .quad .LBE145-.LBB145 # DW_AT_high_pc
+ .byte 0x2 # DW_AT_call_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x18d # DW_AT_call_line
+ .byte 0x1b # DW_AT_call_column
+ .long 0x23dc # DW_AT_sibling
+ .uleb128 0xc # (DIE (0x23ce) DW_TAG_formal_parameter)
+ .long 0x2287 # DW_AT_abstract_origin
+ .long .LLST2 # DW_AT_location
+ .long .LVUS2 # DW_AT_GNU_locviews
+ .byte 0 # end of children of DIE 0x23a8
+ .uleb128 0x36 # (DIE (0x23dc) DW_TAG_inlined_subroutine)
+ .long 0x2261 # DW_AT_abstract_origin
+ .quad .LBI146 # DW_AT_entry_pc
+ .byte .LVU5 # DW_AT_GNU_entry_view
+ .quad .LBB146 # DW_AT_low_pc
+ .quad .LBE146-.LBB146 # DW_AT_high_pc
+ .byte 0x2 # DW_AT_call_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x18f # DW_AT_call_line
+ .byte 0xf # DW_AT_call_column
+ .long 0x2410 # DW_AT_sibling
+ .uleb128 0xc # (DIE (0x2402) DW_TAG_formal_parameter)
+ .long 0x226f # DW_AT_abstract_origin
+ .long .LLST3 # DW_AT_location
+ .long .LVUS3 # DW_AT_GNU_locviews
+ .byte 0 # end of children of DIE 0x23dc
+ .uleb128 0x2b # (DIE (0x2410) DW_TAG_inlined_subroutine)
+ .long 0x223d # DW_AT_abstract_origin
+ .quad .LBI147 # DW_AT_entry_pc
+ .byte .LVU7 # DW_AT_GNU_entry_view
+ .quad .LBB147 # DW_AT_low_pc
+ .quad .LBE147-.LBB147 # DW_AT_high_pc
+ .byte 0x2 # DW_AT_call_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x18f # DW_AT_call_line
+ .byte 0x11 # DW_AT_call_column
+ .uleb128 0x15 # (DIE (0x2432) DW_TAG_formal_parameter)
+ .long 0x224b # DW_AT_abstract_origin
+ .uleb128 0xc # (DIE (0x2437) DW_TAG_formal_parameter)
+ .long 0x2254 # DW_AT_abstract_origin
+ .long .LLST4 # DW_AT_location
+ .long .LVUS4 # DW_AT_GNU_locviews
+ .uleb128 0x7f # (DIE (0x2444) DW_TAG_GNU_call_site)
+ .quad .LVL3 # DW_AT_low_pc
+ # DW_AT_GNU_tail_call
+ .long 0x1f54 # DW_AT_abstract_origin
+ .uleb128 0x1f # (DIE (0x2451) DW_TAG_GNU_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x54 # DW_OP_reg4
+ .uleb128 0x1 # DW_AT_GNU_call_site_value
+ .byte 0x31 # DW_OP_lit1
+ .byte 0 # end of children of DIE 0x2444
+ .byte 0 # end of children of DIE 0x2410
+ .byte 0 # end of children of DIE 0x2386
+ .byte 0 # end of children of DIE 0x2347
+ .uleb128 0x1b # (DIE (0x245a) DW_TAG_subprogram)
+ .long 0x12c9 # DW_AT_specification
+ .byte 0x3 # DW_AT_inline
+ .long 0x247d # DW_AT_sibling
+ .uleb128 0xd # (DIE (0x2464) DW_TAG_template_type_param)
+ .ascii "_Tp\0" # DW_AT_name
+ .long 0x1de8 # DW_AT_type
+ .uleb128 0x29 # (DIE (0x246d) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2293 # DW_AT_name: "_Args"
+ .uleb128 0x80 # (DIE (0x2472) DW_TAG_GNU_formal_parameter_pack)
+ .long .LASF2399 # DW_AT_name: "__args"
+ .byte 0x2 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x43c # DW_AT_decl_line
+ .byte 0x18 # DW_AT_decl_column
+ .byte 0 # end of children of DIE 0x245a
+ .uleb128 0x81 # (DIE (0x247d) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2375 # DW_AT_name: "main"
+ .byte 0x1 # DW_AT_decl_file (dwarf.cc)
+ .byte 0x6 # DW_AT_decl_line
+ .byte 0x5 # DW_AT_decl_column
+ .long 0x13a7 # DW_AT_type
+ .quad .LFB1555 # DW_AT_low_pc
+ .quad .LFE1555-.LFB1555 # DW_AT_high_pc
+ .uleb128 0x1 # DW_AT_frame_base
+ .byte 0x9c # DW_OP_call_frame_cfa
+ # DW_AT_GNU_all_call_sites
+ .long 0x24bd # DW_AT_sibling
+ .uleb128 0x45 # (DIE (0x24a0) DW_TAG_formal_parameter)
+ .long 0x13a7 # DW_AT_type
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x45 # (DIE (0x24a7) DW_TAG_formal_parameter)
+ .long 0x24bd # DW_AT_type
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x54 # DW_OP_reg4
+ .uleb128 0x82 # (DIE (0x24ae) DW_TAG_GNU_call_site)
+ .quad .LVL11 # DW_AT_low_pc
+ .long 0x24c3 # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x247d
+ .uleb128 0x4 # (DIE (0x24bd) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long 0x13e6 # DW_AT_type
+ .uleb128 0x83 # (DIE (0x24c3) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2376 # DW_AT_name: "func"
+ .byte 0x1 # DW_AT_decl_file (dwarf.cc)
+ .byte 0x3 # DW_AT_decl_line
+ .byte 0x6 # DW_AT_decl_column
+ .long .LASF2377 # DW_AT_linkage_name: "_Z4funcv"
+ .long .Ldebug_ranges0+0 # DW_AT_ranges
+ .uleb128 0x1 # DW_AT_frame_base
+ .byte 0x9c # DW_OP_call_frame_cfa
+ # DW_AT_GNU_all_call_sites
+ .long 0x2780 # DW_AT_sibling
+ .uleb128 0x84 # (DIE (0x24da) DW_TAG_variable)
+ .long .LASF2400 # DW_AT_name: "varStatic"
+ .byte 0x1 # DW_AT_decl_file (dwarf.cc)
+ .byte 0x4 # DW_AT_decl_line
+ .byte 0x1f # DW_AT_decl_column
+ .long 0xe5a # DW_AT_type
+ .uleb128 0x9 # DW_AT_location
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .uleb128 0x85 # (DIE (0x24f1) DW_TAG_inlined_subroutine)
+ .long 0x245a # DW_AT_abstract_origin
+ .quad .LBI149 # DW_AT_entry_pc
+ .byte .LVU19 # DW_AT_GNU_entry_view
+ .long .Ldebug_ranges0+0x30 # DW_AT_ranges
+ .byte 0x1 # DW_AT_call_file (dwarf.cc)
+ .byte 0x4 # DW_AT_call_line
+ .byte 0x42 # DW_AT_call_column
+ .long 0x26e0 # DW_AT_sibling
+ .uleb128 0x86 # (DIE (0x250b) DW_TAG_inlined_subroutine)
+ .long 0x2291 # DW_AT_abstract_origin
+ .quad .LBI151 # DW_AT_entry_pc
+ .byte .LVU21 # DW_AT_GNU_entry_view
+ .long .Ldebug_ranges0+0x60 # DW_AT_ranges
+ .byte 0x2 # DW_AT_call_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x43d # DW_AT_call_line
+ .byte 0x45 # DW_AT_call_column
+ .long 0x26cc # DW_AT_sibling
+ .uleb128 0xc # (DIE (0x2526) DW_TAG_formal_parameter)
+ .long 0x22a8 # DW_AT_abstract_origin
+ .long .LLST5 # DW_AT_location
+ .long .LVUS5 # DW_AT_GNU_locviews
+ .uleb128 0xc # (DIE (0x2533) DW_TAG_formal_parameter)
+ .long 0x22b1 # DW_AT_abstract_origin
+ .long .LLST6 # DW_AT_location
+ .long .LVUS6 # DW_AT_GNU_locviews
+ .uleb128 0x87 # (DIE (0x2540) DW_TAG_inlined_subroutine)
+ .long 0x22e4 # DW_AT_abstract_origin
+ .quad .LBI152 # DW_AT_entry_pc
+ .byte .LVU22 # DW_AT_GNU_entry_view
+ .long .Ldebug_ranges0+0x60 # DW_AT_ranges
+ .byte 0x2 # DW_AT_call_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x138 # DW_AT_call_line
+ .byte 0x4 # DW_AT_call_column
+ .uleb128 0xc # (DIE (0x2557) DW_TAG_formal_parameter)
+ .long 0x22f5 # DW_AT_abstract_origin
+ .long .LLST7 # DW_AT_location
+ .long .LVUS7 # DW_AT_GNU_locviews
+ .uleb128 0xc # (DIE (0x2564) DW_TAG_formal_parameter)
+ .long 0x22fe # DW_AT_abstract_origin
+ .long .LLST8 # DW_AT_location
+ .long .LVUS8 # DW_AT_GNU_locviews
+ .uleb128 0x88 # (DIE (0x2571) DW_TAG_inlined_subroutine)
+ .long 0x21fd # DW_AT_abstract_origin
+ .quad .LBI153 # DW_AT_entry_pc
+ .byte .LVU23 # DW_AT_GNU_entry_view
+ .long .Ldebug_ranges0+0x60 # DW_AT_ranges
+ .byte 0x2 # DW_AT_call_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xeb # DW_AT_call_line
+ .byte 0x28 # DW_AT_call_column
+ .uleb128 0xc # (DIE (0x2587) DW_TAG_formal_parameter)
+ .long 0x220b # DW_AT_abstract_origin
+ .long .LLST9 # DW_AT_location
+ .long .LVUS9 # DW_AT_GNU_locviews
+ .uleb128 0xc # (DIE (0x2594) DW_TAG_formal_parameter)
+ .long 0x2214 # DW_AT_abstract_origin
+ .long .LLST10 # DW_AT_location
+ .long .LVUS10 # DW_AT_GNU_locviews
+ .uleb128 0x89 # (DIE (0x25a1) DW_TAG_inlined_subroutine)
+ .long 0x2166 # DW_AT_abstract_origin
+ .quad .LBI155 # DW_AT_entry_pc
+ .byte .LVU24 # DW_AT_GNU_entry_view
+ .quad .LBB155 # DW_AT_low_pc
+ .quad .LBE155-.LBB155 # DW_AT_high_pc
+ .byte 0x2 # DW_AT_call_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xaa # DW_AT_call_line
+ .byte 0x26 # DW_AT_call_column
+ .long 0x2699 # DW_AT_sibling
+ .uleb128 0xc # (DIE (0x25c7) DW_TAG_formal_parameter)
+ .long 0x217e # DW_AT_abstract_origin
+ .long .LLST11 # DW_AT_location
+ .long .LVUS11 # DW_AT_GNU_locviews
+ .uleb128 0x2b # (DIE (0x25d4) DW_TAG_inlined_subroutine)
+ .long 0x20c1 # DW_AT_abstract_origin
+ .quad .LBI156 # DW_AT_entry_pc
+ .byte .LVU25 # DW_AT_GNU_entry_view
+ .quad .LBB156 # DW_AT_low_pc
+ .quad .LBE156-.LBB156 # DW_AT_high_pc
+ .byte 0x3 # DW_AT_call_file (/usr/include/c++/15/tuple)
+ .value 0x82c # DW_AT_call_line
+ .byte 0xf # DW_AT_call_column
+ .uleb128 0xc # (DIE (0x25f6) DW_TAG_formal_parameter)
+ .long 0x20cf # DW_AT_abstract_origin
+ .long .LLST12 # DW_AT_location
+ .long .LVUS12 # DW_AT_GNU_locviews
+ .uleb128 0x36 # (DIE (0x2603) DW_TAG_inlined_subroutine)
+ .long 0x204a # DW_AT_abstract_origin
+ .quad .LBI157 # DW_AT_entry_pc
+ .byte .LVU26 # DW_AT_GNU_entry_view
+ .quad .LBB157 # DW_AT_low_pc
+ .quad .LBE157-.LBB157 # DW_AT_high_pc
+ .byte 0x3 # DW_AT_call_file (/usr/include/c++/15/tuple)
+ .value 0x12f # DW_AT_call_line
+ .byte 0x1d # DW_AT_call_column
+ .long 0x2667 # DW_AT_sibling
+ .uleb128 0xc # (DIE (0x2629) DW_TAG_formal_parameter)
+ .long 0x2058 # DW_AT_abstract_origin
+ .long .LLST13 # DW_AT_location
+ .long .LVUS13 # DW_AT_GNU_locviews
+ .uleb128 0x2b # (DIE (0x2636) DW_TAG_inlined_subroutine)
+ .long 0x1fbd # DW_AT_abstract_origin
+ .quad .LBI158 # DW_AT_entry_pc
+ .byte .LVU27 # DW_AT_GNU_entry_view
+ .quad .LBB158 # DW_AT_low_pc
+ .quad .LBE158-.LBB158 # DW_AT_high_pc
+ .byte 0x3 # DW_AT_call_file (/usr/include/c++/15/tuple)
+ .value 0x231 # DW_AT_call_line
+ .byte 0xf # DW_AT_call_column
+ .uleb128 0xc # (DIE (0x2658) DW_TAG_formal_parameter)
+ .long 0x1fcb # DW_AT_abstract_origin
+ .long .LLST14 # DW_AT_location
+ .long .LVUS14 # DW_AT_GNU_locviews
+ .byte 0 # end of children of DIE 0x2636
+ .byte 0 # end of children of DIE 0x2603
+ .uleb128 0x2b # (DIE (0x2667) DW_TAG_inlined_subroutine)
+ .long 0x201b # DW_AT_abstract_origin
+ .quad .LBI159 # DW_AT_entry_pc
+ .byte .LVU29 # DW_AT_GNU_entry_view
+ .quad .LBB159 # DW_AT_low_pc
+ .quad .LBE159-.LBB159 # DW_AT_high_pc
+ .byte 0x3 # DW_AT_call_file (/usr/include/c++/15/tuple)
+ .value 0x12f # DW_AT_call_line
+ .byte 0x1d # DW_AT_call_column
+ .uleb128 0xc # (DIE (0x2689) DW_TAG_formal_parameter)
+ .long 0x2029 # DW_AT_abstract_origin
+ .long .LLST15 # DW_AT_location
+ .long .LVUS15 # DW_AT_GNU_locviews
+ .byte 0 # end of children of DIE 0x2667
+ .byte 0 # end of children of DIE 0x25d4
+ .byte 0 # end of children of DIE 0x25a1
+ .uleb128 0x8a # (DIE (0x2699) DW_TAG_inlined_subroutine)
+ .long 0x2279 # DW_AT_abstract_origin
+ .quad .LBI160 # DW_AT_entry_pc
+ .byte .LVU31 # DW_AT_GNU_entry_view
+ .quad .LBB160 # DW_AT_low_pc
+ .quad .LBE160-.LBB160 # DW_AT_high_pc
+ .byte 0x2 # DW_AT_call_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xaa # DW_AT_call_line
+ .byte 0x35 # DW_AT_call_column
+ .uleb128 0xc # (DIE (0x26bb) DW_TAG_formal_parameter)
+ .long 0x2287 # DW_AT_abstract_origin
+ .long .LLST16 # DW_AT_location
+ .long .LVUS16 # DW_AT_GNU_locviews
+ .byte 0 # end of children of DIE 0x2699
+ .byte 0 # end of children of DIE 0x2571
+ .byte 0 # end of children of DIE 0x2540
+ .byte 0 # end of children of DIE 0x250b
+ .uleb128 0x46 # (DIE (0x26cc) DW_TAG_GNU_call_site)
+ .quad .LVL5 # DW_AT_low_pc
+ .long 0x1f3a # DW_AT_abstract_origin
+ .uleb128 0x1f # (DIE (0x26d9) DW_TAG_GNU_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x1 # DW_AT_GNU_call_site_value
+ .byte 0x31 # DW_OP_lit1
+ .byte 0 # end of children of DIE 0x26cc
+ .byte 0 # end of children of DIE 0x24f1
+ .uleb128 0x47 # (DIE (0x26e0) DW_TAG_GNU_call_site)
+ .quad .LVL4 # DW_AT_low_pc
+ .long 0x1f93 # DW_AT_abstract_origin
+ .long 0x26ff # DW_AT_sibling
+ .uleb128 0x1f # (DIE (0x26f1) DW_TAG_GNU_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x9 # DW_AT_GNU_call_site_value
+ .byte 0x3 # DW_OP_addr
+ .quad _ZGVZ4funcvE9varStatic
+ .byte 0 # end of children of DIE 0x26e0
+ .uleb128 0x8b # (DIE (0x26ff) DW_TAG_GNU_call_site)
+ .quad .LVL7 # DW_AT_low_pc
+ .long 0x272c # DW_AT_sibling
+ .uleb128 0x1f # (DIE (0x270d) DW_TAG_GNU_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x9 # DW_AT_GNU_call_site_value
+ .byte 0x3 # DW_OP_addr
+ .quad _ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED1Ev
+ .uleb128 0x1f # (DIE (0x271a) DW_TAG_GNU_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x54 # DW_OP_reg4
+ .uleb128 0x9 # DW_AT_GNU_call_site_value
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .uleb128 0x8c # (DIE (0x2727) DW_TAG_GNU_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x51 # DW_OP_reg1
+ .byte 0 # end of children of DIE 0x26ff
+ .uleb128 0x8d # (DIE (0x272c) DW_TAG_GNU_call_site)
+ .quad .LVL8 # DW_AT_low_pc
+ # DW_AT_GNU_tail_call
+ .long 0x1f84 # DW_AT_abstract_origin
+ .long 0x274c # DW_AT_sibling
+ .uleb128 0x1f # (DIE (0x273e) DW_TAG_GNU_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x9 # DW_AT_GNU_call_site_value
+ .byte 0x3 # DW_OP_addr
+ .quad _ZGVZ4funcvE9varStatic
+ .byte 0 # end of children of DIE 0x272c
+ .uleb128 0x47 # (DIE (0x274c) DW_TAG_GNU_call_site)
+ .quad .LVL9 # DW_AT_low_pc
+ .long 0x1f6f # DW_AT_abstract_origin
+ .long 0x276b # DW_AT_sibling
+ .uleb128 0x1f # (DIE (0x275d) DW_TAG_GNU_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x9 # DW_AT_GNU_call_site_value
+ .byte 0x3 # DW_OP_addr
+ .quad _ZGVZ4funcvE9varStatic
+ .byte 0 # end of children of DIE 0x274c
+ .uleb128 0x46 # (DIE (0x276b) DW_TAG_GNU_call_site)
+ .quad .LVL10 # DW_AT_low_pc
+ .long 0x2780 # DW_AT_abstract_origin
+ .uleb128 0x1f # (DIE (0x2778) DW_TAG_GNU_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x2 # DW_AT_GNU_call_site_value
+ .byte 0x73 # DW_OP_breg3
+ .sleb128 0
+ .byte 0 # end of children of DIE 0x276b
+ .byte 0 # end of children of DIE 0x24c3
+ .uleb128 0x8e # (DIE (0x2780) DW_TAG_subprogram)
+ # DW_AT_external
+ # DW_AT_declaration
+ .long .LASF2401 # DW_AT_linkage_name: "_Unwind_Resume"
+ .long .LASF2402 # DW_AT_name: "__builtin_unwind_resume"
+ .byte 0 # end of children of DIE 0xb
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .uleb128 0x1 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x2 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x34 # (DW_AT_artificial)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x3 # (abbrev code)
+ .uleb128 0x8 # (TAG: DW_TAG_imported_declaration)
+ .byte 0 # DW_children_no
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x18 # (DW_AT_import)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x4 # (abbrev code)
+ .uleb128 0xf # (TAG: DW_TAG_pointer_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x5 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x6 # (abbrev code)
+ .uleb128 0x10 # (TAG: DW_TAG_reference_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x7 # (abbrev code)
+ .uleb128 0x26 # (TAG: DW_TAG_const_type)
+ .byte 0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x8 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x9 # (abbrev code)
+ .uleb128 0x24 # (TAG: DW_TAG_base_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3e # (DW_AT_encoding)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .byte 0
+ .byte 0
+ .uleb128 0xa # (abbrev code)
+ .uleb128 0xd # (TAG: DW_TAG_member)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x38 # (DW_AT_data_member_location)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0xb # (abbrev code)
+ .uleb128 0x2f # (TAG: DW_TAG_template_type_param)
+ .byte 0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0xc # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x2137 # (DW_AT_GNU_locviews)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0xd # (abbrev code)
+ .uleb128 0x2f # (TAG: DW_TAG_template_type_param)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0xe # (abbrev code)
+ .uleb128 0x16 # (TAG: DW_TAG_typedef)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0xf # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x10 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x34 # (DW_AT_artificial)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x11 # (abbrev code)
+ .uleb128 0x8 # (TAG: DW_TAG_imported_declaration)
+ .byte 0 # DW_children_no
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x18 # (DW_AT_import)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x12 # (abbrev code)
+ .uleb128 0x30 # (TAG: DW_TAG_template_value_param)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1c # (DW_AT_const_value)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x13 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x14 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x47 # (DW_AT_specification)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x20 # (DW_AT_inline)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x15 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x16 # (abbrev code)
+ .uleb128 0x13 # (TAG: DW_TAG_structure_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x17 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x18 # (abbrev code)
+ .uleb128 0x16 # (TAG: DW_TAG_typedef)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x19 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x1a # (abbrev code)
+ .uleb128 0x42 # (TAG: DW_TAG_rvalue_reference_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x1b # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x47 # (DW_AT_specification)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x20 # (DW_AT_inline)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x1c # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x1d # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x1e # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x1f # (abbrev code)
+ .uleb128 0x410a # (TAG: DW_TAG_GNU_call_site_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .uleb128 0x2111 # (DW_AT_GNU_call_site_value)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .byte 0
+ .byte 0
+ .uleb128 0x20 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x21 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x22 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x8b # (DW_AT_defaulted)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x23 # (abbrev code)
+ .uleb128 0x2f # (TAG: DW_TAG_template_type_param)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x24 # (abbrev code)
+ .uleb128 0x13 # (TAG: DW_TAG_structure_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x25 # (abbrev code)
+ .uleb128 0x4107 # (TAG: DW_TAG_GNU_template_parameter_pack)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x26 # (abbrev code)
+ .uleb128 0x18 # (TAG: DW_TAG_unspecified_parameters)
+ .byte 0 # DW_children_no
+ .byte 0
+ .byte 0
+ .uleb128 0x27 # (abbrev code)
+ .uleb128 0x30 # (TAG: DW_TAG_template_value_param)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1c # (DW_AT_const_value)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x28 # (abbrev code)
+ .uleb128 0x4107 # (TAG: DW_TAG_GNU_template_parameter_pack)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .byte 0
+ .byte 0
+ .uleb128 0x29 # (abbrev code)
+ .uleb128 0x4107 # (TAG: DW_TAG_GNU_template_parameter_pack)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .byte 0
+ .byte 0
+ .uleb128 0x2a # (abbrev code)
+ .uleb128 0xd # (TAG: DW_TAG_member)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x38 # (DW_AT_data_member_location)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x2b # (abbrev code)
+ .uleb128 0x1d # (TAG: DW_TAG_inlined_subroutine)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x52 # (DW_AT_entry_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x2138 # (DW_AT_GNU_entry_view)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x58 # (DW_AT_call_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x59 # (DW_AT_call_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x57 # (DW_AT_call_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x2c # (abbrev code)
+ .uleb128 0x1c # (TAG: DW_TAG_inheritance)
+ .byte 0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x38 # (DW_AT_data_member_location)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x2d # (abbrev code)
+ .uleb128 0x39 # (TAG: DW_TAG_namespace)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x2e # (abbrev code)
+ .uleb128 0x1c # (TAG: DW_TAG_inheritance)
+ .byte 0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x38 # (DW_AT_data_member_location)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x2f # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x30 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x8b # (DW_AT_defaulted)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x31 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x8b # (DW_AT_defaulted)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x32 # (abbrev code)
+ .uleb128 0x30 # (TAG: DW_TAG_template_value_param)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1e # (DW_AT_default_value)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1c # (DW_AT_const_value)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x33 # (abbrev code)
+ .uleb128 0x2f # (TAG: DW_TAG_template_type_param)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1e # (DW_AT_default_value)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x34 # (abbrev code)
+ .uleb128 0x28 # (TAG: DW_TAG_enumerator)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x1c # (DW_AT_const_value)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x35 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x36 # (abbrev code)
+ .uleb128 0x1d # (TAG: DW_TAG_inlined_subroutine)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x52 # (DW_AT_entry_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x2138 # (DW_AT_GNU_entry_view)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x58 # (DW_AT_call_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x59 # (DW_AT_call_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x57 # (DW_AT_call_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x37 # (abbrev code)
+ .uleb128 0x39 # (TAG: DW_TAG_namespace)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x89 # (DW_AT_export_symbols)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x38 # (abbrev code)
+ .uleb128 0x3a # (TAG: DW_TAG_imported_module)
+ .byte 0 # DW_children_no
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x18 # (DW_AT_import)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x39 # (abbrev code)
+ .uleb128 0x39 # (TAG: DW_TAG_namespace)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x3a # (abbrev code)
+ .uleb128 0x39 # (TAG: DW_TAG_namespace)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x3b # (abbrev code)
+ .uleb128 0x13 # (TAG: DW_TAG_structure_type)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x3c # (abbrev code)
+ .uleb128 0x2 # (TAG: DW_TAG_class_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x3d # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x63 # (DW_AT_explicit)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x3e # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x8a # (DW_AT_deleted)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x3f # (abbrev code)
+ .uleb128 0x2 # (TAG: DW_TAG_class_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x40 # (abbrev code)
+ .uleb128 0x16 # (TAG: DW_TAG_typedef)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x41 # (abbrev code)
+ .uleb128 0x39 # (TAG: DW_TAG_namespace)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x42 # (abbrev code)
+ .uleb128 0x3a # (TAG: DW_TAG_imported_module)
+ .byte 0 # DW_children_no
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x18 # (DW_AT_import)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x43 # (abbrev code)
+ .uleb128 0xd # (TAG: DW_TAG_member)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x44 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x34 # (DW_AT_artificial)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x45 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .byte 0
+ .byte 0
+ .uleb128 0x46 # (abbrev code)
+ .uleb128 0x4109 # (TAG: DW_TAG_GNU_call_site)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x47 # (abbrev code)
+ .uleb128 0x4109 # (TAG: DW_TAG_GNU_call_site)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x48 # (abbrev code)
+ .uleb128 0x11 # (TAG: DW_TAG_compile_unit)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x25 # (DW_AT_producer)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x13 # (DW_AT_language)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x1b # (DW_AT_comp_dir)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x55 # (DW_AT_ranges)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x10 # (DW_AT_stmt_list)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x2119 # (DW_AT_GNU_macros)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0x49 # (abbrev code)
+ .uleb128 0x39 # (TAG: DW_TAG_namespace)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x4a # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x63 # (DW_AT_explicit)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x8b # (DW_AT_defaulted)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x4b # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x4c # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x63 # (DW_AT_explicit)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x4d # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x4e # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x63 # (DW_AT_explicit)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x4f # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x50 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x51 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x87 # (DW_AT_noreturn)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x52 # (abbrev code)
+ .uleb128 0x2 # (TAG: DW_TAG_class_type)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x53 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x8b # (DW_AT_defaulted)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x54 # (abbrev code)
+ .uleb128 0x16 # (TAG: DW_TAG_typedef)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x55 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0 # DW_children_no
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x56 # (abbrev code)
+ .uleb128 0x4107 # (TAG: DW_TAG_GNU_template_parameter_pack)
+ .byte 0 # DW_children_no
+ .byte 0
+ .byte 0
+ .uleb128 0x57 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x8b # (DW_AT_defaulted)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x58 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x34 # (DW_AT_artificial)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x59 # (abbrev code)
+ .uleb128 0xd # (TAG: DW_TAG_member)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x38 # (DW_AT_data_member_location)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x5a # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x8b # (DW_AT_defaulted)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x5b # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x5c # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x63 # (DW_AT_explicit)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x5d # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x8a # (DW_AT_deleted)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x5e # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x8a # (DW_AT_deleted)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x5f # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x63 # (DW_AT_explicit)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x60 # (abbrev code)
+ .uleb128 0x2f # (TAG: DW_TAG_template_type_param)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1e # (DW_AT_default_value)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x61 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x62 # (abbrev code)
+ .uleb128 0x4 # (TAG: DW_TAG_enumeration_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3e # (DW_AT_encoding)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x63 # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1c # (DW_AT_const_value)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x20 # (DW_AT_inline)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x64 # (abbrev code)
+ .uleb128 0x24 # (TAG: DW_TAG_base_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3e # (DW_AT_encoding)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .byte 0
+ .byte 0
+ .uleb128 0x65 # (abbrev code)
+ .uleb128 0xf # (TAG: DW_TAG_pointer_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x66 # (abbrev code)
+ .uleb128 0x26 # (TAG: DW_TAG_const_type)
+ .byte 0 # DW_children_no
+ .byte 0
+ .byte 0
+ .uleb128 0x67 # (abbrev code)
+ .uleb128 0x3b # (TAG: DW_TAG_unspecified_type)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .byte 0
+ .byte 0
+ .uleb128 0x68 # (abbrev code)
+ .uleb128 0x13 # (TAG: DW_TAG_structure_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x69 # (abbrev code)
+ .uleb128 0x13 # (TAG: DW_TAG_structure_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x6a # (abbrev code)
+ .uleb128 0x17 # (TAG: DW_TAG_union_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x6b # (abbrev code)
+ .uleb128 0x1 # (TAG: DW_TAG_array_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x6c # (abbrev code)
+ .uleb128 0x21 # (TAG: DW_TAG_subrange_type)
+ .byte 0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2f # (DW_AT_upper_bound)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x6d # (abbrev code)
+ .uleb128 0x13 # (TAG: DW_TAG_structure_type)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x6e # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0 # DW_children_no
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x6f # (abbrev code)
+ .uleb128 0x13 # (TAG: DW_TAG_structure_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x70 # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x47 # (DW_AT_specification)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x71 # (abbrev code)
+ .uleb128 0x39 # (TAG: DW_TAG_namespace)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x72 # (abbrev code)
+ .uleb128 0x39 # (TAG: DW_TAG_namespace)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x89 # (DW_AT_export_symbols)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x73 # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x34 # (DW_AT_artificial)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x74 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x75 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x34 # (DW_AT_artificial)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x76 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x77 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x47 # (DW_AT_specification)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x20 # (DW_AT_inline)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x78 # (abbrev code)
+ .uleb128 0xb # (TAG: DW_TAG_lexical_block)
+ .byte 0x1 # DW_children_yes
+ .byte 0
+ .byte 0
+ .uleb128 0x79 # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x7a # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x40 # (DW_AT_frame_base)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x7b # (abbrev code)
+ .uleb128 0xb # (TAG: DW_TAG_lexical_block)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x7c # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x7d # (abbrev code)
+ .uleb128 0xb # (TAG: DW_TAG_lexical_block)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .byte 0
+ .byte 0
+ .uleb128 0x7e # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x2137 # (DW_AT_GNU_locviews)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0x7f # (abbrev code)
+ .uleb128 0x4109 # (TAG: DW_TAG_GNU_call_site)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x2115 # (DW_AT_GNU_tail_call)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x80 # (abbrev code)
+ .uleb128 0x4108 # (TAG: DW_TAG_GNU_formal_parameter_pack)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x81 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x40 # (DW_AT_frame_base)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x82 # (abbrev code)
+ .uleb128 0x4109 # (TAG: DW_TAG_GNU_call_site)
+ .byte 0 # DW_children_no
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x83 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x55 # (DW_AT_ranges)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x40 # (DW_AT_frame_base)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x84 # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .byte 0
+ .byte 0
+ .uleb128 0x85 # (abbrev code)
+ .uleb128 0x1d # (TAG: DW_TAG_inlined_subroutine)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x52 # (DW_AT_entry_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x2138 # (DW_AT_GNU_entry_view)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x55 # (DW_AT_ranges)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x58 # (DW_AT_call_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x59 # (DW_AT_call_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x57 # (DW_AT_call_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x86 # (abbrev code)
+ .uleb128 0x1d # (TAG: DW_TAG_inlined_subroutine)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x52 # (DW_AT_entry_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x2138 # (DW_AT_GNU_entry_view)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x55 # (DW_AT_ranges)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x58 # (DW_AT_call_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x59 # (DW_AT_call_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x57 # (DW_AT_call_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x87 # (abbrev code)
+ .uleb128 0x1d # (TAG: DW_TAG_inlined_subroutine)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x52 # (DW_AT_entry_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x2138 # (DW_AT_GNU_entry_view)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x55 # (DW_AT_ranges)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x58 # (DW_AT_call_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x59 # (DW_AT_call_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x57 # (DW_AT_call_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x88 # (abbrev code)
+ .uleb128 0x1d # (TAG: DW_TAG_inlined_subroutine)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x52 # (DW_AT_entry_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x2138 # (DW_AT_GNU_entry_view)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x55 # (DW_AT_ranges)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x58 # (DW_AT_call_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x59 # (DW_AT_call_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x57 # (DW_AT_call_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x89 # (abbrev code)
+ .uleb128 0x1d # (TAG: DW_TAG_inlined_subroutine)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x52 # (DW_AT_entry_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x2138 # (DW_AT_GNU_entry_view)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x58 # (DW_AT_call_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x59 # (DW_AT_call_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x57 # (DW_AT_call_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x8a # (abbrev code)
+ .uleb128 0x1d # (TAG: DW_TAG_inlined_subroutine)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x52 # (DW_AT_entry_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x2138 # (DW_AT_GNU_entry_view)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x58 # (DW_AT_call_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x59 # (DW_AT_call_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x57 # (DW_AT_call_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x8b # (abbrev code)
+ .uleb128 0x4109 # (TAG: DW_TAG_GNU_call_site)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x8c # (abbrev code)
+ .uleb128 0x410a # (TAG: DW_TAG_GNU_call_site_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .byte 0
+ .byte 0
+ .uleb128 0x8d # (abbrev code)
+ .uleb128 0x4109 # (TAG: DW_TAG_GNU_call_site)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x2115 # (DW_AT_GNU_tail_call)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x8e # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0 # DW_children_no
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_loc,"",@progbits
+.Ldebug_loc0:
+.LVUS0:
+ .uleb128 0 # View list begin (*.LVUS0)
+ .uleb128 .LVU4 # View list end (*.LVUS0)
+ .uleb128 .LVU4 # View list begin (*.LVUS0)
+ .uleb128 0 # View list end (*.LVUS0)
+.LLST0:
+ .quad .LVL0 # Location list begin address (*.LLST0)
+ .quad .LVL1 # Location list end address (*.LLST0)
+ .value 0x1 # Location expression size
+ .byte 0x55 # DW_OP_reg5
+ .quad .LVL1 # Location list begin address (*.LLST0)
+ .quad .LFE1565 # Location list end address (*.LLST0)
+ .value 0x4 # Location expression size
+ .byte 0xf3 # DW_OP_GNU_entry_value
+ .uleb128 0x1
+ .byte 0x55 # DW_OP_reg5
+ .byte 0x9f # DW_OP_stack_value
+ .quad 0 # Location list terminator begin (*.LLST0)
+ .quad 0 # Location list terminator end (*.LLST0)
+.LVUS1:
+ .uleb128 .LVU2 # View list begin (*.LVUS1)
+ .uleb128 .LVU4 # View list end (*.LVUS1)
+ .uleb128 .LVU4 # View list begin (*.LVUS1)
+ .uleb128 0 # View list end (*.LVUS1)
+.LLST1:
+ .quad .LVL0 # Location list begin address (*.LLST1)
+ .quad .LVL1 # Location list end address (*.LLST1)
+ .value 0x1 # Location expression size
+ .byte 0x55 # DW_OP_reg5
+ .quad .LVL1 # Location list begin address (*.LLST1)
+ .quad .LFE1565 # Location list end address (*.LLST1)
+ .value 0x4 # Location expression size
+ .byte 0xf3 # DW_OP_GNU_entry_value
+ .uleb128 0x1
+ .byte 0x55 # DW_OP_reg5
+ .byte 0x9f # DW_OP_stack_value
+ .quad 0 # Location list terminator begin (*.LLST1)
+ .quad 0 # Location list terminator end (*.LLST1)
+.LVUS2:
+ .uleb128 .LVU1 # View list begin (*.LVUS2)
+ .uleb128 .LVU2 # View list end (*.LVUS2)
+.LLST2:
+ .quad .LVL0 # Location list begin address (*.LLST2)
+ .quad .LVL0 # Location list end address (*.LLST2)
+ .value 0x1 # Location expression size
+ .byte 0x55 # DW_OP_reg5
+ .quad 0 # Location list terminator begin (*.LLST2)
+ .quad 0 # Location list terminator end (*.LLST2)
+.LVUS3:
+ .uleb128 .LVU5 # View list begin (*.LVUS3)
+ .uleb128 .LVU6 # View list end (*.LVUS3)
+.LLST3:
+ .quad .LVL2 # Location list begin address (*.LLST3)
+ .quad .LVL2 # Location list end address (*.LLST3)
+ .value 0x4 # Location expression size
+ .byte 0xf3 # DW_OP_GNU_entry_value
+ .uleb128 0x1
+ .byte 0x55 # DW_OP_reg5
+ .byte 0x9f # DW_OP_stack_value
+ .quad 0 # Location list terminator begin (*.LLST3)
+ .quad 0 # Location list terminator end (*.LLST3)
+.LVUS4:
+ .uleb128 .LVU6 # View list begin (*.LVUS4)
+ .uleb128 .LVU9 # View list end (*.LVUS4)
+.LLST4:
+ .quad .LVL2 # Location list begin address (*.LLST4)
+ .quad .LVL3-1 # Location list end address (*.LLST4)
+ .value 0x1 # Location expression size
+ .byte 0x55 # DW_OP_reg5
+ .quad 0 # Location list terminator begin (*.LLST4)
+ .quad 0 # Location list terminator end (*.LLST4)
+.LVUS5:
+ .uleb128 .LVU21 # View list begin (*.LVUS5)
+ .uleb128 .LVU35 # View list end (*.LVUS5)
+.LLST5:
+ .quad .LVL5 # Location list begin address (*.LLST5)
+ .quad .LVL6 # Location list end address (*.LLST5)
+ .value 0xa # Location expression size
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .byte 0x9f # DW_OP_stack_value
+ .quad 0 # Location list terminator begin (*.LLST5)
+ .quad 0 # Location list terminator end (*.LLST5)
+.LVUS6:
+ .uleb128 .LVU21 # View list begin (*.LVUS6)
+ .uleb128 .LVU35 # View list end (*.LVUS6)
+.LLST6:
+ .quad .LVL5 # Location list begin address (*.LLST6)
+ .quad .LVL6 # Location list end address (*.LLST6)
+ .value 0x1 # Location expression size
+ .byte 0x50 # DW_OP_reg0
+ .quad 0 # Location list terminator begin (*.LLST6)
+ .quad 0 # Location list terminator end (*.LLST6)
+.LVUS7:
+ .uleb128 .LVU22 # View list begin (*.LVUS7)
+ .uleb128 .LVU35 # View list end (*.LVUS7)
+.LLST7:
+ .quad .LVL5 # Location list begin address (*.LLST7)
+ .quad .LVL6 # Location list end address (*.LLST7)
+ .value 0xa # Location expression size
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .byte 0x9f # DW_OP_stack_value
+ .quad 0 # Location list terminator begin (*.LLST7)
+ .quad 0 # Location list terminator end (*.LLST7)
+.LVUS8:
+ .uleb128 .LVU22 # View list begin (*.LVUS8)
+ .uleb128 .LVU35 # View list end (*.LVUS8)
+.LLST8:
+ .quad .LVL5 # Location list begin address (*.LLST8)
+ .quad .LVL6 # Location list end address (*.LLST8)
+ .value 0x1 # Location expression size
+ .byte 0x50 # DW_OP_reg0
+ .quad 0 # Location list terminator begin (*.LLST8)
+ .quad 0 # Location list terminator end (*.LLST8)
+.LVUS9:
+ .uleb128 .LVU23 # View list begin (*.LVUS9)
+ .uleb128 .LVU35 # View list end (*.LVUS9)
+.LLST9:
+ .quad .LVL5 # Location list begin address (*.LLST9)
+ .quad .LVL6 # Location list end address (*.LLST9)
+ .value 0xa # Location expression size
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .byte 0x9f # DW_OP_stack_value
+ .quad 0 # Location list terminator begin (*.LLST9)
+ .quad 0 # Location list terminator end (*.LLST9)
+.LVUS10:
+ .uleb128 .LVU23 # View list begin (*.LVUS10)
+ .uleb128 .LVU35 # View list end (*.LVUS10)
+.LLST10:
+ .quad .LVL5 # Location list begin address (*.LLST10)
+ .quad .LVL6 # Location list end address (*.LLST10)
+ .value 0x1 # Location expression size
+ .byte 0x50 # DW_OP_reg0
+ .quad 0 # Location list terminator begin (*.LLST10)
+ .quad 0 # Location list terminator end (*.LLST10)
+.LVUS11:
+ .uleb128 .LVU24 # View list begin (*.LVUS11)
+ .uleb128 .LVU30 # View list end (*.LVUS11)
+.LLST11:
+ .quad .LVL5 # Location list begin address (*.LLST11)
+ .quad .LVL5 # Location list end address (*.LLST11)
+ .value 0xa # Location expression size
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .byte 0x9f # DW_OP_stack_value
+ .quad 0 # Location list terminator begin (*.LLST11)
+ .quad 0 # Location list terminator end (*.LLST11)
+.LVUS12:
+ .uleb128 .LVU25 # View list begin (*.LVUS12)
+ .uleb128 .LVU30 # View list end (*.LVUS12)
+.LLST12:
+ .quad .LVL5 # Location list begin address (*.LLST12)
+ .quad .LVL5 # Location list end address (*.LLST12)
+ .value 0xa # Location expression size
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .byte 0x9f # DW_OP_stack_value
+ .quad 0 # Location list terminator begin (*.LLST12)
+ .quad 0 # Location list terminator end (*.LLST12)
+.LVUS13:
+ .uleb128 .LVU26 # View list begin (*.LVUS13)
+ .uleb128 .LVU28 # View list end (*.LVUS13)
+.LLST13:
+ .quad .LVL5 # Location list begin address (*.LLST13)
+ .quad .LVL5 # Location list end address (*.LLST13)
+ .value 0xa # Location expression size
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .byte 0x9f # DW_OP_stack_value
+ .quad 0 # Location list terminator begin (*.LLST13)
+ .quad 0 # Location list terminator end (*.LLST13)
+.LVUS14:
+ .uleb128 .LVU27 # View list begin (*.LVUS14)
+ .uleb128 .LVU28 # View list end (*.LVUS14)
+.LLST14:
+ .quad .LVL5 # Location list begin address (*.LLST14)
+ .quad .LVL5 # Location list end address (*.LLST14)
+ .value 0xa # Location expression size
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .byte 0x9f # DW_OP_stack_value
+ .quad 0 # Location list terminator begin (*.LLST14)
+ .quad 0 # Location list terminator end (*.LLST14)
+.LVUS15:
+ .uleb128 .LVU28 # View list begin (*.LVUS15)
+ .uleb128 .LVU30 # View list end (*.LVUS15)
+.LLST15:
+ .quad .LVL5 # Location list begin address (*.LLST15)
+ .quad .LVL5 # Location list end address (*.LLST15)
+ .value 0xa # Location expression size
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .byte 0x9f # DW_OP_stack_value
+ .quad 0 # Location list terminator begin (*.LLST15)
+ .quad 0 # Location list terminator end (*.LLST15)
+.LVUS16:
+ .uleb128 .LVU30 # View list begin (*.LVUS16)
+ .uleb128 .LVU32 # View list end (*.LVUS16)
+.LLST16:
+ .quad .LVL5 # Location list begin address (*.LLST16)
+ .quad .LVL5 # Location list end address (*.LLST16)
+ .value 0xa # Location expression size
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .byte 0x9f # DW_OP_stack_value
+ .quad 0 # Location list terminator begin (*.LLST16)
+ .quad 0 # Location list terminator end (*.LLST16)
+ .section .debug_aranges,"",@progbits
+ .long 0x5c # Length of Address Ranges Info
+ .value 0x2 # DWARF aranges version
+ .long .Ldebug_info0 # Offset of Compilation Unit Info
+ .byte 0x8 # Size of Address
+ .byte 0 # Size of Segment Descriptor
+ .value 0 # Pad to 16 byte boundary
+ .value 0
+ .quad .Ltext0 # Address
+ .quad .Letext0-.Ltext0 # Length
+ .quad .Ltext_cold0 # Address
+ .quad .Letext_cold0-.Ltext_cold0 # Length
+ .quad .LFB1565 # Address
+ .quad .LFE1565-.LFB1565 # Length
+ .quad .LFB1555 # Address
+ .quad .LFE1555-.LFB1555 # Length
+ .quad 0
+ .quad 0
+ .section .debug_ranges,"",@progbits
+.Ldebug_ranges0:
+ .quad .LFB1545 # Offset 0
+ .quad .LHOTE0
+ .quad .LFSB1545 # Offset 0x10
+ .quad .LCOLDE0
+ .quad 0
+ .quad 0
+ .quad .LBB149 # Offset 0x30
+ .quad .LBE149
+ .quad .LBB166
+ .quad .LBE166
+ .quad 0
+ .quad 0
+ .quad .LBB151 # Offset 0x60
+ .quad .LBE151
+ .quad .LBB164
+ .quad .LBE164
+ .quad 0
+ .quad 0
+ .quad .Ltext0 # Offset 0x90
+ .quad .Letext0
+ .quad .Ltext_cold0 # Offset 0xa0
+ .quad .Letext_cold0
+ .quad .LFB1565 # Offset 0xb0
+ .quad .LFE1565
+ .quad .LFB1555 # Offset 0xc0
+ .quad .LFE1555
+ .quad 0
+ .quad 0
+ .section .debug_macro,"",@progbits
+.Ldebug_macro0:
+ .value 0x4 # DWARF macro version number
+ .byte 0x2 # Flags: 32-bit, lineptr present
+ .long .Ldebug_line0
+ .byte 0x7 # Import
+ .long .Ldebug_macro2
+ .byte 0x3 # Start new file
+ .uleb128 0 # Included from line number 0
+ .uleb128 0x1 # file dwarf.cc
+ .file 25 "/usr/include/stdc-predef.h"
+ .byte 0x3 # Start new file
+ .uleb128 0 # Included from line number 0
+ .uleb128 0x19 # file /usr/include/stdc-predef.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro3
+ .byte 0x4 # End file
+ .file 26 "/usr/include/c++/15/memory"
+ .byte 0x3 # Start new file
+ .uleb128 0x1 # Included from line number 1
+ .uleb128 0x1a # file /usr/include/c++/15/memory
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d # At line number 45
+ .long .LASF469 # The macro: "_GLIBCXX_MEMORY 1"
+ .file 27 "/usr/include/c++/15/bits/memoryfwd.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x41 # Included from line number 65
+ .uleb128 0x1b # file /usr/include/c++/15/bits/memoryfwd.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c # At line number 44
+ .long .LASF470 # The macro: "_MEMORYFWD_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x32 # Included from line number 50
+ .uleb128 0x7 # file /usr/include/c++/15/x86_64-redhat-linux/bits/c++config.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF471 # The macro: "_CPP_CPPCONFIG_WRAPPER 1"
+ .file 28 "/usr/include/bits/wordsize.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3 # Included from line number 3
+ .uleb128 0x1c # file /usr/include/bits/wordsize.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro4
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro5
+ .file 29 "/usr/include/c++/15/x86_64-redhat-linux/bits/os_defines.h"
+ .byte 0x3 # Start new file
+ .uleb128 0xa51 # Included from line number 2641
+ .uleb128 0x1d # file /usr/include/c++/15/x86_64-redhat-linux/bits/os_defines.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro6
+ .file 30 "/usr/include/features.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x27 # Included from line number 39
+ .uleb128 0x1e # file /usr/include/features.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro7
+ .file 31 "/usr/include/features-time64.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x19f # Included from line number 415
+ .uleb128 0x1f # file /usr/include/features-time64.h
+ .byte 0x3 # Start new file
+ .uleb128 0x14 # Included from line number 20
+ .uleb128 0x1c # file /usr/include/bits/wordsize.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro4
+ .byte 0x4 # End file
+ .file 32 "/usr/include/bits/timesize.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x15 # Included from line number 21
+ .uleb128 0x20 # file /usr/include/bits/timesize.h
+ .byte 0x3 # Start new file
+ .uleb128 0x13 # Included from line number 19
+ .uleb128 0x1c # file /usr/include/bits/wordsize.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro4
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a # At line number 26
+ .long .LASF636 # The macro: "__TIMESIZE __WORDSIZE"
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25 # At line number 37
+ .long .LASF637 # The macro: "__USE_TIME_BITS64 1"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro8
+ .file 33 "/usr/include/sys/cdefs.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x20c # Included from line number 524
+ .uleb128 0x21 # file /usr/include/sys/cdefs.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro9
+ .byte 0x3 # Start new file
+ .uleb128 0x2da # Included from line number 730
+ .uleb128 0x1c # file /usr/include/bits/wordsize.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro4
+ .byte 0x4 # End file
+ .file 34 "/usr/include/bits/long-double.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2db # Included from line number 731
+ .uleb128 0x22 # file /usr/include/bits/long-double.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x15 # At line number 21
+ .long .LASF717 # The macro: "__LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro10
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0x21c # At line number 540
+ .long .LASF736 # The macro: "__USE_EXTERN_INLINES 1"
+ .file 35 "/usr/include/gnu/stubs.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x224 # Included from line number 548
+ .uleb128 0x23 # file /usr/include/gnu/stubs.h
+ .file 36 "/usr/include/gnu/stubs-64.h"
+ .byte 0x3 # Start new file
+ .uleb128 0xa # Included from line number 10
+ .uleb128 0x24 # file /usr/include/gnu/stubs-64.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro11
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro12
+ .byte 0x4 # End file
+ .file 37 "/usr/include/c++/15/x86_64-redhat-linux/bits/cpu_defines.h"
+ .byte 0x3 # Start new file
+ .uleb128 0xa54 # Included from line number 2644
+ .uleb128 0x25 # file /usr/include/c++/15/x86_64-redhat-linux/bits/cpu_defines.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF751 # The macro: "_GLIBCXX_CPU_DEFINES 1"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro13
+ .file 38 "/usr/include/c++/15/pstl/pstl_config.h"
+ .byte 0x3 # Start new file
+ .uleb128 0xb2f # Included from line number 2863
+ .uleb128 0x26 # file /usr/include/c++/15/pstl/pstl_config.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro14
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro15
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 39 "/usr/include/c++/15/bits/allocator.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x43 # Included from line number 67
+ .uleb128 0x27 # file /usr/include/c++/15/bits/allocator.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c # At line number 44
+ .long .LASF1066 # The macro: "_ALLOCATOR_H 1"
+ .file 40 "/usr/include/c++/15/x86_64-redhat-linux/bits/c++allocator.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2e # Included from line number 46
+ .uleb128 0x28 # file /usr/include/c++/15/x86_64-redhat-linux/bits/c++allocator.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1067 # The macro: "_GLIBCXX_CXX_ALLOCATOR_H 1"
+ .file 41 "/usr/include/c++/15/bits/new_allocator.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x21 # Included from line number 33
+ .uleb128 0x29 # file /usr/include/c++/15/bits/new_allocator.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1068 # The macro: "_STD_NEW_ALLOCATOR_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x22 # Included from line number 34
+ .uleb128 0x17 # file /usr/include/c++/15/new
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24 # At line number 36
+ .long .LASF1069 # The macro: "_NEW "
+ .file 42 "/usr/include/c++/15/bits/exception.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2b # Included from line number 43
+ .uleb128 0x2a # file /usr/include/c++/15/bits/exception.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20 # At line number 32
+ .long .LASF1070 # The macro: "__EXCEPTION_H 1"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro16
+ .file 43 "/usr/include/c++/15/bits/version.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x31 # Included from line number 49
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro17
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro18
+ .byte 0x4 # End file
+ .file 44 "/usr/include/c++/15/bits/functexcept.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x23 # Included from line number 35
+ .uleb128 0x2c # file /usr/include/c++/15/bits/functexcept.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25 # At line number 37
+ .long .LASF1354 # The macro: "_FUNCTEXCEPT_H 1"
+ .file 45 "/usr/include/c++/15/bits/exception_defines.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x28 # Included from line number 40
+ .uleb128 0x2d # file /usr/include/c++/15/bits/exception_defines.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro19
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 46 "/usr/include/c++/15/bits/move.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x24 # Included from line number 36
+ .uleb128 0x2e # file /usr/include/c++/15/bits/move.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1359 # The macro: "_MOVE_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x25 # Included from line number 37
+ .uleb128 0x4 # file /usr/include/c++/15/type_traits
+ .byte 0x7 # Import
+ .long .Ldebug_macro20
+ .byte 0x3 # Start new file
+ .uleb128 0x42 # Included from line number 66
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro21
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb65 # At line number 2917
+ .long .LASF1398 # The macro: "_GLIBCXX_HAS_NESTED_TYPE(_NTYPE) template<typename _Tp, typename = __void_t<>> struct __has_ ##_NTYPE : false_type { }; template<typename _Tp> struct __has_ ##_NTYPE<_Tp, __void_t<typename _Tp::_NTYPE>> : true_type { };"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro22
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro23
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x129 # At line number 297
+ .long .LASF1408 # The macro: "__allocator_base"
+ .byte 0x4 # End file
+ .file 47 "/usr/include/c++/15/bits/stl_tempbuf.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x44 # Included from line number 68
+ .uleb128 0x2f # file /usr/include/c++/15/bits/stl_tempbuf.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1409 # The macro: "_STL_TEMPBUF_H 1"
+ .file 48 "/usr/include/c++/15/bits/stl_construct.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3d # Included from line number 61
+ .uleb128 0x30 # file /usr/include/c++/15/bits/stl_construct.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1410 # The macro: "_STL_CONSTRUCT_H 1"
+ .file 49 "/usr/include/c++/15/bits/stl_iterator_base_types.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3d # Included from line number 61
+ .uleb128 0x31 # file /usr/include/c++/15/bits/stl_iterator_base_types.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro24
+ .byte 0x4 # End file
+ .file 50 "/usr/include/c++/15/bits/stl_iterator_base_funcs.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3e # Included from line number 62
+ .uleb128 0x32 # file /usr/include/c++/15/bits/stl_iterator_base_funcs.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3c # At line number 60
+ .long .LASF1414 # The macro: "_STL_ITERATOR_BASE_FUNCS_H 1"
+ .file 51 "/usr/include/c++/15/bits/concept_check.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x42 # Included from line number 66
+ .uleb128 0x33 # file /usr/include/c++/15/bits/concept_check.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro25
+ .byte 0x4 # End file
+ .file 52 "/usr/include/c++/15/debug/assertions.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x43 # Included from line number 67
+ .uleb128 0x34 # file /usr/include/c++/15/debug/assertions.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro26
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 53 "/usr/include/c++/15/bits/stl_pair.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3e # Included from line number 62
+ .uleb128 0x35 # file /usr/include/c++/15/bits/stl_pair.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1428 # The macro: "_STL_PAIR_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x3e # Included from line number 62
+ .uleb128 0xb # file /usr/include/c++/15/bits/utility.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22 # At line number 34
+ .long .LASF1429 # The macro: "_GLIBCXX_UTILITY_H 1"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro27
+ .byte 0x4 # End file
+ .file 54 "/usr/include/c++/15/ext/numeric_traits.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3f # Included from line number 63
+ .uleb128 0x36 # file /usr/include/c++/15/ext/numeric_traits.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1434 # The macro: "_EXT_NUMERIC_TRAITS 1"
+ .file 55 "/usr/include/c++/15/bits/cpp_type_traits.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x24 # Included from line number 36
+ .uleb128 0x37 # file /usr/include/c++/15/bits/cpp_type_traits.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x21 # At line number 33
+ .long .LASF1435 # The macro: "_CPP_TYPE_TRAITS_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x28 # Included from line number 40
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro28
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro29
+ .byte 0x4 # End file
+ .file 56 "/usr/include/c++/15/ext/type_traits.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x25 # Included from line number 37
+ .uleb128 0x38 # file /usr/include/c++/15/ext/type_traits.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1438 # The macro: "_EXT_TYPE_TRAITS 1"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro30
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro31
+ .byte 0x4 # End file
+ .file 57 "/usr/include/c++/15/bits/stl_uninitialized.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x47 # Included from line number 71
+ .uleb128 0x39 # file /usr/include/c++/15/bits/stl_uninitialized.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1450 # The macro: "_STL_UNINITIALIZED_H 1"
+ .file 58 "/usr/include/c++/15/bits/ptr_traits.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3d # Included from line number 61
+ .uleb128 0x3a # file /usr/include/c++/15/bits/ptr_traits.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1451 # The macro: "_PTR_TRAITS_H 1"
+ .byte 0x4 # End file
+ .file 59 "/usr/include/c++/15/bits/stl_algobase.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3f # Included from line number 63
+ .uleb128 0x3b # file /usr/include/c++/15/bits/stl_algobase.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1452 # The macro: "_STL_ALGOBASE_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x43 # Included from line number 67
+ .uleb128 0xd # file /usr/include/c++/15/bits/stl_iterator.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro32
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x45 # Included from line number 69
+ .uleb128 0x5 # file /usr/include/c++/15/debug/debug.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro33
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x47 # Included from line number 71
+ .uleb128 0xc # file /usr/include/c++/15/bits/predefined_ops.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1478 # The macro: "_GLIBCXX_PREDEFINED_OPS_H 1"
+ .byte 0x4 # End file
+ .file 60 "/usr/include/c++/15/bit"
+ .byte 0x3 # Start new file
+ .uleb128 0x4c # Included from line number 76
+ .uleb128 0x3c # file /usr/include/c++/15/bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1479 # The macro: "_GLIBCXX_BIT 1"
+ .file 61 "/usr/include/c++/15/concepts"
+ .byte 0x3 # Start new file
+ .uleb128 0x26 # Included from line number 38
+ .uleb128 0x3d # file /usr/include/c++/15/concepts
+ .byte 0x7 # Import
+ .long .Ldebug_macro34
+ .byte 0x3 # Start new file
+ .uleb128 0x26 # Included from line number 38
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro28
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro35
+ .byte 0x3 # Start new file
+ .uleb128 0x3f # Included from line number 63
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro28
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro36
+ .byte 0x4 # End file
+ .file 62 "/usr/include/c++/15/ext/alloc_traits.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x45 # Included from line number 69
+ .uleb128 0x3e # file /usr/include/c++/15/ext/alloc_traits.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1493 # The macro: "_EXT_ALLOC_TRAITS_H 1"
+ .file 63 "/usr/include/c++/15/bits/alloc_traits.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x24 # Included from line number 36
+ .uleb128 0x3f # file /usr/include/c++/15/bits/alloc_traits.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1494 # The macro: "_ALLOC_TRAITS_H 1"
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 64 "/usr/include/c++/15/bits/stl_raw_storage_iter.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x48 # Included from line number 72
+ .uleb128 0x40 # file /usr/include/c++/15/bits/stl_raw_storage_iter.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1495 # The macro: "_STL_RAW_STORAGE_ITERATOR_H 1"
+ .byte 0x4 # End file
+ .file 65 "/usr/include/c++/15/bits/align.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x4c # Included from line number 76
+ .uleb128 0x41 # file /usr/include/c++/15/bits/align.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1496 # The macro: "_GLIBCXX_ALIGN_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x23 # Included from line number 35
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro28
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x4d # Included from line number 77
+ .uleb128 0x6 # file /usr/include/c++/15/bits/uses_allocator.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1497 # The macro: "_USES_ALLOCATOR_H 1"
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x50 # Included from line number 80
+ .uleb128 0x2 # file /usr/include/c++/15/bits/unique_ptr.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20 # At line number 32
+ .long .LASF1498 # The macro: "_UNIQUE_PTR_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x25 # Included from line number 37
+ .uleb128 0x3 # file /usr/include/c++/15/tuple
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1499 # The macro: "_GLIBCXX_TUPLE 1"
+ .file 66 "/usr/include/c++/15/bits/invoke.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2b # Included from line number 43
+ .uleb128 0x42 # file /usr/include/c++/15/bits/invoke.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1500 # The macro: "_GLIBCXX_INVOKE_H 1"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro37
+ .byte 0x3 # Start new file
+ .uleb128 0x39 # Included from line number 57
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro38
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro39
+ .byte 0x4 # End file
+ .file 67 "/usr/include/c++/15/bits/stl_function.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x26 # Included from line number 38
+ .uleb128 0x43 # file /usr/include/c++/15/bits/stl_function.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1514 # The macro: "_STL_FUNCTION_H 1"
+ .file 68 "/usr/include/c++/15/backward/binders.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x5a1 # Included from line number 1441
+ .uleb128 0x44 # file /usr/include/c++/15/backward/binders.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1515 # The macro: "_BACKWARD_BINDERS_H 1"
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 69 "/usr/include/c++/15/bits/functional_hash.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x27 # Included from line number 39
+ .uleb128 0x45 # file /usr/include/c++/15/bits/functional_hash.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1516 # The macro: "_FUNCTIONAL_HASH_H 1"
+ .file 70 "/usr/include/c++/15/bits/hash_bytes.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x26 # Included from line number 38
+ .uleb128 0x46 # file /usr/include/c++/15/bits/hash_bytes.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1517 # The macro: "_HASH_BYTES_H 1"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro40
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 71 "/usr/include/c++/15/bits/shared_ptr.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x52 # Included from line number 82
+ .uleb128 0x47 # file /usr/include/c++/15/bits/shared_ptr.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x32 # At line number 50
+ .long .LASF1520 # The macro: "_SHARED_PTR_H 1"
+ .file 72 "/usr/include/c++/15/iosfwd"
+ .byte 0x3 # Start new file
+ .uleb128 0x34 # Included from line number 52
+ .uleb128 0x48 # file /usr/include/c++/15/iosfwd
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22 # At line number 34
+ .long .LASF1521 # The macro: "_GLIBCXX_IOSFWD 1"
+ .file 73 "/usr/include/c++/15/bits/requires_hosted.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x28 # Included from line number 40
+ .uleb128 0x49 # file /usr/include/c++/15/bits/requires_hosted.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1d # At line number 29
+ .long .LASF1522 # The macro: "_REQUIRES_FREESTANDING_H 1"
+ .byte 0x4 # End file
+ .file 74 "/usr/include/c++/15/bits/stringfwd.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2b # Included from line number 43
+ .uleb128 0x4a # file /usr/include/c++/15/bits/stringfwd.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23 # At line number 35
+ .long .LASF1523 # The macro: "_STRINGFWD_H 1"
+ .byte 0x4 # End file
+ .file 75 "/usr/include/c++/15/bits/postypes.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2c # Included from line number 44
+ .uleb128 0x4b # file /usr/include/c++/15/bits/postypes.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24 # At line number 36
+ .long .LASF1524 # The macro: "_GLIBCXX_POSTYPES_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x2a # Included from line number 42
+ .uleb128 0x8 # file /usr/include/c++/15/cwchar
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF1525 # The macro: "_GLIBCXX_CWCHAR 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x31 # Included from line number 49
+ .uleb128 0x14 # file /usr/include/wchar.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro41
+ .file 76 "/usr/include/bits/libc-header-start.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x1b # Included from line number 27
+ .uleb128 0x4c # file /usr/include/bits/libc-header-start.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro42
+ .byte 0x4 # End file
+ .file 77 "/usr/include/bits/floatn.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x1e # Included from line number 30
+ .uleb128 0x4d # file /usr/include/bits/floatn.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro43
+ .file 78 "/usr/include/bits/floatn-common.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x83 # Included from line number 131
+ .uleb128 0x4e # file /usr/include/bits/floatn-common.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x15 # At line number 21
+ .long .LASF1550 # The macro: "_BITS_FLOATN_COMMON_H "
+ .byte 0x3 # Start new file
+ .uleb128 0x18 # Included from line number 24
+ .uleb128 0x22 # file /usr/include/bits/long-double.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x15 # At line number 21
+ .long .LASF717 # The macro: "__LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro44
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro45
+ .byte 0x3 # Start new file
+ .uleb128 0x23 # Included from line number 35
+ .uleb128 0xe # file /usr/lib/gcc/x86_64-redhat-linux/15/include/stddef.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro46
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25 # At line number 37
+ .long .LASF1615 # The macro: "__need___va_list "
+ .file 79 "/usr/lib/gcc/x86_64-redhat-linux/15/include/stdarg.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x26 # Included from line number 38
+ .uleb128 0x4f # file /usr/lib/gcc/x86_64-redhat-linux/15/include/stdarg.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro47
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c # At line number 44
+ .long .LASF1618 # The macro: "_VA_LIST_DEFINED "
+ .file 80 "/usr/include/bits/wchar.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x33 # Included from line number 51
+ .uleb128 0x50 # file /usr/include/bits/wchar.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro48
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x34 # Included from line number 52
+ .uleb128 0x10 # file /usr/include/bits/types/wint_t.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro49
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x35 # Included from line number 53
+ .uleb128 0x12 # file /usr/include/bits/types/mbstate_t.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1624 # The macro: "__mbstate_t_defined 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x4 # Included from line number 4
+ .uleb128 0x11 # file /usr/include/bits/types/__mbstate_t.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1625 # The macro: "____mbstate_t_defined 1"
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x36 # Included from line number 54
+ .uleb128 0x13 # file /usr/include/bits/types/__FILE.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1626 # The macro: "____FILE_defined 1"
+ .byte 0x4 # End file
+ .file 81 "/usr/include/bits/types/FILE.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x39 # Included from line number 57
+ .uleb128 0x51 # file /usr/include/bits/types/FILE.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1627 # The macro: "__FILE_defined 1"
+ .byte 0x4 # End file
+ .file 82 "/usr/include/bits/types/locale_t.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3c # Included from line number 60
+ .uleb128 0x52 # file /usr/include/bits/types/locale_t.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1628 # The macro: "_BITS_TYPES_LOCALE_T_H 1"
+ .file 83 "/usr/include/bits/types/__locale_t.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x16 # Included from line number 22
+ .uleb128 0x53 # file /usr/include/bits/types/__locale_t.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1629 # The macro: "_BITS_TYPES___LOCALE_T_H 1"
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro50
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro51
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x35 # Included from line number 53
+ .uleb128 0xa # file /usr/include/c++/15/bits/shared_ptr_base.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x32 # At line number 50
+ .long .LASF1694 # The macro: "_SHARED_PTR_BASE_H 1"
+ .file 84 "/usr/include/c++/15/typeinfo"
+ .byte 0x3 # Start new file
+ .uleb128 0x34 # Included from line number 52
+ .uleb128 0x54 # file /usr/include/c++/15/typeinfo
+ .byte 0x7 # Import
+ .long .Ldebug_macro52
+ .byte 0x3 # Start new file
+ .uleb128 0x2a # Included from line number 42
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro53
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro54
+ .byte 0x4 # End file
+ .file 85 "/usr/include/c++/15/bits/allocated_ptr.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x35 # Included from line number 53
+ .uleb128 0x55 # file /usr/include/c++/15/bits/allocated_ptr.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1699 # The macro: "_ALLOCATED_PTR_H 1"
+ .byte 0x4 # End file
+ .file 86 "/usr/include/c++/15/bits/refwrap.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x39 # Included from line number 57
+ .uleb128 0x56 # file /usr/include/c++/15/bits/refwrap.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro55
+ .byte 0x4 # End file
+ .file 87 "/usr/include/c++/15/ext/aligned_buffer.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3c # Included from line number 60
+ .uleb128 0x57 # file /usr/include/c++/15/ext/aligned_buffer.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1705 # The macro: "_ALIGNED_BUFFER_H 1"
+ .byte 0x4 # End file
+ .file 88 "/usr/include/c++/15/ext/atomicity.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3d # Included from line number 61
+ .uleb128 0x58 # file /usr/include/c++/15/ext/atomicity.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1706 # The macro: "_GLIBCXX_ATOMICITY_H 1"
+ .file 89 "/usr/include/c++/15/x86_64-redhat-linux/bits/gthr.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x25 # Included from line number 37
+ .uleb128 0x59 # file /usr/include/c++/15/x86_64-redhat-linux/bits/gthr.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1b # At line number 27
+ .long .LASF1707 # The macro: "_GLIBCXX_GCC_GTHR_H "
+ .file 90 "/usr/include/c++/15/x86_64-redhat-linux/bits/gthr-default.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x9d # Included from line number 157
+ .uleb128 0x5a # file /usr/include/c++/15/x86_64-redhat-linux/bits/gthr-default.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro56
+ .file 91 "/usr/include/pthread.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x23 # Included from line number 35
+ .uleb128 0x5b # file /usr/include/pthread.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13 # At line number 19
+ .long .LASF1711 # The macro: "_PTHREAD_H 1"
+ .file 92 "/usr/include/sched.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x16 # Included from line number 22
+ .uleb128 0x5c # file /usr/include/sched.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1712 # The macro: "_SCHED_H 1"
+ .file 93 "/usr/include/bits/types.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x19 # Included from line number 25
+ .uleb128 0x5d # file /usr/include/bits/types.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18 # At line number 24
+ .long .LASF1713 # The macro: "_BITS_TYPES_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x1b # Included from line number 27
+ .uleb128 0x1c # file /usr/include/bits/wordsize.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro4
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x1c # Included from line number 28
+ .uleb128 0x20 # file /usr/include/bits/timesize.h
+ .byte 0x3 # Start new file
+ .uleb128 0x13 # Included from line number 19
+ .uleb128 0x1c # file /usr/include/bits/wordsize.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro4
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a # At line number 26
+ .long .LASF636 # The macro: "__TIMESIZE __WORDSIZE"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro57
+ .file 94 "/usr/include/bits/typesizes.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x8d # Included from line number 141
+ .uleb128 0x5e # file /usr/include/bits/typesizes.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro58
+ .byte 0x4 # End file
+ .file 95 "/usr/include/bits/time64.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x8e # Included from line number 142
+ .uleb128 0x5f # file /usr/include/bits/time64.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro59
+ .byte 0x4 # End file
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe2 # At line number 226
+ .long .LASF1773 # The macro: "__STD_TYPE"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro60
+ .byte 0x3 # Start new file
+ .uleb128 0x1d # Included from line number 29
+ .uleb128 0xe # file /usr/lib/gcc/x86_64-redhat-linux/15/include/stddef.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro61
+ .byte 0x4 # End file
+ .file 96 "/usr/include/bits/types/time_t.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x1f # Included from line number 31
+ .uleb128 0x60 # file /usr/include/bits/types/time_t.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1774 # The macro: "__time_t_defined 1"
+ .byte 0x4 # End file
+ .file 97 "/usr/include/bits/types/struct_timespec.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x20 # Included from line number 32
+ .uleb128 0x61 # file /usr/include/bits/types/struct_timespec.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3 # At line number 3
+ .long .LASF1775 # The macro: "_STRUCT_TIMESPEC 1"
+ .file 98 "/usr/include/bits/endian.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x6 # Included from line number 6
+ .uleb128 0x62 # file /usr/include/bits/endian.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro62
+ .file 99 "/usr/include/bits/endianness.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x23 # Included from line number 35
+ .uleb128 0x63 # file /usr/include/bits/endianness.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro63
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro64
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27 # At line number 39
+ .long .LASF1784 # The macro: "__pid_t_defined "
+ .file 100 "/usr/include/bits/sched.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2b # Included from line number 43
+ .uleb128 0x64 # file /usr/include/bits/sched.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro65
+ .file 101 "/usr/include/linux/sched/types.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3f # Included from line number 63
+ .uleb128 0x65 # file /usr/include/linux/sched/types.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3 # At line number 3
+ .long .LASF1806 # The macro: "_LINUX_SCHED_TYPES_H "
+ .file 102 "/usr/include/linux/types.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x5 # Included from line number 5
+ .uleb128 0x66 # file /usr/include/linux/types.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3 # At line number 3
+ .long .LASF1807 # The macro: "_LINUX_TYPES_H "
+ .file 103 "/usr/include/asm/types.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x5 # Included from line number 5
+ .uleb128 0x67 # file /usr/include/asm/types.h
+ .file 104 "/usr/include/asm-generic/types.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x1 # Included from line number 1
+ .uleb128 0x68 # file /usr/include/asm-generic/types.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3 # At line number 3
+ .long .LASF1808 # The macro: "_ASM_GENERIC_TYPES_H "
+ .file 105 "/usr/include/asm-generic/int-ll64.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x7 # Included from line number 7
+ .uleb128 0x69 # file /usr/include/asm-generic/int-ll64.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa # At line number 10
+ .long .LASF1809 # The macro: "_ASM_GENERIC_INT_LL64_H "
+ .file 106 "/usr/include/asm/bitsperlong.h"
+ .byte 0x3 # Start new file
+ .uleb128 0xc # Included from line number 12
+ .uleb128 0x6a # file /usr/include/asm/bitsperlong.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro66
+ .file 107 "/usr/include/asm-generic/bitsperlong.h"
+ .byte 0x3 # Start new file
+ .uleb128 0xb # Included from line number 11
+ .uleb128 0x6b # file /usr/include/asm-generic/bitsperlong.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro67
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 108 "/usr/include/linux/posix_types.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x9 # Included from line number 9
+ .uleb128 0x6c # file /usr/include/linux/posix_types.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3 # At line number 3
+ .long .LASF1814 # The macro: "_LINUX_POSIX_TYPES_H "
+ .file 109 "/usr/include/linux/stddef.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x5 # Included from line number 5
+ .uleb128 0x6d # file /usr/include/linux/stddef.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro68
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro69
+ .file 110 "/usr/include/asm/posix_types.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x24 # Included from line number 36
+ .uleb128 0x6e # file /usr/include/asm/posix_types.h
+ .file 111 "/usr/include/asm/posix_types_64.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x7 # Included from line number 7
+ .uleb128 0x6f # file /usr/include/asm/posix_types_64.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro70
+ .file 112 "/usr/include/asm-generic/posix_types.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x12 # Included from line number 18
+ .uleb128 0x70 # file /usr/include/asm-generic/posix_types.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3 # At line number 3
+ .long .LASF1826 # The macro: "__ASM_GENERIC_POSIX_TYPES_H "
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro71
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro72
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro73
+ .file 113 "/usr/include/bits/types/struct_sched_param.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x7e # Included from line number 126
+ .uleb128 0x71 # file /usr/include/bits/types/struct_sched_param.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1862 # The macro: "_BITS_TYPES_STRUCT_SCHED_PARAM 1"
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 114 "/usr/include/bits/cpu-set.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2c # Included from line number 44
+ .uleb128 0x72 # file /usr/include/bits/cpu-set.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro74
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro75
+ .byte 0x4 # End file
+ .file 115 "/usr/include/time.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x17 # Included from line number 23
+ .uleb128 0x73 # file /usr/include/time.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro76
+ .byte 0x3 # Start new file
+ .uleb128 0x1d # Included from line number 29
+ .uleb128 0xe # file /usr/lib/gcc/x86_64-redhat-linux/15/include/stddef.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro61
+ .byte 0x4 # End file
+ .file 116 "/usr/include/bits/time.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x21 # Included from line number 33
+ .uleb128 0x74 # file /usr/include/bits/time.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro77
+ .file 117 "/usr/include/bits/timex.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x49 # Included from line number 73
+ .uleb128 0x75 # file /usr/include/bits/timex.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13 # At line number 19
+ .long .LASF1917 # The macro: "_BITS_TIMEX_H 1"
+ .file 118 "/usr/include/bits/types/struct_timeval.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x16 # Included from line number 22
+ .uleb128 0x76 # file /usr/include/bits/types/struct_timeval.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1918 # The macro: "__timeval_defined 1"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro78
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 119 "/usr/include/bits/types/clock_t.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x25 # Included from line number 37
+ .uleb128 0x77 # file /usr/include/bits/types/clock_t.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1960 # The macro: "__clock_t_defined 1"
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x27 # Included from line number 39
+ .uleb128 0x15 # file /usr/include/bits/types/struct_tm.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1961 # The macro: "__struct_tm_defined 1"
+ .byte 0x4 # End file
+ .file 120 "/usr/include/bits/types/clockid_t.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2e # Included from line number 46
+ .uleb128 0x78 # file /usr/include/bits/types/clockid_t.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1962 # The macro: "__clockid_t_defined 1"
+ .byte 0x4 # End file
+ .file 121 "/usr/include/bits/types/timer_t.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2f # Included from line number 47
+ .uleb128 0x79 # file /usr/include/bits/types/timer_t.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1963 # The macro: "__timer_t_defined 1"
+ .byte 0x4 # End file
+ .file 122 "/usr/include/bits/types/struct_itimerspec.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x30 # Included from line number 48
+ .uleb128 0x7a # file /usr/include/bits/types/struct_itimerspec.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1964 # The macro: "__itimerspec_defined 1"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro79
+ .byte 0x4 # End file
+ .file 123 "/usr/include/bits/pthreadtypes.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x1a # Included from line number 26
+ .uleb128 0x7b # file /usr/include/bits/pthreadtypes.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1967 # The macro: "_BITS_PTHREADTYPES_COMMON_H 1"
+ .file 124 "/usr/include/bits/thread-shared-types.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x17 # Included from line number 23
+ .uleb128 0x7c # file /usr/include/bits/thread-shared-types.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1968 # The macro: "_THREAD_SHARED_TYPES_H 1"
+ .file 125 "/usr/include/bits/pthreadtypes-arch.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2c # Included from line number 44
+ .uleb128 0x7d # file /usr/include/bits/pthreadtypes-arch.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13 # At line number 19
+ .long .LASF1969 # The macro: "_BITS_PTHREADTYPES_ARCH_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x15 # Included from line number 21
+ .uleb128 0x1c # file /usr/include/bits/wordsize.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro4
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro80
+ .byte 0x4 # End file
+ .file 126 "/usr/include/bits/atomic_wide_counter.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2e # Included from line number 46
+ .uleb128 0x7e # file /usr/include/bits/atomic_wide_counter.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1981 # The macro: "_BITS_ATOMIC_WIDE_COUNTER_H "
+ .byte 0x4 # End file
+ .file 127 "/usr/include/bits/struct_mutex.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x4c # Included from line number 76
+ .uleb128 0x7f # file /usr/include/bits/struct_mutex.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro81
+ .byte 0x4 # End file
+ .file 128 "/usr/include/bits/struct_rwlock.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x59 # Included from line number 89
+ .uleb128 0x80 # file /usr/include/bits/struct_rwlock.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro82
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0x72 # At line number 114
+ .long .LASF1988 # The macro: "__ONCE_FLAG_INIT { 0 }"
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3f # At line number 63
+ .long .LASF1989 # The macro: "__have_pthread_attr_t 1"
+ .byte 0x4 # End file
+ .file 129 "/usr/include/bits/setjmp.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x1b # Included from line number 27
+ .uleb128 0x81 # file /usr/include/bits/setjmp.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1990 # The macro: "_BITS_SETJMP_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x1a # Included from line number 26
+ .uleb128 0x1c # file /usr/include/bits/wordsize.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro4
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x1c # Included from line number 28
+ .uleb128 0x1c # file /usr/include/bits/wordsize.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro4
+ .byte 0x4 # End file
+ .file 130 "/usr/include/bits/types/__sigset_t.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x1e # Included from line number 30
+ .uleb128 0x82 # file /usr/include/bits/types/__sigset_t.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro83
+ .byte 0x4 # End file
+ .file 131 "/usr/include/bits/types/struct___jmp_buf_tag.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x1f # Included from line number 31
+ .uleb128 0x83 # file /usr/include/bits/types/struct___jmp_buf_tag.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1993 # The macro: "__jmp_buf_tag_defined 1"
+ .byte 0x4 # End file
+ .file 132 "/usr/include/bits/pthread_stack_min-dynamic.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x21 # Included from line number 33
+ .uleb128 0x84 # file /usr/include/bits/pthread_stack_min-dynamic.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro84
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro85
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro86
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 133 "/usr/include/c++/15/x86_64-redhat-linux/bits/atomic_word.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x26 # Included from line number 38
+ .uleb128 0x85 # file /usr/include/c++/15/x86_64-redhat-linux/bits/atomic_word.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro87
+ .byte 0x4 # End file
+ .file 134 "/usr/include/sys/single_threaded.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x28 # Included from line number 40
+ .uleb128 0x86 # file /usr/include/sys/single_threaded.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF2041 # The macro: "_SYS_SINGLE_THREADED_H "
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x3e # Included from line number 62
+ .uleb128 0x18 # file /usr/include/c++/15/ext/concurrence.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF2042 # The macro: "_CONCURRENCE_H 1"
+ .file 135 "/usr/include/c++/15/exception"
+ .byte 0x3 # Start new file
+ .uleb128 0x24 # Included from line number 36
+ .uleb128 0x87 # file /usr/include/c++/15/exception
+ .byte 0x7 # Import
+ .long .Ldebug_macro88
+ .byte 0x3 # Start new file
+ .uleb128 0x29 # Included from line number 41
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro89
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0xa8 # Included from line number 168
+ .uleb128 0x9 # file /usr/include/c++/15/bits/exception_ptr.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20 # At line number 32
+ .long .LASF2046 # The macro: "_EXCEPTION_PTR_H "
+ .file 136 "/usr/include/c++/15/bits/cxxabi_init_exception.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x24 # Included from line number 36
+ .uleb128 0x88 # file /usr/include/c++/15/bits/cxxabi_init_exception.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20 # At line number 32
+ .long .LASF2047 # The macro: "_CXXABI_INIT_EXCEPTION_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x28 # Included from line number 40
+ .uleb128 0xe # file /usr/lib/gcc/x86_64-redhat-linux/15/include/stddef.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro90
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro91
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro92
+ .byte 0x4 # End file
+ .file 137 "/usr/include/c++/15/bits/nested_exception.h"
+ .byte 0x3 # Start new file
+ .uleb128 0xa9 # Included from line number 169
+ .uleb128 0x89 # file /usr/include/c++/15/bits/nested_exception.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF2070 # The macro: "_GLIBCXX_NESTED_EXCEPTION_H 1"
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 138 "/usr/include/c++/15/bits/shared_ptr_atomic.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x53 # Included from line number 83
+ .uleb128 0x8a # file /usr/include/c++/15/bits/shared_ptr_atomic.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF2071 # The macro: "_SHARED_PTR_ATOMIC_H 1"
+ .file 139 "/usr/include/c++/15/bits/atomic_base.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x21 # Included from line number 33
+ .uleb128 0x8b # file /usr/include/c++/15/bits/atomic_base.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF2072 # The macro: "_GLIBCXX_ATOMIC_BASE_H 1"
+ .file 140 "/usr/include/c++/15/bits/atomic_lockfree_defines.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x27 # Included from line number 39
+ .uleb128 0x8c # file /usr/include/c++/15/bits/atomic_lockfree_defines.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro93
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f # At line number 47
+ .long .LASF2084 # The macro: "_GLIBCXX_ALWAYS_INLINE inline __attribute__((__always_inline__))"
+ .byte 0x3 # Start new file
+ .uleb128 0x32 # Included from line number 50
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro94
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro95
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro96
+ .byte 0x4 # End file
+ .file 141 "/usr/include/c++/15/backward/auto_ptr.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x58 # Included from line number 88
+ .uleb128 0x8d # file /usr/include/c++/15/backward/auto_ptr.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF2096 # The macro: "_BACKWARD_AUTO_PTR_H 1"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro97
+ .byte 0x3 # Start new file
+ .uleb128 0x75 # Included from line number 117
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro98
+ .byte 0x4 # End file
+ .file 142 "/usr/include/c++/15/pstl/glue_memory_defs.h"
+ .byte 0x3 # Start new file
+ .uleb128 0xad # Included from line number 173
+ .uleb128 0x8e # file /usr/include/c++/15/pstl/glue_memory_defs.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb # At line number 11
+ .long .LASF2122 # The macro: "_PSTL_GLUE_MEMORY_DEFS_H "
+ .byte 0x3 # Start new file
+ .uleb128 0xd # Included from line number 13
+ .uleb128 0x16 # file /usr/include/c++/15/pstl/execution_defs.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb # At line number 11
+ .long .LASF2123 # The macro: "_PSTL_EXECUTION_POLICY_DEFS_H "
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.0.6d6edf9739a27cf28f5b627df695fc9e,comdat
+.Ldebug_macro2:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF0 # The macro: "__STDC__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF1 # The macro: "__cplusplus 201703L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF2 # The macro: "__STDC_UTF_16__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF3 # The macro: "__STDC_UTF_32__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF4 # The macro: "__STDC_HOSTED__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF5 # The macro: "__STDC_EMBED_NOT_FOUND__ 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF6 # The macro: "__STDC_EMBED_FOUND__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF7 # The macro: "__STDC_EMBED_EMPTY__ 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF8 # The macro: "__GNUC__ 15"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF9 # The macro: "__GNUC_MINOR__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF10 # The macro: "__GNUC_PATCHLEVEL__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF11 # The macro: "__VERSION__ "15.1.1 20250425 (Red Hat 15.1.1-1)""
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF12 # The macro: "__GNUC_RH_RELEASE__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF13 # The macro: "__ATOMIC_RELAXED 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF14 # The macro: "__ATOMIC_SEQ_CST 5"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF15 # The macro: "__ATOMIC_ACQUIRE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF16 # The macro: "__ATOMIC_RELEASE 3"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF17 # The macro: "__ATOMIC_ACQ_REL 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF18 # The macro: "__ATOMIC_CONSUME 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF19 # The macro: "__OPTIMIZE__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF20 # The macro: "__FINITE_MATH_ONLY__ 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF21 # The macro: "_LP64 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF22 # The macro: "__LP64__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF23 # The macro: "__SIZEOF_INT__ 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF24 # The macro: "__SIZEOF_LONG__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF25 # The macro: "__SIZEOF_LONG_LONG__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF26 # The macro: "__SIZEOF_SHORT__ 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF27 # The macro: "__SIZEOF_FLOAT__ 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF28 # The macro: "__SIZEOF_DOUBLE__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF29 # The macro: "__SIZEOF_LONG_DOUBLE__ 16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF30 # The macro: "__SIZEOF_SIZE_T__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF31 # The macro: "__CHAR_BIT__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF32 # The macro: "__BIGGEST_ALIGNMENT__ 16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF33 # The macro: "__ORDER_LITTLE_ENDIAN__ 1234"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF34 # The macro: "__ORDER_BIG_ENDIAN__ 4321"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF35 # The macro: "__ORDER_PDP_ENDIAN__ 3412"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF36 # The macro: "__BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF37 # The macro: "__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF38 # The macro: "__SIZEOF_POINTER__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF39 # The macro: "__GNUC_EXECUTION_CHARSET_NAME "UTF-8""
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF40 # The macro: "__GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE""
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF41 # The macro: "__GNUG__ 15"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF42 # The macro: "__SIZE_TYPE__ long unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF43 # The macro: "__PTRDIFF_TYPE__ long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF44 # The macro: "__WCHAR_TYPE__ int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF45 # The macro: "__WINT_TYPE__ unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF46 # The macro: "__INTMAX_TYPE__ long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF47 # The macro: "__UINTMAX_TYPE__ long unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF48 # The macro: "__CHAR16_TYPE__ short unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF49 # The macro: "__CHAR32_TYPE__ unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF50 # The macro: "__SIG_ATOMIC_TYPE__ int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF51 # The macro: "__INT8_TYPE__ signed char"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF52 # The macro: "__INT16_TYPE__ short int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF53 # The macro: "__INT32_TYPE__ int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF54 # The macro: "__INT64_TYPE__ long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF55 # The macro: "__UINT8_TYPE__ unsigned char"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF56 # The macro: "__UINT16_TYPE__ short unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF57 # The macro: "__UINT32_TYPE__ unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF58 # The macro: "__UINT64_TYPE__ long unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF59 # The macro: "__INT_LEAST8_TYPE__ signed char"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF60 # The macro: "__INT_LEAST16_TYPE__ short int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF61 # The macro: "__INT_LEAST32_TYPE__ int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF62 # The macro: "__INT_LEAST64_TYPE__ long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF63 # The macro: "__UINT_LEAST8_TYPE__ unsigned char"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF64 # The macro: "__UINT_LEAST16_TYPE__ short unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF65 # The macro: "__UINT_LEAST32_TYPE__ unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF66 # The macro: "__UINT_LEAST64_TYPE__ long unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF67 # The macro: "__INT_FAST8_TYPE__ signed char"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF68 # The macro: "__INT_FAST16_TYPE__ long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF69 # The macro: "__INT_FAST32_TYPE__ long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF70 # The macro: "__INT_FAST64_TYPE__ long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF71 # The macro: "__UINT_FAST8_TYPE__ unsigned char"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF72 # The macro: "__UINT_FAST16_TYPE__ long unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF73 # The macro: "__UINT_FAST32_TYPE__ long unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF74 # The macro: "__UINT_FAST64_TYPE__ long unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF75 # The macro: "__INTPTR_TYPE__ long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF76 # The macro: "__UINTPTR_TYPE__ long unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF77 # The macro: "__GXX_WEAK__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF78 # The macro: "__DEPRECATED 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF79 # The macro: "__GXX_RTTI 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF80 # The macro: "__cpp_rtti 199711L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF81 # The macro: "__GXX_EXPERIMENTAL_CXX0X__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF82 # The macro: "__GXX_CONSTEXPR_ASM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF83 # The macro: "__cpp_binary_literals 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF84 # The macro: "__cpp_hex_float 201603L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF85 # The macro: "__cpp_runtime_arrays 198712L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF86 # The macro: "__cpp_raw_strings 200710L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF87 # The macro: "__cpp_unicode_literals 200710L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF88 # The macro: "__cpp_user_defined_literals 200809L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF89 # The macro: "__cpp_lambdas 200907L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF90 # The macro: "__cpp_decltype 200707L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF91 # The macro: "__cpp_attributes 200809L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF92 # The macro: "__cpp_rvalue_reference 200610L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF93 # The macro: "__cpp_rvalue_references 200610L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF94 # The macro: "__cpp_variadic_templates 200704L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF95 # The macro: "__cpp_initializer_lists 200806L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF96 # The macro: "__cpp_delegating_constructors 200604L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF97 # The macro: "__cpp_nsdmi 200809L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF98 # The macro: "__cpp_inheriting_constructors 201511L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF99 # The macro: "__cpp_ref_qualifiers 200710L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF100 # The macro: "__cpp_alias_templates 200704L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF101 # The macro: "__cpp_return_type_deduction 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF102 # The macro: "__cpp_init_captures 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF103 # The macro: "__cpp_generic_lambdas 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF104 # The macro: "__cpp_decltype_auto 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF105 # The macro: "__cpp_aggregate_nsdmi 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF106 # The macro: "__cpp_variable_templates 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF107 # The macro: "__cpp_digit_separators 201309L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF108 # The macro: "__cpp_unicode_characters 201411L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF109 # The macro: "__cpp_static_assert 201411L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF110 # The macro: "__cpp_namespace_attributes 201411L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF111 # The macro: "__cpp_enumerator_attributes 201411L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF112 # The macro: "__cpp_nested_namespace_definitions 201411L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF113 # The macro: "__cpp_fold_expressions 201603L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF114 # The macro: "__cpp_nontype_template_args 201411L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF115 # The macro: "__cpp_range_based_for 201603L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF116 # The macro: "__cpp_constexpr 201603L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF117 # The macro: "__cpp_if_constexpr 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF118 # The macro: "__cpp_capture_star_this 201603L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF119 # The macro: "__cpp_inline_variables 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF120 # The macro: "__cpp_aggregate_bases 201603L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF121 # The macro: "__cpp_deduction_guides 201703L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF122 # The macro: "__cpp_noexcept_function_type 201510L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF123 # The macro: "__cpp_template_auto 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF124 # The macro: "__cpp_structured_bindings 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF125 # The macro: "__cpp_variadic_using 201611L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF126 # The macro: "__cpp_guaranteed_copy_elision 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF127 # The macro: "__cpp_nontype_template_parameter_auto 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF128 # The macro: "__cpp_sized_deallocation 201309L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF129 # The macro: "__cpp_aligned_new 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF130 # The macro: "__STDCPP_DEFAULT_NEW_ALIGNMENT__ 16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF131 # The macro: "__cpp_template_template_args 201611L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF132 # The macro: "__cpp_threadsafe_static_init 200806L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF133 # The macro: "__STDCPP_THREADS__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF134 # The macro: "__EXCEPTIONS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF135 # The macro: "__cpp_exceptions 199711L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF136 # The macro: "__GXX_ABI_VERSION 1020"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF137 # The macro: "__SCHAR_MAX__ 0x7f"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF138 # The macro: "__SHRT_MAX__ 0x7fff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF139 # The macro: "__INT_MAX__ 0x7fffffff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF140 # The macro: "__LONG_MAX__ 0x7fffffffffffffffL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF141 # The macro: "__LONG_LONG_MAX__ 0x7fffffffffffffffLL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF142 # The macro: "__WCHAR_MAX__ 0x7fffffff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF143 # The macro: "__WCHAR_MIN__ (-__WCHAR_MAX__ - 1)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF144 # The macro: "__WINT_MAX__ 0xffffffffU"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF145 # The macro: "__WINT_MIN__ 0U"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF146 # The macro: "__PTRDIFF_MAX__ 0x7fffffffffffffffL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF147 # The macro: "__SIZE_MAX__ 0xffffffffffffffffUL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF148 # The macro: "__SCHAR_WIDTH__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF149 # The macro: "__SHRT_WIDTH__ 16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF150 # The macro: "__INT_WIDTH__ 32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF151 # The macro: "__LONG_WIDTH__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF152 # The macro: "__LONG_LONG_WIDTH__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF153 # The macro: "__WCHAR_WIDTH__ 32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF154 # The macro: "__WINT_WIDTH__ 32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF155 # The macro: "__PTRDIFF_WIDTH__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF156 # The macro: "__SIZE_WIDTH__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF157 # The macro: "__GLIBCXX_TYPE_INT_N_0 __int128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF158 # The macro: "__GLIBCXX_BITSIZE_INT_N_0 128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF159 # The macro: "__INTMAX_MAX__ 0x7fffffffffffffffL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF160 # The macro: "__INTMAX_C(c) c ## L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF161 # The macro: "__UINTMAX_MAX__ 0xffffffffffffffffUL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF162 # The macro: "__UINTMAX_C(c) c ## UL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF163 # The macro: "__INTMAX_WIDTH__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF164 # The macro: "__SIG_ATOMIC_MAX__ 0x7fffffff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF165 # The macro: "__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF166 # The macro: "__SIG_ATOMIC_WIDTH__ 32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF167 # The macro: "__INT8_MAX__ 0x7f"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF168 # The macro: "__INT16_MAX__ 0x7fff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF169 # The macro: "__INT32_MAX__ 0x7fffffff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF170 # The macro: "__INT64_MAX__ 0x7fffffffffffffffL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF171 # The macro: "__UINT8_MAX__ 0xff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF172 # The macro: "__UINT16_MAX__ 0xffff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF173 # The macro: "__UINT32_MAX__ 0xffffffffU"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF174 # The macro: "__UINT64_MAX__ 0xffffffffffffffffUL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF175 # The macro: "__INT_LEAST8_MAX__ 0x7f"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF176 # The macro: "__INT8_C(c) c"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF177 # The macro: "__INT_LEAST8_WIDTH__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF178 # The macro: "__INT_LEAST16_MAX__ 0x7fff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF179 # The macro: "__INT16_C(c) c"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF180 # The macro: "__INT_LEAST16_WIDTH__ 16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF181 # The macro: "__INT_LEAST32_MAX__ 0x7fffffff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF182 # The macro: "__INT32_C(c) c"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF183 # The macro: "__INT_LEAST32_WIDTH__ 32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF184 # The macro: "__INT_LEAST64_MAX__ 0x7fffffffffffffffL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF185 # The macro: "__INT64_C(c) c ## L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF186 # The macro: "__INT_LEAST64_WIDTH__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF187 # The macro: "__UINT_LEAST8_MAX__ 0xff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF188 # The macro: "__UINT8_C(c) c"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF189 # The macro: "__UINT_LEAST16_MAX__ 0xffff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF190 # The macro: "__UINT16_C(c) c"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF191 # The macro: "__UINT_LEAST32_MAX__ 0xffffffffU"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF192 # The macro: "__UINT32_C(c) c ## U"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF193 # The macro: "__UINT_LEAST64_MAX__ 0xffffffffffffffffUL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF194 # The macro: "__UINT64_C(c) c ## UL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF195 # The macro: "__INT_FAST8_MAX__ 0x7f"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF196 # The macro: "__INT_FAST8_WIDTH__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF197 # The macro: "__INT_FAST16_MAX__ 0x7fffffffffffffffL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF198 # The macro: "__INT_FAST16_WIDTH__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF199 # The macro: "__INT_FAST32_MAX__ 0x7fffffffffffffffL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF200 # The macro: "__INT_FAST32_WIDTH__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF201 # The macro: "__INT_FAST64_MAX__ 0x7fffffffffffffffL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF202 # The macro: "__INT_FAST64_WIDTH__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF203 # The macro: "__UINT_FAST8_MAX__ 0xff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF204 # The macro: "__UINT_FAST16_MAX__ 0xffffffffffffffffUL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF205 # The macro: "__UINT_FAST32_MAX__ 0xffffffffffffffffUL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF206 # The macro: "__UINT_FAST64_MAX__ 0xffffffffffffffffUL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF207 # The macro: "__INTPTR_MAX__ 0x7fffffffffffffffL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF208 # The macro: "__INTPTR_WIDTH__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF209 # The macro: "__UINTPTR_MAX__ 0xffffffffffffffffUL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF210 # The macro: "__GCC_IEC_559 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF211 # The macro: "__GCC_IEC_559_COMPLEX 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF212 # The macro: "__FLT_EVAL_METHOD__ 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF213 # The macro: "__FLT_EVAL_METHOD_TS_18661_3__ 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF214 # The macro: "__DEC_EVAL_METHOD__ 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF215 # The macro: "__FLT_RADIX__ 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF216 # The macro: "__FLT_MANT_DIG__ 24"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF217 # The macro: "__FLT_DIG__ 6"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF218 # The macro: "__FLT_MIN_EXP__ (-125)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF219 # The macro: "__FLT_MIN_10_EXP__ (-37)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF220 # The macro: "__FLT_MAX_EXP__ 128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF221 # The macro: "__FLT_MAX_10_EXP__ 38"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF222 # The macro: "__FLT_DECIMAL_DIG__ 9"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF223 # The macro: "__FLT_MAX__ 3.40282346638528859811704183484516925e+38F"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF224 # The macro: "__FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF225 # The macro: "__FLT_MIN__ 1.17549435082228750796873653722224568e-38F"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF226 # The macro: "__FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF227 # The macro: "__FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF228 # The macro: "__FLT_HAS_DENORM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF229 # The macro: "__FLT_HAS_INFINITY__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF230 # The macro: "__FLT_HAS_QUIET_NAN__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF231 # The macro: "__FLT_IS_IEC_60559__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF232 # The macro: "__DBL_MANT_DIG__ 53"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF233 # The macro: "__DBL_DIG__ 15"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF234 # The macro: "__DBL_MIN_EXP__ (-1021)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF235 # The macro: "__DBL_MIN_10_EXP__ (-307)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF236 # The macro: "__DBL_MAX_EXP__ 1024"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF237 # The macro: "__DBL_MAX_10_EXP__ 308"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF238 # The macro: "__DBL_DECIMAL_DIG__ 17"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF239 # The macro: "__DBL_MAX__ double(1.79769313486231570814527423731704357e+308L)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF240 # The macro: "__DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF241 # The macro: "__DBL_MIN__ double(2.22507385850720138309023271733240406e-308L)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF242 # The macro: "__DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF243 # The macro: "__DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF244 # The macro: "__DBL_HAS_DENORM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF245 # The macro: "__DBL_HAS_INFINITY__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF246 # The macro: "__DBL_HAS_QUIET_NAN__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF247 # The macro: "__DBL_IS_IEC_60559__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF248 # The macro: "__LDBL_MANT_DIG__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF249 # The macro: "__LDBL_DIG__ 18"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF250 # The macro: "__LDBL_MIN_EXP__ (-16381)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF251 # The macro: "__LDBL_MIN_10_EXP__ (-4931)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF252 # The macro: "__LDBL_MAX_EXP__ 16384"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF253 # The macro: "__LDBL_MAX_10_EXP__ 4932"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF254 # The macro: "__DECIMAL_DIG__ 21"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF255 # The macro: "__LDBL_DECIMAL_DIG__ 21"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF256 # The macro: "__LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF257 # The macro: "__LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF258 # The macro: "__LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF259 # The macro: "__LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF260 # The macro: "__LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF261 # The macro: "__LDBL_HAS_DENORM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF262 # The macro: "__LDBL_HAS_INFINITY__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF263 # The macro: "__LDBL_HAS_QUIET_NAN__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF264 # The macro: "__LDBL_IS_IEC_60559__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF265 # The macro: "__FLT16_MANT_DIG__ 11"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF266 # The macro: "__FLT16_DIG__ 3"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF267 # The macro: "__FLT16_MIN_EXP__ (-13)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF268 # The macro: "__FLT16_MIN_10_EXP__ (-4)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF269 # The macro: "__FLT16_MAX_EXP__ 16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF270 # The macro: "__FLT16_MAX_10_EXP__ 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF271 # The macro: "__FLT16_DECIMAL_DIG__ 5"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF272 # The macro: "__FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF273 # The macro: "__FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF274 # The macro: "__FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF275 # The macro: "__FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF276 # The macro: "__FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF277 # The macro: "__FLT16_HAS_DENORM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF278 # The macro: "__FLT16_HAS_INFINITY__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF279 # The macro: "__FLT16_HAS_QUIET_NAN__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF280 # The macro: "__FLT16_IS_IEC_60559__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF281 # The macro: "__FLT32_MANT_DIG__ 24"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF282 # The macro: "__FLT32_DIG__ 6"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF283 # The macro: "__FLT32_MIN_EXP__ (-125)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF284 # The macro: "__FLT32_MIN_10_EXP__ (-37)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF285 # The macro: "__FLT32_MAX_EXP__ 128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF286 # The macro: "__FLT32_MAX_10_EXP__ 38"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF287 # The macro: "__FLT32_DECIMAL_DIG__ 9"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF288 # The macro: "__FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF289 # The macro: "__FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF290 # The macro: "__FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF291 # The macro: "__FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF292 # The macro: "__FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF293 # The macro: "__FLT32_HAS_DENORM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF294 # The macro: "__FLT32_HAS_INFINITY__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF295 # The macro: "__FLT32_HAS_QUIET_NAN__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF296 # The macro: "__FLT32_IS_IEC_60559__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF297 # The macro: "__FLT64_MANT_DIG__ 53"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF298 # The macro: "__FLT64_DIG__ 15"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF299 # The macro: "__FLT64_MIN_EXP__ (-1021)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF300 # The macro: "__FLT64_MIN_10_EXP__ (-307)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF301 # The macro: "__FLT64_MAX_EXP__ 1024"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF302 # The macro: "__FLT64_MAX_10_EXP__ 308"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF303 # The macro: "__FLT64_DECIMAL_DIG__ 17"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF304 # The macro: "__FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF305 # The macro: "__FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF306 # The macro: "__FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF307 # The macro: "__FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF308 # The macro: "__FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF309 # The macro: "__FLT64_HAS_DENORM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF310 # The macro: "__FLT64_HAS_INFINITY__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF311 # The macro: "__FLT64_HAS_QUIET_NAN__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF312 # The macro: "__FLT64_IS_IEC_60559__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF313 # The macro: "__FLT128_MANT_DIG__ 113"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF314 # The macro: "__FLT128_DIG__ 33"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF315 # The macro: "__FLT128_MIN_EXP__ (-16381)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF316 # The macro: "__FLT128_MIN_10_EXP__ (-4931)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF317 # The macro: "__FLT128_MAX_EXP__ 16384"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF318 # The macro: "__FLT128_MAX_10_EXP__ 4932"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF319 # The macro: "__FLT128_DECIMAL_DIG__ 36"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF320 # The macro: "__FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF321 # The macro: "__FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF322 # The macro: "__FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF323 # The macro: "__FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF324 # The macro: "__FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF325 # The macro: "__FLT128_HAS_DENORM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF326 # The macro: "__FLT128_HAS_INFINITY__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF327 # The macro: "__FLT128_HAS_QUIET_NAN__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF328 # The macro: "__FLT128_IS_IEC_60559__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF329 # The macro: "__FLT32X_MANT_DIG__ 53"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF330 # The macro: "__FLT32X_DIG__ 15"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF331 # The macro: "__FLT32X_MIN_EXP__ (-1021)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF332 # The macro: "__FLT32X_MIN_10_EXP__ (-307)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF333 # The macro: "__FLT32X_MAX_EXP__ 1024"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF334 # The macro: "__FLT32X_MAX_10_EXP__ 308"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF335 # The macro: "__FLT32X_DECIMAL_DIG__ 17"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF336 # The macro: "__FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF337 # The macro: "__FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF338 # The macro: "__FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF339 # The macro: "__FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF340 # The macro: "__FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF341 # The macro: "__FLT32X_HAS_DENORM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF342 # The macro: "__FLT32X_HAS_INFINITY__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF343 # The macro: "__FLT32X_HAS_QUIET_NAN__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF344 # The macro: "__FLT32X_IS_IEC_60559__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF345 # The macro: "__FLT64X_MANT_DIG__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF346 # The macro: "__FLT64X_DIG__ 18"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF347 # The macro: "__FLT64X_MIN_EXP__ (-16381)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF348 # The macro: "__FLT64X_MIN_10_EXP__ (-4931)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF349 # The macro: "__FLT64X_MAX_EXP__ 16384"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF350 # The macro: "__FLT64X_MAX_10_EXP__ 4932"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF351 # The macro: "__FLT64X_DECIMAL_DIG__ 21"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF352 # The macro: "__FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF353 # The macro: "__FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF354 # The macro: "__FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF355 # The macro: "__FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF356 # The macro: "__FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF357 # The macro: "__FLT64X_HAS_DENORM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF358 # The macro: "__FLT64X_HAS_INFINITY__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF359 # The macro: "__FLT64X_HAS_QUIET_NAN__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF360 # The macro: "__FLT64X_IS_IEC_60559__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF361 # The macro: "__BFLT16_MANT_DIG__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF362 # The macro: "__BFLT16_DIG__ 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF363 # The macro: "__BFLT16_MIN_EXP__ (-125)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF364 # The macro: "__BFLT16_MIN_10_EXP__ (-37)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF365 # The macro: "__BFLT16_MAX_EXP__ 128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF366 # The macro: "__BFLT16_MAX_10_EXP__ 38"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF367 # The macro: "__BFLT16_DECIMAL_DIG__ 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF368 # The macro: "__BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF369 # The macro: "__BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF370 # The macro: "__BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF371 # The macro: "__BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF372 # The macro: "__BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF373 # The macro: "__BFLT16_HAS_DENORM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF374 # The macro: "__BFLT16_HAS_INFINITY__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF375 # The macro: "__BFLT16_HAS_QUIET_NAN__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF376 # The macro: "__BFLT16_IS_IEC_60559__ 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF377 # The macro: "__DEC32_MANT_DIG__ 7"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF378 # The macro: "__DEC32_MIN_EXP__ (-94)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF379 # The macro: "__DEC32_MAX_EXP__ 97"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF380 # The macro: "__DEC32_MIN__ 1E-95DF"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF381 # The macro: "__DEC32_MAX__ 9.999999E96DF"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF382 # The macro: "__DEC32_EPSILON__ 1E-6DF"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF383 # The macro: "__DEC32_SUBNORMAL_MIN__ 0.000001E-95DF"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF384 # The macro: "__DEC64_MANT_DIG__ 16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF385 # The macro: "__DEC64_MIN_EXP__ (-382)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF386 # The macro: "__DEC64_MAX_EXP__ 385"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF387 # The macro: "__DEC64_MIN__ 1E-383DD"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF388 # The macro: "__DEC64_MAX__ 9.999999999999999E384DD"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF389 # The macro: "__DEC64_EPSILON__ 1E-15DD"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF390 # The macro: "__DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF391 # The macro: "__DEC128_MANT_DIG__ 34"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF392 # The macro: "__DEC128_MIN_EXP__ (-6142)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF393 # The macro: "__DEC128_MAX_EXP__ 6145"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF394 # The macro: "__DEC128_MIN__ 1E-6143DL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF395 # The macro: "__DEC128_MAX__ 9.999999999999999999999999999999999E6144DL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF396 # The macro: "__DEC128_EPSILON__ 1E-33DL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF397 # The macro: "__DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF398 # The macro: "__DEC64X_MANT_DIG__ 34"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF399 # The macro: "__DEC64X_MIN_EXP__ (-6142)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF400 # The macro: "__DEC64X_MAX_EXP__ 6145"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF401 # The macro: "__DEC64X_MIN__ 1E-6143D64x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF402 # The macro: "__DEC64X_MAX__ 9.999999999999999999999999999999999E6144D64x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF403 # The macro: "__DEC64X_EPSILON__ 1E-33D64x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF404 # The macro: "__DEC64X_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143D64x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF405 # The macro: "__REGISTER_PREFIX__ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF406 # The macro: "__USER_LABEL_PREFIX__ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF407 # The macro: "__GNUC_STDC_INLINE__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF408 # The macro: "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF409 # The macro: "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF410 # The macro: "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF411 # The macro: "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF412 # The macro: "__GCC_ATOMIC_BOOL_LOCK_FREE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF413 # The macro: "__GCC_ATOMIC_CHAR_LOCK_FREE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF414 # The macro: "__GCC_ATOMIC_CHAR16_T_LOCK_FREE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF415 # The macro: "__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF416 # The macro: "__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF417 # The macro: "__GCC_ATOMIC_SHORT_LOCK_FREE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF418 # The macro: "__GCC_ATOMIC_INT_LOCK_FREE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF419 # The macro: "__GCC_ATOMIC_LONG_LOCK_FREE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF420 # The macro: "__GCC_ATOMIC_LLONG_LOCK_FREE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF421 # The macro: "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF422 # The macro: "__GCC_DESTRUCTIVE_SIZE 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF423 # The macro: "__GCC_CONSTRUCTIVE_SIZE 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF424 # The macro: "__GCC_ATOMIC_POINTER_LOCK_FREE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF425 # The macro: "__HAVE_SPECULATION_SAFE_VALUE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF426 # The macro: "__GCC_HAVE_DWARF2_CFI_ASM 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF427 # The macro: "__PRAGMA_REDEFINE_EXTNAME 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF428 # The macro: "__SIZEOF_INT128__ 16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF429 # The macro: "__SIZEOF_WCHAR_T__ 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF430 # The macro: "__SIZEOF_WINT_T__ 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF431 # The macro: "__SIZEOF_PTRDIFF_T__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF432 # The macro: "__amd64 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF433 # The macro: "__amd64__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF434 # The macro: "__x86_64 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF435 # The macro: "__x86_64__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF436 # The macro: "__SIZEOF_FLOAT80__ 16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF437 # The macro: "__SIZEOF_FLOAT128__ 16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF438 # The macro: "__ATOMIC_HLE_ACQUIRE 65536"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF439 # The macro: "__ATOMIC_HLE_RELEASE 131072"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF440 # The macro: "__GCC_ASM_FLAG_OUTPUTS__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF441 # The macro: "__k8 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF442 # The macro: "__k8__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF443 # The macro: "__code_model_small__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF444 # The macro: "__MMX__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF445 # The macro: "__SSE__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF446 # The macro: "__SSE2__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF447 # The macro: "__FXSR__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF448 # The macro: "__SSE_MATH__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF449 # The macro: "__SSE2_MATH__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF450 # The macro: "__MMX_WITH_SSE__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF451 # The macro: "__SEG_FS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF452 # The macro: "__SEG_GS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF453 # The macro: "__gnu_linux__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF454 # The macro: "__linux 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF455 # The macro: "__linux__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF456 # The macro: "linux 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF457 # The macro: "__unix 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF458 # The macro: "__unix__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF459 # The macro: "unix 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF460 # The macro: "__ELF__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF461 # The macro: "__DECIMAL_BID_FORMAT__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF462 # The macro: "_GNU_SOURCE 1"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stdcpredef.h.19.88fdbfd5cf6f83ed579effc3e425f09b,comdat
+.Ldebug_macro3:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13 # At line number 19
+ .long .LASF463 # The macro: "_STDC_PREDEF_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x26 # At line number 38
+ .long .LASF464 # The macro: "__STDC_IEC_559__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27 # At line number 39
+ .long .LASF465 # The macro: "__STDC_IEC_60559_BFP__ 201404L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x30 # At line number 48
+ .long .LASF466 # The macro: "__STDC_IEC_559_COMPLEX__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x31 # At line number 49
+ .long .LASF467 # The macro: "__STDC_IEC_60559_COMPLEX__ 201404L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3e # At line number 62
+ .long .LASF468 # The macro: "__STDC_ISO_10646__ 201706L"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.wordsize.h.4.21825217995af4880cdf0ea22ad93ab2,comdat
+.Ldebug_macro4:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4 # At line number 4
+ .long .LASF472 # The macro: "__WORDSIZE 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb # At line number 11
+ .long .LASF473 # The macro: "__WORDSIZE_TIME64_COMPAT32 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf # At line number 15
+ .long .LASF474 # The macro: "__SYSCALL_WORDSIZE 64"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.cconfig.h.1945.b6e1a0853c4cceb838353ccb00a51862,comdat
+.Ldebug_macro5:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x799 # At line number 1945
+ .long .LASF475 # The macro: "_GLIBCXX_CXX_CONFIG_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7a7 # At line number 1959
+ .long .LASF476 # The macro: "_GLIBCXX_RELEASE 15"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7aa # At line number 1962
+ .long .LASF477 # The macro: "__GLIBCXX__"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7ab # At line number 1963
+ .long .LASF478 # The macro: "__GLIBCXX__ 20250425"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7b4 # At line number 1972
+ .long .LASF479 # The macro: "_GLIBCXX_PURE __attribute__ ((__pure__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7b8 # At line number 1976
+ .long .LASF480 # The macro: "_GLIBCXX_CONST __attribute__ ((__const__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7bc # At line number 1980
+ .long .LASF481 # The macro: "_GLIBCXX_NORETURN __attribute__ ((__noreturn__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7c9 # At line number 1993
+ .long .LASF482 # The macro: "_GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7cc # At line number 1996
+ .long .LASF483 # The macro: "_GLIBCXX_VISIBILITY(V) __attribute__ ((__visibility__ (#V)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7e4 # At line number 2020
+ .long .LASF484 # The macro: "_GLIBCXX_USE_DEPRECATED 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7e8 # At line number 2024
+ .long .LASF485 # The macro: "_GLIBCXX_DEPRECATED __attribute__ ((__deprecated__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7e9 # At line number 2025
+ .long .LASF486 # The macro: "_GLIBCXX_DEPRECATED_SUGGEST(ALT) __attribute__ ((__deprecated__ ("use '" ALT "' instead")))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7f1 # At line number 2033
+ .long .LASF487 # The macro: "_GLIBCXX11_DEPRECATED _GLIBCXX_DEPRECATED"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7f2 # At line number 2034
+ .long .LASF488 # The macro: "_GLIBCXX11_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7f9 # At line number 2041
+ .long .LASF489 # The macro: "_GLIBCXX14_DEPRECATED _GLIBCXX_DEPRECATED"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7fa # At line number 2042
+ .long .LASF490 # The macro: "_GLIBCXX14_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x801 # At line number 2049
+ .long .LASF491 # The macro: "_GLIBCXX17_DEPRECATED [[__deprecated__]]"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x802 # At line number 2050
+ .long .LASF492 # The macro: "_GLIBCXX17_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x80c # At line number 2060
+ .long .LASF493 # The macro: "_GLIBCXX20_DEPRECATED "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x80d # At line number 2061
+ .long .LASF494 # The macro: "_GLIBCXX20_DEPRECATED_SUGGEST(ALT) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x814 # At line number 2068
+ .long .LASF495 # The macro: "_GLIBCXX23_DEPRECATED "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x815 # At line number 2069
+ .long .LASF496 # The macro: "_GLIBCXX23_DEPRECATED_SUGGEST(ALT) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x81c # At line number 2076
+ .long .LASF497 # The macro: "_GLIBCXX26_DEPRECATED "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x81d # At line number 2077
+ .long .LASF498 # The macro: "_GLIBCXX26_DEPRECATED_SUGGEST(ALT) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x822 # At line number 2082
+ .long .LASF499 # The macro: "_GLIBCXX_ABI_TAG_CXX11 __attribute ((__abi_tag__ ("cxx11")))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x827 # At line number 2087
+ .long .LASF500 # The macro: "_GLIBCXX_NODISCARD [[__nodiscard__]]"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x833 # At line number 2099
+ .long .LASF501 # The macro: "_GLIBCXX_CONSTEXPR constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x834 # At line number 2100
+ .long .LASF502 # The macro: "_GLIBCXX_USE_CONSTEXPR constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x83d # At line number 2109
+ .long .LASF503 # The macro: "_GLIBCXX14_CONSTEXPR constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x845 # At line number 2117
+ .long .LASF504 # The macro: "_GLIBCXX17_CONSTEXPR constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x84f # At line number 2127
+ .long .LASF505 # The macro: "_GLIBCXX20_CONSTEXPR "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x857 # At line number 2135
+ .long .LASF506 # The macro: "_GLIBCXX23_CONSTEXPR "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x85f # At line number 2143
+ .long .LASF507 # The macro: "_GLIBCXX26_CONSTEXPR "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x865 # At line number 2149
+ .long .LASF508 # The macro: "_GLIBCXX17_INLINE inline"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x86e # At line number 2158
+ .long .LASF509 # The macro: "_GLIBCXX_NOEXCEPT noexcept"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x86f # At line number 2159
+ .long .LASF510 # The macro: "_GLIBCXX_NOEXCEPT_IF(...) noexcept(__VA_ARGS__)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x870 # At line number 2160
+ .long .LASF511 # The macro: "_GLIBCXX_USE_NOEXCEPT noexcept"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x871 # At line number 2161
+ .long .LASF512 # The macro: "_GLIBCXX_THROW(_EXC) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x87b # At line number 2171
+ .long .LASF513 # The macro: "_GLIBCXX_NOTHROW _GLIBCXX_USE_NOEXCEPT"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x880 # At line number 2176
+ .long .LASF514 # The macro: "_GLIBCXX_THROW_OR_ABORT(_EXC) (throw (_EXC))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x887 # At line number 2183
+ .long .LASF515 # The macro: "_GLIBCXX_NOEXCEPT_PARM , bool _NE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x888 # At line number 2184
+ .long .LASF516 # The macro: "_GLIBCXX_NOEXCEPT_QUAL noexcept (_NE)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x898 # At line number 2200
+ .long .LASF517 # The macro: "_GLIBCXX_EXTERN_TEMPLATE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8df # At line number 2271
+ .long .LASF518 # The macro: "_GLIBCXX_USE_DUAL_ABI 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8e7 # At line number 2279
+ .long .LASF519 # The macro: "_GLIBCXX_USE_CXX11_ABI 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8f3 # At line number 2291
+ .long .LASF520 # The macro: "_GLIBCXX_NAMESPACE_CXX11 __cxx11::"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8f4 # At line number 2292
+ .long .LASF521 # The macro: "_GLIBCXX_BEGIN_NAMESPACE_CXX11 namespace __cxx11 {"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8f5 # At line number 2293
+ .long .LASF522 # The macro: "_GLIBCXX_END_NAMESPACE_CXX11 }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8f6 # At line number 2294
+ .long .LASF523 # The macro: "_GLIBCXX_DEFAULT_ABI_TAG _GLIBCXX_ABI_TAG_CXX11"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8ff # At line number 2303
+ .long .LASF524 # The macro: "_GLIBCXX_INLINE_VERSION 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x921 # At line number 2337
+ .long .LASF525 # The macro: "_GLIBCXX_BEGIN_NAMESPACE_VERSION "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x922 # At line number 2338
+ .long .LASF526 # The macro: "_GLIBCXX_END_NAMESPACE_VERSION "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x924 # At line number 2340
+ .long .LASF527 # The macro: "_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(X) inline namespace X {"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x925 # At line number 2341
+ .long .LASF528 # The macro: "_GLIBCXX_END_INLINE_ABI_NAMESPACE(X) }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x966 # At line number 2406
+ .long .LASF529 # The macro: "_GLIBCXX_STD_C std"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x967 # At line number 2407
+ .long .LASF530 # The macro: "_GLIBCXX_BEGIN_NAMESPACE_CONTAINER "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x968 # At line number 2408
+ .long .LASF531 # The macro: "_GLIBCXX_END_NAMESPACE_CONTAINER "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x971 # At line number 2417
+ .long .LASF532 # The macro: "_GLIBCXX_STD_A std"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x972 # At line number 2418
+ .long .LASF533 # The macro: "_GLIBCXX_BEGIN_NAMESPACE_ALGO "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x973 # At line number 2419
+ .long .LASF534 # The macro: "_GLIBCXX_END_NAMESPACE_ALGO "
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x978 # At line number 2424
+ .long .LASF535 # The macro: "_GLIBCXX_LONG_DOUBLE_COMPAT"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x982 # At line number 2434
+ .long .LASF536 # The macro: "_GLIBCXX_CLANG"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x988 # At line number 2440
+ .long .LASF537 # The macro: "_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9a6 # At line number 2470
+ .long .LASF538 # The macro: "_GLIBCXX_NAMESPACE_LDBL "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9a7 # At line number 2471
+ .long .LASF539 # The macro: "_GLIBCXX_BEGIN_NAMESPACE_LDBL "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9a8 # At line number 2472
+ .long .LASF540 # The macro: "_GLIBCXX_END_NAMESPACE_LDBL "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9ac # At line number 2476
+ .long .LASF541 # The macro: "_GLIBCXX_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_NAMESPACE_CXX11"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9ad # At line number 2477
+ .long .LASF542 # The macro: "_GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_BEGIN_NAMESPACE_CXX11"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9ae # At line number 2478
+ .long .LASF543 # The macro: "_GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_END_NAMESPACE_CXX11"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9c6 # At line number 2502
+ .long .LASF544 # The macro: "_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9df # At line number 2527
+ .long .LASF545 # The macro: "_GLIBCXX_VERBOSE_ASSERT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9ef # At line number 2543
+ .long .LASF546 # The macro: "_GLIBCXX_ASSERT_FAIL(_Condition) std::__glibcxx_assert_fail(__FILE__, __LINE__, __PRETTY_FUNCTION__, #_Condition)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa09 # At line number 2569
+ .long .LASF547 # The macro: "__glibcxx_assert(cond) do { if (std::__is_constant_evaluated() && !bool(cond)) std::__glibcxx_assert_fail(); } while (false)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa33 # At line number 2611
+ .long .LASF548 # The macro: "_GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(A) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa36 # At line number 2614
+ .long .LASF549 # The macro: "_GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(A) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa3a # At line number 2618
+ .long .LASF550 # The macro: "_GLIBCXX_BEGIN_EXTERN_C extern "C" {"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa3b # At line number 2619
+ .long .LASF551 # The macro: "_GLIBCXX_END_EXTERN_C }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa3d # At line number 2621
+ .long .LASF552 # The macro: "_GLIBCXX_USE_ALLOCATOR_NEW 1"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.os_defines.h.31.00ac2dfcc18ce0a4ccd7d724c7e326ea,comdat
+.Ldebug_macro6:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF553 # The macro: "_GLIBCXX_OS_DEFINES 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25 # At line number 37
+ .long .LASF554 # The macro: "__NO_CTYPE 1"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.features.h.19.bdce2f9bc3939800030d1d9eb242d816,comdat
+.Ldebug_macro7:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13 # At line number 19
+ .long .LASF555 # The macro: "_FEATURES_H 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x81 # At line number 129
+ .long .LASF556 # The macro: "__USE_ISOC11"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x82 # At line number 130
+ .long .LASF557 # The macro: "__USE_ISOC99"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x83 # At line number 131
+ .long .LASF558 # The macro: "__USE_ISOC95"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x84 # At line number 132
+ .long .LASF559 # The macro: "__USE_ISOCXX11"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x85 # At line number 133
+ .long .LASF560 # The macro: "__USE_POSIX"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x86 # At line number 134
+ .long .LASF561 # The macro: "__USE_POSIX2"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x87 # At line number 135
+ .long .LASF562 # The macro: "__USE_POSIX199309"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x88 # At line number 136
+ .long .LASF563 # The macro: "__USE_POSIX199506"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x89 # At line number 137
+ .long .LASF564 # The macro: "__USE_XOPEN"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x8a # At line number 138
+ .long .LASF565 # The macro: "__USE_XOPEN_EXTENDED"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x8b # At line number 139
+ .long .LASF566 # The macro: "__USE_UNIX98"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x8c # At line number 140
+ .long .LASF567 # The macro: "__USE_XOPEN2K"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x8d # At line number 141
+ .long .LASF568 # The macro: "__USE_XOPEN2KXSI"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x8e # At line number 142
+ .long .LASF569 # The macro: "__USE_XOPEN2K8"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x8f # At line number 143
+ .long .LASF570 # The macro: "__USE_XOPEN2K8XSI"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x90 # At line number 144
+ .long .LASF571 # The macro: "__USE_LARGEFILE"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x91 # At line number 145
+ .long .LASF572 # The macro: "__USE_LARGEFILE64"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x92 # At line number 146
+ .long .LASF573 # The macro: "__USE_FILE_OFFSET64"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x93 # At line number 147
+ .long .LASF574 # The macro: "__USE_MISC"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x94 # At line number 148
+ .long .LASF575 # The macro: "__USE_ATFILE"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x95 # At line number 149
+ .long .LASF576 # The macro: "__USE_DYNAMIC_STACK_SIZE"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x96 # At line number 150
+ .long .LASF577 # The macro: "__USE_GNU"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x97 # At line number 151
+ .long .LASF578 # The macro: "__USE_FORTIFY_LEVEL"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x98 # At line number 152
+ .long .LASF579 # The macro: "__KERNEL_STRICT_NAMES"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x99 # At line number 153
+ .long .LASF580 # The macro: "__GLIBC_USE_ISOC23"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9a # At line number 154
+ .long .LASF581 # The macro: "__GLIBC_USE_ISOC2Y"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9b # At line number 155
+ .long .LASF582 # The macro: "__GLIBC_USE_DEPRECATED_GETS"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF583 # The macro: "__GLIBC_USE_DEPRECATED_SCANF"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9d # At line number 157
+ .long .LASF584 # The macro: "__GLIBC_USE_C23_STRTOL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa2 # At line number 162
+ .long .LASF585 # The macro: "__KERNEL_STRICT_NAMES "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xad # At line number 173
+ .long .LASF586 # The macro: "__GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbb # At line number 187
+ .long .LASF587 # The macro: "__glibc_clang_prereq(maj,min) 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbf # At line number 191
+ .long .LASF588 # The macro: "__GLIBC_USE(F) __GLIBC_USE_ ## F"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd5 # At line number 213
+ .long .LASF589 # The macro: "_ISOC95_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd6 # At line number 214
+ .long .LASF590 # The macro: "_ISOC95_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd7 # At line number 215
+ .long .LASF591 # The macro: "_ISOC99_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd8 # At line number 216
+ .long .LASF592 # The macro: "_ISOC99_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd9 # At line number 217
+ .long .LASF593 # The macro: "_ISOC11_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xda # At line number 218
+ .long .LASF594 # The macro: "_ISOC11_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xdb # At line number 219
+ .long .LASF595 # The macro: "_ISOC23_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc # At line number 220
+ .long .LASF596 # The macro: "_ISOC23_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xdd # At line number 221
+ .long .LASF597 # The macro: "_ISOC2Y_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xde # At line number 222
+ .long .LASF598 # The macro: "_ISOC2Y_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xdf # At line number 223
+ .long .LASF599 # The macro: "_POSIX_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe0 # At line number 224
+ .long .LASF600 # The macro: "_POSIX_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe1 # At line number 225
+ .long .LASF601 # The macro: "_POSIX_C_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe2 # At line number 226
+ .long .LASF602 # The macro: "_POSIX_C_SOURCE 200809L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe3 # At line number 227
+ .long .LASF603 # The macro: "_XOPEN_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe4 # At line number 228
+ .long .LASF604 # The macro: "_XOPEN_SOURCE 700"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe5 # At line number 229
+ .long .LASF605 # The macro: "_XOPEN_SOURCE_EXTENDED"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe6 # At line number 230
+ .long .LASF606 # The macro: "_XOPEN_SOURCE_EXTENDED 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe7 # At line number 231
+ .long .LASF607 # The macro: "_LARGEFILE64_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe8 # At line number 232
+ .long .LASF608 # The macro: "_LARGEFILE64_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe9 # At line number 233
+ .long .LASF609 # The macro: "_DEFAULT_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xea # At line number 234
+ .long .LASF610 # The macro: "_DEFAULT_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xeb # At line number 235
+ .long .LASF611 # The macro: "_ATFILE_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xec # At line number 236
+ .long .LASF612 # The macro: "_ATFILE_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xed # At line number 237
+ .long .LASF613 # The macro: "_DYNAMIC_STACK_SIZE_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xee # At line number 238
+ .long .LASF614 # The macro: "_DYNAMIC_STACK_SIZE_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf9 # At line number 249
+ .long .LASF609 # The macro: "_DEFAULT_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xfa # At line number 250
+ .long .LASF610 # The macro: "_DEFAULT_SOURCE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x100 # At line number 256
+ .long .LASF615 # The macro: "__GLIBC_USE_ISOC2Y 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x108 # At line number 264
+ .long .LASF616 # The macro: "__GLIBC_USE_ISOC23 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x111 # At line number 273
+ .long .LASF617 # The macro: "__USE_ISOC11 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x118 # At line number 280
+ .long .LASF618 # The macro: "__USE_ISOC99 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11f # At line number 287
+ .long .LASF619 # The macro: "__USE_ISOC95 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x125 # At line number 293
+ .long .LASF617 # The macro: "__USE_ISOC11 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x12a # At line number 298
+ .long .LASF620 # The macro: "__USE_ISOCXX11 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x12b # At line number 299
+ .long .LASF618 # The macro: "__USE_ISOC99 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x136 # At line number 310
+ .long .LASF599 # The macro: "_POSIX_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x137 # At line number 311
+ .long .LASF600 # The macro: "_POSIX_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x138 # At line number 312
+ .long .LASF601 # The macro: "_POSIX_C_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x139 # At line number 313
+ .long .LASF602 # The macro: "_POSIX_C_SOURCE 200809L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x15c # At line number 348
+ .long .LASF621 # The macro: "__USE_POSIX 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x160 # At line number 352
+ .long .LASF622 # The macro: "__USE_POSIX2 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x164 # At line number 356
+ .long .LASF623 # The macro: "__USE_POSIX199309 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x168 # At line number 360
+ .long .LASF624 # The macro: "__USE_POSIX199506 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16c # At line number 364
+ .long .LASF625 # The macro: "__USE_XOPEN2K 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x16d # At line number 365
+ .long .LASF558 # The macro: "__USE_ISOC95"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16e # At line number 366
+ .long .LASF619 # The macro: "__USE_ISOC95 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x16f # At line number 367
+ .long .LASF557 # The macro: "__USE_ISOC99"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x170 # At line number 368
+ .long .LASF618 # The macro: "__USE_ISOC99 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x174 # At line number 372
+ .long .LASF626 # The macro: "__USE_XOPEN2K8 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x175 # At line number 373
+ .long .LASF611 # The macro: "_ATFILE_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x176 # At line number 374
+ .long .LASF612 # The macro: "_ATFILE_SOURCE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x17a # At line number 378
+ .long .LASF627 # The macro: "__USE_XOPEN 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x17c # At line number 380
+ .long .LASF628 # The macro: "__USE_XOPEN_EXTENDED 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x17d # At line number 381
+ .long .LASF629 # The macro: "__USE_UNIX98 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x17e # At line number 382
+ .long .LASF630 # The macro: "_LARGEFILE_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x17f # At line number 383
+ .long .LASF631 # The macro: "_LARGEFILE_SOURCE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x182 # At line number 386
+ .long .LASF626 # The macro: "__USE_XOPEN2K8 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x183 # At line number 387
+ .long .LASF632 # The macro: "__USE_XOPEN2K8XSI 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x185 # At line number 389
+ .long .LASF625 # The macro: "__USE_XOPEN2K 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x186 # At line number 390
+ .long .LASF633 # The macro: "__USE_XOPEN2KXSI 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x187 # At line number 391
+ .long .LASF558 # The macro: "__USE_ISOC95"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x188 # At line number 392
+ .long .LASF619 # The macro: "__USE_ISOC95 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x189 # At line number 393
+ .long .LASF557 # The macro: "__USE_ISOC99"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18a # At line number 394
+ .long .LASF618 # The macro: "__USE_ISOC99 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x194 # At line number 404
+ .long .LASF634 # The macro: "__USE_LARGEFILE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x198 # At line number 408
+ .long .LASF635 # The macro: "__USE_LARGEFILE64 1"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.features.h.418.0b5c3539d8a4e9fd50fc3039208f3961,comdat
+.Ldebug_macro8:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a2 # At line number 418
+ .long .LASF638 # The macro: "__USE_MISC 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a6 # At line number 422
+ .long .LASF639 # The macro: "__USE_ATFILE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1aa # At line number 426
+ .long .LASF640 # The macro: "__USE_DYNAMIC_STACK_SIZE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1ae # At line number 430
+ .long .LASF641 # The macro: "__USE_GNU 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c7 # At line number 455
+ .long .LASF642 # The macro: "__USE_FORTIFY_LEVEL 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1cf # At line number 463
+ .long .LASF643 # The macro: "__GLIBC_USE_DEPRECATED_GETS 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e6 # At line number 486
+ .long .LASF644 # The macro: "__GLIBC_USE_DEPRECATED_SCANF 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1ef # At line number 495
+ .long .LASF645 # The macro: "__GLIBC_USE_C23_STRTOL 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1fe # At line number 510
+ .long .LASF646 # The macro: "__GNU_LIBRARY__"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1ff # At line number 511
+ .long .LASF647 # The macro: "__GNU_LIBRARY__ 6"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x203 # At line number 515
+ .long .LASF648 # The macro: "__GLIBC__ 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x204 # At line number 516
+ .long .LASF649 # The macro: "__GLIBC_MINOR__ 41"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x206 # At line number 518
+ .long .LASF650 # The macro: "__GLIBC_PREREQ(maj,min) ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.cdefs.h.20.3b5b75c5448e96e4c39679d0a8f1a476,comdat
+.Ldebug_macro9:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF651 # The macro: "_SYS_CDEFS_H 1"
+ .byte 0x2 # Undefine macro
+ .uleb128 0x23 # At line number 35
+ .ascii "__P\0" # The macro
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x24 # At line number 36
+ .long .LASF652 # The macro: "__PMT"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d # At line number 45
+ .long .LASF653 # The macro: "__glibc_has_attribute(attr) __has_attribute (attr)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x32 # At line number 50
+ .long .LASF654 # The macro: "__glibc_has_builtin(name) __has_builtin (name)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF655 # The macro: "__glibc_has_extension(ext) __has_extension (ext)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF656 # The macro: "__LEAF , __leaf__"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x42 # At line number 66
+ .long .LASF657 # The macro: "__LEAF_ATTR __attribute__ ((__leaf__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56 # At line number 86
+ .long .LASF658 # The macro: "__THROW noexcept (true)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5a # At line number 90
+ .long .LASF659 # The macro: "__THROWNL __THROW"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF660 # The macro: "__NTH(fct) __LEAF_ATTR fct __THROW"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5c # At line number 92
+ .long .LASF661 # The macro: "__NTHNL(fct) fct __THROW"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x66 # At line number 102
+ .long .LASF662 # The macro: "__COLD __attribute__ ((__cold__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7d # At line number 125
+ .long .LASF663 # The macro: "__P(args) args"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF664 # The macro: "__PMT(args) args"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x83 # At line number 131
+ .long .LASF665 # The macro: "__CONCAT(x,y) x ## y"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x84 # At line number 132
+ .long .LASF666 # The macro: "__STRING(x) #x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x87 # At line number 135
+ .long .LASF667 # The macro: "__ptr_t void *"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8c # At line number 140
+ .long .LASF668 # The macro: "__BEGIN_DECLS extern "C" {"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8d # At line number 141
+ .long .LASF669 # The macro: "__END_DECLS }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x99 # At line number 153
+ .long .LASF670 # The macro: "__attribute_overloadable__ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9d # At line number 157
+ .long .LASF671 # The macro: "__bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9e # At line number 158
+ .long .LASF672 # The macro: "__bos0(ptr) __builtin_object_size (ptr, 0)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa6 # At line number 166
+ .long .LASF673 # The macro: "__glibc_objsize0(__o) __bos0 (__o)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa7 # At line number 167
+ .long .LASF674 # The macro: "__glibc_objsize(__o) __bos (__o)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16e # At line number 366
+ .long .LASF675 # The macro: "__warnattr(msg) __attribute__((__warning__ (msg)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16f # At line number 367
+ .long .LASF676 # The macro: "__errordecl(name,msg) extern void name (void) __attribute__((__error__ (msg)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x180 # At line number 384
+ .long .LASF677 # The macro: "__flexarr []"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x181 # At line number 385
+ .long .LASF678 # The macro: "__glibc_c99_flexarr_available 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x19a # At line number 410
+ .long .LASF679 # The macro: "__REDIRECT(name,proto,alias) name proto __asm__ (__ASMNAME (#alias))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x19c # At line number 412
+ .long .LASF680 # The macro: "__REDIRECT_NTH(name,proto,alias) name proto __THROW __asm__ (__ASMNAME (#alias))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x19e # At line number 414
+ .long .LASF681 # The macro: "__REDIRECT_NTHNL(name,proto,alias) name proto __THROWNL __asm__ (__ASMNAME (#alias))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a6 # At line number 422
+ .long .LASF682 # The macro: "__ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a7 # At line number 423
+ .long .LASF683 # The macro: "__ASMNAME2(prefix,cname) __STRING (prefix) cname"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1aa # At line number 426
+ .long .LASF684 # The macro: "__REDIRECT_FORTIFY __REDIRECT"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1ae # At line number 430
+ .long .LASF685 # The macro: "__REDIRECT_FORTIFY_NTH __REDIRECT_NTH"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c4 # At line number 452
+ .long .LASF686 # The macro: "__attribute_malloc__ __attribute__ ((__malloc__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1cc # At line number 460
+ .long .LASF687 # The macro: "__attribute_alloc_size__(params) __attribute__ ((__alloc_size__ params))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1d5 # At line number 469
+ .long .LASF688 # The macro: "__attribute_alloc_align__(param) __attribute__ ((__alloc_align__ param))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1df # At line number 479
+ .long .LASF689 # The macro: "__attribute_pure__ __attribute__ ((__pure__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e6 # At line number 486
+ .long .LASF690 # The macro: "__attribute_const__ __attribute__ ((__const__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1ec # At line number 492
+ .long .LASF691 # The macro: "__attribute_maybe_unused__ __attribute__ ((__unused__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f5 # At line number 501
+ .long .LASF692 # The macro: "__attribute_used__ __attribute__ ((__used__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f6 # At line number 502
+ .long .LASF693 # The macro: "__attribute_noinline__ __attribute__ ((__noinline__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1fe # At line number 510
+ .long .LASF694 # The macro: "__attribute_deprecated__ __attribute__ ((__deprecated__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x208 # At line number 520
+ .long .LASF695 # The macro: "__attribute_deprecated_msg__(msg) __attribute__ ((__deprecated__ (msg)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x215 # At line number 533
+ .long .LASF696 # The macro: "__attribute_format_arg__(x) __attribute__ ((__format_arg__ (x)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x21f # At line number 543
+ .long .LASF697 # The macro: "__attribute_format_strfmon__(a,b) __attribute__ ((__format__ (__strfmon__, a, b)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22b # At line number 555
+ .long .LASF698 # The macro: "__attribute_nonnull__(params) __attribute__ ((__nonnull__ params))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x231 # At line number 561
+ .long .LASF699 # The macro: "__nonnull(params) __attribute_nonnull__ (params)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x238 # At line number 568
+ .long .LASF700 # The macro: "__returns_nonnull __attribute__ ((__returns_nonnull__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x241 # At line number 577
+ .long .LASF701 # The macro: "__attribute_warn_unused_result__ __attribute__ ((__warn_unused_result__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24a # At line number 586
+ .long .LASF702 # The macro: "__wur "
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x252 # At line number 594
+ .long .LASF703 # The macro: "__always_inline"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x253 # At line number 595
+ .long .LASF704 # The macro: "__always_inline __inline __attribute__ ((__always_inline__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25c # At line number 604
+ .long .LASF705 # The macro: "__attribute_artificial__ __attribute__ ((__artificial__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x26e # At line number 622
+ .long .LASF706 # The macro: "__extern_inline extern __inline __attribute__ ((__gnu_inline__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x26f # At line number 623
+ .long .LASF707 # The macro: "__extern_always_inline extern __always_inline __attribute__ ((__gnu_inline__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x278 # At line number 632
+ .long .LASF708 # The macro: "__fortify_function __extern_always_inline __attribute_artificial__"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27e # At line number 638
+ .long .LASF709 # The macro: "__va_arg_pack() __builtin_va_arg_pack ()"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27f # At line number 639
+ .long .LASF710 # The macro: "__va_arg_pack_len() __builtin_va_arg_pack_len ()"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29d # At line number 669
+ .long .LASF711 # The macro: "__restrict_arr "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a9 # At line number 681
+ .long .LASF712 # The macro: "__glibc_unlikely(cond) __builtin_expect ((cond), 0)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2aa # At line number 682
+ .long .LASF713 # The macro: "__glibc_likely(cond) __builtin_expect ((cond), 1)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2bf # At line number 703
+ .long .LASF714 # The macro: "__attribute_nonstring__ __attribute__ ((__nonstring__))"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2c5 # At line number 709
+ .long .LASF715 # The macro: "__attribute_copy__"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c9 # At line number 713
+ .long .LASF716 # The macro: "__attribute_copy__(arg) __attribute__ ((__copy__ (arg)))"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.cdefs.h.788.9af8f5176cd272e215897fe8049c214d,comdat
+.Ldebug_macro10:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x314 # At line number 788
+ .long .LASF718 # The macro: "__LDBL_REDIR1(name,proto,alias) name proto"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x315 # At line number 789
+ .long .LASF719 # The macro: "__LDBL_REDIR(name,proto) name proto"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x316 # At line number 790
+ .long .LASF720 # The macro: "__LDBL_REDIR1_NTH(name,proto,alias) name proto __THROW"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x317 # At line number 791
+ .long .LASF721 # The macro: "__LDBL_REDIR_NTH(name,proto) name proto __THROW"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x318 # At line number 792
+ .long .LASF722 # The macro: "__LDBL_REDIR2_DECL(name) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x319 # At line number 793
+ .long .LASF723 # The macro: "__LDBL_REDIR_DECL(name) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x31b # At line number 795
+ .long .LASF724 # The macro: "__REDIRECT_LDBL(name,proto,alias) __REDIRECT (name, proto, alias)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x31c # At line number 796
+ .long .LASF725 # The macro: "__REDIRECT_NTH_LDBL(name,proto,alias) __REDIRECT_NTH (name, proto, alias)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x327 # At line number 807
+ .long .LASF726 # The macro: "__glibc_macro_warning1(message) _Pragma (#message)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x328 # At line number 808
+ .long .LASF727 # The macro: "__glibc_macro_warning(message) __glibc_macro_warning1 (GCC warning message)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x33c # At line number 828
+ .long .LASF728 # The macro: "__HAVE_GENERIC_SELECTION 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x345 # At line number 837
+ .long .LASF729 # The macro: "__attr_access(x) __attribute__ ((__access__ x))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x34d # At line number 845
+ .long .LASF730 # The macro: "__fortified_attr_access(a,o,s) __attr_access ((a, o, s))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x350 # At line number 848
+ .long .LASF731 # The macro: "__attr_access_none(argno) __attribute__ ((__access__ (__none__, argno)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35d # At line number 861
+ .long .LASF732 # The macro: "__attr_dealloc(dealloc,argno) __attribute__ ((__malloc__ (dealloc, argno)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35f # At line number 863
+ .long .LASF733 # The macro: "__attr_dealloc_free __attr_dealloc (__builtin_free, 1)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x368 # At line number 872
+ .long .LASF734 # The macro: "__attribute_returns_twice__ __attribute__ ((__returns_twice__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x371 # At line number 881
+ .long .LASF735 # The macro: "__attribute_struct_may_alias__ __attribute__ ((__may_alias__))"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stubs64.h.10.7865f4f7062bab1c535c1f73f43aa9b9,comdat
+.Ldebug_macro11:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa # At line number 10
+ .long .LASF737 # The macro: "__stub___compat_bdflush "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb # At line number 11
+ .long .LASF738 # The macro: "__stub_chflags "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc # At line number 12
+ .long .LASF739 # The macro: "__stub_fchflags "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd # At line number 13
+ .long .LASF740 # The macro: "__stub_gtty "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe # At line number 14
+ .long .LASF741 # The macro: "__stub_revoke "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf # At line number 15
+ .long .LASF742 # The macro: "__stub_setlogin "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10 # At line number 16
+ .long .LASF743 # The macro: "__stub_sigreturn "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11 # At line number 17
+ .long .LASF744 # The macro: "__stub_stty "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.os_defines.h.45.d06a304670a31a32135668aa1e3d636d,comdat
+.Ldebug_macro12:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2d # At line number 45
+ .long .LASF745 # The macro: "_GLIBCXX_HAVE_GETS"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x32 # At line number 50
+ .long .LASF746 # The macro: "_GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC __GLIBC_PREREQ(2,23)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3c # At line number 60
+ .long .LASF747 # The macro: "_GLIBCXX_HAVE_FLOAT128_MATH 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x42 # At line number 66
+ .long .LASF748 # The macro: "_GLIBCXX_MAY_HAVE___CXA_THREAD_ATEXIT_IMPL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x49 # At line number 73
+ .long .LASF749 # The macro: "_GLIBCXX_NATIVE_THREAD_ID pthread_self()"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56 # At line number 86
+ .long .LASF750 # The macro: "_GLIBCXX_GTHREAD_USE_WEAK 0"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.cconfig.h.2649.87423048acc70a6cfbf4eb1b288281c7,comdat
+.Ldebug_macro13:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa59 # At line number 2649
+ .long .LASF752 # The macro: "_GLIBCXX_PSEUDO_VISIBILITY(V) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa60 # At line number 2656
+ .long .LASF753 # The macro: "_GLIBCXX_WEAK_DEFINITION "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa68 # At line number 2664
+ .long .LASF754 # The macro: "_GLIBCXX_USE_WEAK_REF __GXX_WEAK__"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa75 # At line number 2677
+ .long .LASF755 # The macro: "_GLIBCXX_TXN_SAFE "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa76 # At line number 2678
+ .long .LASF756 # The macro: "_GLIBCXX_TXN_SAFE_DYN "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa7b # At line number 2683
+ .long .LASF757 # The macro: "_GLIBCXX_USE_STD_SPEC_FUNCS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa88 # At line number 2696
+ .long .LASF758 # The macro: "_GLIBCXX_FAST_MATH 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa8f # At line number 2703
+ .long .LASF759 # The macro: "__N(msgid) (msgid)"
+ .byte 0x2 # Undefine macro
+ .uleb128 0xa92 # At line number 2706
+ .ascii "min\0" # The macro
+ .byte 0x2 # Undefine macro
+ .uleb128 0xa93 # At line number 2707
+ .ascii "max\0" # The macro
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa99 # At line number 2713
+ .long .LASF760 # The macro: "_GLIBCXX_USE_C99_MATH _GLIBCXX11_USE_C99_MATH"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa9c # At line number 2716
+ .long .LASF761 # The macro: "_GLIBCXX_USE_C99_COMPLEX _GLIBCXX11_USE_C99_COMPLEX"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa9f # At line number 2719
+ .long .LASF762 # The macro: "_GLIBCXX_USE_C99_STDIO _GLIBCXX11_USE_C99_STDIO"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa2 # At line number 2722
+ .long .LASF763 # The macro: "_GLIBCXX_USE_C99_STDLIB _GLIBCXX11_USE_C99_STDLIB"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa5 # At line number 2725
+ .long .LASF764 # The macro: "_GLIBCXX_USE_C99_WCHAR _GLIBCXX11_USE_C99_WCHAR"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xac8 # At line number 2760
+ .long .LASF765 # The macro: "_GLIBCXX_USE_FLOAT128 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xad0 # At line number 2768
+ .long .LASF766 # The macro: "_GLIBCXX_FLOAT_IS_IEEE_BINARY32 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xad7 # At line number 2775
+ .long .LASF767 # The macro: "_GLIBCXX_DOUBLE_IS_IEEE_BINARY64 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xafc # At line number 2812
+ .long .LASF768 # The macro: "_GLIBCXX_HAS_BUILTIN(B) __has_builtin(B)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb01 # At line number 2817
+ .long .LASF769 # The macro: "_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb05 # At line number 2821
+ .long .LASF770 # The macro: "_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb09 # At line number 2825
+ .long .LASF771 # The macro: "_GLIBCXX_HAVE_BUILTIN_LAUNDER 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb11 # At line number 2833
+ .long .LASF772 # The macro: "_GLIBCXX_USE_BUILTIN_TRAIT(BT) _GLIBCXX_HAS_BUILTIN(BT)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb17 # At line number 2839
+ .long .LASF773 # The macro: "_GLIBCXX_DOXYGEN_ONLY(X) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb23 # At line number 2851
+ .long .LASF774 # The macro: "_GLIBCXX_USE_TBB_PAR_BACKEND __has_include(<tbb/tbb.h>)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb29 # At line number 2857
+ .long .LASF775 # The macro: "_PSTL_PAR_BACKEND_SERIAL "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb2c # At line number 2860
+ .long .LASF776 # The macro: "_PSTL_ASSERT(_Condition) __glibcxx_assert(_Condition)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb2d # At line number 2861
+ .long .LASF777 # The macro: "_PSTL_ASSERT_MSG(_Condition,_Message) __glibcxx_assert(_Condition)"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.pstl_config.h.11.cc2ab118dc65e0b245923f61105bc215,comdat
+.Ldebug_macro14:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb # At line number 11
+ .long .LASF778 # The macro: "_PSTL_CONFIG_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe # At line number 14
+ .long .LASF779 # The macro: "_PSTL_VERSION 17000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf # At line number 15
+ .long .LASF780 # The macro: "_PSTL_VERSION_MAJOR (_PSTL_VERSION / 1000)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10 # At line number 16
+ .long .LASF781 # The macro: "_PSTL_VERSION_MINOR ((_PSTL_VERSION % 1000) / 10)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11 # At line number 17
+ .long .LASF782 # The macro: "_PSTL_VERSION_PATCH (_PSTL_VERSION % 10)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1d # At line number 29
+ .long .LASF783 # The macro: "_PSTL_USAGE_WARNINGS 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24 # At line number 36
+ .long .LASF784 # The macro: "_PSTL_PRAGMA(x) _Pragma(#x)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27 # At line number 39
+ .long .LASF785 # The macro: "_PSTL_STRING_AUX(x) #x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF786 # The macro: "_PSTL_STRING(x) _PSTL_STRING_AUX(x)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29 # At line number 41
+ .long .LASF787 # The macro: "_PSTL_STRING_CONCAT(x,y) x #y"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x30 # At line number 48
+ .long .LASF788 # The macro: "_PSTL_HIDE_FROM_ABI_PUSH "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x31 # At line number 49
+ .long .LASF789 # The macro: "_PSTL_HIDE_FROM_ABI_POP "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x36 # At line number 54
+ .long .LASF790 # The macro: "_PSTL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x42 # At line number 66
+ .long .LASF791 # The macro: "_PSTL_PRAGMA_SIMD _PSTL_PRAGMA(omp simd)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x43 # At line number 67
+ .long .LASF792 # The macro: "_PSTL_PRAGMA_DECLARE_SIMD _PSTL_PRAGMA(omp declare simd)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x44 # At line number 68
+ .long .LASF793 # The macro: "_PSTL_PRAGMA_SIMD_REDUCTION(PRM) _PSTL_PRAGMA(omp simd reduction(PRM))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x52 # At line number 82
+ .long .LASF794 # The macro: "_PSTL_PRAGMA_FORCEINLINE "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x57 # At line number 87
+ .long .LASF795 # The macro: "_PSTL_PRAGMA_SIMD_SCAN(PRM) _PSTL_PRAGMA(omp simd reduction(inscan, PRM))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x58 # At line number 88
+ .long .LASF796 # The macro: "_PSTL_PRAGMA_SIMD_INCLUSIVE_SCAN(PRM) _PSTL_PRAGMA(omp scan inclusive(PRM))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x59 # At line number 89
+ .long .LASF797 # The macro: "_PSTL_PRAGMA_SIMD_EXCLUSIVE_SCAN(PRM) _PSTL_PRAGMA(omp scan exclusive(PRM))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x61 # At line number 97
+ .long .LASF798 # The macro: "_PSTL_CPP17_EXECUTION_POLICIES_PRESENT (_MSC_VER >= 1912 && _MSVC_LANG >= 201703L) || (_GLIBCXX_RELEASE >= 9 && __GLIBCXX__ >= 20190503 && __cplusplus >= 201703L)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x67 # At line number 103
+ .long .LASF799 # The macro: "_PSTL_CPP14_2RANGE_MISMATCH_EQUAL_PRESENT "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6c # At line number 108
+ .long .LASF800 # The macro: "_PSTL_CPP14_MAKE_REVERSE_ITERATOR_PRESENT "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6f # At line number 111
+ .long .LASF801 # The macro: "_PSTL_CPP14_INTEGER_SEQUENCE_PRESENT "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF802 # The macro: "_PSTL_CPP14_VARIABLE_TEMPLATES_PRESENT "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7f # At line number 127
+ .long .LASF803 # The macro: "_PSTL_UDR_PRESENT "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x84 # At line number 132
+ .long .LASF804 # The macro: "_PSTL_UDS_PRESENT "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8a # At line number 138
+ .long .LASF805 # The macro: "_PSTL_PRAGMA_SIMD_EARLYEXIT "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x91 # At line number 145
+ .long .LASF806 # The macro: "_PSTL_PRAGMA_SIMD_ORDERED_MONOTONIC(PRM) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x92 # At line number 146
+ .long .LASF807 # The macro: "_PSTL_PRAGMA_SIMD_ORDERED_MONOTONIC_2ARGS(PRM1,PRM2) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF808 # The macro: "_PSTL_PRAGMA_DECLARE_REDUCTION(NAME,OP) _PSTL_PRAGMA(omp declare reduction(NAME:OP : omp_out(omp_in)) initializer(omp_priv = omp_orig))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa2 # At line number 162
+ .long .LASF809 # The macro: "_PSTL_PRAGMA_VECTOR_UNALIGNED "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa9 # At line number 169
+ .long .LASF810 # The macro: "_PSTL_USE_NONTEMPORAL_STORES_IF_ALLOWED "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaf # At line number 175
+ .long .LASF811 # The macro: "_PSTL_PRAGMA_LOCATION " [Parallel STL message]: ""
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb2 # At line number 178
+ .long .LASF812 # The macro: "_PSTL_PRAGMA_MESSAGE_IMPL(x) _PSTL_PRAGMA(message(_PSTL_STRING_CONCAT(_PSTL_PRAGMA_LOCATION, x)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb8 # At line number 184
+ .long .LASF813 # The macro: "_PSTL_PRAGMA_MESSAGE(x) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb9 # At line number 185
+ .long .LASF814 # The macro: "_PSTL_PRAGMA_MESSAGE_POLICIES(x) "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.cconfig.h.2874.54f1071a8367a9bf141fad3e68fc75e0,comdat
+.Ldebug_macro15:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb3a # At line number 2874
+ .long .LASF815 # The macro: "_GLIBCXX_HAVE_ACOSF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb3d # At line number 2877
+ .long .LASF816 # The macro: "_GLIBCXX_HAVE_ACOSL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb40 # At line number 2880
+ .long .LASF817 # The macro: "_GLIBCXX_HAVE_ALIGNED_ALLOC 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb43 # At line number 2883
+ .long .LASF818 # The macro: "_GLIBCXX_HAVE_ARC4RANDOM 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb46 # At line number 2886
+ .long .LASF819 # The macro: "_GLIBCXX_HAVE_ARPA_INET_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb49 # At line number 2889
+ .long .LASF820 # The macro: "_GLIBCXX_HAVE_ASINF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4c # At line number 2892
+ .long .LASF821 # The macro: "_GLIBCXX_HAVE_ASINL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4f # At line number 2895
+ .long .LASF822 # The macro: "_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb52 # At line number 2898
+ .long .LASF823 # The macro: "_GLIBCXX_HAVE_ATAN2F 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb55 # At line number 2901
+ .long .LASF824 # The macro: "_GLIBCXX_HAVE_ATAN2L 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb58 # At line number 2904
+ .long .LASF825 # The macro: "_GLIBCXX_HAVE_ATANF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb5b # At line number 2907
+ .long .LASF826 # The macro: "_GLIBCXX_HAVE_ATANL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb5e # At line number 2910
+ .long .LASF827 # The macro: "_GLIBCXX_HAVE_ATOMIC_LOCK_POLICY 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb61 # At line number 2913
+ .long .LASF828 # The macro: "_GLIBCXX_HAVE_AT_QUICK_EXIT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb65 # At line number 2917
+ .long .LASF829 # The macro: "_GLIBCXX_HAVE_C99_FLT_EVAL_TYPES 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb6b # At line number 2923
+ .long .LASF830 # The macro: "_GLIBCXX_HAVE_CEILF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb6e # At line number 2926
+ .long .LASF831 # The macro: "_GLIBCXX_HAVE_CEILL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb71 # At line number 2929
+ .long .LASF832 # The macro: "_GLIBCXX_HAVE_COMPLEX_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb74 # At line number 2932
+ .long .LASF833 # The macro: "_GLIBCXX_HAVE_COSF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb77 # At line number 2935
+ .long .LASF834 # The macro: "_GLIBCXX_HAVE_COSHF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb7a # At line number 2938
+ .long .LASF835 # The macro: "_GLIBCXX_HAVE_COSHL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb7d # At line number 2941
+ .long .LASF836 # The macro: "_GLIBCXX_HAVE_COSL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb81 # At line number 2945
+ .long .LASF837 # The macro: "_GLIBCXX_HAVE_DECL_STRNLEN 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb84 # At line number 2948
+ .long .LASF838 # The macro: "_GLIBCXX_HAVE_DIRENT_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb87 # At line number 2951
+ .long .LASF839 # The macro: "_GLIBCXX_HAVE_DIRFD 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb8a # At line number 2954
+ .long .LASF840 # The macro: "_GLIBCXX_HAVE_DLFCN_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb8d # At line number 2957
+ .long .LASF841 # The macro: "_GLIBCXX_HAVE_ENDIAN_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb90 # At line number 2960
+ .long .LASF842 # The macro: "_GLIBCXX_HAVE_EXCEPTION_PTR_SINCE_GCC46 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb93 # At line number 2963
+ .long .LASF843 # The macro: "_GLIBCXX_HAVE_EXECINFO_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb96 # At line number 2966
+ .long .LASF844 # The macro: "_GLIBCXX_HAVE_EXPF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb99 # At line number 2969
+ .long .LASF845 # The macro: "_GLIBCXX_HAVE_EXPL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb9c # At line number 2972
+ .long .LASF846 # The macro: "_GLIBCXX_HAVE_FABSF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb9f # At line number 2975
+ .long .LASF847 # The macro: "_GLIBCXX_HAVE_FABSL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xba2 # At line number 2978
+ .long .LASF848 # The macro: "_GLIBCXX_HAVE_FCNTL_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xba5 # At line number 2981
+ .long .LASF849 # The macro: "_GLIBCXX_HAVE_FDOPENDIR 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xba8 # At line number 2984
+ .long .LASF850 # The macro: "_GLIBCXX_HAVE_FENV_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbab # At line number 2987
+ .long .LASF851 # The macro: "_GLIBCXX_HAVE_FINITE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbae # At line number 2990
+ .long .LASF852 # The macro: "_GLIBCXX_HAVE_FINITEF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbb1 # At line number 2993
+ .long .LASF853 # The macro: "_GLIBCXX_HAVE_FINITEL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbb4 # At line number 2996
+ .long .LASF854 # The macro: "_GLIBCXX_HAVE_FLOAT_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbb7 # At line number 2999
+ .long .LASF855 # The macro: "_GLIBCXX_HAVE_FLOORF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbba # At line number 3002
+ .long .LASF856 # The macro: "_GLIBCXX_HAVE_FLOORL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbbd # At line number 3005
+ .long .LASF857 # The macro: "_GLIBCXX_HAVE_FMODF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbc0 # At line number 3008
+ .long .LASF858 # The macro: "_GLIBCXX_HAVE_FMODL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbc9 # At line number 3017
+ .long .LASF859 # The macro: "_GLIBCXX_HAVE_FREXPF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbcc # At line number 3020
+ .long .LASF860 # The macro: "_GLIBCXX_HAVE_FREXPL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbcf # At line number 3023
+ .long .LASF861 # The macro: "_GLIBCXX_HAVE_GETENTROPY 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbd2 # At line number 3026
+ .long .LASF862 # The macro: "_GLIBCXX_HAVE_GETIPINFO 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbd5 # At line number 3029
+ .long .LASF863 # The macro: "_GLIBCXX_HAVE_GETS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbd8 # At line number 3032
+ .long .LASF864 # The macro: "_GLIBCXX_HAVE_HYPOT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbdb # At line number 3035
+ .long .LASF865 # The macro: "_GLIBCXX_HAVE_HYPOTF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbde # At line number 3038
+ .long .LASF866 # The macro: "_GLIBCXX_HAVE_HYPOTL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbe1 # At line number 3041
+ .long .LASF867 # The macro: "_GLIBCXX_HAVE_ICONV 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbe7 # At line number 3047
+ .long .LASF868 # The macro: "_GLIBCXX_HAVE_INTTYPES_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbed # At line number 3053
+ .long .LASF869 # The macro: "_GLIBCXX_HAVE_ISINFF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbf0 # At line number 3056
+ .long .LASF870 # The macro: "_GLIBCXX_HAVE_ISINFL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbf6 # At line number 3062
+ .long .LASF871 # The macro: "_GLIBCXX_HAVE_ISNANF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbf9 # At line number 3065
+ .long .LASF872 # The macro: "_GLIBCXX_HAVE_ISNANL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbfc # At line number 3068
+ .long .LASF873 # The macro: "_GLIBCXX_HAVE_ISWBLANK 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbff # At line number 3071
+ .long .LASF874 # The macro: "_GLIBCXX_HAVE_LC_MESSAGES 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc02 # At line number 3074
+ .long .LASF875 # The macro: "_GLIBCXX_HAVE_LDEXPF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc05 # At line number 3077
+ .long .LASF876 # The macro: "_GLIBCXX_HAVE_LDEXPL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc08 # At line number 3080
+ .long .LASF877 # The macro: "_GLIBCXX_HAVE_LIBINTL_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc0b # At line number 3083
+ .long .LASF878 # The macro: "_GLIBCXX_HAVE_LIMIT_AS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc0e # At line number 3086
+ .long .LASF879 # The macro: "_GLIBCXX_HAVE_LIMIT_DATA 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc11 # At line number 3089
+ .long .LASF880 # The macro: "_GLIBCXX_HAVE_LIMIT_FSIZE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc14 # At line number 3092
+ .long .LASF881 # The macro: "_GLIBCXX_HAVE_LIMIT_RSS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc17 # At line number 3095
+ .long .LASF882 # The macro: "_GLIBCXX_HAVE_LIMIT_VMEM 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc1a # At line number 3098
+ .long .LASF883 # The macro: "_GLIBCXX_HAVE_LINK 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc1d # At line number 3101
+ .long .LASF884 # The macro: "_GLIBCXX_HAVE_LINK_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc20 # At line number 3104
+ .long .LASF885 # The macro: "_GLIBCXX_HAVE_LINUX_FUTEX 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc23 # At line number 3107
+ .long .LASF886 # The macro: "_GLIBCXX_HAVE_LINUX_RANDOM_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc26 # At line number 3110
+ .long .LASF887 # The macro: "_GLIBCXX_HAVE_LINUX_TYPES_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc29 # At line number 3113
+ .long .LASF888 # The macro: "_GLIBCXX_HAVE_LOCALE_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc2c # At line number 3116
+ .long .LASF889 # The macro: "_GLIBCXX_HAVE_LOG10F 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc2f # At line number 3119
+ .long .LASF890 # The macro: "_GLIBCXX_HAVE_LOG10L 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc32 # At line number 3122
+ .long .LASF891 # The macro: "_GLIBCXX_HAVE_LOGF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc35 # At line number 3125
+ .long .LASF892 # The macro: "_GLIBCXX_HAVE_LOGL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc38 # At line number 3128
+ .long .LASF893 # The macro: "_GLIBCXX_HAVE_LSEEK 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc41 # At line number 3137
+ .long .LASF894 # The macro: "_GLIBCXX_HAVE_MBSTATE_T 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc44 # At line number 3140
+ .long .LASF895 # The macro: "_GLIBCXX_HAVE_MEMALIGN 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc47 # At line number 3143
+ .long .LASF896 # The macro: "_GLIBCXX_HAVE_MEMORY_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc4a # At line number 3146
+ .long .LASF897 # The macro: "_GLIBCXX_HAVE_MODF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc4d # At line number 3149
+ .long .LASF898 # The macro: "_GLIBCXX_HAVE_MODFF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc50 # At line number 3152
+ .long .LASF899 # The macro: "_GLIBCXX_HAVE_MODFL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc56 # At line number 3158
+ .long .LASF900 # The macro: "_GLIBCXX_HAVE_NETDB_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc59 # At line number 3161
+ .long .LASF901 # The macro: "_GLIBCXX_HAVE_NETINET_IN_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc5c # At line number 3164
+ .long .LASF902 # The macro: "_GLIBCXX_HAVE_NETINET_TCP_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc65 # At line number 3173
+ .long .LASF903 # The macro: "_GLIBCXX_HAVE_OPENAT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc68 # At line number 3176
+ .long .LASF904 # The macro: "_GLIBCXX_HAVE_O_NONBLOCK 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc6b # At line number 3179
+ .long .LASF905 # The macro: "_GLIBCXX_HAVE_POLL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc6e # At line number 3182
+ .long .LASF906 # The macro: "_GLIBCXX_HAVE_POLL_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc71 # At line number 3185
+ .long .LASF907 # The macro: "_GLIBCXX_HAVE_POSIX_MEMALIGN 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc75 # At line number 3189
+ .long .LASF908 # The macro: "_GLIBCXX_HAVE_POSIX_SEMAPHORE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc78 # At line number 3192
+ .long .LASF909 # The macro: "_GLIBCXX_HAVE_POWF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc7b # At line number 3195
+ .long .LASF910 # The macro: "_GLIBCXX_HAVE_POWL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc81 # At line number 3201
+ .long .LASF911 # The macro: "_GLIBCXX_HAVE_QUICK_EXIT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc84 # At line number 3204
+ .long .LASF912 # The macro: "_GLIBCXX_HAVE_READLINK 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc87 # At line number 3207
+ .long .LASF913 # The macro: "_GLIBCXX_HAVE_SECURE_GETENV 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc8a # At line number 3210
+ .long .LASF914 # The macro: "_GLIBCXX_HAVE_SETENV 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc8d # At line number 3213
+ .long .LASF915 # The macro: "_GLIBCXX_HAVE_SINCOS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc90 # At line number 3216
+ .long .LASF916 # The macro: "_GLIBCXX_HAVE_SINCOSF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc93 # At line number 3219
+ .long .LASF917 # The macro: "_GLIBCXX_HAVE_SINCOSL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc96 # At line number 3222
+ .long .LASF918 # The macro: "_GLIBCXX_HAVE_SINF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc99 # At line number 3225
+ .long .LASF919 # The macro: "_GLIBCXX_HAVE_SINHF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc9c # At line number 3228
+ .long .LASF920 # The macro: "_GLIBCXX_HAVE_SINHL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc9f # At line number 3231
+ .long .LASF921 # The macro: "_GLIBCXX_HAVE_SINL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xca5 # At line number 3237
+ .long .LASF922 # The macro: "_GLIBCXX_HAVE_SOCKATMARK 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xca8 # At line number 3240
+ .long .LASF923 # The macro: "_GLIBCXX_HAVE_SQRTF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcab # At line number 3243
+ .long .LASF924 # The macro: "_GLIBCXX_HAVE_SQRTL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcae # At line number 3246
+ .long .LASF925 # The macro: "_GLIBCXX_HAVE_STACKTRACE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcb1 # At line number 3249
+ .long .LASF926 # The macro: "_GLIBCXX_HAVE_STDALIGN_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcb4 # At line number 3252
+ .long .LASF927 # The macro: "_GLIBCXX_HAVE_STDBOOL_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcb7 # At line number 3255
+ .long .LASF928 # The macro: "_GLIBCXX_HAVE_STDINT_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcba # At line number 3258
+ .long .LASF929 # The macro: "_GLIBCXX_HAVE_STDLIB_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcbd # At line number 3261
+ .long .LASF930 # The macro: "_GLIBCXX_HAVE_STRERROR_L 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcc0 # At line number 3264
+ .long .LASF931 # The macro: "_GLIBCXX_HAVE_STRERROR_R 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcc3 # At line number 3267
+ .long .LASF932 # The macro: "_GLIBCXX_HAVE_STRINGS_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcc6 # At line number 3270
+ .long .LASF933 # The macro: "_GLIBCXX_HAVE_STRING_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcc9 # At line number 3273
+ .long .LASF934 # The macro: "_GLIBCXX_HAVE_STRTOF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xccc # At line number 3276
+ .long .LASF935 # The macro: "_GLIBCXX_HAVE_STRTOLD 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xccf # At line number 3279
+ .long .LASF936 # The macro: "_GLIBCXX_HAVE_STRUCT_DIRENT_D_TYPE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcd2 # At line number 3282
+ .long .LASF937 # The macro: "_GLIBCXX_HAVE_STRXFRM_L 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcd5 # At line number 3285
+ .long .LASF938 # The macro: "_GLIBCXX_HAVE_SYMLINK 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcd9 # At line number 3289
+ .long .LASF939 # The macro: "_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcdf # At line number 3295
+ .long .LASF940 # The macro: "_GLIBCXX_HAVE_SYS_IOCTL_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xce2 # At line number 3298
+ .long .LASF941 # The macro: "_GLIBCXX_HAVE_SYS_IPC_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xceb # At line number 3307
+ .long .LASF942 # The macro: "_GLIBCXX_HAVE_SYS_MMAN_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcee # At line number 3310
+ .long .LASF943 # The macro: "_GLIBCXX_HAVE_SYS_PARAM_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcf1 # At line number 3313
+ .long .LASF944 # The macro: "_GLIBCXX_HAVE_SYS_RESOURCE_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcf4 # At line number 3316
+ .long .LASF945 # The macro: "_GLIBCXX_HAVE_SYS_SDT_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcf7 # At line number 3319
+ .long .LASF946 # The macro: "_GLIBCXX_HAVE_SYS_SEM_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcfa # At line number 3322
+ .long .LASF947 # The macro: "_GLIBCXX_HAVE_SYS_SOCKET_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcfd # At line number 3325
+ .long .LASF948 # The macro: "_GLIBCXX_HAVE_SYS_STATVFS_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd00 # At line number 3328
+ .long .LASF949 # The macro: "_GLIBCXX_HAVE_SYS_STAT_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd03 # At line number 3331
+ .long .LASF950 # The macro: "_GLIBCXX_HAVE_SYS_SYSINFO_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd06 # At line number 3334
+ .long .LASF951 # The macro: "_GLIBCXX_HAVE_SYS_TIME_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd09 # At line number 3337
+ .long .LASF952 # The macro: "_GLIBCXX_HAVE_SYS_TYPES_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd0c # At line number 3340
+ .long .LASF953 # The macro: "_GLIBCXX_HAVE_SYS_UIO_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd12 # At line number 3346
+ .long .LASF954 # The macro: "_GLIBCXX_HAVE_S_ISREG 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd15 # At line number 3349
+ .long .LASF955 # The macro: "_GLIBCXX_HAVE_TANF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd18 # At line number 3352
+ .long .LASF956 # The macro: "_GLIBCXX_HAVE_TANHF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd1b # At line number 3355
+ .long .LASF957 # The macro: "_GLIBCXX_HAVE_TANHL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd1e # At line number 3358
+ .long .LASF958 # The macro: "_GLIBCXX_HAVE_TANL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd21 # At line number 3361
+ .long .LASF959 # The macro: "_GLIBCXX_HAVE_TGMATH_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd24 # At line number 3364
+ .long .LASF960 # The macro: "_GLIBCXX_HAVE_TIMESPEC_GET 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2a # At line number 3370
+ .long .LASF961 # The macro: "_GLIBCXX_HAVE_TLS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2d # At line number 3373
+ .long .LASF962 # The macro: "_GLIBCXX_HAVE_TRUNCATE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd30 # At line number 3376
+ .long .LASF963 # The macro: "_GLIBCXX_HAVE_UCHAR_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd33 # At line number 3379
+ .long .LASF964 # The macro: "_GLIBCXX_HAVE_UNISTD_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd36 # At line number 3382
+ .long .LASF965 # The macro: "_GLIBCXX_HAVE_UNLINKAT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd39 # At line number 3385
+ .long .LASF966 # The macro: "_GLIBCXX_HAVE_USELOCALE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd3f # At line number 3391
+ .long .LASF967 # The macro: "_GLIBCXX_HAVE_UTIME_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd42 # At line number 3394
+ .long .LASF968 # The macro: "_GLIBCXX_HAVE_VFWSCANF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd45 # At line number 3397
+ .long .LASF969 # The macro: "_GLIBCXX_HAVE_VSWSCANF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd48 # At line number 3400
+ .long .LASF970 # The macro: "_GLIBCXX_HAVE_VWSCANF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd4b # At line number 3403
+ .long .LASF971 # The macro: "_GLIBCXX_HAVE_WCHAR_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd4e # At line number 3406
+ .long .LASF972 # The macro: "_GLIBCXX_HAVE_WCSTOF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd51 # At line number 3409
+ .long .LASF973 # The macro: "_GLIBCXX_HAVE_WCTYPE_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd57 # At line number 3415
+ .long .LASF974 # The macro: "_GLIBCXX_HAVE_WRITEV 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd66 # At line number 3430
+ .long .LASF975 # The macro: "_GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd69 # At line number 3433
+ .long .LASF976 # The macro: "_GLIBCXX_ICONV_CONST "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd6d # At line number 3437
+ .long .LASF977 # The macro: "_GLIBCXX_LT_OBJDIR ".libs/""
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd73 # At line number 3443
+ .long .LASF978 # The macro: "_GLIBCXX_PACKAGE_BUGREPORT """
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd76 # At line number 3446
+ .long .LASF979 # The macro: "_GLIBCXX_PACKAGE_NAME "package-unused""
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd79 # At line number 3449
+ .long .LASF980 # The macro: "_GLIBCXX_PACKAGE_STRING "package-unused version-unused""
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd7c # At line number 3452
+ .long .LASF981 # The macro: "_GLIBCXX_PACKAGE_TARNAME "libstdc++""
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd7f # At line number 3455
+ .long .LASF982 # The macro: "_GLIBCXX_PACKAGE_URL """
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd82 # At line number 3458
+ .long .LASF983 # The macro: "_GLIBCXX_PACKAGE__GLIBCXX_VERSION "version-unused""
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd85 # At line number 3461
+ .long .LASF984 # The macro: "_GLIBCXX_STDC_HEADERS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd8c # At line number 3468
+ .long .LASF985 # The macro: "_GLIBCXX_DARWIN_USE_64_BIT_INODE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd95 # At line number 3477
+ .long .LASF986 # The macro: "_GLIBCXX11_USE_C99_COMPLEX 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd99 # At line number 3481
+ .long .LASF987 # The macro: "_GLIBCXX11_USE_C99_MATH 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd9d # At line number 3485
+ .long .LASF988 # The macro: "_GLIBCXX11_USE_C99_STDIO 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xda1 # At line number 3489
+ .long .LASF989 # The macro: "_GLIBCXX11_USE_C99_STDLIB 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xda5 # At line number 3493
+ .long .LASF990 # The macro: "_GLIBCXX11_USE_C99_WCHAR 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdaa # At line number 3498
+ .long .LASF991 # The macro: "_GLIBCXX98_USE_C99_COMPLEX 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdae # At line number 3502
+ .long .LASF992 # The macro: "_GLIBCXX98_USE_C99_MATH 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdb2 # At line number 3506
+ .long .LASF993 # The macro: "_GLIBCXX98_USE_C99_STDIO 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdb6 # At line number 3510
+ .long .LASF994 # The macro: "_GLIBCXX98_USE_C99_STDLIB 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdba # At line number 3514
+ .long .LASF995 # The macro: "_GLIBCXX98_USE_C99_WCHAR 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdbd # At line number 3517
+ .long .LASF996 # The macro: "_GLIBCXX_ATOMIC_BUILTINS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc1 # At line number 3521
+ .long .LASF997 # The macro: "_GLIBCXX_CAN_ALIGNAS_DESTRUCTIVE_SIZE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc8 # At line number 3528
+ .long .LASF998 # The macro: "_GLIBCXX_FULLY_DYNAMIC_STRING 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdcb # At line number 3531
+ .long .LASF999 # The macro: "_GLIBCXX_HAS_GTHREADS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdce # At line number 3534
+ .long .LASF1000 # The macro: "_GLIBCXX_HOSTED __STDC_HOSTED__"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdd6 # At line number 3542
+ .long .LASF1001 # The macro: "_GLIBCXX_MANGLE_SIZE_T m"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xde2 # At line number 3554
+ .long .LASF1002 # The macro: "_GLIBCXX_RES_LIMITS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdeb # At line number 3563
+ .long .LASF1003 # The macro: "_GLIBCXX_STDIO_EOF -1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdee # At line number 3566
+ .long .LASF1004 # The macro: "_GLIBCXX_STDIO_SEEK_CUR 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdf1 # At line number 3569
+ .long .LASF1005 # The macro: "_GLIBCXX_STDIO_SEEK_END 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdf4 # At line number 3572
+ .long .LASF1006 # The macro: "_GLIBCXX_SYMVER 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdfa # At line number 3578
+ .long .LASF1007 # The macro: "_GLIBCXX_SYMVER_GNU 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe04 # At line number 3588
+ .long .LASF1008 # The macro: "_GLIBCXX_USE_C11_UCHAR_CXX11 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe08 # At line number 3592
+ .long .LASF1009 # The macro: "_GLIBCXX_USE_C99 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe0d # At line number 3597
+ .long .LASF1010 # The macro: "_GLIBCXX_USE_C99_COMPLEX_ARC 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe12 # At line number 3602
+ .long .LASF1011 # The macro: "_GLIBCXX_USE_C99_COMPLEX_TR1 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe16 # At line number 3606
+ .long .LASF1012 # The macro: "_GLIBCXX_USE_C99_CTYPE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe1a # At line number 3610
+ .long .LASF1013 # The macro: "_GLIBCXX_USE_C99_CTYPE_TR1 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe1e # At line number 3614
+ .long .LASF1014 # The macro: "_GLIBCXX_USE_C99_FENV 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe22 # At line number 3618
+ .long .LASF1015 # The macro: "_GLIBCXX_USE_C99_FENV_TR1 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe26 # At line number 3622
+ .long .LASF1016 # The macro: "_GLIBCXX_USE_C99_INTTYPES 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe2a # At line number 3626
+ .long .LASF1017 # The macro: "_GLIBCXX_USE_C99_INTTYPES_TR1 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe2e # At line number 3630
+ .long .LASF1018 # The macro: "_GLIBCXX_USE_C99_INTTYPES_WCHAR_T 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe32 # At line number 3634
+ .long .LASF1019 # The macro: "_GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe36 # At line number 3638
+ .long .LASF1020 # The macro: "_GLIBCXX_USE_C99_MATH_FUNCS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe3a # At line number 3642
+ .long .LASF1021 # The macro: "_GLIBCXX_USE_C99_MATH_TR1 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe3e # At line number 3646
+ .long .LASF1022 # The macro: "_GLIBCXX_USE_C99_STDINT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe42 # At line number 3650
+ .long .LASF1023 # The macro: "_GLIBCXX_USE_C99_STDINT_TR1 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe45 # At line number 3653
+ .long .LASF1024 # The macro: "_GLIBCXX_USE_CHDIR 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe48 # At line number 3656
+ .long .LASF1025 # The macro: "_GLIBCXX_USE_CHMOD 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe4f # At line number 3663
+ .long .LASF1026 # The macro: "_GLIBCXX_USE_CLOCK_MONOTONIC 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe52 # At line number 3666
+ .long .LASF1027 # The macro: "_GLIBCXX_USE_CLOCK_REALTIME 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe59 # At line number 3673
+ .long .LASF1028 # The macro: "_GLIBCXX_USE_DECIMAL_FLOAT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe5d # At line number 3677
+ .long .LASF1029 # The macro: "_GLIBCXX_USE_DEV_RANDOM 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe60 # At line number 3680
+ .long .LASF1030 # The macro: "_GLIBCXX_USE_FCHMOD 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe63 # At line number 3683
+ .long .LASF1031 # The macro: "_GLIBCXX_USE_FCHMODAT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe66 # At line number 3686
+ .long .LASF1032 # The macro: "_GLIBCXX_USE_FSEEKO_FTELLO 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe69 # At line number 3689
+ .long .LASF1033 # The macro: "_GLIBCXX_USE_GETCWD 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe6c # At line number 3692
+ .long .LASF1034 # The macro: "_GLIBCXX_USE_GETTIMEOFDAY 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe6f # At line number 3695
+ .long .LASF1035 # The macro: "_GLIBCXX_USE_GET_NPROCS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe72 # At line number 3698
+ .long .LASF1036 # The macro: "_GLIBCXX_USE_INIT_PRIORITY_ATTRIBUTE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe75 # At line number 3701
+ .long .LASF1037 # The macro: "_GLIBCXX_USE_LFS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe78 # At line number 3704
+ .long .LASF1038 # The macro: "_GLIBCXX_USE_LONG_LONG 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe7b # At line number 3707
+ .long .LASF1039 # The macro: "_GLIBCXX_USE_LSTAT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe7e # At line number 3710
+ .long .LASF1040 # The macro: "_GLIBCXX_USE_MKDIR 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe81 # At line number 3713
+ .long .LASF1041 # The macro: "_GLIBCXX_USE_NANOSLEEP 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe84 # At line number 3716
+ .long .LASF1042 # The macro: "_GLIBCXX_USE_NLS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe87 # At line number 3719
+ .long .LASF1043 # The macro: "_GLIBCXX_USE_NL_LANGINFO_L 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe8d # At line number 3725
+ .long .LASF1044 # The macro: "_GLIBCXX_USE_PTHREAD_COND_CLOCKWAIT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe90 # At line number 3728
+ .long .LASF1045 # The macro: "_GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK (_GLIBCXX_TSAN==0)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe94 # At line number 3732
+ .long .LASF1046 # The macro: "_GLIBCXX_USE_PTHREAD_RWLOCK_CLOCKLOCK 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe97 # At line number 3735
+ .long .LASF1047 # The macro: "_GLIBCXX_USE_PTHREAD_RWLOCK_T 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe9b # At line number 3739
+ .long .LASF1048 # The macro: "_GLIBCXX_USE_RANDOM_TR1 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe9e # At line number 3742
+ .long .LASF1049 # The macro: "_GLIBCXX_USE_REALPATH 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xea1 # At line number 3745
+ .long .LASF1050 # The macro: "_GLIBCXX_USE_SCHED_YIELD 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xea4 # At line number 3748
+ .long .LASF1051 # The macro: "_GLIBCXX_USE_SC_NPROCESSORS_ONLN 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xeaa # At line number 3754
+ .long .LASF1052 # The macro: "_GLIBCXX_USE_SENDFILE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xeb0 # At line number 3760
+ .long .LASF1053 # The macro: "_GLIBCXX_USE_STRUCT_TM_TM_ZONE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xeb3 # At line number 3763
+ .long .LASF1054 # The macro: "_GLIBCXX_USE_ST_MTIM 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xeb9 # At line number 3769
+ .long .LASF1055 # The macro: "_GLIBCXX_USE_TMPNAM 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xebd # At line number 3773
+ .long .LASF1056 # The macro: "_GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_CXX20 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xec1 # At line number 3777
+ .long .LASF1057 # The macro: "_GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_FCHAR8_T 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xec4 # At line number 3780
+ .long .LASF1058 # The macro: "_GLIBCXX_USE_UTIME 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xec8 # At line number 3784
+ .long .LASF1059 # The macro: "_GLIBCXX_USE_UTIMENSAT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xecb # At line number 3787
+ .long .LASF1060 # The macro: "_GLIBCXX_USE_WCHAR_T 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xed4 # At line number 3796
+ .long .LASF1061 # The macro: "_GLIBCXX_VERBOSE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xed7 # At line number 3799
+ .long .LASF1062 # The macro: "_GLIBCXX_X86_RDRAND 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xeda # At line number 3802
+ .long .LASF1063 # The macro: "_GLIBCXX_X86_RDSEED 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xedd # At line number 3805
+ .long .LASF1064 # The macro: "_GLIBCXX_ZONEINFO_DIR "/usr/share/zoneinfo""
+ .byte 0x5 # Define macro strp
+ .uleb128 0xee0 # At line number 3808
+ .long .LASF1065 # The macro: "_GTHREAD_USE_MUTEX_TIMEDLOCK 1"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.new.45.14daa5310e6c27c6800c0ff00fae2903,comdat
+.Ldebug_macro16:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d # At line number 45
+ .long .LASF1071 # The macro: "__glibcxx_want_launder "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e # At line number 46
+ .long .LASF1072 # The macro: "__glibcxx_want_hardware_interference_size "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f # At line number 47
+ .long .LASF1073 # The macro: "__glibcxx_want_destroying_delete "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x30 # At line number 48
+ .long .LASF1074 # The macro: "__glibcxx_want_constexpr_new "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.version.h.55.0b9e7054804f0f6f91d57c80dd7f547b,comdat
+.Ldebug_macro17:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1075 # The macro: "__glibcxx_incomplete_container_elements 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1076 # The macro: "__glibcxx_want_incomplete_container_elements"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1077 # The macro: "__glibcxx_uncaught_exceptions 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1078 # The macro: "__glibcxx_want_uncaught_exceptions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1079 # The macro: "__glibcxx_allocator_traits_is_always_equal 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1080 # The macro: "__glibcxx_want_allocator_traits_is_always_equal"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x55 # At line number 85
+ .long .LASF1081 # The macro: "__glibcxx_is_null_pointer 201309L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1082 # The macro: "__glibcxx_want_is_null_pointer"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5f # At line number 95
+ .long .LASF1083 # The macro: "__glibcxx_result_of_sfinae 201210L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1084 # The macro: "__glibcxx_want_result_of_sfinae"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1085 # The macro: "__glibcxx_shared_ptr_arrays 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1086 # The macro: "__glibcxx_want_shared_ptr_arrays"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x78 # At line number 120
+ .long .LASF1087 # The macro: "__glibcxx_is_swappable 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF1088 # The macro: "__glibcxx_want_is_swappable"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x82 # At line number 130
+ .long .LASF1089 # The macro: "__glibcxx_void_t 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x88 # At line number 136
+ .long .LASF1090 # The macro: "__glibcxx_want_void_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8c # At line number 140
+ .long .LASF1091 # The macro: "__glibcxx_enable_shared_from_this 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x92 # At line number 146
+ .long .LASF1092 # The macro: "__glibcxx_want_enable_shared_from_this"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x96 # At line number 150
+ .long .LASF1093 # The macro: "__glibcxx_math_spec_funcs 201003L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF1094 # The macro: "__glibcxx_want_math_spec_funcs"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xa6 # At line number 166
+ .long .LASF1095 # The macro: "__glibcxx_want_coroutine"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa # At line number 170
+ .long .LASF1096 # The macro: "__glibcxx_exchange_function 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb0 # At line number 176
+ .long .LASF1097 # The macro: "__glibcxx_want_exchange_function"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4 # At line number 180
+ .long .LASF1098 # The macro: "__glibcxx_integer_sequence 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xba # At line number 186
+ .long .LASF1099 # The macro: "__glibcxx_want_integer_sequence"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbe # At line number 190
+ .long .LASF1100 # The macro: "__glibcxx_integral_constant_callable 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xc4 # At line number 196
+ .long .LASF1101 # The macro: "__glibcxx_want_integral_constant_callable"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc8 # At line number 200
+ .long .LASF1102 # The macro: "__glibcxx_is_final 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xce # At line number 206
+ .long .LASF1103 # The macro: "__glibcxx_want_is_final"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2 # At line number 210
+ .long .LASF1104 # The macro: "__glibcxx_make_reverse_iterator 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd8 # At line number 216
+ .long .LASF1105 # The macro: "__glibcxx_want_make_reverse_iterator"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc # At line number 220
+ .long .LASF1106 # The macro: "__glibcxx_null_iterators 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe2 # At line number 226
+ .long .LASF1107 # The macro: "__glibcxx_want_null_iterators"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe6 # At line number 230
+ .long .LASF1108 # The macro: "__glibcxx_transformation_trait_aliases 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xec # At line number 236
+ .long .LASF1109 # The macro: "__glibcxx_want_transformation_trait_aliases"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf0 # At line number 240
+ .long .LASF1110 # The macro: "__glibcxx_transparent_operators 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf6 # At line number 246
+ .long .LASF1111 # The macro: "__glibcxx_want_transparent_operators"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xfa # At line number 250
+ .long .LASF1112 # The macro: "__glibcxx_tuple_element_t 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x100 # At line number 256
+ .long .LASF1113 # The macro: "__glibcxx_want_tuple_element_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x104 # At line number 260
+ .long .LASF1114 # The macro: "__glibcxx_tuples_by_type 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x10a # At line number 266
+ .long .LASF1115 # The macro: "__glibcxx_want_tuples_by_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10e # At line number 270
+ .long .LASF1116 # The macro: "__glibcxx_robust_nonmodifying_seq_ops 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x114 # At line number 276
+ .long .LASF1117 # The macro: "__glibcxx_want_robust_nonmodifying_seq_ops"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11d # At line number 285
+ .long .LASF1118 # The macro: "__glibcxx_to_chars 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x123 # At line number 291
+ .long .LASF1119 # The macro: "__glibcxx_want_to_chars"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x127 # At line number 295
+ .long .LASF1120 # The macro: "__glibcxx_chrono_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x12d # At line number 301
+ .long .LASF1121 # The macro: "__glibcxx_want_chrono_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x131 # At line number 305
+ .long .LASF1122 # The macro: "__glibcxx_complex_udls 201309L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x137 # At line number 311
+ .long .LASF1123 # The macro: "__glibcxx_want_complex_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13b # At line number 315
+ .long .LASF1124 # The macro: "__glibcxx_generic_associative_lookup 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x141 # At line number 321
+ .long .LASF1125 # The macro: "__glibcxx_want_generic_associative_lookup"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x145 # At line number 325
+ .long .LASF1126 # The macro: "__glibcxx_make_unique 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x14b # At line number 331
+ .long .LASF1127 # The macro: "__glibcxx_want_make_unique"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14f # At line number 335
+ .long .LASF1128 # The macro: "__glibcxx_quoted_string_io 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x155 # At line number 341
+ .long .LASF1129 # The macro: "__glibcxx_want_quoted_string_io"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x159 # At line number 345
+ .long .LASF1130 # The macro: "__glibcxx_shared_timed_mutex 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x15f # At line number 351
+ .long .LASF1131 # The macro: "__glibcxx_want_shared_timed_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x163 # At line number 355
+ .long .LASF1132 # The macro: "__glibcxx_string_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x169 # At line number 361
+ .long .LASF1133 # The macro: "__glibcxx_want_string_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16d # At line number 365
+ .long .LASF1134 # The macro: "__glibcxx_addressof_constexpr 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x173 # At line number 371
+ .long .LASF1135 # The macro: "__glibcxx_want_addressof_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x177 # At line number 375
+ .long .LASF1136 # The macro: "__glibcxx_any 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x17d # At line number 381
+ .long .LASF1137 # The macro: "__glibcxx_want_any"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x181 # At line number 385
+ .long .LASF1138 # The macro: "__glibcxx_apply 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x187 # At line number 391
+ .long .LASF1139 # The macro: "__glibcxx_want_apply"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18b # At line number 395
+ .long .LASF1140 # The macro: "__glibcxx_as_const 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x191 # At line number 401
+ .long .LASF1141 # The macro: "__glibcxx_want_as_const"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x195 # At line number 405
+ .long .LASF1142 # The macro: "__glibcxx_atomic_is_always_lock_free 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19b # At line number 411
+ .long .LASF1143 # The macro: "__glibcxx_want_atomic_is_always_lock_free"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x19f # At line number 415
+ .long .LASF1144 # The macro: "__glibcxx_bool_constant 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a5 # At line number 421
+ .long .LASF1145 # The macro: "__glibcxx_want_bool_constant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1146 # The macro: "__glibcxx_byte 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1af # At line number 431
+ .long .LASF1147 # The macro: "__glibcxx_want_byte"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1b3 # At line number 435
+ .long .LASF1148 # The macro: "__glibcxx_has_unique_object_representations 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1b9 # At line number 441
+ .long .LASF1149 # The macro: "__glibcxx_want_has_unique_object_representations"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1bd # At line number 445
+ .long .LASF1150 # The macro: "__glibcxx_hardware_interference_size 201703L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1bf # At line number 447
+ .long .LASF1151 # The macro: "__cpp_lib_hardware_interference_size 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1c3 # At line number 451
+ .long .LASF1152 # The macro: "__glibcxx_want_hardware_interference_size"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c7 # At line number 455
+ .long .LASF1153 # The macro: "__glibcxx_invoke 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1cd # At line number 461
+ .long .LASF1154 # The macro: "__glibcxx_want_invoke"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1d1 # At line number 465
+ .long .LASF1155 # The macro: "__glibcxx_is_aggregate 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1d7 # At line number 471
+ .long .LASF1156 # The macro: "__glibcxx_want_is_aggregate"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1db # At line number 475
+ .long .LASF1157 # The macro: "__glibcxx_is_invocable 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1e1 # At line number 481
+ .long .LASF1158 # The macro: "__glibcxx_want_is_invocable"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e5 # At line number 485
+ .long .LASF1159 # The macro: "__glibcxx_launder 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e7 # At line number 487
+ .long .LASF1160 # The macro: "__cpp_lib_launder 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1eb # At line number 491
+ .long .LASF1161 # The macro: "__glibcxx_want_launder"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1ef # At line number 495
+ .long .LASF1162 # The macro: "__glibcxx_logical_traits 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1f5 # At line number 501
+ .long .LASF1163 # The macro: "__glibcxx_want_logical_traits"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f9 # At line number 505
+ .long .LASF1164 # The macro: "__glibcxx_make_from_tuple 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1ff # At line number 511
+ .long .LASF1165 # The macro: "__glibcxx_want_make_from_tuple"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x203 # At line number 515
+ .long .LASF1166 # The macro: "__glibcxx_not_fn 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x209 # At line number 521
+ .long .LASF1167 # The macro: "__glibcxx_want_not_fn"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20d # At line number 525
+ .long .LASF1168 # The macro: "__glibcxx_type_trait_variable_templates 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x213 # At line number 531
+ .long .LASF1169 # The macro: "__glibcxx_want_type_trait_variable_templates"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x221 # At line number 545
+ .long .LASF1170 # The macro: "__glibcxx_variant 202102L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x227 # At line number 551
+ .long .LASF1171 # The macro: "__glibcxx_want_variant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22b # At line number 555
+ .long .LASF1172 # The macro: "__glibcxx_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x231 # At line number 561
+ .long .LASF1173 # The macro: "__glibcxx_want_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x235 # At line number 565
+ .long .LASF1174 # The macro: "__glibcxx_gcd 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x23b # At line number 571
+ .long .LASF1175 # The macro: "__glibcxx_want_gcd"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23f # At line number 575
+ .long .LASF1176 # The macro: "__glibcxx_gcd_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x245 # At line number 581
+ .long .LASF1177 # The macro: "__glibcxx_want_gcd_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24e # At line number 590
+ .long .LASF1178 # The macro: "__glibcxx_raw_memory_algorithms 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x254 # At line number 596
+ .long .LASF1179 # The macro: "__glibcxx_want_raw_memory_algorithms"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25d # At line number 605
+ .long .LASF1180 # The macro: "__glibcxx_array_constexpr 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x263 # At line number 611
+ .long .LASF1181 # The macro: "__glibcxx_want_array_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x267 # At line number 615
+ .long .LASF1182 # The macro: "__glibcxx_nonmember_container_access 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x26d # At line number 621
+ .long .LASF1183 # The macro: "__glibcxx_want_nonmember_container_access"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x271 # At line number 625
+ .long .LASF1184 # The macro: "__glibcxx_clamp 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x277 # At line number 631
+ .long .LASF1185 # The macro: "__glibcxx_want_clamp"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27b # At line number 635
+ .long .LASF1186 # The macro: "__glibcxx_sample 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x281 # At line number 641
+ .long .LASF1187 # The macro: "__glibcxx_want_sample"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x285 # At line number 645
+ .long .LASF1188 # The macro: "__glibcxx_boyer_moore_searcher 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x28b # At line number 651
+ .long .LASF1189 # The macro: "__glibcxx_want_boyer_moore_searcher"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x294 # At line number 660
+ .long .LASF1190 # The macro: "__glibcxx_chrono 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x29a # At line number 666
+ .long .LASF1191 # The macro: "__glibcxx_want_chrono"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29e # At line number 670
+ .long .LASF1192 # The macro: "__glibcxx_execution 201902L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2a4 # At line number 676
+ .long .LASF1193 # The macro: "__glibcxx_want_execution"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a8 # At line number 680
+ .long .LASF1194 # The macro: "__glibcxx_filesystem 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ae # At line number 686
+ .long .LASF1195 # The macro: "__glibcxx_want_filesystem"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b2 # At line number 690
+ .long .LASF1196 # The macro: "__glibcxx_hypot 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2b8 # At line number 696
+ .long .LASF1197 # The macro: "__glibcxx_want_hypot"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2bc # At line number 700
+ .long .LASF1198 # The macro: "__glibcxx_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2c2 # At line number 706
+ .long .LASF1199 # The macro: "__glibcxx_want_map_try_emplace"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c6 # At line number 710
+ .long .LASF1200 # The macro: "__glibcxx_math_special_functions 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2cc # At line number 716
+ .long .LASF1201 # The macro: "__glibcxx_want_math_special_functions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d0 # At line number 720
+ .long .LASF1202 # The macro: "__glibcxx_memory_resource 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2db # At line number 731
+ .long .LASF1203 # The macro: "__glibcxx_want_memory_resource"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2df # At line number 735
+ .long .LASF1204 # The macro: "__glibcxx_node_extract 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2e5 # At line number 741
+ .long .LASF1205 # The macro: "__glibcxx_want_node_extract"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e9 # At line number 745
+ .long .LASF1206 # The macro: "__glibcxx_parallel_algorithm 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ef # At line number 751
+ .long .LASF1207 # The macro: "__glibcxx_want_parallel_algorithm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f3 # At line number 755
+ .long .LASF1208 # The macro: "__glibcxx_scoped_lock 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2f9 # At line number 761
+ .long .LASF1209 # The macro: "__glibcxx_want_scoped_lock"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2fd # At line number 765
+ .long .LASF1210 # The macro: "__glibcxx_shared_mutex 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x303 # At line number 771
+ .long .LASF1211 # The macro: "__glibcxx_want_shared_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x307 # At line number 775
+ .long .LASF1212 # The macro: "__glibcxx_shared_ptr_weak_type 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x30d # At line number 781
+ .long .LASF1213 # The macro: "__glibcxx_want_shared_ptr_weak_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x316 # At line number 790
+ .long .LASF1214 # The macro: "__glibcxx_string_view 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x31c # At line number 796
+ .long .LASF1215 # The macro: "__glibcxx_want_string_view"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x320 # At line number 800
+ .long .LASF1216 # The macro: "__glibcxx_unordered_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x326 # At line number 806
+ .long .LASF1217 # The macro: "__glibcxx_want_unordered_map_try_emplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x330 # At line number 816
+ .long .LASF1218 # The macro: "__glibcxx_want_assume_aligned"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x33a # At line number 826
+ .long .LASF1219 # The macro: "__glibcxx_want_atomic_flag_test"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x344 # At line number 836
+ .long .LASF1220 # The macro: "__glibcxx_want_atomic_float"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x34e # At line number 846
+ .long .LASF1221 # The macro: "__glibcxx_want_atomic_lock_free_type_aliases"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x358 # At line number 856
+ .long .LASF1222 # The macro: "__glibcxx_want_atomic_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x362 # At line number 866
+ .long .LASF1223 # The macro: "__glibcxx_want_atomic_value_initialization"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x36c # At line number 876
+ .long .LASF1224 # The macro: "__glibcxx_want_bind_front"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x376 # At line number 886
+ .long .LASF1225 # The macro: "__glibcxx_want_bind_back"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x380 # At line number 896
+ .long .LASF1226 # The macro: "__glibcxx_want_starts_ends_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x38a # At line number 906
+ .long .LASF1227 # The macro: "__glibcxx_want_bit_cast"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x394 # At line number 916
+ .long .LASF1228 # The macro: "__glibcxx_want_bitops"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x39e # At line number 926
+ .long .LASF1229 # The macro: "__glibcxx_want_bounded_array_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3a8 # At line number 936
+ .long .LASF1230 # The macro: "__glibcxx_want_concepts"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b6 # At line number 950
+ .long .LASF1231 # The macro: "__glibcxx_optional 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3bc # At line number 956
+ .long .LASF1232 # The macro: "__glibcxx_want_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3c6 # At line number 966
+ .long .LASF1233 # The macro: "__glibcxx_want_destroying_delete"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d0 # At line number 976
+ .long .LASF1234 # The macro: "__glibcxx_want_constexpr_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3da # At line number 986
+ .long .LASF1235 # The macro: "__glibcxx_want_endian"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3e4 # At line number 996
+ .long .LASF1236 # The macro: "__glibcxx_want_int_pow2"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3ee # At line number 1006
+ .long .LASF1237 # The macro: "__glibcxx_want_integer_comparison_functions"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3f8 # At line number 1016
+ .long .LASF1238 # The macro: "__glibcxx_want_is_constant_evaluated"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x401 # At line number 1025
+ .long .LASF1239 # The macro: "__glibcxx_constexpr_char_traits 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x407 # At line number 1031
+ .long .LASF1240 # The macro: "__glibcxx_want_constexpr_char_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x411 # At line number 1041
+ .long .LASF1241 # The macro: "__glibcxx_want_is_layout_compatible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x41b # At line number 1051
+ .long .LASF1242 # The macro: "__glibcxx_want_is_nothrow_convertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x425 # At line number 1061
+ .long .LASF1243 # The macro: "__glibcxx_want_is_pointer_interconvertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x42f # At line number 1071
+ .long .LASF1244 # The macro: "__glibcxx_want_math_constants"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x439 # At line number 1081
+ .long .LASF1245 # The macro: "__glibcxx_want_make_obj_using_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x443 # At line number 1091
+ .long .LASF1246 # The macro: "__glibcxx_want_remove_cvref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x44d # At line number 1101
+ .long .LASF1247 # The macro: "__glibcxx_want_source_location"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x45c # At line number 1116
+ .long .LASF1248 # The macro: "__glibcxx_want_span"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x466 # At line number 1126
+ .long .LASF1249 # The macro: "__glibcxx_want_ssize"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x470 # At line number 1136
+ .long .LASF1250 # The macro: "__glibcxx_want_three_way_comparison"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47a # At line number 1146
+ .long .LASF1251 # The macro: "__glibcxx_want_to_address"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x484 # At line number 1156
+ .long .LASF1252 # The macro: "__glibcxx_want_to_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x48e # At line number 1166
+ .long .LASF1253 # The macro: "__glibcxx_want_type_identity"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x498 # At line number 1176
+ .long .LASF1254 # The macro: "__glibcxx_want_unwrap_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4a2 # At line number 1186
+ .long .LASF1255 # The macro: "__glibcxx_want_constexpr_iterator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4ac # At line number 1196
+ .long .LASF1256 # The macro: "__glibcxx_want_interpolate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4b6 # At line number 1206
+ .long .LASF1257 # The macro: "__glibcxx_want_constexpr_utility"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4c0 # At line number 1216
+ .long .LASF1258 # The macro: "__glibcxx_want_shift"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4d4 # At line number 1236
+ .long .LASF1259 # The macro: "__glibcxx_want_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4de # At line number 1246
+ .long .LASF1260 # The macro: "__glibcxx_want_constexpr_numeric"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4e8 # At line number 1256
+ .long .LASF1261 # The macro: "__glibcxx_want_constexpr_functional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4f7 # At line number 1271
+ .long .LASF1262 # The macro: "__glibcxx_want_constexpr_algorithms"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x501 # At line number 1281
+ .long .LASF1263 # The macro: "__glibcxx_want_constexpr_tuple"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x510 # At line number 1296
+ .long .LASF1264 # The macro: "__glibcxx_want_constexpr_memory"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51a # At line number 1306
+ .long .LASF1265 # The macro: "__glibcxx_want_atomic_shared_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x529 # At line number 1321
+ .long .LASF1266 # The macro: "__glibcxx_want_atomic_wait"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x533 # At line number 1331
+ .long .LASF1267 # The macro: "__glibcxx_want_barrier"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x542 # At line number 1346
+ .long .LASF1268 # The macro: "__glibcxx_want_format"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x54c # At line number 1356
+ .long .LASF1269 # The macro: "__glibcxx_want_format_uchar"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x556 # At line number 1366
+ .long .LASF1270 # The macro: "__glibcxx_want_constexpr_complex"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x560 # At line number 1376
+ .long .LASF1271 # The macro: "__glibcxx_want_constexpr_dynamic_alloc"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56e # At line number 1390
+ .long .LASF1272 # The macro: "__glibcxx_constexpr_string 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x574 # At line number 1396
+ .long .LASF1273 # The macro: "__glibcxx_want_constexpr_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x57e # At line number 1406
+ .long .LASF1274 # The macro: "__glibcxx_want_constexpr_vector"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x58d # At line number 1421
+ .long .LASF1275 # The macro: "__glibcxx_want_constrained_equality"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x597 # At line number 1431
+ .long .LASF1276 # The macro: "__glibcxx_want_erase_if"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5a1 # At line number 1441
+ .long .LASF1277 # The macro: "__glibcxx_want_generic_unordered_lookup"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5ab # At line number 1451
+ .long .LASF1278 # The macro: "__glibcxx_want_jthread"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b5 # At line number 1461
+ .long .LASF1279 # The macro: "__glibcxx_want_latch"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5bf # At line number 1471
+ .long .LASF1280 # The macro: "__glibcxx_want_list_remove_return_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5c9 # At line number 1481
+ .long .LASF1281 # The macro: "__glibcxx_want_polymorphic_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5d3 # At line number 1491
+ .long .LASF1282 # The macro: "__glibcxx_want_move_iterator_concept"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5dd # At line number 1501
+ .long .LASF1283 # The macro: "__glibcxx_want_semaphore"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5e7 # At line number 1511
+ .long .LASF1284 # The macro: "__glibcxx_want_smart_ptr_for_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5f1 # At line number 1521
+ .long .LASF1285 # The macro: "__glibcxx_want_syncbuf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5fb # At line number 1531
+ .long .LASF1286 # The macro: "__glibcxx_want_byteswap"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x605 # At line number 1541
+ .long .LASF1287 # The macro: "__glibcxx_want_constexpr_charconv"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x60f # At line number 1551
+ .long .LASF1288 # The macro: "__glibcxx_want_constexpr_typeinfo"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x619 # At line number 1561
+ .long .LASF1289 # The macro: "__glibcxx_want_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x622 # At line number 1570
+ .long .LASF1290 # The macro: "__glibcxx_want_format_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x62c # At line number 1580
+ .long .LASF1291 # The macro: "__glibcxx_want_freestanding_algorithm"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x636 # At line number 1590
+ .long .LASF1292 # The macro: "__glibcxx_want_freestanding_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x640 # At line number 1600
+ .long .LASF1293 # The macro: "__glibcxx_want_freestanding_cstring"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x64a # At line number 1610
+ .long .LASF1294 # The macro: "__glibcxx_want_freestanding_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x654 # At line number 1620
+ .long .LASF1295 # The macro: "__glibcxx_want_freestanding_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65e # At line number 1630
+ .long .LASF1296 # The macro: "__glibcxx_want_freestanding_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x668 # At line number 1640
+ .long .LASF1297 # The macro: "__glibcxx_want_freestanding_variant"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x672 # At line number 1650
+ .long .LASF1298 # The macro: "__glibcxx_want_invoke_r"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x67c # At line number 1660
+ .long .LASF1299 # The macro: "__glibcxx_want_is_scoped_enum"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x686 # At line number 1670
+ .long .LASF1300 # The macro: "__glibcxx_want_reference_from_temporary"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x690 # At line number 1680
+ .long .LASF1301 # The macro: "__glibcxx_want_containers_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x69a # At line number 1690
+ .long .LASF1302 # The macro: "__glibcxx_want_ranges_to_container"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6a4 # At line number 1700
+ .long .LASF1303 # The macro: "__glibcxx_want_ranges_zip"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ae # At line number 1710
+ .long .LASF1304 # The macro: "__glibcxx_want_ranges_chunk"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6b8 # At line number 1720
+ .long .LASF1305 # The macro: "__glibcxx_want_ranges_slide"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6c2 # At line number 1730
+ .long .LASF1306 # The macro: "__glibcxx_want_ranges_chunk_by"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6cc # At line number 1740
+ .long .LASF1307 # The macro: "__glibcxx_want_ranges_join_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6d6 # At line number 1750
+ .long .LASF1308 # The macro: "__glibcxx_want_ranges_repeat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6e0 # At line number 1760
+ .long .LASF1309 # The macro: "__glibcxx_want_ranges_stride"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ea # At line number 1770
+ .long .LASF1310 # The macro: "__glibcxx_want_ranges_cartesian_product"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6f4 # At line number 1780
+ .long .LASF1311 # The macro: "__glibcxx_want_ranges_as_rvalue"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6fe # At line number 1790
+ .long .LASF1312 # The macro: "__glibcxx_want_ranges_as_const"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x708 # At line number 1800
+ .long .LASF1313 # The macro: "__glibcxx_want_ranges_enumerate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x712 # At line number 1810
+ .long .LASF1314 # The macro: "__glibcxx_want_ranges_fold"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x71c # At line number 1820
+ .long .LASF1315 # The macro: "__glibcxx_want_ranges_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x726 # At line number 1830
+ .long .LASF1316 # The macro: "__glibcxx_want_ranges_iota"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x730 # At line number 1840
+ .long .LASF1317 # The macro: "__glibcxx_want_ranges_find_last"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x73a # At line number 1850
+ .long .LASF1318 # The macro: "__glibcxx_want_constexpr_bitset"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x744 # At line number 1860
+ .long .LASF1319 # The macro: "__glibcxx_want_stdatomic_h"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74e # At line number 1870
+ .long .LASF1320 # The macro: "__glibcxx_want_adaptor_iterator_pair_constructor"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x758 # At line number 1880
+ .long .LASF1321 # The macro: "__glibcxx_want_flat_map"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x762 # At line number 1890
+ .long .LASF1322 # The macro: "__glibcxx_want_flat_set"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x76c # At line number 1900
+ .long .LASF1323 # The macro: "__glibcxx_want_formatters"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x776 # At line number 1910
+ .long .LASF1324 # The macro: "__glibcxx_want_forward_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x780 # At line number 1920
+ .long .LASF1325 # The macro: "__glibcxx_want_generator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78a # At line number 1930
+ .long .LASF1326 # The macro: "__glibcxx_want_ios_noreplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x794 # At line number 1940
+ .long .LASF1327 # The macro: "__glibcxx_want_move_only_function"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x79e # At line number 1950
+ .long .LASF1328 # The macro: "__glibcxx_want_out_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7a8 # At line number 1960
+ .long .LASF1329 # The macro: "__glibcxx_want_print"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7b2 # At line number 1970
+ .long .LASF1330 # The macro: "__glibcxx_want_spanstream"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7bc # At line number 1980
+ .long .LASF1331 # The macro: "__glibcxx_want_stacktrace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7c6 # At line number 1990
+ .long .LASF1332 # The macro: "__glibcxx_want_string_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7d0 # At line number 2000
+ .long .LASF1333 # The macro: "__glibcxx_want_string_resize_and_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7da # At line number 2010
+ .long .LASF1334 # The macro: "__glibcxx_want_to_underlying"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e9 # At line number 2025
+ .long .LASF1335 # The macro: "__glibcxx_want_tuple_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7f3 # At line number 2035
+ .long .LASF1336 # The macro: "__glibcxx_want_unreachable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7fd # At line number 2045
+ .long .LASF1337 # The macro: "__glibcxx_want_algorithm_default_value_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x807 # At line number 2055
+ .long .LASF1338 # The macro: "__glibcxx_want_constexpr_new"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x811 # At line number 2065
+ .long .LASF1339 # The macro: "__glibcxx_want_fstream_native_handle"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x81b # At line number 2075
+ .long .LASF1340 # The macro: "__glibcxx_want_is_virtual_base_of"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x825 # At line number 2085
+ .long .LASF1341 # The macro: "__glibcxx_want_ranges_cache_latest"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x82f # At line number 2095
+ .long .LASF1342 # The macro: "__glibcxx_want_ranges_concat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x839 # At line number 2105
+ .long .LASF1343 # The macro: "__glibcxx_want_ratio"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x843 # At line number 2115
+ .long .LASF1344 # The macro: "__glibcxx_want_reference_wrapper"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x84d # At line number 2125
+ .long .LASF1345 # The macro: "__glibcxx_want_saturation_arithmetic"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x857 # At line number 2135
+ .long .LASF1346 # The macro: "__glibcxx_want_span_initializer_list"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x861 # At line number 2145
+ .long .LASF1347 # The macro: "__glibcxx_want_text_encoding"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x86b # At line number 2155
+ .long .LASF1348 # The macro: "__glibcxx_want_ranges_to_input"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x875 # At line number 2165
+ .long .LASF1349 # The macro: "__glibcxx_want_to_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x87f # At line number 2175
+ .long .LASF1350 # The macro: "__glibcxx_want_modules"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x881 # At line number 2177
+ .long .LASF1351 # The macro: "__glibcxx_want_all"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.new.201.1eb3e1860491e06c4f6a2a2ab9b40193,comdat
+.Ldebug_macro18:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc9 # At line number 201
+ .long .LASF1352 # The macro: "_GLIBCXX_PLACEMENT_CONSTEXPR inline"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd6 # At line number 214
+ .long .LASF1353 # The macro: "_GLIBCXX_PLACEMENT_CONSTEXPR"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.exception_defines.h.31.ca6841b9be3287386aafc5c717935b2e,comdat
+.Ldebug_macro19:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1355 # The macro: "_EXCEPTION_DEFINES_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF1356 # The macro: "__try try"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29 # At line number 41
+ .long .LASF1357 # The macro: "__catch(X) catch(X)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a # At line number 42
+ .long .LASF1358 # The macro: "__throw_exception_again throw"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.type_traits.30.22003fcb9485c4dd55557aae4be38779,comdat
+.Ldebug_macro20:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1360 # The macro: "_GLIBCXX_TYPE_TRAITS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a # At line number 42
+ .long .LASF1361 # The macro: "__glibcxx_want_bool_constant "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b # At line number 43
+ .long .LASF1362 # The macro: "__glibcxx_want_bounded_array_traits "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c # At line number 44
+ .long .LASF1363 # The macro: "__glibcxx_want_has_unique_object_representations "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d # At line number 45
+ .long .LASF1364 # The macro: "__glibcxx_want_integral_constant_callable "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e # At line number 46
+ .long .LASF1365 # The macro: "__glibcxx_want_is_aggregate "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f # At line number 47
+ .long .LASF1366 # The macro: "__glibcxx_want_is_constant_evaluated "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x30 # At line number 48
+ .long .LASF1367 # The macro: "__glibcxx_want_is_final "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x31 # At line number 49
+ .long .LASF1368 # The macro: "__glibcxx_want_is_invocable "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x32 # At line number 50
+ .long .LASF1369 # The macro: "__glibcxx_want_is_layout_compatible "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x33 # At line number 51
+ .long .LASF1370 # The macro: "__glibcxx_want_is_nothrow_convertible "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x34 # At line number 52
+ .long .LASF1371 # The macro: "__glibcxx_want_is_null_pointer "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35 # At line number 53
+ .long .LASF1372 # The macro: "__glibcxx_want_is_pointer_interconvertible "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x36 # At line number 54
+ .long .LASF1373 # The macro: "__glibcxx_want_is_scoped_enum "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1374 # The macro: "__glibcxx_want_is_swappable "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x38 # At line number 56
+ .long .LASF1375 # The macro: "__glibcxx_want_is_virtual_base_of "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1376 # The macro: "__glibcxx_want_logical_traits "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3a # At line number 58
+ .long .LASF1377 # The macro: "__glibcxx_want_reference_from_temporary "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b # At line number 59
+ .long .LASF1378 # The macro: "__glibcxx_want_remove_cvref "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3c # At line number 60
+ .long .LASF1379 # The macro: "__glibcxx_want_result_of_sfinae "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1380 # The macro: "__glibcxx_want_transformation_trait_aliases "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3e # At line number 62
+ .long .LASF1381 # The macro: "__glibcxx_want_type_identity "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3f # At line number 63
+ .long .LASF1382 # The macro: "__glibcxx_want_type_trait_variable_templates "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x40 # At line number 64
+ .long .LASF1383 # The macro: "__glibcxx_want_unwrap_ref "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1384 # The macro: "__glibcxx_want_void_t "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.version.h.55.04ca65c8c659e0b8ec719f4ded8118a4,comdat
+.Ldebug_macro21:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1075 # The macro: "__glibcxx_incomplete_container_elements 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1076 # The macro: "__glibcxx_want_incomplete_container_elements"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1077 # The macro: "__glibcxx_uncaught_exceptions 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1078 # The macro: "__glibcxx_want_uncaught_exceptions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1079 # The macro: "__glibcxx_allocator_traits_is_always_equal 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1080 # The macro: "__glibcxx_want_allocator_traits_is_always_equal"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x55 # At line number 85
+ .long .LASF1081 # The macro: "__glibcxx_is_null_pointer 201309L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x57 # At line number 87
+ .long .LASF1385 # The macro: "__cpp_lib_is_null_pointer 201309L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1082 # The macro: "__glibcxx_want_is_null_pointer"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5f # At line number 95
+ .long .LASF1083 # The macro: "__glibcxx_result_of_sfinae 201210L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x61 # At line number 97
+ .long .LASF1386 # The macro: "__cpp_lib_result_of_sfinae 201210L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1084 # The macro: "__glibcxx_want_result_of_sfinae"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1085 # The macro: "__glibcxx_shared_ptr_arrays 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1086 # The macro: "__glibcxx_want_shared_ptr_arrays"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x78 # At line number 120
+ .long .LASF1087 # The macro: "__glibcxx_is_swappable 201603L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7a # At line number 122
+ .long .LASF1387 # The macro: "__cpp_lib_is_swappable 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF1088 # The macro: "__glibcxx_want_is_swappable"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x82 # At line number 130
+ .long .LASF1089 # The macro: "__glibcxx_void_t 201411L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x84 # At line number 132
+ .long .LASF1388 # The macro: "__cpp_lib_void_t 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x88 # At line number 136
+ .long .LASF1090 # The macro: "__glibcxx_want_void_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8c # At line number 140
+ .long .LASF1091 # The macro: "__glibcxx_enable_shared_from_this 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x92 # At line number 146
+ .long .LASF1092 # The macro: "__glibcxx_want_enable_shared_from_this"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x96 # At line number 150
+ .long .LASF1093 # The macro: "__glibcxx_math_spec_funcs 201003L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF1094 # The macro: "__glibcxx_want_math_spec_funcs"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xa6 # At line number 166
+ .long .LASF1095 # The macro: "__glibcxx_want_coroutine"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa # At line number 170
+ .long .LASF1096 # The macro: "__glibcxx_exchange_function 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb0 # At line number 176
+ .long .LASF1097 # The macro: "__glibcxx_want_exchange_function"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4 # At line number 180
+ .long .LASF1098 # The macro: "__glibcxx_integer_sequence 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xba # At line number 186
+ .long .LASF1099 # The macro: "__glibcxx_want_integer_sequence"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbe # At line number 190
+ .long .LASF1100 # The macro: "__glibcxx_integral_constant_callable 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc0 # At line number 192
+ .long .LASF1389 # The macro: "__cpp_lib_integral_constant_callable 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xc4 # At line number 196
+ .long .LASF1101 # The macro: "__glibcxx_want_integral_constant_callable"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc8 # At line number 200
+ .long .LASF1102 # The macro: "__glibcxx_is_final 201402L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xca # At line number 202
+ .long .LASF1390 # The macro: "__cpp_lib_is_final 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xce # At line number 206
+ .long .LASF1103 # The macro: "__glibcxx_want_is_final"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2 # At line number 210
+ .long .LASF1104 # The macro: "__glibcxx_make_reverse_iterator 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd8 # At line number 216
+ .long .LASF1105 # The macro: "__glibcxx_want_make_reverse_iterator"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc # At line number 220
+ .long .LASF1106 # The macro: "__glibcxx_null_iterators 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe2 # At line number 226
+ .long .LASF1107 # The macro: "__glibcxx_want_null_iterators"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe6 # At line number 230
+ .long .LASF1108 # The macro: "__glibcxx_transformation_trait_aliases 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe8 # At line number 232
+ .long .LASF1391 # The macro: "__cpp_lib_transformation_trait_aliases 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xec # At line number 236
+ .long .LASF1109 # The macro: "__glibcxx_want_transformation_trait_aliases"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf0 # At line number 240
+ .long .LASF1110 # The macro: "__glibcxx_transparent_operators 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf6 # At line number 246
+ .long .LASF1111 # The macro: "__glibcxx_want_transparent_operators"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xfa # At line number 250
+ .long .LASF1112 # The macro: "__glibcxx_tuple_element_t 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x100 # At line number 256
+ .long .LASF1113 # The macro: "__glibcxx_want_tuple_element_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x104 # At line number 260
+ .long .LASF1114 # The macro: "__glibcxx_tuples_by_type 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x10a # At line number 266
+ .long .LASF1115 # The macro: "__glibcxx_want_tuples_by_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10e # At line number 270
+ .long .LASF1116 # The macro: "__glibcxx_robust_nonmodifying_seq_ops 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x114 # At line number 276
+ .long .LASF1117 # The macro: "__glibcxx_want_robust_nonmodifying_seq_ops"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11d # At line number 285
+ .long .LASF1118 # The macro: "__glibcxx_to_chars 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x123 # At line number 291
+ .long .LASF1119 # The macro: "__glibcxx_want_to_chars"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x127 # At line number 295
+ .long .LASF1120 # The macro: "__glibcxx_chrono_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x12d # At line number 301
+ .long .LASF1121 # The macro: "__glibcxx_want_chrono_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x131 # At line number 305
+ .long .LASF1122 # The macro: "__glibcxx_complex_udls 201309L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x137 # At line number 311
+ .long .LASF1123 # The macro: "__glibcxx_want_complex_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13b # At line number 315
+ .long .LASF1124 # The macro: "__glibcxx_generic_associative_lookup 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x141 # At line number 321
+ .long .LASF1125 # The macro: "__glibcxx_want_generic_associative_lookup"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x145 # At line number 325
+ .long .LASF1126 # The macro: "__glibcxx_make_unique 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x14b # At line number 331
+ .long .LASF1127 # The macro: "__glibcxx_want_make_unique"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14f # At line number 335
+ .long .LASF1128 # The macro: "__glibcxx_quoted_string_io 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x155 # At line number 341
+ .long .LASF1129 # The macro: "__glibcxx_want_quoted_string_io"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x159 # At line number 345
+ .long .LASF1130 # The macro: "__glibcxx_shared_timed_mutex 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x15f # At line number 351
+ .long .LASF1131 # The macro: "__glibcxx_want_shared_timed_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x163 # At line number 355
+ .long .LASF1132 # The macro: "__glibcxx_string_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x169 # At line number 361
+ .long .LASF1133 # The macro: "__glibcxx_want_string_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16d # At line number 365
+ .long .LASF1134 # The macro: "__glibcxx_addressof_constexpr 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x173 # At line number 371
+ .long .LASF1135 # The macro: "__glibcxx_want_addressof_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x177 # At line number 375
+ .long .LASF1136 # The macro: "__glibcxx_any 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x17d # At line number 381
+ .long .LASF1137 # The macro: "__glibcxx_want_any"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x181 # At line number 385
+ .long .LASF1138 # The macro: "__glibcxx_apply 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x187 # At line number 391
+ .long .LASF1139 # The macro: "__glibcxx_want_apply"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18b # At line number 395
+ .long .LASF1140 # The macro: "__glibcxx_as_const 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x191 # At line number 401
+ .long .LASF1141 # The macro: "__glibcxx_want_as_const"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x195 # At line number 405
+ .long .LASF1142 # The macro: "__glibcxx_atomic_is_always_lock_free 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19b # At line number 411
+ .long .LASF1143 # The macro: "__glibcxx_want_atomic_is_always_lock_free"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x19f # At line number 415
+ .long .LASF1144 # The macro: "__glibcxx_bool_constant 201505L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a1 # At line number 417
+ .long .LASF1392 # The macro: "__cpp_lib_bool_constant 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a5 # At line number 421
+ .long .LASF1145 # The macro: "__glibcxx_want_bool_constant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1146 # The macro: "__glibcxx_byte 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1af # At line number 431
+ .long .LASF1147 # The macro: "__glibcxx_want_byte"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1b3 # At line number 435
+ .long .LASF1148 # The macro: "__glibcxx_has_unique_object_representations 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1b5 # At line number 437
+ .long .LASF1393 # The macro: "__cpp_lib_has_unique_object_representations 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1b9 # At line number 441
+ .long .LASF1149 # The macro: "__glibcxx_want_has_unique_object_representations"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1c3 # At line number 451
+ .long .LASF1152 # The macro: "__glibcxx_want_hardware_interference_size"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c7 # At line number 455
+ .long .LASF1153 # The macro: "__glibcxx_invoke 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1cd # At line number 461
+ .long .LASF1154 # The macro: "__glibcxx_want_invoke"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1d1 # At line number 465
+ .long .LASF1155 # The macro: "__glibcxx_is_aggregate 201703L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1d3 # At line number 467
+ .long .LASF1394 # The macro: "__cpp_lib_is_aggregate 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1d7 # At line number 471
+ .long .LASF1156 # The macro: "__glibcxx_want_is_aggregate"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1db # At line number 475
+ .long .LASF1157 # The macro: "__glibcxx_is_invocable 201703L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1dd # At line number 477
+ .long .LASF1395 # The macro: "__cpp_lib_is_invocable 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1e1 # At line number 481
+ .long .LASF1158 # The macro: "__glibcxx_want_is_invocable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1eb # At line number 491
+ .long .LASF1161 # The macro: "__glibcxx_want_launder"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1ef # At line number 495
+ .long .LASF1162 # The macro: "__glibcxx_logical_traits 201510L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f1 # At line number 497
+ .long .LASF1396 # The macro: "__cpp_lib_logical_traits 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1f5 # At line number 501
+ .long .LASF1163 # The macro: "__glibcxx_want_logical_traits"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f9 # At line number 505
+ .long .LASF1164 # The macro: "__glibcxx_make_from_tuple 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1ff # At line number 511
+ .long .LASF1165 # The macro: "__glibcxx_want_make_from_tuple"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x203 # At line number 515
+ .long .LASF1166 # The macro: "__glibcxx_not_fn 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x209 # At line number 521
+ .long .LASF1167 # The macro: "__glibcxx_want_not_fn"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20d # At line number 525
+ .long .LASF1168 # The macro: "__glibcxx_type_trait_variable_templates 201510L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20f # At line number 527
+ .long .LASF1397 # The macro: "__cpp_lib_type_trait_variable_templates 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x213 # At line number 531
+ .long .LASF1169 # The macro: "__glibcxx_want_type_trait_variable_templates"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x221 # At line number 545
+ .long .LASF1170 # The macro: "__glibcxx_variant 202102L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x227 # At line number 551
+ .long .LASF1171 # The macro: "__glibcxx_want_variant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22b # At line number 555
+ .long .LASF1172 # The macro: "__glibcxx_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x231 # At line number 561
+ .long .LASF1173 # The macro: "__glibcxx_want_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x235 # At line number 565
+ .long .LASF1174 # The macro: "__glibcxx_gcd 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x23b # At line number 571
+ .long .LASF1175 # The macro: "__glibcxx_want_gcd"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23f # At line number 575
+ .long .LASF1176 # The macro: "__glibcxx_gcd_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x245 # At line number 581
+ .long .LASF1177 # The macro: "__glibcxx_want_gcd_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24e # At line number 590
+ .long .LASF1178 # The macro: "__glibcxx_raw_memory_algorithms 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x254 # At line number 596
+ .long .LASF1179 # The macro: "__glibcxx_want_raw_memory_algorithms"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25d # At line number 605
+ .long .LASF1180 # The macro: "__glibcxx_array_constexpr 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x263 # At line number 611
+ .long .LASF1181 # The macro: "__glibcxx_want_array_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x267 # At line number 615
+ .long .LASF1182 # The macro: "__glibcxx_nonmember_container_access 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x26d # At line number 621
+ .long .LASF1183 # The macro: "__glibcxx_want_nonmember_container_access"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x271 # At line number 625
+ .long .LASF1184 # The macro: "__glibcxx_clamp 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x277 # At line number 631
+ .long .LASF1185 # The macro: "__glibcxx_want_clamp"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27b # At line number 635
+ .long .LASF1186 # The macro: "__glibcxx_sample 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x281 # At line number 641
+ .long .LASF1187 # The macro: "__glibcxx_want_sample"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x285 # At line number 645
+ .long .LASF1188 # The macro: "__glibcxx_boyer_moore_searcher 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x28b # At line number 651
+ .long .LASF1189 # The macro: "__glibcxx_want_boyer_moore_searcher"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x294 # At line number 660
+ .long .LASF1190 # The macro: "__glibcxx_chrono 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x29a # At line number 666
+ .long .LASF1191 # The macro: "__glibcxx_want_chrono"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29e # At line number 670
+ .long .LASF1192 # The macro: "__glibcxx_execution 201902L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2a4 # At line number 676
+ .long .LASF1193 # The macro: "__glibcxx_want_execution"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a8 # At line number 680
+ .long .LASF1194 # The macro: "__glibcxx_filesystem 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ae # At line number 686
+ .long .LASF1195 # The macro: "__glibcxx_want_filesystem"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b2 # At line number 690
+ .long .LASF1196 # The macro: "__glibcxx_hypot 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2b8 # At line number 696
+ .long .LASF1197 # The macro: "__glibcxx_want_hypot"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2bc # At line number 700
+ .long .LASF1198 # The macro: "__glibcxx_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2c2 # At line number 706
+ .long .LASF1199 # The macro: "__glibcxx_want_map_try_emplace"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c6 # At line number 710
+ .long .LASF1200 # The macro: "__glibcxx_math_special_functions 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2cc # At line number 716
+ .long .LASF1201 # The macro: "__glibcxx_want_math_special_functions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d0 # At line number 720
+ .long .LASF1202 # The macro: "__glibcxx_memory_resource 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2db # At line number 731
+ .long .LASF1203 # The macro: "__glibcxx_want_memory_resource"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2df # At line number 735
+ .long .LASF1204 # The macro: "__glibcxx_node_extract 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2e5 # At line number 741
+ .long .LASF1205 # The macro: "__glibcxx_want_node_extract"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e9 # At line number 745
+ .long .LASF1206 # The macro: "__glibcxx_parallel_algorithm 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ef # At line number 751
+ .long .LASF1207 # The macro: "__glibcxx_want_parallel_algorithm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f3 # At line number 755
+ .long .LASF1208 # The macro: "__glibcxx_scoped_lock 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2f9 # At line number 761
+ .long .LASF1209 # The macro: "__glibcxx_want_scoped_lock"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2fd # At line number 765
+ .long .LASF1210 # The macro: "__glibcxx_shared_mutex 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x303 # At line number 771
+ .long .LASF1211 # The macro: "__glibcxx_want_shared_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x307 # At line number 775
+ .long .LASF1212 # The macro: "__glibcxx_shared_ptr_weak_type 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x30d # At line number 781
+ .long .LASF1213 # The macro: "__glibcxx_want_shared_ptr_weak_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x316 # At line number 790
+ .long .LASF1214 # The macro: "__glibcxx_string_view 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x31c # At line number 796
+ .long .LASF1215 # The macro: "__glibcxx_want_string_view"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x320 # At line number 800
+ .long .LASF1216 # The macro: "__glibcxx_unordered_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x326 # At line number 806
+ .long .LASF1217 # The macro: "__glibcxx_want_unordered_map_try_emplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x330 # At line number 816
+ .long .LASF1218 # The macro: "__glibcxx_want_assume_aligned"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x33a # At line number 826
+ .long .LASF1219 # The macro: "__glibcxx_want_atomic_flag_test"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x344 # At line number 836
+ .long .LASF1220 # The macro: "__glibcxx_want_atomic_float"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x34e # At line number 846
+ .long .LASF1221 # The macro: "__glibcxx_want_atomic_lock_free_type_aliases"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x358 # At line number 856
+ .long .LASF1222 # The macro: "__glibcxx_want_atomic_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x362 # At line number 866
+ .long .LASF1223 # The macro: "__glibcxx_want_atomic_value_initialization"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x36c # At line number 876
+ .long .LASF1224 # The macro: "__glibcxx_want_bind_front"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x376 # At line number 886
+ .long .LASF1225 # The macro: "__glibcxx_want_bind_back"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x380 # At line number 896
+ .long .LASF1226 # The macro: "__glibcxx_want_starts_ends_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x38a # At line number 906
+ .long .LASF1227 # The macro: "__glibcxx_want_bit_cast"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x394 # At line number 916
+ .long .LASF1228 # The macro: "__glibcxx_want_bitops"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x39e # At line number 926
+ .long .LASF1229 # The macro: "__glibcxx_want_bounded_array_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3a8 # At line number 936
+ .long .LASF1230 # The macro: "__glibcxx_want_concepts"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b6 # At line number 950
+ .long .LASF1231 # The macro: "__glibcxx_optional 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3bc # At line number 956
+ .long .LASF1232 # The macro: "__glibcxx_want_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3c6 # At line number 966
+ .long .LASF1233 # The macro: "__glibcxx_want_destroying_delete"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d0 # At line number 976
+ .long .LASF1234 # The macro: "__glibcxx_want_constexpr_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3da # At line number 986
+ .long .LASF1235 # The macro: "__glibcxx_want_endian"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3e4 # At line number 996
+ .long .LASF1236 # The macro: "__glibcxx_want_int_pow2"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3ee # At line number 1006
+ .long .LASF1237 # The macro: "__glibcxx_want_integer_comparison_functions"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3f8 # At line number 1016
+ .long .LASF1238 # The macro: "__glibcxx_want_is_constant_evaluated"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x401 # At line number 1025
+ .long .LASF1239 # The macro: "__glibcxx_constexpr_char_traits 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x407 # At line number 1031
+ .long .LASF1240 # The macro: "__glibcxx_want_constexpr_char_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x411 # At line number 1041
+ .long .LASF1241 # The macro: "__glibcxx_want_is_layout_compatible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x41b # At line number 1051
+ .long .LASF1242 # The macro: "__glibcxx_want_is_nothrow_convertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x425 # At line number 1061
+ .long .LASF1243 # The macro: "__glibcxx_want_is_pointer_interconvertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x42f # At line number 1071
+ .long .LASF1244 # The macro: "__glibcxx_want_math_constants"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x439 # At line number 1081
+ .long .LASF1245 # The macro: "__glibcxx_want_make_obj_using_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x443 # At line number 1091
+ .long .LASF1246 # The macro: "__glibcxx_want_remove_cvref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x44d # At line number 1101
+ .long .LASF1247 # The macro: "__glibcxx_want_source_location"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x45c # At line number 1116
+ .long .LASF1248 # The macro: "__glibcxx_want_span"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x466 # At line number 1126
+ .long .LASF1249 # The macro: "__glibcxx_want_ssize"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x470 # At line number 1136
+ .long .LASF1250 # The macro: "__glibcxx_want_three_way_comparison"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47a # At line number 1146
+ .long .LASF1251 # The macro: "__glibcxx_want_to_address"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x484 # At line number 1156
+ .long .LASF1252 # The macro: "__glibcxx_want_to_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x48e # At line number 1166
+ .long .LASF1253 # The macro: "__glibcxx_want_type_identity"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x498 # At line number 1176
+ .long .LASF1254 # The macro: "__glibcxx_want_unwrap_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4a2 # At line number 1186
+ .long .LASF1255 # The macro: "__glibcxx_want_constexpr_iterator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4ac # At line number 1196
+ .long .LASF1256 # The macro: "__glibcxx_want_interpolate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4b6 # At line number 1206
+ .long .LASF1257 # The macro: "__glibcxx_want_constexpr_utility"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4c0 # At line number 1216
+ .long .LASF1258 # The macro: "__glibcxx_want_shift"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4d4 # At line number 1236
+ .long .LASF1259 # The macro: "__glibcxx_want_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4de # At line number 1246
+ .long .LASF1260 # The macro: "__glibcxx_want_constexpr_numeric"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4e8 # At line number 1256
+ .long .LASF1261 # The macro: "__glibcxx_want_constexpr_functional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4f7 # At line number 1271
+ .long .LASF1262 # The macro: "__glibcxx_want_constexpr_algorithms"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x501 # At line number 1281
+ .long .LASF1263 # The macro: "__glibcxx_want_constexpr_tuple"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x510 # At line number 1296
+ .long .LASF1264 # The macro: "__glibcxx_want_constexpr_memory"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51a # At line number 1306
+ .long .LASF1265 # The macro: "__glibcxx_want_atomic_shared_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x529 # At line number 1321
+ .long .LASF1266 # The macro: "__glibcxx_want_atomic_wait"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x533 # At line number 1331
+ .long .LASF1267 # The macro: "__glibcxx_want_barrier"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x542 # At line number 1346
+ .long .LASF1268 # The macro: "__glibcxx_want_format"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x54c # At line number 1356
+ .long .LASF1269 # The macro: "__glibcxx_want_format_uchar"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x556 # At line number 1366
+ .long .LASF1270 # The macro: "__glibcxx_want_constexpr_complex"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x560 # At line number 1376
+ .long .LASF1271 # The macro: "__glibcxx_want_constexpr_dynamic_alloc"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56e # At line number 1390
+ .long .LASF1272 # The macro: "__glibcxx_constexpr_string 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x574 # At line number 1396
+ .long .LASF1273 # The macro: "__glibcxx_want_constexpr_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x57e # At line number 1406
+ .long .LASF1274 # The macro: "__glibcxx_want_constexpr_vector"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x58d # At line number 1421
+ .long .LASF1275 # The macro: "__glibcxx_want_constrained_equality"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x597 # At line number 1431
+ .long .LASF1276 # The macro: "__glibcxx_want_erase_if"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5a1 # At line number 1441
+ .long .LASF1277 # The macro: "__glibcxx_want_generic_unordered_lookup"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5ab # At line number 1451
+ .long .LASF1278 # The macro: "__glibcxx_want_jthread"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b5 # At line number 1461
+ .long .LASF1279 # The macro: "__glibcxx_want_latch"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5bf # At line number 1471
+ .long .LASF1280 # The macro: "__glibcxx_want_list_remove_return_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5c9 # At line number 1481
+ .long .LASF1281 # The macro: "__glibcxx_want_polymorphic_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5d3 # At line number 1491
+ .long .LASF1282 # The macro: "__glibcxx_want_move_iterator_concept"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5dd # At line number 1501
+ .long .LASF1283 # The macro: "__glibcxx_want_semaphore"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5e7 # At line number 1511
+ .long .LASF1284 # The macro: "__glibcxx_want_smart_ptr_for_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5f1 # At line number 1521
+ .long .LASF1285 # The macro: "__glibcxx_want_syncbuf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5fb # At line number 1531
+ .long .LASF1286 # The macro: "__glibcxx_want_byteswap"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x605 # At line number 1541
+ .long .LASF1287 # The macro: "__glibcxx_want_constexpr_charconv"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x60f # At line number 1551
+ .long .LASF1288 # The macro: "__glibcxx_want_constexpr_typeinfo"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x619 # At line number 1561
+ .long .LASF1289 # The macro: "__glibcxx_want_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x622 # At line number 1570
+ .long .LASF1290 # The macro: "__glibcxx_want_format_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x62c # At line number 1580
+ .long .LASF1291 # The macro: "__glibcxx_want_freestanding_algorithm"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x636 # At line number 1590
+ .long .LASF1292 # The macro: "__glibcxx_want_freestanding_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x640 # At line number 1600
+ .long .LASF1293 # The macro: "__glibcxx_want_freestanding_cstring"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x64a # At line number 1610
+ .long .LASF1294 # The macro: "__glibcxx_want_freestanding_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x654 # At line number 1620
+ .long .LASF1295 # The macro: "__glibcxx_want_freestanding_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65e # At line number 1630
+ .long .LASF1296 # The macro: "__glibcxx_want_freestanding_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x668 # At line number 1640
+ .long .LASF1297 # The macro: "__glibcxx_want_freestanding_variant"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x672 # At line number 1650
+ .long .LASF1298 # The macro: "__glibcxx_want_invoke_r"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x67c # At line number 1660
+ .long .LASF1299 # The macro: "__glibcxx_want_is_scoped_enum"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x686 # At line number 1670
+ .long .LASF1300 # The macro: "__glibcxx_want_reference_from_temporary"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x690 # At line number 1680
+ .long .LASF1301 # The macro: "__glibcxx_want_containers_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x69a # At line number 1690
+ .long .LASF1302 # The macro: "__glibcxx_want_ranges_to_container"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6a4 # At line number 1700
+ .long .LASF1303 # The macro: "__glibcxx_want_ranges_zip"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ae # At line number 1710
+ .long .LASF1304 # The macro: "__glibcxx_want_ranges_chunk"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6b8 # At line number 1720
+ .long .LASF1305 # The macro: "__glibcxx_want_ranges_slide"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6c2 # At line number 1730
+ .long .LASF1306 # The macro: "__glibcxx_want_ranges_chunk_by"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6cc # At line number 1740
+ .long .LASF1307 # The macro: "__glibcxx_want_ranges_join_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6d6 # At line number 1750
+ .long .LASF1308 # The macro: "__glibcxx_want_ranges_repeat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6e0 # At line number 1760
+ .long .LASF1309 # The macro: "__glibcxx_want_ranges_stride"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ea # At line number 1770
+ .long .LASF1310 # The macro: "__glibcxx_want_ranges_cartesian_product"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6f4 # At line number 1780
+ .long .LASF1311 # The macro: "__glibcxx_want_ranges_as_rvalue"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6fe # At line number 1790
+ .long .LASF1312 # The macro: "__glibcxx_want_ranges_as_const"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x708 # At line number 1800
+ .long .LASF1313 # The macro: "__glibcxx_want_ranges_enumerate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x712 # At line number 1810
+ .long .LASF1314 # The macro: "__glibcxx_want_ranges_fold"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x71c # At line number 1820
+ .long .LASF1315 # The macro: "__glibcxx_want_ranges_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x726 # At line number 1830
+ .long .LASF1316 # The macro: "__glibcxx_want_ranges_iota"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x730 # At line number 1840
+ .long .LASF1317 # The macro: "__glibcxx_want_ranges_find_last"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x73a # At line number 1850
+ .long .LASF1318 # The macro: "__glibcxx_want_constexpr_bitset"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x744 # At line number 1860
+ .long .LASF1319 # The macro: "__glibcxx_want_stdatomic_h"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74e # At line number 1870
+ .long .LASF1320 # The macro: "__glibcxx_want_adaptor_iterator_pair_constructor"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x758 # At line number 1880
+ .long .LASF1321 # The macro: "__glibcxx_want_flat_map"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x762 # At line number 1890
+ .long .LASF1322 # The macro: "__glibcxx_want_flat_set"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x76c # At line number 1900
+ .long .LASF1323 # The macro: "__glibcxx_want_formatters"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x776 # At line number 1910
+ .long .LASF1324 # The macro: "__glibcxx_want_forward_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x780 # At line number 1920
+ .long .LASF1325 # The macro: "__glibcxx_want_generator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78a # At line number 1930
+ .long .LASF1326 # The macro: "__glibcxx_want_ios_noreplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x794 # At line number 1940
+ .long .LASF1327 # The macro: "__glibcxx_want_move_only_function"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x79e # At line number 1950
+ .long .LASF1328 # The macro: "__glibcxx_want_out_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7a8 # At line number 1960
+ .long .LASF1329 # The macro: "__glibcxx_want_print"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7b2 # At line number 1970
+ .long .LASF1330 # The macro: "__glibcxx_want_spanstream"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7bc # At line number 1980
+ .long .LASF1331 # The macro: "__glibcxx_want_stacktrace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7c6 # At line number 1990
+ .long .LASF1332 # The macro: "__glibcxx_want_string_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7d0 # At line number 2000
+ .long .LASF1333 # The macro: "__glibcxx_want_string_resize_and_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7da # At line number 2010
+ .long .LASF1334 # The macro: "__glibcxx_want_to_underlying"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e9 # At line number 2025
+ .long .LASF1335 # The macro: "__glibcxx_want_tuple_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7f3 # At line number 2035
+ .long .LASF1336 # The macro: "__glibcxx_want_unreachable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7fd # At line number 2045
+ .long .LASF1337 # The macro: "__glibcxx_want_algorithm_default_value_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x807 # At line number 2055
+ .long .LASF1338 # The macro: "__glibcxx_want_constexpr_new"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x811 # At line number 2065
+ .long .LASF1339 # The macro: "__glibcxx_want_fstream_native_handle"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x81b # At line number 2075
+ .long .LASF1340 # The macro: "__glibcxx_want_is_virtual_base_of"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x825 # At line number 2085
+ .long .LASF1341 # The macro: "__glibcxx_want_ranges_cache_latest"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x82f # At line number 2095
+ .long .LASF1342 # The macro: "__glibcxx_want_ranges_concat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x839 # At line number 2105
+ .long .LASF1343 # The macro: "__glibcxx_want_ratio"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x843 # At line number 2115
+ .long .LASF1344 # The macro: "__glibcxx_want_reference_wrapper"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x84d # At line number 2125
+ .long .LASF1345 # The macro: "__glibcxx_want_saturation_arithmetic"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x857 # At line number 2135
+ .long .LASF1346 # The macro: "__glibcxx_want_span_initializer_list"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x861 # At line number 2145
+ .long .LASF1347 # The macro: "__glibcxx_want_text_encoding"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x86b # At line number 2155
+ .long .LASF1348 # The macro: "__glibcxx_want_ranges_to_input"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x875 # At line number 2165
+ .long .LASF1349 # The macro: "__glibcxx_want_to_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x87f # At line number 2175
+ .long .LASF1350 # The macro: "__glibcxx_want_modules"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x881 # At line number 2177
+ .long .LASF1351 # The macro: "__glibcxx_want_all"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.move.h.197.554053be3e47ff971b6f2e34fb57d41b,comdat
+.Ldebug_macro22:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc5 # At line number 197
+ .long .LASF1399 # The macro: "_GLIBCXX_FWDREF(_Tp) _Tp&&"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc6 # At line number 198
+ .long .LASF1400 # The macro: "_GLIBCXX_MOVE(__val) std::move(__val)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc7 # At line number 199
+ .long .LASF1401 # The macro: "_GLIBCXX_FORWARD(_Tp,__val) std::forward<_Tp>(__val)"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.new_allocator.h.116.1a2b510fb95ea5ea4197559f239d362f,comdat
+.Ldebug_macro23:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1402 # The macro: "_GLIBCXX_OPERATOR_NEW __builtin_operator_new"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x75 # At line number 117
+ .long .LASF1403 # The macro: "_GLIBCXX_OPERATOR_DELETE __builtin_operator_delete"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9f # At line number 159
+ .long .LASF1404 # The macro: "_GLIBCXX_SIZED_DEALLOC(p,n) (p), (n) * sizeof(_Tp)"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xaf # At line number 175
+ .long .LASF1405 # The macro: "_GLIBCXX_SIZED_DEALLOC"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb0 # At line number 176
+ .long .LASF1406 # The macro: "_GLIBCXX_OPERATOR_DELETE"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb1 # At line number 177
+ .long .LASF1407 # The macro: "_GLIBCXX_OPERATOR_NEW"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stl_iterator_base_types.h.60.f5b04b2834b4a202064919a73d7a2a46,comdat
+.Ldebug_macro24:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3c # At line number 60
+ .long .LASF1411 # The macro: "_STL_ITERATOR_BASE_TYPES_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11d # At line number 285
+ .long .LASF1412 # The macro: "_GLIBCXX26_DEF_VAL_T(T) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11e # At line number 286
+ .long .LASF1413 # The macro: "_GLIBCXX26_ALGO_DEF_VAL_T(_Iterator) "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.concept_check.h.31.74a671c8485a1bc7531658609764a36b,comdat
+.Ldebug_macro25:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1415 # The macro: "_CONCEPT_CHECK_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35 # At line number 53
+ .long .LASF1416 # The macro: "__glibcxx_function_requires(...) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x36 # At line number 54
+ .long .LASF1417 # The macro: "__glibcxx_class_requires(_a,_b) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1418 # The macro: "__glibcxx_class_requires2(_a,_b,_c) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x38 # At line number 56
+ .long .LASF1419 # The macro: "__glibcxx_class_requires3(_a,_b,_c,_d) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1420 # The macro: "__glibcxx_class_requires4(_a,_b,_c,_d,_e) "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.assertions.h.30.d72752d74be140ecd1b957aafdcc8b28,comdat
+.Ldebug_macro26:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1421 # The macro: "_GLIBCXX_DEBUG_ASSERTIONS_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24 # At line number 36
+ .long .LASF1422 # The macro: "__glibcxx_requires_non_empty_range(_First,_Last) __glibcxx_assert(_First != _Last)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x26 # At line number 38
+ .long .LASF1423 # The macro: "__glibcxx_requires_subscript(_N) __glibcxx_assert(_N < this->size())"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29 # At line number 41
+ .long .LASF1424 # The macro: "__glibcxx_requires_nonempty() __glibcxx_assert(!this->empty())"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1425 # The macro: "_GLIBCXX_DEBUG_ASSERT(_Condition) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x42 # At line number 66
+ .long .LASF1426 # The macro: "_GLIBCXX_DEBUG_PEDASSERT(_Condition) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x43 # At line number 67
+ .long .LASF1427 # The macro: "_GLIBCXX_DEBUG_ONLY(_Statement) "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stl_pair.h.733.b93f55d6a8f972e77632d7b03102caef,comdat
+.Ldebug_macro27:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2dd # At line number 733
+ .long .LASF1430 # The macro: "__glibcxx_no_dangling_refs(_U1,_U2) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x32f # At line number 815
+ .long .LASF1431 # The macro: "_GLIBCXX_DEPRECATED_PAIR_CTOR __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer")))"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x37c # At line number 892
+ .long .LASF1432 # The macro: "_GLIBCXX_DEPRECATED_PAIR_CTOR"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3aa # At line number 938
+ .long .LASF1433 # The macro: "__glibcxx_no_dangling_refs"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.version.h.55.58bd32deac3e6c00a2eef1e72d963e8f,comdat
+.Ldebug_macro28:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1075 # The macro: "__glibcxx_incomplete_container_elements 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1076 # The macro: "__glibcxx_want_incomplete_container_elements"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1077 # The macro: "__glibcxx_uncaught_exceptions 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1078 # The macro: "__glibcxx_want_uncaught_exceptions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1079 # The macro: "__glibcxx_allocator_traits_is_always_equal 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1080 # The macro: "__glibcxx_want_allocator_traits_is_always_equal"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1082 # The macro: "__glibcxx_want_is_null_pointer"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1084 # The macro: "__glibcxx_want_result_of_sfinae"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1085 # The macro: "__glibcxx_shared_ptr_arrays 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1086 # The macro: "__glibcxx_want_shared_ptr_arrays"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF1088 # The macro: "__glibcxx_want_is_swappable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x88 # At line number 136
+ .long .LASF1090 # The macro: "__glibcxx_want_void_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8c # At line number 140
+ .long .LASF1091 # The macro: "__glibcxx_enable_shared_from_this 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x92 # At line number 146
+ .long .LASF1092 # The macro: "__glibcxx_want_enable_shared_from_this"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x96 # At line number 150
+ .long .LASF1093 # The macro: "__glibcxx_math_spec_funcs 201003L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF1094 # The macro: "__glibcxx_want_math_spec_funcs"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xa6 # At line number 166
+ .long .LASF1095 # The macro: "__glibcxx_want_coroutine"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa # At line number 170
+ .long .LASF1096 # The macro: "__glibcxx_exchange_function 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb0 # At line number 176
+ .long .LASF1097 # The macro: "__glibcxx_want_exchange_function"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4 # At line number 180
+ .long .LASF1098 # The macro: "__glibcxx_integer_sequence 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xba # At line number 186
+ .long .LASF1099 # The macro: "__glibcxx_want_integer_sequence"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xc4 # At line number 196
+ .long .LASF1101 # The macro: "__glibcxx_want_integral_constant_callable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xce # At line number 206
+ .long .LASF1103 # The macro: "__glibcxx_want_is_final"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2 # At line number 210
+ .long .LASF1104 # The macro: "__glibcxx_make_reverse_iterator 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd8 # At line number 216
+ .long .LASF1105 # The macro: "__glibcxx_want_make_reverse_iterator"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc # At line number 220
+ .long .LASF1106 # The macro: "__glibcxx_null_iterators 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe2 # At line number 226
+ .long .LASF1107 # The macro: "__glibcxx_want_null_iterators"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xec # At line number 236
+ .long .LASF1109 # The macro: "__glibcxx_want_transformation_trait_aliases"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf0 # At line number 240
+ .long .LASF1110 # The macro: "__glibcxx_transparent_operators 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf6 # At line number 246
+ .long .LASF1111 # The macro: "__glibcxx_want_transparent_operators"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xfa # At line number 250
+ .long .LASF1112 # The macro: "__glibcxx_tuple_element_t 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x100 # At line number 256
+ .long .LASF1113 # The macro: "__glibcxx_want_tuple_element_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x104 # At line number 260
+ .long .LASF1114 # The macro: "__glibcxx_tuples_by_type 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x10a # At line number 266
+ .long .LASF1115 # The macro: "__glibcxx_want_tuples_by_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10e # At line number 270
+ .long .LASF1116 # The macro: "__glibcxx_robust_nonmodifying_seq_ops 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x114 # At line number 276
+ .long .LASF1117 # The macro: "__glibcxx_want_robust_nonmodifying_seq_ops"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11d # At line number 285
+ .long .LASF1118 # The macro: "__glibcxx_to_chars 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x123 # At line number 291
+ .long .LASF1119 # The macro: "__glibcxx_want_to_chars"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x127 # At line number 295
+ .long .LASF1120 # The macro: "__glibcxx_chrono_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x12d # At line number 301
+ .long .LASF1121 # The macro: "__glibcxx_want_chrono_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x131 # At line number 305
+ .long .LASF1122 # The macro: "__glibcxx_complex_udls 201309L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x137 # At line number 311
+ .long .LASF1123 # The macro: "__glibcxx_want_complex_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13b # At line number 315
+ .long .LASF1124 # The macro: "__glibcxx_generic_associative_lookup 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x141 # At line number 321
+ .long .LASF1125 # The macro: "__glibcxx_want_generic_associative_lookup"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x145 # At line number 325
+ .long .LASF1126 # The macro: "__glibcxx_make_unique 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x14b # At line number 331
+ .long .LASF1127 # The macro: "__glibcxx_want_make_unique"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14f # At line number 335
+ .long .LASF1128 # The macro: "__glibcxx_quoted_string_io 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x155 # At line number 341
+ .long .LASF1129 # The macro: "__glibcxx_want_quoted_string_io"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x159 # At line number 345
+ .long .LASF1130 # The macro: "__glibcxx_shared_timed_mutex 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x15f # At line number 351
+ .long .LASF1131 # The macro: "__glibcxx_want_shared_timed_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x163 # At line number 355
+ .long .LASF1132 # The macro: "__glibcxx_string_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x169 # At line number 361
+ .long .LASF1133 # The macro: "__glibcxx_want_string_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16d # At line number 365
+ .long .LASF1134 # The macro: "__glibcxx_addressof_constexpr 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x173 # At line number 371
+ .long .LASF1135 # The macro: "__glibcxx_want_addressof_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x177 # At line number 375
+ .long .LASF1136 # The macro: "__glibcxx_any 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x17d # At line number 381
+ .long .LASF1137 # The macro: "__glibcxx_want_any"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x181 # At line number 385
+ .long .LASF1138 # The macro: "__glibcxx_apply 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x187 # At line number 391
+ .long .LASF1139 # The macro: "__glibcxx_want_apply"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18b # At line number 395
+ .long .LASF1140 # The macro: "__glibcxx_as_const 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x191 # At line number 401
+ .long .LASF1141 # The macro: "__glibcxx_want_as_const"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x195 # At line number 405
+ .long .LASF1142 # The macro: "__glibcxx_atomic_is_always_lock_free 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19b # At line number 411
+ .long .LASF1143 # The macro: "__glibcxx_want_atomic_is_always_lock_free"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a5 # At line number 421
+ .long .LASF1145 # The macro: "__glibcxx_want_bool_constant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1146 # The macro: "__glibcxx_byte 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1af # At line number 431
+ .long .LASF1147 # The macro: "__glibcxx_want_byte"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1b9 # At line number 441
+ .long .LASF1149 # The macro: "__glibcxx_want_has_unique_object_representations"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1c3 # At line number 451
+ .long .LASF1152 # The macro: "__glibcxx_want_hardware_interference_size"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c7 # At line number 455
+ .long .LASF1153 # The macro: "__glibcxx_invoke 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1cd # At line number 461
+ .long .LASF1154 # The macro: "__glibcxx_want_invoke"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1d7 # At line number 471
+ .long .LASF1156 # The macro: "__glibcxx_want_is_aggregate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1e1 # At line number 481
+ .long .LASF1158 # The macro: "__glibcxx_want_is_invocable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1eb # At line number 491
+ .long .LASF1161 # The macro: "__glibcxx_want_launder"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1f5 # At line number 501
+ .long .LASF1163 # The macro: "__glibcxx_want_logical_traits"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f9 # At line number 505
+ .long .LASF1164 # The macro: "__glibcxx_make_from_tuple 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1ff # At line number 511
+ .long .LASF1165 # The macro: "__glibcxx_want_make_from_tuple"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x203 # At line number 515
+ .long .LASF1166 # The macro: "__glibcxx_not_fn 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x209 # At line number 521
+ .long .LASF1167 # The macro: "__glibcxx_want_not_fn"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x213 # At line number 531
+ .long .LASF1169 # The macro: "__glibcxx_want_type_trait_variable_templates"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x221 # At line number 545
+ .long .LASF1170 # The macro: "__glibcxx_variant 202102L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x227 # At line number 551
+ .long .LASF1171 # The macro: "__glibcxx_want_variant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22b # At line number 555
+ .long .LASF1172 # The macro: "__glibcxx_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x231 # At line number 561
+ .long .LASF1173 # The macro: "__glibcxx_want_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x235 # At line number 565
+ .long .LASF1174 # The macro: "__glibcxx_gcd 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x23b # At line number 571
+ .long .LASF1175 # The macro: "__glibcxx_want_gcd"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23f # At line number 575
+ .long .LASF1176 # The macro: "__glibcxx_gcd_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x245 # At line number 581
+ .long .LASF1177 # The macro: "__glibcxx_want_gcd_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24e # At line number 590
+ .long .LASF1178 # The macro: "__glibcxx_raw_memory_algorithms 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x254 # At line number 596
+ .long .LASF1179 # The macro: "__glibcxx_want_raw_memory_algorithms"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25d # At line number 605
+ .long .LASF1180 # The macro: "__glibcxx_array_constexpr 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x263 # At line number 611
+ .long .LASF1181 # The macro: "__glibcxx_want_array_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x267 # At line number 615
+ .long .LASF1182 # The macro: "__glibcxx_nonmember_container_access 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x26d # At line number 621
+ .long .LASF1183 # The macro: "__glibcxx_want_nonmember_container_access"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x271 # At line number 625
+ .long .LASF1184 # The macro: "__glibcxx_clamp 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x277 # At line number 631
+ .long .LASF1185 # The macro: "__glibcxx_want_clamp"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27b # At line number 635
+ .long .LASF1186 # The macro: "__glibcxx_sample 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x281 # At line number 641
+ .long .LASF1187 # The macro: "__glibcxx_want_sample"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x285 # At line number 645
+ .long .LASF1188 # The macro: "__glibcxx_boyer_moore_searcher 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x28b # At line number 651
+ .long .LASF1189 # The macro: "__glibcxx_want_boyer_moore_searcher"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x294 # At line number 660
+ .long .LASF1190 # The macro: "__glibcxx_chrono 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x29a # At line number 666
+ .long .LASF1191 # The macro: "__glibcxx_want_chrono"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29e # At line number 670
+ .long .LASF1192 # The macro: "__glibcxx_execution 201902L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2a4 # At line number 676
+ .long .LASF1193 # The macro: "__glibcxx_want_execution"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a8 # At line number 680
+ .long .LASF1194 # The macro: "__glibcxx_filesystem 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ae # At line number 686
+ .long .LASF1195 # The macro: "__glibcxx_want_filesystem"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b2 # At line number 690
+ .long .LASF1196 # The macro: "__glibcxx_hypot 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2b8 # At line number 696
+ .long .LASF1197 # The macro: "__glibcxx_want_hypot"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2bc # At line number 700
+ .long .LASF1198 # The macro: "__glibcxx_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2c2 # At line number 706
+ .long .LASF1199 # The macro: "__glibcxx_want_map_try_emplace"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c6 # At line number 710
+ .long .LASF1200 # The macro: "__glibcxx_math_special_functions 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2cc # At line number 716
+ .long .LASF1201 # The macro: "__glibcxx_want_math_special_functions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d0 # At line number 720
+ .long .LASF1202 # The macro: "__glibcxx_memory_resource 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2db # At line number 731
+ .long .LASF1203 # The macro: "__glibcxx_want_memory_resource"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2df # At line number 735
+ .long .LASF1204 # The macro: "__glibcxx_node_extract 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2e5 # At line number 741
+ .long .LASF1205 # The macro: "__glibcxx_want_node_extract"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e9 # At line number 745
+ .long .LASF1206 # The macro: "__glibcxx_parallel_algorithm 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ef # At line number 751
+ .long .LASF1207 # The macro: "__glibcxx_want_parallel_algorithm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f3 # At line number 755
+ .long .LASF1208 # The macro: "__glibcxx_scoped_lock 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2f9 # At line number 761
+ .long .LASF1209 # The macro: "__glibcxx_want_scoped_lock"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2fd # At line number 765
+ .long .LASF1210 # The macro: "__glibcxx_shared_mutex 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x303 # At line number 771
+ .long .LASF1211 # The macro: "__glibcxx_want_shared_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x307 # At line number 775
+ .long .LASF1212 # The macro: "__glibcxx_shared_ptr_weak_type 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x30d # At line number 781
+ .long .LASF1213 # The macro: "__glibcxx_want_shared_ptr_weak_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x316 # At line number 790
+ .long .LASF1214 # The macro: "__glibcxx_string_view 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x31c # At line number 796
+ .long .LASF1215 # The macro: "__glibcxx_want_string_view"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x320 # At line number 800
+ .long .LASF1216 # The macro: "__glibcxx_unordered_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x326 # At line number 806
+ .long .LASF1217 # The macro: "__glibcxx_want_unordered_map_try_emplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x330 # At line number 816
+ .long .LASF1218 # The macro: "__glibcxx_want_assume_aligned"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x33a # At line number 826
+ .long .LASF1219 # The macro: "__glibcxx_want_atomic_flag_test"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x344 # At line number 836
+ .long .LASF1220 # The macro: "__glibcxx_want_atomic_float"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x34e # At line number 846
+ .long .LASF1221 # The macro: "__glibcxx_want_atomic_lock_free_type_aliases"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x358 # At line number 856
+ .long .LASF1222 # The macro: "__glibcxx_want_atomic_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x362 # At line number 866
+ .long .LASF1223 # The macro: "__glibcxx_want_atomic_value_initialization"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x36c # At line number 876
+ .long .LASF1224 # The macro: "__glibcxx_want_bind_front"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x376 # At line number 886
+ .long .LASF1225 # The macro: "__glibcxx_want_bind_back"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x380 # At line number 896
+ .long .LASF1226 # The macro: "__glibcxx_want_starts_ends_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x38a # At line number 906
+ .long .LASF1227 # The macro: "__glibcxx_want_bit_cast"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x394 # At line number 916
+ .long .LASF1228 # The macro: "__glibcxx_want_bitops"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x39e # At line number 926
+ .long .LASF1229 # The macro: "__glibcxx_want_bounded_array_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3a8 # At line number 936
+ .long .LASF1230 # The macro: "__glibcxx_want_concepts"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b6 # At line number 950
+ .long .LASF1231 # The macro: "__glibcxx_optional 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3bc # At line number 956
+ .long .LASF1232 # The macro: "__glibcxx_want_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3c6 # At line number 966
+ .long .LASF1233 # The macro: "__glibcxx_want_destroying_delete"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d0 # At line number 976
+ .long .LASF1234 # The macro: "__glibcxx_want_constexpr_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3da # At line number 986
+ .long .LASF1235 # The macro: "__glibcxx_want_endian"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3e4 # At line number 996
+ .long .LASF1236 # The macro: "__glibcxx_want_int_pow2"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3ee # At line number 1006
+ .long .LASF1237 # The macro: "__glibcxx_want_integer_comparison_functions"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3f8 # At line number 1016
+ .long .LASF1238 # The macro: "__glibcxx_want_is_constant_evaluated"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x401 # At line number 1025
+ .long .LASF1239 # The macro: "__glibcxx_constexpr_char_traits 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x407 # At line number 1031
+ .long .LASF1240 # The macro: "__glibcxx_want_constexpr_char_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x411 # At line number 1041
+ .long .LASF1241 # The macro: "__glibcxx_want_is_layout_compatible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x41b # At line number 1051
+ .long .LASF1242 # The macro: "__glibcxx_want_is_nothrow_convertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x425 # At line number 1061
+ .long .LASF1243 # The macro: "__glibcxx_want_is_pointer_interconvertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x42f # At line number 1071
+ .long .LASF1244 # The macro: "__glibcxx_want_math_constants"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x439 # At line number 1081
+ .long .LASF1245 # The macro: "__glibcxx_want_make_obj_using_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x443 # At line number 1091
+ .long .LASF1246 # The macro: "__glibcxx_want_remove_cvref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x44d # At line number 1101
+ .long .LASF1247 # The macro: "__glibcxx_want_source_location"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x45c # At line number 1116
+ .long .LASF1248 # The macro: "__glibcxx_want_span"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x466 # At line number 1126
+ .long .LASF1249 # The macro: "__glibcxx_want_ssize"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x470 # At line number 1136
+ .long .LASF1250 # The macro: "__glibcxx_want_three_way_comparison"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47a # At line number 1146
+ .long .LASF1251 # The macro: "__glibcxx_want_to_address"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x484 # At line number 1156
+ .long .LASF1252 # The macro: "__glibcxx_want_to_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x48e # At line number 1166
+ .long .LASF1253 # The macro: "__glibcxx_want_type_identity"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x498 # At line number 1176
+ .long .LASF1254 # The macro: "__glibcxx_want_unwrap_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4a2 # At line number 1186
+ .long .LASF1255 # The macro: "__glibcxx_want_constexpr_iterator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4ac # At line number 1196
+ .long .LASF1256 # The macro: "__glibcxx_want_interpolate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4b6 # At line number 1206
+ .long .LASF1257 # The macro: "__glibcxx_want_constexpr_utility"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4c0 # At line number 1216
+ .long .LASF1258 # The macro: "__glibcxx_want_shift"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4d4 # At line number 1236
+ .long .LASF1259 # The macro: "__glibcxx_want_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4de # At line number 1246
+ .long .LASF1260 # The macro: "__glibcxx_want_constexpr_numeric"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4e8 # At line number 1256
+ .long .LASF1261 # The macro: "__glibcxx_want_constexpr_functional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4f7 # At line number 1271
+ .long .LASF1262 # The macro: "__glibcxx_want_constexpr_algorithms"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x501 # At line number 1281
+ .long .LASF1263 # The macro: "__glibcxx_want_constexpr_tuple"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x510 # At line number 1296
+ .long .LASF1264 # The macro: "__glibcxx_want_constexpr_memory"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51a # At line number 1306
+ .long .LASF1265 # The macro: "__glibcxx_want_atomic_shared_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x529 # At line number 1321
+ .long .LASF1266 # The macro: "__glibcxx_want_atomic_wait"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x533 # At line number 1331
+ .long .LASF1267 # The macro: "__glibcxx_want_barrier"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x542 # At line number 1346
+ .long .LASF1268 # The macro: "__glibcxx_want_format"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x54c # At line number 1356
+ .long .LASF1269 # The macro: "__glibcxx_want_format_uchar"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x556 # At line number 1366
+ .long .LASF1270 # The macro: "__glibcxx_want_constexpr_complex"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x560 # At line number 1376
+ .long .LASF1271 # The macro: "__glibcxx_want_constexpr_dynamic_alloc"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56e # At line number 1390
+ .long .LASF1272 # The macro: "__glibcxx_constexpr_string 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x574 # At line number 1396
+ .long .LASF1273 # The macro: "__glibcxx_want_constexpr_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x57e # At line number 1406
+ .long .LASF1274 # The macro: "__glibcxx_want_constexpr_vector"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x58d # At line number 1421
+ .long .LASF1275 # The macro: "__glibcxx_want_constrained_equality"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x597 # At line number 1431
+ .long .LASF1276 # The macro: "__glibcxx_want_erase_if"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5a1 # At line number 1441
+ .long .LASF1277 # The macro: "__glibcxx_want_generic_unordered_lookup"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5ab # At line number 1451
+ .long .LASF1278 # The macro: "__glibcxx_want_jthread"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b5 # At line number 1461
+ .long .LASF1279 # The macro: "__glibcxx_want_latch"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5bf # At line number 1471
+ .long .LASF1280 # The macro: "__glibcxx_want_list_remove_return_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5c9 # At line number 1481
+ .long .LASF1281 # The macro: "__glibcxx_want_polymorphic_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5d3 # At line number 1491
+ .long .LASF1282 # The macro: "__glibcxx_want_move_iterator_concept"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5dd # At line number 1501
+ .long .LASF1283 # The macro: "__glibcxx_want_semaphore"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5e7 # At line number 1511
+ .long .LASF1284 # The macro: "__glibcxx_want_smart_ptr_for_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5f1 # At line number 1521
+ .long .LASF1285 # The macro: "__glibcxx_want_syncbuf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5fb # At line number 1531
+ .long .LASF1286 # The macro: "__glibcxx_want_byteswap"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x605 # At line number 1541
+ .long .LASF1287 # The macro: "__glibcxx_want_constexpr_charconv"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x60f # At line number 1551
+ .long .LASF1288 # The macro: "__glibcxx_want_constexpr_typeinfo"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x619 # At line number 1561
+ .long .LASF1289 # The macro: "__glibcxx_want_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x622 # At line number 1570
+ .long .LASF1290 # The macro: "__glibcxx_want_format_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x62c # At line number 1580
+ .long .LASF1291 # The macro: "__glibcxx_want_freestanding_algorithm"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x636 # At line number 1590
+ .long .LASF1292 # The macro: "__glibcxx_want_freestanding_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x640 # At line number 1600
+ .long .LASF1293 # The macro: "__glibcxx_want_freestanding_cstring"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x64a # At line number 1610
+ .long .LASF1294 # The macro: "__glibcxx_want_freestanding_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x654 # At line number 1620
+ .long .LASF1295 # The macro: "__glibcxx_want_freestanding_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65e # At line number 1630
+ .long .LASF1296 # The macro: "__glibcxx_want_freestanding_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x668 # At line number 1640
+ .long .LASF1297 # The macro: "__glibcxx_want_freestanding_variant"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x672 # At line number 1650
+ .long .LASF1298 # The macro: "__glibcxx_want_invoke_r"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x67c # At line number 1660
+ .long .LASF1299 # The macro: "__glibcxx_want_is_scoped_enum"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x686 # At line number 1670
+ .long .LASF1300 # The macro: "__glibcxx_want_reference_from_temporary"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x690 # At line number 1680
+ .long .LASF1301 # The macro: "__glibcxx_want_containers_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x69a # At line number 1690
+ .long .LASF1302 # The macro: "__glibcxx_want_ranges_to_container"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6a4 # At line number 1700
+ .long .LASF1303 # The macro: "__glibcxx_want_ranges_zip"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ae # At line number 1710
+ .long .LASF1304 # The macro: "__glibcxx_want_ranges_chunk"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6b8 # At line number 1720
+ .long .LASF1305 # The macro: "__glibcxx_want_ranges_slide"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6c2 # At line number 1730
+ .long .LASF1306 # The macro: "__glibcxx_want_ranges_chunk_by"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6cc # At line number 1740
+ .long .LASF1307 # The macro: "__glibcxx_want_ranges_join_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6d6 # At line number 1750
+ .long .LASF1308 # The macro: "__glibcxx_want_ranges_repeat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6e0 # At line number 1760
+ .long .LASF1309 # The macro: "__glibcxx_want_ranges_stride"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ea # At line number 1770
+ .long .LASF1310 # The macro: "__glibcxx_want_ranges_cartesian_product"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6f4 # At line number 1780
+ .long .LASF1311 # The macro: "__glibcxx_want_ranges_as_rvalue"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6fe # At line number 1790
+ .long .LASF1312 # The macro: "__glibcxx_want_ranges_as_const"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x708 # At line number 1800
+ .long .LASF1313 # The macro: "__glibcxx_want_ranges_enumerate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x712 # At line number 1810
+ .long .LASF1314 # The macro: "__glibcxx_want_ranges_fold"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x71c # At line number 1820
+ .long .LASF1315 # The macro: "__glibcxx_want_ranges_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x726 # At line number 1830
+ .long .LASF1316 # The macro: "__glibcxx_want_ranges_iota"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x730 # At line number 1840
+ .long .LASF1317 # The macro: "__glibcxx_want_ranges_find_last"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x73a # At line number 1850
+ .long .LASF1318 # The macro: "__glibcxx_want_constexpr_bitset"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x744 # At line number 1860
+ .long .LASF1319 # The macro: "__glibcxx_want_stdatomic_h"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74e # At line number 1870
+ .long .LASF1320 # The macro: "__glibcxx_want_adaptor_iterator_pair_constructor"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x758 # At line number 1880
+ .long .LASF1321 # The macro: "__glibcxx_want_flat_map"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x762 # At line number 1890
+ .long .LASF1322 # The macro: "__glibcxx_want_flat_set"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x76c # At line number 1900
+ .long .LASF1323 # The macro: "__glibcxx_want_formatters"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x776 # At line number 1910
+ .long .LASF1324 # The macro: "__glibcxx_want_forward_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x780 # At line number 1920
+ .long .LASF1325 # The macro: "__glibcxx_want_generator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78a # At line number 1930
+ .long .LASF1326 # The macro: "__glibcxx_want_ios_noreplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x794 # At line number 1940
+ .long .LASF1327 # The macro: "__glibcxx_want_move_only_function"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x79e # At line number 1950
+ .long .LASF1328 # The macro: "__glibcxx_want_out_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7a8 # At line number 1960
+ .long .LASF1329 # The macro: "__glibcxx_want_print"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7b2 # At line number 1970
+ .long .LASF1330 # The macro: "__glibcxx_want_spanstream"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7bc # At line number 1980
+ .long .LASF1331 # The macro: "__glibcxx_want_stacktrace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7c6 # At line number 1990
+ .long .LASF1332 # The macro: "__glibcxx_want_string_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7d0 # At line number 2000
+ .long .LASF1333 # The macro: "__glibcxx_want_string_resize_and_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7da # At line number 2010
+ .long .LASF1334 # The macro: "__glibcxx_want_to_underlying"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e9 # At line number 2025
+ .long .LASF1335 # The macro: "__glibcxx_want_tuple_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7f3 # At line number 2035
+ .long .LASF1336 # The macro: "__glibcxx_want_unreachable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7fd # At line number 2045
+ .long .LASF1337 # The macro: "__glibcxx_want_algorithm_default_value_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x807 # At line number 2055
+ .long .LASF1338 # The macro: "__glibcxx_want_constexpr_new"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x811 # At line number 2065
+ .long .LASF1339 # The macro: "__glibcxx_want_fstream_native_handle"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x81b # At line number 2075
+ .long .LASF1340 # The macro: "__glibcxx_want_is_virtual_base_of"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x825 # At line number 2085
+ .long .LASF1341 # The macro: "__glibcxx_want_ranges_cache_latest"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x82f # At line number 2095
+ .long .LASF1342 # The macro: "__glibcxx_want_ranges_concat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x839 # At line number 2105
+ .long .LASF1343 # The macro: "__glibcxx_want_ratio"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x843 # At line number 2115
+ .long .LASF1344 # The macro: "__glibcxx_want_reference_wrapper"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x84d # At line number 2125
+ .long .LASF1345 # The macro: "__glibcxx_want_saturation_arithmetic"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x857 # At line number 2135
+ .long .LASF1346 # The macro: "__glibcxx_want_span_initializer_list"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x861 # At line number 2145
+ .long .LASF1347 # The macro: "__glibcxx_want_text_encoding"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x86b # At line number 2155
+ .long .LASF1348 # The macro: "__glibcxx_want_ranges_to_input"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x875 # At line number 2165
+ .long .LASF1349 # The macro: "__glibcxx_want_to_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x87f # At line number 2175
+ .long .LASF1350 # The macro: "__glibcxx_want_modules"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x881 # At line number 2177
+ .long .LASF1351 # The macro: "__glibcxx_want_all"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.cpp_type_traits.h.247.c76f5fcefeda021659c214fc4154481c,comdat
+.Ldebug_macro29:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf7 # At line number 247
+ .long .LASF1436 # The macro: "__INT_N(TYPE) __extension__ template<> struct __is_integer<TYPE> { enum { __value = 1 }; typedef __true_type __type; }; __extension__ template<> struct __is_integer<unsigned TYPE> { enum { __value = 1 }; typedef __true_type __type; };"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x114 # At line number 276
+ .long .LASF1437 # The macro: "__INT_N"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.numeric_traits.h.97.218ab54da1c35bff7230edfa0d0219e8,comdat
+.Ldebug_macro30:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x61 # At line number 97
+ .long .LASF1439 # The macro: "_GLIBCXX_INT_N_TRAITS(T,WIDTH) __extension__ template<> struct __is_integer_nonstrict<T> { enum { __value = 1 }; typedef std::__true_type __type; enum { __width = WIDTH }; }; __extension__ template<> struct __is_integer_nonstrict<unsigned T> { enum { __value = 1 }; typedef std::__true_type __type; enum { __width = WIDTH }; };"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x87 # At line number 135
+ .long .LASF1440 # The macro: "_GLIBCXX_INT_N_TRAITS"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8f # At line number 143
+ .long .LASF1441 # The macro: "__glibcxx_floating(_Tp,_Fval,_Dval,_LDval) (std::__are_same<_Tp, float>::__value ? _Fval : std::__are_same<_Tp, double>::__value ? _Dval : _LDval)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x93 # At line number 147
+ .long .LASF1442 # The macro: "__glibcxx_max_digits10(_Tp) (2 + __glibcxx_floating(_Tp, __FLT_MANT_DIG__, __DBL_MANT_DIG__, __LDBL_MANT_DIG__) * 643L / 2136)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x97 # At line number 151
+ .long .LASF1443 # The macro: "__glibcxx_digits10(_Tp) __glibcxx_floating(_Tp, __FLT_DIG__, __DBL_DIG__, __LDBL_DIG__)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9a # At line number 154
+ .long .LASF1444 # The macro: "__glibcxx_max_exponent10(_Tp) __glibcxx_floating(_Tp, __FLT_MAX_10_EXP__, __DBL_MAX_10_EXP__, __LDBL_MAX_10_EXP__)"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb7 # At line number 183
+ .long .LASF1445 # The macro: "__glibcxx_floating"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb8 # At line number 184
+ .long .LASF1446 # The macro: "__glibcxx_max_digits10"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb9 # At line number 185
+ .long .LASF1447 # The macro: "__glibcxx_digits10"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xba # At line number 186
+ .long .LASF1448 # The macro: "__glibcxx_max_exponent10"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stl_tempbuf.h.70.f8a9d1b22cd67f05ae2d3f2377260bc8,comdat
+.Ldebug_macro31:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x46 # At line number 70
+ .long .LASF1402 # The macro: "_GLIBCXX_OPERATOR_NEW __builtin_operator_new"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1403 # The macro: "_GLIBCXX_OPERATOR_DELETE __builtin_operator_delete"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x69 # At line number 105
+ .long .LASF1449 # The macro: "_GLIBCXX_SIZED_DEALLOC(T,p,n) (p), (n) * sizeof(T)"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78 # At line number 120
+ .long .LASF1405 # The macro: "_GLIBCXX_SIZED_DEALLOC"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb3 # At line number 179
+ .long .LASF1406 # The macro: "_GLIBCXX_OPERATOR_DELETE"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb4 # At line number 180
+ .long .LASF1407 # The macro: "_GLIBCXX_OPERATOR_NEW"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stl_iterator.h.61.5bc243fde8a97ed55fd0715da8a10ac4,comdat
+.Ldebug_macro32:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1453 # The macro: "_STL_ITERATOR_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x728 # At line number 1832
+ .long .LASF1454 # The macro: "_GLIBCXX_MAKE_MOVE_ITERATOR(_Iter) std::make_move_iterator(_Iter)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x729 # At line number 1833
+ .long .LASF1455 # The macro: "_GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(_Iter) std::__make_move_if_noexcept_iterator(_Iter)"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.debug.h.30.14675c66734128005fe180e1012feff9,comdat
+.Ldebug_macro33:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1456 # The macro: "_GLIBCXX_DEBUG_MACRO_SWITCH_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x42 # At line number 66
+ .long .LASF1457 # The macro: "__glibcxx_requires_cond(_Cond,_Msg) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x43 # At line number 67
+ .long .LASF1458 # The macro: "__glibcxx_requires_valid_range(_First,_Last) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x44 # At line number 68
+ .long .LASF1459 # The macro: "__glibcxx_requires_can_increment(_First,_Size) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x45 # At line number 69
+ .long .LASF1460 # The macro: "__glibcxx_requires_can_increment_range(_First1,_Last1,_First2) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x46 # At line number 70
+ .long .LASF1461 # The macro: "__glibcxx_requires_can_decrement_range(_First1,_Last1,_First2) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1462 # The macro: "__glibcxx_requires_sorted(_First,_Last) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x48 # At line number 72
+ .long .LASF1463 # The macro: "__glibcxx_requires_sorted_pred(_First,_Last,_Pred) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x49 # At line number 73
+ .long .LASF1464 # The macro: "__glibcxx_requires_sorted_set(_First1,_Last1,_First2) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4a # At line number 74
+ .long .LASF1465 # The macro: "__glibcxx_requires_sorted_set_pred(_First1,_Last1,_First2,_Pred) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1466 # The macro: "__glibcxx_requires_partitioned_lower(_First,_Last,_Value) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4c # At line number 76
+ .long .LASF1467 # The macro: "__glibcxx_requires_partitioned_upper(_First,_Last,_Value) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4d # At line number 77
+ .long .LASF1468 # The macro: "__glibcxx_requires_partitioned_lower_pred(_First,_Last,_Value,_Pred) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4e # At line number 78
+ .long .LASF1469 # The macro: "__glibcxx_requires_partitioned_upper_pred(_First,_Last,_Value,_Pred) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4f # At line number 79
+ .long .LASF1470 # The macro: "__glibcxx_requires_heap(_First,_Last) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x50 # At line number 80
+ .long .LASF1471 # The macro: "__glibcxx_requires_heap_pred(_First,_Last,_Pred) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1472 # The macro: "__glibcxx_requires_string(_String) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x52 # At line number 82
+ .long .LASF1473 # The macro: "__glibcxx_requires_string_len(_String,_Len) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x53 # At line number 83
+ .long .LASF1474 # The macro: "__glibcxx_requires_irreflexive(_First,_Last) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x54 # At line number 84
+ .long .LASF1475 # The macro: "__glibcxx_requires_irreflexive2(_First,_Last) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x55 # At line number 85
+ .long .LASF1476 # The macro: "__glibcxx_requires_irreflexive_pred(_First,_Last,_Pred) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56 # At line number 86
+ .long .LASF1477 # The macro: "__glibcxx_requires_irreflexive_pred2(_First,_Last,_Pred) "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.concepts.31.ea57833c2d2cf5ded5d66f52bc824ee7,comdat
+.Ldebug_macro34:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1480 # The macro: "_GLIBCXX_CONCEPTS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25 # At line number 37
+ .long .LASF1481 # The macro: "__glibcxx_want_concepts "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.bit.58.ea88997f91bfc9ea788eded5c5af9f1e,comdat
+.Ldebug_macro35:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3a # At line number 58
+ .long .LASF1482 # The macro: "__glibcxx_want_bit_cast "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b # At line number 59
+ .long .LASF1483 # The macro: "__glibcxx_want_byteswap "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3c # At line number 60
+ .long .LASF1484 # The macro: "__glibcxx_want_bitops "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1485 # The macro: "__glibcxx_want_int_pow2 "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3e # At line number 62
+ .long .LASF1486 # The macro: "__glibcxx_want_endian "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stl_algobase.h.391.f046b31537a7eda4575156a5f2152d88,comdat
+.Ldebug_macro36:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x187 # At line number 391
+ .long .LASF1487 # The macro: "_GLIBCXX_TO_ADDR(P) P"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x188 # At line number 392
+ .long .LASF1488 # The macro: "_GLIBCXX_ADVANCE(P,N) P += N"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a6 # At line number 678
+ .long .LASF1489 # The macro: "_GLIBCXX_MOVE3(_Tp,_Up,_Vp) std::move(_Tp, _Up, _Vp)"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2e9 # At line number 745
+ .long .LASF1490 # The macro: "_GLIBCXX_TO_ADDR"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ea # At line number 746
+ .long .LASF1491 # The macro: "_GLIBCXX_ADVANCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x377 # At line number 887
+ .long .LASF1492 # The macro: "_GLIBCXX_MOVE_BACKWARD3(_Tp,_Up,_Vp) std::move_backward(_Tp, _Up, _Vp)"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.tuple.49.28e57568481853c5a2e00d3db484dd79,comdat
+.Ldebug_macro37:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x31 # At line number 49
+ .long .LASF1501 # The macro: "__glibcxx_want_constexpr_tuple "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x32 # At line number 50
+ .long .LASF1502 # The macro: "__glibcxx_want_tuple_element_t "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x33 # At line number 51
+ .long .LASF1503 # The macro: "__glibcxx_want_tuples_by_type "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x34 # At line number 52
+ .long .LASF1504 # The macro: "__glibcxx_want_apply "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35 # At line number 53
+ .long .LASF1505 # The macro: "__glibcxx_want_make_from_tuple "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x36 # At line number 54
+ .long .LASF1506 # The macro: "__glibcxx_want_ranges_zip "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1507 # The macro: "__glibcxx_want_tuple_like "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x38 # At line number 56
+ .long .LASF1508 # The macro: "__glibcxx_want_constrained_equality "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.version.h.55.9d4b65f44a4baa3dea24bd8c586430f4,comdat
+.Ldebug_macro38:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1075 # The macro: "__glibcxx_incomplete_container_elements 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1076 # The macro: "__glibcxx_want_incomplete_container_elements"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1077 # The macro: "__glibcxx_uncaught_exceptions 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1078 # The macro: "__glibcxx_want_uncaught_exceptions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1079 # The macro: "__glibcxx_allocator_traits_is_always_equal 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1080 # The macro: "__glibcxx_want_allocator_traits_is_always_equal"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1082 # The macro: "__glibcxx_want_is_null_pointer"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1084 # The macro: "__glibcxx_want_result_of_sfinae"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1085 # The macro: "__glibcxx_shared_ptr_arrays 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1086 # The macro: "__glibcxx_want_shared_ptr_arrays"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF1088 # The macro: "__glibcxx_want_is_swappable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x88 # At line number 136
+ .long .LASF1090 # The macro: "__glibcxx_want_void_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8c # At line number 140
+ .long .LASF1091 # The macro: "__glibcxx_enable_shared_from_this 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x92 # At line number 146
+ .long .LASF1092 # The macro: "__glibcxx_want_enable_shared_from_this"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x96 # At line number 150
+ .long .LASF1093 # The macro: "__glibcxx_math_spec_funcs 201003L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF1094 # The macro: "__glibcxx_want_math_spec_funcs"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xa6 # At line number 166
+ .long .LASF1095 # The macro: "__glibcxx_want_coroutine"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa # At line number 170
+ .long .LASF1096 # The macro: "__glibcxx_exchange_function 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb0 # At line number 176
+ .long .LASF1097 # The macro: "__glibcxx_want_exchange_function"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4 # At line number 180
+ .long .LASF1098 # The macro: "__glibcxx_integer_sequence 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xba # At line number 186
+ .long .LASF1099 # The macro: "__glibcxx_want_integer_sequence"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xc4 # At line number 196
+ .long .LASF1101 # The macro: "__glibcxx_want_integral_constant_callable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xce # At line number 206
+ .long .LASF1103 # The macro: "__glibcxx_want_is_final"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2 # At line number 210
+ .long .LASF1104 # The macro: "__glibcxx_make_reverse_iterator 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd8 # At line number 216
+ .long .LASF1105 # The macro: "__glibcxx_want_make_reverse_iterator"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc # At line number 220
+ .long .LASF1106 # The macro: "__glibcxx_null_iterators 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe2 # At line number 226
+ .long .LASF1107 # The macro: "__glibcxx_want_null_iterators"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xec # At line number 236
+ .long .LASF1109 # The macro: "__glibcxx_want_transformation_trait_aliases"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf0 # At line number 240
+ .long .LASF1110 # The macro: "__glibcxx_transparent_operators 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf6 # At line number 246
+ .long .LASF1111 # The macro: "__glibcxx_want_transparent_operators"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xfa # At line number 250
+ .long .LASF1112 # The macro: "__glibcxx_tuple_element_t 201402L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xfc # At line number 252
+ .long .LASF1509 # The macro: "__cpp_lib_tuple_element_t 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x100 # At line number 256
+ .long .LASF1113 # The macro: "__glibcxx_want_tuple_element_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x104 # At line number 260
+ .long .LASF1114 # The macro: "__glibcxx_tuples_by_type 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x106 # At line number 262
+ .long .LASF1510 # The macro: "__cpp_lib_tuples_by_type 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x10a # At line number 266
+ .long .LASF1115 # The macro: "__glibcxx_want_tuples_by_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10e # At line number 270
+ .long .LASF1116 # The macro: "__glibcxx_robust_nonmodifying_seq_ops 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x114 # At line number 276
+ .long .LASF1117 # The macro: "__glibcxx_want_robust_nonmodifying_seq_ops"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11d # At line number 285
+ .long .LASF1118 # The macro: "__glibcxx_to_chars 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x123 # At line number 291
+ .long .LASF1119 # The macro: "__glibcxx_want_to_chars"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x127 # At line number 295
+ .long .LASF1120 # The macro: "__glibcxx_chrono_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x12d # At line number 301
+ .long .LASF1121 # The macro: "__glibcxx_want_chrono_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x131 # At line number 305
+ .long .LASF1122 # The macro: "__glibcxx_complex_udls 201309L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x137 # At line number 311
+ .long .LASF1123 # The macro: "__glibcxx_want_complex_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13b # At line number 315
+ .long .LASF1124 # The macro: "__glibcxx_generic_associative_lookup 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x141 # At line number 321
+ .long .LASF1125 # The macro: "__glibcxx_want_generic_associative_lookup"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x145 # At line number 325
+ .long .LASF1126 # The macro: "__glibcxx_make_unique 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x14b # At line number 331
+ .long .LASF1127 # The macro: "__glibcxx_want_make_unique"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14f # At line number 335
+ .long .LASF1128 # The macro: "__glibcxx_quoted_string_io 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x155 # At line number 341
+ .long .LASF1129 # The macro: "__glibcxx_want_quoted_string_io"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x159 # At line number 345
+ .long .LASF1130 # The macro: "__glibcxx_shared_timed_mutex 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x15f # At line number 351
+ .long .LASF1131 # The macro: "__glibcxx_want_shared_timed_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x163 # At line number 355
+ .long .LASF1132 # The macro: "__glibcxx_string_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x169 # At line number 361
+ .long .LASF1133 # The macro: "__glibcxx_want_string_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16d # At line number 365
+ .long .LASF1134 # The macro: "__glibcxx_addressof_constexpr 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x173 # At line number 371
+ .long .LASF1135 # The macro: "__glibcxx_want_addressof_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x177 # At line number 375
+ .long .LASF1136 # The macro: "__glibcxx_any 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x17d # At line number 381
+ .long .LASF1137 # The macro: "__glibcxx_want_any"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x181 # At line number 385
+ .long .LASF1138 # The macro: "__glibcxx_apply 201603L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x183 # At line number 387
+ .long .LASF1511 # The macro: "__cpp_lib_apply 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x187 # At line number 391
+ .long .LASF1139 # The macro: "__glibcxx_want_apply"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18b # At line number 395
+ .long .LASF1140 # The macro: "__glibcxx_as_const 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x191 # At line number 401
+ .long .LASF1141 # The macro: "__glibcxx_want_as_const"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x195 # At line number 405
+ .long .LASF1142 # The macro: "__glibcxx_atomic_is_always_lock_free 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19b # At line number 411
+ .long .LASF1143 # The macro: "__glibcxx_want_atomic_is_always_lock_free"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a5 # At line number 421
+ .long .LASF1145 # The macro: "__glibcxx_want_bool_constant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1146 # The macro: "__glibcxx_byte 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1af # At line number 431
+ .long .LASF1147 # The macro: "__glibcxx_want_byte"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1b9 # At line number 441
+ .long .LASF1149 # The macro: "__glibcxx_want_has_unique_object_representations"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1c3 # At line number 451
+ .long .LASF1152 # The macro: "__glibcxx_want_hardware_interference_size"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c7 # At line number 455
+ .long .LASF1153 # The macro: "__glibcxx_invoke 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1cd # At line number 461
+ .long .LASF1154 # The macro: "__glibcxx_want_invoke"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1d7 # At line number 471
+ .long .LASF1156 # The macro: "__glibcxx_want_is_aggregate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1e1 # At line number 481
+ .long .LASF1158 # The macro: "__glibcxx_want_is_invocable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1eb # At line number 491
+ .long .LASF1161 # The macro: "__glibcxx_want_launder"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1f5 # At line number 501
+ .long .LASF1163 # The macro: "__glibcxx_want_logical_traits"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f9 # At line number 505
+ .long .LASF1164 # The macro: "__glibcxx_make_from_tuple 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1fb # At line number 507
+ .long .LASF1512 # The macro: "__cpp_lib_make_from_tuple 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1ff # At line number 511
+ .long .LASF1165 # The macro: "__glibcxx_want_make_from_tuple"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x203 # At line number 515
+ .long .LASF1166 # The macro: "__glibcxx_not_fn 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x209 # At line number 521
+ .long .LASF1167 # The macro: "__glibcxx_want_not_fn"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x213 # At line number 531
+ .long .LASF1169 # The macro: "__glibcxx_want_type_trait_variable_templates"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x221 # At line number 545
+ .long .LASF1170 # The macro: "__glibcxx_variant 202102L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x227 # At line number 551
+ .long .LASF1171 # The macro: "__glibcxx_want_variant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22b # At line number 555
+ .long .LASF1172 # The macro: "__glibcxx_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x231 # At line number 561
+ .long .LASF1173 # The macro: "__glibcxx_want_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x235 # At line number 565
+ .long .LASF1174 # The macro: "__glibcxx_gcd 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x23b # At line number 571
+ .long .LASF1175 # The macro: "__glibcxx_want_gcd"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23f # At line number 575
+ .long .LASF1176 # The macro: "__glibcxx_gcd_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x245 # At line number 581
+ .long .LASF1177 # The macro: "__glibcxx_want_gcd_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24e # At line number 590
+ .long .LASF1178 # The macro: "__glibcxx_raw_memory_algorithms 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x254 # At line number 596
+ .long .LASF1179 # The macro: "__glibcxx_want_raw_memory_algorithms"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25d # At line number 605
+ .long .LASF1180 # The macro: "__glibcxx_array_constexpr 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x263 # At line number 611
+ .long .LASF1181 # The macro: "__glibcxx_want_array_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x267 # At line number 615
+ .long .LASF1182 # The macro: "__glibcxx_nonmember_container_access 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x26d # At line number 621
+ .long .LASF1183 # The macro: "__glibcxx_want_nonmember_container_access"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x271 # At line number 625
+ .long .LASF1184 # The macro: "__glibcxx_clamp 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x277 # At line number 631
+ .long .LASF1185 # The macro: "__glibcxx_want_clamp"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27b # At line number 635
+ .long .LASF1186 # The macro: "__glibcxx_sample 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x281 # At line number 641
+ .long .LASF1187 # The macro: "__glibcxx_want_sample"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x285 # At line number 645
+ .long .LASF1188 # The macro: "__glibcxx_boyer_moore_searcher 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x28b # At line number 651
+ .long .LASF1189 # The macro: "__glibcxx_want_boyer_moore_searcher"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x294 # At line number 660
+ .long .LASF1190 # The macro: "__glibcxx_chrono 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x29a # At line number 666
+ .long .LASF1191 # The macro: "__glibcxx_want_chrono"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29e # At line number 670
+ .long .LASF1192 # The macro: "__glibcxx_execution 201902L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2a4 # At line number 676
+ .long .LASF1193 # The macro: "__glibcxx_want_execution"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a8 # At line number 680
+ .long .LASF1194 # The macro: "__glibcxx_filesystem 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ae # At line number 686
+ .long .LASF1195 # The macro: "__glibcxx_want_filesystem"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b2 # At line number 690
+ .long .LASF1196 # The macro: "__glibcxx_hypot 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2b8 # At line number 696
+ .long .LASF1197 # The macro: "__glibcxx_want_hypot"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2bc # At line number 700
+ .long .LASF1198 # The macro: "__glibcxx_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2c2 # At line number 706
+ .long .LASF1199 # The macro: "__glibcxx_want_map_try_emplace"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c6 # At line number 710
+ .long .LASF1200 # The macro: "__glibcxx_math_special_functions 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2cc # At line number 716
+ .long .LASF1201 # The macro: "__glibcxx_want_math_special_functions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d0 # At line number 720
+ .long .LASF1202 # The macro: "__glibcxx_memory_resource 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2db # At line number 731
+ .long .LASF1203 # The macro: "__glibcxx_want_memory_resource"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2df # At line number 735
+ .long .LASF1204 # The macro: "__glibcxx_node_extract 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2e5 # At line number 741
+ .long .LASF1205 # The macro: "__glibcxx_want_node_extract"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e9 # At line number 745
+ .long .LASF1206 # The macro: "__glibcxx_parallel_algorithm 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ef # At line number 751
+ .long .LASF1207 # The macro: "__glibcxx_want_parallel_algorithm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f3 # At line number 755
+ .long .LASF1208 # The macro: "__glibcxx_scoped_lock 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2f9 # At line number 761
+ .long .LASF1209 # The macro: "__glibcxx_want_scoped_lock"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2fd # At line number 765
+ .long .LASF1210 # The macro: "__glibcxx_shared_mutex 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x303 # At line number 771
+ .long .LASF1211 # The macro: "__glibcxx_want_shared_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x307 # At line number 775
+ .long .LASF1212 # The macro: "__glibcxx_shared_ptr_weak_type 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x30d # At line number 781
+ .long .LASF1213 # The macro: "__glibcxx_want_shared_ptr_weak_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x316 # At line number 790
+ .long .LASF1214 # The macro: "__glibcxx_string_view 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x31c # At line number 796
+ .long .LASF1215 # The macro: "__glibcxx_want_string_view"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x320 # At line number 800
+ .long .LASF1216 # The macro: "__glibcxx_unordered_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x326 # At line number 806
+ .long .LASF1217 # The macro: "__glibcxx_want_unordered_map_try_emplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x330 # At line number 816
+ .long .LASF1218 # The macro: "__glibcxx_want_assume_aligned"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x33a # At line number 826
+ .long .LASF1219 # The macro: "__glibcxx_want_atomic_flag_test"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x344 # At line number 836
+ .long .LASF1220 # The macro: "__glibcxx_want_atomic_float"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x34e # At line number 846
+ .long .LASF1221 # The macro: "__glibcxx_want_atomic_lock_free_type_aliases"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x358 # At line number 856
+ .long .LASF1222 # The macro: "__glibcxx_want_atomic_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x362 # At line number 866
+ .long .LASF1223 # The macro: "__glibcxx_want_atomic_value_initialization"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x36c # At line number 876
+ .long .LASF1224 # The macro: "__glibcxx_want_bind_front"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x376 # At line number 886
+ .long .LASF1225 # The macro: "__glibcxx_want_bind_back"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x380 # At line number 896
+ .long .LASF1226 # The macro: "__glibcxx_want_starts_ends_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x38a # At line number 906
+ .long .LASF1227 # The macro: "__glibcxx_want_bit_cast"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x394 # At line number 916
+ .long .LASF1228 # The macro: "__glibcxx_want_bitops"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x39e # At line number 926
+ .long .LASF1229 # The macro: "__glibcxx_want_bounded_array_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3a8 # At line number 936
+ .long .LASF1230 # The macro: "__glibcxx_want_concepts"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b6 # At line number 950
+ .long .LASF1231 # The macro: "__glibcxx_optional 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3bc # At line number 956
+ .long .LASF1232 # The macro: "__glibcxx_want_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3c6 # At line number 966
+ .long .LASF1233 # The macro: "__glibcxx_want_destroying_delete"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d0 # At line number 976
+ .long .LASF1234 # The macro: "__glibcxx_want_constexpr_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3da # At line number 986
+ .long .LASF1235 # The macro: "__glibcxx_want_endian"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3e4 # At line number 996
+ .long .LASF1236 # The macro: "__glibcxx_want_int_pow2"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3ee # At line number 1006
+ .long .LASF1237 # The macro: "__glibcxx_want_integer_comparison_functions"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3f8 # At line number 1016
+ .long .LASF1238 # The macro: "__glibcxx_want_is_constant_evaluated"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x401 # At line number 1025
+ .long .LASF1239 # The macro: "__glibcxx_constexpr_char_traits 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x407 # At line number 1031
+ .long .LASF1240 # The macro: "__glibcxx_want_constexpr_char_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x411 # At line number 1041
+ .long .LASF1241 # The macro: "__glibcxx_want_is_layout_compatible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x41b # At line number 1051
+ .long .LASF1242 # The macro: "__glibcxx_want_is_nothrow_convertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x425 # At line number 1061
+ .long .LASF1243 # The macro: "__glibcxx_want_is_pointer_interconvertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x42f # At line number 1071
+ .long .LASF1244 # The macro: "__glibcxx_want_math_constants"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x439 # At line number 1081
+ .long .LASF1245 # The macro: "__glibcxx_want_make_obj_using_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x443 # At line number 1091
+ .long .LASF1246 # The macro: "__glibcxx_want_remove_cvref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x44d # At line number 1101
+ .long .LASF1247 # The macro: "__glibcxx_want_source_location"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x45c # At line number 1116
+ .long .LASF1248 # The macro: "__glibcxx_want_span"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x466 # At line number 1126
+ .long .LASF1249 # The macro: "__glibcxx_want_ssize"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x470 # At line number 1136
+ .long .LASF1250 # The macro: "__glibcxx_want_three_way_comparison"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47a # At line number 1146
+ .long .LASF1251 # The macro: "__glibcxx_want_to_address"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x484 # At line number 1156
+ .long .LASF1252 # The macro: "__glibcxx_want_to_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x48e # At line number 1166
+ .long .LASF1253 # The macro: "__glibcxx_want_type_identity"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x498 # At line number 1176
+ .long .LASF1254 # The macro: "__glibcxx_want_unwrap_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4a2 # At line number 1186
+ .long .LASF1255 # The macro: "__glibcxx_want_constexpr_iterator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4ac # At line number 1196
+ .long .LASF1256 # The macro: "__glibcxx_want_interpolate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4b6 # At line number 1206
+ .long .LASF1257 # The macro: "__glibcxx_want_constexpr_utility"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4c0 # At line number 1216
+ .long .LASF1258 # The macro: "__glibcxx_want_shift"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4d4 # At line number 1236
+ .long .LASF1259 # The macro: "__glibcxx_want_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4de # At line number 1246
+ .long .LASF1260 # The macro: "__glibcxx_want_constexpr_numeric"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4e8 # At line number 1256
+ .long .LASF1261 # The macro: "__glibcxx_want_constexpr_functional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4f7 # At line number 1271
+ .long .LASF1262 # The macro: "__glibcxx_want_constexpr_algorithms"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x501 # At line number 1281
+ .long .LASF1263 # The macro: "__glibcxx_want_constexpr_tuple"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x510 # At line number 1296
+ .long .LASF1264 # The macro: "__glibcxx_want_constexpr_memory"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51a # At line number 1306
+ .long .LASF1265 # The macro: "__glibcxx_want_atomic_shared_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x529 # At line number 1321
+ .long .LASF1266 # The macro: "__glibcxx_want_atomic_wait"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x533 # At line number 1331
+ .long .LASF1267 # The macro: "__glibcxx_want_barrier"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x542 # At line number 1346
+ .long .LASF1268 # The macro: "__glibcxx_want_format"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x54c # At line number 1356
+ .long .LASF1269 # The macro: "__glibcxx_want_format_uchar"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x556 # At line number 1366
+ .long .LASF1270 # The macro: "__glibcxx_want_constexpr_complex"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x560 # At line number 1376
+ .long .LASF1271 # The macro: "__glibcxx_want_constexpr_dynamic_alloc"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56e # At line number 1390
+ .long .LASF1272 # The macro: "__glibcxx_constexpr_string 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x574 # At line number 1396
+ .long .LASF1273 # The macro: "__glibcxx_want_constexpr_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x57e # At line number 1406
+ .long .LASF1274 # The macro: "__glibcxx_want_constexpr_vector"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x58d # At line number 1421
+ .long .LASF1275 # The macro: "__glibcxx_want_constrained_equality"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x597 # At line number 1431
+ .long .LASF1276 # The macro: "__glibcxx_want_erase_if"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5a1 # At line number 1441
+ .long .LASF1277 # The macro: "__glibcxx_want_generic_unordered_lookup"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5ab # At line number 1451
+ .long .LASF1278 # The macro: "__glibcxx_want_jthread"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b5 # At line number 1461
+ .long .LASF1279 # The macro: "__glibcxx_want_latch"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5bf # At line number 1471
+ .long .LASF1280 # The macro: "__glibcxx_want_list_remove_return_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5c9 # At line number 1481
+ .long .LASF1281 # The macro: "__glibcxx_want_polymorphic_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5d3 # At line number 1491
+ .long .LASF1282 # The macro: "__glibcxx_want_move_iterator_concept"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5dd # At line number 1501
+ .long .LASF1283 # The macro: "__glibcxx_want_semaphore"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5e7 # At line number 1511
+ .long .LASF1284 # The macro: "__glibcxx_want_smart_ptr_for_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5f1 # At line number 1521
+ .long .LASF1285 # The macro: "__glibcxx_want_syncbuf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5fb # At line number 1531
+ .long .LASF1286 # The macro: "__glibcxx_want_byteswap"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x605 # At line number 1541
+ .long .LASF1287 # The macro: "__glibcxx_want_constexpr_charconv"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x60f # At line number 1551
+ .long .LASF1288 # The macro: "__glibcxx_want_constexpr_typeinfo"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x619 # At line number 1561
+ .long .LASF1289 # The macro: "__glibcxx_want_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x622 # At line number 1570
+ .long .LASF1290 # The macro: "__glibcxx_want_format_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x62c # At line number 1580
+ .long .LASF1291 # The macro: "__glibcxx_want_freestanding_algorithm"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x636 # At line number 1590
+ .long .LASF1292 # The macro: "__glibcxx_want_freestanding_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x640 # At line number 1600
+ .long .LASF1293 # The macro: "__glibcxx_want_freestanding_cstring"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x64a # At line number 1610
+ .long .LASF1294 # The macro: "__glibcxx_want_freestanding_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x654 # At line number 1620
+ .long .LASF1295 # The macro: "__glibcxx_want_freestanding_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65e # At line number 1630
+ .long .LASF1296 # The macro: "__glibcxx_want_freestanding_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x668 # At line number 1640
+ .long .LASF1297 # The macro: "__glibcxx_want_freestanding_variant"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x672 # At line number 1650
+ .long .LASF1298 # The macro: "__glibcxx_want_invoke_r"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x67c # At line number 1660
+ .long .LASF1299 # The macro: "__glibcxx_want_is_scoped_enum"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x686 # At line number 1670
+ .long .LASF1300 # The macro: "__glibcxx_want_reference_from_temporary"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x690 # At line number 1680
+ .long .LASF1301 # The macro: "__glibcxx_want_containers_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x69a # At line number 1690
+ .long .LASF1302 # The macro: "__glibcxx_want_ranges_to_container"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6a4 # At line number 1700
+ .long .LASF1303 # The macro: "__glibcxx_want_ranges_zip"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ae # At line number 1710
+ .long .LASF1304 # The macro: "__glibcxx_want_ranges_chunk"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6b8 # At line number 1720
+ .long .LASF1305 # The macro: "__glibcxx_want_ranges_slide"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6c2 # At line number 1730
+ .long .LASF1306 # The macro: "__glibcxx_want_ranges_chunk_by"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6cc # At line number 1740
+ .long .LASF1307 # The macro: "__glibcxx_want_ranges_join_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6d6 # At line number 1750
+ .long .LASF1308 # The macro: "__glibcxx_want_ranges_repeat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6e0 # At line number 1760
+ .long .LASF1309 # The macro: "__glibcxx_want_ranges_stride"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ea # At line number 1770
+ .long .LASF1310 # The macro: "__glibcxx_want_ranges_cartesian_product"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6f4 # At line number 1780
+ .long .LASF1311 # The macro: "__glibcxx_want_ranges_as_rvalue"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6fe # At line number 1790
+ .long .LASF1312 # The macro: "__glibcxx_want_ranges_as_const"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x708 # At line number 1800
+ .long .LASF1313 # The macro: "__glibcxx_want_ranges_enumerate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x712 # At line number 1810
+ .long .LASF1314 # The macro: "__glibcxx_want_ranges_fold"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x71c # At line number 1820
+ .long .LASF1315 # The macro: "__glibcxx_want_ranges_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x726 # At line number 1830
+ .long .LASF1316 # The macro: "__glibcxx_want_ranges_iota"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x730 # At line number 1840
+ .long .LASF1317 # The macro: "__glibcxx_want_ranges_find_last"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x73a # At line number 1850
+ .long .LASF1318 # The macro: "__glibcxx_want_constexpr_bitset"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x744 # At line number 1860
+ .long .LASF1319 # The macro: "__glibcxx_want_stdatomic_h"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74e # At line number 1870
+ .long .LASF1320 # The macro: "__glibcxx_want_adaptor_iterator_pair_constructor"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x758 # At line number 1880
+ .long .LASF1321 # The macro: "__glibcxx_want_flat_map"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x762 # At line number 1890
+ .long .LASF1322 # The macro: "__glibcxx_want_flat_set"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x76c # At line number 1900
+ .long .LASF1323 # The macro: "__glibcxx_want_formatters"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x776 # At line number 1910
+ .long .LASF1324 # The macro: "__glibcxx_want_forward_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x780 # At line number 1920
+ .long .LASF1325 # The macro: "__glibcxx_want_generator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78a # At line number 1930
+ .long .LASF1326 # The macro: "__glibcxx_want_ios_noreplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x794 # At line number 1940
+ .long .LASF1327 # The macro: "__glibcxx_want_move_only_function"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x79e # At line number 1950
+ .long .LASF1328 # The macro: "__glibcxx_want_out_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7a8 # At line number 1960
+ .long .LASF1329 # The macro: "__glibcxx_want_print"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7b2 # At line number 1970
+ .long .LASF1330 # The macro: "__glibcxx_want_spanstream"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7bc # At line number 1980
+ .long .LASF1331 # The macro: "__glibcxx_want_stacktrace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7c6 # At line number 1990
+ .long .LASF1332 # The macro: "__glibcxx_want_string_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7d0 # At line number 2000
+ .long .LASF1333 # The macro: "__glibcxx_want_string_resize_and_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7da # At line number 2010
+ .long .LASF1334 # The macro: "__glibcxx_want_to_underlying"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e9 # At line number 2025
+ .long .LASF1335 # The macro: "__glibcxx_want_tuple_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7f3 # At line number 2035
+ .long .LASF1336 # The macro: "__glibcxx_want_unreachable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7fd # At line number 2045
+ .long .LASF1337 # The macro: "__glibcxx_want_algorithm_default_value_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x807 # At line number 2055
+ .long .LASF1338 # The macro: "__glibcxx_want_constexpr_new"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x811 # At line number 2065
+ .long .LASF1339 # The macro: "__glibcxx_want_fstream_native_handle"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x81b # At line number 2075
+ .long .LASF1340 # The macro: "__glibcxx_want_is_virtual_base_of"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x825 # At line number 2085
+ .long .LASF1341 # The macro: "__glibcxx_want_ranges_cache_latest"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x82f # At line number 2095
+ .long .LASF1342 # The macro: "__glibcxx_want_ranges_concat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x839 # At line number 2105
+ .long .LASF1343 # The macro: "__glibcxx_want_ratio"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x843 # At line number 2115
+ .long .LASF1344 # The macro: "__glibcxx_want_reference_wrapper"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x84d # At line number 2125
+ .long .LASF1345 # The macro: "__glibcxx_want_saturation_arithmetic"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x857 # At line number 2135
+ .long .LASF1346 # The macro: "__glibcxx_want_span_initializer_list"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x861 # At line number 2145
+ .long .LASF1347 # The macro: "__glibcxx_want_text_encoding"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x86b # At line number 2155
+ .long .LASF1348 # The macro: "__glibcxx_want_ranges_to_input"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x875 # At line number 2165
+ .long .LASF1349 # The macro: "__glibcxx_want_to_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x87f # At line number 2175
+ .long .LASF1350 # The macro: "__glibcxx_want_modules"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x881 # At line number 2177
+ .long .LASF1351 # The macro: "__glibcxx_want_all"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.tuple.1435.d67aea3b9a6325c4550c93c814ec362b,comdat
+.Ldebug_macro39:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x59b # At line number 1435
+ .long .LASF1433 # The macro: "__glibcxx_no_dangling_refs"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5ab # At line number 1451
+ .long .LASF1513 # The macro: "__glibcxx_no_dangling_refs(U) "
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x819 # At line number 2073
+ .long .LASF1433 # The macro: "__glibcxx_no_dangling_refs"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x822 # At line number 2082
+ .long .LASF1430 # The macro: "__glibcxx_no_dangling_refs(_U1,_U2) "
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xbd3 # At line number 3027
+ .long .LASF1433 # The macro: "__glibcxx_no_dangling_refs"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.functional_hash.h.118.388637d73fc5240c0e876c238ef18aa3,comdat
+.Ldebug_macro40:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x76 # At line number 118
+ .long .LASF1518 # The macro: "_Cxx_hashtable_define_trivial_hash(_Tp) template<> struct hash<_Tp> : public __hash_base<size_t, _Tp> { size_t operator()(_Tp __val) const noexcept { return static_cast<size_t>(__val); } };"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xca # At line number 202
+ .long .LASF1519 # The macro: "_Cxx_hashtable_define_trivial_hash"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.wchar.h.24.10c1a3649a347ee5acc556316eedb15a,comdat
+.Ldebug_macro41:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18 # At line number 24
+ .long .LASF1526 # The macro: "_WCHAR_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a # At line number 26
+ .long .LASF1527 # The macro: "__GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.libcheaderstart.h.31.ef39b7b23471fa34d163e8083abf71d4,comdat
+.Ldebug_macro42:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1528 # The macro: "__GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x25 # At line number 37
+ .long .LASF1529 # The macro: "__GLIBC_USE_LIB_EXT2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF1530 # The macro: "__GLIBC_USE_LIB_EXT2 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x43 # At line number 67
+ .long .LASF1531 # The macro: "__GLIBC_USE_IEC_60559_BFP_EXT"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x45 # At line number 69
+ .long .LASF1532 # The macro: "__GLIBC_USE_IEC_60559_BFP_EXT 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x49 # At line number 73
+ .long .LASF1533 # The macro: "__GLIBC_USE_IEC_60559_BFP_EXT_C23"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1534 # The macro: "__GLIBC_USE_IEC_60559_BFP_EXT_C23 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4f # At line number 79
+ .long .LASF1535 # The macro: "__GLIBC_USE_IEC_60559_EXT"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1536 # The macro: "__GLIBC_USE_IEC_60559_EXT 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5a # At line number 90
+ .long .LASF1537 # The macro: "__GLIBC_USE_IEC_60559_FUNCS_EXT"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5c # At line number 92
+ .long .LASF1538 # The macro: "__GLIBC_USE_IEC_60559_FUNCS_EXT 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x60 # At line number 96
+ .long .LASF1539 # The macro: "__GLIBC_USE_IEC_60559_FUNCS_EXT_C23"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x62 # At line number 98
+ .long .LASF1540 # The macro: "__GLIBC_USE_IEC_60559_FUNCS_EXT_C23 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x69 # At line number 105
+ .long .LASF1541 # The macro: "__GLIBC_USE_IEC_60559_TYPES_EXT"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6b # At line number 107
+ .long .LASF1542 # The macro: "__GLIBC_USE_IEC_60559_TYPES_EXT 1"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.floatn.h.20.40a9ac728e59b3a32d20c30e247f330a,comdat
+.Ldebug_macro43:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1543 # The macro: "_BITS_FLOATN_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25 # At line number 37
+ .long .LASF1544 # The macro: "__HAVE_FLOAT128 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d # At line number 45
+ .long .LASF1545 # The macro: "__HAVE_DISTINCT_FLOAT128 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35 # At line number 53
+ .long .LASF1546 # The macro: "__HAVE_FLOAT64X 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b # At line number 59
+ .long .LASF1547 # The macro: "__HAVE_FLOAT64X_LONG_DOUBLE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x48 # At line number 72
+ .long .LASF1548 # The macro: "__f128(x) x ##f128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56 # At line number 86
+ .long .LASF1549 # The macro: "__CFLOAT128 _Complex _Float128"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.floatncommon.h.34.df172c769a97023fbe97facd72e1212b,comdat
+.Ldebug_macro44:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22 # At line number 34
+ .long .LASF1551 # The macro: "__HAVE_FLOAT16 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23 # At line number 35
+ .long .LASF1552 # The macro: "__HAVE_FLOAT32 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24 # At line number 36
+ .long .LASF1553 # The macro: "__HAVE_FLOAT64 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25 # At line number 37
+ .long .LASF1554 # The macro: "__HAVE_FLOAT32X 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x26 # At line number 38
+ .long .LASF1555 # The macro: "__HAVE_FLOAT128X 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x34 # At line number 52
+ .long .LASF1556 # The macro: "__HAVE_DISTINCT_FLOAT16 __HAVE_FLOAT16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35 # At line number 53
+ .long .LASF1557 # The macro: "__HAVE_DISTINCT_FLOAT32 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x36 # At line number 54
+ .long .LASF1558 # The macro: "__HAVE_DISTINCT_FLOAT64 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1559 # The macro: "__HAVE_DISTINCT_FLOAT32X 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x38 # At line number 56
+ .long .LASF1560 # The macro: "__HAVE_DISTINCT_FLOAT64X 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1561 # The macro: "__HAVE_DISTINCT_FLOAT128X __HAVE_FLOAT128X"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3f # At line number 63
+ .long .LASF1562 # The macro: "__HAVE_FLOAT128_UNLIKE_LDBL (__HAVE_DISTINCT_FLOAT128 && __LDBL_MANT_DIG__ != 113)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x48 # At line number 72
+ .long .LASF1563 # The macro: "__HAVE_FLOATN_NOT_TYPEDEF 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5d # At line number 93
+ .long .LASF1564 # The macro: "__f32(x) x ##f32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x69 # At line number 105
+ .long .LASF1565 # The macro: "__f64(x) x ##f64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x71 # At line number 113
+ .long .LASF1566 # The macro: "__f32x(x) x ##f32x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7d # At line number 125
+ .long .LASF1567 # The macro: "__f64x(x) x ##f64x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x97 # At line number 151
+ .long .LASF1568 # The macro: "__CFLOAT32 _Complex _Float32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa3 # At line number 163
+ .long .LASF1569 # The macro: "__CFLOAT64 _Complex _Float64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xab # At line number 171
+ .long .LASF1570 # The macro: "__CFLOAT32X _Complex _Float32x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb7 # At line number 183
+ .long .LASF1571 # The macro: "__CFLOAT64X _Complex _Float64x"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.wchar.h.32.859ec9de6e76762773b13581955bbb2b,comdat
+.Ldebug_macro45:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20 # At line number 32
+ .long .LASF1572 # The macro: "__need_size_t "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x21 # At line number 33
+ .long .LASF1573 # The macro: "__need_wchar_t "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22 # At line number 34
+ .long .LASF1574 # The macro: "__need_NULL "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.200.c4d2c1d067703956b4be3d13d3c90377,comdat
+.Ldebug_macro46:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc8 # At line number 200
+ .long .LASF1575 # The macro: "__size_t__ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc9 # At line number 201
+ .long .LASF1576 # The macro: "__SIZE_T__ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xca # At line number 202
+ .long .LASF1577 # The macro: "_SIZE_T "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcb # At line number 203
+ .long .LASF1578 # The macro: "_SYS_SIZE_T_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcc # At line number 204
+ .long .LASF1579 # The macro: "_T_SIZE_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcd # At line number 205
+ .long .LASF1580 # The macro: "_T_SIZE "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xce # At line number 206
+ .long .LASF1581 # The macro: "__SIZE_T "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcf # At line number 207
+ .long .LASF1582 # The macro: "_SIZE_T_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd0 # At line number 208
+ .long .LASF1583 # The macro: "_BSD_SIZE_T_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd1 # At line number 209
+ .long .LASF1584 # The macro: "_SIZE_T_DEFINED_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2 # At line number 210
+ .long .LASF1585 # The macro: "_SIZE_T_DEFINED "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd3 # At line number 211
+ .long .LASF1586 # The macro: "_BSD_SIZE_T_DEFINED_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd4 # At line number 212
+ .long .LASF1587 # The macro: "_SIZE_T_DECLARED "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd5 # At line number 213
+ .long .LASF1588 # The macro: "__DEFINED_size_t "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd6 # At line number 214
+ .long .LASF1589 # The macro: "___int_size_t_h "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd7 # At line number 215
+ .long .LASF1590 # The macro: "_GCC_SIZE_T "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd8 # At line number 216
+ .long .LASF1591 # The macro: "_SIZET_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdf # At line number 223
+ .long .LASF1592 # The macro: "__size_t "
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xfc # At line number 252
+ .long .LASF1593 # The macro: "__need_size_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11a # At line number 282
+ .long .LASF1594 # The macro: "__wchar_t__ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11b # At line number 283
+ .long .LASF1595 # The macro: "__WCHAR_T__ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11c # At line number 284
+ .long .LASF1596 # The macro: "_WCHAR_T "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11d # At line number 285
+ .long .LASF1597 # The macro: "_T_WCHAR_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11e # At line number 286
+ .long .LASF1598 # The macro: "_T_WCHAR "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11f # At line number 287
+ .long .LASF1599 # The macro: "__WCHAR_T "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x120 # At line number 288
+ .long .LASF1600 # The macro: "_WCHAR_T_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x121 # At line number 289
+ .long .LASF1601 # The macro: "_BSD_WCHAR_T_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x122 # At line number 290
+ .long .LASF1602 # The macro: "_WCHAR_T_DEFINED_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x123 # At line number 291
+ .long .LASF1603 # The macro: "_WCHAR_T_DEFINED "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x124 # At line number 292
+ .long .LASF1604 # The macro: "_WCHAR_T_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x125 # At line number 293
+ .long .LASF1605 # The macro: "___int_wchar_t_h "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x126 # At line number 294
+ .long .LASF1606 # The macro: "__INT_WCHAR_T_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x127 # At line number 295
+ .long .LASF1607 # The macro: "_GCC_WCHAR_T "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x128 # At line number 296
+ .long .LASF1608 # The macro: "_WCHAR_T_DECLARED "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x129 # At line number 297
+ .long .LASF1609 # The macro: "__DEFINED_wchar_t "
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x136 # At line number 310
+ .long .LASF1610 # The macro: "_BSD_WCHAR_T_"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x16c # At line number 364
+ .long .LASF1611 # The macro: "__need_wchar_t"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19e # At line number 414
+ .long .LASF1612 # The macro: "NULL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a0 # At line number 416
+ .long .LASF1613 # The macro: "NULL __null"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1614 # The macro: "__need_NULL"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stdarg.h.34.3a23a216c0c293b3d2ea2e89281481e6,comdat
+.Ldebug_macro47:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x22 # At line number 34
+ .long .LASF1616 # The macro: "__need___va_list"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27 # At line number 39
+ .long .LASF1617 # The macro: "__GNUC_VA_LIST "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.wchar.h.20.510818a05484290d697a517509bf4b2d,comdat
+.Ldebug_macro48:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1619 # The macro: "_BITS_WCHAR_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22 # At line number 34
+ .long .LASF1620 # The macro: "__WCHAR_MAX __WCHAR_MAX__"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a # At line number 42
+ .long .LASF1621 # The macro: "__WCHAR_MIN __WCHAR_MIN__"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.wint_t.h.2.b153cb48df5337e6e56fe1404a1b29c5,comdat
+.Ldebug_macro49:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1622 # The macro: "__wint_t_defined 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa # At line number 10
+ .long .LASF1623 # The macro: "_WINT_T 1"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.wchar.h.65.e3fe15defaa684f3e64fa6c530673c3a,comdat
+.Ldebug_macro50:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1630 # The macro: "__CORRECT_ISO_CPP_WCHAR_H_PROTO "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x46 # At line number 70
+ .long .LASF1631 # The macro: "WCHAR_MIN __WCHAR_MIN"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1632 # The macro: "WCHAR_MAX __WCHAR_MAX"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1633 # The macro: "WEOF (0xffffffffu)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c9 # At line number 713
+ .long .LASF1634 # The macro: "__attr_dealloc_fclose "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.cwchar.70.10f0ac513f08a236e4be3486931c2c1b,comdat
+.Ldebug_macro51:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x46 # At line number 70
+ .long .LASF1635 # The macro: "btowc"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1636 # The macro: "fgetwc"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x48 # At line number 72
+ .long .LASF1637 # The macro: "fgetws"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x49 # At line number 73
+ .long .LASF1638 # The macro: "fputwc"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4a # At line number 74
+ .long .LASF1639 # The macro: "fputws"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1640 # The macro: "fwide"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4c # At line number 76
+ .long .LASF1641 # The macro: "fwprintf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4d # At line number 77
+ .long .LASF1642 # The macro: "fwscanf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4e # At line number 78
+ .long .LASF1643 # The macro: "getwc"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4f # At line number 79
+ .long .LASF1644 # The macro: "getwchar"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x50 # At line number 80
+ .long .LASF1645 # The macro: "mbrlen"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1646 # The macro: "mbrtowc"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x52 # At line number 82
+ .long .LASF1647 # The macro: "mbsinit"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x53 # At line number 83
+ .long .LASF1648 # The macro: "mbsrtowcs"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x54 # At line number 84
+ .long .LASF1649 # The macro: "putwc"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x55 # At line number 85
+ .long .LASF1650 # The macro: "putwchar"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x56 # At line number 86
+ .long .LASF1651 # The macro: "swprintf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x57 # At line number 87
+ .long .LASF1652 # The macro: "swscanf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x58 # At line number 88
+ .long .LASF1653 # The macro: "ungetwc"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x59 # At line number 89
+ .long .LASF1654 # The macro: "vfwprintf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1655 # The macro: "vfwscanf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5d # At line number 93
+ .long .LASF1656 # The macro: "vswprintf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5f # At line number 95
+ .long .LASF1657 # The macro: "vswscanf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x61 # At line number 97
+ .long .LASF1658 # The macro: "vwprintf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x63 # At line number 99
+ .long .LASF1659 # The macro: "vwscanf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1660 # The macro: "wcrtomb"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x66 # At line number 102
+ .long .LASF1661 # The macro: "wcscat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x67 # At line number 103
+ .long .LASF1662 # The macro: "wcschr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x68 # At line number 104
+ .long .LASF1663 # The macro: "wcscmp"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x69 # At line number 105
+ .long .LASF1664 # The macro: "wcscoll"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6a # At line number 106
+ .long .LASF1665 # The macro: "wcscpy"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6b # At line number 107
+ .long .LASF1666 # The macro: "wcscspn"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6c # At line number 108
+ .long .LASF1667 # The macro: "wcsftime"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6d # At line number 109
+ .long .LASF1668 # The macro: "wcslen"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1669 # The macro: "wcsncat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6f # At line number 111
+ .long .LASF1670 # The macro: "wcsncmp"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x70 # At line number 112
+ .long .LASF1671 # The macro: "wcsncpy"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x71 # At line number 113
+ .long .LASF1672 # The macro: "wcspbrk"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x72 # At line number 114
+ .long .LASF1673 # The macro: "wcsrchr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x73 # At line number 115
+ .long .LASF1674 # The macro: "wcsrtombs"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1675 # The macro: "wcsspn"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x75 # At line number 117
+ .long .LASF1676 # The macro: "wcsstr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x76 # At line number 118
+ .long .LASF1677 # The macro: "wcstod"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78 # At line number 120
+ .long .LASF1678 # The macro: "wcstof"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7a # At line number 122
+ .long .LASF1679 # The macro: "wcstok"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7b # At line number 123
+ .long .LASF1680 # The macro: "wcstol"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7c # At line number 124
+ .long .LASF1681 # The macro: "wcstoul"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7d # At line number 125
+ .long .LASF1682 # The macro: "wcsxfrm"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF1683 # The macro: "wctob"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7f # At line number 127
+ .long .LASF1684 # The macro: "wmemchr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x80 # At line number 128
+ .long .LASF1685 # The macro: "wmemcmp"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x81 # At line number 129
+ .long .LASF1686 # The macro: "wmemcpy"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x82 # At line number 130
+ .long .LASF1687 # The macro: "wmemmove"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x83 # At line number 131
+ .long .LASF1688 # The macro: "wmemset"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x84 # At line number 132
+ .long .LASF1689 # The macro: "wprintf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x85 # At line number 133
+ .long .LASF1690 # The macro: "wscanf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf2 # At line number 242
+ .long .LASF1691 # The macro: "wcstold"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf3 # At line number 243
+ .long .LASF1692 # The macro: "wcstoll"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf4 # At line number 244
+ .long .LASF1693 # The macro: "wcstoull"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.typeinfo.30.311085fb6803c6c86c2ae5d923e63677,comdat
+.Ldebug_macro52:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1695 # The macro: "_TYPEINFO "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29 # At line number 41
+ .long .LASF1696 # The macro: "__glibcxx_want_constexpr_typeinfo "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.version.h.55.27d86c228edb584b68e180abfd62a984,comdat
+.Ldebug_macro53:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1075 # The macro: "__glibcxx_incomplete_container_elements 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1076 # The macro: "__glibcxx_want_incomplete_container_elements"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1077 # The macro: "__glibcxx_uncaught_exceptions 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1078 # The macro: "__glibcxx_want_uncaught_exceptions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1079 # The macro: "__glibcxx_allocator_traits_is_always_equal 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1080 # The macro: "__glibcxx_want_allocator_traits_is_always_equal"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1082 # The macro: "__glibcxx_want_is_null_pointer"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1084 # The macro: "__glibcxx_want_result_of_sfinae"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1085 # The macro: "__glibcxx_shared_ptr_arrays 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1086 # The macro: "__glibcxx_want_shared_ptr_arrays"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF1088 # The macro: "__glibcxx_want_is_swappable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x88 # At line number 136
+ .long .LASF1090 # The macro: "__glibcxx_want_void_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8c # At line number 140
+ .long .LASF1091 # The macro: "__glibcxx_enable_shared_from_this 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x92 # At line number 146
+ .long .LASF1092 # The macro: "__glibcxx_want_enable_shared_from_this"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x96 # At line number 150
+ .long .LASF1093 # The macro: "__glibcxx_math_spec_funcs 201003L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF1094 # The macro: "__glibcxx_want_math_spec_funcs"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xa6 # At line number 166
+ .long .LASF1095 # The macro: "__glibcxx_want_coroutine"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa # At line number 170
+ .long .LASF1096 # The macro: "__glibcxx_exchange_function 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb0 # At line number 176
+ .long .LASF1097 # The macro: "__glibcxx_want_exchange_function"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4 # At line number 180
+ .long .LASF1098 # The macro: "__glibcxx_integer_sequence 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xba # At line number 186
+ .long .LASF1099 # The macro: "__glibcxx_want_integer_sequence"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xc4 # At line number 196
+ .long .LASF1101 # The macro: "__glibcxx_want_integral_constant_callable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xce # At line number 206
+ .long .LASF1103 # The macro: "__glibcxx_want_is_final"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2 # At line number 210
+ .long .LASF1104 # The macro: "__glibcxx_make_reverse_iterator 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd8 # At line number 216
+ .long .LASF1105 # The macro: "__glibcxx_want_make_reverse_iterator"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc # At line number 220
+ .long .LASF1106 # The macro: "__glibcxx_null_iterators 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe2 # At line number 226
+ .long .LASF1107 # The macro: "__glibcxx_want_null_iterators"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xec # At line number 236
+ .long .LASF1109 # The macro: "__glibcxx_want_transformation_trait_aliases"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf0 # At line number 240
+ .long .LASF1110 # The macro: "__glibcxx_transparent_operators 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf6 # At line number 246
+ .long .LASF1111 # The macro: "__glibcxx_want_transparent_operators"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x100 # At line number 256
+ .long .LASF1113 # The macro: "__glibcxx_want_tuple_element_t"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x10a # At line number 266
+ .long .LASF1115 # The macro: "__glibcxx_want_tuples_by_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10e # At line number 270
+ .long .LASF1116 # The macro: "__glibcxx_robust_nonmodifying_seq_ops 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x114 # At line number 276
+ .long .LASF1117 # The macro: "__glibcxx_want_robust_nonmodifying_seq_ops"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11d # At line number 285
+ .long .LASF1118 # The macro: "__glibcxx_to_chars 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x123 # At line number 291
+ .long .LASF1119 # The macro: "__glibcxx_want_to_chars"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x127 # At line number 295
+ .long .LASF1120 # The macro: "__glibcxx_chrono_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x12d # At line number 301
+ .long .LASF1121 # The macro: "__glibcxx_want_chrono_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x131 # At line number 305
+ .long .LASF1122 # The macro: "__glibcxx_complex_udls 201309L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x137 # At line number 311
+ .long .LASF1123 # The macro: "__glibcxx_want_complex_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13b # At line number 315
+ .long .LASF1124 # The macro: "__glibcxx_generic_associative_lookup 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x141 # At line number 321
+ .long .LASF1125 # The macro: "__glibcxx_want_generic_associative_lookup"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x145 # At line number 325
+ .long .LASF1126 # The macro: "__glibcxx_make_unique 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x14b # At line number 331
+ .long .LASF1127 # The macro: "__glibcxx_want_make_unique"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14f # At line number 335
+ .long .LASF1128 # The macro: "__glibcxx_quoted_string_io 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x155 # At line number 341
+ .long .LASF1129 # The macro: "__glibcxx_want_quoted_string_io"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x159 # At line number 345
+ .long .LASF1130 # The macro: "__glibcxx_shared_timed_mutex 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x15f # At line number 351
+ .long .LASF1131 # The macro: "__glibcxx_want_shared_timed_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x163 # At line number 355
+ .long .LASF1132 # The macro: "__glibcxx_string_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x169 # At line number 361
+ .long .LASF1133 # The macro: "__glibcxx_want_string_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16d # At line number 365
+ .long .LASF1134 # The macro: "__glibcxx_addressof_constexpr 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x173 # At line number 371
+ .long .LASF1135 # The macro: "__glibcxx_want_addressof_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x177 # At line number 375
+ .long .LASF1136 # The macro: "__glibcxx_any 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x17d # At line number 381
+ .long .LASF1137 # The macro: "__glibcxx_want_any"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x187 # At line number 391
+ .long .LASF1139 # The macro: "__glibcxx_want_apply"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18b # At line number 395
+ .long .LASF1140 # The macro: "__glibcxx_as_const 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x191 # At line number 401
+ .long .LASF1141 # The macro: "__glibcxx_want_as_const"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x195 # At line number 405
+ .long .LASF1142 # The macro: "__glibcxx_atomic_is_always_lock_free 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19b # At line number 411
+ .long .LASF1143 # The macro: "__glibcxx_want_atomic_is_always_lock_free"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a5 # At line number 421
+ .long .LASF1145 # The macro: "__glibcxx_want_bool_constant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1146 # The macro: "__glibcxx_byte 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1af # At line number 431
+ .long .LASF1147 # The macro: "__glibcxx_want_byte"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1b9 # At line number 441
+ .long .LASF1149 # The macro: "__glibcxx_want_has_unique_object_representations"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1c3 # At line number 451
+ .long .LASF1152 # The macro: "__glibcxx_want_hardware_interference_size"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c7 # At line number 455
+ .long .LASF1153 # The macro: "__glibcxx_invoke 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1cd # At line number 461
+ .long .LASF1154 # The macro: "__glibcxx_want_invoke"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1d7 # At line number 471
+ .long .LASF1156 # The macro: "__glibcxx_want_is_aggregate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1e1 # At line number 481
+ .long .LASF1158 # The macro: "__glibcxx_want_is_invocable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1eb # At line number 491
+ .long .LASF1161 # The macro: "__glibcxx_want_launder"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1f5 # At line number 501
+ .long .LASF1163 # The macro: "__glibcxx_want_logical_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1ff # At line number 511
+ .long .LASF1165 # The macro: "__glibcxx_want_make_from_tuple"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x203 # At line number 515
+ .long .LASF1166 # The macro: "__glibcxx_not_fn 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x209 # At line number 521
+ .long .LASF1167 # The macro: "__glibcxx_want_not_fn"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x213 # At line number 531
+ .long .LASF1169 # The macro: "__glibcxx_want_type_trait_variable_templates"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x221 # At line number 545
+ .long .LASF1170 # The macro: "__glibcxx_variant 202102L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x227 # At line number 551
+ .long .LASF1171 # The macro: "__glibcxx_want_variant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22b # At line number 555
+ .long .LASF1172 # The macro: "__glibcxx_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x231 # At line number 561
+ .long .LASF1173 # The macro: "__glibcxx_want_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x235 # At line number 565
+ .long .LASF1174 # The macro: "__glibcxx_gcd 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x23b # At line number 571
+ .long .LASF1175 # The macro: "__glibcxx_want_gcd"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23f # At line number 575
+ .long .LASF1176 # The macro: "__glibcxx_gcd_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x245 # At line number 581
+ .long .LASF1177 # The macro: "__glibcxx_want_gcd_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24e # At line number 590
+ .long .LASF1178 # The macro: "__glibcxx_raw_memory_algorithms 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x254 # At line number 596
+ .long .LASF1179 # The macro: "__glibcxx_want_raw_memory_algorithms"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25d # At line number 605
+ .long .LASF1180 # The macro: "__glibcxx_array_constexpr 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x263 # At line number 611
+ .long .LASF1181 # The macro: "__glibcxx_want_array_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x267 # At line number 615
+ .long .LASF1182 # The macro: "__glibcxx_nonmember_container_access 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x26d # At line number 621
+ .long .LASF1183 # The macro: "__glibcxx_want_nonmember_container_access"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x271 # At line number 625
+ .long .LASF1184 # The macro: "__glibcxx_clamp 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x277 # At line number 631
+ .long .LASF1185 # The macro: "__glibcxx_want_clamp"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27b # At line number 635
+ .long .LASF1186 # The macro: "__glibcxx_sample 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x281 # At line number 641
+ .long .LASF1187 # The macro: "__glibcxx_want_sample"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x285 # At line number 645
+ .long .LASF1188 # The macro: "__glibcxx_boyer_moore_searcher 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x28b # At line number 651
+ .long .LASF1189 # The macro: "__glibcxx_want_boyer_moore_searcher"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x294 # At line number 660
+ .long .LASF1190 # The macro: "__glibcxx_chrono 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x29a # At line number 666
+ .long .LASF1191 # The macro: "__glibcxx_want_chrono"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29e # At line number 670
+ .long .LASF1192 # The macro: "__glibcxx_execution 201902L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2a4 # At line number 676
+ .long .LASF1193 # The macro: "__glibcxx_want_execution"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a8 # At line number 680
+ .long .LASF1194 # The macro: "__glibcxx_filesystem 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ae # At line number 686
+ .long .LASF1195 # The macro: "__glibcxx_want_filesystem"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b2 # At line number 690
+ .long .LASF1196 # The macro: "__glibcxx_hypot 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2b8 # At line number 696
+ .long .LASF1197 # The macro: "__glibcxx_want_hypot"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2bc # At line number 700
+ .long .LASF1198 # The macro: "__glibcxx_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2c2 # At line number 706
+ .long .LASF1199 # The macro: "__glibcxx_want_map_try_emplace"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c6 # At line number 710
+ .long .LASF1200 # The macro: "__glibcxx_math_special_functions 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2cc # At line number 716
+ .long .LASF1201 # The macro: "__glibcxx_want_math_special_functions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d0 # At line number 720
+ .long .LASF1202 # The macro: "__glibcxx_memory_resource 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2db # At line number 731
+ .long .LASF1203 # The macro: "__glibcxx_want_memory_resource"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2df # At line number 735
+ .long .LASF1204 # The macro: "__glibcxx_node_extract 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2e5 # At line number 741
+ .long .LASF1205 # The macro: "__glibcxx_want_node_extract"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e9 # At line number 745
+ .long .LASF1206 # The macro: "__glibcxx_parallel_algorithm 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ef # At line number 751
+ .long .LASF1207 # The macro: "__glibcxx_want_parallel_algorithm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f3 # At line number 755
+ .long .LASF1208 # The macro: "__glibcxx_scoped_lock 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2f9 # At line number 761
+ .long .LASF1209 # The macro: "__glibcxx_want_scoped_lock"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2fd # At line number 765
+ .long .LASF1210 # The macro: "__glibcxx_shared_mutex 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x303 # At line number 771
+ .long .LASF1211 # The macro: "__glibcxx_want_shared_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x307 # At line number 775
+ .long .LASF1212 # The macro: "__glibcxx_shared_ptr_weak_type 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x30d # At line number 781
+ .long .LASF1213 # The macro: "__glibcxx_want_shared_ptr_weak_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x316 # At line number 790
+ .long .LASF1214 # The macro: "__glibcxx_string_view 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x31c # At line number 796
+ .long .LASF1215 # The macro: "__glibcxx_want_string_view"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x320 # At line number 800
+ .long .LASF1216 # The macro: "__glibcxx_unordered_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x326 # At line number 806
+ .long .LASF1217 # The macro: "__glibcxx_want_unordered_map_try_emplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x330 # At line number 816
+ .long .LASF1218 # The macro: "__glibcxx_want_assume_aligned"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x33a # At line number 826
+ .long .LASF1219 # The macro: "__glibcxx_want_atomic_flag_test"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x344 # At line number 836
+ .long .LASF1220 # The macro: "__glibcxx_want_atomic_float"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x34e # At line number 846
+ .long .LASF1221 # The macro: "__glibcxx_want_atomic_lock_free_type_aliases"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x358 # At line number 856
+ .long .LASF1222 # The macro: "__glibcxx_want_atomic_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x362 # At line number 866
+ .long .LASF1223 # The macro: "__glibcxx_want_atomic_value_initialization"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x36c # At line number 876
+ .long .LASF1224 # The macro: "__glibcxx_want_bind_front"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x376 # At line number 886
+ .long .LASF1225 # The macro: "__glibcxx_want_bind_back"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x380 # At line number 896
+ .long .LASF1226 # The macro: "__glibcxx_want_starts_ends_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x38a # At line number 906
+ .long .LASF1227 # The macro: "__glibcxx_want_bit_cast"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x394 # At line number 916
+ .long .LASF1228 # The macro: "__glibcxx_want_bitops"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x39e # At line number 926
+ .long .LASF1229 # The macro: "__glibcxx_want_bounded_array_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3a8 # At line number 936
+ .long .LASF1230 # The macro: "__glibcxx_want_concepts"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b6 # At line number 950
+ .long .LASF1231 # The macro: "__glibcxx_optional 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3bc # At line number 956
+ .long .LASF1232 # The macro: "__glibcxx_want_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3c6 # At line number 966
+ .long .LASF1233 # The macro: "__glibcxx_want_destroying_delete"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d0 # At line number 976
+ .long .LASF1234 # The macro: "__glibcxx_want_constexpr_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3da # At line number 986
+ .long .LASF1235 # The macro: "__glibcxx_want_endian"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3e4 # At line number 996
+ .long .LASF1236 # The macro: "__glibcxx_want_int_pow2"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3ee # At line number 1006
+ .long .LASF1237 # The macro: "__glibcxx_want_integer_comparison_functions"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3f8 # At line number 1016
+ .long .LASF1238 # The macro: "__glibcxx_want_is_constant_evaluated"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x401 # At line number 1025
+ .long .LASF1239 # The macro: "__glibcxx_constexpr_char_traits 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x407 # At line number 1031
+ .long .LASF1240 # The macro: "__glibcxx_want_constexpr_char_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x411 # At line number 1041
+ .long .LASF1241 # The macro: "__glibcxx_want_is_layout_compatible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x41b # At line number 1051
+ .long .LASF1242 # The macro: "__glibcxx_want_is_nothrow_convertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x425 # At line number 1061
+ .long .LASF1243 # The macro: "__glibcxx_want_is_pointer_interconvertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x42f # At line number 1071
+ .long .LASF1244 # The macro: "__glibcxx_want_math_constants"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x439 # At line number 1081
+ .long .LASF1245 # The macro: "__glibcxx_want_make_obj_using_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x443 # At line number 1091
+ .long .LASF1246 # The macro: "__glibcxx_want_remove_cvref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x44d # At line number 1101
+ .long .LASF1247 # The macro: "__glibcxx_want_source_location"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x45c # At line number 1116
+ .long .LASF1248 # The macro: "__glibcxx_want_span"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x466 # At line number 1126
+ .long .LASF1249 # The macro: "__glibcxx_want_ssize"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x470 # At line number 1136
+ .long .LASF1250 # The macro: "__glibcxx_want_three_way_comparison"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47a # At line number 1146
+ .long .LASF1251 # The macro: "__glibcxx_want_to_address"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x484 # At line number 1156
+ .long .LASF1252 # The macro: "__glibcxx_want_to_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x48e # At line number 1166
+ .long .LASF1253 # The macro: "__glibcxx_want_type_identity"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x498 # At line number 1176
+ .long .LASF1254 # The macro: "__glibcxx_want_unwrap_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4a2 # At line number 1186
+ .long .LASF1255 # The macro: "__glibcxx_want_constexpr_iterator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4ac # At line number 1196
+ .long .LASF1256 # The macro: "__glibcxx_want_interpolate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4b6 # At line number 1206
+ .long .LASF1257 # The macro: "__glibcxx_want_constexpr_utility"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4c0 # At line number 1216
+ .long .LASF1258 # The macro: "__glibcxx_want_shift"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4d4 # At line number 1236
+ .long .LASF1259 # The macro: "__glibcxx_want_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4de # At line number 1246
+ .long .LASF1260 # The macro: "__glibcxx_want_constexpr_numeric"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4e8 # At line number 1256
+ .long .LASF1261 # The macro: "__glibcxx_want_constexpr_functional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4f7 # At line number 1271
+ .long .LASF1262 # The macro: "__glibcxx_want_constexpr_algorithms"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x501 # At line number 1281
+ .long .LASF1263 # The macro: "__glibcxx_want_constexpr_tuple"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x510 # At line number 1296
+ .long .LASF1264 # The macro: "__glibcxx_want_constexpr_memory"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51a # At line number 1306
+ .long .LASF1265 # The macro: "__glibcxx_want_atomic_shared_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x529 # At line number 1321
+ .long .LASF1266 # The macro: "__glibcxx_want_atomic_wait"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x533 # At line number 1331
+ .long .LASF1267 # The macro: "__glibcxx_want_barrier"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x542 # At line number 1346
+ .long .LASF1268 # The macro: "__glibcxx_want_format"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x54c # At line number 1356
+ .long .LASF1269 # The macro: "__glibcxx_want_format_uchar"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x556 # At line number 1366
+ .long .LASF1270 # The macro: "__glibcxx_want_constexpr_complex"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x560 # At line number 1376
+ .long .LASF1271 # The macro: "__glibcxx_want_constexpr_dynamic_alloc"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56e # At line number 1390
+ .long .LASF1272 # The macro: "__glibcxx_constexpr_string 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x574 # At line number 1396
+ .long .LASF1273 # The macro: "__glibcxx_want_constexpr_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x57e # At line number 1406
+ .long .LASF1274 # The macro: "__glibcxx_want_constexpr_vector"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x58d # At line number 1421
+ .long .LASF1275 # The macro: "__glibcxx_want_constrained_equality"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x597 # At line number 1431
+ .long .LASF1276 # The macro: "__glibcxx_want_erase_if"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5a1 # At line number 1441
+ .long .LASF1277 # The macro: "__glibcxx_want_generic_unordered_lookup"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5ab # At line number 1451
+ .long .LASF1278 # The macro: "__glibcxx_want_jthread"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b5 # At line number 1461
+ .long .LASF1279 # The macro: "__glibcxx_want_latch"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5bf # At line number 1471
+ .long .LASF1280 # The macro: "__glibcxx_want_list_remove_return_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5c9 # At line number 1481
+ .long .LASF1281 # The macro: "__glibcxx_want_polymorphic_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5d3 # At line number 1491
+ .long .LASF1282 # The macro: "__glibcxx_want_move_iterator_concept"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5dd # At line number 1501
+ .long .LASF1283 # The macro: "__glibcxx_want_semaphore"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5e7 # At line number 1511
+ .long .LASF1284 # The macro: "__glibcxx_want_smart_ptr_for_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5f1 # At line number 1521
+ .long .LASF1285 # The macro: "__glibcxx_want_syncbuf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5fb # At line number 1531
+ .long .LASF1286 # The macro: "__glibcxx_want_byteswap"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x605 # At line number 1541
+ .long .LASF1287 # The macro: "__glibcxx_want_constexpr_charconv"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x60f # At line number 1551
+ .long .LASF1288 # The macro: "__glibcxx_want_constexpr_typeinfo"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x619 # At line number 1561
+ .long .LASF1289 # The macro: "__glibcxx_want_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x622 # At line number 1570
+ .long .LASF1290 # The macro: "__glibcxx_want_format_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x62c # At line number 1580
+ .long .LASF1291 # The macro: "__glibcxx_want_freestanding_algorithm"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x636 # At line number 1590
+ .long .LASF1292 # The macro: "__glibcxx_want_freestanding_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x640 # At line number 1600
+ .long .LASF1293 # The macro: "__glibcxx_want_freestanding_cstring"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x64a # At line number 1610
+ .long .LASF1294 # The macro: "__glibcxx_want_freestanding_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x654 # At line number 1620
+ .long .LASF1295 # The macro: "__glibcxx_want_freestanding_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65e # At line number 1630
+ .long .LASF1296 # The macro: "__glibcxx_want_freestanding_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x668 # At line number 1640
+ .long .LASF1297 # The macro: "__glibcxx_want_freestanding_variant"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x672 # At line number 1650
+ .long .LASF1298 # The macro: "__glibcxx_want_invoke_r"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x67c # At line number 1660
+ .long .LASF1299 # The macro: "__glibcxx_want_is_scoped_enum"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x686 # At line number 1670
+ .long .LASF1300 # The macro: "__glibcxx_want_reference_from_temporary"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x690 # At line number 1680
+ .long .LASF1301 # The macro: "__glibcxx_want_containers_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x69a # At line number 1690
+ .long .LASF1302 # The macro: "__glibcxx_want_ranges_to_container"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6a4 # At line number 1700
+ .long .LASF1303 # The macro: "__glibcxx_want_ranges_zip"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ae # At line number 1710
+ .long .LASF1304 # The macro: "__glibcxx_want_ranges_chunk"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6b8 # At line number 1720
+ .long .LASF1305 # The macro: "__glibcxx_want_ranges_slide"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6c2 # At line number 1730
+ .long .LASF1306 # The macro: "__glibcxx_want_ranges_chunk_by"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6cc # At line number 1740
+ .long .LASF1307 # The macro: "__glibcxx_want_ranges_join_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6d6 # At line number 1750
+ .long .LASF1308 # The macro: "__glibcxx_want_ranges_repeat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6e0 # At line number 1760
+ .long .LASF1309 # The macro: "__glibcxx_want_ranges_stride"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ea # At line number 1770
+ .long .LASF1310 # The macro: "__glibcxx_want_ranges_cartesian_product"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6f4 # At line number 1780
+ .long .LASF1311 # The macro: "__glibcxx_want_ranges_as_rvalue"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6fe # At line number 1790
+ .long .LASF1312 # The macro: "__glibcxx_want_ranges_as_const"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x708 # At line number 1800
+ .long .LASF1313 # The macro: "__glibcxx_want_ranges_enumerate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x712 # At line number 1810
+ .long .LASF1314 # The macro: "__glibcxx_want_ranges_fold"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x71c # At line number 1820
+ .long .LASF1315 # The macro: "__glibcxx_want_ranges_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x726 # At line number 1830
+ .long .LASF1316 # The macro: "__glibcxx_want_ranges_iota"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x730 # At line number 1840
+ .long .LASF1317 # The macro: "__glibcxx_want_ranges_find_last"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x73a # At line number 1850
+ .long .LASF1318 # The macro: "__glibcxx_want_constexpr_bitset"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x744 # At line number 1860
+ .long .LASF1319 # The macro: "__glibcxx_want_stdatomic_h"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74e # At line number 1870
+ .long .LASF1320 # The macro: "__glibcxx_want_adaptor_iterator_pair_constructor"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x758 # At line number 1880
+ .long .LASF1321 # The macro: "__glibcxx_want_flat_map"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x762 # At line number 1890
+ .long .LASF1322 # The macro: "__glibcxx_want_flat_set"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x76c # At line number 1900
+ .long .LASF1323 # The macro: "__glibcxx_want_formatters"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x776 # At line number 1910
+ .long .LASF1324 # The macro: "__glibcxx_want_forward_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x780 # At line number 1920
+ .long .LASF1325 # The macro: "__glibcxx_want_generator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78a # At line number 1930
+ .long .LASF1326 # The macro: "__glibcxx_want_ios_noreplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x794 # At line number 1940
+ .long .LASF1327 # The macro: "__glibcxx_want_move_only_function"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x79e # At line number 1950
+ .long .LASF1328 # The macro: "__glibcxx_want_out_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7a8 # At line number 1960
+ .long .LASF1329 # The macro: "__glibcxx_want_print"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7b2 # At line number 1970
+ .long .LASF1330 # The macro: "__glibcxx_want_spanstream"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7bc # At line number 1980
+ .long .LASF1331 # The macro: "__glibcxx_want_stacktrace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7c6 # At line number 1990
+ .long .LASF1332 # The macro: "__glibcxx_want_string_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7d0 # At line number 2000
+ .long .LASF1333 # The macro: "__glibcxx_want_string_resize_and_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7da # At line number 2010
+ .long .LASF1334 # The macro: "__glibcxx_want_to_underlying"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e9 # At line number 2025
+ .long .LASF1335 # The macro: "__glibcxx_want_tuple_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7f3 # At line number 2035
+ .long .LASF1336 # The macro: "__glibcxx_want_unreachable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7fd # At line number 2045
+ .long .LASF1337 # The macro: "__glibcxx_want_algorithm_default_value_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x807 # At line number 2055
+ .long .LASF1338 # The macro: "__glibcxx_want_constexpr_new"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x811 # At line number 2065
+ .long .LASF1339 # The macro: "__glibcxx_want_fstream_native_handle"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x81b # At line number 2075
+ .long .LASF1340 # The macro: "__glibcxx_want_is_virtual_base_of"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x825 # At line number 2085
+ .long .LASF1341 # The macro: "__glibcxx_want_ranges_cache_latest"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x82f # At line number 2095
+ .long .LASF1342 # The macro: "__glibcxx_want_ranges_concat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x839 # At line number 2105
+ .long .LASF1343 # The macro: "__glibcxx_want_ratio"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x843 # At line number 2115
+ .long .LASF1344 # The macro: "__glibcxx_want_reference_wrapper"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x84d # At line number 2125
+ .long .LASF1345 # The macro: "__glibcxx_want_saturation_arithmetic"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x857 # At line number 2135
+ .long .LASF1346 # The macro: "__glibcxx_want_span_initializer_list"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x861 # At line number 2145
+ .long .LASF1347 # The macro: "__glibcxx_want_text_encoding"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x86b # At line number 2155
+ .long .LASF1348 # The macro: "__glibcxx_want_ranges_to_input"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x875 # At line number 2165
+ .long .LASF1349 # The macro: "__glibcxx_want_to_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x87f # At line number 2175
+ .long .LASF1350 # The macro: "__glibcxx_want_modules"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x881 # At line number 2177
+ .long .LASF1351 # The macro: "__glibcxx_want_all"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.typeinfo.73.1788909457a301848ebd50ac4a1d7613,comdat
+.Ldebug_macro54:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x49 # At line number 73
+ .long .LASF1697 # The macro: "__GXX_MERGED_TYPEINFO_NAMES 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1698 # The macro: "__GXX_TYPEINFO_EQUALITY_INLINE 1"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.refwrap.h.31.907281f023ab9c0ecb0f514bf04ae7a0,comdat
+.Ldebug_macro55:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1700 # The macro: "_GLIBCXX_REFWRAP_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x59 # At line number 89
+ .long .LASF1701 # The macro: "_GLIBCXX_MEM_FN_TRAITS2(_CV,_REF,_LVAL,_RVAL) template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) _CV _REF> : _Mem_fn_traits_base<_Res, _CV _Class, _ArgTypes...> { using __vararg = false_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) _CV _REF> : _Mem_fn_traits_base<_Res, _CV _Class, _ArgTypes...> { using __vararg = true_type; };"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x67 # At line number 103
+ .long .LASF1702 # The macro: "_GLIBCXX_MEM_FN_TRAITS(_REF,_LVAL,_RVAL) _GLIBCXX_MEM_FN_TRAITS2( , _REF, _LVAL, _RVAL) _GLIBCXX_MEM_FN_TRAITS2(const , _REF, _LVAL, _RVAL) _GLIBCXX_MEM_FN_TRAITS2(volatile , _REF, _LVAL, _RVAL) _GLIBCXX_MEM_FN_TRAITS2(const volatile, _REF, _LVAL, _RVAL)"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x77 # At line number 119
+ .long .LASF1703 # The macro: "_GLIBCXX_MEM_FN_TRAITS"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78 # At line number 120
+ .long .LASF1704 # The macro: "_GLIBCXX_MEM_FN_TRAITS2"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.gthrdefault.h.27.30a03623e42919627c5b0e155787471b,comdat
+.Ldebug_macro56:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1b # At line number 27
+ .long .LASF1708 # The macro: "_GLIBCXX_GCC_GTHR_POSIX_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20 # At line number 32
+ .long .LASF1709 # The macro: "__GTHREADS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x21 # At line number 33
+ .long .LASF1710 # The macro: "__GTHREADS_CXX0X 1"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.types.h.109.56eb9ae966b255288cc544f18746a7ff,comdat
+.Ldebug_macro57:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6d # At line number 109
+ .long .LASF1714 # The macro: "__S16_TYPE short int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1715 # The macro: "__U16_TYPE unsigned short int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6f # At line number 111
+ .long .LASF1716 # The macro: "__S32_TYPE int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x70 # At line number 112
+ .long .LASF1717 # The macro: "__U32_TYPE unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x71 # At line number 113
+ .long .LASF1718 # The macro: "__SLONGWORD_TYPE long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x72 # At line number 114
+ .long .LASF1719 # The macro: "__ULONGWORD_TYPE unsigned long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x80 # At line number 128
+ .long .LASF1720 # The macro: "__SQUAD_TYPE long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x81 # At line number 129
+ .long .LASF1721 # The macro: "__UQUAD_TYPE unsigned long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x82 # At line number 130
+ .long .LASF1722 # The macro: "__SWORD_TYPE long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x83 # At line number 131
+ .long .LASF1723 # The macro: "__UWORD_TYPE unsigned long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x84 # At line number 132
+ .long .LASF1724 # The macro: "__SLONG32_TYPE int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x85 # At line number 133
+ .long .LASF1725 # The macro: "__ULONG32_TYPE unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x86 # At line number 134
+ .long .LASF1726 # The macro: "__S64_TYPE long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x87 # At line number 135
+ .long .LASF1727 # The macro: "__U64_TYPE unsigned long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x89 # At line number 137
+ .long .LASF1728 # The macro: "__STD_TYPE typedef"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.typesizes.h.24.ccf5919b8e01b553263cf8f4ab1d5fde,comdat
+.Ldebug_macro58:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18 # At line number 24
+ .long .LASF1729 # The macro: "_BITS_TYPESIZES_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22 # At line number 34
+ .long .LASF1730 # The macro: "__SYSCALL_SLONG_TYPE __SLONGWORD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23 # At line number 35
+ .long .LASF1731 # The macro: "__SYSCALL_ULONG_TYPE __ULONGWORD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x26 # At line number 38
+ .long .LASF1732 # The macro: "__DEV_T_TYPE __UQUAD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27 # At line number 39
+ .long .LASF1733 # The macro: "__UID_T_TYPE __U32_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF1734 # The macro: "__GID_T_TYPE __U32_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29 # At line number 41
+ .long .LASF1735 # The macro: "__INO_T_TYPE __SYSCALL_ULONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a # At line number 42
+ .long .LASF1736 # The macro: "__INO64_T_TYPE __UQUAD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b # At line number 43
+ .long .LASF1737 # The macro: "__MODE_T_TYPE __U32_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d # At line number 45
+ .long .LASF1738 # The macro: "__NLINK_T_TYPE __SYSCALL_ULONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e # At line number 46
+ .long .LASF1739 # The macro: "__FSWORD_T_TYPE __SYSCALL_SLONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x33 # At line number 51
+ .long .LASF1740 # The macro: "__OFF_T_TYPE __SYSCALL_SLONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x34 # At line number 52
+ .long .LASF1741 # The macro: "__OFF64_T_TYPE __SQUAD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35 # At line number 53
+ .long .LASF1742 # The macro: "__PID_T_TYPE __S32_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x36 # At line number 54
+ .long .LASF1743 # The macro: "__RLIM_T_TYPE __SYSCALL_ULONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1744 # The macro: "__RLIM64_T_TYPE __UQUAD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x38 # At line number 56
+ .long .LASF1745 # The macro: "__BLKCNT_T_TYPE __SYSCALL_SLONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1746 # The macro: "__BLKCNT64_T_TYPE __SQUAD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3a # At line number 58
+ .long .LASF1747 # The macro: "__FSBLKCNT_T_TYPE __SYSCALL_ULONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b # At line number 59
+ .long .LASF1748 # The macro: "__FSBLKCNT64_T_TYPE __UQUAD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3c # At line number 60
+ .long .LASF1749 # The macro: "__FSFILCNT_T_TYPE __SYSCALL_ULONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1750 # The macro: "__FSFILCNT64_T_TYPE __UQUAD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3e # At line number 62
+ .long .LASF1751 # The macro: "__ID_T_TYPE __U32_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3f # At line number 63
+ .long .LASF1752 # The macro: "__CLOCK_T_TYPE __SYSCALL_SLONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x40 # At line number 64
+ .long .LASF1753 # The macro: "__TIME_T_TYPE __SYSCALL_SLONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1754 # The macro: "__USECONDS_T_TYPE __U32_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x42 # At line number 66
+ .long .LASF1755 # The macro: "__SUSECONDS_T_TYPE __SYSCALL_SLONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x43 # At line number 67
+ .long .LASF1756 # The macro: "__SUSECONDS64_T_TYPE __SQUAD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x44 # At line number 68
+ .long .LASF1757 # The macro: "__DADDR_T_TYPE __S32_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x45 # At line number 69
+ .long .LASF1758 # The macro: "__KEY_T_TYPE __S32_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x46 # At line number 70
+ .long .LASF1759 # The macro: "__CLOCKID_T_TYPE __S32_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1760 # The macro: "__TIMER_T_TYPE void *"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x48 # At line number 72
+ .long .LASF1761 # The macro: "__BLKSIZE_T_TYPE __SYSCALL_SLONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x49 # At line number 73
+ .long .LASF1762 # The macro: "__FSID_T_TYPE struct { int __val[2]; }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4a # At line number 74
+ .long .LASF1763 # The macro: "__SSIZE_T_TYPE __SWORD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1764 # The macro: "__CPU_MASK_TYPE __SYSCALL_ULONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1765 # The macro: "__OFF_T_MATCHES_OFF64_T 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x54 # At line number 84
+ .long .LASF1766 # The macro: "__INO_T_MATCHES_INO64_T 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x57 # At line number 87
+ .long .LASF1767 # The macro: "__RLIM_T_MATCHES_RLIM64_T 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5a # At line number 90
+ .long .LASF1768 # The macro: "__STATFS_MATCHES_STATFS64 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5d # At line number 93
+ .long .LASF1769 # The macro: "__KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x67 # At line number 103
+ .long .LASF1770 # The macro: "__FD_SETSIZE 1024"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.time64.h.24.a8166ae916ec910dab0d8987098d42ee,comdat
+.Ldebug_macro59:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18 # At line number 24
+ .long .LASF1771 # The macro: "_BITS_TIME64_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1772 # The macro: "__TIME64_T_TYPE __TIME_T_TYPE"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.sched.h.27.ebf7af1e1d56fba9b2f5e63b6e60d64f,comdat
+.Ldebug_macro60:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1b # At line number 27
+ .long .LASF1572 # The macro: "__need_size_t "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c # At line number 28
+ .long .LASF1574 # The macro: "__need_NULL "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.252.48df7efd2eec7c5dc2cb2bd0904069e0,comdat
+.Ldebug_macro61:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xfc # At line number 252
+ .long .LASF1593 # The macro: "__need_size_t"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19e # At line number 414
+ .long .LASF1612 # The macro: "NULL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a0 # At line number 416
+ .long .LASF1613 # The macro: "NULL __null"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1614 # The macro: "__need_NULL"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.endian.h.20.efabd1018df5d7b4052c27dc6bdd5ce5,comdat
+.Ldebug_macro62:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1776 # The macro: "_BITS_ENDIAN_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1777 # The macro: "__LITTLE_ENDIAN 1234"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1778 # The macro: "__BIG_ENDIAN 4321"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20 # At line number 32
+ .long .LASF1779 # The macro: "__PDP_ENDIAN 3412"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.endianness.h.2.2c6a211f7909f3af5e9e9cfa3b6b63c8,comdat
+.Ldebug_macro63:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1780 # The macro: "_BITS_ENDIANNESS_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9 # At line number 9
+ .long .LASF1781 # The macro: "__BYTE_ORDER __LITTLE_ENDIAN"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.endian.h.40.9e5d395adda2f4eb53ae69b69b664084,comdat
+.Ldebug_macro64:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF1782 # The macro: "__FLOAT_WORD_ORDER __BYTE_ORDER"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c # At line number 44
+ .long .LASF1783 # The macro: "__LONG_LONG_PAIR(HI,LO) LO, HI"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.sched.h.21.0fa6cb99c7cdaf5d5eb874d94ea7116a,comdat
+.Ldebug_macro65:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x15 # At line number 21
+ .long .LASF1785 # The macro: "_BITS_SCHED_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c # At line number 28
+ .long .LASF1786 # The macro: "SCHED_OTHER 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1d # At line number 29
+ .long .LASF1787 # The macro: "SCHED_FIFO 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1788 # The macro: "SCHED_RR 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20 # At line number 32
+ .long .LASF1789 # The macro: "SCHED_NORMAL 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x21 # At line number 33
+ .long .LASF1790 # The macro: "SCHED_BATCH 3"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22 # At line number 34
+ .long .LASF1791 # The macro: "SCHED_ISO 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23 # At line number 35
+ .long .LASF1792 # The macro: "SCHED_IDLE 5"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24 # At line number 36
+ .long .LASF1793 # The macro: "SCHED_DEADLINE 6"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25 # At line number 37
+ .long .LASF1794 # The macro: "SCHED_EXT 7"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF1795 # The macro: "SCHED_RESET_ON_FORK 0x40000000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b # At line number 43
+ .long .LASF1796 # The macro: "SCHED_FLAG_RESET_ON_FORK 0x01"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c # At line number 44
+ .long .LASF1797 # The macro: "SCHED_FLAG_RECLAIM 0x02"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d # At line number 45
+ .long .LASF1798 # The macro: "SCHED_FLAG_DL_OVERRUN 0x04"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e # At line number 46
+ .long .LASF1799 # The macro: "SCHED_FLAG_KEEP_POLICY 0x08"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f # At line number 47
+ .long .LASF1800 # The macro: "SCHED_FLAG_KEEP_PARAMS 0x10"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x30 # At line number 48
+ .long .LASF1801 # The macro: "SCHED_FLAG_UTIL_CLAMP_MIN 0x20"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x31 # At line number 49
+ .long .LASF1802 # The macro: "SCHED_FLAG_UTIL_CLAMP_MAX 0x40"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x34 # At line number 52
+ .long .LASF1803 # The macro: "SCHED_FLAG_KEEP_ALL (SCHED_FLAG_KEEP_POLICY | SCHED_FLAG_KEEP_PARAMS)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x36 # At line number 54
+ .long .LASF1804 # The macro: "SCHED_FLAG_UTIL_CLAMP (SCHED_FLAG_UTIL_CLAMP_MIN | SCHED_FLAG_UTIL_CLAMP_MAX)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3e # At line number 62
+ .long .LASF1805 # The macro: "sched_param __glibc_mask_sched_param"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.bitsperlong.h.3.81201f16c5ebf9ebeb0f369d7d7d8e27,comdat
+.Ldebug_macro66:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3 # At line number 3
+ .long .LASF1810 # The macro: "__ASM_X86_BITSPERLONG_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6 # At line number 6
+ .long .LASF1811 # The macro: "__BITS_PER_LONG 64"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.bitsperlong.h.3.c81570a1b11d23e1da1277c0e6d6abad,comdat
+.Ldebug_macro67:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3 # At line number 3
+ .long .LASF1812 # The macro: "__ASM_GENERIC_BITS_PER_LONG "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c # At line number 28
+ .long .LASF1813 # The macro: "__BITS_PER_LONG_LONG 64"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.3.30f7c09bd532ee2f949603c349599342,comdat
+.Ldebug_macro68:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3 # At line number 3
+ .long .LASF1815 # The macro: "_LINUX_STDDEF_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf # At line number 15
+ .long .LASF1816 # The macro: "__struct_group_tag(TAG) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x21 # At line number 33
+ .long .LASF1817 # The macro: "__struct_group(TAG,NAME,ATTRS,MEMBERS...) union { struct { MEMBERS } ATTRS; struct __struct_group_tag(TAG) { MEMBERS } ATTRS NAME; } ATTRS"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29 # At line number 41
+ .long .LASF1818 # The macro: "__DECLARE_FLEX_ARRAY(T,member) T member[0]"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3e # At line number 62
+ .long .LASF1819 # The macro: "__counted_by(m) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x42 # At line number 66
+ .long .LASF1820 # The macro: "__counted_by_le(m) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x46 # At line number 70
+ .long .LASF1821 # The macro: "__counted_by_be(m) "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.posix_types.h.22.ce27b629270cbb91230af7498cb5994b,comdat
+.Ldebug_macro69:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x16 # At line number 22
+ .long .LASF1822 # The macro: "__FD_SETSIZE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x17 # At line number 23
+ .long .LASF1770 # The macro: "__FD_SETSIZE 1024"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.posix_types_64.h.3.c35937438f2f85070758d4696b933189,comdat
+.Ldebug_macro70:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3 # At line number 3
+ .long .LASF1823 # The macro: "_ASM_X86_POSIX_TYPES_64_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd # At line number 13
+ .long .LASF1824 # The macro: "__kernel_old_uid_t __kernel_old_uid_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10 # At line number 16
+ .long .LASF1825 # The macro: "__kernel_old_dev_t __kernel_old_dev_t"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.types.h.25.5e03dcce3b8caa26d2b50a3b7f9269de,comdat
+.Ldebug_macro71:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x19 # At line number 25
+ .long .LASF1827 # The macro: "__bitwise "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1d # At line number 29
+ .long .LASF1828 # The macro: "__bitwise__ __bitwise"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x32 # At line number 50
+ .long .LASF1829 # The macro: "__aligned_u64 __u64 __attribute__((aligned(8)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x33 # At line number 51
+ .long .LASF1830 # The macro: "__aligned_s64 __s64 __attribute__((aligned(8)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x34 # At line number 52
+ .long .LASF1831 # The macro: "__aligned_be64 __be64 __attribute__((aligned(8)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35 # At line number 53
+ .long .LASF1832 # The macro: "__aligned_le64 __le64 __attribute__((aligned(8)))"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.types.h.7.d8bedba570dbee0f3b10d2711797b3ea,comdat
+.Ldebug_macro72:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7 # At line number 7
+ .long .LASF1833 # The macro: "SCHED_ATTR_SIZE_VER0 48"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8 # At line number 8
+ .long .LASF1834 # The macro: "SCHED_ATTR_SIZE_VER1 56"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.sched.h.64.0da2abe4c551d0d3a1777f85f829b986,comdat
+.Ldebug_macro73:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x40 # At line number 64
+ .long .LASF1835 # The macro: "sched_param"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x58 # At line number 88
+ .long .LASF1836 # The macro: "CSIGNAL 0x000000ff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x59 # At line number 89
+ .long .LASF1837 # The macro: "CLONE_VM 0x00000100"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5a # At line number 90
+ .long .LASF1838 # The macro: "CLONE_FS 0x00000200"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1839 # The macro: "CLONE_FILES 0x00000400"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5c # At line number 92
+ .long .LASF1840 # The macro: "CLONE_SIGHAND 0x00000800"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5d # At line number 93
+ .long .LASF1841 # The macro: "CLONE_PIDFD 0x00001000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5f # At line number 95
+ .long .LASF1842 # The macro: "CLONE_PTRACE 0x00002000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x60 # At line number 96
+ .long .LASF1843 # The macro: "CLONE_VFORK 0x00004000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x62 # At line number 98
+ .long .LASF1844 # The macro: "CLONE_PARENT 0x00008000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x64 # At line number 100
+ .long .LASF1845 # The macro: "CLONE_THREAD 0x00010000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1846 # The macro: "CLONE_NEWNS 0x00020000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x66 # At line number 102
+ .long .LASF1847 # The macro: "CLONE_SYSVSEM 0x00040000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x67 # At line number 103
+ .long .LASF1848 # The macro: "CLONE_SETTLS 0x00080000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x68 # At line number 104
+ .long .LASF1849 # The macro: "CLONE_PARENT_SETTID 0x00100000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6a # At line number 106
+ .long .LASF1850 # The macro: "CLONE_CHILD_CLEARTID 0x00200000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6c # At line number 108
+ .long .LASF1851 # The macro: "CLONE_DETACHED 0x00400000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6d # At line number 109
+ .long .LASF1852 # The macro: "CLONE_UNTRACED 0x00800000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6f # At line number 111
+ .long .LASF1853 # The macro: "CLONE_CHILD_SETTID 0x01000000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x71 # At line number 113
+ .long .LASF1854 # The macro: "CLONE_NEWCGROUP 0x02000000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x72 # At line number 114
+ .long .LASF1855 # The macro: "CLONE_NEWUTS 0x04000000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x73 # At line number 115
+ .long .LASF1856 # The macro: "CLONE_NEWIPC 0x08000000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1857 # The macro: "CLONE_NEWUSER 0x10000000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x75 # At line number 117
+ .long .LASF1858 # The macro: "CLONE_NEWPID 0x20000000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x76 # At line number 118
+ .long .LASF1859 # The macro: "CLONE_NEWNET 0x40000000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x77 # At line number 119
+ .long .LASF1860 # The macro: "CLONE_IO 0x80000000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7b # At line number 123
+ .long .LASF1861 # The macro: "CLONE_NEWTIME 0x00000080"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.cpuset.h.21.819c5d0fbb06c94c4652b537360ff25a,comdat
+.Ldebug_macro74:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x15 # At line number 21
+ .long .LASF1863 # The macro: "_BITS_CPU_SET_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c # At line number 28
+ .long .LASF1864 # The macro: "__CPU_SETSIZE 1024"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1d # At line number 29
+ .long .LASF1865 # The macro: "__NCPUBITS (8 * sizeof (__cpu_mask))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23 # At line number 35
+ .long .LASF1866 # The macro: "__CPUELT(cpu) ((cpu) / __NCPUBITS)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24 # At line number 36
+ .long .LASF1867 # The macro: "__CPUMASK(cpu) ((__cpu_mask) 1 << ((cpu) % __NCPUBITS))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e # At line number 46
+ .long .LASF1868 # The macro: "__CPU_ZERO_S(setsize,cpusetp) do __builtin_memset (cpusetp, '\0', setsize); while (0)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3a # At line number 58
+ .long .LASF1869 # The macro: "__CPU_SET_S(cpu,setsize,cpusetp) (__extension__ ({ size_t __cpu = (cpu); __cpu / 8 < (setsize) ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] |= __CPUMASK (__cpu)) : 0; }))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1870 # The macro: "__CPU_CLR_S(cpu,setsize,cpusetp) (__extension__ ({ size_t __cpu = (cpu); __cpu / 8 < (setsize) ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] &= ~__CPUMASK (__cpu)) : 0; }))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x48 # At line number 72
+ .long .LASF1871 # The macro: "__CPU_ISSET_S(cpu,setsize,cpusetp) (__extension__ ({ size_t __cpu = (cpu); __cpu / 8 < (setsize) ? ((((const __cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] & __CPUMASK (__cpu))) != 0 : 0; }))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x50 # At line number 80
+ .long .LASF1872 # The macro: "__CPU_COUNT_S(setsize,cpusetp) __sched_cpucount (setsize, cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x54 # At line number 84
+ .long .LASF1873 # The macro: "__CPU_EQUAL_S(setsize,cpusetp1,cpusetp2) (__builtin_memcmp (cpusetp1, cpusetp2, setsize) == 0)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x63 # At line number 99
+ .long .LASF1874 # The macro: "__CPU_OP_S(setsize,destset,srcset1,srcset2,op) (__extension__ ({ cpu_set_t *__dest = (destset); const __cpu_mask *__arr1 = (srcset1)->__bits; const __cpu_mask *__arr2 = (srcset2)->__bits; size_t __imax = (setsize) / sizeof (__cpu_mask); size_t __i; for (__i = 0; __i < __imax; ++__i) ((__cpu_mask *) __dest->__bits)[__i] = __arr1[__i] op __arr2[__i]; __dest; }))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1875 # The macro: "__CPU_ALLOC_SIZE(count) ((((count) + __NCPUBITS - 1) / __NCPUBITS) * sizeof (__cpu_mask))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x70 # At line number 112
+ .long .LASF1876 # The macro: "__CPU_ALLOC(count) __sched_cpualloc (count)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x71 # At line number 113
+ .long .LASF1877 # The macro: "__CPU_FREE(cpuset) __sched_cpufree (cpuset)"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.sched.h.47.e67ad745c847e33c4e7b201dc9f663a6,comdat
+.Ldebug_macro75:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f # At line number 47
+ .long .LASF1878 # The macro: "sched_priority sched_priority"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x30 # At line number 48
+ .long .LASF1879 # The macro: "__sched_priority sched_priority"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1880 # The macro: "CPU_SETSIZE __CPU_SETSIZE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5c # At line number 92
+ .long .LASF1881 # The macro: "CPU_SET(cpu,cpusetp) __CPU_SET_S (cpu, sizeof (cpu_set_t), cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5d # At line number 93
+ .long .LASF1882 # The macro: "CPU_CLR(cpu,cpusetp) __CPU_CLR_S (cpu, sizeof (cpu_set_t), cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5e # At line number 94
+ .long .LASF1883 # The macro: "CPU_ISSET(cpu,cpusetp) __CPU_ISSET_S (cpu, sizeof (cpu_set_t), cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x60 # At line number 96
+ .long .LASF1884 # The macro: "CPU_ZERO(cpusetp) __CPU_ZERO_S (sizeof (cpu_set_t), cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x61 # At line number 97
+ .long .LASF1885 # The macro: "CPU_COUNT(cpusetp) __CPU_COUNT_S (sizeof (cpu_set_t), cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x63 # At line number 99
+ .long .LASF1886 # The macro: "CPU_SET_S(cpu,setsize,cpusetp) __CPU_SET_S (cpu, setsize, cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x64 # At line number 100
+ .long .LASF1887 # The macro: "CPU_CLR_S(cpu,setsize,cpusetp) __CPU_CLR_S (cpu, setsize, cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1888 # The macro: "CPU_ISSET_S(cpu,setsize,cpusetp) __CPU_ISSET_S (cpu, setsize, cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x67 # At line number 103
+ .long .LASF1889 # The macro: "CPU_ZERO_S(setsize,cpusetp) __CPU_ZERO_S (setsize, cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x68 # At line number 104
+ .long .LASF1890 # The macro: "CPU_COUNT_S(setsize,cpusetp) __CPU_COUNT_S (setsize, cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6a # At line number 106
+ .long .LASF1891 # The macro: "CPU_EQUAL(cpusetp1,cpusetp2) __CPU_EQUAL_S (sizeof (cpu_set_t), cpusetp1, cpusetp2)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6c # At line number 108
+ .long .LASF1892 # The macro: "CPU_EQUAL_S(setsize,cpusetp1,cpusetp2) __CPU_EQUAL_S (setsize, cpusetp1, cpusetp2)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6f # At line number 111
+ .long .LASF1893 # The macro: "CPU_AND(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, &)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x71 # At line number 113
+ .long .LASF1894 # The macro: "CPU_OR(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, |)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x73 # At line number 115
+ .long .LASF1895 # The macro: "CPU_XOR(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, ^)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x75 # At line number 117
+ .long .LASF1896 # The macro: "CPU_AND_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, &)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x77 # At line number 119
+ .long .LASF1897 # The macro: "CPU_OR_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, |)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x79 # At line number 121
+ .long .LASF1898 # The macro: "CPU_XOR_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, ^)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7c # At line number 124
+ .long .LASF1899 # The macro: "CPU_ALLOC_SIZE(count) __CPU_ALLOC_SIZE (count)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7d # At line number 125
+ .long .LASF1900 # The macro: "CPU_ALLOC(count) __CPU_ALLOC (count)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF1901 # The macro: "CPU_FREE(cpuset) __CPU_FREE (cpuset)"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.time.h.23.18ede267f3a48794bef4705df80339de,comdat
+.Ldebug_macro76:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x17 # At line number 23
+ .long .LASF1902 # The macro: "_TIME_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1b # At line number 27
+ .long .LASF1572 # The macro: "__need_size_t "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c # At line number 28
+ .long .LASF1574 # The macro: "__need_NULL "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.time.h.24.2a1e1114b014e13763222c5cd6400760,comdat
+.Ldebug_macro77:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18 # At line number 24
+ .long .LASF1903 # The macro: "_BITS_TIME_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22 # At line number 34
+ .long .LASF1904 # The macro: "CLOCKS_PER_SEC ((__clock_t) 1000000)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e # At line number 46
+ .long .LASF1905 # The macro: "CLOCK_REALTIME 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x30 # At line number 48
+ .long .LASF1906 # The macro: "CLOCK_MONOTONIC 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x32 # At line number 50
+ .long .LASF1907 # The macro: "CLOCK_PROCESS_CPUTIME_ID 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x34 # At line number 52
+ .long .LASF1908 # The macro: "CLOCK_THREAD_CPUTIME_ID 3"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x36 # At line number 54
+ .long .LASF1909 # The macro: "CLOCK_MONOTONIC_RAW 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x38 # At line number 56
+ .long .LASF1910 # The macro: "CLOCK_REALTIME_COARSE 5"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3a # At line number 58
+ .long .LASF1911 # The macro: "CLOCK_MONOTONIC_COARSE 6"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3c # At line number 60
+ .long .LASF1912 # The macro: "CLOCK_BOOTTIME 7"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3e # At line number 62
+ .long .LASF1913 # The macro: "CLOCK_REALTIME_ALARM 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x40 # At line number 64
+ .long .LASF1914 # The macro: "CLOCK_BOOTTIME_ALARM 9"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x42 # At line number 66
+ .long .LASF1915 # The macro: "CLOCK_TAI 11"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x45 # At line number 69
+ .long .LASF1916 # The macro: "TIMER_ABSTIME 1"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.timex.h.88.8db50feb82d841a67daef3e223fd9324,comdat
+.Ldebug_macro78:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x58 # At line number 88
+ .long .LASF1919 # The macro: "ADJ_OFFSET 0x0001"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x59 # At line number 89
+ .long .LASF1920 # The macro: "ADJ_FREQUENCY 0x0002"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5a # At line number 90
+ .long .LASF1921 # The macro: "ADJ_MAXERROR 0x0004"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1922 # The macro: "ADJ_ESTERROR 0x0008"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5c # At line number 92
+ .long .LASF1923 # The macro: "ADJ_STATUS 0x0010"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5d # At line number 93
+ .long .LASF1924 # The macro: "ADJ_TIMECONST 0x0020"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5e # At line number 94
+ .long .LASF1925 # The macro: "ADJ_TAI 0x0080"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5f # At line number 95
+ .long .LASF1926 # The macro: "ADJ_SETOFFSET 0x0100"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x60 # At line number 96
+ .long .LASF1927 # The macro: "ADJ_MICRO 0x1000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x61 # At line number 97
+ .long .LASF1928 # The macro: "ADJ_NANO 0x2000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x62 # At line number 98
+ .long .LASF1929 # The macro: "ADJ_TICK 0x4000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x63 # At line number 99
+ .long .LASF1930 # The macro: "ADJ_OFFSET_SINGLESHOT 0x8001"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x64 # At line number 100
+ .long .LASF1931 # The macro: "ADJ_OFFSET_SS_READ 0xa001"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x67 # At line number 103
+ .long .LASF1932 # The macro: "MOD_OFFSET ADJ_OFFSET"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x68 # At line number 104
+ .long .LASF1933 # The macro: "MOD_FREQUENCY ADJ_FREQUENCY"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x69 # At line number 105
+ .long .LASF1934 # The macro: "MOD_MAXERROR ADJ_MAXERROR"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6a # At line number 106
+ .long .LASF1935 # The macro: "MOD_ESTERROR ADJ_ESTERROR"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6b # At line number 107
+ .long .LASF1936 # The macro: "MOD_STATUS ADJ_STATUS"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6c # At line number 108
+ .long .LASF1937 # The macro: "MOD_TIMECONST ADJ_TIMECONST"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6d # At line number 109
+ .long .LASF1938 # The macro: "MOD_CLKB ADJ_TICK"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1939 # The macro: "MOD_CLKA ADJ_OFFSET_SINGLESHOT"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6f # At line number 111
+ .long .LASF1940 # The macro: "MOD_TAI ADJ_TAI"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x70 # At line number 112
+ .long .LASF1941 # The macro: "MOD_MICRO ADJ_MICRO"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x71 # At line number 113
+ .long .LASF1942 # The macro: "MOD_NANO ADJ_NANO"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x75 # At line number 117
+ .long .LASF1943 # The macro: "STA_PLL 0x0001"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x76 # At line number 118
+ .long .LASF1944 # The macro: "STA_PPSFREQ 0x0002"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x77 # At line number 119
+ .long .LASF1945 # The macro: "STA_PPSTIME 0x0004"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x78 # At line number 120
+ .long .LASF1946 # The macro: "STA_FLL 0x0008"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7a # At line number 122
+ .long .LASF1947 # The macro: "STA_INS 0x0010"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7b # At line number 123
+ .long .LASF1948 # The macro: "STA_DEL 0x0020"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7c # At line number 124
+ .long .LASF1949 # The macro: "STA_UNSYNC 0x0040"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7d # At line number 125
+ .long .LASF1950 # The macro: "STA_FREQHOLD 0x0080"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7f # At line number 127
+ .long .LASF1951 # The macro: "STA_PPSSIGNAL 0x0100"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x80 # At line number 128
+ .long .LASF1952 # The macro: "STA_PPSJITTER 0x0200"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x81 # At line number 129
+ .long .LASF1953 # The macro: "STA_PPSWANDER 0x0400"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x82 # At line number 130
+ .long .LASF1954 # The macro: "STA_PPSERROR 0x0800"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x84 # At line number 132
+ .long .LASF1955 # The macro: "STA_CLOCKERR 0x1000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x85 # At line number 133
+ .long .LASF1956 # The macro: "STA_NANO 0x2000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x86 # At line number 134
+ .long .LASF1957 # The macro: "STA_MODE 0x4000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x87 # At line number 135
+ .long .LASF1958 # The macro: "STA_CLK 0x8000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8a # At line number 138
+ .long .LASF1959 # The macro: "STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.time.h.65.ad8b7cdf304665ee800a89090a0d61aa,comdat
+.Ldebug_macro79:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1965 # The macro: "TIME_UTC 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xef # At line number 239
+ .long .LASF1966 # The macro: "__isleap(year) ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.pthreadtypesarch.h.25.6063cba99664c916e22d3a912bcc348a,comdat
+.Ldebug_macro80:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x19 # At line number 25
+ .long .LASF1970 # The macro: "__SIZEOF_PTHREAD_MUTEX_T 40"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a # At line number 26
+ .long .LASF1971 # The macro: "__SIZEOF_PTHREAD_ATTR_T 56"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1b # At line number 27
+ .long .LASF1972 # The macro: "__SIZEOF_PTHREAD_RWLOCK_T 56"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c # At line number 28
+ .long .LASF1973 # The macro: "__SIZEOF_PTHREAD_BARRIER_T 32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29 # At line number 41
+ .long .LASF1974 # The macro: "__SIZEOF_PTHREAD_MUTEXATTR_T 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a # At line number 42
+ .long .LASF1975 # The macro: "__SIZEOF_PTHREAD_COND_T 48"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b # At line number 43
+ .long .LASF1976 # The macro: "__SIZEOF_PTHREAD_CONDATTR_T 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c # At line number 44
+ .long .LASF1977 # The macro: "__SIZEOF_PTHREAD_RWLOCKATTR_T 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d # At line number 45
+ .long .LASF1978 # The macro: "__SIZEOF_PTHREAD_BARRIERATTR_T 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f # At line number 47
+ .long .LASF1979 # The macro: "__LOCK_ALIGNMENT "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x30 # At line number 48
+ .long .LASF1980 # The macro: "__ONCE_ALIGNMENT "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.struct_mutex.h.20.e3a8115b63766b45e6c385382ab210bd,comdat
+.Ldebug_macro81:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1982 # The macro: "_THREAD_MUTEX_INTERNAL_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25 # At line number 37
+ .long .LASF1983 # The macro: "__PTHREAD_MUTEX_HAVE_PREV 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x38 # At line number 56
+ .long .LASF1984 # The macro: "__PTHREAD_MUTEX_INITIALIZER(__kind) 0, 0, 0, 0, __kind, 0, 0, { NULL, NULL }"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.struct_rwlock.h.21.0254880f2904e3833fb8ae683e0f0330,comdat
+.Ldebug_macro82:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x15 # At line number 21
+ .long .LASF1985 # The macro: "_RWLOCK_INTERNAL_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF1986 # The macro: "__PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0, 0, 0, 0, 0 }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3a # At line number 58
+ .long .LASF1987 # The macro: "__PTHREAD_RWLOCK_INITIALIZER(__flags) 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, __flags"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.__sigset_t.h.2.6b1ab6ff3d7b8fd9c0c42b0d80afbd80,comdat
+.Ldebug_macro83:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1991 # The macro: "____sigset_t_defined "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4 # At line number 4
+ .long .LASF1992 # The macro: "_SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int)))"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.pthread_stack_mindynamic.h.22.a920bc0766cffdef9d211057c8bee7ba,comdat
+.Ldebug_macro84:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16 # At line number 22
+ .long .LASF1994 # The macro: "__SC_THREAD_STACK_MIN_VALUE 75"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a # At line number 26
+ .long .LASF1995 # The macro: "PTHREAD_STACK_MIN __sysconf (__SC_THREAD_STACK_MIN_VALUE)"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.pthread.h.40.aa18493bac84a5edd35d6ba449181dda,comdat
+.Ldebug_macro85:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF1996 # The macro: "PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a # At line number 42
+ .long .LASF1997 # The macro: "PTHREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5a # At line number 90
+ .long .LASF1998 # The macro: "PTHREAD_MUTEX_INITIALIZER { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_TIMED_NP) } }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5d # At line number 93
+ .long .LASF1999 # The macro: "PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_RECURSIVE_NP) } }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5f # At line number 95
+ .long .LASF2000 # The macro: "PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_ERRORCHECK_NP) } }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x61 # At line number 97
+ .long .LASF2001 # The macro: "PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_ADAPTIVE_NP) } }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x72 # At line number 114
+ .long .LASF2002 # The macro: "PTHREAD_RWLOCK_INITIALIZER { { __PTHREAD_RWLOCK_INITIALIZER (PTHREAD_RWLOCK_DEFAULT_NP) } }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x75 # At line number 117
+ .long .LASF2003 # The macro: "PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP { { __PTHREAD_RWLOCK_INITIALIZER (PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP) } }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7f # At line number 127
+ .long .LASF2004 # The macro: "PTHREAD_INHERIT_SCHED PTHREAD_INHERIT_SCHED"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x81 # At line number 129
+ .long .LASF2005 # The macro: "PTHREAD_EXPLICIT_SCHED PTHREAD_EXPLICIT_SCHED"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x89 # At line number 137
+ .long .LASF2006 # The macro: "PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_SYSTEM"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8b # At line number 139
+ .long .LASF2007 # The macro: "PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_PROCESS"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x93 # At line number 147
+ .long .LASF2008 # The macro: "PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x95 # At line number 149
+ .long .LASF2009 # The macro: "PTHREAD_PROCESS_SHARED PTHREAD_PROCESS_SHARED"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9b # At line number 155
+ .long .LASF2010 # The macro: "PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, 0, 0, {0, 0}, 0, 0 } }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xab # At line number 171
+ .long .LASF2011 # The macro: "PTHREAD_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xad # At line number 173
+ .long .LASF2012 # The macro: "PTHREAD_CANCEL_DISABLE PTHREAD_CANCEL_DISABLE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb2 # At line number 178
+ .long .LASF2013 # The macro: "PTHREAD_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4 # At line number 180
+ .long .LASF2014 # The macro: "PTHREAD_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb6 # At line number 182
+ .long .LASF2015 # The macro: "PTHREAD_CANCELED ((void *) -1)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xba # At line number 186
+ .long .LASF2016 # The macro: "PTHREAD_ONCE_INIT 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc1 # At line number 193
+ .long .LASF2017 # The macro: "PTHREAD_BARRIER_SERIAL_THREAD -1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a6 # At line number 422
+ .long .LASF2018 # The macro: "PTHREAD_ATTR_NO_SIGMASK_NP (-1)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x228 # At line number 552
+ .long .LASF2019 # The macro: "__cleanup_fct_attribute "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x250 # At line number 592
+ .long .LASF2020 # The macro: "pthread_cleanup_push(routine,arg) do { __pthread_cleanup_class __clframe (routine, arg)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x256 # At line number 598
+ .long .LASF2021 # The macro: "pthread_cleanup_pop(execute) __clframe.__setdoit (execute); } while (0)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25e # At line number 606
+ .long .LASF2022 # The macro: "pthread_cleanup_push_defer_np(routine,arg) do { __pthread_cleanup_class __clframe (routine, arg); __clframe.__defer ()"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x266 # At line number 614
+ .long .LASF2023 # The macro: "pthread_cleanup_pop_restore_np(execute) __clframe.__restore (); __clframe.__setdoit (execute); } while (0)"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.gthrdefault.h.49.776f7f6d916a6e544d813c72e9649b80,comdat
+.Ldebug_macro86:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x31 # At line number 49
+ .long .LASF2024 # The macro: "__GTHREAD_ALWAYS_INLINE __attribute__((__always_inline__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF2025 # The macro: "__GTHREAD_INLINE inline __GTHREAD_ALWAYS_INLINE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF2026 # The macro: "__GTHREAD_HAS_COND 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4d # At line number 77
+ .long .LASF2027 # The macro: "__GTHREAD_MUTEX_INIT PTHREAD_MUTEX_INITIALIZER"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4e # At line number 78
+ .long .LASF2028 # The macro: "__GTHREAD_MUTEX_INIT_FUNCTION __gthread_mutex_init_function"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x52 # At line number 82
+ .long .LASF2029 # The macro: "__GTHREAD_ONCE_INIT PTHREAD_ONCE_INIT"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56 # At line number 86
+ .long .LASF2030 # The macro: "__GTHREAD_RECURSIVE_MUTEX_INIT PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5a # At line number 90
+ .long .LASF2031 # The macro: "__GTHREAD_COND_INIT PTHREAD_COND_INITIALIZER"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF2032 # The macro: "__GTHREAD_TIME_INIT {0,0}"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF2033 # The macro: "__gthrw2(name,name2,type) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x75 # At line number 117
+ .long .LASF2034 # The macro: "__gthrw_(name) name"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x79 # At line number 121
+ .long .LASF2035 # The macro: "__gthrw(name) __gthrw2(__gthrw_ ## name,name,name)"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d7 # At line number 983
+ .long .LASF2036 # The macro: "__GTHREAD_INLINE"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d8 # At line number 984
+ .long .LASF2037 # The macro: "__GTHREAD_ALWAYS_INLINE"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.atomic_word.h.30.9e0ac69fd462d5e650933e05133b4afa,comdat
+.Ldebug_macro87:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF2038 # The macro: "_GLIBCXX_ATOMIC_WORD_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24 # At line number 36
+ .long .LASF2039 # The macro: "_GLIBCXX_READ_MEM_BARRIER __atomic_thread_fence (__ATOMIC_ACQUIRE)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x26 # At line number 38
+ .long .LASF2040 # The macro: "_GLIBCXX_WRITE_MEM_BARRIER __atomic_thread_fence (__ATOMIC_RELEASE)"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.exception.31.b7d845aa1bc0759048241eca7b2b3a8a,comdat
+.Ldebug_macro88:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF2043 # The macro: "__EXCEPTION__ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF2044 # The macro: "__glibcxx_want_uncaught_exceptions "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.version.h.55.3e356afe9fc49338ddf8c6cb48ea7fb4,comdat
+.Ldebug_macro89:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1075 # The macro: "__glibcxx_incomplete_container_elements 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1076 # The macro: "__glibcxx_want_incomplete_container_elements"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1077 # The macro: "__glibcxx_uncaught_exceptions 201411L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x43 # At line number 67
+ .long .LASF2045 # The macro: "__cpp_lib_uncaught_exceptions 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1078 # The macro: "__glibcxx_want_uncaught_exceptions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1079 # The macro: "__glibcxx_allocator_traits_is_always_equal 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1080 # The macro: "__glibcxx_want_allocator_traits_is_always_equal"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1082 # The macro: "__glibcxx_want_is_null_pointer"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1084 # The macro: "__glibcxx_want_result_of_sfinae"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1085 # The macro: "__glibcxx_shared_ptr_arrays 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1086 # The macro: "__glibcxx_want_shared_ptr_arrays"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF1088 # The macro: "__glibcxx_want_is_swappable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x88 # At line number 136
+ .long .LASF1090 # The macro: "__glibcxx_want_void_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8c # At line number 140
+ .long .LASF1091 # The macro: "__glibcxx_enable_shared_from_this 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x92 # At line number 146
+ .long .LASF1092 # The macro: "__glibcxx_want_enable_shared_from_this"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x96 # At line number 150
+ .long .LASF1093 # The macro: "__glibcxx_math_spec_funcs 201003L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF1094 # The macro: "__glibcxx_want_math_spec_funcs"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xa6 # At line number 166
+ .long .LASF1095 # The macro: "__glibcxx_want_coroutine"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa # At line number 170
+ .long .LASF1096 # The macro: "__glibcxx_exchange_function 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb0 # At line number 176
+ .long .LASF1097 # The macro: "__glibcxx_want_exchange_function"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4 # At line number 180
+ .long .LASF1098 # The macro: "__glibcxx_integer_sequence 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xba # At line number 186
+ .long .LASF1099 # The macro: "__glibcxx_want_integer_sequence"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xc4 # At line number 196
+ .long .LASF1101 # The macro: "__glibcxx_want_integral_constant_callable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xce # At line number 206
+ .long .LASF1103 # The macro: "__glibcxx_want_is_final"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2 # At line number 210
+ .long .LASF1104 # The macro: "__glibcxx_make_reverse_iterator 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd8 # At line number 216
+ .long .LASF1105 # The macro: "__glibcxx_want_make_reverse_iterator"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc # At line number 220
+ .long .LASF1106 # The macro: "__glibcxx_null_iterators 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe2 # At line number 226
+ .long .LASF1107 # The macro: "__glibcxx_want_null_iterators"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xec # At line number 236
+ .long .LASF1109 # The macro: "__glibcxx_want_transformation_trait_aliases"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf0 # At line number 240
+ .long .LASF1110 # The macro: "__glibcxx_transparent_operators 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf6 # At line number 246
+ .long .LASF1111 # The macro: "__glibcxx_want_transparent_operators"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x100 # At line number 256
+ .long .LASF1113 # The macro: "__glibcxx_want_tuple_element_t"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x10a # At line number 266
+ .long .LASF1115 # The macro: "__glibcxx_want_tuples_by_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10e # At line number 270
+ .long .LASF1116 # The macro: "__glibcxx_robust_nonmodifying_seq_ops 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x114 # At line number 276
+ .long .LASF1117 # The macro: "__glibcxx_want_robust_nonmodifying_seq_ops"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11d # At line number 285
+ .long .LASF1118 # The macro: "__glibcxx_to_chars 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x123 # At line number 291
+ .long .LASF1119 # The macro: "__glibcxx_want_to_chars"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x127 # At line number 295
+ .long .LASF1120 # The macro: "__glibcxx_chrono_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x12d # At line number 301
+ .long .LASF1121 # The macro: "__glibcxx_want_chrono_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x131 # At line number 305
+ .long .LASF1122 # The macro: "__glibcxx_complex_udls 201309L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x137 # At line number 311
+ .long .LASF1123 # The macro: "__glibcxx_want_complex_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13b # At line number 315
+ .long .LASF1124 # The macro: "__glibcxx_generic_associative_lookup 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x141 # At line number 321
+ .long .LASF1125 # The macro: "__glibcxx_want_generic_associative_lookup"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x145 # At line number 325
+ .long .LASF1126 # The macro: "__glibcxx_make_unique 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x14b # At line number 331
+ .long .LASF1127 # The macro: "__glibcxx_want_make_unique"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14f # At line number 335
+ .long .LASF1128 # The macro: "__glibcxx_quoted_string_io 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x155 # At line number 341
+ .long .LASF1129 # The macro: "__glibcxx_want_quoted_string_io"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x159 # At line number 345
+ .long .LASF1130 # The macro: "__glibcxx_shared_timed_mutex 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x15f # At line number 351
+ .long .LASF1131 # The macro: "__glibcxx_want_shared_timed_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x163 # At line number 355
+ .long .LASF1132 # The macro: "__glibcxx_string_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x169 # At line number 361
+ .long .LASF1133 # The macro: "__glibcxx_want_string_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16d # At line number 365
+ .long .LASF1134 # The macro: "__glibcxx_addressof_constexpr 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x173 # At line number 371
+ .long .LASF1135 # The macro: "__glibcxx_want_addressof_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x177 # At line number 375
+ .long .LASF1136 # The macro: "__glibcxx_any 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x17d # At line number 381
+ .long .LASF1137 # The macro: "__glibcxx_want_any"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x187 # At line number 391
+ .long .LASF1139 # The macro: "__glibcxx_want_apply"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18b # At line number 395
+ .long .LASF1140 # The macro: "__glibcxx_as_const 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x191 # At line number 401
+ .long .LASF1141 # The macro: "__glibcxx_want_as_const"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x195 # At line number 405
+ .long .LASF1142 # The macro: "__glibcxx_atomic_is_always_lock_free 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19b # At line number 411
+ .long .LASF1143 # The macro: "__glibcxx_want_atomic_is_always_lock_free"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a5 # At line number 421
+ .long .LASF1145 # The macro: "__glibcxx_want_bool_constant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1146 # The macro: "__glibcxx_byte 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1af # At line number 431
+ .long .LASF1147 # The macro: "__glibcxx_want_byte"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1b9 # At line number 441
+ .long .LASF1149 # The macro: "__glibcxx_want_has_unique_object_representations"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1c3 # At line number 451
+ .long .LASF1152 # The macro: "__glibcxx_want_hardware_interference_size"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c7 # At line number 455
+ .long .LASF1153 # The macro: "__glibcxx_invoke 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1cd # At line number 461
+ .long .LASF1154 # The macro: "__glibcxx_want_invoke"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1d7 # At line number 471
+ .long .LASF1156 # The macro: "__glibcxx_want_is_aggregate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1e1 # At line number 481
+ .long .LASF1158 # The macro: "__glibcxx_want_is_invocable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1eb # At line number 491
+ .long .LASF1161 # The macro: "__glibcxx_want_launder"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1f5 # At line number 501
+ .long .LASF1163 # The macro: "__glibcxx_want_logical_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1ff # At line number 511
+ .long .LASF1165 # The macro: "__glibcxx_want_make_from_tuple"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x203 # At line number 515
+ .long .LASF1166 # The macro: "__glibcxx_not_fn 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x209 # At line number 521
+ .long .LASF1167 # The macro: "__glibcxx_want_not_fn"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x213 # At line number 531
+ .long .LASF1169 # The macro: "__glibcxx_want_type_trait_variable_templates"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x221 # At line number 545
+ .long .LASF1170 # The macro: "__glibcxx_variant 202102L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x227 # At line number 551
+ .long .LASF1171 # The macro: "__glibcxx_want_variant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22b # At line number 555
+ .long .LASF1172 # The macro: "__glibcxx_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x231 # At line number 561
+ .long .LASF1173 # The macro: "__glibcxx_want_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x235 # At line number 565
+ .long .LASF1174 # The macro: "__glibcxx_gcd 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x23b # At line number 571
+ .long .LASF1175 # The macro: "__glibcxx_want_gcd"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23f # At line number 575
+ .long .LASF1176 # The macro: "__glibcxx_gcd_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x245 # At line number 581
+ .long .LASF1177 # The macro: "__glibcxx_want_gcd_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24e # At line number 590
+ .long .LASF1178 # The macro: "__glibcxx_raw_memory_algorithms 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x254 # At line number 596
+ .long .LASF1179 # The macro: "__glibcxx_want_raw_memory_algorithms"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25d # At line number 605
+ .long .LASF1180 # The macro: "__glibcxx_array_constexpr 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x263 # At line number 611
+ .long .LASF1181 # The macro: "__glibcxx_want_array_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x267 # At line number 615
+ .long .LASF1182 # The macro: "__glibcxx_nonmember_container_access 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x26d # At line number 621
+ .long .LASF1183 # The macro: "__glibcxx_want_nonmember_container_access"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x271 # At line number 625
+ .long .LASF1184 # The macro: "__glibcxx_clamp 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x277 # At line number 631
+ .long .LASF1185 # The macro: "__glibcxx_want_clamp"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27b # At line number 635
+ .long .LASF1186 # The macro: "__glibcxx_sample 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x281 # At line number 641
+ .long .LASF1187 # The macro: "__glibcxx_want_sample"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x285 # At line number 645
+ .long .LASF1188 # The macro: "__glibcxx_boyer_moore_searcher 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x28b # At line number 651
+ .long .LASF1189 # The macro: "__glibcxx_want_boyer_moore_searcher"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x294 # At line number 660
+ .long .LASF1190 # The macro: "__glibcxx_chrono 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x29a # At line number 666
+ .long .LASF1191 # The macro: "__glibcxx_want_chrono"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29e # At line number 670
+ .long .LASF1192 # The macro: "__glibcxx_execution 201902L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2a4 # At line number 676
+ .long .LASF1193 # The macro: "__glibcxx_want_execution"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a8 # At line number 680
+ .long .LASF1194 # The macro: "__glibcxx_filesystem 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ae # At line number 686
+ .long .LASF1195 # The macro: "__glibcxx_want_filesystem"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b2 # At line number 690
+ .long .LASF1196 # The macro: "__glibcxx_hypot 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2b8 # At line number 696
+ .long .LASF1197 # The macro: "__glibcxx_want_hypot"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2bc # At line number 700
+ .long .LASF1198 # The macro: "__glibcxx_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2c2 # At line number 706
+ .long .LASF1199 # The macro: "__glibcxx_want_map_try_emplace"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c6 # At line number 710
+ .long .LASF1200 # The macro: "__glibcxx_math_special_functions 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2cc # At line number 716
+ .long .LASF1201 # The macro: "__glibcxx_want_math_special_functions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d0 # At line number 720
+ .long .LASF1202 # The macro: "__glibcxx_memory_resource 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2db # At line number 731
+ .long .LASF1203 # The macro: "__glibcxx_want_memory_resource"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2df # At line number 735
+ .long .LASF1204 # The macro: "__glibcxx_node_extract 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2e5 # At line number 741
+ .long .LASF1205 # The macro: "__glibcxx_want_node_extract"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e9 # At line number 745
+ .long .LASF1206 # The macro: "__glibcxx_parallel_algorithm 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ef # At line number 751
+ .long .LASF1207 # The macro: "__glibcxx_want_parallel_algorithm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f3 # At line number 755
+ .long .LASF1208 # The macro: "__glibcxx_scoped_lock 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2f9 # At line number 761
+ .long .LASF1209 # The macro: "__glibcxx_want_scoped_lock"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2fd # At line number 765
+ .long .LASF1210 # The macro: "__glibcxx_shared_mutex 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x303 # At line number 771
+ .long .LASF1211 # The macro: "__glibcxx_want_shared_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x307 # At line number 775
+ .long .LASF1212 # The macro: "__glibcxx_shared_ptr_weak_type 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x30d # At line number 781
+ .long .LASF1213 # The macro: "__glibcxx_want_shared_ptr_weak_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x316 # At line number 790
+ .long .LASF1214 # The macro: "__glibcxx_string_view 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x31c # At line number 796
+ .long .LASF1215 # The macro: "__glibcxx_want_string_view"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x320 # At line number 800
+ .long .LASF1216 # The macro: "__glibcxx_unordered_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x326 # At line number 806
+ .long .LASF1217 # The macro: "__glibcxx_want_unordered_map_try_emplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x330 # At line number 816
+ .long .LASF1218 # The macro: "__glibcxx_want_assume_aligned"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x33a # At line number 826
+ .long .LASF1219 # The macro: "__glibcxx_want_atomic_flag_test"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x344 # At line number 836
+ .long .LASF1220 # The macro: "__glibcxx_want_atomic_float"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x34e # At line number 846
+ .long .LASF1221 # The macro: "__glibcxx_want_atomic_lock_free_type_aliases"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x358 # At line number 856
+ .long .LASF1222 # The macro: "__glibcxx_want_atomic_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x362 # At line number 866
+ .long .LASF1223 # The macro: "__glibcxx_want_atomic_value_initialization"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x36c # At line number 876
+ .long .LASF1224 # The macro: "__glibcxx_want_bind_front"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x376 # At line number 886
+ .long .LASF1225 # The macro: "__glibcxx_want_bind_back"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x380 # At line number 896
+ .long .LASF1226 # The macro: "__glibcxx_want_starts_ends_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x38a # At line number 906
+ .long .LASF1227 # The macro: "__glibcxx_want_bit_cast"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x394 # At line number 916
+ .long .LASF1228 # The macro: "__glibcxx_want_bitops"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x39e # At line number 926
+ .long .LASF1229 # The macro: "__glibcxx_want_bounded_array_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3a8 # At line number 936
+ .long .LASF1230 # The macro: "__glibcxx_want_concepts"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b6 # At line number 950
+ .long .LASF1231 # The macro: "__glibcxx_optional 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3bc # At line number 956
+ .long .LASF1232 # The macro: "__glibcxx_want_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3c6 # At line number 966
+ .long .LASF1233 # The macro: "__glibcxx_want_destroying_delete"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d0 # At line number 976
+ .long .LASF1234 # The macro: "__glibcxx_want_constexpr_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3da # At line number 986
+ .long .LASF1235 # The macro: "__glibcxx_want_endian"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3e4 # At line number 996
+ .long .LASF1236 # The macro: "__glibcxx_want_int_pow2"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3ee # At line number 1006
+ .long .LASF1237 # The macro: "__glibcxx_want_integer_comparison_functions"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3f8 # At line number 1016
+ .long .LASF1238 # The macro: "__glibcxx_want_is_constant_evaluated"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x401 # At line number 1025
+ .long .LASF1239 # The macro: "__glibcxx_constexpr_char_traits 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x407 # At line number 1031
+ .long .LASF1240 # The macro: "__glibcxx_want_constexpr_char_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x411 # At line number 1041
+ .long .LASF1241 # The macro: "__glibcxx_want_is_layout_compatible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x41b # At line number 1051
+ .long .LASF1242 # The macro: "__glibcxx_want_is_nothrow_convertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x425 # At line number 1061
+ .long .LASF1243 # The macro: "__glibcxx_want_is_pointer_interconvertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x42f # At line number 1071
+ .long .LASF1244 # The macro: "__glibcxx_want_math_constants"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x439 # At line number 1081
+ .long .LASF1245 # The macro: "__glibcxx_want_make_obj_using_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x443 # At line number 1091
+ .long .LASF1246 # The macro: "__glibcxx_want_remove_cvref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x44d # At line number 1101
+ .long .LASF1247 # The macro: "__glibcxx_want_source_location"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x45c # At line number 1116
+ .long .LASF1248 # The macro: "__glibcxx_want_span"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x466 # At line number 1126
+ .long .LASF1249 # The macro: "__glibcxx_want_ssize"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x470 # At line number 1136
+ .long .LASF1250 # The macro: "__glibcxx_want_three_way_comparison"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47a # At line number 1146
+ .long .LASF1251 # The macro: "__glibcxx_want_to_address"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x484 # At line number 1156
+ .long .LASF1252 # The macro: "__glibcxx_want_to_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x48e # At line number 1166
+ .long .LASF1253 # The macro: "__glibcxx_want_type_identity"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x498 # At line number 1176
+ .long .LASF1254 # The macro: "__glibcxx_want_unwrap_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4a2 # At line number 1186
+ .long .LASF1255 # The macro: "__glibcxx_want_constexpr_iterator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4ac # At line number 1196
+ .long .LASF1256 # The macro: "__glibcxx_want_interpolate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4b6 # At line number 1206
+ .long .LASF1257 # The macro: "__glibcxx_want_constexpr_utility"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4c0 # At line number 1216
+ .long .LASF1258 # The macro: "__glibcxx_want_shift"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4d4 # At line number 1236
+ .long .LASF1259 # The macro: "__glibcxx_want_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4de # At line number 1246
+ .long .LASF1260 # The macro: "__glibcxx_want_constexpr_numeric"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4e8 # At line number 1256
+ .long .LASF1261 # The macro: "__glibcxx_want_constexpr_functional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4f7 # At line number 1271
+ .long .LASF1262 # The macro: "__glibcxx_want_constexpr_algorithms"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x501 # At line number 1281
+ .long .LASF1263 # The macro: "__glibcxx_want_constexpr_tuple"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x510 # At line number 1296
+ .long .LASF1264 # The macro: "__glibcxx_want_constexpr_memory"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51a # At line number 1306
+ .long .LASF1265 # The macro: "__glibcxx_want_atomic_shared_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x529 # At line number 1321
+ .long .LASF1266 # The macro: "__glibcxx_want_atomic_wait"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x533 # At line number 1331
+ .long .LASF1267 # The macro: "__glibcxx_want_barrier"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x542 # At line number 1346
+ .long .LASF1268 # The macro: "__glibcxx_want_format"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x54c # At line number 1356
+ .long .LASF1269 # The macro: "__glibcxx_want_format_uchar"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x556 # At line number 1366
+ .long .LASF1270 # The macro: "__glibcxx_want_constexpr_complex"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x560 # At line number 1376
+ .long .LASF1271 # The macro: "__glibcxx_want_constexpr_dynamic_alloc"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56e # At line number 1390
+ .long .LASF1272 # The macro: "__glibcxx_constexpr_string 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x574 # At line number 1396
+ .long .LASF1273 # The macro: "__glibcxx_want_constexpr_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x57e # At line number 1406
+ .long .LASF1274 # The macro: "__glibcxx_want_constexpr_vector"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x58d # At line number 1421
+ .long .LASF1275 # The macro: "__glibcxx_want_constrained_equality"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x597 # At line number 1431
+ .long .LASF1276 # The macro: "__glibcxx_want_erase_if"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5a1 # At line number 1441
+ .long .LASF1277 # The macro: "__glibcxx_want_generic_unordered_lookup"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5ab # At line number 1451
+ .long .LASF1278 # The macro: "__glibcxx_want_jthread"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b5 # At line number 1461
+ .long .LASF1279 # The macro: "__glibcxx_want_latch"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5bf # At line number 1471
+ .long .LASF1280 # The macro: "__glibcxx_want_list_remove_return_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5c9 # At line number 1481
+ .long .LASF1281 # The macro: "__glibcxx_want_polymorphic_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5d3 # At line number 1491
+ .long .LASF1282 # The macro: "__glibcxx_want_move_iterator_concept"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5dd # At line number 1501
+ .long .LASF1283 # The macro: "__glibcxx_want_semaphore"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5e7 # At line number 1511
+ .long .LASF1284 # The macro: "__glibcxx_want_smart_ptr_for_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5f1 # At line number 1521
+ .long .LASF1285 # The macro: "__glibcxx_want_syncbuf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5fb # At line number 1531
+ .long .LASF1286 # The macro: "__glibcxx_want_byteswap"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x605 # At line number 1541
+ .long .LASF1287 # The macro: "__glibcxx_want_constexpr_charconv"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x60f # At line number 1551
+ .long .LASF1288 # The macro: "__glibcxx_want_constexpr_typeinfo"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x619 # At line number 1561
+ .long .LASF1289 # The macro: "__glibcxx_want_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x622 # At line number 1570
+ .long .LASF1290 # The macro: "__glibcxx_want_format_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x62c # At line number 1580
+ .long .LASF1291 # The macro: "__glibcxx_want_freestanding_algorithm"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x636 # At line number 1590
+ .long .LASF1292 # The macro: "__glibcxx_want_freestanding_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x640 # At line number 1600
+ .long .LASF1293 # The macro: "__glibcxx_want_freestanding_cstring"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x64a # At line number 1610
+ .long .LASF1294 # The macro: "__glibcxx_want_freestanding_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x654 # At line number 1620
+ .long .LASF1295 # The macro: "__glibcxx_want_freestanding_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65e # At line number 1630
+ .long .LASF1296 # The macro: "__glibcxx_want_freestanding_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x668 # At line number 1640
+ .long .LASF1297 # The macro: "__glibcxx_want_freestanding_variant"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x672 # At line number 1650
+ .long .LASF1298 # The macro: "__glibcxx_want_invoke_r"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x67c # At line number 1660
+ .long .LASF1299 # The macro: "__glibcxx_want_is_scoped_enum"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x686 # At line number 1670
+ .long .LASF1300 # The macro: "__glibcxx_want_reference_from_temporary"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x690 # At line number 1680
+ .long .LASF1301 # The macro: "__glibcxx_want_containers_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x69a # At line number 1690
+ .long .LASF1302 # The macro: "__glibcxx_want_ranges_to_container"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6a4 # At line number 1700
+ .long .LASF1303 # The macro: "__glibcxx_want_ranges_zip"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ae # At line number 1710
+ .long .LASF1304 # The macro: "__glibcxx_want_ranges_chunk"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6b8 # At line number 1720
+ .long .LASF1305 # The macro: "__glibcxx_want_ranges_slide"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6c2 # At line number 1730
+ .long .LASF1306 # The macro: "__glibcxx_want_ranges_chunk_by"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6cc # At line number 1740
+ .long .LASF1307 # The macro: "__glibcxx_want_ranges_join_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6d6 # At line number 1750
+ .long .LASF1308 # The macro: "__glibcxx_want_ranges_repeat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6e0 # At line number 1760
+ .long .LASF1309 # The macro: "__glibcxx_want_ranges_stride"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ea # At line number 1770
+ .long .LASF1310 # The macro: "__glibcxx_want_ranges_cartesian_product"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6f4 # At line number 1780
+ .long .LASF1311 # The macro: "__glibcxx_want_ranges_as_rvalue"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6fe # At line number 1790
+ .long .LASF1312 # The macro: "__glibcxx_want_ranges_as_const"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x708 # At line number 1800
+ .long .LASF1313 # The macro: "__glibcxx_want_ranges_enumerate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x712 # At line number 1810
+ .long .LASF1314 # The macro: "__glibcxx_want_ranges_fold"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x71c # At line number 1820
+ .long .LASF1315 # The macro: "__glibcxx_want_ranges_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x726 # At line number 1830
+ .long .LASF1316 # The macro: "__glibcxx_want_ranges_iota"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x730 # At line number 1840
+ .long .LASF1317 # The macro: "__glibcxx_want_ranges_find_last"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x73a # At line number 1850
+ .long .LASF1318 # The macro: "__glibcxx_want_constexpr_bitset"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x744 # At line number 1860
+ .long .LASF1319 # The macro: "__glibcxx_want_stdatomic_h"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74e # At line number 1870
+ .long .LASF1320 # The macro: "__glibcxx_want_adaptor_iterator_pair_constructor"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x758 # At line number 1880
+ .long .LASF1321 # The macro: "__glibcxx_want_flat_map"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x762 # At line number 1890
+ .long .LASF1322 # The macro: "__glibcxx_want_flat_set"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x76c # At line number 1900
+ .long .LASF1323 # The macro: "__glibcxx_want_formatters"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x776 # At line number 1910
+ .long .LASF1324 # The macro: "__glibcxx_want_forward_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x780 # At line number 1920
+ .long .LASF1325 # The macro: "__glibcxx_want_generator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78a # At line number 1930
+ .long .LASF1326 # The macro: "__glibcxx_want_ios_noreplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x794 # At line number 1940
+ .long .LASF1327 # The macro: "__glibcxx_want_move_only_function"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x79e # At line number 1950
+ .long .LASF1328 # The macro: "__glibcxx_want_out_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7a8 # At line number 1960
+ .long .LASF1329 # The macro: "__glibcxx_want_print"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7b2 # At line number 1970
+ .long .LASF1330 # The macro: "__glibcxx_want_spanstream"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7bc # At line number 1980
+ .long .LASF1331 # The macro: "__glibcxx_want_stacktrace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7c6 # At line number 1990
+ .long .LASF1332 # The macro: "__glibcxx_want_string_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7d0 # At line number 2000
+ .long .LASF1333 # The macro: "__glibcxx_want_string_resize_and_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7da # At line number 2010
+ .long .LASF1334 # The macro: "__glibcxx_want_to_underlying"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e9 # At line number 2025
+ .long .LASF1335 # The macro: "__glibcxx_want_tuple_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7f3 # At line number 2035
+ .long .LASF1336 # The macro: "__glibcxx_want_unreachable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7fd # At line number 2045
+ .long .LASF1337 # The macro: "__glibcxx_want_algorithm_default_value_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x807 # At line number 2055
+ .long .LASF1338 # The macro: "__glibcxx_want_constexpr_new"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x811 # At line number 2065
+ .long .LASF1339 # The macro: "__glibcxx_want_fstream_native_handle"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x81b # At line number 2075
+ .long .LASF1340 # The macro: "__glibcxx_want_is_virtual_base_of"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x825 # At line number 2085
+ .long .LASF1341 # The macro: "__glibcxx_want_ranges_cache_latest"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x82f # At line number 2095
+ .long .LASF1342 # The macro: "__glibcxx_want_ranges_concat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x839 # At line number 2105
+ .long .LASF1343 # The macro: "__glibcxx_want_ratio"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x843 # At line number 2115
+ .long .LASF1344 # The macro: "__glibcxx_want_reference_wrapper"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x84d # At line number 2125
+ .long .LASF1345 # The macro: "__glibcxx_want_saturation_arithmetic"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x857 # At line number 2135
+ .long .LASF1346 # The macro: "__glibcxx_want_span_initializer_list"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x861 # At line number 2145
+ .long .LASF1347 # The macro: "__glibcxx_want_text_encoding"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x86b # At line number 2155
+ .long .LASF1348 # The macro: "__glibcxx_want_ranges_to_input"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x875 # At line number 2165
+ .long .LASF1349 # The macro: "__glibcxx_want_to_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x87f # At line number 2175
+ .long .LASF1350 # The macro: "__glibcxx_want_modules"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x881 # At line number 2177
+ .long .LASF1351 # The macro: "__glibcxx_want_all"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.39.c8a8030e26a8297e31791110b80c861f,comdat
+.Ldebug_macro90:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27 # At line number 39
+ .long .LASF2048 # The macro: "_STDDEF_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF2049 # The macro: "_STDDEF_H_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a # At line number 42
+ .long .LASF2050 # The macro: "_ANSI_STDDEF_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x93 # At line number 147
+ .long .LASF2051 # The macro: "_PTRDIFF_T "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x94 # At line number 148
+ .long .LASF2052 # The macro: "_T_PTRDIFF_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x95 # At line number 149
+ .long .LASF2053 # The macro: "_T_PTRDIFF "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x96 # At line number 150
+ .long .LASF2054 # The macro: "__PTRDIFF_T "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x97 # At line number 151
+ .long .LASF2055 # The macro: "_PTRDIFF_T_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x98 # At line number 152
+ .long .LASF2056 # The macro: "_BSD_PTRDIFF_T_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x99 # At line number 153
+ .long .LASF2057 # The macro: "___int_ptrdiff_t_h "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9a # At line number 154
+ .long .LASF2058 # The macro: "_GCC_PTRDIFF_T "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9b # At line number 155
+ .long .LASF2059 # The macro: "_PTRDIFF_T_DECLARED "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF2060 # The macro: "__DEFINED_ptrdiff_t "
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xad # At line number 173
+ .long .LASF2061 # The macro: "__need_ptrdiff_t"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xfc # At line number 252
+ .long .LASF1593 # The macro: "__need_size_t"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x16c # At line number 364
+ .long .LASF1611 # The macro: "__need_wchar_t"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19e # At line number 414
+ .long .LASF1612 # The macro: "NULL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a0 # At line number 416
+ .long .LASF1613 # The macro: "NULL __null"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1614 # The macro: "__need_NULL"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1ae # At line number 430
+ .long .LASF2062 # The macro: "offsetof"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1af # At line number 431
+ .long .LASF2063 # The macro: "offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1b4 # At line number 436
+ .long .LASF2064 # The macro: "_GCC_MAX_ALIGN_T "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c9 # At line number 457
+ .long .LASF2065 # The macro: "_GXX_NULLPTR_T "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.cxxabi_init_exception.h.44.e38819c3787893de1602efd23782161a,comdat
+.Ldebug_macro91:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c # At line number 44
+ .long .LASF2066 # The macro: "_GLIBCXX_CDTOR_CALLABI "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d # At line number 45
+ .long .LASF2067 # The macro: "_GLIBCXX_HAVE_CDTOR_CALLABI 0"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.exception_ptr.h.47.d815ed5919163856a16558bd72e9bbb6,comdat
+.Ldebug_macro92:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f # At line number 47
+ .long .LASF2068 # The macro: "_GLIBCXX_EH_PTR_USED "
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x11f # At line number 287
+ .long .LASF2069 # The macro: "_GLIBCXX_EH_PTR_USED"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.atomic_lockfree_defines.h.31.c7378ca49150c49af64f890ebd8a3b58,comdat
+.Ldebug_macro93:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF2073 # The macro: "_GLIBCXX_ATOMIC_LOCK_FREE_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x33 # At line number 51
+ .long .LASF2074 # The macro: "ATOMIC_BOOL_LOCK_FREE __GCC_ATOMIC_BOOL_LOCK_FREE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x34 # At line number 52
+ .long .LASF2075 # The macro: "ATOMIC_CHAR_LOCK_FREE __GCC_ATOMIC_CHAR_LOCK_FREE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35 # At line number 53
+ .long .LASF2076 # The macro: "ATOMIC_WCHAR_T_LOCK_FREE __GCC_ATOMIC_WCHAR_T_LOCK_FREE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF2077 # The macro: "ATOMIC_CHAR16_T_LOCK_FREE __GCC_ATOMIC_CHAR16_T_LOCK_FREE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3a # At line number 58
+ .long .LASF2078 # The macro: "ATOMIC_CHAR32_T_LOCK_FREE __GCC_ATOMIC_CHAR32_T_LOCK_FREE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b # At line number 59
+ .long .LASF2079 # The macro: "ATOMIC_SHORT_LOCK_FREE __GCC_ATOMIC_SHORT_LOCK_FREE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3c # At line number 60
+ .long .LASF2080 # The macro: "ATOMIC_INT_LOCK_FREE __GCC_ATOMIC_INT_LOCK_FREE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF2081 # The macro: "ATOMIC_LONG_LOCK_FREE __GCC_ATOMIC_LONG_LOCK_FREE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3e # At line number 62
+ .long .LASF2082 # The macro: "ATOMIC_LLONG_LOCK_FREE __GCC_ATOMIC_LLONG_LOCK_FREE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3f # At line number 63
+ .long .LASF2083 # The macro: "ATOMIC_POINTER_LOCK_FREE __GCC_ATOMIC_POINTER_LOCK_FREE"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.version.h.55.1bab2d1f88a15dc12cc1e04c277024a3,comdat
+.Ldebug_macro94:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1075 # The macro: "__glibcxx_incomplete_container_elements 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1076 # The macro: "__glibcxx_want_incomplete_container_elements"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1078 # The macro: "__glibcxx_want_uncaught_exceptions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1079 # The macro: "__glibcxx_allocator_traits_is_always_equal 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1080 # The macro: "__glibcxx_want_allocator_traits_is_always_equal"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1082 # The macro: "__glibcxx_want_is_null_pointer"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1084 # The macro: "__glibcxx_want_result_of_sfinae"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1085 # The macro: "__glibcxx_shared_ptr_arrays 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1086 # The macro: "__glibcxx_want_shared_ptr_arrays"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF1088 # The macro: "__glibcxx_want_is_swappable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x88 # At line number 136
+ .long .LASF1090 # The macro: "__glibcxx_want_void_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8c # At line number 140
+ .long .LASF1091 # The macro: "__glibcxx_enable_shared_from_this 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x92 # At line number 146
+ .long .LASF1092 # The macro: "__glibcxx_want_enable_shared_from_this"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x96 # At line number 150
+ .long .LASF1093 # The macro: "__glibcxx_math_spec_funcs 201003L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF1094 # The macro: "__glibcxx_want_math_spec_funcs"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xa6 # At line number 166
+ .long .LASF1095 # The macro: "__glibcxx_want_coroutine"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa # At line number 170
+ .long .LASF1096 # The macro: "__glibcxx_exchange_function 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb0 # At line number 176
+ .long .LASF1097 # The macro: "__glibcxx_want_exchange_function"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4 # At line number 180
+ .long .LASF1098 # The macro: "__glibcxx_integer_sequence 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xba # At line number 186
+ .long .LASF1099 # The macro: "__glibcxx_want_integer_sequence"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xc4 # At line number 196
+ .long .LASF1101 # The macro: "__glibcxx_want_integral_constant_callable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xce # At line number 206
+ .long .LASF1103 # The macro: "__glibcxx_want_is_final"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2 # At line number 210
+ .long .LASF1104 # The macro: "__glibcxx_make_reverse_iterator 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd8 # At line number 216
+ .long .LASF1105 # The macro: "__glibcxx_want_make_reverse_iterator"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc # At line number 220
+ .long .LASF1106 # The macro: "__glibcxx_null_iterators 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe2 # At line number 226
+ .long .LASF1107 # The macro: "__glibcxx_want_null_iterators"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xec # At line number 236
+ .long .LASF1109 # The macro: "__glibcxx_want_transformation_trait_aliases"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf0 # At line number 240
+ .long .LASF1110 # The macro: "__glibcxx_transparent_operators 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf6 # At line number 246
+ .long .LASF1111 # The macro: "__glibcxx_want_transparent_operators"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x100 # At line number 256
+ .long .LASF1113 # The macro: "__glibcxx_want_tuple_element_t"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x10a # At line number 266
+ .long .LASF1115 # The macro: "__glibcxx_want_tuples_by_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10e # At line number 270
+ .long .LASF1116 # The macro: "__glibcxx_robust_nonmodifying_seq_ops 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x114 # At line number 276
+ .long .LASF1117 # The macro: "__glibcxx_want_robust_nonmodifying_seq_ops"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11d # At line number 285
+ .long .LASF1118 # The macro: "__glibcxx_to_chars 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x123 # At line number 291
+ .long .LASF1119 # The macro: "__glibcxx_want_to_chars"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x127 # At line number 295
+ .long .LASF1120 # The macro: "__glibcxx_chrono_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x12d # At line number 301
+ .long .LASF1121 # The macro: "__glibcxx_want_chrono_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x131 # At line number 305
+ .long .LASF1122 # The macro: "__glibcxx_complex_udls 201309L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x137 # At line number 311
+ .long .LASF1123 # The macro: "__glibcxx_want_complex_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13b # At line number 315
+ .long .LASF1124 # The macro: "__glibcxx_generic_associative_lookup 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x141 # At line number 321
+ .long .LASF1125 # The macro: "__glibcxx_want_generic_associative_lookup"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x145 # At line number 325
+ .long .LASF1126 # The macro: "__glibcxx_make_unique 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x14b # At line number 331
+ .long .LASF1127 # The macro: "__glibcxx_want_make_unique"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14f # At line number 335
+ .long .LASF1128 # The macro: "__glibcxx_quoted_string_io 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x155 # At line number 341
+ .long .LASF1129 # The macro: "__glibcxx_want_quoted_string_io"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x159 # At line number 345
+ .long .LASF1130 # The macro: "__glibcxx_shared_timed_mutex 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x15f # At line number 351
+ .long .LASF1131 # The macro: "__glibcxx_want_shared_timed_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x163 # At line number 355
+ .long .LASF1132 # The macro: "__glibcxx_string_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x169 # At line number 361
+ .long .LASF1133 # The macro: "__glibcxx_want_string_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16d # At line number 365
+ .long .LASF1134 # The macro: "__glibcxx_addressof_constexpr 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x173 # At line number 371
+ .long .LASF1135 # The macro: "__glibcxx_want_addressof_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x177 # At line number 375
+ .long .LASF1136 # The macro: "__glibcxx_any 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x17d # At line number 381
+ .long .LASF1137 # The macro: "__glibcxx_want_any"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x187 # At line number 391
+ .long .LASF1139 # The macro: "__glibcxx_want_apply"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18b # At line number 395
+ .long .LASF1140 # The macro: "__glibcxx_as_const 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x191 # At line number 401
+ .long .LASF1141 # The macro: "__glibcxx_want_as_const"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x195 # At line number 405
+ .long .LASF1142 # The macro: "__glibcxx_atomic_is_always_lock_free 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19b # At line number 411
+ .long .LASF1143 # The macro: "__glibcxx_want_atomic_is_always_lock_free"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a5 # At line number 421
+ .long .LASF1145 # The macro: "__glibcxx_want_bool_constant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1146 # The macro: "__glibcxx_byte 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1af # At line number 431
+ .long .LASF1147 # The macro: "__glibcxx_want_byte"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1b9 # At line number 441
+ .long .LASF1149 # The macro: "__glibcxx_want_has_unique_object_representations"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1c3 # At line number 451
+ .long .LASF1152 # The macro: "__glibcxx_want_hardware_interference_size"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c7 # At line number 455
+ .long .LASF1153 # The macro: "__glibcxx_invoke 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1cd # At line number 461
+ .long .LASF1154 # The macro: "__glibcxx_want_invoke"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1d7 # At line number 471
+ .long .LASF1156 # The macro: "__glibcxx_want_is_aggregate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1e1 # At line number 481
+ .long .LASF1158 # The macro: "__glibcxx_want_is_invocable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1eb # At line number 491
+ .long .LASF1161 # The macro: "__glibcxx_want_launder"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1f5 # At line number 501
+ .long .LASF1163 # The macro: "__glibcxx_want_logical_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1ff # At line number 511
+ .long .LASF1165 # The macro: "__glibcxx_want_make_from_tuple"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x203 # At line number 515
+ .long .LASF1166 # The macro: "__glibcxx_not_fn 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x209 # At line number 521
+ .long .LASF1167 # The macro: "__glibcxx_want_not_fn"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x213 # At line number 531
+ .long .LASF1169 # The macro: "__glibcxx_want_type_trait_variable_templates"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x221 # At line number 545
+ .long .LASF1170 # The macro: "__glibcxx_variant 202102L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x227 # At line number 551
+ .long .LASF1171 # The macro: "__glibcxx_want_variant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22b # At line number 555
+ .long .LASF1172 # The macro: "__glibcxx_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x231 # At line number 561
+ .long .LASF1173 # The macro: "__glibcxx_want_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x235 # At line number 565
+ .long .LASF1174 # The macro: "__glibcxx_gcd 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x23b # At line number 571
+ .long .LASF1175 # The macro: "__glibcxx_want_gcd"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23f # At line number 575
+ .long .LASF1176 # The macro: "__glibcxx_gcd_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x245 # At line number 581
+ .long .LASF1177 # The macro: "__glibcxx_want_gcd_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24e # At line number 590
+ .long .LASF1178 # The macro: "__glibcxx_raw_memory_algorithms 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x254 # At line number 596
+ .long .LASF1179 # The macro: "__glibcxx_want_raw_memory_algorithms"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25d # At line number 605
+ .long .LASF1180 # The macro: "__glibcxx_array_constexpr 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x263 # At line number 611
+ .long .LASF1181 # The macro: "__glibcxx_want_array_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x267 # At line number 615
+ .long .LASF1182 # The macro: "__glibcxx_nonmember_container_access 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x26d # At line number 621
+ .long .LASF1183 # The macro: "__glibcxx_want_nonmember_container_access"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x271 # At line number 625
+ .long .LASF1184 # The macro: "__glibcxx_clamp 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x277 # At line number 631
+ .long .LASF1185 # The macro: "__glibcxx_want_clamp"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27b # At line number 635
+ .long .LASF1186 # The macro: "__glibcxx_sample 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x281 # At line number 641
+ .long .LASF1187 # The macro: "__glibcxx_want_sample"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x285 # At line number 645
+ .long .LASF1188 # The macro: "__glibcxx_boyer_moore_searcher 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x28b # At line number 651
+ .long .LASF1189 # The macro: "__glibcxx_want_boyer_moore_searcher"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x294 # At line number 660
+ .long .LASF1190 # The macro: "__glibcxx_chrono 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x29a # At line number 666
+ .long .LASF1191 # The macro: "__glibcxx_want_chrono"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29e # At line number 670
+ .long .LASF1192 # The macro: "__glibcxx_execution 201902L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2a4 # At line number 676
+ .long .LASF1193 # The macro: "__glibcxx_want_execution"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a8 # At line number 680
+ .long .LASF1194 # The macro: "__glibcxx_filesystem 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ae # At line number 686
+ .long .LASF1195 # The macro: "__glibcxx_want_filesystem"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b2 # At line number 690
+ .long .LASF1196 # The macro: "__glibcxx_hypot 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2b8 # At line number 696
+ .long .LASF1197 # The macro: "__glibcxx_want_hypot"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2bc # At line number 700
+ .long .LASF1198 # The macro: "__glibcxx_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2c2 # At line number 706
+ .long .LASF1199 # The macro: "__glibcxx_want_map_try_emplace"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c6 # At line number 710
+ .long .LASF1200 # The macro: "__glibcxx_math_special_functions 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2cc # At line number 716
+ .long .LASF1201 # The macro: "__glibcxx_want_math_special_functions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d0 # At line number 720
+ .long .LASF1202 # The macro: "__glibcxx_memory_resource 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2db # At line number 731
+ .long .LASF1203 # The macro: "__glibcxx_want_memory_resource"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2df # At line number 735
+ .long .LASF1204 # The macro: "__glibcxx_node_extract 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2e5 # At line number 741
+ .long .LASF1205 # The macro: "__glibcxx_want_node_extract"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e9 # At line number 745
+ .long .LASF1206 # The macro: "__glibcxx_parallel_algorithm 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ef # At line number 751
+ .long .LASF1207 # The macro: "__glibcxx_want_parallel_algorithm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f3 # At line number 755
+ .long .LASF1208 # The macro: "__glibcxx_scoped_lock 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2f9 # At line number 761
+ .long .LASF1209 # The macro: "__glibcxx_want_scoped_lock"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2fd # At line number 765
+ .long .LASF1210 # The macro: "__glibcxx_shared_mutex 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x303 # At line number 771
+ .long .LASF1211 # The macro: "__glibcxx_want_shared_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x307 # At line number 775
+ .long .LASF1212 # The macro: "__glibcxx_shared_ptr_weak_type 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x30d # At line number 781
+ .long .LASF1213 # The macro: "__glibcxx_want_shared_ptr_weak_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x316 # At line number 790
+ .long .LASF1214 # The macro: "__glibcxx_string_view 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x31c # At line number 796
+ .long .LASF1215 # The macro: "__glibcxx_want_string_view"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x320 # At line number 800
+ .long .LASF1216 # The macro: "__glibcxx_unordered_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x326 # At line number 806
+ .long .LASF1217 # The macro: "__glibcxx_want_unordered_map_try_emplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x330 # At line number 816
+ .long .LASF1218 # The macro: "__glibcxx_want_assume_aligned"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x33a # At line number 826
+ .long .LASF1219 # The macro: "__glibcxx_want_atomic_flag_test"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x344 # At line number 836
+ .long .LASF1220 # The macro: "__glibcxx_want_atomic_float"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x34e # At line number 846
+ .long .LASF1221 # The macro: "__glibcxx_want_atomic_lock_free_type_aliases"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x358 # At line number 856
+ .long .LASF1222 # The macro: "__glibcxx_want_atomic_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x362 # At line number 866
+ .long .LASF1223 # The macro: "__glibcxx_want_atomic_value_initialization"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x36c # At line number 876
+ .long .LASF1224 # The macro: "__glibcxx_want_bind_front"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x376 # At line number 886
+ .long .LASF1225 # The macro: "__glibcxx_want_bind_back"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x380 # At line number 896
+ .long .LASF1226 # The macro: "__glibcxx_want_starts_ends_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x38a # At line number 906
+ .long .LASF1227 # The macro: "__glibcxx_want_bit_cast"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x394 # At line number 916
+ .long .LASF1228 # The macro: "__glibcxx_want_bitops"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x39e # At line number 926
+ .long .LASF1229 # The macro: "__glibcxx_want_bounded_array_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3a8 # At line number 936
+ .long .LASF1230 # The macro: "__glibcxx_want_concepts"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b6 # At line number 950
+ .long .LASF1231 # The macro: "__glibcxx_optional 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3bc # At line number 956
+ .long .LASF1232 # The macro: "__glibcxx_want_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3c6 # At line number 966
+ .long .LASF1233 # The macro: "__glibcxx_want_destroying_delete"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d0 # At line number 976
+ .long .LASF1234 # The macro: "__glibcxx_want_constexpr_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3da # At line number 986
+ .long .LASF1235 # The macro: "__glibcxx_want_endian"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3e4 # At line number 996
+ .long .LASF1236 # The macro: "__glibcxx_want_int_pow2"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3ee # At line number 1006
+ .long .LASF1237 # The macro: "__glibcxx_want_integer_comparison_functions"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3f8 # At line number 1016
+ .long .LASF1238 # The macro: "__glibcxx_want_is_constant_evaluated"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x401 # At line number 1025
+ .long .LASF1239 # The macro: "__glibcxx_constexpr_char_traits 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x407 # At line number 1031
+ .long .LASF1240 # The macro: "__glibcxx_want_constexpr_char_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x411 # At line number 1041
+ .long .LASF1241 # The macro: "__glibcxx_want_is_layout_compatible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x41b # At line number 1051
+ .long .LASF1242 # The macro: "__glibcxx_want_is_nothrow_convertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x425 # At line number 1061
+ .long .LASF1243 # The macro: "__glibcxx_want_is_pointer_interconvertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x42f # At line number 1071
+ .long .LASF1244 # The macro: "__glibcxx_want_math_constants"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x439 # At line number 1081
+ .long .LASF1245 # The macro: "__glibcxx_want_make_obj_using_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x443 # At line number 1091
+ .long .LASF1246 # The macro: "__glibcxx_want_remove_cvref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x44d # At line number 1101
+ .long .LASF1247 # The macro: "__glibcxx_want_source_location"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x45c # At line number 1116
+ .long .LASF1248 # The macro: "__glibcxx_want_span"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x466 # At line number 1126
+ .long .LASF1249 # The macro: "__glibcxx_want_ssize"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x470 # At line number 1136
+ .long .LASF1250 # The macro: "__glibcxx_want_three_way_comparison"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47a # At line number 1146
+ .long .LASF1251 # The macro: "__glibcxx_want_to_address"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x484 # At line number 1156
+ .long .LASF1252 # The macro: "__glibcxx_want_to_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x48e # At line number 1166
+ .long .LASF1253 # The macro: "__glibcxx_want_type_identity"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x498 # At line number 1176
+ .long .LASF1254 # The macro: "__glibcxx_want_unwrap_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4a2 # At line number 1186
+ .long .LASF1255 # The macro: "__glibcxx_want_constexpr_iterator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4ac # At line number 1196
+ .long .LASF1256 # The macro: "__glibcxx_want_interpolate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4b6 # At line number 1206
+ .long .LASF1257 # The macro: "__glibcxx_want_constexpr_utility"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4c0 # At line number 1216
+ .long .LASF1258 # The macro: "__glibcxx_want_shift"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4d4 # At line number 1236
+ .long .LASF1259 # The macro: "__glibcxx_want_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4de # At line number 1246
+ .long .LASF1260 # The macro: "__glibcxx_want_constexpr_numeric"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4e8 # At line number 1256
+ .long .LASF1261 # The macro: "__glibcxx_want_constexpr_functional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4f7 # At line number 1271
+ .long .LASF1262 # The macro: "__glibcxx_want_constexpr_algorithms"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x501 # At line number 1281
+ .long .LASF1263 # The macro: "__glibcxx_want_constexpr_tuple"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x510 # At line number 1296
+ .long .LASF1264 # The macro: "__glibcxx_want_constexpr_memory"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51a # At line number 1306
+ .long .LASF1265 # The macro: "__glibcxx_want_atomic_shared_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x529 # At line number 1321
+ .long .LASF1266 # The macro: "__glibcxx_want_atomic_wait"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x533 # At line number 1331
+ .long .LASF1267 # The macro: "__glibcxx_want_barrier"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x542 # At line number 1346
+ .long .LASF1268 # The macro: "__glibcxx_want_format"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x54c # At line number 1356
+ .long .LASF1269 # The macro: "__glibcxx_want_format_uchar"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x556 # At line number 1366
+ .long .LASF1270 # The macro: "__glibcxx_want_constexpr_complex"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x560 # At line number 1376
+ .long .LASF1271 # The macro: "__glibcxx_want_constexpr_dynamic_alloc"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56e # At line number 1390
+ .long .LASF1272 # The macro: "__glibcxx_constexpr_string 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x574 # At line number 1396
+ .long .LASF1273 # The macro: "__glibcxx_want_constexpr_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x57e # At line number 1406
+ .long .LASF1274 # The macro: "__glibcxx_want_constexpr_vector"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x58d # At line number 1421
+ .long .LASF1275 # The macro: "__glibcxx_want_constrained_equality"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x597 # At line number 1431
+ .long .LASF1276 # The macro: "__glibcxx_want_erase_if"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5a1 # At line number 1441
+ .long .LASF1277 # The macro: "__glibcxx_want_generic_unordered_lookup"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5ab # At line number 1451
+ .long .LASF1278 # The macro: "__glibcxx_want_jthread"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b5 # At line number 1461
+ .long .LASF1279 # The macro: "__glibcxx_want_latch"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5bf # At line number 1471
+ .long .LASF1280 # The macro: "__glibcxx_want_list_remove_return_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5c9 # At line number 1481
+ .long .LASF1281 # The macro: "__glibcxx_want_polymorphic_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5d3 # At line number 1491
+ .long .LASF1282 # The macro: "__glibcxx_want_move_iterator_concept"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5dd # At line number 1501
+ .long .LASF1283 # The macro: "__glibcxx_want_semaphore"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5e7 # At line number 1511
+ .long .LASF1284 # The macro: "__glibcxx_want_smart_ptr_for_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5f1 # At line number 1521
+ .long .LASF1285 # The macro: "__glibcxx_want_syncbuf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5fb # At line number 1531
+ .long .LASF1286 # The macro: "__glibcxx_want_byteswap"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x605 # At line number 1541
+ .long .LASF1287 # The macro: "__glibcxx_want_constexpr_charconv"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x60f # At line number 1551
+ .long .LASF1288 # The macro: "__glibcxx_want_constexpr_typeinfo"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x619 # At line number 1561
+ .long .LASF1289 # The macro: "__glibcxx_want_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x622 # At line number 1570
+ .long .LASF1290 # The macro: "__glibcxx_want_format_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x62c # At line number 1580
+ .long .LASF1291 # The macro: "__glibcxx_want_freestanding_algorithm"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x636 # At line number 1590
+ .long .LASF1292 # The macro: "__glibcxx_want_freestanding_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x640 # At line number 1600
+ .long .LASF1293 # The macro: "__glibcxx_want_freestanding_cstring"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x64a # At line number 1610
+ .long .LASF1294 # The macro: "__glibcxx_want_freestanding_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x654 # At line number 1620
+ .long .LASF1295 # The macro: "__glibcxx_want_freestanding_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65e # At line number 1630
+ .long .LASF1296 # The macro: "__glibcxx_want_freestanding_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x668 # At line number 1640
+ .long .LASF1297 # The macro: "__glibcxx_want_freestanding_variant"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x672 # At line number 1650
+ .long .LASF1298 # The macro: "__glibcxx_want_invoke_r"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x67c # At line number 1660
+ .long .LASF1299 # The macro: "__glibcxx_want_is_scoped_enum"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x686 # At line number 1670
+ .long .LASF1300 # The macro: "__glibcxx_want_reference_from_temporary"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x690 # At line number 1680
+ .long .LASF1301 # The macro: "__glibcxx_want_containers_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x69a # At line number 1690
+ .long .LASF1302 # The macro: "__glibcxx_want_ranges_to_container"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6a4 # At line number 1700
+ .long .LASF1303 # The macro: "__glibcxx_want_ranges_zip"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ae # At line number 1710
+ .long .LASF1304 # The macro: "__glibcxx_want_ranges_chunk"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6b8 # At line number 1720
+ .long .LASF1305 # The macro: "__glibcxx_want_ranges_slide"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6c2 # At line number 1730
+ .long .LASF1306 # The macro: "__glibcxx_want_ranges_chunk_by"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6cc # At line number 1740
+ .long .LASF1307 # The macro: "__glibcxx_want_ranges_join_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6d6 # At line number 1750
+ .long .LASF1308 # The macro: "__glibcxx_want_ranges_repeat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6e0 # At line number 1760
+ .long .LASF1309 # The macro: "__glibcxx_want_ranges_stride"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ea # At line number 1770
+ .long .LASF1310 # The macro: "__glibcxx_want_ranges_cartesian_product"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6f4 # At line number 1780
+ .long .LASF1311 # The macro: "__glibcxx_want_ranges_as_rvalue"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6fe # At line number 1790
+ .long .LASF1312 # The macro: "__glibcxx_want_ranges_as_const"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x708 # At line number 1800
+ .long .LASF1313 # The macro: "__glibcxx_want_ranges_enumerate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x712 # At line number 1810
+ .long .LASF1314 # The macro: "__glibcxx_want_ranges_fold"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x71c # At line number 1820
+ .long .LASF1315 # The macro: "__glibcxx_want_ranges_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x726 # At line number 1830
+ .long .LASF1316 # The macro: "__glibcxx_want_ranges_iota"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x730 # At line number 1840
+ .long .LASF1317 # The macro: "__glibcxx_want_ranges_find_last"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x73a # At line number 1850
+ .long .LASF1318 # The macro: "__glibcxx_want_constexpr_bitset"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x744 # At line number 1860
+ .long .LASF1319 # The macro: "__glibcxx_want_stdatomic_h"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74e # At line number 1870
+ .long .LASF1320 # The macro: "__glibcxx_want_adaptor_iterator_pair_constructor"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x758 # At line number 1880
+ .long .LASF1321 # The macro: "__glibcxx_want_flat_map"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x762 # At line number 1890
+ .long .LASF1322 # The macro: "__glibcxx_want_flat_set"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x76c # At line number 1900
+ .long .LASF1323 # The macro: "__glibcxx_want_formatters"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x776 # At line number 1910
+ .long .LASF1324 # The macro: "__glibcxx_want_forward_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x780 # At line number 1920
+ .long .LASF1325 # The macro: "__glibcxx_want_generator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78a # At line number 1930
+ .long .LASF1326 # The macro: "__glibcxx_want_ios_noreplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x794 # At line number 1940
+ .long .LASF1327 # The macro: "__glibcxx_want_move_only_function"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x79e # At line number 1950
+ .long .LASF1328 # The macro: "__glibcxx_want_out_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7a8 # At line number 1960
+ .long .LASF1329 # The macro: "__glibcxx_want_print"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7b2 # At line number 1970
+ .long .LASF1330 # The macro: "__glibcxx_want_spanstream"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7bc # At line number 1980
+ .long .LASF1331 # The macro: "__glibcxx_want_stacktrace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7c6 # At line number 1990
+ .long .LASF1332 # The macro: "__glibcxx_want_string_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7d0 # At line number 2000
+ .long .LASF1333 # The macro: "__glibcxx_want_string_resize_and_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7da # At line number 2010
+ .long .LASF1334 # The macro: "__glibcxx_want_to_underlying"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e9 # At line number 2025
+ .long .LASF1335 # The macro: "__glibcxx_want_tuple_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7f3 # At line number 2035
+ .long .LASF1336 # The macro: "__glibcxx_want_unreachable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7fd # At line number 2045
+ .long .LASF1337 # The macro: "__glibcxx_want_algorithm_default_value_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x807 # At line number 2055
+ .long .LASF1338 # The macro: "__glibcxx_want_constexpr_new"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x811 # At line number 2065
+ .long .LASF1339 # The macro: "__glibcxx_want_fstream_native_handle"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x81b # At line number 2075
+ .long .LASF1340 # The macro: "__glibcxx_want_is_virtual_base_of"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x825 # At line number 2085
+ .long .LASF1341 # The macro: "__glibcxx_want_ranges_cache_latest"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x82f # At line number 2095
+ .long .LASF1342 # The macro: "__glibcxx_want_ranges_concat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x839 # At line number 2105
+ .long .LASF1343 # The macro: "__glibcxx_want_ratio"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x843 # At line number 2115
+ .long .LASF1344 # The macro: "__glibcxx_want_reference_wrapper"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x84d # At line number 2125
+ .long .LASF1345 # The macro: "__glibcxx_want_saturation_arithmetic"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x857 # At line number 2135
+ .long .LASF1346 # The macro: "__glibcxx_want_span_initializer_list"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x861 # At line number 2145
+ .long .LASF1347 # The macro: "__glibcxx_want_text_encoding"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x86b # At line number 2155
+ .long .LASF1348 # The macro: "__glibcxx_want_ranges_to_input"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x875 # At line number 2165
+ .long .LASF1349 # The macro: "__glibcxx_want_to_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x87f # At line number 2175
+ .long .LASF1350 # The macro: "__glibcxx_want_modules"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x881 # At line number 2177
+ .long .LASF1351 # The macro: "__glibcxx_want_all"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.atomic_base.h.166.99474906244c1847065aafe1dd57874a,comdat
+.Ldebug_macro95:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa6 # At line number 166
+ .long .LASF2085 # The macro: "_GLIBCXX20_INIT(I) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa # At line number 170
+ .long .LASF2086 # The macro: "ATOMIC_VAR_INIT(_VI) { _VI }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd0 # At line number 208
+ .long .LASF2087 # The macro: "ATOMIC_FLAG_INIT { 0 }"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.shared_ptr_atomic.h.52.7b1fdb82095db19eef10a15a017eba27,comdat
+.Ldebug_macro96:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x34 # At line number 52
+ .long .LASF2088 # The macro: "_GLIBCXX_TSAN_MUTEX_DESTROY(X) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35 # At line number 53
+ .long .LASF2089 # The macro: "_GLIBCXX_TSAN_MUTEX_TRY_LOCK(X) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x36 # At line number 54
+ .long .LASF2090 # The macro: "_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED(X) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF2091 # The macro: "_GLIBCXX_TSAN_MUTEX_LOCKED(X) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x38 # At line number 56
+ .long .LASF2092 # The macro: "_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK(X) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF2093 # The macro: "_GLIBCXX_TSAN_MUTEX_POST_UNLOCK(X) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3a # At line number 58
+ .long .LASF2094 # The macro: "_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL(X) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b # At line number 59
+ .long .LASF2095 # The macro: "_GLIBCXX_TSAN_MUTEX_POST_SIGNAL(X) "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.memory.100.8a1d5fa44c5bf6978a87030b981fc4da,comdat
+.Ldebug_macro97:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x64 # At line number 100
+ .long .LASF2097 # The macro: "__glibcxx_want_allocator_traits_is_always_equal "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF2098 # The macro: "__glibcxx_want_assume_aligned "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x66 # At line number 102
+ .long .LASF2099 # The macro: "__glibcxx_want_atomic_shared_ptr "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x67 # At line number 103
+ .long .LASF2100 # The macro: "__glibcxx_want_atomic_value_initialization "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x68 # At line number 104
+ .long .LASF2101 # The macro: "__glibcxx_want_constexpr_dynamic_alloc "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x69 # At line number 105
+ .long .LASF2102 # The macro: "__glibcxx_want_constexpr_memory "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6a # At line number 106
+ .long .LASF2103 # The macro: "__glibcxx_want_enable_shared_from_this "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6b # At line number 107
+ .long .LASF2104 # The macro: "__glibcxx_want_make_unique "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6c # At line number 108
+ .long .LASF2105 # The macro: "__glibcxx_want_out_ptr "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6d # At line number 109
+ .long .LASF2106 # The macro: "__glibcxx_want_parallel_algorithm "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF2107 # The macro: "__glibcxx_want_ranges "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6f # At line number 111
+ .long .LASF2108 # The macro: "__glibcxx_want_raw_memory_algorithms "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x70 # At line number 112
+ .long .LASF2109 # The macro: "__glibcxx_want_shared_ptr_arrays "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x71 # At line number 113
+ .long .LASF2110 # The macro: "__glibcxx_want_shared_ptr_weak_type "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x72 # At line number 114
+ .long .LASF2111 # The macro: "__glibcxx_want_smart_ptr_for_overwrite "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x73 # At line number 115
+ .long .LASF2112 # The macro: "__glibcxx_want_to_address "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF2113 # The macro: "__glibcxx_want_transparent_operators "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.version.h.55.21c2af1cd6704f846902979f24b7ee22,comdat
+.Ldebug_macro98:
+ .value 0x4 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1075 # The macro: "__glibcxx_incomplete_container_elements 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1076 # The macro: "__glibcxx_want_incomplete_container_elements"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1078 # The macro: "__glibcxx_want_uncaught_exceptions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1079 # The macro: "__glibcxx_allocator_traits_is_always_equal 201411L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4d # At line number 77
+ .long .LASF2114 # The macro: "__cpp_lib_allocator_traits_is_always_equal 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1080 # The macro: "__glibcxx_want_allocator_traits_is_always_equal"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1082 # The macro: "__glibcxx_want_is_null_pointer"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1084 # The macro: "__glibcxx_want_result_of_sfinae"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1085 # The macro: "__glibcxx_shared_ptr_arrays 201611L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x70 # At line number 112
+ .long .LASF2115 # The macro: "__cpp_lib_shared_ptr_arrays 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1086 # The macro: "__glibcxx_want_shared_ptr_arrays"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF1088 # The macro: "__glibcxx_want_is_swappable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x88 # At line number 136
+ .long .LASF1090 # The macro: "__glibcxx_want_void_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8c # At line number 140
+ .long .LASF1091 # The macro: "__glibcxx_enable_shared_from_this 201603L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8e # At line number 142
+ .long .LASF2116 # The macro: "__cpp_lib_enable_shared_from_this 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x92 # At line number 146
+ .long .LASF1092 # The macro: "__glibcxx_want_enable_shared_from_this"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x96 # At line number 150
+ .long .LASF1093 # The macro: "__glibcxx_math_spec_funcs 201003L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF1094 # The macro: "__glibcxx_want_math_spec_funcs"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xa6 # At line number 166
+ .long .LASF1095 # The macro: "__glibcxx_want_coroutine"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa # At line number 170
+ .long .LASF1096 # The macro: "__glibcxx_exchange_function 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb0 # At line number 176
+ .long .LASF1097 # The macro: "__glibcxx_want_exchange_function"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4 # At line number 180
+ .long .LASF1098 # The macro: "__glibcxx_integer_sequence 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xba # At line number 186
+ .long .LASF1099 # The macro: "__glibcxx_want_integer_sequence"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xc4 # At line number 196
+ .long .LASF1101 # The macro: "__glibcxx_want_integral_constant_callable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xce # At line number 206
+ .long .LASF1103 # The macro: "__glibcxx_want_is_final"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2 # At line number 210
+ .long .LASF1104 # The macro: "__glibcxx_make_reverse_iterator 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd8 # At line number 216
+ .long .LASF1105 # The macro: "__glibcxx_want_make_reverse_iterator"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc # At line number 220
+ .long .LASF1106 # The macro: "__glibcxx_null_iterators 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe2 # At line number 226
+ .long .LASF1107 # The macro: "__glibcxx_want_null_iterators"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xec # At line number 236
+ .long .LASF1109 # The macro: "__glibcxx_want_transformation_trait_aliases"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf0 # At line number 240
+ .long .LASF1110 # The macro: "__glibcxx_transparent_operators 201510L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf2 # At line number 242
+ .long .LASF2117 # The macro: "__cpp_lib_transparent_operators 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf6 # At line number 246
+ .long .LASF1111 # The macro: "__glibcxx_want_transparent_operators"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x100 # At line number 256
+ .long .LASF1113 # The macro: "__glibcxx_want_tuple_element_t"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x10a # At line number 266
+ .long .LASF1115 # The macro: "__glibcxx_want_tuples_by_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10e # At line number 270
+ .long .LASF1116 # The macro: "__glibcxx_robust_nonmodifying_seq_ops 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x114 # At line number 276
+ .long .LASF1117 # The macro: "__glibcxx_want_robust_nonmodifying_seq_ops"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11d # At line number 285
+ .long .LASF1118 # The macro: "__glibcxx_to_chars 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x123 # At line number 291
+ .long .LASF1119 # The macro: "__glibcxx_want_to_chars"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x127 # At line number 295
+ .long .LASF1120 # The macro: "__glibcxx_chrono_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x12d # At line number 301
+ .long .LASF1121 # The macro: "__glibcxx_want_chrono_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x131 # At line number 305
+ .long .LASF1122 # The macro: "__glibcxx_complex_udls 201309L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x137 # At line number 311
+ .long .LASF1123 # The macro: "__glibcxx_want_complex_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13b # At line number 315
+ .long .LASF1124 # The macro: "__glibcxx_generic_associative_lookup 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x141 # At line number 321
+ .long .LASF1125 # The macro: "__glibcxx_want_generic_associative_lookup"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x145 # At line number 325
+ .long .LASF1126 # The macro: "__glibcxx_make_unique 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x147 # At line number 327
+ .long .LASF2118 # The macro: "__cpp_lib_make_unique 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x14b # At line number 331
+ .long .LASF1127 # The macro: "__glibcxx_want_make_unique"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14f # At line number 335
+ .long .LASF1128 # The macro: "__glibcxx_quoted_string_io 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x155 # At line number 341
+ .long .LASF1129 # The macro: "__glibcxx_want_quoted_string_io"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x159 # At line number 345
+ .long .LASF1130 # The macro: "__glibcxx_shared_timed_mutex 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x15f # At line number 351
+ .long .LASF1131 # The macro: "__glibcxx_want_shared_timed_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x163 # At line number 355
+ .long .LASF1132 # The macro: "__glibcxx_string_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x169 # At line number 361
+ .long .LASF1133 # The macro: "__glibcxx_want_string_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16d # At line number 365
+ .long .LASF1134 # The macro: "__glibcxx_addressof_constexpr 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x173 # At line number 371
+ .long .LASF1135 # The macro: "__glibcxx_want_addressof_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x177 # At line number 375
+ .long .LASF1136 # The macro: "__glibcxx_any 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x17d # At line number 381
+ .long .LASF1137 # The macro: "__glibcxx_want_any"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x187 # At line number 391
+ .long .LASF1139 # The macro: "__glibcxx_want_apply"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18b # At line number 395
+ .long .LASF1140 # The macro: "__glibcxx_as_const 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x191 # At line number 401
+ .long .LASF1141 # The macro: "__glibcxx_want_as_const"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x195 # At line number 405
+ .long .LASF1142 # The macro: "__glibcxx_atomic_is_always_lock_free 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19b # At line number 411
+ .long .LASF1143 # The macro: "__glibcxx_want_atomic_is_always_lock_free"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a5 # At line number 421
+ .long .LASF1145 # The macro: "__glibcxx_want_bool_constant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1146 # The macro: "__glibcxx_byte 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1af # At line number 431
+ .long .LASF1147 # The macro: "__glibcxx_want_byte"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1b9 # At line number 441
+ .long .LASF1149 # The macro: "__glibcxx_want_has_unique_object_representations"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1c3 # At line number 451
+ .long .LASF1152 # The macro: "__glibcxx_want_hardware_interference_size"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c7 # At line number 455
+ .long .LASF1153 # The macro: "__glibcxx_invoke 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1cd # At line number 461
+ .long .LASF1154 # The macro: "__glibcxx_want_invoke"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1d7 # At line number 471
+ .long .LASF1156 # The macro: "__glibcxx_want_is_aggregate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1e1 # At line number 481
+ .long .LASF1158 # The macro: "__glibcxx_want_is_invocable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1eb # At line number 491
+ .long .LASF1161 # The macro: "__glibcxx_want_launder"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1f5 # At line number 501
+ .long .LASF1163 # The macro: "__glibcxx_want_logical_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1ff # At line number 511
+ .long .LASF1165 # The macro: "__glibcxx_want_make_from_tuple"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x203 # At line number 515
+ .long .LASF1166 # The macro: "__glibcxx_not_fn 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x209 # At line number 521
+ .long .LASF1167 # The macro: "__glibcxx_want_not_fn"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x213 # At line number 531
+ .long .LASF1169 # The macro: "__glibcxx_want_type_trait_variable_templates"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x221 # At line number 545
+ .long .LASF1170 # The macro: "__glibcxx_variant 202102L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x227 # At line number 551
+ .long .LASF1171 # The macro: "__glibcxx_want_variant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22b # At line number 555
+ .long .LASF1172 # The macro: "__glibcxx_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x231 # At line number 561
+ .long .LASF1173 # The macro: "__glibcxx_want_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x235 # At line number 565
+ .long .LASF1174 # The macro: "__glibcxx_gcd 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x23b # At line number 571
+ .long .LASF1175 # The macro: "__glibcxx_want_gcd"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23f # At line number 575
+ .long .LASF1176 # The macro: "__glibcxx_gcd_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x245 # At line number 581
+ .long .LASF1177 # The macro: "__glibcxx_want_gcd_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24e # At line number 590
+ .long .LASF1178 # The macro: "__glibcxx_raw_memory_algorithms 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x250 # At line number 592
+ .long .LASF2119 # The macro: "__cpp_lib_raw_memory_algorithms 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x254 # At line number 596
+ .long .LASF1179 # The macro: "__glibcxx_want_raw_memory_algorithms"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25d # At line number 605
+ .long .LASF1180 # The macro: "__glibcxx_array_constexpr 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x263 # At line number 611
+ .long .LASF1181 # The macro: "__glibcxx_want_array_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x267 # At line number 615
+ .long .LASF1182 # The macro: "__glibcxx_nonmember_container_access 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x26d # At line number 621
+ .long .LASF1183 # The macro: "__glibcxx_want_nonmember_container_access"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x271 # At line number 625
+ .long .LASF1184 # The macro: "__glibcxx_clamp 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x277 # At line number 631
+ .long .LASF1185 # The macro: "__glibcxx_want_clamp"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27b # At line number 635
+ .long .LASF1186 # The macro: "__glibcxx_sample 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x281 # At line number 641
+ .long .LASF1187 # The macro: "__glibcxx_want_sample"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x285 # At line number 645
+ .long .LASF1188 # The macro: "__glibcxx_boyer_moore_searcher 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x28b # At line number 651
+ .long .LASF1189 # The macro: "__glibcxx_want_boyer_moore_searcher"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x294 # At line number 660
+ .long .LASF1190 # The macro: "__glibcxx_chrono 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x29a # At line number 666
+ .long .LASF1191 # The macro: "__glibcxx_want_chrono"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29e # At line number 670
+ .long .LASF1192 # The macro: "__glibcxx_execution 201902L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2a4 # At line number 676
+ .long .LASF1193 # The macro: "__glibcxx_want_execution"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a8 # At line number 680
+ .long .LASF1194 # The macro: "__glibcxx_filesystem 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ae # At line number 686
+ .long .LASF1195 # The macro: "__glibcxx_want_filesystem"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b2 # At line number 690
+ .long .LASF1196 # The macro: "__glibcxx_hypot 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2b8 # At line number 696
+ .long .LASF1197 # The macro: "__glibcxx_want_hypot"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2bc # At line number 700
+ .long .LASF1198 # The macro: "__glibcxx_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2c2 # At line number 706
+ .long .LASF1199 # The macro: "__glibcxx_want_map_try_emplace"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c6 # At line number 710
+ .long .LASF1200 # The macro: "__glibcxx_math_special_functions 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2cc # At line number 716
+ .long .LASF1201 # The macro: "__glibcxx_want_math_special_functions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d0 # At line number 720
+ .long .LASF1202 # The macro: "__glibcxx_memory_resource 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2db # At line number 731
+ .long .LASF1203 # The macro: "__glibcxx_want_memory_resource"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2df # At line number 735
+ .long .LASF1204 # The macro: "__glibcxx_node_extract 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2e5 # At line number 741
+ .long .LASF1205 # The macro: "__glibcxx_want_node_extract"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e9 # At line number 745
+ .long .LASF1206 # The macro: "__glibcxx_parallel_algorithm 201603L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2eb # At line number 747
+ .long .LASF2120 # The macro: "__cpp_lib_parallel_algorithm 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ef # At line number 751
+ .long .LASF1207 # The macro: "__glibcxx_want_parallel_algorithm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f3 # At line number 755
+ .long .LASF1208 # The macro: "__glibcxx_scoped_lock 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2f9 # At line number 761
+ .long .LASF1209 # The macro: "__glibcxx_want_scoped_lock"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2fd # At line number 765
+ .long .LASF1210 # The macro: "__glibcxx_shared_mutex 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x303 # At line number 771
+ .long .LASF1211 # The macro: "__glibcxx_want_shared_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x307 # At line number 775
+ .long .LASF1212 # The macro: "__glibcxx_shared_ptr_weak_type 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x309 # At line number 777
+ .long .LASF2121 # The macro: "__cpp_lib_shared_ptr_weak_type 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x30d # At line number 781
+ .long .LASF1213 # The macro: "__glibcxx_want_shared_ptr_weak_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x316 # At line number 790
+ .long .LASF1214 # The macro: "__glibcxx_string_view 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x31c # At line number 796
+ .long .LASF1215 # The macro: "__glibcxx_want_string_view"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x320 # At line number 800
+ .long .LASF1216 # The macro: "__glibcxx_unordered_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x326 # At line number 806
+ .long .LASF1217 # The macro: "__glibcxx_want_unordered_map_try_emplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x330 # At line number 816
+ .long .LASF1218 # The macro: "__glibcxx_want_assume_aligned"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x33a # At line number 826
+ .long .LASF1219 # The macro: "__glibcxx_want_atomic_flag_test"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x344 # At line number 836
+ .long .LASF1220 # The macro: "__glibcxx_want_atomic_float"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x34e # At line number 846
+ .long .LASF1221 # The macro: "__glibcxx_want_atomic_lock_free_type_aliases"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x358 # At line number 856
+ .long .LASF1222 # The macro: "__glibcxx_want_atomic_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x362 # At line number 866
+ .long .LASF1223 # The macro: "__glibcxx_want_atomic_value_initialization"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x36c # At line number 876
+ .long .LASF1224 # The macro: "__glibcxx_want_bind_front"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x376 # At line number 886
+ .long .LASF1225 # The macro: "__glibcxx_want_bind_back"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x380 # At line number 896
+ .long .LASF1226 # The macro: "__glibcxx_want_starts_ends_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x38a # At line number 906
+ .long .LASF1227 # The macro: "__glibcxx_want_bit_cast"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x394 # At line number 916
+ .long .LASF1228 # The macro: "__glibcxx_want_bitops"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x39e # At line number 926
+ .long .LASF1229 # The macro: "__glibcxx_want_bounded_array_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3a8 # At line number 936
+ .long .LASF1230 # The macro: "__glibcxx_want_concepts"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b6 # At line number 950
+ .long .LASF1231 # The macro: "__glibcxx_optional 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3bc # At line number 956
+ .long .LASF1232 # The macro: "__glibcxx_want_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3c6 # At line number 966
+ .long .LASF1233 # The macro: "__glibcxx_want_destroying_delete"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d0 # At line number 976
+ .long .LASF1234 # The macro: "__glibcxx_want_constexpr_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3da # At line number 986
+ .long .LASF1235 # The macro: "__glibcxx_want_endian"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3e4 # At line number 996
+ .long .LASF1236 # The macro: "__glibcxx_want_int_pow2"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3ee # At line number 1006
+ .long .LASF1237 # The macro: "__glibcxx_want_integer_comparison_functions"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3f8 # At line number 1016
+ .long .LASF1238 # The macro: "__glibcxx_want_is_constant_evaluated"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x401 # At line number 1025
+ .long .LASF1239 # The macro: "__glibcxx_constexpr_char_traits 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x407 # At line number 1031
+ .long .LASF1240 # The macro: "__glibcxx_want_constexpr_char_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x411 # At line number 1041
+ .long .LASF1241 # The macro: "__glibcxx_want_is_layout_compatible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x41b # At line number 1051
+ .long .LASF1242 # The macro: "__glibcxx_want_is_nothrow_convertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x425 # At line number 1061
+ .long .LASF1243 # The macro: "__glibcxx_want_is_pointer_interconvertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x42f # At line number 1071
+ .long .LASF1244 # The macro: "__glibcxx_want_math_constants"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x439 # At line number 1081
+ .long .LASF1245 # The macro: "__glibcxx_want_make_obj_using_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x443 # At line number 1091
+ .long .LASF1246 # The macro: "__glibcxx_want_remove_cvref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x44d # At line number 1101
+ .long .LASF1247 # The macro: "__glibcxx_want_source_location"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x45c # At line number 1116
+ .long .LASF1248 # The macro: "__glibcxx_want_span"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x466 # At line number 1126
+ .long .LASF1249 # The macro: "__glibcxx_want_ssize"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x470 # At line number 1136
+ .long .LASF1250 # The macro: "__glibcxx_want_three_way_comparison"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47a # At line number 1146
+ .long .LASF1251 # The macro: "__glibcxx_want_to_address"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x484 # At line number 1156
+ .long .LASF1252 # The macro: "__glibcxx_want_to_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x48e # At line number 1166
+ .long .LASF1253 # The macro: "__glibcxx_want_type_identity"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x498 # At line number 1176
+ .long .LASF1254 # The macro: "__glibcxx_want_unwrap_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4a2 # At line number 1186
+ .long .LASF1255 # The macro: "__glibcxx_want_constexpr_iterator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4ac # At line number 1196
+ .long .LASF1256 # The macro: "__glibcxx_want_interpolate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4b6 # At line number 1206
+ .long .LASF1257 # The macro: "__glibcxx_want_constexpr_utility"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4c0 # At line number 1216
+ .long .LASF1258 # The macro: "__glibcxx_want_shift"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4d4 # At line number 1236
+ .long .LASF1259 # The macro: "__glibcxx_want_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4de # At line number 1246
+ .long .LASF1260 # The macro: "__glibcxx_want_constexpr_numeric"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4e8 # At line number 1256
+ .long .LASF1261 # The macro: "__glibcxx_want_constexpr_functional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4f7 # At line number 1271
+ .long .LASF1262 # The macro: "__glibcxx_want_constexpr_algorithms"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x501 # At line number 1281
+ .long .LASF1263 # The macro: "__glibcxx_want_constexpr_tuple"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x510 # At line number 1296
+ .long .LASF1264 # The macro: "__glibcxx_want_constexpr_memory"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51a # At line number 1306
+ .long .LASF1265 # The macro: "__glibcxx_want_atomic_shared_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x529 # At line number 1321
+ .long .LASF1266 # The macro: "__glibcxx_want_atomic_wait"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x533 # At line number 1331
+ .long .LASF1267 # The macro: "__glibcxx_want_barrier"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x542 # At line number 1346
+ .long .LASF1268 # The macro: "__glibcxx_want_format"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x54c # At line number 1356
+ .long .LASF1269 # The macro: "__glibcxx_want_format_uchar"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x556 # At line number 1366
+ .long .LASF1270 # The macro: "__glibcxx_want_constexpr_complex"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x560 # At line number 1376
+ .long .LASF1271 # The macro: "__glibcxx_want_constexpr_dynamic_alloc"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56e # At line number 1390
+ .long .LASF1272 # The macro: "__glibcxx_constexpr_string 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x574 # At line number 1396
+ .long .LASF1273 # The macro: "__glibcxx_want_constexpr_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x57e # At line number 1406
+ .long .LASF1274 # The macro: "__glibcxx_want_constexpr_vector"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x58d # At line number 1421
+ .long .LASF1275 # The macro: "__glibcxx_want_constrained_equality"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x597 # At line number 1431
+ .long .LASF1276 # The macro: "__glibcxx_want_erase_if"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5a1 # At line number 1441
+ .long .LASF1277 # The macro: "__glibcxx_want_generic_unordered_lookup"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5ab # At line number 1451
+ .long .LASF1278 # The macro: "__glibcxx_want_jthread"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b5 # At line number 1461
+ .long .LASF1279 # The macro: "__glibcxx_want_latch"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5bf # At line number 1471
+ .long .LASF1280 # The macro: "__glibcxx_want_list_remove_return_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5c9 # At line number 1481
+ .long .LASF1281 # The macro: "__glibcxx_want_polymorphic_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5d3 # At line number 1491
+ .long .LASF1282 # The macro: "__glibcxx_want_move_iterator_concept"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5dd # At line number 1501
+ .long .LASF1283 # The macro: "__glibcxx_want_semaphore"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5e7 # At line number 1511
+ .long .LASF1284 # The macro: "__glibcxx_want_smart_ptr_for_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5f1 # At line number 1521
+ .long .LASF1285 # The macro: "__glibcxx_want_syncbuf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5fb # At line number 1531
+ .long .LASF1286 # The macro: "__glibcxx_want_byteswap"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x605 # At line number 1541
+ .long .LASF1287 # The macro: "__glibcxx_want_constexpr_charconv"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x60f # At line number 1551
+ .long .LASF1288 # The macro: "__glibcxx_want_constexpr_typeinfo"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x619 # At line number 1561
+ .long .LASF1289 # The macro: "__glibcxx_want_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x622 # At line number 1570
+ .long .LASF1290 # The macro: "__glibcxx_want_format_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x62c # At line number 1580
+ .long .LASF1291 # The macro: "__glibcxx_want_freestanding_algorithm"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x636 # At line number 1590
+ .long .LASF1292 # The macro: "__glibcxx_want_freestanding_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x640 # At line number 1600
+ .long .LASF1293 # The macro: "__glibcxx_want_freestanding_cstring"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x64a # At line number 1610
+ .long .LASF1294 # The macro: "__glibcxx_want_freestanding_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x654 # At line number 1620
+ .long .LASF1295 # The macro: "__glibcxx_want_freestanding_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65e # At line number 1630
+ .long .LASF1296 # The macro: "__glibcxx_want_freestanding_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x668 # At line number 1640
+ .long .LASF1297 # The macro: "__glibcxx_want_freestanding_variant"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x672 # At line number 1650
+ .long .LASF1298 # The macro: "__glibcxx_want_invoke_r"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x67c # At line number 1660
+ .long .LASF1299 # The macro: "__glibcxx_want_is_scoped_enum"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x686 # At line number 1670
+ .long .LASF1300 # The macro: "__glibcxx_want_reference_from_temporary"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x690 # At line number 1680
+ .long .LASF1301 # The macro: "__glibcxx_want_containers_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x69a # At line number 1690
+ .long .LASF1302 # The macro: "__glibcxx_want_ranges_to_container"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6a4 # At line number 1700
+ .long .LASF1303 # The macro: "__glibcxx_want_ranges_zip"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ae # At line number 1710
+ .long .LASF1304 # The macro: "__glibcxx_want_ranges_chunk"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6b8 # At line number 1720
+ .long .LASF1305 # The macro: "__glibcxx_want_ranges_slide"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6c2 # At line number 1730
+ .long .LASF1306 # The macro: "__glibcxx_want_ranges_chunk_by"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6cc # At line number 1740
+ .long .LASF1307 # The macro: "__glibcxx_want_ranges_join_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6d6 # At line number 1750
+ .long .LASF1308 # The macro: "__glibcxx_want_ranges_repeat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6e0 # At line number 1760
+ .long .LASF1309 # The macro: "__glibcxx_want_ranges_stride"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ea # At line number 1770
+ .long .LASF1310 # The macro: "__glibcxx_want_ranges_cartesian_product"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6f4 # At line number 1780
+ .long .LASF1311 # The macro: "__glibcxx_want_ranges_as_rvalue"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6fe # At line number 1790
+ .long .LASF1312 # The macro: "__glibcxx_want_ranges_as_const"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x708 # At line number 1800
+ .long .LASF1313 # The macro: "__glibcxx_want_ranges_enumerate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x712 # At line number 1810
+ .long .LASF1314 # The macro: "__glibcxx_want_ranges_fold"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x71c # At line number 1820
+ .long .LASF1315 # The macro: "__glibcxx_want_ranges_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x726 # At line number 1830
+ .long .LASF1316 # The macro: "__glibcxx_want_ranges_iota"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x730 # At line number 1840
+ .long .LASF1317 # The macro: "__glibcxx_want_ranges_find_last"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x73a # At line number 1850
+ .long .LASF1318 # The macro: "__glibcxx_want_constexpr_bitset"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x744 # At line number 1860
+ .long .LASF1319 # The macro: "__glibcxx_want_stdatomic_h"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74e # At line number 1870
+ .long .LASF1320 # The macro: "__glibcxx_want_adaptor_iterator_pair_constructor"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x758 # At line number 1880
+ .long .LASF1321 # The macro: "__glibcxx_want_flat_map"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x762 # At line number 1890
+ .long .LASF1322 # The macro: "__glibcxx_want_flat_set"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x76c # At line number 1900
+ .long .LASF1323 # The macro: "__glibcxx_want_formatters"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x776 # At line number 1910
+ .long .LASF1324 # The macro: "__glibcxx_want_forward_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x780 # At line number 1920
+ .long .LASF1325 # The macro: "__glibcxx_want_generator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78a # At line number 1930
+ .long .LASF1326 # The macro: "__glibcxx_want_ios_noreplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x794 # At line number 1940
+ .long .LASF1327 # The macro: "__glibcxx_want_move_only_function"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x79e # At line number 1950
+ .long .LASF1328 # The macro: "__glibcxx_want_out_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7a8 # At line number 1960
+ .long .LASF1329 # The macro: "__glibcxx_want_print"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7b2 # At line number 1970
+ .long .LASF1330 # The macro: "__glibcxx_want_spanstream"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7bc # At line number 1980
+ .long .LASF1331 # The macro: "__glibcxx_want_stacktrace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7c6 # At line number 1990
+ .long .LASF1332 # The macro: "__glibcxx_want_string_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7d0 # At line number 2000
+ .long .LASF1333 # The macro: "__glibcxx_want_string_resize_and_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7da # At line number 2010
+ .long .LASF1334 # The macro: "__glibcxx_want_to_underlying"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e9 # At line number 2025
+ .long .LASF1335 # The macro: "__glibcxx_want_tuple_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7f3 # At line number 2035
+ .long .LASF1336 # The macro: "__glibcxx_want_unreachable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7fd # At line number 2045
+ .long .LASF1337 # The macro: "__glibcxx_want_algorithm_default_value_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x807 # At line number 2055
+ .long .LASF1338 # The macro: "__glibcxx_want_constexpr_new"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x811 # At line number 2065
+ .long .LASF1339 # The macro: "__glibcxx_want_fstream_native_handle"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x81b # At line number 2075
+ .long .LASF1340 # The macro: "__glibcxx_want_is_virtual_base_of"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x825 # At line number 2085
+ .long .LASF1341 # The macro: "__glibcxx_want_ranges_cache_latest"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x82f # At line number 2095
+ .long .LASF1342 # The macro: "__glibcxx_want_ranges_concat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x839 # At line number 2105
+ .long .LASF1343 # The macro: "__glibcxx_want_ratio"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x843 # At line number 2115
+ .long .LASF1344 # The macro: "__glibcxx_want_reference_wrapper"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x84d # At line number 2125
+ .long .LASF1345 # The macro: "__glibcxx_want_saturation_arithmetic"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x857 # At line number 2135
+ .long .LASF1346 # The macro: "__glibcxx_want_span_initializer_list"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x861 # At line number 2145
+ .long .LASF1347 # The macro: "__glibcxx_want_text_encoding"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x86b # At line number 2155
+ .long .LASF1348 # The macro: "__glibcxx_want_ranges_to_input"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x875 # At line number 2165
+ .long .LASF1349 # The macro: "__glibcxx_want_to_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x87f # At line number 2175
+ .long .LASF1350 # The macro: "__glibcxx_want_modules"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x881 # At line number 2177
+ .long .LASF1351 # The macro: "__glibcxx_want_all"
+ .byte 0 # End compilation unit
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF1826:
+ .string "__ASM_GENERIC_POSIX_TYPES_H "
+.LASF802:
+ .string "_PSTL_CPP14_VARIABLE_TEMPLATES_PRESENT "
+.LASF2286:
+ .string "_ZSt3getILm1EJP4BaseSt14default_deleteIS0_EEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS8_"
+.LASF1869:
+ .string "__CPU_SET_S(cpu,setsize,cpusetp) (__extension__ ({ size_t __cpu = (cpu); __cpu / 8 < (setsize) ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] |= __CPUMASK (__cpu)) : 0; }))"
+.LASF1672:
+ .string "wcspbrk"
+.LASF1390:
+ .string "__cpp_lib_is_final 201402L"
+.LASF359:
+ .string "__FLT64X_HAS_QUIET_NAN__ 1"
+.LASF1324:
+ .string "__glibcxx_want_forward_like"
+.LASF1843:
+ .string "CLONE_VFORK 0x00004000"
+.LASF1049:
+ .string "_GLIBCXX_USE_REALPATH 1"
+.LASF1950:
+ .string "STA_FREQHOLD 0x0080"
+.LASF129:
+ .string "__cpp_aligned_new 201606L"
+.LASF552:
+ .string "_GLIBCXX_USE_ALLOCATOR_NEW 1"
+.LASF1976:
+ .string "__SIZEOF_PTHREAD_CONDATTR_T 4"
+.LASF869:
+ .string "_GLIBCXX_HAVE_ISINFF 1"
+.LASF2104:
+ .string "__glibcxx_want_make_unique "
+.LASF644:
+ .string "__GLIBC_USE_DEPRECATED_SCANF 0"
+.LASF1623:
+ .string "_WINT_T 1"
+.LASF1348:
+ .string "__glibcxx_want_ranges_to_input"
+.LASF1500:
+ .string "_GLIBCXX_INVOKE_H 1"
+.LASF1705:
+ .string "_ALIGNED_BUFFER_H 1"
+.LASF1283:
+ .string "__glibcxx_want_semaphore"
+.LASF282:
+ .string "__FLT32_DIG__ 6"
+.LASF998:
+ .string "_GLIBCXX_FULLY_DYNAMIC_STRING 0"
+.LASF1118:
+ .string "__glibcxx_to_chars 201611L"
+.LASF508:
+ .string "_GLIBCXX17_INLINE inline"
+.LASF1804:
+ .string "SCHED_FLAG_UTIL_CLAMP (SCHED_FLAG_UTIL_CLAMP_MIN | SCHED_FLAG_UTIL_CLAMP_MAX)"
+.LASF653:
+ .string "__glibc_has_attribute(attr) __has_attribute (attr)"
+.LASF1783:
+ .string "__LONG_LONG_PAIR(HI,LO) LO, HI"
+.LASF2072:
+ .string "_GLIBCXX_ATOMIC_BASE_H 1"
+.LASF614:
+ .string "_DYNAMIC_STACK_SIZE_SOURCE 1"
+.LASF1794:
+ .string "SCHED_EXT 7"
+.LASF788:
+ .string "_PSTL_HIDE_FROM_ABI_PUSH "
+.LASF1746:
+ .string "__BLKCNT64_T_TYPE __SQUAD_TYPE"
+.LASF1269:
+ .string "__glibcxx_want_format_uchar"
+.LASF682:
+ .string "__ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname)"
+.LASF620:
+ .string "__USE_ISOCXX11 1"
+.LASF297:
+ .string "__FLT64_MANT_DIG__ 53"
+.LASF898:
+ .string "_GLIBCXX_HAVE_MODFF 1"
+.LASF1194:
+ .string "__glibcxx_filesystem 201703L"
+.LASF2337:
+ .string "tm_sec"
+.LASF221:
+ .string "__FLT_MAX_10_EXP__ 38"
+.LASF164:
+ .string "__SIG_ATOMIC_MAX__ 0x7fffffff"
+.LASF1878:
+ .string "sched_priority sched_priority"
+.LASF1284:
+ .string "__glibcxx_want_smart_ptr_for_overwrite"
+.LASF753:
+ .string "_GLIBCXX_WEAK_DEFINITION "
+.LASF795:
+ .string "_PSTL_PRAGMA_SIMD_SCAN(PRM) _PSTL_PRAGMA(omp simd reduction(inscan, PRM))"
+.LASF638:
+ .string "__USE_MISC 1"
+.LASF780:
+ .string "_PSTL_VERSION_MAJOR (_PSTL_VERSION / 1000)"
+.LASF2368:
+ .string "_Dummy"
+.LASF1338:
+ .string "__glibcxx_want_constexpr_new"
+.LASF1640:
+ .string "fwide"
+.LASF533:
+ .string "_GLIBCXX_BEGIN_NAMESPACE_ALGO "
+.LASF294:
+ .string "__FLT32_HAS_INFINITY__ 1"
+.LASF186:
+ .string "__INT_LEAST64_WIDTH__ 64"
+.LASF1784:
+ .string "__pid_t_defined "
+.LASF2181:
+ .string "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE7releaseEv"
+.LASF1776:
+ .string "_BITS_ENDIAN_H 1"
+.LASF2264:
+ .string "_ZNKSt10unique_ptrI4BaseSt14default_deleteIS0_EEcvbEv"
+.LASF1347:
+ .string "__glibcxx_want_text_encoding"
+.LASF1232:
+ .string "__glibcxx_want_optional"
+.LASF786:
+ .string "_PSTL_STRING(x) _PSTL_STRING_AUX(x)"
+.LASF708:
+ .string "__fortify_function __extern_always_inline __attribute_artificial__"
+.LASF385:
+ .string "__DEC64_MIN_EXP__ (-382)"
+.LASF907:
+ .string "_GLIBCXX_HAVE_POSIX_MEMALIGN 1"
+.LASF649:
+ .string "__GLIBC_MINOR__ 41"
+.LASF1883:
+ .string "CPU_ISSET(cpu,cpusetp) __CPU_ISSET_S (cpu, sizeof (cpu_set_t), cpusetp)"
+.LASF439:
+ .string "__ATOMIC_HLE_RELEASE 131072"
+.LASF1805:
+ .string "sched_param __glibc_mask_sched_param"
+.LASF146:
+ .string "__PTRDIFF_MAX__ 0x7fffffffffffffffL"
+.LASF1633:
+ .string "WEOF (0xffffffffu)"
+.LASF1619:
+ .string "_BITS_WCHAR_H 1"
+.LASF1397:
+ .string "__cpp_lib_type_trait_variable_templates 201510L"
+.LASF44:
+ .string "__WCHAR_TYPE__ int"
+.LASF854:
+ .string "_GLIBCXX_HAVE_FLOAT_H 1"
+.LASF1379:
+ .string "__glibcxx_want_result_of_sfinae "
+.LASF2208:
+ .string "_ZNSt10_Head_baseILm0EP4BaseLb0EEC4Ev"
+.LASF1400:
+ .string "_GLIBCXX_MOVE(__val) std::move(__val)"
+.LASF0:
+ .string "__STDC__ 1"
+.LASF356:
+ .string "__FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x"
+.LASF2024:
+ .string "__GTHREAD_ALWAYS_INLINE __attribute__((__always_inline__))"
+.LASF1062:
+ .string "_GLIBCXX_X86_RDRAND 1"
+.LASF1191:
+ .string "__glibcxx_want_chrono"
+.LASF719:
+ .string "__LDBL_REDIR(name,proto) name proto"
+.LASF1699:
+ .string "_ALLOCATED_PTR_H 1"
+.LASF1806:
+ .string "_LINUX_SCHED_TYPES_H "
+.LASF2079:
+ .string "ATOMIC_SHORT_LOCK_FREE __GCC_ATOMIC_SHORT_LOCK_FREE"
+.LASF204:
+ .string "__UINT_FAST16_MAX__ 0xffffffffffffffffUL"
+.LASF392:
+ .string "__DEC128_MIN_EXP__ (-6142)"
+.LASF1188:
+ .string "__glibcxx_boyer_moore_searcher 201603L"
+.LASF1031:
+ .string "_GLIBCXX_USE_FCHMODAT 1"
+.LASF2296:
+ .string "__ops"
+.LASF1402:
+ .string "_GLIBCXX_OPERATOR_NEW __builtin_operator_new"
+.LASF1418:
+ .string "__glibcxx_class_requires2(_a,_b,_c) "
+.LASF657:
+ .string "__LEAF_ATTR __attribute__ ((__leaf__))"
+.LASF324:
+ .string "__FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128"
+.LASF1811:
+ .string "__BITS_PER_LONG 64"
+.LASF1094:
+ .string "__glibcxx_want_math_spec_funcs"
+.LASF237:
+ .string "__DBL_MAX_10_EXP__ 308"
+.LASF701:
+ .string "__attribute_warn_unused_result__ __attribute__ ((__warn_unused_result__))"
+.LASF727:
+ .string "__glibc_macro_warning(message) __glibc_macro_warning1 (GCC warning message)"
+.LASF1207:
+ .string "__glibcxx_want_parallel_algorithm"
+.LASF968:
+ .string "_GLIBCXX_HAVE_VFWSCANF 1"
+.LASF1322:
+ .string "__glibcxx_want_flat_set"
+.LASF526:
+ .string "_GLIBCXX_END_NAMESPACE_VERSION "
+.LASF1844:
+ .string "CLONE_PARENT 0x00008000"
+.LASF2250:
+ .string "~unique_ptr"
+.LASF1423:
+ .string "__glibcxx_requires_subscript(_N) __glibcxx_assert(_N < this->size())"
+.LASF2197:
+ .string "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEE7_M_headERS3_"
+.LASF1042:
+ .string "_GLIBCXX_USE_NLS 1"
+.LASF460:
+ .string "__ELF__ 1"
+.LASF1307:
+ .string "__glibcxx_want_ranges_join_with"
+.LASF808:
+ .string "_PSTL_PRAGMA_DECLARE_REDUCTION(NAME,OP) _PSTL_PRAGMA(omp declare reduction(NAME:OP : omp_out(omp_in)) initializer(omp_priv = omp_orig))"
+.LASF1984:
+ .string "__PTHREAD_MUTEX_INITIALIZER(__kind) 0, 0, 0, 0, __kind, 0, 0, { NULL, NULL }"
+.LASF1429:
+ .string "_GLIBCXX_UTILITY_H 1"
+.LASF576:
+ .string "__USE_DYNAMIC_STACK_SIZE"
+.LASF1104:
+ .string "__glibcxx_make_reverse_iterator 201402L"
+.LASF2044:
+ .string "__glibcxx_want_uncaught_exceptions "
+.LASF615:
+ .string "__GLIBC_USE_ISOC2Y 1"
+.LASF874:
+ .string "_GLIBCXX_HAVE_LC_MESSAGES 1"
+.LASF2303:
+ .string "short unsigned int"
+.LASF2356:
+ .string "operator new"
+.LASF1492:
+ .string "_GLIBCXX_MOVE_BACKWARD3(_Tp,_Up,_Vp) std::move_backward(_Tp, _Up, _Vp)"
+.LASF1815:
+ .string "_LINUX_STDDEF_H "
+.LASF1245:
+ .string "__glibcxx_want_make_obj_using_allocator"
+.LASF2176:
+ .string "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE10_M_deleterEv"
+.LASF843:
+ .string "_GLIBCXX_HAVE_EXECINFO_H 1"
+.LASF2076:
+ .string "ATOMIC_WCHAR_T_LOCK_FREE __GCC_ATOMIC_WCHAR_T_LOCK_FREE"
+.LASF2105:
+ .string "__glibcxx_want_out_ptr "
+.LASF1085:
+ .string "__glibcxx_shared_ptr_arrays 201611L"
+.LASF2108:
+ .string "__glibcxx_want_raw_memory_algorithms "
+.LASF503:
+ .string "_GLIBCXX14_CONSTEXPR constexpr"
+.LASF1457:
+ .string "__glibcxx_requires_cond(_Cond,_Msg) "
+.LASF1616:
+ .string "__need___va_list"
+.LASF2090:
+ .string "_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED(X) "
+.LASF553:
+ .string "_GLIBCXX_OS_DEFINES 1"
+.LASF2334:
+ .string "__isoc23_vfwscanf"
+.LASF81:
+ .string "__GXX_EXPERIMENTAL_CXX0X__ 1"
+.LASF98:
+ .string "__cpp_inheriting_constructors 201511L"
+.LASF1670:
+ .string "wcsncmp"
+.LASF751:
+ .string "_GLIBCXX_CPU_DEFINES 1"
+.LASF1251:
+ .string "__glibcxx_want_to_address"
+.LASF432:
+ .string "__amd64 1"
+.LASF149:
+ .string "__SHRT_WIDTH__ 16"
+.LASF915:
+ .string "_GLIBCXX_HAVE_SINCOS 1"
+.LASF1453:
+ .string "_STL_ITERATOR_H 1"
+.LASF1560:
+ .string "__HAVE_DISTINCT_FLOAT64X 0"
+.LASF956:
+ .string "_GLIBCXX_HAVE_TANHF 1"
+.LASF842:
+ .string "_GLIBCXX_HAVE_EXCEPTION_PTR_SINCE_GCC46 1"
+.LASF245:
+ .string "__DBL_HAS_INFINITY__ 1"
+.LASF1524:
+ .string "_GLIBCXX_POSTYPES_H 1"
+.LASF1415:
+ .string "_CONCEPT_CHECK_H 1"
+.LASF1447:
+ .string "__glibcxx_digits10"
+.LASF2156:
+ .string "_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv"
+.LASF1502:
+ .string "__glibcxx_want_tuple_element_t "
+.LASF841:
+ .string "_GLIBCXX_HAVE_ENDIAN_H 1"
+.LASF229:
+ .string "__FLT_HAS_INFINITY__ 1"
+.LASF1078:
+ .string "__glibcxx_want_uncaught_exceptions"
+.LASF316:
+ .string "__FLT128_MIN_10_EXP__ (-4931)"
+.LASF2385:
+ .string "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEE31__nothrow_default_constructibleEv"
+.LASF1448:
+ .string "__glibcxx_max_exponent10"
+.LASF143:
+ .string "__WCHAR_MIN__ (-__WCHAR_MAX__ - 1)"
+.LASF456:
+ .string "linux 1"
+.LASF1136:
+ .string "__glibcxx_any 201606L"
+.LASF758:
+ .string "_GLIBCXX_FAST_MATH 0"
+.LASF1770:
+ .string "__FD_SETSIZE 1024"
+.LASF374:
+ .string "__BFLT16_HAS_INFINITY__ 1"
+.LASF839:
+ .string "_GLIBCXX_HAVE_DIRFD 1"
+.LASF903:
+ .string "_GLIBCXX_HAVE_OPENAT 1"
+.LASF1868:
+ .string "__CPU_ZERO_S(setsize,cpusetp) do __builtin_memset (cpusetp, '\\0', setsize); while (0)"
+.LASF2322:
+ .string "overflow_arg_area"
+.LASF844:
+ .string "_GLIBCXX_HAVE_EXPF 1"
+.LASF130:
+ .string "__STDCPP_DEFAULT_NEW_ALIGNMENT__ 16"
+.LASF1711:
+ .string "_PTHREAD_H 1"
+.LASF908:
+ .string "_GLIBCXX_HAVE_POSIX_SEMAPHORE 1"
+.LASF762:
+ .string "_GLIBCXX_USE_C99_STDIO _GLIBCXX11_USE_C99_STDIO"
+.LASF1083:
+ .string "__glibcxx_result_of_sfinae 201210L"
+.LASF372:
+ .string "__BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16"
+.LASF1585:
+ .string "_SIZE_T_DEFINED "
+.LASF2283:
+ .string "_ZSt12__get_helperILm1ESt14default_deleteI4BaseEJEERT0_RSt11_Tuple_implIXT_EJS3_DpT1_EE"
+.LASF1179:
+ .string "__glibcxx_want_raw_memory_algorithms"
+.LASF2323:
+ .string "reg_save_area"
+.LASF969:
+ .string "_GLIBCXX_HAVE_VSWSCANF 1"
+.LASF2200:
+ .string "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEC4Ev"
+.LASF478:
+ .string "__GLIBCXX__ 20250425"
+.LASF759:
+ .string "__N(msgid) (msgid)"
+.LASF2052:
+ .string "_T_PTRDIFF_ "
+.LASF1329:
+ .string "__glibcxx_want_print"
+.LASF539:
+ .string "_GLIBCXX_BEGIN_NAMESPACE_LDBL "
+.LASF1528:
+ .string "__GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION"
+.LASF1717:
+ .string "__U32_TYPE unsigned int"
+.LASF1451:
+ .string "_PTR_TRAITS_H 1"
+.LASF2023:
+ .string "pthread_cleanup_pop_restore_np(execute) __clframe.__restore (); __clframe.__setdoit (execute); } while (0)"
+.LASF2121:
+ .string "__cpp_lib_shared_ptr_weak_type 201606L"
+.LASF1732:
+ .string "__DEV_T_TYPE __UQUAD_TYPE"
+.LASF363:
+ .string "__BFLT16_MIN_EXP__ (-125)"
+.LASF180:
+ .string "__INT_LEAST16_WIDTH__ 16"
+.LASF1069:
+ .string "_NEW "
+.LASF1548:
+ .string "__f128(x) x ##f128"
+.LASF1488:
+ .string "_GLIBCXX_ADVANCE(P,N) P += N"
+.LASF1534:
+ .string "__GLIBC_USE_IEC_60559_BFP_EXT_C23 1"
+.LASF1982:
+ .string "_THREAD_MUTEX_INTERNAL_H 1"
+.LASF574:
+ .string "__USE_MISC"
+.LASF206:
+ .string "__UINT_FAST64_MAX__ 0xffffffffffffffffUL"
+.LASF277:
+ .string "__FLT16_HAS_DENORM__ 1"
+.LASF1044:
+ .string "_GLIBCXX_USE_PTHREAD_COND_CLOCKWAIT 1"
+.LASF1099:
+ .string "__glibcxx_want_integer_sequence"
+.LASF492:
+ .string "_GLIBCXX17_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)"
+.LASF2225:
+ .string "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEaSERKS3_"
+.LASF391:
+ .string "__DEC128_MANT_DIG__ 34"
+.LASF138:
+ .string "__SHRT_MAX__ 0x7fff"
+.LASF942:
+ .string "_GLIBCXX_HAVE_SYS_MMAN_H 1"
+.LASF1341:
+ .string "__glibcxx_want_ranges_cache_latest"
+.LASF948:
+ .string "_GLIBCXX_HAVE_SYS_STATVFS_H 1"
+.LASF1209:
+ .string "__glibcxx_want_scoped_lock"
+.LASF292:
+ .string "__FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32"
+.LASF1218:
+ .string "__glibcxx_want_assume_aligned"
+.LASF1691:
+ .string "wcstold"
+.LASF178:
+ .string "__INT_LEAST16_MAX__ 0x7fff"
+.LASF1750:
+ .string "__FSFILCNT64_T_TYPE __UQUAD_TYPE"
+.LASF1862:
+ .string "_BITS_TYPES_STRUCT_SCHED_PARAM 1"
+.LASF565:
+ .string "__USE_XOPEN_EXTENDED"
+.LASF2351:
+ .string "__isoc23_wcstoll"
+.LASF1692:
+ .string "wcstoll"
+.LASF547:
+ .string "__glibcxx_assert(cond) do { if (std::__is_constant_evaluated() && !bool(cond)) std::__glibcxx_assert_fail(); } while (false)"
+.LASF1391:
+ .string "__cpp_lib_transformation_trait_aliases 201304L"
+.LASF1503:
+ .string "__glibcxx_want_tuples_by_type "
+.LASF720:
+ .string "__LDBL_REDIR1_NTH(name,proto,alias) name proto __THROW"
+.LASF1737:
+ .string "__MODE_T_TYPE __U32_TYPE"
+.LASF2252:
+ .string "operator bool"
+.LASF1797:
+ .string "SCHED_FLAG_RECLAIM 0x02"
+.LASF1567:
+ .string "__f64x(x) x ##f64x"
+.LASF62:
+ .string "__INT_LEAST64_TYPE__ long int"
+.LASF169:
+ .string "__INT32_MAX__ 0x7fffffff"
+.LASF322:
+ .string "__FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128"
+.LASF2163:
+ .string "_ZNKSt14default_deleteI4BaseEclEPS0_"
+.LASF1702:
+ .string "_GLIBCXX_MEM_FN_TRAITS(_REF,_LVAL,_RVAL) _GLIBCXX_MEM_FN_TRAITS2( , _REF, _LVAL, _RVAL) _GLIBCXX_MEM_FN_TRAITS2(const , _REF, _LVAL, _RVAL) _GLIBCXX_MEM_FN_TRAITS2(volatile , _REF, _LVAL, _RVAL) _GLIBCXX_MEM_FN_TRAITS2(const volatile, _REF, _LVAL, _RVAL)"
+.LASF1894:
+ .string "CPU_OR(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, |)"
+.LASF538:
+ .string "_GLIBCXX_NAMESPACE_LDBL "
+.LASF1282:
+ .string "__glibcxx_want_move_iterator_concept"
+.LASF413:
+ .string "__GCC_ATOMIC_CHAR_LOCK_FREE 2"
+.LASF1107:
+ .string "__glibcxx_want_null_iterators"
+.LASF1173:
+ .string "__glibcxx_want_lcm"
+.LASF2133:
+ .string "_M_a"
+.LASF666:
+ .string "__STRING(x) #x"
+.LASF73:
+ .string "__UINT_FAST32_TYPE__ long unsigned int"
+.LASF865:
+ .string "_GLIBCXX_HAVE_HYPOTF 1"
+.LASF1766:
+ .string "__INO_T_MATCHES_INO64_T 1"
+.LASF23:
+ .string "__SIZEOF_INT__ 4"
+.LASF678:
+ .string "__glibc_c99_flexarr_available 1"
+.LASF849:
+ .string "_GLIBCXX_HAVE_FDOPENDIR 1"
+.LASF1131:
+ .string "__glibcxx_want_shared_timed_mutex"
+.LASF334:
+ .string "__FLT32X_MAX_10_EXP__ 308"
+.LASF1315:
+ .string "__glibcxx_want_ranges_contains"
+.LASF937:
+ .string "_GLIBCXX_HAVE_STRXFRM_L 1"
+.LASF2183:
+ .string "_M_t"
+.LASF1626:
+ .string "____FILE_defined 1"
+.LASF1671:
+ .string "wcsncpy"
+.LASF876:
+ .string "_GLIBCXX_HAVE_LDEXPL 1"
+.LASF983:
+ .string "_GLIBCXX_PACKAGE__GLIBCXX_VERSION \"version-unused\""
+.LASF50:
+ .string "__SIG_ATOMIC_TYPE__ int"
+.LASF1586:
+ .string "_BSD_SIZE_T_DEFINED_ "
+.LASF32:
+ .string "__BIGGEST_ALIGNMENT__ 16"
+.LASF923:
+ .string "_GLIBCXX_HAVE_SQRTF 1"
+.LASF273:
+ .string "__FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF198:
+ .string "__INT_FAST16_WIDTH__ 64"
+.LASF368:
+ .string "__BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16"
+.LASF1215:
+ .string "__glibcxx_want_string_view"
+.LASF1303:
+ .string "__glibcxx_want_ranges_zip"
+.LASF834:
+ .string "_GLIBCXX_HAVE_COSHF 1"
+.LASF190:
+ .string "__UINT16_C(c) c"
+.LASF1070:
+ .string "__EXCEPTION_H 1"
+.LASF427:
+ .string "__PRAGMA_REDEFINE_EXTNAME 1"
+.LASF1997:
+ .string "PTHREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED"
+.LASF2029:
+ .string "__GTHREAD_ONCE_INIT PTHREAD_ONCE_INIT"
+.LASF1545:
+ .string "__HAVE_DISTINCT_FLOAT128 1"
+.LASF72:
+ .string "__UINT_FAST16_TYPE__ long unsigned int"
+.LASF1208:
+ .string "__glibcxx_scoped_lock 201703L"
+.LASF1898:
+ .string "CPU_XOR_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, ^)"
+.LASF818:
+ .string "_GLIBCXX_HAVE_ARC4RANDOM 1"
+.LASF1757:
+ .string "__DADDR_T_TYPE __S32_TYPE"
+.LASF120:
+ .string "__cpp_aggregate_bases 201603L"
+.LASF2126:
+ .string "__debug"
+.LASF1452:
+ .string "_STL_ALGOBASE_H 1"
+.LASF891:
+ .string "_GLIBCXX_HAVE_LOGF 1"
+.LASF517:
+ .string "_GLIBCXX_EXTERN_TEMPLATE 1"
+.LASF1593:
+ .string "__need_size_t"
+.LASF2278:
+ .string "_Types"
+.LASF1605:
+ .string "___int_wchar_t_h "
+.LASF425:
+ .string "__HAVE_SPECULATION_SAFE_VALUE 1"
+.LASF889:
+ .string "_GLIBCXX_HAVE_LOG10F 1"
+.LASF1335:
+ .string "__glibcxx_want_tuple_like"
+.LASF556:
+ .string "__USE_ISOC11"
+.LASF777:
+ .string "_PSTL_ASSERT_MSG(_Condition,_Message) __glibcxx_assert(_Condition)"
+.LASF2275:
+ .string "__single_object"
+.LASF530:
+ .string "_GLIBCXX_BEGIN_NAMESPACE_CONTAINER "
+.LASF1201:
+ .string "__glibcxx_want_math_special_functions"
+.LASF2003:
+ .string "PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP { { __PTHREAD_RWLOCK_INITIALIZER (PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP) } }"
+.LASF1553:
+ .string "__HAVE_FLOAT64 1"
+.LASF1407:
+ .string "_GLIBCXX_OPERATOR_NEW"
+.LASF76:
+ .string "__UINTPTR_TYPE__ long unsigned int"
+.LASF2021:
+ .string "pthread_cleanup_pop(execute) __clframe.__setdoit (execute); } while (0)"
+.LASF1151:
+ .string "__cpp_lib_hardware_interference_size 201703L"
+.LASF1088:
+ .string "__glibcxx_want_is_swappable"
+.LASF730:
+ .string "__fortified_attr_access(a,o,s) __attr_access ((a, o, s))"
+.LASF147:
+ .string "__SIZE_MAX__ 0xffffffffffffffffUL"
+.LASF110:
+ .string "__cpp_namespace_attributes 201411L"
+.LASF1659:
+ .string "vwscanf"
+.LASF703:
+ .string "__always_inline"
+.LASF1999:
+ .string "PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_RECURSIVE_NP) } }"
+.LASF55:
+ .string "__UINT8_TYPE__ unsigned char"
+.LASF1551:
+ .string "__HAVE_FLOAT16 0"
+.LASF765:
+ .string "_GLIBCXX_USE_FLOAT128 1"
+.LASF1018:
+ .string "_GLIBCXX_USE_C99_INTTYPES_WCHAR_T 1"
+.LASF2219:
+ .string "_M_tail"
+.LASF635:
+ .string "__USE_LARGEFILE64 1"
+.LASF1921:
+ .string "ADJ_MAXERROR 0x0004"
+.LASF284:
+ .string "__FLT32_MIN_10_EXP__ (-37)"
+.LASF1374:
+ .string "__glibcxx_want_is_swappable "
+.LASF1934:
+ .string "MOD_MAXERROR ADJ_MAXERROR"
+.LASF670:
+ .string "__attribute_overloadable__ "
+.LASF315:
+ .string "__FLT128_MIN_EXP__ (-16381)"
+.LASF2388:
+ .string "_ZSt11make_uniqueI4BaseJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_"
+.LASF1016:
+ .string "_GLIBCXX_USE_C99_INTTYPES 1"
+.LASF1994:
+ .string "__SC_THREAD_STACK_MIN_VALUE 75"
+.LASF2086:
+ .string "ATOMIC_VAR_INIT(_VI) { _VI }"
+.LASF1620:
+ .string "__WCHAR_MAX __WCHAR_MAX__"
+.LASF1813:
+ .string "__BITS_PER_LONG_LONG 64"
+.LASF255:
+ .string "__LDBL_DECIMAL_DIG__ 21"
+.LASF75:
+ .string "__INTPTR_TYPE__ long int"
+.LASF1724:
+ .string "__SLONG32_TYPE int"
+.LASF1696:
+ .string "__glibcxx_want_constexpr_typeinfo "
+.LASF1167:
+ .string "__glibcxx_want_not_fn"
+.LASF512:
+ .string "_GLIBCXX_THROW(_EXC) "
+.LASF1709:
+ .string "__GTHREADS 1"
+.LASF1039:
+ .string "_GLIBCXX_USE_LSTAT 1"
+.LASF511:
+ .string "_GLIBCXX_USE_NOEXCEPT noexcept"
+.LASF195:
+ .string "__INT_FAST8_MAX__ 0x7f"
+.LASF1714:
+ .string "__S16_TYPE short int"
+.LASF2253:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEaSEDn"
+.LASF56:
+ .string "__UINT16_TYPE__ short unsigned int"
+.LASF2276:
+ .string "__unique_ptr_t"
+.LASF1255:
+ .string "__glibcxx_want_constexpr_iterator"
+.LASF399:
+ .string "__DEC64X_MIN_EXP__ (-6142)"
+.LASF2185:
+ .string "_Head_base"
+.LASF1923:
+ .string "ADJ_STATUS 0x0010"
+.LASF1481:
+ .string "__glibcxx_want_concepts "
+.LASF905:
+ .string "_GLIBCXX_HAVE_POLL 1"
+.LASF1102:
+ .string "__glibcxx_is_final 201402L"
+.LASF1212:
+ .string "__glibcxx_shared_ptr_weak_type 201606L"
+.LASF946:
+ .string "_GLIBCXX_HAVE_SYS_SEM_H 1"
+.LASF1579:
+ .string "_T_SIZE_ "
+.LASF1896:
+ .string "CPU_AND_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, &)"
+.LASF2180:
+ .string "release"
+.LASF939:
+ .string "_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT 1"
+.LASF339:
+ .string "__FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x"
+.LASF342:
+ .string "__FLT32X_HAS_INFINITY__ 1"
+.LASF660:
+ .string "__NTH(fct) __LEAF_ATTR fct __THROW"
+.LASF2131:
+ .string "nullptr_t"
+.LASF674:
+ .string "__glibc_objsize(__o) __bos (__o)"
+.LASF1305:
+ .string "__glibcxx_want_ranges_slide"
+.LASF280:
+ .string "__FLT16_IS_IEC_60559__ 1"
+.LASF2263:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEaSEOS3_"
+.LASF2210:
+ .string "_ZNSt10_Head_baseILm0EP4BaseLb0EEC4ERKS2_"
+.LASF807:
+ .string "_PSTL_PRAGMA_SIMD_ORDERED_MONOTONIC_2ARGS(PRM1,PRM2) "
+.LASF1263:
+ .string "__glibcxx_want_constexpr_tuple"
+.LASF174:
+ .string "__UINT64_MAX__ 0xffffffffffffffffUL"
+.LASF176:
+ .string "__INT8_C(c) c"
+.LASF1825:
+ .string "__kernel_old_dev_t __kernel_old_dev_t"
+.LASF738:
+ .string "__stub_chflags "
+.LASF2211:
+ .string "_ZNSt10_Head_baseILm0EP4BaseLb0EEC4EOS2_"
+.LASF1788:
+ .string "SCHED_RR 2"
+.LASF124:
+ .string "__cpp_structured_bindings 201606L"
+.LASF2233:
+ .string "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEC4ERKS4_"
+.LASF269:
+ .string "__FLT16_MAX_EXP__ 16"
+.LASF871:
+ .string "_GLIBCXX_HAVE_ISNANF 1"
+.LASF1300:
+ .string "__glibcxx_want_reference_from_temporary"
+.LASF1274:
+ .string "__glibcxx_want_constexpr_vector"
+.LASF1625:
+ .string "____mbstate_t_defined 1"
+.LASF2354:
+ .string "__uses_alloc_base"
+.LASF1372:
+ .string "__glibcxx_want_is_pointer_interconvertible "
+.LASF2362:
+ .string "__cxa_guard_release"
+.LASF220:
+ .string "__FLT_MAX_EXP__ 128"
+.LASF1675:
+ .string "wcsspn"
+.LASF14:
+ .string "__ATOMIC_SEQ_CST 5"
+.LASF2186:
+ .string "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC4Ev"
+.LASF85:
+ .string "__cpp_runtime_arrays 198712L"
+.LASF742:
+ .string "__stub_setlogin "
+.LASF1200:
+ .string "__glibcxx_math_special_functions 201603L"
+.LASF1101:
+ .string "__glibcxx_want_integral_constant_callable"
+.LASF1980:
+ .string "__ONCE_ALIGNMENT "
+.LASF591:
+ .string "_ISOC99_SOURCE"
+.LASF1882:
+ .string "CPU_CLR(cpu,cpusetp) __CPU_CLR_S (cpu, sizeof (cpu_set_t), cpusetp)"
+.LASF537:
+ .string "_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT"
+.LASF353:
+ .string "__FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x"
+.LASF281:
+ .string "__FLT32_MANT_DIG__ 24"
+.LASF744:
+ .string "__stub_stty "
+.LASF1045:
+ .string "_GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK (_GLIBCXX_TSAN==0)"
+.LASF1306:
+ .string "__glibcxx_want_ranges_chunk_by"
+.LASF2184:
+ .string "_Head_base<1, std::default_delete<Base>, true>"
+.LASF2201:
+ .string "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEC4ERKS2_"
+.LASF1852:
+ .string "CLONE_UNTRACED 0x00800000"
+.LASF360:
+ .string "__FLT64X_IS_IEC_60559__ 1"
+.LASF922:
+ .string "_GLIBCXX_HAVE_SOCKATMARK 1"
+.LASF2030:
+ .string "__GTHREAD_RECURSIVE_MUTEX_INIT PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP"
+.LASF1369:
+ .string "__glibcxx_want_is_layout_compatible "
+.LASF992:
+ .string "_GLIBCXX98_USE_C99_MATH 1"
+.LASF160:
+ .string "__INTMAX_C(c) c ## L"
+.LASF2170:
+ .string "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EEC4EOS3_"
+.LASF725:
+ .string "__REDIRECT_NTH_LDBL(name,proto,alias) __REDIRECT_NTH (name, proto, alias)"
+.LASF2231:
+ .string "tuple<Base*, std::default_delete<Base> >"
+.LASF1676:
+ .string "wcsstr"
+.LASF1859:
+ .string "CLONE_NEWNET 0x40000000"
+.LASF1480:
+ .string "_GLIBCXX_CONCEPTS 1"
+.LASF135:
+ .string "__cpp_exceptions 199711L"
+.LASF2078:
+ .string "ATOMIC_CHAR32_T_LOCK_FREE __GCC_ATOMIC_CHAR32_T_LOCK_FREE"
+.LASF980:
+ .string "_GLIBCXX_PACKAGE_STRING \"package-unused version-unused\""
+.LASF1164:
+ .string "__glibcxx_make_from_tuple 201606L"
+.LASF1169:
+ .string "__glibcxx_want_type_trait_variable_templates"
+.LASF211:
+ .string "__GCC_IEC_559_COMPLEX 2"
+.LASF2070:
+ .string "_GLIBCXX_NESTED_EXCEPTION_H 1"
+.LASF858:
+ .string "_GLIBCXX_HAVE_FMODL 1"
+.LASF1081:
+ .string "__glibcxx_is_null_pointer 201309L"
+.LASF1459:
+ .string "__glibcxx_requires_can_increment(_First,_Size) "
+.LASF769:
+ .string "_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP 1"
+.LASF279:
+ .string "__FLT16_HAS_QUIET_NAN__ 1"
+.LASF2294:
+ .string "__gnu_cxx"
+.LASF2305:
+ .string "long long unsigned int"
+.LASF1594:
+ .string "__wchar_t__ "
+.LASF1259:
+ .string "__glibcxx_want_ranges"
+.LASF406:
+ .string "__USER_LABEL_PREFIX__ "
+.LASF659:
+ .string "__THROWNL __THROW"
+.LASF920:
+ .string "_GLIBCXX_HAVE_SINHL 1"
+.LASF911:
+ .string "_GLIBCXX_HAVE_QUICK_EXIT 1"
+.LASF711:
+ .string "__restrict_arr "
+.LASF1677:
+ .string "wcstod"
+.LASF2202:
+ .string "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEC4ERKS3_"
+.LASF1678:
+ .string "wcstof"
+.LASF846:
+ .string "_GLIBCXX_HAVE_FABSF 1"
+.LASF1922:
+ .string "ADJ_ESTERROR 0x0008"
+.LASF254:
+ .string "__DECIMAL_DIG__ 21"
+.LASF1679:
+ .string "wcstok"
+.LASF507:
+ .string "_GLIBCXX26_CONSTEXPR "
+.LASF1729:
+ .string "_BITS_TYPESIZES_H 1"
+.LASF1470:
+ .string "__glibcxx_requires_heap(_First,_Last) "
+.LASF268:
+ .string "__FLT16_MIN_10_EXP__ (-4)"
+.LASF637:
+ .string "__USE_TIME_BITS64 1"
+.LASF2084:
+ .string "_GLIBCXX_ALWAYS_INLINE inline __attribute__((__always_inline__))"
+.LASF1047:
+ .string "_GLIBCXX_USE_PTHREAD_RWLOCK_T 1"
+.LASF1774:
+ .string "__time_t_defined 1"
+.LASF2220:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEE7_M_tailERS4_"
+.LASF1716:
+ .string "__S32_TYPE int"
+.LASF1945:
+ .string "STA_PPSTIME 0x0004"
+.LASF1077:
+ .string "__glibcxx_uncaught_exceptions 201411L"
+.LASF696:
+ .string "__attribute_format_arg__(x) __attribute__ ((__format_arg__ (x)))"
+.LASF2112:
+ .string "__glibcxx_want_to_address "
+.LASF2082:
+ .string "ATOMIC_LLONG_LOCK_FREE __GCC_ATOMIC_LLONG_LOCK_FREE"
+.LASF367:
+ .string "__BFLT16_DECIMAL_DIG__ 4"
+.LASF168:
+ .string "__INT16_MAX__ 0x7fff"
+.LASF1105:
+ .string "__glibcxx_want_make_reverse_iterator"
+.LASF2370:
+ .string "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EEC2EPS0_"
+.LASF2371:
+ .string "__ptr"
+.LASF645:
+ .string "__GLIBC_USE_C23_STRTOL 1"
+.LASF214:
+ .string "__DEC_EVAL_METHOD__ 2"
+.LASF1541:
+ .string "__GLIBC_USE_IEC_60559_TYPES_EXT"
+.LASF840:
+ .string "_GLIBCXX_HAVE_DLFCN_H 1"
+.LASF1558:
+ .string "__HAVE_DISTINCT_FLOAT64 0"
+.LASF1113:
+ .string "__glibcxx_want_tuple_element_t"
+.LASF490:
+ .string "_GLIBCXX14_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)"
+.LASF1527:
+ .string "__GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION "
+.LASF1121:
+ .string "__glibcxx_want_chrono_udls"
+.LASF1912:
+ .string "CLOCK_BOOTTIME 7"
+.LASF283:
+ .string "__FLT32_MIN_EXP__ (-125)"
+.LASF1880:
+ .string "CPU_SETSIZE __CPU_SETSIZE"
+.LASF2149:
+ .string "_ZNSt15__exception_ptr13exception_ptraSERKS0_"
+.LASF2166:
+ .string "type"
+.LASF1780:
+ .string "_BITS_ENDIANNESS_H 1"
+.LASF489:
+ .string "_GLIBCXX14_DEPRECATED _GLIBCXX_DEPRECATED"
+.LASF235:
+ .string "__DBL_MIN_10_EXP__ (-307)"
+.LASF2115:
+ .string "__cpp_lib_shared_ptr_arrays 201611L"
+.LASF1098:
+ .string "__glibcxx_integer_sequence 201304L"
+.LASF2254:
+ .string "operator*"
+.LASF1918:
+ .string "__timeval_defined 1"
+.LASF754:
+ .string "_GLIBCXX_USE_WEAK_REF __GXX_WEAK__"
+.LASF2058:
+ .string "_GCC_PTRDIFF_T "
+.LASF340:
+ .string "__FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x"
+.LASF2319:
+ .string "__gnu_debug"
+.LASF259:
+ .string "__LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L"
+.LASF916:
+ .string "_GLIBCXX_HAVE_SINCOSF 1"
+.LASF1516:
+ .string "_FUNCTIONAL_HASH_H 1"
+.LASF77:
+ .string "__GXX_WEAK__ 1"
+.LASF219:
+ .string "__FLT_MIN_10_EXP__ (-37)"
+.LASF1688:
+ .string "wmemset"
+.LASF677:
+ .string "__flexarr []"
+.LASF2148:
+ .string "operator="
+.LASF940:
+ .string "_GLIBCXX_HAVE_SYS_IOCTL_H 1"
+.LASF112:
+ .string "__cpp_nested_namespace_definitions 201411L"
+.LASF1909:
+ .string "CLOCK_MONOTONIC_RAW 4"
+.LASF201:
+ .string "__INT_FAST64_MAX__ 0x7fffffffffffffffL"
+.LASF1857:
+ .string "CLONE_NEWUSER 0x10000000"
+.LASF1940:
+ .string "MOD_TAI ADJ_TAI"
+.LASF1635:
+ .string "btowc"
+.LASF2036:
+ .string "__GTHREAD_INLINE"
+.LASF1905:
+ .string "CLOCK_REALTIME 0"
+.LASF909:
+ .string "_GLIBCXX_HAVE_POWF 1"
+.LASF1061:
+ .string "_GLIBCXX_VERBOSE 1"
+.LASF441:
+ .string "__k8 1"
+.LASF621:
+ .string "__USE_POSIX 1"
+.LASF560:
+ .string "__USE_POSIX"
+.LASF878:
+ .string "_GLIBCXX_HAVE_LIMIT_AS 1"
+.LASF943:
+ .string "_GLIBCXX_HAVE_SYS_PARAM_H 1"
+.LASF1606:
+ .string "__INT_WCHAR_T_H "
+.LASF1552:
+ .string "__HAVE_FLOAT32 1"
+.LASF257:
+ .string "__LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L"
+.LASF1380:
+ .string "__glibcxx_want_transformation_trait_aliases "
+.LASF382:
+ .string "__DEC32_EPSILON__ 1E-6DF"
+.LASF1650:
+ .string "putwchar"
+.LASF103:
+ .string "__cpp_generic_lambdas 201304L"
+.LASF2119:
+ .string "__cpp_lib_raw_memory_algorithms 201606L"
+.LASF504:
+ .string "_GLIBCXX17_CONSTEXPR constexpr"
+.LASF1135:
+ .string "__glibcxx_want_addressof_constexpr"
+.LASF80:
+ .string "__cpp_rtti 199711L"
+.LASF1065:
+ .string "_GTHREAD_USE_MUTEX_TIMEDLOCK 1"
+.LASF1603:
+ .string "_WCHAR_T_DEFINED "
+.LASF1525:
+ .string "_GLIBCXX_CWCHAR 1"
+.LASF1117:
+ .string "__glibcxx_want_robust_nonmodifying_seq_ops"
+.LASF599:
+ .string "_POSIX_SOURCE"
+.LASF337:
+ .string "__FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF144:
+ .string "__WINT_MAX__ 0xffffffffU"
+.LASF2270:
+ .string "unique_ptr<>"
+.LASF2297:
+ .string "_S_single"
+.LASF226:
+ .string "__FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F"
+.LASF781:
+ .string "_PSTL_VERSION_MINOR ((_PSTL_VERSION % 1000) / 10)"
+.LASF1222:
+ .string "__glibcxx_want_atomic_ref"
+.LASF375:
+ .string "__BFLT16_HAS_QUIET_NAN__ 1"
+.LASF832:
+ .string "_GLIBCXX_HAVE_COMPLEX_H 1"
+.LASF1468:
+ .string "__glibcxx_requires_partitioned_lower_pred(_First,_Last,_Value,_Pred) "
+.LASF902:
+ .string "_GLIBCXX_HAVE_NETINET_TCP_H 1"
+.LASF817:
+ .string "_GLIBCXX_HAVE_ALIGNED_ALLOC 1"
+.LASF348:
+ .string "__FLT64X_MIN_10_EXP__ (-4931)"
+.LASF421:
+ .string "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1"
+.LASF1858:
+ .string "CLONE_NEWPID 0x20000000"
+.LASF1478:
+ .string "_GLIBCXX_PREDEFINED_OPS_H 1"
+.LASF193:
+ .string "__UINT_LEAST64_MAX__ 0xffffffffffffffffUL"
+.LASF1531:
+ .string "__GLIBC_USE_IEC_60559_BFP_EXT"
+.LASF1123:
+ .string "__glibcxx_want_complex_udls"
+.LASF1847:
+ .string "CLONE_SYSVSEM 0x00040000"
+.LASF1523:
+ .string "_STRINGFWD_H 1"
+.LASF398:
+ .string "__DEC64X_MANT_DIG__ 34"
+.LASF188:
+ .string "__UINT8_C(c) c"
+.LASF113:
+ .string "__cpp_fold_expressions 201603L"
+.LASF213:
+ .string "__FLT_EVAL_METHOD_TS_18661_3__ 0"
+.LASF288:
+ .string "__FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF1566:
+ .string "__f32x(x) x ##f32x"
+.LASF1038:
+ .string "_GLIBCXX_USE_LONG_LONG 1"
+.LASF1132:
+ .string "__glibcxx_string_udls 201304L"
+.LASF2034:
+ .string "__gthrw_(name) name"
+.LASF929:
+ .string "_GLIBCXX_HAVE_STDLIB_H 1"
+.LASF713:
+ .string "__glibc_likely(cond) __builtin_expect ((cond), 1)"
+.LASF46:
+ .string "__INTMAX_TYPE__ long int"
+.LASF1032:
+ .string "_GLIBCXX_USE_FSEEKO_FTELLO 1"
+.LASF1681:
+ .string "wcstoul"
+.LASF1204:
+ .string "__glibcxx_node_extract 201606L"
+.LASF2394:
+ .string "11__mbstate_t"
+.LASF260:
+ .string "__LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L"
+.LASF1017:
+ .string "_GLIBCXX_USE_C99_INTTYPES_TR1 1"
+.LASF2014:
+ .string "PTHREAD_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS"
+.LASF2302:
+ .string "unsigned char"
+.LASF230:
+ .string "__FLT_HAS_QUIET_NAN__ 1"
+.LASF1258:
+ .string "__glibcxx_want_shift"
+.LASF1221:
+ .string "__glibcxx_want_atomic_lock_free_type_aliases"
+.LASF810:
+ .string "_PSTL_USE_NONTEMPORAL_STORES_IF_ALLOWED "
+.LASF803:
+ .string "_PSTL_UDR_PRESENT "
+.LASF1383:
+ .string "__glibcxx_want_unwrap_ref "
+.LASF793:
+ .string "_PSTL_PRAGMA_SIMD_REDUCTION(PRM) _PSTL_PRAGMA(omp simd reduction(PRM))"
+.LASF1519:
+ .string "_Cxx_hashtable_define_trivial_hash"
+.LASF33:
+ .string "__ORDER_LITTLE_ENDIAN__ 1234"
+.LASF2059:
+ .string "_PTRDIFF_T_DECLARED "
+.LASF1860:
+ .string "CLONE_IO 0x80000000"
+.LASF757:
+ .string "_GLIBCXX_USE_STD_SPEC_FUNCS 1"
+.LASF1027:
+ .string "_GLIBCXX_USE_CLOCK_REALTIME 1"
+.LASF2081:
+ .string "ATOMIC_LONG_LOCK_FREE __GCC_ATOMIC_LONG_LOCK_FREE"
+.LASF1928:
+ .string "ADJ_NANO 0x2000"
+.LASF1682:
+ .string "wcsxfrm"
+.LASF1040:
+ .string "_GLIBCXX_USE_MKDIR 1"
+.LASF1142:
+ .string "__glibcxx_atomic_is_always_lock_free 201603L"
+.LASF1668:
+ .string "wcslen"
+.LASF217:
+ .string "__FLT_DIG__ 6"
+.LASF137:
+ .string "__SCHAR_MAX__ 0x7f"
+.LASF1467:
+ .string "__glibcxx_requires_partitioned_upper(_First,_Last,_Value) "
+.LASF1009:
+ .string "_GLIBCXX_USE_C99 1"
+.LASF1395:
+ .string "__cpp_lib_is_invocable 201703L"
+.LASF2318:
+ .string "float"
+.LASF1517:
+ .string "_HASH_BYTES_H 1"
+.LASF236:
+ .string "__DBL_MAX_EXP__ 1024"
+.LASF2238:
+ .string "tuple<>"
+.LASF558:
+ .string "__USE_ISOC95"
+.LASF1998:
+ .string "PTHREAD_MUTEX_INITIALIZER { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_TIMED_NP) } }"
+.LASF1239:
+ .string "__glibcxx_constexpr_char_traits 201611L"
+.LASF557:
+ .string "__USE_ISOC99"
+.LASF189:
+ .string "__UINT_LEAST16_MAX__ 0xffff"
+.LASF1309:
+ .string "__glibcxx_want_ranges_stride"
+.LASF1865:
+ .string "__NCPUBITS (8 * sizeof (__cpu_mask))"
+.LASF2011:
+ .string "PTHREAD_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE"
+.LASF1891:
+ .string "CPU_EQUAL(cpusetp1,cpusetp2) __CPU_EQUAL_S (sizeof (cpu_set_t), cpusetp1, cpusetp2)"
+.LASF1469:
+ .string "__glibcxx_requires_partitioned_upper_pred(_First,_Last,_Value,_Pred) "
+.LASF1236:
+ .string "__glibcxx_want_int_pow2"
+.LASF1799:
+ .string "SCHED_FLAG_KEEP_POLICY 0x08"
+.LASF616:
+ .string "__GLIBC_USE_ISOC23 1"
+.LASF333:
+ .string "__FLT32X_MAX_EXP__ 1024"
+.LASF1311:
+ .string "__glibcxx_want_ranges_as_rvalue"
+.LASF133:
+ .string "__STDCPP_THREADS__ 1"
+.LASF2289:
+ .string "_Tail"
+.LASF1120:
+ .string "__glibcxx_chrono_udls 201304L"
+.LASF2335:
+ .string "__isoc23_vswscanf"
+.LASF1351:
+ .string "__glibcxx_want_all"
+.LASF1229:
+ .string "__glibcxx_want_bounded_array_traits"
+.LASF1403:
+ .string "_GLIBCXX_OPERATOR_DELETE __builtin_operator_delete"
+.LASF30:
+ .string "__SIZEOF_SIZE_T__ 8"
+.LASF395:
+ .string "__DEC128_MAX__ 9.999999999999999999999999999999999E6144DL"
+.LASF1301:
+ .string "__glibcxx_want_containers_ranges"
+.LASF1977:
+ .string "__SIZEOF_PTHREAD_RWLOCKATTR_T 8"
+.LASF1174:
+ .string "__glibcxx_gcd 201606L"
+.LASF435:
+ .string "__x86_64__ 1"
+.LASF2051:
+ .string "_PTRDIFF_T "
+.LASF1888:
+ .string "CPU_ISSET_S(cpu,setsize,cpusetp) __CPU_ISSET_S (cpu, setsize, cpusetp)"
+.LASF724:
+ .string "__REDIRECT_LDBL(name,proto,alias) __REDIRECT (name, proto, alias)"
+.LASF155:
+ .string "__PTRDIFF_WIDTH__ 64"
+.LASF567:
+ .string "__USE_XOPEN2K"
+.LASF1261:
+ .string "__glibcxx_want_constexpr_functional"
+.LASF563:
+ .string "__USE_POSIX199506"
+.LASF1228:
+ .string "__glibcxx_want_bitops"
+.LASF121:
+ .string "__cpp_deduction_guides 201703L"
+.LASF1193:
+ .string "__glibcxx_want_execution"
+.LASF1317:
+ .string "__glibcxx_want_ranges_find_last"
+.LASF1147:
+ .string "__glibcxx_want_byte"
+.LASF952:
+ .string "_GLIBCXX_HAVE_SYS_TYPES_H 1"
+.LASF41:
+ .string "__GNUG__ 15"
+.LASF2221:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEE7_M_tailERKS4_"
+.LASF458:
+ .string "__unix__ 1"
+.LASF1064:
+ .string "_GLIBCXX_ZONEINFO_DIR \"/usr/share/zoneinfo\""
+.LASF914:
+ .string "_GLIBCXX_HAVE_SETENV 1"
+.LASF1340:
+ .string "__glibcxx_want_is_virtual_base_of"
+.LASF1344:
+ .string "__glibcxx_want_reference_wrapper"
+.LASF1370:
+ .string "__glibcxx_want_is_nothrow_convertible "
+.LASF930:
+ .string "_GLIBCXX_HAVE_STRERROR_L 1"
+.LASF609:
+ .string "_DEFAULT_SOURCE"
+.LASF1313:
+ .string "__glibcxx_want_ranges_enumerate"
+.LASF2400:
+ .string "varStatic"
+.LASF2005:
+ .string "PTHREAD_EXPLICIT_SCHED PTHREAD_EXPLICIT_SCHED"
+.LASF959:
+ .string "_GLIBCXX_HAVE_TGMATH_H 1"
+.LASF531:
+ .string "_GLIBCXX_END_NAMESPACE_CONTAINER "
+.LASF1036:
+ .string "_GLIBCXX_USE_INIT_PRIORITY_ATTRIBUTE 1"
+.LASF2246:
+ .string "__add_lval_ref_t"
+.LASF1363:
+ .string "__glibcxx_want_has_unique_object_representations "
+.LASF2028:
+ .string "__GTHREAD_MUTEX_INIT_FUNCTION __gthread_mutex_init_function"
+.LASF702:
+ .string "__wur "
+.LASF1969:
+ .string "_BITS_PTHREADTYPES_ARCH_H 1"
+.LASF900:
+ .string "_GLIBCXX_HAVE_NETDB_H 1"
+.LASF238:
+ .string "__DBL_DECIMAL_DIG__ 17"
+.LASF25:
+ .string "__SIZEOF_LONG_LONG__ 8"
+.LASF2274:
+ .string "_MakeUniq<Base>"
+.LASF2152:
+ .string "_ZNSt15__exception_ptr13exception_ptrD4Ev"
+.LASF1435:
+ .string "_CPP_TYPE_TRAITS_H 1"
+.LASF1963:
+ .string "__timer_t_defined 1"
+.LASF2347:
+ .string "tm_zone"
+.LASF350:
+ .string "__FLT64X_MAX_10_EXP__ 4932"
+.LASF2267:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EE4swapERS3_"
+.LASF287:
+ .string "__FLT32_DECIMAL_DIG__ 9"
+.LASF2141:
+ .string "_ZNSt15__exception_ptr13exception_ptr10_M_releaseEv"
+.LASF1607:
+ .string "_GCC_WCHAR_T "
+.LASF1642:
+ .string "fwscanf"
+.LASF2085:
+ .string "_GLIBCXX20_INIT(I) "
+.LASF1667:
+ .string "wcsftime"
+.LASF1378:
+ .string "__glibcxx_want_remove_cvref "
+.LASF480:
+ .string "_GLIBCXX_CONST __attribute__ ((__const__))"
+.LASF934:
+ .string "_GLIBCXX_HAVE_STRTOF 1"
+.LASF469:
+ .string "_GLIBCXX_MEMORY 1"
+.LASF2093:
+ .string "_GLIBCXX_TSAN_MUTEX_POST_UNLOCK(X) "
+.LASF1960:
+ .string "__clock_t_defined 1"
+.LASF116:
+ .string "__cpp_constexpr 201603L"
+.LASF2007:
+ .string "PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_PROCESS"
+.LASF610:
+ .string "_DEFAULT_SOURCE 1"
+.LASF1602:
+ .string "_WCHAR_T_DEFINED_ "
+.LASF1248:
+ .string "__glibcxx_want_span"
+.LASF990:
+ .string "_GLIBCXX11_USE_C99_WCHAR 1"
+.LASF2138:
+ .string "_M_addref"
+.LASF1645:
+ .string "mbrlen"
+.LASF45:
+ .string "__WINT_TYPE__ unsigned int"
+.LASF1024:
+ .string "_GLIBCXX_USE_CHDIR 1"
+.LASF318:
+ .string "__FLT128_MAX_10_EXP__ 4932"
+.LASF836:
+ .string "_GLIBCXX_HAVE_COSL 1"
+.LASF158:
+ .string "__GLIBCXX_BITSIZE_INT_N_0 128"
+.LASF1789:
+ .string "SCHED_NORMAL 0"
+.LASF166:
+ .string "__SIG_ATOMIC_WIDTH__ 32"
+.LASF1205:
+ .string "__glibcxx_want_node_extract"
+.LASF239:
+ .string "__DBL_MAX__ double(1.79769313486231570814527423731704357e+308L)"
+.LASF2381:
+ .string "_ZNKSt15__exception_ptr13exception_ptrcvbEv"
+.LASF2071:
+ .string "_SHARED_PTR_ATOMIC_H 1"
+.LASF1446:
+ .string "__glibcxx_max_digits10"
+.LASF1721:
+ .string "__UQUAD_TYPE unsigned long int"
+.LASF718:
+ .string "__LDBL_REDIR1(name,proto,alias) name proto"
+.LASF216:
+ .string "__FLT_MANT_DIG__ 24"
+.LASF1802:
+ .string "SCHED_FLAG_UTIL_CLAMP_MAX 0x40"
+.LASF1856:
+ .string "CLONE_NEWIPC 0x08000000"
+.LASF1489:
+ .string "_GLIBCXX_MOVE3(_Tp,_Up,_Vp) std::move(_Tp, _Up, _Vp)"
+.LASF673:
+ .string "__glibc_objsize0(__o) __bos0 (__o)"
+.LASF1472:
+ .string "__glibcxx_requires_string(_String) "
+.LASF999:
+ .string "_GLIBCXX_HAS_GTHREADS 1"
+.LASF1526:
+ .string "_WCHAR_H 1"
+.LASF2242:
+ .string "__uniq_ptr_data"
+.LASF1033:
+ .string "_GLIBCXX_USE_GETCWD 1"
+.LASF1561:
+ .string "__HAVE_DISTINCT_FLOAT128X __HAVE_FLOAT128X"
+.LASF2401:
+ .string "_Unwind_Resume"
+.LASF227:
+ .string "__FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F"
+.LASF506:
+ .string "_GLIBCXX23_CONSTEXPR "
+.LASF1735:
+ .string "__INO_T_TYPE __SYSCALL_ULONG_TYPE"
+.LASF972:
+ .string "_GLIBCXX_HAVE_WCSTOF 1"
+.LASF570:
+ .string "__USE_XOPEN2K8XSI"
+.LASF2369:
+ .string "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEC2ILb1ELb1EEEv"
+.LASF107:
+ .string "__cpp_digit_separators 201309L"
+.LASF1835:
+ .string "sched_param"
+.LASF1807:
+ .string "_LINUX_TYPES_H "
+.LASF2102:
+ .string "__glibcxx_want_constexpr_memory "
+.LASF1183:
+ .string "__glibcxx_want_nonmember_container_access"
+.LASF156:
+ .string "__SIZE_WIDTH__ 64"
+.LASF1615:
+ .string "__need___va_list "
+.LASF486:
+ .string "_GLIBCXX_DEPRECATED_SUGGEST(ALT) __attribute__ ((__deprecated__ (\"use '\" ALT \"' instead\")))"
+.LASF1895:
+ .string "CPU_XOR(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, ^)"
+.LASF2226:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEaSERKS4_"
+.LASF1556:
+ .string "__HAVE_DISTINCT_FLOAT16 __HAVE_FLOAT16"
+.LASF1246:
+ .string "__glibcxx_want_remove_cvref"
+.LASF636:
+ .string "__TIMESIZE __WORDSIZE"
+.LASF380:
+ .string "__DEC32_MIN__ 1E-95DF"
+.LASF218:
+ .string "__FLT_MIN_EXP__ (-125)"
+.LASF800:
+ .string "_PSTL_CPP14_MAKE_REVERSE_ITERATOR_PRESENT "
+.LASF355:
+ .string "__FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x"
+.LASF608:
+ .string "_LARGEFILE64_SOURCE 1"
+.LASF975:
+ .string "_GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL 1"
+.LASF2402:
+ .string "__builtin_unwind_resume"
+.LASF36:
+ .string "__BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF1265:
+ .string "__glibcxx_want_atomic_shared_ptr"
+.LASF1511:
+ .string "__cpp_lib_apply 201603L"
+.LASF177:
+ .string "__INT_LEAST8_WIDTH__ 8"
+.LASF2006:
+ .string "PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_SYSTEM"
+.LASF1712:
+ .string "_SCHED_H 1"
+.LASF215:
+ .string "__FLT_RADIX__ 2"
+.LASF182:
+ .string "__INT32_C(c) c"
+.LASF726:
+ .string "__glibc_macro_warning1(message) _Pragma (#message)"
+.LASF264:
+ .string "__LDBL_IS_IEC_60559__ 1"
+.LASF330:
+ .string "__FLT32X_DIG__ 15"
+.LASF1904:
+ .string "CLOCKS_PER_SEC ((__clock_t) 1000000)"
+.LASF1661:
+ .string "wcscat"
+.LASF801:
+ .string "_PSTL_CPP14_INTEGER_SEQUENCE_PRESENT "
+.LASF1178:
+ .string "__glibcxx_raw_memory_algorithms 201606L"
+.LASF2239:
+ .string "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEC4ILb1ELb1EEEv"
+.LASF1241:
+ .string "__glibcxx_want_is_layout_compatible"
+.LASF501:
+ .string "_GLIBCXX_CONSTEXPR constexpr"
+.LASF1924:
+ .string "ADJ_TIMECONST 0x0020"
+.LASF977:
+ .string "_GLIBCXX_LT_OBJDIR \".libs/\""
+.LASF1145:
+ .string "__glibcxx_want_bool_constant"
+.LASF1345:
+ .string "__glibcxx_want_saturation_arithmetic"
+.LASF1728:
+ .string "__STD_TYPE typedef"
+.LASF2259:
+ .string "deleter_type"
+.LASF1126:
+ .string "__glibcxx_make_unique 201304L"
+.LASF484:
+ .string "_GLIBCXX_USE_DEPRECATED 1"
+.LASF2150:
+ .string "_ZNSt15__exception_ptr13exception_ptraSEOS0_"
+.LASF2027:
+ .string "__GTHREAD_MUTEX_INIT PTHREAD_MUTEX_INITIALIZER"
+.LASF2234:
+ .string "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEC4EOS4_"
+.LASF2269:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEaSERKS3_"
+.LASF1778:
+ .string "__BIG_ENDIAN 4321"
+.LASF117:
+ .string "__cpp_if_constexpr 201606L"
+.LASF1342:
+ .string "__glibcxx_want_ranges_concat"
+.LASF1680:
+ .string "wcstol"
+.LASF66:
+ .string "__UINT_LEAST64_TYPE__ long unsigned int"
+.LASF826:
+ .string "_GLIBCXX_HAVE_ATANL 1"
+.LASF320:
+ .string "__FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF520:
+ .string "_GLIBCXX_NAMESPACE_CXX11 __cxx11::"
+.LASF2004:
+ .string "PTHREAD_INHERIT_SCHED PTHREAD_INHERIT_SCHED"
+.LASF1444:
+ .string "__glibcxx_max_exponent10(_Tp) __glibcxx_floating(_Tp, __FLT_MAX_10_EXP__, __DBL_MAX_10_EXP__, __LDBL_MAX_10_EXP__)"
+.LASF383:
+ .string "__DEC32_SUBNORMAL_MIN__ 0.000001E-95DF"
+.LASF579:
+ .string "__KERNEL_STRICT_NAMES"
+.LASF47:
+ .string "__UINTMAX_TYPE__ long unsigned int"
+.LASF549:
+ .string "_GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(A) "
+.LASF1727:
+ .string "__U64_TYPE unsigned long int"
+.LASF329:
+ .string "__FLT32X_MANT_DIG__ 53"
+.LASF770:
+ .string "_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE 1"
+.LASF1365:
+ .string "__glibcxx_want_is_aggregate "
+.LASF1700:
+ .string "_GLIBCXX_REFWRAP_H 1"
+.LASF71:
+ .string "__UINT_FAST8_TYPE__ unsigned char"
+.LASF941:
+ .string "_GLIBCXX_HAVE_SYS_IPC_H 1"
+.LASF906:
+ .string "_GLIBCXX_HAVE_POLL_H 1"
+.LASF2272:
+ .string "_Del"
+.LASF1751:
+ .string "__ID_T_TYPE __U32_TYPE"
+.LASF150:
+ .string "__INT_WIDTH__ 32"
+.LASF1137:
+ .string "__glibcxx_want_any"
+.LASF688:
+ .string "__attribute_alloc_align__(param) __attribute__ ((__alloc_align__ param))"
+.LASF2198:
+ .string "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEE7_M_headERKS3_"
+.LASF58:
+ .string "__UINT64_TYPE__ long unsigned int"
+.LASF2158:
+ .string "_ZSt17rethrow_exceptionNSt15__exception_ptr13exception_ptrE"
+.LASF514:
+ .string "_GLIBCXX_THROW_OR_ABORT(_EXC) (throw (_EXC))"
+.LASF2083:
+ .string "ATOMIC_POINTER_LOCK_FREE __GCC_ATOMIC_POINTER_LOCK_FREE"
+.LASF497:
+ .string "_GLIBCXX26_DEPRECATED "
+.LASF2143:
+ .string "_ZNKSt15__exception_ptr13exception_ptr6_M_getEv"
+.LASF572:
+ .string "__USE_LARGEFILE64"
+.LASF2124:
+ .string "__swappable_details"
+.LASF296:
+ .string "__FLT32_IS_IEC_60559__ 1"
+.LASF1577:
+ .string "_SIZE_T "
+.LASF482:
+ .string "_GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY 1"
+.LASF704:
+ .string "__always_inline __inline __attribute__ ((__always_inline__))"
+.LASF2280:
+ .string "_Nth_type<1, Base*, std::default_delete<Base> >"
+.LASF22:
+ .string "__LP64__ 1"
+.LASF640:
+ .string "__USE_DYNAMIC_STACK_SIZE 1"
+.LASF521:
+ .string "_GLIBCXX_BEGIN_NAMESPACE_CXX11 namespace __cxx11 {"
+.LASF1715:
+ .string "__U16_TYPE unsigned short int"
+.LASF1900:
+ .string "CPU_ALLOC(count) __CPU_ALLOC (count)"
+.LASF785:
+ .string "_PSTL_STRING_AUX(x) #x"
+.LASF699:
+ .string "__nonnull(params) __attribute_nonnull__ (params)"
+.LASF976:
+ .string "_GLIBCXX_ICONV_CONST "
+.LASF179:
+ .string "__INT16_C(c) c"
+.LASF824:
+ .string "_GLIBCXX_HAVE_ATAN2L 1"
+.LASF736:
+ .string "__USE_EXTERN_INLINES 1"
+.LASF451:
+ .string "__SEG_FS 1"
+.LASF689:
+ .string "__attribute_pure__ __attribute__ ((__pure__))"
+.LASF1234:
+ .string "__glibcxx_want_constexpr_string_view"
+.LASF1368:
+ .string "__glibcxx_want_is_invocable "
+.LASF335:
+ .string "__FLT32X_DECIMAL_DIG__ 17"
+.LASF1846:
+ .string "CLONE_NEWNS 0x00020000"
+.LASF796:
+ .string "_PSTL_PRAGMA_SIMD_INCLUSIVE_SCAN(PRM) _PSTL_PRAGMA(omp scan inclusive(PRM))"
+.LASF415:
+ .string "__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2"
+.LASF1618:
+ .string "_VA_LIST_DEFINED "
+.LASF1050:
+ .string "_GLIBCXX_USE_SCHED_YIELD 1"
+.LASF1666:
+ .string "wcscspn"
+.LASF314:
+ .string "__FLT128_DIG__ 33"
+.LASF2333:
+ .string "__isoc23_swscanf"
+.LASF1124:
+ .string "__glibcxx_generic_associative_lookup 201304L"
+.LASF1627:
+ .string "__FILE_defined 1"
+.LASF1280:
+ .string "__glibcxx_want_list_remove_return_type"
+.LASF1022:
+ .string "_GLIBCXX_USE_C99_STDINT 1"
+.LASF518:
+ .string "_GLIBCXX_USE_DUAL_ABI 1"
+.LASF811:
+ .string "_PSTL_PRAGMA_LOCATION \" [Parallel STL message]: \""
+.LASF1589:
+ .string "___int_size_t_h "
+.LASF65:
+ .string "__UINT_LEAST32_TYPE__ unsigned int"
+.LASF1584:
+ .string "_SIZE_T_DEFINED_ "
+.LASF313:
+ .string "__FLT128_MANT_DIG__ 113"
+.LASF1925:
+ .string "ADJ_TAI 0x0080"
+.LASF369:
+ .string "__BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16"
+.LASF2130:
+ .string "size_t"
+.LASF879:
+ .string "_GLIBCXX_HAVE_LIMIT_DATA 1"
+.LASF419:
+ .string "__GCC_ATOMIC_LONG_LOCK_FREE 2"
+.LASF1067:
+ .string "_GLIBCXX_CXX_ALLOCATOR_H 1"
+.LASF1082:
+ .string "__glibcxx_want_is_null_pointer"
+.LASF1917:
+ .string "_BITS_TIMEX_H 1"
+.LASF1698:
+ .string "__GXX_TYPEINFO_EQUALITY_INLINE 1"
+.LASF2327:
+ .string "__count"
+.LASF1753:
+ .string "__TIME_T_TYPE __SYSCALL_SLONG_TYPE"
+.LASF853:
+ .string "_GLIBCXX_HAVE_FINITEL 1"
+.LASF145:
+ .string "__WINT_MIN__ 0U"
+.LASF2037:
+ .string "__GTHREAD_ALWAYS_INLINE"
+.LASF1339:
+ .string "__glibcxx_want_fstream_native_handle"
+.LASF1694:
+ .string "_SHARED_PTR_BASE_H 1"
+.LASF739:
+ .string "__stub_fchflags "
+.LASF2106:
+ .string "__glibcxx_want_parallel_algorithm "
+.LASF1572:
+ .string "__need_size_t "
+.LASF1719:
+ .string "__ULONGWORD_TYPE unsigned long int"
+.LASF1334:
+ .string "__glibcxx_want_to_underlying"
+.LASF393:
+ .string "__DEC128_MAX_EXP__ 6145"
+.LASF2240:
+ .string "__conditional_t"
+.LASF1262:
+ .string "__glibcxx_want_constexpr_algorithms"
+.LASF550:
+ .string "_GLIBCXX_BEGIN_EXTERN_C extern \"C\" {"
+.LASF571:
+ .string "__USE_LARGEFILE"
+.LASF1278:
+ .string "__glibcxx_want_jthread"
+.LASF1165:
+ .string "__glibcxx_want_make_from_tuple"
+.LASF1530:
+ .string "__GLIBC_USE_LIB_EXT2 1"
+.LASF89:
+ .string "__cpp_lambdas 200907L"
+.LASF564:
+ .string "__USE_XOPEN"
+.LASF433:
+ .string "__amd64__ 1"
+.LASF1786:
+ .string "SCHED_OTHER 0"
+.LASF157:
+ .string "__GLIBCXX_TYPE_INT_N_0 __int128"
+.LASF1483:
+ .string "__glibcxx_want_byteswap "
+.LASF588:
+ .string "__GLIBC_USE(F) __GLIBC_USE_ ## F"
+.LASF1063:
+ .string "_GLIBCXX_X86_RDSEED 1"
+.LASF819:
+ .string "_GLIBCXX_HAVE_ARPA_INET_H 1"
+.LASF2336:
+ .string "__isoc23_vwscanf"
+.LASF373:
+ .string "__BFLT16_HAS_DENORM__ 1"
+.LASF1264:
+ .string "__glibcxx_want_constexpr_memory"
+.LASF829:
+ .string "_GLIBCXX_HAVE_C99_FLT_EVAL_TYPES 1"
+.LASF473:
+ .string "__WORDSIZE_TIME64_COMPAT32 1"
+.LASF1831:
+ .string "__aligned_be64 __be64 __attribute__((aligned(8)))"
+.LASF731:
+ .string "__attr_access_none(argno) __attribute__ ((__access__ (__none__, argno)))"
+.LASF1010:
+ .string "_GLIBCXX_USE_C99_COMPLEX_ARC 1"
+.LASF1861:
+ .string "CLONE_NEWTIME 0x00000080"
+.LASF716:
+ .string "__attribute_copy__(arg) __attribute__ ((__copy__ (arg)))"
+.LASF1297:
+ .string "__glibcxx_want_freestanding_variant"
+.LASF1119:
+ .string "__glibcxx_want_to_chars"
+.LASF134:
+ .string "__EXCEPTIONS 1"
+.LASF1910:
+ .string "CLOCK_REALTIME_COARSE 5"
+.LASF94:
+ .string "__cpp_variadic_templates 200704L"
+.LASF1631:
+ .string "WCHAR_MIN __WCHAR_MIN"
+.LASF2244:
+ .string "_ZNSt15__uniq_ptr_dataI4BaseSt14default_deleteIS0_ELb1ELb1EEaSEOS3_"
+.LASF202:
+ .string "__INT_FAST64_WIDTH__ 64"
+.LASF723:
+ .string "__LDBL_REDIR_DECL(name) "
+.LASF1382:
+ .string "__glibcxx_want_type_trait_variable_templates "
+.LASF1398:
+ .string "_GLIBCXX_HAS_NESTED_TYPE(_NTYPE) template<typename _Tp, typename = __void_t<>> struct __has_ ##_NTYPE : false_type { }; template<typename _Tp> struct __has_ ##_NTYPE<_Tp, __void_t<typename _Tp::_NTYPE>> : true_type { };"
+.LASF1330:
+ .string "__glibcxx_want_spanstream"
+.LASF459:
+ .string "unix 1"
+.LASF2355:
+ .string "Base"
+.LASF1965:
+ .string "TIME_UTC 1"
+.LASF1384:
+ .string "__glibcxx_want_void_t "
+.LASF2228:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEE7_M_swapERS4_"
+.LASF125:
+ .string "__cpp_variadic_using 201611L"
+.LASF2382:
+ .string "_ZNSt15__exception_ptr4swapERNS_13exception_ptrES1_"
+.LASF1855:
+ .string "CLONE_NEWUTS 0x04000000"
+.LASF491:
+ .string "_GLIBCXX17_DEPRECATED [[__deprecated__]]"
+.LASF250:
+ .string "__LDBL_MIN_EXP__ (-16381)"
+.LASF1683:
+ .string "wctob"
+.LASF618:
+ .string "__USE_ISOC99 1"
+.LASF1610:
+ .string "_BSD_WCHAR_T_"
+.LASF2374:
+ .string "__dso_handle"
+.LASF1202:
+ .string "__glibcxx_memory_resource 201603L"
+.LASF1641:
+ .string "fwprintf"
+.LASF773:
+ .string "_GLIBCXX_DOXYGEN_ONLY(X) "
+.LASF426:
+ .string "__GCC_HAVE_DWARF2_CFI_ASM 1"
+.LASF950:
+ .string "_GLIBCXX_HAVE_SYS_SYSINFO_H 1"
+.LASF1549:
+ .string "__CFLOAT128 _Complex _Float128"
+.LASF1509:
+ .string "__cpp_lib_tuple_element_t 201402L"
+.LASF2213:
+ .string "_ZNSt10_Head_baseILm0EP4BaseLb0EE7_M_headERS2_"
+.LASF1295:
+ .string "__glibcxx_want_freestanding_optional"
+.LASF1095:
+ .string "__glibcxx_want_coroutine"
+.LASF2190:
+ .string "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC4ESt15allocator_arg_tSt13__uses_alloc0"
+.LASF1870:
+ .string "__CPU_CLR_S(cpu,setsize,cpusetp) (__extension__ ({ size_t __cpu = (cpu); __cpu / 8 < (setsize) ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] &= ~__CPUMASK (__cpu)) : 0; }))"
+.LASF88:
+ .string "__cpp_user_defined_literals 200809L"
+.LASF270:
+ .string "__FLT16_MAX_10_EXP__ 4"
+.LASF1089:
+ .string "__glibcxx_void_t 201411L"
+.LASF104:
+ .string "__cpp_decltype_auto 201304L"
+.LASF995:
+ .string "_GLIBCXX98_USE_C99_WCHAR 1"
+.LASF1074:
+ .string "__glibcxx_want_constexpr_new "
+.LASF918:
+ .string "_GLIBCXX_HAVE_SINF 1"
+.LASF1150:
+ .string "__glibcxx_hardware_interference_size 201703L"
+.LASF1008:
+ .string "_GLIBCXX_USE_C11_UCHAR_CXX11 1"
+.LASF1889:
+ .string "CPU_ZERO_S(setsize,cpusetp) __CPU_ZERO_S (setsize, cpusetp)"
+.LASF2306:
+ .string "__int128 unsigned"
+.LASF632:
+ .string "__USE_XOPEN2K8XSI 1"
+.LASF487:
+ .string "_GLIBCXX11_DEPRECATED _GLIBCXX_DEPRECATED"
+.LASF1540:
+ .string "__GLIBC_USE_IEC_60559_FUNCS_EXT_C23 1"
+.LASF2281:
+ .string "tuple_element<1, std::tuple<Base*, std::default_delete<Base> > >"
+.LASF706:
+ .string "__extern_inline extern __inline __attribute__ ((__gnu_inline__))"
+.LASF1792:
+ .string "SCHED_IDLE 5"
+.LASF2397:
+ .string "__cxa_guard_acquire"
+.LASF2048:
+ .string "_STDDEF_H "
+.LASF1655:
+ .string "vfwscanf"
+.LASF2324:
+ .string "wint_t"
+.LASF394:
+ .string "__DEC128_MIN__ 1E-6143DL"
+.LASF1471:
+ .string "__glibcxx_requires_heap_pred(_First,_Last,_Pred) "
+.LASF592:
+ .string "_ISOC99_SOURCE 1"
+.LASF54:
+ .string "__INT64_TYPE__ long int"
+.LASF1995:
+ .string "PTHREAD_STACK_MIN __sysconf (__SC_THREAD_STACK_MIN_VALUE)"
+.LASF1430:
+ .string "__glibcxx_no_dangling_refs(_U1,_U2) "
+.LASF1071:
+ .string "__glibcxx_want_launder "
+.LASF2016:
+ .string "PTHREAD_ONCE_INIT 0"
+.LASF384:
+ .string "__DEC64_MANT_DIG__ 16"
+.LASF962:
+ .string "_GLIBCXX_HAVE_TRUNCATE 1"
+.LASF1892:
+ .string "CPU_EQUAL_S(setsize,cpusetp1,cpusetp2) __CPU_EQUAL_S (setsize, cpusetp1, cpusetp2)"
+.LASF880:
+ .string "_GLIBCXX_HAVE_LIMIT_FSIZE 1"
+.LASF210:
+ .string "__GCC_IEC_559 2"
+.LASF822:
+ .string "_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1"
+.LASF882:
+ .string "_GLIBCXX_HAVE_LIMIT_VMEM 0"
+.LASF685:
+ .string "__REDIRECT_FORTIFY_NTH __REDIRECT_NTH"
+.LASF566:
+ .string "__USE_UNIX98"
+.LASF1730:
+ .string "__SYSCALL_SLONG_TYPE __SLONGWORD_TYPE"
+.LASF1693:
+ .string "wcstoull"
+.LASF1357:
+ .string "__catch(X) catch(X)"
+.LASF633:
+ .string "__USE_XOPEN2KXSI 1"
+.LASF665:
+ .string "__CONCAT(x,y) x ## y"
+.LASF1801:
+ .string "SCHED_FLAG_UTIL_CLAMP_MIN 0x20"
+.LASF2074:
+ .string "ATOMIC_BOOL_LOCK_FREE __GCC_ATOMIC_BOOL_LOCK_FREE"
+.LASF2224:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEC4ERKS4_"
+.LASF240:
+ .string "__DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L)"
+.LASF274:
+ .string "__FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16"
+.LASF821:
+ .string "_GLIBCXX_HAVE_ASINL 1"
+.LASF1597:
+ .string "_T_WCHAR_ "
+.LASF148:
+ .string "__SCHAR_WIDTH__ 8"
+.LASF740:
+ .string "__stub_gtty "
+.LASF1808:
+ .string "_ASM_GENERIC_TYPES_H "
+.LASF1745:
+ .string "__BLKCNT_T_TYPE __SYSCALL_SLONG_TYPE"
+.LASF35:
+ .string "__ORDER_PDP_ENDIAN__ 3412"
+.LASF1725:
+ .string "__ULONG32_TYPE unsigned int"
+.LASF15:
+ .string "__ATOMIC_ACQUIRE 2"
+.LASF1323:
+ .string "__glibcxx_want_formatters"
+.LASF1518:
+ .string "_Cxx_hashtable_define_trivial_hash(_Tp) template<> struct hash<_Tp> : public __hash_base<size_t, _Tp> { size_t operator()(_Tp __val) const noexcept { return static_cast<size_t>(__val); } };"
+.LASF1019:
+ .string "_GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1"
+.LASF1992:
+ .string "_SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int)))"
+.LASF1687:
+ .string "wmemmove"
+.LASF1314:
+ .string "__glibcxx_want_ranges_fold"
+.LASF1638:
+ .string "fputwc"
+.LASF2179:
+ .string "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE5resetEPS0_"
+.LASF505:
+ .string "_GLIBCXX20_CONSTEXPR "
+.LASF1587:
+ .string "_SIZE_T_DECLARED "
+.LASF1405:
+ .string "_GLIBCXX_SIZED_DEALLOC"
+.LASF1848:
+ .string "CLONE_SETTLS 0x00080000"
+.LASF1550:
+ .string "_BITS_FLOATN_COMMON_H "
+.LASF1048:
+ .string "_GLIBCXX_USE_RANDOM_TR1 1"
+.LASF1639:
+ .string "fputws"
+.LASF485:
+ .string "_GLIBCXX_DEPRECATED __attribute__ ((__deprecated__))"
+.LASF745:
+ .string "_GLIBCXX_HAVE_GETS"
+.LASF1175:
+ .string "__glibcxx_want_gcd"
+.LASF91:
+ .string "__cpp_attributes 200809L"
+.LASF1128:
+ .string "__glibcxx_quoted_string_io 201304L"
+.LASF1936:
+ .string "MOD_STATUS ADJ_STATUS"
+.LASF1331:
+ .string "__glibcxx_want_stacktrace"
+.LASF2229:
+ .string "_Elements"
+.LASF183:
+ .string "__INT_LEAST32_WIDTH__ 32"
+.LASF2268:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEC4ERKS3_"
+.LASF776:
+ .string "_PSTL_ASSERT(_Condition) __glibcxx_assert(_Condition)"
+.LASF766:
+ .string "_GLIBCXX_FLOAT_IS_IEEE_BINARY32 1"
+.LASF924:
+ .string "_GLIBCXX_HAVE_SQRTL 1"
+.LASF1210:
+ .string "__glibcxx_shared_mutex 201505L"
+.LASF1495:
+ .string "_STL_RAW_STORAGE_ITERATOR_H 1"
+.LASF1956:
+ .string "STA_NANO 0x2000"
+.LASF1817:
+ .string "__struct_group(TAG,NAME,ATTRS,MEMBERS...) union { struct { MEMBERS } ATTRS; struct __struct_group_tag(TAG) { MEMBERS } ATTRS NAME; } ATTRS"
+.LASF496:
+ .string "_GLIBCXX23_DEPRECATED_SUGGEST(ALT) "
+.LASF1823:
+ .string "_ASM_X86_POSIX_TYPES_64_H "
+.LASF265:
+ .string "__FLT16_MANT_DIG__ 11"
+.LASF1213:
+ .string "__glibcxx_want_shared_ptr_weak_type"
+.LASF1613:
+ .string "NULL __null"
+.LASF2287:
+ .string "__get_helper<0, Base*, std::default_delete<Base> >"
+.LASF1431:
+ .string "_GLIBCXX_DEPRECATED_PAIR_CTOR __attribute__ ((__deprecated__ (\"use 'nullptr' instead of '0' to \" \"initialize std::pair of move-only \" \"type and pointer\")))"
+.LASF585:
+ .string "__KERNEL_STRICT_NAMES "
+.LASF163:
+ .string "__INTMAX_WIDTH__ 64"
+.LASF1292:
+ .string "__glibcxx_want_freestanding_array"
+.LASF1830:
+ .string "__aligned_s64 __s64 __attribute__((aligned(8)))"
+.LASF686:
+ .string "__attribute_malloc__ __attribute__ ((__malloc__))"
+.LASF1501:
+ .string "__glibcxx_want_constexpr_tuple "
+.LASF784:
+ .string "_PSTL_PRAGMA(x) _Pragma(#x)"
+.LASF1907:
+ .string "CLOCK_PROCESS_CPUTIME_ID 2"
+.LASF1386:
+ .string "__cpp_lib_result_of_sfinae 201210L"
+.LASF641:
+ .string "__USE_GNU 1"
+.LASF987:
+ .string "_GLIBCXX11_USE_C99_MATH 1"
+.LASF1181:
+ .string "__glibcxx_want_array_constexpr"
+.LASF1662:
+ .string "wcschr"
+.LASF984:
+ .string "_GLIBCXX_STDC_HEADERS 1"
+.LASF2173:
+ .string "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE6_M_ptrEv"
+.LASF2249:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEC4EOS3_"
+.LASF1821:
+ .string "__counted_by_be(m) "
+.LASF1975:
+ .string "__SIZEOF_PTHREAD_COND_T 48"
+.LASF13:
+ .string "__ATOMIC_RELAXED 0"
+.LASF161:
+ .string "__UINTMAX_MAX__ 0xffffffffffffffffUL"
+.LASF887:
+ .string "_GLIBCXX_HAVE_LINUX_TYPES_H 1"
+.LASF467:
+ .string "__STDC_IEC_60559_COMPLEX__ 201404L"
+.LASF108:
+ .string "__cpp_unicode_characters 201411L"
+.LASF965:
+ .string "_GLIBCXX_HAVE_UNLINKAT 1"
+.LASF646:
+ .string "__GNU_LIBRARY__"
+.LASF2386:
+ .string "_ZNSt15__uniq_ptr_dataI4BaseSt14default_deleteIS0_ELb1ELb1EECI4St15__uniq_ptr_implIS0_S2_EEPS0_"
+.LASF1352:
+ .string "_GLIBCXX_PLACEMENT_CONSTEXPR inline"
+.LASF639:
+ .string "__USE_ATFILE 1"
+.LASF404:
+ .string "__DEC64X_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143D64x"
+.LASF2245:
+ .string "add_lvalue_reference<Base>"
+.LASF2042:
+ .string "_CONCURRENCE_H 1"
+.LASF1419:
+ .string "__glibcxx_class_requires3(_a,_b,_c,_d) "
+.LASF867:
+ .string "_GLIBCXX_HAVE_ICONV 1"
+.LASF2039:
+ .string "_GLIBCXX_READ_MEM_BARRIER __atomic_thread_fence (__ATOMIC_ACQUIRE)"
+.LASF1829:
+ .string "__aligned_u64 __u64 __attribute__((aligned(8)))"
+.LASF522:
+ .string "_GLIBCXX_END_NAMESPACE_CXX11 }"
+.LASF1161:
+ .string "__glibcxx_want_launder"
+.LASF805:
+ .string "_PSTL_PRAGMA_SIMD_EARLYEXIT "
+.LASF231:
+ .string "__FLT_IS_IEC_60559__ 1"
+.LASF755:
+ .string "_GLIBCXX_TXN_SAFE "
+.LASF1920:
+ .string "ADJ_FREQUENCY 0x0002"
+.LASF798:
+ .string "_PSTL_CPP17_EXECUTION_POLICIES_PRESENT (_MSC_VER >= 1912 && _MSVC_LANG >= 201703L) || (_GLIBCXX_RELEASE >= 9 && __GLIBCXX__ >= 20190503 && __cplusplus >= 201703L)"
+.LASF2392:
+ .string "decltype(nullptr)"
+.LASF860:
+ .string "_GLIBCXX_HAVE_FREXPL 1"
+.LASF2363:
+ .string "this"
+.LASF589:
+ .string "_ISOC95_SOURCE"
+.LASF1015:
+ .string "_GLIBCXX_USE_C99_FENV_TR1 1"
+.LASF1803:
+ .string "SCHED_FLAG_KEEP_ALL (SCHED_FLAG_KEEP_POLICY | SCHED_FLAG_KEEP_PARAMS)"
+.LASF1996:
+ .string "PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE"
+.LASF1190:
+ .string "__glibcxx_chrono 201611L"
+.LASF376:
+ .string "__BFLT16_IS_IEC_60559__ 0"
+.LASF1028:
+ .string "_GLIBCXX_USE_DECIMAL_FLOAT 1"
+.LASF1842:
+ .string "CLONE_PTRACE 0x00002000"
+.LASF2379:
+ .string "dwarf.cc"
+.LASF1312:
+ .string "__glibcxx_want_ranges_as_const"
+.LASF197:
+ .string "__INT_FAST16_MAX__ 0x7fffffffffffffffL"
+.LASF1744:
+ .string "__RLIM64_T_TYPE __UQUAD_TYPE"
+.LASF1387:
+ .string "__cpp_lib_is_swappable 201603L"
+.LASF774:
+ .string "_GLIBCXX_USE_TBB_PAR_BACKEND __has_include(<tbb/tbb.h>)"
+.LASF1800:
+ .string "SCHED_FLAG_KEEP_PARAMS 0x10"
+.LASF978:
+ .string "_GLIBCXX_PACKAGE_BUGREPORT \"\""
+.LASF652:
+ .string "__PMT"
+.LASF2230:
+ .string "__conditional<true>"
+.LASF1608:
+ .string "_WCHAR_T_DECLARED "
+.LASF1537:
+ .string "__GLIBC_USE_IEC_60559_FUNCS_EXT"
+.LASF16:
+ .string "__ATOMIC_RELEASE 3"
+.LASF170:
+ .string "__INT64_MAX__ 0x7fffffffffffffffL"
+.LASF2265:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EE7releaseEv"
+.LASF1053:
+ .string "_GLIBCXX_USE_STRUCT_TM_TM_ZONE 1"
+.LASF1979:
+ .string "__LOCK_ALIGNMENT "
+.LASF994:
+ .string "_GLIBCXX98_USE_C99_STDLIB 1"
+.LASF448:
+ .string "__SSE_MATH__ 1"
+.LASF1581:
+ .string "__SIZE_T "
+.LASF1514:
+ .string "_STL_FUNCTION_H 1"
+.LASF2273:
+ .string "__detail"
+.LASF1271:
+ .string "__glibcxx_want_constexpr_dynamic_alloc"
+.LASF1199:
+ .string "__glibcxx_want_map_try_emplace"
+.LASF8:
+ .string "__GNUC__ 15"
+.LASF200:
+ .string "__INT_FAST32_WIDTH__ 64"
+.LASF536:
+ .string "_GLIBCXX_CLANG"
+.LASF1498:
+ .string "_UNIQUE_PTR_H 1"
+.LASF463:
+ .string "_STDC_PREDEF_H 1"
+.LASF1824:
+ .string "__kernel_old_uid_t __kernel_old_uid_t"
+.LASF476:
+ .string "_GLIBCXX_RELEASE 15"
+.LASF2187:
+ .string "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC4ERKS2_"
+.LASF997:
+ .string "_GLIBCXX_CAN_ALIGNAS_DESTRUCTIVE_SIZE 1"
+.LASF370:
+ .string "__BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16"
+.LASF1473:
+ .string "__glibcxx_requires_string_len(_String,_Len) "
+.LASF1588:
+ .string "__DEFINED_size_t "
+.LASF2032:
+ .string "__GTHREAD_TIME_INIT {0,0}"
+.LASF247:
+ .string "__DBL_IS_IEC_60559__ 1"
+.LASF325:
+ .string "__FLT128_HAS_DENORM__ 1"
+.LASF1927:
+ .string "ADJ_MICRO 0x1000"
+.LASF837:
+ .string "_GLIBCXX_HAVE_DECL_STRNLEN 1"
+.LASF1281:
+ .string "__glibcxx_want_polymorphic_allocator"
+.LASF430:
+ .string "__SIZEOF_WINT_T__ 4"
+.LASF2056:
+ .string "_BSD_PTRDIFF_T_ "
+.LASF2118:
+ .string "__cpp_lib_make_unique 201304L"
+.LASF2282:
+ .string "__get_helper<1, std::default_delete<Base> >"
+.LASF1432:
+ .string "_GLIBCXX_DEPRECATED_PAIR_CTOR"
+.LASF2261:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EE11get_deleterEv"
+.LASF979:
+ .string "_GLIBCXX_PACKAGE_NAME \"package-unused\""
+.LASF1546:
+ .string "__HAVE_FLOAT64X 1"
+.LASF477:
+ .string "__GLIBCXX__"
+.LASF2095:
+ .string "_GLIBCXX_TSAN_MUTEX_POST_SIGNAL(X) "
+.LASF1412:
+ .string "_GLIBCXX26_DEF_VAL_T(T) "
+.LASF111:
+ .string "__cpp_enumerator_attributes 201411L"
+.LASF1758:
+ .string "__KEY_T_TYPE __S32_TYPE"
+.LASF1192:
+ .string "__glibcxx_execution 201902L"
+.LASF1926:
+ .string "ADJ_SETOFFSET 0x0100"
+.LASF139:
+ .string "__INT_MAX__ 0x7fffffff"
+.LASF1148:
+ .string "__glibcxx_has_unique_object_representations 201606L"
+.LASF2352:
+ .string "__isoc23_wcstoull"
+.LASF513:
+ .string "_GLIBCXX_NOTHROW _GLIBCXX_USE_NOEXCEPT"
+.LASF2367:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEC2Ev"
+.LASF1122:
+ .string "__glibcxx_complex_udls 201309L"
+.LASF59:
+ .string "__INT_LEAST8_TYPE__ signed char"
+.LASF1598:
+ .string "_T_WCHAR "
+.LASF516:
+ .string "_GLIBCXX_NOEXCEPT_QUAL noexcept (_NE)"
+.LASF606:
+ .string "_XOPEN_SOURCE_EXTENDED 1"
+.LASF2396:
+ .string "execution"
+.LASF446:
+ .string "__SSE2__ 1"
+.LASF1445:
+ .string "__glibcxx_floating"
+.LASF1596:
+ .string "_WCHAR_T "
+.LASF2215:
+ .string "_Tuple_impl<0, Base*, std::default_delete<Base> >"
+.LASF1718:
+ .string "__SLONGWORD_TYPE long int"
+.LASF1886:
+ .string "CPU_SET_S(cpu,setsize,cpusetp) __CPU_SET_S (cpu, setsize, cpusetp)"
+.LASF2188:
+ .string "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC4ERKS3_"
+.LASF856:
+ .string "_GLIBCXX_HAVE_FLOORL 1"
+.LASF1508:
+ .string "__glibcxx_want_constrained_equality "
+.LASF312:
+ .string "__FLT64_IS_IEC_60559__ 1"
+.LASF258:
+ .string "__LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L"
+.LASF429:
+ .string "__SIZEOF_WCHAR_T__ 4"
+.LASF791:
+ .string "_PSTL_PRAGMA_SIMD _PSTL_PRAGMA(omp simd)"
+.LASF212:
+ .string "__FLT_EVAL_METHOD__ 0"
+.LASF1217:
+ .string "__glibcxx_want_unordered_map_try_emplace"
+.LASF648:
+ .string "__GLIBC__ 2"
+.LASF366:
+ .string "__BFLT16_MAX_10_EXP__ 38"
+.LASF1406:
+ .string "_GLIBCXX_OPERATOR_DELETE"
+.LASF167:
+ .string "__INT8_MAX__ 0x7f"
+.LASF1941:
+ .string "MOD_MICRO ADJ_MICRO"
+.LASF1913:
+ .string "CLOCK_REALTIME_ALARM 8"
+.LASF1600:
+ .string "_WCHAR_T_ "
+.LASF524:
+ .string "_GLIBCXX_INLINE_VERSION 0"
+.LASF912:
+ .string "_GLIBCXX_HAVE_READLINK 1"
+.LASF540:
+ .string "_GLIBCXX_END_NAMESPACE_LDBL "
+.LASF1227:
+ .string "__glibcxx_want_bit_cast"
+.LASF1034:
+ .string "_GLIBCXX_USE_GETTIMEOFDAY 1"
+.LASF2377:
+ .string "_Z4funcv"
+.LASF1349:
+ .string "__glibcxx_want_to_string"
+.LASF1652:
+ .string "swscanf"
+.LASF555:
+ .string "_FEATURES_H 1"
+.LASF663:
+ .string "__P(args) args"
+.LASF1938:
+ .string "MOD_CLKB ADJ_TICK"
+.LASF2387:
+ .string "_ZNKSt10unique_ptrI4BaseSt14default_deleteIS0_EE3getEv"
+.LASF1562:
+ .string "__HAVE_FLOAT128_UNLIKE_LDBL (__HAVE_DISTINCT_FLOAT128 && __LDBL_MANT_DIG__ != 113)"
+.LASF2128:
+ .string "__uses_alloc0"
+.LASF974:
+ .string "_GLIBCXX_HAVE_WRITEV 1"
+.LASF136:
+ .string "__GXX_ABI_VERSION 1020"
+.LASF118:
+ .string "__cpp_capture_star_this 201603L"
+.LASF1003:
+ .string "_GLIBCXX_STDIO_EOF -1"
+.LASF2384:
+ .string "__nothrow_default_constructible"
+.LASF1578:
+ .string "_SYS_SIZE_T_H "
+.LASF1743:
+ .string "__RLIM_T_TYPE __SYSCALL_ULONG_TYPE"
+.LASF275:
+ .string "__FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16"
+.LASF1041:
+ .string "_GLIBCXX_USE_NANOSLEEP 1"
+.LASF888:
+ .string "_GLIBCXX_HAVE_LOCALE_H 1"
+.LASF1056:
+ .string "_GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_CXX20 1"
+.LASF747:
+ .string "_GLIBCXX_HAVE_FLOAT128_MATH 1"
+.LASF1337:
+ .string "__glibcxx_want_algorithm_default_value_type"
+.LASF2216:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEE7_M_headERS4_"
+.LASF1055:
+ .string "_GLIBCXX_USE_TMPNAM 1"
+.LASF304:
+ .string "__FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF327:
+ .string "__FLT128_HAS_QUIET_NAN__ 1"
+.LASF1755:
+ .string "__SUSECONDS_T_TYPE __SYSCALL_SLONG_TYPE"
+.LASF936:
+ .string "_GLIBCXX_HAVE_STRUCT_DIRENT_D_TYPE 1"
+.LASF434:
+ .string "__x86_64 1"
+.LASF893:
+ .string "_GLIBCXX_HAVE_LSEEK 1"
+.LASF1812:
+ .string "__ASM_GENERIC_BITS_PER_LONG "
+.LASF2237:
+ .string "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEE4swapERS4_"
+.LASF1454:
+ .string "_GLIBCXX_MAKE_MOVE_ITERATOR(_Iter) std::make_move_iterator(_Iter)"
+.LASF1978:
+ .string "__SIZEOF_PTHREAD_BARRIERATTR_T 4"
+.LASF1005:
+ .string "_GLIBCXX_STDIO_SEEK_END 2"
+.LASF1185:
+ .string "__glibcxx_want_clamp"
+.LASF2008:
+ .string "PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE"
+.LASF578:
+ .string "__USE_FORTIFY_LEVEL"
+.LASF1543:
+ .string "_BITS_FLOATN_H "
+.LASF2009:
+ .string "PTHREAD_PROCESS_SHARED PTHREAD_PROCESS_SHARED"
+.LASF114:
+ .string "__cpp_nontype_template_args 201411L"
+.LASF809:
+ .string "_PSTL_PRAGMA_VECTOR_UNALIGNED "
+.LASF1689:
+ .string "wprintf"
+.LASF2338:
+ .string "tm_min"
+.LASF2111:
+ .string "__glibcxx_want_smart_ptr_for_overwrite "
+.LASF1884:
+ .string "CPU_ZERO(cpusetp) __CPU_ZERO_S (sizeof (cpu_set_t), cpusetp)"
+.LASF1754:
+ .string "__USECONDS_T_TYPE __U32_TYPE"
+.LASF2247:
+ .string "unique_ptr<Base, std::default_delete<Base> >"
+.LASF1968:
+ .string "_THREAD_SHARED_TYPES_H 1"
+.LASF949:
+ .string "_GLIBCXX_HAVE_SYS_STAT_H 1"
+.LASF1211:
+ .string "__glibcxx_want_shared_mutex"
+.LASF1822:
+ .string "__FD_SETSIZE"
+.LASF1962:
+ .string "__clockid_t_defined 1"
+.LASF595:
+ .string "_ISOC23_SOURCE"
+.LASF569:
+ .string "__USE_XOPEN2K8"
+.LASF892:
+ .string "_GLIBCXX_HAVE_LOGL 1"
+.LASF2236:
+ .string "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEaSEOS4_"
+.LASF1663:
+ .string "wcscmp"
+.LASF1186:
+ .string "__glibcxx_sample 201603L"
+.LASF815:
+ .string "_GLIBCXX_HAVE_ACOSF 1"
+.LASF1614:
+ .string "__need_NULL"
+.LASF2063:
+ .string "offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)"
+.LASF1504:
+ .string "__glibcxx_want_apply "
+.LASF583:
+ .string "__GLIBC_USE_DEPRECATED_SCANF"
+.LASF2091:
+ .string "_GLIBCXX_TSAN_MUTEX_LOCKED(X) "
+.LASF474:
+ .string "__SYSCALL_WORDSIZE 64"
+.LASF1505:
+ .string "__glibcxx_want_make_from_tuple "
+.LASF2321:
+ .string "fp_offset"
+.LASF1496:
+ .string "_GLIBCXX_ALIGN_H 1"
+.LASF378:
+ .string "__DEC32_MIN_EXP__ (-94)"
+.LASF1243:
+ .string "__glibcxx_want_is_pointer_interconvertible"
+.LASF1171:
+ .string "__glibcxx_want_variant"
+.LASF1648:
+ .string "mbsrtowcs"
+.LASF2142:
+ .string "_M_get"
+.LASF1224:
+ .string "__glibcxx_want_bind_front"
+.LASF408:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1"
+.LASF1442:
+ .string "__glibcxx_max_digits10(_Tp) (2 + __glibcxx_floating(_Tp, __FLT_MANT_DIG__, __DBL_MANT_DIG__, __LDBL_MANT_DIG__) * 643L / 2136)"
+.LASF2320:
+ .string "gp_offset"
+.LASF862:
+ .string "_GLIBCXX_HAVE_GETIPINFO 1"
+.LASF671:
+ .string "__bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)"
+.LASF1841:
+ .string "CLONE_PIDFD 0x00001000"
+.LASF1404:
+ .string "_GLIBCXX_SIZED_DEALLOC(p,n) (p), (n) * sizeof(_Tp)"
+.LASF925:
+ .string "_GLIBCXX_HAVE_STACKTRACE 1"
+.LASF623:
+ .string "__USE_POSIX199309 1"
+.LASF57:
+ .string "__UINT32_TYPE__ unsigned int"
+.LASF756:
+ .string "_GLIBCXX_TXN_SAFE_DYN "
+.LASF927:
+ .string "_GLIBCXX_HAVE_STDBOOL_H 1"
+.LASF691:
+ .string "__attribute_maybe_unused__ __attribute__ ((__unused__))"
+.LASF346:
+ .string "__FLT64X_DIG__ 18"
+.LASF140:
+ .string "__LONG_MAX__ 0x7fffffffffffffffL"
+.LASF1772:
+ .string "__TIME64_T_TYPE __TIME_T_TYPE"
+.LASF2311:
+ .string "__int128"
+.LASF2178:
+ .string "reset"
+.LASF1906:
+ .string "CLOCK_MONOTONIC 1"
+.LASF2314:
+ .string "char32_t"
+.LASF1506:
+ .string "__glibcxx_want_ranges_zip "
+.LASF2344:
+ .string "tm_yday"
+.LASF2199:
+ .string "_Tuple_impl"
+.LASF1647:
+ .string "mbsinit"
+.LASF253:
+ .string "__LDBL_MAX_10_EXP__ 4932"
+.LASF1163:
+ .string "__glibcxx_want_logical_traits"
+.LASF1863:
+ .string "_BITS_CPU_SET_H 1"
+.LASF128:
+ .string "__cpp_sized_deallocation 201309L"
+.LASF389:
+ .string "__DEC64_EPSILON__ 1E-15DD"
+.LASF1482:
+ .string "__glibcxx_want_bit_cast "
+.LASF827:
+ .string "_GLIBCXX_HAVE_ATOMIC_LOCK_POLICY 1"
+.LASF1184:
+ .string "__glibcxx_clamp 201603L"
+.LASF1832:
+ .string "__aligned_le64 __le64 __attribute__((aligned(8)))"
+.LASF123:
+ .string "__cpp_template_auto 201606L"
+.LASF1949:
+ .string "STA_UNSYNC 0x0040"
+.LASF2151:
+ .string "~exception_ptr"
+.LASF2075:
+ .string "ATOMIC_CHAR_LOCK_FREE __GCC_ATOMIC_CHAR_LOCK_FREE"
+.LASF1890:
+ .string "CPU_COUNT_S(setsize,cpusetp) __CPU_COUNT_S (setsize, cpusetp)"
+.LASF1226:
+ .string "__glibcxx_want_starts_ends_with"
+.LASF2116:
+ .string "__cpp_lib_enable_shared_from_this 201603L"
+.LASF379:
+ .string "__DEC32_MAX_EXP__ 97"
+.LASF1740:
+ .string "__OFF_T_TYPE __SYSCALL_SLONG_TYPE"
+.LASF344:
+ .string "__FLT32X_IS_IEC_60559__ 1"
+.LASF495:
+ .string "_GLIBCXX23_DEPRECATED "
+.LASF2349:
+ .string "__isoc23_wcstoul"
+.LASF1376:
+ .string "__glibcxx_want_logical_traits "
+.LASF1266:
+ .string "__glibcxx_want_atomic_wait"
+.LASF2193:
+ .string "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EE7_M_headERKS3_"
+.LASF1466:
+ .string "__glibcxx_requires_partitioned_lower(_First,_Last,_Value) "
+.LASF1253:
+ .string "__glibcxx_want_type_identity"
+.LASF2262:
+ .string "_ZNKSt10unique_ptrI4BaseSt14default_deleteIS0_EE11get_deleterEv"
+.LASF1115:
+ .string "__glibcxx_want_tuples_by_type"
+.LASF462:
+ .string "_GNU_SOURCE 1"
+.LASF323:
+ .string "__FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128"
+.LASF428:
+ .string "__SIZEOF_INT128__ 16"
+.LASF1611:
+ .string "__need_wchar_t"
+.LASF328:
+ .string "__FLT128_IS_IEC_60559__ 1"
+.LASF1013:
+ .string "_GLIBCXX_USE_C99_CTYPE_TR1 1"
+.LASF2307:
+ .string "signed char"
+.LASF761:
+ .string "_GLIBCXX_USE_C99_COMPLEX _GLIBCXX11_USE_C99_COMPLEX"
+.LASF1288:
+ .string "__glibcxx_want_constexpr_typeinfo"
+.LASF763:
+ .string "_GLIBCXX_USE_C99_STDLIB _GLIBCXX11_USE_C99_STDLIB"
+.LASF1377:
+ .string "__glibcxx_want_reference_from_temporary "
+.LASF437:
+ .string "__SIZEOF_FLOAT128__ 16"
+.LASF1575:
+ .string "__size_t__ "
+.LASF12:
+ .string "__GNUC_RH_RELEASE__ 1"
+.LASF625:
+ .string "__USE_XOPEN2K 1"
+.LASF1029:
+ .string "_GLIBCXX_USE_DEV_RANDOM 1"
+.LASF1393:
+ .string "__cpp_lib_has_unique_object_representations 201606L"
+.LASF1320:
+ .string "__glibcxx_want_adaptor_iterator_pair_constructor"
+.LASF986:
+ .string "_GLIBCXX11_USE_C99_COMPLEX 1"
+.LASF1604:
+ .string "_WCHAR_T_H "
+.LASF358:
+ .string "__FLT64X_HAS_INFINITY__ 1"
+.LASF1932:
+ .string "MOD_OFFSET ADJ_OFFSET"
+.LASF692:
+ .string "__attribute_used__ __attribute__ ((__used__))"
+.LASF1114:
+ .string "__glibcxx_tuples_by_type 201304L"
+.LASF1030:
+ .string "_GLIBCXX_USE_FCHMOD 1"
+.LASF31:
+ .string "__CHAR_BIT__ 8"
+.LASF605:
+ .string "_XOPEN_SOURCE_EXTENDED"
+.LASF1651:
+ .string "swprintf"
+.LASF2146:
+ .string "_ZNSt15__exception_ptr13exception_ptrC4EDn"
+.LASF1293:
+ .string "__glibcxx_want_freestanding_cstring"
+.LASF1542:
+ .string "__GLIBC_USE_IEC_60559_TYPES_EXT 1"
+.LASF2248:
+ .string "unique_ptr"
+.LASF1943:
+ .string "STA_PLL 0x0001"
+.LASF2065:
+ .string "_GXX_NULLPTR_T "
+.LASF737:
+ .string "__stub___compat_bdflush "
+.LASF2160:
+ .string "default_delete"
+.LASF935:
+ .string "_GLIBCXX_HAVE_STRTOLD 1"
+.LASF2013:
+ .string "PTHREAD_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED"
+.LASF1809:
+ .string "_ASM_GENERIC_INT_LL64_H "
+.LASF1988:
+ .string "__ONCE_FLAG_INIT { 0 }"
+.LASF2277:
+ .string "_Nth_type<0, Base*, std::default_delete<Base> >"
+.LASF1658:
+ .string "vwprintf"
+.LASF1565:
+ .string "__f64(x) x ##f64"
+.LASF2350:
+ .string "__isoc23_wscanf"
+.LASF1583:
+ .string "_BSD_SIZE_T_ "
+.LASF710:
+ .string "__va_arg_pack_len() __builtin_va_arg_pack_len ()"
+.LASF1955:
+ .string "STA_CLOCKERR 0x1000"
+.LASF2019:
+ .string "__cleanup_fct_attribute "
+.LASF1424:
+ .string "__glibcxx_requires_nonempty() __glibcxx_assert(!this->empty())"
+.LASF694:
+ .string "__attribute_deprecated__ __attribute__ ((__deprecated__))"
+.LASF53:
+ .string "__INT32_TYPE__ int"
+.LASF1967:
+ .string "_BITS_PTHREADTYPES_COMMON_H 1"
+.LASF79:
+ .string "__GXX_RTTI 1"
+.LASF1007:
+ .string "_GLIBCXX_SYMVER_GNU 1"
+.LASF668:
+ .string "__BEGIN_DECLS extern \"C\" {"
+.LASF1665:
+ .string "wcscpy"
+.LASF584:
+ .string "__GLIBC_USE_C23_STRTOL"
+.LASF2312:
+ .string "wchar_t"
+.LASF1656:
+ .string "vswprintf"
+.LASF1493:
+ .string "_EXT_ALLOC_TRAITS_H 1"
+.LASF424:
+ .string "__GCC_ATOMIC_POINTER_LOCK_FREE 2"
+.LASF1649:
+ .string "putwc"
+.LASF1708:
+ .string "_GLIBCXX_GCC_GTHR_POSIX_H "
+.LASF1020:
+ .string "_GLIBCXX_USE_C99_MATH_FUNCS 1"
+.LASF1214:
+ .string "__glibcxx_string_view 201803L"
+.LASF1554:
+ .string "__HAVE_FLOAT32X 1"
+.LASF895:
+ .string "_GLIBCXX_HAVE_MEMALIGN 1"
+.LASF851:
+ .string "_GLIBCXX_HAVE_FINITE 1"
+.LASF286:
+ .string "__FLT32_MAX_10_EXP__ 38"
+.LASF1768:
+ .string "__STATFS_MATCHES_STATFS64 1"
+.LASF1417:
+ .string "__glibcxx_class_requires(_a,_b) "
+.LASF307:
+ .string "__FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64"
+.LASF1828:
+ .string "__bitwise__ __bitwise"
+.LASF1443:
+ .string "__glibcxx_digits10(_Tp) __glibcxx_floating(_Tp, __FLT_DIG__, __DBL_DIG__, __LDBL_DIG__)"
+.LASF1966:
+ .string "__isleap(year) ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))"
+.LASF386:
+ .string "__DEC64_MAX_EXP__ 385"
+.LASF864:
+ .string "_GLIBCXX_HAVE_HYPOT 1"
+.LASF814:
+ .string "_PSTL_PRAGMA_MESSAGE_POLICIES(x) "
+.LASF93:
+ .string "__cpp_rvalue_references 200610L"
+.LASF2162:
+ .string "operator()"
+.LASF931:
+ .string "_GLIBCXX_HAVE_STRERROR_R 1"
+.LASF1595:
+ .string "__WCHAR_T__ "
+.LASF102:
+ .string "__cpp_init_captures 201304L"
+.LASF207:
+ .string "__INTPTR_MAX__ 0x7fffffffffffffffL"
+.LASF2251:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED4Ev"
+.LASF261:
+ .string "__LDBL_HAS_DENORM__ 1"
+.LASF1422:
+ .string "__glibcxx_requires_non_empty_range(_First,_Last) __glibcxx_assert(_First != _Last)"
+.LASF593:
+ .string "_ISOC11_SOURCE"
+.LASF2050:
+ .string "_ANSI_STDDEF_H "
+.LASF1058:
+ .string "_GLIBCXX_USE_UTIME 1"
+.LASF543:
+ .string "_GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_END_NAMESPACE_CXX11"
+.LASF1959:
+ .string "STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)"
+.LASF656:
+ .string "__LEAF , __leaf__"
+.LASF1952:
+ .string "STA_PPSJITTER 0x0200"
+.LASF2330:
+ .string "mbstate_t"
+.LASF1011:
+ .string "_GLIBCXX_USE_C99_COMPLEX_TR1 1"
+.LASF481:
+ .string "_GLIBCXX_NORETURN __attribute__ ((__noreturn__))"
+.LASF771:
+ .string "_GLIBCXX_HAVE_BUILTIN_LAUNDER 1"
+.LASF1893:
+ .string "CPU_AND(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, &)"
+.LASF1052:
+ .string "_GLIBCXX_USE_SENDFILE 1"
+.LASF418:
+ .string "__GCC_ATOMIC_INT_LOCK_FREE 2"
+.LASF192:
+ .string "__UINT32_C(c) c ## U"
+.LASF301:
+ .string "__FLT64_MAX_EXP__ 1024"
+.LASF2100:
+ .string "__glibcxx_want_atomic_value_initialization "
+.LASF2343:
+ .string "tm_wday"
+.LASF199:
+ .string "__INT_FAST32_MAX__ 0x7fffffffffffffffL"
+.LASF1513:
+ .string "__glibcxx_no_dangling_refs(U) "
+.LASF1247:
+ .string "__glibcxx_want_source_location"
+.LASF2109:
+ .string "__glibcxx_want_shared_ptr_arrays "
+.LASF405:
+ .string "__REGISTER_PREFIX__ "
+.LASF951:
+ .string "_GLIBCXX_HAVE_SYS_TIME_H 1"
+.LASF2139:
+ .string "_M_release"
+.LASF2164:
+ .string "__uniq_ptr_impl<Base, std::default_delete<Base> >"
+.LASF870:
+ .string "_GLIBCXX_HAVE_ISINFL 1"
+.LASF1350:
+ .string "__glibcxx_want_modules"
+.LASF1818:
+ .string "__DECLARE_FLEX_ARRAY(T,member) T member[0]"
+.LASF1798:
+ .string "SCHED_FLAG_DL_OVERRUN 0x04"
+.LASF499:
+ .string "_GLIBCXX_ABI_TAG_CXX11 __attribute ((__abi_tag__ (\"cxx11\")))"
+.LASF1080:
+ .string "__glibcxx_want_allocator_traits_is_always_equal"
+.LASF1327:
+ .string "__glibcxx_want_move_only_function"
+.LASF1475:
+ .string "__glibcxx_requires_irreflexive2(_First,_Last) "
+.LASF1564:
+ .string "__f32(x) x ##f32"
+.LASF1046:
+ .string "_GLIBCXX_USE_PTHREAD_RWLOCK_CLOCKLOCK 1"
+.LASF2325:
+ .string "__wch"
+.LASF498:
+ .string "_GLIBCXX26_DEPRECATED_SUGGEST(ALT) "
+.LASF2227:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEC4EOS4_"
+.LASF1439:
+ .ascii "_GLIBCXX_INT_N_TRAITS(T,WIDTH) __extension__ template<> stru"
+ .ascii "ct __is_int"
+ .string "eger_nonstrict<T> { enum { __value = 1 }; typedef std::__true_type __type; enum { __width = WIDTH }; }; __extension__ template<> struct __is_integer_nonstrict<unsigned T> { enum { __value = 1 }; typedef std::__true_type __type; enum { __width = WIDTH }; };"
+.LASF1436:
+ .string "__INT_N(TYPE) __extension__ template<> struct __is_integer<TYPE> { enum { __value = 1 }; typedef __true_type __type; }; __extension__ template<> struct __is_integer<unsigned TYPE> { enum { __value = 1 }; typedef __true_type __type; };"
+.LASF848:
+ .string "_GLIBCXX_HAVE_FCNTL_H 1"
+.LASF2212:
+ .string "_ZNSt10_Head_baseILm0EP4BaseLb0EEC4ESt15allocator_arg_tSt13__uses_alloc0"
+.LASF1219:
+ .string "__glibcxx_want_atomic_flag_test"
+.LASF1371:
+ .string "__glibcxx_want_is_null_pointer "
+.LASF2165:
+ .string "_Ptr<Base, std::default_delete<Base>, void>"
+.LASF899:
+ .string "_GLIBCXX_HAVE_MODFL 1"
+.LASF1793:
+ .string "SCHED_DEADLINE 6"
+.LASF857:
+ .string "_GLIBCXX_HAVE_FMODF 1"
+.LASF2191:
+ .string "_M_head"
+.LASF455:
+ .string "__linux__ 1"
+.LASF1630:
+ .string "__CORRECT_ISO_CPP_WCHAR_H_PROTO "
+.LASF2279:
+ .string "tuple_element<0, std::tuple<Base*, std::default_delete<Base> > >"
+.LASF1361:
+ .string "__glibcxx_want_bool_constant "
+.LASF2026:
+ .string "__GTHREAD_HAS_COND 1"
+.LASF1427:
+ .string "_GLIBCXX_DEBUG_ONLY(_Statement) "
+.LASF1159:
+ .string "__glibcxx_launder 201606L"
+.LASF729:
+ .string "__attr_access(x) __attribute__ ((__access__ x))"
+.LASF2055:
+ .string "_PTRDIFF_T_ "
+.LASF596:
+ .string "_ISOC23_SOURCE 1"
+.LASF1657:
+ .string "vswscanf"
+.LASF667:
+ .string "__ptr_t void *"
+.LASF1897:
+ .string "CPU_OR_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, |)"
+.LASF2341:
+ .string "tm_mon"
+.LASF938:
+ .string "_GLIBCXX_HAVE_SYMLINK 1"
+.LASF1004:
+ .string "_GLIBCXX_STDIO_SEEK_CUR 1"
+.LASF1051:
+ .string "_GLIBCXX_USE_SC_NPROCESSORS_ONLN 1"
+.LASF919:
+ .string "_GLIBCXX_HAVE_SINHF 1"
+.LASF1499:
+ .string "_GLIBCXX_TUPLE 1"
+.LASF2169:
+ .string "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EEC4EPS0_"
+.LASF4:
+ .string "__STDC_HOSTED__ 1"
+.LASF1710:
+ .string "__GTHREADS_CXX0X 1"
+.LASF886:
+ .string "_GLIBCXX_HAVE_LINUX_RANDOM_H 1"
+.LASF470:
+ .string "_MEMORYFWD_H 1"
+.LASF69:
+ .string "__INT_FAST32_TYPE__ long int"
+.LASF2061:
+ .string "__need_ptrdiff_t"
+.LASF2285:
+ .string "get<1, Base*, std::default_delete<Base> >"
+.LASF989:
+ .string "_GLIBCXX11_USE_C99_STDLIB 1"
+.LASF1134:
+ .string "__glibcxx_addressof_constexpr 201603L"
+.LASF436:
+ .string "__SIZEOF_FLOAT80__ 16"
+.LASF2155:
+ .string "__cxa_exception_type"
+.LASF928:
+ .string "_GLIBCXX_HAVE_STDINT_H 1"
+.LASF181:
+ .string "__INT_LEAST32_MAX__ 0x7fffffff"
+.LASF285:
+ .string "__FLT32_MAX_EXP__ 128"
+.LASF559:
+ .string "__USE_ISOCXX11"
+.LASF99:
+ .string "__cpp_ref_qualifiers 200710L"
+.LASF2378:
+ .string "GNU C++17 15.1.1 20250425 (Red Hat 15.1.1-1) -mtune=generic -march=x86-64 -g3 -gdwarf-4 -O2"
+.LASF2309:
+ .string "long int"
+.LASF1951:
+ .string "STA_PPSSIGNAL 0x0100"
+.LASF400:
+ .string "__DEC64X_MAX_EXP__ 6145"
+.LASF6:
+ .string "__STDC_EMBED_FOUND__ 1"
+.LASF1486:
+ .string "__glibcxx_want_endian "
+.LASF244:
+ .string "__DBL_HAS_DENORM__ 1"
+.LASF2113:
+ .string "__glibcxx_want_transparent_operators "
+.LASF597:
+ .string "_ISOC2Y_SOURCE"
+.LASF173:
+ .string "__UINT32_MAX__ 0xffffffffU"
+.LASF302:
+ .string "__FLT64_MAX_10_EXP__ 308"
+.LASF271:
+ .string "__FLT16_DECIMAL_DIG__ 5"
+.LASF2256:
+ .string "pointer"
+.LASF2171:
+ .string "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EEaSEOS3_"
+.LASF2053:
+ .string "_T_PTRDIFF "
+.LASF587:
+ .string "__glibc_clang_prereq(maj,min) 0"
+.LASF1154:
+ .string "__glibcxx_want_invoke"
+.LASF885:
+ .string "_GLIBCXX_HAVE_LINUX_FUTEX 1"
+.LASF414:
+ .string "__GCC_ATOMIC_CHAR16_T_LOCK_FREE 2"
+.LASF813:
+ .string "_PSTL_PRAGMA_MESSAGE(x) "
+.LASF764:
+ .string "_GLIBCXX_USE_C99_WCHAR _GLIBCXX11_USE_C99_WCHAR"
+.LASF1182:
+ .string "__glibcxx_nonmember_container_access 201411L"
+.LASF407:
+ .string "__GNUC_STDC_INLINE__ 1"
+.LASF884:
+ .string "_GLIBCXX_HAVE_LINK_H 1"
+.LASF981:
+ .string "_GLIBCXX_PACKAGE_TARNAME \"libstdc++\""
+.LASF2342:
+ .string "tm_year"
+.LASF1787:
+ .string "SCHED_FIFO 1"
+.LASF2243:
+ .string "_ZNSt15__uniq_ptr_dataI4BaseSt14default_deleteIS0_ELb1ELb1EEC4EOS3_"
+.LASF1079:
+ .string "__glibcxx_allocator_traits_is_always_equal 201411L"
+.LASF2235:
+ .string "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEaSERKS4_"
+.LASF2022:
+ .string "pthread_cleanup_push_defer_np(routine,arg) do { __pthread_cleanup_class __clframe (routine, arg); __clframe.__defer ()"
+.LASF748:
+ .string "_GLIBCXX_MAY_HAVE___CXA_THREAD_ATEXIT_IMPL 1"
+.LASF1643:
+ .string "getwc"
+.LASF804:
+ .string "_PSTL_UDS_PRESENT "
+.LASF1972:
+ .string "__SIZEOF_PTHREAD_RWLOCK_T 56"
+.LASF1820:
+ .string "__counted_by_le(m) "
+.LASF664:
+ .string "__PMT(args) args"
+.LASF1827:
+ .string "__bitwise "
+.LASF690:
+ .string "__attribute_const__ __attribute__ ((__const__))"
+.LASF1455:
+ .string "_GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(_Iter) std::__make_move_if_noexcept_iterator(_Iter)"
+.LASF1690:
+ .string "wscanf"
+.LASF153:
+ .string "__WCHAR_WIDTH__ 32"
+.LASF3:
+ .string "__STDC_UTF_32__ 1"
+.LASF2255:
+ .string "_ZNKSt10unique_ptrI4BaseSt14default_deleteIS0_EEdeEv"
+.LASF306:
+ .string "__FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64"
+.LASF2041:
+ .string "_SYS_SINGLE_THREADED_H "
+.LASF973:
+ .string "_GLIBCXX_HAVE_WCTYPE_H 1"
+.LASF2054:
+ .string "__PTRDIFF_T "
+.LASF1874:
+ .ascii "__CPU_OP_S(setsize,destset,srcset1,srcset2,op) (__extension_"
+ .ascii "_ ({ cpu_set_t *__dest = (destset); const __cp"
+ .string "u_mask *__arr1 = (srcset1)->__bits; const __cpu_mask *__arr2 = (srcset2)->__bits; size_t __imax = (setsize) / sizeof (__cpu_mask); size_t __i; for (__i = 0; __i < __imax; ++__i) ((__cpu_mask *) __dest->__bits)[__i] = __arr1[__i] op __arr2[__i]; __dest; }))"
+.LASF1775:
+ .string "_STRUCT_TIMESPEC 1"
+.LASF985:
+ .string "_GLIBCXX_DARWIN_USE_64_BIT_INODE 1"
+.LASF465:
+ .string "__STDC_IEC_60559_BFP__ 201404L"
+.LASF2110:
+ .string "__glibcxx_want_shared_ptr_weak_type "
+.LASF945:
+ .string "_GLIBCXX_HAVE_SYS_SDT_H 1"
+.LASF1873:
+ .string "__CPU_EQUAL_S(setsize,cpusetp1,cpusetp2) (__builtin_memcmp (cpusetp1, cpusetp2, setsize) == 0)"
+.LASF1961:
+ .string "__struct_tm_defined 1"
+.LASF1930:
+ .string "ADJ_OFFSET_SINGLESHOT 0x8001"
+.LASF142:
+ .string "__WCHAR_MAX__ 0x7fffffff"
+.LASF2129:
+ .string "_Sink"
+.LASF87:
+ .string "__cpp_unicode_literals 200710L"
+.LASF2172:
+ .string "_M_ptr"
+.LASF1701:
+ .ascii "_GLIBCXX_MEM_FN_TRAITS2(_CV,_REF,_LVAL,_RVAL) template<typen"
+ .ascii "ame _Res, typename _Class, typename... _ArgTypes> struct _Me"
+ .ascii "m_fn_traits<_Res (_Class::*)(_ArgTypes...) _CV _REF> : _Mem_"
+ .ascii "fn_traits_base<_Res, _CV _Class, _ArgTypes."
+ .string "..> { using __vararg = false_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) _CV _REF> : _Mem_fn_traits_base<_Res, _CV _Class, _ArgTypes...> { using __vararg = true_type; };"
+.LASF1237:
+ .string "__glibcxx_want_integer_comparison_functions"
+.LASF293:
+ .string "__FLT32_HAS_DENORM__ 1"
+.LASF651:
+ .string "_SYS_CDEFS_H 1"
+.LASF1993:
+ .string "__jmp_buf_tag_defined 1"
+.LASF154:
+ .string "__WINT_WIDTH__ 32"
+.LASF2218:
+ .string "_Inherited"
+.LASF1002:
+ .string "_GLIBCXX_RES_LIMITS 1"
+.LASF2329:
+ .string "__mbstate_t"
+.LASF957:
+ .string "_GLIBCXX_HAVE_TANHL 1"
+.LASF1840:
+ .string "CLONE_SIGHAND 0x00000800"
+.LASF1143:
+ .string "__glibcxx_want_atomic_is_always_lock_free"
+.LASF2357:
+ .string "_Znwm"
+.LASF1958:
+ .string "STA_CLK 0x8000"
+.LASF1411:
+ .string "_STL_ITERATOR_BASE_TYPES_H 1"
+.LASF2153:
+ .string "swap"
+.LASF850:
+ .string "_GLIBCXX_HAVE_FENV_H 1"
+.LASF1762:
+ .string "__FSID_T_TYPE struct { int __val[2]; }"
+.LASF109:
+ .string "__cpp_static_assert 201411L"
+.LASF1970:
+ .string "__SIZEOF_PTHREAD_MUTEX_T 40"
+.LASF311:
+ .string "__FLT64_HAS_QUIET_NAN__ 1"
+.LASF838:
+ .string "_GLIBCXX_HAVE_DIRENT_H 1"
+.LASF249:
+ .string "__LDBL_DIG__ 18"
+.LASF1568:
+ .string "__CFLOAT32 _Complex _Float32"
+.LASF2373:
+ .string "_ZNSt15__uniq_ptr_dataI4BaseSt14default_deleteIS0_ELb1ELb1EECI2St15__uniq_ptr_implIS0_S2_EEPS0_"
+.LASF417:
+ .string "__GCC_ATOMIC_SHORT_LOCK_FREE 2"
+.LASF1025:
+ .string "_GLIBCXX_USE_CHMOD 1"
+.LASF831:
+ .string "_GLIBCXX_HAVE_CEILL 1"
+.LASF1944:
+ .string "STA_PPSFREQ 0x0002"
+.LASF2361:
+ .string "__cxa_guard_abort"
+.LASF2204:
+ .string "_M_swap"
+.LASF1795:
+ .string "SCHED_RESET_ON_FORK 0x40000000"
+.LASF845:
+ .string "_GLIBCXX_HAVE_EXPL 1"
+.LASF90:
+ .string "__cpp_decltype 200707L"
+.LASF440:
+ .string "__GCC_ASM_FLAG_OUTPUTS__ 1"
+.LASF1761:
+ .string "__BLKSIZE_T_TYPE __SYSCALL_SLONG_TYPE"
+.LASF38:
+ .string "__SIZEOF_POINTER__ 8"
+.LASF272:
+ .string "__FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF1476:
+ .string "__glibcxx_requires_irreflexive_pred(_First,_Last,_Pred) "
+.LASF321:
+ .string "__FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF1836:
+ .string "CSIGNAL 0x000000ff"
+.LASF2316:
+ .string "long double"
+.LASF2002:
+ .string "PTHREAD_RWLOCK_INITIALIZER { { __PTHREAD_RWLOCK_INITIALIZER (PTHREAD_RWLOCK_DEFAULT_NP) } }"
+.LASF1294:
+ .string "__glibcxx_want_freestanding_expected"
+.LASF1285:
+ .string "__glibcxx_want_syncbuf"
+.LASF49:
+ .string "__CHAR32_TYPE__ unsigned int"
+.LASF345:
+ .string "__FLT64X_MANT_DIG__ 64"
+.LASF1388:
+ .string "__cpp_lib_void_t 201411L"
+.LASF1849:
+ .string "CLONE_PARENT_SETTID 0x00100000"
+.LASF1569:
+ .string "__CFLOAT64 _Complex _Float64"
+.LASF1484:
+ .string "__glibcxx_want_bitops "
+.LASF1231:
+ .string "__glibcxx_optional 201606L"
+.LASF2284:
+ .string "__tuple_element_t"
+.LASF622:
+ .string "__USE_POSIX2 1"
+.LASF1250:
+ .string "__glibcxx_want_three_way_comparison"
+.LASF1609:
+ .string "__DEFINED_wchar_t "
+.LASF897:
+ .string "_GLIBCXX_HAVE_MODF 1"
+.LASF1139:
+ .string "__glibcxx_want_apply"
+.LASF488:
+ .string "_GLIBCXX11_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)"
+.LASF1707:
+ .string "_GLIBCXX_GCC_GTHR_H "
+.LASF1014:
+ .string "_GLIBCXX_USE_C99_FENV 1"
+.LASF1360:
+ .string "_GLIBCXX_TYPE_TRAITS 1"
+.LASF119:
+ .string "__cpp_inline_variables 201606L"
+.LASF1571:
+ .string "__CFLOAT64X _Complex _Float64x"
+.LASF586:
+ .string "__GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))"
+.LASF683:
+ .string "__ASMNAME2(prefix,cname) __STRING (prefix) cname"
+.LASF1713:
+ .string "_BITS_TYPES_H 1"
+.LASF310:
+ .string "__FLT64_HAS_INFINITY__ 1"
+.LASF1908:
+ .string "CLOCK_THREAD_CPUTIME_ID 3"
+.LASF422:
+ .string "__GCC_DESTRUCTIVE_SIZE 64"
+.LASF1066:
+ .string "_ALLOCATOR_H 1"
+.LASF883:
+ .string "_GLIBCXX_HAVE_LINK 1"
+.LASF679:
+ .string "__REDIRECT(name,proto,alias) name proto __asm__ (__ASMNAME (#alias))"
+.LASF141:
+ .string "__LONG_LONG_MAX__ 0x7fffffffffffffffLL"
+.LASF1290:
+ .string "__glibcxx_want_format_ranges"
+.LASF1461:
+ .string "__glibcxx_requires_can_decrement_range(_First1,_Last1,_First2) "
+.LASF349:
+ .string "__FLT64X_MAX_EXP__ 16384"
+.LASF2301:
+ .string "bool"
+.LASF17:
+ .string "__ATOMIC_ACQ_REL 4"
+.LASF1287:
+ .string "__glibcxx_want_constexpr_charconv"
+.LASF442:
+ .string "__k8__ 1"
+.LASF40:
+ .string "__GNUC_WIDE_EXECUTION_CHARSET_NAME \"UTF-32LE\""
+.LASF1343:
+ .string "__glibcxx_want_ratio"
+.LASF1791:
+ .string "SCHED_ISO 4"
+.LASF601:
+ .string "_POSIX_C_SOURCE"
+.LASF1035:
+ .string "_GLIBCXX_USE_GET_NPROCS 1"
+.LASF2222:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEC4Ev"
+.LASF1326:
+ .string "__glibcxx_want_ios_noreplace"
+.LASF1:
+ .string "__cplusplus 201703L"
+.LASF806:
+ .string "_PSTL_PRAGMA_SIMD_ORDERED_MONOTONIC(PRM) "
+.LASF371:
+ .string "__BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16"
+.LASF209:
+ .string "__UINTPTR_MAX__ 0xffffffffffffffffUL"
+.LASF420:
+ .string "__GCC_ATOMIC_LLONG_LOCK_FREE 2"
+.LASF1521:
+ .string "_GLIBCXX_IOSFWD 1"
+.LASF243:
+ .string "__DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L)"
+.LASF970:
+ .string "_GLIBCXX_HAVE_VWSCANF 1"
+.LASF402:
+ .string "__DEC64X_MAX__ 9.999999999999999999999999999999999E6144D64x"
+.LASF628:
+ .string "__USE_XOPEN_EXTENDED 1"
+.LASF1304:
+ .string "__glibcxx_want_ranges_chunk"
+.LASF551:
+ .string "_GLIBCXX_END_EXTERN_C }"
+.LASF2159:
+ .string "default_delete<Base>"
+.LASF223:
+ .string "__FLT_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF96:
+ .string "__cpp_delegating_constructors 200604L"
+.LASF152:
+ .string "__LONG_LONG_WIDTH__ 64"
+.LASF772:
+ .string "_GLIBCXX_USE_BUILTIN_TRAIT(BT) _GLIBCXX_HAS_BUILTIN(BT)"
+.LASF767:
+ .string "_GLIBCXX_DOUBLE_IS_IEEE_BINARY64 1"
+.LASF913:
+ .string "_GLIBCXX_HAVE_SECURE_GETENV 1"
+.LASF2127:
+ .string "allocator_arg_t"
+.LASF1385:
+ .string "__cpp_lib_is_null_pointer 201309L"
+.LASF2315:
+ .string "char"
+.LASF1973:
+ .string "__SIZEOF_PTHREAD_BARRIER_T 32"
+.LASF2348:
+ .string "__isoc23_wcstol"
+.LASF232:
+ .string "__DBL_MANT_DIG__ 53"
+.LASF1736:
+ .string "__INO64_T_TYPE __UQUAD_TYPE"
+.LASF1916:
+ .string "TIMER_ABSTIME 1"
+.LASF866:
+ .string "_GLIBCXX_HAVE_HYPOTL 1"
+.LASF743:
+ .string "__stub_sigreturn "
+.LASF1720:
+ .string "__SQUAD_TYPE long int"
+.LASF1364:
+ .string "__glibcxx_want_integral_constant_callable "
+.LASF1043:
+ .string "_GLIBCXX_USE_NL_LANGINFO_L 1"
+.LASF115:
+ .string "__cpp_range_based_for 201603L"
+.LASF1075:
+ .string "__glibcxx_incomplete_container_elements 201505L"
+.LASF1381:
+ .string "__glibcxx_want_type_identity "
+.LASF643:
+ .string "__GLIBC_USE_DEPRECATED_GETS 0"
+.LASF1535:
+ .string "__GLIBC_USE_IEC_60559_EXT"
+.LASF64:
+ .string "__UINT_LEAST16_TYPE__ short unsigned int"
+.LASF1110:
+ .string "__glibcxx_transparent_operators 201510L"
+.LASF1279:
+ .string "__glibcxx_want_latch"
+.LASF1624:
+ .string "__mbstate_t_defined 1"
+.LASF750:
+ .string "_GLIBCXX_GTHREAD_USE_WEAK 0"
+.LASF1093:
+ .string "__glibcxx_math_spec_funcs 201003L"
+.LASF1116:
+ .string "__glibcxx_robust_nonmodifying_seq_ops 201304L"
+.LASF95:
+ .string "__cpp_initializer_lists 200806L"
+.LASF52:
+ .string "__INT16_TYPE__ short int"
+.LASF1617:
+ .string "__GNUC_VA_LIST "
+.LASF1057:
+ .string "_GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_FCHAR8_T 1"
+.LASF308:
+ .string "__FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64"
+.LASF988:
+ .string "_GLIBCXX11_USE_C99_STDIO 1"
+.LASF1850:
+ .string "CLONE_CHILD_CLEARTID 0x00200000"
+.LASF1268:
+ .string "__glibcxx_want_format"
+.LASF602:
+ .string "_POSIX_C_SOURCE 200809L"
+.LASF698:
+ .string "__attribute_nonnull__(params) __attribute__ ((__nonnull__ params))"
+.LASF835:
+ .string "_GLIBCXX_HAVE_COSHL 1"
+.LASF105:
+ .string "__cpp_aggregate_nsdmi 201304L"
+.LASF1734:
+ .string "__GID_T_TYPE __U32_TYPE"
+.LASF1621:
+ .string "__WCHAR_MIN __WCHAR_MIN__"
+.LASF1090:
+ .string "__glibcxx_want_void_t"
+.LASF1634:
+ .string "__attr_dealloc_fclose "
+.LASF1957:
+ .string "STA_MODE 0x4000"
+.LASF126:
+ .string "__cpp_guaranteed_copy_elision 201606L"
+.LASF1964:
+ .string "__itimerspec_defined 1"
+.LASF1539:
+ .string "__GLIBC_USE_IEC_60559_FUNCS_EXT_C23"
+.LASF2203:
+ .string "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEC4EOS3_"
+.LASF705:
+ .string "__attribute_artificial__ __attribute__ ((__artificial__))"
+.LASF276:
+ .string "__FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16"
+.LASF2043:
+ .string "__EXCEPTION__ "
+.LASF548:
+ .string "_GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(A) "
+.LASF1747:
+ .string "__FSBLKCNT_T_TYPE __SYSCALL_ULONG_TYPE"
+.LASF1833:
+ .string "SCHED_ATTR_SIZE_VER0 48"
+.LASF1748:
+ .string "__FSBLKCNT64_T_TYPE __UQUAD_TYPE"
+.LASF2214:
+ .string "_ZNSt10_Head_baseILm0EP4BaseLb0EE7_M_headERKS2_"
+.LASF246:
+ .string "__DBL_HAS_QUIET_NAN__ 1"
+.LASF890:
+ .string "_GLIBCXX_HAVE_LOG10L 1"
+.LASF1362:
+ .string "__glibcxx_want_bounded_array_traits "
+.LASF1590:
+ .string "_GCC_SIZE_T "
+.LASF510:
+ .string "_GLIBCXX_NOEXCEPT_IF(...) noexcept(__VA_ARGS__)"
+.LASF1851:
+ .string "CLONE_DETACHED 0x00400000"
+.LASF613:
+ .string "_DYNAMIC_STACK_SIZE_SOURCE"
+.LASF1773:
+ .string "__STD_TYPE"
+.LASF812:
+ .string "_PSTL_PRAGMA_MESSAGE_IMPL(x) _PSTL_PRAGMA(message(_PSTL_STRING_CONCAT(_PSTL_PRAGMA_LOCATION, x)))"
+.LASF1981:
+ .string "_BITS_ATOMIC_WIDE_COUNTER_H "
+.LASF1092:
+ .string "__glibcxx_want_enable_shared_from_this"
+.LASF732:
+ .string "__attr_dealloc(dealloc,argno) __attribute__ ((__malloc__ (dealloc, argno)))"
+.LASF1731:
+ .string "__SYSCALL_ULONG_TYPE __ULONGWORD_TYPE"
+.LASF687:
+ .string "__attribute_alloc_size__(params) __attribute__ ((__alloc_size__ params))"
+.LASF1438:
+ .string "_EXT_TYPE_TRAITS 1"
+.LASF2395:
+ .string "_IO_FILE"
+.LASF70:
+ .string "__INT_FAST64_TYPE__ long int"
+.LASF1346:
+ .string "__glibcxx_want_span_initializer_list"
+.LASF1592:
+ .string "__size_t "
+.LASF1574:
+ .string "__need_NULL "
+.LASF2293:
+ .string "_Args"
+.LASF1739:
+ .string "__FSWORD_T_TYPE __SYSCALL_SLONG_TYPE"
+.LASF2241:
+ .string "__uniq_ptr_data<Base, std::default_delete<Base>, true, true>"
+.LASF1684:
+ .string "wmemchr"
+.LASF1490:
+ .string "_GLIBCXX_TO_ADDR"
+.LASF1790:
+ .string "SCHED_BATCH 3"
+.LASF1389:
+ .string "__cpp_lib_integral_constant_callable 201304L"
+.LASF863:
+ .string "_GLIBCXX_HAVE_GETS 1"
+.LASF1328:
+ .string "__glibcxx_want_out_ptr"
+.LASF24:
+ .string "__SIZEOF_LONG__ 8"
+.LASF248:
+ .string "__LDBL_MANT_DIG__ 64"
+.LASF528:
+ .string "_GLIBCXX_END_INLINE_ABI_NAMESPACE(X) }"
+.LASF2098:
+ .string "__glibcxx_want_assume_aligned "
+.LASF1520:
+ .string "_SHARED_PTR_H 1"
+.LASF2157:
+ .string "rethrow_exception"
+.LASF1570:
+ .string "__CFLOAT32X _Complex _Float32x"
+.LASF1160:
+ .string "__cpp_lib_launder 201606L"
+.LASF74:
+ .string "__UINT_FAST64_TYPE__ long unsigned int"
+.LASF208:
+ .string "__INTPTR_WIDTH__ 64"
+.LASF1864:
+ .string "__CPU_SETSIZE 1024"
+.LASF2391:
+ .string "_ZN9__gnu_cxx21__default_lock_policyE"
+.LASF479:
+ .string "_GLIBCXX_PURE __attribute__ ((__pure__))"
+.LASF2339:
+ .string "tm_hour"
+.LASF34:
+ .string "__ORDER_BIG_ENDIAN__ 4321"
+.LASF453:
+ .string "__gnu_linux__ 1"
+.LASF1819:
+ .string "__counted_by(m) "
+.LASF933:
+ .string "_GLIBCXX_HAVE_STRING_H 1"
+.LASF1987:
+ .string "__PTHREAD_RWLOCK_INITIALIZER(__flags) 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, __flags"
+.LASF1450:
+ .string "_STL_UNINITIALIZED_H 1"
+.LASF1915:
+ .string "CLOCK_TAI 11"
+.LASF409:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1"
+.LASF357:
+ .string "__FLT64X_HAS_DENORM__ 1"
+.LASF799:
+ .string "_PSTL_CPP14_2RANGE_MISMATCH_EQUAL_PRESENT "
+.LASF1937:
+ .string "MOD_TIMECONST ADJ_TIMECONST"
+.LASF1814:
+ .string "_LINUX_POSIX_TYPES_H "
+.LASF165:
+ .string "__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)"
+.LASF2099:
+ .string "__glibcxx_want_atomic_shared_ptr "
+.LASF542:
+ .string "_GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_BEGIN_NAMESPACE_CXX11"
+.LASF782:
+ .string "_PSTL_VERSION_PATCH (_PSTL_VERSION % 10)"
+.LASF2291:
+ .string "_ZSt3getILm0EJP4BaseSt14default_deleteIS0_EEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS8_"
+.LASF1170:
+ .string "__glibcxx_variant 202102L"
+.LASF1189:
+ .string "__glibcxx_want_boyer_moore_searcher"
+.LASF833:
+ .string "_GLIBCXX_HAVE_COSF 1"
+.LASF1872:
+ .string "__CPU_COUNT_S(setsize,cpusetp) __sched_cpucount (setsize, cpusetp)"
+.LASF1632:
+ .string "WCHAR_MAX __WCHAR_MAX"
+.LASF2195:
+ .string "_Head"
+.LASF2189:
+ .string "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC4EOS3_"
+.LASF1180:
+ .string "__glibcxx_array_constexpr 201803L"
+.LASF996:
+ .string "_GLIBCXX_ATOMIC_BUILTINS 1"
+.LASF721:
+ .string "__LDBL_REDIR_NTH(name,proto) name proto __THROW"
+.LASF2068:
+ .string "_GLIBCXX_EH_PTR_USED "
+.LASF1140:
+ .string "__glibcxx_as_const 201510L"
+.LASF2077:
+ .string "ATOMIC_CHAR16_T_LOCK_FREE __GCC_ATOMIC_CHAR16_T_LOCK_FREE"
+.LASF1244:
+ .string "__glibcxx_want_math_constants"
+.LASF336:
+ .string "__FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF1289:
+ .string "__glibcxx_want_expected"
+.LASF1144:
+ .string "__glibcxx_bool_constant 201505L"
+.LASF2266:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EE5resetEPS0_"
+.LASF222:
+ .string "__FLT_DECIMAL_DIG__ 9"
+.LASF1149:
+ .string "__glibcxx_want_has_unique_object_representations"
+.LASF654:
+ .string "__glibc_has_builtin(name) __has_builtin (name)"
+.LASF1462:
+ .string "__glibcxx_requires_sorted(_First,_Last) "
+.LASF1325:
+ .string "__glibcxx_want_generator"
+.LASF493:
+ .string "_GLIBCXX20_DEPRECATED "
+.LASF1990:
+ .string "_BITS_SETJMP_H 1"
+.LASF1695:
+ .string "_TYPEINFO "
+.LASF2292:
+ .string "make_unique<Base>"
+.LASF2001:
+ .string "PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_ADAPTIVE_NP) } }"
+.LASF1644:
+ .string "getwchar"
+.LASF2380:
+ .string "."
+.LASF317:
+ .string "__FLT128_MAX_EXP__ 16384"
+.LASF1532:
+ .string "__GLIBC_USE_IEC_60559_BFP_EXT 1"
+.LASF1233:
+ .string "__glibcxx_want_destroying_delete"
+.LASF1054:
+ .string "_GLIBCXX_USE_ST_MTIM 1"
+.LASF2067:
+ .string "_GLIBCXX_HAVE_CDTOR_CALLABI 0"
+.LASF607:
+ .string "_LARGEFILE64_SOURCE"
+.LASF454:
+ .string "__linux 1"
+.LASF2145:
+ .string "_ZNSt15__exception_ptr13exception_ptrC4ERKS0_"
+.LASF2140:
+ .string "_ZNSt15__exception_ptr13exception_ptr9_M_addrefEv"
+.LASF2340:
+ .string "tm_mday"
+.LASF650:
+ .string "__GLIBC_PREREQ(maj,min) ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))"
+.LASF2232:
+ .string "tuple"
+.LASF872:
+ .string "_GLIBCXX_HAVE_ISNANL 1"
+.LASF926:
+ .string "_GLIBCXX_HAVE_STDALIGN_H 1"
+.LASF1765:
+ .string "__OFF_T_MATCHES_OFF64_T 1"
+.LASF20:
+ .string "__FINITE_MATH_ONLY__ 0"
+.LASF734:
+ .string "__attribute_returns_twice__ __attribute__ ((__returns_twice__))"
+.LASF1510:
+ .string "__cpp_lib_tuples_by_type 201304L"
+.LASF830:
+ .string "_GLIBCXX_HAVE_CEILF 1"
+.LASF1084:
+ .string "__glibcxx_want_result_of_sfinae"
+.LASF2358:
+ .string "operator delete"
+.LASF816:
+ .string "_GLIBCXX_HAVE_ACOSL 1"
+.LASF825:
+ .string "_GLIBCXX_HAVE_ATANF 1"
+.LASF2260:
+ .string "get_deleter"
+.LASF1985:
+ .string "_RWLOCK_INTERNAL_H "
+.LASF106:
+ .string "__cpp_variable_templates 201304L"
+.LASF352:
+ .string "__FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x"
+.LASF1839:
+ .string "CLONE_FILES 0x00000400"
+.LASF1901:
+ .string "CPU_FREE(cpuset) __CPU_FREE (cpuset)"
+.LASF1428:
+ .string "_STL_PAIR_H 1"
+.LASF859:
+ .string "_GLIBCXX_HAVE_FREXPF 1"
+.LASF184:
+ .string "__INT_LEAST64_MAX__ 0x7fffffffffffffffL"
+.LASF2257:
+ .string "operator->"
+.LASF2137:
+ .string "_ZNSt15__exception_ptr13exception_ptrC4EPv"
+.LASF364:
+ .string "__BFLT16_MIN_10_EXP__ (-37)"
+.LASF1086:
+ .string "__glibcxx_want_shared_ptr_arrays"
+.LASF2073:
+ .string "_GLIBCXX_ATOMIC_LOCK_FREE_H 1"
+.LASF669:
+ .string "__END_DECLS }"
+.LASF617:
+ .string "__USE_ISOC11 1"
+.LASF954:
+ .string "_GLIBCXX_HAVE_S_ISREG 1"
+.LASF515:
+ .string "_GLIBCXX_NOEXCEPT_PARM , bool _NE"
+.LASF707:
+ .string "__extern_always_inline extern __always_inline __attribute__ ((__gnu_inline__))"
+.LASF1946:
+ .string "STA_FLL 0x0008"
+.LASF2154:
+ .string "_ZNSt15__exception_ptr13exception_ptr4swapERS0_"
+.LASF362:
+ .string "__BFLT16_DIG__ 2"
+.LASF877:
+ .string "_GLIBCXX_HAVE_LIBINTL_H 1"
+.LASF1223:
+ .string "__glibcxx_want_atomic_value_initialization"
+.LASF2125:
+ .string "__swappable_with_details"
+.LASF2040:
+ .string "_GLIBCXX_WRITE_MEM_BARRIER __atomic_thread_fence (__ATOMIC_RELEASE)"
+.LASF672:
+ .string "__bos0(ptr) __builtin_object_size (ptr, 0)"
+.LASF1933:
+ .string "MOD_FREQUENCY ADJ_FREQUENCY"
+.LASF351:
+ .string "__FLT64X_DECIMAL_DIG__ 21"
+.LASF1240:
+ .string "__glibcxx_want_constexpr_char_traits"
+.LASF2114:
+ .string "__cpp_lib_allocator_traits_is_always_equal 201411L"
+.LASF1781:
+ .string "__BYTE_ORDER __LITTLE_ENDIAN"
+.LASF2299:
+ .string "_S_atomic"
+.LASF2161:
+ .string "_ZNSt14default_deleteI4BaseEC4Ev"
+.LASF2390:
+ .string "__default_lock_policy"
+.LASF582:
+ .string "__GLIBC_USE_DEPRECATED_GETS"
+.LASF1366:
+ .string "__glibcxx_want_is_constant_evaluated "
+.LASF298:
+ .string "__FLT64_DIG__ 15"
+.LASF2353:
+ .string "__pstl"
+.LASF412:
+ .string "__GCC_ATOMIC_BOOL_LOCK_FREE 2"
+.LASF1559:
+ .string "__HAVE_DISTINCT_FLOAT32X 0"
+.LASF388:
+ .string "__DEC64_MAX__ 9.999999999999999E384DD"
+.LASF630:
+ .string "_LARGEFILE_SOURCE"
+.LASF1723:
+ .string "__UWORD_TYPE unsigned long int"
+.LASF2288:
+ .string "_ZSt12__get_helperILm0EP4BaseJSt14default_deleteIS0_EEERT0_RSt11_Tuple_implIXT_EJS4_DpT1_EE"
+.LASF823:
+ .string "_GLIBCXX_HAVE_ATAN2F 1"
+.LASF1460:
+ .string "__glibcxx_requires_can_increment_range(_First1,_Last1,_First2) "
+.LASF1522:
+ .string "_REQUIRES_FREESTANDING_H 1"
+.LASF1507:
+ .string "__glibcxx_want_tuple_like "
+.LASF573:
+ .string "__USE_FILE_OFFSET64"
+.LASF519:
+ .string "_GLIBCXX_USE_CXX11_ABI 1"
+.LASF2066:
+ .string "_GLIBCXX_CDTOR_CALLABI "
+.LASF1491:
+ .string "_GLIBCXX_ADVANCE"
+.LASF847:
+ .string "_GLIBCXX_HAVE_FABSL 1"
+.LASF241:
+ .string "__DBL_MIN__ double(2.22507385850720138309023271733240406e-308L)"
+.LASF37:
+ .string "__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF1276:
+ .string "__glibcxx_want_erase_if"
+.LASF1230:
+ .string "__glibcxx_want_concepts"
+.LASF2317:
+ .string "double"
+.LASF2134:
+ .string "_M_exception_object"
+.LASF1096:
+ .string "__glibcxx_exchange_function 201304L"
+.LASF603:
+ .string "_XOPEN_SOURCE"
+.LASF1441:
+ .string "__glibcxx_floating(_Tp,_Fval,_Dval,_LDval) (std::__are_same<_Tp, float>::__value ? _Fval : std::__are_same<_Tp, double>::__value ? _Dval : _LDval)"
+.LASF278:
+ .string "__FLT16_HAS_INFINITY__ 1"
+.LASF1939:
+ .string "MOD_CLKA ADJ_OFFSET_SINGLESHOT"
+.LASF1465:
+ .string "__glibcxx_requires_sorted_set_pred(_First1,_Last1,_First2,_Pred) "
+.LASF100:
+ .string "__cpp_alias_templates 200704L"
+.LASF554:
+ .string "__NO_CTYPE 1"
+.LASF1479:
+ .string "_GLIBCXX_BIT 1"
+.LASF1929:
+ .string "ADJ_TICK 0x4000"
+.LASF1629:
+ .string "_BITS_TYPES___LOCALE_T_H 1"
+.LASF1779:
+ .string "__PDP_ENDIAN 3412"
+.LASF852:
+ .string "_GLIBCXX_HAVE_FINITEF 1"
+.LASF2331:
+ .string "__FILE"
+.LASF423:
+ .string "__GCC_CONSTRUCTIVE_SIZE 64"
+.LASF1146:
+ .string "__glibcxx_byte 201603L"
+.LASF1238:
+ .string "__glibcxx_want_is_constant_evaluated"
+.LASF873:
+ .string "_GLIBCXX_HAVE_ISWBLANK 1"
+.LASF2393:
+ .string "typedef __va_list_tag __va_list_tag"
+.LASF28:
+ .string "__SIZEOF_DOUBLE__ 8"
+.LASF1555:
+ .string "__HAVE_FLOAT128X 0"
+.LASF604:
+ .string "_XOPEN_SOURCE 700"
+.LASF1001:
+ .string "_GLIBCXX_MANGLE_SIZE_T m"
+.LASF1298:
+ .string "__glibcxx_want_invoke_r"
+.LASF500:
+ .string "_GLIBCXX_NODISCARD [[__nodiscard__]]"
+.LASF2175:
+ .string "_M_deleter"
+.LASF1777:
+ .string "__LITTLE_ENDIAN 1234"
+.LASF1059:
+ .string "_GLIBCXX_USE_UTIMENSAT 1"
+.LASF1464:
+ .string "__glibcxx_requires_sorted_set(_First1,_Last1,_First2) "
+.LASF896:
+ .string "_GLIBCXX_HAVE_MEMORY_H 1"
+.LASF290:
+ .string "__FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32"
+.LASF1601:
+ .string "_BSD_WCHAR_T_ "
+.LASF1073:
+ .string "__glibcxx_want_destroying_delete "
+.LASF1172:
+ .string "__glibcxx_lcm 201606L"
+.LASF2123:
+ .string "_PSTL_EXECUTION_POLICY_DEFS_H "
+.LASF1354:
+ .string "_FUNCTEXCEPT_H 1"
+.LASF693:
+ .string "__attribute_noinline__ __attribute__ ((__noinline__))"
+.LASF1068:
+ .string "_STD_NEW_ALLOCATOR_H 1"
+.LASF1267:
+ .string "__glibcxx_want_barrier"
+.LASF1220:
+ .string "__glibcxx_want_atomic_float"
+.LASF365:
+ .string "__BFLT16_MAX_EXP__ 128"
+.LASF1195:
+ .string "__glibcxx_want_filesystem"
+.LASF2372:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEC2IS2_vEEPS0_"
+.LASF917:
+ .string "_GLIBCXX_HAVE_SINCOSL 1"
+.LASF84:
+ .string "__cpp_hex_float 201603L"
+.LASF1741:
+ .string "__OFF64_T_TYPE __SQUAD_TYPE"
+.LASF577:
+ .string "__USE_GNU"
+.LASF305:
+ .string "__FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF1458:
+ .string "__glibcxx_requires_valid_range(_First,_Last) "
+.LASF561:
+ .string "__USE_POSIX2"
+.LASF993:
+ .string "_GLIBCXX98_USE_C99_STDIO 1"
+.LASF1685:
+ .string "wmemcmp"
+.LASF1759:
+ .string "__CLOCKID_T_TYPE __S32_TYPE"
+.LASF19:
+ .string "__OPTIMIZE__ 1"
+.LASF1796:
+ .string "SCHED_FLAG_RESET_ON_FORK 0x01"
+.LASF1660:
+ .string "wcrtomb"
+.LASF78:
+ .string "__DEPRECATED 1"
+.LASF1138:
+ .string "__glibcxx_apply 201603L"
+.LASF1494:
+ .string "_ALLOC_TRAITS_H 1"
+.LASF2376:
+ .string "func"
+.LASF2328:
+ .string "__value"
+.LASF2018:
+ .string "PTHREAD_ATTR_NO_SIGMASK_NP (-1)"
+.LASF1885:
+ .string "CPU_COUNT(cpusetp) __CPU_COUNT_S (sizeof (cpu_set_t), cpusetp)"
+.LASF910:
+ .string "_GLIBCXX_HAVE_POWL 1"
+.LASF2015:
+ .string "PTHREAD_CANCELED ((void *) -1)"
+.LASF1477:
+ .string "__glibcxx_requires_irreflexive_pred2(_First,_Last,_Pred) "
+.LASF2144:
+ .string "_ZNSt15__exception_ptr13exception_ptrC4Ev"
+.LASF2217:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEE7_M_headERKS4_"
+.LASF1942:
+ .string "MOD_NANO ADJ_NANO"
+.LASF960:
+ .string "_GLIBCXX_HAVE_TIMESPEC_GET 1"
+.LASF1257:
+ .string "__glibcxx_want_constexpr_utility"
+.LASF1006:
+ .string "_GLIBCXX_SYMVER 1"
+.LASF443:
+ .string "__code_model_small__ 1"
+.LASF1722:
+ .string "__SWORD_TYPE long int"
+.LASF266:
+ .string "__FLT16_DIG__ 3"
+.LASF1162:
+ .string "__glibcxx_logical_traits 201510L"
+.LASF2206:
+ .string "_Idx"
+.LASF568:
+ .string "__USE_XOPEN2KXSI"
+.LASF1286:
+ .string "__glibcxx_want_byteswap"
+.LASF2080:
+ .string "ATOMIC_INT_LOCK_FREE __GCC_ATOMIC_INT_LOCK_FREE"
+.LASF775:
+ .string "_PSTL_PAR_BACKEND_SERIAL "
+.LASF1785:
+ .string "_BITS_SCHED_H 1"
+.LASF1456:
+ .string "_GLIBCXX_DEBUG_MACRO_SWITCH_H 1"
+.LASF475:
+ .string "_GLIBCXX_CXX_CONFIG_H 1"
+.LASF944:
+ .string "_GLIBCXX_HAVE_SYS_RESOURCE_H 1"
+.LASF1591:
+ .string "_SIZET_ "
+.LASF51:
+ .string "__INT8_TYPE__ signed char"
+.LASF881:
+ .string "_GLIBCXX_HAVE_LIMIT_RSS 1"
+.LASF2167:
+ .string "__uniq_ptr_impl"
+.LASF449:
+ .string "__SSE2_MATH__ 1"
+.LASF410:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1"
+.LASF828:
+ .string "_GLIBCXX_HAVE_AT_QUICK_EXIT 1"
+.LASF444:
+ .string "__MMX__ 1"
+.LASF1557:
+ .string "__HAVE_DISTINCT_FLOAT32 0"
+.LASF1196:
+ .string "__glibcxx_hypot 201603L"
+.LASF1764:
+ .string "__CPU_MASK_TYPE __SYSCALL_ULONG_TYPE"
+.LASF2049:
+ .string "_STDDEF_H_ "
+.LASF1296:
+ .string "__glibcxx_want_freestanding_string_view"
+.LASF612:
+ .string "_ATFILE_SOURCE 1"
+.LASF1291:
+ .string "__glibcxx_want_freestanding_algorithm"
+.LASF2147:
+ .string "_ZNSt15__exception_ptr13exception_ptrC4EOS0_"
+.LASF2060:
+ .string "__DEFINED_ptrdiff_t "
+.LASF1394:
+ .string "__cpp_lib_is_aggregate 201703L"
+.LASF494:
+ .string "_GLIBCXX20_DEPRECATED_SUGGEST(ALT) "
+.LASF1752:
+ .string "__CLOCK_T_TYPE __SYSCALL_SLONG_TYPE"
+.LASF2194:
+ .string "_M_head_impl"
+.LASF299:
+ .string "__FLT64_MIN_EXP__ (-1021)"
+.LASF131:
+ .string "__cpp_template_template_args 201611L"
+.LASF1935:
+ .string "MOD_ESTERROR ADJ_ESTERROR"
+.LASF1421:
+ .string "_GLIBCXX_DEBUG_ASSERTIONS_H 1"
+.LASF1333:
+ .string "__glibcxx_want_string_resize_and_overwrite"
+.LASF1971:
+ .string "__SIZEOF_PTHREAD_ATTR_T 56"
+.LASF1356:
+ .string "__try try"
+.LASF1156:
+ .string "__glibcxx_want_is_aggregate"
+.LASF1321:
+ .string "__glibcxx_want_flat_map"
+.LASF735:
+ .string "__attribute_struct_may_alias__ __attribute__ ((__may_alias__))"
+.LASF1563:
+ .string "__HAVE_FLOATN_NOT_TYPEDEF 0"
+.LASF447:
+ .string "__FXSR__ 1"
+.LASF590:
+ .string "_ISOC95_SOURCE 1"
+.LASF1197:
+ .string "__glibcxx_want_hypot"
+.LASF67:
+ .string "__INT_FAST8_TYPE__ signed char"
+.LASF2010:
+ .string "PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, 0, 0, {0, 0}, 0, 0 } }"
+.LASF2399:
+ .string "__args"
+.LASF2047:
+ .string "_CXXABI_INIT_EXCEPTION_H 1"
+.LASF1256:
+ .string "__glibcxx_want_interpolate"
+.LASF562:
+ .string "__USE_POSIX199309"
+.LASF2290:
+ .string "get<0, Base*, std::default_delete<Base> >"
+.LASF1425:
+ .string "_GLIBCXX_DEBUG_ASSERT(_Condition) "
+.LASF1837:
+ .string "CLONE_VM 0x00000100"
+.LASF1440:
+ .string "_GLIBCXX_INT_N_TRAITS"
+.LASF2122:
+ .string "_PSTL_GLUE_MEMORY_DEFS_H "
+.LASF452:
+ .string "__SEG_GS 1"
+.LASF1867:
+ .string "__CPUMASK(cpu) ((__cpu_mask) 1 << ((cpu) % __NCPUBITS))"
+.LASF658:
+ .string "__THROW noexcept (true)"
+.LASF502:
+ .string "_GLIBCXX_USE_CONSTEXPR constexpr"
+.LASF820:
+ .string "_GLIBCXX_HAVE_ASINF 1"
+.LASF331:
+ .string "__FLT32X_MIN_EXP__ (-1021)"
+.LASF401:
+ .string "__DEC64X_MIN__ 1E-6143D64x"
+.LASF1911:
+ .string "CLOCK_MONOTONIC_COARSE 6"
+.LASF1599:
+ .string "__WCHAR_T "
+.LASF2192:
+ .string "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EE7_M_headERS3_"
+.LASF233:
+ .string "__DBL_DIG__ 15"
+.LASF2132:
+ .string "__exception_ptr"
+.LASF1866:
+ .string "__CPUELT(cpu) ((cpu) / __NCPUBITS)"
+.LASF464:
+ .string "__STDC_IEC_559__ 1"
+.LASF1396:
+ .string "__cpp_lib_logical_traits 201510L"
+.LASF438:
+ .string "__ATOMIC_HLE_ACQUIRE 65536"
+.LASF2209:
+ .string "_ZNSt10_Head_baseILm0EP4BaseLb0EEC4ERKS1_"
+.LASF1426:
+ .string "_GLIBCXX_DEBUG_PEDASSERT(_Condition) "
+.LASF387:
+ .string "__DEC64_MIN__ 1E-383DD"
+.LASF1125:
+ .string "__glibcxx_want_generic_associative_lookup"
+.LASF2177:
+ .string "_ZNKSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE10_M_deleterEv"
+.LASF1914:
+ .string "CLOCK_BOOTTIME_ALARM 9"
+.LASF2057:
+ .string "___int_ptrdiff_t_h "
+.LASF1573:
+ .string "__need_wchar_t "
+.LASF2365:
+ .string "_ZNSt10_Head_baseILm0EP4BaseLb0EEC2Ev"
+.LASF661:
+ .string "__NTHNL(fct) fct __THROW"
+.LASF728:
+ .string "__HAVE_GENERIC_SELECTION 0"
+.LASF1408:
+ .string "__allocator_base"
+.LASF326:
+ .string "__FLT128_HAS_INFINITY__ 1"
+.LASF1109:
+ .string "__glibcxx_want_transformation_trait_aliases"
+.LASF26:
+ .string "__SIZEOF_SHORT__ 2"
+.LASF1106:
+ .string "__glibcxx_null_iterators 201304L"
+.LASF783:
+ .string "_PSTL_USAGE_WARNINGS 0"
+.LASF1769:
+ .string "__KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1"
+.LASF2345:
+ .string "tm_isdst"
+.LASF1646:
+ .string "mbrtowc"
+.LASF631:
+ .string "_LARGEFILE_SOURCE 1"
+.LASF151:
+ .string "__LONG_WIDTH__ 64"
+.LASF171:
+ .string "__UINT8_MAX__ 0xff"
+.LASF1544:
+ .string "__HAVE_FLOAT128 1"
+.LASF1060:
+ .string "_GLIBCXX_USE_WCHAR_T 1"
+.LASF1704:
+ .string "_GLIBCXX_MEM_FN_TRAITS2"
+.LASF1225:
+ .string "__glibcxx_want_bind_back"
+.LASF2012:
+ .string "PTHREAD_CANCEL_DISABLE PTHREAD_CANCEL_DISABLE"
+.LASF684:
+ .string "__REDIRECT_FORTIFY __REDIRECT"
+.LASF461:
+ .string "__DECIMAL_BID_FORMAT__ 1"
+.LASF1133:
+ .string "__glibcxx_want_string_udls"
+.LASF792:
+ .string "_PSTL_PRAGMA_DECLARE_SIMD _PSTL_PRAGMA(omp declare simd)"
+.LASF2182:
+ .string "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE4swapERS3_"
+.LASF1538:
+ .string "__GLIBC_USE_IEC_60559_FUNCS_EXT 1"
+.LASF1437:
+ .string "__INT_N"
+.LASF967:
+ .string "_GLIBCXX_HAVE_UTIME_H 1"
+.LASF203:
+ .string "__UINT_FAST8_MAX__ 0xff"
+.LASF1021:
+ .string "_GLIBCXX_USE_C99_MATH_TR1 1"
+.LASF1000:
+ .string "_GLIBCXX_HOSTED __STDC_HOSTED__"
+.LASF1176:
+ .string "__glibcxx_gcd_lcm 201606L"
+.LASF1674:
+ .string "wcsrtombs"
+.LASF1686:
+ .string "wmemcpy"
+.LASF2088:
+ .string "_GLIBCXX_TSAN_MUTEX_DESTROY(X) "
+.LASF1242:
+ .string "__glibcxx_want_is_nothrow_convertible"
+.LASF681:
+ .string "__REDIRECT_NTHNL(name,proto,alias) name proto __THROWNL __asm__ (__ASMNAME (#alias))"
+.LASF242:
+ .string "__DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L)"
+.LASF1853:
+ .string "CLONE_CHILD_SETTID 0x01000000"
+.LASF966:
+ .string "_GLIBCXX_HAVE_USELOCALE 1"
+.LASF191:
+ .string "__UINT_LEAST32_MAX__ 0xffffffffU"
+.LASF2136:
+ .string "_ZNSt15allocator_arg_tC4Ev"
+.LASF1474:
+ .string "__glibcxx_requires_irreflexive(_First,_Last) "
+.LASF303:
+ .string "__FLT64_DECIMAL_DIG__ 17"
+.LASF122:
+ .string "__cpp_noexcept_function_type 201510L"
+.LASF523:
+ .string "_GLIBCXX_DEFAULT_ABI_TAG _GLIBCXX_ABI_TAG_CXX11"
+.LASF525:
+ .string "_GLIBCXX_BEGIN_NAMESPACE_VERSION "
+.LASF1037:
+ .string "_GLIBCXX_USE_LFS 1"
+.LASF1260:
+ .string "__glibcxx_want_constexpr_numeric"
+.LASF953:
+ .string "_GLIBCXX_HAVE_SYS_UIO_H 1"
+.LASF1580:
+ .string "_T_SIZE "
+.LASF1026:
+ .string "_GLIBCXX_USE_CLOCK_MONOTONIC 1"
+.LASF1533:
+ .string "__GLIBC_USE_IEC_60559_BFP_EXT_C23"
+.LASF1547:
+ .string "__HAVE_FLOAT64X_LONG_DOUBLE 1"
+.LASF1845:
+ .string "CLONE_THREAD 0x00010000"
+.LASF1434:
+ .string "_EXT_NUMERIC_TRAITS 1"
+.LASF291:
+ .string "__FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32"
+.LASF194:
+ .string "__UINT64_C(c) c ## UL"
+.LASF1974:
+ .string "__SIZEOF_PTHREAD_MUTEXATTR_T 4"
+.LASF18:
+ .string "__ATOMIC_CONSUME 1"
+.LASF715:
+ .string "__attribute_copy__"
+.LASF741:
+ .string "__stub_revoke "
+.LASF60:
+ .string "__INT_LEAST16_TYPE__ short int"
+.LASF712:
+ .string "__glibc_unlikely(cond) __builtin_expect ((cond), 0)"
+.LASF2346:
+ .string "tm_gmtoff"
+.LASF1277:
+ .string "__glibcxx_want_generic_unordered_lookup"
+.LASF1733:
+ .string "__UID_T_TYPE __U32_TYPE"
+.LASF1318:
+ .string "__glibcxx_want_constexpr_bitset"
+.LASF1100:
+ .string "__glibcxx_integral_constant_callable 201304L"
+.LASF1515:
+ .string "_BACKWARD_BINDERS_H 1"
+.LASF1410:
+ .string "_STL_CONSTRUCT_H 1"
+.LASF361:
+ .string "__BFLT16_MANT_DIG__ 8"
+.LASF894:
+ .string "_GLIBCXX_HAVE_MBSTATE_T 1"
+.LASF263:
+ .string "__LDBL_HAS_QUIET_NAN__ 1"
+.LASF1168:
+ .string "__glibcxx_type_trait_variable_templates 201510L"
+.LASF626:
+ .string "__USE_XOPEN2K8 1"
+.LASF2298:
+ .string "_S_mutex"
+.LASF676:
+ .string "__errordecl(name,msg) extern void name (void) __attribute__((__error__ (msg)))"
+.LASF2258:
+ .string "_ZNKSt10unique_ptrI4BaseSt14default_deleteIS0_EEptEv"
+.LASF1087:
+ .string "__glibcxx_is_swappable 201603L"
+.LASF1235:
+ .string "__glibcxx_want_endian"
+.LASF416:
+ .string "__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2"
+.LASF787:
+ .string "_PSTL_STRING_CONCAT(x,y) x #y"
+.LASF875:
+ .string "_GLIBCXX_HAVE_LDEXPF 1"
+.LASF61:
+ .string "__INT_LEAST32_TYPE__ int"
+.LASF2069:
+ .string "_GLIBCXX_EH_PTR_USED"
+.LASF955:
+ .string "_GLIBCXX_HAVE_TANF 1"
+.LASF431:
+ .string "__SIZEOF_PTRDIFF_T__ 8"
+.LASF752:
+ .string "_GLIBCXX_PSEUDO_VISIBILITY(V) "
+.LASF2096:
+ .string "_BACKWARD_AUTO_PTR_H 1"
+.LASF2383:
+ .string "type_info"
+.LASF958:
+ .string "_GLIBCXX_HAVE_TANL 1"
+.LASF535:
+ .string "_GLIBCXX_LONG_DOUBLE_COMPAT"
+.LASF472:
+ .string "__WORDSIZE 64"
+.LASF338:
+ .string "__FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x"
+.LASF1763:
+ .string "__SSIZE_T_TYPE __SWORD_TYPE"
+.LASF1249:
+ .string "__glibcxx_want_ssize"
+.LASF1512:
+ .string "__cpp_lib_make_from_tuple 201606L"
+.LASF132:
+ .string "__cpp_threadsafe_static_init 200806L"
+.LASF1076:
+ .string "__glibcxx_want_incomplete_container_elements"
+.LASF343:
+ .string "__FLT32X_HAS_QUIET_NAN__ 1"
+.LASF1206:
+ .string "__glibcxx_parallel_algorithm 201603L"
+.LASF39:
+ .string "__GNUC_EXECUTION_CHARSET_NAME \"UTF-8\""
+.LASF5:
+ .string "__STDC_EMBED_NOT_FOUND__ 0"
+.LASF611:
+ .string "_ATFILE_SOURCE"
+.LASF963:
+ .string "_GLIBCXX_HAVE_UCHAR_H 1"
+.LASF746:
+ .string "_GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC __GLIBC_PREREQ(2,23)"
+.LASF1636:
+ .string "fgetwc"
+.LASF1158:
+ .string "__glibcxx_want_is_invocable"
+.LASF733:
+ .string "__attr_dealloc_free __attr_dealloc (__builtin_free, 1)"
+.LASF2271:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEC4IS2_vEEPS0_"
+.LASF2046:
+ .string "_EXCEPTION_PTR_H "
+.LASF234:
+ .string "__DBL_MIN_EXP__ (-1021)"
+.LASF347:
+ .string "__FLT64X_MIN_EXP__ (-16381)"
+.LASF1414:
+ .string "_STL_ITERATOR_BASE_FUNCS_H 1"
+.LASF1637:
+ .string "fgetws"
+.LASF1308:
+ .string "__glibcxx_want_ranges_repeat"
+.LASF971:
+ .string "_GLIBCXX_HAVE_WCHAR_H 1"
+.LASF598:
+ .string "_ISOC2Y_SOURCE 1"
+.LASF2366:
+ .string "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEC2Ev"
+.LASF2168:
+ .string "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EEC4Ev"
+.LASF1903:
+ .string "_BITS_TIME_H 1"
+.LASF483:
+ .string "_GLIBCXX_VISIBILITY(V) __attribute__ ((__visibility__ (#V)))"
+.LASF1416:
+ .string "__glibcxx_function_requires(...) "
+.LASF1433:
+ .string "__glibcxx_no_dangling_refs"
+.LASF411:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1"
+.LASF1112:
+ .string "__glibcxx_tuple_element_t 201402L"
+.LASF1953:
+ .string "STA_PPSWANDER 0x0400"
+.LASF1767:
+ .string "__RLIM_T_MATCHES_RLIM64_T 1"
+.LASF1876:
+ .string "__CPU_ALLOC(count) __sched_cpualloc (count)"
+.LASF600:
+ .string "_POSIX_SOURCE 1"
+.LASF1097:
+ .string "__glibcxx_want_exchange_function"
+.LASF1155:
+ .string "__glibcxx_is_aggregate 201703L"
+.LASF1919:
+ .string "ADJ_OFFSET 0x0001"
+.LASF1877:
+ .string "__CPU_FREE(cpuset) __sched_cpufree (cpuset)"
+.LASF1612:
+ .string "NULL"
+.LASF381:
+ .string "__DEC32_MAX__ 9.999999E96DF"
+.LASF1854:
+ .string "CLONE_NEWCGROUP 0x02000000"
+.LASF1931:
+ .string "ADJ_OFFSET_SS_READ 0xa001"
+.LASF1127:
+ .string "__glibcxx_want_make_unique"
+.LASF594:
+ .string "_ISOC11_SOURCE 1"
+.LASF1664:
+ .string "wcscoll"
+.LASF714:
+ .string "__attribute_nonstring__ __attribute__ ((__nonstring__))"
+.LASF1760:
+ .string "__TIMER_T_TYPE void *"
+.LASF2398:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED2Ev"
+.LASF2107:
+ .string "__glibcxx_want_ranges "
+.LASF1771:
+ .string "_BITS_TIME64_H 1"
+.LASF961:
+ .string "_GLIBCXX_HAVE_TLS 1"
+.LASF2097:
+ .string "__glibcxx_want_allocator_traits_is_always_equal "
+.LASF1871:
+ .string "__CPU_ISSET_S(cpu,setsize,cpusetp) (__extension__ ({ size_t __cpu = (cpu); __cpu / 8 < (setsize) ? ((((const __cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] & __CPUMASK (__cpu))) != 0 : 0; }))"
+.LASF1838:
+ .string "CLONE_FS 0x00000200"
+.LASF341:
+ .string "__FLT32X_HAS_DENORM__ 1"
+.LASF855:
+ .string "_GLIBCXX_HAVE_FLOORF 1"
+.LASF2332:
+ .string "__isoc23_fwscanf"
+.LASF662:
+ .string "__COLD __attribute__ ((__cold__))"
+.LASF790:
+ .string "_PSTL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)"
+.LASF295:
+ .string "__FLT32_HAS_QUIET_NAN__ 1"
+.LASF2103:
+ .string "__glibcxx_want_enable_shared_from_this "
+.LASF82:
+ .string "__GXX_CONSTEXPR_ASM__ 1"
+.LASF1673:
+ .string "wcsrchr"
+.LASF647:
+ .string "__GNU_LIBRARY__ 6"
+.LASF2310:
+ .string "long long int"
+.LASF1355:
+ .string "_EXCEPTION_DEFINES_H 1"
+.LASF7:
+ .string "__STDC_EMBED_EMPTY__ 2"
+.LASF2092:
+ .string "_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK(X) "
+.LASF1948:
+ .string "STA_DEL 0x0020"
+.LASF1947:
+ .string "STA_INS 0x0010"
+.LASF1954:
+ .string "STA_PPSERROR 0x0800"
+.LASF1273:
+ .string "__glibcxx_want_constexpr_string"
+.LASF1899:
+ .string "CPU_ALLOC_SIZE(count) __CPU_ALLOC_SIZE (count)"
+.LASF127:
+ .string "__cpp_nontype_template_parameter_auto 201606L"
+.LASF397:
+ .string "__DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL"
+.LASF779:
+ .string "_PSTL_VERSION 17000"
+.LASF1373:
+ .string "__glibcxx_want_is_scoped_enum "
+.LASF947:
+ .string "_GLIBCXX_HAVE_SYS_SOCKET_H 1"
+.LASF300:
+ .string "__FLT64_MIN_10_EXP__ (-307)"
+.LASF267:
+ .string "__FLT16_MIN_EXP__ (-13)"
+.LASF1111:
+ .string "__glibcxx_want_transparent_operators"
+.LASF1166:
+ .string "__glibcxx_not_fn 201603L"
+.LASF768:
+ .string "_GLIBCXX_HAS_BUILTIN(B) __has_builtin(B)"
+.LASF2062:
+ .string "offsetof"
+.LASF1012:
+ .string "_GLIBCXX_USE_C99_CTYPE 1"
+.LASF159:
+ .string "__INTMAX_MAX__ 0x7fffffffffffffffL"
+.LASF1983:
+ .string "__PTHREAD_MUTEX_HAVE_PREV 1"
+.LASF2038:
+ .string "_GLIBCXX_ATOMIC_WORD_H 1"
+.LASF92:
+ .string "__cpp_rvalue_reference 200610L"
+.LASF2031:
+ .string "__GTHREAD_COND_INIT PTHREAD_COND_INITIALIZER"
+.LASF172:
+ .string "__UINT16_MAX__ 0xffff"
+.LASF2045:
+ .string "__cpp_lib_uncaught_exceptions 201411L"
+.LASF695:
+ .string "__attribute_deprecated_msg__(msg) __attribute__ ((__deprecated__ (msg)))"
+.LASF1487:
+ .string "_GLIBCXX_TO_ADDR(P) P"
+.LASF2020:
+ .string "pthread_cleanup_push(routine,arg) do { __pthread_cleanup_class __clframe (routine, arg)"
+.LASF1706:
+ .string "_GLIBCXX_ATOMICITY_H 1"
+.LASF354:
+ .string "__FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x"
+.LASF794:
+ .string "_PSTL_PRAGMA_FORCEINLINE "
+.LASF1187:
+ .string "__glibcxx_want_sample"
+.LASF1409:
+ .string "_STL_TEMPBUF_H 1"
+.LASF2035:
+ .string "__gthrw(name) __gthrw2(__gthrw_ ## name,name,name)"
+.LASF655:
+ .string "__glibc_has_extension(ext) __has_extension (ext)"
+.LASF868:
+ .string "_GLIBCXX_HAVE_INTTYPES_H 1"
+.LASF1358:
+ .string "__throw_exception_again throw"
+.LASF445:
+ .string "__SSE__ 1"
+.LASF403:
+ .string "__DEC64X_EPSILON__ 1E-33D64x"
+.LASF1653:
+ .string "ungetwc"
+.LASF546:
+ .string "_GLIBCXX_ASSERT_FAIL(_Condition) std::__glibcxx_assert_fail(__FILE__, __LINE__, __PRETTY_FUNCTION__, #_Condition)"
+.LASF580:
+ .string "__GLIBC_USE_ISOC23"
+.LASF377:
+ .string "__DEC32_MANT_DIG__ 7"
+.LASF575:
+ .string "__USE_ATFILE"
+.LASF509:
+ .string "_GLIBCXX_NOEXCEPT noexcept"
+.LASF527:
+ .string "_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(X) inline namespace X {"
+.LASF2205:
+ .string "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEE7_M_swapERS3_"
+.LASF2000:
+ .string "PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_ERRORCHECK_NP) } }"
+.LASF1582:
+ .string "_SIZE_T_ "
+.LASF332:
+ .string "__FLT32X_MIN_10_EXP__ (-307)"
+.LASF1310:
+ .string "__glibcxx_want_ranges_cartesian_product"
+.LASF1986:
+ .string "__PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0, 0, 0, 0, 0 }"
+.LASF457:
+ .string "__unix 1"
+.LASF717:
+ .string "__LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0"
+.LASF262:
+ .string "__LDBL_HAS_INFINITY__ 1"
+.LASF1989:
+ .string "__have_pthread_attr_t 1"
+.LASF1887:
+ .string "CPU_CLR_S(cpu,setsize,cpusetp) __CPU_CLR_S (cpu, setsize, cpusetp)"
+.LASF1485:
+ .string "__glibcxx_want_int_pow2 "
+.LASF697:
+ .string "__attribute_format_strfmon__(a,b) __attribute__ ((__format__ (__strfmon__, a, b)))"
+.LASF1254:
+ .string "__glibcxx_want_unwrap_ref"
+.LASF2300:
+ .string "long unsigned int"
+.LASF1353:
+ .string "_GLIBCXX_PLACEMENT_CONSTEXPR"
+.LASF861:
+ .string "_GLIBCXX_HAVE_GETENTROPY 1"
+.LASF1129:
+ .string "__glibcxx_want_quoted_string_io"
+.LASF1359:
+ .string "_MOVE_H 1"
+.LASF581:
+ .string "__GLIBC_USE_ISOC2Y"
+.LASF1697:
+ .string "__GXX_MERGED_TYPEINFO_NAMES 0"
+.LASF1536:
+ .string "__GLIBC_USE_IEC_60559_EXT 1"
+.LASF224:
+ .string "__FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF1252:
+ .string "__glibcxx_want_to_array"
+.LASF1198:
+ .string "__glibcxx_map_try_emplace 201411L"
+.LASF2033:
+ .string "__gthrw2(name,name2,type) "
+.LASF932:
+ .string "_GLIBCXX_HAVE_STRINGS_H 1"
+.LASF904:
+ .string "_GLIBCXX_HAVE_O_NONBLOCK 1"
+.LASF11:
+ .string "__VERSION__ \"15.1.1 20250425 (Red Hat 15.1.1-1)\""
+.LASF466:
+ .string "__STDC_IEC_559_COMPLEX__ 1"
+.LASF2017:
+ .string "PTHREAD_BARRIER_SERIAL_THREAD -1"
+.LASF1103:
+ .string "__glibcxx_want_is_final"
+.LASF390:
+ .string "__DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD"
+.LASF29:
+ .string "__SIZEOF_LONG_DOUBLE__ 16"
+.LASF2089:
+ .string "_GLIBCXX_TSAN_MUTEX_TRY_LOCK(X) "
+.LASF68:
+ .string "__INT_FAST16_TYPE__ long int"
+.LASF1628:
+ .string "_BITS_TYPES_LOCALE_T_H 1"
+.LASF680:
+ .string "__REDIRECT_NTH(name,proto,alias) name proto __THROW __asm__ (__ASMNAME (#alias))"
+.LASF789:
+ .string "_PSTL_HIDE_FROM_ABI_POP "
+.LASF1749:
+ .string "__FSFILCNT_T_TYPE __SYSCALL_ULONG_TYPE"
+.LASF309:
+ .string "__FLT64_HAS_DENORM__ 1"
+.LASF1272:
+ .string "__glibcxx_constexpr_string 201611L"
+.LASF1152:
+ .string "__glibcxx_want_hardware_interference_size"
+.LASF319:
+ .string "__FLT128_DECIMAL_DIG__ 36"
+.LASF228:
+ .string "__FLT_HAS_DENORM__ 1"
+.LASF964:
+ .string "_GLIBCXX_HAVE_UNISTD_H 1"
+.LASF2359:
+ .string "_ZNSt13__uses_alloc05_SinkaSEPKv"
+.LASF2326:
+ .string "__wchb"
+.LASF2313:
+ .string "char16_t"
+.LASF1497:
+ .string "_USES_ALLOCATOR_H 1"
+.LASF1742:
+ .string "__PID_T_TYPE __S32_TYPE"
+.LASF2389:
+ .string "_Lock_policy"
+.LASF101:
+ .string "__cpp_return_type_deduction 201304L"
+.LASF1336:
+ .string "__glibcxx_want_unreachable"
+.LASF2064:
+ .string "_GCC_MAX_ALIGN_T "
+.LASF1420:
+ .string "__glibcxx_class_requires4(_a,_b,_c,_d,_e) "
+.LASF1319:
+ .string "__glibcxx_want_stdatomic_h"
+.LASF1270:
+ .string "__glibcxx_want_constexpr_complex"
+.LASF1401:
+ .string "_GLIBCXX_FORWARD(_Tp,__val) std::forward<_Tp>(__val)"
+.LASF1091:
+ .string "__glibcxx_enable_shared_from_this 201603L"
+.LASF1463:
+ .string "__glibcxx_requires_sorted_pred(_First,_Last,_Pred) "
+.LASF256:
+ .string "__LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L"
+.LASF1375:
+ .string "__glibcxx_want_is_virtual_base_of "
+.LASF27:
+ .string "__SIZEOF_FLOAT__ 4"
+.LASF1275:
+ .string "__glibcxx_want_constrained_equality"
+.LASF2375:
+ .string "main"
+.LASF1141:
+ .string "__glibcxx_want_as_const"
+.LASF396:
+ .string "__DEC128_EPSILON__ 1E-33DL"
+.LASF1576:
+ .string "__SIZE_T__ "
+.LASF2174:
+ .string "_ZNKSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE6_M_ptrEv"
+.LASF1991:
+ .string "____sigset_t_defined "
+.LASF778:
+ .string "_PSTL_CONFIG_H "
+.LASF1879:
+ .string "__sched_priority sched_priority"
+.LASF982:
+ .string "_GLIBCXX_PACKAGE_URL \"\""
+.LASF63:
+ .string "__UINT_LEAST8_TYPE__ unsigned char"
+.LASF1738:
+ .string "__NLINK_T_TYPE __SYSCALL_ULONG_TYPE"
+.LASF468:
+ .string "__STDC_ISO_10646__ 201706L"
+.LASF251:
+ .string "__LDBL_MIN_10_EXP__ (-4931)"
+.LASF1902:
+ .string "_TIME_H 1"
+.LASF2117:
+ .string "__cpp_lib_transparent_operators 201510L"
+.LASF1654:
+ .string "vfwprintf"
+.LASF675:
+ .string "__warnattr(msg) __attribute__((__warning__ (msg)))"
+.LASF1449:
+ .string "_GLIBCXX_SIZED_DEALLOC(T,p,n) (p), (n) * sizeof(T)"
+.LASF2207:
+ .string "_Head_base<0, Base*, false>"
+.LASF629:
+ .string "__USE_UNIX98 1"
+.LASF48:
+ .string "__CHAR16_TYPE__ short unsigned int"
+.LASF1834:
+ .string "SCHED_ATTR_SIZE_VER1 56"
+.LASF544:
+ .string "_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED 1"
+.LASF545:
+ .string "_GLIBCXX_VERBOSE_ASSERT 1"
+.LASF642:
+ .string "__USE_FORTIFY_LEVEL 0"
+.LASF627:
+ .string "__USE_XOPEN 1"
+.LASF624:
+ .string "__USE_POSIX199506 1"
+.LASF1216:
+ .string "__glibcxx_unordered_map_try_emplace 201411L"
+.LASF2304:
+ .string "unsigned int"
+.LASF797:
+ .string "_PSTL_PRAGMA_SIMD_EXCLUSIVE_SCAN(PRM) _PSTL_PRAGMA(omp scan exclusive(PRM))"
+.LASF1177:
+ .string "__glibcxx_want_gcd_lcm"
+.LASF2025:
+ .string "__GTHREAD_INLINE inline __GTHREAD_ALWAYS_INLINE"
+.LASF2360:
+ .string "_ZdlPvm"
+.LASF1108:
+ .string "__glibcxx_transformation_trait_aliases 201304L"
+.LASF921:
+ .string "_GLIBCXX_HAVE_SINL 1"
+.LASF2364:
+ .string "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC2Ev"
+.LASF1756:
+ .string "__SUSECONDS64_T_TYPE __SQUAD_TYPE"
+.LASF2295:
+ .string "__cxx11"
+.LASF2135:
+ .string "exception_ptr"
+.LASF1367:
+ .string "__glibcxx_want_is_final "
+.LASF2196:
+ .string "_Tuple_impl<1, std::default_delete<Base> >"
+.LASF700:
+ .string "__returns_nonnull __attribute__ ((__returns_nonnull__))"
+.LASF1782:
+ .string "__FLOAT_WORD_ORDER __BYTE_ORDER"
+.LASF1302:
+ .string "__glibcxx_want_ranges_to_container"
+.LASF2094:
+ .string "_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL(X) "
+.LASF1157:
+ .string "__glibcxx_is_invocable 201703L"
+.LASF225:
+ .string "__FLT_MIN__ 1.17549435082228750796873653722224568e-38F"
+.LASF1130:
+ .string "__glibcxx_shared_timed_mutex 201402L"
+.LASF991:
+ .string "_GLIBCXX98_USE_C99_COMPLEX 1"
+.LASF634:
+ .string "__USE_LARGEFILE 1"
+.LASF722:
+ .string "__LDBL_REDIR2_DECL(name) "
+.LASF42:
+ .string "__SIZE_TYPE__ long unsigned int"
+.LASF252:
+ .string "__LDBL_MAX_EXP__ 16384"
+.LASF1153:
+ .string "__glibcxx_invoke 201411L"
+.LASF2308:
+ .string "short int"
+.LASF450:
+ .string "__MMX_WITH_SSE__ 1"
+.LASF1875:
+ .string "__CPU_ALLOC_SIZE(count) ((((count) + __NCPUBITS - 1) / __NCPUBITS) * sizeof (__cpu_mask))"
+.LASF9:
+ .string "__GNUC_MINOR__ 1"
+.LASF1413:
+ .string "_GLIBCXX26_ALGO_DEF_VAL_T(_Iterator) "
+.LASF2:
+ .string "__STDC_UTF_16__ 1"
+.LASF2087:
+ .string "ATOMIC_FLAG_INIT { 0 }"
+.LASF471:
+ .string "_CPP_CPPCONFIG_WRAPPER 1"
+.LASF1703:
+ .string "_GLIBCXX_MEM_FN_TRAITS"
+.LASF97:
+ .string "__cpp_nsdmi 200809L"
+.LASF21:
+ .string "_LP64 1"
+.LASF1881:
+ .string "CPU_SET(cpu,cpusetp) __CPU_SET_S (cpu, sizeof (cpu_set_t), cpusetp)"
+.LASF1023:
+ .string "_GLIBCXX_USE_C99_STDINT_TR1 1"
+.LASF86:
+ .string "__cpp_raw_strings 200710L"
+.LASF1392:
+ .string "__cpp_lib_bool_constant 201505L"
+.LASF1810:
+ .string "__ASM_X86_BITSPERLONG_H "
+.LASF1726:
+ .string "__S64_TYPE long int"
+.LASF2120:
+ .string "__cpp_lib_parallel_algorithm 201603L"
+.LASF1622:
+ .string "__wint_t_defined 1"
+.LASF205:
+ .string "__UINT_FAST32_MAX__ 0xffffffffffffffffUL"
+.LASF83:
+ .string "__cpp_binary_literals 201304L"
+.LASF541:
+ .string "_GLIBCXX_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_NAMESPACE_CXX11"
+.LASF1816:
+ .string "__struct_group_tag(TAG) "
+.LASF1316:
+ .string "__glibcxx_want_ranges_iota"
+.LASF196:
+ .string "__INT_FAST8_WIDTH__ 8"
+.LASF162:
+ .string "__UINTMAX_C(c) c ## UL"
+.LASF1332:
+ .string "__glibcxx_want_string_contains"
+.LASF1399:
+ .string "_GLIBCXX_FWDREF(_Tp) _Tp&&"
+.LASF1072:
+ .string "__glibcxx_want_hardware_interference_size "
+.LASF749:
+ .string "_GLIBCXX_NATIVE_THREAD_ID pthread_self()"
+.LASF2101:
+ .string "__glibcxx_want_constexpr_dynamic_alloc "
+.LASF43:
+ .string "__PTRDIFF_TYPE__ long int"
+.LASF2223:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEC4ERKS1_RKS3_"
+.LASF1299:
+ .string "__glibcxx_want_is_scoped_enum"
+.LASF187:
+ .string "__UINT_LEAST8_MAX__ 0xff"
+.LASF289:
+ .string "__FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF619:
+ .string "__USE_ISOC95 1"
+.LASF534:
+ .string "_GLIBCXX_END_NAMESPACE_ALGO "
+.LASF1203:
+ .string "__glibcxx_want_memory_resource"
+.LASF175:
+ .string "__INT_LEAST8_MAX__ 0x7f"
+.LASF185:
+ .string "__INT64_C(c) c ## L"
+.LASF529:
+ .string "_GLIBCXX_STD_C std"
+.LASF901:
+ .string "_GLIBCXX_HAVE_NETINET_IN_H 1"
+.LASF532:
+ .string "_GLIBCXX_STD_A std"
+.LASF1669:
+ .string "wcsncat"
+.LASF760:
+ .string "_GLIBCXX_USE_C99_MATH _GLIBCXX11_USE_C99_MATH"
+.LASF1529:
+ .string "__GLIBC_USE_LIB_EXT2"
+.LASF10:
+ .string "__GNUC_PATCHLEVEL__ 1"
+.LASF709:
+ .string "__va_arg_pack() __builtin_va_arg_pack ()"
+ .hidden __dso_handle
+ .globl __gxx_personality_v0
+ .ident "GCC: (GNU) 15.1.1 20250425 (Red Hat 15.1.1-1)"
+ .section .note.GNU-stack,"",@progbits
diff --git a/binutils/testsuite/binutils-all/x86-64/dwarf5.s b/binutils/testsuite/binutils-all/x86-64/dwarf5.s
new file mode 100644
index 0000000..46f2d9b
--- /dev/null
+++ b/binutils/testsuite/binutils-all/x86-64/dwarf5.s
@@ -0,0 +1,26191 @@
+/* Assembly outputs of
+
+#include <memory>
+struct Base {};
+void func() {
+ static std::unique_ptr<Base> varStatic = std::make_unique<Base>();
+}
+int main(int, char**) {
+ func();
+ return 0;
+}
+
+compiled by GCC 15.1.1 with -g3 -O2 -dA -gdwarf-5. */
+
+ .file "dwarf.cc"
+ .text
+.Ltext0:
+ .file 0 "." "dwarf.cc"
+ .section .text._ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED2Ev,"axG",@progbits,_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED5Ev,comdat
+ .align 2
+ .p2align 4
+ .weak _ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED2Ev
+ .type _ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED2Ev, @function
+_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED2Ev:
+.LVL0:
+ # DEBUG this => di
+.LFB1565:
+ .file 1 "/usr/include/c++/15/bits/unique_ptr.h"
+ # /usr/include/c++/15/bits/unique_ptr.h:393:7
+ .loc 1 393 7 view -0
+ .cfi_startproc
+# BLOCK 2, count:1073741824 (estimated locally) seq:0
+# PRED: ENTRY [always] count:1073741824 (estimated locally, freq 1.0000) (FALLTHRU)
+ # DEBUG this => di
+.LBB143:
+.LBB144:
+.LBB145:
+.LBI145:
+ # /usr/include/c++/15/bits/unique_ptr.h:191:18
+ .loc 1 191 18 view .LVU1
+ # DEBUG this RESET
+ # DEBUG __ptr => di
+ # /usr/include/c++/15/bits/unique_ptr.h:191:18
+ .loc 1 191 18 is_stmt 0 view .LVU2
+.LBE145:
+ # /usr/include/c++/15/bits/unique_ptr.h:398:12
+ .loc 1 398 12 view .LVU3
+ movq (%rdi), %rdi
+.LVL1:
+ # DEBUG __ptr => entry_value
+ # DEBUG this => entry_value
+ # /usr/include/c++/15/bits/unique_ptr.h:398:2
+ .loc 1 398 2 view .LVU4
+ testq %rdi, %rdi
+# SUCC: 3 [53.5% (guessed)] count:574129752 (estimated locally, freq 0.5347) (FALLTHRU,CAN_FALLTHRU) 4 [46.5% (guessed)] count:499612072 (estimated locally, freq 0.4653) (CAN_FALLTHRU)
+ je .L1
+# BLOCK 3, count:574129752 (estimated locally) seq:1
+# PRED: 2 [53.5% (guessed)] count:574129752 (estimated locally, freq 0.5347) (FALLTHRU,CAN_FALLTHRU)
+.LVL2:
+ # DEBUG this => entry_value
+.LBB146:
+.LBI146:
+ # /usr/include/c++/15/bits/unique_ptr.h:478:7
+ .loc 1 478 7 is_stmt 1 view .LVU5
+ # DEBUG this RESET
+ # DEBUG __ptr => di
+ # /usr/include/c++/15/bits/unique_ptr.h:478:7
+ .loc 1 478 7 is_stmt 0 view .LVU6
+.LBE146:
+.LBB147:
+.LBI147:
+ # /usr/include/c++/15/bits/unique_ptr.h:87:7
+ .loc 1 87 7 is_stmt 1 view .LVU7
+.LBB148:
+ # /usr/include/c++/15/bits/unique_ptr.h:93:2
+ .loc 1 93 2 is_stmt 0 discriminator 1 view .LVU8
+ movl $1, %esi
+# SUCC: EXIT [always] count:574129752 (estimated locally, freq 0.5347) (ABNORMAL,SIBCALL)
+ jmp _ZdlPvm
+.LVL3:
+ # DEBUG __ptr RESET
+ # DEBUG __ptr RESET
+# BLOCK 4, count:499612072 (estimated locally) seq:2
+# PRED: 2 [46.5% (guessed)] count:499612072 (estimated locally, freq 0.4653) (CAN_FALLTHRU)
+ .p2align 4,,10
+ .p2align 3
+.L1:
+ # /usr/include/c++/15/bits/unique_ptr.h:93:2
+ .loc 1 93 2 discriminator 1 view .LVU9
+.LBE148:
+.LBE147:
+.LBE144:
+.LBE143:
+# SUCC: EXIT [always] count:499612072 (estimated locally, freq 0.4653)
+ # /usr/include/c++/15/bits/unique_ptr.h:401:7
+ .loc 1 401 7 view .LVU10
+ ret
+ .cfi_endproc
+.LFE1565:
+ .size _ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED2Ev, .-_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED2Ev
+ .weak _ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED1Ev
+ .set _ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED1Ev,_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED2Ev
+ .section .text.unlikely,"ax",@progbits
+.LCOLDB0:
+ .text
+.LHOTB0:
+ .p2align 4
+ .section .text.unlikely
+.Ltext_cold0:
+ .text
+ .globl _Z4funcv
+ .type _Z4funcv, @function
+_Z4funcv:
+.LFB1545:
+ .file 2 "dwarf.cc"
+ # dwarf.cc:3:13
+ .loc 2 3 13 is_stmt 1 view -0
+ .cfi_startproc
+ .cfi_personality 0x3,__gxx_personality_v0
+ .cfi_lsda 0x3,.LLSDA1545
+# BLOCK 2, count:1073741824 (estimated locally) seq:0
+# PRED: ENTRY [always] count:1073741824 (estimated locally, freq 1.0000) (FALLTHRU)
+ # dwarf.cc:4:2
+ .loc 2 4 2 view .LVU12
+ # dwarf.cc:4:66
+ .loc 2 4 66 is_stmt 0 view .LVU13
+ movzbl _ZGVZ4funcvE9varStatic(%rip), %eax
+ # dwarf.cc:4:66
+ .loc 2 4 66 discriminator 1 view .LVU14
+ testb %al, %al
+# SUCC: 4 [33.0% (guessed)] count:354334800 (estimated locally, freq 0.3300) (CAN_FALLTHRU) 3 [67.0% (guessed)] count:719407024 (estimated locally, freq 0.6700) (FALLTHRU,CAN_FALLTHRU)
+ je .L17
+# BLOCK 3, count:641063600 (estimated locally) seq:1
+# PRED: 2 [67.0% (guessed)] count:719407024 (estimated locally, freq 0.6700) (FALLTHRU,CAN_FALLTHRU)
+# SUCC: EXIT [always] count:641063600 (estimated locally, freq 0.5970)
+ ret
+# BLOCK 4, count:354334800 (estimated locally) seq:2
+# PRED: 2 [33.0% (guessed)] count:354334800 (estimated locally, freq 0.3300) (CAN_FALLTHRU)
+ .p2align 4,,10
+ .p2align 3
+.L17:
+ # dwarf.cc:3:13
+ .loc 2 3 13 view .LVU15
+ pushq %rbx
+ .cfi_def_cfa_offset 16
+ .cfi_offset 3, -16
+ # dwarf.cc:4:66
+ .loc 2 4 66 discriminator 2 view .LVU16
+ movl $_ZGVZ4funcvE9varStatic, %edi
+ call __cxa_guard_acquire
+.LVL4:
+ # dwarf.cc:4:66
+ .loc 2 4 66 discriminator 3 view .LVU17
+ testl %eax, %eax
+# SUCC: 6 [33.0% (guessed)] count:116930483 (estimated locally, freq 0.1089) (CAN_FALLTHRU) 5 [67.0% (guessed)] count:237404317 (estimated locally, freq 0.2211) (FALLTHRU,CAN_FALLTHRU)
+ jne .L18
+# BLOCK 5, count:315747741 (estimated locally) seq:3
+# PRED: 4 [67.0% (guessed)] count:237404317 (estimated locally, freq 0.2211) (FALLTHRU,CAN_FALLTHRU)
+ # dwarf.cc:5:1
+ .loc 2 5 1 view .LVU18
+ popq %rbx
+ .cfi_remember_state
+ .cfi_def_cfa_offset 8
+# SUCC: EXIT [always] count:315747741 (estimated locally, freq 0.2941)
+ ret
+# BLOCK 6, count:116930483 (estimated locally) seq:4
+# PRED: 4 [33.0% (guessed)] count:116930483 (estimated locally, freq 0.1089) (CAN_FALLTHRU)
+ .p2align 4,,10
+ .p2align 3
+.L18:
+ .cfi_restore_state
+.LBB149:
+.LBI149:
+ # /usr/include/c++/15/bits/unique_ptr.h:1084:5
+ .loc 1 1084 5 is_stmt 1 view .LVU19
+.LBB150:
+ # /usr/include/c++/15/bits/unique_ptr.h:1085:30
+ .loc 1 1085 30 is_stmt 0 view .LVU20
+ movl $1, %edi
+.LEHB0:
+# SUCC: 8 [never] count:0 (precise, freq 0.0000) (ABNORMAL,ABNORMAL_CALL,EH) 7 [always (adjusted)] count:116930483 (estimated locally, freq 0.1089) (FALLTHRU,CAN_FALLTHRU)
+ call _Znwm
+.LVL5:
+.LEHE0:
+# BLOCK 7, count:116930483 (estimated locally) seq:5
+# PRED: 6 [always (adjusted)] count:116930483 (estimated locally, freq 0.1089) (FALLTHRU,CAN_FALLTHRU)
+ # DEBUG this => `_ZZ4funcvE9varStatic'
+ # DEBUG __p => ax
+.LBB151:
+.LBI151:
+ # /usr/include/c++/15/bits/unique_ptr.h:311:2
+ .loc 1 311 2 is_stmt 1 view .LVU21
+ # DEBUG this => `_ZZ4funcvE9varStatic'
+ # DEBUG => ax
+.LBB152:
+.LBI152:
+ # /usr/include/c++/15/bits/unique_ptr.h:235:40
+ .loc 1 235 40 view .LVU22
+ # DEBUG this => `_ZZ4funcvE9varStatic'
+ # DEBUG __p => ax
+.LBB153:
+.LBI153:
+ # /usr/include/c++/15/bits/unique_ptr.h:170:7
+ .loc 1 170 7 view .LVU23
+ # DEBUG this => `_ZZ4funcvE9varStatic'
+.LBB154:
+.LBB155:
+.LBI155:
+ .file 3 "/usr/include/c++/15/tuple"
+ # /usr/include/c++/15/tuple:2090:2
+ .loc 3 2090 2 view .LVU24
+ # DEBUG this => `_ZZ4funcvE9varStatic'
+.LBB156:
+.LBI156:
+ # /usr/include/c++/15/tuple:302:17
+ .loc 3 302 17 view .LVU25
+ # DEBUG this => `_ZZ4funcvE9varStatic'
+.LBB157:
+.LBI157:
+ # /usr/include/c++/15/tuple:560:7
+ .loc 3 560 7 view .LVU26
+ # DEBUG this => `_ZZ4funcvE9varStatic'
+.LBB158:
+.LBI158:
+ # /usr/include/c++/15/tuple:93:17
+ .loc 3 93 17 view .LVU27
+ # DEBUG this RESET
+ # DEBUG this RESET
+ # DEBUG this => `_ZZ4funcvE9varStatic'
+ # /usr/include/c++/15/tuple:93:17
+ .loc 3 93 17 is_stmt 0 view .LVU28
+.LBE158:
+.LBE157:
+.LBB159:
+.LBI159:
+ # /usr/include/c++/15/tuple:202:17
+ .loc 3 202 17 is_stmt 1 view .LVU29
+ # DEBUG this RESET
+ # DEBUG this RESET
+ # DEBUG this RESET
+ # DEBUG this => `_ZZ4funcvE9varStatic'
+ # /usr/include/c++/15/tuple:202:17
+ .loc 3 202 17 is_stmt 0 view .LVU30
+.LBE159:
+.LBE156:
+.LBE155:
+.LBB160:
+.LBI160:
+ # /usr/include/c++/15/bits/unique_ptr.h:191:18
+ .loc 1 191 18 is_stmt 1 view .LVU31
+ # DEBUG this RESET
+ # /usr/include/c++/15/bits/unique_ptr.h:191:18
+ .loc 1 191 18 is_stmt 0 view .LVU32
+.LBE160:
+.LBE154:
+.LBE153:
+.LBE152:
+.LBE151:
+.LBE150:
+.LBE149:
+ # dwarf.cc:4:66
+ .loc 2 4 66 discriminator 7 view .LVU33
+ movl $_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED1Ev, %edi
+ movl $__dso_handle, %edx
+ movl $_ZZ4funcvE9varStatic, %esi
+.LBB166:
+.LBB165:
+.LBB164:
+.LBB163:
+.LBB162:
+.LBB161:
+ # /usr/include/c++/15/bits/unique_ptr.h:170:56
+ .loc 1 170 56 discriminator 2 view .LVU34
+ movq %rax, _ZZ4funcvE9varStatic(%rip)
+.LVL6:
+ # DEBUG this RESET
+ # DEBUG __p RESET
+ # DEBUG this RESET
+ # DEBUG RESET
+ # DEBUG this RESET
+ # DEBUG __p RESET
+ # /usr/include/c++/15/bits/unique_ptr.h:170:56
+ .loc 1 170 56 discriminator 2 view .LVU35
+.LBE161:
+.LBE162:
+.LBE163:
+.LBE164:
+.LBE165:
+.LBE166:
+ # dwarf.cc:4:66
+ .loc 2 4 66 discriminator 7 view .LVU36
+ call __cxa_atexit
+.LVL7:
+ # dwarf.cc:4:66
+ .loc 2 4 66 discriminator 8 view .LVU37
+ movl $_ZGVZ4funcvE9varStatic, %edi
+ # dwarf.cc:5:1
+ .loc 2 5 1 view .LVU38
+ popq %rbx
+ .cfi_remember_state
+ .cfi_restore 3
+ .cfi_def_cfa_offset 8
+.LEHB1:
+# SUCC: EXIT [always] count:116930483 (estimated locally, freq 0.1089) (ABNORMAL,SIBCALL)
+ # dwarf.cc:4:66
+ .loc 2 4 66 discriminator 8 view .LVU39
+ jmp __cxa_guard_release
+.LVL8:
+.LEHE1:
+# BLOCK 8, count:0 (precise) seq:6
+# PRED: 6 [never] count:0 (precise, freq 0.0000) (ABNORMAL,ABNORMAL_CALL,EH)
+.L9:
+ .cfi_restore_state
+ # dwarf.cc:4:66
+ .loc 2 4 66 discriminator 10 view .LVU40
+ movq %rax, %rbx
+# SUCC: 9 [always] count:0 (precise, freq 0.0000) (CROSSING)
+ jmp .L8
+ .section .gcc_except_table,"a",@progbits
+.LLSDA1545:
+ .byte 0xff # @LPStart format (omit)
+ .byte 0xff # @TType format (omit)
+ .byte 0x1 # call-site format (uleb128)
+ .uleb128 .LLSDACSE1545-.LLSDACSB1545 # Call-site table length
+.LLSDACSB1545:
+ .uleb128 .LEHB0-.LFB1545 # region 0 start
+ .uleb128 .LEHE0-.LEHB0 # length
+ .uleb128 .L9-.LFB1545 # landing pad
+ .uleb128 0 # action
+ .uleb128 .LEHB1-.LFB1545 # region 1 start
+ .uleb128 .LEHE1-.LEHB1 # length
+ .uleb128 0 # landing pad
+ .uleb128 0 # action
+.LLSDACSE1545:
+ .text
+ .cfi_endproc
+ .section .text.unlikely
+ .cfi_startproc
+ .cfi_personality 0x3,__gxx_personality_v0
+ .cfi_lsda 0x3,.LLSDAC1545
+ .type _Z4funcv.cold, @function
+_Z4funcv.cold:
+.LFSB1545:
+# BLOCK 9, count:0 (precise) seq:7
+# PRED: 8 [always] count:0 (precise, freq 0.0000) (CROSSING)
+.L8:
+ .cfi_def_cfa_offset 16
+ .cfi_offset 3, -16
+ movl $_ZGVZ4funcvE9varStatic, %edi
+ call __cxa_guard_abort
+.LVL9:
+ movq %rbx, %rdi
+.LEHB2:
+# SUCC:
+ call _Unwind_Resume
+.LVL10:
+.LEHE2:
+ .cfi_endproc
+.LFE1545:
+ .section .gcc_except_table
+.LLSDAC1545:
+ .byte 0xff # @LPStart format (omit)
+ .byte 0xff # @TType format (omit)
+ .byte 0x1 # call-site format (uleb128)
+ .uleb128 .LLSDACSEC1545-.LLSDACSBC1545 # Call-site table length
+.LLSDACSBC1545:
+ .uleb128 .LEHB2-.LCOLDB0 # region 0 start
+ .uleb128 .LEHE2-.LEHB2 # length
+ .uleb128 0 # landing pad
+ .uleb128 0 # action
+.LLSDACSEC1545:
+ .section .text.unlikely
+ .text
+ .size _Z4funcv, .-_Z4funcv
+ .section .text.unlikely
+ .size _Z4funcv.cold, .-_Z4funcv.cold
+.LCOLDE0:
+ .text
+.LHOTE0:
+ .section .text.startup,"ax",@progbits
+ .p2align 4
+ .globl main
+ .type main, @function
+main:
+.LFB1555:
+ # dwarf.cc:6:23
+ .loc 2 6 23 is_stmt 1 view -0
+ .cfi_startproc
+# BLOCK 2, count:1073741824 (estimated locally) seq:0
+# PRED: ENTRY [always] count:1073741824 (estimated locally, freq 1.0000) (FALLTHRU)
+ # dwarf.cc:7:2
+ .loc 2 7 2 view .LVU42
+ # dwarf.cc:6:23
+ .loc 2 6 23 is_stmt 0 view .LVU43
+ subq $8, %rsp
+ .cfi_def_cfa_offset 16
+ # dwarf.cc:7:6
+ .loc 2 7 6 view .LVU44
+ call _Z4funcv
+.LVL11:
+ # dwarf.cc:8:2
+ .loc 2 8 2 is_stmt 1 view .LVU45
+ # dwarf.cc:9:1
+ .loc 2 9 1 is_stmt 0 view .LVU46
+ xorl %eax, %eax
+ addq $8, %rsp
+ .cfi_def_cfa_offset 8
+# SUCC: EXIT [always] count:1073741824 (estimated locally, freq 1.0000)
+ ret
+ .cfi_endproc
+.LFE1555:
+ .size main, .-main
+ .local _ZGVZ4funcvE9varStatic
+ .comm _ZGVZ4funcvE9varStatic,8,8
+ .local _ZZ4funcvE9varStatic
+ .comm _ZZ4funcvE9varStatic,8,8
+ .text
+.Letext0:
+ .section .text.unlikely
+.Letext_cold0:
+ .file 4 "/usr/include/c++/15/type_traits"
+ .file 5 "/usr/include/c++/15/debug/debug.h"
+ .file 6 "/usr/include/c++/15/bits/uses_allocator.h"
+ .file 7 "/usr/include/c++/15/x86_64-redhat-linux/bits/c++config.h"
+ .file 8 "/usr/include/c++/15/cwchar"
+ .file 9 "/usr/include/c++/15/bits/exception_ptr.h"
+ .file 10 "/usr/include/c++/15/bits/shared_ptr_base.h"
+ .file 11 "/usr/include/c++/15/bits/utility.h"
+ .file 12 "/usr/include/c++/15/bits/predefined_ops.h"
+ .file 13 "/usr/include/c++/15/bits/stl_iterator.h"
+ .file 14 "/usr/lib/gcc/x86_64-redhat-linux/15/include/stddef.h"
+ .file 15 "<built-in>"
+ .file 16 "/usr/include/bits/types/wint_t.h"
+ .file 17 "/usr/include/bits/types/__mbstate_t.h"
+ .file 18 "/usr/include/bits/types/mbstate_t.h"
+ .file 19 "/usr/include/bits/types/__FILE.h"
+ .file 20 "/usr/include/wchar.h"
+ .file 21 "/usr/include/bits/types/struct_tm.h"
+ .file 22 "/usr/include/c++/15/pstl/execution_defs.h"
+ .file 23 "/usr/include/c++/15/new"
+ .file 24 "/usr/include/c++/15/ext/concurrence.h"
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .long 0x266b # Length of Compilation Unit Info
+ .value 0x5 # DWARF version number
+ .byte 0x1 # DW_UT_compile
+ .byte 0x8 # Pointer Size (in bytes)
+ .long .Ldebug_abbrev0 # Offset Into Abbrev. Section
+ .uleb128 0x45 # (DIE (0xc) DW_TAG_compile_unit)
+ .long .LASF2379 # DW_AT_producer: "GNU C++17 15.1.1 20250425 (Red Hat 15.1.1-1) -mtune=generic -march=x86-64 -g3 -gdwarf-5 -O2"
+ .byte 0x21 # DW_AT_language
+ .byte 0x4 # DW_AT_language_name
+ .long 0x313e7 # DW_AT_language_version
+ .long .LASF0 # DW_AT_name: "dwarf.cc"
+ .long .LASF1 # DW_AT_comp_dir: "."
+ .long .LLRL20 # DW_AT_ranges
+ .quad 0 # DW_AT_low_pc
+ .long .Ldebug_line0 # DW_AT_stmt_list
+ .long .Ldebug_macro0 # DW_AT_macros
+ .uleb128 0x46 # (DIE (0x33) DW_TAG_namespace)
+ .ascii "std\0" # DW_AT_name
+ .byte 0x7 # DW_AT_decl_file (/usr/include/c++/15/x86_64-redhat-linux/bits/c++config.h)
+ .value 0x8ca # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1275 # DW_AT_sibling
+ .uleb128 0x18 # (DIE (0x40) DW_TAG_typedef)
+ .long .LASF2132 # DW_AT_name: "size_t"
+ .byte 0x7 # DW_AT_decl_file (/usr/include/c++/15/x86_64-redhat-linux/bits/c++config.h)
+ .value 0x8cc # DW_AT_decl_line
+ .byte 0x1a # DW_AT_decl_column
+ .long 0x1275 # DW_AT_type
+ .uleb128 0x37 # (DIE (0x4d) DW_TAG_namespace)
+ .long .LASF2126 # DW_AT_name: "__swappable_details"
+ # DW_AT_decl_file (4, /usr/include/c++/15/type_traits)
+ .value 0xb92 # DW_AT_decl_line
+ # DW_AT_decl_column (0xd)
+ .uleb128 0x37 # (DIE (0x54) DW_TAG_namespace)
+ .long .LASF2127 # DW_AT_name: "__swappable_with_details"
+ # DW_AT_decl_file (4, /usr/include/c++/15/type_traits)
+ .value 0xbe7 # DW_AT_decl_line
+ # DW_AT_decl_column (0xd)
+ .uleb128 0x38 # (DIE (0x5b) DW_TAG_namespace)
+ .long .LASF2128 # DW_AT_name: "__debug"
+ .byte 0x5 # DW_AT_decl_file (/usr/include/c++/15/debug/debug.h)
+ .byte 0x32 # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .uleb128 0x16 # (DIE (0x63) DW_TAG_structure_type)
+ .long .LASF2129 # DW_AT_name: "allocator_arg_t"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x6 # DW_AT_decl_file (/usr/include/c++/15/bits/uses_allocator.h)
+ .byte 0x38 # DW_AT_decl_line
+ .byte 0xa # DW_AT_decl_column
+ .long 0x88 # DW_AT_sibling
+ .uleb128 0x47 # (DIE (0x70) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2129 # DW_AT_name: "allocator_arg_t"
+ .byte 0x6 # DW_AT_decl_file (/usr/include/c++/15/bits/uses_allocator.h)
+ .byte 0x38 # DW_AT_decl_line
+ .byte 0x25 # DW_AT_decl_column
+ .long .LASF2138 # DW_AT_linkage_name: "_ZNSt15allocator_arg_tC4Ev"
+ # DW_AT_declaration
+ # DW_AT_explicit
+ .byte 0x1 # DW_AT_defaulted
+ .long 0x81 # DW_AT_object_pointer
+ .uleb128 0x2 # (DIE (0x81) DW_TAG_formal_parameter)
+ .long 0x13a5 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x70
+ .byte 0 # end of children of DIE 0x63
+ .uleb128 0x39 # (DIE (0x88) DW_TAG_structure_type)
+ .long .LASF2355 # DW_AT_name: "__uses_alloc_base"
+ # DW_AT_byte_size (0x1)
+ .byte 0x6 # DW_AT_decl_file (/usr/include/c++/15/bits/uses_allocator.h)
+ .byte 0x4d # DW_AT_decl_line
+ .byte 0xa # DW_AT_decl_column
+ .uleb128 0x16 # (DIE (0x90) DW_TAG_structure_type)
+ .long .LASF2130 # DW_AT_name: "__uses_alloc0"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x6 # DW_AT_decl_file (/usr/include/c++/15/bits/uses_allocator.h)
+ .byte 0x4f # DW_AT_decl_line
+ .byte 0xa # DW_AT_decl_column
+ .long 0xd9 # DW_AT_sibling
+ .uleb128 0x16 # (DIE (0x9d) DW_TAG_structure_type)
+ .long .LASF2131 # DW_AT_name: "_Sink"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x6 # DW_AT_decl_file (/usr/include/c++/15/bits/uses_allocator.h)
+ .byte 0x51 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0xc6 # DW_AT_sibling
+ .uleb128 0x48 # (DIE (0xaa) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2150 # DW_AT_name: "operator="
+ .byte 0x6 # DW_AT_decl_file (/usr/include/c++/15/bits/uses_allocator.h)
+ .byte 0x51 # DW_AT_decl_line
+ .byte 0x2e # DW_AT_decl_column
+ .long .LASF2360 # DW_AT_linkage_name: "_ZNSt13__uses_alloc05_SinkaSEPKv"
+ # DW_AT_declaration
+ .long 0xba # DW_AT_object_pointer
+ .uleb128 0x2 # (DIE (0xba) DW_TAG_formal_parameter)
+ .long 0x13aa # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xbf) DW_TAG_formal_parameter)
+ .long 0x12ec # DW_AT_type
+ .byte 0 # end of children of DIE 0xaa
+ .byte 0 # end of children of DIE 0x9d
+ .uleb128 0x2c # (DIE (0xc6) DW_TAG_inheritance)
+ .long 0x88 # DW_AT_type
+ # DW_AT_data_member_location (0)
+ .uleb128 0xa # (DIE (0xcb) DW_TAG_member)
+ .long .LASF2135 # DW_AT_name: "_M_a"
+ .byte 0x6 # DW_AT_decl_file (/usr/include/c++/15/bits/uses_allocator.h)
+ .byte 0x51 # DW_AT_decl_line
+ .byte 0x4b # DW_AT_decl_column
+ .long 0x9d # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .byte 0 # end of children of DIE 0x90
+ .uleb128 0x18 # (DIE (0xd9) DW_TAG_typedef)
+ .long .LASF2133 # DW_AT_name: "nullptr_t"
+ .byte 0x7 # DW_AT_decl_file (/usr/include/c++/15/x86_64-redhat-linux/bits/c++config.h)
+ .value 0x8d0 # DW_AT_decl_line
+ .byte 0x1d # DW_AT_decl_column
+ .long 0x13af # DW_AT_type
+ .uleb128 0x3 # (DIE (0xe6) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x42 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1465 # DW_AT_import
+ .uleb128 0x3 # (DIE (0xee) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x8f # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x13f5 # DW_AT_import
+ .uleb128 0x3 # (DIE (0xf6) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x91 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1487 # DW_AT_import
+ .uleb128 0x3 # (DIE (0xfe) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x92 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x149d # DW_AT_import
+ .uleb128 0x3 # (DIE (0x106) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x93 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x14b8 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x10e) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x94 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x14d8 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x116) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x95 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x14f3 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x11e) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x96 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x150e # DW_AT_import
+ .uleb128 0x3 # (DIE (0x126) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x97 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1529 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x12e) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x98 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1545 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x136) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x99 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1566 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x13e) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x9a # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x157c # DW_AT_import
+ .uleb128 0x3 # (DIE (0x146) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x9b # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1589 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x14e) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x9c # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x15ae # DW_AT_import
+ .uleb128 0x3 # (DIE (0x156) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x9d # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x15d3 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x15e) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x9e # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x15ee # DW_AT_import
+ .uleb128 0x3 # (DIE (0x166) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0x9f # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1618 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x16e) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xa0 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1633 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x176) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xa2 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1649 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x17e) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xa4 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x166a # DW_AT_import
+ .uleb128 0x3 # (DIE (0x186) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xa5 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x168b # DW_AT_import
+ .uleb128 0x3 # (DIE (0x18e) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xa6 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x16a6 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x196) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xa8 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x16cb # DW_AT_import
+ .uleb128 0x3 # (DIE (0x19e) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xab # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x16f0 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1a6) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xae # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1715 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1ae) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xb0 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x173a # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1b6) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xb2 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1755 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1be) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xb4 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1775 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1c6) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xb5 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1795 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1ce) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xb6 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x17af # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1d6) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xb7 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x17c9 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1de) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xb8 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x17e3 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1e6) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xb9 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x17fd # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1ee) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xba # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1817 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1f6) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xbb # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x18e2 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x1fe) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xbc # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x18f7 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x206) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xbd # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1916 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x20e) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xbe # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1935 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x216) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xbf # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1954 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x21e) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xc0 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x197e # DW_AT_import
+ .uleb128 0x3 # (DIE (0x226) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xc1 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1998 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x22e) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xc3 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x19b8 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x236) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xc5 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x19d3 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x23e) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xc6 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x19f2 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x246) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xc7 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1a17 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x24e) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xc8 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1a3c # DW_AT_import
+ .uleb128 0x3 # (DIE (0x256) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xc9 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1a5b # DW_AT_import
+ .uleb128 0x3 # (DIE (0x25e) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xca # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1a71 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x266) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xcb # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1a91 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x26e) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xcc # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1ab1 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x276) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xcd # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1ad1 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x27e) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xce # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1af1 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x286) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xcf # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1b08 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x28e) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xd0 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1b24 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x296) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xd0 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1b43 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x29e) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xd1 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1b62 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x2a6) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xd1 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1b81 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x2ae) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xd2 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1ba0 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x2b6) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xd2 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1bbf # DW_AT_import
+ .uleb128 0x3 # (DIE (0x2be) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xd3 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1bde # DW_AT_import
+ .uleb128 0x3 # (DIE (0x2c6) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xd3 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1bfd # DW_AT_import
+ .uleb128 0x3 # (DIE (0x2ce) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xd4 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1c1c # DW_AT_import
+ .uleb128 0x3 # (DIE (0x2d6) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xd4 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1c41 # DW_AT_import
+ .uleb128 0x11 # (DIE (0x2de) DW_TAG_imported_declaration)
+ # DW_AT_decl_file (8, /usr/include/c++/15/cwchar)
+ .value 0x10d # DW_AT_decl_line
+ .byte 0x16 # DW_AT_decl_column
+ .long 0x1c66 # DW_AT_import
+ .uleb128 0x11 # (DIE (0x2e6) DW_TAG_imported_declaration)
+ # DW_AT_decl_file (8, /usr/include/c++/15/cwchar)
+ .value 0x10e # DW_AT_decl_line
+ .byte 0x16 # DW_AT_decl_column
+ .long 0x1c81 # DW_AT_import
+ .uleb128 0x11 # (DIE (0x2ee) DW_TAG_imported_declaration)
+ # DW_AT_decl_file (8, /usr/include/c++/15/cwchar)
+ .value 0x10f # DW_AT_decl_line
+ .byte 0x16 # DW_AT_decl_column
+ .long 0x1ca6 # DW_AT_import
+ .uleb128 0x11 # (DIE (0x2f6) DW_TAG_imported_declaration)
+ # DW_AT_decl_file (8, /usr/include/c++/15/cwchar)
+ .value 0x11d # DW_AT_decl_line
+ .byte 0xe # DW_AT_decl_column
+ .long 0x19b8 # DW_AT_import
+ .uleb128 0x11 # (DIE (0x2fe) DW_TAG_imported_declaration)
+ # DW_AT_decl_file (8, /usr/include/c++/15/cwchar)
+ .value 0x120 # DW_AT_decl_line
+ .byte 0xe # DW_AT_decl_column
+ .long 0x16cb # DW_AT_import
+ .uleb128 0x11 # (DIE (0x306) DW_TAG_imported_declaration)
+ # DW_AT_decl_file (8, /usr/include/c++/15/cwchar)
+ .value 0x123 # DW_AT_decl_line
+ .byte 0xe # DW_AT_decl_column
+ .long 0x1715 # DW_AT_import
+ .uleb128 0x11 # (DIE (0x30e) DW_TAG_imported_declaration)
+ # DW_AT_decl_file (8, /usr/include/c++/15/cwchar)
+ .value 0x126 # DW_AT_decl_line
+ .byte 0xe # DW_AT_decl_column
+ .long 0x1755 # DW_AT_import
+ .uleb128 0x11 # (DIE (0x316) DW_TAG_imported_declaration)
+ # DW_AT_decl_file (8, /usr/include/c++/15/cwchar)
+ .value 0x12a # DW_AT_decl_line
+ .byte 0xe # DW_AT_decl_column
+ .long 0x1c66 # DW_AT_import
+ .uleb128 0x11 # (DIE (0x31e) DW_TAG_imported_declaration)
+ # DW_AT_decl_file (8, /usr/include/c++/15/cwchar)
+ .value 0x12b # DW_AT_decl_line
+ .byte 0xe # DW_AT_decl_column
+ .long 0x1c81 # DW_AT_import
+ .uleb128 0x11 # (DIE (0x326) DW_TAG_imported_declaration)
+ # DW_AT_decl_file (8, /usr/include/c++/15/cwchar)
+ .value 0x12c # DW_AT_decl_line
+ .byte 0xe # DW_AT_decl_column
+ .long 0x1ca6 # DW_AT_import
+ .uleb128 0x2d # (DIE (0x32e) DW_TAG_namespace)
+ .long .LASF2134 # DW_AT_name: "__exception_ptr"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x3d # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0x519 # DW_AT_sibling
+ .uleb128 0x3a # (DIE (0x33a) DW_TAG_class_type)
+ .long .LASF2137 # DW_AT_name: "exception_ptr"
+ # DW_AT_byte_size (0x8)
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x61 # DW_AT_decl_line
+ # DW_AT_decl_column (0xb)
+ .long 0x4f4 # DW_AT_sibling
+ .uleb128 0xa # (DIE (0x345) DW_TAG_member)
+ .long .LASF2136 # DW_AT_name: "_M_exception_object"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x63 # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0x12ea # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .uleb128 0x49 # (DIE (0x352) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2137 # DW_AT_name: "exception_ptr"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x65 # DW_AT_decl_line
+ .byte 0x10 # DW_AT_decl_column
+ .long .LASF2139 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptrC4EPv"
+ # DW_AT_declaration
+ # DW_AT_explicit
+ .long 0x366 # DW_AT_object_pointer
+ .long 0x371 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x366) DW_TAG_formal_parameter)
+ .long 0x1ccb # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x36b) DW_TAG_formal_parameter)
+ .long 0x12ea # DW_AT_type
+ .byte 0 # end of children of DIE 0x352
+ .uleb128 0x19 # (DIE (0x371) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2140 # DW_AT_name: "_M_addref"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x67 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long .LASF2142 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptr9_M_addrefEv"
+ # DW_AT_declaration
+ .long 0x385 # DW_AT_object_pointer
+ .long 0x38b # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x385) DW_TAG_formal_parameter)
+ .long 0x1ccb # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x371
+ .uleb128 0x19 # (DIE (0x38b) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2141 # DW_AT_name: "_M_release"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x68 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long .LASF2143 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptr10_M_releaseEv"
+ # DW_AT_declaration
+ .long 0x39f # DW_AT_object_pointer
+ .long 0x3a5 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x39f) DW_TAG_formal_parameter)
+ .long 0x1ccb # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x38b
+ .uleb128 0x4a # (DIE (0x3a5) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2144 # DW_AT_name: "_M_get"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x6a # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long .LASF2145 # DW_AT_linkage_name: "_ZNKSt15__exception_ptr13exception_ptr6_M_getEv"
+ .long 0x12ea # DW_AT_type
+ # DW_AT_declaration
+ .long 0x3bd # DW_AT_object_pointer
+ .long 0x3c3 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x3bd) DW_TAG_formal_parameter)
+ .long 0x1cd0 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x3a5
+ .uleb128 0x17 # (DIE (0x3c3) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2137 # DW_AT_name: "exception_ptr"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x72 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2146 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptrC4Ev"
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0x3d7 # DW_AT_object_pointer
+ .long 0x3dd # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x3d7) DW_TAG_formal_parameter)
+ .long 0x1ccb # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x3c3
+ .uleb128 0x17 # (DIE (0x3dd) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2137 # DW_AT_name: "exception_ptr"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x74 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2147 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptrC4ERKS0_"
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0x3f1 # DW_AT_object_pointer
+ .long 0x3fc # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x3f1) DW_TAG_formal_parameter)
+ .long 0x1ccb # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x3f6) DW_TAG_formal_parameter)
+ .long 0x1cd5 # DW_AT_type
+ .byte 0 # end of children of DIE 0x3dd
+ .uleb128 0x17 # (DIE (0x3fc) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2137 # DW_AT_name: "exception_ptr"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x77 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2148 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptrC4EDn"
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0x410 # DW_AT_object_pointer
+ .long 0x41b # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x410) DW_TAG_formal_parameter)
+ .long 0x1ccb # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x415) DW_TAG_formal_parameter)
+ .long 0xd9 # DW_AT_type
+ .byte 0 # end of children of DIE 0x3fc
+ .uleb128 0x17 # (DIE (0x41b) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2137 # DW_AT_name: "exception_ptr"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x7b # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2149 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptrC4EOS0_"
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0x42f # DW_AT_object_pointer
+ .long 0x43a # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x42f) DW_TAG_formal_parameter)
+ .long 0x1ccb # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x434) DW_TAG_formal_parameter)
+ .long 0x1cda # DW_AT_type
+ .byte 0 # end of children of DIE 0x41b
+ .uleb128 0x1c # (DIE (0x43a) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2150 # DW_AT_name: "operator="
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x88 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2151 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptraSERKS0_"
+ .long 0x1cdf # DW_AT_type
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0x452 # DW_AT_object_pointer
+ .long 0x45d # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x452) DW_TAG_formal_parameter)
+ .long 0x1ccb # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x457) DW_TAG_formal_parameter)
+ .long 0x1cd5 # DW_AT_type
+ .byte 0 # end of children of DIE 0x43a
+ .uleb128 0x1c # (DIE (0x45d) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2150 # DW_AT_name: "operator="
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x8c # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2152 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptraSEOS0_"
+ .long 0x1cdf # DW_AT_type
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0x475 # DW_AT_object_pointer
+ .long 0x480 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x475) DW_TAG_formal_parameter)
+ .long 0x1ccb # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x47a) DW_TAG_formal_parameter)
+ .long 0x1cda # DW_AT_type
+ .byte 0 # end of children of DIE 0x45d
+ .uleb128 0x17 # (DIE (0x480) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2153 # DW_AT_name: "~exception_ptr"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x93 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2154 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptrD4Ev"
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0x494 # DW_AT_object_pointer
+ .long 0x49a # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x494) DW_TAG_formal_parameter)
+ .long 0x1ccb # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x480
+ .uleb128 0x17 # (DIE (0x49a) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2155 # DW_AT_name: "swap"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x96 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2156 # DW_AT_linkage_name: "_ZNSt15__exception_ptr13exception_ptr4swapERS0_"
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0x4ae # DW_AT_object_pointer
+ .long 0x4b9 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x4ae) DW_TAG_formal_parameter)
+ .long 0x1ccb # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x4b3) DW_TAG_formal_parameter)
+ .long 0x1cdf # DW_AT_type
+ .byte 0 # end of children of DIE 0x49a
+ .uleb128 0x4b # (DIE (0x4b9) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2254 # DW_AT_name: "operator bool"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0xa1 # DW_AT_decl_line
+ .byte 0x10 # DW_AT_decl_column
+ .long .LASF2380 # DW_AT_linkage_name: "_ZNKSt15__exception_ptr13exception_ptrcvbEv"
+ .long 0x127c # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ # DW_AT_explicit
+ .long 0x4d2 # DW_AT_object_pointer
+ .long 0x4d8 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x4d2) DW_TAG_formal_parameter)
+ .long 0x1cd0 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x4b9
+ .uleb128 0x4c # (DIE (0x4d8) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2157 # DW_AT_name: "__cxa_exception_type"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0xb6 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2158 # DW_AT_linkage_name: "_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv"
+ .long 0x1ce4 # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x4ed # DW_AT_object_pointer
+ .uleb128 0x2 # (DIE (0x4ed) DW_TAG_formal_parameter)
+ .long 0x1cd0 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x4d8
+ .byte 0 # end of children of DIE 0x33a
+ .uleb128 0x7 # (DIE (0x4f4) DW_TAG_const_type)
+ .long 0x33a # DW_AT_type
+ .uleb128 0x3 # (DIE (0x4f9) DW_TAG_imported_declaration)
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x55 # DW_AT_decl_line
+ .byte 0x10 # DW_AT_decl_column
+ .long 0x521 # DW_AT_import
+ .uleb128 0x4d # (DIE (0x501) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2155 # DW_AT_name: "swap"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0xe5 # DW_AT_decl_line
+ .byte 0x5 # DW_AT_decl_column
+ .long .LASF2381 # DW_AT_linkage_name: "_ZNSt15__exception_ptr4swapERNS_13exception_ptrES1_"
+ # DW_AT_declaration
+ .uleb128 0x1 # (DIE (0x50d) DW_TAG_formal_parameter)
+ .long 0x1cdf # DW_AT_type
+ .uleb128 0x1 # (DIE (0x512) DW_TAG_formal_parameter)
+ .long 0x1cdf # DW_AT_type
+ .byte 0 # end of children of DIE 0x501
+ .byte 0 # end of children of DIE 0x32e
+ .uleb128 0x3 # (DIE (0x519) DW_TAG_imported_declaration)
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x42 # DW_AT_decl_line
+ .byte 0x1a # DW_AT_decl_column
+ .long 0x33a # DW_AT_import
+ .uleb128 0x4e # (DIE (0x521) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2159 # DW_AT_name: "rethrow_exception"
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0x51 # DW_AT_decl_line
+ .byte 0x8 # DW_AT_decl_column
+ .long .LASF2160 # DW_AT_linkage_name: "_ZSt17rethrow_exceptionNSt15__exception_ptr13exception_ptrE"
+ # DW_AT_noreturn
+ # DW_AT_declaration
+ .long 0x537 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x531) DW_TAG_formal_parameter)
+ .long 0x33a # DW_AT_type
+ .byte 0 # end of children of DIE 0x521
+ .uleb128 0x4f # (DIE (0x537) DW_TAG_class_type)
+ .long .LASF2382 # DW_AT_name: "type_info"
+ # DW_AT_declaration
+ .uleb128 0x7 # (DIE (0x53c) DW_TAG_const_type)
+ .long 0x537 # DW_AT_type
+ .uleb128 0x3 # (DIE (0x541) DW_TAG_imported_declaration)
+ .byte 0x9 # DW_AT_decl_file (/usr/include/c++/15/bits/exception_ptr.h)
+ .byte 0xf2 # DW_AT_decl_line
+ .byte 0x1a # DW_AT_decl_column
+ .long 0x501 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x549) DW_TAG_imported_declaration)
+ .byte 0xa # DW_AT_decl_file (/usr/include/c++/15/bits/shared_ptr_base.h)
+ .byte 0x61 # DW_AT_decl_line
+ .byte 0x14 # DW_AT_decl_column
+ .long 0x133e # DW_AT_import
+ .uleb128 0x3 # (DIE (0x551) DW_TAG_imported_declaration)
+ .byte 0xa # DW_AT_decl_file (/usr/include/c++/15/bits/shared_ptr_base.h)
+ .byte 0x62 # DW_AT_decl_line
+ .byte 0x14 # DW_AT_decl_column
+ .long 0x1ce9 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x559) DW_TAG_imported_declaration)
+ .byte 0xa # DW_AT_decl_file (/usr/include/c++/15/bits/shared_ptr_base.h)
+ .byte 0x63 # DW_AT_decl_line
+ .byte 0x14 # DW_AT_decl_column
+ .long 0x1350 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x561) DW_TAG_imported_declaration)
+ .byte 0xa # DW_AT_decl_file (/usr/include/c++/15/bits/shared_ptr_base.h)
+ .byte 0x64 # DW_AT_decl_line
+ .byte 0x14 # DW_AT_decl_column
+ .long 0x1356 # DW_AT_import
+ .uleb128 0x3 # (DIE (0x569) DW_TAG_imported_declaration)
+ .byte 0xa # DW_AT_decl_file (/usr/include/c++/15/bits/shared_ptr_base.h)
+ .byte 0x65 # DW_AT_decl_line
+ .byte 0x14 # DW_AT_decl_column
+ .long 0x135c # DW_AT_import
+ .uleb128 0x16 # (DIE (0x571) DW_TAG_structure_type)
+ .long .LASF2161 # DW_AT_name: "default_delete<Base>"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0x45 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x5c1 # DW_AT_sibling
+ .uleb128 0x22 # (DIE (0x57e) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2162 # DW_AT_name: "default_delete"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0x48 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2163 # DW_AT_linkage_name: "_ZNSt14default_deleteI4BaseEC4Ev"
+ # DW_AT_declaration
+ # DW_AT_defaulted (0x1)
+ .long 0x592 # DW_AT_object_pointer
+ .long 0x598 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x592) DW_TAG_formal_parameter)
+ .long 0x1d13 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x57e
+ .uleb128 0x19 # (DIE (0x598) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2164 # DW_AT_name: "operator()"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0x57 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2165 # DW_AT_linkage_name: "_ZNKSt14default_deleteI4BaseEclEPS0_"
+ # DW_AT_declaration
+ .long 0x5ac # DW_AT_object_pointer
+ .long 0x5b7 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x5ac) DW_TAG_formal_parameter)
+ .long 0x1d18 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x5b1) DW_TAG_formal_parameter)
+ .long 0x1d22 # DW_AT_type
+ .byte 0 # end of children of DIE 0x598
+ .uleb128 0xd # (DIE (0x5b7) DW_TAG_template_type_param)
+ .ascii "_Tp\0" # DW_AT_name
+ .long 0x1d0b # DW_AT_type
+ .byte 0 # end of children of DIE 0x571
+ .uleb128 0x7 # (DIE (0x5c1) DW_TAG_const_type)
+ .long 0x571 # DW_AT_type
+ .uleb128 0x3a # (DIE (0x5c6) DW_TAG_class_type)
+ .long .LASF2166 # DW_AT_name: "__uniq_ptr_impl<Base, std::default_delete<Base> >"
+ # DW_AT_byte_size (0x8)
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0x8e # DW_AT_decl_line
+ # DW_AT_decl_column (0xb)
+ .long 0x77b # DW_AT_sibling
+ .uleb128 0x16 # (DIE (0x5d1) DW_TAG_structure_type)
+ .long .LASF2167 # DW_AT_name: "_Ptr<Base, std::default_delete<Base>, void>"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0x91 # DW_AT_decl_line
+ .byte 0x9 # DW_AT_decl_column
+ .long 0x5fd # DW_AT_sibling
+ .uleb128 0xe # (DIE (0x5de) DW_TAG_typedef)
+ .long .LASF2168 # DW_AT_name: "type"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0x93 # DW_AT_decl_line
+ .byte 0xa # DW_AT_decl_column
+ .long 0x1d22 # DW_AT_type
+ .uleb128 0xd # (DIE (0x5ea) DW_TAG_template_type_param)
+ .ascii "_Up\0" # DW_AT_name
+ .long 0x1d0b # DW_AT_type
+ .uleb128 0xd # (DIE (0x5f3) DW_TAG_template_type_param)
+ .ascii "_Ep\0" # DW_AT_name
+ .long 0x571 # DW_AT_type
+ .byte 0 # end of children of DIE 0x5d1
+ .uleb128 0x50 # (DIE (0x5fd) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2169 # DW_AT_name: "__uniq_ptr_impl"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xa8 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2170 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EEC4Ev"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .byte 0x1 # DW_AT_defaulted
+ .long 0x613 # DW_AT_object_pointer
+ .long 0x619 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x613) DW_TAG_formal_parameter)
+ .long 0x1dc7 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x5fd
+ .uleb128 0x17 # (DIE (0x619) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2169 # DW_AT_name: "__uniq_ptr_impl"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xaa # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2171 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EEC4EPS0_"
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0x62d # DW_AT_object_pointer
+ .long 0x638 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x62d) DW_TAG_formal_parameter)
+ .long 0x1dc7 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x632) DW_TAG_formal_parameter)
+ .long 0x638 # DW_AT_type
+ .byte 0 # end of children of DIE 0x619
+ .uleb128 0x51 # (DIE (0x638) DW_TAG_typedef)
+ .long .LASF2258 # DW_AT_name: "pointer"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xa2 # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0x5de # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ .uleb128 0x17 # (DIE (0x645) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2169 # DW_AT_name: "__uniq_ptr_impl"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xb2 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2172 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EEC4EOS3_"
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0x659 # DW_AT_object_pointer
+ .long 0x664 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x659) DW_TAG_formal_parameter)
+ .long 0x1dc7 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x65e) DW_TAG_formal_parameter)
+ .long 0x1dd1 # DW_AT_type
+ .byte 0 # end of children of DIE 0x645
+ .uleb128 0x1c # (DIE (0x664) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2150 # DW_AT_name: "operator="
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xb7 # DW_AT_decl_line
+ .byte 0x18 # DW_AT_decl_column
+ .long .LASF2173 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EEaSEOS3_"
+ .long 0x1dd6 # DW_AT_type
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0x67c # DW_AT_object_pointer
+ .long 0x687 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x67c) DW_TAG_formal_parameter)
+ .long 0x1dc7 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x681) DW_TAG_formal_parameter)
+ .long 0x1dd1 # DW_AT_type
+ .byte 0 # end of children of DIE 0x664
+ .uleb128 0x1c # (DIE (0x687) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2174 # DW_AT_name: "_M_ptr"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xbf # DW_AT_decl_line
+ .byte 0x12 # DW_AT_decl_column
+ .long .LASF2175 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE6_M_ptrEv"
+ .long 0x1ddb # DW_AT_type
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0x69f # DW_AT_object_pointer
+ .long 0x6a5 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x69f) DW_TAG_formal_parameter)
+ .long 0x1dc7 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x687
+ .uleb128 0x1c # (DIE (0x6a5) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2174 # DW_AT_name: "_M_ptr"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xc1 # DW_AT_decl_line
+ .byte 0x12 # DW_AT_decl_column
+ .long .LASF2176 # DW_AT_linkage_name: "_ZNKSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE6_M_ptrEv"
+ .long 0x638 # DW_AT_type
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0x6bd # DW_AT_object_pointer
+ .long 0x6c3 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x6bd) DW_TAG_formal_parameter)
+ .long 0x1de0 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x6a5
+ .uleb128 0x1c # (DIE (0x6c3) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2177 # DW_AT_name: "_M_deleter"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xc3 # DW_AT_decl_line
+ .byte 0x12 # DW_AT_decl_column
+ .long .LASF2178 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE10_M_deleterEv"
+ .long 0x1d45 # DW_AT_type
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0x6db # DW_AT_object_pointer
+ .long 0x6e1 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x6db) DW_TAG_formal_parameter)
+ .long 0x1dc7 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x6c3
+ .uleb128 0x1c # (DIE (0x6e1) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2177 # DW_AT_name: "_M_deleter"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xc5 # DW_AT_decl_line
+ .byte 0x12 # DW_AT_decl_column
+ .long .LASF2179 # DW_AT_linkage_name: "_ZNKSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE10_M_deleterEv"
+ .long 0x1d36 # DW_AT_type
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0x6f9 # DW_AT_object_pointer
+ .long 0x6ff # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x6f9) DW_TAG_formal_parameter)
+ .long 0x1de0 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x6e1
+ .uleb128 0x17 # (DIE (0x6ff) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2180 # DW_AT_name: "reset"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xc8 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long .LASF2181 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE5resetEPS0_"
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0x713 # DW_AT_object_pointer
+ .long 0x71e # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x713) DW_TAG_formal_parameter)
+ .long 0x1dc7 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x718) DW_TAG_formal_parameter)
+ .long 0x638 # DW_AT_type
+ .byte 0 # end of children of DIE 0x6ff
+ .uleb128 0x1c # (DIE (0x71e) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2182 # DW_AT_name: "release"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xd1 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long .LASF2183 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE7releaseEv"
+ .long 0x638 # DW_AT_type
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0x736 # DW_AT_object_pointer
+ .long 0x73c # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x736) DW_TAG_formal_parameter)
+ .long 0x1dc7 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x71e
+ .uleb128 0x17 # (DIE (0x73c) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2155 # DW_AT_name: "swap"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xda # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2184 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE4swapERS3_"
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0x750 # DW_AT_object_pointer
+ .long 0x75b # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x750) DW_TAG_formal_parameter)
+ .long 0x1dc7 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x755) DW_TAG_formal_parameter)
+ .long 0x1dd6 # DW_AT_type
+ .byte 0 # end of children of DIE 0x73c
+ .uleb128 0xa # (DIE (0x75b) DW_TAG_member)
+ .long .LASF2185 # DW_AT_name: "_M_t"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xe2 # DW_AT_decl_line
+ .byte 0x1b # DW_AT_decl_column
+ .long 0xc3b # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .uleb128 0xd # (DIE (0x768) DW_TAG_template_type_param)
+ .ascii "_Tp\0" # DW_AT_name
+ .long 0x1d0b # DW_AT_type
+ .uleb128 0xd # (DIE (0x771) DW_TAG_template_type_param)
+ .ascii "_Dp\0" # DW_AT_name
+ .long 0x571 # DW_AT_type
+ .byte 0 # end of children of DIE 0x5c6
+ .uleb128 0x7 # (DIE (0x77b) DW_TAG_const_type)
+ .long 0x5c6 # DW_AT_type
+ .uleb128 0x16 # (DIE (0x780) DW_TAG_structure_type)
+ .long .LASF2186 # DW_AT_name: "_Head_base<1, std::default_delete<Base>, true>"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0x5b # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x87d # DW_AT_sibling
+ .uleb128 0x19 # (DIE (0x78d) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2187 # DW_AT_name: "_Head_base"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0x5d # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2188 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC4Ev"
+ # DW_AT_declaration
+ .long 0x7a1 # DW_AT_object_pointer
+ .long 0x7a7 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x7a1) DW_TAG_formal_parameter)
+ .long 0x1d2c # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x78d
+ .uleb128 0x19 # (DIE (0x7a7) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2187 # DW_AT_name: "_Head_base"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0x60 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2189 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC4ERKS2_"
+ # DW_AT_declaration
+ .long 0x7bb # DW_AT_object_pointer
+ .long 0x7c6 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x7bb) DW_TAG_formal_parameter)
+ .long 0x1d2c # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x7c0) DW_TAG_formal_parameter)
+ .long 0x1d36 # DW_AT_type
+ .byte 0 # end of children of DIE 0x7a7
+ .uleb128 0x22 # (DIE (0x7c6) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2187 # DW_AT_name: "_Head_base"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0x63 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2190 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC4ERKS3_"
+ # DW_AT_declaration
+ # DW_AT_defaulted (0x1)
+ .long 0x7da # DW_AT_object_pointer
+ .long 0x7e5 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x7da) DW_TAG_formal_parameter)
+ .long 0x1d2c # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x7df) DW_TAG_formal_parameter)
+ .long 0x1d3b # DW_AT_type
+ .byte 0 # end of children of DIE 0x7c6
+ .uleb128 0x22 # (DIE (0x7e5) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2187 # DW_AT_name: "_Head_base"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0x64 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2191 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC4EOS3_"
+ # DW_AT_declaration
+ # DW_AT_defaulted (0x1)
+ .long 0x7f9 # DW_AT_object_pointer
+ .long 0x804 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x7f9) DW_TAG_formal_parameter)
+ .long 0x1d2c # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x7fe) DW_TAG_formal_parameter)
+ .long 0x1d40 # DW_AT_type
+ .byte 0 # end of children of DIE 0x7e5
+ .uleb128 0x19 # (DIE (0x804) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2187 # DW_AT_name: "_Head_base"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0x6b # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2192 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC4ESt15allocator_arg_tSt13__uses_alloc0"
+ # DW_AT_declaration
+ .long 0x818 # DW_AT_object_pointer
+ .long 0x828 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x818) DW_TAG_formal_parameter)
+ .long 0x1d2c # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x81d) DW_TAG_formal_parameter)
+ .long 0x63 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x822) DW_TAG_formal_parameter)
+ .long 0x90 # DW_AT_type
+ .byte 0 # end of children of DIE 0x804
+ .uleb128 0xf # (DIE (0x828) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2193 # DW_AT_name: "_M_head"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0x89 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2194 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EE7_M_headERS3_"
+ .long 0x1d45 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x842 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x83c) DW_TAG_formal_parameter)
+ .long 0x1d4a # DW_AT_type
+ .byte 0 # end of children of DIE 0x828
+ .uleb128 0xf # (DIE (0x842) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2193 # DW_AT_name: "_M_head"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0x8c # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2195 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EE7_M_headERKS3_"
+ .long 0x1d36 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x85c # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x856) DW_TAG_formal_parameter)
+ .long 0x1d3b # DW_AT_type
+ .byte 0 # end of children of DIE 0x842
+ .uleb128 0xa # (DIE (0x85c) DW_TAG_member)
+ .long .LASF2196 # DW_AT_name: "_M_head_impl"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0x8e # DW_AT_decl_line
+ .byte 0x27 # DW_AT_decl_column
+ .long 0x571 # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .uleb128 0x27 # (DIE (0x869) DW_TAG_template_value_param)
+ .long .LASF2208 # DW_AT_name: "_Idx"
+ .long 0x1275 # DW_AT_type
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0x23 # (DIE (0x873) DW_TAG_template_type_param)
+ .long .LASF2197 # DW_AT_name: "_Head"
+ .long 0x571 # DW_AT_type
+ .byte 0 # end of children of DIE 0x780
+ .uleb128 0x7 # (DIE (0x87d) DW_TAG_const_type)
+ .long 0x780 # DW_AT_type
+ .uleb128 0x24 # (DIE (0x882) DW_TAG_structure_type)
+ .long .LASF2198 # DW_AT_name: "_Tuple_impl<1, std::default_delete<Base> >"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x222 # DW_AT_decl_line
+ # DW_AT_decl_column (0xc)
+ .long 0x99a # DW_AT_sibling
+ .uleb128 0x2e # (DIE (0x88f) DW_TAG_inheritance)
+ .long 0x780 # DW_AT_type
+ # DW_AT_data_member_location (0)
+ .byte 0x3 # DW_AT_accessibility
+ .uleb128 0x8 # (DIE (0x895) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2193 # DW_AT_name: "_M_head"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x22a # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2199 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEE7_M_headERS3_"
+ .long 0x1d45 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x8b0 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x8aa) DW_TAG_formal_parameter)
+ .long 0x1d4f # DW_AT_type
+ .byte 0 # end of children of DIE 0x895
+ .uleb128 0x8 # (DIE (0x8b0) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2193 # DW_AT_name: "_M_head"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x22d # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2200 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEE7_M_headERKS3_"
+ .long 0x1d36 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x8cb # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x8c5) DW_TAG_formal_parameter)
+ .long 0x1d54 # DW_AT_type
+ .byte 0 # end of children of DIE 0x8b0
+ .uleb128 0x2f # (DIE (0x8cb) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2201 # DW_AT_name: "_Tuple_impl"
+ # DW_AT_decl_file (3, /usr/include/c++/15/tuple)
+ .value 0x230 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2202 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEC4Ev"
+ # DW_AT_declaration
+ .long 0x8df # DW_AT_object_pointer
+ .long 0x8e5 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x8df) DW_TAG_formal_parameter)
+ .long 0x1d59 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x8cb
+ .uleb128 0x3b # (DIE (0x8e5) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2201 # DW_AT_name: "_Tuple_impl"
+ # DW_AT_decl_file (3, /usr/include/c++/15/tuple)
+ .value 0x234 # DW_AT_decl_line
+ # DW_AT_decl_column (0x7)
+ .long .LASF2203 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEC4ERKS2_"
+ # DW_AT_declaration
+ # DW_AT_explicit
+ .long 0x8f8 # DW_AT_object_pointer
+ .long 0x903 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x8f8) DW_TAG_formal_parameter)
+ .long 0x1d59 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x8fd) DW_TAG_formal_parameter)
+ .long 0x1d36 # DW_AT_type
+ .byte 0 # end of children of DIE 0x8e5
+ .uleb128 0x30 # (DIE (0x903) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2201 # DW_AT_name: "_Tuple_impl"
+ # DW_AT_decl_file (3, /usr/include/c++/15/tuple)
+ .value 0x23e # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2204 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEC4ERKS3_"
+ # DW_AT_declaration
+ # DW_AT_defaulted (0x1)
+ .long 0x917 # DW_AT_object_pointer
+ .long 0x922 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x917) DW_TAG_formal_parameter)
+ .long 0x1d59 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x91c) DW_TAG_formal_parameter)
+ .long 0x1d54 # DW_AT_type
+ .byte 0 # end of children of DIE 0x903
+ .uleb128 0x3c # (DIE (0x922) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2150 # DW_AT_name: "operator="
+ # DW_AT_decl_file (3, /usr/include/c++/15/tuple)
+ .value 0x242 # DW_AT_decl_line
+ # DW_AT_decl_column (0x14)
+ .long .LASF2227 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEaSERKS3_"
+ .long 0x1d4f # DW_AT_type
+ # DW_AT_declaration
+ # DW_AT_deleted
+ .long 0x939 # DW_AT_object_pointer
+ .long 0x944 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x939) DW_TAG_formal_parameter)
+ .long 0x1d59 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x93e) DW_TAG_formal_parameter)
+ .long 0x1d54 # DW_AT_type
+ .byte 0 # end of children of DIE 0x922
+ .uleb128 0x2f # (DIE (0x944) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2201 # DW_AT_name: "_Tuple_impl"
+ # DW_AT_decl_file (3, /usr/include/c++/15/tuple)
+ .value 0x248 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2205 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEC4EOS3_"
+ # DW_AT_declaration
+ .long 0x958 # DW_AT_object_pointer
+ .long 0x963 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x958) DW_TAG_formal_parameter)
+ .long 0x1d59 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x95d) DW_TAG_formal_parameter)
+ .long 0x1d63 # DW_AT_type
+ .byte 0 # end of children of DIE 0x944
+ .uleb128 0x20 # (DIE (0x963) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2206 # DW_AT_name: "_M_swap"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x2f0 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2207 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEE7_M_swapERS3_"
+ .byte 0x2 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0x979 # DW_AT_object_pointer
+ .long 0x984 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x979) DW_TAG_formal_parameter)
+ .long 0x1d59 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x97e) DW_TAG_formal_parameter)
+ .long 0x1d4f # DW_AT_type
+ .byte 0 # end of children of DIE 0x963
+ .uleb128 0x27 # (DIE (0x984) DW_TAG_template_value_param)
+ .long .LASF2208 # DW_AT_name: "_Idx"
+ .long 0x1275 # DW_AT_type
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0x28 # (DIE (0x98e) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2231 # DW_AT_name: "_Elements"
+ .uleb128 0xb # (DIE (0x993) DW_TAG_template_type_param)
+ .long 0x571 # DW_AT_type
+ .byte 0 # end of children of DIE 0x98e
+ .byte 0 # end of children of DIE 0x882
+ .uleb128 0x7 # (DIE (0x99a) DW_TAG_const_type)
+ .long 0x882 # DW_AT_type
+ .uleb128 0x16 # (DIE (0x99f) DW_TAG_structure_type)
+ .long .LASF2209 # DW_AT_name: "_Head_base<0, Base*, false>"
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0xc8 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0xa9c # DW_AT_sibling
+ .uleb128 0x19 # (DIE (0x9ac) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2187 # DW_AT_name: "_Head_base"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0xca # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2210 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm0EP4BaseLb0EEC4Ev"
+ # DW_AT_declaration
+ .long 0x9c0 # DW_AT_object_pointer
+ .long 0x9c6 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x9c0) DW_TAG_formal_parameter)
+ .long 0x1d68 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x9ac
+ .uleb128 0x19 # (DIE (0x9c6) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2187 # DW_AT_name: "_Head_base"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0xcd # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2211 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm0EP4BaseLb0EEC4ERKS1_"
+ # DW_AT_declaration
+ .long 0x9da # DW_AT_object_pointer
+ .long 0x9e5 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x9da) DW_TAG_formal_parameter)
+ .long 0x1d68 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x9df) DW_TAG_formal_parameter)
+ .long 0x1d72 # DW_AT_type
+ .byte 0 # end of children of DIE 0x9c6
+ .uleb128 0x22 # (DIE (0x9e5) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2187 # DW_AT_name: "_Head_base"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0xd0 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2212 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm0EP4BaseLb0EEC4ERKS2_"
+ # DW_AT_declaration
+ # DW_AT_defaulted (0x1)
+ .long 0x9f9 # DW_AT_object_pointer
+ .long 0xa04 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x9f9) DW_TAG_formal_parameter)
+ .long 0x1d68 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x9fe) DW_TAG_formal_parameter)
+ .long 0x1d77 # DW_AT_type
+ .byte 0 # end of children of DIE 0x9e5
+ .uleb128 0x22 # (DIE (0xa04) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2187 # DW_AT_name: "_Head_base"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0xd1 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2213 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm0EP4BaseLb0EEC4EOS2_"
+ # DW_AT_declaration
+ # DW_AT_defaulted (0x1)
+ .long 0xa18 # DW_AT_object_pointer
+ .long 0xa23 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xa18) DW_TAG_formal_parameter)
+ .long 0x1d68 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xa1d) DW_TAG_formal_parameter)
+ .long 0x1d7c # DW_AT_type
+ .byte 0 # end of children of DIE 0xa04
+ .uleb128 0x19 # (DIE (0xa23) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2187 # DW_AT_name: "_Head_base"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0xd8 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2214 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm0EP4BaseLb0EEC4ESt15allocator_arg_tSt13__uses_alloc0"
+ # DW_AT_declaration
+ .long 0xa37 # DW_AT_object_pointer
+ .long 0xa47 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xa37) DW_TAG_formal_parameter)
+ .long 0x1d68 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xa3c) DW_TAG_formal_parameter)
+ .long 0x63 # DW_AT_type
+ .uleb128 0x1 # (DIE (0xa41) DW_TAG_formal_parameter)
+ .long 0x90 # DW_AT_type
+ .byte 0 # end of children of DIE 0xa23
+ .uleb128 0xf # (DIE (0xa47) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2193 # DW_AT_name: "_M_head"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0xf6 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2215 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm0EP4BaseLb0EE7_M_headERS2_"
+ .long 0x1d81 # DW_AT_type
+ # DW_AT_declaration
+ .long 0xa61 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0xa5b) DW_TAG_formal_parameter)
+ .long 0x1d86 # DW_AT_type
+ .byte 0 # end of children of DIE 0xa47
+ .uleb128 0xf # (DIE (0xa61) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2193 # DW_AT_name: "_M_head"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0xf9 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2216 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm0EP4BaseLb0EE7_M_headERKS2_"
+ .long 0x1d72 # DW_AT_type
+ # DW_AT_declaration
+ .long 0xa7b # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0xa75) DW_TAG_formal_parameter)
+ .long 0x1d77 # DW_AT_type
+ .byte 0 # end of children of DIE 0xa61
+ .uleb128 0xa # (DIE (0xa7b) DW_TAG_member)
+ .long .LASF2196 # DW_AT_name: "_M_head_impl"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0xfb # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0x1d22 # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .uleb128 0x27 # (DIE (0xa88) DW_TAG_template_value_param)
+ .long .LASF2208 # DW_AT_name: "_Idx"
+ .long 0x1275 # DW_AT_type
+ .byte 0 # DW_AT_const_value
+ .uleb128 0x23 # (DIE (0xa92) DW_TAG_template_type_param)
+ .long .LASF2197 # DW_AT_name: "_Head"
+ .long 0x1d22 # DW_AT_type
+ .byte 0 # end of children of DIE 0x99f
+ .uleb128 0x7 # (DIE (0xa9c) DW_TAG_const_type)
+ .long 0x99f # DW_AT_type
+ .uleb128 0x24 # (DIE (0xaa1) DW_TAG_structure_type)
+ .long .LASF2217 # DW_AT_name: "_Tuple_impl<0, Base*, std::default_delete<Base> >"
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x119 # DW_AT_decl_line
+ # DW_AT_decl_column (0xc)
+ .long 0xc10 # DW_AT_sibling
+ .uleb128 0x2c # (DIE (0xaae) DW_TAG_inheritance)
+ .long 0x882 # DW_AT_type
+ # DW_AT_data_member_location (0)
+ .uleb128 0x2e # (DIE (0xab3) DW_TAG_inheritance)
+ .long 0x99f # DW_AT_type
+ # DW_AT_data_member_location (0)
+ .byte 0x3 # DW_AT_accessibility
+ .uleb128 0x8 # (DIE (0xab9) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2193 # DW_AT_name: "_M_head"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x123 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2218 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEE7_M_headERS4_"
+ .long 0x1d81 # DW_AT_type
+ # DW_AT_declaration
+ .long 0xad4 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0xace) DW_TAG_formal_parameter)
+ .long 0x1d8b # DW_AT_type
+ .byte 0 # end of children of DIE 0xab9
+ .uleb128 0x8 # (DIE (0xad4) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2193 # DW_AT_name: "_M_head"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x126 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2219 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEE7_M_headERKS4_"
+ .long 0x1d72 # DW_AT_type
+ # DW_AT_declaration
+ .long 0xaef # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0xae9) DW_TAG_formal_parameter)
+ .long 0x1d90 # DW_AT_type
+ .byte 0 # end of children of DIE 0xad4
+ .uleb128 0x18 # (DIE (0xaef) DW_TAG_typedef)
+ .long .LASF2220 # DW_AT_name: "_Inherited"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x11f # DW_AT_decl_line
+ .byte 0x2f # DW_AT_decl_column
+ .long 0x882 # DW_AT_type
+ .uleb128 0x7 # (DIE (0xafc) DW_TAG_const_type)
+ .long 0xaef # DW_AT_type
+ .uleb128 0x8 # (DIE (0xb01) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2221 # DW_AT_name: "_M_tail"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x129 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2222 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEE7_M_tailERS4_"
+ .long 0x1d95 # DW_AT_type
+ # DW_AT_declaration
+ .long 0xb1c # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0xb16) DW_TAG_formal_parameter)
+ .long 0x1d8b # DW_AT_type
+ .byte 0 # end of children of DIE 0xb01
+ .uleb128 0x8 # (DIE (0xb1c) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2221 # DW_AT_name: "_M_tail"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x12c # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2223 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEE7_M_tailERKS4_"
+ .long 0x1d9a # DW_AT_type
+ # DW_AT_declaration
+ .long 0xb37 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0xb31) DW_TAG_formal_parameter)
+ .long 0x1d90 # DW_AT_type
+ .byte 0 # end of children of DIE 0xb1c
+ .uleb128 0x2f # (DIE (0xb37) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2201 # DW_AT_name: "_Tuple_impl"
+ # DW_AT_decl_file (3, /usr/include/c++/15/tuple)
+ .value 0x12e # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2224 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEC4Ev"
+ # DW_AT_declaration
+ .long 0xb4b # DW_AT_object_pointer
+ .long 0xb51 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xb4b) DW_TAG_formal_parameter)
+ .long 0x1d9f # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0xb37
+ .uleb128 0x3b # (DIE (0xb51) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2201 # DW_AT_name: "_Tuple_impl"
+ # DW_AT_decl_file (3, /usr/include/c++/15/tuple)
+ .value 0x132 # DW_AT_decl_line
+ # DW_AT_decl_column (0x7)
+ .long .LASF2225 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEC4ERKS1_RKS3_"
+ # DW_AT_declaration
+ # DW_AT_explicit
+ .long 0xb64 # DW_AT_object_pointer
+ .long 0xb74 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xb64) DW_TAG_formal_parameter)
+ .long 0x1d9f # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xb69) DW_TAG_formal_parameter)
+ .long 0x1d72 # DW_AT_type
+ .uleb128 0x1 # (DIE (0xb6e) DW_TAG_formal_parameter)
+ .long 0x1d36 # DW_AT_type
+ .byte 0 # end of children of DIE 0xb51
+ .uleb128 0x30 # (DIE (0xb74) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2201 # DW_AT_name: "_Tuple_impl"
+ # DW_AT_decl_file (3, /usr/include/c++/15/tuple)
+ .value 0x13e # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2226 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEC4ERKS4_"
+ # DW_AT_declaration
+ # DW_AT_defaulted (0x1)
+ .long 0xb88 # DW_AT_object_pointer
+ .long 0xb93 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xb88) DW_TAG_formal_parameter)
+ .long 0x1d9f # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xb8d) DW_TAG_formal_parameter)
+ .long 0x1d90 # DW_AT_type
+ .byte 0 # end of children of DIE 0xb74
+ .uleb128 0x3c # (DIE (0xb93) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2150 # DW_AT_name: "operator="
+ # DW_AT_decl_file (3, /usr/include/c++/15/tuple)
+ .value 0x142 # DW_AT_decl_line
+ # DW_AT_decl_column (0x14)
+ .long .LASF2228 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEaSERKS4_"
+ .long 0x1d8b # DW_AT_type
+ # DW_AT_declaration
+ # DW_AT_deleted
+ .long 0xbaa # DW_AT_object_pointer
+ .long 0xbb5 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xbaa) DW_TAG_formal_parameter)
+ .long 0x1d9f # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xbaf) DW_TAG_formal_parameter)
+ .long 0x1d90 # DW_AT_type
+ .byte 0 # end of children of DIE 0xb93
+ .uleb128 0x30 # (DIE (0xbb5) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2201 # DW_AT_name: "_Tuple_impl"
+ # DW_AT_decl_file (3, /usr/include/c++/15/tuple)
+ .value 0x144 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2229 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEC4EOS4_"
+ # DW_AT_declaration
+ # DW_AT_defaulted (0x1)
+ .long 0xbc9 # DW_AT_object_pointer
+ .long 0xbd4 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xbc9) DW_TAG_formal_parameter)
+ .long 0x1d9f # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xbce) DW_TAG_formal_parameter)
+ .long 0x1da9 # DW_AT_type
+ .byte 0 # end of children of DIE 0xbb5
+ .uleb128 0x20 # (DIE (0xbd4) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2206 # DW_AT_name: "_M_swap"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x20e # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2230 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEE7_M_swapERS4_"
+ .byte 0x2 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0xbea # DW_AT_object_pointer
+ .long 0xbf5 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xbea) DW_TAG_formal_parameter)
+ .long 0x1d9f # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xbef) DW_TAG_formal_parameter)
+ .long 0x1d8b # DW_AT_type
+ .byte 0 # end of children of DIE 0xbd4
+ .uleb128 0x27 # (DIE (0xbf5) DW_TAG_template_value_param)
+ .long .LASF2208 # DW_AT_name: "_Idx"
+ .long 0x1275 # DW_AT_type
+ .byte 0 # DW_AT_const_value
+ .uleb128 0x28 # (DIE (0xbff) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2231 # DW_AT_name: "_Elements"
+ .uleb128 0xb # (DIE (0xc04) DW_TAG_template_type_param)
+ .long 0x1d22 # DW_AT_type
+ .uleb128 0xb # (DIE (0xc09) DW_TAG_template_type_param)
+ .long 0x571 # DW_AT_type
+ .byte 0 # end of children of DIE 0xbff
+ .byte 0 # end of children of DIE 0xaa1
+ .uleb128 0x7 # (DIE (0xc10) DW_TAG_const_type)
+ .long 0xaa1 # DW_AT_type
+ .uleb128 0x16 # (DIE (0xc15) DW_TAG_structure_type)
+ .long .LASF2232 # DW_AT_name: "__conditional<true>"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x4 # DW_AT_decl_file (/usr/include/c++/15/type_traits)
+ .byte 0x92 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0xc3b # DW_AT_sibling
+ .uleb128 0xe # (DIE (0xc22) DW_TAG_typedef)
+ .long .LASF2168 # DW_AT_name: "type"
+ .byte 0x4 # DW_AT_decl_file (/usr/include/c++/15/type_traits)
+ .byte 0x95 # DW_AT_decl_line
+ .byte 0x8 # DW_AT_decl_column
+ .long 0x1db8 # DW_AT_type
+ .uleb128 0xe # (DIE (0xc2e) DW_TAG_typedef)
+ .long .LASF2168 # DW_AT_name: "type"
+ .byte 0x4 # DW_AT_decl_file (/usr/include/c++/15/type_traits)
+ .byte 0x95 # DW_AT_decl_line
+ .byte 0x8 # DW_AT_decl_column
+ .long 0x1dbd # DW_AT_type
+ .byte 0 # end of children of DIE 0xc15
+ .uleb128 0x3d # (DIE (0xc3b) DW_TAG_class_type)
+ .long .LASF2233 # DW_AT_name: "tuple<Base*, std::default_delete<Base> >"
+ # DW_AT_byte_size (0x8)
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x7d8 # DW_AT_decl_line
+ # DW_AT_decl_column (0xb)
+ .long 0xd2c # DW_AT_sibling
+ .uleb128 0x2e # (DIE (0xc47) DW_TAG_inheritance)
+ .long 0xaa1 # DW_AT_type
+ # DW_AT_data_member_location (0)
+ .byte 0x1 # DW_AT_accessibility
+ .uleb128 0x52 # (DIE (0xc4d) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2383 # DW_AT_name: "__nothrow_default_constructible"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x80e # DW_AT_decl_line
+ .byte 0x1d # DW_AT_decl_column
+ .long .LASF2384 # DW_AT_linkage_name: "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEE31__nothrow_default_constructibleEv"
+ .long 0x127c # DW_AT_type
+ # DW_AT_declaration
+ .uleb128 0x31 # (DIE (0xc5e) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2234 # DW_AT_name: "tuple"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x853 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2235 # DW_AT_linkage_name: "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEC4ERKS4_"
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ # DW_AT_defaulted (0x1)
+ .long 0xc73 # DW_AT_object_pointer
+ .long 0xc7e # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xc73) DW_TAG_formal_parameter)
+ .long 0x1dae # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xc78) DW_TAG_formal_parameter)
+ .long 0x1db8 # DW_AT_type
+ .byte 0 # end of children of DIE 0xc5e
+ .uleb128 0x31 # (DIE (0xc7e) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2234 # DW_AT_name: "tuple"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x855 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2236 # DW_AT_linkage_name: "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEC4EOS4_"
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ # DW_AT_defaulted (0x1)
+ .long 0xc93 # DW_AT_object_pointer
+ .long 0xc9e # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xc93) DW_TAG_formal_parameter)
+ .long 0x1dae # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xc98) DW_TAG_formal_parameter)
+ .long 0x1dbd # DW_AT_type
+ .byte 0 # end of children of DIE 0xc7e
+ .uleb128 0x1d # (DIE (0xc9e) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2150 # DW_AT_name: "operator="
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x91b # DW_AT_decl_line
+ # DW_AT_decl_column (0x7)
+ .long .LASF2237 # DW_AT_linkage_name: "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEaSERKS4_"
+ .long 0x1dc2 # DW_AT_type
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0xcb6 # DW_AT_object_pointer
+ .long 0xcc1 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xcb6) DW_TAG_formal_parameter)
+ .long 0x1dae # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xcbb) DW_TAG_formal_parameter)
+ .long 0xd31 # DW_AT_type
+ .byte 0 # end of children of DIE 0xc9e
+ .uleb128 0x1d # (DIE (0xcc1) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2150 # DW_AT_name: "operator="
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x926 # DW_AT_decl_line
+ # DW_AT_decl_column (0x7)
+ .long .LASF2238 # DW_AT_linkage_name: "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEaSEOS4_"
+ .long 0x1dc2 # DW_AT_type
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0xcd9 # DW_AT_object_pointer
+ .long 0xce4 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xcd9) DW_TAG_formal_parameter)
+ .long 0x1dae # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xcde) DW_TAG_formal_parameter)
+ .long 0xd3d # DW_AT_type
+ .byte 0 # end of children of DIE 0xcc1
+ .uleb128 0x20 # (DIE (0xce4) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2155 # DW_AT_name: "swap"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x95b # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2239 # DW_AT_linkage_name: "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEE4swapERS4_"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0xcfa # DW_AT_object_pointer
+ .long 0xd05 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xcfa) DW_TAG_formal_parameter)
+ .long 0x1dae # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xcff) DW_TAG_formal_parameter)
+ .long 0x1dc2 # DW_AT_type
+ .byte 0 # end of children of DIE 0xce4
+ .uleb128 0x20 # (DIE (0xd05) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2240 # DW_AT_name: "tuple<>"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x82a # DW_AT_decl_line
+ .byte 0x2 # DW_AT_decl_column
+ .long .LASF2241 # DW_AT_linkage_name: "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEC4ILb1ELb1EEEv"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0xd24 # DW_AT_object_pointer
+ .long 0xd2a # DW_AT_sibling
+ .uleb128 0x32 # (DIE (0xd1b) DW_TAG_template_value_param)
+ .long .LASF2369 # DW_AT_name: "_Dummy"
+ .long 0x127c # DW_AT_type
+ # DW_AT_default_value
+ # DW_AT_const_value (0x1)
+ .uleb128 0x2 # (DIE (0xd24) DW_TAG_formal_parameter)
+ .long 0x1dae # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0xd05
+ .uleb128 0x53 # (DIE (0xd2a) DW_TAG_GNU_template_parameter_pack)
+ .byte 0 # end of children of DIE 0xc3b
+ .uleb128 0x7 # (DIE (0xd2c) DW_TAG_const_type)
+ .long 0xc3b # DW_AT_type
+ .uleb128 0xe # (DIE (0xd31) DW_TAG_typedef)
+ .long .LASF2242 # DW_AT_name: "__conditional_t"
+ .byte 0x4 # DW_AT_decl_file (/usr/include/c++/15/type_traits)
+ .byte 0xa1 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0xc22 # DW_AT_type
+ .uleb128 0xe # (DIE (0xd3d) DW_TAG_typedef)
+ .long .LASF2242 # DW_AT_name: "__conditional_t"
+ .byte 0x4 # DW_AT_decl_file (/usr/include/c++/15/type_traits)
+ .byte 0xa1 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0xc2e # DW_AT_type
+ .uleb128 0x16 # (DIE (0xd49) DW_TAG_structure_type)
+ .long .LASF2243 # DW_AT_name: "__uniq_ptr_data<Base, std::default_delete<Base>, true, true>"
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xe9 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0xdcd # DW_AT_sibling
+ .uleb128 0x2c # (DIE (0xd56) DW_TAG_inheritance)
+ .long 0x5c6 # DW_AT_type
+ # DW_AT_data_member_location (0)
+ .uleb128 0x22 # (DIE (0xd5b) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2244 # DW_AT_name: "__uniq_ptr_data"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xec # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2245 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_dataI4BaseSt14default_deleteIS0_ELb1ELb1EEC4EOS3_"
+ # DW_AT_declaration
+ # DW_AT_defaulted (0x1)
+ .long 0xd6f # DW_AT_object_pointer
+ .long 0xd7a # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xd6f) DW_TAG_formal_parameter)
+ .long 0x1de5 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xd74) DW_TAG_formal_parameter)
+ .long 0x1def # DW_AT_type
+ .byte 0 # end of children of DIE 0xd5b
+ .uleb128 0x54 # (DIE (0xd7a) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2150 # DW_AT_name: "operator="
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xed # DW_AT_decl_line
+ .byte 0x18 # DW_AT_decl_column
+ .long .LASF2246 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_dataI4BaseSt14default_deleteIS0_ELb1ELb1EEaSEOS3_"
+ .long 0x1df4 # DW_AT_type
+ # DW_AT_declaration
+ .byte 0x1 # DW_AT_defaulted
+ .long 0xd93 # DW_AT_object_pointer
+ .long 0xd9e # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xd93) DW_TAG_formal_parameter)
+ .long 0x1de5 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xd98) DW_TAG_formal_parameter)
+ .long 0x1def # DW_AT_type
+ .byte 0 # end of children of DIE 0xd7a
+ .uleb128 0x55 # (DIE (0xd9e) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2244 # DW_AT_name: "__uniq_ptr_data"
+ .long .LASF2385 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_dataI4BaseSt14default_deleteIS0_ELb1ELb1EECI4St15__uniq_ptr_implIS0_S2_EEPS0_"
+ # DW_AT_artificial
+ # DW_AT_declaration
+ .long 0xdaf # DW_AT_object_pointer
+ .long 0xdba # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xdaf) DW_TAG_formal_parameter)
+ .long 0x1de5 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xdb4) DW_TAG_formal_parameter)
+ .long 0x638 # DW_AT_type
+ .byte 0 # end of children of DIE 0xd9e
+ .uleb128 0xd # (DIE (0xdba) DW_TAG_template_type_param)
+ .ascii "_Tp\0" # DW_AT_name
+ .long 0x1d0b # DW_AT_type
+ .uleb128 0xd # (DIE (0xdc3) DW_TAG_template_type_param)
+ .ascii "_Dp\0" # DW_AT_name
+ .long 0x571 # DW_AT_type
+ .byte 0 # end of children of DIE 0xd49
+ .uleb128 0x24 # (DIE (0xdcd) DW_TAG_structure_type)
+ .long .LASF2247 # DW_AT_name: "add_lvalue_reference<Base>"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x4 # DW_AT_decl_file (/usr/include/c++/15/type_traits)
+ .value 0x6fd # DW_AT_decl_line
+ # DW_AT_decl_column (0xc)
+ .long 0xdf1 # DW_AT_sibling
+ .uleb128 0x18 # (DIE (0xdda) DW_TAG_typedef)
+ .long .LASF2168 # DW_AT_name: "type"
+ .byte 0x4 # DW_AT_decl_file (/usr/include/c++/15/type_traits)
+ .value 0x6fe # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0xdf1 # DW_AT_type
+ .uleb128 0xd # (DIE (0xde7) DW_TAG_template_type_param)
+ .ascii "_Tp\0" # DW_AT_name
+ .long 0x1d0b # DW_AT_type
+ .byte 0 # end of children of DIE 0xdcd
+ .uleb128 0x18 # (DIE (0xdf1) DW_TAG_typedef)
+ .long .LASF2248 # DW_AT_name: "__add_lval_ref_t"
+ .byte 0x4 # DW_AT_decl_file (/usr/include/c++/15/type_traits)
+ .value 0x497 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1df9 # DW_AT_type
+ .uleb128 0x3d # (DIE (0xdfe) DW_TAG_class_type)
+ .long .LASF2249 # DW_AT_name: "unique_ptr<Base, std::default_delete<Base> >"
+ # DW_AT_byte_size (0x8)
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x10f # DW_AT_decl_line
+ # DW_AT_decl_column (0xb)
+ .long 0x1053 # DW_AT_sibling
+ .uleb128 0x56 # (DIE (0xe0a) DW_TAG_member)
+ .long .LASF2185 # DW_AT_name: "_M_t"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x115 # DW_AT_decl_line
+ .byte 0x21 # DW_AT_decl_column
+ .long 0xd49 # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .uleb128 0x31 # (DIE (0xe18) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2250 # DW_AT_name: "unique_ptr"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x168 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2251 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEC4EOS3_"
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ # DW_AT_defaulted (0x1)
+ .long 0xe2d # DW_AT_object_pointer
+ .long 0xe38 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xe2d) DW_TAG_formal_parameter)
+ .long 0x1dfe # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xe32) DW_TAG_formal_parameter)
+ .long 0x1e08 # DW_AT_type
+ .byte 0 # end of children of DIE 0xe18
+ .uleb128 0x20 # (DIE (0xe38) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2252 # DW_AT_name: "~unique_ptr"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x189 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2253 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED4Ev"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0xe4e # DW_AT_object_pointer
+ .long 0xe54 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xe4e) DW_TAG_formal_parameter)
+ .long 0x1dfe # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0xe38
+ .uleb128 0x57 # (DIE (0xe54) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2150 # DW_AT_name: "operator="
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x199 # DW_AT_decl_line
+ .byte 0x13 # DW_AT_decl_column
+ .long .LASF2265 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEaSEOS3_"
+ .long 0x1e0d # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .byte 0x1 # DW_AT_defaulted
+ .long 0xe6f # DW_AT_object_pointer
+ .long 0xe7a # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xe6f) DW_TAG_formal_parameter)
+ .long 0x1dfe # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xe74) DW_TAG_formal_parameter)
+ .long 0x1e08 # DW_AT_type
+ .byte 0 # end of children of DIE 0xe54
+ .uleb128 0x1d # (DIE (0xe7a) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2150 # DW_AT_name: "operator="
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x1b3 # DW_AT_decl_line
+ # DW_AT_decl_column (0x7)
+ .long .LASF2255 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEaSEDn"
+ .long 0x1e0d # DW_AT_type
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0xe92 # DW_AT_object_pointer
+ .long 0xe9d # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xe92) DW_TAG_formal_parameter)
+ .long 0x1dfe # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xe97) DW_TAG_formal_parameter)
+ .long 0xd9 # DW_AT_type
+ .byte 0 # end of children of DIE 0xe7a
+ .uleb128 0x1d # (DIE (0xe9d) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2256 # DW_AT_name: "operator*"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x1be # DW_AT_decl_line
+ # DW_AT_decl_column (0x7)
+ .long .LASF2257 # DW_AT_linkage_name: "_ZNKSt10unique_ptrI4BaseSt14default_deleteIS0_EEdeEv"
+ .long 0xdda # DW_AT_type
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0xeb5 # DW_AT_object_pointer
+ .long 0xebb # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xeb5) DW_TAG_formal_parameter)
+ .long 0x1e12 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0xe9d
+ .uleb128 0x3e # (DIE (0xebb) DW_TAG_typedef)
+ .long .LASF2258 # DW_AT_name: "pointer"
+ # DW_AT_decl_file (1, /usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x118 # DW_AT_decl_line
+ # DW_AT_decl_column (0xd)
+ .long 0x638 # DW_AT_type
+ # DW_AT_accessibility (0x1)
+ .uleb128 0x1d # (DIE (0xec6) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2259 # DW_AT_name: "operator->"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x1cf # DW_AT_decl_line
+ # DW_AT_decl_column (0x7)
+ .long .LASF2260 # DW_AT_linkage_name: "_ZNKSt10unique_ptrI4BaseSt14default_deleteIS0_EEptEv"
+ .long 0xebb # DW_AT_type
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0xede # DW_AT_object_pointer
+ .long 0xee4 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xede) DW_TAG_formal_parameter)
+ .long 0x1e12 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0xec6
+ .uleb128 0x58 # (DIE (0xee4) DW_TAG_subprogram)
+ # DW_AT_external
+ .ascii "get\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x1d8 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2386 # DW_AT_linkage_name: "_ZNKSt10unique_ptrI4BaseSt14default_deleteIS0_EE3getEv"
+ .long 0xebb # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0xefe # DW_AT_object_pointer
+ .long 0xf04 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xefe) DW_TAG_formal_parameter)
+ .long 0x1e12 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0xee4
+ .uleb128 0x3e # (DIE (0xf04) DW_TAG_typedef)
+ .long .LASF2261 # DW_AT_name: "deleter_type"
+ # DW_AT_decl_file (1, /usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x11a # DW_AT_decl_line
+ # DW_AT_decl_column (0xd)
+ .long 0x571 # DW_AT_type
+ # DW_AT_accessibility (0x1)
+ .uleb128 0x7 # (DIE (0xf0f) DW_TAG_const_type)
+ .long 0xf04 # DW_AT_type
+ .uleb128 0x1d # (DIE (0xf14) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2262 # DW_AT_name: "get_deleter"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x1de # DW_AT_decl_line
+ # DW_AT_decl_column (0x7)
+ .long .LASF2263 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EE11get_deleterEv"
+ .long 0x1e17 # DW_AT_type
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0xf2c # DW_AT_object_pointer
+ .long 0xf32 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xf2c) DW_TAG_formal_parameter)
+ .long 0x1dfe # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0xf14
+ .uleb128 0x1d # (DIE (0xf32) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2262 # DW_AT_name: "get_deleter"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x1e4 # DW_AT_decl_line
+ # DW_AT_decl_column (0x7)
+ .long .LASF2264 # DW_AT_linkage_name: "_ZNKSt10unique_ptrI4BaseSt14default_deleteIS0_EE11get_deleterEv"
+ .long 0x1e1c # DW_AT_type
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0xf4a # DW_AT_object_pointer
+ .long 0xf50 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xf4a) DW_TAG_formal_parameter)
+ .long 0x1e12 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0xf32
+ .uleb128 0x59 # (DIE (0xf50) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2254 # DW_AT_name: "operator bool"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x1e9 # DW_AT_decl_line
+ .byte 0x10 # DW_AT_decl_column
+ .long .LASF2266 # DW_AT_linkage_name: "_ZNKSt10unique_ptrI4BaseSt14default_deleteIS0_EEcvbEv"
+ .long 0x127c # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ # DW_AT_explicit
+ .long 0xf6a # DW_AT_object_pointer
+ .long 0xf70 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xf6a) DW_TAG_formal_parameter)
+ .long 0x1e12 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0xf50
+ .uleb128 0x1d # (DIE (0xf70) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2182 # DW_AT_name: "release"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x1f1 # DW_AT_decl_line
+ # DW_AT_decl_column (0x7)
+ .long .LASF2267 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EE7releaseEv"
+ .long 0xebb # DW_AT_type
+ # DW_AT_accessibility (0x1)
+ # DW_AT_declaration
+ .long 0xf88 # DW_AT_object_pointer
+ .long 0xf8e # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xf88) DW_TAG_formal_parameter)
+ .long 0x1dfe # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0xf70
+ .uleb128 0x20 # (DIE (0xf8e) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2180 # DW_AT_name: "reset"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x1fc # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2268 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EE5resetEPS0_"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0xfa4 # DW_AT_object_pointer
+ .long 0xfaf # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xfa4) DW_TAG_formal_parameter)
+ .long 0x1dfe # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xfa9) DW_TAG_formal_parameter)
+ .long 0xebb # DW_AT_type
+ .byte 0 # end of children of DIE 0xf8e
+ .uleb128 0x20 # (DIE (0xfaf) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2155 # DW_AT_name: "swap"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x206 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2269 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EE4swapERS3_"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ .long 0xfc5 # DW_AT_object_pointer
+ .long 0xfd0 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xfc5) DW_TAG_formal_parameter)
+ .long 0x1dfe # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xfca) DW_TAG_formal_parameter)
+ .long 0x1e0d # DW_AT_type
+ .byte 0 # end of children of DIE 0xfaf
+ .uleb128 0x5a # (DIE (0xfd0) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2250 # DW_AT_name: "unique_ptr"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x20d # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long .LASF2270 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEC4ERKS3_"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ # DW_AT_deleted
+ .long 0xfe6 # DW_AT_object_pointer
+ .long 0xff1 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0xfe6) DW_TAG_formal_parameter)
+ .long 0x1dfe # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0xfeb) DW_TAG_formal_parameter)
+ .long 0x1e21 # DW_AT_type
+ .byte 0 # end of children of DIE 0xfd0
+ .uleb128 0x5b # (DIE (0xff1) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2150 # DW_AT_name: "operator="
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x20e # DW_AT_decl_line
+ .byte 0x13 # DW_AT_decl_column
+ .long .LASF2271 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEaSERKS3_"
+ .long 0x1e0d # DW_AT_type
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ # DW_AT_deleted
+ .long 0x100b # DW_AT_object_pointer
+ .long 0x1016 # DW_AT_sibling
+ .uleb128 0x2 # (DIE (0x100b) DW_TAG_formal_parameter)
+ .long 0x1dfe # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x1010) DW_TAG_formal_parameter)
+ .long 0x1e21 # DW_AT_type
+ .byte 0 # end of children of DIE 0xff1
+ .uleb128 0x5c # (DIE (0x1016) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2272 # DW_AT_name: "unique_ptr<>"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x137 # DW_AT_decl_line
+ .byte 0x2 # DW_AT_decl_column
+ .long .LASF2273 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEC4IS2_vEEPS0_"
+ .byte 0x1 # DW_AT_accessibility
+ # DW_AT_declaration
+ # DW_AT_explicit
+ .long 0x1035 # DW_AT_object_pointer
+ .long 0x1040 # DW_AT_sibling
+ .uleb128 0x33 # (DIE (0x102c) DW_TAG_template_type_param)
+ .long .LASF2274 # DW_AT_name: "_Del"
+ .long 0x571 # DW_AT_type
+ # DW_AT_default_value
+ .uleb128 0x2 # (DIE (0x1035) DW_TAG_formal_parameter)
+ .long 0x1dfe # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x103a) DW_TAG_formal_parameter)
+ .long 0xebb # DW_AT_type
+ .byte 0 # end of children of DIE 0x1016
+ .uleb128 0xd # (DIE (0x1040) DW_TAG_template_type_param)
+ .ascii "_Tp\0" # DW_AT_name
+ .long 0x1d0b # DW_AT_type
+ .uleb128 0x5d # (DIE (0x1049) DW_TAG_template_type_param)
+ .ascii "_Dp\0" # DW_AT_name
+ .long 0x571 # DW_AT_type
+ # DW_AT_default_value
+ .byte 0 # end of children of DIE 0xdfe
+ .uleb128 0x7 # (DIE (0x1053) DW_TAG_const_type)
+ .long 0xdfe # DW_AT_type
+ .uleb128 0x2d # (DIE (0x1058) DW_TAG_namespace)
+ .long .LASF2275 # DW_AT_name: "__detail"
+ .byte 0x4 # DW_AT_decl_file (/usr/include/c++/15/type_traits)
+ .byte 0xac # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0x1096 # DW_AT_sibling
+ .uleb128 0x24 # (DIE (0x1064) DW_TAG_structure_type)
+ .long .LASF2276 # DW_AT_name: "_MakeUniq<Base>"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x41e # DW_AT_decl_line
+ # DW_AT_decl_column (0xc)
+ .long 0x1088 # DW_AT_sibling
+ .uleb128 0x18 # (DIE (0x1071) DW_TAG_typedef)
+ .long .LASF2277 # DW_AT_name: "__single_object"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x41f # DW_AT_decl_line
+ .byte 0x1f # DW_AT_decl_column
+ .long 0xdfe # DW_AT_type
+ .uleb128 0xd # (DIE (0x107e) DW_TAG_template_type_param)
+ .ascii "_Tp\0" # DW_AT_name
+ .long 0x1d0b # DW_AT_type
+ .byte 0 # end of children of DIE 0x1064
+ .uleb128 0x18 # (DIE (0x1088) DW_TAG_typedef)
+ .long .LASF2278 # DW_AT_name: "__unique_ptr_t"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x42a # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1071 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1058
+ .uleb128 0x16 # (DIE (0x1096) DW_TAG_structure_type)
+ .long .LASF2279 # DW_AT_name: "_Nth_type<0, Base*, std::default_delete<Base> >"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0xb # DW_AT_decl_file (/usr/include/c++/15/bits/utility.h)
+ .byte 0xeb # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x10ca # DW_AT_sibling
+ .uleb128 0xe # (DIE (0x10a3) DW_TAG_typedef)
+ .long .LASF2168 # DW_AT_name: "type"
+ .byte 0xb # DW_AT_decl_file (/usr/include/c++/15/bits/utility.h)
+ .byte 0xec # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0x1d22 # DW_AT_type
+ .uleb128 0x12 # (DIE (0x10af) DW_TAG_template_value_param)
+ .ascii "_Np\0" # DW_AT_name
+ .long 0x1275 # DW_AT_type
+ .byte 0 # DW_AT_const_value
+ .uleb128 0x28 # (DIE (0x10b9) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2280 # DW_AT_name: "_Types"
+ .uleb128 0xb # (DIE (0x10be) DW_TAG_template_type_param)
+ .long 0x1d22 # DW_AT_type
+ .uleb128 0xb # (DIE (0x10c3) DW_TAG_template_type_param)
+ .long 0x571 # DW_AT_type
+ .byte 0 # end of children of DIE 0x10b9
+ .byte 0 # end of children of DIE 0x1096
+ .uleb128 0x24 # (DIE (0x10ca) DW_TAG_structure_type)
+ .long .LASF2281 # DW_AT_name: "tuple_element<0, std::tuple<Base*, std::default_delete<Base> > >"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x973 # DW_AT_decl_line
+ # DW_AT_decl_column (0xc)
+ .long 0x10f8 # DW_AT_sibling
+ .uleb128 0x18 # (DIE (0x10d7) DW_TAG_typedef)
+ .long .LASF2168 # DW_AT_name: "type"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x977 # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0x10a3 # DW_AT_type
+ .uleb128 0x12 # (DIE (0x10e4) DW_TAG_template_value_param)
+ .ascii "__i\0" # DW_AT_name
+ .long 0x1275 # DW_AT_type
+ .byte 0 # DW_AT_const_value
+ .uleb128 0xd # (DIE (0x10ee) DW_TAG_template_type_param)
+ .ascii "_Tp\0" # DW_AT_name
+ .long 0xc3b # DW_AT_type
+ .byte 0 # end of children of DIE 0x10ca
+ .uleb128 0x16 # (DIE (0x10f8) DW_TAG_structure_type)
+ .long .LASF2282 # DW_AT_name: "_Nth_type<1, Base*, std::default_delete<Base> >"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0xb # DW_AT_decl_file (/usr/include/c++/15/bits/utility.h)
+ .byte 0xeb # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x112c # DW_AT_sibling
+ .uleb128 0xe # (DIE (0x1105) DW_TAG_typedef)
+ .long .LASF2168 # DW_AT_name: "type"
+ .byte 0xb # DW_AT_decl_file (/usr/include/c++/15/bits/utility.h)
+ .byte 0xec # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0x571 # DW_AT_type
+ .uleb128 0x12 # (DIE (0x1111) DW_TAG_template_value_param)
+ .ascii "_Np\0" # DW_AT_name
+ .long 0x1275 # DW_AT_type
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0x28 # (DIE (0x111b) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2280 # DW_AT_name: "_Types"
+ .uleb128 0xb # (DIE (0x1120) DW_TAG_template_type_param)
+ .long 0x1d22 # DW_AT_type
+ .uleb128 0xb # (DIE (0x1125) DW_TAG_template_type_param)
+ .long 0x571 # DW_AT_type
+ .byte 0 # end of children of DIE 0x111b
+ .byte 0 # end of children of DIE 0x10f8
+ .uleb128 0x24 # (DIE (0x112c) DW_TAG_structure_type)
+ .long .LASF2283 # DW_AT_name: "tuple_element<1, std::tuple<Base*, std::default_delete<Base> > >"
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x973 # DW_AT_decl_line
+ # DW_AT_decl_column (0xc)
+ .long 0x115a # DW_AT_sibling
+ .uleb128 0x18 # (DIE (0x1139) DW_TAG_typedef)
+ .long .LASF2168 # DW_AT_name: "type"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x977 # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ .long 0x1105 # DW_AT_type
+ .uleb128 0x12 # (DIE (0x1146) DW_TAG_template_value_param)
+ .ascii "__i\0" # DW_AT_name
+ .long 0x1275 # DW_AT_type
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0xd # (DIE (0x1150) DW_TAG_template_type_param)
+ .ascii "_Tp\0" # DW_AT_name
+ .long 0xc3b # DW_AT_type
+ .byte 0 # end of children of DIE 0x112c
+ .uleb128 0x8 # (DIE (0x115a) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2284 # DW_AT_name: "__get_helper<1, std::default_delete<Base> >"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x97c # DW_AT_decl_line
+ .byte 0x5 # DW_AT_decl_column
+ .long .LASF2285 # DW_AT_linkage_name: "_ZSt12__get_helperILm1ESt14default_deleteI4BaseEJEERT0_RSt11_Tuple_implIXT_EJS3_DpT1_EE"
+ .long 0x1d45 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x118d # DW_AT_sibling
+ .uleb128 0x12 # (DIE (0x116f) DW_TAG_template_value_param)
+ .ascii "__i\0" # DW_AT_name
+ .long 0x1275 # DW_AT_type
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0x23 # (DIE (0x1179) DW_TAG_template_type_param)
+ .long .LASF2197 # DW_AT_name: "_Head"
+ .long 0x571 # DW_AT_type
+ .uleb128 0x29 # (DIE (0x1182) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2291 # DW_AT_name: "_Tail"
+ .uleb128 0x1 # (DIE (0x1187) DW_TAG_formal_parameter)
+ .long 0x1d4f # DW_AT_type
+ .byte 0 # end of children of DIE 0x115a
+ .uleb128 0xe # (DIE (0x118d) DW_TAG_typedef)
+ .long .LASF2286 # DW_AT_name: "__tuple_element_t"
+ .byte 0xb # DW_AT_decl_file (/usr/include/c++/15/bits/utility.h)
+ .byte 0x56 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1139 # DW_AT_type
+ .uleb128 0x8 # (DIE (0x1199) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2287 # DW_AT_name: "get<1, Base*, std::default_delete<Base> >"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x98c # DW_AT_decl_line
+ .byte 0x5 # DW_AT_decl_column
+ .long .LASF2288 # DW_AT_linkage_name: "_ZSt3getILm1EJP4BaseSt14default_deleteIS0_EEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS8_"
+ .long 0x1fdf # DW_AT_type
+ # DW_AT_declaration
+ .long 0x11d2 # DW_AT_sibling
+ .uleb128 0x12 # (DIE (0x11ae) DW_TAG_template_value_param)
+ .ascii "__i\0" # DW_AT_name
+ .long 0x1275 # DW_AT_type
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0x25 # (DIE (0x11b8) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2231 # DW_AT_name: "_Elements"
+ .long 0x11cc # DW_AT_sibling
+ .uleb128 0xb # (DIE (0x11c1) DW_TAG_template_type_param)
+ .long 0x1d22 # DW_AT_type
+ .uleb128 0xb # (DIE (0x11c6) DW_TAG_template_type_param)
+ .long 0x571 # DW_AT_type
+ .byte 0 # end of children of DIE 0x11b8
+ .uleb128 0x1 # (DIE (0x11cc) DW_TAG_formal_parameter)
+ .long 0x1dc2 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1199
+ .uleb128 0x8 # (DIE (0x11d2) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2289 # DW_AT_name: "__get_helper<0, Base*, std::default_delete<Base> >"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x97c # DW_AT_decl_line
+ .byte 0x5 # DW_AT_decl_column
+ .long .LASF2290 # DW_AT_linkage_name: "_ZSt12__get_helperILm0EP4BaseJSt14default_deleteIS0_EEERT0_RSt11_Tuple_implIXT_EJS4_DpT1_EE"
+ .long 0x1d81 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x120f # DW_AT_sibling
+ .uleb128 0x12 # (DIE (0x11e7) DW_TAG_template_value_param)
+ .ascii "__i\0" # DW_AT_name
+ .long 0x1275 # DW_AT_type
+ .byte 0 # DW_AT_const_value
+ .uleb128 0x23 # (DIE (0x11f1) DW_TAG_template_type_param)
+ .long .LASF2197 # DW_AT_name: "_Head"
+ .long 0x1d22 # DW_AT_type
+ .uleb128 0x25 # (DIE (0x11fa) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2291 # DW_AT_name: "_Tail"
+ .long 0x1209 # DW_AT_sibling
+ .uleb128 0xb # (DIE (0x1203) DW_TAG_template_type_param)
+ .long 0x571 # DW_AT_type
+ .byte 0 # end of children of DIE 0x11fa
+ .uleb128 0x1 # (DIE (0x1209) DW_TAG_formal_parameter)
+ .long 0x1d8b # DW_AT_type
+ .byte 0 # end of children of DIE 0x11d2
+ .uleb128 0xe # (DIE (0x120f) DW_TAG_typedef)
+ .long .LASF2286 # DW_AT_name: "__tuple_element_t"
+ .byte 0xb # DW_AT_decl_file (/usr/include/c++/15/bits/utility.h)
+ .byte 0x56 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x10d7 # DW_AT_type
+ .uleb128 0x8 # (DIE (0x121b) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2292 # DW_AT_name: "get<0, Base*, std::default_delete<Base> >"
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x98c # DW_AT_decl_line
+ .byte 0x5 # DW_AT_decl_column
+ .long .LASF2293 # DW_AT_linkage_name: "_ZSt3getILm0EJP4BaseSt14default_deleteIS0_EEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS8_"
+ .long 0x20ab # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1254 # DW_AT_sibling
+ .uleb128 0x12 # (DIE (0x1230) DW_TAG_template_value_param)
+ .ascii "__i\0" # DW_AT_name
+ .long 0x1275 # DW_AT_type
+ .byte 0 # DW_AT_const_value
+ .uleb128 0x25 # (DIE (0x123a) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2231 # DW_AT_name: "_Elements"
+ .long 0x124e # DW_AT_sibling
+ .uleb128 0xb # (DIE (0x1243) DW_TAG_template_type_param)
+ .long 0x1d22 # DW_AT_type
+ .uleb128 0xb # (DIE (0x1248) DW_TAG_template_type_param)
+ .long 0x571 # DW_AT_type
+ .byte 0 # end of children of DIE 0x123a
+ .uleb128 0x1 # (DIE (0x124e) DW_TAG_formal_parameter)
+ .long 0x1dc2 # DW_AT_type
+ .byte 0 # end of children of DIE 0x121b
+ .uleb128 0x5e # (DIE (0x1254) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2294 # DW_AT_name: "make_unique<Base>"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x43c # DW_AT_decl_line
+ .byte 0x5 # DW_AT_decl_column
+ .long .LASF2387 # DW_AT_linkage_name: "_ZSt11make_uniqueI4BaseJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_"
+ .long 0x1088 # DW_AT_type
+ # DW_AT_declaration
+ .uleb128 0xd # (DIE (0x1265) DW_TAG_template_type_param)
+ .ascii "_Tp\0" # DW_AT_name
+ .long 0x1d0b # DW_AT_type
+ .uleb128 0x29 # (DIE (0x126e) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2295 # DW_AT_name: "_Args"
+ .byte 0 # end of children of DIE 0x1254
+ .byte 0 # end of children of DIE 0x33
+ .uleb128 0x9 # (DIE (0x1275) DW_TAG_base_type)
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x7 # DW_AT_encoding
+ .long .LASF2296 # DW_AT_name: "long unsigned int"
+ .uleb128 0x9 # (DIE (0x127c) DW_TAG_base_type)
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x2 # DW_AT_encoding
+ .long .LASF2297 # DW_AT_name: "bool"
+ .uleb128 0x9 # (DIE (0x1283) DW_TAG_base_type)
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x8 # DW_AT_encoding
+ .long .LASF2298 # DW_AT_name: "unsigned char"
+ .uleb128 0x9 # (DIE (0x128a) DW_TAG_base_type)
+ .byte 0x2 # DW_AT_byte_size
+ .byte 0x7 # DW_AT_encoding
+ .long .LASF2299 # DW_AT_name: "short unsigned int"
+ .uleb128 0x9 # (DIE (0x1291) DW_TAG_base_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x7 # DW_AT_encoding
+ .long .LASF2300 # DW_AT_name: "unsigned int"
+ .uleb128 0x9 # (DIE (0x1298) DW_TAG_base_type)
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x7 # DW_AT_encoding
+ .long .LASF2301 # DW_AT_name: "long long unsigned int"
+ .uleb128 0x9 # (DIE (0x129f) DW_TAG_base_type)
+ .byte 0x10 # DW_AT_byte_size
+ .byte 0x7 # DW_AT_encoding
+ .long .LASF2302 # DW_AT_name: "__int128 unsigned"
+ .uleb128 0x9 # (DIE (0x12a6) DW_TAG_base_type)
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x6 # DW_AT_encoding
+ .long .LASF2303 # DW_AT_name: "signed char"
+ .uleb128 0x9 # (DIE (0x12ad) DW_TAG_base_type)
+ .byte 0x2 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .long .LASF2304 # DW_AT_name: "short int"
+ .uleb128 0x5f # (DIE (0x12b4) DW_TAG_base_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .ascii "int\0" # DW_AT_name
+ .uleb128 0x9 # (DIE (0x12bb) DW_TAG_base_type)
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .long .LASF2305 # DW_AT_name: "long int"
+ .uleb128 0x9 # (DIE (0x12c2) DW_TAG_base_type)
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .long .LASF2306 # DW_AT_name: "long long int"
+ .uleb128 0x9 # (DIE (0x12c9) DW_TAG_base_type)
+ .byte 0x10 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .long .LASF2307 # DW_AT_name: "__int128"
+ .uleb128 0x9 # (DIE (0x12d0) DW_TAG_base_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .long .LASF2308 # DW_AT_name: "wchar_t"
+ .uleb128 0x7 # (DIE (0x12d7) DW_TAG_const_type)
+ .long 0x12d0 # DW_AT_type
+ .uleb128 0x9 # (DIE (0x12dc) DW_TAG_base_type)
+ .byte 0x2 # DW_AT_byte_size
+ .byte 0x10 # DW_AT_encoding
+ .long .LASF2309 # DW_AT_name: "char16_t"
+ .uleb128 0x9 # (DIE (0x12e3) DW_TAG_base_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x10 # DW_AT_encoding
+ .long .LASF2310 # DW_AT_name: "char32_t"
+ .uleb128 0x60 # (DIE (0x12ea) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .uleb128 0x4 # (DIE (0x12ec) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x12f1 # DW_AT_type
+ .uleb128 0x61 # (DIE (0x12f1) DW_TAG_const_type)
+ .uleb128 0x4 # (DIE (0x12f2) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x12f7 # DW_AT_type
+ .uleb128 0x9 # (DIE (0x12f7) DW_TAG_base_type)
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x6 # DW_AT_encoding
+ .long .LASF2311 # DW_AT_name: "char"
+ .uleb128 0x7 # (DIE (0x12fe) DW_TAG_const_type)
+ .long 0x12f7 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1303) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x12fe # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1308) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x12d0 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x130d) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x12d7 # DW_AT_type
+ .uleb128 0x3f # (DIE (0x1312) DW_TAG_namespace)
+ .long .LASF2312 # DW_AT_name: "__gnu_cxx"
+ .byte 0x7 # DW_AT_decl_file (/usr/include/c++/15/x86_64-redhat-linux/bits/c++config.h)
+ .value 0x8ef # DW_AT_decl_line
+ # DW_AT_decl_column (0xb)
+ .long 0x137b # DW_AT_sibling
+ .uleb128 0x38 # (DIE (0x131e) DW_TAG_namespace)
+ .long .LASF2313 # DW_AT_name: "__ops"
+ .byte 0xc # DW_AT_decl_file (/usr/include/c++/15/bits/predefined_ops.h)
+ .byte 0x25 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .uleb128 0x3 # (DIE (0x1326) DW_TAG_imported_declaration)
+ .byte 0x8 # DW_AT_decl_file (/usr/include/c++/15/cwchar)
+ .byte 0xfd # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1c66 # DW_AT_import
+ .uleb128 0x11 # (DIE (0x132e) DW_TAG_imported_declaration)
+ # DW_AT_decl_file (8, /usr/include/c++/15/cwchar)
+ .value 0x106 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1c81 # DW_AT_import
+ .uleb128 0x11 # (DIE (0x1336) DW_TAG_imported_declaration)
+ # DW_AT_decl_file (8, /usr/include/c++/15/cwchar)
+ .value 0x107 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1ca6 # DW_AT_import
+ .uleb128 0x62 # (DIE (0x133e) DW_TAG_enumeration_type)
+ .long .LASF2388 # DW_AT_name: "_Lock_policy"
+ .byte 0x7 # DW_AT_encoding
+ .byte 0x4 # DW_AT_byte_size
+ .long 0x1291 # DW_AT_type
+ .byte 0x18 # DW_AT_decl_file (/usr/include/c++/15/ext/concurrence.h)
+ .byte 0x36 # DW_AT_decl_line
+ .byte 0x8 # DW_AT_decl_column
+ .long 0x1363 # DW_AT_sibling
+ .uleb128 0x34 # (DIE (0x1350) DW_TAG_enumerator)
+ .long .LASF2314 # DW_AT_name: "_S_single"
+ .byte 0 # DW_AT_const_value
+ .uleb128 0x34 # (DIE (0x1356) DW_TAG_enumerator)
+ .long .LASF2315 # DW_AT_name: "_S_mutex"
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0x34 # (DIE (0x135c) DW_TAG_enumerator)
+ .long .LASF2316 # DW_AT_name: "_S_atomic"
+ .byte 0x2 # DW_AT_const_value
+ .byte 0 # end of children of DIE 0x133e
+ .uleb128 0x7 # (DIE (0x1363) DW_TAG_const_type)
+ .long 0x133e # DW_AT_type
+ .uleb128 0x63 # (DIE (0x1368) DW_TAG_variable)
+ .long .LASF2389 # DW_AT_name: "__default_lock_policy"
+ .byte 0x18 # DW_AT_decl_file (/usr/include/c++/15/ext/concurrence.h)
+ .byte 0x3a # DW_AT_decl_line
+ .byte 0x28 # DW_AT_decl_column
+ .long .LASF2390 # DW_AT_linkage_name: "_ZN9__gnu_cxx21__default_lock_policyE"
+ .long 0x1363 # DW_AT_type
+ # DW_AT_external
+ # DW_AT_declaration
+ .byte 0x2 # DW_AT_const_value
+ .byte 0x3 # DW_AT_inline
+ .byte 0 # end of children of DIE 0x1312
+ .uleb128 0x9 # (DIE (0x137b) DW_TAG_base_type)
+ .byte 0x10 # DW_AT_byte_size
+ .byte 0x4 # DW_AT_encoding
+ .long .LASF2317 # DW_AT_name: "long double"
+ .uleb128 0x9 # (DIE (0x1382) DW_TAG_base_type)
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x4 # DW_AT_encoding
+ .long .LASF2318 # DW_AT_name: "double"
+ .uleb128 0x9 # (DIE (0x1389) DW_TAG_base_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x4 # DW_AT_encoding
+ .long .LASF2319 # DW_AT_name: "float"
+ .uleb128 0x3f # (DIE (0x1390) DW_TAG_namespace)
+ .long .LASF2320 # DW_AT_name: "__gnu_debug"
+ .byte 0xd # DW_AT_decl_file (/usr/include/c++/15/bits/stl_iterator.h)
+ .value 0xba7 # DW_AT_decl_line
+ # DW_AT_decl_column (0xb)
+ .long 0x13a5 # DW_AT_sibling
+ .uleb128 0x64 # (DIE (0x139c) DW_TAG_imported_module)
+ .byte 0x5 # DW_AT_decl_file (/usr/include/c++/15/debug/debug.h)
+ .byte 0x3a # DW_AT_decl_line
+ .byte 0x18 # DW_AT_decl_column
+ .long 0x5b # DW_AT_import
+ .byte 0 # end of children of DIE 0x1390
+ .uleb128 0x4 # (DIE (0x13a5) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x63 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x13aa) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x9d # DW_AT_type
+ .uleb128 0x65 # (DIE (0x13af) DW_TAG_unspecified_type)
+ .long .LASF2391 # DW_AT_name: "decltype(nullptr)"
+ .uleb128 0xe # (DIE (0x13b4) DW_TAG_typedef)
+ .long .LASF2132 # DW_AT_name: "size_t"
+ .byte 0xe # DW_AT_decl_file (/usr/lib/gcc/x86_64-redhat-linux/15/include/stddef.h)
+ .byte 0xe5 # DW_AT_decl_line
+ .byte 0x17 # DW_AT_decl_column
+ .long 0x1275 # DW_AT_type
+ .uleb128 0x66 # (DIE (0x13c0) DW_TAG_structure_type)
+ .long .LASF2392 # DW_AT_name: "typedef __va_list_tag __va_list_tag"
+ .byte 0x18 # DW_AT_byte_size
+ .byte 0xf # DW_AT_decl_file (<built-in>)
+ .byte 0 # DW_AT_decl_line
+ .long 0x13f5 # DW_AT_sibling
+ .uleb128 0x2a # (DIE (0x13cc) DW_TAG_member)
+ .long .LASF2321 # DW_AT_name: "gp_offset"
+ # DW_AT_decl_file (15, <built-in>)
+ # DW_AT_decl_line (0)
+ .long 0x1291 # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .uleb128 0x2a # (DIE (0x13d6) DW_TAG_member)
+ .long .LASF2322 # DW_AT_name: "fp_offset"
+ # DW_AT_decl_file (15, <built-in>)
+ # DW_AT_decl_line (0)
+ .long 0x1291 # DW_AT_type
+ .byte 0x4 # DW_AT_data_member_location
+ .uleb128 0x2a # (DIE (0x13e0) DW_TAG_member)
+ .long .LASF2323 # DW_AT_name: "overflow_arg_area"
+ # DW_AT_decl_file (15, <built-in>)
+ # DW_AT_decl_line (0)
+ .long 0x12ea # DW_AT_type
+ .byte 0x8 # DW_AT_data_member_location
+ .uleb128 0x2a # (DIE (0x13ea) DW_TAG_member)
+ .long .LASF2324 # DW_AT_name: "reg_save_area"
+ # DW_AT_decl_file (15, <built-in>)
+ # DW_AT_decl_line (0)
+ .long 0x12ea # DW_AT_type
+ .byte 0x10 # DW_AT_data_member_location
+ .byte 0 # end of children of DIE 0x13c0
+ .uleb128 0xe # (DIE (0x13f5) DW_TAG_typedef)
+ .long .LASF2325 # DW_AT_name: "wint_t"
+ .byte 0x10 # DW_AT_decl_file (/usr/include/bits/types/wint_t.h)
+ .byte 0x14 # DW_AT_decl_line
+ .byte 0x17 # DW_AT_decl_column
+ .long 0x1291 # DW_AT_type
+ .uleb128 0x67 # (DIE (0x1401) DW_TAG_structure_type)
+ .byte 0x8 # DW_AT_byte_size
+ .byte 0x11 # DW_AT_decl_file (/usr/include/bits/types/__mbstate_t.h)
+ .byte 0xe # DW_AT_decl_line
+ .byte 0x1 # DW_AT_decl_column
+ .long .LASF2393 # DW_AT_linkage_name: "11__mbstate_t"
+ .long 0x1449 # DW_AT_sibling
+ .uleb128 0x68 # (DIE (0x140e) DW_TAG_union_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x11 # DW_AT_decl_file (/usr/include/bits/types/__mbstate_t.h)
+ .byte 0x11 # DW_AT_decl_line
+ .byte 0x3 # DW_AT_decl_column
+ .long 0x142e # DW_AT_sibling
+ .uleb128 0x40 # (DIE (0x1417) DW_TAG_member)
+ .long .LASF2326 # DW_AT_name: "__wch"
+ # DW_AT_decl_file (17, /usr/include/bits/types/__mbstate_t.h)
+ .byte 0x12 # DW_AT_decl_line
+ .byte 0x13 # DW_AT_decl_column
+ .long 0x1291 # DW_AT_type
+ .uleb128 0x40 # (DIE (0x1422) DW_TAG_member)
+ .long .LASF2327 # DW_AT_name: "__wchb"
+ # DW_AT_decl_file (17, /usr/include/bits/types/__mbstate_t.h)
+ .byte 0x13 # DW_AT_decl_line
+ .byte 0xa # DW_AT_decl_column
+ .long 0x1449 # DW_AT_type
+ .byte 0 # end of children of DIE 0x140e
+ .uleb128 0xa # (DIE (0x142e) DW_TAG_member)
+ .long .LASF2328 # DW_AT_name: "__count"
+ .byte 0x11 # DW_AT_decl_file (/usr/include/bits/types/__mbstate_t.h)
+ .byte 0xf # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x143b) DW_TAG_member)
+ .long .LASF2329 # DW_AT_name: "__value"
+ .byte 0x11 # DW_AT_decl_file (/usr/include/bits/types/__mbstate_t.h)
+ .byte 0x14 # DW_AT_decl_line
+ .byte 0x5 # DW_AT_decl_column
+ .long 0x140e # DW_AT_type
+ .byte 0x4 # DW_AT_data_member_location
+ .byte 0 # end of children of DIE 0x1401
+ .uleb128 0x69 # (DIE (0x1449) DW_TAG_array_type)
+ .long 0x12f7 # DW_AT_type
+ .long 0x1459 # DW_AT_sibling
+ .uleb128 0x6a # (DIE (0x1452) DW_TAG_subrange_type)
+ .long 0x1275 # DW_AT_type
+ .byte 0x3 # DW_AT_upper_bound
+ .byte 0 # end of children of DIE 0x1449
+ .uleb128 0xe # (DIE (0x1459) DW_TAG_typedef)
+ .long .LASF2330 # DW_AT_name: "__mbstate_t"
+ .byte 0x11 # DW_AT_decl_file (/usr/include/bits/types/__mbstate_t.h)
+ .byte 0x15 # DW_AT_decl_line
+ .byte 0x3 # DW_AT_decl_column
+ .long 0x1401 # DW_AT_type
+ .uleb128 0xe # (DIE (0x1465) DW_TAG_typedef)
+ .long .LASF2331 # DW_AT_name: "mbstate_t"
+ .byte 0x12 # DW_AT_decl_file (/usr/include/bits/types/mbstate_t.h)
+ .byte 0x6 # DW_AT_decl_line
+ .byte 0x15 # DW_AT_decl_column
+ .long 0x1459 # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1471) DW_TAG_const_type)
+ .long 0x1465 # DW_AT_type
+ .uleb128 0xe # (DIE (0x1476) DW_TAG_typedef)
+ .long .LASF2332 # DW_AT_name: "__FILE"
+ .byte 0x13 # DW_AT_decl_file (/usr/include/bits/types/__FILE.h)
+ .byte 0x5 # DW_AT_decl_line
+ .byte 0x19 # DW_AT_decl_column
+ .long 0x1482 # DW_AT_type
+ .uleb128 0x6b # (DIE (0x1482) DW_TAG_structure_type)
+ .long .LASF2394 # DW_AT_name: "_IO_FILE"
+ # DW_AT_declaration
+ .uleb128 0x5 # (DIE (0x1487) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1637 # DW_AT_name: "btowc"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x157 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_decl_column
+ .long 0x13f5 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x149d # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1497) DW_TAG_formal_parameter)
+ .long 0x12b4 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1487
+ .uleb128 0x5 # (DIE (0x149d) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1638 # DW_AT_name: "fgetwc"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x3a7 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x13f5 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x14b3 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x14ad) DW_TAG_formal_parameter)
+ .long 0x14b3 # DW_AT_type
+ .byte 0 # end of children of DIE 0x149d
+ .uleb128 0x4 # (DIE (0x14b3) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x1476 # DW_AT_type
+ .uleb128 0x5 # (DIE (0x14b8) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1639 # DW_AT_name: "fgetws"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x3c4 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long 0x1308 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x14d8 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x14c8) DW_TAG_formal_parameter)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x14cd) DW_TAG_formal_parameter)
+ .long 0x12b4 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x14d2) DW_TAG_formal_parameter)
+ .long 0x14b3 # DW_AT_type
+ .byte 0 # end of children of DIE 0x14b8
+ .uleb128 0x5 # (DIE (0x14d8) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1640 # DW_AT_name: "fputwc"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x3b5 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x13f5 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x14f3 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x14e8) DW_TAG_formal_parameter)
+ .long 0x12d0 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x14ed) DW_TAG_formal_parameter)
+ .long 0x14b3 # DW_AT_type
+ .byte 0 # end of children of DIE 0x14d8
+ .uleb128 0x5 # (DIE (0x14f3) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1641 # DW_AT_name: "fputws"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x3cb # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x150e # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1503) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1508) DW_TAG_formal_parameter)
+ .long 0x14b3 # DW_AT_type
+ .byte 0 # end of children of DIE 0x14f3
+ .uleb128 0x5 # (DIE (0x150e) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1642 # DW_AT_name: "fwide"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x2d5 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1529 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x151e) DW_TAG_formal_parameter)
+ .long 0x14b3 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1523) DW_TAG_formal_parameter)
+ .long 0x12b4 # DW_AT_type
+ .byte 0 # end of children of DIE 0x150e
+ .uleb128 0x5 # (DIE (0x1529) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1643 # DW_AT_name: "fwprintf"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x2dc # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1545 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1539) DW_TAG_formal_parameter)
+ .long 0x14b3 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x153e) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x26 # (DIE (0x1543) DW_TAG_unspecified_parameters)
+ .byte 0 # end of children of DIE 0x1529
+ .uleb128 0x8 # (DIE (0x1545) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1644 # DW_AT_name: "fwscanf"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x31b # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long .LASF2333 # DW_AT_linkage_name: "__isoc23_fwscanf"
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1566 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x155a) DW_TAG_formal_parameter)
+ .long 0x14b3 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x155f) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x26 # (DIE (0x1564) DW_TAG_unspecified_parameters)
+ .byte 0 # end of children of DIE 0x1545
+ .uleb128 0x5 # (DIE (0x1566) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1645 # DW_AT_name: "getwc"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x3a8 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x13f5 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x157c # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1576) DW_TAG_formal_parameter)
+ .long 0x14b3 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1566
+ .uleb128 0x6c # (DIE (0x157c) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1646 # DW_AT_name: "getwchar"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x3ae # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x13f5 # DW_AT_type
+ # DW_AT_declaration
+ .uleb128 0x5 # (DIE (0x1589) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1647 # DW_AT_name: "mbrlen"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x162 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_decl_column
+ .long 0x13b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x15a9 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1599) DW_TAG_formal_parameter)
+ .long 0x1303 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x159e) DW_TAG_formal_parameter)
+ .long 0x13b4 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x15a3) DW_TAG_formal_parameter)
+ .long 0x15a9 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1589
+ .uleb128 0x4 # (DIE (0x15a9) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x1465 # DW_AT_type
+ .uleb128 0x5 # (DIE (0x15ae) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1648 # DW_AT_name: "mbrtowc"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x141 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x13b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x15d3 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x15be) DW_TAG_formal_parameter)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x15c3) DW_TAG_formal_parameter)
+ .long 0x1303 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x15c8) DW_TAG_formal_parameter)
+ .long 0x13b4 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x15cd) DW_TAG_formal_parameter)
+ .long 0x15a9 # DW_AT_type
+ .byte 0 # end of children of DIE 0x15ae
+ .uleb128 0x5 # (DIE (0x15d3) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1649 # DW_AT_name: "mbsinit"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x13d # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x15e9 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x15e3) DW_TAG_formal_parameter)
+ .long 0x15e9 # DW_AT_type
+ .byte 0 # end of children of DIE 0x15d3
+ .uleb128 0x4 # (DIE (0x15e9) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x1471 # DW_AT_type
+ .uleb128 0x5 # (DIE (0x15ee) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1650 # DW_AT_name: "mbsrtowcs"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x16a # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x13b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1613 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x15fe) DW_TAG_formal_parameter)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1603) DW_TAG_formal_parameter)
+ .long 0x1613 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1608) DW_TAG_formal_parameter)
+ .long 0x13b4 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x160d) DW_TAG_formal_parameter)
+ .long 0x15a9 # DW_AT_type
+ .byte 0 # end of children of DIE 0x15ee
+ .uleb128 0x4 # (DIE (0x1613) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x1303 # DW_AT_type
+ .uleb128 0x5 # (DIE (0x1618) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1651 # DW_AT_name: "putwc"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x3b6 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x13f5 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1633 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1628) DW_TAG_formal_parameter)
+ .long 0x12d0 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x162d) DW_TAG_formal_parameter)
+ .long 0x14b3 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1618
+ .uleb128 0x5 # (DIE (0x1633) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1652 # DW_AT_name: "putwchar"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x3bc # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x13f5 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1649 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1643) DW_TAG_formal_parameter)
+ .long 0x12d0 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1633
+ .uleb128 0x5 # (DIE (0x1649) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1653 # DW_AT_name: "swprintf"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x2e6 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x166a # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1659) DW_TAG_formal_parameter)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x165e) DW_TAG_formal_parameter)
+ .long 0x13b4 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1663) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x26 # (DIE (0x1668) DW_TAG_unspecified_parameters)
+ .byte 0 # end of children of DIE 0x1649
+ .uleb128 0x8 # (DIE (0x166a) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1654 # DW_AT_name: "swscanf"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x322 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long .LASF2334 # DW_AT_linkage_name: "__isoc23_swscanf"
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x168b # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x167f) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1684) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x26 # (DIE (0x1689) DW_TAG_unspecified_parameters)
+ .byte 0 # end of children of DIE 0x166a
+ .uleb128 0x5 # (DIE (0x168b) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1655 # DW_AT_name: "ungetwc"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x3d3 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x13f5 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x16a6 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x169b) DW_TAG_formal_parameter)
+ .long 0x13f5 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x16a0) DW_TAG_formal_parameter)
+ .long 0x14b3 # DW_AT_type
+ .byte 0 # end of children of DIE 0x168b
+ .uleb128 0x5 # (DIE (0x16a6) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1656 # DW_AT_name: "vfwprintf"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x2ee # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x16c6 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x16b6) DW_TAG_formal_parameter)
+ .long 0x14b3 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x16bb) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x16c0) DW_TAG_formal_parameter)
+ .long 0x16c6 # DW_AT_type
+ .byte 0 # end of children of DIE 0x16a6
+ .uleb128 0x4 # (DIE (0x16c6) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x13c0 # DW_AT_type
+ .uleb128 0x8 # (DIE (0x16cb) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1657 # DW_AT_name: "vfwscanf"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x36b # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long .LASF2335 # DW_AT_linkage_name: "__isoc23_vfwscanf"
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x16f0 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x16e0) DW_TAG_formal_parameter)
+ .long 0x14b3 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x16e5) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x16ea) DW_TAG_formal_parameter)
+ .long 0x16c6 # DW_AT_type
+ .byte 0 # end of children of DIE 0x16cb
+ .uleb128 0x5 # (DIE (0x16f0) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1658 # DW_AT_name: "vswprintf"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x2fb # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1715 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1700) DW_TAG_formal_parameter)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1705) DW_TAG_formal_parameter)
+ .long 0x13b4 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x170a) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x170f) DW_TAG_formal_parameter)
+ .long 0x16c6 # DW_AT_type
+ .byte 0 # end of children of DIE 0x16f0
+ .uleb128 0x8 # (DIE (0x1715) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1659 # DW_AT_name: "vswscanf"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x372 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long .LASF2336 # DW_AT_linkage_name: "__isoc23_vswscanf"
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x173a # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x172a) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x172f) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1734) DW_TAG_formal_parameter)
+ .long 0x16c6 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1715
+ .uleb128 0x5 # (DIE (0x173a) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1660 # DW_AT_name: "vwprintf"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x2f6 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1755 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x174a) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x174f) DW_TAG_formal_parameter)
+ .long 0x16c6 # DW_AT_type
+ .byte 0 # end of children of DIE 0x173a
+ .uleb128 0x8 # (DIE (0x1755) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1661 # DW_AT_name: "vwscanf"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x36f # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long .LASF2337 # DW_AT_linkage_name: "__isoc23_vwscanf"
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1775 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x176a) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x176f) DW_TAG_formal_parameter)
+ .long 0x16c6 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1755
+ .uleb128 0x5 # (DIE (0x1775) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1662 # DW_AT_name: "wcrtomb"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x146 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x13b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1795 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1785) DW_TAG_formal_parameter)
+ .long 0x12f2 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x178a) DW_TAG_formal_parameter)
+ .long 0x12d0 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x178f) DW_TAG_formal_parameter)
+ .long 0x15a9 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1775
+ .uleb128 0x13 # (DIE (0x1795) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1663 # DW_AT_name: "wcscat"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .byte 0x79 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long 0x1308 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x17af # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x17a4) DW_TAG_formal_parameter)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x17a9) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .byte 0 # end of children of DIE 0x1795
+ .uleb128 0x13 # (DIE (0x17af) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1665 # DW_AT_name: "wcscmp"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .byte 0x82 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x17c9 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x17be) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x17c3) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .byte 0 # end of children of DIE 0x17af
+ .uleb128 0x13 # (DIE (0x17c9) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1666 # DW_AT_name: "wcscoll"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .byte 0x9b # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x17e3 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x17d8) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x17dd) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .byte 0 # end of children of DIE 0x17c9
+ .uleb128 0x13 # (DIE (0x17e3) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1667 # DW_AT_name: "wcscpy"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .byte 0x62 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long 0x1308 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x17fd # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x17f2) DW_TAG_formal_parameter)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x17f7) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .byte 0 # end of children of DIE 0x17e3
+ .uleb128 0x13 # (DIE (0x17fd) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1668 # DW_AT_name: "wcscspn"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .byte 0xd4 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x13b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1817 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x180c) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1811) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .byte 0 # end of children of DIE 0x17fd
+ .uleb128 0x5 # (DIE (0x1817) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1669 # DW_AT_name: "wcsftime"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x413 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x13b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x183c # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1827) DW_TAG_formal_parameter)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x182c) DW_TAG_formal_parameter)
+ .long 0x13b4 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1831) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1836) DW_TAG_formal_parameter)
+ .long 0x183c # DW_AT_type
+ .byte 0 # end of children of DIE 0x1817
+ .uleb128 0x4 # (DIE (0x183c) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x18dd # DW_AT_type
+ .uleb128 0x6d # (DIE (0x1841) DW_TAG_structure_type)
+ .ascii "tm\0" # DW_AT_name
+ .byte 0x38 # DW_AT_byte_size
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0x7 # DW_AT_decl_line
+ .byte 0x8 # DW_AT_decl_column
+ .long 0x18dd # DW_AT_sibling
+ .uleb128 0xa # (DIE (0x184d) DW_TAG_member)
+ .long .LASF2338 # DW_AT_name: "tm_sec"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0x9 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ .byte 0 # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x185a) DW_TAG_member)
+ .long .LASF2339 # DW_AT_name: "tm_min"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0xa # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ .byte 0x4 # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x1867) DW_TAG_member)
+ .long .LASF2340 # DW_AT_name: "tm_hour"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0xb # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ .byte 0x8 # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x1874) DW_TAG_member)
+ .long .LASF2341 # DW_AT_name: "tm_mday"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0xc # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ .byte 0xc # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x1881) DW_TAG_member)
+ .long .LASF2342 # DW_AT_name: "tm_mon"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0xd # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ .byte 0x10 # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x188e) DW_TAG_member)
+ .long .LASF2343 # DW_AT_name: "tm_year"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0xe # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ .byte 0x14 # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x189b) DW_TAG_member)
+ .long .LASF2344 # DW_AT_name: "tm_wday"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0xf # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ .byte 0x18 # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x18a8) DW_TAG_member)
+ .long .LASF2345 # DW_AT_name: "tm_yday"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0x10 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ .byte 0x1c # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x18b5) DW_TAG_member)
+ .long .LASF2346 # DW_AT_name: "tm_isdst"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0x11 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ .byte 0x20 # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x18c2) DW_TAG_member)
+ .long .LASF2347 # DW_AT_name: "tm_gmtoff"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0x14 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x12bb # DW_AT_type
+ .byte 0x28 # DW_AT_data_member_location
+ .uleb128 0xa # (DIE (0x18cf) DW_TAG_member)
+ .long .LASF2348 # DW_AT_name: "tm_zone"
+ .byte 0x15 # DW_AT_decl_file (/usr/include/bits/types/struct_tm.h)
+ .byte 0x15 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x1303 # DW_AT_type
+ .byte 0x30 # DW_AT_data_member_location
+ .byte 0 # end of children of DIE 0x1841
+ .uleb128 0x7 # (DIE (0x18dd) DW_TAG_const_type)
+ .long 0x1841 # DW_AT_type
+ .uleb128 0x13 # (DIE (0x18e2) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1670 # DW_AT_name: "wcslen"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .byte 0xf7 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x13b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x18f7 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x18f1) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .byte 0 # end of children of DIE 0x18e2
+ .uleb128 0x13 # (DIE (0x18f7) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1671 # DW_AT_name: "wcsncat"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .byte 0x7d # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long 0x1308 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1916 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1906) DW_TAG_formal_parameter)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x190b) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1910) DW_TAG_formal_parameter)
+ .long 0x13b4 # DW_AT_type
+ .byte 0 # end of children of DIE 0x18f7
+ .uleb128 0x13 # (DIE (0x1916) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1672 # DW_AT_name: "wcsncmp"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .byte 0x85 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1935 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1925) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x192a) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x192f) DW_TAG_formal_parameter)
+ .long 0x13b4 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1916
+ .uleb128 0x13 # (DIE (0x1935) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1673 # DW_AT_name: "wcsncpy"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .byte 0x67 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long 0x1308 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1954 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1944) DW_TAG_formal_parameter)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1949) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x194e) DW_TAG_formal_parameter)
+ .long 0x13b4 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1935
+ .uleb128 0x5 # (DIE (0x1954) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1676 # DW_AT_name: "wcsrtombs"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x170 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x13b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1979 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1964) DW_TAG_formal_parameter)
+ .long 0x12f2 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1969) DW_TAG_formal_parameter)
+ .long 0x1979 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x196e) DW_TAG_formal_parameter)
+ .long 0x13b4 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1973) DW_TAG_formal_parameter)
+ .long 0x15a9 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1954
+ .uleb128 0x4 # (DIE (0x1979) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x13 # (DIE (0x197e) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1677 # DW_AT_name: "wcsspn"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .byte 0xd8 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x13b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1998 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x198d) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1992) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .byte 0 # end of children of DIE 0x197e
+ .uleb128 0x5 # (DIE (0x1998) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1679 # DW_AT_name: "wcstod"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x192 # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x1382 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x19b3 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x19a8) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x19ad) DW_TAG_formal_parameter)
+ .long 0x19b3 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1998
+ .uleb128 0x4 # (DIE (0x19b3) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x5 # (DIE (0x19b8) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1680 # DW_AT_name: "wcstof"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x197 # DW_AT_decl_line
+ .byte 0xe # DW_AT_decl_column
+ .long 0x1389 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x19d3 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x19c8) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x19cd) DW_TAG_formal_parameter)
+ .long 0x19b3 # DW_AT_type
+ .byte 0 # end of children of DIE 0x19b8
+ .uleb128 0x13 # (DIE (0x19d3) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1681 # DW_AT_name: "wcstok"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .byte 0xf2 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long 0x1308 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x19f2 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x19e2) DW_TAG_formal_parameter)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x19e7) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x19ec) DW_TAG_formal_parameter)
+ .long 0x19b3 # DW_AT_type
+ .byte 0 # end of children of DIE 0x19d3
+ .uleb128 0x8 # (DIE (0x19f2) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1682 # DW_AT_name: "wcstol"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x1f4 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long .LASF2349 # DW_AT_linkage_name: "__isoc23_wcstol"
+ .long 0x12bb # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1a17 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1a07) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1a0c) DW_TAG_formal_parameter)
+ .long 0x19b3 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1a11) DW_TAG_formal_parameter)
+ .long 0x12b4 # DW_AT_type
+ .byte 0 # end of children of DIE 0x19f2
+ .uleb128 0x8 # (DIE (0x1a17) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1683 # DW_AT_name: "wcstoul"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x1f7 # DW_AT_decl_line
+ .byte 0x1a # DW_AT_decl_column
+ .long .LASF2350 # DW_AT_linkage_name: "__isoc23_wcstoul"
+ .long 0x1275 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1a3c # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1a2c) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1a31) DW_TAG_formal_parameter)
+ .long 0x19b3 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1a36) DW_TAG_formal_parameter)
+ .long 0x12b4 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1a17
+ .uleb128 0x13 # (DIE (0x1a3c) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1684 # DW_AT_name: "wcsxfrm"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .byte 0x9f # DW_AT_decl_line
+ .byte 0xf # DW_AT_decl_column
+ .long 0x13b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1a5b # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1a4b) DW_TAG_formal_parameter)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1a50) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1a55) DW_TAG_formal_parameter)
+ .long 0x13b4 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1a3c
+ .uleb128 0x5 # (DIE (0x1a5b) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1685 # DW_AT_name: "wctob"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x15d # DW_AT_decl_line
+ .byte 0x1 # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1a71 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1a6b) DW_TAG_formal_parameter)
+ .long 0x13f5 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1a5b
+ .uleb128 0x5 # (DIE (0x1a71) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1687 # DW_AT_name: "wmemcmp"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x11b # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1a91 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1a81) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1a86) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1a8b) DW_TAG_formal_parameter)
+ .long 0x13b4 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1a71
+ .uleb128 0x5 # (DIE (0x1a91) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1688 # DW_AT_name: "wmemcpy"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x11f # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long 0x1308 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1ab1 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1aa1) DW_TAG_formal_parameter)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1aa6) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1aab) DW_TAG_formal_parameter)
+ .long 0x13b4 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1a91
+ .uleb128 0x5 # (DIE (0x1ab1) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1689 # DW_AT_name: "wmemmove"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x124 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long 0x1308 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1ad1 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1ac1) DW_TAG_formal_parameter)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1ac6) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1acb) DW_TAG_formal_parameter)
+ .long 0x13b4 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1ab1
+ .uleb128 0x5 # (DIE (0x1ad1) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1690 # DW_AT_name: "wmemset"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x128 # DW_AT_decl_line
+ .byte 0x11 # DW_AT_decl_column
+ .long 0x1308 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1af1 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1ae1) DW_TAG_formal_parameter)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1ae6) DW_TAG_formal_parameter)
+ .long 0x12d0 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1aeb) DW_TAG_formal_parameter)
+ .long 0x13b4 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1ad1
+ .uleb128 0x5 # (DIE (0x1af1) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1691 # DW_AT_name: "wprintf"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x2e3 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1b08 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1b01) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x26 # (DIE (0x1b06) DW_TAG_unspecified_parameters)
+ .byte 0 # end of children of DIE 0x1af1
+ .uleb128 0x8 # (DIE (0x1b08) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1692 # DW_AT_name: "wscanf"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x31f # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long .LASF2351 # DW_AT_linkage_name: "__isoc23_wscanf"
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1b24 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1b1d) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x26 # (DIE (0x1b22) DW_TAG_unspecified_parameters)
+ .byte 0 # end of children of DIE 0x1b08
+ .uleb128 0xf # (DIE (0x1b24) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1664 # DW_AT_name: "wcschr"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0xba # DW_AT_decl_line
+ .byte 0x1d # DW_AT_decl_column
+ .long .LASF1664 # DW_AT_linkage_name: "wcschr"
+ .long 0x130d # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1b43 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1b38) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1b3d) DW_TAG_formal_parameter)
+ .long 0x12d0 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1b24
+ .uleb128 0xf # (DIE (0x1b43) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1664 # DW_AT_name: "wcschr"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0xb8 # DW_AT_decl_line
+ .byte 0x17 # DW_AT_decl_column
+ .long .LASF1664 # DW_AT_linkage_name: "wcschr"
+ .long 0x1308 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1b62 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1b57) DW_TAG_formal_parameter)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1b5c) DW_TAG_formal_parameter)
+ .long 0x12d0 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1b43
+ .uleb128 0xf # (DIE (0x1b62) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1674 # DW_AT_name: "wcspbrk"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0xde # DW_AT_decl_line
+ .byte 0x1d # DW_AT_decl_column
+ .long .LASF1674 # DW_AT_linkage_name: "wcspbrk"
+ .long 0x130d # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1b81 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1b76) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1b7b) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .byte 0 # end of children of DIE 0x1b62
+ .uleb128 0xf # (DIE (0x1b81) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1674 # DW_AT_name: "wcspbrk"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0xdc # DW_AT_decl_line
+ .byte 0x17 # DW_AT_decl_column
+ .long .LASF1674 # DW_AT_linkage_name: "wcspbrk"
+ .long 0x1308 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1ba0 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1b95) DW_TAG_formal_parameter)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1b9a) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .byte 0 # end of children of DIE 0x1b81
+ .uleb128 0xf # (DIE (0x1ba0) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1675 # DW_AT_name: "wcsrchr"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0xc4 # DW_AT_decl_line
+ .byte 0x1d # DW_AT_decl_column
+ .long .LASF1675 # DW_AT_linkage_name: "wcsrchr"
+ .long 0x130d # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1bbf # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1bb4) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1bb9) DW_TAG_formal_parameter)
+ .long 0x12d0 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1ba0
+ .uleb128 0xf # (DIE (0x1bbf) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1675 # DW_AT_name: "wcsrchr"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0xc2 # DW_AT_decl_line
+ .byte 0x17 # DW_AT_decl_column
+ .long .LASF1675 # DW_AT_linkage_name: "wcsrchr"
+ .long 0x1308 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1bde # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1bd3) DW_TAG_formal_parameter)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1bd8) DW_TAG_formal_parameter)
+ .long 0x12d0 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1bbf
+ .uleb128 0xf # (DIE (0x1bde) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1678 # DW_AT_name: "wcsstr"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0xe9 # DW_AT_decl_line
+ .byte 0x1d # DW_AT_decl_column
+ .long .LASF1678 # DW_AT_linkage_name: "wcsstr"
+ .long 0x130d # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1bfd # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1bf2) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1bf7) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .byte 0 # end of children of DIE 0x1bde
+ .uleb128 0xf # (DIE (0x1bfd) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1678 # DW_AT_name: "wcsstr"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .byte 0xe7 # DW_AT_decl_line
+ .byte 0x17 # DW_AT_decl_column
+ .long .LASF1678 # DW_AT_linkage_name: "wcsstr"
+ .long 0x1308 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1c1c # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1c11) DW_TAG_formal_parameter)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1c16) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .byte 0 # end of children of DIE 0x1bfd
+ .uleb128 0x8 # (DIE (0x1c1c) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1686 # DW_AT_name: "wmemchr"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x112 # DW_AT_decl_line
+ .byte 0x1d # DW_AT_decl_column
+ .long .LASF1686 # DW_AT_linkage_name: "wmemchr"
+ .long 0x130d # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1c41 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1c31) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1c36) DW_TAG_formal_parameter)
+ .long 0x12d0 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1c3b) DW_TAG_formal_parameter)
+ .long 0x13b4 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1c1c
+ .uleb128 0x8 # (DIE (0x1c41) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1686 # DW_AT_name: "wmemchr"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x110 # DW_AT_decl_line
+ .byte 0x17 # DW_AT_decl_column
+ .long .LASF1686 # DW_AT_linkage_name: "wmemchr"
+ .long 0x1308 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1c66 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1c56) DW_TAG_formal_parameter)
+ .long 0x1308 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1c5b) DW_TAG_formal_parameter)
+ .long 0x12d0 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1c60) DW_TAG_formal_parameter)
+ .long 0x13b4 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1c41
+ .uleb128 0x5 # (DIE (0x1c66) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1693 # DW_AT_name: "wcstold"
+ # DW_AT_decl_file (20, /usr/include/wchar.h)
+ .value 0x199 # DW_AT_decl_line
+ .byte 0x14 # DW_AT_decl_column
+ .long 0x137b # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1c81 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1c76) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1c7b) DW_TAG_formal_parameter)
+ .long 0x19b3 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1c66
+ .uleb128 0x8 # (DIE (0x1c81) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1694 # DW_AT_name: "wcstoll"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x1fc # DW_AT_decl_line
+ .byte 0x16 # DW_AT_decl_column
+ .long .LASF2352 # DW_AT_linkage_name: "__isoc23_wcstoll"
+ .long 0x12c2 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1ca6 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1c96) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1c9b) DW_TAG_formal_parameter)
+ .long 0x19b3 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1ca0) DW_TAG_formal_parameter)
+ .long 0x12b4 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1c81
+ .uleb128 0x8 # (DIE (0x1ca6) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF1695 # DW_AT_name: "wcstoull"
+ .byte 0x14 # DW_AT_decl_file (/usr/include/wchar.h)
+ .value 0x201 # DW_AT_decl_line
+ .byte 0x1f # DW_AT_decl_column
+ .long .LASF2353 # DW_AT_linkage_name: "__isoc23_wcstoull"
+ .long 0x1298 # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1ccb # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1cbb) DW_TAG_formal_parameter)
+ .long 0x130d # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1cc0) DW_TAG_formal_parameter)
+ .long 0x19b3 # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1cc5) DW_TAG_formal_parameter)
+ .long 0x12b4 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1ca6
+ .uleb128 0x4 # (DIE (0x1ccb) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x33a # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1cd0) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x4f4 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1cd5) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x4f4 # DW_AT_type
+ .uleb128 0x1a # (DIE (0x1cda) DW_TAG_rvalue_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x33a # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1cdf) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x33a # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1ce4) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x53c # DW_AT_type
+ .uleb128 0x6e # (DIE (0x1ce9) DW_TAG_variable)
+ .long 0x1368 # DW_AT_specification
+ .uleb128 0x2d # (DIE (0x1cee) DW_TAG_namespace)
+ .long .LASF2354 # DW_AT_name: "__pstl"
+ .byte 0x16 # DW_AT_decl_file (/usr/include/c++/15/pstl/execution_defs.h)
+ .byte 0xf # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .long 0x1d0b # DW_AT_sibling
+ .uleb128 0x6f # (DIE (0x1cfa) DW_TAG_namespace)
+ .long .LASF2395 # DW_AT_name: "execution"
+ .byte 0x16 # DW_AT_decl_file (/usr/include/c++/15/pstl/execution_defs.h)
+ .byte 0x11 # DW_AT_decl_line
+ .byte 0xb # DW_AT_decl_column
+ .uleb128 0x70 # (DIE (0x1d02) DW_TAG_namespace)
+ .ascii "v1\0" # DW_AT_name
+ .byte 0x16 # DW_AT_decl_file (/usr/include/c++/15/pstl/execution_defs.h)
+ .byte 0x13 # DW_AT_decl_line
+ .byte 0x12 # DW_AT_decl_column
+ # DW_AT_export_symbols
+ .byte 0 # end of children of DIE 0x1cfa
+ .byte 0 # end of children of DIE 0x1cee
+ .uleb128 0x39 # (DIE (0x1d0b) DW_TAG_structure_type)
+ .long .LASF2356 # DW_AT_name: "Base"
+ # DW_AT_byte_size (0x1)
+ .byte 0x2 # DW_AT_decl_file (dwarf.cc)
+ .byte 0x2 # DW_AT_decl_line
+ .byte 0x8 # DW_AT_decl_column
+ .uleb128 0x4 # (DIE (0x1d13) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x571 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1d18) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x5c1 # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1d1d) DW_TAG_const_type)
+ .long 0x1d18 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1d22) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x1d0b # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1d27) DW_TAG_const_type)
+ .long 0x1d22 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1d2c) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x780 # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1d31) DW_TAG_const_type)
+ .long 0x1d2c # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1d36) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x5c1 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1d3b) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x87d # DW_AT_type
+ .uleb128 0x1a # (DIE (0x1d40) DW_TAG_rvalue_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x780 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1d45) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x571 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1d4a) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x780 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1d4f) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x882 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1d54) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x99a # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1d59) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x882 # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1d5e) DW_TAG_const_type)
+ .long 0x1d59 # DW_AT_type
+ .uleb128 0x1a # (DIE (0x1d63) DW_TAG_rvalue_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x882 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1d68) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x99f # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1d6d) DW_TAG_const_type)
+ .long 0x1d68 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1d72) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x1d27 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1d77) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0xa9c # DW_AT_type
+ .uleb128 0x1a # (DIE (0x1d7c) DW_TAG_rvalue_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x99f # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1d81) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x1d22 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1d86) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x99f # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1d8b) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0xaa1 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1d90) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0xc10 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1d95) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0xaef # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1d9a) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0xafc # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1d9f) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0xaa1 # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1da4) DW_TAG_const_type)
+ .long 0x1d9f # DW_AT_type
+ .uleb128 0x1a # (DIE (0x1da9) DW_TAG_rvalue_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0xaa1 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1dae) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0xc3b # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1db3) DW_TAG_const_type)
+ .long 0x1dae # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1db8) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0xd2c # DW_AT_type
+ .uleb128 0x1a # (DIE (0x1dbd) DW_TAG_rvalue_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0xc3b # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1dc2) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0xc3b # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1dc7) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x5c6 # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1dcc) DW_TAG_const_type)
+ .long 0x1dc7 # DW_AT_type
+ .uleb128 0x1a # (DIE (0x1dd1) DW_TAG_rvalue_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x5c6 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1dd6) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x5c6 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1ddb) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x638 # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1de0) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x77b # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1de5) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0xd49 # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1dea) DW_TAG_const_type)
+ .long 0x1de5 # DW_AT_type
+ .uleb128 0x1a # (DIE (0x1def) DW_TAG_rvalue_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0xd49 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1df4) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0xd49 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1df9) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x1d0b # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1dfe) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0xdfe # DW_AT_type
+ .uleb128 0x7 # (DIE (0x1e03) DW_TAG_const_type)
+ .long 0x1dfe # DW_AT_type
+ .uleb128 0x1a # (DIE (0x1e08) DW_TAG_rvalue_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0xdfe # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1e0d) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0xdfe # DW_AT_type
+ .uleb128 0x4 # (DIE (0x1e12) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x1053 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1e17) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0xf04 # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1e1c) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0xf0f # DW_AT_type
+ .uleb128 0x6 # (DIE (0x1e21) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x1053 # DW_AT_type
+ .uleb128 0x71 # (DIE (0x1e26) DW_TAG_variable)
+ .long .LASF2375 # DW_AT_name: "__dso_handle"
+ .long 0x12ea # DW_AT_type
+ # DW_AT_external
+ # DW_AT_artificial
+ # DW_AT_declaration
+ .uleb128 0xf # (DIE (0x1e2f) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2357 # DW_AT_name: "operator new"
+ .byte 0x17 # DW_AT_decl_file (/usr/include/c++/15/new)
+ .byte 0x89 # DW_AT_decl_line
+ .byte 0x1a # DW_AT_decl_column
+ .long .LASF2358 # DW_AT_linkage_name: "_Znwm"
+ .long 0x12ea # DW_AT_type
+ # DW_AT_declaration
+ .long 0x1e49 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1e43) DW_TAG_formal_parameter)
+ .long 0x40 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1e2f
+ .uleb128 0x72 # (DIE (0x1e49) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2359 # DW_AT_name: "operator delete"
+ .byte 0x17 # DW_AT_decl_file (/usr/include/c++/15/new)
+ .byte 0x94 # DW_AT_decl_line
+ .byte 0x6 # DW_AT_decl_column
+ .long .LASF2361 # DW_AT_linkage_name: "_ZdlPvm"
+ # DW_AT_declaration
+ .long 0x1e64 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1e59) DW_TAG_formal_parameter)
+ .long 0x12ea # DW_AT_type
+ .uleb128 0x1 # (DIE (0x1e5e) DW_TAG_formal_parameter)
+ .long 0x40 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1e49
+ .uleb128 0x41 # (DIE (0x1e64) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2362 # DW_AT_name: "__cxa_guard_abort"
+ # DW_AT_artificial
+ # DW_AT_declaration
+ .long 0x1e73 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1e6d) DW_TAG_formal_parameter)
+ .long 0x1e73 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1e64
+ .uleb128 0x4 # (DIE (0x1e73) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x12c2 # DW_AT_type
+ .uleb128 0x41 # (DIE (0x1e78) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2363 # DW_AT_name: "__cxa_guard_release"
+ # DW_AT_artificial
+ # DW_AT_declaration
+ .long 0x1e87 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1e81) DW_TAG_formal_parameter)
+ .long 0x1e73 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1e78
+ .uleb128 0x73 # (DIE (0x1e87) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2396 # DW_AT_name: "__cxa_guard_acquire"
+ .long 0x12b4 # DW_AT_type
+ # DW_AT_artificial
+ # DW_AT_declaration
+ .long 0x1e9a # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x1e94) DW_TAG_formal_parameter)
+ .long 0x1e73 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1e87
+ .uleb128 0x1b # (DIE (0x1e9a) DW_TAG_subprogram)
+ .long 0x828 # DW_AT_specification
+ # DW_AT_inline (0x3)
+ .long 0x1eb0 # DW_AT_sibling
+ .uleb128 0x35 # (DIE (0x1ea3) DW_TAG_formal_parameter)
+ .ascii "__b\0" # DW_AT_name
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0x89 # DW_AT_decl_line
+ .byte 0x1b # DW_AT_decl_column
+ .long 0x1d4a # DW_AT_type
+ .byte 0 # end of children of DIE 0x1e9a
+ .uleb128 0x14 # (DIE (0x1eb0) DW_TAG_subprogram)
+ .long 0x78d # DW_AT_specification
+ .long 0x1ebe # DW_AT_object_pointer
+ .byte 0x2 # DW_AT_inline
+ .long 0x1ec8 # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x1ebe) DW_TAG_formal_parameter)
+ .long .LASF2364 # DW_AT_name: "this"
+ .long 0x1d31 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x1eb0
+ .uleb128 0x1e # (DIE (0x1ec8) DW_TAG_subprogram)
+ .long 0x1eb0 # DW_AT_abstract_origin
+ .long .LASF2365 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC2Ev"
+ .long 0x1ed9 # DW_AT_object_pointer
+ .long 0x1edf # DW_AT_sibling
+ .uleb128 0x15 # (DIE (0x1ed9) DW_TAG_formal_parameter)
+ .long 0x1ebe # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x1ec8
+ .uleb128 0x1b # (DIE (0x1edf) DW_TAG_subprogram)
+ .long 0x895 # DW_AT_specification
+ # DW_AT_inline (0x3)
+ .long 0x1ef6 # DW_AT_sibling
+ .uleb128 0x21 # (DIE (0x1ee8) DW_TAG_formal_parameter)
+ .ascii "__t\0" # DW_AT_name
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x22a # DW_AT_decl_line
+ .byte 0x1c # DW_AT_decl_column
+ .long 0x1d4f # DW_AT_type
+ .byte 0 # end of children of DIE 0x1edf
+ .uleb128 0x1b # (DIE (0x1ef6) DW_TAG_subprogram)
+ .long 0xa47 # DW_AT_specification
+ # DW_AT_inline (0x3)
+ .long 0x1f0c # DW_AT_sibling
+ .uleb128 0x35 # (DIE (0x1eff) DW_TAG_formal_parameter)
+ .ascii "__b\0" # DW_AT_name
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .byte 0xf6 # DW_AT_decl_line
+ .byte 0x1b # DW_AT_decl_column
+ .long 0x1d86 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1ef6
+ .uleb128 0x14 # (DIE (0x1f0c) DW_TAG_subprogram)
+ .long 0x9ac # DW_AT_specification
+ .long 0x1f1a # DW_AT_object_pointer
+ .byte 0x2 # DW_AT_inline
+ .long 0x1f24 # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x1f1a) DW_TAG_formal_parameter)
+ .long .LASF2364 # DW_AT_name: "this"
+ .long 0x1d6d # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x1f0c
+ .uleb128 0x1e # (DIE (0x1f24) DW_TAG_subprogram)
+ .long 0x1f0c # DW_AT_abstract_origin
+ .long .LASF2366 # DW_AT_linkage_name: "_ZNSt10_Head_baseILm0EP4BaseLb0EEC2Ev"
+ .long 0x1f35 # DW_AT_object_pointer
+ .long 0x1f3b # DW_AT_sibling
+ .uleb128 0x15 # (DIE (0x1f35) DW_TAG_formal_parameter)
+ .long 0x1f1a # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x1f24
+ .uleb128 0x14 # (DIE (0x1f3b) DW_TAG_subprogram)
+ .long 0x8cb # DW_AT_specification
+ .long 0x1f49 # DW_AT_object_pointer
+ .byte 0x2 # DW_AT_inline
+ .long 0x1f53 # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x1f49) DW_TAG_formal_parameter)
+ .long .LASF2364 # DW_AT_name: "this"
+ .long 0x1d5e # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x1f3b
+ .uleb128 0x1e # (DIE (0x1f53) DW_TAG_subprogram)
+ .long 0x1f3b # DW_AT_abstract_origin
+ .long .LASF2367 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEC2Ev"
+ .long 0x1f64 # DW_AT_object_pointer
+ .long 0x1f6a # DW_AT_sibling
+ .uleb128 0x15 # (DIE (0x1f64) DW_TAG_formal_parameter)
+ .long 0x1f49 # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x1f53
+ .uleb128 0x1b # (DIE (0x1f6a) DW_TAG_subprogram)
+ .long 0x115a # DW_AT_specification
+ # DW_AT_inline (0x3)
+ .long 0x1f99 # DW_AT_sibling
+ .uleb128 0x12 # (DIE (0x1f73) DW_TAG_template_value_param)
+ .ascii "__i\0" # DW_AT_name
+ .long 0x1275 # DW_AT_type
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0x23 # (DIE (0x1f7d) DW_TAG_template_type_param)
+ .long .LASF2197 # DW_AT_name: "_Head"
+ .long 0x571 # DW_AT_type
+ .uleb128 0x29 # (DIE (0x1f86) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2291 # DW_AT_name: "_Tail"
+ .uleb128 0x21 # (DIE (0x1f8b) DW_TAG_formal_parameter)
+ .ascii "__t\0" # DW_AT_name
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x97c # DW_AT_decl_line
+ .byte 0x35 # DW_AT_decl_column
+ .long 0x1d4f # DW_AT_type
+ .byte 0 # end of children of DIE 0x1f6a
+ .uleb128 0x1b # (DIE (0x1f99) DW_TAG_subprogram)
+ .long 0xab9 # DW_AT_specification
+ # DW_AT_inline (0x3)
+ .long 0x1fb0 # DW_AT_sibling
+ .uleb128 0x21 # (DIE (0x1fa2) DW_TAG_formal_parameter)
+ .ascii "__t\0" # DW_AT_name
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x123 # DW_AT_decl_line
+ .byte 0x1c # DW_AT_decl_column
+ .long 0x1d8b # DW_AT_type
+ .byte 0 # end of children of DIE 0x1f99
+ .uleb128 0x14 # (DIE (0x1fb0) DW_TAG_subprogram)
+ .long 0xb37 # DW_AT_specification
+ .long 0x1fbe # DW_AT_object_pointer
+ .byte 0x2 # DW_AT_inline
+ .long 0x1fc8 # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x1fbe) DW_TAG_formal_parameter)
+ .long .LASF2364 # DW_AT_name: "this"
+ .long 0x1da4 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x1fb0
+ .uleb128 0x1e # (DIE (0x1fc8) DW_TAG_subprogram)
+ .long 0x1fb0 # DW_AT_abstract_origin
+ .long .LASF2368 # DW_AT_linkage_name: "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEC2Ev"
+ .long 0x1fd9 # DW_AT_object_pointer
+ .long 0x1fdf # DW_AT_sibling
+ .uleb128 0x15 # (DIE (0x1fd9) DW_TAG_formal_parameter)
+ .long 0x1fbe # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x1fc8
+ .uleb128 0x6 # (DIE (0x1fdf) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x118d # DW_AT_type
+ .uleb128 0x1b # (DIE (0x1fe4) DW_TAG_subprogram)
+ .long 0x1199 # DW_AT_specification
+ # DW_AT_inline (0x3)
+ .long 0x2019 # DW_AT_sibling
+ .uleb128 0x12 # (DIE (0x1fed) DW_TAG_template_value_param)
+ .ascii "__i\0" # DW_AT_name
+ .long 0x1275 # DW_AT_type
+ .byte 0x1 # DW_AT_const_value
+ .uleb128 0x25 # (DIE (0x1ff7) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2231 # DW_AT_name: "_Elements"
+ .long 0x200b # DW_AT_sibling
+ .uleb128 0xb # (DIE (0x2000) DW_TAG_template_type_param)
+ .long 0x1d22 # DW_AT_type
+ .uleb128 0xb # (DIE (0x2005) DW_TAG_template_type_param)
+ .long 0x571 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1ff7
+ .uleb128 0x21 # (DIE (0x200b) DW_TAG_formal_parameter)
+ .ascii "__t\0" # DW_AT_name
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x98c # DW_AT_decl_line
+ .byte 0x1e # DW_AT_decl_column
+ .long 0x1dc2 # DW_AT_type
+ .byte 0 # end of children of DIE 0x1fe4
+ .uleb128 0x1b # (DIE (0x2019) DW_TAG_subprogram)
+ .long 0x11d2 # DW_AT_specification
+ # DW_AT_inline (0x3)
+ .long 0x2052 # DW_AT_sibling
+ .uleb128 0x12 # (DIE (0x2022) DW_TAG_template_value_param)
+ .ascii "__i\0" # DW_AT_name
+ .long 0x1275 # DW_AT_type
+ .byte 0 # DW_AT_const_value
+ .uleb128 0x23 # (DIE (0x202c) DW_TAG_template_type_param)
+ .long .LASF2197 # DW_AT_name: "_Head"
+ .long 0x1d22 # DW_AT_type
+ .uleb128 0x25 # (DIE (0x2035) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2291 # DW_AT_name: "_Tail"
+ .long 0x2044 # DW_AT_sibling
+ .uleb128 0xb # (DIE (0x203e) DW_TAG_template_type_param)
+ .long 0x571 # DW_AT_type
+ .byte 0 # end of children of DIE 0x2035
+ .uleb128 0x21 # (DIE (0x2044) DW_TAG_formal_parameter)
+ .ascii "__t\0" # DW_AT_name
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x97c # DW_AT_decl_line
+ .byte 0x35 # DW_AT_decl_column
+ .long 0x1d8b # DW_AT_type
+ .byte 0 # end of children of DIE 0x2019
+ .uleb128 0x14 # (DIE (0x2052) DW_TAG_subprogram)
+ .long 0xd05 # DW_AT_specification
+ .long 0x2069 # DW_AT_object_pointer
+ .byte 0x2 # DW_AT_inline
+ .long 0x2073 # DW_AT_sibling
+ .uleb128 0x32 # (DIE (0x2060) DW_TAG_template_value_param)
+ .long .LASF2369 # DW_AT_name: "_Dummy"
+ .long 0x127c # DW_AT_type
+ # DW_AT_default_value
+ # DW_AT_const_value (0x1)
+ .uleb128 0x10 # (DIE (0x2069) DW_TAG_formal_parameter)
+ .long .LASF2364 # DW_AT_name: "this"
+ .long 0x1db3 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x2052
+ .uleb128 0x1e # (DIE (0x2073) DW_TAG_subprogram)
+ .long 0x2052 # DW_AT_abstract_origin
+ .long .LASF2370 # DW_AT_linkage_name: "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEC2ILb1ELb1EEEv"
+ .long 0x208d # DW_AT_object_pointer
+ .long 0x2093 # DW_AT_sibling
+ .uleb128 0x32 # (DIE (0x2084) DW_TAG_template_value_param)
+ .long .LASF2369 # DW_AT_name: "_Dummy"
+ .long 0x127c # DW_AT_type
+ # DW_AT_default_value
+ # DW_AT_const_value (0x1)
+ .uleb128 0x15 # (DIE (0x208d) DW_TAG_formal_parameter)
+ .long 0x2069 # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x2073
+ .uleb128 0x14 # (DIE (0x2093) DW_TAG_subprogram)
+ .long 0x6c3 # DW_AT_specification
+ .long 0x20a1 # DW_AT_object_pointer
+ .byte 0x3 # DW_AT_inline
+ .long 0x20ab # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x20a1) DW_TAG_formal_parameter)
+ .long .LASF2364 # DW_AT_name: "this"
+ .long 0x1dcc # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x2093
+ .uleb128 0x6 # (DIE (0x20ab) DW_TAG_reference_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x120f # DW_AT_type
+ .uleb128 0x1b # (DIE (0x20b0) DW_TAG_subprogram)
+ .long 0x121b # DW_AT_specification
+ # DW_AT_inline (0x3)
+ .long 0x20e5 # DW_AT_sibling
+ .uleb128 0x12 # (DIE (0x20b9) DW_TAG_template_value_param)
+ .ascii "__i\0" # DW_AT_name
+ .long 0x1275 # DW_AT_type
+ .byte 0 # DW_AT_const_value
+ .uleb128 0x25 # (DIE (0x20c3) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2231 # DW_AT_name: "_Elements"
+ .long 0x20d7 # DW_AT_sibling
+ .uleb128 0xb # (DIE (0x20cc) DW_TAG_template_type_param)
+ .long 0x1d22 # DW_AT_type
+ .uleb128 0xb # (DIE (0x20d1) DW_TAG_template_type_param)
+ .long 0x571 # DW_AT_type
+ .byte 0 # end of children of DIE 0x20c3
+ .uleb128 0x21 # (DIE (0x20d7) DW_TAG_formal_parameter)
+ .ascii "__t\0" # DW_AT_name
+ .byte 0x3 # DW_AT_decl_file (/usr/include/c++/15/tuple)
+ .value 0x98c # DW_AT_decl_line
+ .byte 0x1e # DW_AT_decl_column
+ .long 0x1dc2 # DW_AT_type
+ .byte 0 # end of children of DIE 0x20b0
+ .uleb128 0x14 # (DIE (0x20e5) DW_TAG_subprogram)
+ .long 0x619 # DW_AT_specification
+ .long 0x20f3 # DW_AT_object_pointer
+ .byte 0x2 # DW_AT_inline
+ .long 0x2109 # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x20f3) DW_TAG_formal_parameter)
+ .long .LASF2364 # DW_AT_name: "this"
+ .long 0x1dcc # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x35 # (DIE (0x20fc) DW_TAG_formal_parameter)
+ .ascii "__p\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xaa # DW_AT_decl_line
+ .byte 0x1f # DW_AT_decl_column
+ .long 0x638 # DW_AT_type
+ .byte 0 # end of children of DIE 0x20e5
+ .uleb128 0x1e # (DIE (0x2109) DW_TAG_subprogram)
+ .long 0x20e5 # DW_AT_abstract_origin
+ .long .LASF2371 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EEC2EPS0_"
+ .long 0x211a # DW_AT_object_pointer
+ .long 0x2125 # DW_AT_sibling
+ .uleb128 0x15 # (DIE (0x211a) DW_TAG_formal_parameter)
+ .long 0x20f3 # DW_AT_abstract_origin
+ .uleb128 0x15 # (DIE (0x211f) DW_TAG_formal_parameter)
+ .long 0x20fc # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x2109
+ .uleb128 0x14 # (DIE (0x2125) DW_TAG_subprogram)
+ .long 0x598 # DW_AT_specification
+ .long 0x2133 # DW_AT_object_pointer
+ .byte 0x3 # DW_AT_inline
+ .long 0x2149 # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x2133) DW_TAG_formal_parameter)
+ .long .LASF2364 # DW_AT_name: "this"
+ .long 0x1d1d # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x74 # (DIE (0x213c) DW_TAG_formal_parameter)
+ .long .LASF2372 # DW_AT_name: "__ptr"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0x57 # DW_AT_decl_line
+ .byte 0x17 # DW_AT_decl_column
+ .long 0x1d22 # DW_AT_type
+ .byte 0 # end of children of DIE 0x2125
+ .uleb128 0x14 # (DIE (0x2149) DW_TAG_subprogram)
+ .long 0xf14 # DW_AT_specification
+ .long 0x2157 # DW_AT_object_pointer
+ .byte 0x3 # DW_AT_inline
+ .long 0x2161 # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x2157) DW_TAG_formal_parameter)
+ .long .LASF2364 # DW_AT_name: "this"
+ .long 0x1e03 # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x2149
+ .uleb128 0x14 # (DIE (0x2161) DW_TAG_subprogram)
+ .long 0x687 # DW_AT_specification
+ .long 0x216f # DW_AT_object_pointer
+ .byte 0x3 # DW_AT_inline
+ .long 0x2179 # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x216f) DW_TAG_formal_parameter)
+ .long .LASF2364 # DW_AT_name: "this"
+ .long 0x1dcc # DW_AT_type
+ # DW_AT_artificial
+ .byte 0 # end of children of DIE 0x2161
+ .uleb128 0x14 # (DIE (0x2179) DW_TAG_subprogram)
+ .long 0x1016 # DW_AT_specification
+ .long 0x2190 # DW_AT_object_pointer
+ .byte 0x2 # DW_AT_inline
+ .long 0x21a7 # DW_AT_sibling
+ .uleb128 0x33 # (DIE (0x2187) DW_TAG_template_type_param)
+ .long .LASF2274 # DW_AT_name: "_Del"
+ .long 0x571 # DW_AT_type
+ # DW_AT_default_value
+ .uleb128 0x10 # (DIE (0x2190) DW_TAG_formal_parameter)
+ .long .LASF2364 # DW_AT_name: "this"
+ .long 0x1e03 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x21 # (DIE (0x2199) DW_TAG_formal_parameter)
+ .ascii "__p\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x137 # DW_AT_decl_line
+ .byte 0x15 # DW_AT_decl_column
+ .long 0xebb # DW_AT_type
+ .byte 0 # end of children of DIE 0x2179
+ .uleb128 0x1e # (DIE (0x21a7) DW_TAG_subprogram)
+ .long 0x2179 # DW_AT_abstract_origin
+ .long .LASF2373 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEC2IS2_vEEPS0_"
+ .long 0x21c1 # DW_AT_object_pointer
+ .long 0x21cc # DW_AT_sibling
+ .uleb128 0x33 # (DIE (0x21b8) DW_TAG_template_type_param)
+ .long .LASF2274 # DW_AT_name: "_Del"
+ .long 0x571 # DW_AT_type
+ # DW_AT_default_value
+ .uleb128 0x15 # (DIE (0x21c1) DW_TAG_formal_parameter)
+ .long 0x2190 # DW_AT_abstract_origin
+ .uleb128 0x15 # (DIE (0x21c6) DW_TAG_formal_parameter)
+ .long 0x2199 # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x21a7
+ .uleb128 0x75 # (DIE (0x21cc) DW_TAG_subprogram)
+ .long 0xd9e # DW_AT_specification
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xeb # DW_AT_decl_line
+ .byte 0x28 # DW_AT_decl_column
+ .long 0x21dd # DW_AT_object_pointer
+ .byte 0x2 # DW_AT_inline
+ .long 0x21ec # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x21dd) DW_TAG_formal_parameter)
+ .long .LASF2364 # DW_AT_name: "this"
+ .long 0x1dea # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x1 # (DIE (0x21e6) DW_TAG_formal_parameter)
+ .long 0x638 # DW_AT_type
+ .byte 0 # end of children of DIE 0x21cc
+ .uleb128 0x1e # (DIE (0x21ec) DW_TAG_subprogram)
+ .long 0x21cc # DW_AT_abstract_origin
+ .long .LASF2374 # DW_AT_linkage_name: "_ZNSt15__uniq_ptr_dataI4BaseSt14default_deleteIS0_ELb1ELb1EECI2St15__uniq_ptr_implIS0_S2_EEPS0_"
+ .long 0x21fd # DW_AT_object_pointer
+ .long 0x2208 # DW_AT_sibling
+ .uleb128 0x15 # (DIE (0x21fd) DW_TAG_formal_parameter)
+ .long 0x21dd # DW_AT_abstract_origin
+ .uleb128 0x15 # (DIE (0x2202) DW_TAG_formal_parameter)
+ .long 0x21e6 # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x21ec
+ .uleb128 0x14 # (DIE (0x2208) DW_TAG_subprogram)
+ .long 0xe38 # DW_AT_specification
+ .long 0x2216 # DW_AT_object_pointer
+ .byte 0x2 # DW_AT_inline
+ .long 0x222f # DW_AT_sibling
+ .uleb128 0x10 # (DIE (0x2216) DW_TAG_formal_parameter)
+ .long .LASF2364 # DW_AT_name: "this"
+ .long 0x1e03 # DW_AT_type
+ # DW_AT_artificial
+ .uleb128 0x76 # (DIE (0x221f) DW_TAG_lexical_block)
+ .uleb128 0x77 # (DIE (0x2220) DW_TAG_variable)
+ .long .LASF2372 # DW_AT_name: "__ptr"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x18d # DW_AT_decl_line
+ .byte 0x8 # DW_AT_decl_column
+ .long 0x1d81 # DW_AT_type
+ .byte 0 # end of children of DIE 0x221f
+ .byte 0 # end of children of DIE 0x2208
+ .uleb128 0x78 # (DIE (0x222f) DW_TAG_subprogram)
+ .long 0x2208 # DW_AT_abstract_origin
+ .long .LASF2397 # DW_AT_linkage_name: "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED2Ev"
+ .long 0x2252 # DW_AT_object_pointer
+ .quad .LFB1565 # DW_AT_low_pc
+ .quad .LFE1565-.LFB1565 # DW_AT_high_pc
+ .uleb128 0x1 # DW_AT_frame_base
+ .byte 0x9c # DW_OP_call_frame_cfa
+ # DW_AT_call_all_calls
+ .long 0x2342 # DW_AT_sibling
+ .uleb128 0xc # (DIE (0x2252) DW_TAG_formal_parameter)
+ .long 0x2216 # DW_AT_abstract_origin
+ .long .LLST0 # DW_AT_location
+ .long .LVUS0 # DW_AT_GNU_locviews
+ .uleb128 0x79 # (DIE (0x225f) DW_TAG_lexical_block)
+ .long 0x221f # DW_AT_abstract_origin
+ .long 0x226e # DW_AT_sibling
+ .uleb128 0x7a # (DIE (0x2268) DW_TAG_variable)
+ .long 0x2220 # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x225f
+ .uleb128 0x7b # (DIE (0x226e) DW_TAG_lexical_block)
+ .long 0x221f # DW_AT_abstract_origin
+ .quad .LBB144 # DW_AT_low_pc
+ .quad .LBE144-.LBB144 # DW_AT_high_pc
+ .uleb128 0x7c # (DIE (0x2283) DW_TAG_variable)
+ .long 0x2220 # DW_AT_abstract_origin
+ .long .LLST1 # DW_AT_location
+ .long .LVUS1 # DW_AT_GNU_locviews
+ .uleb128 0x36 # (DIE (0x2290) DW_TAG_inlined_subroutine)
+ .long 0x2161 # DW_AT_abstract_origin
+ .quad .LBI145 # DW_AT_entry_pc
+ .byte .LVU1 # DW_AT_GNU_entry_view
+ .quad .LBB145 # DW_AT_low_pc
+ .quad .LBE145-.LBB145 # DW_AT_high_pc
+ .byte 0x1 # DW_AT_call_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x18d # DW_AT_call_line
+ .byte 0x1b # DW_AT_call_column
+ .long 0x22c4 # DW_AT_sibling
+ .uleb128 0xc # (DIE (0x22b6) DW_TAG_formal_parameter)
+ .long 0x216f # DW_AT_abstract_origin
+ .long .LLST2 # DW_AT_location
+ .long .LVUS2 # DW_AT_GNU_locviews
+ .byte 0 # end of children of DIE 0x2290
+ .uleb128 0x36 # (DIE (0x22c4) DW_TAG_inlined_subroutine)
+ .long 0x2149 # DW_AT_abstract_origin
+ .quad .LBI146 # DW_AT_entry_pc
+ .byte .LVU5 # DW_AT_GNU_entry_view
+ .quad .LBB146 # DW_AT_low_pc
+ .quad .LBE146-.LBB146 # DW_AT_high_pc
+ .byte 0x1 # DW_AT_call_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x18f # DW_AT_call_line
+ .byte 0xf # DW_AT_call_column
+ .long 0x22f8 # DW_AT_sibling
+ .uleb128 0xc # (DIE (0x22ea) DW_TAG_formal_parameter)
+ .long 0x2157 # DW_AT_abstract_origin
+ .long .LLST3 # DW_AT_location
+ .long .LVUS3 # DW_AT_GNU_locviews
+ .byte 0 # end of children of DIE 0x22c4
+ .uleb128 0x2b # (DIE (0x22f8) DW_TAG_inlined_subroutine)
+ .long 0x2125 # DW_AT_abstract_origin
+ .quad .LBI147 # DW_AT_entry_pc
+ .byte .LVU7 # DW_AT_GNU_entry_view
+ .quad .LBB147 # DW_AT_low_pc
+ .quad .LBE147-.LBB147 # DW_AT_high_pc
+ .byte 0x1 # DW_AT_call_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x18f # DW_AT_call_line
+ .byte 0x11 # DW_AT_call_column
+ .uleb128 0x15 # (DIE (0x231a) DW_TAG_formal_parameter)
+ .long 0x2133 # DW_AT_abstract_origin
+ .uleb128 0xc # (DIE (0x231f) DW_TAG_formal_parameter)
+ .long 0x213c # DW_AT_abstract_origin
+ .long .LLST4 # DW_AT_location
+ .long .LVUS4 # DW_AT_GNU_locviews
+ .uleb128 0x7d # (DIE (0x232c) DW_TAG_call_site)
+ .quad .LVL3 # DW_AT_call_return_pc
+ # DW_AT_call_tail_call
+ .long 0x1e49 # DW_AT_call_origin
+ .uleb128 0x1f # (DIE (0x2339) DW_TAG_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x54 # DW_OP_reg4
+ .uleb128 0x1 # DW_AT_call_value
+ .byte 0x31 # DW_OP_lit1
+ .byte 0 # end of children of DIE 0x232c
+ .byte 0 # end of children of DIE 0x22f8
+ .byte 0 # end of children of DIE 0x226e
+ .byte 0 # end of children of DIE 0x222f
+ .uleb128 0x1b # (DIE (0x2342) DW_TAG_subprogram)
+ .long 0x1254 # DW_AT_specification
+ # DW_AT_inline (0x3)
+ .long 0x2363 # DW_AT_sibling
+ .uleb128 0xd # (DIE (0x234b) DW_TAG_template_type_param)
+ .ascii "_Tp\0" # DW_AT_name
+ .long 0x1d0b # DW_AT_type
+ .uleb128 0x29 # (DIE (0x2354) DW_TAG_GNU_template_parameter_pack)
+ .long .LASF2295 # DW_AT_name: "_Args"
+ .uleb128 0x7e # (DIE (0x2359) DW_TAG_GNU_formal_parameter_pack)
+ .long .LASF2398 # DW_AT_name: "__args"
+ .byte 0x1 # DW_AT_decl_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x43c # DW_AT_decl_line
+ .byte 0x18 # DW_AT_decl_column
+ .byte 0 # end of children of DIE 0x2342
+ .uleb128 0x7f # (DIE (0x2363) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2376 # DW_AT_name: "main"
+ .byte 0x2 # DW_AT_decl_file (dwarf.cc)
+ .byte 0x6 # DW_AT_decl_line
+ .byte 0x5 # DW_AT_decl_column
+ .long 0x12b4 # DW_AT_type
+ .quad .LFB1555 # DW_AT_low_pc
+ .quad .LFE1555-.LFB1555 # DW_AT_high_pc
+ .uleb128 0x1 # DW_AT_frame_base
+ .byte 0x9c # DW_OP_call_frame_cfa
+ # DW_AT_call_all_calls
+ .long 0x23a2 # DW_AT_sibling
+ .uleb128 0x42 # (DIE (0x2385) DW_TAG_formal_parameter)
+ .long 0x12b4 # DW_AT_type
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x42 # (DIE (0x238c) DW_TAG_formal_parameter)
+ .long 0x23a2 # DW_AT_type
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x54 # DW_OP_reg4
+ .uleb128 0x80 # (DIE (0x2393) DW_TAG_call_site)
+ .quad .LVL11 # DW_AT_call_return_pc
+ .long 0x23a7 # DW_AT_call_origin
+ .byte 0 # end of children of DIE 0x2363
+ .uleb128 0x4 # (DIE (0x23a2) DW_TAG_pointer_type)
+ # DW_AT_byte_size (0x8)
+ .long 0x12f2 # DW_AT_type
+ .uleb128 0x81 # (DIE (0x23a7) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF2377 # DW_AT_name: "func"
+ .byte 0x2 # DW_AT_decl_file (dwarf.cc)
+ .byte 0x3 # DW_AT_decl_line
+ .byte 0x6 # DW_AT_decl_column
+ .long .LASF2378 # DW_AT_linkage_name: "_Z4funcv"
+ .long .LLRL5 # DW_AT_ranges
+ .uleb128 0x1 # DW_AT_frame_base
+ .byte 0x9c # DW_OP_call_frame_cfa
+ # DW_AT_call_all_calls
+ .long 0x2664 # DW_AT_sibling
+ .uleb128 0x82 # (DIE (0x23be) DW_TAG_variable)
+ .long .LASF2399 # DW_AT_name: "varStatic"
+ .byte 0x2 # DW_AT_decl_file (dwarf.cc)
+ .byte 0x4 # DW_AT_decl_line
+ .byte 0x1f # DW_AT_decl_column
+ .long 0xdfe # DW_AT_type
+ .uleb128 0x9 # DW_AT_location
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .uleb128 0x83 # (DIE (0x23d5) DW_TAG_inlined_subroutine)
+ .long 0x2342 # DW_AT_abstract_origin
+ .quad .LBI149 # DW_AT_entry_pc
+ .byte .LVU19 # DW_AT_GNU_entry_view
+ .long .LLRL6 # DW_AT_ranges
+ .byte 0x2 # DW_AT_call_file (dwarf.cc)
+ .byte 0x4 # DW_AT_call_line
+ .byte 0x42 # DW_AT_call_column
+ .long 0x25c4 # DW_AT_sibling
+ .uleb128 0x84 # (DIE (0x23ef) DW_TAG_inlined_subroutine)
+ .long 0x2179 # DW_AT_abstract_origin
+ .quad .LBI151 # DW_AT_entry_pc
+ .byte .LVU21 # DW_AT_GNU_entry_view
+ .long .LLRL7 # DW_AT_ranges
+ .byte 0x1 # DW_AT_call_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x43d # DW_AT_call_line
+ .byte 0x45 # DW_AT_call_column
+ .long 0x25b0 # DW_AT_sibling
+ .uleb128 0xc # (DIE (0x240a) DW_TAG_formal_parameter)
+ .long 0x2190 # DW_AT_abstract_origin
+ .long .LLST8 # DW_AT_location
+ .long .LVUS8 # DW_AT_GNU_locviews
+ .uleb128 0xc # (DIE (0x2417) DW_TAG_formal_parameter)
+ .long 0x2199 # DW_AT_abstract_origin
+ .long .LLST9 # DW_AT_location
+ .long .LVUS9 # DW_AT_GNU_locviews
+ .uleb128 0x85 # (DIE (0x2424) DW_TAG_inlined_subroutine)
+ .long 0x21cc # DW_AT_abstract_origin
+ .quad .LBI152 # DW_AT_entry_pc
+ .byte .LVU22 # DW_AT_GNU_entry_view
+ .long .LLRL7 # DW_AT_ranges
+ .byte 0x1 # DW_AT_call_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .value 0x138 # DW_AT_call_line
+ .byte 0x4 # DW_AT_call_column
+ .uleb128 0xc # (DIE (0x243b) DW_TAG_formal_parameter)
+ .long 0x21dd # DW_AT_abstract_origin
+ .long .LLST10 # DW_AT_location
+ .long .LVUS10 # DW_AT_GNU_locviews
+ .uleb128 0xc # (DIE (0x2448) DW_TAG_formal_parameter)
+ .long 0x21e6 # DW_AT_abstract_origin
+ .long .LLST11 # DW_AT_location
+ .long .LVUS11 # DW_AT_GNU_locviews
+ .uleb128 0x86 # (DIE (0x2455) DW_TAG_inlined_subroutine)
+ .long 0x20e5 # DW_AT_abstract_origin
+ .quad .LBI153 # DW_AT_entry_pc
+ .byte .LVU23 # DW_AT_GNU_entry_view
+ .long .LLRL7 # DW_AT_ranges
+ .byte 0x1 # DW_AT_call_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xeb # DW_AT_call_line
+ .byte 0x28 # DW_AT_call_column
+ .uleb128 0xc # (DIE (0x246b) DW_TAG_formal_parameter)
+ .long 0x20f3 # DW_AT_abstract_origin
+ .long .LLST12 # DW_AT_location
+ .long .LVUS12 # DW_AT_GNU_locviews
+ .uleb128 0xc # (DIE (0x2478) DW_TAG_formal_parameter)
+ .long 0x20fc # DW_AT_abstract_origin
+ .long .LLST13 # DW_AT_location
+ .long .LVUS13 # DW_AT_GNU_locviews
+ .uleb128 0x87 # (DIE (0x2485) DW_TAG_inlined_subroutine)
+ .long 0x2052 # DW_AT_abstract_origin
+ .quad .LBI155 # DW_AT_entry_pc
+ .byte .LVU24 # DW_AT_GNU_entry_view
+ .quad .LBB155 # DW_AT_low_pc
+ .quad .LBE155-.LBB155 # DW_AT_high_pc
+ .byte 0x1 # DW_AT_call_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xaa # DW_AT_call_line
+ .byte 0x26 # DW_AT_call_column
+ .long 0x257d # DW_AT_sibling
+ .uleb128 0xc # (DIE (0x24ab) DW_TAG_formal_parameter)
+ .long 0x2069 # DW_AT_abstract_origin
+ .long .LLST14 # DW_AT_location
+ .long .LVUS14 # DW_AT_GNU_locviews
+ .uleb128 0x2b # (DIE (0x24b8) DW_TAG_inlined_subroutine)
+ .long 0x1fb0 # DW_AT_abstract_origin
+ .quad .LBI156 # DW_AT_entry_pc
+ .byte .LVU25 # DW_AT_GNU_entry_view
+ .quad .LBB156 # DW_AT_low_pc
+ .quad .LBE156-.LBB156 # DW_AT_high_pc
+ .byte 0x3 # DW_AT_call_file (/usr/include/c++/15/tuple)
+ .value 0x82c # DW_AT_call_line
+ .byte 0xf # DW_AT_call_column
+ .uleb128 0xc # (DIE (0x24da) DW_TAG_formal_parameter)
+ .long 0x1fbe # DW_AT_abstract_origin
+ .long .LLST15 # DW_AT_location
+ .long .LVUS15 # DW_AT_GNU_locviews
+ .uleb128 0x36 # (DIE (0x24e7) DW_TAG_inlined_subroutine)
+ .long 0x1f3b # DW_AT_abstract_origin
+ .quad .LBI157 # DW_AT_entry_pc
+ .byte .LVU26 # DW_AT_GNU_entry_view
+ .quad .LBB157 # DW_AT_low_pc
+ .quad .LBE157-.LBB157 # DW_AT_high_pc
+ .byte 0x3 # DW_AT_call_file (/usr/include/c++/15/tuple)
+ .value 0x12f # DW_AT_call_line
+ .byte 0x1d # DW_AT_call_column
+ .long 0x254b # DW_AT_sibling
+ .uleb128 0xc # (DIE (0x250d) DW_TAG_formal_parameter)
+ .long 0x1f49 # DW_AT_abstract_origin
+ .long .LLST16 # DW_AT_location
+ .long .LVUS16 # DW_AT_GNU_locviews
+ .uleb128 0x2b # (DIE (0x251a) DW_TAG_inlined_subroutine)
+ .long 0x1eb0 # DW_AT_abstract_origin
+ .quad .LBI158 # DW_AT_entry_pc
+ .byte .LVU27 # DW_AT_GNU_entry_view
+ .quad .LBB158 # DW_AT_low_pc
+ .quad .LBE158-.LBB158 # DW_AT_high_pc
+ .byte 0x3 # DW_AT_call_file (/usr/include/c++/15/tuple)
+ .value 0x231 # DW_AT_call_line
+ .byte 0xf # DW_AT_call_column
+ .uleb128 0xc # (DIE (0x253c) DW_TAG_formal_parameter)
+ .long 0x1ebe # DW_AT_abstract_origin
+ .long .LLST17 # DW_AT_location
+ .long .LVUS17 # DW_AT_GNU_locviews
+ .byte 0 # end of children of DIE 0x251a
+ .byte 0 # end of children of DIE 0x24e7
+ .uleb128 0x2b # (DIE (0x254b) DW_TAG_inlined_subroutine)
+ .long 0x1f0c # DW_AT_abstract_origin
+ .quad .LBI159 # DW_AT_entry_pc
+ .byte .LVU29 # DW_AT_GNU_entry_view
+ .quad .LBB159 # DW_AT_low_pc
+ .quad .LBE159-.LBB159 # DW_AT_high_pc
+ .byte 0x3 # DW_AT_call_file (/usr/include/c++/15/tuple)
+ .value 0x12f # DW_AT_call_line
+ .byte 0x1d # DW_AT_call_column
+ .uleb128 0xc # (DIE (0x256d) DW_TAG_formal_parameter)
+ .long 0x1f1a # DW_AT_abstract_origin
+ .long .LLST18 # DW_AT_location
+ .long .LVUS18 # DW_AT_GNU_locviews
+ .byte 0 # end of children of DIE 0x254b
+ .byte 0 # end of children of DIE 0x24b8
+ .byte 0 # end of children of DIE 0x2485
+ .uleb128 0x88 # (DIE (0x257d) DW_TAG_inlined_subroutine)
+ .long 0x2161 # DW_AT_abstract_origin
+ .quad .LBI160 # DW_AT_entry_pc
+ .byte .LVU31 # DW_AT_GNU_entry_view
+ .quad .LBB160 # DW_AT_low_pc
+ .quad .LBE160-.LBB160 # DW_AT_high_pc
+ .byte 0x1 # DW_AT_call_file (/usr/include/c++/15/bits/unique_ptr.h)
+ .byte 0xaa # DW_AT_call_line
+ .byte 0x35 # DW_AT_call_column
+ .uleb128 0xc # (DIE (0x259f) DW_TAG_formal_parameter)
+ .long 0x216f # DW_AT_abstract_origin
+ .long .LLST19 # DW_AT_location
+ .long .LVUS19 # DW_AT_GNU_locviews
+ .byte 0 # end of children of DIE 0x257d
+ .byte 0 # end of children of DIE 0x2455
+ .byte 0 # end of children of DIE 0x2424
+ .byte 0 # end of children of DIE 0x23ef
+ .uleb128 0x43 # (DIE (0x25b0) DW_TAG_call_site)
+ .quad .LVL5 # DW_AT_call_return_pc
+ .long 0x1e2f # DW_AT_call_origin
+ .uleb128 0x1f # (DIE (0x25bd) DW_TAG_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x1 # DW_AT_call_value
+ .byte 0x31 # DW_OP_lit1
+ .byte 0 # end of children of DIE 0x25b0
+ .byte 0 # end of children of DIE 0x23d5
+ .uleb128 0x44 # (DIE (0x25c4) DW_TAG_call_site)
+ .quad .LVL4 # DW_AT_call_return_pc
+ .long 0x1e87 # DW_AT_call_origin
+ .long 0x25e3 # DW_AT_sibling
+ .uleb128 0x1f # (DIE (0x25d5) DW_TAG_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x9 # DW_AT_call_value
+ .byte 0x3 # DW_OP_addr
+ .quad _ZGVZ4funcvE9varStatic
+ .byte 0 # end of children of DIE 0x25c4
+ .uleb128 0x89 # (DIE (0x25e3) DW_TAG_call_site)
+ .quad .LVL7 # DW_AT_call_return_pc
+ .long 0x2610 # DW_AT_sibling
+ .uleb128 0x1f # (DIE (0x25f1) DW_TAG_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x9 # DW_AT_call_value
+ .byte 0x3 # DW_OP_addr
+ .quad _ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED1Ev
+ .uleb128 0x1f # (DIE (0x25fe) DW_TAG_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x54 # DW_OP_reg4
+ .uleb128 0x9 # DW_AT_call_value
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .uleb128 0x8a # (DIE (0x260b) DW_TAG_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x51 # DW_OP_reg1
+ .byte 0 # end of children of DIE 0x25e3
+ .uleb128 0x8b # (DIE (0x2610) DW_TAG_call_site)
+ .quad .LVL8 # DW_AT_call_return_pc
+ # DW_AT_call_tail_call
+ .long 0x1e78 # DW_AT_call_origin
+ .long 0x2630 # DW_AT_sibling
+ .uleb128 0x1f # (DIE (0x2622) DW_TAG_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x9 # DW_AT_call_value
+ .byte 0x3 # DW_OP_addr
+ .quad _ZGVZ4funcvE9varStatic
+ .byte 0 # end of children of DIE 0x2610
+ .uleb128 0x44 # (DIE (0x2630) DW_TAG_call_site)
+ .quad .LVL9 # DW_AT_call_return_pc
+ .long 0x1e64 # DW_AT_call_origin
+ .long 0x264f # DW_AT_sibling
+ .uleb128 0x1f # (DIE (0x2641) DW_TAG_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x9 # DW_AT_call_value
+ .byte 0x3 # DW_OP_addr
+ .quad _ZGVZ4funcvE9varStatic
+ .byte 0 # end of children of DIE 0x2630
+ .uleb128 0x43 # (DIE (0x264f) DW_TAG_call_site)
+ .quad .LVL10 # DW_AT_call_return_pc
+ .long 0x2664 # DW_AT_call_origin
+ .uleb128 0x1f # (DIE (0x265c) DW_TAG_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x2 # DW_AT_call_value
+ .byte 0x73 # DW_OP_breg3
+ .sleb128 0
+ .byte 0 # end of children of DIE 0x264f
+ .byte 0 # end of children of DIE 0x23a7
+ .uleb128 0x8c # (DIE (0x2664) DW_TAG_subprogram)
+ # DW_AT_external
+ # DW_AT_declaration
+ .long .LASF2400 # DW_AT_linkage_name: "_Unwind_Resume"
+ .long .LASF2401 # DW_AT_name: "__builtin_unwind_resume"
+ .byte 0 # end of children of DIE 0xc
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .uleb128 0x1 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x2 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x34 # (DW_AT_artificial)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x3 # (abbrev code)
+ .uleb128 0x8 # (TAG: DW_TAG_imported_declaration)
+ .byte 0 # DW_children_no
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x18 # (DW_AT_import)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x4 # (abbrev code)
+ .uleb128 0xf # (TAG: DW_TAG_pointer_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 8
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x5 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 20 # (/usr/include/wchar.h)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x6 # (abbrev code)
+ .uleb128 0x10 # (TAG: DW_TAG_reference_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 8
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x7 # (abbrev code)
+ .uleb128 0x26 # (TAG: DW_TAG_const_type)
+ .byte 0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x8 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x9 # (abbrev code)
+ .uleb128 0x24 # (TAG: DW_TAG_base_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3e # (DW_AT_encoding)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .byte 0
+ .byte 0
+ .uleb128 0xa # (abbrev code)
+ .uleb128 0xd # (TAG: DW_TAG_member)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x38 # (DW_AT_data_member_location)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0xb # (abbrev code)
+ .uleb128 0x2f # (TAG: DW_TAG_template_type_param)
+ .byte 0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0xc # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x2137 # (DW_AT_GNU_locviews)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0xd # (abbrev code)
+ .uleb128 0x2f # (TAG: DW_TAG_template_type_param)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0xe # (abbrev code)
+ .uleb128 0x16 # (TAG: DW_TAG_typedef)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0xf # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x10 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x34 # (DW_AT_artificial)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x11 # (abbrev code)
+ .uleb128 0x8 # (TAG: DW_TAG_imported_declaration)
+ .byte 0 # DW_children_no
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 8 # (/usr/include/c++/15/cwchar)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x18 # (DW_AT_import)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x12 # (abbrev code)
+ .uleb128 0x30 # (TAG: DW_TAG_template_value_param)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1c # (DW_AT_const_value)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x13 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 20 # (/usr/include/wchar.h)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x14 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x47 # (DW_AT_specification)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x20 # (DW_AT_inline)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x15 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x16 # (abbrev code)
+ .uleb128 0x13 # (TAG: DW_TAG_structure_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x17 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 1
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x18 # (abbrev code)
+ .uleb128 0x16 # (TAG: DW_TAG_typedef)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x19 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x1a # (abbrev code)
+ .uleb128 0x42 # (TAG: DW_TAG_rvalue_reference_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 8
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x1b # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x47 # (DW_AT_specification)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x20 # (DW_AT_inline)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 3
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x1c # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 1
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x1d # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 7
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 1
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x1e # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x1f # (abbrev code)
+ .uleb128 0x49 # (TAG: DW_TAG_call_site_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .uleb128 0x7e # (DW_AT_call_value)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .byte 0
+ .byte 0
+ .uleb128 0x20 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x21 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x22 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x8b # (DW_AT_defaulted)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 1
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x23 # (abbrev code)
+ .uleb128 0x2f # (TAG: DW_TAG_template_type_param)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x24 # (abbrev code)
+ .uleb128 0x13 # (TAG: DW_TAG_structure_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 12
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x25 # (abbrev code)
+ .uleb128 0x4107 # (TAG: DW_TAG_GNU_template_parameter_pack)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x26 # (abbrev code)
+ .uleb128 0x18 # (TAG: DW_TAG_unspecified_parameters)
+ .byte 0 # DW_children_no
+ .byte 0
+ .byte 0
+ .uleb128 0x27 # (abbrev code)
+ .uleb128 0x30 # (TAG: DW_TAG_template_value_param)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1c # (DW_AT_const_value)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x28 # (abbrev code)
+ .uleb128 0x4107 # (TAG: DW_TAG_GNU_template_parameter_pack)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .byte 0
+ .byte 0
+ .uleb128 0x29 # (abbrev code)
+ .uleb128 0x4107 # (TAG: DW_TAG_GNU_template_parameter_pack)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .byte 0
+ .byte 0
+ .uleb128 0x2a # (abbrev code)
+ .uleb128 0xd # (TAG: DW_TAG_member)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 15 # (<built-in>)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 0
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x38 # (DW_AT_data_member_location)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x2b # (abbrev code)
+ .uleb128 0x1d # (TAG: DW_TAG_inlined_subroutine)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x52 # (DW_AT_entry_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x2138 # (DW_AT_GNU_entry_view)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x58 # (DW_AT_call_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x59 # (DW_AT_call_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x57 # (DW_AT_call_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x2c # (abbrev code)
+ .uleb128 0x1c # (TAG: DW_TAG_inheritance)
+ .byte 0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x38 # (DW_AT_data_member_location)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 0
+ .byte 0
+ .byte 0
+ .uleb128 0x2d # (abbrev code)
+ .uleb128 0x39 # (TAG: DW_TAG_namespace)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x2e # (abbrev code)
+ .uleb128 0x1c # (TAG: DW_TAG_inheritance)
+ .byte 0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x38 # (DW_AT_data_member_location)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 0
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x2f # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 3 # (/usr/include/c++/15/tuple)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x30 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 3 # (/usr/include/c++/15/tuple)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x8b # (DW_AT_defaulted)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 1
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x31 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 1
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x8b # (DW_AT_defaulted)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 1
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x32 # (abbrev code)
+ .uleb128 0x30 # (TAG: DW_TAG_template_value_param)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1e # (DW_AT_default_value)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1c # (DW_AT_const_value)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 1
+ .byte 0
+ .byte 0
+ .uleb128 0x33 # (abbrev code)
+ .uleb128 0x2f # (TAG: DW_TAG_template_type_param)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1e # (DW_AT_default_value)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x34 # (abbrev code)
+ .uleb128 0x28 # (TAG: DW_TAG_enumerator)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x1c # (DW_AT_const_value)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x35 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x36 # (abbrev code)
+ .uleb128 0x1d # (TAG: DW_TAG_inlined_subroutine)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x52 # (DW_AT_entry_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x2138 # (DW_AT_GNU_entry_view)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x58 # (DW_AT_call_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x59 # (DW_AT_call_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x57 # (DW_AT_call_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x37 # (abbrev code)
+ .uleb128 0x39 # (TAG: DW_TAG_namespace)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 4 # (/usr/include/c++/15/type_traits)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 13
+ .byte 0
+ .byte 0
+ .uleb128 0x38 # (abbrev code)
+ .uleb128 0x39 # (TAG: DW_TAG_namespace)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x39 # (abbrev code)
+ .uleb128 0x13 # (TAG: DW_TAG_structure_type)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 1
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x3a # (abbrev code)
+ .uleb128 0x2 # (TAG: DW_TAG_class_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 8
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 11
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x3b # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 3 # (/usr/include/c++/15/tuple)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 7
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x63 # (DW_AT_explicit)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x3c # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 3 # (/usr/include/c++/15/tuple)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 20
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x8a # (DW_AT_deleted)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x3d # (abbrev code)
+ .uleb128 0x2 # (TAG: DW_TAG_class_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 8
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 11
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x3e # (abbrev code)
+ .uleb128 0x16 # (TAG: DW_TAG_typedef)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 1 # (/usr/include/c++/15/bits/unique_ptr.h)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 13
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 1
+ .byte 0
+ .byte 0
+ .uleb128 0x3f # (abbrev code)
+ .uleb128 0x39 # (TAG: DW_TAG_namespace)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 11
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x40 # (abbrev code)
+ .uleb128 0xd # (TAG: DW_TAG_member)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0x21 # (DW_FORM_implicit_const)
+ .sleb128 17 # (/usr/include/bits/types/__mbstate_t.h)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x41 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x34 # (DW_AT_artificial)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x42 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .byte 0
+ .byte 0
+ .uleb128 0x43 # (abbrev code)
+ .uleb128 0x48 # (TAG: DW_TAG_call_site)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x7d # (DW_AT_call_return_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x7f # (DW_AT_call_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x44 # (abbrev code)
+ .uleb128 0x48 # (TAG: DW_TAG_call_site)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x7d # (DW_AT_call_return_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x7f # (DW_AT_call_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x45 # (abbrev code)
+ .uleb128 0x11 # (TAG: DW_TAG_compile_unit)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x25 # (DW_AT_producer)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x13 # (DW_AT_language)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x90 # (DW_AT_language_name)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x91 # (DW_AT_language_version)
+ .uleb128 0x6 # (DW_FORM_data4)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x1f # (DW_FORM_line_strp)
+ .uleb128 0x1b # (DW_AT_comp_dir)
+ .uleb128 0x1f # (DW_FORM_line_strp)
+ .uleb128 0x55 # (DW_AT_ranges)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x10 # (DW_AT_stmt_list)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x79 # (DW_AT_macros)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0x46 # (abbrev code)
+ .uleb128 0x39 # (TAG: DW_TAG_namespace)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x47 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x63 # (DW_AT_explicit)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x8b # (DW_AT_defaulted)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x48 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x49 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x63 # (DW_AT_explicit)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x4a # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x4b # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x63 # (DW_AT_explicit)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x4c # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x4d # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x4e # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x87 # (DW_AT_noreturn)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x4f # (abbrev code)
+ .uleb128 0x2 # (TAG: DW_TAG_class_type)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x50 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x8b # (DW_AT_defaulted)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x51 # (abbrev code)
+ .uleb128 0x16 # (TAG: DW_TAG_typedef)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x52 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0 # DW_children_no
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x53 # (abbrev code)
+ .uleb128 0x4107 # (TAG: DW_TAG_GNU_template_parameter_pack)
+ .byte 0 # DW_children_no
+ .byte 0
+ .byte 0
+ .uleb128 0x54 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x8b # (DW_AT_defaulted)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x55 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x34 # (DW_AT_artificial)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x56 # (abbrev code)
+ .uleb128 0xd # (TAG: DW_TAG_member)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x38 # (DW_AT_data_member_location)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x57 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x8b # (DW_AT_defaulted)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x58 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x59 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x63 # (DW_AT_explicit)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x5a # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x8a # (DW_AT_deleted)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x5b # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x8a # (DW_AT_deleted)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x5c # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x32 # (DW_AT_accessibility)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x63 # (DW_AT_explicit)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x5d # (abbrev code)
+ .uleb128 0x2f # (TAG: DW_TAG_template_type_param)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1e # (DW_AT_default_value)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x5e # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x5f # (abbrev code)
+ .uleb128 0x24 # (TAG: DW_TAG_base_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3e # (DW_AT_encoding)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .byte 0
+ .byte 0
+ .uleb128 0x60 # (abbrev code)
+ .uleb128 0xf # (TAG: DW_TAG_pointer_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x61 # (abbrev code)
+ .uleb128 0x26 # (TAG: DW_TAG_const_type)
+ .byte 0 # DW_children_no
+ .byte 0
+ .byte 0
+ .uleb128 0x62 # (abbrev code)
+ .uleb128 0x4 # (TAG: DW_TAG_enumeration_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3e # (DW_AT_encoding)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x63 # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1c # (DW_AT_const_value)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x20 # (DW_AT_inline)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x64 # (abbrev code)
+ .uleb128 0x3a # (TAG: DW_TAG_imported_module)
+ .byte 0 # DW_children_no
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x18 # (DW_AT_import)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x65 # (abbrev code)
+ .uleb128 0x3b # (TAG: DW_TAG_unspecified_type)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .byte 0
+ .byte 0
+ .uleb128 0x66 # (abbrev code)
+ .uleb128 0x13 # (TAG: DW_TAG_structure_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x67 # (abbrev code)
+ .uleb128 0x13 # (TAG: DW_TAG_structure_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x68 # (abbrev code)
+ .uleb128 0x17 # (TAG: DW_TAG_union_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x69 # (abbrev code)
+ .uleb128 0x1 # (TAG: DW_TAG_array_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x6a # (abbrev code)
+ .uleb128 0x21 # (TAG: DW_TAG_subrange_type)
+ .byte 0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2f # (DW_AT_upper_bound)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x6b # (abbrev code)
+ .uleb128 0x13 # (TAG: DW_TAG_structure_type)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x6c # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0 # DW_children_no
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x6d # (abbrev code)
+ .uleb128 0x13 # (TAG: DW_TAG_structure_type)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x6e # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x47 # (DW_AT_specification)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x6f # (abbrev code)
+ .uleb128 0x39 # (TAG: DW_TAG_namespace)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x70 # (abbrev code)
+ .uleb128 0x39 # (TAG: DW_TAG_namespace)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x89 # (DW_AT_export_symbols)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x71 # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x34 # (DW_AT_artificial)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x72 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x73 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x34 # (DW_AT_artificial)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x74 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x75 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x47 # (DW_AT_specification)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x20 # (DW_AT_inline)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x76 # (abbrev code)
+ .uleb128 0xb # (TAG: DW_TAG_lexical_block)
+ .byte 0x1 # DW_children_yes
+ .byte 0
+ .byte 0
+ .uleb128 0x77 # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x78 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x64 # (DW_AT_object_pointer)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x40 # (DW_AT_frame_base)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .uleb128 0x7a # (DW_AT_call_all_calls)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x79 # (abbrev code)
+ .uleb128 0xb # (TAG: DW_TAG_lexical_block)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x7a # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x7b # (abbrev code)
+ .uleb128 0xb # (TAG: DW_TAG_lexical_block)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .byte 0
+ .byte 0
+ .uleb128 0x7c # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x2137 # (DW_AT_GNU_locviews)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0x7d # (abbrev code)
+ .uleb128 0x48 # (TAG: DW_TAG_call_site)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x7d # (DW_AT_call_return_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x82 # (DW_AT_call_tail_call)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x7f # (DW_AT_call_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x7e # (abbrev code)
+ .uleb128 0x4108 # (TAG: DW_TAG_GNU_formal_parameter_pack)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x7f # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x40 # (DW_AT_frame_base)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .uleb128 0x7a # (DW_AT_call_all_calls)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x80 # (abbrev code)
+ .uleb128 0x48 # (TAG: DW_TAG_call_site)
+ .byte 0 # DW_children_no
+ .uleb128 0x7d # (DW_AT_call_return_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x7f # (DW_AT_call_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x81 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x55 # (DW_AT_ranges)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x40 # (DW_AT_frame_base)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .uleb128 0x7a # (DW_AT_call_all_calls)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x82 # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .byte 0
+ .byte 0
+ .uleb128 0x83 # (abbrev code)
+ .uleb128 0x1d # (TAG: DW_TAG_inlined_subroutine)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x52 # (DW_AT_entry_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x2138 # (DW_AT_GNU_entry_view)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x55 # (DW_AT_ranges)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x58 # (DW_AT_call_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x59 # (DW_AT_call_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x57 # (DW_AT_call_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x84 # (abbrev code)
+ .uleb128 0x1d # (TAG: DW_TAG_inlined_subroutine)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x52 # (DW_AT_entry_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x2138 # (DW_AT_GNU_entry_view)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x55 # (DW_AT_ranges)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x58 # (DW_AT_call_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x59 # (DW_AT_call_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x57 # (DW_AT_call_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x85 # (abbrev code)
+ .uleb128 0x1d # (TAG: DW_TAG_inlined_subroutine)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x52 # (DW_AT_entry_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x2138 # (DW_AT_GNU_entry_view)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x55 # (DW_AT_ranges)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x58 # (DW_AT_call_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x59 # (DW_AT_call_line)
+ .uleb128 0x5 # (DW_FORM_data2)
+ .uleb128 0x57 # (DW_AT_call_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x86 # (abbrev code)
+ .uleb128 0x1d # (TAG: DW_TAG_inlined_subroutine)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x52 # (DW_AT_entry_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x2138 # (DW_AT_GNU_entry_view)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x55 # (DW_AT_ranges)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x58 # (DW_AT_call_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x59 # (DW_AT_call_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x57 # (DW_AT_call_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x87 # (abbrev code)
+ .uleb128 0x1d # (TAG: DW_TAG_inlined_subroutine)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x52 # (DW_AT_entry_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x2138 # (DW_AT_GNU_entry_view)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x58 # (DW_AT_call_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x59 # (DW_AT_call_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x57 # (DW_AT_call_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x88 # (abbrev code)
+ .uleb128 0x1d # (TAG: DW_TAG_inlined_subroutine)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x52 # (DW_AT_entry_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x2138 # (DW_AT_GNU_entry_view)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x58 # (DW_AT_call_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x59 # (DW_AT_call_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x57 # (DW_AT_call_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .byte 0
+ .byte 0
+ .uleb128 0x89 # (abbrev code)
+ .uleb128 0x48 # (TAG: DW_TAG_call_site)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x7d # (DW_AT_call_return_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x8a # (abbrev code)
+ .uleb128 0x49 # (TAG: DW_TAG_call_site_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .byte 0
+ .byte 0
+ .uleb128 0x8b # (abbrev code)
+ .uleb128 0x48 # (TAG: DW_TAG_call_site)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x7d # (DW_AT_call_return_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x82 # (DW_AT_call_tail_call)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x7f # (DW_AT_call_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x8c # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0 # DW_children_no
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x6e # (DW_AT_linkage_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_loclists,"",@progbits
+ .long .Ldebug_loc3-.Ldebug_loc2 # Length of Location Lists
+.Ldebug_loc2:
+ .value 0x5 # DWARF version number
+ .byte 0x8 # Address Size
+ .byte 0 # Segment Size
+ .long 0 # Offset Entry Count
+.Ldebug_loc0:
+.LVUS0:
+ .uleb128 0 # View list begin (*.LVUS0)
+ .uleb128 .LVU4 # View list end (*.LVUS0)
+ .uleb128 .LVU4 # View list begin (*.LVUS0)
+ .uleb128 0 # View list end (*.LVUS0)
+.LLST0:
+ .byte 0x6 # DW_LLE_base_address (*.LLST0)
+ .quad .LVL0 # Base address (*.LLST0)
+ .byte 0x4 # DW_LLE_offset_pair (*.LLST0)
+ .uleb128 .LVL0-.LVL0 # Location list begin address (*.LLST0)
+ .uleb128 .LVL1-.LVL0 # Location list end address (*.LLST0)
+ .uleb128 0x1 # Location expression size
+ .byte 0x55 # DW_OP_reg5
+ .byte 0x4 # DW_LLE_offset_pair (*.LLST0)
+ .uleb128 .LVL1-.LVL0 # Location list begin address (*.LLST0)
+ .uleb128 .LFE1565-.LVL0 # Location list end address (*.LLST0)
+ .uleb128 0x4 # Location expression size
+ .byte 0xa3 # DW_OP_entry_value
+ .uleb128 0x1
+ .byte 0x55 # DW_OP_reg5
+ .byte 0x9f # DW_OP_stack_value
+ .byte 0 # DW_LLE_end_of_list (*.LLST0)
+.LVUS1:
+ .uleb128 .LVU2 # View list begin (*.LVUS1)
+ .uleb128 .LVU4 # View list end (*.LVUS1)
+ .uleb128 .LVU4 # View list begin (*.LVUS1)
+ .uleb128 0 # View list end (*.LVUS1)
+.LLST1:
+ .byte 0x6 # DW_LLE_base_address (*.LLST1)
+ .quad .LVL0 # Base address (*.LLST1)
+ .byte 0x4 # DW_LLE_offset_pair (*.LLST1)
+ .uleb128 .LVL0-.LVL0 # Location list begin address (*.LLST1)
+ .uleb128 .LVL1-.LVL0 # Location list end address (*.LLST1)
+ .uleb128 0x1 # Location expression size
+ .byte 0x55 # DW_OP_reg5
+ .byte 0x4 # DW_LLE_offset_pair (*.LLST1)
+ .uleb128 .LVL1-.LVL0 # Location list begin address (*.LLST1)
+ .uleb128 .LFE1565-.LVL0 # Location list end address (*.LLST1)
+ .uleb128 0x4 # Location expression size
+ .byte 0xa3 # DW_OP_entry_value
+ .uleb128 0x1
+ .byte 0x55 # DW_OP_reg5
+ .byte 0x9f # DW_OP_stack_value
+ .byte 0 # DW_LLE_end_of_list (*.LLST1)
+.LVUS2:
+ .uleb128 .LVU1 # View list begin (*.LVUS2)
+ .uleb128 .LVU2 # View list end (*.LVUS2)
+.LLST2:
+ .byte 0x8 # DW_LLE_start_length (*.LLST2)
+ .quad .LVL0 # Location list begin address (*.LLST2)
+ .uleb128 .LVL0-.LVL0 # Location list length (*.LLST2)
+ .uleb128 0x1 # Location expression size
+ .byte 0x55 # DW_OP_reg5
+ .byte 0 # DW_LLE_end_of_list (*.LLST2)
+.LVUS3:
+ .uleb128 .LVU5 # View list begin (*.LVUS3)
+ .uleb128 .LVU6 # View list end (*.LVUS3)
+.LLST3:
+ .byte 0x8 # DW_LLE_start_length (*.LLST3)
+ .quad .LVL2 # Location list begin address (*.LLST3)
+ .uleb128 .LVL2-.LVL2 # Location list length (*.LLST3)
+ .uleb128 0x4 # Location expression size
+ .byte 0xa3 # DW_OP_entry_value
+ .uleb128 0x1
+ .byte 0x55 # DW_OP_reg5
+ .byte 0x9f # DW_OP_stack_value
+ .byte 0 # DW_LLE_end_of_list (*.LLST3)
+.LVUS4:
+ .uleb128 .LVU6 # View list begin (*.LVUS4)
+ .uleb128 .LVU9 # View list end (*.LVUS4)
+.LLST4:
+ .byte 0x8 # DW_LLE_start_length (*.LLST4)
+ .quad .LVL2 # Location list begin address (*.LLST4)
+ .uleb128 .LVL3-1-.LVL2 # Location list length (*.LLST4)
+ .uleb128 0x1 # Location expression size
+ .byte 0x55 # DW_OP_reg5
+ .byte 0 # DW_LLE_end_of_list (*.LLST4)
+.LVUS8:
+ .uleb128 .LVU21 # View list begin (*.LVUS8)
+ .uleb128 .LVU35 # View list end (*.LVUS8)
+.LLST8:
+ .byte 0x8 # DW_LLE_start_length (*.LLST8)
+ .quad .LVL5 # Location list begin address (*.LLST8)
+ .uleb128 .LVL6-.LVL5 # Location list length (*.LLST8)
+ .uleb128 0xa # Location expression size
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .byte 0x9f # DW_OP_stack_value
+ .byte 0 # DW_LLE_end_of_list (*.LLST8)
+.LVUS9:
+ .uleb128 .LVU21 # View list begin (*.LVUS9)
+ .uleb128 .LVU35 # View list end (*.LVUS9)
+.LLST9:
+ .byte 0x8 # DW_LLE_start_length (*.LLST9)
+ .quad .LVL5 # Location list begin address (*.LLST9)
+ .uleb128 .LVL6-.LVL5 # Location list length (*.LLST9)
+ .uleb128 0x1 # Location expression size
+ .byte 0x50 # DW_OP_reg0
+ .byte 0 # DW_LLE_end_of_list (*.LLST9)
+.LVUS10:
+ .uleb128 .LVU22 # View list begin (*.LVUS10)
+ .uleb128 .LVU35 # View list end (*.LVUS10)
+.LLST10:
+ .byte 0x8 # DW_LLE_start_length (*.LLST10)
+ .quad .LVL5 # Location list begin address (*.LLST10)
+ .uleb128 .LVL6-.LVL5 # Location list length (*.LLST10)
+ .uleb128 0xa # Location expression size
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .byte 0x9f # DW_OP_stack_value
+ .byte 0 # DW_LLE_end_of_list (*.LLST10)
+.LVUS11:
+ .uleb128 .LVU22 # View list begin (*.LVUS11)
+ .uleb128 .LVU35 # View list end (*.LVUS11)
+.LLST11:
+ .byte 0x8 # DW_LLE_start_length (*.LLST11)
+ .quad .LVL5 # Location list begin address (*.LLST11)
+ .uleb128 .LVL6-.LVL5 # Location list length (*.LLST11)
+ .uleb128 0x1 # Location expression size
+ .byte 0x50 # DW_OP_reg0
+ .byte 0 # DW_LLE_end_of_list (*.LLST11)
+.LVUS12:
+ .uleb128 .LVU23 # View list begin (*.LVUS12)
+ .uleb128 .LVU35 # View list end (*.LVUS12)
+.LLST12:
+ .byte 0x8 # DW_LLE_start_length (*.LLST12)
+ .quad .LVL5 # Location list begin address (*.LLST12)
+ .uleb128 .LVL6-.LVL5 # Location list length (*.LLST12)
+ .uleb128 0xa # Location expression size
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .byte 0x9f # DW_OP_stack_value
+ .byte 0 # DW_LLE_end_of_list (*.LLST12)
+.LVUS13:
+ .uleb128 .LVU23 # View list begin (*.LVUS13)
+ .uleb128 .LVU35 # View list end (*.LVUS13)
+.LLST13:
+ .byte 0x8 # DW_LLE_start_length (*.LLST13)
+ .quad .LVL5 # Location list begin address (*.LLST13)
+ .uleb128 .LVL6-.LVL5 # Location list length (*.LLST13)
+ .uleb128 0x1 # Location expression size
+ .byte 0x50 # DW_OP_reg0
+ .byte 0 # DW_LLE_end_of_list (*.LLST13)
+.LVUS14:
+ .uleb128 .LVU24 # View list begin (*.LVUS14)
+ .uleb128 .LVU30 # View list end (*.LVUS14)
+.LLST14:
+ .byte 0x8 # DW_LLE_start_length (*.LLST14)
+ .quad .LVL5 # Location list begin address (*.LLST14)
+ .uleb128 .LVL5-.LVL5 # Location list length (*.LLST14)
+ .uleb128 0xa # Location expression size
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .byte 0x9f # DW_OP_stack_value
+ .byte 0 # DW_LLE_end_of_list (*.LLST14)
+.LVUS15:
+ .uleb128 .LVU25 # View list begin (*.LVUS15)
+ .uleb128 .LVU30 # View list end (*.LVUS15)
+.LLST15:
+ .byte 0x8 # DW_LLE_start_length (*.LLST15)
+ .quad .LVL5 # Location list begin address (*.LLST15)
+ .uleb128 .LVL5-.LVL5 # Location list length (*.LLST15)
+ .uleb128 0xa # Location expression size
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .byte 0x9f # DW_OP_stack_value
+ .byte 0 # DW_LLE_end_of_list (*.LLST15)
+.LVUS16:
+ .uleb128 .LVU26 # View list begin (*.LVUS16)
+ .uleb128 .LVU28 # View list end (*.LVUS16)
+.LLST16:
+ .byte 0x8 # DW_LLE_start_length (*.LLST16)
+ .quad .LVL5 # Location list begin address (*.LLST16)
+ .uleb128 .LVL5-.LVL5 # Location list length (*.LLST16)
+ .uleb128 0xa # Location expression size
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .byte 0x9f # DW_OP_stack_value
+ .byte 0 # DW_LLE_end_of_list (*.LLST16)
+.LVUS17:
+ .uleb128 .LVU27 # View list begin (*.LVUS17)
+ .uleb128 .LVU28 # View list end (*.LVUS17)
+.LLST17:
+ .byte 0x8 # DW_LLE_start_length (*.LLST17)
+ .quad .LVL5 # Location list begin address (*.LLST17)
+ .uleb128 .LVL5-.LVL5 # Location list length (*.LLST17)
+ .uleb128 0xa # Location expression size
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .byte 0x9f # DW_OP_stack_value
+ .byte 0 # DW_LLE_end_of_list (*.LLST17)
+.LVUS18:
+ .uleb128 .LVU28 # View list begin (*.LVUS18)
+ .uleb128 .LVU30 # View list end (*.LVUS18)
+.LLST18:
+ .byte 0x8 # DW_LLE_start_length (*.LLST18)
+ .quad .LVL5 # Location list begin address (*.LLST18)
+ .uleb128 .LVL5-.LVL5 # Location list length (*.LLST18)
+ .uleb128 0xa # Location expression size
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .byte 0x9f # DW_OP_stack_value
+ .byte 0 # DW_LLE_end_of_list (*.LLST18)
+.LVUS19:
+ .uleb128 .LVU30 # View list begin (*.LVUS19)
+ .uleb128 .LVU32 # View list end (*.LVUS19)
+.LLST19:
+ .byte 0x8 # DW_LLE_start_length (*.LLST19)
+ .quad .LVL5 # Location list begin address (*.LLST19)
+ .uleb128 .LVL5-.LVL5 # Location list length (*.LLST19)
+ .uleb128 0xa # Location expression size
+ .byte 0x3 # DW_OP_addr
+ .quad _ZZ4funcvE9varStatic
+ .byte 0x9f # DW_OP_stack_value
+ .byte 0 # DW_LLE_end_of_list (*.LLST19)
+.Ldebug_loc3:
+ .section .debug_aranges,"",@progbits
+ .long 0x5c # Length of Address Ranges Info
+ .value 0x2 # DWARF aranges version
+ .long .Ldebug_info0 # Offset of Compilation Unit Info
+ .byte 0x8 # Size of Address
+ .byte 0 # Size of Segment Descriptor
+ .value 0 # Pad to 16 byte boundary
+ .value 0
+ .quad .Ltext0 # Address
+ .quad .Letext0-.Ltext0 # Length
+ .quad .Ltext_cold0 # Address
+ .quad .Letext_cold0-.Ltext_cold0 # Length
+ .quad .LFB1565 # Address
+ .quad .LFE1565-.LFB1565 # Length
+ .quad .LFB1555 # Address
+ .quad .LFE1555-.LFB1555 # Length
+ .quad 0
+ .quad 0
+ .section .debug_rnglists,"",@progbits
+.Ldebug_ranges0:
+ .long .Ldebug_ranges3-.Ldebug_ranges2 # Length of Range Lists
+.Ldebug_ranges2:
+ .value 0x5 # DWARF version number
+ .byte 0x8 # Address Size
+ .byte 0 # Segment Size
+ .long 0 # Offset Entry Count
+.LLRL5:
+ .byte 0x7 # DW_RLE_start_length (*.LLRL5)
+ .quad .LFB1545 # Range begin address (*.LLRL5)
+ .uleb128 .LHOTE0-.LFB1545 # Range length (*.LLRL5)
+ .byte 0x7 # DW_RLE_start_length (*.LLRL5)
+ .quad .LFSB1545 # Range begin address (*.LLRL5)
+ .uleb128 .LCOLDE0-.LFSB1545 # Range length (*.LLRL5)
+ .byte 0 # DW_RLE_end_of_list (*.LLRL5)
+.LLRL6:
+ .byte 0x5 # DW_RLE_base_address (*.LLRL6)
+ .quad .LBB149 # Base address (*.LLRL6)
+ .byte 0x4 # DW_RLE_offset_pair (*.LLRL6)
+ .uleb128 .LBB149-.LBB149 # Range begin address (*.LLRL6)
+ .uleb128 .LBE149-.LBB149 # Range end address (*.LLRL6)
+ .byte 0x4 # DW_RLE_offset_pair (*.LLRL6)
+ .uleb128 .LBB166-.LBB149 # Range begin address (*.LLRL6)
+ .uleb128 .LBE166-.LBB149 # Range end address (*.LLRL6)
+ .byte 0 # DW_RLE_end_of_list (*.LLRL6)
+.LLRL7:
+ .byte 0x5 # DW_RLE_base_address (*.LLRL7)
+ .quad .LBB151 # Base address (*.LLRL7)
+ .byte 0x4 # DW_RLE_offset_pair (*.LLRL7)
+ .uleb128 .LBB151-.LBB151 # Range begin address (*.LLRL7)
+ .uleb128 .LBE151-.LBB151 # Range end address (*.LLRL7)
+ .byte 0x4 # DW_RLE_offset_pair (*.LLRL7)
+ .uleb128 .LBB164-.LBB151 # Range begin address (*.LLRL7)
+ .uleb128 .LBE164-.LBB151 # Range end address (*.LLRL7)
+ .byte 0 # DW_RLE_end_of_list (*.LLRL7)
+.LLRL20:
+ .byte 0x7 # DW_RLE_start_length (*.LLRL20)
+ .quad .Ltext0 # Range begin address (*.LLRL20)
+ .uleb128 .Letext0-.Ltext0 # Range length (*.LLRL20)
+ .byte 0x7 # DW_RLE_start_length (*.LLRL20)
+ .quad .Ltext_cold0 # Range begin address (*.LLRL20)
+ .uleb128 .Letext_cold0-.Ltext_cold0 # Range length (*.LLRL20)
+ .byte 0x7 # DW_RLE_start_length (*.LLRL20)
+ .quad .LFB1565 # Range begin address (*.LLRL20)
+ .uleb128 .LFE1565-.LFB1565 # Range length (*.LLRL20)
+ .byte 0x7 # DW_RLE_start_length (*.LLRL20)
+ .quad .LFB1555 # Range begin address (*.LLRL20)
+ .uleb128 .LFE1555-.LFB1555 # Range length (*.LLRL20)
+ .byte 0 # DW_RLE_end_of_list (*.LLRL20)
+.Ldebug_ranges3:
+ .section .debug_macro,"",@progbits
+.Ldebug_macro0:
+ .value 0x5 # DWARF macro version number
+ .byte 0x2 # Flags: 32-bit, lineptr present
+ .long .Ldebug_line0
+ .byte 0x7 # Import
+ .long .Ldebug_macro2
+ .byte 0x3 # Start new file
+ .uleb128 0 # Included from line number 0
+ .uleb128 0x2 # file dwarf.cc
+ .file 25 "/usr/include/stdc-predef.h"
+ .byte 0x3 # Start new file
+ .uleb128 0 # Included from line number 0
+ .uleb128 0x19 # file /usr/include/stdc-predef.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro3
+ .byte 0x4 # End file
+ .file 26 "/usr/include/c++/15/memory"
+ .byte 0x3 # Start new file
+ .uleb128 0x1 # Included from line number 1
+ .uleb128 0x1a # file /usr/include/c++/15/memory
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d # At line number 45
+ .long .LASF471 # The macro: "_GLIBCXX_MEMORY 1"
+ .file 27 "/usr/include/c++/15/bits/memoryfwd.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x41 # Included from line number 65
+ .uleb128 0x1b # file /usr/include/c++/15/bits/memoryfwd.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c # At line number 44
+ .long .LASF472 # The macro: "_MEMORYFWD_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x32 # Included from line number 50
+ .uleb128 0x7 # file /usr/include/c++/15/x86_64-redhat-linux/bits/c++config.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF473 # The macro: "_CPP_CPPCONFIG_WRAPPER 1"
+ .file 28 "/usr/include/bits/wordsize.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3 # Included from line number 3
+ .uleb128 0x1c # file /usr/include/bits/wordsize.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro4
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro5
+ .file 29 "/usr/include/c++/15/x86_64-redhat-linux/bits/os_defines.h"
+ .byte 0x3 # Start new file
+ .uleb128 0xa51 # Included from line number 2641
+ .uleb128 0x1d # file /usr/include/c++/15/x86_64-redhat-linux/bits/os_defines.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro6
+ .file 30 "/usr/include/features.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x27 # Included from line number 39
+ .uleb128 0x1e # file /usr/include/features.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro7
+ .file 31 "/usr/include/features-time64.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x19f # Included from line number 415
+ .uleb128 0x1f # file /usr/include/features-time64.h
+ .byte 0x3 # Start new file
+ .uleb128 0x14 # Included from line number 20
+ .uleb128 0x1c # file /usr/include/bits/wordsize.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro4
+ .byte 0x4 # End file
+ .file 32 "/usr/include/bits/timesize.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x15 # Included from line number 21
+ .uleb128 0x20 # file /usr/include/bits/timesize.h
+ .byte 0x3 # Start new file
+ .uleb128 0x13 # Included from line number 19
+ .uleb128 0x1c # file /usr/include/bits/wordsize.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro4
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a # At line number 26
+ .long .LASF638 # The macro: "__TIMESIZE __WORDSIZE"
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25 # At line number 37
+ .long .LASF639 # The macro: "__USE_TIME_BITS64 1"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro8
+ .file 33 "/usr/include/sys/cdefs.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x20c # Included from line number 524
+ .uleb128 0x21 # file /usr/include/sys/cdefs.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro9
+ .byte 0x3 # Start new file
+ .uleb128 0x2da # Included from line number 730
+ .uleb128 0x1c # file /usr/include/bits/wordsize.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro4
+ .byte 0x4 # End file
+ .file 34 "/usr/include/bits/long-double.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2db # Included from line number 731
+ .uleb128 0x22 # file /usr/include/bits/long-double.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x15 # At line number 21
+ .long .LASF719 # The macro: "__LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro10
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0x21c # At line number 540
+ .long .LASF738 # The macro: "__USE_EXTERN_INLINES 1"
+ .file 35 "/usr/include/gnu/stubs.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x224 # Included from line number 548
+ .uleb128 0x23 # file /usr/include/gnu/stubs.h
+ .file 36 "/usr/include/gnu/stubs-64.h"
+ .byte 0x3 # Start new file
+ .uleb128 0xa # Included from line number 10
+ .uleb128 0x24 # file /usr/include/gnu/stubs-64.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro11
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro12
+ .byte 0x4 # End file
+ .file 37 "/usr/include/c++/15/x86_64-redhat-linux/bits/cpu_defines.h"
+ .byte 0x3 # Start new file
+ .uleb128 0xa54 # Included from line number 2644
+ .uleb128 0x25 # file /usr/include/c++/15/x86_64-redhat-linux/bits/cpu_defines.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF753 # The macro: "_GLIBCXX_CPU_DEFINES 1"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro13
+ .file 38 "/usr/include/c++/15/pstl/pstl_config.h"
+ .byte 0x3 # Start new file
+ .uleb128 0xb2f # Included from line number 2863
+ .uleb128 0x26 # file /usr/include/c++/15/pstl/pstl_config.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro14
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro15
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 39 "/usr/include/c++/15/bits/allocator.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x43 # Included from line number 67
+ .uleb128 0x27 # file /usr/include/c++/15/bits/allocator.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c # At line number 44
+ .long .LASF1068 # The macro: "_ALLOCATOR_H 1"
+ .file 40 "/usr/include/c++/15/x86_64-redhat-linux/bits/c++allocator.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2e # Included from line number 46
+ .uleb128 0x28 # file /usr/include/c++/15/x86_64-redhat-linux/bits/c++allocator.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1069 # The macro: "_GLIBCXX_CXX_ALLOCATOR_H 1"
+ .file 41 "/usr/include/c++/15/bits/new_allocator.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x21 # Included from line number 33
+ .uleb128 0x29 # file /usr/include/c++/15/bits/new_allocator.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1070 # The macro: "_STD_NEW_ALLOCATOR_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x22 # Included from line number 34
+ .uleb128 0x17 # file /usr/include/c++/15/new
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24 # At line number 36
+ .long .LASF1071 # The macro: "_NEW "
+ .file 42 "/usr/include/c++/15/bits/exception.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2b # Included from line number 43
+ .uleb128 0x2a # file /usr/include/c++/15/bits/exception.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20 # At line number 32
+ .long .LASF1072 # The macro: "__EXCEPTION_H 1"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro16
+ .file 43 "/usr/include/c++/15/bits/version.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x31 # Included from line number 49
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro17
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro18
+ .byte 0x4 # End file
+ .file 44 "/usr/include/c++/15/bits/functexcept.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x23 # Included from line number 35
+ .uleb128 0x2c # file /usr/include/c++/15/bits/functexcept.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25 # At line number 37
+ .long .LASF1356 # The macro: "_FUNCTEXCEPT_H 1"
+ .file 45 "/usr/include/c++/15/bits/exception_defines.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x28 # Included from line number 40
+ .uleb128 0x2d # file /usr/include/c++/15/bits/exception_defines.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro19
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 46 "/usr/include/c++/15/bits/move.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x24 # Included from line number 36
+ .uleb128 0x2e # file /usr/include/c++/15/bits/move.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1361 # The macro: "_MOVE_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x25 # Included from line number 37
+ .uleb128 0x4 # file /usr/include/c++/15/type_traits
+ .byte 0x7 # Import
+ .long .Ldebug_macro20
+ .byte 0x3 # Start new file
+ .uleb128 0x42 # Included from line number 66
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro21
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb65 # At line number 2917
+ .long .LASF1400 # The macro: "_GLIBCXX_HAS_NESTED_TYPE(_NTYPE) template<typename _Tp, typename = __void_t<>> struct __has_ ##_NTYPE : false_type { }; template<typename _Tp> struct __has_ ##_NTYPE<_Tp, __void_t<typename _Tp::_NTYPE>> : true_type { };"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro22
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro23
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x129 # At line number 297
+ .long .LASF1410 # The macro: "__allocator_base"
+ .byte 0x4 # End file
+ .file 47 "/usr/include/c++/15/bits/stl_tempbuf.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x44 # Included from line number 68
+ .uleb128 0x2f # file /usr/include/c++/15/bits/stl_tempbuf.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1411 # The macro: "_STL_TEMPBUF_H 1"
+ .file 48 "/usr/include/c++/15/bits/stl_construct.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3d # Included from line number 61
+ .uleb128 0x30 # file /usr/include/c++/15/bits/stl_construct.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1412 # The macro: "_STL_CONSTRUCT_H 1"
+ .file 49 "/usr/include/c++/15/bits/stl_iterator_base_types.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3d # Included from line number 61
+ .uleb128 0x31 # file /usr/include/c++/15/bits/stl_iterator_base_types.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro24
+ .byte 0x4 # End file
+ .file 50 "/usr/include/c++/15/bits/stl_iterator_base_funcs.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3e # Included from line number 62
+ .uleb128 0x32 # file /usr/include/c++/15/bits/stl_iterator_base_funcs.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3c # At line number 60
+ .long .LASF1416 # The macro: "_STL_ITERATOR_BASE_FUNCS_H 1"
+ .file 51 "/usr/include/c++/15/bits/concept_check.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x42 # Included from line number 66
+ .uleb128 0x33 # file /usr/include/c++/15/bits/concept_check.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro25
+ .byte 0x4 # End file
+ .file 52 "/usr/include/c++/15/debug/assertions.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x43 # Included from line number 67
+ .uleb128 0x34 # file /usr/include/c++/15/debug/assertions.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro26
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 53 "/usr/include/c++/15/bits/stl_pair.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3e # Included from line number 62
+ .uleb128 0x35 # file /usr/include/c++/15/bits/stl_pair.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1430 # The macro: "_STL_PAIR_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x3e # Included from line number 62
+ .uleb128 0xb # file /usr/include/c++/15/bits/utility.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22 # At line number 34
+ .long .LASF1431 # The macro: "_GLIBCXX_UTILITY_H 1"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro27
+ .byte 0x4 # End file
+ .file 54 "/usr/include/c++/15/ext/numeric_traits.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3f # Included from line number 63
+ .uleb128 0x36 # file /usr/include/c++/15/ext/numeric_traits.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1436 # The macro: "_EXT_NUMERIC_TRAITS 1"
+ .file 55 "/usr/include/c++/15/bits/cpp_type_traits.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x24 # Included from line number 36
+ .uleb128 0x37 # file /usr/include/c++/15/bits/cpp_type_traits.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x21 # At line number 33
+ .long .LASF1437 # The macro: "_CPP_TYPE_TRAITS_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x28 # Included from line number 40
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro28
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro29
+ .byte 0x4 # End file
+ .file 56 "/usr/include/c++/15/ext/type_traits.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x25 # Included from line number 37
+ .uleb128 0x38 # file /usr/include/c++/15/ext/type_traits.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1440 # The macro: "_EXT_TYPE_TRAITS 1"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro30
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro31
+ .byte 0x4 # End file
+ .file 57 "/usr/include/c++/15/bits/stl_uninitialized.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x47 # Included from line number 71
+ .uleb128 0x39 # file /usr/include/c++/15/bits/stl_uninitialized.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1452 # The macro: "_STL_UNINITIALIZED_H 1"
+ .file 58 "/usr/include/c++/15/bits/ptr_traits.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3d # Included from line number 61
+ .uleb128 0x3a # file /usr/include/c++/15/bits/ptr_traits.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1453 # The macro: "_PTR_TRAITS_H 1"
+ .byte 0x4 # End file
+ .file 59 "/usr/include/c++/15/bits/stl_algobase.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3f # Included from line number 63
+ .uleb128 0x3b # file /usr/include/c++/15/bits/stl_algobase.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1454 # The macro: "_STL_ALGOBASE_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x43 # Included from line number 67
+ .uleb128 0xd # file /usr/include/c++/15/bits/stl_iterator.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro32
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x45 # Included from line number 69
+ .uleb128 0x5 # file /usr/include/c++/15/debug/debug.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro33
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x47 # Included from line number 71
+ .uleb128 0xc # file /usr/include/c++/15/bits/predefined_ops.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1480 # The macro: "_GLIBCXX_PREDEFINED_OPS_H 1"
+ .byte 0x4 # End file
+ .file 60 "/usr/include/c++/15/bit"
+ .byte 0x3 # Start new file
+ .uleb128 0x4c # Included from line number 76
+ .uleb128 0x3c # file /usr/include/c++/15/bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1481 # The macro: "_GLIBCXX_BIT 1"
+ .file 61 "/usr/include/c++/15/concepts"
+ .byte 0x3 # Start new file
+ .uleb128 0x26 # Included from line number 38
+ .uleb128 0x3d # file /usr/include/c++/15/concepts
+ .byte 0x7 # Import
+ .long .Ldebug_macro34
+ .byte 0x3 # Start new file
+ .uleb128 0x26 # Included from line number 38
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro28
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro35
+ .byte 0x3 # Start new file
+ .uleb128 0x3f # Included from line number 63
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro28
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro36
+ .byte 0x4 # End file
+ .file 62 "/usr/include/c++/15/ext/alloc_traits.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x45 # Included from line number 69
+ .uleb128 0x3e # file /usr/include/c++/15/ext/alloc_traits.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1495 # The macro: "_EXT_ALLOC_TRAITS_H 1"
+ .file 63 "/usr/include/c++/15/bits/alloc_traits.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x24 # Included from line number 36
+ .uleb128 0x3f # file /usr/include/c++/15/bits/alloc_traits.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1496 # The macro: "_ALLOC_TRAITS_H 1"
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 64 "/usr/include/c++/15/bits/stl_raw_storage_iter.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x48 # Included from line number 72
+ .uleb128 0x40 # file /usr/include/c++/15/bits/stl_raw_storage_iter.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1497 # The macro: "_STL_RAW_STORAGE_ITERATOR_H 1"
+ .byte 0x4 # End file
+ .file 65 "/usr/include/c++/15/bits/align.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x4c # Included from line number 76
+ .uleb128 0x41 # file /usr/include/c++/15/bits/align.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1498 # The macro: "_GLIBCXX_ALIGN_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x23 # Included from line number 35
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro28
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x4d # Included from line number 77
+ .uleb128 0x6 # file /usr/include/c++/15/bits/uses_allocator.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1499 # The macro: "_USES_ALLOCATOR_H 1"
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x50 # Included from line number 80
+ .uleb128 0x1 # file /usr/include/c++/15/bits/unique_ptr.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20 # At line number 32
+ .long .LASF1500 # The macro: "_UNIQUE_PTR_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x25 # Included from line number 37
+ .uleb128 0x3 # file /usr/include/c++/15/tuple
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1501 # The macro: "_GLIBCXX_TUPLE 1"
+ .file 66 "/usr/include/c++/15/bits/invoke.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2b # Included from line number 43
+ .uleb128 0x42 # file /usr/include/c++/15/bits/invoke.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1502 # The macro: "_GLIBCXX_INVOKE_H 1"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro37
+ .byte 0x3 # Start new file
+ .uleb128 0x39 # Included from line number 57
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro38
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro39
+ .byte 0x4 # End file
+ .file 67 "/usr/include/c++/15/bits/stl_function.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x26 # Included from line number 38
+ .uleb128 0x43 # file /usr/include/c++/15/bits/stl_function.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1516 # The macro: "_STL_FUNCTION_H 1"
+ .file 68 "/usr/include/c++/15/backward/binders.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x5a1 # Included from line number 1441
+ .uleb128 0x44 # file /usr/include/c++/15/backward/binders.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1517 # The macro: "_BACKWARD_BINDERS_H 1"
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 69 "/usr/include/c++/15/bits/functional_hash.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x27 # Included from line number 39
+ .uleb128 0x45 # file /usr/include/c++/15/bits/functional_hash.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1518 # The macro: "_FUNCTIONAL_HASH_H 1"
+ .file 70 "/usr/include/c++/15/bits/hash_bytes.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x26 # Included from line number 38
+ .uleb128 0x46 # file /usr/include/c++/15/bits/hash_bytes.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1519 # The macro: "_HASH_BYTES_H 1"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro40
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 71 "/usr/include/c++/15/bits/shared_ptr.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x52 # Included from line number 82
+ .uleb128 0x47 # file /usr/include/c++/15/bits/shared_ptr.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x32 # At line number 50
+ .long .LASF1522 # The macro: "_SHARED_PTR_H 1"
+ .file 72 "/usr/include/c++/15/iosfwd"
+ .byte 0x3 # Start new file
+ .uleb128 0x34 # Included from line number 52
+ .uleb128 0x48 # file /usr/include/c++/15/iosfwd
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22 # At line number 34
+ .long .LASF1523 # The macro: "_GLIBCXX_IOSFWD 1"
+ .file 73 "/usr/include/c++/15/bits/requires_hosted.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x28 # Included from line number 40
+ .uleb128 0x49 # file /usr/include/c++/15/bits/requires_hosted.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1d # At line number 29
+ .long .LASF1524 # The macro: "_REQUIRES_FREESTANDING_H 1"
+ .byte 0x4 # End file
+ .file 74 "/usr/include/c++/15/bits/stringfwd.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2b # Included from line number 43
+ .uleb128 0x4a # file /usr/include/c++/15/bits/stringfwd.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23 # At line number 35
+ .long .LASF1525 # The macro: "_STRINGFWD_H 1"
+ .byte 0x4 # End file
+ .file 75 "/usr/include/c++/15/bits/postypes.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2c # Included from line number 44
+ .uleb128 0x4b # file /usr/include/c++/15/bits/postypes.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24 # At line number 36
+ .long .LASF1526 # The macro: "_GLIBCXX_POSTYPES_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x2a # Included from line number 42
+ .uleb128 0x8 # file /usr/include/c++/15/cwchar
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF1527 # The macro: "_GLIBCXX_CWCHAR 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x31 # Included from line number 49
+ .uleb128 0x14 # file /usr/include/wchar.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro41
+ .file 76 "/usr/include/bits/libc-header-start.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x1b # Included from line number 27
+ .uleb128 0x4c # file /usr/include/bits/libc-header-start.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro42
+ .byte 0x4 # End file
+ .file 77 "/usr/include/bits/floatn.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x1e # Included from line number 30
+ .uleb128 0x4d # file /usr/include/bits/floatn.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro43
+ .file 78 "/usr/include/bits/floatn-common.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x83 # Included from line number 131
+ .uleb128 0x4e # file /usr/include/bits/floatn-common.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x15 # At line number 21
+ .long .LASF1552 # The macro: "_BITS_FLOATN_COMMON_H "
+ .byte 0x3 # Start new file
+ .uleb128 0x18 # Included from line number 24
+ .uleb128 0x22 # file /usr/include/bits/long-double.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x15 # At line number 21
+ .long .LASF719 # The macro: "__LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro44
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro45
+ .byte 0x3 # Start new file
+ .uleb128 0x23 # Included from line number 35
+ .uleb128 0xe # file /usr/lib/gcc/x86_64-redhat-linux/15/include/stddef.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro46
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25 # At line number 37
+ .long .LASF1617 # The macro: "__need___va_list "
+ .file 79 "/usr/lib/gcc/x86_64-redhat-linux/15/include/stdarg.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x26 # Included from line number 38
+ .uleb128 0x4f # file /usr/lib/gcc/x86_64-redhat-linux/15/include/stdarg.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro47
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c # At line number 44
+ .long .LASF1620 # The macro: "_VA_LIST_DEFINED "
+ .file 80 "/usr/include/bits/wchar.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x33 # Included from line number 51
+ .uleb128 0x50 # file /usr/include/bits/wchar.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro48
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x34 # Included from line number 52
+ .uleb128 0x10 # file /usr/include/bits/types/wint_t.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro49
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x35 # Included from line number 53
+ .uleb128 0x12 # file /usr/include/bits/types/mbstate_t.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1626 # The macro: "__mbstate_t_defined 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x4 # Included from line number 4
+ .uleb128 0x11 # file /usr/include/bits/types/__mbstate_t.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1627 # The macro: "____mbstate_t_defined 1"
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x36 # Included from line number 54
+ .uleb128 0x13 # file /usr/include/bits/types/__FILE.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1628 # The macro: "____FILE_defined 1"
+ .byte 0x4 # End file
+ .file 81 "/usr/include/bits/types/FILE.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x39 # Included from line number 57
+ .uleb128 0x51 # file /usr/include/bits/types/FILE.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1629 # The macro: "__FILE_defined 1"
+ .byte 0x4 # End file
+ .file 82 "/usr/include/bits/types/locale_t.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3c # Included from line number 60
+ .uleb128 0x52 # file /usr/include/bits/types/locale_t.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1630 # The macro: "_BITS_TYPES_LOCALE_T_H 1"
+ .file 83 "/usr/include/bits/types/__locale_t.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x16 # Included from line number 22
+ .uleb128 0x53 # file /usr/include/bits/types/__locale_t.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1631 # The macro: "_BITS_TYPES___LOCALE_T_H 1"
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro50
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro51
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x35 # Included from line number 53
+ .uleb128 0xa # file /usr/include/c++/15/bits/shared_ptr_base.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x32 # At line number 50
+ .long .LASF1696 # The macro: "_SHARED_PTR_BASE_H 1"
+ .file 84 "/usr/include/c++/15/typeinfo"
+ .byte 0x3 # Start new file
+ .uleb128 0x34 # Included from line number 52
+ .uleb128 0x54 # file /usr/include/c++/15/typeinfo
+ .byte 0x7 # Import
+ .long .Ldebug_macro52
+ .byte 0x3 # Start new file
+ .uleb128 0x2a # Included from line number 42
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro53
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro54
+ .byte 0x4 # End file
+ .file 85 "/usr/include/c++/15/bits/allocated_ptr.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x35 # Included from line number 53
+ .uleb128 0x55 # file /usr/include/c++/15/bits/allocated_ptr.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1701 # The macro: "_ALLOCATED_PTR_H 1"
+ .byte 0x4 # End file
+ .file 86 "/usr/include/c++/15/bits/refwrap.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x39 # Included from line number 57
+ .uleb128 0x56 # file /usr/include/c++/15/bits/refwrap.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro55
+ .byte 0x4 # End file
+ .file 87 "/usr/include/c++/15/ext/aligned_buffer.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3c # Included from line number 60
+ .uleb128 0x57 # file /usr/include/c++/15/ext/aligned_buffer.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1707 # The macro: "_ALIGNED_BUFFER_H 1"
+ .byte 0x4 # End file
+ .file 88 "/usr/include/c++/15/ext/atomicity.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3d # Included from line number 61
+ .uleb128 0x58 # file /usr/include/c++/15/ext/atomicity.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1708 # The macro: "_GLIBCXX_ATOMICITY_H 1"
+ .file 89 "/usr/include/c++/15/x86_64-redhat-linux/bits/gthr.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x25 # Included from line number 37
+ .uleb128 0x59 # file /usr/include/c++/15/x86_64-redhat-linux/bits/gthr.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1b # At line number 27
+ .long .LASF1709 # The macro: "_GLIBCXX_GCC_GTHR_H "
+ .file 90 "/usr/include/c++/15/x86_64-redhat-linux/bits/gthr-default.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x9d # Included from line number 157
+ .uleb128 0x5a # file /usr/include/c++/15/x86_64-redhat-linux/bits/gthr-default.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro56
+ .file 91 "/usr/include/pthread.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x23 # Included from line number 35
+ .uleb128 0x5b # file /usr/include/pthread.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13 # At line number 19
+ .long .LASF1713 # The macro: "_PTHREAD_H 1"
+ .file 92 "/usr/include/sched.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x16 # Included from line number 22
+ .uleb128 0x5c # file /usr/include/sched.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1714 # The macro: "_SCHED_H 1"
+ .file 93 "/usr/include/bits/types.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x19 # Included from line number 25
+ .uleb128 0x5d # file /usr/include/bits/types.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18 # At line number 24
+ .long .LASF1715 # The macro: "_BITS_TYPES_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x1b # Included from line number 27
+ .uleb128 0x1c # file /usr/include/bits/wordsize.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro4
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x1c # Included from line number 28
+ .uleb128 0x20 # file /usr/include/bits/timesize.h
+ .byte 0x3 # Start new file
+ .uleb128 0x13 # Included from line number 19
+ .uleb128 0x1c # file /usr/include/bits/wordsize.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro4
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a # At line number 26
+ .long .LASF638 # The macro: "__TIMESIZE __WORDSIZE"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro57
+ .file 94 "/usr/include/bits/typesizes.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x8d # Included from line number 141
+ .uleb128 0x5e # file /usr/include/bits/typesizes.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro58
+ .byte 0x4 # End file
+ .file 95 "/usr/include/bits/time64.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x8e # Included from line number 142
+ .uleb128 0x5f # file /usr/include/bits/time64.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro59
+ .byte 0x4 # End file
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe2 # At line number 226
+ .long .LASF1775 # The macro: "__STD_TYPE"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro60
+ .byte 0x3 # Start new file
+ .uleb128 0x1d # Included from line number 29
+ .uleb128 0xe # file /usr/lib/gcc/x86_64-redhat-linux/15/include/stddef.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro61
+ .byte 0x4 # End file
+ .file 96 "/usr/include/bits/types/time_t.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x1f # Included from line number 31
+ .uleb128 0x60 # file /usr/include/bits/types/time_t.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1776 # The macro: "__time_t_defined 1"
+ .byte 0x4 # End file
+ .file 97 "/usr/include/bits/types/struct_timespec.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x20 # Included from line number 32
+ .uleb128 0x61 # file /usr/include/bits/types/struct_timespec.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3 # At line number 3
+ .long .LASF1777 # The macro: "_STRUCT_TIMESPEC 1"
+ .file 98 "/usr/include/bits/endian.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x6 # Included from line number 6
+ .uleb128 0x62 # file /usr/include/bits/endian.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro62
+ .file 99 "/usr/include/bits/endianness.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x23 # Included from line number 35
+ .uleb128 0x63 # file /usr/include/bits/endianness.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro63
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro64
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27 # At line number 39
+ .long .LASF1786 # The macro: "__pid_t_defined "
+ .file 100 "/usr/include/bits/sched.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2b # Included from line number 43
+ .uleb128 0x64 # file /usr/include/bits/sched.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro65
+ .file 101 "/usr/include/linux/sched/types.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x3f # Included from line number 63
+ .uleb128 0x65 # file /usr/include/linux/sched/types.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3 # At line number 3
+ .long .LASF1808 # The macro: "_LINUX_SCHED_TYPES_H "
+ .file 102 "/usr/include/linux/types.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x5 # Included from line number 5
+ .uleb128 0x66 # file /usr/include/linux/types.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3 # At line number 3
+ .long .LASF1809 # The macro: "_LINUX_TYPES_H "
+ .file 103 "/usr/include/asm/types.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x5 # Included from line number 5
+ .uleb128 0x67 # file /usr/include/asm/types.h
+ .file 104 "/usr/include/asm-generic/types.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x1 # Included from line number 1
+ .uleb128 0x68 # file /usr/include/asm-generic/types.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3 # At line number 3
+ .long .LASF1810 # The macro: "_ASM_GENERIC_TYPES_H "
+ .file 105 "/usr/include/asm-generic/int-ll64.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x7 # Included from line number 7
+ .uleb128 0x69 # file /usr/include/asm-generic/int-ll64.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa # At line number 10
+ .long .LASF1811 # The macro: "_ASM_GENERIC_INT_LL64_H "
+ .file 106 "/usr/include/asm/bitsperlong.h"
+ .byte 0x3 # Start new file
+ .uleb128 0xc # Included from line number 12
+ .uleb128 0x6a # file /usr/include/asm/bitsperlong.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro66
+ .file 107 "/usr/include/asm-generic/bitsperlong.h"
+ .byte 0x3 # Start new file
+ .uleb128 0xb # Included from line number 11
+ .uleb128 0x6b # file /usr/include/asm-generic/bitsperlong.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro67
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 108 "/usr/include/linux/posix_types.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x9 # Included from line number 9
+ .uleb128 0x6c # file /usr/include/linux/posix_types.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3 # At line number 3
+ .long .LASF1816 # The macro: "_LINUX_POSIX_TYPES_H "
+ .file 109 "/usr/include/linux/stddef.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x5 # Included from line number 5
+ .uleb128 0x6d # file /usr/include/linux/stddef.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro68
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro69
+ .file 110 "/usr/include/asm/posix_types.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x24 # Included from line number 36
+ .uleb128 0x6e # file /usr/include/asm/posix_types.h
+ .file 111 "/usr/include/asm/posix_types_64.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x7 # Included from line number 7
+ .uleb128 0x6f # file /usr/include/asm/posix_types_64.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro70
+ .file 112 "/usr/include/asm-generic/posix_types.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x12 # Included from line number 18
+ .uleb128 0x70 # file /usr/include/asm-generic/posix_types.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3 # At line number 3
+ .long .LASF1828 # The macro: "__ASM_GENERIC_POSIX_TYPES_H "
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro71
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro72
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro73
+ .file 113 "/usr/include/bits/types/struct_sched_param.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x7e # Included from line number 126
+ .uleb128 0x71 # file /usr/include/bits/types/struct_sched_param.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1864 # The macro: "_BITS_TYPES_STRUCT_SCHED_PARAM 1"
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 114 "/usr/include/bits/cpu-set.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2c # Included from line number 44
+ .uleb128 0x72 # file /usr/include/bits/cpu-set.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro74
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro75
+ .byte 0x4 # End file
+ .file 115 "/usr/include/time.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x17 # Included from line number 23
+ .uleb128 0x73 # file /usr/include/time.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro76
+ .byte 0x3 # Start new file
+ .uleb128 0x1d # Included from line number 29
+ .uleb128 0xe # file /usr/lib/gcc/x86_64-redhat-linux/15/include/stddef.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro61
+ .byte 0x4 # End file
+ .file 116 "/usr/include/bits/time.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x21 # Included from line number 33
+ .uleb128 0x74 # file /usr/include/bits/time.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro77
+ .file 117 "/usr/include/bits/timex.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x49 # Included from line number 73
+ .uleb128 0x75 # file /usr/include/bits/timex.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13 # At line number 19
+ .long .LASF1919 # The macro: "_BITS_TIMEX_H 1"
+ .file 118 "/usr/include/bits/types/struct_timeval.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x16 # Included from line number 22
+ .uleb128 0x76 # file /usr/include/bits/types/struct_timeval.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1920 # The macro: "__timeval_defined 1"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro78
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 119 "/usr/include/bits/types/clock_t.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x25 # Included from line number 37
+ .uleb128 0x77 # file /usr/include/bits/types/clock_t.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1962 # The macro: "__clock_t_defined 1"
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x27 # Included from line number 39
+ .uleb128 0x15 # file /usr/include/bits/types/struct_tm.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1963 # The macro: "__struct_tm_defined 1"
+ .byte 0x4 # End file
+ .file 120 "/usr/include/bits/types/clockid_t.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2e # Included from line number 46
+ .uleb128 0x78 # file /usr/include/bits/types/clockid_t.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1964 # The macro: "__clockid_t_defined 1"
+ .byte 0x4 # End file
+ .file 121 "/usr/include/bits/types/timer_t.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2f # Included from line number 47
+ .uleb128 0x79 # file /usr/include/bits/types/timer_t.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1965 # The macro: "__timer_t_defined 1"
+ .byte 0x4 # End file
+ .file 122 "/usr/include/bits/types/struct_itimerspec.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x30 # Included from line number 48
+ .uleb128 0x7a # file /usr/include/bits/types/struct_itimerspec.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1966 # The macro: "__itimerspec_defined 1"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro79
+ .byte 0x4 # End file
+ .file 123 "/usr/include/bits/pthreadtypes.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x1a # Included from line number 26
+ .uleb128 0x7b # file /usr/include/bits/pthreadtypes.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1969 # The macro: "_BITS_PTHREADTYPES_COMMON_H 1"
+ .file 124 "/usr/include/bits/thread-shared-types.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x17 # Included from line number 23
+ .uleb128 0x7c # file /usr/include/bits/thread-shared-types.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1970 # The macro: "_THREAD_SHARED_TYPES_H 1"
+ .file 125 "/usr/include/bits/pthreadtypes-arch.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2c # Included from line number 44
+ .uleb128 0x7d # file /usr/include/bits/pthreadtypes-arch.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13 # At line number 19
+ .long .LASF1971 # The macro: "_BITS_PTHREADTYPES_ARCH_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x15 # Included from line number 21
+ .uleb128 0x1c # file /usr/include/bits/wordsize.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro4
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro80
+ .byte 0x4 # End file
+ .file 126 "/usr/include/bits/atomic_wide_counter.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x2e # Included from line number 46
+ .uleb128 0x7e # file /usr/include/bits/atomic_wide_counter.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1983 # The macro: "_BITS_ATOMIC_WIDE_COUNTER_H "
+ .byte 0x4 # End file
+ .file 127 "/usr/include/bits/struct_mutex.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x4c # Included from line number 76
+ .uleb128 0x7f # file /usr/include/bits/struct_mutex.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro81
+ .byte 0x4 # End file
+ .file 128 "/usr/include/bits/struct_rwlock.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x59 # Included from line number 89
+ .uleb128 0x80 # file /usr/include/bits/struct_rwlock.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro82
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0x72 # At line number 114
+ .long .LASF1990 # The macro: "__ONCE_FLAG_INIT { 0 }"
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3f # At line number 63
+ .long .LASF1991 # The macro: "__have_pthread_attr_t 1"
+ .byte 0x4 # End file
+ .file 129 "/usr/include/bits/setjmp.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x1b # Included from line number 27
+ .uleb128 0x81 # file /usr/include/bits/setjmp.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1992 # The macro: "_BITS_SETJMP_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x1a # Included from line number 26
+ .uleb128 0x1c # file /usr/include/bits/wordsize.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro4
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x1c # Included from line number 28
+ .uleb128 0x1c # file /usr/include/bits/wordsize.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro4
+ .byte 0x4 # End file
+ .file 130 "/usr/include/bits/types/__sigset_t.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x1e # Included from line number 30
+ .uleb128 0x82 # file /usr/include/bits/types/__sigset_t.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro83
+ .byte 0x4 # End file
+ .file 131 "/usr/include/bits/types/struct___jmp_buf_tag.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x1f # Included from line number 31
+ .uleb128 0x83 # file /usr/include/bits/types/struct___jmp_buf_tag.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1995 # The macro: "__jmp_buf_tag_defined 1"
+ .byte 0x4 # End file
+ .file 132 "/usr/include/bits/pthread_stack_min-dynamic.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x21 # Included from line number 33
+ .uleb128 0x84 # file /usr/include/bits/pthread_stack_min-dynamic.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro84
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro85
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro86
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 133 "/usr/include/c++/15/x86_64-redhat-linux/bits/atomic_word.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x26 # Included from line number 38
+ .uleb128 0x85 # file /usr/include/c++/15/x86_64-redhat-linux/bits/atomic_word.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro87
+ .byte 0x4 # End file
+ .file 134 "/usr/include/sys/single_threaded.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x28 # Included from line number 40
+ .uleb128 0x86 # file /usr/include/sys/single_threaded.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF2043 # The macro: "_SYS_SINGLE_THREADED_H "
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0x3e # Included from line number 62
+ .uleb128 0x18 # file /usr/include/c++/15/ext/concurrence.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF2044 # The macro: "_CONCURRENCE_H 1"
+ .file 135 "/usr/include/c++/15/exception"
+ .byte 0x3 # Start new file
+ .uleb128 0x24 # Included from line number 36
+ .uleb128 0x87 # file /usr/include/c++/15/exception
+ .byte 0x7 # Import
+ .long .Ldebug_macro88
+ .byte 0x3 # Start new file
+ .uleb128 0x29 # Included from line number 41
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro89
+ .byte 0x4 # End file
+ .byte 0x3 # Start new file
+ .uleb128 0xa8 # Included from line number 168
+ .uleb128 0x9 # file /usr/include/c++/15/bits/exception_ptr.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20 # At line number 32
+ .long .LASF2048 # The macro: "_EXCEPTION_PTR_H "
+ .file 136 "/usr/include/c++/15/bits/cxxabi_init_exception.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x24 # Included from line number 36
+ .uleb128 0x88 # file /usr/include/c++/15/bits/cxxabi_init_exception.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20 # At line number 32
+ .long .LASF2049 # The macro: "_CXXABI_INIT_EXCEPTION_H 1"
+ .byte 0x3 # Start new file
+ .uleb128 0x28 # Included from line number 40
+ .uleb128 0xe # file /usr/lib/gcc/x86_64-redhat-linux/15/include/stddef.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro90
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro91
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro92
+ .byte 0x4 # End file
+ .file 137 "/usr/include/c++/15/bits/nested_exception.h"
+ .byte 0x3 # Start new file
+ .uleb128 0xa9 # Included from line number 169
+ .uleb128 0x89 # file /usr/include/c++/15/bits/nested_exception.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF2072 # The macro: "_GLIBCXX_NESTED_EXCEPTION_H 1"
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .file 138 "/usr/include/c++/15/bits/shared_ptr_atomic.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x53 # Included from line number 83
+ .uleb128 0x8a # file /usr/include/c++/15/bits/shared_ptr_atomic.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF2073 # The macro: "_SHARED_PTR_ATOMIC_H 1"
+ .file 139 "/usr/include/c++/15/bits/atomic_base.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x21 # Included from line number 33
+ .uleb128 0x8b # file /usr/include/c++/15/bits/atomic_base.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF2074 # The macro: "_GLIBCXX_ATOMIC_BASE_H 1"
+ .file 140 "/usr/include/c++/15/bits/atomic_lockfree_defines.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x27 # Included from line number 39
+ .uleb128 0x8c # file /usr/include/c++/15/bits/atomic_lockfree_defines.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro93
+ .byte 0x4 # End file
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f # At line number 47
+ .long .LASF2086 # The macro: "_GLIBCXX_ALWAYS_INLINE inline __attribute__((__always_inline__))"
+ .byte 0x3 # Start new file
+ .uleb128 0x32 # Included from line number 50
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro94
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro95
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro96
+ .byte 0x4 # End file
+ .file 141 "/usr/include/c++/15/backward/auto_ptr.h"
+ .byte 0x3 # Start new file
+ .uleb128 0x58 # Included from line number 88
+ .uleb128 0x8d # file /usr/include/c++/15/backward/auto_ptr.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF2098 # The macro: "_BACKWARD_AUTO_PTR_H 1"
+ .byte 0x4 # End file
+ .byte 0x7 # Import
+ .long .Ldebug_macro97
+ .byte 0x3 # Start new file
+ .uleb128 0x75 # Included from line number 117
+ .uleb128 0x2b # file /usr/include/c++/15/bits/version.h
+ .byte 0x7 # Import
+ .long .Ldebug_macro98
+ .byte 0x4 # End file
+ .file 142 "/usr/include/c++/15/pstl/glue_memory_defs.h"
+ .byte 0x3 # Start new file
+ .uleb128 0xad # Included from line number 173
+ .uleb128 0x8e # file /usr/include/c++/15/pstl/glue_memory_defs.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb # At line number 11
+ .long .LASF2124 # The macro: "_PSTL_GLUE_MEMORY_DEFS_H "
+ .byte 0x3 # Start new file
+ .uleb128 0xd # Included from line number 13
+ .uleb128 0x16 # file /usr/include/c++/15/pstl/execution_defs.h
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb # At line number 11
+ .long .LASF2125 # The macro: "_PSTL_EXECUTION_POLICY_DEFS_H "
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0x4 # End file
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.0.6d6edf9739a27cf28f5b627df695fc9e,comdat
+.Ldebug_macro2:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF2 # The macro: "__STDC__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF3 # The macro: "__cplusplus 201703L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF4 # The macro: "__STDC_UTF_16__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF5 # The macro: "__STDC_UTF_32__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF6 # The macro: "__STDC_HOSTED__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF7 # The macro: "__STDC_EMBED_NOT_FOUND__ 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF8 # The macro: "__STDC_EMBED_FOUND__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF9 # The macro: "__STDC_EMBED_EMPTY__ 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF10 # The macro: "__GNUC__ 15"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF11 # The macro: "__GNUC_MINOR__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF12 # The macro: "__GNUC_PATCHLEVEL__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF13 # The macro: "__VERSION__ "15.1.1 20250425 (Red Hat 15.1.1-1)""
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF14 # The macro: "__GNUC_RH_RELEASE__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF15 # The macro: "__ATOMIC_RELAXED 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF16 # The macro: "__ATOMIC_SEQ_CST 5"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF17 # The macro: "__ATOMIC_ACQUIRE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF18 # The macro: "__ATOMIC_RELEASE 3"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF19 # The macro: "__ATOMIC_ACQ_REL 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF20 # The macro: "__ATOMIC_CONSUME 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF21 # The macro: "__OPTIMIZE__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF22 # The macro: "__FINITE_MATH_ONLY__ 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF23 # The macro: "_LP64 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF24 # The macro: "__LP64__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF25 # The macro: "__SIZEOF_INT__ 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF26 # The macro: "__SIZEOF_LONG__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF27 # The macro: "__SIZEOF_LONG_LONG__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF28 # The macro: "__SIZEOF_SHORT__ 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF29 # The macro: "__SIZEOF_FLOAT__ 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF30 # The macro: "__SIZEOF_DOUBLE__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF31 # The macro: "__SIZEOF_LONG_DOUBLE__ 16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF32 # The macro: "__SIZEOF_SIZE_T__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF33 # The macro: "__CHAR_BIT__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF34 # The macro: "__BIGGEST_ALIGNMENT__ 16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF35 # The macro: "__ORDER_LITTLE_ENDIAN__ 1234"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF36 # The macro: "__ORDER_BIG_ENDIAN__ 4321"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF37 # The macro: "__ORDER_PDP_ENDIAN__ 3412"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF38 # The macro: "__BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF39 # The macro: "__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF40 # The macro: "__SIZEOF_POINTER__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF41 # The macro: "__GNUC_EXECUTION_CHARSET_NAME "UTF-8""
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF42 # The macro: "__GNUC_WIDE_EXECUTION_CHARSET_NAME "UTF-32LE""
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF43 # The macro: "__GNUG__ 15"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF44 # The macro: "__SIZE_TYPE__ long unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF45 # The macro: "__PTRDIFF_TYPE__ long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF46 # The macro: "__WCHAR_TYPE__ int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF47 # The macro: "__WINT_TYPE__ unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF48 # The macro: "__INTMAX_TYPE__ long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF49 # The macro: "__UINTMAX_TYPE__ long unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF50 # The macro: "__CHAR16_TYPE__ short unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF51 # The macro: "__CHAR32_TYPE__ unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF52 # The macro: "__SIG_ATOMIC_TYPE__ int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF53 # The macro: "__INT8_TYPE__ signed char"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF54 # The macro: "__INT16_TYPE__ short int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF55 # The macro: "__INT32_TYPE__ int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF56 # The macro: "__INT64_TYPE__ long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF57 # The macro: "__UINT8_TYPE__ unsigned char"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF58 # The macro: "__UINT16_TYPE__ short unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF59 # The macro: "__UINT32_TYPE__ unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF60 # The macro: "__UINT64_TYPE__ long unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF61 # The macro: "__INT_LEAST8_TYPE__ signed char"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF62 # The macro: "__INT_LEAST16_TYPE__ short int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF63 # The macro: "__INT_LEAST32_TYPE__ int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF64 # The macro: "__INT_LEAST64_TYPE__ long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF65 # The macro: "__UINT_LEAST8_TYPE__ unsigned char"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF66 # The macro: "__UINT_LEAST16_TYPE__ short unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF67 # The macro: "__UINT_LEAST32_TYPE__ unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF68 # The macro: "__UINT_LEAST64_TYPE__ long unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF69 # The macro: "__INT_FAST8_TYPE__ signed char"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF70 # The macro: "__INT_FAST16_TYPE__ long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF71 # The macro: "__INT_FAST32_TYPE__ long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF72 # The macro: "__INT_FAST64_TYPE__ long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF73 # The macro: "__UINT_FAST8_TYPE__ unsigned char"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF74 # The macro: "__UINT_FAST16_TYPE__ long unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF75 # The macro: "__UINT_FAST32_TYPE__ long unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF76 # The macro: "__UINT_FAST64_TYPE__ long unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF77 # The macro: "__INTPTR_TYPE__ long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF78 # The macro: "__UINTPTR_TYPE__ long unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF79 # The macro: "__GXX_WEAK__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF80 # The macro: "__DEPRECATED 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF81 # The macro: "__GXX_RTTI 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF82 # The macro: "__cpp_rtti 199711L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF83 # The macro: "__GXX_EXPERIMENTAL_CXX0X__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF84 # The macro: "__GXX_CONSTEXPR_ASM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF85 # The macro: "__cpp_binary_literals 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF86 # The macro: "__cpp_hex_float 201603L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF87 # The macro: "__cpp_runtime_arrays 198712L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF88 # The macro: "__cpp_raw_strings 200710L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF89 # The macro: "__cpp_unicode_literals 200710L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF90 # The macro: "__cpp_user_defined_literals 200809L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF91 # The macro: "__cpp_lambdas 200907L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF92 # The macro: "__cpp_decltype 200707L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF93 # The macro: "__cpp_attributes 200809L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF94 # The macro: "__cpp_rvalue_reference 200610L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF95 # The macro: "__cpp_rvalue_references 200610L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF96 # The macro: "__cpp_variadic_templates 200704L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF97 # The macro: "__cpp_initializer_lists 200806L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF98 # The macro: "__cpp_delegating_constructors 200604L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF99 # The macro: "__cpp_nsdmi 200809L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF100 # The macro: "__cpp_inheriting_constructors 201511L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF101 # The macro: "__cpp_ref_qualifiers 200710L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF102 # The macro: "__cpp_alias_templates 200704L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF103 # The macro: "__cpp_return_type_deduction 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF104 # The macro: "__cpp_init_captures 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF105 # The macro: "__cpp_generic_lambdas 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF106 # The macro: "__cpp_decltype_auto 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF107 # The macro: "__cpp_aggregate_nsdmi 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF108 # The macro: "__cpp_variable_templates 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF109 # The macro: "__cpp_digit_separators 201309L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF110 # The macro: "__cpp_unicode_characters 201411L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF111 # The macro: "__cpp_static_assert 201411L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF112 # The macro: "__cpp_namespace_attributes 201411L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF113 # The macro: "__cpp_enumerator_attributes 201411L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF114 # The macro: "__cpp_nested_namespace_definitions 201411L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF115 # The macro: "__cpp_fold_expressions 201603L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF116 # The macro: "__cpp_nontype_template_args 201411L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF117 # The macro: "__cpp_range_based_for 201603L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF118 # The macro: "__cpp_constexpr 201603L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF119 # The macro: "__cpp_if_constexpr 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF120 # The macro: "__cpp_capture_star_this 201603L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF121 # The macro: "__cpp_inline_variables 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF122 # The macro: "__cpp_aggregate_bases 201603L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF123 # The macro: "__cpp_deduction_guides 201703L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF124 # The macro: "__cpp_noexcept_function_type 201510L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF125 # The macro: "__cpp_template_auto 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF126 # The macro: "__cpp_structured_bindings 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF127 # The macro: "__cpp_variadic_using 201611L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF128 # The macro: "__cpp_guaranteed_copy_elision 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF129 # The macro: "__cpp_nontype_template_parameter_auto 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF130 # The macro: "__cpp_sized_deallocation 201309L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF131 # The macro: "__cpp_aligned_new 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF132 # The macro: "__STDCPP_DEFAULT_NEW_ALIGNMENT__ 16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF133 # The macro: "__cpp_template_template_args 201611L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF134 # The macro: "__cpp_threadsafe_static_init 200806L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF135 # The macro: "__STDCPP_THREADS__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF136 # The macro: "__EXCEPTIONS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF137 # The macro: "__cpp_exceptions 199711L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF138 # The macro: "__GXX_ABI_VERSION 1020"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF139 # The macro: "__SCHAR_MAX__ 0x7f"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF140 # The macro: "__SHRT_MAX__ 0x7fff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF141 # The macro: "__INT_MAX__ 0x7fffffff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF142 # The macro: "__LONG_MAX__ 0x7fffffffffffffffL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF143 # The macro: "__LONG_LONG_MAX__ 0x7fffffffffffffffLL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF144 # The macro: "__WCHAR_MAX__ 0x7fffffff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF145 # The macro: "__WCHAR_MIN__ (-__WCHAR_MAX__ - 1)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF146 # The macro: "__WINT_MAX__ 0xffffffffU"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF147 # The macro: "__WINT_MIN__ 0U"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF148 # The macro: "__PTRDIFF_MAX__ 0x7fffffffffffffffL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF149 # The macro: "__SIZE_MAX__ 0xffffffffffffffffUL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF150 # The macro: "__SCHAR_WIDTH__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF151 # The macro: "__SHRT_WIDTH__ 16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF152 # The macro: "__INT_WIDTH__ 32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF153 # The macro: "__LONG_WIDTH__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF154 # The macro: "__LONG_LONG_WIDTH__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF155 # The macro: "__WCHAR_WIDTH__ 32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF156 # The macro: "__WINT_WIDTH__ 32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF157 # The macro: "__PTRDIFF_WIDTH__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF158 # The macro: "__SIZE_WIDTH__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF159 # The macro: "__GLIBCXX_TYPE_INT_N_0 __int128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF160 # The macro: "__GLIBCXX_BITSIZE_INT_N_0 128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF161 # The macro: "__INTMAX_MAX__ 0x7fffffffffffffffL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF162 # The macro: "__INTMAX_C(c) c ## L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF163 # The macro: "__UINTMAX_MAX__ 0xffffffffffffffffUL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF164 # The macro: "__UINTMAX_C(c) c ## UL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF165 # The macro: "__INTMAX_WIDTH__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF166 # The macro: "__SIG_ATOMIC_MAX__ 0x7fffffff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF167 # The macro: "__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF168 # The macro: "__SIG_ATOMIC_WIDTH__ 32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF169 # The macro: "__INT8_MAX__ 0x7f"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF170 # The macro: "__INT16_MAX__ 0x7fff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF171 # The macro: "__INT32_MAX__ 0x7fffffff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF172 # The macro: "__INT64_MAX__ 0x7fffffffffffffffL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF173 # The macro: "__UINT8_MAX__ 0xff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF174 # The macro: "__UINT16_MAX__ 0xffff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF175 # The macro: "__UINT32_MAX__ 0xffffffffU"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF176 # The macro: "__UINT64_MAX__ 0xffffffffffffffffUL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF177 # The macro: "__INT_LEAST8_MAX__ 0x7f"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF178 # The macro: "__INT8_C(c) c"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF179 # The macro: "__INT_LEAST8_WIDTH__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF180 # The macro: "__INT_LEAST16_MAX__ 0x7fff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF181 # The macro: "__INT16_C(c) c"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF182 # The macro: "__INT_LEAST16_WIDTH__ 16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF183 # The macro: "__INT_LEAST32_MAX__ 0x7fffffff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF184 # The macro: "__INT32_C(c) c"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF185 # The macro: "__INT_LEAST32_WIDTH__ 32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF186 # The macro: "__INT_LEAST64_MAX__ 0x7fffffffffffffffL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF187 # The macro: "__INT64_C(c) c ## L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF188 # The macro: "__INT_LEAST64_WIDTH__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF189 # The macro: "__UINT_LEAST8_MAX__ 0xff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF190 # The macro: "__UINT8_C(c) c"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF191 # The macro: "__UINT_LEAST16_MAX__ 0xffff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF192 # The macro: "__UINT16_C(c) c"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF193 # The macro: "__UINT_LEAST32_MAX__ 0xffffffffU"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF194 # The macro: "__UINT32_C(c) c ## U"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF195 # The macro: "__UINT_LEAST64_MAX__ 0xffffffffffffffffUL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF196 # The macro: "__UINT64_C(c) c ## UL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF197 # The macro: "__INT_FAST8_MAX__ 0x7f"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF198 # The macro: "__INT_FAST8_WIDTH__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF199 # The macro: "__INT_FAST16_MAX__ 0x7fffffffffffffffL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF200 # The macro: "__INT_FAST16_WIDTH__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF201 # The macro: "__INT_FAST32_MAX__ 0x7fffffffffffffffL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF202 # The macro: "__INT_FAST32_WIDTH__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF203 # The macro: "__INT_FAST64_MAX__ 0x7fffffffffffffffL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF204 # The macro: "__INT_FAST64_WIDTH__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF205 # The macro: "__UINT_FAST8_MAX__ 0xff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF206 # The macro: "__UINT_FAST16_MAX__ 0xffffffffffffffffUL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF207 # The macro: "__UINT_FAST32_MAX__ 0xffffffffffffffffUL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF208 # The macro: "__UINT_FAST64_MAX__ 0xffffffffffffffffUL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF209 # The macro: "__INTPTR_MAX__ 0x7fffffffffffffffL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF210 # The macro: "__INTPTR_WIDTH__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF211 # The macro: "__UINTPTR_MAX__ 0xffffffffffffffffUL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF212 # The macro: "__GCC_IEC_559 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF213 # The macro: "__GCC_IEC_559_COMPLEX 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF214 # The macro: "__FLT_EVAL_METHOD__ 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF215 # The macro: "__FLT_EVAL_METHOD_TS_18661_3__ 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF216 # The macro: "__DEC_EVAL_METHOD__ 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF217 # The macro: "__FLT_RADIX__ 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF218 # The macro: "__FLT_MANT_DIG__ 24"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF219 # The macro: "__FLT_DIG__ 6"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF220 # The macro: "__FLT_MIN_EXP__ (-125)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF221 # The macro: "__FLT_MIN_10_EXP__ (-37)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF222 # The macro: "__FLT_MAX_EXP__ 128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF223 # The macro: "__FLT_MAX_10_EXP__ 38"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF224 # The macro: "__FLT_DECIMAL_DIG__ 9"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF225 # The macro: "__FLT_MAX__ 3.40282346638528859811704183484516925e+38F"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF226 # The macro: "__FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF227 # The macro: "__FLT_MIN__ 1.17549435082228750796873653722224568e-38F"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF228 # The macro: "__FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF229 # The macro: "__FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF230 # The macro: "__FLT_HAS_DENORM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF231 # The macro: "__FLT_HAS_INFINITY__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF232 # The macro: "__FLT_HAS_QUIET_NAN__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF233 # The macro: "__FLT_IS_IEC_60559__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF234 # The macro: "__DBL_MANT_DIG__ 53"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF235 # The macro: "__DBL_DIG__ 15"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF236 # The macro: "__DBL_MIN_EXP__ (-1021)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF237 # The macro: "__DBL_MIN_10_EXP__ (-307)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF238 # The macro: "__DBL_MAX_EXP__ 1024"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF239 # The macro: "__DBL_MAX_10_EXP__ 308"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF240 # The macro: "__DBL_DECIMAL_DIG__ 17"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF241 # The macro: "__DBL_MAX__ double(1.79769313486231570814527423731704357e+308L)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF242 # The macro: "__DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF243 # The macro: "__DBL_MIN__ double(2.22507385850720138309023271733240406e-308L)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF244 # The macro: "__DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF245 # The macro: "__DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF246 # The macro: "__DBL_HAS_DENORM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF247 # The macro: "__DBL_HAS_INFINITY__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF248 # The macro: "__DBL_HAS_QUIET_NAN__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF249 # The macro: "__DBL_IS_IEC_60559__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF250 # The macro: "__LDBL_MANT_DIG__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF251 # The macro: "__LDBL_DIG__ 18"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF252 # The macro: "__LDBL_MIN_EXP__ (-16381)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF253 # The macro: "__LDBL_MIN_10_EXP__ (-4931)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF254 # The macro: "__LDBL_MAX_EXP__ 16384"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF255 # The macro: "__LDBL_MAX_10_EXP__ 4932"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF256 # The macro: "__DECIMAL_DIG__ 21"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF257 # The macro: "__LDBL_DECIMAL_DIG__ 21"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF258 # The macro: "__LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF259 # The macro: "__LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF260 # The macro: "__LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF261 # The macro: "__LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF262 # The macro: "__LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF263 # The macro: "__LDBL_HAS_DENORM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF264 # The macro: "__LDBL_HAS_INFINITY__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF265 # The macro: "__LDBL_HAS_QUIET_NAN__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF266 # The macro: "__LDBL_IS_IEC_60559__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF267 # The macro: "__FLT16_MANT_DIG__ 11"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF268 # The macro: "__FLT16_DIG__ 3"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF269 # The macro: "__FLT16_MIN_EXP__ (-13)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF270 # The macro: "__FLT16_MIN_10_EXP__ (-4)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF271 # The macro: "__FLT16_MAX_EXP__ 16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF272 # The macro: "__FLT16_MAX_10_EXP__ 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF273 # The macro: "__FLT16_DECIMAL_DIG__ 5"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF274 # The macro: "__FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF275 # The macro: "__FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF276 # The macro: "__FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF277 # The macro: "__FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF278 # The macro: "__FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF279 # The macro: "__FLT16_HAS_DENORM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF280 # The macro: "__FLT16_HAS_INFINITY__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF281 # The macro: "__FLT16_HAS_QUIET_NAN__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF282 # The macro: "__FLT16_IS_IEC_60559__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF283 # The macro: "__FLT32_MANT_DIG__ 24"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF284 # The macro: "__FLT32_DIG__ 6"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF285 # The macro: "__FLT32_MIN_EXP__ (-125)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF286 # The macro: "__FLT32_MIN_10_EXP__ (-37)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF287 # The macro: "__FLT32_MAX_EXP__ 128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF288 # The macro: "__FLT32_MAX_10_EXP__ 38"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF289 # The macro: "__FLT32_DECIMAL_DIG__ 9"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF290 # The macro: "__FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF291 # The macro: "__FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF292 # The macro: "__FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF293 # The macro: "__FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF294 # The macro: "__FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF295 # The macro: "__FLT32_HAS_DENORM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF296 # The macro: "__FLT32_HAS_INFINITY__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF297 # The macro: "__FLT32_HAS_QUIET_NAN__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF298 # The macro: "__FLT32_IS_IEC_60559__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF299 # The macro: "__FLT64_MANT_DIG__ 53"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF300 # The macro: "__FLT64_DIG__ 15"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF301 # The macro: "__FLT64_MIN_EXP__ (-1021)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF302 # The macro: "__FLT64_MIN_10_EXP__ (-307)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF303 # The macro: "__FLT64_MAX_EXP__ 1024"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF304 # The macro: "__FLT64_MAX_10_EXP__ 308"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF305 # The macro: "__FLT64_DECIMAL_DIG__ 17"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF306 # The macro: "__FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF307 # The macro: "__FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF308 # The macro: "__FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF309 # The macro: "__FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF310 # The macro: "__FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF311 # The macro: "__FLT64_HAS_DENORM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF312 # The macro: "__FLT64_HAS_INFINITY__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF313 # The macro: "__FLT64_HAS_QUIET_NAN__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF314 # The macro: "__FLT64_IS_IEC_60559__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF315 # The macro: "__FLT128_MANT_DIG__ 113"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF316 # The macro: "__FLT128_DIG__ 33"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF317 # The macro: "__FLT128_MIN_EXP__ (-16381)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF318 # The macro: "__FLT128_MIN_10_EXP__ (-4931)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF319 # The macro: "__FLT128_MAX_EXP__ 16384"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF320 # The macro: "__FLT128_MAX_10_EXP__ 4932"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF321 # The macro: "__FLT128_DECIMAL_DIG__ 36"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF322 # The macro: "__FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF323 # The macro: "__FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF324 # The macro: "__FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF325 # The macro: "__FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF326 # The macro: "__FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF327 # The macro: "__FLT128_HAS_DENORM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF328 # The macro: "__FLT128_HAS_INFINITY__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF329 # The macro: "__FLT128_HAS_QUIET_NAN__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF330 # The macro: "__FLT128_IS_IEC_60559__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF331 # The macro: "__FLT32X_MANT_DIG__ 53"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF332 # The macro: "__FLT32X_DIG__ 15"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF333 # The macro: "__FLT32X_MIN_EXP__ (-1021)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF334 # The macro: "__FLT32X_MIN_10_EXP__ (-307)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF335 # The macro: "__FLT32X_MAX_EXP__ 1024"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF336 # The macro: "__FLT32X_MAX_10_EXP__ 308"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF337 # The macro: "__FLT32X_DECIMAL_DIG__ 17"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF338 # The macro: "__FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF339 # The macro: "__FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF340 # The macro: "__FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF341 # The macro: "__FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF342 # The macro: "__FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF343 # The macro: "__FLT32X_HAS_DENORM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF344 # The macro: "__FLT32X_HAS_INFINITY__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF345 # The macro: "__FLT32X_HAS_QUIET_NAN__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF346 # The macro: "__FLT32X_IS_IEC_60559__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF347 # The macro: "__FLT64X_MANT_DIG__ 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF348 # The macro: "__FLT64X_DIG__ 18"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF349 # The macro: "__FLT64X_MIN_EXP__ (-16381)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF350 # The macro: "__FLT64X_MIN_10_EXP__ (-4931)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF351 # The macro: "__FLT64X_MAX_EXP__ 16384"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF352 # The macro: "__FLT64X_MAX_10_EXP__ 4932"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF353 # The macro: "__FLT64X_DECIMAL_DIG__ 21"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF354 # The macro: "__FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF355 # The macro: "__FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF356 # The macro: "__FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF357 # The macro: "__FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF358 # The macro: "__FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF359 # The macro: "__FLT64X_HAS_DENORM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF360 # The macro: "__FLT64X_HAS_INFINITY__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF361 # The macro: "__FLT64X_HAS_QUIET_NAN__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF362 # The macro: "__FLT64X_IS_IEC_60559__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF363 # The macro: "__BFLT16_MANT_DIG__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF364 # The macro: "__BFLT16_DIG__ 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF365 # The macro: "__BFLT16_MIN_EXP__ (-125)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF366 # The macro: "__BFLT16_MIN_10_EXP__ (-37)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF367 # The macro: "__BFLT16_MAX_EXP__ 128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF368 # The macro: "__BFLT16_MAX_10_EXP__ 38"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF369 # The macro: "__BFLT16_DECIMAL_DIG__ 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF370 # The macro: "__BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF371 # The macro: "__BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF372 # The macro: "__BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF373 # The macro: "__BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF374 # The macro: "__BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF375 # The macro: "__BFLT16_HAS_DENORM__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF376 # The macro: "__BFLT16_HAS_INFINITY__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF377 # The macro: "__BFLT16_HAS_QUIET_NAN__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF378 # The macro: "__BFLT16_IS_IEC_60559__ 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF379 # The macro: "__DEC32_MANT_DIG__ 7"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF380 # The macro: "__DEC32_MIN_EXP__ (-94)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF381 # The macro: "__DEC32_MAX_EXP__ 97"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF382 # The macro: "__DEC32_MIN__ 1E-95DF"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF383 # The macro: "__DEC32_MAX__ 9.999999E96DF"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF384 # The macro: "__DEC32_EPSILON__ 1E-6DF"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF385 # The macro: "__DEC32_SUBNORMAL_MIN__ 0.000001E-95DF"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF386 # The macro: "__DEC64_MANT_DIG__ 16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF387 # The macro: "__DEC64_MIN_EXP__ (-382)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF388 # The macro: "__DEC64_MAX_EXP__ 385"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF389 # The macro: "__DEC64_MIN__ 1E-383DD"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF390 # The macro: "__DEC64_MAX__ 9.999999999999999E384DD"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF391 # The macro: "__DEC64_EPSILON__ 1E-15DD"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF392 # The macro: "__DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF393 # The macro: "__DEC128_MANT_DIG__ 34"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF394 # The macro: "__DEC128_MIN_EXP__ (-6142)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF395 # The macro: "__DEC128_MAX_EXP__ 6145"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF396 # The macro: "__DEC128_MIN__ 1E-6143DL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF397 # The macro: "__DEC128_MAX__ 9.999999999999999999999999999999999E6144DL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF398 # The macro: "__DEC128_EPSILON__ 1E-33DL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF399 # The macro: "__DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF400 # The macro: "__DEC64X_MANT_DIG__ 34"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF401 # The macro: "__DEC64X_MIN_EXP__ (-6142)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF402 # The macro: "__DEC64X_MAX_EXP__ 6145"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF403 # The macro: "__DEC64X_MIN__ 1E-6143D64x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF404 # The macro: "__DEC64X_MAX__ 9.999999999999999999999999999999999E6144D64x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF405 # The macro: "__DEC64X_EPSILON__ 1E-33D64x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF406 # The macro: "__DEC64X_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143D64x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF407 # The macro: "__REGISTER_PREFIX__ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF408 # The macro: "__USER_LABEL_PREFIX__ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF409 # The macro: "__GNUC_STDC_INLINE__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF410 # The macro: "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF411 # The macro: "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF412 # The macro: "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF413 # The macro: "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF414 # The macro: "__GCC_ATOMIC_BOOL_LOCK_FREE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF415 # The macro: "__GCC_ATOMIC_CHAR_LOCK_FREE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF416 # The macro: "__GCC_ATOMIC_CHAR16_T_LOCK_FREE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF417 # The macro: "__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF418 # The macro: "__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF419 # The macro: "__GCC_ATOMIC_SHORT_LOCK_FREE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF420 # The macro: "__GCC_ATOMIC_INT_LOCK_FREE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF421 # The macro: "__GCC_ATOMIC_LONG_LOCK_FREE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF422 # The macro: "__GCC_ATOMIC_LLONG_LOCK_FREE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF423 # The macro: "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF424 # The macro: "__GCC_DESTRUCTIVE_SIZE 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF425 # The macro: "__GCC_CONSTRUCTIVE_SIZE 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF426 # The macro: "__GCC_ATOMIC_POINTER_LOCK_FREE 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF427 # The macro: "__HAVE_SPECULATION_SAFE_VALUE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF428 # The macro: "__GCC_HAVE_DWARF2_CFI_ASM 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF429 # The macro: "__PRAGMA_REDEFINE_EXTNAME 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF430 # The macro: "__SIZEOF_INT128__ 16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF431 # The macro: "__SIZEOF_WCHAR_T__ 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF432 # The macro: "__SIZEOF_WINT_T__ 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF433 # The macro: "__SIZEOF_PTRDIFF_T__ 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF434 # The macro: "__amd64 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF435 # The macro: "__amd64__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF436 # The macro: "__x86_64 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF437 # The macro: "__x86_64__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF438 # The macro: "__SIZEOF_FLOAT80__ 16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF439 # The macro: "__SIZEOF_FLOAT128__ 16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF440 # The macro: "__ATOMIC_HLE_ACQUIRE 65536"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF441 # The macro: "__ATOMIC_HLE_RELEASE 131072"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF442 # The macro: "__GCC_ASM_FLAG_OUTPUTS__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF443 # The macro: "__k8 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF444 # The macro: "__k8__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF445 # The macro: "__code_model_small__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF446 # The macro: "__MMX__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF447 # The macro: "__SSE__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF448 # The macro: "__SSE2__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF449 # The macro: "__FXSR__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF450 # The macro: "__SSE_MATH__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF451 # The macro: "__SSE2_MATH__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF452 # The macro: "__MMX_WITH_SSE__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF453 # The macro: "__SEG_FS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF454 # The macro: "__SEG_GS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF455 # The macro: "__gnu_linux__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF456 # The macro: "__linux 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF457 # The macro: "__linux__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF458 # The macro: "linux 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF459 # The macro: "__unix 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF460 # The macro: "__unix__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF461 # The macro: "unix 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF462 # The macro: "__ELF__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF463 # The macro: "__DECIMAL_BID_FORMAT__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0 # At line number 0
+ .long .LASF464 # The macro: "_GNU_SOURCE 1"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stdcpredef.h.19.88fdbfd5cf6f83ed579effc3e425f09b,comdat
+.Ldebug_macro3:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13 # At line number 19
+ .long .LASF465 # The macro: "_STDC_PREDEF_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x26 # At line number 38
+ .long .LASF466 # The macro: "__STDC_IEC_559__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27 # At line number 39
+ .long .LASF467 # The macro: "__STDC_IEC_60559_BFP__ 201404L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x30 # At line number 48
+ .long .LASF468 # The macro: "__STDC_IEC_559_COMPLEX__ 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x31 # At line number 49
+ .long .LASF469 # The macro: "__STDC_IEC_60559_COMPLEX__ 201404L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3e # At line number 62
+ .long .LASF470 # The macro: "__STDC_ISO_10646__ 201706L"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.wordsize.h.4.21825217995af4880cdf0ea22ad93ab2,comdat
+.Ldebug_macro4:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4 # At line number 4
+ .long .LASF474 # The macro: "__WORDSIZE 64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb # At line number 11
+ .long .LASF475 # The macro: "__WORDSIZE_TIME64_COMPAT32 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf # At line number 15
+ .long .LASF476 # The macro: "__SYSCALL_WORDSIZE 64"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.cconfig.h.1945.b6e1a0853c4cceb838353ccb00a51862,comdat
+.Ldebug_macro5:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x799 # At line number 1945
+ .long .LASF477 # The macro: "_GLIBCXX_CXX_CONFIG_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7a7 # At line number 1959
+ .long .LASF478 # The macro: "_GLIBCXX_RELEASE 15"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7aa # At line number 1962
+ .long .LASF479 # The macro: "__GLIBCXX__"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7ab # At line number 1963
+ .long .LASF480 # The macro: "__GLIBCXX__ 20250425"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7b4 # At line number 1972
+ .long .LASF481 # The macro: "_GLIBCXX_PURE __attribute__ ((__pure__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7b8 # At line number 1976
+ .long .LASF482 # The macro: "_GLIBCXX_CONST __attribute__ ((__const__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7bc # At line number 1980
+ .long .LASF483 # The macro: "_GLIBCXX_NORETURN __attribute__ ((__noreturn__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7c9 # At line number 1993
+ .long .LASF484 # The macro: "_GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7cc # At line number 1996
+ .long .LASF485 # The macro: "_GLIBCXX_VISIBILITY(V) __attribute__ ((__visibility__ (#V)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7e4 # At line number 2020
+ .long .LASF486 # The macro: "_GLIBCXX_USE_DEPRECATED 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7e8 # At line number 2024
+ .long .LASF487 # The macro: "_GLIBCXX_DEPRECATED __attribute__ ((__deprecated__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7e9 # At line number 2025
+ .long .LASF488 # The macro: "_GLIBCXX_DEPRECATED_SUGGEST(ALT) __attribute__ ((__deprecated__ ("use '" ALT "' instead")))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7f1 # At line number 2033
+ .long .LASF489 # The macro: "_GLIBCXX11_DEPRECATED _GLIBCXX_DEPRECATED"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7f2 # At line number 2034
+ .long .LASF490 # The macro: "_GLIBCXX11_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7f9 # At line number 2041
+ .long .LASF491 # The macro: "_GLIBCXX14_DEPRECATED _GLIBCXX_DEPRECATED"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7fa # At line number 2042
+ .long .LASF492 # The macro: "_GLIBCXX14_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x801 # At line number 2049
+ .long .LASF493 # The macro: "_GLIBCXX17_DEPRECATED [[__deprecated__]]"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x802 # At line number 2050
+ .long .LASF494 # The macro: "_GLIBCXX17_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x80c # At line number 2060
+ .long .LASF495 # The macro: "_GLIBCXX20_DEPRECATED "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x80d # At line number 2061
+ .long .LASF496 # The macro: "_GLIBCXX20_DEPRECATED_SUGGEST(ALT) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x814 # At line number 2068
+ .long .LASF497 # The macro: "_GLIBCXX23_DEPRECATED "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x815 # At line number 2069
+ .long .LASF498 # The macro: "_GLIBCXX23_DEPRECATED_SUGGEST(ALT) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x81c # At line number 2076
+ .long .LASF499 # The macro: "_GLIBCXX26_DEPRECATED "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x81d # At line number 2077
+ .long .LASF500 # The macro: "_GLIBCXX26_DEPRECATED_SUGGEST(ALT) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x822 # At line number 2082
+ .long .LASF501 # The macro: "_GLIBCXX_ABI_TAG_CXX11 __attribute ((__abi_tag__ ("cxx11")))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x827 # At line number 2087
+ .long .LASF502 # The macro: "_GLIBCXX_NODISCARD [[__nodiscard__]]"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x833 # At line number 2099
+ .long .LASF503 # The macro: "_GLIBCXX_CONSTEXPR constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x834 # At line number 2100
+ .long .LASF504 # The macro: "_GLIBCXX_USE_CONSTEXPR constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x83d # At line number 2109
+ .long .LASF505 # The macro: "_GLIBCXX14_CONSTEXPR constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x845 # At line number 2117
+ .long .LASF506 # The macro: "_GLIBCXX17_CONSTEXPR constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x84f # At line number 2127
+ .long .LASF507 # The macro: "_GLIBCXX20_CONSTEXPR "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x857 # At line number 2135
+ .long .LASF508 # The macro: "_GLIBCXX23_CONSTEXPR "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x85f # At line number 2143
+ .long .LASF509 # The macro: "_GLIBCXX26_CONSTEXPR "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x865 # At line number 2149
+ .long .LASF510 # The macro: "_GLIBCXX17_INLINE inline"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x86e # At line number 2158
+ .long .LASF511 # The macro: "_GLIBCXX_NOEXCEPT noexcept"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x86f # At line number 2159
+ .long .LASF512 # The macro: "_GLIBCXX_NOEXCEPT_IF(...) noexcept(__VA_ARGS__)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x870 # At line number 2160
+ .long .LASF513 # The macro: "_GLIBCXX_USE_NOEXCEPT noexcept"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x871 # At line number 2161
+ .long .LASF514 # The macro: "_GLIBCXX_THROW(_EXC) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x87b # At line number 2171
+ .long .LASF515 # The macro: "_GLIBCXX_NOTHROW _GLIBCXX_USE_NOEXCEPT"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x880 # At line number 2176
+ .long .LASF516 # The macro: "_GLIBCXX_THROW_OR_ABORT(_EXC) (throw (_EXC))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x887 # At line number 2183
+ .long .LASF517 # The macro: "_GLIBCXX_NOEXCEPT_PARM , bool _NE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x888 # At line number 2184
+ .long .LASF518 # The macro: "_GLIBCXX_NOEXCEPT_QUAL noexcept (_NE)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x898 # At line number 2200
+ .long .LASF519 # The macro: "_GLIBCXX_EXTERN_TEMPLATE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8df # At line number 2271
+ .long .LASF520 # The macro: "_GLIBCXX_USE_DUAL_ABI 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8e7 # At line number 2279
+ .long .LASF521 # The macro: "_GLIBCXX_USE_CXX11_ABI 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8f3 # At line number 2291
+ .long .LASF522 # The macro: "_GLIBCXX_NAMESPACE_CXX11 __cxx11::"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8f4 # At line number 2292
+ .long .LASF523 # The macro: "_GLIBCXX_BEGIN_NAMESPACE_CXX11 namespace __cxx11 {"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8f5 # At line number 2293
+ .long .LASF524 # The macro: "_GLIBCXX_END_NAMESPACE_CXX11 }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8f6 # At line number 2294
+ .long .LASF525 # The macro: "_GLIBCXX_DEFAULT_ABI_TAG _GLIBCXX_ABI_TAG_CXX11"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8ff # At line number 2303
+ .long .LASF526 # The macro: "_GLIBCXX_INLINE_VERSION 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x921 # At line number 2337
+ .long .LASF527 # The macro: "_GLIBCXX_BEGIN_NAMESPACE_VERSION "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x922 # At line number 2338
+ .long .LASF528 # The macro: "_GLIBCXX_END_NAMESPACE_VERSION "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x924 # At line number 2340
+ .long .LASF529 # The macro: "_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(X) inline namespace X {"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x925 # At line number 2341
+ .long .LASF530 # The macro: "_GLIBCXX_END_INLINE_ABI_NAMESPACE(X) }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x966 # At line number 2406
+ .long .LASF531 # The macro: "_GLIBCXX_STD_C std"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x967 # At line number 2407
+ .long .LASF532 # The macro: "_GLIBCXX_BEGIN_NAMESPACE_CONTAINER "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x968 # At line number 2408
+ .long .LASF533 # The macro: "_GLIBCXX_END_NAMESPACE_CONTAINER "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x971 # At line number 2417
+ .long .LASF534 # The macro: "_GLIBCXX_STD_A std"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x972 # At line number 2418
+ .long .LASF535 # The macro: "_GLIBCXX_BEGIN_NAMESPACE_ALGO "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x973 # At line number 2419
+ .long .LASF536 # The macro: "_GLIBCXX_END_NAMESPACE_ALGO "
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x978 # At line number 2424
+ .long .LASF537 # The macro: "_GLIBCXX_LONG_DOUBLE_COMPAT"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x982 # At line number 2434
+ .long .LASF538 # The macro: "_GLIBCXX_CLANG"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x988 # At line number 2440
+ .long .LASF539 # The macro: "_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9a6 # At line number 2470
+ .long .LASF540 # The macro: "_GLIBCXX_NAMESPACE_LDBL "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9a7 # At line number 2471
+ .long .LASF541 # The macro: "_GLIBCXX_BEGIN_NAMESPACE_LDBL "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9a8 # At line number 2472
+ .long .LASF542 # The macro: "_GLIBCXX_END_NAMESPACE_LDBL "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9ac # At line number 2476
+ .long .LASF543 # The macro: "_GLIBCXX_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_NAMESPACE_CXX11"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9ad # At line number 2477
+ .long .LASF544 # The macro: "_GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_BEGIN_NAMESPACE_CXX11"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9ae # At line number 2478
+ .long .LASF545 # The macro: "_GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_END_NAMESPACE_CXX11"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9c6 # At line number 2502
+ .long .LASF546 # The macro: "_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9df # At line number 2527
+ .long .LASF547 # The macro: "_GLIBCXX_VERBOSE_ASSERT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9ef # At line number 2543
+ .long .LASF548 # The macro: "_GLIBCXX_ASSERT_FAIL(_Condition) std::__glibcxx_assert_fail(__FILE__, __LINE__, __PRETTY_FUNCTION__, #_Condition)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa09 # At line number 2569
+ .long .LASF549 # The macro: "__glibcxx_assert(cond) do { if (std::__is_constant_evaluated() && !bool(cond)) std::__glibcxx_assert_fail(); } while (false)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa33 # At line number 2611
+ .long .LASF550 # The macro: "_GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(A) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa36 # At line number 2614
+ .long .LASF551 # The macro: "_GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(A) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa3a # At line number 2618
+ .long .LASF552 # The macro: "_GLIBCXX_BEGIN_EXTERN_C extern "C" {"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa3b # At line number 2619
+ .long .LASF553 # The macro: "_GLIBCXX_END_EXTERN_C }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa3d # At line number 2621
+ .long .LASF554 # The macro: "_GLIBCXX_USE_ALLOCATOR_NEW 1"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.os_defines.h.31.00ac2dfcc18ce0a4ccd7d724c7e326ea,comdat
+.Ldebug_macro6:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF555 # The macro: "_GLIBCXX_OS_DEFINES 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25 # At line number 37
+ .long .LASF556 # The macro: "__NO_CTYPE 1"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.features.h.19.bdce2f9bc3939800030d1d9eb242d816,comdat
+.Ldebug_macro7:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13 # At line number 19
+ .long .LASF557 # The macro: "_FEATURES_H 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x81 # At line number 129
+ .long .LASF558 # The macro: "__USE_ISOC11"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x82 # At line number 130
+ .long .LASF559 # The macro: "__USE_ISOC99"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x83 # At line number 131
+ .long .LASF560 # The macro: "__USE_ISOC95"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x84 # At line number 132
+ .long .LASF561 # The macro: "__USE_ISOCXX11"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x85 # At line number 133
+ .long .LASF562 # The macro: "__USE_POSIX"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x86 # At line number 134
+ .long .LASF563 # The macro: "__USE_POSIX2"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x87 # At line number 135
+ .long .LASF564 # The macro: "__USE_POSIX199309"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x88 # At line number 136
+ .long .LASF565 # The macro: "__USE_POSIX199506"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x89 # At line number 137
+ .long .LASF566 # The macro: "__USE_XOPEN"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x8a # At line number 138
+ .long .LASF567 # The macro: "__USE_XOPEN_EXTENDED"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x8b # At line number 139
+ .long .LASF568 # The macro: "__USE_UNIX98"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x8c # At line number 140
+ .long .LASF569 # The macro: "__USE_XOPEN2K"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x8d # At line number 141
+ .long .LASF570 # The macro: "__USE_XOPEN2KXSI"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x8e # At line number 142
+ .long .LASF571 # The macro: "__USE_XOPEN2K8"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x8f # At line number 143
+ .long .LASF572 # The macro: "__USE_XOPEN2K8XSI"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x90 # At line number 144
+ .long .LASF573 # The macro: "__USE_LARGEFILE"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x91 # At line number 145
+ .long .LASF574 # The macro: "__USE_LARGEFILE64"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x92 # At line number 146
+ .long .LASF575 # The macro: "__USE_FILE_OFFSET64"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x93 # At line number 147
+ .long .LASF576 # The macro: "__USE_MISC"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x94 # At line number 148
+ .long .LASF577 # The macro: "__USE_ATFILE"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x95 # At line number 149
+ .long .LASF578 # The macro: "__USE_DYNAMIC_STACK_SIZE"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x96 # At line number 150
+ .long .LASF579 # The macro: "__USE_GNU"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x97 # At line number 151
+ .long .LASF580 # The macro: "__USE_FORTIFY_LEVEL"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x98 # At line number 152
+ .long .LASF581 # The macro: "__KERNEL_STRICT_NAMES"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x99 # At line number 153
+ .long .LASF582 # The macro: "__GLIBC_USE_ISOC23"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9a # At line number 154
+ .long .LASF583 # The macro: "__GLIBC_USE_ISOC2Y"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9b # At line number 155
+ .long .LASF584 # The macro: "__GLIBC_USE_DEPRECATED_GETS"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF585 # The macro: "__GLIBC_USE_DEPRECATED_SCANF"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9d # At line number 157
+ .long .LASF586 # The macro: "__GLIBC_USE_C23_STRTOL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa2 # At line number 162
+ .long .LASF587 # The macro: "__KERNEL_STRICT_NAMES "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xad # At line number 173
+ .long .LASF588 # The macro: "__GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbb # At line number 187
+ .long .LASF589 # The macro: "__glibc_clang_prereq(maj,min) 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbf # At line number 191
+ .long .LASF590 # The macro: "__GLIBC_USE(F) __GLIBC_USE_ ## F"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd5 # At line number 213
+ .long .LASF591 # The macro: "_ISOC95_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd6 # At line number 214
+ .long .LASF592 # The macro: "_ISOC95_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd7 # At line number 215
+ .long .LASF593 # The macro: "_ISOC99_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd8 # At line number 216
+ .long .LASF594 # The macro: "_ISOC99_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd9 # At line number 217
+ .long .LASF595 # The macro: "_ISOC11_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xda # At line number 218
+ .long .LASF596 # The macro: "_ISOC11_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xdb # At line number 219
+ .long .LASF597 # The macro: "_ISOC23_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc # At line number 220
+ .long .LASF598 # The macro: "_ISOC23_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xdd # At line number 221
+ .long .LASF599 # The macro: "_ISOC2Y_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xde # At line number 222
+ .long .LASF600 # The macro: "_ISOC2Y_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xdf # At line number 223
+ .long .LASF601 # The macro: "_POSIX_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe0 # At line number 224
+ .long .LASF602 # The macro: "_POSIX_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe1 # At line number 225
+ .long .LASF603 # The macro: "_POSIX_C_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe2 # At line number 226
+ .long .LASF604 # The macro: "_POSIX_C_SOURCE 200809L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe3 # At line number 227
+ .long .LASF605 # The macro: "_XOPEN_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe4 # At line number 228
+ .long .LASF606 # The macro: "_XOPEN_SOURCE 700"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe5 # At line number 229
+ .long .LASF607 # The macro: "_XOPEN_SOURCE_EXTENDED"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe6 # At line number 230
+ .long .LASF608 # The macro: "_XOPEN_SOURCE_EXTENDED 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe7 # At line number 231
+ .long .LASF609 # The macro: "_LARGEFILE64_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe8 # At line number 232
+ .long .LASF610 # The macro: "_LARGEFILE64_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe9 # At line number 233
+ .long .LASF611 # The macro: "_DEFAULT_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xea # At line number 234
+ .long .LASF612 # The macro: "_DEFAULT_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xeb # At line number 235
+ .long .LASF613 # The macro: "_ATFILE_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xec # At line number 236
+ .long .LASF614 # The macro: "_ATFILE_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xed # At line number 237
+ .long .LASF615 # The macro: "_DYNAMIC_STACK_SIZE_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xee # At line number 238
+ .long .LASF616 # The macro: "_DYNAMIC_STACK_SIZE_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf9 # At line number 249
+ .long .LASF611 # The macro: "_DEFAULT_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xfa # At line number 250
+ .long .LASF612 # The macro: "_DEFAULT_SOURCE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x100 # At line number 256
+ .long .LASF617 # The macro: "__GLIBC_USE_ISOC2Y 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x108 # At line number 264
+ .long .LASF618 # The macro: "__GLIBC_USE_ISOC23 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x111 # At line number 273
+ .long .LASF619 # The macro: "__USE_ISOC11 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x118 # At line number 280
+ .long .LASF620 # The macro: "__USE_ISOC99 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11f # At line number 287
+ .long .LASF621 # The macro: "__USE_ISOC95 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x125 # At line number 293
+ .long .LASF619 # The macro: "__USE_ISOC11 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x12a # At line number 298
+ .long .LASF622 # The macro: "__USE_ISOCXX11 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x12b # At line number 299
+ .long .LASF620 # The macro: "__USE_ISOC99 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x136 # At line number 310
+ .long .LASF601 # The macro: "_POSIX_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x137 # At line number 311
+ .long .LASF602 # The macro: "_POSIX_SOURCE 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x138 # At line number 312
+ .long .LASF603 # The macro: "_POSIX_C_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x139 # At line number 313
+ .long .LASF604 # The macro: "_POSIX_C_SOURCE 200809L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x15c # At line number 348
+ .long .LASF623 # The macro: "__USE_POSIX 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x160 # At line number 352
+ .long .LASF624 # The macro: "__USE_POSIX2 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x164 # At line number 356
+ .long .LASF625 # The macro: "__USE_POSIX199309 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x168 # At line number 360
+ .long .LASF626 # The macro: "__USE_POSIX199506 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16c # At line number 364
+ .long .LASF627 # The macro: "__USE_XOPEN2K 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x16d # At line number 365
+ .long .LASF560 # The macro: "__USE_ISOC95"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16e # At line number 366
+ .long .LASF621 # The macro: "__USE_ISOC95 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x16f # At line number 367
+ .long .LASF559 # The macro: "__USE_ISOC99"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x170 # At line number 368
+ .long .LASF620 # The macro: "__USE_ISOC99 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x174 # At line number 372
+ .long .LASF628 # The macro: "__USE_XOPEN2K8 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x175 # At line number 373
+ .long .LASF613 # The macro: "_ATFILE_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x176 # At line number 374
+ .long .LASF614 # The macro: "_ATFILE_SOURCE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x17a # At line number 378
+ .long .LASF629 # The macro: "__USE_XOPEN 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x17c # At line number 380
+ .long .LASF630 # The macro: "__USE_XOPEN_EXTENDED 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x17d # At line number 381
+ .long .LASF631 # The macro: "__USE_UNIX98 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x17e # At line number 382
+ .long .LASF632 # The macro: "_LARGEFILE_SOURCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x17f # At line number 383
+ .long .LASF633 # The macro: "_LARGEFILE_SOURCE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x182 # At line number 386
+ .long .LASF628 # The macro: "__USE_XOPEN2K8 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x183 # At line number 387
+ .long .LASF634 # The macro: "__USE_XOPEN2K8XSI 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x185 # At line number 389
+ .long .LASF627 # The macro: "__USE_XOPEN2K 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x186 # At line number 390
+ .long .LASF635 # The macro: "__USE_XOPEN2KXSI 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x187 # At line number 391
+ .long .LASF560 # The macro: "__USE_ISOC95"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x188 # At line number 392
+ .long .LASF621 # The macro: "__USE_ISOC95 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x189 # At line number 393
+ .long .LASF559 # The macro: "__USE_ISOC99"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18a # At line number 394
+ .long .LASF620 # The macro: "__USE_ISOC99 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x194 # At line number 404
+ .long .LASF636 # The macro: "__USE_LARGEFILE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x198 # At line number 408
+ .long .LASF637 # The macro: "__USE_LARGEFILE64 1"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.features.h.418.0b5c3539d8a4e9fd50fc3039208f3961,comdat
+.Ldebug_macro8:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a2 # At line number 418
+ .long .LASF640 # The macro: "__USE_MISC 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a6 # At line number 422
+ .long .LASF641 # The macro: "__USE_ATFILE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1aa # At line number 426
+ .long .LASF642 # The macro: "__USE_DYNAMIC_STACK_SIZE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1ae # At line number 430
+ .long .LASF643 # The macro: "__USE_GNU 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c7 # At line number 455
+ .long .LASF644 # The macro: "__USE_FORTIFY_LEVEL 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1cf # At line number 463
+ .long .LASF645 # The macro: "__GLIBC_USE_DEPRECATED_GETS 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e6 # At line number 486
+ .long .LASF646 # The macro: "__GLIBC_USE_DEPRECATED_SCANF 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1ef # At line number 495
+ .long .LASF647 # The macro: "__GLIBC_USE_C23_STRTOL 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1fe # At line number 510
+ .long .LASF648 # The macro: "__GNU_LIBRARY__"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1ff # At line number 511
+ .long .LASF649 # The macro: "__GNU_LIBRARY__ 6"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x203 # At line number 515
+ .long .LASF650 # The macro: "__GLIBC__ 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x204 # At line number 516
+ .long .LASF651 # The macro: "__GLIBC_MINOR__ 41"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x206 # At line number 518
+ .long .LASF652 # The macro: "__GLIBC_PREREQ(maj,min) ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.cdefs.h.20.3b5b75c5448e96e4c39679d0a8f1a476,comdat
+.Ldebug_macro9:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF653 # The macro: "_SYS_CDEFS_H 1"
+ .byte 0x2 # Undefine macro
+ .uleb128 0x23 # At line number 35
+ .ascii "__P\0" # The macro
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x24 # At line number 36
+ .long .LASF654 # The macro: "__PMT"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d # At line number 45
+ .long .LASF655 # The macro: "__glibc_has_attribute(attr) __has_attribute (attr)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x32 # At line number 50
+ .long .LASF656 # The macro: "__glibc_has_builtin(name) __has_builtin (name)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF657 # The macro: "__glibc_has_extension(ext) __has_extension (ext)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF658 # The macro: "__LEAF , __leaf__"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x42 # At line number 66
+ .long .LASF659 # The macro: "__LEAF_ATTR __attribute__ ((__leaf__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56 # At line number 86
+ .long .LASF660 # The macro: "__THROW noexcept (true)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5a # At line number 90
+ .long .LASF661 # The macro: "__THROWNL __THROW"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF662 # The macro: "__NTH(fct) __LEAF_ATTR fct __THROW"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5c # At line number 92
+ .long .LASF663 # The macro: "__NTHNL(fct) fct __THROW"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x66 # At line number 102
+ .long .LASF664 # The macro: "__COLD __attribute__ ((__cold__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7d # At line number 125
+ .long .LASF665 # The macro: "__P(args) args"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF666 # The macro: "__PMT(args) args"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x83 # At line number 131
+ .long .LASF667 # The macro: "__CONCAT(x,y) x ## y"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x84 # At line number 132
+ .long .LASF668 # The macro: "__STRING(x) #x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x87 # At line number 135
+ .long .LASF669 # The macro: "__ptr_t void *"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8c # At line number 140
+ .long .LASF670 # The macro: "__BEGIN_DECLS extern "C" {"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8d # At line number 141
+ .long .LASF671 # The macro: "__END_DECLS }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x99 # At line number 153
+ .long .LASF672 # The macro: "__attribute_overloadable__ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9d # At line number 157
+ .long .LASF673 # The macro: "__bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9e # At line number 158
+ .long .LASF674 # The macro: "__bos0(ptr) __builtin_object_size (ptr, 0)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa6 # At line number 166
+ .long .LASF675 # The macro: "__glibc_objsize0(__o) __bos0 (__o)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa7 # At line number 167
+ .long .LASF676 # The macro: "__glibc_objsize(__o) __bos (__o)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16e # At line number 366
+ .long .LASF677 # The macro: "__warnattr(msg) __attribute__((__warning__ (msg)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16f # At line number 367
+ .long .LASF678 # The macro: "__errordecl(name,msg) extern void name (void) __attribute__((__error__ (msg)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x180 # At line number 384
+ .long .LASF679 # The macro: "__flexarr []"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x181 # At line number 385
+ .long .LASF680 # The macro: "__glibc_c99_flexarr_available 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x19a # At line number 410
+ .long .LASF681 # The macro: "__REDIRECT(name,proto,alias) name proto __asm__ (__ASMNAME (#alias))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x19c # At line number 412
+ .long .LASF682 # The macro: "__REDIRECT_NTH(name,proto,alias) name proto __THROW __asm__ (__ASMNAME (#alias))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x19e # At line number 414
+ .long .LASF683 # The macro: "__REDIRECT_NTHNL(name,proto,alias) name proto __THROWNL __asm__ (__ASMNAME (#alias))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a6 # At line number 422
+ .long .LASF684 # The macro: "__ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a7 # At line number 423
+ .long .LASF685 # The macro: "__ASMNAME2(prefix,cname) __STRING (prefix) cname"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1aa # At line number 426
+ .long .LASF686 # The macro: "__REDIRECT_FORTIFY __REDIRECT"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1ae # At line number 430
+ .long .LASF687 # The macro: "__REDIRECT_FORTIFY_NTH __REDIRECT_NTH"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c4 # At line number 452
+ .long .LASF688 # The macro: "__attribute_malloc__ __attribute__ ((__malloc__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1cc # At line number 460
+ .long .LASF689 # The macro: "__attribute_alloc_size__(params) __attribute__ ((__alloc_size__ params))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1d5 # At line number 469
+ .long .LASF690 # The macro: "__attribute_alloc_align__(param) __attribute__ ((__alloc_align__ param))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1df # At line number 479
+ .long .LASF691 # The macro: "__attribute_pure__ __attribute__ ((__pure__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e6 # At line number 486
+ .long .LASF692 # The macro: "__attribute_const__ __attribute__ ((__const__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1ec # At line number 492
+ .long .LASF693 # The macro: "__attribute_maybe_unused__ __attribute__ ((__unused__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f5 # At line number 501
+ .long .LASF694 # The macro: "__attribute_used__ __attribute__ ((__used__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f6 # At line number 502
+ .long .LASF695 # The macro: "__attribute_noinline__ __attribute__ ((__noinline__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1fe # At line number 510
+ .long .LASF696 # The macro: "__attribute_deprecated__ __attribute__ ((__deprecated__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x208 # At line number 520
+ .long .LASF697 # The macro: "__attribute_deprecated_msg__(msg) __attribute__ ((__deprecated__ (msg)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x215 # At line number 533
+ .long .LASF698 # The macro: "__attribute_format_arg__(x) __attribute__ ((__format_arg__ (x)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x21f # At line number 543
+ .long .LASF699 # The macro: "__attribute_format_strfmon__(a,b) __attribute__ ((__format__ (__strfmon__, a, b)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22b # At line number 555
+ .long .LASF700 # The macro: "__attribute_nonnull__(params) __attribute__ ((__nonnull__ params))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x231 # At line number 561
+ .long .LASF701 # The macro: "__nonnull(params) __attribute_nonnull__ (params)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x238 # At line number 568
+ .long .LASF702 # The macro: "__returns_nonnull __attribute__ ((__returns_nonnull__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x241 # At line number 577
+ .long .LASF703 # The macro: "__attribute_warn_unused_result__ __attribute__ ((__warn_unused_result__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24a # At line number 586
+ .long .LASF704 # The macro: "__wur "
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x252 # At line number 594
+ .long .LASF705 # The macro: "__always_inline"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x253 # At line number 595
+ .long .LASF706 # The macro: "__always_inline __inline __attribute__ ((__always_inline__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25c # At line number 604
+ .long .LASF707 # The macro: "__attribute_artificial__ __attribute__ ((__artificial__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x26e # At line number 622
+ .long .LASF708 # The macro: "__extern_inline extern __inline __attribute__ ((__gnu_inline__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x26f # At line number 623
+ .long .LASF709 # The macro: "__extern_always_inline extern __always_inline __attribute__ ((__gnu_inline__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x278 # At line number 632
+ .long .LASF710 # The macro: "__fortify_function __extern_always_inline __attribute_artificial__"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27e # At line number 638
+ .long .LASF711 # The macro: "__va_arg_pack() __builtin_va_arg_pack ()"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27f # At line number 639
+ .long .LASF712 # The macro: "__va_arg_pack_len() __builtin_va_arg_pack_len ()"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29d # At line number 669
+ .long .LASF713 # The macro: "__restrict_arr "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a9 # At line number 681
+ .long .LASF714 # The macro: "__glibc_unlikely(cond) __builtin_expect ((cond), 0)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2aa # At line number 682
+ .long .LASF715 # The macro: "__glibc_likely(cond) __builtin_expect ((cond), 1)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2bf # At line number 703
+ .long .LASF716 # The macro: "__attribute_nonstring__ __attribute__ ((__nonstring__))"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2c5 # At line number 709
+ .long .LASF717 # The macro: "__attribute_copy__"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c9 # At line number 713
+ .long .LASF718 # The macro: "__attribute_copy__(arg) __attribute__ ((__copy__ (arg)))"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.cdefs.h.788.9af8f5176cd272e215897fe8049c214d,comdat
+.Ldebug_macro10:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x314 # At line number 788
+ .long .LASF720 # The macro: "__LDBL_REDIR1(name,proto,alias) name proto"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x315 # At line number 789
+ .long .LASF721 # The macro: "__LDBL_REDIR(name,proto) name proto"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x316 # At line number 790
+ .long .LASF722 # The macro: "__LDBL_REDIR1_NTH(name,proto,alias) name proto __THROW"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x317 # At line number 791
+ .long .LASF723 # The macro: "__LDBL_REDIR_NTH(name,proto) name proto __THROW"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x318 # At line number 792
+ .long .LASF724 # The macro: "__LDBL_REDIR2_DECL(name) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x319 # At line number 793
+ .long .LASF725 # The macro: "__LDBL_REDIR_DECL(name) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x31b # At line number 795
+ .long .LASF726 # The macro: "__REDIRECT_LDBL(name,proto,alias) __REDIRECT (name, proto, alias)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x31c # At line number 796
+ .long .LASF727 # The macro: "__REDIRECT_NTH_LDBL(name,proto,alias) __REDIRECT_NTH (name, proto, alias)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x327 # At line number 807
+ .long .LASF728 # The macro: "__glibc_macro_warning1(message) _Pragma (#message)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x328 # At line number 808
+ .long .LASF729 # The macro: "__glibc_macro_warning(message) __glibc_macro_warning1 (GCC warning message)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x33c # At line number 828
+ .long .LASF730 # The macro: "__HAVE_GENERIC_SELECTION 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x345 # At line number 837
+ .long .LASF731 # The macro: "__attr_access(x) __attribute__ ((__access__ x))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x34d # At line number 845
+ .long .LASF732 # The macro: "__fortified_attr_access(a,o,s) __attr_access ((a, o, s))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x350 # At line number 848
+ .long .LASF733 # The macro: "__attr_access_none(argno) __attribute__ ((__access__ (__none__, argno)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35d # At line number 861
+ .long .LASF734 # The macro: "__attr_dealloc(dealloc,argno) __attribute__ ((__malloc__ (dealloc, argno)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35f # At line number 863
+ .long .LASF735 # The macro: "__attr_dealloc_free __attr_dealloc (__builtin_free, 1)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x368 # At line number 872
+ .long .LASF736 # The macro: "__attribute_returns_twice__ __attribute__ ((__returns_twice__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x371 # At line number 881
+ .long .LASF737 # The macro: "__attribute_struct_may_alias__ __attribute__ ((__may_alias__))"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stubs64.h.10.7865f4f7062bab1c535c1f73f43aa9b9,comdat
+.Ldebug_macro11:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa # At line number 10
+ .long .LASF739 # The macro: "__stub___compat_bdflush "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb # At line number 11
+ .long .LASF740 # The macro: "__stub_chflags "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc # At line number 12
+ .long .LASF741 # The macro: "__stub_fchflags "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd # At line number 13
+ .long .LASF742 # The macro: "__stub_gtty "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe # At line number 14
+ .long .LASF743 # The macro: "__stub_revoke "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf # At line number 15
+ .long .LASF744 # The macro: "__stub_setlogin "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10 # At line number 16
+ .long .LASF745 # The macro: "__stub_sigreturn "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11 # At line number 17
+ .long .LASF746 # The macro: "__stub_stty "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.os_defines.h.45.d06a304670a31a32135668aa1e3d636d,comdat
+.Ldebug_macro12:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2d # At line number 45
+ .long .LASF747 # The macro: "_GLIBCXX_HAVE_GETS"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x32 # At line number 50
+ .long .LASF748 # The macro: "_GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC __GLIBC_PREREQ(2,23)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3c # At line number 60
+ .long .LASF749 # The macro: "_GLIBCXX_HAVE_FLOAT128_MATH 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x42 # At line number 66
+ .long .LASF750 # The macro: "_GLIBCXX_MAY_HAVE___CXA_THREAD_ATEXIT_IMPL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x49 # At line number 73
+ .long .LASF751 # The macro: "_GLIBCXX_NATIVE_THREAD_ID pthread_self()"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56 # At line number 86
+ .long .LASF752 # The macro: "_GLIBCXX_GTHREAD_USE_WEAK 0"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.cconfig.h.2649.87423048acc70a6cfbf4eb1b288281c7,comdat
+.Ldebug_macro13:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa59 # At line number 2649
+ .long .LASF754 # The macro: "_GLIBCXX_PSEUDO_VISIBILITY(V) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa60 # At line number 2656
+ .long .LASF755 # The macro: "_GLIBCXX_WEAK_DEFINITION "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa68 # At line number 2664
+ .long .LASF756 # The macro: "_GLIBCXX_USE_WEAK_REF __GXX_WEAK__"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa75 # At line number 2677
+ .long .LASF757 # The macro: "_GLIBCXX_TXN_SAFE "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa76 # At line number 2678
+ .long .LASF758 # The macro: "_GLIBCXX_TXN_SAFE_DYN "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa7b # At line number 2683
+ .long .LASF759 # The macro: "_GLIBCXX_USE_STD_SPEC_FUNCS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa88 # At line number 2696
+ .long .LASF760 # The macro: "_GLIBCXX_FAST_MATH 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa8f # At line number 2703
+ .long .LASF761 # The macro: "__N(msgid) (msgid)"
+ .byte 0x2 # Undefine macro
+ .uleb128 0xa92 # At line number 2706
+ .ascii "min\0" # The macro
+ .byte 0x2 # Undefine macro
+ .uleb128 0xa93 # At line number 2707
+ .ascii "max\0" # The macro
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa99 # At line number 2713
+ .long .LASF762 # The macro: "_GLIBCXX_USE_C99_MATH _GLIBCXX11_USE_C99_MATH"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa9c # At line number 2716
+ .long .LASF763 # The macro: "_GLIBCXX_USE_C99_COMPLEX _GLIBCXX11_USE_C99_COMPLEX"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa9f # At line number 2719
+ .long .LASF764 # The macro: "_GLIBCXX_USE_C99_STDIO _GLIBCXX11_USE_C99_STDIO"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa2 # At line number 2722
+ .long .LASF765 # The macro: "_GLIBCXX_USE_C99_STDLIB _GLIBCXX11_USE_C99_STDLIB"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa5 # At line number 2725
+ .long .LASF766 # The macro: "_GLIBCXX_USE_C99_WCHAR _GLIBCXX11_USE_C99_WCHAR"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xac8 # At line number 2760
+ .long .LASF767 # The macro: "_GLIBCXX_USE_FLOAT128 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xad0 # At line number 2768
+ .long .LASF768 # The macro: "_GLIBCXX_FLOAT_IS_IEEE_BINARY32 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xad7 # At line number 2775
+ .long .LASF769 # The macro: "_GLIBCXX_DOUBLE_IS_IEEE_BINARY64 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xafc # At line number 2812
+ .long .LASF770 # The macro: "_GLIBCXX_HAS_BUILTIN(B) __has_builtin(B)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb01 # At line number 2817
+ .long .LASF771 # The macro: "_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb05 # At line number 2821
+ .long .LASF772 # The macro: "_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb09 # At line number 2825
+ .long .LASF773 # The macro: "_GLIBCXX_HAVE_BUILTIN_LAUNDER 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb11 # At line number 2833
+ .long .LASF774 # The macro: "_GLIBCXX_USE_BUILTIN_TRAIT(BT) _GLIBCXX_HAS_BUILTIN(BT)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb17 # At line number 2839
+ .long .LASF775 # The macro: "_GLIBCXX_DOXYGEN_ONLY(X) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb23 # At line number 2851
+ .long .LASF776 # The macro: "_GLIBCXX_USE_TBB_PAR_BACKEND __has_include(<tbb/tbb.h>)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb29 # At line number 2857
+ .long .LASF777 # The macro: "_PSTL_PAR_BACKEND_SERIAL "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb2c # At line number 2860
+ .long .LASF778 # The macro: "_PSTL_ASSERT(_Condition) __glibcxx_assert(_Condition)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb2d # At line number 2861
+ .long .LASF779 # The macro: "_PSTL_ASSERT_MSG(_Condition,_Message) __glibcxx_assert(_Condition)"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.pstl_config.h.11.cc2ab118dc65e0b245923f61105bc215,comdat
+.Ldebug_macro14:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb # At line number 11
+ .long .LASF780 # The macro: "_PSTL_CONFIG_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe # At line number 14
+ .long .LASF781 # The macro: "_PSTL_VERSION 17000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf # At line number 15
+ .long .LASF782 # The macro: "_PSTL_VERSION_MAJOR (_PSTL_VERSION / 1000)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10 # At line number 16
+ .long .LASF783 # The macro: "_PSTL_VERSION_MINOR ((_PSTL_VERSION % 1000) / 10)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11 # At line number 17
+ .long .LASF784 # The macro: "_PSTL_VERSION_PATCH (_PSTL_VERSION % 10)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1d # At line number 29
+ .long .LASF785 # The macro: "_PSTL_USAGE_WARNINGS 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24 # At line number 36
+ .long .LASF786 # The macro: "_PSTL_PRAGMA(x) _Pragma(#x)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27 # At line number 39
+ .long .LASF787 # The macro: "_PSTL_STRING_AUX(x) #x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF788 # The macro: "_PSTL_STRING(x) _PSTL_STRING_AUX(x)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29 # At line number 41
+ .long .LASF789 # The macro: "_PSTL_STRING_CONCAT(x,y) x #y"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x30 # At line number 48
+ .long .LASF790 # The macro: "_PSTL_HIDE_FROM_ABI_PUSH "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x31 # At line number 49
+ .long .LASF791 # The macro: "_PSTL_HIDE_FROM_ABI_POP "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x36 # At line number 54
+ .long .LASF792 # The macro: "_PSTL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x42 # At line number 66
+ .long .LASF793 # The macro: "_PSTL_PRAGMA_SIMD _PSTL_PRAGMA(omp simd)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x43 # At line number 67
+ .long .LASF794 # The macro: "_PSTL_PRAGMA_DECLARE_SIMD _PSTL_PRAGMA(omp declare simd)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x44 # At line number 68
+ .long .LASF795 # The macro: "_PSTL_PRAGMA_SIMD_REDUCTION(PRM) _PSTL_PRAGMA(omp simd reduction(PRM))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x52 # At line number 82
+ .long .LASF796 # The macro: "_PSTL_PRAGMA_FORCEINLINE "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x57 # At line number 87
+ .long .LASF797 # The macro: "_PSTL_PRAGMA_SIMD_SCAN(PRM) _PSTL_PRAGMA(omp simd reduction(inscan, PRM))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x58 # At line number 88
+ .long .LASF798 # The macro: "_PSTL_PRAGMA_SIMD_INCLUSIVE_SCAN(PRM) _PSTL_PRAGMA(omp scan inclusive(PRM))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x59 # At line number 89
+ .long .LASF799 # The macro: "_PSTL_PRAGMA_SIMD_EXCLUSIVE_SCAN(PRM) _PSTL_PRAGMA(omp scan exclusive(PRM))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x61 # At line number 97
+ .long .LASF800 # The macro: "_PSTL_CPP17_EXECUTION_POLICIES_PRESENT (_MSC_VER >= 1912 && _MSVC_LANG >= 201703L) || (_GLIBCXX_RELEASE >= 9 && __GLIBCXX__ >= 20190503 && __cplusplus >= 201703L)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x67 # At line number 103
+ .long .LASF801 # The macro: "_PSTL_CPP14_2RANGE_MISMATCH_EQUAL_PRESENT "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6c # At line number 108
+ .long .LASF802 # The macro: "_PSTL_CPP14_MAKE_REVERSE_ITERATOR_PRESENT "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6f # At line number 111
+ .long .LASF803 # The macro: "_PSTL_CPP14_INTEGER_SEQUENCE_PRESENT "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF804 # The macro: "_PSTL_CPP14_VARIABLE_TEMPLATES_PRESENT "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7f # At line number 127
+ .long .LASF805 # The macro: "_PSTL_UDR_PRESENT "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x84 # At line number 132
+ .long .LASF806 # The macro: "_PSTL_UDS_PRESENT "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8a # At line number 138
+ .long .LASF807 # The macro: "_PSTL_PRAGMA_SIMD_EARLYEXIT "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x91 # At line number 145
+ .long .LASF808 # The macro: "_PSTL_PRAGMA_SIMD_ORDERED_MONOTONIC(PRM) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x92 # At line number 146
+ .long .LASF809 # The macro: "_PSTL_PRAGMA_SIMD_ORDERED_MONOTONIC_2ARGS(PRM1,PRM2) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF810 # The macro: "_PSTL_PRAGMA_DECLARE_REDUCTION(NAME,OP) _PSTL_PRAGMA(omp declare reduction(NAME:OP : omp_out(omp_in)) initializer(omp_priv = omp_orig))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa2 # At line number 162
+ .long .LASF811 # The macro: "_PSTL_PRAGMA_VECTOR_UNALIGNED "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa9 # At line number 169
+ .long .LASF812 # The macro: "_PSTL_USE_NONTEMPORAL_STORES_IF_ALLOWED "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaf # At line number 175
+ .long .LASF813 # The macro: "_PSTL_PRAGMA_LOCATION " [Parallel STL message]: ""
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb2 # At line number 178
+ .long .LASF814 # The macro: "_PSTL_PRAGMA_MESSAGE_IMPL(x) _PSTL_PRAGMA(message(_PSTL_STRING_CONCAT(_PSTL_PRAGMA_LOCATION, x)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb8 # At line number 184
+ .long .LASF815 # The macro: "_PSTL_PRAGMA_MESSAGE(x) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb9 # At line number 185
+ .long .LASF816 # The macro: "_PSTL_PRAGMA_MESSAGE_POLICIES(x) "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.cconfig.h.2874.54f1071a8367a9bf141fad3e68fc75e0,comdat
+.Ldebug_macro15:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb3a # At line number 2874
+ .long .LASF817 # The macro: "_GLIBCXX_HAVE_ACOSF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb3d # At line number 2877
+ .long .LASF818 # The macro: "_GLIBCXX_HAVE_ACOSL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb40 # At line number 2880
+ .long .LASF819 # The macro: "_GLIBCXX_HAVE_ALIGNED_ALLOC 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb43 # At line number 2883
+ .long .LASF820 # The macro: "_GLIBCXX_HAVE_ARC4RANDOM 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb46 # At line number 2886
+ .long .LASF821 # The macro: "_GLIBCXX_HAVE_ARPA_INET_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb49 # At line number 2889
+ .long .LASF822 # The macro: "_GLIBCXX_HAVE_ASINF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4c # At line number 2892
+ .long .LASF823 # The macro: "_GLIBCXX_HAVE_ASINL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4f # At line number 2895
+ .long .LASF824 # The macro: "_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb52 # At line number 2898
+ .long .LASF825 # The macro: "_GLIBCXX_HAVE_ATAN2F 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb55 # At line number 2901
+ .long .LASF826 # The macro: "_GLIBCXX_HAVE_ATAN2L 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb58 # At line number 2904
+ .long .LASF827 # The macro: "_GLIBCXX_HAVE_ATANF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb5b # At line number 2907
+ .long .LASF828 # The macro: "_GLIBCXX_HAVE_ATANL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb5e # At line number 2910
+ .long .LASF829 # The macro: "_GLIBCXX_HAVE_ATOMIC_LOCK_POLICY 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb61 # At line number 2913
+ .long .LASF830 # The macro: "_GLIBCXX_HAVE_AT_QUICK_EXIT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb65 # At line number 2917
+ .long .LASF831 # The macro: "_GLIBCXX_HAVE_C99_FLT_EVAL_TYPES 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb6b # At line number 2923
+ .long .LASF832 # The macro: "_GLIBCXX_HAVE_CEILF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb6e # At line number 2926
+ .long .LASF833 # The macro: "_GLIBCXX_HAVE_CEILL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb71 # At line number 2929
+ .long .LASF834 # The macro: "_GLIBCXX_HAVE_COMPLEX_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb74 # At line number 2932
+ .long .LASF835 # The macro: "_GLIBCXX_HAVE_COSF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb77 # At line number 2935
+ .long .LASF836 # The macro: "_GLIBCXX_HAVE_COSHF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb7a # At line number 2938
+ .long .LASF837 # The macro: "_GLIBCXX_HAVE_COSHL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb7d # At line number 2941
+ .long .LASF838 # The macro: "_GLIBCXX_HAVE_COSL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb81 # At line number 2945
+ .long .LASF839 # The macro: "_GLIBCXX_HAVE_DECL_STRNLEN 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb84 # At line number 2948
+ .long .LASF840 # The macro: "_GLIBCXX_HAVE_DIRENT_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb87 # At line number 2951
+ .long .LASF841 # The macro: "_GLIBCXX_HAVE_DIRFD 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb8a # At line number 2954
+ .long .LASF842 # The macro: "_GLIBCXX_HAVE_DLFCN_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb8d # At line number 2957
+ .long .LASF843 # The macro: "_GLIBCXX_HAVE_ENDIAN_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb90 # At line number 2960
+ .long .LASF844 # The macro: "_GLIBCXX_HAVE_EXCEPTION_PTR_SINCE_GCC46 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb93 # At line number 2963
+ .long .LASF845 # The macro: "_GLIBCXX_HAVE_EXECINFO_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb96 # At line number 2966
+ .long .LASF846 # The macro: "_GLIBCXX_HAVE_EXPF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb99 # At line number 2969
+ .long .LASF847 # The macro: "_GLIBCXX_HAVE_EXPL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb9c # At line number 2972
+ .long .LASF848 # The macro: "_GLIBCXX_HAVE_FABSF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb9f # At line number 2975
+ .long .LASF849 # The macro: "_GLIBCXX_HAVE_FABSL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xba2 # At line number 2978
+ .long .LASF850 # The macro: "_GLIBCXX_HAVE_FCNTL_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xba5 # At line number 2981
+ .long .LASF851 # The macro: "_GLIBCXX_HAVE_FDOPENDIR 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xba8 # At line number 2984
+ .long .LASF852 # The macro: "_GLIBCXX_HAVE_FENV_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbab # At line number 2987
+ .long .LASF853 # The macro: "_GLIBCXX_HAVE_FINITE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbae # At line number 2990
+ .long .LASF854 # The macro: "_GLIBCXX_HAVE_FINITEF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbb1 # At line number 2993
+ .long .LASF855 # The macro: "_GLIBCXX_HAVE_FINITEL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbb4 # At line number 2996
+ .long .LASF856 # The macro: "_GLIBCXX_HAVE_FLOAT_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbb7 # At line number 2999
+ .long .LASF857 # The macro: "_GLIBCXX_HAVE_FLOORF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbba # At line number 3002
+ .long .LASF858 # The macro: "_GLIBCXX_HAVE_FLOORL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbbd # At line number 3005
+ .long .LASF859 # The macro: "_GLIBCXX_HAVE_FMODF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbc0 # At line number 3008
+ .long .LASF860 # The macro: "_GLIBCXX_HAVE_FMODL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbc9 # At line number 3017
+ .long .LASF861 # The macro: "_GLIBCXX_HAVE_FREXPF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbcc # At line number 3020
+ .long .LASF862 # The macro: "_GLIBCXX_HAVE_FREXPL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbcf # At line number 3023
+ .long .LASF863 # The macro: "_GLIBCXX_HAVE_GETENTROPY 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbd2 # At line number 3026
+ .long .LASF864 # The macro: "_GLIBCXX_HAVE_GETIPINFO 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbd5 # At line number 3029
+ .long .LASF865 # The macro: "_GLIBCXX_HAVE_GETS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbd8 # At line number 3032
+ .long .LASF866 # The macro: "_GLIBCXX_HAVE_HYPOT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbdb # At line number 3035
+ .long .LASF867 # The macro: "_GLIBCXX_HAVE_HYPOTF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbde # At line number 3038
+ .long .LASF868 # The macro: "_GLIBCXX_HAVE_HYPOTL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbe1 # At line number 3041
+ .long .LASF869 # The macro: "_GLIBCXX_HAVE_ICONV 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbe7 # At line number 3047
+ .long .LASF870 # The macro: "_GLIBCXX_HAVE_INTTYPES_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbed # At line number 3053
+ .long .LASF871 # The macro: "_GLIBCXX_HAVE_ISINFF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbf0 # At line number 3056
+ .long .LASF872 # The macro: "_GLIBCXX_HAVE_ISINFL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbf6 # At line number 3062
+ .long .LASF873 # The macro: "_GLIBCXX_HAVE_ISNANF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbf9 # At line number 3065
+ .long .LASF874 # The macro: "_GLIBCXX_HAVE_ISNANL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbfc # At line number 3068
+ .long .LASF875 # The macro: "_GLIBCXX_HAVE_ISWBLANK 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbff # At line number 3071
+ .long .LASF876 # The macro: "_GLIBCXX_HAVE_LC_MESSAGES 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc02 # At line number 3074
+ .long .LASF877 # The macro: "_GLIBCXX_HAVE_LDEXPF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc05 # At line number 3077
+ .long .LASF878 # The macro: "_GLIBCXX_HAVE_LDEXPL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc08 # At line number 3080
+ .long .LASF879 # The macro: "_GLIBCXX_HAVE_LIBINTL_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc0b # At line number 3083
+ .long .LASF880 # The macro: "_GLIBCXX_HAVE_LIMIT_AS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc0e # At line number 3086
+ .long .LASF881 # The macro: "_GLIBCXX_HAVE_LIMIT_DATA 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc11 # At line number 3089
+ .long .LASF882 # The macro: "_GLIBCXX_HAVE_LIMIT_FSIZE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc14 # At line number 3092
+ .long .LASF883 # The macro: "_GLIBCXX_HAVE_LIMIT_RSS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc17 # At line number 3095
+ .long .LASF884 # The macro: "_GLIBCXX_HAVE_LIMIT_VMEM 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc1a # At line number 3098
+ .long .LASF885 # The macro: "_GLIBCXX_HAVE_LINK 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc1d # At line number 3101
+ .long .LASF886 # The macro: "_GLIBCXX_HAVE_LINK_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc20 # At line number 3104
+ .long .LASF887 # The macro: "_GLIBCXX_HAVE_LINUX_FUTEX 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc23 # At line number 3107
+ .long .LASF888 # The macro: "_GLIBCXX_HAVE_LINUX_RANDOM_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc26 # At line number 3110
+ .long .LASF889 # The macro: "_GLIBCXX_HAVE_LINUX_TYPES_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc29 # At line number 3113
+ .long .LASF890 # The macro: "_GLIBCXX_HAVE_LOCALE_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc2c # At line number 3116
+ .long .LASF891 # The macro: "_GLIBCXX_HAVE_LOG10F 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc2f # At line number 3119
+ .long .LASF892 # The macro: "_GLIBCXX_HAVE_LOG10L 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc32 # At line number 3122
+ .long .LASF893 # The macro: "_GLIBCXX_HAVE_LOGF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc35 # At line number 3125
+ .long .LASF894 # The macro: "_GLIBCXX_HAVE_LOGL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc38 # At line number 3128
+ .long .LASF895 # The macro: "_GLIBCXX_HAVE_LSEEK 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc41 # At line number 3137
+ .long .LASF896 # The macro: "_GLIBCXX_HAVE_MBSTATE_T 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc44 # At line number 3140
+ .long .LASF897 # The macro: "_GLIBCXX_HAVE_MEMALIGN 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc47 # At line number 3143
+ .long .LASF898 # The macro: "_GLIBCXX_HAVE_MEMORY_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc4a # At line number 3146
+ .long .LASF899 # The macro: "_GLIBCXX_HAVE_MODF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc4d # At line number 3149
+ .long .LASF900 # The macro: "_GLIBCXX_HAVE_MODFF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc50 # At line number 3152
+ .long .LASF901 # The macro: "_GLIBCXX_HAVE_MODFL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc56 # At line number 3158
+ .long .LASF902 # The macro: "_GLIBCXX_HAVE_NETDB_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc59 # At line number 3161
+ .long .LASF903 # The macro: "_GLIBCXX_HAVE_NETINET_IN_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc5c # At line number 3164
+ .long .LASF904 # The macro: "_GLIBCXX_HAVE_NETINET_TCP_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc65 # At line number 3173
+ .long .LASF905 # The macro: "_GLIBCXX_HAVE_OPENAT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc68 # At line number 3176
+ .long .LASF906 # The macro: "_GLIBCXX_HAVE_O_NONBLOCK 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc6b # At line number 3179
+ .long .LASF907 # The macro: "_GLIBCXX_HAVE_POLL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc6e # At line number 3182
+ .long .LASF908 # The macro: "_GLIBCXX_HAVE_POLL_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc71 # At line number 3185
+ .long .LASF909 # The macro: "_GLIBCXX_HAVE_POSIX_MEMALIGN 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc75 # At line number 3189
+ .long .LASF910 # The macro: "_GLIBCXX_HAVE_POSIX_SEMAPHORE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc78 # At line number 3192
+ .long .LASF911 # The macro: "_GLIBCXX_HAVE_POWF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc7b # At line number 3195
+ .long .LASF912 # The macro: "_GLIBCXX_HAVE_POWL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc81 # At line number 3201
+ .long .LASF913 # The macro: "_GLIBCXX_HAVE_QUICK_EXIT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc84 # At line number 3204
+ .long .LASF914 # The macro: "_GLIBCXX_HAVE_READLINK 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc87 # At line number 3207
+ .long .LASF915 # The macro: "_GLIBCXX_HAVE_SECURE_GETENV 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc8a # At line number 3210
+ .long .LASF916 # The macro: "_GLIBCXX_HAVE_SETENV 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc8d # At line number 3213
+ .long .LASF917 # The macro: "_GLIBCXX_HAVE_SINCOS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc90 # At line number 3216
+ .long .LASF918 # The macro: "_GLIBCXX_HAVE_SINCOSF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc93 # At line number 3219
+ .long .LASF919 # The macro: "_GLIBCXX_HAVE_SINCOSL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc96 # At line number 3222
+ .long .LASF920 # The macro: "_GLIBCXX_HAVE_SINF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc99 # At line number 3225
+ .long .LASF921 # The macro: "_GLIBCXX_HAVE_SINHF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc9c # At line number 3228
+ .long .LASF922 # The macro: "_GLIBCXX_HAVE_SINHL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc9f # At line number 3231
+ .long .LASF923 # The macro: "_GLIBCXX_HAVE_SINL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xca5 # At line number 3237
+ .long .LASF924 # The macro: "_GLIBCXX_HAVE_SOCKATMARK 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xca8 # At line number 3240
+ .long .LASF925 # The macro: "_GLIBCXX_HAVE_SQRTF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcab # At line number 3243
+ .long .LASF926 # The macro: "_GLIBCXX_HAVE_SQRTL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcae # At line number 3246
+ .long .LASF927 # The macro: "_GLIBCXX_HAVE_STACKTRACE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcb1 # At line number 3249
+ .long .LASF928 # The macro: "_GLIBCXX_HAVE_STDALIGN_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcb4 # At line number 3252
+ .long .LASF929 # The macro: "_GLIBCXX_HAVE_STDBOOL_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcb7 # At line number 3255
+ .long .LASF930 # The macro: "_GLIBCXX_HAVE_STDINT_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcba # At line number 3258
+ .long .LASF931 # The macro: "_GLIBCXX_HAVE_STDLIB_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcbd # At line number 3261
+ .long .LASF932 # The macro: "_GLIBCXX_HAVE_STRERROR_L 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcc0 # At line number 3264
+ .long .LASF933 # The macro: "_GLIBCXX_HAVE_STRERROR_R 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcc3 # At line number 3267
+ .long .LASF934 # The macro: "_GLIBCXX_HAVE_STRINGS_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcc6 # At line number 3270
+ .long .LASF935 # The macro: "_GLIBCXX_HAVE_STRING_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcc9 # At line number 3273
+ .long .LASF936 # The macro: "_GLIBCXX_HAVE_STRTOF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xccc # At line number 3276
+ .long .LASF937 # The macro: "_GLIBCXX_HAVE_STRTOLD 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xccf # At line number 3279
+ .long .LASF938 # The macro: "_GLIBCXX_HAVE_STRUCT_DIRENT_D_TYPE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcd2 # At line number 3282
+ .long .LASF939 # The macro: "_GLIBCXX_HAVE_STRXFRM_L 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcd5 # At line number 3285
+ .long .LASF940 # The macro: "_GLIBCXX_HAVE_SYMLINK 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcd9 # At line number 3289
+ .long .LASF941 # The macro: "_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcdf # At line number 3295
+ .long .LASF942 # The macro: "_GLIBCXX_HAVE_SYS_IOCTL_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xce2 # At line number 3298
+ .long .LASF943 # The macro: "_GLIBCXX_HAVE_SYS_IPC_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xceb # At line number 3307
+ .long .LASF944 # The macro: "_GLIBCXX_HAVE_SYS_MMAN_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcee # At line number 3310
+ .long .LASF945 # The macro: "_GLIBCXX_HAVE_SYS_PARAM_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcf1 # At line number 3313
+ .long .LASF946 # The macro: "_GLIBCXX_HAVE_SYS_RESOURCE_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcf4 # At line number 3316
+ .long .LASF947 # The macro: "_GLIBCXX_HAVE_SYS_SDT_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcf7 # At line number 3319
+ .long .LASF948 # The macro: "_GLIBCXX_HAVE_SYS_SEM_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcfa # At line number 3322
+ .long .LASF949 # The macro: "_GLIBCXX_HAVE_SYS_SOCKET_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcfd # At line number 3325
+ .long .LASF950 # The macro: "_GLIBCXX_HAVE_SYS_STATVFS_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd00 # At line number 3328
+ .long .LASF951 # The macro: "_GLIBCXX_HAVE_SYS_STAT_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd03 # At line number 3331
+ .long .LASF952 # The macro: "_GLIBCXX_HAVE_SYS_SYSINFO_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd06 # At line number 3334
+ .long .LASF953 # The macro: "_GLIBCXX_HAVE_SYS_TIME_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd09 # At line number 3337
+ .long .LASF954 # The macro: "_GLIBCXX_HAVE_SYS_TYPES_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd0c # At line number 3340
+ .long .LASF955 # The macro: "_GLIBCXX_HAVE_SYS_UIO_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd12 # At line number 3346
+ .long .LASF956 # The macro: "_GLIBCXX_HAVE_S_ISREG 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd15 # At line number 3349
+ .long .LASF957 # The macro: "_GLIBCXX_HAVE_TANF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd18 # At line number 3352
+ .long .LASF958 # The macro: "_GLIBCXX_HAVE_TANHF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd1b # At line number 3355
+ .long .LASF959 # The macro: "_GLIBCXX_HAVE_TANHL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd1e # At line number 3358
+ .long .LASF960 # The macro: "_GLIBCXX_HAVE_TANL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd21 # At line number 3361
+ .long .LASF961 # The macro: "_GLIBCXX_HAVE_TGMATH_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd24 # At line number 3364
+ .long .LASF962 # The macro: "_GLIBCXX_HAVE_TIMESPEC_GET 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2a # At line number 3370
+ .long .LASF963 # The macro: "_GLIBCXX_HAVE_TLS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2d # At line number 3373
+ .long .LASF964 # The macro: "_GLIBCXX_HAVE_TRUNCATE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd30 # At line number 3376
+ .long .LASF965 # The macro: "_GLIBCXX_HAVE_UCHAR_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd33 # At line number 3379
+ .long .LASF966 # The macro: "_GLIBCXX_HAVE_UNISTD_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd36 # At line number 3382
+ .long .LASF967 # The macro: "_GLIBCXX_HAVE_UNLINKAT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd39 # At line number 3385
+ .long .LASF968 # The macro: "_GLIBCXX_HAVE_USELOCALE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd3f # At line number 3391
+ .long .LASF969 # The macro: "_GLIBCXX_HAVE_UTIME_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd42 # At line number 3394
+ .long .LASF970 # The macro: "_GLIBCXX_HAVE_VFWSCANF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd45 # At line number 3397
+ .long .LASF971 # The macro: "_GLIBCXX_HAVE_VSWSCANF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd48 # At line number 3400
+ .long .LASF972 # The macro: "_GLIBCXX_HAVE_VWSCANF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd4b # At line number 3403
+ .long .LASF973 # The macro: "_GLIBCXX_HAVE_WCHAR_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd4e # At line number 3406
+ .long .LASF974 # The macro: "_GLIBCXX_HAVE_WCSTOF 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd51 # At line number 3409
+ .long .LASF975 # The macro: "_GLIBCXX_HAVE_WCTYPE_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd57 # At line number 3415
+ .long .LASF976 # The macro: "_GLIBCXX_HAVE_WRITEV 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd66 # At line number 3430
+ .long .LASF977 # The macro: "_GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd69 # At line number 3433
+ .long .LASF978 # The macro: "_GLIBCXX_ICONV_CONST "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd6d # At line number 3437
+ .long .LASF979 # The macro: "_GLIBCXX_LT_OBJDIR ".libs/""
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd73 # At line number 3443
+ .long .LASF980 # The macro: "_GLIBCXX_PACKAGE_BUGREPORT """
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd76 # At line number 3446
+ .long .LASF981 # The macro: "_GLIBCXX_PACKAGE_NAME "package-unused""
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd79 # At line number 3449
+ .long .LASF982 # The macro: "_GLIBCXX_PACKAGE_STRING "package-unused version-unused""
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd7c # At line number 3452
+ .long .LASF983 # The macro: "_GLIBCXX_PACKAGE_TARNAME "libstdc++""
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd7f # At line number 3455
+ .long .LASF984 # The macro: "_GLIBCXX_PACKAGE_URL """
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd82 # At line number 3458
+ .long .LASF985 # The macro: "_GLIBCXX_PACKAGE__GLIBCXX_VERSION "version-unused""
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd85 # At line number 3461
+ .long .LASF986 # The macro: "_GLIBCXX_STDC_HEADERS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd8c # At line number 3468
+ .long .LASF987 # The macro: "_GLIBCXX_DARWIN_USE_64_BIT_INODE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd95 # At line number 3477
+ .long .LASF988 # The macro: "_GLIBCXX11_USE_C99_COMPLEX 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd99 # At line number 3481
+ .long .LASF989 # The macro: "_GLIBCXX11_USE_C99_MATH 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd9d # At line number 3485
+ .long .LASF990 # The macro: "_GLIBCXX11_USE_C99_STDIO 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xda1 # At line number 3489
+ .long .LASF991 # The macro: "_GLIBCXX11_USE_C99_STDLIB 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xda5 # At line number 3493
+ .long .LASF992 # The macro: "_GLIBCXX11_USE_C99_WCHAR 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdaa # At line number 3498
+ .long .LASF993 # The macro: "_GLIBCXX98_USE_C99_COMPLEX 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdae # At line number 3502
+ .long .LASF994 # The macro: "_GLIBCXX98_USE_C99_MATH 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdb2 # At line number 3506
+ .long .LASF995 # The macro: "_GLIBCXX98_USE_C99_STDIO 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdb6 # At line number 3510
+ .long .LASF996 # The macro: "_GLIBCXX98_USE_C99_STDLIB 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdba # At line number 3514
+ .long .LASF997 # The macro: "_GLIBCXX98_USE_C99_WCHAR 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdbd # At line number 3517
+ .long .LASF998 # The macro: "_GLIBCXX_ATOMIC_BUILTINS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc1 # At line number 3521
+ .long .LASF999 # The macro: "_GLIBCXX_CAN_ALIGNAS_DESTRUCTIVE_SIZE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc8 # At line number 3528
+ .long .LASF1000 # The macro: "_GLIBCXX_FULLY_DYNAMIC_STRING 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdcb # At line number 3531
+ .long .LASF1001 # The macro: "_GLIBCXX_HAS_GTHREADS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdce # At line number 3534
+ .long .LASF1002 # The macro: "_GLIBCXX_HOSTED __STDC_HOSTED__"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdd6 # At line number 3542
+ .long .LASF1003 # The macro: "_GLIBCXX_MANGLE_SIZE_T m"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xde2 # At line number 3554
+ .long .LASF1004 # The macro: "_GLIBCXX_RES_LIMITS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdeb # At line number 3563
+ .long .LASF1005 # The macro: "_GLIBCXX_STDIO_EOF -1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdee # At line number 3566
+ .long .LASF1006 # The macro: "_GLIBCXX_STDIO_SEEK_CUR 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdf1 # At line number 3569
+ .long .LASF1007 # The macro: "_GLIBCXX_STDIO_SEEK_END 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdf4 # At line number 3572
+ .long .LASF1008 # The macro: "_GLIBCXX_SYMVER 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdfa # At line number 3578
+ .long .LASF1009 # The macro: "_GLIBCXX_SYMVER_GNU 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe04 # At line number 3588
+ .long .LASF1010 # The macro: "_GLIBCXX_USE_C11_UCHAR_CXX11 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe08 # At line number 3592
+ .long .LASF1011 # The macro: "_GLIBCXX_USE_C99 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe0d # At line number 3597
+ .long .LASF1012 # The macro: "_GLIBCXX_USE_C99_COMPLEX_ARC 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe12 # At line number 3602
+ .long .LASF1013 # The macro: "_GLIBCXX_USE_C99_COMPLEX_TR1 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe16 # At line number 3606
+ .long .LASF1014 # The macro: "_GLIBCXX_USE_C99_CTYPE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe1a # At line number 3610
+ .long .LASF1015 # The macro: "_GLIBCXX_USE_C99_CTYPE_TR1 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe1e # At line number 3614
+ .long .LASF1016 # The macro: "_GLIBCXX_USE_C99_FENV 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe22 # At line number 3618
+ .long .LASF1017 # The macro: "_GLIBCXX_USE_C99_FENV_TR1 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe26 # At line number 3622
+ .long .LASF1018 # The macro: "_GLIBCXX_USE_C99_INTTYPES 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe2a # At line number 3626
+ .long .LASF1019 # The macro: "_GLIBCXX_USE_C99_INTTYPES_TR1 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe2e # At line number 3630
+ .long .LASF1020 # The macro: "_GLIBCXX_USE_C99_INTTYPES_WCHAR_T 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe32 # At line number 3634
+ .long .LASF1021 # The macro: "_GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe36 # At line number 3638
+ .long .LASF1022 # The macro: "_GLIBCXX_USE_C99_MATH_FUNCS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe3a # At line number 3642
+ .long .LASF1023 # The macro: "_GLIBCXX_USE_C99_MATH_TR1 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe3e # At line number 3646
+ .long .LASF1024 # The macro: "_GLIBCXX_USE_C99_STDINT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe42 # At line number 3650
+ .long .LASF1025 # The macro: "_GLIBCXX_USE_C99_STDINT_TR1 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe45 # At line number 3653
+ .long .LASF1026 # The macro: "_GLIBCXX_USE_CHDIR 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe48 # At line number 3656
+ .long .LASF1027 # The macro: "_GLIBCXX_USE_CHMOD 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe4f # At line number 3663
+ .long .LASF1028 # The macro: "_GLIBCXX_USE_CLOCK_MONOTONIC 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe52 # At line number 3666
+ .long .LASF1029 # The macro: "_GLIBCXX_USE_CLOCK_REALTIME 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe59 # At line number 3673
+ .long .LASF1030 # The macro: "_GLIBCXX_USE_DECIMAL_FLOAT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe5d # At line number 3677
+ .long .LASF1031 # The macro: "_GLIBCXX_USE_DEV_RANDOM 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe60 # At line number 3680
+ .long .LASF1032 # The macro: "_GLIBCXX_USE_FCHMOD 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe63 # At line number 3683
+ .long .LASF1033 # The macro: "_GLIBCXX_USE_FCHMODAT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe66 # At line number 3686
+ .long .LASF1034 # The macro: "_GLIBCXX_USE_FSEEKO_FTELLO 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe69 # At line number 3689
+ .long .LASF1035 # The macro: "_GLIBCXX_USE_GETCWD 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe6c # At line number 3692
+ .long .LASF1036 # The macro: "_GLIBCXX_USE_GETTIMEOFDAY 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe6f # At line number 3695
+ .long .LASF1037 # The macro: "_GLIBCXX_USE_GET_NPROCS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe72 # At line number 3698
+ .long .LASF1038 # The macro: "_GLIBCXX_USE_INIT_PRIORITY_ATTRIBUTE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe75 # At line number 3701
+ .long .LASF1039 # The macro: "_GLIBCXX_USE_LFS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe78 # At line number 3704
+ .long .LASF1040 # The macro: "_GLIBCXX_USE_LONG_LONG 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe7b # At line number 3707
+ .long .LASF1041 # The macro: "_GLIBCXX_USE_LSTAT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe7e # At line number 3710
+ .long .LASF1042 # The macro: "_GLIBCXX_USE_MKDIR 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe81 # At line number 3713
+ .long .LASF1043 # The macro: "_GLIBCXX_USE_NANOSLEEP 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe84 # At line number 3716
+ .long .LASF1044 # The macro: "_GLIBCXX_USE_NLS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe87 # At line number 3719
+ .long .LASF1045 # The macro: "_GLIBCXX_USE_NL_LANGINFO_L 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe8d # At line number 3725
+ .long .LASF1046 # The macro: "_GLIBCXX_USE_PTHREAD_COND_CLOCKWAIT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe90 # At line number 3728
+ .long .LASF1047 # The macro: "_GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK (_GLIBCXX_TSAN==0)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe94 # At line number 3732
+ .long .LASF1048 # The macro: "_GLIBCXX_USE_PTHREAD_RWLOCK_CLOCKLOCK 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe97 # At line number 3735
+ .long .LASF1049 # The macro: "_GLIBCXX_USE_PTHREAD_RWLOCK_T 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe9b # At line number 3739
+ .long .LASF1050 # The macro: "_GLIBCXX_USE_RANDOM_TR1 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe9e # At line number 3742
+ .long .LASF1051 # The macro: "_GLIBCXX_USE_REALPATH 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xea1 # At line number 3745
+ .long .LASF1052 # The macro: "_GLIBCXX_USE_SCHED_YIELD 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xea4 # At line number 3748
+ .long .LASF1053 # The macro: "_GLIBCXX_USE_SC_NPROCESSORS_ONLN 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xeaa # At line number 3754
+ .long .LASF1054 # The macro: "_GLIBCXX_USE_SENDFILE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xeb0 # At line number 3760
+ .long .LASF1055 # The macro: "_GLIBCXX_USE_STRUCT_TM_TM_ZONE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xeb3 # At line number 3763
+ .long .LASF1056 # The macro: "_GLIBCXX_USE_ST_MTIM 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xeb9 # At line number 3769
+ .long .LASF1057 # The macro: "_GLIBCXX_USE_TMPNAM 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xebd # At line number 3773
+ .long .LASF1058 # The macro: "_GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_CXX20 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xec1 # At line number 3777
+ .long .LASF1059 # The macro: "_GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_FCHAR8_T 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xec4 # At line number 3780
+ .long .LASF1060 # The macro: "_GLIBCXX_USE_UTIME 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xec8 # At line number 3784
+ .long .LASF1061 # The macro: "_GLIBCXX_USE_UTIMENSAT 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xecb # At line number 3787
+ .long .LASF1062 # The macro: "_GLIBCXX_USE_WCHAR_T 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xed4 # At line number 3796
+ .long .LASF1063 # The macro: "_GLIBCXX_VERBOSE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xed7 # At line number 3799
+ .long .LASF1064 # The macro: "_GLIBCXX_X86_RDRAND 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xeda # At line number 3802
+ .long .LASF1065 # The macro: "_GLIBCXX_X86_RDSEED 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xedd # At line number 3805
+ .long .LASF1066 # The macro: "_GLIBCXX_ZONEINFO_DIR "/usr/share/zoneinfo""
+ .byte 0x5 # Define macro strp
+ .uleb128 0xee0 # At line number 3808
+ .long .LASF1067 # The macro: "_GTHREAD_USE_MUTEX_TIMEDLOCK 1"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.new.45.14daa5310e6c27c6800c0ff00fae2903,comdat
+.Ldebug_macro16:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d # At line number 45
+ .long .LASF1073 # The macro: "__glibcxx_want_launder "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e # At line number 46
+ .long .LASF1074 # The macro: "__glibcxx_want_hardware_interference_size "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f # At line number 47
+ .long .LASF1075 # The macro: "__glibcxx_want_destroying_delete "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x30 # At line number 48
+ .long .LASF1076 # The macro: "__glibcxx_want_constexpr_new "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.version.h.55.0b9e7054804f0f6f91d57c80dd7f547b,comdat
+.Ldebug_macro17:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1077 # The macro: "__glibcxx_incomplete_container_elements 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1078 # The macro: "__glibcxx_want_incomplete_container_elements"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1079 # The macro: "__glibcxx_uncaught_exceptions 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1080 # The macro: "__glibcxx_want_uncaught_exceptions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1081 # The macro: "__glibcxx_allocator_traits_is_always_equal 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1082 # The macro: "__glibcxx_want_allocator_traits_is_always_equal"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x55 # At line number 85
+ .long .LASF1083 # The macro: "__glibcxx_is_null_pointer 201309L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1084 # The macro: "__glibcxx_want_is_null_pointer"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5f # At line number 95
+ .long .LASF1085 # The macro: "__glibcxx_result_of_sfinae 201210L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1086 # The macro: "__glibcxx_want_result_of_sfinae"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1087 # The macro: "__glibcxx_shared_ptr_arrays 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1088 # The macro: "__glibcxx_want_shared_ptr_arrays"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x78 # At line number 120
+ .long .LASF1089 # The macro: "__glibcxx_is_swappable 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF1090 # The macro: "__glibcxx_want_is_swappable"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x82 # At line number 130
+ .long .LASF1091 # The macro: "__glibcxx_void_t 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x88 # At line number 136
+ .long .LASF1092 # The macro: "__glibcxx_want_void_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8c # At line number 140
+ .long .LASF1093 # The macro: "__glibcxx_enable_shared_from_this 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x92 # At line number 146
+ .long .LASF1094 # The macro: "__glibcxx_want_enable_shared_from_this"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x96 # At line number 150
+ .long .LASF1095 # The macro: "__glibcxx_math_spec_funcs 201003L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF1096 # The macro: "__glibcxx_want_math_spec_funcs"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xa6 # At line number 166
+ .long .LASF1097 # The macro: "__glibcxx_want_coroutine"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa # At line number 170
+ .long .LASF1098 # The macro: "__glibcxx_exchange_function 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb0 # At line number 176
+ .long .LASF1099 # The macro: "__glibcxx_want_exchange_function"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4 # At line number 180
+ .long .LASF1100 # The macro: "__glibcxx_integer_sequence 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xba # At line number 186
+ .long .LASF1101 # The macro: "__glibcxx_want_integer_sequence"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbe # At line number 190
+ .long .LASF1102 # The macro: "__glibcxx_integral_constant_callable 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xc4 # At line number 196
+ .long .LASF1103 # The macro: "__glibcxx_want_integral_constant_callable"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc8 # At line number 200
+ .long .LASF1104 # The macro: "__glibcxx_is_final 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xce # At line number 206
+ .long .LASF1105 # The macro: "__glibcxx_want_is_final"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2 # At line number 210
+ .long .LASF1106 # The macro: "__glibcxx_make_reverse_iterator 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd8 # At line number 216
+ .long .LASF1107 # The macro: "__glibcxx_want_make_reverse_iterator"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc # At line number 220
+ .long .LASF1108 # The macro: "__glibcxx_null_iterators 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe2 # At line number 226
+ .long .LASF1109 # The macro: "__glibcxx_want_null_iterators"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe6 # At line number 230
+ .long .LASF1110 # The macro: "__glibcxx_transformation_trait_aliases 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xec # At line number 236
+ .long .LASF1111 # The macro: "__glibcxx_want_transformation_trait_aliases"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf0 # At line number 240
+ .long .LASF1112 # The macro: "__glibcxx_transparent_operators 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf6 # At line number 246
+ .long .LASF1113 # The macro: "__glibcxx_want_transparent_operators"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xfa # At line number 250
+ .long .LASF1114 # The macro: "__glibcxx_tuple_element_t 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x100 # At line number 256
+ .long .LASF1115 # The macro: "__glibcxx_want_tuple_element_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x104 # At line number 260
+ .long .LASF1116 # The macro: "__glibcxx_tuples_by_type 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x10a # At line number 266
+ .long .LASF1117 # The macro: "__glibcxx_want_tuples_by_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10e # At line number 270
+ .long .LASF1118 # The macro: "__glibcxx_robust_nonmodifying_seq_ops 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x114 # At line number 276
+ .long .LASF1119 # The macro: "__glibcxx_want_robust_nonmodifying_seq_ops"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11d # At line number 285
+ .long .LASF1120 # The macro: "__glibcxx_to_chars 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x123 # At line number 291
+ .long .LASF1121 # The macro: "__glibcxx_want_to_chars"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x127 # At line number 295
+ .long .LASF1122 # The macro: "__glibcxx_chrono_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x12d # At line number 301
+ .long .LASF1123 # The macro: "__glibcxx_want_chrono_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x131 # At line number 305
+ .long .LASF1124 # The macro: "__glibcxx_complex_udls 201309L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x137 # At line number 311
+ .long .LASF1125 # The macro: "__glibcxx_want_complex_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13b # At line number 315
+ .long .LASF1126 # The macro: "__glibcxx_generic_associative_lookup 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x141 # At line number 321
+ .long .LASF1127 # The macro: "__glibcxx_want_generic_associative_lookup"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x145 # At line number 325
+ .long .LASF1128 # The macro: "__glibcxx_make_unique 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x14b # At line number 331
+ .long .LASF1129 # The macro: "__glibcxx_want_make_unique"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14f # At line number 335
+ .long .LASF1130 # The macro: "__glibcxx_quoted_string_io 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x155 # At line number 341
+ .long .LASF1131 # The macro: "__glibcxx_want_quoted_string_io"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x159 # At line number 345
+ .long .LASF1132 # The macro: "__glibcxx_shared_timed_mutex 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x15f # At line number 351
+ .long .LASF1133 # The macro: "__glibcxx_want_shared_timed_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x163 # At line number 355
+ .long .LASF1134 # The macro: "__glibcxx_string_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x169 # At line number 361
+ .long .LASF1135 # The macro: "__glibcxx_want_string_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16d # At line number 365
+ .long .LASF1136 # The macro: "__glibcxx_addressof_constexpr 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x173 # At line number 371
+ .long .LASF1137 # The macro: "__glibcxx_want_addressof_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x177 # At line number 375
+ .long .LASF1138 # The macro: "__glibcxx_any 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x17d # At line number 381
+ .long .LASF1139 # The macro: "__glibcxx_want_any"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x181 # At line number 385
+ .long .LASF1140 # The macro: "__glibcxx_apply 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x187 # At line number 391
+ .long .LASF1141 # The macro: "__glibcxx_want_apply"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18b # At line number 395
+ .long .LASF1142 # The macro: "__glibcxx_as_const 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x191 # At line number 401
+ .long .LASF1143 # The macro: "__glibcxx_want_as_const"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x195 # At line number 405
+ .long .LASF1144 # The macro: "__glibcxx_atomic_is_always_lock_free 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19b # At line number 411
+ .long .LASF1145 # The macro: "__glibcxx_want_atomic_is_always_lock_free"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x19f # At line number 415
+ .long .LASF1146 # The macro: "__glibcxx_bool_constant 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a5 # At line number 421
+ .long .LASF1147 # The macro: "__glibcxx_want_bool_constant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1148 # The macro: "__glibcxx_byte 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1af # At line number 431
+ .long .LASF1149 # The macro: "__glibcxx_want_byte"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1b3 # At line number 435
+ .long .LASF1150 # The macro: "__glibcxx_has_unique_object_representations 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1b9 # At line number 441
+ .long .LASF1151 # The macro: "__glibcxx_want_has_unique_object_representations"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1bd # At line number 445
+ .long .LASF1152 # The macro: "__glibcxx_hardware_interference_size 201703L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1bf # At line number 447
+ .long .LASF1153 # The macro: "__cpp_lib_hardware_interference_size 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1c3 # At line number 451
+ .long .LASF1154 # The macro: "__glibcxx_want_hardware_interference_size"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c7 # At line number 455
+ .long .LASF1155 # The macro: "__glibcxx_invoke 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1cd # At line number 461
+ .long .LASF1156 # The macro: "__glibcxx_want_invoke"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1d1 # At line number 465
+ .long .LASF1157 # The macro: "__glibcxx_is_aggregate 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1d7 # At line number 471
+ .long .LASF1158 # The macro: "__glibcxx_want_is_aggregate"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1db # At line number 475
+ .long .LASF1159 # The macro: "__glibcxx_is_invocable 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1e1 # At line number 481
+ .long .LASF1160 # The macro: "__glibcxx_want_is_invocable"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e5 # At line number 485
+ .long .LASF1161 # The macro: "__glibcxx_launder 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e7 # At line number 487
+ .long .LASF1162 # The macro: "__cpp_lib_launder 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1eb # At line number 491
+ .long .LASF1163 # The macro: "__glibcxx_want_launder"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1ef # At line number 495
+ .long .LASF1164 # The macro: "__glibcxx_logical_traits 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1f5 # At line number 501
+ .long .LASF1165 # The macro: "__glibcxx_want_logical_traits"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f9 # At line number 505
+ .long .LASF1166 # The macro: "__glibcxx_make_from_tuple 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1ff # At line number 511
+ .long .LASF1167 # The macro: "__glibcxx_want_make_from_tuple"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x203 # At line number 515
+ .long .LASF1168 # The macro: "__glibcxx_not_fn 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x209 # At line number 521
+ .long .LASF1169 # The macro: "__glibcxx_want_not_fn"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20d # At line number 525
+ .long .LASF1170 # The macro: "__glibcxx_type_trait_variable_templates 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x213 # At line number 531
+ .long .LASF1171 # The macro: "__glibcxx_want_type_trait_variable_templates"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x221 # At line number 545
+ .long .LASF1172 # The macro: "__glibcxx_variant 202102L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x227 # At line number 551
+ .long .LASF1173 # The macro: "__glibcxx_want_variant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22b # At line number 555
+ .long .LASF1174 # The macro: "__glibcxx_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x231 # At line number 561
+ .long .LASF1175 # The macro: "__glibcxx_want_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x235 # At line number 565
+ .long .LASF1176 # The macro: "__glibcxx_gcd 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x23b # At line number 571
+ .long .LASF1177 # The macro: "__glibcxx_want_gcd"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23f # At line number 575
+ .long .LASF1178 # The macro: "__glibcxx_gcd_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x245 # At line number 581
+ .long .LASF1179 # The macro: "__glibcxx_want_gcd_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24e # At line number 590
+ .long .LASF1180 # The macro: "__glibcxx_raw_memory_algorithms 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x254 # At line number 596
+ .long .LASF1181 # The macro: "__glibcxx_want_raw_memory_algorithms"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25d # At line number 605
+ .long .LASF1182 # The macro: "__glibcxx_array_constexpr 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x263 # At line number 611
+ .long .LASF1183 # The macro: "__glibcxx_want_array_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x267 # At line number 615
+ .long .LASF1184 # The macro: "__glibcxx_nonmember_container_access 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x26d # At line number 621
+ .long .LASF1185 # The macro: "__glibcxx_want_nonmember_container_access"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x271 # At line number 625
+ .long .LASF1186 # The macro: "__glibcxx_clamp 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x277 # At line number 631
+ .long .LASF1187 # The macro: "__glibcxx_want_clamp"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27b # At line number 635
+ .long .LASF1188 # The macro: "__glibcxx_sample 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x281 # At line number 641
+ .long .LASF1189 # The macro: "__glibcxx_want_sample"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x285 # At line number 645
+ .long .LASF1190 # The macro: "__glibcxx_boyer_moore_searcher 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x28b # At line number 651
+ .long .LASF1191 # The macro: "__glibcxx_want_boyer_moore_searcher"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x294 # At line number 660
+ .long .LASF1192 # The macro: "__glibcxx_chrono 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x29a # At line number 666
+ .long .LASF1193 # The macro: "__glibcxx_want_chrono"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29e # At line number 670
+ .long .LASF1194 # The macro: "__glibcxx_execution 201902L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2a4 # At line number 676
+ .long .LASF1195 # The macro: "__glibcxx_want_execution"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a8 # At line number 680
+ .long .LASF1196 # The macro: "__glibcxx_filesystem 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ae # At line number 686
+ .long .LASF1197 # The macro: "__glibcxx_want_filesystem"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b2 # At line number 690
+ .long .LASF1198 # The macro: "__glibcxx_hypot 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2b8 # At line number 696
+ .long .LASF1199 # The macro: "__glibcxx_want_hypot"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2bc # At line number 700
+ .long .LASF1200 # The macro: "__glibcxx_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2c2 # At line number 706
+ .long .LASF1201 # The macro: "__glibcxx_want_map_try_emplace"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c6 # At line number 710
+ .long .LASF1202 # The macro: "__glibcxx_math_special_functions 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2cc # At line number 716
+ .long .LASF1203 # The macro: "__glibcxx_want_math_special_functions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d0 # At line number 720
+ .long .LASF1204 # The macro: "__glibcxx_memory_resource 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2db # At line number 731
+ .long .LASF1205 # The macro: "__glibcxx_want_memory_resource"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2df # At line number 735
+ .long .LASF1206 # The macro: "__glibcxx_node_extract 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2e5 # At line number 741
+ .long .LASF1207 # The macro: "__glibcxx_want_node_extract"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e9 # At line number 745
+ .long .LASF1208 # The macro: "__glibcxx_parallel_algorithm 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ef # At line number 751
+ .long .LASF1209 # The macro: "__glibcxx_want_parallel_algorithm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f3 # At line number 755
+ .long .LASF1210 # The macro: "__glibcxx_scoped_lock 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2f9 # At line number 761
+ .long .LASF1211 # The macro: "__glibcxx_want_scoped_lock"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2fd # At line number 765
+ .long .LASF1212 # The macro: "__glibcxx_shared_mutex 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x303 # At line number 771
+ .long .LASF1213 # The macro: "__glibcxx_want_shared_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x307 # At line number 775
+ .long .LASF1214 # The macro: "__glibcxx_shared_ptr_weak_type 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x30d # At line number 781
+ .long .LASF1215 # The macro: "__glibcxx_want_shared_ptr_weak_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x316 # At line number 790
+ .long .LASF1216 # The macro: "__glibcxx_string_view 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x31c # At line number 796
+ .long .LASF1217 # The macro: "__glibcxx_want_string_view"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x320 # At line number 800
+ .long .LASF1218 # The macro: "__glibcxx_unordered_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x326 # At line number 806
+ .long .LASF1219 # The macro: "__glibcxx_want_unordered_map_try_emplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x330 # At line number 816
+ .long .LASF1220 # The macro: "__glibcxx_want_assume_aligned"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x33a # At line number 826
+ .long .LASF1221 # The macro: "__glibcxx_want_atomic_flag_test"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x344 # At line number 836
+ .long .LASF1222 # The macro: "__glibcxx_want_atomic_float"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x34e # At line number 846
+ .long .LASF1223 # The macro: "__glibcxx_want_atomic_lock_free_type_aliases"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x358 # At line number 856
+ .long .LASF1224 # The macro: "__glibcxx_want_atomic_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x362 # At line number 866
+ .long .LASF1225 # The macro: "__glibcxx_want_atomic_value_initialization"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x36c # At line number 876
+ .long .LASF1226 # The macro: "__glibcxx_want_bind_front"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x376 # At line number 886
+ .long .LASF1227 # The macro: "__glibcxx_want_bind_back"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x380 # At line number 896
+ .long .LASF1228 # The macro: "__glibcxx_want_starts_ends_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x38a # At line number 906
+ .long .LASF1229 # The macro: "__glibcxx_want_bit_cast"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x394 # At line number 916
+ .long .LASF1230 # The macro: "__glibcxx_want_bitops"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x39e # At line number 926
+ .long .LASF1231 # The macro: "__glibcxx_want_bounded_array_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3a8 # At line number 936
+ .long .LASF1232 # The macro: "__glibcxx_want_concepts"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b6 # At line number 950
+ .long .LASF1233 # The macro: "__glibcxx_optional 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3bc # At line number 956
+ .long .LASF1234 # The macro: "__glibcxx_want_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3c6 # At line number 966
+ .long .LASF1235 # The macro: "__glibcxx_want_destroying_delete"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d0 # At line number 976
+ .long .LASF1236 # The macro: "__glibcxx_want_constexpr_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3da # At line number 986
+ .long .LASF1237 # The macro: "__glibcxx_want_endian"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3e4 # At line number 996
+ .long .LASF1238 # The macro: "__glibcxx_want_int_pow2"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3ee # At line number 1006
+ .long .LASF1239 # The macro: "__glibcxx_want_integer_comparison_functions"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3f8 # At line number 1016
+ .long .LASF1240 # The macro: "__glibcxx_want_is_constant_evaluated"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x401 # At line number 1025
+ .long .LASF1241 # The macro: "__glibcxx_constexpr_char_traits 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x407 # At line number 1031
+ .long .LASF1242 # The macro: "__glibcxx_want_constexpr_char_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x411 # At line number 1041
+ .long .LASF1243 # The macro: "__glibcxx_want_is_layout_compatible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x41b # At line number 1051
+ .long .LASF1244 # The macro: "__glibcxx_want_is_nothrow_convertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x425 # At line number 1061
+ .long .LASF1245 # The macro: "__glibcxx_want_is_pointer_interconvertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x42f # At line number 1071
+ .long .LASF1246 # The macro: "__glibcxx_want_math_constants"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x439 # At line number 1081
+ .long .LASF1247 # The macro: "__glibcxx_want_make_obj_using_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x443 # At line number 1091
+ .long .LASF1248 # The macro: "__glibcxx_want_remove_cvref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x44d # At line number 1101
+ .long .LASF1249 # The macro: "__glibcxx_want_source_location"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x45c # At line number 1116
+ .long .LASF1250 # The macro: "__glibcxx_want_span"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x466 # At line number 1126
+ .long .LASF1251 # The macro: "__glibcxx_want_ssize"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x470 # At line number 1136
+ .long .LASF1252 # The macro: "__glibcxx_want_three_way_comparison"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47a # At line number 1146
+ .long .LASF1253 # The macro: "__glibcxx_want_to_address"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x484 # At line number 1156
+ .long .LASF1254 # The macro: "__glibcxx_want_to_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x48e # At line number 1166
+ .long .LASF1255 # The macro: "__glibcxx_want_type_identity"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x498 # At line number 1176
+ .long .LASF1256 # The macro: "__glibcxx_want_unwrap_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4a2 # At line number 1186
+ .long .LASF1257 # The macro: "__glibcxx_want_constexpr_iterator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4ac # At line number 1196
+ .long .LASF1258 # The macro: "__glibcxx_want_interpolate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4b6 # At line number 1206
+ .long .LASF1259 # The macro: "__glibcxx_want_constexpr_utility"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4c0 # At line number 1216
+ .long .LASF1260 # The macro: "__glibcxx_want_shift"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4d4 # At line number 1236
+ .long .LASF1261 # The macro: "__glibcxx_want_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4de # At line number 1246
+ .long .LASF1262 # The macro: "__glibcxx_want_constexpr_numeric"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4e8 # At line number 1256
+ .long .LASF1263 # The macro: "__glibcxx_want_constexpr_functional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4f7 # At line number 1271
+ .long .LASF1264 # The macro: "__glibcxx_want_constexpr_algorithms"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x501 # At line number 1281
+ .long .LASF1265 # The macro: "__glibcxx_want_constexpr_tuple"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x510 # At line number 1296
+ .long .LASF1266 # The macro: "__glibcxx_want_constexpr_memory"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51a # At line number 1306
+ .long .LASF1267 # The macro: "__glibcxx_want_atomic_shared_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x529 # At line number 1321
+ .long .LASF1268 # The macro: "__glibcxx_want_atomic_wait"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x533 # At line number 1331
+ .long .LASF1269 # The macro: "__glibcxx_want_barrier"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x542 # At line number 1346
+ .long .LASF1270 # The macro: "__glibcxx_want_format"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x54c # At line number 1356
+ .long .LASF1271 # The macro: "__glibcxx_want_format_uchar"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x556 # At line number 1366
+ .long .LASF1272 # The macro: "__glibcxx_want_constexpr_complex"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x560 # At line number 1376
+ .long .LASF1273 # The macro: "__glibcxx_want_constexpr_dynamic_alloc"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56e # At line number 1390
+ .long .LASF1274 # The macro: "__glibcxx_constexpr_string 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x574 # At line number 1396
+ .long .LASF1275 # The macro: "__glibcxx_want_constexpr_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x57e # At line number 1406
+ .long .LASF1276 # The macro: "__glibcxx_want_constexpr_vector"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x58d # At line number 1421
+ .long .LASF1277 # The macro: "__glibcxx_want_constrained_equality"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x597 # At line number 1431
+ .long .LASF1278 # The macro: "__glibcxx_want_erase_if"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5a1 # At line number 1441
+ .long .LASF1279 # The macro: "__glibcxx_want_generic_unordered_lookup"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5ab # At line number 1451
+ .long .LASF1280 # The macro: "__glibcxx_want_jthread"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b5 # At line number 1461
+ .long .LASF1281 # The macro: "__glibcxx_want_latch"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5bf # At line number 1471
+ .long .LASF1282 # The macro: "__glibcxx_want_list_remove_return_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5c9 # At line number 1481
+ .long .LASF1283 # The macro: "__glibcxx_want_polymorphic_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5d3 # At line number 1491
+ .long .LASF1284 # The macro: "__glibcxx_want_move_iterator_concept"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5dd # At line number 1501
+ .long .LASF1285 # The macro: "__glibcxx_want_semaphore"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5e7 # At line number 1511
+ .long .LASF1286 # The macro: "__glibcxx_want_smart_ptr_for_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5f1 # At line number 1521
+ .long .LASF1287 # The macro: "__glibcxx_want_syncbuf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5fb # At line number 1531
+ .long .LASF1288 # The macro: "__glibcxx_want_byteswap"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x605 # At line number 1541
+ .long .LASF1289 # The macro: "__glibcxx_want_constexpr_charconv"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x60f # At line number 1551
+ .long .LASF1290 # The macro: "__glibcxx_want_constexpr_typeinfo"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x619 # At line number 1561
+ .long .LASF1291 # The macro: "__glibcxx_want_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x622 # At line number 1570
+ .long .LASF1292 # The macro: "__glibcxx_want_format_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x62c # At line number 1580
+ .long .LASF1293 # The macro: "__glibcxx_want_freestanding_algorithm"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x636 # At line number 1590
+ .long .LASF1294 # The macro: "__glibcxx_want_freestanding_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x640 # At line number 1600
+ .long .LASF1295 # The macro: "__glibcxx_want_freestanding_cstring"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x64a # At line number 1610
+ .long .LASF1296 # The macro: "__glibcxx_want_freestanding_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x654 # At line number 1620
+ .long .LASF1297 # The macro: "__glibcxx_want_freestanding_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65e # At line number 1630
+ .long .LASF1298 # The macro: "__glibcxx_want_freestanding_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x668 # At line number 1640
+ .long .LASF1299 # The macro: "__glibcxx_want_freestanding_variant"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x672 # At line number 1650
+ .long .LASF1300 # The macro: "__glibcxx_want_invoke_r"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x67c # At line number 1660
+ .long .LASF1301 # The macro: "__glibcxx_want_is_scoped_enum"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x686 # At line number 1670
+ .long .LASF1302 # The macro: "__glibcxx_want_reference_from_temporary"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x690 # At line number 1680
+ .long .LASF1303 # The macro: "__glibcxx_want_containers_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x69a # At line number 1690
+ .long .LASF1304 # The macro: "__glibcxx_want_ranges_to_container"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6a4 # At line number 1700
+ .long .LASF1305 # The macro: "__glibcxx_want_ranges_zip"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ae # At line number 1710
+ .long .LASF1306 # The macro: "__glibcxx_want_ranges_chunk"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6b8 # At line number 1720
+ .long .LASF1307 # The macro: "__glibcxx_want_ranges_slide"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6c2 # At line number 1730
+ .long .LASF1308 # The macro: "__glibcxx_want_ranges_chunk_by"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6cc # At line number 1740
+ .long .LASF1309 # The macro: "__glibcxx_want_ranges_join_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6d6 # At line number 1750
+ .long .LASF1310 # The macro: "__glibcxx_want_ranges_repeat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6e0 # At line number 1760
+ .long .LASF1311 # The macro: "__glibcxx_want_ranges_stride"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ea # At line number 1770
+ .long .LASF1312 # The macro: "__glibcxx_want_ranges_cartesian_product"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6f4 # At line number 1780
+ .long .LASF1313 # The macro: "__glibcxx_want_ranges_as_rvalue"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6fe # At line number 1790
+ .long .LASF1314 # The macro: "__glibcxx_want_ranges_as_const"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x708 # At line number 1800
+ .long .LASF1315 # The macro: "__glibcxx_want_ranges_enumerate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x712 # At line number 1810
+ .long .LASF1316 # The macro: "__glibcxx_want_ranges_fold"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x71c # At line number 1820
+ .long .LASF1317 # The macro: "__glibcxx_want_ranges_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x726 # At line number 1830
+ .long .LASF1318 # The macro: "__glibcxx_want_ranges_iota"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x730 # At line number 1840
+ .long .LASF1319 # The macro: "__glibcxx_want_ranges_find_last"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x73a # At line number 1850
+ .long .LASF1320 # The macro: "__glibcxx_want_constexpr_bitset"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x744 # At line number 1860
+ .long .LASF1321 # The macro: "__glibcxx_want_stdatomic_h"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74e # At line number 1870
+ .long .LASF1322 # The macro: "__glibcxx_want_adaptor_iterator_pair_constructor"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x758 # At line number 1880
+ .long .LASF1323 # The macro: "__glibcxx_want_flat_map"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x762 # At line number 1890
+ .long .LASF1324 # The macro: "__glibcxx_want_flat_set"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x76c # At line number 1900
+ .long .LASF1325 # The macro: "__glibcxx_want_formatters"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x776 # At line number 1910
+ .long .LASF1326 # The macro: "__glibcxx_want_forward_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x780 # At line number 1920
+ .long .LASF1327 # The macro: "__glibcxx_want_generator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78a # At line number 1930
+ .long .LASF1328 # The macro: "__glibcxx_want_ios_noreplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x794 # At line number 1940
+ .long .LASF1329 # The macro: "__glibcxx_want_move_only_function"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x79e # At line number 1950
+ .long .LASF1330 # The macro: "__glibcxx_want_out_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7a8 # At line number 1960
+ .long .LASF1331 # The macro: "__glibcxx_want_print"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7b2 # At line number 1970
+ .long .LASF1332 # The macro: "__glibcxx_want_spanstream"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7bc # At line number 1980
+ .long .LASF1333 # The macro: "__glibcxx_want_stacktrace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7c6 # At line number 1990
+ .long .LASF1334 # The macro: "__glibcxx_want_string_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7d0 # At line number 2000
+ .long .LASF1335 # The macro: "__glibcxx_want_string_resize_and_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7da # At line number 2010
+ .long .LASF1336 # The macro: "__glibcxx_want_to_underlying"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e9 # At line number 2025
+ .long .LASF1337 # The macro: "__glibcxx_want_tuple_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7f3 # At line number 2035
+ .long .LASF1338 # The macro: "__glibcxx_want_unreachable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7fd # At line number 2045
+ .long .LASF1339 # The macro: "__glibcxx_want_algorithm_default_value_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x807 # At line number 2055
+ .long .LASF1340 # The macro: "__glibcxx_want_constexpr_new"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x811 # At line number 2065
+ .long .LASF1341 # The macro: "__glibcxx_want_fstream_native_handle"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x81b # At line number 2075
+ .long .LASF1342 # The macro: "__glibcxx_want_is_virtual_base_of"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x825 # At line number 2085
+ .long .LASF1343 # The macro: "__glibcxx_want_ranges_cache_latest"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x82f # At line number 2095
+ .long .LASF1344 # The macro: "__glibcxx_want_ranges_concat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x839 # At line number 2105
+ .long .LASF1345 # The macro: "__glibcxx_want_ratio"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x843 # At line number 2115
+ .long .LASF1346 # The macro: "__glibcxx_want_reference_wrapper"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x84d # At line number 2125
+ .long .LASF1347 # The macro: "__glibcxx_want_saturation_arithmetic"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x857 # At line number 2135
+ .long .LASF1348 # The macro: "__glibcxx_want_span_initializer_list"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x861 # At line number 2145
+ .long .LASF1349 # The macro: "__glibcxx_want_text_encoding"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x86b # At line number 2155
+ .long .LASF1350 # The macro: "__glibcxx_want_ranges_to_input"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x875 # At line number 2165
+ .long .LASF1351 # The macro: "__glibcxx_want_to_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x87f # At line number 2175
+ .long .LASF1352 # The macro: "__glibcxx_want_modules"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x881 # At line number 2177
+ .long .LASF1353 # The macro: "__glibcxx_want_all"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.new.201.1eb3e1860491e06c4f6a2a2ab9b40193,comdat
+.Ldebug_macro18:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc9 # At line number 201
+ .long .LASF1354 # The macro: "_GLIBCXX_PLACEMENT_CONSTEXPR inline"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd6 # At line number 214
+ .long .LASF1355 # The macro: "_GLIBCXX_PLACEMENT_CONSTEXPR"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.exception_defines.h.31.ca6841b9be3287386aafc5c717935b2e,comdat
+.Ldebug_macro19:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1357 # The macro: "_EXCEPTION_DEFINES_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF1358 # The macro: "__try try"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29 # At line number 41
+ .long .LASF1359 # The macro: "__catch(X) catch(X)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a # At line number 42
+ .long .LASF1360 # The macro: "__throw_exception_again throw"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.type_traits.30.22003fcb9485c4dd55557aae4be38779,comdat
+.Ldebug_macro20:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1362 # The macro: "_GLIBCXX_TYPE_TRAITS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a # At line number 42
+ .long .LASF1363 # The macro: "__glibcxx_want_bool_constant "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b # At line number 43
+ .long .LASF1364 # The macro: "__glibcxx_want_bounded_array_traits "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c # At line number 44
+ .long .LASF1365 # The macro: "__glibcxx_want_has_unique_object_representations "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d # At line number 45
+ .long .LASF1366 # The macro: "__glibcxx_want_integral_constant_callable "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e # At line number 46
+ .long .LASF1367 # The macro: "__glibcxx_want_is_aggregate "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f # At line number 47
+ .long .LASF1368 # The macro: "__glibcxx_want_is_constant_evaluated "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x30 # At line number 48
+ .long .LASF1369 # The macro: "__glibcxx_want_is_final "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x31 # At line number 49
+ .long .LASF1370 # The macro: "__glibcxx_want_is_invocable "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x32 # At line number 50
+ .long .LASF1371 # The macro: "__glibcxx_want_is_layout_compatible "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x33 # At line number 51
+ .long .LASF1372 # The macro: "__glibcxx_want_is_nothrow_convertible "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x34 # At line number 52
+ .long .LASF1373 # The macro: "__glibcxx_want_is_null_pointer "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35 # At line number 53
+ .long .LASF1374 # The macro: "__glibcxx_want_is_pointer_interconvertible "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x36 # At line number 54
+ .long .LASF1375 # The macro: "__glibcxx_want_is_scoped_enum "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1376 # The macro: "__glibcxx_want_is_swappable "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x38 # At line number 56
+ .long .LASF1377 # The macro: "__glibcxx_want_is_virtual_base_of "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1378 # The macro: "__glibcxx_want_logical_traits "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3a # At line number 58
+ .long .LASF1379 # The macro: "__glibcxx_want_reference_from_temporary "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b # At line number 59
+ .long .LASF1380 # The macro: "__glibcxx_want_remove_cvref "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3c # At line number 60
+ .long .LASF1381 # The macro: "__glibcxx_want_result_of_sfinae "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1382 # The macro: "__glibcxx_want_transformation_trait_aliases "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3e # At line number 62
+ .long .LASF1383 # The macro: "__glibcxx_want_type_identity "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3f # At line number 63
+ .long .LASF1384 # The macro: "__glibcxx_want_type_trait_variable_templates "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x40 # At line number 64
+ .long .LASF1385 # The macro: "__glibcxx_want_unwrap_ref "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1386 # The macro: "__glibcxx_want_void_t "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.version.h.55.04ca65c8c659e0b8ec719f4ded8118a4,comdat
+.Ldebug_macro21:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1077 # The macro: "__glibcxx_incomplete_container_elements 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1078 # The macro: "__glibcxx_want_incomplete_container_elements"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1079 # The macro: "__glibcxx_uncaught_exceptions 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1080 # The macro: "__glibcxx_want_uncaught_exceptions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1081 # The macro: "__glibcxx_allocator_traits_is_always_equal 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1082 # The macro: "__glibcxx_want_allocator_traits_is_always_equal"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x55 # At line number 85
+ .long .LASF1083 # The macro: "__glibcxx_is_null_pointer 201309L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x57 # At line number 87
+ .long .LASF1387 # The macro: "__cpp_lib_is_null_pointer 201309L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1084 # The macro: "__glibcxx_want_is_null_pointer"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5f # At line number 95
+ .long .LASF1085 # The macro: "__glibcxx_result_of_sfinae 201210L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x61 # At line number 97
+ .long .LASF1388 # The macro: "__cpp_lib_result_of_sfinae 201210L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1086 # The macro: "__glibcxx_want_result_of_sfinae"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1087 # The macro: "__glibcxx_shared_ptr_arrays 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1088 # The macro: "__glibcxx_want_shared_ptr_arrays"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x78 # At line number 120
+ .long .LASF1089 # The macro: "__glibcxx_is_swappable 201603L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7a # At line number 122
+ .long .LASF1389 # The macro: "__cpp_lib_is_swappable 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF1090 # The macro: "__glibcxx_want_is_swappable"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x82 # At line number 130
+ .long .LASF1091 # The macro: "__glibcxx_void_t 201411L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x84 # At line number 132
+ .long .LASF1390 # The macro: "__cpp_lib_void_t 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x88 # At line number 136
+ .long .LASF1092 # The macro: "__glibcxx_want_void_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8c # At line number 140
+ .long .LASF1093 # The macro: "__glibcxx_enable_shared_from_this 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x92 # At line number 146
+ .long .LASF1094 # The macro: "__glibcxx_want_enable_shared_from_this"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x96 # At line number 150
+ .long .LASF1095 # The macro: "__glibcxx_math_spec_funcs 201003L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF1096 # The macro: "__glibcxx_want_math_spec_funcs"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xa6 # At line number 166
+ .long .LASF1097 # The macro: "__glibcxx_want_coroutine"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa # At line number 170
+ .long .LASF1098 # The macro: "__glibcxx_exchange_function 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb0 # At line number 176
+ .long .LASF1099 # The macro: "__glibcxx_want_exchange_function"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4 # At line number 180
+ .long .LASF1100 # The macro: "__glibcxx_integer_sequence 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xba # At line number 186
+ .long .LASF1101 # The macro: "__glibcxx_want_integer_sequence"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xbe # At line number 190
+ .long .LASF1102 # The macro: "__glibcxx_integral_constant_callable 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc0 # At line number 192
+ .long .LASF1391 # The macro: "__cpp_lib_integral_constant_callable 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xc4 # At line number 196
+ .long .LASF1103 # The macro: "__glibcxx_want_integral_constant_callable"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc8 # At line number 200
+ .long .LASF1104 # The macro: "__glibcxx_is_final 201402L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xca # At line number 202
+ .long .LASF1392 # The macro: "__cpp_lib_is_final 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xce # At line number 206
+ .long .LASF1105 # The macro: "__glibcxx_want_is_final"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2 # At line number 210
+ .long .LASF1106 # The macro: "__glibcxx_make_reverse_iterator 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd8 # At line number 216
+ .long .LASF1107 # The macro: "__glibcxx_want_make_reverse_iterator"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc # At line number 220
+ .long .LASF1108 # The macro: "__glibcxx_null_iterators 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe2 # At line number 226
+ .long .LASF1109 # The macro: "__glibcxx_want_null_iterators"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe6 # At line number 230
+ .long .LASF1110 # The macro: "__glibcxx_transformation_trait_aliases 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xe8 # At line number 232
+ .long .LASF1393 # The macro: "__cpp_lib_transformation_trait_aliases 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xec # At line number 236
+ .long .LASF1111 # The macro: "__glibcxx_want_transformation_trait_aliases"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf0 # At line number 240
+ .long .LASF1112 # The macro: "__glibcxx_transparent_operators 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf6 # At line number 246
+ .long .LASF1113 # The macro: "__glibcxx_want_transparent_operators"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xfa # At line number 250
+ .long .LASF1114 # The macro: "__glibcxx_tuple_element_t 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x100 # At line number 256
+ .long .LASF1115 # The macro: "__glibcxx_want_tuple_element_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x104 # At line number 260
+ .long .LASF1116 # The macro: "__glibcxx_tuples_by_type 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x10a # At line number 266
+ .long .LASF1117 # The macro: "__glibcxx_want_tuples_by_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10e # At line number 270
+ .long .LASF1118 # The macro: "__glibcxx_robust_nonmodifying_seq_ops 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x114 # At line number 276
+ .long .LASF1119 # The macro: "__glibcxx_want_robust_nonmodifying_seq_ops"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11d # At line number 285
+ .long .LASF1120 # The macro: "__glibcxx_to_chars 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x123 # At line number 291
+ .long .LASF1121 # The macro: "__glibcxx_want_to_chars"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x127 # At line number 295
+ .long .LASF1122 # The macro: "__glibcxx_chrono_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x12d # At line number 301
+ .long .LASF1123 # The macro: "__glibcxx_want_chrono_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x131 # At line number 305
+ .long .LASF1124 # The macro: "__glibcxx_complex_udls 201309L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x137 # At line number 311
+ .long .LASF1125 # The macro: "__glibcxx_want_complex_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13b # At line number 315
+ .long .LASF1126 # The macro: "__glibcxx_generic_associative_lookup 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x141 # At line number 321
+ .long .LASF1127 # The macro: "__glibcxx_want_generic_associative_lookup"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x145 # At line number 325
+ .long .LASF1128 # The macro: "__glibcxx_make_unique 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x14b # At line number 331
+ .long .LASF1129 # The macro: "__glibcxx_want_make_unique"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14f # At line number 335
+ .long .LASF1130 # The macro: "__glibcxx_quoted_string_io 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x155 # At line number 341
+ .long .LASF1131 # The macro: "__glibcxx_want_quoted_string_io"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x159 # At line number 345
+ .long .LASF1132 # The macro: "__glibcxx_shared_timed_mutex 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x15f # At line number 351
+ .long .LASF1133 # The macro: "__glibcxx_want_shared_timed_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x163 # At line number 355
+ .long .LASF1134 # The macro: "__glibcxx_string_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x169 # At line number 361
+ .long .LASF1135 # The macro: "__glibcxx_want_string_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16d # At line number 365
+ .long .LASF1136 # The macro: "__glibcxx_addressof_constexpr 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x173 # At line number 371
+ .long .LASF1137 # The macro: "__glibcxx_want_addressof_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x177 # At line number 375
+ .long .LASF1138 # The macro: "__glibcxx_any 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x17d # At line number 381
+ .long .LASF1139 # The macro: "__glibcxx_want_any"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x181 # At line number 385
+ .long .LASF1140 # The macro: "__glibcxx_apply 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x187 # At line number 391
+ .long .LASF1141 # The macro: "__glibcxx_want_apply"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18b # At line number 395
+ .long .LASF1142 # The macro: "__glibcxx_as_const 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x191 # At line number 401
+ .long .LASF1143 # The macro: "__glibcxx_want_as_const"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x195 # At line number 405
+ .long .LASF1144 # The macro: "__glibcxx_atomic_is_always_lock_free 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19b # At line number 411
+ .long .LASF1145 # The macro: "__glibcxx_want_atomic_is_always_lock_free"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x19f # At line number 415
+ .long .LASF1146 # The macro: "__glibcxx_bool_constant 201505L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a1 # At line number 417
+ .long .LASF1394 # The macro: "__cpp_lib_bool_constant 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a5 # At line number 421
+ .long .LASF1147 # The macro: "__glibcxx_want_bool_constant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1148 # The macro: "__glibcxx_byte 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1af # At line number 431
+ .long .LASF1149 # The macro: "__glibcxx_want_byte"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1b3 # At line number 435
+ .long .LASF1150 # The macro: "__glibcxx_has_unique_object_representations 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1b5 # At line number 437
+ .long .LASF1395 # The macro: "__cpp_lib_has_unique_object_representations 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1b9 # At line number 441
+ .long .LASF1151 # The macro: "__glibcxx_want_has_unique_object_representations"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1c3 # At line number 451
+ .long .LASF1154 # The macro: "__glibcxx_want_hardware_interference_size"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c7 # At line number 455
+ .long .LASF1155 # The macro: "__glibcxx_invoke 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1cd # At line number 461
+ .long .LASF1156 # The macro: "__glibcxx_want_invoke"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1d1 # At line number 465
+ .long .LASF1157 # The macro: "__glibcxx_is_aggregate 201703L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1d3 # At line number 467
+ .long .LASF1396 # The macro: "__cpp_lib_is_aggregate 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1d7 # At line number 471
+ .long .LASF1158 # The macro: "__glibcxx_want_is_aggregate"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1db # At line number 475
+ .long .LASF1159 # The macro: "__glibcxx_is_invocable 201703L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1dd # At line number 477
+ .long .LASF1397 # The macro: "__cpp_lib_is_invocable 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1e1 # At line number 481
+ .long .LASF1160 # The macro: "__glibcxx_want_is_invocable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1eb # At line number 491
+ .long .LASF1163 # The macro: "__glibcxx_want_launder"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1ef # At line number 495
+ .long .LASF1164 # The macro: "__glibcxx_logical_traits 201510L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f1 # At line number 497
+ .long .LASF1398 # The macro: "__cpp_lib_logical_traits 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1f5 # At line number 501
+ .long .LASF1165 # The macro: "__glibcxx_want_logical_traits"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f9 # At line number 505
+ .long .LASF1166 # The macro: "__glibcxx_make_from_tuple 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1ff # At line number 511
+ .long .LASF1167 # The macro: "__glibcxx_want_make_from_tuple"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x203 # At line number 515
+ .long .LASF1168 # The macro: "__glibcxx_not_fn 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x209 # At line number 521
+ .long .LASF1169 # The macro: "__glibcxx_want_not_fn"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20d # At line number 525
+ .long .LASF1170 # The macro: "__glibcxx_type_trait_variable_templates 201510L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20f # At line number 527
+ .long .LASF1399 # The macro: "__cpp_lib_type_trait_variable_templates 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x213 # At line number 531
+ .long .LASF1171 # The macro: "__glibcxx_want_type_trait_variable_templates"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x221 # At line number 545
+ .long .LASF1172 # The macro: "__glibcxx_variant 202102L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x227 # At line number 551
+ .long .LASF1173 # The macro: "__glibcxx_want_variant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22b # At line number 555
+ .long .LASF1174 # The macro: "__glibcxx_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x231 # At line number 561
+ .long .LASF1175 # The macro: "__glibcxx_want_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x235 # At line number 565
+ .long .LASF1176 # The macro: "__glibcxx_gcd 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x23b # At line number 571
+ .long .LASF1177 # The macro: "__glibcxx_want_gcd"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23f # At line number 575
+ .long .LASF1178 # The macro: "__glibcxx_gcd_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x245 # At line number 581
+ .long .LASF1179 # The macro: "__glibcxx_want_gcd_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24e # At line number 590
+ .long .LASF1180 # The macro: "__glibcxx_raw_memory_algorithms 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x254 # At line number 596
+ .long .LASF1181 # The macro: "__glibcxx_want_raw_memory_algorithms"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25d # At line number 605
+ .long .LASF1182 # The macro: "__glibcxx_array_constexpr 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x263 # At line number 611
+ .long .LASF1183 # The macro: "__glibcxx_want_array_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x267 # At line number 615
+ .long .LASF1184 # The macro: "__glibcxx_nonmember_container_access 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x26d # At line number 621
+ .long .LASF1185 # The macro: "__glibcxx_want_nonmember_container_access"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x271 # At line number 625
+ .long .LASF1186 # The macro: "__glibcxx_clamp 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x277 # At line number 631
+ .long .LASF1187 # The macro: "__glibcxx_want_clamp"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27b # At line number 635
+ .long .LASF1188 # The macro: "__glibcxx_sample 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x281 # At line number 641
+ .long .LASF1189 # The macro: "__glibcxx_want_sample"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x285 # At line number 645
+ .long .LASF1190 # The macro: "__glibcxx_boyer_moore_searcher 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x28b # At line number 651
+ .long .LASF1191 # The macro: "__glibcxx_want_boyer_moore_searcher"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x294 # At line number 660
+ .long .LASF1192 # The macro: "__glibcxx_chrono 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x29a # At line number 666
+ .long .LASF1193 # The macro: "__glibcxx_want_chrono"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29e # At line number 670
+ .long .LASF1194 # The macro: "__glibcxx_execution 201902L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2a4 # At line number 676
+ .long .LASF1195 # The macro: "__glibcxx_want_execution"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a8 # At line number 680
+ .long .LASF1196 # The macro: "__glibcxx_filesystem 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ae # At line number 686
+ .long .LASF1197 # The macro: "__glibcxx_want_filesystem"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b2 # At line number 690
+ .long .LASF1198 # The macro: "__glibcxx_hypot 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2b8 # At line number 696
+ .long .LASF1199 # The macro: "__glibcxx_want_hypot"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2bc # At line number 700
+ .long .LASF1200 # The macro: "__glibcxx_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2c2 # At line number 706
+ .long .LASF1201 # The macro: "__glibcxx_want_map_try_emplace"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c6 # At line number 710
+ .long .LASF1202 # The macro: "__glibcxx_math_special_functions 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2cc # At line number 716
+ .long .LASF1203 # The macro: "__glibcxx_want_math_special_functions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d0 # At line number 720
+ .long .LASF1204 # The macro: "__glibcxx_memory_resource 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2db # At line number 731
+ .long .LASF1205 # The macro: "__glibcxx_want_memory_resource"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2df # At line number 735
+ .long .LASF1206 # The macro: "__glibcxx_node_extract 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2e5 # At line number 741
+ .long .LASF1207 # The macro: "__glibcxx_want_node_extract"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e9 # At line number 745
+ .long .LASF1208 # The macro: "__glibcxx_parallel_algorithm 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ef # At line number 751
+ .long .LASF1209 # The macro: "__glibcxx_want_parallel_algorithm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f3 # At line number 755
+ .long .LASF1210 # The macro: "__glibcxx_scoped_lock 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2f9 # At line number 761
+ .long .LASF1211 # The macro: "__glibcxx_want_scoped_lock"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2fd # At line number 765
+ .long .LASF1212 # The macro: "__glibcxx_shared_mutex 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x303 # At line number 771
+ .long .LASF1213 # The macro: "__glibcxx_want_shared_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x307 # At line number 775
+ .long .LASF1214 # The macro: "__glibcxx_shared_ptr_weak_type 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x30d # At line number 781
+ .long .LASF1215 # The macro: "__glibcxx_want_shared_ptr_weak_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x316 # At line number 790
+ .long .LASF1216 # The macro: "__glibcxx_string_view 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x31c # At line number 796
+ .long .LASF1217 # The macro: "__glibcxx_want_string_view"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x320 # At line number 800
+ .long .LASF1218 # The macro: "__glibcxx_unordered_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x326 # At line number 806
+ .long .LASF1219 # The macro: "__glibcxx_want_unordered_map_try_emplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x330 # At line number 816
+ .long .LASF1220 # The macro: "__glibcxx_want_assume_aligned"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x33a # At line number 826
+ .long .LASF1221 # The macro: "__glibcxx_want_atomic_flag_test"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x344 # At line number 836
+ .long .LASF1222 # The macro: "__glibcxx_want_atomic_float"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x34e # At line number 846
+ .long .LASF1223 # The macro: "__glibcxx_want_atomic_lock_free_type_aliases"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x358 # At line number 856
+ .long .LASF1224 # The macro: "__glibcxx_want_atomic_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x362 # At line number 866
+ .long .LASF1225 # The macro: "__glibcxx_want_atomic_value_initialization"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x36c # At line number 876
+ .long .LASF1226 # The macro: "__glibcxx_want_bind_front"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x376 # At line number 886
+ .long .LASF1227 # The macro: "__glibcxx_want_bind_back"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x380 # At line number 896
+ .long .LASF1228 # The macro: "__glibcxx_want_starts_ends_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x38a # At line number 906
+ .long .LASF1229 # The macro: "__glibcxx_want_bit_cast"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x394 # At line number 916
+ .long .LASF1230 # The macro: "__glibcxx_want_bitops"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x39e # At line number 926
+ .long .LASF1231 # The macro: "__glibcxx_want_bounded_array_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3a8 # At line number 936
+ .long .LASF1232 # The macro: "__glibcxx_want_concepts"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b6 # At line number 950
+ .long .LASF1233 # The macro: "__glibcxx_optional 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3bc # At line number 956
+ .long .LASF1234 # The macro: "__glibcxx_want_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3c6 # At line number 966
+ .long .LASF1235 # The macro: "__glibcxx_want_destroying_delete"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d0 # At line number 976
+ .long .LASF1236 # The macro: "__glibcxx_want_constexpr_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3da # At line number 986
+ .long .LASF1237 # The macro: "__glibcxx_want_endian"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3e4 # At line number 996
+ .long .LASF1238 # The macro: "__glibcxx_want_int_pow2"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3ee # At line number 1006
+ .long .LASF1239 # The macro: "__glibcxx_want_integer_comparison_functions"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3f8 # At line number 1016
+ .long .LASF1240 # The macro: "__glibcxx_want_is_constant_evaluated"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x401 # At line number 1025
+ .long .LASF1241 # The macro: "__glibcxx_constexpr_char_traits 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x407 # At line number 1031
+ .long .LASF1242 # The macro: "__glibcxx_want_constexpr_char_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x411 # At line number 1041
+ .long .LASF1243 # The macro: "__glibcxx_want_is_layout_compatible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x41b # At line number 1051
+ .long .LASF1244 # The macro: "__glibcxx_want_is_nothrow_convertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x425 # At line number 1061
+ .long .LASF1245 # The macro: "__glibcxx_want_is_pointer_interconvertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x42f # At line number 1071
+ .long .LASF1246 # The macro: "__glibcxx_want_math_constants"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x439 # At line number 1081
+ .long .LASF1247 # The macro: "__glibcxx_want_make_obj_using_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x443 # At line number 1091
+ .long .LASF1248 # The macro: "__glibcxx_want_remove_cvref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x44d # At line number 1101
+ .long .LASF1249 # The macro: "__glibcxx_want_source_location"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x45c # At line number 1116
+ .long .LASF1250 # The macro: "__glibcxx_want_span"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x466 # At line number 1126
+ .long .LASF1251 # The macro: "__glibcxx_want_ssize"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x470 # At line number 1136
+ .long .LASF1252 # The macro: "__glibcxx_want_three_way_comparison"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47a # At line number 1146
+ .long .LASF1253 # The macro: "__glibcxx_want_to_address"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x484 # At line number 1156
+ .long .LASF1254 # The macro: "__glibcxx_want_to_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x48e # At line number 1166
+ .long .LASF1255 # The macro: "__glibcxx_want_type_identity"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x498 # At line number 1176
+ .long .LASF1256 # The macro: "__glibcxx_want_unwrap_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4a2 # At line number 1186
+ .long .LASF1257 # The macro: "__glibcxx_want_constexpr_iterator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4ac # At line number 1196
+ .long .LASF1258 # The macro: "__glibcxx_want_interpolate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4b6 # At line number 1206
+ .long .LASF1259 # The macro: "__glibcxx_want_constexpr_utility"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4c0 # At line number 1216
+ .long .LASF1260 # The macro: "__glibcxx_want_shift"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4d4 # At line number 1236
+ .long .LASF1261 # The macro: "__glibcxx_want_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4de # At line number 1246
+ .long .LASF1262 # The macro: "__glibcxx_want_constexpr_numeric"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4e8 # At line number 1256
+ .long .LASF1263 # The macro: "__glibcxx_want_constexpr_functional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4f7 # At line number 1271
+ .long .LASF1264 # The macro: "__glibcxx_want_constexpr_algorithms"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x501 # At line number 1281
+ .long .LASF1265 # The macro: "__glibcxx_want_constexpr_tuple"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x510 # At line number 1296
+ .long .LASF1266 # The macro: "__glibcxx_want_constexpr_memory"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51a # At line number 1306
+ .long .LASF1267 # The macro: "__glibcxx_want_atomic_shared_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x529 # At line number 1321
+ .long .LASF1268 # The macro: "__glibcxx_want_atomic_wait"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x533 # At line number 1331
+ .long .LASF1269 # The macro: "__glibcxx_want_barrier"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x542 # At line number 1346
+ .long .LASF1270 # The macro: "__glibcxx_want_format"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x54c # At line number 1356
+ .long .LASF1271 # The macro: "__glibcxx_want_format_uchar"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x556 # At line number 1366
+ .long .LASF1272 # The macro: "__glibcxx_want_constexpr_complex"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x560 # At line number 1376
+ .long .LASF1273 # The macro: "__glibcxx_want_constexpr_dynamic_alloc"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56e # At line number 1390
+ .long .LASF1274 # The macro: "__glibcxx_constexpr_string 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x574 # At line number 1396
+ .long .LASF1275 # The macro: "__glibcxx_want_constexpr_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x57e # At line number 1406
+ .long .LASF1276 # The macro: "__glibcxx_want_constexpr_vector"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x58d # At line number 1421
+ .long .LASF1277 # The macro: "__glibcxx_want_constrained_equality"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x597 # At line number 1431
+ .long .LASF1278 # The macro: "__glibcxx_want_erase_if"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5a1 # At line number 1441
+ .long .LASF1279 # The macro: "__glibcxx_want_generic_unordered_lookup"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5ab # At line number 1451
+ .long .LASF1280 # The macro: "__glibcxx_want_jthread"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b5 # At line number 1461
+ .long .LASF1281 # The macro: "__glibcxx_want_latch"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5bf # At line number 1471
+ .long .LASF1282 # The macro: "__glibcxx_want_list_remove_return_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5c9 # At line number 1481
+ .long .LASF1283 # The macro: "__glibcxx_want_polymorphic_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5d3 # At line number 1491
+ .long .LASF1284 # The macro: "__glibcxx_want_move_iterator_concept"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5dd # At line number 1501
+ .long .LASF1285 # The macro: "__glibcxx_want_semaphore"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5e7 # At line number 1511
+ .long .LASF1286 # The macro: "__glibcxx_want_smart_ptr_for_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5f1 # At line number 1521
+ .long .LASF1287 # The macro: "__glibcxx_want_syncbuf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5fb # At line number 1531
+ .long .LASF1288 # The macro: "__glibcxx_want_byteswap"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x605 # At line number 1541
+ .long .LASF1289 # The macro: "__glibcxx_want_constexpr_charconv"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x60f # At line number 1551
+ .long .LASF1290 # The macro: "__glibcxx_want_constexpr_typeinfo"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x619 # At line number 1561
+ .long .LASF1291 # The macro: "__glibcxx_want_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x622 # At line number 1570
+ .long .LASF1292 # The macro: "__glibcxx_want_format_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x62c # At line number 1580
+ .long .LASF1293 # The macro: "__glibcxx_want_freestanding_algorithm"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x636 # At line number 1590
+ .long .LASF1294 # The macro: "__glibcxx_want_freestanding_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x640 # At line number 1600
+ .long .LASF1295 # The macro: "__glibcxx_want_freestanding_cstring"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x64a # At line number 1610
+ .long .LASF1296 # The macro: "__glibcxx_want_freestanding_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x654 # At line number 1620
+ .long .LASF1297 # The macro: "__glibcxx_want_freestanding_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65e # At line number 1630
+ .long .LASF1298 # The macro: "__glibcxx_want_freestanding_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x668 # At line number 1640
+ .long .LASF1299 # The macro: "__glibcxx_want_freestanding_variant"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x672 # At line number 1650
+ .long .LASF1300 # The macro: "__glibcxx_want_invoke_r"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x67c # At line number 1660
+ .long .LASF1301 # The macro: "__glibcxx_want_is_scoped_enum"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x686 # At line number 1670
+ .long .LASF1302 # The macro: "__glibcxx_want_reference_from_temporary"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x690 # At line number 1680
+ .long .LASF1303 # The macro: "__glibcxx_want_containers_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x69a # At line number 1690
+ .long .LASF1304 # The macro: "__glibcxx_want_ranges_to_container"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6a4 # At line number 1700
+ .long .LASF1305 # The macro: "__glibcxx_want_ranges_zip"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ae # At line number 1710
+ .long .LASF1306 # The macro: "__glibcxx_want_ranges_chunk"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6b8 # At line number 1720
+ .long .LASF1307 # The macro: "__glibcxx_want_ranges_slide"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6c2 # At line number 1730
+ .long .LASF1308 # The macro: "__glibcxx_want_ranges_chunk_by"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6cc # At line number 1740
+ .long .LASF1309 # The macro: "__glibcxx_want_ranges_join_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6d6 # At line number 1750
+ .long .LASF1310 # The macro: "__glibcxx_want_ranges_repeat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6e0 # At line number 1760
+ .long .LASF1311 # The macro: "__glibcxx_want_ranges_stride"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ea # At line number 1770
+ .long .LASF1312 # The macro: "__glibcxx_want_ranges_cartesian_product"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6f4 # At line number 1780
+ .long .LASF1313 # The macro: "__glibcxx_want_ranges_as_rvalue"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6fe # At line number 1790
+ .long .LASF1314 # The macro: "__glibcxx_want_ranges_as_const"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x708 # At line number 1800
+ .long .LASF1315 # The macro: "__glibcxx_want_ranges_enumerate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x712 # At line number 1810
+ .long .LASF1316 # The macro: "__glibcxx_want_ranges_fold"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x71c # At line number 1820
+ .long .LASF1317 # The macro: "__glibcxx_want_ranges_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x726 # At line number 1830
+ .long .LASF1318 # The macro: "__glibcxx_want_ranges_iota"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x730 # At line number 1840
+ .long .LASF1319 # The macro: "__glibcxx_want_ranges_find_last"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x73a # At line number 1850
+ .long .LASF1320 # The macro: "__glibcxx_want_constexpr_bitset"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x744 # At line number 1860
+ .long .LASF1321 # The macro: "__glibcxx_want_stdatomic_h"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74e # At line number 1870
+ .long .LASF1322 # The macro: "__glibcxx_want_adaptor_iterator_pair_constructor"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x758 # At line number 1880
+ .long .LASF1323 # The macro: "__glibcxx_want_flat_map"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x762 # At line number 1890
+ .long .LASF1324 # The macro: "__glibcxx_want_flat_set"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x76c # At line number 1900
+ .long .LASF1325 # The macro: "__glibcxx_want_formatters"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x776 # At line number 1910
+ .long .LASF1326 # The macro: "__glibcxx_want_forward_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x780 # At line number 1920
+ .long .LASF1327 # The macro: "__glibcxx_want_generator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78a # At line number 1930
+ .long .LASF1328 # The macro: "__glibcxx_want_ios_noreplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x794 # At line number 1940
+ .long .LASF1329 # The macro: "__glibcxx_want_move_only_function"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x79e # At line number 1950
+ .long .LASF1330 # The macro: "__glibcxx_want_out_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7a8 # At line number 1960
+ .long .LASF1331 # The macro: "__glibcxx_want_print"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7b2 # At line number 1970
+ .long .LASF1332 # The macro: "__glibcxx_want_spanstream"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7bc # At line number 1980
+ .long .LASF1333 # The macro: "__glibcxx_want_stacktrace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7c6 # At line number 1990
+ .long .LASF1334 # The macro: "__glibcxx_want_string_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7d0 # At line number 2000
+ .long .LASF1335 # The macro: "__glibcxx_want_string_resize_and_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7da # At line number 2010
+ .long .LASF1336 # The macro: "__glibcxx_want_to_underlying"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e9 # At line number 2025
+ .long .LASF1337 # The macro: "__glibcxx_want_tuple_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7f3 # At line number 2035
+ .long .LASF1338 # The macro: "__glibcxx_want_unreachable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7fd # At line number 2045
+ .long .LASF1339 # The macro: "__glibcxx_want_algorithm_default_value_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x807 # At line number 2055
+ .long .LASF1340 # The macro: "__glibcxx_want_constexpr_new"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x811 # At line number 2065
+ .long .LASF1341 # The macro: "__glibcxx_want_fstream_native_handle"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x81b # At line number 2075
+ .long .LASF1342 # The macro: "__glibcxx_want_is_virtual_base_of"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x825 # At line number 2085
+ .long .LASF1343 # The macro: "__glibcxx_want_ranges_cache_latest"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x82f # At line number 2095
+ .long .LASF1344 # The macro: "__glibcxx_want_ranges_concat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x839 # At line number 2105
+ .long .LASF1345 # The macro: "__glibcxx_want_ratio"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x843 # At line number 2115
+ .long .LASF1346 # The macro: "__glibcxx_want_reference_wrapper"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x84d # At line number 2125
+ .long .LASF1347 # The macro: "__glibcxx_want_saturation_arithmetic"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x857 # At line number 2135
+ .long .LASF1348 # The macro: "__glibcxx_want_span_initializer_list"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x861 # At line number 2145
+ .long .LASF1349 # The macro: "__glibcxx_want_text_encoding"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x86b # At line number 2155
+ .long .LASF1350 # The macro: "__glibcxx_want_ranges_to_input"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x875 # At line number 2165
+ .long .LASF1351 # The macro: "__glibcxx_want_to_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x87f # At line number 2175
+ .long .LASF1352 # The macro: "__glibcxx_want_modules"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x881 # At line number 2177
+ .long .LASF1353 # The macro: "__glibcxx_want_all"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.move.h.197.554053be3e47ff971b6f2e34fb57d41b,comdat
+.Ldebug_macro22:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc5 # At line number 197
+ .long .LASF1401 # The macro: "_GLIBCXX_FWDREF(_Tp) _Tp&&"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc6 # At line number 198
+ .long .LASF1402 # The macro: "_GLIBCXX_MOVE(__val) std::move(__val)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc7 # At line number 199
+ .long .LASF1403 # The macro: "_GLIBCXX_FORWARD(_Tp,__val) std::forward<_Tp>(__val)"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.new_allocator.h.116.1a2b510fb95ea5ea4197559f239d362f,comdat
+.Ldebug_macro23:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1404 # The macro: "_GLIBCXX_OPERATOR_NEW __builtin_operator_new"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x75 # At line number 117
+ .long .LASF1405 # The macro: "_GLIBCXX_OPERATOR_DELETE __builtin_operator_delete"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9f # At line number 159
+ .long .LASF1406 # The macro: "_GLIBCXX_SIZED_DEALLOC(p,n) (p), (n) * sizeof(_Tp)"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xaf # At line number 175
+ .long .LASF1407 # The macro: "_GLIBCXX_SIZED_DEALLOC"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb0 # At line number 176
+ .long .LASF1408 # The macro: "_GLIBCXX_OPERATOR_DELETE"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb1 # At line number 177
+ .long .LASF1409 # The macro: "_GLIBCXX_OPERATOR_NEW"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stl_iterator_base_types.h.60.f5b04b2834b4a202064919a73d7a2a46,comdat
+.Ldebug_macro24:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3c # At line number 60
+ .long .LASF1413 # The macro: "_STL_ITERATOR_BASE_TYPES_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11d # At line number 285
+ .long .LASF1414 # The macro: "_GLIBCXX26_DEF_VAL_T(T) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11e # At line number 286
+ .long .LASF1415 # The macro: "_GLIBCXX26_ALGO_DEF_VAL_T(_Iterator) "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.concept_check.h.31.74a671c8485a1bc7531658609764a36b,comdat
+.Ldebug_macro25:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1417 # The macro: "_CONCEPT_CHECK_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35 # At line number 53
+ .long .LASF1418 # The macro: "__glibcxx_function_requires(...) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x36 # At line number 54
+ .long .LASF1419 # The macro: "__glibcxx_class_requires(_a,_b) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1420 # The macro: "__glibcxx_class_requires2(_a,_b,_c) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x38 # At line number 56
+ .long .LASF1421 # The macro: "__glibcxx_class_requires3(_a,_b,_c,_d) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1422 # The macro: "__glibcxx_class_requires4(_a,_b,_c,_d,_e) "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.assertions.h.30.d72752d74be140ecd1b957aafdcc8b28,comdat
+.Ldebug_macro26:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1423 # The macro: "_GLIBCXX_DEBUG_ASSERTIONS_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24 # At line number 36
+ .long .LASF1424 # The macro: "__glibcxx_requires_non_empty_range(_First,_Last) __glibcxx_assert(_First != _Last)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x26 # At line number 38
+ .long .LASF1425 # The macro: "__glibcxx_requires_subscript(_N) __glibcxx_assert(_N < this->size())"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29 # At line number 41
+ .long .LASF1426 # The macro: "__glibcxx_requires_nonempty() __glibcxx_assert(!this->empty())"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1427 # The macro: "_GLIBCXX_DEBUG_ASSERT(_Condition) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x42 # At line number 66
+ .long .LASF1428 # The macro: "_GLIBCXX_DEBUG_PEDASSERT(_Condition) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x43 # At line number 67
+ .long .LASF1429 # The macro: "_GLIBCXX_DEBUG_ONLY(_Statement) "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stl_pair.h.733.b93f55d6a8f972e77632d7b03102caef,comdat
+.Ldebug_macro27:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2dd # At line number 733
+ .long .LASF1432 # The macro: "__glibcxx_no_dangling_refs(_U1,_U2) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x32f # At line number 815
+ .long .LASF1433 # The macro: "_GLIBCXX_DEPRECATED_PAIR_CTOR __attribute__ ((__deprecated__ ("use 'nullptr' instead of '0' to " "initialize std::pair of move-only " "type and pointer")))"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x37c # At line number 892
+ .long .LASF1434 # The macro: "_GLIBCXX_DEPRECATED_PAIR_CTOR"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3aa # At line number 938
+ .long .LASF1435 # The macro: "__glibcxx_no_dangling_refs"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.version.h.55.58bd32deac3e6c00a2eef1e72d963e8f,comdat
+.Ldebug_macro28:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1077 # The macro: "__glibcxx_incomplete_container_elements 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1078 # The macro: "__glibcxx_want_incomplete_container_elements"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1079 # The macro: "__glibcxx_uncaught_exceptions 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1080 # The macro: "__glibcxx_want_uncaught_exceptions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1081 # The macro: "__glibcxx_allocator_traits_is_always_equal 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1082 # The macro: "__glibcxx_want_allocator_traits_is_always_equal"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1084 # The macro: "__glibcxx_want_is_null_pointer"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1086 # The macro: "__glibcxx_want_result_of_sfinae"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1087 # The macro: "__glibcxx_shared_ptr_arrays 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1088 # The macro: "__glibcxx_want_shared_ptr_arrays"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF1090 # The macro: "__glibcxx_want_is_swappable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x88 # At line number 136
+ .long .LASF1092 # The macro: "__glibcxx_want_void_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8c # At line number 140
+ .long .LASF1093 # The macro: "__glibcxx_enable_shared_from_this 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x92 # At line number 146
+ .long .LASF1094 # The macro: "__glibcxx_want_enable_shared_from_this"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x96 # At line number 150
+ .long .LASF1095 # The macro: "__glibcxx_math_spec_funcs 201003L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF1096 # The macro: "__glibcxx_want_math_spec_funcs"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xa6 # At line number 166
+ .long .LASF1097 # The macro: "__glibcxx_want_coroutine"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa # At line number 170
+ .long .LASF1098 # The macro: "__glibcxx_exchange_function 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb0 # At line number 176
+ .long .LASF1099 # The macro: "__glibcxx_want_exchange_function"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4 # At line number 180
+ .long .LASF1100 # The macro: "__glibcxx_integer_sequence 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xba # At line number 186
+ .long .LASF1101 # The macro: "__glibcxx_want_integer_sequence"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xc4 # At line number 196
+ .long .LASF1103 # The macro: "__glibcxx_want_integral_constant_callable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xce # At line number 206
+ .long .LASF1105 # The macro: "__glibcxx_want_is_final"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2 # At line number 210
+ .long .LASF1106 # The macro: "__glibcxx_make_reverse_iterator 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd8 # At line number 216
+ .long .LASF1107 # The macro: "__glibcxx_want_make_reverse_iterator"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc # At line number 220
+ .long .LASF1108 # The macro: "__glibcxx_null_iterators 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe2 # At line number 226
+ .long .LASF1109 # The macro: "__glibcxx_want_null_iterators"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xec # At line number 236
+ .long .LASF1111 # The macro: "__glibcxx_want_transformation_trait_aliases"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf0 # At line number 240
+ .long .LASF1112 # The macro: "__glibcxx_transparent_operators 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf6 # At line number 246
+ .long .LASF1113 # The macro: "__glibcxx_want_transparent_operators"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xfa # At line number 250
+ .long .LASF1114 # The macro: "__glibcxx_tuple_element_t 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x100 # At line number 256
+ .long .LASF1115 # The macro: "__glibcxx_want_tuple_element_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x104 # At line number 260
+ .long .LASF1116 # The macro: "__glibcxx_tuples_by_type 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x10a # At line number 266
+ .long .LASF1117 # The macro: "__glibcxx_want_tuples_by_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10e # At line number 270
+ .long .LASF1118 # The macro: "__glibcxx_robust_nonmodifying_seq_ops 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x114 # At line number 276
+ .long .LASF1119 # The macro: "__glibcxx_want_robust_nonmodifying_seq_ops"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11d # At line number 285
+ .long .LASF1120 # The macro: "__glibcxx_to_chars 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x123 # At line number 291
+ .long .LASF1121 # The macro: "__glibcxx_want_to_chars"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x127 # At line number 295
+ .long .LASF1122 # The macro: "__glibcxx_chrono_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x12d # At line number 301
+ .long .LASF1123 # The macro: "__glibcxx_want_chrono_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x131 # At line number 305
+ .long .LASF1124 # The macro: "__glibcxx_complex_udls 201309L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x137 # At line number 311
+ .long .LASF1125 # The macro: "__glibcxx_want_complex_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13b # At line number 315
+ .long .LASF1126 # The macro: "__glibcxx_generic_associative_lookup 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x141 # At line number 321
+ .long .LASF1127 # The macro: "__glibcxx_want_generic_associative_lookup"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x145 # At line number 325
+ .long .LASF1128 # The macro: "__glibcxx_make_unique 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x14b # At line number 331
+ .long .LASF1129 # The macro: "__glibcxx_want_make_unique"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14f # At line number 335
+ .long .LASF1130 # The macro: "__glibcxx_quoted_string_io 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x155 # At line number 341
+ .long .LASF1131 # The macro: "__glibcxx_want_quoted_string_io"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x159 # At line number 345
+ .long .LASF1132 # The macro: "__glibcxx_shared_timed_mutex 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x15f # At line number 351
+ .long .LASF1133 # The macro: "__glibcxx_want_shared_timed_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x163 # At line number 355
+ .long .LASF1134 # The macro: "__glibcxx_string_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x169 # At line number 361
+ .long .LASF1135 # The macro: "__glibcxx_want_string_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16d # At line number 365
+ .long .LASF1136 # The macro: "__glibcxx_addressof_constexpr 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x173 # At line number 371
+ .long .LASF1137 # The macro: "__glibcxx_want_addressof_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x177 # At line number 375
+ .long .LASF1138 # The macro: "__glibcxx_any 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x17d # At line number 381
+ .long .LASF1139 # The macro: "__glibcxx_want_any"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x181 # At line number 385
+ .long .LASF1140 # The macro: "__glibcxx_apply 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x187 # At line number 391
+ .long .LASF1141 # The macro: "__glibcxx_want_apply"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18b # At line number 395
+ .long .LASF1142 # The macro: "__glibcxx_as_const 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x191 # At line number 401
+ .long .LASF1143 # The macro: "__glibcxx_want_as_const"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x195 # At line number 405
+ .long .LASF1144 # The macro: "__glibcxx_atomic_is_always_lock_free 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19b # At line number 411
+ .long .LASF1145 # The macro: "__glibcxx_want_atomic_is_always_lock_free"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a5 # At line number 421
+ .long .LASF1147 # The macro: "__glibcxx_want_bool_constant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1148 # The macro: "__glibcxx_byte 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1af # At line number 431
+ .long .LASF1149 # The macro: "__glibcxx_want_byte"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1b9 # At line number 441
+ .long .LASF1151 # The macro: "__glibcxx_want_has_unique_object_representations"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1c3 # At line number 451
+ .long .LASF1154 # The macro: "__glibcxx_want_hardware_interference_size"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c7 # At line number 455
+ .long .LASF1155 # The macro: "__glibcxx_invoke 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1cd # At line number 461
+ .long .LASF1156 # The macro: "__glibcxx_want_invoke"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1d7 # At line number 471
+ .long .LASF1158 # The macro: "__glibcxx_want_is_aggregate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1e1 # At line number 481
+ .long .LASF1160 # The macro: "__glibcxx_want_is_invocable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1eb # At line number 491
+ .long .LASF1163 # The macro: "__glibcxx_want_launder"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1f5 # At line number 501
+ .long .LASF1165 # The macro: "__glibcxx_want_logical_traits"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f9 # At line number 505
+ .long .LASF1166 # The macro: "__glibcxx_make_from_tuple 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1ff # At line number 511
+ .long .LASF1167 # The macro: "__glibcxx_want_make_from_tuple"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x203 # At line number 515
+ .long .LASF1168 # The macro: "__glibcxx_not_fn 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x209 # At line number 521
+ .long .LASF1169 # The macro: "__glibcxx_want_not_fn"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x213 # At line number 531
+ .long .LASF1171 # The macro: "__glibcxx_want_type_trait_variable_templates"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x221 # At line number 545
+ .long .LASF1172 # The macro: "__glibcxx_variant 202102L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x227 # At line number 551
+ .long .LASF1173 # The macro: "__glibcxx_want_variant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22b # At line number 555
+ .long .LASF1174 # The macro: "__glibcxx_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x231 # At line number 561
+ .long .LASF1175 # The macro: "__glibcxx_want_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x235 # At line number 565
+ .long .LASF1176 # The macro: "__glibcxx_gcd 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x23b # At line number 571
+ .long .LASF1177 # The macro: "__glibcxx_want_gcd"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23f # At line number 575
+ .long .LASF1178 # The macro: "__glibcxx_gcd_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x245 # At line number 581
+ .long .LASF1179 # The macro: "__glibcxx_want_gcd_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24e # At line number 590
+ .long .LASF1180 # The macro: "__glibcxx_raw_memory_algorithms 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x254 # At line number 596
+ .long .LASF1181 # The macro: "__glibcxx_want_raw_memory_algorithms"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25d # At line number 605
+ .long .LASF1182 # The macro: "__glibcxx_array_constexpr 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x263 # At line number 611
+ .long .LASF1183 # The macro: "__glibcxx_want_array_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x267 # At line number 615
+ .long .LASF1184 # The macro: "__glibcxx_nonmember_container_access 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x26d # At line number 621
+ .long .LASF1185 # The macro: "__glibcxx_want_nonmember_container_access"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x271 # At line number 625
+ .long .LASF1186 # The macro: "__glibcxx_clamp 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x277 # At line number 631
+ .long .LASF1187 # The macro: "__glibcxx_want_clamp"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27b # At line number 635
+ .long .LASF1188 # The macro: "__glibcxx_sample 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x281 # At line number 641
+ .long .LASF1189 # The macro: "__glibcxx_want_sample"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x285 # At line number 645
+ .long .LASF1190 # The macro: "__glibcxx_boyer_moore_searcher 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x28b # At line number 651
+ .long .LASF1191 # The macro: "__glibcxx_want_boyer_moore_searcher"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x294 # At line number 660
+ .long .LASF1192 # The macro: "__glibcxx_chrono 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x29a # At line number 666
+ .long .LASF1193 # The macro: "__glibcxx_want_chrono"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29e # At line number 670
+ .long .LASF1194 # The macro: "__glibcxx_execution 201902L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2a4 # At line number 676
+ .long .LASF1195 # The macro: "__glibcxx_want_execution"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a8 # At line number 680
+ .long .LASF1196 # The macro: "__glibcxx_filesystem 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ae # At line number 686
+ .long .LASF1197 # The macro: "__glibcxx_want_filesystem"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b2 # At line number 690
+ .long .LASF1198 # The macro: "__glibcxx_hypot 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2b8 # At line number 696
+ .long .LASF1199 # The macro: "__glibcxx_want_hypot"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2bc # At line number 700
+ .long .LASF1200 # The macro: "__glibcxx_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2c2 # At line number 706
+ .long .LASF1201 # The macro: "__glibcxx_want_map_try_emplace"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c6 # At line number 710
+ .long .LASF1202 # The macro: "__glibcxx_math_special_functions 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2cc # At line number 716
+ .long .LASF1203 # The macro: "__glibcxx_want_math_special_functions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d0 # At line number 720
+ .long .LASF1204 # The macro: "__glibcxx_memory_resource 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2db # At line number 731
+ .long .LASF1205 # The macro: "__glibcxx_want_memory_resource"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2df # At line number 735
+ .long .LASF1206 # The macro: "__glibcxx_node_extract 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2e5 # At line number 741
+ .long .LASF1207 # The macro: "__glibcxx_want_node_extract"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e9 # At line number 745
+ .long .LASF1208 # The macro: "__glibcxx_parallel_algorithm 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ef # At line number 751
+ .long .LASF1209 # The macro: "__glibcxx_want_parallel_algorithm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f3 # At line number 755
+ .long .LASF1210 # The macro: "__glibcxx_scoped_lock 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2f9 # At line number 761
+ .long .LASF1211 # The macro: "__glibcxx_want_scoped_lock"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2fd # At line number 765
+ .long .LASF1212 # The macro: "__glibcxx_shared_mutex 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x303 # At line number 771
+ .long .LASF1213 # The macro: "__glibcxx_want_shared_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x307 # At line number 775
+ .long .LASF1214 # The macro: "__glibcxx_shared_ptr_weak_type 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x30d # At line number 781
+ .long .LASF1215 # The macro: "__glibcxx_want_shared_ptr_weak_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x316 # At line number 790
+ .long .LASF1216 # The macro: "__glibcxx_string_view 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x31c # At line number 796
+ .long .LASF1217 # The macro: "__glibcxx_want_string_view"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x320 # At line number 800
+ .long .LASF1218 # The macro: "__glibcxx_unordered_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x326 # At line number 806
+ .long .LASF1219 # The macro: "__glibcxx_want_unordered_map_try_emplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x330 # At line number 816
+ .long .LASF1220 # The macro: "__glibcxx_want_assume_aligned"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x33a # At line number 826
+ .long .LASF1221 # The macro: "__glibcxx_want_atomic_flag_test"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x344 # At line number 836
+ .long .LASF1222 # The macro: "__glibcxx_want_atomic_float"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x34e # At line number 846
+ .long .LASF1223 # The macro: "__glibcxx_want_atomic_lock_free_type_aliases"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x358 # At line number 856
+ .long .LASF1224 # The macro: "__glibcxx_want_atomic_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x362 # At line number 866
+ .long .LASF1225 # The macro: "__glibcxx_want_atomic_value_initialization"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x36c # At line number 876
+ .long .LASF1226 # The macro: "__glibcxx_want_bind_front"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x376 # At line number 886
+ .long .LASF1227 # The macro: "__glibcxx_want_bind_back"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x380 # At line number 896
+ .long .LASF1228 # The macro: "__glibcxx_want_starts_ends_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x38a # At line number 906
+ .long .LASF1229 # The macro: "__glibcxx_want_bit_cast"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x394 # At line number 916
+ .long .LASF1230 # The macro: "__glibcxx_want_bitops"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x39e # At line number 926
+ .long .LASF1231 # The macro: "__glibcxx_want_bounded_array_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3a8 # At line number 936
+ .long .LASF1232 # The macro: "__glibcxx_want_concepts"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b6 # At line number 950
+ .long .LASF1233 # The macro: "__glibcxx_optional 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3bc # At line number 956
+ .long .LASF1234 # The macro: "__glibcxx_want_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3c6 # At line number 966
+ .long .LASF1235 # The macro: "__glibcxx_want_destroying_delete"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d0 # At line number 976
+ .long .LASF1236 # The macro: "__glibcxx_want_constexpr_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3da # At line number 986
+ .long .LASF1237 # The macro: "__glibcxx_want_endian"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3e4 # At line number 996
+ .long .LASF1238 # The macro: "__glibcxx_want_int_pow2"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3ee # At line number 1006
+ .long .LASF1239 # The macro: "__glibcxx_want_integer_comparison_functions"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3f8 # At line number 1016
+ .long .LASF1240 # The macro: "__glibcxx_want_is_constant_evaluated"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x401 # At line number 1025
+ .long .LASF1241 # The macro: "__glibcxx_constexpr_char_traits 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x407 # At line number 1031
+ .long .LASF1242 # The macro: "__glibcxx_want_constexpr_char_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x411 # At line number 1041
+ .long .LASF1243 # The macro: "__glibcxx_want_is_layout_compatible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x41b # At line number 1051
+ .long .LASF1244 # The macro: "__glibcxx_want_is_nothrow_convertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x425 # At line number 1061
+ .long .LASF1245 # The macro: "__glibcxx_want_is_pointer_interconvertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x42f # At line number 1071
+ .long .LASF1246 # The macro: "__glibcxx_want_math_constants"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x439 # At line number 1081
+ .long .LASF1247 # The macro: "__glibcxx_want_make_obj_using_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x443 # At line number 1091
+ .long .LASF1248 # The macro: "__glibcxx_want_remove_cvref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x44d # At line number 1101
+ .long .LASF1249 # The macro: "__glibcxx_want_source_location"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x45c # At line number 1116
+ .long .LASF1250 # The macro: "__glibcxx_want_span"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x466 # At line number 1126
+ .long .LASF1251 # The macro: "__glibcxx_want_ssize"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x470 # At line number 1136
+ .long .LASF1252 # The macro: "__glibcxx_want_three_way_comparison"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47a # At line number 1146
+ .long .LASF1253 # The macro: "__glibcxx_want_to_address"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x484 # At line number 1156
+ .long .LASF1254 # The macro: "__glibcxx_want_to_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x48e # At line number 1166
+ .long .LASF1255 # The macro: "__glibcxx_want_type_identity"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x498 # At line number 1176
+ .long .LASF1256 # The macro: "__glibcxx_want_unwrap_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4a2 # At line number 1186
+ .long .LASF1257 # The macro: "__glibcxx_want_constexpr_iterator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4ac # At line number 1196
+ .long .LASF1258 # The macro: "__glibcxx_want_interpolate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4b6 # At line number 1206
+ .long .LASF1259 # The macro: "__glibcxx_want_constexpr_utility"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4c0 # At line number 1216
+ .long .LASF1260 # The macro: "__glibcxx_want_shift"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4d4 # At line number 1236
+ .long .LASF1261 # The macro: "__glibcxx_want_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4de # At line number 1246
+ .long .LASF1262 # The macro: "__glibcxx_want_constexpr_numeric"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4e8 # At line number 1256
+ .long .LASF1263 # The macro: "__glibcxx_want_constexpr_functional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4f7 # At line number 1271
+ .long .LASF1264 # The macro: "__glibcxx_want_constexpr_algorithms"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x501 # At line number 1281
+ .long .LASF1265 # The macro: "__glibcxx_want_constexpr_tuple"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x510 # At line number 1296
+ .long .LASF1266 # The macro: "__glibcxx_want_constexpr_memory"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51a # At line number 1306
+ .long .LASF1267 # The macro: "__glibcxx_want_atomic_shared_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x529 # At line number 1321
+ .long .LASF1268 # The macro: "__glibcxx_want_atomic_wait"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x533 # At line number 1331
+ .long .LASF1269 # The macro: "__glibcxx_want_barrier"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x542 # At line number 1346
+ .long .LASF1270 # The macro: "__glibcxx_want_format"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x54c # At line number 1356
+ .long .LASF1271 # The macro: "__glibcxx_want_format_uchar"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x556 # At line number 1366
+ .long .LASF1272 # The macro: "__glibcxx_want_constexpr_complex"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x560 # At line number 1376
+ .long .LASF1273 # The macro: "__glibcxx_want_constexpr_dynamic_alloc"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56e # At line number 1390
+ .long .LASF1274 # The macro: "__glibcxx_constexpr_string 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x574 # At line number 1396
+ .long .LASF1275 # The macro: "__glibcxx_want_constexpr_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x57e # At line number 1406
+ .long .LASF1276 # The macro: "__glibcxx_want_constexpr_vector"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x58d # At line number 1421
+ .long .LASF1277 # The macro: "__glibcxx_want_constrained_equality"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x597 # At line number 1431
+ .long .LASF1278 # The macro: "__glibcxx_want_erase_if"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5a1 # At line number 1441
+ .long .LASF1279 # The macro: "__glibcxx_want_generic_unordered_lookup"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5ab # At line number 1451
+ .long .LASF1280 # The macro: "__glibcxx_want_jthread"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b5 # At line number 1461
+ .long .LASF1281 # The macro: "__glibcxx_want_latch"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5bf # At line number 1471
+ .long .LASF1282 # The macro: "__glibcxx_want_list_remove_return_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5c9 # At line number 1481
+ .long .LASF1283 # The macro: "__glibcxx_want_polymorphic_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5d3 # At line number 1491
+ .long .LASF1284 # The macro: "__glibcxx_want_move_iterator_concept"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5dd # At line number 1501
+ .long .LASF1285 # The macro: "__glibcxx_want_semaphore"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5e7 # At line number 1511
+ .long .LASF1286 # The macro: "__glibcxx_want_smart_ptr_for_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5f1 # At line number 1521
+ .long .LASF1287 # The macro: "__glibcxx_want_syncbuf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5fb # At line number 1531
+ .long .LASF1288 # The macro: "__glibcxx_want_byteswap"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x605 # At line number 1541
+ .long .LASF1289 # The macro: "__glibcxx_want_constexpr_charconv"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x60f # At line number 1551
+ .long .LASF1290 # The macro: "__glibcxx_want_constexpr_typeinfo"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x619 # At line number 1561
+ .long .LASF1291 # The macro: "__glibcxx_want_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x622 # At line number 1570
+ .long .LASF1292 # The macro: "__glibcxx_want_format_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x62c # At line number 1580
+ .long .LASF1293 # The macro: "__glibcxx_want_freestanding_algorithm"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x636 # At line number 1590
+ .long .LASF1294 # The macro: "__glibcxx_want_freestanding_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x640 # At line number 1600
+ .long .LASF1295 # The macro: "__glibcxx_want_freestanding_cstring"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x64a # At line number 1610
+ .long .LASF1296 # The macro: "__glibcxx_want_freestanding_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x654 # At line number 1620
+ .long .LASF1297 # The macro: "__glibcxx_want_freestanding_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65e # At line number 1630
+ .long .LASF1298 # The macro: "__glibcxx_want_freestanding_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x668 # At line number 1640
+ .long .LASF1299 # The macro: "__glibcxx_want_freestanding_variant"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x672 # At line number 1650
+ .long .LASF1300 # The macro: "__glibcxx_want_invoke_r"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x67c # At line number 1660
+ .long .LASF1301 # The macro: "__glibcxx_want_is_scoped_enum"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x686 # At line number 1670
+ .long .LASF1302 # The macro: "__glibcxx_want_reference_from_temporary"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x690 # At line number 1680
+ .long .LASF1303 # The macro: "__glibcxx_want_containers_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x69a # At line number 1690
+ .long .LASF1304 # The macro: "__glibcxx_want_ranges_to_container"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6a4 # At line number 1700
+ .long .LASF1305 # The macro: "__glibcxx_want_ranges_zip"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ae # At line number 1710
+ .long .LASF1306 # The macro: "__glibcxx_want_ranges_chunk"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6b8 # At line number 1720
+ .long .LASF1307 # The macro: "__glibcxx_want_ranges_slide"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6c2 # At line number 1730
+ .long .LASF1308 # The macro: "__glibcxx_want_ranges_chunk_by"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6cc # At line number 1740
+ .long .LASF1309 # The macro: "__glibcxx_want_ranges_join_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6d6 # At line number 1750
+ .long .LASF1310 # The macro: "__glibcxx_want_ranges_repeat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6e0 # At line number 1760
+ .long .LASF1311 # The macro: "__glibcxx_want_ranges_stride"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ea # At line number 1770
+ .long .LASF1312 # The macro: "__glibcxx_want_ranges_cartesian_product"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6f4 # At line number 1780
+ .long .LASF1313 # The macro: "__glibcxx_want_ranges_as_rvalue"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6fe # At line number 1790
+ .long .LASF1314 # The macro: "__glibcxx_want_ranges_as_const"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x708 # At line number 1800
+ .long .LASF1315 # The macro: "__glibcxx_want_ranges_enumerate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x712 # At line number 1810
+ .long .LASF1316 # The macro: "__glibcxx_want_ranges_fold"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x71c # At line number 1820
+ .long .LASF1317 # The macro: "__glibcxx_want_ranges_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x726 # At line number 1830
+ .long .LASF1318 # The macro: "__glibcxx_want_ranges_iota"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x730 # At line number 1840
+ .long .LASF1319 # The macro: "__glibcxx_want_ranges_find_last"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x73a # At line number 1850
+ .long .LASF1320 # The macro: "__glibcxx_want_constexpr_bitset"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x744 # At line number 1860
+ .long .LASF1321 # The macro: "__glibcxx_want_stdatomic_h"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74e # At line number 1870
+ .long .LASF1322 # The macro: "__glibcxx_want_adaptor_iterator_pair_constructor"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x758 # At line number 1880
+ .long .LASF1323 # The macro: "__glibcxx_want_flat_map"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x762 # At line number 1890
+ .long .LASF1324 # The macro: "__glibcxx_want_flat_set"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x76c # At line number 1900
+ .long .LASF1325 # The macro: "__glibcxx_want_formatters"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x776 # At line number 1910
+ .long .LASF1326 # The macro: "__glibcxx_want_forward_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x780 # At line number 1920
+ .long .LASF1327 # The macro: "__glibcxx_want_generator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78a # At line number 1930
+ .long .LASF1328 # The macro: "__glibcxx_want_ios_noreplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x794 # At line number 1940
+ .long .LASF1329 # The macro: "__glibcxx_want_move_only_function"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x79e # At line number 1950
+ .long .LASF1330 # The macro: "__glibcxx_want_out_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7a8 # At line number 1960
+ .long .LASF1331 # The macro: "__glibcxx_want_print"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7b2 # At line number 1970
+ .long .LASF1332 # The macro: "__glibcxx_want_spanstream"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7bc # At line number 1980
+ .long .LASF1333 # The macro: "__glibcxx_want_stacktrace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7c6 # At line number 1990
+ .long .LASF1334 # The macro: "__glibcxx_want_string_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7d0 # At line number 2000
+ .long .LASF1335 # The macro: "__glibcxx_want_string_resize_and_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7da # At line number 2010
+ .long .LASF1336 # The macro: "__glibcxx_want_to_underlying"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e9 # At line number 2025
+ .long .LASF1337 # The macro: "__glibcxx_want_tuple_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7f3 # At line number 2035
+ .long .LASF1338 # The macro: "__glibcxx_want_unreachable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7fd # At line number 2045
+ .long .LASF1339 # The macro: "__glibcxx_want_algorithm_default_value_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x807 # At line number 2055
+ .long .LASF1340 # The macro: "__glibcxx_want_constexpr_new"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x811 # At line number 2065
+ .long .LASF1341 # The macro: "__glibcxx_want_fstream_native_handle"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x81b # At line number 2075
+ .long .LASF1342 # The macro: "__glibcxx_want_is_virtual_base_of"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x825 # At line number 2085
+ .long .LASF1343 # The macro: "__glibcxx_want_ranges_cache_latest"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x82f # At line number 2095
+ .long .LASF1344 # The macro: "__glibcxx_want_ranges_concat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x839 # At line number 2105
+ .long .LASF1345 # The macro: "__glibcxx_want_ratio"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x843 # At line number 2115
+ .long .LASF1346 # The macro: "__glibcxx_want_reference_wrapper"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x84d # At line number 2125
+ .long .LASF1347 # The macro: "__glibcxx_want_saturation_arithmetic"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x857 # At line number 2135
+ .long .LASF1348 # The macro: "__glibcxx_want_span_initializer_list"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x861 # At line number 2145
+ .long .LASF1349 # The macro: "__glibcxx_want_text_encoding"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x86b # At line number 2155
+ .long .LASF1350 # The macro: "__glibcxx_want_ranges_to_input"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x875 # At line number 2165
+ .long .LASF1351 # The macro: "__glibcxx_want_to_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x87f # At line number 2175
+ .long .LASF1352 # The macro: "__glibcxx_want_modules"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x881 # At line number 2177
+ .long .LASF1353 # The macro: "__glibcxx_want_all"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.cpp_type_traits.h.247.c76f5fcefeda021659c214fc4154481c,comdat
+.Ldebug_macro29:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf7 # At line number 247
+ .long .LASF1438 # The macro: "__INT_N(TYPE) __extension__ template<> struct __is_integer<TYPE> { enum { __value = 1 }; typedef __true_type __type; }; __extension__ template<> struct __is_integer<unsigned TYPE> { enum { __value = 1 }; typedef __true_type __type; };"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x114 # At line number 276
+ .long .LASF1439 # The macro: "__INT_N"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.numeric_traits.h.97.218ab54da1c35bff7230edfa0d0219e8,comdat
+.Ldebug_macro30:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x61 # At line number 97
+ .long .LASF1441 # The macro: "_GLIBCXX_INT_N_TRAITS(T,WIDTH) __extension__ template<> struct __is_integer_nonstrict<T> { enum { __value = 1 }; typedef std::__true_type __type; enum { __width = WIDTH }; }; __extension__ template<> struct __is_integer_nonstrict<unsigned T> { enum { __value = 1 }; typedef std::__true_type __type; enum { __width = WIDTH }; };"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x87 # At line number 135
+ .long .LASF1442 # The macro: "_GLIBCXX_INT_N_TRAITS"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8f # At line number 143
+ .long .LASF1443 # The macro: "__glibcxx_floating(_Tp,_Fval,_Dval,_LDval) (std::__are_same<_Tp, float>::__value ? _Fval : std::__are_same<_Tp, double>::__value ? _Dval : _LDval)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x93 # At line number 147
+ .long .LASF1444 # The macro: "__glibcxx_max_digits10(_Tp) (2 + __glibcxx_floating(_Tp, __FLT_MANT_DIG__, __DBL_MANT_DIG__, __LDBL_MANT_DIG__) * 643L / 2136)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x97 # At line number 151
+ .long .LASF1445 # The macro: "__glibcxx_digits10(_Tp) __glibcxx_floating(_Tp, __FLT_DIG__, __DBL_DIG__, __LDBL_DIG__)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9a # At line number 154
+ .long .LASF1446 # The macro: "__glibcxx_max_exponent10(_Tp) __glibcxx_floating(_Tp, __FLT_MAX_10_EXP__, __DBL_MAX_10_EXP__, __LDBL_MAX_10_EXP__)"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb7 # At line number 183
+ .long .LASF1447 # The macro: "__glibcxx_floating"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb8 # At line number 184
+ .long .LASF1448 # The macro: "__glibcxx_max_digits10"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb9 # At line number 185
+ .long .LASF1449 # The macro: "__glibcxx_digits10"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xba # At line number 186
+ .long .LASF1450 # The macro: "__glibcxx_max_exponent10"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stl_tempbuf.h.70.f8a9d1b22cd67f05ae2d3f2377260bc8,comdat
+.Ldebug_macro31:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x46 # At line number 70
+ .long .LASF1404 # The macro: "_GLIBCXX_OPERATOR_NEW __builtin_operator_new"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1405 # The macro: "_GLIBCXX_OPERATOR_DELETE __builtin_operator_delete"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x69 # At line number 105
+ .long .LASF1451 # The macro: "_GLIBCXX_SIZED_DEALLOC(T,p,n) (p), (n) * sizeof(T)"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78 # At line number 120
+ .long .LASF1407 # The macro: "_GLIBCXX_SIZED_DEALLOC"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb3 # At line number 179
+ .long .LASF1408 # The macro: "_GLIBCXX_OPERATOR_DELETE"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb4 # At line number 180
+ .long .LASF1409 # The macro: "_GLIBCXX_OPERATOR_NEW"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stl_iterator.h.61.5bc243fde8a97ed55fd0715da8a10ac4,comdat
+.Ldebug_macro32:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1455 # The macro: "_STL_ITERATOR_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x728 # At line number 1832
+ .long .LASF1456 # The macro: "_GLIBCXX_MAKE_MOVE_ITERATOR(_Iter) std::make_move_iterator(_Iter)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x729 # At line number 1833
+ .long .LASF1457 # The macro: "_GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(_Iter) std::__make_move_if_noexcept_iterator(_Iter)"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.debug.h.30.14675c66734128005fe180e1012feff9,comdat
+.Ldebug_macro33:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1458 # The macro: "_GLIBCXX_DEBUG_MACRO_SWITCH_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x42 # At line number 66
+ .long .LASF1459 # The macro: "__glibcxx_requires_cond(_Cond,_Msg) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x43 # At line number 67
+ .long .LASF1460 # The macro: "__glibcxx_requires_valid_range(_First,_Last) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x44 # At line number 68
+ .long .LASF1461 # The macro: "__glibcxx_requires_can_increment(_First,_Size) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x45 # At line number 69
+ .long .LASF1462 # The macro: "__glibcxx_requires_can_increment_range(_First1,_Last1,_First2) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x46 # At line number 70
+ .long .LASF1463 # The macro: "__glibcxx_requires_can_decrement_range(_First1,_Last1,_First2) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1464 # The macro: "__glibcxx_requires_sorted(_First,_Last) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x48 # At line number 72
+ .long .LASF1465 # The macro: "__glibcxx_requires_sorted_pred(_First,_Last,_Pred) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x49 # At line number 73
+ .long .LASF1466 # The macro: "__glibcxx_requires_sorted_set(_First1,_Last1,_First2) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4a # At line number 74
+ .long .LASF1467 # The macro: "__glibcxx_requires_sorted_set_pred(_First1,_Last1,_First2,_Pred) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1468 # The macro: "__glibcxx_requires_partitioned_lower(_First,_Last,_Value) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4c # At line number 76
+ .long .LASF1469 # The macro: "__glibcxx_requires_partitioned_upper(_First,_Last,_Value) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4d # At line number 77
+ .long .LASF1470 # The macro: "__glibcxx_requires_partitioned_lower_pred(_First,_Last,_Value,_Pred) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4e # At line number 78
+ .long .LASF1471 # The macro: "__glibcxx_requires_partitioned_upper_pred(_First,_Last,_Value,_Pred) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4f # At line number 79
+ .long .LASF1472 # The macro: "__glibcxx_requires_heap(_First,_Last) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x50 # At line number 80
+ .long .LASF1473 # The macro: "__glibcxx_requires_heap_pred(_First,_Last,_Pred) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1474 # The macro: "__glibcxx_requires_string(_String) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x52 # At line number 82
+ .long .LASF1475 # The macro: "__glibcxx_requires_string_len(_String,_Len) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x53 # At line number 83
+ .long .LASF1476 # The macro: "__glibcxx_requires_irreflexive(_First,_Last) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x54 # At line number 84
+ .long .LASF1477 # The macro: "__glibcxx_requires_irreflexive2(_First,_Last) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x55 # At line number 85
+ .long .LASF1478 # The macro: "__glibcxx_requires_irreflexive_pred(_First,_Last,_Pred) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56 # At line number 86
+ .long .LASF1479 # The macro: "__glibcxx_requires_irreflexive_pred2(_First,_Last,_Pred) "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.concepts.31.ea57833c2d2cf5ded5d66f52bc824ee7,comdat
+.Ldebug_macro34:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1482 # The macro: "_GLIBCXX_CONCEPTS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25 # At line number 37
+ .long .LASF1483 # The macro: "__glibcxx_want_concepts "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.bit.58.ea88997f91bfc9ea788eded5c5af9f1e,comdat
+.Ldebug_macro35:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3a # At line number 58
+ .long .LASF1484 # The macro: "__glibcxx_want_bit_cast "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b # At line number 59
+ .long .LASF1485 # The macro: "__glibcxx_want_byteswap "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3c # At line number 60
+ .long .LASF1486 # The macro: "__glibcxx_want_bitops "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1487 # The macro: "__glibcxx_want_int_pow2 "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3e # At line number 62
+ .long .LASF1488 # The macro: "__glibcxx_want_endian "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stl_algobase.h.391.f046b31537a7eda4575156a5f2152d88,comdat
+.Ldebug_macro36:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x187 # At line number 391
+ .long .LASF1489 # The macro: "_GLIBCXX_TO_ADDR(P) P"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x188 # At line number 392
+ .long .LASF1490 # The macro: "_GLIBCXX_ADVANCE(P,N) P += N"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a6 # At line number 678
+ .long .LASF1491 # The macro: "_GLIBCXX_MOVE3(_Tp,_Up,_Vp) std::move(_Tp, _Up, _Vp)"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2e9 # At line number 745
+ .long .LASF1492 # The macro: "_GLIBCXX_TO_ADDR"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ea # At line number 746
+ .long .LASF1493 # The macro: "_GLIBCXX_ADVANCE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x377 # At line number 887
+ .long .LASF1494 # The macro: "_GLIBCXX_MOVE_BACKWARD3(_Tp,_Up,_Vp) std::move_backward(_Tp, _Up, _Vp)"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.tuple.49.28e57568481853c5a2e00d3db484dd79,comdat
+.Ldebug_macro37:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x31 # At line number 49
+ .long .LASF1503 # The macro: "__glibcxx_want_constexpr_tuple "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x32 # At line number 50
+ .long .LASF1504 # The macro: "__glibcxx_want_tuple_element_t "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x33 # At line number 51
+ .long .LASF1505 # The macro: "__glibcxx_want_tuples_by_type "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x34 # At line number 52
+ .long .LASF1506 # The macro: "__glibcxx_want_apply "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35 # At line number 53
+ .long .LASF1507 # The macro: "__glibcxx_want_make_from_tuple "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x36 # At line number 54
+ .long .LASF1508 # The macro: "__glibcxx_want_ranges_zip "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1509 # The macro: "__glibcxx_want_tuple_like "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x38 # At line number 56
+ .long .LASF1510 # The macro: "__glibcxx_want_constrained_equality "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.version.h.55.9d4b65f44a4baa3dea24bd8c586430f4,comdat
+.Ldebug_macro38:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1077 # The macro: "__glibcxx_incomplete_container_elements 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1078 # The macro: "__glibcxx_want_incomplete_container_elements"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1079 # The macro: "__glibcxx_uncaught_exceptions 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1080 # The macro: "__glibcxx_want_uncaught_exceptions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1081 # The macro: "__glibcxx_allocator_traits_is_always_equal 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1082 # The macro: "__glibcxx_want_allocator_traits_is_always_equal"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1084 # The macro: "__glibcxx_want_is_null_pointer"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1086 # The macro: "__glibcxx_want_result_of_sfinae"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1087 # The macro: "__glibcxx_shared_ptr_arrays 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1088 # The macro: "__glibcxx_want_shared_ptr_arrays"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF1090 # The macro: "__glibcxx_want_is_swappable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x88 # At line number 136
+ .long .LASF1092 # The macro: "__glibcxx_want_void_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8c # At line number 140
+ .long .LASF1093 # The macro: "__glibcxx_enable_shared_from_this 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x92 # At line number 146
+ .long .LASF1094 # The macro: "__glibcxx_want_enable_shared_from_this"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x96 # At line number 150
+ .long .LASF1095 # The macro: "__glibcxx_math_spec_funcs 201003L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF1096 # The macro: "__glibcxx_want_math_spec_funcs"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xa6 # At line number 166
+ .long .LASF1097 # The macro: "__glibcxx_want_coroutine"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa # At line number 170
+ .long .LASF1098 # The macro: "__glibcxx_exchange_function 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb0 # At line number 176
+ .long .LASF1099 # The macro: "__glibcxx_want_exchange_function"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4 # At line number 180
+ .long .LASF1100 # The macro: "__glibcxx_integer_sequence 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xba # At line number 186
+ .long .LASF1101 # The macro: "__glibcxx_want_integer_sequence"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xc4 # At line number 196
+ .long .LASF1103 # The macro: "__glibcxx_want_integral_constant_callable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xce # At line number 206
+ .long .LASF1105 # The macro: "__glibcxx_want_is_final"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2 # At line number 210
+ .long .LASF1106 # The macro: "__glibcxx_make_reverse_iterator 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd8 # At line number 216
+ .long .LASF1107 # The macro: "__glibcxx_want_make_reverse_iterator"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc # At line number 220
+ .long .LASF1108 # The macro: "__glibcxx_null_iterators 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe2 # At line number 226
+ .long .LASF1109 # The macro: "__glibcxx_want_null_iterators"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xec # At line number 236
+ .long .LASF1111 # The macro: "__glibcxx_want_transformation_trait_aliases"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf0 # At line number 240
+ .long .LASF1112 # The macro: "__glibcxx_transparent_operators 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf6 # At line number 246
+ .long .LASF1113 # The macro: "__glibcxx_want_transparent_operators"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xfa # At line number 250
+ .long .LASF1114 # The macro: "__glibcxx_tuple_element_t 201402L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xfc # At line number 252
+ .long .LASF1511 # The macro: "__cpp_lib_tuple_element_t 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x100 # At line number 256
+ .long .LASF1115 # The macro: "__glibcxx_want_tuple_element_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x104 # At line number 260
+ .long .LASF1116 # The macro: "__glibcxx_tuples_by_type 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x106 # At line number 262
+ .long .LASF1512 # The macro: "__cpp_lib_tuples_by_type 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x10a # At line number 266
+ .long .LASF1117 # The macro: "__glibcxx_want_tuples_by_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10e # At line number 270
+ .long .LASF1118 # The macro: "__glibcxx_robust_nonmodifying_seq_ops 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x114 # At line number 276
+ .long .LASF1119 # The macro: "__glibcxx_want_robust_nonmodifying_seq_ops"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11d # At line number 285
+ .long .LASF1120 # The macro: "__glibcxx_to_chars 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x123 # At line number 291
+ .long .LASF1121 # The macro: "__glibcxx_want_to_chars"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x127 # At line number 295
+ .long .LASF1122 # The macro: "__glibcxx_chrono_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x12d # At line number 301
+ .long .LASF1123 # The macro: "__glibcxx_want_chrono_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x131 # At line number 305
+ .long .LASF1124 # The macro: "__glibcxx_complex_udls 201309L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x137 # At line number 311
+ .long .LASF1125 # The macro: "__glibcxx_want_complex_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13b # At line number 315
+ .long .LASF1126 # The macro: "__glibcxx_generic_associative_lookup 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x141 # At line number 321
+ .long .LASF1127 # The macro: "__glibcxx_want_generic_associative_lookup"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x145 # At line number 325
+ .long .LASF1128 # The macro: "__glibcxx_make_unique 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x14b # At line number 331
+ .long .LASF1129 # The macro: "__glibcxx_want_make_unique"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14f # At line number 335
+ .long .LASF1130 # The macro: "__glibcxx_quoted_string_io 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x155 # At line number 341
+ .long .LASF1131 # The macro: "__glibcxx_want_quoted_string_io"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x159 # At line number 345
+ .long .LASF1132 # The macro: "__glibcxx_shared_timed_mutex 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x15f # At line number 351
+ .long .LASF1133 # The macro: "__glibcxx_want_shared_timed_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x163 # At line number 355
+ .long .LASF1134 # The macro: "__glibcxx_string_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x169 # At line number 361
+ .long .LASF1135 # The macro: "__glibcxx_want_string_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16d # At line number 365
+ .long .LASF1136 # The macro: "__glibcxx_addressof_constexpr 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x173 # At line number 371
+ .long .LASF1137 # The macro: "__glibcxx_want_addressof_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x177 # At line number 375
+ .long .LASF1138 # The macro: "__glibcxx_any 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x17d # At line number 381
+ .long .LASF1139 # The macro: "__glibcxx_want_any"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x181 # At line number 385
+ .long .LASF1140 # The macro: "__glibcxx_apply 201603L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x183 # At line number 387
+ .long .LASF1513 # The macro: "__cpp_lib_apply 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x187 # At line number 391
+ .long .LASF1141 # The macro: "__glibcxx_want_apply"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18b # At line number 395
+ .long .LASF1142 # The macro: "__glibcxx_as_const 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x191 # At line number 401
+ .long .LASF1143 # The macro: "__glibcxx_want_as_const"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x195 # At line number 405
+ .long .LASF1144 # The macro: "__glibcxx_atomic_is_always_lock_free 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19b # At line number 411
+ .long .LASF1145 # The macro: "__glibcxx_want_atomic_is_always_lock_free"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a5 # At line number 421
+ .long .LASF1147 # The macro: "__glibcxx_want_bool_constant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1148 # The macro: "__glibcxx_byte 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1af # At line number 431
+ .long .LASF1149 # The macro: "__glibcxx_want_byte"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1b9 # At line number 441
+ .long .LASF1151 # The macro: "__glibcxx_want_has_unique_object_representations"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1c3 # At line number 451
+ .long .LASF1154 # The macro: "__glibcxx_want_hardware_interference_size"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c7 # At line number 455
+ .long .LASF1155 # The macro: "__glibcxx_invoke 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1cd # At line number 461
+ .long .LASF1156 # The macro: "__glibcxx_want_invoke"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1d7 # At line number 471
+ .long .LASF1158 # The macro: "__glibcxx_want_is_aggregate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1e1 # At line number 481
+ .long .LASF1160 # The macro: "__glibcxx_want_is_invocable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1eb # At line number 491
+ .long .LASF1163 # The macro: "__glibcxx_want_launder"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1f5 # At line number 501
+ .long .LASF1165 # The macro: "__glibcxx_want_logical_traits"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f9 # At line number 505
+ .long .LASF1166 # The macro: "__glibcxx_make_from_tuple 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1fb # At line number 507
+ .long .LASF1514 # The macro: "__cpp_lib_make_from_tuple 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1ff # At line number 511
+ .long .LASF1167 # The macro: "__glibcxx_want_make_from_tuple"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x203 # At line number 515
+ .long .LASF1168 # The macro: "__glibcxx_not_fn 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x209 # At line number 521
+ .long .LASF1169 # The macro: "__glibcxx_want_not_fn"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x213 # At line number 531
+ .long .LASF1171 # The macro: "__glibcxx_want_type_trait_variable_templates"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x221 # At line number 545
+ .long .LASF1172 # The macro: "__glibcxx_variant 202102L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x227 # At line number 551
+ .long .LASF1173 # The macro: "__glibcxx_want_variant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22b # At line number 555
+ .long .LASF1174 # The macro: "__glibcxx_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x231 # At line number 561
+ .long .LASF1175 # The macro: "__glibcxx_want_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x235 # At line number 565
+ .long .LASF1176 # The macro: "__glibcxx_gcd 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x23b # At line number 571
+ .long .LASF1177 # The macro: "__glibcxx_want_gcd"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23f # At line number 575
+ .long .LASF1178 # The macro: "__glibcxx_gcd_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x245 # At line number 581
+ .long .LASF1179 # The macro: "__glibcxx_want_gcd_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24e # At line number 590
+ .long .LASF1180 # The macro: "__glibcxx_raw_memory_algorithms 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x254 # At line number 596
+ .long .LASF1181 # The macro: "__glibcxx_want_raw_memory_algorithms"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25d # At line number 605
+ .long .LASF1182 # The macro: "__glibcxx_array_constexpr 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x263 # At line number 611
+ .long .LASF1183 # The macro: "__glibcxx_want_array_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x267 # At line number 615
+ .long .LASF1184 # The macro: "__glibcxx_nonmember_container_access 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x26d # At line number 621
+ .long .LASF1185 # The macro: "__glibcxx_want_nonmember_container_access"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x271 # At line number 625
+ .long .LASF1186 # The macro: "__glibcxx_clamp 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x277 # At line number 631
+ .long .LASF1187 # The macro: "__glibcxx_want_clamp"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27b # At line number 635
+ .long .LASF1188 # The macro: "__glibcxx_sample 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x281 # At line number 641
+ .long .LASF1189 # The macro: "__glibcxx_want_sample"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x285 # At line number 645
+ .long .LASF1190 # The macro: "__glibcxx_boyer_moore_searcher 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x28b # At line number 651
+ .long .LASF1191 # The macro: "__glibcxx_want_boyer_moore_searcher"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x294 # At line number 660
+ .long .LASF1192 # The macro: "__glibcxx_chrono 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x29a # At line number 666
+ .long .LASF1193 # The macro: "__glibcxx_want_chrono"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29e # At line number 670
+ .long .LASF1194 # The macro: "__glibcxx_execution 201902L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2a4 # At line number 676
+ .long .LASF1195 # The macro: "__glibcxx_want_execution"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a8 # At line number 680
+ .long .LASF1196 # The macro: "__glibcxx_filesystem 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ae # At line number 686
+ .long .LASF1197 # The macro: "__glibcxx_want_filesystem"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b2 # At line number 690
+ .long .LASF1198 # The macro: "__glibcxx_hypot 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2b8 # At line number 696
+ .long .LASF1199 # The macro: "__glibcxx_want_hypot"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2bc # At line number 700
+ .long .LASF1200 # The macro: "__glibcxx_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2c2 # At line number 706
+ .long .LASF1201 # The macro: "__glibcxx_want_map_try_emplace"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c6 # At line number 710
+ .long .LASF1202 # The macro: "__glibcxx_math_special_functions 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2cc # At line number 716
+ .long .LASF1203 # The macro: "__glibcxx_want_math_special_functions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d0 # At line number 720
+ .long .LASF1204 # The macro: "__glibcxx_memory_resource 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2db # At line number 731
+ .long .LASF1205 # The macro: "__glibcxx_want_memory_resource"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2df # At line number 735
+ .long .LASF1206 # The macro: "__glibcxx_node_extract 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2e5 # At line number 741
+ .long .LASF1207 # The macro: "__glibcxx_want_node_extract"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e9 # At line number 745
+ .long .LASF1208 # The macro: "__glibcxx_parallel_algorithm 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ef # At line number 751
+ .long .LASF1209 # The macro: "__glibcxx_want_parallel_algorithm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f3 # At line number 755
+ .long .LASF1210 # The macro: "__glibcxx_scoped_lock 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2f9 # At line number 761
+ .long .LASF1211 # The macro: "__glibcxx_want_scoped_lock"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2fd # At line number 765
+ .long .LASF1212 # The macro: "__glibcxx_shared_mutex 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x303 # At line number 771
+ .long .LASF1213 # The macro: "__glibcxx_want_shared_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x307 # At line number 775
+ .long .LASF1214 # The macro: "__glibcxx_shared_ptr_weak_type 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x30d # At line number 781
+ .long .LASF1215 # The macro: "__glibcxx_want_shared_ptr_weak_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x316 # At line number 790
+ .long .LASF1216 # The macro: "__glibcxx_string_view 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x31c # At line number 796
+ .long .LASF1217 # The macro: "__glibcxx_want_string_view"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x320 # At line number 800
+ .long .LASF1218 # The macro: "__glibcxx_unordered_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x326 # At line number 806
+ .long .LASF1219 # The macro: "__glibcxx_want_unordered_map_try_emplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x330 # At line number 816
+ .long .LASF1220 # The macro: "__glibcxx_want_assume_aligned"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x33a # At line number 826
+ .long .LASF1221 # The macro: "__glibcxx_want_atomic_flag_test"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x344 # At line number 836
+ .long .LASF1222 # The macro: "__glibcxx_want_atomic_float"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x34e # At line number 846
+ .long .LASF1223 # The macro: "__glibcxx_want_atomic_lock_free_type_aliases"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x358 # At line number 856
+ .long .LASF1224 # The macro: "__glibcxx_want_atomic_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x362 # At line number 866
+ .long .LASF1225 # The macro: "__glibcxx_want_atomic_value_initialization"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x36c # At line number 876
+ .long .LASF1226 # The macro: "__glibcxx_want_bind_front"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x376 # At line number 886
+ .long .LASF1227 # The macro: "__glibcxx_want_bind_back"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x380 # At line number 896
+ .long .LASF1228 # The macro: "__glibcxx_want_starts_ends_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x38a # At line number 906
+ .long .LASF1229 # The macro: "__glibcxx_want_bit_cast"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x394 # At line number 916
+ .long .LASF1230 # The macro: "__glibcxx_want_bitops"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x39e # At line number 926
+ .long .LASF1231 # The macro: "__glibcxx_want_bounded_array_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3a8 # At line number 936
+ .long .LASF1232 # The macro: "__glibcxx_want_concepts"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b6 # At line number 950
+ .long .LASF1233 # The macro: "__glibcxx_optional 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3bc # At line number 956
+ .long .LASF1234 # The macro: "__glibcxx_want_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3c6 # At line number 966
+ .long .LASF1235 # The macro: "__glibcxx_want_destroying_delete"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d0 # At line number 976
+ .long .LASF1236 # The macro: "__glibcxx_want_constexpr_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3da # At line number 986
+ .long .LASF1237 # The macro: "__glibcxx_want_endian"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3e4 # At line number 996
+ .long .LASF1238 # The macro: "__glibcxx_want_int_pow2"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3ee # At line number 1006
+ .long .LASF1239 # The macro: "__glibcxx_want_integer_comparison_functions"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3f8 # At line number 1016
+ .long .LASF1240 # The macro: "__glibcxx_want_is_constant_evaluated"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x401 # At line number 1025
+ .long .LASF1241 # The macro: "__glibcxx_constexpr_char_traits 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x407 # At line number 1031
+ .long .LASF1242 # The macro: "__glibcxx_want_constexpr_char_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x411 # At line number 1041
+ .long .LASF1243 # The macro: "__glibcxx_want_is_layout_compatible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x41b # At line number 1051
+ .long .LASF1244 # The macro: "__glibcxx_want_is_nothrow_convertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x425 # At line number 1061
+ .long .LASF1245 # The macro: "__glibcxx_want_is_pointer_interconvertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x42f # At line number 1071
+ .long .LASF1246 # The macro: "__glibcxx_want_math_constants"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x439 # At line number 1081
+ .long .LASF1247 # The macro: "__glibcxx_want_make_obj_using_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x443 # At line number 1091
+ .long .LASF1248 # The macro: "__glibcxx_want_remove_cvref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x44d # At line number 1101
+ .long .LASF1249 # The macro: "__glibcxx_want_source_location"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x45c # At line number 1116
+ .long .LASF1250 # The macro: "__glibcxx_want_span"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x466 # At line number 1126
+ .long .LASF1251 # The macro: "__glibcxx_want_ssize"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x470 # At line number 1136
+ .long .LASF1252 # The macro: "__glibcxx_want_three_way_comparison"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47a # At line number 1146
+ .long .LASF1253 # The macro: "__glibcxx_want_to_address"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x484 # At line number 1156
+ .long .LASF1254 # The macro: "__glibcxx_want_to_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x48e # At line number 1166
+ .long .LASF1255 # The macro: "__glibcxx_want_type_identity"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x498 # At line number 1176
+ .long .LASF1256 # The macro: "__glibcxx_want_unwrap_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4a2 # At line number 1186
+ .long .LASF1257 # The macro: "__glibcxx_want_constexpr_iterator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4ac # At line number 1196
+ .long .LASF1258 # The macro: "__glibcxx_want_interpolate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4b6 # At line number 1206
+ .long .LASF1259 # The macro: "__glibcxx_want_constexpr_utility"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4c0 # At line number 1216
+ .long .LASF1260 # The macro: "__glibcxx_want_shift"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4d4 # At line number 1236
+ .long .LASF1261 # The macro: "__glibcxx_want_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4de # At line number 1246
+ .long .LASF1262 # The macro: "__glibcxx_want_constexpr_numeric"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4e8 # At line number 1256
+ .long .LASF1263 # The macro: "__glibcxx_want_constexpr_functional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4f7 # At line number 1271
+ .long .LASF1264 # The macro: "__glibcxx_want_constexpr_algorithms"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x501 # At line number 1281
+ .long .LASF1265 # The macro: "__glibcxx_want_constexpr_tuple"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x510 # At line number 1296
+ .long .LASF1266 # The macro: "__glibcxx_want_constexpr_memory"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51a # At line number 1306
+ .long .LASF1267 # The macro: "__glibcxx_want_atomic_shared_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x529 # At line number 1321
+ .long .LASF1268 # The macro: "__glibcxx_want_atomic_wait"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x533 # At line number 1331
+ .long .LASF1269 # The macro: "__glibcxx_want_barrier"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x542 # At line number 1346
+ .long .LASF1270 # The macro: "__glibcxx_want_format"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x54c # At line number 1356
+ .long .LASF1271 # The macro: "__glibcxx_want_format_uchar"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x556 # At line number 1366
+ .long .LASF1272 # The macro: "__glibcxx_want_constexpr_complex"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x560 # At line number 1376
+ .long .LASF1273 # The macro: "__glibcxx_want_constexpr_dynamic_alloc"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56e # At line number 1390
+ .long .LASF1274 # The macro: "__glibcxx_constexpr_string 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x574 # At line number 1396
+ .long .LASF1275 # The macro: "__glibcxx_want_constexpr_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x57e # At line number 1406
+ .long .LASF1276 # The macro: "__glibcxx_want_constexpr_vector"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x58d # At line number 1421
+ .long .LASF1277 # The macro: "__glibcxx_want_constrained_equality"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x597 # At line number 1431
+ .long .LASF1278 # The macro: "__glibcxx_want_erase_if"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5a1 # At line number 1441
+ .long .LASF1279 # The macro: "__glibcxx_want_generic_unordered_lookup"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5ab # At line number 1451
+ .long .LASF1280 # The macro: "__glibcxx_want_jthread"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b5 # At line number 1461
+ .long .LASF1281 # The macro: "__glibcxx_want_latch"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5bf # At line number 1471
+ .long .LASF1282 # The macro: "__glibcxx_want_list_remove_return_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5c9 # At line number 1481
+ .long .LASF1283 # The macro: "__glibcxx_want_polymorphic_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5d3 # At line number 1491
+ .long .LASF1284 # The macro: "__glibcxx_want_move_iterator_concept"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5dd # At line number 1501
+ .long .LASF1285 # The macro: "__glibcxx_want_semaphore"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5e7 # At line number 1511
+ .long .LASF1286 # The macro: "__glibcxx_want_smart_ptr_for_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5f1 # At line number 1521
+ .long .LASF1287 # The macro: "__glibcxx_want_syncbuf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5fb # At line number 1531
+ .long .LASF1288 # The macro: "__glibcxx_want_byteswap"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x605 # At line number 1541
+ .long .LASF1289 # The macro: "__glibcxx_want_constexpr_charconv"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x60f # At line number 1551
+ .long .LASF1290 # The macro: "__glibcxx_want_constexpr_typeinfo"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x619 # At line number 1561
+ .long .LASF1291 # The macro: "__glibcxx_want_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x622 # At line number 1570
+ .long .LASF1292 # The macro: "__glibcxx_want_format_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x62c # At line number 1580
+ .long .LASF1293 # The macro: "__glibcxx_want_freestanding_algorithm"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x636 # At line number 1590
+ .long .LASF1294 # The macro: "__glibcxx_want_freestanding_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x640 # At line number 1600
+ .long .LASF1295 # The macro: "__glibcxx_want_freestanding_cstring"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x64a # At line number 1610
+ .long .LASF1296 # The macro: "__glibcxx_want_freestanding_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x654 # At line number 1620
+ .long .LASF1297 # The macro: "__glibcxx_want_freestanding_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65e # At line number 1630
+ .long .LASF1298 # The macro: "__glibcxx_want_freestanding_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x668 # At line number 1640
+ .long .LASF1299 # The macro: "__glibcxx_want_freestanding_variant"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x672 # At line number 1650
+ .long .LASF1300 # The macro: "__glibcxx_want_invoke_r"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x67c # At line number 1660
+ .long .LASF1301 # The macro: "__glibcxx_want_is_scoped_enum"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x686 # At line number 1670
+ .long .LASF1302 # The macro: "__glibcxx_want_reference_from_temporary"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x690 # At line number 1680
+ .long .LASF1303 # The macro: "__glibcxx_want_containers_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x69a # At line number 1690
+ .long .LASF1304 # The macro: "__glibcxx_want_ranges_to_container"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6a4 # At line number 1700
+ .long .LASF1305 # The macro: "__glibcxx_want_ranges_zip"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ae # At line number 1710
+ .long .LASF1306 # The macro: "__glibcxx_want_ranges_chunk"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6b8 # At line number 1720
+ .long .LASF1307 # The macro: "__glibcxx_want_ranges_slide"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6c2 # At line number 1730
+ .long .LASF1308 # The macro: "__glibcxx_want_ranges_chunk_by"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6cc # At line number 1740
+ .long .LASF1309 # The macro: "__glibcxx_want_ranges_join_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6d6 # At line number 1750
+ .long .LASF1310 # The macro: "__glibcxx_want_ranges_repeat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6e0 # At line number 1760
+ .long .LASF1311 # The macro: "__glibcxx_want_ranges_stride"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ea # At line number 1770
+ .long .LASF1312 # The macro: "__glibcxx_want_ranges_cartesian_product"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6f4 # At line number 1780
+ .long .LASF1313 # The macro: "__glibcxx_want_ranges_as_rvalue"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6fe # At line number 1790
+ .long .LASF1314 # The macro: "__glibcxx_want_ranges_as_const"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x708 # At line number 1800
+ .long .LASF1315 # The macro: "__glibcxx_want_ranges_enumerate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x712 # At line number 1810
+ .long .LASF1316 # The macro: "__glibcxx_want_ranges_fold"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x71c # At line number 1820
+ .long .LASF1317 # The macro: "__glibcxx_want_ranges_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x726 # At line number 1830
+ .long .LASF1318 # The macro: "__glibcxx_want_ranges_iota"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x730 # At line number 1840
+ .long .LASF1319 # The macro: "__glibcxx_want_ranges_find_last"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x73a # At line number 1850
+ .long .LASF1320 # The macro: "__glibcxx_want_constexpr_bitset"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x744 # At line number 1860
+ .long .LASF1321 # The macro: "__glibcxx_want_stdatomic_h"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74e # At line number 1870
+ .long .LASF1322 # The macro: "__glibcxx_want_adaptor_iterator_pair_constructor"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x758 # At line number 1880
+ .long .LASF1323 # The macro: "__glibcxx_want_flat_map"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x762 # At line number 1890
+ .long .LASF1324 # The macro: "__glibcxx_want_flat_set"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x76c # At line number 1900
+ .long .LASF1325 # The macro: "__glibcxx_want_formatters"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x776 # At line number 1910
+ .long .LASF1326 # The macro: "__glibcxx_want_forward_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x780 # At line number 1920
+ .long .LASF1327 # The macro: "__glibcxx_want_generator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78a # At line number 1930
+ .long .LASF1328 # The macro: "__glibcxx_want_ios_noreplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x794 # At line number 1940
+ .long .LASF1329 # The macro: "__glibcxx_want_move_only_function"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x79e # At line number 1950
+ .long .LASF1330 # The macro: "__glibcxx_want_out_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7a8 # At line number 1960
+ .long .LASF1331 # The macro: "__glibcxx_want_print"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7b2 # At line number 1970
+ .long .LASF1332 # The macro: "__glibcxx_want_spanstream"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7bc # At line number 1980
+ .long .LASF1333 # The macro: "__glibcxx_want_stacktrace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7c6 # At line number 1990
+ .long .LASF1334 # The macro: "__glibcxx_want_string_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7d0 # At line number 2000
+ .long .LASF1335 # The macro: "__glibcxx_want_string_resize_and_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7da # At line number 2010
+ .long .LASF1336 # The macro: "__glibcxx_want_to_underlying"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e9 # At line number 2025
+ .long .LASF1337 # The macro: "__glibcxx_want_tuple_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7f3 # At line number 2035
+ .long .LASF1338 # The macro: "__glibcxx_want_unreachable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7fd # At line number 2045
+ .long .LASF1339 # The macro: "__glibcxx_want_algorithm_default_value_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x807 # At line number 2055
+ .long .LASF1340 # The macro: "__glibcxx_want_constexpr_new"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x811 # At line number 2065
+ .long .LASF1341 # The macro: "__glibcxx_want_fstream_native_handle"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x81b # At line number 2075
+ .long .LASF1342 # The macro: "__glibcxx_want_is_virtual_base_of"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x825 # At line number 2085
+ .long .LASF1343 # The macro: "__glibcxx_want_ranges_cache_latest"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x82f # At line number 2095
+ .long .LASF1344 # The macro: "__glibcxx_want_ranges_concat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x839 # At line number 2105
+ .long .LASF1345 # The macro: "__glibcxx_want_ratio"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x843 # At line number 2115
+ .long .LASF1346 # The macro: "__glibcxx_want_reference_wrapper"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x84d # At line number 2125
+ .long .LASF1347 # The macro: "__glibcxx_want_saturation_arithmetic"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x857 # At line number 2135
+ .long .LASF1348 # The macro: "__glibcxx_want_span_initializer_list"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x861 # At line number 2145
+ .long .LASF1349 # The macro: "__glibcxx_want_text_encoding"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x86b # At line number 2155
+ .long .LASF1350 # The macro: "__glibcxx_want_ranges_to_input"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x875 # At line number 2165
+ .long .LASF1351 # The macro: "__glibcxx_want_to_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x87f # At line number 2175
+ .long .LASF1352 # The macro: "__glibcxx_want_modules"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x881 # At line number 2177
+ .long .LASF1353 # The macro: "__glibcxx_want_all"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.tuple.1435.d67aea3b9a6325c4550c93c814ec362b,comdat
+.Ldebug_macro39:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x59b # At line number 1435
+ .long .LASF1435 # The macro: "__glibcxx_no_dangling_refs"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5ab # At line number 1451
+ .long .LASF1515 # The macro: "__glibcxx_no_dangling_refs(U) "
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x819 # At line number 2073
+ .long .LASF1435 # The macro: "__glibcxx_no_dangling_refs"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x822 # At line number 2082
+ .long .LASF1432 # The macro: "__glibcxx_no_dangling_refs(_U1,_U2) "
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xbd3 # At line number 3027
+ .long .LASF1435 # The macro: "__glibcxx_no_dangling_refs"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.functional_hash.h.118.388637d73fc5240c0e876c238ef18aa3,comdat
+.Ldebug_macro40:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x76 # At line number 118
+ .long .LASF1520 # The macro: "_Cxx_hashtable_define_trivial_hash(_Tp) template<> struct hash<_Tp> : public __hash_base<size_t, _Tp> { size_t operator()(_Tp __val) const noexcept { return static_cast<size_t>(__val); } };"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xca # At line number 202
+ .long .LASF1521 # The macro: "_Cxx_hashtable_define_trivial_hash"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.wchar.h.24.10c1a3649a347ee5acc556316eedb15a,comdat
+.Ldebug_macro41:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18 # At line number 24
+ .long .LASF1528 # The macro: "_WCHAR_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a # At line number 26
+ .long .LASF1529 # The macro: "__GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.libcheaderstart.h.31.ef39b7b23471fa34d163e8083abf71d4,comdat
+.Ldebug_macro42:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1530 # The macro: "__GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x25 # At line number 37
+ .long .LASF1531 # The macro: "__GLIBC_USE_LIB_EXT2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF1532 # The macro: "__GLIBC_USE_LIB_EXT2 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x43 # At line number 67
+ .long .LASF1533 # The macro: "__GLIBC_USE_IEC_60559_BFP_EXT"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x45 # At line number 69
+ .long .LASF1534 # The macro: "__GLIBC_USE_IEC_60559_BFP_EXT 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x49 # At line number 73
+ .long .LASF1535 # The macro: "__GLIBC_USE_IEC_60559_BFP_EXT_C23"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1536 # The macro: "__GLIBC_USE_IEC_60559_BFP_EXT_C23 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4f # At line number 79
+ .long .LASF1537 # The macro: "__GLIBC_USE_IEC_60559_EXT"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1538 # The macro: "__GLIBC_USE_IEC_60559_EXT 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5a # At line number 90
+ .long .LASF1539 # The macro: "__GLIBC_USE_IEC_60559_FUNCS_EXT"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5c # At line number 92
+ .long .LASF1540 # The macro: "__GLIBC_USE_IEC_60559_FUNCS_EXT 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x60 # At line number 96
+ .long .LASF1541 # The macro: "__GLIBC_USE_IEC_60559_FUNCS_EXT_C23"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x62 # At line number 98
+ .long .LASF1542 # The macro: "__GLIBC_USE_IEC_60559_FUNCS_EXT_C23 1"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x69 # At line number 105
+ .long .LASF1543 # The macro: "__GLIBC_USE_IEC_60559_TYPES_EXT"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6b # At line number 107
+ .long .LASF1544 # The macro: "__GLIBC_USE_IEC_60559_TYPES_EXT 1"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.floatn.h.20.40a9ac728e59b3a32d20c30e247f330a,comdat
+.Ldebug_macro43:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1545 # The macro: "_BITS_FLOATN_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25 # At line number 37
+ .long .LASF1546 # The macro: "__HAVE_FLOAT128 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d # At line number 45
+ .long .LASF1547 # The macro: "__HAVE_DISTINCT_FLOAT128 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35 # At line number 53
+ .long .LASF1548 # The macro: "__HAVE_FLOAT64X 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b # At line number 59
+ .long .LASF1549 # The macro: "__HAVE_FLOAT64X_LONG_DOUBLE 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x48 # At line number 72
+ .long .LASF1550 # The macro: "__f128(x) x ##f128"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56 # At line number 86
+ .long .LASF1551 # The macro: "__CFLOAT128 _Complex _Float128"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.floatncommon.h.34.df172c769a97023fbe97facd72e1212b,comdat
+.Ldebug_macro44:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22 # At line number 34
+ .long .LASF1553 # The macro: "__HAVE_FLOAT16 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23 # At line number 35
+ .long .LASF1554 # The macro: "__HAVE_FLOAT32 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24 # At line number 36
+ .long .LASF1555 # The macro: "__HAVE_FLOAT64 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25 # At line number 37
+ .long .LASF1556 # The macro: "__HAVE_FLOAT32X 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x26 # At line number 38
+ .long .LASF1557 # The macro: "__HAVE_FLOAT128X 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x34 # At line number 52
+ .long .LASF1558 # The macro: "__HAVE_DISTINCT_FLOAT16 __HAVE_FLOAT16"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35 # At line number 53
+ .long .LASF1559 # The macro: "__HAVE_DISTINCT_FLOAT32 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x36 # At line number 54
+ .long .LASF1560 # The macro: "__HAVE_DISTINCT_FLOAT64 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1561 # The macro: "__HAVE_DISTINCT_FLOAT32X 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x38 # At line number 56
+ .long .LASF1562 # The macro: "__HAVE_DISTINCT_FLOAT64X 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1563 # The macro: "__HAVE_DISTINCT_FLOAT128X __HAVE_FLOAT128X"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3f # At line number 63
+ .long .LASF1564 # The macro: "__HAVE_FLOAT128_UNLIKE_LDBL (__HAVE_DISTINCT_FLOAT128 && __LDBL_MANT_DIG__ != 113)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x48 # At line number 72
+ .long .LASF1565 # The macro: "__HAVE_FLOATN_NOT_TYPEDEF 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5d # At line number 93
+ .long .LASF1566 # The macro: "__f32(x) x ##f32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x69 # At line number 105
+ .long .LASF1567 # The macro: "__f64(x) x ##f64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x71 # At line number 113
+ .long .LASF1568 # The macro: "__f32x(x) x ##f32x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7d # At line number 125
+ .long .LASF1569 # The macro: "__f64x(x) x ##f64x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x97 # At line number 151
+ .long .LASF1570 # The macro: "__CFLOAT32 _Complex _Float32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa3 # At line number 163
+ .long .LASF1571 # The macro: "__CFLOAT64 _Complex _Float64"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xab # At line number 171
+ .long .LASF1572 # The macro: "__CFLOAT32X _Complex _Float32x"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb7 # At line number 183
+ .long .LASF1573 # The macro: "__CFLOAT64X _Complex _Float64x"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.wchar.h.32.859ec9de6e76762773b13581955bbb2b,comdat
+.Ldebug_macro45:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20 # At line number 32
+ .long .LASF1574 # The macro: "__need_size_t "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x21 # At line number 33
+ .long .LASF1575 # The macro: "__need_wchar_t "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22 # At line number 34
+ .long .LASF1576 # The macro: "__need_NULL "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.200.c4d2c1d067703956b4be3d13d3c90377,comdat
+.Ldebug_macro46:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc8 # At line number 200
+ .long .LASF1577 # The macro: "__size_t__ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc9 # At line number 201
+ .long .LASF1578 # The macro: "__SIZE_T__ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xca # At line number 202
+ .long .LASF1579 # The macro: "_SIZE_T "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcb # At line number 203
+ .long .LASF1580 # The macro: "_SYS_SIZE_T_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcc # At line number 204
+ .long .LASF1581 # The macro: "_T_SIZE_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcd # At line number 205
+ .long .LASF1582 # The macro: "_T_SIZE "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xce # At line number 206
+ .long .LASF1583 # The macro: "__SIZE_T "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xcf # At line number 207
+ .long .LASF1584 # The macro: "_SIZE_T_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd0 # At line number 208
+ .long .LASF1585 # The macro: "_BSD_SIZE_T_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd1 # At line number 209
+ .long .LASF1586 # The macro: "_SIZE_T_DEFINED_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2 # At line number 210
+ .long .LASF1587 # The macro: "_SIZE_T_DEFINED "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd3 # At line number 211
+ .long .LASF1588 # The macro: "_BSD_SIZE_T_DEFINED_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd4 # At line number 212
+ .long .LASF1589 # The macro: "_SIZE_T_DECLARED "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd5 # At line number 213
+ .long .LASF1590 # The macro: "__DEFINED_size_t "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd6 # At line number 214
+ .long .LASF1591 # The macro: "___int_size_t_h "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd7 # At line number 215
+ .long .LASF1592 # The macro: "_GCC_SIZE_T "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd8 # At line number 216
+ .long .LASF1593 # The macro: "_SIZET_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdf # At line number 223
+ .long .LASF1594 # The macro: "__size_t "
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xfc # At line number 252
+ .long .LASF1595 # The macro: "__need_size_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11a # At line number 282
+ .long .LASF1596 # The macro: "__wchar_t__ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11b # At line number 283
+ .long .LASF1597 # The macro: "__WCHAR_T__ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11c # At line number 284
+ .long .LASF1598 # The macro: "_WCHAR_T "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11d # At line number 285
+ .long .LASF1599 # The macro: "_T_WCHAR_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11e # At line number 286
+ .long .LASF1600 # The macro: "_T_WCHAR "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11f # At line number 287
+ .long .LASF1601 # The macro: "__WCHAR_T "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x120 # At line number 288
+ .long .LASF1602 # The macro: "_WCHAR_T_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x121 # At line number 289
+ .long .LASF1603 # The macro: "_BSD_WCHAR_T_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x122 # At line number 290
+ .long .LASF1604 # The macro: "_WCHAR_T_DEFINED_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x123 # At line number 291
+ .long .LASF1605 # The macro: "_WCHAR_T_DEFINED "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x124 # At line number 292
+ .long .LASF1606 # The macro: "_WCHAR_T_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x125 # At line number 293
+ .long .LASF1607 # The macro: "___int_wchar_t_h "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x126 # At line number 294
+ .long .LASF1608 # The macro: "__INT_WCHAR_T_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x127 # At line number 295
+ .long .LASF1609 # The macro: "_GCC_WCHAR_T "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x128 # At line number 296
+ .long .LASF1610 # The macro: "_WCHAR_T_DECLARED "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x129 # At line number 297
+ .long .LASF1611 # The macro: "__DEFINED_wchar_t "
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x136 # At line number 310
+ .long .LASF1612 # The macro: "_BSD_WCHAR_T_"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x16c # At line number 364
+ .long .LASF1613 # The macro: "__need_wchar_t"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19e # At line number 414
+ .long .LASF1614 # The macro: "NULL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a0 # At line number 416
+ .long .LASF1615 # The macro: "NULL __null"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1616 # The macro: "__need_NULL"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stdarg.h.34.3a23a216c0c293b3d2ea2e89281481e6,comdat
+.Ldebug_macro47:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x22 # At line number 34
+ .long .LASF1618 # The macro: "__need___va_list"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27 # At line number 39
+ .long .LASF1619 # The macro: "__GNUC_VA_LIST "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.wchar.h.20.510818a05484290d697a517509bf4b2d,comdat
+.Ldebug_macro48:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1621 # The macro: "_BITS_WCHAR_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22 # At line number 34
+ .long .LASF1622 # The macro: "__WCHAR_MAX __WCHAR_MAX__"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a # At line number 42
+ .long .LASF1623 # The macro: "__WCHAR_MIN __WCHAR_MIN__"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.wint_t.h.2.b153cb48df5337e6e56fe1404a1b29c5,comdat
+.Ldebug_macro49:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1624 # The macro: "__wint_t_defined 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa # At line number 10
+ .long .LASF1625 # The macro: "_WINT_T 1"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.wchar.h.65.e3fe15defaa684f3e64fa6c530673c3a,comdat
+.Ldebug_macro50:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1632 # The macro: "__CORRECT_ISO_CPP_WCHAR_H_PROTO "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x46 # At line number 70
+ .long .LASF1633 # The macro: "WCHAR_MIN __WCHAR_MIN"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1634 # The macro: "WCHAR_MAX __WCHAR_MAX"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1635 # The macro: "WEOF (0xffffffffu)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c9 # At line number 713
+ .long .LASF1636 # The macro: "__attr_dealloc_fclose "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.cwchar.70.10f0ac513f08a236e4be3486931c2c1b,comdat
+.Ldebug_macro51:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x46 # At line number 70
+ .long .LASF1637 # The macro: "btowc"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1638 # The macro: "fgetwc"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x48 # At line number 72
+ .long .LASF1639 # The macro: "fgetws"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x49 # At line number 73
+ .long .LASF1640 # The macro: "fputwc"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4a # At line number 74
+ .long .LASF1641 # The macro: "fputws"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1642 # The macro: "fwide"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4c # At line number 76
+ .long .LASF1643 # The macro: "fwprintf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4d # At line number 77
+ .long .LASF1644 # The macro: "fwscanf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4e # At line number 78
+ .long .LASF1645 # The macro: "getwc"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4f # At line number 79
+ .long .LASF1646 # The macro: "getwchar"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x50 # At line number 80
+ .long .LASF1647 # The macro: "mbrlen"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1648 # The macro: "mbrtowc"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x52 # At line number 82
+ .long .LASF1649 # The macro: "mbsinit"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x53 # At line number 83
+ .long .LASF1650 # The macro: "mbsrtowcs"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x54 # At line number 84
+ .long .LASF1651 # The macro: "putwc"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x55 # At line number 85
+ .long .LASF1652 # The macro: "putwchar"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x56 # At line number 86
+ .long .LASF1653 # The macro: "swprintf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x57 # At line number 87
+ .long .LASF1654 # The macro: "swscanf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x58 # At line number 88
+ .long .LASF1655 # The macro: "ungetwc"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x59 # At line number 89
+ .long .LASF1656 # The macro: "vfwprintf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1657 # The macro: "vfwscanf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5d # At line number 93
+ .long .LASF1658 # The macro: "vswprintf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5f # At line number 95
+ .long .LASF1659 # The macro: "vswscanf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x61 # At line number 97
+ .long .LASF1660 # The macro: "vwprintf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x63 # At line number 99
+ .long .LASF1661 # The macro: "vwscanf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1662 # The macro: "wcrtomb"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x66 # At line number 102
+ .long .LASF1663 # The macro: "wcscat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x67 # At line number 103
+ .long .LASF1664 # The macro: "wcschr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x68 # At line number 104
+ .long .LASF1665 # The macro: "wcscmp"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x69 # At line number 105
+ .long .LASF1666 # The macro: "wcscoll"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6a # At line number 106
+ .long .LASF1667 # The macro: "wcscpy"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6b # At line number 107
+ .long .LASF1668 # The macro: "wcscspn"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6c # At line number 108
+ .long .LASF1669 # The macro: "wcsftime"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6d # At line number 109
+ .long .LASF1670 # The macro: "wcslen"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1671 # The macro: "wcsncat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6f # At line number 111
+ .long .LASF1672 # The macro: "wcsncmp"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x70 # At line number 112
+ .long .LASF1673 # The macro: "wcsncpy"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x71 # At line number 113
+ .long .LASF1674 # The macro: "wcspbrk"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x72 # At line number 114
+ .long .LASF1675 # The macro: "wcsrchr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x73 # At line number 115
+ .long .LASF1676 # The macro: "wcsrtombs"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1677 # The macro: "wcsspn"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x75 # At line number 117
+ .long .LASF1678 # The macro: "wcsstr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x76 # At line number 118
+ .long .LASF1679 # The macro: "wcstod"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78 # At line number 120
+ .long .LASF1680 # The macro: "wcstof"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7a # At line number 122
+ .long .LASF1681 # The macro: "wcstok"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7b # At line number 123
+ .long .LASF1682 # The macro: "wcstol"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7c # At line number 124
+ .long .LASF1683 # The macro: "wcstoul"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7d # At line number 125
+ .long .LASF1684 # The macro: "wcsxfrm"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF1685 # The macro: "wctob"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7f # At line number 127
+ .long .LASF1686 # The macro: "wmemchr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x80 # At line number 128
+ .long .LASF1687 # The macro: "wmemcmp"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x81 # At line number 129
+ .long .LASF1688 # The macro: "wmemcpy"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x82 # At line number 130
+ .long .LASF1689 # The macro: "wmemmove"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x83 # At line number 131
+ .long .LASF1690 # The macro: "wmemset"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x84 # At line number 132
+ .long .LASF1691 # The macro: "wprintf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x85 # At line number 133
+ .long .LASF1692 # The macro: "wscanf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf2 # At line number 242
+ .long .LASF1693 # The macro: "wcstold"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf3 # At line number 243
+ .long .LASF1694 # The macro: "wcstoll"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf4 # At line number 244
+ .long .LASF1695 # The macro: "wcstoull"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.typeinfo.30.311085fb6803c6c86c2ae5d923e63677,comdat
+.Ldebug_macro52:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1697 # The macro: "_TYPEINFO "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29 # At line number 41
+ .long .LASF1698 # The macro: "__glibcxx_want_constexpr_typeinfo "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.version.h.55.27d86c228edb584b68e180abfd62a984,comdat
+.Ldebug_macro53:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1077 # The macro: "__glibcxx_incomplete_container_elements 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1078 # The macro: "__glibcxx_want_incomplete_container_elements"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1079 # The macro: "__glibcxx_uncaught_exceptions 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1080 # The macro: "__glibcxx_want_uncaught_exceptions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1081 # The macro: "__glibcxx_allocator_traits_is_always_equal 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1082 # The macro: "__glibcxx_want_allocator_traits_is_always_equal"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1084 # The macro: "__glibcxx_want_is_null_pointer"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1086 # The macro: "__glibcxx_want_result_of_sfinae"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1087 # The macro: "__glibcxx_shared_ptr_arrays 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1088 # The macro: "__glibcxx_want_shared_ptr_arrays"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF1090 # The macro: "__glibcxx_want_is_swappable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x88 # At line number 136
+ .long .LASF1092 # The macro: "__glibcxx_want_void_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8c # At line number 140
+ .long .LASF1093 # The macro: "__glibcxx_enable_shared_from_this 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x92 # At line number 146
+ .long .LASF1094 # The macro: "__glibcxx_want_enable_shared_from_this"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x96 # At line number 150
+ .long .LASF1095 # The macro: "__glibcxx_math_spec_funcs 201003L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF1096 # The macro: "__glibcxx_want_math_spec_funcs"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xa6 # At line number 166
+ .long .LASF1097 # The macro: "__glibcxx_want_coroutine"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa # At line number 170
+ .long .LASF1098 # The macro: "__glibcxx_exchange_function 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb0 # At line number 176
+ .long .LASF1099 # The macro: "__glibcxx_want_exchange_function"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4 # At line number 180
+ .long .LASF1100 # The macro: "__glibcxx_integer_sequence 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xba # At line number 186
+ .long .LASF1101 # The macro: "__glibcxx_want_integer_sequence"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xc4 # At line number 196
+ .long .LASF1103 # The macro: "__glibcxx_want_integral_constant_callable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xce # At line number 206
+ .long .LASF1105 # The macro: "__glibcxx_want_is_final"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2 # At line number 210
+ .long .LASF1106 # The macro: "__glibcxx_make_reverse_iterator 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd8 # At line number 216
+ .long .LASF1107 # The macro: "__glibcxx_want_make_reverse_iterator"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc # At line number 220
+ .long .LASF1108 # The macro: "__glibcxx_null_iterators 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe2 # At line number 226
+ .long .LASF1109 # The macro: "__glibcxx_want_null_iterators"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xec # At line number 236
+ .long .LASF1111 # The macro: "__glibcxx_want_transformation_trait_aliases"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf0 # At line number 240
+ .long .LASF1112 # The macro: "__glibcxx_transparent_operators 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf6 # At line number 246
+ .long .LASF1113 # The macro: "__glibcxx_want_transparent_operators"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x100 # At line number 256
+ .long .LASF1115 # The macro: "__glibcxx_want_tuple_element_t"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x10a # At line number 266
+ .long .LASF1117 # The macro: "__glibcxx_want_tuples_by_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10e # At line number 270
+ .long .LASF1118 # The macro: "__glibcxx_robust_nonmodifying_seq_ops 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x114 # At line number 276
+ .long .LASF1119 # The macro: "__glibcxx_want_robust_nonmodifying_seq_ops"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11d # At line number 285
+ .long .LASF1120 # The macro: "__glibcxx_to_chars 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x123 # At line number 291
+ .long .LASF1121 # The macro: "__glibcxx_want_to_chars"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x127 # At line number 295
+ .long .LASF1122 # The macro: "__glibcxx_chrono_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x12d # At line number 301
+ .long .LASF1123 # The macro: "__glibcxx_want_chrono_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x131 # At line number 305
+ .long .LASF1124 # The macro: "__glibcxx_complex_udls 201309L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x137 # At line number 311
+ .long .LASF1125 # The macro: "__glibcxx_want_complex_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13b # At line number 315
+ .long .LASF1126 # The macro: "__glibcxx_generic_associative_lookup 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x141 # At line number 321
+ .long .LASF1127 # The macro: "__glibcxx_want_generic_associative_lookup"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x145 # At line number 325
+ .long .LASF1128 # The macro: "__glibcxx_make_unique 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x14b # At line number 331
+ .long .LASF1129 # The macro: "__glibcxx_want_make_unique"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14f # At line number 335
+ .long .LASF1130 # The macro: "__glibcxx_quoted_string_io 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x155 # At line number 341
+ .long .LASF1131 # The macro: "__glibcxx_want_quoted_string_io"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x159 # At line number 345
+ .long .LASF1132 # The macro: "__glibcxx_shared_timed_mutex 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x15f # At line number 351
+ .long .LASF1133 # The macro: "__glibcxx_want_shared_timed_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x163 # At line number 355
+ .long .LASF1134 # The macro: "__glibcxx_string_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x169 # At line number 361
+ .long .LASF1135 # The macro: "__glibcxx_want_string_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16d # At line number 365
+ .long .LASF1136 # The macro: "__glibcxx_addressof_constexpr 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x173 # At line number 371
+ .long .LASF1137 # The macro: "__glibcxx_want_addressof_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x177 # At line number 375
+ .long .LASF1138 # The macro: "__glibcxx_any 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x17d # At line number 381
+ .long .LASF1139 # The macro: "__glibcxx_want_any"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x187 # At line number 391
+ .long .LASF1141 # The macro: "__glibcxx_want_apply"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18b # At line number 395
+ .long .LASF1142 # The macro: "__glibcxx_as_const 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x191 # At line number 401
+ .long .LASF1143 # The macro: "__glibcxx_want_as_const"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x195 # At line number 405
+ .long .LASF1144 # The macro: "__glibcxx_atomic_is_always_lock_free 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19b # At line number 411
+ .long .LASF1145 # The macro: "__glibcxx_want_atomic_is_always_lock_free"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a5 # At line number 421
+ .long .LASF1147 # The macro: "__glibcxx_want_bool_constant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1148 # The macro: "__glibcxx_byte 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1af # At line number 431
+ .long .LASF1149 # The macro: "__glibcxx_want_byte"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1b9 # At line number 441
+ .long .LASF1151 # The macro: "__glibcxx_want_has_unique_object_representations"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1c3 # At line number 451
+ .long .LASF1154 # The macro: "__glibcxx_want_hardware_interference_size"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c7 # At line number 455
+ .long .LASF1155 # The macro: "__glibcxx_invoke 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1cd # At line number 461
+ .long .LASF1156 # The macro: "__glibcxx_want_invoke"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1d7 # At line number 471
+ .long .LASF1158 # The macro: "__glibcxx_want_is_aggregate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1e1 # At line number 481
+ .long .LASF1160 # The macro: "__glibcxx_want_is_invocable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1eb # At line number 491
+ .long .LASF1163 # The macro: "__glibcxx_want_launder"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1f5 # At line number 501
+ .long .LASF1165 # The macro: "__glibcxx_want_logical_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1ff # At line number 511
+ .long .LASF1167 # The macro: "__glibcxx_want_make_from_tuple"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x203 # At line number 515
+ .long .LASF1168 # The macro: "__glibcxx_not_fn 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x209 # At line number 521
+ .long .LASF1169 # The macro: "__glibcxx_want_not_fn"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x213 # At line number 531
+ .long .LASF1171 # The macro: "__glibcxx_want_type_trait_variable_templates"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x221 # At line number 545
+ .long .LASF1172 # The macro: "__glibcxx_variant 202102L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x227 # At line number 551
+ .long .LASF1173 # The macro: "__glibcxx_want_variant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22b # At line number 555
+ .long .LASF1174 # The macro: "__glibcxx_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x231 # At line number 561
+ .long .LASF1175 # The macro: "__glibcxx_want_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x235 # At line number 565
+ .long .LASF1176 # The macro: "__glibcxx_gcd 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x23b # At line number 571
+ .long .LASF1177 # The macro: "__glibcxx_want_gcd"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23f # At line number 575
+ .long .LASF1178 # The macro: "__glibcxx_gcd_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x245 # At line number 581
+ .long .LASF1179 # The macro: "__glibcxx_want_gcd_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24e # At line number 590
+ .long .LASF1180 # The macro: "__glibcxx_raw_memory_algorithms 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x254 # At line number 596
+ .long .LASF1181 # The macro: "__glibcxx_want_raw_memory_algorithms"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25d # At line number 605
+ .long .LASF1182 # The macro: "__glibcxx_array_constexpr 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x263 # At line number 611
+ .long .LASF1183 # The macro: "__glibcxx_want_array_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x267 # At line number 615
+ .long .LASF1184 # The macro: "__glibcxx_nonmember_container_access 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x26d # At line number 621
+ .long .LASF1185 # The macro: "__glibcxx_want_nonmember_container_access"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x271 # At line number 625
+ .long .LASF1186 # The macro: "__glibcxx_clamp 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x277 # At line number 631
+ .long .LASF1187 # The macro: "__glibcxx_want_clamp"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27b # At line number 635
+ .long .LASF1188 # The macro: "__glibcxx_sample 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x281 # At line number 641
+ .long .LASF1189 # The macro: "__glibcxx_want_sample"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x285 # At line number 645
+ .long .LASF1190 # The macro: "__glibcxx_boyer_moore_searcher 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x28b # At line number 651
+ .long .LASF1191 # The macro: "__glibcxx_want_boyer_moore_searcher"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x294 # At line number 660
+ .long .LASF1192 # The macro: "__glibcxx_chrono 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x29a # At line number 666
+ .long .LASF1193 # The macro: "__glibcxx_want_chrono"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29e # At line number 670
+ .long .LASF1194 # The macro: "__glibcxx_execution 201902L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2a4 # At line number 676
+ .long .LASF1195 # The macro: "__glibcxx_want_execution"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a8 # At line number 680
+ .long .LASF1196 # The macro: "__glibcxx_filesystem 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ae # At line number 686
+ .long .LASF1197 # The macro: "__glibcxx_want_filesystem"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b2 # At line number 690
+ .long .LASF1198 # The macro: "__glibcxx_hypot 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2b8 # At line number 696
+ .long .LASF1199 # The macro: "__glibcxx_want_hypot"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2bc # At line number 700
+ .long .LASF1200 # The macro: "__glibcxx_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2c2 # At line number 706
+ .long .LASF1201 # The macro: "__glibcxx_want_map_try_emplace"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c6 # At line number 710
+ .long .LASF1202 # The macro: "__glibcxx_math_special_functions 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2cc # At line number 716
+ .long .LASF1203 # The macro: "__glibcxx_want_math_special_functions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d0 # At line number 720
+ .long .LASF1204 # The macro: "__glibcxx_memory_resource 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2db # At line number 731
+ .long .LASF1205 # The macro: "__glibcxx_want_memory_resource"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2df # At line number 735
+ .long .LASF1206 # The macro: "__glibcxx_node_extract 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2e5 # At line number 741
+ .long .LASF1207 # The macro: "__glibcxx_want_node_extract"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e9 # At line number 745
+ .long .LASF1208 # The macro: "__glibcxx_parallel_algorithm 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ef # At line number 751
+ .long .LASF1209 # The macro: "__glibcxx_want_parallel_algorithm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f3 # At line number 755
+ .long .LASF1210 # The macro: "__glibcxx_scoped_lock 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2f9 # At line number 761
+ .long .LASF1211 # The macro: "__glibcxx_want_scoped_lock"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2fd # At line number 765
+ .long .LASF1212 # The macro: "__glibcxx_shared_mutex 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x303 # At line number 771
+ .long .LASF1213 # The macro: "__glibcxx_want_shared_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x307 # At line number 775
+ .long .LASF1214 # The macro: "__glibcxx_shared_ptr_weak_type 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x30d # At line number 781
+ .long .LASF1215 # The macro: "__glibcxx_want_shared_ptr_weak_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x316 # At line number 790
+ .long .LASF1216 # The macro: "__glibcxx_string_view 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x31c # At line number 796
+ .long .LASF1217 # The macro: "__glibcxx_want_string_view"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x320 # At line number 800
+ .long .LASF1218 # The macro: "__glibcxx_unordered_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x326 # At line number 806
+ .long .LASF1219 # The macro: "__glibcxx_want_unordered_map_try_emplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x330 # At line number 816
+ .long .LASF1220 # The macro: "__glibcxx_want_assume_aligned"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x33a # At line number 826
+ .long .LASF1221 # The macro: "__glibcxx_want_atomic_flag_test"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x344 # At line number 836
+ .long .LASF1222 # The macro: "__glibcxx_want_atomic_float"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x34e # At line number 846
+ .long .LASF1223 # The macro: "__glibcxx_want_atomic_lock_free_type_aliases"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x358 # At line number 856
+ .long .LASF1224 # The macro: "__glibcxx_want_atomic_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x362 # At line number 866
+ .long .LASF1225 # The macro: "__glibcxx_want_atomic_value_initialization"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x36c # At line number 876
+ .long .LASF1226 # The macro: "__glibcxx_want_bind_front"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x376 # At line number 886
+ .long .LASF1227 # The macro: "__glibcxx_want_bind_back"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x380 # At line number 896
+ .long .LASF1228 # The macro: "__glibcxx_want_starts_ends_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x38a # At line number 906
+ .long .LASF1229 # The macro: "__glibcxx_want_bit_cast"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x394 # At line number 916
+ .long .LASF1230 # The macro: "__glibcxx_want_bitops"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x39e # At line number 926
+ .long .LASF1231 # The macro: "__glibcxx_want_bounded_array_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3a8 # At line number 936
+ .long .LASF1232 # The macro: "__glibcxx_want_concepts"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b6 # At line number 950
+ .long .LASF1233 # The macro: "__glibcxx_optional 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3bc # At line number 956
+ .long .LASF1234 # The macro: "__glibcxx_want_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3c6 # At line number 966
+ .long .LASF1235 # The macro: "__glibcxx_want_destroying_delete"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d0 # At line number 976
+ .long .LASF1236 # The macro: "__glibcxx_want_constexpr_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3da # At line number 986
+ .long .LASF1237 # The macro: "__glibcxx_want_endian"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3e4 # At line number 996
+ .long .LASF1238 # The macro: "__glibcxx_want_int_pow2"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3ee # At line number 1006
+ .long .LASF1239 # The macro: "__glibcxx_want_integer_comparison_functions"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3f8 # At line number 1016
+ .long .LASF1240 # The macro: "__glibcxx_want_is_constant_evaluated"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x401 # At line number 1025
+ .long .LASF1241 # The macro: "__glibcxx_constexpr_char_traits 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x407 # At line number 1031
+ .long .LASF1242 # The macro: "__glibcxx_want_constexpr_char_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x411 # At line number 1041
+ .long .LASF1243 # The macro: "__glibcxx_want_is_layout_compatible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x41b # At line number 1051
+ .long .LASF1244 # The macro: "__glibcxx_want_is_nothrow_convertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x425 # At line number 1061
+ .long .LASF1245 # The macro: "__glibcxx_want_is_pointer_interconvertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x42f # At line number 1071
+ .long .LASF1246 # The macro: "__glibcxx_want_math_constants"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x439 # At line number 1081
+ .long .LASF1247 # The macro: "__glibcxx_want_make_obj_using_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x443 # At line number 1091
+ .long .LASF1248 # The macro: "__glibcxx_want_remove_cvref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x44d # At line number 1101
+ .long .LASF1249 # The macro: "__glibcxx_want_source_location"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x45c # At line number 1116
+ .long .LASF1250 # The macro: "__glibcxx_want_span"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x466 # At line number 1126
+ .long .LASF1251 # The macro: "__glibcxx_want_ssize"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x470 # At line number 1136
+ .long .LASF1252 # The macro: "__glibcxx_want_three_way_comparison"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47a # At line number 1146
+ .long .LASF1253 # The macro: "__glibcxx_want_to_address"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x484 # At line number 1156
+ .long .LASF1254 # The macro: "__glibcxx_want_to_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x48e # At line number 1166
+ .long .LASF1255 # The macro: "__glibcxx_want_type_identity"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x498 # At line number 1176
+ .long .LASF1256 # The macro: "__glibcxx_want_unwrap_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4a2 # At line number 1186
+ .long .LASF1257 # The macro: "__glibcxx_want_constexpr_iterator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4ac # At line number 1196
+ .long .LASF1258 # The macro: "__glibcxx_want_interpolate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4b6 # At line number 1206
+ .long .LASF1259 # The macro: "__glibcxx_want_constexpr_utility"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4c0 # At line number 1216
+ .long .LASF1260 # The macro: "__glibcxx_want_shift"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4d4 # At line number 1236
+ .long .LASF1261 # The macro: "__glibcxx_want_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4de # At line number 1246
+ .long .LASF1262 # The macro: "__glibcxx_want_constexpr_numeric"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4e8 # At line number 1256
+ .long .LASF1263 # The macro: "__glibcxx_want_constexpr_functional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4f7 # At line number 1271
+ .long .LASF1264 # The macro: "__glibcxx_want_constexpr_algorithms"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x501 # At line number 1281
+ .long .LASF1265 # The macro: "__glibcxx_want_constexpr_tuple"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x510 # At line number 1296
+ .long .LASF1266 # The macro: "__glibcxx_want_constexpr_memory"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51a # At line number 1306
+ .long .LASF1267 # The macro: "__glibcxx_want_atomic_shared_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x529 # At line number 1321
+ .long .LASF1268 # The macro: "__glibcxx_want_atomic_wait"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x533 # At line number 1331
+ .long .LASF1269 # The macro: "__glibcxx_want_barrier"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x542 # At line number 1346
+ .long .LASF1270 # The macro: "__glibcxx_want_format"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x54c # At line number 1356
+ .long .LASF1271 # The macro: "__glibcxx_want_format_uchar"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x556 # At line number 1366
+ .long .LASF1272 # The macro: "__glibcxx_want_constexpr_complex"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x560 # At line number 1376
+ .long .LASF1273 # The macro: "__glibcxx_want_constexpr_dynamic_alloc"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56e # At line number 1390
+ .long .LASF1274 # The macro: "__glibcxx_constexpr_string 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x574 # At line number 1396
+ .long .LASF1275 # The macro: "__glibcxx_want_constexpr_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x57e # At line number 1406
+ .long .LASF1276 # The macro: "__glibcxx_want_constexpr_vector"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x58d # At line number 1421
+ .long .LASF1277 # The macro: "__glibcxx_want_constrained_equality"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x597 # At line number 1431
+ .long .LASF1278 # The macro: "__glibcxx_want_erase_if"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5a1 # At line number 1441
+ .long .LASF1279 # The macro: "__glibcxx_want_generic_unordered_lookup"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5ab # At line number 1451
+ .long .LASF1280 # The macro: "__glibcxx_want_jthread"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b5 # At line number 1461
+ .long .LASF1281 # The macro: "__glibcxx_want_latch"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5bf # At line number 1471
+ .long .LASF1282 # The macro: "__glibcxx_want_list_remove_return_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5c9 # At line number 1481
+ .long .LASF1283 # The macro: "__glibcxx_want_polymorphic_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5d3 # At line number 1491
+ .long .LASF1284 # The macro: "__glibcxx_want_move_iterator_concept"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5dd # At line number 1501
+ .long .LASF1285 # The macro: "__glibcxx_want_semaphore"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5e7 # At line number 1511
+ .long .LASF1286 # The macro: "__glibcxx_want_smart_ptr_for_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5f1 # At line number 1521
+ .long .LASF1287 # The macro: "__glibcxx_want_syncbuf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5fb # At line number 1531
+ .long .LASF1288 # The macro: "__glibcxx_want_byteswap"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x605 # At line number 1541
+ .long .LASF1289 # The macro: "__glibcxx_want_constexpr_charconv"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x60f # At line number 1551
+ .long .LASF1290 # The macro: "__glibcxx_want_constexpr_typeinfo"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x619 # At line number 1561
+ .long .LASF1291 # The macro: "__glibcxx_want_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x622 # At line number 1570
+ .long .LASF1292 # The macro: "__glibcxx_want_format_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x62c # At line number 1580
+ .long .LASF1293 # The macro: "__glibcxx_want_freestanding_algorithm"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x636 # At line number 1590
+ .long .LASF1294 # The macro: "__glibcxx_want_freestanding_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x640 # At line number 1600
+ .long .LASF1295 # The macro: "__glibcxx_want_freestanding_cstring"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x64a # At line number 1610
+ .long .LASF1296 # The macro: "__glibcxx_want_freestanding_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x654 # At line number 1620
+ .long .LASF1297 # The macro: "__glibcxx_want_freestanding_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65e # At line number 1630
+ .long .LASF1298 # The macro: "__glibcxx_want_freestanding_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x668 # At line number 1640
+ .long .LASF1299 # The macro: "__glibcxx_want_freestanding_variant"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x672 # At line number 1650
+ .long .LASF1300 # The macro: "__glibcxx_want_invoke_r"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x67c # At line number 1660
+ .long .LASF1301 # The macro: "__glibcxx_want_is_scoped_enum"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x686 # At line number 1670
+ .long .LASF1302 # The macro: "__glibcxx_want_reference_from_temporary"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x690 # At line number 1680
+ .long .LASF1303 # The macro: "__glibcxx_want_containers_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x69a # At line number 1690
+ .long .LASF1304 # The macro: "__glibcxx_want_ranges_to_container"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6a4 # At line number 1700
+ .long .LASF1305 # The macro: "__glibcxx_want_ranges_zip"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ae # At line number 1710
+ .long .LASF1306 # The macro: "__glibcxx_want_ranges_chunk"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6b8 # At line number 1720
+ .long .LASF1307 # The macro: "__glibcxx_want_ranges_slide"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6c2 # At line number 1730
+ .long .LASF1308 # The macro: "__glibcxx_want_ranges_chunk_by"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6cc # At line number 1740
+ .long .LASF1309 # The macro: "__glibcxx_want_ranges_join_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6d6 # At line number 1750
+ .long .LASF1310 # The macro: "__glibcxx_want_ranges_repeat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6e0 # At line number 1760
+ .long .LASF1311 # The macro: "__glibcxx_want_ranges_stride"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ea # At line number 1770
+ .long .LASF1312 # The macro: "__glibcxx_want_ranges_cartesian_product"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6f4 # At line number 1780
+ .long .LASF1313 # The macro: "__glibcxx_want_ranges_as_rvalue"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6fe # At line number 1790
+ .long .LASF1314 # The macro: "__glibcxx_want_ranges_as_const"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x708 # At line number 1800
+ .long .LASF1315 # The macro: "__glibcxx_want_ranges_enumerate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x712 # At line number 1810
+ .long .LASF1316 # The macro: "__glibcxx_want_ranges_fold"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x71c # At line number 1820
+ .long .LASF1317 # The macro: "__glibcxx_want_ranges_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x726 # At line number 1830
+ .long .LASF1318 # The macro: "__glibcxx_want_ranges_iota"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x730 # At line number 1840
+ .long .LASF1319 # The macro: "__glibcxx_want_ranges_find_last"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x73a # At line number 1850
+ .long .LASF1320 # The macro: "__glibcxx_want_constexpr_bitset"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x744 # At line number 1860
+ .long .LASF1321 # The macro: "__glibcxx_want_stdatomic_h"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74e # At line number 1870
+ .long .LASF1322 # The macro: "__glibcxx_want_adaptor_iterator_pair_constructor"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x758 # At line number 1880
+ .long .LASF1323 # The macro: "__glibcxx_want_flat_map"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x762 # At line number 1890
+ .long .LASF1324 # The macro: "__glibcxx_want_flat_set"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x76c # At line number 1900
+ .long .LASF1325 # The macro: "__glibcxx_want_formatters"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x776 # At line number 1910
+ .long .LASF1326 # The macro: "__glibcxx_want_forward_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x780 # At line number 1920
+ .long .LASF1327 # The macro: "__glibcxx_want_generator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78a # At line number 1930
+ .long .LASF1328 # The macro: "__glibcxx_want_ios_noreplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x794 # At line number 1940
+ .long .LASF1329 # The macro: "__glibcxx_want_move_only_function"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x79e # At line number 1950
+ .long .LASF1330 # The macro: "__glibcxx_want_out_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7a8 # At line number 1960
+ .long .LASF1331 # The macro: "__glibcxx_want_print"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7b2 # At line number 1970
+ .long .LASF1332 # The macro: "__glibcxx_want_spanstream"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7bc # At line number 1980
+ .long .LASF1333 # The macro: "__glibcxx_want_stacktrace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7c6 # At line number 1990
+ .long .LASF1334 # The macro: "__glibcxx_want_string_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7d0 # At line number 2000
+ .long .LASF1335 # The macro: "__glibcxx_want_string_resize_and_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7da # At line number 2010
+ .long .LASF1336 # The macro: "__glibcxx_want_to_underlying"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e9 # At line number 2025
+ .long .LASF1337 # The macro: "__glibcxx_want_tuple_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7f3 # At line number 2035
+ .long .LASF1338 # The macro: "__glibcxx_want_unreachable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7fd # At line number 2045
+ .long .LASF1339 # The macro: "__glibcxx_want_algorithm_default_value_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x807 # At line number 2055
+ .long .LASF1340 # The macro: "__glibcxx_want_constexpr_new"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x811 # At line number 2065
+ .long .LASF1341 # The macro: "__glibcxx_want_fstream_native_handle"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x81b # At line number 2075
+ .long .LASF1342 # The macro: "__glibcxx_want_is_virtual_base_of"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x825 # At line number 2085
+ .long .LASF1343 # The macro: "__glibcxx_want_ranges_cache_latest"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x82f # At line number 2095
+ .long .LASF1344 # The macro: "__glibcxx_want_ranges_concat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x839 # At line number 2105
+ .long .LASF1345 # The macro: "__glibcxx_want_ratio"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x843 # At line number 2115
+ .long .LASF1346 # The macro: "__glibcxx_want_reference_wrapper"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x84d # At line number 2125
+ .long .LASF1347 # The macro: "__glibcxx_want_saturation_arithmetic"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x857 # At line number 2135
+ .long .LASF1348 # The macro: "__glibcxx_want_span_initializer_list"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x861 # At line number 2145
+ .long .LASF1349 # The macro: "__glibcxx_want_text_encoding"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x86b # At line number 2155
+ .long .LASF1350 # The macro: "__glibcxx_want_ranges_to_input"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x875 # At line number 2165
+ .long .LASF1351 # The macro: "__glibcxx_want_to_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x87f # At line number 2175
+ .long .LASF1352 # The macro: "__glibcxx_want_modules"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x881 # At line number 2177
+ .long .LASF1353 # The macro: "__glibcxx_want_all"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.typeinfo.73.1788909457a301848ebd50ac4a1d7613,comdat
+.Ldebug_macro54:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x49 # At line number 73
+ .long .LASF1699 # The macro: "__GXX_MERGED_TYPEINFO_NAMES 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1700 # The macro: "__GXX_TYPEINFO_EQUALITY_INLINE 1"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.refwrap.h.31.907281f023ab9c0ecb0f514bf04ae7a0,comdat
+.Ldebug_macro55:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1702 # The macro: "_GLIBCXX_REFWRAP_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x59 # At line number 89
+ .long .LASF1703 # The macro: "_GLIBCXX_MEM_FN_TRAITS2(_CV,_REF,_LVAL,_RVAL) template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes...) _CV _REF> : _Mem_fn_traits_base<_Res, _CV _Class, _ArgTypes...> { using __vararg = false_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) _CV _REF> : _Mem_fn_traits_base<_Res, _CV _Class, _ArgTypes...> { using __vararg = true_type; };"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x67 # At line number 103
+ .long .LASF1704 # The macro: "_GLIBCXX_MEM_FN_TRAITS(_REF,_LVAL,_RVAL) _GLIBCXX_MEM_FN_TRAITS2( , _REF, _LVAL, _RVAL) _GLIBCXX_MEM_FN_TRAITS2(const , _REF, _LVAL, _RVAL) _GLIBCXX_MEM_FN_TRAITS2(volatile , _REF, _LVAL, _RVAL) _GLIBCXX_MEM_FN_TRAITS2(const volatile, _REF, _LVAL, _RVAL)"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x77 # At line number 119
+ .long .LASF1705 # The macro: "_GLIBCXX_MEM_FN_TRAITS"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78 # At line number 120
+ .long .LASF1706 # The macro: "_GLIBCXX_MEM_FN_TRAITS2"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.gthrdefault.h.27.30a03623e42919627c5b0e155787471b,comdat
+.Ldebug_macro56:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1b # At line number 27
+ .long .LASF1710 # The macro: "_GLIBCXX_GCC_GTHR_POSIX_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20 # At line number 32
+ .long .LASF1711 # The macro: "__GTHREADS 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x21 # At line number 33
+ .long .LASF1712 # The macro: "__GTHREADS_CXX0X 1"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.types.h.109.56eb9ae966b255288cc544f18746a7ff,comdat
+.Ldebug_macro57:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6d # At line number 109
+ .long .LASF1716 # The macro: "__S16_TYPE short int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1717 # The macro: "__U16_TYPE unsigned short int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6f # At line number 111
+ .long .LASF1718 # The macro: "__S32_TYPE int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x70 # At line number 112
+ .long .LASF1719 # The macro: "__U32_TYPE unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x71 # At line number 113
+ .long .LASF1720 # The macro: "__SLONGWORD_TYPE long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x72 # At line number 114
+ .long .LASF1721 # The macro: "__ULONGWORD_TYPE unsigned long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x80 # At line number 128
+ .long .LASF1722 # The macro: "__SQUAD_TYPE long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x81 # At line number 129
+ .long .LASF1723 # The macro: "__UQUAD_TYPE unsigned long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x82 # At line number 130
+ .long .LASF1724 # The macro: "__SWORD_TYPE long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x83 # At line number 131
+ .long .LASF1725 # The macro: "__UWORD_TYPE unsigned long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x84 # At line number 132
+ .long .LASF1726 # The macro: "__SLONG32_TYPE int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x85 # At line number 133
+ .long .LASF1727 # The macro: "__ULONG32_TYPE unsigned int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x86 # At line number 134
+ .long .LASF1728 # The macro: "__S64_TYPE long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x87 # At line number 135
+ .long .LASF1729 # The macro: "__U64_TYPE unsigned long int"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x89 # At line number 137
+ .long .LASF1730 # The macro: "__STD_TYPE typedef"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.typesizes.h.24.ccf5919b8e01b553263cf8f4ab1d5fde,comdat
+.Ldebug_macro58:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18 # At line number 24
+ .long .LASF1731 # The macro: "_BITS_TYPESIZES_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22 # At line number 34
+ .long .LASF1732 # The macro: "__SYSCALL_SLONG_TYPE __SLONGWORD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23 # At line number 35
+ .long .LASF1733 # The macro: "__SYSCALL_ULONG_TYPE __ULONGWORD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x26 # At line number 38
+ .long .LASF1734 # The macro: "__DEV_T_TYPE __UQUAD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27 # At line number 39
+ .long .LASF1735 # The macro: "__UID_T_TYPE __U32_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF1736 # The macro: "__GID_T_TYPE __U32_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29 # At line number 41
+ .long .LASF1737 # The macro: "__INO_T_TYPE __SYSCALL_ULONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a # At line number 42
+ .long .LASF1738 # The macro: "__INO64_T_TYPE __UQUAD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b # At line number 43
+ .long .LASF1739 # The macro: "__MODE_T_TYPE __U32_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d # At line number 45
+ .long .LASF1740 # The macro: "__NLINK_T_TYPE __SYSCALL_ULONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e # At line number 46
+ .long .LASF1741 # The macro: "__FSWORD_T_TYPE __SYSCALL_SLONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x33 # At line number 51
+ .long .LASF1742 # The macro: "__OFF_T_TYPE __SYSCALL_SLONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x34 # At line number 52
+ .long .LASF1743 # The macro: "__OFF64_T_TYPE __SQUAD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35 # At line number 53
+ .long .LASF1744 # The macro: "__PID_T_TYPE __S32_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x36 # At line number 54
+ .long .LASF1745 # The macro: "__RLIM_T_TYPE __SYSCALL_ULONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1746 # The macro: "__RLIM64_T_TYPE __UQUAD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x38 # At line number 56
+ .long .LASF1747 # The macro: "__BLKCNT_T_TYPE __SYSCALL_SLONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF1748 # The macro: "__BLKCNT64_T_TYPE __SQUAD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3a # At line number 58
+ .long .LASF1749 # The macro: "__FSBLKCNT_T_TYPE __SYSCALL_ULONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b # At line number 59
+ .long .LASF1750 # The macro: "__FSBLKCNT64_T_TYPE __UQUAD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3c # At line number 60
+ .long .LASF1751 # The macro: "__FSFILCNT_T_TYPE __SYSCALL_ULONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1752 # The macro: "__FSFILCNT64_T_TYPE __UQUAD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3e # At line number 62
+ .long .LASF1753 # The macro: "__ID_T_TYPE __U32_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3f # At line number 63
+ .long .LASF1754 # The macro: "__CLOCK_T_TYPE __SYSCALL_SLONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x40 # At line number 64
+ .long .LASF1755 # The macro: "__TIME_T_TYPE __SYSCALL_SLONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1756 # The macro: "__USECONDS_T_TYPE __U32_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x42 # At line number 66
+ .long .LASF1757 # The macro: "__SUSECONDS_T_TYPE __SYSCALL_SLONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x43 # At line number 67
+ .long .LASF1758 # The macro: "__SUSECONDS64_T_TYPE __SQUAD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x44 # At line number 68
+ .long .LASF1759 # The macro: "__DADDR_T_TYPE __S32_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x45 # At line number 69
+ .long .LASF1760 # The macro: "__KEY_T_TYPE __S32_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x46 # At line number 70
+ .long .LASF1761 # The macro: "__CLOCKID_T_TYPE __S32_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1762 # The macro: "__TIMER_T_TYPE void *"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x48 # At line number 72
+ .long .LASF1763 # The macro: "__BLKSIZE_T_TYPE __SYSCALL_SLONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x49 # At line number 73
+ .long .LASF1764 # The macro: "__FSID_T_TYPE struct { int __val[2]; }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4a # At line number 74
+ .long .LASF1765 # The macro: "__SSIZE_T_TYPE __SWORD_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1766 # The macro: "__CPU_MASK_TYPE __SYSCALL_ULONG_TYPE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1767 # The macro: "__OFF_T_MATCHES_OFF64_T 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x54 # At line number 84
+ .long .LASF1768 # The macro: "__INO_T_MATCHES_INO64_T 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x57 # At line number 87
+ .long .LASF1769 # The macro: "__RLIM_T_MATCHES_RLIM64_T 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5a # At line number 90
+ .long .LASF1770 # The macro: "__STATFS_MATCHES_STATFS64 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5d # At line number 93
+ .long .LASF1771 # The macro: "__KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x67 # At line number 103
+ .long .LASF1772 # The macro: "__FD_SETSIZE 1024"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.time64.h.24.a8166ae916ec910dab0d8987098d42ee,comdat
+.Ldebug_macro59:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18 # At line number 24
+ .long .LASF1773 # The macro: "_BITS_TIME64_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1774 # The macro: "__TIME64_T_TYPE __TIME_T_TYPE"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.sched.h.27.ebf7af1e1d56fba9b2f5e63b6e60d64f,comdat
+.Ldebug_macro60:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1b # At line number 27
+ .long .LASF1574 # The macro: "__need_size_t "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c # At line number 28
+ .long .LASF1576 # The macro: "__need_NULL "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.252.48df7efd2eec7c5dc2cb2bd0904069e0,comdat
+.Ldebug_macro61:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xfc # At line number 252
+ .long .LASF1595 # The macro: "__need_size_t"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19e # At line number 414
+ .long .LASF1614 # The macro: "NULL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a0 # At line number 416
+ .long .LASF1615 # The macro: "NULL __null"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1616 # The macro: "__need_NULL"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.endian.h.20.efabd1018df5d7b4052c27dc6bdd5ce5,comdat
+.Ldebug_macro62:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1778 # The macro: "_BITS_ENDIAN_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1779 # The macro: "__LITTLE_ENDIAN 1234"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF1780 # The macro: "__BIG_ENDIAN 4321"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20 # At line number 32
+ .long .LASF1781 # The macro: "__PDP_ENDIAN 3412"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.endianness.h.2.2c6a211f7909f3af5e9e9cfa3b6b63c8,comdat
+.Ldebug_macro63:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1782 # The macro: "_BITS_ENDIANNESS_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9 # At line number 9
+ .long .LASF1783 # The macro: "__BYTE_ORDER __LITTLE_ENDIAN"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.endian.h.40.9e5d395adda2f4eb53ae69b69b664084,comdat
+.Ldebug_macro64:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF1784 # The macro: "__FLOAT_WORD_ORDER __BYTE_ORDER"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c # At line number 44
+ .long .LASF1785 # The macro: "__LONG_LONG_PAIR(HI,LO) LO, HI"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.sched.h.21.0fa6cb99c7cdaf5d5eb874d94ea7116a,comdat
+.Ldebug_macro65:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x15 # At line number 21
+ .long .LASF1787 # The macro: "_BITS_SCHED_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c # At line number 28
+ .long .LASF1788 # The macro: "SCHED_OTHER 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1d # At line number 29
+ .long .LASF1789 # The macro: "SCHED_FIFO 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF1790 # The macro: "SCHED_RR 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x20 # At line number 32
+ .long .LASF1791 # The macro: "SCHED_NORMAL 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x21 # At line number 33
+ .long .LASF1792 # The macro: "SCHED_BATCH 3"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22 # At line number 34
+ .long .LASF1793 # The macro: "SCHED_ISO 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23 # At line number 35
+ .long .LASF1794 # The macro: "SCHED_IDLE 5"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24 # At line number 36
+ .long .LASF1795 # The macro: "SCHED_DEADLINE 6"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25 # At line number 37
+ .long .LASF1796 # The macro: "SCHED_EXT 7"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF1797 # The macro: "SCHED_RESET_ON_FORK 0x40000000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b # At line number 43
+ .long .LASF1798 # The macro: "SCHED_FLAG_RESET_ON_FORK 0x01"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c # At line number 44
+ .long .LASF1799 # The macro: "SCHED_FLAG_RECLAIM 0x02"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d # At line number 45
+ .long .LASF1800 # The macro: "SCHED_FLAG_DL_OVERRUN 0x04"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e # At line number 46
+ .long .LASF1801 # The macro: "SCHED_FLAG_KEEP_POLICY 0x08"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f # At line number 47
+ .long .LASF1802 # The macro: "SCHED_FLAG_KEEP_PARAMS 0x10"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x30 # At line number 48
+ .long .LASF1803 # The macro: "SCHED_FLAG_UTIL_CLAMP_MIN 0x20"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x31 # At line number 49
+ .long .LASF1804 # The macro: "SCHED_FLAG_UTIL_CLAMP_MAX 0x40"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x34 # At line number 52
+ .long .LASF1805 # The macro: "SCHED_FLAG_KEEP_ALL (SCHED_FLAG_KEEP_POLICY | SCHED_FLAG_KEEP_PARAMS)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x36 # At line number 54
+ .long .LASF1806 # The macro: "SCHED_FLAG_UTIL_CLAMP (SCHED_FLAG_UTIL_CLAMP_MIN | SCHED_FLAG_UTIL_CLAMP_MAX)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3e # At line number 62
+ .long .LASF1807 # The macro: "sched_param __glibc_mask_sched_param"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.bitsperlong.h.3.81201f16c5ebf9ebeb0f369d7d7d8e27,comdat
+.Ldebug_macro66:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3 # At line number 3
+ .long .LASF1812 # The macro: "__ASM_X86_BITSPERLONG_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6 # At line number 6
+ .long .LASF1813 # The macro: "__BITS_PER_LONG 64"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.bitsperlong.h.3.c81570a1b11d23e1da1277c0e6d6abad,comdat
+.Ldebug_macro67:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3 # At line number 3
+ .long .LASF1814 # The macro: "__ASM_GENERIC_BITS_PER_LONG "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c # At line number 28
+ .long .LASF1815 # The macro: "__BITS_PER_LONG_LONG 64"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.3.30f7c09bd532ee2f949603c349599342,comdat
+.Ldebug_macro68:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3 # At line number 3
+ .long .LASF1817 # The macro: "_LINUX_STDDEF_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf # At line number 15
+ .long .LASF1818 # The macro: "__struct_group_tag(TAG) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x21 # At line number 33
+ .long .LASF1819 # The macro: "__struct_group(TAG,NAME,ATTRS,MEMBERS...) union { struct { MEMBERS } ATTRS; struct __struct_group_tag(TAG) { MEMBERS } ATTRS NAME; } ATTRS"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29 # At line number 41
+ .long .LASF1820 # The macro: "__DECLARE_FLEX_ARRAY(T,member) T member[0]"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3e # At line number 62
+ .long .LASF1821 # The macro: "__counted_by(m) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x42 # At line number 66
+ .long .LASF1822 # The macro: "__counted_by_le(m) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x46 # At line number 70
+ .long .LASF1823 # The macro: "__counted_by_be(m) "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.posix_types.h.22.ce27b629270cbb91230af7498cb5994b,comdat
+.Ldebug_macro69:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x16 # At line number 22
+ .long .LASF1824 # The macro: "__FD_SETSIZE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x17 # At line number 23
+ .long .LASF1772 # The macro: "__FD_SETSIZE 1024"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.posix_types_64.h.3.c35937438f2f85070758d4696b933189,comdat
+.Ldebug_macro70:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3 # At line number 3
+ .long .LASF1825 # The macro: "_ASM_X86_POSIX_TYPES_64_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd # At line number 13
+ .long .LASF1826 # The macro: "__kernel_old_uid_t __kernel_old_uid_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10 # At line number 16
+ .long .LASF1827 # The macro: "__kernel_old_dev_t __kernel_old_dev_t"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.types.h.25.5e03dcce3b8caa26d2b50a3b7f9269de,comdat
+.Ldebug_macro71:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x19 # At line number 25
+ .long .LASF1829 # The macro: "__bitwise "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1d # At line number 29
+ .long .LASF1830 # The macro: "__bitwise__ __bitwise"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x32 # At line number 50
+ .long .LASF1831 # The macro: "__aligned_u64 __u64 __attribute__((aligned(8)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x33 # At line number 51
+ .long .LASF1832 # The macro: "__aligned_s64 __s64 __attribute__((aligned(8)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x34 # At line number 52
+ .long .LASF1833 # The macro: "__aligned_be64 __be64 __attribute__((aligned(8)))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35 # At line number 53
+ .long .LASF1834 # The macro: "__aligned_le64 __le64 __attribute__((aligned(8)))"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.types.h.7.d8bedba570dbee0f3b10d2711797b3ea,comdat
+.Ldebug_macro72:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7 # At line number 7
+ .long .LASF1835 # The macro: "SCHED_ATTR_SIZE_VER0 48"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8 # At line number 8
+ .long .LASF1836 # The macro: "SCHED_ATTR_SIZE_VER1 56"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.sched.h.64.0da2abe4c551d0d3a1777f85f829b986,comdat
+.Ldebug_macro73:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x40 # At line number 64
+ .long .LASF1837 # The macro: "sched_param"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x58 # At line number 88
+ .long .LASF1838 # The macro: "CSIGNAL 0x000000ff"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x59 # At line number 89
+ .long .LASF1839 # The macro: "CLONE_VM 0x00000100"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5a # At line number 90
+ .long .LASF1840 # The macro: "CLONE_FS 0x00000200"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1841 # The macro: "CLONE_FILES 0x00000400"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5c # At line number 92
+ .long .LASF1842 # The macro: "CLONE_SIGHAND 0x00000800"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5d # At line number 93
+ .long .LASF1843 # The macro: "CLONE_PIDFD 0x00001000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5f # At line number 95
+ .long .LASF1844 # The macro: "CLONE_PTRACE 0x00002000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x60 # At line number 96
+ .long .LASF1845 # The macro: "CLONE_VFORK 0x00004000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x62 # At line number 98
+ .long .LASF1846 # The macro: "CLONE_PARENT 0x00008000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x64 # At line number 100
+ .long .LASF1847 # The macro: "CLONE_THREAD 0x00010000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1848 # The macro: "CLONE_NEWNS 0x00020000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x66 # At line number 102
+ .long .LASF1849 # The macro: "CLONE_SYSVSEM 0x00040000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x67 # At line number 103
+ .long .LASF1850 # The macro: "CLONE_SETTLS 0x00080000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x68 # At line number 104
+ .long .LASF1851 # The macro: "CLONE_PARENT_SETTID 0x00100000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6a # At line number 106
+ .long .LASF1852 # The macro: "CLONE_CHILD_CLEARTID 0x00200000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6c # At line number 108
+ .long .LASF1853 # The macro: "CLONE_DETACHED 0x00400000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6d # At line number 109
+ .long .LASF1854 # The macro: "CLONE_UNTRACED 0x00800000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6f # At line number 111
+ .long .LASF1855 # The macro: "CLONE_CHILD_SETTID 0x01000000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x71 # At line number 113
+ .long .LASF1856 # The macro: "CLONE_NEWCGROUP 0x02000000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x72 # At line number 114
+ .long .LASF1857 # The macro: "CLONE_NEWUTS 0x04000000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x73 # At line number 115
+ .long .LASF1858 # The macro: "CLONE_NEWIPC 0x08000000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1859 # The macro: "CLONE_NEWUSER 0x10000000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x75 # At line number 117
+ .long .LASF1860 # The macro: "CLONE_NEWPID 0x20000000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x76 # At line number 118
+ .long .LASF1861 # The macro: "CLONE_NEWNET 0x40000000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x77 # At line number 119
+ .long .LASF1862 # The macro: "CLONE_IO 0x80000000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7b # At line number 123
+ .long .LASF1863 # The macro: "CLONE_NEWTIME 0x00000080"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.cpuset.h.21.819c5d0fbb06c94c4652b537360ff25a,comdat
+.Ldebug_macro74:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x15 # At line number 21
+ .long .LASF1865 # The macro: "_BITS_CPU_SET_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c # At line number 28
+ .long .LASF1866 # The macro: "__CPU_SETSIZE 1024"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1d # At line number 29
+ .long .LASF1867 # The macro: "__NCPUBITS (8 * sizeof (__cpu_mask))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23 # At line number 35
+ .long .LASF1868 # The macro: "__CPUELT(cpu) ((cpu) / __NCPUBITS)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24 # At line number 36
+ .long .LASF1869 # The macro: "__CPUMASK(cpu) ((__cpu_mask) 1 << ((cpu) % __NCPUBITS))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e # At line number 46
+ .long .LASF1870 # The macro: "__CPU_ZERO_S(setsize,cpusetp) do __builtin_memset (cpusetp, '\0', setsize); while (0)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3a # At line number 58
+ .long .LASF1871 # The macro: "__CPU_SET_S(cpu,setsize,cpusetp) (__extension__ ({ size_t __cpu = (cpu); __cpu / 8 < (setsize) ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] |= __CPUMASK (__cpu)) : 0; }))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1872 # The macro: "__CPU_CLR_S(cpu,setsize,cpusetp) (__extension__ ({ size_t __cpu = (cpu); __cpu / 8 < (setsize) ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] &= ~__CPUMASK (__cpu)) : 0; }))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x48 # At line number 72
+ .long .LASF1873 # The macro: "__CPU_ISSET_S(cpu,setsize,cpusetp) (__extension__ ({ size_t __cpu = (cpu); __cpu / 8 < (setsize) ? ((((const __cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] & __CPUMASK (__cpu))) != 0 : 0; }))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x50 # At line number 80
+ .long .LASF1874 # The macro: "__CPU_COUNT_S(setsize,cpusetp) __sched_cpucount (setsize, cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x54 # At line number 84
+ .long .LASF1875 # The macro: "__CPU_EQUAL_S(setsize,cpusetp1,cpusetp2) (__builtin_memcmp (cpusetp1, cpusetp2, setsize) == 0)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x63 # At line number 99
+ .long .LASF1876 # The macro: "__CPU_OP_S(setsize,destset,srcset1,srcset2,op) (__extension__ ({ cpu_set_t *__dest = (destset); const __cpu_mask *__arr1 = (srcset1)->__bits; const __cpu_mask *__arr2 = (srcset2)->__bits; size_t __imax = (setsize) / sizeof (__cpu_mask); size_t __i; for (__i = 0; __i < __imax; ++__i) ((__cpu_mask *) __dest->__bits)[__i] = __arr1[__i] op __arr2[__i]; __dest; }))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1877 # The macro: "__CPU_ALLOC_SIZE(count) ((((count) + __NCPUBITS - 1) / __NCPUBITS) * sizeof (__cpu_mask))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x70 # At line number 112
+ .long .LASF1878 # The macro: "__CPU_ALLOC(count) __sched_cpualloc (count)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x71 # At line number 113
+ .long .LASF1879 # The macro: "__CPU_FREE(cpuset) __sched_cpufree (cpuset)"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.sched.h.47.e67ad745c847e33c4e7b201dc9f663a6,comdat
+.Ldebug_macro75:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f # At line number 47
+ .long .LASF1880 # The macro: "sched_priority sched_priority"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x30 # At line number 48
+ .long .LASF1881 # The macro: "__sched_priority sched_priority"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1882 # The macro: "CPU_SETSIZE __CPU_SETSIZE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5c # At line number 92
+ .long .LASF1883 # The macro: "CPU_SET(cpu,cpusetp) __CPU_SET_S (cpu, sizeof (cpu_set_t), cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5d # At line number 93
+ .long .LASF1884 # The macro: "CPU_CLR(cpu,cpusetp) __CPU_CLR_S (cpu, sizeof (cpu_set_t), cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5e # At line number 94
+ .long .LASF1885 # The macro: "CPU_ISSET(cpu,cpusetp) __CPU_ISSET_S (cpu, sizeof (cpu_set_t), cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x60 # At line number 96
+ .long .LASF1886 # The macro: "CPU_ZERO(cpusetp) __CPU_ZERO_S (sizeof (cpu_set_t), cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x61 # At line number 97
+ .long .LASF1887 # The macro: "CPU_COUNT(cpusetp) __CPU_COUNT_S (sizeof (cpu_set_t), cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x63 # At line number 99
+ .long .LASF1888 # The macro: "CPU_SET_S(cpu,setsize,cpusetp) __CPU_SET_S (cpu, setsize, cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x64 # At line number 100
+ .long .LASF1889 # The macro: "CPU_CLR_S(cpu,setsize,cpusetp) __CPU_CLR_S (cpu, setsize, cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1890 # The macro: "CPU_ISSET_S(cpu,setsize,cpusetp) __CPU_ISSET_S (cpu, setsize, cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x67 # At line number 103
+ .long .LASF1891 # The macro: "CPU_ZERO_S(setsize,cpusetp) __CPU_ZERO_S (setsize, cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x68 # At line number 104
+ .long .LASF1892 # The macro: "CPU_COUNT_S(setsize,cpusetp) __CPU_COUNT_S (setsize, cpusetp)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6a # At line number 106
+ .long .LASF1893 # The macro: "CPU_EQUAL(cpusetp1,cpusetp2) __CPU_EQUAL_S (sizeof (cpu_set_t), cpusetp1, cpusetp2)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6c # At line number 108
+ .long .LASF1894 # The macro: "CPU_EQUAL_S(setsize,cpusetp1,cpusetp2) __CPU_EQUAL_S (setsize, cpusetp1, cpusetp2)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6f # At line number 111
+ .long .LASF1895 # The macro: "CPU_AND(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, &)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x71 # At line number 113
+ .long .LASF1896 # The macro: "CPU_OR(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, |)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x73 # At line number 115
+ .long .LASF1897 # The macro: "CPU_XOR(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, ^)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x75 # At line number 117
+ .long .LASF1898 # The macro: "CPU_AND_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, &)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x77 # At line number 119
+ .long .LASF1899 # The macro: "CPU_OR_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, |)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x79 # At line number 121
+ .long .LASF1900 # The macro: "CPU_XOR_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, ^)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7c # At line number 124
+ .long .LASF1901 # The macro: "CPU_ALLOC_SIZE(count) __CPU_ALLOC_SIZE (count)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7d # At line number 125
+ .long .LASF1902 # The macro: "CPU_ALLOC(count) __CPU_ALLOC (count)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF1903 # The macro: "CPU_FREE(cpuset) __CPU_FREE (cpuset)"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.time.h.23.18ede267f3a48794bef4705df80339de,comdat
+.Ldebug_macro76:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x17 # At line number 23
+ .long .LASF1904 # The macro: "_TIME_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1b # At line number 27
+ .long .LASF1574 # The macro: "__need_size_t "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c # At line number 28
+ .long .LASF1576 # The macro: "__need_NULL "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.time.h.24.2a1e1114b014e13763222c5cd6400760,comdat
+.Ldebug_macro77:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18 # At line number 24
+ .long .LASF1905 # The macro: "_BITS_TIME_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22 # At line number 34
+ .long .LASF1906 # The macro: "CLOCKS_PER_SEC ((__clock_t) 1000000)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e # At line number 46
+ .long .LASF1907 # The macro: "CLOCK_REALTIME 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x30 # At line number 48
+ .long .LASF1908 # The macro: "CLOCK_MONOTONIC 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x32 # At line number 50
+ .long .LASF1909 # The macro: "CLOCK_PROCESS_CPUTIME_ID 2"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x34 # At line number 52
+ .long .LASF1910 # The macro: "CLOCK_THREAD_CPUTIME_ID 3"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x36 # At line number 54
+ .long .LASF1911 # The macro: "CLOCK_MONOTONIC_RAW 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x38 # At line number 56
+ .long .LASF1912 # The macro: "CLOCK_REALTIME_COARSE 5"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3a # At line number 58
+ .long .LASF1913 # The macro: "CLOCK_MONOTONIC_COARSE 6"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3c # At line number 60
+ .long .LASF1914 # The macro: "CLOCK_BOOTTIME 7"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3e # At line number 62
+ .long .LASF1915 # The macro: "CLOCK_REALTIME_ALARM 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x40 # At line number 64
+ .long .LASF1916 # The macro: "CLOCK_BOOTTIME_ALARM 9"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x42 # At line number 66
+ .long .LASF1917 # The macro: "CLOCK_TAI 11"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x45 # At line number 69
+ .long .LASF1918 # The macro: "TIMER_ABSTIME 1"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.timex.h.88.8db50feb82d841a67daef3e223fd9324,comdat
+.Ldebug_macro78:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x58 # At line number 88
+ .long .LASF1921 # The macro: "ADJ_OFFSET 0x0001"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x59 # At line number 89
+ .long .LASF1922 # The macro: "ADJ_FREQUENCY 0x0002"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5a # At line number 90
+ .long .LASF1923 # The macro: "ADJ_MAXERROR 0x0004"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1924 # The macro: "ADJ_ESTERROR 0x0008"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5c # At line number 92
+ .long .LASF1925 # The macro: "ADJ_STATUS 0x0010"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5d # At line number 93
+ .long .LASF1926 # The macro: "ADJ_TIMECONST 0x0020"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5e # At line number 94
+ .long .LASF1927 # The macro: "ADJ_TAI 0x0080"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5f # At line number 95
+ .long .LASF1928 # The macro: "ADJ_SETOFFSET 0x0100"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x60 # At line number 96
+ .long .LASF1929 # The macro: "ADJ_MICRO 0x1000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x61 # At line number 97
+ .long .LASF1930 # The macro: "ADJ_NANO 0x2000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x62 # At line number 98
+ .long .LASF1931 # The macro: "ADJ_TICK 0x4000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x63 # At line number 99
+ .long .LASF1932 # The macro: "ADJ_OFFSET_SINGLESHOT 0x8001"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x64 # At line number 100
+ .long .LASF1933 # The macro: "ADJ_OFFSET_SS_READ 0xa001"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x67 # At line number 103
+ .long .LASF1934 # The macro: "MOD_OFFSET ADJ_OFFSET"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x68 # At line number 104
+ .long .LASF1935 # The macro: "MOD_FREQUENCY ADJ_FREQUENCY"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x69 # At line number 105
+ .long .LASF1936 # The macro: "MOD_MAXERROR ADJ_MAXERROR"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6a # At line number 106
+ .long .LASF1937 # The macro: "MOD_ESTERROR ADJ_ESTERROR"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6b # At line number 107
+ .long .LASF1938 # The macro: "MOD_STATUS ADJ_STATUS"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6c # At line number 108
+ .long .LASF1939 # The macro: "MOD_TIMECONST ADJ_TIMECONST"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6d # At line number 109
+ .long .LASF1940 # The macro: "MOD_CLKB ADJ_TICK"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1941 # The macro: "MOD_CLKA ADJ_OFFSET_SINGLESHOT"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6f # At line number 111
+ .long .LASF1942 # The macro: "MOD_TAI ADJ_TAI"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x70 # At line number 112
+ .long .LASF1943 # The macro: "MOD_MICRO ADJ_MICRO"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x71 # At line number 113
+ .long .LASF1944 # The macro: "MOD_NANO ADJ_NANO"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x75 # At line number 117
+ .long .LASF1945 # The macro: "STA_PLL 0x0001"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x76 # At line number 118
+ .long .LASF1946 # The macro: "STA_PPSFREQ 0x0002"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x77 # At line number 119
+ .long .LASF1947 # The macro: "STA_PPSTIME 0x0004"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x78 # At line number 120
+ .long .LASF1948 # The macro: "STA_FLL 0x0008"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7a # At line number 122
+ .long .LASF1949 # The macro: "STA_INS 0x0010"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7b # At line number 123
+ .long .LASF1950 # The macro: "STA_DEL 0x0020"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7c # At line number 124
+ .long .LASF1951 # The macro: "STA_UNSYNC 0x0040"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7d # At line number 125
+ .long .LASF1952 # The macro: "STA_FREQHOLD 0x0080"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7f # At line number 127
+ .long .LASF1953 # The macro: "STA_PPSSIGNAL 0x0100"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x80 # At line number 128
+ .long .LASF1954 # The macro: "STA_PPSJITTER 0x0200"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x81 # At line number 129
+ .long .LASF1955 # The macro: "STA_PPSWANDER 0x0400"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x82 # At line number 130
+ .long .LASF1956 # The macro: "STA_PPSERROR 0x0800"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x84 # At line number 132
+ .long .LASF1957 # The macro: "STA_CLOCKERR 0x1000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x85 # At line number 133
+ .long .LASF1958 # The macro: "STA_NANO 0x2000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x86 # At line number 134
+ .long .LASF1959 # The macro: "STA_MODE 0x4000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x87 # At line number 135
+ .long .LASF1960 # The macro: "STA_CLK 0x8000"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8a # At line number 138
+ .long .LASF1961 # The macro: "STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.time.h.65.ad8b7cdf304665ee800a89090a0d61aa,comdat
+.Ldebug_macro79:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1967 # The macro: "TIME_UTC 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xef # At line number 239
+ .long .LASF1968 # The macro: "__isleap(year) ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.pthreadtypesarch.h.25.6063cba99664c916e22d3a912bcc348a,comdat
+.Ldebug_macro80:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x19 # At line number 25
+ .long .LASF1972 # The macro: "__SIZEOF_PTHREAD_MUTEX_T 40"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a # At line number 26
+ .long .LASF1973 # The macro: "__SIZEOF_PTHREAD_ATTR_T 56"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1b # At line number 27
+ .long .LASF1974 # The macro: "__SIZEOF_PTHREAD_RWLOCK_T 56"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c # At line number 28
+ .long .LASF1975 # The macro: "__SIZEOF_PTHREAD_BARRIER_T 32"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29 # At line number 41
+ .long .LASF1976 # The macro: "__SIZEOF_PTHREAD_MUTEXATTR_T 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a # At line number 42
+ .long .LASF1977 # The macro: "__SIZEOF_PTHREAD_COND_T 48"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b # At line number 43
+ .long .LASF1978 # The macro: "__SIZEOF_PTHREAD_CONDATTR_T 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c # At line number 44
+ .long .LASF1979 # The macro: "__SIZEOF_PTHREAD_RWLOCKATTR_T 8"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d # At line number 45
+ .long .LASF1980 # The macro: "__SIZEOF_PTHREAD_BARRIERATTR_T 4"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f # At line number 47
+ .long .LASF1981 # The macro: "__LOCK_ALIGNMENT "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x30 # At line number 48
+ .long .LASF1982 # The macro: "__ONCE_ALIGNMENT "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.struct_mutex.h.20.e3a8115b63766b45e6c385382ab210bd,comdat
+.Ldebug_macro81:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14 # At line number 20
+ .long .LASF1984 # The macro: "_THREAD_MUTEX_INTERNAL_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25 # At line number 37
+ .long .LASF1985 # The macro: "__PTHREAD_MUTEX_HAVE_PREV 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x38 # At line number 56
+ .long .LASF1986 # The macro: "__PTHREAD_MUTEX_INITIALIZER(__kind) 0, 0, 0, 0, __kind, 0, 0, { NULL, NULL }"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.struct_rwlock.h.21.0254880f2904e3833fb8ae683e0f0330,comdat
+.Ldebug_macro82:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x15 # At line number 21
+ .long .LASF1987 # The macro: "_RWLOCK_INTERNAL_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF1988 # The macro: "__PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0, 0, 0, 0, 0 }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3a # At line number 58
+ .long .LASF1989 # The macro: "__PTHREAD_RWLOCK_INITIALIZER(__flags) 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, __flags"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.__sigset_t.h.2.6b1ab6ff3d7b8fd9c0c42b0d80afbd80,comdat
+.Ldebug_macro83:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2 # At line number 2
+ .long .LASF1993 # The macro: "____sigset_t_defined "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4 # At line number 4
+ .long .LASF1994 # The macro: "_SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int)))"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.pthread_stack_mindynamic.h.22.a920bc0766cffdef9d211057c8bee7ba,comdat
+.Ldebug_macro84:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16 # At line number 22
+ .long .LASF1996 # The macro: "__SC_THREAD_STACK_MIN_VALUE 75"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a # At line number 26
+ .long .LASF1997 # The macro: "PTHREAD_STACK_MIN __sysconf (__SC_THREAD_STACK_MIN_VALUE)"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.pthread.h.40.aa18493bac84a5edd35d6ba449181dda,comdat
+.Ldebug_macro85:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF1998 # The macro: "PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a # At line number 42
+ .long .LASF1999 # The macro: "PTHREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5a # At line number 90
+ .long .LASF2000 # The macro: "PTHREAD_MUTEX_INITIALIZER { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_TIMED_NP) } }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5d # At line number 93
+ .long .LASF2001 # The macro: "PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_RECURSIVE_NP) } }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5f # At line number 95
+ .long .LASF2002 # The macro: "PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_ERRORCHECK_NP) } }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x61 # At line number 97
+ .long .LASF2003 # The macro: "PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_ADAPTIVE_NP) } }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x72 # At line number 114
+ .long .LASF2004 # The macro: "PTHREAD_RWLOCK_INITIALIZER { { __PTHREAD_RWLOCK_INITIALIZER (PTHREAD_RWLOCK_DEFAULT_NP) } }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x75 # At line number 117
+ .long .LASF2005 # The macro: "PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP { { __PTHREAD_RWLOCK_INITIALIZER (PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP) } }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x7f # At line number 127
+ .long .LASF2006 # The macro: "PTHREAD_INHERIT_SCHED PTHREAD_INHERIT_SCHED"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x81 # At line number 129
+ .long .LASF2007 # The macro: "PTHREAD_EXPLICIT_SCHED PTHREAD_EXPLICIT_SCHED"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x89 # At line number 137
+ .long .LASF2008 # The macro: "PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_SYSTEM"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8b # At line number 139
+ .long .LASF2009 # The macro: "PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_PROCESS"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x93 # At line number 147
+ .long .LASF2010 # The macro: "PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x95 # At line number 149
+ .long .LASF2011 # The macro: "PTHREAD_PROCESS_SHARED PTHREAD_PROCESS_SHARED"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9b # At line number 155
+ .long .LASF2012 # The macro: "PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, 0, 0, {0, 0}, 0, 0 } }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xab # At line number 171
+ .long .LASF2013 # The macro: "PTHREAD_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xad # At line number 173
+ .long .LASF2014 # The macro: "PTHREAD_CANCEL_DISABLE PTHREAD_CANCEL_DISABLE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb2 # At line number 178
+ .long .LASF2015 # The macro: "PTHREAD_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4 # At line number 180
+ .long .LASF2016 # The macro: "PTHREAD_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb6 # At line number 182
+ .long .LASF2017 # The macro: "PTHREAD_CANCELED ((void *) -1)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xba # At line number 186
+ .long .LASF2018 # The macro: "PTHREAD_ONCE_INIT 0"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xc1 # At line number 193
+ .long .LASF2019 # The macro: "PTHREAD_BARRIER_SERIAL_THREAD -1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a6 # At line number 422
+ .long .LASF2020 # The macro: "PTHREAD_ATTR_NO_SIGMASK_NP (-1)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x228 # At line number 552
+ .long .LASF2021 # The macro: "__cleanup_fct_attribute "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x250 # At line number 592
+ .long .LASF2022 # The macro: "pthread_cleanup_push(routine,arg) do { __pthread_cleanup_class __clframe (routine, arg)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x256 # At line number 598
+ .long .LASF2023 # The macro: "pthread_cleanup_pop(execute) __clframe.__setdoit (execute); } while (0)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25e # At line number 606
+ .long .LASF2024 # The macro: "pthread_cleanup_push_defer_np(routine,arg) do { __pthread_cleanup_class __clframe (routine, arg); __clframe.__defer ()"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x266 # At line number 614
+ .long .LASF2025 # The macro: "pthread_cleanup_pop_restore_np(execute) __clframe.__restore (); __clframe.__setdoit (execute); } while (0)"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.gthrdefault.h.49.776f7f6d916a6e544d813c72e9649b80,comdat
+.Ldebug_macro86:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x31 # At line number 49
+ .long .LASF2026 # The macro: "__GTHREAD_ALWAYS_INLINE __attribute__((__always_inline__))"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF2027 # The macro: "__GTHREAD_INLINE inline __GTHREAD_ALWAYS_INLINE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF2028 # The macro: "__GTHREAD_HAS_COND 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4d # At line number 77
+ .long .LASF2029 # The macro: "__GTHREAD_MUTEX_INIT PTHREAD_MUTEX_INITIALIZER"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4e # At line number 78
+ .long .LASF2030 # The macro: "__GTHREAD_MUTEX_INIT_FUNCTION __gthread_mutex_init_function"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x52 # At line number 82
+ .long .LASF2031 # The macro: "__GTHREAD_ONCE_INIT PTHREAD_ONCE_INIT"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56 # At line number 86
+ .long .LASF2032 # The macro: "__GTHREAD_RECURSIVE_MUTEX_INIT PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5a # At line number 90
+ .long .LASF2033 # The macro: "__GTHREAD_COND_INIT PTHREAD_COND_INITIALIZER"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF2034 # The macro: "__GTHREAD_TIME_INIT {0,0}"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF2035 # The macro: "__gthrw2(name,name2,type) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x75 # At line number 117
+ .long .LASF2036 # The macro: "__gthrw_(name) name"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x79 # At line number 121
+ .long .LASF2037 # The macro: "__gthrw(name) __gthrw2(__gthrw_ ## name,name,name)"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d7 # At line number 983
+ .long .LASF2038 # The macro: "__GTHREAD_INLINE"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d8 # At line number 984
+ .long .LASF2039 # The macro: "__GTHREAD_ALWAYS_INLINE"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.atomic_word.h.30.9e0ac69fd462d5e650933e05133b4afa,comdat
+.Ldebug_macro87:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1e # At line number 30
+ .long .LASF2040 # The macro: "_GLIBCXX_ATOMIC_WORD_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24 # At line number 36
+ .long .LASF2041 # The macro: "_GLIBCXX_READ_MEM_BARRIER __atomic_thread_fence (__ATOMIC_ACQUIRE)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x26 # At line number 38
+ .long .LASF2042 # The macro: "_GLIBCXX_WRITE_MEM_BARRIER __atomic_thread_fence (__ATOMIC_RELEASE)"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.exception.31.b7d845aa1bc0759048241eca7b2b3a8a,comdat
+.Ldebug_macro88:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF2045 # The macro: "__EXCEPTION__ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF2046 # The macro: "__glibcxx_want_uncaught_exceptions "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.version.h.55.3e356afe9fc49338ddf8c6cb48ea7fb4,comdat
+.Ldebug_macro89:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1077 # The macro: "__glibcxx_incomplete_container_elements 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1078 # The macro: "__glibcxx_want_incomplete_container_elements"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x41 # At line number 65
+ .long .LASF1079 # The macro: "__glibcxx_uncaught_exceptions 201411L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x43 # At line number 67
+ .long .LASF2047 # The macro: "__cpp_lib_uncaught_exceptions 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1080 # The macro: "__glibcxx_want_uncaught_exceptions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1081 # The macro: "__glibcxx_allocator_traits_is_always_equal 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1082 # The macro: "__glibcxx_want_allocator_traits_is_always_equal"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1084 # The macro: "__glibcxx_want_is_null_pointer"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1086 # The macro: "__glibcxx_want_result_of_sfinae"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1087 # The macro: "__glibcxx_shared_ptr_arrays 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1088 # The macro: "__glibcxx_want_shared_ptr_arrays"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF1090 # The macro: "__glibcxx_want_is_swappable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x88 # At line number 136
+ .long .LASF1092 # The macro: "__glibcxx_want_void_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8c # At line number 140
+ .long .LASF1093 # The macro: "__glibcxx_enable_shared_from_this 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x92 # At line number 146
+ .long .LASF1094 # The macro: "__glibcxx_want_enable_shared_from_this"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x96 # At line number 150
+ .long .LASF1095 # The macro: "__glibcxx_math_spec_funcs 201003L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF1096 # The macro: "__glibcxx_want_math_spec_funcs"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xa6 # At line number 166
+ .long .LASF1097 # The macro: "__glibcxx_want_coroutine"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa # At line number 170
+ .long .LASF1098 # The macro: "__glibcxx_exchange_function 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb0 # At line number 176
+ .long .LASF1099 # The macro: "__glibcxx_want_exchange_function"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4 # At line number 180
+ .long .LASF1100 # The macro: "__glibcxx_integer_sequence 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xba # At line number 186
+ .long .LASF1101 # The macro: "__glibcxx_want_integer_sequence"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xc4 # At line number 196
+ .long .LASF1103 # The macro: "__glibcxx_want_integral_constant_callable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xce # At line number 206
+ .long .LASF1105 # The macro: "__glibcxx_want_is_final"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2 # At line number 210
+ .long .LASF1106 # The macro: "__glibcxx_make_reverse_iterator 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd8 # At line number 216
+ .long .LASF1107 # The macro: "__glibcxx_want_make_reverse_iterator"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc # At line number 220
+ .long .LASF1108 # The macro: "__glibcxx_null_iterators 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe2 # At line number 226
+ .long .LASF1109 # The macro: "__glibcxx_want_null_iterators"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xec # At line number 236
+ .long .LASF1111 # The macro: "__glibcxx_want_transformation_trait_aliases"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf0 # At line number 240
+ .long .LASF1112 # The macro: "__glibcxx_transparent_operators 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf6 # At line number 246
+ .long .LASF1113 # The macro: "__glibcxx_want_transparent_operators"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x100 # At line number 256
+ .long .LASF1115 # The macro: "__glibcxx_want_tuple_element_t"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x10a # At line number 266
+ .long .LASF1117 # The macro: "__glibcxx_want_tuples_by_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10e # At line number 270
+ .long .LASF1118 # The macro: "__glibcxx_robust_nonmodifying_seq_ops 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x114 # At line number 276
+ .long .LASF1119 # The macro: "__glibcxx_want_robust_nonmodifying_seq_ops"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11d # At line number 285
+ .long .LASF1120 # The macro: "__glibcxx_to_chars 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x123 # At line number 291
+ .long .LASF1121 # The macro: "__glibcxx_want_to_chars"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x127 # At line number 295
+ .long .LASF1122 # The macro: "__glibcxx_chrono_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x12d # At line number 301
+ .long .LASF1123 # The macro: "__glibcxx_want_chrono_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x131 # At line number 305
+ .long .LASF1124 # The macro: "__glibcxx_complex_udls 201309L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x137 # At line number 311
+ .long .LASF1125 # The macro: "__glibcxx_want_complex_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13b # At line number 315
+ .long .LASF1126 # The macro: "__glibcxx_generic_associative_lookup 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x141 # At line number 321
+ .long .LASF1127 # The macro: "__glibcxx_want_generic_associative_lookup"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x145 # At line number 325
+ .long .LASF1128 # The macro: "__glibcxx_make_unique 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x14b # At line number 331
+ .long .LASF1129 # The macro: "__glibcxx_want_make_unique"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14f # At line number 335
+ .long .LASF1130 # The macro: "__glibcxx_quoted_string_io 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x155 # At line number 341
+ .long .LASF1131 # The macro: "__glibcxx_want_quoted_string_io"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x159 # At line number 345
+ .long .LASF1132 # The macro: "__glibcxx_shared_timed_mutex 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x15f # At line number 351
+ .long .LASF1133 # The macro: "__glibcxx_want_shared_timed_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x163 # At line number 355
+ .long .LASF1134 # The macro: "__glibcxx_string_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x169 # At line number 361
+ .long .LASF1135 # The macro: "__glibcxx_want_string_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16d # At line number 365
+ .long .LASF1136 # The macro: "__glibcxx_addressof_constexpr 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x173 # At line number 371
+ .long .LASF1137 # The macro: "__glibcxx_want_addressof_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x177 # At line number 375
+ .long .LASF1138 # The macro: "__glibcxx_any 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x17d # At line number 381
+ .long .LASF1139 # The macro: "__glibcxx_want_any"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x187 # At line number 391
+ .long .LASF1141 # The macro: "__glibcxx_want_apply"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18b # At line number 395
+ .long .LASF1142 # The macro: "__glibcxx_as_const 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x191 # At line number 401
+ .long .LASF1143 # The macro: "__glibcxx_want_as_const"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x195 # At line number 405
+ .long .LASF1144 # The macro: "__glibcxx_atomic_is_always_lock_free 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19b # At line number 411
+ .long .LASF1145 # The macro: "__glibcxx_want_atomic_is_always_lock_free"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a5 # At line number 421
+ .long .LASF1147 # The macro: "__glibcxx_want_bool_constant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1148 # The macro: "__glibcxx_byte 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1af # At line number 431
+ .long .LASF1149 # The macro: "__glibcxx_want_byte"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1b9 # At line number 441
+ .long .LASF1151 # The macro: "__glibcxx_want_has_unique_object_representations"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1c3 # At line number 451
+ .long .LASF1154 # The macro: "__glibcxx_want_hardware_interference_size"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c7 # At line number 455
+ .long .LASF1155 # The macro: "__glibcxx_invoke 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1cd # At line number 461
+ .long .LASF1156 # The macro: "__glibcxx_want_invoke"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1d7 # At line number 471
+ .long .LASF1158 # The macro: "__glibcxx_want_is_aggregate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1e1 # At line number 481
+ .long .LASF1160 # The macro: "__glibcxx_want_is_invocable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1eb # At line number 491
+ .long .LASF1163 # The macro: "__glibcxx_want_launder"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1f5 # At line number 501
+ .long .LASF1165 # The macro: "__glibcxx_want_logical_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1ff # At line number 511
+ .long .LASF1167 # The macro: "__glibcxx_want_make_from_tuple"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x203 # At line number 515
+ .long .LASF1168 # The macro: "__glibcxx_not_fn 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x209 # At line number 521
+ .long .LASF1169 # The macro: "__glibcxx_want_not_fn"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x213 # At line number 531
+ .long .LASF1171 # The macro: "__glibcxx_want_type_trait_variable_templates"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x221 # At line number 545
+ .long .LASF1172 # The macro: "__glibcxx_variant 202102L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x227 # At line number 551
+ .long .LASF1173 # The macro: "__glibcxx_want_variant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22b # At line number 555
+ .long .LASF1174 # The macro: "__glibcxx_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x231 # At line number 561
+ .long .LASF1175 # The macro: "__glibcxx_want_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x235 # At line number 565
+ .long .LASF1176 # The macro: "__glibcxx_gcd 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x23b # At line number 571
+ .long .LASF1177 # The macro: "__glibcxx_want_gcd"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23f # At line number 575
+ .long .LASF1178 # The macro: "__glibcxx_gcd_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x245 # At line number 581
+ .long .LASF1179 # The macro: "__glibcxx_want_gcd_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24e # At line number 590
+ .long .LASF1180 # The macro: "__glibcxx_raw_memory_algorithms 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x254 # At line number 596
+ .long .LASF1181 # The macro: "__glibcxx_want_raw_memory_algorithms"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25d # At line number 605
+ .long .LASF1182 # The macro: "__glibcxx_array_constexpr 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x263 # At line number 611
+ .long .LASF1183 # The macro: "__glibcxx_want_array_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x267 # At line number 615
+ .long .LASF1184 # The macro: "__glibcxx_nonmember_container_access 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x26d # At line number 621
+ .long .LASF1185 # The macro: "__glibcxx_want_nonmember_container_access"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x271 # At line number 625
+ .long .LASF1186 # The macro: "__glibcxx_clamp 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x277 # At line number 631
+ .long .LASF1187 # The macro: "__glibcxx_want_clamp"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27b # At line number 635
+ .long .LASF1188 # The macro: "__glibcxx_sample 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x281 # At line number 641
+ .long .LASF1189 # The macro: "__glibcxx_want_sample"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x285 # At line number 645
+ .long .LASF1190 # The macro: "__glibcxx_boyer_moore_searcher 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x28b # At line number 651
+ .long .LASF1191 # The macro: "__glibcxx_want_boyer_moore_searcher"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x294 # At line number 660
+ .long .LASF1192 # The macro: "__glibcxx_chrono 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x29a # At line number 666
+ .long .LASF1193 # The macro: "__glibcxx_want_chrono"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29e # At line number 670
+ .long .LASF1194 # The macro: "__glibcxx_execution 201902L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2a4 # At line number 676
+ .long .LASF1195 # The macro: "__glibcxx_want_execution"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a8 # At line number 680
+ .long .LASF1196 # The macro: "__glibcxx_filesystem 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ae # At line number 686
+ .long .LASF1197 # The macro: "__glibcxx_want_filesystem"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b2 # At line number 690
+ .long .LASF1198 # The macro: "__glibcxx_hypot 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2b8 # At line number 696
+ .long .LASF1199 # The macro: "__glibcxx_want_hypot"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2bc # At line number 700
+ .long .LASF1200 # The macro: "__glibcxx_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2c2 # At line number 706
+ .long .LASF1201 # The macro: "__glibcxx_want_map_try_emplace"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c6 # At line number 710
+ .long .LASF1202 # The macro: "__glibcxx_math_special_functions 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2cc # At line number 716
+ .long .LASF1203 # The macro: "__glibcxx_want_math_special_functions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d0 # At line number 720
+ .long .LASF1204 # The macro: "__glibcxx_memory_resource 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2db # At line number 731
+ .long .LASF1205 # The macro: "__glibcxx_want_memory_resource"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2df # At line number 735
+ .long .LASF1206 # The macro: "__glibcxx_node_extract 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2e5 # At line number 741
+ .long .LASF1207 # The macro: "__glibcxx_want_node_extract"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e9 # At line number 745
+ .long .LASF1208 # The macro: "__glibcxx_parallel_algorithm 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ef # At line number 751
+ .long .LASF1209 # The macro: "__glibcxx_want_parallel_algorithm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f3 # At line number 755
+ .long .LASF1210 # The macro: "__glibcxx_scoped_lock 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2f9 # At line number 761
+ .long .LASF1211 # The macro: "__glibcxx_want_scoped_lock"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2fd # At line number 765
+ .long .LASF1212 # The macro: "__glibcxx_shared_mutex 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x303 # At line number 771
+ .long .LASF1213 # The macro: "__glibcxx_want_shared_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x307 # At line number 775
+ .long .LASF1214 # The macro: "__glibcxx_shared_ptr_weak_type 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x30d # At line number 781
+ .long .LASF1215 # The macro: "__glibcxx_want_shared_ptr_weak_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x316 # At line number 790
+ .long .LASF1216 # The macro: "__glibcxx_string_view 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x31c # At line number 796
+ .long .LASF1217 # The macro: "__glibcxx_want_string_view"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x320 # At line number 800
+ .long .LASF1218 # The macro: "__glibcxx_unordered_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x326 # At line number 806
+ .long .LASF1219 # The macro: "__glibcxx_want_unordered_map_try_emplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x330 # At line number 816
+ .long .LASF1220 # The macro: "__glibcxx_want_assume_aligned"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x33a # At line number 826
+ .long .LASF1221 # The macro: "__glibcxx_want_atomic_flag_test"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x344 # At line number 836
+ .long .LASF1222 # The macro: "__glibcxx_want_atomic_float"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x34e # At line number 846
+ .long .LASF1223 # The macro: "__glibcxx_want_atomic_lock_free_type_aliases"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x358 # At line number 856
+ .long .LASF1224 # The macro: "__glibcxx_want_atomic_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x362 # At line number 866
+ .long .LASF1225 # The macro: "__glibcxx_want_atomic_value_initialization"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x36c # At line number 876
+ .long .LASF1226 # The macro: "__glibcxx_want_bind_front"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x376 # At line number 886
+ .long .LASF1227 # The macro: "__glibcxx_want_bind_back"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x380 # At line number 896
+ .long .LASF1228 # The macro: "__glibcxx_want_starts_ends_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x38a # At line number 906
+ .long .LASF1229 # The macro: "__glibcxx_want_bit_cast"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x394 # At line number 916
+ .long .LASF1230 # The macro: "__glibcxx_want_bitops"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x39e # At line number 926
+ .long .LASF1231 # The macro: "__glibcxx_want_bounded_array_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3a8 # At line number 936
+ .long .LASF1232 # The macro: "__glibcxx_want_concepts"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b6 # At line number 950
+ .long .LASF1233 # The macro: "__glibcxx_optional 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3bc # At line number 956
+ .long .LASF1234 # The macro: "__glibcxx_want_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3c6 # At line number 966
+ .long .LASF1235 # The macro: "__glibcxx_want_destroying_delete"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d0 # At line number 976
+ .long .LASF1236 # The macro: "__glibcxx_want_constexpr_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3da # At line number 986
+ .long .LASF1237 # The macro: "__glibcxx_want_endian"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3e4 # At line number 996
+ .long .LASF1238 # The macro: "__glibcxx_want_int_pow2"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3ee # At line number 1006
+ .long .LASF1239 # The macro: "__glibcxx_want_integer_comparison_functions"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3f8 # At line number 1016
+ .long .LASF1240 # The macro: "__glibcxx_want_is_constant_evaluated"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x401 # At line number 1025
+ .long .LASF1241 # The macro: "__glibcxx_constexpr_char_traits 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x407 # At line number 1031
+ .long .LASF1242 # The macro: "__glibcxx_want_constexpr_char_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x411 # At line number 1041
+ .long .LASF1243 # The macro: "__glibcxx_want_is_layout_compatible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x41b # At line number 1051
+ .long .LASF1244 # The macro: "__glibcxx_want_is_nothrow_convertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x425 # At line number 1061
+ .long .LASF1245 # The macro: "__glibcxx_want_is_pointer_interconvertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x42f # At line number 1071
+ .long .LASF1246 # The macro: "__glibcxx_want_math_constants"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x439 # At line number 1081
+ .long .LASF1247 # The macro: "__glibcxx_want_make_obj_using_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x443 # At line number 1091
+ .long .LASF1248 # The macro: "__glibcxx_want_remove_cvref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x44d # At line number 1101
+ .long .LASF1249 # The macro: "__glibcxx_want_source_location"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x45c # At line number 1116
+ .long .LASF1250 # The macro: "__glibcxx_want_span"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x466 # At line number 1126
+ .long .LASF1251 # The macro: "__glibcxx_want_ssize"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x470 # At line number 1136
+ .long .LASF1252 # The macro: "__glibcxx_want_three_way_comparison"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47a # At line number 1146
+ .long .LASF1253 # The macro: "__glibcxx_want_to_address"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x484 # At line number 1156
+ .long .LASF1254 # The macro: "__glibcxx_want_to_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x48e # At line number 1166
+ .long .LASF1255 # The macro: "__glibcxx_want_type_identity"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x498 # At line number 1176
+ .long .LASF1256 # The macro: "__glibcxx_want_unwrap_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4a2 # At line number 1186
+ .long .LASF1257 # The macro: "__glibcxx_want_constexpr_iterator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4ac # At line number 1196
+ .long .LASF1258 # The macro: "__glibcxx_want_interpolate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4b6 # At line number 1206
+ .long .LASF1259 # The macro: "__glibcxx_want_constexpr_utility"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4c0 # At line number 1216
+ .long .LASF1260 # The macro: "__glibcxx_want_shift"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4d4 # At line number 1236
+ .long .LASF1261 # The macro: "__glibcxx_want_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4de # At line number 1246
+ .long .LASF1262 # The macro: "__glibcxx_want_constexpr_numeric"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4e8 # At line number 1256
+ .long .LASF1263 # The macro: "__glibcxx_want_constexpr_functional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4f7 # At line number 1271
+ .long .LASF1264 # The macro: "__glibcxx_want_constexpr_algorithms"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x501 # At line number 1281
+ .long .LASF1265 # The macro: "__glibcxx_want_constexpr_tuple"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x510 # At line number 1296
+ .long .LASF1266 # The macro: "__glibcxx_want_constexpr_memory"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51a # At line number 1306
+ .long .LASF1267 # The macro: "__glibcxx_want_atomic_shared_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x529 # At line number 1321
+ .long .LASF1268 # The macro: "__glibcxx_want_atomic_wait"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x533 # At line number 1331
+ .long .LASF1269 # The macro: "__glibcxx_want_barrier"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x542 # At line number 1346
+ .long .LASF1270 # The macro: "__glibcxx_want_format"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x54c # At line number 1356
+ .long .LASF1271 # The macro: "__glibcxx_want_format_uchar"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x556 # At line number 1366
+ .long .LASF1272 # The macro: "__glibcxx_want_constexpr_complex"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x560 # At line number 1376
+ .long .LASF1273 # The macro: "__glibcxx_want_constexpr_dynamic_alloc"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56e # At line number 1390
+ .long .LASF1274 # The macro: "__glibcxx_constexpr_string 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x574 # At line number 1396
+ .long .LASF1275 # The macro: "__glibcxx_want_constexpr_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x57e # At line number 1406
+ .long .LASF1276 # The macro: "__glibcxx_want_constexpr_vector"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x58d # At line number 1421
+ .long .LASF1277 # The macro: "__glibcxx_want_constrained_equality"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x597 # At line number 1431
+ .long .LASF1278 # The macro: "__glibcxx_want_erase_if"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5a1 # At line number 1441
+ .long .LASF1279 # The macro: "__glibcxx_want_generic_unordered_lookup"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5ab # At line number 1451
+ .long .LASF1280 # The macro: "__glibcxx_want_jthread"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b5 # At line number 1461
+ .long .LASF1281 # The macro: "__glibcxx_want_latch"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5bf # At line number 1471
+ .long .LASF1282 # The macro: "__glibcxx_want_list_remove_return_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5c9 # At line number 1481
+ .long .LASF1283 # The macro: "__glibcxx_want_polymorphic_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5d3 # At line number 1491
+ .long .LASF1284 # The macro: "__glibcxx_want_move_iterator_concept"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5dd # At line number 1501
+ .long .LASF1285 # The macro: "__glibcxx_want_semaphore"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5e7 # At line number 1511
+ .long .LASF1286 # The macro: "__glibcxx_want_smart_ptr_for_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5f1 # At line number 1521
+ .long .LASF1287 # The macro: "__glibcxx_want_syncbuf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5fb # At line number 1531
+ .long .LASF1288 # The macro: "__glibcxx_want_byteswap"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x605 # At line number 1541
+ .long .LASF1289 # The macro: "__glibcxx_want_constexpr_charconv"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x60f # At line number 1551
+ .long .LASF1290 # The macro: "__glibcxx_want_constexpr_typeinfo"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x619 # At line number 1561
+ .long .LASF1291 # The macro: "__glibcxx_want_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x622 # At line number 1570
+ .long .LASF1292 # The macro: "__glibcxx_want_format_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x62c # At line number 1580
+ .long .LASF1293 # The macro: "__glibcxx_want_freestanding_algorithm"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x636 # At line number 1590
+ .long .LASF1294 # The macro: "__glibcxx_want_freestanding_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x640 # At line number 1600
+ .long .LASF1295 # The macro: "__glibcxx_want_freestanding_cstring"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x64a # At line number 1610
+ .long .LASF1296 # The macro: "__glibcxx_want_freestanding_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x654 # At line number 1620
+ .long .LASF1297 # The macro: "__glibcxx_want_freestanding_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65e # At line number 1630
+ .long .LASF1298 # The macro: "__glibcxx_want_freestanding_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x668 # At line number 1640
+ .long .LASF1299 # The macro: "__glibcxx_want_freestanding_variant"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x672 # At line number 1650
+ .long .LASF1300 # The macro: "__glibcxx_want_invoke_r"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x67c # At line number 1660
+ .long .LASF1301 # The macro: "__glibcxx_want_is_scoped_enum"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x686 # At line number 1670
+ .long .LASF1302 # The macro: "__glibcxx_want_reference_from_temporary"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x690 # At line number 1680
+ .long .LASF1303 # The macro: "__glibcxx_want_containers_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x69a # At line number 1690
+ .long .LASF1304 # The macro: "__glibcxx_want_ranges_to_container"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6a4 # At line number 1700
+ .long .LASF1305 # The macro: "__glibcxx_want_ranges_zip"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ae # At line number 1710
+ .long .LASF1306 # The macro: "__glibcxx_want_ranges_chunk"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6b8 # At line number 1720
+ .long .LASF1307 # The macro: "__glibcxx_want_ranges_slide"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6c2 # At line number 1730
+ .long .LASF1308 # The macro: "__glibcxx_want_ranges_chunk_by"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6cc # At line number 1740
+ .long .LASF1309 # The macro: "__glibcxx_want_ranges_join_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6d6 # At line number 1750
+ .long .LASF1310 # The macro: "__glibcxx_want_ranges_repeat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6e0 # At line number 1760
+ .long .LASF1311 # The macro: "__glibcxx_want_ranges_stride"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ea # At line number 1770
+ .long .LASF1312 # The macro: "__glibcxx_want_ranges_cartesian_product"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6f4 # At line number 1780
+ .long .LASF1313 # The macro: "__glibcxx_want_ranges_as_rvalue"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6fe # At line number 1790
+ .long .LASF1314 # The macro: "__glibcxx_want_ranges_as_const"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x708 # At line number 1800
+ .long .LASF1315 # The macro: "__glibcxx_want_ranges_enumerate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x712 # At line number 1810
+ .long .LASF1316 # The macro: "__glibcxx_want_ranges_fold"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x71c # At line number 1820
+ .long .LASF1317 # The macro: "__glibcxx_want_ranges_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x726 # At line number 1830
+ .long .LASF1318 # The macro: "__glibcxx_want_ranges_iota"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x730 # At line number 1840
+ .long .LASF1319 # The macro: "__glibcxx_want_ranges_find_last"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x73a # At line number 1850
+ .long .LASF1320 # The macro: "__glibcxx_want_constexpr_bitset"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x744 # At line number 1860
+ .long .LASF1321 # The macro: "__glibcxx_want_stdatomic_h"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74e # At line number 1870
+ .long .LASF1322 # The macro: "__glibcxx_want_adaptor_iterator_pair_constructor"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x758 # At line number 1880
+ .long .LASF1323 # The macro: "__glibcxx_want_flat_map"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x762 # At line number 1890
+ .long .LASF1324 # The macro: "__glibcxx_want_flat_set"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x76c # At line number 1900
+ .long .LASF1325 # The macro: "__glibcxx_want_formatters"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x776 # At line number 1910
+ .long .LASF1326 # The macro: "__glibcxx_want_forward_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x780 # At line number 1920
+ .long .LASF1327 # The macro: "__glibcxx_want_generator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78a # At line number 1930
+ .long .LASF1328 # The macro: "__glibcxx_want_ios_noreplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x794 # At line number 1940
+ .long .LASF1329 # The macro: "__glibcxx_want_move_only_function"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x79e # At line number 1950
+ .long .LASF1330 # The macro: "__glibcxx_want_out_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7a8 # At line number 1960
+ .long .LASF1331 # The macro: "__glibcxx_want_print"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7b2 # At line number 1970
+ .long .LASF1332 # The macro: "__glibcxx_want_spanstream"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7bc # At line number 1980
+ .long .LASF1333 # The macro: "__glibcxx_want_stacktrace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7c6 # At line number 1990
+ .long .LASF1334 # The macro: "__glibcxx_want_string_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7d0 # At line number 2000
+ .long .LASF1335 # The macro: "__glibcxx_want_string_resize_and_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7da # At line number 2010
+ .long .LASF1336 # The macro: "__glibcxx_want_to_underlying"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e9 # At line number 2025
+ .long .LASF1337 # The macro: "__glibcxx_want_tuple_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7f3 # At line number 2035
+ .long .LASF1338 # The macro: "__glibcxx_want_unreachable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7fd # At line number 2045
+ .long .LASF1339 # The macro: "__glibcxx_want_algorithm_default_value_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x807 # At line number 2055
+ .long .LASF1340 # The macro: "__glibcxx_want_constexpr_new"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x811 # At line number 2065
+ .long .LASF1341 # The macro: "__glibcxx_want_fstream_native_handle"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x81b # At line number 2075
+ .long .LASF1342 # The macro: "__glibcxx_want_is_virtual_base_of"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x825 # At line number 2085
+ .long .LASF1343 # The macro: "__glibcxx_want_ranges_cache_latest"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x82f # At line number 2095
+ .long .LASF1344 # The macro: "__glibcxx_want_ranges_concat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x839 # At line number 2105
+ .long .LASF1345 # The macro: "__glibcxx_want_ratio"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x843 # At line number 2115
+ .long .LASF1346 # The macro: "__glibcxx_want_reference_wrapper"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x84d # At line number 2125
+ .long .LASF1347 # The macro: "__glibcxx_want_saturation_arithmetic"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x857 # At line number 2135
+ .long .LASF1348 # The macro: "__glibcxx_want_span_initializer_list"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x861 # At line number 2145
+ .long .LASF1349 # The macro: "__glibcxx_want_text_encoding"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x86b # At line number 2155
+ .long .LASF1350 # The macro: "__glibcxx_want_ranges_to_input"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x875 # At line number 2165
+ .long .LASF1351 # The macro: "__glibcxx_want_to_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x87f # At line number 2175
+ .long .LASF1352 # The macro: "__glibcxx_want_modules"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x881 # At line number 2177
+ .long .LASF1353 # The macro: "__glibcxx_want_all"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.stddef.h.39.c8a8030e26a8297e31791110b80c861f,comdat
+.Ldebug_macro90:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27 # At line number 39
+ .long .LASF2050 # The macro: "_STDDEF_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x28 # At line number 40
+ .long .LASF2051 # The macro: "_STDDEF_H_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a # At line number 42
+ .long .LASF2052 # The macro: "_ANSI_STDDEF_H "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x93 # At line number 147
+ .long .LASF2053 # The macro: "_PTRDIFF_T "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x94 # At line number 148
+ .long .LASF2054 # The macro: "_T_PTRDIFF_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x95 # At line number 149
+ .long .LASF2055 # The macro: "_T_PTRDIFF "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x96 # At line number 150
+ .long .LASF2056 # The macro: "__PTRDIFF_T "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x97 # At line number 151
+ .long .LASF2057 # The macro: "_PTRDIFF_T_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x98 # At line number 152
+ .long .LASF2058 # The macro: "_BSD_PTRDIFF_T_ "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x99 # At line number 153
+ .long .LASF2059 # The macro: "___int_ptrdiff_t_h "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9a # At line number 154
+ .long .LASF2060 # The macro: "_GCC_PTRDIFF_T "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9b # At line number 155
+ .long .LASF2061 # The macro: "_PTRDIFF_T_DECLARED "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF2062 # The macro: "__DEFINED_ptrdiff_t "
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xad # At line number 173
+ .long .LASF2063 # The macro: "__need_ptrdiff_t"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xfc # At line number 252
+ .long .LASF1595 # The macro: "__need_size_t"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x16c # At line number 364
+ .long .LASF1613 # The macro: "__need_wchar_t"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19e # At line number 414
+ .long .LASF1614 # The macro: "NULL"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a0 # At line number 416
+ .long .LASF1615 # The macro: "NULL __null"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1616 # The macro: "__need_NULL"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1ae # At line number 430
+ .long .LASF2064 # The macro: "offsetof"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1af # At line number 431
+ .long .LASF2065 # The macro: "offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1b4 # At line number 436
+ .long .LASF2066 # The macro: "_GCC_MAX_ALIGN_T "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c9 # At line number 457
+ .long .LASF2067 # The macro: "_GXX_NULLPTR_T "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.cxxabi_init_exception.h.44.e38819c3787893de1602efd23782161a,comdat
+.Ldebug_macro91:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c # At line number 44
+ .long .LASF2068 # The macro: "_GLIBCXX_CDTOR_CALLABI "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d # At line number 45
+ .long .LASF2069 # The macro: "_GLIBCXX_HAVE_CDTOR_CALLABI 0"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.exception_ptr.h.47.d815ed5919163856a16558bd72e9bbb6,comdat
+.Ldebug_macro92:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f # At line number 47
+ .long .LASF2070 # The macro: "_GLIBCXX_EH_PTR_USED "
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x11f # At line number 287
+ .long .LASF2071 # The macro: "_GLIBCXX_EH_PTR_USED"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.atomic_lockfree_defines.h.31.c7378ca49150c49af64f890ebd8a3b58,comdat
+.Ldebug_macro93:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1f # At line number 31
+ .long .LASF2075 # The macro: "_GLIBCXX_ATOMIC_LOCK_FREE_H 1"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x33 # At line number 51
+ .long .LASF2076 # The macro: "ATOMIC_BOOL_LOCK_FREE __GCC_ATOMIC_BOOL_LOCK_FREE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x34 # At line number 52
+ .long .LASF2077 # The macro: "ATOMIC_CHAR_LOCK_FREE __GCC_ATOMIC_CHAR_LOCK_FREE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35 # At line number 53
+ .long .LASF2078 # The macro: "ATOMIC_WCHAR_T_LOCK_FREE __GCC_ATOMIC_WCHAR_T_LOCK_FREE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF2079 # The macro: "ATOMIC_CHAR16_T_LOCK_FREE __GCC_ATOMIC_CHAR16_T_LOCK_FREE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3a # At line number 58
+ .long .LASF2080 # The macro: "ATOMIC_CHAR32_T_LOCK_FREE __GCC_ATOMIC_CHAR32_T_LOCK_FREE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b # At line number 59
+ .long .LASF2081 # The macro: "ATOMIC_SHORT_LOCK_FREE __GCC_ATOMIC_SHORT_LOCK_FREE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3c # At line number 60
+ .long .LASF2082 # The macro: "ATOMIC_INT_LOCK_FREE __GCC_ATOMIC_INT_LOCK_FREE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF2083 # The macro: "ATOMIC_LONG_LOCK_FREE __GCC_ATOMIC_LONG_LOCK_FREE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3e # At line number 62
+ .long .LASF2084 # The macro: "ATOMIC_LLONG_LOCK_FREE __GCC_ATOMIC_LLONG_LOCK_FREE"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3f # At line number 63
+ .long .LASF2085 # The macro: "ATOMIC_POINTER_LOCK_FREE __GCC_ATOMIC_POINTER_LOCK_FREE"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.version.h.55.1bab2d1f88a15dc12cc1e04c277024a3,comdat
+.Ldebug_macro94:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1077 # The macro: "__glibcxx_incomplete_container_elements 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1078 # The macro: "__glibcxx_want_incomplete_container_elements"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1080 # The macro: "__glibcxx_want_uncaught_exceptions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1081 # The macro: "__glibcxx_allocator_traits_is_always_equal 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1082 # The macro: "__glibcxx_want_allocator_traits_is_always_equal"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1084 # The macro: "__glibcxx_want_is_null_pointer"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1086 # The macro: "__glibcxx_want_result_of_sfinae"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1087 # The macro: "__glibcxx_shared_ptr_arrays 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1088 # The macro: "__glibcxx_want_shared_ptr_arrays"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF1090 # The macro: "__glibcxx_want_is_swappable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x88 # At line number 136
+ .long .LASF1092 # The macro: "__glibcxx_want_void_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8c # At line number 140
+ .long .LASF1093 # The macro: "__glibcxx_enable_shared_from_this 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x92 # At line number 146
+ .long .LASF1094 # The macro: "__glibcxx_want_enable_shared_from_this"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x96 # At line number 150
+ .long .LASF1095 # The macro: "__glibcxx_math_spec_funcs 201003L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF1096 # The macro: "__glibcxx_want_math_spec_funcs"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xa6 # At line number 166
+ .long .LASF1097 # The macro: "__glibcxx_want_coroutine"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa # At line number 170
+ .long .LASF1098 # The macro: "__glibcxx_exchange_function 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb0 # At line number 176
+ .long .LASF1099 # The macro: "__glibcxx_want_exchange_function"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4 # At line number 180
+ .long .LASF1100 # The macro: "__glibcxx_integer_sequence 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xba # At line number 186
+ .long .LASF1101 # The macro: "__glibcxx_want_integer_sequence"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xc4 # At line number 196
+ .long .LASF1103 # The macro: "__glibcxx_want_integral_constant_callable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xce # At line number 206
+ .long .LASF1105 # The macro: "__glibcxx_want_is_final"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2 # At line number 210
+ .long .LASF1106 # The macro: "__glibcxx_make_reverse_iterator 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd8 # At line number 216
+ .long .LASF1107 # The macro: "__glibcxx_want_make_reverse_iterator"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc # At line number 220
+ .long .LASF1108 # The macro: "__glibcxx_null_iterators 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe2 # At line number 226
+ .long .LASF1109 # The macro: "__glibcxx_want_null_iterators"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xec # At line number 236
+ .long .LASF1111 # The macro: "__glibcxx_want_transformation_trait_aliases"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf0 # At line number 240
+ .long .LASF1112 # The macro: "__glibcxx_transparent_operators 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf6 # At line number 246
+ .long .LASF1113 # The macro: "__glibcxx_want_transparent_operators"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x100 # At line number 256
+ .long .LASF1115 # The macro: "__glibcxx_want_tuple_element_t"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x10a # At line number 266
+ .long .LASF1117 # The macro: "__glibcxx_want_tuples_by_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10e # At line number 270
+ .long .LASF1118 # The macro: "__glibcxx_robust_nonmodifying_seq_ops 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x114 # At line number 276
+ .long .LASF1119 # The macro: "__glibcxx_want_robust_nonmodifying_seq_ops"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11d # At line number 285
+ .long .LASF1120 # The macro: "__glibcxx_to_chars 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x123 # At line number 291
+ .long .LASF1121 # The macro: "__glibcxx_want_to_chars"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x127 # At line number 295
+ .long .LASF1122 # The macro: "__glibcxx_chrono_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x12d # At line number 301
+ .long .LASF1123 # The macro: "__glibcxx_want_chrono_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x131 # At line number 305
+ .long .LASF1124 # The macro: "__glibcxx_complex_udls 201309L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x137 # At line number 311
+ .long .LASF1125 # The macro: "__glibcxx_want_complex_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13b # At line number 315
+ .long .LASF1126 # The macro: "__glibcxx_generic_associative_lookup 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x141 # At line number 321
+ .long .LASF1127 # The macro: "__glibcxx_want_generic_associative_lookup"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x145 # At line number 325
+ .long .LASF1128 # The macro: "__glibcxx_make_unique 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x14b # At line number 331
+ .long .LASF1129 # The macro: "__glibcxx_want_make_unique"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14f # At line number 335
+ .long .LASF1130 # The macro: "__glibcxx_quoted_string_io 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x155 # At line number 341
+ .long .LASF1131 # The macro: "__glibcxx_want_quoted_string_io"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x159 # At line number 345
+ .long .LASF1132 # The macro: "__glibcxx_shared_timed_mutex 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x15f # At line number 351
+ .long .LASF1133 # The macro: "__glibcxx_want_shared_timed_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x163 # At line number 355
+ .long .LASF1134 # The macro: "__glibcxx_string_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x169 # At line number 361
+ .long .LASF1135 # The macro: "__glibcxx_want_string_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16d # At line number 365
+ .long .LASF1136 # The macro: "__glibcxx_addressof_constexpr 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x173 # At line number 371
+ .long .LASF1137 # The macro: "__glibcxx_want_addressof_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x177 # At line number 375
+ .long .LASF1138 # The macro: "__glibcxx_any 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x17d # At line number 381
+ .long .LASF1139 # The macro: "__glibcxx_want_any"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x187 # At line number 391
+ .long .LASF1141 # The macro: "__glibcxx_want_apply"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18b # At line number 395
+ .long .LASF1142 # The macro: "__glibcxx_as_const 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x191 # At line number 401
+ .long .LASF1143 # The macro: "__glibcxx_want_as_const"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x195 # At line number 405
+ .long .LASF1144 # The macro: "__glibcxx_atomic_is_always_lock_free 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19b # At line number 411
+ .long .LASF1145 # The macro: "__glibcxx_want_atomic_is_always_lock_free"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a5 # At line number 421
+ .long .LASF1147 # The macro: "__glibcxx_want_bool_constant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1148 # The macro: "__glibcxx_byte 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1af # At line number 431
+ .long .LASF1149 # The macro: "__glibcxx_want_byte"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1b9 # At line number 441
+ .long .LASF1151 # The macro: "__glibcxx_want_has_unique_object_representations"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1c3 # At line number 451
+ .long .LASF1154 # The macro: "__glibcxx_want_hardware_interference_size"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c7 # At line number 455
+ .long .LASF1155 # The macro: "__glibcxx_invoke 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1cd # At line number 461
+ .long .LASF1156 # The macro: "__glibcxx_want_invoke"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1d7 # At line number 471
+ .long .LASF1158 # The macro: "__glibcxx_want_is_aggregate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1e1 # At line number 481
+ .long .LASF1160 # The macro: "__glibcxx_want_is_invocable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1eb # At line number 491
+ .long .LASF1163 # The macro: "__glibcxx_want_launder"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1f5 # At line number 501
+ .long .LASF1165 # The macro: "__glibcxx_want_logical_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1ff # At line number 511
+ .long .LASF1167 # The macro: "__glibcxx_want_make_from_tuple"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x203 # At line number 515
+ .long .LASF1168 # The macro: "__glibcxx_not_fn 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x209 # At line number 521
+ .long .LASF1169 # The macro: "__glibcxx_want_not_fn"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x213 # At line number 531
+ .long .LASF1171 # The macro: "__glibcxx_want_type_trait_variable_templates"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x221 # At line number 545
+ .long .LASF1172 # The macro: "__glibcxx_variant 202102L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x227 # At line number 551
+ .long .LASF1173 # The macro: "__glibcxx_want_variant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22b # At line number 555
+ .long .LASF1174 # The macro: "__glibcxx_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x231 # At line number 561
+ .long .LASF1175 # The macro: "__glibcxx_want_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x235 # At line number 565
+ .long .LASF1176 # The macro: "__glibcxx_gcd 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x23b # At line number 571
+ .long .LASF1177 # The macro: "__glibcxx_want_gcd"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23f # At line number 575
+ .long .LASF1178 # The macro: "__glibcxx_gcd_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x245 # At line number 581
+ .long .LASF1179 # The macro: "__glibcxx_want_gcd_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24e # At line number 590
+ .long .LASF1180 # The macro: "__glibcxx_raw_memory_algorithms 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x254 # At line number 596
+ .long .LASF1181 # The macro: "__glibcxx_want_raw_memory_algorithms"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25d # At line number 605
+ .long .LASF1182 # The macro: "__glibcxx_array_constexpr 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x263 # At line number 611
+ .long .LASF1183 # The macro: "__glibcxx_want_array_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x267 # At line number 615
+ .long .LASF1184 # The macro: "__glibcxx_nonmember_container_access 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x26d # At line number 621
+ .long .LASF1185 # The macro: "__glibcxx_want_nonmember_container_access"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x271 # At line number 625
+ .long .LASF1186 # The macro: "__glibcxx_clamp 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x277 # At line number 631
+ .long .LASF1187 # The macro: "__glibcxx_want_clamp"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27b # At line number 635
+ .long .LASF1188 # The macro: "__glibcxx_sample 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x281 # At line number 641
+ .long .LASF1189 # The macro: "__glibcxx_want_sample"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x285 # At line number 645
+ .long .LASF1190 # The macro: "__glibcxx_boyer_moore_searcher 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x28b # At line number 651
+ .long .LASF1191 # The macro: "__glibcxx_want_boyer_moore_searcher"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x294 # At line number 660
+ .long .LASF1192 # The macro: "__glibcxx_chrono 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x29a # At line number 666
+ .long .LASF1193 # The macro: "__glibcxx_want_chrono"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29e # At line number 670
+ .long .LASF1194 # The macro: "__glibcxx_execution 201902L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2a4 # At line number 676
+ .long .LASF1195 # The macro: "__glibcxx_want_execution"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a8 # At line number 680
+ .long .LASF1196 # The macro: "__glibcxx_filesystem 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ae # At line number 686
+ .long .LASF1197 # The macro: "__glibcxx_want_filesystem"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b2 # At line number 690
+ .long .LASF1198 # The macro: "__glibcxx_hypot 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2b8 # At line number 696
+ .long .LASF1199 # The macro: "__glibcxx_want_hypot"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2bc # At line number 700
+ .long .LASF1200 # The macro: "__glibcxx_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2c2 # At line number 706
+ .long .LASF1201 # The macro: "__glibcxx_want_map_try_emplace"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c6 # At line number 710
+ .long .LASF1202 # The macro: "__glibcxx_math_special_functions 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2cc # At line number 716
+ .long .LASF1203 # The macro: "__glibcxx_want_math_special_functions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d0 # At line number 720
+ .long .LASF1204 # The macro: "__glibcxx_memory_resource 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2db # At line number 731
+ .long .LASF1205 # The macro: "__glibcxx_want_memory_resource"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2df # At line number 735
+ .long .LASF1206 # The macro: "__glibcxx_node_extract 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2e5 # At line number 741
+ .long .LASF1207 # The macro: "__glibcxx_want_node_extract"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e9 # At line number 745
+ .long .LASF1208 # The macro: "__glibcxx_parallel_algorithm 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ef # At line number 751
+ .long .LASF1209 # The macro: "__glibcxx_want_parallel_algorithm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f3 # At line number 755
+ .long .LASF1210 # The macro: "__glibcxx_scoped_lock 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2f9 # At line number 761
+ .long .LASF1211 # The macro: "__glibcxx_want_scoped_lock"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2fd # At line number 765
+ .long .LASF1212 # The macro: "__glibcxx_shared_mutex 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x303 # At line number 771
+ .long .LASF1213 # The macro: "__glibcxx_want_shared_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x307 # At line number 775
+ .long .LASF1214 # The macro: "__glibcxx_shared_ptr_weak_type 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x30d # At line number 781
+ .long .LASF1215 # The macro: "__glibcxx_want_shared_ptr_weak_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x316 # At line number 790
+ .long .LASF1216 # The macro: "__glibcxx_string_view 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x31c # At line number 796
+ .long .LASF1217 # The macro: "__glibcxx_want_string_view"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x320 # At line number 800
+ .long .LASF1218 # The macro: "__glibcxx_unordered_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x326 # At line number 806
+ .long .LASF1219 # The macro: "__glibcxx_want_unordered_map_try_emplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x330 # At line number 816
+ .long .LASF1220 # The macro: "__glibcxx_want_assume_aligned"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x33a # At line number 826
+ .long .LASF1221 # The macro: "__glibcxx_want_atomic_flag_test"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x344 # At line number 836
+ .long .LASF1222 # The macro: "__glibcxx_want_atomic_float"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x34e # At line number 846
+ .long .LASF1223 # The macro: "__glibcxx_want_atomic_lock_free_type_aliases"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x358 # At line number 856
+ .long .LASF1224 # The macro: "__glibcxx_want_atomic_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x362 # At line number 866
+ .long .LASF1225 # The macro: "__glibcxx_want_atomic_value_initialization"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x36c # At line number 876
+ .long .LASF1226 # The macro: "__glibcxx_want_bind_front"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x376 # At line number 886
+ .long .LASF1227 # The macro: "__glibcxx_want_bind_back"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x380 # At line number 896
+ .long .LASF1228 # The macro: "__glibcxx_want_starts_ends_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x38a # At line number 906
+ .long .LASF1229 # The macro: "__glibcxx_want_bit_cast"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x394 # At line number 916
+ .long .LASF1230 # The macro: "__glibcxx_want_bitops"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x39e # At line number 926
+ .long .LASF1231 # The macro: "__glibcxx_want_bounded_array_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3a8 # At line number 936
+ .long .LASF1232 # The macro: "__glibcxx_want_concepts"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b6 # At line number 950
+ .long .LASF1233 # The macro: "__glibcxx_optional 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3bc # At line number 956
+ .long .LASF1234 # The macro: "__glibcxx_want_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3c6 # At line number 966
+ .long .LASF1235 # The macro: "__glibcxx_want_destroying_delete"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d0 # At line number 976
+ .long .LASF1236 # The macro: "__glibcxx_want_constexpr_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3da # At line number 986
+ .long .LASF1237 # The macro: "__glibcxx_want_endian"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3e4 # At line number 996
+ .long .LASF1238 # The macro: "__glibcxx_want_int_pow2"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3ee # At line number 1006
+ .long .LASF1239 # The macro: "__glibcxx_want_integer_comparison_functions"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3f8 # At line number 1016
+ .long .LASF1240 # The macro: "__glibcxx_want_is_constant_evaluated"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x401 # At line number 1025
+ .long .LASF1241 # The macro: "__glibcxx_constexpr_char_traits 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x407 # At line number 1031
+ .long .LASF1242 # The macro: "__glibcxx_want_constexpr_char_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x411 # At line number 1041
+ .long .LASF1243 # The macro: "__glibcxx_want_is_layout_compatible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x41b # At line number 1051
+ .long .LASF1244 # The macro: "__glibcxx_want_is_nothrow_convertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x425 # At line number 1061
+ .long .LASF1245 # The macro: "__glibcxx_want_is_pointer_interconvertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x42f # At line number 1071
+ .long .LASF1246 # The macro: "__glibcxx_want_math_constants"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x439 # At line number 1081
+ .long .LASF1247 # The macro: "__glibcxx_want_make_obj_using_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x443 # At line number 1091
+ .long .LASF1248 # The macro: "__glibcxx_want_remove_cvref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x44d # At line number 1101
+ .long .LASF1249 # The macro: "__glibcxx_want_source_location"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x45c # At line number 1116
+ .long .LASF1250 # The macro: "__glibcxx_want_span"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x466 # At line number 1126
+ .long .LASF1251 # The macro: "__glibcxx_want_ssize"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x470 # At line number 1136
+ .long .LASF1252 # The macro: "__glibcxx_want_three_way_comparison"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47a # At line number 1146
+ .long .LASF1253 # The macro: "__glibcxx_want_to_address"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x484 # At line number 1156
+ .long .LASF1254 # The macro: "__glibcxx_want_to_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x48e # At line number 1166
+ .long .LASF1255 # The macro: "__glibcxx_want_type_identity"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x498 # At line number 1176
+ .long .LASF1256 # The macro: "__glibcxx_want_unwrap_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4a2 # At line number 1186
+ .long .LASF1257 # The macro: "__glibcxx_want_constexpr_iterator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4ac # At line number 1196
+ .long .LASF1258 # The macro: "__glibcxx_want_interpolate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4b6 # At line number 1206
+ .long .LASF1259 # The macro: "__glibcxx_want_constexpr_utility"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4c0 # At line number 1216
+ .long .LASF1260 # The macro: "__glibcxx_want_shift"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4d4 # At line number 1236
+ .long .LASF1261 # The macro: "__glibcxx_want_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4de # At line number 1246
+ .long .LASF1262 # The macro: "__glibcxx_want_constexpr_numeric"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4e8 # At line number 1256
+ .long .LASF1263 # The macro: "__glibcxx_want_constexpr_functional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4f7 # At line number 1271
+ .long .LASF1264 # The macro: "__glibcxx_want_constexpr_algorithms"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x501 # At line number 1281
+ .long .LASF1265 # The macro: "__glibcxx_want_constexpr_tuple"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x510 # At line number 1296
+ .long .LASF1266 # The macro: "__glibcxx_want_constexpr_memory"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51a # At line number 1306
+ .long .LASF1267 # The macro: "__glibcxx_want_atomic_shared_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x529 # At line number 1321
+ .long .LASF1268 # The macro: "__glibcxx_want_atomic_wait"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x533 # At line number 1331
+ .long .LASF1269 # The macro: "__glibcxx_want_barrier"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x542 # At line number 1346
+ .long .LASF1270 # The macro: "__glibcxx_want_format"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x54c # At line number 1356
+ .long .LASF1271 # The macro: "__glibcxx_want_format_uchar"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x556 # At line number 1366
+ .long .LASF1272 # The macro: "__glibcxx_want_constexpr_complex"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x560 # At line number 1376
+ .long .LASF1273 # The macro: "__glibcxx_want_constexpr_dynamic_alloc"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56e # At line number 1390
+ .long .LASF1274 # The macro: "__glibcxx_constexpr_string 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x574 # At line number 1396
+ .long .LASF1275 # The macro: "__glibcxx_want_constexpr_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x57e # At line number 1406
+ .long .LASF1276 # The macro: "__glibcxx_want_constexpr_vector"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x58d # At line number 1421
+ .long .LASF1277 # The macro: "__glibcxx_want_constrained_equality"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x597 # At line number 1431
+ .long .LASF1278 # The macro: "__glibcxx_want_erase_if"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5a1 # At line number 1441
+ .long .LASF1279 # The macro: "__glibcxx_want_generic_unordered_lookup"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5ab # At line number 1451
+ .long .LASF1280 # The macro: "__glibcxx_want_jthread"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b5 # At line number 1461
+ .long .LASF1281 # The macro: "__glibcxx_want_latch"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5bf # At line number 1471
+ .long .LASF1282 # The macro: "__glibcxx_want_list_remove_return_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5c9 # At line number 1481
+ .long .LASF1283 # The macro: "__glibcxx_want_polymorphic_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5d3 # At line number 1491
+ .long .LASF1284 # The macro: "__glibcxx_want_move_iterator_concept"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5dd # At line number 1501
+ .long .LASF1285 # The macro: "__glibcxx_want_semaphore"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5e7 # At line number 1511
+ .long .LASF1286 # The macro: "__glibcxx_want_smart_ptr_for_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5f1 # At line number 1521
+ .long .LASF1287 # The macro: "__glibcxx_want_syncbuf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5fb # At line number 1531
+ .long .LASF1288 # The macro: "__glibcxx_want_byteswap"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x605 # At line number 1541
+ .long .LASF1289 # The macro: "__glibcxx_want_constexpr_charconv"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x60f # At line number 1551
+ .long .LASF1290 # The macro: "__glibcxx_want_constexpr_typeinfo"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x619 # At line number 1561
+ .long .LASF1291 # The macro: "__glibcxx_want_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x622 # At line number 1570
+ .long .LASF1292 # The macro: "__glibcxx_want_format_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x62c # At line number 1580
+ .long .LASF1293 # The macro: "__glibcxx_want_freestanding_algorithm"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x636 # At line number 1590
+ .long .LASF1294 # The macro: "__glibcxx_want_freestanding_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x640 # At line number 1600
+ .long .LASF1295 # The macro: "__glibcxx_want_freestanding_cstring"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x64a # At line number 1610
+ .long .LASF1296 # The macro: "__glibcxx_want_freestanding_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x654 # At line number 1620
+ .long .LASF1297 # The macro: "__glibcxx_want_freestanding_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65e # At line number 1630
+ .long .LASF1298 # The macro: "__glibcxx_want_freestanding_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x668 # At line number 1640
+ .long .LASF1299 # The macro: "__glibcxx_want_freestanding_variant"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x672 # At line number 1650
+ .long .LASF1300 # The macro: "__glibcxx_want_invoke_r"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x67c # At line number 1660
+ .long .LASF1301 # The macro: "__glibcxx_want_is_scoped_enum"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x686 # At line number 1670
+ .long .LASF1302 # The macro: "__glibcxx_want_reference_from_temporary"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x690 # At line number 1680
+ .long .LASF1303 # The macro: "__glibcxx_want_containers_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x69a # At line number 1690
+ .long .LASF1304 # The macro: "__glibcxx_want_ranges_to_container"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6a4 # At line number 1700
+ .long .LASF1305 # The macro: "__glibcxx_want_ranges_zip"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ae # At line number 1710
+ .long .LASF1306 # The macro: "__glibcxx_want_ranges_chunk"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6b8 # At line number 1720
+ .long .LASF1307 # The macro: "__glibcxx_want_ranges_slide"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6c2 # At line number 1730
+ .long .LASF1308 # The macro: "__glibcxx_want_ranges_chunk_by"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6cc # At line number 1740
+ .long .LASF1309 # The macro: "__glibcxx_want_ranges_join_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6d6 # At line number 1750
+ .long .LASF1310 # The macro: "__glibcxx_want_ranges_repeat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6e0 # At line number 1760
+ .long .LASF1311 # The macro: "__glibcxx_want_ranges_stride"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ea # At line number 1770
+ .long .LASF1312 # The macro: "__glibcxx_want_ranges_cartesian_product"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6f4 # At line number 1780
+ .long .LASF1313 # The macro: "__glibcxx_want_ranges_as_rvalue"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6fe # At line number 1790
+ .long .LASF1314 # The macro: "__glibcxx_want_ranges_as_const"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x708 # At line number 1800
+ .long .LASF1315 # The macro: "__glibcxx_want_ranges_enumerate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x712 # At line number 1810
+ .long .LASF1316 # The macro: "__glibcxx_want_ranges_fold"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x71c # At line number 1820
+ .long .LASF1317 # The macro: "__glibcxx_want_ranges_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x726 # At line number 1830
+ .long .LASF1318 # The macro: "__glibcxx_want_ranges_iota"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x730 # At line number 1840
+ .long .LASF1319 # The macro: "__glibcxx_want_ranges_find_last"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x73a # At line number 1850
+ .long .LASF1320 # The macro: "__glibcxx_want_constexpr_bitset"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x744 # At line number 1860
+ .long .LASF1321 # The macro: "__glibcxx_want_stdatomic_h"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74e # At line number 1870
+ .long .LASF1322 # The macro: "__glibcxx_want_adaptor_iterator_pair_constructor"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x758 # At line number 1880
+ .long .LASF1323 # The macro: "__glibcxx_want_flat_map"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x762 # At line number 1890
+ .long .LASF1324 # The macro: "__glibcxx_want_flat_set"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x76c # At line number 1900
+ .long .LASF1325 # The macro: "__glibcxx_want_formatters"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x776 # At line number 1910
+ .long .LASF1326 # The macro: "__glibcxx_want_forward_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x780 # At line number 1920
+ .long .LASF1327 # The macro: "__glibcxx_want_generator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78a # At line number 1930
+ .long .LASF1328 # The macro: "__glibcxx_want_ios_noreplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x794 # At line number 1940
+ .long .LASF1329 # The macro: "__glibcxx_want_move_only_function"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x79e # At line number 1950
+ .long .LASF1330 # The macro: "__glibcxx_want_out_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7a8 # At line number 1960
+ .long .LASF1331 # The macro: "__glibcxx_want_print"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7b2 # At line number 1970
+ .long .LASF1332 # The macro: "__glibcxx_want_spanstream"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7bc # At line number 1980
+ .long .LASF1333 # The macro: "__glibcxx_want_stacktrace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7c6 # At line number 1990
+ .long .LASF1334 # The macro: "__glibcxx_want_string_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7d0 # At line number 2000
+ .long .LASF1335 # The macro: "__glibcxx_want_string_resize_and_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7da # At line number 2010
+ .long .LASF1336 # The macro: "__glibcxx_want_to_underlying"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e9 # At line number 2025
+ .long .LASF1337 # The macro: "__glibcxx_want_tuple_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7f3 # At line number 2035
+ .long .LASF1338 # The macro: "__glibcxx_want_unreachable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7fd # At line number 2045
+ .long .LASF1339 # The macro: "__glibcxx_want_algorithm_default_value_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x807 # At line number 2055
+ .long .LASF1340 # The macro: "__glibcxx_want_constexpr_new"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x811 # At line number 2065
+ .long .LASF1341 # The macro: "__glibcxx_want_fstream_native_handle"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x81b # At line number 2075
+ .long .LASF1342 # The macro: "__glibcxx_want_is_virtual_base_of"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x825 # At line number 2085
+ .long .LASF1343 # The macro: "__glibcxx_want_ranges_cache_latest"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x82f # At line number 2095
+ .long .LASF1344 # The macro: "__glibcxx_want_ranges_concat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x839 # At line number 2105
+ .long .LASF1345 # The macro: "__glibcxx_want_ratio"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x843 # At line number 2115
+ .long .LASF1346 # The macro: "__glibcxx_want_reference_wrapper"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x84d # At line number 2125
+ .long .LASF1347 # The macro: "__glibcxx_want_saturation_arithmetic"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x857 # At line number 2135
+ .long .LASF1348 # The macro: "__glibcxx_want_span_initializer_list"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x861 # At line number 2145
+ .long .LASF1349 # The macro: "__glibcxx_want_text_encoding"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x86b # At line number 2155
+ .long .LASF1350 # The macro: "__glibcxx_want_ranges_to_input"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x875 # At line number 2165
+ .long .LASF1351 # The macro: "__glibcxx_want_to_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x87f # At line number 2175
+ .long .LASF1352 # The macro: "__glibcxx_want_modules"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x881 # At line number 2177
+ .long .LASF1353 # The macro: "__glibcxx_want_all"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.atomic_base.h.166.99474906244c1847065aafe1dd57874a,comdat
+.Ldebug_macro95:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0xa6 # At line number 166
+ .long .LASF2087 # The macro: "_GLIBCXX20_INIT(I) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa # At line number 170
+ .long .LASF2088 # The macro: "ATOMIC_VAR_INIT(_VI) { _VI }"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd0 # At line number 208
+ .long .LASF2089 # The macro: "ATOMIC_FLAG_INIT { 0 }"
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.shared_ptr_atomic.h.52.7b1fdb82095db19eef10a15a017eba27,comdat
+.Ldebug_macro96:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x34 # At line number 52
+ .long .LASF2090 # The macro: "_GLIBCXX_TSAN_MUTEX_DESTROY(X) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x35 # At line number 53
+ .long .LASF2091 # The macro: "_GLIBCXX_TSAN_MUTEX_TRY_LOCK(X) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x36 # At line number 54
+ .long .LASF2092 # The macro: "_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED(X) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF2093 # The macro: "_GLIBCXX_TSAN_MUTEX_LOCKED(X) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x38 # At line number 56
+ .long .LASF2094 # The macro: "_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK(X) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x39 # At line number 57
+ .long .LASF2095 # The macro: "_GLIBCXX_TSAN_MUTEX_POST_UNLOCK(X) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3a # At line number 58
+ .long .LASF2096 # The macro: "_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL(X) "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b # At line number 59
+ .long .LASF2097 # The macro: "_GLIBCXX_TSAN_MUTEX_POST_SIGNAL(X) "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.memory.100.8a1d5fa44c5bf6978a87030b981fc4da,comdat
+.Ldebug_macro97:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x64 # At line number 100
+ .long .LASF2099 # The macro: "__glibcxx_want_allocator_traits_is_always_equal "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF2100 # The macro: "__glibcxx_want_assume_aligned "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x66 # At line number 102
+ .long .LASF2101 # The macro: "__glibcxx_want_atomic_shared_ptr "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x67 # At line number 103
+ .long .LASF2102 # The macro: "__glibcxx_want_atomic_value_initialization "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x68 # At line number 104
+ .long .LASF2103 # The macro: "__glibcxx_want_constexpr_dynamic_alloc "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x69 # At line number 105
+ .long .LASF2104 # The macro: "__glibcxx_want_constexpr_memory "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6a # At line number 106
+ .long .LASF2105 # The macro: "__glibcxx_want_enable_shared_from_this "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6b # At line number 107
+ .long .LASF2106 # The macro: "__glibcxx_want_make_unique "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6c # At line number 108
+ .long .LASF2107 # The macro: "__glibcxx_want_out_ptr "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6d # At line number 109
+ .long .LASF2108 # The macro: "__glibcxx_want_parallel_algorithm "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF2109 # The macro: "__glibcxx_want_ranges "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6f # At line number 111
+ .long .LASF2110 # The macro: "__glibcxx_want_raw_memory_algorithms "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x70 # At line number 112
+ .long .LASF2111 # The macro: "__glibcxx_want_shared_ptr_arrays "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x71 # At line number 113
+ .long .LASF2112 # The macro: "__glibcxx_want_shared_ptr_weak_type "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x72 # At line number 114
+ .long .LASF2113 # The macro: "__glibcxx_want_smart_ptr_for_overwrite "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x73 # At line number 115
+ .long .LASF2114 # The macro: "__glibcxx_want_to_address "
+ .byte 0x5 # Define macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF2115 # The macro: "__glibcxx_want_transparent_operators "
+ .byte 0 # End compilation unit
+ .section .debug_macro,"G",@progbits,wm4.version.h.55.21c2af1cd6704f846902979f24b7ee22,comdat
+.Ldebug_macro98:
+ .value 0x5 # DWARF macro version number
+ .byte 0 # Flags: 32-bit
+ .byte 0x5 # Define macro strp
+ .uleb128 0x37 # At line number 55
+ .long .LASF1077 # The macro: "__glibcxx_incomplete_container_elements 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d # At line number 61
+ .long .LASF1078 # The macro: "__glibcxx_want_incomplete_container_elements"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47 # At line number 71
+ .long .LASF1080 # The macro: "__glibcxx_want_uncaught_exceptions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4b # At line number 75
+ .long .LASF1081 # The macro: "__glibcxx_allocator_traits_is_always_equal 201411L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x4d # At line number 77
+ .long .LASF2116 # The macro: "__cpp_lib_allocator_traits_is_always_equal 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51 # At line number 81
+ .long .LASF1082 # The macro: "__glibcxx_want_allocator_traits_is_always_equal"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b # At line number 91
+ .long .LASF1084 # The macro: "__glibcxx_want_is_null_pointer"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65 # At line number 101
+ .long .LASF1086 # The macro: "__glibcxx_want_result_of_sfinae"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x6e # At line number 110
+ .long .LASF1087 # The macro: "__glibcxx_shared_ptr_arrays 201611L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x70 # At line number 112
+ .long .LASF2117 # The macro: "__cpp_lib_shared_ptr_arrays 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74 # At line number 116
+ .long .LASF1088 # The macro: "__glibcxx_want_shared_ptr_arrays"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e # At line number 126
+ .long .LASF1090 # The macro: "__glibcxx_want_is_swappable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x88 # At line number 136
+ .long .LASF1092 # The macro: "__glibcxx_want_void_t"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8c # At line number 140
+ .long .LASF1093 # The macro: "__glibcxx_enable_shared_from_this 201603L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x8e # At line number 142
+ .long .LASF2118 # The macro: "__cpp_lib_enable_shared_from_this 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x92 # At line number 146
+ .long .LASF1094 # The macro: "__glibcxx_want_enable_shared_from_this"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x96 # At line number 150
+ .long .LASF1095 # The macro: "__glibcxx_math_spec_funcs 201003L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x9c # At line number 156
+ .long .LASF1096 # The macro: "__glibcxx_want_math_spec_funcs"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xa6 # At line number 166
+ .long .LASF1097 # The macro: "__glibcxx_want_coroutine"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xaa # At line number 170
+ .long .LASF1098 # The macro: "__glibcxx_exchange_function 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xb0 # At line number 176
+ .long .LASF1099 # The macro: "__glibcxx_want_exchange_function"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xb4 # At line number 180
+ .long .LASF1100 # The macro: "__glibcxx_integer_sequence 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xba # At line number 186
+ .long .LASF1101 # The macro: "__glibcxx_want_integer_sequence"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xc4 # At line number 196
+ .long .LASF1103 # The macro: "__glibcxx_want_integral_constant_callable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xce # At line number 206
+ .long .LASF1105 # The macro: "__glibcxx_want_is_final"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xd2 # At line number 210
+ .long .LASF1106 # The macro: "__glibcxx_make_reverse_iterator 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xd8 # At line number 216
+ .long .LASF1107 # The macro: "__glibcxx_want_make_reverse_iterator"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xdc # At line number 220
+ .long .LASF1108 # The macro: "__glibcxx_null_iterators 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xe2 # At line number 226
+ .long .LASF1109 # The macro: "__glibcxx_want_null_iterators"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xec # At line number 236
+ .long .LASF1111 # The macro: "__glibcxx_want_transformation_trait_aliases"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf0 # At line number 240
+ .long .LASF1112 # The macro: "__glibcxx_transparent_operators 201510L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0xf2 # At line number 242
+ .long .LASF2119 # The macro: "__cpp_lib_transparent_operators 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0xf6 # At line number 246
+ .long .LASF1113 # The macro: "__glibcxx_want_transparent_operators"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x100 # At line number 256
+ .long .LASF1115 # The macro: "__glibcxx_want_tuple_element_t"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x10a # At line number 266
+ .long .LASF1117 # The macro: "__glibcxx_want_tuples_by_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x10e # At line number 270
+ .long .LASF1118 # The macro: "__glibcxx_robust_nonmodifying_seq_ops 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x114 # At line number 276
+ .long .LASF1119 # The macro: "__glibcxx_want_robust_nonmodifying_seq_ops"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x11d # At line number 285
+ .long .LASF1120 # The macro: "__glibcxx_to_chars 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x123 # At line number 291
+ .long .LASF1121 # The macro: "__glibcxx_want_to_chars"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x127 # At line number 295
+ .long .LASF1122 # The macro: "__glibcxx_chrono_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x12d # At line number 301
+ .long .LASF1123 # The macro: "__glibcxx_want_chrono_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x131 # At line number 305
+ .long .LASF1124 # The macro: "__glibcxx_complex_udls 201309L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x137 # At line number 311
+ .long .LASF1125 # The macro: "__glibcxx_want_complex_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x13b # At line number 315
+ .long .LASF1126 # The macro: "__glibcxx_generic_associative_lookup 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x141 # At line number 321
+ .long .LASF1127 # The macro: "__glibcxx_want_generic_associative_lookup"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x145 # At line number 325
+ .long .LASF1128 # The macro: "__glibcxx_make_unique 201304L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x147 # At line number 327
+ .long .LASF2120 # The macro: "__cpp_lib_make_unique 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x14b # At line number 331
+ .long .LASF1129 # The macro: "__glibcxx_want_make_unique"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x14f # At line number 335
+ .long .LASF1130 # The macro: "__glibcxx_quoted_string_io 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x155 # At line number 341
+ .long .LASF1131 # The macro: "__glibcxx_want_quoted_string_io"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x159 # At line number 345
+ .long .LASF1132 # The macro: "__glibcxx_shared_timed_mutex 201402L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x15f # At line number 351
+ .long .LASF1133 # The macro: "__glibcxx_want_shared_timed_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x163 # At line number 355
+ .long .LASF1134 # The macro: "__glibcxx_string_udls 201304L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x169 # At line number 361
+ .long .LASF1135 # The macro: "__glibcxx_want_string_udls"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x16d # At line number 365
+ .long .LASF1136 # The macro: "__glibcxx_addressof_constexpr 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x173 # At line number 371
+ .long .LASF1137 # The macro: "__glibcxx_want_addressof_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x177 # At line number 375
+ .long .LASF1138 # The macro: "__glibcxx_any 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x17d # At line number 381
+ .long .LASF1139 # The macro: "__glibcxx_want_any"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x187 # At line number 391
+ .long .LASF1141 # The macro: "__glibcxx_want_apply"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x18b # At line number 395
+ .long .LASF1142 # The macro: "__glibcxx_as_const 201510L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x191 # At line number 401
+ .long .LASF1143 # The macro: "__glibcxx_want_as_const"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x195 # At line number 405
+ .long .LASF1144 # The macro: "__glibcxx_atomic_is_always_lock_free 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x19b # At line number 411
+ .long .LASF1145 # The macro: "__glibcxx_want_atomic_is_always_lock_free"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1a5 # At line number 421
+ .long .LASF1147 # The macro: "__glibcxx_want_bool_constant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1a9 # At line number 425
+ .long .LASF1148 # The macro: "__glibcxx_byte 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1af # At line number 431
+ .long .LASF1149 # The macro: "__glibcxx_want_byte"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1b9 # At line number 441
+ .long .LASF1151 # The macro: "__glibcxx_want_has_unique_object_representations"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1c3 # At line number 451
+ .long .LASF1154 # The macro: "__glibcxx_want_hardware_interference_size"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x1c7 # At line number 455
+ .long .LASF1155 # The macro: "__glibcxx_invoke 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1cd # At line number 461
+ .long .LASF1156 # The macro: "__glibcxx_want_invoke"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1d7 # At line number 471
+ .long .LASF1158 # The macro: "__glibcxx_want_is_aggregate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1e1 # At line number 481
+ .long .LASF1160 # The macro: "__glibcxx_want_is_invocable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1eb # At line number 491
+ .long .LASF1163 # The macro: "__glibcxx_want_launder"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1f5 # At line number 501
+ .long .LASF1165 # The macro: "__glibcxx_want_logical_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x1ff # At line number 511
+ .long .LASF1167 # The macro: "__glibcxx_want_make_from_tuple"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x203 # At line number 515
+ .long .LASF1168 # The macro: "__glibcxx_not_fn 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x209 # At line number 521
+ .long .LASF1169 # The macro: "__glibcxx_want_not_fn"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x213 # At line number 531
+ .long .LASF1171 # The macro: "__glibcxx_want_type_trait_variable_templates"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x221 # At line number 545
+ .long .LASF1172 # The macro: "__glibcxx_variant 202102L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x227 # At line number 551
+ .long .LASF1173 # The macro: "__glibcxx_want_variant"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x22b # At line number 555
+ .long .LASF1174 # The macro: "__glibcxx_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x231 # At line number 561
+ .long .LASF1175 # The macro: "__glibcxx_want_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x235 # At line number 565
+ .long .LASF1176 # The macro: "__glibcxx_gcd 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x23b # At line number 571
+ .long .LASF1177 # The macro: "__glibcxx_want_gcd"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x23f # At line number 575
+ .long .LASF1178 # The macro: "__glibcxx_gcd_lcm 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x245 # At line number 581
+ .long .LASF1179 # The macro: "__glibcxx_want_gcd_lcm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x24e # At line number 590
+ .long .LASF1180 # The macro: "__glibcxx_raw_memory_algorithms 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x250 # At line number 592
+ .long .LASF2121 # The macro: "__cpp_lib_raw_memory_algorithms 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x254 # At line number 596
+ .long .LASF1181 # The macro: "__glibcxx_want_raw_memory_algorithms"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x25d # At line number 605
+ .long .LASF1182 # The macro: "__glibcxx_array_constexpr 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x263 # At line number 611
+ .long .LASF1183 # The macro: "__glibcxx_want_array_constexpr"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x267 # At line number 615
+ .long .LASF1184 # The macro: "__glibcxx_nonmember_container_access 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x26d # At line number 621
+ .long .LASF1185 # The macro: "__glibcxx_want_nonmember_container_access"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x271 # At line number 625
+ .long .LASF1186 # The macro: "__glibcxx_clamp 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x277 # At line number 631
+ .long .LASF1187 # The macro: "__glibcxx_want_clamp"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x27b # At line number 635
+ .long .LASF1188 # The macro: "__glibcxx_sample 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x281 # At line number 641
+ .long .LASF1189 # The macro: "__glibcxx_want_sample"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x285 # At line number 645
+ .long .LASF1190 # The macro: "__glibcxx_boyer_moore_searcher 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x28b # At line number 651
+ .long .LASF1191 # The macro: "__glibcxx_want_boyer_moore_searcher"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x294 # At line number 660
+ .long .LASF1192 # The macro: "__glibcxx_chrono 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x29a # At line number 666
+ .long .LASF1193 # The macro: "__glibcxx_want_chrono"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x29e # At line number 670
+ .long .LASF1194 # The macro: "__glibcxx_execution 201902L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2a4 # At line number 676
+ .long .LASF1195 # The macro: "__glibcxx_want_execution"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2a8 # At line number 680
+ .long .LASF1196 # The macro: "__glibcxx_filesystem 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ae # At line number 686
+ .long .LASF1197 # The macro: "__glibcxx_want_filesystem"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2b2 # At line number 690
+ .long .LASF1198 # The macro: "__glibcxx_hypot 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2b8 # At line number 696
+ .long .LASF1199 # The macro: "__glibcxx_want_hypot"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2bc # At line number 700
+ .long .LASF1200 # The macro: "__glibcxx_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2c2 # At line number 706
+ .long .LASF1201 # The macro: "__glibcxx_want_map_try_emplace"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2c6 # At line number 710
+ .long .LASF1202 # The macro: "__glibcxx_math_special_functions 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2cc # At line number 716
+ .long .LASF1203 # The macro: "__glibcxx_want_math_special_functions"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2d0 # At line number 720
+ .long .LASF1204 # The macro: "__glibcxx_memory_resource 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2db # At line number 731
+ .long .LASF1205 # The macro: "__glibcxx_want_memory_resource"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2df # At line number 735
+ .long .LASF1206 # The macro: "__glibcxx_node_extract 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2e5 # At line number 741
+ .long .LASF1207 # The macro: "__glibcxx_want_node_extract"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2e9 # At line number 745
+ .long .LASF1208 # The macro: "__glibcxx_parallel_algorithm 201603L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2eb # At line number 747
+ .long .LASF2122 # The macro: "__cpp_lib_parallel_algorithm 201603L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2ef # At line number 751
+ .long .LASF1209 # The macro: "__glibcxx_want_parallel_algorithm"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2f3 # At line number 755
+ .long .LASF1210 # The macro: "__glibcxx_scoped_lock 201703L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x2f9 # At line number 761
+ .long .LASF1211 # The macro: "__glibcxx_want_scoped_lock"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x2fd # At line number 765
+ .long .LASF1212 # The macro: "__glibcxx_shared_mutex 201505L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x303 # At line number 771
+ .long .LASF1213 # The macro: "__glibcxx_want_shared_mutex"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x307 # At line number 775
+ .long .LASF1214 # The macro: "__glibcxx_shared_ptr_weak_type 201606L"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x309 # At line number 777
+ .long .LASF2123 # The macro: "__cpp_lib_shared_ptr_weak_type 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x30d # At line number 781
+ .long .LASF1215 # The macro: "__glibcxx_want_shared_ptr_weak_type"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x316 # At line number 790
+ .long .LASF1216 # The macro: "__glibcxx_string_view 201803L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x31c # At line number 796
+ .long .LASF1217 # The macro: "__glibcxx_want_string_view"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x320 # At line number 800
+ .long .LASF1218 # The macro: "__glibcxx_unordered_map_try_emplace 201411L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x326 # At line number 806
+ .long .LASF1219 # The macro: "__glibcxx_want_unordered_map_try_emplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x330 # At line number 816
+ .long .LASF1220 # The macro: "__glibcxx_want_assume_aligned"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x33a # At line number 826
+ .long .LASF1221 # The macro: "__glibcxx_want_atomic_flag_test"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x344 # At line number 836
+ .long .LASF1222 # The macro: "__glibcxx_want_atomic_float"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x34e # At line number 846
+ .long .LASF1223 # The macro: "__glibcxx_want_atomic_lock_free_type_aliases"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x358 # At line number 856
+ .long .LASF1224 # The macro: "__glibcxx_want_atomic_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x362 # At line number 866
+ .long .LASF1225 # The macro: "__glibcxx_want_atomic_value_initialization"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x36c # At line number 876
+ .long .LASF1226 # The macro: "__glibcxx_want_bind_front"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x376 # At line number 886
+ .long .LASF1227 # The macro: "__glibcxx_want_bind_back"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x380 # At line number 896
+ .long .LASF1228 # The macro: "__glibcxx_want_starts_ends_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x38a # At line number 906
+ .long .LASF1229 # The macro: "__glibcxx_want_bit_cast"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x394 # At line number 916
+ .long .LASF1230 # The macro: "__glibcxx_want_bitops"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x39e # At line number 926
+ .long .LASF1231 # The macro: "__glibcxx_want_bounded_array_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3a8 # At line number 936
+ .long .LASF1232 # The macro: "__glibcxx_want_concepts"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x3b6 # At line number 950
+ .long .LASF1233 # The macro: "__glibcxx_optional 201606L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3bc # At line number 956
+ .long .LASF1234 # The macro: "__glibcxx_want_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3c6 # At line number 966
+ .long .LASF1235 # The macro: "__glibcxx_want_destroying_delete"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3d0 # At line number 976
+ .long .LASF1236 # The macro: "__glibcxx_want_constexpr_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3da # At line number 986
+ .long .LASF1237 # The macro: "__glibcxx_want_endian"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3e4 # At line number 996
+ .long .LASF1238 # The macro: "__glibcxx_want_int_pow2"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3ee # At line number 1006
+ .long .LASF1239 # The macro: "__glibcxx_want_integer_comparison_functions"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x3f8 # At line number 1016
+ .long .LASF1240 # The macro: "__glibcxx_want_is_constant_evaluated"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x401 # At line number 1025
+ .long .LASF1241 # The macro: "__glibcxx_constexpr_char_traits 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x407 # At line number 1031
+ .long .LASF1242 # The macro: "__glibcxx_want_constexpr_char_traits"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x411 # At line number 1041
+ .long .LASF1243 # The macro: "__glibcxx_want_is_layout_compatible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x41b # At line number 1051
+ .long .LASF1244 # The macro: "__glibcxx_want_is_nothrow_convertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x425 # At line number 1061
+ .long .LASF1245 # The macro: "__glibcxx_want_is_pointer_interconvertible"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x42f # At line number 1071
+ .long .LASF1246 # The macro: "__glibcxx_want_math_constants"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x439 # At line number 1081
+ .long .LASF1247 # The macro: "__glibcxx_want_make_obj_using_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x443 # At line number 1091
+ .long .LASF1248 # The macro: "__glibcxx_want_remove_cvref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x44d # At line number 1101
+ .long .LASF1249 # The macro: "__glibcxx_want_source_location"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x45c # At line number 1116
+ .long .LASF1250 # The macro: "__glibcxx_want_span"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x466 # At line number 1126
+ .long .LASF1251 # The macro: "__glibcxx_want_ssize"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x470 # At line number 1136
+ .long .LASF1252 # The macro: "__glibcxx_want_three_way_comparison"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x47a # At line number 1146
+ .long .LASF1253 # The macro: "__glibcxx_want_to_address"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x484 # At line number 1156
+ .long .LASF1254 # The macro: "__glibcxx_want_to_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x48e # At line number 1166
+ .long .LASF1255 # The macro: "__glibcxx_want_type_identity"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x498 # At line number 1176
+ .long .LASF1256 # The macro: "__glibcxx_want_unwrap_ref"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4a2 # At line number 1186
+ .long .LASF1257 # The macro: "__glibcxx_want_constexpr_iterator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4ac # At line number 1196
+ .long .LASF1258 # The macro: "__glibcxx_want_interpolate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4b6 # At line number 1206
+ .long .LASF1259 # The macro: "__glibcxx_want_constexpr_utility"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4c0 # At line number 1216
+ .long .LASF1260 # The macro: "__glibcxx_want_shift"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4d4 # At line number 1236
+ .long .LASF1261 # The macro: "__glibcxx_want_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4de # At line number 1246
+ .long .LASF1262 # The macro: "__glibcxx_want_constexpr_numeric"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4e8 # At line number 1256
+ .long .LASF1263 # The macro: "__glibcxx_want_constexpr_functional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x4f7 # At line number 1271
+ .long .LASF1264 # The macro: "__glibcxx_want_constexpr_algorithms"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x501 # At line number 1281
+ .long .LASF1265 # The macro: "__glibcxx_want_constexpr_tuple"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x510 # At line number 1296
+ .long .LASF1266 # The macro: "__glibcxx_want_constexpr_memory"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x51a # At line number 1306
+ .long .LASF1267 # The macro: "__glibcxx_want_atomic_shared_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x529 # At line number 1321
+ .long .LASF1268 # The macro: "__glibcxx_want_atomic_wait"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x533 # At line number 1331
+ .long .LASF1269 # The macro: "__glibcxx_want_barrier"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x542 # At line number 1346
+ .long .LASF1270 # The macro: "__glibcxx_want_format"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x54c # At line number 1356
+ .long .LASF1271 # The macro: "__glibcxx_want_format_uchar"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x556 # At line number 1366
+ .long .LASF1272 # The macro: "__glibcxx_want_constexpr_complex"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x560 # At line number 1376
+ .long .LASF1273 # The macro: "__glibcxx_want_constexpr_dynamic_alloc"
+ .byte 0x5 # Define macro strp
+ .uleb128 0x56e # At line number 1390
+ .long .LASF1274 # The macro: "__glibcxx_constexpr_string 201611L"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x574 # At line number 1396
+ .long .LASF1275 # The macro: "__glibcxx_want_constexpr_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x57e # At line number 1406
+ .long .LASF1276 # The macro: "__glibcxx_want_constexpr_vector"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x58d # At line number 1421
+ .long .LASF1277 # The macro: "__glibcxx_want_constrained_equality"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x597 # At line number 1431
+ .long .LASF1278 # The macro: "__glibcxx_want_erase_if"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5a1 # At line number 1441
+ .long .LASF1279 # The macro: "__glibcxx_want_generic_unordered_lookup"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5ab # At line number 1451
+ .long .LASF1280 # The macro: "__glibcxx_want_jthread"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5b5 # At line number 1461
+ .long .LASF1281 # The macro: "__glibcxx_want_latch"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5bf # At line number 1471
+ .long .LASF1282 # The macro: "__glibcxx_want_list_remove_return_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5c9 # At line number 1481
+ .long .LASF1283 # The macro: "__glibcxx_want_polymorphic_allocator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5d3 # At line number 1491
+ .long .LASF1284 # The macro: "__glibcxx_want_move_iterator_concept"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5dd # At line number 1501
+ .long .LASF1285 # The macro: "__glibcxx_want_semaphore"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5e7 # At line number 1511
+ .long .LASF1286 # The macro: "__glibcxx_want_smart_ptr_for_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5f1 # At line number 1521
+ .long .LASF1287 # The macro: "__glibcxx_want_syncbuf"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x5fb # At line number 1531
+ .long .LASF1288 # The macro: "__glibcxx_want_byteswap"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x605 # At line number 1541
+ .long .LASF1289 # The macro: "__glibcxx_want_constexpr_charconv"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x60f # At line number 1551
+ .long .LASF1290 # The macro: "__glibcxx_want_constexpr_typeinfo"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x619 # At line number 1561
+ .long .LASF1291 # The macro: "__glibcxx_want_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x622 # At line number 1570
+ .long .LASF1292 # The macro: "__glibcxx_want_format_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x62c # At line number 1580
+ .long .LASF1293 # The macro: "__glibcxx_want_freestanding_algorithm"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x636 # At line number 1590
+ .long .LASF1294 # The macro: "__glibcxx_want_freestanding_array"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x640 # At line number 1600
+ .long .LASF1295 # The macro: "__glibcxx_want_freestanding_cstring"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x64a # At line number 1610
+ .long .LASF1296 # The macro: "__glibcxx_want_freestanding_expected"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x654 # At line number 1620
+ .long .LASF1297 # The macro: "__glibcxx_want_freestanding_optional"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x65e # At line number 1630
+ .long .LASF1298 # The macro: "__glibcxx_want_freestanding_string_view"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x668 # At line number 1640
+ .long .LASF1299 # The macro: "__glibcxx_want_freestanding_variant"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x672 # At line number 1650
+ .long .LASF1300 # The macro: "__glibcxx_want_invoke_r"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x67c # At line number 1660
+ .long .LASF1301 # The macro: "__glibcxx_want_is_scoped_enum"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x686 # At line number 1670
+ .long .LASF1302 # The macro: "__glibcxx_want_reference_from_temporary"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x690 # At line number 1680
+ .long .LASF1303 # The macro: "__glibcxx_want_containers_ranges"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x69a # At line number 1690
+ .long .LASF1304 # The macro: "__glibcxx_want_ranges_to_container"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6a4 # At line number 1700
+ .long .LASF1305 # The macro: "__glibcxx_want_ranges_zip"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ae # At line number 1710
+ .long .LASF1306 # The macro: "__glibcxx_want_ranges_chunk"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6b8 # At line number 1720
+ .long .LASF1307 # The macro: "__glibcxx_want_ranges_slide"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6c2 # At line number 1730
+ .long .LASF1308 # The macro: "__glibcxx_want_ranges_chunk_by"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6cc # At line number 1740
+ .long .LASF1309 # The macro: "__glibcxx_want_ranges_join_with"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6d6 # At line number 1750
+ .long .LASF1310 # The macro: "__glibcxx_want_ranges_repeat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6e0 # At line number 1760
+ .long .LASF1311 # The macro: "__glibcxx_want_ranges_stride"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6ea # At line number 1770
+ .long .LASF1312 # The macro: "__glibcxx_want_ranges_cartesian_product"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6f4 # At line number 1780
+ .long .LASF1313 # The macro: "__glibcxx_want_ranges_as_rvalue"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x6fe # At line number 1790
+ .long .LASF1314 # The macro: "__glibcxx_want_ranges_as_const"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x708 # At line number 1800
+ .long .LASF1315 # The macro: "__glibcxx_want_ranges_enumerate"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x712 # At line number 1810
+ .long .LASF1316 # The macro: "__glibcxx_want_ranges_fold"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x71c # At line number 1820
+ .long .LASF1317 # The macro: "__glibcxx_want_ranges_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x726 # At line number 1830
+ .long .LASF1318 # The macro: "__glibcxx_want_ranges_iota"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x730 # At line number 1840
+ .long .LASF1319 # The macro: "__glibcxx_want_ranges_find_last"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x73a # At line number 1850
+ .long .LASF1320 # The macro: "__glibcxx_want_constexpr_bitset"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x744 # At line number 1860
+ .long .LASF1321 # The macro: "__glibcxx_want_stdatomic_h"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x74e # At line number 1870
+ .long .LASF1322 # The macro: "__glibcxx_want_adaptor_iterator_pair_constructor"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x758 # At line number 1880
+ .long .LASF1323 # The macro: "__glibcxx_want_flat_map"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x762 # At line number 1890
+ .long .LASF1324 # The macro: "__glibcxx_want_flat_set"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x76c # At line number 1900
+ .long .LASF1325 # The macro: "__glibcxx_want_formatters"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x776 # At line number 1910
+ .long .LASF1326 # The macro: "__glibcxx_want_forward_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x780 # At line number 1920
+ .long .LASF1327 # The macro: "__glibcxx_want_generator"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x78a # At line number 1930
+ .long .LASF1328 # The macro: "__glibcxx_want_ios_noreplace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x794 # At line number 1940
+ .long .LASF1329 # The macro: "__glibcxx_want_move_only_function"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x79e # At line number 1950
+ .long .LASF1330 # The macro: "__glibcxx_want_out_ptr"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7a8 # At line number 1960
+ .long .LASF1331 # The macro: "__glibcxx_want_print"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7b2 # At line number 1970
+ .long .LASF1332 # The macro: "__glibcxx_want_spanstream"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7bc # At line number 1980
+ .long .LASF1333 # The macro: "__glibcxx_want_stacktrace"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7c6 # At line number 1990
+ .long .LASF1334 # The macro: "__glibcxx_want_string_contains"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7d0 # At line number 2000
+ .long .LASF1335 # The macro: "__glibcxx_want_string_resize_and_overwrite"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7da # At line number 2010
+ .long .LASF1336 # The macro: "__glibcxx_want_to_underlying"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7e9 # At line number 2025
+ .long .LASF1337 # The macro: "__glibcxx_want_tuple_like"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7f3 # At line number 2035
+ .long .LASF1338 # The macro: "__glibcxx_want_unreachable"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x7fd # At line number 2045
+ .long .LASF1339 # The macro: "__glibcxx_want_algorithm_default_value_type"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x807 # At line number 2055
+ .long .LASF1340 # The macro: "__glibcxx_want_constexpr_new"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x811 # At line number 2065
+ .long .LASF1341 # The macro: "__glibcxx_want_fstream_native_handle"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x81b # At line number 2075
+ .long .LASF1342 # The macro: "__glibcxx_want_is_virtual_base_of"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x825 # At line number 2085
+ .long .LASF1343 # The macro: "__glibcxx_want_ranges_cache_latest"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x82f # At line number 2095
+ .long .LASF1344 # The macro: "__glibcxx_want_ranges_concat"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x839 # At line number 2105
+ .long .LASF1345 # The macro: "__glibcxx_want_ratio"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x843 # At line number 2115
+ .long .LASF1346 # The macro: "__glibcxx_want_reference_wrapper"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x84d # At line number 2125
+ .long .LASF1347 # The macro: "__glibcxx_want_saturation_arithmetic"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x857 # At line number 2135
+ .long .LASF1348 # The macro: "__glibcxx_want_span_initializer_list"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x861 # At line number 2145
+ .long .LASF1349 # The macro: "__glibcxx_want_text_encoding"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x86b # At line number 2155
+ .long .LASF1350 # The macro: "__glibcxx_want_ranges_to_input"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x875 # At line number 2165
+ .long .LASF1351 # The macro: "__glibcxx_want_to_string"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x87f # At line number 2175
+ .long .LASF1352 # The macro: "__glibcxx_want_modules"
+ .byte 0x6 # Undefine macro strp
+ .uleb128 0x881 # At line number 2177
+ .long .LASF1353 # The macro: "__glibcxx_want_all"
+ .byte 0 # End compilation unit
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF1828:
+ .string "__ASM_GENERIC_POSIX_TYPES_H "
+.LASF804:
+ .string "_PSTL_CPP14_VARIABLE_TEMPLATES_PRESENT "
+.LASF2288:
+ .string "_ZSt3getILm1EJP4BaseSt14default_deleteIS0_EEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS8_"
+.LASF1871:
+ .string "__CPU_SET_S(cpu,setsize,cpusetp) (__extension__ ({ size_t __cpu = (cpu); __cpu / 8 < (setsize) ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] |= __CPUMASK (__cpu)) : 0; }))"
+.LASF1674:
+ .string "wcspbrk"
+.LASF1392:
+ .string "__cpp_lib_is_final 201402L"
+.LASF361:
+ .string "__FLT64X_HAS_QUIET_NAN__ 1"
+.LASF1326:
+ .string "__glibcxx_want_forward_like"
+.LASF1845:
+ .string "CLONE_VFORK 0x00004000"
+.LASF1051:
+ .string "_GLIBCXX_USE_REALPATH 1"
+.LASF1952:
+ .string "STA_FREQHOLD 0x0080"
+.LASF131:
+ .string "__cpp_aligned_new 201606L"
+.LASF554:
+ .string "_GLIBCXX_USE_ALLOCATOR_NEW 1"
+.LASF1978:
+ .string "__SIZEOF_PTHREAD_CONDATTR_T 4"
+.LASF871:
+ .string "_GLIBCXX_HAVE_ISINFF 1"
+.LASF2106:
+ .string "__glibcxx_want_make_unique "
+.LASF646:
+ .string "__GLIBC_USE_DEPRECATED_SCANF 0"
+.LASF1625:
+ .string "_WINT_T 1"
+.LASF1350:
+ .string "__glibcxx_want_ranges_to_input"
+.LASF1502:
+ .string "_GLIBCXX_INVOKE_H 1"
+.LASF1707:
+ .string "_ALIGNED_BUFFER_H 1"
+.LASF1285:
+ .string "__glibcxx_want_semaphore"
+.LASF284:
+ .string "__FLT32_DIG__ 6"
+.LASF1000:
+ .string "_GLIBCXX_FULLY_DYNAMIC_STRING 0"
+.LASF1120:
+ .string "__glibcxx_to_chars 201611L"
+.LASF510:
+ .string "_GLIBCXX17_INLINE inline"
+.LASF1806:
+ .string "SCHED_FLAG_UTIL_CLAMP (SCHED_FLAG_UTIL_CLAMP_MIN | SCHED_FLAG_UTIL_CLAMP_MAX)"
+.LASF655:
+ .string "__glibc_has_attribute(attr) __has_attribute (attr)"
+.LASF1785:
+ .string "__LONG_LONG_PAIR(HI,LO) LO, HI"
+.LASF2074:
+ .string "_GLIBCXX_ATOMIC_BASE_H 1"
+.LASF616:
+ .string "_DYNAMIC_STACK_SIZE_SOURCE 1"
+.LASF1796:
+ .string "SCHED_EXT 7"
+.LASF790:
+ .string "_PSTL_HIDE_FROM_ABI_PUSH "
+.LASF1748:
+ .string "__BLKCNT64_T_TYPE __SQUAD_TYPE"
+.LASF1271:
+ .string "__glibcxx_want_format_uchar"
+.LASF684:
+ .string "__ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname)"
+.LASF622:
+ .string "__USE_ISOCXX11 1"
+.LASF299:
+ .string "__FLT64_MANT_DIG__ 53"
+.LASF900:
+ .string "_GLIBCXX_HAVE_MODFF 1"
+.LASF1196:
+ .string "__glibcxx_filesystem 201703L"
+.LASF2338:
+ .string "tm_sec"
+.LASF223:
+ .string "__FLT_MAX_10_EXP__ 38"
+.LASF166:
+ .string "__SIG_ATOMIC_MAX__ 0x7fffffff"
+.LASF1880:
+ .string "sched_priority sched_priority"
+.LASF1286:
+ .string "__glibcxx_want_smart_ptr_for_overwrite"
+.LASF755:
+ .string "_GLIBCXX_WEAK_DEFINITION "
+.LASF797:
+ .string "_PSTL_PRAGMA_SIMD_SCAN(PRM) _PSTL_PRAGMA(omp simd reduction(inscan, PRM))"
+.LASF640:
+ .string "__USE_MISC 1"
+.LASF782:
+ .string "_PSTL_VERSION_MAJOR (_PSTL_VERSION / 1000)"
+.LASF2369:
+ .string "_Dummy"
+.LASF1340:
+ .string "__glibcxx_want_constexpr_new"
+.LASF1642:
+ .string "fwide"
+.LASF535:
+ .string "_GLIBCXX_BEGIN_NAMESPACE_ALGO "
+.LASF67:
+ .string "__UINT_LEAST32_TYPE__ unsigned int"
+.LASF188:
+ .string "__INT_LEAST64_WIDTH__ 64"
+.LASF1786:
+ .string "__pid_t_defined "
+.LASF2183:
+ .string "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE7releaseEv"
+.LASF1778:
+ .string "_BITS_ENDIAN_H 1"
+.LASF2266:
+ .string "_ZNKSt10unique_ptrI4BaseSt14default_deleteIS0_EEcvbEv"
+.LASF1349:
+ .string "__glibcxx_want_text_encoding"
+.LASF1234:
+ .string "__glibcxx_want_optional"
+.LASF788:
+ .string "_PSTL_STRING(x) _PSTL_STRING_AUX(x)"
+.LASF710:
+ .string "__fortify_function __extern_always_inline __attribute_artificial__"
+.LASF387:
+ .string "__DEC64_MIN_EXP__ (-382)"
+.LASF909:
+ .string "_GLIBCXX_HAVE_POSIX_MEMALIGN 1"
+.LASF651:
+ .string "__GLIBC_MINOR__ 41"
+.LASF1885:
+ .string "CPU_ISSET(cpu,cpusetp) __CPU_ISSET_S (cpu, sizeof (cpu_set_t), cpusetp)"
+.LASF441:
+ .string "__ATOMIC_HLE_RELEASE 131072"
+.LASF1807:
+ .string "sched_param __glibc_mask_sched_param"
+.LASF148:
+ .string "__PTRDIFF_MAX__ 0x7fffffffffffffffL"
+.LASF1635:
+ .string "WEOF (0xffffffffu)"
+.LASF1621:
+ .string "_BITS_WCHAR_H 1"
+.LASF1399:
+ .string "__cpp_lib_type_trait_variable_templates 201510L"
+.LASF46:
+ .string "__WCHAR_TYPE__ int"
+.LASF856:
+ .string "_GLIBCXX_HAVE_FLOAT_H 1"
+.LASF1381:
+ .string "__glibcxx_want_result_of_sfinae "
+.LASF2210:
+ .string "_ZNSt10_Head_baseILm0EP4BaseLb0EEC4Ev"
+.LASF1402:
+ .string "_GLIBCXX_MOVE(__val) std::move(__val)"
+.LASF2:
+ .string "__STDC__ 1"
+.LASF358:
+ .string "__FLT64X_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951F64x"
+.LASF2026:
+ .string "__GTHREAD_ALWAYS_INLINE __attribute__((__always_inline__))"
+.LASF1064:
+ .string "_GLIBCXX_X86_RDRAND 1"
+.LASF1193:
+ .string "__glibcxx_want_chrono"
+.LASF721:
+ .string "__LDBL_REDIR(name,proto) name proto"
+.LASF1701:
+ .string "_ALLOCATED_PTR_H 1"
+.LASF1808:
+ .string "_LINUX_SCHED_TYPES_H "
+.LASF2081:
+ .string "ATOMIC_SHORT_LOCK_FREE __GCC_ATOMIC_SHORT_LOCK_FREE"
+.LASF206:
+ .string "__UINT_FAST16_MAX__ 0xffffffffffffffffUL"
+.LASF394:
+ .string "__DEC128_MIN_EXP__ (-6142)"
+.LASF1190:
+ .string "__glibcxx_boyer_moore_searcher 201603L"
+.LASF1033:
+ .string "_GLIBCXX_USE_FCHMODAT 1"
+.LASF2313:
+ .string "__ops"
+.LASF1404:
+ .string "_GLIBCXX_OPERATOR_NEW __builtin_operator_new"
+.LASF1420:
+ .string "__glibcxx_class_requires2(_a,_b,_c) "
+.LASF659:
+ .string "__LEAF_ATTR __attribute__ ((__leaf__))"
+.LASF326:
+ .string "__FLT128_DENORM_MIN__ 6.47517511943802511092443895822764655e-4966F128"
+.LASF1813:
+ .string "__BITS_PER_LONG 64"
+.LASF1096:
+ .string "__glibcxx_want_math_spec_funcs"
+.LASF239:
+ .string "__DBL_MAX_10_EXP__ 308"
+.LASF703:
+ .string "__attribute_warn_unused_result__ __attribute__ ((__warn_unused_result__))"
+.LASF729:
+ .string "__glibc_macro_warning(message) __glibc_macro_warning1 (GCC warning message)"
+.LASF1209:
+ .string "__glibcxx_want_parallel_algorithm"
+.LASF970:
+ .string "_GLIBCXX_HAVE_VFWSCANF 1"
+.LASF1324:
+ .string "__glibcxx_want_flat_set"
+.LASF528:
+ .string "_GLIBCXX_END_NAMESPACE_VERSION "
+.LASF1846:
+ .string "CLONE_PARENT 0x00008000"
+.LASF2252:
+ .string "~unique_ptr"
+.LASF1425:
+ .string "__glibcxx_requires_subscript(_N) __glibcxx_assert(_N < this->size())"
+.LASF2199:
+ .string "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEE7_M_headERS3_"
+.LASF1044:
+ .string "_GLIBCXX_USE_NLS 1"
+.LASF462:
+ .string "__ELF__ 1"
+.LASF1309:
+ .string "__glibcxx_want_ranges_join_with"
+.LASF810:
+ .string "_PSTL_PRAGMA_DECLARE_REDUCTION(NAME,OP) _PSTL_PRAGMA(omp declare reduction(NAME:OP : omp_out(omp_in)) initializer(omp_priv = omp_orig))"
+.LASF1986:
+ .string "__PTHREAD_MUTEX_INITIALIZER(__kind) 0, 0, 0, 0, __kind, 0, 0, { NULL, NULL }"
+.LASF924:
+ .string "_GLIBCXX_HAVE_SOCKATMARK 1"
+.LASF1431:
+ .string "_GLIBCXX_UTILITY_H 1"
+.LASF578:
+ .string "__USE_DYNAMIC_STACK_SIZE"
+.LASF1106:
+ .string "__glibcxx_make_reverse_iterator 201402L"
+.LASF2046:
+ .string "__glibcxx_want_uncaught_exceptions "
+.LASF617:
+ .string "__GLIBC_USE_ISOC2Y 1"
+.LASF876:
+ .string "_GLIBCXX_HAVE_LC_MESSAGES 1"
+.LASF2299:
+ .string "short unsigned int"
+.LASF2357:
+ .string "operator new"
+.LASF1494:
+ .string "_GLIBCXX_MOVE_BACKWARD3(_Tp,_Up,_Vp) std::move_backward(_Tp, _Up, _Vp)"
+.LASF1817:
+ .string "_LINUX_STDDEF_H "
+.LASF1247:
+ .string "__glibcxx_want_make_obj_using_allocator"
+.LASF2178:
+ .string "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE10_M_deleterEv"
+.LASF845:
+ .string "_GLIBCXX_HAVE_EXECINFO_H 1"
+.LASF2078:
+ .string "ATOMIC_WCHAR_T_LOCK_FREE __GCC_ATOMIC_WCHAR_T_LOCK_FREE"
+.LASF2107:
+ .string "__glibcxx_want_out_ptr "
+.LASF1087:
+ .string "__glibcxx_shared_ptr_arrays 201611L"
+.LASF2110:
+ .string "__glibcxx_want_raw_memory_algorithms "
+.LASF505:
+ .string "_GLIBCXX14_CONSTEXPR constexpr"
+.LASF1459:
+ .string "__glibcxx_requires_cond(_Cond,_Msg) "
+.LASF1618:
+ .string "__need___va_list"
+.LASF2092:
+ .string "_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED(X) "
+.LASF555:
+ .string "_GLIBCXX_OS_DEFINES 1"
+.LASF2335:
+ .string "__isoc23_vfwscanf"
+.LASF83:
+ .string "__GXX_EXPERIMENTAL_CXX0X__ 1"
+.LASF100:
+ .string "__cpp_inheriting_constructors 201511L"
+.LASF1672:
+ .string "wcsncmp"
+.LASF753:
+ .string "_GLIBCXX_CPU_DEFINES 1"
+.LASF1253:
+ .string "__glibcxx_want_to_address"
+.LASF434:
+ .string "__amd64 1"
+.LASF151:
+ .string "__SHRT_WIDTH__ 16"
+.LASF917:
+ .string "_GLIBCXX_HAVE_SINCOS 1"
+.LASF1455:
+ .string "_STL_ITERATOR_H 1"
+.LASF1562:
+ .string "__HAVE_DISTINCT_FLOAT64X 0"
+.LASF958:
+ .string "_GLIBCXX_HAVE_TANHF 1"
+.LASF844:
+ .string "_GLIBCXX_HAVE_EXCEPTION_PTR_SINCE_GCC46 1"
+.LASF247:
+ .string "__DBL_HAS_INFINITY__ 1"
+.LASF1526:
+ .string "_GLIBCXX_POSTYPES_H 1"
+.LASF1417:
+ .string "_CONCEPT_CHECK_H 1"
+.LASF1449:
+ .string "__glibcxx_digits10"
+.LASF2158:
+ .string "_ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv"
+.LASF1504:
+ .string "__glibcxx_want_tuple_element_t "
+.LASF843:
+ .string "_GLIBCXX_HAVE_ENDIAN_H 1"
+.LASF231:
+ .string "__FLT_HAS_INFINITY__ 1"
+.LASF1080:
+ .string "__glibcxx_want_uncaught_exceptions"
+.LASF318:
+ .string "__FLT128_MIN_10_EXP__ (-4931)"
+.LASF2384:
+ .string "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEE31__nothrow_default_constructibleEv"
+.LASF1450:
+ .string "__glibcxx_max_exponent10"
+.LASF145:
+ .string "__WCHAR_MIN__ (-__WCHAR_MAX__ - 1)"
+.LASF458:
+ .string "linux 1"
+.LASF1138:
+ .string "__glibcxx_any 201606L"
+.LASF760:
+ .string "_GLIBCXX_FAST_MATH 0"
+.LASF1772:
+ .string "__FD_SETSIZE 1024"
+.LASF376:
+ .string "__BFLT16_HAS_INFINITY__ 1"
+.LASF841:
+ .string "_GLIBCXX_HAVE_DIRFD 1"
+.LASF905:
+ .string "_GLIBCXX_HAVE_OPENAT 1"
+.LASF1870:
+ .string "__CPU_ZERO_S(setsize,cpusetp) do __builtin_memset (cpusetp, '\\0', setsize); while (0)"
+.LASF2323:
+ .string "overflow_arg_area"
+.LASF846:
+ .string "_GLIBCXX_HAVE_EXPF 1"
+.LASF132:
+ .string "__STDCPP_DEFAULT_NEW_ALIGNMENT__ 16"
+.LASF1713:
+ .string "_PTHREAD_H 1"
+.LASF910:
+ .string "_GLIBCXX_HAVE_POSIX_SEMAPHORE 1"
+.LASF764:
+ .string "_GLIBCXX_USE_C99_STDIO _GLIBCXX11_USE_C99_STDIO"
+.LASF1085:
+ .string "__glibcxx_result_of_sfinae 201210L"
+.LASF374:
+ .string "__BFLT16_DENORM_MIN__ 9.18354961579912115600575419704879436e-41BF16"
+.LASF1587:
+ .string "_SIZE_T_DEFINED "
+.LASF2285:
+ .string "_ZSt12__get_helperILm1ESt14default_deleteI4BaseEJEERT0_RSt11_Tuple_implIXT_EJS3_DpT1_EE"
+.LASF2324:
+ .string "reg_save_area"
+.LASF971:
+ .string "_GLIBCXX_HAVE_VSWSCANF 1"
+.LASF2202:
+ .string "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEC4Ev"
+.LASF480:
+ .string "__GLIBCXX__ 20250425"
+.LASF761:
+ .string "__N(msgid) (msgid)"
+.LASF2054:
+ .string "_T_PTRDIFF_ "
+.LASF1331:
+ .string "__glibcxx_want_print"
+.LASF541:
+ .string "_GLIBCXX_BEGIN_NAMESPACE_LDBL "
+.LASF1530:
+ .string "__GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION"
+.LASF1719:
+ .string "__U32_TYPE unsigned int"
+.LASF1453:
+ .string "_PTR_TRAITS_H 1"
+.LASF2025:
+ .string "pthread_cleanup_pop_restore_np(execute) __clframe.__restore (); __clframe.__setdoit (execute); } while (0)"
+.LASF2123:
+ .string "__cpp_lib_shared_ptr_weak_type 201606L"
+.LASF1734:
+ .string "__DEV_T_TYPE __UQUAD_TYPE"
+.LASF365:
+ .string "__BFLT16_MIN_EXP__ (-125)"
+.LASF182:
+ .string "__INT_LEAST16_WIDTH__ 16"
+.LASF1071:
+ .string "_NEW "
+.LASF1550:
+ .string "__f128(x) x ##f128"
+.LASF1490:
+ .string "_GLIBCXX_ADVANCE(P,N) P += N"
+.LASF1536:
+ .string "__GLIBC_USE_IEC_60559_BFP_EXT_C23 1"
+.LASF1984:
+ .string "_THREAD_MUTEX_INTERNAL_H 1"
+.LASF576:
+ .string "__USE_MISC"
+.LASF208:
+ .string "__UINT_FAST64_MAX__ 0xffffffffffffffffUL"
+.LASF279:
+ .string "__FLT16_HAS_DENORM__ 1"
+.LASF1046:
+ .string "_GLIBCXX_USE_PTHREAD_COND_CLOCKWAIT 1"
+.LASF1101:
+ .string "__glibcxx_want_integer_sequence"
+.LASF494:
+ .string "_GLIBCXX17_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)"
+.LASF2227:
+ .string "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEaSERKS3_"
+.LASF393:
+ .string "__DEC128_MANT_DIG__ 34"
+.LASF140:
+ .string "__SHRT_MAX__ 0x7fff"
+.LASF944:
+ .string "_GLIBCXX_HAVE_SYS_MMAN_H 1"
+.LASF1343:
+ .string "__glibcxx_want_ranges_cache_latest"
+.LASF950:
+ .string "_GLIBCXX_HAVE_SYS_STATVFS_H 1"
+.LASF1211:
+ .string "__glibcxx_want_scoped_lock"
+.LASF294:
+ .string "__FLT32_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F32"
+.LASF1220:
+ .string "__glibcxx_want_assume_aligned"
+.LASF1693:
+ .string "wcstold"
+.LASF180:
+ .string "__INT_LEAST16_MAX__ 0x7fff"
+.LASF1752:
+ .string "__FSFILCNT64_T_TYPE __UQUAD_TYPE"
+.LASF1864:
+ .string "_BITS_TYPES_STRUCT_SCHED_PARAM 1"
+.LASF567:
+ .string "__USE_XOPEN_EXTENDED"
+.LASF2352:
+ .string "__isoc23_wcstoll"
+.LASF1694:
+ .string "wcstoll"
+.LASF549:
+ .string "__glibcxx_assert(cond) do { if (std::__is_constant_evaluated() && !bool(cond)) std::__glibcxx_assert_fail(); } while (false)"
+.LASF1393:
+ .string "__cpp_lib_transformation_trait_aliases 201304L"
+.LASF1505:
+ .string "__glibcxx_want_tuples_by_type "
+.LASF722:
+ .string "__LDBL_REDIR1_NTH(name,proto,alias) name proto __THROW"
+.LASF1739:
+ .string "__MODE_T_TYPE __U32_TYPE"
+.LASF2254:
+ .string "operator bool"
+.LASF1799:
+ .string "SCHED_FLAG_RECLAIM 0x02"
+.LASF1569:
+ .string "__f64x(x) x ##f64x"
+.LASF64:
+ .string "__INT_LEAST64_TYPE__ long int"
+.LASF171:
+ .string "__INT32_MAX__ 0x7fffffff"
+.LASF324:
+ .string "__FLT128_MIN__ 3.36210314311209350626267781732175260e-4932F128"
+.LASF2165:
+ .string "_ZNKSt14default_deleteI4BaseEclEPS0_"
+.LASF1704:
+ .string "_GLIBCXX_MEM_FN_TRAITS(_REF,_LVAL,_RVAL) _GLIBCXX_MEM_FN_TRAITS2( , _REF, _LVAL, _RVAL) _GLIBCXX_MEM_FN_TRAITS2(const , _REF, _LVAL, _RVAL) _GLIBCXX_MEM_FN_TRAITS2(volatile , _REF, _LVAL, _RVAL) _GLIBCXX_MEM_FN_TRAITS2(const volatile, _REF, _LVAL, _RVAL)"
+.LASF1896:
+ .string "CPU_OR(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, |)"
+.LASF540:
+ .string "_GLIBCXX_NAMESPACE_LDBL "
+.LASF1284:
+ .string "__glibcxx_want_move_iterator_concept"
+.LASF415:
+ .string "__GCC_ATOMIC_CHAR_LOCK_FREE 2"
+.LASF1109:
+ .string "__glibcxx_want_null_iterators"
+.LASF1175:
+ .string "__glibcxx_want_lcm"
+.LASF2135:
+ .string "_M_a"
+.LASF668:
+ .string "__STRING(x) #x"
+.LASF75:
+ .string "__UINT_FAST32_TYPE__ long unsigned int"
+.LASF867:
+ .string "_GLIBCXX_HAVE_HYPOTF 1"
+.LASF1768:
+ .string "__INO_T_MATCHES_INO64_T 1"
+.LASF25:
+ .string "__SIZEOF_INT__ 4"
+.LASF680:
+ .string "__glibc_c99_flexarr_available 1"
+.LASF851:
+ .string "_GLIBCXX_HAVE_FDOPENDIR 1"
+.LASF1133:
+ .string "__glibcxx_want_shared_timed_mutex"
+.LASF336:
+ .string "__FLT32X_MAX_10_EXP__ 308"
+.LASF1317:
+ .string "__glibcxx_want_ranges_contains"
+.LASF939:
+ .string "_GLIBCXX_HAVE_STRXFRM_L 1"
+.LASF2185:
+ .string "_M_t"
+.LASF1628:
+ .string "____FILE_defined 1"
+.LASF1673:
+ .string "wcsncpy"
+.LASF878:
+ .string "_GLIBCXX_HAVE_LDEXPL 1"
+.LASF985:
+ .string "_GLIBCXX_PACKAGE__GLIBCXX_VERSION \"version-unused\""
+.LASF52:
+ .string "__SIG_ATOMIC_TYPE__ int"
+.LASF1588:
+ .string "_BSD_SIZE_T_DEFINED_ "
+.LASF34:
+ .string "__BIGGEST_ALIGNMENT__ 16"
+.LASF925:
+ .string "_GLIBCXX_HAVE_SQRTF 1"
+.LASF275:
+ .string "__FLT16_NORM_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF200:
+ .string "__INT_FAST16_WIDTH__ 64"
+.LASF370:
+ .string "__BFLT16_MAX__ 3.38953138925153547590470800371487867e+38BF16"
+.LASF1217:
+ .string "__glibcxx_want_string_view"
+.LASF1305:
+ .string "__glibcxx_want_ranges_zip"
+.LASF836:
+ .string "_GLIBCXX_HAVE_COSHF 1"
+.LASF192:
+ .string "__UINT16_C(c) c"
+.LASF1072:
+ .string "__EXCEPTION_H 1"
+.LASF429:
+ .string "__PRAGMA_REDEFINE_EXTNAME 1"
+.LASF1999:
+ .string "PTHREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED"
+.LASF2031:
+ .string "__GTHREAD_ONCE_INIT PTHREAD_ONCE_INIT"
+.LASF1547:
+ .string "__HAVE_DISTINCT_FLOAT128 1"
+.LASF74:
+ .string "__UINT_FAST16_TYPE__ long unsigned int"
+.LASF1210:
+ .string "__glibcxx_scoped_lock 201703L"
+.LASF1900:
+ .string "CPU_XOR_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, ^)"
+.LASF820:
+ .string "_GLIBCXX_HAVE_ARC4RANDOM 1"
+.LASF1759:
+ .string "__DADDR_T_TYPE __S32_TYPE"
+.LASF122:
+ .string "__cpp_aggregate_bases 201603L"
+.LASF2128:
+ .string "__debug"
+.LASF1454:
+ .string "_STL_ALGOBASE_H 1"
+.LASF893:
+ .string "_GLIBCXX_HAVE_LOGF 1"
+.LASF519:
+ .string "_GLIBCXX_EXTERN_TEMPLATE 1"
+.LASF1595:
+ .string "__need_size_t"
+.LASF2280:
+ .string "_Types"
+.LASF1607:
+ .string "___int_wchar_t_h "
+.LASF427:
+ .string "__HAVE_SPECULATION_SAFE_VALUE 1"
+.LASF891:
+ .string "_GLIBCXX_HAVE_LOG10F 1"
+.LASF1337:
+ .string "__glibcxx_want_tuple_like"
+.LASF558:
+ .string "__USE_ISOC11"
+.LASF779:
+ .string "_PSTL_ASSERT_MSG(_Condition,_Message) __glibcxx_assert(_Condition)"
+.LASF2277:
+ .string "__single_object"
+.LASF532:
+ .string "_GLIBCXX_BEGIN_NAMESPACE_CONTAINER "
+.LASF1203:
+ .string "__glibcxx_want_math_special_functions"
+.LASF2005:
+ .string "PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP { { __PTHREAD_RWLOCK_INITIALIZER (PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP) } }"
+.LASF1555:
+ .string "__HAVE_FLOAT64 1"
+.LASF1409:
+ .string "_GLIBCXX_OPERATOR_NEW"
+.LASF78:
+ .string "__UINTPTR_TYPE__ long unsigned int"
+.LASF2023:
+ .string "pthread_cleanup_pop(execute) __clframe.__setdoit (execute); } while (0)"
+.LASF1153:
+ .string "__cpp_lib_hardware_interference_size 201703L"
+.LASF1090:
+ .string "__glibcxx_want_is_swappable"
+.LASF732:
+ .string "__fortified_attr_access(a,o,s) __attr_access ((a, o, s))"
+.LASF149:
+ .string "__SIZE_MAX__ 0xffffffffffffffffUL"
+.LASF112:
+ .string "__cpp_namespace_attributes 201411L"
+.LASF1661:
+ .string "vwscanf"
+.LASF705:
+ .string "__always_inline"
+.LASF2001:
+ .string "PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_RECURSIVE_NP) } }"
+.LASF57:
+ .string "__UINT8_TYPE__ unsigned char"
+.LASF1553:
+ .string "__HAVE_FLOAT16 0"
+.LASF767:
+ .string "_GLIBCXX_USE_FLOAT128 1"
+.LASF1020:
+ .string "_GLIBCXX_USE_C99_INTTYPES_WCHAR_T 1"
+.LASF2221:
+ .string "_M_tail"
+.LASF637:
+ .string "__USE_LARGEFILE64 1"
+.LASF1923:
+ .string "ADJ_MAXERROR 0x0004"
+.LASF286:
+ .string "__FLT32_MIN_10_EXP__ (-37)"
+.LASF1376:
+ .string "__glibcxx_want_is_swappable "
+.LASF1936:
+ .string "MOD_MAXERROR ADJ_MAXERROR"
+.LASF672:
+ .string "__attribute_overloadable__ "
+.LASF317:
+ .string "__FLT128_MIN_EXP__ (-16381)"
+.LASF2387:
+ .string "_ZSt11make_uniqueI4BaseJEENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_"
+.LASF1018:
+ .string "_GLIBCXX_USE_C99_INTTYPES 1"
+.LASF1996:
+ .string "__SC_THREAD_STACK_MIN_VALUE 75"
+.LASF2088:
+ .string "ATOMIC_VAR_INIT(_VI) { _VI }"
+.LASF1622:
+ .string "__WCHAR_MAX __WCHAR_MAX__"
+.LASF1815:
+ .string "__BITS_PER_LONG_LONG 64"
+.LASF257:
+ .string "__LDBL_DECIMAL_DIG__ 21"
+.LASF77:
+ .string "__INTPTR_TYPE__ long int"
+.LASF1726:
+ .string "__SLONG32_TYPE int"
+.LASF1698:
+ .string "__glibcxx_want_constexpr_typeinfo "
+.LASF1169:
+ .string "__glibcxx_want_not_fn"
+.LASF514:
+ .string "_GLIBCXX_THROW(_EXC) "
+.LASF1711:
+ .string "__GTHREADS 1"
+.LASF1041:
+ .string "_GLIBCXX_USE_LSTAT 1"
+.LASF513:
+ .string "_GLIBCXX_USE_NOEXCEPT noexcept"
+.LASF197:
+ .string "__INT_FAST8_MAX__ 0x7f"
+.LASF1716:
+ .string "__S16_TYPE short int"
+.LASF2255:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEaSEDn"
+.LASF58:
+ .string "__UINT16_TYPE__ short unsigned int"
+.LASF2278:
+ .string "__unique_ptr_t"
+.LASF1257:
+ .string "__glibcxx_want_constexpr_iterator"
+.LASF401:
+ .string "__DEC64X_MIN_EXP__ (-6142)"
+.LASF2187:
+ .string "_Head_base"
+.LASF1276:
+ .string "__glibcxx_want_constexpr_vector"
+.LASF1483:
+ .string "__glibcxx_want_concepts "
+.LASF907:
+ .string "_GLIBCXX_HAVE_POLL 1"
+.LASF1104:
+ .string "__glibcxx_is_final 201402L"
+.LASF1214:
+ .string "__glibcxx_shared_ptr_weak_type 201606L"
+.LASF948:
+ .string "_GLIBCXX_HAVE_SYS_SEM_H 1"
+.LASF1581:
+ .string "_T_SIZE_ "
+.LASF1898:
+ .string "CPU_AND_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, &)"
+.LASF2182:
+ .string "release"
+.LASF941:
+ .string "_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT 1"
+.LASF341:
+ .string "__FLT32X_EPSILON__ 2.22044604925031308084726333618164062e-16F32x"
+.LASF344:
+ .string "__FLT32X_HAS_INFINITY__ 1"
+.LASF662:
+ .string "__NTH(fct) __LEAF_ATTR fct __THROW"
+.LASF2133:
+ .string "nullptr_t"
+.LASF676:
+ .string "__glibc_objsize(__o) __bos (__o)"
+.LASF1307:
+ .string "__glibcxx_want_ranges_slide"
+.LASF282:
+ .string "__FLT16_IS_IEC_60559__ 1"
+.LASF2265:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEaSEOS3_"
+.LASF2212:
+ .string "_ZNSt10_Head_baseILm0EP4BaseLb0EEC4ERKS2_"
+.LASF809:
+ .string "_PSTL_PRAGMA_SIMD_ORDERED_MONOTONIC_2ARGS(PRM1,PRM2) "
+.LASF1265:
+ .string "__glibcxx_want_constexpr_tuple"
+.LASF176:
+ .string "__UINT64_MAX__ 0xffffffffffffffffUL"
+.LASF178:
+ .string "__INT8_C(c) c"
+.LASF1827:
+ .string "__kernel_old_dev_t __kernel_old_dev_t"
+.LASF740:
+ .string "__stub_chflags "
+.LASF2213:
+ .string "_ZNSt10_Head_baseILm0EP4BaseLb0EEC4EOS2_"
+.LASF1790:
+ .string "SCHED_RR 2"
+.LASF126:
+ .string "__cpp_structured_bindings 201606L"
+.LASF2235:
+ .string "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEC4ERKS4_"
+.LASF271:
+ .string "__FLT16_MAX_EXP__ 16"
+.LASF873:
+ .string "_GLIBCXX_HAVE_ISNANF 1"
+.LASF1302:
+ .string "__glibcxx_want_reference_from_temporary"
+.LASF296:
+ .string "__FLT32_HAS_INFINITY__ 1"
+.LASF1627:
+ .string "____mbstate_t_defined 1"
+.LASF2355:
+ .string "__uses_alloc_base"
+.LASF1374:
+ .string "__glibcxx_want_is_pointer_interconvertible "
+.LASF2363:
+ .string "__cxa_guard_release"
+.LASF222:
+ .string "__FLT_MAX_EXP__ 128"
+.LASF1677:
+ .string "wcsspn"
+.LASF16:
+ .string "__ATOMIC_SEQ_CST 5"
+.LASF2188:
+ .string "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC4Ev"
+.LASF87:
+ .string "__cpp_runtime_arrays 198712L"
+.LASF744:
+ .string "__stub_setlogin "
+.LASF1202:
+ .string "__glibcxx_math_special_functions 201603L"
+.LASF1103:
+ .string "__glibcxx_want_integral_constant_callable"
+.LASF1982:
+ .string "__ONCE_ALIGNMENT "
+.LASF593:
+ .string "_ISOC99_SOURCE"
+.LASF1884:
+ .string "CPU_CLR(cpu,cpusetp) __CPU_CLR_S (cpu, sizeof (cpu_set_t), cpusetp)"
+.LASF539:
+ .string "_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT"
+.LASF355:
+ .string "__FLT64X_NORM_MAX__ 1.18973149535723176502126385303097021e+4932F64x"
+.LASF283:
+ .string "__FLT32_MANT_DIG__ 24"
+.LASF746:
+ .string "__stub_stty "
+.LASF1047:
+ .string "_GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK (_GLIBCXX_TSAN==0)"
+.LASF1308:
+ .string "__glibcxx_want_ranges_chunk_by"
+.LASF2186:
+ .string "_Head_base<1, std::default_delete<Base>, true>"
+.LASF2203:
+ .string "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEC4ERKS2_"
+.LASF1854:
+ .string "CLONE_UNTRACED 0x00800000"
+.LASF362:
+ .string "__FLT64X_IS_IEC_60559__ 1"
+.LASF235:
+ .string "__DBL_DIG__ 15"
+.LASF2032:
+ .string "__GTHREAD_RECURSIVE_MUTEX_INIT PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP"
+.LASF1371:
+ .string "__glibcxx_want_is_layout_compatible "
+.LASF994:
+ .string "_GLIBCXX98_USE_C99_MATH 1"
+.LASF162:
+ .string "__INTMAX_C(c) c ## L"
+.LASF2172:
+ .string "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EEC4EOS3_"
+.LASF727:
+ .string "__REDIRECT_NTH_LDBL(name,proto,alias) __REDIRECT_NTH (name, proto, alias)"
+.LASF2233:
+ .string "tuple<Base*, std::default_delete<Base> >"
+.LASF1678:
+ .string "wcsstr"
+.LASF1861:
+ .string "CLONE_NEWNET 0x40000000"
+.LASF1482:
+ .string "_GLIBCXX_CONCEPTS 1"
+.LASF137:
+ .string "__cpp_exceptions 199711L"
+.LASF2080:
+ .string "ATOMIC_CHAR32_T_LOCK_FREE __GCC_ATOMIC_CHAR32_T_LOCK_FREE"
+.LASF982:
+ .string "_GLIBCXX_PACKAGE_STRING \"package-unused version-unused\""
+.LASF1166:
+ .string "__glibcxx_make_from_tuple 201606L"
+.LASF1171:
+ .string "__glibcxx_want_type_trait_variable_templates"
+.LASF213:
+ .string "__GCC_IEC_559_COMPLEX 2"
+.LASF2072:
+ .string "_GLIBCXX_NESTED_EXCEPTION_H 1"
+.LASF860:
+ .string "_GLIBCXX_HAVE_FMODL 1"
+.LASF1083:
+ .string "__glibcxx_is_null_pointer 201309L"
+.LASF1461:
+ .string "__glibcxx_requires_can_increment(_First,_Size) "
+.LASF771:
+ .string "_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP 1"
+.LASF281:
+ .string "__FLT16_HAS_QUIET_NAN__ 1"
+.LASF2312:
+ .string "__gnu_cxx"
+.LASF2301:
+ .string "long long unsigned int"
+.LASF1596:
+ .string "__wchar_t__ "
+.LASF1261:
+ .string "__glibcxx_want_ranges"
+.LASF408:
+ .string "__USER_LABEL_PREFIX__ "
+.LASF661:
+ .string "__THROWNL __THROW"
+.LASF922:
+ .string "_GLIBCXX_HAVE_SINHL 1"
+.LASF913:
+ .string "_GLIBCXX_HAVE_QUICK_EXIT 1"
+.LASF713:
+ .string "__restrict_arr "
+.LASF1679:
+ .string "wcstod"
+.LASF2204:
+ .string "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEC4ERKS3_"
+.LASF1680:
+ .string "wcstof"
+.LASF848:
+ .string "_GLIBCXX_HAVE_FABSF 1"
+.LASF1924:
+ .string "ADJ_ESTERROR 0x0008"
+.LASF256:
+ .string "__DECIMAL_DIG__ 21"
+.LASF1681:
+ .string "wcstok"
+.LASF509:
+ .string "_GLIBCXX26_CONSTEXPR "
+.LASF1731:
+ .string "_BITS_TYPESIZES_H 1"
+.LASF1472:
+ .string "__glibcxx_requires_heap(_First,_Last) "
+.LASF270:
+ .string "__FLT16_MIN_10_EXP__ (-4)"
+.LASF639:
+ .string "__USE_TIME_BITS64 1"
+.LASF2086:
+ .string "_GLIBCXX_ALWAYS_INLINE inline __attribute__((__always_inline__))"
+.LASF1049:
+ .string "_GLIBCXX_USE_PTHREAD_RWLOCK_T 1"
+.LASF1776:
+ .string "__time_t_defined 1"
+.LASF2222:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEE7_M_tailERS4_"
+.LASF1718:
+ .string "__S32_TYPE int"
+.LASF1947:
+ .string "STA_PPSTIME 0x0004"
+.LASF1079:
+ .string "__glibcxx_uncaught_exceptions 201411L"
+.LASF698:
+ .string "__attribute_format_arg__(x) __attribute__ ((__format_arg__ (x)))"
+.LASF2114:
+ .string "__glibcxx_want_to_address "
+.LASF2084:
+ .string "ATOMIC_LLONG_LOCK_FREE __GCC_ATOMIC_LLONG_LOCK_FREE"
+.LASF369:
+ .string "__BFLT16_DECIMAL_DIG__ 4"
+.LASF170:
+ .string "__INT16_MAX__ 0x7fff"
+.LASF1107:
+ .string "__glibcxx_want_make_reverse_iterator"
+.LASF2371:
+ .string "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EEC2EPS0_"
+.LASF2372:
+ .string "__ptr"
+.LASF647:
+ .string "__GLIBC_USE_C23_STRTOL 1"
+.LASF216:
+ .string "__DEC_EVAL_METHOD__ 2"
+.LASF1543:
+ .string "__GLIBC_USE_IEC_60559_TYPES_EXT"
+.LASF842:
+ .string "_GLIBCXX_HAVE_DLFCN_H 1"
+.LASF1560:
+ .string "__HAVE_DISTINCT_FLOAT64 0"
+.LASF1115:
+ .string "__glibcxx_want_tuple_element_t"
+.LASF492:
+ .string "_GLIBCXX14_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)"
+.LASF1529:
+ .string "__GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION "
+.LASF1123:
+ .string "__glibcxx_want_chrono_udls"
+.LASF1914:
+ .string "CLOCK_BOOTTIME 7"
+.LASF285:
+ .string "__FLT32_MIN_EXP__ (-125)"
+.LASF1882:
+ .string "CPU_SETSIZE __CPU_SETSIZE"
+.LASF2151:
+ .string "_ZNSt15__exception_ptr13exception_ptraSERKS0_"
+.LASF2168:
+ .string "type"
+.LASF1782:
+ .string "_BITS_ENDIANNESS_H 1"
+.LASF491:
+ .string "_GLIBCXX14_DEPRECATED _GLIBCXX_DEPRECATED"
+.LASF237:
+ .string "__DBL_MIN_10_EXP__ (-307)"
+.LASF2117:
+ .string "__cpp_lib_shared_ptr_arrays 201611L"
+.LASF1100:
+ .string "__glibcxx_integer_sequence 201304L"
+.LASF2256:
+ .string "operator*"
+.LASF1920:
+ .string "__timeval_defined 1"
+.LASF756:
+ .string "_GLIBCXX_USE_WEAK_REF __GXX_WEAK__"
+.LASF2060:
+ .string "_GCC_PTRDIFF_T "
+.LASF342:
+ .string "__FLT32X_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F32x"
+.LASF2320:
+ .string "__gnu_debug"
+.LASF261:
+ .string "__LDBL_EPSILON__ 1.08420217248550443400745280086994171e-19L"
+.LASF918:
+ .string "_GLIBCXX_HAVE_SINCOSF 1"
+.LASF1518:
+ .string "_FUNCTIONAL_HASH_H 1"
+.LASF79:
+ .string "__GXX_WEAK__ 1"
+.LASF221:
+ .string "__FLT_MIN_10_EXP__ (-37)"
+.LASF1690:
+ .string "wmemset"
+.LASF679:
+ .string "__flexarr []"
+.LASF2150:
+ .string "operator="
+.LASF942:
+ .string "_GLIBCXX_HAVE_SYS_IOCTL_H 1"
+.LASF114:
+ .string "__cpp_nested_namespace_definitions 201411L"
+.LASF1911:
+ .string "CLOCK_MONOTONIC_RAW 4"
+.LASF203:
+ .string "__INT_FAST64_MAX__ 0x7fffffffffffffffL"
+.LASF1859:
+ .string "CLONE_NEWUSER 0x10000000"
+.LASF1942:
+ .string "MOD_TAI ADJ_TAI"
+.LASF1637:
+ .string "btowc"
+.LASF2038:
+ .string "__GTHREAD_INLINE"
+.LASF1907:
+ .string "CLOCK_REALTIME 0"
+.LASF911:
+ .string "_GLIBCXX_HAVE_POWF 1"
+.LASF1063:
+ .string "_GLIBCXX_VERBOSE 1"
+.LASF443:
+ .string "__k8 1"
+.LASF623:
+ .string "__USE_POSIX 1"
+.LASF562:
+ .string "__USE_POSIX"
+.LASF880:
+ .string "_GLIBCXX_HAVE_LIMIT_AS 1"
+.LASF945:
+ .string "_GLIBCXX_HAVE_SYS_PARAM_H 1"
+.LASF1608:
+ .string "__INT_WCHAR_T_H "
+.LASF1554:
+ .string "__HAVE_FLOAT32 1"
+.LASF259:
+ .string "__LDBL_NORM_MAX__ 1.18973149535723176502126385303097021e+4932L"
+.LASF1382:
+ .string "__glibcxx_want_transformation_trait_aliases "
+.LASF384:
+ .string "__DEC32_EPSILON__ 1E-6DF"
+.LASF1652:
+ .string "putwchar"
+.LASF105:
+ .string "__cpp_generic_lambdas 201304L"
+.LASF2121:
+ .string "__cpp_lib_raw_memory_algorithms 201606L"
+.LASF506:
+ .string "_GLIBCXX17_CONSTEXPR constexpr"
+.LASF1137:
+ .string "__glibcxx_want_addressof_constexpr"
+.LASF82:
+ .string "__cpp_rtti 199711L"
+.LASF1067:
+ .string "_GTHREAD_USE_MUTEX_TIMEDLOCK 1"
+.LASF1605:
+ .string "_WCHAR_T_DEFINED "
+.LASF1527:
+ .string "_GLIBCXX_CWCHAR 1"
+.LASF1119:
+ .string "__glibcxx_want_robust_nonmodifying_seq_ops"
+.LASF601:
+ .string "_POSIX_SOURCE"
+.LASF339:
+ .string "__FLT32X_NORM_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF146:
+ .string "__WINT_MAX__ 0xffffffffU"
+.LASF2272:
+ .string "unique_ptr<>"
+.LASF2314:
+ .string "_S_single"
+.LASF228:
+ .string "__FLT_EPSILON__ 1.19209289550781250000000000000000000e-7F"
+.LASF783:
+ .string "_PSTL_VERSION_MINOR ((_PSTL_VERSION % 1000) / 10)"
+.LASF1224:
+ .string "__glibcxx_want_atomic_ref"
+.LASF377:
+ .string "__BFLT16_HAS_QUIET_NAN__ 1"
+.LASF834:
+ .string "_GLIBCXX_HAVE_COMPLEX_H 1"
+.LASF1470:
+ .string "__glibcxx_requires_partitioned_lower_pred(_First,_Last,_Value,_Pred) "
+.LASF904:
+ .string "_GLIBCXX_HAVE_NETINET_TCP_H 1"
+.LASF819:
+ .string "_GLIBCXX_HAVE_ALIGNED_ALLOC 1"
+.LASF350:
+ .string "__FLT64X_MIN_10_EXP__ (-4931)"
+.LASF423:
+ .string "__GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1"
+.LASF1860:
+ .string "CLONE_NEWPID 0x20000000"
+.LASF1480:
+ .string "_GLIBCXX_PREDEFINED_OPS_H 1"
+.LASF195:
+ .string "__UINT_LEAST64_MAX__ 0xffffffffffffffffUL"
+.LASF1533:
+ .string "__GLIBC_USE_IEC_60559_BFP_EXT"
+.LASF1125:
+ .string "__glibcxx_want_complex_udls"
+.LASF1849:
+ .string "CLONE_SYSVSEM 0x00040000"
+.LASF1525:
+ .string "_STRINGFWD_H 1"
+.LASF400:
+ .string "__DEC64X_MANT_DIG__ 34"
+.LASF190:
+ .string "__UINT8_C(c) c"
+.LASF115:
+ .string "__cpp_fold_expressions 201603L"
+.LASF215:
+ .string "__FLT_EVAL_METHOD_TS_18661_3__ 0"
+.LASF290:
+ .string "__FLT32_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF1568:
+ .string "__f32x(x) x ##f32x"
+.LASF1040:
+ .string "_GLIBCXX_USE_LONG_LONG 1"
+.LASF1134:
+ .string "__glibcxx_string_udls 201304L"
+.LASF2036:
+ .string "__gthrw_(name) name"
+.LASF931:
+ .string "_GLIBCXX_HAVE_STDLIB_H 1"
+.LASF715:
+ .string "__glibc_likely(cond) __builtin_expect ((cond), 1)"
+.LASF48:
+ .string "__INTMAX_TYPE__ long int"
+.LASF1034:
+ .string "_GLIBCXX_USE_FSEEKO_FTELLO 1"
+.LASF1683:
+ .string "wcstoul"
+.LASF1206:
+ .string "__glibcxx_node_extract 201606L"
+.LASF2393:
+ .string "11__mbstate_t"
+.LASF262:
+ .string "__LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L"
+.LASF1019:
+ .string "_GLIBCXX_USE_C99_INTTYPES_TR1 1"
+.LASF2016:
+ .string "PTHREAD_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS"
+.LASF2298:
+ .string "unsigned char"
+.LASF232:
+ .string "__FLT_HAS_QUIET_NAN__ 1"
+.LASF1260:
+ .string "__glibcxx_want_shift"
+.LASF1223:
+ .string "__glibcxx_want_atomic_lock_free_type_aliases"
+.LASF805:
+ .string "_PSTL_UDR_PRESENT "
+.LASF1385:
+ .string "__glibcxx_want_unwrap_ref "
+.LASF795:
+ .string "_PSTL_PRAGMA_SIMD_REDUCTION(PRM) _PSTL_PRAGMA(omp simd reduction(PRM))"
+.LASF1521:
+ .string "_Cxx_hashtable_define_trivial_hash"
+.LASF35:
+ .string "__ORDER_LITTLE_ENDIAN__ 1234"
+.LASF2061:
+ .string "_PTRDIFF_T_DECLARED "
+.LASF1862:
+ .string "CLONE_IO 0x80000000"
+.LASF759:
+ .string "_GLIBCXX_USE_STD_SPEC_FUNCS 1"
+.LASF1029:
+ .string "_GLIBCXX_USE_CLOCK_REALTIME 1"
+.LASF2083:
+ .string "ATOMIC_LONG_LOCK_FREE __GCC_ATOMIC_LONG_LOCK_FREE"
+.LASF1930:
+ .string "ADJ_NANO 0x2000"
+.LASF1684:
+ .string "wcsxfrm"
+.LASF1042:
+ .string "_GLIBCXX_USE_MKDIR 1"
+.LASF1144:
+ .string "__glibcxx_atomic_is_always_lock_free 201603L"
+.LASF1670:
+ .string "wcslen"
+.LASF219:
+ .string "__FLT_DIG__ 6"
+.LASF139:
+ .string "__SCHAR_MAX__ 0x7f"
+.LASF1469:
+ .string "__glibcxx_requires_partitioned_upper(_First,_Last,_Value) "
+.LASF1011:
+ .string "_GLIBCXX_USE_C99 1"
+.LASF1397:
+ .string "__cpp_lib_is_invocable 201703L"
+.LASF2319:
+ .string "float"
+.LASF1519:
+ .string "_HASH_BYTES_H 1"
+.LASF238:
+ .string "__DBL_MAX_EXP__ 1024"
+.LASF2240:
+ .string "tuple<>"
+.LASF560:
+ .string "__USE_ISOC95"
+.LASF2000:
+ .string "PTHREAD_MUTEX_INITIALIZER { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_TIMED_NP) } }"
+.LASF1241:
+ .string "__glibcxx_constexpr_char_traits 201611L"
+.LASF559:
+ .string "__USE_ISOC99"
+.LASF191:
+ .string "__UINT_LEAST16_MAX__ 0xffff"
+.LASF1311:
+ .string "__glibcxx_want_ranges_stride"
+.LASF1867:
+ .string "__NCPUBITS (8 * sizeof (__cpu_mask))"
+.LASF1300:
+ .string "__glibcxx_want_invoke_r"
+.LASF2013:
+ .string "PTHREAD_CANCEL_ENABLE PTHREAD_CANCEL_ENABLE"
+.LASF1893:
+ .string "CPU_EQUAL(cpusetp1,cpusetp2) __CPU_EQUAL_S (sizeof (cpu_set_t), cpusetp1, cpusetp2)"
+.LASF1471:
+ .string "__glibcxx_requires_partitioned_upper_pred(_First,_Last,_Value,_Pred) "
+.LASF1238:
+ .string "__glibcxx_want_int_pow2"
+.LASF1801:
+ .string "SCHED_FLAG_KEEP_POLICY 0x08"
+.LASF618:
+ .string "__GLIBC_USE_ISOC23 1"
+.LASF335:
+ .string "__FLT32X_MAX_EXP__ 1024"
+.LASF1313:
+ .string "__glibcxx_want_ranges_as_rvalue"
+.LASF135:
+ .string "__STDCPP_THREADS__ 1"
+.LASF2291:
+ .string "_Tail"
+.LASF1122:
+ .string "__glibcxx_chrono_udls 201304L"
+.LASF2336:
+ .string "__isoc23_vswscanf"
+.LASF1353:
+ .string "__glibcxx_want_all"
+.LASF1231:
+ .string "__glibcxx_want_bounded_array_traits"
+.LASF1405:
+ .string "_GLIBCXX_OPERATOR_DELETE __builtin_operator_delete"
+.LASF32:
+ .string "__SIZEOF_SIZE_T__ 8"
+.LASF397:
+ .string "__DEC128_MAX__ 9.999999999999999999999999999999999E6144DL"
+.LASF1303:
+ .string "__glibcxx_want_containers_ranges"
+.LASF1979:
+ .string "__SIZEOF_PTHREAD_RWLOCKATTR_T 8"
+.LASF1176:
+ .string "__glibcxx_gcd 201606L"
+.LASF437:
+ .string "__x86_64__ 1"
+.LASF2053:
+ .string "_PTRDIFF_T "
+.LASF1890:
+ .string "CPU_ISSET_S(cpu,setsize,cpusetp) __CPU_ISSET_S (cpu, setsize, cpusetp)"
+.LASF726:
+ .string "__REDIRECT_LDBL(name,proto,alias) __REDIRECT (name, proto, alias)"
+.LASF157:
+ .string "__PTRDIFF_WIDTH__ 64"
+.LASF569:
+ .string "__USE_XOPEN2K"
+.LASF1263:
+ .string "__glibcxx_want_constexpr_functional"
+.LASF565:
+ .string "__USE_POSIX199506"
+.LASF1230:
+ .string "__glibcxx_want_bitops"
+.LASF123:
+ .string "__cpp_deduction_guides 201703L"
+.LASF1195:
+ .string "__glibcxx_want_execution"
+.LASF1319:
+ .string "__glibcxx_want_ranges_find_last"
+.LASF1149:
+ .string "__glibcxx_want_byte"
+.LASF954:
+ .string "_GLIBCXX_HAVE_SYS_TYPES_H 1"
+.LASF43:
+ .string "__GNUG__ 15"
+.LASF2223:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEE7_M_tailERKS4_"
+.LASF460:
+ .string "__unix__ 1"
+.LASF1066:
+ .string "_GLIBCXX_ZONEINFO_DIR \"/usr/share/zoneinfo\""
+.LASF916:
+ .string "_GLIBCXX_HAVE_SETENV 1"
+.LASF1342:
+ .string "__glibcxx_want_is_virtual_base_of"
+.LASF1346:
+ .string "__glibcxx_want_reference_wrapper"
+.LASF1372:
+ .string "__glibcxx_want_is_nothrow_convertible "
+.LASF932:
+ .string "_GLIBCXX_HAVE_STRERROR_L 1"
+.LASF611:
+ .string "_DEFAULT_SOURCE"
+.LASF1315:
+ .string "__glibcxx_want_ranges_enumerate"
+.LASF2399:
+ .string "varStatic"
+.LASF2007:
+ .string "PTHREAD_EXPLICIT_SCHED PTHREAD_EXPLICIT_SCHED"
+.LASF961:
+ .string "_GLIBCXX_HAVE_TGMATH_H 1"
+.LASF533:
+ .string "_GLIBCXX_END_NAMESPACE_CONTAINER "
+.LASF1038:
+ .string "_GLIBCXX_USE_INIT_PRIORITY_ATTRIBUTE 1"
+.LASF2248:
+ .string "__add_lval_ref_t"
+.LASF1365:
+ .string "__glibcxx_want_has_unique_object_representations "
+.LASF2030:
+ .string "__GTHREAD_MUTEX_INIT_FUNCTION __gthread_mutex_init_function"
+.LASF704:
+ .string "__wur "
+.LASF1971:
+ .string "_BITS_PTHREADTYPES_ARCH_H 1"
+.LASF902:
+ .string "_GLIBCXX_HAVE_NETDB_H 1"
+.LASF240:
+ .string "__DBL_DECIMAL_DIG__ 17"
+.LASF27:
+ .string "__SIZEOF_LONG_LONG__ 8"
+.LASF2276:
+ .string "_MakeUniq<Base>"
+.LASF2154:
+ .string "_ZNSt15__exception_ptr13exception_ptrD4Ev"
+.LASF1437:
+ .string "_CPP_TYPE_TRAITS_H 1"
+.LASF1965:
+ .string "__timer_t_defined 1"
+.LASF2348:
+ .string "tm_zone"
+.LASF352:
+ .string "__FLT64X_MAX_10_EXP__ 4932"
+.LASF2269:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EE4swapERS3_"
+.LASF289:
+ .string "__FLT32_DECIMAL_DIG__ 9"
+.LASF2143:
+ .string "_ZNSt15__exception_ptr13exception_ptr10_M_releaseEv"
+.LASF1609:
+ .string "_GCC_WCHAR_T "
+.LASF1644:
+ .string "fwscanf"
+.LASF2087:
+ .string "_GLIBCXX20_INIT(I) "
+.LASF1669:
+ .string "wcsftime"
+.LASF1380:
+ .string "__glibcxx_want_remove_cvref "
+.LASF482:
+ .string "_GLIBCXX_CONST __attribute__ ((__const__))"
+.LASF936:
+ .string "_GLIBCXX_HAVE_STRTOF 1"
+.LASF471:
+ .string "_GLIBCXX_MEMORY 1"
+.LASF2095:
+ .string "_GLIBCXX_TSAN_MUTEX_POST_UNLOCK(X) "
+.LASF1962:
+ .string "__clock_t_defined 1"
+.LASF118:
+ .string "__cpp_constexpr 201603L"
+.LASF2009:
+ .string "PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_PROCESS"
+.LASF612:
+ .string "_DEFAULT_SOURCE 1"
+.LASF1604:
+ .string "_WCHAR_T_DEFINED_ "
+.LASF1250:
+ .string "__glibcxx_want_span"
+.LASF992:
+ .string "_GLIBCXX11_USE_C99_WCHAR 1"
+.LASF2140:
+ .string "_M_addref"
+.LASF1647:
+ .string "mbrlen"
+.LASF47:
+ .string "__WINT_TYPE__ unsigned int"
+.LASF1026:
+ .string "_GLIBCXX_USE_CHDIR 1"
+.LASF320:
+ .string "__FLT128_MAX_10_EXP__ 4932"
+.LASF838:
+ .string "_GLIBCXX_HAVE_COSL 1"
+.LASF160:
+ .string "__GLIBCXX_BITSIZE_INT_N_0 128"
+.LASF1791:
+ .string "SCHED_NORMAL 0"
+.LASF168:
+ .string "__SIG_ATOMIC_WIDTH__ 32"
+.LASF1207:
+ .string "__glibcxx_want_node_extract"
+.LASF241:
+ .string "__DBL_MAX__ double(1.79769313486231570814527423731704357e+308L)"
+.LASF2380:
+ .string "_ZNKSt15__exception_ptr13exception_ptrcvbEv"
+.LASF2073:
+ .string "_SHARED_PTR_ATOMIC_H 1"
+.LASF1448:
+ .string "__glibcxx_max_digits10"
+.LASF1723:
+ .string "__UQUAD_TYPE unsigned long int"
+.LASF720:
+ .string "__LDBL_REDIR1(name,proto,alias) name proto"
+.LASF218:
+ .string "__FLT_MANT_DIG__ 24"
+.LASF1804:
+ .string "SCHED_FLAG_UTIL_CLAMP_MAX 0x40"
+.LASF1858:
+ .string "CLONE_NEWIPC 0x08000000"
+.LASF1491:
+ .string "_GLIBCXX_MOVE3(_Tp,_Up,_Vp) std::move(_Tp, _Up, _Vp)"
+.LASF675:
+ .string "__glibc_objsize0(__o) __bos0 (__o)"
+.LASF1474:
+ .string "__glibcxx_requires_string(_String) "
+.LASF1001:
+ .string "_GLIBCXX_HAS_GTHREADS 1"
+.LASF1528:
+ .string "_WCHAR_H 1"
+.LASF2244:
+ .string "__uniq_ptr_data"
+.LASF1035:
+ .string "_GLIBCXX_USE_GETCWD 1"
+.LASF1563:
+ .string "__HAVE_DISTINCT_FLOAT128X __HAVE_FLOAT128X"
+.LASF2400:
+ .string "_Unwind_Resume"
+.LASF229:
+ .string "__FLT_DENORM_MIN__ 1.40129846432481707092372958328991613e-45F"
+.LASF508:
+ .string "_GLIBCXX23_CONSTEXPR "
+.LASF1737:
+ .string "__INO_T_TYPE __SYSCALL_ULONG_TYPE"
+.LASF974:
+ .string "_GLIBCXX_HAVE_WCSTOF 1"
+.LASF572:
+ .string "__USE_XOPEN2K8XSI"
+.LASF2370:
+ .string "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEC2ILb1ELb1EEEv"
+.LASF109:
+ .string "__cpp_digit_separators 201309L"
+.LASF1837:
+ .string "sched_param"
+.LASF1809:
+ .string "_LINUX_TYPES_H "
+.LASF2104:
+ .string "__glibcxx_want_constexpr_memory "
+.LASF1185:
+ .string "__glibcxx_want_nonmember_container_access"
+.LASF158:
+ .string "__SIZE_WIDTH__ 64"
+.LASF1617:
+ .string "__need___va_list "
+.LASF488:
+ .string "_GLIBCXX_DEPRECATED_SUGGEST(ALT) __attribute__ ((__deprecated__ (\"use '\" ALT \"' instead\")))"
+.LASF1897:
+ .string "CPU_XOR(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, ^)"
+.LASF2228:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEaSERKS4_"
+.LASF1558:
+ .string "__HAVE_DISTINCT_FLOAT16 __HAVE_FLOAT16"
+.LASF1248:
+ .string "__glibcxx_want_remove_cvref"
+.LASF638:
+ .string "__TIMESIZE __WORDSIZE"
+.LASF382:
+ .string "__DEC32_MIN__ 1E-95DF"
+.LASF220:
+ .string "__FLT_MIN_EXP__ (-125)"
+.LASF802:
+ .string "_PSTL_CPP14_MAKE_REVERSE_ITERATOR_PRESENT "
+.LASF357:
+ .string "__FLT64X_EPSILON__ 1.08420217248550443400745280086994171e-19F64x"
+.LASF610:
+ .string "_LARGEFILE64_SOURCE 1"
+.LASF977:
+ .string "_GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL 1"
+.LASF2401:
+ .string "__builtin_unwind_resume"
+.LASF38:
+ .string "__BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF1267:
+ .string "__glibcxx_want_atomic_shared_ptr"
+.LASF1513:
+ .string "__cpp_lib_apply 201603L"
+.LASF179:
+ .string "__INT_LEAST8_WIDTH__ 8"
+.LASF2008:
+ .string "PTHREAD_SCOPE_SYSTEM PTHREAD_SCOPE_SYSTEM"
+.LASF1714:
+ .string "_SCHED_H 1"
+.LASF217:
+ .string "__FLT_RADIX__ 2"
+.LASF184:
+ .string "__INT32_C(c) c"
+.LASF728:
+ .string "__glibc_macro_warning1(message) _Pragma (#message)"
+.LASF266:
+ .string "__LDBL_IS_IEC_60559__ 1"
+.LASF332:
+ .string "__FLT32X_DIG__ 15"
+.LASF1906:
+ .string "CLOCKS_PER_SEC ((__clock_t) 1000000)"
+.LASF1663:
+ .string "wcscat"
+.LASF889:
+ .string "_GLIBCXX_HAVE_LINUX_TYPES_H 1"
+.LASF1931:
+ .string "ADJ_TICK 0x4000"
+.LASF2241:
+ .string "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEC4ILb1ELb1EEEv"
+.LASF1243:
+ .string "__glibcxx_want_is_layout_compatible"
+.LASF503:
+ .string "_GLIBCXX_CONSTEXPR constexpr"
+.LASF1926:
+ .string "ADJ_TIMECONST 0x0020"
+.LASF979:
+ .string "_GLIBCXX_LT_OBJDIR \".libs/\""
+.LASF1147:
+ .string "__glibcxx_want_bool_constant"
+.LASF1347:
+ .string "__glibcxx_want_saturation_arithmetic"
+.LASF1730:
+ .string "__STD_TYPE typedef"
+.LASF2261:
+ .string "deleter_type"
+.LASF1128:
+ .string "__glibcxx_make_unique 201304L"
+.LASF486:
+ .string "_GLIBCXX_USE_DEPRECATED 1"
+.LASF2152:
+ .string "_ZNSt15__exception_ptr13exception_ptraSEOS0_"
+.LASF2029:
+ .string "__GTHREAD_MUTEX_INIT PTHREAD_MUTEX_INITIALIZER"
+.LASF2236:
+ .string "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEC4EOS4_"
+.LASF2271:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEaSERKS3_"
+.LASF1780:
+ .string "__BIG_ENDIAN 4321"
+.LASF119:
+ .string "__cpp_if_constexpr 201606L"
+.LASF1344:
+ .string "__glibcxx_want_ranges_concat"
+.LASF1682:
+ .string "wcstol"
+.LASF68:
+ .string "__UINT_LEAST64_TYPE__ long unsigned int"
+.LASF828:
+ .string "_GLIBCXX_HAVE_ATANL 1"
+.LASF322:
+ .string "__FLT128_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF522:
+ .string "_GLIBCXX_NAMESPACE_CXX11 __cxx11::"
+.LASF2006:
+ .string "PTHREAD_INHERIT_SCHED PTHREAD_INHERIT_SCHED"
+.LASF1446:
+ .string "__glibcxx_max_exponent10(_Tp) __glibcxx_floating(_Tp, __FLT_MAX_10_EXP__, __DBL_MAX_10_EXP__, __LDBL_MAX_10_EXP__)"
+.LASF385:
+ .string "__DEC32_SUBNORMAL_MIN__ 0.000001E-95DF"
+.LASF581:
+ .string "__KERNEL_STRICT_NAMES"
+.LASF49:
+ .string "__UINTMAX_TYPE__ long unsigned int"
+.LASF551:
+ .string "_GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(A) "
+.LASF1729:
+ .string "__U64_TYPE unsigned long int"
+.LASF331:
+ .string "__FLT32X_MANT_DIG__ 53"
+.LASF772:
+ .string "_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE 1"
+.LASF1367:
+ .string "__glibcxx_want_is_aggregate "
+.LASF1702:
+ .string "_GLIBCXX_REFWRAP_H 1"
+.LASF73:
+ .string "__UINT_FAST8_TYPE__ unsigned char"
+.LASF943:
+ .string "_GLIBCXX_HAVE_SYS_IPC_H 1"
+.LASF908:
+ .string "_GLIBCXX_HAVE_POLL_H 1"
+.LASF2274:
+ .string "_Del"
+.LASF1753:
+ .string "__ID_T_TYPE __U32_TYPE"
+.LASF152:
+ .string "__INT_WIDTH__ 32"
+.LASF1139:
+ .string "__glibcxx_want_any"
+.LASF690:
+ .string "__attribute_alloc_align__(param) __attribute__ ((__alloc_align__ param))"
+.LASF2200:
+ .string "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEE7_M_headERKS3_"
+.LASF60:
+ .string "__UINT64_TYPE__ long unsigned int"
+.LASF2160:
+ .string "_ZSt17rethrow_exceptionNSt15__exception_ptr13exception_ptrE"
+.LASF516:
+ .string "_GLIBCXX_THROW_OR_ABORT(_EXC) (throw (_EXC))"
+.LASF2085:
+ .string "ATOMIC_POINTER_LOCK_FREE __GCC_ATOMIC_POINTER_LOCK_FREE"
+.LASF499:
+ .string "_GLIBCXX26_DEPRECATED "
+.LASF2145:
+ .string "_ZNKSt15__exception_ptr13exception_ptr6_M_getEv"
+.LASF574:
+ .string "__USE_LARGEFILE64"
+.LASF2126:
+ .string "__swappable_details"
+.LASF298:
+ .string "__FLT32_IS_IEC_60559__ 1"
+.LASF1579:
+ .string "_SIZE_T "
+.LASF484:
+ .string "_GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY 1"
+.LASF706:
+ .string "__always_inline __inline __attribute__ ((__always_inline__))"
+.LASF2282:
+ .string "_Nth_type<1, Base*, std::default_delete<Base> >"
+.LASF24:
+ .string "__LP64__ 1"
+.LASF642:
+ .string "__USE_DYNAMIC_STACK_SIZE 1"
+.LASF523:
+ .string "_GLIBCXX_BEGIN_NAMESPACE_CXX11 namespace __cxx11 {"
+.LASF1717:
+ .string "__U16_TYPE unsigned short int"
+.LASF1902:
+ .string "CPU_ALLOC(count) __CPU_ALLOC (count)"
+.LASF787:
+ .string "_PSTL_STRING_AUX(x) #x"
+.LASF701:
+ .string "__nonnull(params) __attribute_nonnull__ (params)"
+.LASF978:
+ .string "_GLIBCXX_ICONV_CONST "
+.LASF181:
+ .string "__INT16_C(c) c"
+.LASF826:
+ .string "_GLIBCXX_HAVE_ATAN2L 1"
+.LASF738:
+ .string "__USE_EXTERN_INLINES 1"
+.LASF453:
+ .string "__SEG_FS 1"
+.LASF691:
+ .string "__attribute_pure__ __attribute__ ((__pure__))"
+.LASF1236:
+ .string "__glibcxx_want_constexpr_string_view"
+.LASF1370:
+ .string "__glibcxx_want_is_invocable "
+.LASF337:
+ .string "__FLT32X_DECIMAL_DIG__ 17"
+.LASF1848:
+ .string "CLONE_NEWNS 0x00020000"
+.LASF798:
+ .string "_PSTL_PRAGMA_SIMD_INCLUSIVE_SCAN(PRM) _PSTL_PRAGMA(omp scan inclusive(PRM))"
+.LASF417:
+ .string "__GCC_ATOMIC_CHAR32_T_LOCK_FREE 2"
+.LASF1620:
+ .string "_VA_LIST_DEFINED "
+.LASF1052:
+ .string "_GLIBCXX_USE_SCHED_YIELD 1"
+.LASF1668:
+ .string "wcscspn"
+.LASF316:
+ .string "__FLT128_DIG__ 33"
+.LASF2334:
+ .string "__isoc23_swscanf"
+.LASF1126:
+ .string "__glibcxx_generic_associative_lookup 201304L"
+.LASF1629:
+ .string "__FILE_defined 1"
+.LASF1282:
+ .string "__glibcxx_want_list_remove_return_type"
+.LASF1024:
+ .string "_GLIBCXX_USE_C99_STDINT 1"
+.LASF520:
+ .string "_GLIBCXX_USE_DUAL_ABI 1"
+.LASF813:
+ .string "_PSTL_PRAGMA_LOCATION \" [Parallel STL message]: \""
+.LASF1591:
+ .string "___int_size_t_h "
+.LASF598:
+ .string "_ISOC23_SOURCE 1"
+.LASF1586:
+ .string "_SIZE_T_DEFINED_ "
+.LASF315:
+ .string "__FLT128_MANT_DIG__ 113"
+.LASF1927:
+ .string "ADJ_TAI 0x0080"
+.LASF371:
+ .string "__BFLT16_NORM_MAX__ 3.38953138925153547590470800371487867e+38BF16"
+.LASF2132:
+ .string "size_t"
+.LASF881:
+ .string "_GLIBCXX_HAVE_LIMIT_DATA 1"
+.LASF421:
+ .string "__GCC_ATOMIC_LONG_LOCK_FREE 2"
+.LASF1069:
+ .string "_GLIBCXX_CXX_ALLOCATOR_H 1"
+.LASF1084:
+ .string "__glibcxx_want_is_null_pointer"
+.LASF1919:
+ .string "_BITS_TIMEX_H 1"
+.LASF1700:
+ .string "__GXX_TYPEINFO_EQUALITY_INLINE 1"
+.LASF2328:
+ .string "__count"
+.LASF1755:
+ .string "__TIME_T_TYPE __SYSCALL_SLONG_TYPE"
+.LASF855:
+ .string "_GLIBCXX_HAVE_FINITEL 1"
+.LASF147:
+ .string "__WINT_MIN__ 0U"
+.LASF2039:
+ .string "__GTHREAD_ALWAYS_INLINE"
+.LASF1341:
+ .string "__glibcxx_want_fstream_native_handle"
+.LASF1696:
+ .string "_SHARED_PTR_BASE_H 1"
+.LASF741:
+ .string "__stub_fchflags "
+.LASF2108:
+ .string "__glibcxx_want_parallel_algorithm "
+.LASF1574:
+ .string "__need_size_t "
+.LASF1721:
+ .string "__ULONGWORD_TYPE unsigned long int"
+.LASF1336:
+ .string "__glibcxx_want_to_underlying"
+.LASF395:
+ .string "__DEC128_MAX_EXP__ 6145"
+.LASF2242:
+ .string "__conditional_t"
+.LASF1264:
+ .string "__glibcxx_want_constexpr_algorithms"
+.LASF552:
+ .string "_GLIBCXX_BEGIN_EXTERN_C extern \"C\" {"
+.LASF573:
+ .string "__USE_LARGEFILE"
+.LASF1280:
+ .string "__glibcxx_want_jthread"
+.LASF1167:
+ .string "__glibcxx_want_make_from_tuple"
+.LASF1532:
+ .string "__GLIBC_USE_LIB_EXT2 1"
+.LASF91:
+ .string "__cpp_lambdas 200907L"
+.LASF566:
+ .string "__USE_XOPEN"
+.LASF435:
+ .string "__amd64__ 1"
+.LASF1788:
+ .string "SCHED_OTHER 0"
+.LASF159:
+ .string "__GLIBCXX_TYPE_INT_N_0 __int128"
+.LASF1485:
+ .string "__glibcxx_want_byteswap "
+.LASF590:
+ .string "__GLIBC_USE(F) __GLIBC_USE_ ## F"
+.LASF1065:
+ .string "_GLIBCXX_X86_RDSEED 1"
+.LASF821:
+ .string "_GLIBCXX_HAVE_ARPA_INET_H 1"
+.LASF2337:
+ .string "__isoc23_vwscanf"
+.LASF375:
+ .string "__BFLT16_HAS_DENORM__ 1"
+.LASF1266:
+ .string "__glibcxx_want_constexpr_memory"
+.LASF831:
+ .string "_GLIBCXX_HAVE_C99_FLT_EVAL_TYPES 1"
+.LASF475:
+ .string "__WORDSIZE_TIME64_COMPAT32 1"
+.LASF1833:
+ .string "__aligned_be64 __be64 __attribute__((aligned(8)))"
+.LASF733:
+ .string "__attr_access_none(argno) __attribute__ ((__access__ (__none__, argno)))"
+.LASF1012:
+ .string "_GLIBCXX_USE_C99_COMPLEX_ARC 1"
+.LASF1863:
+ .string "CLONE_NEWTIME 0x00000080"
+.LASF718:
+ .string "__attribute_copy__(arg) __attribute__ ((__copy__ (arg)))"
+.LASF1299:
+ .string "__glibcxx_want_freestanding_variant"
+.LASF1121:
+ .string "__glibcxx_want_to_chars"
+.LASF136:
+ .string "__EXCEPTIONS 1"
+.LASF1912:
+ .string "CLOCK_REALTIME_COARSE 5"
+.LASF96:
+ .string "__cpp_variadic_templates 200704L"
+.LASF1633:
+ .string "WCHAR_MIN __WCHAR_MIN"
+.LASF2246:
+ .string "_ZNSt15__uniq_ptr_dataI4BaseSt14default_deleteIS0_ELb1ELb1EEaSEOS3_"
+.LASF204:
+ .string "__INT_FAST64_WIDTH__ 64"
+.LASF725:
+ .string "__LDBL_REDIR_DECL(name) "
+.LASF1384:
+ .string "__glibcxx_want_type_trait_variable_templates "
+.LASF1400:
+ .string "_GLIBCXX_HAS_NESTED_TYPE(_NTYPE) template<typename _Tp, typename = __void_t<>> struct __has_ ##_NTYPE : false_type { }; template<typename _Tp> struct __has_ ##_NTYPE<_Tp, __void_t<typename _Tp::_NTYPE>> : true_type { };"
+.LASF1332:
+ .string "__glibcxx_want_spanstream"
+.LASF461:
+ .string "unix 1"
+.LASF2356:
+ .string "Base"
+.LASF1967:
+ .string "TIME_UTC 1"
+.LASF1386:
+ .string "__glibcxx_want_void_t "
+.LASF2230:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEE7_M_swapERS4_"
+.LASF127:
+ .string "__cpp_variadic_using 201611L"
+.LASF2381:
+ .string "_ZNSt15__exception_ptr4swapERNS_13exception_ptrES1_"
+.LASF1857:
+ .string "CLONE_NEWUTS 0x04000000"
+.LASF493:
+ .string "_GLIBCXX17_DEPRECATED [[__deprecated__]]"
+.LASF252:
+ .string "__LDBL_MIN_EXP__ (-16381)"
+.LASF1685:
+ .string "wctob"
+.LASF620:
+ .string "__USE_ISOC99 1"
+.LASF1612:
+ .string "_BSD_WCHAR_T_"
+.LASF2375:
+ .string "__dso_handle"
+.LASF1204:
+ .string "__glibcxx_memory_resource 201603L"
+.LASF1643:
+ .string "fwprintf"
+.LASF775:
+ .string "_GLIBCXX_DOXYGEN_ONLY(X) "
+.LASF428:
+ .string "__GCC_HAVE_DWARF2_CFI_ASM 1"
+.LASF952:
+ .string "_GLIBCXX_HAVE_SYS_SYSINFO_H 1"
+.LASF1551:
+ .string "__CFLOAT128 _Complex _Float128"
+.LASF1511:
+ .string "__cpp_lib_tuple_element_t 201402L"
+.LASF2215:
+ .string "_ZNSt10_Head_baseILm0EP4BaseLb0EE7_M_headERS2_"
+.LASF1297:
+ .string "__glibcxx_want_freestanding_optional"
+.LASF1097:
+ .string "__glibcxx_want_coroutine"
+.LASF2192:
+ .string "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC4ESt15allocator_arg_tSt13__uses_alloc0"
+.LASF1872:
+ .string "__CPU_CLR_S(cpu,setsize,cpusetp) (__extension__ ({ size_t __cpu = (cpu); __cpu / 8 < (setsize) ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] &= ~__CPUMASK (__cpu)) : 0; }))"
+.LASF90:
+ .string "__cpp_user_defined_literals 200809L"
+.LASF272:
+ .string "__FLT16_MAX_10_EXP__ 4"
+.LASF1091:
+ .string "__glibcxx_void_t 201411L"
+.LASF106:
+ .string "__cpp_decltype_auto 201304L"
+.LASF997:
+ .string "_GLIBCXX98_USE_C99_WCHAR 1"
+.LASF1076:
+ .string "__glibcxx_want_constexpr_new "
+.LASF920:
+ .string "_GLIBCXX_HAVE_SINF 1"
+.LASF1152:
+ .string "__glibcxx_hardware_interference_size 201703L"
+.LASF1010:
+ .string "_GLIBCXX_USE_C11_UCHAR_CXX11 1"
+.LASF1891:
+ .string "CPU_ZERO_S(setsize,cpusetp) __CPU_ZERO_S (setsize, cpusetp)"
+.LASF2302:
+ .string "__int128 unsigned"
+.LASF634:
+ .string "__USE_XOPEN2K8XSI 1"
+.LASF489:
+ .string "_GLIBCXX11_DEPRECATED _GLIBCXX_DEPRECATED"
+.LASF1542:
+ .string "__GLIBC_USE_IEC_60559_FUNCS_EXT_C23 1"
+.LASF2283:
+ .string "tuple_element<1, std::tuple<Base*, std::default_delete<Base> > >"
+.LASF708:
+ .string "__extern_inline extern __inline __attribute__ ((__gnu_inline__))"
+.LASF1794:
+ .string "SCHED_IDLE 5"
+.LASF1242:
+ .string "__glibcxx_want_constexpr_char_traits"
+.LASF2050:
+ .string "_STDDEF_H "
+.LASF1657:
+ .string "vfwscanf"
+.LASF2325:
+ .string "wint_t"
+.LASF396:
+ .string "__DEC128_MIN__ 1E-6143DL"
+.LASF1473:
+ .string "__glibcxx_requires_heap_pred(_First,_Last,_Pred) "
+.LASF594:
+ .string "_ISOC99_SOURCE 1"
+.LASF56:
+ .string "__INT64_TYPE__ long int"
+.LASF1997:
+ .string "PTHREAD_STACK_MIN __sysconf (__SC_THREAD_STACK_MIN_VALUE)"
+.LASF1432:
+ .string "__glibcxx_no_dangling_refs(_U1,_U2) "
+.LASF1073:
+ .string "__glibcxx_want_launder "
+.LASF2018:
+ .string "PTHREAD_ONCE_INIT 0"
+.LASF386:
+ .string "__DEC64_MANT_DIG__ 16"
+.LASF964:
+ .string "_GLIBCXX_HAVE_TRUNCATE 1"
+.LASF1894:
+ .string "CPU_EQUAL_S(setsize,cpusetp1,cpusetp2) __CPU_EQUAL_S (setsize, cpusetp1, cpusetp2)"
+.LASF882:
+ .string "_GLIBCXX_HAVE_LIMIT_FSIZE 1"
+.LASF212:
+ .string "__GCC_IEC_559 2"
+.LASF824:
+ .string "_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1"
+.LASF884:
+ .string "_GLIBCXX_HAVE_LIMIT_VMEM 0"
+.LASF687:
+ .string "__REDIRECT_FORTIFY_NTH __REDIRECT_NTH"
+.LASF568:
+ .string "__USE_UNIX98"
+.LASF1732:
+ .string "__SYSCALL_SLONG_TYPE __SLONGWORD_TYPE"
+.LASF1695:
+ .string "wcstoull"
+.LASF1359:
+ .string "__catch(X) catch(X)"
+.LASF635:
+ .string "__USE_XOPEN2KXSI 1"
+.LASF667:
+ .string "__CONCAT(x,y) x ## y"
+.LASF1803:
+ .string "SCHED_FLAG_UTIL_CLAMP_MIN 0x20"
+.LASF2076:
+ .string "ATOMIC_BOOL_LOCK_FREE __GCC_ATOMIC_BOOL_LOCK_FREE"
+.LASF2226:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEC4ERKS4_"
+.LASF242:
+ .string "__DBL_NORM_MAX__ double(1.79769313486231570814527423731704357e+308L)"
+.LASF276:
+ .string "__FLT16_MIN__ 6.10351562500000000000000000000000000e-5F16"
+.LASF823:
+ .string "_GLIBCXX_HAVE_ASINL 1"
+.LASF1599:
+ .string "_T_WCHAR_ "
+.LASF150:
+ .string "__SCHAR_WIDTH__ 8"
+.LASF742:
+ .string "__stub_gtty "
+.LASF1810:
+ .string "_ASM_GENERIC_TYPES_H "
+.LASF1747:
+ .string "__BLKCNT_T_TYPE __SYSCALL_SLONG_TYPE"
+.LASF37:
+ .string "__ORDER_PDP_ENDIAN__ 3412"
+.LASF1727:
+ .string "__ULONG32_TYPE unsigned int"
+.LASF17:
+ .string "__ATOMIC_ACQUIRE 2"
+.LASF1325:
+ .string "__glibcxx_want_formatters"
+.LASF1520:
+ .string "_Cxx_hashtable_define_trivial_hash(_Tp) template<> struct hash<_Tp> : public __hash_base<size_t, _Tp> { size_t operator()(_Tp __val) const noexcept { return static_cast<size_t>(__val); } };"
+.LASF1021:
+ .string "_GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1"
+.LASF1994:
+ .string "_SIGSET_NWORDS (1024 / (8 * sizeof (unsigned long int)))"
+.LASF1689:
+ .string "wmemmove"
+.LASF1316:
+ .string "__glibcxx_want_ranges_fold"
+.LASF1640:
+ .string "fputwc"
+.LASF2181:
+ .string "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE5resetEPS0_"
+.LASF507:
+ .string "_GLIBCXX20_CONSTEXPR "
+.LASF1589:
+ .string "_SIZE_T_DECLARED "
+.LASF1407:
+ .string "_GLIBCXX_SIZED_DEALLOC"
+.LASF1850:
+ .string "CLONE_SETTLS 0x00080000"
+.LASF1552:
+ .string "_BITS_FLOATN_COMMON_H "
+.LASF1050:
+ .string "_GLIBCXX_USE_RANDOM_TR1 1"
+.LASF1641:
+ .string "fputws"
+.LASF487:
+ .string "_GLIBCXX_DEPRECATED __attribute__ ((__deprecated__))"
+.LASF747:
+ .string "_GLIBCXX_HAVE_GETS"
+.LASF1177:
+ .string "__glibcxx_want_gcd"
+.LASF93:
+ .string "__cpp_attributes 200809L"
+.LASF1130:
+ .string "__glibcxx_quoted_string_io 201304L"
+.LASF1938:
+ .string "MOD_STATUS ADJ_STATUS"
+.LASF1333:
+ .string "__glibcxx_want_stacktrace"
+.LASF2231:
+ .string "_Elements"
+.LASF185:
+ .string "__INT_LEAST32_WIDTH__ 32"
+.LASF2270:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEC4ERKS3_"
+.LASF778:
+ .string "_PSTL_ASSERT(_Condition) __glibcxx_assert(_Condition)"
+.LASF768:
+ .string "_GLIBCXX_FLOAT_IS_IEEE_BINARY32 1"
+.LASF926:
+ .string "_GLIBCXX_HAVE_SQRTL 1"
+.LASF1212:
+ .string "__glibcxx_shared_mutex 201505L"
+.LASF1497:
+ .string "_STL_RAW_STORAGE_ITERATOR_H 1"
+.LASF1958:
+ .string "STA_NANO 0x2000"
+.LASF1819:
+ .string "__struct_group(TAG,NAME,ATTRS,MEMBERS...) union { struct { MEMBERS } ATTRS; struct __struct_group_tag(TAG) { MEMBERS } ATTRS NAME; } ATTRS"
+.LASF498:
+ .string "_GLIBCXX23_DEPRECATED_SUGGEST(ALT) "
+.LASF1825:
+ .string "_ASM_X86_POSIX_TYPES_64_H "
+.LASF267:
+ .string "__FLT16_MANT_DIG__ 11"
+.LASF1215:
+ .string "__glibcxx_want_shared_ptr_weak_type"
+.LASF1615:
+ .string "NULL __null"
+.LASF2289:
+ .string "__get_helper<0, Base*, std::default_delete<Base> >"
+.LASF1433:
+ .string "_GLIBCXX_DEPRECATED_PAIR_CTOR __attribute__ ((__deprecated__ (\"use 'nullptr' instead of '0' to \" \"initialize std::pair of move-only \" \"type and pointer\")))"
+.LASF587:
+ .string "__KERNEL_STRICT_NAMES "
+.LASF165:
+ .string "__INTMAX_WIDTH__ 64"
+.LASF1294:
+ .string "__glibcxx_want_freestanding_array"
+.LASF1832:
+ .string "__aligned_s64 __s64 __attribute__((aligned(8)))"
+.LASF688:
+ .string "__attribute_malloc__ __attribute__ ((__malloc__))"
+.LASF1503:
+ .string "__glibcxx_want_constexpr_tuple "
+.LASF786:
+ .string "_PSTL_PRAGMA(x) _Pragma(#x)"
+.LASF1909:
+ .string "CLOCK_PROCESS_CPUTIME_ID 2"
+.LASF1388:
+ .string "__cpp_lib_result_of_sfinae 201210L"
+.LASF643:
+ .string "__USE_GNU 1"
+.LASF989:
+ .string "_GLIBCXX11_USE_C99_MATH 1"
+.LASF1183:
+ .string "__glibcxx_want_array_constexpr"
+.LASF1664:
+ .string "wcschr"
+.LASF986:
+ .string "_GLIBCXX_STDC_HEADERS 1"
+.LASF2175:
+ .string "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE6_M_ptrEv"
+.LASF2251:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEC4EOS3_"
+.LASF1823:
+ .string "__counted_by_be(m) "
+.LASF1977:
+ .string "__SIZEOF_PTHREAD_COND_T 48"
+.LASF1181:
+ .string "__glibcxx_want_raw_memory_algorithms"
+.LASF163:
+ .string "__UINTMAX_MAX__ 0xffffffffffffffffUL"
+.LASF469:
+ .string "__STDC_IEC_60559_COMPLEX__ 201404L"
+.LASF110:
+ .string "__cpp_unicode_characters 201411L"
+.LASF967:
+ .string "_GLIBCXX_HAVE_UNLINKAT 1"
+.LASF648:
+ .string "__GNU_LIBRARY__"
+.LASF2385:
+ .string "_ZNSt15__uniq_ptr_dataI4BaseSt14default_deleteIS0_ELb1ELb1EECI4St15__uniq_ptr_implIS0_S2_EEPS0_"
+.LASF1354:
+ .string "_GLIBCXX_PLACEMENT_CONSTEXPR inline"
+.LASF641:
+ .string "__USE_ATFILE 1"
+.LASF406:
+ .string "__DEC64X_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143D64x"
+.LASF2247:
+ .string "add_lvalue_reference<Base>"
+.LASF2044:
+ .string "_CONCURRENCE_H 1"
+.LASF1421:
+ .string "__glibcxx_class_requires3(_a,_b,_c,_d) "
+.LASF869:
+ .string "_GLIBCXX_HAVE_ICONV 1"
+.LASF2041:
+ .string "_GLIBCXX_READ_MEM_BARRIER __atomic_thread_fence (__ATOMIC_ACQUIRE)"
+.LASF1831:
+ .string "__aligned_u64 __u64 __attribute__((aligned(8)))"
+.LASF524:
+ .string "_GLIBCXX_END_NAMESPACE_CXX11 }"
+.LASF1163:
+ .string "__glibcxx_want_launder"
+.LASF807:
+ .string "_PSTL_PRAGMA_SIMD_EARLYEXIT "
+.LASF233:
+ .string "__FLT_IS_IEC_60559__ 1"
+.LASF757:
+ .string "_GLIBCXX_TXN_SAFE "
+.LASF1922:
+ .string "ADJ_FREQUENCY 0x0002"
+.LASF800:
+ .string "_PSTL_CPP17_EXECUTION_POLICIES_PRESENT (_MSC_VER >= 1912 && _MSVC_LANG >= 201703L) || (_GLIBCXX_RELEASE >= 9 && __GLIBCXX__ >= 20190503 && __cplusplus >= 201703L)"
+.LASF2391:
+ .string "decltype(nullptr)"
+.LASF862:
+ .string "_GLIBCXX_HAVE_FREXPL 1"
+.LASF2364:
+ .string "this"
+.LASF591:
+ .string "_ISOC95_SOURCE"
+.LASF1017:
+ .string "_GLIBCXX_USE_C99_FENV_TR1 1"
+.LASF1805:
+ .string "SCHED_FLAG_KEEP_ALL (SCHED_FLAG_KEEP_POLICY | SCHED_FLAG_KEEP_PARAMS)"
+.LASF1998:
+ .string "PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE"
+.LASF1192:
+ .string "__glibcxx_chrono 201611L"
+.LASF378:
+ .string "__BFLT16_IS_IEC_60559__ 0"
+.LASF1030:
+ .string "_GLIBCXX_USE_DECIMAL_FLOAT 1"
+.LASF1844:
+ .string "CLONE_PTRACE 0x00002000"
+.LASF1314:
+ .string "__glibcxx_want_ranges_as_const"
+.LASF2379:
+ .string "GNU C++17 15.1.1 20250425 (Red Hat 15.1.1-1) -mtune=generic -march=x86-64 -g3 -gdwarf-5 -O2"
+.LASF199:
+ .string "__INT_FAST16_MAX__ 0x7fffffffffffffffL"
+.LASF1746:
+ .string "__RLIM64_T_TYPE __UQUAD_TYPE"
+.LASF1389:
+ .string "__cpp_lib_is_swappable 201603L"
+.LASF776:
+ .string "_GLIBCXX_USE_TBB_PAR_BACKEND __has_include(<tbb/tbb.h>)"
+.LASF1802:
+ .string "SCHED_FLAG_KEEP_PARAMS 0x10"
+.LASF980:
+ .string "_GLIBCXX_PACKAGE_BUGREPORT \"\""
+.LASF654:
+ .string "__PMT"
+.LASF2232:
+ .string "__conditional<true>"
+.LASF1610:
+ .string "_WCHAR_T_DECLARED "
+.LASF1539:
+ .string "__GLIBC_USE_IEC_60559_FUNCS_EXT"
+.LASF18:
+ .string "__ATOMIC_RELEASE 3"
+.LASF172:
+ .string "__INT64_MAX__ 0x7fffffffffffffffL"
+.LASF2267:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EE7releaseEv"
+.LASF1055:
+ .string "_GLIBCXX_USE_STRUCT_TM_TM_ZONE 1"
+.LASF1981:
+ .string "__LOCK_ALIGNMENT "
+.LASF996:
+ .string "_GLIBCXX98_USE_C99_STDLIB 1"
+.LASF450:
+ .string "__SSE_MATH__ 1"
+.LASF1583:
+ .string "__SIZE_T "
+.LASF1516:
+ .string "_STL_FUNCTION_H 1"
+.LASF2275:
+ .string "__detail"
+.LASF1273:
+ .string "__glibcxx_want_constexpr_dynamic_alloc"
+.LASF1201:
+ .string "__glibcxx_want_map_try_emplace"
+.LASF10:
+ .string "__GNUC__ 15"
+.LASF202:
+ .string "__INT_FAST32_WIDTH__ 64"
+.LASF538:
+ .string "_GLIBCXX_CLANG"
+.LASF1500:
+ .string "_UNIQUE_PTR_H 1"
+.LASF465:
+ .string "_STDC_PREDEF_H 1"
+.LASF1826:
+ .string "__kernel_old_uid_t __kernel_old_uid_t"
+.LASF478:
+ .string "_GLIBCXX_RELEASE 15"
+.LASF2189:
+ .string "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC4ERKS2_"
+.LASF999:
+ .string "_GLIBCXX_CAN_ALIGNAS_DESTRUCTIVE_SIZE 1"
+.LASF372:
+ .string "__BFLT16_MIN__ 1.17549435082228750796873653722224568e-38BF16"
+.LASF1475:
+ .string "__glibcxx_requires_string_len(_String,_Len) "
+.LASF1590:
+ .string "__DEFINED_size_t "
+.LASF2034:
+ .string "__GTHREAD_TIME_INIT {0,0}"
+.LASF249:
+ .string "__DBL_IS_IEC_60559__ 1"
+.LASF327:
+ .string "__FLT128_HAS_DENORM__ 1"
+.LASF1929:
+ .string "ADJ_MICRO 0x1000"
+.LASF1180:
+ .string "__glibcxx_raw_memory_algorithms 201606L"
+.LASF1283:
+ .string "__glibcxx_want_polymorphic_allocator"
+.LASF432:
+ .string "__SIZEOF_WINT_T__ 4"
+.LASF2058:
+ .string "_BSD_PTRDIFF_T_ "
+.LASF2120:
+ .string "__cpp_lib_make_unique 201304L"
+.LASF2284:
+ .string "__get_helper<1, std::default_delete<Base> >"
+.LASF1434:
+ .string "_GLIBCXX_DEPRECATED_PAIR_CTOR"
+.LASF2263:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EE11get_deleterEv"
+.LASF981:
+ .string "_GLIBCXX_PACKAGE_NAME \"package-unused\""
+.LASF1548:
+ .string "__HAVE_FLOAT64X 1"
+.LASF479:
+ .string "__GLIBCXX__"
+.LASF2097:
+ .string "_GLIBCXX_TSAN_MUTEX_POST_SIGNAL(X) "
+.LASF1414:
+ .string "_GLIBCXX26_DEF_VAL_T(T) "
+.LASF113:
+ .string "__cpp_enumerator_attributes 201411L"
+.LASF1760:
+ .string "__KEY_T_TYPE __S32_TYPE"
+.LASF1194:
+ .string "__glibcxx_execution 201902L"
+.LASF1928:
+ .string "ADJ_SETOFFSET 0x0100"
+.LASF141:
+ .string "__INT_MAX__ 0x7fffffff"
+.LASF1150:
+ .string "__glibcxx_has_unique_object_representations 201606L"
+.LASF2353:
+ .string "__isoc23_wcstoull"
+.LASF515:
+ .string "_GLIBCXX_NOTHROW _GLIBCXX_USE_NOEXCEPT"
+.LASF2368:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEC2Ev"
+.LASF1124:
+ .string "__glibcxx_complex_udls 201309L"
+.LASF61:
+ .string "__INT_LEAST8_TYPE__ signed char"
+.LASF1600:
+ .string "_T_WCHAR "
+.LASF518:
+ .string "_GLIBCXX_NOEXCEPT_QUAL noexcept (_NE)"
+.LASF608:
+ .string "_XOPEN_SOURCE_EXTENDED 1"
+.LASF2395:
+ .string "execution"
+.LASF448:
+ .string "__SSE2__ 1"
+.LASF1447:
+ .string "__glibcxx_floating"
+.LASF1598:
+ .string "_WCHAR_T "
+.LASF2217:
+ .string "_Tuple_impl<0, Base*, std::default_delete<Base> >"
+.LASF1720:
+ .string "__SLONGWORD_TYPE long int"
+.LASF1888:
+ .string "CPU_SET_S(cpu,setsize,cpusetp) __CPU_SET_S (cpu, setsize, cpusetp)"
+.LASF2190:
+ .string "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC4ERKS3_"
+.LASF858:
+ .string "_GLIBCXX_HAVE_FLOORL 1"
+.LASF1510:
+ .string "__glibcxx_want_constrained_equality "
+.LASF314:
+ .string "__FLT64_IS_IEC_60559__ 1"
+.LASF260:
+ .string "__LDBL_MIN__ 3.36210314311209350626267781732175260e-4932L"
+.LASF431:
+ .string "__SIZEOF_WCHAR_T__ 4"
+.LASF793:
+ .string "_PSTL_PRAGMA_SIMD _PSTL_PRAGMA(omp simd)"
+.LASF214:
+ .string "__FLT_EVAL_METHOD__ 0"
+.LASF1219:
+ .string "__glibcxx_want_unordered_map_try_emplace"
+.LASF650:
+ .string "__GLIBC__ 2"
+.LASF368:
+ .string "__BFLT16_MAX_10_EXP__ 38"
+.LASF1408:
+ .string "_GLIBCXX_OPERATOR_DELETE"
+.LASF169:
+ .string "__INT8_MAX__ 0x7f"
+.LASF1943:
+ .string "MOD_MICRO ADJ_MICRO"
+.LASF1915:
+ .string "CLOCK_REALTIME_ALARM 8"
+.LASF1602:
+ .string "_WCHAR_T_ "
+.LASF526:
+ .string "_GLIBCXX_INLINE_VERSION 0"
+.LASF914:
+ .string "_GLIBCXX_HAVE_READLINK 1"
+.LASF542:
+ .string "_GLIBCXX_END_NAMESPACE_LDBL "
+.LASF1229:
+ .string "__glibcxx_want_bit_cast"
+.LASF1036:
+ .string "_GLIBCXX_USE_GETTIMEOFDAY 1"
+.LASF2378:
+ .string "_Z4funcv"
+.LASF1351:
+ .string "__glibcxx_want_to_string"
+.LASF1654:
+ .string "swscanf"
+.LASF557:
+ .string "_FEATURES_H 1"
+.LASF665:
+ .string "__P(args) args"
+.LASF1940:
+ .string "MOD_CLKB ADJ_TICK"
+.LASF2386:
+ .string "_ZNKSt10unique_ptrI4BaseSt14default_deleteIS0_EE3getEv"
+.LASF1564:
+ .string "__HAVE_FLOAT128_UNLIKE_LDBL (__HAVE_DISTINCT_FLOAT128 && __LDBL_MANT_DIG__ != 113)"
+.LASF2130:
+ .string "__uses_alloc0"
+.LASF976:
+ .string "_GLIBCXX_HAVE_WRITEV 1"
+.LASF138:
+ .string "__GXX_ABI_VERSION 1020"
+.LASF120:
+ .string "__cpp_capture_star_this 201603L"
+.LASF1005:
+ .string "_GLIBCXX_STDIO_EOF -1"
+.LASF2383:
+ .string "__nothrow_default_constructible"
+.LASF1580:
+ .string "_SYS_SIZE_T_H "
+.LASF1745:
+ .string "__RLIM_T_TYPE __SYSCALL_ULONG_TYPE"
+.LASF277:
+ .string "__FLT16_EPSILON__ 9.76562500000000000000000000000000000e-4F16"
+.LASF1043:
+ .string "_GLIBCXX_USE_NANOSLEEP 1"
+.LASF890:
+ .string "_GLIBCXX_HAVE_LOCALE_H 1"
+.LASF1058:
+ .string "_GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_CXX20 1"
+.LASF749:
+ .string "_GLIBCXX_HAVE_FLOAT128_MATH 1"
+.LASF1339:
+ .string "__glibcxx_want_algorithm_default_value_type"
+.LASF2218:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEE7_M_headERS4_"
+.LASF1057:
+ .string "_GLIBCXX_USE_TMPNAM 1"
+.LASF306:
+ .string "__FLT64_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF329:
+ .string "__FLT128_HAS_QUIET_NAN__ 1"
+.LASF1757:
+ .string "__SUSECONDS_T_TYPE __SYSCALL_SLONG_TYPE"
+.LASF938:
+ .string "_GLIBCXX_HAVE_STRUCT_DIRENT_D_TYPE 1"
+.LASF436:
+ .string "__x86_64 1"
+.LASF895:
+ .string "_GLIBCXX_HAVE_LSEEK 1"
+.LASF1814:
+ .string "__ASM_GENERIC_BITS_PER_LONG "
+.LASF2239:
+ .string "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEE4swapERS4_"
+.LASF1456:
+ .string "_GLIBCXX_MAKE_MOVE_ITERATOR(_Iter) std::make_move_iterator(_Iter)"
+.LASF1980:
+ .string "__SIZEOF_PTHREAD_BARRIERATTR_T 4"
+.LASF1007:
+ .string "_GLIBCXX_STDIO_SEEK_END 2"
+.LASF1187:
+ .string "__glibcxx_want_clamp"
+.LASF2010:
+ .string "PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE"
+.LASF580:
+ .string "__USE_FORTIFY_LEVEL"
+.LASF1545:
+ .string "_BITS_FLOATN_H "
+.LASF2011:
+ .string "PTHREAD_PROCESS_SHARED PTHREAD_PROCESS_SHARED"
+.LASF116:
+ .string "__cpp_nontype_template_args 201411L"
+.LASF811:
+ .string "_PSTL_PRAGMA_VECTOR_UNALIGNED "
+.LASF1691:
+ .string "wprintf"
+.LASF2339:
+ .string "tm_min"
+.LASF2113:
+ .string "__glibcxx_want_smart_ptr_for_overwrite "
+.LASF1886:
+ .string "CPU_ZERO(cpusetp) __CPU_ZERO_S (sizeof (cpu_set_t), cpusetp)"
+.LASF1756:
+ .string "__USECONDS_T_TYPE __U32_TYPE"
+.LASF2249:
+ .string "unique_ptr<Base, std::default_delete<Base> >"
+.LASF1970:
+ .string "_THREAD_SHARED_TYPES_H 1"
+.LASF951:
+ .string "_GLIBCXX_HAVE_SYS_STAT_H 1"
+.LASF1213:
+ .string "__glibcxx_want_shared_mutex"
+.LASF1824:
+ .string "__FD_SETSIZE"
+.LASF1964:
+ .string "__clockid_t_defined 1"
+.LASF597:
+ .string "_ISOC23_SOURCE"
+.LASF571:
+ .string "__USE_XOPEN2K8"
+.LASF894:
+ .string "_GLIBCXX_HAVE_LOGL 1"
+.LASF2238:
+ .string "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEaSEOS4_"
+.LASF1665:
+ .string "wcscmp"
+.LASF1188:
+ .string "__glibcxx_sample 201603L"
+.LASF817:
+ .string "_GLIBCXX_HAVE_ACOSF 1"
+.LASF1616:
+ .string "__need_NULL"
+.LASF2065:
+ .string "offsetof(TYPE,MEMBER) __builtin_offsetof (TYPE, MEMBER)"
+.LASF1506:
+ .string "__glibcxx_want_apply "
+.LASF585:
+ .string "__GLIBC_USE_DEPRECATED_SCANF"
+.LASF2093:
+ .string "_GLIBCXX_TSAN_MUTEX_LOCKED(X) "
+.LASF476:
+ .string "__SYSCALL_WORDSIZE 64"
+.LASF1507:
+ .string "__glibcxx_want_make_from_tuple "
+.LASF2322:
+ .string "fp_offset"
+.LASF1498:
+ .string "_GLIBCXX_ALIGN_H 1"
+.LASF380:
+ .string "__DEC32_MIN_EXP__ (-94)"
+.LASF1245:
+ .string "__glibcxx_want_is_pointer_interconvertible"
+.LASF1173:
+ .string "__glibcxx_want_variant"
+.LASF1650:
+ .string "mbsrtowcs"
+.LASF2144:
+ .string "_M_get"
+.LASF1226:
+ .string "__glibcxx_want_bind_front"
+.LASF410:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1"
+.LASF1444:
+ .string "__glibcxx_max_digits10(_Tp) (2 + __glibcxx_floating(_Tp, __FLT_MANT_DIG__, __DBL_MANT_DIG__, __LDBL_MANT_DIG__) * 643L / 2136)"
+.LASF2321:
+ .string "gp_offset"
+.LASF864:
+ .string "_GLIBCXX_HAVE_GETIPINFO 1"
+.LASF673:
+ .string "__bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)"
+.LASF1843:
+ .string "CLONE_PIDFD 0x00001000"
+.LASF1406:
+ .string "_GLIBCXX_SIZED_DEALLOC(p,n) (p), (n) * sizeof(_Tp)"
+.LASF927:
+ .string "_GLIBCXX_HAVE_STACKTRACE 1"
+.LASF625:
+ .string "__USE_POSIX199309 1"
+.LASF59:
+ .string "__UINT32_TYPE__ unsigned int"
+.LASF758:
+ .string "_GLIBCXX_TXN_SAFE_DYN "
+.LASF929:
+ .string "_GLIBCXX_HAVE_STDBOOL_H 1"
+.LASF693:
+ .string "__attribute_maybe_unused__ __attribute__ ((__unused__))"
+.LASF348:
+ .string "__FLT64X_DIG__ 18"
+.LASF142:
+ .string "__LONG_MAX__ 0x7fffffffffffffffL"
+.LASF1774:
+ .string "__TIME64_T_TYPE __TIME_T_TYPE"
+.LASF2307:
+ .string "__int128"
+.LASF2180:
+ .string "reset"
+.LASF1908:
+ .string "CLOCK_MONOTONIC 1"
+.LASF2310:
+ .string "char32_t"
+.LASF1508:
+ .string "__glibcxx_want_ranges_zip "
+.LASF2345:
+ .string "tm_yday"
+.LASF2201:
+ .string "_Tuple_impl"
+.LASF1649:
+ .string "mbsinit"
+.LASF255:
+ .string "__LDBL_MAX_10_EXP__ 4932"
+.LASF1165:
+ .string "__glibcxx_want_logical_traits"
+.LASF1865:
+ .string "_BITS_CPU_SET_H 1"
+.LASF130:
+ .string "__cpp_sized_deallocation 201309L"
+.LASF391:
+ .string "__DEC64_EPSILON__ 1E-15DD"
+.LASF1484:
+ .string "__glibcxx_want_bit_cast "
+.LASF829:
+ .string "_GLIBCXX_HAVE_ATOMIC_LOCK_POLICY 1"
+.LASF1186:
+ .string "__glibcxx_clamp 201603L"
+.LASF1834:
+ .string "__aligned_le64 __le64 __attribute__((aligned(8)))"
+.LASF125:
+ .string "__cpp_template_auto 201606L"
+.LASF1951:
+ .string "STA_UNSYNC 0x0040"
+.LASF2153:
+ .string "~exception_ptr"
+.LASF2077:
+ .string "ATOMIC_CHAR_LOCK_FREE __GCC_ATOMIC_CHAR_LOCK_FREE"
+.LASF1892:
+ .string "CPU_COUNT_S(setsize,cpusetp) __CPU_COUNT_S (setsize, cpusetp)"
+.LASF1228:
+ .string "__glibcxx_want_starts_ends_with"
+.LASF2118:
+ .string "__cpp_lib_enable_shared_from_this 201603L"
+.LASF381:
+ .string "__DEC32_MAX_EXP__ 97"
+.LASF1742:
+ .string "__OFF_T_TYPE __SYSCALL_SLONG_TYPE"
+.LASF346:
+ .string "__FLT32X_IS_IEC_60559__ 1"
+.LASF497:
+ .string "_GLIBCXX23_DEPRECATED "
+.LASF2350:
+ .string "__isoc23_wcstoul"
+.LASF1378:
+ .string "__glibcxx_want_logical_traits "
+.LASF1268:
+ .string "__glibcxx_want_atomic_wait"
+.LASF2195:
+ .string "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EE7_M_headERKS3_"
+.LASF1468:
+ .string "__glibcxx_requires_partitioned_lower(_First,_Last,_Value) "
+.LASF1255:
+ .string "__glibcxx_want_type_identity"
+.LASF2264:
+ .string "_ZNKSt10unique_ptrI4BaseSt14default_deleteIS0_EE11get_deleterEv"
+.LASF1117:
+ .string "__glibcxx_want_tuples_by_type"
+.LASF464:
+ .string "_GNU_SOURCE 1"
+.LASF325:
+ .string "__FLT128_EPSILON__ 1.92592994438723585305597794258492732e-34F128"
+.LASF430:
+ .string "__SIZEOF_INT128__ 16"
+.LASF1613:
+ .string "__need_wchar_t"
+.LASF330:
+ .string "__FLT128_IS_IEC_60559__ 1"
+.LASF1015:
+ .string "_GLIBCXX_USE_C99_CTYPE_TR1 1"
+.LASF2303:
+ .string "signed char"
+.LASF763:
+ .string "_GLIBCXX_USE_C99_COMPLEX _GLIBCXX11_USE_C99_COMPLEX"
+.LASF1290:
+ .string "__glibcxx_want_constexpr_typeinfo"
+.LASF765:
+ .string "_GLIBCXX_USE_C99_STDLIB _GLIBCXX11_USE_C99_STDLIB"
+.LASF1379:
+ .string "__glibcxx_want_reference_from_temporary "
+.LASF439:
+ .string "__SIZEOF_FLOAT128__ 16"
+.LASF1577:
+ .string "__size_t__ "
+.LASF14:
+ .string "__GNUC_RH_RELEASE__ 1"
+.LASF627:
+ .string "__USE_XOPEN2K 1"
+.LASF1031:
+ .string "_GLIBCXX_USE_DEV_RANDOM 1"
+.LASF1395:
+ .string "__cpp_lib_has_unique_object_representations 201606L"
+.LASF1322:
+ .string "__glibcxx_want_adaptor_iterator_pair_constructor"
+.LASF988:
+ .string "_GLIBCXX11_USE_C99_COMPLEX 1"
+.LASF1606:
+ .string "_WCHAR_T_H "
+.LASF360:
+ .string "__FLT64X_HAS_INFINITY__ 1"
+.LASF1934:
+ .string "MOD_OFFSET ADJ_OFFSET"
+.LASF694:
+ .string "__attribute_used__ __attribute__ ((__used__))"
+.LASF1116:
+ .string "__glibcxx_tuples_by_type 201304L"
+.LASF1032:
+ .string "_GLIBCXX_USE_FCHMOD 1"
+.LASF33:
+ .string "__CHAR_BIT__ 8"
+.LASF607:
+ .string "_XOPEN_SOURCE_EXTENDED"
+.LASF1653:
+ .string "swprintf"
+.LASF2148:
+ .string "_ZNSt15__exception_ptr13exception_ptrC4EDn"
+.LASF1295:
+ .string "__glibcxx_want_freestanding_cstring"
+.LASF1544:
+ .string "__GLIBC_USE_IEC_60559_TYPES_EXT 1"
+.LASF2250:
+ .string "unique_ptr"
+.LASF1945:
+ .string "STA_PLL 0x0001"
+.LASF2067:
+ .string "_GXX_NULLPTR_T "
+.LASF739:
+ .string "__stub___compat_bdflush "
+.LASF2162:
+ .string "default_delete"
+.LASF937:
+ .string "_GLIBCXX_HAVE_STRTOLD 1"
+.LASF2015:
+ .string "PTHREAD_CANCEL_DEFERRED PTHREAD_CANCEL_DEFERRED"
+.LASF1811:
+ .string "_ASM_GENERIC_INT_LL64_H "
+.LASF1990:
+ .string "__ONCE_FLAG_INIT { 0 }"
+.LASF2279:
+ .string "_Nth_type<0, Base*, std::default_delete<Base> >"
+.LASF1660:
+ .string "vwprintf"
+.LASF1567:
+ .string "__f64(x) x ##f64"
+.LASF2351:
+ .string "__isoc23_wscanf"
+.LASF1585:
+ .string "_BSD_SIZE_T_ "
+.LASF712:
+ .string "__va_arg_pack_len() __builtin_va_arg_pack_len ()"
+.LASF1957:
+ .string "STA_CLOCKERR 0x1000"
+.LASF2021:
+ .string "__cleanup_fct_attribute "
+.LASF1426:
+ .string "__glibcxx_requires_nonempty() __glibcxx_assert(!this->empty())"
+.LASF696:
+ .string "__attribute_deprecated__ __attribute__ ((__deprecated__))"
+.LASF55:
+ .string "__INT32_TYPE__ int"
+.LASF1969:
+ .string "_BITS_PTHREADTYPES_COMMON_H 1"
+.LASF81:
+ .string "__GXX_RTTI 1"
+.LASF1009:
+ .string "_GLIBCXX_SYMVER_GNU 1"
+.LASF670:
+ .string "__BEGIN_DECLS extern \"C\" {"
+.LASF1667:
+ .string "wcscpy"
+.LASF586:
+ .string "__GLIBC_USE_C23_STRTOL"
+.LASF2308:
+ .string "wchar_t"
+.LASF1658:
+ .string "vswprintf"
+.LASF1495:
+ .string "_EXT_ALLOC_TRAITS_H 1"
+.LASF426:
+ .string "__GCC_ATOMIC_POINTER_LOCK_FREE 2"
+.LASF1651:
+ .string "putwc"
+.LASF1710:
+ .string "_GLIBCXX_GCC_GTHR_POSIX_H "
+.LASF1022:
+ .string "_GLIBCXX_USE_C99_MATH_FUNCS 1"
+.LASF1216:
+ .string "__glibcxx_string_view 201803L"
+.LASF1556:
+ .string "__HAVE_FLOAT32X 1"
+.LASF897:
+ .string "_GLIBCXX_HAVE_MEMALIGN 1"
+.LASF853:
+ .string "_GLIBCXX_HAVE_FINITE 1"
+.LASF288:
+ .string "__FLT32_MAX_10_EXP__ 38"
+.LASF1770:
+ .string "__STATFS_MATCHES_STATFS64 1"
+.LASF1419:
+ .string "__glibcxx_class_requires(_a,_b) "
+.LASF309:
+ .string "__FLT64_EPSILON__ 2.22044604925031308084726333618164062e-16F64"
+.LASF1830:
+ .string "__bitwise__ __bitwise"
+.LASF1445:
+ .string "__glibcxx_digits10(_Tp) __glibcxx_floating(_Tp, __FLT_DIG__, __DBL_DIG__, __LDBL_DIG__)"
+.LASF1968:
+ .string "__isleap(year) ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))"
+.LASF388:
+ .string "__DEC64_MAX_EXP__ 385"
+.LASF866:
+ .string "_GLIBCXX_HAVE_HYPOT 1"
+.LASF816:
+ .string "_PSTL_PRAGMA_MESSAGE_POLICIES(x) "
+.LASF95:
+ .string "__cpp_rvalue_references 200610L"
+.LASF2164:
+ .string "operator()"
+.LASF933:
+ .string "_GLIBCXX_HAVE_STRERROR_R 1"
+.LASF1597:
+ .string "__WCHAR_T__ "
+.LASF104:
+ .string "__cpp_init_captures 201304L"
+.LASF209:
+ .string "__INTPTR_MAX__ 0x7fffffffffffffffL"
+.LASF2253:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED4Ev"
+.LASF263:
+ .string "__LDBL_HAS_DENORM__ 1"
+.LASF1424:
+ .string "__glibcxx_requires_non_empty_range(_First,_Last) __glibcxx_assert(_First != _Last)"
+.LASF595:
+ .string "_ISOC11_SOURCE"
+.LASF2052:
+ .string "_ANSI_STDDEF_H "
+.LASF1060:
+ .string "_GLIBCXX_USE_UTIME 1"
+.LASF545:
+ .string "_GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_END_NAMESPACE_CXX11"
+.LASF1961:
+ .string "STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)"
+.LASF658:
+ .string "__LEAF , __leaf__"
+.LASF1954:
+ .string "STA_PPSJITTER 0x0200"
+.LASF2331:
+ .string "mbstate_t"
+.LASF1013:
+ .string "_GLIBCXX_USE_C99_COMPLEX_TR1 1"
+.LASF483:
+ .string "_GLIBCXX_NORETURN __attribute__ ((__noreturn__))"
+.LASF773:
+ .string "_GLIBCXX_HAVE_BUILTIN_LAUNDER 1"
+.LASF1895:
+ .string "CPU_AND(destset,srcset1,srcset2) __CPU_OP_S (sizeof (cpu_set_t), destset, srcset1, srcset2, &)"
+.LASF1054:
+ .string "_GLIBCXX_USE_SENDFILE 1"
+.LASF420:
+ .string "__GCC_ATOMIC_INT_LOCK_FREE 2"
+.LASF194:
+ .string "__UINT32_C(c) c ## U"
+.LASF303:
+ .string "__FLT64_MAX_EXP__ 1024"
+.LASF2102:
+ .string "__glibcxx_want_atomic_value_initialization "
+.LASF2344:
+ .string "tm_wday"
+.LASF201:
+ .string "__INT_FAST32_MAX__ 0x7fffffffffffffffL"
+.LASF1515:
+ .string "__glibcxx_no_dangling_refs(U) "
+.LASF1249:
+ .string "__glibcxx_want_source_location"
+.LASF2111:
+ .string "__glibcxx_want_shared_ptr_arrays "
+.LASF407:
+ .string "__REGISTER_PREFIX__ "
+.LASF953:
+ .string "_GLIBCXX_HAVE_SYS_TIME_H 1"
+.LASF2141:
+ .string "_M_release"
+.LASF2166:
+ .string "__uniq_ptr_impl<Base, std::default_delete<Base> >"
+.LASF872:
+ .string "_GLIBCXX_HAVE_ISINFL 1"
+.LASF1352:
+ .string "__glibcxx_want_modules"
+.LASF1820:
+ .string "__DECLARE_FLEX_ARRAY(T,member) T member[0]"
+.LASF1800:
+ .string "SCHED_FLAG_DL_OVERRUN 0x04"
+.LASF501:
+ .string "_GLIBCXX_ABI_TAG_CXX11 __attribute ((__abi_tag__ (\"cxx11\")))"
+.LASF1082:
+ .string "__glibcxx_want_allocator_traits_is_always_equal"
+.LASF1329:
+ .string "__glibcxx_want_move_only_function"
+.LASF1477:
+ .string "__glibcxx_requires_irreflexive2(_First,_Last) "
+.LASF1566:
+ .string "__f32(x) x ##f32"
+.LASF1048:
+ .string "_GLIBCXX_USE_PTHREAD_RWLOCK_CLOCKLOCK 1"
+.LASF2326:
+ .string "__wch"
+.LASF500:
+ .string "_GLIBCXX26_DEPRECATED_SUGGEST(ALT) "
+.LASF2229:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEC4EOS4_"
+.LASF1441:
+ .ascii "_GLIBCXX_INT_N_TRAITS(T,WIDTH) __extension__ template<> stru"
+ .ascii "ct __is_int"
+ .string "eger_nonstrict<T> { enum { __value = 1 }; typedef std::__true_type __type; enum { __width = WIDTH }; }; __extension__ template<> struct __is_integer_nonstrict<unsigned T> { enum { __value = 1 }; typedef std::__true_type __type; enum { __width = WIDTH }; };"
+.LASF1438:
+ .string "__INT_N(TYPE) __extension__ template<> struct __is_integer<TYPE> { enum { __value = 1 }; typedef __true_type __type; }; __extension__ template<> struct __is_integer<unsigned TYPE> { enum { __value = 1 }; typedef __true_type __type; };"
+.LASF850:
+ .string "_GLIBCXX_HAVE_FCNTL_H 1"
+.LASF2214:
+ .string "_ZNSt10_Head_baseILm0EP4BaseLb0EEC4ESt15allocator_arg_tSt13__uses_alloc0"
+.LASF1221:
+ .string "__glibcxx_want_atomic_flag_test"
+.LASF1373:
+ .string "__glibcxx_want_is_null_pointer "
+.LASF2167:
+ .string "_Ptr<Base, std::default_delete<Base>, void>"
+.LASF901:
+ .string "_GLIBCXX_HAVE_MODFL 1"
+.LASF1795:
+ .string "SCHED_DEADLINE 6"
+.LASF859:
+ .string "_GLIBCXX_HAVE_FMODF 1"
+.LASF2193:
+ .string "_M_head"
+.LASF457:
+ .string "__linux__ 1"
+.LASF1632:
+ .string "__CORRECT_ISO_CPP_WCHAR_H_PROTO "
+.LASF2281:
+ .string "tuple_element<0, std::tuple<Base*, std::default_delete<Base> > >"
+.LASF1363:
+ .string "__glibcxx_want_bool_constant "
+.LASF2028:
+ .string "__GTHREAD_HAS_COND 1"
+.LASF1429:
+ .string "_GLIBCXX_DEBUG_ONLY(_Statement) "
+.LASF1161:
+ .string "__glibcxx_launder 201606L"
+.LASF731:
+ .string "__attr_access(x) __attribute__ ((__access__ x))"
+.LASF2057:
+ .string "_PTRDIFF_T_ "
+.LASF1944:
+ .string "MOD_NANO ADJ_NANO"
+.LASF1659:
+ .string "vswscanf"
+.LASF669:
+ .string "__ptr_t void *"
+.LASF1899:
+ .string "CPU_OR_S(setsize,destset,srcset1,srcset2) __CPU_OP_S (setsize, destset, srcset1, srcset2, |)"
+.LASF2342:
+ .string "tm_mon"
+.LASF940:
+ .string "_GLIBCXX_HAVE_SYMLINK 1"
+.LASF1006:
+ .string "_GLIBCXX_STDIO_SEEK_CUR 1"
+.LASF1053:
+ .string "_GLIBCXX_USE_SC_NPROCESSORS_ONLN 1"
+.LASF921:
+ .string "_GLIBCXX_HAVE_SINHF 1"
+.LASF1501:
+ .string "_GLIBCXX_TUPLE 1"
+.LASF2171:
+ .string "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EEC4EPS0_"
+.LASF6:
+ .string "__STDC_HOSTED__ 1"
+.LASF1712:
+ .string "__GTHREADS_CXX0X 1"
+.LASF888:
+ .string "_GLIBCXX_HAVE_LINUX_RANDOM_H 1"
+.LASF472:
+ .string "_MEMORYFWD_H 1"
+.LASF71:
+ .string "__INT_FAST32_TYPE__ long int"
+.LASF2063:
+ .string "__need_ptrdiff_t"
+.LASF2287:
+ .string "get<1, Base*, std::default_delete<Base> >"
+.LASF991:
+ .string "_GLIBCXX11_USE_C99_STDLIB 1"
+.LASF1136:
+ .string "__glibcxx_addressof_constexpr 201603L"
+.LASF438:
+ .string "__SIZEOF_FLOAT80__ 16"
+.LASF2157:
+ .string "__cxa_exception_type"
+.LASF930:
+ .string "_GLIBCXX_HAVE_STDINT_H 1"
+.LASF183:
+ .string "__INT_LEAST32_MAX__ 0x7fffffff"
+.LASF287:
+ .string "__FLT32_MAX_EXP__ 128"
+.LASF561:
+ .string "__USE_ISOCXX11"
+.LASF101:
+ .string "__cpp_ref_qualifiers 200710L"
+.LASF2305:
+ .string "long int"
+.LASF1953:
+ .string "STA_PPSSIGNAL 0x0100"
+.LASF402:
+ .string "__DEC64X_MAX_EXP__ 6145"
+.LASF8:
+ .string "__STDC_EMBED_FOUND__ 1"
+.LASF1488:
+ .string "__glibcxx_want_endian "
+.LASF246:
+ .string "__DBL_HAS_DENORM__ 1"
+.LASF2115:
+ .string "__glibcxx_want_transparent_operators "
+.LASF599:
+ .string "_ISOC2Y_SOURCE"
+.LASF175:
+ .string "__UINT32_MAX__ 0xffffffffU"
+.LASF304:
+ .string "__FLT64_MAX_10_EXP__ 308"
+.LASF273:
+ .string "__FLT16_DECIMAL_DIG__ 5"
+.LASF2258:
+ .string "pointer"
+.LASF2173:
+ .string "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EEaSEOS3_"
+.LASF2055:
+ .string "_T_PTRDIFF "
+.LASF589:
+ .string "__glibc_clang_prereq(maj,min) 0"
+.LASF1156:
+ .string "__glibcxx_want_invoke"
+.LASF887:
+ .string "_GLIBCXX_HAVE_LINUX_FUTEX 1"
+.LASF416:
+ .string "__GCC_ATOMIC_CHAR16_T_LOCK_FREE 2"
+.LASF815:
+ .string "_PSTL_PRAGMA_MESSAGE(x) "
+.LASF766:
+ .string "_GLIBCXX_USE_C99_WCHAR _GLIBCXX11_USE_C99_WCHAR"
+.LASF1184:
+ .string "__glibcxx_nonmember_container_access 201411L"
+.LASF409:
+ .string "__GNUC_STDC_INLINE__ 1"
+.LASF886:
+ .string "_GLIBCXX_HAVE_LINK_H 1"
+.LASF983:
+ .string "_GLIBCXX_PACKAGE_TARNAME \"libstdc++\""
+.LASF2343:
+ .string "tm_year"
+.LASF1789:
+ .string "SCHED_FIFO 1"
+.LASF2245:
+ .string "_ZNSt15__uniq_ptr_dataI4BaseSt14default_deleteIS0_ELb1ELb1EEC4EOS3_"
+.LASF1081:
+ .string "__glibcxx_allocator_traits_is_always_equal 201411L"
+.LASF2237:
+ .string "_ZNSt5tupleIJP4BaseSt14default_deleteIS0_EEEaSERKS4_"
+.LASF2024:
+ .string "pthread_cleanup_push_defer_np(routine,arg) do { __pthread_cleanup_class __clframe (routine, arg); __clframe.__defer ()"
+.LASF750:
+ .string "_GLIBCXX_MAY_HAVE___CXA_THREAD_ATEXIT_IMPL 1"
+.LASF1645:
+ .string "getwc"
+.LASF806:
+ .string "_PSTL_UDS_PRESENT "
+.LASF1974:
+ .string "__SIZEOF_PTHREAD_RWLOCK_T 56"
+.LASF1822:
+ .string "__counted_by_le(m) "
+.LASF666:
+ .string "__PMT(args) args"
+.LASF1829:
+ .string "__bitwise "
+.LASF2047:
+ .string "__cpp_lib_uncaught_exceptions 201411L"
+.LASF1457:
+ .string "_GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR(_Iter) std::__make_move_if_noexcept_iterator(_Iter)"
+.LASF1692:
+ .string "wscanf"
+.LASF155:
+ .string "__WCHAR_WIDTH__ 32"
+.LASF5:
+ .string "__STDC_UTF_32__ 1"
+.LASF2257:
+ .string "_ZNKSt10unique_ptrI4BaseSt14default_deleteIS0_EEdeEv"
+.LASF308:
+ .string "__FLT64_MIN__ 2.22507385850720138309023271733240406e-308F64"
+.LASF2043:
+ .string "_SYS_SINGLE_THREADED_H "
+.LASF975:
+ .string "_GLIBCXX_HAVE_WCTYPE_H 1"
+.LASF2056:
+ .string "__PTRDIFF_T "
+.LASF1876:
+ .ascii "__CPU_OP_S(setsize,destset,srcset1,srcset2,op) (__extension_"
+ .ascii "_ ({ cpu_set_t *__dest = (destset); const __cp"
+ .string "u_mask *__arr1 = (srcset1)->__bits; const __cpu_mask *__arr2 = (srcset2)->__bits; size_t __imax = (setsize) / sizeof (__cpu_mask); size_t __i; for (__i = 0; __i < __imax; ++__i) ((__cpu_mask *) __dest->__bits)[__i] = __arr1[__i] op __arr2[__i]; __dest; }))"
+.LASF1777:
+ .string "_STRUCT_TIMESPEC 1"
+.LASF987:
+ .string "_GLIBCXX_DARWIN_USE_64_BIT_INODE 1"
+.LASF467:
+ .string "__STDC_IEC_60559_BFP__ 201404L"
+.LASF2112:
+ .string "__glibcxx_want_shared_ptr_weak_type "
+.LASF947:
+ .string "_GLIBCXX_HAVE_SYS_SDT_H 1"
+.LASF1875:
+ .string "__CPU_EQUAL_S(setsize,cpusetp1,cpusetp2) (__builtin_memcmp (cpusetp1, cpusetp2, setsize) == 0)"
+.LASF1963:
+ .string "__struct_tm_defined 1"
+.LASF1932:
+ .string "ADJ_OFFSET_SINGLESHOT 0x8001"
+.LASF144:
+ .string "__WCHAR_MAX__ 0x7fffffff"
+.LASF2131:
+ .string "_Sink"
+.LASF89:
+ .string "__cpp_unicode_literals 200710L"
+.LASF2174:
+ .string "_M_ptr"
+.LASF1703:
+ .ascii "_GLIBCXX_MEM_FN_TRAITS2(_CV,_REF,_LVAL,_RVAL) template<typen"
+ .ascii "ame _Res, typename _Class, typename... _ArgTypes> struct _Me"
+ .ascii "m_fn_traits<_Res (_Class::*)(_ArgTypes...) _CV _REF> : _Mem_"
+ .ascii "fn_traits_base<_Res, _CV _Class, _ArgTypes."
+ .string "..> { using __vararg = false_type; }; template<typename _Res, typename _Class, typename... _ArgTypes> struct _Mem_fn_traits<_Res (_Class::*)(_ArgTypes..., ...) _CV _REF> : _Mem_fn_traits_base<_Res, _CV _Class, _ArgTypes...> { using __vararg = true_type; };"
+.LASF1239:
+ .string "__glibcxx_want_integer_comparison_functions"
+.LASF295:
+ .string "__FLT32_HAS_DENORM__ 1"
+.LASF653:
+ .string "_SYS_CDEFS_H 1"
+.LASF1995:
+ .string "__jmp_buf_tag_defined 1"
+.LASF156:
+ .string "__WINT_WIDTH__ 32"
+.LASF2220:
+ .string "_Inherited"
+.LASF1004:
+ .string "_GLIBCXX_RES_LIMITS 1"
+.LASF2330:
+ .string "__mbstate_t"
+.LASF959:
+ .string "_GLIBCXX_HAVE_TANHL 1"
+.LASF1842:
+ .string "CLONE_SIGHAND 0x00000800"
+.LASF1145:
+ .string "__glibcxx_want_atomic_is_always_lock_free"
+.LASF2358:
+ .string "_Znwm"
+.LASF1960:
+ .string "STA_CLK 0x8000"
+.LASF1413:
+ .string "_STL_ITERATOR_BASE_TYPES_H 1"
+.LASF2155:
+ .string "swap"
+.LASF852:
+ .string "_GLIBCXX_HAVE_FENV_H 1"
+.LASF1764:
+ .string "__FSID_T_TYPE struct { int __val[2]; }"
+.LASF111:
+ .string "__cpp_static_assert 201411L"
+.LASF1972:
+ .string "__SIZEOF_PTHREAD_MUTEX_T 40"
+.LASF313:
+ .string "__FLT64_HAS_QUIET_NAN__ 1"
+.LASF840:
+ .string "_GLIBCXX_HAVE_DIRENT_H 1"
+.LASF251:
+ .string "__LDBL_DIG__ 18"
+.LASF1570:
+ .string "__CFLOAT32 _Complex _Float32"
+.LASF2374:
+ .string "_ZNSt15__uniq_ptr_dataI4BaseSt14default_deleteIS0_ELb1ELb1EECI2St15__uniq_ptr_implIS0_S2_EEPS0_"
+.LASF419:
+ .string "__GCC_ATOMIC_SHORT_LOCK_FREE 2"
+.LASF1027:
+ .string "_GLIBCXX_USE_CHMOD 1"
+.LASF833:
+ .string "_GLIBCXX_HAVE_CEILL 1"
+.LASF1946:
+ .string "STA_PPSFREQ 0x0002"
+.LASF2362:
+ .string "__cxa_guard_abort"
+.LASF2206:
+ .string "_M_swap"
+.LASF1797:
+ .string "SCHED_RESET_ON_FORK 0x40000000"
+.LASF847:
+ .string "_GLIBCXX_HAVE_EXPL 1"
+.LASF92:
+ .string "__cpp_decltype 200707L"
+.LASF442:
+ .string "__GCC_ASM_FLAG_OUTPUTS__ 1"
+.LASF1763:
+ .string "__BLKSIZE_T_TYPE __SYSCALL_SLONG_TYPE"
+.LASF40:
+ .string "__SIZEOF_POINTER__ 8"
+.LASF274:
+ .string "__FLT16_MAX__ 6.55040000000000000000000000000000000e+4F16"
+.LASF1478:
+ .string "__glibcxx_requires_irreflexive_pred(_First,_Last,_Pred) "
+.LASF323:
+ .string "__FLT128_NORM_MAX__ 1.18973149535723176508575932662800702e+4932F128"
+.LASF1838:
+ .string "CSIGNAL 0x000000ff"
+.LASF2317:
+ .string "long double"
+.LASF2004:
+ .string "PTHREAD_RWLOCK_INITIALIZER { { __PTHREAD_RWLOCK_INITIALIZER (PTHREAD_RWLOCK_DEFAULT_NP) } }"
+.LASF1296:
+ .string "__glibcxx_want_freestanding_expected"
+.LASF1287:
+ .string "__glibcxx_want_syncbuf"
+.LASF51:
+ .string "__CHAR32_TYPE__ unsigned int"
+.LASF347:
+ .string "__FLT64X_MANT_DIG__ 64"
+.LASF1390:
+ .string "__cpp_lib_void_t 201411L"
+.LASF1851:
+ .string "CLONE_PARENT_SETTID 0x00100000"
+.LASF1571:
+ .string "__CFLOAT64 _Complex _Float64"
+.LASF1486:
+ .string "__glibcxx_want_bitops "
+.LASF1233:
+ .string "__glibcxx_optional 201606L"
+.LASF2286:
+ .string "__tuple_element_t"
+.LASF624:
+ .string "__USE_POSIX2 1"
+.LASF1252:
+ .string "__glibcxx_want_three_way_comparison"
+.LASF1611:
+ .string "__DEFINED_wchar_t "
+.LASF899:
+ .string "_GLIBCXX_HAVE_MODF 1"
+.LASF1141:
+ .string "__glibcxx_want_apply"
+.LASF490:
+ .string "_GLIBCXX11_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT)"
+.LASF1709:
+ .string "_GLIBCXX_GCC_GTHR_H "
+.LASF1016:
+ .string "_GLIBCXX_USE_C99_FENV 1"
+.LASF1362:
+ .string "_GLIBCXX_TYPE_TRAITS 1"
+.LASF121:
+ .string "__cpp_inline_variables 201606L"
+.LASF1573:
+ .string "__CFLOAT64X _Complex _Float64x"
+.LASF588:
+ .string "__GNUC_PREREQ(maj,min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))"
+.LASF685:
+ .string "__ASMNAME2(prefix,cname) __STRING (prefix) cname"
+.LASF1715:
+ .string "_BITS_TYPES_H 1"
+.LASF312:
+ .string "__FLT64_HAS_INFINITY__ 1"
+.LASF1910:
+ .string "CLOCK_THREAD_CPUTIME_ID 3"
+.LASF424:
+ .string "__GCC_DESTRUCTIVE_SIZE 64"
+.LASF1068:
+ .string "_ALLOCATOR_H 1"
+.LASF885:
+ .string "_GLIBCXX_HAVE_LINK 1"
+.LASF681:
+ .string "__REDIRECT(name,proto,alias) name proto __asm__ (__ASMNAME (#alias))"
+.LASF143:
+ .string "__LONG_LONG_MAX__ 0x7fffffffffffffffLL"
+.LASF1292:
+ .string "__glibcxx_want_format_ranges"
+.LASF1463:
+ .string "__glibcxx_requires_can_decrement_range(_First1,_Last1,_First2) "
+.LASF351:
+ .string "__FLT64X_MAX_EXP__ 16384"
+.LASF2297:
+ .string "bool"
+.LASF19:
+ .string "__ATOMIC_ACQ_REL 4"
+.LASF1289:
+ .string "__glibcxx_want_constexpr_charconv"
+.LASF444:
+ .string "__k8__ 1"
+.LASF42:
+ .string "__GNUC_WIDE_EXECUTION_CHARSET_NAME \"UTF-32LE\""
+.LASF1345:
+ .string "__glibcxx_want_ratio"
+.LASF1793:
+ .string "SCHED_ISO 4"
+.LASF603:
+ .string "_POSIX_C_SOURCE"
+.LASF1037:
+ .string "_GLIBCXX_USE_GET_NPROCS 1"
+.LASF2224:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEC4Ev"
+.LASF1328:
+ .string "__glibcxx_want_ios_noreplace"
+.LASF3:
+ .string "__cplusplus 201703L"
+.LASF808:
+ .string "_PSTL_PRAGMA_SIMD_ORDERED_MONOTONIC(PRM) "
+.LASF373:
+ .string "__BFLT16_EPSILON__ 7.81250000000000000000000000000000000e-3BF16"
+.LASF211:
+ .string "__UINTPTR_MAX__ 0xffffffffffffffffUL"
+.LASF422:
+ .string "__GCC_ATOMIC_LLONG_LOCK_FREE 2"
+.LASF1523:
+ .string "_GLIBCXX_IOSFWD 1"
+.LASF245:
+ .string "__DBL_DENORM_MIN__ double(4.94065645841246544176568792868221372e-324L)"
+.LASF972:
+ .string "_GLIBCXX_HAVE_VWSCANF 1"
+.LASF404:
+ .string "__DEC64X_MAX__ 9.999999999999999999999999999999999E6144D64x"
+.LASF630:
+ .string "__USE_XOPEN_EXTENDED 1"
+.LASF1306:
+ .string "__glibcxx_want_ranges_chunk"
+.LASF553:
+ .string "_GLIBCXX_END_EXTERN_C }"
+.LASF2161:
+ .string "default_delete<Base>"
+.LASF225:
+ .string "__FLT_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF98:
+ .string "__cpp_delegating_constructors 200604L"
+.LASF154:
+ .string "__LONG_LONG_WIDTH__ 64"
+.LASF774:
+ .string "_GLIBCXX_USE_BUILTIN_TRAIT(BT) _GLIBCXX_HAS_BUILTIN(BT)"
+.LASF769:
+ .string "_GLIBCXX_DOUBLE_IS_IEEE_BINARY64 1"
+.LASF915:
+ .string "_GLIBCXX_HAVE_SECURE_GETENV 1"
+.LASF2129:
+ .string "allocator_arg_t"
+.LASF1387:
+ .string "__cpp_lib_is_null_pointer 201309L"
+.LASF2311:
+ .string "char"
+.LASF1975:
+ .string "__SIZEOF_PTHREAD_BARRIER_T 32"
+.LASF2349:
+ .string "__isoc23_wcstol"
+.LASF234:
+ .string "__DBL_MANT_DIG__ 53"
+.LASF1738:
+ .string "__INO64_T_TYPE __UQUAD_TYPE"
+.LASF1918:
+ .string "TIMER_ABSTIME 1"
+.LASF868:
+ .string "_GLIBCXX_HAVE_HYPOTL 1"
+.LASF745:
+ .string "__stub_sigreturn "
+.LASF1722:
+ .string "__SQUAD_TYPE long int"
+.LASF1366:
+ .string "__glibcxx_want_integral_constant_callable "
+.LASF1045:
+ .string "_GLIBCXX_USE_NL_LANGINFO_L 1"
+.LASF117:
+ .string "__cpp_range_based_for 201603L"
+.LASF1077:
+ .string "__glibcxx_incomplete_container_elements 201505L"
+.LASF1383:
+ .string "__glibcxx_want_type_identity "
+.LASF645:
+ .string "__GLIBC_USE_DEPRECATED_GETS 0"
+.LASF1537:
+ .string "__GLIBC_USE_IEC_60559_EXT"
+.LASF66:
+ .string "__UINT_LEAST16_TYPE__ short unsigned int"
+.LASF1112:
+ .string "__glibcxx_transparent_operators 201510L"
+.LASF1281:
+ .string "__glibcxx_want_latch"
+.LASF1626:
+ .string "__mbstate_t_defined 1"
+.LASF752:
+ .string "_GLIBCXX_GTHREAD_USE_WEAK 0"
+.LASF1095:
+ .string "__glibcxx_math_spec_funcs 201003L"
+.LASF1118:
+ .string "__glibcxx_robust_nonmodifying_seq_ops 201304L"
+.LASF97:
+ .string "__cpp_initializer_lists 200806L"
+.LASF54:
+ .string "__INT16_TYPE__ short int"
+.LASF1619:
+ .string "__GNUC_VA_LIST "
+.LASF1059:
+ .string "_GLIBCXX_USE_UCHAR_C8RTOMB_MBRTOC8_FCHAR8_T 1"
+.LASF310:
+ .string "__FLT64_DENORM_MIN__ 4.94065645841246544176568792868221372e-324F64"
+.LASF990:
+ .string "_GLIBCXX11_USE_C99_STDIO 1"
+.LASF1852:
+ .string "CLONE_CHILD_CLEARTID 0x00200000"
+.LASF1270:
+ .string "__glibcxx_want_format"
+.LASF604:
+ .string "_POSIX_C_SOURCE 200809L"
+.LASF700:
+ .string "__attribute_nonnull__(params) __attribute__ ((__nonnull__ params))"
+.LASF837:
+ .string "_GLIBCXX_HAVE_COSHL 1"
+.LASF107:
+ .string "__cpp_aggregate_nsdmi 201304L"
+.LASF1736:
+ .string "__GID_T_TYPE __U32_TYPE"
+.LASF1623:
+ .string "__WCHAR_MIN __WCHAR_MIN__"
+.LASF1092:
+ .string "__glibcxx_want_void_t"
+.LASF1636:
+ .string "__attr_dealloc_fclose "
+.LASF1959:
+ .string "STA_MODE 0x4000"
+.LASF128:
+ .string "__cpp_guaranteed_copy_elision 201606L"
+.LASF1966:
+ .string "__itimerspec_defined 1"
+.LASF1541:
+ .string "__GLIBC_USE_IEC_60559_FUNCS_EXT_C23"
+.LASF2205:
+ .string "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEC4EOS3_"
+.LASF707:
+ .string "__attribute_artificial__ __attribute__ ((__artificial__))"
+.LASF278:
+ .string "__FLT16_DENORM_MIN__ 5.96046447753906250000000000000000000e-8F16"
+.LASF2045:
+ .string "__EXCEPTION__ "
+.LASF550:
+ .string "_GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(A) "
+.LASF1749:
+ .string "__FSBLKCNT_T_TYPE __SYSCALL_ULONG_TYPE"
+.LASF1835:
+ .string "SCHED_ATTR_SIZE_VER0 48"
+.LASF1750:
+ .string "__FSBLKCNT64_T_TYPE __UQUAD_TYPE"
+.LASF2216:
+ .string "_ZNSt10_Head_baseILm0EP4BaseLb0EE7_M_headERKS2_"
+.LASF248:
+ .string "__DBL_HAS_QUIET_NAN__ 1"
+.LASF892:
+ .string "_GLIBCXX_HAVE_LOG10L 1"
+.LASF1364:
+ .string "__glibcxx_want_bounded_array_traits "
+.LASF1592:
+ .string "_GCC_SIZE_T "
+.LASF512:
+ .string "_GLIBCXX_NOEXCEPT_IF(...) noexcept(__VA_ARGS__)"
+.LASF1853:
+ .string "CLONE_DETACHED 0x00400000"
+.LASF615:
+ .string "_DYNAMIC_STACK_SIZE_SOURCE"
+.LASF1775:
+ .string "__STD_TYPE"
+.LASF814:
+ .string "_PSTL_PRAGMA_MESSAGE_IMPL(x) _PSTL_PRAGMA(message(_PSTL_STRING_CONCAT(_PSTL_PRAGMA_LOCATION, x)))"
+.LASF1983:
+ .string "_BITS_ATOMIC_WIDE_COUNTER_H "
+.LASF1094:
+ .string "__glibcxx_want_enable_shared_from_this"
+.LASF1925:
+ .string "ADJ_STATUS 0x0010"
+.LASF734:
+ .string "__attr_dealloc(dealloc,argno) __attribute__ ((__malloc__ (dealloc, argno)))"
+.LASF1733:
+ .string "__SYSCALL_ULONG_TYPE __ULONGWORD_TYPE"
+.LASF689:
+ .string "__attribute_alloc_size__(params) __attribute__ ((__alloc_size__ params))"
+.LASF1440:
+ .string "_EXT_TYPE_TRAITS 1"
+.LASF2394:
+ .string "_IO_FILE"
+.LASF72:
+ .string "__INT_FAST64_TYPE__ long int"
+.LASF1348:
+ .string "__glibcxx_want_span_initializer_list"
+.LASF1594:
+ .string "__size_t "
+.LASF1576:
+ .string "__need_NULL "
+.LASF2295:
+ .string "_Args"
+.LASF1741:
+ .string "__FSWORD_T_TYPE __SYSCALL_SLONG_TYPE"
+.LASF2243:
+ .string "__uniq_ptr_data<Base, std::default_delete<Base>, true, true>"
+.LASF1686:
+ .string "wmemchr"
+.LASF1492:
+ .string "_GLIBCXX_TO_ADDR"
+.LASF1792:
+ .string "SCHED_BATCH 3"
+.LASF1391:
+ .string "__cpp_lib_integral_constant_callable 201304L"
+.LASF865:
+ .string "_GLIBCXX_HAVE_GETS 1"
+.LASF1330:
+ .string "__glibcxx_want_out_ptr"
+.LASF26:
+ .string "__SIZEOF_LONG__ 8"
+.LASF250:
+ .string "__LDBL_MANT_DIG__ 64"
+.LASF530:
+ .string "_GLIBCXX_END_INLINE_ABI_NAMESPACE(X) }"
+.LASF2100:
+ .string "__glibcxx_want_assume_aligned "
+.LASF1522:
+ .string "_SHARED_PTR_H 1"
+.LASF2159:
+ .string "rethrow_exception"
+.LASF1572:
+ .string "__CFLOAT32X _Complex _Float32x"
+.LASF1162:
+ .string "__cpp_lib_launder 201606L"
+.LASF76:
+ .string "__UINT_FAST64_TYPE__ long unsigned int"
+.LASF210:
+ .string "__INTPTR_WIDTH__ 64"
+.LASF1866:
+ .string "__CPU_SETSIZE 1024"
+.LASF2390:
+ .string "_ZN9__gnu_cxx21__default_lock_policyE"
+.LASF481:
+ .string "_GLIBCXX_PURE __attribute__ ((__pure__))"
+.LASF2340:
+ .string "tm_hour"
+.LASF36:
+ .string "__ORDER_BIG_ENDIAN__ 4321"
+.LASF455:
+ .string "__gnu_linux__ 1"
+.LASF1821:
+ .string "__counted_by(m) "
+.LASF935:
+ .string "_GLIBCXX_HAVE_STRING_H 1"
+.LASF1989:
+ .string "__PTHREAD_RWLOCK_INITIALIZER(__flags) 0, 0, 0, 0, 0, 0, 0, 0, __PTHREAD_RWLOCK_ELISION_EXTRA, 0, __flags"
+.LASF1452:
+ .string "_STL_UNINITIALIZED_H 1"
+.LASF1917:
+ .string "CLOCK_TAI 11"
+.LASF411:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1"
+.LASF359:
+ .string "__FLT64X_HAS_DENORM__ 1"
+.LASF801:
+ .string "_PSTL_CPP14_2RANGE_MISMATCH_EQUAL_PRESENT "
+.LASF1939:
+ .string "MOD_TIMECONST ADJ_TIMECONST"
+.LASF1816:
+ .string "_LINUX_POSIX_TYPES_H "
+.LASF167:
+ .string "__SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)"
+.LASF2101:
+ .string "__glibcxx_want_atomic_shared_ptr "
+.LASF544:
+ .string "_GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_BEGIN_NAMESPACE_CXX11"
+.LASF784:
+ .string "_PSTL_VERSION_PATCH (_PSTL_VERSION % 10)"
+.LASF2293:
+ .string "_ZSt3getILm0EJP4BaseSt14default_deleteIS0_EEERNSt13tuple_elementIXT_ESt5tupleIJDpT0_EEE4typeERS8_"
+.LASF1172:
+ .string "__glibcxx_variant 202102L"
+.LASF1191:
+ .string "__glibcxx_want_boyer_moore_searcher"
+.LASF835:
+ .string "_GLIBCXX_HAVE_COSF 1"
+.LASF1874:
+ .string "__CPU_COUNT_S(setsize,cpusetp) __sched_cpucount (setsize, cpusetp)"
+.LASF1634:
+ .string "WCHAR_MAX __WCHAR_MAX"
+.LASF2197:
+ .string "_Head"
+.LASF2191:
+ .string "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC4EOS3_"
+.LASF1182:
+ .string "__glibcxx_array_constexpr 201803L"
+.LASF998:
+ .string "_GLIBCXX_ATOMIC_BUILTINS 1"
+.LASF723:
+ .string "__LDBL_REDIR_NTH(name,proto) name proto __THROW"
+.LASF2070:
+ .string "_GLIBCXX_EH_PTR_USED "
+.LASF1142:
+ .string "__glibcxx_as_const 201510L"
+.LASF2079:
+ .string "ATOMIC_CHAR16_T_LOCK_FREE __GCC_ATOMIC_CHAR16_T_LOCK_FREE"
+.LASF1246:
+ .string "__glibcxx_want_math_constants"
+.LASF338:
+ .string "__FLT32X_MAX__ 1.79769313486231570814527423731704357e+308F32x"
+.LASF1291:
+ .string "__glibcxx_want_expected"
+.LASF1146:
+ .string "__glibcxx_bool_constant 201505L"
+.LASF2268:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EE5resetEPS0_"
+.LASF224:
+ .string "__FLT_DECIMAL_DIG__ 9"
+.LASF839:
+ .string "_GLIBCXX_HAVE_DECL_STRNLEN 1"
+.LASF1151:
+ .string "__glibcxx_want_has_unique_object_representations"
+.LASF656:
+ .string "__glibc_has_builtin(name) __has_builtin (name)"
+.LASF1464:
+ .string "__glibcxx_requires_sorted(_First,_Last) "
+.LASF1327:
+ .string "__glibcxx_want_generator"
+.LASF495:
+ .string "_GLIBCXX20_DEPRECATED "
+.LASF1992:
+ .string "_BITS_SETJMP_H 1"
+.LASF1697:
+ .string "_TYPEINFO "
+.LASF2294:
+ .string "make_unique<Base>"
+.LASF2003:
+ .string "PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_ADAPTIVE_NP) } }"
+.LASF1646:
+ .string "getwchar"
+.LASF2396:
+ .string "__cxa_guard_acquire"
+.LASF319:
+ .string "__FLT128_MAX_EXP__ 16384"
+.LASF1534:
+ .string "__GLIBC_USE_IEC_60559_BFP_EXT 1"
+.LASF1235:
+ .string "__glibcxx_want_destroying_delete"
+.LASF1056:
+ .string "_GLIBCXX_USE_ST_MTIM 1"
+.LASF2069:
+ .string "_GLIBCXX_HAVE_CDTOR_CALLABI 0"
+.LASF609:
+ .string "_LARGEFILE64_SOURCE"
+.LASF456:
+ .string "__linux 1"
+.LASF2147:
+ .string "_ZNSt15__exception_ptr13exception_ptrC4ERKS0_"
+.LASF2142:
+ .string "_ZNSt15__exception_ptr13exception_ptr9_M_addrefEv"
+.LASF2341:
+ .string "tm_mday"
+.LASF652:
+ .string "__GLIBC_PREREQ(maj,min) ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))"
+.LASF2234:
+ .string "tuple"
+.LASF874:
+ .string "_GLIBCXX_HAVE_ISNANL 1"
+.LASF928:
+ .string "_GLIBCXX_HAVE_STDALIGN_H 1"
+.LASF1767:
+ .string "__OFF_T_MATCHES_OFF64_T 1"
+.LASF22:
+ .string "__FINITE_MATH_ONLY__ 0"
+.LASF736:
+ .string "__attribute_returns_twice__ __attribute__ ((__returns_twice__))"
+.LASF1512:
+ .string "__cpp_lib_tuples_by_type 201304L"
+.LASF832:
+ .string "_GLIBCXX_HAVE_CEILF 1"
+.LASF1086:
+ .string "__glibcxx_want_result_of_sfinae"
+.LASF2359:
+ .string "operator delete"
+.LASF818:
+ .string "_GLIBCXX_HAVE_ACOSL 1"
+.LASF827:
+ .string "_GLIBCXX_HAVE_ATANF 1"
+.LASF2262:
+ .string "get_deleter"
+.LASF1987:
+ .string "_RWLOCK_INTERNAL_H "
+.LASF108:
+ .string "__cpp_variable_templates 201304L"
+.LASF354:
+ .string "__FLT64X_MAX__ 1.18973149535723176502126385303097021e+4932F64x"
+.LASF1841:
+ .string "CLONE_FILES 0x00000400"
+.LASF1903:
+ .string "CPU_FREE(cpuset) __CPU_FREE (cpuset)"
+.LASF1430:
+ .string "_STL_PAIR_H 1"
+.LASF861:
+ .string "_GLIBCXX_HAVE_FREXPF 1"
+.LASF186:
+ .string "__INT_LEAST64_MAX__ 0x7fffffffffffffffL"
+.LASF2259:
+ .string "operator->"
+.LASF2139:
+ .string "_ZNSt15__exception_ptr13exception_ptrC4EPv"
+.LASF366:
+ .string "__BFLT16_MIN_10_EXP__ (-37)"
+.LASF1088:
+ .string "__glibcxx_want_shared_ptr_arrays"
+.LASF2075:
+ .string "_GLIBCXX_ATOMIC_LOCK_FREE_H 1"
+.LASF671:
+ .string "__END_DECLS }"
+.LASF619:
+ .string "__USE_ISOC11 1"
+.LASF956:
+ .string "_GLIBCXX_HAVE_S_ISREG 1"
+.LASF517:
+ .string "_GLIBCXX_NOEXCEPT_PARM , bool _NE"
+.LASF709:
+ .string "__extern_always_inline extern __always_inline __attribute__ ((__gnu_inline__))"
+.LASF1948:
+ .string "STA_FLL 0x0008"
+.LASF2156:
+ .string "_ZNSt15__exception_ptr13exception_ptr4swapERS0_"
+.LASF364:
+ .string "__BFLT16_DIG__ 2"
+.LASF879:
+ .string "_GLIBCXX_HAVE_LIBINTL_H 1"
+.LASF1225:
+ .string "__glibcxx_want_atomic_value_initialization"
+.LASF2127:
+ .string "__swappable_with_details"
+.LASF2042:
+ .string "_GLIBCXX_WRITE_MEM_BARRIER __atomic_thread_fence (__ATOMIC_RELEASE)"
+.LASF674:
+ .string "__bos0(ptr) __builtin_object_size (ptr, 0)"
+.LASF1935:
+ .string "MOD_FREQUENCY ADJ_FREQUENCY"
+.LASF353:
+ .string "__FLT64X_DECIMAL_DIG__ 21"
+.LASF2116:
+ .string "__cpp_lib_allocator_traits_is_always_equal 201411L"
+.LASF1783:
+ .string "__BYTE_ORDER __LITTLE_ENDIAN"
+.LASF2316:
+ .string "_S_atomic"
+.LASF2163:
+ .string "_ZNSt14default_deleteI4BaseEC4Ev"
+.LASF2389:
+ .string "__default_lock_policy"
+.LASF584:
+ .string "__GLIBC_USE_DEPRECATED_GETS"
+.LASF1368:
+ .string "__glibcxx_want_is_constant_evaluated "
+.LASF300:
+ .string "__FLT64_DIG__ 15"
+.LASF2354:
+ .string "__pstl"
+.LASF414:
+ .string "__GCC_ATOMIC_BOOL_LOCK_FREE 2"
+.LASF1561:
+ .string "__HAVE_DISTINCT_FLOAT32X 0"
+.LASF390:
+ .string "__DEC64_MAX__ 9.999999999999999E384DD"
+.LASF632:
+ .string "_LARGEFILE_SOURCE"
+.LASF1725:
+ .string "__UWORD_TYPE unsigned long int"
+.LASF2290:
+ .string "_ZSt12__get_helperILm0EP4BaseJSt14default_deleteIS0_EEERT0_RSt11_Tuple_implIXT_EJS4_DpT1_EE"
+.LASF825:
+ .string "_GLIBCXX_HAVE_ATAN2F 1"
+.LASF1462:
+ .string "__glibcxx_requires_can_increment_range(_First1,_Last1,_First2) "
+.LASF1524:
+ .string "_REQUIRES_FREESTANDING_H 1"
+.LASF1509:
+ .string "__glibcxx_want_tuple_like "
+.LASF575:
+ .string "__USE_FILE_OFFSET64"
+.LASF521:
+ .string "_GLIBCXX_USE_CXX11_ABI 1"
+.LASF2068:
+ .string "_GLIBCXX_CDTOR_CALLABI "
+.LASF1493:
+ .string "_GLIBCXX_ADVANCE"
+.LASF849:
+ .string "_GLIBCXX_HAVE_FABSL 1"
+.LASF243:
+ .string "__DBL_MIN__ double(2.22507385850720138309023271733240406e-308L)"
+.LASF39:
+ .string "__FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__"
+.LASF1278:
+ .string "__glibcxx_want_erase_if"
+.LASF1232:
+ .string "__glibcxx_want_concepts"
+.LASF2318:
+ .string "double"
+.LASF2136:
+ .string "_M_exception_object"
+.LASF1098:
+ .string "__glibcxx_exchange_function 201304L"
+.LASF605:
+ .string "_XOPEN_SOURCE"
+.LASF1443:
+ .string "__glibcxx_floating(_Tp,_Fval,_Dval,_LDval) (std::__are_same<_Tp, float>::__value ? _Fval : std::__are_same<_Tp, double>::__value ? _Dval : _LDval)"
+.LASF280:
+ .string "__FLT16_HAS_INFINITY__ 1"
+.LASF1941:
+ .string "MOD_CLKA ADJ_OFFSET_SINGLESHOT"
+.LASF1467:
+ .string "__glibcxx_requires_sorted_set_pred(_First1,_Last1,_First2,_Pred) "
+.LASF102:
+ .string "__cpp_alias_templates 200704L"
+.LASF556:
+ .string "__NO_CTYPE 1"
+.LASF1481:
+ .string "_GLIBCXX_BIT 1"
+.LASF1631:
+ .string "_BITS_TYPES___LOCALE_T_H 1"
+.LASF1781:
+ .string "__PDP_ENDIAN 3412"
+.LASF854:
+ .string "_GLIBCXX_HAVE_FINITEF 1"
+.LASF2332:
+ .string "__FILE"
+.LASF425:
+ .string "__GCC_CONSTRUCTIVE_SIZE 64"
+.LASF1148:
+ .string "__glibcxx_byte 201603L"
+.LASF1240:
+ .string "__glibcxx_want_is_constant_evaluated"
+.LASF875:
+ .string "_GLIBCXX_HAVE_ISWBLANK 1"
+.LASF2392:
+ .string "typedef __va_list_tag __va_list_tag"
+.LASF30:
+ .string "__SIZEOF_DOUBLE__ 8"
+.LASF1557:
+ .string "__HAVE_FLOAT128X 0"
+.LASF606:
+ .string "_XOPEN_SOURCE 700"
+.LASF1003:
+ .string "_GLIBCXX_MANGLE_SIZE_T m"
+.LASF602:
+ .string "_POSIX_SOURCE 1"
+.LASF502:
+ .string "_GLIBCXX_NODISCARD [[__nodiscard__]]"
+.LASF2177:
+ .string "_M_deleter"
+.LASF1779:
+ .string "__LITTLE_ENDIAN 1234"
+.LASF1061:
+ .string "_GLIBCXX_USE_UTIMENSAT 1"
+.LASF1466:
+ .string "__glibcxx_requires_sorted_set(_First1,_Last1,_First2) "
+.LASF898:
+ .string "_GLIBCXX_HAVE_MEMORY_H 1"
+.LASF292:
+ .string "__FLT32_MIN__ 1.17549435082228750796873653722224568e-38F32"
+.LASF1603:
+ .string "_BSD_WCHAR_T_ "
+.LASF1075:
+ .string "__glibcxx_want_destroying_delete "
+.LASF1174:
+ .string "__glibcxx_lcm 201606L"
+.LASF2125:
+ .string "_PSTL_EXECUTION_POLICY_DEFS_H "
+.LASF1356:
+ .string "_FUNCTEXCEPT_H 1"
+.LASF695:
+ .string "__attribute_noinline__ __attribute__ ((__noinline__))"
+.LASF1070:
+ .string "_STD_NEW_ALLOCATOR_H 1"
+.LASF1269:
+ .string "__glibcxx_want_barrier"
+.LASF1222:
+ .string "__glibcxx_want_atomic_float"
+.LASF367:
+ .string "__BFLT16_MAX_EXP__ 128"
+.LASF1197:
+ .string "__glibcxx_want_filesystem"
+.LASF2373:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEC2IS2_vEEPS0_"
+.LASF919:
+ .string "_GLIBCXX_HAVE_SINCOSL 1"
+.LASF86:
+ .string "__cpp_hex_float 201603L"
+.LASF1743:
+ .string "__OFF64_T_TYPE __SQUAD_TYPE"
+.LASF579:
+ .string "__USE_GNU"
+.LASF307:
+ .string "__FLT64_NORM_MAX__ 1.79769313486231570814527423731704357e+308F64"
+.LASF1460:
+ .string "__glibcxx_requires_valid_range(_First,_Last) "
+.LASF563:
+ .string "__USE_POSIX2"
+.LASF995:
+ .string "_GLIBCXX98_USE_C99_STDIO 1"
+.LASF1687:
+ .string "wmemcmp"
+.LASF1761:
+ .string "__CLOCKID_T_TYPE __S32_TYPE"
+.LASF21:
+ .string "__OPTIMIZE__ 1"
+.LASF1798:
+ .string "SCHED_FLAG_RESET_ON_FORK 0x01"
+.LASF1662:
+ .string "wcrtomb"
+.LASF80:
+ .string "__DEPRECATED 1"
+.LASF1140:
+ .string "__glibcxx_apply 201603L"
+.LASF1496:
+ .string "_ALLOC_TRAITS_H 1"
+.LASF2377:
+ .string "func"
+.LASF2329:
+ .string "__value"
+.LASF2020:
+ .string "PTHREAD_ATTR_NO_SIGMASK_NP (-1)"
+.LASF1887:
+ .string "CPU_COUNT(cpusetp) __CPU_COUNT_S (sizeof (cpu_set_t), cpusetp)"
+.LASF912:
+ .string "_GLIBCXX_HAVE_POWL 1"
+.LASF2017:
+ .string "PTHREAD_CANCELED ((void *) -1)"
+.LASF1479:
+ .string "__glibcxx_requires_irreflexive_pred2(_First,_Last,_Pred) "
+.LASF2146:
+ .string "_ZNSt15__exception_ptr13exception_ptrC4Ev"
+.LASF2219:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEE7_M_headERKS4_"
+.LASF962:
+ .string "_GLIBCXX_HAVE_TIMESPEC_GET 1"
+.LASF803:
+ .string "_PSTL_CPP14_INTEGER_SEQUENCE_PRESENT "
+.LASF1259:
+ .string "__glibcxx_want_constexpr_utility"
+.LASF1008:
+ .string "_GLIBCXX_SYMVER 1"
+.LASF445:
+ .string "__code_model_small__ 1"
+.LASF1724:
+ .string "__SWORD_TYPE long int"
+.LASF268:
+ .string "__FLT16_DIG__ 3"
+.LASF1164:
+ .string "__glibcxx_logical_traits 201510L"
+.LASF2208:
+ .string "_Idx"
+.LASF570:
+ .string "__USE_XOPEN2KXSI"
+.LASF1288:
+ .string "__glibcxx_want_byteswap"
+.LASF2082:
+ .string "ATOMIC_INT_LOCK_FREE __GCC_ATOMIC_INT_LOCK_FREE"
+.LASF777:
+ .string "_PSTL_PAR_BACKEND_SERIAL "
+.LASF1787:
+ .string "_BITS_SCHED_H 1"
+.LASF1458:
+ .string "_GLIBCXX_DEBUG_MACRO_SWITCH_H 1"
+.LASF477:
+ .string "_GLIBCXX_CXX_CONFIG_H 1"
+.LASF946:
+ .string "_GLIBCXX_HAVE_SYS_RESOURCE_H 1"
+.LASF1593:
+ .string "_SIZET_ "
+.LASF53:
+ .string "__INT8_TYPE__ signed char"
+.LASF883:
+ .string "_GLIBCXX_HAVE_LIMIT_RSS 1"
+.LASF2169:
+ .string "__uniq_ptr_impl"
+.LASF451:
+ .string "__SSE2_MATH__ 1"
+.LASF412:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1"
+.LASF830:
+ .string "_GLIBCXX_HAVE_AT_QUICK_EXIT 1"
+.LASF446:
+ .string "__MMX__ 1"
+.LASF1559:
+ .string "__HAVE_DISTINCT_FLOAT32 0"
+.LASF1198:
+ .string "__glibcxx_hypot 201603L"
+.LASF1766:
+ .string "__CPU_MASK_TYPE __SYSCALL_ULONG_TYPE"
+.LASF2051:
+ .string "_STDDEF_H_ "
+.LASF1298:
+ .string "__glibcxx_want_freestanding_string_view"
+.LASF614:
+ .string "_ATFILE_SOURCE 1"
+.LASF1293:
+ .string "__glibcxx_want_freestanding_algorithm"
+.LASF2149:
+ .string "_ZNSt15__exception_ptr13exception_ptrC4EOS0_"
+.LASF2062:
+ .string "__DEFINED_ptrdiff_t "
+.LASF1396:
+ .string "__cpp_lib_is_aggregate 201703L"
+.LASF496:
+ .string "_GLIBCXX20_DEPRECATED_SUGGEST(ALT) "
+.LASF1754:
+ .string "__CLOCK_T_TYPE __SYSCALL_SLONG_TYPE"
+.LASF2196:
+ .string "_M_head_impl"
+.LASF301:
+ .string "__FLT64_MIN_EXP__ (-1021)"
+.LASF133:
+ .string "__cpp_template_template_args 201611L"
+.LASF1937:
+ .string "MOD_ESTERROR ADJ_ESTERROR"
+.LASF1423:
+ .string "_GLIBCXX_DEBUG_ASSERTIONS_H 1"
+.LASF1335:
+ .string "__glibcxx_want_string_resize_and_overwrite"
+.LASF1973:
+ .string "__SIZEOF_PTHREAD_ATTR_T 56"
+.LASF1358:
+ .string "__try try"
+.LASF1158:
+ .string "__glibcxx_want_is_aggregate"
+.LASF1323:
+ .string "__glibcxx_want_flat_map"
+.LASF737:
+ .string "__attribute_struct_may_alias__ __attribute__ ((__may_alias__))"
+.LASF1565:
+ .string "__HAVE_FLOATN_NOT_TYPEDEF 0"
+.LASF449:
+ .string "__FXSR__ 1"
+.LASF592:
+ .string "_ISOC95_SOURCE 1"
+.LASF1199:
+ .string "__glibcxx_want_hypot"
+.LASF69:
+ .string "__INT_FAST8_TYPE__ signed char"
+.LASF2012:
+ .string "PTHREAD_COND_INITIALIZER { { {0}, {0}, {0, 0}, 0, 0, {0, 0}, 0, 0 } }"
+.LASF2398:
+ .string "__args"
+.LASF2049:
+ .string "_CXXABI_INIT_EXCEPTION_H 1"
+.LASF1258:
+ .string "__glibcxx_want_interpolate"
+.LASF564:
+ .string "__USE_POSIX199309"
+.LASF2292:
+ .string "get<0, Base*, std::default_delete<Base> >"
+.LASF1427:
+ .string "_GLIBCXX_DEBUG_ASSERT(_Condition) "
+.LASF1839:
+ .string "CLONE_VM 0x00000100"
+.LASF1442:
+ .string "_GLIBCXX_INT_N_TRAITS"
+.LASF2124:
+ .string "_PSTL_GLUE_MEMORY_DEFS_H "
+.LASF454:
+ .string "__SEG_GS 1"
+.LASF1869:
+ .string "__CPUMASK(cpu) ((__cpu_mask) 1 << ((cpu) % __NCPUBITS))"
+.LASF660:
+ .string "__THROW noexcept (true)"
+.LASF504:
+ .string "_GLIBCXX_USE_CONSTEXPR constexpr"
+.LASF822:
+ .string "_GLIBCXX_HAVE_ASINF 1"
+.LASF333:
+ .string "__FLT32X_MIN_EXP__ (-1021)"
+.LASF403:
+ .string "__DEC64X_MIN__ 1E-6143D64x"
+.LASF1913:
+ .string "CLOCK_MONOTONIC_COARSE 6"
+.LASF1601:
+ .string "__WCHAR_T "
+.LASF2194:
+ .string "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EE7_M_headERS3_"
+.LASF812:
+ .string "_PSTL_USE_NONTEMPORAL_STORES_IF_ALLOWED "
+.LASF2134:
+ .string "__exception_ptr"
+.LASF1868:
+ .string "__CPUELT(cpu) ((cpu) / __NCPUBITS)"
+.LASF466:
+ .string "__STDC_IEC_559__ 1"
+.LASF1398:
+ .string "__cpp_lib_logical_traits 201510L"
+.LASF440:
+ .string "__ATOMIC_HLE_ACQUIRE 65536"
+.LASF2211:
+ .string "_ZNSt10_Head_baseILm0EP4BaseLb0EEC4ERKS1_"
+.LASF1428:
+ .string "_GLIBCXX_DEBUG_PEDASSERT(_Condition) "
+.LASF389:
+ .string "__DEC64_MIN__ 1E-383DD"
+.LASF1127:
+ .string "__glibcxx_want_generic_associative_lookup"
+.LASF2179:
+ .string "_ZNKSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE10_M_deleterEv"
+.LASF1916:
+ .string "CLOCK_BOOTTIME_ALARM 9"
+.LASF2059:
+ .string "___int_ptrdiff_t_h "
+.LASF1575:
+ .string "__need_wchar_t "
+.LASF2366:
+ .string "_ZNSt10_Head_baseILm0EP4BaseLb0EEC2Ev"
+.LASF663:
+ .string "__NTHNL(fct) fct __THROW"
+.LASF730:
+ .string "__HAVE_GENERIC_SELECTION 0"
+.LASF1410:
+ .string "__allocator_base"
+.LASF328:
+ .string "__FLT128_HAS_INFINITY__ 1"
+.LASF1111:
+ .string "__glibcxx_want_transformation_trait_aliases"
+.LASF28:
+ .string "__SIZEOF_SHORT__ 2"
+.LASF1108:
+ .string "__glibcxx_null_iterators 201304L"
+.LASF785:
+ .string "_PSTL_USAGE_WARNINGS 0"
+.LASF1771:
+ .string "__KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 1"
+.LASF2346:
+ .string "tm_isdst"
+.LASF1648:
+ .string "mbrtowc"
+.LASF633:
+ .string "_LARGEFILE_SOURCE 1"
+.LASF153:
+ .string "__LONG_WIDTH__ 64"
+.LASF173:
+ .string "__UINT8_MAX__ 0xff"
+.LASF1546:
+ .string "__HAVE_FLOAT128 1"
+.LASF1062:
+ .string "_GLIBCXX_USE_WCHAR_T 1"
+.LASF1706:
+ .string "_GLIBCXX_MEM_FN_TRAITS2"
+.LASF1227:
+ .string "__glibcxx_want_bind_back"
+.LASF2014:
+ .string "PTHREAD_CANCEL_DISABLE PTHREAD_CANCEL_DISABLE"
+.LASF686:
+ .string "__REDIRECT_FORTIFY __REDIRECT"
+.LASF463:
+ .string "__DECIMAL_BID_FORMAT__ 1"
+.LASF1135:
+ .string "__glibcxx_want_string_udls"
+.LASF794:
+ .string "_PSTL_PRAGMA_DECLARE_SIMD _PSTL_PRAGMA(omp declare simd)"
+.LASF2184:
+ .string "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE4swapERS3_"
+.LASF1540:
+ .string "__GLIBC_USE_IEC_60559_FUNCS_EXT 1"
+.LASF1439:
+ .string "__INT_N"
+.LASF969:
+ .string "_GLIBCXX_HAVE_UTIME_H 1"
+.LASF205:
+ .string "__UINT_FAST8_MAX__ 0xff"
+.LASF1023:
+ .string "_GLIBCXX_USE_C99_MATH_TR1 1"
+.LASF1002:
+ .string "_GLIBCXX_HOSTED __STDC_HOSTED__"
+.LASF1178:
+ .string "__glibcxx_gcd_lcm 201606L"
+.LASF1676:
+ .string "wcsrtombs"
+.LASF1688:
+ .string "wmemcpy"
+.LASF2090:
+ .string "_GLIBCXX_TSAN_MUTEX_DESTROY(X) "
+.LASF1244:
+ .string "__glibcxx_want_is_nothrow_convertible"
+.LASF683:
+ .string "__REDIRECT_NTHNL(name,proto,alias) name proto __THROWNL __asm__ (__ASMNAME (#alias))"
+.LASF244:
+ .string "__DBL_EPSILON__ double(2.22044604925031308084726333618164062e-16L)"
+.LASF1855:
+ .string "CLONE_CHILD_SETTID 0x01000000"
+.LASF968:
+ .string "_GLIBCXX_HAVE_USELOCALE 1"
+.LASF193:
+ .string "__UINT_LEAST32_MAX__ 0xffffffffU"
+.LASF2138:
+ .string "_ZNSt15allocator_arg_tC4Ev"
+.LASF1476:
+ .string "__glibcxx_requires_irreflexive(_First,_Last) "
+.LASF305:
+ .string "__FLT64_DECIMAL_DIG__ 17"
+.LASF124:
+ .string "__cpp_noexcept_function_type 201510L"
+.LASF525:
+ .string "_GLIBCXX_DEFAULT_ABI_TAG _GLIBCXX_ABI_TAG_CXX11"
+.LASF527:
+ .string "_GLIBCXX_BEGIN_NAMESPACE_VERSION "
+.LASF1039:
+ .string "_GLIBCXX_USE_LFS 1"
+.LASF1262:
+ .string "__glibcxx_want_constexpr_numeric"
+.LASF955:
+ .string "_GLIBCXX_HAVE_SYS_UIO_H 1"
+.LASF1582:
+ .string "_T_SIZE "
+.LASF1028:
+ .string "_GLIBCXX_USE_CLOCK_MONOTONIC 1"
+.LASF1535:
+ .string "__GLIBC_USE_IEC_60559_BFP_EXT_C23"
+.LASF1549:
+ .string "__HAVE_FLOAT64X_LONG_DOUBLE 1"
+.LASF1847:
+ .string "CLONE_THREAD 0x00010000"
+.LASF1436:
+ .string "_EXT_NUMERIC_TRAITS 1"
+.LASF293:
+ .string "__FLT32_EPSILON__ 1.19209289550781250000000000000000000e-7F32"
+.LASF196:
+ .string "__UINT64_C(c) c ## UL"
+.LASF1976:
+ .string "__SIZEOF_PTHREAD_MUTEXATTR_T 4"
+.LASF20:
+ .string "__ATOMIC_CONSUME 1"
+.LASF717:
+ .string "__attribute_copy__"
+.LASF743:
+ .string "__stub_revoke "
+.LASF62:
+ .string "__INT_LEAST16_TYPE__ short int"
+.LASF714:
+ .string "__glibc_unlikely(cond) __builtin_expect ((cond), 0)"
+.LASF2347:
+ .string "tm_gmtoff"
+.LASF1279:
+ .string "__glibcxx_want_generic_unordered_lookup"
+.LASF1735:
+ .string "__UID_T_TYPE __U32_TYPE"
+.LASF1320:
+ .string "__glibcxx_want_constexpr_bitset"
+.LASF1102:
+ .string "__glibcxx_integral_constant_callable 201304L"
+.LASF1517:
+ .string "_BACKWARD_BINDERS_H 1"
+.LASF1412:
+ .string "_STL_CONSTRUCT_H 1"
+.LASF363:
+ .string "__BFLT16_MANT_DIG__ 8"
+.LASF896:
+ .string "_GLIBCXX_HAVE_MBSTATE_T 1"
+.LASF265:
+ .string "__LDBL_HAS_QUIET_NAN__ 1"
+.LASF1170:
+ .string "__glibcxx_type_trait_variable_templates 201510L"
+.LASF628:
+ .string "__USE_XOPEN2K8 1"
+.LASF2315:
+ .string "_S_mutex"
+.LASF678:
+ .string "__errordecl(name,msg) extern void name (void) __attribute__((__error__ (msg)))"
+.LASF2260:
+ .string "_ZNKSt10unique_ptrI4BaseSt14default_deleteIS0_EEptEv"
+.LASF1089:
+ .string "__glibcxx_is_swappable 201603L"
+.LASF1237:
+ .string "__glibcxx_want_endian"
+.LASF418:
+ .string "__GCC_ATOMIC_WCHAR_T_LOCK_FREE 2"
+.LASF789:
+ .string "_PSTL_STRING_CONCAT(x,y) x #y"
+.LASF877:
+ .string "_GLIBCXX_HAVE_LDEXPF 1"
+.LASF63:
+ .string "__INT_LEAST32_TYPE__ int"
+.LASF2071:
+ .string "_GLIBCXX_EH_PTR_USED"
+.LASF957:
+ .string "_GLIBCXX_HAVE_TANF 1"
+.LASF433:
+ .string "__SIZEOF_PTRDIFF_T__ 8"
+.LASF754:
+ .string "_GLIBCXX_PSEUDO_VISIBILITY(V) "
+.LASF2098:
+ .string "_BACKWARD_AUTO_PTR_H 1"
+.LASF2382:
+ .string "type_info"
+.LASF960:
+ .string "_GLIBCXX_HAVE_TANL 1"
+.LASF537:
+ .string "_GLIBCXX_LONG_DOUBLE_COMPAT"
+.LASF474:
+ .string "__WORDSIZE 64"
+.LASF340:
+ .string "__FLT32X_MIN__ 2.22507385850720138309023271733240406e-308F32x"
+.LASF1765:
+ .string "__SSIZE_T_TYPE __SWORD_TYPE"
+.LASF1251:
+ .string "__glibcxx_want_ssize"
+.LASF1514:
+ .string "__cpp_lib_make_from_tuple 201606L"
+.LASF134:
+ .string "__cpp_threadsafe_static_init 200806L"
+.LASF1078:
+ .string "__glibcxx_want_incomplete_container_elements"
+.LASF345:
+ .string "__FLT32X_HAS_QUIET_NAN__ 1"
+.LASF1208:
+ .string "__glibcxx_parallel_algorithm 201603L"
+.LASF41:
+ .string "__GNUC_EXECUTION_CHARSET_NAME \"UTF-8\""
+.LASF7:
+ .string "__STDC_EMBED_NOT_FOUND__ 0"
+.LASF613:
+ .string "_ATFILE_SOURCE"
+.LASF965:
+ .string "_GLIBCXX_HAVE_UCHAR_H 1"
+.LASF748:
+ .string "_GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC __GLIBC_PREREQ(2,23)"
+.LASF1638:
+ .string "fgetwc"
+.LASF1160:
+ .string "__glibcxx_want_is_invocable"
+.LASF735:
+ .string "__attr_dealloc_free __attr_dealloc (__builtin_free, 1)"
+.LASF2273:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EEC4IS2_vEEPS0_"
+.LASF2048:
+ .string "_EXCEPTION_PTR_H "
+.LASF236:
+ .string "__DBL_MIN_EXP__ (-1021)"
+.LASF349:
+ .string "__FLT64X_MIN_EXP__ (-16381)"
+.LASF1416:
+ .string "_STL_ITERATOR_BASE_FUNCS_H 1"
+.LASF1639:
+ .string "fgetws"
+.LASF1310:
+ .string "__glibcxx_want_ranges_repeat"
+.LASF973:
+ .string "_GLIBCXX_HAVE_WCHAR_H 1"
+.LASF600:
+ .string "_ISOC2Y_SOURCE 1"
+.LASF2367:
+ .string "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEEC2Ev"
+.LASF2170:
+ .string "_ZNSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EEC4Ev"
+.LASF1905:
+ .string "_BITS_TIME_H 1"
+.LASF485:
+ .string "_GLIBCXX_VISIBILITY(V) __attribute__ ((__visibility__ (#V)))"
+.LASF1418:
+ .string "__glibcxx_function_requires(...) "
+.LASF1435:
+ .string "__glibcxx_no_dangling_refs"
+.LASF413:
+ .string "__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1"
+.LASF1114:
+ .string "__glibcxx_tuple_element_t 201402L"
+.LASF1955:
+ .string "STA_PPSWANDER 0x0400"
+.LASF1769:
+ .string "__RLIM_T_MATCHES_RLIM64_T 1"
+.LASF1878:
+ .string "__CPU_ALLOC(count) __sched_cpualloc (count)"
+.LASF15:
+ .string "__ATOMIC_RELAXED 0"
+.LASF1099:
+ .string "__glibcxx_want_exchange_function"
+.LASF1157:
+ .string "__glibcxx_is_aggregate 201703L"
+.LASF1921:
+ .string "ADJ_OFFSET 0x0001"
+.LASF1879:
+ .string "__CPU_FREE(cpuset) __sched_cpufree (cpuset)"
+.LASF1614:
+ .string "NULL"
+.LASF383:
+ .string "__DEC32_MAX__ 9.999999E96DF"
+.LASF1856:
+ .string "CLONE_NEWCGROUP 0x02000000"
+.LASF1933:
+ .string "ADJ_OFFSET_SS_READ 0xa001"
+.LASF1129:
+ .string "__glibcxx_want_make_unique"
+.LASF596:
+ .string "_ISOC11_SOURCE 1"
+.LASF1666:
+ .string "wcscoll"
+.LASF716:
+ .string "__attribute_nonstring__ __attribute__ ((__nonstring__))"
+.LASF1762:
+ .string "__TIMER_T_TYPE void *"
+.LASF2397:
+ .string "_ZNSt10unique_ptrI4BaseSt14default_deleteIS0_EED2Ev"
+.LASF2109:
+ .string "__glibcxx_want_ranges "
+.LASF1773:
+ .string "_BITS_TIME64_H 1"
+.LASF963:
+ .string "_GLIBCXX_HAVE_TLS 1"
+.LASF2099:
+ .string "__glibcxx_want_allocator_traits_is_always_equal "
+.LASF1873:
+ .string "__CPU_ISSET_S(cpu,setsize,cpusetp) (__extension__ ({ size_t __cpu = (cpu); __cpu / 8 < (setsize) ? ((((const __cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)] & __CPUMASK (__cpu))) != 0 : 0; }))"
+.LASF1840:
+ .string "CLONE_FS 0x00000200"
+.LASF343:
+ .string "__FLT32X_HAS_DENORM__ 1"
+.LASF857:
+ .string "_GLIBCXX_HAVE_FLOORF 1"
+.LASF2333:
+ .string "__isoc23_fwscanf"
+.LASF664:
+ .string "__COLD __attribute__ ((__cold__))"
+.LASF792:
+ .string "_PSTL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)"
+.LASF297:
+ .string "__FLT32_HAS_QUIET_NAN__ 1"
+.LASF2105:
+ .string "__glibcxx_want_enable_shared_from_this "
+.LASF84:
+ .string "__GXX_CONSTEXPR_ASM__ 1"
+.LASF1675:
+ .string "wcsrchr"
+.LASF649:
+ .string "__GNU_LIBRARY__ 6"
+.LASF2306:
+ .string "long long int"
+.LASF1357:
+ .string "_EXCEPTION_DEFINES_H 1"
+.LASF9:
+ .string "__STDC_EMBED_EMPTY__ 2"
+.LASF2094:
+ .string "_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK(X) "
+.LASF1950:
+ .string "STA_DEL 0x0020"
+.LASF1949:
+ .string "STA_INS 0x0010"
+.LASF1956:
+ .string "STA_PPSERROR 0x0800"
+.LASF1275:
+ .string "__glibcxx_want_constexpr_string"
+.LASF1901:
+ .string "CPU_ALLOC_SIZE(count) __CPU_ALLOC_SIZE (count)"
+.LASF129:
+ .string "__cpp_nontype_template_parameter_auto 201606L"
+.LASF399:
+ .string "__DEC128_SUBNORMAL_MIN__ 0.000000000000000000000000000000001E-6143DL"
+.LASF781:
+ .string "_PSTL_VERSION 17000"
+.LASF1375:
+ .string "__glibcxx_want_is_scoped_enum "
+.LASF949:
+ .string "_GLIBCXX_HAVE_SYS_SOCKET_H 1"
+.LASF302:
+ .string "__FLT64_MIN_10_EXP__ (-307)"
+.LASF269:
+ .string "__FLT16_MIN_EXP__ (-13)"
+.LASF1113:
+ .string "__glibcxx_want_transparent_operators"
+.LASF1168:
+ .string "__glibcxx_not_fn 201603L"
+.LASF770:
+ .string "_GLIBCXX_HAS_BUILTIN(B) __has_builtin(B)"
+.LASF2064:
+ .string "offsetof"
+.LASF1014:
+ .string "_GLIBCXX_USE_C99_CTYPE 1"
+.LASF161:
+ .string "__INTMAX_MAX__ 0x7fffffffffffffffL"
+.LASF1985:
+ .string "__PTHREAD_MUTEX_HAVE_PREV 1"
+.LASF2040:
+ .string "_GLIBCXX_ATOMIC_WORD_H 1"
+.LASF94:
+ .string "__cpp_rvalue_reference 200610L"
+.LASF2033:
+ .string "__GTHREAD_COND_INIT PTHREAD_COND_INITIALIZER"
+.LASF174:
+ .string "__UINT16_MAX__ 0xffff"
+.LASF697:
+ .string "__attribute_deprecated_msg__(msg) __attribute__ ((__deprecated__ (msg)))"
+.LASF1489:
+ .string "_GLIBCXX_TO_ADDR(P) P"
+.LASF2022:
+ .string "pthread_cleanup_push(routine,arg) do { __pthread_cleanup_class __clframe (routine, arg)"
+.LASF1708:
+ .string "_GLIBCXX_ATOMICITY_H 1"
+.LASF356:
+ .string "__FLT64X_MIN__ 3.36210314311209350626267781732175260e-4932F64x"
+.LASF796:
+ .string "_PSTL_PRAGMA_FORCEINLINE "
+.LASF1189:
+ .string "__glibcxx_want_sample"
+.LASF1411:
+ .string "_STL_TEMPBUF_H 1"
+.LASF2037:
+ .string "__gthrw(name) __gthrw2(__gthrw_ ## name,name,name)"
+.LASF657:
+ .string "__glibc_has_extension(ext) __has_extension (ext)"
+.LASF870:
+ .string "_GLIBCXX_HAVE_INTTYPES_H 1"
+.LASF1360:
+ .string "__throw_exception_again throw"
+.LASF447:
+ .string "__SSE__ 1"
+.LASF405:
+ .string "__DEC64X_EPSILON__ 1E-33D64x"
+.LASF1655:
+ .string "ungetwc"
+.LASF548:
+ .string "_GLIBCXX_ASSERT_FAIL(_Condition) std::__glibcxx_assert_fail(__FILE__, __LINE__, __PRETTY_FUNCTION__, #_Condition)"
+.LASF582:
+ .string "__GLIBC_USE_ISOC23"
+.LASF379:
+ .string "__DEC32_MANT_DIG__ 7"
+.LASF577:
+ .string "__USE_ATFILE"
+.LASF511:
+ .string "_GLIBCXX_NOEXCEPT noexcept"
+.LASF529:
+ .string "_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(X) inline namespace X {"
+.LASF2207:
+ .string "_ZNSt11_Tuple_implILm1EJSt14default_deleteI4BaseEEE7_M_swapERS3_"
+.LASF2002:
+ .string "PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP { { __PTHREAD_MUTEX_INITIALIZER (PTHREAD_MUTEX_ERRORCHECK_NP) } }"
+.LASF1584:
+ .string "_SIZE_T_ "
+.LASF334:
+ .string "__FLT32X_MIN_10_EXP__ (-307)"
+.LASF1312:
+ .string "__glibcxx_want_ranges_cartesian_product"
+.LASF1988:
+ .string "__PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0, 0, 0, 0, 0 }"
+.LASF459:
+ .string "__unix 1"
+.LASF719:
+ .string "__LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 0"
+.LASF264:
+ .string "__LDBL_HAS_INFINITY__ 1"
+.LASF1991:
+ .string "__have_pthread_attr_t 1"
+.LASF1889:
+ .string "CPU_CLR_S(cpu,setsize,cpusetp) __CPU_CLR_S (cpu, setsize, cpusetp)"
+.LASF1487:
+ .string "__glibcxx_want_int_pow2 "
+.LASF699:
+ .string "__attribute_format_strfmon__(a,b) __attribute__ ((__format__ (__strfmon__, a, b)))"
+.LASF1256:
+ .string "__glibcxx_want_unwrap_ref"
+.LASF2296:
+ .string "long unsigned int"
+.LASF1355:
+ .string "_GLIBCXX_PLACEMENT_CONSTEXPR"
+.LASF863:
+ .string "_GLIBCXX_HAVE_GETENTROPY 1"
+.LASF1131:
+ .string "__glibcxx_want_quoted_string_io"
+.LASF1361:
+ .string "_MOVE_H 1"
+.LASF583:
+ .string "__GLIBC_USE_ISOC2Y"
+.LASF1699:
+ .string "__GXX_MERGED_TYPEINFO_NAMES 0"
+.LASF1538:
+ .string "__GLIBC_USE_IEC_60559_EXT 1"
+.LASF226:
+ .string "__FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F"
+.LASF1254:
+ .string "__glibcxx_want_to_array"
+.LASF1200:
+ .string "__glibcxx_map_try_emplace 201411L"
+.LASF2035:
+ .string "__gthrw2(name,name2,type) "
+.LASF934:
+ .string "_GLIBCXX_HAVE_STRINGS_H 1"
+.LASF906:
+ .string "_GLIBCXX_HAVE_O_NONBLOCK 1"
+.LASF13:
+ .string "__VERSION__ \"15.1.1 20250425 (Red Hat 15.1.1-1)\""
+.LASF468:
+ .string "__STDC_IEC_559_COMPLEX__ 1"
+.LASF2019:
+ .string "PTHREAD_BARRIER_SERIAL_THREAD -1"
+.LASF1105:
+ .string "__glibcxx_want_is_final"
+.LASF392:
+ .string "__DEC64_SUBNORMAL_MIN__ 0.000000000000001E-383DD"
+.LASF31:
+ .string "__SIZEOF_LONG_DOUBLE__ 16"
+.LASF2091:
+ .string "_GLIBCXX_TSAN_MUTEX_TRY_LOCK(X) "
+.LASF70:
+ .string "__INT_FAST16_TYPE__ long int"
+.LASF1630:
+ .string "_BITS_TYPES_LOCALE_T_H 1"
+.LASF682:
+ .string "__REDIRECT_NTH(name,proto,alias) name proto __THROW __asm__ (__ASMNAME (#alias))"
+.LASF791:
+ .string "_PSTL_HIDE_FROM_ABI_POP "
+.LASF1751:
+ .string "__FSFILCNT_T_TYPE __SYSCALL_ULONG_TYPE"
+.LASF311:
+ .string "__FLT64_HAS_DENORM__ 1"
+.LASF1274:
+ .string "__glibcxx_constexpr_string 201611L"
+.LASF1154:
+ .string "__glibcxx_want_hardware_interference_size"
+.LASF321:
+ .string "__FLT128_DECIMAL_DIG__ 36"
+.LASF230:
+ .string "__FLT_HAS_DENORM__ 1"
+.LASF966:
+ .string "_GLIBCXX_HAVE_UNISTD_H 1"
+.LASF2360:
+ .string "_ZNSt13__uses_alloc05_SinkaSEPKv"
+.LASF2327:
+ .string "__wchb"
+.LASF2309:
+ .string "char16_t"
+.LASF1499:
+ .string "_USES_ALLOCATOR_H 1"
+.LASF1744:
+ .string "__PID_T_TYPE __S32_TYPE"
+.LASF2388:
+ .string "_Lock_policy"
+.LASF103:
+ .string "__cpp_return_type_deduction 201304L"
+.LASF1338:
+ .string "__glibcxx_want_unreachable"
+.LASF2066:
+ .string "_GCC_MAX_ALIGN_T "
+.LASF1422:
+ .string "__glibcxx_class_requires4(_a,_b,_c,_d,_e) "
+.LASF1321:
+ .string "__glibcxx_want_stdatomic_h"
+.LASF1272:
+ .string "__glibcxx_want_constexpr_complex"
+.LASF1403:
+ .string "_GLIBCXX_FORWARD(_Tp,__val) std::forward<_Tp>(__val)"
+.LASF1093:
+ .string "__glibcxx_enable_shared_from_this 201603L"
+.LASF1465:
+ .string "__glibcxx_requires_sorted_pred(_First,_Last,_Pred) "
+.LASF258:
+ .string "__LDBL_MAX__ 1.18973149535723176502126385303097021e+4932L"
+.LASF1377:
+ .string "__glibcxx_want_is_virtual_base_of "
+.LASF29:
+ .string "__SIZEOF_FLOAT__ 4"
+.LASF1277:
+ .string "__glibcxx_want_constrained_equality"
+.LASF2376:
+ .string "main"
+.LASF1143:
+ .string "__glibcxx_want_as_const"
+.LASF398:
+ .string "__DEC128_EPSILON__ 1E-33DL"
+.LASF1578:
+ .string "__SIZE_T__ "
+.LASF2176:
+ .string "_ZNKSt15__uniq_ptr_implI4BaseSt14default_deleteIS0_EE6_M_ptrEv"
+.LASF1993:
+ .string "____sigset_t_defined "
+.LASF780:
+ .string "_PSTL_CONFIG_H "
+.LASF1881:
+ .string "__sched_priority sched_priority"
+.LASF984:
+ .string "_GLIBCXX_PACKAGE_URL \"\""
+.LASF65:
+ .string "__UINT_LEAST8_TYPE__ unsigned char"
+.LASF1740:
+ .string "__NLINK_T_TYPE __SYSCALL_ULONG_TYPE"
+.LASF470:
+ .string "__STDC_ISO_10646__ 201706L"
+.LASF253:
+ .string "__LDBL_MIN_10_EXP__ (-4931)"
+.LASF1904:
+ .string "_TIME_H 1"
+.LASF2119:
+ .string "__cpp_lib_transparent_operators 201510L"
+.LASF1656:
+ .string "vfwprintf"
+.LASF677:
+ .string "__warnattr(msg) __attribute__((__warning__ (msg)))"
+.LASF1451:
+ .string "_GLIBCXX_SIZED_DEALLOC(T,p,n) (p), (n) * sizeof(T)"
+.LASF2209:
+ .string "_Head_base<0, Base*, false>"
+.LASF631:
+ .string "__USE_UNIX98 1"
+.LASF50:
+ .string "__CHAR16_TYPE__ short unsigned int"
+.LASF1836:
+ .string "SCHED_ATTR_SIZE_VER1 56"
+.LASF546:
+ .string "_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED 1"
+.LASF547:
+ .string "_GLIBCXX_VERBOSE_ASSERT 1"
+.LASF644:
+ .string "__USE_FORTIFY_LEVEL 0"
+.LASF629:
+ .string "__USE_XOPEN 1"
+.LASF626:
+ .string "__USE_POSIX199506 1"
+.LASF1218:
+ .string "__glibcxx_unordered_map_try_emplace 201411L"
+.LASF2300:
+ .string "unsigned int"
+.LASF799:
+ .string "_PSTL_PRAGMA_SIMD_EXCLUSIVE_SCAN(PRM) _PSTL_PRAGMA(omp scan exclusive(PRM))"
+.LASF1179:
+ .string "__glibcxx_want_gcd_lcm"
+.LASF2027:
+ .string "__GTHREAD_INLINE inline __GTHREAD_ALWAYS_INLINE"
+.LASF2361:
+ .string "_ZdlPvm"
+.LASF1110:
+ .string "__glibcxx_transformation_trait_aliases 201304L"
+.LASF923:
+ .string "_GLIBCXX_HAVE_SINL 1"
+.LASF2365:
+ .string "_ZNSt10_Head_baseILm1ESt14default_deleteI4BaseELb1EEC2Ev"
+.LASF1758:
+ .string "__SUSECONDS64_T_TYPE __SQUAD_TYPE"
+.LASF692:
+ .string "__attribute_const__ __attribute__ ((__const__))"
+.LASF2137:
+ .string "exception_ptr"
+.LASF1369:
+ .string "__glibcxx_want_is_final "
+.LASF2198:
+ .string "_Tuple_impl<1, std::default_delete<Base> >"
+.LASF702:
+ .string "__returns_nonnull __attribute__ ((__returns_nonnull__))"
+.LASF1784:
+ .string "__FLOAT_WORD_ORDER __BYTE_ORDER"
+.LASF1304:
+ .string "__glibcxx_want_ranges_to_container"
+.LASF2096:
+ .string "_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL(X) "
+.LASF1159:
+ .string "__glibcxx_is_invocable 201703L"
+.LASF227:
+ .string "__FLT_MIN__ 1.17549435082228750796873653722224568e-38F"
+.LASF1132:
+ .string "__glibcxx_shared_timed_mutex 201402L"
+.LASF993:
+ .string "_GLIBCXX98_USE_C99_COMPLEX 1"
+.LASF636:
+ .string "__USE_LARGEFILE 1"
+.LASF724:
+ .string "__LDBL_REDIR2_DECL(name) "
+.LASF44:
+ .string "__SIZE_TYPE__ long unsigned int"
+.LASF254:
+ .string "__LDBL_MAX_EXP__ 16384"
+.LASF1155:
+ .string "__glibcxx_invoke 201411L"
+.LASF2304:
+ .string "short int"
+.LASF452:
+ .string "__MMX_WITH_SSE__ 1"
+.LASF1877:
+ .string "__CPU_ALLOC_SIZE(count) ((((count) + __NCPUBITS - 1) / __NCPUBITS) * sizeof (__cpu_mask))"
+.LASF11:
+ .string "__GNUC_MINOR__ 1"
+.LASF1415:
+ .string "_GLIBCXX26_ALGO_DEF_VAL_T(_Iterator) "
+.LASF4:
+ .string "__STDC_UTF_16__ 1"
+.LASF2089:
+ .string "ATOMIC_FLAG_INIT { 0 }"
+.LASF473:
+ .string "_CPP_CPPCONFIG_WRAPPER 1"
+.LASF1705:
+ .string "_GLIBCXX_MEM_FN_TRAITS"
+.LASF99:
+ .string "__cpp_nsdmi 200809L"
+.LASF23:
+ .string "_LP64 1"
+.LASF1883:
+ .string "CPU_SET(cpu,cpusetp) __CPU_SET_S (cpu, sizeof (cpu_set_t), cpusetp)"
+.LASF1025:
+ .string "_GLIBCXX_USE_C99_STDINT_TR1 1"
+.LASF88:
+ .string "__cpp_raw_strings 200710L"
+.LASF1394:
+ .string "__cpp_lib_bool_constant 201505L"
+.LASF1812:
+ .string "__ASM_X86_BITSPERLONG_H "
+.LASF1728:
+ .string "__S64_TYPE long int"
+.LASF2122:
+ .string "__cpp_lib_parallel_algorithm 201603L"
+.LASF1624:
+ .string "__wint_t_defined 1"
+.LASF207:
+ .string "__UINT_FAST32_MAX__ 0xffffffffffffffffUL"
+.LASF85:
+ .string "__cpp_binary_literals 201304L"
+.LASF543:
+ .string "_GLIBCXX_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_NAMESPACE_CXX11"
+.LASF1818:
+ .string "__struct_group_tag(TAG) "
+.LASF1318:
+ .string "__glibcxx_want_ranges_iota"
+.LASF198:
+ .string "__INT_FAST8_WIDTH__ 8"
+.LASF164:
+ .string "__UINTMAX_C(c) c ## UL"
+.LASF1334:
+ .string "__glibcxx_want_string_contains"
+.LASF1401:
+ .string "_GLIBCXX_FWDREF(_Tp) _Tp&&"
+.LASF1074:
+ .string "__glibcxx_want_hardware_interference_size "
+.LASF751:
+ .string "_GLIBCXX_NATIVE_THREAD_ID pthread_self()"
+.LASF2103:
+ .string "__glibcxx_want_constexpr_dynamic_alloc "
+.LASF45:
+ .string "__PTRDIFF_TYPE__ long int"
+.LASF2225:
+ .string "_ZNSt11_Tuple_implILm0EJP4BaseSt14default_deleteIS0_EEEC4ERKS1_RKS3_"
+.LASF1301:
+ .string "__glibcxx_want_is_scoped_enum"
+.LASF189:
+ .string "__UINT_LEAST8_MAX__ 0xff"
+.LASF291:
+ .string "__FLT32_NORM_MAX__ 3.40282346638528859811704183484516925e+38F32"
+.LASF621:
+ .string "__USE_ISOC95 1"
+.LASF536:
+ .string "_GLIBCXX_END_NAMESPACE_ALGO "
+.LASF1205:
+ .string "__glibcxx_want_memory_resource"
+.LASF177:
+ .string "__INT_LEAST8_MAX__ 0x7f"
+.LASF187:
+ .string "__INT64_C(c) c ## L"
+.LASF531:
+ .string "_GLIBCXX_STD_C std"
+.LASF903:
+ .string "_GLIBCXX_HAVE_NETINET_IN_H 1"
+.LASF534:
+ .string "_GLIBCXX_STD_A std"
+.LASF1671:
+ .string "wcsncat"
+.LASF762:
+ .string "_GLIBCXX_USE_C99_MATH _GLIBCXX11_USE_C99_MATH"
+.LASF1531:
+ .string "__GLIBC_USE_LIB_EXT2"
+.LASF12:
+ .string "__GNUC_PATCHLEVEL__ 1"
+.LASF711:
+ .string "__va_arg_pack() __builtin_va_arg_pack ()"
+ .section .debug_line_str,"MS",@progbits,1
+.LASF1:
+ .string "."
+.LASF0:
+ .string "dwarf.cc"
+ .hidden __dso_handle
+ .globl __gxx_personality_v0
+ .ident "GCC: (GNU) 15.1.1 20250425 (Red Hat 15.1.1-1)"
+ .section .note.GNU-stack,"",@progbits
diff --git a/binutils/testsuite/binutils-all/x86-64/pr32927-1.d b/binutils/testsuite/binutils-all/x86-64/pr32927-1.d
new file mode 100644
index 0000000..beaf44b
--- /dev/null
+++ b/binutils/testsuite/binutils-all/x86-64/pr32927-1.d
@@ -0,0 +1,6 @@
+#source: dwarf4.s
+#as: --64
+#readelf: --dwarf-check --debug-dump=Ranges
+
+Contents of the \.debug_ranges section:
+#pass
diff --git a/binutils/testsuite/binutils-all/x86-64/pr32927-2.d b/binutils/testsuite/binutils-all/x86-64/pr32927-2.d
new file mode 100644
index 0000000..51ebe93
--- /dev/null
+++ b/binutils/testsuite/binutils-all/x86-64/pr32927-2.d
@@ -0,0 +1,6 @@
+#source: dwarf5.s
+#as: --64
+#readelf: --dwarf-check --debug-dump=Ranges
+
+Contents of the \.debug_rnglists section:
+#pass
diff --git a/binutils/testsuite/gentestdlls.c b/binutils/testsuite/gentestdlls.c
index 805c648..df60b1e 100644
--- a/binutils/testsuite/gentestdlls.c
+++ b/binutils/testsuite/gentestdlls.c
@@ -25,7 +25,6 @@
See:
https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-335.pdf */
-#include <memory.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
diff --git a/binutils/windint.h b/binutils/windint.h
index 3b950ac..10cf46e 100644
--- a/binutils/windint.h
+++ b/binutils/windint.h
@@ -1087,9 +1087,9 @@ extern void get_windres_bfd_content (windres_bfd *, void *, rc_uint_type, rc_uin
extern void windres_put_8 (windres_bfd *, void *, rc_uint_type);
extern void windres_put_16 (windres_bfd *, void *, rc_uint_type);
extern void windres_put_32 (windres_bfd *, void *, rc_uint_type);
-extern rc_uint_type windres_get_8 (windres_bfd *, const void *, rc_uint_type);
-extern rc_uint_type windres_get_16 (windres_bfd *, const void *, rc_uint_type);
-extern rc_uint_type windres_get_32 (windres_bfd *, const void *, rc_uint_type);
+extern rc_uint_type windres_get_8 (windres_bfd *, const void *);
+extern rc_uint_type windres_get_16 (windres_bfd *, const void *);
+extern rc_uint_type windres_get_32 (windres_bfd *, const void *);
extern void set_windres_bfd (windres_bfd *, bfd *, asection *, rc_uint_type);
extern void set_windres_bfd_endianness (windres_bfd *, int);
diff --git a/binutils/windres.c b/binutils/windres.c
index de93acf..cfd306b 100644
--- a/binutils/windres.c
+++ b/binutils/windres.c
@@ -106,26 +106,6 @@ struct include_dir
};
static struct include_dir *include_dirs;
-
-/* Static functions. */
-
-static void res_init (void);
-static int extended_menuitems (const rc_menuitem *);
-static enum res_format format_from_name (const char *, int);
-static enum res_format format_from_filename (const char *, int);
-static void usage (FILE *, int);
-static int cmp_res_entry (const void *, const void *);
-static rc_res_directory *sort_resources (rc_res_directory *);
-static void reswr_init (void);
-static const char * quot (const char *);
-
-static rc_uint_type target_get_8 (const void *, rc_uint_type);
-static void target_put_8 (void *, rc_uint_type);
-static rc_uint_type target_get_16 (const void *, rc_uint_type);
-static void target_put_16 (void *, rc_uint_type);
-static rc_uint_type target_get_32 (const void *, rc_uint_type);
-static void target_put_32 (void *, rc_uint_type);
-
/* When we are building a resource tree, we allocate everything onto
an obstack, so that we can free it all at once if we want. */
@@ -504,12 +484,6 @@ extended_dialog (const rc_dialog *dialog)
/* Return whether MENUITEMS are a MENU or a MENUEX. */
-int
-extended_menu (const rc_menu *menu)
-{
- return extended_menuitems (menu->items);
-}
-
static int
extended_menuitems (const rc_menuitem *menuitems)
{
@@ -541,6 +515,12 @@ extended_menuitems (const rc_menuitem *menuitems)
return 0;
}
+
+int
+extended_menu (const rc_menu *menu)
+{
+ return extended_menuitems (menu->items);
+}
/* Convert a string to a format type, or exit if it can't be done. */
@@ -1076,23 +1056,24 @@ main (int argc, char **argv)
/* Write the output file. */
reswr_init ();
+ bool ok;
switch (output_format)
{
default:
abort ();
case RES_FORMAT_RC:
- write_rc_file (output_filename, resources);
+ ok = write_rc_file (output_filename, resources);
break;
case RES_FORMAT_RES:
- write_res_file (output_filename, resources);
+ ok = write_res_file (output_filename, resources);
break;
case RES_FORMAT_COFF:
- write_coff_file (output_filename, target, resources);
+ ok = write_coff_file (output_filename, target, resources);
break;
}
- xexit (0);
- return 0;
+ xexit (ok ? 0 : 1);
+ return ok ? 0 : 1;
}
static void
@@ -1114,13 +1095,18 @@ windres_open_as_binary (const char *filename, int rdmode)
{
bfd *abfd;
- abfd = (rdmode ? bfd_openr (filename, "binary") : bfd_openw (filename, "binary"));
- if (! abfd)
- fatal ("can't open `%s' for %s", filename, (rdmode ? "input" : "output"));
-
- if (rdmode && ! bfd_check_format (abfd, bfd_object))
- fatal ("can't open `%s' for input.", filename);
-
+ if (rdmode)
+ {
+ abfd = bfd_openr (filename, "binary");
+ if (abfd == NULL || !bfd_check_format (abfd, bfd_object))
+ fatal ("can't open `%s' for input", filename);
+ }
+ else
+ {
+ abfd = bfd_openw (filename, "binary");
+ if (abfd == NULL || !bfd_set_format (abfd, bfd_object))
+ fatal ("can't open `%s' for output", filename);
+ }
return abfd;
}
@@ -1194,6 +1180,60 @@ get_windres_bfd_content (windres_bfd *wrbfd, void *data, rc_uint_type off,
abort ();
}
+static void
+target_put_8 (void *p, rc_uint_type value)
+{
+ assert (!! p);
+ *((bfd_byte *) p)=(bfd_byte) value;
+}
+
+static void
+target_put_16 (void *p, rc_uint_type value)
+{
+ assert (!! p);
+
+ if (target_is_bigendian)
+ bfd_putb16 (value, p);
+ else
+ bfd_putl16 (value, p);
+}
+
+static void
+target_put_32 (void *p, rc_uint_type value)
+{
+ assert (!! p);
+
+ if (target_is_bigendian)
+ bfd_putb32 (value, p);
+ else
+ bfd_putl32 (value, p);
+}
+
+static rc_uint_type
+target_get_8 (const void *p)
+{
+ rc_uint_type ret = *((const bfd_byte *) p);
+ return ret & 0xff;
+}
+
+static rc_uint_type
+target_get_16 (const void *p)
+{
+ if (target_is_bigendian)
+ return bfd_getb16 (p);
+ else
+ return bfd_getl16 (p);
+}
+
+static rc_uint_type
+target_get_32 (const void *p)
+{
+ if (target_is_bigendian)
+ return bfd_getb32 (p);
+ else
+ return bfd_getl32 (p);
+}
+
void
windres_put_8 (windres_bfd *wrbfd, void *p, rc_uint_type value)
{
@@ -1253,14 +1293,12 @@ windres_put_32 (windres_bfd *wrbfd, void *data, rc_uint_type value)
}
rc_uint_type
-windres_get_8 (windres_bfd *wrbfd, const void *data, rc_uint_type length)
+windres_get_8 (windres_bfd *wrbfd, const void *data)
{
- if (length < 1)
- fatal ("windres_get_8: unexpected eob.");
switch (WR_KIND(wrbfd))
{
case WR_KIND_TARGET:
- return target_get_8 (data, length);
+ return target_get_8 (data);
case WR_KIND_BFD:
case WR_KIND_BFD_BIN_B:
case WR_KIND_BFD_BIN_L:
@@ -1272,14 +1310,12 @@ windres_get_8 (windres_bfd *wrbfd, const void *data, rc_uint_type length)
}
rc_uint_type
-windres_get_16 (windres_bfd *wrbfd, const void *data, rc_uint_type length)
+windres_get_16 (windres_bfd *wrbfd, const void *data)
{
- if (length < 2)
- fatal ("windres_get_16: unexpected eob.");
switch (WR_KIND(wrbfd))
{
case WR_KIND_TARGET:
- return target_get_16 (data, length);
+ return target_get_16 (data);
case WR_KIND_BFD:
case WR_KIND_BFD_BIN_B:
return bfd_get_16 (WR_BFD(wrbfd), data);
@@ -1292,14 +1328,12 @@ windres_get_16 (windres_bfd *wrbfd, const void *data, rc_uint_type length)
}
rc_uint_type
-windres_get_32 (windres_bfd *wrbfd, const void *data, rc_uint_type length)
+windres_get_32 (windres_bfd *wrbfd, const void *data)
{
- if (length < 4)
- fatal ("windres_get_32: unexpected eob.");
switch (WR_KIND(wrbfd))
{
case WR_KIND_TARGET:
- return target_get_32 (data, length);
+ return target_get_32 (data);
case WR_KIND_BFD:
case WR_KIND_BFD_BIN_B:
return bfd_get_32 (WR_BFD(wrbfd), data);
@@ -1311,71 +1345,6 @@ windres_get_32 (windres_bfd *wrbfd, const void *data, rc_uint_type length)
return 0;
}
-static rc_uint_type
-target_get_8 (const void *p, rc_uint_type length)
-{
- rc_uint_type ret;
-
- if (length < 1)
- fatal ("Resource too small for getting 8-bit value.");
-
- ret = (rc_uint_type) *((const bfd_byte *) p);
- return ret & 0xff;
-}
-
-static rc_uint_type
-target_get_16 (const void *p, rc_uint_type length)
-{
- if (length < 2)
- fatal ("Resource too small for getting 16-bit value.");
-
- if (target_is_bigendian)
- return bfd_getb16 (p);
- else
- return bfd_getl16 (p);
-}
-
-static rc_uint_type
-target_get_32 (const void *p, rc_uint_type length)
-{
- if (length < 4)
- fatal ("Resource too small for getting 32-bit value.");
-
- if (target_is_bigendian)
- return bfd_getb32 (p);
- else
- return bfd_getl32 (p);
-}
-
-static void
-target_put_8 (void *p, rc_uint_type value)
-{
- assert (!! p);
- *((bfd_byte *) p)=(bfd_byte) value;
-}
-
-static void
-target_put_16 (void *p, rc_uint_type value)
-{
- assert (!! p);
-
- if (target_is_bigendian)
- bfd_putb16 (value, p);
- else
- bfd_putl16 (value, p);
-}
-
-static void
-target_put_32 (void *p, rc_uint_type value)
-{
- assert (!! p);
-
- if (target_is_bigendian)
- bfd_putb32 (value, p);
- else
- bfd_putl32 (value, p);
-}
-
static int isInComment = 0;
int wr_printcomment (FILE *e, const char *fmt, ...)
diff --git a/binutils/windres.h b/binutils/windres.h
index 309564e..15c6ad0 100644
--- a/binutils/windres.h
+++ b/binutils/windres.h
@@ -35,9 +35,9 @@ extern int verbose;
extern rc_res_directory *read_rc_file (const char *, const char *, const char *, int, int);
extern rc_res_directory *read_res_file (const char *);
extern rc_res_directory *read_coff_rsrc (const char *, const char *);
-extern void write_rc_file (const char *, const rc_res_directory *);
-extern void write_res_file (const char *, const rc_res_directory *);
-extern void write_coff_file (const char *, const char *, const rc_res_directory *);
+extern bool write_rc_file (const char *, const rc_res_directory *);
+extern bool write_res_file (const char *, const rc_res_directory *);
+extern bool write_coff_file (const char *, const char *, const rc_res_directory *);
extern rc_res_resource *bin_to_res (windres_bfd *, rc_res_id, const bfd_byte *,
rc_uint_type);
diff --git a/config/bfd64.m4 b/config/bfd64.m4
index d134f1a..d816f7f 100644
--- a/config/bfd64.m4
+++ b/config/bfd64.m4
@@ -16,21 +16,25 @@ dnl along with this program; see the file COPYING3. If not see
dnl <http://www.gnu.org/licenses/>.
dnl
-dnl See whether 64-bit bfd lib has been enabled.
+dnl Make sure your module depends on `all-bfd' when invoking this macro.
AC_DEFUN([BFD_64_BIT], [dnl
-AC_ARG_ENABLE(64-bit-bfd,
- AS_HELP_STRING([--enable-64-bit-bfd],
- [64-bit support (on hosts with narrower word sizes)]),
- [AS_CASE([$enableval],
- [yes|no], [],
- [*], [AC_MSG_ERROR(bad value ${enableval} for 64-bit-bfd option)])],
- [enable_64_bit_bfd=no])
-
-dnl If the host is 64-bit, then 64-bit bfd is enabled automatically.
-AS_IF([test "x$enable_64_bit_bfd" = "xno"], [dnl
- AC_CHECK_SIZEOF(void *)
- AS_IF([test "x$ac_cv_sizeof_void_p" = "x8"], [enable_64_bit_bfd=yes])
-])
-
-AM_CONDITIONAL([ENABLE_BFD_64_BIT], [test "x$enable_64_bit_bfd" = "xyes"])
-])
+# See whether 64-bit bfd lib has been enabled.
+OLD_CPPFLAGS=$CPPFLAGS
+# Put the old CPPFLAGS last, in case the user's CPPFLAGS point somewhere
+# with bfd, with -I/foo/include. We always want our bfd.
+CPPFLAGS="-I${srcdir}/../include -I../bfd -I${srcdir}/../bfd $CPPFLAGS"
+# Note we cannot cache the result of this check because BFD64 may change
+# when a secondary target has been added or removed and we have no access
+# to this information here.
+AC_MSG_CHECKING([whether BFD is 64-bit])
+AC_EGREP_CPP([HAVE_BFD64],
+ AC_LANG_PROGRAM(
+ [#include "bfd.h"],
+ [dnl
+#ifdef BFD64
+HAVE_BFD64
+#endif]),
+ [have_64_bit_bfd=yes],
+ [have_64_bit_bfd=no])
+AC_MSG_RESULT([$have_64_bit_bfd])
+CPPFLAGS=$OLD_CPPFLAGS])
diff --git a/cpu/or1k.opc b/cpu/or1k.opc
index 5d20a1f..748187e 100644
--- a/cpu/or1k.opc
+++ b/cpu/or1k.opc
@@ -38,7 +38,7 @@
#undef CGEN_DIS_HASH_SIZE
#define CGEN_DIS_HASH_SIZE 256
#undef CGEN_DIS_HASH
-#define CGEN_DIS_HASH(buffer, value) (((unsigned char *) (buffer))[0] >> 2)
+#define CGEN_DIS_HASH(buffer, value) ((value >> 26) & 0xff)
/* Check applicability of instructions against machines. */
#define CGEN_VALIDATE_INSN_SUPPORTED
diff --git a/cpu/or1kcommon.cpu b/cpu/or1kcommon.cpu
index 9f102c9..7f91954 100644
--- a/cpu/or1kcommon.cpu
+++ b/cpu/or1kcommon.cpu
@@ -243,6 +243,8 @@
(.unsplice
(.map (.pmacro (n) (.splice SYS (.sym "ESR" n) (.add n #x40) (.str "Exception supervision register " n)))
(.iota #x10)))
+ (SYS COREID #x080 "Core identifier register")
+ (SYS NUMCORES #x081 "Number of cores register")
(.unsplice
(.map (.pmacro (n) (.splice SYS (.sym "GPR" n) (.add n #x400) (.str "General purpose register " n)))
(.iota #x200)))
diff --git a/gas/NEWS b/gas/NEWS
index 70f3ad4..09bea9d 100644
--- a/gas/NEWS
+++ b/gas/NEWS
@@ -1,5 +1,25 @@
-*- text -*-
+* Support for x86 AVX10.2 256 bit rounding has been dropped, as all the
+ hardware would directly support 512 bit vecotr width.
+
+* For RISC-V, stop generating mapping symbols $x and replace with $x<isa>. The
+ $x was defined to have the same ISA as previous $x<isa>, but now is defined
+ to have the same ISA as elf architecture attribute. Once used .option arch
+ directives, the file need to be rebuilt since 2.45.
+
+* Add support for RISC-V privileged version 1.13, Profiles.
+
+* Add support for RISC-V standard extensions:
+ ssqosid v1.0, ssnpm v1.0, smnpm v1.0, smmpm v1.0, sspm v1.0, supm v1.0,
+ sha v1.0, zce v1.0, smcdeleg v1.0, ssccfg v1.0, svvptc v1.0.
+
+* Add support for RISC-V vendor extensions:
+ T-Head: xtheadvdot v1.0.
+ MIPS: xmipscbop v1.0, xmipscmov v1.0, xmipsexectl v1.0, xmipslsp v1.0.
+
+* Add support for the x86 Zhaoxin PadLock XMODX instructions.
+
Changes in 2.44:
* Add support for the x86 Intel Diamond Rapids AMX instructions, including
diff --git a/gas/as.c b/gas/as.c
index 449167d..a37d59d 100644
--- a/gas/as.c
+++ b/gas/as.c
@@ -469,10 +469,12 @@ parse_args (int * pargc, char *** pargv)
OPTION_EMULATION,
OPTION_DEBUG_PREFIX_MAP,
OPTION_DEFSYM,
+#ifndef NO_LISTING
OPTION_LISTING_LHS_WIDTH,
OPTION_LISTING_LHS_WIDTH2, /* = STD_BASE + 10 */
OPTION_LISTING_RHS_WIDTH,
OPTION_LISTING_CONT_LINES,
+#endif
OPTION_DEPFILE,
OPTION_GSTABS,
OPTION_GSTABS_PLUS,
@@ -573,10 +575,12 @@ parse_args (int * pargc, char *** pargv)
ports use -k to enable PIC assembly. */
,{"keep-locals", no_argument, NULL, 'L'}
,{"keep-locals", no_argument, NULL, 'L'}
+#ifndef NO_LISTING
,{"listing-lhs-width", required_argument, NULL, OPTION_LISTING_LHS_WIDTH}
,{"listing-lhs-width2", required_argument, NULL, OPTION_LISTING_LHS_WIDTH2}
,{"listing-rhs-width", required_argument, NULL, OPTION_LISTING_RHS_WIDTH}
,{"listing-cont-lines", required_argument, NULL, OPTION_LISTING_CONT_LINES}
+#endif
,{"MD", required_argument, NULL, OPTION_DEPFILE}
,{"mri", no_argument, NULL, 'M'}
,{"nocpp", no_argument, NULL, OPTION_NOCPP}
@@ -918,6 +922,7 @@ This program has absolutely no warranty.\n"));
flag_keep_locals = 1;
break;
+#ifndef NO_LISTING
case OPTION_LISTING_LHS_WIDTH:
listing_lhs_width = atoi (optarg);
if (listing_lhs_width_second < listing_lhs_width)
@@ -925,7 +930,7 @@ This program has absolutely no warranty.\n"));
break;
case OPTION_LISTING_LHS_WIDTH2:
{
- int tmp = atoi (optarg);
+ unsigned int tmp = atoi (optarg);
if (tmp > listing_lhs_width)
listing_lhs_width_second = tmp;
@@ -937,6 +942,7 @@ This program has absolutely no warranty.\n"));
case OPTION_LISTING_CONT_LINES:
listing_lhs_cont_lines = atoi (optarg);
break;
+#endif /* NO_LISTING */
case 'M':
flag_mri = 1;
@@ -1382,7 +1388,9 @@ gas_init (void)
int
main (int argc, char ** argv)
{
+#ifndef NO_LISTING
char ** argv_orig = argv;
+#endif
struct stat sob;
gas_early_init (&argc, &argv);
diff --git a/gas/as.h b/gas/as.h
index 826d88d..4b5f78b 100644
--- a/gas/as.h
+++ b/gas/as.h
@@ -247,9 +247,7 @@ enum _relax_state
1 constant byte: no-op fill control byte. */
rs_space_nop,
- /* Similar to rs_fill. It is used to implement .nops directive.
- When listings are enabled, fr_opcode gets the buffer assigned, once
- that's available. */
+ /* Similar to rs_fill. It is used to implement .nops directive. */
rs_fill_nop,
/* A DWARF leb128 value; only ELF uses this. The subtype is 0 for
diff --git a/gas/cond.c b/gas/cond.c
index 9213f91..c14399d 100644
--- a/gas/cond.c
+++ b/gas/cond.c
@@ -141,7 +141,7 @@ s_if (int arg)
if (current_cframe != NULL && current_cframe->ignoring)
{
operand.X_add_number = 0;
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
}
else
@@ -201,7 +201,7 @@ s_ifb (int test_blank)
int is_eol;
SKIP_WHITESPACE ();
- is_eol = is_end_of_line[(unsigned char) *input_line_pointer];
+ is_eol = is_end_of_stmt (*input_line_pointer);
cframe.ignoring = (test_blank == !is_eol);
}
@@ -232,7 +232,7 @@ get_mri_string (int terminator, int *len)
{
++s;
++input_line_pointer;
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
{
*s++ = *input_line_pointer++;
if (s[-1] == '\'')
@@ -247,7 +247,7 @@ get_mri_string (int terminator, int *len)
else
{
while (*input_line_pointer != terminator
- && ! is_end_of_line[(unsigned char) *input_line_pointer])
+ && ! is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
s = input_line_pointer;
while (s > ret && is_whitespace (s[-1]))
@@ -330,7 +330,7 @@ s_elseif (int arg)
if (current_cframe == NULL || current_cframe->ignoring)
{
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
if (current_cframe == NULL)
@@ -401,7 +401,7 @@ s_endif (int arg ATTRIBUTE_UNUSED)
if (flag_mri)
{
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
}
@@ -448,7 +448,7 @@ s_else (int arg ATTRIBUTE_UNUSED)
if (flag_mri)
{
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
}
diff --git a/gas/config/kvx-parse.c b/gas/config/kvx-parse.c
index 942eab3..5995d62 100644
--- a/gas/config/kvx-parse.c
+++ b/gas/config/kvx-parse.c
@@ -409,7 +409,7 @@ promote_token (struct token_s tok)
: tok.class_id;
case CAT_IMMEDIATE:
{
- expressionS exp = { 0 };
+ expressionS exp;
char *ilp_save = input_line_pointer;
input_line_pointer = tok.insn + tok.begin;
expression (&exp);
@@ -462,7 +462,7 @@ get_token_class (struct token_s *token, struct token_classes *classes, int insn_
int found = 0;
int tok_sz = token->end - token->begin;
char *tok = token->insn + token->begin;
- expressionS exp = {0};
+ expressionS exp;
token->val = 0;
int token_val_p = 0;
diff --git a/gas/config/loongarch-parse.y b/gas/config/loongarch-parse.y
index ac35dee..d575748 100644
--- a/gas/config/loongarch-parse.y
+++ b/gas/config/loongarch-parse.y
@@ -42,7 +42,7 @@ is_const (struct reloc_info *info)
}
int
-loongarch_parse_expr (const char *expr,
+loongarch_parse_expr (const char *exp,
struct reloc_info *reloc_stack_top,
size_t max_reloc_num,
size_t *reloc_num,
@@ -52,7 +52,7 @@ loongarch_parse_expr (const char *expr,
struct yy_buffer_state *buffstate;
top = reloc_stack_top;
end = top + max_reloc_num;
- buffstate = yy_scan_string (expr);
+ buffstate = yy_scan_string (exp);
ret = yyparse ();
if (ret == 0)
@@ -207,26 +207,41 @@ emit_bin (int op)
switch (op)
{
case '*':
- opr1 = opr1 * opr2;
+ opr1 = (valueT) opr1 * (valueT) opr2;
break;
case '/':
- opr1 = opr1 / opr2;
+ if (opr2 == 0)
+ {
+ as_warn (_("Divide by zero!"));
+ opr1 = 0;
+ }
+ else
+ opr1 = opr1 / opr2;
break;
case '%':
- opr1 = opr1 % opr2;
+ if (opr2 == 0)
+ {
+ as_warn (_("Divide by zero!"));
+ opr1 = 0;
+ }
+ else
+ opr1 = opr1 % opr2;
break;
case '+':
- opr1 = opr1 + opr2;
+ opr1 = (valueT) opr1 + (valueT) opr2;
break;
case '-':
- opr1 = opr1 - opr2;
+ opr1 = (valueT) opr1 - (valueT) opr2;
break;
case LEFT_OP:
- opr1 = opr1 << opr2;
+ opr1 = (valueT) opr1 << opr2;
break;
case RIGHT_OP:
- /* Algorithm right shift. */
- opr1 = (offsetT)opr1 >> (offsetT)opr2;
+ if (opr1 < 0)
+ as_warn (_("Right shift of negative numbers may be changed "
+ "from arithmetic right shift to logical right shift!"));
+ /* Arithmetic right shift. */
+ opr1 = opr1 >> opr2;
break;
case '<':
opr1 = opr1 < opr2;
diff --git a/gas/config/obj-coff-seh.c b/gas/config/obj-coff-seh.c
index adb2f97..becf7a9 100644
--- a/gas/config/obj-coff-seh.c
+++ b/gas/config/obj-coff-seh.c
@@ -121,7 +121,7 @@ seh_hash_insert (const char *name, struct seh_seg_list *item)
static struct seh_seg_list *
seh_hash_find (char *name)
{
- return (struct seh_seg_list *) str_hash_find (seh_hash, name);
+ return str_hash_find (seh_hash, name);
}
static struct seh_seg_list *
@@ -417,6 +417,9 @@ do_seh_endproc (void)
write_function_xdata (seh_ctx_cur);
write_function_pdata (seh_ctx_cur);
+ free (seh_ctx_cur->elems);
+ free (seh_ctx_cur->func_name);
+ free (seh_ctx_cur);
seh_ctx_cur = NULL;
}
diff --git a/gas/config/obj-coff-seh.h b/gas/config/obj-coff-seh.h
index e1f7bb6..598870a 100644
--- a/gas/config/obj-coff-seh.h
+++ b/gas/config/obj-coff-seh.h
@@ -89,8 +89,6 @@ typedef struct seh_prologue_element
typedef struct seh_context
{
- struct seh_context *next;
-
/* Initial code-segment. */
segT code_seg;
/* Function name. */
diff --git a/gas/config/obj-coff.c b/gas/config/obj-coff.c
index 941e80d..1f9eaa3 100644
--- a/gas/config/obj-coff.c
+++ b/gas/config/obj-coff.c
@@ -133,7 +133,7 @@ tag_insert (const char *name, symbolS *symbolP)
static symbolS *
tag_find (char *name)
{
- return (symbolS *) str_hash_find (tag_hash, name);
+ return str_hash_find (tag_hash, name);
}
static symbolS *
@@ -368,8 +368,8 @@ static symbolS *line_fsym;
void
coff_obj_symbol_new_hook (symbolS *symbolP)
{
- long sz = (OBJ_COFF_MAX_AUXENTRIES + 1) * sizeof (combined_entry_type);
- char * s = XNEWVEC (char, sz);
+ size_t sz = (OBJ_COFF_MAX_AUXENTRIES + 1) * sizeof (combined_entry_type);
+ char *s = notes_alloc (sz);
memset (s, 0, sz);
coffsymbol (symbol_get_bfdsym (symbolP))->native = (combined_entry_type *) s;
@@ -389,11 +389,10 @@ coff_obj_symbol_new_hook (symbolS *symbolP)
void
coff_obj_symbol_clone_hook (symbolS *newsymP, symbolS *orgsymP)
{
- long elts = OBJ_COFF_MAX_AUXENTRIES + 1;
- combined_entry_type * s = XNEWVEC (combined_entry_type, elts);
+ size_t sz = (OBJ_COFF_MAX_AUXENTRIES + 1) * sizeof (combined_entry_type);
+ combined_entry_type *s = notes_alloc (sz);
- memcpy (s, coffsymbol (symbol_get_bfdsym (orgsymP))->native,
- elts * sizeof (combined_entry_type));
+ memcpy (s, coffsymbol (symbol_get_bfdsym (orgsymP))->native, sz);
coffsymbol (symbol_get_bfdsym (newsymP))->native = s;
SF_SET (newsymP, SF_GET (orgsymP));
@@ -570,13 +569,9 @@ obj_coff_ident (int ignore ATTRIBUTE_UNUSED)
#define SKIP_WHITESPACES() while (is_whitespace (*input_line_pointer)) \
input_line_pointer++;
-static void
+void
obj_coff_def (int what ATTRIBUTE_UNUSED)
{
- char name_end; /* Char after the end of name. */
- char *symbol_name; /* Name of the debug symbol. */
- char *symbol_name_copy; /* Temporary copy of the name. */
-
if (def_symbol_in_progress != NULL)
{
as_warn (_(".def pseudo-op used inside of .def/.endef: ignored."));
@@ -586,14 +581,18 @@ obj_coff_def (int what ATTRIBUTE_UNUSED)
SKIP_WHITESPACES ();
- name_end = get_symbol_name (&symbol_name);
- symbol_name_copy = xstrdup (symbol_name);
+ char *symbol_name;
+ char name_end = get_symbol_name (&symbol_name);
+ char *symbol_name_copy = NULL;
+ char *canon_name = symbol_name;
#ifdef tc_canonicalize_symbol_name
- symbol_name_copy = tc_canonicalize_symbol_name (symbol_name_copy);
+ symbol_name_copy = xstrdup (symbol_name);
+ canon_name = tc_canonicalize_symbol_name (symbol_name_copy);
#endif
/* Initialize the new symbol. */
- def_symbol_in_progress = symbol_make (symbol_name_copy);
+ def_symbol_in_progress = symbol_make (canon_name);
+ free (symbol_name_copy);
symbol_set_frag (def_symbol_in_progress, &zero_address_frag);
S_SET_VALUE (def_symbol_in_progress, 0);
@@ -1060,7 +1059,7 @@ weak_is_altname (const char * name)
/* Return the name of the alternate symbol
name corresponding to a weak symbol's name. */
-static const char *
+static char *
weak_name2altname (const char * name)
{
return concat (weak_altprefix, name, (char *) NULL);
@@ -1069,7 +1068,7 @@ weak_name2altname (const char * name)
/* Return the name of the weak symbol corresponding to an
alternate symbol. */
-static const char *
+static char *
weak_altname2name (const char * name)
{
gas_assert (weak_is_altname (name));
@@ -1090,7 +1089,7 @@ weak_uniquify (const char * name)
#endif
gas_assert (weak_is_altname (name));
- return concat (name, ".", unique, (char *) NULL);
+ return notes_concat (name, ".", unique, (char *) NULL);
}
void
@@ -1107,7 +1106,9 @@ pecoff_obj_set_weak_hook (symbolS *symbolP)
S_SET_NUMBER_AUXILIARY (symbolP, 1);
SA_SET_SYM_FSIZE (symbolP, IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY);
- alternateP = symbol_find_or_make (weak_name2altname (S_GET_NAME (symbolP)));
+ char *altname = weak_name2altname (S_GET_NAME (symbolP));
+ alternateP = symbol_find_or_make (altname);
+ free (altname);
S_SET_EXTERNAL (alternateP);
S_SET_STORAGE_CLASS (alternateP, C_NT_WEAK);
@@ -1122,7 +1123,9 @@ pecoff_obj_clear_weak_hook (symbolS *symbolP)
S_SET_STORAGE_CLASS (symbolP, 0);
SA_SET_SYM_FSIZE (symbolP, 0);
- alternateP = symbol_find (weak_name2altname (S_GET_NAME (symbolP)));
+ char *altname = weak_name2altname (S_GET_NAME (symbolP));
+ alternateP = symbol_find (altname);
+ free (altname);
S_CLEAR_EXTERNAL (alternateP);
}
@@ -1184,7 +1187,6 @@ coff_assign_symbol (symbolS *symp ATTRIBUTE_UNUSED)
#endif
}
-symbolS *coff_last_function;
#ifndef OBJ_XCOFF
static symbolS *coff_last_bf;
#endif
@@ -1192,6 +1194,7 @@ static symbolS *coff_last_bf;
void
coff_frob_symbol (symbolS *symp, int *punt)
{
+ static symbolS *last_functionP;
static symbolS *last_tagP;
static stack *block_stack;
static symbolS *set_end;
@@ -1216,9 +1219,9 @@ coff_frob_symbol (symbolS *symp, int *punt)
{
/* This is a weak alternate symbol. All processing of
PECOFFweak symbols is done here, through the alternate. */
- symbolS *weakp = symbol_find_noref (weak_altname2name
- (S_GET_NAME (symp)), 1);
-
+ char *weakname = weak_altname2name (S_GET_NAME (symp));
+ symbolS *weakp = symbol_find_noref (weakname, 1);
+ free (weakname);
gas_assert (weakp);
gas_assert (S_GET_NUMBER_AUXILIARY (weakp) == 1);
@@ -1335,30 +1338,26 @@ coff_frob_symbol (symbolS *symp, int *punt)
}
}
- if (coff_last_function == 0 && SF_GET_FUNCTION (symp)
- && S_IS_DEFINED (symp))
+ if (SF_GET_FUNCTION (symp) && S_IS_DEFINED (symp))
{
union internal_auxent *auxp;
- coff_last_function = symp;
if (S_GET_NUMBER_AUXILIARY (symp) < 1)
S_SET_NUMBER_AUXILIARY (symp, 1);
auxp = SYM_AUXENT (symp);
- memset (auxp->x_sym.x_fcnary.x_ary.x_dimen, 0,
- sizeof (auxp->x_sym.x_fcnary.x_ary.x_dimen));
+ memset (&auxp->x_sym.x_fcnary.x_fcn, 0,
+ sizeof (auxp->x_sym.x_fcnary.x_fcn));
}
if (S_GET_STORAGE_CLASS (symp) == C_EFCN
&& S_IS_DEFINED (symp))
{
- if (coff_last_function == 0)
+ if (!last_functionP)
as_fatal (_("C_EFCN symbol for %s out of scope"),
S_GET_NAME (symp));
- SA_SET_SYM_FSIZE (coff_last_function,
+ SA_SET_SYM_FSIZE (last_functionP,
(long) (S_GET_VALUE (symp)
- - S_GET_VALUE (coff_last_function)));
- next_set_end = coff_last_function;
- coff_last_function = 0;
+ - S_GET_VALUE (last_functionP)));
}
}
@@ -1412,6 +1411,13 @@ coff_frob_symbol (symbolS *symp, int *punt)
set_end = next_set_end;
}
+ if (SF_GET_FUNCTION (symp) && S_IS_DEFINED (symp) && !*punt)
+ {
+ if (last_functionP)
+ SA_SET_SYM_ENDNDX (last_functionP, symp);
+ last_functionP = symp;
+ }
+
#ifndef OBJ_XCOFF
if (! *punt
&& S_GET_STORAGE_CLASS (symp) == C_FCN
@@ -1554,7 +1560,7 @@ obj_coff_section (int ignore ATTRIBUTE_UNUSED)
}
c = get_symbol_name (&section_name);
- name = xmemdup0 (section_name, input_line_pointer - section_name);
+ name = notes_memdup0 (section_name, input_line_pointer - section_name);
restore_line_pointer (c);
SKIP_WHITESPACE ();
@@ -1569,13 +1575,13 @@ obj_coff_section (int ignore ATTRIBUTE_UNUSED)
exp = get_absolute_expression ();
else
{
- unsigned char attr;
+ char attr;
int readonly_removed = 0;
int load_removed = 0;
while (attr = *++input_line_pointer,
attr != '"'
- && ! is_end_of_line[attr])
+ && ! is_end_of_stmt (attr))
{
if (ISDIGIT (attr))
{
@@ -1884,8 +1890,8 @@ static const pseudo_typeS coff_pseudo_table[] =
{"loc", obj_coff_loc, 0},
{"optim", s_ignore, 0}, /* For sun386i cc (?) */
{"weak", obj_coff_weak, 0},
-#if defined TC_TIC4X
- /* The tic4x uses sdef instead of def. */
+#if defined (TC_TIC4X) || defined (TC_TIC54X)
+ /* The tic4x and tic54x use sdef instead of def. */
{"sdef", obj_coff_def, 0},
#endif
#if defined(SEH_CMDS)
diff --git a/gas/config/obj-coff.h b/gas/config/obj-coff.h
index c083ad2..51dfd56 100644
--- a/gas/config/obj-coff.h
+++ b/gas/config/obj-coff.h
@@ -242,7 +242,6 @@
extern int text_lineno_number;
extern int coff_line_base;
extern int coff_n_line_nos;
-extern symbolS *coff_last_function;
#define obj_emit_lineno(WHERE, LINE, FILE_START) abort ()
#define obj_app_file(name) c_dot_file_symbol (name)
@@ -330,7 +329,7 @@ extern void pecoff_obj_clear_weak_hook (symbolS *);
#endif
extern void obj_coff_section (int);
extern segT obj_coff_add_segment (const char *);
-extern void obj_coff_section (int);
+extern void obj_coff_def (int);
extern segT s_get_segment (symbolS *);
#ifndef tc_coff_symbol_emit_hook
extern void tc_coff_symbol_emit_hook (symbolS *);
diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c
index 0eb809c..368594d 100644
--- a/gas/config/obj-elf.c
+++ b/gas/config/obj-elf.c
@@ -264,7 +264,7 @@ elf_common_parse (int ignore ATTRIBUTE_UNUSED, symbolS *symbolP, addressT size)
while (*--p != '"')
;
- while (!is_end_of_line[(unsigned char) *input_line_pointer])
+ while (!is_end_of_stmt (*input_line_pointer))
if (*input_line_pointer++ == '"')
break;
c = *input_line_pointer;
@@ -492,13 +492,6 @@ get_section_by_match (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, void *inf)
&& match_section (sec, match));
}
-static void
-free_section_idx (void *ent)
-{
- string_tuple_t *tuple = ent;
- free ((char *) tuple->value);
-}
-
/* Go look in section lists kept per group for SEC_NAME with
properties given by MATCH. If info for the group named by
MATCH->GROUP_NAME has been initialised, set GROUP_IDX. */
@@ -506,24 +499,24 @@ free_section_idx (void *ent)
static asection *
group_section_find (const struct elf_section_match *match,
const char *sec_name,
- unsigned int **group_idx)
+ unsigned int *group_idx)
{
if (!groups.indexes)
{
groups.num_group = 0;
groups.head = NULL;
groups.indexes = htab_create_alloc (16, hash_string_tuple, eq_string_tuple,
- free_section_idx, notes_calloc, NULL);
- *group_idx = NULL;
+ NULL, notes_calloc, NULL);
+ *group_idx = ~0u;
return NULL;
}
- *group_idx = str_hash_find (groups.indexes, match->group_name);
- if (*group_idx == NULL)
+ *group_idx = str_hash_find_int (groups.indexes, match->group_name);
+ if (*group_idx == ~0u)
return NULL;
asection *s;
- for (s = groups.head[**group_idx]; s != NULL; s = elf_next_in_group (s))
+ for (s = groups.head[*group_idx]; s != NULL; s = elf_next_in_group (s))
if ((s->name == sec_name
|| strcmp (s->name, sec_name) == 0)
&& match_section (s, match))
@@ -537,12 +530,12 @@ group_section_find (const struct elf_section_match *match,
static void
group_section_insert (const struct elf_section_match *match,
asection *sec,
- unsigned int **group_idx)
+ unsigned int *group_idx)
{
- if (*group_idx != NULL)
+ if (*group_idx != ~0u)
{
- elf_next_in_group (sec) = groups.head[**group_idx];
- groups.head[**group_idx] = sec;
+ elf_next_in_group (sec) = groups.head[*group_idx];
+ groups.head[*group_idx] = sec;
return;
}
@@ -553,14 +546,8 @@ group_section_insert (const struct elf_section_match *match,
groups.num_group += 1;
/* We keep the index into groups.head rather than the entry address
- because groups.head may be realloc'd, and because str_hash values
- are a void* we make a copy of the index. Strictly speaking there
- is no guarantee that void* can represent any int value, so doing
- without the indirection by casting an int or even uintptr_t may
- for example lose lsbs of the value. */
- unsigned int *idx_ptr = XNEW (unsigned int);
- *idx_ptr = i;
- str_hash_insert (groups.indexes, match->group_name, idx_ptr, 0);
+ because groups.head may be realloc'd. */
+ str_hash_insert_int (groups.indexes, match->group_name, i, 0);
}
/* Handle the .section pseudo-op. This code supports two different
@@ -622,7 +609,7 @@ change_section (const char *name,
obj_elf_section_change_hook ();
- unsigned int *group_idx = NULL;
+ unsigned int group_idx = ~0u;
if (match_p->group_name)
old_sec = group_section_find (match_p, name, &group_idx);
else
@@ -781,7 +768,7 @@ change_section (const char *name,
|| startswith (name, ".note.gnu"))
flags |= SEC_ELF_OCTETS;
}
-
+
if (old_sec == NULL)
{
symbolS *secsym;
@@ -1151,7 +1138,7 @@ elf_set_group_name (asection *sec, const char *gname)
& SEC_ASSEMBLER_SHF_MASK);
match.flags = bfd_section_flags (sec) & SEC_ASSEMBLER_SECTION_ID;
- unsigned int *group_idx;
+ unsigned int group_idx;
if (!group_section_find (&match, sec->name, &group_idx))
group_section_insert (&match, sec, &group_idx);
}
@@ -1324,7 +1311,7 @@ obj_elf_section (int push)
&& (bfd_section_flags (now_seg)
& (SEC_MERGE | SEC_STRINGS)) != 0)
goto fetch_entsize;
- if (is_end_of_line[(unsigned char) *input_line_pointer])
+ if (is_end_of_stmt (*input_line_pointer))
{
/* ??? This is here for older versions of gcc that
test for gas string merge support with
@@ -2273,39 +2260,25 @@ elf_obj_symbol_new_hook (symbolS *symbolP)
#endif
}
-/* Deduplicate size expressions. We might get into trouble with
- multiple freeing or use after free if we leave them pointing to the
- same expressionS. */
-
+/* If size is unset, copy size from src. Because we don't track whether
+ .size has been used, we can't differentiate .size dest, 0 from the case
+ where dest's size is unset. */
void
-elf_obj_symbol_clone_hook (symbolS *newsym, symbolS *orgsym ATTRIBUTE_UNUSED)
+elf_copy_symbol_size (symbolS *dest, symbolS *src)
{
- struct elf_obj_sy *newelf = symbol_get_obj (newsym);
- if (newelf->size)
+ struct elf_obj_sy *srcelf = symbol_get_obj (src);
+ struct elf_obj_sy *destelf = symbol_get_obj (dest);
+ if (!destelf->size && S_GET_SIZE (dest) == 0)
{
- expressionS *exp = XNEW (expressionS);
- *exp = *newelf->size;
- newelf->size = exp;
+ destelf->size = srcelf->size;
+ S_SET_SIZE (dest, S_GET_SIZE (src));
}
}
void
elf_copy_symbol_attributes (symbolS *dest, symbolS *src)
{
- struct elf_obj_sy *srcelf = symbol_get_obj (src);
- struct elf_obj_sy *destelf = symbol_get_obj (dest);
- /* If size is unset, copy size from src. Because we don't track whether
- .size has been used, we can't differentiate .size dest, 0 from the case
- where dest's size is unset. */
- if (!destelf->size && S_GET_SIZE (dest) == 0)
- {
- if (srcelf->size)
- {
- destelf->size = XNEW (expressionS);
- *destelf->size = *srcelf->size;
- }
- S_SET_SIZE (dest, S_GET_SIZE (src));
- }
+ elf_copy_symbol_size (dest, src);
/* Don't copy visibility. */
S_SET_OTHER (dest, (ELF_ST_VISIBILITY (S_GET_OTHER (dest))
| (S_GET_OTHER (src) & ~ELF_ST_VISIBILITY (-1))));
@@ -2404,12 +2377,11 @@ obj_elf_size (int ignore ATTRIBUTE_UNUSED)
if (exp.X_op == O_constant)
{
S_SET_SIZE (sym, exp.X_add_number);
- xfree (symbol_get_obj (sym)->size);
symbol_get_obj (sym)->size = NULL;
}
else
{
- symbol_get_obj (sym)->size = XNEW (expressionS);
+ symbol_get_obj (sym)->size = notes_alloc (sizeof (exp));
*symbol_get_obj (sym)->size = exp;
}
@@ -2805,7 +2777,6 @@ elf_frob_symbol (symbolS *symp, int *puntp)
as_warn (_(".size expression for %s "
"does not evaluate to a constant"), S_GET_NAME (symp));
}
- free (sy_obj->size);
sy_obj->size = NULL;
}
@@ -3336,7 +3307,7 @@ const struct format_ops elf_format_ops =
#endif
elf_obj_read_begin_hook,
elf_obj_symbol_new_hook,
- elf_obj_symbol_clone_hook,
+ 0,
elf_adjust_symtab
};
diff --git a/gas/config/obj-elf.h b/gas/config/obj-elf.h
index c8b5740..1e0ac58 100644
--- a/gas/config/obj-elf.h
+++ b/gas/config/obj-elf.h
@@ -224,11 +224,7 @@ void elf_obj_symbol_new_hook (symbolS *);
#define obj_symbol_new_hook elf_obj_symbol_new_hook
#endif
-void elf_obj_symbol_clone_hook (symbolS *, symbolS *);
-#ifndef obj_symbol_clone_hook
-#define obj_symbol_clone_hook elf_obj_symbol_clone_hook
-#endif
-
+void elf_copy_symbol_size (symbolS *, symbolS *);
void elf_copy_symbol_attributes (symbolS *, symbolS *);
#ifndef OBJ_COPY_SYMBOL_ATTRIBUTES
#define OBJ_COPY_SYMBOL_ATTRIBUTES(DEST, SRC) \
diff --git a/gas/config/obj-macho.c b/gas/config/obj-macho.c
index 249791f..d0cd3af 100644
--- a/gas/config/obj-macho.c
+++ b/gas/config/obj-macho.c
@@ -105,7 +105,7 @@ collect_16char_name (char *dest, const char *msg, int require_comma)
namstart = input_line_pointer;
while ( (c = *input_line_pointer) != ','
- && !is_end_of_line[(unsigned char) c])
+ && !is_end_of_stmt (c))
input_line_pointer++;
{
@@ -325,7 +325,7 @@ obj_mach_o_section (int ignore ATTRIBUTE_UNUSED)
SKIP_WHITESPACE ();
p = input_line_pointer;
while ((c = *input_line_pointer) != ','
- && !is_end_of_line[(unsigned char) c])
+ && !is_end_of_stmt (c))
input_line_pointer++;
len = input_line_pointer - p;
@@ -364,7 +364,7 @@ obj_mach_o_section (int ignore ATTRIBUTE_UNUSED)
p = input_line_pointer;
while ((c = *input_line_pointer) != '+'
&& c != ','
- && !is_end_of_line[(unsigned char) c])
+ && !is_end_of_stmt (c))
input_line_pointer++;
len = input_line_pointer - p;
@@ -1135,7 +1135,7 @@ obj_mach_o_sym_qual (int ntype)
{
input_line_pointer++;
SKIP_WHITESPACE ();
- if (is_end_of_line[(unsigned char) *input_line_pointer])
+ if (is_end_of_stmt (*input_line_pointer))
c = '\n';
}
}
@@ -1818,13 +1818,8 @@ obj_mach_o_set_indirect_symbols (bfd *abfd, asection *sec,
if (nactual < bfd_get_symcount (abfd))
nactual = bfd_get_symcount (abfd);
- ms->indirect_syms =
- bfd_zalloc (abfd,
- nactual * sizeof (bfd_mach_o_asymbol *));
-
- if (ms->indirect_syms == NULL)
- as_fatal (_("internal error: failed to allocate %d indirect"
- "symbol pointers"), nactual);
+ ms->indirect_syms = notes_calloc (nactual,
+ sizeof (*ms->indirect_syms));
for (isym = list, n = 0; isym != NULL; isym = isym->next, n++)
{
diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
index ff40726..e569b85 100644
--- a/gas/config/tc-aarch64.c
+++ b/gas/config/tc-aarch64.c
@@ -907,7 +907,7 @@ parse_reg (char **ccp)
p++;
while (ISALPHA (*p) || ISDIGIT (*p) || *p == '_');
- reg = (reg_entry *) str_hash_find_n (aarch64_reg_hsh, start, p - start);
+ reg = str_hash_find_n (aarch64_reg_hsh, start, p - start);
if (!reg)
return NULL;
@@ -2528,7 +2528,7 @@ reg_name_p (char *str, aarch64_reg_type reg_type)
return false;
skip_whitespace (str);
- if (*str == ',' || is_end_of_line[(unsigned char) *str])
+ if (*str == ',' || is_end_of_stmt (*str))
return true;
return false;
@@ -5175,6 +5175,13 @@ encode_branch_ofs_26 (uint32_t ofs)
return ofs & ((1 << 26) - 1);
}
+/* encode the 9-bit offset of FEAT_CMPBR compare and branch */
+static inline uint32_t
+encode_cond_branch_ofs_9 (uint32_t ofs)
+{
+ return (ofs & ((1 << 9) - 1)) << 5;
+}
+
/* encode the 19-bit offset of conditional branch and compare & branch */
static inline uint32_t
encode_cond_branch_ofs_19 (uint32_t ofs)
@@ -6254,10 +6261,7 @@ typedef struct templates templates;
static templates *
lookup_mnemonic (const char *start, int len)
{
- templates *templ = NULL;
-
- templ = str_hash_find_n (aarch64_ops_hsh, start, len);
- return templ;
+ return str_hash_find_n (aarch64_ops_hsh, start, len);
}
/* Subroutine of md_assemble, responsible for looking up the primary
@@ -6388,6 +6392,8 @@ process_omitted_operand (enum aarch64_opnd type, const aarch64_opcode *opcode,
case AARCH64_OPND_UIMM3_OP2:
case AARCH64_OPND_IMM:
case AARCH64_OPND_IMM_2:
+ case AARCH64_OPND_IMMP1_2:
+ case AARCH64_OPND_IMMS1_2:
case AARCH64_OPND_WIDTH:
case AARCH64_OPND_UIMM7:
case AARCH64_OPND_NZCV:
@@ -6823,6 +6829,7 @@ parse_operands (char *str, const aarch64_opcode *opcode)
case AARCH64_OPND_SVE_Zn:
case AARCH64_OPND_SVE_Zt:
case AARCH64_OPND_SME_Zm:
+ case AARCH64_OPND_SME_Zm_17:
reg_type = REG_TYPE_Z;
goto vector_reg;
@@ -7154,6 +7161,16 @@ parse_operands (char *str, const aarch64_opcode *opcode)
info->imm.value = val;
break;
+ case AARCH64_OPND_IMMP1_2:
+ po_imm_or_fail (1, 64);
+ info->imm.value = val - 1;
+ break;
+
+ case AARCH64_OPND_IMMS1_2:
+ po_imm_or_fail (-1, 62);
+ info->imm.value = val + 1;
+ break;
+
case AARCH64_OPND_SVE_AIMM:
case AARCH64_OPND_SVE_ASIMM:
po_imm_nc_or_fail ();
@@ -7450,6 +7467,7 @@ parse_operands (char *str, const aarch64_opcode *opcode)
info->imm.value = 0;
break;
+ case AARCH64_OPND_ADDR_PCREL9:
case AARCH64_OPND_ADDR_PCREL14:
case AARCH64_OPND_ADDR_PCREL19:
case AARCH64_OPND_ADDR_PCREL21:
@@ -7487,8 +7505,11 @@ parse_operands (char *str, const aarch64_opcode *opcode)
case compbranch:
case condbranch:
/* e.g. CBZ or B.COND */
- gas_assert (operands[i] == AARCH64_OPND_ADDR_PCREL19);
- inst.reloc.type = BFD_RELOC_AARCH64_BRANCH19;
+ gas_assert (operands[i] == AARCH64_OPND_ADDR_PCREL9
+ || operands[i] == AARCH64_OPND_ADDR_PCREL19);
+ inst.reloc.type = (operands[i] == AARCH64_OPND_ADDR_PCREL9)
+ ? BFD_RELOC_AARCH64_BRANCH9
+ : BFD_RELOC_AARCH64_BRANCH19;
break;
case testbranch:
/* e.g. TBZ */
@@ -7806,8 +7827,12 @@ parse_operands (char *str, const aarch64_opcode *opcode)
info->addr.offset.imm = inst.reloc.exp.X_add_number;
break;
- case AARCH64_OPND_SVE_ADDR_R:
- /* [<Xn|SP>{, <R><m>}]
+ case AARCH64_OPND_SVE_ADDR_RR:
+ case AARCH64_OPND_SVE_ADDR_RR_LSL1:
+ case AARCH64_OPND_SVE_ADDR_RR_LSL2:
+ case AARCH64_OPND_SVE_ADDR_RR_LSL3:
+ case AARCH64_OPND_SVE_ADDR_RR_LSL4:
+ /* [<Xn|SP>{, <R><m>{, lsl #<amount>}}]
but recognizing SVE registers. */
po_misc_or_fail (parse_sve_address (&str, info, &base_qualifier,
&offset_qualifier));
@@ -7816,8 +7841,21 @@ parse_operands (char *str, const aarch64_opcode *opcode)
offset_qualifier = AARCH64_OPND_QLF_X;
info->addr.offset.is_reg = 1;
info->addr.offset.regno = 31;
+
+ /* We set the shifter amount here, but let regoff_addr assign the
+ shifter kind. */
+ if (operands[i] == AARCH64_OPND_SVE_ADDR_RR)
+ info->shifter.amount = 0;
+ else if (operands[i] == AARCH64_OPND_SVE_ADDR_RR_LSL1)
+ info->shifter.amount = 1;
+ else if (operands[i] == AARCH64_OPND_SVE_ADDR_RR_LSL2)
+ info->shifter.amount = 2;
+ else if (operands[i] == AARCH64_OPND_SVE_ADDR_RR_LSL3)
+ info->shifter.amount = 3;
+ else
+ info->shifter.amount = 4;
}
- else if (base_qualifier != AARCH64_OPND_QLF_X
+ if (base_qualifier != AARCH64_OPND_QLF_X
|| offset_qualifier != AARCH64_OPND_QLF_X)
{
set_syntax_error (_("invalid addressing mode"));
@@ -7825,11 +7863,11 @@ parse_operands (char *str, const aarch64_opcode *opcode)
}
goto regoff_addr;
- case AARCH64_OPND_SVE_ADDR_RR:
- case AARCH64_OPND_SVE_ADDR_RR_LSL1:
- case AARCH64_OPND_SVE_ADDR_RR_LSL2:
- case AARCH64_OPND_SVE_ADDR_RR_LSL3:
- case AARCH64_OPND_SVE_ADDR_RR_LSL4:
+ case AARCH64_OPND_SVE_ADDR_RM:
+ case AARCH64_OPND_SVE_ADDR_RM_LSL1:
+ case AARCH64_OPND_SVE_ADDR_RM_LSL2:
+ case AARCH64_OPND_SVE_ADDR_RM_LSL3:
+ case AARCH64_OPND_SVE_ADDR_RM_LSL4:
case AARCH64_OPND_SVE_ADDR_RX:
case AARCH64_OPND_SVE_ADDR_RX_LSL1:
case AARCH64_OPND_SVE_ADDR_RX_LSL2:
@@ -8465,6 +8503,7 @@ warn_unpredictable_ldst (aarch64_instruction *instr, char *str)
case ldst_imm10:
case ldst_unscaled:
case ldst_unpriv:
+ ldst_single:
/* Loading/storing the base register is unpredictable if writeback. */
if ((aarch64_get_operand_class (opnds[0].type)
== AARCH64_OPND_CLASS_INT_REG)
@@ -8477,43 +8516,9 @@ warn_unpredictable_ldst (aarch64_instruction *instr, char *str)
break;
case rcpc3:
- {
- const int nb_operands = aarch64_num_of_operands (opcode);
- if (aarch64_get_operand_class (opnds[0].type)
- == AARCH64_OPND_CLASS_INT_REG)
- {
- /* Load Pair transfer with register overlap. */
- if (nb_operands == 3 && opnds[0].reg.regno == opnds[1].reg.regno)
- { // ldiapp, stilp
- as_warn (_("unpredictable load pair transfer with register "
- "overlap -- `%s'"),
- str);
- }
- /* Loading/storing the base register is unpredictable if writeback. */
- else if ((nb_operands == 2
- && opnds[0].reg.regno == opnds[1].addr.base_regno
- && opnds[1].addr.base_regno != REG_SP
- && opnds[1].addr.writeback)
- || (nb_operands == 3
- && (opnds[0].reg.regno == opnds[2].addr.base_regno
- || opnds[1].reg.regno == opnds[2].addr.base_regno)
- && opnds[2].addr.base_regno != REG_SP
- && opnds[2].addr.writeback))
- {
- if (strcmp (opcode->name, "ldapr") == 0
- || strcmp (opcode->name, "ldiapp") == 0)
- as_warn (
- _("unpredictable transfer with writeback (load) -- `%s'"),
- str);
- else // stlr, stilp
- as_warn (
- _("unpredictable transfer with writeback (store) -- `%s'"),
- str);
- }
- }
- }
- break;
-
+ if (aarch64_num_of_operands (opcode) == 2)
+ goto ldst_single;
+ /* Fall through. */
case ldstpair_off:
case ldstnapair_offs:
case ldstpair_indexed:
@@ -9074,12 +9079,15 @@ aarch64_handle_align (fragS * fragP)
#endif
memset (p, 0, fix);
p += fix;
+ bytes -= fix;
fragP->fr_fix += fix;
}
- if (noop_size)
- memcpy (p, aarch64_noop, noop_size);
- fragP->fr_var = noop_size;
+ if (bytes != 0)
+ {
+ fragP->fr_var = noop_size;
+ memcpy (p, aarch64_noop, noop_size);
+ }
}
/* Perform target specific initialisation of a frag.
@@ -9154,7 +9162,7 @@ aarch64_sframe_cfa_ra_offset (void)
return (offsetT) SFRAME_CFA_FIXED_RA_INVALID;
}
-/* Get the abi/arch indentifier for SFrame. */
+/* Get the abi/arch identifier for SFrame. */
unsigned char
aarch64_sframe_get_abi_arch (void)
@@ -9703,6 +9711,20 @@ md_apply_fix (fixS * fixP, valueT * valP, segT seg)
}
break;
+ case BFD_RELOC_AARCH64_BRANCH9:
+ if (fixP->fx_done || !seg->use_rela_p)
+ {
+ if (value & 3)
+ as_bad_where (fixP->fx_file, fixP->fx_line,
+ _("conditional branch target not word aligned"));
+ if (signed_overflow (value, 11))
+ as_bad_where (fixP->fx_file, fixP->fx_line,
+ _("conditional branch out of range"));
+ insn = get_aarch64_insn (buf);
+ insn |= encode_cond_branch_ofs_9 (value >> 2);
+ put_aarch64_insn (buf, insn);
+ }
+ break;
case BFD_RELOC_AARCH64_BRANCH19:
if (fixP->fx_done || !seg->use_rela_p)
{
@@ -10254,13 +10276,13 @@ aarch64_adjust_symtab (void)
}
static void
-checked_hash_insert (htab_t table, const char *key, void *value)
+checked_hash_insert (htab_t table, const char *key, const void *value)
{
str_hash_insert (table, key, value, 0);
}
static void
-sysreg_hash_insert (htab_t table, const char *key, void *value)
+sysreg_hash_insert (htab_t table, const char *key, const void *value)
{
gas_assert (strlen (key) < AARCH64_MAX_SYSREG_NAME_LEN);
checked_hash_insert (table, key, value);
@@ -10281,7 +10303,7 @@ fill_instruction_hash_table (void)
new_templ->next = NULL;
if (!templ)
- checked_hash_insert (aarch64_ops_hsh, opcode->name, (void *) new_templ);
+ checked_hash_insert (aarch64_ops_hsh, opcode->name, new_templ);
else
{
new_templ->next = templ->next;
@@ -10340,54 +10362,54 @@ md_begin (void)
for (i = 0; aarch64_sys_regs[i].name != NULL; ++i)
sysreg_hash_insert (aarch64_sys_regs_hsh, aarch64_sys_regs[i].name,
- (void *) (aarch64_sys_regs + i));
+ aarch64_sys_regs + i);
for (i = 0; aarch64_pstatefields[i].name != NULL; ++i)
sysreg_hash_insert (aarch64_pstatefield_hsh,
- aarch64_pstatefields[i].name,
- (void *) (aarch64_pstatefields + i));
+ aarch64_pstatefields[i].name,
+ aarch64_pstatefields + i);
for (i = 0; aarch64_sys_regs_ic[i].name != NULL; i++)
sysreg_hash_insert (aarch64_sys_regs_ic_hsh,
- aarch64_sys_regs_ic[i].name,
- (void *) (aarch64_sys_regs_ic + i));
+ aarch64_sys_regs_ic[i].name,
+ aarch64_sys_regs_ic + i);
for (i = 0; aarch64_sys_regs_dc[i].name != NULL; i++)
sysreg_hash_insert (aarch64_sys_regs_dc_hsh,
- aarch64_sys_regs_dc[i].name,
- (void *) (aarch64_sys_regs_dc + i));
+ aarch64_sys_regs_dc[i].name,
+ aarch64_sys_regs_dc + i);
for (i = 0; aarch64_sys_regs_at[i].name != NULL; i++)
sysreg_hash_insert (aarch64_sys_regs_at_hsh,
- aarch64_sys_regs_at[i].name,
- (void *) (aarch64_sys_regs_at + i));
+ aarch64_sys_regs_at[i].name,
+ aarch64_sys_regs_at + i);
for (i = 0; aarch64_sys_regs_tlbi[i].name != NULL; i++)
sysreg_hash_insert (aarch64_sys_regs_tlbi_hsh,
- aarch64_sys_regs_tlbi[i].name,
- (void *) (aarch64_sys_regs_tlbi + i));
+ aarch64_sys_regs_tlbi[i].name,
+ aarch64_sys_regs_tlbi + i);
for (i = 0; aarch64_sys_regs_sr[i].name != NULL; i++)
sysreg_hash_insert (aarch64_sys_regs_sr_hsh,
- aarch64_sys_regs_sr[i].name,
- (void *) (aarch64_sys_regs_sr + i));
+ aarch64_sys_regs_sr[i].name,
+ aarch64_sys_regs_sr + i);
for (i = 0; i < ARRAY_SIZE (reg_names); i++)
checked_hash_insert (aarch64_reg_hsh, reg_names[i].name,
- (void *) (reg_names + i));
+ reg_names + i);
for (i = 0; i < ARRAY_SIZE (nzcv_names); i++)
checked_hash_insert (aarch64_nzcv_hsh, nzcv_names[i].template,
- (void *) (nzcv_names + i));
+ nzcv_names + i);
for (i = 0; aarch64_operand_modifiers[i].name != NULL; i++)
{
const char *name = aarch64_operand_modifiers[i].name;
checked_hash_insert (aarch64_shift_hsh, name,
- (void *) (aarch64_operand_modifiers + i));
+ aarch64_operand_modifiers + i);
/* Also hash the name in the upper case. */
checked_hash_insert (aarch64_shift_hsh, get_upper_str (name),
- (void *) (aarch64_operand_modifiers + i));
+ aarch64_operand_modifiers + i);
}
for (i = 0; i < ARRAY_SIZE (aarch64_conds); i++)
@@ -10401,10 +10423,10 @@ md_begin (void)
if (name == NULL)
break;
checked_hash_insert (aarch64_cond_hsh, name,
- (void *) (aarch64_conds + i));
+ aarch64_conds + i);
/* Also hash the name in the upper case. */
checked_hash_insert (aarch64_cond_hsh, get_upper_str (name),
- (void *) (aarch64_conds + i));
+ aarch64_conds + i);
}
}
@@ -10415,20 +10437,20 @@ md_begin (void)
if ((i & 0x3) == 0)
continue;
checked_hash_insert (aarch64_barrier_opt_hsh, name,
- (void *) (aarch64_barrier_options + i));
+ aarch64_barrier_options + i);
/* Also hash the name in the upper case. */
checked_hash_insert (aarch64_barrier_opt_hsh, get_upper_str (name),
- (void *) (aarch64_barrier_options + i));
+ aarch64_barrier_options + i);
}
for (i = 0; i < ARRAY_SIZE (aarch64_barrier_dsb_nxs_options); i++)
{
const char *name = aarch64_barrier_dsb_nxs_options[i].name;
checked_hash_insert (aarch64_barrier_opt_hsh, name,
- (void *) (aarch64_barrier_dsb_nxs_options + i));
+ aarch64_barrier_dsb_nxs_options + i);
/* Also hash the name in the upper case. */
checked_hash_insert (aarch64_barrier_opt_hsh, get_upper_str (name),
- (void *) (aarch64_barrier_dsb_nxs_options + i));
+ aarch64_barrier_dsb_nxs_options + i);
}
for (i = 0; i < ARRAY_SIZE (aarch64_prfops); i++)
@@ -10438,10 +10460,10 @@ md_begin (void)
if (name == NULL)
continue;
checked_hash_insert (aarch64_pldop_hsh, name,
- (void *) (aarch64_prfops + i));
+ aarch64_prfops + i);
/* Also hash the name in the upper case. */
checked_hash_insert (aarch64_pldop_hsh, get_upper_str (name),
- (void *) (aarch64_prfops + i));
+ aarch64_prfops + i);
}
for (i = 0; aarch64_hint_options[i].name != NULL; i++)
@@ -10450,12 +10472,12 @@ md_begin (void)
const char* upper_name = get_upper_str(name);
checked_hash_insert (aarch64_hint_opt_hsh, name,
- (void *) (aarch64_hint_options + i));
+ aarch64_hint_options + i);
/* Also hash the name in the upper case if not the same. */
if (strcmp (name, upper_name) != 0)
checked_hash_insert (aarch64_hint_opt_hsh, upper_name,
- (void *) (aarch64_hint_options + i));
+ aarch64_hint_options + i);
}
/* Set the cpu variant based on the command-line options. */
@@ -10674,6 +10696,7 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = {
AARCH64_FEATURE (SIMD)},
{"fp", AARCH64_FEATURE (FP), AARCH64_NO_FEATURES},
{"lse", AARCH64_FEATURE (LSE), AARCH64_NO_FEATURES},
+ {"lsfe", AARCH64_FEATURE (LSFE), AARCH64_FEATURE (FP)},
{"lse128", AARCH64_FEATURE (LSE128), AARCH64_FEATURE (LSE)},
{"simd", AARCH64_FEATURE (SIMD), AARCH64_FEATURE (FP)},
{"pan", AARCH64_FEATURE (PAN), AARCH64_NO_FEATURES},
@@ -10683,6 +10706,7 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = {
{"rdm", AARCH64_FEATURE (RDMA), AARCH64_FEATURE (SIMD)},
{"fp16", AARCH64_FEATURE (F16), AARCH64_FEATURE (FP)},
{"fp16fml", AARCH64_FEATURE (F16_FML), AARCH64_FEATURE (F16)},
+ {"fprcvt", AARCH64_FEATURE (FPRCVT), AARCH64_FEATURE (FP)},
{"profile", AARCH64_FEATURE (PROFILE), AARCH64_NO_FEATURES},
{"sve", AARCH64_FEATURE (SVE), AARCH64_FEATURE (COMPNUM)},
{"tme", AARCH64_FEATURE (TME), AARCH64_NO_FEATURES},
@@ -10705,6 +10729,8 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = {
{"rng", AARCH64_FEATURE (RNG), AARCH64_NO_FEATURES},
{"ssbs", AARCH64_FEATURE (SSBS), AARCH64_NO_FEATURES},
{"memtag", AARCH64_FEATURE (MEMTAG), AARCH64_NO_FEATURES},
+ {"occmo", AARCH64_FEATURE (OCCMO), AARCH64_NO_FEATURES},
+ {"cmpbr", AARCH64_FEATURE (CMPBR), AARCH64_NO_FEATURES},
{"sve2", AARCH64_FEATURE (SVE2), AARCH64_FEATURE (SVE)},
{"sve2-sm4", AARCH64_FEATURE (SVE2_SM4),
AARCH64_FEATURES (2, SVE2, SM4)},
@@ -10741,8 +10767,12 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = {
{"ite", AARCH64_FEATURE (ITE), AARCH64_NO_FEATURES},
{"d128", AARCH64_FEATURE (D128), D128_FEATURE_DEPS},
{"sve-b16b16", AARCH64_FEATURE (SVE_B16B16), AARCH64_NO_FEATURES},
+ {"sve-bfscale", AARCH64_FEATURE (SVE_BFSCALE), AARCH64_NO_FEATURES},
{"sme2p1", AARCH64_FEATURE (SME2p1), AARCH64_FEATURE (SME2)},
{"sve2p1", AARCH64_FEATURE (SVE2p1), AARCH64_FEATURE (SVE2)},
+ {"sve-f16f32mm", AARCH64_FEATURE (SVE_F16F32MM), AARCH64_FEATURE (SVE)},
+ {"f8f32mm", AARCH64_FEATURE (F8F32MM), AARCH64_FEATURES (2, SIMD, FP8)},
+ {"f8f16mm", AARCH64_FEATURE (F8F16MM), AARCH64_FEATURES (2, SIMD, FP8)},
{"rcpc3", AARCH64_FEATURE (RCPC3), AARCH64_FEATURE (RCPC2)},
{"cpa", AARCH64_FEATURE (CPA), AARCH64_NO_FEATURES},
{"faminmax", AARCH64_FEATURE (FAMINMAX), AARCH64_FEATURE (SIMD)},
@@ -10790,6 +10820,8 @@ static const struct aarch64_virtual_dependency_table aarch64_dependencies[] = {
SVE2p1_SME2p1)},
{AARCH64_FEATURE (SME), AARCH64_FEATURE (SVE2p1_SME)},
{AARCH64_FEATURE (SME2), AARCH64_FEATURE (SVE2p1_SME2)},
+ {AARCH64_FEATURE (SVE2), AARCH64_FEATURE (SVE2_SME2)},
+ {AARCH64_FEATURE (SME2), AARCH64_FEATURE (SVE2_SME2)},
{AARCH64_FEATURE (SME2p1), AARCH64_FEATURE (SVE2p1_SME2p1)},
};
@@ -11020,7 +11052,7 @@ aarch64_parse_arch (const char *str)
return aarch64_parse_features (ext, &march_cpu_opt, false);
}
- as_bad (_("unknown architecture `%s'\n"), str);
+ as_bad (_("unknown architecture `%s'"), str);
return 0;
}
@@ -11058,7 +11090,7 @@ aarch64_parse_abi (const char *str)
return 1;
}
- as_bad (_("unknown abi `%s'\n"), str);
+ as_bad (_("unknown abi `%s'"), str);
return 0;
}
@@ -11257,7 +11289,7 @@ s_aarch64_arch (int ignored ATTRIBUTE_UNUSED)
return;
}
- as_bad (_("unknown architecture `%s'\n"), name);
+ as_bad (_("unknown architecture `%s'"), name);
*input_line_pointer = saved_char;
ignore_rest_of_line ();
}
@@ -11290,34 +11322,3 @@ aarch64_copy_symbol_attributes (symbolS * dest, symbolS * src)
{
AARCH64_GET_FLAG (dest) = AARCH64_GET_FLAG (src);
}
-
-#ifdef OBJ_ELF
-/* Same as elf_copy_symbol_attributes, but without copying st_other.
- This is needed so AArch64 specific st_other values can be independently
- specified for an IFUNC resolver (that is called by the dynamic linker)
- and the symbol it resolves (aliased to the resolver). In particular,
- 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. Requiring the directive on the IFUNC resolver
- symbol would be unexpected and problematic in C code, where the two
- symbols appear as two independent function declarations. */
-
-void
-aarch64_elf_copy_symbol_attributes (symbolS *dest, symbolS *src)
-{
- struct elf_obj_sy *srcelf = symbol_get_obj (src);
- struct elf_obj_sy *destelf = symbol_get_obj (dest);
- /* If size is unset, copy size from src. Because we don't track whether
- .size has been used, we can't differentiate .size dest, 0 from the case
- where dest's size is unset. */
- if (!destelf->size && S_GET_SIZE (dest) == 0)
- {
- if (srcelf->size)
- {
- destelf->size = XNEW (expressionS);
- *destelf->size = *srcelf->size;
- }
- S_SET_SIZE (dest, S_GET_SIZE (src));
- }
-}
-#endif
diff --git a/gas/config/tc-aarch64.h b/gas/config/tc-aarch64.h
index acf1ce4..0d8066c 100644
--- a/gas/config/tc-aarch64.h
+++ b/gas/config/tc-aarch64.h
@@ -133,9 +133,17 @@ void aarch64_copy_symbol_attributes (symbolS *, symbolS *);
#endif
#ifdef OBJ_ELF
-void aarch64_elf_copy_symbol_attributes (symbolS *, symbolS *);
+/* Don't copy st_other.
+ This is needed so AArch64 specific st_other values can be independently
+ specified for an IFUNC resolver (that is called by the dynamic linker)
+ and the symbol it resolves (aliased to the resolver). In particular,
+ 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. Requiring the directive on the IFUNC resolver
+ symbol would be unexpected and problematic in C code, where the two
+ symbols appear as two independent function declarations. */
#define OBJ_COPY_SYMBOL_ATTRIBUTES(DEST, SRC) \
- aarch64_elf_copy_symbol_attributes (DEST, SRC)
+ elf_copy_symbol_size (DEST, SRC)
#endif
#define TC_START_LABEL(STR, NUL_CHAR, NEXT_CHAR) \
@@ -162,10 +170,6 @@ void aarch64_elf_copy_symbol_attributes (symbolS *, symbolS *);
#define TC_CONS_FIX_NEW(f,w,s,e,r) cons_fix_new_aarch64 ((f), (w), (s), (e))
-/* Max space for a rs_align_code fragment is 3 unaligned bytes
- (fr_fix) plus 4 bytes to contain the repeating NOP (fr_var). */
-#define MAX_MEM_FOR_RS_ALIGN_CODE 7
-
/* For frags in code sections we need to record whether they contain
code or data. */
struct aarch64_frag_type
@@ -183,6 +187,9 @@ struct aarch64_frag_type
#define TC_FRAG_TYPE struct aarch64_frag_type
#define TC_FRAG_INIT(fragp, max_bytes) aarch64_init_frag (fragp, max_bytes)
#define HANDLE_ALIGN(sec, fragp) aarch64_handle_align (fragp)
+/* Max space for a rs_align_code fragment is 3 unaligned bytes
+ (fr_fix) plus 4 bytes to contain the repeating NOP (fr_var). */
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (3 + 4)
#define md_do_align(N, FILL, LEN, MAX, LABEL) \
if (FILL == NULL && (N) != 0 && ! need_pass_2 && subseg_text_p (now_seg)) \
@@ -309,7 +316,7 @@ extern bool aarch64_sframe_ra_tracking_p (void);
extern offsetT aarch64_sframe_cfa_ra_offset (void);
#define sframe_cfa_ra_offset aarch64_sframe_cfa_ra_offset
-/* The abi/arch indentifier for SFrame. */
+/* The abi/arch identifier for SFrame. */
unsigned char aarch64_sframe_get_abi_arch (void);
#define sframe_get_abi_arch aarch64_sframe_get_abi_arch
diff --git a/gas/config/tc-alpha.c b/gas/config/tc-alpha.c
index fdd5db7..f9ca351 100644
--- a/gas/config/tc-alpha.c
+++ b/gas/config/tc-alpha.c
@@ -589,7 +589,7 @@ get_alpha_reloc_tag (long sequence)
sprintf (buffer, "!%ld", sequence);
- info = (struct alpha_reloc_tag *) str_hash_find (alpha_literal_hash, buffer);
+ info = str_hash_find (alpha_literal_hash, buffer);
if (! info)
{
size_t len = strlen (buffer);
@@ -888,7 +888,7 @@ tokenize_arguments (char *str,
#ifdef RELOC_OP_P
/* ??? Wrest control of ! away from the regular expression parser. */
- is_end_of_line[(unsigned char) '!'] = 1;
+ lex_type[(unsigned char) '!'] |= LEX_EOS;
#endif
while (tok < end_tok && *input_line_pointer)
@@ -1029,21 +1029,21 @@ tokenize_arguments (char *str,
debug_exp (orig_tok, ntok - (end_tok - tok));
#endif
#ifdef RELOC_OP_P
- is_end_of_line[(unsigned char) '!'] = 0;
+ lex_type[(unsigned char) '!'] &= ~LEX_EOS;
#endif
return ntok - (end_tok - tok);
err:
#ifdef RELOC_OP_P
- is_end_of_line[(unsigned char) '!'] = 0;
+ lex_type[(unsigned char) '!'] &= ~LEX_EOS;
#endif
input_line_pointer = old_input_line_pointer;
return TOKENIZE_ERROR;
#ifdef RELOC_OP_P
err_report:
- is_end_of_line[(unsigned char) '!'] = 0;
+ lex_type[(unsigned char) '!'] &= ~LEX_EOS;
#endif
input_line_pointer = old_input_line_pointer;
return TOKENIZE_ERROR_REPORT;
@@ -1170,8 +1170,7 @@ assemble_tokens_to_insn (const char *opname,
const struct alpha_opcode *opcode;
/* Search opcodes. */
- opcode = (const struct alpha_opcode *) str_hash_find (alpha_opcode_hash,
- opname);
+ opcode = str_hash_find (alpha_opcode_hash, opname);
if (opcode)
{
int cpumatch;
@@ -3318,8 +3317,7 @@ assemble_tokens (const char *opname,
#endif
if (local_macros_on)
{
- macro = (const struct alpha_macro *) str_hash_find (alpha_macro_hash,
- opname);
+ macro = str_hash_find (alpha_macro_hash, opname);
if (macro)
{
found_something = 1;
@@ -3333,8 +3331,7 @@ assemble_tokens (const char *opname,
}
/* Search opcodes. */
- opcode = (const struct alpha_opcode *) str_hash_find (alpha_opcode_hash,
- opname);
+ opcode = str_hash_find (alpha_opcode_hash, opname);
if (opcode)
{
found_something = 1;
@@ -3789,7 +3786,7 @@ s_alpha_end (int dummy ATTRIBUTE_UNUSED)
if (sym && cur_frame_data)
{
OBJ_SYMFIELD_TYPE *obj = symbol_get_obj (sym);
- expressionS *exp = XNEW (expressionS);
+ expressionS *exp = notes_alloc (sizeof (*exp));
obj->size = exp;
exp->X_op = O_subtract;
@@ -4059,7 +4056,8 @@ alpha_elf_md_finish (void)
function symbol. This prevents problems with globals. */
cfi_new_fde (symbol_temp_new (S_GET_SEGMENT (p->func_sym),
symbol_get_frag (p->func_sym),
- S_GET_VALUE (p->func_sym)));
+ S_GET_VALUE (p->func_sym)),
+ false);
cfi_set_sections ();
cfi_set_return_column (p->ra_regno);
@@ -4138,7 +4136,7 @@ s_alpha_usepv (int unused ATTRIBUTE_UNUSED)
sym = symbol_find_or_make (name);
name_end = restore_line_pointer (name_end);
- if (! is_end_of_line[(unsigned char) name_end])
+ if (! is_end_of_stmt (name_end))
input_line_pointer++;
if (name_end != ',')
@@ -5367,7 +5365,7 @@ alpha_handle_align (fragS *fragp)
0x00, 0x00, 0xfe, 0x2f
};
- int bytes, fix;
+ size_t bytes, fix;
char *p;
if (fragp->fr_type != rs_align_code)
@@ -5375,16 +5373,14 @@ alpha_handle_align (fragS *fragp)
bytes = fragp->fr_next->fr_address - fragp->fr_address - fragp->fr_fix;
p = fragp->fr_literal + fragp->fr_fix;
- fix = 0;
- if (bytes & 3)
+ fix = bytes & 3;
+ if (fix)
{
- fix = bytes & 3;
memset (p, 0, fix);
p += fix;
bytes -= fix;
}
-
if (bytes & 4)
{
memcpy (p, unop, 4);
@@ -5392,11 +5388,13 @@ alpha_handle_align (fragS *fragp)
bytes -= 4;
fix += 4;
}
-
- memcpy (p, nopunop, 8);
-
fragp->fr_fix += fix;
- fragp->fr_var = 8;
+
+ if (bytes)
+ {
+ memcpy (p, nopunop, 8);
+ fragp->fr_var = 8;
+ }
}
/* Public interface functions. */
diff --git a/gas/config/tc-alpha.h b/gas/config/tc-alpha.h
index 466a7a0..a5144e5 100644
--- a/gas/config/tc-alpha.h
+++ b/gas/config/tc-alpha.h
@@ -111,7 +111,7 @@ extern void alpha_cons_align (int);
#define HANDLE_ALIGN(sec, fragp) alpha_handle_align (fragp)
extern void alpha_handle_align (struct frag *);
-#define MAX_MEM_FOR_RS_ALIGN_CODE (3 + 4 + 8)
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (3 + 4 + 8)
#ifdef OBJ_ECOFF
#define tc_frob_file_before_adjust() alpha_frob_file_before_adjust ()
diff --git a/gas/config/tc-arc.h b/gas/config/tc-arc.h
index 727041a..145d955 100644
--- a/gas/config/tc-arc.h
+++ b/gas/config/tc-arc.h
@@ -106,7 +106,7 @@ extern const char *arc_target_format;
/* [ ] is index operator. */
#define NEED_INDEX_OPERATOR
-#define MAX_MEM_FOR_RS_ALIGN_CODE (1+2)
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (1 + 2)
/* HANDLE_ALIGN called after all the assembly has been done,
so we can fill in all the rs_align_code type frags with
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
index add9b77..13afe8d 100644
--- a/gas/config/tc-arm.c
+++ b/gas/config/tc-arm.c
@@ -1377,7 +1377,7 @@ arm_reg_parse_multi (char **ccp)
p++;
while (ISALPHA (*p) || ISDIGIT (*p) || *p == '_');
- reg = (struct reg_entry *) str_hash_find_n (arm_reg_hsh, start, p - start);
+ reg = str_hash_find_n (arm_reg_hsh, start, p - start);
if (!reg)
return NULL;
@@ -2505,8 +2505,7 @@ parse_reloc (char **str)
if (*q != ')')
return -1;
- if ((r = (struct reloc_entry *)
- str_hash_find_n (arm_reloc_hsh, p, q - p)) == NULL)
+ if ((r = str_hash_find_n (arm_reloc_hsh, p, q - p)) == NULL)
return -1;
*str = q + 1;
@@ -2521,7 +2520,7 @@ insert_reg_alias (char *str, unsigned number, int type)
struct reg_entry *new_reg;
const char *name;
- if ((new_reg = (struct reg_entry *) str_hash_find (arm_reg_hsh, str)) != 0)
+ if ((new_reg = str_hash_find (arm_reg_hsh, str)) != 0)
{
if (new_reg->builtin)
as_warn (_("ignoring attempt to redefine built-in register '%s'"), str);
@@ -2591,7 +2590,7 @@ create_register_alias (char * newname, char *p)
if (*oldname == '\0')
return false;
- old = (struct reg_entry *) str_hash_find (arm_reg_hsh, oldname);
+ old = str_hash_find (arm_reg_hsh, oldname);
if (!old)
{
as_warn (_("unknown register '%s' -- .req ignored"), oldname);
@@ -2838,8 +2837,7 @@ s_unreq (int a ATTRIBUTE_UNUSED)
as_bad (_("invalid syntax for .unreq directive"));
else
{
- struct reg_entry *reg
- = (struct reg_entry *) str_hash_find (arm_reg_hsh, name);
+ struct reg_entry *reg = str_hash_find (arm_reg_hsh, name);
if (!reg)
as_bad (_("unknown register alias '%s'"), name);
@@ -2863,7 +2861,7 @@ s_unreq (int a ATTRIBUTE_UNUSED)
nbuf = strdup (name);
for (p = nbuf; *p; p++)
*p = TOUPPER (*p);
- reg = (struct reg_entry *) str_hash_find (arm_reg_hsh, nbuf);
+ reg = str_hash_find (arm_reg_hsh, nbuf);
if (reg)
{
str_hash_delete (arm_reg_hsh, nbuf);
@@ -2874,7 +2872,7 @@ s_unreq (int a ATTRIBUTE_UNUSED)
for (p = nbuf; *p; p++)
*p = TOLOWER (*p);
- reg = (struct reg_entry *) str_hash_find (arm_reg_hsh, nbuf);
+ reg = str_hash_find (arm_reg_hsh, nbuf);
if (reg)
{
str_hash_delete (arm_reg_hsh, nbuf);
@@ -3106,7 +3104,7 @@ find_real_start (symbolS * symbolP)
if (new_target == NULL)
{
- as_warn (_("Failed to find real start of function: %s\n"), name);
+ as_warn (_("Failed to find real start of function: %s"), name);
new_target = symbolP;
}
@@ -3260,7 +3258,6 @@ s_thumb_set (int equiv)
for this symbol. */
if (listing & LISTING_SYMBOLS)
{
- extern struct list_info_struct * listing_tail;
fragS * dummy_frag = (fragS * ) xmalloc (sizeof (fragS));
memset (dummy_frag, 0, sizeof (fragS));
@@ -3435,7 +3432,11 @@ s_ccs_def (int name)
if (codecomposer_syntax)
s_globl (name);
else
+#ifdef OBJ_COFF
+ obj_coff_def (name);
+#else
as_bad (_(".def pseudo-op only available with -mccs flag."));
+#endif
}
/* Directives: Literal pools. */
@@ -3668,7 +3669,7 @@ tc_start_label_without_colon (void)
{
const char *label = input_line_pointer;
- while (!is_end_of_line[(int) label[-1]])
+ while (!is_end_of_stmt (label[-1]))
--label;
if (*label == '.')
@@ -4257,7 +4258,7 @@ s_arm_unwind_save_pseudo (int regno)
add_unwind_opcode (op, 1);
break;
default:
- as_bad (_("Unknown register no. encountered: %d\n"), regno);
+ as_bad (_("Unknown register no. encountered: %d"), regno);
}
}
@@ -5447,9 +5448,7 @@ parse_shift (char **str, int i, enum parse_shift_mode mode)
return FAIL;
}
- shift_name
- = (const struct asm_shift_name *) str_hash_find_n (arm_shift_hsh, *str,
- p - *str);
+ shift_name = str_hash_find_n (arm_shift_hsh, *str, p - *str);
if (shift_name == NULL)
{
@@ -6257,8 +6256,7 @@ parse_psr (char **str, bool lhs)
|| strncasecmp (start, "psr", 3) == 0)
p = start + strcspn (start, "rR") + 1;
- psr = (const struct asm_psr *) str_hash_find_n (arm_v7m_psr_hsh, start,
- p - start);
+ psr = str_hash_find_n (arm_v7m_psr_hsh, start, p - start);
if (!psr)
return FAIL;
@@ -6360,8 +6358,7 @@ parse_psr (char **str, bool lhs)
}
else
{
- psr = (const struct asm_psr *) str_hash_find_n (arm_psr_hsh, start,
- p - start);
+ psr = str_hash_find_n (arm_psr_hsh, start, p - start);
if (!psr)
goto error;
@@ -6558,7 +6555,7 @@ parse_cond (char **str)
n++;
}
- c = (const struct asm_cond *) str_hash_find_n (arm_cond_hsh, cond, n);
+ c = str_hash_find_n (arm_cond_hsh, cond, n);
if (!c)
{
inst.error = _("condition required");
@@ -6581,8 +6578,7 @@ parse_barrier (char **str)
while (ISALPHA (*q))
q++;
- o = (const struct asm_barrier_opt *) str_hash_find_n (arm_barrier_opt_hsh, p,
- q - p);
+ o = str_hash_find_n (arm_barrier_opt_hsh, p, q - p);
if (!o)
return FAIL;
@@ -15428,7 +15424,7 @@ do_vfp_nsyn_opcode (const char *opname)
{
const struct asm_opcode *opcode;
- opcode = (const struct asm_opcode *) str_hash_find (arm_ops_hsh, opname);
+ opcode = str_hash_find (arm_ops_hsh, opname);
if (!opcode)
abort ();
@@ -22482,8 +22478,7 @@ opcode_lookup (char **str)
*str = end;
/* Look for unaffixed or special-case affixed mnemonic. */
- opcode = (const struct asm_opcode *) str_hash_find_n (arm_ops_hsh, base,
- end - base);
+ opcode = str_hash_find_n (arm_ops_hsh, base, end - base);
cond = NULL;
if (opcode)
{
@@ -22497,7 +22492,7 @@ opcode_lookup (char **str)
if (warn_on_deprecated && unified_syntax)
as_tsktsk (_("conditional infixes are deprecated in unified syntax"));
affix = base + (opcode->tag - OT_odd_infix_0);
- cond = (const struct asm_cond *) str_hash_find_n (arm_cond_hsh, affix, 2);
+ cond = str_hash_find_n (arm_cond_hsh, affix, 2);
gas_assert (cond);
inst.cond = cond->value;
@@ -22510,9 +22505,8 @@ opcode_lookup (char **str)
if (end - base < 2)
return NULL;
affix = end - 1;
- cond = (const struct asm_cond *) str_hash_find_n (arm_vcond_hsh, affix, 1);
- opcode = (const struct asm_opcode *) str_hash_find_n (arm_ops_hsh, base,
- affix - base);
+ cond = str_hash_find_n (arm_vcond_hsh, affix, 1);
+ opcode = str_hash_find_n (arm_ops_hsh, base, affix - base);
/* A known edge case is a conflict between an 'e' as a suffix for an
Else of a VPT predication block and an 'ne' suffix for an IT block.
@@ -22544,9 +22538,8 @@ opcode_lookup (char **str)
/* Look for suffixed mnemonic. */
affix = end - 2;
- cond = (const struct asm_cond *) str_hash_find_n (arm_cond_hsh, affix, 2);
- opcode = (const struct asm_opcode *) str_hash_find_n (arm_ops_hsh, base,
- affix - base);
+ cond = str_hash_find_n (arm_cond_hsh, affix, 2);
+ opcode = str_hash_find_n (arm_ops_hsh, base, affix - base);
}
if (opcode && cond)
@@ -22595,14 +22588,13 @@ opcode_lookup (char **str)
/* Look for infixed mnemonic in the usual position. */
affix = base + 3;
- cond = (const struct asm_cond *) str_hash_find_n (arm_cond_hsh, affix, 2);
+ cond = str_hash_find_n (arm_cond_hsh, affix, 2);
if (!cond)
return NULL;
memcpy (save, affix, 2);
memmove (affix, affix + 2, (end - affix) - 2);
- opcode = (const struct asm_opcode *) str_hash_find_n (arm_ops_hsh, base,
- (end - base) - 2);
+ opcode = str_hash_find_n (arm_ops_hsh, base, (end - base) - 2);
memmove (affix + 2, affix, (end - affix) - 2);
memcpy (affix, save, 2);
@@ -26599,10 +26591,6 @@ arm_handle_align (fragS * fragP)
bytes = fragP->fr_next->fr_address - fragP->fr_address - fragP->fr_fix;
p = fragP->fr_literal + fragP->fr_fix;
- fix = 0;
-
- if (bytes > MAX_MEM_FOR_RS_ALIGN_CODE)
- bytes &= MAX_MEM_FOR_RS_ALIGN_CODE;
gas_assert ((fragP->tc_frag_data.thumb_mode & MODE_RECORDED) != 0);
@@ -26633,11 +26621,9 @@ arm_handle_align (fragS * fragP)
#endif
}
- fragP->fr_var = noop_size;
-
- if (bytes & (noop_size - 1))
+ fix = bytes & (noop_size - 1);
+ if (fix != 0)
{
- fix = bytes & (noop_size - 1);
#ifdef OBJ_ELF
insert_data_mapping_symbol (state, fragP->fr_fix, fragP, fix);
#endif
@@ -26661,45 +26647,12 @@ arm_handle_align (fragS * fragP)
noop_size = 4;
}
- while (bytes >= noop_size)
- {
- memcpy (p, noop, noop_size);
- p += noop_size;
- bytes -= noop_size;
- fix += noop_size;
- }
-
fragP->fr_fix += fix;
-}
-
-/* Called from md_do_align. Used to create an alignment
- frag in a code section. */
-
-void
-arm_frag_align_code (int n, int max)
-{
- char * p;
-
- /* We assume that there will never be a requirement
- to support alignments greater than MAX_MEM_FOR_RS_ALIGN_CODE bytes. */
- if (max > MAX_MEM_FOR_RS_ALIGN_CODE)
+ if (bytes != 0)
{
- char err_msg[128];
-
- sprintf (err_msg,
- _("alignments greater than %d bytes not supported in .text sections."),
- MAX_MEM_FOR_RS_ALIGN_CODE + 1);
- as_fatal ("%s", err_msg);
+ fragP->fr_var = noop_size;
+ memcpy (p, noop, noop_size);
}
-
- p = frag_var (rs_align_code,
- MAX_MEM_FOR_RS_ALIGN_CODE,
- 1,
- (relax_substateT) max,
- (symbolS *) NULL,
- (offsetT) n,
- (char *) NULL);
- *p = 0;
}
/* Perform target specific initialisation of a frag.
@@ -31856,7 +31809,7 @@ arm_parse_arch (const char *str)
return true;
}
- as_bad (_("unknown architecture `%s'\n"), str);
+ as_bad (_("unknown architecture `%s'"), str);
return false;
}
@@ -31872,7 +31825,7 @@ arm_parse_fpu (const char * str)
return true;
}
- as_bad (_("unknown floating point format `%s'\n"), str);
+ as_bad (_("unknown floating point format `%s'"), str);
return false;
}
@@ -31888,7 +31841,7 @@ arm_parse_float_abi (const char * str)
return true;
}
- as_bad (_("unknown floating point abi `%s'\n"), str);
+ as_bad (_("unknown floating point abi `%s'"), str);
return false;
}
@@ -31904,7 +31857,7 @@ arm_parse_eabi (const char * str)
meabi_flags = opt->value;
return true;
}
- as_bad (_("unknown EABI `%s'\n"), str);
+ as_bad (_("unknown EABI `%s'"), str);
return false;
}
#endif
@@ -32416,7 +32369,7 @@ aeabi_set_public_attributes (void)
if (arch == -1)
arch = get_aeabi_cpu_arch_from_fset (&flags_arch, &flags_ext, &profile, 0);
if (arch == -1)
- as_bad (_("no architecture contains all the instructions used\n"));
+ as_bad (_("no architecture contains all the instructions used"));
/* Tag_CPU_name. */
if (selected_cpu_name[0])
@@ -32676,7 +32629,7 @@ s_arm_arch (int ignored ATTRIBUTE_UNUSED)
return;
}
- as_bad (_("unknown architecture `%s'\n"), name);
+ as_bad (_("unknown architecture `%s'"), name);
*input_line_pointer = saved_char;
ignore_rest_of_line ();
}
@@ -32712,7 +32665,7 @@ s_arm_object_arch (int ignored ATTRIBUTE_UNUSED)
return;
}
- as_bad (_("unknown architecture `%s'\n"), name);
+ as_bad (_("unknown architecture `%s'"), name);
*input_line_pointer = saved_char;
ignore_rest_of_line ();
}
@@ -32791,8 +32744,12 @@ s_arm_arch_extension (int ignored ATTRIBUTE_UNUSED)
if (i == nb_allowed_archs)
{
- as_bad (_("architectural extension `%s' is not allowed for the "
- "current base architecture"), name);
+ if (adding_value)
+ as_bad (_("architectural extension `%s' is not allowed for the "
+ "current base architecture"), name);
+ else
+ as_tsktsk (_("disabling feature `%s' has no effect on the "
+ "current base architecture"), name);
break;
}
@@ -32814,7 +32771,7 @@ s_arm_arch_extension (int ignored ATTRIBUTE_UNUSED)
}
if (opt->name == NULL)
- as_bad (_("unknown architecture extension `%s'\n"), name);
+ as_bad (_("unknown architecture extension `%s'"), name);
*input_line_pointer = saved_char;
}
@@ -32855,7 +32812,7 @@ s_arm_fpu (int ignored ATTRIBUTE_UNUSED)
return;
}
- as_bad (_("unknown floating point format `%s'\n"), name);
+ as_bad (_("unknown floating point format `%s'"), name);
*input_line_pointer = saved_char;
ignore_rest_of_line ();
}
diff --git a/gas/config/tc-arm.h b/gas/config/tc-arm.h
index 24e2197..aa5f117 100644
--- a/gas/config/tc-arm.h
+++ b/gas/config/tc-arm.h
@@ -203,9 +203,6 @@ void arm_copy_symbol_attributes (symbolS *, symbolS *);
#define TC_CONS_FIX_NEW cons_fix_new_arm
-#define MAX_MEM_ALIGNMENT_BYTES 6
-#define MAX_MEM_FOR_RS_ALIGN_CODE ((1 << MAX_MEM_ALIGNMENT_BYTES) - 1)
-
/* For frags in code sections we need to record whether they contain
ARM code or THUMB code. This is that if they have to be aligned,
they can contain the correct type of no-op instruction. */
@@ -231,6 +228,7 @@ arm_min (int am_p1, int am_p2)
#define TC_FRAG_INIT(fragp, max_bytes) arm_init_frag (fragp, max_bytes)
#define TC_ALIGN_ZERO_IS_DEFAULT 1
#define HANDLE_ALIGN(sec, fragp) arm_handle_align (fragp)
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (3 + 4)
/* PR gas/19276: COFF/PE segment alignment is already handled in coff_frob_section(). */
#ifndef TE_PE
#define SUB_SEGMENT_ALIGN(SEG, FRCHAIN) \
@@ -238,13 +236,6 @@ arm_min (int am_p1, int am_p2)
? arm_min (2, get_recorded_alignment (SEG)) : 0)
#endif
-#define md_do_align(N, FILL, LEN, MAX, LABEL) \
- if (FILL == NULL && (N) != 0 && ! need_pass_2 && subseg_text_p (now_seg)) \
- { \
- arm_frag_align_code (N, MAX); \
- goto LABEL; \
- }
-
#define DWARF2_LINE_MIN_INSN_LENGTH 2
/* The lr register is r14. */
@@ -339,7 +330,6 @@ struct arm_segment_info_type
#define MD_PCREL_FROM_SECTION(F,S) md_pcrel_from_section(F,S)
-extern void arm_frag_align_code (int, int);
extern void arm_validate_fix (struct fix *);
extern const char * elf32_arm_target_format (void);
extern void arm_elf_change_section (void);
diff --git a/gas/config/tc-avr.c b/gas/config/tc-avr.c
index c98ba86..650b736 100644
--- a/gas/config/tc-avr.c
+++ b/gas/config/tc-avr.c
@@ -146,9 +146,9 @@ static struct
/* Set and used during parse from chunk 1 (Prologue) up to chunk 0 (Done).
Set by `avr_update_gccisr' and used by `avr_patch_gccisr_frag'. */
- int need_reg_tmp;
- int need_reg_zero;
- int need_sreg;
+ bool need_reg_tmp;
+ bool need_reg_zero;
+ bool need_sreg;
} avr_isr;
static void avr_gccisr_operands (struct avr_opcodes_s*, char**);
@@ -841,12 +841,10 @@ md_begin (void)
for (i = 0; i < ARRAY_SIZE (avr_no_sreg); ++i)
{
gas_assert (str_hash_find (avr_hash, avr_no_sreg[i]));
- str_hash_insert (avr_no_sreg_hash, avr_no_sreg[i],
- (void *) 4 /* dummy */, 0);
+ str_hash_insert_int (avr_no_sreg_hash, avr_no_sreg[i], 0 /* dummy */, 0);
}
- avr_gccisr_opcode = (struct avr_opcodes_s*) str_hash_find (avr_hash,
- "__gcc_isr");
+ avr_gccisr_opcode = str_hash_find (avr_hash, "__gcc_isr");
gas_assert (avr_gccisr_opcode);
bfd_set_arch_mach (stdoutput, TARGET_ARCH, avr_mcu->mach);
@@ -1885,7 +1883,7 @@ md_assemble (char *str)
if (!op[0])
as_bad (_("can't find opcode "));
- opcode = (struct avr_opcodes_s *) str_hash_find (avr_hash, op);
+ opcode = str_hash_find (avr_hash, op);
if (opcode && !avr_opt.all_opcodes)
{
@@ -1915,8 +1913,8 @@ md_assemble (char *str)
return;
}
- if (opcode == avr_gccisr_opcode
- && !avr_opt.have_gccisr)
+ if (opcode == avr_gccisr_opcode
+ && !avr_opt.have_gccisr)
{
as_bad (_("pseudo instruction `%s' not supported"), op);
return;
@@ -2464,7 +2462,7 @@ avr_update_gccisr (struct avr_opcodes_s *opcode, int reg1, int reg2)
/* SREG: Look up instructions that don't clobber SREG. */
if (!avr_isr.need_sreg
- && !str_hash_find (avr_no_sreg_hash, opcode->name))
+ && str_hash_find_int (avr_no_sreg_hash, opcode->name) < 0)
{
avr_isr.need_sreg = 1;
}
@@ -2500,23 +2498,30 @@ avr_update_gccisr (struct avr_opcodes_s *opcode, int reg1, int reg2)
of octets written. INSN specifies the desired instruction and REG is the
register used by it. This function is only used with restricted subset of
instructions as might be emit by `__gcc_isr'. IN / OUT will use SREG
- and LDI loads 0. */
+ and LDI loads 0. MOV sets R1. */
static void
avr_emit_insn (const char *insn, int reg, char **pwhere)
{
const int sreg = 0x3f;
unsigned bin = 0;
- const struct avr_opcodes_s *op
- = (struct avr_opcodes_s*) str_hash_find (avr_hash, insn);
+ const struct avr_opcodes_s *op = str_hash_find (avr_hash, insn);
- /* We only have to deal with: IN, OUT, PUSH, POP, CLR, LDI 0. All of
- these deal with at least one Reg and are 1-word instructions. */
+ /* We only have to deal with: IN, OUT, PUSH, POP, CLR, LDI 0, MOV R1.
+ All of these deal with at least one Reg and are 1-word instructions. */
gas_assert (op && 1 == op->insn_size);
gas_assert (reg >= 0 && reg <= 31);
- if (strchr (op->constraints, 'r'))
+ if (!strcmp (insn, "mov"))
+ {
+ const int reg1 = 1;
+ /* AVR_INSN (mov, "r,r", "001011rdddddrrrr", ...) */
+ bin = op->bin_opcode | (reg1 << 4);
+ bin |= reg & 0xf;
+ bin |= (reg & 0x10) << 5;
+ }
+ else if (strchr (op->constraints, 'r'))
{
bin = op->bin_opcode | (reg << 4);
}
@@ -2538,12 +2543,68 @@ avr_emit_insn (const char *insn, int reg, char **pwhere)
}
else
gas_assert (0 == strcmp ("r", op->constraints)
+ || 0 == strcmp ("mov", op->name)
|| 0 == strcmp ("ldi", op->name));
bfd_putl16 ((bfd_vma) bin, *pwhere);
(*pwhere) += 2 * op->insn_size;
}
+typedef struct
+{
+ unsigned reg_mask;
+ int n_pushed;
+ int slot[5];
+} avr_isr_stack_t;
+
+/* Encode / decode that the register operation is on behalf of SREG. */
+#define FOR_SREG(x) (-(x) - 1)
+
+
+static void
+avr_emit_push (avr_isr_stack_t *st, int r, char **pwhere, bool emit_code_p)
+{
+ const bool for_sreg = r < 0;
+ const int reg = for_sreg ? FOR_SREG (r) : r;
+
+ /* When REG has already been pushed, don't push it again
+ (except it is for SREG). */
+
+ if (!for_sreg && (st->reg_mask & (1u << reg)))
+ return;
+
+ st->slot[st->n_pushed] = r;
+ st->n_pushed += 1;
+ st->reg_mask |= 1u << reg;
+
+ if (emit_code_p)
+ {
+ if (for_sreg)
+ {
+ avr_emit_insn ("in", reg, pwhere);
+ avr_emit_insn ("push", reg, pwhere);
+ }
+ else
+ avr_emit_insn ("push", reg, pwhere);
+ }
+}
+
+
+static void
+avr_emit_pop (int r, char **pwhere)
+{
+ const bool for_sreg = r < 0;
+ const int reg = for_sreg ? FOR_SREG (r) : r;
+
+ if (for_sreg)
+ {
+ avr_emit_insn ("pop", reg, pwhere);
+ avr_emit_insn ("out", reg, pwhere);
+ }
+ else
+ avr_emit_insn ("pop", reg, pwhere);
+}
+
/* Turn rs_machine_dependent frag *FR into an ordinary rs_fill code frag,
using information gathered in `avr_isr'. REG is the register number as
@@ -2553,15 +2614,29 @@ static void
avr_patch_gccisr_frag (fragS *fr, int reg)
{
int treg;
- int n_pushed = 0;
char *where = fr->fr_literal;
- const int tiny_p = avr_mcu->mach == bfd_mach_avrtiny;
+ const bool in_prologue = fr->fr_subtype == ISR_CHUNK_Prologue;
+ const bool in_epilogue = fr->fr_subtype == ISR_CHUNK_Epilogue;
+ const bool tiny_p = avr_mcu->mach == bfd_mach_avrtiny;
const int reg_tmp = tiny_p ? 16 : 0;
const int reg_zero = 1 + reg_tmp;
+ /* Whether to use MOV R1,* to set zero_reg on non-Tiny. */
+ bool mov_r1_p = false;
+ avr_isr_stack_t st = { 0, 0, { 0 } };
+
+ gas_assert (in_prologue ^ in_epilogue);
- /* Clearing ZERO_REG on non-Tiny needs CLR which clobbers SREG. */
+ /* Clearing ZERO_REG on non-Tiny needs CLR which clobbers SREG. Hence
+ when ZERO_REG is needed but SREG is not already clobbererd, and we have
+ a d-reg to play with, then use LDI + MOV to set ZERO_REG (PR32704). */
- avr_isr.need_sreg |= !tiny_p && avr_isr.need_reg_zero;
+ if (!tiny_p && avr_isr.need_reg_zero && !avr_isr.need_sreg)
+ {
+ if (reg >= 16)
+ mov_r1_p = true;
+ else
+ avr_isr.need_sreg = true;
+ }
/* A working register to PUSH / POP the SREG. We might use the register
as supplied by ISR_CHUNK_Done for that purpose as GCC wants to push
@@ -2569,7 +2644,8 @@ avr_patch_gccisr_frag (fragS *fr, int reg)
no additional regs to safe) and we use that reg. */
treg
- = avr_isr.need_reg_tmp ? reg_tmp
+ = mov_r1_p ? reg
+ : avr_isr.need_reg_tmp ? reg_tmp
: avr_isr.need_reg_zero ? reg_zero
: avr_isr.need_sreg ? reg
: reg > reg_zero ? reg
@@ -2577,68 +2653,57 @@ avr_patch_gccisr_frag (fragS *fr, int reg)
if (treg >= 0)
{
- /* Non-empty prologue / epilogue */
+ /* Non-empty prologue / epilogue.
- if (ISR_CHUNK_Prologue == fr->fr_subtype)
- {
- avr_emit_insn ("push", treg, &where);
- n_pushed++;
+ This code runs for prologue AND epilogue but only outputs insns
+ when in prologue. When in epilogue, still record which pushes
+ have been performed. */
- if (avr_isr.need_sreg)
- {
- avr_emit_insn ("in", treg, &where);
- avr_emit_insn ("push", treg, &where);
- n_pushed++;
- }
+ avr_emit_push (&st, treg, &where, in_prologue);
- if (avr_isr.need_reg_zero)
+ if (avr_isr.need_sreg)
+ avr_emit_push (&st, FOR_SREG (treg), &where, in_prologue);
+
+ if (avr_isr.need_reg_zero)
+ {
+ avr_emit_push (&st, reg_zero, &where, in_prologue);
+
+ if (in_prologue)
{
- if (reg_zero != treg)
+ if (mov_r1_p)
{
- avr_emit_insn ("push", reg_zero, &where);
- n_pushed++;
+ avr_emit_insn ("ldi", treg, &where);
+ avr_emit_insn ("mov", treg, &where);
}
- avr_emit_insn (tiny_p ? "ldi" : "clr", reg_zero, &where);
- }
-
- if (reg > reg_zero && reg != treg)
- {
- avr_emit_insn ("push", reg, &where);
- n_pushed++;
+ else
+ avr_emit_insn (tiny_p ? "ldi" : "clr", reg_zero, &where);
}
}
- else if (ISR_CHUNK_Epilogue == fr->fr_subtype)
- {
- /* Same logic as in Prologue but in reverse order and with counter
- parts of either instruction: POP instead of PUSH and OUT instead
- of IN. Clearing ZERO_REG has no couter part. */
- if (reg > reg_zero && reg != treg)
- avr_emit_insn ("pop", reg, &where);
+ if (avr_isr.need_reg_tmp)
+ avr_emit_push (&st, reg_tmp, &where, in_prologue);
- if (avr_isr.need_reg_zero
- && reg_zero != treg)
- avr_emit_insn ("pop", reg_zero, &where);
+ if (reg > reg_zero)
+ avr_emit_push (&st, reg, &where, in_prologue);
- if (avr_isr.need_sreg)
- {
- avr_emit_insn ("pop", treg, &where);
- avr_emit_insn ("out", treg, &where);
- }
+ /* Same logic like in Prologue but in reverse order and with counter-
+ parts of either instruction: POP instead of PUSH and OUT instead
+ of IN. Clearing ZERO_REG has no counterpart. */
- avr_emit_insn ("pop", treg, &where);
+ if (in_epilogue)
+ {
+ for (int i = st.n_pushed - 1; i >= 0; --i)
+ avr_emit_pop (st.slot[i], &where);
}
- else
- abort();
} /* treg >= 0 */
- if (ISR_CHUNK_Prologue == fr->fr_subtype
+ if (in_prologue
&& avr_isr.sym_n_pushed)
{
symbolS *sy = avr_isr.sym_n_pushed;
/* Turn magic `__gcc_isr.n_pushed' into its now known value. */
- S_SET_VALUE (sy, n_pushed);
+ S_SET_VALUE (sy, st.n_pushed);
S_SET_SEGMENT (sy, expr_section);
avr_isr.sym_n_pushed = NULL;
}
diff --git a/gas/config/tc-cr16.c b/gas/config/tc-cr16.c
index 751a861..62a7deb 100644
--- a/gas/config/tc-cr16.c
+++ b/gas/config/tc-cr16.c
@@ -329,7 +329,7 @@ get_register (char *reg_name)
{
const reg_entry *rreg;
- rreg = (const reg_entry *) str_hash_find (reg_hash, reg_name);
+ rreg = str_hash_find (reg_hash, reg_name);
if (rreg != NULL)
return rreg->value.reg_val;
@@ -350,10 +350,10 @@ get_register_pair (char *reg_name)
tmp_rp[0] = '(';
strcat (tmp_rp, reg_name);
strcat (tmp_rp,")");
- rreg = (const reg_entry *) str_hash_find (regp_hash, tmp_rp);
+ rreg = str_hash_find (regp_hash, tmp_rp);
}
else
- rreg = (const reg_entry *) str_hash_find (regp_hash, reg_name);
+ rreg = str_hash_find (regp_hash, reg_name);
if (rreg != NULL)
return rreg->value.reg_val;
@@ -368,7 +368,7 @@ get_index_register (char *reg_name)
{
const reg_entry *rreg;
- rreg = (const reg_entry *) str_hash_find (reg_hash, reg_name);
+ rreg = str_hash_find (reg_hash, reg_name);
if ((rreg != NULL)
&& ((rreg->value.reg_val == 12) || (rreg->value.reg_val == 13)))
@@ -383,7 +383,7 @@ get_index_register_pair (char *reg_name)
{
const reg_entry *rreg;
- rreg = (const reg_entry *) str_hash_find (regp_hash, reg_name);
+ rreg = str_hash_find (regp_hash, reg_name);
if (rreg != NULL)
{
@@ -404,7 +404,7 @@ get_pregister (char *preg_name)
{
const reg_entry *prreg;
- prreg = (const reg_entry *) str_hash_find (preg_hash, preg_name);
+ prreg = str_hash_find (preg_hash, preg_name);
if (prreg != NULL)
return prreg->value.preg_val;
@@ -419,7 +419,7 @@ get_pregisterp (char *preg_name)
{
const reg_entry *prreg;
- prreg = (const reg_entry *) str_hash_find (pregp_hash, preg_name);
+ prreg = str_hash_find (pregp_hash, preg_name);
if (prreg != NULL)
return prreg->value.preg_val;
@@ -2469,7 +2469,7 @@ cr16_assemble (const char *op, char *param)
ins cr16_ins;
/* Find the instruction. */
- instruction = (const inst *) str_hash_find (cr16_inst_hash, op);
+ instruction = str_hash_find (cr16_inst_hash, op);
if (instruction == NULL)
{
as_bad (_("Unknown opcode: `%s'"), op);
@@ -2539,7 +2539,7 @@ md_assemble (char *op)
{
strcpy (param1, param);
/* Find the instruction. */
- instruction = (const inst *) str_hash_find (cr16_inst_hash, op);
+ instruction = str_hash_find (cr16_inst_hash, op);
parse_operands (&cr16_ins, param1);
if (((&cr16_ins)->arg[0].type == arg_ic)
&& ((&cr16_ins)->arg[0].constant >= 0))
diff --git a/gas/config/tc-cris.c b/gas/config/tc-cris.c
index c9c16f9..5780386 100644
--- a/gas/config/tc-cris.c
+++ b/gas/config/tc-cris.c
@@ -1552,7 +1552,7 @@ cris_process_instruction (char *insn_text, struct cris_instruction *out_insnp,
}
/* Find the instruction. */
- instruction = (struct cris_opcode *) str_hash_find (op_hash, insn_text);
+ instruction = str_hash_find (op_hash, insn_text);
if (instruction == NULL)
{
as_bad (_("Unknown opcode: `%s'"), insn_text);
@@ -2094,7 +2094,7 @@ cris_process_instruction (char *insn_text, struct cris_instruction *out_insnp,
/* As discard_rest_of_line, but without continuing to the
next line. */
- while (!is_end_of_line[(unsigned char) *input_line_pointer])
+ while (!is_end_of_stmt (*input_line_pointer))
input_line_pointer++;
return;
}
@@ -4039,9 +4039,8 @@ void
md_apply_fix (fixS *fixP, valueT *valP, segT seg)
{
/* This assignment truncates upper bits if valueT is 64 bits (as with
- --enable-64-bit-bfd), which is fine here, though we cast to avoid
- any compiler warnings. */
- long val = (long) *valP;
+ --enable-64-bit-bfd), which is fine here. */
+ long val = *valP;
char *buf = fixP->fx_where + fixP->fx_frag->fr_literal;
if (fixP->fx_addsy == 0 && !fixP->fx_pcrel)
diff --git a/gas/config/tc-crx.c b/gas/config/tc-crx.c
index f62424b..fffd3f1 100644
--- a/gas/config/tc-crx.c
+++ b/gas/config/tc-crx.c
@@ -184,7 +184,7 @@ get_register (char *reg_name)
{
const reg_entry *rreg;
- rreg = (const reg_entry *) str_hash_find (reg_hash, reg_name);
+ rreg = str_hash_find (reg_hash, reg_name);
if (rreg != NULL)
return rreg->value.reg_val;
@@ -199,7 +199,7 @@ get_copregister (char *copreg_name)
{
const reg_entry *coreg;
- coreg = (const reg_entry *) str_hash_find (copreg_hash, copreg_name);
+ coreg = str_hash_find (copreg_hash, copreg_name);
if (coreg != NULL)
return coreg->value.copreg_val;
@@ -1933,7 +1933,7 @@ md_assemble (char *op)
*param++ = '\0';
/* Find the instruction. */
- instruction = (const inst *) str_hash_find (crx_inst_hash, op);
+ instruction = str_hash_find (crx_inst_hash, op);
if (instruction == NULL)
{
as_bad (_("Unknown opcode: `%s'"), op);
diff --git a/gas/config/tc-csky.c b/gas/config/tc-csky.c
index 5ff7458..beb46fa 100644
--- a/gas/config/tc-csky.c
+++ b/gas/config/tc-csky.c
@@ -632,102 +632,120 @@ struct csky_cpu_info
#define CSKY_FEATURES_DEF_NULL() \
- {{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}}
+ {{0,0,0}, {0,0,0}, {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 CSKY_FEATURES_DEF_e(isa_e) \
{FEATURE_DSP_EXT(isa_e), \
- {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}}
+ {0,0,0}, {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 CSKY_FEATURES_DEF_t(isa_t) \
{FEATURE_TRUST(isa_t), \
- {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}}
+ {0,0,0}, {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 CSKY_FEATURES_DEF_f(isa_f) \
{FEATURE_FLOAT(isa_f), \
- {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}}
+ {0,0,0}, {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 CSKY_FEATURES_DEF_v(isa_v) \
{FEATURE_VDSP(isa_v), \
- {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}}
+ {0,0,0}, {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 CSKY_FEATURES_DEF_ef(isa_e, isa_f) \
{FEATURE_DSP_EXT(isa_e), \
FEATURE_FLOAT(isa_f), \
- {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}}
+ {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 CSKY_FEATURES_DEF_jt(isa_j, isa_t) \
{FEATURE_JAVA(isa_j), \
FEATURE_TRUST(isa_t), \
- {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}}
+ {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 CSKY_FEATURES_DEF_efht(isa_e, isa_f, isa_h, isa_t) \
{FEATURE_DSP_EXT(isa_e), \
FEATURE_FLOAT(isa_f), \
FEATURE_SHIELD(isa_h), \
FEATURE_TRUST(isa_t), \
- {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 CSKY_FEATURES_DEF_efv(isa_e, isa_f, isa_v) \
{FEATURE_DSP_EXT(isa_e), \
FEATURE_FLOAT(isa_f), \
FEATURE_VDSP(isa_v), \
- {0}, {0}, {0}, {0}, {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 CSKY_FEATURES_DEF_eft(isa_e, isa_f, isa_t) \
{FEATURE_DSP_EXT(isa_e), \
FEATURE_FLOAT(isa_f), \
FEATURE_TRUST(isa_t), \
- {0}, {0}, {0}, {0}, {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 CSKY_FEATURES_DEF_d(isa_d) \
- {FEATURE_DSP(isa_d), \
- {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}}
+ {FEATURE_DSP(isa_d), \
+ {0,0,0}, {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 CSKY_FEATURES_DEF_df(isa_d, isa_f) \
- {FEATURE_DSP(isa_d), \
- FEATURE_FLOAT(isa_f), \
- {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}}
+ {FEATURE_DSP(isa_d), \
+ FEATURE_FLOAT(isa_f), \
+ {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 CSKY_FEATURES_DEF_ft(isa_f, isa_t) \
{FEATURE_FLOAT(isa_f), \
FEATURE_TRUST(isa_t), \
- {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}}
+ {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 CSKY_FEATURES_DEF_tv(isa_t, isa_v) \
{FEATURE_TRUST(isa_t), \
FEATURE_VDSP(isa_v), \
- {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}}
+ {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 CSKY_FEATURES_DEF_fv(isa_f, isa_v) \
{FEATURE_FLOAT(isa_f), \
FEATURE_VDSP(isa_v), \
- {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}}
-
+ {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 CSKY_FEATURES_DEF_dft(isa_d, isa_f, isa_t) \
{FEATURE_DSP(isa_d), \
FEATURE_FLOAT(isa_f), \
FEATURE_TRUST(isa_t), \
- {0}, {0}, {0}, {0}, {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 CSKY_FEATURES_DEF_dfv(isa_d, isa_f, isa_v) \
{FEATURE_DSP(isa_d), \
FEATURE_FLOAT(isa_f), \
FEATURE_VDSP(isa_v), \
- {0}, {0}, {0}, {0}, {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 CSKY_FEATURES_DEF_ftv(isa_f, isa_t, isa_v) \
{FEATURE_FLOAT(isa_f), \
FEATURE_TRUST(isa_t), \
FEATURE_VDSP(isa_v), \
- {0}, {0}, {0}, {0}, {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 CSKY_FEATURES_DEF_eftv(isa_e, isa_f, isa_t, isa_v) \
{FEATURE_DSP_EXT(isa_e), \
FEATURE_FLOAT(isa_f), \
FEATURE_TRUST(isa_t), \
FEATURE_VDSP(isa_v), \
- {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 CSKY_CPU_REVERISON_r0p0(isa) \
@@ -740,13 +758,15 @@ struct csky_cpu_info
{3, 0, isa}
#define CSKY_CPU_REVERISON_RESERVED() \
-{{0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}, {0}}
+ {{0,0,0}, {0,0,0}, {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 CSKY_CPU_REVERISON_R3(isa1, isa2, isa3) \
{CSKY_CPU_REVERISON_r1p0(isa1), \
CSKY_CPU_REVERISON_r2p0(isa2), \
CSKY_CPU_REVERISON_r3p0(isa3), \
- {0}, {0}, {0}, {0}, {0}, {0}, {0}}
+ {0,0,0}, {0,0,0}, \
+ {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}}
/* CSKY cpus table. */
const struct csky_cpu_info csky_cpus[] =
@@ -936,7 +956,11 @@ const struct csky_cpu_info csky_cpus[] =
/* Start of private CPUs. */
/* End of private CPUs. */
- {NULL},
+ {NULL,
+ 0,
+ 0,
+ CSKY_FEATURES_DEF_NULL(),
+ CSKY_CPU_REVERISON_RESERVED()}
};
int md_short_jump_size = 2;
@@ -2247,7 +2271,7 @@ lex_got (enum bfd_reloc_code_real *reloc,
unsigned int j;
for (cp = input_line_pointer; *cp != '@'; cp++)
- if (is_end_of_line[(unsigned char) *cp])
+ if (is_end_of_stmt (*cp))
return NULL;
for (j = 0; j < sizeof (gotrel) / sizeof (gotrel[0]); j++)
@@ -2332,17 +2356,17 @@ parse_fexp (char *s, expressionS *e, unsigned char isdouble, uint64_t *dbnum)
know (length <= 8);
know (err != NULL || length > 0);
- if (!is_end_of_line[(unsigned char) *input_line_pointer])
+ if (!is_end_of_stmt (*input_line_pointer))
as_bad (_("immediate operand required"));
- while (!is_end_of_line[(unsigned char) *input_line_pointer])
+ while (!is_end_of_stmt (*input_line_pointer))
input_line_pointer++;
if (err)
{
as_bad (_("bad floating literal: %s"), err);
- while (!is_end_of_line[(unsigned char) *input_line_pointer])
+ while (!is_end_of_stmt (*input_line_pointer))
input_line_pointer++;
- know (is_end_of_line[(unsigned char) input_line_pointer[-1]]);
+ know (is_end_of_stmt (input_line_pointer[-1]));
return input_line_pointer;
}
@@ -3278,14 +3302,14 @@ csky_count_operands (char *str)
unsigned int oprnd_num;
int bracket_cnt = 0;
- if (is_end_of_line[(unsigned char) *oper_end])
+ if (is_end_of_stmt (*oper_end))
oprnd_num = 0;
else
oprnd_num = 1;
/* Count how many operands. */
if (oprnd_num)
- while (!is_end_of_line[(unsigned char) *oper_end])
+ while (!is_end_of_stmt (*oper_end))
{
if (*oper_end == '(' || *oper_end == '<')
{
@@ -3386,10 +3410,8 @@ parse_opcode (char *str)
csky_insn.number = csky_count_operands (opcode_end);
/* Find hash by name in csky_macros_hash and csky_opcodes_hash. */
- csky_insn.macro = (struct csky_macro_info *) str_hash_find (csky_macros_hash,
- macro_name);
- csky_insn.opcode = (struct csky_opcode *) str_hash_find (csky_opcodes_hash,
- name);
+ csky_insn.macro = str_hash_find (csky_macros_hash, macro_name);
+ csky_insn.opcode = str_hash_find (csky_opcodes_hash, name);
if (csky_insn.macro == NULL && csky_insn.opcode == NULL)
return false;
@@ -3614,8 +3636,7 @@ get_operand_value (struct csky_opcode_info *op,
if (val <= 6)
{
const char *name = "movi";
- csky_insn.opcode = (struct csky_opcode *)
- str_hash_find (csky_opcodes_hash, name);
+ csky_insn.opcode = str_hash_find (csky_opcodes_hash, name);
csky_insn.val[csky_insn.idx - 1] = 1 << val;
}
return true;
@@ -3648,8 +3669,7 @@ get_operand_value (struct csky_opcode_info *op,
if (log <= 6)
{
const char *name = "movi";
- csky_insn.opcode = (struct csky_opcode *)
- str_hash_find (csky_opcodes_hash, name);
+ csky_insn.opcode = str_hash_find (csky_opcodes_hash, name);
as_warn (_("translating mgeni to movi"));
}
else
@@ -3686,8 +3706,7 @@ get_operand_value (struct csky_opcode_info *op,
if (mask_val > 0 && mask_val < 8)
{
const char *op_movi = "movi";
- csky_insn.opcode = (struct csky_opcode *)
- str_hash_find (csky_opcodes_hash, op_movi);
+ csky_insn.opcode = str_hash_find (csky_opcodes_hash, op_movi);
if (csky_insn.opcode == NULL)
return false;
csky_insn.val[csky_insn.idx - 1] = (1 << mask_val) - 1;
@@ -3747,8 +3766,7 @@ get_operand_value (struct csky_opcode_info *op,
if (mask_val > 0 && mask_val < 16)
{
const char *op_movi = "movi";
- csky_insn.opcode = (struct csky_opcode *)
- str_hash_find (csky_opcodes_hash, op_movi);
+ csky_insn.opcode = str_hash_find (csky_opcodes_hash, op_movi);
if (csky_insn.opcode == NULL)
return false;
csky_insn.val[csky_insn.idx - 1] = (1 << (mask_val + 1)) - 1;
@@ -4353,7 +4371,7 @@ parse_operands_op (char *str, struct csky_opcode_info *op)
break;
}
}
- else if (!is_end_of_line[(unsigned char) *oper])
+ else if (!is_end_of_stmt (*oper))
{
SET_ERROR_STRING (ERROR_BAD_END, NULL);
flag_pass = false;
@@ -6475,8 +6493,7 @@ v1_work_jbsr (void)
{
/* Using jsri instruction. */
const char *name = "jsri";
- csky_insn.opcode = (struct csky_opcode *)
- str_hash_find (csky_opcodes_hash, name);
+ csky_insn.opcode = str_hash_find (csky_opcodes_hash, name);
csky_insn.opcode_idx = 0;
csky_insn.isize = 2;
@@ -6823,8 +6840,7 @@ bool
v2_work_rotlc (void)
{
const char *name = "addc";
- csky_insn.opcode
- = (struct csky_opcode *) str_hash_find (csky_opcodes_hash, name);
+ csky_insn.opcode = str_hash_find (csky_opcodes_hash, name);
csky_insn.opcode_idx = 0;
if (csky_insn.isize == 2)
{
@@ -6861,8 +6877,7 @@ v2_work_bgeni (void)
name = "movih";
val >>= 16;
}
- csky_insn.opcode
- = (struct csky_opcode *) str_hash_find (csky_opcodes_hash, name);
+ csky_insn.opcode = str_hash_find (csky_opcodes_hash, name);
csky_insn.opcode_idx = 0;
csky_insn.val[1] = val;
@@ -6879,8 +6894,7 @@ bool
v2_work_not (void)
{
const char *name = "nor";
- csky_insn.opcode
- = (struct csky_opcode *) str_hash_find (csky_opcodes_hash, name);
+ csky_insn.opcode = str_hash_find (csky_opcodes_hash, name);
csky_insn.opcode_idx = 0;
if (csky_insn.number == 1)
{
diff --git a/gas/config/tc-d10v.c b/gas/config/tc-d10v.c
index dd0292a..b10cdff 100644
--- a/gas/config/tc-d10v.c
+++ b/gas/config/tc-d10v.c
@@ -1428,7 +1428,7 @@ do_assemble (char *str, struct d10v_opcode **opcode)
return -1;
/* Find the first opcode with the proper name. */
- *opcode = (struct d10v_opcode *) str_hash_find (d10v_hash, name);
+ *opcode = str_hash_find (d10v_hash, name);
if (*opcode == NULL)
return -1;
@@ -1556,8 +1556,8 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
{
struct d10v_opcode *rep, *repi;
- rep = (struct d10v_opcode *) str_hash_find (d10v_hash, "rep");
- repi = (struct d10v_opcode *) str_hash_find (d10v_hash, "repi");
+ rep = str_hash_find (d10v_hash, "rep");
+ repi = str_hash_find (d10v_hash, "repi");
if ((insn & FM11) == FM11
&& ((repi != NULL
&& (insn & repi->mask) == (unsigned) repi->opcode)
diff --git a/gas/config/tc-d30v.c b/gas/config/tc-d30v.c
index c3c58d1..76827d5 100644
--- a/gas/config/tc-d30v.c
+++ b/gas/config/tc-d30v.c
@@ -1387,7 +1387,7 @@ do_assemble (char *str,
}
/* Find the first opcode with the proper name. */
- opcode->op = (struct d30v_opcode *) str_hash_find (d30v_hash, name);
+ opcode->op = str_hash_find (d30v_hash, name);
if (opcode->op == NULL)
{
as_bad (_("unknown opcode: %s"), name);
diff --git a/gas/config/tc-dlx.c b/gas/config/tc-dlx.c
index b1ff09d..abb283d 100644
--- a/gas/config/tc-dlx.c
+++ b/gas/config/tc-dlx.c
@@ -217,7 +217,7 @@ s_proc (int end_p)
current_name = current_label = NULL;
SKIP_WHITESPACE ();
- while (!is_end_of_line[(unsigned char) *input_line_pointer])
+ while (!is_end_of_stmt (*input_line_pointer))
input_line_pointer++;
}
else
@@ -683,7 +683,7 @@ machine_ip (char *str)
}
/* Hash the opcode, insn will have the string from opcode table. */
- if ((insn = (struct machine_opcode *) str_hash_find (op_hash, str)) == NULL)
+ if ((insn = str_hash_find (op_hash, str)) == NULL)
{
/* Handle the ret and return macro here. */
if ((strcmp (str, "ret") == 0) || (strcmp (str, "return") == 0))
diff --git a/gas/config/tc-epiphany.c b/gas/config/tc-epiphany.c
index c8947c8..4a027e9 100644
--- a/gas/config/tc-epiphany.c
+++ b/gas/config/tc-epiphany.c
@@ -314,7 +314,7 @@ static const unsigned char nop_pattern[] = { 0xa2, 0x01 };
void
epiphany_handle_align (fragS *fragp)
{
- int bytes, fix;
+ int bytes;
char *p;
if (fragp->fr_type != rs_align_code)
@@ -322,23 +322,19 @@ epiphany_handle_align (fragS *fragp)
bytes = fragp->fr_next->fr_address - fragp->fr_address - fragp->fr_fix;
p = fragp->fr_literal + fragp->fr_fix;
- fix = 0;
if (bytes & 1)
{
- fix = 1;
*p++ = 0;
bytes--;
+ fragp->fr_fix++;
}
- if (bytes & 2)
+ if (bytes != 0)
{
+ fragp->fr_var = 2;
memcpy (p, nop_pattern, 2);
- p += 2;
- bytes -= 2;
- fix += 2;
}
- fragp->fr_fix += fix;
}
/* Read a comma separated incrementing list of register names
diff --git a/gas/config/tc-epiphany.h b/gas/config/tc-epiphany.h
index dde6733..78adcd6 100644
--- a/gas/config/tc-epiphany.h
+++ b/gas/config/tc-epiphany.h
@@ -74,6 +74,7 @@ extern int epiphany_cgen_parse_fix_exp (int, expressionS *);
#define HANDLE_ALIGN(s, f) epiphany_handle_align (f)
extern void epiphany_handle_align (fragS *);
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (1 + 2)
#define TARGET_FORMAT "elf32-epiphany"
diff --git a/gas/config/tc-frv.h b/gas/config/tc-frv.h
index 21e3bac..609ed6f 100644
--- a/gas/config/tc-frv.h
+++ b/gas/config/tc-frv.h
@@ -98,7 +98,7 @@ extern void frv_frob_file (void);
code actually happens to run, but this is probably too much effort
for little gain. This code is not meant to be run anyway, so just
emit nops. */
-#define MAX_MEM_FOR_RS_ALIGN_CODE (3 + 4)
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (3 + 4)
#define HANDLE_ALIGN(SEC, FRAGP) do \
if ((FRAGP)->fr_type == rs_align_code) \
{ \
diff --git a/gas/config/tc-ft32.c b/gas/config/tc-ft32.c
index 50958d5..83d3e1f 100644
--- a/gas/config/tc-ft32.c
+++ b/gas/config/tc-ft32.c
@@ -230,7 +230,7 @@ md_assemble (char *str)
if (nlen == 0)
as_bad (_("can't find opcode "));
- opcode = (ft32_opc_info_t *) str_hash_find (opcode_hash_control, op_start);
+ opcode = str_hash_find (opcode_hash_control, op_start);
*op_end = pend;
if (opcode == NULL)
diff --git a/gas/config/tc-h8300.c b/gas/config/tc-h8300.c
index eeee4c8..12456b2 100644
--- a/gas/config/tc-h8300.c
+++ b/gas/config/tc-h8300.c
@@ -1937,8 +1937,7 @@ md_assemble (char *str)
while (*++slash)
*slash = TOLOWER (*slash);
- instruction = (const struct h8_instruction *)
- str_hash_find (opcode_hash_control, op_start);
+ instruction = str_hash_find (opcode_hash_control, op_start);
if (instruction == NULL)
{
diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c
index 8d6de8d..5018dfc 100644
--- a/gas/config/tc-hppa.c
+++ b/gas/config/tc-hppa.c
@@ -2420,14 +2420,14 @@ pa_chk_field_selector (char **str)
s++;
*str = s;
- if (is_end_of_line [(unsigned char) s[0]])
+ if (is_end_of_stmt (s[0]))
return e_fsel;
else if (s[1] == '\'' || s[1] == '%')
{
name[0] = TOLOWER (s[0]);
name[1] = 0;
}
- else if (is_end_of_line [(unsigned char) s[1]])
+ else if (is_end_of_stmt (s[1]))
return e_fsel;
else if (s[2] == '\'' || s[2] == '%')
{
@@ -2435,7 +2435,7 @@ pa_chk_field_selector (char **str)
name[1] = TOLOWER (s[1]);
name[2] = 0;
}
- else if (is_end_of_line [(unsigned char) s[2]])
+ else if (is_end_of_stmt (s[2]))
return e_fsel;
else if (s[3] == '\'' || s[3] == '%')
{
@@ -3210,7 +3210,7 @@ pa_ip (char *str)
}
/* Look up the opcode in the hash table. */
- if ((insn = (struct pa_opcode *) str_hash_find (op_hash, str)) == NULL)
+ if ((insn = str_hash_find (op_hash, str)) == NULL)
{
as_bad (_("Unknown opcode: `%s'"), str);
return;
diff --git a/gas/config/tc-i386-intel.c b/gas/config/tc-i386-intel.c
index 531683b..2b86f88 100644
--- a/gas/config/tc-i386-intel.c
+++ b/gas/config/tc-i386-intel.c
@@ -669,7 +669,7 @@ i386_intel_operand (char *operand_string, int got_a_float)
ret = 0;
}
- if (!is_end_of_line[(unsigned char) *input_line_pointer])
+ if (!is_end_of_stmt (*input_line_pointer))
{
if (ret)
as_bad (_("junk `%s' after expression"), input_line_pointer);
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 2b5f075..b0a22bb 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -513,6 +513,9 @@ static struct pseudo_prefixes {
disp_encoding_32bit
} disp_encoding;
+ /* Exclude sign-extended 8bit immediate in encoding. */
+ bool no_imm8s;
+
/* Prefer the REX byte in encoding. */
bool rex_encoding;
@@ -675,9 +678,13 @@ static int use_big_obj = 0;
/* 1 if generating code for a shared library. */
static int shared = 0;
-unsigned int x86_sframe_cfa_sp_reg;
+const unsigned int x86_sframe_cfa_sp_reg = REG_SP;
/* The other CFA base register for SFrame stack trace info. */
-unsigned int x86_sframe_cfa_fp_reg;
+const unsigned int x86_sframe_cfa_fp_reg = REG_FP;
+/* The return address register for SFrame stack trace info. For AMD64, RA
+ tracking is not needed, but some directives like .cfi_undefined may use
+ RA to indicate the outermost frame. */
+const unsigned int x86_sframe_cfa_ra_reg = REG_RA;
static ginsnS *x86_ginsn_new (const symbolS *, enum ginsn_gen_mode);
#endif
@@ -1230,6 +1237,7 @@ static const arch_entry cpu_arch[] =
SUBARCH (msr_imm, MSR_IMM, MSR_IMM, false),
SUBARCH (padlockrng2, PADLOCKRNG2, PADLOCKRNG2, false),
SUBARCH (padlockphe2, PADLOCKPHE2, PADLOCKPHE2, false),
+ SUBARCH (padlockxmodx, PADLOCKXMODX, PADLOCKXMODX, false),
SUBARCH (movrs, MOVRS, MOVRS, false),
};
@@ -1540,40 +1548,6 @@ static const unsigned char *const alt64_patt[] = {
alt64_9, alt64_10, alt64_11,alt64_12, alt64_13, alt64_14, alt64_15
};
-/* Genenerate COUNT bytes of NOPs to WHERE from PATT with the maximum
- size of a single NOP instruction MAX_SINGLE_NOP_SIZE. */
-
-static void
-i386_output_nops (char *where, const unsigned char *const *patt,
- int count, int max_single_nop_size)
-
-{
- /* Place the longer NOP first. */
- int last;
- int offset;
- const unsigned char *nops;
-
- if (max_single_nop_size < 1)
- {
- as_fatal (_("i386_output_nops called to generate nops of at most %d bytes!"),
- max_single_nop_size);
- return;
- }
-
- nops = patt[max_single_nop_size - 1];
- last = count % max_single_nop_size;
-
- count -= last;
- for (offset = 0; offset < count; offset += max_single_nop_size)
- memcpy (where + offset, nops, max_single_nop_size);
-
- if (last)
- {
- nops = patt[last - 1];
- memcpy (where + offset, nops, last);
- }
-}
-
static INLINE int
fits_in_imm7 (offsetT num)
{
@@ -1729,20 +1703,14 @@ i386_generate_nops (fragS *fragP, char *where, offsetT count, int limit)
if (limit == 0)
limit = max_single_nop_size;
- if (fragP->fr_type == rs_fill_nop)
+ if (limit > max_single_nop_size || limit < 1)
{
- /* Output NOPs for .nop directive. */
- if (limit > max_single_nop_size)
- {
- as_bad_where (fragP->fr_file, fragP->fr_line,
- _("invalid single nop size: %d "
- "(expect within [0, %d])"),
- limit, max_single_nop_size);
- return;
- }
+ as_bad_where (fragP->fr_file, fragP->fr_line,
+ _("invalid single nop size: %d "
+ "(expect within [0, %d])"),
+ limit, max_single_nop_size);
+ return;
}
- else if (fragP->fr_type != rs_machine_dependent)
- fragP->fr_var = count;
/* Emit a plain NOP first when the last thing we saw may not have been
a proper instruction (e.g. a stand-alone prefix or .byte). */
@@ -1793,8 +1761,34 @@ i386_generate_nops (fragS *fragP, char *where, offsetT count, int limit)
}
}
- /* Generate multiple NOPs. */
- i386_output_nops (where, patt, count, limit);
+ int non_repeat = count % limit;
+ if (non_repeat)
+ {
+ memcpy (where, patt[non_repeat - 1], non_repeat);
+ where += non_repeat;
+ count -= non_repeat;
+ }
+
+ if (fragP->fr_type != rs_machine_dependent)
+ {
+ /* Set up the frag so that everything we have emitted so far is
+ included in fr_fix. The repeating larger nop only needs to
+ be written once to the frag memory. */
+ fragP->fr_fix = where - fragP->fr_literal;
+ if (count != 0)
+ {
+ fragP->fr_var = limit;
+ count = limit;
+ }
+ }
+
+ const unsigned char *nops = patt[limit - 1];
+ while (count)
+ {
+ memcpy (where, nops, limit);
+ where += limit;
+ count -= limit;
+ }
}
static INLINE int
@@ -2124,6 +2118,59 @@ check_Scc_OszcOperations (const char *l)
/* Skip '{'. */
suffix_string++;
+ /* For .insn require 'scc=' as the first element. */
+ if (dot_insn ())
+ {
+ char *copy;
+ valueT val;
+
+ while (is_whitespace (*suffix_string))
+ suffix_string++;
+
+ if (strncasecmp (suffix_string, "scc", 3) == 0)
+ suffix_string += 3;
+ else
+ {
+ as_bad (_("unrecognized pseudo-suffix"));
+ return -1;
+ }
+
+ while (is_whitespace (*suffix_string))
+ suffix_string++;
+
+ if (*suffix_string == '=')
+ suffix_string++;
+ else
+ {
+ as_bad (_("unrecognized pseudo-suffix"));
+ return -1;
+ }
+
+ copy = xstrdup (suffix_string);
+ /* No need to save/restore input_line_pointer; that's done in the
+ caller already. */
+ input_line_pointer = copy;
+ val = get_absolute_expression ();
+ suffix_string += input_line_pointer - copy;
+ free (copy);
+
+ if (val > 0xf)
+ {
+ as_bad (_("scc= value must be between 0 and 15 (decimal)"));
+ return -1;
+ }
+
+ i.scc = val;
+
+ /* Permit dfv= to be absent (implying all flag values being zero). */
+ if (*suffix_string == '}')
+ return suffix_string + 1 - l;
+
+ if (*suffix_string != ',')
+ goto bad;
+ suffix_string++;
+ }
+
/* Parse 'dfv='. */
while (is_whitespace (*suffix_string))
suffix_string++;
@@ -2196,6 +2243,7 @@ check_Scc_OszcOperations (const char *l)
suffix_string ++;
}
+ bad:
as_bad (_("missing `}' or `,' in pseudo-suffix"));
return -1;
}
@@ -2439,8 +2487,8 @@ operand_type_check (i386_operand_type t, enum operand_type c)
return 0;
}
-/* Return 1 if there is no conflict in 8bit/16bit/32bit/64bit/80bit size
- between operand GIVEN and opeand WANTED for instruction template T. */
+/* Return 1 if there is no conflict in 8bit/16bit/32bit/64bit size
+ between operand GIVEN and operand WANTED for instruction template T. */
static INLINE int
match_operand_size (const insn_template *t, unsigned int wanted,
@@ -2460,14 +2508,22 @@ match_operand_size (const insn_template *t, unsigned int wanted,
|| (intel_syntax
&& flag_code != CODE_64BIT
&& (t->operand_types[wanted].bitfield.class == Reg
- || t->operand_types[wanted].bitfield.class == Accum
- || t->opcode_modifier.isstring))))
- || (i.types[given].bitfield.tbyte
- && !t->operand_types[wanted].bitfield.tbyte));
+ || t->opcode_modifier.isstring)))));
+}
+
+/* Return 1 if there is no conflict in 80bit size
+ between operand GIVEN and operand WANTED for instruction template T. */
+
+static INLINE int
+match_fp_size (const insn_template *t, unsigned int wanted,
+ unsigned int given)
+{
+ return !i.types[given].bitfield.tbyte
+ || t->operand_types[wanted].bitfield.tbyte;
}
/* Return 1 if there is no conflict in SIMD register between operand
- GIVEN and opeand WANTED for instruction template T. */
+ GIVEN and operand WANTED for instruction template T. */
static INLINE int
match_simd_size (const insn_template *t, unsigned int wanted,
@@ -2484,13 +2540,15 @@ match_simd_size (const insn_template *t, unsigned int wanted,
}
/* Return 1 if there is no conflict in any size between operand GIVEN
- and opeand WANTED for instruction template T. */
+ and operand WANTED for instruction template T. */
static INLINE int
match_mem_size (const insn_template *t, unsigned int wanted,
unsigned int given)
{
return (match_operand_size (t, wanted, given)
+ && (!i.types[given].bitfield.tbyte
+ || t->operand_types[wanted].bitfield.tbyte)
&& !((i.types[given].bitfield.unspecified
&& !i.broadcast.type
&& !i.broadcast.bytes
@@ -2531,36 +2589,61 @@ operand_size_match (const insn_template *t)
&& t->opcode_modifier.jump != JUMP_ABSOLUTE)
return match;
- /* Check memory and accumulator operand size. */
- for (j = 0; j < i.operands; j++)
- {
- if (i.types[j].bitfield.class != Reg
- && i.types[j].bitfield.class != RegSIMD
- && t->opcode_modifier.operandconstraint == ANY_SIZE)
- continue;
+ for (j = 0; j < i.imm_operands; j++)
+ /* Instruction templates with only sign-extended 8-bit immediate
+ operand also have a second template with full-operand-size
+ immediate operand under a different opcode. Don't match the
+ first template if sign-extended 8-bit immediate operand should
+ be excluded. */
+ if (pp.no_imm8s
+ && !t->operand_types[j].bitfield.imm8
+ && t->operand_types[j].bitfield.imm8s)
+ {
+ gas_assert (!t->opcode_modifier.d);
+ return 0;
+ }
- if (t->operand_types[j].bitfield.class == Reg
+ /* Check memory and accumulator operand size. */
+ for (; j < i.operands; j++)
+ {
+ if (i.types[j].bitfield.class == Reg
+ && (t->operand_types[j].bitfield.class == Reg
+ || (t->operand_types[j].bitfield.instance == Accum
+ && (t->operand_types[j].bitfield.byte
+ || t->operand_types[j].bitfield.word
+ || t->operand_types[j].bitfield.dword
+ || t->operand_types[j].bitfield.qword)))
&& !match_operand_size (t, j, j))
{
match = 0;
break;
}
- if (t->operand_types[j].bitfield.class == RegSIMD
- && !match_simd_size (t, j, j))
+ if (i.types[j].bitfield.class == RegFP
+ && (t->operand_types[j].bitfield.class == RegFP
+ || (t->operand_types[j].bitfield.instance == Accum
+ && t->operand_types[j].bitfield.tbyte))
+ && !match_fp_size (t, j, j))
{
match = 0;
break;
}
- if (t->operand_types[j].bitfield.instance == Accum
- && (!match_operand_size (t, j, j) || !match_simd_size (t, j, j)))
+ if (i.types[j].bitfield.class == RegSIMD
+ && (t->operand_types[j].bitfield.class == RegSIMD
+ || (t->operand_types[j].bitfield.instance == Accum
+ /* Note: %ymm0, %zmm0, and %tmm0 aren't marked Accum. */
+ && t->operand_types[j].bitfield.xmmword))
+ && !match_simd_size (t, j, j))
{
match = 0;
break;
}
- if ((i.flags[j] & Operand_Mem) && !match_mem_size (t, j, j))
+ if ((i.flags[j] & Operand_Mem)
+ && operand_type_check (t->operand_types[j], anymem)
+ && t->opcode_modifier.operandconstraint != ANY_SIZE
+ && !match_mem_size (t, j, j))
{
match = 0;
break;
@@ -2573,7 +2656,7 @@ operand_size_match (const insn_template *t)
/* Check reverse. */
gas_assert (i.operands >= 2);
- for (j = 0; j < i.operands; j++)
+ for (j = i.imm_operands; j < i.operands; j++)
{
unsigned int given = i.operands - j - 1;
@@ -2584,20 +2667,34 @@ operand_size_match (const insn_template *t)
|| is_cpu (t, CpuAPX_F))
given = j < 2 ? 1 - j : j;
- if (t->operand_types[j].bitfield.class == Reg
+ if (i.types[given].bitfield.class == Reg
+ && (t->operand_types[j].bitfield.class == Reg
+ || (t->operand_types[j].bitfield.instance == Accum
+ && (t->operand_types[j].bitfield.byte
+ || t->operand_types[j].bitfield.word
+ || t->operand_types[j].bitfield.dword
+ || t->operand_types[j].bitfield.qword
+ || t->operand_types[j].bitfield.tbyte)))
&& !match_operand_size (t, j, given))
return match;
- if (t->operand_types[j].bitfield.class == RegSIMD
- && !match_simd_size (t, j, given))
+ if (i.types[given].bitfield.class == RegFP
+ && (t->operand_types[j].bitfield.class == RegFP
+ || (t->operand_types[j].bitfield.instance == Accum
+ && t->operand_types[j].bitfield.tbyte))
+ && !match_fp_size (t, j, given))
return match;
- if (t->operand_types[j].bitfield.instance == Accum
- && (!match_operand_size (t, j, given)
- || !match_simd_size (t, j, given)))
+ /* No need to check for Accum here: There are no such templates with D
+ set. */
+ if (i.types[given].bitfield.class == RegSIMD
+ && t->operand_types[j].bitfield.class == RegSIMD
+ && !match_simd_size (t, j, given))
return match;
- if ((i.flags[given] & Operand_Mem) && !match_mem_size (t, j, given))
+ if ((i.flags[given] & Operand_Mem)
+ && operand_type_check (t->operand_types[j], anymem)
+ && !match_mem_size (t, j, given))
return match;
}
@@ -2624,6 +2721,23 @@ operand_type_match (i386_operand_type overlap,
if (operand_type_all_zero (&temp))
goto mismatch;
+ /* When a (register) instance is expected, operand size needs checking
+ to disambiguate. */
+ if (overlap.bitfield.instance != InstanceNone
+ && !overlap.bitfield.byte
+ && !overlap.bitfield.word
+ && !overlap.bitfield.dword
+ && !overlap.bitfield.qword
+ && !overlap.bitfield.tbyte
+ && !overlap.bitfield.xmmword
+ && !overlap.bitfield.ymmword
+ && !overlap.bitfield.zmmword
+ && !overlap.bitfield.tmmword)
+ {
+ gas_assert (overlap.bitfield.class == ClassNone);
+ goto mismatch;
+ }
+
if (given.bitfield.baseindex == overlap.bitfield.baseindex)
return 1;
@@ -2863,7 +2977,7 @@ offset_in_range (offsetT val, int size)
default: abort ();
}
- if ((val & ~mask) != 0 && (-val & ~mask) != 0)
+ if ((val & ~mask) != 0 && (-(addressT) val & ~mask) != 0)
as_warn (_("0x%" PRIx64 " shortened to 0x%" PRIx64),
(uint64_t) val, (uint64_t) (val & mask));
@@ -3022,7 +3136,7 @@ set_intel_syntax (int syntax_flag)
int ask_naked_reg = 0;
SKIP_WHITESPACE ();
- if (!is_end_of_line[(unsigned char) *input_line_pointer])
+ if (!is_end_of_stmt (*input_line_pointer))
{
char *string;
int e = get_symbol_name (&string);
@@ -3077,7 +3191,7 @@ set_check (int what)
SKIP_WHITESPACE ();
- if (!is_end_of_line[(unsigned char) *input_line_pointer])
+ if (!is_end_of_stmt (*input_line_pointer))
{
char *string;
int e = get_symbol_name (&string);
@@ -3186,7 +3300,7 @@ set_cpu_arch (int dummy ATTRIBUTE_UNUSED)
SKIP_WHITESPACE ();
- if (is_end_of_line[(unsigned char) *input_line_pointer])
+ if (is_end_of_stmt (*input_line_pointer))
{
as_bad (_("missing cpu architecture"));
input_line_pointer++;
@@ -3397,7 +3511,7 @@ set_cpu_arch (int dummy ATTRIBUTE_UNUSED)
no_cond_jump_promotion = 0;
if (restore_line_pointer (e) == ','
- && !is_end_of_line[(unsigned char) input_line_pointer[1]])
+ && !is_end_of_stmt (input_line_pointer[1]))
{
++input_line_pointer;
e = get_symbol_name (&s);
@@ -3506,14 +3620,14 @@ md_begin (void)
if (regtab->reg_type.bitfield.instance == Accum)
reg_eax = regtab;
}
- else if (regtab->reg_type.bitfield.tbyte)
- {
- /* There's no point inserting st(<N>) in the hash table, as
- parentheses aren't included in register_chars[] anyway. */
- if (regtab->reg_type.bitfield.instance != Accum)
- continue;
- reg_st0 = regtab;
- }
+ break;
+
+ case RegFP:
+ /* There's no point inserting st(<N>) in the hash table, as
+ parentheses aren't included in register_chars[] anyway. */
+ if (regtab->reg_type.bitfield.instance != Accum)
+ continue;
+ reg_st0 = regtab;
break;
case SReg:
@@ -3579,13 +3693,9 @@ md_begin (void)
#if defined (OBJ_COFF) && defined (TE_PE)
x86_dwarf2_return_column = 32;
#else
- x86_dwarf2_return_column = 16;
+ x86_dwarf2_return_column = REG_RA;
#endif
x86_cie_data_alignment = -8;
-#ifdef OBJ_ELF
- x86_sframe_cfa_sp_reg = REG_SP;
- x86_sframe_cfa_fp_reg = REG_FP;
-#endif
}
else
{
@@ -3611,6 +3721,7 @@ i386_md_end (void)
{
htab_delete (op_hash);
htab_delete (reg_hash);
+ GOT_symbol = NULL;
}
#ifdef DEBUG386
@@ -3647,6 +3758,7 @@ pi (const char *line, i386_insn *x)
pt (x->types[j]);
fprintf (stdout, "\n");
if (x->types[j].bitfield.class == Reg
+ || x->types[j].bitfield.class == RegFP
|| x->types[j].bitfield.class == RegMMX
|| x->types[j].bitfield.class == RegSIMD
|| x->types[j].bitfield.class == RegMask
@@ -3755,7 +3867,7 @@ const type_names[] =
{ { .bitfield = { .class = RegCR } }, "control reg" },
{ { .bitfield = { .class = RegTR } }, "test reg" },
{ { .bitfield = { .class = RegDR } }, "debug reg" },
- { { .bitfield = { .class = Reg, .tbyte = 1 } }, "FReg" },
+ { { .bitfield = { .class = RegFP, .tbyte = 1 } }, "FReg" },
{ { .bitfield = { .instance = Accum, .tbyte = 1 } }, "FAcc" },
{ { .bitfield = { .class = SReg } }, "SReg" },
{ { .bitfield = { .class = RegMMX } }, "rMMX" },
@@ -4366,7 +4478,7 @@ static void
build_evex_prefix (void)
{
unsigned int register_specifier;
- bool w, u;
+ bool w;
rex_byte vrex_used = 0;
/* Check register specifier. */
@@ -4489,12 +4601,10 @@ build_evex_prefix (void)
abort ();
}
- u = i.rounding.type == rc_none || i.tm.opcode_modifier.evex != EVEX256;
-
/* The third byte of the EVEX prefix. */
i.vex.bytes[2] = ((w << 7)
| (register_specifier << 3)
- | (u << 2)
+ | 4 /* Encode the U bit. */
| i.tm.opcode_modifier.opcodeprefix);
/* The fourth byte of the EVEX prefix. */
@@ -4571,7 +4681,7 @@ build_rex2_prefix (void)
| z| L'L | b | `v | aaa |
*/
static bool
-build_apx_evex_prefix (void)
+build_apx_evex_prefix (bool force_nd)
{
/* To mimic behavior for legacy insns, transform use of DATA16 and REX64 into
their embedded-prefix representations. */
@@ -4618,7 +4728,8 @@ build_apx_evex_prefix (void)
/* Encode the NDD bit of the instruction promoted from the legacy
space. ZU shares the same bit with NDD. */
if ((i.vex.register_specifier && i.tm.opcode_space == SPACE_MAP4)
- || i.tm.opcode_modifier.operandconstraint == ZERO_UPPER)
+ || i.tm.opcode_modifier.operandconstraint == ZERO_UPPER
+ || force_nd)
i.vex.bytes[3] |= 0x10;
/* Encode SCC and oszc flags bits. */
@@ -7019,12 +7130,14 @@ i386_assemble (char *line)
swap_operands ();
/* The order of the immediates should be reversed for 2-immediates EXTRQ
- and INSERTQ instructions. Also UWRMSR wants its immediate to be in the
- "canonical" place (first), despite it appearing last (in AT&T syntax, or
- because of the swapping above) in the incoming set of operands. */
+ and INSERTQ instructions. Also OUT, UWRMSR, and WRMSRNS want their
+ immediate to be in the "canonical" place (first), despite it appearing
+ last (in AT&T syntax, or because of the swapping above) in the incoming
+ set of operands. */
if ((i.imm_operands == 2
&& (t->mnem_off == MN_extrq || t->mnem_off == MN_insertq))
- || ((t->mnem_off == MN_uwrmsr || t->mnem_off == MN_wrmsrns)
+ || ((t->mnem_off == MN_out || t->mnem_off == MN_uwrmsr
+ || t->mnem_off == MN_wrmsrns)
&& i.imm_operands && i.operands > i.imm_operands))
swap_2_operands (0, 1);
@@ -7039,11 +7152,8 @@ i386_assemble (char *line)
|| t->mnem_off == MN_rdmsr
|| t->mnem_off == MN_wrmsrns)
{
- for (j = 0; j < i.operands; j++)
- {
- if (operand_type_check(i.types[j], imm))
- i.types[j] = smallest_imm_type (i.op[j].imms->X_add_number);
- }
+ for (j = 0; j < i.imm_operands; j++)
+ i.types[j] = smallest_imm_type (i.op[j].imms->X_add_number);
}
else
optimize_imm ();
@@ -7383,6 +7493,8 @@ i386_assemble (char *line)
/* Update operand types and check extended states. */
for (j = 0; j < i.operands; j++)
{
+ enum operand_class class = i.types[j].bitfield.class;
+
i.types[j] = operand_type_and (i.types[j], i.tm.operand_types[j]);
switch (i.tm.operand_types[j].bitfield.class)
{
@@ -7407,6 +7519,9 @@ i386_assemble (char *line)
else if (i.tm.operand_types[j].bitfield.xmmword)
i.xstate |= xstate_xmm;
break;
+ case ClassNone:
+ i.types[j].bitfield.class = class;
+ break;
}
}
@@ -7460,7 +7575,7 @@ i386_assemble (char *line)
if (is_apx_evex_encoding ())
{
- if (!build_apx_evex_prefix ())
+ if (!build_apx_evex_prefix (false))
return;
}
else if (i.tm.opcode_modifier.vex)
@@ -7709,6 +7824,10 @@ parse_insn (const char *line, char *mnemonic, enum parse_mode mode)
/* {nooptimize} */
pp.no_optimize = true;
break;
+ case Prefix_NoImm8s:
+ /* {noimm8s} */
+ pp.no_imm8s = true;
+ break;
default:
abort ();
}
@@ -8353,7 +8472,7 @@ optimize_disp (const insn_template *t)
&& (!t->opcode_modifier.jump
|| i.jumpabsolute || i.types[0].bitfield.baseindex))
{
- for (op = 0; op < i.operands; ++op)
+ for (op = i.imm_operands; op < i.operands; ++op)
{
const expressionS *exp = i.op[op].disps;
@@ -8694,7 +8813,7 @@ check_VecOperands (const insn_template *t)
unsigned int j;
type.bitfield.baseindex = 1;
- for (j = 0; j < i.operands; ++j)
+ for (j = i.imm_operands; j < i.operands; ++j)
{
if (j != op
&& !operand_type_register_match(i.types[j],
@@ -8710,7 +8829,7 @@ check_VecOperands (const insn_template *t)
else if (t->opcode_modifier.broadcast && i.mem_operands)
{
/* Find memory operand. */
- for (op = 0; op < i.operands; op++)
+ for (op = i.imm_operands; op < i.operands; op++)
if (i.flags[op] & Operand_Mem)
break;
gas_assert (op < i.operands);
@@ -8767,19 +8886,14 @@ check_VecOperands (const insn_template *t)
return 1;
}
- /* Non-EVEX.{LIG,512,256} forms need to have a ZMM or YMM register as at
- least one operand. For YMM register or EVEX256, we will need AVX10.2
- enabled. There's no need to check all operands, though: Either of the
- last two operands will be of the right size in all relevant templates. */
+ /* Non-EVEX.{LIG,512} forms need to have a ZMM or YMM register as at
+ least one operand. There's no need to check all operands, though:
+ Either of the last two operands will be of the right size in all
+ relevant templates. */
if (t->opcode_modifier.evex != EVEXLIG
&& t->opcode_modifier.evex != EVEX512
- && (t->opcode_modifier.evex != EVEX256
- || !cpu_arch_flags.bitfield.cpuavx10_2)
&& !i.types[t->operands - 1].bitfield.zmmword
- && !i.types[t->operands - 2].bitfield.zmmword
- && ((!i.types[t->operands - 1].bitfield.ymmword
- && !i.types[t->operands - 2].bitfield.ymmword)
- || !cpu_arch_flags.bitfield.cpuavx10_2))
+ && !i.types[t->operands - 2].bitfield.zmmword)
{
i.error = operand_size_mismatch;
return 1;
@@ -8824,7 +8938,7 @@ check_VecOperands (const insn_template *t)
const i386_operand_type *type = NULL, *fallback = NULL;
i.memshift = 0;
- for (op = 0; op < i.operands; op++)
+ for (op = i.imm_operands; op < i.operands; op++)
if (i.flags[op] & Operand_Mem)
{
if (t->opcode_modifier.evex == EVEXLIG)
@@ -8866,7 +8980,7 @@ check_VecOperands (const insn_template *t)
i.memshift = -1;
}
- for (op = 0; op < i.operands; op++)
+ for (op = i.imm_operands; op < i.operands; op++)
if (operand_type_check (i.types[op], disp)
&& i.op[op].disps->X_op == O_constant)
{
@@ -8960,7 +9074,7 @@ check_EgprOperands (const insn_template *t)
if (!t->opcode_modifier.noegpr)
return false;
- for (unsigned int op = 0; op < i.operands; op++)
+ for (unsigned int op = i.imm_operands; op < i.operands; op++)
{
if (i.types[op].bitfield.class != Reg)
continue;
@@ -9022,7 +9136,7 @@ check_APX_operands (const insn_template *t)
static bool
check_Rex_required (void)
{
- for (unsigned int op = 0; op < i.operands; op++)
+ for (unsigned int op = i.imm_operands; op < i.operands; op++)
{
if (i.types[op].bitfield.class != Reg)
continue;
@@ -9294,7 +9408,10 @@ match_template (char mnem_suffix)
{
case 1:
if (!operand_type_match (overlap0, i.types[0]))
- continue;
+ {
+ specific_error = progress (i.error);
+ continue;
+ }
/* Allow the ModR/M encoding to be requested by using the {load} or
{store} pseudo prefix on an applicable insn. */
@@ -10332,7 +10449,7 @@ process_suffix (const insn_template *t)
else
need = flag_code == CODE_64BIT ? need_qword : need_word;
- for (op = 0; op < i.operands; op++)
+ for (op = i.imm_operands; op < i.operands; op++)
{
if (i.types[op].bitfield.class != Reg)
continue;
@@ -10664,7 +10781,7 @@ process_operands (void)
unnecessary segment overrides. */
const reg_entry *default_seg = NULL;
- for (unsigned int j = 0; j < i.operands; j++)
+ for (unsigned int j = i.imm_operands; j < i.operands; j++)
if (i.types[j].bitfield.instance != InstanceNone)
i.reg_operands--;
@@ -10727,8 +10844,7 @@ process_operands (void)
and 3 sources. */
for (j = i.operands; j > 0; j--)
copy_operand (j, j - 1);
- i.op[0].regs
- = (const reg_entry *) str_hash_find (reg_hash, "xmm0");
+ i.op[0].regs = str_hash_find (reg_hash, "xmm0");
i.types[0] = regxmm;
i.tm.operand_types[0] = regxmm;
@@ -10970,7 +11086,8 @@ build_modrm_byte (void)
if (i.tm.operand_types[op].bitfield.baseindex)
break;
- if (i.reg_operands + i.mem_operands + (i.tm.extension_opcode != None) == 4)
+ if (i.reg_operands + i.mem_operands + (i.tm.extension_opcode != None)
+ + (i.tm.opcode_modifier.operandconstraint == SCC) == 4)
{
expressionS *exp;
@@ -10982,10 +11099,12 @@ build_modrm_byte (void)
2. 4 operands: 4 register operands or 3 register operands
plus 1 memory operand, with VexXDS.
3. Other equivalent combinations when coming from s_insn(). */
- gas_assert (i.tm.opcode_modifier.vexvvvv
- && i.tm.opcode_modifier.vexw);
- gas_assert (dot_insn ()
- || i.tm.operand_types[dest].bitfield.class == RegSIMD);
+ if (!dot_insn ())
+ {
+ gas_assert (i.tm.opcode_modifier.vexvvvv
+ && i.tm.opcode_modifier.vexw);
+ gas_assert (i.tm.operand_types[dest].bitfield.class == RegSIMD);
+ }
/* Of the first two non-immediate operands the one with the template
not allowing for a memory one is encoded in the immediate operand. */
@@ -11895,7 +12014,7 @@ x86_sframe_cfa_ra_offset (void)
return (offsetT) -8;
}
-/* The abi/arch indentifier for SFrame. */
+/* The abi/arch identifier for SFrame. */
unsigned char
x86_sframe_get_abi_arch (void)
{
@@ -12048,6 +12167,7 @@ add_branch_prefix_frag_p (const struct last_insn *last_insn)
|| is_cpu (&i.tm, CpuPadLock)
|| is_cpu (&i.tm, CpuPadLockRNG2)
|| is_cpu (&i.tm, CpuPadLockPHE2)
+ || is_cpu (&i.tm, CpuPadLockXMODX)
|| !cpu_arch_flags.bitfield.cpui386)
return 0;
@@ -12173,21 +12293,23 @@ output_insn (const struct last_insn *last_insn)
#ifdef OBJ_ELF
if (x86_used_note && now_seg != absolute_section)
{
+ unsigned int feature_2_used = 0;
+
if ((i.xstate & xstate_tmm) == xstate_tmm
|| is_cpu (&i.tm, CpuAMX_TILE))
- x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_TMM;
+ feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_TMM;
if (is_cpu (&i.tm, Cpu8087)
|| is_cpu (&i.tm, Cpu287)
|| is_cpu (&i.tm, Cpu387)
|| is_cpu (&i.tm, Cpu687)
|| is_cpu (&i.tm, CpuFISTTP))
- x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_X87;
+ feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_X87;
if ((i.xstate & xstate_mmx)
|| i.tm.mnem_off == MN_emms
|| i.tm.mnem_off == MN_femms)
- x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_MMX;
+ feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_MMX;
if (i.index_reg)
{
@@ -12210,25 +12332,29 @@ output_insn (const struct last_insn *last_insn)
|| is_cpu (&i.tm, CpuAVX)))
|| is_cpu (&i.tm, CpuWideKL)
|| is_cpu (&i.tm, CpuKL))
- x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_XMM;
+ feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_XMM;
if ((i.xstate & xstate_ymm) == xstate_ymm)
- x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_YMM;
+ feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_YMM;
if ((i.xstate & xstate_zmm) == xstate_zmm)
- x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_ZMM;
+ feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_ZMM;
if (i.mask.reg || (i.xstate & xstate_mask) == xstate_mask)
- x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_MASK;
+ feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_MASK;
if (is_cpu (&i.tm, CpuFXSR))
- x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_FXSR;
+ feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_FXSR;
if (is_cpu (&i.tm, CpuXsave))
- x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_XSAVE;
+ feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_XSAVE;
if (is_cpu (&i.tm, CpuXsaveopt))
- x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT;
+ feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT;
if (is_cpu (&i.tm, CpuXSAVEC))
- x86_feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_XSAVEC;
+ feature_2_used |= GNU_PROPERTY_X86_FEATURE_2_XSAVEC;
+
+ x86_feature_2_used |= feature_2_used;
if (object_64bit
- || x86_feature_2_used
+ || (feature_2_used
+ & (GNU_PROPERTY_X86_FEATURE_2_XMM
+ | GNU_PROPERTY_X86_FEATURE_2_FXSR)) != 0
|| is_cpu (&i.tm, CpuCMOV)
|| is_cpu (&i.tm, CpuSYSCALL)
|| i.tm.mnem_off == MN_cmpxchg8b)
@@ -12256,13 +12382,11 @@ output_insn (const struct last_insn *last_insn)
&& !is_cpu (&i.tm, CpuFMA4)
&& !is_cpu (&i.tm, CpuLWP)
&& !is_cpu (&i.tm, CpuTBM)
- && !(x86_feature_2_used & GNU_PROPERTY_X86_FEATURE_2_TMM))
- || is_cpu (&i.tm, CpuF16C)
- || is_cpu (&i.tm, CpuFMA)
+ && !(feature_2_used & GNU_PROPERTY_X86_FEATURE_2_TMM))
|| is_cpu (&i.tm, CpuLZCNT)
|| is_cpu (&i.tm, CpuMovbe)
|| is_cpu (&i.tm, CpuXSAVES)
- || (x86_feature_2_used
+ || (feature_2_used
& (GNU_PROPERTY_X86_FEATURE_2_XSAVE
| GNU_PROPERTY_X86_FEATURE_2_XSAVEOPT
| GNU_PROPERTY_X86_FEATURE_2_XSAVEC)) != 0)
@@ -12424,7 +12548,8 @@ output_insn (const struct last_insn *last_insn)
case PREFIX_0XF3:
if ((!is_cpu (&i.tm, CpuPadLock)
&& !is_cpu (&i.tm, CpuPadLockRNG2)
- && !is_cpu (&i.tm, CpuPadLockPHE2))
+ && !is_cpu (&i.tm, CpuPadLockPHE2)
+ && !is_cpu (&i.tm, CpuPadLockXMODX))
|| (i.prefix[REP_PREFIX] != 0xf3))
add_prefix (0xf3);
break;
@@ -12866,9 +12991,10 @@ output_disp (fragS *insn_start_frag, offsetT insn_start_off)
else if (object_64bit)
continue;
- /* Check for "call/jmp *mem", "mov mem, %reg", "movrs mem, %reg",
- "test %reg, mem" and "binop mem, %reg" where binop
- is one of adc, add, and, cmp, or, sbb, sub, xor
+#ifdef OBJ_ELF
+ /* Check for "call/jmp *mem", "push mem", "mov mem, %reg",
+ "movrs mem, %reg", "test %reg, mem" and "binop mem, %reg" where
+ binop is one of adc, add, and, cmp, or, sbb, sub, xor, or imul
instructions without data prefix. Always generate
R_386_GOT32X for "sym*GOT" operand in 32-bit mode. */
unsigned int space = dot_insn () ? i.insn_opcode_space
@@ -12877,20 +13003,23 @@ output_disp (fragS *insn_start_frag, offsetT insn_start_off)
&& (i.rm.mode == 2
|| (i.rm.mode == 0 && i.rm.regmem == 5))
&& ((space == SPACE_BASE
- && i.operands == 1
&& i.tm.base_opcode == 0xff
- && (i.rm.reg == 2 || i.rm.reg == 4))
+ && (i.rm.reg == 2 || i.rm.reg == 4 || i.rm.reg == 6))
|| ((space == SPACE_BASE
|| space == SPACE_0F38
|| space == SPACE_MAP4)
- && i.operands == 2
&& i.tm.base_opcode == 0x8b)
|| ((space == SPACE_BASE
|| space == SPACE_MAP4)
- && i.operands >= 2
&& (i.tm.base_opcode == 0x85
|| (i.tm.base_opcode
- | (i.operands > 2 ? 0x3a : 0x38)) == 0x3b))))
+ | (i.operands > 2 ? 0x3a : 0x38)) == 0x3b))
+ || (((space == SPACE_0F
+ /* Because of the 0F prefix, no suitable relocation
+ exists for this unless it's REX2-encoded. */
+ && is_apx_rex2_encoding ())
+ || space == SPACE_MAP4)
+ && i.tm.base_opcode == 0xaf)))
{
if (object_64bit)
{
@@ -12925,9 +13054,11 @@ output_disp (fragS *insn_start_frag, offsetT insn_start_off)
}
}
else if (generate_relax_relocations
- || (i.rm.mode == 0 && i.rm.regmem == 5))
+ ? (!shared || i.rm.mode != 0 || i.rm.regmem != 5)
+ : (!shared && i.rm.mode == 0 && i.rm.regmem == 5))
fixP->fx_tcbit2 = 1;
}
+#endif
}
}
}
@@ -13105,7 +13236,7 @@ lex_got (enum bfd_reloc_code_real *rel,
unsigned int j;
for (cp = input_line_pointer; *cp != '@'; cp++)
- if (is_end_of_line[(unsigned char) *cp] || *cp == ',')
+ if (is_end_of_stmt (*cp) || *cp == ',')
return NULL;
for (j = 0; j < ARRAY_SIZE (gotrel); j++)
@@ -13142,7 +13273,7 @@ lex_got (enum bfd_reloc_code_real *rel,
(and including) an end_of_line char or comma. */
past_reloc = cp + 1 + len;
cp = past_reloc;
- while (!is_end_of_line[(unsigned char) *cp] && *cp != ',')
+ while (!is_end_of_stmt (*cp) && *cp != ',')
++cp;
second = cp + 1 - past_reloc;
@@ -13271,7 +13402,8 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
const char *end;
unsigned int j;
valueT val;
- bool vex = false, xop = false, evex = false;
+ bool vex = false, xop = false;
+ enum { evex_none, evex_basic, evex_nd } evex = evex_none;
struct last_insn *last_insn;
init_globals ();
@@ -13320,7 +13452,7 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
else if (startswith (line, "EVEX")
&& (line[4] == '.' || is_whitespace (line[4])))
{
- evex = true;
+ evex = evex_basic;
line += 4;
}
@@ -13539,6 +13671,20 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
line += 3;
}
+ if (line > end && evex && *line == '.')
+ {
+ if (line[1] == 'N' && line[2] == 'D')
+ {
+ evex = evex_nd;
+ line += 3;
+ }
+ else if (line[1] == 'Z' && line[2] == 'U')
+ {
+ i.tm.opcode_modifier.operandconstraint = ZERO_UPPER;
+ line += 3;
+ }
+ }
+
if (line > end && *line && !is_whitespace (*line))
{
/* Improve diagnostic a little. */
@@ -13608,6 +13754,25 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
}
}
+ if (evex == evex_basic && *line == '{')
+ {
+ int length = check_Scc_OszcOperations (line);
+
+ if (length > 0)
+ {
+ line += length;
+ if (is_whitespace (*line))
+ ++line;
+
+ if (i.tm.opcode_modifier.operandconstraint)
+ {
+ as_bad (_("SCC/OSZC specifier cannot be used here"));
+ goto bad;
+ }
+ i.tm.opcode_modifier.operandconstraint = SCC;
+ }
+ }
+
/* Parse operands, if any, before evaluating encoding space. */
if (*line == ',')
{
@@ -13709,7 +13874,8 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
/* Enforce certain constraints on operands. */
switch (i.reg_operands + i.mem_operands
- + (i.tm.extension_opcode != None))
+ + (i.tm.extension_opcode != None)
+ + (i.tm.opcode_modifier.operandconstraint == SCC))
{
case 0:
if (i.short_form)
@@ -13724,9 +13890,13 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
as_bad (_("too few register/memory operands"));
goto done;
}
- break;
-
+ /* Fall through. */
case 2:
+ if (evex == evex_nd)
+ {
+ as_bad (_("too few register/memory operands"));
+ goto done;
+ }
break;
case 4:
@@ -13739,9 +13909,12 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
}
/* Fall through. */
case 3:
+ if (i.tm.opcode_modifier.operandconstraint == SCC)
+ break;
if (pp.encoding != encoding_default)
{
- i.tm.opcode_modifier.vexvvvv = i.tm.extension_opcode == None
+ i.tm.opcode_modifier.vexvvvv = (i.tm.extension_opcode == None
+ && evex != evex_nd)
? VexVVVV_SRC1 : VexVVVV_DST;
break;
}
@@ -13918,7 +14091,7 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
{
if (!i.tm.opcode_modifier.evex)
{
- /* Do _not_ consider AVX512VL / AVX10.2 here. */
+ /* Do _not_ consider AVX512VL here. */
if (combined.bitfield.zmmword)
i.tm.opcode_modifier.evex = EVEX512;
else if (combined.bitfield.ymmword)
@@ -14039,6 +14212,13 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
if (vex || xop)
{
+ if (is_apx_evex_encoding ())
+ {
+ as_bad (_("APX functionality cannot be used with %s encodings"),
+ vex ? "VEX" : "XOP");
+ goto done;
+ }
+
if (!i.tm.opcode_modifier.vex)
i.tm.opcode_modifier.vex = VEXScalar; /* LIG */
@@ -14050,7 +14230,36 @@ s_insn (int dummy ATTRIBUTE_UNUSED)
if (!i.tm.opcode_modifier.evex)
i.tm.opcode_modifier.evex = EVEXLIG;
- build_evex_prefix ();
+ /* To keep earlier .insn uses working as far as possible, take the
+ legacy path when opcode space is 4 bits wide (impossible to encode in
+ extended EVEX), and when no "extended" syntax elements are used. */
+ if ((!is_apx_evex_encoding () || i.insn_opcode_space > 7)
+ && evex == evex_basic
+ && !i.tm.opcode_modifier.operandconstraint)
+ build_evex_prefix ();
+ else if (i.insn_opcode_space > 7)
+ {
+ as_bad (_("opcode space cannot be larger than 7"));
+ goto done;
+ }
+ else if (evex == evex_nd && (i.broadcast.type || i.broadcast.bytes))
+ {
+ as_bad (_("ND and broadcast cannot be used at the same time"));
+ goto done;
+ }
+ else if (pp.has_nf && i.mask.reg)
+ {
+ as_bad (_("{nf} and masking cannot be used at the same time"));
+ goto done;
+ }
+ else if (i.tm.opcode_modifier.operandconstraint == SCC
+ && (pp.has_nf || i.mask.reg))
+ {
+ as_bad (_("SCC cannot be used at the same time {nf} / masking"));
+ goto done;
+ }
+ else if (!build_apx_evex_prefix (evex == evex_nd))
+ goto done;
i.rex &= REX_OPCODE;
}
else
@@ -14902,9 +15111,8 @@ i386_index_check (const char *operand_string)
|| ((!i.mem_operands != !intel_syntax)
&& t->operand_types[1].bitfield.baseindex))
op = 1;
- expected_reg
- = (const reg_entry *) str_hash_find (reg_hash,
- di_si[addr_mode][op == es_op]);
+ expected_reg = str_hash_find (reg_hash,
+ di_si[addr_mode][op == es_op]);
}
else
{
@@ -16626,7 +16834,7 @@ parse_real_register (const char *reg_string, char **end_op)
*end_op = (char *) s;
- r = (const reg_entry *) str_hash_find (reg_hash, reg_name_given);
+ r = str_hash_find (reg_hash, reg_name_given);
/* Handle floating point regs, allowing spaces in the (i) part. */
if (r == reg_st0)
@@ -16699,8 +16907,7 @@ parse_register (const char *reg_string, char **end_op)
if (e->X_op == O_register)
{
- know (e->X_add_number >= 0
- && (valueT) e->X_add_number < i386_regtab_size);
+ know ((valueT) e->X_add_number < i386_regtab_size);
r = i386_regtab + e->X_add_number;
*end_op = (char *) reg_string + (input_line_pointer - buf);
}
@@ -17884,6 +18091,7 @@ i386_target_format (void)
#endif /* ELF / PE / MACH_O */
+#ifdef OBJ_ELF
symbolS *
md_undefined_symbol (char *name)
{
@@ -17901,8 +18109,9 @@ md_undefined_symbol (char *name)
};
return GOT_symbol;
}
- return 0;
+ return NULL;
}
+#endif
#ifdef OBJ_AOUT
/* Round up a section size to the appropriate boundary. */
diff --git a/gas/config/tc-i386.h b/gas/config/tc-i386.h
index 7cef121..641596d 100644
--- a/gas/config/tc-i386.h
+++ b/gas/config/tc-i386.h
@@ -144,6 +144,7 @@ int i386_validate_fix (struct fix *);
extern int tc_i386_fix_adjustable (struct fix *);
#else
#define tc_fix_adjustable(X) ((void)(X), 1)
+#define md_undefined_symbol(N) ((void)(N), NULL)
#endif
/* Values passed to md_apply_fix don't include the symbol value. */
@@ -229,9 +230,6 @@ if ((n) \
goto around; \
}
-#define MAX_MEM_FOR_RS_ALIGN_CODE \
- (alignment ? ((size_t) 1 << alignment) - 1 : (size_t) 1)
-
extern void i386_cons_align (int);
#define md_cons_align(nbytes) i386_cons_align (nbytes)
@@ -378,17 +376,43 @@ extern void i386_generate_nops (fragS *, char *, offsetT, int);
#define md_generate_nops(frag, where, amount, control) \
i386_generate_nops ((frag), (where), (amount), (control))
-#define HANDLE_ALIGN(sec, fragP) \
+#define HANDLE_ALIGN(sec, fragP) \
if (fragP->fr_type == rs_align_code) \
{ \
offsetT __count = (fragP->fr_next->fr_address \
- fragP->fr_address \
- fragP->fr_fix); \
- if (__count > 0 \
- && (unsigned int) __count <= fragP->tc_frag_data.max_bytes) \
- md_generate_nops (fragP, fragP->fr_literal + fragP->fr_fix, \
- __count, 0); \
+ if (__count > 0) \
+ { \
+ know (fragP->tc_frag_data.max_bytes >= (valueT) __count \
+ || (fragP->tc_frag_data.max_bytes \
+ >= MAX_MEM_FOR_RS_ALIGN_CODE (fragP->fr_offset, \
+ fragP->fr_subtype))); \
+ md_generate_nops (fragP, fragP->fr_literal + fragP->fr_fix, \
+ __count, 0); \
+ } \
}
+/* Possible plain nop, branch, twice largest nop less 1.
+ Yes, the branch might be one byte longer in CODE_16BIT but then the
+ largest nop is smaller. */
+#define MAX_MEM_FOR_RS_SPACE_NOP (1 + 5 + 2 * 15 - 1)
+
+static inline unsigned int
+max_mem_for_rs_align_code (unsigned int p2align, unsigned int max)
+{
+ unsigned int bytes = 1;
+ if (p2align != 0)
+ {
+ bytes = MAX_MEM_FOR_RS_SPACE_NOP;
+ if (bytes > (1ull << p2align) - 1)
+ bytes = (1ull << p2align) - 1;
+ if (max != 0 && bytes > max)
+ bytes = max;
+ }
+ return bytes;
+}
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) \
+ max_mem_for_rs_align_code (p2align, max)
/* We want .cfi_* pseudo-ops for generating unwind info. */
#define TARGET_USE_CFIPOP 1
@@ -412,6 +436,9 @@ extern void tc_x86_frame_initial_instructions (void);
#define REG_FP 6
/* DWARF register number of the stack-pointer register in 64-bit mode. */
#define REG_SP 7
+/* DWARF register number of the (pseudo) return address register in 64-bit
+ mode. This is the same as reg RIP in i386-reg.tbl. */
+#define REG_RA 16
#define md_elf_section_type(str,len) i386_elf_section_type (str, len)
extern int i386_elf_section_type (const char *, size_t);
@@ -454,13 +481,19 @@ extern bool x86_support_sframe_p (void);
#define support_sframe_p x86_support_sframe_p
/* The stack pointer DWARF register number for SFrame CFA tracking. */
-extern unsigned int x86_sframe_cfa_sp_reg;
+extern const unsigned int x86_sframe_cfa_sp_reg;
#define SFRAME_CFA_SP_REG x86_sframe_cfa_sp_reg
/* The frame pointer DWARF register number for SFrame CFA and FP tracking. */
-extern unsigned int x86_sframe_cfa_fp_reg;
+extern const unsigned int x86_sframe_cfa_fp_reg;
#define SFRAME_CFA_FP_REG x86_sframe_cfa_fp_reg
+/* The return address DWARF register number for SFrame purposes. Although for
+ AMD64, RA tracking is disabled, specific constructs, like for indicating
+ the _start function, may use it. */
+extern const unsigned int x86_sframe_cfa_ra_reg;
+#define SFRAME_CFA_RA_REG x86_sframe_cfa_ra_reg
+
/* Whether SFrame return address tracking is needed. */
extern bool x86_sframe_ra_tracking_p (void);
#define sframe_ra_tracking_p x86_sframe_ra_tracking_p
@@ -470,7 +503,7 @@ extern bool x86_sframe_ra_tracking_p (void);
extern offsetT x86_sframe_cfa_ra_offset (void);
#define sframe_cfa_ra_offset x86_sframe_cfa_ra_offset
-/* The abi/arch indentifier for SFrame. */
+/* The abi/arch identifier for SFrame. */
extern unsigned char x86_sframe_get_abi_arch (void);
#define sframe_get_abi_arch x86_sframe_get_abi_arch
diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
index b508232..192c093 100644
--- a/gas/config/tc-ia64.c
+++ b/gas/config/tc-ia64.c
@@ -4476,13 +4476,14 @@ dot_endp (int dummy ATTRIBUTE_UNUSED)
S_SET_SIZE (sym, frag_now_fix () - S_GET_VALUE (sym));
else
{
- symbol_get_obj (sym)->size = XNEW (expressionS);
- symbol_get_obj (sym)->size->X_op = O_subtract;
- symbol_get_obj (sym)->size->X_add_symbol
+ OBJ_SYMFIELD_TYPE *obj = symbol_get_obj (sym);
+ obj->size = notes_alloc (sizeof (*obj->size));
+ obj->size->X_op = O_subtract;
+ obj->size->X_add_symbol
= symbol_new (FAKE_LABEL_NAME, now_seg,
frag_now, frag_now_fix ());
- symbol_get_obj (sym)->size->X_op_symbol = sym;
- symbol_get_obj (sym)->size->X_add_number = 0;
+ obj->size->X_op_symbol = sym;
+ obj->size->X_add_number = 0;
}
}
}
@@ -10645,7 +10646,7 @@ md_assemble (char *str)
ch = get_symbol_name (&temp);
mnemonic = temp;
- pdesc = (struct pseudo_opcode *) str_hash_find (md.pseudo_hash, mnemonic);
+ pdesc = str_hash_find (md.pseudo_hash, mnemonic);
if (pdesc)
{
(void) restore_line_pointer (ch);
@@ -11778,7 +11779,7 @@ dot_alias (int section)
/* Check if alias has been used before. */
- h = (struct alias *) str_hash_find (ahash, alias);
+ h = str_hash_find (ahash, alias);
if (h)
{
if (strcmp (h->name, name))
@@ -11789,7 +11790,7 @@ dot_alias (int section)
}
/* Check if name already has an alias. */
- a = (const char *) str_hash_find (nhash, name);
+ a = str_hash_find (nhash, name);
if (a)
{
if (strcmp (a, alias))
diff --git a/gas/config/tc-ia64.h b/gas/config/tc-ia64.h
index 0f9810d..62d288d 100644
--- a/gas/config/tc-ia64.h
+++ b/gas/config/tc-ia64.h
@@ -176,7 +176,7 @@ void ia64_vms_note (void);
as_bad_where ((FRAGP)->fr_file, (FRAGP)->fr_line, \
_("instruction address is not a multiple of 16"));
-#define MAX_MEM_FOR_RS_ALIGN_CODE (15 + 16)
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (15 + 16)
#define WORKING_DOT_WORD /* don't do broken word processing for now */
diff --git a/gas/config/tc-iq2000.c b/gas/config/tc-iq2000.c
index c65f264..1957235 100644
--- a/gas/config/tc-iq2000.c
+++ b/gas/config/tc-iq2000.c
@@ -682,7 +682,7 @@ s_iq2000_set (int x ATTRIBUTE_UNUSED)
char *name = input_line_pointer, ch;
char *save_ILP = input_line_pointer;
- while (!is_end_of_line[(unsigned char) *input_line_pointer])
+ while (!is_end_of_stmt (*input_line_pointer))
input_line_pointer++;
ch = *input_line_pointer;
*input_line_pointer = '\0';
@@ -803,7 +803,7 @@ s_iq2000_end (int x ATTRIBUTE_UNUSED)
symbolS *p;
int maybe_text;
- if (!is_end_of_line[(unsigned char) *input_line_pointer])
+ if (!is_end_of_stmt (*input_line_pointer))
{
p = get_symbol ();
demand_empty_rest_of_line ();
diff --git a/gas/config/tc-kvx.c b/gas/config/tc-kvx.c
index 942b1ab..5582650 100644
--- a/gas/config/tc-kvx.c
+++ b/gas/config/tc-kvx.c
@@ -509,7 +509,7 @@ insert_operand (struct kvxinsn *insn, struct kvx_operand *opdef,
{
char *ilp_save = input_line_pointer;
input_line_pointer = tok->tok;
- expressionS exp = { 0 };
+ expressionS exp;
expression (&exp);
input_line_pointer = ilp_save;
@@ -2355,16 +2355,11 @@ kvx_endp (int start ATTRIBUTE_UNUSED)
if (exp.X_op == O_constant)
{
S_SET_SIZE (last_proc_sym, exp.X_add_number);
- if (symbol_get_obj (last_proc_sym)->size)
- {
- xfree (symbol_get_obj (last_proc_sym)->size);
- symbol_get_obj (last_proc_sym)->size = NULL;
- }
+ symbol_get_obj (last_proc_sym)->size = NULL;
}
else
{
- symbol_get_obj (last_proc_sym)->size =
- (expressionS *) xmalloc (sizeof (expressionS));
+ symbol_get_obj (last_proc_sym)->size = notes_alloc (sizeof (exp));
*symbol_get_obj (last_proc_sym)->size = exp;
}
@@ -2518,20 +2513,18 @@ kvx_force_reloc_sub_same (fixS * fixP, segT sec)
return 1;
}
-/* Implement HANDLE_ALIGN. */
+/* Pads code section with bundle of nops when possible, 0 if not. */
-static void
-kvx_make_nops (char *buf, bfd_vma bytes)
+void
+kvx_handle_align (fragS *fragP)
{
- bfd_vma i = 0;
- unsigned int j;
+ if (fragP->fr_type != rs_align_code)
+ return;
static unsigned int nop_single = 0;
-
if (!nop_single)
{
- const struct kvxopc *opcode =
- (struct kvxopc *) str_hash_find (env.opcode_hash, "nop");
+ const struct kvxopc *opcode = str_hash_find (env.opcode_hash, "nop");
if (opcode == NULL)
as_fatal
@@ -2540,52 +2533,49 @@ kvx_make_nops (char *buf, bfd_vma bytes)
nop_single = opcode->codewords[0].opcode;
}
- /* KVX instructions are always 4-bytes aligned. If we are at a position */
- /* that is not 4 bytes aligned, it means this is not part of an instruction, */
- /* so it is safe to use a zero byte for padding. */
+ bfd_signed_vma bytes = (fragP->fr_next->fr_address
+ - fragP->fr_address - fragP->fr_fix);
+ if (bytes <= 0)
+ return;
- for (j = bytes % 4; j > 0; j--)
- buf[i++] = 0;
+ char *p = fragP->fr_literal + fragP->fr_fix;
- for (j = 0; j < (bytes - i); j += 4)
+ /* KVX instructions are always 4-bytes aligned. If we are at a
+ position that is not 4 bytes aligned, it means this is not part
+ of an instruction, so it is safe to use a zero byte for padding. */
+ int fix = bytes & 3;
+ if (fix != 0)
{
- unsigned nop = nop_single;
-
- // nop has bundle end only if #4 nop or last padding nop.
- // Sets the parallel bit when neither conditions are matched.
- // 4*4 = biggest nop bundle we can get
- // 12 = offset when writting the last nop possible in a 4 nops bundle
- // bytes-i-4 = offset for the last 4-words in the padding
- if (j % (4 * 4) != 12 && j != (bytes - i - 4))
- nop |= PARALLEL_BIT;
-
- memcpy (buf + i + j, &nop, sizeof (nop));
+ memset (p, 0, fix);
+ p += fix;
+ bytes -= fix;
}
-}
-/* Pads code section with bundle of nops when possible, 0 if not. */
-void
-kvx_handle_align (fragS *fragP)
-{
- switch (fragP->fr_type)
+ /* Output any nops that don't make a full bundle. */
+ while (bytes & 15)
{
- case rs_align_code:
- {
- bfd_signed_vma bytes = (fragP->fr_next->fr_address
- - fragP->fr_address - fragP->fr_fix);
- char *p = fragP->fr_literal + fragP->fr_fix;
-
- if (bytes <= 0)
- break;
-
- /* Insert zeros or nops to get 4 byte alignment. */
- kvx_make_nops (p, bytes);
- fragP->fr_fix += bytes;
- }
- break;
+ unsigned int nop = nop_single;
+ bytes -= 4;
+ if (bytes & 15)
+ nop |= PARALLEL_BIT;
+ memcpy (p, &nop, 4);
+ p += 4;
+ fix += 4;
+ }
+ fragP->fr_fix += fix;
- default:
- break;
+ /* Any more are repeated copies of this full bundle of nops. */
+ if (bytes)
+ {
+ unsigned int nop = nop_single | PARALLEL_BIT;
+ memcpy (p, &nop, 4);
+ p += 4;
+ memcpy (p, &nop, 4);
+ p += 4;
+ memcpy (p, &nop, 4);
+ p += 4;
+ memcpy (p, &nop_single, 4);
+ fragP->fr_var = 16;
}
}
/*
diff --git a/gas/config/tc-kvx.h b/gas/config/tc-kvx.h
index a4d0e2d..50c124f 100644
--- a/gas/config/tc-kvx.h
+++ b/gas/config/tc-kvx.h
@@ -297,6 +297,7 @@ extern void kvx_cons_fix_new (fragS *f, int where, int nbytes,
/* Enable special handling for the alignment directive. */
extern void kvx_handle_align (fragS *);
#define HANDLE_ALIGN(s, f) kvx_handle_align (f)
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (3 + 12 + 16)
#ifdef OBJ_ELF
diff --git a/gas/config/tc-loongarch.c b/gas/config/tc-loongarch.c
index bfc8836..06fb601 100644
--- a/gas/config/tc-loongarch.c
+++ b/gas/config/tc-loongarch.c
@@ -320,115 +320,98 @@ loongarch_after_parse_args ()
/* Init ilp32/lp64 registers names. */
if (!r_htab)
- r_htab = str_htab_create (), str_hash_insert (r_htab, "", 0, 0);
+ r_htab = str_htab_create ();
if (!r_deprecated_htab)
- r_deprecated_htab = str_htab_create (),
- str_hash_insert (r_deprecated_htab, "", 0, 0);
+ r_deprecated_htab = str_htab_create ();
/* Init cfi registers alias. */
if (!cfi_r_htab)
- cfi_r_htab = str_htab_create (), str_hash_insert (cfi_r_htab, "", 0, 0);
+ cfi_r_htab = str_htab_create ();
r_abi_names = loongarch_r_normal_name;
for (i = 0; i < ARRAY_SIZE (loongarch_r_normal_name); i++)
{
- str_hash_insert (r_htab, loongarch_r_normal_name[i],
- (void *) (i + 1), 0);
- str_hash_insert (cfi_r_htab, loongarch_r_normal_name[i],
- (void *) (i + 1), 0);
+ str_hash_insert_int (r_htab, loongarch_r_normal_name[i], i, 0);
+ str_hash_insert_int (cfi_r_htab, loongarch_r_normal_name[i], i, 0);
}
/* Init ilp32/lp64 registers alias. */
r_abi_names = loongarch_r_alias;
for (i = 0; i < ARRAY_SIZE (loongarch_r_alias); i++)
{
- str_hash_insert (r_htab, loongarch_r_alias[i],
- (void *) (i + 1), 0);
- str_hash_insert (cfi_r_htab, loongarch_r_alias[i],
- (void *) (i + 1), 0);
+ str_hash_insert_int (r_htab, loongarch_r_alias[i], i, 0);
+ str_hash_insert_int (cfi_r_htab, loongarch_r_alias[i], i, 0);
}
for (i = 0; i < ARRAY_SIZE (loongarch_r_alias_1); i++)
- str_hash_insert (r_htab, loongarch_r_alias_1[i], (void *) (i + 1), 0);
+ str_hash_insert_int (r_htab, loongarch_r_alias_1[i], i, 0);
for (i = 0; i < ARRAY_SIZE (loongarch_r_alias_deprecated); i++)
- str_hash_insert (r_deprecated_htab, loongarch_r_alias_deprecated[i],
- (void *) (i + 1), 0);
+ str_hash_insert_int (r_deprecated_htab, loongarch_r_alias_deprecated[i],
+ i, 0);
/* The .cfi directive supports register aliases without the "$" prefix. */
for (i = 0; i < ARRAY_SIZE (loongarch_r_cfi_name); i++)
{
- str_hash_insert (cfi_r_htab, loongarch_r_cfi_name[i],
- (void *)(i + 1), 0);
- str_hash_insert (cfi_r_htab, loongarch_r_cfi_name_alias[i],
- (void *)(i + 1), 0);
+ str_hash_insert_int (cfi_r_htab, loongarch_r_cfi_name[i], i, 0);
+ str_hash_insert_int (cfi_r_htab, loongarch_r_cfi_name_alias[i], i, 0);
}
if (!cr_htab)
- cr_htab = str_htab_create (), str_hash_insert (cr_htab, "", 0, 0);
+ cr_htab = str_htab_create ();
for (i = 0; i < ARRAY_SIZE (loongarch_cr_normal_name); i++)
- str_hash_insert (cr_htab, loongarch_cr_normal_name[i], (void *) (i + 1), 0);
+ str_hash_insert_int (cr_htab, loongarch_cr_normal_name[i], i, 0);
/* Init single/double float registers names. */
if (LARCH_opts.ase_sf || LARCH_opts.ase_df)
{
if (!f_htab)
- f_htab = str_htab_create (), str_hash_insert (f_htab, "", 0, 0);
+ f_htab = str_htab_create ();
if (!f_deprecated_htab)
- f_deprecated_htab = str_htab_create (),
- str_hash_insert (f_deprecated_htab, "", 0, 0);
+ f_deprecated_htab = str_htab_create ();
if (!cfi_f_htab)
- cfi_f_htab = str_htab_create (), str_hash_insert (cfi_f_htab, "", 0, 0);
+ cfi_f_htab = str_htab_create ();
f_abi_names = loongarch_f_normal_name;
for (i = 0; i < ARRAY_SIZE (loongarch_f_normal_name); i++)
{
- str_hash_insert (f_htab, loongarch_f_normal_name[i],
- (void *) (i + 1), 0);
- str_hash_insert (cfi_f_htab, loongarch_f_normal_name[i],
- (void *) (i + 1), 0);
+ str_hash_insert_int (f_htab, loongarch_f_normal_name[i], i, 0);
+ str_hash_insert_int (cfi_f_htab, loongarch_f_normal_name[i], i, 0);
}
/* Init float-ilp32/lp64 registers alias. */
f_abi_names = loongarch_f_alias;
for (i = 0; i < ARRAY_SIZE (loongarch_f_alias); i++)
{
- str_hash_insert (f_htab, loongarch_f_alias[i],
- (void *) (i + 1), 0);
- str_hash_insert (cfi_f_htab, loongarch_f_alias[i],
- (void *) (i + 1), 0);
+ str_hash_insert_int (f_htab, loongarch_f_alias[i], i, 0);
+ str_hash_insert_int (cfi_f_htab, loongarch_f_alias[i], i, 0);
}
for (i = 0; i < ARRAY_SIZE (loongarch_f_alias_deprecated); i++)
- str_hash_insert (f_deprecated_htab, loongarch_f_alias_deprecated[i],
- (void *) (i + 1), 0);
+ str_hash_insert_int (f_deprecated_htab, loongarch_f_alias_deprecated[i],
+ i, 0);
/* The .cfi directive supports register aliases without the "$" prefix. */
for (i = 0; i < ARRAY_SIZE (loongarch_f_cfi_name); i++)
{
- str_hash_insert (cfi_f_htab, loongarch_f_cfi_name[i],
- (void *)(i + 1), 0);
- str_hash_insert (cfi_f_htab, loongarch_f_cfi_name_alias[i],
- (void *)(i + 1), 0);
+ str_hash_insert_int (cfi_f_htab, loongarch_f_cfi_name[i], i, 0);
+ str_hash_insert_int (cfi_f_htab, loongarch_f_cfi_name_alias[i], i, 0);
}
if (!fc_htab)
- fc_htab = str_htab_create (), str_hash_insert (fc_htab, "", 0, 0);
+ fc_htab = str_htab_create ();
for (i = 0; i < ARRAY_SIZE (loongarch_fc_normal_name); i++)
- str_hash_insert (fc_htab, loongarch_fc_normal_name[i], (void *) (i + 1),
- 0);
+ str_hash_insert_int (fc_htab, loongarch_fc_normal_name[i], i, 0);
if (!fcn_htab)
- fcn_htab = str_htab_create (), str_hash_insert (fcn_htab, "", 0, 0);
+ fcn_htab = str_htab_create ();
for (i = 0; i < ARRAY_SIZE (loongarch_fc_numeric_name); i++)
- str_hash_insert (fcn_htab, loongarch_fc_numeric_name[i], (void *) (i + 1),
- 0);
+ str_hash_insert_int (fcn_htab, loongarch_fc_numeric_name[i], i, 0);
if (!c_htab)
- c_htab = str_htab_create (), str_hash_insert (c_htab, "", 0, 0);
+ c_htab = str_htab_create ();
for (i = 0; i < ARRAY_SIZE (loongarch_c_normal_name); i++)
- str_hash_insert (c_htab, loongarch_c_normal_name[i], (void *) (i + 1),
- 0);
+ str_hash_insert_int (c_htab, loongarch_c_normal_name[i], i, 0);
}
@@ -436,20 +419,18 @@ loongarch_after_parse_args ()
if (LARCH_opts.ase_lsx)
{
if (!v_htab)
- v_htab = str_htab_create (), str_hash_insert (v_htab, "", 0, 0);
+ v_htab = str_htab_create ();
for (i = 0; i < ARRAY_SIZE (loongarch_v_normal_name); i++)
- str_hash_insert (v_htab, loongarch_v_normal_name[i], (void *) (i + 1),
- 0);
+ str_hash_insert_int (v_htab, loongarch_v_normal_name[i], i, 0);
}
/* Init lasx registers names. */
if (LARCH_opts.ase_lasx)
{
if (!x_htab)
- x_htab = str_htab_create (), str_hash_insert (x_htab, "", 0, 0);
+ x_htab = str_htab_create ();
for (i = 0; i < ARRAY_SIZE (loongarch_x_normal_name); i++)
- str_hash_insert (x_htab, loongarch_x_normal_name[i], (void *) (i + 1),
- 0);
+ str_hash_insert_int (x_htab, loongarch_x_normal_name[i], i, 0);
}
}
@@ -600,7 +581,7 @@ static void
s_loongarch_option (int x ATTRIBUTE_UNUSED)
{
char *name = input_line_pointer, ch;
- while (!is_end_of_line[(unsigned char) *input_line_pointer])
+ while (!is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
ch = *input_line_pointer;
*input_line_pointer = '\0';
@@ -934,15 +915,15 @@ loongarch_args_parser_can_match_arg_helper (char esc_ch1, char esc_ch2,
}
break;
case 'r':
- imm = (intptr_t) str_hash_find (r_htab, arg);
- ip->match_now = 0 < imm;
- ret = imm - 1;
+ imm = str_hash_find_int (r_htab, arg);
+ ip->match_now = 0 <= imm;
+ ret = imm;
if (ip->match_now)
break;
/* Handle potential usage of deprecated register aliases. */
- imm = (intptr_t) str_hash_find (r_deprecated_htab, arg);
- ip->match_now = 0 < imm;
- ret = imm - 1;
+ imm = str_hash_find_int (r_deprecated_htab, arg);
+ ip->match_now = 0 <= imm;
+ ret = imm;
/* !ip->expand_from_macro: avoiding duplicate output warnings,
only the first macro output warning. */
if (ip->match_now && !ip->expand_from_macro)
@@ -953,23 +934,21 @@ loongarch_args_parser_can_match_arg_helper (char esc_ch1, char esc_ch2,
switch (esc_ch2)
{
case 'c':
- imm = (intptr_t) str_hash_find (fc_htab, arg);
- if (0 >= imm)
- {
- imm = (intptr_t) str_hash_find (fcn_htab, arg);
- }
+ imm = str_hash_find_int (fc_htab, arg);
+ if (0 > imm)
+ imm = str_hash_find_int (fcn_htab, arg);
break;
default:
- imm = (intptr_t) str_hash_find (f_htab, arg);
+ imm = str_hash_find_int (f_htab, arg);
}
- ip->match_now = 0 < imm;
- ret = imm - 1;
+ ip->match_now = 0 <= imm;
+ ret = imm;
if (ip->match_now && !ip->expand_from_macro)
break;
/* Handle potential usage of deprecated register aliases. */
- imm = (intptr_t) str_hash_find (f_deprecated_htab, arg);
- ip->match_now = 0 < imm;
- ret = imm - 1;
+ imm = str_hash_find_int (f_deprecated_htab, arg);
+ ip->match_now = 0 <= imm;
+ ret = imm;
if (ip->match_now)
as_warn (_("register alias %s is deprecated, use %s instead"),
arg, f_abi_names[ret]);
@@ -978,23 +957,23 @@ loongarch_args_parser_can_match_arg_helper (char esc_ch1, char esc_ch2,
switch (esc_ch2)
{
case 'r':
- imm = (intptr_t) str_hash_find (cr_htab, arg);
+ imm = str_hash_find_int (cr_htab, arg);
break;
default:
- imm = (intptr_t) str_hash_find (c_htab, arg);
+ imm = str_hash_find_int (c_htab, arg);
}
- ip->match_now = 0 < imm;
- ret = imm - 1;
+ ip->match_now = 0 <= imm;
+ ret = imm;
break;
case 'v':
- imm = (intptr_t) str_hash_find (v_htab, arg);
- ip->match_now = 0 < imm;
- ret = imm - 1;
+ imm = str_hash_find_int (v_htab, arg);
+ ip->match_now = 0 <= imm;
+ ret = imm;
break;
case 'x':
- imm = (intptr_t) str_hash_find (x_htab, arg);
- ip->match_now = 0 < imm;
- ret = imm - 1;
+ imm = str_hash_find_int (x_htab, arg);
+ ip->match_now = 0 <= imm;
+ ret = imm;
break;
case '\0':
ip->all_match = ip->match_now;
@@ -1077,8 +1056,7 @@ get_loongarch_opcode (struct loongarch_cl_insn *insn)
if ((!it->include || (it->include && *it->include))
&& (!it->exclude || (it->exclude && !(*it->exclude)))
&& !(it->pinfo & INSN_DIS_ALIAS))
- str_hash_insert (ase->name_hash_entry, it->name,
- (void *) it, 0);
+ str_hash_insert (ase->name_hash_entry, it->name, it, 0);
}
}
@@ -1420,7 +1398,8 @@ loongarch_assemble_INSNs (char *str, unsigned int expand_from_macro)
if (*str == '\0')
break;
- struct loongarch_cl_insn the_one = { 0 };
+ struct loongarch_cl_insn the_one;
+ memset (&the_one, 0, sizeof (the_one));
the_one.name = str;
the_one.expand_from_macro = expand_from_macro;
@@ -1521,6 +1500,29 @@ loongarch_force_relocation (struct fix *fixp)
return generic_force_reloc (fixp);
}
+/* If subsy of BFD_RELOC32/64 and PC in same segment, and without relax
+ or PC at start of subsy or with relax but sub_symbol_segment not in
+ SEC_CODE, we generate 32/64_PCREL. */
+bool
+loongarch_force_relocation_sub_local (fixS *fixp, segT sec ATTRIBUTE_UNUSED)
+{
+ return !(LARCH_opts.thin_add_sub
+ && (fixp->fx_r_type == BFD_RELOC_32
+ || fixp->fx_r_type == BFD_RELOC_64)
+ && (!LARCH_opts.relax
+ || (S_GET_VALUE (fixp->fx_subsy)
+ == fixp->fx_frag->fr_address + fixp->fx_where)
+ || (S_GET_SEGMENT (fixp->fx_subsy)->flags & SEC_CODE) == 0));
+}
+
+/* Postpone text-section label subtraction calculation until linking, since
+ linker relaxations might change the deltas. */
+bool
+loongarch_force_relocation_sub_same(fixS *fixp ATTRIBUTE_UNUSED, segT sec)
+{
+ return LARCH_opts.relax && (sec->flags & SEC_CODE) != 0;
+}
+
static void fix_reloc_insn (fixS *fixP, bfd_vma reloc_val, char *buf)
{
reloc_howto_type *howto;
@@ -1913,12 +1915,12 @@ tc_loongarch_regname_to_dw2regnum (char *regname)
int reg;
/* Look up in the general purpose register table. */
- if ((reg = (intptr_t) str_hash_find (cfi_r_htab, regname)) > 0)
- return reg - 1;
+ if ((reg = str_hash_find_int (cfi_r_htab, regname)) >= 0)
+ return reg;
/* Look up in the floating point register table. */
- if ((reg = (intptr_t) str_hash_find (cfi_f_htab, regname)) > 0)
- return reg + 31;
+ if ((reg = str_hash_find_int (cfi_f_htab, regname)) >= 0)
+ return reg + 32;
as_bad (_("unknown register `%s`"), regname);
return -1;
diff --git a/gas/config/tc-loongarch.h b/gas/config/tc-loongarch.h
index ebed8e0..38ecd03 100644
--- a/gas/config/tc-loongarch.h
+++ b/gas/config/tc-loongarch.h
@@ -21,8 +21,6 @@
#ifndef TC_LOONGARCH
#define TC_LOONGARCH
-#include "opcode/loongarch.h"
-
#define TARGET_BYTES_BIG_ENDIAN 0
#define TARGET_ARCH bfd_arch_loongarch
@@ -80,26 +78,19 @@ extern int loongarch_force_relocation (struct fix *);
/* If subsy of BFD_RELOC32/64 and PC in same segment, and without relax
or PC at start of subsy or with relax but sub_symbol_segment not in
SEC_CODE, we generate 32/64_PCREL. */
-#define TC_FORCE_RELOCATION_SUB_LOCAL(FIX, SEG) \
- (!(LARCH_opts.thin_add_sub \
- && ((FIX)->fx_r_type == BFD_RELOC_32 \
- ||(FIX)->fx_r_type == BFD_RELOC_64) \
- && (!LARCH_opts.relax \
- || S_GET_VALUE (FIX->fx_subsy) \
- == FIX->fx_frag->fr_address + FIX->fx_where \
- || (LARCH_opts.relax \
- && ((S_GET_SEGMENT (FIX->fx_subsy)->flags & SEC_CODE) == 0)))))
+extern bool loongarch_force_relocation_sub_local (struct fix *, asection *);
+#define TC_FORCE_RELOCATION_SUB_LOCAL(FIX, SEC) \
+ loongarch_force_relocation_sub_local (FIX, SEC)
#define TC_VALIDATE_FIX_SUB(FIX, SEG) 1
#define DIFF_EXPR_OK 1
/* Postpone text-section label subtraction calculation until linking, since
linker relaxations might change the deltas. */
+extern bool loongarch_force_relocation_sub_same(struct fix *, asection *);
#define TC_FORCE_RELOCATION_SUB_SAME(FIX, SEC) \
- (LARCH_opts.relax ? \
- (GENERIC_FORCE_RELOCATION_SUB_SAME (FIX, SEC) \
- || ((SEC)->flags & SEC_CODE) != 0) \
- : (GENERIC_FORCE_RELOCATION_SUB_SAME (FIX, SEC))) \
+ (loongarch_force_relocation_sub_same (FIX, SEC) \
+ || GENERIC_FORCE_RELOCATION_SUB_SAME (FIX, SEC))
#define TC_LINKRELAX_FIXUP(seg) ((seg->flags & SEC_CODE) \
|| (seg->flags & SEC_DEBUGGING))
@@ -141,7 +132,7 @@ extern void loongarch_pre_output_hook (void);
#define HANDLE_ALIGN(sec, fragp) loongarch_handle_align (fragp)
extern void loongarch_handle_align (struct frag *);
-#define MAX_MEM_FOR_RS_ALIGN_CODE (3 + 4)
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (3 + 4)
#define elf_tc_final_processing loongarch_elf_final_processing
extern void loongarch_elf_final_processing (void);
diff --git a/gas/config/tc-m32c.h b/gas/config/tc-m32c.h
index bcdca98..c8e03ed 100644
--- a/gas/config/tc-m32c.h
+++ b/gas/config/tc-m32c.h
@@ -79,5 +79,3 @@ extern int m32c_is_colon_insn (char *, char *);
#define H_TICK_HEX 1
#define NOP_OPCODE (bfd_get_mach (stdoutput) == bfd_mach_m32c ? 0xde : 0x04)
-#define HANDLE_ALIGN(sec, fragP)
-#define MAX_MEM_FOR_RS_ALIGN_CODE 1
diff --git a/gas/config/tc-m32r.h b/gas/config/tc-m32r.h
index 6be96bb..47b7158 100644
--- a/gas/config/tc-m32r.h
+++ b/gas/config/tc-m32r.h
@@ -65,7 +65,7 @@ extern long m32r_relax_frag (segT, fragS *, long);
extern void m32r_handle_align (fragS *);
#define HANDLE_ALIGN(s, f) m32r_handle_align (f)
-#define MAX_MEM_FOR_RS_ALIGN_CODE (1 + 2 + 4)
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (1 + 2 + 4)
/* Values passed to md_apply_fix don't include the symbol value. */
#define MD_APPLY_SYM_VALUE(FIX) 0
diff --git a/gas/config/tc-m68hc11.c b/gas/config/tc-m68hc11.c
index 1bdf1dd..6950c57 100644
--- a/gas/config/tc-m68hc11.c
+++ b/gas/config/tc-m68hc11.c
@@ -189,7 +189,6 @@ struct m9s12xg_opcode_def
/* Local functions. */
static register_id reg_name_search (char *);
static register_id register_name (void);
-static int cmp_opcode (struct m68hc11_opcode *, struct m68hc11_opcode *);
static char *print_opcode_format (struct m68hc11_opcode *, int);
static char *skip_whites (char *);
static int check_range (long, int);
@@ -588,8 +587,10 @@ md_section_align (asection *seg, valueT addr)
}
static int
-cmp_opcode (struct m68hc11_opcode *op1, struct m68hc11_opcode *op2)
+cmp_opcode (const void *p1, const void *p2)
{
+ const struct m68hc11_opcode *op1 = p1;
+ const struct m68hc11_opcode *op2 = p2;
return strcmp (op1->name, op2->name);
}
@@ -639,8 +640,7 @@ md_begin (void)
}
}
}
- qsort (opcodes, num_opcodes, sizeof (struct m68hc11_opcode),
- (int (*) (const void*, const void*)) cmp_opcode);
+ qsort (opcodes, num_opcodes, sizeof (struct m68hc11_opcode), cmp_opcode);
opc = XNEWVEC (struct m68hc11_opcode_def, num_opcodes);
m68hc11_opcode_defs = opc;
@@ -1008,7 +1008,7 @@ print_insn_format (char *name)
struct m68hc11_opcode *opcode;
char buf[128];
- opc = (struct m68hc11_opcode_def *) str_hash_find (m68hc11_hash, name);
+ opc = str_hash_find (m68hc11_hash, name);
if (opc == NULL)
{
as_bad (_("Instruction `%s' is not recognized."), name);
@@ -2813,7 +2813,7 @@ md_assemble (char *str)
struct m68hc11_opcode *opcode;
struct m68hc11_opcode opcode_local;
- unsigned char *op_start, *op_end;
+ char *op_start, *op_end;
char *save;
char name[20];
int nlen = 0;
@@ -2828,7 +2828,7 @@ md_assemble (char *str)
/* Find the opcode end and get the opcode in 'name'. The opcode is forced
lower case (the opcode table only has lower case op-codes). */
- for (op_start = op_end = (unsigned char *) str;
+ for (op_start = op_end = str;
!is_end_of_stmt (*op_end) && !is_whitespace (*op_end);
op_end++)
{
@@ -2848,7 +2848,7 @@ md_assemble (char *str)
if (current_architecture == cpuxgate)
{
/* Find the opcode definition given its name. */
- opc = (struct m68hc11_opcode_def *) str_hash_find (m68hc11_hash, name);
+ opc = str_hash_find (m68hc11_hash, name);
if (opc == NULL)
{
as_bad (_("Opcode `%s' is not recognized."), name);
@@ -2862,7 +2862,7 @@ md_assemble (char *str)
opcode_local.format = opc->opcode->format;
save = input_line_pointer;
- input_line_pointer = (char *) op_end;
+ input_line_pointer = op_end;
if (opc->format == M68XG_OP_NONE)
{
@@ -3430,7 +3430,7 @@ md_assemble (char *str)
else
{
as_bad ("Failed to find opcode for %s %s\n",
- opc->opcode->name, (char *)op_end);
+ opc->opcode->name, op_end);
}
}
}
@@ -3469,7 +3469,7 @@ md_assemble (char *str)
}
/* Find the opcode definition given its name. */
- opc = (struct m68hc11_opcode_def *) str_hash_find (m68hc11_hash, name);
+ opc = str_hash_find (m68hc11_hash, name);
/* If it's not recognized, look for 'jbsr' and 'jbxx'. These are
pseudo insns for relative branch. For these branches, we always
@@ -3477,8 +3477,7 @@ md_assemble (char *str)
is given. */
if (opc == NULL && name[0] == 'j' && name[1] == 'b')
{
- opc = (struct m68hc11_opcode_def *) str_hash_find (m68hc11_hash,
- &name[1]);
+ opc = str_hash_find (m68hc11_hash, &name[1]);
if (opc
&& (!(opc->format & M6811_OP_JUMP_REL)
|| (opc->format & M6811_OP_BITMASK)))
@@ -3498,7 +3497,7 @@ md_assemble (char *str)
if (nlen < 19
&& (*op_end &&
- (is_end_of_line[op_end[1]]
+ (is_end_of_stmt (op_end[1])
|| is_whitespace (op_end[1])
|| !ISALNUM (op_end[1])))
&& (*op_end == 'a' || *op_end == 'b'
@@ -3509,8 +3508,7 @@ md_assemble (char *str)
{
name[nlen++] = TOLOWER (*op_end++);
name[nlen] = 0;
- opc = (struct m68hc11_opcode_def *) str_hash_find (m68hc11_hash,
- name);
+ opc = str_hash_find (m68hc11_hash, name);
}
}
}
@@ -3534,7 +3532,7 @@ md_assemble (char *str)
return;
}
save = input_line_pointer;
- input_line_pointer = (char *) op_end;
+ input_line_pointer = op_end;
if (opc)
{
@@ -3715,7 +3713,7 @@ s_m68hc11_mode (int x ATTRIBUTE_UNUSED)
{
char *name = input_line_pointer, ch;
- while (!is_end_of_line[(unsigned char) *input_line_pointer])
+ while (!is_end_of_stmt (*input_line_pointer))
input_line_pointer++;
ch = *input_line_pointer;
*input_line_pointer = '\0';
diff --git a/gas/config/tc-m68k.c b/gas/config/tc-m68k.c
index 7021fd4..510a1bc 100644
--- a/gas/config/tc-m68k.c
+++ b/gas/config/tc-m68k.c
@@ -1357,7 +1357,7 @@ m68k_ip (char *instring)
c = *p;
*p = '\0';
- opcode = (const struct m68k_incant *) str_hash_find (op_hash, instring);
+ opcode = str_hash_find (op_hash, instring);
*p = c;
if (pdot != NULL)
@@ -4560,7 +4560,7 @@ md_begin (void)
{
const char *name = m68k_opcode_aliases[i].primary;
const char *alias = m68k_opcode_aliases[i].alias;
- void *val = (void *) str_hash_find (op_hash, name);
+ void *val = str_hash_find (op_hash, name);
if (!val)
as_fatal (_("Internal Error: Can't find %s in hash table"), name);
@@ -4598,7 +4598,7 @@ md_begin (void)
{
const char *name = mri_aliases[i].primary;
const char *alias = mri_aliases[i].alias;
- void *val = (void *) str_hash_find (op_hash, name);
+ void *val = str_hash_find (op_hash, name);
if (!val)
as_fatal (_("Internal Error: Can't find %s in hash table"), name);
@@ -5772,7 +5772,7 @@ static void
skip_to_comma (int arg ATTRIBUTE_UNUSED, int on ATTRIBUTE_UNUSED)
{
while (*input_line_pointer != ','
- && ! is_end_of_line[(unsigned char) *input_line_pointer])
+ && ! is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
}
@@ -6507,7 +6507,7 @@ s_mri_if (int qual)
This is important when assembling:
if d0 <ne> 12(a0,d0*2) then
if d0 <ne> #CONST*20 then. */
- while (! (is_end_of_line[(unsigned char) *s]
+ while (! (is_end_of_stmt (*s)
|| (flag_mri
&& *s == '*'
&& (s == input_line_pointer
@@ -6545,7 +6545,7 @@ s_mri_if (int qual)
if (ignore_input ())
{
*input_line_pointer = c;
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
demand_empty_rest_of_line ();
return;
@@ -6564,7 +6564,7 @@ s_mri_if (int qual)
if (flag_mri)
{
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
}
@@ -6596,7 +6596,7 @@ s_mri_else (int qual)
if (ignore_input ())
{
*input_line_pointer = c;
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
demand_empty_rest_of_line ();
return;
@@ -6625,7 +6625,7 @@ s_mri_else (int qual)
if (flag_mri)
{
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
}
@@ -6656,7 +6656,7 @@ s_mri_endi (int ignore ATTRIBUTE_UNUSED)
if (flag_mri)
{
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
}
@@ -6694,7 +6694,7 @@ s_mri_break (int extent)
if (flag_mri)
{
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
}
@@ -6732,7 +6732,7 @@ s_mri_next (int extent)
if (flag_mri)
{
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
}
@@ -6754,7 +6754,6 @@ s_mri_for (int qual)
struct mri_control_info *n;
char *buf;
char *s;
- char ex[2];
/* The syntax is
FOR.q var = init { TO | DOWNTO } end [ BY by ] DO.e
@@ -6764,7 +6763,7 @@ s_mri_for (int qual)
varstart = input_line_pointer;
/* Look for the '='. */
- while (! is_end_of_line[(unsigned char) *input_line_pointer]
+ while (! is_end_of_stmt (*input_line_pointer)
&& *input_line_pointer != '=')
++input_line_pointer;
if (*input_line_pointer != '=')
@@ -6786,7 +6785,7 @@ s_mri_for (int qual)
/* Look for TO or DOWNTO. */
up = 1;
initstop = NULL;
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
{
if (strncasecmp (input_line_pointer, "TO", 2) == 0
&& ! is_part_of_name (input_line_pointer[2]))
@@ -6821,7 +6820,7 @@ s_mri_for (int qual)
/* Look for BY or DO. */
by = 0;
endstop = NULL;
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
{
if (strncasecmp (input_line_pointer, "BY", 2) == 0
&& ! is_part_of_name (input_line_pointer[2]))
@@ -6863,7 +6862,7 @@ s_mri_for (int qual)
/* Look for DO. */
bystop = NULL;
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
{
if (strncasecmp (input_line_pointer, "DO", 2) == 0
&& (input_line_pointer[2] == '.'
@@ -6935,12 +6934,14 @@ s_mri_for (int qual)
mri_assemble (buf);
/* bcc bottom. */
- ex[0] = TOLOWER (extent);
- ex[1] = '\0';
- if (up)
- sprintf (buf, "blt%s %s", ex, n->bottom);
- else
- sprintf (buf, "bgt%s %s", ex, n->bottom);
+ s = buf;
+ *s++ = 'b';
+ *s++ = up ? 'l' : 'g';
+ *s++ = 't';
+ if (extent != '\0')
+ *s++ = TOLOWER (extent);
+ *s++ = ' ';
+ strcpy (s, n->bottom);
mri_assemble (buf);
/* Put together the add or sub instruction used by ENDF. */
@@ -6963,7 +6964,7 @@ s_mri_for (int qual)
if (flag_mri)
{
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
}
@@ -6998,7 +6999,7 @@ s_mri_endf (int ignore ATTRIBUTE_UNUSED)
if (flag_mri)
{
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
}
@@ -7016,7 +7017,7 @@ s_mri_repeat (int ignore ATTRIBUTE_UNUSED)
colon (n->top);
if (flag_mri)
{
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
}
demand_empty_rest_of_line ();
@@ -7039,7 +7040,7 @@ s_mri_until (int qual)
colon (mri_control_stack->next);
- for (s = input_line_pointer; ! is_end_of_line[(unsigned char) *s]; s++)
+ for (s = input_line_pointer; ! is_end_of_stmt (*s); s++)
;
parse_mri_control_expression (s, qual, (const char *) NULL,
@@ -7053,7 +7054,7 @@ s_mri_until (int qual)
if (flag_mri)
{
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
}
@@ -7075,7 +7076,7 @@ s_mri_while (int qual)
This is important when assembling:
while d0 <ne> 12(a0,d0*2) do
while d0 <ne> #CONST*20 do. */
- while (! (is_end_of_line[(unsigned char) *s]
+ while (! (is_end_of_stmt (*s)
|| (flag_mri
&& *s == '*'
&& (s == input_line_pointer
@@ -7108,7 +7109,7 @@ s_mri_while (int qual)
if (flag_mri)
{
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
}
@@ -7141,7 +7142,7 @@ s_mri_endw (int ignore ATTRIBUTE_UNUSED)
if (flag_mri)
{
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
}
diff --git a/gas/config/tc-mcore.c b/gas/config/tc-mcore.c
index 38e6637..8688bfa 100644
--- a/gas/config/tc-mcore.c
+++ b/gas/config/tc-mcore.c
@@ -882,7 +882,7 @@ md_assemble (char * str)
return;
}
- opcode = (mcore_opcode_info *) str_hash_find (opcode_hash_control, name);
+ opcode = str_hash_find (opcode_hash_control, name);
if (opcode == NULL)
{
as_bad (_("unknown opcode \"%s\""), name);
diff --git a/gas/config/tc-metag.c b/gas/config/tc-metag.c
index 3a36d6a..bb8e897 100644
--- a/gas/config/tc-metag.c
+++ b/gas/config/tc-metag.c
@@ -4380,11 +4380,10 @@ parse_dsp_addr (const char *line, metag_addr *addr, unsigned int size,
l = parse_dsp_regs_list (l, regs, 1, &regs_read, true, true, load, false);
- if (l == NULL)
+ if (l == NULL || regs_read == 0)
return NULL;
- if (!is_addr_unit (regs[0]->unit) &&
- !is_dspram_reg (regs[0]))
+ if (!is_addr_unit (regs[0]->unit) && !is_dspram_reg (regs[0]))
{
as_bad (_("invalid register for memory access"));
return NULL;
@@ -4434,7 +4433,7 @@ parse_dsp_addr (const char *line, metag_addr *addr, unsigned int size,
l = parse_dsp_regs_list (l, regs, 1, &regs_read, true, true, load, false);
- if (l == NULL)
+ if (l == NULL || regs_read == 0)
return NULL;
if (regs[0]->unit != addr->base_reg->unit)
@@ -4522,7 +4521,7 @@ parse_dget_set (const char *line, metag_insn *insn,
false, false);
}
- if (l == NULL)
+ if (l == NULL || regs_read == 0)
return NULL;
/* The first register dictates the unit. */
@@ -6842,34 +6841,26 @@ void
metag_handle_align (fragS * fragP)
{
static unsigned char const noop[4] = { 0xfe, 0xff, 0xff, 0xa0 };
- int bytes, fix;
- char *p;
if (fragP->fr_type != rs_align_code)
return;
- bytes = fragP->fr_next->fr_address - fragP->fr_address - fragP->fr_fix;
- p = fragP->fr_literal + fragP->fr_fix;
- fix = 0;
-
- if (bytes & 3)
+ int bytes = fragP->fr_next->fr_address - fragP->fr_address - fragP->fr_fix;
+ char *p = fragP->fr_literal + fragP->fr_fix;
+ int fix = bytes & 3;
+ if (fix != 0)
{
- fix = bytes & 3;
memset (p, 0, fix);
p += fix;
bytes -= fix;
+ fragP->fr_fix += fix;
}
- while (bytes >= 4)
+ if (bytes != 0)
{
+ fragP->fr_var = 4;
memcpy (p, noop, 4);
- p += 4;
- bytes -= 4;
- fix += 4;
}
-
- fragP->fr_fix += fix;
- fragP->fr_var = 4;
}
static char *
@@ -7038,7 +7029,7 @@ void
md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
{
char *buf = fixP->fx_where + fixP->fx_frag->fr_literal;
- int value = (int)*valP;
+ int value = *valP;
switch (fixP->fx_r_type)
{
diff --git a/gas/config/tc-metag.h b/gas/config/tc-metag.h
index 9d112c4..92cb0b4 100644
--- a/gas/config/tc-metag.h
+++ b/gas/config/tc-metag.h
@@ -52,6 +52,7 @@ extern int metag_force_relocation (struct fix *);
/* Call md_pcrel_from_section(), not md_pcrel_from(). */
#define MD_PCREL_FROM_SECTION(FIX, SEC) md_pcrel_from_section (FIX, SEC)
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (3 + 4)
#define HANDLE_ALIGN(sec, fragp) metag_handle_align (fragp)
extern void metag_handle_align (struct frag *);
diff --git a/gas/config/tc-microblaze.c b/gas/config/tc-microblaze.c
index 7e1b167..917b8f6 100644
--- a/gas/config/tc-microblaze.c
+++ b/gas/config/tc-microblaze.c
@@ -318,7 +318,7 @@ microblaze_s_weakext (int ignore ATTRIBUTE_UNUSED)
SKIP_WHITESPACE ();
- if (!is_end_of_line[(unsigned char) *input_line_pointer])
+ if (!is_end_of_stmt (*input_line_pointer))
{
if (S_IS_DEFINED (symbolP))
{
@@ -680,7 +680,7 @@ parse_imm (char * s, expressionS * e, offsetT min, offsetT max)
/* Find the start of "@GOT" or "@PLT" suffix (if any) */
for (atp = s; *atp != '@'; atp++)
- if (is_end_of_line[(unsigned char) *atp])
+ if (is_end_of_stmt (*atp))
break;
if (*atp == '@')
@@ -754,7 +754,7 @@ check_got (int * got_type, int * got_len)
/* Find the start of "@GOT" or "@PLT" suffix (if any). */
for (atp = input_line_pointer; *atp != '@'; atp++)
- if (is_end_of_line[(unsigned char) *atp])
+ if (is_end_of_stmt (*atp))
return NULL;
if (startswith (atp + 1, "GOTOFF"))
@@ -781,7 +781,7 @@ check_got (int * got_type, int * got_len)
first = atp - input_line_pointer;
past_got = atp + *got_len + 1;
- for (new_pointer = past_got; !is_end_of_line[(unsigned char) *new_pointer++];)
+ for (new_pointer = past_got; !is_end_of_stmt (*new_pointer++); )
;
second = new_pointer - past_got;
/* One extra byte for ' ' and one for NUL. */
@@ -914,7 +914,7 @@ md_assemble (char * str)
return;
}
- opcode = (struct op_code_struct *) str_hash_find (opcode_hash_control, name);
+ opcode = str_hash_find (opcode_hash_control, name);
if (opcode == NULL)
{
as_bad (_("unknown opcode \"%s\""), name);
@@ -1044,13 +1044,9 @@ md_assemble (char * str)
count = 32 - reg1;
if (streq (name, "lmi"))
- opcode
- = (struct op_code_struct *) str_hash_find (opcode_hash_control,
- "lwi");
+ opcode = str_hash_find (opcode_hash_control, "lwi");
else
- opcode
- = (struct op_code_struct *) str_hash_find (opcode_hash_control,
- "swi");
+ opcode = str_hash_find (opcode_hash_control, "swi");
if (opcode == NULL)
{
as_bad (_("unknown opcode \"%s\""), "lwi");
@@ -1082,9 +1078,7 @@ md_assemble (char * str)
if ((temp != 0) && (temp != 0xFFFF8000))
{
/* Needs an immediate inst. */
- opcode1
- = (struct op_code_struct *) str_hash_find (opcode_hash_control,
- "imm");
+ opcode1 = str_hash_find (opcode_hash_control, "imm");
if (opcode1 == NULL)
{
as_bad (_("unknown opcode \"%s\""), "imm");
@@ -1618,9 +1612,7 @@ md_assemble (char * str)
if ((temp != 0) && (temp != 0xFFFF8000))
{
/* Needs an immediate inst. */
- opcode1
- = (struct op_code_struct *) str_hash_find (opcode_hash_control,
- "imm");
+ opcode1 = str_hash_find (opcode_hash_control, "imm");
if (opcode1 == NULL)
{
as_bad (_("unknown opcode \"%s\""), "imm");
@@ -1686,9 +1678,7 @@ md_assemble (char * str)
if ((temp != 0) && (temp != 0xFFFF8000))
{
/* Needs an immediate inst. */
- opcode1
- = (struct op_code_struct *) str_hash_find (opcode_hash_control,
- "imm");
+ opcode1 = str_hash_find (opcode_hash_control, "imm");
if (opcode1 == NULL)
{
as_bad (_("unknown opcode \"%s\""), "imm");
@@ -1761,9 +1751,7 @@ md_assemble (char * str)
if ((temp != 0) && (temp != 0xFFFF8000))
{
/* Needs an immediate inst. */
- opcode1
- = (struct op_code_struct *) str_hash_find (opcode_hash_control,
- "imm");
+ opcode1 = str_hash_find (opcode_hash_control, "imm");
if (opcode1 == NULL)
{
as_bad (_("unknown opcode \"%s\""), "imm");
@@ -2054,7 +2042,7 @@ md_apply_fix (fixS * fixP,
const char * file = fixP->fx_file ? fixP->fx_file : _("unknown");
const char * symname;
/* Note: use offsetT because it is signed, valueT is unsigned. */
- offsetT val = (offsetT) * valp;
+ offsetT val = *valp;
int i;
struct op_code_struct * opcode1;
unsigned long inst1;
@@ -2185,8 +2173,7 @@ md_apply_fix (fixS * fixP,
buf[i + INST_WORD_SIZE] = buf[i];
/* Generate the imm instruction. */
- opcode1
- = (struct op_code_struct *) str_hash_find (opcode_hash_control, "imm");
+ opcode1 = str_hash_find (opcode_hash_control, "imm");
if (opcode1 == NULL)
{
as_bad (_("unknown opcode \"%s\""), "imm");
@@ -2234,8 +2221,7 @@ md_apply_fix (fixS * fixP,
buf[i + INST_WORD_SIZE] = buf[i];
/* Generate the imm instruction. */
- opcode1
- = (struct op_code_struct *) str_hash_find (opcode_hash_control, "imm");
+ opcode1 = str_hash_find (opcode_hash_control, "imm");
if (opcode1 == NULL)
{
as_bad (_("unknown opcode \"%s\""), "imm");
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 91be392..5e602a4 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -9031,7 +9031,7 @@ macro_build (expressionS *ep, const char *name, const char *fmt, ...)
r[1] = BFD_RELOC_UNUSED;
r[2] = BFD_RELOC_UNUSED;
hash = mips_opts.micromips ? micromips_op_hash : op_hash;
- amo = (struct mips_opcode *) str_hash_find (hash, name);
+ amo = str_hash_find (hash, name);
gas_assert (amo);
gas_assert (strcmp (name, amo->name) == 0);
@@ -9189,7 +9189,7 @@ mips16_macro_build (expressionS *ep, const char *name, const char *fmt,
bfd_reloc_code_real_type r[3]
= {BFD_RELOC_UNUSED, BFD_RELOC_UNUSED, BFD_RELOC_UNUSED};
- mo = (struct mips_opcode *) str_hash_find (mips16_op_hash, name);
+ mo = str_hash_find (mips16_op_hash, name);
gas_assert (mo);
gas_assert (strcmp (name, mo->name) == 0);
@@ -14266,7 +14266,7 @@ mips_lookup_insn (htab_t hash, const char *start,
name = xstrndup (start, length);
/* Look up the instruction as-is. */
- insn = (struct mips_opcode *) str_hash_find (hash, name);
+ insn = str_hash_find (hash, name);
if (insn)
goto end;
@@ -14278,7 +14278,7 @@ mips_lookup_insn (htab_t hash, const char *start,
if (*p == 0 && mask != 0)
{
*dot = 0;
- insn = (struct mips_opcode *) str_hash_find (hash, name);
+ insn = str_hash_find (hash, name);
*dot = '.';
if (insn && (insn->pinfo2 & INSN2_VU0_CHANNEL_SUFFIX) != 0)
{
@@ -14304,7 +14304,7 @@ mips_lookup_insn (htab_t hash, const char *start,
if (suffix)
{
memmove (name + opend - 2, name + opend, length - opend + 1);
- insn = (struct mips_opcode *) str_hash_find (hash, name);
+ insn = str_hash_find (hash, name);
if (insn)
{
forced_insn_length = suffix;
@@ -14394,17 +14394,8 @@ mips16_ip (char *str, struct mips_cl_insn *insn)
c = *end;
l = 0;
- switch (c)
+ if (c == '.')
{
- case '\0':
- break;
-
- default:
- if (is_whitespace (*s))
- s++;
- break;
-
- case '.':
s++;
if (*s == 't')
{
@@ -14416,17 +14407,18 @@ mips16_ip (char *str, struct mips_cl_insn *insn)
l = 4;
s++;
}
- if (*s == '\0')
- break;
- else if (is_whitespace (*s++))
- break;
- set_insn_error (0, _("unrecognized opcode"));
- return;
+ if (l == 0 || (*s != '\0' && !is_whitespace (*s++)))
+ {
+ set_insn_error (0, _("unrecognized opcode"));
+ return;
+ }
}
+ else if (is_whitespace (c))
+ s++;
forced_insn_length = l;
*end = 0;
- first = (struct mips_opcode *) str_hash_find (mips16_op_hash, str);
+ first = str_hash_find (mips16_op_hash, str);
*end = c;
if (!first)
@@ -16515,7 +16507,7 @@ s_mips_globl (int x ATTRIBUTE_UNUSED)
restore_line_pointer (c);
SKIP_WHITESPACE ();
- if (!is_end_of_line[(unsigned char) *input_line_pointer]
+ if (!is_end_of_stmt (*input_line_pointer)
&& (*input_line_pointer != ','))
{
char *secname;
@@ -16536,7 +16528,7 @@ s_mips_globl (int x ATTRIBUTE_UNUSED)
{
input_line_pointer++;
SKIP_WHITESPACE ();
- if (is_end_of_line[(unsigned char) *input_line_pointer])
+ if (is_end_of_stmt (*input_line_pointer))
c = '\n';
}
}
@@ -16761,7 +16753,7 @@ s_mipsset (int x ATTRIBUTE_UNUSED)
file_mips_check_options ();
- while (!is_end_of_line[(unsigned char) *input_line_pointer])
+ while (!is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
ch = *input_line_pointer;
*input_line_pointer = '\0';
@@ -16904,7 +16896,7 @@ s_module (int ignore ATTRIBUTE_UNUSED)
{
char *name = input_line_pointer, ch;
- while (!is_end_of_line[(unsigned char) *input_line_pointer])
+ while (!is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
ch = *input_line_pointer;
*input_line_pointer = '\0';
@@ -17516,7 +17508,7 @@ s_nan (int ignore ATTRIBUTE_UNUSED)
static const char str_2008[] = "2008";
size_t i;
- for (i = 0; !is_end_of_line[(unsigned char) input_line_pointer[i]]; i++);
+ for (i = 0; !is_end_of_stmt (input_line_pointer[i]); i++);
if (i == sizeof (str_2008) - 1
&& memcmp (input_line_pointer, str_2008, i) == 0)
@@ -17576,7 +17568,7 @@ s_mips_weakext (int ignore ATTRIBUTE_UNUSED)
SKIP_WHITESPACE ();
- if (! is_end_of_line[(unsigned char) *input_line_pointer])
+ if (! is_end_of_stmt (*input_line_pointer))
{
if (S_IS_DEFINED (symbolP))
{
@@ -19782,7 +19774,7 @@ s_mips_end (int x ATTRIBUTE_UNUSED)
mips_frame_reg_valid = 0;
mips_cprestore_valid = 0;
- if (!is_end_of_line[(unsigned char) *input_line_pointer])
+ if (!is_end_of_stmt (*input_line_pointer))
{
p = get_symbol ();
demand_empty_rest_of_line ();
@@ -19817,7 +19809,7 @@ s_mips_end (int x ATTRIBUTE_UNUSED)
if (p && cur_proc_ptr)
{
OBJ_SYMFIELD_TYPE *obj = symbol_get_obj (p);
- expressionS *exp = XNEW (expressionS);
+ expressionS *exp = notes_alloc (sizeof (*exp));
obj->size = exp;
exp->X_op = O_subtract;
diff --git a/gas/config/tc-mips.h b/gas/config/tc-mips.h
index 38a0e39..dff86c6 100644
--- a/gas/config/tc-mips.h
+++ b/gas/config/tc-mips.h
@@ -61,7 +61,7 @@ extern char mips_nop_opcode (void);
extern void mips_handle_align (struct frag *);
#define HANDLE_ALIGN(sec, fragp) mips_handle_align (fragp)
-#define MAX_MEM_FOR_RS_ALIGN_CODE (3 + 4)
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (3 + 4)
struct insn_label_list;
struct mips_segment_info {
diff --git a/gas/config/tc-mmix.c b/gas/config/tc-mmix.c
index 3715790..dea9181 100644
--- a/gas/config/tc-mmix.c
+++ b/gas/config/tc-mmix.c
@@ -725,7 +725,7 @@ static void
mmix_discard_rest_of_line (void)
{
while (*input_line_pointer
- && (! is_end_of_line[(unsigned char) *input_line_pointer]
+ && (! is_end_of_stmt (*input_line_pointer)
|| TC_EOL_IN_INSN (input_line_pointer)))
input_line_pointer++;
}
@@ -835,7 +835,7 @@ md_assemble (char *str)
*operands++ = '\0';
}
- instruction = (struct mmix_opcode *) str_hash_find (mmix_opcode_hash, str);
+ instruction = str_hash_find (mmix_opcode_hash, str);
if (instruction == NULL)
{
as_bad (_("unknown opcode: `%s'"), str);
@@ -2065,7 +2065,7 @@ s_greg (int unused ATTRIBUTE_UNUSED)
if (c == '"')
c = * ++ input_line_pointer;
- if (! is_end_of_line[(unsigned char) c])
+ if (! is_end_of_stmt (c))
input_line_pointer++;
if (*p)
@@ -2426,12 +2426,11 @@ md_convert_frag (bfd *abfd ATTRIBUTE_UNUSED, segT sec ATTRIBUTE_UNUSED,
void
md_apply_fix (fixS *fixP, valueT *valP, segT segment)
{
- char *buf = fixP->fx_where + fixP->fx_frag->fr_literal;
+ char *buf = fixP->fx_where + fixP->fx_frag->fr_literal;
/* Note: use offsetT because it is signed, valueT is unsigned. */
- offsetT val = (offsetT) * valP;
- segT symsec
- = (fixP->fx_addsy == NULL
- ? absolute_section : S_GET_SEGMENT (fixP->fx_addsy));
+ offsetT val = *valP;
+ segT symsec = (fixP->fx_addsy == NULL
+ ? absolute_section : S_GET_SEGMENT (fixP->fx_addsy));
/* If the fix is relative to a symbol which is not defined, or, (if
pcrel), not in the same segment as the fix, we cannot resolve it
diff --git a/gas/config/tc-mn10200.c b/gas/config/tc-mn10200.c
index 657f591..db66e20 100644
--- a/gas/config/tc-mn10200.c
+++ b/gas/config/tc-mn10200.c
@@ -884,7 +884,7 @@ md_assemble (char *str)
*s++ = '\0';
/* Find the first opcode with the proper name. */
- opcode = (struct mn10200_opcode *) str_hash_find (mn10200_hash, str);
+ opcode = str_hash_find (mn10200_hash, str);
if (opcode == NULL)
{
as_bad (_("Unrecognized opcode: `%s'"), str);
diff --git a/gas/config/tc-mn10300.c b/gas/config/tc-mn10300.c
index 2167f40..c4cf804 100644
--- a/gas/config/tc-mn10300.c
+++ b/gas/config/tc-mn10300.c
@@ -1247,7 +1247,7 @@ md_assemble (char *str)
*s++ = '\0';
/* Find the first opcode with the proper name. */
- opcode = (struct mn10300_opcode *) str_hash_find (mn10300_hash, str);
+ opcode = str_hash_find (mn10300_hash, str);
if (opcode == NULL)
{
as_bad (_("Unrecognized opcode: `%s'"), str);
@@ -2325,7 +2325,7 @@ md_apply_fix (fixS * fixP, valueT * valP, segT seg)
{
char * fixpos = fixP->fx_where + fixP->fx_frag->fr_literal;
int size = 0;
- int value = (int) * valP;
+ int value = *valP;
gas_assert (fixP->fx_r_type < BFD_RELOC_UNUSED);
diff --git a/gas/config/tc-moxie.c b/gas/config/tc-moxie.c
index fec6a6f..3c47699 100644
--- a/gas/config/tc-moxie.c
+++ b/gas/config/tc-moxie.c
@@ -178,7 +178,7 @@ md_assemble (char *str)
if (nlen == 0)
as_bad (_("can't find opcode "));
- opcode = (moxie_opc_info_t *) str_hash_find (opcode_hash_control, op_start);
+ opcode = str_hash_find (opcode_hash_control, op_start);
*op_end = pend;
if (opcode == NULL)
diff --git a/gas/config/tc-msp430.c b/gas/config/tc-msp430.c
index 27b1d83..563365f 100644
--- a/gas/config/tc-msp430.c
+++ b/gas/config/tc-msp430.c
@@ -3584,7 +3584,13 @@ msp430_operands (struct msp430_opcode_s * opcode, char * line)
if (op1.exp.X_op == O_constant)
{
n = op1.exp.X_add_number;
- if (n > 0xfffff || n < - (0x7ffff))
+ /* Strictly speaking the positive value test should be for "n > 0x7ffff"
+ but traditionally when specifying immediates as hex values any valid
+ bit pattern is allowed. Hence "suba #0xfffff, r6" is allowed, and so
+ the positive value test has to be "n > 0xfffff".
+ FIXME: We could pre-parse the expression to find out if it starts with
+ 0x and only then allow positive values > 0x7fffff. */
+ if (n > 0xfffff || n < -0x80000)
{
as_bad (_("expected value of first argument of %s to fit into 20-bits"),
opcode->name);
@@ -4354,7 +4360,7 @@ md_assemble (char * str)
return;
}
- opcode = (struct msp430_opcode_s *) str_hash_find (msp430_hash, cmd);
+ opcode = str_hash_find (msp430_hash, cmd);
if (opcode == NULL)
{
diff --git a/gas/config/tc-nds32.c b/gas/config/tc-nds32.c
index 2e0b8e5..a159ddb 100644
--- a/gas/config/tc-nds32.c
+++ b/gas/config/tc-nds32.c
@@ -4633,16 +4633,15 @@ nds32_handle_align (fragS *fragp)
{
static const unsigned char nop16[] = { 0x92, 0x00 };
static const unsigned char nop32[] = { 0x40, 0x00, 0x00, 0x09 };
- int bytes;
- char *p;
if (fragp->fr_type != rs_align_code)
return;
- bytes = fragp->fr_next->fr_address - fragp->fr_address - fragp->fr_fix;
- p = fragp->fr_literal + fragp->fr_fix;
+ int bytes = fragp->fr_next->fr_address - fragp->fr_address - fragp->fr_fix;
+ char *p = fragp->fr_literal + fragp->fr_fix;
+ int fix = bytes & 1;
- if (bytes & 1)
+ if (fix != 0)
{
*p++ = 0;
bytes--;
@@ -4659,17 +4658,15 @@ nds32_handle_align (fragS *fragp)
memcpy (p, nop16, 2);
p += 2;
bytes -= 2;
+ fix += 2;
}
+ fragp->fr_fix += fix;
- while (bytes >= 4)
+ if (bytes != 0)
{
+ fragp->fr_var = 4;
memcpy (p, nop32, 4);
- p += 4;
- bytes -= 4;
}
-
- bytes = fragp->fr_next->fr_address - fragp->fr_address - fragp->fr_fix;
- fragp->fr_fix += bytes;
}
/* md_flush_pending_output */
@@ -6268,7 +6265,7 @@ static int
nds32_elf_append_relax_relocs_traverse (void **slot, void *arg ATTRIBUTE_UNUSED)
{
string_tuple_t *tuple = *((string_tuple_t **) slot);
- nds32_elf_append_relax_relocs (tuple->key, tuple->value);
+ nds32_elf_append_relax_relocs (tuple->key, (void *) tuple->value);
return 1;
}
diff --git a/gas/config/tc-nds32.h b/gas/config/tc-nds32.h
index 14109f0..f8966c5 100644
--- a/gas/config/tc-nds32.h
+++ b/gas/config/tc-nds32.h
@@ -112,6 +112,7 @@ extern void tc_nds32_frame_initial_instructions (void);
#define GAS_SORT_RELOCS 1
/* Values passed to md_apply_fix don't include the symbol value. */
#define MD_APPLY_SYM_VALUE(FIX) 0
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (1 + 2 + 4)
#define HANDLE_ALIGN(s, f) nds32_handle_align (f)
#undef DIFF_EXPR_OK /* They should be fixed in linker. */
#define md_relax_frag(segment, fragP, stretch) nds32_relax_frag (segment, fragP, stretch)
diff --git a/gas/config/tc-ns32k.c b/gas/config/tc-ns32k.c
index cf23c9b..13907f2 100644
--- a/gas/config/tc-ns32k.c
+++ b/gas/config/tc-ns32k.c
@@ -1105,7 +1105,7 @@ parse (const char *line, int recursive_level)
c = *lineptr;
*(char *) lineptr = '\0';
- desc = (struct ns32k_opcode *) str_hash_find (inst_hash_handle, line);
+ desc = str_hash_find (inst_hash_handle, line);
if (!desc)
as_fatal (_("No such opcode"));
@@ -1966,7 +1966,7 @@ md_fix_pcrel_adjust (fixS *fixP)
void
md_apply_fix (fixS *fixP, valueT * valP, segT seg ATTRIBUTE_UNUSED)
{
- long val = * (long *) valP;
+ long val = *valP;
char *buf = fixP->fx_where + fixP->fx_frag->fr_literal;
if (fix_bit_fixP (fixP))
diff --git a/gas/config/tc-pdp11.c b/gas/config/tc-pdp11.c
index 2c3722c..2c8a1b8 100644
--- a/gas/config/tc-pdp11.c
+++ b/gas/config/tc-pdp11.c
@@ -239,12 +239,12 @@ md_number_to_chars (char con[], valueT value, int nbytes)
void
md_apply_fix (fixS *fixP,
- valueT * valP,
- segT seg ATTRIBUTE_UNUSED)
+ valueT *valP,
+ segT seg ATTRIBUTE_UNUSED)
{
valueT code;
valueT mask;
- valueT val = * valP;
+ valueT val = *valP;
char *buf;
int shift;
int size;
@@ -710,7 +710,7 @@ md_assemble (char *instruction_string)
c = *p;
*p = '\0';
- op = (struct pdp11_opcode *)str_hash_find (insn_hash, str);
+ op = str_hash_find (insn_hash, str);
*p = c;
if (op == 0)
{
diff --git a/gas/config/tc-pj.c b/gas/config/tc-pj.c
index 849f905..61fada7 100644
--- a/gas/config/tc-pj.c
+++ b/gas/config/tc-pj.c
@@ -252,7 +252,7 @@ md_assemble (char *str)
if (nlen == 0)
as_bad (_("can't find opcode "));
- opcode = (pj_opc_info_t *) str_hash_find (opcode_hash_control, op_start);
+ opcode = str_hash_find (opcode_hash_control, op_start);
*op_end = pend;
if (opcode == NULL)
diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
index 5f2bc04..714dfca 100644
--- a/gas/config/tc-ppc.c
+++ b/gas/config/tc-ppc.c
@@ -3331,8 +3331,8 @@ md_assemble (char *str)
*s++ = '\0';
/* Look up the opcode in the hash table. */
- opcode = (const struct powerpc_opcode *) str_hash_find (ppc_hash, str);
- if (opcode == (const struct powerpc_opcode *) NULL)
+ opcode = str_hash_find (ppc_hash, str);
+ if (opcode == NULL)
{
as_bad (_("unrecognized opcode: `%s'"), str);
ppc_clear_labels ();
@@ -5038,7 +5038,7 @@ ppc_ref (int ignore ATTRIBUTE_UNUSED)
{
input_line_pointer++;
SKIP_WHITESPACE ();
- if (is_end_of_line[(unsigned char) *input_line_pointer])
+ if (is_end_of_stmt (*input_line_pointer))
{
as_bad (_("missing symbol name"));
ignore_rest_of_line ();
@@ -5796,7 +5796,7 @@ ppc_tc (int ignore ATTRIBUTE_UNUSED)
symbol_set_frag (label, symbol_get_frag (sym));
S_SET_VALUE (label, S_GET_VALUE (sym));
- while (! is_end_of_line[(unsigned char) *input_line_pointer])
+ while (! is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
return;
@@ -6140,9 +6140,6 @@ ppc_frob_symbol (symbolS *sym)
if (SF_GET_FUNCTION (sym))
{
- /* Make sure coff_last_function is reset. Otherwise, we won't create
- the auxent for the next function. */
- coff_last_function = 0;
ppc_last_function = sym;
if (symbol_get_tc (sym)->u.size != (symbolS *) NULL)
{
@@ -6170,10 +6167,6 @@ ppc_frob_symbol (symbolS *sym)
{
set_end = ppc_last_function;
ppc_last_function = NULL;
-
- /* We don't have a C_EFCN symbol, but we need to force the
- COFF backend to believe that it has seen one. */
- coff_last_function = NULL;
}
}
@@ -6894,6 +6887,9 @@ ppc_handle_align (segT sec, struct frag *fragP)
{
valueT count = (fragP->fr_next->fr_address
- (fragP->fr_address + fragP->fr_fix));
+ if (count == 0)
+ return;
+
char *dest = fragP->fr_literal + fragP->fr_fix;
enum ppc_nop_encoding_for_rs_align_code nop_select = *dest & 0xff;
@@ -6901,8 +6897,7 @@ ppc_handle_align (segT sec, struct frag *fragP)
We could pad with zeros up to an instruction boundary then follow
with nops but odd counts indicate data in an executable section
so padding with zeros is most appropriate. */
- if (count == 0
- || (nop_select == PPC_NOP_VLE ? (count & 1) != 0 : (count & 3) != 0))
+ if (nop_select == PPC_NOP_VLE ? (count & 1) != 0 : (count & 3) != 0)
{
*dest = 0;
return;
@@ -6920,28 +6915,13 @@ ppc_handle_align (segT sec, struct frag *fragP)
if (count > 4 * nop_limit && count < 0x2000000)
{
- struct frag *rest;
-
- /* Make a branch, then follow with nops. Insert another
- frag to handle the nops. */
+ /* Make a branch, then follow with nops. */
md_number_to_chars (dest, 0x48000000 + count, 4);
+ dest += 4;
+ fragP->fr_fix += 4;
count -= 4;
if (count == 0)
return;
-
- segment_info_type *seginfo = seg_info (sec);
- struct obstack *ob = &seginfo->frchainP->frch_obstack;
- rest = frag_alloc (ob, 4);
- memcpy (rest, fragP, SIZEOF_STRUCT_FRAG);
- fragP->fr_next = rest;
- fragP = rest;
- rest->fr_address += rest->fr_fix + 4;
- rest->fr_fix = 0;
- /* If we leave the next frag as rs_align_code we'll come here
- again, resulting in a bunch of branches rather than a
- branch followed by nops. */
- rest->fr_type = rs_align;
- dest = rest->fr_literal;
}
md_number_to_chars (dest, 0x60000000, 4);
@@ -6984,7 +6964,7 @@ ppc_handle_align (segT sec, struct frag *fragP)
void
md_apply_fix (fixS *fixP, valueT *valP, segT seg)
{
- valueT value = * valP;
+ valueT value = *valP;
offsetT fieldval;
const struct powerpc_operand *operand;
diff --git a/gas/config/tc-ppc.h b/gas/config/tc-ppc.h
index f6b37f8..97e2f4e 100644
--- a/gas/config/tc-ppc.h
+++ b/gas/config/tc-ppc.h
@@ -72,7 +72,7 @@ extern const char *ppc_target_format (void);
/* We don't need to handle .word strangely. */
#define WORKING_DOT_WORD
-#define MAX_MEM_FOR_RS_ALIGN_CODE 4
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) 8
#define HANDLE_ALIGN(SEC, FRAGP) \
if ((FRAGP)->fr_type == rs_align_code) \
ppc_handle_align (SEC, FRAGP);
diff --git a/gas/config/tc-pru.c b/gas/config/tc-pru.c
index 2e9d8e5..00208e4 100644
--- a/gas/config/tc-pru.c
+++ b/gas/config/tc-pru.c
@@ -134,12 +134,12 @@ typedef struct pru_insn_info
/* Opcode hash table. */
static htab_t pru_opcode_hash = NULL;
#define pru_opcode_lookup(NAME) \
- ((struct pru_opcode *) str_hash_find (pru_opcode_hash, (NAME)))
+ (str_hash_find (pru_opcode_hash, (NAME)))
/* Register hash table. */
static htab_t pru_reg_hash = NULL;
#define pru_reg_lookup(NAME) \
- ((struct pru_reg *) str_hash_find (pru_reg_hash, (NAME)))
+ (str_hash_find (pru_reg_hash, (NAME)))
/* The known current alignment of the current section. */
static int pru_current_align;
@@ -423,7 +423,7 @@ s_pru_set (int equiv)
trying a directive. This prevents
us from polluting the name space. */
SKIP_WHITESPACE ();
- if (is_end_of_line[(unsigned char) *input_line_pointer])
+ if (is_end_of_stmt (*input_line_pointer))
{
bool done = true;
*endline = 0;
diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c
index eb0d681..d0030de 100644
--- a/gas/config/tc-riscv.c
+++ b/gas/config/tc-riscv.c
@@ -93,6 +93,7 @@ enum riscv_csr_class
CSR_CLASS_SSAIA_AND_H_32, /* Ssaia with H, rv32 only */
CSR_CLASS_SSAIA_OR_SSCSRIND, /* Ssaia/Smcsrind */
CSR_CLASS_SSAIA_OR_SSCSRIND_AND_H, /* Ssaia/Smcsrind with H */
+ CSR_CLASS_SSCCFG, /* Ssccfg */
CSR_CLASS_SSCSRIND, /* Sscsrind */
CSR_CLASS_SSCSRIND_AND_H, /* Sscsrind with H */
CSR_CLASS_SSSTATEEN, /* S[ms]stateen only */
@@ -105,6 +106,7 @@ enum riscv_csr_class
CSR_CLASS_SSTC_32, /* Sstc RV32 only */
CSR_CLASS_SSTC_AND_H_32, /* Sstc RV32 only (with H) */
CSR_CLASS_SSCTR, /* Ssctr */
+ CSR_CLASS_SSQOSID, /* Ssqosid */
CSR_CLASS_XTHEADVECTOR, /* xtheadvector only */
};
@@ -324,19 +326,6 @@ static riscv_parse_subset_t riscv_rps_as =
true, /* check_unknown_prefixed_ext. */
};
-/* Update file/function-level architecture string according to the
- subset_list. */
-
-static void
-riscv_set_arch_str (const char **arch_str_p)
-{
- riscv_subset_list_t *subsets = riscv_rps_as.subset_list;
- const char *arch_str = *arch_str_p;
- if (arch_str != NULL)
- free ((void *) arch_str);
- *arch_str_p = riscv_arch_str (xlen, subsets);
-}
-
/* This structure is used to hold a stack of .option values. */
struct riscv_option_stack
{
@@ -368,8 +357,8 @@ riscv_set_arch (const char *s)
}
riscv_release_subset_list (riscv_rps_as.subset_list);
riscv_parse_subset (&riscv_rps_as, s);
- riscv_set_arch_str (&file_arch_str);
- riscv_set_arch_str (&riscv_rps_as.subset_list->arch_str);
+ riscv_arch_str (xlen, riscv_rps_as.subset_list, true/* update */);
+ file_arch_str = strdup (riscv_rps_as.subset_list->arch_str);
riscv_set_rvc (riscv_subset_supports (&riscv_rps_as, "c")
|| riscv_subset_supports (&riscv_rps_as, "zca"));
@@ -470,7 +459,7 @@ const char EXP_CHARS[] = "eE";
/* Chars that mean this number is a floating point constant.
As in 0f12.456 or 0d1.2345e12. */
-const char FLT_CHARS[] = "rRsSfFdDxXpPhH";
+const char FLT_CHARS[] = "rRsSfFdDxXpPhHbB";
/* Indicate ELF attributes are explicitly set. */
static bool explicit_attr = false;
@@ -531,15 +520,12 @@ make_mapping_symbol (enum riscv_seg_mstate state,
name = "$d";
break;
case MAP_INSN:
- if (arch_str != NULL)
- {
- size_t size = strlen (arch_str) + 3; /* "$x" + '\0' */
- buff = xmalloc (size);
- snprintf (buff, size, "$x%s", arch_str);
- name = buff;
- }
- else
- name = "$x";
+ gas_assert (arch_str);
+
+ size_t size = strlen (arch_str) + 3; /* "$x" + '\0' */
+ buff = xmalloc (size);
+ snprintf (buff, size, "$x%s", arch_str);
+ name = buff;
break;
default:
abort ();
@@ -585,11 +571,22 @@ make_mapping_symbol (enum riscv_seg_mstate state,
if (odd_data_padding)
{
- /* If the removed mapping symbol is $x+arch, then add it back to
- the next $x. */
- const char *str = removed != NULL
- && strncmp (S_GET_NAME (removed), "$xrv", 4) == 0
- ? S_GET_NAME (removed) + 2 : NULL;
+ /* Search and find the previous $x+isa which in the same section.
+ We added $x+isa at the start of all sections, so should find at
+ least that one. */
+ const char *str = NULL;
+ symbolS *p = symbol_previous (symbol);
+ for (; p != NULL; p = symbol_previous (p))
+ {
+ if (now_seg == S_GET_SEGMENT (p)
+ && S_GET_NAME (p)
+ && strncmp (S_GET_NAME (p), "$xrv", 4) == 0
+ && S_GET_VALUE (p) <= S_GET_VALUE (symbol))
+ {
+ str = S_GET_NAME (p) + 2;
+ break;
+ }
+ }
make_mapping_symbol (MAP_INSN, frag->fr_fix + 1, frag, str,
false/* odd_data_padding */);
}
@@ -607,7 +604,6 @@ riscv_mapping_state (enum riscv_seg_mstate to_state,
{
enum riscv_seg_mstate from_state =
seg_info (now_seg)->tc_segment_info_data.map_state;
- bool reset_seg_arch_str = false;
if (!SEG_NORMAL (now_seg)
/* For now we only add the mapping symbols to text sections.
@@ -622,26 +618,22 @@ riscv_mapping_state (enum riscv_seg_mstate to_state,
symbolS *seg_arch_symbol =
seg_info (now_seg)->tc_segment_info_data.arch_map_symbol;
if (to_state == MAP_INSN && seg_arch_symbol == 0)
- {
- /* Always add $x+arch at the first instruction of section. */
- reset_seg_arch_str = true;
- }
+ /* The start of section. */
+ ;
else if (seg_arch_symbol != 0
&& to_state == MAP_INSN
&& !fr_align_code
&& strcmp (riscv_rps_as.subset_list->arch_str,
S_GET_NAME (seg_arch_symbol) + 2) != 0)
- {
- reset_seg_arch_str = true;
- }
+ /* Different architecture string. */
+ ;
else if (from_state == to_state)
return;
valueT value = (valueT) (frag_now_fix () - max_chars);
seg_info (now_seg)->tc_segment_info_data.map_state = to_state;
seg_info (now_seg)->tc_segment_info_data.last_insn16 = false;
- const char *arch_str = reset_seg_arch_str
- ? riscv_rps_as.subset_list->arch_str : NULL;
+ const char *arch_str = riscv_rps_as.subset_list->arch_str;
make_mapping_symbol (to_state, value, frag_now, arch_str,
false/* odd_data_padding */);
}
@@ -898,7 +890,7 @@ static const struct opcode_name_t opcode_name_list[] =
/*reserved 0x5b. */
{"JAL", 0x6f},
{"SYSTEM", 0x73},
- /*reserved 0x77. */
+ {"OP_VE", 0x77},
{"CUSTOM_3", 0x7b},
/* >80b 0x7f. */
@@ -941,7 +933,7 @@ opcode_name_lookup (char **s)
save_c = *e;
*e = '\0';
- o = (struct opcode_name_t *) str_hash_find (opcode_names_hash, *s);
+ o = str_hash_find (opcode_names_hash, *s);
/* Advance to next token if one was recognized. */
if (o)
@@ -969,15 +961,15 @@ static htab_t reg_names_hash = NULL;
static htab_t csr_extra_hash = NULL;
#define ENCODE_REG_HASH(cls, n) \
- ((void *)(uintptr_t)((n) * RCLASS_MAX + (cls) + 1))
-#define DECODE_REG_CLASS(hash) (((uintptr_t)(hash) - 1) % RCLASS_MAX)
-#define DECODE_REG_NUM(hash) (((uintptr_t)(hash) - 1) / RCLASS_MAX)
+ ((n) * RCLASS_MAX + (cls) + 1)
+#define DECODE_REG_CLASS(hash) (((hash) - 1) % RCLASS_MAX)
+#define DECODE_REG_NUM(hash) (((hash) - 1) / RCLASS_MAX)
static void
hash_reg_name (enum reg_class class, const char *name, unsigned n)
{
- void *hash = ENCODE_REG_HASH (class, n);
- if (str_hash_insert (reg_names_hash, name, hash, 0) != NULL)
+ uintptr_t hash = ENCODE_REG_HASH (class, n);
+ if (str_hash_insert_int (reg_names_hash, name, hash, 0) != NULL)
as_fatal (_("internal: duplicate %s"), name);
}
@@ -1003,7 +995,7 @@ riscv_init_csr_hash (const char *name,
bool need_enrty = true;
pre_entry = NULL;
- entry = (struct riscv_csr_extra *) str_hash_find (csr_extra_hash, name);
+ entry = str_hash_find (csr_extra_hash, name);
while (need_enrty && entry != NULL)
{
if (entry->csr_class == class
@@ -1127,6 +1119,9 @@ riscv_csr_address (const char *csr_name,
is_h_required = (csr_class == CSR_CLASS_SSAIA_OR_SSCSRIND_AND_H);
extension = "ssaia or sscsrind";
break;
+ case CSR_CLASS_SSCCFG:
+ extension = "ssccfg";
+ break;
case CSR_CLASS_SSCSRIND:
case CSR_CLASS_SSCSRIND_AND_H:
is_h_required = (csr_class == CSR_CLASS_SSCSRIND_AND_H);
@@ -1163,6 +1158,9 @@ riscv_csr_address (const char *csr_name,
case CSR_CLASS_XTHEADVECTOR:
extension = "xtheadvector";
break;
+ case CSR_CLASS_SSQOSID:
+ extension = "ssqosid";
+ break;
default:
as_bad (_("internal: bad RISC-V CSR class (0x%x)"), csr_class);
}
@@ -1212,8 +1210,7 @@ riscv_csr_address (const char *csr_name,
static unsigned int
reg_csr_lookup_internal (const char *s)
{
- struct riscv_csr_extra *r =
- (struct riscv_csr_extra *) str_hash_find (csr_extra_hash, s);
+ struct riscv_csr_extra *r = str_hash_find (csr_extra_hash, s);
if (r == NULL)
return -1U;
@@ -1224,13 +1221,13 @@ reg_csr_lookup_internal (const char *s)
static unsigned int
reg_lookup_internal (const char *s, enum reg_class class)
{
- void *r;
+ uintptr_t r;
if (class == RCLASS_CSR)
return reg_csr_lookup_internal (s);
- r = str_hash_find (reg_names_hash, s);
- if (r == NULL || DECODE_REG_CLASS (r) != class)
+ r = str_hash_find_int (reg_names_hash, s);
+ if (r == (uintptr_t) -1 || DECODE_REG_CLASS (r) != class)
return -1;
if (riscv_subset_supports (&riscv_rps_as, "e")
@@ -1758,6 +1755,21 @@ validate_riscv_insn (const struct riscv_opcode *opc, int length)
goto unknown_validate_operand;
}
break;
+ case 'm': /* Vendor-specific (MIPS) operands. */
+ switch (*++oparg)
+ {
+ case '@': USE_BITS (OP_MASK_MIPS_HINT, OP_SH_MIPS_HINT);
+ break;
+ case '#': USE_BITS (OP_MASK_MIPS_IMM9, OP_SH_MIPS_IMM9);
+ break;
+ case '$': used_bits |= ENCODE_MIPS_LDP_IMM (-1U); break;
+ case '%': used_bits |= ENCODE_MIPS_LWP_IMM (-1U); break;
+ case '^': used_bits |= ENCODE_MIPS_SDP_IMM (-1U); break;
+ case '&': used_bits |= ENCODE_MIPS_SWP_IMM (-1U); break;
+ default:
+ goto unknown_validate_operand;
+ }
+ break;
default:
goto unknown_validate_operand;
}
@@ -2035,7 +2047,7 @@ macro_build (expressionS *ep, const char *name, const char *fmt, ...)
va_start (args, fmt);
r = BFD_RELOC_UNUSED;
- mo = (struct riscv_opcode *) str_hash_find (op_hash, name);
+ mo = str_hash_find (op_hash, name);
gas_assert (mo);
/* Find a non-RVC variant of the instruction. append_insn will compress
@@ -2851,7 +2863,7 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
break;
}
- insn = (struct riscv_opcode *) str_hash_find (hash, str);
+ insn = str_hash_find (hash, str);
probing_insn_operands = true;
@@ -4179,6 +4191,92 @@ riscv_ip (char *str, struct riscv_cl_insn *ip, expressionS *imm_expr,
#undef ENCODE_UIMM_BIT_FIELD
break;
+ case 'm': /* Vendor-specific (MIPS) operands. */
+ switch (*++oparg)
+ {
+ case '@': /* hint 0 - 31. */
+ my_getExpression (imm_expr, asarg);
+ check_absolute_expr (ip, imm_expr, FALSE);
+ if ((unsigned long)imm_expr->X_add_number > 31)
+ as_bad(_("Improper hint amount (%lu)"),
+ (unsigned long)imm_expr->X_add_number);
+ INSERT_OPERAND(MIPS_HINT, *ip, imm_expr->X_add_number);
+ imm_expr->X_op = O_absent;
+ asarg = expr_parse_end;
+ continue;
+
+ case '#': /* immediate 0 - 511. */
+ my_getExpression (imm_expr, asarg);
+ check_absolute_expr (ip, imm_expr, FALSE);
+ if ((unsigned long)imm_expr->X_add_number > 511)
+ as_bad(_("Improper immediate amount (%lu)"),
+ (unsigned long)imm_expr->X_add_number);
+ INSERT_OPERAND(MIPS_IMM9, *ip, imm_expr->X_add_number);
+ imm_expr->X_op = O_absent;
+ asarg = expr_parse_end;
+ continue;
+
+ case '$': /* LDP offset 0 to (1<<7)-8. */
+ my_getExpression (imm_expr, asarg);
+ check_absolute_expr (ip, imm_expr, FALSE);
+ if ((unsigned long)imm_expr->X_add_number >= (1 << 7)
+ || ((unsigned long)imm_expr->X_add_number & 0x7) != 0)
+ as_bad(_("Improper LDP offset amount (%lu)"),
+ (unsigned long)imm_expr->X_add_number);
+ INSERT_OPERAND(MIPS_LDP_OFFSET, *ip,
+ (imm_expr->X_add_number >> 3));
+ imm_expr->X_op = O_absent;
+ asarg = expr_parse_end;
+ continue;
+
+ case '%': /* LWP offset 0 to (1<<7)-4. */
+ my_getExpression (imm_expr, asarg);
+ check_absolute_expr (ip, imm_expr, FALSE);
+ if ((unsigned long)imm_expr->X_add_number >= (1 << 7)
+ || ((unsigned long)imm_expr->X_add_number & 0x3) != 0)
+ as_bad(_("Improper LWP offset amount (%lu)"),
+ (unsigned long)imm_expr->X_add_number);
+ INSERT_OPERAND(MIPS_LWP_OFFSET, *ip,
+ (imm_expr->X_add_number >> 2));
+ imm_expr->X_op = O_absent;
+ asarg = expr_parse_end;
+ continue;
+
+ case '^': /* SDP offset 0 to (1<<7)-8. */
+ my_getExpression (imm_expr, asarg);
+ check_absolute_expr (ip, imm_expr, FALSE);
+ if ((unsigned long)imm_expr->X_add_number >= (1 << 7)
+ || ((unsigned long)imm_expr->X_add_number & 0x7) != 0)
+ as_bad(_("Improper SDP offset amount (%lu)"),
+ (unsigned long)imm_expr->X_add_number);
+ INSERT_OPERAND(MIPS_SDP_OFFSET10, *ip,
+ (imm_expr->X_add_number >> 3));
+ INSERT_OPERAND(MIPS_SDP_OFFSET25, *ip,
+ (imm_expr->X_add_number >> 5));
+ imm_expr->X_op = O_absent;
+ asarg = expr_parse_end;
+ continue;
+
+ case '&': /* SWP offset 0 to (1<<7)-4. */
+ my_getExpression (imm_expr, asarg);
+ check_absolute_expr (ip, imm_expr, FALSE);
+ if ((unsigned long)imm_expr->X_add_number >= (1 << 7)
+ || ((unsigned long)imm_expr->X_add_number & 0x3) != 0)
+ as_bad(_("Improper SWP offset amount (%lu)"),
+ (unsigned long)imm_expr->X_add_number);
+ INSERT_OPERAND(MIPS_SWP_OFFSET9, *ip,
+ (imm_expr->X_add_number >> 2));
+ INSERT_OPERAND(MIPS_SWP_OFFSET25, *ip,
+ (imm_expr->X_add_number >> 5));
+ imm_expr->X_op = O_absent;
+ asarg = expr_parse_end;
+ continue;
+
+ default:
+ goto unknown_riscv_ip_operand;
+ }
+ break;
+
default:
goto unknown_riscv_ip_operand;
}
@@ -4753,7 +4851,13 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg)
bfd_vma delta = target - md_pcrel_from (fixP);
bfd_putl32 (bfd_getl32 (buf) | ENCODE_JTYPE_IMM (delta), buf);
if (!riscv_opts.relax && S_IS_LOCAL (fixP->fx_addsy))
- fixP->fx_done = 1;
+ {
+ if (!VALID_JTYPE_IMM (delta))
+ as_bad_where (fixP->fx_file, fixP->fx_line,
+ _("invalid J-type offset (%+lld)"),
+ (long long) delta);
+ fixP->fx_done = 1;
+ }
}
break;
@@ -4765,7 +4869,13 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg)
bfd_vma delta = target - md_pcrel_from (fixP);
bfd_putl32 (bfd_getl32 (buf) | ENCODE_BTYPE_IMM (delta), buf);
if (!riscv_opts.relax && S_IS_LOCAL (fixP->fx_addsy))
- fixP->fx_done = 1;
+ {
+ if (!VALID_BTYPE_IMM (delta))
+ as_bad_where (fixP->fx_file, fixP->fx_line,
+ _("invalid B-type offset (%+lld)"),
+ (long long) delta);
+ fixP->fx_done = 1;
+ }
}
break;
@@ -4777,7 +4887,13 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg)
bfd_vma delta = target - md_pcrel_from (fixP);
bfd_putl16 (bfd_getl16 (buf) | ENCODE_CBTYPE_IMM (delta), buf);
if (!riscv_opts.relax && S_IS_LOCAL (fixP->fx_addsy))
- fixP->fx_done = 1;
+ {
+ if (!VALID_CBTYPE_IMM (delta))
+ as_bad_where (fixP->fx_file, fixP->fx_line,
+ _("invalid CB-type offset (%+lld)"),
+ (long long) delta);
+ fixP->fx_done = 1;
+ }
}
break;
@@ -4789,7 +4905,13 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg)
bfd_vma delta = target - md_pcrel_from (fixP);
bfd_putl16 (bfd_getl16 (buf) | ENCODE_CJTYPE_IMM (delta), buf);
if (!riscv_opts.relax && S_IS_LOCAL (fixP->fx_addsy))
- fixP->fx_done = 1;
+ {
+ if (!VALID_CJTYPE_IMM (delta))
+ as_bad_where (fixP->fx_file, fixP->fx_line,
+ _("invalid CJ-type offset (%+lld)"),
+ (long long) delta);
+ fixP->fx_done = 1;
+ }
}
break;
@@ -4824,7 +4946,14 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg)
| ENCODE_UTYPE_IMM (RISCV_CONST_HIGH_PART (value)),
buf);
if (!riscv_opts.relax)
- fixP->fx_done = 1;
+ {
+ if (xlen > 32
+ && !VALID_UTYPE_IMM (RISCV_CONST_HIGH_PART (value)))
+ as_bad_where (fixP->fx_file, fixP->fx_line,
+ _("invalid pcrel_hi offset (%+lld)"),
+ (long long) value);
+ fixP->fx_done = 1;
+ }
}
relaxable = true;
break;
@@ -4850,7 +4979,8 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg)
bfd_putl32 (bfd_getl32 (buf) | ENCODE_STYPE_IMM (value), buf);
else
bfd_putl32 (bfd_getl32 (buf) | ENCODE_ITYPE_IMM (value), buf);
- /* Relaxations should never be enabled by `.option relax'. */
+ /* Relaxations should never be enabled by `.option relax'.
+ The offset is checked by corresponding %pcrel_hi entry. */
if (!riscv_opts.relax)
fixP->fx_done = 1;
}
@@ -4932,7 +5062,7 @@ s_riscv_option (int x ATTRIBUTE_UNUSED)
{
char *name = input_line_pointer, ch;
- while (!is_end_of_line[(unsigned char) *input_line_pointer])
+ while (!is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
ch = *input_line_pointer;
*input_line_pointer = '\0';
@@ -4940,13 +5070,13 @@ s_riscv_option (int x ATTRIBUTE_UNUSED)
if (strcmp (name, "rvc") == 0)
{
riscv_update_subset (&riscv_rps_as, "+c");
- riscv_set_arch_str (&riscv_rps_as.subset_list->arch_str);
+ riscv_arch_str (xlen, riscv_rps_as.subset_list, true/* update */);
riscv_set_rvc (true);
}
else if (strcmp (name, "norvc") == 0)
{
riscv_update_subset (&riscv_rps_as, "-c");
- riscv_set_arch_str (&riscv_rps_as.subset_list->arch_str);
+ riscv_arch_str (xlen, riscv_rps_as.subset_list, true/* update */);
riscv_set_rvc (false);
}
else if (strcmp (name, "pic") == 0)
@@ -4967,7 +5097,7 @@ s_riscv_option (int x ATTRIBUTE_UNUSED)
if (is_whitespace (*name) && *name != '\0')
name++;
riscv_update_subset (&riscv_rps_as, name);
- riscv_set_arch_str (&riscv_rps_as.subset_list->arch_str);
+ riscv_arch_str (xlen, riscv_rps_as.subset_list, true/* update */);
riscv_set_rvc (riscv_subset_supports (&riscv_rps_as, "c")
|| riscv_subset_supports (&riscv_rps_as, "zca"));
@@ -5373,7 +5503,7 @@ RISC-V options:\n\
-fno-pic don't generate position-independent code (default)\n\
-march=ISA set the RISC-V architecture\n\
-misa-spec=ISAspec set the RISC-V ISA spec (2.2, 20190608, 20191213)\n\
- -mpriv-spec=PRIVspec set the RISC-V privilege spec (1.10, 1.11, 1.12)\n\
+ -mpriv-spec=PRIVspec set the RISC-V privilege spec (1.10, 1.11, 1.12, 1.13)\n\
-mabi=ABI set the RISC-V ABI\n\
-mrelax enable relax (default)\n\
-mno-relax disable relax\n\
@@ -5474,7 +5604,7 @@ s_riscv_insn (int x ATTRIBUTE_UNUSED)
bfd_reloc_code_real_type imm_reloc = BFD_RELOC_UNUSED;
char save_c;
- while (!is_end_of_line[(unsigned char) *input_line_pointer])
+ while (!is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
save_c = *input_line_pointer;
@@ -5758,35 +5888,6 @@ s_variant_cc (int ignored ATTRIBUTE_UNUSED)
elfsym->internal_elf_sym.st_other |= STO_RISCV_VARIANT_CC;
}
-/* Same as elf_copy_symbol_attributes, but without copying st_other.
- This is needed so RISC-V specific st_other values can be independently
- specified for an IFUNC resolver (that is called by the dynamic linker)
- and the symbol it resolves (aliased to the resolver). In particular,
- 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. Requiring the directive on the IFUNC resolver
- symbol would be unexpected and problematic in C code, where the two
- symbols appear as two independent function declarations. */
-
-void
-riscv_elf_copy_symbol_attributes (symbolS *dest, symbolS *src)
-{
- struct elf_obj_sy *srcelf = symbol_get_obj (src);
- struct elf_obj_sy *destelf = symbol_get_obj (dest);
- /* If size is unset, copy size from src. Because we don't track whether
- .size has been used, we can't differentiate .size dest, 0 from the case
- where dest's size is unset. */
- if (!destelf->size && S_GET_SIZE (dest) == 0)
- {
- if (srcelf->size)
- {
- destelf->size = XNEW (expressionS);
- *destelf->size = *srcelf->size;
- }
- S_SET_SIZE (dest, S_GET_SIZE (src));
- }
-}
-
/* RISC-V pseudo-ops table. */
static const pseudo_typeS riscv_pseudo_table[] =
{
@@ -5802,6 +5903,7 @@ static const pseudo_typeS riscv_pseudo_table[] =
{"attribute", s_riscv_attribute, 0},
{"variant_cc", s_variant_cc, 0},
{"float16", float_cons, 'h'},
+ {"bfloat16", float_cons, 'b'},
{ NULL, NULL, 0 },
};
diff --git a/gas/config/tc-riscv.h b/gas/config/tc-riscv.h
index e2e8e7a..853f349 100644
--- a/gas/config/tc-riscv.h
+++ b/gas/config/tc-riscv.h
@@ -64,7 +64,7 @@ extern bool riscv_frag_align_code (int);
extern void riscv_handle_align (fragS *);
#define HANDLE_ALIGN(s, f) riscv_handle_align (f)
-#define MAX_MEM_FOR_RS_ALIGN_CODE (3 + 4)
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (3 + 4)
/* The ISA of the target may change based on command-line arguments. */
#define TARGET_FORMAT riscv_target_format ()
@@ -175,8 +175,16 @@ extern void riscv_init_frag (struct frag *, int);
#define obj_adjust_symtab() riscv_adjust_symtab ()
extern void riscv_adjust_symtab (void);
-void riscv_elf_copy_symbol_attributes (symbolS *, symbolS *);
+/* Don't copy st_other.
+ This is needed so RISC-V specific st_other values can be independently
+ specified for an IFUNC resolver (that is called by the dynamic linker)
+ and the symbol it resolves (aliased to the resolver). In particular,
+ 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. Requiring the directive on the IFUNC resolver
+ symbol would be unexpected and problematic in C code, where the two
+ symbols appear as two independent function declarations. */
#define OBJ_COPY_SYMBOL_ATTRIBUTES(DEST, SRC) \
- riscv_elf_copy_symbol_attributes (DEST, SRC)
+ elf_copy_symbol_size (DEST, SRC)
#endif /* TC_RISCV */
diff --git a/gas/config/tc-rl78.c b/gas/config/tc-rl78.c
index 7492d3c..3593b00 100644
--- a/gas/config/tc-rl78.c
+++ b/gas/config/tc-rl78.c
@@ -431,8 +431,7 @@ require_end_of_expr (const char *fname)
if (is_end_of_stmt (* input_line_pointer)
|| * input_line_pointer == ','
|| strchr (comment_chars, * input_line_pointer)
- || strchr (line_comment_chars, * input_line_pointer)
- || strchr (line_separator_chars, * input_line_pointer))
+ || strchr (line_comment_chars, * input_line_pointer))
return;
as_bad (_("%%%s() must be outermost term in expression"), fname);
@@ -1421,7 +1420,7 @@ md_apply_fix (struct fix * f ATTRIBUTE_UNUSED,
return;
op = f->fx_frag->fr_literal + f->fx_where;
- val = (unsigned long) * t;
+ val = *t;
if (f->fx_addsy == NULL)
f->fx_done = 1;
diff --git a/gas/config/tc-rl78.h b/gas/config/tc-rl78.h
index 4a51325..09d9987 100644
--- a/gas/config/tc-rl78.h
+++ b/gas/config/tc-rl78.h
@@ -75,7 +75,7 @@ extern void rl78_cons_fix_new (fragS *, int, int, expressionS *);
#define RELOC_EXPANSION_POSSIBLE 1
#define MAX_RELOC_EXPANSION 8
-#define MAX_MEM_FOR_RS_ALIGN_CODE 8
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) 8
#define HANDLE_ALIGN(SEC, FRAG) rl78_handle_align (FRAG)
extern void rl78_handle_align (fragS *);
diff --git a/gas/config/tc-rx.c b/gas/config/tc-rx.c
index bd45c53..0ecda64 100644
--- a/gas/config/tc-rx.c
+++ b/gas/config/tc-rx.c
@@ -2256,9 +2256,9 @@ rx_cons_fix_new (fragS * frag,
}
void
-md_apply_fix (struct fix * f ATTRIBUTE_UNUSED,
- valueT * t ATTRIBUTE_UNUSED,
- segT s ATTRIBUTE_UNUSED)
+md_apply_fix (struct fix *f,
+ valueT *t,
+ segT s ATTRIBUTE_UNUSED)
{
/* Instruction bytes are always little endian. */
char * op;
@@ -2274,7 +2274,7 @@ md_apply_fix (struct fix * f ATTRIBUTE_UNUSED,
#define OP4(x) op[target_big_endian ? 3-x : x]
op = f->fx_frag->fr_literal + f->fx_where;
- val = (unsigned long) * t;
+ val = *t;
/* Opcode words are always the same endian. Data words are either
big or little endian. */
diff --git a/gas/config/tc-rx.h b/gas/config/tc-rx.h
index 3c4524f..29c4382 100644
--- a/gas/config/tc-rx.h
+++ b/gas/config/tc-rx.h
@@ -96,7 +96,7 @@ extern void rx_cons_fix_new (fragS *, int, int, expressionS *,
goto around; \
}
-#define MAX_MEM_FOR_RS_ALIGN_CODE 8
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) 8
#define HANDLE_ALIGN(SEC, FRAG) rx_handle_align (FRAG)
extern void rx_handle_align (fragS *);
diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c
index a0cfeea..6e9dca0 100644
--- a/gas/config/tc-s390.c
+++ b/gas/config/tc-s390.c
@@ -343,7 +343,7 @@ s390_parse_cpu (const char *arg,
S390_INSTR_FLAG_HTM | S390_INSTR_FLAG_VX },
{ STRING_COMMA_LEN ("z16"), STRING_COMMA_LEN ("arch14"),
S390_INSTR_FLAG_HTM | S390_INSTR_FLAG_VX },
- { STRING_COMMA_LEN (""), STRING_COMMA_LEN ("arch15"),
+ { STRING_COMMA_LEN ("z17"), STRING_COMMA_LEN ("arch15"),
S390_INSTR_FLAG_HTM | S390_INSTR_FLAG_VX }
};
static struct
@@ -1931,8 +1931,8 @@ md_assemble (char *str)
*s++ = '\0';
/* Look up the opcode in the hash table. */
- opcode = (struct s390_opcode *) str_hash_find (s390_opcode_hash, str);
- if (opcode == (const struct s390_opcode *) NULL)
+ opcode = str_hash_find (s390_opcode_hash, str);
+ if (opcode == NULL)
{
as_bad (_("Unrecognized opcode: `%s'"), str);
return;
@@ -1988,9 +1988,8 @@ s390_insn (int ignore ATTRIBUTE_UNUSED)
*s++ = '\0';
/* Look up the opcode in the hash table. */
- opformat = (struct s390_opcode *)
- str_hash_find (s390_opformat_hash, input_line_pointer);
- if (opformat == (const struct s390_opcode *) NULL)
+ opformat = str_hash_find (s390_opformat_hash, input_line_pointer);
+ if (opformat == NULL)
{
as_bad (_("Unrecognized opcode format: `%s'"), input_line_pointer);
return;
diff --git a/gas/config/tc-score.c b/gas/config/tc-score.c
index 431147f..79dcf77 100644
--- a/gas/config/tc-score.c
+++ b/gas/config/tc-score.c
@@ -1040,7 +1040,7 @@ s3_score_reg_parse (char **ccp, htab_t htab)
c = *p++;
*--p = 0;
- reg = (struct s3_reg_entry *) str_hash_find (htab, start);
+ reg = str_hash_find (htab, start);
*p = c;
if (reg)
@@ -2199,8 +2199,7 @@ s3_dependency_type_from_insn (char *insn_name)
const struct s3_insn_to_dependency *tmp;
strcpy (name, insn_name);
- tmp = (const struct s3_insn_to_dependency *)
- str_hash_find (s3_dependency_insn_hsh, name);
+ tmp = str_hash_find (s3_dependency_insn_hsh, name);
if (tmp)
return tmp->type;
@@ -2659,8 +2658,7 @@ s3_parse_16_32_inst (char *insnstr, bool gen_frag_p)
c = *p;
*p = '\0';
- opcode = (const struct s3_asm_opcode *) str_hash_find (s3_score_ops_hsh,
- operator);
+ opcode = str_hash_find (s3_score_ops_hsh, operator);
*p = c;
memset (&s3_inst, '\0', sizeof (s3_inst));
@@ -2706,8 +2704,7 @@ s3_parse_48_inst (char *insnstr, bool gen_frag_p)
c = *p;
*p = '\0';
- opcode = (const struct s3_asm_opcode *) str_hash_find (s3_score_ops_hsh,
- operator);
+ opcode = str_hash_find (s3_score_ops_hsh, operator);
*p = c;
memset (&s3_inst, '\0', sizeof (s3_inst));
@@ -5767,7 +5764,7 @@ s3_s_score_end (int x ATTRIBUTE_UNUSED)
expressionS exp;
char *fragp;
- if (!is_end_of_line[(unsigned char)*input_line_pointer])
+ if (!is_end_of_stmt (*input_line_pointer))
{
p = s3_get_symbol ();
demand_empty_rest_of_line ();
@@ -5837,7 +5834,7 @@ s3_s_score_set (int x ATTRIBUTE_UNUSED)
char name[s3_MAX_LITERAL_POOL_SIZE];
char * orig_ilp = input_line_pointer;
- while (!is_end_of_line[(unsigned char)*input_line_pointer])
+ while (!is_end_of_stmt (*input_line_pointer))
{
name[i] = (char) * input_line_pointer;
i++;
@@ -6085,7 +6082,7 @@ s3_s_score_lcomm (int bytes_p)
SKIP_WHITESPACE ();
}
- if (is_end_of_line[(unsigned char)*input_line_pointer])
+ if (is_end_of_stmt (*input_line_pointer))
{
as_bad (_("missing size expression"));
return;
@@ -6119,7 +6116,7 @@ s3_s_score_lcomm (int bytes_p)
++input_line_pointer;
SKIP_WHITESPACE ();
- if (is_end_of_line[(unsigned char)*input_line_pointer])
+ if (is_end_of_stmt (*input_line_pointer))
{
as_bad (_("missing alignment"));
return;
diff --git a/gas/config/tc-score.h b/gas/config/tc-score.h
index 92776c8..e02ff8f 100644
--- a/gas/config/tc-score.h
+++ b/gas/config/tc-score.h
@@ -30,7 +30,7 @@
#define DIFF_EXPR_OK
#define RELOC_EXPANSION_POSSIBLE
#define MAX_RELOC_EXPANSION 2
-#define MAX_MEM_FOR_RS_ALIGN_CODE (3 + 4)
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (3 + 4)
#define md_undefined_symbol(name) NULL
diff --git a/gas/config/tc-score7.c b/gas/config/tc-score7.c
index 63a720e..b11f69f 100644
--- a/gas/config/tc-score7.c
+++ b/gas/config/tc-score7.c
@@ -1129,7 +1129,7 @@ s7_score_reg_parse (char **ccp, htab_t htab)
c = *p++;
*--p = 0;
- reg = (struct s7_reg_entry *) str_hash_find (htab, start);
+ reg = str_hash_find (htab, start);
*p = c;
if (reg)
@@ -2321,8 +2321,7 @@ s7_dependency_type_from_insn (char *insn_name)
const struct s7_insn_to_dependency *tmp;
strcpy (name, insn_name);
- tmp = (const struct s7_insn_to_dependency *)
- str_hash_find (s7_dependency_insn_hsh, name);
+ tmp = str_hash_find (s7_dependency_insn_hsh, name);
if (tmp)
return tmp->type;
@@ -2790,8 +2789,7 @@ s7_parse_16_32_inst (char *insnstr, bool gen_frag_p)
c = *p;
*p = '\0';
- opcode = (const struct s7_asm_opcode *) str_hash_find (s7_score_ops_hsh,
- operator);
+ opcode = str_hash_find (s7_score_ops_hsh, operator);
*p = c;
memset (&s7_inst, '\0', sizeof (s7_inst));
@@ -5608,7 +5606,7 @@ s7_s_score_end (int x ATTRIBUTE_UNUSED)
expressionS exp;
char *fragp;
- if (!is_end_of_line[(unsigned char)*input_line_pointer])
+ if (!is_end_of_stmt (*input_line_pointer))
{
p = s7_get_symbol ();
demand_empty_rest_of_line ();
@@ -5679,7 +5677,7 @@ s7_s_score_set (int x ATTRIBUTE_UNUSED)
char name[s7_MAX_LITERAL_POOL_SIZE];
char * orig_ilp = input_line_pointer;
- while (!is_end_of_line[(unsigned char)*input_line_pointer])
+ while (!is_end_of_stmt (*input_line_pointer))
{
name[i] = (char) * input_line_pointer;
i++;
@@ -5931,7 +5929,7 @@ s7_s_score_lcomm (int bytes_p)
SKIP_WHITESPACE ();
}
- if (is_end_of_line[(unsigned char)*input_line_pointer])
+ if (is_end_of_stmt (*input_line_pointer))
{
as_bad (_("missing size expression"));
return;
@@ -5965,7 +5963,7 @@ s7_s_score_lcomm (int bytes_p)
++input_line_pointer;
SKIP_WHITESPACE ();
- if (is_end_of_line[(unsigned char)*input_line_pointer])
+ if (is_end_of_stmt (*input_line_pointer))
{
as_bad (_("missing alignment"));
return;
@@ -6845,7 +6843,7 @@ s7_gen_reloc (asection * section ATTRIBUTE_UNUSED, fixS * fixp)
s7_number_to_chars (buf, newval, s7_INSN_SIZE);
retval[1] = notes_alloc (sizeof (arelent));
- retval[2]->sym_ptr_ptr = notes_alloc (sizeof (asymbol *));
+ retval[1]->sym_ptr_ptr = notes_alloc (sizeof (asymbol *));
retval[2] = NULL;
*retval[1]->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
retval[1]->address = (reloc->address + s7_RELAX_RELOC2 (fixp->fx_frag->fr_subtype));
diff --git a/gas/config/tc-sh.c b/gas/config/tc-sh.c
index 850e838..c37306f 100644
--- a/gas/config/tc-sh.c
+++ b/gas/config/tc-sh.c
@@ -452,7 +452,7 @@ sh_elf_cons (int nbytes)
input_line_pointer--; /* Put terminator back into stream. */
if (*input_line_pointer == '#' || *input_line_pointer == '!')
{
- while (! is_end_of_line[(unsigned char) *input_line_pointer++]);
+ while (! is_end_of_stmt (*input_line_pointer++));
}
else
demand_empty_rest_of_line ();
@@ -544,6 +544,7 @@ sh_optimize_expr (expressionS *l, operatorT op, expressionS *r)
add_to_result (l, symval_diff, symval_diff < 0);
l->X_op = O_constant;
l->X_add_symbol = 0;
+ l->X_unsigned = 0;
return 1;
}
return 0;
@@ -2180,7 +2181,7 @@ find_cooked_opcode (char **str_p)
if (nlen == 0)
as_bad (_("can't find opcode "));
- return (sh_opcode_info *) str_hash_find (opcode_hash_control, name);
+ return str_hash_find (opcode_hash_control, name);
}
/* Assemble a parallel processing insn. */
@@ -3396,7 +3397,7 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
char *buf = fixP->fx_where + fixP->fx_frag->fr_literal;
int lowbyte = target_big_endian ? 1 : 0;
int highbyte = target_big_endian ? 0 : 1;
- long val = (long) *valP;
+ long val = *valP;
long max, min;
int shift;
diff --git a/gas/config/tc-sh.h b/gas/config/tc-sh.h
index fb1e4b8..1ed0f5e 100644
--- a/gas/config/tc-sh.h
+++ b/gas/config/tc-sh.h
@@ -56,7 +56,7 @@ extern int sh_optimize_expr (expressionS *, operatorT, expressionS *);
#define HANDLE_ALIGN(sec, frag) sh_handle_align (frag)
extern void sh_handle_align (fragS *);
-#define MAX_MEM_FOR_RS_ALIGN_CODE (1 + 2)
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (1 + 2)
/* We need to force out some relocations when relaxing. */
#define TC_FORCE_RELOCATION(fix) sh_force_relocation (fix)
diff --git a/gas/config/tc-sparc.c b/gas/config/tc-sparc.c
index a22efbf..6db8481 100644
--- a/gas/config/tc-sparc.c
+++ b/gas/config/tc-sparc.c
@@ -979,9 +979,9 @@ md_begin (void)
{
const struct sparc_opcode *insn;
const char *name = ((sparc_arch_size == 32)
- ? native_op_table[i].name32
- : native_op_table[i].name64);
- insn = (struct sparc_opcode *) str_hash_find (op_hash, name);
+ ? native_op_table[i].name32
+ : native_op_table[i].name64);
+ insn = str_hash_find (op_hash, name);
if (insn == NULL)
{
as_bad (_("Internal error: can't find opcode `%s' for `%s'\n"),
@@ -1756,7 +1756,7 @@ sparc_ip (char *str, const struct sparc_opcode **pinsn)
*pinsn = NULL;
return special_case;
}
- insn = (struct sparc_opcode *) str_hash_find (op_hash, str);
+ insn = str_hash_find (op_hash, str);
*pinsn = insn;
if (insn == NULL)
{
@@ -3460,7 +3460,7 @@ void
md_apply_fix (fixS *fixP, valueT *valP, segT segment ATTRIBUTE_UNUSED)
{
char *buf = fixP->fx_where + fixP->fx_frag->fr_literal;
- offsetT val = * (offsetT *) valP;
+ offsetT val = *valP;
long insn;
gas_assert (fixP->fx_r_type < BFD_RELOC_UNUSED);
@@ -4450,7 +4450,7 @@ s_data1 (void)
static void
s_proc (int ignore ATTRIBUTE_UNUSED)
{
- while (!is_end_of_line[(unsigned char) *input_line_pointer])
+ while (!is_end_of_stmt (*input_line_pointer))
{
++input_line_pointer;
}
@@ -4817,7 +4817,7 @@ sparc_cons (expressionS *exp, int size)
char *end = ++input_line_pointer;
int npar = 0;
- while (! is_end_of_line[(c = *end)])
+ while (! is_end_of_stmt (c = *end))
{
if (c == '(')
npar++;
@@ -4848,7 +4848,7 @@ sparc_cons (expressionS *exp, int size)
input_line_pointer++;
SKIP_WHITESPACE ();
c = *input_line_pointer;
- if (! is_end_of_line[c] && c != ',')
+ if (! is_end_of_stmt (c) && c != ',')
as_bad (_("Illegal operands: garbage after %%r_%s%d()"),
sparc_cons_special_reloc, size * 8);
}
diff --git a/gas/config/tc-sparc.h b/gas/config/tc-sparc.h
index b87212f..d569fe7 100644
--- a/gas/config/tc-sparc.h
+++ b/gas/config/tc-sparc.h
@@ -78,7 +78,7 @@ extern void sparc_cons_align (int);
#define HANDLE_ALIGN(sec, fragp) sparc_handle_align (fragp)
extern void sparc_handle_align (struct frag *);
-#define MAX_MEM_FOR_RS_ALIGN_CODE (3 + 4 + 4)
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (3 + 4 + 4)
#define DIFF_EXPR_OK /* foo-. gets turned into PC relative relocs */
diff --git a/gas/config/tc-spu.c b/gas/config/tc-spu.c
index 335fffc..1c8f7c5 100644
--- a/gas/config/tc-spu.c
+++ b/gas/config/tc-spu.c
@@ -273,7 +273,7 @@ md_assemble (char *op)
/* try to find the instruction in the hash table */
- if ((format = (struct spu_opcode *) str_hash_find (op_hash, op)) == NULL)
+ if ((format = str_hash_find (op_hash, op)) == NULL)
{
as_bad (_("Invalid mnemonic '%s'"), op);
return;
diff --git a/gas/config/tc-spu.h b/gas/config/tc-spu.h
index 4c16485..7089615 100644
--- a/gas/config/tc-spu.h
+++ b/gas/config/tc-spu.h
@@ -104,6 +104,6 @@ extern symbolS *section_symbol (asection *);
extern void spu_handle_align (fragS *);
#define HANDLE_ALIGN(sec, frag) spu_handle_align (frag)
-#define MAX_MEM_FOR_RS_ALIGN_CODE (7 + 8)
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (7 + 8)
#endif /* TC_SPU */
diff --git a/gas/config/tc-tic30.c b/gas/config/tc-tic30.c
index 6aad8f8..87cf09a 100644
--- a/gas/config/tc-tic30.c
+++ b/gas/config/tc-tic30.c
@@ -287,7 +287,7 @@ tic30_find_parallel_insn (char *current_line, char *next_line)
char *parallel_insn;
debug ("In tic30_find_parallel_insn()\n");
- while (!is_end_of_line[(unsigned char) *next_line])
+ while (!is_end_of_stmt (*next_line))
{
if (*next_line == PARALLEL_SEPARATOR
&& *(next_line + 1) == PARALLEL_SEPARATOR)
@@ -326,7 +326,7 @@ tic30_find_parallel_insn (char *current_line, char *next_line)
int char_ptr = 0;
char c;
- while (!is_end_of_line[(unsigned char) (c = *line)])
+ while (!is_end_of_stmt (c = *line))
{
if (is_opcode_char (c) && search_status == NONE)
{
@@ -516,7 +516,7 @@ tic30_operand (char *token)
return NULL;
}
- ind_addr_op = (ind_addr_type *) str_hash_find (ind_hash, ind_buffer);
+ ind_addr_op = str_hash_find (ind_hash, ind_buffer);
if (ind_addr_op)
{
debug ("Found indirect reference: %s\n", ind_addr_op->syntax);
@@ -555,7 +555,7 @@ tic30_operand (char *token)
}
else
{
- reg *regop = (reg *) str_hash_find (reg_hash, token);
+ reg *regop = str_hash_find (reg_hash, token);
if (regop)
{
@@ -652,7 +652,7 @@ tic30_parallel_insn (char *token)
/* Find instruction. */
save_char = *current_posn;
*current_posn = '\0';
- p_opcode = (partemplate *) str_hash_find (parop_hash, token);
+ p_opcode = str_hash_find (parop_hash, token);
if (p_opcode)
{
debug ("Found instruction %s\n", p_opcode->name);
@@ -697,7 +697,7 @@ tic30_parallel_insn (char *token)
debug ("first_opcode = %s\n", first_opcode);
debug ("second_opcode = %s\n", second_opcode);
sprintf (token, "q_%s_%s", second_opcode, first_opcode);
- p_opcode = (partemplate *) str_hash_find (parop_hash, token);
+ p_opcode = str_hash_find (parop_hash, token);
if (p_opcode)
{
@@ -1206,7 +1206,7 @@ md_atof (int what_statement_type,
debug ("literal = %s\n", literalP);
debug ("line = ");
token = input_line_pointer;
- while (!is_end_of_line[(unsigned char) *input_line_pointer]
+ while (!is_end_of_stmt (*input_line_pointer)
&& (*input_line_pointer != ','))
{
debug ("%c", *input_line_pointer);
@@ -1443,7 +1443,7 @@ md_assemble (char *line)
/* Find instruction. */
save_char = *current_posn;
*current_posn = '\0';
- op = (insn_template *) str_hash_find (op_hash, token_start);
+ op = str_hash_find (op_hash, token_start);
if (op)
{
debug ("Found instruction %s\n", op->name);
diff --git a/gas/config/tc-tic4x.c b/gas/config/tc-tic4x.c
index d7d31ab..167a94f 100644
--- a/gas/config/tc-tic4x.c
+++ b/gas/config/tc-tic4x.c
@@ -1010,7 +1010,7 @@ tic4x_sect (int x ATTRIBUTE_UNUSED)
recognised and scanning extends into the next line, stopping with
an error (blame Volker Kuhlmann <v.kuhlmann@elec.canterbury.ac.nz>
if this is not true). */
- if (is_end_of_line[(unsigned char) c])
+ if (is_end_of_stmt (c))
*(--input_line_pointer) = c;
demand_empty_rest_of_line ();
@@ -2450,8 +2450,7 @@ md_assemble (char *str)
if (insn->in_use)
{
- if ((insn->inst = (struct tic4x_inst *)
- str_hash_find (tic4x_op_hash, insn->name)) == NULL)
+ if ((insn->inst = str_hash_find (tic4x_op_hash, insn->name)) == NULL)
{
as_bad (_("Unknown opcode `%s'."), insn->name);
insn->parallel = 0;
diff --git a/gas/config/tc-tic54x.c b/gas/config/tc-tic54x.c
index 64b0fb4..db3def4 100644
--- a/gas/config/tc-tic54x.c
+++ b/gas/config/tc-tic54x.c
@@ -361,7 +361,7 @@ tic54x_asg (int x ATTRIBUTE_UNUSED)
str = input_line_pointer;
while ((c = *input_line_pointer) != ',')
{
- if (is_end_of_line[(unsigned char) c])
+ if (is_end_of_stmt (c))
break;
++input_line_pointer;
}
@@ -677,7 +677,7 @@ tic54x_struct (int arg)
{
/* Offset is ignored in inner structs. */
SKIP_WHITESPACE ();
- if (!is_end_of_line[(unsigned char) *input_line_pointer])
+ if (!is_end_of_stmt (*input_line_pointer))
start_offset = get_absolute_expression ();
else
start_offset = 0;
@@ -801,7 +801,7 @@ tic54x_tag (int ignore ATTRIBUTE_UNUSED)
{
char *name;
int c = get_symbol_name (&name);
- struct stag *stag = (struct stag *) str_hash_find (stag_hash, name);
+ struct stag *stag = str_hash_find (stag_hash, name);
if (!stag)
{
@@ -867,7 +867,7 @@ tic54x_struct_field (int type)
int longword_align = 0;
SKIP_WHITESPACE ();
- if (!is_end_of_line[(unsigned char) *input_line_pointer])
+ if (!is_end_of_stmt (*input_line_pointer))
count = get_absolute_expression ();
switch (type)
@@ -1137,7 +1137,7 @@ tic54x_global (int type)
if (c == ',')
{
input_line_pointer++;
- if (is_end_of_line[(unsigned char) *input_line_pointer])
+ if (is_end_of_stmt (*input_line_pointer))
c = *input_line_pointer;
}
}
@@ -1546,7 +1546,7 @@ tic54x_version (int x ATTRIBUTE_UNUSED)
SKIP_WHITESPACE ();
ver = input_line_pointer;
- while (!is_end_of_line[(unsigned char) *input_line_pointer])
+ while (!is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
c = *input_line_pointer;
*input_line_pointer = 0;
@@ -1679,7 +1679,7 @@ tic54x_stringer (int type)
}
SKIP_WHITESPACE ();
c = *input_line_pointer;
- if (!is_end_of_line[c])
+ if (!is_end_of_stmt (c))
++input_line_pointer;
}
@@ -1704,7 +1704,7 @@ tic54x_align_words (int arg)
/* Only ".align" with no argument is allowed within .struct/.union. */
int count = arg;
- if (!is_end_of_line[(unsigned char) *input_line_pointer])
+ if (!is_end_of_stmt (*input_line_pointer))
{
if (arg == 2)
as_warn (_("Argument to .even ignored"));
@@ -1959,7 +1959,7 @@ tic54x_include (int ignored ATTRIBUTE_UNUSED)
else
{
filename = input_line_pointer;
- while (!is_end_of_line[(unsigned char) *input_line_pointer])
+ while (!is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
c = *input_line_pointer;
*input_line_pointer = '\0';
@@ -1995,7 +1995,7 @@ tic54x_message (int type)
else
{
msg = input_line_pointer;
- while (!is_end_of_line[(unsigned char) *input_line_pointer])
+ while (!is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
c = *input_line_pointer;
*input_line_pointer = 0;
@@ -2073,7 +2073,7 @@ tic54x_loop (int count)
ILLEGAL_WITHIN_STRUCT ();
SKIP_WHITESPACE ();
- if (!is_end_of_line[(unsigned char) *input_line_pointer])
+ if (!is_end_of_stmt (*input_line_pointer))
count = get_absolute_expression ();
do_repeat ((size_t) count, "LOOP", "ENDLOOP", NULL);
@@ -2098,7 +2098,7 @@ tic54x_break (int ignore ATTRIBUTE_UNUSED)
ILLEGAL_WITHIN_STRUCT ();
SKIP_WHITESPACE ();
- if (!is_end_of_line[(unsigned char) *input_line_pointer])
+ if (!is_end_of_stmt (*input_line_pointer))
cond = get_absolute_expression ();
if (cond)
@@ -2186,7 +2186,7 @@ tic54x_sblock (int ignore ATTRIBUTE_UNUSED)
seg->flags |= SEC_TIC54X_BLOCK;
c = *input_line_pointer;
- if (!is_end_of_line[(unsigned char) c])
+ if (!is_end_of_stmt (c))
++input_line_pointer;
}
@@ -2291,7 +2291,7 @@ tic54x_var (int ignore ATTRIBUTE_UNUSED)
if (c == ',')
{
++input_line_pointer;
- if (is_end_of_line[(unsigned char) *input_line_pointer])
+ if (is_end_of_stmt (*input_line_pointer))
c = *input_line_pointer;
}
}
@@ -2733,7 +2733,7 @@ subsym_isreg (char *a, char *ignore ATTRIBUTE_UNUSED)
static int
subsym_structsz (char *name, char *ignore ATTRIBUTE_UNUSED)
{
- struct stag *stag = (struct stag *) str_hash_find (stag_hash, name);
+ struct stag *stag = str_hash_find (stag_hash, name);
if (stag)
return stag->size;
@@ -3104,7 +3104,7 @@ get_operands (struct opstruct operands[], char *line)
int expecting_operand = 0;
int i;
- while (numexp < MAX_OPERANDS && !is_end_of_line[(unsigned char) *lptr])
+ while (numexp < MAX_OPERANDS && !is_end_of_stmt (*lptr))
{
int paren_not_balanced = 0;
char *op_start, *op_end;
@@ -3166,7 +3166,7 @@ get_operands (struct opstruct operands[], char *line)
while (is_whitespace (*lptr))
++lptr;
- if (!is_end_of_line[(unsigned char) *lptr])
+ if (!is_end_of_stmt (*lptr))
{
as_bad (_("Extra junk on line"));
return -1;
@@ -3667,7 +3667,7 @@ encode_integer (tic54x_insn *insn,
static int
encode_condition (tic54x_insn *insn, struct opstruct *operand)
{
- tic54x_symbol *cc = (tic54x_symbol *) str_hash_find (cc_hash, operand->buf);
+ tic54x_symbol *cc = str_hash_find (cc_hash, operand->buf);
if (!cc)
{
as_bad (_("Unrecognized condition code \"%s\""), operand->buf);
@@ -3727,7 +3727,7 @@ encode_condition (tic54x_insn *insn, struct opstruct *operand)
static int
encode_cc3 (tic54x_insn *insn, struct opstruct *operand)
{
- tic54x_symbol *cc3 = (tic54x_symbol *) str_hash_find (cc3_hash, operand->buf);
+ tic54x_symbol *cc3 = str_hash_find (cc3_hash, operand->buf);
int value = cc3 ? cc3->value : operand->exp.X_add_number << 8;
if ((value & 0x0300) != value)
@@ -3756,7 +3756,7 @@ encode_arx (tic54x_insn *insn, struct opstruct *operand)
static int
encode_cc2 (tic54x_insn *insn, struct opstruct *operand)
{
- tic54x_symbol *cc2 = (tic54x_symbol *) str_hash_find (cc2_hash, operand->buf);
+ tic54x_symbol *cc2 = str_hash_find (cc2_hash, operand->buf);
if (!cc2)
{
@@ -3915,8 +3915,7 @@ encode_operand (tic54x_insn *insn, enum optype type, struct opstruct *operand)
0, 65535, 0xFFFF);
case OP_SBIT:
{
- tic54x_symbol *sbit = (tic54x_symbol *)
- str_hash_find (sbit_hash, operand->buf);
+ tic54x_symbol *sbit = str_hash_find (sbit_hash, operand->buf);
int value = is_absolute (operand) ?
operand->exp.X_add_number : (sbit ? sbit->value : -1);
int reg = 0;
@@ -4170,7 +4169,7 @@ optimize_insn (tic54x_insn *insn)
static int
tic54x_parse_insn (tic54x_insn *insn, char *line)
{
- insn->tm = (insn_template *) str_hash_find (op_hash, insn->mnemonic);
+ insn->tm = str_hash_find (op_hash, insn->mnemonic);
if (!insn->tm)
{
as_bad (_("Unrecognized instruction \"%s\""), insn->mnemonic);
@@ -4193,8 +4192,7 @@ tic54x_parse_insn (tic54x_insn *insn, char *line)
/* SUCCESS! now try some optimizations. */
if (optimize_insn (insn))
{
- insn->tm = (insn_template *) str_hash_find (op_hash,
- insn->mnemonic);
+ insn->tm = str_hash_find (op_hash, insn->mnemonic);
continue;
}
@@ -4229,7 +4227,7 @@ next_line_shows_parallel (char *next_line)
static int
tic54x_parse_parallel_insn_firstline (tic54x_insn *insn, char *line)
{
- insn->tm = (insn_template *) str_hash_find (parop_hash, insn->mnemonic);
+ insn->tm = str_hash_find (parop_hash, insn->mnemonic);
if (!insn->tm)
{
as_bad (_("Unrecognized parallel instruction \"%s\""),
@@ -4415,7 +4413,7 @@ subsym_substitute (char *line, int forced)
int recurse = 1;
int line_conditional = 0;
char *tmp;
- unsigned char current_char;
+ char current_char;
/* Flag lines where we might need to replace a single '=' with two;
GAS uses single '=' to assign macro args values, and possibly other
@@ -4439,7 +4437,7 @@ subsym_substitute (char *line, int forced)
replacement = xstrdup (line);
ptr = head = replacement;
- while (!is_end_of_line[(current_char = * (unsigned char *) ptr)])
+ while (!is_end_of_stmt (current_char = * ptr))
{
/* Need to update this since LINE may have been modified. */
if (eval_line)
@@ -4771,7 +4769,7 @@ tic54x_start_line_hook (void)
/* Work with a copy of the input line, including EOL char. */
for (endp = input_line_pointer; *endp != 0; )
- if (is_end_of_line[(unsigned char) *endp++])
+ if (is_end_of_stmt (*endp++))
break;
line = xmemdup0 (input_line_pointer, endp - input_line_pointer);
@@ -5054,13 +5052,13 @@ tic54x_undefined_symbol (char *name)
tic54x_symbol *sym;
/* Not sure how to handle predefined symbols. */
- if ((sym = (tic54x_symbol *) str_hash_find (cc_hash, name)) != NULL
- || (sym = (tic54x_symbol *) str_hash_find (cc2_hash, name)) != NULL
- || (sym = (tic54x_symbol *) str_hash_find (cc3_hash, name)) != NULL
+ if ((sym = str_hash_find (cc_hash, name)) != NULL
+ || (sym = str_hash_find (cc2_hash, name)) != NULL
+ || (sym = str_hash_find (cc3_hash, name)) != NULL
|| str_hash_find (misc_symbol_hash, name) != NULL
- || (sym = (tic54x_symbol *) str_hash_find (sbit_hash, name)) != NULL
- || (sym = (tic54x_symbol *) str_hash_find (reg_hash, name)) != NULL
- || (sym = (tic54x_symbol *) str_hash_find (mmreg_hash, name)) != NULL
+ || (sym = str_hash_find (sbit_hash, name)) != NULL
+ || (sym = str_hash_find (reg_hash, name)) != NULL
+ || (sym = str_hash_find (mmreg_hash, name)) != NULL
|| !strcasecmp (name, "a")
|| !strcasecmp (name, "b"))
{
@@ -5382,7 +5380,7 @@ tic54x_start_label (char * label_start, int nul_char, int next_char)
}
}
- if (is_end_of_line[(unsigned char) next_char])
+ if (is_end_of_stmt (next_char))
return 1;
rest = input_line_pointer;
diff --git a/gas/config/tc-tic6x.c b/gas/config/tc-tic6x.c
index 93a968c..aeb2239 100644
--- a/gas/config/tc-tic6x.c
+++ b/gas/config/tc-tic6x.c
@@ -846,7 +846,7 @@ tic6x_unrecognized_line (int c)
If it looks like one but not a valid one, give a better
error. */
p = input_line_pointer;
- while (*p != ']' && !is_end_of_line[(unsigned char) *p])
+ while (*p != ']' && !is_end_of_stmt (*p))
p++;
if (*p != ']')
return 0;
@@ -1329,7 +1329,7 @@ tic6x_parse_operand (char **p, tic6x_operand *op, unsigned int op_forms,
char *rq = q + 2;
skip_whitespace (rq);
- if (is_end_of_line[(unsigned char) *rq] || *rq == ',')
+ if (is_end_of_stmt (*rq) || *rq == ',')
{
op->form = TIC6X_OP_FUNC_UNIT;
op->value.func_unit.base = base;
@@ -1350,7 +1350,7 @@ tic6x_parse_operand (char **p, tic6x_operand *op, unsigned int op_forms,
char *rq = q + 3;
skip_whitespace (rq);
- if (is_end_of_line[(unsigned char) *rq] || *rq == ',')
+ if (is_end_of_stmt (*rq) || *rq == ',')
{
op->form = TIC6X_OP_IRP;
operand_parsed = true;
@@ -1369,7 +1369,7 @@ tic6x_parse_operand (char **p, tic6x_operand *op, unsigned int op_forms,
char *rq = q + 3;
skip_whitespace (rq);
- if (is_end_of_line[(unsigned char) *rq] || *rq == ',')
+ if (is_end_of_stmt (*rq) || *rq == ',')
{
op->form = TIC6X_OP_NRP;
operand_parsed = true;
@@ -1392,7 +1392,7 @@ tic6x_parse_operand (char **p, tic6x_operand *op, unsigned int op_forms,
char *rq = q + len;
skip_whitespace (rq);
- if (is_end_of_line[(unsigned char) *rq] || *rq == ',')
+ if (is_end_of_stmt (*rq) || *rq == ',')
{
op->form = TIC6X_OP_CTRL;
op->value.ctrl = crid;
@@ -1560,7 +1560,7 @@ tic6x_parse_operand (char **p, tic6x_operand *op, unsigned int op_forms,
if (mem_ok)
{
skip_whitespace (mq);
- if (!is_end_of_line[(unsigned char) *mq] && *mq != ',')
+ if (!is_end_of_stmt (*mq) && *mq != ',')
mem_ok = false;
}
@@ -1604,7 +1604,7 @@ tic6x_parse_operand (char **p, tic6x_operand *op, unsigned int op_forms,
if (reg_ok)
{
skip_whitespace (rq);
- if (is_end_of_line[(unsigned char) *rq] || *rq == ',')
+ if (is_end_of_stmt (*rq) || *rq == ',')
{
if ((second_reg.num & 1)
|| (first_reg.num != second_reg.num + 1)
@@ -1622,7 +1622,7 @@ tic6x_parse_operand (char **p, tic6x_operand *op, unsigned int op_forms,
else if (op_forms & TIC6X_OP_REG)
{
skip_whitespace (rq);
- if (is_end_of_line[(unsigned char) *rq] || *rq == ',')
+ if (is_end_of_stmt (*rq) || *rq == ',')
{
op->form = TIC6X_OP_REG;
op->value.reg = first_reg;
@@ -1662,12 +1662,12 @@ tic6x_parse_operand (char **p, tic6x_operand *op, unsigned int op_forms,
/* Now the operand has been parsed, there must be nothing more
before the comma or end of line. */
skip_whitespace (q);
- if (!is_end_of_line[(unsigned char) *q] && *q != ',')
+ if (!is_end_of_stmt (*q) && *q != ',')
{
operand_parsed = false;
as_bad (_("junk after operand %u of '%.*s'"), opno,
opc_len, str);
- while (!is_end_of_line[(unsigned char) *q] && *q != ',')
+ while (!is_end_of_stmt (*q) && *q != ',')
q++;
}
}
@@ -1704,7 +1704,7 @@ tic6x_parse_operand (char **p, tic6x_operand *op, unsigned int op_forms,
break;
}
- while (!is_end_of_line[(unsigned char) *q] && *q != ',')
+ while (!is_end_of_stmt (*q) && *q != ',')
q++;
}
*p = q;
@@ -3357,7 +3357,7 @@ md_assemble (char *str)
while (true)
{
skip_whitespace (p);
- if (is_end_of_line[(unsigned char) *p])
+ if (is_end_of_stmt (*p))
{
if (num_operands_read > 0)
{
@@ -3380,7 +3380,7 @@ md_assemble (char *str)
bad_operands = true;
num_operands_read++;
- if (is_end_of_line[(unsigned char) *p])
+ if (is_end_of_stmt (*p))
break;
else if (*p == ',')
{
diff --git a/gas/config/tc-tilegx.c b/gas/config/tc-tilegx.c
index b63567b..f70388c 100644
--- a/gas/config/tc-tilegx.c
+++ b/gas/config/tc-tilegx.c
@@ -275,7 +275,7 @@ md_begin (void)
/* Initialize special operator hash table. */
special_operator_hash = str_htab_create ();
#define INSERT_SPECIAL_OP(name) \
- str_hash_insert (special_operator_hash, #name, (void *) O_##name, 0)
+ str_hash_insert_int (special_operator_hash, #name, O_##name, 0)
INSERT_SPECIAL_OP (hw0);
INSERT_SPECIAL_OP (hw1);
@@ -285,7 +285,7 @@ md_begin (void)
INSERT_SPECIAL_OP (hw1_last);
INSERT_SPECIAL_OP (hw2_last);
/* hw3_last is a convenience alias for the equivalent hw3. */
- str_hash_insert (special_operator_hash, "hw3_last", (void *) O_hw3, 0);
+ str_hash_insert_int (special_operator_hash, "hw3_last", O_hw3, 0);
INSERT_SPECIAL_OP (hw0_got);
INSERT_SPECIAL_OP (hw0_last_got);
INSERT_SPECIAL_OP (hw1_last_got);
@@ -329,14 +329,14 @@ md_begin (void)
{
char buf[64];
- str_hash_insert (main_reg_hash, tilegx_register_names[i],
- (void *) (long) (i | CANONICAL_REG_NAME_FLAG), 0);
+ str_hash_insert_int (main_reg_hash, tilegx_register_names[i],
+ i | CANONICAL_REG_NAME_FLAG, 0);
/* See if we should insert a noncanonical alias, like r63. */
sprintf (buf, "r%d", i);
if (strcmp (buf, tilegx_register_names[i]) != 0)
- str_hash_insert (main_reg_hash, xstrdup (buf),
- (void *) (long) (i | NONCANONICAL_REG_NAME_FLAG), 0);
+ str_hash_insert_int (main_reg_hash, xstrdup (buf),
+ i | NONCANONICAL_REG_NAME_FLAG, 0);
}
}
@@ -1027,10 +1027,10 @@ tilegx_parse_name (char *name, expressionS *e, char *nextcharP)
else
{
/* Look up the operator in our table. */
- void* val = str_hash_find (special_operator_hash, name);
- if (val == 0)
+ int opint = str_hash_find_int (special_operator_hash, name);
+ if (opint < 0)
return 0;
- op = (operatorT)(long)val;
+ op = opint;
}
/* Restore old '(' and skip it. */
@@ -1083,23 +1083,17 @@ tilegx_parse_name (char *name, expressionS *e, char *nextcharP)
static void
parse_reg_expression (expressionS* expression)
{
- char *regname;
- char terminating_char;
- void *pval;
- int regno_and_flags;
- int regno;
-
/* Zero everything to make sure we don't miss any flags. */
memset (expression, 0, sizeof *expression);
- terminating_char = get_symbol_name (&regname);
+ char *regname;
+ char terminating_char = get_symbol_name (&regname);
- pval = str_hash_find (main_reg_hash, regname);
- if (pval == NULL)
+ int regno_and_flags = str_hash_find_int (main_reg_hash, regname);
+ if (regno_and_flags < 0)
as_bad (_("Expected register, got '%s'."), regname);
- regno_and_flags = (int)(size_t)pval;
- regno = EXTRACT_REGNO(regno_and_flags);
+ int regno = EXTRACT_REGNO(regno_and_flags);
if ((regno_and_flags & NONCANONICAL_REG_NAME_FLAG)
&& require_canonical_reg_names)
@@ -1159,9 +1153,9 @@ parse_operands (const char *opcode_name,
if (i + 1 < num_operands)
{
- int separator = (unsigned char)*input_line_pointer++;
+ char separator = *input_line_pointer++;
- if (is_end_of_line[separator] || (separator == '}'))
+ if (is_end_of_stmt (separator) || (separator == '}'))
{
as_bad (_("Too few operands to '%s'."), opcode_name);
return;
@@ -1169,7 +1163,7 @@ parse_operands (const char *opcode_name,
else if (separator != ',')
{
as_bad (_("Unexpected character '%c' after operand %d to %s."),
- (char)separator, i + 1, opcode_name);
+ separator, i + 1, opcode_name);
return;
}
}
@@ -1196,7 +1190,7 @@ parse_operands (const char *opcode_name,
}
}
- if (!is_end_of_line[(unsigned char)*input_line_pointer])
+ if (!is_end_of_stmt (*input_line_pointer))
{
switch (*input_line_pointer)
{
diff --git a/gas/config/tc-tilegx.h b/gas/config/tc-tilegx.h
index 06db441..e3789e4 100644
--- a/gas/config/tc-tilegx.h
+++ b/gas/config/tc-tilegx.h
@@ -42,7 +42,7 @@ extern const char * tilegx_target_format (void);
#define HANDLE_ALIGN(sec, fragp) tilegx_handle_align (fragp)
extern void tilegx_handle_align (struct frag *);
-#define MAX_MEM_FOR_RS_ALIGN_CODE (7 + 8)
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (7 + 8)
struct tilegx_operand;
#define TC_FIX_TYPE const struct tilegx_operand *
diff --git a/gas/config/tc-tilepro.c b/gas/config/tc-tilepro.c
index 38666ad..738b24a 100644
--- a/gas/config/tc-tilepro.c
+++ b/gas/config/tc-tilepro.c
@@ -218,7 +218,7 @@ md_begin (void)
/* Initialize special operator hash table. */
special_operator_hash = str_htab_create ();
#define INSERT_SPECIAL_OP(name) \
- str_hash_insert (special_operator_hash, #name, (void *) O_##name, 0)
+ str_hash_insert_int (special_operator_hash, #name, O_##name, 0)
INSERT_SPECIAL_OP(lo16);
INSERT_SPECIAL_OP(hi16);
@@ -265,29 +265,29 @@ md_begin (void)
{
char buf[64];
- str_hash_insert (main_reg_hash, tilepro_register_names[i],
- (void *) (long) (i | CANONICAL_REG_NAME_FLAG), 0);
+ str_hash_insert_int (main_reg_hash, tilepro_register_names[i],
+ i | CANONICAL_REG_NAME_FLAG, 0);
/* See if we should insert a noncanonical alias, like r63. */
sprintf (buf, "r%d", i);
if (strcmp (buf, tilepro_register_names[i]) != 0)
- str_hash_insert (main_reg_hash, xstrdup (buf),
- (void *) (long) (i | NONCANONICAL_REG_NAME_FLAG), 0);
+ str_hash_insert_int (main_reg_hash, xstrdup (buf),
+ i | NONCANONICAL_REG_NAME_FLAG, 0);
}
/* Insert obsolete backwards-compatibility register names. */
- str_hash_insert (main_reg_hash, "io0",
- (void *) (long) (TREG_IDN0 | CANONICAL_REG_NAME_FLAG), 0);
- str_hash_insert (main_reg_hash, "io1",
- (void *) (long) (TREG_IDN1 | CANONICAL_REG_NAME_FLAG), 0);
- str_hash_insert (main_reg_hash, "us0",
- (void *) (long) (TREG_UDN0 | CANONICAL_REG_NAME_FLAG), 0);
- str_hash_insert (main_reg_hash, "us1",
- (void *) (long) (TREG_UDN1 | CANONICAL_REG_NAME_FLAG), 0);
- str_hash_insert (main_reg_hash, "us2",
- (void *) (long) (TREG_UDN2 | CANONICAL_REG_NAME_FLAG), 0);
- str_hash_insert (main_reg_hash, "us3",
- (void *) (long) (TREG_UDN3 | CANONICAL_REG_NAME_FLAG), 0);
+ str_hash_insert_int (main_reg_hash, "io0",
+ TREG_IDN0 | CANONICAL_REG_NAME_FLAG, 0);
+ str_hash_insert_int (main_reg_hash, "io1",
+ TREG_IDN1 | CANONICAL_REG_NAME_FLAG, 0);
+ str_hash_insert_int (main_reg_hash, "us0",
+ TREG_UDN0 | CANONICAL_REG_NAME_FLAG, 0);
+ str_hash_insert_int (main_reg_hash, "us1",
+ TREG_UDN1 | CANONICAL_REG_NAME_FLAG, 0);
+ str_hash_insert_int (main_reg_hash, "us2",
+ TREG_UDN2 | CANONICAL_REG_NAME_FLAG, 0);
+ str_hash_insert_int (main_reg_hash, "us3",
+ TREG_UDN3 | CANONICAL_REG_NAME_FLAG, 0);
}
@@ -915,10 +915,10 @@ tilepro_parse_name (char *name, expressionS *e, char *nextcharP)
else
{
/* Look up the operator in our table. */
- void *val = str_hash_find (special_operator_hash, name);
- if (val == 0)
+ int opint = str_hash_find_int (special_operator_hash, name);
+ if (opint < 0)
return 0;
- op = (operatorT)(long)val;
+ op = opint;
}
/* Restore old '(' and skip it. */
@@ -977,12 +977,10 @@ parse_reg_expression (expressionS* expression)
char *regname;
char terminating_char = get_symbol_name (&regname);
- void* pval = str_hash_find (main_reg_hash, regname);
-
- if (pval == NULL)
+ int regno_and_flags = str_hash_find_int (main_reg_hash, regname);
+ if (regno_and_flags < 0)
as_bad (_("Expected register, got '%s'."), regname);
- int regno_and_flags = (int)(size_t)pval;
int regno = EXTRACT_REGNO(regno_and_flags);
if ((regno_and_flags & NONCANONICAL_REG_NAME_FLAG)
@@ -1042,9 +1040,9 @@ parse_operands (const char *opcode_name,
if (i + 1 < num_operands)
{
- int separator = (unsigned char)*input_line_pointer++;
+ char separator = *input_line_pointer++;
- if (is_end_of_line[separator] || (separator == '}'))
+ if (is_end_of_stmt (separator) || (separator == '}'))
{
as_bad (_("Too few operands to '%s'."), opcode_name);
return;
@@ -1052,7 +1050,7 @@ parse_operands (const char *opcode_name,
else if (separator != ',')
{
as_bad (_("Unexpected character '%c' after operand %d to %s."),
- (char)separator, i + 1, opcode_name);
+ separator, i + 1, opcode_name);
return;
}
}
@@ -1079,7 +1077,7 @@ parse_operands (const char *opcode_name,
}
}
- if (!is_end_of_line[(unsigned char)*input_line_pointer])
+ if (!is_end_of_stmt (*input_line_pointer))
{
switch (*input_line_pointer)
{
diff --git a/gas/config/tc-tilepro.h b/gas/config/tc-tilepro.h
index 945d1ca..f985053 100644
--- a/gas/config/tc-tilepro.h
+++ b/gas/config/tc-tilepro.h
@@ -42,7 +42,7 @@
#define HANDLE_ALIGN(sec, fragp) tilepro_handle_align (fragp)
extern void tilepro_handle_align (struct frag *);
-#define MAX_MEM_FOR_RS_ALIGN_CODE (7 + 8)
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (7 + 8)
struct tilepro_operand;
#define TC_FIX_TYPE const struct tilepro_operand *
diff --git a/gas/config/tc-v850.c b/gas/config/tc-v850.c
index 0a48343..b344005 100644
--- a/gas/config/tc-v850.c
+++ b/gas/config/tc-v850.c
@@ -2312,7 +2312,7 @@ md_assemble (char *str)
*s++ = '\0';
/* Find the first opcode with the proper name. */
- opcode = (struct v850_opcode *) str_hash_find (v850_hash, str);
+ opcode = str_hash_find (v850_hash, str);
if (opcode == NULL)
{
/* xgettext:c-format */
diff --git a/gas/config/tc-vax.c b/gas/config/tc-vax.c
index e2f6043..e256d08 100644
--- a/gas/config/tc-vax.c
+++ b/gas/config/tc-vax.c
@@ -1882,7 +1882,7 @@ vip (struct vit *vitP, /* We build an exploded instruction here. */
/* Here with instring pointing to what better be an op-name, and p
pointing to character just past that.
We trust instring points to an op-name, with no whitespace. */
- vwP = (struct vot_wot *) str_hash_find (op_hash, instring);
+ vwP = str_hash_find (op_hash, instring);
/* Restore char after op-code. */
*p = c;
if (vwP == 0)
@@ -3293,7 +3293,7 @@ vax_cons (expressionS *exp, int size)
char *end = ++input_line_pointer;
int npar = 0;
- while (! is_end_of_line[(c = *end)])
+ while (! is_end_of_stmt (c = *end))
{
if (c == '(')
npar++;
@@ -3324,7 +3324,7 @@ vax_cons (expressionS *exp, int size)
input_line_pointer++;
SKIP_WHITESPACE ();
c = *input_line_pointer;
- if (! is_end_of_line[c] && c != ',')
+ if (! is_end_of_stmt (c) && c != ',')
as_bad (_("Illegal operands: garbage after %%r_%s%d()"),
vax_cons_special_reloc, size * 8);
}
diff --git a/gas/config/tc-visium.c b/gas/config/tc-visium.c
index c00db12..93c108f 100644
--- a/gas/config/tc-visium.c
+++ b/gas/config/tc-visium.c
@@ -555,30 +555,16 @@ visium_handle_align (fragS *fragP)
if (count == 0)
return;
- fragP->fr_var = 4;
-
if (count > 4 * nop_limit && count <= 131068)
{
- struct frag *rest;
-
- /* Make a branch, then follow with nops. Insert another
- frag to handle the nops. */
+ /* Make a branch, then follow with nops. */
md_number_to_chars (p, 0x78000000 + (count >> 2), 4);
visium_update_parity_bit (p);
-
- rest = xmalloc (SIZEOF_STRUCT_FRAG + 4);
- memcpy (rest, fragP, SIZEOF_STRUCT_FRAG);
- fragP->fr_next = rest;
- rest->fr_address += rest->fr_fix + 4;
- rest->fr_fix = 0;
- /* If we leave the next frag as rs_align_code we'll come here
- again, resulting in a bunch of branches rather than a
- branch followed by nops. */
- rest->fr_type = rs_align;
- p = rest->fr_literal;
+ p += 4;
+ fragP->fr_fix += 4;
}
- memset (p, 0, 4);
+ *p = 0;
}
/* Apply a fixS to the frags, now that we know the value it ought to
diff --git a/gas/config/tc-visium.h b/gas/config/tc-visium.h
index 01f8628..8be7f77 100644
--- a/gas/config/tc-visium.h
+++ b/gas/config/tc-visium.h
@@ -45,6 +45,7 @@
#define tc_fix_adjustable(FIXP) visium_fix_adjustable (FIXP)
extern bool visium_fix_adjustable (struct fix *);
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) (4 + 1)
#define HANDLE_ALIGN(SEC, FRAGP) \
if ((FRAGP)->fr_type == rs_align_code) \
visium_handle_align (FRAGP);
diff --git a/gas/config/tc-wasm32.c b/gas/config/tc-wasm32.c
index c9b0787..066255f 100644
--- a/gas/config/tc-wasm32.c
+++ b/gas/config/tc-wasm32.c
@@ -204,7 +204,7 @@ void
md_apply_fix (fixS * fixP, valueT * valP, segT seg ATTRIBUTE_UNUSED)
{
char *buf = fixP->fx_where + fixP->fx_frag->fr_literal;
- long val = (long) *valP;
+ valueT val = *valP;
if (fixP->fx_pcrel)
{
@@ -746,7 +746,7 @@ md_assemble (char *str)
if (!op[0])
as_bad (_("can't find opcode "));
- opcode = (struct wasm32_opcode_s *) str_hash_find (wasm32_hash, op);
+ opcode = str_hash_find (wasm32_hash, op);
if (opcode == NULL)
{
diff --git a/gas/config/tc-wasm32.h b/gas/config/tc-wasm32.h
index b2ccf1c..2a84a97 100644
--- a/gas/config/tc-wasm32.h
+++ b/gas/config/tc-wasm32.h
@@ -75,7 +75,6 @@ extern int wasm32_force_relocation (struct fix *);
#define elf_tc_final_processing()
#define md_post_relax_hook
#define md_start_line_hook()
-#define HANDLE_ALIGN(sec, fragP)
extern bool wasm32_fix_adjustable (struct fix *);
diff --git a/gas/config/tc-xgate.c b/gas/config/tc-xgate.c
index 5e09ee5..239310d 100644
--- a/gas/config/tc-xgate.c
+++ b/gas/config/tc-xgate.c
@@ -491,8 +491,7 @@ md_assemble (char *input_line)
if (!op_name[0])
as_bad (_("opcode missing or not found on input line"));
- opcode_handle = (struct xgate_opcode_handle *) str_hash_find (xgate_hash,
- op_name);
+ opcode_handle = str_hash_find (xgate_hash, op_name);
if (!opcode_handle)
as_bad (_("opcode %s not found in opcode hash table"), op_name);
else
@@ -541,9 +540,7 @@ md_assemble (char *input_line)
input_line = macro_inline; /* Rewind. */
p = extract_word (p, op_name, 10);
- opcode_handle
- = (struct xgate_opcode_handle *) str_hash_find (xgate_hash,
- op_name);
+ opcode_handle = str_hash_find (xgate_hash, op_name);
if (!opcode_handle)
{
as_bad (_(": processing macro, real opcode handle"
diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
index ed53b6d..1889608 100644
--- a/gas/config/tc-xtensa.c
+++ b/gas/config/tc-xtensa.c
@@ -7660,6 +7660,12 @@ static size_t xg_find_chain_entry (struct trampoline_chain *tc,
return a;
}
+static valueT
+vma_abs (offsetT v)
+{
+ return v < 0 ? -(valueT) v : (valueT) v;
+}
+
/* Find the best jump target for the source in the given trampoline chain.
The best jump target is the one that results in the shortest path to the
final target, it's the location of the jump closest to the final target,
@@ -7686,7 +7692,7 @@ xg_get_best_chain_entry (struct trampoline_chain *tc, addressT source)
chained_target = S_GET_VALUE(next->sym) + next->offset;
off = source - chained_target;
- if (labs (off) >= J_RANGE - J_MARGIN)
+ if (vma_abs (off) >= J_RANGE - J_MARGIN)
break;
i += step;
@@ -7696,8 +7702,8 @@ xg_get_best_chain_entry (struct trampoline_chain *tc, addressT source)
chained_target = S_GET_VALUE(e->sym) + e->offset;
off = source - chained_target;
- if (labs (off) < J_MARGIN ||
- labs (off) >= J_RANGE - J_MARGIN)
+ if (vma_abs (off) < J_MARGIN
+ || vma_abs (off) >= J_RANGE - J_MARGIN)
return &tc->target;
return tc->entry + i;
}
@@ -9359,7 +9365,7 @@ static addressT xg_get_fulcrum (addressT source, addressT target)
offsetT delta = target - source;
int n;
- n = (labs (delta) + J_RANGE - J_MARGIN - 1) / (J_RANGE - J_MARGIN);
+ n = (vma_abs (delta) + J_RANGE - J_MARGIN - 1) / (J_RANGE - J_MARGIN);
return source + delta / n;
}
@@ -9410,11 +9416,11 @@ static size_t xg_find_best_trampoline (struct trampoline_index *idx,
/* Stop if some trampoline is found and the search is more than
J_RANGE / 4 from the projected fulcrum. A trampoline w/o jump
around is nice, but it shouldn't have much overhead. */
- if (best < idx->n_entries && labs (off) > J_RANGE / 4)
+ if (best < idx->n_entries && vma_abs (off) > J_RANGE / 4)
return best;
off = trampoline_frag->fr_address - source;
- if (labs (off) < J_RANGE - J_MARGIN)
+ if (vma_abs (off) < J_RANGE - J_MARGIN)
{
++checked;
/* Stop if a trampoline w/o jump around is found or initialized
@@ -9480,7 +9486,7 @@ static bool xg_is_relaxable_fixup (fixS *fixP)
target = S_GET_VALUE (s) + fixP->fx_offset;
delta = target - addr;
- if (labs (delta) < J_RANGE - J_MARGIN)
+ if (vma_abs (delta) < J_RANGE - J_MARGIN)
return false;
xtensa_insnbuf_from_chars (isa, trampoline_buf,
diff --git a/gas/config/tc-xtensa.h b/gas/config/tc-xtensa.h
index 3d757e8..41218d7 100644
--- a/gas/config/tc-xtensa.h
+++ b/gas/config/tc-xtensa.h
@@ -379,7 +379,7 @@ extern void xtensa_init (int, char **);
#define DATA_SECTION_NAME xtensa_section_rename (".data")
#define BSS_SECTION_NAME xtensa_section_rename (".bss")
#define HANDLE_ALIGN(sec, fragP) xtensa_handle_align (fragP)
-#define MAX_MEM_FOR_RS_ALIGN_CODE 1
+#define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) 1
/* The renumber_section function must be mapped over all the sections
diff --git a/gas/config/tc-z8k.c b/gas/config/tc-z8k.c
index d73df4f..9947fe1 100644
--- a/gas/config/tc-z8k.c
+++ b/gas/config/tc-z8k.c
@@ -536,7 +536,7 @@ get_interrupt_operand (char **ptr, struct z8k_op *mode, unsigned int dst ATTRIBU
*ptr = src + l;
invalid:
as_bad (_("unknown interrupt %s"), src);
- while (**ptr && ! is_end_of_line[(unsigned char) **ptr])
+ while (! is_end_of_stmt (**ptr))
(*ptr)++; /* Consume rest of line. */
return;
}
@@ -747,10 +747,10 @@ get_operands (const opcode_entry_type *opcode, char *op_end, op_type *operand)
get_cc_operand (&ptr, operand + 0, 0);
while (is_whitespace (*ptr))
ptr++;
- if (*ptr && ! is_end_of_line[(unsigned char) *ptr])
+ if (! is_end_of_stmt (*ptr))
{
as_bad (_("invalid condition code '%s'"), ptr);
- while (*ptr && ! is_end_of_line[(unsigned char) *ptr])
+ while (! is_end_of_stmt (*ptr))
ptr++; /* Consume rest of line. */
}
}
@@ -759,10 +759,10 @@ get_operands (const opcode_entry_type *opcode, char *op_end, op_type *operand)
get_flags_operand (&ptr, operand + 0, 0);
while (is_whitespace (*ptr))
ptr++;
- if (*ptr && ! is_end_of_line[(unsigned char) *ptr])
+ if (! is_end_of_stmt (*ptr))
{
as_bad (_("invalid flag '%s'"), ptr);
- while (*ptr && ! is_end_of_line[(unsigned char) *ptr])
+ while (*ptr && ! is_end_of_stmt (*ptr))
ptr++; /* Consume rest of line. */
}
}
@@ -1236,7 +1236,7 @@ md_assemble (char *str)
*op_end = 0; /* Zero-terminate op code string for str_hash_find() call. */
- opcode = (opcode_entry_type *) str_hash_find (opcode_hash_control, op_start);
+ opcode = str_hash_find (opcode_hash_control, op_start);
if (opcode == NULL)
{
@@ -1407,7 +1407,7 @@ md_section_align (segT seg, valueT size)
void
md_apply_fix (fixS *fixP, valueT *valP, segT segment ATTRIBUTE_UNUSED)
{
- long val = * (long *) valP;
+ offsetT val = *valP;
char *buf = fixP->fx_where + fixP->fx_frag->fr_literal;
switch (fixP->fx_r_type)
diff --git a/gas/configure b/gas/configure
index aee531d..e39c965 100755
--- a/gas/configure
+++ b/gas/configure
@@ -12275,8 +12275,11 @@ _ACEOF
use_ef_mips_abi_o32=1
;;
esac
- # If Vendor is IMG, then MIPSr6 is used
+ # If target vendor is IMG, then MIPSr6 is used.
case ${target} in
+ mips64*-img-*)
+ mips_cpu=mips64r6
+ ;;
mips*-img-*)
mips_cpu=mips32r6
;;
@@ -12606,7 +12609,7 @@ _ACEOF
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_isa_spec" >&5
$as_echo "$with_isa_spec" >&6; }
- # --with-priv-spec=[1.9.1|1.10|1.11|1.12].
+ # --with-priv-spec=[1.9.1|1.10|1.11|1.12|1.13].
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for default configuration of --with-priv-spec" >&5
$as_echo_n "checking for default configuration of --with-priv-spec... " >&6; }
if test "x${with_priv_spec}" != x; then
diff --git a/gas/configure.ac b/gas/configure.ac
index 2ab7770..e1d32c3 100644
--- a/gas/configure.ac
+++ b/gas/configure.ac
@@ -392,8 +392,11 @@ changequote([,])dnl
use_ef_mips_abi_o32=1
;;
esac
- # If Vendor is IMG, then MIPSr6 is used
+ # If target vendor is IMG, then MIPSr6 is used.
case ${target} in
+ mips64*-img-*)
+ mips_cpu=mips64r6
+ ;;
mips*-img-*)
mips_cpu=mips32r6
;;
@@ -650,7 +653,7 @@ changequote([,])dnl
fi
AC_MSG_RESULT($with_isa_spec)
- # --with-priv-spec=[1.9.1|1.10|1.11|1.12].
+ # --with-priv-spec=[1.9.1|1.10|1.11|1.12|1.13].
AC_MSG_CHECKING(for default configuration of --with-priv-spec)
if test "x${with_priv_spec}" != x; then
AC_DEFINE_UNQUOTED(DEFAULT_RISCV_PRIV_SPEC, "$with_priv_spec",
diff --git a/gas/doc/as.texi b/gas/doc/as.texi
index afe1737..6644648 100644
--- a/gas/doc/as.texi
+++ b/gas/doc/as.texi
@@ -552,7 +552,7 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
@emph{Target RISC-V options:}
[@b{-fpic}|@b{-fPIC}|@b{-fno-pic}]
- [@b{-march}=@var{ISA}]
+ [@b{-march}=@var{ISA}|@var{Profiles}|@var{Profiles_ISA}]
[@b{-mabi}=@var{ABI}]
[@b{-mlittle-endian}|@b{-mbig-endian}]
@end ifset
@@ -1944,7 +1944,8 @@ Specify which s390 processor variant is the target, @samp{g5} (or
@samp{arch6}), @samp{z9-109}, @samp{z9-ec} (or @samp{arch7}), @samp{z10} (or
@samp{arch8}), @samp{z196} (or @samp{arch9}), @samp{zEC12} (or @samp{arch10}),
@samp{z13} (or @samp{arch11}), @samp{z14} (or @samp{arch12}), @samp{z15}
-(or @samp{arch13}), @samp{z16} (or @samp{arch14}), or @samp{arch15}.
+(or @samp{arch13}), @samp{z16} (or @samp{arch14}), or @samp{z17} (or
+@samp{arch15}).
@item -mregnames
@itemx -mno-regnames
Allow or disallow symbolic names for registers.
@@ -5176,7 +5177,30 @@ SPARC register window has been saved.
@subsection @code{.cfi_escape} @var{expression}[, @dots{}]
Allows the user to add arbitrary bytes to the unwind info. One
might use this to add OS-specific CFI opcodes, or generic CFI
-opcodes that GAS does not yet support.
+opcodes that GAS does not yet support. To emit multi-byte data one may
+also use extended kind-of-expression forms:
+
+@itemize @bullet
+
+@item @code{data2(@var{expression})}
+to emit a 2-byte item,
+
+@item @code{data4(@var{expression})}
+to emit a 4-byte item (provided address size is at least 32 bits),
+
+@item @code{data8(@var{expression})}
+to emit an 8-byte item (provided address size is at least 64 bits),
+
+@item @code{addr(@var{expression})}
+to emit an address-sized item,
+
+@item @code{sleb128(@var{expression})}
+to emit a SLEB128 item,
+
+@item @code{uleb128(@var{expression})}
+to emit a ULEB128 item.
+
+@end itemize
@subsection @code{.cfi_val_encoded_addr @var{register}, @var{encoding}, @var{label}}
The current value of @var{register} is @var{label}. The value of @var{label}
diff --git a/gas/doc/c-aarch64.texi b/gas/doc/c-aarch64.texi
index 10888d1..0b68602 100644
--- a/gas/doc/c-aarch64.texi
+++ b/gas/doc/c-aarch64.texi
@@ -167,6 +167,8 @@ automatically cause those extensions to be disabled.
@tab Enable the Branch Record Buffer extension.
@item @code{chk} @tab
@tab Enable the Check Feature Status Extension.
+@item @code{cmpbr} @tab
+ @tab Enable Compare and Branch instructions.
@item @code{compnum} @tab @code{simd}
@tab Enable the complex number SIMD extensions. An alias of @code{fcma}.
@item @code{cpa} @tab
@@ -185,6 +187,10 @@ automatically cause those extensions to be disabled.
@tab Enable the F32 Matrix Multiply extension
@item @code{f64mm} @tab @code{sve}
@tab Enable the F64 Matrix Multiply extension.
+@item @code{f8f16mm} @tab @code{simd} @code{fp8}
+ @tab Enable 8-bit floating-point matrix multiply-accumulate to half-precision instructions.
+@item @code{f8f32mm} @tab @code{simd} @code{fp}
+ @tab Enable 8-bit floating-point matrix multiply-accumulate to single-precision instructions.
@item @code{fcma} @tab @code{fp16}, @code{simd}
@tab Enable the complex number SIMD extensions.
@item @code{flagm} @tab
@@ -205,6 +211,8 @@ automatically cause those extensions to be disabled.
@tab Enable Armv8.2 16-bit floating-point multiplication variant support.
@item @code{fp16} @tab @code{fp}
@tab Enable Armv8.2 16-bit floating-point support.
+@item @code{fprcvt} @tab @code{fp}
+ @tab Enable Armv9.6 fprcvt instructions.
@item @code{frintts} @tab @code{fp}
@tab Enable floating-point round to integral value instructions.
@item @code{gcs} @tab
@@ -225,12 +233,16 @@ automatically cause those extensions to be disabled.
@tab Enable Large System extensions.
@item @code{lse128} @tab @code{lse}
@tab Enable the 128-bit Atomic Instructions extension.
+@item @code{lsfe} @tab @code{fp}
+ @tab Enable Large System Float Extension.
@item @code{lut} @tab
@tab Enable the Lookup Table (LUT) extension.
@item @code{memtag} @tab
@tab Enable Armv8.5-A Memory Tagging Extensions.
@item @code{mops} @tab
@tab Enable Armv8.8-A memcpy and memset acceleration instructions
+@item @code{occmo} @tab
+ @tab Enable Outer Cacheable Cache Maintenance Operations.
@item @code{pan} @tab
@tab Enable Privileged Access Never support.
@item @code{pauth} @tab
@@ -297,6 +309,10 @@ automatically cause those extensions to be disabled.
@tab Enable the Scalable Vector Extension.
@item @code{sve-b16b16} @tab
@tab Enable the SVE B16B16 extension. These instructions also require either @code{+sve2} or @code{+sme2}.
+@item @code{sve-bfscale} @tab
+@tab Enable the SVE BFSCALE extension. These instructions also require either @code{+sve2} or @code{+sme2}.
+@item @code{sve-f16f32mm} @tab @code{sve}
+@tab Enable the SVE_F16F32MM extension.
@item @code{sve2} @tab @code{sve}
@tab Enable SVE2.
@item @code{sve2-aes} @tab @code{sve2}, @code{aes}
diff --git a/gas/doc/c-i386.texi b/gas/doc/c-i386.texi
index 7b24cbf..b1f3b04 100644
--- a/gas/doc/c-i386.texi
+++ b/gas/doc/c-i386.texi
@@ -287,7 +287,8 @@ accept various extension mnemonics. For example,
@code{gmism2},
@code{gmiccs},
@code{padlockrng2},
-@code{padlockphe2} and
+@code{padlockphe2},
+@code{padlockxmodx} and
@code{padlock}.
Note that these extension mnemonics can be prefixed with @code{no} to revoke
the respective (and any dependent) functionality. Note further that the
@@ -701,7 +702,7 @@ operand, as long as there is one.
syntax tries to resemble that used in documentation:
@itemize @bullet
@item @code{VEX}[@code{.@var{len}}][@code{.@var{prefix}}][@code{.@var{space}}][@code{.@var{w}}]
-@item @code{EVEX}[@code{.@var{len}}][@code{.@var{prefix}}][@code{.@var{space}}][@code{.@var{w}}]
+@item @code{EVEX}[@code{.@var{len}}][@code{.@var{prefix}}][@code{.@var{space}}][@code{.@var{w}}][@code{.@var{opt}}]
@item @code{XOP}@var{space}[@code{.@var{len}}][@code{.@var{prefix}}][@code{.@var{w}}]
@end itemize
@@ -716,10 +717,11 @@ only) @code{512} as well as @code{L0} / @code{L1} for VEX / XOP and
@item @code{0f}, @code{0f38}, @code{0f3a}, or @code{M0}...@code{M31}
for VEX
@item @code{08}...@code{1f} for XOP
-@item @code{0f}, @code{0f38}, @code{0f3a}, or @code{M0}...@code{M15}
+@item @code{0f}, @code{0f38}, @code{0f3a}, or @code{M0}...@code{M7}
for EVEX
@end itemize
@item @var{w} can be @code{WIG}, @code{W0}, or @code{W1}
+@item @var{opt} can be @code{ND} or @code{ZU}
@end itemize
Defaults:
@@ -807,6 +809,12 @@ be suffixed by @code{@{:d@var{n}@}} to specify the size (in bytes).
This can be combined with an embedded broadcast specifier:
@samp{8(%eax)@{1to8:d8@}}.
+For SCC EVEX the @code{@{dfv=@}} specifier used by ordinary insns is
+extended and immediately follows the opcode specifier. The extension
+is that the SCC value needs to be specified and goes first, as in
+@code{@{scc=@var{n},dfv=...@}}. Unlike for ordinary insns @code{dfv=}
+may be omitted for brevity.
+
@cindex @code{noopt} directive
@item .noopt
Disable instruction size optimization.
@@ -1038,6 +1046,9 @@ prefix which generates REX prefix unconditionally.
instructions (APX_F only).
@item
+@samp{@{noimm8s@}} -- exclude sign-extended 8-bit immediate.
+
+@item
@samp{@{nooptimize@}} -- disable instruction size optimization.
@end itemize
@@ -1723,6 +1734,7 @@ supported on the CPU specified. The choices for @var{cpu_type} are:
@item @samp{.mcommit} @tab @samp{.sev_es} @tab @samp{.snp} @tab @samp{.invlpgb}
@item @samp{.tlbsync} @tab @samp{.rmpquery} @tab @samp{.rmpread} @tab @samp{.apx_f}
@item @samp{.gmism2} @tab @samp{.gmiccs} @tab @samp{.padlockrng2} @tab @samp{.padlockphe2}
+@item @samp{.padlockxmodx}
@end multitable
diff --git a/gas/doc/c-riscv.texi b/gas/doc/c-riscv.texi
index 10cb772..a4c819e 100644
--- a/gas/doc/c-riscv.texi
+++ b/gas/doc/c-riscv.texi
@@ -41,9 +41,11 @@ Generate position-independent code
@item -fno-pic
Don't generate position-independent code (default)
-@cindex @samp{-march=ISA} option, RISC-V
-@item -march=ISA
-Select the base isa, as specified by ISA. For example -march=rv32ima.
+@cindex @samp{-march=ISA|Profiles|Profiles_ISA} option, RISC-V
+@item -march=ISA|Profiles|Profiles_ISA
+Select the base isa, as specified by ISA or Profiles or Profies_ISA.
+For example @samp{-march=rv32ima} @samp{-march=RVI20U64}
+@samp{-march=RVI20U64_d}.
If this option and the architecture attributes aren't set, then assembler
will check the default configure setting --with-arch=ISA.
@@ -256,6 +258,16 @@ The @var{tag} is either an attribute number, or one of the following:
@code{Tag_RISCV_unaligned_access}, @code{Tag_RISCV_priv_spec},
@code{Tag_RISCV_priv_spec_minor}, @code{Tag_RISCV_priv_spec_revision}.
+@cindex @code{.bfloat16} directive, RISC-V
+@item .bfloat16 @var{value}
+Floating point constructors for the bfloat16 type, example usage:
+
+@smallexample
+ .bfloat16 12.0
+ .bfloat16 NaN
+ .bfloat16 0b:ffc1
+@end smallexample
+
@end table
@node RISC-V-Modifiers
@@ -538,6 +550,12 @@ Opcode space for misc instructions.
@item SYSTEM
Opcode space for system instructions.
+@item OP_V
+Opcode space for vector instructions.
+
+@item OP_VE
+Opcode space for crypto vector instructions.
+
@item CUSTOM_0
@item CUSTOM_1
@item CUSTOM_2
@@ -721,7 +739,12 @@ to be recorded in the attribute as @code{RV32I2P0} in which @code{2P0} stands
for the default version of its base ISA. On the other hand, the architecture
@code{RV32G} has to be presented as @code{RV32I2P0_M2P0_A2P0_F2P0_D2P0} in
which the abbreviation @code{G} is expanded to the @code{IMAFD} combination
-with default versions of the standard extensions.
+with default versions of the standard extensions. All Profiles are expanded
+ to the mandatory extensions it includes then processing. For example,
+@code{RVI20U32} is expanded to @code{RV32I2P0} for processing, which contains
+the mandatory extensions @code{I} as it defined. And you can also combine
+Profiles with ISA use underline, like @code{RVI20U32_D} is expanded to the
+@code{RV32I2P0_F2P0_D2P0}.
@item Tag_RISCV_unaligned_access (6)
Tag_RISCV_unaligned_access is 0 for files that do not allow any unaligned
@@ -846,6 +869,11 @@ The XTheadVector extension provides instructions for thead vector.
It is documented in @url{https://github.com/T-head-Semi/thead-extension-spec/releases/download/2.3.0/xthead-2023-11-10-2.3.0.pdf}.
+@item XTheadVdot
+The XTheadVdot extension provides instructions for vector dot.
+
+It is documented in @url{https://github.com/T-head-Semi/thead-extension-spec/releases/download/2.3.0/xthead-2023-11-10-2.3.0.pdf}.
+
@item XTheadZvamo
The XTheadZvamo extension is a subextension of the XTheadVector extension,
and it provides AMO instructions for the T-Head VECTOR vendor extension.
@@ -871,4 +899,25 @@ XSfCease provides an instruction to instigates power-down sequence.
It is documented in @url{https://sifive.cdn.prismic.io/sifive/767804da-53b2-4893-97d5-b7c030ae0a94_s76mc_core_complex_manual_21G3.pdf}.
+@item XMipsCbop
+The XMipsCbop extension provides instruction mips.pref.
+
+It is documented in @url{https://mips.com/wp-content/uploads/2025/03/P8700-F_Programmers_Reference_Manual_Rev1.82_3-19-2025.pdf}.
+
+@item XMipsCmov
+The XMipsCmov extension provides instruction mips.ccmov.
+
+It is documented in @url{https://mips.com/wp-content/uploads/2025/03/P8700-F_Programmers_Reference_Manual_Rev1.82_3-19-2025.pdf}.
+
+@item XMipsExectl
+The XMipsExectl extension provides instructions mips.ehb, mips.ihb and mips.pause.
+
+It is documented in @url{https://mips.com/wp-content/uploads/2025/03/P8700-F_Programmers_Reference_Manual_Rev1.82_3-19-2025.pdf}.
+
+@item XMipsSlsp
+
+The XMipsSlsp extension provides instructions mips.ldp, mips.lwp, mips.sdp and mips.swp.
+
+It is documented in @url{https://mips.com/wp-content/uploads/2025/03/P8700-F_Programmers_Reference_Manual_Rev1.82_3-19-2025.pdf}.
+
@end table
diff --git a/gas/doc/c-s390.texi b/gas/doc/c-s390.texi
index f1a5483..5499222 100644
--- a/gas/doc/c-s390.texi
+++ b/gas/doc/c-s390.texi
@@ -18,7 +18,8 @@ and eleven chip levels. The architecture modes are the Enterprise System
Architecture (ESA) and the newer z/Architecture mode. The chip levels
are g5 (or arch3), g6, z900 (or arch5), z990 (or arch6), z9-109, z9-ec
(or arch7), z10 (or arch8), z196 (or arch9), zEC12 (or arch10), z13
-(or arch11), z14 (or arch12), z15 (or arch13), z16 (or arch14), or arch15.
+(or arch11), z14 (or arch12), z15 (or arch13), z16 (or arch14), or
+z17 (arch15).
@menu
* s390 Options:: Command-line Options.
@@ -73,7 +74,7 @@ are recognized:
@code{z14} (or @code{arch12}),
@code{z15} (or @code{arch13}),
@code{z16} (or @code{arch14}), and
-@code{arch15}.
+@code{z17} (or @code{arch15}).
Assembling an instruction that is not supported on the target
processor results in an error message.
diff --git a/gas/dw2gencfi.c b/gas/dw2gencfi.c
index 012af0f..a21ae32 100644
--- a/gas/dw2gencfi.c
+++ b/gas/dw2gencfi.c
@@ -368,12 +368,6 @@ generic_dwarf2_emit_offset (symbolS *symbol, unsigned int size)
}
#endif
-struct cfi_escape_data
-{
- struct cfi_escape_data *next;
- expressionS exp;
-};
-
struct cie_entry
{
struct cie_entry *next;
@@ -446,16 +440,25 @@ alloc_cfi_insn_data (void)
*cur_fde_data->last = insn;
cur_fde_data->last = &insn->next;
SET_CUR_SEG (insn, is_now_linkonce_segment ());
+#ifndef NO_LISTING
+ insn->listing_ctxt = cur_fde_data->listing_ctxt ? listing_tail : NULL;
+#endif
return insn;
}
/* Construct a new FDE structure that begins at LABEL. */
void
-cfi_new_fde (symbolS *label)
+cfi_new_fde (symbolS *label, bool do_listing)
{
struct fde_entry *fde = alloc_fde_entry ();
fde->start_address = label;
+ if (do_listing)
+ {
+#ifndef NO_LISTING
+ fde->listing_ctxt = listing_tail;
+#endif
+ }
frchain_now->frch_cfi_data->last_address = label;
}
@@ -464,7 +467,12 @@ cfi_new_fde (symbolS *label)
void
cfi_end_fde (symbolS *label)
{
- frchain_now->frch_cfi_data->cur_fde_data->end_address = label;
+ struct fde_entry *cur_fde_data = frchain_now->frch_cfi_data->cur_fde_data;
+
+ cur_fde_data->end_address = label;
+#ifndef NO_LISTING
+ cur_fde_data->listing_end = cur_fde_data->listing_ctxt ? listing_tail : NULL;
+#endif
frchain_now->frch_cfi_data = NULL;
}
@@ -930,10 +938,25 @@ dot_cfi (int arg)
demand_empty_rest_of_line ();
}
+#ifndef TC_ADDRESS_BYTES
+#define TC_ADDRESS_BYTES address_bytes
+
+static inline unsigned int
+address_bytes (void)
+{
+ /* Choose smallest of 1, 2, 4, 8 bytes that is large enough to
+ contain an address. */
+ unsigned int n = (stdoutput->arch_info->bits_per_address - 1) / 8;
+ n |= n >> 1;
+ n |= n >> 2;
+ return n + 1;
+}
+#endif
+
static void
dot_cfi_escape (int ignored ATTRIBUTE_UNUSED)
{
- struct cfi_escape_data *head, **tail, *e;
+ struct cfi_escape_data *head, **tail;
struct cfi_insn_data *insn;
if (frchain_now->frch_cfi_data == NULL)
@@ -952,8 +975,51 @@ dot_cfi_escape (int ignored ATTRIBUTE_UNUSED)
tail = &head;
do
{
- e = notes_alloc (sizeof (*e));
- do_parse_cons_expression (&e->exp, 1);
+ struct cfi_escape_data *e = notes_alloc (sizeof (*e));
+ char *id, *ilp_save = input_line_pointer;
+ char c = get_symbol_name (&id);
+
+ if (strcmp (id, "sleb128") == 0)
+ e->type = CFI_ESC_sleb128;
+ else if (strcmp (id, "uleb128") == 0)
+ e->type = CFI_ESC_uleb128;
+ else if (strcmp (id, "data2") == 0)
+ e->type = 2;
+ else if (TC_ADDRESS_BYTES () >= 4 && strcmp (id, "data4") == 0)
+ e->type = 4;
+ else if (TC_ADDRESS_BYTES () >= 8 && strcmp (id, "data8") == 0)
+ e->type = 8;
+ else if (strcmp (id, "addr") == 0)
+ e->type = TC_ADDRESS_BYTES ();
+ else
+ e->type = CFI_ESC_byte;
+
+ c = restore_line_pointer (c);
+
+ if (e->type != CFI_ESC_byte)
+ {
+ if (is_whitespace (c))
+ c = *++input_line_pointer;
+ if (c != '(')
+ {
+ input_line_pointer = ilp_save;
+ e->type = CFI_ESC_byte;
+ }
+ }
+
+ if (e->type == CFI_ESC_sleb128 || e->type == CFI_ESC_uleb128)
+ {
+ /* We're still at the opening parenthesis. Leave it to expression()
+ to parse it and find the matching closing one. */
+ expression (&e->exp);
+ }
+ else
+ {
+ /* We may still be at the opening parenthesis. Leave it to expression()
+ to parse it and find the matching closing one. */
+ e->reloc = do_parse_cons_expression (&e->exp, e->type);
+ }
+
*tail = e;
tail = &e->next;
}
@@ -1285,7 +1351,7 @@ dot_cfi_startproc (int ignored ATTRIBUTE_UNUSED)
return;
}
- cfi_new_fde (symbol_temp_new_now ());
+ cfi_new_fde (symbol_temp_new_now (), listing & LISTING_LISTING);
SKIP_WHITESPACE ();
if (is_name_beginner (*input_line_pointer) || *input_line_pointer == '"')
@@ -1425,7 +1491,10 @@ dot_cfi_fde_data (int ignored ATTRIBUTE_UNUSED)
do
{
e = XNEW (struct cfi_escape_data);
- do_parse_cons_expression (&e->exp, 1);
+ e->reloc = do_parse_cons_expression (&e->exp, 1);
+ if (e->reloc != TC_PARSE_CONS_RETURN_NONE
+ || e->exp.X_op != O_constant)
+ as_bad (_("only constants may be used with .cfi_fde_data"));
*tail = e;
tail = &e->next;
num_ops++;
@@ -1767,7 +1836,12 @@ output_cfi_insn (struct cfi_insn_data *insn)
{
struct cfi_escape_data *e;
for (e = insn->u.esc; e ; e = e->next)
- emit_expr (&e->exp, 1);
+ {
+ if (e->type == CFI_ESC_sleb128 || e->type == CFI_ESC_uleb128)
+ emit_leb128_expr (&e->exp, e->type == CFI_ESC_sleb128);
+ else
+ emit_expr_with_reloc (&e->exp, e->type, e->reloc);
+ }
break;
}
@@ -2061,7 +2135,19 @@ output_fde (struct fde_entry *fde, struct cie_entry *cie,
for (; first; first = first->next)
if (CUR_SEG (first) == CUR_SEG (fde))
- output_cfi_insn (first);
+ {
+#ifndef NO_LISTING
+ if (eh_frame)
+ listing_override_tail (first->listing_ctxt);
+#endif
+ output_cfi_insn (first);
+ }
+
+#ifndef NO_LISTING
+ /* Associate any padding with .cfi_endproc. */
+ if (eh_frame)
+ listing_override_tail (fde->listing_end);
+#endif
frag_align (align, DW_CFA_nop, 0);
symbol_set_value_now (end_address);
@@ -2308,6 +2394,12 @@ cfi_finish (void)
segT cfi_seg, ccseg;
struct fde_entry *fde;
struct cfi_insn_data *first;
+#ifndef NO_LISTING
+ /* We may temporarily replace listing_tail, which otherwise isn't supposed
+ to be changing anymore. Play safe and restore the original value
+ afterwards. */
+ struct list_info_struct *saved_listing_tail = NULL;
+#endif
int save_flag_traditional_format, seek_next_seg;
if (all_fde_data == 0)
@@ -2390,6 +2482,16 @@ cfi_finish (void)
fde->end_address = fde->start_address;
}
+#ifndef NO_LISTING
+ {
+ struct list_info_struct *listing_prev
+ = listing_override_tail (fde->listing_ctxt);
+
+ if (!saved_listing_tail)
+ saved_listing_tail = listing_prev;
+ }
+#endif
+
cie = select_cie_for_fde (fde, true, &first, 2);
fde->eh_loc = symbol_temp_new_now ();
output_fde (fde, cie, true, first,
@@ -2596,6 +2698,11 @@ cfi_finish (void)
htab_delete (dwcfi_hash);
dwcfi_hash = NULL;
}
+
+#ifndef NO_LISTING
+ if (saved_listing_tail)
+ listing_tail = saved_listing_tail;
+#endif
}
#else /* TARGET_USE_CFIPOP */
diff --git a/gas/dw2gencfi.h b/gas/dw2gencfi.h
index 42eb386..fb1342a 100644
--- a/gas/dw2gencfi.h
+++ b/gas/dw2gencfi.h
@@ -52,7 +52,7 @@ extern void dot_cfi_sections (int);
extern void cfi_finish (void);
/* Entry points for backends to add unwind information. */
-extern void cfi_new_fde (struct symbol *);
+extern void cfi_new_fde (struct symbol *, bool);
extern void cfi_end_fde (struct symbol *);
extern void cfi_set_last_fde (struct fde_entry *fde);
extern void cfi_set_return_column (unsigned);
@@ -93,12 +93,34 @@ extern void cfi_add_CFA_restore_state (void);
#define MULTIPLE_FRAME_SECTIONS (SUPPORT_FRAME_LINKONCE || SUPPORT_COMPACT_EH \
|| TARGET_MULTIPLE_EH_FRAME_SECTIONS)
+struct cfi_escape_data
+{
+ struct cfi_escape_data *next;
+ expressionS exp;
+ enum {
+ /* "Plain" data is indicated just by their size, such that values can be
+ easily passed to other functions. The CFI_ESC_data<N> enumerators exist
+ here only as placeholders. */
+ CFI_ESC_byte = 1,
+ CFI_ESC_data2 = 2,
+ CFI_ESC_data4 = 4,
+ CFI_ESC_data8 = 8,
+ /* LEB128 data needs dedicated enumerators. */
+ CFI_ESC_sleb128,
+ CFI_ESC_uleb128,
+ } type;
+ TC_PARSE_CONS_RETURN_TYPE reloc;
+};
+
struct cfi_insn_data
{
struct cfi_insn_data *next;
#if MULTIPLE_FRAME_SECTIONS
segT cur_seg;
#endif
+#ifndef NO_LISTING
+ struct list_info_struct *listing_ctxt;
+#endif
int insn;
union
{
@@ -186,6 +208,10 @@ struct fde_entry
symbolS *end_address;
struct cfi_insn_data *data;
struct cfi_insn_data **last;
+#ifndef NO_LISTING
+ struct list_info_struct *listing_ctxt;
+ struct list_info_struct *listing_end;
+#endif
unsigned char per_encoding;
unsigned char lsda_encoding;
int personality_id;
diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c
index 2963e52..84c9661 100644
--- a/gas/dwarf2dbg.c
+++ b/gas/dwarf2dbg.c
@@ -171,10 +171,18 @@ struct line_entry
struct dwarf2_line_info loc;
};
-/* Don't change the offset of next in line_entry. set_or_check_view
- calls in dwarf2_gen_line_info_1 depend on it. */
-static char unused[offsetof(struct line_entry, next) ? -1 : 1]
-ATTRIBUTE_UNUSED;
+/* Given line_entry list HEAD and PTAIL pointers, return a pointer to
+ the last line_entry on the list. */
+static inline struct line_entry *
+line_entry_at_tail (void *head, struct line_entry **ptail)
+{
+ /* If the list is empty ptail points at head. */
+ if (head == NULL)
+ return NULL;
+ /* Otherwise ptail points to line_entry.next of the last entry. */
+ void *p = (char *) ptail - offsetof (struct line_entry, next);
+ return p;
+}
struct line_subseg
{
@@ -528,7 +536,8 @@ dwarf2_gen_line_info_1 (symbolS *label, struct dwarf2_line_info *loc)
/* Subseg heads are chained to previous subsegs in
dwarf2_finish. */
if (loc->filenum != -1u && loc->u.view && lss->head)
- set_or_check_view (e, (struct line_entry *) lss->ptail, lss->head);
+ set_or_check_view (e, line_entry_at_tail (lss->head, lss->ptail),
+ lss->head);
*lss->ptail = e;
lss->ptail = &e->next;
@@ -650,9 +659,8 @@ get_directory_table_entry (const char *dirname,
is set to the current build directory). Since we are
about to create a directory entry that is not the
same, allocate the current directory first. */
- (void) get_directory_table_entry (pwd, file0_dirname,
- strlen (pwd), true);
- d = 1;
+ (void) get_directory_table_entry (pwd, pwd, strlen (pwd), true);
+ d = dirs_in_use;
}
else
d = 0;
@@ -678,18 +686,17 @@ get_directory_table_entry (const char *dirname,
}
static bool
-assign_file_to_slot (unsigned int i, const char *file, unsigned int dir)
+assign_file_to_slot (valueT i, const char *file, unsigned int dir)
{
if (i >= files_allocated)
{
unsigned int want = i + 32;
- /* Catch wraparound. */
- if (want < files_allocated
- || want < i
- || want > UINT_MAX / sizeof (struct file_entry))
+ /* If this array is taking 1G or more, someone is using silly
+ file numbers. */
+ if (want < i || want > UINT_MAX / 4 / sizeof (struct file_entry))
{
- as_bad (_("file number %u is too big"), i);
+ as_bad (_("file number %" PRIu64 " is too big"), (uint64_t) i);
return false;
}
@@ -843,7 +850,7 @@ purge_generated_debug (bool thelot)
static bool
allocate_filename_to_slot (const char *dirname,
const char *filename,
- unsigned int num,
+ valueT num,
bool with_md5)
{
const char *file;
@@ -921,8 +928,9 @@ allocate_filename_to_slot (const char *dirname,
}
fail:
- as_bad (_("file table slot %u is already occupied by a different file (%s%s%s vs %s%s%s)"),
- num,
+ as_bad (_("file table slot %u is already occupied by a different file"
+ " (%s%s%s vs %s%s%s)"),
+ (unsigned int) num,
dir == NULL ? "" : dir,
dir == NULL ? "" : "/",
files[num].filename,
@@ -968,7 +976,7 @@ allocate_filename_to_slot (const char *dirname,
d = get_directory_table_entry (dirname, file0_dirname, dirlen, num == 0);
i = num;
- if (! assign_file_to_slot (i, file, d))
+ if (!assign_file_to_slot (num, file, d))
return false;
if (with_md5)
@@ -1228,15 +1236,7 @@ dwarf2_directive_filename (void)
purge_generated_debug (false);
debug_type = DEBUG_NONE;
- if (num != (unsigned int) num
- || num >= (size_t) -1 / sizeof (struct file_entry) - 32)
- {
- as_bad (_("file number %lu is too big"), (unsigned long) num);
- return NULL;
- }
-
- if (! allocate_filename_to_slot (dirname, filename, (unsigned int) num,
- with_md5))
+ if (!allocate_filename_to_slot (dirname, filename, num, with_md5))
return NULL;
return filename;
@@ -1632,7 +1632,7 @@ size_inc_line_addr (int line_delta, addressT addr_delta)
}
/* Bias the line delta by the base. */
- tmp = line_delta - DWARF2_LINE_BASE;
+ tmp = (unsigned) line_delta - DWARF2_LINE_BASE;
/* If the line increment is out of range of a special opcode, we
must encode it with DW_LNS_advance_line. */
@@ -1703,7 +1703,7 @@ emit_inc_line_addr (int line_delta, addressT addr_delta, char *p, int len)
}
/* Bias the line delta by the base. */
- tmp = line_delta - DWARF2_LINE_BASE;
+ tmp = (unsigned) line_delta - DWARF2_LINE_BASE;
/* If the line increment is out of range of a special opcode, we
must encode it with DW_LNS_advance_line. */
@@ -3028,6 +3028,11 @@ out_debug_str (segT str_seg, symbolS **name_sym, symbolS **comp_dir_sym,
int len;
int first_file = DWARF2_LINE_VERSION > 4 ? 0 : 1;
+ if (files_in_use == 0)
+ abort ();
+ if (first_file == 0 && files[first_file].filename == NULL)
+ first_file = 1;
+
subseg_set (str_seg, 0);
/* DW_AT_name. We don't have the actual file name that was present
@@ -3035,8 +3040,7 @@ out_debug_str (segT str_seg, symbolS **name_sym, symbolS **comp_dir_sym,
We're not supposed to get called unless at least one line number
entry was emitted, so this should always be defined. */
*name_sym = symbol_temp_new_now_octets ();
- if (files_in_use == 0)
- abort ();
+
if (files[first_file].dir)
{
char *dirname = remap_debug_filename (dirs[files[first_file].dir]);
@@ -3199,8 +3203,7 @@ dwarf2_finish (void)
/* Link the first view of subsequent subsections to the
previous view. */
if (lss->head && lss->head->loc.u.view)
- set_or_check_view (lss->head,
- !s->head ? NULL : (struct line_entry *)ptail,
+ set_or_check_view (lss->head, line_entry_at_tail (s->head, ptail),
s->head ? s->head->head : NULL);
*ptail = lss->head;
lss->head = NULL;
diff --git a/gas/ecoff.c b/gas/ecoff.c
index b8c9019..b5d811c 100644
--- a/gas/ecoff.c
+++ b/gas/ecoff.c
@@ -36,6 +36,7 @@
#include "aout/stab_gnu.h"
#include "filenames.h"
#include "safe-ctype.h"
+#include "ecoff-bfd.h"
/* Why isn't this in coff/sym.h? */
#define ST_RFDESCAPE 0xfff
@@ -1558,8 +1559,8 @@ add_string (varray_t *vp, /* string obstack */
if (len >= PAGE_USIZE)
as_fatal (_("string too big (%lu bytes)"), len);
- hash_ptr = (shash_t *) str_hash_find (hash_tbl, str);
- if (hash_ptr == (shash_t *) NULL)
+ hash_ptr = str_hash_find (hash_tbl, str);
+ if (hash_ptr == NULL)
{
if (vp->objects_last_page + len >= PAGE_USIZE)
{
@@ -2009,7 +2010,7 @@ get_tag (const char *tag, /* tag name */
if (cur_file_ptr == (efdr_t *) NULL)
as_fatal (_("no current file pointer"));
- hash_ptr = (shash_t *) str_hash_find (tag_hash, tag);
+ hash_ptr = str_hash_find (tag_hash, tag);
if (hash_ptr != (shash_t *) NULL
&& hash_ptr->tag_ptr != (tag_t *) NULL)
@@ -3350,7 +3351,7 @@ ecoff_directive_weakext (int ignore ATTRIBUTE_UNUSED)
++input_line_pointer;
SKIP_WHITESPACE ();
- if (! is_end_of_line[(unsigned char) *input_line_pointer])
+ if (! is_end_of_stmt (*input_line_pointer))
{
expression (&exp);
if (exp.X_op != O_symbol)
@@ -3549,13 +3550,6 @@ ecoff_stab (int what,
cur_file_ptr = save_file_ptr;
}
-static asection ecoff_scom_section;
-static const asymbol ecoff_scom_symbol =
- GLOBAL_SYM_INIT (SCOMMON, &ecoff_scom_section);
-static asection ecoff_scom_section =
- BFD_FAKE_SECTION (ecoff_scom_section, &ecoff_scom_symbol,
- SCOMMON, 0, SEC_IS_COMMON | SEC_SMALL_DATA);
-
/* Frob an ECOFF symbol. Small common symbols go into a special
.scommon section rather than bfd_com_section. */
@@ -3566,7 +3560,7 @@ ecoff_frob_symbol (symbolS *sym)
&& S_GET_VALUE (sym) > 0
&& S_GET_VALUE (sym) <= bfd_get_gp_size (stdoutput))
{
- S_SET_SEGMENT (sym, &ecoff_scom_section);
+ S_SET_SEGMENT (sym, &_bfd_ecoff_scom_section);
}
/* Double check weak symbols. */
diff --git a/gas/ehopt.c b/gas/ehopt.c
index 3e15fc9..ab976ba 100644
--- a/gas/ehopt.c
+++ b/gas/ehopt.c
@@ -90,17 +90,17 @@ __FRAME_BEGIN__:
struct cie_info
{
+ fragS *f;
unsigned code_alignment;
int z_augmentation;
};
/* Extract information from the CIE. */
-static int
+static bool
get_cie_info (struct cie_info *info)
{
fragS *f;
- fixS *fix;
unsigned int offset;
char CIE_id;
char augmentation[10];
@@ -110,9 +110,10 @@ get_cie_info (struct cie_info *info)
/* We should find the CIE at the start of the section. */
f = seg_info (now_seg)->frchainP->frch_root;
- fix = seg_info (now_seg)->frchainP->fix_root;
-
- /* Look through the frags of the section to find the code alignment. */
+ while (f != NULL && f->fr_fix == 0)
+ f = f->fr_next;
+ if (f != info->f)
+ return false;
/* First make sure that the CIE Identifier Tag is 0/-1. */
@@ -133,7 +134,7 @@ get_cie_info (struct cie_info *info)
|| f->fr_literal[offset + 1] != CIE_id
|| f->fr_literal[offset + 2] != CIE_id
|| f->fr_literal[offset + 3] != CIE_id)
- return 0;
+ return false;
/* Next make sure the CIE version number is 1. */
@@ -146,7 +147,7 @@ get_cie_info (struct cie_info *info)
if (f == NULL
|| f->fr_fix - offset < 1
|| f->fr_literal[offset] != 1)
- return 0;
+ return false;
/* Skip the augmentation (a null terminated string). */
@@ -160,7 +161,7 @@ get_cie_info (struct cie_info *info)
f = f->fr_next;
}
if (f == NULL)
- return 0;
+ return false;
while (offset < f->fr_fix && f->fr_literal[offset] != '\0')
{
@@ -181,7 +182,7 @@ get_cie_info (struct cie_info *info)
f = f->fr_next;
}
if (f == NULL)
- return 0;
+ return false;
augmentation[iaug] = '\0';
if (augmentation[0] == '\0')
@@ -192,6 +193,7 @@ get_cie_info (struct cie_info *info)
{
/* We have to skip a pointer. Unfortunately, we don't know how
large it is. We find out by looking for a matching fixup. */
+ fixS *fix = seg_info (now_seg)->frchainP->fix_root;
while (fix != NULL
&& (fix->fx_frag != f || fix->fx_where != offset))
fix = fix->fx_next;
@@ -205,10 +207,10 @@ get_cie_info (struct cie_info *info)
f = f->fr_next;
}
if (f == NULL)
- return 0;
+ return false;
}
else if (augmentation[0] != 'z')
- return 0;
+ return false;
/* We're now at the code alignment factor, which is a ULEB128. If
it isn't a single byte, forget it. */
@@ -220,7 +222,7 @@ get_cie_info (struct cie_info *info)
info->code_alignment = code_alignment;
info->z_augmentation = (augmentation[0] == 'z');
- return 1;
+ return true;
}
enum frame_state
@@ -240,7 +242,7 @@ struct frame_data
{
enum frame_state state;
- int cie_info_ok;
+ bool cie_info_ok;
struct cie_info cie_info;
symbolS *size_end_sym;
@@ -320,20 +322,27 @@ check_eh_frame (expressionS *exp, unsigned int *pnbytes)
{
d->state = state_saw_size;
d->size_end_sym = exp->X_add_symbol;
+ if (!d->cie_info.f)
+ d->cie_info.f = frag_now;
}
}
break;
case state_saw_size:
case state_saw_cie_offset:
- /* Assume whatever form it appears in, it appears atomically. */
- d->state = (enum frame_state) (d->state + 1);
+ if (!(*pnbytes == 4 || *pnbytes == 8))
+ /* Stop scanning if we don't see the expected FDE fields. */
+ d->state = state_error;
+ else
+ d->state = (enum frame_state) (d->state + 1);
break;
case state_saw_pc_begin:
/* Decide whether we should see an augmentation. */
- if (! d->cie_info_ok
- && ! (d->cie_info_ok = get_cie_info (&d->cie_info)))
+ if (!(*pnbytes == 4 || *pnbytes == 8))
+ d->state = state_error;
+ else if (!d->cie_info_ok
+ && !(d->cie_info_ok = get_cie_info (&d->cie_info)))
d->state = state_error;
else if (d->cie_info.z_augmentation)
{
@@ -347,7 +356,7 @@ check_eh_frame (expressionS *exp, unsigned int *pnbytes)
case state_seeing_aug_size:
/* Bytes == -1 means this comes from an leb128 directive. */
- if ((int)*pnbytes == -1 && exp->X_op == O_constant)
+ if ((int) *pnbytes == -1 && exp->X_op == O_constant)
{
d->aug_size = exp->X_add_number;
d->state = state_skipping_aug;
@@ -367,7 +376,7 @@ check_eh_frame (expressionS *exp, unsigned int *pnbytes)
break;
case state_skipping_aug:
- if ((int)*pnbytes < 0)
+ if ((int) *pnbytes < 0)
d->state = state_error;
else
{
diff --git a/gas/expr.c b/gas/expr.c
index b22346e..78a247c 100644
--- a/gas/expr.c
+++ b/gas/expr.c
@@ -298,7 +298,7 @@ integer_constant (int radix, expressionS *expressionP)
#define valuesize 32
#endif
- if (is_end_of_line[(unsigned char) *input_line_pointer])
+ if (is_end_of_stmt (*input_line_pointer))
{
expressionP->X_op = O_absent;
return;
@@ -632,6 +632,7 @@ integer_constant (int radix, expressionS *expressionP)
/* Not a small number. */
expressionP->X_op = O_big;
expressionP->X_add_number = number; /* Number of littlenums. */
+ expressionP->X_unsigned = 1;
input_line_pointer--; /* -> char following number. */
}
}
@@ -707,6 +708,7 @@ mri_char_constant (expressionS *expressionP)
{
expressionP->X_op = O_big;
expressionP->X_add_number = i;
+ expressionP->X_unsigned = 1;
}
else
{
@@ -769,6 +771,16 @@ expr_build_dot (void)
return expr_build_uconstant (abs_section_offset);
}
+/* Copy an expression, preserving X_md. */
+
+static void expr_copy (expressionS *dst, const expressionS *src)
+{
+ unsigned short md = dst->X_md;
+
+ *dst = *src;
+ dst->X_md = md;
+}
+
#ifndef md_register_arithmetic
# define md_register_arithmetic 1
#endif
@@ -803,7 +815,7 @@ operand (expressionS *expressionP, enum expr_mode mode)
SKIP_WHITESPACE (); /* Leading whitespace is part of operand. */
c = *input_line_pointer++; /* input_line_pointer -> past char in c. */
- if (is_end_of_line[(unsigned char) c])
+ if (is_end_of_stmt (c))
goto eol;
switch (c)
@@ -946,7 +958,7 @@ operand (expressionS *expressionP, enum expr_mode mode)
/* If it says "0f" and it could possibly be a floating point
number, make it one. Otherwise, make it a local label,
and try to deal with parsing the rest later. */
- if (!is_end_of_line[(unsigned char) input_line_pointer[1]]
+ if (!is_end_of_stmt (input_line_pointer[1])
&& strchr (FLT_CHARS, 'f') != NULL)
{
char *cp = input_line_pointer + 1;
@@ -1154,6 +1166,8 @@ operand (expressionS *expressionP, enum expr_mode mode)
if (generic_bignum[i])
break;
}
+
+ expressionP->X_unsigned = 0;
}
else if (op == O_logical_not)
{
@@ -1396,8 +1410,17 @@ operand (expressionS *expressionP, enum expr_mode mode)
}
else if (!expr_defer_p (mode) && segment == reg_section)
{
- expressionP->X_op = O_register;
- expressionP->X_add_number = S_GET_VALUE (symbolP);
+ if (md_register_arithmetic)
+ {
+ expressionP->X_op = O_register;
+ expressionP->X_add_number = S_GET_VALUE (symbolP);
+ }
+ else
+ {
+ expr_copy (expressionP,
+ symbol_get_value_expression (symbolP));
+ resolve_register (expressionP);
+ }
}
else
{
@@ -1668,7 +1691,7 @@ operatorf (int *num_chars)
c = *input_line_pointer & 0xff;
*num_chars = 1;
- if (is_end_of_line[c])
+ if (is_end_of_stmt (c))
return O_illegal;
#ifdef md_operator
@@ -2489,6 +2512,8 @@ void resolve_register (expressionS *expP)
do
{
+ if (!md_register_arithmetic && e->X_add_number)
+ break;
sym = e->X_add_symbol;
acc += e->X_add_number;
e = symbol_get_value_expression (sym);
@@ -2497,7 +2522,7 @@ void resolve_register (expressionS *expP)
if (e->X_op == O_register)
{
- *expP = *e;
+ expr_copy (expP, e);
expP->X_add_number += acc;
}
}
diff --git a/gas/expr.h b/gas/expr.h
index 14787c4..2be3d69 100644
--- a/gas/expr.h
+++ b/gas/expr.h
@@ -131,10 +131,12 @@ typedef struct expressionS
unsigned char X_op;
#endif
- /* Non-zero if X_add_number should be regarded as unsigned. This is
- only valid for O_constant expressions. It is only used when an
- O_constant must be extended into a bignum (i.e., it is not used
- when performing arithmetic on these values).
+ /* Non-zero if the expression value should be regarded as unsigned. This is
+ only valid for
+ - O_constant expressions, where it is only used when an O_constant must be
+ extended into a bignum (i.e., it is not used when performing arithmetic
+ on these values),
+ - O_big integer expressions, i.e. when X_add_number is positive.
FIXME: This field is not set very reliably. */
unsigned int X_unsigned : 1;
/* This is used to implement "word size + 1 bit" arithmetic, so that e.g.
diff --git a/gas/frags.c b/gas/frags.c
index d067bb4..129c27f 100644
--- a/gas/frags.c
+++ b/gas/frags.c
@@ -192,10 +192,7 @@ frag_new (size_t old_frags_var_max_size
frchP->frch_last = frag_now;
#ifndef NO_LISTING
- {
- extern struct list_info_struct *listing_tail;
- frag_now->line = listing_tail;
- }
+ frag_now->line = listing_tail;
#endif
gas_assert (frchain_now->frch_last == frag_now);
@@ -358,18 +355,11 @@ frag_align_pattern (int alignment, const char *fill_pattern,
#define NOP_OPCODE 0x00
#endif
-/* Use this to restrict the amount of memory allocated for representing
- the alignment code. Needs to be large enough to hold any fixed sized
+/* Use this to specify the amount of memory allocated for representing
+ the alignment code. Needs to be large enough to hold any fixed size
prologue plus the replicating portion. */
#ifndef MAX_MEM_FOR_RS_ALIGN_CODE
- /* Assume that if HANDLE_ALIGN is not defined then no special action
- is required to code fill, which means that we get just repeat the
- one NOP_OPCODE byte. */
-# ifndef HANDLE_ALIGN
-# define MAX_MEM_FOR_RS_ALIGN_CODE 1
-# else
-# define MAX_MEM_FOR_RS_ALIGN_CODE (((size_t) 1 << alignment) - 1)
-# endif
+# define MAX_MEM_FOR_RS_ALIGN_CODE(p2align, max) 1
#endif
void
@@ -377,7 +367,7 @@ frag_align_code (int alignment, int max)
{
char *p;
- p = frag_var (rs_align_code, MAX_MEM_FOR_RS_ALIGN_CODE, 1,
+ p = frag_var (rs_align_code, MAX_MEM_FOR_RS_ALIGN_CODE (alignment, max), 1,
(relax_substateT) max, (symbolS *) 0,
(offsetT) alignment, (char *) 0);
*p = NOP_OPCODE;
diff --git a/gas/frags.h b/gas/frags.h
index 695277d..c2fea09 100644
--- a/gas/frags.h
+++ b/gas/frags.h
@@ -44,8 +44,7 @@ struct frag {
/* (Fixed) number of octets we know we have. May be 0. */
valueT fr_fix;
- /* May be used for (Variable) number of octets after above.
- The generic frag handling code no longer makes any use of fr_var. */
+ /* May be used for (Variable) number of octets after above. */
offsetT fr_var;
/* For variable-length tail. */
offsetT fr_offset;
diff --git a/gas/gen-sframe.c b/gas/gen-sframe.c
index 13478ef..2d1c196 100644
--- a/gas/gen-sframe.c
+++ b/gas/gen-sframe.c
@@ -26,21 +26,8 @@
#ifdef support_sframe_p
-/* By default, use 32-bit relocations from .sframe into .text. */
-#ifndef SFRAME_RELOC_SIZE
-# define SFRAME_RELOC_SIZE 4
-#endif
-
-/* Whether frame row entries track RA.
-
- A target may not need return address tracking for stack tracing. If it
- does need the same, SFRAME_CFA_RA_REG must be defined with the return
- address register number. */
-
-#if defined (sframe_ra_tracking_p) && defined (SFRAME_CFA_RA_REG)
-# ifndef SFRAME_FRE_RA_TRACKING
-# define SFRAME_FRE_RA_TRACKING 1
-# endif
+#ifndef sizeof_member
+# define sizeof_member(type, member) (sizeof (((type *)0)->member))
#endif
/* SFrame FRE type selection optimization is an optimization for size.
@@ -155,7 +142,6 @@ sframe_fre_set_cfa_offset (struct sframe_row_entry *fre,
fre->merge_candidate = false;
}
-#ifdef SFRAME_FRE_RA_TRACKING
static void
sframe_fre_set_ra_track (struct sframe_row_entry *fre, offsetT ra_offset)
{
@@ -163,7 +149,6 @@ sframe_fre_set_ra_track (struct sframe_row_entry *fre, offsetT ra_offset)
fre->ra_offset = ra_offset;
fre->merge_candidate = false;
}
-#endif
static void
sframe_fre_set_bp_track (struct sframe_row_entry *fre, offsetT bp_offset)
@@ -353,11 +338,9 @@ get_fre_num_offsets (struct sframe_row_entry *sframe_fre)
if (sframe_fre->bp_loc == SFRAME_FRE_ELEM_LOC_STACK)
fre_num_offsets++;
-#ifdef SFRAME_FRE_RA_TRACKING
if (sframe_ra_tracking_p ()
&& sframe_fre->ra_loc == SFRAME_FRE_ELEM_LOC_STACK)
fre_num_offsets++;
-#endif
return fre_num_offsets;
}
@@ -378,11 +361,9 @@ sframe_get_fre_offset_size (struct sframe_row_entry *sframe_fre)
cfa_offset_size = get_offset_size_in_bytes (sframe_fre->cfa_offset);
if (sframe_fre->bp_loc == SFRAME_FRE_ELEM_LOC_STACK)
bp_offset_size = get_offset_size_in_bytes (sframe_fre->bp_offset);
-#ifdef SFRAME_FRE_RA_TRACKING
if (sframe_ra_tracking_p ()
&& sframe_fre->ra_loc == SFRAME_FRE_ELEM_LOC_STACK)
ra_offset_size = get_offset_size_in_bytes (sframe_fre->ra_offset);
-#endif
/* Get the maximum size needed to represent the offsets. */
max_offset_size = cfa_offset_size;
@@ -588,14 +569,12 @@ output_sframe_row_entry (symbolS *fde_start_addr,
fre_offset_func_map[idx].out_func (sframe_fre->cfa_offset);
fre_write_offsets++;
-#ifdef SFRAME_FRE_RA_TRACKING
if (sframe_ra_tracking_p ()
&& sframe_fre->ra_loc == SFRAME_FRE_ELEM_LOC_STACK)
{
fre_offset_func_map[idx].out_func (sframe_fre->ra_offset);
fre_write_offsets++;
}
-#endif
if (sframe_fre->bp_loc == SFRAME_FRE_ELEM_LOC_STACK)
{
fre_offset_func_map[idx].out_func (sframe_fre->bp_offset);
@@ -613,11 +592,9 @@ output_sframe_funcdesc (symbolS *start_of_fre_section,
struct sframe_func_entry *sframe_fde)
{
expressionS exp;
- unsigned int addr_size;
symbolS *dw_fde_start_addrS, *dw_fde_end_addrS;
unsigned int pauth_key;
- addr_size = SFRAME_RELOC_SIZE;
dw_fde_start_addrS = get_dw_fde_start_addrS (sframe_fde->dw_fde);
dw_fde_end_addrS = get_dw_fde_end_addrS (sframe_fde->dw_fde);
@@ -626,21 +603,24 @@ output_sframe_funcdesc (symbolS *start_of_fre_section,
exp.X_add_symbol = dw_fde_start_addrS; /* to location. */
exp.X_op_symbol = symbol_temp_new_now (); /* from location. */
exp.X_add_number = 0;
- emit_expr (&exp, addr_size);
+ emit_expr (&exp, sizeof_member (sframe_func_desc_entry,
+ sfde_func_start_address));
/* Size of the function in bytes. */
exp.X_op = O_subtract;
exp.X_add_symbol = dw_fde_end_addrS;
exp.X_op_symbol = dw_fde_start_addrS;
exp.X_add_number = 0;
- emit_expr (&exp, addr_size);
+ emit_expr (&exp, sizeof_member (sframe_func_desc_entry,
+ sfde_func_size));
/* Offset to the first frame row entry. */
exp.X_op = O_subtract;
exp.X_add_symbol = fre_symbol; /* Minuend. */
exp.X_op_symbol = start_of_fre_section; /* Subtrahend. */
exp.X_add_number = 0;
- emit_expr (&exp, addr_size);
+ emit_expr (&exp, sizeof_member (sframe_func_desc_entry,
+ sfde_func_start_fre_off));
/* Number of FREs. */
out_four (sframe_fde->num_fres);
@@ -681,9 +661,6 @@ output_sframe_internal (void)
unsigned char abi_arch = 0;
int fixed_fp_offset = SFRAME_CFA_FIXED_FP_INVALID;
int fixed_ra_offset = SFRAME_CFA_FIXED_RA_INVALID;
- unsigned int addr_size;
-
- addr_size = SFRAME_RELOC_SIZE;
/* The function descriptor entries as dumped by the assembler are not
sorted on PCs. */
@@ -691,9 +668,9 @@ output_sframe_internal (void)
unsigned int num_fdes = get_num_sframe_fdes ();
unsigned int num_fres = get_num_sframe_fres ();
- symbolS **fre_symbols = XNEWVEC (symbolS *, num_fres);
- for (i = 0; i < num_fres; i++)
- fre_symbols[i] = symbol_temp_make ();
+ symbolS **fde_fre_symbols = XNEWVEC (symbolS *, num_fdes);
+ for (i = 0; i < num_fdes; i++)
+ fde_fre_symbols[i] = symbol_temp_make ();
end_of_frame_hdr = symbol_temp_make ();
start_of_fre_section = symbol_temp_make ();
@@ -738,26 +715,26 @@ output_sframe_internal (void)
out_four (num_fdes); /* Number of FDEs. */
out_four (num_fres); /* Number of FREs. */
- /* FRE sub-section len. */
+ /* Size of FRE sub-section. */
exp.X_op = O_subtract;
exp.X_add_symbol = end_of_frame_section;
exp.X_op_symbol = start_of_fre_section;
exp.X_add_number = 0;
- emit_expr (&exp, addr_size);
+ emit_expr (&exp, sizeof_member (sframe_header, sfh_fre_len));
- /* Offset of Function Index sub-section. */
+ /* Offset of FDE sub-section. */
exp.X_op = O_subtract;
exp.X_add_symbol = end_of_frame_hdr;
exp.X_op_symbol = start_of_func_desc_section;
exp.X_add_number = 0;
- emit_expr (&exp, addr_size);
+ emit_expr (&exp, sizeof_member (sframe_header, sfh_fdeoff));
/* Offset of FRE sub-section. */
exp.X_op = O_subtract;
exp.X_add_symbol = start_of_fre_section;
exp.X_op_symbol = end_of_frame_hdr;
exp.X_add_number = 0;
- emit_expr (&exp, addr_size);
+ emit_expr (&exp, sizeof_member (sframe_header, sfh_freoff));
symbol_set_value_now (end_of_frame_hdr);
symbol_set_value_now (start_of_func_desc_section);
@@ -767,8 +744,8 @@ output_sframe_internal (void)
for (sframe_fde = all_sframe_fdes; sframe_fde; sframe_fde = sframe_fde->next)
{
output_sframe_funcdesc (start_of_fre_section,
- fre_symbols[i], sframe_fde);
- i += sframe_fde->num_fres;
+ fde_fre_symbols[i], sframe_fde);
+ i++;
}
symbol_set_value_now (start_of_fre_section);
@@ -779,16 +756,16 @@ output_sframe_internal (void)
for (sframe_fde = all_sframe_fdes; sframe_fde; sframe_fde = sframe_fde_next)
{
+ symbol_set_value_now (fde_fre_symbols[i]);
for (sframe_fre = sframe_fde->sframe_fres;
sframe_fre;
sframe_fre = sframe_fre->next)
{
- symbol_set_value_now (fre_symbols[i]);
output_sframe_row_entry (get_dw_fde_start_addrS (sframe_fde->dw_fde),
get_dw_fde_end_addrS (sframe_fde->dw_fde),
sframe_fre);
- i++;
}
+ i++;
sframe_fde_next = sframe_fde->next;
sframe_fde_free (sframe_fde);
}
@@ -797,10 +774,10 @@ output_sframe_internal (void)
symbol_set_value_now (end_of_frame_section);
- gas_assert (i == num_fres);
+ gas_assert (i == num_fdes);
- free (fre_symbols);
- fre_symbols = NULL;
+ free (fde_fre_symbols);
+ fde_fre_symbols = NULL;
}
static unsigned int
@@ -929,10 +906,8 @@ sframe_register_name (unsigned int reg)
return "SP";
else if (reg == SFRAME_CFA_FP_REG)
return "FP";
-#ifdef SFRAME_FRE_RA_TRACKING
else if (reg == SFRAME_CFA_RA_REG)
return "RA";
-#endif
else
return NULL;
}
@@ -1006,7 +981,8 @@ sframe_xlate_do_def_cfa (struct sframe_xlate_ctx *xlate_ctx,
if (cfi_insn->u.ri.reg != SFRAME_CFA_SP_REG
&& cfi_insn->u.ri.reg != SFRAME_CFA_FP_REG)
{
- as_warn (_("skipping SFrame FDE; non-SP/FP register %u in .cfi_def_cfa"),
+ as_warn (_("no SFrame FDE emitted; "
+ "non-SP/FP register %u in .cfi_def_cfa"),
cfi_insn->u.ri.reg);
return SFRAME_XLATE_ERR_NOTREPRESENTED; /* Not represented. */
}
@@ -1035,13 +1011,15 @@ sframe_xlate_do_def_cfa_register (struct sframe_xlate_ctx *xlate_ctx,
if (cfi_insn->u.r != SFRAME_CFA_SP_REG
&& cfi_insn->u.r != SFRAME_CFA_FP_REG)
{
- as_warn (_("skipping SFrame FDE; "
+ as_warn (_("no SFrame FDE emitted; "
"non-SP/FP register %u in .cfi_def_cfa_register"),
cfi_insn->u.r);
return SFRAME_XLATE_ERR_NOTREPRESENTED; /* Not represented. */
}
sframe_fre_set_cfa_base_reg (cur_fre, cfi_insn->u.r);
- sframe_fre_set_cfa_offset (cur_fre, last_fre->cfa_offset);
+ if (last_fre)
+ sframe_fre_set_cfa_offset (cur_fre, last_fre->cfa_offset);
+
cur_fre->merge_candidate = false;
return SFRAME_XLATE_OK;
@@ -1073,7 +1051,7 @@ sframe_xlate_do_def_cfa_offset (struct sframe_xlate_ctx *xlate_ctx,
{
/* No CFA base register in effect. Non-SP/FP CFA base register should
not occur, as sframe_xlate_do_def_cfa[_register] would detect this. */
- as_warn (_("skipping SFrame FDE; "
+ as_warn (_("no SFrame FDE emitted; "
".cfi_def_cfa_offset without CFA base register in effect"));
return SFRAME_XLATE_ERR_NOTREPRESENTED;
}
@@ -1103,38 +1081,39 @@ sframe_xlate_do_offset (struct sframe_xlate_ctx *xlate_ctx,
sframe_fre_set_bp_track (cur_fre, cfi_insn->u.ri.offset);
cur_fre->merge_candidate = false;
}
-#ifdef SFRAME_FRE_RA_TRACKING
else if (sframe_ra_tracking_p ()
&& cfi_insn->u.ri.reg == SFRAME_CFA_RA_REG)
{
sframe_fre_set_ra_track (cur_fre, cfi_insn->u.ri.offset);
cur_fre->merge_candidate = false;
}
-#endif
/* This is used to track changes to non-rsp registers, skip all others
except FP / RA for now. */
return SFRAME_XLATE_OK;
}
/* Translate DW_CFA_val_offset into SFrame context.
- Return SFRAME_XLATE_OK if success. */
+ Return SFRAME_XLATE_OK if success.
+
+ When CFI_ESC_P is true, the CFI_INSN is hand-crafted using CFI_escape
+ data. See sframe_xlate_do_escape_val_offset. */
static int
-sframe_xlate_do_val_offset (struct sframe_xlate_ctx *xlate_ctx ATTRIBUTE_UNUSED,
- struct cfi_insn_data *cfi_insn)
+sframe_xlate_do_val_offset (const struct sframe_xlate_ctx *xlate_ctx ATTRIBUTE_UNUSED,
+ const struct cfi_insn_data *cfi_insn,
+ bool cfi_esc_p)
{
/* Previous value of register is CFA + offset. However, if the specified
register is not interesting (SP, FP, or RA reg), the current
DW_CFA_val_offset instruction can be safely skipped without sacrificing
the asynchronicity of stack trace information. */
if (cfi_insn->u.ri.reg == SFRAME_CFA_FP_REG
-#ifdef SFRAME_FRE_RA_TRACKING
|| (sframe_ra_tracking_p () && cfi_insn->u.ri.reg == SFRAME_CFA_RA_REG)
-#endif
/* Ignore SP reg, if offset matches assumed default rule. */
|| (cfi_insn->u.ri.reg == SFRAME_CFA_SP_REG && cfi_insn->u.ri.offset != 0))
{
- as_warn (_("skipping SFrame FDE; %s register %u in .cfi_val_offset"),
+ as_warn (_("no SFrame FDE emitted; %s with %s reg %u"),
+ cfi_esc_p ? ".cfi_escape DW_CFA_val_offset" : ".cfi_val_offset",
sframe_register_name (cfi_insn->u.ri.reg), cfi_insn->u.ri.reg);
return SFRAME_XLATE_ERR_NOTREPRESENTED; /* Not represented. */
}
@@ -1155,13 +1134,11 @@ sframe_xlate_do_register (struct sframe_xlate_ctx *xlate_ctx ATTRIBUTE_UNUSED,
instruction can be safely skipped without sacrificing the asynchronicity of
stack trace information. */
if (cfi_insn->u.rr.reg1 == SFRAME_CFA_FP_REG
-#ifdef SFRAME_FRE_RA_TRACKING
|| (sframe_ra_tracking_p () && cfi_insn->u.rr.reg1 == SFRAME_CFA_RA_REG)
-#endif
/* Ignore SP reg, as it can be recovered from the CFA tracking info. */
)
{
- as_warn (_("skipping SFrame FDE; %s register %u in .cfi_register"),
+ as_warn (_("no SFrame FDE emitted; %s register %u in .cfi_register"),
sframe_register_name (cfi_insn->u.rr.reg1), cfi_insn->u.rr.reg1);
return SFRAME_XLATE_ERR_NOTREPRESENTED; /* Not represented. */
}
@@ -1183,7 +1160,7 @@ sframe_xlate_do_remember_state (struct sframe_xlate_ctx *xlate_ctx)
info for the function involved. */
if (!last_fre)
{
- as_warn (_("skipping SFrame FDE; "
+ as_warn (_("no SFrame FDE emitted; "
".cfi_remember_state without prior SFrame FRE state"));
return SFRAME_XLATE_ERR_INVAL;
}
@@ -1242,7 +1219,6 @@ sframe_xlate_do_restore (struct sframe_xlate_ctx *xlate_ctx,
cur_fre->bp_offset = cie_fre->bp_offset;
cur_fre->merge_candidate = false;
}
-#ifdef SFRAME_FRE_RA_TRACKING
else if (sframe_ra_tracking_p ()
&& cfi_insn->u.r == SFRAME_CFA_RA_REG)
{
@@ -1251,7 +1227,6 @@ sframe_xlate_do_restore (struct sframe_xlate_ctx *xlate_ctx,
cur_fre->ra_offset = cie_fre->ra_offset;
cur_fre->merge_candidate = false;
}
-#endif
return SFRAME_XLATE_OK;
}
@@ -1279,7 +1254,7 @@ static int
sframe_xlate_do_aarch64_negate_ra_state_with_pc (struct sframe_xlate_ctx *xlate_ctx ATTRIBUTE_UNUSED,
struct cfi_insn_data *cfi_insn ATTRIBUTE_UNUSED)
{
- as_warn (_("skipping SFrame FDE; .cfi_negate_ra_state_with_pc"));
+ as_warn (_("no SFrame FDE emitted; .cfi_negate_ra_state_with_pc"));
/* The used signing method should be encoded inside the FDE in SFrame v3.
For now, PAuth_LR extension is not supported with SFrame. */
return SFRAME_XLATE_ERR_NOTREPRESENTED; /* Not represented. */
@@ -1306,10 +1281,316 @@ sframe_xlate_do_gnu_window_save (struct sframe_xlate_ctx *xlate_ctx,
|| abi_arch == SFRAME_ABI_AARCH64_ENDIAN_LITTLE)
return sframe_xlate_do_aarch64_negate_ra_state (xlate_ctx, cfi_insn);
- as_warn (_("skipping SFrame FDE; .cfi_window_save"));
+ as_warn (_("no SFrame FDE emitted; .cfi_window_save"));
return SFRAME_XLATE_ERR_NOTREPRESENTED; /* Not represented. */
}
+/* Handle DW_CFA_expression in .cfi_escape.
+
+ As with sframe_xlate_do_cfi_escape, the intent of this function is to detect
+ only the simple-to-process but common cases, where skipping over the escape
+ expr data does not affect correctness of the SFrame stack trace data.
+
+ Sets CALLER_WARN_P for skipped cases (and returns SFRAME_XLATE_OK) where the
+ caller must warn. The caller then must also set
+ SFRAME_XLATE_ERR_NOTREPRESENTED for their callers. */
+
+static int
+sframe_xlate_do_escape_expr (const struct sframe_xlate_ctx *xlate_ctx,
+ const struct cfi_insn_data *cfi_insn,
+ bool *caller_warn_p)
+{
+ const struct cfi_escape_data *e = cfi_insn->u.esc;
+ int err = SFRAME_XLATE_OK;
+ unsigned int reg = 0;
+ unsigned int i = 0;
+
+ /* Check roughly for an expression
+ DW_CFA_expression: r1 (rdx) (DW_OP_bregN (reg): OFFSET). */
+#define CFI_ESC_NUM_EXP 4
+ offsetT items[CFI_ESC_NUM_EXP] = {0};
+ while (e->next)
+ {
+ e = e->next;
+ if ((i == 2 && (items[1] != 2)) /* Expected len of 2 in DWARF expr. */
+ /* We do not care for the exact values of items[2] and items[3],
+ so an explicit check for O_constant isnt necessary either. */
+ || i >= CFI_ESC_NUM_EXP
+ || (i < 2
+ && (e->exp.X_op != O_constant
+ || e->type != CFI_ESC_byte
+ || e->reloc != TC_PARSE_CONS_RETURN_NONE)))
+ goto warn_and_exit;
+ items[i] = e->exp.X_add_number;
+ i++;
+ }
+
+ if (i <= CFI_ESC_NUM_EXP - 1)
+ goto warn_and_exit;
+
+ /* reg operand to DW_CFA_expression is ULEB128. For the purpose at hand,
+ however, the register value will be less than 128 (CFI_ESC_NUM_EXP set
+ to 4). See an extended comment in sframe_xlate_do_escape_expr for why
+ reading ULEB is okay to skip without sacrificing correctness. */
+ reg = items[0];
+#undef CFI_ESC_NUM_EXP
+
+ if (reg == SFRAME_CFA_SP_REG || reg == SFRAME_CFA_FP_REG
+ || (sframe_ra_tracking_p () && reg == SFRAME_CFA_RA_REG)
+ || reg == xlate_ctx->cur_fre->cfa_base_reg)
+ {
+ as_warn (_("no SFrame FDE emitted; "
+ ".cfi_escape DW_CFA_expression with %s reg %u"),
+ sframe_register_name (reg), reg);
+ err = SFRAME_XLATE_ERR_NOTREPRESENTED;
+ }
+ /* else safe to skip, so continue to return SFRAME_XLATE_OK. */
+
+ return err;
+
+warn_and_exit:
+ *caller_warn_p = true;
+ return err;
+}
+
+/* Handle DW_CFA_val_offset in .cfi_escape.
+
+ As with sframe_xlate_do_cfi_escape, the intent of this function is to detect
+ only the simple-to-process but common cases, where skipping over the escape
+ expr data does not affect correctness of the SFrame stack trace data.
+
+ Sets CALLER_WARN_P for skipped cases (and returns SFRAME_XLATE_OK) where the
+ caller must warn. The caller then must also set
+ SFRAME_XLATE_ERR_NOTREPRESENTED for their callers. */
+
+static int
+sframe_xlate_do_escape_val_offset (const struct sframe_xlate_ctx *xlate_ctx,
+ const struct cfi_insn_data *cfi_insn,
+ bool *caller_warn_p)
+{
+ const struct cfi_escape_data *e = cfi_insn->u.esc;
+ int err = SFRAME_XLATE_OK;
+ unsigned int i = 0;
+ unsigned int reg;
+ offsetT offset;
+
+ /* Check for (DW_CFA_val_offset reg scaled_offset) sequence. */
+#define CFI_ESC_NUM_EXP 2
+ offsetT items[CFI_ESC_NUM_EXP] = {0};
+ while (e->next)
+ {
+ e = e->next;
+ if (i >= CFI_ESC_NUM_EXP || e->exp.X_op != O_constant
+ || e->type != CFI_ESC_byte
+ || e->reloc != TC_PARSE_CONS_RETURN_NONE)
+ goto warn_and_exit;
+ items[i] = e->exp.X_add_number;
+ i++;
+ }
+ if (i <= CFI_ESC_NUM_EXP - 1)
+ goto warn_and_exit;
+
+ /* Both arguments to DW_CFA_val_offset are ULEB128. Especially with APX (on
+ x86) we're going to see DWARF register numbers above 127, for the extended
+ GPRs. And large enough stack frames would also require multi-byte offset
+ representation. However, since we limit our focus on cases when
+ CFI_ESC_NUM_EXP is 2, reading ULEB can be skipped. IOW, although not
+ ideal, SFrame FDE generation in case of an APX register in
+ DW_CFA_val_offset is being skipped (PS: this does _not_ mean incorrect
+ SFrame stack trace data).
+
+ Recall that the intent here is to check for simple and prevalent cases,
+ when feasible. */
+
+ reg = items[0];
+ offset = items[1];
+#undef CFI_ESC_NUM_EXP
+
+ /* Invoke sframe_xlate_do_val_offset itself for checking. */
+ struct cfi_insn_data temp = {
+ .insn = DW_CFA_val_offset,
+ .u = {
+ .ri = {
+ .reg = reg,
+ .offset = offset * DWARF2_CIE_DATA_ALIGNMENT
+ }
+ }
+ };
+ err = sframe_xlate_do_val_offset (xlate_ctx, &temp, true);
+ return err;
+
+warn_and_exit:
+ *caller_warn_p = true;
+ return err;
+}
+
+/* Handle CFI_escape in SFrame context.
+
+ .cfi_escape CFI directive allows the user to add arbitrary data to the
+ unwind info. DWARF expressions commonly follow after CFI_escape (fake CFI)
+ DWARF opcode. One might also use CFI_escape to add OS-specific CFI opcodes
+ even.
+
+ Complex unwind info added using .cfi_escape directive _may_ be of no
+ consequence for SFrame when the affected registers are not SP, FP, RA or
+ CFA. The challenge in confirming the afore-mentioned is that it needs full
+ parsing (and validation) of the data presented after .cfi_escape. Here we
+ take a case-by-case approach towards skipping _some_ instances of
+ .cfi_escape: skip those that can be *easily* determined to be harmless in
+ the context of SFrame stack trace information.
+
+ This function partially processes data following .cfi_escape and returns
+ SFRAME_XLATE_OK if OK to skip. */
+
+static int
+sframe_xlate_do_cfi_escape (const struct sframe_xlate_ctx *xlate_ctx,
+ const struct cfi_insn_data *cfi_insn)
+{
+ const struct cfi_escape_data *e;
+ bool warn_p = false;
+ int err = SFRAME_XLATE_OK;
+ offsetT firstop;
+
+ e = cfi_insn->u.esc;
+
+ if (!e)
+ return SFRAME_XLATE_ERR_INVAL;
+
+ if (e->exp.X_op != O_constant
+ || e->type != CFI_ESC_byte
+ || e->reloc != TC_PARSE_CONS_RETURN_NONE)
+ return SFRAME_XLATE_ERR_NOTREPRESENTED;
+
+ firstop = e->exp.X_add_number;
+ switch (firstop)
+ {
+ case DW_CFA_nop:
+ /* One or more nops together are harmless for SFrame. */
+ while (e->next)
+ {
+ e = e->next;
+ if (e->exp.X_op != O_constant || e->exp.X_add_number != DW_CFA_nop
+ || e->type != CFI_ESC_byte
+ || e->reloc != TC_PARSE_CONS_RETURN_NONE)
+ {
+ warn_p = true;
+ break;
+ }
+ }
+ break;
+
+ case DW_CFA_expression:
+ err = sframe_xlate_do_escape_expr (xlate_ctx, cfi_insn, &warn_p);
+ break;
+
+ case DW_CFA_val_offset:
+ err = sframe_xlate_do_escape_val_offset (xlate_ctx, cfi_insn, &warn_p);
+ break;
+
+ /* FIXME - Also add processing for DW_CFA_GNU_args_size in future? */
+
+ default:
+ warn_p = true;
+ break;
+ }
+
+ if (warn_p)
+ {
+ /* In all other cases (e.g., DW_CFA_def_cfa_expression or other
+ OS-specific CFI opcodes), skip inspecting the DWARF expression.
+ This may impact the asynchronicity due to loss of coverage.
+ Continue to warn the user and bail out. */
+ as_warn (_("no SFrame FDE emitted; .cfi_escape with op (%#lx)"),
+ (unsigned long)firstop);
+ err = SFRAME_XLATE_ERR_NOTREPRESENTED;
+ }
+
+ return err;
+}
+
+/* Translate DW_CFA_undefined into SFrame context.
+
+ DW_CFA_undefined op indicates that from now on, the previous value of
+ register can’t be restored anymore. In SFrame stack trace, we cannot
+ represent such a semantic. So, we skip generating an SFrame FDE for this,
+ when a register of interest is used with DW_CFA_undefined.
+
+ Return SFRAME_XLATE_OK if success. */
+
+static int
+sframe_xlate_do_cfi_undefined (const struct sframe_xlate_ctx *xlate_ctx ATTRIBUTE_UNUSED,
+ const struct cfi_insn_data *cfi_insn)
+{
+ if (cfi_insn->u.r == SFRAME_CFA_FP_REG
+ || cfi_insn->u.r == SFRAME_CFA_RA_REG
+ || cfi_insn->u.r == SFRAME_CFA_SP_REG)
+ {
+ as_warn (_("no SFrame FDE emitted; %s reg %u in .cfi_undefined"),
+ sframe_register_name (cfi_insn->u.r), cfi_insn->u.r);
+ return SFRAME_XLATE_ERR_NOTREPRESENTED; /* Not represented. */
+ }
+
+ /* Safe to skip. */
+ return SFRAME_XLATE_OK;
+}
+
+/* Translate DW_CFA_same_value into SFrame context.
+
+ DW_CFA_same_value op indicates that current value of register is the same as
+ in the previous frame, i.e. no restoration needed. In SFrame stack trace
+ format, the handling is done similar to DW_CFA_restore.
+
+ For SFRAME_CFA_RA_REG, if RA-tracking is enabled, reset the SFrame FRE state
+ for REG_RA to indicate that register does not need restoration. P.S.: Even
+ though resetting just REG_RA may be contradicting the AArch64 ABI (as Frame
+ Record contains for FP and LR), sframe_xlate_do_same_value () does not
+ detect the case and assumes the users' DW_CFA_same_value SFRAME_CFA_RA_REG
+ has a sound reason. For ABIs, where RA-tracking is disabled, handle it
+ similar to DW_CFA_restore: ignore the directive, it is safe to skip. The
+ reasoning is similar to that for DW_CFA_restore: if such a restoration was
+ meant to be of any consequence, there must have been the necessary CFI
+ directives for updating the CFA rule too such that the recovered RA from
+ stack is valid.
+
+ SFrame based stacktracers will implement CFA-based SP recovery for all ABIs:
+ SP for previous frame is based on the applicable CFA-rule. There is no
+ representation in SFrame to indicate "no restoration needed" for REG_SP,
+ when going to the previous frame. That said, if DW_CFA_same_value is seen
+ for SFRAME_CFA_SP_REG, handle it similar to DW_CFA_restore: ignore the
+ directive, it is safe to skip. The reasoning is similar to that for
+ DW_CFA_restore: if such a restoration was meant to be of any consequence,
+ there must have been the necessary CFI directives for updating the CFA rule
+ too. The latter will be duly processed by the SFrame generation code, as
+ expected.
+
+ For SFRAME_CFA_FP_REG, reset the state of the current FRE to indicate that
+ the value is the same as previous frame.
+
+ Return SFRAME_XLATE_OK if success. */
+
+static int
+sframe_xlate_do_same_value (const struct sframe_xlate_ctx *xlate_ctx,
+ const struct cfi_insn_data *cfi_insn)
+{
+ struct sframe_row_entry *cur_fre = xlate_ctx->cur_fre;
+
+ if (sframe_ra_tracking_p () && cfi_insn->u.r == SFRAME_CFA_RA_REG)
+ {
+ cur_fre->ra_loc = SFRAME_FRE_ELEM_LOC_REG;
+ cur_fre->ra_offset = 0;
+ cur_fre->merge_candidate = false;
+ }
+ else if (cfi_insn->u.r == SFRAME_CFA_FP_REG)
+ {
+ cur_fre->bp_loc = SFRAME_FRE_ELEM_LOC_REG;
+ cur_fre->bp_offset = 0;
+ cur_fre->merge_candidate = false;
+ }
+
+ /* Safe to skip. */
+ return SFRAME_XLATE_OK;
+}
+
/* Returns the DWARF call frame instruction name or fake CFI name for the
specified CFI opcode, or NULL if the value is not recognized. */
@@ -1384,7 +1665,7 @@ sframe_do_cfi_insn (struct sframe_xlate_ctx *xlate_ctx,
err = sframe_xlate_do_offset (xlate_ctx, cfi_insn);
break;
case DW_CFA_val_offset:
- err = sframe_xlate_do_val_offset (xlate_ctx, cfi_insn);
+ err = sframe_xlate_do_val_offset (xlate_ctx, cfi_insn, false);
break;
case DW_CFA_remember_state:
err = sframe_xlate_do_remember_state (xlate_ctx);
@@ -1406,21 +1687,23 @@ sframe_do_cfi_insn (struct sframe_xlate_ctx *xlate_ctx,
case DW_CFA_register:
err = sframe_xlate_do_register (xlate_ctx, cfi_insn);
break;
- /* Following CFI opcodes are not processed at this time.
- These do not impact the coverage of the basic stack tracing
- information as conveyed in the SFrame format. */
+ case CFI_escape:
+ err = sframe_xlate_do_cfi_escape (xlate_ctx, cfi_insn);
+ break;
case DW_CFA_undefined:
+ err = sframe_xlate_do_cfi_undefined (xlate_ctx, cfi_insn);
+ break;
case DW_CFA_same_value:
+ err = sframe_xlate_do_same_value (xlate_ctx, cfi_insn);
break;
default:
- /* Following skipped operations do, however, impact the asynchronicity:
- - CFI_escape. */
+ /* Other skipped operations may, however, impact the asynchronicity. */
{
const char *cfi_name = sframe_get_cfi_name (op);
if (!cfi_name)
cfi_name = _("(unknown)");
- as_warn (_("skipping SFrame FDE; CFI insn %s (%#x)"),
+ as_warn (_("no SFrame FDE emitted; CFI insn %s (%#x)"),
cfi_name, op);
err = SFRAME_XLATE_ERR_NOTREPRESENTED;
}
@@ -1444,7 +1727,7 @@ sframe_do_fde (struct sframe_xlate_ctx *xlate_ctx,
/* SFrame format cannot represent a non-default DWARF return column reg. */
if (xlate_ctx->dw_fde->return_column != DWARF2_DEFAULT_RETURN_COLUMN)
{
- as_warn (_("skipping SFrame FDE; non-default RA register %u"),
+ as_warn (_("no SFrame FDE emitted; non-default RA register %u"),
xlate_ctx->dw_fde->return_column);
return SFRAME_XLATE_ERR_NOTREPRESENTED;
}
@@ -1476,7 +1759,6 @@ sframe_do_fde (struct sframe_xlate_ctx *xlate_ctx,
= get_dw_fde_end_addrS (xlate_ctx->dw_fde);
}
-#ifdef SFRAME_FRE_RA_TRACKING
if (sframe_ra_tracking_p ())
{
struct sframe_row_entry *fre;
@@ -1488,12 +1770,11 @@ sframe_do_fde (struct sframe_xlate_ctx *xlate_ctx,
if (fre->ra_loc != SFRAME_FRE_ELEM_LOC_STACK
&& fre->bp_loc == SFRAME_FRE_ELEM_LOC_STACK)
{
- as_warn (_("skipping SFrame FDE; FP without RA on stack"));
+ as_warn (_("no SFrame FDE emitted; FP without RA on stack"));
return SFRAME_XLATE_ERR_NOTREPRESENTED;
}
}
}
-#endif /* SFRAME_FRE_RA_TRACKING */
return SFRAME_XLATE_OK;
}
diff --git a/gas/ginsn.c b/gas/ginsn.c
index e74196d..91b0350 100644
--- a/gas/ginsn.c
+++ b/gas/ginsn.c
@@ -179,9 +179,8 @@ ginsnS *
label_ginsn_map_find (const symbolS *label)
{
const char *name = S_GET_NAME (label);
- ginsnS *ginsn
- = (ginsnS *) str_hash_find (frchain_now->frch_ginsn_data->label_ginsn_map,
- name);
+ ginsnS *ginsn = str_hash_find (frchain_now->frch_ginsn_data->label_ginsn_map,
+ name);
return ginsn;
}
diff --git a/gas/hash.c b/gas/hash.c
index 1b47203..a55144d 100644
--- a/gas/hash.c
+++ b/gas/hash.c
@@ -25,7 +25,7 @@
hashval_t
hash_string_tuple (const void *e)
{
- string_tuple_t *tuple = (string_tuple_t *) e;
+ const string_tuple_t *tuple = e;
return htab_hash_string (tuple->key);
}
@@ -34,8 +34,8 @@ hash_string_tuple (const void *e)
int
eq_string_tuple (const void *a, const void *b)
{
- const string_tuple_t *ea = (const string_tuple_t *) a;
- const string_tuple_t *eb = (const string_tuple_t *) b;
+ const string_tuple_t *ea = a;
+ const string_tuple_t *eb = b;
return strcmp (ea->key, eb->key) == 0;
}
diff --git a/gas/hash.h b/gas/hash.h
index 6f6c1d4..97e23a9 100644
--- a/gas/hash.h
+++ b/gas/hash.h
@@ -24,7 +24,7 @@
struct string_tuple
{
const char *key;
- const void *value;
+ intptr_t value;
};
typedef struct string_tuple string_tuple_t;
@@ -50,7 +50,7 @@ extern void htab_print_statistics (FILE *f, const char *name, htab_t table);
/* Inline string hash table functions. */
static inline string_tuple_t *
-string_tuple_alloc (htab_t table, const char *key, const void *value)
+string_tuple_alloc (htab_t table, const char *key, intptr_t value)
{
string_tuple_t *tuple = table->alloc_f (1, sizeof (*tuple));
tuple->key = key;
@@ -61,18 +61,26 @@ string_tuple_alloc (htab_t table, const char *key, const void *value)
static inline void *
str_hash_find (htab_t table, const char *key)
{
- string_tuple_t needle = { key, NULL };
+ string_tuple_t needle = { key, 0 };
string_tuple_t *tuple = htab_find (table, &needle);
return tuple != NULL ? (void *) tuple->value : NULL;
}
+static inline intptr_t
+str_hash_find_int (htab_t table, const char *key)
+{
+ string_tuple_t needle = { key, 0 };
+ string_tuple_t *tuple = htab_find (table, &needle);
+ return tuple != NULL ? tuple->value : -1;
+}
+
static inline void *
str_hash_find_n (htab_t table, const char *key, size_t n)
{
char *tmp = XNEWVEC (char, n + 1);
memcpy (tmp, key, n);
tmp[n] = '\0';
- string_tuple_t needle = { tmp, NULL };
+ string_tuple_t needle = { tmp, 0 };
string_tuple_t *tuple = htab_find (table, &needle);
free (tmp);
return tuple != NULL ? (void *) tuple->value : NULL;
@@ -81,12 +89,12 @@ str_hash_find_n (htab_t table, const char *key, size_t n)
static inline void
str_hash_delete (htab_t table, const char *key)
{
- string_tuple_t needle = { key, NULL };
+ string_tuple_t needle = { key, 0 };
htab_remove_elt (table, &needle);
}
static inline void **
-str_hash_insert (htab_t table, const char *key, const void *value, int replace)
+str_hash_insert_int (htab_t table, const char *key, intptr_t value, int replace)
{
string_tuple_t *elt = string_tuple_alloc (table, key, value);
void **slot = htab_insert (table, elt, replace);
@@ -95,6 +103,12 @@ str_hash_insert (htab_t table, const char *key, const void *value, int replace)
return slot;
}
+static inline void **
+str_hash_insert (htab_t table, const char *key, const void *value, int replace)
+{
+ return str_hash_insert_int (table, key, (intptr_t) value, replace);
+}
+
static inline htab_t
str_htab_create (void)
{
diff --git a/gas/input-scrub.c b/gas/input-scrub.c
index 2e0ce83..93d1e8e 100644
--- a/gas/input-scrub.c
+++ b/gas/input-scrub.c
@@ -150,6 +150,21 @@ input_scrub_reinit (void)
memcpy (buffer_start, BEFORE_STRING, (int) BEFORE_SIZE);
}
+/* Finish off old buffers. */
+
+static void
+input_scrub_free (void)
+{
+ if (sb_index != (size_t) -1)
+ {
+ sb_kill (&from_sb);
+ sb_index = -1;
+ }
+ free (buffer_start);
+ buffer_start = NULL;
+ input_file_end ();
+}
+
/* Push the state of input reading and scrubbing so that we can #include.
The return value is a 'void *' (fudged for old compilers) to a save
area, which can be restored by passing it to input_scrub_pop(). */
@@ -188,7 +203,7 @@ input_scrub_pop (struct input_save *saved)
{
char *saved_position;
- input_scrub_end (); /* Finish off old buffer */
+ input_scrub_free ();
input_file_pop (saved->input_file_save);
saved_position = saved->saved_position;
@@ -241,12 +256,9 @@ input_scrub_begin (void)
void
input_scrub_end (void)
{
- if (buffer_start)
- {
- free (buffer_start);
- buffer_start = 0;
- input_file_end ();
- }
+ while (next_saved_file != NULL)
+ input_scrub_pop (next_saved_file);
+ input_scrub_free ();
}
/* Start reading input from a new file.
@@ -341,7 +353,6 @@ input_scrub_next_buffer (char **bufp)
{
if (sb_index >= from_sb.len)
{
- sb_kill (&from_sb);
if (from_sb_expansion == expanding_macro)
{
cond_finish_check (macro_nest);
diff --git a/gas/listing.c b/gas/listing.c
index 11ae450..d611179 100644
--- a/gas/listing.c
+++ b/gas/listing.c
@@ -190,10 +190,10 @@ struct list_info_struct
typedef struct list_info_struct list_info_type;
-int listing_lhs_width = LISTING_LHS_WIDTH;
-int listing_lhs_width_second = LISTING_LHS_WIDTH_SECOND;
-int listing_lhs_cont_lines = LISTING_LHS_CONT_LINES;
-int listing_rhs_width = LISTING_RHS_WIDTH;
+unsigned int listing_lhs_width = LISTING_LHS_WIDTH;
+unsigned int listing_lhs_width_second = LISTING_LHS_WIDTH_SECOND;
+unsigned int listing_lhs_cont_lines = LISTING_LHS_CONT_LINES;
+unsigned int listing_rhs_width = LISTING_RHS_WIDTH;
struct list_info_struct * listing_tail;
@@ -201,8 +201,8 @@ static file_info_type * file_info_head;
static file_info_type * last_open_file_info;
static FILE * last_open_file;
static struct list_info_struct * head;
-static int paper_width = 200;
-static int paper_height = 60;
+static unsigned int paper_width = 200;
+static unsigned int paper_height = 60;
extern int listing;
@@ -220,17 +220,6 @@ static FILE *list_file;
static char *data_buffer;
-/* Prototypes. */
-static void listing_message (const char *, const char *);
-static file_info_type *file_info (const char *);
-static void new_frag (void);
-static void listing_page (list_info_type *);
-static unsigned int calc_hex (list_info_type *);
-static void print_lines (list_info_type *, unsigned int, const char *,
- unsigned int);
-static void list_symbol_table (void);
-static void listing_listing (char *);
-
static void
listing_message (const char *name, const char *message)
{
@@ -362,8 +351,7 @@ listing_newline (char *ps)
int seen_slash = 0;
for (copy = input_line_pointer;
- *copy && (seen_quote
- || is_end_of_line [(unsigned char) *copy] != 1);
+ seen_quote ? *copy : !is_end_of_line (*copy);
copy++)
{
if (seen_slash)
@@ -443,6 +431,51 @@ listing_newline (char *ps)
#endif
}
+/* Set listing context back to where it was when input was parsed, to allow
+ associating late code/data emission to segments with their origin. */
+
+struct list_info_struct *listing_override_tail (struct list_info_struct *info)
+{
+ struct list_info_struct *prev = listing_tail;
+ const fragS *frag;
+
+ if (!info)
+ return NULL;
+
+ listing_tail = info;
+
+ /* The first frag created by listing_newline() is still associated with the
+ earlier line. For the adjustment done below this property doesn't hold,
+ though. */
+ frag = info->frag;
+ if (frag->line != info)
+ frag = frag->fr_next;
+
+ /* Check whether there's any other output data already for this line. Replace
+ info->frag only if there's none. This is to cover for contributions to
+ multiple sections from a single line not being properly represented in the
+ listing, at the time of writing. Prefer the listing to show any "ordinary"
+ code/data contributions over any .eh_frame ones. (This way multiple .cfi_*
+ on a single line will also have all their contributions listed, rather
+ than just those from the last such directive.) */
+ for (; frag; frag = frag->fr_next)
+ if (frag->line != info
+ || (frag->fr_type != rs_dummy
+ && (frag->fr_type != rs_fill
+ || frag->fr_fix
+ || (frag->fr_var && frag->fr_offset))))
+ break;
+
+ if (!frag || frag->line != info)
+ {
+ new_frag ();
+ info->frag = frag_now;
+ new_frag ();
+ }
+
+ return prev;
+}
+
/* Attach all current frags to the previous line instead of the
current line. This is called by the MIPS backend when it discovers
that it needs to add some NOP instructions; the added NOP
@@ -702,7 +735,7 @@ listing_page (list_info_type *list)
{
/* Grope around, see if we can see a title or subtitle edict coming up
soon. (we look down 10 lines of the page and see if it's there) */
- if ((eject || (on_page >= (unsigned int) paper_height))
+ if ((eject || (on_page >= paper_height))
&& paper_height != 0)
{
unsigned int c = 10;
@@ -760,7 +793,7 @@ emit_line (list_info_type * list, const char * format, ...)
static unsigned int
calc_hex (list_info_type *list)
{
- int data_buffer_size;
+ size_t data_buffer_size;
list_info_type *first = list;
unsigned int address = ~(unsigned int) 0;
fragS *frag;
@@ -793,7 +826,7 @@ calc_hex (list_info_type *list)
data_buffer_size += 2;
octet_in_frag++;
}
- if (frag_ptr->fr_type == rs_fill)
+ if (frag_ptr->fr_type == rs_fill || frag_ptr->fr_type == rs_fill_nop)
{
unsigned int var_rep_max = octet_in_frag;
unsigned int var_rep_idx = octet_in_frag;
@@ -818,28 +851,6 @@ calc_hex (list_info_type *list)
var_rep_idx = var_rep_max;
}
}
- else if (frag_ptr->fr_type == rs_fill_nop && frag_ptr->fr_opcode)
- {
- gas_assert (!octet_in_frag);
-
- /* Print as many bytes from fr_opcode as is sensible. */
- while (octet_in_frag < (unsigned int) frag_ptr->fr_offset
- && data_buffer_size < MAX_BYTES - 3)
- {
- if (address == ~(unsigned int) 0)
- address = frag_ptr->fr_address / OCTETS_PER_BYTE;
-
- sprintf (data_buffer + data_buffer_size,
- "%02X",
- frag_ptr->fr_opcode[octet_in_frag] & 0xff);
- data_buffer_size += 2;
-
- octet_in_frag++;
- }
-
- free (frag_ptr->fr_opcode);
- frag_ptr->fr_opcode = NULL;
- }
frag_ptr = frag_ptr->fr_next;
}
@@ -909,7 +920,7 @@ print_lines (list_info_type *list, unsigned int lineno,
emit_line (list, "**** %s\n", msg->message);
for (lines = 0;
- lines < (unsigned int) listing_lhs_cont_lines
+ lines < listing_lhs_cont_lines
&& src[cur];
lines++)
{
@@ -1345,7 +1356,7 @@ print_timestamp (void)
static void
print_single_option (char * opt, int *pos)
{
- int opt_len = strlen (opt);
+ size_t opt_len = strlen (opt);
if ((*pos + opt_len) < paper_width)
{
@@ -1514,7 +1525,7 @@ listing_psize (int width_only)
{
paper_height = get_absolute_expression ();
- if (paper_height < 0 || paper_height > 1000)
+ if (paper_height > 1000)
{
paper_height = 0;
as_warn (_("strange paper height, set to no form"));
@@ -1581,7 +1592,7 @@ listing_title (int depth)
{
if (quoted
? *input_line_pointer == '\"'
- : is_end_of_line[(unsigned char) *input_line_pointer])
+ : is_end_of_stmt (*input_line_pointer))
{
if (listing)
{
@@ -1626,58 +1637,4 @@ listing_source_file (const char *file)
listing_tail->hll_file = file_info (file);
}
-#else
-
-/* Dummy functions for when compiled without listing enabled. */
-
-void
-listing_list (int on)
-{
- s_ignore (0);
-}
-
-void
-listing_eject (int ignore)
-{
- s_ignore (0);
-}
-
-void
-listing_psize (int ignore)
-{
- s_ignore (0);
-}
-
-void
-listing_nopage (int ignore)
-{
- s_ignore (0);
-}
-
-void
-listing_title (int depth)
-{
- s_ignore (0);
-}
-
-void
-listing_file (const char *name)
-{
-}
-
-void
-listing_newline (char *name)
-{
-}
-
-void
-listing_source_line (unsigned int n)
-{
-}
-
-void
-listing_source_file (const char *n)
-{
-}
-
#endif
diff --git a/gas/listing.h b/gas/listing.h
index 791d584..2abc70c 100644
--- a/gas/listing.h
+++ b/gas/listing.h
@@ -47,6 +47,7 @@ void listing_error (const char *message);
void listing_file (const char *name);
void listing_list (int on);
void listing_newline (char *ps);
+struct list_info_struct *listing_override_tail (struct list_info_struct *);
void listing_prev_line (void);
void listing_print (char *, char **);
void listing_psize (int);
@@ -57,10 +58,24 @@ void listing_title (int depth);
void listing_warning (const char *message);
void listing_width (unsigned int x);
-extern int listing_lhs_width;
-extern int listing_lhs_width_second;
-extern int listing_lhs_cont_lines;
-extern int listing_rhs_width;
+#ifdef NO_LISTING
+#define listing_list s_ignore
+#define listing_eject s_ignore
+#define listing_psize s_ignore
+#define listing_nopage s_ignore
+#define listing_title s_ignore
+#define listing_file(name) ((void)(name))
+#define listing_newline(ps) ((void)(ps))
+#define listing_source_file(file) ((void)(file))
+#define listing_source_line(line) ((void)(line))
+#endif
+
+extern unsigned int listing_lhs_width;
+extern unsigned int listing_lhs_width_second;
+extern unsigned int listing_lhs_cont_lines;
+extern unsigned int listing_rhs_width;
+
+extern struct list_info_struct *listing_tail;
#endif /* __listing_h__ */
diff --git a/gas/read.c b/gas/read.c
index 2939c68..db9c762 100644
--- a/gas/read.c
+++ b/gas/read.c
@@ -79,7 +79,7 @@ die horribly;
#ifndef CR_EOL
#define LEX_CR LEX_WHITE
#else
-#define LEX_CR 0
+#define LEX_CR LEX_EOL
#endif
#ifndef LEX_AT
@@ -118,7 +118,7 @@ die horribly;
/* Used by is_... macros. our ctype[]. */
char lex_type[256] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, LEX_CR, 0, 0, /* @ABCDEFGHIJKLMNO */
+ 0x20, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0x20, 0, 0, LEX_CR, 0, 0, /* @ABCDEFGHIJKLMNO */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* PQRSTUVWXYZ[\]^_ */
8, 0, 0, LEX_HASH, LEX_DOLLAR, LEX_PCT, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, /* _!"#$%&'()*+,-./ */
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, LEX_QM, /* 0123456789:;<=>? */
@@ -136,32 +136,6 @@ char lex_type[256] = {
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
};
-/* In: a character.
- Out: 1 if this character ends a line.
- 2 if this character is a line separator. */
-char is_end_of_line[256] = {
-#ifdef CR_EOL
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, /* @abcdefghijklmno */
-#else
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, /* @abcdefghijklmno */
-#endif
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* _!"#$%&'()*+,-./ */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0123456789:;<=>? */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* */
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 /* */
-};
-
#ifndef TC_CASE_SENSITIVE
char original_case_string[128];
#endif
@@ -260,7 +234,6 @@ static unsigned int bundle_lock_depth;
#endif
static void do_s_func (int end_p, const char *default_prefix);
-static void s_align (int, int);
static void s_altmacro (int);
static void s_bad_end (int);
static void s_reloc (int);
@@ -290,8 +263,7 @@ read_begin (void)
#endif
/* Use machine dependent syntax. */
for (p = tc_line_separator_chars; *p; p++)
- is_end_of_line[(unsigned char) *p] = 2;
- /* Use more. FIXME-SOMEDAY. */
+ lex_type[(unsigned char) *p] = LEX_EOS;
if (flag_mri)
lex_type['?'] = LEX_BEGIN_NAME | LEX_NAME;
@@ -695,13 +667,16 @@ start_bundle (void)
{
fragS *frag = frag_now;
- frag_align_code (0, 0);
+ frag_align_code (bundle_align_p2, 0);
while (frag->fr_type != rs_align_code)
frag = frag->fr_next;
gas_assert (frag != frag_now);
+ /* Set initial alignment to zero. */
+ frag->fr_offset = 0;
+
return frag;
}
@@ -748,9 +723,9 @@ finish_bundle (fragS *frag, unsigned int size)
if (size > 1)
{
- /* If there is more than a single byte, then we need to set up the
- alignment frag. Otherwise we leave it at its initial state from
- calling frag_align_code (0, 0), so that it does nothing. */
+ /* If there is more than a single byte, then we need to set up
+ the alignment frag. Otherwise we leave it at its initial
+ state with zero alignment so that it does nothing. */
frag->fr_offset = bundle_align_p2;
frag->fr_subtype = size - 1;
}
@@ -944,7 +919,8 @@ read_a_source_file (const char *name)
/* We now have input_line_pointer->1st char of next line.
If input_line_pointer [-1] == '\n' then we just
scanned another line: so bump line counters. */
- was_new_line = is_end_of_line[(unsigned char) input_line_pointer[-1]];
+ was_new_line = lex_type[(unsigned char) input_line_pointer[-1]]
+ & (LEX_EOL | LEX_EOS);
if (was_new_line)
{
symbol_set_value_now (&dot_symbol);
@@ -993,7 +969,7 @@ read_a_source_file (const char *name)
#endif
next_char = *input_line_pointer;
- if (was_new_line == 1
+ if ((was_new_line & LEX_EOL)
&& (strchr (line_comment_chars, '#')
? next_char == '#'
: next_char && strchr (line_comment_chars, next_char)))
@@ -1087,7 +1063,7 @@ read_a_source_file (const char *name)
}
if (strncasecmp (rest, "MACRO", 5) == 0
&& (is_whitespace (rest[5])
- || is_end_of_line[(unsigned char) rest[5]]))
+ || is_end_of_stmt (rest[5])))
mri_line_macro = 1;
}
@@ -1343,7 +1319,7 @@ read_a_source_file (const char *name)
}
/* Empty statement? */
- if (is_end_of_line[(unsigned char) next_char])
+ if (is_end_of_stmt (next_char))
continue;
if ((LOCAL_LABELS_DOLLAR || LOCAL_LABELS_FB) && ISDIGIT (next_char))
@@ -1461,14 +1437,15 @@ read_a_source_file (const char *name)
#endif
}
-/* Convert O_constant expression EXP into the equivalent O_big representation.
- Take the sign of the number from SIGN rather than X_add_number. */
+/* Convert O_constant expression EXP into the equivalent O_big
+ representation. */
-static void
-convert_to_bignum (expressionS *exp, int sign)
+static bool
+convert_to_bignum (expressionS *exp)
{
valueT value;
unsigned int i;
+ bool sign = !exp->X_unsigned && exp->X_extrabit;
value = exp->X_add_number;
for (i = 0; i < sizeof (exp->X_add_number) / CHARS_PER_LITTLENUM; i++)
@@ -1482,6 +1459,9 @@ convert_to_bignum (expressionS *exp, int sign)
generic_bignum[i++] = sign ? LITTLENUM_MASK : 0;
exp->X_op = O_big;
exp->X_add_number = i;
+ exp->X_unsigned = !sign;
+
+ return sign;
}
/* For most MRI pseudo-ops, the line actually ends at the first
@@ -1502,7 +1482,7 @@ mri_comment_field (char *stopcp)
know (flag_m68k_mri);
for (s = input_line_pointer;
- ((!is_end_of_line[(unsigned char) *s] && !is_whitespace (*s))
+ ((!is_end_of_stmt (*s) && !is_whitespace (*s))
|| inquote);
s++)
{
@@ -1511,7 +1491,7 @@ mri_comment_field (char *stopcp)
}
#else
for (s = input_line_pointer;
- !is_end_of_line[(unsigned char) *s];
+ !is_end_of_stmt (*s);
s++)
;
#endif
@@ -1530,7 +1510,7 @@ mri_comment_end (char *stop, int stopc)
input_line_pointer = stop;
*stop = stopc;
- while (!is_end_of_line[(unsigned char) *input_line_pointer])
+ while (!is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
}
@@ -1540,13 +1520,14 @@ s_abort (int ignore ATTRIBUTE_UNUSED)
as_fatal (_(".abort detected. Abandoning ship."));
}
+#ifndef TC_ALIGN_LIMIT
+#define TC_ALIGN_LIMIT (stdoutput->arch_info->bits_per_address - 1)
+#endif
+
/* Handle the .align pseudo-op. A positive ARG is a default alignment
(in bytes). A negative ARG is the negative of the length of the
fill pattern. BYTES_P is non-zero if the alignment value should be
interpreted as the byte boundary, rather than the power of 2. */
-#ifndef TC_ALIGN_LIMIT
-#define TC_ALIGN_LIMIT (stdoutput->arch_info->bits_per_address - 1)
-#endif
static void
s_align (signed int arg, int bytes_p)
@@ -1562,7 +1543,7 @@ s_align (signed int arg, int bytes_p)
if (flag_mri)
stop = mri_comment_field (&stopc);
- if (is_end_of_line[(unsigned char) *input_line_pointer])
+ if (is_end_of_stmt (*input_line_pointer))
{
if (arg < 0)
align = 0;
@@ -1599,7 +1580,8 @@ s_align (signed int arg, int bytes_p)
if (align > align_limit)
{
align = align_limit;
- as_warn (_("alignment too large: %u assumed"), align_limit);
+ as_warn (_("alignment too large: %u assumed"),
+ bytes_p ? 1u << align_limit : align_limit);
}
if (*input_line_pointer != ',')
@@ -1624,7 +1606,13 @@ s_align (signed int arg, int bytes_p)
else
{
++input_line_pointer;
- max = get_absolute_expression ();
+ offsetT val = get_absolute_expression ();
+ max = val;
+ if (val < 0 || max != (valueT) val)
+ {
+ as_warn (_("ignoring out of range alignment maximum"));
+ max = 0;
+ }
}
}
@@ -2038,7 +2026,7 @@ s_file (int ignore ATTRIBUTE_UNUSED)
backquote. */
if (flag_m68k_mri
&& *input_line_pointer == '\''
- && is_end_of_line[(unsigned char) input_line_pointer[1]])
+ && is_end_of_stmt (input_line_pointer[1]))
++input_line_pointer;
demand_empty_rest_of_line ();
@@ -2161,7 +2149,7 @@ s_linefile (int ignore ATTRIBUTE_UNUSED)
break;
}
- if (!is_end_of_line[(unsigned char)*input_line_pointer])
+ if (!is_end_of_stmt (*input_line_pointer))
file = NULL;
}
@@ -2196,7 +2184,7 @@ s_end (int ignore ATTRIBUTE_UNUSED)
/* The MRI assembler permits the start symbol to follow .end,
but we don't support that. */
SKIP_WHITESPACE ();
- if (!is_end_of_line[(unsigned char) *input_line_pointer]
+ if (!is_end_of_stmt (*input_line_pointer)
&& *input_line_pointer != '*'
&& *input_line_pointer != '!')
as_warn (_("start address not supported"));
@@ -2277,8 +2265,8 @@ void
s_fill (int ignore ATTRIBUTE_UNUSED)
{
expressionS rep_exp;
- long size = 1;
- long fill = 0;
+ offsetT size = 1;
+ valueT fill = 0;
char *p;
#ifdef md_flush_pending_output
@@ -2344,7 +2332,7 @@ s_fill (int ignore ATTRIBUTE_UNUSED)
if (size && !need_pass_2)
{
if (now_seg == absolute_section)
- abs_section_offset += rep_exp.X_add_number * size;
+ abs_section_offset += (valueT) rep_exp.X_add_number * size;
if (rep_exp.X_op == O_constant)
{
@@ -2387,7 +2375,7 @@ s_fill (int ignore ATTRIBUTE_UNUSED)
bytes from a 4-byte expression and they forgot to sign
extend. */
#define BSD_FILL_SIZE_CROCK_4 (4)
- md_number_to_chars (p, (valueT) fill,
+ md_number_to_chars (p, fill,
(size > BSD_FILL_SIZE_CROCK_4
? BSD_FILL_SIZE_CROCK_4
: (int) size));
@@ -2425,7 +2413,7 @@ s_globl (int ignore ATTRIBUTE_UNUSED)
{
input_line_pointer++;
SKIP_WHITESPACE ();
- if (is_end_of_line[(unsigned char) *input_line_pointer])
+ if (is_end_of_stmt (*input_line_pointer))
c = '\n';
}
@@ -2485,7 +2473,7 @@ s_linkonce (int ignore ATTRIBUTE_UNUSED)
type = LINKONCE_DISCARD;
- if (!is_end_of_line[(unsigned char) *input_line_pointer])
+ if (!is_end_of_stmt (*input_line_pointer))
{
char *s;
char c;
@@ -3296,7 +3284,6 @@ assign_symbol (char *name, int mode)
for this symbol. */
if (listing & LISTING_SYMBOLS)
{
- extern struct list_info_struct *listing_tail;
fragS *dummy_frag = notes_calloc (1, sizeof (*dummy_frag));
dummy_frag->line = listing_tail;
dummy_frag->fr_symbol = symbolP;
@@ -3323,6 +3310,7 @@ assign_symbol (char *name, int mode)
retain the value of the symbol at the point of use. */
else if (S_IS_VOLATILE (symbolP))
symbolP = symbol_clone (symbolP, 1);
+ S_CLEAR_WEAKREFR (symbolP);
}
if (mode == 0)
@@ -3637,6 +3625,13 @@ s_nop (int ignore ATTRIBUTE_UNUSED)
&& frag_off + frag_now_fix () < start_off + exp.X_add_number);
}
+/* Use this to specify the amount of memory allocated for representing
+ the nops. Needs to be large enough to hold any fixed size prologue
+ plus the replicating portion. */
+#ifndef MAX_MEM_FOR_RS_SPACE_NOP
+# define MAX_MEM_FOR_RS_SPACE_NOP 1
+#endif
+
void
s_nops (int ignore ATTRIBUTE_UNUSED)
{
@@ -3685,8 +3680,7 @@ s_nops (int ignore ATTRIBUTE_UNUSED)
/* Store the no-op instruction control byte in the first byte of frag. */
char *p;
symbolS *sym = make_expr_symbol (&exp);
- p = frag_var (rs_space_nop, 1, 1, (relax_substateT) 0,
- sym, (offsetT) 0, (char *) 0);
+ p = frag_var (rs_space_nop, MAX_MEM_FOR_RS_SPACE_NOP, 1, 0, sym, 0, NULL);
*p = val.X_add_number;
}
@@ -4016,7 +4010,7 @@ demand_empty_rest_of_line (void)
SKIP_WHITESPACE ();
if (input_line_pointer > buffer_limit)
return;
- if (is_end_of_line[(unsigned char) *input_line_pointer])
+ if (is_end_of_stmt (*input_line_pointer))
input_line_pointer++;
else
{
@@ -4137,6 +4131,8 @@ pseudo_set (symbolS *symbolP)
case O_symbol:
seg = S_GET_SEGMENT (exp.X_add_symbol);
+ if (seg == expr_section)
+ goto expr;
/* For x=undef+const, create an expression symbol.
For x=x+const, just update x except when x is an undefined symbol
For x=defined+const, evaluate x. */
@@ -4168,6 +4164,7 @@ pseudo_set (symbolS *symbolP)
break;
default:
+ expr:
/* The value is some complex expression. */
S_SET_SEGMENT (symbolP, expr_section);
symbol_set_value_expression (symbolP, &exp);
@@ -4203,6 +4200,21 @@ static void
parse_mri_cons (expressionS *exp, unsigned int nbytes);
#endif
+/* This function is used by .cfi_* directive handling, and hence must not
+ invoke parse_repeat_cons(). */
+
+TC_PARSE_CONS_RETURN_TYPE
+do_parse_cons_expression (expressionS *exp,
+ int nbytes ATTRIBUTE_UNUSED)
+{
+#ifdef TC_PARSE_CONS_EXPRESSION
+ return TC_PARSE_CONS_EXPRESSION (exp, nbytes);
+#else
+ expression (exp);
+ return TC_PARSE_CONS_RETURN_NONE;
+#endif
+}
+
#ifndef TC_PARSE_CONS_EXPRESSION
#ifdef REPEAT_CONS_EXPRESSIONS
#define TC_PARSE_CONS_EXPRESSION(EXP, NBYTES) \
@@ -4218,14 +4230,6 @@ parse_repeat_cons (expressionS *exp, unsigned int nbytes);
#endif
#endif
-void
-do_parse_cons_expression (expressionS *exp,
- int nbytes ATTRIBUTE_UNUSED)
-{
- (void) TC_PARSE_CONS_EXPRESSION (exp, nbytes);
-}
-
-
/* Worker to do .byte etc statements.
Clobbers input_line_pointer and checks end-of-line. */
@@ -4651,8 +4655,7 @@ emit_expr_with_reloc (expressionS *exp,
pass to md_number_to_chars, handle it as a bignum. */
if (op == O_constant && nbytes > sizeof (valueT))
{
- extra_digit = exp->X_unsigned ? 0 : -1;
- convert_to_bignum (exp, !exp->X_unsigned);
+ extra_digit = -convert_to_bignum (exp);
op = O_big;
}
@@ -5371,12 +5374,14 @@ emit_leb128_expr (expressionS *exp, int sign)
}
else if (op == O_constant
&& sign
- && (exp->X_add_number < 0) == !exp->X_extrabit)
+ && (exp->X_unsigned
+ ? exp->X_add_number < 0
+ : (exp->X_add_number < 0) != exp->X_extrabit))
{
/* We're outputting a signed leb128 and the sign of X_add_number
doesn't reflect the sign of the original value. Convert EXP
to a correctly-extended bignum instead. */
- convert_to_bignum (exp, exp->X_extrabit);
+ convert_to_bignum (exp);
op = O_big;
}
@@ -5784,7 +5789,7 @@ s_base64 (int dummy ATTRIBUTE_UNUSED)
{
c = * input_line_pointer ++;
- if (c >= 256 || is_end_of_line [c])
+ if (c >= 256 || is_end_of_stmt (c))
{
as_bad (_("end of line encountered inside .base64 string"));
ignore_rest_of_line ();
@@ -6311,7 +6316,7 @@ int
is_it_end_of_statement (void)
{
SKIP_WHITESPACE ();
- return (is_end_of_line[(unsigned char) *input_line_pointer]);
+ return is_end_of_stmt (*input_line_pointer);
}
void
@@ -6499,7 +6504,7 @@ s_include (int arg ATTRIBUTE_UNUSED)
{
SKIP_WHITESPACE ();
i = 0;
- while (!is_end_of_line[(unsigned char) *input_line_pointer]
+ while (!is_end_of_stmt (*input_line_pointer)
&& !is_whitespace (*input_line_pointer))
{
obstack_1grow (&notes, *input_line_pointer);
@@ -6509,7 +6514,7 @@ s_include (int arg ATTRIBUTE_UNUSED)
obstack_1grow (&notes, '\0');
filename = (char *) obstack_finish (&notes);
- while (!is_end_of_line[(unsigned char) *input_line_pointer])
+ while (!is_end_of_stmt (*input_line_pointer))
++input_line_pointer;
}
@@ -6795,7 +6800,7 @@ _find_end_of_line (char *s, int mri_string, int insn ATTRIBUTE_UNUSED,
char inquote = '\0';
int inescape = 0;
- while (!is_end_of_line[(unsigned char) *s]
+ while (!is_end_of_stmt (*s)
|| (inquote && !ISCNTRL (*s))
|| (inquote == '\'' && flag_mri)
#ifdef TC_EOL_IN_INSN
@@ -6804,7 +6809,7 @@ _find_end_of_line (char *s, int mri_string, int insn ATTRIBUTE_UNUSED,
/* PR 6926: When we are parsing the body of a macro the sequence
\@ is special - it refers to the invocation count. If the @
character happens to be registered as a line-separator character
- by the target, then the is_end_of_line[] test above will have
+ by the target, then the is_end_of_stmt() test above will have
returned true, but we need to ignore the line separating
semantics in this particular case. */
|| (in_macro && inescape && *s == '@')
diff --git a/gas/read.h b/gas/read.h
index e2fd0ce..b723f4a 100644
--- a/gas/read.h
+++ b/gas/read.h
@@ -41,6 +41,8 @@ extern bool input_from_string;
#define LEX_BEGIN_NAME (2) /* may begin a name */
#define LEX_END_NAME (4) /* ends a name */
#define LEX_WHITE (8) /* whitespace */
+#define LEX_EOS (0x10) /* end of statement */
+#define LEX_EOL (0x20) /* end of line */
#define is_name_beginner(c) \
( lex_type[(unsigned char) (c)] & LEX_BEGIN_NAME )
@@ -51,13 +53,16 @@ extern bool input_from_string;
#define is_whitespace(c) \
( lex_type[(unsigned char) (c)] & LEX_WHITE )
+/* Don't allow safe-ctype.h's counterparts to be used. */
+#undef ISSPACE
+#undef ISBLANK
+
/* The distinction of "line" and "statement" sadly is blurred by unhelpful
- naming of e.g. the underlying array. Most users really mean "end of
- statement". Going forward only these wrappers are supposed to be used. */
+ naming in a few places. Most users really mean "end of statement". */
#define is_end_of_stmt(c) \
- (is_end_of_line[(unsigned char) (c)])
+ ( lex_type[(unsigned char) (c)] & (LEX_EOS | LEX_EOL) )
#define is_end_of_line(c) \
- (is_end_of_line[(unsigned char) (c)] == 1)
+ ( lex_type[(unsigned char) (c)] & LEX_EOL )
#ifndef is_a_char
#define CHAR_MASK (0xff)
@@ -66,7 +71,6 @@ extern bool input_from_string;
#endif /* is_a_char() */
extern char lex_type[];
-extern char is_end_of_line[];
extern int is_it_end_of_statement (void);
extern char *find_end_of_line (char *, int);
@@ -155,7 +159,7 @@ extern void stabs_begin (void);
extern void stabs_end (void);
extern void do_repeat (size_t, const char *, const char *, const char *);
extern void end_repeat (int);
-extern void do_parse_cons_expression (expressionS *, int);
+extern TC_PARSE_CONS_RETURN_TYPE do_parse_cons_expression (expressionS *, int);
extern void generate_lineno_debug (void);
extern void do_align (unsigned int align, char *fill, unsigned int length,
unsigned int max);
diff --git a/gas/scfidw2gen.c b/gas/scfidw2gen.c
index 9b3ad4b..4dfc8a2 100644
--- a/gas/scfidw2gen.c
+++ b/gas/scfidw2gen.c
@@ -133,7 +133,7 @@ scfi_dot_cfi_startproc (const symbolS *start_sym)
return;
}
- cfi_new_fde ((symbolS *)start_sym);
+ cfi_new_fde ((symbolS *)start_sym, false);
cfi_set_sections ();
diff --git a/gas/subsegs.c b/gas/subsegs.c
index e098ec4..bc80c85 100644
--- a/gas/subsegs.c
+++ b/gas/subsegs.c
@@ -50,8 +50,21 @@ subsegs_end (struct obstack **obs)
for (; *obs; obs++)
_obstack_free (*obs, NULL);
_obstack_free (&frchains, NULL);
- bfd_set_section_userdata (bfd_abs_section_ptr, NULL);
+ bfd_set_section_userdata (bfd_com_section_ptr, NULL);
bfd_set_section_userdata (bfd_und_section_ptr, NULL);
+ bfd_set_section_userdata (bfd_abs_section_ptr, NULL);
+ bfd_set_section_userdata (bfd_ind_section_ptr, NULL);
+ /* Reverse bfd_std_section_init, so the sections look as they did
+ initially. This, and clearing out userdata above, is so we don't
+ leave dangling pointers into freed memory for oss-fuzz to mess
+ with. */
+ asymbol *global_syms = bfd_com_section_ptr->symbol;
+ bfd_und_section_ptr->used_by_bfd = NULL;
+ bfd_und_section_ptr->symbol = global_syms + (bfd_und_section_ptr
+ - bfd_com_section_ptr);
+ bfd_abs_section_ptr->used_by_bfd = NULL;
+ bfd_abs_section_ptr->symbol = global_syms + (bfd_abs_section_ptr
+ - bfd_com_section_ptr);
}
static void
diff --git a/gas/symbols.c b/gas/symbols.c
index 14e6018..45b7d9b 100644
--- a/gas/symbols.c
+++ b/gas/symbols.c
@@ -812,17 +812,14 @@ symbol_clone (symbolS *orgsymP, int replace)
if (replace)
{
- if (symbol_rootP == orgsymP)
+ if (orgsymP->x->previous != NULL)
+ orgsymP->x->previous->x->next = newsymP;
+ else
symbol_rootP = newsymP;
- else if (orgsymP->x->previous)
- {
- orgsymP->x->previous->x->next = newsymP;
- orgsymP->x->previous = NULL;
- }
- if (symbol_lastP == orgsymP)
- symbol_lastP = newsymP;
- else if (orgsymP->x->next)
+ if (orgsymP->x->next != NULL)
orgsymP->x->next->x->previous = newsymP;
+ else
+ symbol_lastP = newsymP;
/* Symbols that won't be output can't be external. */
S_CLEAR_EXTERNAL (orgsymP);
@@ -1033,17 +1030,12 @@ symbol_append (symbolS *addme, symbolS *target,
*rootPP = addme;
*lastPP = addme;
return;
- } /* if the list is empty */
+ }
if (target->x->next != NULL)
- {
- target->x->next->x->previous = addme;
- }
+ target->x->next->x->previous = addme;
else
- {
- know (*lastPP == target);
- *lastPP = addme;
- } /* if we have a next */
+ *lastPP = addme;
addme->x->next = target->x->next;
target->x->next = addme;
@@ -1071,25 +1063,15 @@ symbol_remove (symbolS *symbolP, symbolS **rootPP, symbolS **lastPP)
if (symbolP->flags.local_symbol)
abort ();
- if (symbolP == *rootPP)
- {
- *rootPP = symbolP->x->next;
- } /* if it was the root */
-
- if (symbolP == *lastPP)
- {
- *lastPP = symbolP->x->previous;
- } /* if it was the tail */
+ if (symbolP->x->previous != NULL)
+ symbolP->x->previous->x->next = symbolP->x->next;
+ else
+ *rootPP = symbolP->x->next;
if (symbolP->x->next != NULL)
- {
- symbolP->x->next->x->previous = symbolP->x->previous;
- } /* if not last */
-
- if (symbolP->x->previous != NULL)
- {
- symbolP->x->previous->x->next = symbolP->x->next;
- } /* if not first */
+ symbolP->x->next->x->previous = symbolP->x->previous;
+ else
+ *lastPP = symbolP->x->previous;
debug_verify_symchain (*rootPP, *lastPP);
}
@@ -1109,14 +1091,9 @@ symbol_insert (symbolS *addme, symbolS *target,
abort ();
if (target->x->previous != NULL)
- {
- target->x->previous->x->next = addme;
- }
+ target->x->previous->x->next = addme;
else
- {
- know (*rootPP == target);
- *rootPP = addme;
- } /* if not first */
+ *rootPP = addme;
addme->x->previous = target->x->previous;
target->x->previous = addme;
diff --git a/gas/symbols.h b/gas/symbols.h
index 465a1ab..7524e2f 100644
--- a/gas/symbols.h
+++ b/gas/symbols.h
@@ -18,6 +18,9 @@
Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
+#ifndef GAS_SYMBOLS_H
+#define GAS_SYMBOLS_H
+
extern struct obstack notes; /* eg FixS live here. */
extern struct obstack cond_obstack; /* this is where we track .ifdef/.endif
@@ -42,6 +45,12 @@ extern char *notes_strdup (const char *);
extern char *notes_concat (const char *, ...);
extern void notes_free (void *);
+static inline char *
+notes_memdup0 (const char *in, size_t len)
+{
+ return notes_memdup (in, len, len + 1);
+}
+
char * symbol_relc_make_expr (expressionS *);
char * symbol_relc_make_sym (symbolS *);
char * symbol_relc_make_value (offsetT);
@@ -228,3 +237,5 @@ void symbol_set_obj (symbolS *, OBJ_SYMFIELD_TYPE *);
TC_SYMFIELD_TYPE *symbol_get_tc (symbolS *);
void symbol_set_tc (symbolS *, TC_SYMFIELD_TYPE *);
#endif
+
+#endif /* GAS_SYMBOLS_H */
diff --git a/gas/testsuite/gas/aarch64/addsub-carry.d b/gas/testsuite/gas/aarch64/addsub-carry.d
new file mode 100644
index 0000000..9b32d51
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/addsub-carry.d
@@ -0,0 +1,53 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 1a000000 adc w0, w0, w0
+ *[0-9a-f]+: 1a00001f adc wzr, w0, w0
+ *[0-9a-f]+: 1a0003e0 adc w0, wzr, w0
+ *[0-9a-f]+: 1a1f0000 adc w0, w0, wzr
+ *[0-9a-f]+: 9a000000 adc x0, x0, x0
+ *[0-9a-f]+: 9a00001f adc xzr, x0, x0
+ *[0-9a-f]+: 9a0003e0 adc x0, xzr, x0
+ *[0-9a-f]+: 9a1f0000 adc x0, x0, xzr
+ *[0-9a-f]+: 3a000000 adcs w0, w0, w0
+ *[0-9a-f]+: 3a00001f adcs wzr, w0, w0
+ *[0-9a-f]+: 3a0003e0 adcs w0, wzr, w0
+ *[0-9a-f]+: 3a1f0000 adcs w0, w0, wzr
+ *[0-9a-f]+: ba000000 adcs x0, x0, x0
+ *[0-9a-f]+: ba00001f adcs xzr, x0, x0
+ *[0-9a-f]+: ba0003e0 adcs x0, xzr, x0
+ *[0-9a-f]+: ba1f0000 adcs x0, x0, xzr
+ *[0-9a-f]+: 5a000000 sbc w0, w0, w0
+ *[0-9a-f]+: 5a00001f sbc wzr, w0, w0
+ *[0-9a-f]+: 5a0003e0 ngc w0, w0
+ *[0-9a-f]+: 5a1f0000 sbc w0, w0, wzr
+ *[0-9a-f]+: da000000 sbc x0, x0, x0
+ *[0-9a-f]+: da00001f sbc xzr, x0, x0
+ *[0-9a-f]+: da0003e0 ngc x0, x0
+ *[0-9a-f]+: da1f0000 sbc x0, x0, xzr
+ *[0-9a-f]+: 7a000000 sbcs w0, w0, w0
+ *[0-9a-f]+: 7a00001f sbcs wzr, w0, w0
+ *[0-9a-f]+: 7a0003e0 ngcs w0, w0
+ *[0-9a-f]+: 7a1f0000 sbcs w0, w0, wzr
+ *[0-9a-f]+: fa000000 sbcs x0, x0, x0
+ *[0-9a-f]+: fa00001f sbcs xzr, x0, x0
+ *[0-9a-f]+: fa0003e0 ngcs x0, x0
+ *[0-9a-f]+: fa1f0000 sbcs x0, x0, xzr
+ *[0-9a-f]+: 5a0003e0 ngc w0, w0
+ *[0-9a-f]+: 5a0003ff ngc wzr, w0
+ *[0-9a-f]+: 5a1f03e0 ngc w0, wzr
+ *[0-9a-f]+: da0003e0 ngc x0, x0
+ *[0-9a-f]+: da0003ff ngc xzr, x0
+ *[0-9a-f]+: da1f03e0 ngc x0, xzr
+ *[0-9a-f]+: 7a0003e0 ngcs w0, w0
+ *[0-9a-f]+: 7a0003ff ngcs wzr, w0
+ *[0-9a-f]+: 7a1f03e0 ngcs w0, wzr
+ *[0-9a-f]+: fa0003e0 ngcs x0, x0
+ *[0-9a-f]+: fa0003ff ngcs xzr, x0
+ *[0-9a-f]+: fa1f03e0 ngcs x0, xzr
diff --git a/gas/testsuite/gas/aarch64/addsub-carry.s b/gas/testsuite/gas/aarch64/addsub-carry.s
new file mode 100644
index 0000000..89f2ec1
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/addsub-carry.s
@@ -0,0 +1,49 @@
+ adc w0, w0, w0
+ adc wzr, w0, w0
+ adc w0, wzr, w0
+ adc w0, w0, wzr
+ adc x0, x0, x0
+ adc xzr, x0, x0
+ adc x0, xzr, x0
+ adc x0, x0, xzr
+
+ adcs w0, w0, w0
+ adcs wzr, w0, w0
+ adcs w0, wzr, w0
+ adcs w0, w0, wzr
+ adcs x0, x0, x0
+ adcs xzr, x0, x0
+ adcs x0, xzr, x0
+ adcs x0, x0, xzr
+
+ sbc w0, w0, w0
+ sbc wzr, w0, w0
+ sbc w0, wzr, w0
+ sbc w0, w0, wzr
+ sbc x0, x0, x0
+ sbc xzr, x0, x0
+ sbc x0, xzr, x0
+ sbc x0, x0, xzr
+
+ sbcs w0, w0, w0
+ sbcs wzr, w0, w0
+ sbcs w0, wzr, w0
+ sbcs w0, w0, wzr
+ sbcs x0, x0, x0
+ sbcs xzr, x0, x0
+ sbcs x0, xzr, x0
+ sbcs x0, x0, xzr
+
+ ngc w0, w0
+ ngc wzr, w0
+ ngc w0, wzr
+ ngc x0, x0
+ ngc xzr, x0
+ ngc x0, xzr
+
+ ngcs w0, w0
+ ngcs wzr, w0
+ ngcs w0, wzr
+ ngcs x0, x0
+ ngcs xzr, x0
+ ngcs x0, xzr
diff --git a/gas/testsuite/gas/aarch64/advsimd-copy.d b/gas/testsuite/gas/aarch64/advsimd-copy.d
new file mode 100644
index 0000000..59ade08
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-copy.d
@@ -0,0 +1,178 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 0e010400 dup v0\.8b, v0\.b\[0\]
+ *[0-9a-f]+: 0e01041f dup v31\.8b, v0\.b\[0\]
+ *[0-9a-f]+: 0e0107e0 dup v0\.8b, v31\.b\[0\]
+ *[0-9a-f]+: 0e1f0400 dup v0\.8b, v0\.b\[15\]
+ *[0-9a-f]+: 0e020400 dup v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0e02041f dup v31\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0e0207e0 dup v0\.4h, v31\.h\[0\]
+ *[0-9a-f]+: 0e1e0400 dup v0\.4h, v0\.h\[7\]
+ *[0-9a-f]+: 0e040400 dup v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0e04041f dup v31\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0e0407e0 dup v0\.2s, v31\.s\[0\]
+ *[0-9a-f]+: 0e1c0400 dup v0\.2s, v0\.s\[3\]
+ *[0-9a-f]+: 4e010400 dup v0\.16b, v0\.b\[0\]
+ *[0-9a-f]+: 4e01041f dup v31\.16b, v0\.b\[0\]
+ *[0-9a-f]+: 4e0107e0 dup v0\.16b, v31\.b\[0\]
+ *[0-9a-f]+: 4e1f0400 dup v0\.16b, v0\.b\[15\]
+ *[0-9a-f]+: 4e020400 dup v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4e02041f dup v31\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4e0207e0 dup v0\.8h, v31\.h\[0\]
+ *[0-9a-f]+: 4e1e0400 dup v0\.8h, v0\.h\[7\]
+ *[0-9a-f]+: 4e040400 dup v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4e04041f dup v31\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4e0407e0 dup v0\.4s, v31\.s\[0\]
+ *[0-9a-f]+: 4e1c0400 dup v0\.4s, v0\.s\[3\]
+ *[0-9a-f]+: 4e080400 dup v0\.2d, v0\.d\[0\]
+ *[0-9a-f]+: 4e08041f dup v31\.2d, v0\.d\[0\]
+ *[0-9a-f]+: 4e0807e0 dup v0\.2d, v31\.d\[0\]
+ *[0-9a-f]+: 4e180400 dup v0.2d, v0.d\[1\]
+ *[0-9a-f]+: 0e010c00 dup v0\.8b, w0
+ *[0-9a-f]+: 0e010c1f dup v31\.8b, w0
+ *[0-9a-f]+: 0e010fe0 dup v0\.8b, wzr
+ *[0-9a-f]+: 0e020c00 dup v0\.4h, w0
+ *[0-9a-f]+: 0e020c1f dup v31\.4h, w0
+ *[0-9a-f]+: 0e020fe0 dup v0\.4h, wzr
+ *[0-9a-f]+: 0e040c00 dup v0\.2s, w0
+ *[0-9a-f]+: 0e040c1f dup v31\.2s, w0
+ *[0-9a-f]+: 0e040fe0 dup v0\.2s, wzr
+ *[0-9a-f]+: 4e010c00 dup v0\.16b, w0
+ *[0-9a-f]+: 4e010c1f dup v31\.16b, w0
+ *[0-9a-f]+: 4e010fe0 dup v0\.16b, wzr
+ *[0-9a-f]+: 4e020c00 dup v0\.8h, w0
+ *[0-9a-f]+: 4e020c1f dup v31\.8h, w0
+ *[0-9a-f]+: 4e020fe0 dup v0\.8h, wzr
+ *[0-9a-f]+: 4e040c00 dup v0\.4s, w0
+ *[0-9a-f]+: 4e040c1f dup v31\.4s, w0
+ *[0-9a-f]+: 4e040fe0 dup v0\.4s, wzr
+ *[0-9a-f]+: 4e080c00 dup v0\.2d, x0
+ *[0-9a-f]+: 4e080c1f dup v31\.2d, x0
+ *[0-9a-f]+: 4e080fe0 dup v0\.2d, xzr
+ *[0-9a-f]+: 0e150c00 dup v0\.8b, w0
+ *[0-9a-f]+: 4e180c00 dup v0\.2d, x0
+ *[0-9a-f]+: 0e012c00 smov w0, v0\.b\[0\]
+ *[0-9a-f]+: 0e012c1f smov wzr, v0\.b\[0\]
+ *[0-9a-f]+: 0e012fe0 smov w0, v31\.b\[0\]
+ *[0-9a-f]+: 0e1f2c00 smov w0, v0\.b\[15\]
+ *[0-9a-f]+: 0e022c00 smov w0, v0\.h\[0\]
+ *[0-9a-f]+: 0e022c1f smov wzr, v0\.h\[0\]
+ *[0-9a-f]+: 0e022fe0 smov w0, v31\.h\[0\]
+ *[0-9a-f]+: 0e1e2c00 smov w0, v0\.h\[7\]
+ *[0-9a-f]+: 4e012c00 smov x0, v0\.b\[0\]
+ *[0-9a-f]+: 4e012c1f smov xzr, v0\.b\[0\]
+ *[0-9a-f]+: 4e012fe0 smov x0, v31\.b\[0\]
+ *[0-9a-f]+: 4e1f2c00 smov x0, v0\.b\[15\]
+ *[0-9a-f]+: 4e022c00 smov x0, v0\.h\[0\]
+ *[0-9a-f]+: 4e022c1f smov xzr, v0\.h\[0\]
+ *[0-9a-f]+: 4e022fe0 smov x0, v31\.h\[0\]
+ *[0-9a-f]+: 4e1e2c00 smov x0, v0\.h\[7\]
+ *[0-9a-f]+: 4e042c00 smov x0, v0\.s\[0\]
+ *[0-9a-f]+: 4e042c1f smov xzr, v0\.s\[0\]
+ *[0-9a-f]+: 4e042fe0 smov x0, v31\.s\[0\]
+ *[0-9a-f]+: 4e1c2c00 smov x0, v0\.s\[3\]
+ *[0-9a-f]+: 0e013c00 umov w0, v0\.b\[0\]
+ *[0-9a-f]+: 0e013c1f umov wzr, v0\.b\[0\]
+ *[0-9a-f]+: 0e013fe0 umov w0, v31\.b\[0\]
+ *[0-9a-f]+: 0e1f3c00 umov w0, v0\.b\[15\]
+ *[0-9a-f]+: 0e023c00 umov w0, v0\.h\[0\]
+ *[0-9a-f]+: 0e023c1f umov wzr, v0\.h\[0\]
+ *[0-9a-f]+: 0e023fe0 umov w0, v31\.h\[0\]
+ *[0-9a-f]+: 0e1e3c00 umov w0, v0\.h\[7\]
+ *[0-9a-f]+: 0e043c00 mov w0, v0\.s\[0\]
+ *[0-9a-f]+: 0e043c1f mov wzr, v0\.s\[0\]
+ *[0-9a-f]+: 0e043fe0 mov w0, v31\.s\[0\]
+ *[0-9a-f]+: 0e1c3c00 mov w0, v0\.s\[3\]
+ *[0-9a-f]+: 4e083c00 mov x0, v0\.d\[0\]
+ *[0-9a-f]+: 4e083c1f mov xzr, v0\.d\[0\]
+ *[0-9a-f]+: 4e083fe0 mov x0, v31\.d\[0\]
+ *[0-9a-f]+: 4e183c00 mov x0, v0\.d\[1\]
+ *[0-9a-f]+: 0e043c00 mov w0, v0\.s\[0\]
+ *[0-9a-f]+: 0e043c1f mov wzr, v0\.s\[0\]
+ *[0-9a-f]+: 0e043fe0 mov w0, v31\.s\[0\]
+ *[0-9a-f]+: 0e1c3c00 mov w0, v0\.s\[3\]
+ *[0-9a-f]+: 4e083c00 mov x0, v0\.d\[0\]
+ *[0-9a-f]+: 4e083c1f mov xzr, v0\.d\[0\]
+ *[0-9a-f]+: 4e083fe0 mov x0, v31\.d\[0\]
+ *[0-9a-f]+: 4e183c00 mov x0, v0\.d\[1\]
+ *[0-9a-f]+: 4e011c00 mov v0\.b\[0\], w0
+ *[0-9a-f]+: 4e011c1f mov v31\.b\[0\], w0
+ *[0-9a-f]+: 4e011fe0 mov v0\.b\[0\], wzr
+ *[0-9a-f]+: 4e1f1c00 mov v0\.b\[15\], w0
+ *[0-9a-f]+: 4e021c00 mov v0\.h\[0\], w0
+ *[0-9a-f]+: 4e021c1f mov v31\.h\[0\], w0
+ *[0-9a-f]+: 4e021fe0 mov v0\.h\[0\], wzr
+ *[0-9a-f]+: 4e1e1c00 mov v0\.h\[7\], w0
+ *[0-9a-f]+: 4e041c00 mov v0\.s\[0\], w0
+ *[0-9a-f]+: 4e041c1f mov v31\.s\[0\], w0
+ *[0-9a-f]+: 4e041fe0 mov v0\.s\[0\], wzr
+ *[0-9a-f]+: 4e1c1c00 mov v0\.s\[3\], w0
+ *[0-9a-f]+: 4e081c00 mov v0\.d\[0\], x0
+ *[0-9a-f]+: 4e081c1f mov v31\.d\[0\], x0
+ *[0-9a-f]+: 4e081fe0 mov v0\.d\[0\], xzr
+ *[0-9a-f]+: 4e181c00 mov v0\.d\[1\], x0
+ *[0-9a-f]+: 4e011c00 mov v0\.b\[0\], w0
+ *[0-9a-f]+: 4e011c1f mov v31\.b\[0\], w0
+ *[0-9a-f]+: 4e011fe0 mov v0\.b\[0\], wzr
+ *[0-9a-f]+: 4e1f1c00 mov v0\.b\[15\], w0
+ *[0-9a-f]+: 4e021c00 mov v0\.h\[0\], w0
+ *[0-9a-f]+: 4e021c1f mov v31\.h\[0\], w0
+ *[0-9a-f]+: 4e021fe0 mov v0\.h\[0\], wzr
+ *[0-9a-f]+: 4e1e1c00 mov v0\.h\[7\], w0
+ *[0-9a-f]+: 4e041c00 mov v0\.s\[0\], w0
+ *[0-9a-f]+: 4e041c1f mov v31\.s\[0\], w0
+ *[0-9a-f]+: 4e041fe0 mov v0\.s\[0\], wzr
+ *[0-9a-f]+: 4e1c1c00 mov v0\.s\[3\], w0
+ *[0-9a-f]+: 4e081c00 mov v0\.d\[0\], x0
+ *[0-9a-f]+: 4e081c1f mov v31\.d\[0\], x0
+ *[0-9a-f]+: 4e081fe0 mov v0\.d\[0\], xzr
+ *[0-9a-f]+: 4e181c00 mov v0\.d\[1\], x0
+ *[0-9a-f]+: 6e010400 mov v0\.b\[0\], v0\.b\[0\]
+ *[0-9a-f]+: 6e01041f mov v31\.b\[0\], v0\.b\[0\]
+ *[0-9a-f]+: 6e0107e0 mov v0\.b\[0\], v31\.b\[0\]
+ *[0-9a-f]+: 6e1f0400 mov v0\.b\[15\], v0\.b\[0\]
+ *[0-9a-f]+: 6e017c00 mov v0\.b\[0\], v0\.b\[15\]
+ *[0-9a-f]+: 6e020400 mov v0\.h\[0\], v0\.h\[0\]
+ *[0-9a-f]+: 6e02041f mov v31\.h\[0\], v0\.h\[0\]
+ *[0-9a-f]+: 6e0207e0 mov v0\.h\[0\], v31\.h\[0\]
+ *[0-9a-f]+: 6e1e0400 mov v0\.h\[7\], v0\.h\[0\]
+ *[0-9a-f]+: 6e027400 mov v0\.h\[0\], v0\.h\[7\]
+ *[0-9a-f]+: 6e040400 mov v0\.s\[0\], v0\.s\[0\]
+ *[0-9a-f]+: 6e04041f mov v31\.s\[0\], v0\.s\[0\]
+ *[0-9a-f]+: 6e0407e0 mov v0\.s\[0\], v31\.s\[0\]
+ *[0-9a-f]+: 6e1c0400 mov v0\.s\[3\], v0\.s\[0\]
+ *[0-9a-f]+: 6e046400 mov v0\.s\[0\], v0\.s\[3\]
+ *[0-9a-f]+: 6e080400 mov v0\.d\[0\], v0\.d\[0\]
+ *[0-9a-f]+: 6e08041f mov v31\.d\[0\], v0\.d\[0\]
+ *[0-9a-f]+: 6e0807e0 mov v0\.d\[0\], v31\.d\[0\]
+ *[0-9a-f]+: 6e180400 mov v0\.d\[1\], v0\.d\[0\]
+ *[0-9a-f]+: 6e084400 mov v0\.d\[0\], v0\.d\[1\]
+ *[0-9a-f]+: 6e022c00 mov v0\.h\[0\], v0\.h\[2\]
+ *[0-9a-f]+: 6e083c00 mov v0\.d\[0\], v0\.d\[0\]
+ *[0-9a-f]+: 6e010400 mov v0\.b\[0\], v0\.b\[0\]
+ *[0-9a-f]+: 6e01041f mov v31\.b\[0\], v0\.b\[0\]
+ *[0-9a-f]+: 6e0107e0 mov v0\.b\[0\], v31\.b\[0\]
+ *[0-9a-f]+: 6e1f0400 mov v0\.b\[15\], v0\.b\[0\]
+ *[0-9a-f]+: 6e017c00 mov v0\.b\[0\], v0\.b\[15\]
+ *[0-9a-f]+: 6e020400 mov v0\.h\[0\], v0\.h\[0\]
+ *[0-9a-f]+: 6e02041f mov v31\.h\[0\], v0\.h\[0\]
+ *[0-9a-f]+: 6e0207e0 mov v0\.h\[0\], v31\.h\[0\]
+ *[0-9a-f]+: 6e1e0400 mov v0\.h\[7\], v0\.h\[0\]
+ *[0-9a-f]+: 6e027400 mov v0\.h\[0\], v0\.h\[7\]
+ *[0-9a-f]+: 6e040400 mov v0\.s\[0\], v0\.s\[0\]
+ *[0-9a-f]+: 6e04041f mov v31\.s\[0\], v0\.s\[0\]
+ *[0-9a-f]+: 6e0407e0 mov v0\.s\[0\], v31\.s\[0\]
+ *[0-9a-f]+: 6e1c0400 mov v0\.s\[3\], v0\.s\[0\]
+ *[0-9a-f]+: 6e046400 mov v0\.s\[0\], v0\.s\[3\]
+ *[0-9a-f]+: 6e080400 mov v0\.d\[0\], v0\.d\[0\]
+ *[0-9a-f]+: 6e08041f mov v31\.d\[0\], v0\.d\[0\]
+ *[0-9a-f]+: 6e0807e0 mov v0\.d\[0\], v31\.d\[0\]
+ *[0-9a-f]+: 6e180400 mov v0\.d\[1\], v0\.d\[0\]
+ *[0-9a-f]+: 6e084400 mov v0\.d\[0\], v0\.d\[1\]
diff --git a/gas/testsuite/gas/aarch64/advsimd-copy.s b/gas/testsuite/gas/aarch64/advsimd-copy.s
new file mode 100644
index 0000000..d061894
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-copy.s
@@ -0,0 +1,181 @@
+ dup v0.8b, v0.b[0]
+ dup v31.8b, v0.b[0]
+ dup v0.8b, v31.b[0]
+ dup v0.8b, v0.b[15]
+ dup v0.4h, v0.h[0]
+ dup v31.4h, v0.h[0]
+ dup v0.4h, v31.h[0]
+ dup v0.4h, v0.h[7]
+ dup v0.2s, v0.s[0]
+ dup v31.2s, v0.s[0]
+ dup v0.2s, v31.s[0]
+ dup v0.2s, v0.s[3]
+ dup v0.16b, v0.b[0]
+ dup v31.16b, v0.b[0]
+ dup v0.16b, v31.b[0]
+ dup v0.16b, v0.b[15]
+ dup v0.8h, v0.h[0]
+ dup v31.8h, v0.h[0]
+ dup v0.8h, v31.h[0]
+ dup v0.8h, v0.h[7]
+ dup v0.4s, v0.s[0]
+ dup v31.4s, v0.s[0]
+ dup v0.4s, v31.s[0]
+ dup v0.4s, v0.s[3]
+ dup v0.2d, v0.d[0]
+ dup v31.2d, v0.d[0]
+ dup v0.2d, v31.d[0]
+ dup v0.2d, v0.d[1]
+
+ dup v0.8b, w0
+ dup v31.8b, w0
+ dup v0.8b, wzr
+ dup v0.4h, w0
+ dup v31.4h, w0
+ dup v0.4h, wzr
+ dup v0.2s, w0
+ dup v31.2s, w0
+ dup v0.2s, wzr
+ dup v0.16b, w0
+ dup v31.16b, w0
+ dup v0.16b, wzr
+ dup v0.8h, w0
+ dup v31.8h, w0
+ dup v0.8h, wzr
+ dup v0.4s, w0
+ dup v31.4s, w0
+ dup v0.4s, wzr
+ dup v0.2d, x0
+ dup v31.2d, x0
+ dup v0.2d, xzr
+// Unspecified bits in imm5 (20..16) are ignored but should be set to zero by
+// an assembler. This tests disassembly when the ignored bits are nonzero.
+ .inst 0x0e150c00
+ .inst 0x4e180c00
+
+ smov w0, v0.b[0]
+ smov wzr, v0.b[0]
+ smov w0, v31.b[0]
+ smov w0, v0.b[15]
+ smov w0, v0.h[0]
+ smov wzr, v0.h[0]
+ smov w0, v31.h[0]
+ smov w0, v0.h[7]
+ smov x0, v0.b[0]
+ smov xzr, v0.b[0]
+ smov x0, v31.b[0]
+ smov x0, v0.b[15]
+ smov x0, v0.h[0]
+ smov xzr, v0.h[0]
+ smov x0, v31.h[0]
+ smov x0, v0.h[7]
+ smov x0, v0.s[0]
+ smov xzr, v0.s[0]
+ smov x0, v31.s[0]
+ smov x0, v0.s[3]
+
+ umov w0, v0.b[0]
+ umov wzr, v0.b[0]
+ umov w0, v31.b[0]
+ umov w0, v0.b[15]
+ umov w0, v0.h[0]
+ umov wzr, v0.h[0]
+ umov w0, v31.h[0]
+ umov w0, v0.h[7]
+ umov w0, v0.s[0]
+ umov wzr, v0.s[0]
+ umov w0, v31.s[0]
+ umov w0, v0.s[3]
+ umov x0, v0.d[0]
+ umov xzr, v0.d[0]
+ umov x0, v31.d[0]
+ umov x0, v0.d[1]
+
+ mov w0, v0.s[0]
+ mov wzr, v0.s[0]
+ mov w0, v31.s[0]
+ mov w0, v0.s[3]
+ mov x0, v0.d[0]
+ mov xzr, v0.d[0]
+ mov x0, v31.d[0]
+ mov x0, v0.d[1]
+
+ ins v0.b[0], w0
+ ins v31.b[0], w0
+ ins v0.b[0], wzr
+ ins v0.b[15], w0
+ ins v0.h[0], w0
+ ins v31.h[0], w0
+ ins v0.h[0], wzr
+ ins v0.h[7], w0
+ ins v0.s[0], w0
+ ins v31.s[0], w0
+ ins v0.s[0], wzr
+ ins v0.s[3], w0
+ ins v0.d[0], x0
+ ins v31.d[0], x0
+ ins v0.d[0], xzr
+ ins v0.d[1], x0
+
+ mov v0.b[0], w0
+ mov v31.b[0], w0
+ mov v0.b[0], wzr
+ mov v0.b[15], w0
+ mov v0.h[0], w0
+ mov v31.h[0], w0
+ mov v0.h[0], wzr
+ mov v0.h[7], w0
+ mov v0.s[0], w0
+ mov v31.s[0], w0
+ mov v0.s[0], wzr
+ mov v0.s[3], w0
+ mov v0.d[0], x0
+ mov v31.d[0], x0
+ mov v0.d[0], xzr
+ mov v0.d[1], x0
+
+ ins v0.b[0], v0.b[0]
+ ins v31.b[0], v0.b[0]
+ ins v0.b[0], v31.b[0]
+ ins v0.b[15], v0.b[0]
+ ins v0.b[0], v0.b[15]
+ ins v0.h[0], v0.h[0]
+ ins v31.h[0], v0.h[0]
+ ins v0.h[0], v31.h[0]
+ ins v0.h[7], v0.h[0]
+ ins v0.h[0], v0.h[7]
+ ins v0.s[0], v0.s[0]
+ ins v31.s[0], v0.s[0]
+ ins v0.s[0], v31.s[0]
+ ins v0.s[3], v0.s[0]
+ ins v0.s[0], v0.s[3]
+ ins v0.d[0], v0.d[0]
+ ins v31.d[0], v0.d[0]
+ ins v0.d[0], v31.d[0]
+ ins v0.d[1], v0.d[0]
+ ins v0.d[0], v0.d[1]
+// Unspecified bits in imm4 (14..11) are ignored but should be set to zero by
+// an assembler. This tests disassembly when the ignored bits are nonzero.
+ .inst 0x6e022c00
+ .inst 0x6e083c00
+
+ mov v0.b[0], v0.b[0]
+ mov v31.b[0], v0.b[0]
+ mov v0.b[0], v31.b[0]
+ mov v0.b[15], v0.b[0]
+ mov v0.b[0], v0.b[15]
+ mov v0.h[0], v0.h[0]
+ mov v31.h[0], v0.h[0]
+ mov v0.h[0], v31.h[0]
+ mov v0.h[7], v0.h[0]
+ mov v0.h[0], v0.h[7]
+ mov v0.s[0], v0.s[0]
+ mov v31.s[0], v0.s[0]
+ mov v0.s[0], v31.s[0]
+ mov v0.s[3], v0.s[0]
+ mov v0.s[0], v0.s[3]
+ mov v0.d[0], v0.d[0]
+ mov v31.d[0], v0.d[0]
+ mov v0.d[0], v31.d[0]
+ mov v0.d[1], v0.d[0]
+ mov v0.d[0], v0.d[1]
diff --git a/gas/testsuite/gas/aarch64/advsimd-fp16.d b/gas/testsuite/gas/aarch64/advsimd-fp16.d
index 4913036..ffac0d3 100644
--- a/gas/testsuite/gas/aarch64/advsimd-fp16.d
+++ b/gas/testsuite/gas/aarch64/advsimd-fp16.d
@@ -6,572 +6,583 @@
Disassembly of section \.text:
0+ <.*>:
- [0-9a-f]+: 4e63c441 fmaxnm v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 0e23c441 fmaxnm v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 4e23c441 fmaxnm v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 0e400400 fmaxnm v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 0e430441 fmaxnm v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 4e400400 fmaxnm v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 4e430441 fmaxnm v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 6e63c441 fmaxnmp v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 2e23c441 fmaxnmp v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 6e23c441 fmaxnmp v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 2e400400 fmaxnmp v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 2e430441 fmaxnmp v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 6e400400 fmaxnmp v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 6e430441 fmaxnmp v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 4ee3c441 fminnm v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 0ea3c441 fminnm v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 4ea3c441 fminnm v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 0ec00400 fminnm v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 0ec30441 fminnm v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 4ec00400 fminnm v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 4ec30441 fminnm v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 6ee3c441 fminnmp v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 2ea3c441 fminnmp v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 6ea3c441 fminnmp v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 2ec00400 fminnmp v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 2ec30441 fminnmp v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 6ec00400 fminnmp v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 6ec30441 fminnmp v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 4e63cc41 fmla v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 0e23cc41 fmla v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 4e23cc41 fmla v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 0e400c00 fmla v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 0e430c41 fmla v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 4e400c00 fmla v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 4e430c41 fmla v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 4ee3cc41 fmls v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 0ea3cc41 fmls v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 4ea3cc41 fmls v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 0ec00c00 fmls v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 0ec30c41 fmls v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 4ec00c00 fmls v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 4ec30c41 fmls v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 4e63d441 fadd v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 0e23d441 fadd v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 4e23d441 fadd v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 0e401400 fadd v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 0e431441 fadd v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 4e401400 fadd v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 4e431441 fadd v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 6e63d441 faddp v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 2e23d441 faddp v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 6e23d441 faddp v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 2e401400 faddp v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 2e431441 faddp v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 6e401400 faddp v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 6e431441 faddp v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 4ee3d441 fsub v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 0ea3d441 fsub v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 4ea3d441 fsub v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 0ec01400 fsub v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 0ec31441 fsub v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 4ec01400 fsub v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 4ec31441 fsub v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 4e63dc41 fmulx v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 0e23dc41 fmulx v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 4e23dc41 fmulx v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 0e401c00 fmulx v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 0e431c41 fmulx v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 4e401c00 fmulx v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 4e431c41 fmulx v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 6e63dc41 fmul v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 2e23dc41 fmul v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 6e23dc41 fmul v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 2e401c00 fmul v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 2e431c41 fmul v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 6e401c00 fmul v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 6e431c41 fmul v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 4e63e441 fcmeq v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 0e23e441 fcmeq v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 4e23e441 fcmeq v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 0e402400 fcmeq v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 0e432441 fcmeq v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 4e402400 fcmeq v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 4e432441 fcmeq v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 6e63e441 fcmge v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 2e23e441 fcmge v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 6e23e441 fcmge v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 2e402400 fcmge v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 2e432441 fcmge v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 6e402400 fcmge v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 6e432441 fcmge v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 6ee3e441 fcmgt v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 2ea3e441 fcmgt v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 6ea3e441 fcmgt v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 2ec02400 fcmgt v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 2ec32441 fcmgt v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 6ec02400 fcmgt v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 6ec32441 fcmgt v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 6e63ec41 facge v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 2e23ec41 facge v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 6e23ec41 facge v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 2e402c00 facge v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 2e432c41 facge v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 6e402c00 facge v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 6e432c41 facge v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 6ee3ec41 facgt v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 2ea3ec41 facgt v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 6ea3ec41 facgt v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 2ec02c00 facgt v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 2ec32c41 facgt v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 6ec02c00 facgt v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 6ec32c41 facgt v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 4e63f441 fmax v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 0e23f441 fmax v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 4e23f441 fmax v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 0e403400 fmax v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 0e433441 fmax v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 4e403400 fmax v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 4e433441 fmax v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 6e63f441 fmaxp v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 2e23f441 fmaxp v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 6e23f441 fmaxp v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 2e403400 fmaxp v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 2e433441 fmaxp v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 6e403400 fmaxp v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 6e433441 fmaxp v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 4ee3f441 fmin v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 0ea3f441 fmin v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 4ea3f441 fmin v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 0ec03400 fmin v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 0ec33441 fmin v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 4ec03400 fmin v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 4ec33441 fmin v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 6ee3f441 fminp v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 2ea3f441 fminp v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 6ea3f441 fminp v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 2ec03400 fminp v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 2ec33441 fminp v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 6ec03400 fminp v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 6ec33441 fminp v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 4e63fc41 frecps v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 0e23fc41 frecps v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 4e23fc41 frecps v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 0e403c00 frecps v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 0e433c41 frecps v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 4e403c00 frecps v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 4e433c41 frecps v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 6e63fc41 fdiv v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 2e23fc41 fdiv v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 6e23fc41 fdiv v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 2e403c00 fdiv v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 2e433c41 fdiv v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 6e403c00 fdiv v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 6e433c41 fdiv v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 4ee3fc41 frsqrts v1.2d, v2.2d, v3.2d
- [0-9a-f]+: 0ea3fc41 frsqrts v1.2s, v2.2s, v3.2s
- [0-9a-f]+: 4ea3fc41 frsqrts v1.4s, v2.4s, v3.4s
- [0-9a-f]+: 0ec03c00 frsqrts v0.4h, v0.4h, v0.4h
- [0-9a-f]+: 0ec33c41 frsqrts v1.4h, v2.4h, v3.4h
- [0-9a-f]+: 4ec03c00 frsqrts v0.8h, v0.8h, v0.8h
- [0-9a-f]+: 4ec33c41 frsqrts v1.8h, v2.8h, v3.8h
- [0-9a-f]+: 7ee2d420 fabd d0, d1, d2
- [0-9a-f]+: 7ea2d420 fabd s0, s1, s2
- [0-9a-f]+: 7ec21420 fabd h0, h1, h2
- [0-9a-f]+: 7ec01400 fabd h0, h0, h0
- [0-9a-f]+: 5e62dc20 fmulx d0, d1, d2
- [0-9a-f]+: 5e22dc20 fmulx s0, s1, s2
- [0-9a-f]+: 5e421c20 fmulx h0, h1, h2
- [0-9a-f]+: 5e401c00 fmulx h0, h0, h0
- [0-9a-f]+: 5e62e420 fcmeq d0, d1, d2
- [0-9a-f]+: 5e22e420 fcmeq s0, s1, s2
- [0-9a-f]+: 5e422420 fcmeq h0, h1, h2
- [0-9a-f]+: 5e402400 fcmeq h0, h0, h0
- [0-9a-f]+: 7ee2e420 fcmgt d0, d1, d2
- [0-9a-f]+: 7ea2e420 fcmgt s0, s1, s2
- [0-9a-f]+: 7ec22420 fcmgt h0, h1, h2
- [0-9a-f]+: 7ec02400 fcmgt h0, h0, h0
- [0-9a-f]+: 7e62e420 fcmge d0, d1, d2
- [0-9a-f]+: 7e22e420 fcmge s0, s1, s2
- [0-9a-f]+: 7e422420 fcmge h0, h1, h2
- [0-9a-f]+: 7e402400 fcmge h0, h0, h0
- [0-9a-f]+: 7e62ec20 facge d0, d1, d2
- [0-9a-f]+: 7e22ec20 facge s0, s1, s2
- [0-9a-f]+: 7e422c20 facge h0, h1, h2
- [0-9a-f]+: 7e402c00 facge h0, h0, h0
- [0-9a-f]+: 7ee2ec20 facgt d0, d1, d2
- [0-9a-f]+: 7ea2ec20 facgt s0, s1, s2
- [0-9a-f]+: 7ec22c20 facgt h0, h1, h2
- [0-9a-f]+: 7ec02c00 facgt h0, h0, h0
- [0-9a-f]+: 5e62fc20 frecps d0, d1, d2
- [0-9a-f]+: 5e22fc20 frecps s0, s1, s2
- [0-9a-f]+: 5e423c20 frecps h0, h1, h2
- [0-9a-f]+: 5e403c00 frecps h0, h0, h0
- [0-9a-f]+: 5ee2fc20 frsqrts d0, d1, d2
- [0-9a-f]+: 5ea2fc20 frsqrts s0, s1, s2
- [0-9a-f]+: 5ec23c20 frsqrts h0, h1, h2
- [0-9a-f]+: 5ec03c00 frsqrts h0, h0, h0
- [0-9a-f]+: 4ee0c820 fcmgt v0.2d, v1.2d, #0.0
- [0-9a-f]+: 0ea0c820 fcmgt v0.2s, v1.2s, #0.0
- [0-9a-f]+: 4ea0c820 fcmgt v0.4s, v1.4s, #0.0
- [0-9a-f]+: 0ef8c820 fcmgt v0.4h, v1.4h, #0.0
- [0-9a-f]+: 4ef8c820 fcmgt v0.8h, v1.8h, #0.0
- [0-9a-f]+: 6ee0c820 fcmge v0.2d, v1.2d, #0.0
- [0-9a-f]+: 2ea0c820 fcmge v0.2s, v1.2s, #0.0
- [0-9a-f]+: 6ea0c820 fcmge v0.4s, v1.4s, #0.0
- [0-9a-f]+: 2ef8c820 fcmge v0.4h, v1.4h, #0.0
- [0-9a-f]+: 6ef8c820 fcmge v0.8h, v1.8h, #0.0
- [0-9a-f]+: 4ee0d820 fcmeq v0.2d, v1.2d, #0.0
- [0-9a-f]+: 0ea0d820 fcmeq v0.2s, v1.2s, #0.0
- [0-9a-f]+: 4ea0d820 fcmeq v0.4s, v1.4s, #0.0
- [0-9a-f]+: 0ef8d820 fcmeq v0.4h, v1.4h, #0.0
- [0-9a-f]+: 4ef8d820 fcmeq v0.8h, v1.8h, #0.0
- [0-9a-f]+: 6ee0d820 fcmle v0.2d, v1.2d, #0.0
- [0-9a-f]+: 2ea0d820 fcmle v0.2s, v1.2s, #0.0
- [0-9a-f]+: 6ea0d820 fcmle v0.4s, v1.4s, #0.0
- [0-9a-f]+: 2ef8d820 fcmle v0.4h, v1.4h, #0.0
- [0-9a-f]+: 6ef8d820 fcmle v0.8h, v1.8h, #0.0
- [0-9a-f]+: 4ee0e820 fcmlt v0.2d, v1.2d, #0.0
- [0-9a-f]+: 0ea0e820 fcmlt v0.2s, v1.2s, #0.0
- [0-9a-f]+: 4ea0e820 fcmlt v0.4s, v1.4s, #0.0
- [0-9a-f]+: 0ef8e820 fcmlt v0.4h, v1.4h, #0.0
- [0-9a-f]+: 4ef8e820 fcmlt v0.8h, v1.8h, #0.0
- [0-9a-f]+: 4ee0f820 fabs v0.2d, v1.2d
- [0-9a-f]+: 0ea0f820 fabs v0.2s, v1.2s
- [0-9a-f]+: 4ea0f820 fabs v0.4s, v1.4s
- [0-9a-f]+: 0ef8f820 fabs v0.4h, v1.4h
- [0-9a-f]+: 4ef8f820 fabs v0.8h, v1.8h
- [0-9a-f]+: 6ee0f820 fneg v0.2d, v1.2d
- [0-9a-f]+: 2ea0f820 fneg v0.2s, v1.2s
- [0-9a-f]+: 6ea0f820 fneg v0.4s, v1.4s
- [0-9a-f]+: 2ef8f820 fneg v0.4h, v1.4h
- [0-9a-f]+: 6ef8f820 fneg v0.8h, v1.8h
- [0-9a-f]+: 4e618820 frintn v0.2d, v1.2d
- [0-9a-f]+: 0e218820 frintn v0.2s, v1.2s
- [0-9a-f]+: 4e218820 frintn v0.4s, v1.4s
- [0-9a-f]+: 0e798820 frintn v0.4h, v1.4h
- [0-9a-f]+: 4e798820 frintn v0.8h, v1.8h
- [0-9a-f]+: 6e618820 frinta v0.2d, v1.2d
- [0-9a-f]+: 2e218820 frinta v0.2s, v1.2s
- [0-9a-f]+: 6e218820 frinta v0.4s, v1.4s
- [0-9a-f]+: 2e798820 frinta v0.4h, v1.4h
- [0-9a-f]+: 6e798820 frinta v0.8h, v1.8h
- [0-9a-f]+: 4ee18820 frintp v0.2d, v1.2d
- [0-9a-f]+: 0ea18820 frintp v0.2s, v1.2s
- [0-9a-f]+: 4ea18820 frintp v0.4s, v1.4s
- [0-9a-f]+: 0ef98820 frintp v0.4h, v1.4h
- [0-9a-f]+: 4ef98820 frintp v0.8h, v1.8h
- [0-9a-f]+: 4e619820 frintm v0.2d, v1.2d
- [0-9a-f]+: 0e219820 frintm v0.2s, v1.2s
- [0-9a-f]+: 4e219820 frintm v0.4s, v1.4s
- [0-9a-f]+: 0e799820 frintm v0.4h, v1.4h
- [0-9a-f]+: 4e799820 frintm v0.8h, v1.8h
- [0-9a-f]+: 6e619820 frintx v0.2d, v1.2d
- [0-9a-f]+: 2e219820 frintx v0.2s, v1.2s
- [0-9a-f]+: 6e219820 frintx v0.4s, v1.4s
- [0-9a-f]+: 2e799820 frintx v0.4h, v1.4h
- [0-9a-f]+: 6e799820 frintx v0.8h, v1.8h
- [0-9a-f]+: 4ee19820 frintz v0.2d, v1.2d
- [0-9a-f]+: 0ea19820 frintz v0.2s, v1.2s
- [0-9a-f]+: 4ea19820 frintz v0.4s, v1.4s
- [0-9a-f]+: 0ef99820 frintz v0.4h, v1.4h
- [0-9a-f]+: 4ef99820 frintz v0.8h, v1.8h
- [0-9a-f]+: 6ee19820 frinti v0.2d, v1.2d
- [0-9a-f]+: 2ea19820 frinti v0.2s, v1.2s
- [0-9a-f]+: 6ea19820 frinti v0.4s, v1.4s
- [0-9a-f]+: 2ef99820 frinti v0.4h, v1.4h
- [0-9a-f]+: 6ef99820 frinti v0.8h, v1.8h
- [0-9a-f]+: 4e61a820 fcvtns v0.2d, v1.2d
- [0-9a-f]+: 0e21a820 fcvtns v0.2s, v1.2s
- [0-9a-f]+: 4e21a820 fcvtns v0.4s, v1.4s
- [0-9a-f]+: 0e79a820 fcvtns v0.4h, v1.4h
- [0-9a-f]+: 4e79a820 fcvtns v0.8h, v1.8h
- [0-9a-f]+: 6e61a820 fcvtnu v0.2d, v1.2d
- [0-9a-f]+: 2e21a820 fcvtnu v0.2s, v1.2s
- [0-9a-f]+: 6e21a820 fcvtnu v0.4s, v1.4s
- [0-9a-f]+: 2e79a820 fcvtnu v0.4h, v1.4h
- [0-9a-f]+: 6e79a820 fcvtnu v0.8h, v1.8h
- [0-9a-f]+: 4ee1a820 fcvtps v0.2d, v1.2d
- [0-9a-f]+: 0ea1a820 fcvtps v0.2s, v1.2s
- [0-9a-f]+: 4ea1a820 fcvtps v0.4s, v1.4s
- [0-9a-f]+: 0ef9a820 fcvtps v0.4h, v1.4h
- [0-9a-f]+: 4ef9a820 fcvtps v0.8h, v1.8h
- [0-9a-f]+: 6ee1a820 fcvtpu v0.2d, v1.2d
- [0-9a-f]+: 2ea1a820 fcvtpu v0.2s, v1.2s
- [0-9a-f]+: 6ea1a820 fcvtpu v0.4s, v1.4s
- [0-9a-f]+: 2ef9a820 fcvtpu v0.4h, v1.4h
- [0-9a-f]+: 6ef9a820 fcvtpu v0.8h, v1.8h
- [0-9a-f]+: 4e61b820 fcvtms v0.2d, v1.2d
- [0-9a-f]+: 0e21b820 fcvtms v0.2s, v1.2s
- [0-9a-f]+: 4e21b820 fcvtms v0.4s, v1.4s
- [0-9a-f]+: 0e79b820 fcvtms v0.4h, v1.4h
- [0-9a-f]+: 4e79b820 fcvtms v0.8h, v1.8h
- [0-9a-f]+: 6e61b820 fcvtmu v0.2d, v1.2d
- [0-9a-f]+: 2e21b820 fcvtmu v0.2s, v1.2s
- [0-9a-f]+: 6e21b820 fcvtmu v0.4s, v1.4s
- [0-9a-f]+: 2e79b820 fcvtmu v0.4h, v1.4h
- [0-9a-f]+: 6e79b820 fcvtmu v0.8h, v1.8h
- [0-9a-f]+: 4ee1b820 fcvtzs v0.2d, v1.2d
- [0-9a-f]+: 0ea1b820 fcvtzs v0.2s, v1.2s
- [0-9a-f]+: 4ea1b820 fcvtzs v0.4s, v1.4s
- [0-9a-f]+: 0ef9b820 fcvtzs v0.4h, v1.4h
- [0-9a-f]+: 4ef9b820 fcvtzs v0.8h, v1.8h
- [0-9a-f]+: 6ee1b820 fcvtzu v0.2d, v1.2d
- [0-9a-f]+: 2ea1b820 fcvtzu v0.2s, v1.2s
- [0-9a-f]+: 6ea1b820 fcvtzu v0.4s, v1.4s
- [0-9a-f]+: 2ef9b820 fcvtzu v0.4h, v1.4h
- [0-9a-f]+: 6ef9b820 fcvtzu v0.8h, v1.8h
- [0-9a-f]+: 4e61c820 fcvtas v0.2d, v1.2d
- [0-9a-f]+: 0e21c820 fcvtas v0.2s, v1.2s
- [0-9a-f]+: 4e21c820 fcvtas v0.4s, v1.4s
- [0-9a-f]+: 0e79c820 fcvtas v0.4h, v1.4h
- [0-9a-f]+: 4e79c820 fcvtas v0.8h, v1.8h
- [0-9a-f]+: 6e61c820 fcvtau v0.2d, v1.2d
- [0-9a-f]+: 2e21c820 fcvtau v0.2s, v1.2s
- [0-9a-f]+: 6e21c820 fcvtau v0.4s, v1.4s
- [0-9a-f]+: 2e79c820 fcvtau v0.4h, v1.4h
- [0-9a-f]+: 6e79c820 fcvtau v0.8h, v1.8h
- [0-9a-f]+: 4e61d820 scvtf v0.2d, v1.2d
- [0-9a-f]+: 0e21d820 scvtf v0.2s, v1.2s
- [0-9a-f]+: 4e21d820 scvtf v0.4s, v1.4s
- [0-9a-f]+: 0e79d820 scvtf v0.4h, v1.4h
- [0-9a-f]+: 4e79d820 scvtf v0.8h, v1.8h
- [0-9a-f]+: 6e61d820 ucvtf v0.2d, v1.2d
- [0-9a-f]+: 2e21d820 ucvtf v0.2s, v1.2s
- [0-9a-f]+: 6e21d820 ucvtf v0.4s, v1.4s
- [0-9a-f]+: 2e79d820 ucvtf v0.4h, v1.4h
- [0-9a-f]+: 6e79d820 ucvtf v0.8h, v1.8h
- [0-9a-f]+: 4ee1d820 frecpe v0.2d, v1.2d
- [0-9a-f]+: 0ea1d820 frecpe v0.2s, v1.2s
- [0-9a-f]+: 4ea1d820 frecpe v0.4s, v1.4s
- [0-9a-f]+: 0ef9d820 frecpe v0.4h, v1.4h
- [0-9a-f]+: 4ef9d820 frecpe v0.8h, v1.8h
- [0-9a-f]+: 6ee1d820 frsqrte v0.2d, v1.2d
- [0-9a-f]+: 2ea1d820 frsqrte v0.2s, v1.2s
- [0-9a-f]+: 6ea1d820 frsqrte v0.4s, v1.4s
- [0-9a-f]+: 2ef9d820 frsqrte v0.4h, v1.4h
- [0-9a-f]+: 6ef9d820 frsqrte v0.8h, v1.8h
- [0-9a-f]+: 6ee1f820 fsqrt v0.2d, v1.2d
- [0-9a-f]+: 2ea1f820 fsqrt v0.2s, v1.2s
- [0-9a-f]+: 6ea1f820 fsqrt v0.4s, v1.4s
- [0-9a-f]+: 2ef9f820 fsqrt v0.4h, v1.4h
- [0-9a-f]+: 6ef9f820 fsqrt v0.8h, v1.8h
- [0-9a-f]+: 5ee0c820 fcmgt d0, d1, #0.0
- [0-9a-f]+: 5ea0c820 fcmgt s0, s1, #0.0
- [0-9a-f]+: 5ef8c820 fcmgt h0, h1, #0.0
- [0-9a-f]+: 5ef8c800 fcmgt h0, h0, #0.0
- [0-9a-f]+: 7ee0c820 fcmge d0, d1, #0.0
- [0-9a-f]+: 7ea0c820 fcmge s0, s1, #0.0
- [0-9a-f]+: 7ef8c820 fcmge h0, h1, #0.0
- [0-9a-f]+: 7ef8c800 fcmge h0, h0, #0.0
- [0-9a-f]+: 5ee0d820 fcmeq d0, d1, #0.0
- [0-9a-f]+: 5ea0d820 fcmeq s0, s1, #0.0
- [0-9a-f]+: 5ef8d820 fcmeq h0, h1, #0.0
- [0-9a-f]+: 5ef8d800 fcmeq h0, h0, #0.0
- [0-9a-f]+: 7ee0d820 fcmle d0, d1, #0.0
- [0-9a-f]+: 7ea0d820 fcmle s0, s1, #0.0
- [0-9a-f]+: 7ef8d820 fcmle h0, h1, #0.0
- [0-9a-f]+: 7ef8d800 fcmle h0, h0, #0.0
- [0-9a-f]+: 5ee0e820 fcmlt d0, d1, #0.0
- [0-9a-f]+: 5ea0e820 fcmlt s0, s1, #0.0
- [0-9a-f]+: 5ef8e820 fcmlt h0, h1, #0.0
- [0-9a-f]+: 5ef8e800 fcmlt h0, h0, #0.0
- [0-9a-f]+: 5e61a820 fcvtns d0, d1
- [0-9a-f]+: 5e21a820 fcvtns s0, s1
- [0-9a-f]+: 5e79a820 fcvtns h0, h1
- [0-9a-f]+: 5e79a800 fcvtns h0, h0
- [0-9a-f]+: 7e61a820 fcvtnu d0, d1
- [0-9a-f]+: 7e21a820 fcvtnu s0, s1
- [0-9a-f]+: 7e79a820 fcvtnu h0, h1
- [0-9a-f]+: 7e79a800 fcvtnu h0, h0
- [0-9a-f]+: 5ee1a820 fcvtps d0, d1
- [0-9a-f]+: 5ea1a820 fcvtps s0, s1
- [0-9a-f]+: 5ef9a820 fcvtps h0, h1
- [0-9a-f]+: 5ef9a800 fcvtps h0, h0
- [0-9a-f]+: 7ee1a820 fcvtpu d0, d1
- [0-9a-f]+: 7ea1a820 fcvtpu s0, s1
- [0-9a-f]+: 7ef9a820 fcvtpu h0, h1
- [0-9a-f]+: 7ef9a800 fcvtpu h0, h0
- [0-9a-f]+: 5e61b820 fcvtms d0, d1
- [0-9a-f]+: 5e21b820 fcvtms s0, s1
- [0-9a-f]+: 5e79b820 fcvtms h0, h1
- [0-9a-f]+: 5e79b800 fcvtms h0, h0
- [0-9a-f]+: 7e61b820 fcvtmu d0, d1
- [0-9a-f]+: 7e21b820 fcvtmu s0, s1
- [0-9a-f]+: 7e79b820 fcvtmu h0, h1
- [0-9a-f]+: 7e79b800 fcvtmu h0, h0
- [0-9a-f]+: 5ee1b820 fcvtzs d0, d1
- [0-9a-f]+: 5ea1b820 fcvtzs s0, s1
- [0-9a-f]+: 5ef9b820 fcvtzs h0, h1
- [0-9a-f]+: 5ef9b800 fcvtzs h0, h0
- [0-9a-f]+: 7ee1b820 fcvtzu d0, d1
- [0-9a-f]+: 7ea1b820 fcvtzu s0, s1
- [0-9a-f]+: 7ef9b820 fcvtzu h0, h1
- [0-9a-f]+: 7ef9b800 fcvtzu h0, h0
- [0-9a-f]+: 5e61c820 fcvtas d0, d1
- [0-9a-f]+: 5e21c820 fcvtas s0, s1
- [0-9a-f]+: 5e79c820 fcvtas h0, h1
- [0-9a-f]+: 5e79c800 fcvtas h0, h0
- [0-9a-f]+: 7e61c820 fcvtau d0, d1
- [0-9a-f]+: 7e21c820 fcvtau s0, s1
- [0-9a-f]+: 7e79c820 fcvtau h0, h1
- [0-9a-f]+: 7e79c800 fcvtau h0, h0
- [0-9a-f]+: 5e61d820 scvtf d0, d1
- [0-9a-f]+: 5e21d820 scvtf s0, s1
- [0-9a-f]+: 5e79d820 scvtf h0, h1
- [0-9a-f]+: 5e79d800 scvtf h0, h0
- [0-9a-f]+: 7e61d820 ucvtf d0, d1
- [0-9a-f]+: 7e21d820 ucvtf s0, s1
- [0-9a-f]+: 7e79d820 ucvtf h0, h1
- [0-9a-f]+: 7e79d800 ucvtf h0, h0
- [0-9a-f]+: 5ee1d820 frecpe d0, d1
- [0-9a-f]+: 5ea1d820 frecpe s0, s1
- [0-9a-f]+: 5ef9d820 frecpe h0, h1
- [0-9a-f]+: 5ef9d800 frecpe h0, h0
- [0-9a-f]+: 7ee1d820 frsqrte d0, d1
- [0-9a-f]+: 7ea1d820 frsqrte s0, s1
- [0-9a-f]+: 7ef9d820 frsqrte h0, h1
- [0-9a-f]+: 7ef9d800 frsqrte h0, h0
- [0-9a-f]+: 5ee1f820 frecpx d0, d1
- [0-9a-f]+: 5ea1f820 frecpx s0, s1
- [0-9a-f]+: 5ef9f820 frecpx h0, h1
- [0-9a-f]+: 5ef9f800 frecpx h0, h0
- [0-9a-f]+: 4fc31841 fmla v1.2d, v2.2d, v3.d\[1\]
- [0-9a-f]+: 0f831841 fmla v1.2s, v2.2s, v3.s\[2\]
- [0-9a-f]+: 4fa31041 fmla v1.4s, v2.4s, v3.s\[1\]
- [0-9a-f]+: 0f001000 fmla v0.4h, v0.4h, v0.h\[0\]
- [0-9a-f]+: 0f031041 fmla v1.4h, v2.4h, v3.h\[0\]
- [0-9a-f]+: 4f001000 fmla v0.8h, v0.8h, v0.h\[0\]
- [0-9a-f]+: 4f031041 fmla v1.8h, v2.8h, v3.h\[0\]
- [0-9a-f]+: 4fca10a1 fmla v1.2d, v5.2d, v10.d\[0\]
- [0-9a-f]+: 0fab1808 fmla v8.2s, v0.2s, v11.s\[3\]
- [0-9a-f]+: 0f3f1920 fmla v0.4h, v9.4h, v15.h\[7\]
- [0-9a-f]+: 4fc35841 fmls v1.2d, v2.2d, v3.d\[1\]
- [0-9a-f]+: 0f835841 fmls v1.2s, v2.2s, v3.s\[2\]
- [0-9a-f]+: 4fa35041 fmls v1.4s, v2.4s, v3.s\[1\]
- [0-9a-f]+: 0f005000 fmls v0.4h, v0.4h, v0.h\[0\]
- [0-9a-f]+: 0f035041 fmls v1.4h, v2.4h, v3.h\[0\]
- [0-9a-f]+: 4f005000 fmls v0.8h, v0.8h, v0.h\[0\]
- [0-9a-f]+: 4f035041 fmls v1.8h, v2.8h, v3.h\[0\]
- [0-9a-f]+: 4fca50a1 fmls v1.2d, v5.2d, v10.d\[0\]
- [0-9a-f]+: 0fab5808 fmls v8.2s, v0.2s, v11.s\[3\]
- [0-9a-f]+: 0f3f5920 fmls v0.4h, v9.4h, v15.h\[7\]
- [0-9a-f]+: 4fc39841 fmul v1.2d, v2.2d, v3.d\[1\]
- [0-9a-f]+: 0f839841 fmul v1.2s, v2.2s, v3.s\[2\]
- [0-9a-f]+: 4fa39041 fmul v1.4s, v2.4s, v3.s\[1\]
- [0-9a-f]+: 0f009000 fmul v0.4h, v0.4h, v0.h\[0\]
- [0-9a-f]+: 0f039041 fmul v1.4h, v2.4h, v3.h\[0\]
- [0-9a-f]+: 4f009000 fmul v0.8h, v0.8h, v0.h\[0\]
- [0-9a-f]+: 4f039041 fmul v1.8h, v2.8h, v3.h\[0\]
- [0-9a-f]+: 4fca90a1 fmul v1.2d, v5.2d, v10.d\[0\]
- [0-9a-f]+: 0fab9808 fmul v8.2s, v0.2s, v11.s\[3\]
- [0-9a-f]+: 0f3f9920 fmul v0.4h, v9.4h, v15.h\[7\]
- [0-9a-f]+: 6fc39841 fmulx v1.2d, v2.2d, v3.d\[1\]
- [0-9a-f]+: 2f839841 fmulx v1.2s, v2.2s, v3.s\[2\]
- [0-9a-f]+: 6fa39041 fmulx v1.4s, v2.4s, v3.s\[1\]
- [0-9a-f]+: 2f009000 fmulx v0.4h, v0.4h, v0.h\[0\]
- [0-9a-f]+: 2f039041 fmulx v1.4h, v2.4h, v3.h\[0\]
- [0-9a-f]+: 6f009000 fmulx v0.8h, v0.8h, v0.h\[0\]
- [0-9a-f]+: 6f039041 fmulx v1.8h, v2.8h, v3.h\[0\]
- [0-9a-f]+: 6fca90a1 fmulx v1.2d, v5.2d, v10.d\[0\]
- [0-9a-f]+: 2fab9808 fmulx v8.2s, v0.2s, v11.s\[3\]
- [0-9a-f]+: 2f3f9920 fmulx v0.4h, v9.4h, v15.h\[7\]
- [0-9a-f]+: 5fc31841 fmla d1, d2, v3.d\[1\]
- [0-9a-f]+: 5fa31041 fmla s1, s2, v3.s\[1\]
- [0-9a-f]+: 5f131041 fmla h1, h2, v3.h\[1\]
- [0-9a-f]+: 5f001000 fmla h0, h0, v0.h\[0\]
- [0-9a-f]+: 5fc35841 fmls d1, d2, v3.d\[1\]
- [0-9a-f]+: 5fa35041 fmls s1, s2, v3.s\[1\]
- [0-9a-f]+: 5f135041 fmls h1, h2, v3.h\[1\]
- [0-9a-f]+: 5f005000 fmls h0, h0, v0.h\[0\]
- [0-9a-f]+: 5fc39841 fmul d1, d2, v3.d\[1\]
- [0-9a-f]+: 5fa39041 fmul s1, s2, v3.s\[1\]
- [0-9a-f]+: 5f139041 fmul h1, h2, v3.h\[1\]
- [0-9a-f]+: 5f009000 fmul h0, h0, v0.h\[0\]
- [0-9a-f]+: 7fc39841 fmulx d1, d2, v3.d\[1\]
- [0-9a-f]+: 7fa39041 fmulx s1, s2, v3.s\[1\]
- [0-9a-f]+: 7f139041 fmulx h1, h2, v3.h\[1\]
- [0-9a-f]+: 7f009000 fmulx h0, h0, v0.h\[0\]
- [0-9a-f]+: 6e30c841 fmaxnmv s1, v2.4s
- [0-9a-f]+: 0e30c841 fmaxnmv h1, v2.4h
- [0-9a-f]+: 4e30c841 fmaxnmv h1, v2.8h
- [0-9a-f]+: 0e30c800 fmaxnmv h0, v0.4h
- [0-9a-f]+: 4e30c800 fmaxnmv h0, v0.8h
- [0-9a-f]+: 6e30f841 fmaxv s1, v2.4s
- [0-9a-f]+: 0e30f841 fmaxv h1, v2.4h
- [0-9a-f]+: 4e30f841 fmaxv h1, v2.8h
- [0-9a-f]+: 0e30f800 fmaxv h0, v0.4h
- [0-9a-f]+: 4e30f800 fmaxv h0, v0.8h
- [0-9a-f]+: 6eb0c841 fminnmv s1, v2.4s
- [0-9a-f]+: 0eb0c841 fminnmv h1, v2.4h
- [0-9a-f]+: 4eb0c841 fminnmv h1, v2.8h
- [0-9a-f]+: 0eb0c800 fminnmv h0, v0.4h
- [0-9a-f]+: 4eb0c800 fminnmv h0, v0.8h
- [0-9a-f]+: 6eb0f841 fminv s1, v2.4s
- [0-9a-f]+: 0eb0f841 fminv h1, v2.4h
- [0-9a-f]+: 4eb0f841 fminv h1, v2.8h
- [0-9a-f]+: 0eb0f800 fminv h0, v0.4h
- [0-9a-f]+: 4eb0f800 fminv h0, v0.8h
- [0-9a-f]+: 6f00f401 fmov v1.2d, #2.000000000000000000e\+00
- [0-9a-f]+: 0f00f401 fmov v1.2s, #2.000000000000000000e\+00
- [0-9a-f]+: 4f00f401 fmov v1.4s, #2.000000000000000000e\+00
- [0-9a-f]+: 0f00fc01 fmov v1.4h, #2.000000000000000000e\+00
- [0-9a-f]+: 4f00fc01 fmov v1.8h, #2.000000000000000000e\+00
- [0-9a-f]+: 0f03fe00 fmov v0.4h, #1.000000000000000000e\+00
- [0-9a-f]+: 4f03fe00 fmov v0.8h, #1.000000000000000000e\+00
- [0-9a-f]+: 7e70c841 fmaxnmp d1, v2.2d
- [0-9a-f]+: 7e30c841 fmaxnmp s1, v2.2s
- [0-9a-f]+: 5e30c841 fmaxnmp h1, v2.2h
- [0-9a-f]+: 5e30c800 fmaxnmp h0, v0.2h
- [0-9a-f]+: 7e70d841 faddp d1, v2.2d
- [0-9a-f]+: 7e30d841 faddp s1, v2.2s
- [0-9a-f]+: 5e30d841 faddp h1, v2.2h
- [0-9a-f]+: 5e30d800 faddp h0, v0.2h
- [0-9a-f]+: 7e70f841 fmaxp d1, v2.2d
- [0-9a-f]+: 7e30f841 fmaxp s1, v2.2s
- [0-9a-f]+: 5e30f841 fmaxp h1, v2.2h
- [0-9a-f]+: 5e30f800 fmaxp h0, v0.2h
- [0-9a-f]+: 7ef0c841 fminnmp d1, v2.2d
- [0-9a-f]+: 7eb0c841 fminnmp s1, v2.2s
- [0-9a-f]+: 5eb0c841 fminnmp h1, v2.2h
- [0-9a-f]+: 5eb0c800 fminnmp h0, v0.2h
- [0-9a-f]+: 7ef0f841 fminp d1, v2.2d
- [0-9a-f]+: 7eb0f841 fminp s1, v2.2s
- [0-9a-f]+: 5eb0f841 fminp h1, v2.2h
- [0-9a-f]+: 5eb0f800 fminp h0, v0.2h
- [0-9a-f]+: 4f7de441 scvtf v1.2d, v2.2d, #3
- [0-9a-f]+: 0f3de441 scvtf v1.2s, v2.2s, #3
- [0-9a-f]+: 4f3de441 scvtf v1.4s, v2.4s, #3
- [0-9a-f]+: 0f1de441 scvtf v1.4h, v2.4h, #3
- [0-9a-f]+: 4f1de441 scvtf v1.8h, v2.8h, #3
- [0-9a-f]+: 0f1fe400 scvtf v0.4h, v0.4h, #1
- [0-9a-f]+: 4f1fe400 scvtf v0.8h, v0.8h, #1
- [0-9a-f]+: 4f7dfc41 fcvtzs v1.2d, v2.2d, #3
- [0-9a-f]+: 0f3dfc41 fcvtzs v1.2s, v2.2s, #3
- [0-9a-f]+: 4f3dfc41 fcvtzs v1.4s, v2.4s, #3
- [0-9a-f]+: 0f1dfc41 fcvtzs v1.4h, v2.4h, #3
- [0-9a-f]+: 4f1dfc41 fcvtzs v1.8h, v2.8h, #3
- [0-9a-f]+: 0f1ffc00 fcvtzs v0.4h, v0.4h, #1
- [0-9a-f]+: 4f1ffc00 fcvtzs v0.8h, v0.8h, #1
- [0-9a-f]+: 6f7de441 ucvtf v1.2d, v2.2d, #3
- [0-9a-f]+: 2f3de441 ucvtf v1.2s, v2.2s, #3
- [0-9a-f]+: 6f3de441 ucvtf v1.4s, v2.4s, #3
- [0-9a-f]+: 2f1de441 ucvtf v1.4h, v2.4h, #3
- [0-9a-f]+: 6f1de441 ucvtf v1.8h, v2.8h, #3
- [0-9a-f]+: 2f1fe400 ucvtf v0.4h, v0.4h, #1
- [0-9a-f]+: 6f1fe400 ucvtf v0.8h, v0.8h, #1
- [0-9a-f]+: 6f7dfc41 fcvtzu v1.2d, v2.2d, #3
- [0-9a-f]+: 2f3dfc41 fcvtzu v1.2s, v2.2s, #3
- [0-9a-f]+: 6f3dfc41 fcvtzu v1.4s, v2.4s, #3
- [0-9a-f]+: 2f1dfc41 fcvtzu v1.4h, v2.4h, #3
- [0-9a-f]+: 6f1dfc41 fcvtzu v1.8h, v2.8h, #3
- [0-9a-f]+: 2f1ffc00 fcvtzu v0.4h, v0.4h, #1
- [0-9a-f]+: 6f1ffc00 fcvtzu v0.8h, v0.8h, #1
- [0-9a-f]+: 5f7de441 scvtf d1, d2, #3
- [0-9a-f]+: 5f3de441 scvtf s1, s2, #3
- [0-9a-f]+: 5f1de441 scvtf h1, h2, #3
- [0-9a-f]+: 5f1fe400 scvtf h0, h0, #1
- [0-9a-f]+: 5f7dfc41 fcvtzs d1, d2, #3
- [0-9a-f]+: 5f3dfc41 fcvtzs s1, s2, #3
- [0-9a-f]+: 5f1dfc41 fcvtzs h1, h2, #3
- [0-9a-f]+: 5f1ffc00 fcvtzs h0, h0, #1
- [0-9a-f]+: 7f7de441 ucvtf d1, d2, #3
- [0-9a-f]+: 7f3de441 ucvtf s1, s2, #3
- [0-9a-f]+: 7f1de441 ucvtf h1, h2, #3
- [0-9a-f]+: 7f1fe400 ucvtf h0, h0, #1
- [0-9a-f]+: 7f7dfc41 fcvtzu d1, d2, #3
- [0-9a-f]+: 7f3dfc41 fcvtzu s1, s2, #3
- [0-9a-f]+: 7f1dfc41 fcvtzu h1, h2, #3
- [0-9a-f]+: 7f1ffc00 fcvtzu h0, h0, #1
+ *[0-9a-f]+: 4e63c441 fmaxnm v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 0e23c441 fmaxnm v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 4e23c441 fmaxnm v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 0e400400 fmaxnm v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e430441 fmaxnm v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 4e400400 fmaxnm v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e430441 fmaxnm v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 6e63c441 fmaxnmp v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 2e23c441 fmaxnmp v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 6e23c441 fmaxnmp v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 2e400400 fmaxnmp v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e430441 fmaxnmp v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 6e400400 fmaxnmp v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e430441 fmaxnmp v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 4ee3c441 fminnm v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 0ea3c441 fminnm v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 4ea3c441 fminnm v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 0ec00400 fminnm v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0ec30441 fminnm v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 4ec00400 fminnm v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4ec30441 fminnm v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 6ee3c441 fminnmp v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 2ea3c441 fminnmp v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 6ea3c441 fminnmp v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 2ec00400 fminnmp v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2ec30441 fminnmp v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 6ec00400 fminnmp v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6ec30441 fminnmp v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 4e63cc41 fmla v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 0e23cc41 fmla v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 4e23cc41 fmla v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 0e400c00 fmla v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e430c41 fmla v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 4e400c00 fmla v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e430c41 fmla v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 4ee3cc41 fmls v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 0ea3cc41 fmls v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 4ea3cc41 fmls v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 0ec00c00 fmls v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0ec30c41 fmls v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 4ec00c00 fmls v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4ec30c41 fmls v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 4e63d441 fadd v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 0e23d441 fadd v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 4e23d441 fadd v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 0e401400 fadd v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e431441 fadd v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 4e401400 fadd v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e431441 fadd v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 6e63d441 faddp v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 2e23d441 faddp v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 6e23d441 faddp v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 2e401400 faddp v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e431441 faddp v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 6e401400 faddp v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e431441 faddp v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 4ee3d441 fsub v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 0ea3d441 fsub v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 4ea3d441 fsub v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 0ec01400 fsub v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0ec31441 fsub v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 4ec01400 fsub v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4ec31441 fsub v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 6ee3d441 fabd v1.2d, v2.2d, v3.2d
+ *[0-9a-f]+: 2ea3d441 fabd v1.2s, v2.2s, v3.2s
+ *[0-9a-f]+: 6ea3d441 fabd v1.4s, v2.4s, v3.4s
+ *[0-9a-f]+: 2ec01400 fabd v0.4h, v0.4h, v0.4h
+ *[0-9a-f]+: 2ec31441 fabd v1.4h, v2.4h, v3.4h
+ *[0-9a-f]+: 6ec01400 fabd v0.8h, v0.8h, v0.8h
+ *[0-9a-f]+: 6ec31441 fabd v1.8h, v2.8h, v3.8h
+ *[0-9a-f]+: 4e63dc41 fmulx v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 0e23dc41 fmulx v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 4e23dc41 fmulx v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 0e401c00 fmulx v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e431c41 fmulx v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 4e401c00 fmulx v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e431c41 fmulx v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 6e63dc41 fmul v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 2e23dc41 fmul v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 6e23dc41 fmul v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 2e401c00 fmul v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e431c41 fmul v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 6e401c00 fmul v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e431c41 fmul v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 4e63e441 fcmeq v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 0e23e441 fcmeq v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 4e23e441 fcmeq v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 0e402400 fcmeq v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e432441 fcmeq v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 4e402400 fcmeq v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e432441 fcmeq v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 6e63e441 fcmge v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 2e23e441 fcmge v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 6e23e441 fcmge v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 2e402400 fcmge v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e432441 fcmge v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 6e402400 fcmge v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e432441 fcmge v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 6ee3e441 fcmgt v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 2ea3e441 fcmgt v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 6ea3e441 fcmgt v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 2ec02400 fcmgt v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2ec32441 fcmgt v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 6ec02400 fcmgt v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6ec32441 fcmgt v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 6e63ec41 facge v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 2e23ec41 facge v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 6e23ec41 facge v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 2e402c00 facge v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e432c41 facge v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 6e402c00 facge v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e432c41 facge v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 6ee3ec41 facgt v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 2ea3ec41 facgt v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 6ea3ec41 facgt v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 2ec02c00 facgt v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2ec32c41 facgt v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 6ec02c00 facgt v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6ec32c41 facgt v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 4e63f441 fmax v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 0e23f441 fmax v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 4e23f441 fmax v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 0e403400 fmax v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e433441 fmax v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 4e403400 fmax v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e433441 fmax v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 6e63f441 fmaxp v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 2e23f441 fmaxp v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 6e23f441 fmaxp v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 2e403400 fmaxp v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e433441 fmaxp v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 6e403400 fmaxp v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e433441 fmaxp v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 4ee3f441 fmin v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 0ea3f441 fmin v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 4ea3f441 fmin v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 0ec03400 fmin v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0ec33441 fmin v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 4ec03400 fmin v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4ec33441 fmin v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 6ee3f441 fminp v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 2ea3f441 fminp v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 6ea3f441 fminp v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 2ec03400 fminp v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2ec33441 fminp v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 6ec03400 fminp v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6ec33441 fminp v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 4e63fc41 frecps v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 0e23fc41 frecps v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 4e23fc41 frecps v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 0e403c00 frecps v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e433c41 frecps v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 4e403c00 frecps v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e433c41 frecps v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 6e63fc41 fdiv v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 2e23fc41 fdiv v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 6e23fc41 fdiv v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 2e403c00 fdiv v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e433c41 fdiv v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 6e403c00 fdiv v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e433c41 fdiv v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 4ee3fc41 frsqrts v1\.2d, v2\.2d, v3\.2d
+ *[0-9a-f]+: 0ea3fc41 frsqrts v1\.2s, v2\.2s, v3\.2s
+ *[0-9a-f]+: 4ea3fc41 frsqrts v1\.4s, v2\.4s, v3\.4s
+ *[0-9a-f]+: 0ec03c00 frsqrts v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0ec33c41 frsqrts v1\.4h, v2\.4h, v3\.4h
+ *[0-9a-f]+: 4ec03c00 frsqrts v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4ec33c41 frsqrts v1\.8h, v2\.8h, v3\.8h
+ *[0-9a-f]+: 7ee2d420 fabd d0, d1, d2
+ *[0-9a-f]+: 7ea2d420 fabd s0, s1, s2
+ *[0-9a-f]+: 7ec21420 fabd h0, h1, h2
+ *[0-9a-f]+: 7ec01400 fabd h0, h0, h0
+ *[0-9a-f]+: 5e62dc20 fmulx d0, d1, d2
+ *[0-9a-f]+: 5e22dc20 fmulx s0, s1, s2
+ *[0-9a-f]+: 5e421c20 fmulx h0, h1, h2
+ *[0-9a-f]+: 5e401c00 fmulx h0, h0, h0
+ *[0-9a-f]+: 5e62e420 fcmeq d0, d1, d2
+ *[0-9a-f]+: 5e22e420 fcmeq s0, s1, s2
+ *[0-9a-f]+: 5e422420 fcmeq h0, h1, h2
+ *[0-9a-f]+: 5e402400 fcmeq h0, h0, h0
+ *[0-9a-f]+: 7ee2e420 fcmgt d0, d1, d2
+ *[0-9a-f]+: 7ea2e420 fcmgt s0, s1, s2
+ *[0-9a-f]+: 7ec22420 fcmgt h0, h1, h2
+ *[0-9a-f]+: 7ec02400 fcmgt h0, h0, h0
+ *[0-9a-f]+: 7e62e420 fcmge d0, d1, d2
+ *[0-9a-f]+: 7e22e420 fcmge s0, s1, s2
+ *[0-9a-f]+: 7e422420 fcmge h0, h1, h2
+ *[0-9a-f]+: 7e402400 fcmge h0, h0, h0
+ *[0-9a-f]+: 7e62ec20 facge d0, d1, d2
+ *[0-9a-f]+: 7e22ec20 facge s0, s1, s2
+ *[0-9a-f]+: 7e422c20 facge h0, h1, h2
+ *[0-9a-f]+: 7e402c00 facge h0, h0, h0
+ *[0-9a-f]+: 7ee2ec20 facgt d0, d1, d2
+ *[0-9a-f]+: 7ea2ec20 facgt s0, s1, s2
+ *[0-9a-f]+: 7ec22c20 facgt h0, h1, h2
+ *[0-9a-f]+: 7ec02c00 facgt h0, h0, h0
+ *[0-9a-f]+: 5e62fc20 frecps d0, d1, d2
+ *[0-9a-f]+: 5e22fc20 frecps s0, s1, s2
+ *[0-9a-f]+: 5e423c20 frecps h0, h1, h2
+ *[0-9a-f]+: 5e403c00 frecps h0, h0, h0
+ *[0-9a-f]+: 5ee2fc20 frsqrts d0, d1, d2
+ *[0-9a-f]+: 5ea2fc20 frsqrts s0, s1, s2
+ *[0-9a-f]+: 5ec23c20 frsqrts h0, h1, h2
+ *[0-9a-f]+: 5ec03c00 frsqrts h0, h0, h0
+ *[0-9a-f]+: 4ee0c820 fcmgt v0\.2d, v1\.2d, #0\.0
+ *[0-9a-f]+: 0ea0c820 fcmgt v0\.2s, v1\.2s, #0\.0
+ *[0-9a-f]+: 4ea0c820 fcmgt v0\.4s, v1\.4s, #0\.0
+ *[0-9a-f]+: 0ef8c820 fcmgt v0\.4h, v1\.4h, #0\.0
+ *[0-9a-f]+: 4ef8c820 fcmgt v0\.8h, v1\.8h, #0\.0
+ *[0-9a-f]+: 6ee0c820 fcmge v0\.2d, v1\.2d, #0\.0
+ *[0-9a-f]+: 2ea0c820 fcmge v0\.2s, v1\.2s, #0\.0
+ *[0-9a-f]+: 6ea0c820 fcmge v0\.4s, v1\.4s, #0\.0
+ *[0-9a-f]+: 2ef8c820 fcmge v0\.4h, v1\.4h, #0\.0
+ *[0-9a-f]+: 6ef8c820 fcmge v0\.8h, v1\.8h, #0\.0
+ *[0-9a-f]+: 4ee0d820 fcmeq v0\.2d, v1\.2d, #0\.0
+ *[0-9a-f]+: 0ea0d820 fcmeq v0\.2s, v1\.2s, #0\.0
+ *[0-9a-f]+: 4ea0d820 fcmeq v0\.4s, v1\.4s, #0\.0
+ *[0-9a-f]+: 0ef8d820 fcmeq v0\.4h, v1\.4h, #0\.0
+ *[0-9a-f]+: 4ef8d820 fcmeq v0\.8h, v1\.8h, #0\.0
+ *[0-9a-f]+: 6ee0d820 fcmle v0\.2d, v1\.2d, #0\.0
+ *[0-9a-f]+: 2ea0d820 fcmle v0\.2s, v1\.2s, #0\.0
+ *[0-9a-f]+: 6ea0d820 fcmle v0\.4s, v1\.4s, #0\.0
+ *[0-9a-f]+: 2ef8d820 fcmle v0\.4h, v1\.4h, #0\.0
+ *[0-9a-f]+: 6ef8d820 fcmle v0\.8h, v1\.8h, #0\.0
+ *[0-9a-f]+: 4ee0e820 fcmlt v0\.2d, v1\.2d, #0\.0
+ *[0-9a-f]+: 0ea0e820 fcmlt v0\.2s, v1\.2s, #0\.0
+ *[0-9a-f]+: 4ea0e820 fcmlt v0\.4s, v1\.4s, #0\.0
+ *[0-9a-f]+: 0ef8e820 fcmlt v0\.4h, v1\.4h, #0\.0
+ *[0-9a-f]+: 4ef8e820 fcmlt v0\.8h, v1\.8h, #0\.0
+ *[0-9a-f]+: 4ee0f820 fabs v0\.2d, v1\.2d
+ *[0-9a-f]+: 0ea0f820 fabs v0\.2s, v1\.2s
+ *[0-9a-f]+: 4ea0f820 fabs v0\.4s, v1\.4s
+ *[0-9a-f]+: 0ef8f820 fabs v0\.4h, v1\.4h
+ *[0-9a-f]+: 4ef8f820 fabs v0\.8h, v1\.8h
+ *[0-9a-f]+: 6ee0f820 fneg v0\.2d, v1\.2d
+ *[0-9a-f]+: 2ea0f820 fneg v0\.2s, v1\.2s
+ *[0-9a-f]+: 6ea0f820 fneg v0\.4s, v1\.4s
+ *[0-9a-f]+: 2ef8f820 fneg v0\.4h, v1\.4h
+ *[0-9a-f]+: 6ef8f820 fneg v0\.8h, v1\.8h
+ *[0-9a-f]+: 4e618820 frintn v0\.2d, v1\.2d
+ *[0-9a-f]+: 0e218820 frintn v0\.2s, v1\.2s
+ *[0-9a-f]+: 4e218820 frintn v0\.4s, v1\.4s
+ *[0-9a-f]+: 0e798820 frintn v0\.4h, v1\.4h
+ *[0-9a-f]+: 4e798820 frintn v0\.8h, v1\.8h
+ *[0-9a-f]+: 6e618820 frinta v0\.2d, v1\.2d
+ *[0-9a-f]+: 2e218820 frinta v0\.2s, v1\.2s
+ *[0-9a-f]+: 6e218820 frinta v0\.4s, v1\.4s
+ *[0-9a-f]+: 2e798820 frinta v0\.4h, v1\.4h
+ *[0-9a-f]+: 6e798820 frinta v0\.8h, v1\.8h
+ *[0-9a-f]+: 4ee18820 frintp v0\.2d, v1\.2d
+ *[0-9a-f]+: 0ea18820 frintp v0\.2s, v1\.2s
+ *[0-9a-f]+: 4ea18820 frintp v0\.4s, v1\.4s
+ *[0-9a-f]+: 0ef98820 frintp v0\.4h, v1\.4h
+ *[0-9a-f]+: 4ef98820 frintp v0\.8h, v1\.8h
+ *[0-9a-f]+: 4e619820 frintm v0\.2d, v1\.2d
+ *[0-9a-f]+: 0e219820 frintm v0\.2s, v1\.2s
+ *[0-9a-f]+: 4e219820 frintm v0\.4s, v1\.4s
+ *[0-9a-f]+: 0e799820 frintm v0\.4h, v1\.4h
+ *[0-9a-f]+: 4e799820 frintm v0\.8h, v1\.8h
+ *[0-9a-f]+: 6e619820 frintx v0\.2d, v1\.2d
+ *[0-9a-f]+: 2e219820 frintx v0\.2s, v1\.2s
+ *[0-9a-f]+: 6e219820 frintx v0\.4s, v1\.4s
+ *[0-9a-f]+: 2e799820 frintx v0\.4h, v1\.4h
+ *[0-9a-f]+: 6e799820 frintx v0\.8h, v1\.8h
+ *[0-9a-f]+: 4ee19820 frintz v0\.2d, v1\.2d
+ *[0-9a-f]+: 0ea19820 frintz v0\.2s, v1\.2s
+ *[0-9a-f]+: 4ea19820 frintz v0\.4s, v1\.4s
+ *[0-9a-f]+: 0ef99820 frintz v0\.4h, v1\.4h
+ *[0-9a-f]+: 4ef99820 frintz v0\.8h, v1\.8h
+ *[0-9a-f]+: 6ee19820 frinti v0\.2d, v1\.2d
+ *[0-9a-f]+: 2ea19820 frinti v0\.2s, v1\.2s
+ *[0-9a-f]+: 6ea19820 frinti v0\.4s, v1\.4s
+ *[0-9a-f]+: 2ef99820 frinti v0\.4h, v1\.4h
+ *[0-9a-f]+: 6ef99820 frinti v0\.8h, v1\.8h
+ *[0-9a-f]+: 4e61a820 fcvtns v0\.2d, v1\.2d
+ *[0-9a-f]+: 0e21a820 fcvtns v0\.2s, v1\.2s
+ *[0-9a-f]+: 4e21a820 fcvtns v0\.4s, v1\.4s
+ *[0-9a-f]+: 0e79a820 fcvtns v0\.4h, v1\.4h
+ *[0-9a-f]+: 4e79a820 fcvtns v0\.8h, v1\.8h
+ *[0-9a-f]+: 6e61a820 fcvtnu v0\.2d, v1\.2d
+ *[0-9a-f]+: 2e21a820 fcvtnu v0\.2s, v1\.2s
+ *[0-9a-f]+: 6e21a820 fcvtnu v0\.4s, v1\.4s
+ *[0-9a-f]+: 2e79a820 fcvtnu v0\.4h, v1\.4h
+ *[0-9a-f]+: 6e79a820 fcvtnu v0\.8h, v1\.8h
+ *[0-9a-f]+: 4ee1a820 fcvtps v0\.2d, v1\.2d
+ *[0-9a-f]+: 0ea1a820 fcvtps v0\.2s, v1\.2s
+ *[0-9a-f]+: 4ea1a820 fcvtps v0\.4s, v1\.4s
+ *[0-9a-f]+: 0ef9a820 fcvtps v0\.4h, v1\.4h
+ *[0-9a-f]+: 4ef9a820 fcvtps v0\.8h, v1\.8h
+ *[0-9a-f]+: 6ee1a820 fcvtpu v0\.2d, v1\.2d
+ *[0-9a-f]+: 2ea1a820 fcvtpu v0\.2s, v1\.2s
+ *[0-9a-f]+: 6ea1a820 fcvtpu v0\.4s, v1\.4s
+ *[0-9a-f]+: 2ef9a820 fcvtpu v0\.4h, v1\.4h
+ *[0-9a-f]+: 6ef9a820 fcvtpu v0\.8h, v1\.8h
+ *[0-9a-f]+: 4e61b820 fcvtms v0\.2d, v1\.2d
+ *[0-9a-f]+: 0e21b820 fcvtms v0\.2s, v1\.2s
+ *[0-9a-f]+: 4e21b820 fcvtms v0\.4s, v1\.4s
+ *[0-9a-f]+: 0e79b820 fcvtms v0\.4h, v1\.4h
+ *[0-9a-f]+: 4e79b820 fcvtms v0\.8h, v1\.8h
+ *[0-9a-f]+: 6e61b820 fcvtmu v0\.2d, v1\.2d
+ *[0-9a-f]+: 2e21b820 fcvtmu v0\.2s, v1\.2s
+ *[0-9a-f]+: 6e21b820 fcvtmu v0\.4s, v1\.4s
+ *[0-9a-f]+: 2e79b820 fcvtmu v0\.4h, v1\.4h
+ *[0-9a-f]+: 6e79b820 fcvtmu v0\.8h, v1\.8h
+ *[0-9a-f]+: 4ee1b820 fcvtzs v0\.2d, v1\.2d
+ *[0-9a-f]+: 0ea1b820 fcvtzs v0\.2s, v1\.2s
+ *[0-9a-f]+: 4ea1b820 fcvtzs v0\.4s, v1\.4s
+ *[0-9a-f]+: 0ef9b820 fcvtzs v0\.4h, v1\.4h
+ *[0-9a-f]+: 4ef9b820 fcvtzs v0\.8h, v1\.8h
+ *[0-9a-f]+: 6ee1b820 fcvtzu v0\.2d, v1\.2d
+ *[0-9a-f]+: 2ea1b820 fcvtzu v0\.2s, v1\.2s
+ *[0-9a-f]+: 6ea1b820 fcvtzu v0\.4s, v1\.4s
+ *[0-9a-f]+: 2ef9b820 fcvtzu v0\.4h, v1\.4h
+ *[0-9a-f]+: 6ef9b820 fcvtzu v0\.8h, v1\.8h
+ *[0-9a-f]+: 4e61c820 fcvtas v0\.2d, v1\.2d
+ *[0-9a-f]+: 0e21c820 fcvtas v0\.2s, v1\.2s
+ *[0-9a-f]+: 4e21c820 fcvtas v0\.4s, v1\.4s
+ *[0-9a-f]+: 0e79c820 fcvtas v0\.4h, v1\.4h
+ *[0-9a-f]+: 4e79c820 fcvtas v0\.8h, v1\.8h
+ *[0-9a-f]+: 6e61c820 fcvtau v0\.2d, v1\.2d
+ *[0-9a-f]+: 2e21c820 fcvtau v0\.2s, v1\.2s
+ *[0-9a-f]+: 6e21c820 fcvtau v0\.4s, v1\.4s
+ *[0-9a-f]+: 2e79c820 fcvtau v0\.4h, v1\.4h
+ *[0-9a-f]+: 6e79c820 fcvtau v0\.8h, v1\.8h
+ *[0-9a-f]+: 0ea1c820 urecpe v0.2s, v1.2s
+ *[0-9a-f]+: 4ea1c820 urecpe v0.4s, v1.4s
+ *[0-9a-f]+: 2ea1c820 ursqrte v0.2s, v1.2s
+ *[0-9a-f]+: 6ea1c820 ursqrte v0.4s, v1.4s
+ *[0-9a-f]+: 4e61d820 scvtf v0\.2d, v1\.2d
+ *[0-9a-f]+: 0e21d820 scvtf v0\.2s, v1\.2s
+ *[0-9a-f]+: 4e21d820 scvtf v0\.4s, v1\.4s
+ *[0-9a-f]+: 0e79d820 scvtf v0\.4h, v1\.4h
+ *[0-9a-f]+: 4e79d820 scvtf v0\.8h, v1\.8h
+ *[0-9a-f]+: 6e61d820 ucvtf v0\.2d, v1\.2d
+ *[0-9a-f]+: 2e21d820 ucvtf v0\.2s, v1\.2s
+ *[0-9a-f]+: 6e21d820 ucvtf v0\.4s, v1\.4s
+ *[0-9a-f]+: 2e79d820 ucvtf v0\.4h, v1\.4h
+ *[0-9a-f]+: 6e79d820 ucvtf v0\.8h, v1\.8h
+ *[0-9a-f]+: 4ee1d820 frecpe v0\.2d, v1\.2d
+ *[0-9a-f]+: 0ea1d820 frecpe v0\.2s, v1\.2s
+ *[0-9a-f]+: 4ea1d820 frecpe v0\.4s, v1\.4s
+ *[0-9a-f]+: 0ef9d820 frecpe v0\.4h, v1\.4h
+ *[0-9a-f]+: 4ef9d820 frecpe v0\.8h, v1\.8h
+ *[0-9a-f]+: 6ee1d820 frsqrte v0\.2d, v1\.2d
+ *[0-9a-f]+: 2ea1d820 frsqrte v0\.2s, v1\.2s
+ *[0-9a-f]+: 6ea1d820 frsqrte v0\.4s, v1\.4s
+ *[0-9a-f]+: 2ef9d820 frsqrte v0\.4h, v1\.4h
+ *[0-9a-f]+: 6ef9d820 frsqrte v0\.8h, v1\.8h
+ *[0-9a-f]+: 6ee1f820 fsqrt v0\.2d, v1\.2d
+ *[0-9a-f]+: 2ea1f820 fsqrt v0\.2s, v1\.2s
+ *[0-9a-f]+: 6ea1f820 fsqrt v0\.4s, v1\.4s
+ *[0-9a-f]+: 2ef9f820 fsqrt v0\.4h, v1\.4h
+ *[0-9a-f]+: 6ef9f820 fsqrt v0\.8h, v1\.8h
+ *[0-9a-f]+: 5ee0c820 fcmgt d0, d1, #0\.0
+ *[0-9a-f]+: 5ea0c820 fcmgt s0, s1, #0\.0
+ *[0-9a-f]+: 5ef8c820 fcmgt h0, h1, #0\.0
+ *[0-9a-f]+: 5ef8c800 fcmgt h0, h0, #0\.0
+ *[0-9a-f]+: 7ee0c820 fcmge d0, d1, #0\.0
+ *[0-9a-f]+: 7ea0c820 fcmge s0, s1, #0\.0
+ *[0-9a-f]+: 7ef8c820 fcmge h0, h1, #0\.0
+ *[0-9a-f]+: 7ef8c800 fcmge h0, h0, #0\.0
+ *[0-9a-f]+: 5ee0d820 fcmeq d0, d1, #0\.0
+ *[0-9a-f]+: 5ea0d820 fcmeq s0, s1, #0\.0
+ *[0-9a-f]+: 5ef8d820 fcmeq h0, h1, #0\.0
+ *[0-9a-f]+: 5ef8d800 fcmeq h0, h0, #0\.0
+ *[0-9a-f]+: 7ee0d820 fcmle d0, d1, #0\.0
+ *[0-9a-f]+: 7ea0d820 fcmle s0, s1, #0\.0
+ *[0-9a-f]+: 7ef8d820 fcmle h0, h1, #0\.0
+ *[0-9a-f]+: 7ef8d800 fcmle h0, h0, #0\.0
+ *[0-9a-f]+: 5ee0e820 fcmlt d0, d1, #0\.0
+ *[0-9a-f]+: 5ea0e820 fcmlt s0, s1, #0\.0
+ *[0-9a-f]+: 5ef8e820 fcmlt h0, h1, #0\.0
+ *[0-9a-f]+: 5ef8e800 fcmlt h0, h0, #0\.0
+ *[0-9a-f]+: 5e61a820 fcvtns d0, d1
+ *[0-9a-f]+: 5e21a820 fcvtns s0, s1
+ *[0-9a-f]+: 5e79a820 fcvtns h0, h1
+ *[0-9a-f]+: 5e79a800 fcvtns h0, h0
+ *[0-9a-f]+: 7e61a820 fcvtnu d0, d1
+ *[0-9a-f]+: 7e21a820 fcvtnu s0, s1
+ *[0-9a-f]+: 7e79a820 fcvtnu h0, h1
+ *[0-9a-f]+: 7e79a800 fcvtnu h0, h0
+ *[0-9a-f]+: 5ee1a820 fcvtps d0, d1
+ *[0-9a-f]+: 5ea1a820 fcvtps s0, s1
+ *[0-9a-f]+: 5ef9a820 fcvtps h0, h1
+ *[0-9a-f]+: 5ef9a800 fcvtps h0, h0
+ *[0-9a-f]+: 7ee1a820 fcvtpu d0, d1
+ *[0-9a-f]+: 7ea1a820 fcvtpu s0, s1
+ *[0-9a-f]+: 7ef9a820 fcvtpu h0, h1
+ *[0-9a-f]+: 7ef9a800 fcvtpu h0, h0
+ *[0-9a-f]+: 5e61b820 fcvtms d0, d1
+ *[0-9a-f]+: 5e21b820 fcvtms s0, s1
+ *[0-9a-f]+: 5e79b820 fcvtms h0, h1
+ *[0-9a-f]+: 5e79b800 fcvtms h0, h0
+ *[0-9a-f]+: 7e61b820 fcvtmu d0, d1
+ *[0-9a-f]+: 7e21b820 fcvtmu s0, s1
+ *[0-9a-f]+: 7e79b820 fcvtmu h0, h1
+ *[0-9a-f]+: 7e79b800 fcvtmu h0, h0
+ *[0-9a-f]+: 5ee1b820 fcvtzs d0, d1
+ *[0-9a-f]+: 5ea1b820 fcvtzs s0, s1
+ *[0-9a-f]+: 5ef9b820 fcvtzs h0, h1
+ *[0-9a-f]+: 5ef9b800 fcvtzs h0, h0
+ *[0-9a-f]+: 7ee1b820 fcvtzu d0, d1
+ *[0-9a-f]+: 7ea1b820 fcvtzu s0, s1
+ *[0-9a-f]+: 7ef9b820 fcvtzu h0, h1
+ *[0-9a-f]+: 7ef9b800 fcvtzu h0, h0
+ *[0-9a-f]+: 5e61c820 fcvtas d0, d1
+ *[0-9a-f]+: 5e21c820 fcvtas s0, s1
+ *[0-9a-f]+: 5e79c820 fcvtas h0, h1
+ *[0-9a-f]+: 5e79c800 fcvtas h0, h0
+ *[0-9a-f]+: 7e61c820 fcvtau d0, d1
+ *[0-9a-f]+: 7e21c820 fcvtau s0, s1
+ *[0-9a-f]+: 7e79c820 fcvtau h0, h1
+ *[0-9a-f]+: 7e79c800 fcvtau h0, h0
+ *[0-9a-f]+: 5e61d820 scvtf d0, d1
+ *[0-9a-f]+: 5e21d820 scvtf s0, s1
+ *[0-9a-f]+: 5e79d820 scvtf h0, h1
+ *[0-9a-f]+: 5e79d800 scvtf h0, h0
+ *[0-9a-f]+: 7e61d820 ucvtf d0, d1
+ *[0-9a-f]+: 7e21d820 ucvtf s0, s1
+ *[0-9a-f]+: 7e79d820 ucvtf h0, h1
+ *[0-9a-f]+: 7e79d800 ucvtf h0, h0
+ *[0-9a-f]+: 5ee1d820 frecpe d0, d1
+ *[0-9a-f]+: 5ea1d820 frecpe s0, s1
+ *[0-9a-f]+: 5ef9d820 frecpe h0, h1
+ *[0-9a-f]+: 5ef9d800 frecpe h0, h0
+ *[0-9a-f]+: 7ee1d820 frsqrte d0, d1
+ *[0-9a-f]+: 7ea1d820 frsqrte s0, s1
+ *[0-9a-f]+: 7ef9d820 frsqrte h0, h1
+ *[0-9a-f]+: 7ef9d800 frsqrte h0, h0
+ *[0-9a-f]+: 5ee1f820 frecpx d0, d1
+ *[0-9a-f]+: 5ea1f820 frecpx s0, s1
+ *[0-9a-f]+: 5ef9f820 frecpx h0, h1
+ *[0-9a-f]+: 5ef9f800 frecpx h0, h0
+ *[0-9a-f]+: 4fc31841 fmla v1\.2d, v2\.2d, v3\.d\[1\]
+ *[0-9a-f]+: 0f831841 fmla v1\.2s, v2\.2s, v3\.s\[2\]
+ *[0-9a-f]+: 4fa31041 fmla v1\.4s, v2\.4s, v3\.s\[1\]
+ *[0-9a-f]+: 0f001000 fmla v0\.4h, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f031041 fmla v1\.4h, v2\.4h, v3\.h\[0\]
+ *[0-9a-f]+: 4f001000 fmla v0\.8h, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f031041 fmla v1\.8h, v2\.8h, v3\.h\[0\]
+ *[0-9a-f]+: 4fca10a1 fmla v1\.2d, v5\.2d, v10\.d\[0\]
+ *[0-9a-f]+: 0fab1808 fmla v8\.2s, v0\.2s, v11\.s\[3\]
+ *[0-9a-f]+: 0f3f1920 fmla v0\.4h, v9\.4h, v15\.h\[7\]
+ *[0-9a-f]+: 4fc35841 fmls v1\.2d, v2\.2d, v3\.d\[1\]
+ *[0-9a-f]+: 0f835841 fmls v1\.2s, v2\.2s, v3\.s\[2\]
+ *[0-9a-f]+: 4fa35041 fmls v1\.4s, v2\.4s, v3\.s\[1\]
+ *[0-9a-f]+: 0f005000 fmls v0\.4h, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f035041 fmls v1\.4h, v2\.4h, v3\.h\[0\]
+ *[0-9a-f]+: 4f005000 fmls v0\.8h, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f035041 fmls v1\.8h, v2\.8h, v3\.h\[0\]
+ *[0-9a-f]+: 4fca50a1 fmls v1\.2d, v5\.2d, v10\.d\[0\]
+ *[0-9a-f]+: 0fab5808 fmls v8\.2s, v0\.2s, v11\.s\[3\]
+ *[0-9a-f]+: 0f3f5920 fmls v0\.4h, v9\.4h, v15\.h\[7\]
+ *[0-9a-f]+: 4fc39841 fmul v1\.2d, v2\.2d, v3\.d\[1\]
+ *[0-9a-f]+: 0f839841 fmul v1\.2s, v2\.2s, v3\.s\[2\]
+ *[0-9a-f]+: 4fa39041 fmul v1\.4s, v2\.4s, v3\.s\[1\]
+ *[0-9a-f]+: 0f009000 fmul v0\.4h, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f039041 fmul v1\.4h, v2\.4h, v3\.h\[0\]
+ *[0-9a-f]+: 4f009000 fmul v0\.8h, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f039041 fmul v1\.8h, v2\.8h, v3\.h\[0\]
+ *[0-9a-f]+: 4fca90a1 fmul v1\.2d, v5\.2d, v10\.d\[0\]
+ *[0-9a-f]+: 0fab9808 fmul v8\.2s, v0\.2s, v11\.s\[3\]
+ *[0-9a-f]+: 0f3f9920 fmul v0\.4h, v9\.4h, v15\.h\[7\]
+ *[0-9a-f]+: 6fc39841 fmulx v1\.2d, v2\.2d, v3\.d\[1\]
+ *[0-9a-f]+: 2f839841 fmulx v1\.2s, v2\.2s, v3\.s\[2\]
+ *[0-9a-f]+: 6fa39041 fmulx v1\.4s, v2\.4s, v3\.s\[1\]
+ *[0-9a-f]+: 2f009000 fmulx v0\.4h, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 2f039041 fmulx v1\.4h, v2\.4h, v3\.h\[0\]
+ *[0-9a-f]+: 6f009000 fmulx v0\.8h, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 6f039041 fmulx v1\.8h, v2\.8h, v3\.h\[0\]
+ *[0-9a-f]+: 6fca90a1 fmulx v1\.2d, v5\.2d, v10\.d\[0\]
+ *[0-9a-f]+: 2fab9808 fmulx v8\.2s, v0\.2s, v11\.s\[3\]
+ *[0-9a-f]+: 2f3f9920 fmulx v0\.4h, v9\.4h, v15\.h\[7\]
+ *[0-9a-f]+: 5fc31841 fmla d1, d2, v3\.d\[1\]
+ *[0-9a-f]+: 5fa31041 fmla s1, s2, v3\.s\[1\]
+ *[0-9a-f]+: 5f131041 fmla h1, h2, v3\.h\[1\]
+ *[0-9a-f]+: 5f001000 fmla h0, h0, v0\.h\[0\]
+ *[0-9a-f]+: 5fc35841 fmls d1, d2, v3\.d\[1\]
+ *[0-9a-f]+: 5fa35041 fmls s1, s2, v3\.s\[1\]
+ *[0-9a-f]+: 5f135041 fmls h1, h2, v3\.h\[1\]
+ *[0-9a-f]+: 5f005000 fmls h0, h0, v0\.h\[0\]
+ *[0-9a-f]+: 5fc39841 fmul d1, d2, v3\.d\[1\]
+ *[0-9a-f]+: 5fa39041 fmul s1, s2, v3\.s\[1\]
+ *[0-9a-f]+: 5f139041 fmul h1, h2, v3\.h\[1\]
+ *[0-9a-f]+: 5f009000 fmul h0, h0, v0\.h\[0\]
+ *[0-9a-f]+: 7fc39841 fmulx d1, d2, v3\.d\[1\]
+ *[0-9a-f]+: 7fa39041 fmulx s1, s2, v3\.s\[1\]
+ *[0-9a-f]+: 7f139041 fmulx h1, h2, v3\.h\[1\]
+ *[0-9a-f]+: 7f009000 fmulx h0, h0, v0\.h\[0\]
+ *[0-9a-f]+: 6e30c841 fmaxnmv s1, v2\.4s
+ *[0-9a-f]+: 0e30c841 fmaxnmv h1, v2\.4h
+ *[0-9a-f]+: 4e30c841 fmaxnmv h1, v2\.8h
+ *[0-9a-f]+: 0e30c800 fmaxnmv h0, v0\.4h
+ *[0-9a-f]+: 4e30c800 fmaxnmv h0, v0\.8h
+ *[0-9a-f]+: 6e30f841 fmaxv s1, v2\.4s
+ *[0-9a-f]+: 0e30f841 fmaxv h1, v2\.4h
+ *[0-9a-f]+: 4e30f841 fmaxv h1, v2\.8h
+ *[0-9a-f]+: 0e30f800 fmaxv h0, v0\.4h
+ *[0-9a-f]+: 4e30f800 fmaxv h0, v0\.8h
+ *[0-9a-f]+: 6eb0c841 fminnmv s1, v2\.4s
+ *[0-9a-f]+: 0eb0c841 fminnmv h1, v2\.4h
+ *[0-9a-f]+: 4eb0c841 fminnmv h1, v2\.8h
+ *[0-9a-f]+: 0eb0c800 fminnmv h0, v0\.4h
+ *[0-9a-f]+: 4eb0c800 fminnmv h0, v0\.8h
+ *[0-9a-f]+: 6eb0f841 fminv s1, v2\.4s
+ *[0-9a-f]+: 0eb0f841 fminv h1, v2\.4h
+ *[0-9a-f]+: 4eb0f841 fminv h1, v2\.8h
+ *[0-9a-f]+: 0eb0f800 fminv h0, v0\.4h
+ *[0-9a-f]+: 4eb0f800 fminv h0, v0\.8h
+ *[0-9a-f]+: 6f00f401 fmov v1\.2d, #2\.000000000000000000e\+00
+ *[0-9a-f]+: 0f00f401 fmov v1\.2s, #2\.000000000000000000e\+00
+ *[0-9a-f]+: 4f00f401 fmov v1\.4s, #2\.000000000000000000e\+00
+ *[0-9a-f]+: 0f00fc01 fmov v1\.4h, #2\.000000000000000000e\+00
+ *[0-9a-f]+: 4f00fc01 fmov v1\.8h, #2\.000000000000000000e\+00
+ *[0-9a-f]+: 0f03fe00 fmov v0\.4h, #1\.000000000000000000e\+00
+ *[0-9a-f]+: 4f03fe00 fmov v0\.8h, #1\.000000000000000000e\+00
+ *[0-9a-f]+: 7e70c841 fmaxnmp d1, v2\.2d
+ *[0-9a-f]+: 7e30c841 fmaxnmp s1, v2\.2s
+ *[0-9a-f]+: 5e30c841 fmaxnmp h1, v2\.2h
+ *[0-9a-f]+: 5e30c800 fmaxnmp h0, v0\.2h
+ *[0-9a-f]+: 7e70d841 faddp d1, v2\.2d
+ *[0-9a-f]+: 7e30d841 faddp s1, v2\.2s
+ *[0-9a-f]+: 5e30d841 faddp h1, v2\.2h
+ *[0-9a-f]+: 5e30d800 faddp h0, v0\.2h
+ *[0-9a-f]+: 7e70f841 fmaxp d1, v2\.2d
+ *[0-9a-f]+: 7e30f841 fmaxp s1, v2\.2s
+ *[0-9a-f]+: 5e30f841 fmaxp h1, v2\.2h
+ *[0-9a-f]+: 5e30f800 fmaxp h0, v0\.2h
+ *[0-9a-f]+: 7ef0c841 fminnmp d1, v2\.2d
+ *[0-9a-f]+: 7eb0c841 fminnmp s1, v2\.2s
+ *[0-9a-f]+: 5eb0c841 fminnmp h1, v2\.2h
+ *[0-9a-f]+: 5eb0c800 fminnmp h0, v0\.2h
+ *[0-9a-f]+: 7ef0f841 fminp d1, v2\.2d
+ *[0-9a-f]+: 7eb0f841 fminp s1, v2\.2s
+ *[0-9a-f]+: 5eb0f841 fminp h1, v2\.2h
+ *[0-9a-f]+: 5eb0f800 fminp h0, v0\.2h
+ *[0-9a-f]+: 4f7de441 scvtf v1\.2d, v2\.2d, #3
+ *[0-9a-f]+: 0f3de441 scvtf v1\.2s, v2\.2s, #3
+ *[0-9a-f]+: 4f3de441 scvtf v1\.4s, v2\.4s, #3
+ *[0-9a-f]+: 0f1de441 scvtf v1\.4h, v2\.4h, #3
+ *[0-9a-f]+: 4f1de441 scvtf v1\.8h, v2\.8h, #3
+ *[0-9a-f]+: 0f1fe400 scvtf v0\.4h, v0\.4h, #1
+ *[0-9a-f]+: 4f1fe400 scvtf v0\.8h, v0\.8h, #1
+ *[0-9a-f]+: 4f7dfc41 fcvtzs v1\.2d, v2\.2d, #3
+ *[0-9a-f]+: 0f3dfc41 fcvtzs v1\.2s, v2\.2s, #3
+ *[0-9a-f]+: 4f3dfc41 fcvtzs v1\.4s, v2\.4s, #3
+ *[0-9a-f]+: 0f1dfc41 fcvtzs v1\.4h, v2\.4h, #3
+ *[0-9a-f]+: 4f1dfc41 fcvtzs v1\.8h, v2\.8h, #3
+ *[0-9a-f]+: 0f1ffc00 fcvtzs v0\.4h, v0\.4h, #1
+ *[0-9a-f]+: 4f1ffc00 fcvtzs v0\.8h, v0\.8h, #1
+ *[0-9a-f]+: 6f7de441 ucvtf v1\.2d, v2\.2d, #3
+ *[0-9a-f]+: 2f3de441 ucvtf v1\.2s, v2\.2s, #3
+ *[0-9a-f]+: 6f3de441 ucvtf v1\.4s, v2\.4s, #3
+ *[0-9a-f]+: 2f1de441 ucvtf v1\.4h, v2\.4h, #3
+ *[0-9a-f]+: 6f1de441 ucvtf v1\.8h, v2\.8h, #3
+ *[0-9a-f]+: 2f1fe400 ucvtf v0\.4h, v0\.4h, #1
+ *[0-9a-f]+: 6f1fe400 ucvtf v0\.8h, v0\.8h, #1
+ *[0-9a-f]+: 6f7dfc41 fcvtzu v1\.2d, v2\.2d, #3
+ *[0-9a-f]+: 2f3dfc41 fcvtzu v1\.2s, v2\.2s, #3
+ *[0-9a-f]+: 6f3dfc41 fcvtzu v1\.4s, v2\.4s, #3
+ *[0-9a-f]+: 2f1dfc41 fcvtzu v1\.4h, v2\.4h, #3
+ *[0-9a-f]+: 6f1dfc41 fcvtzu v1\.8h, v2\.8h, #3
+ *[0-9a-f]+: 2f1ffc00 fcvtzu v0\.4h, v0\.4h, #1
+ *[0-9a-f]+: 6f1ffc00 fcvtzu v0\.8h, v0\.8h, #1
+ *[0-9a-f]+: 5f7de441 scvtf d1, d2, #3
+ *[0-9a-f]+: 5f3de441 scvtf s1, s2, #3
+ *[0-9a-f]+: 5f1de441 scvtf h1, h2, #3
+ *[0-9a-f]+: 5f1fe400 scvtf h0, h0, #1
+ *[0-9a-f]+: 5f7dfc41 fcvtzs d1, d2, #3
+ *[0-9a-f]+: 5f3dfc41 fcvtzs s1, s2, #3
+ *[0-9a-f]+: 5f1dfc41 fcvtzs h1, h2, #3
+ *[0-9a-f]+: 5f1ffc00 fcvtzs h0, h0, #1
+ *[0-9a-f]+: 7f7de441 ucvtf d1, d2, #3
+ *[0-9a-f]+: 7f3de441 ucvtf s1, s2, #3
+ *[0-9a-f]+: 7f1de441 ucvtf h1, h2, #3
+ *[0-9a-f]+: 7f1fe400 ucvtf h0, h0, #1
+ *[0-9a-f]+: 7f7dfc41 fcvtzu d1, d2, #3
+ *[0-9a-f]+: 7f3dfc41 fcvtzu s1, s2, #3
+ *[0-9a-f]+: 7f1dfc41 fcvtzu h1, h2, #3
+ *[0-9a-f]+: 7f1ffc00 fcvtzu h0, h0, #1
diff --git a/gas/testsuite/gas/aarch64/advsimd-fp16.s b/gas/testsuite/gas/aarch64/advsimd-fp16.s
index 6b86ded..2a09351 100644
--- a/gas/testsuite/gas/aarch64/advsimd-fp16.s
+++ b/gas/testsuite/gas/aarch64/advsimd-fp16.s
@@ -1,5 +1,6 @@
-/* simdhp.s Test file for AArch64 half-precision floating-point
- vector instructions. */
+/* Test file for AArch64 half-precision floating-point vector instructions.
+ This is also the only test for the single- and double-precison variants of
+ most of these instructions. */
/* Vector three-same. */
@@ -24,6 +25,7 @@
three_same fadd
three_same faddp
three_same fsub
+ three_same fabd
three_same fmulx
three_same fmul
three_same fcmeq
@@ -82,6 +84,11 @@
\op v0.8h, v1.8h
.endm
+ .macro tworeg_misc_s, op
+ \op v0.2s, v1.2s
+ \op v0.4s, v1.4s
+ .endm
+
tworeg_misc fabs
tworeg_misc fneg
@@ -106,6 +113,8 @@
tworeg_misc fcvtas
tworeg_misc fcvtau
+ tworeg_misc_s urecpe
+ tworeg_misc_s ursqrte
tworeg_misc scvtf
tworeg_misc ucvtf
diff --git a/gas/testsuite/gas/aarch64/advsimd-modified-immediate.d b/gas/testsuite/gas/aarch64/advsimd-modified-immediate.d
new file mode 100644
index 0000000..ecfd337
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-modified-immediate.d
@@ -0,0 +1,103 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 0f009400 orr v0\.4h, #0x0
+ *[0-9a-f]+: 0f00941f orr v31\.4h, #0x0
+ *[0-9a-f]+: 0f0097e0 orr v0\.4h, #0x1f
+ *[0-9a-f]+: 0f0797e0 orr v0\.4h, #0xff
+ *[0-9a-f]+: 0f009400 orr v0\.4h, #0x0
+ *[0-9a-f]+: 0f00b400 orr v0\.4h, #0x0, lsl #8
+ *[0-9a-f]+: 4f009400 orr v0\.8h, #0x0
+ *[0-9a-f]+: 4f00941f orr v31\.8h, #0x0
+ *[0-9a-f]+: 4f0097e0 orr v0\.8h, #0x1f
+ *[0-9a-f]+: 4f0797e0 orr v0\.8h, #0xff
+ *[0-9a-f]+: 4f0797e0 orr v0\.8h, #0xff
+ *[0-9a-f]+: 4f07b7e0 orr v0\.8h, #0xff, lsl #8
+ *[0-9a-f]+: 0f001400 orr v0\.2s, #0x0
+ *[0-9a-f]+: 0f00141f orr v31\.2s, #0x0
+ *[0-9a-f]+: 0f0017e0 orr v0\.2s, #0x1f
+ *[0-9a-f]+: 0f0717e0 orr v0\.2s, #0xff
+ *[0-9a-f]+: 0f001400 orr v0\.2s, #0x0
+ *[0-9a-f]+: 0f003400 orr v0\.2s, #0x0, lsl #8
+ *[0-9a-f]+: 0f005400 orr v0\.2s, #0x0, lsl #16
+ *[0-9a-f]+: 0f007400 orr v0\.2s, #0x0, lsl #24
+ *[0-9a-f]+: 4f001400 orr v0\.4s, #0x0
+ *[0-9a-f]+: 4f00141f orr v31\.4s, #0x0
+ *[0-9a-f]+: 4f0017e0 orr v0\.4s, #0x1f
+ *[0-9a-f]+: 4f0717e0 orr v0\.4s, #0xff
+ *[0-9a-f]+: 4f0717e0 orr v0\.4s, #0xff
+ *[0-9a-f]+: 4f0737e0 orr v0\.4s, #0xff, lsl #8
+ *[0-9a-f]+: 4f0757e0 orr v0\.4s, #0xff, lsl #16
+ *[0-9a-f]+: 4f0777e0 orr v0\.4s, #0xff, lsl #24
+ *[0-9a-f]+: 2f008400 mvni v0\.4h, #0x0
+ *[0-9a-f]+: 2f00841f mvni v31\.4h, #0x0
+ *[0-9a-f]+: 2f0087e0 mvni v0\.4h, #0x1f
+ *[0-9a-f]+: 2f0787e0 mvni v0\.4h, #0xff
+ *[0-9a-f]+: 2f008400 mvni v0\.4h, #0x0
+ *[0-9a-f]+: 2f00a400 mvni v0\.4h, #0x0, lsl #8
+ *[0-9a-f]+: 6f008400 mvni v0\.8h, #0x0
+ *[0-9a-f]+: 6f00841f mvni v31\.8h, #0x0
+ *[0-9a-f]+: 6f0087e0 mvni v0\.8h, #0x1f
+ *[0-9a-f]+: 6f0787e0 mvni v0\.8h, #0xff
+ *[0-9a-f]+: 6f0787e0 mvni v0\.8h, #0xff
+ *[0-9a-f]+: 6f07a7e0 mvni v0\.8h, #0xff, lsl #8
+ *[0-9a-f]+: 2f000400 mvni v0\.2s, #0x0
+ *[0-9a-f]+: 2f00041f mvni v31\.2s, #0x0
+ *[0-9a-f]+: 2f0007e0 mvni v0\.2s, #0x1f
+ *[0-9a-f]+: 2f0707e0 mvni v0\.2s, #0xff
+ *[0-9a-f]+: 2f000400 mvni v0\.2s, #0x0
+ *[0-9a-f]+: 2f002400 mvni v0\.2s, #0x0, lsl #8
+ *[0-9a-f]+: 2f004400 mvni v0\.2s, #0x0, lsl #16
+ *[0-9a-f]+: 2f006400 mvni v0\.2s, #0x0, lsl #24
+ *[0-9a-f]+: 6f000400 mvni v0\.4s, #0x0
+ *[0-9a-f]+: 6f00041f mvni v31\.4s, #0x0
+ *[0-9a-f]+: 6f0007e0 mvni v0\.4s, #0x1f
+ *[0-9a-f]+: 6f0707e0 mvni v0\.4s, #0xff
+ *[0-9a-f]+: 6f0707e0 mvni v0\.4s, #0xff
+ *[0-9a-f]+: 6f0727e0 mvni v0\.4s, #0xff, lsl #8
+ *[0-9a-f]+: 6f0747e0 mvni v0\.4s, #0xff, lsl #16
+ *[0-9a-f]+: 6f0767e0 mvni v0\.4s, #0xff, lsl #24
+ *[0-9a-f]+: 2f00c400 mvni v0\.2s, #0x0, msl #8
+ *[0-9a-f]+: 2f00c41f mvni v31\.2s, #0x0, msl #8
+ *[0-9a-f]+: 2f00c7e0 mvni v0\.2s, #0x1f, msl #8
+ *[0-9a-f]+: 2f07c7e0 mvni v0\.2s, #0xff, msl #8
+ *[0-9a-f]+: 2f00d400 mvni v0\.2s, #0x0, msl #16
+ *[0-9a-f]+: 6f00c400 mvni v0\.4s, #0x0, msl #8
+ *[0-9a-f]+: 6f00c41f mvni v31\.4s, #0x0, msl #8
+ *[0-9a-f]+: 6f00c7e0 mvni v0\.4s, #0x1f, msl #8
+ *[0-9a-f]+: 6f07c7e0 mvni v0\.4s, #0xff, msl #8
+ *[0-9a-f]+: 6f07d7e0 mvni v0\.4s, #0xff, msl #16
+ *[0-9a-f]+: 2f009400 bic v0\.4h, #0x0
+ *[0-9a-f]+: 2f00941f bic v31\.4h, #0x0
+ *[0-9a-f]+: 2f0097e0 bic v0\.4h, #0x1f
+ *[0-9a-f]+: 2f0797e0 bic v0\.4h, #0xff
+ *[0-9a-f]+: 2f009400 bic v0\.4h, #0x0
+ *[0-9a-f]+: 2f00b400 bic v0\.4h, #0x0, lsl #8
+ *[0-9a-f]+: 6f009400 bic v0\.8h, #0x0
+ *[0-9a-f]+: 6f00941f bic v31\.8h, #0x0
+ *[0-9a-f]+: 6f0097e0 bic v0\.8h, #0x1f
+ *[0-9a-f]+: 6f0797e0 bic v0\.8h, #0xff
+ *[0-9a-f]+: 6f0797e0 bic v0\.8h, #0xff
+ *[0-9a-f]+: 6f07b7e0 bic v0\.8h, #0xff, lsl #8
+ *[0-9a-f]+: 2f001400 bic v0\.2s, #0x0
+ *[0-9a-f]+: 2f00141f bic v31\.2s, #0x0
+ *[0-9a-f]+: 2f0017e0 bic v0\.2s, #0x1f
+ *[0-9a-f]+: 2f0717e0 bic v0\.2s, #0xff
+ *[0-9a-f]+: 2f001400 bic v0\.2s, #0x0
+ *[0-9a-f]+: 2f003400 bic v0\.2s, #0x0, lsl #8
+ *[0-9a-f]+: 2f005400 bic v0\.2s, #0x0, lsl #16
+ *[0-9a-f]+: 2f007400 bic v0\.2s, #0x0, lsl #24
+ *[0-9a-f]+: 6f001400 bic v0\.4s, #0x0
+ *[0-9a-f]+: 6f00141f bic v31\.4s, #0x0
+ *[0-9a-f]+: 6f0017e0 bic v0\.4s, #0x1f
+ *[0-9a-f]+: 6f0717e0 bic v0\.4s, #0xff
+ *[0-9a-f]+: 6f0717e0 bic v0\.4s, #0xff
+ *[0-9a-f]+: 6f0737e0 bic v0\.4s, #0xff, lsl #8
+ *[0-9a-f]+: 6f0757e0 bic v0\.4s, #0xff, lsl #16
+ *[0-9a-f]+: 6f0777e0 bic v0\.4s, #0xff, lsl #24
diff --git a/gas/testsuite/gas/aarch64/advsimd-modified-immediate.s b/gas/testsuite/gas/aarch64/advsimd-modified-immediate.s
new file mode 100644
index 0000000..af64f2e
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-modified-immediate.s
@@ -0,0 +1,98 @@
+// movi and fmov are tested elsewhere, so skipped here.
+
+ orr v0.4h, #0
+ orr v31.4h, #0
+ orr v0.4h, #31
+ orr v0.4h, #255
+ orr v0.4h, #0, lsl #0
+ orr v0.4h, #0, lsl #8
+ orr v0.8h, #0
+ orr v31.8h, #0
+ orr v0.8h, #31
+ orr v0.8h, #255
+ orr v0.8h, #255, lsl #0
+ orr v0.8h, #255, lsl #8
+ orr v0.2s, #0
+ orr v31.2s, #0
+ orr v0.2s, #31
+ orr v0.2s, #255
+ orr v0.2s, #0, lsl #0
+ orr v0.2s, #0, lsl #8
+ orr v0.2s, #0, lsl #16
+ orr v0.2s, #0, lsl #24
+ orr v0.4s, #0
+ orr v31.4s, #0
+ orr v0.4s, #31
+ orr v0.4s, #255
+ orr v0.4s, #255, lsl #0
+ orr v0.4s, #255, lsl #8
+ orr v0.4s, #255, lsl #16
+ orr v0.4s, #255, lsl #24
+
+ mvni v0.4h, #0
+ mvni v31.4h, #0
+ mvni v0.4h, #31
+ mvni v0.4h, #255
+ mvni v0.4h, #0, lsl #0
+ mvni v0.4h, #0, lsl #8
+ mvni v0.8h, #0
+ mvni v31.8h, #0
+ mvni v0.8h, #31
+ mvni v0.8h, #255
+ mvni v0.8h, #255, lsl #0
+ mvni v0.8h, #255, lsl #8
+ mvni v0.2s, #0
+ mvni v31.2s, #0
+ mvni v0.2s, #31
+ mvni v0.2s, #255
+ mvni v0.2s, #0, lsl #0
+ mvni v0.2s, #0, lsl #8
+ mvni v0.2s, #0, lsl #16
+ mvni v0.2s, #0, lsl #24
+ mvni v0.4s, #0
+ mvni v31.4s, #0
+ mvni v0.4s, #31
+ mvni v0.4s, #255
+ mvni v0.4s, #255, lsl #0
+ mvni v0.4s, #255, lsl #8
+ mvni v0.4s, #255, lsl #16
+ mvni v0.4s, #255, lsl #24
+ mvni v0.2s, #0, msl #8
+ mvni v31.2s, #0, msl #8
+ mvni v0.2s, #31, msl #8
+ mvni v0.2s, #255, msl #8
+ mvni v0.2s, #0, msl #16
+ mvni v0.4s, #0, msl #8
+ mvni v31.4s, #0, msl #8
+ mvni v0.4s, #31, msl #8
+ mvni v0.4s, #255, msl #8
+ mvni v0.4s, #255, msl #16
+
+ bic v0.4h, #0
+ bic v31.4h, #0
+ bic v0.4h, #31
+ bic v0.4h, #255
+ bic v0.4h, #0, lsl #0
+ bic v0.4h, #0, lsl #8
+ bic v0.8h, #0
+ bic v31.8h, #0
+ bic v0.8h, #31
+ bic v0.8h, #255
+ bic v0.8h, #255, lsl #0
+ bic v0.8h, #255, lsl #8
+ bic v0.2s, #0
+ bic v31.2s, #0
+ bic v0.2s, #31
+ bic v0.2s, #255
+ bic v0.2s, #0, lsl #0
+ bic v0.2s, #0, lsl #8
+ bic v0.2s, #0, lsl #16
+ bic v0.2s, #0, lsl #24
+ bic v0.4s, #0
+ bic v31.4s, #0
+ bic v0.4s, #31
+ bic v0.4s, #255
+ bic v0.4s, #255, lsl #0
+ bic v0.4s, #255, lsl #8
+ bic v0.4s, #255, lsl #16
+ bic v0.4s, #255, lsl #24
diff --git a/gas/testsuite/gas/aarch64/advsimd-mul-element.d b/gas/testsuite/gas/aarch64/advsimd-mul-element.d
new file mode 100644
index 0000000..16573f6
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-mul-element.d
@@ -0,0 +1,373 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 0f402000 smlal v0\.4s, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f40201f smlal v31\.4s, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f4023e0 smlal v0\.4s, v31\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f4f2000 smlal v0\.4s, v0\.4h, v15\.h\[0\]
+ *[0-9a-f]+: 0f502000 smlal v0\.4s, v0\.4h, v0\.h\[1\]
+ *[0-9a-f]+: 0f702000 smlal v0\.4s, v0\.4h, v0\.h\[3\]
+ *[0-9a-f]+: 0f702800 smlal v0\.4s, v0\.4h, v0\.h\[7\]
+ *[0-9a-f]+: 0f802000 smlal v0\.2d, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f80201f smlal v31\.2d, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f8023e0 smlal v0\.2d, v31\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f9f2000 smlal v0\.2d, v0\.2s, v31\.s\[0\]
+ *[0-9a-f]+: 0fa02000 smlal v0\.2d, v0\.2s, v0\.s\[1\]
+ *[0-9a-f]+: 0fa02800 smlal v0\.2d, v0\.2s, v0\.s\[3\]
+ *[0-9a-f]+: 4f402000 smlal2 v0\.4s, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f40201f smlal2 v31\.4s, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f4023e0 smlal2 v0\.4s, v31\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f4f2000 smlal2 v0\.4s, v0\.8h, v15\.h\[0\]
+ *[0-9a-f]+: 4f502000 smlal2 v0\.4s, v0\.8h, v0\.h\[1\]
+ *[0-9a-f]+: 4f702000 smlal2 v0\.4s, v0\.8h, v0\.h\[3\]
+ *[0-9a-f]+: 4f702800 smlal2 v0\.4s, v0\.8h, v0\.h\[7\]
+ *[0-9a-f]+: 4f802000 smlal2 v0\.2d, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f80201f smlal2 v31\.2d, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f8023e0 smlal2 v0\.2d, v31\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f9f2000 smlal2 v0\.2d, v0\.4s, v31\.s\[0\]
+ *[0-9a-f]+: 4fa02000 smlal2 v0\.2d, v0\.4s, v0\.s\[1\]
+ *[0-9a-f]+: 4fa02800 smlal2 v0\.2d, v0\.4s, v0\.s\[3\]
+ *[0-9a-f]+: 0f403000 sqdmlal v0\.4s, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f40301f sqdmlal v31\.4s, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f4033e0 sqdmlal v0\.4s, v31\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f4f3000 sqdmlal v0\.4s, v0\.4h, v15\.h\[0\]
+ *[0-9a-f]+: 0f503000 sqdmlal v0\.4s, v0\.4h, v0\.h\[1\]
+ *[0-9a-f]+: 0f703000 sqdmlal v0\.4s, v0\.4h, v0\.h\[3\]
+ *[0-9a-f]+: 0f703800 sqdmlal v0\.4s, v0\.4h, v0\.h\[7\]
+ *[0-9a-f]+: 0f803000 sqdmlal v0\.2d, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f80301f sqdmlal v31\.2d, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f8033e0 sqdmlal v0\.2d, v31\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f9f3000 sqdmlal v0\.2d, v0\.2s, v31\.s\[0\]
+ *[0-9a-f]+: 0fa03000 sqdmlal v0\.2d, v0\.2s, v0\.s\[1\]
+ *[0-9a-f]+: 0fa03800 sqdmlal v0\.2d, v0\.2s, v0\.s\[3\]
+ *[0-9a-f]+: 4f403000 sqdmlal2 v0\.4s, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f40301f sqdmlal2 v31\.4s, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f4033e0 sqdmlal2 v0\.4s, v31\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f4f3000 sqdmlal2 v0\.4s, v0\.8h, v15\.h\[0\]
+ *[0-9a-f]+: 4f503000 sqdmlal2 v0\.4s, v0\.8h, v0\.h\[1\]
+ *[0-9a-f]+: 4f703000 sqdmlal2 v0\.4s, v0\.8h, v0\.h\[3\]
+ *[0-9a-f]+: 4f703800 sqdmlal2 v0\.4s, v0\.8h, v0\.h\[7\]
+ *[0-9a-f]+: 4f803000 sqdmlal2 v0\.2d, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f80301f sqdmlal2 v31\.2d, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f8033e0 sqdmlal2 v0\.2d, v31\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f9f3000 sqdmlal2 v0\.2d, v0\.4s, v31\.s\[0\]
+ *[0-9a-f]+: 4fa03000 sqdmlal2 v0\.2d, v0\.4s, v0\.s\[1\]
+ *[0-9a-f]+: 4fa03800 sqdmlal2 v0\.2d, v0\.4s, v0\.s\[3\]
+ *[0-9a-f]+: 0f406000 smlsl v0\.4s, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f40601f smlsl v31\.4s, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f4063e0 smlsl v0\.4s, v31\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f4f6000 smlsl v0\.4s, v0\.4h, v15\.h\[0\]
+ *[0-9a-f]+: 0f506000 smlsl v0\.4s, v0\.4h, v0\.h\[1\]
+ *[0-9a-f]+: 0f706000 smlsl v0\.4s, v0\.4h, v0\.h\[3\]
+ *[0-9a-f]+: 0f706800 smlsl v0\.4s, v0\.4h, v0\.h\[7\]
+ *[0-9a-f]+: 0f806000 smlsl v0\.2d, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f80601f smlsl v31\.2d, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f8063e0 smlsl v0\.2d, v31\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f9f6000 smlsl v0\.2d, v0\.2s, v31\.s\[0\]
+ *[0-9a-f]+: 0fa06000 smlsl v0\.2d, v0\.2s, v0\.s\[1\]
+ *[0-9a-f]+: 0fa06800 smlsl v0\.2d, v0\.2s, v0\.s\[3\]
+ *[0-9a-f]+: 4f406000 smlsl2 v0\.4s, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f40601f smlsl2 v31\.4s, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f4063e0 smlsl2 v0\.4s, v31\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f4f6000 smlsl2 v0\.4s, v0\.8h, v15\.h\[0\]
+ *[0-9a-f]+: 4f506000 smlsl2 v0\.4s, v0\.8h, v0\.h\[1\]
+ *[0-9a-f]+: 4f706000 smlsl2 v0\.4s, v0\.8h, v0\.h\[3\]
+ *[0-9a-f]+: 4f706800 smlsl2 v0\.4s, v0\.8h, v0\.h\[7\]
+ *[0-9a-f]+: 4f806000 smlsl2 v0\.2d, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f80601f smlsl2 v31\.2d, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f8063e0 smlsl2 v0\.2d, v31\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f9f6000 smlsl2 v0\.2d, v0\.4s, v31\.s\[0\]
+ *[0-9a-f]+: 4fa06000 smlsl2 v0\.2d, v0\.4s, v0\.s\[1\]
+ *[0-9a-f]+: 4fa06800 smlsl2 v0\.2d, v0\.4s, v0\.s\[3\]
+ *[0-9a-f]+: 0f407000 sqdmlsl v0\.4s, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f40701f sqdmlsl v31\.4s, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f4073e0 sqdmlsl v0\.4s, v31\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f4f7000 sqdmlsl v0\.4s, v0\.4h, v15\.h\[0\]
+ *[0-9a-f]+: 0f507000 sqdmlsl v0\.4s, v0\.4h, v0\.h\[1\]
+ *[0-9a-f]+: 0f707000 sqdmlsl v0\.4s, v0\.4h, v0\.h\[3\]
+ *[0-9a-f]+: 0f707800 sqdmlsl v0\.4s, v0\.4h, v0\.h\[7\]
+ *[0-9a-f]+: 0f807000 sqdmlsl v0\.2d, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f80701f sqdmlsl v31\.2d, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f8073e0 sqdmlsl v0\.2d, v31\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f9f7000 sqdmlsl v0\.2d, v0\.2s, v31\.s\[0\]
+ *[0-9a-f]+: 0fa07000 sqdmlsl v0\.2d, v0\.2s, v0\.s\[1\]
+ *[0-9a-f]+: 0fa07800 sqdmlsl v0\.2d, v0\.2s, v0\.s\[3\]
+ *[0-9a-f]+: 4f407000 sqdmlsl2 v0\.4s, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f40701f sqdmlsl2 v31\.4s, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f4073e0 sqdmlsl2 v0\.4s, v31\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f4f7000 sqdmlsl2 v0\.4s, v0\.8h, v15\.h\[0\]
+ *[0-9a-f]+: 4f507000 sqdmlsl2 v0\.4s, v0\.8h, v0\.h\[1\]
+ *[0-9a-f]+: 4f707000 sqdmlsl2 v0\.4s, v0\.8h, v0\.h\[3\]
+ *[0-9a-f]+: 4f707800 sqdmlsl2 v0\.4s, v0\.8h, v0\.h\[7\]
+ *[0-9a-f]+: 4f807000 sqdmlsl2 v0\.2d, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f80701f sqdmlsl2 v31\.2d, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f8073e0 sqdmlsl2 v0\.2d, v31\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f9f7000 sqdmlsl2 v0\.2d, v0\.4s, v31\.s\[0\]
+ *[0-9a-f]+: 4fa07000 sqdmlsl2 v0\.2d, v0\.4s, v0\.s\[1\]
+ *[0-9a-f]+: 4fa07800 sqdmlsl2 v0\.2d, v0\.4s, v0\.s\[3\]
+ *[0-9a-f]+: 0f408000 mul v0\.4h, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f40801f mul v31\.4h, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f4083e0 mul v0\.4h, v31\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f4f8000 mul v0\.4h, v0\.4h, v15\.h\[0\]
+ *[0-9a-f]+: 0f508000 mul v0\.4h, v0\.4h, v0\.h\[1\]
+ *[0-9a-f]+: 0f708000 mul v0\.4h, v0\.4h, v0\.h\[3\]
+ *[0-9a-f]+: 0f708800 mul v0\.4h, v0\.4h, v0\.h\[7\]
+ *[0-9a-f]+: 0f808000 mul v0\.2s, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f80801f mul v31\.2s, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f8083e0 mul v0\.2s, v31\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f9f8000 mul v0\.2s, v0\.2s, v31\.s\[0\]
+ *[0-9a-f]+: 0fa08000 mul v0\.2s, v0\.2s, v0\.s\[1\]
+ *[0-9a-f]+: 0fa08800 mul v0\.2s, v0\.2s, v0\.s\[3\]
+ *[0-9a-f]+: 4f408000 mul v0\.8h, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f40801f mul v31\.8h, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f4083e0 mul v0\.8h, v31\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f4f8000 mul v0\.8h, v0\.8h, v15\.h\[0\]
+ *[0-9a-f]+: 4f508000 mul v0\.8h, v0\.8h, v0\.h\[1\]
+ *[0-9a-f]+: 4f708000 mul v0\.8h, v0\.8h, v0\.h\[3\]
+ *[0-9a-f]+: 4f708800 mul v0\.8h, v0\.8h, v0\.h\[7\]
+ *[0-9a-f]+: 4f808000 mul v0\.4s, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f80801f mul v31\.4s, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f8083e0 mul v0\.4s, v31\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f9f8000 mul v0\.4s, v0\.4s, v31\.s\[0\]
+ *[0-9a-f]+: 4fa08000 mul v0\.4s, v0\.4s, v0\.s\[1\]
+ *[0-9a-f]+: 4fa08800 mul v0\.4s, v0\.4s, v0\.s\[3\]
+ *[0-9a-f]+: 0f40a000 smull v0\.4s, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f40a01f smull v31\.4s, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f40a3e0 smull v0\.4s, v31\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f4fa000 smull v0\.4s, v0\.4h, v15\.h\[0\]
+ *[0-9a-f]+: 0f50a000 smull v0\.4s, v0\.4h, v0\.h\[1\]
+ *[0-9a-f]+: 0f70a000 smull v0\.4s, v0\.4h, v0\.h\[3\]
+ *[0-9a-f]+: 0f70a800 smull v0\.4s, v0\.4h, v0\.h\[7\]
+ *[0-9a-f]+: 0f80a000 smull v0\.2d, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f80a01f smull v31\.2d, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f80a3e0 smull v0\.2d, v31\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f9fa000 smull v0\.2d, v0\.2s, v31\.s\[0\]
+ *[0-9a-f]+: 0fa0a000 smull v0\.2d, v0\.2s, v0\.s\[1\]
+ *[0-9a-f]+: 0fa0a800 smull v0\.2d, v0\.2s, v0\.s\[3\]
+ *[0-9a-f]+: 4f40a000 smull2 v0\.4s, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f40a01f smull2 v31\.4s, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f40a3e0 smull2 v0\.4s, v31\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f4fa000 smull2 v0\.4s, v0\.8h, v15\.h\[0\]
+ *[0-9a-f]+: 4f50a000 smull2 v0\.4s, v0\.8h, v0\.h\[1\]
+ *[0-9a-f]+: 4f70a000 smull2 v0\.4s, v0\.8h, v0\.h\[3\]
+ *[0-9a-f]+: 4f70a800 smull2 v0\.4s, v0\.8h, v0\.h\[7\]
+ *[0-9a-f]+: 4f80a000 smull2 v0\.2d, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f80a01f smull2 v31\.2d, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f80a3e0 smull2 v0\.2d, v31\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f9fa000 smull2 v0\.2d, v0\.4s, v31\.s\[0\]
+ *[0-9a-f]+: 4fa0a000 smull2 v0\.2d, v0\.4s, v0\.s\[1\]
+ *[0-9a-f]+: 4fa0a800 smull2 v0\.2d, v0\.4s, v0\.s\[3\]
+ *[0-9a-f]+: 0f40b000 sqdmull v0\.4s, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f40b01f sqdmull v31\.4s, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f40b3e0 sqdmull v0\.4s, v31\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f4fb000 sqdmull v0\.4s, v0\.4h, v15\.h\[0\]
+ *[0-9a-f]+: 0f50b000 sqdmull v0\.4s, v0\.4h, v0\.h\[1\]
+ *[0-9a-f]+: 0f70b000 sqdmull v0\.4s, v0\.4h, v0\.h\[3\]
+ *[0-9a-f]+: 0f70b800 sqdmull v0\.4s, v0\.4h, v0\.h\[7\]
+ *[0-9a-f]+: 0f80b000 sqdmull v0\.2d, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f80b01f sqdmull v31\.2d, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f80b3e0 sqdmull v0\.2d, v31\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f9fb000 sqdmull v0\.2d, v0\.2s, v31\.s\[0\]
+ *[0-9a-f]+: 0fa0b000 sqdmull v0\.2d, v0\.2s, v0\.s\[1\]
+ *[0-9a-f]+: 0fa0b800 sqdmull v0\.2d, v0\.2s, v0\.s\[3\]
+ *[0-9a-f]+: 4f40b000 sqdmull2 v0\.4s, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f40b01f sqdmull2 v31\.4s, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f40b3e0 sqdmull2 v0\.4s, v31\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f4fb000 sqdmull2 v0\.4s, v0\.8h, v15\.h\[0\]
+ *[0-9a-f]+: 4f50b000 sqdmull2 v0\.4s, v0\.8h, v0\.h\[1\]
+ *[0-9a-f]+: 4f70b000 sqdmull2 v0\.4s, v0\.8h, v0\.h\[3\]
+ *[0-9a-f]+: 4f70b800 sqdmull2 v0\.4s, v0\.8h, v0\.h\[7\]
+ *[0-9a-f]+: 4f80b000 sqdmull2 v0\.2d, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f80b01f sqdmull2 v31\.2d, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f80b3e0 sqdmull2 v0\.2d, v31\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f9fb000 sqdmull2 v0\.2d, v0\.4s, v31\.s\[0\]
+ *[0-9a-f]+: 4fa0b000 sqdmull2 v0\.2d, v0\.4s, v0\.s\[1\]
+ *[0-9a-f]+: 4fa0b800 sqdmull2 v0\.2d, v0\.4s, v0\.s\[3\]
+ *[0-9a-f]+: 0f40c000 sqdmulh v0\.4h, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f40c01f sqdmulh v31\.4h, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f40c3e0 sqdmulh v0\.4h, v31\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f4fc000 sqdmulh v0\.4h, v0\.4h, v15\.h\[0\]
+ *[0-9a-f]+: 0f50c000 sqdmulh v0\.4h, v0\.4h, v0\.h\[1\]
+ *[0-9a-f]+: 0f70c000 sqdmulh v0\.4h, v0\.4h, v0\.h\[3\]
+ *[0-9a-f]+: 0f70c800 sqdmulh v0\.4h, v0\.4h, v0\.h\[7\]
+ *[0-9a-f]+: 0f80c000 sqdmulh v0\.2s, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f80c01f sqdmulh v31\.2s, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f80c3e0 sqdmulh v0\.2s, v31\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f9fc000 sqdmulh v0\.2s, v0\.2s, v31\.s\[0\]
+ *[0-9a-f]+: 0fa0c000 sqdmulh v0\.2s, v0\.2s, v0\.s\[1\]
+ *[0-9a-f]+: 0fa0c800 sqdmulh v0\.2s, v0\.2s, v0\.s\[3\]
+ *[0-9a-f]+: 4f40c000 sqdmulh v0\.8h, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f40c01f sqdmulh v31\.8h, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f40c3e0 sqdmulh v0\.8h, v31\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f4fc000 sqdmulh v0\.8h, v0\.8h, v15\.h\[0\]
+ *[0-9a-f]+: 4f50c000 sqdmulh v0\.8h, v0\.8h, v0\.h\[1\]
+ *[0-9a-f]+: 4f70c000 sqdmulh v0\.8h, v0\.8h, v0\.h\[3\]
+ *[0-9a-f]+: 4f70c800 sqdmulh v0\.8h, v0\.8h, v0\.h\[7\]
+ *[0-9a-f]+: 4f80c000 sqdmulh v0\.4s, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f80c01f sqdmulh v31\.4s, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f80c3e0 sqdmulh v0\.4s, v31\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f9fc000 sqdmulh v0\.4s, v0\.4s, v31\.s\[0\]
+ *[0-9a-f]+: 4fa0c000 sqdmulh v0\.4s, v0\.4s, v0\.s\[1\]
+ *[0-9a-f]+: 4fa0c800 sqdmulh v0\.4s, v0\.4s, v0\.s\[3\]
+ *[0-9a-f]+: 0f40d000 sqrdmulh v0\.4h, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f40d01f sqrdmulh v31\.4h, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f40d3e0 sqrdmulh v0\.4h, v31\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 0f4fd000 sqrdmulh v0\.4h, v0\.4h, v15\.h\[0\]
+ *[0-9a-f]+: 0f50d000 sqrdmulh v0\.4h, v0\.4h, v0\.h\[1\]
+ *[0-9a-f]+: 0f70d000 sqrdmulh v0\.4h, v0\.4h, v0\.h\[3\]
+ *[0-9a-f]+: 0f70d800 sqrdmulh v0\.4h, v0\.4h, v0\.h\[7\]
+ *[0-9a-f]+: 0f80d000 sqrdmulh v0\.2s, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f80d01f sqrdmulh v31\.2s, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f80d3e0 sqrdmulh v0\.2s, v31\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 0f9fd000 sqrdmulh v0\.2s, v0\.2s, v31\.s\[0\]
+ *[0-9a-f]+: 0fa0d000 sqrdmulh v0\.2s, v0\.2s, v0\.s\[1\]
+ *[0-9a-f]+: 0fa0d800 sqrdmulh v0\.2s, v0\.2s, v0\.s\[3\]
+ *[0-9a-f]+: 4f40d000 sqrdmulh v0\.8h, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f40d01f sqrdmulh v31\.8h, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f40d3e0 sqrdmulh v0\.8h, v31\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 4f4fd000 sqrdmulh v0\.8h, v0\.8h, v15\.h\[0\]
+ *[0-9a-f]+: 4f50d000 sqrdmulh v0\.8h, v0\.8h, v0\.h\[1\]
+ *[0-9a-f]+: 4f70d000 sqrdmulh v0\.8h, v0\.8h, v0\.h\[3\]
+ *[0-9a-f]+: 4f70d800 sqrdmulh v0\.8h, v0\.8h, v0\.h\[7\]
+ *[0-9a-f]+: 4f80d000 sqrdmulh v0\.4s, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f80d01f sqrdmulh v31\.4s, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f80d3e0 sqrdmulh v0\.4s, v31\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 4f9fd000 sqrdmulh v0\.4s, v0\.4s, v31\.s\[0\]
+ *[0-9a-f]+: 4fa0d000 sqrdmulh v0\.4s, v0\.4s, v0\.s\[1\]
+ *[0-9a-f]+: 4fa0d800 sqrdmulh v0\.4s, v0\.4s, v0\.s\[3\]
+ *[0-9a-f]+: 2f400000 mla v0\.4h, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 2f40001f mla v31\.4h, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 2f4003e0 mla v0\.4h, v31\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 2f4f0000 mla v0\.4h, v0\.4h, v15\.h\[0\]
+ *[0-9a-f]+: 2f500000 mla v0\.4h, v0\.4h, v0\.h\[1\]
+ *[0-9a-f]+: 2f700000 mla v0\.4h, v0\.4h, v0\.h\[3\]
+ *[0-9a-f]+: 2f700800 mla v0\.4h, v0\.4h, v0\.h\[7\]
+ *[0-9a-f]+: 2f800000 mla v0\.2s, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 2f80001f mla v31\.2s, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 2f8003e0 mla v0\.2s, v31\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 2f9f0000 mla v0\.2s, v0\.2s, v31\.s\[0\]
+ *[0-9a-f]+: 2fa00000 mla v0\.2s, v0\.2s, v0\.s\[1\]
+ *[0-9a-f]+: 2fa00800 mla v0\.2s, v0\.2s, v0\.s\[3\]
+ *[0-9a-f]+: 6f400000 mla v0\.8h, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 6f40001f mla v31\.8h, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 6f4003e0 mla v0\.8h, v31\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 6f4f0000 mla v0\.8h, v0\.8h, v15\.h\[0\]
+ *[0-9a-f]+: 6f500000 mla v0\.8h, v0\.8h, v0\.h\[1\]
+ *[0-9a-f]+: 6f700000 mla v0\.8h, v0\.8h, v0\.h\[3\]
+ *[0-9a-f]+: 6f700800 mla v0\.8h, v0\.8h, v0\.h\[7\]
+ *[0-9a-f]+: 6f800000 mla v0\.4s, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 6f80001f mla v31\.4s, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 6f8003e0 mla v0\.4s, v31\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 6f9f0000 mla v0\.4s, v0\.4s, v31\.s\[0\]
+ *[0-9a-f]+: 6fa00000 mla v0\.4s, v0\.4s, v0\.s\[1\]
+ *[0-9a-f]+: 6fa00800 mla v0\.4s, v0\.4s, v0\.s\[3\]
+ *[0-9a-f]+: 2f402000 umlal v0\.4s, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 2f40201f umlal v31\.4s, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 2f4023e0 umlal v0\.4s, v31\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 2f4f2000 umlal v0\.4s, v0\.4h, v15\.h\[0\]
+ *[0-9a-f]+: 2f502000 umlal v0\.4s, v0\.4h, v0\.h\[1\]
+ *[0-9a-f]+: 2f702000 umlal v0\.4s, v0\.4h, v0\.h\[3\]
+ *[0-9a-f]+: 2f702800 umlal v0\.4s, v0\.4h, v0\.h\[7\]
+ *[0-9a-f]+: 2f802000 umlal v0\.2d, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 2f80201f umlal v31\.2d, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 2f8023e0 umlal v0\.2d, v31\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 2f9f2000 umlal v0\.2d, v0\.2s, v31\.s\[0\]
+ *[0-9a-f]+: 2fa02000 umlal v0\.2d, v0\.2s, v0\.s\[1\]
+ *[0-9a-f]+: 2fa02800 umlal v0\.2d, v0\.2s, v0\.s\[3\]
+ *[0-9a-f]+: 6f402000 umlal2 v0\.4s, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 6f40201f umlal2 v31\.4s, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 6f4023e0 umlal2 v0\.4s, v31\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 6f4f2000 umlal2 v0\.4s, v0\.8h, v15\.h\[0\]
+ *[0-9a-f]+: 6f502000 umlal2 v0\.4s, v0\.8h, v0\.h\[1\]
+ *[0-9a-f]+: 6f702000 umlal2 v0\.4s, v0\.8h, v0\.h\[3\]
+ *[0-9a-f]+: 6f702800 umlal2 v0\.4s, v0\.8h, v0\.h\[7\]
+ *[0-9a-f]+: 6f802000 umlal2 v0\.2d, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 6f80201f umlal2 v31\.2d, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 6f8023e0 umlal2 v0\.2d, v31\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 6f9f2000 umlal2 v0\.2d, v0\.4s, v31\.s\[0\]
+ *[0-9a-f]+: 6fa02000 umlal2 v0\.2d, v0\.4s, v0\.s\[1\]
+ *[0-9a-f]+: 6fa02800 umlal2 v0\.2d, v0\.4s, v0\.s\[3\]
+ *[0-9a-f]+: 2f404000 mls v0\.4h, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 2f40401f mls v31\.4h, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 2f4043e0 mls v0\.4h, v31\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 2f4f4000 mls v0\.4h, v0\.4h, v15\.h\[0\]
+ *[0-9a-f]+: 2f504000 mls v0\.4h, v0\.4h, v0\.h\[1\]
+ *[0-9a-f]+: 2f704000 mls v0\.4h, v0\.4h, v0\.h\[3\]
+ *[0-9a-f]+: 2f704800 mls v0\.4h, v0\.4h, v0\.h\[7\]
+ *[0-9a-f]+: 2f804000 mls v0\.2s, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 2f80401f mls v31\.2s, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 2f8043e0 mls v0\.2s, v31\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 2f9f4000 mls v0\.2s, v0\.2s, v31\.s\[0\]
+ *[0-9a-f]+: 2fa04000 mls v0\.2s, v0\.2s, v0\.s\[1\]
+ *[0-9a-f]+: 2fa04800 mls v0\.2s, v0\.2s, v0\.s\[3\]
+ *[0-9a-f]+: 6f404000 mls v0\.8h, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 6f40401f mls v31\.8h, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 6f4043e0 mls v0\.8h, v31\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 6f4f4000 mls v0\.8h, v0\.8h, v15\.h\[0\]
+ *[0-9a-f]+: 6f504000 mls v0\.8h, v0\.8h, v0\.h\[1\]
+ *[0-9a-f]+: 6f704000 mls v0\.8h, v0\.8h, v0\.h\[3\]
+ *[0-9a-f]+: 6f704800 mls v0\.8h, v0\.8h, v0\.h\[7\]
+ *[0-9a-f]+: 6f804000 mls v0\.4s, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 6f80401f mls v31\.4s, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 6f8043e0 mls v0\.4s, v31\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 6f9f4000 mls v0\.4s, v0\.4s, v31\.s\[0\]
+ *[0-9a-f]+: 6fa04000 mls v0\.4s, v0\.4s, v0\.s\[1\]
+ *[0-9a-f]+: 6fa04800 mls v0\.4s, v0\.4s, v0\.s\[3\]
+ *[0-9a-f]+: 2f406000 umlsl v0\.4s, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 2f40601f umlsl v31\.4s, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 2f4063e0 umlsl v0\.4s, v31\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 2f4f6000 umlsl v0\.4s, v0\.4h, v15\.h\[0\]
+ *[0-9a-f]+: 2f506000 umlsl v0\.4s, v0\.4h, v0\.h\[1\]
+ *[0-9a-f]+: 2f706000 umlsl v0\.4s, v0\.4h, v0\.h\[3\]
+ *[0-9a-f]+: 2f706800 umlsl v0\.4s, v0\.4h, v0\.h\[7\]
+ *[0-9a-f]+: 2f806000 umlsl v0\.2d, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 2f80601f umlsl v31\.2d, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 2f8063e0 umlsl v0\.2d, v31\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 2f9f6000 umlsl v0\.2d, v0\.2s, v31\.s\[0\]
+ *[0-9a-f]+: 2fa06000 umlsl v0\.2d, v0\.2s, v0\.s\[1\]
+ *[0-9a-f]+: 2fa06800 umlsl v0\.2d, v0\.2s, v0\.s\[3\]
+ *[0-9a-f]+: 6f406000 umlsl2 v0\.4s, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 6f40601f umlsl2 v31\.4s, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 6f4063e0 umlsl2 v0\.4s, v31\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 6f4f6000 umlsl2 v0\.4s, v0\.8h, v15\.h\[0\]
+ *[0-9a-f]+: 6f506000 umlsl2 v0\.4s, v0\.8h, v0\.h\[1\]
+ *[0-9a-f]+: 6f706000 umlsl2 v0\.4s, v0\.8h, v0\.h\[3\]
+ *[0-9a-f]+: 6f706800 umlsl2 v0\.4s, v0\.8h, v0\.h\[7\]
+ *[0-9a-f]+: 6f806000 umlsl2 v0\.2d, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 6f80601f umlsl2 v31\.2d, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 6f8063e0 umlsl2 v0\.2d, v31\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 6f9f6000 umlsl2 v0\.2d, v0\.4s, v31\.s\[0\]
+ *[0-9a-f]+: 6fa06000 umlsl2 v0\.2d, v0\.4s, v0\.s\[1\]
+ *[0-9a-f]+: 6fa06800 umlsl2 v0\.2d, v0\.4s, v0\.s\[3\]
+ *[0-9a-f]+: 2f40a000 umull v0\.4s, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 2f40a01f umull v31\.4s, v0\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 2f40a3e0 umull v0\.4s, v31\.4h, v0\.h\[0\]
+ *[0-9a-f]+: 2f4fa000 umull v0\.4s, v0\.4h, v15\.h\[0\]
+ *[0-9a-f]+: 2f50a000 umull v0\.4s, v0\.4h, v0\.h\[1\]
+ *[0-9a-f]+: 2f70a000 umull v0\.4s, v0\.4h, v0\.h\[3\]
+ *[0-9a-f]+: 2f70a800 umull v0\.4s, v0\.4h, v0\.h\[7\]
+ *[0-9a-f]+: 2f80a000 umull v0\.2d, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 2f80a01f umull v31\.2d, v0\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 2f80a3e0 umull v0\.2d, v31\.2s, v0\.s\[0\]
+ *[0-9a-f]+: 2f9fa000 umull v0\.2d, v0\.2s, v31\.s\[0\]
+ *[0-9a-f]+: 2fa0a000 umull v0\.2d, v0\.2s, v0\.s\[1\]
+ *[0-9a-f]+: 2fa0a800 umull v0\.2d, v0\.2s, v0\.s\[3\]
+ *[0-9a-f]+: 6f40a000 umull2 v0\.4s, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 6f40a01f umull2 v31\.4s, v0\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 6f40a3e0 umull2 v0\.4s, v31\.8h, v0\.h\[0\]
+ *[0-9a-f]+: 6f4fa000 umull2 v0\.4s, v0\.8h, v15\.h\[0\]
+ *[0-9a-f]+: 6f50a000 umull2 v0\.4s, v0\.8h, v0\.h\[1\]
+ *[0-9a-f]+: 6f70a000 umull2 v0\.4s, v0\.8h, v0\.h\[3\]
+ *[0-9a-f]+: 6f70a800 umull2 v0\.4s, v0\.8h, v0\.h\[7\]
+ *[0-9a-f]+: 6f80a000 umull2 v0\.2d, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 6f80a01f umull2 v31\.2d, v0\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 6f80a3e0 umull2 v0\.2d, v31\.4s, v0\.s\[0\]
+ *[0-9a-f]+: 6f9fa000 umull2 v0\.2d, v0\.4s, v31\.s\[0\]
+ *[0-9a-f]+: 6fa0a000 umull2 v0\.2d, v0\.4s, v0\.s\[1\]
+ *[0-9a-f]+: 6fa0a800 umull2 v0\.2d, v0\.4s, v0\.s\[3\]
diff --git a/gas/testsuite/gas/aarch64/advsimd-mul-element.s b/gas/testsuite/gas/aarch64/advsimd-mul-element.s
new file mode 100644
index 0000000..bcb0da3
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-mul-element.s
@@ -0,0 +1,377 @@
+ smlal v0.4s, v0.4h, v0.h[0]
+ smlal v31.4s, v0.4h, v0.h[0]
+ smlal v0.4s, v31.4h, v0.h[0]
+ smlal v0.4s, v0.4h, v15.h[0]
+ smlal v0.4s, v0.4h, v0.h[1]
+ smlal v0.4s, v0.4h, v0.h[3]
+ smlal v0.4s, v0.4h, v0.h[7]
+ smlal v0.2d, v0.2s, v0.s[0]
+ smlal v31.2d, v0.2s, v0.s[0]
+ smlal v0.2d, v31.2s, v0.s[0]
+ smlal v0.2d, v0.2s, v31.s[0]
+ smlal v0.2d, v0.2s, v0.s[1]
+ smlal v0.2d, v0.2s, v0.s[3]
+ smlal2 v0.4s, v0.8h, v0.h[0]
+ smlal2 v31.4s, v0.8h, v0.h[0]
+ smlal2 v0.4s, v31.8h, v0.h[0]
+ smlal2 v0.4s, v0.8h, v15.h[0]
+ smlal2 v0.4s, v0.8h, v0.h[1]
+ smlal2 v0.4s, v0.8h, v0.h[3]
+ smlal2 v0.4s, v0.8h, v0.h[7]
+ smlal2 v0.2d, v0.4s, v0.s[0]
+ smlal2 v31.2d, v0.4s, v0.s[0]
+ smlal2 v0.2d, v31.4s, v0.s[0]
+ smlal2 v0.2d, v0.4s, v31.s[0]
+ smlal2 v0.2d, v0.4s, v0.s[1]
+ smlal2 v0.2d, v0.4s, v0.s[3]
+
+ sqdmlal v0.4s, v0.4h, v0.h[0]
+ sqdmlal v31.4s, v0.4h, v0.h[0]
+ sqdmlal v0.4s, v31.4h, v0.h[0]
+ sqdmlal v0.4s, v0.4h, v15.h[0]
+ sqdmlal v0.4s, v0.4h, v0.h[1]
+ sqdmlal v0.4s, v0.4h, v0.h[3]
+ sqdmlal v0.4s, v0.4h, v0.h[7]
+ sqdmlal v0.2d, v0.2s, v0.s[0]
+ sqdmlal v31.2d, v0.2s, v0.s[0]
+ sqdmlal v0.2d, v31.2s, v0.s[0]
+ sqdmlal v0.2d, v0.2s, v31.s[0]
+ sqdmlal v0.2d, v0.2s, v0.s[1]
+ sqdmlal v0.2d, v0.2s, v0.s[3]
+ sqdmlal2 v0.4s, v0.8h, v0.h[0]
+ sqdmlal2 v31.4s, v0.8h, v0.h[0]
+ sqdmlal2 v0.4s, v31.8h, v0.h[0]
+ sqdmlal2 v0.4s, v0.8h, v15.h[0]
+ sqdmlal2 v0.4s, v0.8h, v0.h[1]
+ sqdmlal2 v0.4s, v0.8h, v0.h[3]
+ sqdmlal2 v0.4s, v0.8h, v0.h[7]
+ sqdmlal2 v0.2d, v0.4s, v0.s[0]
+ sqdmlal2 v31.2d, v0.4s, v0.s[0]
+ sqdmlal2 v0.2d, v31.4s, v0.s[0]
+ sqdmlal2 v0.2d, v0.4s, v31.s[0]
+ sqdmlal2 v0.2d, v0.4s, v0.s[1]
+ sqdmlal2 v0.2d, v0.4s, v0.s[3]
+
+ smlsl v0.4s, v0.4h, v0.h[0]
+ smlsl v31.4s, v0.4h, v0.h[0]
+ smlsl v0.4s, v31.4h, v0.h[0]
+ smlsl v0.4s, v0.4h, v15.h[0]
+ smlsl v0.4s, v0.4h, v0.h[1]
+ smlsl v0.4s, v0.4h, v0.h[3]
+ smlsl v0.4s, v0.4h, v0.h[7]
+ smlsl v0.2d, v0.2s, v0.s[0]
+ smlsl v31.2d, v0.2s, v0.s[0]
+ smlsl v0.2d, v31.2s, v0.s[0]
+ smlsl v0.2d, v0.2s, v31.s[0]
+ smlsl v0.2d, v0.2s, v0.s[1]
+ smlsl v0.2d, v0.2s, v0.s[3]
+ smlsl2 v0.4s, v0.8h, v0.h[0]
+ smlsl2 v31.4s, v0.8h, v0.h[0]
+ smlsl2 v0.4s, v31.8h, v0.h[0]
+ smlsl2 v0.4s, v0.8h, v15.h[0]
+ smlsl2 v0.4s, v0.8h, v0.h[1]
+ smlsl2 v0.4s, v0.8h, v0.h[3]
+ smlsl2 v0.4s, v0.8h, v0.h[7]
+ smlsl2 v0.2d, v0.4s, v0.s[0]
+ smlsl2 v31.2d, v0.4s, v0.s[0]
+ smlsl2 v0.2d, v31.4s, v0.s[0]
+ smlsl2 v0.2d, v0.4s, v31.s[0]
+ smlsl2 v0.2d, v0.4s, v0.s[1]
+ smlsl2 v0.2d, v0.4s, v0.s[3]
+
+ sqdmlsl v0.4s, v0.4h, v0.h[0]
+ sqdmlsl v31.4s, v0.4h, v0.h[0]
+ sqdmlsl v0.4s, v31.4h, v0.h[0]
+ sqdmlsl v0.4s, v0.4h, v15.h[0]
+ sqdmlsl v0.4s, v0.4h, v0.h[1]
+ sqdmlsl v0.4s, v0.4h, v0.h[3]
+ sqdmlsl v0.4s, v0.4h, v0.h[7]
+ sqdmlsl v0.2d, v0.2s, v0.s[0]
+ sqdmlsl v31.2d, v0.2s, v0.s[0]
+ sqdmlsl v0.2d, v31.2s, v0.s[0]
+ sqdmlsl v0.2d, v0.2s, v31.s[0]
+ sqdmlsl v0.2d, v0.2s, v0.s[1]
+ sqdmlsl v0.2d, v0.2s, v0.s[3]
+ sqdmlsl2 v0.4s, v0.8h, v0.h[0]
+ sqdmlsl2 v31.4s, v0.8h, v0.h[0]
+ sqdmlsl2 v0.4s, v31.8h, v0.h[0]
+ sqdmlsl2 v0.4s, v0.8h, v15.h[0]
+ sqdmlsl2 v0.4s, v0.8h, v0.h[1]
+ sqdmlsl2 v0.4s, v0.8h, v0.h[3]
+ sqdmlsl2 v0.4s, v0.8h, v0.h[7]
+ sqdmlsl2 v0.2d, v0.4s, v0.s[0]
+ sqdmlsl2 v31.2d, v0.4s, v0.s[0]
+ sqdmlsl2 v0.2d, v31.4s, v0.s[0]
+ sqdmlsl2 v0.2d, v0.4s, v31.s[0]
+ sqdmlsl2 v0.2d, v0.4s, v0.s[1]
+ sqdmlsl2 v0.2d, v0.4s, v0.s[3]
+
+ mul v0.4h, v0.4h, v0.h[0]
+ mul v31.4h, v0.4h, v0.h[0]
+ mul v0.4h, v31.4h, v0.h[0]
+ mul v0.4h, v0.4h, v15.h[0]
+ mul v0.4h, v0.4h, v0.h[1]
+ mul v0.4h, v0.4h, v0.h[3]
+ mul v0.4h, v0.4h, v0.h[7]
+ mul v0.2s, v0.2s, v0.s[0]
+ mul v31.2s, v0.2s, v0.s[0]
+ mul v0.2s, v31.2s, v0.s[0]
+ mul v0.2s, v0.2s, v31.s[0]
+ mul v0.2s, v0.2s, v0.s[1]
+ mul v0.2s, v0.2s, v0.s[3]
+ mul v0.8h, v0.8h, v0.h[0]
+ mul v31.8h, v0.8h, v0.h[0]
+ mul v0.8h, v31.8h, v0.h[0]
+ mul v0.8h, v0.8h, v15.h[0]
+ mul v0.8h, v0.8h, v0.h[1]
+ mul v0.8h, v0.8h, v0.h[3]
+ mul v0.8h, v0.8h, v0.h[7]
+ mul v0.4s, v0.4s, v0.s[0]
+ mul v31.4s, v0.4s, v0.s[0]
+ mul v0.4s, v31.4s, v0.s[0]
+ mul v0.4s, v0.4s, v31.s[0]
+ mul v0.4s, v0.4s, v0.s[1]
+ mul v0.4s, v0.4s, v0.s[3]
+
+ smull v0.4s, v0.4h, v0.h[0]
+ smull v31.4s, v0.4h, v0.h[0]
+ smull v0.4s, v31.4h, v0.h[0]
+ smull v0.4s, v0.4h, v15.h[0]
+ smull v0.4s, v0.4h, v0.h[1]
+ smull v0.4s, v0.4h, v0.h[3]
+ smull v0.4s, v0.4h, v0.h[7]
+ smull v0.2d, v0.2s, v0.s[0]
+ smull v31.2d, v0.2s, v0.s[0]
+ smull v0.2d, v31.2s, v0.s[0]
+ smull v0.2d, v0.2s, v31.s[0]
+ smull v0.2d, v0.2s, v0.s[1]
+ smull v0.2d, v0.2s, v0.s[3]
+ smull2 v0.4s, v0.8h, v0.h[0]
+ smull2 v31.4s, v0.8h, v0.h[0]
+ smull2 v0.4s, v31.8h, v0.h[0]
+ smull2 v0.4s, v0.8h, v15.h[0]
+ smull2 v0.4s, v0.8h, v0.h[1]
+ smull2 v0.4s, v0.8h, v0.h[3]
+ smull2 v0.4s, v0.8h, v0.h[7]
+ smull2 v0.2d, v0.4s, v0.s[0]
+ smull2 v31.2d, v0.4s, v0.s[0]
+ smull2 v0.2d, v31.4s, v0.s[0]
+ smull2 v0.2d, v0.4s, v31.s[0]
+ smull2 v0.2d, v0.4s, v0.s[1]
+ smull2 v0.2d, v0.4s, v0.s[3]
+
+ sqdmull v0.4s, v0.4h, v0.h[0]
+ sqdmull v31.4s, v0.4h, v0.h[0]
+ sqdmull v0.4s, v31.4h, v0.h[0]
+ sqdmull v0.4s, v0.4h, v15.h[0]
+ sqdmull v0.4s, v0.4h, v0.h[1]
+ sqdmull v0.4s, v0.4h, v0.h[3]
+ sqdmull v0.4s, v0.4h, v0.h[7]
+ sqdmull v0.2d, v0.2s, v0.s[0]
+ sqdmull v31.2d, v0.2s, v0.s[0]
+ sqdmull v0.2d, v31.2s, v0.s[0]
+ sqdmull v0.2d, v0.2s, v31.s[0]
+ sqdmull v0.2d, v0.2s, v0.s[1]
+ sqdmull v0.2d, v0.2s, v0.s[3]
+ sqdmull2 v0.4s, v0.8h, v0.h[0]
+ sqdmull2 v31.4s, v0.8h, v0.h[0]
+ sqdmull2 v0.4s, v31.8h, v0.h[0]
+ sqdmull2 v0.4s, v0.8h, v15.h[0]
+ sqdmull2 v0.4s, v0.8h, v0.h[1]
+ sqdmull2 v0.4s, v0.8h, v0.h[3]
+ sqdmull2 v0.4s, v0.8h, v0.h[7]
+ sqdmull2 v0.2d, v0.4s, v0.s[0]
+ sqdmull2 v31.2d, v0.4s, v0.s[0]
+ sqdmull2 v0.2d, v31.4s, v0.s[0]
+ sqdmull2 v0.2d, v0.4s, v31.s[0]
+ sqdmull2 v0.2d, v0.4s, v0.s[1]
+ sqdmull2 v0.2d, v0.4s, v0.s[3]
+
+ sqdmulh v0.4h, v0.4h, v0.h[0]
+ sqdmulh v31.4h, v0.4h, v0.h[0]
+ sqdmulh v0.4h, v31.4h, v0.h[0]
+ sqdmulh v0.4h, v0.4h, v15.h[0]
+ sqdmulh v0.4h, v0.4h, v0.h[1]
+ sqdmulh v0.4h, v0.4h, v0.h[3]
+ sqdmulh v0.4h, v0.4h, v0.h[7]
+ sqdmulh v0.2s, v0.2s, v0.s[0]
+ sqdmulh v31.2s, v0.2s, v0.s[0]
+ sqdmulh v0.2s, v31.2s, v0.s[0]
+ sqdmulh v0.2s, v0.2s, v31.s[0]
+ sqdmulh v0.2s, v0.2s, v0.s[1]
+ sqdmulh v0.2s, v0.2s, v0.s[3]
+ sqdmulh v0.8h, v0.8h, v0.h[0]
+ sqdmulh v31.8h, v0.8h, v0.h[0]
+ sqdmulh v0.8h, v31.8h, v0.h[0]
+ sqdmulh v0.8h, v0.8h, v15.h[0]
+ sqdmulh v0.8h, v0.8h, v0.h[1]
+ sqdmulh v0.8h, v0.8h, v0.h[3]
+ sqdmulh v0.8h, v0.8h, v0.h[7]
+ sqdmulh v0.4s, v0.4s, v0.s[0]
+ sqdmulh v31.4s, v0.4s, v0.s[0]
+ sqdmulh v0.4s, v31.4s, v0.s[0]
+ sqdmulh v0.4s, v0.4s, v31.s[0]
+ sqdmulh v0.4s, v0.4s, v0.s[1]
+ sqdmulh v0.4s, v0.4s, v0.s[3]
+
+ sqrdmulh v0.4h, v0.4h, v0.h[0]
+ sqrdmulh v31.4h, v0.4h, v0.h[0]
+ sqrdmulh v0.4h, v31.4h, v0.h[0]
+ sqrdmulh v0.4h, v0.4h, v15.h[0]
+ sqrdmulh v0.4h, v0.4h, v0.h[1]
+ sqrdmulh v0.4h, v0.4h, v0.h[3]
+ sqrdmulh v0.4h, v0.4h, v0.h[7]
+ sqrdmulh v0.2s, v0.2s, v0.s[0]
+ sqrdmulh v31.2s, v0.2s, v0.s[0]
+ sqrdmulh v0.2s, v31.2s, v0.s[0]
+ sqrdmulh v0.2s, v0.2s, v31.s[0]
+ sqrdmulh v0.2s, v0.2s, v0.s[1]
+ sqrdmulh v0.2s, v0.2s, v0.s[3]
+ sqrdmulh v0.8h, v0.8h, v0.h[0]
+ sqrdmulh v31.8h, v0.8h, v0.h[0]
+ sqrdmulh v0.8h, v31.8h, v0.h[0]
+ sqrdmulh v0.8h, v0.8h, v15.h[0]
+ sqrdmulh v0.8h, v0.8h, v0.h[1]
+ sqrdmulh v0.8h, v0.8h, v0.h[3]
+ sqrdmulh v0.8h, v0.8h, v0.h[7]
+ sqrdmulh v0.4s, v0.4s, v0.s[0]
+ sqrdmulh v31.4s, v0.4s, v0.s[0]
+ sqrdmulh v0.4s, v31.4s, v0.s[0]
+ sqrdmulh v0.4s, v0.4s, v31.s[0]
+ sqrdmulh v0.4s, v0.4s, v0.s[1]
+ sqrdmulh v0.4s, v0.4s, v0.s[3]
+
+ mla v0.4h, v0.4h, v0.h[0]
+ mla v31.4h, v0.4h, v0.h[0]
+ mla v0.4h, v31.4h, v0.h[0]
+ mla v0.4h, v0.4h, v15.h[0]
+ mla v0.4h, v0.4h, v0.h[1]
+ mla v0.4h, v0.4h, v0.h[3]
+ mla v0.4h, v0.4h, v0.h[7]
+ mla v0.2s, v0.2s, v0.s[0]
+ mla v31.2s, v0.2s, v0.s[0]
+ mla v0.2s, v31.2s, v0.s[0]
+ mla v0.2s, v0.2s, v31.s[0]
+ mla v0.2s, v0.2s, v0.s[1]
+ mla v0.2s, v0.2s, v0.s[3]
+ mla v0.8h, v0.8h, v0.h[0]
+ mla v31.8h, v0.8h, v0.h[0]
+ mla v0.8h, v31.8h, v0.h[0]
+ mla v0.8h, v0.8h, v15.h[0]
+ mla v0.8h, v0.8h, v0.h[1]
+ mla v0.8h, v0.8h, v0.h[3]
+ mla v0.8h, v0.8h, v0.h[7]
+ mla v0.4s, v0.4s, v0.s[0]
+ mla v31.4s, v0.4s, v0.s[0]
+ mla v0.4s, v31.4s, v0.s[0]
+ mla v0.4s, v0.4s, v31.s[0]
+ mla v0.4s, v0.4s, v0.s[1]
+ mla v0.4s, v0.4s, v0.s[3]
+
+ umlal v0.4s, v0.4h, v0.h[0]
+ umlal v31.4s, v0.4h, v0.h[0]
+ umlal v0.4s, v31.4h, v0.h[0]
+ umlal v0.4s, v0.4h, v15.h[0]
+ umlal v0.4s, v0.4h, v0.h[1]
+ umlal v0.4s, v0.4h, v0.h[3]
+ umlal v0.4s, v0.4h, v0.h[7]
+ umlal v0.2d, v0.2s, v0.s[0]
+ umlal v31.2d, v0.2s, v0.s[0]
+ umlal v0.2d, v31.2s, v0.s[0]
+ umlal v0.2d, v0.2s, v31.s[0]
+ umlal v0.2d, v0.2s, v0.s[1]
+ umlal v0.2d, v0.2s, v0.s[3]
+ umlal2 v0.4s, v0.8h, v0.h[0]
+ umlal2 v31.4s, v0.8h, v0.h[0]
+ umlal2 v0.4s, v31.8h, v0.h[0]
+ umlal2 v0.4s, v0.8h, v15.h[0]
+ umlal2 v0.4s, v0.8h, v0.h[1]
+ umlal2 v0.4s, v0.8h, v0.h[3]
+ umlal2 v0.4s, v0.8h, v0.h[7]
+ umlal2 v0.2d, v0.4s, v0.s[0]
+ umlal2 v31.2d, v0.4s, v0.s[0]
+ umlal2 v0.2d, v31.4s, v0.s[0]
+ umlal2 v0.2d, v0.4s, v31.s[0]
+ umlal2 v0.2d, v0.4s, v0.s[1]
+ umlal2 v0.2d, v0.4s, v0.s[3]
+
+ mls v0.4h, v0.4h, v0.h[0]
+ mls v31.4h, v0.4h, v0.h[0]
+ mls v0.4h, v31.4h, v0.h[0]
+ mls v0.4h, v0.4h, v15.h[0]
+ mls v0.4h, v0.4h, v0.h[1]
+ mls v0.4h, v0.4h, v0.h[3]
+ mls v0.4h, v0.4h, v0.h[7]
+ mls v0.2s, v0.2s, v0.s[0]
+ mls v31.2s, v0.2s, v0.s[0]
+ mls v0.2s, v31.2s, v0.s[0]
+ mls v0.2s, v0.2s, v31.s[0]
+ mls v0.2s, v0.2s, v0.s[1]
+ mls v0.2s, v0.2s, v0.s[3]
+ mls v0.8h, v0.8h, v0.h[0]
+ mls v31.8h, v0.8h, v0.h[0]
+ mls v0.8h, v31.8h, v0.h[0]
+ mls v0.8h, v0.8h, v15.h[0]
+ mls v0.8h, v0.8h, v0.h[1]
+ mls v0.8h, v0.8h, v0.h[3]
+ mls v0.8h, v0.8h, v0.h[7]
+ mls v0.4s, v0.4s, v0.s[0]
+ mls v31.4s, v0.4s, v0.s[0]
+ mls v0.4s, v31.4s, v0.s[0]
+ mls v0.4s, v0.4s, v31.s[0]
+ mls v0.4s, v0.4s, v0.s[1]
+ mls v0.4s, v0.4s, v0.s[3]
+
+ umlsl v0.4s, v0.4h, v0.h[0]
+ umlsl v31.4s, v0.4h, v0.h[0]
+ umlsl v0.4s, v31.4h, v0.h[0]
+ umlsl v0.4s, v0.4h, v15.h[0]
+ umlsl v0.4s, v0.4h, v0.h[1]
+ umlsl v0.4s, v0.4h, v0.h[3]
+ umlsl v0.4s, v0.4h, v0.h[7]
+ umlsl v0.2d, v0.2s, v0.s[0]
+ umlsl v31.2d, v0.2s, v0.s[0]
+ umlsl v0.2d, v31.2s, v0.s[0]
+ umlsl v0.2d, v0.2s, v31.s[0]
+ umlsl v0.2d, v0.2s, v0.s[1]
+ umlsl v0.2d, v0.2s, v0.s[3]
+ umlsl2 v0.4s, v0.8h, v0.h[0]
+ umlsl2 v31.4s, v0.8h, v0.h[0]
+ umlsl2 v0.4s, v31.8h, v0.h[0]
+ umlsl2 v0.4s, v0.8h, v15.h[0]
+ umlsl2 v0.4s, v0.8h, v0.h[1]
+ umlsl2 v0.4s, v0.8h, v0.h[3]
+ umlsl2 v0.4s, v0.8h, v0.h[7]
+ umlsl2 v0.2d, v0.4s, v0.s[0]
+ umlsl2 v31.2d, v0.4s, v0.s[0]
+ umlsl2 v0.2d, v31.4s, v0.s[0]
+ umlsl2 v0.2d, v0.4s, v31.s[0]
+ umlsl2 v0.2d, v0.4s, v0.s[1]
+ umlsl2 v0.2d, v0.4s, v0.s[3]
+
+ umull v0.4s, v0.4h, v0.h[0]
+ umull v31.4s, v0.4h, v0.h[0]
+ umull v0.4s, v31.4h, v0.h[0]
+ umull v0.4s, v0.4h, v15.h[0]
+ umull v0.4s, v0.4h, v0.h[1]
+ umull v0.4s, v0.4h, v0.h[3]
+ umull v0.4s, v0.4h, v0.h[7]
+ umull v0.2d, v0.2s, v0.s[0]
+ umull v31.2d, v0.2s, v0.s[0]
+ umull v0.2d, v31.2s, v0.s[0]
+ umull v0.2d, v0.2s, v31.s[0]
+ umull v0.2d, v0.2s, v0.s[1]
+ umull v0.2d, v0.2s, v0.s[3]
+ umull2 v0.4s, v0.8h, v0.h[0]
+ umull2 v31.4s, v0.8h, v0.h[0]
+ umull2 v0.4s, v31.8h, v0.h[0]
+ umull2 v0.4s, v0.8h, v15.h[0]
+ umull2 v0.4s, v0.8h, v0.h[1]
+ umull2 v0.4s, v0.8h, v0.h[3]
+ umull2 v0.4s, v0.8h, v0.h[7]
+ umull2 v0.2d, v0.4s, v0.s[0]
+ umull2 v31.2d, v0.4s, v0.s[0]
+ umull2 v0.2d, v31.4s, v0.s[0]
+ umull2 v0.2d, v0.4s, v31.s[0]
+ umull2 v0.2d, v0.4s, v0.s[1]
+ umull2 v0.2d, v0.4s, v0.s[3]
diff --git a/gas/testsuite/gas/aarch64/advsimd-permute.d b/gas/testsuite/gas/aarch64/advsimd-permute.d
new file mode 100644
index 0000000..a3a9487
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-permute.d
@@ -0,0 +1,251 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 2e000000 ext v0\.8b, v0\.8b, v0\.8b, #0
+ *[0-9a-f]+: 2e00001f ext v31\.8b, v0\.8b, v0\.8b, #0
+ *[0-9a-f]+: 2e0003e0 ext v0\.8b, v31\.8b, v0\.8b, #0
+ *[0-9a-f]+: 2e1f0000 ext v0\.8b, v0\.8b, v31\.8b, #0
+ *[0-9a-f]+: 2e003800 ext v0\.8b, v0\.8b, v0\.8b, #7
+ *[0-9a-f]+: 6e000000 ext v0\.16b, v0\.16b, v0\.16b, #0
+ *[0-9a-f]+: 6e00001f ext v31\.16b, v0\.16b, v0\.16b, #0
+ *[0-9a-f]+: 6e0003e0 ext v0\.16b, v31\.16b, v0\.16b, #0
+ *[0-9a-f]+: 6e1f0000 ext v0\.16b, v0\.16b, v31\.16b, #0
+ *[0-9a-f]+: 6e007800 ext v0\.16b, v0\.16b, v0\.16b, #15
+ *[0-9a-f]+: 0e001800 uzp1 v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e00181f uzp1 v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e001be0 uzp1 v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e1f1800 uzp1 v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e401800 uzp1 v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e40181f uzp1 v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e401be0 uzp1 v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e5f1800 uzp1 v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0e801800 uzp1 v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0e80181f uzp1 v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0e801be0 uzp1 v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0e9f1800 uzp1 v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e001800 uzp1 v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e00181f uzp1 v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e001be0 uzp1 v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e1f1800 uzp1 v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e401800 uzp1 v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e40181f uzp1 v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e401be0 uzp1 v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e5f1800 uzp1 v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4e801800 uzp1 v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4e80181f uzp1 v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4e801be0 uzp1 v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4e9f1800 uzp1 v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ec01800 uzp1 v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ec0181f uzp1 v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ec01be0 uzp1 v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 4edf1800 uzp1 v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 0e002800 trn1 v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e00281f trn1 v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e002be0 trn1 v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e1f2800 trn1 v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e402800 trn1 v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e40281f trn1 v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e402be0 trn1 v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e5f2800 trn1 v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0e802800 trn1 v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0e80281f trn1 v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0e802be0 trn1 v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0e9f2800 trn1 v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e002800 trn1 v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e00281f trn1 v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e002be0 trn1 v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e1f2800 trn1 v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e402800 trn1 v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e40281f trn1 v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e402be0 trn1 v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e5f2800 trn1 v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4e802800 trn1 v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4e80281f trn1 v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4e802be0 trn1 v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4e9f2800 trn1 v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ec02800 trn1 v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ec0281f trn1 v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ec02be0 trn1 v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 4edf2800 trn1 v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 0e003800 zip1 v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e00381f zip1 v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e003be0 zip1 v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e1f3800 zip1 v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e403800 zip1 v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e40381f zip1 v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e403be0 zip1 v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e5f3800 zip1 v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0e803800 zip1 v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0e80381f zip1 v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0e803be0 zip1 v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0e9f3800 zip1 v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e003800 zip1 v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e00381f zip1 v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e003be0 zip1 v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e1f3800 zip1 v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e403800 zip1 v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e40381f zip1 v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e403be0 zip1 v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e5f3800 zip1 v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4e803800 zip1 v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4e80381f zip1 v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4e803be0 zip1 v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4e9f3800 zip1 v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ec03800 zip1 v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ec0381f zip1 v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ec03be0 zip1 v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 4edf3800 zip1 v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 0e005800 uzp2 v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e00581f uzp2 v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e005be0 uzp2 v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e1f5800 uzp2 v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e405800 uzp2 v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e40581f uzp2 v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e405be0 uzp2 v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e5f5800 uzp2 v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0e805800 uzp2 v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0e80581f uzp2 v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0e805be0 uzp2 v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0e9f5800 uzp2 v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e005800 uzp2 v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e00581f uzp2 v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e005be0 uzp2 v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e1f5800 uzp2 v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e405800 uzp2 v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e40581f uzp2 v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e405be0 uzp2 v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e5f5800 uzp2 v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4e805800 uzp2 v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4e80581f uzp2 v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4e805be0 uzp2 v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4e9f5800 uzp2 v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ec05800 uzp2 v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ec0581f uzp2 v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ec05be0 uzp2 v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 4edf5800 uzp2 v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 0e006800 trn2 v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e00681f trn2 v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e006be0 trn2 v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e1f6800 trn2 v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e406800 trn2 v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e40681f trn2 v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e406be0 trn2 v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e5f6800 trn2 v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0e806800 trn2 v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0e80681f trn2 v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0e806be0 trn2 v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0e9f6800 trn2 v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e006800 trn2 v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e00681f trn2 v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e006be0 trn2 v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e1f6800 trn2 v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e406800 trn2 v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e40681f trn2 v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e406be0 trn2 v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e5f6800 trn2 v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4e806800 trn2 v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4e80681f trn2 v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4e806be0 trn2 v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4e9f6800 trn2 v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ec06800 trn2 v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ec0681f trn2 v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ec06be0 trn2 v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 4edf6800 trn2 v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 0e007800 zip2 v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e00781f zip2 v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e007be0 zip2 v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e1f7800 zip2 v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e407800 zip2 v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e40781f zip2 v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e407be0 zip2 v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e5f7800 zip2 v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0e807800 zip2 v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0e80781f zip2 v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0e807be0 zip2 v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0e9f7800 zip2 v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e007800 zip2 v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e00781f zip2 v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e007be0 zip2 v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e1f7800 zip2 v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e407800 zip2 v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e40781f zip2 v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e407be0 zip2 v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e5f7800 zip2 v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4e807800 zip2 v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4e80781f zip2 v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4e807be0 zip2 v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4e9f7800 zip2 v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ec07800 zip2 v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ec0781f zip2 v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ec07be0 zip2 v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 4edf7800 zip2 v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 0e000000 tbl v0\.8b, {v0\.16b}, v0\.8b
+ *[0-9a-f]+: 0e00001f tbl v31\.8b, {v0\.16b}, v0\.8b
+ *[0-9a-f]+: 0e0003e0 tbl v0\.8b, {v31\.16b}, v0\.8b
+ *[0-9a-f]+: 0e1f0000 tbl v0\.8b, {v0\.16b}, v31\.8b
+ *[0-9a-f]+: 4e000000 tbl v0\.16b, {v0\.16b}, v0\.16b
+ *[0-9a-f]+: 4e00001f tbl v31\.16b, {v0\.16b}, v0\.16b
+ *[0-9a-f]+: 4e0003e0 tbl v0\.16b, {v31\.16b}, v0\.16b
+ *[0-9a-f]+: 4e1f0000 tbl v0\.16b, {v0\.16b}, v31\.16b
+ *[0-9a-f]+: 0e002000 tbl v0\.8b, {v0\.16b-v1\.16b}, v0\.8b
+ *[0-9a-f]+: 0e00201f tbl v31\.8b, {v0\.16b-v1\.16b}, v0\.8b
+ *[0-9a-f]+: 0e0023e0 tbl v0\.8b, {v31\.16b-v0\.16b}, v0\.8b
+ *[0-9a-f]+: 0e1f2000 tbl v0\.8b, {v0\.16b-v1\.16b}, v31\.8b
+ *[0-9a-f]+: 4e002000 tbl v0\.16b, {v0\.16b-v1\.16b}, v0\.16b
+ *[0-9a-f]+: 4e00201f tbl v31\.16b, {v0\.16b-v1\.16b}, v0\.16b
+ *[0-9a-f]+: 4e0023e0 tbl v0\.16b, {v31\.16b-v0\.16b}, v0\.16b
+ *[0-9a-f]+: 4e1f2000 tbl v0\.16b, {v0\.16b-v1\.16b}, v31\.16b
+ *[0-9a-f]+: 0e004000 tbl v0\.8b, {v0\.16b-v2\.16b}, v0\.8b
+ *[0-9a-f]+: 0e00401f tbl v31\.8b, {v0\.16b-v2\.16b}, v0\.8b
+ *[0-9a-f]+: 0e0043e0 tbl v0\.8b, {v31\.16b-v1\.16b}, v0\.8b
+ *[0-9a-f]+: 0e1f4000 tbl v0\.8b, {v0\.16b-v2\.16b}, v31\.8b
+ *[0-9a-f]+: 4e004000 tbl v0\.16b, {v0\.16b-v2\.16b}, v0\.16b
+ *[0-9a-f]+: 4e00401f tbl v31\.16b, {v0\.16b-v2\.16b}, v0\.16b
+ *[0-9a-f]+: 4e0043e0 tbl v0\.16b, {v31\.16b-v1\.16b}, v0\.16b
+ *[0-9a-f]+: 4e1f4000 tbl v0\.16b, {v0\.16b-v2\.16b}, v31\.16b
+ *[0-9a-f]+: 0e006000 tbl v0\.8b, {v0\.16b-v3\.16b}, v0\.8b
+ *[0-9a-f]+: 0e00601f tbl v31\.8b, {v0\.16b-v3\.16b}, v0\.8b
+ *[0-9a-f]+: 0e0063e0 tbl v0\.8b, {v31\.16b-v2\.16b}, v0\.8b
+ *[0-9a-f]+: 0e1f6000 tbl v0\.8b, {v0\.16b-v3\.16b}, v31\.8b
+ *[0-9a-f]+: 4e006000 tbl v0\.16b, {v0\.16b-v3\.16b}, v0\.16b
+ *[0-9a-f]+: 4e00601f tbl v31\.16b, {v0\.16b-v3\.16b}, v0\.16b
+ *[0-9a-f]+: 4e0063e0 tbl v0\.16b, {v31\.16b-v2\.16b}, v0\.16b
+ *[0-9a-f]+: 4e1f6000 tbl v0\.16b, {v0\.16b-v3\.16b}, v31\.16b
+ *[0-9a-f]+: 0e001000 tbx v0\.8b, {v0\.16b}, v0\.8b
+ *[0-9a-f]+: 0e00101f tbx v31\.8b, {v0\.16b}, v0\.8b
+ *[0-9a-f]+: 0e0013e0 tbx v0\.8b, {v31\.16b}, v0\.8b
+ *[0-9a-f]+: 0e1f1000 tbx v0\.8b, {v0\.16b}, v31\.8b
+ *[0-9a-f]+: 4e001000 tbx v0\.16b, {v0\.16b}, v0\.16b
+ *[0-9a-f]+: 4e00101f tbx v31\.16b, {v0\.16b}, v0\.16b
+ *[0-9a-f]+: 4e0013e0 tbx v0\.16b, {v31\.16b}, v0\.16b
+ *[0-9a-f]+: 4e1f1000 tbx v0\.16b, {v0\.16b}, v31\.16b
+ *[0-9a-f]+: 0e003000 tbx v0\.8b, {v0\.16b-v1\.16b}, v0\.8b
+ *[0-9a-f]+: 0e00301f tbx v31\.8b, {v0\.16b-v1\.16b}, v0\.8b
+ *[0-9a-f]+: 0e0033e0 tbx v0\.8b, {v31\.16b-v0\.16b}, v0\.8b
+ *[0-9a-f]+: 0e1f3000 tbx v0\.8b, {v0\.16b-v1\.16b}, v31\.8b
+ *[0-9a-f]+: 4e003000 tbx v0\.16b, {v0\.16b-v1\.16b}, v0\.16b
+ *[0-9a-f]+: 4e00301f tbx v31\.16b, {v0\.16b-v1\.16b}, v0\.16b
+ *[0-9a-f]+: 4e0033e0 tbx v0\.16b, {v31\.16b-v0\.16b}, v0\.16b
+ *[0-9a-f]+: 4e1f3000 tbx v0\.16b, {v0\.16b-v1\.16b}, v31\.16b
+ *[0-9a-f]+: 0e005000 tbx v0\.8b, {v0\.16b-v2\.16b}, v0\.8b
+ *[0-9a-f]+: 0e00501f tbx v31\.8b, {v0\.16b-v2\.16b}, v0\.8b
+ *[0-9a-f]+: 0e0053e0 tbx v0\.8b, {v31\.16b-v1\.16b}, v0\.8b
+ *[0-9a-f]+: 0e1f5000 tbx v0\.8b, {v0\.16b-v2\.16b}, v31\.8b
+ *[0-9a-f]+: 4e005000 tbx v0\.16b, {v0\.16b-v2\.16b}, v0\.16b
+ *[0-9a-f]+: 4e00501f tbx v31\.16b, {v0\.16b-v2\.16b}, v0\.16b
+ *[0-9a-f]+: 4e0053e0 tbx v0\.16b, {v31\.16b-v1\.16b}, v0\.16b
+ *[0-9a-f]+: 4e1f5000 tbx v0\.16b, {v0\.16b-v2\.16b}, v31\.16b
+ *[0-9a-f]+: 0e007000 tbx v0\.8b, {v0\.16b-v3\.16b}, v0\.8b
+ *[0-9a-f]+: 0e00701f tbx v31\.8b, {v0\.16b-v3\.16b}, v0\.8b
+ *[0-9a-f]+: 0e0073e0 tbx v0\.8b, {v31\.16b-v2\.16b}, v0\.8b
+ *[0-9a-f]+: 0e1f7000 tbx v0\.8b, {v0\.16b-v3\.16b}, v31\.8b
+ *[0-9a-f]+: 4e007000 tbx v0\.16b, {v0\.16b-v3\.16b}, v0\.16b
+ *[0-9a-f]+: 4e00701f tbx v31\.16b, {v0\.16b-v3\.16b}, v0\.16b
+ *[0-9a-f]+: 4e0073e0 tbx v0\.16b, {v31\.16b-v2\.16b}, v0\.16b
+ *[0-9a-f]+: 4e1f7000 tbx v0\.16b, {v0\.16b-v3\.16b}, v31\.16b
diff --git a/gas/testsuite/gas/aarch64/advsimd-permute.s b/gas/testsuite/gas/aarch64/advsimd-permute.s
new file mode 100644
index 0000000..d4b0714
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-permute.s
@@ -0,0 +1,250 @@
+ ext v0.8b, v0.8b, v0.8b, #0
+ ext v31.8b, v0.8b, v0.8b, #0
+ ext v0.8b, v31.8b, v0.8b, #0
+ ext v0.8b, v0.8b, v31.8b, #0
+ ext v0.8b, v0.8b, v0.8b, #7
+ ext v0.16b, v0.16b, v0.16b, #0
+ ext v31.16b, v0.16b, v0.16b, #0
+ ext v0.16b, v31.16b, v0.16b, #0
+ ext v0.16b, v0.16b, v31.16b, #0
+ ext v0.16b, v0.16b, v0.16b, #15
+
+ uzp1 v0.8b, v0.8b, v0.8b
+ uzp1 v31.8b, v0.8b, v0.8b
+ uzp1 v0.8b, v31.8b, v0.8b
+ uzp1 v0.8b, v0.8b, v31.8b
+ uzp1 v0.4h, v0.4h, v0.4h
+ uzp1 v31.4h, v0.4h, v0.4h
+ uzp1 v0.4h, v31.4h, v0.4h
+ uzp1 v0.4h, v0.4h, v31.4h
+ uzp1 v0.2s, v0.2s, v0.2s
+ uzp1 v31.2s, v0.2s, v0.2s
+ uzp1 v0.2s, v31.2s, v0.2s
+ uzp1 v0.2s, v0.2s, v31.2s
+ uzp1 v0.16b, v0.16b, v0.16b
+ uzp1 v31.16b, v0.16b, v0.16b
+ uzp1 v0.16b, v31.16b, v0.16b
+ uzp1 v0.16b, v0.16b, v31.16b
+ uzp1 v0.8h, v0.8h, v0.8h
+ uzp1 v31.8h, v0.8h, v0.8h
+ uzp1 v0.8h, v31.8h, v0.8h
+ uzp1 v0.8h, v0.8h, v31.8h
+ uzp1 v0.4s, v0.4s, v0.4s
+ uzp1 v31.4s, v0.4s, v0.4s
+ uzp1 v0.4s, v31.4s, v0.4s
+ uzp1 v0.4s, v0.4s, v31.4s
+ uzp1 v0.2d, v0.2d, v0.2d
+ uzp1 v31.2d, v0.2d, v0.2d
+ uzp1 v0.2d, v31.2d, v0.2d
+ uzp1 v0.2d, v0.2d, v31.2d
+
+ trn1 v0.8b, v0.8b, v0.8b
+ trn1 v31.8b, v0.8b, v0.8b
+ trn1 v0.8b, v31.8b, v0.8b
+ trn1 v0.8b, v0.8b, v31.8b
+ trn1 v0.4h, v0.4h, v0.4h
+ trn1 v31.4h, v0.4h, v0.4h
+ trn1 v0.4h, v31.4h, v0.4h
+ trn1 v0.4h, v0.4h, v31.4h
+ trn1 v0.2s, v0.2s, v0.2s
+ trn1 v31.2s, v0.2s, v0.2s
+ trn1 v0.2s, v31.2s, v0.2s
+ trn1 v0.2s, v0.2s, v31.2s
+ trn1 v0.16b, v0.16b, v0.16b
+ trn1 v31.16b, v0.16b, v0.16b
+ trn1 v0.16b, v31.16b, v0.16b
+ trn1 v0.16b, v0.16b, v31.16b
+ trn1 v0.8h, v0.8h, v0.8h
+ trn1 v31.8h, v0.8h, v0.8h
+ trn1 v0.8h, v31.8h, v0.8h
+ trn1 v0.8h, v0.8h, v31.8h
+ trn1 v0.4s, v0.4s, v0.4s
+ trn1 v31.4s, v0.4s, v0.4s
+ trn1 v0.4s, v31.4s, v0.4s
+ trn1 v0.4s, v0.4s, v31.4s
+ trn1 v0.2d, v0.2d, v0.2d
+ trn1 v31.2d, v0.2d, v0.2d
+ trn1 v0.2d, v31.2d, v0.2d
+ trn1 v0.2d, v0.2d, v31.2d
+
+ zip1 v0.8b, v0.8b, v0.8b
+ zip1 v31.8b, v0.8b, v0.8b
+ zip1 v0.8b, v31.8b, v0.8b
+ zip1 v0.8b, v0.8b, v31.8b
+ zip1 v0.4h, v0.4h, v0.4h
+ zip1 v31.4h, v0.4h, v0.4h
+ zip1 v0.4h, v31.4h, v0.4h
+ zip1 v0.4h, v0.4h, v31.4h
+ zip1 v0.2s, v0.2s, v0.2s
+ zip1 v31.2s, v0.2s, v0.2s
+ zip1 v0.2s, v31.2s, v0.2s
+ zip1 v0.2s, v0.2s, v31.2s
+ zip1 v0.16b, v0.16b, v0.16b
+ zip1 v31.16b, v0.16b, v0.16b
+ zip1 v0.16b, v31.16b, v0.16b
+ zip1 v0.16b, v0.16b, v31.16b
+ zip1 v0.8h, v0.8h, v0.8h
+ zip1 v31.8h, v0.8h, v0.8h
+ zip1 v0.8h, v31.8h, v0.8h
+ zip1 v0.8h, v0.8h, v31.8h
+ zip1 v0.4s, v0.4s, v0.4s
+ zip1 v31.4s, v0.4s, v0.4s
+ zip1 v0.4s, v31.4s, v0.4s
+ zip1 v0.4s, v0.4s, v31.4s
+ zip1 v0.2d, v0.2d, v0.2d
+ zip1 v31.2d, v0.2d, v0.2d
+ zip1 v0.2d, v31.2d, v0.2d
+ zip1 v0.2d, v0.2d, v31.2d
+
+ uzp2 v0.8b, v0.8b, v0.8b
+ uzp2 v31.8b, v0.8b, v0.8b
+ uzp2 v0.8b, v31.8b, v0.8b
+ uzp2 v0.8b, v0.8b, v31.8b
+ uzp2 v0.4h, v0.4h, v0.4h
+ uzp2 v31.4h, v0.4h, v0.4h
+ uzp2 v0.4h, v31.4h, v0.4h
+ uzp2 v0.4h, v0.4h, v31.4h
+ uzp2 v0.2s, v0.2s, v0.2s
+ uzp2 v31.2s, v0.2s, v0.2s
+ uzp2 v0.2s, v31.2s, v0.2s
+ uzp2 v0.2s, v0.2s, v31.2s
+ uzp2 v0.16b, v0.16b, v0.16b
+ uzp2 v31.16b, v0.16b, v0.16b
+ uzp2 v0.16b, v31.16b, v0.16b
+ uzp2 v0.16b, v0.16b, v31.16b
+ uzp2 v0.8h, v0.8h, v0.8h
+ uzp2 v31.8h, v0.8h, v0.8h
+ uzp2 v0.8h, v31.8h, v0.8h
+ uzp2 v0.8h, v0.8h, v31.8h
+ uzp2 v0.4s, v0.4s, v0.4s
+ uzp2 v31.4s, v0.4s, v0.4s
+ uzp2 v0.4s, v31.4s, v0.4s
+ uzp2 v0.4s, v0.4s, v31.4s
+ uzp2 v0.2d, v0.2d, v0.2d
+ uzp2 v31.2d, v0.2d, v0.2d
+ uzp2 v0.2d, v31.2d, v0.2d
+ uzp2 v0.2d, v0.2d, v31.2d
+
+ trn2 v0.8b, v0.8b, v0.8b
+ trn2 v31.8b, v0.8b, v0.8b
+ trn2 v0.8b, v31.8b, v0.8b
+ trn2 v0.8b, v0.8b, v31.8b
+ trn2 v0.4h, v0.4h, v0.4h
+ trn2 v31.4h, v0.4h, v0.4h
+ trn2 v0.4h, v31.4h, v0.4h
+ trn2 v0.4h, v0.4h, v31.4h
+ trn2 v0.2s, v0.2s, v0.2s
+ trn2 v31.2s, v0.2s, v0.2s
+ trn2 v0.2s, v31.2s, v0.2s
+ trn2 v0.2s, v0.2s, v31.2s
+ trn2 v0.16b, v0.16b, v0.16b
+ trn2 v31.16b, v0.16b, v0.16b
+ trn2 v0.16b, v31.16b, v0.16b
+ trn2 v0.16b, v0.16b, v31.16b
+ trn2 v0.8h, v0.8h, v0.8h
+ trn2 v31.8h, v0.8h, v0.8h
+ trn2 v0.8h, v31.8h, v0.8h
+ trn2 v0.8h, v0.8h, v31.8h
+ trn2 v0.4s, v0.4s, v0.4s
+ trn2 v31.4s, v0.4s, v0.4s
+ trn2 v0.4s, v31.4s, v0.4s
+ trn2 v0.4s, v0.4s, v31.4s
+ trn2 v0.2d, v0.2d, v0.2d
+ trn2 v31.2d, v0.2d, v0.2d
+ trn2 v0.2d, v31.2d, v0.2d
+ trn2 v0.2d, v0.2d, v31.2d
+
+ zip2 v0.8b, v0.8b, v0.8b
+ zip2 v31.8b, v0.8b, v0.8b
+ zip2 v0.8b, v31.8b, v0.8b
+ zip2 v0.8b, v0.8b, v31.8b
+ zip2 v0.4h, v0.4h, v0.4h
+ zip2 v31.4h, v0.4h, v0.4h
+ zip2 v0.4h, v31.4h, v0.4h
+ zip2 v0.4h, v0.4h, v31.4h
+ zip2 v0.2s, v0.2s, v0.2s
+ zip2 v31.2s, v0.2s, v0.2s
+ zip2 v0.2s, v31.2s, v0.2s
+ zip2 v0.2s, v0.2s, v31.2s
+ zip2 v0.16b, v0.16b, v0.16b
+ zip2 v31.16b, v0.16b, v0.16b
+ zip2 v0.16b, v31.16b, v0.16b
+ zip2 v0.16b, v0.16b, v31.16b
+ zip2 v0.8h, v0.8h, v0.8h
+ zip2 v31.8h, v0.8h, v0.8h
+ zip2 v0.8h, v31.8h, v0.8h
+ zip2 v0.8h, v0.8h, v31.8h
+ zip2 v0.4s, v0.4s, v0.4s
+ zip2 v31.4s, v0.4s, v0.4s
+ zip2 v0.4s, v31.4s, v0.4s
+ zip2 v0.4s, v0.4s, v31.4s
+ zip2 v0.2d, v0.2d, v0.2d
+ zip2 v31.2d, v0.2d, v0.2d
+ zip2 v0.2d, v31.2d, v0.2d
+ zip2 v0.2d, v0.2d, v31.2d
+
+ tbl v0.8b, {v0.16b}, v0.8b
+ tbl v31.8b, {v0.16b}, v0.8b
+ tbl v0.8b, {v31.16b}, v0.8b
+ tbl v0.8b, {v0.16b}, v31.8b
+ tbl v0.16b, {v0.16b}, v0.16b
+ tbl v31.16b, {v0.16b}, v0.16b
+ tbl v0.16b, {v31.16b}, v0.16b
+ tbl v0.16b, {v0.16b}, v31.16b
+ tbl v0.8b, {v0.16b, v1.16b}, v0.8b
+ tbl v31.8b, {v0.16b, v1.16b}, v0.8b
+ tbl v0.8b, {v31.16b, v0.16b}, v0.8b
+ tbl v0.8b, {v0.16b, v1.16b}, v31.8b
+ tbl v0.16b, {v0.16b, v1.16b}, v0.16b
+ tbl v31.16b, {v0.16b, v1.16b}, v0.16b
+ tbl v0.16b, {v31.16b, v0.16b}, v0.16b
+ tbl v0.16b, {v0.16b, v1.16b}, v31.16b
+ tbl v0.8b, {v0.16b, v1.16b, v2.16b}, v0.8b
+ tbl v31.8b, {v0.16b, v1.16b, v2.16b}, v0.8b
+ tbl v0.8b, {v31.16b, v0.16b, v1.16b}, v0.8b
+ tbl v0.8b, {v0.16b, v1.16b, v2.16b}, v31.8b
+ tbl v0.16b, {v0.16b, v1.16b, v2.16b}, v0.16b
+ tbl v31.16b, {v0.16b, v1.16b, v2.16b}, v0.16b
+ tbl v0.16b, {v31.16b, v0.16b, v1.16b}, v0.16b
+ tbl v0.16b, {v0.16b, v1.16b, v2.16b}, v31.16b
+ tbl v0.8b, {v0.16b, v1.16b, v2.16b, v3.16b}, v0.8b
+ tbl v31.8b, {v0.16b, v1.16b, v2.16b, v3.16b}, v0.8b
+ tbl v0.8b, {v31.16b, v0.16b, v1.16b, v2.16b}, v0.8b
+ tbl v0.8b, {v0.16b, v1.16b, v2.16b, v3.16b}, v31.8b
+ tbl v0.16b, {v0.16b, v1.16b, v2.16b, v3.16b}, v0.16b
+ tbl v31.16b, {v0.16b, v1.16b, v2.16b, v3.16b}, v0.16b
+ tbl v0.16b, {v31.16b, v0.16b, v1.16b, v2.16b}, v0.16b
+ tbl v0.16b, {v0.16b, v1.16b, v2.16b, v3.16b}, v31.16b
+
+ tbx v0.8b, {v0.16b}, v0.8b
+ tbx v31.8b, {v0.16b}, v0.8b
+ tbx v0.8b, {v31.16b}, v0.8b
+ tbx v0.8b, {v0.16b}, v31.8b
+ tbx v0.16b, {v0.16b}, v0.16b
+ tbx v31.16b, {v0.16b}, v0.16b
+ tbx v0.16b, {v31.16b}, v0.16b
+ tbx v0.16b, {v0.16b}, v31.16b
+ tbx v0.8b, {v0.16b, v1.16b}, v0.8b
+ tbx v31.8b, {v0.16b, v1.16b}, v0.8b
+ tbx v0.8b, {v31.16b, v0.16b}, v0.8b
+ tbx v0.8b, {v0.16b, v1.16b}, v31.8b
+ tbx v0.16b, {v0.16b, v1.16b}, v0.16b
+ tbx v31.16b, {v0.16b, v1.16b}, v0.16b
+ tbx v0.16b, {v31.16b, v0.16b}, v0.16b
+ tbx v0.16b, {v0.16b, v1.16b}, v31.16b
+ tbx v0.8b, {v0.16b, v1.16b, v2.16b}, v0.8b
+ tbx v31.8b, {v0.16b, v1.16b, v2.16b}, v0.8b
+ tbx v0.8b, {v31.16b, v0.16b, v1.16b}, v0.8b
+ tbx v0.8b, {v0.16b, v1.16b, v2.16b}, v31.8b
+ tbx v0.16b, {v0.16b, v1.16b, v2.16b}, v0.16b
+ tbx v31.16b, {v0.16b, v1.16b, v2.16b}, v0.16b
+ tbx v0.16b, {v31.16b, v0.16b, v1.16b}, v0.16b
+ tbx v0.16b, {v0.16b, v1.16b, v2.16b}, v31.16b
+ tbx v0.8b, {v0.16b, v1.16b, v2.16b, v3.16b}, v0.8b
+ tbx v31.8b, {v0.16b, v1.16b, v2.16b, v3.16b}, v0.8b
+ tbx v0.8b, {v31.16b, v0.16b, v1.16b, v2.16b}, v0.8b
+ tbx v0.8b, {v0.16b, v1.16b, v2.16b, v3.16b}, v31.8b
+ tbx v0.16b, {v0.16b, v1.16b, v2.16b, v3.16b}, v0.16b
+ tbx v31.16b, {v0.16b, v1.16b, v2.16b, v3.16b}, v0.16b
+ tbx v0.16b, {v31.16b, v0.16b, v1.16b, v2.16b}, v0.16b
+ tbx v0.16b, {v0.16b, v1.16b, v2.16b, v3.16b}, v31.16b
diff --git a/gas/testsuite/gas/aarch64/advsimd-scalar-doubling-mul.d b/gas/testsuite/gas/aarch64/advsimd-scalar-doubling-mul.d
new file mode 100644
index 0000000..06b442e
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-scalar-doubling-mul.d
@@ -0,0 +1,98 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 5e609000 sqdmlal s0, h0, h0
+ *[0-9a-f]+: 5e60901f sqdmlal s31, h0, h0
+ *[0-9a-f]+: 5e6093e0 sqdmlal s0, h31, h0
+ *[0-9a-f]+: 5e7f9000 sqdmlal s0, h0, h31
+ *[0-9a-f]+: 5ea09000 sqdmlal d0, s0, s0
+ *[0-9a-f]+: 5ea0901f sqdmlal d31, s0, s0
+ *[0-9a-f]+: 5ea093e0 sqdmlal d0, s31, s0
+ *[0-9a-f]+: 5ebf9000 sqdmlal d0, s0, s31
+ *[0-9a-f]+: 5e60b000 sqdmlsl s0, h0, h0
+ *[0-9a-f]+: 5e60b01f sqdmlsl s31, h0, h0
+ *[0-9a-f]+: 5e60b3e0 sqdmlsl s0, h31, h0
+ *[0-9a-f]+: 5e7fb000 sqdmlsl s0, h0, h31
+ *[0-9a-f]+: 5ea0b000 sqdmlsl d0, s0, s0
+ *[0-9a-f]+: 5ea0b01f sqdmlsl d31, s0, s0
+ *[0-9a-f]+: 5ea0b3e0 sqdmlsl d0, s31, s0
+ *[0-9a-f]+: 5ebfb000 sqdmlsl d0, s0, s31
+ *[0-9a-f]+: 5e60d000 sqdmull s0, h0, h0
+ *[0-9a-f]+: 5e60d01f sqdmull s31, h0, h0
+ *[0-9a-f]+: 5e60d3e0 sqdmull s0, h31, h0
+ *[0-9a-f]+: 5e7fd000 sqdmull s0, h0, h31
+ *[0-9a-f]+: 5ea0d000 sqdmull d0, s0, s0
+ *[0-9a-f]+: 5ea0d01f sqdmull d31, s0, s0
+ *[0-9a-f]+: 5ea0d3e0 sqdmull d0, s31, s0
+ *[0-9a-f]+: 5ebfd000 sqdmull d0, s0, s31
+ *[0-9a-f]+: 5f403000 sqdmlal s0, h0, v0\.h\[0\]
+ *[0-9a-f]+: 5f40301f sqdmlal s31, h0, v0\.h\[0\]
+ *[0-9a-f]+: 5f4033e0 sqdmlal s0, h31, v0\.h\[0\]
+ *[0-9a-f]+: 5f4f3000 sqdmlal s0, h0, v15\.h\[0\]
+ *[0-9a-f]+: 5f503000 sqdmlal s0, h0, v0\.h\[1\]
+ *[0-9a-f]+: 5f703000 sqdmlal s0, h0, v0\.h\[3\]
+ *[0-9a-f]+: 5f703800 sqdmlal s0, h0, v0\.h\[7\]
+ *[0-9a-f]+: 5f803000 sqdmlal d0, s0, v0\.s\[0\]
+ *[0-9a-f]+: 5f80301f sqdmlal d31, s0, v0\.s\[0\]
+ *[0-9a-f]+: 5f8033e0 sqdmlal d0, s31, v0\.s\[0\]
+ *[0-9a-f]+: 5f9f3000 sqdmlal d0, s0, v31\.s\[0\]
+ *[0-9a-f]+: 5fa03000 sqdmlal d0, s0, v0\.s\[1\]
+ *[0-9a-f]+: 5fa03800 sqdmlal d0, s0, v0\.s\[3\]
+ *[0-9a-f]+: 5f407000 sqdmlsl s0, h0, v0\.h\[0\]
+ *[0-9a-f]+: 5f40701f sqdmlsl s31, h0, v0\.h\[0\]
+ *[0-9a-f]+: 5f4073e0 sqdmlsl s0, h31, v0\.h\[0\]
+ *[0-9a-f]+: 5f4f7000 sqdmlsl s0, h0, v15\.h\[0\]
+ *[0-9a-f]+: 5f507000 sqdmlsl s0, h0, v0\.h\[1\]
+ *[0-9a-f]+: 5f707000 sqdmlsl s0, h0, v0\.h\[3\]
+ *[0-9a-f]+: 5f707800 sqdmlsl s0, h0, v0\.h\[7\]
+ *[0-9a-f]+: 5f807000 sqdmlsl d0, s0, v0\.s\[0\]
+ *[0-9a-f]+: 5f80701f sqdmlsl d31, s0, v0\.s\[0\]
+ *[0-9a-f]+: 5f8073e0 sqdmlsl d0, s31, v0\.s\[0\]
+ *[0-9a-f]+: 5f9f7000 sqdmlsl d0, s0, v31\.s\[0\]
+ *[0-9a-f]+: 5fa07000 sqdmlsl d0, s0, v0\.s\[1\]
+ *[0-9a-f]+: 5fa07800 sqdmlsl d0, s0, v0\.s\[3\]
+ *[0-9a-f]+: 5f40b000 sqdmull s0, h0, v0\.h\[0\]
+ *[0-9a-f]+: 5f40b01f sqdmull s31, h0, v0\.h\[0\]
+ *[0-9a-f]+: 5f40b3e0 sqdmull s0, h31, v0\.h\[0\]
+ *[0-9a-f]+: 5f4fb000 sqdmull s0, h0, v15\.h\[0\]
+ *[0-9a-f]+: 5f50b000 sqdmull s0, h0, v0\.h\[1\]
+ *[0-9a-f]+: 5f70b000 sqdmull s0, h0, v0\.h\[3\]
+ *[0-9a-f]+: 5f70b800 sqdmull s0, h0, v0\.h\[7\]
+ *[0-9a-f]+: 5f80b000 sqdmull d0, s0, v0\.s\[0\]
+ *[0-9a-f]+: 5f80b01f sqdmull d31, s0, v0\.s\[0\]
+ *[0-9a-f]+: 5f80b3e0 sqdmull d0, s31, v0\.s\[0\]
+ *[0-9a-f]+: 5f9fb000 sqdmull d0, s0, v31\.s\[0\]
+ *[0-9a-f]+: 5fa0b000 sqdmull d0, s0, v0\.s\[1\]
+ *[0-9a-f]+: 5fa0b800 sqdmull d0, s0, v0\.s\[3\]
+ *[0-9a-f]+: 5f40c000 sqdmulh h0, h0, v0\.h\[0\]
+ *[0-9a-f]+: 5f40c01f sqdmulh h31, h0, v0\.h\[0\]
+ *[0-9a-f]+: 5f40c3e0 sqdmulh h0, h31, v0\.h\[0\]
+ *[0-9a-f]+: 5f4fc000 sqdmulh h0, h0, v15\.h\[0\]
+ *[0-9a-f]+: 5f50c000 sqdmulh h0, h0, v0\.h\[1\]
+ *[0-9a-f]+: 5f70c000 sqdmulh h0, h0, v0\.h\[3\]
+ *[0-9a-f]+: 5f70c800 sqdmulh h0, h0, v0\.h\[7\]
+ *[0-9a-f]+: 5f80c000 sqdmulh s0, s0, v0\.s\[0\]
+ *[0-9a-f]+: 5f80c01f sqdmulh s31, s0, v0\.s\[0\]
+ *[0-9a-f]+: 5f80c3e0 sqdmulh s0, s31, v0\.s\[0\]
+ *[0-9a-f]+: 5f9fc000 sqdmulh s0, s0, v31\.s\[0\]
+ *[0-9a-f]+: 5fa0c000 sqdmulh s0, s0, v0\.s\[1\]
+ *[0-9a-f]+: 5fa0c800 sqdmulh s0, s0, v0\.s\[3\]
+ *[0-9a-f]+: 5f40d000 sqrdmulh h0, h0, v0\.h\[0\]
+ *[0-9a-f]+: 5f40d01f sqrdmulh h31, h0, v0\.h\[0\]
+ *[0-9a-f]+: 5f40d3e0 sqrdmulh h0, h31, v0\.h\[0\]
+ *[0-9a-f]+: 5f4fd000 sqrdmulh h0, h0, v15\.h\[0\]
+ *[0-9a-f]+: 5f50d000 sqrdmulh h0, h0, v0\.h\[1\]
+ *[0-9a-f]+: 5f70d000 sqrdmulh h0, h0, v0\.h\[3\]
+ *[0-9a-f]+: 5f70d800 sqrdmulh h0, h0, v0\.h\[7\]
+ *[0-9a-f]+: 5f80d000 sqrdmulh s0, s0, v0\.s\[0\]
+ *[0-9a-f]+: 5f80d01f sqrdmulh s31, s0, v0\.s\[0\]
+ *[0-9a-f]+: 5f80d3e0 sqrdmulh s0, s31, v0\.s\[0\]
+ *[0-9a-f]+: 5f9fd000 sqrdmulh s0, s0, v31\.s\[0\]
+ *[0-9a-f]+: 5fa0d000 sqrdmulh s0, s0, v0\.s\[1\]
+ *[0-9a-f]+: 5fa0d800 sqrdmulh s0, s0, v0\.s\[3\]
diff --git a/gas/testsuite/gas/aarch64/advsimd-scalar-doubling-mul.s b/gas/testsuite/gas/aarch64/advsimd-scalar-doubling-mul.s
new file mode 100644
index 0000000..c83f5b0
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-scalar-doubling-mul.s
@@ -0,0 +1,96 @@
+ sqdmlal s0, h0, h0
+ sqdmlal s31, h0, h0
+ sqdmlal s0, h31, h0
+ sqdmlal s0, h0, h31
+ sqdmlal d0, s0, s0
+ sqdmlal d31, s0, s0
+ sqdmlal d0, s31, s0
+ sqdmlal d0, s0, s31
+
+ sqdmlsl s0, h0, h0
+ sqdmlsl s31, h0, h0
+ sqdmlsl s0, h31, h0
+ sqdmlsl s0, h0, h31
+ sqdmlsl d0, s0, s0
+ sqdmlsl d31, s0, s0
+ sqdmlsl d0, s31, s0
+ sqdmlsl d0, s0, s31
+
+ sqdmull s0, h0, h0
+ sqdmull s31, h0, h0
+ sqdmull s0, h31, h0
+ sqdmull s0, h0, h31
+ sqdmull d0, s0, s0
+ sqdmull d31, s0, s0
+ sqdmull d0, s31, s0
+ sqdmull d0, s0, s31
+
+ sqdmlal s0, h0, v0.h[0]
+ sqdmlal s31, h0, v0.h[0]
+ sqdmlal s0, h31, v0.h[0]
+ sqdmlal s0, h0, v15.h[0]
+ sqdmlal s0, h0, v0.h[1]
+ sqdmlal s0, h0, v0.h[3]
+ sqdmlal s0, h0, v0.h[7]
+ sqdmlal d0, s0, v0.s[0]
+ sqdmlal d31, s0, v0.s[0]
+ sqdmlal d0, s31, v0.s[0]
+ sqdmlal d0, s0, v31.s[0]
+ sqdmlal d0, s0, v0.s[1]
+ sqdmlal d0, s0, v0.s[3]
+
+ sqdmlsl s0, h0, v0.h[0]
+ sqdmlsl s31, h0, v0.h[0]
+ sqdmlsl s0, h31, v0.h[0]
+ sqdmlsl s0, h0, v15.h[0]
+ sqdmlsl s0, h0, v0.h[1]
+ sqdmlsl s0, h0, v0.h[3]
+ sqdmlsl s0, h0, v0.h[7]
+ sqdmlsl d0, s0, v0.s[0]
+ sqdmlsl d31, s0, v0.s[0]
+ sqdmlsl d0, s31, v0.s[0]
+ sqdmlsl d0, s0, v31.s[0]
+ sqdmlsl d0, s0, v0.s[1]
+ sqdmlsl d0, s0, v0.s[3]
+
+ sqdmull s0, h0, v0.h[0]
+ sqdmull s31, h0, v0.h[0]
+ sqdmull s0, h31, v0.h[0]
+ sqdmull s0, h0, v15.h[0]
+ sqdmull s0, h0, v0.h[1]
+ sqdmull s0, h0, v0.h[3]
+ sqdmull s0, h0, v0.h[7]
+ sqdmull d0, s0, v0.s[0]
+ sqdmull d31, s0, v0.s[0]
+ sqdmull d0, s31, v0.s[0]
+ sqdmull d0, s0, v31.s[0]
+ sqdmull d0, s0, v0.s[1]
+ sqdmull d0, s0, v0.s[3]
+
+ sqdmulh h0, h0, v0.h[0]
+ sqdmulh h31, h0, v0.h[0]
+ sqdmulh h0, h31, v0.h[0]
+ sqdmulh h0, h0, v15.h[0]
+ sqdmulh h0, h0, v0.h[1]
+ sqdmulh h0, h0, v0.h[3]
+ sqdmulh h0, h0, v0.h[7]
+ sqdmulh s0, s0, v0.s[0]
+ sqdmulh s31, s0, v0.s[0]
+ sqdmulh s0, s31, v0.s[0]
+ sqdmulh s0, s0, v31.s[0]
+ sqdmulh s0, s0, v0.s[1]
+ sqdmulh s0, s0, v0.s[3]
+
+ sqrdmulh h0, h0, v0.h[0]
+ sqrdmulh h31, h0, v0.h[0]
+ sqrdmulh h0, h31, v0.h[0]
+ sqrdmulh h0, h0, v15.h[0]
+ sqrdmulh h0, h0, v0.h[1]
+ sqrdmulh h0, h0, v0.h[3]
+ sqrdmulh h0, h0, v0.h[7]
+ sqrdmulh s0, s0, v0.s[0]
+ sqrdmulh s31, s0, v0.s[0]
+ sqrdmulh s0, s31, v0.s[0]
+ sqrdmulh s0, s0, v31.s[0]
+ sqrdmulh s0, s0, v0.s[1]
+ sqrdmulh s0, s0, v0.s[3]
diff --git a/gas/testsuite/gas/aarch64/advsimd-scalar-shift-immediate.d b/gas/testsuite/gas/aarch64/advsimd-scalar-shift-immediate.d
new file mode 100644
index 0000000..8a511fc
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-scalar-shift-immediate.d
@@ -0,0 +1,173 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 5f400400 sshr d0, d0, #64
+ *[0-9a-f]+: 5f40041f sshr d31, d0, #64
+ *[0-9a-f]+: 5f4007e0 sshr d0, d31, #64
+ *[0-9a-f]+: 5f7f0400 sshr d0, d0, #1
+ *[0-9a-f]+: 5f401400 ssra d0, d0, #64
+ *[0-9a-f]+: 5f40141f ssra d31, d0, #64
+ *[0-9a-f]+: 5f4017e0 ssra d0, d31, #64
+ *[0-9a-f]+: 5f7f1400 ssra d0, d0, #1
+ *[0-9a-f]+: 5f402400 srshr d0, d0, #64
+ *[0-9a-f]+: 5f40241f srshr d31, d0, #64
+ *[0-9a-f]+: 5f4027e0 srshr d0, d31, #64
+ *[0-9a-f]+: 5f7f2400 srshr d0, d0, #1
+ *[0-9a-f]+: 5f403400 srsra d0, d0, #64
+ *[0-9a-f]+: 5f40341f srsra d31, d0, #64
+ *[0-9a-f]+: 5f4037e0 srsra d0, d31, #64
+ *[0-9a-f]+: 5f7f3400 srsra d0, d0, #1
+ *[0-9a-f]+: 5f405400 shl d0, d0, #0
+ *[0-9a-f]+: 5f40541f shl d31, d0, #0
+ *[0-9a-f]+: 5f4057e0 shl d0, d31, #0
+ *[0-9a-f]+: 5f7f5400 shl d0, d0, #63
+ *[0-9a-f]+: 5f087400 sqshl b0, b0, #0
+ *[0-9a-f]+: 5f08741f sqshl b31, b0, #0
+ *[0-9a-f]+: 5f0877e0 sqshl b0, b31, #0
+ *[0-9a-f]+: 5f0f7400 sqshl b0, b0, #7
+ *[0-9a-f]+: 5f107400 sqshl h0, h0, #0
+ *[0-9a-f]+: 5f10741f sqshl h31, h0, #0
+ *[0-9a-f]+: 5f1077e0 sqshl h0, h31, #0
+ *[0-9a-f]+: 5f1f7400 sqshl h0, h0, #15
+ *[0-9a-f]+: 5f207400 sqshl s0, s0, #0
+ *[0-9a-f]+: 5f20741f sqshl s31, s0, #0
+ *[0-9a-f]+: 5f2077e0 sqshl s0, s31, #0
+ *[0-9a-f]+: 5f3f7400 sqshl s0, s0, #31
+ *[0-9a-f]+: 5f407400 sqshl d0, d0, #0
+ *[0-9a-f]+: 5f40741f sqshl d31, d0, #0
+ *[0-9a-f]+: 5f4077e0 sqshl d0, d31, #0
+ *[0-9a-f]+: 5f7f7400 sqshl d0, d0, #63
+ *[0-9a-f]+: 5f089400 sqshrn b0, h0, #8
+ *[0-9a-f]+: 5f08941f sqshrn b31, h0, #8
+ *[0-9a-f]+: 5f0897e0 sqshrn b0, h31, #8
+ *[0-9a-f]+: 5f0f9400 sqshrn b0, h0, #1
+ *[0-9a-f]+: 5f109400 sqshrn h0, s0, #16
+ *[0-9a-f]+: 5f10941f sqshrn h31, s0, #16
+ *[0-9a-f]+: 5f1097e0 sqshrn h0, s31, #16
+ *[0-9a-f]+: 5f1f9400 sqshrn h0, s0, #1
+ *[0-9a-f]+: 5f209400 sqshrn s0, d0, #32
+ *[0-9a-f]+: 5f20941f sqshrn s31, d0, #32
+ *[0-9a-f]+: 5f2097e0 sqshrn s0, d31, #32
+ *[0-9a-f]+: 5f3f9400 sqshrn s0, d0, #1
+ *[0-9a-f]+: 5f089c00 sqrshrn b0, h0, #8
+ *[0-9a-f]+: 5f089c1f sqrshrn b31, h0, #8
+ *[0-9a-f]+: 5f089fe0 sqrshrn b0, h31, #8
+ *[0-9a-f]+: 5f0f9c00 sqrshrn b0, h0, #1
+ *[0-9a-f]+: 5f109c00 sqrshrn h0, s0, #16
+ *[0-9a-f]+: 5f109c1f sqrshrn h31, s0, #16
+ *[0-9a-f]+: 5f109fe0 sqrshrn h0, s31, #16
+ *[0-9a-f]+: 5f1f9c00 sqrshrn h0, s0, #1
+ *[0-9a-f]+: 5f209c00 sqrshrn s0, d0, #32
+ *[0-9a-f]+: 5f209c1f sqrshrn s31, d0, #32
+ *[0-9a-f]+: 5f209fe0 sqrshrn s0, d31, #32
+ *[0-9a-f]+: 5f3f9c00 sqrshrn s0, d0, #1
+ *[0-9a-f]+: 7f400400 ushr d0, d0, #64
+ *[0-9a-f]+: 7f40041f ushr d31, d0, #64
+ *[0-9a-f]+: 7f4007e0 ushr d0, d31, #64
+ *[0-9a-f]+: 7f7f0400 ushr d0, d0, #1
+ *[0-9a-f]+: 7f401400 usra d0, d0, #64
+ *[0-9a-f]+: 7f40141f usra d31, d0, #64
+ *[0-9a-f]+: 7f4017e0 usra d0, d31, #64
+ *[0-9a-f]+: 7f7f1400 usra d0, d0, #1
+ *[0-9a-f]+: 7f402400 urshr d0, d0, #64
+ *[0-9a-f]+: 7f40241f urshr d31, d0, #64
+ *[0-9a-f]+: 7f4027e0 urshr d0, d31, #64
+ *[0-9a-f]+: 7f7f2400 urshr d0, d0, #1
+ *[0-9a-f]+: 7f403400 ursra d0, d0, #64
+ *[0-9a-f]+: 7f40341f ursra d31, d0, #64
+ *[0-9a-f]+: 7f4037e0 ursra d0, d31, #64
+ *[0-9a-f]+: 7f7f3400 ursra d0, d0, #1
+ *[0-9a-f]+: 7f404400 sri d0, d0, #64
+ *[0-9a-f]+: 7f40441f sri d31, d0, #64
+ *[0-9a-f]+: 7f4047e0 sri d0, d31, #64
+ *[0-9a-f]+: 7f7f4400 sri d0, d0, #1
+ *[0-9a-f]+: 7f405400 sli d0, d0, #0
+ *[0-9a-f]+: 7f40541f sli d31, d0, #0
+ *[0-9a-f]+: 7f4057e0 sli d0, d31, #0
+ *[0-9a-f]+: 7f7f5400 sli d0, d0, #63
+ *[0-9a-f]+: 7f086400 sqshlu b0, b0, #0
+ *[0-9a-f]+: 7f08641f sqshlu b31, b0, #0
+ *[0-9a-f]+: 7f0867e0 sqshlu b0, b31, #0
+ *[0-9a-f]+: 7f0f6400 sqshlu b0, b0, #7
+ *[0-9a-f]+: 7f106400 sqshlu h0, h0, #0
+ *[0-9a-f]+: 7f10641f sqshlu h31, h0, #0
+ *[0-9a-f]+: 7f1067e0 sqshlu h0, h31, #0
+ *[0-9a-f]+: 7f1f6400 sqshlu h0, h0, #15
+ *[0-9a-f]+: 7f206400 sqshlu s0, s0, #0
+ *[0-9a-f]+: 7f20641f sqshlu s31, s0, #0
+ *[0-9a-f]+: 7f2067e0 sqshlu s0, s31, #0
+ *[0-9a-f]+: 7f3f6400 sqshlu s0, s0, #31
+ *[0-9a-f]+: 7f406400 sqshlu d0, d0, #0
+ *[0-9a-f]+: 7f40641f sqshlu d31, d0, #0
+ *[0-9a-f]+: 7f4067e0 sqshlu d0, d31, #0
+ *[0-9a-f]+: 7f7f6400 sqshlu d0, d0, #63
+ *[0-9a-f]+: 7f087400 uqshl b0, b0, #0
+ *[0-9a-f]+: 7f08741f uqshl b31, b0, #0
+ *[0-9a-f]+: 7f0877e0 uqshl b0, b31, #0
+ *[0-9a-f]+: 7f0f7400 uqshl b0, b0, #7
+ *[0-9a-f]+: 7f107400 uqshl h0, h0, #0
+ *[0-9a-f]+: 7f10741f uqshl h31, h0, #0
+ *[0-9a-f]+: 7f1077e0 uqshl h0, h31, #0
+ *[0-9a-f]+: 7f1f7400 uqshl h0, h0, #15
+ *[0-9a-f]+: 7f207400 uqshl s0, s0, #0
+ *[0-9a-f]+: 7f20741f uqshl s31, s0, #0
+ *[0-9a-f]+: 7f2077e0 uqshl s0, s31, #0
+ *[0-9a-f]+: 7f3f7400 uqshl s0, s0, #31
+ *[0-9a-f]+: 7f407400 uqshl d0, d0, #0
+ *[0-9a-f]+: 7f40741f uqshl d31, d0, #0
+ *[0-9a-f]+: 7f4077e0 uqshl d0, d31, #0
+ *[0-9a-f]+: 7f7f7400 uqshl d0, d0, #63
+ *[0-9a-f]+: 7f088400 sqshrun b0, h0, #8
+ *[0-9a-f]+: 7f08841f sqshrun b31, h0, #8
+ *[0-9a-f]+: 7f0887e0 sqshrun b0, h31, #8
+ *[0-9a-f]+: 7f0f8400 sqshrun b0, h0, #1
+ *[0-9a-f]+: 7f108400 sqshrun h0, s0, #16
+ *[0-9a-f]+: 7f10841f sqshrun h31, s0, #16
+ *[0-9a-f]+: 7f1087e0 sqshrun h0, s31, #16
+ *[0-9a-f]+: 7f1f8400 sqshrun h0, s0, #1
+ *[0-9a-f]+: 7f208400 sqshrun s0, d0, #32
+ *[0-9a-f]+: 7f20841f sqshrun s31, d0, #32
+ *[0-9a-f]+: 7f2087e0 sqshrun s0, d31, #32
+ *[0-9a-f]+: 7f3f8400 sqshrun s0, d0, #1
+ *[0-9a-f]+: 7f088c00 sqrshrun b0, h0, #8
+ *[0-9a-f]+: 7f088c1f sqrshrun b31, h0, #8
+ *[0-9a-f]+: 7f088fe0 sqrshrun b0, h31, #8
+ *[0-9a-f]+: 7f0f8c00 sqrshrun b0, h0, #1
+ *[0-9a-f]+: 7f108c00 sqrshrun h0, s0, #16
+ *[0-9a-f]+: 7f108c1f sqrshrun h31, s0, #16
+ *[0-9a-f]+: 7f108fe0 sqrshrun h0, s31, #16
+ *[0-9a-f]+: 7f1f8c00 sqrshrun h0, s0, #1
+ *[0-9a-f]+: 7f208c00 sqrshrun s0, d0, #32
+ *[0-9a-f]+: 7f208c1f sqrshrun s31, d0, #32
+ *[0-9a-f]+: 7f208fe0 sqrshrun s0, d31, #32
+ *[0-9a-f]+: 7f3f8c00 sqrshrun s0, d0, #1
+ *[0-9a-f]+: 7f089400 uqshrn b0, h0, #8
+ *[0-9a-f]+: 7f08941f uqshrn b31, h0, #8
+ *[0-9a-f]+: 7f0897e0 uqshrn b0, h31, #8
+ *[0-9a-f]+: 7f0f9400 uqshrn b0, h0, #1
+ *[0-9a-f]+: 7f109400 uqshrn h0, s0, #16
+ *[0-9a-f]+: 7f10941f uqshrn h31, s0, #16
+ *[0-9a-f]+: 7f1097e0 uqshrn h0, s31, #16
+ *[0-9a-f]+: 7f1f9400 uqshrn h0, s0, #1
+ *[0-9a-f]+: 7f209400 uqshrn s0, d0, #32
+ *[0-9a-f]+: 7f20941f uqshrn s31, d0, #32
+ *[0-9a-f]+: 7f2097e0 uqshrn s0, d31, #32
+ *[0-9a-f]+: 7f3f9400 uqshrn s0, d0, #1
+ *[0-9a-f]+: 7f089c00 uqrshrn b0, h0, #8
+ *[0-9a-f]+: 7f089c1f uqrshrn b31, h0, #8
+ *[0-9a-f]+: 7f089fe0 uqrshrn b0, h31, #8
+ *[0-9a-f]+: 7f0f9c00 uqrshrn b0, h0, #1
+ *[0-9a-f]+: 7f109c00 uqrshrn h0, s0, #16
+ *[0-9a-f]+: 7f109c1f uqrshrn h31, s0, #16
+ *[0-9a-f]+: 7f109fe0 uqrshrn h0, s31, #16
+ *[0-9a-f]+: 7f1f9c00 uqrshrn h0, s0, #1
+ *[0-9a-f]+: 7f209c00 uqrshrn s0, d0, #32
+ *[0-9a-f]+: 7f209c1f uqrshrn s31, d0, #32
+ *[0-9a-f]+: 7f209fe0 uqrshrn s0, d31, #32
+ *[0-9a-f]+: 7f3f9c00 uqrshrn s0, d0, #1
diff --git a/gas/testsuite/gas/aarch64/advsimd-scalar-shift-immediate.s b/gas/testsuite/gas/aarch64/advsimd-scalar-shift-immediate.s
new file mode 100644
index 0000000..bddc9cb
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-scalar-shift-immediate.s
@@ -0,0 +1,183 @@
+ sshr d0, d0, #64
+ sshr d31, d0, #64
+ sshr d0, d31, #64
+ sshr d0, d0, #1
+
+ ssra d0, d0, #64
+ ssra d31, d0, #64
+ ssra d0, d31, #64
+ ssra d0, d0, #1
+
+ srshr d0, d0, #64
+ srshr d31, d0, #64
+ srshr d0, d31, #64
+ srshr d0, d0, #1
+
+ srsra d0, d0, #64
+ srsra d31, d0, #64
+ srsra d0, d31, #64
+ srsra d0, d0, #1
+
+ shl d0, d0, #0
+ shl d31, d0, #0
+ shl d0, d31, #0
+ shl d0, d0, #63
+
+ sqshl b0, b0, #0
+ sqshl b31, b0, #0
+ sqshl b0, b31, #0
+ sqshl b0, b0, #7
+ sqshl h0, h0, #0
+ sqshl h31, h0, #0
+ sqshl h0, h31, #0
+ sqshl h0, h0, #15
+ sqshl s0, s0, #0
+ sqshl s31, s0, #0
+ sqshl s0, s31, #0
+ sqshl s0, s0, #31
+ sqshl d0, d0, #0
+ sqshl d31, d0, #0
+ sqshl d0, d31, #0
+ sqshl d0, d0, #63
+
+ sqshrn b0, h0, #8
+ sqshrn b31, h0, #8
+ sqshrn b0, h31, #8
+ sqshrn b0, h0, #1
+ sqshrn h0, s0, #16
+ sqshrn h31, s0, #16
+ sqshrn h0, s31, #16
+ sqshrn h0, s0, #1
+ sqshrn s0, d0, #32
+ sqshrn s31, d0, #32
+ sqshrn s0, d31, #32
+ sqshrn s0, d0, #1
+
+ sqrshrn b0, h0, #8
+ sqrshrn b31, h0, #8
+ sqrshrn b0, h31, #8
+ sqrshrn b0, h0, #1
+ sqrshrn h0, s0, #16
+ sqrshrn h31, s0, #16
+ sqrshrn h0, s31, #16
+ sqrshrn h0, s0, #1
+ sqrshrn s0, d0, #32
+ sqrshrn s31, d0, #32
+ sqrshrn s0, d31, #32
+ sqrshrn s0, d0, #1
+
+ ushr d0, d0, #64
+ ushr d31, d0, #64
+ ushr d0, d31, #64
+ ushr d0, d0, #1
+
+ usra d0, d0, #64
+ usra d31, d0, #64
+ usra d0, d31, #64
+ usra d0, d0, #1
+
+ urshr d0, d0, #64
+ urshr d31, d0, #64
+ urshr d0, d31, #64
+ urshr d0, d0, #1
+
+ ursra d0, d0, #64
+ ursra d31, d0, #64
+ ursra d0, d31, #64
+ ursra d0, d0, #1
+
+ sri d0, d0, #64
+ sri d31, d0, #64
+ sri d0, d31, #64
+ sri d0, d0, #1
+
+ sli d0, d0, #0
+ sli d31, d0, #0
+ sli d0, d31, #0
+ sli d0, d0, #63
+
+ sqshlu b0, b0, #0
+ sqshlu b31, b0, #0
+ sqshlu b0, b31, #0
+ sqshlu b0, b0, #7
+ sqshlu h0, h0, #0
+ sqshlu h31, h0, #0
+ sqshlu h0, h31, #0
+ sqshlu h0, h0, #15
+ sqshlu s0, s0, #0
+ sqshlu s31, s0, #0
+ sqshlu s0, s31, #0
+ sqshlu s0, s0, #31
+ sqshlu d0, d0, #0
+ sqshlu d31, d0, #0
+ sqshlu d0, d31, #0
+ sqshlu d0, d0, #63
+
+ uqshl b0, b0, #0
+ uqshl b31, b0, #0
+ uqshl b0, b31, #0
+ uqshl b0, b0, #7
+ uqshl h0, h0, #0
+ uqshl h31, h0, #0
+ uqshl h0, h31, #0
+ uqshl h0, h0, #15
+ uqshl s0, s0, #0
+ uqshl s31, s0, #0
+ uqshl s0, s31, #0
+ uqshl s0, s0, #31
+ uqshl d0, d0, #0
+ uqshl d31, d0, #0
+ uqshl d0, d31, #0
+ uqshl d0, d0, #63
+
+ sqshrun b0, h0, #8
+ sqshrun b31, h0, #8
+ sqshrun b0, h31, #8
+ sqshrun b0, h0, #1
+ sqshrun h0, s0, #16
+ sqshrun h31, s0, #16
+ sqshrun h0, s31, #16
+ sqshrun h0, s0, #1
+ sqshrun s0, d0, #32
+ sqshrun s31, d0, #32
+ sqshrun s0, d31, #32
+ sqshrun s0, d0, #1
+
+ sqrshrun b0, h0, #8
+ sqrshrun b31, h0, #8
+ sqrshrun b0, h31, #8
+ sqrshrun b0, h0, #1
+ sqrshrun h0, s0, #16
+ sqrshrun h31, s0, #16
+ sqrshrun h0, s31, #16
+ sqrshrun h0, s0, #1
+ sqrshrun s0, d0, #32
+ sqrshrun s31, d0, #32
+ sqrshrun s0, d31, #32
+ sqrshrun s0, d0, #1
+
+ uqshrn b0, h0, #8
+ uqshrn b31, h0, #8
+ uqshrn b0, h31, #8
+ uqshrn b0, h0, #1
+ uqshrn h0, s0, #16
+ uqshrn h31, s0, #16
+ uqshrn h0, s31, #16
+ uqshrn h0, s0, #1
+ uqshrn s0, d0, #32
+ uqshrn s31, d0, #32
+ uqshrn s0, d31, #32
+ uqshrn s0, d0, #1
+
+ uqrshrn b0, h0, #8
+ uqrshrn b31, h0, #8
+ uqrshrn b0, h31, #8
+ uqrshrn b0, h0, #1
+ uqrshrn h0, s0, #16
+ uqrshrn h31, s0, #16
+ uqrshrn h0, s31, #16
+ uqrshrn h0, s0, #1
+ uqrshrn s0, d0, #32
+ uqrshrn s31, d0, #32
+ uqrshrn s0, d31, #32
+ uqrshrn s0, d0, #1
diff --git a/gas/testsuite/gas/aarch64/advsimd-scalar-three-same.d b/gas/testsuite/gas/aarch64/advsimd-scalar-three-same.d
new file mode 100644
index 0000000..31acbaa
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-scalar-three-same.d
@@ -0,0 +1,201 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 5e200c00 sqadd b0, b0, b0
+ *[0-9a-f]+: 5e200c1f sqadd b31, b0, b0
+ *[0-9a-f]+: 5e200fe0 sqadd b0, b31, b0
+ *[0-9a-f]+: 5e3f0c00 sqadd b0, b0, b31
+ *[0-9a-f]+: 5e600c00 sqadd h0, h0, h0
+ *[0-9a-f]+: 5e600c1f sqadd h31, h0, h0
+ *[0-9a-f]+: 5e600fe0 sqadd h0, h31, h0
+ *[0-9a-f]+: 5e7f0c00 sqadd h0, h0, h31
+ *[0-9a-f]+: 5ea00c00 sqadd s0, s0, s0
+ *[0-9a-f]+: 5ea00c1f sqadd s31, s0, s0
+ *[0-9a-f]+: 5ea00fe0 sqadd s0, s31, s0
+ *[0-9a-f]+: 5ebf0c00 sqadd s0, s0, s31
+ *[0-9a-f]+: 5ee00c00 sqadd d0, d0, d0
+ *[0-9a-f]+: 5ee00c1f sqadd d31, d0, d0
+ *[0-9a-f]+: 5ee00fe0 sqadd d0, d31, d0
+ *[0-9a-f]+: 5eff0c00 sqadd d0, d0, d31
+ *[0-9a-f]+: 5e202c00 sqsub b0, b0, b0
+ *[0-9a-f]+: 5e202c1f sqsub b31, b0, b0
+ *[0-9a-f]+: 5e202fe0 sqsub b0, b31, b0
+ *[0-9a-f]+: 5e3f2c00 sqsub b0, b0, b31
+ *[0-9a-f]+: 5e602c00 sqsub h0, h0, h0
+ *[0-9a-f]+: 5e602c1f sqsub h31, h0, h0
+ *[0-9a-f]+: 5e602fe0 sqsub h0, h31, h0
+ *[0-9a-f]+: 5e7f2c00 sqsub h0, h0, h31
+ *[0-9a-f]+: 5ea02c00 sqsub s0, s0, s0
+ *[0-9a-f]+: 5ea02c1f sqsub s31, s0, s0
+ *[0-9a-f]+: 5ea02fe0 sqsub s0, s31, s0
+ *[0-9a-f]+: 5ebf2c00 sqsub s0, s0, s31
+ *[0-9a-f]+: 5ee02c00 sqsub d0, d0, d0
+ *[0-9a-f]+: 5ee02c1f sqsub d31, d0, d0
+ *[0-9a-f]+: 5ee02fe0 sqsub d0, d31, d0
+ *[0-9a-f]+: 5eff2c00 sqsub d0, d0, d31
+ *[0-9a-f]+: 5e204c00 sqshl b0, b0, b0
+ *[0-9a-f]+: 5e204c1f sqshl b31, b0, b0
+ *[0-9a-f]+: 5e204fe0 sqshl b0, b31, b0
+ *[0-9a-f]+: 5e3f4c00 sqshl b0, b0, b31
+ *[0-9a-f]+: 5e604c00 sqshl h0, h0, h0
+ *[0-9a-f]+: 5e604c1f sqshl h31, h0, h0
+ *[0-9a-f]+: 5e604fe0 sqshl h0, h31, h0
+ *[0-9a-f]+: 5e7f4c00 sqshl h0, h0, h31
+ *[0-9a-f]+: 5ea04c00 sqshl s0, s0, s0
+ *[0-9a-f]+: 5ea04c1f sqshl s31, s0, s0
+ *[0-9a-f]+: 5ea04fe0 sqshl s0, s31, s0
+ *[0-9a-f]+: 5ebf4c00 sqshl s0, s0, s31
+ *[0-9a-f]+: 5ee04c00 sqshl d0, d0, d0
+ *[0-9a-f]+: 5ee04c1f sqshl d31, d0, d0
+ *[0-9a-f]+: 5ee04fe0 sqshl d0, d31, d0
+ *[0-9a-f]+: 5eff4c00 sqshl d0, d0, d31
+ *[0-9a-f]+: 5e205c00 sqrshl b0, b0, b0
+ *[0-9a-f]+: 5e205c1f sqrshl b31, b0, b0
+ *[0-9a-f]+: 5e205fe0 sqrshl b0, b31, b0
+ *[0-9a-f]+: 5e3f5c00 sqrshl b0, b0, b31
+ *[0-9a-f]+: 5e605c00 sqrshl h0, h0, h0
+ *[0-9a-f]+: 5e605c1f sqrshl h31, h0, h0
+ *[0-9a-f]+: 5e605fe0 sqrshl h0, h31, h0
+ *[0-9a-f]+: 5e7f5c00 sqrshl h0, h0, h31
+ *[0-9a-f]+: 5ea05c00 sqrshl s0, s0, s0
+ *[0-9a-f]+: 5ea05c1f sqrshl s31, s0, s0
+ *[0-9a-f]+: 5ea05fe0 sqrshl s0, s31, s0
+ *[0-9a-f]+: 5ebf5c00 sqrshl s0, s0, s31
+ *[0-9a-f]+: 5ee05c00 sqrshl d0, d0, d0
+ *[0-9a-f]+: 5ee05c1f sqrshl d31, d0, d0
+ *[0-9a-f]+: 5ee05fe0 sqrshl d0, d31, d0
+ *[0-9a-f]+: 5eff5c00 sqrshl d0, d0, d31
+ *[0-9a-f]+: 5e60b400 sqdmulh h0, h0, h0
+ *[0-9a-f]+: 5e60b41f sqdmulh h31, h0, h0
+ *[0-9a-f]+: 5e60b7e0 sqdmulh h0, h31, h0
+ *[0-9a-f]+: 5e7fb400 sqdmulh h0, h0, h31
+ *[0-9a-f]+: 5ea0b400 sqdmulh s0, s0, s0
+ *[0-9a-f]+: 5ea0b41f sqdmulh s31, s0, s0
+ *[0-9a-f]+: 5ea0b7e0 sqdmulh s0, s31, s0
+ *[0-9a-f]+: 5ebfb400 sqdmulh s0, s0, s31
+ *[0-9a-f]+: 5ee03400 cmgt d0, d0, d0
+ *[0-9a-f]+: 5ee0341f cmgt d31, d0, d0
+ *[0-9a-f]+: 5ee037e0 cmgt d0, d31, d0
+ *[0-9a-f]+: 5eff3400 cmgt d0, d0, d31
+ *[0-9a-f]+: 5ee03c00 cmge d0, d0, d0
+ *[0-9a-f]+: 5ee03c1f cmge d31, d0, d0
+ *[0-9a-f]+: 5ee03fe0 cmge d0, d31, d0
+ *[0-9a-f]+: 5eff3c00 cmge d0, d0, d31
+ *[0-9a-f]+: 5ee04400 sshl d0, d0, d0
+ *[0-9a-f]+: 5ee0441f sshl d31, d0, d0
+ *[0-9a-f]+: 5ee047e0 sshl d0, d31, d0
+ *[0-9a-f]+: 5eff4400 sshl d0, d0, d31
+ *[0-9a-f]+: 5ee05400 srshl d0, d0, d0
+ *[0-9a-f]+: 5ee0541f srshl d31, d0, d0
+ *[0-9a-f]+: 5ee057e0 srshl d0, d31, d0
+ *[0-9a-f]+: 5eff5400 srshl d0, d0, d31
+ *[0-9a-f]+: 5ee08400 add d0, d0, d0
+ *[0-9a-f]+: 5ee0841f add d31, d0, d0
+ *[0-9a-f]+: 5ee087e0 add d0, d31, d0
+ *[0-9a-f]+: 5eff8400 add d0, d0, d31
+ *[0-9a-f]+: 5ee08c00 cmtst d0, d0, d0
+ *[0-9a-f]+: 5ee08c1f cmtst d31, d0, d0
+ *[0-9a-f]+: 5ee08fe0 cmtst d0, d31, d0
+ *[0-9a-f]+: 5eff8c00 cmtst d0, d0, d31
+ *[0-9a-f]+: 7e200c00 uqadd b0, b0, b0
+ *[0-9a-f]+: 7e200c1f uqadd b31, b0, b0
+ *[0-9a-f]+: 7e200fe0 uqadd b0, b31, b0
+ *[0-9a-f]+: 7e3f0c00 uqadd b0, b0, b31
+ *[0-9a-f]+: 7e600c00 uqadd h0, h0, h0
+ *[0-9a-f]+: 7e600c1f uqadd h31, h0, h0
+ *[0-9a-f]+: 7e600fe0 uqadd h0, h31, h0
+ *[0-9a-f]+: 7e7f0c00 uqadd h0, h0, h31
+ *[0-9a-f]+: 7ea00c00 uqadd s0, s0, s0
+ *[0-9a-f]+: 7ea00c1f uqadd s31, s0, s0
+ *[0-9a-f]+: 7ea00fe0 uqadd s0, s31, s0
+ *[0-9a-f]+: 7ebf0c00 uqadd s0, s0, s31
+ *[0-9a-f]+: 7ee00c00 uqadd d0, d0, d0
+ *[0-9a-f]+: 7ee00c1f uqadd d31, d0, d0
+ *[0-9a-f]+: 7ee00fe0 uqadd d0, d31, d0
+ *[0-9a-f]+: 7eff0c00 uqadd d0, d0, d31
+ *[0-9a-f]+: 7e202c00 uqsub b0, b0, b0
+ *[0-9a-f]+: 7e202c1f uqsub b31, b0, b0
+ *[0-9a-f]+: 7e202fe0 uqsub b0, b31, b0
+ *[0-9a-f]+: 7e3f2c00 uqsub b0, b0, b31
+ *[0-9a-f]+: 7e602c00 uqsub h0, h0, h0
+ *[0-9a-f]+: 7e602c1f uqsub h31, h0, h0
+ *[0-9a-f]+: 7e602fe0 uqsub h0, h31, h0
+ *[0-9a-f]+: 7e7f2c00 uqsub h0, h0, h31
+ *[0-9a-f]+: 7ea02c00 uqsub s0, s0, s0
+ *[0-9a-f]+: 7ea02c1f uqsub s31, s0, s0
+ *[0-9a-f]+: 7ea02fe0 uqsub s0, s31, s0
+ *[0-9a-f]+: 7ebf2c00 uqsub s0, s0, s31
+ *[0-9a-f]+: 7ee02c00 uqsub d0, d0, d0
+ *[0-9a-f]+: 7ee02c1f uqsub d31, d0, d0
+ *[0-9a-f]+: 7ee02fe0 uqsub d0, d31, d0
+ *[0-9a-f]+: 7eff2c00 uqsub d0, d0, d31
+ *[0-9a-f]+: 7e204c00 uqshl b0, b0, b0
+ *[0-9a-f]+: 7e204c1f uqshl b31, b0, b0
+ *[0-9a-f]+: 7e204fe0 uqshl b0, b31, b0
+ *[0-9a-f]+: 7e3f4c00 uqshl b0, b0, b31
+ *[0-9a-f]+: 7e604c00 uqshl h0, h0, h0
+ *[0-9a-f]+: 7e604c1f uqshl h31, h0, h0
+ *[0-9a-f]+: 7e604fe0 uqshl h0, h31, h0
+ *[0-9a-f]+: 7e7f4c00 uqshl h0, h0, h31
+ *[0-9a-f]+: 7ea04c00 uqshl s0, s0, s0
+ *[0-9a-f]+: 7ea04c1f uqshl s31, s0, s0
+ *[0-9a-f]+: 7ea04fe0 uqshl s0, s31, s0
+ *[0-9a-f]+: 7ebf4c00 uqshl s0, s0, s31
+ *[0-9a-f]+: 7ee04c00 uqshl d0, d0, d0
+ *[0-9a-f]+: 7ee04c1f uqshl d31, d0, d0
+ *[0-9a-f]+: 7ee04fe0 uqshl d0, d31, d0
+ *[0-9a-f]+: 7eff4c00 uqshl d0, d0, d31
+ *[0-9a-f]+: 7e205c00 uqrshl b0, b0, b0
+ *[0-9a-f]+: 7e205c1f uqrshl b31, b0, b0
+ *[0-9a-f]+: 7e205fe0 uqrshl b0, b31, b0
+ *[0-9a-f]+: 7e3f5c00 uqrshl b0, b0, b31
+ *[0-9a-f]+: 7e605c00 uqrshl h0, h0, h0
+ *[0-9a-f]+: 7e605c1f uqrshl h31, h0, h0
+ *[0-9a-f]+: 7e605fe0 uqrshl h0, h31, h0
+ *[0-9a-f]+: 7e7f5c00 uqrshl h0, h0, h31
+ *[0-9a-f]+: 7ea05c00 uqrshl s0, s0, s0
+ *[0-9a-f]+: 7ea05c1f uqrshl s31, s0, s0
+ *[0-9a-f]+: 7ea05fe0 uqrshl s0, s31, s0
+ *[0-9a-f]+: 7ebf5c00 uqrshl s0, s0, s31
+ *[0-9a-f]+: 7ee05c00 uqrshl d0, d0, d0
+ *[0-9a-f]+: 7ee05c1f uqrshl d31, d0, d0
+ *[0-9a-f]+: 7ee05fe0 uqrshl d0, d31, d0
+ *[0-9a-f]+: 7eff5c00 uqrshl d0, d0, d31
+ *[0-9a-f]+: 7e60b400 sqrdmulh h0, h0, h0
+ *[0-9a-f]+: 7e60b41f sqrdmulh h31, h0, h0
+ *[0-9a-f]+: 7e60b7e0 sqrdmulh h0, h31, h0
+ *[0-9a-f]+: 7e7fb400 sqrdmulh h0, h0, h31
+ *[0-9a-f]+: 7ea0b400 sqrdmulh s0, s0, s0
+ *[0-9a-f]+: 7ea0b41f sqrdmulh s31, s0, s0
+ *[0-9a-f]+: 7ea0b7e0 sqrdmulh s0, s31, s0
+ *[0-9a-f]+: 7ebfb400 sqrdmulh s0, s0, s31
+ *[0-9a-f]+: 7ee03400 cmhi d0, d0, d0
+ *[0-9a-f]+: 7ee0341f cmhi d31, d0, d0
+ *[0-9a-f]+: 7ee037e0 cmhi d0, d31, d0
+ *[0-9a-f]+: 7eff3400 cmhi d0, d0, d31
+ *[0-9a-f]+: 7ee03c00 cmhs d0, d0, d0
+ *[0-9a-f]+: 7ee03c1f cmhs d31, d0, d0
+ *[0-9a-f]+: 7ee03fe0 cmhs d0, d31, d0
+ *[0-9a-f]+: 7eff3c00 cmhs d0, d0, d31
+ *[0-9a-f]+: 7ee04400 ushl d0, d0, d0
+ *[0-9a-f]+: 7ee0441f ushl d31, d0, d0
+ *[0-9a-f]+: 7ee047e0 ushl d0, d31, d0
+ *[0-9a-f]+: 7eff4400 ushl d0, d0, d31
+ *[0-9a-f]+: 7ee05400 urshl d0, d0, d0
+ *[0-9a-f]+: 7ee0541f urshl d31, d0, d0
+ *[0-9a-f]+: 7ee057e0 urshl d0, d31, d0
+ *[0-9a-f]+: 7eff5400 urshl d0, d0, d31
+ *[0-9a-f]+: 7ee08400 sub d0, d0, d0
+ *[0-9a-f]+: 7ee0841f sub d31, d0, d0
+ *[0-9a-f]+: 7ee087e0 sub d0, d31, d0
+ *[0-9a-f]+: 7eff8400 sub d0, d0, d31
+ *[0-9a-f]+: 7ee08c00 cmeq d0, d0, d0
+ *[0-9a-f]+: 7ee08c1f cmeq d31, d0, d0
+ *[0-9a-f]+: 7ee08fe0 cmeq d0, d31, d0
+ *[0-9a-f]+: 7eff8c00 cmeq d0, d0, d31
diff --git a/gas/testsuite/gas/aarch64/advsimd-scalar-three-same.s b/gas/testsuite/gas/aarch64/advsimd-scalar-three-same.s
new file mode 100644
index 0000000..7015bce
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-scalar-three-same.s
@@ -0,0 +1,213 @@
+ sqadd b0, b0, b0
+ sqadd b31, b0, b0
+ sqadd b0, b31, b0
+ sqadd b0, b0, b31
+ sqadd h0, h0, h0
+ sqadd h31, h0, h0
+ sqadd h0, h31, h0
+ sqadd h0, h0, h31
+ sqadd s0, s0, s0
+ sqadd s31, s0, s0
+ sqadd s0, s31, s0
+ sqadd s0, s0, s31
+ sqadd d0, d0, d0
+ sqadd d31, d0, d0
+ sqadd d0, d31, d0
+ sqadd d0, d0, d31
+
+ sqsub b0, b0, b0
+ sqsub b31, b0, b0
+ sqsub b0, b31, b0
+ sqsub b0, b0, b31
+ sqsub h0, h0, h0
+ sqsub h31, h0, h0
+ sqsub h0, h31, h0
+ sqsub h0, h0, h31
+ sqsub s0, s0, s0
+ sqsub s31, s0, s0
+ sqsub s0, s31, s0
+ sqsub s0, s0, s31
+ sqsub d0, d0, d0
+ sqsub d31, d0, d0
+ sqsub d0, d31, d0
+ sqsub d0, d0, d31
+
+ sqshl b0, b0, b0
+ sqshl b31, b0, b0
+ sqshl b0, b31, b0
+ sqshl b0, b0, b31
+ sqshl h0, h0, h0
+ sqshl h31, h0, h0
+ sqshl h0, h31, h0
+ sqshl h0, h0, h31
+ sqshl s0, s0, s0
+ sqshl s31, s0, s0
+ sqshl s0, s31, s0
+ sqshl s0, s0, s31
+ sqshl d0, d0, d0
+ sqshl d31, d0, d0
+ sqshl d0, d31, d0
+ sqshl d0, d0, d31
+
+ sqrshl b0, b0, b0
+ sqrshl b31, b0, b0
+ sqrshl b0, b31, b0
+ sqrshl b0, b0, b31
+ sqrshl h0, h0, h0
+ sqrshl h31, h0, h0
+ sqrshl h0, h31, h0
+ sqrshl h0, h0, h31
+ sqrshl s0, s0, s0
+ sqrshl s31, s0, s0
+ sqrshl s0, s31, s0
+ sqrshl s0, s0, s31
+ sqrshl d0, d0, d0
+ sqrshl d31, d0, d0
+ sqrshl d0, d31, d0
+ sqrshl d0, d0, d31
+
+ sqdmulh h0, h0, h0
+ sqdmulh h31, h0, h0
+ sqdmulh h0, h31, h0
+ sqdmulh h0, h0, h31
+ sqdmulh s0, s0, s0
+ sqdmulh s31, s0, s0
+ sqdmulh s0, s31, s0
+ sqdmulh s0, s0, s31
+
+ cmgt d0, d0, d0
+ cmgt d31, d0, d0
+ cmgt d0, d31, d0
+ cmgt d0, d0, d31
+
+ cmge d0, d0, d0
+ cmge d31, d0, d0
+ cmge d0, d31, d0
+ cmge d0, d0, d31
+
+ sshl d0, d0, d0
+ sshl d31, d0, d0
+ sshl d0, d31, d0
+ sshl d0, d0, d31
+
+ srshl d0, d0, d0
+ srshl d31, d0, d0
+ srshl d0, d31, d0
+ srshl d0, d0, d31
+
+ add d0, d0, d0
+ add d31, d0, d0
+ add d0, d31, d0
+ add d0, d0, d31
+
+ cmtst d0, d0, d0
+ cmtst d31, d0, d0
+ cmtst d0, d31, d0
+ cmtst d0, d0, d31
+
+ uqadd b0, b0, b0
+ uqadd b31, b0, b0
+ uqadd b0, b31, b0
+ uqadd b0, b0, b31
+ uqadd h0, h0, h0
+ uqadd h31, h0, h0
+ uqadd h0, h31, h0
+ uqadd h0, h0, h31
+ uqadd s0, s0, s0
+ uqadd s31, s0, s0
+ uqadd s0, s31, s0
+ uqadd s0, s0, s31
+ uqadd d0, d0, d0
+ uqadd d31, d0, d0
+ uqadd d0, d31, d0
+ uqadd d0, d0, d31
+
+ uqsub b0, b0, b0
+ uqsub b31, b0, b0
+ uqsub b0, b31, b0
+ uqsub b0, b0, b31
+ uqsub h0, h0, h0
+ uqsub h31, h0, h0
+ uqsub h0, h31, h0
+ uqsub h0, h0, h31
+ uqsub s0, s0, s0
+ uqsub s31, s0, s0
+ uqsub s0, s31, s0
+ uqsub s0, s0, s31
+ uqsub d0, d0, d0
+ uqsub d31, d0, d0
+ uqsub d0, d31, d0
+ uqsub d0, d0, d31
+
+ uqshl b0, b0, b0
+ uqshl b31, b0, b0
+ uqshl b0, b31, b0
+ uqshl b0, b0, b31
+ uqshl h0, h0, h0
+ uqshl h31, h0, h0
+ uqshl h0, h31, h0
+ uqshl h0, h0, h31
+ uqshl s0, s0, s0
+ uqshl s31, s0, s0
+ uqshl s0, s31, s0
+ uqshl s0, s0, s31
+ uqshl d0, d0, d0
+ uqshl d31, d0, d0
+ uqshl d0, d31, d0
+ uqshl d0, d0, d31
+
+ uqrshl b0, b0, b0
+ uqrshl b31, b0, b0
+ uqrshl b0, b31, b0
+ uqrshl b0, b0, b31
+ uqrshl h0, h0, h0
+ uqrshl h31, h0, h0
+ uqrshl h0, h31, h0
+ uqrshl h0, h0, h31
+ uqrshl s0, s0, s0
+ uqrshl s31, s0, s0
+ uqrshl s0, s31, s0
+ uqrshl s0, s0, s31
+ uqrshl d0, d0, d0
+ uqrshl d31, d0, d0
+ uqrshl d0, d31, d0
+ uqrshl d0, d0, d31
+
+ sqrdmulh h0, h0, h0
+ sqrdmulh h31, h0, h0
+ sqrdmulh h0, h31, h0
+ sqrdmulh h0, h0, h31
+ sqrdmulh s0, s0, s0
+ sqrdmulh s31, s0, s0
+ sqrdmulh s0, s31, s0
+ sqrdmulh s0, s0, s31
+
+ cmhi d0, d0, d0
+ cmhi d31, d0, d0
+ cmhi d0, d31, d0
+ cmhi d0, d0, d31
+
+ cmhs d0, d0, d0
+ cmhs d31, d0, d0
+ cmhs d0, d31, d0
+ cmhs d0, d0, d31
+
+ ushl d0, d0, d0
+ ushl d31, d0, d0
+ ushl d0, d31, d0
+ ushl d0, d0, d31
+
+ urshl d0, d0, d0
+ urshl d31, d0, d0
+ urshl d0, d31, d0
+ urshl d0, d0, d31
+
+ sub d0, d0, d0
+ sub d31, d0, d0
+ sub d0, d31, d0
+ sub d0, d0, d31
+
+ cmeq d0, d0, d0
+ cmeq d31, d0, d0
+ cmeq d0, d31, d0
+ cmeq d0, d0, d31
diff --git a/gas/testsuite/gas/aarch64/advsimd-scalar-two-reg-misc.d b/gas/testsuite/gas/aarch64/advsimd-scalar-two-reg-misc.d
new file mode 100644
index 0000000..98660d6
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-scalar-two-reg-misc.d
@@ -0,0 +1,108 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 5e203800 suqadd b0, b0
+ *[0-9a-f]+: 5e20381f suqadd b31, b0
+ *[0-9a-f]+: 5e203be0 suqadd b0, b31
+ *[0-9a-f]+: 5e603800 suqadd h0, h0
+ *[0-9a-f]+: 5e60381f suqadd h31, h0
+ *[0-9a-f]+: 5e603be0 suqadd h0, h31
+ *[0-9a-f]+: 5ea03800 suqadd s0, s0
+ *[0-9a-f]+: 5ea0381f suqadd s31, s0
+ *[0-9a-f]+: 5ea03be0 suqadd s0, s31
+ *[0-9a-f]+: 5ee03800 suqadd d0, d0
+ *[0-9a-f]+: 5ee0381f suqadd d31, d0
+ *[0-9a-f]+: 5ee03be0 suqadd d0, d31
+ *[0-9a-f]+: 5e207800 sqabs b0, b0
+ *[0-9a-f]+: 5e20781f sqabs b31, b0
+ *[0-9a-f]+: 5e207be0 sqabs b0, b31
+ *[0-9a-f]+: 5e607800 sqabs h0, h0
+ *[0-9a-f]+: 5e60781f sqabs h31, h0
+ *[0-9a-f]+: 5e607be0 sqabs h0, h31
+ *[0-9a-f]+: 5ea07800 sqabs s0, s0
+ *[0-9a-f]+: 5ea0781f sqabs s31, s0
+ *[0-9a-f]+: 5ea07be0 sqabs s0, s31
+ *[0-9a-f]+: 5ee07800 sqabs d0, d0
+ *[0-9a-f]+: 5ee0781f sqabs d31, d0
+ *[0-9a-f]+: 5ee07be0 sqabs d0, d31
+ *[0-9a-f]+: 5ee08800 cmgt d0, d0, #0
+ *[0-9a-f]+: 5ee0881f cmgt d31, d0, #0
+ *[0-9a-f]+: 5ee08be0 cmgt d0, d31, #0
+ *[0-9a-f]+: 5ee09800 cmeq d0, d0, #0
+ *[0-9a-f]+: 5ee0981f cmeq d31, d0, #0
+ *[0-9a-f]+: 5ee09be0 cmeq d0, d31, #0
+ *[0-9a-f]+: 5ee0a800 cmlt d0, d0, #0
+ *[0-9a-f]+: 5ee0a81f cmlt d31, d0, #0
+ *[0-9a-f]+: 5ee0abe0 cmlt d0, d31, #0
+ *[0-9a-f]+: 5ee0b800 abs d0, d0
+ *[0-9a-f]+: 5ee0b81f abs d31, d0
+ *[0-9a-f]+: 5ee0bbe0 abs d0, d31
+ *[0-9a-f]+: 5e214800 sqxtn b0, h0
+ *[0-9a-f]+: 5e21481f sqxtn b31, h0
+ *[0-9a-f]+: 5e214be0 sqxtn b0, h31
+ *[0-9a-f]+: 5e614800 sqxtn h0, s0
+ *[0-9a-f]+: 5e61481f sqxtn h31, s0
+ *[0-9a-f]+: 5e614be0 sqxtn h0, s31
+ *[0-9a-f]+: 5ea14800 sqxtn s0, d0
+ *[0-9a-f]+: 5ea1481f sqxtn s31, d0
+ *[0-9a-f]+: 5ea14be0 sqxtn s0, d31
+ *[0-9a-f]+: 7e203800 usqadd b0, b0
+ *[0-9a-f]+: 7e20381f usqadd b31, b0
+ *[0-9a-f]+: 7e203be0 usqadd b0, b31
+ *[0-9a-f]+: 7e603800 usqadd h0, h0
+ *[0-9a-f]+: 7e60381f usqadd h31, h0
+ *[0-9a-f]+: 7e603be0 usqadd h0, h31
+ *[0-9a-f]+: 7ea03800 usqadd s0, s0
+ *[0-9a-f]+: 7ea0381f usqadd s31, s0
+ *[0-9a-f]+: 7ea03be0 usqadd s0, s31
+ *[0-9a-f]+: 7ee03800 usqadd d0, d0
+ *[0-9a-f]+: 7ee0381f usqadd d31, d0
+ *[0-9a-f]+: 7ee03be0 usqadd d0, d31
+ *[0-9a-f]+: 7e207800 sqneg b0, b0
+ *[0-9a-f]+: 7e20781f sqneg b31, b0
+ *[0-9a-f]+: 7e207be0 sqneg b0, b31
+ *[0-9a-f]+: 7e607800 sqneg h0, h0
+ *[0-9a-f]+: 7e60781f sqneg h31, h0
+ *[0-9a-f]+: 7e607be0 sqneg h0, h31
+ *[0-9a-f]+: 7ea07800 sqneg s0, s0
+ *[0-9a-f]+: 7ea0781f sqneg s31, s0
+ *[0-9a-f]+: 7ea07be0 sqneg s0, s31
+ *[0-9a-f]+: 7ee07800 sqneg d0, d0
+ *[0-9a-f]+: 7ee0781f sqneg d31, d0
+ *[0-9a-f]+: 7ee07be0 sqneg d0, d31
+ *[0-9a-f]+: 7ee08800 cmge d0, d0, #0
+ *[0-9a-f]+: 7ee0881f cmge d31, d0, #0
+ *[0-9a-f]+: 7ee08be0 cmge d0, d31, #0
+ *[0-9a-f]+: 7ee09800 cmle d0, d0, #0
+ *[0-9a-f]+: 7ee0981f cmle d31, d0, #0
+ *[0-9a-f]+: 7ee09be0 cmle d0, d31, #0
+ *[0-9a-f]+: 7ee0b800 neg d0, d0
+ *[0-9a-f]+: 7ee0b81f neg d31, d0
+ *[0-9a-f]+: 7ee0bbe0 neg d0, d31
+ *[0-9a-f]+: 7e212800 sqxtun b0, h0
+ *[0-9a-f]+: 7e21281f sqxtun b31, h0
+ *[0-9a-f]+: 7e212be0 sqxtun b0, h31
+ *[0-9a-f]+: 7e612800 sqxtun h0, s0
+ *[0-9a-f]+: 7e61281f sqxtun h31, s0
+ *[0-9a-f]+: 7e612be0 sqxtun h0, s31
+ *[0-9a-f]+: 7ea12800 sqxtun s0, d0
+ *[0-9a-f]+: 7ea1281f sqxtun s31, d0
+ *[0-9a-f]+: 7ea12be0 sqxtun s0, d31
+ *[0-9a-f]+: 7e214800 uqxtn b0, h0
+ *[0-9a-f]+: 7e21481f uqxtn b31, h0
+ *[0-9a-f]+: 7e214be0 uqxtn b0, h31
+ *[0-9a-f]+: 7e614800 uqxtn h0, s0
+ *[0-9a-f]+: 7e61481f uqxtn h31, s0
+ *[0-9a-f]+: 7e614be0 uqxtn h0, s31
+ *[0-9a-f]+: 7ea14800 uqxtn s0, d0
+ *[0-9a-f]+: 7ea1481f uqxtn s31, d0
+ *[0-9a-f]+: 7ea14be0 uqxtn s0, d31
+ *[0-9a-f]+: 7e616800 fcvtxn s0, d0
+ *[0-9a-f]+: 7e61681f fcvtxn s31, d0
+ *[0-9a-f]+: 7e616be0 fcvtxn s0, d31
diff --git a/gas/testsuite/gas/aarch64/advsimd-scalar-two-reg-misc.s b/gas/testsuite/gas/aarch64/advsimd-scalar-two-reg-misc.s
new file mode 100644
index 0000000..f8b8096
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-scalar-two-reg-misc.s
@@ -0,0 +1,113 @@
+ suqadd b0, b0
+ suqadd b31, b0
+ suqadd b0, b31
+ suqadd h0, h0
+ suqadd h31, h0
+ suqadd h0, h31
+ suqadd s0, s0
+ suqadd s31, s0
+ suqadd s0, s31
+ suqadd d0, d0
+ suqadd d31, d0
+ suqadd d0, d31
+
+ sqabs b0, b0
+ sqabs b31, b0
+ sqabs b0, b31
+ sqabs h0, h0
+ sqabs h31, h0
+ sqabs h0, h31
+ sqabs s0, s0
+ sqabs s31, s0
+ sqabs s0, s31
+ sqabs d0, d0
+ sqabs d31, d0
+ sqabs d0, d31
+
+ cmgt d0, d0, #0
+ cmgt d31, d0, #0
+ cmgt d0, d31, #0
+
+ cmeq d0, d0, #0
+ cmeq d31, d0, #0
+ cmeq d0, d31, #0
+
+ cmlt d0, d0, #0
+ cmlt d31, d0, #0
+ cmlt d0, d31, #0
+
+ abs d0, d0
+ abs d31, d0
+ abs d0, d31
+
+ sqxtn b0, h0
+ sqxtn b31, h0
+ sqxtn b0, h31
+ sqxtn h0, s0
+ sqxtn h31, s0
+ sqxtn h0, s31
+ sqxtn s0, d0
+ sqxtn s31, d0
+ sqxtn s0, d31
+
+ usqadd b0, b0
+ usqadd b31, b0
+ usqadd b0, b31
+ usqadd h0, h0
+ usqadd h31, h0
+ usqadd h0, h31
+ usqadd s0, s0
+ usqadd s31, s0
+ usqadd s0, s31
+ usqadd d0, d0
+ usqadd d31, d0
+ usqadd d0, d31
+
+ sqneg b0, b0
+ sqneg b31, b0
+ sqneg b0, b31
+ sqneg h0, h0
+ sqneg h31, h0
+ sqneg h0, h31
+ sqneg s0, s0
+ sqneg s31, s0
+ sqneg s0, s31
+ sqneg d0, d0
+ sqneg d31, d0
+ sqneg d0, d31
+
+ cmge d0, d0, #0
+ cmge d31, d0, #0
+ cmge d0, d31, #0
+
+ cmle d0, d0, #0
+ cmle d31, d0, #0
+ cmle d0, d31, #0
+
+ neg d0, d0
+ neg d31, d0
+ neg d0, d31
+
+ sqxtun b0, h0
+ sqxtun b31, h0
+ sqxtun b0, h31
+ sqxtun h0, s0
+ sqxtun h31, s0
+ sqxtun h0, s31
+ sqxtun s0, d0
+ sqxtun s31, d0
+ sqxtun s0, d31
+
+ uqxtn b0, h0
+ uqxtn b31, h0
+ uqxtn b0, h31
+ uqxtn h0, s0
+ uqxtn h31, s0
+ uqxtn h0, s31
+ uqxtn s0, d0
+ uqxtn s31, d0
+ uqxtn s0, d31
+
+ fcvtxn s0, d0
+ fcvtxn s31, d0
+ fcvtxn s0, d31
diff --git a/gas/testsuite/gas/aarch64/advsimd-shift-immediate.d b/gas/testsuite/gas/aarch64/advsimd-shift-immediate.d
new file mode 100644
index 0000000..1b41c65
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-shift-immediate.d
@@ -0,0 +1,593 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 0f080400 sshr v0\.8b, v0\.8b, #8
+ *[0-9a-f]+: 0f08041f sshr v31\.8b, v0\.8b, #8
+ *[0-9a-f]+: 0f0807e0 sshr v0\.8b, v31\.8b, #8
+ *[0-9a-f]+: 0f0f0400 sshr v0\.8b, v0\.8b, #1
+ *[0-9a-f]+: 0f100400 sshr v0\.4h, v0\.4h, #16
+ *[0-9a-f]+: 0f10041f sshr v31\.4h, v0\.4h, #16
+ *[0-9a-f]+: 0f1007e0 sshr v0\.4h, v31\.4h, #16
+ *[0-9a-f]+: 0f1f0400 sshr v0\.4h, v0\.4h, #1
+ *[0-9a-f]+: 0f200400 sshr v0\.2s, v0\.2s, #32
+ *[0-9a-f]+: 0f20041f sshr v31\.2s, v0\.2s, #32
+ *[0-9a-f]+: 0f2007e0 sshr v0\.2s, v31\.2s, #32
+ *[0-9a-f]+: 0f3f0400 sshr v0\.2s, v0\.2s, #1
+ *[0-9a-f]+: 4f080400 sshr v0\.16b, v0\.16b, #8
+ *[0-9a-f]+: 4f08041f sshr v31\.16b, v0\.16b, #8
+ *[0-9a-f]+: 4f0807e0 sshr v0\.16b, v31\.16b, #8
+ *[0-9a-f]+: 4f0f0400 sshr v0\.16b, v0\.16b, #1
+ *[0-9a-f]+: 4f100400 sshr v0\.8h, v0\.8h, #16
+ *[0-9a-f]+: 4f10041f sshr v31\.8h, v0\.8h, #16
+ *[0-9a-f]+: 4f1007e0 sshr v0\.8h, v31\.8h, #16
+ *[0-9a-f]+: 4f1f0400 sshr v0\.8h, v0\.8h, #1
+ *[0-9a-f]+: 4f200400 sshr v0\.4s, v0\.4s, #32
+ *[0-9a-f]+: 4f20041f sshr v31\.4s, v0\.4s, #32
+ *[0-9a-f]+: 4f2007e0 sshr v0\.4s, v31\.4s, #32
+ *[0-9a-f]+: 4f3f0400 sshr v0\.4s, v0\.4s, #1
+ *[0-9a-f]+: 4f400400 sshr v0\.2d, v0\.2d, #64
+ *[0-9a-f]+: 4f40041f sshr v31\.2d, v0\.2d, #64
+ *[0-9a-f]+: 4f4007e0 sshr v0\.2d, v31\.2d, #64
+ *[0-9a-f]+: 4f7f0400 sshr v0\.2d, v0\.2d, #1
+ *[0-9a-f]+: 0f081400 ssra v0\.8b, v0\.8b, #8
+ *[0-9a-f]+: 0f08141f ssra v31\.8b, v0\.8b, #8
+ *[0-9a-f]+: 0f0817e0 ssra v0\.8b, v31\.8b, #8
+ *[0-9a-f]+: 0f0f1400 ssra v0\.8b, v0\.8b, #1
+ *[0-9a-f]+: 0f101400 ssra v0\.4h, v0\.4h, #16
+ *[0-9a-f]+: 0f10141f ssra v31\.4h, v0\.4h, #16
+ *[0-9a-f]+: 0f1017e0 ssra v0\.4h, v31\.4h, #16
+ *[0-9a-f]+: 0f1f1400 ssra v0\.4h, v0\.4h, #1
+ *[0-9a-f]+: 0f201400 ssra v0\.2s, v0\.2s, #32
+ *[0-9a-f]+: 0f20141f ssra v31\.2s, v0\.2s, #32
+ *[0-9a-f]+: 0f2017e0 ssra v0\.2s, v31\.2s, #32
+ *[0-9a-f]+: 0f3f1400 ssra v0\.2s, v0\.2s, #1
+ *[0-9a-f]+: 4f081400 ssra v0\.16b, v0\.16b, #8
+ *[0-9a-f]+: 4f08141f ssra v31\.16b, v0\.16b, #8
+ *[0-9a-f]+: 4f0817e0 ssra v0\.16b, v31\.16b, #8
+ *[0-9a-f]+: 4f0f1400 ssra v0\.16b, v0\.16b, #1
+ *[0-9a-f]+: 4f101400 ssra v0\.8h, v0\.8h, #16
+ *[0-9a-f]+: 4f10141f ssra v31\.8h, v0\.8h, #16
+ *[0-9a-f]+: 4f1017e0 ssra v0\.8h, v31\.8h, #16
+ *[0-9a-f]+: 4f1f1400 ssra v0\.8h, v0\.8h, #1
+ *[0-9a-f]+: 4f201400 ssra v0\.4s, v0\.4s, #32
+ *[0-9a-f]+: 4f20141f ssra v31\.4s, v0\.4s, #32
+ *[0-9a-f]+: 4f2017e0 ssra v0\.4s, v31\.4s, #32
+ *[0-9a-f]+: 4f3f1400 ssra v0\.4s, v0\.4s, #1
+ *[0-9a-f]+: 4f401400 ssra v0\.2d, v0\.2d, #64
+ *[0-9a-f]+: 4f40141f ssra v31\.2d, v0\.2d, #64
+ *[0-9a-f]+: 4f4017e0 ssra v0\.2d, v31\.2d, #64
+ *[0-9a-f]+: 4f7f1400 ssra v0\.2d, v0\.2d, #1
+ *[0-9a-f]+: 0f082400 srshr v0\.8b, v0\.8b, #8
+ *[0-9a-f]+: 0f08241f srshr v31\.8b, v0\.8b, #8
+ *[0-9a-f]+: 0f0827e0 srshr v0\.8b, v31\.8b, #8
+ *[0-9a-f]+: 0f0f2400 srshr v0\.8b, v0\.8b, #1
+ *[0-9a-f]+: 0f102400 srshr v0\.4h, v0\.4h, #16
+ *[0-9a-f]+: 0f10241f srshr v31\.4h, v0\.4h, #16
+ *[0-9a-f]+: 0f1027e0 srshr v0\.4h, v31\.4h, #16
+ *[0-9a-f]+: 0f1f2400 srshr v0\.4h, v0\.4h, #1
+ *[0-9a-f]+: 0f202400 srshr v0\.2s, v0\.2s, #32
+ *[0-9a-f]+: 0f20241f srshr v31\.2s, v0\.2s, #32
+ *[0-9a-f]+: 0f2027e0 srshr v0\.2s, v31\.2s, #32
+ *[0-9a-f]+: 0f3f2400 srshr v0\.2s, v0\.2s, #1
+ *[0-9a-f]+: 4f082400 srshr v0\.16b, v0\.16b, #8
+ *[0-9a-f]+: 4f08241f srshr v31\.16b, v0\.16b, #8
+ *[0-9a-f]+: 4f0827e0 srshr v0\.16b, v31\.16b, #8
+ *[0-9a-f]+: 4f0f2400 srshr v0\.16b, v0\.16b, #1
+ *[0-9a-f]+: 4f102400 srshr v0\.8h, v0\.8h, #16
+ *[0-9a-f]+: 4f10241f srshr v31\.8h, v0\.8h, #16
+ *[0-9a-f]+: 4f1027e0 srshr v0\.8h, v31\.8h, #16
+ *[0-9a-f]+: 4f1f2400 srshr v0\.8h, v0\.8h, #1
+ *[0-9a-f]+: 4f202400 srshr v0\.4s, v0\.4s, #32
+ *[0-9a-f]+: 4f20241f srshr v31\.4s, v0\.4s, #32
+ *[0-9a-f]+: 4f2027e0 srshr v0\.4s, v31\.4s, #32
+ *[0-9a-f]+: 4f3f2400 srshr v0\.4s, v0\.4s, #1
+ *[0-9a-f]+: 4f402400 srshr v0\.2d, v0\.2d, #64
+ *[0-9a-f]+: 4f40241f srshr v31\.2d, v0\.2d, #64
+ *[0-9a-f]+: 4f4027e0 srshr v0\.2d, v31\.2d, #64
+ *[0-9a-f]+: 4f7f2400 srshr v0\.2d, v0\.2d, #1
+ *[0-9a-f]+: 0f083400 srsra v0\.8b, v0\.8b, #8
+ *[0-9a-f]+: 0f08341f srsra v31\.8b, v0\.8b, #8
+ *[0-9a-f]+: 0f0837e0 srsra v0\.8b, v31\.8b, #8
+ *[0-9a-f]+: 0f0f3400 srsra v0\.8b, v0\.8b, #1
+ *[0-9a-f]+: 0f103400 srsra v0\.4h, v0\.4h, #16
+ *[0-9a-f]+: 0f10341f srsra v31\.4h, v0\.4h, #16
+ *[0-9a-f]+: 0f1037e0 srsra v0\.4h, v31\.4h, #16
+ *[0-9a-f]+: 0f1f3400 srsra v0\.4h, v0\.4h, #1
+ *[0-9a-f]+: 0f203400 srsra v0\.2s, v0\.2s, #32
+ *[0-9a-f]+: 0f20341f srsra v31\.2s, v0\.2s, #32
+ *[0-9a-f]+: 0f2037e0 srsra v0\.2s, v31\.2s, #32
+ *[0-9a-f]+: 0f3f3400 srsra v0\.2s, v0\.2s, #1
+ *[0-9a-f]+: 4f083400 srsra v0\.16b, v0\.16b, #8
+ *[0-9a-f]+: 4f08341f srsra v31\.16b, v0\.16b, #8
+ *[0-9a-f]+: 4f0837e0 srsra v0\.16b, v31\.16b, #8
+ *[0-9a-f]+: 4f0f3400 srsra v0\.16b, v0\.16b, #1
+ *[0-9a-f]+: 4f103400 srsra v0\.8h, v0\.8h, #16
+ *[0-9a-f]+: 4f10341f srsra v31\.8h, v0\.8h, #16
+ *[0-9a-f]+: 4f1037e0 srsra v0\.8h, v31\.8h, #16
+ *[0-9a-f]+: 4f1f3400 srsra v0\.8h, v0\.8h, #1
+ *[0-9a-f]+: 4f203400 srsra v0\.4s, v0\.4s, #32
+ *[0-9a-f]+: 4f20341f srsra v31\.4s, v0\.4s, #32
+ *[0-9a-f]+: 4f2037e0 srsra v0\.4s, v31\.4s, #32
+ *[0-9a-f]+: 4f3f3400 srsra v0\.4s, v0\.4s, #1
+ *[0-9a-f]+: 4f403400 srsra v0\.2d, v0\.2d, #64
+ *[0-9a-f]+: 4f40341f srsra v31\.2d, v0\.2d, #64
+ *[0-9a-f]+: 4f4037e0 srsra v0\.2d, v31\.2d, #64
+ *[0-9a-f]+: 4f7f3400 srsra v0\.2d, v0\.2d, #1
+ *[0-9a-f]+: 0f085400 shl v0\.8b, v0\.8b, #0
+ *[0-9a-f]+: 0f08541f shl v31\.8b, v0\.8b, #0
+ *[0-9a-f]+: 0f0857e0 shl v0\.8b, v31\.8b, #0
+ *[0-9a-f]+: 0f0f5400 shl v0\.8b, v0\.8b, #7
+ *[0-9a-f]+: 0f105400 shl v0\.4h, v0\.4h, #0
+ *[0-9a-f]+: 0f10541f shl v31\.4h, v0\.4h, #0
+ *[0-9a-f]+: 0f1057e0 shl v0\.4h, v31\.4h, #0
+ *[0-9a-f]+: 0f1f5400 shl v0\.4h, v0\.4h, #15
+ *[0-9a-f]+: 0f205400 shl v0\.2s, v0\.2s, #0
+ *[0-9a-f]+: 0f20541f shl v31\.2s, v0\.2s, #0
+ *[0-9a-f]+: 0f2057e0 shl v0\.2s, v31\.2s, #0
+ *[0-9a-f]+: 0f3f5400 shl v0\.2s, v0\.2s, #31
+ *[0-9a-f]+: 4f085400 shl v0\.16b, v0\.16b, #0
+ *[0-9a-f]+: 4f08541f shl v31\.16b, v0\.16b, #0
+ *[0-9a-f]+: 4f0857e0 shl v0\.16b, v31\.16b, #0
+ *[0-9a-f]+: 4f0f5400 shl v0\.16b, v0\.16b, #7
+ *[0-9a-f]+: 4f105400 shl v0\.8h, v0\.8h, #0
+ *[0-9a-f]+: 4f10541f shl v31\.8h, v0\.8h, #0
+ *[0-9a-f]+: 4f1057e0 shl v0\.8h, v31\.8h, #0
+ *[0-9a-f]+: 4f1f5400 shl v0\.8h, v0\.8h, #15
+ *[0-9a-f]+: 4f205400 shl v0\.4s, v0\.4s, #0
+ *[0-9a-f]+: 4f20541f shl v31\.4s, v0\.4s, #0
+ *[0-9a-f]+: 4f2057e0 shl v0\.4s, v31\.4s, #0
+ *[0-9a-f]+: 4f3f5400 shl v0\.4s, v0\.4s, #31
+ *[0-9a-f]+: 4f405400 shl v0\.2d, v0\.2d, #0
+ *[0-9a-f]+: 4f40541f shl v31\.2d, v0\.2d, #0
+ *[0-9a-f]+: 4f4057e0 shl v0\.2d, v31\.2d, #0
+ *[0-9a-f]+: 4f7f5400 shl v0\.2d, v0\.2d, #63
+ *[0-9a-f]+: 0f087400 sqshl v0\.8b, v0\.8b, #0
+ *[0-9a-f]+: 0f08741f sqshl v31\.8b, v0\.8b, #0
+ *[0-9a-f]+: 0f0877e0 sqshl v0\.8b, v31\.8b, #0
+ *[0-9a-f]+: 0f0f7400 sqshl v0\.8b, v0\.8b, #7
+ *[0-9a-f]+: 0f107400 sqshl v0\.4h, v0\.4h, #0
+ *[0-9a-f]+: 0f10741f sqshl v31\.4h, v0\.4h, #0
+ *[0-9a-f]+: 0f1077e0 sqshl v0\.4h, v31\.4h, #0
+ *[0-9a-f]+: 0f1f7400 sqshl v0\.4h, v0\.4h, #15
+ *[0-9a-f]+: 0f207400 sqshl v0\.2s, v0\.2s, #0
+ *[0-9a-f]+: 0f20741f sqshl v31\.2s, v0\.2s, #0
+ *[0-9a-f]+: 0f2077e0 sqshl v0\.2s, v31\.2s, #0
+ *[0-9a-f]+: 0f3f7400 sqshl v0\.2s, v0\.2s, #31
+ *[0-9a-f]+: 4f087400 sqshl v0\.16b, v0\.16b, #0
+ *[0-9a-f]+: 4f08741f sqshl v31\.16b, v0\.16b, #0
+ *[0-9a-f]+: 4f0877e0 sqshl v0\.16b, v31\.16b, #0
+ *[0-9a-f]+: 4f0f7400 sqshl v0\.16b, v0\.16b, #7
+ *[0-9a-f]+: 4f107400 sqshl v0\.8h, v0\.8h, #0
+ *[0-9a-f]+: 4f10741f sqshl v31\.8h, v0\.8h, #0
+ *[0-9a-f]+: 4f1077e0 sqshl v0\.8h, v31\.8h, #0
+ *[0-9a-f]+: 4f1f7400 sqshl v0\.8h, v0\.8h, #15
+ *[0-9a-f]+: 4f207400 sqshl v0\.4s, v0\.4s, #0
+ *[0-9a-f]+: 4f20741f sqshl v31\.4s, v0\.4s, #0
+ *[0-9a-f]+: 4f2077e0 sqshl v0\.4s, v31\.4s, #0
+ *[0-9a-f]+: 4f3f7400 sqshl v0\.4s, v0\.4s, #31
+ *[0-9a-f]+: 4f407400 sqshl v0\.2d, v0\.2d, #0
+ *[0-9a-f]+: 4f40741f sqshl v31\.2d, v0\.2d, #0
+ *[0-9a-f]+: 4f4077e0 sqshl v0\.2d, v31\.2d, #0
+ *[0-9a-f]+: 4f7f7400 sqshl v0\.2d, v0\.2d, #63
+ *[0-9a-f]+: 0f088400 shrn v0\.8b, v0\.8h, #8
+ *[0-9a-f]+: 0f08841f shrn v31\.8b, v0\.8h, #8
+ *[0-9a-f]+: 0f0887e0 shrn v0\.8b, v31\.8h, #8
+ *[0-9a-f]+: 0f0f8400 shrn v0\.8b, v0\.8h, #1
+ *[0-9a-f]+: 0f108400 shrn v0\.4h, v0\.4s, #16
+ *[0-9a-f]+: 0f10841f shrn v31\.4h, v0\.4s, #16
+ *[0-9a-f]+: 0f1087e0 shrn v0\.4h, v31\.4s, #16
+ *[0-9a-f]+: 0f1f8400 shrn v0\.4h, v0\.4s, #1
+ *[0-9a-f]+: 0f208400 shrn v0\.2s, v0\.2d, #32
+ *[0-9a-f]+: 0f20841f shrn v31\.2s, v0\.2d, #32
+ *[0-9a-f]+: 0f2087e0 shrn v0\.2s, v31\.2d, #32
+ *[0-9a-f]+: 0f3f8400 shrn v0\.2s, v0\.2d, #1
+ *[0-9a-f]+: 4f088400 shrn2 v0\.16b, v0\.8h, #8
+ *[0-9a-f]+: 4f08841f shrn2 v31\.16b, v0\.8h, #8
+ *[0-9a-f]+: 4f0887e0 shrn2 v0\.16b, v31\.8h, #8
+ *[0-9a-f]+: 4f0f8400 shrn2 v0\.16b, v0\.8h, #1
+ *[0-9a-f]+: 4f108400 shrn2 v0\.8h, v0\.4s, #16
+ *[0-9a-f]+: 4f10841f shrn2 v31\.8h, v0\.4s, #16
+ *[0-9a-f]+: 4f1087e0 shrn2 v0\.8h, v31\.4s, #16
+ *[0-9a-f]+: 4f1f8400 shrn2 v0\.8h, v0\.4s, #1
+ *[0-9a-f]+: 4f208400 shrn2 v0\.4s, v0\.2d, #32
+ *[0-9a-f]+: 4f20841f shrn2 v31\.4s, v0\.2d, #32
+ *[0-9a-f]+: 4f2087e0 shrn2 v0\.4s, v31\.2d, #32
+ *[0-9a-f]+: 4f3f8400 shrn2 v0\.4s, v0\.2d, #1
+ *[0-9a-f]+: 0f088c00 rshrn v0\.8b, v0\.8h, #8
+ *[0-9a-f]+: 0f088c1f rshrn v31\.8b, v0\.8h, #8
+ *[0-9a-f]+: 0f088fe0 rshrn v0\.8b, v31\.8h, #8
+ *[0-9a-f]+: 0f0f8c00 rshrn v0\.8b, v0\.8h, #1
+ *[0-9a-f]+: 0f108c00 rshrn v0\.4h, v0\.4s, #16
+ *[0-9a-f]+: 0f108c1f rshrn v31\.4h, v0\.4s, #16
+ *[0-9a-f]+: 0f108fe0 rshrn v0\.4h, v31\.4s, #16
+ *[0-9a-f]+: 0f1f8c00 rshrn v0\.4h, v0\.4s, #1
+ *[0-9a-f]+: 0f208c00 rshrn v0\.2s, v0\.2d, #32
+ *[0-9a-f]+: 0f208c1f rshrn v31\.2s, v0\.2d, #32
+ *[0-9a-f]+: 0f208fe0 rshrn v0\.2s, v31\.2d, #32
+ *[0-9a-f]+: 0f3f8c00 rshrn v0\.2s, v0\.2d, #1
+ *[0-9a-f]+: 4f088c00 rshrn2 v0\.16b, v0\.8h, #8
+ *[0-9a-f]+: 4f088c1f rshrn2 v31\.16b, v0\.8h, #8
+ *[0-9a-f]+: 4f088fe0 rshrn2 v0\.16b, v31\.8h, #8
+ *[0-9a-f]+: 4f0f8c00 rshrn2 v0\.16b, v0\.8h, #1
+ *[0-9a-f]+: 4f108c00 rshrn2 v0\.8h, v0\.4s, #16
+ *[0-9a-f]+: 4f108c1f rshrn2 v31\.8h, v0\.4s, #16
+ *[0-9a-f]+: 4f108fe0 rshrn2 v0\.8h, v31\.4s, #16
+ *[0-9a-f]+: 4f1f8c00 rshrn2 v0\.8h, v0\.4s, #1
+ *[0-9a-f]+: 4f208c00 rshrn2 v0\.4s, v0\.2d, #32
+ *[0-9a-f]+: 4f208c1f rshrn2 v31\.4s, v0\.2d, #32
+ *[0-9a-f]+: 4f208fe0 rshrn2 v0\.4s, v31\.2d, #32
+ *[0-9a-f]+: 4f3f8c00 rshrn2 v0\.4s, v0\.2d, #1
+ *[0-9a-f]+: 0f089400 sqshrn v0\.8b, v0\.8h, #8
+ *[0-9a-f]+: 0f08941f sqshrn v31\.8b, v0\.8h, #8
+ *[0-9a-f]+: 0f0897e0 sqshrn v0\.8b, v31\.8h, #8
+ *[0-9a-f]+: 0f0f9400 sqshrn v0\.8b, v0\.8h, #1
+ *[0-9a-f]+: 0f109400 sqshrn v0\.4h, v0\.4s, #16
+ *[0-9a-f]+: 0f10941f sqshrn v31\.4h, v0\.4s, #16
+ *[0-9a-f]+: 0f1097e0 sqshrn v0\.4h, v31\.4s, #16
+ *[0-9a-f]+: 0f1f9400 sqshrn v0\.4h, v0\.4s, #1
+ *[0-9a-f]+: 0f209400 sqshrn v0\.2s, v0\.2d, #32
+ *[0-9a-f]+: 0f20941f sqshrn v31\.2s, v0\.2d, #32
+ *[0-9a-f]+: 0f2097e0 sqshrn v0\.2s, v31\.2d, #32
+ *[0-9a-f]+: 0f3f9400 sqshrn v0\.2s, v0\.2d, #1
+ *[0-9a-f]+: 4f089400 sqshrn2 v0\.16b, v0\.8h, #8
+ *[0-9a-f]+: 4f08941f sqshrn2 v31\.16b, v0\.8h, #8
+ *[0-9a-f]+: 4f0897e0 sqshrn2 v0\.16b, v31\.8h, #8
+ *[0-9a-f]+: 4f0f9400 sqshrn2 v0\.16b, v0\.8h, #1
+ *[0-9a-f]+: 4f109400 sqshrn2 v0\.8h, v0\.4s, #16
+ *[0-9a-f]+: 4f10941f sqshrn2 v31\.8h, v0\.4s, #16
+ *[0-9a-f]+: 4f1097e0 sqshrn2 v0\.8h, v31\.4s, #16
+ *[0-9a-f]+: 4f1f9400 sqshrn2 v0\.8h, v0\.4s, #1
+ *[0-9a-f]+: 4f209400 sqshrn2 v0\.4s, v0\.2d, #32
+ *[0-9a-f]+: 4f20941f sqshrn2 v31\.4s, v0\.2d, #32
+ *[0-9a-f]+: 4f2097e0 sqshrn2 v0\.4s, v31\.2d, #32
+ *[0-9a-f]+: 4f3f9400 sqshrn2 v0\.4s, v0\.2d, #1
+ *[0-9a-f]+: 0f089c00 sqrshrn v0\.8b, v0\.8h, #8
+ *[0-9a-f]+: 0f089c1f sqrshrn v31\.8b, v0\.8h, #8
+ *[0-9a-f]+: 0f089fe0 sqrshrn v0\.8b, v31\.8h, #8
+ *[0-9a-f]+: 0f0f9c00 sqrshrn v0\.8b, v0\.8h, #1
+ *[0-9a-f]+: 0f109c00 sqrshrn v0\.4h, v0\.4s, #16
+ *[0-9a-f]+: 0f109c1f sqrshrn v31\.4h, v0\.4s, #16
+ *[0-9a-f]+: 0f109fe0 sqrshrn v0\.4h, v31\.4s, #16
+ *[0-9a-f]+: 0f1f9c00 sqrshrn v0\.4h, v0\.4s, #1
+ *[0-9a-f]+: 0f209c00 sqrshrn v0\.2s, v0\.2d, #32
+ *[0-9a-f]+: 0f209c1f sqrshrn v31\.2s, v0\.2d, #32
+ *[0-9a-f]+: 0f209fe0 sqrshrn v0\.2s, v31\.2d, #32
+ *[0-9a-f]+: 0f3f9c00 sqrshrn v0\.2s, v0\.2d, #1
+ *[0-9a-f]+: 4f089c00 sqrshrn2 v0\.16b, v0\.8h, #8
+ *[0-9a-f]+: 4f089c1f sqrshrn2 v31\.16b, v0\.8h, #8
+ *[0-9a-f]+: 4f089fe0 sqrshrn2 v0\.16b, v31\.8h, #8
+ *[0-9a-f]+: 4f0f9c00 sqrshrn2 v0\.16b, v0\.8h, #1
+ *[0-9a-f]+: 4f109c00 sqrshrn2 v0\.8h, v0\.4s, #16
+ *[0-9a-f]+: 4f109c1f sqrshrn2 v31\.8h, v0\.4s, #16
+ *[0-9a-f]+: 4f109fe0 sqrshrn2 v0\.8h, v31\.4s, #16
+ *[0-9a-f]+: 4f1f9c00 sqrshrn2 v0\.8h, v0\.4s, #1
+ *[0-9a-f]+: 4f209c00 sqrshrn2 v0\.4s, v0\.2d, #32
+ *[0-9a-f]+: 4f209c1f sqrshrn2 v31\.4s, v0\.2d, #32
+ *[0-9a-f]+: 4f209fe0 sqrshrn2 v0\.4s, v31\.2d, #32
+ *[0-9a-f]+: 4f3f9c00 sqrshrn2 v0\.4s, v0\.2d, #1
+ *[0-9a-f]+: 2f080400 ushr v0\.8b, v0\.8b, #8
+ *[0-9a-f]+: 2f08041f ushr v31\.8b, v0\.8b, #8
+ *[0-9a-f]+: 2f0807e0 ushr v0\.8b, v31\.8b, #8
+ *[0-9a-f]+: 2f0f0400 ushr v0\.8b, v0\.8b, #1
+ *[0-9a-f]+: 2f100400 ushr v0\.4h, v0\.4h, #16
+ *[0-9a-f]+: 2f10041f ushr v31\.4h, v0\.4h, #16
+ *[0-9a-f]+: 2f1007e0 ushr v0\.4h, v31\.4h, #16
+ *[0-9a-f]+: 2f1f0400 ushr v0\.4h, v0\.4h, #1
+ *[0-9a-f]+: 2f200400 ushr v0\.2s, v0\.2s, #32
+ *[0-9a-f]+: 2f20041f ushr v31\.2s, v0\.2s, #32
+ *[0-9a-f]+: 2f2007e0 ushr v0\.2s, v31\.2s, #32
+ *[0-9a-f]+: 2f3f0400 ushr v0\.2s, v0\.2s, #1
+ *[0-9a-f]+: 6f080400 ushr v0\.16b, v0\.16b, #8
+ *[0-9a-f]+: 6f08041f ushr v31\.16b, v0\.16b, #8
+ *[0-9a-f]+: 6f0807e0 ushr v0\.16b, v31\.16b, #8
+ *[0-9a-f]+: 6f0f0400 ushr v0\.16b, v0\.16b, #1
+ *[0-9a-f]+: 6f100400 ushr v0\.8h, v0\.8h, #16
+ *[0-9a-f]+: 6f10041f ushr v31\.8h, v0\.8h, #16
+ *[0-9a-f]+: 6f1007e0 ushr v0\.8h, v31\.8h, #16
+ *[0-9a-f]+: 6f1f0400 ushr v0\.8h, v0\.8h, #1
+ *[0-9a-f]+: 6f200400 ushr v0\.4s, v0\.4s, #32
+ *[0-9a-f]+: 6f20041f ushr v31\.4s, v0\.4s, #32
+ *[0-9a-f]+: 6f2007e0 ushr v0\.4s, v31\.4s, #32
+ *[0-9a-f]+: 6f3f0400 ushr v0\.4s, v0\.4s, #1
+ *[0-9a-f]+: 6f400400 ushr v0\.2d, v0\.2d, #64
+ *[0-9a-f]+: 6f40041f ushr v31\.2d, v0\.2d, #64
+ *[0-9a-f]+: 6f4007e0 ushr v0\.2d, v31\.2d, #64
+ *[0-9a-f]+: 6f7f0400 ushr v0\.2d, v0\.2d, #1
+ *[0-9a-f]+: 2f081400 usra v0\.8b, v0\.8b, #8
+ *[0-9a-f]+: 2f08141f usra v31\.8b, v0\.8b, #8
+ *[0-9a-f]+: 2f0817e0 usra v0\.8b, v31\.8b, #8
+ *[0-9a-f]+: 2f0f1400 usra v0\.8b, v0\.8b, #1
+ *[0-9a-f]+: 2f101400 usra v0\.4h, v0\.4h, #16
+ *[0-9a-f]+: 2f10141f usra v31\.4h, v0\.4h, #16
+ *[0-9a-f]+: 2f1017e0 usra v0\.4h, v31\.4h, #16
+ *[0-9a-f]+: 2f1f1400 usra v0\.4h, v0\.4h, #1
+ *[0-9a-f]+: 2f201400 usra v0\.2s, v0\.2s, #32
+ *[0-9a-f]+: 2f20141f usra v31\.2s, v0\.2s, #32
+ *[0-9a-f]+: 2f2017e0 usra v0\.2s, v31\.2s, #32
+ *[0-9a-f]+: 2f3f1400 usra v0\.2s, v0\.2s, #1
+ *[0-9a-f]+: 6f081400 usra v0\.16b, v0\.16b, #8
+ *[0-9a-f]+: 6f08141f usra v31\.16b, v0\.16b, #8
+ *[0-9a-f]+: 6f0817e0 usra v0\.16b, v31\.16b, #8
+ *[0-9a-f]+: 6f0f1400 usra v0\.16b, v0\.16b, #1
+ *[0-9a-f]+: 6f101400 usra v0\.8h, v0\.8h, #16
+ *[0-9a-f]+: 6f10141f usra v31\.8h, v0\.8h, #16
+ *[0-9a-f]+: 6f1017e0 usra v0\.8h, v31\.8h, #16
+ *[0-9a-f]+: 6f1f1400 usra v0\.8h, v0\.8h, #1
+ *[0-9a-f]+: 6f201400 usra v0\.4s, v0\.4s, #32
+ *[0-9a-f]+: 6f20141f usra v31\.4s, v0\.4s, #32
+ *[0-9a-f]+: 6f2017e0 usra v0\.4s, v31\.4s, #32
+ *[0-9a-f]+: 6f3f1400 usra v0\.4s, v0\.4s, #1
+ *[0-9a-f]+: 6f401400 usra v0\.2d, v0\.2d, #64
+ *[0-9a-f]+: 6f40141f usra v31\.2d, v0\.2d, #64
+ *[0-9a-f]+: 6f4017e0 usra v0\.2d, v31\.2d, #64
+ *[0-9a-f]+: 6f7f1400 usra v0\.2d, v0\.2d, #1
+ *[0-9a-f]+: 2f082400 urshr v0\.8b, v0\.8b, #8
+ *[0-9a-f]+: 2f08241f urshr v31\.8b, v0\.8b, #8
+ *[0-9a-f]+: 2f0827e0 urshr v0\.8b, v31\.8b, #8
+ *[0-9a-f]+: 2f0f2400 urshr v0\.8b, v0\.8b, #1
+ *[0-9a-f]+: 2f102400 urshr v0\.4h, v0\.4h, #16
+ *[0-9a-f]+: 2f10241f urshr v31\.4h, v0\.4h, #16
+ *[0-9a-f]+: 2f1027e0 urshr v0\.4h, v31\.4h, #16
+ *[0-9a-f]+: 2f1f2400 urshr v0\.4h, v0\.4h, #1
+ *[0-9a-f]+: 2f202400 urshr v0\.2s, v0\.2s, #32
+ *[0-9a-f]+: 2f20241f urshr v31\.2s, v0\.2s, #32
+ *[0-9a-f]+: 2f2027e0 urshr v0\.2s, v31\.2s, #32
+ *[0-9a-f]+: 2f3f2400 urshr v0\.2s, v0\.2s, #1
+ *[0-9a-f]+: 6f082400 urshr v0\.16b, v0\.16b, #8
+ *[0-9a-f]+: 6f08241f urshr v31\.16b, v0\.16b, #8
+ *[0-9a-f]+: 6f0827e0 urshr v0\.16b, v31\.16b, #8
+ *[0-9a-f]+: 6f0f2400 urshr v0\.16b, v0\.16b, #1
+ *[0-9a-f]+: 6f102400 urshr v0\.8h, v0\.8h, #16
+ *[0-9a-f]+: 6f10241f urshr v31\.8h, v0\.8h, #16
+ *[0-9a-f]+: 6f1027e0 urshr v0\.8h, v31\.8h, #16
+ *[0-9a-f]+: 6f1f2400 urshr v0\.8h, v0\.8h, #1
+ *[0-9a-f]+: 6f202400 urshr v0\.4s, v0\.4s, #32
+ *[0-9a-f]+: 6f20241f urshr v31\.4s, v0\.4s, #32
+ *[0-9a-f]+: 6f2027e0 urshr v0\.4s, v31\.4s, #32
+ *[0-9a-f]+: 6f3f2400 urshr v0\.4s, v0\.4s, #1
+ *[0-9a-f]+: 6f402400 urshr v0\.2d, v0\.2d, #64
+ *[0-9a-f]+: 6f40241f urshr v31\.2d, v0\.2d, #64
+ *[0-9a-f]+: 6f4027e0 urshr v0\.2d, v31\.2d, #64
+ *[0-9a-f]+: 6f7f2400 urshr v0\.2d, v0\.2d, #1
+ *[0-9a-f]+: 2f083400 ursra v0\.8b, v0\.8b, #8
+ *[0-9a-f]+: 2f08341f ursra v31\.8b, v0\.8b, #8
+ *[0-9a-f]+: 2f0837e0 ursra v0\.8b, v31\.8b, #8
+ *[0-9a-f]+: 2f0f3400 ursra v0\.8b, v0\.8b, #1
+ *[0-9a-f]+: 2f103400 ursra v0\.4h, v0\.4h, #16
+ *[0-9a-f]+: 2f10341f ursra v31\.4h, v0\.4h, #16
+ *[0-9a-f]+: 2f1037e0 ursra v0\.4h, v31\.4h, #16
+ *[0-9a-f]+: 2f1f3400 ursra v0\.4h, v0\.4h, #1
+ *[0-9a-f]+: 2f203400 ursra v0\.2s, v0\.2s, #32
+ *[0-9a-f]+: 2f20341f ursra v31\.2s, v0\.2s, #32
+ *[0-9a-f]+: 2f2037e0 ursra v0\.2s, v31\.2s, #32
+ *[0-9a-f]+: 2f3f3400 ursra v0\.2s, v0\.2s, #1
+ *[0-9a-f]+: 6f083400 ursra v0\.16b, v0\.16b, #8
+ *[0-9a-f]+: 6f08341f ursra v31\.16b, v0\.16b, #8
+ *[0-9a-f]+: 6f0837e0 ursra v0\.16b, v31\.16b, #8
+ *[0-9a-f]+: 6f0f3400 ursra v0\.16b, v0\.16b, #1
+ *[0-9a-f]+: 6f103400 ursra v0\.8h, v0\.8h, #16
+ *[0-9a-f]+: 6f10341f ursra v31\.8h, v0\.8h, #16
+ *[0-9a-f]+: 6f1037e0 ursra v0\.8h, v31\.8h, #16
+ *[0-9a-f]+: 6f1f3400 ursra v0\.8h, v0\.8h, #1
+ *[0-9a-f]+: 6f203400 ursra v0\.4s, v0\.4s, #32
+ *[0-9a-f]+: 6f20341f ursra v31\.4s, v0\.4s, #32
+ *[0-9a-f]+: 6f2037e0 ursra v0\.4s, v31\.4s, #32
+ *[0-9a-f]+: 6f3f3400 ursra v0\.4s, v0\.4s, #1
+ *[0-9a-f]+: 6f403400 ursra v0\.2d, v0\.2d, #64
+ *[0-9a-f]+: 6f40341f ursra v31\.2d, v0\.2d, #64
+ *[0-9a-f]+: 6f4037e0 ursra v0\.2d, v31\.2d, #64
+ *[0-9a-f]+: 6f7f3400 ursra v0\.2d, v0\.2d, #1
+ *[0-9a-f]+: 2f084400 sri v0\.8b, v0\.8b, #8
+ *[0-9a-f]+: 2f08441f sri v31\.8b, v0\.8b, #8
+ *[0-9a-f]+: 2f0847e0 sri v0\.8b, v31\.8b, #8
+ *[0-9a-f]+: 2f0f4400 sri v0\.8b, v0\.8b, #1
+ *[0-9a-f]+: 2f104400 sri v0\.4h, v0\.4h, #16
+ *[0-9a-f]+: 2f10441f sri v31\.4h, v0\.4h, #16
+ *[0-9a-f]+: 2f1047e0 sri v0\.4h, v31\.4h, #16
+ *[0-9a-f]+: 2f1f4400 sri v0\.4h, v0\.4h, #1
+ *[0-9a-f]+: 2f204400 sri v0\.2s, v0\.2s, #32
+ *[0-9a-f]+: 2f20441f sri v31\.2s, v0\.2s, #32
+ *[0-9a-f]+: 2f2047e0 sri v0\.2s, v31\.2s, #32
+ *[0-9a-f]+: 2f3f4400 sri v0\.2s, v0\.2s, #1
+ *[0-9a-f]+: 6f084400 sri v0\.16b, v0\.16b, #8
+ *[0-9a-f]+: 6f08441f sri v31\.16b, v0\.16b, #8
+ *[0-9a-f]+: 6f0847e0 sri v0\.16b, v31\.16b, #8
+ *[0-9a-f]+: 6f0f4400 sri v0\.16b, v0\.16b, #1
+ *[0-9a-f]+: 6f104400 sri v0\.8h, v0\.8h, #16
+ *[0-9a-f]+: 6f10441f sri v31\.8h, v0\.8h, #16
+ *[0-9a-f]+: 6f1047e0 sri v0\.8h, v31\.8h, #16
+ *[0-9a-f]+: 6f1f4400 sri v0\.8h, v0\.8h, #1
+ *[0-9a-f]+: 6f204400 sri v0\.4s, v0\.4s, #32
+ *[0-9a-f]+: 6f20441f sri v31\.4s, v0\.4s, #32
+ *[0-9a-f]+: 6f2047e0 sri v0\.4s, v31\.4s, #32
+ *[0-9a-f]+: 6f3f4400 sri v0\.4s, v0\.4s, #1
+ *[0-9a-f]+: 6f404400 sri v0\.2d, v0\.2d, #64
+ *[0-9a-f]+: 6f40441f sri v31\.2d, v0\.2d, #64
+ *[0-9a-f]+: 6f4047e0 sri v0\.2d, v31\.2d, #64
+ *[0-9a-f]+: 6f7f4400 sri v0\.2d, v0\.2d, #1
+ *[0-9a-f]+: 2f085400 sli v0\.8b, v0\.8b, #0
+ *[0-9a-f]+: 2f08541f sli v31\.8b, v0\.8b, #0
+ *[0-9a-f]+: 2f0857e0 sli v0\.8b, v31\.8b, #0
+ *[0-9a-f]+: 2f0f5400 sli v0\.8b, v0\.8b, #7
+ *[0-9a-f]+: 2f105400 sli v0\.4h, v0\.4h, #0
+ *[0-9a-f]+: 2f10541f sli v31\.4h, v0\.4h, #0
+ *[0-9a-f]+: 2f1057e0 sli v0\.4h, v31\.4h, #0
+ *[0-9a-f]+: 2f1f5400 sli v0\.4h, v0\.4h, #15
+ *[0-9a-f]+: 2f205400 sli v0\.2s, v0\.2s, #0
+ *[0-9a-f]+: 2f20541f sli v31\.2s, v0\.2s, #0
+ *[0-9a-f]+: 2f2057e0 sli v0\.2s, v31\.2s, #0
+ *[0-9a-f]+: 2f3f5400 sli v0\.2s, v0\.2s, #31
+ *[0-9a-f]+: 6f085400 sli v0\.16b, v0\.16b, #0
+ *[0-9a-f]+: 6f08541f sli v31\.16b, v0\.16b, #0
+ *[0-9a-f]+: 6f0857e0 sli v0\.16b, v31\.16b, #0
+ *[0-9a-f]+: 6f0f5400 sli v0\.16b, v0\.16b, #7
+ *[0-9a-f]+: 6f105400 sli v0\.8h, v0\.8h, #0
+ *[0-9a-f]+: 6f10541f sli v31\.8h, v0\.8h, #0
+ *[0-9a-f]+: 6f1057e0 sli v0\.8h, v31\.8h, #0
+ *[0-9a-f]+: 6f1f5400 sli v0\.8h, v0\.8h, #15
+ *[0-9a-f]+: 6f205400 sli v0\.4s, v0\.4s, #0
+ *[0-9a-f]+: 6f20541f sli v31\.4s, v0\.4s, #0
+ *[0-9a-f]+: 6f2057e0 sli v0\.4s, v31\.4s, #0
+ *[0-9a-f]+: 6f3f5400 sli v0\.4s, v0\.4s, #31
+ *[0-9a-f]+: 6f405400 sli v0\.2d, v0\.2d, #0
+ *[0-9a-f]+: 6f40541f sli v31\.2d, v0\.2d, #0
+ *[0-9a-f]+: 6f4057e0 sli v0\.2d, v31\.2d, #0
+ *[0-9a-f]+: 6f7f5400 sli v0\.2d, v0\.2d, #63
+ *[0-9a-f]+: 2f086400 sqshlu v0\.8b, v0\.8b, #0
+ *[0-9a-f]+: 2f08641f sqshlu v31\.8b, v0\.8b, #0
+ *[0-9a-f]+: 2f0867e0 sqshlu v0\.8b, v31\.8b, #0
+ *[0-9a-f]+: 2f0f6400 sqshlu v0\.8b, v0\.8b, #7
+ *[0-9a-f]+: 2f106400 sqshlu v0\.4h, v0\.4h, #0
+ *[0-9a-f]+: 2f10641f sqshlu v31\.4h, v0\.4h, #0
+ *[0-9a-f]+: 2f1067e0 sqshlu v0\.4h, v31\.4h, #0
+ *[0-9a-f]+: 2f1f6400 sqshlu v0\.4h, v0\.4h, #15
+ *[0-9a-f]+: 2f206400 sqshlu v0\.2s, v0\.2s, #0
+ *[0-9a-f]+: 2f20641f sqshlu v31\.2s, v0\.2s, #0
+ *[0-9a-f]+: 2f2067e0 sqshlu v0\.2s, v31\.2s, #0
+ *[0-9a-f]+: 2f3f6400 sqshlu v0\.2s, v0\.2s, #31
+ *[0-9a-f]+: 6f086400 sqshlu v0\.16b, v0\.16b, #0
+ *[0-9a-f]+: 6f08641f sqshlu v31\.16b, v0\.16b, #0
+ *[0-9a-f]+: 6f0867e0 sqshlu v0\.16b, v31\.16b, #0
+ *[0-9a-f]+: 6f0f6400 sqshlu v0\.16b, v0\.16b, #7
+ *[0-9a-f]+: 6f106400 sqshlu v0\.8h, v0\.8h, #0
+ *[0-9a-f]+: 6f10641f sqshlu v31\.8h, v0\.8h, #0
+ *[0-9a-f]+: 6f1067e0 sqshlu v0\.8h, v31\.8h, #0
+ *[0-9a-f]+: 6f1f6400 sqshlu v0\.8h, v0\.8h, #15
+ *[0-9a-f]+: 6f206400 sqshlu v0\.4s, v0\.4s, #0
+ *[0-9a-f]+: 6f20641f sqshlu v31\.4s, v0\.4s, #0
+ *[0-9a-f]+: 6f2067e0 sqshlu v0\.4s, v31\.4s, #0
+ *[0-9a-f]+: 6f3f6400 sqshlu v0\.4s, v0\.4s, #31
+ *[0-9a-f]+: 6f406400 sqshlu v0\.2d, v0\.2d, #0
+ *[0-9a-f]+: 6f40641f sqshlu v31\.2d, v0\.2d, #0
+ *[0-9a-f]+: 6f4067e0 sqshlu v0\.2d, v31\.2d, #0
+ *[0-9a-f]+: 6f7f6400 sqshlu v0\.2d, v0\.2d, #63
+ *[0-9a-f]+: 2f087400 uqshl v0\.8b, v0\.8b, #0
+ *[0-9a-f]+: 2f08741f uqshl v31\.8b, v0\.8b, #0
+ *[0-9a-f]+: 2f0877e0 uqshl v0\.8b, v31\.8b, #0
+ *[0-9a-f]+: 2f0f7400 uqshl v0\.8b, v0\.8b, #7
+ *[0-9a-f]+: 2f107400 uqshl v0\.4h, v0\.4h, #0
+ *[0-9a-f]+: 2f10741f uqshl v31\.4h, v0\.4h, #0
+ *[0-9a-f]+: 2f1077e0 uqshl v0\.4h, v31\.4h, #0
+ *[0-9a-f]+: 2f1f7400 uqshl v0\.4h, v0\.4h, #15
+ *[0-9a-f]+: 2f207400 uqshl v0\.2s, v0\.2s, #0
+ *[0-9a-f]+: 2f20741f uqshl v31\.2s, v0\.2s, #0
+ *[0-9a-f]+: 2f2077e0 uqshl v0\.2s, v31\.2s, #0
+ *[0-9a-f]+: 2f3f7400 uqshl v0\.2s, v0\.2s, #31
+ *[0-9a-f]+: 6f087400 uqshl v0\.16b, v0\.16b, #0
+ *[0-9a-f]+: 6f08741f uqshl v31\.16b, v0\.16b, #0
+ *[0-9a-f]+: 6f0877e0 uqshl v0\.16b, v31\.16b, #0
+ *[0-9a-f]+: 6f0f7400 uqshl v0\.16b, v0\.16b, #7
+ *[0-9a-f]+: 6f107400 uqshl v0\.8h, v0\.8h, #0
+ *[0-9a-f]+: 6f10741f uqshl v31\.8h, v0\.8h, #0
+ *[0-9a-f]+: 6f1077e0 uqshl v0\.8h, v31\.8h, #0
+ *[0-9a-f]+: 6f1f7400 uqshl v0\.8h, v0\.8h, #15
+ *[0-9a-f]+: 6f207400 uqshl v0\.4s, v0\.4s, #0
+ *[0-9a-f]+: 6f20741f uqshl v31\.4s, v0\.4s, #0
+ *[0-9a-f]+: 6f2077e0 uqshl v0\.4s, v31\.4s, #0
+ *[0-9a-f]+: 6f3f7400 uqshl v0\.4s, v0\.4s, #31
+ *[0-9a-f]+: 6f407400 uqshl v0\.2d, v0\.2d, #0
+ *[0-9a-f]+: 6f40741f uqshl v31\.2d, v0\.2d, #0
+ *[0-9a-f]+: 6f4077e0 uqshl v0\.2d, v31\.2d, #0
+ *[0-9a-f]+: 6f7f7400 uqshl v0\.2d, v0\.2d, #63
+ *[0-9a-f]+: 2f088400 sqshrun v0\.8b, v0\.8h, #8
+ *[0-9a-f]+: 2f08841f sqshrun v31\.8b, v0\.8h, #8
+ *[0-9a-f]+: 2f0887e0 sqshrun v0\.8b, v31\.8h, #8
+ *[0-9a-f]+: 2f0f8400 sqshrun v0\.8b, v0\.8h, #1
+ *[0-9a-f]+: 2f108400 sqshrun v0\.4h, v0\.4s, #16
+ *[0-9a-f]+: 2f10841f sqshrun v31\.4h, v0\.4s, #16
+ *[0-9a-f]+: 2f1087e0 sqshrun v0\.4h, v31\.4s, #16
+ *[0-9a-f]+: 2f1f8400 sqshrun v0\.4h, v0\.4s, #1
+ *[0-9a-f]+: 2f208400 sqshrun v0\.2s, v0\.2d, #32
+ *[0-9a-f]+: 2f20841f sqshrun v31\.2s, v0\.2d, #32
+ *[0-9a-f]+: 2f2087e0 sqshrun v0\.2s, v31\.2d, #32
+ *[0-9a-f]+: 2f3f8400 sqshrun v0\.2s, v0\.2d, #1
+ *[0-9a-f]+: 6f088400 sqshrun2 v0\.16b, v0\.8h, #8
+ *[0-9a-f]+: 6f08841f sqshrun2 v31\.16b, v0\.8h, #8
+ *[0-9a-f]+: 6f0887e0 sqshrun2 v0\.16b, v31\.8h, #8
+ *[0-9a-f]+: 6f0f8400 sqshrun2 v0\.16b, v0\.8h, #1
+ *[0-9a-f]+: 6f108400 sqshrun2 v0\.8h, v0\.4s, #16
+ *[0-9a-f]+: 6f10841f sqshrun2 v31\.8h, v0\.4s, #16
+ *[0-9a-f]+: 6f1087e0 sqshrun2 v0\.8h, v31\.4s, #16
+ *[0-9a-f]+: 6f1f8400 sqshrun2 v0\.8h, v0\.4s, #1
+ *[0-9a-f]+: 6f208400 sqshrun2 v0\.4s, v0\.2d, #32
+ *[0-9a-f]+: 6f20841f sqshrun2 v31\.4s, v0\.2d, #32
+ *[0-9a-f]+: 6f2087e0 sqshrun2 v0\.4s, v31\.2d, #32
+ *[0-9a-f]+: 6f3f8400 sqshrun2 v0\.4s, v0\.2d, #1
+ *[0-9a-f]+: 2f088c00 sqrshrun v0\.8b, v0\.8h, #8
+ *[0-9a-f]+: 2f088c1f sqrshrun v31\.8b, v0\.8h, #8
+ *[0-9a-f]+: 2f088fe0 sqrshrun v0\.8b, v31\.8h, #8
+ *[0-9a-f]+: 2f0f8c00 sqrshrun v0\.8b, v0\.8h, #1
+ *[0-9a-f]+: 2f108c00 sqrshrun v0\.4h, v0\.4s, #16
+ *[0-9a-f]+: 2f108c1f sqrshrun v31\.4h, v0\.4s, #16
+ *[0-9a-f]+: 2f108fe0 sqrshrun v0\.4h, v31\.4s, #16
+ *[0-9a-f]+: 2f1f8c00 sqrshrun v0\.4h, v0\.4s, #1
+ *[0-9a-f]+: 2f208c00 sqrshrun v0\.2s, v0\.2d, #32
+ *[0-9a-f]+: 2f208c1f sqrshrun v31\.2s, v0\.2d, #32
+ *[0-9a-f]+: 2f208fe0 sqrshrun v0\.2s, v31\.2d, #32
+ *[0-9a-f]+: 2f3f8c00 sqrshrun v0\.2s, v0\.2d, #1
+ *[0-9a-f]+: 6f088c00 sqrshrun2 v0\.16b, v0\.8h, #8
+ *[0-9a-f]+: 6f088c1f sqrshrun2 v31\.16b, v0\.8h, #8
+ *[0-9a-f]+: 6f088fe0 sqrshrun2 v0\.16b, v31\.8h, #8
+ *[0-9a-f]+: 6f0f8c00 sqrshrun2 v0\.16b, v0\.8h, #1
+ *[0-9a-f]+: 6f108c00 sqrshrun2 v0\.8h, v0\.4s, #16
+ *[0-9a-f]+: 6f108c1f sqrshrun2 v31\.8h, v0\.4s, #16
+ *[0-9a-f]+: 6f108fe0 sqrshrun2 v0\.8h, v31\.4s, #16
+ *[0-9a-f]+: 6f1f8c00 sqrshrun2 v0\.8h, v0\.4s, #1
+ *[0-9a-f]+: 6f208c00 sqrshrun2 v0\.4s, v0\.2d, #32
+ *[0-9a-f]+: 6f208c1f sqrshrun2 v31\.4s, v0\.2d, #32
+ *[0-9a-f]+: 6f208fe0 sqrshrun2 v0\.4s, v31\.2d, #32
+ *[0-9a-f]+: 6f3f8c00 sqrshrun2 v0\.4s, v0\.2d, #1
+ *[0-9a-f]+: 2f089400 uqshrn v0\.8b, v0\.8h, #8
+ *[0-9a-f]+: 2f08941f uqshrn v31\.8b, v0\.8h, #8
+ *[0-9a-f]+: 2f0897e0 uqshrn v0\.8b, v31\.8h, #8
+ *[0-9a-f]+: 2f0f9400 uqshrn v0\.8b, v0\.8h, #1
+ *[0-9a-f]+: 2f109400 uqshrn v0\.4h, v0\.4s, #16
+ *[0-9a-f]+: 2f10941f uqshrn v31\.4h, v0\.4s, #16
+ *[0-9a-f]+: 2f1097e0 uqshrn v0\.4h, v31\.4s, #16
+ *[0-9a-f]+: 2f1f9400 uqshrn v0\.4h, v0\.4s, #1
+ *[0-9a-f]+: 2f209400 uqshrn v0\.2s, v0\.2d, #32
+ *[0-9a-f]+: 2f20941f uqshrn v31\.2s, v0\.2d, #32
+ *[0-9a-f]+: 2f2097e0 uqshrn v0\.2s, v31\.2d, #32
+ *[0-9a-f]+: 2f3f9400 uqshrn v0\.2s, v0\.2d, #1
+ *[0-9a-f]+: 6f089400 uqshrn2 v0\.16b, v0\.8h, #8
+ *[0-9a-f]+: 6f08941f uqshrn2 v31\.16b, v0\.8h, #8
+ *[0-9a-f]+: 6f0897e0 uqshrn2 v0\.16b, v31\.8h, #8
+ *[0-9a-f]+: 6f0f9400 uqshrn2 v0\.16b, v0\.8h, #1
+ *[0-9a-f]+: 6f109400 uqshrn2 v0\.8h, v0\.4s, #16
+ *[0-9a-f]+: 6f10941f uqshrn2 v31\.8h, v0\.4s, #16
+ *[0-9a-f]+: 6f1097e0 uqshrn2 v0\.8h, v31\.4s, #16
+ *[0-9a-f]+: 6f1f9400 uqshrn2 v0\.8h, v0\.4s, #1
+ *[0-9a-f]+: 6f209400 uqshrn2 v0\.4s, v0\.2d, #32
+ *[0-9a-f]+: 6f20941f uqshrn2 v31\.4s, v0\.2d, #32
+ *[0-9a-f]+: 6f2097e0 uqshrn2 v0\.4s, v31\.2d, #32
+ *[0-9a-f]+: 6f3f9400 uqshrn2 v0\.4s, v0\.2d, #1
+ *[0-9a-f]+: 2f089c00 uqrshrn v0\.8b, v0\.8h, #8
+ *[0-9a-f]+: 2f089c1f uqrshrn v31\.8b, v0\.8h, #8
+ *[0-9a-f]+: 2f089fe0 uqrshrn v0\.8b, v31\.8h, #8
+ *[0-9a-f]+: 2f0f9c00 uqrshrn v0\.8b, v0\.8h, #1
+ *[0-9a-f]+: 2f109c00 uqrshrn v0\.4h, v0\.4s, #16
+ *[0-9a-f]+: 2f109c1f uqrshrn v31\.4h, v0\.4s, #16
+ *[0-9a-f]+: 2f109fe0 uqrshrn v0\.4h, v31\.4s, #16
+ *[0-9a-f]+: 2f1f9c00 uqrshrn v0\.4h, v0\.4s, #1
+ *[0-9a-f]+: 2f209c00 uqrshrn v0\.2s, v0\.2d, #32
+ *[0-9a-f]+: 2f209c1f uqrshrn v31\.2s, v0\.2d, #32
+ *[0-9a-f]+: 2f209fe0 uqrshrn v0\.2s, v31\.2d, #32
+ *[0-9a-f]+: 2f3f9c00 uqrshrn v0\.2s, v0\.2d, #1
+ *[0-9a-f]+: 6f089c00 uqrshrn2 v0\.16b, v0\.8h, #8
+ *[0-9a-f]+: 6f089c1f uqrshrn2 v31\.16b, v0\.8h, #8
+ *[0-9a-f]+: 6f089fe0 uqrshrn2 v0\.16b, v31\.8h, #8
+ *[0-9a-f]+: 6f0f9c00 uqrshrn2 v0\.16b, v0\.8h, #1
+ *[0-9a-f]+: 6f109c00 uqrshrn2 v0\.8h, v0\.4s, #16
+ *[0-9a-f]+: 6f109c1f uqrshrn2 v31\.8h, v0\.4s, #16
+ *[0-9a-f]+: 6f109fe0 uqrshrn2 v0\.8h, v31\.4s, #16
+ *[0-9a-f]+: 6f1f9c00 uqrshrn2 v0\.8h, v0\.4s, #1
+ *[0-9a-f]+: 6f209c00 uqrshrn2 v0\.4s, v0\.2d, #32
+ *[0-9a-f]+: 6f209c1f uqrshrn2 v31\.4s, v0\.2d, #32
+ *[0-9a-f]+: 6f209fe0 uqrshrn2 v0\.4s, v31\.2d, #32
+ *[0-9a-f]+: 6f3f9c00 uqrshrn2 v0\.4s, v0\.2d, #1
diff --git a/gas/testsuite/gas/aarch64/advsimd-shift-immediate.s b/gas/testsuite/gas/aarch64/advsimd-shift-immediate.s
new file mode 100644
index 0000000..c07a15c
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-shift-immediate.s
@@ -0,0 +1,605 @@
+ sshr v0.8b, v0.8b, #8
+ sshr v31.8b, v0.8b, #8
+ sshr v0.8b, v31.8b, #8
+ sshr v0.8b, v0.8b, #1
+ sshr v0.4h, v0.4h, #16
+ sshr v31.4h, v0.4h, #16
+ sshr v0.4h, v31.4h, #16
+ sshr v0.4h, v0.4h, #1
+ sshr v0.2s, v0.2s, #32
+ sshr v31.2s, v0.2s, #32
+ sshr v0.2s, v31.2s, #32
+ sshr v0.2s, v0.2s, #1
+ sshr v0.16b, v0.16b, #8
+ sshr v31.16b, v0.16b, #8
+ sshr v0.16b, v31.16b, #8
+ sshr v0.16b, v0.16b, #1
+ sshr v0.8h, v0.8h, #16
+ sshr v31.8h, v0.8h, #16
+ sshr v0.8h, v31.8h, #16
+ sshr v0.8h, v0.8h, #1
+ sshr v0.4s, v0.4s, #32
+ sshr v31.4s, v0.4s, #32
+ sshr v0.4s, v31.4s, #32
+ sshr v0.4s, v0.4s, #1
+ sshr v0.2d, v0.2d, #64
+ sshr v31.2d, v0.2d, #64
+ sshr v0.2d, v31.2d, #64
+ sshr v0.2d, v0.2d, #1
+
+ ssra v0.8b, v0.8b, #8
+ ssra v31.8b, v0.8b, #8
+ ssra v0.8b, v31.8b, #8
+ ssra v0.8b, v0.8b, #1
+ ssra v0.4h, v0.4h, #16
+ ssra v31.4h, v0.4h, #16
+ ssra v0.4h, v31.4h, #16
+ ssra v0.4h, v0.4h, #1
+ ssra v0.2s, v0.2s, #32
+ ssra v31.2s, v0.2s, #32
+ ssra v0.2s, v31.2s, #32
+ ssra v0.2s, v0.2s, #1
+ ssra v0.16b, v0.16b, #8
+ ssra v31.16b, v0.16b, #8
+ ssra v0.16b, v31.16b, #8
+ ssra v0.16b, v0.16b, #1
+ ssra v0.8h, v0.8h, #16
+ ssra v31.8h, v0.8h, #16
+ ssra v0.8h, v31.8h, #16
+ ssra v0.8h, v0.8h, #1
+ ssra v0.4s, v0.4s, #32
+ ssra v31.4s, v0.4s, #32
+ ssra v0.4s, v31.4s, #32
+ ssra v0.4s, v0.4s, #1
+ ssra v0.2d, v0.2d, #64
+ ssra v31.2d, v0.2d, #64
+ ssra v0.2d, v31.2d, #64
+ ssra v0.2d, v0.2d, #1
+
+ srshr v0.8b, v0.8b, #8
+ srshr v31.8b, v0.8b, #8
+ srshr v0.8b, v31.8b, #8
+ srshr v0.8b, v0.8b, #1
+ srshr v0.4h, v0.4h, #16
+ srshr v31.4h, v0.4h, #16
+ srshr v0.4h, v31.4h, #16
+ srshr v0.4h, v0.4h, #1
+ srshr v0.2s, v0.2s, #32
+ srshr v31.2s, v0.2s, #32
+ srshr v0.2s, v31.2s, #32
+ srshr v0.2s, v0.2s, #1
+ srshr v0.16b, v0.16b, #8
+ srshr v31.16b, v0.16b, #8
+ srshr v0.16b, v31.16b, #8
+ srshr v0.16b, v0.16b, #1
+ srshr v0.8h, v0.8h, #16
+ srshr v31.8h, v0.8h, #16
+ srshr v0.8h, v31.8h, #16
+ srshr v0.8h, v0.8h, #1
+ srshr v0.4s, v0.4s, #32
+ srshr v31.4s, v0.4s, #32
+ srshr v0.4s, v31.4s, #32
+ srshr v0.4s, v0.4s, #1
+ srshr v0.2d, v0.2d, #64
+ srshr v31.2d, v0.2d, #64
+ srshr v0.2d, v31.2d, #64
+ srshr v0.2d, v0.2d, #1
+
+ srsra v0.8b, v0.8b, #8
+ srsra v31.8b, v0.8b, #8
+ srsra v0.8b, v31.8b, #8
+ srsra v0.8b, v0.8b, #1
+ srsra v0.4h, v0.4h, #16
+ srsra v31.4h, v0.4h, #16
+ srsra v0.4h, v31.4h, #16
+ srsra v0.4h, v0.4h, #1
+ srsra v0.2s, v0.2s, #32
+ srsra v31.2s, v0.2s, #32
+ srsra v0.2s, v31.2s, #32
+ srsra v0.2s, v0.2s, #1
+ srsra v0.16b, v0.16b, #8
+ srsra v31.16b, v0.16b, #8
+ srsra v0.16b, v31.16b, #8
+ srsra v0.16b, v0.16b, #1
+ srsra v0.8h, v0.8h, #16
+ srsra v31.8h, v0.8h, #16
+ srsra v0.8h, v31.8h, #16
+ srsra v0.8h, v0.8h, #1
+ srsra v0.4s, v0.4s, #32
+ srsra v31.4s, v0.4s, #32
+ srsra v0.4s, v31.4s, #32
+ srsra v0.4s, v0.4s, #1
+ srsra v0.2d, v0.2d, #64
+ srsra v31.2d, v0.2d, #64
+ srsra v0.2d, v31.2d, #64
+ srsra v0.2d, v0.2d, #1
+
+ shl v0.8b, v0.8b, #0
+ shl v31.8b, v0.8b, #0
+ shl v0.8b, v31.8b, #0
+ shl v0.8b, v0.8b, #7
+ shl v0.4h, v0.4h, #0
+ shl v31.4h, v0.4h, #0
+ shl v0.4h, v31.4h, #0
+ shl v0.4h, v0.4h, #15
+ shl v0.2s, v0.2s, #0
+ shl v31.2s, v0.2s, #0
+ shl v0.2s, v31.2s, #0
+ shl v0.2s, v0.2s, #31
+ shl v0.16b, v0.16b, #0
+ shl v31.16b, v0.16b, #0
+ shl v0.16b, v31.16b, #0
+ shl v0.16b, v0.16b, #7
+ shl v0.8h, v0.8h, #0
+ shl v31.8h, v0.8h, #0
+ shl v0.8h, v31.8h, #0
+ shl v0.8h, v0.8h, #15
+ shl v0.4s, v0.4s, #0
+ shl v31.4s, v0.4s, #0
+ shl v0.4s, v31.4s, #0
+ shl v0.4s, v0.4s, #31
+ shl v0.2d, v0.2d, #0
+ shl v31.2d, v0.2d, #0
+ shl v0.2d, v31.2d, #0
+ shl v0.2d, v0.2d, #63
+
+ sqshl v0.8b, v0.8b, #0
+ sqshl v31.8b, v0.8b, #0
+ sqshl v0.8b, v31.8b, #0
+ sqshl v0.8b, v0.8b, #7
+ sqshl v0.4h, v0.4h, #0
+ sqshl v31.4h, v0.4h, #0
+ sqshl v0.4h, v31.4h, #0
+ sqshl v0.4h, v0.4h, #15
+ sqshl v0.2s, v0.2s, #0
+ sqshl v31.2s, v0.2s, #0
+ sqshl v0.2s, v31.2s, #0
+ sqshl v0.2s, v0.2s, #31
+ sqshl v0.16b, v0.16b, #0
+ sqshl v31.16b, v0.16b, #0
+ sqshl v0.16b, v31.16b, #0
+ sqshl v0.16b, v0.16b, #7
+ sqshl v0.8h, v0.8h, #0
+ sqshl v31.8h, v0.8h, #0
+ sqshl v0.8h, v31.8h, #0
+ sqshl v0.8h, v0.8h, #15
+ sqshl v0.4s, v0.4s, #0
+ sqshl v31.4s, v0.4s, #0
+ sqshl v0.4s, v31.4s, #0
+ sqshl v0.4s, v0.4s, #31
+ sqshl v0.2d, v0.2d, #0
+ sqshl v31.2d, v0.2d, #0
+ sqshl v0.2d, v31.2d, #0
+ sqshl v0.2d, v0.2d, #63
+
+ shrn v0.8b, v0.8h, #8
+ shrn v31.8b, v0.8h, #8
+ shrn v0.8b, v31.8h, #8
+ shrn v0.8b, v0.8h, #1
+ shrn v0.4h, v0.4s, #16
+ shrn v31.4h, v0.4s, #16
+ shrn v0.4h, v31.4s, #16
+ shrn v0.4h, v0.4s, #1
+ shrn v0.2s, v0.2d, #32
+ shrn v31.2s, v0.2d, #32
+ shrn v0.2s, v31.2d, #32
+ shrn v0.2s, v0.2d, #1
+ shrn2 v0.16b, v0.8h, #8
+ shrn2 v31.16b, v0.8h, #8
+ shrn2 v0.16b, v31.8h, #8
+ shrn2 v0.16b, v0.8h, #1
+ shrn2 v0.8h, v0.4s, #16
+ shrn2 v31.8h, v0.4s, #16
+ shrn2 v0.8h, v31.4s, #16
+ shrn2 v0.8h, v0.4s, #1
+ shrn2 v0.4s, v0.2d, #32
+ shrn2 v31.4s, v0.2d, #32
+ shrn2 v0.4s, v31.2d, #32
+ shrn2 v0.4s, v0.2d, #1
+
+ rshrn v0.8b, v0.8h, #8
+ rshrn v31.8b, v0.8h, #8
+ rshrn v0.8b, v31.8h, #8
+ rshrn v0.8b, v0.8h, #1
+ rshrn v0.4h, v0.4s, #16
+ rshrn v31.4h, v0.4s, #16
+ rshrn v0.4h, v31.4s, #16
+ rshrn v0.4h, v0.4s, #1
+ rshrn v0.2s, v0.2d, #32
+ rshrn v31.2s, v0.2d, #32
+ rshrn v0.2s, v31.2d, #32
+ rshrn v0.2s, v0.2d, #1
+ rshrn2 v0.16b, v0.8h, #8
+ rshrn2 v31.16b, v0.8h, #8
+ rshrn2 v0.16b, v31.8h, #8
+ rshrn2 v0.16b, v0.8h, #1
+ rshrn2 v0.8h, v0.4s, #16
+ rshrn2 v31.8h, v0.4s, #16
+ rshrn2 v0.8h, v31.4s, #16
+ rshrn2 v0.8h, v0.4s, #1
+ rshrn2 v0.4s, v0.2d, #32
+ rshrn2 v31.4s, v0.2d, #32
+ rshrn2 v0.4s, v31.2d, #32
+ rshrn2 v0.4s, v0.2d, #1
+
+ sqshrn v0.8b, v0.8h, #8
+ sqshrn v31.8b, v0.8h, #8
+ sqshrn v0.8b, v31.8h, #8
+ sqshrn v0.8b, v0.8h, #1
+ sqshrn v0.4h, v0.4s, #16
+ sqshrn v31.4h, v0.4s, #16
+ sqshrn v0.4h, v31.4s, #16
+ sqshrn v0.4h, v0.4s, #1
+ sqshrn v0.2s, v0.2d, #32
+ sqshrn v31.2s, v0.2d, #32
+ sqshrn v0.2s, v31.2d, #32
+ sqshrn v0.2s, v0.2d, #1
+ sqshrn2 v0.16b, v0.8h, #8
+ sqshrn2 v31.16b, v0.8h, #8
+ sqshrn2 v0.16b, v31.8h, #8
+ sqshrn2 v0.16b, v0.8h, #1
+ sqshrn2 v0.8h, v0.4s, #16
+ sqshrn2 v31.8h, v0.4s, #16
+ sqshrn2 v0.8h, v31.4s, #16
+ sqshrn2 v0.8h, v0.4s, #1
+ sqshrn2 v0.4s, v0.2d, #32
+ sqshrn2 v31.4s, v0.2d, #32
+ sqshrn2 v0.4s, v31.2d, #32
+ sqshrn2 v0.4s, v0.2d, #1
+
+ sqrshrn v0.8b, v0.8h, #8
+ sqrshrn v31.8b, v0.8h, #8
+ sqrshrn v0.8b, v31.8h, #8
+ sqrshrn v0.8b, v0.8h, #1
+ sqrshrn v0.4h, v0.4s, #16
+ sqrshrn v31.4h, v0.4s, #16
+ sqrshrn v0.4h, v31.4s, #16
+ sqrshrn v0.4h, v0.4s, #1
+ sqrshrn v0.2s, v0.2d, #32
+ sqrshrn v31.2s, v0.2d, #32
+ sqrshrn v0.2s, v31.2d, #32
+ sqrshrn v0.2s, v0.2d, #1
+ sqrshrn2 v0.16b, v0.8h, #8
+ sqrshrn2 v31.16b, v0.8h, #8
+ sqrshrn2 v0.16b, v31.8h, #8
+ sqrshrn2 v0.16b, v0.8h, #1
+ sqrshrn2 v0.8h, v0.4s, #16
+ sqrshrn2 v31.8h, v0.4s, #16
+ sqrshrn2 v0.8h, v31.4s, #16
+ sqrshrn2 v0.8h, v0.4s, #1
+ sqrshrn2 v0.4s, v0.2d, #32
+ sqrshrn2 v31.4s, v0.2d, #32
+ sqrshrn2 v0.4s, v31.2d, #32
+ sqrshrn2 v0.4s, v0.2d, #1
+
+ ushr v0.8b, v0.8b, #8
+ ushr v31.8b, v0.8b, #8
+ ushr v0.8b, v31.8b, #8
+ ushr v0.8b, v0.8b, #1
+ ushr v0.4h, v0.4h, #16
+ ushr v31.4h, v0.4h, #16
+ ushr v0.4h, v31.4h, #16
+ ushr v0.4h, v0.4h, #1
+ ushr v0.2s, v0.2s, #32
+ ushr v31.2s, v0.2s, #32
+ ushr v0.2s, v31.2s, #32
+ ushr v0.2s, v0.2s, #1
+ ushr v0.16b, v0.16b, #8
+ ushr v31.16b, v0.16b, #8
+ ushr v0.16b, v31.16b, #8
+ ushr v0.16b, v0.16b, #1
+ ushr v0.8h, v0.8h, #16
+ ushr v31.8h, v0.8h, #16
+ ushr v0.8h, v31.8h, #16
+ ushr v0.8h, v0.8h, #1
+ ushr v0.4s, v0.4s, #32
+ ushr v31.4s, v0.4s, #32
+ ushr v0.4s, v31.4s, #32
+ ushr v0.4s, v0.4s, #1
+ ushr v0.2d, v0.2d, #64
+ ushr v31.2d, v0.2d, #64
+ ushr v0.2d, v31.2d, #64
+ ushr v0.2d, v0.2d, #1
+
+ usra v0.8b, v0.8b, #8
+ usra v31.8b, v0.8b, #8
+ usra v0.8b, v31.8b, #8
+ usra v0.8b, v0.8b, #1
+ usra v0.4h, v0.4h, #16
+ usra v31.4h, v0.4h, #16
+ usra v0.4h, v31.4h, #16
+ usra v0.4h, v0.4h, #1
+ usra v0.2s, v0.2s, #32
+ usra v31.2s, v0.2s, #32
+ usra v0.2s, v31.2s, #32
+ usra v0.2s, v0.2s, #1
+ usra v0.16b, v0.16b, #8
+ usra v31.16b, v0.16b, #8
+ usra v0.16b, v31.16b, #8
+ usra v0.16b, v0.16b, #1
+ usra v0.8h, v0.8h, #16
+ usra v31.8h, v0.8h, #16
+ usra v0.8h, v31.8h, #16
+ usra v0.8h, v0.8h, #1
+ usra v0.4s, v0.4s, #32
+ usra v31.4s, v0.4s, #32
+ usra v0.4s, v31.4s, #32
+ usra v0.4s, v0.4s, #1
+ usra v0.2d, v0.2d, #64
+ usra v31.2d, v0.2d, #64
+ usra v0.2d, v31.2d, #64
+ usra v0.2d, v0.2d, #1
+
+ urshr v0.8b, v0.8b, #8
+ urshr v31.8b, v0.8b, #8
+ urshr v0.8b, v31.8b, #8
+ urshr v0.8b, v0.8b, #1
+ urshr v0.4h, v0.4h, #16
+ urshr v31.4h, v0.4h, #16
+ urshr v0.4h, v31.4h, #16
+ urshr v0.4h, v0.4h, #1
+ urshr v0.2s, v0.2s, #32
+ urshr v31.2s, v0.2s, #32
+ urshr v0.2s, v31.2s, #32
+ urshr v0.2s, v0.2s, #1
+ urshr v0.16b, v0.16b, #8
+ urshr v31.16b, v0.16b, #8
+ urshr v0.16b, v31.16b, #8
+ urshr v0.16b, v0.16b, #1
+ urshr v0.8h, v0.8h, #16
+ urshr v31.8h, v0.8h, #16
+ urshr v0.8h, v31.8h, #16
+ urshr v0.8h, v0.8h, #1
+ urshr v0.4s, v0.4s, #32
+ urshr v31.4s, v0.4s, #32
+ urshr v0.4s, v31.4s, #32
+ urshr v0.4s, v0.4s, #1
+ urshr v0.2d, v0.2d, #64
+ urshr v31.2d, v0.2d, #64
+ urshr v0.2d, v31.2d, #64
+ urshr v0.2d, v0.2d, #1
+
+ ursra v0.8b, v0.8b, #8
+ ursra v31.8b, v0.8b, #8
+ ursra v0.8b, v31.8b, #8
+ ursra v0.8b, v0.8b, #1
+ ursra v0.4h, v0.4h, #16
+ ursra v31.4h, v0.4h, #16
+ ursra v0.4h, v31.4h, #16
+ ursra v0.4h, v0.4h, #1
+ ursra v0.2s, v0.2s, #32
+ ursra v31.2s, v0.2s, #32
+ ursra v0.2s, v31.2s, #32
+ ursra v0.2s, v0.2s, #1
+ ursra v0.16b, v0.16b, #8
+ ursra v31.16b, v0.16b, #8
+ ursra v0.16b, v31.16b, #8
+ ursra v0.16b, v0.16b, #1
+ ursra v0.8h, v0.8h, #16
+ ursra v31.8h, v0.8h, #16
+ ursra v0.8h, v31.8h, #16
+ ursra v0.8h, v0.8h, #1
+ ursra v0.4s, v0.4s, #32
+ ursra v31.4s, v0.4s, #32
+ ursra v0.4s, v31.4s, #32
+ ursra v0.4s, v0.4s, #1
+ ursra v0.2d, v0.2d, #64
+ ursra v31.2d, v0.2d, #64
+ ursra v0.2d, v31.2d, #64
+ ursra v0.2d, v0.2d, #1
+
+ sri v0.8b, v0.8b, #8
+ sri v31.8b, v0.8b, #8
+ sri v0.8b, v31.8b, #8
+ sri v0.8b, v0.8b, #1
+ sri v0.4h, v0.4h, #16
+ sri v31.4h, v0.4h, #16
+ sri v0.4h, v31.4h, #16
+ sri v0.4h, v0.4h, #1
+ sri v0.2s, v0.2s, #32
+ sri v31.2s, v0.2s, #32
+ sri v0.2s, v31.2s, #32
+ sri v0.2s, v0.2s, #1
+ sri v0.16b, v0.16b, #8
+ sri v31.16b, v0.16b, #8
+ sri v0.16b, v31.16b, #8
+ sri v0.16b, v0.16b, #1
+ sri v0.8h, v0.8h, #16
+ sri v31.8h, v0.8h, #16
+ sri v0.8h, v31.8h, #16
+ sri v0.8h, v0.8h, #1
+ sri v0.4s, v0.4s, #32
+ sri v31.4s, v0.4s, #32
+ sri v0.4s, v31.4s, #32
+ sri v0.4s, v0.4s, #1
+ sri v0.2d, v0.2d, #64
+ sri v31.2d, v0.2d, #64
+ sri v0.2d, v31.2d, #64
+ sri v0.2d, v0.2d, #1
+
+ sli v0.8b, v0.8b, #0
+ sli v31.8b, v0.8b, #0
+ sli v0.8b, v31.8b, #0
+ sli v0.8b, v0.8b, #7
+ sli v0.4h, v0.4h, #0
+ sli v31.4h, v0.4h, #0
+ sli v0.4h, v31.4h, #0
+ sli v0.4h, v0.4h, #15
+ sli v0.2s, v0.2s, #0
+ sli v31.2s, v0.2s, #0
+ sli v0.2s, v31.2s, #0
+ sli v0.2s, v0.2s, #31
+ sli v0.16b, v0.16b, #0
+ sli v31.16b, v0.16b, #0
+ sli v0.16b, v31.16b, #0
+ sli v0.16b, v0.16b, #7
+ sli v0.8h, v0.8h, #0
+ sli v31.8h, v0.8h, #0
+ sli v0.8h, v31.8h, #0
+ sli v0.8h, v0.8h, #15
+ sli v0.4s, v0.4s, #0
+ sli v31.4s, v0.4s, #0
+ sli v0.4s, v31.4s, #0
+ sli v0.4s, v0.4s, #31
+ sli v0.2d, v0.2d, #0
+ sli v31.2d, v0.2d, #0
+ sli v0.2d, v31.2d, #0
+ sli v0.2d, v0.2d, #63
+
+ sqshlu v0.8b, v0.8b, #0
+ sqshlu v31.8b, v0.8b, #0
+ sqshlu v0.8b, v31.8b, #0
+ sqshlu v0.8b, v0.8b, #7
+ sqshlu v0.4h, v0.4h, #0
+ sqshlu v31.4h, v0.4h, #0
+ sqshlu v0.4h, v31.4h, #0
+ sqshlu v0.4h, v0.4h, #15
+ sqshlu v0.2s, v0.2s, #0
+ sqshlu v31.2s, v0.2s, #0
+ sqshlu v0.2s, v31.2s, #0
+ sqshlu v0.2s, v0.2s, #31
+ sqshlu v0.16b, v0.16b, #0
+ sqshlu v31.16b, v0.16b, #0
+ sqshlu v0.16b, v31.16b, #0
+ sqshlu v0.16b, v0.16b, #7
+ sqshlu v0.8h, v0.8h, #0
+ sqshlu v31.8h, v0.8h, #0
+ sqshlu v0.8h, v31.8h, #0
+ sqshlu v0.8h, v0.8h, #15
+ sqshlu v0.4s, v0.4s, #0
+ sqshlu v31.4s, v0.4s, #0
+ sqshlu v0.4s, v31.4s, #0
+ sqshlu v0.4s, v0.4s, #31
+ sqshlu v0.2d, v0.2d, #0
+ sqshlu v31.2d, v0.2d, #0
+ sqshlu v0.2d, v31.2d, #0
+ sqshlu v0.2d, v0.2d, #63
+
+ uqshl v0.8b, v0.8b, #0
+ uqshl v31.8b, v0.8b, #0
+ uqshl v0.8b, v31.8b, #0
+ uqshl v0.8b, v0.8b, #7
+ uqshl v0.4h, v0.4h, #0
+ uqshl v31.4h, v0.4h, #0
+ uqshl v0.4h, v31.4h, #0
+ uqshl v0.4h, v0.4h, #15
+ uqshl v0.2s, v0.2s, #0
+ uqshl v31.2s, v0.2s, #0
+ uqshl v0.2s, v31.2s, #0
+ uqshl v0.2s, v0.2s, #31
+ uqshl v0.16b, v0.16b, #0
+ uqshl v31.16b, v0.16b, #0
+ uqshl v0.16b, v31.16b, #0
+ uqshl v0.16b, v0.16b, #7
+ uqshl v0.8h, v0.8h, #0
+ uqshl v31.8h, v0.8h, #0
+ uqshl v0.8h, v31.8h, #0
+ uqshl v0.8h, v0.8h, #15
+ uqshl v0.4s, v0.4s, #0
+ uqshl v31.4s, v0.4s, #0
+ uqshl v0.4s, v31.4s, #0
+ uqshl v0.4s, v0.4s, #31
+ uqshl v0.2d, v0.2d, #0
+ uqshl v31.2d, v0.2d, #0
+ uqshl v0.2d, v31.2d, #0
+ uqshl v0.2d, v0.2d, #63
+
+ sqshrun v0.8b, v0.8h, #8
+ sqshrun v31.8b, v0.8h, #8
+ sqshrun v0.8b, v31.8h, #8
+ sqshrun v0.8b, v0.8h, #1
+ sqshrun v0.4h, v0.4s, #16
+ sqshrun v31.4h, v0.4s, #16
+ sqshrun v0.4h, v31.4s, #16
+ sqshrun v0.4h, v0.4s, #1
+ sqshrun v0.2s, v0.2d, #32
+ sqshrun v31.2s, v0.2d, #32
+ sqshrun v0.2s, v31.2d, #32
+ sqshrun v0.2s, v0.2d, #1
+ sqshrun2 v0.16b, v0.8h, #8
+ sqshrun2 v31.16b, v0.8h, #8
+ sqshrun2 v0.16b, v31.8h, #8
+ sqshrun2 v0.16b, v0.8h, #1
+ sqshrun2 v0.8h, v0.4s, #16
+ sqshrun2 v31.8h, v0.4s, #16
+ sqshrun2 v0.8h, v31.4s, #16
+ sqshrun2 v0.8h, v0.4s, #1
+ sqshrun2 v0.4s, v0.2d, #32
+ sqshrun2 v31.4s, v0.2d, #32
+ sqshrun2 v0.4s, v31.2d, #32
+ sqshrun2 v0.4s, v0.2d, #1
+
+ sqrshrun v0.8b, v0.8h, #8
+ sqrshrun v31.8b, v0.8h, #8
+ sqrshrun v0.8b, v31.8h, #8
+ sqrshrun v0.8b, v0.8h, #1
+ sqrshrun v0.4h, v0.4s, #16
+ sqrshrun v31.4h, v0.4s, #16
+ sqrshrun v0.4h, v31.4s, #16
+ sqrshrun v0.4h, v0.4s, #1
+ sqrshrun v0.2s, v0.2d, #32
+ sqrshrun v31.2s, v0.2d, #32
+ sqrshrun v0.2s, v31.2d, #32
+ sqrshrun v0.2s, v0.2d, #1
+ sqrshrun2 v0.16b, v0.8h, #8
+ sqrshrun2 v31.16b, v0.8h, #8
+ sqrshrun2 v0.16b, v31.8h, #8
+ sqrshrun2 v0.16b, v0.8h, #1
+ sqrshrun2 v0.8h, v0.4s, #16
+ sqrshrun2 v31.8h, v0.4s, #16
+ sqrshrun2 v0.8h, v31.4s, #16
+ sqrshrun2 v0.8h, v0.4s, #1
+ sqrshrun2 v0.4s, v0.2d, #32
+ sqrshrun2 v31.4s, v0.2d, #32
+ sqrshrun2 v0.4s, v31.2d, #32
+ sqrshrun2 v0.4s, v0.2d, #1
+
+ uqshrn v0.8b, v0.8h, #8
+ uqshrn v31.8b, v0.8h, #8
+ uqshrn v0.8b, v31.8h, #8
+ uqshrn v0.8b, v0.8h, #1
+ uqshrn v0.4h, v0.4s, #16
+ uqshrn v31.4h, v0.4s, #16
+ uqshrn v0.4h, v31.4s, #16
+ uqshrn v0.4h, v0.4s, #1
+ uqshrn v0.2s, v0.2d, #32
+ uqshrn v31.2s, v0.2d, #32
+ uqshrn v0.2s, v31.2d, #32
+ uqshrn v0.2s, v0.2d, #1
+ uqshrn2 v0.16b, v0.8h, #8
+ uqshrn2 v31.16b, v0.8h, #8
+ uqshrn2 v0.16b, v31.8h, #8
+ uqshrn2 v0.16b, v0.8h, #1
+ uqshrn2 v0.8h, v0.4s, #16
+ uqshrn2 v31.8h, v0.4s, #16
+ uqshrn2 v0.8h, v31.4s, #16
+ uqshrn2 v0.8h, v0.4s, #1
+ uqshrn2 v0.4s, v0.2d, #32
+ uqshrn2 v31.4s, v0.2d, #32
+ uqshrn2 v0.4s, v31.2d, #32
+ uqshrn2 v0.4s, v0.2d, #1
+
+ uqrshrn v0.8b, v0.8h, #8
+ uqrshrn v31.8b, v0.8h, #8
+ uqrshrn v0.8b, v31.8h, #8
+ uqrshrn v0.8b, v0.8h, #1
+ uqrshrn v0.4h, v0.4s, #16
+ uqrshrn v31.4h, v0.4s, #16
+ uqrshrn v0.4h, v31.4s, #16
+ uqrshrn v0.4h, v0.4s, #1
+ uqrshrn v0.2s, v0.2d, #32
+ uqrshrn v31.2s, v0.2d, #32
+ uqrshrn v0.2s, v31.2d, #32
+ uqrshrn v0.2s, v0.2d, #1
+ uqrshrn2 v0.16b, v0.8h, #8
+ uqrshrn2 v31.16b, v0.8h, #8
+ uqrshrn2 v0.16b, v31.8h, #8
+ uqrshrn2 v0.16b, v0.8h, #1
+ uqrshrn2 v0.8h, v0.4s, #16
+ uqrshrn2 v31.8h, v0.4s, #16
+ uqrshrn2 v0.8h, v31.4s, #16
+ uqrshrn2 v0.8h, v0.4s, #1
+ uqrshrn2 v0.4s, v0.2d, #32
+ uqrshrn2 v31.4s, v0.2d, #32
+ uqrshrn2 v0.4s, v31.2d, #32
+ uqrshrn2 v0.4s, v0.2d, #1
diff --git a/gas/testsuite/gas/aarch64/advsimd-three-same.d b/gas/testsuite/gas/aarch64/advsimd-three-same.d
new file mode 100644
index 0000000..488953a
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-three-same.d
@@ -0,0 +1,1205 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 0e200400 shadd v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20041f shadd v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e2007e0 shadd v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f0400 shadd v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e600400 shadd v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60041f shadd v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e6007e0 shadd v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f0400 shadd v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea00400 shadd v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0041f shadd v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea007e0 shadd v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf0400 shadd v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e200400 shadd v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20041f shadd v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e2007e0 shadd v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f0400 shadd v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e600400 shadd v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60041f shadd v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e6007e0 shadd v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f0400 shadd v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea00400 shadd v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0041f shadd v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea007e0 shadd v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf0400 shadd v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e200c00 sqadd v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e200c1f sqadd v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e200fe0 sqadd v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f0c00 sqadd v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e600c00 sqadd v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e600c1f sqadd v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e600fe0 sqadd v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f0c00 sqadd v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea00c00 sqadd v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea00c1f sqadd v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea00fe0 sqadd v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf0c00 sqadd v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e200c00 sqadd v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e200c1f sqadd v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e200fe0 sqadd v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f0c00 sqadd v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e600c00 sqadd v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e600c1f sqadd v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e600fe0 sqadd v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f0c00 sqadd v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea00c00 sqadd v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea00c1f sqadd v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea00fe0 sqadd v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf0c00 sqadd v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ee00c00 sqadd v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee00c1f sqadd v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee00fe0 sqadd v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 4eff0c00 sqadd v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 0e201400 srhadd v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20141f srhadd v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e2017e0 srhadd v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f1400 srhadd v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e601400 srhadd v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60141f srhadd v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e6017e0 srhadd v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f1400 srhadd v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea01400 srhadd v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0141f srhadd v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea017e0 srhadd v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf1400 srhadd v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e201400 srhadd v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20141f srhadd v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e2017e0 srhadd v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f1400 srhadd v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e601400 srhadd v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60141f srhadd v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e6017e0 srhadd v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f1400 srhadd v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea01400 srhadd v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0141f srhadd v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea017e0 srhadd v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf1400 srhadd v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e201c00 and v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e201c1f and v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e201fe0 and v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f1c00 and v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 4e201c00 and v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e201c1f and v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e201fe0 and v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f1c00 and v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 0e601c00 bic v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e601c1f bic v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e601fe0 bic v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e7f1c00 bic v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 4e601c00 bic v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e601c1f bic v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e601fe0 bic v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e7f1c00 bic v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 0ea01c00 mov v0\.8b, v0\.8b
+ *[0-9a-f]+: 0ea01c1f mov v31\.8b, v0\.8b
+ *[0-9a-f]+: 0ea01fe0 orr v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0ebf1c00 orr v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 4ea01c00 mov v0\.16b, v0\.16b
+ *[0-9a-f]+: 4ea01c1f mov v31\.16b, v0\.16b
+ *[0-9a-f]+: 4ea01fe0 orr v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4ebf1c00 orr v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 0ee01c00 orn v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0ee01c1f orn v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0ee01fe0 orn v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0eff1c00 orn v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 4ee01c00 orn v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4ee01c1f orn v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4ee01fe0 orn v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4eff1c00 orn v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 0e202400 shsub v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20241f shsub v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e2027e0 shsub v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f2400 shsub v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e602400 shsub v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60241f shsub v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e6027e0 shsub v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f2400 shsub v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea02400 shsub v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0241f shsub v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea027e0 shsub v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf2400 shsub v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e202400 shsub v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20241f shsub v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e2027e0 shsub v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f2400 shsub v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e602400 shsub v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60241f shsub v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e6027e0 shsub v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f2400 shsub v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea02400 shsub v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0241f shsub v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea027e0 shsub v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf2400 shsub v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e202c00 sqsub v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e202c1f sqsub v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e202fe0 sqsub v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f2c00 sqsub v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e602c00 sqsub v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e602c1f sqsub v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e602fe0 sqsub v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f2c00 sqsub v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea02c00 sqsub v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea02c1f sqsub v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea02fe0 sqsub v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf2c00 sqsub v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e202c00 sqsub v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e202c1f sqsub v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e202fe0 sqsub v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f2c00 sqsub v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e602c00 sqsub v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e602c1f sqsub v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e602fe0 sqsub v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f2c00 sqsub v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea02c00 sqsub v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea02c1f sqsub v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea02fe0 sqsub v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf2c00 sqsub v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ee02c00 sqsub v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee02c1f sqsub v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee02fe0 sqsub v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 4eff2c00 sqsub v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 0e203400 cmgt v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20341f cmgt v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e2037e0 cmgt v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f3400 cmgt v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e603400 cmgt v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60341f cmgt v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e6037e0 cmgt v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f3400 cmgt v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea03400 cmgt v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0341f cmgt v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea037e0 cmgt v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf3400 cmgt v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e203400 cmgt v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20341f cmgt v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e2037e0 cmgt v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f3400 cmgt v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e603400 cmgt v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60341f cmgt v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e6037e0 cmgt v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f3400 cmgt v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea03400 cmgt v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0341f cmgt v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea037e0 cmgt v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf3400 cmgt v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ee03400 cmgt v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee0341f cmgt v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee037e0 cmgt v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 4eff3400 cmgt v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 0e203c00 cmge v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e203c1f cmge v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e203fe0 cmge v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f3c00 cmge v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e603c00 cmge v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e603c1f cmge v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e603fe0 cmge v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f3c00 cmge v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea03c00 cmge v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea03c1f cmge v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea03fe0 cmge v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf3c00 cmge v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e203c00 cmge v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e203c1f cmge v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e203fe0 cmge v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f3c00 cmge v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e603c00 cmge v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e603c1f cmge v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e603fe0 cmge v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f3c00 cmge v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea03c00 cmge v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea03c1f cmge v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea03fe0 cmge v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf3c00 cmge v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ee03c00 cmge v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee03c1f cmge v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee03fe0 cmge v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 4eff3c00 cmge v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 0e204400 sshl v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20441f sshl v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e2047e0 sshl v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f4400 sshl v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e604400 sshl v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60441f sshl v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e6047e0 sshl v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f4400 sshl v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea04400 sshl v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0441f sshl v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea047e0 sshl v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf4400 sshl v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e204400 sshl v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20441f sshl v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e2047e0 sshl v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f4400 sshl v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e604400 sshl v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60441f sshl v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e6047e0 sshl v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f4400 sshl v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea04400 sshl v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0441f sshl v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea047e0 sshl v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf4400 sshl v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ee04400 sshl v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee0441f sshl v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee047e0 sshl v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 4eff4400 sshl v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 0e204c00 sqshl v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e204c1f sqshl v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e204fe0 sqshl v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f4c00 sqshl v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e604c00 sqshl v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e604c1f sqshl v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e604fe0 sqshl v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f4c00 sqshl v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea04c00 sqshl v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea04c1f sqshl v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea04fe0 sqshl v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf4c00 sqshl v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e204c00 sqshl v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e204c1f sqshl v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e204fe0 sqshl v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f4c00 sqshl v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e604c00 sqshl v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e604c1f sqshl v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e604fe0 sqshl v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f4c00 sqshl v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea04c00 sqshl v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea04c1f sqshl v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea04fe0 sqshl v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf4c00 sqshl v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ee04c00 sqshl v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee04c1f sqshl v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee04fe0 sqshl v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 4eff4c00 sqshl v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 0e205400 srshl v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20541f srshl v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e2057e0 srshl v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f5400 srshl v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e605400 srshl v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60541f srshl v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e6057e0 srshl v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f5400 srshl v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea05400 srshl v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0541f srshl v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea057e0 srshl v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf5400 srshl v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e205400 srshl v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20541f srshl v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e2057e0 srshl v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f5400 srshl v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e605400 srshl v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60541f srshl v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e6057e0 srshl v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f5400 srshl v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea05400 srshl v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0541f srshl v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea057e0 srshl v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf5400 srshl v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ee05400 srshl v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee0541f srshl v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee057e0 srshl v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 4eff5400 srshl v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 0e205c00 sqrshl v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e205c1f sqrshl v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e205fe0 sqrshl v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f5c00 sqrshl v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e605c00 sqrshl v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e605c1f sqrshl v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e605fe0 sqrshl v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f5c00 sqrshl v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea05c00 sqrshl v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea05c1f sqrshl v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea05fe0 sqrshl v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf5c00 sqrshl v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e205c00 sqrshl v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e205c1f sqrshl v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e205fe0 sqrshl v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f5c00 sqrshl v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e605c00 sqrshl v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e605c1f sqrshl v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e605fe0 sqrshl v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f5c00 sqrshl v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea05c00 sqrshl v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea05c1f sqrshl v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea05fe0 sqrshl v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf5c00 sqrshl v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ee05c00 sqrshl v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee05c1f sqrshl v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee05fe0 sqrshl v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 4eff5c00 sqrshl v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 0e206400 smax v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20641f smax v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e2067e0 smax v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f6400 smax v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e606400 smax v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60641f smax v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e6067e0 smax v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f6400 smax v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea06400 smax v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0641f smax v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea067e0 smax v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf6400 smax v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e206400 smax v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20641f smax v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e2067e0 smax v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f6400 smax v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e606400 smax v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60641f smax v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e6067e0 smax v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f6400 smax v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea06400 smax v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0641f smax v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea067e0 smax v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf6400 smax v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e206c00 smin v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e206c1f smin v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e206fe0 smin v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f6c00 smin v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e606c00 smin v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e606c1f smin v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e606fe0 smin v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f6c00 smin v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea06c00 smin v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea06c1f smin v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea06fe0 smin v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf6c00 smin v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e206c00 smin v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e206c1f smin v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e206fe0 smin v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f6c00 smin v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e606c00 smin v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e606c1f smin v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e606fe0 smin v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f6c00 smin v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea06c00 smin v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea06c1f smin v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea06fe0 smin v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf6c00 smin v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e207400 sabd v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20741f sabd v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e2077e0 sabd v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f7400 sabd v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e607400 sabd v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60741f sabd v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e6077e0 sabd v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f7400 sabd v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea07400 sabd v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0741f sabd v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea077e0 sabd v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf7400 sabd v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e207400 sabd v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20741f sabd v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e2077e0 sabd v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f7400 sabd v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e607400 sabd v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60741f sabd v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e6077e0 sabd v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f7400 sabd v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea07400 sabd v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0741f sabd v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea077e0 sabd v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf7400 sabd v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e207c00 saba v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e207c1f saba v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e207fe0 saba v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f7c00 saba v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e607c00 saba v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e607c1f saba v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e607fe0 saba v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f7c00 saba v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea07c00 saba v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea07c1f saba v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea07fe0 saba v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf7c00 saba v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e207c00 saba v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e207c1f saba v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e207fe0 saba v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f7c00 saba v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e607c00 saba v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e607c1f saba v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e607fe0 saba v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f7c00 saba v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea07c00 saba v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea07c1f saba v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea07fe0 saba v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf7c00 saba v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e208400 add v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20841f add v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e2087e0 add v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f8400 add v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e608400 add v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60841f add v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e6087e0 add v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f8400 add v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea08400 add v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0841f add v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea087e0 add v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf8400 add v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e208400 add v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20841f add v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e2087e0 add v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f8400 add v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e608400 add v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60841f add v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e6087e0 add v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f8400 add v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea08400 add v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0841f add v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea087e0 add v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf8400 add v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ee08400 add v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee0841f add v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee087e0 add v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 4eff8400 add v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 0e208c00 cmtst v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e208c1f cmtst v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e208fe0 cmtst v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f8c00 cmtst v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e608c00 cmtst v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e608c1f cmtst v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e608fe0 cmtst v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f8c00 cmtst v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea08c00 cmtst v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea08c1f cmtst v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea08fe0 cmtst v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf8c00 cmtst v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e208c00 cmtst v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e208c1f cmtst v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e208fe0 cmtst v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f8c00 cmtst v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e608c00 cmtst v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e608c1f cmtst v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e608fe0 cmtst v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f8c00 cmtst v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea08c00 cmtst v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea08c1f cmtst v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea08fe0 cmtst v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf8c00 cmtst v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ee08c00 cmtst v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee08c1f cmtst v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee08fe0 cmtst v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 4eff8c00 cmtst v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 0e209400 mla v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20941f mla v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e2097e0 mla v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f9400 mla v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e609400 mla v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60941f mla v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e6097e0 mla v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f9400 mla v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea09400 mla v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0941f mla v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea097e0 mla v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf9400 mla v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e209400 mla v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20941f mla v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e2097e0 mla v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f9400 mla v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e609400 mla v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60941f mla v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e6097e0 mla v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f9400 mla v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea09400 mla v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0941f mla v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea097e0 mla v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf9400 mla v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e209c00 mul v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e209c1f mul v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e209fe0 mul v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f9c00 mul v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e609c00 mul v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e609c1f mul v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e609fe0 mul v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f9c00 mul v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea09c00 mul v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea09c1f mul v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea09fe0 mul v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf9c00 mul v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e209c00 mul v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e209c1f mul v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e209fe0 mul v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f9c00 mul v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e609c00 mul v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e609c1f mul v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e609fe0 mul v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f9c00 mul v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea09c00 mul v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea09c1f mul v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea09fe0 mul v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf9c00 mul v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e20a400 smaxp v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20a41f smaxp v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20a7e0 smaxp v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3fa400 smaxp v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e60a400 smaxp v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60a41f smaxp v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60a7e0 smaxp v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7fa400 smaxp v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea0a400 smaxp v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0a41f smaxp v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0a7e0 smaxp v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebfa400 smaxp v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e20a400 smaxp v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20a41f smaxp v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20a7e0 smaxp v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3fa400 smaxp v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e60a400 smaxp v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60a41f smaxp v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60a7e0 smaxp v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7fa400 smaxp v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea0a400 smaxp v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0a41f smaxp v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0a7e0 smaxp v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebfa400 smaxp v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e20ac00 sminp v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20ac1f sminp v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20afe0 sminp v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3fac00 sminp v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e60ac00 sminp v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60ac1f sminp v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60afe0 sminp v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7fac00 sminp v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea0ac00 sminp v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0ac1f sminp v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0afe0 sminp v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebfac00 sminp v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e20ac00 sminp v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20ac1f sminp v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20afe0 sminp v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3fac00 sminp v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e60ac00 sminp v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60ac1f sminp v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60afe0 sminp v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7fac00 sminp v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea0ac00 sminp v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0ac1f sminp v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0afe0 sminp v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebfac00 sminp v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e60b400 sqdmulh v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60b41f sqdmulh v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60b7e0 sqdmulh v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7fb400 sqdmulh v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea0b400 sqdmulh v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0b41f sqdmulh v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0b7e0 sqdmulh v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebfb400 sqdmulh v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e60b400 sqdmulh v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60b41f sqdmulh v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60b7e0 sqdmulh v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7fb400 sqdmulh v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea0b400 sqdmulh v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0b41f sqdmulh v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0b7e0 sqdmulh v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebfb400 sqdmulh v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e20bc00 addp v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20bc1f addp v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20bfe0 addp v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3fbc00 addp v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e60bc00 addp v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60bc1f addp v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60bfe0 addp v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7fbc00 addp v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea0bc00 addp v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0bc1f addp v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0bfe0 addp v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebfbc00 addp v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e20bc00 addp v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20bc1f addp v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20bfe0 addp v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3fbc00 addp v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e60bc00 addp v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60bc1f addp v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60bfe0 addp v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7fbc00 addp v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea0bc00 addp v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0bc1f addp v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0bfe0 addp v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebfbc00 addp v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ee0bc00 addp v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee0bc1f addp v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee0bfe0 addp v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 4effbc00 addp v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 2e200400 uhadd v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20041f uhadd v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e2007e0 uhadd v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f0400 uhadd v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e600400 uhadd v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60041f uhadd v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e6007e0 uhadd v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f0400 uhadd v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea00400 uhadd v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0041f uhadd v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea007e0 uhadd v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf0400 uhadd v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e200400 uhadd v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20041f uhadd v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e2007e0 uhadd v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f0400 uhadd v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e600400 uhadd v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60041f uhadd v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e6007e0 uhadd v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f0400 uhadd v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea00400 uhadd v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0041f uhadd v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea007e0 uhadd v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf0400 uhadd v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 2e200c00 uqadd v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e200c1f uqadd v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e200fe0 uqadd v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f0c00 uqadd v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e600c00 uqadd v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e600c1f uqadd v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e600fe0 uqadd v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f0c00 uqadd v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea00c00 uqadd v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea00c1f uqadd v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea00fe0 uqadd v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf0c00 uqadd v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e200c00 uqadd v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e200c1f uqadd v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e200fe0 uqadd v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f0c00 uqadd v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e600c00 uqadd v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e600c1f uqadd v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e600fe0 uqadd v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f0c00 uqadd v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea00c00 uqadd v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea00c1f uqadd v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea00fe0 uqadd v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf0c00 uqadd v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 6ee00c00 uqadd v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee00c1f uqadd v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee00fe0 uqadd v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 6eff0c00 uqadd v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 2e201400 urhadd v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20141f urhadd v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e2017e0 urhadd v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f1400 urhadd v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e601400 urhadd v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60141f urhadd v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e6017e0 urhadd v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f1400 urhadd v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea01400 urhadd v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0141f urhadd v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea017e0 urhadd v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf1400 urhadd v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e201400 urhadd v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20141f urhadd v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e2017e0 urhadd v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f1400 urhadd v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e601400 urhadd v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60141f urhadd v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e6017e0 urhadd v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f1400 urhadd v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea01400 urhadd v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0141f urhadd v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea017e0 urhadd v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf1400 urhadd v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 2e201c00 eor v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e201c1f eor v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e201fe0 eor v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f1c00 eor v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 6e201c00 eor v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e201c1f eor v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e201fe0 eor v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f1c00 eor v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 2e601c00 bsl v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e601c1f bsl v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e601fe0 bsl v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e7f1c00 bsl v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 6e601c00 bsl v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e601c1f bsl v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e601fe0 bsl v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e7f1c00 bsl v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 2ea01c00 bit v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2ea01c1f bit v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2ea01fe0 bit v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2ebf1c00 bit v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 6ea01c00 bit v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6ea01c1f bit v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6ea01fe0 bit v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6ebf1c00 bit v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 2ee01c00 bif v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2ee01c1f bif v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2ee01fe0 bif v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2eff1c00 bif v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 6ee01c00 bif v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6ee01c1f bif v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6ee01fe0 bif v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6eff1c00 bif v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 2e202400 uhsub v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20241f uhsub v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e2027e0 uhsub v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f2400 uhsub v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e602400 uhsub v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60241f uhsub v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e6027e0 uhsub v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f2400 uhsub v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea02400 uhsub v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0241f uhsub v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea027e0 uhsub v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf2400 uhsub v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e202400 uhsub v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20241f uhsub v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e2027e0 uhsub v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f2400 uhsub v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e602400 uhsub v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60241f uhsub v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e6027e0 uhsub v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f2400 uhsub v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea02400 uhsub v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0241f uhsub v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea027e0 uhsub v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf2400 uhsub v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 2e202c00 uqsub v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e202c1f uqsub v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e202fe0 uqsub v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f2c00 uqsub v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e602c00 uqsub v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e602c1f uqsub v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e602fe0 uqsub v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f2c00 uqsub v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea02c00 uqsub v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea02c1f uqsub v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea02fe0 uqsub v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf2c00 uqsub v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e202c00 uqsub v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e202c1f uqsub v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e202fe0 uqsub v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f2c00 uqsub v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e602c00 uqsub v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e602c1f uqsub v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e602fe0 uqsub v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f2c00 uqsub v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea02c00 uqsub v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea02c1f uqsub v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea02fe0 uqsub v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf2c00 uqsub v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 6ee02c00 uqsub v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee02c1f uqsub v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee02fe0 uqsub v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 6eff2c00 uqsub v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 2e203400 cmhi v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20341f cmhi v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e2037e0 cmhi v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f3400 cmhi v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e603400 cmhi v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60341f cmhi v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e6037e0 cmhi v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f3400 cmhi v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea03400 cmhi v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0341f cmhi v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea037e0 cmhi v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf3400 cmhi v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e203400 cmhi v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20341f cmhi v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e2037e0 cmhi v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f3400 cmhi v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e603400 cmhi v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60341f cmhi v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e6037e0 cmhi v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f3400 cmhi v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea03400 cmhi v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0341f cmhi v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea037e0 cmhi v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf3400 cmhi v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 6ee03400 cmhi v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee0341f cmhi v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee037e0 cmhi v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 6eff3400 cmhi v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 2e203c00 cmhs v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e203c1f cmhs v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e203fe0 cmhs v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f3c00 cmhs v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e603c00 cmhs v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e603c1f cmhs v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e603fe0 cmhs v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f3c00 cmhs v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea03c00 cmhs v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea03c1f cmhs v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea03fe0 cmhs v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf3c00 cmhs v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e203c00 cmhs v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e203c1f cmhs v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e203fe0 cmhs v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f3c00 cmhs v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e603c00 cmhs v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e603c1f cmhs v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e603fe0 cmhs v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f3c00 cmhs v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea03c00 cmhs v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea03c1f cmhs v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea03fe0 cmhs v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf3c00 cmhs v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 6ee03c00 cmhs v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee03c1f cmhs v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee03fe0 cmhs v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 6eff3c00 cmhs v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 2e204400 ushl v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20441f ushl v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e2047e0 ushl v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f4400 ushl v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e604400 ushl v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60441f ushl v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e6047e0 ushl v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f4400 ushl v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea04400 ushl v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0441f ushl v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea047e0 ushl v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf4400 ushl v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e204400 ushl v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20441f ushl v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e2047e0 ushl v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f4400 ushl v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e604400 ushl v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60441f ushl v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e6047e0 ushl v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f4400 ushl v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea04400 ushl v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0441f ushl v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea047e0 ushl v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf4400 ushl v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 6ee04400 ushl v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee0441f ushl v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee047e0 ushl v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 6eff4400 ushl v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 2e204c00 uqshl v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e204c1f uqshl v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e204fe0 uqshl v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f4c00 uqshl v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e604c00 uqshl v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e604c1f uqshl v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e604fe0 uqshl v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f4c00 uqshl v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea04c00 uqshl v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea04c1f uqshl v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea04fe0 uqshl v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf4c00 uqshl v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e204c00 uqshl v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e204c1f uqshl v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e204fe0 uqshl v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f4c00 uqshl v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e604c00 uqshl v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e604c1f uqshl v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e604fe0 uqshl v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f4c00 uqshl v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea04c00 uqshl v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea04c1f uqshl v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea04fe0 uqshl v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf4c00 uqshl v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 6ee04c00 uqshl v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee04c1f uqshl v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee04fe0 uqshl v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 6eff4c00 uqshl v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 2e205400 urshl v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20541f urshl v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e2057e0 urshl v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f5400 urshl v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e605400 urshl v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60541f urshl v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e6057e0 urshl v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f5400 urshl v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea05400 urshl v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0541f urshl v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea057e0 urshl v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf5400 urshl v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e205400 urshl v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20541f urshl v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e2057e0 urshl v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f5400 urshl v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e605400 urshl v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60541f urshl v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e6057e0 urshl v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f5400 urshl v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea05400 urshl v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0541f urshl v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea057e0 urshl v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf5400 urshl v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 6ee05400 urshl v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee0541f urshl v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee057e0 urshl v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 6eff5400 urshl v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 2e205c00 uqrshl v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e205c1f uqrshl v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e205fe0 uqrshl v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f5c00 uqrshl v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e605c00 uqrshl v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e605c1f uqrshl v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e605fe0 uqrshl v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f5c00 uqrshl v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea05c00 uqrshl v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea05c1f uqrshl v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea05fe0 uqrshl v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf5c00 uqrshl v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e205c00 uqrshl v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e205c1f uqrshl v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e205fe0 uqrshl v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f5c00 uqrshl v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e605c00 uqrshl v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e605c1f uqrshl v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e605fe0 uqrshl v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f5c00 uqrshl v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea05c00 uqrshl v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea05c1f uqrshl v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea05fe0 uqrshl v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf5c00 uqrshl v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 6ee05c00 uqrshl v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee05c1f uqrshl v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee05fe0 uqrshl v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 6eff5c00 uqrshl v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 2e206400 umax v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20641f umax v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e2067e0 umax v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f6400 umax v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e606400 umax v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60641f umax v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e6067e0 umax v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f6400 umax v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea06400 umax v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0641f umax v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea067e0 umax v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf6400 umax v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e206400 umax v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20641f umax v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e2067e0 umax v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f6400 umax v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e606400 umax v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60641f umax v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e6067e0 umax v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f6400 umax v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea06400 umax v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0641f umax v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea067e0 umax v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf6400 umax v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 2e206c00 umin v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e206c1f umin v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e206fe0 umin v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f6c00 umin v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e606c00 umin v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e606c1f umin v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e606fe0 umin v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f6c00 umin v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea06c00 umin v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea06c1f umin v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea06fe0 umin v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf6c00 umin v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e206c00 umin v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e206c1f umin v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e206fe0 umin v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f6c00 umin v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e606c00 umin v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e606c1f umin v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e606fe0 umin v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f6c00 umin v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea06c00 umin v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea06c1f umin v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea06fe0 umin v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf6c00 umin v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 2e207400 uabd v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20741f uabd v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e2077e0 uabd v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f7400 uabd v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e607400 uabd v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60741f uabd v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e6077e0 uabd v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f7400 uabd v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea07400 uabd v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0741f uabd v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea077e0 uabd v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf7400 uabd v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e207400 uabd v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20741f uabd v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e2077e0 uabd v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f7400 uabd v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e607400 uabd v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60741f uabd v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e6077e0 uabd v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f7400 uabd v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea07400 uabd v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0741f uabd v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea077e0 uabd v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf7400 uabd v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 2e207c00 uaba v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e207c1f uaba v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e207fe0 uaba v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f7c00 uaba v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e607c00 uaba v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e607c1f uaba v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e607fe0 uaba v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f7c00 uaba v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea07c00 uaba v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea07c1f uaba v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea07fe0 uaba v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf7c00 uaba v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e207c00 uaba v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e207c1f uaba v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e207fe0 uaba v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f7c00 uaba v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e607c00 uaba v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e607c1f uaba v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e607fe0 uaba v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f7c00 uaba v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea07c00 uaba v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea07c1f uaba v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea07fe0 uaba v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf7c00 uaba v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 2e208400 sub v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20841f sub v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e2087e0 sub v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f8400 sub v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e608400 sub v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60841f sub v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e6087e0 sub v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f8400 sub v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea08400 sub v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0841f sub v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea087e0 sub v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf8400 sub v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e208400 sub v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20841f sub v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e2087e0 sub v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f8400 sub v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e608400 sub v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60841f sub v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e6087e0 sub v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f8400 sub v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea08400 sub v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0841f sub v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea087e0 sub v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf8400 sub v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 6ee08400 sub v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee0841f sub v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee087e0 sub v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 6eff8400 sub v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 2e208c00 cmeq v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e208c1f cmeq v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e208fe0 cmeq v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f8c00 cmeq v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e608c00 cmeq v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e608c1f cmeq v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e608fe0 cmeq v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f8c00 cmeq v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea08c00 cmeq v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea08c1f cmeq v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea08fe0 cmeq v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf8c00 cmeq v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e208c00 cmeq v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e208c1f cmeq v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e208fe0 cmeq v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f8c00 cmeq v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e608c00 cmeq v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e608c1f cmeq v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e608fe0 cmeq v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f8c00 cmeq v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea08c00 cmeq v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea08c1f cmeq v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea08fe0 cmeq v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf8c00 cmeq v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 6ee08c00 cmeq v0\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee08c1f cmeq v31\.2d, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee08fe0 cmeq v0\.2d, v31\.2d, v0\.2d
+ *[0-9a-f]+: 6eff8c00 cmeq v0\.2d, v0\.2d, v31\.2d
+ *[0-9a-f]+: 2e209400 mls v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20941f mls v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e2097e0 mls v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f9400 mls v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e609400 mls v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60941f mls v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e6097e0 mls v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f9400 mls v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea09400 mls v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0941f mls v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea097e0 mls v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf9400 mls v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e209400 mls v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20941f mls v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e2097e0 mls v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f9400 mls v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e609400 mls v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60941f mls v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e6097e0 mls v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f9400 mls v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea09400 mls v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0941f mls v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea097e0 mls v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf9400 mls v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 2e209c00 pmul v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e209c1f pmul v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e209fe0 pmul v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f9c00 pmul v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 6e209c00 pmul v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e209c1f pmul v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e209fe0 pmul v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f9c00 pmul v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 2e20a400 umaxp v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20a41f umaxp v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20a7e0 umaxp v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3fa400 umaxp v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e60a400 umaxp v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60a41f umaxp v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60a7e0 umaxp v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7fa400 umaxp v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea0a400 umaxp v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0a41f umaxp v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0a7e0 umaxp v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebfa400 umaxp v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e20a400 umaxp v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20a41f umaxp v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20a7e0 umaxp v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3fa400 umaxp v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e60a400 umaxp v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60a41f umaxp v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60a7e0 umaxp v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7fa400 umaxp v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea0a400 umaxp v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0a41f umaxp v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0a7e0 umaxp v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebfa400 umaxp v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 2e20ac00 uminp v0\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20ac1f uminp v31\.8b, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20afe0 uminp v0\.8b, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3fac00 uminp v0\.8b, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e60ac00 uminp v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60ac1f uminp v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60afe0 uminp v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7fac00 uminp v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea0ac00 uminp v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0ac1f uminp v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0afe0 uminp v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebfac00 uminp v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e20ac00 uminp v0\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20ac1f uminp v31\.16b, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20afe0 uminp v0\.16b, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3fac00 uminp v0\.16b, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e60ac00 uminp v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60ac1f uminp v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60afe0 uminp v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7fac00 uminp v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea0ac00 uminp v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0ac1f uminp v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0afe0 uminp v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebfac00 uminp v0\.4s, v0\.4s, v31\.4s
+ *[0-9a-f]+: 2e60b400 sqrdmulh v0\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60b41f sqrdmulh v31\.4h, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60b7e0 sqrdmulh v0\.4h, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7fb400 sqrdmulh v0\.4h, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea0b400 sqrdmulh v0\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0b41f sqrdmulh v31\.2s, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0b7e0 sqrdmulh v0\.2s, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebfb400 sqrdmulh v0\.2s, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e60b400 sqrdmulh v0\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60b41f sqrdmulh v31\.8h, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60b7e0 sqrdmulh v0\.8h, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7fb400 sqrdmulh v0\.8h, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea0b400 sqrdmulh v0\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0b41f sqrdmulh v31\.4s, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0b7e0 sqrdmulh v0\.4s, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebfb400 sqrdmulh v0\.4s, v0\.4s, v31\.4s
diff --git a/gas/testsuite/gas/aarch64/advsimd-three-same.s b/gas/testsuite/gas/aarch64/advsimd-three-same.s
new file mode 100644
index 0000000..1a01fc0
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-three-same.s
@@ -0,0 +1,1248 @@
+ shadd v0.8b, v0.8b, v0.8b
+ shadd v31.8b, v0.8b, v0.8b
+ shadd v0.8b, v31.8b, v0.8b
+ shadd v0.8b, v0.8b, v31.8b
+ shadd v0.4h, v0.4h, v0.4h
+ shadd v31.4h, v0.4h, v0.4h
+ shadd v0.4h, v31.4h, v0.4h
+ shadd v0.4h, v0.4h, v31.4h
+ shadd v0.2s, v0.2s, v0.2s
+ shadd v31.2s, v0.2s, v0.2s
+ shadd v0.2s, v31.2s, v0.2s
+ shadd v0.2s, v0.2s, v31.2s
+ shadd v0.16b, v0.16b, v0.16b
+ shadd v31.16b, v0.16b, v0.16b
+ shadd v0.16b, v31.16b, v0.16b
+ shadd v0.16b, v0.16b, v31.16b
+ shadd v0.8h, v0.8h, v0.8h
+ shadd v31.8h, v0.8h, v0.8h
+ shadd v0.8h, v31.8h, v0.8h
+ shadd v0.8h, v0.8h, v31.8h
+ shadd v0.4s, v0.4s, v0.4s
+ shadd v31.4s, v0.4s, v0.4s
+ shadd v0.4s, v31.4s, v0.4s
+ shadd v0.4s, v0.4s, v31.4s
+
+ sqadd v0.8b, v0.8b, v0.8b
+ sqadd v31.8b, v0.8b, v0.8b
+ sqadd v0.8b, v31.8b, v0.8b
+ sqadd v0.8b, v0.8b, v31.8b
+ sqadd v0.4h, v0.4h, v0.4h
+ sqadd v31.4h, v0.4h, v0.4h
+ sqadd v0.4h, v31.4h, v0.4h
+ sqadd v0.4h, v0.4h, v31.4h
+ sqadd v0.2s, v0.2s, v0.2s
+ sqadd v31.2s, v0.2s, v0.2s
+ sqadd v0.2s, v31.2s, v0.2s
+ sqadd v0.2s, v0.2s, v31.2s
+ sqadd v0.16b, v0.16b, v0.16b
+ sqadd v31.16b, v0.16b, v0.16b
+ sqadd v0.16b, v31.16b, v0.16b
+ sqadd v0.16b, v0.16b, v31.16b
+ sqadd v0.8h, v0.8h, v0.8h
+ sqadd v31.8h, v0.8h, v0.8h
+ sqadd v0.8h, v31.8h, v0.8h
+ sqadd v0.8h, v0.8h, v31.8h
+ sqadd v0.4s, v0.4s, v0.4s
+ sqadd v31.4s, v0.4s, v0.4s
+ sqadd v0.4s, v31.4s, v0.4s
+ sqadd v0.4s, v0.4s, v31.4s
+ sqadd v0.2d, v0.2d, v0.2d
+ sqadd v31.2d, v0.2d, v0.2d
+ sqadd v0.2d, v31.2d, v0.2d
+ sqadd v0.2d, v0.2d, v31.2d
+
+ srhadd v0.8b, v0.8b, v0.8b
+ srhadd v31.8b, v0.8b, v0.8b
+ srhadd v0.8b, v31.8b, v0.8b
+ srhadd v0.8b, v0.8b, v31.8b
+ srhadd v0.4h, v0.4h, v0.4h
+ srhadd v31.4h, v0.4h, v0.4h
+ srhadd v0.4h, v31.4h, v0.4h
+ srhadd v0.4h, v0.4h, v31.4h
+ srhadd v0.2s, v0.2s, v0.2s
+ srhadd v31.2s, v0.2s, v0.2s
+ srhadd v0.2s, v31.2s, v0.2s
+ srhadd v0.2s, v0.2s, v31.2s
+ srhadd v0.16b, v0.16b, v0.16b
+ srhadd v31.16b, v0.16b, v0.16b
+ srhadd v0.16b, v31.16b, v0.16b
+ srhadd v0.16b, v0.16b, v31.16b
+ srhadd v0.8h, v0.8h, v0.8h
+ srhadd v31.8h, v0.8h, v0.8h
+ srhadd v0.8h, v31.8h, v0.8h
+ srhadd v0.8h, v0.8h, v31.8h
+ srhadd v0.4s, v0.4s, v0.4s
+ srhadd v31.4s, v0.4s, v0.4s
+ srhadd v0.4s, v31.4s, v0.4s
+ srhadd v0.4s, v0.4s, v31.4s
+
+ and v0.8b, v0.8b, v0.8b
+ and v31.8b, v0.8b, v0.8b
+ and v0.8b, v31.8b, v0.8b
+ and v0.8b, v0.8b, v31.8b
+ and v0.16b, v0.16b, v0.16b
+ and v31.16b, v0.16b, v0.16b
+ and v0.16b, v31.16b, v0.16b
+ and v0.16b, v0.16b, v31.16b
+
+ bic v0.8b, v0.8b, v0.8b
+ bic v31.8b, v0.8b, v0.8b
+ bic v0.8b, v31.8b, v0.8b
+ bic v0.8b, v0.8b, v31.8b
+ bic v0.16b, v0.16b, v0.16b
+ bic v31.16b, v0.16b, v0.16b
+ bic v0.16b, v31.16b, v0.16b
+ bic v0.16b, v0.16b, v31.16b
+
+ orr v0.8b, v0.8b, v0.8b
+ orr v31.8b, v0.8b, v0.8b
+ orr v0.8b, v31.8b, v0.8b
+ orr v0.8b, v0.8b, v31.8b
+ orr v0.16b, v0.16b, v0.16b
+ orr v31.16b, v0.16b, v0.16b
+ orr v0.16b, v31.16b, v0.16b
+ orr v0.16b, v0.16b, v31.16b
+
+ orn v0.8b, v0.8b, v0.8b
+ orn v31.8b, v0.8b, v0.8b
+ orn v0.8b, v31.8b, v0.8b
+ orn v0.8b, v0.8b, v31.8b
+ orn v0.16b, v0.16b, v0.16b
+ orn v31.16b, v0.16b, v0.16b
+ orn v0.16b, v31.16b, v0.16b
+ orn v0.16b, v0.16b, v31.16b
+
+ shsub v0.8b, v0.8b, v0.8b
+ shsub v31.8b, v0.8b, v0.8b
+ shsub v0.8b, v31.8b, v0.8b
+ shsub v0.8b, v0.8b, v31.8b
+ shsub v0.4h, v0.4h, v0.4h
+ shsub v31.4h, v0.4h, v0.4h
+ shsub v0.4h, v31.4h, v0.4h
+ shsub v0.4h, v0.4h, v31.4h
+ shsub v0.2s, v0.2s, v0.2s
+ shsub v31.2s, v0.2s, v0.2s
+ shsub v0.2s, v31.2s, v0.2s
+ shsub v0.2s, v0.2s, v31.2s
+ shsub v0.16b, v0.16b, v0.16b
+ shsub v31.16b, v0.16b, v0.16b
+ shsub v0.16b, v31.16b, v0.16b
+ shsub v0.16b, v0.16b, v31.16b
+ shsub v0.8h, v0.8h, v0.8h
+ shsub v31.8h, v0.8h, v0.8h
+ shsub v0.8h, v31.8h, v0.8h
+ shsub v0.8h, v0.8h, v31.8h
+ shsub v0.4s, v0.4s, v0.4s
+ shsub v31.4s, v0.4s, v0.4s
+ shsub v0.4s, v31.4s, v0.4s
+ shsub v0.4s, v0.4s, v31.4s
+
+ sqsub v0.8b, v0.8b, v0.8b
+ sqsub v31.8b, v0.8b, v0.8b
+ sqsub v0.8b, v31.8b, v0.8b
+ sqsub v0.8b, v0.8b, v31.8b
+ sqsub v0.4h, v0.4h, v0.4h
+ sqsub v31.4h, v0.4h, v0.4h
+ sqsub v0.4h, v31.4h, v0.4h
+ sqsub v0.4h, v0.4h, v31.4h
+ sqsub v0.2s, v0.2s, v0.2s
+ sqsub v31.2s, v0.2s, v0.2s
+ sqsub v0.2s, v31.2s, v0.2s
+ sqsub v0.2s, v0.2s, v31.2s
+ sqsub v0.16b, v0.16b, v0.16b
+ sqsub v31.16b, v0.16b, v0.16b
+ sqsub v0.16b, v31.16b, v0.16b
+ sqsub v0.16b, v0.16b, v31.16b
+ sqsub v0.8h, v0.8h, v0.8h
+ sqsub v31.8h, v0.8h, v0.8h
+ sqsub v0.8h, v31.8h, v0.8h
+ sqsub v0.8h, v0.8h, v31.8h
+ sqsub v0.4s, v0.4s, v0.4s
+ sqsub v31.4s, v0.4s, v0.4s
+ sqsub v0.4s, v31.4s, v0.4s
+ sqsub v0.4s, v0.4s, v31.4s
+ sqsub v0.2d, v0.2d, v0.2d
+ sqsub v31.2d, v0.2d, v0.2d
+ sqsub v0.2d, v31.2d, v0.2d
+ sqsub v0.2d, v0.2d, v31.2d
+
+ cmgt v0.8b, v0.8b, v0.8b
+ cmgt v31.8b, v0.8b, v0.8b
+ cmgt v0.8b, v31.8b, v0.8b
+ cmgt v0.8b, v0.8b, v31.8b
+ cmgt v0.4h, v0.4h, v0.4h
+ cmgt v31.4h, v0.4h, v0.4h
+ cmgt v0.4h, v31.4h, v0.4h
+ cmgt v0.4h, v0.4h, v31.4h
+ cmgt v0.2s, v0.2s, v0.2s
+ cmgt v31.2s, v0.2s, v0.2s
+ cmgt v0.2s, v31.2s, v0.2s
+ cmgt v0.2s, v0.2s, v31.2s
+ cmgt v0.16b, v0.16b, v0.16b
+ cmgt v31.16b, v0.16b, v0.16b
+ cmgt v0.16b, v31.16b, v0.16b
+ cmgt v0.16b, v0.16b, v31.16b
+ cmgt v0.8h, v0.8h, v0.8h
+ cmgt v31.8h, v0.8h, v0.8h
+ cmgt v0.8h, v31.8h, v0.8h
+ cmgt v0.8h, v0.8h, v31.8h
+ cmgt v0.4s, v0.4s, v0.4s
+ cmgt v31.4s, v0.4s, v0.4s
+ cmgt v0.4s, v31.4s, v0.4s
+ cmgt v0.4s, v0.4s, v31.4s
+ cmgt v0.2d, v0.2d, v0.2d
+ cmgt v31.2d, v0.2d, v0.2d
+ cmgt v0.2d, v31.2d, v0.2d
+ cmgt v0.2d, v0.2d, v31.2d
+
+ cmge v0.8b, v0.8b, v0.8b
+ cmge v31.8b, v0.8b, v0.8b
+ cmge v0.8b, v31.8b, v0.8b
+ cmge v0.8b, v0.8b, v31.8b
+ cmge v0.4h, v0.4h, v0.4h
+ cmge v31.4h, v0.4h, v0.4h
+ cmge v0.4h, v31.4h, v0.4h
+ cmge v0.4h, v0.4h, v31.4h
+ cmge v0.2s, v0.2s, v0.2s
+ cmge v31.2s, v0.2s, v0.2s
+ cmge v0.2s, v31.2s, v0.2s
+ cmge v0.2s, v0.2s, v31.2s
+ cmge v0.16b, v0.16b, v0.16b
+ cmge v31.16b, v0.16b, v0.16b
+ cmge v0.16b, v31.16b, v0.16b
+ cmge v0.16b, v0.16b, v31.16b
+ cmge v0.8h, v0.8h, v0.8h
+ cmge v31.8h, v0.8h, v0.8h
+ cmge v0.8h, v31.8h, v0.8h
+ cmge v0.8h, v0.8h, v31.8h
+ cmge v0.4s, v0.4s, v0.4s
+ cmge v31.4s, v0.4s, v0.4s
+ cmge v0.4s, v31.4s, v0.4s
+ cmge v0.4s, v0.4s, v31.4s
+ cmge v0.2d, v0.2d, v0.2d
+ cmge v31.2d, v0.2d, v0.2d
+ cmge v0.2d, v31.2d, v0.2d
+ cmge v0.2d, v0.2d, v31.2d
+
+ sshl v0.8b, v0.8b, v0.8b
+ sshl v31.8b, v0.8b, v0.8b
+ sshl v0.8b, v31.8b, v0.8b
+ sshl v0.8b, v0.8b, v31.8b
+ sshl v0.4h, v0.4h, v0.4h
+ sshl v31.4h, v0.4h, v0.4h
+ sshl v0.4h, v31.4h, v0.4h
+ sshl v0.4h, v0.4h, v31.4h
+ sshl v0.2s, v0.2s, v0.2s
+ sshl v31.2s, v0.2s, v0.2s
+ sshl v0.2s, v31.2s, v0.2s
+ sshl v0.2s, v0.2s, v31.2s
+ sshl v0.16b, v0.16b, v0.16b
+ sshl v31.16b, v0.16b, v0.16b
+ sshl v0.16b, v31.16b, v0.16b
+ sshl v0.16b, v0.16b, v31.16b
+ sshl v0.8h, v0.8h, v0.8h
+ sshl v31.8h, v0.8h, v0.8h
+ sshl v0.8h, v31.8h, v0.8h
+ sshl v0.8h, v0.8h, v31.8h
+ sshl v0.4s, v0.4s, v0.4s
+ sshl v31.4s, v0.4s, v0.4s
+ sshl v0.4s, v31.4s, v0.4s
+ sshl v0.4s, v0.4s, v31.4s
+ sshl v0.2d, v0.2d, v0.2d
+ sshl v31.2d, v0.2d, v0.2d
+ sshl v0.2d, v31.2d, v0.2d
+ sshl v0.2d, v0.2d, v31.2d
+
+ sqshl v0.8b, v0.8b, v0.8b
+ sqshl v31.8b, v0.8b, v0.8b
+ sqshl v0.8b, v31.8b, v0.8b
+ sqshl v0.8b, v0.8b, v31.8b
+ sqshl v0.4h, v0.4h, v0.4h
+ sqshl v31.4h, v0.4h, v0.4h
+ sqshl v0.4h, v31.4h, v0.4h
+ sqshl v0.4h, v0.4h, v31.4h
+ sqshl v0.2s, v0.2s, v0.2s
+ sqshl v31.2s, v0.2s, v0.2s
+ sqshl v0.2s, v31.2s, v0.2s
+ sqshl v0.2s, v0.2s, v31.2s
+ sqshl v0.16b, v0.16b, v0.16b
+ sqshl v31.16b, v0.16b, v0.16b
+ sqshl v0.16b, v31.16b, v0.16b
+ sqshl v0.16b, v0.16b, v31.16b
+ sqshl v0.8h, v0.8h, v0.8h
+ sqshl v31.8h, v0.8h, v0.8h
+ sqshl v0.8h, v31.8h, v0.8h
+ sqshl v0.8h, v0.8h, v31.8h
+ sqshl v0.4s, v0.4s, v0.4s
+ sqshl v31.4s, v0.4s, v0.4s
+ sqshl v0.4s, v31.4s, v0.4s
+ sqshl v0.4s, v0.4s, v31.4s
+ sqshl v0.2d, v0.2d, v0.2d
+ sqshl v31.2d, v0.2d, v0.2d
+ sqshl v0.2d, v31.2d, v0.2d
+ sqshl v0.2d, v0.2d, v31.2d
+
+ srshl v0.8b, v0.8b, v0.8b
+ srshl v31.8b, v0.8b, v0.8b
+ srshl v0.8b, v31.8b, v0.8b
+ srshl v0.8b, v0.8b, v31.8b
+ srshl v0.4h, v0.4h, v0.4h
+ srshl v31.4h, v0.4h, v0.4h
+ srshl v0.4h, v31.4h, v0.4h
+ srshl v0.4h, v0.4h, v31.4h
+ srshl v0.2s, v0.2s, v0.2s
+ srshl v31.2s, v0.2s, v0.2s
+ srshl v0.2s, v31.2s, v0.2s
+ srshl v0.2s, v0.2s, v31.2s
+ srshl v0.16b, v0.16b, v0.16b
+ srshl v31.16b, v0.16b, v0.16b
+ srshl v0.16b, v31.16b, v0.16b
+ srshl v0.16b, v0.16b, v31.16b
+ srshl v0.8h, v0.8h, v0.8h
+ srshl v31.8h, v0.8h, v0.8h
+ srshl v0.8h, v31.8h, v0.8h
+ srshl v0.8h, v0.8h, v31.8h
+ srshl v0.4s, v0.4s, v0.4s
+ srshl v31.4s, v0.4s, v0.4s
+ srshl v0.4s, v31.4s, v0.4s
+ srshl v0.4s, v0.4s, v31.4s
+ srshl v0.2d, v0.2d, v0.2d
+ srshl v31.2d, v0.2d, v0.2d
+ srshl v0.2d, v31.2d, v0.2d
+ srshl v0.2d, v0.2d, v31.2d
+
+ sqrshl v0.8b, v0.8b, v0.8b
+ sqrshl v31.8b, v0.8b, v0.8b
+ sqrshl v0.8b, v31.8b, v0.8b
+ sqrshl v0.8b, v0.8b, v31.8b
+ sqrshl v0.4h, v0.4h, v0.4h
+ sqrshl v31.4h, v0.4h, v0.4h
+ sqrshl v0.4h, v31.4h, v0.4h
+ sqrshl v0.4h, v0.4h, v31.4h
+ sqrshl v0.2s, v0.2s, v0.2s
+ sqrshl v31.2s, v0.2s, v0.2s
+ sqrshl v0.2s, v31.2s, v0.2s
+ sqrshl v0.2s, v0.2s, v31.2s
+ sqrshl v0.16b, v0.16b, v0.16b
+ sqrshl v31.16b, v0.16b, v0.16b
+ sqrshl v0.16b, v31.16b, v0.16b
+ sqrshl v0.16b, v0.16b, v31.16b
+ sqrshl v0.8h, v0.8h, v0.8h
+ sqrshl v31.8h, v0.8h, v0.8h
+ sqrshl v0.8h, v31.8h, v0.8h
+ sqrshl v0.8h, v0.8h, v31.8h
+ sqrshl v0.4s, v0.4s, v0.4s
+ sqrshl v31.4s, v0.4s, v0.4s
+ sqrshl v0.4s, v31.4s, v0.4s
+ sqrshl v0.4s, v0.4s, v31.4s
+ sqrshl v0.2d, v0.2d, v0.2d
+ sqrshl v31.2d, v0.2d, v0.2d
+ sqrshl v0.2d, v31.2d, v0.2d
+ sqrshl v0.2d, v0.2d, v31.2d
+
+ smax v0.8b, v0.8b, v0.8b
+ smax v31.8b, v0.8b, v0.8b
+ smax v0.8b, v31.8b, v0.8b
+ smax v0.8b, v0.8b, v31.8b
+ smax v0.4h, v0.4h, v0.4h
+ smax v31.4h, v0.4h, v0.4h
+ smax v0.4h, v31.4h, v0.4h
+ smax v0.4h, v0.4h, v31.4h
+ smax v0.2s, v0.2s, v0.2s
+ smax v31.2s, v0.2s, v0.2s
+ smax v0.2s, v31.2s, v0.2s
+ smax v0.2s, v0.2s, v31.2s
+ smax v0.16b, v0.16b, v0.16b
+ smax v31.16b, v0.16b, v0.16b
+ smax v0.16b, v31.16b, v0.16b
+ smax v0.16b, v0.16b, v31.16b
+ smax v0.8h, v0.8h, v0.8h
+ smax v31.8h, v0.8h, v0.8h
+ smax v0.8h, v31.8h, v0.8h
+ smax v0.8h, v0.8h, v31.8h
+ smax v0.4s, v0.4s, v0.4s
+ smax v31.4s, v0.4s, v0.4s
+ smax v0.4s, v31.4s, v0.4s
+ smax v0.4s, v0.4s, v31.4s
+
+ smin v0.8b, v0.8b, v0.8b
+ smin v31.8b, v0.8b, v0.8b
+ smin v0.8b, v31.8b, v0.8b
+ smin v0.8b, v0.8b, v31.8b
+ smin v0.4h, v0.4h, v0.4h
+ smin v31.4h, v0.4h, v0.4h
+ smin v0.4h, v31.4h, v0.4h
+ smin v0.4h, v0.4h, v31.4h
+ smin v0.2s, v0.2s, v0.2s
+ smin v31.2s, v0.2s, v0.2s
+ smin v0.2s, v31.2s, v0.2s
+ smin v0.2s, v0.2s, v31.2s
+ smin v0.16b, v0.16b, v0.16b
+ smin v31.16b, v0.16b, v0.16b
+ smin v0.16b, v31.16b, v0.16b
+ smin v0.16b, v0.16b, v31.16b
+ smin v0.8h, v0.8h, v0.8h
+ smin v31.8h, v0.8h, v0.8h
+ smin v0.8h, v31.8h, v0.8h
+ smin v0.8h, v0.8h, v31.8h
+ smin v0.4s, v0.4s, v0.4s
+ smin v31.4s, v0.4s, v0.4s
+ smin v0.4s, v31.4s, v0.4s
+ smin v0.4s, v0.4s, v31.4s
+
+ sabd v0.8b, v0.8b, v0.8b
+ sabd v31.8b, v0.8b, v0.8b
+ sabd v0.8b, v31.8b, v0.8b
+ sabd v0.8b, v0.8b, v31.8b
+ sabd v0.4h, v0.4h, v0.4h
+ sabd v31.4h, v0.4h, v0.4h
+ sabd v0.4h, v31.4h, v0.4h
+ sabd v0.4h, v0.4h, v31.4h
+ sabd v0.2s, v0.2s, v0.2s
+ sabd v31.2s, v0.2s, v0.2s
+ sabd v0.2s, v31.2s, v0.2s
+ sabd v0.2s, v0.2s, v31.2s
+ sabd v0.16b, v0.16b, v0.16b
+ sabd v31.16b, v0.16b, v0.16b
+ sabd v0.16b, v31.16b, v0.16b
+ sabd v0.16b, v0.16b, v31.16b
+ sabd v0.8h, v0.8h, v0.8h
+ sabd v31.8h, v0.8h, v0.8h
+ sabd v0.8h, v31.8h, v0.8h
+ sabd v0.8h, v0.8h, v31.8h
+ sabd v0.4s, v0.4s, v0.4s
+ sabd v31.4s, v0.4s, v0.4s
+ sabd v0.4s, v31.4s, v0.4s
+ sabd v0.4s, v0.4s, v31.4s
+
+ saba v0.8b, v0.8b, v0.8b
+ saba v31.8b, v0.8b, v0.8b
+ saba v0.8b, v31.8b, v0.8b
+ saba v0.8b, v0.8b, v31.8b
+ saba v0.4h, v0.4h, v0.4h
+ saba v31.4h, v0.4h, v0.4h
+ saba v0.4h, v31.4h, v0.4h
+ saba v0.4h, v0.4h, v31.4h
+ saba v0.2s, v0.2s, v0.2s
+ saba v31.2s, v0.2s, v0.2s
+ saba v0.2s, v31.2s, v0.2s
+ saba v0.2s, v0.2s, v31.2s
+ saba v0.16b, v0.16b, v0.16b
+ saba v31.16b, v0.16b, v0.16b
+ saba v0.16b, v31.16b, v0.16b
+ saba v0.16b, v0.16b, v31.16b
+ saba v0.8h, v0.8h, v0.8h
+ saba v31.8h, v0.8h, v0.8h
+ saba v0.8h, v31.8h, v0.8h
+ saba v0.8h, v0.8h, v31.8h
+ saba v0.4s, v0.4s, v0.4s
+ saba v31.4s, v0.4s, v0.4s
+ saba v0.4s, v31.4s, v0.4s
+ saba v0.4s, v0.4s, v31.4s
+
+ add v0.8b, v0.8b, v0.8b
+ add v31.8b, v0.8b, v0.8b
+ add v0.8b, v31.8b, v0.8b
+ add v0.8b, v0.8b, v31.8b
+ add v0.4h, v0.4h, v0.4h
+ add v31.4h, v0.4h, v0.4h
+ add v0.4h, v31.4h, v0.4h
+ add v0.4h, v0.4h, v31.4h
+ add v0.2s, v0.2s, v0.2s
+ add v31.2s, v0.2s, v0.2s
+ add v0.2s, v31.2s, v0.2s
+ add v0.2s, v0.2s, v31.2s
+ add v0.16b, v0.16b, v0.16b
+ add v31.16b, v0.16b, v0.16b
+ add v0.16b, v31.16b, v0.16b
+ add v0.16b, v0.16b, v31.16b
+ add v0.8h, v0.8h, v0.8h
+ add v31.8h, v0.8h, v0.8h
+ add v0.8h, v31.8h, v0.8h
+ add v0.8h, v0.8h, v31.8h
+ add v0.4s, v0.4s, v0.4s
+ add v31.4s, v0.4s, v0.4s
+ add v0.4s, v31.4s, v0.4s
+ add v0.4s, v0.4s, v31.4s
+ add v0.2d, v0.2d, v0.2d
+ add v31.2d, v0.2d, v0.2d
+ add v0.2d, v31.2d, v0.2d
+ add v0.2d, v0.2d, v31.2d
+
+ cmtst v0.8b, v0.8b, v0.8b
+ cmtst v31.8b, v0.8b, v0.8b
+ cmtst v0.8b, v31.8b, v0.8b
+ cmtst v0.8b, v0.8b, v31.8b
+ cmtst v0.4h, v0.4h, v0.4h
+ cmtst v31.4h, v0.4h, v0.4h
+ cmtst v0.4h, v31.4h, v0.4h
+ cmtst v0.4h, v0.4h, v31.4h
+ cmtst v0.2s, v0.2s, v0.2s
+ cmtst v31.2s, v0.2s, v0.2s
+ cmtst v0.2s, v31.2s, v0.2s
+ cmtst v0.2s, v0.2s, v31.2s
+ cmtst v0.16b, v0.16b, v0.16b
+ cmtst v31.16b, v0.16b, v0.16b
+ cmtst v0.16b, v31.16b, v0.16b
+ cmtst v0.16b, v0.16b, v31.16b
+ cmtst v0.8h, v0.8h, v0.8h
+ cmtst v31.8h, v0.8h, v0.8h
+ cmtst v0.8h, v31.8h, v0.8h
+ cmtst v0.8h, v0.8h, v31.8h
+ cmtst v0.4s, v0.4s, v0.4s
+ cmtst v31.4s, v0.4s, v0.4s
+ cmtst v0.4s, v31.4s, v0.4s
+ cmtst v0.4s, v0.4s, v31.4s
+ cmtst v0.2d, v0.2d, v0.2d
+ cmtst v31.2d, v0.2d, v0.2d
+ cmtst v0.2d, v31.2d, v0.2d
+ cmtst v0.2d, v0.2d, v31.2d
+
+ mla v0.8b, v0.8b, v0.8b
+ mla v31.8b, v0.8b, v0.8b
+ mla v0.8b, v31.8b, v0.8b
+ mla v0.8b, v0.8b, v31.8b
+ mla v0.4h, v0.4h, v0.4h
+ mla v31.4h, v0.4h, v0.4h
+ mla v0.4h, v31.4h, v0.4h
+ mla v0.4h, v0.4h, v31.4h
+ mla v0.2s, v0.2s, v0.2s
+ mla v31.2s, v0.2s, v0.2s
+ mla v0.2s, v31.2s, v0.2s
+ mla v0.2s, v0.2s, v31.2s
+ mla v0.16b, v0.16b, v0.16b
+ mla v31.16b, v0.16b, v0.16b
+ mla v0.16b, v31.16b, v0.16b
+ mla v0.16b, v0.16b, v31.16b
+ mla v0.8h, v0.8h, v0.8h
+ mla v31.8h, v0.8h, v0.8h
+ mla v0.8h, v31.8h, v0.8h
+ mla v0.8h, v0.8h, v31.8h
+ mla v0.4s, v0.4s, v0.4s
+ mla v31.4s, v0.4s, v0.4s
+ mla v0.4s, v31.4s, v0.4s
+ mla v0.4s, v0.4s, v31.4s
+
+ mul v0.8b, v0.8b, v0.8b
+ mul v31.8b, v0.8b, v0.8b
+ mul v0.8b, v31.8b, v0.8b
+ mul v0.8b, v0.8b, v31.8b
+ mul v0.4h, v0.4h, v0.4h
+ mul v31.4h, v0.4h, v0.4h
+ mul v0.4h, v31.4h, v0.4h
+ mul v0.4h, v0.4h, v31.4h
+ mul v0.2s, v0.2s, v0.2s
+ mul v31.2s, v0.2s, v0.2s
+ mul v0.2s, v31.2s, v0.2s
+ mul v0.2s, v0.2s, v31.2s
+ mul v0.16b, v0.16b, v0.16b
+ mul v31.16b, v0.16b, v0.16b
+ mul v0.16b, v31.16b, v0.16b
+ mul v0.16b, v0.16b, v31.16b
+ mul v0.8h, v0.8h, v0.8h
+ mul v31.8h, v0.8h, v0.8h
+ mul v0.8h, v31.8h, v0.8h
+ mul v0.8h, v0.8h, v31.8h
+ mul v0.4s, v0.4s, v0.4s
+ mul v31.4s, v0.4s, v0.4s
+ mul v0.4s, v31.4s, v0.4s
+ mul v0.4s, v0.4s, v31.4s
+
+ smaxp v0.8b, v0.8b, v0.8b
+ smaxp v31.8b, v0.8b, v0.8b
+ smaxp v0.8b, v31.8b, v0.8b
+ smaxp v0.8b, v0.8b, v31.8b
+ smaxp v0.4h, v0.4h, v0.4h
+ smaxp v31.4h, v0.4h, v0.4h
+ smaxp v0.4h, v31.4h, v0.4h
+ smaxp v0.4h, v0.4h, v31.4h
+ smaxp v0.2s, v0.2s, v0.2s
+ smaxp v31.2s, v0.2s, v0.2s
+ smaxp v0.2s, v31.2s, v0.2s
+ smaxp v0.2s, v0.2s, v31.2s
+ smaxp v0.16b, v0.16b, v0.16b
+ smaxp v31.16b, v0.16b, v0.16b
+ smaxp v0.16b, v31.16b, v0.16b
+ smaxp v0.16b, v0.16b, v31.16b
+ smaxp v0.8h, v0.8h, v0.8h
+ smaxp v31.8h, v0.8h, v0.8h
+ smaxp v0.8h, v31.8h, v0.8h
+ smaxp v0.8h, v0.8h, v31.8h
+ smaxp v0.4s, v0.4s, v0.4s
+ smaxp v31.4s, v0.4s, v0.4s
+ smaxp v0.4s, v31.4s, v0.4s
+ smaxp v0.4s, v0.4s, v31.4s
+
+ sminp v0.8b, v0.8b, v0.8b
+ sminp v31.8b, v0.8b, v0.8b
+ sminp v0.8b, v31.8b, v0.8b
+ sminp v0.8b, v0.8b, v31.8b
+ sminp v0.4h, v0.4h, v0.4h
+ sminp v31.4h, v0.4h, v0.4h
+ sminp v0.4h, v31.4h, v0.4h
+ sminp v0.4h, v0.4h, v31.4h
+ sminp v0.2s, v0.2s, v0.2s
+ sminp v31.2s, v0.2s, v0.2s
+ sminp v0.2s, v31.2s, v0.2s
+ sminp v0.2s, v0.2s, v31.2s
+ sminp v0.16b, v0.16b, v0.16b
+ sminp v31.16b, v0.16b, v0.16b
+ sminp v0.16b, v31.16b, v0.16b
+ sminp v0.16b, v0.16b, v31.16b
+ sminp v0.8h, v0.8h, v0.8h
+ sminp v31.8h, v0.8h, v0.8h
+ sminp v0.8h, v31.8h, v0.8h
+ sminp v0.8h, v0.8h, v31.8h
+ sminp v0.4s, v0.4s, v0.4s
+ sminp v31.4s, v0.4s, v0.4s
+ sminp v0.4s, v31.4s, v0.4s
+ sminp v0.4s, v0.4s, v31.4s
+
+ sqdmulh v0.4h, v0.4h, v0.4h
+ sqdmulh v31.4h, v0.4h, v0.4h
+ sqdmulh v0.4h, v31.4h, v0.4h
+ sqdmulh v0.4h, v0.4h, v31.4h
+ sqdmulh v0.2s, v0.2s, v0.2s
+ sqdmulh v31.2s, v0.2s, v0.2s
+ sqdmulh v0.2s, v31.2s, v0.2s
+ sqdmulh v0.2s, v0.2s, v31.2s
+ sqdmulh v0.8h, v0.8h, v0.8h
+ sqdmulh v31.8h, v0.8h, v0.8h
+ sqdmulh v0.8h, v31.8h, v0.8h
+ sqdmulh v0.8h, v0.8h, v31.8h
+ sqdmulh v0.4s, v0.4s, v0.4s
+ sqdmulh v31.4s, v0.4s, v0.4s
+ sqdmulh v0.4s, v31.4s, v0.4s
+ sqdmulh v0.4s, v0.4s, v31.4s
+
+ addp v0.8b, v0.8b, v0.8b
+ addp v31.8b, v0.8b, v0.8b
+ addp v0.8b, v31.8b, v0.8b
+ addp v0.8b, v0.8b, v31.8b
+ addp v0.4h, v0.4h, v0.4h
+ addp v31.4h, v0.4h, v0.4h
+ addp v0.4h, v31.4h, v0.4h
+ addp v0.4h, v0.4h, v31.4h
+ addp v0.2s, v0.2s, v0.2s
+ addp v31.2s, v0.2s, v0.2s
+ addp v0.2s, v31.2s, v0.2s
+ addp v0.2s, v0.2s, v31.2s
+ addp v0.16b, v0.16b, v0.16b
+ addp v31.16b, v0.16b, v0.16b
+ addp v0.16b, v31.16b, v0.16b
+ addp v0.16b, v0.16b, v31.16b
+ addp v0.8h, v0.8h, v0.8h
+ addp v31.8h, v0.8h, v0.8h
+ addp v0.8h, v31.8h, v0.8h
+ addp v0.8h, v0.8h, v31.8h
+ addp v0.4s, v0.4s, v0.4s
+ addp v31.4s, v0.4s, v0.4s
+ addp v0.4s, v31.4s, v0.4s
+ addp v0.4s, v0.4s, v31.4s
+ addp v0.2d, v0.2d, v0.2d
+ addp v31.2d, v0.2d, v0.2d
+ addp v0.2d, v31.2d, v0.2d
+ addp v0.2d, v0.2d, v31.2d
+
+ uhadd v0.8b, v0.8b, v0.8b
+ uhadd v31.8b, v0.8b, v0.8b
+ uhadd v0.8b, v31.8b, v0.8b
+ uhadd v0.8b, v0.8b, v31.8b
+ uhadd v0.4h, v0.4h, v0.4h
+ uhadd v31.4h, v0.4h, v0.4h
+ uhadd v0.4h, v31.4h, v0.4h
+ uhadd v0.4h, v0.4h, v31.4h
+ uhadd v0.2s, v0.2s, v0.2s
+ uhadd v31.2s, v0.2s, v0.2s
+ uhadd v0.2s, v31.2s, v0.2s
+ uhadd v0.2s, v0.2s, v31.2s
+ uhadd v0.16b, v0.16b, v0.16b
+ uhadd v31.16b, v0.16b, v0.16b
+ uhadd v0.16b, v31.16b, v0.16b
+ uhadd v0.16b, v0.16b, v31.16b
+ uhadd v0.8h, v0.8h, v0.8h
+ uhadd v31.8h, v0.8h, v0.8h
+ uhadd v0.8h, v31.8h, v0.8h
+ uhadd v0.8h, v0.8h, v31.8h
+ uhadd v0.4s, v0.4s, v0.4s
+ uhadd v31.4s, v0.4s, v0.4s
+ uhadd v0.4s, v31.4s, v0.4s
+ uhadd v0.4s, v0.4s, v31.4s
+
+ uqadd v0.8b, v0.8b, v0.8b
+ uqadd v31.8b, v0.8b, v0.8b
+ uqadd v0.8b, v31.8b, v0.8b
+ uqadd v0.8b, v0.8b, v31.8b
+ uqadd v0.4h, v0.4h, v0.4h
+ uqadd v31.4h, v0.4h, v0.4h
+ uqadd v0.4h, v31.4h, v0.4h
+ uqadd v0.4h, v0.4h, v31.4h
+ uqadd v0.2s, v0.2s, v0.2s
+ uqadd v31.2s, v0.2s, v0.2s
+ uqadd v0.2s, v31.2s, v0.2s
+ uqadd v0.2s, v0.2s, v31.2s
+ uqadd v0.16b, v0.16b, v0.16b
+ uqadd v31.16b, v0.16b, v0.16b
+ uqadd v0.16b, v31.16b, v0.16b
+ uqadd v0.16b, v0.16b, v31.16b
+ uqadd v0.8h, v0.8h, v0.8h
+ uqadd v31.8h, v0.8h, v0.8h
+ uqadd v0.8h, v31.8h, v0.8h
+ uqadd v0.8h, v0.8h, v31.8h
+ uqadd v0.4s, v0.4s, v0.4s
+ uqadd v31.4s, v0.4s, v0.4s
+ uqadd v0.4s, v31.4s, v0.4s
+ uqadd v0.4s, v0.4s, v31.4s
+ uqadd v0.2d, v0.2d, v0.2d
+ uqadd v31.2d, v0.2d, v0.2d
+ uqadd v0.2d, v31.2d, v0.2d
+ uqadd v0.2d, v0.2d, v31.2d
+
+ urhadd v0.8b, v0.8b, v0.8b
+ urhadd v31.8b, v0.8b, v0.8b
+ urhadd v0.8b, v31.8b, v0.8b
+ urhadd v0.8b, v0.8b, v31.8b
+ urhadd v0.4h, v0.4h, v0.4h
+ urhadd v31.4h, v0.4h, v0.4h
+ urhadd v0.4h, v31.4h, v0.4h
+ urhadd v0.4h, v0.4h, v31.4h
+ urhadd v0.2s, v0.2s, v0.2s
+ urhadd v31.2s, v0.2s, v0.2s
+ urhadd v0.2s, v31.2s, v0.2s
+ urhadd v0.2s, v0.2s, v31.2s
+ urhadd v0.16b, v0.16b, v0.16b
+ urhadd v31.16b, v0.16b, v0.16b
+ urhadd v0.16b, v31.16b, v0.16b
+ urhadd v0.16b, v0.16b, v31.16b
+ urhadd v0.8h, v0.8h, v0.8h
+ urhadd v31.8h, v0.8h, v0.8h
+ urhadd v0.8h, v31.8h, v0.8h
+ urhadd v0.8h, v0.8h, v31.8h
+ urhadd v0.4s, v0.4s, v0.4s
+ urhadd v31.4s, v0.4s, v0.4s
+ urhadd v0.4s, v31.4s, v0.4s
+ urhadd v0.4s, v0.4s, v31.4s
+
+ eor v0.8b, v0.8b, v0.8b
+ eor v31.8b, v0.8b, v0.8b
+ eor v0.8b, v31.8b, v0.8b
+ eor v0.8b, v0.8b, v31.8b
+ eor v0.16b, v0.16b, v0.16b
+ eor v31.16b, v0.16b, v0.16b
+ eor v0.16b, v31.16b, v0.16b
+ eor v0.16b, v0.16b, v31.16b
+
+ bsl v0.8b, v0.8b, v0.8b
+ bsl v31.8b, v0.8b, v0.8b
+ bsl v0.8b, v31.8b, v0.8b
+ bsl v0.8b, v0.8b, v31.8b
+ bsl v0.16b, v0.16b, v0.16b
+ bsl v31.16b, v0.16b, v0.16b
+ bsl v0.16b, v31.16b, v0.16b
+ bsl v0.16b, v0.16b, v31.16b
+
+ bit v0.8b, v0.8b, v0.8b
+ bit v31.8b, v0.8b, v0.8b
+ bit v0.8b, v31.8b, v0.8b
+ bit v0.8b, v0.8b, v31.8b
+ bit v0.16b, v0.16b, v0.16b
+ bit v31.16b, v0.16b, v0.16b
+ bit v0.16b, v31.16b, v0.16b
+ bit v0.16b, v0.16b, v31.16b
+
+ bif v0.8b, v0.8b, v0.8b
+ bif v31.8b, v0.8b, v0.8b
+ bif v0.8b, v31.8b, v0.8b
+ bif v0.8b, v0.8b, v31.8b
+ bif v0.16b, v0.16b, v0.16b
+ bif v31.16b, v0.16b, v0.16b
+ bif v0.16b, v31.16b, v0.16b
+ bif v0.16b, v0.16b, v31.16b
+
+ uhsub v0.8b, v0.8b, v0.8b
+ uhsub v31.8b, v0.8b, v0.8b
+ uhsub v0.8b, v31.8b, v0.8b
+ uhsub v0.8b, v0.8b, v31.8b
+ uhsub v0.4h, v0.4h, v0.4h
+ uhsub v31.4h, v0.4h, v0.4h
+ uhsub v0.4h, v31.4h, v0.4h
+ uhsub v0.4h, v0.4h, v31.4h
+ uhsub v0.2s, v0.2s, v0.2s
+ uhsub v31.2s, v0.2s, v0.2s
+ uhsub v0.2s, v31.2s, v0.2s
+ uhsub v0.2s, v0.2s, v31.2s
+ uhsub v0.16b, v0.16b, v0.16b
+ uhsub v31.16b, v0.16b, v0.16b
+ uhsub v0.16b, v31.16b, v0.16b
+ uhsub v0.16b, v0.16b, v31.16b
+ uhsub v0.8h, v0.8h, v0.8h
+ uhsub v31.8h, v0.8h, v0.8h
+ uhsub v0.8h, v31.8h, v0.8h
+ uhsub v0.8h, v0.8h, v31.8h
+ uhsub v0.4s, v0.4s, v0.4s
+ uhsub v31.4s, v0.4s, v0.4s
+ uhsub v0.4s, v31.4s, v0.4s
+ uhsub v0.4s, v0.4s, v31.4s
+
+ uqsub v0.8b, v0.8b, v0.8b
+ uqsub v31.8b, v0.8b, v0.8b
+ uqsub v0.8b, v31.8b, v0.8b
+ uqsub v0.8b, v0.8b, v31.8b
+ uqsub v0.4h, v0.4h, v0.4h
+ uqsub v31.4h, v0.4h, v0.4h
+ uqsub v0.4h, v31.4h, v0.4h
+ uqsub v0.4h, v0.4h, v31.4h
+ uqsub v0.2s, v0.2s, v0.2s
+ uqsub v31.2s, v0.2s, v0.2s
+ uqsub v0.2s, v31.2s, v0.2s
+ uqsub v0.2s, v0.2s, v31.2s
+ uqsub v0.16b, v0.16b, v0.16b
+ uqsub v31.16b, v0.16b, v0.16b
+ uqsub v0.16b, v31.16b, v0.16b
+ uqsub v0.16b, v0.16b, v31.16b
+ uqsub v0.8h, v0.8h, v0.8h
+ uqsub v31.8h, v0.8h, v0.8h
+ uqsub v0.8h, v31.8h, v0.8h
+ uqsub v0.8h, v0.8h, v31.8h
+ uqsub v0.4s, v0.4s, v0.4s
+ uqsub v31.4s, v0.4s, v0.4s
+ uqsub v0.4s, v31.4s, v0.4s
+ uqsub v0.4s, v0.4s, v31.4s
+ uqsub v0.2d, v0.2d, v0.2d
+ uqsub v31.2d, v0.2d, v0.2d
+ uqsub v0.2d, v31.2d, v0.2d
+ uqsub v0.2d, v0.2d, v31.2d
+
+ cmhi v0.8b, v0.8b, v0.8b
+ cmhi v31.8b, v0.8b, v0.8b
+ cmhi v0.8b, v31.8b, v0.8b
+ cmhi v0.8b, v0.8b, v31.8b
+ cmhi v0.4h, v0.4h, v0.4h
+ cmhi v31.4h, v0.4h, v0.4h
+ cmhi v0.4h, v31.4h, v0.4h
+ cmhi v0.4h, v0.4h, v31.4h
+ cmhi v0.2s, v0.2s, v0.2s
+ cmhi v31.2s, v0.2s, v0.2s
+ cmhi v0.2s, v31.2s, v0.2s
+ cmhi v0.2s, v0.2s, v31.2s
+ cmhi v0.16b, v0.16b, v0.16b
+ cmhi v31.16b, v0.16b, v0.16b
+ cmhi v0.16b, v31.16b, v0.16b
+ cmhi v0.16b, v0.16b, v31.16b
+ cmhi v0.8h, v0.8h, v0.8h
+ cmhi v31.8h, v0.8h, v0.8h
+ cmhi v0.8h, v31.8h, v0.8h
+ cmhi v0.8h, v0.8h, v31.8h
+ cmhi v0.4s, v0.4s, v0.4s
+ cmhi v31.4s, v0.4s, v0.4s
+ cmhi v0.4s, v31.4s, v0.4s
+ cmhi v0.4s, v0.4s, v31.4s
+ cmhi v0.2d, v0.2d, v0.2d
+ cmhi v31.2d, v0.2d, v0.2d
+ cmhi v0.2d, v31.2d, v0.2d
+ cmhi v0.2d, v0.2d, v31.2d
+
+ cmhs v0.8b, v0.8b, v0.8b
+ cmhs v31.8b, v0.8b, v0.8b
+ cmhs v0.8b, v31.8b, v0.8b
+ cmhs v0.8b, v0.8b, v31.8b
+ cmhs v0.4h, v0.4h, v0.4h
+ cmhs v31.4h, v0.4h, v0.4h
+ cmhs v0.4h, v31.4h, v0.4h
+ cmhs v0.4h, v0.4h, v31.4h
+ cmhs v0.2s, v0.2s, v0.2s
+ cmhs v31.2s, v0.2s, v0.2s
+ cmhs v0.2s, v31.2s, v0.2s
+ cmhs v0.2s, v0.2s, v31.2s
+ cmhs v0.16b, v0.16b, v0.16b
+ cmhs v31.16b, v0.16b, v0.16b
+ cmhs v0.16b, v31.16b, v0.16b
+ cmhs v0.16b, v0.16b, v31.16b
+ cmhs v0.8h, v0.8h, v0.8h
+ cmhs v31.8h, v0.8h, v0.8h
+ cmhs v0.8h, v31.8h, v0.8h
+ cmhs v0.8h, v0.8h, v31.8h
+ cmhs v0.4s, v0.4s, v0.4s
+ cmhs v31.4s, v0.4s, v0.4s
+ cmhs v0.4s, v31.4s, v0.4s
+ cmhs v0.4s, v0.4s, v31.4s
+ cmhs v0.2d, v0.2d, v0.2d
+ cmhs v31.2d, v0.2d, v0.2d
+ cmhs v0.2d, v31.2d, v0.2d
+ cmhs v0.2d, v0.2d, v31.2d
+
+ ushl v0.8b, v0.8b, v0.8b
+ ushl v31.8b, v0.8b, v0.8b
+ ushl v0.8b, v31.8b, v0.8b
+ ushl v0.8b, v0.8b, v31.8b
+ ushl v0.4h, v0.4h, v0.4h
+ ushl v31.4h, v0.4h, v0.4h
+ ushl v0.4h, v31.4h, v0.4h
+ ushl v0.4h, v0.4h, v31.4h
+ ushl v0.2s, v0.2s, v0.2s
+ ushl v31.2s, v0.2s, v0.2s
+ ushl v0.2s, v31.2s, v0.2s
+ ushl v0.2s, v0.2s, v31.2s
+ ushl v0.16b, v0.16b, v0.16b
+ ushl v31.16b, v0.16b, v0.16b
+ ushl v0.16b, v31.16b, v0.16b
+ ushl v0.16b, v0.16b, v31.16b
+ ushl v0.8h, v0.8h, v0.8h
+ ushl v31.8h, v0.8h, v0.8h
+ ushl v0.8h, v31.8h, v0.8h
+ ushl v0.8h, v0.8h, v31.8h
+ ushl v0.4s, v0.4s, v0.4s
+ ushl v31.4s, v0.4s, v0.4s
+ ushl v0.4s, v31.4s, v0.4s
+ ushl v0.4s, v0.4s, v31.4s
+ ushl v0.2d, v0.2d, v0.2d
+ ushl v31.2d, v0.2d, v0.2d
+ ushl v0.2d, v31.2d, v0.2d
+ ushl v0.2d, v0.2d, v31.2d
+
+ uqshl v0.8b, v0.8b, v0.8b
+ uqshl v31.8b, v0.8b, v0.8b
+ uqshl v0.8b, v31.8b, v0.8b
+ uqshl v0.8b, v0.8b, v31.8b
+ uqshl v0.4h, v0.4h, v0.4h
+ uqshl v31.4h, v0.4h, v0.4h
+ uqshl v0.4h, v31.4h, v0.4h
+ uqshl v0.4h, v0.4h, v31.4h
+ uqshl v0.2s, v0.2s, v0.2s
+ uqshl v31.2s, v0.2s, v0.2s
+ uqshl v0.2s, v31.2s, v0.2s
+ uqshl v0.2s, v0.2s, v31.2s
+ uqshl v0.16b, v0.16b, v0.16b
+ uqshl v31.16b, v0.16b, v0.16b
+ uqshl v0.16b, v31.16b, v0.16b
+ uqshl v0.16b, v0.16b, v31.16b
+ uqshl v0.8h, v0.8h, v0.8h
+ uqshl v31.8h, v0.8h, v0.8h
+ uqshl v0.8h, v31.8h, v0.8h
+ uqshl v0.8h, v0.8h, v31.8h
+ uqshl v0.4s, v0.4s, v0.4s
+ uqshl v31.4s, v0.4s, v0.4s
+ uqshl v0.4s, v31.4s, v0.4s
+ uqshl v0.4s, v0.4s, v31.4s
+ uqshl v0.2d, v0.2d, v0.2d
+ uqshl v31.2d, v0.2d, v0.2d
+ uqshl v0.2d, v31.2d, v0.2d
+ uqshl v0.2d, v0.2d, v31.2d
+
+ urshl v0.8b, v0.8b, v0.8b
+ urshl v31.8b, v0.8b, v0.8b
+ urshl v0.8b, v31.8b, v0.8b
+ urshl v0.8b, v0.8b, v31.8b
+ urshl v0.4h, v0.4h, v0.4h
+ urshl v31.4h, v0.4h, v0.4h
+ urshl v0.4h, v31.4h, v0.4h
+ urshl v0.4h, v0.4h, v31.4h
+ urshl v0.2s, v0.2s, v0.2s
+ urshl v31.2s, v0.2s, v0.2s
+ urshl v0.2s, v31.2s, v0.2s
+ urshl v0.2s, v0.2s, v31.2s
+ urshl v0.16b, v0.16b, v0.16b
+ urshl v31.16b, v0.16b, v0.16b
+ urshl v0.16b, v31.16b, v0.16b
+ urshl v0.16b, v0.16b, v31.16b
+ urshl v0.8h, v0.8h, v0.8h
+ urshl v31.8h, v0.8h, v0.8h
+ urshl v0.8h, v31.8h, v0.8h
+ urshl v0.8h, v0.8h, v31.8h
+ urshl v0.4s, v0.4s, v0.4s
+ urshl v31.4s, v0.4s, v0.4s
+ urshl v0.4s, v31.4s, v0.4s
+ urshl v0.4s, v0.4s, v31.4s
+ urshl v0.2d, v0.2d, v0.2d
+ urshl v31.2d, v0.2d, v0.2d
+ urshl v0.2d, v31.2d, v0.2d
+ urshl v0.2d, v0.2d, v31.2d
+
+ uqrshl v0.8b, v0.8b, v0.8b
+ uqrshl v31.8b, v0.8b, v0.8b
+ uqrshl v0.8b, v31.8b, v0.8b
+ uqrshl v0.8b, v0.8b, v31.8b
+ uqrshl v0.4h, v0.4h, v0.4h
+ uqrshl v31.4h, v0.4h, v0.4h
+ uqrshl v0.4h, v31.4h, v0.4h
+ uqrshl v0.4h, v0.4h, v31.4h
+ uqrshl v0.2s, v0.2s, v0.2s
+ uqrshl v31.2s, v0.2s, v0.2s
+ uqrshl v0.2s, v31.2s, v0.2s
+ uqrshl v0.2s, v0.2s, v31.2s
+ uqrshl v0.16b, v0.16b, v0.16b
+ uqrshl v31.16b, v0.16b, v0.16b
+ uqrshl v0.16b, v31.16b, v0.16b
+ uqrshl v0.16b, v0.16b, v31.16b
+ uqrshl v0.8h, v0.8h, v0.8h
+ uqrshl v31.8h, v0.8h, v0.8h
+ uqrshl v0.8h, v31.8h, v0.8h
+ uqrshl v0.8h, v0.8h, v31.8h
+ uqrshl v0.4s, v0.4s, v0.4s
+ uqrshl v31.4s, v0.4s, v0.4s
+ uqrshl v0.4s, v31.4s, v0.4s
+ uqrshl v0.4s, v0.4s, v31.4s
+ uqrshl v0.2d, v0.2d, v0.2d
+ uqrshl v31.2d, v0.2d, v0.2d
+ uqrshl v0.2d, v31.2d, v0.2d
+ uqrshl v0.2d, v0.2d, v31.2d
+
+ umax v0.8b, v0.8b, v0.8b
+ umax v31.8b, v0.8b, v0.8b
+ umax v0.8b, v31.8b, v0.8b
+ umax v0.8b, v0.8b, v31.8b
+ umax v0.4h, v0.4h, v0.4h
+ umax v31.4h, v0.4h, v0.4h
+ umax v0.4h, v31.4h, v0.4h
+ umax v0.4h, v0.4h, v31.4h
+ umax v0.2s, v0.2s, v0.2s
+ umax v31.2s, v0.2s, v0.2s
+ umax v0.2s, v31.2s, v0.2s
+ umax v0.2s, v0.2s, v31.2s
+ umax v0.16b, v0.16b, v0.16b
+ umax v31.16b, v0.16b, v0.16b
+ umax v0.16b, v31.16b, v0.16b
+ umax v0.16b, v0.16b, v31.16b
+ umax v0.8h, v0.8h, v0.8h
+ umax v31.8h, v0.8h, v0.8h
+ umax v0.8h, v31.8h, v0.8h
+ umax v0.8h, v0.8h, v31.8h
+ umax v0.4s, v0.4s, v0.4s
+ umax v31.4s, v0.4s, v0.4s
+ umax v0.4s, v31.4s, v0.4s
+ umax v0.4s, v0.4s, v31.4s
+
+ umin v0.8b, v0.8b, v0.8b
+ umin v31.8b, v0.8b, v0.8b
+ umin v0.8b, v31.8b, v0.8b
+ umin v0.8b, v0.8b, v31.8b
+ umin v0.4h, v0.4h, v0.4h
+ umin v31.4h, v0.4h, v0.4h
+ umin v0.4h, v31.4h, v0.4h
+ umin v0.4h, v0.4h, v31.4h
+ umin v0.2s, v0.2s, v0.2s
+ umin v31.2s, v0.2s, v0.2s
+ umin v0.2s, v31.2s, v0.2s
+ umin v0.2s, v0.2s, v31.2s
+ umin v0.16b, v0.16b, v0.16b
+ umin v31.16b, v0.16b, v0.16b
+ umin v0.16b, v31.16b, v0.16b
+ umin v0.16b, v0.16b, v31.16b
+ umin v0.8h, v0.8h, v0.8h
+ umin v31.8h, v0.8h, v0.8h
+ umin v0.8h, v31.8h, v0.8h
+ umin v0.8h, v0.8h, v31.8h
+ umin v0.4s, v0.4s, v0.4s
+ umin v31.4s, v0.4s, v0.4s
+ umin v0.4s, v31.4s, v0.4s
+ umin v0.4s, v0.4s, v31.4s
+
+ uabd v0.8b, v0.8b, v0.8b
+ uabd v31.8b, v0.8b, v0.8b
+ uabd v0.8b, v31.8b, v0.8b
+ uabd v0.8b, v0.8b, v31.8b
+ uabd v0.4h, v0.4h, v0.4h
+ uabd v31.4h, v0.4h, v0.4h
+ uabd v0.4h, v31.4h, v0.4h
+ uabd v0.4h, v0.4h, v31.4h
+ uabd v0.2s, v0.2s, v0.2s
+ uabd v31.2s, v0.2s, v0.2s
+ uabd v0.2s, v31.2s, v0.2s
+ uabd v0.2s, v0.2s, v31.2s
+ uabd v0.16b, v0.16b, v0.16b
+ uabd v31.16b, v0.16b, v0.16b
+ uabd v0.16b, v31.16b, v0.16b
+ uabd v0.16b, v0.16b, v31.16b
+ uabd v0.8h, v0.8h, v0.8h
+ uabd v31.8h, v0.8h, v0.8h
+ uabd v0.8h, v31.8h, v0.8h
+ uabd v0.8h, v0.8h, v31.8h
+ uabd v0.4s, v0.4s, v0.4s
+ uabd v31.4s, v0.4s, v0.4s
+ uabd v0.4s, v31.4s, v0.4s
+ uabd v0.4s, v0.4s, v31.4s
+
+ uaba v0.8b, v0.8b, v0.8b
+ uaba v31.8b, v0.8b, v0.8b
+ uaba v0.8b, v31.8b, v0.8b
+ uaba v0.8b, v0.8b, v31.8b
+ uaba v0.4h, v0.4h, v0.4h
+ uaba v31.4h, v0.4h, v0.4h
+ uaba v0.4h, v31.4h, v0.4h
+ uaba v0.4h, v0.4h, v31.4h
+ uaba v0.2s, v0.2s, v0.2s
+ uaba v31.2s, v0.2s, v0.2s
+ uaba v0.2s, v31.2s, v0.2s
+ uaba v0.2s, v0.2s, v31.2s
+ uaba v0.16b, v0.16b, v0.16b
+ uaba v31.16b, v0.16b, v0.16b
+ uaba v0.16b, v31.16b, v0.16b
+ uaba v0.16b, v0.16b, v31.16b
+ uaba v0.8h, v0.8h, v0.8h
+ uaba v31.8h, v0.8h, v0.8h
+ uaba v0.8h, v31.8h, v0.8h
+ uaba v0.8h, v0.8h, v31.8h
+ uaba v0.4s, v0.4s, v0.4s
+ uaba v31.4s, v0.4s, v0.4s
+ uaba v0.4s, v31.4s, v0.4s
+ uaba v0.4s, v0.4s, v31.4s
+
+ sub v0.8b, v0.8b, v0.8b
+ sub v31.8b, v0.8b, v0.8b
+ sub v0.8b, v31.8b, v0.8b
+ sub v0.8b, v0.8b, v31.8b
+ sub v0.4h, v0.4h, v0.4h
+ sub v31.4h, v0.4h, v0.4h
+ sub v0.4h, v31.4h, v0.4h
+ sub v0.4h, v0.4h, v31.4h
+ sub v0.2s, v0.2s, v0.2s
+ sub v31.2s, v0.2s, v0.2s
+ sub v0.2s, v31.2s, v0.2s
+ sub v0.2s, v0.2s, v31.2s
+ sub v0.16b, v0.16b, v0.16b
+ sub v31.16b, v0.16b, v0.16b
+ sub v0.16b, v31.16b, v0.16b
+ sub v0.16b, v0.16b, v31.16b
+ sub v0.8h, v0.8h, v0.8h
+ sub v31.8h, v0.8h, v0.8h
+ sub v0.8h, v31.8h, v0.8h
+ sub v0.8h, v0.8h, v31.8h
+ sub v0.4s, v0.4s, v0.4s
+ sub v31.4s, v0.4s, v0.4s
+ sub v0.4s, v31.4s, v0.4s
+ sub v0.4s, v0.4s, v31.4s
+ sub v0.2d, v0.2d, v0.2d
+ sub v31.2d, v0.2d, v0.2d
+ sub v0.2d, v31.2d, v0.2d
+ sub v0.2d, v0.2d, v31.2d
+
+ cmeq v0.8b, v0.8b, v0.8b
+ cmeq v31.8b, v0.8b, v0.8b
+ cmeq v0.8b, v31.8b, v0.8b
+ cmeq v0.8b, v0.8b, v31.8b
+ cmeq v0.4h, v0.4h, v0.4h
+ cmeq v31.4h, v0.4h, v0.4h
+ cmeq v0.4h, v31.4h, v0.4h
+ cmeq v0.4h, v0.4h, v31.4h
+ cmeq v0.2s, v0.2s, v0.2s
+ cmeq v31.2s, v0.2s, v0.2s
+ cmeq v0.2s, v31.2s, v0.2s
+ cmeq v0.2s, v0.2s, v31.2s
+ cmeq v0.16b, v0.16b, v0.16b
+ cmeq v31.16b, v0.16b, v0.16b
+ cmeq v0.16b, v31.16b, v0.16b
+ cmeq v0.16b, v0.16b, v31.16b
+ cmeq v0.8h, v0.8h, v0.8h
+ cmeq v31.8h, v0.8h, v0.8h
+ cmeq v0.8h, v31.8h, v0.8h
+ cmeq v0.8h, v0.8h, v31.8h
+ cmeq v0.4s, v0.4s, v0.4s
+ cmeq v31.4s, v0.4s, v0.4s
+ cmeq v0.4s, v31.4s, v0.4s
+ cmeq v0.4s, v0.4s, v31.4s
+ cmeq v0.2d, v0.2d, v0.2d
+ cmeq v31.2d, v0.2d, v0.2d
+ cmeq v0.2d, v31.2d, v0.2d
+ cmeq v0.2d, v0.2d, v31.2d
+
+ mls v0.8b, v0.8b, v0.8b
+ mls v31.8b, v0.8b, v0.8b
+ mls v0.8b, v31.8b, v0.8b
+ mls v0.8b, v0.8b, v31.8b
+ mls v0.4h, v0.4h, v0.4h
+ mls v31.4h, v0.4h, v0.4h
+ mls v0.4h, v31.4h, v0.4h
+ mls v0.4h, v0.4h, v31.4h
+ mls v0.2s, v0.2s, v0.2s
+ mls v31.2s, v0.2s, v0.2s
+ mls v0.2s, v31.2s, v0.2s
+ mls v0.2s, v0.2s, v31.2s
+ mls v0.16b, v0.16b, v0.16b
+ mls v31.16b, v0.16b, v0.16b
+ mls v0.16b, v31.16b, v0.16b
+ mls v0.16b, v0.16b, v31.16b
+ mls v0.8h, v0.8h, v0.8h
+ mls v31.8h, v0.8h, v0.8h
+ mls v0.8h, v31.8h, v0.8h
+ mls v0.8h, v0.8h, v31.8h
+ mls v0.4s, v0.4s, v0.4s
+ mls v31.4s, v0.4s, v0.4s
+ mls v0.4s, v31.4s, v0.4s
+ mls v0.4s, v0.4s, v31.4s
+
+ pmul v0.8b, v0.8b, v0.8b
+ pmul v31.8b, v0.8b, v0.8b
+ pmul v0.8b, v31.8b, v0.8b
+ pmul v0.8b, v0.8b, v31.8b
+ pmul v0.16b, v0.16b, v0.16b
+ pmul v31.16b, v0.16b, v0.16b
+ pmul v0.16b, v31.16b, v0.16b
+ pmul v0.16b, v0.16b, v31.16b
+
+ umaxp v0.8b, v0.8b, v0.8b
+ umaxp v31.8b, v0.8b, v0.8b
+ umaxp v0.8b, v31.8b, v0.8b
+ umaxp v0.8b, v0.8b, v31.8b
+ umaxp v0.4h, v0.4h, v0.4h
+ umaxp v31.4h, v0.4h, v0.4h
+ umaxp v0.4h, v31.4h, v0.4h
+ umaxp v0.4h, v0.4h, v31.4h
+ umaxp v0.2s, v0.2s, v0.2s
+ umaxp v31.2s, v0.2s, v0.2s
+ umaxp v0.2s, v31.2s, v0.2s
+ umaxp v0.2s, v0.2s, v31.2s
+ umaxp v0.16b, v0.16b, v0.16b
+ umaxp v31.16b, v0.16b, v0.16b
+ umaxp v0.16b, v31.16b, v0.16b
+ umaxp v0.16b, v0.16b, v31.16b
+ umaxp v0.8h, v0.8h, v0.8h
+ umaxp v31.8h, v0.8h, v0.8h
+ umaxp v0.8h, v31.8h, v0.8h
+ umaxp v0.8h, v0.8h, v31.8h
+ umaxp v0.4s, v0.4s, v0.4s
+ umaxp v31.4s, v0.4s, v0.4s
+ umaxp v0.4s, v31.4s, v0.4s
+ umaxp v0.4s, v0.4s, v31.4s
+
+ uminp v0.8b, v0.8b, v0.8b
+ uminp v31.8b, v0.8b, v0.8b
+ uminp v0.8b, v31.8b, v0.8b
+ uminp v0.8b, v0.8b, v31.8b
+ uminp v0.4h, v0.4h, v0.4h
+ uminp v31.4h, v0.4h, v0.4h
+ uminp v0.4h, v31.4h, v0.4h
+ uminp v0.4h, v0.4h, v31.4h
+ uminp v0.2s, v0.2s, v0.2s
+ uminp v31.2s, v0.2s, v0.2s
+ uminp v0.2s, v31.2s, v0.2s
+ uminp v0.2s, v0.2s, v31.2s
+ uminp v0.16b, v0.16b, v0.16b
+ uminp v31.16b, v0.16b, v0.16b
+ uminp v0.16b, v31.16b, v0.16b
+ uminp v0.16b, v0.16b, v31.16b
+ uminp v0.8h, v0.8h, v0.8h
+ uminp v31.8h, v0.8h, v0.8h
+ uminp v0.8h, v31.8h, v0.8h
+ uminp v0.8h, v0.8h, v31.8h
+ uminp v0.4s, v0.4s, v0.4s
+ uminp v31.4s, v0.4s, v0.4s
+ uminp v0.4s, v31.4s, v0.4s
+ uminp v0.4s, v0.4s, v31.4s
+
+ sqrdmulh v0.4h, v0.4h, v0.4h
+ sqrdmulh v31.4h, v0.4h, v0.4h
+ sqrdmulh v0.4h, v31.4h, v0.4h
+ sqrdmulh v0.4h, v0.4h, v31.4h
+ sqrdmulh v0.2s, v0.2s, v0.2s
+ sqrdmulh v31.2s, v0.2s, v0.2s
+ sqrdmulh v0.2s, v31.2s, v0.2s
+ sqrdmulh v0.2s, v0.2s, v31.2s
+ sqrdmulh v0.8h, v0.8h, v0.8h
+ sqrdmulh v31.8h, v0.8h, v0.8h
+ sqrdmulh v0.8h, v31.8h, v0.8h
+ sqrdmulh v0.8h, v0.8h, v31.8h
+ sqrdmulh v0.4s, v0.4s, v0.4s
+ sqrdmulh v31.4s, v0.4s, v0.4s
+ sqrdmulh v0.4s, v31.4s, v0.4s
+ sqrdmulh v0.4s, v0.4s, v31.4s
diff --git a/gas/testsuite/gas/aarch64/advsimd-two-reg-misc-hilo.d b/gas/testsuite/gas/aarch64/advsimd-two-reg-misc-hilo.d
new file mode 100644
index 0000000..87960ce
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-two-reg-misc-hilo.d
@@ -0,0 +1,129 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 0e212800 xtn v0\.8b, v0\.8h
+ *[0-9a-f]+: 0e21281f xtn v31\.8b, v0\.8h
+ *[0-9a-f]+: 0e212be0 xtn v0\.8b, v31\.8h
+ *[0-9a-f]+: 0e612800 xtn v0\.4h, v0\.4s
+ *[0-9a-f]+: 0e61281f xtn v31\.4h, v0\.4s
+ *[0-9a-f]+: 0e612be0 xtn v0\.4h, v31\.4s
+ *[0-9a-f]+: 0ea12800 xtn v0\.2s, v0\.2d
+ *[0-9a-f]+: 0ea1281f xtn v31\.2s, v0\.2d
+ *[0-9a-f]+: 0ea12be0 xtn v0\.2s, v31\.2d
+ *[0-9a-f]+: 4e212800 xtn2 v0\.16b, v0\.8h
+ *[0-9a-f]+: 4e21281f xtn2 v31\.16b, v0\.8h
+ *[0-9a-f]+: 4e212be0 xtn2 v0\.16b, v31\.8h
+ *[0-9a-f]+: 4e612800 xtn2 v0\.8h, v0\.4s
+ *[0-9a-f]+: 4e61281f xtn2 v31\.8h, v0\.4s
+ *[0-9a-f]+: 4e612be0 xtn2 v0\.8h, v31\.4s
+ *[0-9a-f]+: 4ea12800 xtn2 v0\.4s, v0\.2d
+ *[0-9a-f]+: 4ea1281f xtn2 v31\.4s, v0\.2d
+ *[0-9a-f]+: 4ea12be0 xtn2 v0\.4s, v31\.2d
+ *[0-9a-f]+: 0e214800 sqxtn v0\.8b, v0\.8h
+ *[0-9a-f]+: 0e21481f sqxtn v31\.8b, v0\.8h
+ *[0-9a-f]+: 0e214be0 sqxtn v0\.8b, v31\.8h
+ *[0-9a-f]+: 0e614800 sqxtn v0\.4h, v0\.4s
+ *[0-9a-f]+: 0e61481f sqxtn v31\.4h, v0\.4s
+ *[0-9a-f]+: 0e614be0 sqxtn v0\.4h, v31\.4s
+ *[0-9a-f]+: 0ea14800 sqxtn v0\.2s, v0\.2d
+ *[0-9a-f]+: 0ea1481f sqxtn v31\.2s, v0\.2d
+ *[0-9a-f]+: 0ea14be0 sqxtn v0\.2s, v31\.2d
+ *[0-9a-f]+: 4e214800 sqxtn2 v0\.16b, v0\.8h
+ *[0-9a-f]+: 4e21481f sqxtn2 v31\.16b, v0\.8h
+ *[0-9a-f]+: 4e214be0 sqxtn2 v0\.16b, v31\.8h
+ *[0-9a-f]+: 4e614800 sqxtn2 v0\.8h, v0\.4s
+ *[0-9a-f]+: 4e61481f sqxtn2 v31\.8h, v0\.4s
+ *[0-9a-f]+: 4e614be0 sqxtn2 v0\.8h, v31\.4s
+ *[0-9a-f]+: 4ea14800 sqxtn2 v0\.4s, v0\.2d
+ *[0-9a-f]+: 4ea1481f sqxtn2 v31\.4s, v0\.2d
+ *[0-9a-f]+: 4ea14be0 sqxtn2 v0\.4s, v31\.2d
+ *[0-9a-f]+: 0e216800 fcvtn v0\.4h, v0\.4s
+ *[0-9a-f]+: 0e21681f fcvtn v31\.4h, v0\.4s
+ *[0-9a-f]+: 0e216be0 fcvtn v0\.4h, v31\.4s
+ *[0-9a-f]+: 0e616800 fcvtn v0\.2s, v0\.2d
+ *[0-9a-f]+: 0e61681f fcvtn v31\.2s, v0\.2d
+ *[0-9a-f]+: 0e616be0 fcvtn v0\.2s, v31\.2d
+ *[0-9a-f]+: 4e216800 fcvtn2 v0\.8h, v0\.4s
+ *[0-9a-f]+: 4e21681f fcvtn2 v31\.8h, v0\.4s
+ *[0-9a-f]+: 4e216be0 fcvtn2 v0\.8h, v31\.4s
+ *[0-9a-f]+: 4e616800 fcvtn2 v0\.4s, v0\.2d
+ *[0-9a-f]+: 4e61681f fcvtn2 v31\.4s, v0\.2d
+ *[0-9a-f]+: 4e616be0 fcvtn2 v0\.4s, v31\.2d
+ *[0-9a-f]+: 0e217800 fcvtl v0\.4s, v0\.4h
+ *[0-9a-f]+: 0e21781f fcvtl v31\.4s, v0\.4h
+ *[0-9a-f]+: 0e217be0 fcvtl v0\.4s, v31\.4h
+ *[0-9a-f]+: 0e617800 fcvtl v0\.2d, v0\.2s
+ *[0-9a-f]+: 0e61781f fcvtl v31\.2d, v0\.2s
+ *[0-9a-f]+: 0e617be0 fcvtl v0\.2d, v31\.2s
+ *[0-9a-f]+: 4e217800 fcvtl2 v0\.4s, v0\.8h
+ *[0-9a-f]+: 4e21781f fcvtl2 v31\.4s, v0\.8h
+ *[0-9a-f]+: 4e217be0 fcvtl2 v0\.4s, v31\.8h
+ *[0-9a-f]+: 4e617800 fcvtl2 v0\.2d, v0\.4s
+ *[0-9a-f]+: 4e61781f fcvtl2 v31\.2d, v0\.4s
+ *[0-9a-f]+: 4e617be0 fcvtl2 v0\.2d, v31\.4s
+ *[0-9a-f]+: 2e212800 sqxtun v0\.8b, v0\.8h
+ *[0-9a-f]+: 2e21281f sqxtun v31\.8b, v0\.8h
+ *[0-9a-f]+: 2e212be0 sqxtun v0\.8b, v31\.8h
+ *[0-9a-f]+: 2e612800 sqxtun v0\.4h, v0\.4s
+ *[0-9a-f]+: 2e61281f sqxtun v31\.4h, v0\.4s
+ *[0-9a-f]+: 2e612be0 sqxtun v0\.4h, v31\.4s
+ *[0-9a-f]+: 2ea12800 sqxtun v0\.2s, v0\.2d
+ *[0-9a-f]+: 2ea1281f sqxtun v31\.2s, v0\.2d
+ *[0-9a-f]+: 2ea12be0 sqxtun v0\.2s, v31\.2d
+ *[0-9a-f]+: 6e212800 sqxtun2 v0\.16b, v0\.8h
+ *[0-9a-f]+: 6e21281f sqxtun2 v31\.16b, v0\.8h
+ *[0-9a-f]+: 6e212be0 sqxtun2 v0\.16b, v31\.8h
+ *[0-9a-f]+: 6e612800 sqxtun2 v0\.8h, v0\.4s
+ *[0-9a-f]+: 6e61281f sqxtun2 v31\.8h, v0\.4s
+ *[0-9a-f]+: 6e612be0 sqxtun2 v0\.8h, v31\.4s
+ *[0-9a-f]+: 6ea12800 sqxtun2 v0\.4s, v0\.2d
+ *[0-9a-f]+: 6ea1281f sqxtun2 v31\.4s, v0\.2d
+ *[0-9a-f]+: 6ea12be0 sqxtun2 v0\.4s, v31\.2d
+ *[0-9a-f]+: 2e213800 shll v0\.8h, v0\.8b, #8
+ *[0-9a-f]+: 2e21381f shll v31\.8h, v0\.8b, #8
+ *[0-9a-f]+: 2e213be0 shll v0\.8h, v31\.8b, #8
+ *[0-9a-f]+: 2e613800 shll v0\.4s, v0\.4h, #16
+ *[0-9a-f]+: 2e61381f shll v31\.4s, v0\.4h, #16
+ *[0-9a-f]+: 2e613be0 shll v0\.4s, v31\.4h, #16
+ *[0-9a-f]+: 2ea13800 shll v0\.2d, v0\.2s, #32
+ *[0-9a-f]+: 2ea1381f shll v31\.2d, v0\.2s, #32
+ *[0-9a-f]+: 2ea13be0 shll v0\.2d, v31\.2s, #32
+ *[0-9a-f]+: 6e213800 shll2 v0\.8h, v0\.16b, #8
+ *[0-9a-f]+: 6e21381f shll2 v31\.8h, v0\.16b, #8
+ *[0-9a-f]+: 6e213be0 shll2 v0\.8h, v31\.16b, #8
+ *[0-9a-f]+: 6e613800 shll2 v0\.4s, v0\.8h, #16
+ *[0-9a-f]+: 6e61381f shll2 v31\.4s, v0\.8h, #16
+ *[0-9a-f]+: 6e613be0 shll2 v0\.4s, v31\.8h, #16
+ *[0-9a-f]+: 6ea13800 shll2 v0\.2d, v0\.4s, #32
+ *[0-9a-f]+: 6ea1381f shll2 v31\.2d, v0\.4s, #32
+ *[0-9a-f]+: 6ea13be0 shll2 v0\.2d, v31\.4s, #32
+ *[0-9a-f]+: 2e214800 uqxtn v0\.8b, v0\.8h
+ *[0-9a-f]+: 2e21481f uqxtn v31\.8b, v0\.8h
+ *[0-9a-f]+: 2e214be0 uqxtn v0\.8b, v31\.8h
+ *[0-9a-f]+: 2e614800 uqxtn v0\.4h, v0\.4s
+ *[0-9a-f]+: 2e61481f uqxtn v31\.4h, v0\.4s
+ *[0-9a-f]+: 2e614be0 uqxtn v0\.4h, v31\.4s
+ *[0-9a-f]+: 2ea14800 uqxtn v0\.2s, v0\.2d
+ *[0-9a-f]+: 2ea1481f uqxtn v31\.2s, v0\.2d
+ *[0-9a-f]+: 2ea14be0 uqxtn v0\.2s, v31\.2d
+ *[0-9a-f]+: 6e214800 uqxtn2 v0\.16b, v0\.8h
+ *[0-9a-f]+: 6e21481f uqxtn2 v31\.16b, v0\.8h
+ *[0-9a-f]+: 6e214be0 uqxtn2 v0\.16b, v31\.8h
+ *[0-9a-f]+: 6e614800 uqxtn2 v0\.8h, v0\.4s
+ *[0-9a-f]+: 6e61481f uqxtn2 v31\.8h, v0\.4s
+ *[0-9a-f]+: 6e614be0 uqxtn2 v0\.8h, v31\.4s
+ *[0-9a-f]+: 6ea14800 uqxtn2 v0\.4s, v0\.2d
+ *[0-9a-f]+: 6ea1481f uqxtn2 v31\.4s, v0\.2d
+ *[0-9a-f]+: 6ea14be0 uqxtn2 v0\.4s, v31\.2d
+ *[0-9a-f]+: 2e616800 fcvtxn v0\.2s, v0\.2d
+ *[0-9a-f]+: 2e61681f fcvtxn v31\.2s, v0\.2d
+ *[0-9a-f]+: 2e616be0 fcvtxn v0\.2s, v31\.2d
+ *[0-9a-f]+: 6e616800 fcvtxn2 v0\.4s, v0\.2d
+ *[0-9a-f]+: 6e61681f fcvtxn2 v31\.4s, v0\.2d
+ *[0-9a-f]+: 6e616be0 fcvtxn2 v0\.4s, v31\.2d
diff --git a/gas/testsuite/gas/aarch64/advsimd-two-reg-misc-hilo.s b/gas/testsuite/gas/aarch64/advsimd-two-reg-misc-hilo.s
new file mode 100644
index 0000000..12e8868
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-two-reg-misc-hilo.s
@@ -0,0 +1,127 @@
+ xtn v0.8b, v0.8h
+ xtn v31.8b, v0.8h
+ xtn v0.8b, v31.8h
+ xtn v0.4h, v0.4s
+ xtn v31.4h, v0.4s
+ xtn v0.4h, v31.4s
+ xtn v0.2s, v0.2d
+ xtn v31.2s, v0.2d
+ xtn v0.2s, v31.2d
+ xtn2 v0.16b, v0.8h
+ xtn2 v31.16b, v0.8h
+ xtn2 v0.16b, v31.8h
+ xtn2 v0.8h, v0.4s
+ xtn2 v31.8h, v0.4s
+ xtn2 v0.8h, v31.4s
+ xtn2 v0.4s, v0.2d
+ xtn2 v31.4s, v0.2d
+ xtn2 v0.4s, v31.2d
+
+ sqxtn v0.8b, v0.8h
+ sqxtn v31.8b, v0.8h
+ sqxtn v0.8b, v31.8h
+ sqxtn v0.4h, v0.4s
+ sqxtn v31.4h, v0.4s
+ sqxtn v0.4h, v31.4s
+ sqxtn v0.2s, v0.2d
+ sqxtn v31.2s, v0.2d
+ sqxtn v0.2s, v31.2d
+ sqxtn2 v0.16b, v0.8h
+ sqxtn2 v31.16b, v0.8h
+ sqxtn2 v0.16b, v31.8h
+ sqxtn2 v0.8h, v0.4s
+ sqxtn2 v31.8h, v0.4s
+ sqxtn2 v0.8h, v31.4s
+ sqxtn2 v0.4s, v0.2d
+ sqxtn2 v31.4s, v0.2d
+ sqxtn2 v0.4s, v31.2d
+
+ fcvtn v0.4h, v0.4s
+ fcvtn v31.4h, v0.4s
+ fcvtn v0.4h, v31.4s
+ fcvtn v0.2s, v0.2d
+ fcvtn v31.2s, v0.2d
+ fcvtn v0.2s, v31.2d
+ fcvtn2 v0.8h, v0.4s
+ fcvtn2 v31.8h, v0.4s
+ fcvtn2 v0.8h, v31.4s
+ fcvtn2 v0.4s, v0.2d
+ fcvtn2 v31.4s, v0.2d
+ fcvtn2 v0.4s, v31.2d
+
+ fcvtl v0.4s, v0.4h
+ fcvtl v31.4s, v0.4h
+ fcvtl v0.4s, v31.4h
+ fcvtl v0.2d, v0.2s
+ fcvtl v31.2d, v0.2s
+ fcvtl v0.2d, v31.2s
+ fcvtl2 v0.4s, v0.8h
+ fcvtl2 v31.4s, v0.8h
+ fcvtl2 v0.4s, v31.8h
+ fcvtl2 v0.2d, v0.4s
+ fcvtl2 v31.2d, v0.4s
+ fcvtl2 v0.2d, v31.4s
+
+ sqxtun v0.8b, v0.8h
+ sqxtun v31.8b, v0.8h
+ sqxtun v0.8b, v31.8h
+ sqxtun v0.4h, v0.4s
+ sqxtun v31.4h, v0.4s
+ sqxtun v0.4h, v31.4s
+ sqxtun v0.2s, v0.2d
+ sqxtun v31.2s, v0.2d
+ sqxtun v0.2s, v31.2d
+ sqxtun2 v0.16b, v0.8h
+ sqxtun2 v31.16b, v0.8h
+ sqxtun2 v0.16b, v31.8h
+ sqxtun2 v0.8h, v0.4s
+ sqxtun2 v31.8h, v0.4s
+ sqxtun2 v0.8h, v31.4s
+ sqxtun2 v0.4s, v0.2d
+ sqxtun2 v31.4s, v0.2d
+ sqxtun2 v0.4s, v31.2d
+
+ shll v0.8h, v0.8b, #8
+ shll v31.8h, v0.8b, #8
+ shll v0.8h, v31.8b, #8
+ shll v0.4s, v0.4h, #16
+ shll v31.4s, v0.4h, #16
+ shll v0.4s, v31.4h, #16
+ shll v0.2d, v0.2s, #32
+ shll v31.2d, v0.2s, #32
+ shll v0.2d, v31.2s, #32
+ shll2 v0.8h, v0.16b, #8
+ shll2 v31.8h, v0.16b, #8
+ shll2 v0.8h, v31.16b, #8
+ shll2 v0.4s, v0.8h, #16
+ shll2 v31.4s, v0.8h, #16
+ shll2 v0.4s, v31.8h, #16
+ shll2 v0.2d, v0.4s, #32
+ shll2 v31.2d, v0.4s, #32
+ shll2 v0.2d, v31.4s, #32
+
+ uqxtn v0.8b, v0.8h
+ uqxtn v31.8b, v0.8h
+ uqxtn v0.8b, v31.8h
+ uqxtn v0.4h, v0.4s
+ uqxtn v31.4h, v0.4s
+ uqxtn v0.4h, v31.4s
+ uqxtn v0.2s, v0.2d
+ uqxtn v31.2s, v0.2d
+ uqxtn v0.2s, v31.2d
+ uqxtn2 v0.16b, v0.8h
+ uqxtn2 v31.16b, v0.8h
+ uqxtn2 v0.16b, v31.8h
+ uqxtn2 v0.8h, v0.4s
+ uqxtn2 v31.8h, v0.4s
+ uqxtn2 v0.8h, v31.4s
+ uqxtn2 v0.4s, v0.2d
+ uqxtn2 v31.4s, v0.2d
+ uqxtn2 v0.4s, v31.2d
+
+ fcvtxn v0.2s, v0.2d
+ fcvtxn v31.2s, v0.2d
+ fcvtxn v0.2s, v31.2d
+ fcvtxn2 v0.4s, v0.2d
+ fcvtxn2 v31.4s, v0.2d
+ fcvtxn2 v0.4s, v31.2d
diff --git a/gas/testsuite/gas/aarch64/advsimd-two-reg-misc.d b/gas/testsuite/gas/aarch64/advsimd-two-reg-misc.d
new file mode 100644
index 0000000..cf9d93c
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-two-reg-misc.d
@@ -0,0 +1,408 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 0e200800 rev64 v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20081f rev64 v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e200be0 rev64 v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e600800 rev64 v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60081f rev64 v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e600be0 rev64 v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea00800 rev64 v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0081f rev64 v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ea00be0 rev64 v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e200800 rev64 v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20081f rev64 v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e200be0 rev64 v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e600800 rev64 v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60081f rev64 v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e600be0 rev64 v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea00800 rev64 v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0081f rev64 v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ea00be0 rev64 v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e201800 rev16 v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20181f rev16 v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e201be0 rev16 v0\.8b, v31\.8b
+ *[0-9a-f]+: 4e201800 rev16 v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20181f rev16 v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e201be0 rev16 v0\.16b, v31\.16b
+ *[0-9a-f]+: 0e202800 saddlp v0\.4h, v0\.8b
+ *[0-9a-f]+: 0e20281f saddlp v31\.4h, v0\.8b
+ *[0-9a-f]+: 0e202be0 saddlp v0\.4h, v31\.8b
+ *[0-9a-f]+: 0e602800 saddlp v0\.2s, v0\.4h
+ *[0-9a-f]+: 0e60281f saddlp v31\.2s, v0\.4h
+ *[0-9a-f]+: 0e602be0 saddlp v0\.2s, v31\.4h
+ *[0-9a-f]+: 0ea02800 saddlp v0\.1d, v0\.2s
+ *[0-9a-f]+: 0ea0281f saddlp v31\.1d, v0\.2s
+ *[0-9a-f]+: 0ea02be0 saddlp v0\.1d, v31\.2s
+ *[0-9a-f]+: 4e202800 saddlp v0\.8h, v0\.16b
+ *[0-9a-f]+: 4e20281f saddlp v31\.8h, v0\.16b
+ *[0-9a-f]+: 4e202be0 saddlp v0\.8h, v31\.16b
+ *[0-9a-f]+: 4e602800 saddlp v0\.4s, v0\.8h
+ *[0-9a-f]+: 4e60281f saddlp v31\.4s, v0\.8h
+ *[0-9a-f]+: 4e602be0 saddlp v0\.4s, v31\.8h
+ *[0-9a-f]+: 4ea02800 saddlp v0\.2d, v0\.4s
+ *[0-9a-f]+: 4ea0281f saddlp v31\.2d, v0\.4s
+ *[0-9a-f]+: 4ea02be0 saddlp v0\.2d, v31\.4s
+ *[0-9a-f]+: 0e203800 suqadd v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20381f suqadd v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e203be0 suqadd v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e603800 suqadd v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60381f suqadd v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e603be0 suqadd v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea03800 suqadd v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0381f suqadd v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ea03be0 suqadd v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e203800 suqadd v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20381f suqadd v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e203be0 suqadd v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e603800 suqadd v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60381f suqadd v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e603be0 suqadd v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea03800 suqadd v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0381f suqadd v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ea03be0 suqadd v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ee03800 suqadd v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee0381f suqadd v31\.2d, v0\.2d
+ *[0-9a-f]+: 4ee03be0 suqadd v0\.2d, v31\.2d
+ *[0-9a-f]+: 0e204800 cls v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20481f cls v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e204be0 cls v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e604800 cls v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60481f cls v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e604be0 cls v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea04800 cls v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0481f cls v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ea04be0 cls v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e204800 cls v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20481f cls v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e204be0 cls v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e604800 cls v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60481f cls v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e604be0 cls v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea04800 cls v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0481f cls v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ea04be0 cls v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e205800 cnt v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20581f cnt v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e205be0 cnt v0\.8b, v31\.8b
+ *[0-9a-f]+: 4e205800 cnt v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20581f cnt v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e205be0 cnt v0\.16b, v31\.16b
+ *[0-9a-f]+: 0e206800 sadalp v0\.4h, v0\.8b
+ *[0-9a-f]+: 0e20681f sadalp v31\.4h, v0\.8b
+ *[0-9a-f]+: 0e206be0 sadalp v0\.4h, v31\.8b
+ *[0-9a-f]+: 0e606800 sadalp v0\.2s, v0\.4h
+ *[0-9a-f]+: 0e60681f sadalp v31\.2s, v0\.4h
+ *[0-9a-f]+: 0e606be0 sadalp v0\.2s, v31\.4h
+ *[0-9a-f]+: 0ea06800 sadalp v0\.1d, v0\.2s
+ *[0-9a-f]+: 0ea0681f sadalp v31\.1d, v0\.2s
+ *[0-9a-f]+: 0ea06be0 sadalp v0\.1d, v31\.2s
+ *[0-9a-f]+: 4e206800 sadalp v0\.8h, v0\.16b
+ *[0-9a-f]+: 4e20681f sadalp v31\.8h, v0\.16b
+ *[0-9a-f]+: 4e206be0 sadalp v0\.8h, v31\.16b
+ *[0-9a-f]+: 4e606800 sadalp v0\.4s, v0\.8h
+ *[0-9a-f]+: 4e60681f sadalp v31\.4s, v0\.8h
+ *[0-9a-f]+: 4e606be0 sadalp v0\.4s, v31\.8h
+ *[0-9a-f]+: 4ea06800 sadalp v0\.2d, v0\.4s
+ *[0-9a-f]+: 4ea0681f sadalp v31\.2d, v0\.4s
+ *[0-9a-f]+: 4ea06be0 sadalp v0\.2d, v31\.4s
+ *[0-9a-f]+: 0e207800 sqabs v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20781f sqabs v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e207be0 sqabs v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e607800 sqabs v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60781f sqabs v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e607be0 sqabs v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea07800 sqabs v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0781f sqabs v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ea07be0 sqabs v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e207800 sqabs v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20781f sqabs v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e207be0 sqabs v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e607800 sqabs v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60781f sqabs v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e607be0 sqabs v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea07800 sqabs v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0781f sqabs v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ea07be0 sqabs v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ee07800 sqabs v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee0781f sqabs v31\.2d, v0\.2d
+ *[0-9a-f]+: 4ee07be0 sqabs v0\.2d, v31\.2d
+ *[0-9a-f]+: 0e208800 cmgt v0\.8b, v0\.8b, #0
+ *[0-9a-f]+: 0e20881f cmgt v31\.8b, v0\.8b, #0
+ *[0-9a-f]+: 0e208be0 cmgt v0\.8b, v31\.8b, #0
+ *[0-9a-f]+: 0e608800 cmgt v0\.4h, v0\.4h, #0
+ *[0-9a-f]+: 0e60881f cmgt v31\.4h, v0\.4h, #0
+ *[0-9a-f]+: 0e608be0 cmgt v0\.4h, v31\.4h, #0
+ *[0-9a-f]+: 0ea08800 cmgt v0\.2s, v0\.2s, #0
+ *[0-9a-f]+: 0ea0881f cmgt v31\.2s, v0\.2s, #0
+ *[0-9a-f]+: 0ea08be0 cmgt v0\.2s, v31\.2s, #0
+ *[0-9a-f]+: 4e208800 cmgt v0\.16b, v0\.16b, #0
+ *[0-9a-f]+: 4e20881f cmgt v31\.16b, v0\.16b, #0
+ *[0-9a-f]+: 4e208be0 cmgt v0\.16b, v31\.16b, #0
+ *[0-9a-f]+: 4e608800 cmgt v0\.8h, v0\.8h, #0
+ *[0-9a-f]+: 4e60881f cmgt v31\.8h, v0\.8h, #0
+ *[0-9a-f]+: 4e608be0 cmgt v0\.8h, v31\.8h, #0
+ *[0-9a-f]+: 4ea08800 cmgt v0\.4s, v0\.4s, #0
+ *[0-9a-f]+: 4ea0881f cmgt v31\.4s, v0\.4s, #0
+ *[0-9a-f]+: 4ea08be0 cmgt v0\.4s, v31\.4s, #0
+ *[0-9a-f]+: 4ee08800 cmgt v0\.2d, v0\.2d, #0
+ *[0-9a-f]+: 4ee0881f cmgt v31\.2d, v0\.2d, #0
+ *[0-9a-f]+: 4ee08be0 cmgt v0\.2d, v31\.2d, #0
+ *[0-9a-f]+: 0e209800 cmeq v0\.8b, v0\.8b, #0
+ *[0-9a-f]+: 0e20981f cmeq v31\.8b, v0\.8b, #0
+ *[0-9a-f]+: 0e209be0 cmeq v0\.8b, v31\.8b, #0
+ *[0-9a-f]+: 0e609800 cmeq v0\.4h, v0\.4h, #0
+ *[0-9a-f]+: 0e60981f cmeq v31\.4h, v0\.4h, #0
+ *[0-9a-f]+: 0e609be0 cmeq v0\.4h, v31\.4h, #0
+ *[0-9a-f]+: 0ea09800 cmeq v0\.2s, v0\.2s, #0
+ *[0-9a-f]+: 0ea0981f cmeq v31\.2s, v0\.2s, #0
+ *[0-9a-f]+: 0ea09be0 cmeq v0\.2s, v31\.2s, #0
+ *[0-9a-f]+: 4e209800 cmeq v0\.16b, v0\.16b, #0
+ *[0-9a-f]+: 4e20981f cmeq v31\.16b, v0\.16b, #0
+ *[0-9a-f]+: 4e209be0 cmeq v0\.16b, v31\.16b, #0
+ *[0-9a-f]+: 4e609800 cmeq v0\.8h, v0\.8h, #0
+ *[0-9a-f]+: 4e60981f cmeq v31\.8h, v0\.8h, #0
+ *[0-9a-f]+: 4e609be0 cmeq v0\.8h, v31\.8h, #0
+ *[0-9a-f]+: 4ea09800 cmeq v0\.4s, v0\.4s, #0
+ *[0-9a-f]+: 4ea0981f cmeq v31\.4s, v0\.4s, #0
+ *[0-9a-f]+: 4ea09be0 cmeq v0\.4s, v31\.4s, #0
+ *[0-9a-f]+: 4ee09800 cmeq v0\.2d, v0\.2d, #0
+ *[0-9a-f]+: 4ee0981f cmeq v31\.2d, v0\.2d, #0
+ *[0-9a-f]+: 4ee09be0 cmeq v0\.2d, v31\.2d, #0
+ *[0-9a-f]+: 0e20a800 cmlt v0\.8b, v0\.8b, #0
+ *[0-9a-f]+: 0e20a81f cmlt v31\.8b, v0\.8b, #0
+ *[0-9a-f]+: 0e20abe0 cmlt v0\.8b, v31\.8b, #0
+ *[0-9a-f]+: 0e60a800 cmlt v0\.4h, v0\.4h, #0
+ *[0-9a-f]+: 0e60a81f cmlt v31\.4h, v0\.4h, #0
+ *[0-9a-f]+: 0e60abe0 cmlt v0\.4h, v31\.4h, #0
+ *[0-9a-f]+: 0ea0a800 cmlt v0\.2s, v0\.2s, #0
+ *[0-9a-f]+: 0ea0a81f cmlt v31\.2s, v0\.2s, #0
+ *[0-9a-f]+: 0ea0abe0 cmlt v0\.2s, v31\.2s, #0
+ *[0-9a-f]+: 4e20a800 cmlt v0\.16b, v0\.16b, #0
+ *[0-9a-f]+: 4e20a81f cmlt v31\.16b, v0\.16b, #0
+ *[0-9a-f]+: 4e20abe0 cmlt v0\.16b, v31\.16b, #0
+ *[0-9a-f]+: 4e60a800 cmlt v0\.8h, v0\.8h, #0
+ *[0-9a-f]+: 4e60a81f cmlt v31\.8h, v0\.8h, #0
+ *[0-9a-f]+: 4e60abe0 cmlt v0\.8h, v31\.8h, #0
+ *[0-9a-f]+: 4ea0a800 cmlt v0\.4s, v0\.4s, #0
+ *[0-9a-f]+: 4ea0a81f cmlt v31\.4s, v0\.4s, #0
+ *[0-9a-f]+: 4ea0abe0 cmlt v0\.4s, v31\.4s, #0
+ *[0-9a-f]+: 4ee0a800 cmlt v0\.2d, v0\.2d, #0
+ *[0-9a-f]+: 4ee0a81f cmlt v31\.2d, v0\.2d, #0
+ *[0-9a-f]+: 4ee0abe0 cmlt v0\.2d, v31\.2d, #0
+ *[0-9a-f]+: 0e20b800 abs v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20b81f abs v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e20bbe0 abs v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e60b800 abs v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60b81f abs v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e60bbe0 abs v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea0b800 abs v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0b81f abs v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0bbe0 abs v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e20b800 abs v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20b81f abs v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e20bbe0 abs v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e60b800 abs v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60b81f abs v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e60bbe0 abs v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea0b800 abs v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0b81f abs v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0bbe0 abs v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ee0b800 abs v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ee0b81f abs v31\.2d, v0\.2d
+ *[0-9a-f]+: 4ee0bbe0 abs v0\.2d, v31\.2d
+ *[0-9a-f]+: 2e200800 rev32 v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20081f rev32 v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e200be0 rev32 v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e600800 rev32 v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60081f rev32 v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e600be0 rev32 v0\.4h, v31\.4h
+ *[0-9a-f]+: 6e200800 rev32 v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20081f rev32 v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e200be0 rev32 v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e600800 rev32 v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60081f rev32 v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e600be0 rev32 v0\.8h, v31\.8h
+ *[0-9a-f]+: 2e202800 uaddlp v0\.4h, v0\.8b
+ *[0-9a-f]+: 2e20281f uaddlp v31\.4h, v0\.8b
+ *[0-9a-f]+: 2e202be0 uaddlp v0\.4h, v31\.8b
+ *[0-9a-f]+: 2e602800 uaddlp v0\.2s, v0\.4h
+ *[0-9a-f]+: 2e60281f uaddlp v31\.2s, v0\.4h
+ *[0-9a-f]+: 2e602be0 uaddlp v0\.2s, v31\.4h
+ *[0-9a-f]+: 2ea02800 uaddlp v0\.1d, v0\.2s
+ *[0-9a-f]+: 2ea0281f uaddlp v31\.1d, v0\.2s
+ *[0-9a-f]+: 2ea02be0 uaddlp v0\.1d, v31\.2s
+ *[0-9a-f]+: 6e202800 uaddlp v0\.8h, v0\.16b
+ *[0-9a-f]+: 6e20281f uaddlp v31\.8h, v0\.16b
+ *[0-9a-f]+: 6e202be0 uaddlp v0\.8h, v31\.16b
+ *[0-9a-f]+: 6e602800 uaddlp v0\.4s, v0\.8h
+ *[0-9a-f]+: 6e60281f uaddlp v31\.4s, v0\.8h
+ *[0-9a-f]+: 6e602be0 uaddlp v0\.4s, v31\.8h
+ *[0-9a-f]+: 6ea02800 uaddlp v0\.2d, v0\.4s
+ *[0-9a-f]+: 6ea0281f uaddlp v31\.2d, v0\.4s
+ *[0-9a-f]+: 6ea02be0 uaddlp v0\.2d, v31\.4s
+ *[0-9a-f]+: 2e203800 usqadd v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20381f usqadd v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e203be0 usqadd v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e603800 usqadd v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60381f usqadd v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e603be0 usqadd v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea03800 usqadd v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0381f usqadd v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ea03be0 usqadd v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e203800 usqadd v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20381f usqadd v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e203be0 usqadd v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e603800 usqadd v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60381f usqadd v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e603be0 usqadd v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea03800 usqadd v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0381f usqadd v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ea03be0 usqadd v0\.4s, v31\.4s
+ *[0-9a-f]+: 6ee03800 usqadd v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee0381f usqadd v31\.2d, v0\.2d
+ *[0-9a-f]+: 6ee03be0 usqadd v0\.2d, v31\.2d
+ *[0-9a-f]+: 2e204800 clz v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20481f clz v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e204be0 clz v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e604800 clz v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60481f clz v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e604be0 clz v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea04800 clz v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0481f clz v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ea04be0 clz v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e204800 clz v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20481f clz v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e204be0 clz v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e604800 clz v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60481f clz v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e604be0 clz v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea04800 clz v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0481f clz v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ea04be0 clz v0\.4s, v31\.4s
+ *[0-9a-f]+: 2e205800 mvn v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20581f mvn v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e205be0 mvn v0\.8b, v31\.8b
+ *[0-9a-f]+: 6e205800 mvn v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20581f mvn v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e205be0 mvn v0\.16b, v31\.16b
+ *[0-9a-f]+: 2e205800 mvn v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20581f mvn v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e205be0 mvn v0\.8b, v31\.8b
+ *[0-9a-f]+: 6e205800 mvn v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20581f mvn v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e205be0 mvn v0\.16b, v31\.16b
+ *[0-9a-f]+: 2e605800 rbit v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e60581f rbit v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e605be0 rbit v0\.8b, v31\.8b
+ *[0-9a-f]+: 6e605800 rbit v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e60581f rbit v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e605be0 rbit v0\.16b, v31\.16b
+ *[0-9a-f]+: 2e206800 uadalp v0\.4h, v0\.8b
+ *[0-9a-f]+: 2e20681f uadalp v31\.4h, v0\.8b
+ *[0-9a-f]+: 2e206be0 uadalp v0\.4h, v31\.8b
+ *[0-9a-f]+: 2e606800 uadalp v0\.2s, v0\.4h
+ *[0-9a-f]+: 2e60681f uadalp v31\.2s, v0\.4h
+ *[0-9a-f]+: 2e606be0 uadalp v0\.2s, v31\.4h
+ *[0-9a-f]+: 2ea06800 uadalp v0\.1d, v0\.2s
+ *[0-9a-f]+: 2ea0681f uadalp v31\.1d, v0\.2s
+ *[0-9a-f]+: 2ea06be0 uadalp v0\.1d, v31\.2s
+ *[0-9a-f]+: 6e206800 uadalp v0\.8h, v0\.16b
+ *[0-9a-f]+: 6e20681f uadalp v31\.8h, v0\.16b
+ *[0-9a-f]+: 6e206be0 uadalp v0\.8h, v31\.16b
+ *[0-9a-f]+: 6e606800 uadalp v0\.4s, v0\.8h
+ *[0-9a-f]+: 6e60681f uadalp v31\.4s, v0\.8h
+ *[0-9a-f]+: 6e606be0 uadalp v0\.4s, v31\.8h
+ *[0-9a-f]+: 6ea06800 uadalp v0\.2d, v0\.4s
+ *[0-9a-f]+: 6ea0681f uadalp v31\.2d, v0\.4s
+ *[0-9a-f]+: 6ea06be0 uadalp v0\.2d, v31\.4s
+ *[0-9a-f]+: 2e207800 sqneg v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20781f sqneg v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e207be0 sqneg v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e607800 sqneg v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60781f sqneg v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e607be0 sqneg v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea07800 sqneg v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0781f sqneg v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ea07be0 sqneg v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e207800 sqneg v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20781f sqneg v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e207be0 sqneg v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e607800 sqneg v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60781f sqneg v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e607be0 sqneg v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea07800 sqneg v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0781f sqneg v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ea07be0 sqneg v0\.4s, v31\.4s
+ *[0-9a-f]+: 6ee07800 sqneg v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee0781f sqneg v31\.2d, v0\.2d
+ *[0-9a-f]+: 6ee07be0 sqneg v0\.2d, v31\.2d
+ *[0-9a-f]+: 2e208800 cmge v0\.8b, v0\.8b, #0
+ *[0-9a-f]+: 2e20881f cmge v31\.8b, v0\.8b, #0
+ *[0-9a-f]+: 2e208be0 cmge v0\.8b, v31\.8b, #0
+ *[0-9a-f]+: 2e608800 cmge v0\.4h, v0\.4h, #0
+ *[0-9a-f]+: 2e60881f cmge v31\.4h, v0\.4h, #0
+ *[0-9a-f]+: 2e608be0 cmge v0\.4h, v31\.4h, #0
+ *[0-9a-f]+: 2ea08800 cmge v0\.2s, v0\.2s, #0
+ *[0-9a-f]+: 2ea0881f cmge v31\.2s, v0\.2s, #0
+ *[0-9a-f]+: 2ea08be0 cmge v0\.2s, v31\.2s, #0
+ *[0-9a-f]+: 6e208800 cmge v0\.16b, v0\.16b, #0
+ *[0-9a-f]+: 6e20881f cmge v31\.16b, v0\.16b, #0
+ *[0-9a-f]+: 6e208be0 cmge v0\.16b, v31\.16b, #0
+ *[0-9a-f]+: 6e608800 cmge v0\.8h, v0\.8h, #0
+ *[0-9a-f]+: 6e60881f cmge v31\.8h, v0\.8h, #0
+ *[0-9a-f]+: 6e608be0 cmge v0\.8h, v31\.8h, #0
+ *[0-9a-f]+: 6ea08800 cmge v0\.4s, v0\.4s, #0
+ *[0-9a-f]+: 6ea0881f cmge v31\.4s, v0\.4s, #0
+ *[0-9a-f]+: 6ea08be0 cmge v0\.4s, v31\.4s, #0
+ *[0-9a-f]+: 6ee08800 cmge v0\.2d, v0\.2d, #0
+ *[0-9a-f]+: 6ee0881f cmge v31\.2d, v0\.2d, #0
+ *[0-9a-f]+: 6ee08be0 cmge v0\.2d, v31\.2d, #0
+ *[0-9a-f]+: 2e209800 cmle v0\.8b, v0\.8b, #0
+ *[0-9a-f]+: 2e20981f cmle v31\.8b, v0\.8b, #0
+ *[0-9a-f]+: 2e209be0 cmle v0\.8b, v31\.8b, #0
+ *[0-9a-f]+: 2e609800 cmle v0\.4h, v0\.4h, #0
+ *[0-9a-f]+: 2e60981f cmle v31\.4h, v0\.4h, #0
+ *[0-9a-f]+: 2e609be0 cmle v0\.4h, v31\.4h, #0
+ *[0-9a-f]+: 2ea09800 cmle v0\.2s, v0\.2s, #0
+ *[0-9a-f]+: 2ea0981f cmle v31\.2s, v0\.2s, #0
+ *[0-9a-f]+: 2ea09be0 cmle v0\.2s, v31\.2s, #0
+ *[0-9a-f]+: 6e209800 cmle v0\.16b, v0\.16b, #0
+ *[0-9a-f]+: 6e20981f cmle v31\.16b, v0\.16b, #0
+ *[0-9a-f]+: 6e209be0 cmle v0\.16b, v31\.16b, #0
+ *[0-9a-f]+: 6e609800 cmle v0\.8h, v0\.8h, #0
+ *[0-9a-f]+: 6e60981f cmle v31\.8h, v0\.8h, #0
+ *[0-9a-f]+: 6e609be0 cmle v0\.8h, v31\.8h, #0
+ *[0-9a-f]+: 6ea09800 cmle v0\.4s, v0\.4s, #0
+ *[0-9a-f]+: 6ea0981f cmle v31\.4s, v0\.4s, #0
+ *[0-9a-f]+: 6ea09be0 cmle v0\.4s, v31\.4s, #0
+ *[0-9a-f]+: 6ee09800 cmle v0\.2d, v0\.2d, #0
+ *[0-9a-f]+: 6ee0981f cmle v31\.2d, v0\.2d, #0
+ *[0-9a-f]+: 6ee09be0 cmle v0\.2d, v31\.2d, #0
+ *[0-9a-f]+: 2e20b800 neg v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20b81f neg v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e20bbe0 neg v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e60b800 neg v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60b81f neg v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e60bbe0 neg v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea0b800 neg v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0b81f neg v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0bbe0 neg v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e20b800 neg v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20b81f neg v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e20bbe0 neg v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e60b800 neg v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60b81f neg v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e60bbe0 neg v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea0b800 neg v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0b81f neg v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0bbe0 neg v0\.4s, v31\.4s
+ *[0-9a-f]+: 6ee0b800 neg v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ee0b81f neg v31\.2d, v0\.2d
+ *[0-9a-f]+: 6ee0bbe0 neg v0\.2d, v31\.2d
diff --git a/gas/testsuite/gas/aarch64/advsimd-two-reg-misc.s b/gas/testsuite/gas/aarch64/advsimd-two-reg-misc.s
new file mode 100644
index 0000000..6a66ff7
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-two-reg-misc.s
@@ -0,0 +1,422 @@
+ rev64 v0.8b, v0.8b
+ rev64 v31.8b, v0.8b
+ rev64 v0.8b, v31.8b
+ rev64 v0.4h, v0.4h
+ rev64 v31.4h, v0.4h
+ rev64 v0.4h, v31.4h
+ rev64 v0.2s, v0.2s
+ rev64 v31.2s, v0.2s
+ rev64 v0.2s, v31.2s
+ rev64 v0.16b, v0.16b
+ rev64 v31.16b, v0.16b
+ rev64 v0.16b, v31.16b
+ rev64 v0.8h, v0.8h
+ rev64 v31.8h, v0.8h
+ rev64 v0.8h, v31.8h
+ rev64 v0.4s, v0.4s
+ rev64 v31.4s, v0.4s
+ rev64 v0.4s, v31.4s
+
+ rev16 v0.8b, v0.8b
+ rev16 v31.8b, v0.8b
+ rev16 v0.8b, v31.8b
+ rev16 v0.16b, v0.16b
+ rev16 v31.16b, v0.16b
+ rev16 v0.16b, v31.16b
+
+ saddlp v0.4h, v0.8b
+ saddlp v31.4h, v0.8b
+ saddlp v0.4h, v31.8b
+ saddlp v0.2s, v0.4h
+ saddlp v31.2s, v0.4h
+ saddlp v0.2s, v31.4h
+ saddlp v0.1d, v0.2s
+ saddlp v31.1d, v0.2s
+ saddlp v0.1d, v31.2s
+ saddlp v0.8h, v0.16b
+ saddlp v31.8h, v0.16b
+ saddlp v0.8h, v31.16b
+ saddlp v0.4s, v0.8h
+ saddlp v31.4s, v0.8h
+ saddlp v0.4s, v31.8h
+ saddlp v0.2d, v0.4s
+ saddlp v31.2d, v0.4s
+ saddlp v0.2d, v31.4s
+
+ suqadd v0.8b, v0.8b
+ suqadd v31.8b, v0.8b
+ suqadd v0.8b, v31.8b
+ suqadd v0.4h, v0.4h
+ suqadd v31.4h, v0.4h
+ suqadd v0.4h, v31.4h
+ suqadd v0.2s, v0.2s
+ suqadd v31.2s, v0.2s
+ suqadd v0.2s, v31.2s
+ suqadd v0.16b, v0.16b
+ suqadd v31.16b, v0.16b
+ suqadd v0.16b, v31.16b
+ suqadd v0.8h, v0.8h
+ suqadd v31.8h, v0.8h
+ suqadd v0.8h, v31.8h
+ suqadd v0.4s, v0.4s
+ suqadd v31.4s, v0.4s
+ suqadd v0.4s, v31.4s
+ suqadd v0.2d, v0.2d
+ suqadd v31.2d, v0.2d
+ suqadd v0.2d, v31.2d
+
+ cls v0.8b, v0.8b
+ cls v31.8b, v0.8b
+ cls v0.8b, v31.8b
+ cls v0.4h, v0.4h
+ cls v31.4h, v0.4h
+ cls v0.4h, v31.4h
+ cls v0.2s, v0.2s
+ cls v31.2s, v0.2s
+ cls v0.2s, v31.2s
+ cls v0.16b, v0.16b
+ cls v31.16b, v0.16b
+ cls v0.16b, v31.16b
+ cls v0.8h, v0.8h
+ cls v31.8h, v0.8h
+ cls v0.8h, v31.8h
+ cls v0.4s, v0.4s
+ cls v31.4s, v0.4s
+ cls v0.4s, v31.4s
+
+ cnt v0.8b, v0.8b
+ cnt v31.8b, v0.8b
+ cnt v0.8b, v31.8b
+ cnt v0.16b, v0.16b
+ cnt v31.16b, v0.16b
+ cnt v0.16b, v31.16b
+
+ sadalp v0.4h, v0.8b
+ sadalp v31.4h, v0.8b
+ sadalp v0.4h, v31.8b
+ sadalp v0.2s, v0.4h
+ sadalp v31.2s, v0.4h
+ sadalp v0.2s, v31.4h
+ sadalp v0.1d, v0.2s
+ sadalp v31.1d, v0.2s
+ sadalp v0.1d, v31.2s
+ sadalp v0.8h, v0.16b
+ sadalp v31.8h, v0.16b
+ sadalp v0.8h, v31.16b
+ sadalp v0.4s, v0.8h
+ sadalp v31.4s, v0.8h
+ sadalp v0.4s, v31.8h
+ sadalp v0.2d, v0.4s
+ sadalp v31.2d, v0.4s
+ sadalp v0.2d, v31.4s
+
+ sqabs v0.8b, v0.8b
+ sqabs v31.8b, v0.8b
+ sqabs v0.8b, v31.8b
+ sqabs v0.4h, v0.4h
+ sqabs v31.4h, v0.4h
+ sqabs v0.4h, v31.4h
+ sqabs v0.2s, v0.2s
+ sqabs v31.2s, v0.2s
+ sqabs v0.2s, v31.2s
+ sqabs v0.16b, v0.16b
+ sqabs v31.16b, v0.16b
+ sqabs v0.16b, v31.16b
+ sqabs v0.8h, v0.8h
+ sqabs v31.8h, v0.8h
+ sqabs v0.8h, v31.8h
+ sqabs v0.4s, v0.4s
+ sqabs v31.4s, v0.4s
+ sqabs v0.4s, v31.4s
+ sqabs v0.2d, v0.2d
+ sqabs v31.2d, v0.2d
+ sqabs v0.2d, v31.2d
+
+ cmgt v0.8b, v0.8b, #0
+ cmgt v31.8b, v0.8b, #0
+ cmgt v0.8b, v31.8b, #0
+ cmgt v0.4h, v0.4h, #0
+ cmgt v31.4h, v0.4h, #0
+ cmgt v0.4h, v31.4h, #0
+ cmgt v0.2s, v0.2s, #0
+ cmgt v31.2s, v0.2s, #0
+ cmgt v0.2s, v31.2s, #0
+ cmgt v0.16b, v0.16b, #0
+ cmgt v31.16b, v0.16b, #0
+ cmgt v0.16b, v31.16b, #0
+ cmgt v0.8h, v0.8h, #0
+ cmgt v31.8h, v0.8h, #0
+ cmgt v0.8h, v31.8h, #0
+ cmgt v0.4s, v0.4s, #0
+ cmgt v31.4s, v0.4s, #0
+ cmgt v0.4s, v31.4s, #0
+ cmgt v0.2d, v0.2d, #0
+ cmgt v31.2d, v0.2d, #0
+ cmgt v0.2d, v31.2d, #0
+
+ cmeq v0.8b, v0.8b, #0
+ cmeq v31.8b, v0.8b, #0
+ cmeq v0.8b, v31.8b, #0
+ cmeq v0.4h, v0.4h, #0
+ cmeq v31.4h, v0.4h, #0
+ cmeq v0.4h, v31.4h, #0
+ cmeq v0.2s, v0.2s, #0
+ cmeq v31.2s, v0.2s, #0
+ cmeq v0.2s, v31.2s, #0
+ cmeq v0.16b, v0.16b, #0
+ cmeq v31.16b, v0.16b, #0
+ cmeq v0.16b, v31.16b, #0
+ cmeq v0.8h, v0.8h, #0
+ cmeq v31.8h, v0.8h, #0
+ cmeq v0.8h, v31.8h, #0
+ cmeq v0.4s, v0.4s, #0
+ cmeq v31.4s, v0.4s, #0
+ cmeq v0.4s, v31.4s, #0
+ cmeq v0.2d, v0.2d, #0
+ cmeq v31.2d, v0.2d, #0
+ cmeq v0.2d, v31.2d, #0
+
+ cmlt v0.8b, v0.8b, #0
+ cmlt v31.8b, v0.8b, #0
+ cmlt v0.8b, v31.8b, #0
+ cmlt v0.4h, v0.4h, #0
+ cmlt v31.4h, v0.4h, #0
+ cmlt v0.4h, v31.4h, #0
+ cmlt v0.2s, v0.2s, #0
+ cmlt v31.2s, v0.2s, #0
+ cmlt v0.2s, v31.2s, #0
+ cmlt v0.16b, v0.16b, #0
+ cmlt v31.16b, v0.16b, #0
+ cmlt v0.16b, v31.16b, #0
+ cmlt v0.8h, v0.8h, #0
+ cmlt v31.8h, v0.8h, #0
+ cmlt v0.8h, v31.8h, #0
+ cmlt v0.4s, v0.4s, #0
+ cmlt v31.4s, v0.4s, #0
+ cmlt v0.4s, v31.4s, #0
+ cmlt v0.2d, v0.2d, #0
+ cmlt v31.2d, v0.2d, #0
+ cmlt v0.2d, v31.2d, #0
+
+ abs v0.8b, v0.8b
+ abs v31.8b, v0.8b
+ abs v0.8b, v31.8b
+ abs v0.4h, v0.4h
+ abs v31.4h, v0.4h
+ abs v0.4h, v31.4h
+ abs v0.2s, v0.2s
+ abs v31.2s, v0.2s
+ abs v0.2s, v31.2s
+ abs v0.16b, v0.16b
+ abs v31.16b, v0.16b
+ abs v0.16b, v31.16b
+ abs v0.8h, v0.8h
+ abs v31.8h, v0.8h
+ abs v0.8h, v31.8h
+ abs v0.4s, v0.4s
+ abs v31.4s, v0.4s
+ abs v0.4s, v31.4s
+ abs v0.2d, v0.2d
+ abs v31.2d, v0.2d
+ abs v0.2d, v31.2d
+
+ rev32 v0.8b, v0.8b
+ rev32 v31.8b, v0.8b
+ rev32 v0.8b, v31.8b
+ rev32 v0.4h, v0.4h
+ rev32 v31.4h, v0.4h
+ rev32 v0.4h, v31.4h
+ rev32 v0.16b, v0.16b
+ rev32 v31.16b, v0.16b
+ rev32 v0.16b, v31.16b
+ rev32 v0.8h, v0.8h
+ rev32 v31.8h, v0.8h
+ rev32 v0.8h, v31.8h
+
+ uaddlp v0.4h, v0.8b
+ uaddlp v31.4h, v0.8b
+ uaddlp v0.4h, v31.8b
+ uaddlp v0.2s, v0.4h
+ uaddlp v31.2s, v0.4h
+ uaddlp v0.2s, v31.4h
+ uaddlp v0.1d, v0.2s
+ uaddlp v31.1d, v0.2s
+ uaddlp v0.1d, v31.2s
+ uaddlp v0.8h, v0.16b
+ uaddlp v31.8h, v0.16b
+ uaddlp v0.8h, v31.16b
+ uaddlp v0.4s, v0.8h
+ uaddlp v31.4s, v0.8h
+ uaddlp v0.4s, v31.8h
+ uaddlp v0.2d, v0.4s
+ uaddlp v31.2d, v0.4s
+ uaddlp v0.2d, v31.4s
+
+ usqadd v0.8b, v0.8b
+ usqadd v31.8b, v0.8b
+ usqadd v0.8b, v31.8b
+ usqadd v0.4h, v0.4h
+ usqadd v31.4h, v0.4h
+ usqadd v0.4h, v31.4h
+ usqadd v0.2s, v0.2s
+ usqadd v31.2s, v0.2s
+ usqadd v0.2s, v31.2s
+ usqadd v0.16b, v0.16b
+ usqadd v31.16b, v0.16b
+ usqadd v0.16b, v31.16b
+ usqadd v0.8h, v0.8h
+ usqadd v31.8h, v0.8h
+ usqadd v0.8h, v31.8h
+ usqadd v0.4s, v0.4s
+ usqadd v31.4s, v0.4s
+ usqadd v0.4s, v31.4s
+ usqadd v0.2d, v0.2d
+ usqadd v31.2d, v0.2d
+ usqadd v0.2d, v31.2d
+
+ clz v0.8b, v0.8b
+ clz v31.8b, v0.8b
+ clz v0.8b, v31.8b
+ clz v0.4h, v0.4h
+ clz v31.4h, v0.4h
+ clz v0.4h, v31.4h
+ clz v0.2s, v0.2s
+ clz v31.2s, v0.2s
+ clz v0.2s, v31.2s
+ clz v0.16b, v0.16b
+ clz v31.16b, v0.16b
+ clz v0.16b, v31.16b
+ clz v0.8h, v0.8h
+ clz v31.8h, v0.8h
+ clz v0.8h, v31.8h
+ clz v0.4s, v0.4s
+ clz v31.4s, v0.4s
+ clz v0.4s, v31.4s
+
+ not v0.8b, v0.8b
+ not v31.8b, v0.8b
+ not v0.8b, v31.8b
+ not v0.16b, v0.16b
+ not v31.16b, v0.16b
+ not v0.16b, v31.16b
+
+ mvn v0.8b, v0.8b
+ mvn v31.8b, v0.8b
+ mvn v0.8b, v31.8b
+ mvn v0.16b, v0.16b
+ mvn v31.16b, v0.16b
+ mvn v0.16b, v31.16b
+
+ rbit v0.8b, v0.8b
+ rbit v31.8b, v0.8b
+ rbit v0.8b, v31.8b
+ rbit v0.16b, v0.16b
+ rbit v31.16b, v0.16b
+ rbit v0.16b, v31.16b
+
+ uadalp v0.4h, v0.8b
+ uadalp v31.4h, v0.8b
+ uadalp v0.4h, v31.8b
+ uadalp v0.2s, v0.4h
+ uadalp v31.2s, v0.4h
+ uadalp v0.2s, v31.4h
+ uadalp v0.1d, v0.2s
+ uadalp v31.1d, v0.2s
+ uadalp v0.1d, v31.2s
+ uadalp v0.8h, v0.16b
+ uadalp v31.8h, v0.16b
+ uadalp v0.8h, v31.16b
+ uadalp v0.4s, v0.8h
+ uadalp v31.4s, v0.8h
+ uadalp v0.4s, v31.8h
+ uadalp v0.2d, v0.4s
+ uadalp v31.2d, v0.4s
+ uadalp v0.2d, v31.4s
+
+ sqneg v0.8b, v0.8b
+ sqneg v31.8b, v0.8b
+ sqneg v0.8b, v31.8b
+ sqneg v0.4h, v0.4h
+ sqneg v31.4h, v0.4h
+ sqneg v0.4h, v31.4h
+ sqneg v0.2s, v0.2s
+ sqneg v31.2s, v0.2s
+ sqneg v0.2s, v31.2s
+ sqneg v0.16b, v0.16b
+ sqneg v31.16b, v0.16b
+ sqneg v0.16b, v31.16b
+ sqneg v0.8h, v0.8h
+ sqneg v31.8h, v0.8h
+ sqneg v0.8h, v31.8h
+ sqneg v0.4s, v0.4s
+ sqneg v31.4s, v0.4s
+ sqneg v0.4s, v31.4s
+ sqneg v0.2d, v0.2d
+ sqneg v31.2d, v0.2d
+ sqneg v0.2d, v31.2d
+
+ cmge v0.8b, v0.8b, #0
+ cmge v31.8b, v0.8b, #0
+ cmge v0.8b, v31.8b, #0
+ cmge v0.4h, v0.4h, #0
+ cmge v31.4h, v0.4h, #0
+ cmge v0.4h, v31.4h, #0
+ cmge v0.2s, v0.2s, #0
+ cmge v31.2s, v0.2s, #0
+ cmge v0.2s, v31.2s, #0
+ cmge v0.16b, v0.16b, #0
+ cmge v31.16b, v0.16b, #0
+ cmge v0.16b, v31.16b, #0
+ cmge v0.8h, v0.8h, #0
+ cmge v31.8h, v0.8h, #0
+ cmge v0.8h, v31.8h, #0
+ cmge v0.4s, v0.4s, #0
+ cmge v31.4s, v0.4s, #0
+ cmge v0.4s, v31.4s, #0
+ cmge v0.2d, v0.2d, #0
+ cmge v31.2d, v0.2d, #0
+ cmge v0.2d, v31.2d, #0
+
+ cmle v0.8b, v0.8b, #0
+ cmle v31.8b, v0.8b, #0
+ cmle v0.8b, v31.8b, #0
+ cmle v0.4h, v0.4h, #0
+ cmle v31.4h, v0.4h, #0
+ cmle v0.4h, v31.4h, #0
+ cmle v0.2s, v0.2s, #0
+ cmle v31.2s, v0.2s, #0
+ cmle v0.2s, v31.2s, #0
+ cmle v0.16b, v0.16b, #0
+ cmle v31.16b, v0.16b, #0
+ cmle v0.16b, v31.16b, #0
+ cmle v0.8h, v0.8h, #0
+ cmle v31.8h, v0.8h, #0
+ cmle v0.8h, v31.8h, #0
+ cmle v0.4s, v0.4s, #0
+ cmle v31.4s, v0.4s, #0
+ cmle v0.4s, v31.4s, #0
+ cmle v0.2d, v0.2d, #0
+ cmle v31.2d, v0.2d, #0
+ cmle v0.2d, v31.2d, #0
+
+ neg v0.8b, v0.8b
+ neg v31.8b, v0.8b
+ neg v0.8b, v31.8b
+ neg v0.4h, v0.4h
+ neg v31.4h, v0.4h
+ neg v0.4h, v31.4h
+ neg v0.2s, v0.2s
+ neg v31.2s, v0.2s
+ neg v0.2s, v31.2s
+ neg v0.16b, v0.16b
+ neg v31.16b, v0.16b
+ neg v0.16b, v31.16b
+ neg v0.8h, v0.8h
+ neg v31.8h, v0.8h
+ neg v0.8h, v31.8h
+ neg v0.4s, v0.4s
+ neg v31.4s, v0.4s
+ neg v0.4s, v31.4s
+ neg v0.2d, v0.2d
+ neg v31.2d, v0.2d
+ neg v0.2d, v31.2d
diff --git a/gas/testsuite/gas/aarch64/advsimd-widening-narrowing.d b/gas/testsuite/gas/aarch64/advsimd-widening-narrowing.d
new file mode 100644
index 0000000..d7522d1
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-widening-narrowing.d
@@ -0,0 +1,585 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 0e200000 saddl v0\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20001f saddl v31\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e2003e0 saddl v0\.8h, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f0000 saddl v0\.8h, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e600000 saddl v0\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60001f saddl v31\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e6003e0 saddl v0\.4s, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f0000 saddl v0\.4s, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea00000 saddl v0\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0001f saddl v31\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea003e0 saddl v0\.2d, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf0000 saddl v0\.2d, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e200000 saddl2 v0\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20001f saddl2 v31\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e2003e0 saddl2 v0\.8h, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f0000 saddl2 v0\.8h, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e600000 saddl2 v0\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60001f saddl2 v31\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e6003e0 saddl2 v0\.4s, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f0000 saddl2 v0\.4s, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea00000 saddl2 v0\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0001f saddl2 v31\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea003e0 saddl2 v0\.2d, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf0000 saddl2 v0\.2d, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e201000 saddw v0\.8h, v0\.8h, v0\.8b
+ *[0-9a-f]+: 0e20101f saddw v31\.8h, v0\.8h, v0\.8b
+ *[0-9a-f]+: 0e2013e0 saddw v0\.8h, v31\.8h, v0\.8b
+ *[0-9a-f]+: 0e3f1000 saddw v0\.8h, v0\.8h, v31\.8b
+ *[0-9a-f]+: 0e601000 saddw v0\.4s, v0\.4s, v0\.4h
+ *[0-9a-f]+: 0e60101f saddw v31\.4s, v0\.4s, v0\.4h
+ *[0-9a-f]+: 0e6013e0 saddw v0\.4s, v31\.4s, v0\.4h
+ *[0-9a-f]+: 0e7f1000 saddw v0\.4s, v0\.4s, v31\.4h
+ *[0-9a-f]+: 0ea01000 saddw v0\.2d, v0\.2d, v0\.2s
+ *[0-9a-f]+: 0ea0101f saddw v31\.2d, v0\.2d, v0\.2s
+ *[0-9a-f]+: 0ea013e0 saddw v0\.2d, v31\.2d, v0\.2s
+ *[0-9a-f]+: 0ebf1000 saddw v0\.2d, v0\.2d, v31\.2s
+ *[0-9a-f]+: 4e201000 saddw2 v0\.8h, v0\.8h, v0\.16b
+ *[0-9a-f]+: 4e20101f saddw2 v31\.8h, v0\.8h, v0\.16b
+ *[0-9a-f]+: 4e2013e0 saddw2 v0\.8h, v31\.8h, v0\.16b
+ *[0-9a-f]+: 4e3f1000 saddw2 v0\.8h, v0\.8h, v31\.16b
+ *[0-9a-f]+: 4e601000 saddw2 v0\.4s, v0\.4s, v0\.8h
+ *[0-9a-f]+: 4e60101f saddw2 v31\.4s, v0\.4s, v0\.8h
+ *[0-9a-f]+: 4e6013e0 saddw2 v0\.4s, v31\.4s, v0\.8h
+ *[0-9a-f]+: 4e7f1000 saddw2 v0\.4s, v0\.4s, v31\.8h
+ *[0-9a-f]+: 4ea01000 saddw2 v0\.2d, v0\.2d, v0\.4s
+ *[0-9a-f]+: 4ea0101f saddw2 v31\.2d, v0\.2d, v0\.4s
+ *[0-9a-f]+: 4ea013e0 saddw2 v0\.2d, v31\.2d, v0\.4s
+ *[0-9a-f]+: 4ebf1000 saddw2 v0\.2d, v0\.2d, v31\.4s
+ *[0-9a-f]+: 0e202000 ssubl v0\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20201f ssubl v31\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e2023e0 ssubl v0\.8h, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f2000 ssubl v0\.8h, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e602000 ssubl v0\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60201f ssubl v31\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e6023e0 ssubl v0\.4s, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f2000 ssubl v0\.4s, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea02000 ssubl v0\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0201f ssubl v31\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea023e0 ssubl v0\.2d, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf2000 ssubl v0\.2d, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e202000 ssubl2 v0\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20201f ssubl2 v31\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e2023e0 ssubl2 v0\.8h, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f2000 ssubl2 v0\.8h, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e602000 ssubl2 v0\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60201f ssubl2 v31\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e6023e0 ssubl2 v0\.4s, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f2000 ssubl2 v0\.4s, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea02000 ssubl2 v0\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0201f ssubl2 v31\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea023e0 ssubl2 v0\.2d, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf2000 ssubl2 v0\.2d, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e203000 ssubw v0\.8h, v0\.8h, v0\.8b
+ *[0-9a-f]+: 0e20301f ssubw v31\.8h, v0\.8h, v0\.8b
+ *[0-9a-f]+: 0e2033e0 ssubw v0\.8h, v31\.8h, v0\.8b
+ *[0-9a-f]+: 0e3f3000 ssubw v0\.8h, v0\.8h, v31\.8b
+ *[0-9a-f]+: 0e603000 ssubw v0\.4s, v0\.4s, v0\.4h
+ *[0-9a-f]+: 0e60301f ssubw v31\.4s, v0\.4s, v0\.4h
+ *[0-9a-f]+: 0e6033e0 ssubw v0\.4s, v31\.4s, v0\.4h
+ *[0-9a-f]+: 0e7f3000 ssubw v0\.4s, v0\.4s, v31\.4h
+ *[0-9a-f]+: 0ea03000 ssubw v0\.2d, v0\.2d, v0\.2s
+ *[0-9a-f]+: 0ea0301f ssubw v31\.2d, v0\.2d, v0\.2s
+ *[0-9a-f]+: 0ea033e0 ssubw v0\.2d, v31\.2d, v0\.2s
+ *[0-9a-f]+: 0ebf3000 ssubw v0\.2d, v0\.2d, v31\.2s
+ *[0-9a-f]+: 4e203000 ssubw2 v0\.8h, v0\.8h, v0\.16b
+ *[0-9a-f]+: 4e20301f ssubw2 v31\.8h, v0\.8h, v0\.16b
+ *[0-9a-f]+: 4e2033e0 ssubw2 v0\.8h, v31\.8h, v0\.16b
+ *[0-9a-f]+: 4e3f3000 ssubw2 v0\.8h, v0\.8h, v31\.16b
+ *[0-9a-f]+: 4e603000 ssubw2 v0\.4s, v0\.4s, v0\.8h
+ *[0-9a-f]+: 4e60301f ssubw2 v31\.4s, v0\.4s, v0\.8h
+ *[0-9a-f]+: 4e6033e0 ssubw2 v0\.4s, v31\.4s, v0\.8h
+ *[0-9a-f]+: 4e7f3000 ssubw2 v0\.4s, v0\.4s, v31\.8h
+ *[0-9a-f]+: 4ea03000 ssubw2 v0\.2d, v0\.2d, v0\.4s
+ *[0-9a-f]+: 4ea0301f ssubw2 v31\.2d, v0\.2d, v0\.4s
+ *[0-9a-f]+: 4ea033e0 ssubw2 v0\.2d, v31\.2d, v0\.4s
+ *[0-9a-f]+: 4ebf3000 ssubw2 v0\.2d, v0\.2d, v31\.4s
+ *[0-9a-f]+: 0e204000 addhn v0\.8b, v0\.8h, v0\.8h
+ *[0-9a-f]+: 0e20401f addhn v31\.8b, v0\.8h, v0\.8h
+ *[0-9a-f]+: 0e2043e0 addhn v0\.8b, v31\.8h, v0\.8h
+ *[0-9a-f]+: 0e3f4000 addhn v0\.8b, v0\.8h, v31\.8h
+ *[0-9a-f]+: 0e604000 addhn v0\.4h, v0\.4s, v0\.4s
+ *[0-9a-f]+: 0e60401f addhn v31\.4h, v0\.4s, v0\.4s
+ *[0-9a-f]+: 0e6043e0 addhn v0\.4h, v31\.4s, v0\.4s
+ *[0-9a-f]+: 0e7f4000 addhn v0\.4h, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0ea04000 addhn v0\.2s, v0\.2d, v0\.2d
+ *[0-9a-f]+: 0ea0401f addhn v31\.2s, v0\.2d, v0\.2d
+ *[0-9a-f]+: 0ea043e0 addhn v0\.2s, v31\.2d, v0\.2d
+ *[0-9a-f]+: 0ebf4000 addhn v0\.2s, v0\.2d, v31\.2d
+ *[0-9a-f]+: 4e204000 addhn2 v0\.16b, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e20401f addhn2 v31\.16b, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e2043e0 addhn2 v0\.16b, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e3f4000 addhn2 v0\.16b, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4e604000 addhn2 v0\.8h, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4e60401f addhn2 v31\.8h, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4e6043e0 addhn2 v0\.8h, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4e7f4000 addhn2 v0\.8h, v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ea04000 addhn2 v0\.4s, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ea0401f addhn2 v31\.4s, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ea043e0 addhn2 v0\.4s, v31\.2d, v0\.2d
+ *[0-9a-f]+: 4ebf4000 addhn2 v0\.4s, v0\.2d, v31\.2d
+ *[0-9a-f]+: 0e205000 sabal v0\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20501f sabal v31\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e2053e0 sabal v0\.8h, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f5000 sabal v0\.8h, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e605000 sabal v0\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60501f sabal v31\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e6053e0 sabal v0\.4s, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f5000 sabal v0\.4s, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea05000 sabal v0\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0501f sabal v31\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea053e0 sabal v0\.2d, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf5000 sabal v0\.2d, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e205000 sabal2 v0\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20501f sabal2 v31\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e2053e0 sabal2 v0\.8h, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f5000 sabal2 v0\.8h, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e605000 sabal2 v0\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60501f sabal2 v31\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e6053e0 sabal2 v0\.4s, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f5000 sabal2 v0\.4s, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea05000 sabal2 v0\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0501f sabal2 v31\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea053e0 sabal2 v0\.2d, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf5000 sabal2 v0\.2d, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e206000 subhn v0\.8b, v0\.8h, v0\.8h
+ *[0-9a-f]+: 0e20601f subhn v31\.8b, v0\.8h, v0\.8h
+ *[0-9a-f]+: 0e2063e0 subhn v0\.8b, v31\.8h, v0\.8h
+ *[0-9a-f]+: 0e3f6000 subhn v0\.8b, v0\.8h, v31\.8h
+ *[0-9a-f]+: 0e606000 subhn v0\.4h, v0\.4s, v0\.4s
+ *[0-9a-f]+: 0e60601f subhn v31\.4h, v0\.4s, v0\.4s
+ *[0-9a-f]+: 0e6063e0 subhn v0\.4h, v31\.4s, v0\.4s
+ *[0-9a-f]+: 0e7f6000 subhn v0\.4h, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0ea06000 subhn v0\.2s, v0\.2d, v0\.2d
+ *[0-9a-f]+: 0ea0601f subhn v31\.2s, v0\.2d, v0\.2d
+ *[0-9a-f]+: 0ea063e0 subhn v0\.2s, v31\.2d, v0\.2d
+ *[0-9a-f]+: 0ebf6000 subhn v0\.2s, v0\.2d, v31\.2d
+ *[0-9a-f]+: 4e206000 subhn2 v0\.16b, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e20601f subhn2 v31\.16b, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e2063e0 subhn2 v0\.16b, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e3f6000 subhn2 v0\.16b, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4e606000 subhn2 v0\.8h, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4e60601f subhn2 v31\.8h, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4e6063e0 subhn2 v0\.8h, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4e7f6000 subhn2 v0\.8h, v0\.4s, v31\.4s
+ *[0-9a-f]+: 4ea06000 subhn2 v0\.4s, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ea0601f subhn2 v31\.4s, v0\.2d, v0\.2d
+ *[0-9a-f]+: 4ea063e0 subhn2 v0\.4s, v31\.2d, v0\.2d
+ *[0-9a-f]+: 4ebf6000 subhn2 v0\.4s, v0\.2d, v31\.2d
+ *[0-9a-f]+: 0e207000 sabdl v0\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20701f sabdl v31\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e2073e0 sabdl v0\.8h, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f7000 sabdl v0\.8h, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e607000 sabdl v0\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60701f sabdl v31\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e6073e0 sabdl v0\.4s, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f7000 sabdl v0\.4s, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea07000 sabdl v0\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0701f sabdl v31\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea073e0 sabdl v0\.2d, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf7000 sabdl v0\.2d, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e207000 sabdl2 v0\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20701f sabdl2 v31\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e2073e0 sabdl2 v0\.8h, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f7000 sabdl2 v0\.8h, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e607000 sabdl2 v0\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60701f sabdl2 v31\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e6073e0 sabdl2 v0\.4s, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f7000 sabdl2 v0\.4s, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea07000 sabdl2 v0\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0701f sabdl2 v31\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea073e0 sabdl2 v0\.2d, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf7000 sabdl2 v0\.2d, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e208000 smlal v0\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20801f smlal v31\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e2083e0 smlal v0\.8h, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3f8000 smlal v0\.8h, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e608000 smlal v0\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60801f smlal v31\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e6083e0 smlal v0\.4s, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f8000 smlal v0\.4s, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea08000 smlal v0\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0801f smlal v31\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea083e0 smlal v0\.2d, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf8000 smlal v0\.2d, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e208000 smlal2 v0\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20801f smlal2 v31\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e2083e0 smlal2 v0\.8h, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3f8000 smlal2 v0\.8h, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e608000 smlal2 v0\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60801f smlal2 v31\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e6083e0 smlal2 v0\.4s, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f8000 smlal2 v0\.4s, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea08000 smlal2 v0\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0801f smlal2 v31\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea083e0 smlal2 v0\.2d, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf8000 smlal2 v0\.2d, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e609000 sqdmlal v0\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60901f sqdmlal v31\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e6093e0 sqdmlal v0\.4s, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7f9000 sqdmlal v0\.4s, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea09000 sqdmlal v0\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0901f sqdmlal v31\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea093e0 sqdmlal v0\.2d, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebf9000 sqdmlal v0\.2d, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e609000 sqdmlal2 v0\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60901f sqdmlal2 v31\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e6093e0 sqdmlal2 v0\.4s, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7f9000 sqdmlal2 v0\.4s, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea09000 sqdmlal2 v0\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0901f sqdmlal2 v31\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea093e0 sqdmlal2 v0\.2d, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebf9000 sqdmlal2 v0\.2d, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e20a000 smlsl v0\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20a01f smlsl v31\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20a3e0 smlsl v0\.8h, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3fa000 smlsl v0\.8h, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e60a000 smlsl v0\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60a01f smlsl v31\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60a3e0 smlsl v0\.4s, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7fa000 smlsl v0\.4s, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea0a000 smlsl v0\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0a01f smlsl v31\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0a3e0 smlsl v0\.2d, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebfa000 smlsl v0\.2d, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e20a000 smlsl2 v0\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20a01f smlsl2 v31\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20a3e0 smlsl2 v0\.8h, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3fa000 smlsl2 v0\.8h, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e60a000 smlsl2 v0\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60a01f smlsl2 v31\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60a3e0 smlsl2 v0\.4s, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7fa000 smlsl2 v0\.4s, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea0a000 smlsl2 v0\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0a01f smlsl2 v31\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0a3e0 smlsl2 v0\.2d, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebfa000 smlsl2 v0\.2d, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e60b000 sqdmlsl v0\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60b01f sqdmlsl v31\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60b3e0 sqdmlsl v0\.4s, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7fb000 sqdmlsl v0\.4s, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea0b000 sqdmlsl v0\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0b01f sqdmlsl v31\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0b3e0 sqdmlsl v0\.2d, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebfb000 sqdmlsl v0\.2d, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e60b000 sqdmlsl2 v0\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60b01f sqdmlsl2 v31\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60b3e0 sqdmlsl2 v0\.4s, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7fb000 sqdmlsl2 v0\.4s, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea0b000 sqdmlsl2 v0\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0b01f sqdmlsl2 v31\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0b3e0 sqdmlsl2 v0\.2d, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebfb000 sqdmlsl2 v0\.2d, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e20c000 smull v0\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20c01f smull v31\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 0e20c3e0 smull v0\.8h, v31\.8b, v0\.8b
+ *[0-9a-f]+: 0e3fc000 smull v0\.8h, v0\.8b, v31\.8b
+ *[0-9a-f]+: 0e60c000 smull v0\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60c01f smull v31\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60c3e0 smull v0\.4s, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7fc000 smull v0\.4s, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea0c000 smull v0\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0c01f smull v31\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0c3e0 smull v0\.2d, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebfc000 smull v0\.2d, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e20c000 smull2 v0\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20c01f smull2 v31\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 4e20c3e0 smull2 v0\.8h, v31\.16b, v0\.16b
+ *[0-9a-f]+: 4e3fc000 smull2 v0\.8h, v0\.16b, v31\.16b
+ *[0-9a-f]+: 4e60c000 smull2 v0\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60c01f smull2 v31\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60c3e0 smull2 v0\.4s, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7fc000 smull2 v0\.4s, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea0c000 smull2 v0\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0c01f smull2 v31\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0c3e0 smull2 v0\.2d, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebfc000 smull2 v0\.2d, v0\.4s, v31\.4s
+ *[0-9a-f]+: 0e60d000 sqdmull v0\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60d01f sqdmull v31\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 0e60d3e0 sqdmull v0\.4s, v31\.4h, v0\.4h
+ *[0-9a-f]+: 0e7fd000 sqdmull v0\.4s, v0\.4h, v31\.4h
+ *[0-9a-f]+: 0ea0d000 sqdmull v0\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0d01f sqdmull v31\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 0ea0d3e0 sqdmull v0\.2d, v31\.2s, v0\.2s
+ *[0-9a-f]+: 0ebfd000 sqdmull v0\.2d, v0\.2s, v31\.2s
+ *[0-9a-f]+: 4e60d000 sqdmull2 v0\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60d01f sqdmull2 v31\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 4e60d3e0 sqdmull2 v0\.4s, v31\.8h, v0\.8h
+ *[0-9a-f]+: 4e7fd000 sqdmull2 v0\.4s, v0\.8h, v31\.8h
+ *[0-9a-f]+: 4ea0d000 sqdmull2 v0\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0d01f sqdmull2 v31\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 4ea0d3e0 sqdmull2 v0\.2d, v31\.4s, v0\.4s
+ *[0-9a-f]+: 4ebfd000 sqdmull2 v0\.2d, v0\.4s, v31\.4s
+ *[0-9a-f]+: 2e200000 uaddl v0\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20001f uaddl v31\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e2003e0 uaddl v0\.8h, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f0000 uaddl v0\.8h, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e600000 uaddl v0\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60001f uaddl v31\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e6003e0 uaddl v0\.4s, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f0000 uaddl v0\.4s, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea00000 uaddl v0\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0001f uaddl v31\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea003e0 uaddl v0\.2d, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf0000 uaddl v0\.2d, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e200000 uaddl2 v0\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20001f uaddl2 v31\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e2003e0 uaddl2 v0\.8h, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f0000 uaddl2 v0\.8h, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e600000 uaddl2 v0\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60001f uaddl2 v31\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e6003e0 uaddl2 v0\.4s, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f0000 uaddl2 v0\.4s, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea00000 uaddl2 v0\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0001f uaddl2 v31\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea003e0 uaddl2 v0\.2d, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf0000 uaddl2 v0\.2d, v0\.4s, v31\.4s
+ *[0-9a-f]+: 2e201000 uaddw v0\.8h, v0\.8h, v0\.8b
+ *[0-9a-f]+: 2e20101f uaddw v31\.8h, v0\.8h, v0\.8b
+ *[0-9a-f]+: 2e2013e0 uaddw v0\.8h, v31\.8h, v0\.8b
+ *[0-9a-f]+: 2e3f1000 uaddw v0\.8h, v0\.8h, v31\.8b
+ *[0-9a-f]+: 2e601000 uaddw v0\.4s, v0\.4s, v0\.4h
+ *[0-9a-f]+: 2e60101f uaddw v31\.4s, v0\.4s, v0\.4h
+ *[0-9a-f]+: 2e6013e0 uaddw v0\.4s, v31\.4s, v0\.4h
+ *[0-9a-f]+: 2e7f1000 uaddw v0\.4s, v0\.4s, v31\.4h
+ *[0-9a-f]+: 2ea01000 uaddw v0\.2d, v0\.2d, v0\.2s
+ *[0-9a-f]+: 2ea0101f uaddw v31\.2d, v0\.2d, v0\.2s
+ *[0-9a-f]+: 2ea013e0 uaddw v0\.2d, v31\.2d, v0\.2s
+ *[0-9a-f]+: 2ebf1000 uaddw v0\.2d, v0\.2d, v31\.2s
+ *[0-9a-f]+: 6e201000 uaddw2 v0\.8h, v0\.8h, v0\.16b
+ *[0-9a-f]+: 6e20101f uaddw2 v31\.8h, v0\.8h, v0\.16b
+ *[0-9a-f]+: 6e2013e0 uaddw2 v0\.8h, v31\.8h, v0\.16b
+ *[0-9a-f]+: 6e3f1000 uaddw2 v0\.8h, v0\.8h, v31\.16b
+ *[0-9a-f]+: 6e601000 uaddw2 v0\.4s, v0\.4s, v0\.8h
+ *[0-9a-f]+: 6e60101f uaddw2 v31\.4s, v0\.4s, v0\.8h
+ *[0-9a-f]+: 6e6013e0 uaddw2 v0\.4s, v31\.4s, v0\.8h
+ *[0-9a-f]+: 6e7f1000 uaddw2 v0\.4s, v0\.4s, v31\.8h
+ *[0-9a-f]+: 6ea01000 uaddw2 v0\.2d, v0\.2d, v0\.4s
+ *[0-9a-f]+: 6ea0101f uaddw2 v31\.2d, v0\.2d, v0\.4s
+ *[0-9a-f]+: 6ea013e0 uaddw2 v0\.2d, v31\.2d, v0\.4s
+ *[0-9a-f]+: 6ebf1000 uaddw2 v0\.2d, v0\.2d, v31\.4s
+ *[0-9a-f]+: 2e202000 usubl v0\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20201f usubl v31\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e2023e0 usubl v0\.8h, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f2000 usubl v0\.8h, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e602000 usubl v0\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60201f usubl v31\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e6023e0 usubl v0\.4s, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f2000 usubl v0\.4s, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea02000 usubl v0\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0201f usubl v31\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea023e0 usubl v0\.2d, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf2000 usubl v0\.2d, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e202000 usubl2 v0\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20201f usubl2 v31\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e2023e0 usubl2 v0\.8h, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f2000 usubl2 v0\.8h, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e602000 usubl2 v0\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60201f usubl2 v31\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e6023e0 usubl2 v0\.4s, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f2000 usubl2 v0\.4s, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea02000 usubl2 v0\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0201f usubl2 v31\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea023e0 usubl2 v0\.2d, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf2000 usubl2 v0\.2d, v0\.4s, v31\.4s
+ *[0-9a-f]+: 2e203000 usubw v0\.8h, v0\.8h, v0\.8b
+ *[0-9a-f]+: 2e20301f usubw v31\.8h, v0\.8h, v0\.8b
+ *[0-9a-f]+: 2e2033e0 usubw v0\.8h, v31\.8h, v0\.8b
+ *[0-9a-f]+: 2e3f3000 usubw v0\.8h, v0\.8h, v31\.8b
+ *[0-9a-f]+: 2e603000 usubw v0\.4s, v0\.4s, v0\.4h
+ *[0-9a-f]+: 2e60301f usubw v31\.4s, v0\.4s, v0\.4h
+ *[0-9a-f]+: 2e6033e0 usubw v0\.4s, v31\.4s, v0\.4h
+ *[0-9a-f]+: 2e7f3000 usubw v0\.4s, v0\.4s, v31\.4h
+ *[0-9a-f]+: 2ea03000 usubw v0\.2d, v0\.2d, v0\.2s
+ *[0-9a-f]+: 2ea0301f usubw v31\.2d, v0\.2d, v0\.2s
+ *[0-9a-f]+: 2ea033e0 usubw v0\.2d, v31\.2d, v0\.2s
+ *[0-9a-f]+: 2ebf3000 usubw v0\.2d, v0\.2d, v31\.2s
+ *[0-9a-f]+: 6e203000 usubw2 v0\.8h, v0\.8h, v0\.16b
+ *[0-9a-f]+: 6e20301f usubw2 v31\.8h, v0\.8h, v0\.16b
+ *[0-9a-f]+: 6e2033e0 usubw2 v0\.8h, v31\.8h, v0\.16b
+ *[0-9a-f]+: 6e3f3000 usubw2 v0\.8h, v0\.8h, v31\.16b
+ *[0-9a-f]+: 6e603000 usubw2 v0\.4s, v0\.4s, v0\.8h
+ *[0-9a-f]+: 6e60301f usubw2 v31\.4s, v0\.4s, v0\.8h
+ *[0-9a-f]+: 6e6033e0 usubw2 v0\.4s, v31\.4s, v0\.8h
+ *[0-9a-f]+: 6e7f3000 usubw2 v0\.4s, v0\.4s, v31\.8h
+ *[0-9a-f]+: 6ea03000 usubw2 v0\.2d, v0\.2d, v0\.4s
+ *[0-9a-f]+: 6ea0301f usubw2 v31\.2d, v0\.2d, v0\.4s
+ *[0-9a-f]+: 6ea033e0 usubw2 v0\.2d, v31\.2d, v0\.4s
+ *[0-9a-f]+: 6ebf3000 usubw2 v0\.2d, v0\.2d, v31\.4s
+ *[0-9a-f]+: 2e204000 raddhn v0\.8b, v0\.8h, v0\.8h
+ *[0-9a-f]+: 2e20401f raddhn v31\.8b, v0\.8h, v0\.8h
+ *[0-9a-f]+: 2e2043e0 raddhn v0\.8b, v31\.8h, v0\.8h
+ *[0-9a-f]+: 2e3f4000 raddhn v0\.8b, v0\.8h, v31\.8h
+ *[0-9a-f]+: 2e604000 raddhn v0\.4h, v0\.4s, v0\.4s
+ *[0-9a-f]+: 2e60401f raddhn v31\.4h, v0\.4s, v0\.4s
+ *[0-9a-f]+: 2e6043e0 raddhn v0\.4h, v31\.4s, v0\.4s
+ *[0-9a-f]+: 2e7f4000 raddhn v0\.4h, v0\.4s, v31\.4s
+ *[0-9a-f]+: 2ea04000 raddhn v0\.2s, v0\.2d, v0\.2d
+ *[0-9a-f]+: 2ea0401f raddhn v31\.2s, v0\.2d, v0\.2d
+ *[0-9a-f]+: 2ea043e0 raddhn v0\.2s, v31\.2d, v0\.2d
+ *[0-9a-f]+: 2ebf4000 raddhn v0\.2s, v0\.2d, v31\.2d
+ *[0-9a-f]+: 6e204000 raddhn2 v0\.16b, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e20401f raddhn2 v31\.16b, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e2043e0 raddhn2 v0\.16b, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e3f4000 raddhn2 v0\.16b, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6e604000 raddhn2 v0\.8h, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6e60401f raddhn2 v31\.8h, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6e6043e0 raddhn2 v0\.8h, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6e7f4000 raddhn2 v0\.8h, v0\.4s, v31\.4s
+ *[0-9a-f]+: 6ea04000 raddhn2 v0\.4s, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ea0401f raddhn2 v31\.4s, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ea043e0 raddhn2 v0\.4s, v31\.2d, v0\.2d
+ *[0-9a-f]+: 6ebf4000 raddhn2 v0\.4s, v0\.2d, v31\.2d
+ *[0-9a-f]+: 2e205000 uabal v0\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20501f uabal v31\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e2053e0 uabal v0\.8h, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f5000 uabal v0\.8h, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e605000 uabal v0\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60501f uabal v31\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e6053e0 uabal v0\.4s, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f5000 uabal v0\.4s, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea05000 uabal v0\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0501f uabal v31\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea053e0 uabal v0\.2d, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf5000 uabal v0\.2d, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e205000 uabal2 v0\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20501f uabal2 v31\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e2053e0 uabal2 v0\.8h, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f5000 uabal2 v0\.8h, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e605000 uabal2 v0\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60501f uabal2 v31\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e6053e0 uabal2 v0\.4s, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f5000 uabal2 v0\.4s, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea05000 uabal2 v0\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0501f uabal2 v31\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea053e0 uabal2 v0\.2d, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf5000 uabal2 v0\.2d, v0\.4s, v31\.4s
+ *[0-9a-f]+: 2e206000 rsubhn v0\.8b, v0\.8h, v0\.8h
+ *[0-9a-f]+: 2e20601f rsubhn v31\.8b, v0\.8h, v0\.8h
+ *[0-9a-f]+: 2e2063e0 rsubhn v0\.8b, v31\.8h, v0\.8h
+ *[0-9a-f]+: 2e3f6000 rsubhn v0\.8b, v0\.8h, v31\.8h
+ *[0-9a-f]+: 2e606000 rsubhn v0\.4h, v0\.4s, v0\.4s
+ *[0-9a-f]+: 2e60601f rsubhn v31\.4h, v0\.4s, v0\.4s
+ *[0-9a-f]+: 2e6063e0 rsubhn v0\.4h, v31\.4s, v0\.4s
+ *[0-9a-f]+: 2e7f6000 rsubhn v0\.4h, v0\.4s, v31\.4s
+ *[0-9a-f]+: 2ea06000 rsubhn v0\.2s, v0\.2d, v0\.2d
+ *[0-9a-f]+: 2ea0601f rsubhn v31\.2s, v0\.2d, v0\.2d
+ *[0-9a-f]+: 2ea063e0 rsubhn v0\.2s, v31\.2d, v0\.2d
+ *[0-9a-f]+: 2ebf6000 rsubhn v0\.2s, v0\.2d, v31\.2d
+ *[0-9a-f]+: 6e206000 rsubhn2 v0\.16b, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e20601f rsubhn2 v31\.16b, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e2063e0 rsubhn2 v0\.16b, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e3f6000 rsubhn2 v0\.16b, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6e606000 rsubhn2 v0\.8h, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6e60601f rsubhn2 v31\.8h, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6e6063e0 rsubhn2 v0\.8h, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6e7f6000 rsubhn2 v0\.8h, v0\.4s, v31\.4s
+ *[0-9a-f]+: 6ea06000 rsubhn2 v0\.4s, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ea0601f rsubhn2 v31\.4s, v0\.2d, v0\.2d
+ *[0-9a-f]+: 6ea063e0 rsubhn2 v0\.4s, v31\.2d, v0\.2d
+ *[0-9a-f]+: 6ebf6000 rsubhn2 v0\.4s, v0\.2d, v31\.2d
+ *[0-9a-f]+: 2e207000 uabdl v0\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20701f uabdl v31\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e2073e0 uabdl v0\.8h, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f7000 uabdl v0\.8h, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e607000 uabdl v0\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60701f uabdl v31\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e6073e0 uabdl v0\.4s, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f7000 uabdl v0\.4s, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea07000 uabdl v0\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0701f uabdl v31\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea073e0 uabdl v0\.2d, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf7000 uabdl v0\.2d, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e207000 uabdl2 v0\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20701f uabdl2 v31\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e2073e0 uabdl2 v0\.8h, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f7000 uabdl2 v0\.8h, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e607000 uabdl2 v0\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60701f uabdl2 v31\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e6073e0 uabdl2 v0\.4s, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f7000 uabdl2 v0\.4s, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea07000 uabdl2 v0\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0701f uabdl2 v31\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea073e0 uabdl2 v0\.2d, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf7000 uabdl2 v0\.2d, v0\.4s, v31\.4s
+ *[0-9a-f]+: 2e208000 umlal v0\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20801f umlal v31\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e2083e0 umlal v0\.8h, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3f8000 umlal v0\.8h, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e608000 umlal v0\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60801f umlal v31\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e6083e0 umlal v0\.4s, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7f8000 umlal v0\.4s, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea08000 umlal v0\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0801f umlal v31\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea083e0 umlal v0\.2d, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebf8000 umlal v0\.2d, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e208000 umlal2 v0\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20801f umlal2 v31\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e2083e0 umlal2 v0\.8h, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3f8000 umlal2 v0\.8h, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e608000 umlal2 v0\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60801f umlal2 v31\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e6083e0 umlal2 v0\.4s, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7f8000 umlal2 v0\.4s, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea08000 umlal2 v0\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0801f umlal2 v31\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea083e0 umlal2 v0\.2d, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebf8000 umlal2 v0\.2d, v0\.4s, v31\.4s
+ *[0-9a-f]+: 2e20a000 umlsl v0\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20a01f umlsl v31\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20a3e0 umlsl v0\.8h, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3fa000 umlsl v0\.8h, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e60a000 umlsl v0\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60a01f umlsl v31\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60a3e0 umlsl v0\.4s, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7fa000 umlsl v0\.4s, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea0a000 umlsl v0\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0a01f umlsl v31\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0a3e0 umlsl v0\.2d, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebfa000 umlsl v0\.2d, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e20a000 umlsl2 v0\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20a01f umlsl2 v31\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20a3e0 umlsl2 v0\.8h, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3fa000 umlsl2 v0\.8h, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e60a000 umlsl2 v0\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60a01f umlsl2 v31\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60a3e0 umlsl2 v0\.4s, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7fa000 umlsl2 v0\.4s, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea0a000 umlsl2 v0\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0a01f umlsl2 v31\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0a3e0 umlsl2 v0\.2d, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebfa000 umlsl2 v0\.2d, v0\.4s, v31\.4s
+ *[0-9a-f]+: 2e20c000 umull v0\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20c01f umull v31\.8h, v0\.8b, v0\.8b
+ *[0-9a-f]+: 2e20c3e0 umull v0\.8h, v31\.8b, v0\.8b
+ *[0-9a-f]+: 2e3fc000 umull v0\.8h, v0\.8b, v31\.8b
+ *[0-9a-f]+: 2e60c000 umull v0\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60c01f umull v31\.4s, v0\.4h, v0\.4h
+ *[0-9a-f]+: 2e60c3e0 umull v0\.4s, v31\.4h, v0\.4h
+ *[0-9a-f]+: 2e7fc000 umull v0\.4s, v0\.4h, v31\.4h
+ *[0-9a-f]+: 2ea0c000 umull v0\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0c01f umull v31\.2d, v0\.2s, v0\.2s
+ *[0-9a-f]+: 2ea0c3e0 umull v0\.2d, v31\.2s, v0\.2s
+ *[0-9a-f]+: 2ebfc000 umull v0\.2d, v0\.2s, v31\.2s
+ *[0-9a-f]+: 6e20c000 umull2 v0\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20c01f umull2 v31\.8h, v0\.16b, v0\.16b
+ *[0-9a-f]+: 6e20c3e0 umull2 v0\.8h, v31\.16b, v0\.16b
+ *[0-9a-f]+: 6e3fc000 umull2 v0\.8h, v0\.16b, v31\.16b
+ *[0-9a-f]+: 6e60c000 umull2 v0\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60c01f umull2 v31\.4s, v0\.8h, v0\.8h
+ *[0-9a-f]+: 6e60c3e0 umull2 v0\.4s, v31\.8h, v0\.8h
+ *[0-9a-f]+: 6e7fc000 umull2 v0\.4s, v0\.8h, v31\.8h
+ *[0-9a-f]+: 6ea0c000 umull2 v0\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0c01f umull2 v31\.2d, v0\.4s, v0\.4s
+ *[0-9a-f]+: 6ea0c3e0 umull2 v0\.2d, v31\.4s, v0\.4s
+ *[0-9a-f]+: 6ebfc000 umull2 v0\.2d, v0\.4s, v31\.4s
diff --git a/gas/testsuite/gas/aarch64/advsimd-widening-narrowing.s b/gas/testsuite/gas/aarch64/advsimd-widening-narrowing.s
new file mode 100644
index 0000000..9a00ff0
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/advsimd-widening-narrowing.s
@@ -0,0 +1,625 @@
+ saddl v0.8h, v0.8b, v0.8b
+ saddl v31.8h, v0.8b, v0.8b
+ saddl v0.8h, v31.8b, v0.8b
+ saddl v0.8h, v0.8b, v31.8b
+ saddl v0.4s, v0.4h, v0.4h
+ saddl v31.4s, v0.4h, v0.4h
+ saddl v0.4s, v31.4h, v0.4h
+ saddl v0.4s, v0.4h, v31.4h
+ saddl v0.2d, v0.2s, v0.2s
+ saddl v31.2d, v0.2s, v0.2s
+ saddl v0.2d, v31.2s, v0.2s
+ saddl v0.2d, v0.2s, v31.2s
+
+ saddl2 v0.8h, v0.16b, v0.16b
+ saddl2 v31.8h, v0.16b, v0.16b
+ saddl2 v0.8h, v31.16b, v0.16b
+ saddl2 v0.8h, v0.16b, v31.16b
+ saddl2 v0.4s, v0.8h, v0.8h
+ saddl2 v31.4s, v0.8h, v0.8h
+ saddl2 v0.4s, v31.8h, v0.8h
+ saddl2 v0.4s, v0.8h, v31.8h
+ saddl2 v0.2d, v0.4s, v0.4s
+ saddl2 v31.2d, v0.4s, v0.4s
+ saddl2 v0.2d, v31.4s, v0.4s
+ saddl2 v0.2d, v0.4s, v31.4s
+
+ saddw v0.8h, v0.8h, v0.8b
+ saddw v31.8h, v0.8h, v0.8b
+ saddw v0.8h, v31.8h, v0.8b
+ saddw v0.8h, v0.8h, v31.8b
+ saddw v0.4s, v0.4s, v0.4h
+ saddw v31.4s, v0.4s, v0.4h
+ saddw v0.4s, v31.4s, v0.4h
+ saddw v0.4s, v0.4s, v31.4h
+ saddw v0.2d, v0.2d, v0.2s
+ saddw v31.2d, v0.2d, v0.2s
+ saddw v0.2d, v31.2d, v0.2s
+ saddw v0.2d, v0.2d, v31.2s
+
+ saddw2 v0.8h, v0.8h, v0.16b
+ saddw2 v31.8h, v0.8h, v0.16b
+ saddw2 v0.8h, v31.8h, v0.16b
+ saddw2 v0.8h, v0.8h, v31.16b
+ saddw2 v0.4s, v0.4s, v0.8h
+ saddw2 v31.4s, v0.4s, v0.8h
+ saddw2 v0.4s, v31.4s, v0.8h
+ saddw2 v0.4s, v0.4s, v31.8h
+ saddw2 v0.2d, v0.2d, v0.4s
+ saddw2 v31.2d, v0.2d, v0.4s
+ saddw2 v0.2d, v31.2d, v0.4s
+ saddw2 v0.2d, v0.2d, v31.4s
+
+ ssubl v0.8h, v0.8b, v0.8b
+ ssubl v31.8h, v0.8b, v0.8b
+ ssubl v0.8h, v31.8b, v0.8b
+ ssubl v0.8h, v0.8b, v31.8b
+ ssubl v0.4s, v0.4h, v0.4h
+ ssubl v31.4s, v0.4h, v0.4h
+ ssubl v0.4s, v31.4h, v0.4h
+ ssubl v0.4s, v0.4h, v31.4h
+ ssubl v0.2d, v0.2s, v0.2s
+ ssubl v31.2d, v0.2s, v0.2s
+ ssubl v0.2d, v31.2s, v0.2s
+ ssubl v0.2d, v0.2s, v31.2s
+
+ ssubl2 v0.8h, v0.16b, v0.16b
+ ssubl2 v31.8h, v0.16b, v0.16b
+ ssubl2 v0.8h, v31.16b, v0.16b
+ ssubl2 v0.8h, v0.16b, v31.16b
+ ssubl2 v0.4s, v0.8h, v0.8h
+ ssubl2 v31.4s, v0.8h, v0.8h
+ ssubl2 v0.4s, v31.8h, v0.8h
+ ssubl2 v0.4s, v0.8h, v31.8h
+ ssubl2 v0.2d, v0.4s, v0.4s
+ ssubl2 v31.2d, v0.4s, v0.4s
+ ssubl2 v0.2d, v31.4s, v0.4s
+ ssubl2 v0.2d, v0.4s, v31.4s
+
+ ssubw v0.8h, v0.8h, v0.8b
+ ssubw v31.8h, v0.8h, v0.8b
+ ssubw v0.8h, v31.8h, v0.8b
+ ssubw v0.8h, v0.8h, v31.8b
+ ssubw v0.4s, v0.4s, v0.4h
+ ssubw v31.4s, v0.4s, v0.4h
+ ssubw v0.4s, v31.4s, v0.4h
+ ssubw v0.4s, v0.4s, v31.4h
+ ssubw v0.2d, v0.2d, v0.2s
+ ssubw v31.2d, v0.2d, v0.2s
+ ssubw v0.2d, v31.2d, v0.2s
+ ssubw v0.2d, v0.2d, v31.2s
+
+ ssubw2 v0.8h, v0.8h, v0.16b
+ ssubw2 v31.8h, v0.8h, v0.16b
+ ssubw2 v0.8h, v31.8h, v0.16b
+ ssubw2 v0.8h, v0.8h, v31.16b
+ ssubw2 v0.4s, v0.4s, v0.8h
+ ssubw2 v31.4s, v0.4s, v0.8h
+ ssubw2 v0.4s, v31.4s, v0.8h
+ ssubw2 v0.4s, v0.4s, v31.8h
+ ssubw2 v0.2d, v0.2d, v0.4s
+ ssubw2 v31.2d, v0.2d, v0.4s
+ ssubw2 v0.2d, v31.2d, v0.4s
+ ssubw2 v0.2d, v0.2d, v31.4s
+
+ addhn v0.8b, v0.8h, v0.8h
+ addhn v31.8b, v0.8h, v0.8h
+ addhn v0.8b, v31.8h, v0.8h
+ addhn v0.8b, v0.8h, v31.8h
+ addhn v0.4h, v0.4s, v0.4s
+ addhn v31.4h, v0.4s, v0.4s
+ addhn v0.4h, v31.4s, v0.4s
+ addhn v0.4h, v0.4s, v31.4s
+ addhn v0.2s, v0.2d, v0.2d
+ addhn v31.2s, v0.2d, v0.2d
+ addhn v0.2s, v31.2d, v0.2d
+ addhn v0.2s, v0.2d, v31.2d
+
+ addhn2 v0.16b, v0.8h, v0.8h
+ addhn2 v31.16b, v0.8h, v0.8h
+ addhn2 v0.16b, v31.8h, v0.8h
+ addhn2 v0.16b, v0.8h, v31.8h
+ addhn2 v0.8h, v0.4s, v0.4s
+ addhn2 v31.8h, v0.4s, v0.4s
+ addhn2 v0.8h, v31.4s, v0.4s
+ addhn2 v0.8h, v0.4s, v31.4s
+ addhn2 v0.4s, v0.2d, v0.2d
+ addhn2 v31.4s, v0.2d, v0.2d
+ addhn2 v0.4s, v31.2d, v0.2d
+ addhn2 v0.4s, v0.2d, v31.2d
+
+ sabal v0.8h, v0.8b, v0.8b
+ sabal v31.8h, v0.8b, v0.8b
+ sabal v0.8h, v31.8b, v0.8b
+ sabal v0.8h, v0.8b, v31.8b
+ sabal v0.4s, v0.4h, v0.4h
+ sabal v31.4s, v0.4h, v0.4h
+ sabal v0.4s, v31.4h, v0.4h
+ sabal v0.4s, v0.4h, v31.4h
+ sabal v0.2d, v0.2s, v0.2s
+ sabal v31.2d, v0.2s, v0.2s
+ sabal v0.2d, v31.2s, v0.2s
+ sabal v0.2d, v0.2s, v31.2s
+
+ sabal2 v0.8h, v0.16b, v0.16b
+ sabal2 v31.8h, v0.16b, v0.16b
+ sabal2 v0.8h, v31.16b, v0.16b
+ sabal2 v0.8h, v0.16b, v31.16b
+ sabal2 v0.4s, v0.8h, v0.8h
+ sabal2 v31.4s, v0.8h, v0.8h
+ sabal2 v0.4s, v31.8h, v0.8h
+ sabal2 v0.4s, v0.8h, v31.8h
+ sabal2 v0.2d, v0.4s, v0.4s
+ sabal2 v31.2d, v0.4s, v0.4s
+ sabal2 v0.2d, v31.4s, v0.4s
+ sabal2 v0.2d, v0.4s, v31.4s
+
+ subhn v0.8b, v0.8h, v0.8h
+ subhn v31.8b, v0.8h, v0.8h
+ subhn v0.8b, v31.8h, v0.8h
+ subhn v0.8b, v0.8h, v31.8h
+ subhn v0.4h, v0.4s, v0.4s
+ subhn v31.4h, v0.4s, v0.4s
+ subhn v0.4h, v31.4s, v0.4s
+ subhn v0.4h, v0.4s, v31.4s
+ subhn v0.2s, v0.2d, v0.2d
+ subhn v31.2s, v0.2d, v0.2d
+ subhn v0.2s, v31.2d, v0.2d
+ subhn v0.2s, v0.2d, v31.2d
+
+ subhn2 v0.16b, v0.8h, v0.8h
+ subhn2 v31.16b, v0.8h, v0.8h
+ subhn2 v0.16b, v31.8h, v0.8h
+ subhn2 v0.16b, v0.8h, v31.8h
+ subhn2 v0.8h, v0.4s, v0.4s
+ subhn2 v31.8h, v0.4s, v0.4s
+ subhn2 v0.8h, v31.4s, v0.4s
+ subhn2 v0.8h, v0.4s, v31.4s
+ subhn2 v0.4s, v0.2d, v0.2d
+ subhn2 v31.4s, v0.2d, v0.2d
+ subhn2 v0.4s, v31.2d, v0.2d
+ subhn2 v0.4s, v0.2d, v31.2d
+
+ sabdl v0.8h, v0.8b, v0.8b
+ sabdl v31.8h, v0.8b, v0.8b
+ sabdl v0.8h, v31.8b, v0.8b
+ sabdl v0.8h, v0.8b, v31.8b
+ sabdl v0.4s, v0.4h, v0.4h
+ sabdl v31.4s, v0.4h, v0.4h
+ sabdl v0.4s, v31.4h, v0.4h
+ sabdl v0.4s, v0.4h, v31.4h
+ sabdl v0.2d, v0.2s, v0.2s
+ sabdl v31.2d, v0.2s, v0.2s
+ sabdl v0.2d, v31.2s, v0.2s
+ sabdl v0.2d, v0.2s, v31.2s
+
+ sabdl2 v0.8h, v0.16b, v0.16b
+ sabdl2 v31.8h, v0.16b, v0.16b
+ sabdl2 v0.8h, v31.16b, v0.16b
+ sabdl2 v0.8h, v0.16b, v31.16b
+ sabdl2 v0.4s, v0.8h, v0.8h
+ sabdl2 v31.4s, v0.8h, v0.8h
+ sabdl2 v0.4s, v31.8h, v0.8h
+ sabdl2 v0.4s, v0.8h, v31.8h
+ sabdl2 v0.2d, v0.4s, v0.4s
+ sabdl2 v31.2d, v0.4s, v0.4s
+ sabdl2 v0.2d, v31.4s, v0.4s
+ sabdl2 v0.2d, v0.4s, v31.4s
+
+ smlal v0.8h, v0.8b, v0.8b
+ smlal v31.8h, v0.8b, v0.8b
+ smlal v0.8h, v31.8b, v0.8b
+ smlal v0.8h, v0.8b, v31.8b
+ smlal v0.4s, v0.4h, v0.4h
+ smlal v31.4s, v0.4h, v0.4h
+ smlal v0.4s, v31.4h, v0.4h
+ smlal v0.4s, v0.4h, v31.4h
+ smlal v0.2d, v0.2s, v0.2s
+ smlal v31.2d, v0.2s, v0.2s
+ smlal v0.2d, v31.2s, v0.2s
+ smlal v0.2d, v0.2s, v31.2s
+
+ smlal2 v0.8h, v0.16b, v0.16b
+ smlal2 v31.8h, v0.16b, v0.16b
+ smlal2 v0.8h, v31.16b, v0.16b
+ smlal2 v0.8h, v0.16b, v31.16b
+ smlal2 v0.4s, v0.8h, v0.8h
+ smlal2 v31.4s, v0.8h, v0.8h
+ smlal2 v0.4s, v31.8h, v0.8h
+ smlal2 v0.4s, v0.8h, v31.8h
+ smlal2 v0.2d, v0.4s, v0.4s
+ smlal2 v31.2d, v0.4s, v0.4s
+ smlal2 v0.2d, v31.4s, v0.4s
+ smlal2 v0.2d, v0.4s, v31.4s
+
+ sqdmlal v0.4s, v0.4h, v0.4h
+ sqdmlal v31.4s, v0.4h, v0.4h
+ sqdmlal v0.4s, v31.4h, v0.4h
+ sqdmlal v0.4s, v0.4h, v31.4h
+ sqdmlal v0.2d, v0.2s, v0.2s
+ sqdmlal v31.2d, v0.2s, v0.2s
+ sqdmlal v0.2d, v31.2s, v0.2s
+ sqdmlal v0.2d, v0.2s, v31.2s
+
+ sqdmlal2 v0.4s, v0.8h, v0.8h
+ sqdmlal2 v31.4s, v0.8h, v0.8h
+ sqdmlal2 v0.4s, v31.8h, v0.8h
+ sqdmlal2 v0.4s, v0.8h, v31.8h
+ sqdmlal2 v0.2d, v0.4s, v0.4s
+ sqdmlal2 v31.2d, v0.4s, v0.4s
+ sqdmlal2 v0.2d, v31.4s, v0.4s
+ sqdmlal2 v0.2d, v0.4s, v31.4s
+
+ smlsl v0.8h, v0.8b, v0.8b
+ smlsl v31.8h, v0.8b, v0.8b
+ smlsl v0.8h, v31.8b, v0.8b
+ smlsl v0.8h, v0.8b, v31.8b
+ smlsl v0.4s, v0.4h, v0.4h
+ smlsl v31.4s, v0.4h, v0.4h
+ smlsl v0.4s, v31.4h, v0.4h
+ smlsl v0.4s, v0.4h, v31.4h
+ smlsl v0.2d, v0.2s, v0.2s
+ smlsl v31.2d, v0.2s, v0.2s
+ smlsl v0.2d, v31.2s, v0.2s
+ smlsl v0.2d, v0.2s, v31.2s
+
+ smlsl2 v0.8h, v0.16b, v0.16b
+ smlsl2 v31.8h, v0.16b, v0.16b
+ smlsl2 v0.8h, v31.16b, v0.16b
+ smlsl2 v0.8h, v0.16b, v31.16b
+ smlsl2 v0.4s, v0.8h, v0.8h
+ smlsl2 v31.4s, v0.8h, v0.8h
+ smlsl2 v0.4s, v31.8h, v0.8h
+ smlsl2 v0.4s, v0.8h, v31.8h
+ smlsl2 v0.2d, v0.4s, v0.4s
+ smlsl2 v31.2d, v0.4s, v0.4s
+ smlsl2 v0.2d, v31.4s, v0.4s
+ smlsl2 v0.2d, v0.4s, v31.4s
+
+ sqdmlsl v0.4s, v0.4h, v0.4h
+ sqdmlsl v31.4s, v0.4h, v0.4h
+ sqdmlsl v0.4s, v31.4h, v0.4h
+ sqdmlsl v0.4s, v0.4h, v31.4h
+ sqdmlsl v0.2d, v0.2s, v0.2s
+ sqdmlsl v31.2d, v0.2s, v0.2s
+ sqdmlsl v0.2d, v31.2s, v0.2s
+ sqdmlsl v0.2d, v0.2s, v31.2s
+
+ sqdmlsl2 v0.4s, v0.8h, v0.8h
+ sqdmlsl2 v31.4s, v0.8h, v0.8h
+ sqdmlsl2 v0.4s, v31.8h, v0.8h
+ sqdmlsl2 v0.4s, v0.8h, v31.8h
+ sqdmlsl2 v0.2d, v0.4s, v0.4s
+ sqdmlsl2 v31.2d, v0.4s, v0.4s
+ sqdmlsl2 v0.2d, v31.4s, v0.4s
+ sqdmlsl2 v0.2d, v0.4s, v31.4s
+
+ smull v0.8h, v0.8b, v0.8b
+ smull v31.8h, v0.8b, v0.8b
+ smull v0.8h, v31.8b, v0.8b
+ smull v0.8h, v0.8b, v31.8b
+ smull v0.4s, v0.4h, v0.4h
+ smull v31.4s, v0.4h, v0.4h
+ smull v0.4s, v31.4h, v0.4h
+ smull v0.4s, v0.4h, v31.4h
+ smull v0.2d, v0.2s, v0.2s
+ smull v31.2d, v0.2s, v0.2s
+ smull v0.2d, v31.2s, v0.2s
+ smull v0.2d, v0.2s, v31.2s
+
+ smull2 v0.8h, v0.16b, v0.16b
+ smull2 v31.8h, v0.16b, v0.16b
+ smull2 v0.8h, v31.16b, v0.16b
+ smull2 v0.8h, v0.16b, v31.16b
+ smull2 v0.4s, v0.8h, v0.8h
+ smull2 v31.4s, v0.8h, v0.8h
+ smull2 v0.4s, v31.8h, v0.8h
+ smull2 v0.4s, v0.8h, v31.8h
+ smull2 v0.2d, v0.4s, v0.4s
+ smull2 v31.2d, v0.4s, v0.4s
+ smull2 v0.2d, v31.4s, v0.4s
+ smull2 v0.2d, v0.4s, v31.4s
+
+ sqdmull v0.4s, v0.4h, v0.4h
+ sqdmull v31.4s, v0.4h, v0.4h
+ sqdmull v0.4s, v31.4h, v0.4h
+ sqdmull v0.4s, v0.4h, v31.4h
+ sqdmull v0.2d, v0.2s, v0.2s
+ sqdmull v31.2d, v0.2s, v0.2s
+ sqdmull v0.2d, v31.2s, v0.2s
+ sqdmull v0.2d, v0.2s, v31.2s
+
+ sqdmull2 v0.4s, v0.8h, v0.8h
+ sqdmull2 v31.4s, v0.8h, v0.8h
+ sqdmull2 v0.4s, v31.8h, v0.8h
+ sqdmull2 v0.4s, v0.8h, v31.8h
+ sqdmull2 v0.2d, v0.4s, v0.4s
+ sqdmull2 v31.2d, v0.4s, v0.4s
+ sqdmull2 v0.2d, v31.4s, v0.4s
+ sqdmull2 v0.2d, v0.4s, v31.4s
+
+ uaddl v0.8h, v0.8b, v0.8b
+ uaddl v31.8h, v0.8b, v0.8b
+ uaddl v0.8h, v31.8b, v0.8b
+ uaddl v0.8h, v0.8b, v31.8b
+ uaddl v0.4s, v0.4h, v0.4h
+ uaddl v31.4s, v0.4h, v0.4h
+ uaddl v0.4s, v31.4h, v0.4h
+ uaddl v0.4s, v0.4h, v31.4h
+ uaddl v0.2d, v0.2s, v0.2s
+ uaddl v31.2d, v0.2s, v0.2s
+ uaddl v0.2d, v31.2s, v0.2s
+ uaddl v0.2d, v0.2s, v31.2s
+
+ uaddl2 v0.8h, v0.16b, v0.16b
+ uaddl2 v31.8h, v0.16b, v0.16b
+ uaddl2 v0.8h, v31.16b, v0.16b
+ uaddl2 v0.8h, v0.16b, v31.16b
+ uaddl2 v0.4s, v0.8h, v0.8h
+ uaddl2 v31.4s, v0.8h, v0.8h
+ uaddl2 v0.4s, v31.8h, v0.8h
+ uaddl2 v0.4s, v0.8h, v31.8h
+ uaddl2 v0.2d, v0.4s, v0.4s
+ uaddl2 v31.2d, v0.4s, v0.4s
+ uaddl2 v0.2d, v31.4s, v0.4s
+ uaddl2 v0.2d, v0.4s, v31.4s
+
+ uaddw v0.8h, v0.8h, v0.8b
+ uaddw v31.8h, v0.8h, v0.8b
+ uaddw v0.8h, v31.8h, v0.8b
+ uaddw v0.8h, v0.8h, v31.8b
+ uaddw v0.4s, v0.4s, v0.4h
+ uaddw v31.4s, v0.4s, v0.4h
+ uaddw v0.4s, v31.4s, v0.4h
+ uaddw v0.4s, v0.4s, v31.4h
+ uaddw v0.2d, v0.2d, v0.2s
+ uaddw v31.2d, v0.2d, v0.2s
+ uaddw v0.2d, v31.2d, v0.2s
+ uaddw v0.2d, v0.2d, v31.2s
+
+ uaddw2 v0.8h, v0.8h, v0.16b
+ uaddw2 v31.8h, v0.8h, v0.16b
+ uaddw2 v0.8h, v31.8h, v0.16b
+ uaddw2 v0.8h, v0.8h, v31.16b
+ uaddw2 v0.4s, v0.4s, v0.8h
+ uaddw2 v31.4s, v0.4s, v0.8h
+ uaddw2 v0.4s, v31.4s, v0.8h
+ uaddw2 v0.4s, v0.4s, v31.8h
+ uaddw2 v0.2d, v0.2d, v0.4s
+ uaddw2 v31.2d, v0.2d, v0.4s
+ uaddw2 v0.2d, v31.2d, v0.4s
+ uaddw2 v0.2d, v0.2d, v31.4s
+
+ usubl v0.8h, v0.8b, v0.8b
+ usubl v31.8h, v0.8b, v0.8b
+ usubl v0.8h, v31.8b, v0.8b
+ usubl v0.8h, v0.8b, v31.8b
+ usubl v0.4s, v0.4h, v0.4h
+ usubl v31.4s, v0.4h, v0.4h
+ usubl v0.4s, v31.4h, v0.4h
+ usubl v0.4s, v0.4h, v31.4h
+ usubl v0.2d, v0.2s, v0.2s
+ usubl v31.2d, v0.2s, v0.2s
+ usubl v0.2d, v31.2s, v0.2s
+ usubl v0.2d, v0.2s, v31.2s
+
+ usubl2 v0.8h, v0.16b, v0.16b
+ usubl2 v31.8h, v0.16b, v0.16b
+ usubl2 v0.8h, v31.16b, v0.16b
+ usubl2 v0.8h, v0.16b, v31.16b
+ usubl2 v0.4s, v0.8h, v0.8h
+ usubl2 v31.4s, v0.8h, v0.8h
+ usubl2 v0.4s, v31.8h, v0.8h
+ usubl2 v0.4s, v0.8h, v31.8h
+ usubl2 v0.2d, v0.4s, v0.4s
+ usubl2 v31.2d, v0.4s, v0.4s
+ usubl2 v0.2d, v31.4s, v0.4s
+ usubl2 v0.2d, v0.4s, v31.4s
+
+ usubw v0.8h, v0.8h, v0.8b
+ usubw v31.8h, v0.8h, v0.8b
+ usubw v0.8h, v31.8h, v0.8b
+ usubw v0.8h, v0.8h, v31.8b
+ usubw v0.4s, v0.4s, v0.4h
+ usubw v31.4s, v0.4s, v0.4h
+ usubw v0.4s, v31.4s, v0.4h
+ usubw v0.4s, v0.4s, v31.4h
+ usubw v0.2d, v0.2d, v0.2s
+ usubw v31.2d, v0.2d, v0.2s
+ usubw v0.2d, v31.2d, v0.2s
+ usubw v0.2d, v0.2d, v31.2s
+
+ usubw2 v0.8h, v0.8h, v0.16b
+ usubw2 v31.8h, v0.8h, v0.16b
+ usubw2 v0.8h, v31.8h, v0.16b
+ usubw2 v0.8h, v0.8h, v31.16b
+ usubw2 v0.4s, v0.4s, v0.8h
+ usubw2 v31.4s, v0.4s, v0.8h
+ usubw2 v0.4s, v31.4s, v0.8h
+ usubw2 v0.4s, v0.4s, v31.8h
+ usubw2 v0.2d, v0.2d, v0.4s
+ usubw2 v31.2d, v0.2d, v0.4s
+ usubw2 v0.2d, v31.2d, v0.4s
+ usubw2 v0.2d, v0.2d, v31.4s
+
+ raddhn v0.8b, v0.8h, v0.8h
+ raddhn v31.8b, v0.8h, v0.8h
+ raddhn v0.8b, v31.8h, v0.8h
+ raddhn v0.8b, v0.8h, v31.8h
+ raddhn v0.4h, v0.4s, v0.4s
+ raddhn v31.4h, v0.4s, v0.4s
+ raddhn v0.4h, v31.4s, v0.4s
+ raddhn v0.4h, v0.4s, v31.4s
+ raddhn v0.2s, v0.2d, v0.2d
+ raddhn v31.2s, v0.2d, v0.2d
+ raddhn v0.2s, v31.2d, v0.2d
+ raddhn v0.2s, v0.2d, v31.2d
+
+ raddhn2 v0.16b, v0.8h, v0.8h
+ raddhn2 v31.16b, v0.8h, v0.8h
+ raddhn2 v0.16b, v31.8h, v0.8h
+ raddhn2 v0.16b, v0.8h, v31.8h
+ raddhn2 v0.8h, v0.4s, v0.4s
+ raddhn2 v31.8h, v0.4s, v0.4s
+ raddhn2 v0.8h, v31.4s, v0.4s
+ raddhn2 v0.8h, v0.4s, v31.4s
+ raddhn2 v0.4s, v0.2d, v0.2d
+ raddhn2 v31.4s, v0.2d, v0.2d
+ raddhn2 v0.4s, v31.2d, v0.2d
+ raddhn2 v0.4s, v0.2d, v31.2d
+
+ uabal v0.8h, v0.8b, v0.8b
+ uabal v31.8h, v0.8b, v0.8b
+ uabal v0.8h, v31.8b, v0.8b
+ uabal v0.8h, v0.8b, v31.8b
+ uabal v0.4s, v0.4h, v0.4h
+ uabal v31.4s, v0.4h, v0.4h
+ uabal v0.4s, v31.4h, v0.4h
+ uabal v0.4s, v0.4h, v31.4h
+ uabal v0.2d, v0.2s, v0.2s
+ uabal v31.2d, v0.2s, v0.2s
+ uabal v0.2d, v31.2s, v0.2s
+ uabal v0.2d, v0.2s, v31.2s
+
+ uabal2 v0.8h, v0.16b, v0.16b
+ uabal2 v31.8h, v0.16b, v0.16b
+ uabal2 v0.8h, v31.16b, v0.16b
+ uabal2 v0.8h, v0.16b, v31.16b
+ uabal2 v0.4s, v0.8h, v0.8h
+ uabal2 v31.4s, v0.8h, v0.8h
+ uabal2 v0.4s, v31.8h, v0.8h
+ uabal2 v0.4s, v0.8h, v31.8h
+ uabal2 v0.2d, v0.4s, v0.4s
+ uabal2 v31.2d, v0.4s, v0.4s
+ uabal2 v0.2d, v31.4s, v0.4s
+ uabal2 v0.2d, v0.4s, v31.4s
+
+ rsubhn v0.8b, v0.8h, v0.8h
+ rsubhn v31.8b, v0.8h, v0.8h
+ rsubhn v0.8b, v31.8h, v0.8h
+ rsubhn v0.8b, v0.8h, v31.8h
+ rsubhn v0.4h, v0.4s, v0.4s
+ rsubhn v31.4h, v0.4s, v0.4s
+ rsubhn v0.4h, v31.4s, v0.4s
+ rsubhn v0.4h, v0.4s, v31.4s
+ rsubhn v0.2s, v0.2d, v0.2d
+ rsubhn v31.2s, v0.2d, v0.2d
+ rsubhn v0.2s, v31.2d, v0.2d
+ rsubhn v0.2s, v0.2d, v31.2d
+
+ rsubhn2 v0.16b, v0.8h, v0.8h
+ rsubhn2 v31.16b, v0.8h, v0.8h
+ rsubhn2 v0.16b, v31.8h, v0.8h
+ rsubhn2 v0.16b, v0.8h, v31.8h
+ rsubhn2 v0.8h, v0.4s, v0.4s
+ rsubhn2 v31.8h, v0.4s, v0.4s
+ rsubhn2 v0.8h, v31.4s, v0.4s
+ rsubhn2 v0.8h, v0.4s, v31.4s
+ rsubhn2 v0.4s, v0.2d, v0.2d
+ rsubhn2 v31.4s, v0.2d, v0.2d
+ rsubhn2 v0.4s, v31.2d, v0.2d
+ rsubhn2 v0.4s, v0.2d, v31.2d
+
+ uabdl v0.8h, v0.8b, v0.8b
+ uabdl v31.8h, v0.8b, v0.8b
+ uabdl v0.8h, v31.8b, v0.8b
+ uabdl v0.8h, v0.8b, v31.8b
+ uabdl v0.4s, v0.4h, v0.4h
+ uabdl v31.4s, v0.4h, v0.4h
+ uabdl v0.4s, v31.4h, v0.4h
+ uabdl v0.4s, v0.4h, v31.4h
+ uabdl v0.2d, v0.2s, v0.2s
+ uabdl v31.2d, v0.2s, v0.2s
+ uabdl v0.2d, v31.2s, v0.2s
+ uabdl v0.2d, v0.2s, v31.2s
+
+ uabdl2 v0.8h, v0.16b, v0.16b
+ uabdl2 v31.8h, v0.16b, v0.16b
+ uabdl2 v0.8h, v31.16b, v0.16b
+ uabdl2 v0.8h, v0.16b, v31.16b
+ uabdl2 v0.4s, v0.8h, v0.8h
+ uabdl2 v31.4s, v0.8h, v0.8h
+ uabdl2 v0.4s, v31.8h, v0.8h
+ uabdl2 v0.4s, v0.8h, v31.8h
+ uabdl2 v0.2d, v0.4s, v0.4s
+ uabdl2 v31.2d, v0.4s, v0.4s
+ uabdl2 v0.2d, v31.4s, v0.4s
+ uabdl2 v0.2d, v0.4s, v31.4s
+
+ umlal v0.8h, v0.8b, v0.8b
+ umlal v31.8h, v0.8b, v0.8b
+ umlal v0.8h, v31.8b, v0.8b
+ umlal v0.8h, v0.8b, v31.8b
+ umlal v0.4s, v0.4h, v0.4h
+ umlal v31.4s, v0.4h, v0.4h
+ umlal v0.4s, v31.4h, v0.4h
+ umlal v0.4s, v0.4h, v31.4h
+ umlal v0.2d, v0.2s, v0.2s
+ umlal v31.2d, v0.2s, v0.2s
+ umlal v0.2d, v31.2s, v0.2s
+ umlal v0.2d, v0.2s, v31.2s
+
+ umlal2 v0.8h, v0.16b, v0.16b
+ umlal2 v31.8h, v0.16b, v0.16b
+ umlal2 v0.8h, v31.16b, v0.16b
+ umlal2 v0.8h, v0.16b, v31.16b
+ umlal2 v0.4s, v0.8h, v0.8h
+ umlal2 v31.4s, v0.8h, v0.8h
+ umlal2 v0.4s, v31.8h, v0.8h
+ umlal2 v0.4s, v0.8h, v31.8h
+ umlal2 v0.2d, v0.4s, v0.4s
+ umlal2 v31.2d, v0.4s, v0.4s
+ umlal2 v0.2d, v31.4s, v0.4s
+ umlal2 v0.2d, v0.4s, v31.4s
+
+ umlsl v0.8h, v0.8b, v0.8b
+ umlsl v31.8h, v0.8b, v0.8b
+ umlsl v0.8h, v31.8b, v0.8b
+ umlsl v0.8h, v0.8b, v31.8b
+ umlsl v0.4s, v0.4h, v0.4h
+ umlsl v31.4s, v0.4h, v0.4h
+ umlsl v0.4s, v31.4h, v0.4h
+ umlsl v0.4s, v0.4h, v31.4h
+ umlsl v0.2d, v0.2s, v0.2s
+ umlsl v31.2d, v0.2s, v0.2s
+ umlsl v0.2d, v31.2s, v0.2s
+ umlsl v0.2d, v0.2s, v31.2s
+
+ umlsl2 v0.8h, v0.16b, v0.16b
+ umlsl2 v31.8h, v0.16b, v0.16b
+ umlsl2 v0.8h, v31.16b, v0.16b
+ umlsl2 v0.8h, v0.16b, v31.16b
+ umlsl2 v0.4s, v0.8h, v0.8h
+ umlsl2 v31.4s, v0.8h, v0.8h
+ umlsl2 v0.4s, v31.8h, v0.8h
+ umlsl2 v0.4s, v0.8h, v31.8h
+ umlsl2 v0.2d, v0.4s, v0.4s
+ umlsl2 v31.2d, v0.4s, v0.4s
+ umlsl2 v0.2d, v31.4s, v0.4s
+ umlsl2 v0.2d, v0.4s, v31.4s
+
+ umull v0.8h, v0.8b, v0.8b
+ umull v31.8h, v0.8b, v0.8b
+ umull v0.8h, v31.8b, v0.8b
+ umull v0.8h, v0.8b, v31.8b
+ umull v0.4s, v0.4h, v0.4h
+ umull v31.4s, v0.4h, v0.4h
+ umull v0.4s, v31.4h, v0.4h
+ umull v0.4s, v0.4h, v31.4h
+ umull v0.2d, v0.2s, v0.2s
+ umull v31.2d, v0.2s, v0.2s
+ umull v0.2d, v31.2s, v0.2s
+ umull v0.2d, v0.2s, v31.2s
+
+ umull2 v0.8h, v0.16b, v0.16b
+ umull2 v31.8h, v0.16b, v0.16b
+ umull2 v0.8h, v31.16b, v0.16b
+ umull2 v0.8h, v0.16b, v31.16b
+ umull2 v0.4s, v0.8h, v0.8h
+ umull2 v31.4s, v0.8h, v0.8h
+ umull2 v0.4s, v31.8h, v0.8h
+ umull2 v0.4s, v0.8h, v31.8h
+ umull2 v0.2d, v0.4s, v0.4s
+ umull2 v31.2d, v0.4s, v0.4s
+ umull2 v0.2d, v31.4s, v0.4s
+ umull2 v0.2d, v0.4s, v31.4s
diff --git a/gas/testsuite/gas/aarch64/branch-cond-pseudos.d b/gas/testsuite/gas/aarch64/branch-cond-pseudos.d
new file mode 100644
index 0000000..92a7592
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/branch-cond-pseudos.d
@@ -0,0 +1,41 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 54000000 b.eq 0 \<\.text\> // b\.none
+ *[0-9a-f]+: 54ffffe0 b.eq 0 \<\.text\> // b\.none
+ *[0-9a-f]+: 54000001 b.ne 8 \<\.text\+0x8\> // b\.any
+ *[0-9a-f]+: 54ffffe1 b.ne 8 \<\.text\+0x8\> // b\.any
+ *[0-9a-f]+: 54000002 b.cs 10 \<\.text\+0x10\> // b\.hs, b\.nlast
+ *[0-9a-f]+: 54ffffe2 b.cs 10 \<\.text\+0x10\> // b\.hs, b\.nlast
+ *[0-9a-f]+: 54000002 b.cs 18 \<\.text\+0x18\> // b\.hs, b\.nlast
+ *[0-9a-f]+: 54ffffe2 b.cs 18 \<\.text\+0x18\> // b\.hs, b\.nlast
+ *[0-9a-f]+: 54000003 b.cc 20 \<\.text\+0x20\> // b\.lo, b\.ul, b\.last
+ *[0-9a-f]+: 54ffffe3 b.cc 20 \<\.text\+0x20\> // b\.lo, b\.ul, b\.last
+ *[0-9a-f]+: 54000003 b.cc 28 \<\.text\+0x28\> // b\.lo, b\.ul, b\.last
+ *[0-9a-f]+: 54ffffe3 b.cc 28 \<\.text\+0x28\> // b\.lo, b\.ul, b\.last
+ *[0-9a-f]+: 54000004 b.mi 30 \<\.text\+0x30\> // b\.first
+ *[0-9a-f]+: 54ffffe4 b.mi 30 \<\.text\+0x30\> // b\.first
+ *[0-9a-f]+: 54000005 b.pl 38 \<\.text\+0x38\> // b\.nfrst
+ *[0-9a-f]+: 54ffffe5 b.pl 38 \<\.text\+0x38\> // b\.nfrst
+ *[0-9a-f]+: 54000006 b.vs 40 \<\.text\+0x40\>
+ *[0-9a-f]+: 54ffffe6 b.vs 40 \<\.text\+0x40\>
+ *[0-9a-f]+: 54000007 b.vc 48 \<\.text\+0x48\>
+ *[0-9a-f]+: 54ffffe7 b.vc 48 \<\.text\+0x48\>
+ *[0-9a-f]+: 54000008 b.hi 50 \<\.text\+0x50\> // b\.pmore
+ *[0-9a-f]+: 54ffffe8 b.hi 50 \<\.text\+0x50\> // b\.pmore
+ *[0-9a-f]+: 54000009 b.ls 58 \<\.text\+0x58\> // b\.plast
+ *[0-9a-f]+: 54ffffe9 b.ls 58 \<\.text\+0x58\> // b\.plast
+ *[0-9a-f]+: 5400000a b.ge 60 \<\.text\+0x60\> // b\.tcont
+ *[0-9a-f]+: 54ffffea b.ge 60 \<\.text\+0x60\> // b\.tcont
+ *[0-9a-f]+: 5400000b b.lt 68 \<\.text\+0x68\> // b\.tstop
+ *[0-9a-f]+: 54ffffeb b.lt 68 \<\.text\+0x68\> // b\.tstop
+ *[0-9a-f]+: 5400000c b.gt 70 \<\.text\+0x70\>
+ *[0-9a-f]+: 54ffffec b.gt 70 \<\.text\+0x70\>
+ *[0-9a-f]+: 5400000d b.le 78 \<\.text\+0x78\>
+ *[0-9a-f]+: 54ffffed b.le 78 \<\.text\+0x78\>
diff --git a/gas/testsuite/gas/aarch64/branch-cond-pseudos.s b/gas/testsuite/gas/aarch64/branch-cond-pseudos.s
new file mode 100644
index 0000000..381ce8e
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/branch-cond-pseudos.s
@@ -0,0 +1,32 @@
+1: beq 1b
+ beq 1b
+2: bne 2b
+ bne 2b
+3: bcs 3b
+ bcs 3b
+4: bhs 4b
+ bhs 4b
+5: bcc 5b
+ bcc 5b
+6: blo 6b
+ blo 6b
+7: bmi 7b
+ bmi 7b
+8: bpl 8b
+ bpl 8b
+9: bvs 9b
+ bvs 9b
+10: bvc 10b
+ bvc 10b
+11: bhi 11b
+ bhi 11b
+12: bls 12b
+ bls 12b
+13: bge 13b
+ bge 13b
+14: blt 14b
+ blt 14b
+15: bgt 15b
+ bgt 15b
+16: ble 16b
+ ble 16b
diff --git a/gas/testsuite/gas/aarch64/cmpbr-bad.d b/gas/testsuite/gas/aarch64/cmpbr-bad.d
new file mode 100644
index 0000000..6487979
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/cmpbr-bad.d
@@ -0,0 +1,4 @@
+#name: Test of invalid cmpbr operands
+#source: cmpbr-bad.s
+#as: -march=armv8-a+cmpbr
+#error_output: cmpbr-bad.l
diff --git a/gas/testsuite/gas/aarch64/cmpbr-bad.l b/gas/testsuite/gas/aarch64/cmpbr-bad.l
new file mode 100644
index 0000000..f705cfd
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/cmpbr-bad.l
@@ -0,0 +1,13 @@
+.[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: operand mismatch -- `cbgt w0,x1,a'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: cbgt w0, w1, #0x0
+[^ :]+:[0-9]+: Info: other valid variant\(s\):
+[^ :]+:[0-9]+: Info: cbgt x0, x1, #0x0
+[^ :]+:[0-9]+: Error: immediate value out of range 0 to 63 at operand 2 -- `cbgt w0,#64,a'
+[^ :]+:[0-9]+: Error: operand mismatch -- `cbbgt x0,x1,a'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: cbbgt w0, w1, #0x0
+[^ :]+:[0-9]+: Error: operand mismatch -- `cbhgt x0,x1,a'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: cbhgt w0, w1, #0x0
diff --git a/gas/testsuite/gas/aarch64/cmpbr-bad.s b/gas/testsuite/gas/aarch64/cmpbr-bad.s
new file mode 100644
index 0000000..8fb1e61
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/cmpbr-bad.s
@@ -0,0 +1,5 @@
+a:
+ cbgt w0, x1, a
+ cbgt w0, #64, a
+ cbbgt x0, x1, a
+ cbhgt x0, x1, a
diff --git a/gas/testsuite/gas/aarch64/cmpbr-far.d b/gas/testsuite/gas/aarch64/cmpbr-far.d
new file mode 100644
index 0000000..a027cdf
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/cmpbr-far.d
@@ -0,0 +1,4 @@
+#name: CMPBR instructions that branch too far
+#source: cmpbr-far.s
+#as: -march=armv8-a+cmpbr
+#error_output: cmpbr-far.l
diff --git a/gas/testsuite/gas/aarch64/cmpbr-far.l b/gas/testsuite/gas/aarch64/cmpbr-far.l
new file mode 100644
index 0000000..6432035
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/cmpbr-far.l
@@ -0,0 +1,3 @@
+.[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: conditional branch out of range
+[^ :]+:[0-9]+: Error: conditional branch out of range
diff --git a/gas/testsuite/gas/aarch64/cmpbr-far.s b/gas/testsuite/gas/aarch64/cmpbr-far.s
new file mode 100644
index 0000000..927d422
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/cmpbr-far.s
@@ -0,0 +1,13 @@
+a:
+ .rept 257
+ nop
+ .endr
+ cbgt w0, w1, a
+
+ cbgt w0, w1, b
+ .rept 255
+ nop
+ .endr
+
+b:
+ nop
diff --git a/gas/testsuite/gas/aarch64/cmpbr-pseudo-bad.d b/gas/testsuite/gas/aarch64/cmpbr-pseudo-bad.d
new file mode 100644
index 0000000..444b554
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/cmpbr-pseudo-bad.d
@@ -0,0 +1,4 @@
+#name: Test of out-of-range cmpbr operands
+#source: cmpbr-pseudo-bad.s
+#as: -march=armv8-a+cmpbr
+#error_output: cmpbr-pseudo-bad.l
diff --git a/gas/testsuite/gas/aarch64/cmpbr-pseudo-bad.l b/gas/testsuite/gas/aarch64/cmpbr-pseudo-bad.l
new file mode 100644
index 0000000..3839baf
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/cmpbr-pseudo-bad.l
@@ -0,0 +1,3 @@
+.[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: immediate value out of range 1 to 64 at operand 2 -- `cbge w0,#0,a'
+[^ :]+:[0-9]+: Error: immediate value out of range -1 to 62 at operand 2 -- `cble w0,#63,a'
diff --git a/gas/testsuite/gas/aarch64/cmpbr-pseudo-bad.s b/gas/testsuite/gas/aarch64/cmpbr-pseudo-bad.s
new file mode 100644
index 0000000..1fd0c3a
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/cmpbr-pseudo-bad.s
@@ -0,0 +1,3 @@
+a:
+ cbge w0, #0, a
+ cble w0, #63, a
diff --git a/gas/testsuite/gas/aarch64/cmpbr.d b/gas/testsuite/gas/aarch64/cmpbr.d
new file mode 100644
index 0000000..457fdd7
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/cmpbr.d
@@ -0,0 +1,967 @@
+#name: Test for FEAT_CMPBR
+#as: -march=armv8-a+cmpbr
+#objdump: -dr
+
+.*: file format .*
+
+Disassembly of section .text:
+
+.* <cbgt_0>:
+.*: 75000000 cbgt w0, #0, 0 <cbgt_0>
+.*: 75003fe0 cbgt w0, #0, 0 <cbgt_0>
+
+.* <cbgt_1>:
+.*: 751f8000 cbgt w0, #63, 8 <cbgt_1>
+.*: 751fbfe0 cbgt w0, #63, 8 <cbgt_1>
+
+.* <cbgt_2>:
+.*: 7500001f cbgt wzr, #0, 10 <cbgt_2>
+.*: 75003fff cbgt wzr, #0, 10 <cbgt_2>
+
+.* <cbgt_3>:
+.*: 751f801f cbgt wzr, #63, 18 <cbgt_3>
+.*: 751fbfff cbgt wzr, #63, 18 <cbgt_3>
+
+.* <cbgt_4>:
+.*: f5000000 cbgt x0, #0, 20 <cbgt_4>
+.*: f5003fe0 cbgt x0, #0, 20 <cbgt_4>
+
+.* <cbgt_5>:
+.*: f51f8000 cbgt x0, #63, 28 <cbgt_5>
+.*: f51fbfe0 cbgt x0, #63, 28 <cbgt_5>
+
+.* <cbgt_6>:
+.*: f500001f cbgt xzr, #0, 30 <cbgt_6>
+.*: f5003fff cbgt xzr, #0, 30 <cbgt_6>
+
+.* <cbgt_7>:
+.*: f51f801f cbgt xzr, #63, 38 <cbgt_7>
+.*: f51fbfff cbgt xzr, #63, 38 <cbgt_7>
+
+.* <cblt_0>:
+.*: 75200000 cblt w0, #0, 40 <cblt_0>
+.*: 75203fe0 cblt w0, #0, 40 <cblt_0>
+
+.* <cblt_1>:
+.*: 753f8000 cblt w0, #63, 48 <cblt_1>
+.*: 753fbfe0 cblt w0, #63, 48 <cblt_1>
+
+.* <cblt_2>:
+.*: 7520001f cblt wzr, #0, 50 <cblt_2>
+.*: 75203fff cblt wzr, #0, 50 <cblt_2>
+
+.* <cblt_3>:
+.*: 753f801f cblt wzr, #63, 58 <cblt_3>
+.*: 753fbfff cblt wzr, #63, 58 <cblt_3>
+
+.* <cblt_4>:
+.*: f5200000 cblt x0, #0, 60 <cblt_4>
+.*: f5203fe0 cblt x0, #0, 60 <cblt_4>
+
+.* <cblt_5>:
+.*: f53f8000 cblt x0, #63, 68 <cblt_5>
+.*: f53fbfe0 cblt x0, #63, 68 <cblt_5>
+
+.* <cblt_6>:
+.*: f520001f cblt xzr, #0, 70 <cblt_6>
+.*: f5203fff cblt xzr, #0, 70 <cblt_6>
+
+.* <cblt_7>:
+.*: f53f801f cblt xzr, #63, 78 <cblt_7>
+.*: f53fbfff cblt xzr, #63, 78 <cblt_7>
+
+.* <cbhi_0>:
+.*: 75400000 cbhi w0, #0, 80 <cbhi_0>
+.*: 75403fe0 cbhi w0, #0, 80 <cbhi_0>
+
+.* <cbhi_1>:
+.*: 755f8000 cbhi w0, #63, 88 <cbhi_1>
+.*: 755fbfe0 cbhi w0, #63, 88 <cbhi_1>
+
+.* <cbhi_2>:
+.*: 7540001f cbhi wzr, #0, 90 <cbhi_2>
+.*: 75403fff cbhi wzr, #0, 90 <cbhi_2>
+
+.* <cbhi_3>:
+.*: 755f801f cbhi wzr, #63, 98 <cbhi_3>
+.*: 755fbfff cbhi wzr, #63, 98 <cbhi_3>
+
+.* <cbhi_4>:
+.*: f5400000 cbhi x0, #0, a0 <cbhi_4>
+.*: f5403fe0 cbhi x0, #0, a0 <cbhi_4>
+
+.* <cbhi_5>:
+.*: f55f8000 cbhi x0, #63, a8 <cbhi_5>
+.*: f55fbfe0 cbhi x0, #63, a8 <cbhi_5>
+
+.* <cbhi_6>:
+.*: f540001f cbhi xzr, #0, b0 <cbhi_6>
+.*: f5403fff cbhi xzr, #0, b0 <cbhi_6>
+
+.* <cbhi_7>:
+.*: f55f801f cbhi xzr, #63, b8 <cbhi_7>
+.*: f55fbfff cbhi xzr, #63, b8 <cbhi_7>
+
+.* <cblo_0>:
+.*: 75600000 cblo w0, #0, c0 <cblo_0>
+.*: 75603fe0 cblo w0, #0, c0 <cblo_0>
+
+.* <cblo_1>:
+.*: 757f8000 cblo w0, #63, c8 <cblo_1>
+.*: 757fbfe0 cblo w0, #63, c8 <cblo_1>
+
+.* <cblo_2>:
+.*: 7560001f cblo wzr, #0, d0 <cblo_2>
+.*: 75603fff cblo wzr, #0, d0 <cblo_2>
+
+.* <cblo_3>:
+.*: 757f801f cblo wzr, #63, d8 <cblo_3>
+.*: 757fbfff cblo wzr, #63, d8 <cblo_3>
+
+.* <cblo_4>:
+.*: f5600000 cblo x0, #0, e0 <cblo_4>
+.*: f5603fe0 cblo x0, #0, e0 <cblo_4>
+
+.* <cblo_5>:
+.*: f57f8000 cblo x0, #63, e8 <cblo_5>
+.*: f57fbfe0 cblo x0, #63, e8 <cblo_5>
+
+.* <cblo_6>:
+.*: f560001f cblo xzr, #0, f0 <cblo_6>
+.*: f5603fff cblo xzr, #0, f0 <cblo_6>
+
+.* <cblo_7>:
+.*: f57f801f cblo xzr, #63, f8 <cblo_7>
+.*: f57fbfff cblo xzr, #63, f8 <cblo_7>
+
+.* <cbeq_0>:
+.*: 75c00000 cbeq w0, #0, 100 <cbeq_0>
+.*: 75c03fe0 cbeq w0, #0, 100 <cbeq_0>
+
+.* <cbeq_1>:
+.*: 75df8000 cbeq w0, #63, 108 <cbeq_1>
+.*: 75dfbfe0 cbeq w0, #63, 108 <cbeq_1>
+
+.* <cbeq_2>:
+.*: 75c0001f cbeq wzr, #0, 110 <cbeq_2>
+.*: 75c03fff cbeq wzr, #0, 110 <cbeq_2>
+
+.* <cbeq_3>:
+.*: 75df801f cbeq wzr, #63, 118 <cbeq_3>
+.*: 75dfbfff cbeq wzr, #63, 118 <cbeq_3>
+
+.* <cbeq_4>:
+.*: f5c00000 cbeq x0, #0, 120 <cbeq_4>
+.*: f5c03fe0 cbeq x0, #0, 120 <cbeq_4>
+
+.* <cbeq_5>:
+.*: f5df8000 cbeq x0, #63, 128 <cbeq_5>
+.*: f5dfbfe0 cbeq x0, #63, 128 <cbeq_5>
+
+.* <cbeq_6>:
+.*: f5c0001f cbeq xzr, #0, 130 <cbeq_6>
+.*: f5c03fff cbeq xzr, #0, 130 <cbeq_6>
+
+.* <cbeq_7>:
+.*: f5df801f cbeq xzr, #63, 138 <cbeq_7>
+.*: f5dfbfff cbeq xzr, #63, 138 <cbeq_7>
+
+.* <cbne_0>:
+.*: 75e00000 cbne w0, #0, 140 <cbne_0>
+.*: 75e03fe0 cbne w0, #0, 140 <cbne_0>
+
+.* <cbne_1>:
+.*: 75ff8000 cbne w0, #63, 148 <cbne_1>
+.*: 75ffbfe0 cbne w0, #63, 148 <cbne_1>
+
+.* <cbne_2>:
+.*: 75e0001f cbne wzr, #0, 150 <cbne_2>
+.*: 75e03fff cbne wzr, #0, 150 <cbne_2>
+
+.* <cbne_3>:
+.*: 75ff801f cbne wzr, #63, 158 <cbne_3>
+.*: 75ffbfff cbne wzr, #63, 158 <cbne_3>
+
+.* <cbne_4>:
+.*: f5e00000 cbne x0, #0, 160 <cbne_4>
+.*: f5e03fe0 cbne x0, #0, 160 <cbne_4>
+
+.* <cbne_5>:
+.*: f5ff8000 cbne x0, #63, 168 <cbne_5>
+.*: f5ffbfe0 cbne x0, #63, 168 <cbne_5>
+
+.* <cbne_6>:
+.*: f5e0001f cbne xzr, #0, 170 <cbne_6>
+.*: f5e03fff cbne xzr, #0, 170 <cbne_6>
+
+.* <cbne_7>:
+.*: f5ff801f cbne xzr, #63, 178 <cbne_7>
+.*: f5ffbfff cbne xzr, #63, 178 <cbne_7>
+
+.* <cbgt_8>:
+.*: 74000000 cbgt w0, w0, 180 <cbgt_8>
+.*: 74003fe0 cbgt w0, w0, 180 <cbgt_8>
+
+.* <cbgt_9>:
+.*: 741f0000 cbgt w0, wzr, 188 <cbgt_9>
+.*: 741f3fe0 cbgt w0, wzr, 188 <cbgt_9>
+
+.* <cbgt_10>:
+.*: 7400001f cbgt wzr, w0, 190 <cbgt_10>
+.*: 74003fff cbgt wzr, w0, 190 <cbgt_10>
+
+.* <cbgt_11>:
+.*: 741f001f cbgt wzr, wzr, 198 <cbgt_11>
+.*: 741f3fff cbgt wzr, wzr, 198 <cbgt_11>
+
+.* <cbgt_12>:
+.*: f4000000 cbgt x0, x0, 1a0 <cbgt_12>
+.*: f4003fe0 cbgt x0, x0, 1a0 <cbgt_12>
+
+.* <cbgt_13>:
+.*: f41f0000 cbgt x0, xzr, 1a8 <cbgt_13>
+.*: f41f3fe0 cbgt x0, xzr, 1a8 <cbgt_13>
+
+.* <cbgt_14>:
+.*: f400001f cbgt xzr, x0, 1b0 <cbgt_14>
+.*: f4003fff cbgt xzr, x0, 1b0 <cbgt_14>
+
+.* <cbgt_15>:
+.*: f41f001f cbgt xzr, xzr, 1b8 <cbgt_15>
+.*: f41f3fff cbgt xzr, xzr, 1b8 <cbgt_15>
+
+.* <cbge_8>:
+.*: 74200000 cbge w0, w0, 1c0 <cbge_8>
+.*: 74203fe0 cbge w0, w0, 1c0 <cbge_8>
+
+.* <cbge_9>:
+.*: 743f0000 cbge w0, wzr, 1c8 <cbge_9>
+.*: 743f3fe0 cbge w0, wzr, 1c8 <cbge_9>
+
+.* <cbge_10>:
+.*: 7420001f cbge wzr, w0, 1d0 <cbge_10>
+.*: 74203fff cbge wzr, w0, 1d0 <cbge_10>
+
+.* <cbge_11>:
+.*: 743f001f cbge wzr, wzr, 1d8 <cbge_11>
+.*: 743f3fff cbge wzr, wzr, 1d8 <cbge_11>
+
+.* <cbge_12>:
+.*: f4200000 cbge x0, x0, 1e0 <cbge_12>
+.*: f4203fe0 cbge x0, x0, 1e0 <cbge_12>
+
+.* <cbge_13>:
+.*: f43f0000 cbge x0, xzr, 1e8 <cbge_13>
+.*: f43f3fe0 cbge x0, xzr, 1e8 <cbge_13>
+
+.* <cbge_14>:
+.*: f420001f cbge xzr, x0, 1f0 <cbge_14>
+.*: f4203fff cbge xzr, x0, 1f0 <cbge_14>
+
+.* <cbge_15>:
+.*: f43f001f cbge xzr, xzr, 1f8 <cbge_15>
+.*: f43f3fff cbge xzr, xzr, 1f8 <cbge_15>
+
+.* <cbhi_8>:
+.*: 74400000 cbhi w0, w0, 200 <cbhi_8>
+.*: 74403fe0 cbhi w0, w0, 200 <cbhi_8>
+
+.* <cbhi_9>:
+.*: 745f0000 cbhi w0, wzr, 208 <cbhi_9>
+.*: 745f3fe0 cbhi w0, wzr, 208 <cbhi_9>
+
+.* <cbhi_10>:
+.*: 7440001f cbhi wzr, w0, 210 <cbhi_10>
+.*: 74403fff cbhi wzr, w0, 210 <cbhi_10>
+
+.* <cbhi_11>:
+.*: 745f001f cbhi wzr, wzr, 218 <cbhi_11>
+.*: 745f3fff cbhi wzr, wzr, 218 <cbhi_11>
+
+.* <cbhi_12>:
+.*: f4400000 cbhi x0, x0, 220 <cbhi_12>
+.*: f4403fe0 cbhi x0, x0, 220 <cbhi_12>
+
+.* <cbhi_13>:
+.*: f45f0000 cbhi x0, xzr, 228 <cbhi_13>
+.*: f45f3fe0 cbhi x0, xzr, 228 <cbhi_13>
+
+.* <cbhi_14>:
+.*: f440001f cbhi xzr, x0, 230 <cbhi_14>
+.*: f4403fff cbhi xzr, x0, 230 <cbhi_14>
+
+.* <cbhi_15>:
+.*: f45f001f cbhi xzr, xzr, 238 <cbhi_15>
+.*: f45f3fff cbhi xzr, xzr, 238 <cbhi_15>
+
+.* <cbhs_8>:
+.*: 74600000 cbhs w0, w0, 240 <cbhs_8>
+.*: 74603fe0 cbhs w0, w0, 240 <cbhs_8>
+
+.* <cbhs_9>:
+.*: 747f0000 cbhs w0, wzr, 248 <cbhs_9>
+.*: 747f3fe0 cbhs w0, wzr, 248 <cbhs_9>
+
+.* <cbhs_10>:
+.*: 7460001f cbhs wzr, w0, 250 <cbhs_10>
+.*: 74603fff cbhs wzr, w0, 250 <cbhs_10>
+
+.* <cbhs_11>:
+.*: 747f001f cbhs wzr, wzr, 258 <cbhs_11>
+.*: 747f3fff cbhs wzr, wzr, 258 <cbhs_11>
+
+.* <cbhs_12>:
+.*: f4600000 cbhs x0, x0, 260 <cbhs_12>
+.*: f4603fe0 cbhs x0, x0, 260 <cbhs_12>
+
+.* <cbhs_13>:
+.*: f47f0000 cbhs x0, xzr, 268 <cbhs_13>
+.*: f47f3fe0 cbhs x0, xzr, 268 <cbhs_13>
+
+.* <cbhs_14>:
+.*: f460001f cbhs xzr, x0, 270 <cbhs_14>
+.*: f4603fff cbhs xzr, x0, 270 <cbhs_14>
+
+.* <cbhs_15>:
+.*: f47f001f cbhs xzr, xzr, 278 <cbhs_15>
+.*: f47f3fff cbhs xzr, xzr, 278 <cbhs_15>
+
+.* <cbeq_8>:
+.*: 74c00000 cbeq w0, w0, 280 <cbeq_8>
+.*: 74c03fe0 cbeq w0, w0, 280 <cbeq_8>
+
+.* <cbeq_9>:
+.*: 74df0000 cbeq w0, wzr, 288 <cbeq_9>
+.*: 74df3fe0 cbeq w0, wzr, 288 <cbeq_9>
+
+.* <cbeq_10>:
+.*: 74c0001f cbeq wzr, w0, 290 <cbeq_10>
+.*: 74c03fff cbeq wzr, w0, 290 <cbeq_10>
+
+.* <cbeq_11>:
+.*: 74df001f cbeq wzr, wzr, 298 <cbeq_11>
+.*: 74df3fff cbeq wzr, wzr, 298 <cbeq_11>
+
+.* <cbeq_12>:
+.*: f4c00000 cbeq x0, x0, 2a0 <cbeq_12>
+.*: f4c03fe0 cbeq x0, x0, 2a0 <cbeq_12>
+
+.* <cbeq_13>:
+.*: f4df0000 cbeq x0, xzr, 2a8 <cbeq_13>
+.*: f4df3fe0 cbeq x0, xzr, 2a8 <cbeq_13>
+
+.* <cbeq_14>:
+.*: f4c0001f cbeq xzr, x0, 2b0 <cbeq_14>
+.*: f4c03fff cbeq xzr, x0, 2b0 <cbeq_14>
+
+.* <cbeq_15>:
+.*: f4df001f cbeq xzr, xzr, 2b8 <cbeq_15>
+.*: f4df3fff cbeq xzr, xzr, 2b8 <cbeq_15>
+
+.* <cbne_8>:
+.*: 74e00000 cbne w0, w0, 2c0 <cbne_8>
+.*: 74e03fe0 cbne w0, w0, 2c0 <cbne_8>
+
+.* <cbne_9>:
+.*: 74ff0000 cbne w0, wzr, 2c8 <cbne_9>
+.*: 74ff3fe0 cbne w0, wzr, 2c8 <cbne_9>
+
+.* <cbne_10>:
+.*: 74e0001f cbne wzr, w0, 2d0 <cbne_10>
+.*: 74e03fff cbne wzr, w0, 2d0 <cbne_10>
+
+.* <cbne_11>:
+.*: 74ff001f cbne wzr, wzr, 2d8 <cbne_11>
+.*: 74ff3fff cbne wzr, wzr, 2d8 <cbne_11>
+
+.* <cbne_12>:
+.*: f4e00000 cbne x0, x0, 2e0 <cbne_12>
+.*: f4e03fe0 cbne x0, x0, 2e0 <cbne_12>
+
+.* <cbne_13>:
+.*: f4ff0000 cbne x0, xzr, 2e8 <cbne_13>
+.*: f4ff3fe0 cbne x0, xzr, 2e8 <cbne_13>
+
+.* <cbne_14>:
+.*: f4e0001f cbne xzr, x0, 2f0 <cbne_14>
+.*: f4e03fff cbne xzr, x0, 2f0 <cbne_14>
+
+.* <cbne_15>:
+.*: f4ff001f cbne xzr, xzr, 2f8 <cbne_15>
+.*: f4ff3fff cbne xzr, xzr, 2f8 <cbne_15>
+
+.* <cbbgt_0>:
+.*: 74008000 cbbgt w0, w0, 300 <cbbgt_0>
+.*: 7400bfe0 cbbgt w0, w0, 300 <cbbgt_0>
+
+.* <cbbgt_1>:
+.*: 741f8000 cbbgt w0, wzr, 308 <cbbgt_1>
+.*: 741fbfe0 cbbgt w0, wzr, 308 <cbbgt_1>
+
+.* <cbbgt_2>:
+.*: 7400801f cbbgt wzr, w0, 310 <cbbgt_2>
+.*: 7400bfff cbbgt wzr, w0, 310 <cbbgt_2>
+
+.* <cbbgt_3>:
+.*: 741f801f cbbgt wzr, wzr, 318 <cbbgt_3>
+.*: 741fbfff cbbgt wzr, wzr, 318 <cbbgt_3>
+
+.* <cbbge_0>:
+.*: 74208000 cbbge w0, w0, 320 <cbbge_0>
+.*: 7420bfe0 cbbge w0, w0, 320 <cbbge_0>
+
+.* <cbbge_1>:
+.*: 743f8000 cbbge w0, wzr, 328 <cbbge_1>
+.*: 743fbfe0 cbbge w0, wzr, 328 <cbbge_1>
+
+.* <cbbge_2>:
+.*: 7420801f cbbge wzr, w0, 330 <cbbge_2>
+.*: 7420bfff cbbge wzr, w0, 330 <cbbge_2>
+
+.* <cbbge_3>:
+.*: 743f801f cbbge wzr, wzr, 338 <cbbge_3>
+.*: 743fbfff cbbge wzr, wzr, 338 <cbbge_3>
+
+.* <cbbhi_0>:
+.*: 74408000 cbbhi w0, w0, 340 <cbbhi_0>
+.*: 7440bfe0 cbbhi w0, w0, 340 <cbbhi_0>
+
+.* <cbbhi_1>:
+.*: 745f8000 cbbhi w0, wzr, 348 <cbbhi_1>
+.*: 745fbfe0 cbbhi w0, wzr, 348 <cbbhi_1>
+
+.* <cbbhi_2>:
+.*: 7440801f cbbhi wzr, w0, 350 <cbbhi_2>
+.*: 7440bfff cbbhi wzr, w0, 350 <cbbhi_2>
+
+.* <cbbhi_3>:
+.*: 745f801f cbbhi wzr, wzr, 358 <cbbhi_3>
+.*: 745fbfff cbbhi wzr, wzr, 358 <cbbhi_3>
+
+.* <cbbhs_0>:
+.*: 74608000 cbbhs w0, w0, 360 <cbbhs_0>
+.*: 7460bfe0 cbbhs w0, w0, 360 <cbbhs_0>
+
+.* <cbbhs_1>:
+.*: 747f8000 cbbhs w0, wzr, 368 <cbbhs_1>
+.*: 747fbfe0 cbbhs w0, wzr, 368 <cbbhs_1>
+
+.* <cbbhs_2>:
+.*: 7460801f cbbhs wzr, w0, 370 <cbbhs_2>
+.*: 7460bfff cbbhs wzr, w0, 370 <cbbhs_2>
+
+.* <cbbhs_3>:
+.*: 747f801f cbbhs wzr, wzr, 378 <cbbhs_3>
+.*: 747fbfff cbbhs wzr, wzr, 378 <cbbhs_3>
+
+.* <cbbeq_0>:
+.*: 74c08000 cbbeq w0, w0, 380 <cbbeq_0>
+.*: 74c0bfe0 cbbeq w0, w0, 380 <cbbeq_0>
+
+.* <cbbeq_1>:
+.*: 74df8000 cbbeq w0, wzr, 388 <cbbeq_1>
+.*: 74dfbfe0 cbbeq w0, wzr, 388 <cbbeq_1>
+
+.* <cbbeq_2>:
+.*: 74c0801f cbbeq wzr, w0, 390 <cbbeq_2>
+.*: 74c0bfff cbbeq wzr, w0, 390 <cbbeq_2>
+
+.* <cbbeq_3>:
+.*: 74df801f cbbeq wzr, wzr, 398 <cbbeq_3>
+.*: 74dfbfff cbbeq wzr, wzr, 398 <cbbeq_3>
+
+.* <cbbne_0>:
+.*: 74e08000 cbbne w0, w0, 3a0 <cbbne_0>
+.*: 74e0bfe0 cbbne w0, w0, 3a0 <cbbne_0>
+
+.* <cbbne_1>:
+.*: 74ff8000 cbbne w0, wzr, 3a8 <cbbne_1>
+.*: 74ffbfe0 cbbne w0, wzr, 3a8 <cbbne_1>
+
+.* <cbbne_2>:
+.*: 74e0801f cbbne wzr, w0, 3b0 <cbbne_2>
+.*: 74e0bfff cbbne wzr, w0, 3b0 <cbbne_2>
+
+.* <cbbne_3>:
+.*: 74ff801f cbbne wzr, wzr, 3b8 <cbbne_3>
+.*: 74ffbfff cbbne wzr, wzr, 3b8 <cbbne_3>
+
+.* <cbhgt_0>:
+.*: 7400c000 cbhgt w0, w0, 3c0 <cbhgt_0>
+.*: 7400ffe0 cbhgt w0, w0, 3c0 <cbhgt_0>
+
+.* <cbhgt_1>:
+.*: 741fc000 cbhgt w0, wzr, 3c8 <cbhgt_1>
+.*: 741fffe0 cbhgt w0, wzr, 3c8 <cbhgt_1>
+
+.* <cbhgt_2>:
+.*: 7400c01f cbhgt wzr, w0, 3d0 <cbhgt_2>
+.*: 7400ffff cbhgt wzr, w0, 3d0 <cbhgt_2>
+
+.* <cbhgt_3>:
+.*: 741fc01f cbhgt wzr, wzr, 3d8 <cbhgt_3>
+.*: 741fffff cbhgt wzr, wzr, 3d8 <cbhgt_3>
+
+.* <cbhge_0>:
+.*: 7420c000 cbhge w0, w0, 3e0 <cbhge_0>
+.*: 7420ffe0 cbhge w0, w0, 3e0 <cbhge_0>
+
+.* <cbhge_1>:
+.*: 743fc000 cbhge w0, wzr, 3e8 <cbhge_1>
+.*: 743fffe0 cbhge w0, wzr, 3e8 <cbhge_1>
+
+.* <cbhge_2>:
+.*: 7420c01f cbhge wzr, w0, 3f0 <cbhge_2>
+.*: 7420ffff cbhge wzr, w0, 3f0 <cbhge_2>
+
+.* <cbhge_3>:
+.*: 743fc01f cbhge wzr, wzr, 3f8 <cbhge_3>
+.*: 743fffff cbhge wzr, wzr, 3f8 <cbhge_3>
+
+.* <cbhhi_0>:
+.*: 7440c000 cbhhi w0, w0, 400 <cbhhi_0>
+.*: 7440ffe0 cbhhi w0, w0, 400 <cbhhi_0>
+
+.* <cbhhi_1>:
+.*: 745fc000 cbhhi w0, wzr, 408 <cbhhi_1>
+.*: 745fffe0 cbhhi w0, wzr, 408 <cbhhi_1>
+
+.* <cbhhi_2>:
+.*: 7440c01f cbhhi wzr, w0, 410 <cbhhi_2>
+.*: 7440ffff cbhhi wzr, w0, 410 <cbhhi_2>
+
+.* <cbhhi_3>:
+.*: 745fc01f cbhhi wzr, wzr, 418 <cbhhi_3>
+.*: 745fffff cbhhi wzr, wzr, 418 <cbhhi_3>
+
+.* <cbhhs_0>:
+.*: 7460c000 cbhhs w0, w0, 420 <cbhhs_0>
+.*: 7460ffe0 cbhhs w0, w0, 420 <cbhhs_0>
+
+.* <cbhhs_1>:
+.*: 747fc000 cbhhs w0, wzr, 428 <cbhhs_1>
+.*: 747fffe0 cbhhs w0, wzr, 428 <cbhhs_1>
+
+.* <cbhhs_2>:
+.*: 7460c01f cbhhs wzr, w0, 430 <cbhhs_2>
+.*: 7460ffff cbhhs wzr, w0, 430 <cbhhs_2>
+
+.* <cbhhs_3>:
+.*: 747fc01f cbhhs wzr, wzr, 438 <cbhhs_3>
+.*: 747fffff cbhhs wzr, wzr, 438 <cbhhs_3>
+
+.* <cbheq_0>:
+.*: 74c0c000 cbheq w0, w0, 440 <cbheq_0>
+.*: 74c0ffe0 cbheq w0, w0, 440 <cbheq_0>
+
+.* <cbheq_1>:
+.*: 74dfc000 cbheq w0, wzr, 448 <cbheq_1>
+.*: 74dfffe0 cbheq w0, wzr, 448 <cbheq_1>
+
+.* <cbheq_2>:
+.*: 74c0c01f cbheq wzr, w0, 450 <cbheq_2>
+.*: 74c0ffff cbheq wzr, w0, 450 <cbheq_2>
+
+.* <cbheq_3>:
+.*: 74dfc01f cbheq wzr, wzr, 458 <cbheq_3>
+.*: 74dfffff cbheq wzr, wzr, 458 <cbheq_3>
+
+.* <cbhne_0>:
+.*: 74e0c000 cbhne w0, w0, 460 <cbhne_0>
+.*: 74e0ffe0 cbhne w0, w0, 460 <cbhne_0>
+
+.* <cbhne_1>:
+.*: 74ffc000 cbhne w0, wzr, 468 <cbhne_1>
+.*: 74ffffe0 cbhne w0, wzr, 468 <cbhne_1>
+
+.* <cbhne_2>:
+.*: 74e0c01f cbhne wzr, w0, 470 <cbhne_2>
+.*: 74e0ffff cbhne wzr, w0, 470 <cbhne_2>
+
+.* <cbhne_3>:
+.*: 74ffc01f cbhne wzr, wzr, 478 <cbhne_3>
+.*: 74ffffff cbhne wzr, wzr, 478 <cbhne_3>
+
+.* <cbge_0>:
+.*: 75000000 cbgt w0, #0, 480 <cbge_0>
+.*: 75003fe0 cbgt w0, #0, 480 <cbge_0>
+
+.* <cbge_1>:
+.*: 751f8000 cbgt w0, #63, 488 <cbge_1>
+.*: 751fbfe0 cbgt w0, #63, 488 <cbge_1>
+
+.* <cbge_2>:
+.*: 7500001f cbgt wzr, #0, 490 <cbge_2>
+.*: 75003fff cbgt wzr, #0, 490 <cbge_2>
+
+.* <cbge_3>:
+.*: 751f801f cbgt wzr, #63, 498 <cbge_3>
+.*: 751fbfff cbgt wzr, #63, 498 <cbge_3>
+
+.* <cbge_4>:
+.*: f5000000 cbgt x0, #0, 4a0 <cbge_4>
+.*: f5003fe0 cbgt x0, #0, 4a0 <cbge_4>
+
+.* <cbge_5>:
+.*: f51f8000 cbgt x0, #63, 4a8 <cbge_5>
+.*: f51fbfe0 cbgt x0, #63, 4a8 <cbge_5>
+
+.* <cbge_6>:
+.*: f500001f cbgt xzr, #0, 4b0 <cbge_6>
+.*: f5003fff cbgt xzr, #0, 4b0 <cbge_6>
+
+.* <cbge_7>:
+.*: f51f801f cbgt xzr, #63, 4b8 <cbge_7>
+.*: f51fbfff cbgt xzr, #63, 4b8 <cbge_7>
+
+.* <cble_0>:
+.*: 75200000 cblt w0, #0, 4c0 <cble_0>
+.*: 75203fe0 cblt w0, #0, 4c0 <cble_0>
+
+.* <cble_1>:
+.*: 753f8000 cblt w0, #63, 4c8 <cble_1>
+.*: 753fbfe0 cblt w0, #63, 4c8 <cble_1>
+
+.* <cble_2>:
+.*: 7520001f cblt wzr, #0, 4d0 <cble_2>
+.*: 75203fff cblt wzr, #0, 4d0 <cble_2>
+
+.* <cble_3>:
+.*: 753f801f cblt wzr, #63, 4d8 <cble_3>
+.*: 753fbfff cblt wzr, #63, 4d8 <cble_3>
+
+.* <cble_4>:
+.*: f5200000 cblt x0, #0, 4e0 <cble_4>
+.*: f5203fe0 cblt x0, #0, 4e0 <cble_4>
+
+.* <cble_5>:
+.*: f53f8000 cblt x0, #63, 4e8 <cble_5>
+.*: f53fbfe0 cblt x0, #63, 4e8 <cble_5>
+
+.* <cble_6>:
+.*: f520001f cblt xzr, #0, 4f0 <cble_6>
+.*: f5203fff cblt xzr, #0, 4f0 <cble_6>
+
+.* <cble_7>:
+.*: f53f801f cblt xzr, #63, 4f8 <cble_7>
+.*: f53fbfff cblt xzr, #63, 4f8 <cble_7>
+
+.* <cbhs_0>:
+.*: 75400000 cbhi w0, #0, 500 <cbhs_0>
+.*: 75403fe0 cbhi w0, #0, 500 <cbhs_0>
+
+.* <cbhs_1>:
+.*: 755f8000 cbhi w0, #63, 508 <cbhs_1>
+.*: 755fbfe0 cbhi w0, #63, 508 <cbhs_1>
+
+.* <cbhs_2>:
+.*: 7540001f cbhi wzr, #0, 510 <cbhs_2>
+.*: 75403fff cbhi wzr, #0, 510 <cbhs_2>
+
+.* <cbhs_3>:
+.*: 755f801f cbhi wzr, #63, 518 <cbhs_3>
+.*: 755fbfff cbhi wzr, #63, 518 <cbhs_3>
+
+.* <cbhs_4>:
+.*: f5400000 cbhi x0, #0, 520 <cbhs_4>
+.*: f5403fe0 cbhi x0, #0, 520 <cbhs_4>
+
+.* <cbhs_5>:
+.*: f55f8000 cbhi x0, #63, 528 <cbhs_5>
+.*: f55fbfe0 cbhi x0, #63, 528 <cbhs_5>
+
+.* <cbhs_6>:
+.*: f540001f cbhi xzr, #0, 530 <cbhs_6>
+.*: f5403fff cbhi xzr, #0, 530 <cbhs_6>
+
+.* <cbhs_7>:
+.*: f55f801f cbhi xzr, #63, 538 <cbhs_7>
+.*: f55fbfff cbhi xzr, #63, 538 <cbhs_7>
+
+.* <cbls_0>:
+.*: 75600000 cblo w0, #0, 540 <cbls_0>
+.*: 75603fe0 cblo w0, #0, 540 <cbls_0>
+
+.* <cbls_1>:
+.*: 757f8000 cblo w0, #63, 548 <cbls_1>
+.*: 757fbfe0 cblo w0, #63, 548 <cbls_1>
+
+.* <cbls_2>:
+.*: 7560001f cblo wzr, #0, 550 <cbls_2>
+.*: 75603fff cblo wzr, #0, 550 <cbls_2>
+
+.* <cbls_3>:
+.*: 757f801f cblo wzr, #63, 558 <cbls_3>
+.*: 757fbfff cblo wzr, #63, 558 <cbls_3>
+
+.* <cbls_4>:
+.*: f5600000 cblo x0, #0, 560 <cbls_4>
+.*: f5603fe0 cblo x0, #0, 560 <cbls_4>
+
+.* <cbls_5>:
+.*: f57f8000 cblo x0, #63, 568 <cbls_5>
+.*: f57fbfe0 cblo x0, #63, 568 <cbls_5>
+
+.* <cbls_6>:
+.*: f560001f cblo xzr, #0, 570 <cbls_6>
+.*: f5603fff cblo xzr, #0, 570 <cbls_6>
+
+.* <cbls_7>:
+.*: f57f801f cblo xzr, #63, 578 <cbls_7>
+.*: f57fbfff cblo xzr, #63, 578 <cbls_7>
+
+.* <cblt_8>:
+.*: 74000000 cbgt w0, w0, 580 <cblt_8>
+.*: 74003fe0 cbgt w0, w0, 580 <cblt_8>
+
+.* <cblt_9>:
+.*: 7400001f cbgt wzr, w0, 588 <cblt_9>
+.*: 74003fff cbgt wzr, w0, 588 <cblt_9>
+
+.* <cblt_10>:
+.*: 741f0000 cbgt w0, wzr, 590 <cblt_10>
+.*: 741f3fe0 cbgt w0, wzr, 590 <cblt_10>
+
+.* <cblt_11>:
+.*: 741f001f cbgt wzr, wzr, 598 <cblt_11>
+.*: 741f3fff cbgt wzr, wzr, 598 <cblt_11>
+
+.* <cblt_12>:
+.*: f4000000 cbgt x0, x0, 5a0 <cblt_12>
+.*: f4003fe0 cbgt x0, x0, 5a0 <cblt_12>
+
+.* <cblt_13>:
+.*: f400001f cbgt xzr, x0, 5a8 <cblt_13>
+.*: f4003fff cbgt xzr, x0, 5a8 <cblt_13>
+
+.* <cblt_14>:
+.*: f41f0000 cbgt x0, xzr, 5b0 <cblt_14>
+.*: f41f3fe0 cbgt x0, xzr, 5b0 <cblt_14>
+
+.* <cblt_15>:
+.*: f41f001f cbgt xzr, xzr, 5b8 <cblt_15>
+.*: f41f3fff cbgt xzr, xzr, 5b8 <cblt_15>
+
+.* <cble_8>:
+.*: 74200000 cbge w0, w0, 5c0 <cble_8>
+.*: 74203fe0 cbge w0, w0, 5c0 <cble_8>
+
+.* <cble_9>:
+.*: 7420001f cbge wzr, w0, 5c8 <cble_9>
+.*: 74203fff cbge wzr, w0, 5c8 <cble_9>
+
+.* <cble_10>:
+.*: 743f0000 cbge w0, wzr, 5d0 <cble_10>
+.*: 743f3fe0 cbge w0, wzr, 5d0 <cble_10>
+
+.* <cble_11>:
+.*: 743f001f cbge wzr, wzr, 5d8 <cble_11>
+.*: 743f3fff cbge wzr, wzr, 5d8 <cble_11>
+
+.* <cble_12>:
+.*: f4200000 cbge x0, x0, 5e0 <cble_12>
+.*: f4203fe0 cbge x0, x0, 5e0 <cble_12>
+
+.* <cble_13>:
+.*: f420001f cbge xzr, x0, 5e8 <cble_13>
+.*: f4203fff cbge xzr, x0, 5e8 <cble_13>
+
+.* <cble_14>:
+.*: f43f0000 cbge x0, xzr, 5f0 <cble_14>
+.*: f43f3fe0 cbge x0, xzr, 5f0 <cble_14>
+
+.* <cble_15>:
+.*: f43f001f cbge xzr, xzr, 5f8 <cble_15>
+.*: f43f3fff cbge xzr, xzr, 5f8 <cble_15>
+
+.* <cblo_8>:
+.*: 74400000 cbhi w0, w0, 600 <cblo_8>
+.*: 74403fe0 cbhi w0, w0, 600 <cblo_8>
+
+.* <cblo_9>:
+.*: 7440001f cbhi wzr, w0, 608 <cblo_9>
+.*: 74403fff cbhi wzr, w0, 608 <cblo_9>
+
+.* <cblo_10>:
+.*: 745f0000 cbhi w0, wzr, 610 <cblo_10>
+.*: 745f3fe0 cbhi w0, wzr, 610 <cblo_10>
+
+.* <cblo_11>:
+.*: 745f001f cbhi wzr, wzr, 618 <cblo_11>
+.*: 745f3fff cbhi wzr, wzr, 618 <cblo_11>
+
+.* <cblo_12>:
+.*: f4400000 cbhi x0, x0, 620 <cblo_12>
+.*: f4403fe0 cbhi x0, x0, 620 <cblo_12>
+
+.* <cblo_13>:
+.*: f440001f cbhi xzr, x0, 628 <cblo_13>
+.*: f4403fff cbhi xzr, x0, 628 <cblo_13>
+
+.* <cblo_14>:
+.*: f45f0000 cbhi x0, xzr, 630 <cblo_14>
+.*: f45f3fe0 cbhi x0, xzr, 630 <cblo_14>
+
+.* <cblo_15>:
+.*: f45f001f cbhi xzr, xzr, 638 <cblo_15>
+.*: f45f3fff cbhi xzr, xzr, 638 <cblo_15>
+
+.* <cbls_8>:
+.*: 74600000 cbhs w0, w0, 640 <cbls_8>
+.*: 74603fe0 cbhs w0, w0, 640 <cbls_8>
+
+.* <cbls_9>:
+.*: 7460001f cbhs wzr, w0, 648 <cbls_9>
+.*: 74603fff cbhs wzr, w0, 648 <cbls_9>
+
+.* <cbls_10>:
+.*: 747f0000 cbhs w0, wzr, 650 <cbls_10>
+.*: 747f3fe0 cbhs w0, wzr, 650 <cbls_10>
+
+.* <cbls_11>:
+.*: 747f001f cbhs wzr, wzr, 658 <cbls_11>
+.*: 747f3fff cbhs wzr, wzr, 658 <cbls_11>
+
+.* <cbls_12>:
+.*: f4600000 cbhs x0, x0, 660 <cbls_12>
+.*: f4603fe0 cbhs x0, x0, 660 <cbls_12>
+
+.* <cbls_13>:
+.*: f460001f cbhs xzr, x0, 668 <cbls_13>
+.*: f4603fff cbhs xzr, x0, 668 <cbls_13>
+
+.* <cbls_14>:
+.*: f47f0000 cbhs x0, xzr, 670 <cbls_14>
+.*: f47f3fe0 cbhs x0, xzr, 670 <cbls_14>
+
+.* <cbls_15>:
+.*: f47f001f cbhs xzr, xzr, 678 <cbls_15>
+.*: f47f3fff cbhs xzr, xzr, 678 <cbls_15>
+
+.* <cbblt_0>:
+.*: 74008000 cbbgt w0, w0, 680 <cbblt_0>
+.*: 7400bfe0 cbbgt w0, w0, 680 <cbblt_0>
+
+.* <cbblt_1>:
+.*: 7400801f cbbgt wzr, w0, 688 <cbblt_1>
+.*: 7400bfff cbbgt wzr, w0, 688 <cbblt_1>
+
+.* <cbblt_2>:
+.*: 741f8000 cbbgt w0, wzr, 690 <cbblt_2>
+.*: 741fbfe0 cbbgt w0, wzr, 690 <cbblt_2>
+
+.* <cbblt_3>:
+.*: 741f801f cbbgt wzr, wzr, 698 <cbblt_3>
+.*: 741fbfff cbbgt wzr, wzr, 698 <cbblt_3>
+
+.* <cbble_0>:
+.*: 74208000 cbbge w0, w0, 6a0 <cbble_0>
+.*: 7420bfe0 cbbge w0, w0, 6a0 <cbble_0>
+
+.* <cbble_1>:
+.*: 7420801f cbbge wzr, w0, 6a8 <cbble_1>
+.*: 7420bfff cbbge wzr, w0, 6a8 <cbble_1>
+
+.* <cbble_2>:
+.*: 743f8000 cbbge w0, wzr, 6b0 <cbble_2>
+.*: 743fbfe0 cbbge w0, wzr, 6b0 <cbble_2>
+
+.* <cbble_3>:
+.*: 743f801f cbbge wzr, wzr, 6b8 <cbble_3>
+.*: 743fbfff cbbge wzr, wzr, 6b8 <cbble_3>
+
+.* <cbblo_0>:
+.*: 74408000 cbbhi w0, w0, 6c0 <cbblo_0>
+.*: 7440bfe0 cbbhi w0, w0, 6c0 <cbblo_0>
+
+.* <cbblo_1>:
+.*: 7440801f cbbhi wzr, w0, 6c8 <cbblo_1>
+.*: 7440bfff cbbhi wzr, w0, 6c8 <cbblo_1>
+
+.* <cbblo_2>:
+.*: 745f8000 cbbhi w0, wzr, 6d0 <cbblo_2>
+.*: 745fbfe0 cbbhi w0, wzr, 6d0 <cbblo_2>
+
+.* <cbblo_3>:
+.*: 745f801f cbbhi wzr, wzr, 6d8 <cbblo_3>
+.*: 745fbfff cbbhi wzr, wzr, 6d8 <cbblo_3>
+
+.* <cbbls_0>:
+.*: 74608000 cbbhs w0, w0, 6e0 <cbbls_0>
+.*: 7460bfe0 cbbhs w0, w0, 6e0 <cbbls_0>
+
+.* <cbbls_1>:
+.*: 7460801f cbbhs wzr, w0, 6e8 <cbbls_1>
+.*: 7460bfff cbbhs wzr, w0, 6e8 <cbbls_1>
+
+.* <cbbls_2>:
+.*: 747f8000 cbbhs w0, wzr, 6f0 <cbbls_2>
+.*: 747fbfe0 cbbhs w0, wzr, 6f0 <cbbls_2>
+
+.* <cbbls_3>:
+.*: 747f801f cbbhs wzr, wzr, 6f8 <cbbls_3>
+.*: 747fbfff cbbhs wzr, wzr, 6f8 <cbbls_3>
+
+.* <cbhlt_0>:
+.*: 7400c000 cbhgt w0, w0, 700 <cbhlt_0>
+.*: 7400ffe0 cbhgt w0, w0, 700 <cbhlt_0>
+
+.* <cbhlt_1>:
+.*: 7400c01f cbhgt wzr, w0, 708 <cbhlt_1>
+.*: 7400ffff cbhgt wzr, w0, 708 <cbhlt_1>
+
+.* <cbhlt_2>:
+.*: 741fc000 cbhgt w0, wzr, 710 <cbhlt_2>
+.*: 741fffe0 cbhgt w0, wzr, 710 <cbhlt_2>
+
+.* <cbhlt_3>:
+.*: 741fc01f cbhgt wzr, wzr, 718 <cbhlt_3>
+.*: 741fffff cbhgt wzr, wzr, 718 <cbhlt_3>
+
+.* <cbhle_0>:
+.*: 7420c000 cbhge w0, w0, 720 <cbhle_0>
+.*: 7420ffe0 cbhge w0, w0, 720 <cbhle_0>
+
+.* <cbhle_1>:
+.*: 7420c01f cbhge wzr, w0, 728 <cbhle_1>
+.*: 7420ffff cbhge wzr, w0, 728 <cbhle_1>
+
+.* <cbhle_2>:
+.*: 743fc000 cbhge w0, wzr, 730 <cbhle_2>
+.*: 743fffe0 cbhge w0, wzr, 730 <cbhle_2>
+
+.* <cbhle_3>:
+.*: 743fc01f cbhge wzr, wzr, 738 <cbhle_3>
+.*: 743fffff cbhge wzr, wzr, 738 <cbhle_3>
+
+.* <cbhlo_0>:
+.*: 7440c000 cbhhi w0, w0, 740 <cbhlo_0>
+.*: 7440ffe0 cbhhi w0, w0, 740 <cbhlo_0>
+
+.* <cbhlo_1>:
+.*: 7440c01f cbhhi wzr, w0, 748 <cbhlo_1>
+.*: 7440ffff cbhhi wzr, w0, 748 <cbhlo_1>
+
+.* <cbhlo_2>:
+.*: 745fc000 cbhhi w0, wzr, 750 <cbhlo_2>
+.*: 745fffe0 cbhhi w0, wzr, 750 <cbhlo_2>
+
+.* <cbhlo_3>:
+.*: 745fc01f cbhhi wzr, wzr, 758 <cbhlo_3>
+.*: 745fffff cbhhi wzr, wzr, 758 <cbhlo_3>
+
+.* <cbhls_0>:
+.*: 7460c000 cbhhs w0, w0, 760 <cbhls_0>
+.*: 7460ffe0 cbhhs w0, w0, 760 <cbhls_0>
+
+.* <cbhls_1>:
+.*: 7460c01f cbhhs wzr, w0, 768 <cbhls_1>
+.*: 7460ffff cbhhs wzr, w0, 768 <cbhls_1>
+
+.* <cbhls_2>:
+.*: 747fc000 cbhhs w0, wzr, 770 <cbhls_2>
+.*: 747fffe0 cbhhs w0, wzr, 770 <cbhls_2>
+
+.* <cbhls_3>:
+.*: 747fc01f cbhhs wzr, wzr, 778 <cbhls_3>
+.*: 747fffff cbhhs wzr, wzr, 778 <cbhls_3>
diff --git a/gas/testsuite/gas/aarch64/cmpbr.s b/gas/testsuite/gas/aarch64/cmpbr.s
new file mode 100644
index 0000000..ed6b179
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/cmpbr.s
@@ -0,0 +1,727 @@
+cbgt_0:
+ cbgt w0, #0, cbgt_0
+ cbgt w0, #0, cbgt_0
+cbgt_1:
+ cbgt w0, #63, cbgt_1
+ cbgt w0, #63, cbgt_1
+cbgt_2:
+ cbgt wzr, #0, cbgt_2
+ cbgt wzr, #0, cbgt_2
+cbgt_3:
+ cbgt wzr, #63, cbgt_3
+ cbgt wzr, #63, cbgt_3
+cbgt_4:
+ cbgt x0, #0, cbgt_4
+ cbgt x0, #0, cbgt_4
+cbgt_5:
+ cbgt x0, #63, cbgt_5
+ cbgt x0, #63, cbgt_5
+cbgt_6:
+ cbgt xzr, #0, cbgt_6
+ cbgt xzr, #0, cbgt_6
+cbgt_7:
+ cbgt xzr, #63, cbgt_7
+ cbgt xzr, #63, cbgt_7
+cblt_0:
+ cblt w0, #0, cblt_0
+ cblt w0, #0, cblt_0
+cblt_1:
+ cblt w0, #63, cblt_1
+ cblt w0, #63, cblt_1
+cblt_2:
+ cblt wzr, #0, cblt_2
+ cblt wzr, #0, cblt_2
+cblt_3:
+ cblt wzr, #63, cblt_3
+ cblt wzr, #63, cblt_3
+cblt_4:
+ cblt x0, #0, cblt_4
+ cblt x0, #0, cblt_4
+cblt_5:
+ cblt x0, #63, cblt_5
+ cblt x0, #63, cblt_5
+cblt_6:
+ cblt xzr, #0, cblt_6
+ cblt xzr, #0, cblt_6
+cblt_7:
+ cblt xzr, #63, cblt_7
+ cblt xzr, #63, cblt_7
+cbhi_0:
+ cbhi w0, #0, cbhi_0
+ cbhi w0, #0, cbhi_0
+cbhi_1:
+ cbhi w0, #63, cbhi_1
+ cbhi w0, #63, cbhi_1
+cbhi_2:
+ cbhi wzr, #0, cbhi_2
+ cbhi wzr, #0, cbhi_2
+cbhi_3:
+ cbhi wzr, #63, cbhi_3
+ cbhi wzr, #63, cbhi_3
+cbhi_4:
+ cbhi x0, #0, cbhi_4
+ cbhi x0, #0, cbhi_4
+cbhi_5:
+ cbhi x0, #63, cbhi_5
+ cbhi x0, #63, cbhi_5
+cbhi_6:
+ cbhi xzr, #0, cbhi_6
+ cbhi xzr, #0, cbhi_6
+cbhi_7:
+ cbhi xzr, #63, cbhi_7
+ cbhi xzr, #63, cbhi_7
+cblo_0:
+ cblo w0, #0, cblo_0
+ cblo w0, #0, cblo_0
+cblo_1:
+ cblo w0, #63, cblo_1
+ cblo w0, #63, cblo_1
+cblo_2:
+ cblo wzr, #0, cblo_2
+ cblo wzr, #0, cblo_2
+cblo_3:
+ cblo wzr, #63, cblo_3
+ cblo wzr, #63, cblo_3
+cblo_4:
+ cblo x0, #0, cblo_4
+ cblo x0, #0, cblo_4
+cblo_5:
+ cblo x0, #63, cblo_5
+ cblo x0, #63, cblo_5
+cblo_6:
+ cblo xzr, #0, cblo_6
+ cblo xzr, #0, cblo_6
+cblo_7:
+ cblo xzr, #63, cblo_7
+ cblo xzr, #63, cblo_7
+cbeq_0:
+ cbeq w0, #0, cbeq_0
+ cbeq w0, #0, cbeq_0
+cbeq_1:
+ cbeq w0, #63, cbeq_1
+ cbeq w0, #63, cbeq_1
+cbeq_2:
+ cbeq wzr, #0, cbeq_2
+ cbeq wzr, #0, cbeq_2
+cbeq_3:
+ cbeq wzr, #63, cbeq_3
+ cbeq wzr, #63, cbeq_3
+cbeq_4:
+ cbeq x0, #0, cbeq_4
+ cbeq x0, #0, cbeq_4
+cbeq_5:
+ cbeq x0, #63, cbeq_5
+ cbeq x0, #63, cbeq_5
+cbeq_6:
+ cbeq xzr, #0, cbeq_6
+ cbeq xzr, #0, cbeq_6
+cbeq_7:
+ cbeq xzr, #63, cbeq_7
+ cbeq xzr, #63, cbeq_7
+cbne_0:
+ cbne w0, #0, cbne_0
+ cbne w0, #0, cbne_0
+cbne_1:
+ cbne w0, #63, cbne_1
+ cbne w0, #63, cbne_1
+cbne_2:
+ cbne wzr, #0, cbne_2
+ cbne wzr, #0, cbne_2
+cbne_3:
+ cbne wzr, #63, cbne_3
+ cbne wzr, #63, cbne_3
+cbne_4:
+ cbne x0, #0, cbne_4
+ cbne x0, #0, cbne_4
+cbne_5:
+ cbne x0, #63, cbne_5
+ cbne x0, #63, cbne_5
+cbne_6:
+ cbne xzr, #0, cbne_6
+ cbne xzr, #0, cbne_6
+cbne_7:
+ cbne xzr, #63, cbne_7
+ cbne xzr, #63, cbne_7
+
+cbgt_8:
+ cbgt w0, w0, cbgt_8
+ cbgt w0, w0, cbgt_8
+cbgt_9:
+ cbgt w0, wzr, cbgt_9
+ cbgt w0, wzr, cbgt_9
+cbgt_10:
+ cbgt wzr, w0, cbgt_10
+ cbgt wzr, w0, cbgt_10
+cbgt_11:
+ cbgt wzr, wzr, cbgt_11
+ cbgt wzr, wzr, cbgt_11
+cbgt_12:
+ cbgt x0, x0, cbgt_12
+ cbgt x0, x0, cbgt_12
+cbgt_13:
+ cbgt x0, xzr, cbgt_13
+ cbgt x0, xzr, cbgt_13
+cbgt_14:
+ cbgt xzr, x0, cbgt_14
+ cbgt xzr, x0, cbgt_14
+cbgt_15:
+ cbgt xzr, xzr, cbgt_15
+ cbgt xzr, xzr, cbgt_15
+cbge_8:
+ cbge w0, w0, cbge_8
+ cbge w0, w0, cbge_8
+cbge_9:
+ cbge w0, wzr, cbge_9
+ cbge w0, wzr, cbge_9
+cbge_10:
+ cbge wzr, w0, cbge_10
+ cbge wzr, w0, cbge_10
+cbge_11:
+ cbge wzr, wzr, cbge_11
+ cbge wzr, wzr, cbge_11
+cbge_12:
+ cbge x0, x0, cbge_12
+ cbge x0, x0, cbge_12
+cbge_13:
+ cbge x0, xzr, cbge_13
+ cbge x0, xzr, cbge_13
+cbge_14:
+ cbge xzr, x0, cbge_14
+ cbge xzr, x0, cbge_14
+cbge_15:
+ cbge xzr, xzr, cbge_15
+ cbge xzr, xzr, cbge_15
+cbhi_8:
+ cbhi w0, w0, cbhi_8
+ cbhi w0, w0, cbhi_8
+cbhi_9:
+ cbhi w0, wzr, cbhi_9
+ cbhi w0, wzr, cbhi_9
+cbhi_10:
+ cbhi wzr, w0, cbhi_10
+ cbhi wzr, w0, cbhi_10
+cbhi_11:
+ cbhi wzr, wzr, cbhi_11
+ cbhi wzr, wzr, cbhi_11
+cbhi_12:
+ cbhi x0, x0, cbhi_12
+ cbhi x0, x0, cbhi_12
+cbhi_13:
+ cbhi x0, xzr, cbhi_13
+ cbhi x0, xzr, cbhi_13
+cbhi_14:
+ cbhi xzr, x0, cbhi_14
+ cbhi xzr, x0, cbhi_14
+cbhi_15:
+ cbhi xzr, xzr, cbhi_15
+ cbhi xzr, xzr, cbhi_15
+cbhs_8:
+ cbhs w0, w0, cbhs_8
+ cbhs w0, w0, cbhs_8
+cbhs_9:
+ cbhs w0, wzr, cbhs_9
+ cbhs w0, wzr, cbhs_9
+cbhs_10:
+ cbhs wzr, w0, cbhs_10
+ cbhs wzr, w0, cbhs_10
+cbhs_11:
+ cbhs wzr, wzr, cbhs_11
+ cbhs wzr, wzr, cbhs_11
+cbhs_12:
+ cbhs x0, x0, cbhs_12
+ cbhs x0, x0, cbhs_12
+cbhs_13:
+ cbhs x0, xzr, cbhs_13
+ cbhs x0, xzr, cbhs_13
+cbhs_14:
+ cbhs xzr, x0, cbhs_14
+ cbhs xzr, x0, cbhs_14
+cbhs_15:
+ cbhs xzr, xzr, cbhs_15
+ cbhs xzr, xzr, cbhs_15
+cbeq_8:
+ cbeq w0, w0, cbeq_8
+ cbeq w0, w0, cbeq_8
+cbeq_9:
+ cbeq w0, wzr, cbeq_9
+ cbeq w0, wzr, cbeq_9
+cbeq_10:
+ cbeq wzr, w0, cbeq_10
+ cbeq wzr, w0, cbeq_10
+cbeq_11:
+ cbeq wzr, wzr, cbeq_11
+ cbeq wzr, wzr, cbeq_11
+cbeq_12:
+ cbeq x0, x0, cbeq_12
+ cbeq x0, x0, cbeq_12
+cbeq_13:
+ cbeq x0, xzr, cbeq_13
+ cbeq x0, xzr, cbeq_13
+cbeq_14:
+ cbeq xzr, x0, cbeq_14
+ cbeq xzr, x0, cbeq_14
+cbeq_15:
+ cbeq xzr, xzr, cbeq_15
+ cbeq xzr, xzr, cbeq_15
+cbne_8:
+ cbne w0, w0, cbne_8
+ cbne w0, w0, cbne_8
+cbne_9:
+ cbne w0, wzr, cbne_9
+ cbne w0, wzr, cbne_9
+cbne_10:
+ cbne wzr, w0, cbne_10
+ cbne wzr, w0, cbne_10
+cbne_11:
+ cbne wzr, wzr, cbne_11
+ cbne wzr, wzr, cbne_11
+cbne_12:
+ cbne x0, x0, cbne_12
+ cbne x0, x0, cbne_12
+cbne_13:
+ cbne x0, xzr, cbne_13
+ cbne x0, xzr, cbne_13
+cbne_14:
+ cbne xzr, x0, cbne_14
+ cbne xzr, x0, cbne_14
+cbne_15:
+ cbne xzr, xzr, cbne_15
+ cbne xzr, xzr, cbne_15
+
+cbbgt_0:
+ cbbgt w0, w0, cbbgt_0
+ cbbgt w0, w0, cbbgt_0
+cbbgt_1:
+ cbbgt w0, wzr, cbbgt_1
+ cbbgt w0, wzr, cbbgt_1
+cbbgt_2:
+ cbbgt wzr, w0, cbbgt_2
+ cbbgt wzr, w0, cbbgt_2
+cbbgt_3:
+ cbbgt wzr, wzr, cbbgt_3
+ cbbgt wzr, wzr, cbbgt_3
+cbbge_0:
+ cbbge w0, w0, cbbge_0
+ cbbge w0, w0, cbbge_0
+cbbge_1:
+ cbbge w0, wzr, cbbge_1
+ cbbge w0, wzr, cbbge_1
+cbbge_2:
+ cbbge wzr, w0, cbbge_2
+ cbbge wzr, w0, cbbge_2
+cbbge_3:
+ cbbge wzr, wzr, cbbge_3
+ cbbge wzr, wzr, cbbge_3
+cbbhi_0:
+ cbbhi w0, w0, cbbhi_0
+ cbbhi w0, w0, cbbhi_0
+cbbhi_1:
+ cbbhi w0, wzr, cbbhi_1
+ cbbhi w0, wzr, cbbhi_1
+cbbhi_2:
+ cbbhi wzr, w0, cbbhi_2
+ cbbhi wzr, w0, cbbhi_2
+cbbhi_3:
+ cbbhi wzr, wzr, cbbhi_3
+ cbbhi wzr, wzr, cbbhi_3
+cbbhs_0:
+ cbbhs w0, w0, cbbhs_0
+ cbbhs w0, w0, cbbhs_0
+cbbhs_1:
+ cbbhs w0, wzr, cbbhs_1
+ cbbhs w0, wzr, cbbhs_1
+cbbhs_2:
+ cbbhs wzr, w0, cbbhs_2
+ cbbhs wzr, w0, cbbhs_2
+cbbhs_3:
+ cbbhs wzr, wzr, cbbhs_3
+ cbbhs wzr, wzr, cbbhs_3
+cbbeq_0:
+ cbbeq w0, w0, cbbeq_0
+ cbbeq w0, w0, cbbeq_0
+cbbeq_1:
+ cbbeq w0, wzr, cbbeq_1
+ cbbeq w0, wzr, cbbeq_1
+cbbeq_2:
+ cbbeq wzr, w0, cbbeq_2
+ cbbeq wzr, w0, cbbeq_2
+cbbeq_3:
+ cbbeq wzr, wzr, cbbeq_3
+ cbbeq wzr, wzr, cbbeq_3
+cbbne_0:
+ cbbne w0, w0, cbbne_0
+ cbbne w0, w0, cbbne_0
+cbbne_1:
+ cbbne w0, wzr, cbbne_1
+ cbbne w0, wzr, cbbne_1
+cbbne_2:
+ cbbne wzr, w0, cbbne_2
+ cbbne wzr, w0, cbbne_2
+cbbne_3:
+ cbbne wzr, wzr, cbbne_3
+ cbbne wzr, wzr, cbbne_3
+
+cbhgt_0:
+ cbhgt w0, w0, cbhgt_0
+ cbhgt w0, w0, cbhgt_0
+cbhgt_1:
+ cbhgt w0, wzr, cbhgt_1
+ cbhgt w0, wzr, cbhgt_1
+cbhgt_2:
+ cbhgt wzr, w0, cbhgt_2
+ cbhgt wzr, w0, cbhgt_2
+cbhgt_3:
+ cbhgt wzr, wzr, cbhgt_3
+ cbhgt wzr, wzr, cbhgt_3
+cbhge_0:
+ cbhge w0, w0, cbhge_0
+ cbhge w0, w0, cbhge_0
+cbhge_1:
+ cbhge w0, wzr, cbhge_1
+ cbhge w0, wzr, cbhge_1
+cbhge_2:
+ cbhge wzr, w0, cbhge_2
+ cbhge wzr, w0, cbhge_2
+cbhge_3:
+ cbhge wzr, wzr, cbhge_3
+ cbhge wzr, wzr, cbhge_3
+cbhhi_0:
+ cbhhi w0, w0, cbhhi_0
+ cbhhi w0, w0, cbhhi_0
+cbhhi_1:
+ cbhhi w0, wzr, cbhhi_1
+ cbhhi w0, wzr, cbhhi_1
+cbhhi_2:
+ cbhhi wzr, w0, cbhhi_2
+ cbhhi wzr, w0, cbhhi_2
+cbhhi_3:
+ cbhhi wzr, wzr, cbhhi_3
+ cbhhi wzr, wzr, cbhhi_3
+cbhhs_0:
+ cbhhs w0, w0, cbhhs_0
+ cbhhs w0, w0, cbhhs_0
+cbhhs_1:
+ cbhhs w0, wzr, cbhhs_1
+ cbhhs w0, wzr, cbhhs_1
+cbhhs_2:
+ cbhhs wzr, w0, cbhhs_2
+ cbhhs wzr, w0, cbhhs_2
+cbhhs_3:
+ cbhhs wzr, wzr, cbhhs_3
+ cbhhs wzr, wzr, cbhhs_3
+cbheq_0:
+ cbheq w0, w0, cbheq_0
+ cbheq w0, w0, cbheq_0
+cbheq_1:
+ cbheq w0, wzr, cbheq_1
+ cbheq w0, wzr, cbheq_1
+cbheq_2:
+ cbheq wzr, w0, cbheq_2
+ cbheq wzr, w0, cbheq_2
+cbheq_3:
+ cbheq wzr, wzr, cbheq_3
+ cbheq wzr, wzr, cbheq_3
+cbhne_0:
+ cbhne w0, w0, cbhne_0
+ cbhne w0, w0, cbhne_0
+cbhne_1:
+ cbhne w0, wzr, cbhne_1
+ cbhne w0, wzr, cbhne_1
+cbhne_2:
+ cbhne wzr, w0, cbhne_2
+ cbhne wzr, w0, cbhne_2
+cbhne_3:
+ cbhne wzr, wzr, cbhne_3
+ cbhne wzr, wzr, cbhne_3
+
+cbge_0:
+ cbge w0, #1, cbge_0
+ cbge w0, #1, cbge_0
+cbge_1:
+ cbge w0, #64, cbge_1
+ cbge w0, #64, cbge_1
+cbge_2:
+ cbge wzr, #1, cbge_2
+ cbge wzr, #1, cbge_2
+cbge_3:
+ cbge wzr, #64, cbge_3
+ cbge wzr, #64, cbge_3
+cbge_4:
+ cbge x0, #1, cbge_4
+ cbge x0, #1, cbge_4
+cbge_5:
+ cbge x0, #64, cbge_5
+ cbge x0, #64, cbge_5
+cbge_6:
+ cbge xzr, #1, cbge_6
+ cbge xzr, #1, cbge_6
+cbge_7:
+ cbge xzr, #64, cbge_7
+ cbge xzr, #64, cbge_7
+cble_0:
+ cble w0, #-1, cble_0
+ cble w0, #-1, cble_0
+cble_1:
+ cble w0, #62, cble_1
+ cble w0, #62, cble_1
+cble_2:
+ cble wzr, #-1, cble_2
+ cble wzr, #-1, cble_2
+cble_3:
+ cble wzr, #62, cble_3
+ cble wzr, #62, cble_3
+cble_4:
+ cble x0, #-1, cble_4
+ cble x0, #-1, cble_4
+cble_5:
+ cble x0, #62, cble_5
+ cble x0, #62, cble_5
+cble_6:
+ cble xzr, #-1, cble_6
+ cble xzr, #-1, cble_6
+cble_7:
+ cble xzr, #62, cble_7
+ cble xzr, #62, cble_7
+cbhs_0:
+ cbhs w0, #1, cbhs_0
+ cbhs w0, #1, cbhs_0
+cbhs_1:
+ cbhs w0, #64, cbhs_1
+ cbhs w0, #64, cbhs_1
+cbhs_2:
+ cbhs wzr, #1, cbhs_2
+ cbhs wzr, #1, cbhs_2
+cbhs_3:
+ cbhs wzr, #64, cbhs_3
+ cbhs wzr, #64, cbhs_3
+cbhs_4:
+ cbhs x0, #1, cbhs_4
+ cbhs x0, #1, cbhs_4
+cbhs_5:
+ cbhs x0, #64, cbhs_5
+ cbhs x0, #64, cbhs_5
+cbhs_6:
+ cbhs xzr, #1, cbhs_6
+ cbhs xzr, #1, cbhs_6
+cbhs_7:
+ cbhs xzr, #64, cbhs_7
+ cbhs xzr, #64, cbhs_7
+cbls_0:
+ cbls w0, #-1, cbls_0
+ cbls w0, #-1, cbls_0
+cbls_1:
+ cbls w0, #62, cbls_1
+ cbls w0, #62, cbls_1
+cbls_2:
+ cbls wzr, #-1, cbls_2
+ cbls wzr, #-1, cbls_2
+cbls_3:
+ cbls wzr, #62, cbls_3
+ cbls wzr, #62, cbls_3
+cbls_4:
+ cbls x0, #-1, cbls_4
+ cbls x0, #-1, cbls_4
+cbls_5:
+ cbls x0, #62, cbls_5
+ cbls x0, #62, cbls_5
+cbls_6:
+ cbls xzr, #-1, cbls_6
+ cbls xzr, #-1, cbls_6
+cbls_7:
+ cbls xzr, #62, cbls_7
+ cbls xzr, #62, cbls_7
+
+cblt_8:
+ cblt w0, w0, cblt_8
+ cblt w0, w0, cblt_8
+cblt_9:
+ cblt w0, wzr, cblt_9
+ cblt w0, wzr, cblt_9
+cblt_10:
+ cblt wzr, w0, cblt_10
+ cblt wzr, w0, cblt_10
+cblt_11:
+ cblt wzr, wzr, cblt_11
+ cblt wzr, wzr, cblt_11
+cblt_12:
+ cblt x0, x0, cblt_12
+ cblt x0, x0, cblt_12
+cblt_13:
+ cblt x0, xzr, cblt_13
+ cblt x0, xzr, cblt_13
+cblt_14:
+ cblt xzr, x0, cblt_14
+ cblt xzr, x0, cblt_14
+cblt_15:
+ cblt xzr, xzr, cblt_15
+ cblt xzr, xzr, cblt_15
+cble_8:
+ cble w0, w0, cble_8
+ cble w0, w0, cble_8
+cble_9:
+ cble w0, wzr, cble_9
+ cble w0, wzr, cble_9
+cble_10:
+ cble wzr, w0, cble_10
+ cble wzr, w0, cble_10
+cble_11:
+ cble wzr, wzr, cble_11
+ cble wzr, wzr, cble_11
+cble_12:
+ cble x0, x0, cble_12
+ cble x0, x0, cble_12
+cble_13:
+ cble x0, xzr, cble_13
+ cble x0, xzr, cble_13
+cble_14:
+ cble xzr, x0, cble_14
+ cble xzr, x0, cble_14
+cble_15:
+ cble xzr, xzr, cble_15
+ cble xzr, xzr, cble_15
+cblo_8:
+ cblo w0, w0, cblo_8
+ cblo w0, w0, cblo_8
+cblo_9:
+ cblo w0, wzr, cblo_9
+ cblo w0, wzr, cblo_9
+cblo_10:
+ cblo wzr, w0, cblo_10
+ cblo wzr, w0, cblo_10
+cblo_11:
+ cblo wzr, wzr, cblo_11
+ cblo wzr, wzr, cblo_11
+cblo_12:
+ cblo x0, x0, cblo_12
+ cblo x0, x0, cblo_12
+cblo_13:
+ cblo x0, xzr, cblo_13
+ cblo x0, xzr, cblo_13
+cblo_14:
+ cblo xzr, x0, cblo_14
+ cblo xzr, x0, cblo_14
+cblo_15:
+ cblo xzr, xzr, cblo_15
+ cblo xzr, xzr, cblo_15
+cbls_8:
+ cbls w0, w0, cbls_8
+ cbls w0, w0, cbls_8
+cbls_9:
+ cbls w0, wzr, cbls_9
+ cbls w0, wzr, cbls_9
+cbls_10:
+ cbls wzr, w0, cbls_10
+ cbls wzr, w0, cbls_10
+cbls_11:
+ cbls wzr, wzr, cbls_11
+ cbls wzr, wzr, cbls_11
+cbls_12:
+ cbls x0, x0, cbls_12
+ cbls x0, x0, cbls_12
+cbls_13:
+ cbls x0, xzr, cbls_13
+ cbls x0, xzr, cbls_13
+cbls_14:
+ cbls xzr, x0, cbls_14
+ cbls xzr, x0, cbls_14
+cbls_15:
+ cbls xzr, xzr, cbls_15
+ cbls xzr, xzr, cbls_15
+
+cbblt_0:
+ cbblt w0, w0, cbblt_0
+ cbblt w0, w0, cbblt_0
+cbblt_1:
+ cbblt w0, wzr, cbblt_1
+ cbblt w0, wzr, cbblt_1
+cbblt_2:
+ cbblt wzr, w0, cbblt_2
+ cbblt wzr, w0, cbblt_2
+cbblt_3:
+ cbblt wzr, wzr, cbblt_3
+ cbblt wzr, wzr, cbblt_3
+cbble_0:
+ cbble w0, w0, cbble_0
+ cbble w0, w0, cbble_0
+cbble_1:
+ cbble w0, wzr, cbble_1
+ cbble w0, wzr, cbble_1
+cbble_2:
+ cbble wzr, w0, cbble_2
+ cbble wzr, w0, cbble_2
+cbble_3:
+ cbble wzr, wzr, cbble_3
+ cbble wzr, wzr, cbble_3
+cbblo_0:
+ cbblo w0, w0, cbblo_0
+ cbblo w0, w0, cbblo_0
+cbblo_1:
+ cbblo w0, wzr, cbblo_1
+ cbblo w0, wzr, cbblo_1
+cbblo_2:
+ cbblo wzr, w0, cbblo_2
+ cbblo wzr, w0, cbblo_2
+cbblo_3:
+ cbblo wzr, wzr, cbblo_3
+ cbblo wzr, wzr, cbblo_3
+cbbls_0:
+ cbbls w0, w0, cbbls_0
+ cbbls w0, w0, cbbls_0
+cbbls_1:
+ cbbls w0, wzr, cbbls_1
+ cbbls w0, wzr, cbbls_1
+cbbls_2:
+ cbbls wzr, w0, cbbls_2
+ cbbls wzr, w0, cbbls_2
+cbbls_3:
+ cbbls wzr, wzr, cbbls_3
+ cbbls wzr, wzr, cbbls_3
+
+cbhlt_0:
+ cbhlt w0, w0, cbhlt_0
+ cbhlt w0, w0, cbhlt_0
+cbhlt_1:
+ cbhlt w0, wzr, cbhlt_1
+ cbhlt w0, wzr, cbhlt_1
+cbhlt_2:
+ cbhlt wzr, w0, cbhlt_2
+ cbhlt wzr, w0, cbhlt_2
+cbhlt_3:
+ cbhlt wzr, wzr, cbhlt_3
+ cbhlt wzr, wzr, cbhlt_3
+cbhle_0:
+ cbhle w0, w0, cbhle_0
+ cbhle w0, w0, cbhle_0
+cbhle_1:
+ cbhle w0, wzr, cbhle_1
+ cbhle w0, wzr, cbhle_1
+cbhle_2:
+ cbhle wzr, w0, cbhle_2
+ cbhle wzr, w0, cbhle_2
+cbhle_3:
+ cbhle wzr, wzr, cbhle_3
+ cbhle wzr, wzr, cbhle_3
+cbhlo_0:
+ cbhlo w0, w0, cbhlo_0
+ cbhlo w0, w0, cbhlo_0
+cbhlo_1:
+ cbhlo w0, wzr, cbhlo_1
+ cbhlo w0, wzr, cbhlo_1
+cbhlo_2:
+ cbhlo wzr, w0, cbhlo_2
+ cbhlo wzr, w0, cbhlo_2
+cbhlo_3:
+ cbhlo wzr, wzr, cbhlo_3
+ cbhlo wzr, wzr, cbhlo_3
+cbhls_0:
+ cbhls w0, w0, cbhls_0
+ cbhls w0, w0, cbhls_0
+cbhls_1:
+ cbhls w0, wzr, cbhls_1
+ cbhls w0, wzr, cbhls_1
+cbhls_2:
+ cbhls wzr, w0, cbhls_2
+ cbhls wzr, w0, cbhls_2
+cbhls_3:
+ cbhls wzr, wzr, cbhls_3
+ cbhls wzr, wzr, cbhls_3
diff --git a/gas/testsuite/gas/aarch64/conditional-compare.d b/gas/testsuite/gas/aarch64/conditional-compare.d
new file mode 100644
index 0000000..294e0c9
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/conditional-compare.d
@@ -0,0 +1,77 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 3a400800 ccmn w0, #0x0, #0x0, eq // eq = none
+ *[0-9a-f]+: 3a400be0 ccmn wzr, #0x0, #0x0, eq // eq = none
+ *[0-9a-f]+: 3a5f0800 ccmn w0, #0x1f, #0x0, eq // eq = none
+ *[0-9a-f]+: 3a40080f ccmn w0, #0x0, #0xf, eq // eq = none
+ *[0-9a-f]+: 3a40f800 ccmn w0, #0x0, #0x0, nv
+ *[0-9a-f]+: ba400800 ccmn x0, #0x0, #0x0, eq // eq = none
+ *[0-9a-f]+: ba400be0 ccmn xzr, #0x0, #0x0, eq // eq = none
+ *[0-9a-f]+: ba5f0800 ccmn x0, #0x1f, #0x0, eq // eq = none
+ *[0-9a-f]+: ba40080f ccmn x0, #0x0, #0xf, eq // eq = none
+ *[0-9a-f]+: ba40f800 ccmn x0, #0x0, #0x0, nv
+ *[0-9a-f]+: 7a400800 ccmp w0, #0x0, #0x0, eq // eq = none
+ *[0-9a-f]+: 7a400be0 ccmp wzr, #0x0, #0x0, eq // eq = none
+ *[0-9a-f]+: 7a5f0800 ccmp w0, #0x1f, #0x0, eq // eq = none
+ *[0-9a-f]+: 7a40080f ccmp w0, #0x0, #0xf, eq // eq = none
+ *[0-9a-f]+: 7a40f800 ccmp w0, #0x0, #0x0, nv
+ *[0-9a-f]+: fa400800 ccmp x0, #0x0, #0x0, eq // eq = none
+ *[0-9a-f]+: fa400be0 ccmp xzr, #0x0, #0x0, eq // eq = none
+ *[0-9a-f]+: fa5f0800 ccmp x0, #0x1f, #0x0, eq // eq = none
+ *[0-9a-f]+: fa40080f ccmp x0, #0x0, #0xf, eq // eq = none
+ *[0-9a-f]+: fa40f800 ccmp x0, #0x0, #0x0, nv
+ *[0-9a-f]+: 3a400000 ccmn w0, w0, #0x0, eq // eq = none
+ *[0-9a-f]+: 3a4003e0 ccmn wzr, w0, #0x0, eq // eq = none
+ *[0-9a-f]+: 3a5f0000 ccmn w0, wzr, #0x0, eq // eq = none
+ *[0-9a-f]+: 3a40000f ccmn w0, w0, #0xf, eq // eq = none
+ *[0-9a-f]+: 3a40f000 ccmn w0, w0, #0x0, nv
+ *[0-9a-f]+: ba400000 ccmn x0, x0, #0x0, eq // eq = none
+ *[0-9a-f]+: ba4003e0 ccmn xzr, x0, #0x0, eq // eq = none
+ *[0-9a-f]+: ba5f0000 ccmn x0, xzr, #0x0, eq // eq = none
+ *[0-9a-f]+: ba40000f ccmn x0, x0, #0xf, eq // eq = none
+ *[0-9a-f]+: ba40f000 ccmn x0, x0, #0x0, nv
+ *[0-9a-f]+: 7a400000 ccmp w0, w0, #0x0, eq // eq = none
+ *[0-9a-f]+: 7a4003e0 ccmp wzr, w0, #0x0, eq // eq = none
+ *[0-9a-f]+: 7a5f0000 ccmp w0, wzr, #0x0, eq // eq = none
+ *[0-9a-f]+: 7a40000f ccmp w0, w0, #0xf, eq // eq = none
+ *[0-9a-f]+: 7a40f000 ccmp w0, w0, #0x0, nv
+ *[0-9a-f]+: fa400000 ccmp x0, x0, #0x0, eq // eq = none
+ *[0-9a-f]+: fa4003e0 ccmp xzr, x0, #0x0, eq // eq = none
+ *[0-9a-f]+: fa5f0000 ccmp x0, xzr, #0x0, eq // eq = none
+ *[0-9a-f]+: fa40000f ccmp x0, x0, #0xf, eq // eq = none
+ *[0-9a-f]+: fa40f000 ccmp x0, x0, #0x0, nv
+ *[0-9a-f]+: 3a400800 ccmn w0, #0x0, #0x0, eq // eq = none
+ *[0-9a-f]+: 3a400800 ccmn w0, #0x0, #0x0, eq // eq = none
+ *[0-9a-f]+: 3a401800 ccmn w0, #0x0, #0x0, ne // ne = any
+ *[0-9a-f]+: 3a401800 ccmn w0, #0x0, #0x0, ne // ne = any
+ *[0-9a-f]+: 3a402800 ccmn w0, #0x0, #0x0, cs // cs = hs, nlast
+ *[0-9a-f]+: 3a402800 ccmn w0, #0x0, #0x0, cs // cs = hs, nlast
+ *[0-9a-f]+: 3a402800 ccmn w0, #0x0, #0x0, cs // cs = hs, nlast
+ *[0-9a-f]+: 3a403800 ccmn w0, #0x0, #0x0, cc // cc = lo, ul, last
+ *[0-9a-f]+: 3a403800 ccmn w0, #0x0, #0x0, cc // cc = lo, ul, last
+ *[0-9a-f]+: 3a403800 ccmn w0, #0x0, #0x0, cc // cc = lo, ul, last
+ *[0-9a-f]+: 3a404800 ccmn w0, #0x0, #0x0, mi // mi = first
+ *[0-9a-f]+: 3a404800 ccmn w0, #0x0, #0x0, mi // mi = first
+ *[0-9a-f]+: 3a405800 ccmn w0, #0x0, #0x0, pl // pl = nfrst
+ *[0-9a-f]+: 3a405800 ccmn w0, #0x0, #0x0, pl // pl = nfrst
+ *[0-9a-f]+: 3a406800 ccmn w0, #0x0, #0x0, vs
+ *[0-9a-f]+: 3a407800 ccmn w0, #0x0, #0x0, vc
+ *[0-9a-f]+: 3a408800 ccmn w0, #0x0, #0x0, hi // hi = pmore
+ *[0-9a-f]+: 3a408800 ccmn w0, #0x0, #0x0, hi // hi = pmore
+ *[0-9a-f]+: 3a409800 ccmn w0, #0x0, #0x0, ls // ls = plast
+ *[0-9a-f]+: 3a409800 ccmn w0, #0x0, #0x0, ls // ls = plast
+ *[0-9a-f]+: 3a40a800 ccmn w0, #0x0, #0x0, ge // ge = tcont
+ *[0-9a-f]+: 3a40a800 ccmn w0, #0x0, #0x0, ge // ge = tcont
+ *[0-9a-f]+: 3a40b800 ccmn w0, #0x0, #0x0, lt // lt = tstop
+ *[0-9a-f]+: 3a40b800 ccmn w0, #0x0, #0x0, lt // lt = tstop
+ *[0-9a-f]+: 3a40c800 ccmn w0, #0x0, #0x0, gt
+ *[0-9a-f]+: 3a40d800 ccmn w0, #0x0, #0x0, le
+ *[0-9a-f]+: 3a40e800 ccmn w0, #0x0, #0x0, al
+ *[0-9a-f]+: 3a40f800 ccmn w0, #0x0, #0x0, nv
diff --git a/gas/testsuite/gas/aarch64/conditional-compare.s b/gas/testsuite/gas/aarch64/conditional-compare.s
new file mode 100644
index 0000000..1fe23d3
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/conditional-compare.s
@@ -0,0 +1,76 @@
+ ccmn w0, #0, #0, eq
+ ccmn wzr, #0, #0, eq
+ ccmn w0, #31, #0, eq
+ ccmn w0, #0, #15, eq
+ ccmn w0, #0, #0, nv
+
+ ccmn x0, #0, #0, eq
+ ccmn xzr, #0, #0, eq
+ ccmn x0, #31, #0, eq
+ ccmn x0, #0, #15, eq
+ ccmn x0, #0, #0, nv
+
+ ccmp w0, #0, #0, eq
+ ccmp wzr, #0, #0, eq
+ ccmp w0, #31, #0, eq
+ ccmp w0, #0, #15, eq
+ ccmp w0, #0, #0, nv
+
+ ccmp x0, #0, #0, eq
+ ccmp xzr, #0, #0, eq
+ ccmp x0, #31, #0, eq
+ ccmp x0, #0, #15, eq
+ ccmp x0, #0, #0, nv
+
+ ccmn w0, w0, #0, eq
+ ccmn wzr, w0, #0, eq
+ ccmn w0, wzr, #0, eq
+ ccmn w0, w0, #15, eq
+ ccmn w0, w0, #0, nv
+
+ ccmn x0, x0, #0, eq
+ ccmn xzr, x0, #0, eq
+ ccmn x0, xzr, #0, eq
+ ccmn x0, x0, #15, eq
+ ccmn x0, x0, #0, nv
+
+ ccmp w0, w0, #0, eq
+ ccmp wzr, w0, #0, eq
+ ccmp w0, wzr, #0, eq
+ ccmp w0, w0, #15, eq
+ ccmp w0, w0, #0, nv
+
+ ccmp x0, x0, #0, eq
+ ccmp xzr, x0, #0, eq
+ ccmp x0, xzr, #0, eq
+ ccmp x0, x0, #15, eq
+ ccmp x0, x0, #0, nv
+
+ ccmn w0, #0, #0, eq
+ ccmn w0, #0, #0, none
+ ccmn w0, #0, #0, ne
+ ccmn w0, #0, #0, any
+ ccmn w0, #0, #0, hs
+ ccmn w0, #0, #0, cs
+ ccmn w0, #0, #0, nlast
+ ccmn w0, #0, #0, lo
+ ccmn w0, #0, #0, cc
+ ccmn w0, #0, #0, last
+ ccmn w0, #0, #0, mi
+ ccmn w0, #0, #0, first
+ ccmn w0, #0, #0, pl
+ ccmn w0, #0, #0, nfrst
+ ccmn w0, #0, #0, vs
+ ccmn w0, #0, #0, vc
+ ccmn w0, #0, #0, hi
+ ccmn w0, #0, #0, pmore
+ ccmn w0, #0, #0, ls
+ ccmn w0, #0, #0, plast
+ ccmn w0, #0, #0, ge
+ ccmn w0, #0, #0, tcont
+ ccmn w0, #0, #0, lt
+ ccmn w0, #0, #0, tstop
+ ccmn w0, #0, #0, gt
+ ccmn w0, #0, #0, le
+ ccmn w0, #0, #0, al
+ ccmn w0, #0, #0, nv
diff --git a/gas/testsuite/gas/aarch64/dgh.d b/gas/testsuite/gas/aarch64/dgh.d
deleted file mode 100644
index 9d11bec..0000000
--- a/gas/testsuite/gas/aarch64/dgh.d
+++ /dev/null
@@ -1,11 +0,0 @@
-#name: V8.6 Data Gathering Hint
-#as: -march=armv8.6-a
-#objdump: -dr
-
-.* file format .*
-
-Disassembly of section \.text:
-
-0+ <\.text>:
- *[0-9a-f]*: d50320df hint #0x6
- *[0-9a-f]*: d50320df hint #0x6
diff --git a/gas/testsuite/gas/aarch64/dgh.s b/gas/testsuite/gas/aarch64/dgh.s
deleted file mode 100644
index 6470cd0..0000000
--- a/gas/testsuite/gas/aarch64/dgh.s
+++ /dev/null
@@ -1,4 +0,0 @@
-# Test for the V8.6-a Data Gathering Hint instruction
-
-dgh
-hint #6
diff --git a/gas/testsuite/gas/aarch64/dp-general-one-source.d b/gas/testsuite/gas/aarch64/dp-general-one-source.d
new file mode 100644
index 0000000..56d4700
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/dp-general-one-source.d
@@ -0,0 +1,45 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 5ac00000 rbit w0, w0
+ *[0-9a-f]+: 5ac0001f rbit wzr, w0
+ *[0-9a-f]+: 5ac003e0 rbit w0, wzr
+ *[0-9a-f]+: dac00000 rbit x0, x0
+ *[0-9a-f]+: dac0001f rbit xzr, x0
+ *[0-9a-f]+: dac003e0 rbit x0, xzr
+ *[0-9a-f]+: 5ac00400 rev16 w0, w0
+ *[0-9a-f]+: 5ac0041f rev16 wzr, w0
+ *[0-9a-f]+: 5ac007e0 rev16 w0, wzr
+ *[0-9a-f]+: dac00400 rev16 x0, x0
+ *[0-9a-f]+: dac0041f rev16 xzr, x0
+ *[0-9a-f]+: dac007e0 rev16 x0, xzr
+ *[0-9a-f]+: 5ac00800 rev w0, w0
+ *[0-9a-f]+: 5ac0081f rev wzr, w0
+ *[0-9a-f]+: 5ac00be0 rev w0, wzr
+ *[0-9a-f]+: dac00800 rev32 x0, x0
+ *[0-9a-f]+: dac0081f rev32 xzr, x0
+ *[0-9a-f]+: dac00be0 rev32 x0, xzr
+ *[0-9a-f]+: dac00c00 rev x0, x0
+ *[0-9a-f]+: dac00c1f rev xzr, x0
+ *[0-9a-f]+: dac00fe0 rev x0, xzr
+ *[0-9a-f]+: dac00c00 rev x0, x0
+ *[0-9a-f]+: dac00c1f rev xzr, x0
+ *[0-9a-f]+: dac00fe0 rev x0, xzr
+ *[0-9a-f]+: 5ac01000 clz w0, w0
+ *[0-9a-f]+: 5ac0101f clz wzr, w0
+ *[0-9a-f]+: 5ac013e0 clz w0, wzr
+ *[0-9a-f]+: dac01000 clz x0, x0
+ *[0-9a-f]+: dac0101f clz xzr, x0
+ *[0-9a-f]+: dac013e0 clz x0, xzr
+ *[0-9a-f]+: 5ac01400 cls w0, w0
+ *[0-9a-f]+: 5ac0141f cls wzr, w0
+ *[0-9a-f]+: 5ac017e0 cls w0, wzr
+ *[0-9a-f]+: dac01400 cls x0, x0
+ *[0-9a-f]+: dac0141f cls xzr, x0
+ *[0-9a-f]+: dac017e0 cls x0, xzr
diff --git a/gas/testsuite/gas/aarch64/dp-general-one-source.s b/gas/testsuite/gas/aarch64/dp-general-one-source.s
new file mode 100644
index 0000000..5bdb754
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/dp-general-one-source.s
@@ -0,0 +1,43 @@
+ rbit w0, w0
+ rbit wzr, w0
+ rbit w0, wzr
+ rbit x0, x0
+ rbit xzr, x0
+ rbit x0, xzr
+
+ rev16 w0, w0
+ rev16 wzr, w0
+ rev16 w0, wzr
+ rev16 x0, x0
+ rev16 xzr, x0
+ rev16 x0, xzr
+
+ rev w0, w0
+ rev wzr, w0
+ rev w0, wzr
+
+ rev32 x0, x0
+ rev32 xzr, x0
+ rev32 x0, xzr
+
+ rev x0, x0
+ rev xzr, x0
+ rev x0, xzr
+
+ rev64 x0, x0
+ rev64 xzr, x0
+ rev64 x0, xzr
+
+ clz w0, w0
+ clz wzr, w0
+ clz w0, wzr
+ clz x0, x0
+ clz xzr, x0
+ clz x0, xzr
+
+ cls w0, w0
+ cls wzr, w0
+ cls w0, wzr
+ cls x0, x0
+ cls xzr, x0
+ cls x0, xzr
diff --git a/gas/testsuite/gas/aarch64/dp-general-two-source.d b/gas/testsuite/gas/aarch64/dp-general-two-source.d
new file mode 100644
index 0000000..5c0d816
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/dp-general-two-source.d
@@ -0,0 +1,89 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 1ac00800 udiv w0, w0, w0
+ *[0-9a-f]+: 1ac0081f udiv wzr, w0, w0
+ *[0-9a-f]+: 1ac00be0 udiv w0, wzr, w0
+ *[0-9a-f]+: 1adf0800 udiv w0, w0, wzr
+ *[0-9a-f]+: 9ac00800 udiv x0, x0, x0
+ *[0-9a-f]+: 9ac0081f udiv xzr, x0, x0
+ *[0-9a-f]+: 9ac00be0 udiv x0, xzr, x0
+ *[0-9a-f]+: 9adf0800 udiv x0, x0, xzr
+ *[0-9a-f]+: 1ac00c00 sdiv w0, w0, w0
+ *[0-9a-f]+: 1ac00c1f sdiv wzr, w0, w0
+ *[0-9a-f]+: 1ac00fe0 sdiv w0, wzr, w0
+ *[0-9a-f]+: 1adf0c00 sdiv w0, w0, wzr
+ *[0-9a-f]+: 9ac00c00 sdiv x0, x0, x0
+ *[0-9a-f]+: 9ac00c1f sdiv xzr, x0, x0
+ *[0-9a-f]+: 9ac00fe0 sdiv x0, xzr, x0
+ *[0-9a-f]+: 9adf0c00 sdiv x0, x0, xzr
+ *[0-9a-f]+: 1ac02000 lsl w0, w0, w0
+ *[0-9a-f]+: 1ac0201f lsl wzr, w0, w0
+ *[0-9a-f]+: 1ac023e0 lsl w0, wzr, w0
+ *[0-9a-f]+: 1adf2000 lsl w0, w0, wzr
+ *[0-9a-f]+: 9ac02000 lsl x0, x0, x0
+ *[0-9a-f]+: 9ac0201f lsl xzr, x0, x0
+ *[0-9a-f]+: 9ac023e0 lsl x0, xzr, x0
+ *[0-9a-f]+: 9adf2000 lsl x0, x0, xzr
+ *[0-9a-f]+: 1ac02000 lsl w0, w0, w0
+ *[0-9a-f]+: 1ac0201f lsl wzr, w0, w0
+ *[0-9a-f]+: 1ac023e0 lsl w0, wzr, w0
+ *[0-9a-f]+: 1adf2000 lsl w0, w0, wzr
+ *[0-9a-f]+: 9ac02000 lsl x0, x0, x0
+ *[0-9a-f]+: 9ac0201f lsl xzr, x0, x0
+ *[0-9a-f]+: 9ac023e0 lsl x0, xzr, x0
+ *[0-9a-f]+: 9adf2000 lsl x0, x0, xzr
+ *[0-9a-f]+: 1ac02400 lsr w0, w0, w0
+ *[0-9a-f]+: 1ac0241f lsr wzr, w0, w0
+ *[0-9a-f]+: 1ac027e0 lsr w0, wzr, w0
+ *[0-9a-f]+: 1adf2400 lsr w0, w0, wzr
+ *[0-9a-f]+: 9ac02400 lsr x0, x0, x0
+ *[0-9a-f]+: 9ac0241f lsr xzr, x0, x0
+ *[0-9a-f]+: 9ac027e0 lsr x0, xzr, x0
+ *[0-9a-f]+: 9adf2400 lsr x0, x0, xzr
+ *[0-9a-f]+: 1ac02400 lsr w0, w0, w0
+ *[0-9a-f]+: 1ac0241f lsr wzr, w0, w0
+ *[0-9a-f]+: 1ac027e0 lsr w0, wzr, w0
+ *[0-9a-f]+: 1adf2400 lsr w0, w0, wzr
+ *[0-9a-f]+: 9ac02400 lsr x0, x0, x0
+ *[0-9a-f]+: 9ac0241f lsr xzr, x0, x0
+ *[0-9a-f]+: 9ac027e0 lsr x0, xzr, x0
+ *[0-9a-f]+: 9adf2400 lsr x0, x0, xzr
+ *[0-9a-f]+: 1ac02800 asr w0, w0, w0
+ *[0-9a-f]+: 1ac0281f asr wzr, w0, w0
+ *[0-9a-f]+: 1ac02be0 asr w0, wzr, w0
+ *[0-9a-f]+: 1adf2800 asr w0, w0, wzr
+ *[0-9a-f]+: 9ac02800 asr x0, x0, x0
+ *[0-9a-f]+: 9ac0281f asr xzr, x0, x0
+ *[0-9a-f]+: 9ac02be0 asr x0, xzr, x0
+ *[0-9a-f]+: 9adf2800 asr x0, x0, xzr
+ *[0-9a-f]+: 1ac02800 asr w0, w0, w0
+ *[0-9a-f]+: 1ac0281f asr wzr, w0, w0
+ *[0-9a-f]+: 1ac02be0 asr w0, wzr, w0
+ *[0-9a-f]+: 1adf2800 asr w0, w0, wzr
+ *[0-9a-f]+: 9ac02800 asr x0, x0, x0
+ *[0-9a-f]+: 9ac0281f asr xzr, x0, x0
+ *[0-9a-f]+: 9ac02be0 asr x0, xzr, x0
+ *[0-9a-f]+: 9adf2800 asr x0, x0, xzr
+ *[0-9a-f]+: 1ac02c00 ror w0, w0, w0
+ *[0-9a-f]+: 1ac02c1f ror wzr, w0, w0
+ *[0-9a-f]+: 1ac02fe0 ror w0, wzr, w0
+ *[0-9a-f]+: 1adf2c00 ror w0, w0, wzr
+ *[0-9a-f]+: 9ac02c00 ror x0, x0, x0
+ *[0-9a-f]+: 9ac02c1f ror xzr, x0, x0
+ *[0-9a-f]+: 9ac02fe0 ror x0, xzr, x0
+ *[0-9a-f]+: 9adf2c00 ror x0, x0, xzr
+ *[0-9a-f]+: 1ac02c00 ror w0, w0, w0
+ *[0-9a-f]+: 1ac02c1f ror wzr, w0, w0
+ *[0-9a-f]+: 1ac02fe0 ror w0, wzr, w0
+ *[0-9a-f]+: 1adf2c00 ror w0, w0, wzr
+ *[0-9a-f]+: 9ac02c00 ror x0, x0, x0
+ *[0-9a-f]+: 9ac02c1f ror xzr, x0, x0
+ *[0-9a-f]+: 9ac02fe0 ror x0, xzr, x0
+ *[0-9a-f]+: 9adf2c00 ror x0, x0, xzr
diff --git a/gas/testsuite/gas/aarch64/dp-general-two-source.s b/gas/testsuite/gas/aarch64/dp-general-two-source.s
new file mode 100644
index 0000000..95f2f00
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/dp-general-two-source.s
@@ -0,0 +1,89 @@
+ udiv w0, w0, w0
+ udiv wzr, w0, w0
+ udiv w0, wzr, w0
+ udiv w0, w0, wzr
+ udiv x0, x0, x0
+ udiv xzr, x0, x0
+ udiv x0, xzr, x0
+ udiv x0, x0, xzr
+
+ sdiv w0, w0, w0
+ sdiv wzr, w0, w0
+ sdiv w0, wzr, w0
+ sdiv w0, w0, wzr
+ sdiv x0, x0, x0
+ sdiv xzr, x0, x0
+ sdiv x0, xzr, x0
+ sdiv x0, x0, xzr
+
+ lslv w0, w0, w0
+ lslv wzr, w0, w0
+ lslv w0, wzr, w0
+ lslv w0, w0, wzr
+ lslv x0, x0, x0
+ lslv xzr, x0, x0
+ lslv x0, xzr, x0
+ lslv x0, x0, xzr
+
+ lsl w0, w0, w0
+ lsl wzr, w0, w0
+ lsl w0, wzr, w0
+ lsl w0, w0, wzr
+ lsl x0, x0, x0
+ lsl xzr, x0, x0
+ lsl x0, xzr, x0
+ lsl x0, x0, xzr
+
+ lsrv w0, w0, w0
+ lsrv wzr, w0, w0
+ lsrv w0, wzr, w0
+ lsrv w0, w0, wzr
+ lsrv x0, x0, x0
+ lsrv xzr, x0, x0
+ lsrv x0, xzr, x0
+ lsrv x0, x0, xzr
+
+ lsr w0, w0, w0
+ lsr wzr, w0, w0
+ lsr w0, wzr, w0
+ lsr w0, w0, wzr
+ lsr x0, x0, x0
+ lsr xzr, x0, x0
+ lsr x0, xzr, x0
+ lsr x0, x0, xzr
+
+ asrv w0, w0, w0
+ asrv wzr, w0, w0
+ asrv w0, wzr, w0
+ asrv w0, w0, wzr
+ asrv x0, x0, x0
+ asrv xzr, x0, x0
+ asrv x0, xzr, x0
+ asrv x0, x0, xzr
+
+ asr w0, w0, w0
+ asr wzr, w0, w0
+ asr w0, wzr, w0
+ asr w0, w0, wzr
+ asr x0, x0, x0
+ asr xzr, x0, x0
+ asr x0, xzr, x0
+ asr x0, x0, xzr
+
+ rorv w0, w0, w0
+ rorv wzr, w0, w0
+ rorv w0, wzr, w0
+ rorv w0, w0, wzr
+ rorv x0, x0, x0
+ rorv xzr, x0, x0
+ rorv x0, xzr, x0
+ rorv x0, x0, xzr
+
+ ror w0, w0, w0
+ ror wzr, w0, w0
+ ror w0, wzr, w0
+ ror w0, w0, wzr
+ ror x0, x0, x0
+ ror xzr, x0, x0
+ ror x0, xzr, x0
+ ror x0, x0, xzr
diff --git a/gas/testsuite/gas/aarch64/exception-generation.d b/gas/testsuite/gas/aarch64/exception-generation.d
new file mode 100644
index 0000000..e35cccd
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/exception-generation.d
@@ -0,0 +1,28 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: d4000001 svc #0x0
+ *[0-9a-f]+: d41fffe1 svc #0xffff
+ *[0-9a-f]+: d4000002 hvc #0x0
+ *[0-9a-f]+: d41fffe2 hvc #0xffff
+ *[0-9a-f]+: d4000003 smc #0x0
+ *[0-9a-f]+: d41fffe3 smc #0xffff
+ *[0-9a-f]+: d4200000 brk #0x0
+ *[0-9a-f]+: d43fffe0 brk #0xffff
+ *[0-9a-f]+: d4400000 hlt #0x0
+ *[0-9a-f]+: d45fffe0 hlt #0xffff
+ *[0-9a-f]+: d4a00001 dcps1
+ *[0-9a-f]+: d4a00001 dcps1
+ *[0-9a-f]+: d4bfffe1 dcps1 #0xffff
+ *[0-9a-f]+: d4a00002 dcps2
+ *[0-9a-f]+: d4a00002 dcps2
+ *[0-9a-f]+: d4bfffe2 dcps2 #0xffff
+ *[0-9a-f]+: d4a00003 dcps3
+ *[0-9a-f]+: d4a00003 dcps3
+ *[0-9a-f]+: d4bfffe3 dcps3 #0xffff
diff --git a/gas/testsuite/gas/aarch64/exception-generation.s b/gas/testsuite/gas/aarch64/exception-generation.s
new file mode 100644
index 0000000..56294fe
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/exception-generation.s
@@ -0,0 +1,26 @@
+ svc #0
+ svc #65535
+
+ hvc #0
+ hvc #65535
+
+ smc #0
+ smc #65535
+
+ brk #0
+ brk #65535
+
+ hlt #0
+ hlt #65535
+
+ dcps1
+ dcps1 #0
+ dcps1 #65535
+
+ dcps2
+ dcps2 #0
+ dcps2 #65535
+
+ dcps3
+ dcps3 #0
+ dcps3 #65535
diff --git a/gas/testsuite/gas/aarch64/f8f16mm-bad.d b/gas/testsuite/gas/aarch64/f8f16mm-bad.d
new file mode 100644
index 0000000..9e034e1
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/f8f16mm-bad.d
@@ -0,0 +1,4 @@
+#name: Illegal test of F8F16MM FMMLA instruction
+#as: -march=armv8-a
+#source: f8f16mm.s
+#error_output: f8f16mm-bad.l
diff --git a/gas/testsuite/gas/aarch64/f8f16mm-bad.l b/gas/testsuite/gas/aarch64/f8f16mm-bad.l
new file mode 100644
index 0000000..01acbac
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/f8f16mm-bad.l
@@ -0,0 +1,9 @@
+[^:]*: Assembler messages:
+.*: Error: selected processor does not support `fmmla v0.8h,v0.16b,v0.16b'
+.*: Error: selected processor does not support `fmmla v0.8h,v0.16b,v31.16b'
+.*: Error: selected processor does not support `fmmla v0.8h,v31.16b,v0.16b'
+.*: Error: selected processor does not support `fmmla v0.8h,v31.16b,v31.16b'
+.*: Error: selected processor does not support `fmmla v31.8h,v0.16b,v0.16b'
+.*: Error: selected processor does not support `fmmla v31.8h,v0.16b,v31.16b'
+.*: Error: selected processor does not support `fmmla v31.8h,v31.16b,v0.16b'
+.*: Error: selected processor does not support `fmmla v31.8h,v31.16b,v31.16b'
diff --git a/gas/testsuite/gas/aarch64/f8f16mm.d b/gas/testsuite/gas/aarch64/f8f16mm.d
new file mode 100644
index 0000000..bcfc919
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/f8f16mm.d
@@ -0,0 +1,18 @@
+#name: F8F16MM FMMLA instructions
+#as: -march=armv8-a+f8f16mm
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section .*:
+
+.* <a>:
+.*: 6e00ec00 fmmla v0.8h, v0.16b, v0.16b
+.*: 6e1fec00 fmmla v0.8h, v0.16b, v31.16b
+.*: 6e00efe0 fmmla v0.8h, v31.16b, v0.16b
+.*: 6e1fefe0 fmmla v0.8h, v31.16b, v31.16b
+.*: 6e00ec1f fmmla v31.8h, v0.16b, v0.16b
+.*: 6e1fec1f fmmla v31.8h, v0.16b, v31.16b
+.*: 6e00efff fmmla v31.8h, v31.16b, v0.16b
+.*: 6e1fefff fmmla v31.8h, v31.16b, v31.16b
diff --git a/gas/testsuite/gas/aarch64/f8f16mm.s b/gas/testsuite/gas/aarch64/f8f16mm.s
new file mode 100644
index 0000000..41d6100
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/f8f16mm.s
@@ -0,0 +1,9 @@
+a:
+ fmmla v0.8h, v0.16b, v0.16b
+ fmmla v0.8h, v0.16b, v31.16b
+ fmmla v0.8h, v31.16b, v0.16b
+ fmmla v0.8h, v31.16b, v31.16b
+ fmmla v31.8h, v0.16b, v0.16b
+ fmmla v31.8h, v0.16b, v31.16b
+ fmmla v31.8h, v31.16b, v0.16b
+ fmmla v31.8h, v31.16b, v31.16b
diff --git a/gas/testsuite/gas/aarch64/f8f16mm_sve2-bad.d b/gas/testsuite/gas/aarch64/f8f16mm_sve2-bad.d
new file mode 100644
index 0000000..4e1f53b
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/f8f16mm_sve2-bad.d
@@ -0,0 +1,4 @@
+#name: Illegal test of F8F16MM SVE2 FMMLA instruction
+#as: -march=armv8-a
+#source: f8f16mm_sve2.s
+#error_output: f8f16mm_sve2-bad.l
diff --git a/gas/testsuite/gas/aarch64/f8f16mm_sve2-bad.l b/gas/testsuite/gas/aarch64/f8f16mm_sve2-bad.l
new file mode 100644
index 0000000..3560c17
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/f8f16mm_sve2-bad.l
@@ -0,0 +1,9 @@
+[^:]*: Assembler messages:
+.*: Error: selected processor does not support `fmmla z0.h,z0.b,z0.b'
+.*: Error: selected processor does not support `fmmla z0.h,z0.b,z31.b'
+.*: Error: selected processor does not support `fmmla z0.h,z31.b,z0.b'
+.*: Error: selected processor does not support `fmmla z0.h,z31.b,z31.b'
+.*: Error: selected processor does not support `fmmla z31.h,z0.b,z0.b'
+.*: Error: selected processor does not support `fmmla z31.h,z0.b,z31.b'
+.*: Error: selected processor does not support `fmmla z31.h,z31.b,z0.b'
+.*: Error: selected processor does not support `fmmla z31.h,z31.b,z31.b'
diff --git a/gas/testsuite/gas/aarch64/f8f16mm_sve2.d b/gas/testsuite/gas/aarch64/f8f16mm_sve2.d
new file mode 100644
index 0000000..3bb69ce
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/f8f16mm_sve2.d
@@ -0,0 +1,18 @@
+#name: F8F16MM SVE2 FMMLA instructions
+#as: -march=armv8-a+sve2+f8f16mm
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section .*:
+
+.* <a>:
+.*: 6460e000 fmmla z0.h, z0.b, z0.b
+.*: 647fe000 fmmla z0.h, z0.b, z31.b
+.*: 6460e3e0 fmmla z0.h, z31.b, z0.b
+.*: 647fe3e0 fmmla z0.h, z31.b, z31.b
+.*: 6460e01f fmmla z31.h, z0.b, z0.b
+.*: 647fe01f fmmla z31.h, z0.b, z31.b
+.*: 6460e3ff fmmla z31.h, z31.b, z0.b
+.*: 647fe3ff fmmla z31.h, z31.b, z31.b
diff --git a/gas/testsuite/gas/aarch64/f8f16mm_sve2.s b/gas/testsuite/gas/aarch64/f8f16mm_sve2.s
new file mode 100644
index 0000000..c1a32c9
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/f8f16mm_sve2.s
@@ -0,0 +1,9 @@
+a:
+ fmmla z0.h, z0.b, z0.b
+ fmmla z0.h, z0.b, z31.b
+ fmmla z0.h, z31.b, z0.b
+ fmmla z0.h, z31.b, z31.b
+ fmmla z31.h, z0.b, z0.b
+ fmmla z31.h, z0.b, z31.b
+ fmmla z31.h, z31.b, z0.b
+ fmmla z31.h, z31.b, z31.b
diff --git a/gas/testsuite/gas/aarch64/f8f32mm-bad.d b/gas/testsuite/gas/aarch64/f8f32mm-bad.d
new file mode 100644
index 0000000..3d920f0
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/f8f32mm-bad.d
@@ -0,0 +1,4 @@
+#name: Illegal test of F8F32MM FMMLA instruction
+#as: -march=armv8-a
+#source: f8f32mm.s
+#error_output: f8f32mm-bad.l
diff --git a/gas/testsuite/gas/aarch64/f8f32mm-bad.l b/gas/testsuite/gas/aarch64/f8f32mm-bad.l
new file mode 100644
index 0000000..910a2e1
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/f8f32mm-bad.l
@@ -0,0 +1,9 @@
+[^:]*: Assembler messages:
+.*: Error: selected processor does not support `fmmla v0.4s,v0.16b,v0.16b'
+.*: Error: selected processor does not support `fmmla v0.4s,v0.16b,v31.16b'
+.*: Error: selected processor does not support `fmmla v0.4s,v31.16b,v0.16b'
+.*: Error: selected processor does not support `fmmla v0.4s,v31.16b,v31.16b'
+.*: Error: selected processor does not support `fmmla v31.4s,v0.16b,v0.16b'
+.*: Error: selected processor does not support `fmmla v31.4s,v0.16b,v31.16b'
+.*: Error: selected processor does not support `fmmla v31.4s,v31.16b,v0.16b'
+.*: Error: selected processor does not support `fmmla v31.4s,v31.16b,v31.16b'
diff --git a/gas/testsuite/gas/aarch64/f8f32mm.d b/gas/testsuite/gas/aarch64/f8f32mm.d
new file mode 100644
index 0000000..b1e6beb
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/f8f32mm.d
@@ -0,0 +1,18 @@
+#name: F8F32MM FMMLA instructions
+#as: -march=armv8-a+f8f32mm
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section .*:
+
+.* <a>:
+.*: 6e80ec00 fmmla v0.4s, v0.16b, v0.16b
+.*: 6e9fec00 fmmla v0.4s, v0.16b, v31.16b
+.*: 6e80efe0 fmmla v0.4s, v31.16b, v0.16b
+.*: 6e9fefe0 fmmla v0.4s, v31.16b, v31.16b
+.*: 6e80ec1f fmmla v31.4s, v0.16b, v0.16b
+.*: 6e9fec1f fmmla v31.4s, v0.16b, v31.16b
+.*: 6e80efff fmmla v31.4s, v31.16b, v0.16b
+.*: 6e9fefff fmmla v31.4s, v31.16b, v31.16b
diff --git a/gas/testsuite/gas/aarch64/f8f32mm.s b/gas/testsuite/gas/aarch64/f8f32mm.s
new file mode 100644
index 0000000..4c8421d
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/f8f32mm.s
@@ -0,0 +1,9 @@
+a:
+ fmmla v0.4s, v0.16b, v0.16b
+ fmmla v0.4s, v0.16b, v31.16b
+ fmmla v0.4s, v31.16b, v0.16b
+ fmmla v0.4s, v31.16b, v31.16b
+ fmmla v31.4s, v0.16b, v0.16b
+ fmmla v31.4s, v0.16b, v31.16b
+ fmmla v31.4s, v31.16b, v0.16b
+ fmmla v31.4s, v31.16b, v31.16b
diff --git a/gas/testsuite/gas/aarch64/f8f32mm_sve2-bad.d b/gas/testsuite/gas/aarch64/f8f32mm_sve2-bad.d
new file mode 100644
index 0000000..200f49c
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/f8f32mm_sve2-bad.d
@@ -0,0 +1,4 @@
+#name: Illegal test of F8F32MM SVE2 FMMLA instruction
+#as: -march=armv8-a
+#source: f8f32mm_sve2.s
+#error_output: f8f32mm_sve2-bad.l
diff --git a/gas/testsuite/gas/aarch64/f8f32mm_sve2-bad.l b/gas/testsuite/gas/aarch64/f8f32mm_sve2-bad.l
new file mode 100644
index 0000000..46b62b2
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/f8f32mm_sve2-bad.l
@@ -0,0 +1,9 @@
+[^:]*: Assembler messages:
+.*: Error: selected processor does not support `fmmla z0.s,z0.b,z0.b'
+.*: Error: selected processor does not support `fmmla z0.s,z0.b,z31.b'
+.*: Error: selected processor does not support `fmmla z0.s,z31.b,z0.b'
+.*: Error: selected processor does not support `fmmla z0.s,z31.b,z31.b'
+.*: Error: selected processor does not support `fmmla z31.s,z0.b,z0.b'
+.*: Error: selected processor does not support `fmmla z31.s,z0.b,z31.b'
+.*: Error: selected processor does not support `fmmla z31.s,z31.b,z0.b'
+.*: Error: selected processor does not support `fmmla z31.s,z31.b,z31.b'
diff --git a/gas/testsuite/gas/aarch64/f8f32mm_sve2.d b/gas/testsuite/gas/aarch64/f8f32mm_sve2.d
new file mode 100644
index 0000000..30670c9
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/f8f32mm_sve2.d
@@ -0,0 +1,18 @@
+#name: F8F32MM SVE2 FMMLA instructions
+#as: -march=armv8-a+sve2+f8f32mm
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section .*:
+
+.* <a>:
+.*: 6420e000 fmmla z0.s, z0.b, z0.b
+.*: 643fe000 fmmla z0.s, z0.b, z31.b
+.*: 6420e3e0 fmmla z0.s, z31.b, z0.b
+.*: 643fe3e0 fmmla z0.s, z31.b, z31.b
+.*: 6420e01f fmmla z31.s, z0.b, z0.b
+.*: 643fe01f fmmla z31.s, z0.b, z31.b
+.*: 6420e3ff fmmla z31.s, z31.b, z0.b
+.*: 643fe3ff fmmla z31.s, z31.b, z31.b
diff --git a/gas/testsuite/gas/aarch64/f8f32mm_sve2.s b/gas/testsuite/gas/aarch64/f8f32mm_sve2.s
new file mode 100644
index 0000000..a293e3f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/f8f32mm_sve2.s
@@ -0,0 +1,9 @@
+a:
+ fmmla z0.s, z0.b, z0.b
+ fmmla z0.s, z0.b, z31.b
+ fmmla z0.s, z31.b, z0.b
+ fmmla z0.s, z31.b, z31.b
+ fmmla z31.s, z0.b, z0.b
+ fmmla z31.s, z0.b, z31.b
+ fmmla z31.s, z31.b, z0.b
+ fmmla z31.s, z31.b, z31.b
diff --git a/gas/testsuite/gas/aarch64/float-fp16.d b/gas/testsuite/gas/aarch64/float-fp16.d
index 3d96a45..c7a1200 100644
--- a/gas/testsuite/gas/aarch64/float-fp16.d
+++ b/gas/testsuite/gas/aarch64/float-fp16.d
@@ -6,167 +6,193 @@
Disassembly of section \.text:
0+ <.*>:
- [0-9a-f]+: 1e200400 fccmp s0, s0, #0x0, eq // eq = none
- [0-9a-f]+: 1ee00400 fccmp h0, h0, #0x0, eq // eq = none
- [0-9a-f]+: 1e22d420 fccmp s1, s2, #0x0, le
- [0-9a-f]+: 1ee2d420 fccmp h1, h2, #0x0, le
- [0-9a-f]+: 1e200410 fccmpe s0, s0, #0x0, eq // eq = none
- [0-9a-f]+: 1ee00410 fccmpe h0, h0, #0x0, eq // eq = none
- [0-9a-f]+: 1e22d430 fccmpe s1, s2, #0x0, le
- [0-9a-f]+: 1ee2d430 fccmpe h1, h2, #0x0, le
- [0-9a-f]+: 1e202000 fcmp s0, s0
- [0-9a-f]+: 1ee02000 fcmp h0, h0
- [0-9a-f]+: 1e222020 fcmp s1, s2
- [0-9a-f]+: 1ee22020 fcmp h1, h2
- [0-9a-f]+: 1e202010 fcmpe s0, s0
- [0-9a-f]+: 1ee02010 fcmpe h0, h0
- [0-9a-f]+: 1e222030 fcmpe s1, s2
- [0-9a-f]+: 1ee22030 fcmpe h1, h2
- [0-9a-f]+: 1e202008 fcmp s0, #0\.0
- [0-9a-f]+: 1ee02008 fcmp h0, #0\.0
- [0-9a-f]+: 1e202018 fcmpe s0, #0\.0
- [0-9a-f]+: 1ee02018 fcmpe h0, #0\.0
- [0-9a-f]+: 1e210c00 fcsel s0, s0, s1, eq // eq = none
- [0-9a-f]+: 1ee10c00 fcsel h0, h0, h1, eq // eq = none
- [0-9a-f]+: 9ee60000 fmov x0, h0
- [0-9a-f]+: 1ee60000 fmov w0, h0
- [0-9a-f]+: 9ee70001 fmov h1, x0
- [0-9a-f]+: 1ee70001 fmov h1, w0
- [0-9a-f]+: 1ee0c020 fabs h0, h1
- [0-9a-f]+: 1e20c020 fabs s0, s1
- [0-9a-f]+: 1e60c020 fabs d0, d1
- [0-9a-f]+: 1ee14020 fneg h0, h1
- [0-9a-f]+: 1e214020 fneg s0, s1
- [0-9a-f]+: 1e614020 fneg d0, d1
- [0-9a-f]+: 1ee1c020 fsqrt h0, h1
- [0-9a-f]+: 1e21c020 fsqrt s0, s1
- [0-9a-f]+: 1e61c020 fsqrt d0, d1
- [0-9a-f]+: 1ee44020 frintn h0, h1
- [0-9a-f]+: 1e244020 frintn s0, s1
- [0-9a-f]+: 1e644020 frintn d0, d1
- [0-9a-f]+: 1ee4c020 frintp h0, h1
- [0-9a-f]+: 1e24c020 frintp s0, s1
- [0-9a-f]+: 1e64c020 frintp d0, d1
- [0-9a-f]+: 1ee54020 frintm h0, h1
- [0-9a-f]+: 1e254020 frintm s0, s1
- [0-9a-f]+: 1e654020 frintm d0, d1
- [0-9a-f]+: 1ee5c020 frintz h0, h1
- [0-9a-f]+: 1e25c020 frintz s0, s1
- [0-9a-f]+: 1e65c020 frintz d0, d1
- [0-9a-f]+: 1ee64020 frinta h0, h1
- [0-9a-f]+: 1e264020 frinta s0, s1
- [0-9a-f]+: 1e664020 frinta d0, d1
- [0-9a-f]+: 1ee74020 frintx h0, h1
- [0-9a-f]+: 1e274020 frintx s0, s1
- [0-9a-f]+: 1e674020 frintx d0, d1
- [0-9a-f]+: 1ee7c020 frinti h0, h1
- [0-9a-f]+: 1e27c020 frinti s0, s1
- [0-9a-f]+: 1e67c020 frinti d0, d1
- [0-9a-f]+: 1ee20820 fmul h0, h1, h2
- [0-9a-f]+: 1e220820 fmul s0, s1, s2
- [0-9a-f]+: 1e620820 fmul d0, d1, d2
- [0-9a-f]+: 1ee21820 fdiv h0, h1, h2
- [0-9a-f]+: 1e221820 fdiv s0, s1, s2
- [0-9a-f]+: 1e621820 fdiv d0, d1, d2
- [0-9a-f]+: 1ee22820 fadd h0, h1, h2
- [0-9a-f]+: 1e222820 fadd s0, s1, s2
- [0-9a-f]+: 1e622820 fadd d0, d1, d2
- [0-9a-f]+: 1ee23820 fsub h0, h1, h2
- [0-9a-f]+: 1e223820 fsub s0, s1, s2
- [0-9a-f]+: 1e623820 fsub d0, d1, d2
- [0-9a-f]+: 1ee24820 fmax h0, h1, h2
- [0-9a-f]+: 1e224820 fmax s0, s1, s2
- [0-9a-f]+: 1e624820 fmax d0, d1, d2
- [0-9a-f]+: 1ee25820 fmin h0, h1, h2
- [0-9a-f]+: 1e225820 fmin s0, s1, s2
- [0-9a-f]+: 1e625820 fmin d0, d1, d2
- [0-9a-f]+: 1ee26820 fmaxnm h0, h1, h2
- [0-9a-f]+: 1e226820 fmaxnm s0, s1, s2
- [0-9a-f]+: 1e626820 fmaxnm d0, d1, d2
- [0-9a-f]+: 1ee27820 fminnm h0, h1, h2
- [0-9a-f]+: 1e227820 fminnm s0, s1, s2
- [0-9a-f]+: 1e627820 fminnm d0, d1, d2
- [0-9a-f]+: 1ee28820 fnmul h0, h1, h2
- [0-9a-f]+: 1e228820 fnmul s0, s1, s2
- [0-9a-f]+: 1e628820 fnmul d0, d1, d2
- [0-9a-f]+: 1fc20c20 fmadd h0, h1, h2, h3
- [0-9a-f]+: 1f020c20 fmadd s0, s1, s2, s3
- [0-9a-f]+: 1f420c20 fmadd d0, d1, d2, d3
- [0-9a-f]+: 1fc28c20 fmsub h0, h1, h2, h3
- [0-9a-f]+: 1f028c20 fmsub s0, s1, s2, s3
- [0-9a-f]+: 1f428c20 fmsub d0, d1, d2, d3
- [0-9a-f]+: 1fe20c20 fnmadd h0, h1, h2, h3
- [0-9a-f]+: 1f220c20 fnmadd s0, s1, s2, s3
- [0-9a-f]+: 1f620c20 fnmadd d0, d1, d2, d3
- [0-9a-f]+: 1fe28c20 fnmsub h0, h1, h2, h3
- [0-9a-f]+: 1f228c20 fnmsub s0, s1, s2, s3
- [0-9a-f]+: 1f628c20 fnmsub d0, d1, d2, d3
- [0-9a-f]+: 1e2e1000 fmov s0, #1\.000000000000000000e\+00
- [0-9a-f]+: 1eee1000 fmov h0, #1\.000000000000000000e\+00
- [0-9a-f]+: 1e02f820 scvtf s0, w1, #2
- [0-9a-f]+: 9e02f420 scvtf s0, x1, #3
- [0-9a-f]+: 1ec2f820 scvtf h0, w1, #2
- [0-9a-f]+: 9ec2f420 scvtf h0, x1, #3
- [0-9a-f]+: 1e03f820 ucvtf s0, w1, #2
- [0-9a-f]+: 9e03f420 ucvtf s0, x1, #3
- [0-9a-f]+: 1ec3f820 ucvtf h0, w1, #2
- [0-9a-f]+: 9ec3f420 ucvtf h0, x1, #3
- [0-9a-f]+: 1e58f801 fcvtzs w1, d0, #2
- [0-9a-f]+: 9e58f401 fcvtzs x1, d0, #3
- [0-9a-f]+: 1ed8f801 fcvtzs w1, h0, #2
- [0-9a-f]+: 9ed8f401 fcvtzs x1, h0, #3
- [0-9a-f]+: 1e59f801 fcvtzu w1, d0, #2
- [0-9a-f]+: 9e59f401 fcvtzu x1, d0, #3
- [0-9a-f]+: 1ed9f801 fcvtzu w1, h0, #2
- [0-9a-f]+: 9ed9f401 fcvtzu x1, h0, #3
- [0-9a-f]+: 1e200001 fcvtns w1, s0
- [0-9a-f]+: 9e600001 fcvtns x1, d0
- [0-9a-f]+: 1ee00001 fcvtns w1, h0
- [0-9a-f]+: 9ee00001 fcvtns x1, h0
- [0-9a-f]+: 1e210001 fcvtnu w1, s0
- [0-9a-f]+: 9e610001 fcvtnu x1, d0
- [0-9a-f]+: 1ee10001 fcvtnu w1, h0
- [0-9a-f]+: 9ee10001 fcvtnu x1, h0
- [0-9a-f]+: 1e250001 fcvtau w1, s0
- [0-9a-f]+: 9e650001 fcvtau x1, d0
- [0-9a-f]+: 1ee50001 fcvtau w1, h0
- [0-9a-f]+: 9ee50001 fcvtau x1, h0
- [0-9a-f]+: 1e240001 fcvtas w1, s0
- [0-9a-f]+: 9e640001 fcvtas x1, d0
- [0-9a-f]+: 1ee40001 fcvtas w1, h0
- [0-9a-f]+: 9ee40001 fcvtas x1, h0
- [0-9a-f]+: 1e280001 fcvtps w1, s0
- [0-9a-f]+: 9e680001 fcvtps x1, d0
- [0-9a-f]+: 1ee80001 fcvtps w1, h0
- [0-9a-f]+: 9ee80001 fcvtps x1, h0
- [0-9a-f]+: 1e290001 fcvtpu w1, s0
- [0-9a-f]+: 9e690001 fcvtpu x1, d0
- [0-9a-f]+: 1ee90001 fcvtpu w1, h0
- [0-9a-f]+: 9ee90001 fcvtpu x1, h0
- [0-9a-f]+: 1e300001 fcvtms w1, s0
- [0-9a-f]+: 9e700001 fcvtms x1, d0
- [0-9a-f]+: 1ef00001 fcvtms w1, h0
- [0-9a-f]+: 9ef00001 fcvtms x1, h0
- [0-9a-f]+: 1e310001 fcvtmu w1, s0
- [0-9a-f]+: 9e710001 fcvtmu x1, d0
- [0-9a-f]+: 1ef10001 fcvtmu w1, h0
- [0-9a-f]+: 9ef10001 fcvtmu x1, h0
- [0-9a-f]+: 1e220020 scvtf s0, w1
- [0-9a-f]+: 9e620020 scvtf d0, x1
- [0-9a-f]+: 1ee20020 scvtf h0, w1
- [0-9a-f]+: 9ee20020 scvtf h0, x1
- [0-9a-f]+: 1e230020 ucvtf s0, w1
- [0-9a-f]+: 9e630020 ucvtf d0, x1
- [0-9a-f]+: 1ee30020 ucvtf h0, w1
- [0-9a-f]+: 9ee30020 ucvtf h0, x1
- [0-9a-f]+: 1e604020 fmov d0, d1
- [0-9a-f]+: 1e204020 fmov s0, s1
- [0-9a-f]+: 1ee04020 fmov h0, h1
- [0-9a-f]+: 9ee60020 fmov x0, h1
- [0-9a-f]+: 1ee60020 fmov w0, h1
- [0-9a-f]+: 9ee70001 fmov h1, x0
- [0-9a-f]+: 1ee70001 fmov h1, w0
- [0-9a-f]+: 1e260020 fmov w0, s1
- [0-9a-f]+: 9e660020 fmov x0, d1
- [0-9a-f]+: 1e270001 fmov s1, w0
- [0-9a-f]+: 9e670001 fmov d1, x0
+ *[0-9a-f]+: 1e200400 fccmp s0, s0, #0x0, eq // eq = none
+ *[0-9a-f]+: 1ee00400 fccmp h0, h0, #0x0, eq // eq = none
+ *[0-9a-f]+: 1e22d420 fccmp s1, s2, #0x0, le
+ *[0-9a-f]+: 1ee2d420 fccmp h1, h2, #0x0, le
+ *[0-9a-f]+: 1e200410 fccmpe s0, s0, #0x0, eq // eq = none
+ *[0-9a-f]+: 1ee00410 fccmpe h0, h0, #0x0, eq // eq = none
+ *[0-9a-f]+: 1e22d430 fccmpe s1, s2, #0x0, le
+ *[0-9a-f]+: 1ee2d430 fccmpe h1, h2, #0x0, le
+ *[0-9a-f]+: 1e202000 fcmp s0, s0
+ *[0-9a-f]+: 1ee02000 fcmp h0, h0
+ *[0-9a-f]+: 1e222020 fcmp s1, s2
+ *[0-9a-f]+: 1ee22020 fcmp h1, h2
+ *[0-9a-f]+: 1e202010 fcmpe s0, s0
+ *[0-9a-f]+: 1ee02010 fcmpe h0, h0
+ *[0-9a-f]+: 1e222030 fcmpe s1, s2
+ *[0-9a-f]+: 1ee22030 fcmpe h1, h2
+ *[0-9a-f]+: 1e202008 fcmp s0, #0\.0
+ *[0-9a-f]+: 1ee02008 fcmp h0, #0\.0
+ *[0-9a-f]+: 1e202018 fcmpe s0, #0\.0
+ *[0-9a-f]+: 1ee02018 fcmpe h0, #0\.0
+ *[0-9a-f]+: 1e210c00 fcsel s0, s0, s1, eq // eq = none
+ *[0-9a-f]+: 1ee10c00 fcsel h0, h0, h1, eq // eq = none
+ *[0-9a-f]+: 9ee60000 fmov x0, h0
+ *[0-9a-f]+: 1ee60000 fmov w0, h0
+ *[0-9a-f]+: 9ee70001 fmov h1, x0
+ *[0-9a-f]+: 1ee70001 fmov h1, w0
+ *[0-9a-f]+: 1ee0c020 fabs h0, h1
+ *[0-9a-f]+: 1e20c020 fabs s0, s1
+ *[0-9a-f]+: 1e60c020 fabs d0, d1
+ *[0-9a-f]+: 1ee14020 fneg h0, h1
+ *[0-9a-f]+: 1e214020 fneg s0, s1
+ *[0-9a-f]+: 1e614020 fneg d0, d1
+ *[0-9a-f]+: 1ee1c020 fsqrt h0, h1
+ *[0-9a-f]+: 1e21c020 fsqrt s0, s1
+ *[0-9a-f]+: 1e61c020 fsqrt d0, d1
+ *[0-9a-f]+: 1ee24000 fcvt s0, h0
+ *[0-9a-f]+: 1ee2401f fcvt s31, h0
+ *[0-9a-f]+: 1ee243e0 fcvt s0, h31
+ *[0-9a-f]+: 1ee2c000 fcvt d0, h0
+ *[0-9a-f]+: 1ee2c01f fcvt d31, h0
+ *[0-9a-f]+: 1ee2c3e0 fcvt d0, h31
+ *[0-9a-f]+: 1e23c000 fcvt h0, s0
+ *[0-9a-f]+: 1e23c01f fcvt h31, s0
+ *[0-9a-f]+: 1e23c3e0 fcvt h0, s31
+ *[0-9a-f]+: 1e22c000 fcvt d0, s0
+ *[0-9a-f]+: 1e22c01f fcvt d31, s0
+ *[0-9a-f]+: 1e22c3e0 fcvt d0, s31
+ *[0-9a-f]+: 1e63c000 fcvt h0, d0
+ *[0-9a-f]+: 1e63c01f fcvt h31, d0
+ *[0-9a-f]+: 1e63c3e0 fcvt h0, d31
+ *[0-9a-f]+: 1e624000 fcvt s0, d0
+ *[0-9a-f]+: 1e62401f fcvt s31, d0
+ *[0-9a-f]+: 1e6243e0 fcvt s0, d31
+ *[0-9a-f]+: 1ee44020 frintn h0, h1
+ *[0-9a-f]+: 1e244020 frintn s0, s1
+ *[0-9a-f]+: 1e644020 frintn d0, d1
+ *[0-9a-f]+: 1ee4c020 frintp h0, h1
+ *[0-9a-f]+: 1e24c020 frintp s0, s1
+ *[0-9a-f]+: 1e64c020 frintp d0, d1
+ *[0-9a-f]+: 1ee54020 frintm h0, h1
+ *[0-9a-f]+: 1e254020 frintm s0, s1
+ *[0-9a-f]+: 1e654020 frintm d0, d1
+ *[0-9a-f]+: 1ee5c020 frintz h0, h1
+ *[0-9a-f]+: 1e25c020 frintz s0, s1
+ *[0-9a-f]+: 1e65c020 frintz d0, d1
+ *[0-9a-f]+: 1ee64020 frinta h0, h1
+ *[0-9a-f]+: 1e264020 frinta s0, s1
+ *[0-9a-f]+: 1e664020 frinta d0, d1
+ *[0-9a-f]+: 1ee74020 frintx h0, h1
+ *[0-9a-f]+: 1e274020 frintx s0, s1
+ *[0-9a-f]+: 1e674020 frintx d0, d1
+ *[0-9a-f]+: 1ee7c020 frinti h0, h1
+ *[0-9a-f]+: 1e27c020 frinti s0, s1
+ *[0-9a-f]+: 1e67c020 frinti d0, d1
+ *[0-9a-f]+: 1ee20820 fmul h0, h1, h2
+ *[0-9a-f]+: 1e220820 fmul s0, s1, s2
+ *[0-9a-f]+: 1e620820 fmul d0, d1, d2
+ *[0-9a-f]+: 1ee21820 fdiv h0, h1, h2
+ *[0-9a-f]+: 1e221820 fdiv s0, s1, s2
+ *[0-9a-f]+: 1e621820 fdiv d0, d1, d2
+ *[0-9a-f]+: 1ee22820 fadd h0, h1, h2
+ *[0-9a-f]+: 1e222820 fadd s0, s1, s2
+ *[0-9a-f]+: 1e622820 fadd d0, d1, d2
+ *[0-9a-f]+: 1ee23820 fsub h0, h1, h2
+ *[0-9a-f]+: 1e223820 fsub s0, s1, s2
+ *[0-9a-f]+: 1e623820 fsub d0, d1, d2
+ *[0-9a-f]+: 1ee24820 fmax h0, h1, h2
+ *[0-9a-f]+: 1e224820 fmax s0, s1, s2
+ *[0-9a-f]+: 1e624820 fmax d0, d1, d2
+ *[0-9a-f]+: 1ee25820 fmin h0, h1, h2
+ *[0-9a-f]+: 1e225820 fmin s0, s1, s2
+ *[0-9a-f]+: 1e625820 fmin d0, d1, d2
+ *[0-9a-f]+: 1ee26820 fmaxnm h0, h1, h2
+ *[0-9a-f]+: 1e226820 fmaxnm s0, s1, s2
+ *[0-9a-f]+: 1e626820 fmaxnm d0, d1, d2
+ *[0-9a-f]+: 1ee27820 fminnm h0, h1, h2
+ *[0-9a-f]+: 1e227820 fminnm s0, s1, s2
+ *[0-9a-f]+: 1e627820 fminnm d0, d1, d2
+ *[0-9a-f]+: 1ee28820 fnmul h0, h1, h2
+ *[0-9a-f]+: 1e228820 fnmul s0, s1, s2
+ *[0-9a-f]+: 1e628820 fnmul d0, d1, d2
+ *[0-9a-f]+: 1fc20c20 fmadd h0, h1, h2, h3
+ *[0-9a-f]+: 1f020c20 fmadd s0, s1, s2, s3
+ *[0-9a-f]+: 1f420c20 fmadd d0, d1, d2, d3
+ *[0-9a-f]+: 1fc28c20 fmsub h0, h1, h2, h3
+ *[0-9a-f]+: 1f028c20 fmsub s0, s1, s2, s3
+ *[0-9a-f]+: 1f428c20 fmsub d0, d1, d2, d3
+ *[0-9a-f]+: 1fe20c20 fnmadd h0, h1, h2, h3
+ *[0-9a-f]+: 1f220c20 fnmadd s0, s1, s2, s3
+ *[0-9a-f]+: 1f620c20 fnmadd d0, d1, d2, d3
+ *[0-9a-f]+: 1fe28c20 fnmsub h0, h1, h2, h3
+ *[0-9a-f]+: 1f228c20 fnmsub s0, s1, s2, s3
+ *[0-9a-f]+: 1f628c20 fnmsub d0, d1, d2, d3
+ *[0-9a-f]+: 1e2e1000 fmov s0, #1\.000000000000000000e\+00
+ *[0-9a-f]+: 1eee1000 fmov h0, #1\.000000000000000000e\+00
+ *[0-9a-f]+: 1e02f820 scvtf s0, w1, #2
+ *[0-9a-f]+: 9e02f420 scvtf s0, x1, #3
+ *[0-9a-f]+: 1ec2f820 scvtf h0, w1, #2
+ *[0-9a-f]+: 9ec2f420 scvtf h0, x1, #3
+ *[0-9a-f]+: 1e03f820 ucvtf s0, w1, #2
+ *[0-9a-f]+: 9e03f420 ucvtf s0, x1, #3
+ *[0-9a-f]+: 1ec3f820 ucvtf h0, w1, #2
+ *[0-9a-f]+: 9ec3f420 ucvtf h0, x1, #3
+ *[0-9a-f]+: 1e58f801 fcvtzs w1, d0, #2
+ *[0-9a-f]+: 9e58f401 fcvtzs x1, d0, #3
+ *[0-9a-f]+: 1ed8f801 fcvtzs w1, h0, #2
+ *[0-9a-f]+: 9ed8f401 fcvtzs x1, h0, #3
+ *[0-9a-f]+: 1e59f801 fcvtzu w1, d0, #2
+ *[0-9a-f]+: 9e59f401 fcvtzu x1, d0, #3
+ *[0-9a-f]+: 1ed9f801 fcvtzu w1, h0, #2
+ *[0-9a-f]+: 9ed9f401 fcvtzu x1, h0, #3
+ *[0-9a-f]+: 1e200001 fcvtns w1, s0
+ *[0-9a-f]+: 9e600001 fcvtns x1, d0
+ *[0-9a-f]+: 1ee00001 fcvtns w1, h0
+ *[0-9a-f]+: 9ee00001 fcvtns x1, h0
+ *[0-9a-f]+: 1e210001 fcvtnu w1, s0
+ *[0-9a-f]+: 9e610001 fcvtnu x1, d0
+ *[0-9a-f]+: 1ee10001 fcvtnu w1, h0
+ *[0-9a-f]+: 9ee10001 fcvtnu x1, h0
+ *[0-9a-f]+: 1e250001 fcvtau w1, s0
+ *[0-9a-f]+: 9e650001 fcvtau x1, d0
+ *[0-9a-f]+: 1ee50001 fcvtau w1, h0
+ *[0-9a-f]+: 9ee50001 fcvtau x1, h0
+ *[0-9a-f]+: 1e240001 fcvtas w1, s0
+ *[0-9a-f]+: 9e640001 fcvtas x1, d0
+ *[0-9a-f]+: 1ee40001 fcvtas w1, h0
+ *[0-9a-f]+: 9ee40001 fcvtas x1, h0
+ *[0-9a-f]+: 1e280001 fcvtps w1, s0
+ *[0-9a-f]+: 9e680001 fcvtps x1, d0
+ *[0-9a-f]+: 1ee80001 fcvtps w1, h0
+ *[0-9a-f]+: 9ee80001 fcvtps x1, h0
+ *[0-9a-f]+: 1e290001 fcvtpu w1, s0
+ *[0-9a-f]+: 9e690001 fcvtpu x1, d0
+ *[0-9a-f]+: 1ee90001 fcvtpu w1, h0
+ *[0-9a-f]+: 9ee90001 fcvtpu x1, h0
+ *[0-9a-f]+: 1e300001 fcvtms w1, s0
+ *[0-9a-f]+: 9e700001 fcvtms x1, d0
+ *[0-9a-f]+: 1ef00001 fcvtms w1, h0
+ *[0-9a-f]+: 9ef00001 fcvtms x1, h0
+ *[0-9a-f]+: 1e310001 fcvtmu w1, s0
+ *[0-9a-f]+: 9e710001 fcvtmu x1, d0
+ *[0-9a-f]+: 1ef10001 fcvtmu w1, h0
+ *[0-9a-f]+: 9ef10001 fcvtmu x1, h0
+ *[0-9a-f]+: 1e380001 fcvtzs w1, s0
+ *[0-9a-f]+: 9e780001 fcvtzs x1, d0
+ *[0-9a-f]+: 1ef80001 fcvtzs w1, h0
+ *[0-9a-f]+: 9ef80001 fcvtzs x1, h0
+ *[0-9a-f]+: 1e390001 fcvtzu w1, s0
+ *[0-9a-f]+: 9e790001 fcvtzu x1, d0
+ *[0-9a-f]+: 1ef90001 fcvtzu w1, h0
+ *[0-9a-f]+: 9ef90001 fcvtzu x1, h0
+ *[0-9a-f]+: 1e220020 scvtf s0, w1
+ *[0-9a-f]+: 9e620020 scvtf d0, x1
+ *[0-9a-f]+: 1ee20020 scvtf h0, w1
+ *[0-9a-f]+: 9ee20020 scvtf h0, x1
+ *[0-9a-f]+: 1e230020 ucvtf s0, w1
+ *[0-9a-f]+: 9e630020 ucvtf d0, x1
+ *[0-9a-f]+: 1ee30020 ucvtf h0, w1
+ *[0-9a-f]+: 9ee30020 ucvtf h0, x1
+ *[0-9a-f]+: 1e604020 fmov d0, d1
+ *[0-9a-f]+: 1e204020 fmov s0, s1
+ *[0-9a-f]+: 1ee04020 fmov h0, h1
+ *[0-9a-f]+: 9ee60020 fmov x0, h1
+ *[0-9a-f]+: 1ee60020 fmov w0, h1
+ *[0-9a-f]+: 9ee70001 fmov h1, x0
+ *[0-9a-f]+: 1ee70001 fmov h1, w0
+ *[0-9a-f]+: 1e260020 fmov w0, s1
+ *[0-9a-f]+: 9e660020 fmov x0, d1
+ *[0-9a-f]+: 1e270001 fmov s1, w0
+ *[0-9a-f]+: 9e670001 fmov d1, x0
diff --git a/gas/testsuite/gas/aarch64/float-fp16.s b/gas/testsuite/gas/aarch64/float-fp16.s
index 0c30038..e5d13bd 100644
--- a/gas/testsuite/gas/aarch64/float-fp16.s
+++ b/gas/testsuite/gas/aarch64/float-fp16.s
@@ -43,11 +43,30 @@
.endm
.text
- .irp op, fabs, fneg, fsqrt, frintn, frintp, frintm, frintz
+ .irp op, fabs, fneg, fsqrt
sdp1src \op
.endr
- .irp op, frinta, frintx, frinti
+ fcvt s0, h0
+ fcvt s31, h0
+ fcvt s0, h31
+ fcvt d0, h0
+ fcvt d31, h0
+ fcvt d0, h31
+ fcvt h0, s0
+ fcvt h31, s0
+ fcvt h0, s31
+ fcvt d0, s0
+ fcvt d31, s0
+ fcvt d0, s31
+ fcvt h0, d0
+ fcvt h31, d0
+ fcvt h0, d31
+ fcvt s0, d0
+ fcvt s31, d0
+ fcvt s0, d31
+
+ .irp op, frintn, frintp, frintm, frintz, frinta, frintx, frinti
sdp1src \op
.endr
@@ -128,6 +147,11 @@
scvt_fp2int \op
.endr
+ .text
+ .irp op, fcvtzs, fcvtzu
+ scvt_fp2int \op
+ .endr
+
.irp op, scvtf, ucvtf
scvt_int2fp \op
.endr
diff --git a/gas/testsuite/gas/aarch64/fprcvt.d b/gas/testsuite/gas/aarch64/fprcvt.d
new file mode 100644
index 0000000..9129858
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/fprcvt.d
@@ -0,0 +1,176 @@
+#name: FPRCVT instructions
+#as: -march=armv8-a+fprcvt
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section .*:
+
+.* <a>:
+.*: 1efa0000 fcvtas s0, h0
+.*: 1efa001f fcvtas s31, h0
+.*: 1efa03e0 fcvtas s0, h31
+.*: 9e3a0000 fcvtas d0, s0
+.*: 9e3a001f fcvtas d31, s0
+.*: 9e3a03e0 fcvtas d0, s31
+.*: 9efa0000 fcvtas d0, h0
+.*: 9efa001f fcvtas d31, h0
+.*: 9efa03e0 fcvtas d0, h31
+.*: 1e7a0000 fcvtas s0, d0
+.*: 1e7a001f fcvtas s31, d0
+.*: 1e7a03e0 fcvtas s0, d31
+
+.* <b>:
+.*: 1efb0000 fcvtau s0, h0
+.*: 1efb001f fcvtau s31, h0
+.*: 1efb03e0 fcvtau s0, h31
+.*: 9e3b0000 fcvtau d0, s0
+.*: 9e3b001f fcvtau d31, s0
+.*: 9e3b03e0 fcvtau d0, s31
+.*: 9efb0000 fcvtau d0, h0
+.*: 9efb001f fcvtau d31, h0
+.*: 9efb03e0 fcvtau d0, h31
+.*: 1e7b0000 fcvtau s0, d0
+.*: 1e7b001f fcvtau s31, d0
+.*: 1e7b03e0 fcvtau s0, d31
+
+.* <c>:
+.*: 1ef40000 fcvtms s0, h0
+.*: 1ef4001f fcvtms s31, h0
+.*: 1ef403e0 fcvtms s0, h31
+.*: 9e340000 fcvtms d0, s0
+.*: 9e34001f fcvtms d31, s0
+.*: 9e3403e0 fcvtms d0, s31
+.*: 9ef40000 fcvtms d0, h0
+.*: 9ef4001f fcvtms d31, h0
+.*: 9ef403e0 fcvtms d0, h31
+.*: 1e740000 fcvtms s0, d0
+.*: 1e74001f fcvtms s31, d0
+.*: 1e7403e0 fcvtms s0, d31
+
+.* <d>:
+.*: 1ef50000 fcvtmu s0, h0
+.*: 1ef5001f fcvtmu s31, h0
+.*: 1ef503e0 fcvtmu s0, h31
+.*: 9e350000 fcvtmu d0, s0
+.*: 9e35001f fcvtmu d31, s0
+.*: 9e3503e0 fcvtmu d0, s31
+.*: 9ef50000 fcvtmu d0, h0
+.*: 9ef5001f fcvtmu d31, h0
+.*: 9ef503e0 fcvtmu d0, h31
+.*: 1e750000 fcvtmu s0, d0
+.*: 1e75001f fcvtmu s31, d0
+.*: 1e7503e0 fcvtmu s0, d31
+
+.* <e>:
+.*: 1eea0000 fcvtns s0, h0
+.*: 1eea001f fcvtns s31, h0
+.*: 1eea03e0 fcvtns s0, h31
+.*: 9e2a0000 fcvtns d0, s0
+.*: 9e2a001f fcvtns d31, s0
+.*: 9e2a03e0 fcvtns d0, s31
+.*: 9eea0000 fcvtns d0, h0
+.*: 9eea001f fcvtns d31, h0
+.*: 9eea03e0 fcvtns d0, h31
+.*: 1e6a0000 fcvtns s0, d0
+.*: 1e6a001f fcvtns s31, d0
+.*: 1e6a03e0 fcvtns s0, d31
+
+.* <f>:
+.*: 1eeb0000 fcvtnu s0, h0
+.*: 1eeb001f fcvtnu s31, h0
+.*: 1eeb03e0 fcvtnu s0, h31
+.*: 9e2b0000 fcvtnu d0, s0
+.*: 9e2b001f fcvtnu d31, s0
+.*: 9e2b03e0 fcvtnu d0, s31
+.*: 9eeb0000 fcvtnu d0, h0
+.*: 9eeb001f fcvtnu d31, h0
+.*: 9eeb03e0 fcvtnu d0, h31
+.*: 1e6b0000 fcvtnu s0, d0
+.*: 1e6b001f fcvtnu s31, d0
+.*: 1e6b03e0 fcvtnu s0, d31
+
+.* <g>:
+.*: 1ef20000 fcvtps s0, h0
+.*: 1ef2001f fcvtps s31, h0
+.*: 1ef203e0 fcvtps s0, h31
+.*: 9e320000 fcvtps d0, s0
+.*: 9e32001f fcvtps d31, s0
+.*: 9e3203e0 fcvtps d0, s31
+.*: 9ef20000 fcvtps d0, h0
+.*: 9ef2001f fcvtps d31, h0
+.*: 9ef203e0 fcvtps d0, h31
+.*: 1e720000 fcvtps s0, d0
+.*: 1e72001f fcvtps s31, d0
+.*: 1e7203e0 fcvtps s0, d31
+
+.* <h>:
+.*: 1ef30000 fcvtpu s0, h0
+.*: 1ef3001f fcvtpu s31, h0
+.*: 1ef303e0 fcvtpu s0, h31
+.*: 9e330000 fcvtpu d0, s0
+.*: 9e33001f fcvtpu d31, s0
+.*: 9e3303e0 fcvtpu d0, s31
+.*: 9ef30000 fcvtpu d0, h0
+.*: 9ef3001f fcvtpu d31, h0
+.*: 9ef303e0 fcvtpu d0, h31
+.*: 1e730000 fcvtpu s0, d0
+.*: 1e73001f fcvtpu s31, d0
+.*: 1e7303e0 fcvtpu s0, d31
+
+.* <i>:
+.*: 1ef60000 fcvtzs s0, h0
+.*: 1ef6001f fcvtzs s31, h0
+.*: 1ef603e0 fcvtzs s0, h31
+.*: 9e360000 fcvtzs d0, s0
+.*: 9e36001f fcvtzs d31, s0
+.*: 9e3603e0 fcvtzs d0, s31
+.*: 9ef60000 fcvtzs d0, h0
+.*: 9ef6001f fcvtzs d31, h0
+.*: 9ef603e0 fcvtzs d0, h31
+.*: 1e760000 fcvtzs s0, d0
+.*: 1e76001f fcvtzs s31, d0
+.*: 1e7603e0 fcvtzs s0, d31
+
+.* <j>:
+.*: 1ef70000 fcvtzu s0, h0
+.*: 1ef7001f fcvtzu s31, h0
+.*: 1ef703e0 fcvtzu s0, h31
+.*: 9e370000 fcvtzu d0, s0
+.*: 9e37001f fcvtzu d31, s0
+.*: 9e3703e0 fcvtzu d0, s31
+.*: 9ef70000 fcvtzu d0, h0
+.*: 9ef7001f fcvtzu d31, h0
+.*: 9ef703e0 fcvtzu d0, h31
+.*: 1e770000 fcvtzu s0, d0
+.*: 1e77001f fcvtzu s31, d0
+.*: 1e7703e0 fcvtzu s0, d31
+
+.* <k>:
+.*: 1efc0000 scvtf h0, s0
+.*: 1efc001f scvtf h31, s0
+.*: 1efc03e0 scvtf h0, s31
+.*: 1e7c0000 scvtf d0, s0
+.*: 1e7c001f scvtf d31, s0
+.*: 1e7c03e0 scvtf d0, s31
+.*: 9efc0000 scvtf h0, d0
+.*: 9efc001f scvtf h31, d0
+.*: 9efc03e0 scvtf h0, d31
+.*: 9e3c0000 scvtf s0, d0
+.*: 9e3c001f scvtf s31, d0
+.*: 9e3c03e0 scvtf s0, d31
+
+.* <l>:
+.*: 1efd0000 ucvtf h0, s0
+.*: 1efd001f ucvtf h31, s0
+.*: 1efd03e0 ucvtf h0, s31
+.*: 1e7d0000 ucvtf d0, s0
+.*: 1e7d001f ucvtf d31, s0
+.*: 1e7d03e0 ucvtf d0, s31
+.*: 9efd0000 ucvtf h0, d0
+.*: 9efd001f ucvtf h31, d0
+.*: 9efd03e0 ucvtf h0, d31
+.*: 9e3d0000 ucvtf s0, d0
+.*: 9e3d001f ucvtf s31, d0
+.*: 9e3d03e0 ucvtf s0, d31
diff --git a/gas/testsuite/gas/aarch64/fprcvt.s b/gas/testsuite/gas/aarch64/fprcvt.s
new file mode 100644
index 0000000..3b09195
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/fprcvt.s
@@ -0,0 +1,159 @@
+/* fprcvt.s Test file for AArch64 floating-point<->fixed-point
+ conversion and floating-point<->integer conversion instructions. */
+
+a:
+ fcvtas s0, h0
+ fcvtas s31, h0
+ fcvtas s0, h31
+ fcvtas d0, s0
+ fcvtas d31, s0
+ fcvtas d0, s31
+ fcvtas d0, h0
+ fcvtas d31, h0
+ fcvtas d0, h31
+ fcvtas s0, d0
+ fcvtas s31, d0
+ fcvtas s0, d31
+b:
+ fcvtau s0, h0
+ fcvtau s31, h0
+ fcvtau s0, h31
+ fcvtau d0, s0
+ fcvtau d31, s0
+ fcvtau d0, s31
+ fcvtau d0, h0
+ fcvtau d31, h0
+ fcvtau d0, h31
+ fcvtau s0, d0
+ fcvtau s31, d0
+ fcvtau s0, d31
+c:
+ fcvtms s0, h0
+ fcvtms s31, h0
+ fcvtms s0, h31
+ fcvtms d0, s0
+ fcvtms d31, s0
+ fcvtms d0, s31
+ fcvtms d0, h0
+ fcvtms d31, h0
+ fcvtms d0, h31
+ fcvtms s0, d0
+ fcvtms s31, d0
+ fcvtms s0, d31
+d:
+ fcvtmu s0, h0
+ fcvtmu s31, h0
+ fcvtmu s0, h31
+ fcvtmu d0, s0
+ fcvtmu d31, s0
+ fcvtmu d0, s31
+ fcvtmu d0, h0
+ fcvtmu d31, h0
+ fcvtmu d0, h31
+ fcvtmu s0, d0
+ fcvtmu s31, d0
+ fcvtmu s0, d31
+e:
+ fcvtns s0, h0
+ fcvtns s31, h0
+ fcvtns s0, h31
+ fcvtns d0, s0
+ fcvtns d31, s0
+ fcvtns d0, s31
+ fcvtns d0, h0
+ fcvtns d31, h0
+ fcvtns d0, h31
+ fcvtns s0, d0
+ fcvtns s31, d0
+ fcvtns s0, d31
+f:
+ fcvtnu s0, h0
+ fcvtnu s31, h0
+ fcvtnu s0, h31
+ fcvtnu d0, s0
+ fcvtnu d31, s0
+ fcvtnu d0, s31
+ fcvtnu d0, h0
+ fcvtnu d31, h0
+ fcvtnu d0, h31
+ fcvtnu s0, d0
+ fcvtnu s31, d0
+ fcvtnu s0, d31
+g:
+ fcvtps s0, h0
+ fcvtps s31, h0
+ fcvtps s0, h31
+ fcvtps d0, s0
+ fcvtps d31, s0
+ fcvtps d0, s31
+ fcvtps d0, h0
+ fcvtps d31, h0
+ fcvtps d0, h31
+ fcvtps s0, d0
+ fcvtps s31, d0
+ fcvtps s0, d31
+h:
+ fcvtpu s0, h0
+ fcvtpu s31, h0
+ fcvtpu s0, h31
+ fcvtpu d0, s0
+ fcvtpu d31, s0
+ fcvtpu d0, s31
+ fcvtpu d0, h0
+ fcvtpu d31, h0
+ fcvtpu d0, h31
+ fcvtpu s0, d0
+ fcvtpu s31, d0
+ fcvtpu s0, d31
+i:
+ fcvtzs s0, h0
+ fcvtzs s31, h0
+ fcvtzs s0, h31
+ fcvtzs d0, s0
+ fcvtzs d31, s0
+ fcvtzs d0, s31
+ fcvtzs d0, h0
+ fcvtzs d31, h0
+ fcvtzs d0, h31
+ fcvtzs s0, d0
+ fcvtzs s31, d0
+ fcvtzs s0, d31
+j:
+ fcvtzu s0, h0
+ fcvtzu s31, h0
+ fcvtzu s0, h31
+ fcvtzu d0, s0
+ fcvtzu d31, s0
+ fcvtzu d0, s31
+ fcvtzu d0, h0
+ fcvtzu d31, h0
+ fcvtzu d0, h31
+ fcvtzu s0, d0
+ fcvtzu s31, d0
+ fcvtzu s0, d31
+k:
+ scvtf h0, s0
+ scvtf h31, s0
+ scvtf h0, s31
+ scvtf d0, s0
+ scvtf d31, s0
+ scvtf d0, s31
+ scvtf h0, d0
+ scvtf h31, d0
+ scvtf h0, d31
+ scvtf s0, d0
+ scvtf s31, d0
+ scvtf s0, d31
+l:
+ ucvtf h0, s0
+ ucvtf h31, s0
+ ucvtf h0, s31
+ ucvtf d0, s0
+ ucvtf d31, s0
+ ucvtf d0, s31
+ ucvtf h0, d0
+ ucvtf h31, d0
+ ucvtf h0, d31
+ ucvtf s0, d0
+ ucvtf s31, d0
+ ucvtf s0, d31
diff --git a/gas/testsuite/gas/aarch64/gpc3.d b/gas/testsuite/gas/aarch64/gpc3.d
new file mode 100644
index 0000000..2535aef
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/gpc3.d
@@ -0,0 +1,11 @@
+#name: RME_GPC3 System register
+#as: -march=armv9.5-a
+#objdump: -dr
+
+.*: file format .*
+
+Disassembly of section \.text:
+
+0+ <.*>:
+[^:]*: d53e21a0 mrs x0, gpcbw_el3
+[^:]*: d51e21a0 msr gpcbw_el3, x0
diff --git a/gas/testsuite/gas/aarch64/gpc3.s b/gas/testsuite/gas/aarch64/gpc3.s
new file mode 100644
index 0000000..349cc08
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/gpc3.s
@@ -0,0 +1,7 @@
+/* RME Granule Protection Check 3 Extension. */
+
+ /* Read from system register. */
+ mrs x0, gpcbw_el3
+
+ /* Write to system register. */
+ msr gpcbw_el3, x0
diff --git a/gas/testsuite/gas/aarch64/ldst-extend-general.d b/gas/testsuite/gas/aarch64/ldst-extend-general.d
new file mode 100644
index 0000000..7cd4871
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/ldst-extend-general.d
@@ -0,0 +1,155 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 38204800 strb w0, \[x0, w0, uxtw\]
+ *[0-9a-f]+: 3820481f strb wzr, \[x0, w0, uxtw\]
+ *[0-9a-f]+: 38204be0 strb w0, \[sp, w0, uxtw\]
+ *[0-9a-f]+: 383f4800 strb w0, \[x0, wzr, uxtw\]
+ *[0-9a-f]+: 38205800 strb w0, \[x0, w0, uxtw #0\]
+ *[0-9a-f]+: 3820c800 strb w0, \[x0, w0, sxtw\]
+ *[0-9a-f]+: 383fc800 strb w0, \[x0, wzr, sxtw\]
+ *[0-9a-f]+: 3820d800 strb w0, \[x0, w0, sxtw #0\]
+ *[0-9a-f]+: 38206800 strb w0, \[x0, x0\]
+ *[0-9a-f]+: 383f6800 strb w0, \[x0, xzr\]
+ *[0-9a-f]+: 38207800 strb w0, \[x0, x0, lsl #0\]
+ *[0-9a-f]+: 3820e800 strb w0, \[x0, x0, sxtx\]
+ *[0-9a-f]+: 383fe800 strb w0, \[x0, xzr, sxtx\]
+ *[0-9a-f]+: 3820f800 strb w0, \[x0, x0, sxtx #0\]
+ *[0-9a-f]+: 38604800 ldrb w0, \[x0, w0, uxtw\]
+ *[0-9a-f]+: 3860481f ldrb wzr, \[x0, w0, uxtw\]
+ *[0-9a-f]+: 38604be0 ldrb w0, \[sp, w0, uxtw\]
+ *[0-9a-f]+: 387f4800 ldrb w0, \[x0, wzr, uxtw\]
+ *[0-9a-f]+: 38605800 ldrb w0, \[x0, w0, uxtw #0\]
+ *[0-9a-f]+: 3860c800 ldrb w0, \[x0, w0, sxtw\]
+ *[0-9a-f]+: 387fc800 ldrb w0, \[x0, wzr, sxtw\]
+ *[0-9a-f]+: 3860d800 ldrb w0, \[x0, w0, sxtw #0\]
+ *[0-9a-f]+: 38606800 ldrb w0, \[x0, x0\]
+ *[0-9a-f]+: 387f6800 ldrb w0, \[x0, xzr\]
+ *[0-9a-f]+: 38607800 ldrb w0, \[x0, x0, lsl #0\]
+ *[0-9a-f]+: 3860e800 ldrb w0, \[x0, x0, sxtx\]
+ *[0-9a-f]+: 387fe800 ldrb w0, \[x0, xzr, sxtx\]
+ *[0-9a-f]+: 3860f800 ldrb w0, \[x0, x0, sxtx #0\]
+ *[0-9a-f]+: 38a04800 ldrsb x0, \[x0, w0, uxtw\]
+ *[0-9a-f]+: 38a0481f ldrsb xzr, \[x0, w0, uxtw\]
+ *[0-9a-f]+: 38a04be0 ldrsb x0, \[sp, w0, uxtw\]
+ *[0-9a-f]+: 38bf4800 ldrsb x0, \[x0, wzr, uxtw\]
+ *[0-9a-f]+: 38a05800 ldrsb x0, \[x0, w0, uxtw #0\]
+ *[0-9a-f]+: 38a0c800 ldrsb x0, \[x0, w0, sxtw\]
+ *[0-9a-f]+: 38bfc800 ldrsb x0, \[x0, wzr, sxtw\]
+ *[0-9a-f]+: 38a0d800 ldrsb x0, \[x0, w0, sxtw #0\]
+ *[0-9a-f]+: 38a06800 ldrsb x0, \[x0, x0\]
+ *[0-9a-f]+: 38bf6800 ldrsb x0, \[x0, xzr\]
+ *[0-9a-f]+: 38a07800 ldrsb x0, \[x0, x0, lsl #0\]
+ *[0-9a-f]+: 38a0e800 ldrsb x0, \[x0, x0, sxtx\]
+ *[0-9a-f]+: 38bfe800 ldrsb x0, \[x0, xzr, sxtx\]
+ *[0-9a-f]+: 38a0f800 ldrsb x0, \[x0, x0, sxtx #0\]
+ *[0-9a-f]+: 38e04800 ldrsb w0, \[x0, w0, uxtw\]
+ *[0-9a-f]+: 38e0481f ldrsb wzr, \[x0, w0, uxtw\]
+ *[0-9a-f]+: 38e04be0 ldrsb w0, \[sp, w0, uxtw\]
+ *[0-9a-f]+: 38ff4800 ldrsb w0, \[x0, wzr, uxtw\]
+ *[0-9a-f]+: 38e05800 ldrsb w0, \[x0, w0, uxtw #0\]
+ *[0-9a-f]+: 38e0c800 ldrsb w0, \[x0, w0, sxtw\]
+ *[0-9a-f]+: 38ffc800 ldrsb w0, \[x0, wzr, sxtw\]
+ *[0-9a-f]+: 38e0d800 ldrsb w0, \[x0, w0, sxtw #0\]
+ *[0-9a-f]+: 38e06800 ldrsb w0, \[x0, x0\]
+ *[0-9a-f]+: 38ff6800 ldrsb w0, \[x0, xzr\]
+ *[0-9a-f]+: 38e07800 ldrsb w0, \[x0, x0, lsl #0\]
+ *[0-9a-f]+: 38e0e800 ldrsb w0, \[x0, x0, sxtx\]
+ *[0-9a-f]+: 38ffe800 ldrsb w0, \[x0, xzr, sxtx\]
+ *[0-9a-f]+: 38e0f800 ldrsb w0, \[x0, x0, sxtx #0\]
+ *[0-9a-f]+: 78204800 strh w0, \[x0, w0, uxtw\]
+ *[0-9a-f]+: 7820481f strh wzr, \[x0, w0, uxtw\]
+ *[0-9a-f]+: 78204be0 strh w0, \[sp, w0, uxtw\]
+ *[0-9a-f]+: 783f4800 strh w0, \[x0, wzr, uxtw\]
+ *[0-9a-f]+: 78204800 strh w0, \[x0, w0, uxtw\]
+ *[0-9a-f]+: 78205800 strh w0, \[x0, w0, uxtw #1\]
+ *[0-9a-f]+: 7820c800 strh w0, \[x0, w0, sxtw\]
+ *[0-9a-f]+: 783fc800 strh w0, \[x0, wzr, sxtw\]
+ *[0-9a-f]+: 7820c800 strh w0, \[x0, w0, sxtw\]
+ *[0-9a-f]+: 7820d800 strh w0, \[x0, w0, sxtw #1\]
+ *[0-9a-f]+: 78206800 strh w0, \[x0, x0\]
+ *[0-9a-f]+: 783f6800 strh w0, \[x0, xzr\]
+ *[0-9a-f]+: 78206800 strh w0, \[x0, x0\]
+ *[0-9a-f]+: 78207800 strh w0, \[x0, x0, lsl #1\]
+ *[0-9a-f]+: 7820e800 strh w0, \[x0, x0, sxtx\]
+ *[0-9a-f]+: 783fe800 strh w0, \[x0, xzr, sxtx\]
+ *[0-9a-f]+: 7820e800 strh w0, \[x0, x0, sxtx\]
+ *[0-9a-f]+: 7820f800 strh w0, \[x0, x0, sxtx #1\]
+ *[0-9a-f]+: 78604800 ldrh w0, \[x0, w0, uxtw\]
+ *[0-9a-f]+: 7860481f ldrh wzr, \[x0, w0, uxtw\]
+ *[0-9a-f]+: 78604be0 ldrh w0, \[sp, w0, uxtw\]
+ *[0-9a-f]+: 787f4800 ldrh w0, \[x0, wzr, uxtw\]
+ *[0-9a-f]+: 78604800 ldrh w0, \[x0, w0, uxtw\]
+ *[0-9a-f]+: 78605800 ldrh w0, \[x0, w0, uxtw #1\]
+ *[0-9a-f]+: 7860c800 ldrh w0, \[x0, w0, sxtw\]
+ *[0-9a-f]+: 787fc800 ldrh w0, \[x0, wzr, sxtw\]
+ *[0-9a-f]+: 7860c800 ldrh w0, \[x0, w0, sxtw\]
+ *[0-9a-f]+: 7860d800 ldrh w0, \[x0, w0, sxtw #1\]
+ *[0-9a-f]+: 78606800 ldrh w0, \[x0, x0\]
+ *[0-9a-f]+: 787f6800 ldrh w0, \[x0, xzr\]
+ *[0-9a-f]+: 78606800 ldrh w0, \[x0, x0\]
+ *[0-9a-f]+: 78607800 ldrh w0, \[x0, x0, lsl #1\]
+ *[0-9a-f]+: 7860e800 ldrh w0, \[x0, x0, sxtx\]
+ *[0-9a-f]+: 787fe800 ldrh w0, \[x0, xzr, sxtx\]
+ *[0-9a-f]+: 7860e800 ldrh w0, \[x0, x0, sxtx\]
+ *[0-9a-f]+: 7860f800 ldrh w0, \[x0, x0, sxtx #1\]
+ *[0-9a-f]+: 78a04800 ldrsh x0, \[x0, w0, uxtw\]
+ *[0-9a-f]+: 78a0481f ldrsh xzr, \[x0, w0, uxtw\]
+ *[0-9a-f]+: 78a04be0 ldrsh x0, \[sp, w0, uxtw\]
+ *[0-9a-f]+: 78bf4800 ldrsh x0, \[x0, wzr, uxtw\]
+ *[0-9a-f]+: 78a04800 ldrsh x0, \[x0, w0, uxtw\]
+ *[0-9a-f]+: 78a05800 ldrsh x0, \[x0, w0, uxtw #1\]
+ *[0-9a-f]+: 78a0c800 ldrsh x0, \[x0, w0, sxtw\]
+ *[0-9a-f]+: 78bfc800 ldrsh x0, \[x0, wzr, sxtw\]
+ *[0-9a-f]+: 78a0c800 ldrsh x0, \[x0, w0, sxtw\]
+ *[0-9a-f]+: 78a0d800 ldrsh x0, \[x0, w0, sxtw #1\]
+ *[0-9a-f]+: 78a06800 ldrsh x0, \[x0, x0\]
+ *[0-9a-f]+: 78bf6800 ldrsh x0, \[x0, xzr\]
+ *[0-9a-f]+: 78a06800 ldrsh x0, \[x0, x0\]
+ *[0-9a-f]+: 78a07800 ldrsh x0, \[x0, x0, lsl #1\]
+ *[0-9a-f]+: 78a0e800 ldrsh x0, \[x0, x0, sxtx\]
+ *[0-9a-f]+: 78bfe800 ldrsh x0, \[x0, xzr, sxtx\]
+ *[0-9a-f]+: 78a0e800 ldrsh x0, \[x0, x0, sxtx\]
+ *[0-9a-f]+: 78a0f800 ldrsh x0, \[x0, x0, sxtx #1\]
+ *[0-9a-f]+: 78e04800 ldrsh w0, \[x0, w0, uxtw\]
+ *[0-9a-f]+: 78e0481f ldrsh wzr, \[x0, w0, uxtw\]
+ *[0-9a-f]+: 78e04be0 ldrsh w0, \[sp, w0, uxtw\]
+ *[0-9a-f]+: 78ff4800 ldrsh w0, \[x0, wzr, uxtw\]
+ *[0-9a-f]+: 78e04800 ldrsh w0, \[x0, w0, uxtw\]
+ *[0-9a-f]+: 78e05800 ldrsh w0, \[x0, w0, uxtw #1\]
+ *[0-9a-f]+: 78e0c800 ldrsh w0, \[x0, w0, sxtw\]
+ *[0-9a-f]+: 78ffc800 ldrsh w0, \[x0, wzr, sxtw\]
+ *[0-9a-f]+: 78e0c800 ldrsh w0, \[x0, w0, sxtw\]
+ *[0-9a-f]+: 78e0d800 ldrsh w0, \[x0, w0, sxtw #1\]
+ *[0-9a-f]+: 78e06800 ldrsh w0, \[x0, x0\]
+ *[0-9a-f]+: 78ff6800 ldrsh w0, \[x0, xzr\]
+ *[0-9a-f]+: 78e06800 ldrsh w0, \[x0, x0\]
+ *[0-9a-f]+: 78e07800 ldrsh w0, \[x0, x0, lsl #1\]
+ *[0-9a-f]+: 78e0e800 ldrsh w0, \[x0, x0, sxtx\]
+ *[0-9a-f]+: 78ffe800 ldrsh w0, \[x0, xzr, sxtx\]
+ *[0-9a-f]+: 78e0e800 ldrsh w0, \[x0, x0, sxtx\]
+ *[0-9a-f]+: 78e0f800 ldrsh w0, \[x0, x0, sxtx #1\]
+ *[0-9a-f]+: b8a04800 ldrsw x0, \[x0, w0, uxtw\]
+ *[0-9a-f]+: b8a0481f ldrsw xzr, \[x0, w0, uxtw\]
+ *[0-9a-f]+: b8a04be0 ldrsw x0, \[sp, w0, uxtw\]
+ *[0-9a-f]+: b8bf4800 ldrsw x0, \[x0, wzr, uxtw\]
+ *[0-9a-f]+: b8a04800 ldrsw x0, \[x0, w0, uxtw\]
+ *[0-9a-f]+: b8a05800 ldrsw x0, \[x0, w0, uxtw #2\]
+ *[0-9a-f]+: b8a0c800 ldrsw x0, \[x0, w0, sxtw\]
+ *[0-9a-f]+: b8bfc800 ldrsw x0, \[x0, wzr, sxtw\]
+ *[0-9a-f]+: b8a0c800 ldrsw x0, \[x0, w0, sxtw\]
+ *[0-9a-f]+: b8a0d800 ldrsw x0, \[x0, w0, sxtw #2\]
+ *[0-9a-f]+: b8a06800 ldrsw x0, \[x0, x0\]
+ *[0-9a-f]+: b8bf6800 ldrsw x0, \[x0, xzr\]
+ *[0-9a-f]+: b8a06800 ldrsw x0, \[x0, x0\]
+ *[0-9a-f]+: b8a07800 ldrsw x0, \[x0, x0, lsl #2\]
+ *[0-9a-f]+: b8a0e800 ldrsw x0, \[x0, x0, sxtx\]
+ *[0-9a-f]+: b8bfe800 ldrsw x0, \[x0, xzr, sxtx\]
+ *[0-9a-f]+: b8a0e800 ldrsw x0, \[x0, x0, sxtx\]
+ *[0-9a-f]+: b8a0f800 ldrsw x0, \[x0, x0, sxtx #2\]
diff --git a/gas/testsuite/gas/aarch64/ldst-extend-general.s b/gas/testsuite/gas/aarch64/ldst-extend-general.s
new file mode 100644
index 0000000..892d8c4
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/ldst-extend-general.s
@@ -0,0 +1,152 @@
+ strb w0, [x0, w0, uxtw]
+ strb wzr, [x0, w0, uxtw]
+ strb w0, [sp, w0, uxtw]
+ strb w0, [x0, wzr, uxtw]
+ strb w0, [x0, w0, uxtw #0]
+ strb w0, [x0, w0, sxtw]
+ strb w0, [x0, wzr, sxtw]
+ strb w0, [x0, w0, sxtw #0]
+ strb w0, [x0, x0]
+ strb w0, [x0, xzr]
+ strb w0, [x0, x0, lsl #0]
+ strb w0, [x0, x0, sxtx]
+ strb w0, [x0, xzr, sxtx]
+ strb w0, [x0, x0, sxtx #0]
+
+ ldrb w0, [x0, w0, uxtw]
+ ldrb wzr, [x0, w0, uxtw]
+ ldrb w0, [sp, w0, uxtw]
+ ldrb w0, [x0, wzr, uxtw]
+ ldrb w0, [x0, w0, uxtw #0]
+ ldrb w0, [x0, w0, sxtw]
+ ldrb w0, [x0, wzr, sxtw]
+ ldrb w0, [x0, w0, sxtw #0]
+ ldrb w0, [x0, x0]
+ ldrb w0, [x0, xzr]
+ ldrb w0, [x0, x0, lsl #0]
+ ldrb w0, [x0, x0, sxtx]
+ ldrb w0, [x0, xzr, sxtx]
+ ldrb w0, [x0, x0, sxtx #0]
+
+ ldrsb x0, [x0, w0, uxtw]
+ ldrsb xzr, [x0, w0, uxtw]
+ ldrsb x0, [sp, w0, uxtw]
+ ldrsb x0, [x0, wzr, uxtw]
+ ldrsb x0, [x0, w0, uxtw #0]
+ ldrsb x0, [x0, w0, sxtw]
+ ldrsb x0, [x0, wzr, sxtw]
+ ldrsb x0, [x0, w0, sxtw #0]
+ ldrsb x0, [x0, x0]
+ ldrsb x0, [x0, xzr]
+ ldrsb x0, [x0, x0, lsl #0]
+ ldrsb x0, [x0, x0, sxtx]
+ ldrsb x0, [x0, xzr, sxtx]
+ ldrsb x0, [x0, x0, sxtx #0]
+ ldrsb w0, [x0, w0, uxtw]
+ ldrsb wzr, [x0, w0, uxtw]
+ ldrsb w0, [sp, w0, uxtw]
+ ldrsb w0, [x0, wzr, uxtw]
+ ldrsb w0, [x0, w0, uxtw #0]
+ ldrsb w0, [x0, w0, sxtw]
+ ldrsb w0, [x0, wzr, sxtw]
+ ldrsb w0, [x0, w0, sxtw #0]
+ ldrsb w0, [x0, x0]
+ ldrsb w0, [x0, xzr]
+ ldrsb w0, [x0, x0, lsl #0]
+ ldrsb w0, [x0, x0, sxtx]
+ ldrsb w0, [x0, xzr, sxtx]
+ ldrsb w0, [x0, x0, sxtx #0]
+
+ strh w0, [x0, w0, uxtw]
+ strh wzr, [x0, w0, uxtw]
+ strh w0, [sp, w0, uxtw]
+ strh w0, [x0, wzr, uxtw]
+ strh w0, [x0, w0, uxtw #0]
+ strh w0, [x0, w0, uxtw #1]
+ strh w0, [x0, w0, sxtw]
+ strh w0, [x0, wzr, sxtw]
+ strh w0, [x0, w0, sxtw #0]
+ strh w0, [x0, w0, sxtw #1]
+ strh w0, [x0, x0]
+ strh w0, [x0, xzr]
+ strh w0, [x0, x0, lsl #0]
+ strh w0, [x0, x0, lsl #1]
+ strh w0, [x0, x0, sxtx]
+ strh w0, [x0, xzr, sxtx]
+ strh w0, [x0, x0, sxtx #0]
+ strh w0, [x0, x0, sxtx #1]
+
+ ldrh w0, [x0, w0, uxtw]
+ ldrh wzr, [x0, w0, uxtw]
+ ldrh w0, [sp, w0, uxtw]
+ ldrh w0, [x0, wzr, uxtw]
+ ldrh w0, [x0, w0, uxtw #0]
+ ldrh w0, [x0, w0, uxtw #1]
+ ldrh w0, [x0, w0, sxtw]
+ ldrh w0, [x0, wzr, sxtw]
+ ldrh w0, [x0, w0, sxtw #0]
+ ldrh w0, [x0, w0, sxtw #1]
+ ldrh w0, [x0, x0]
+ ldrh w0, [x0, xzr]
+ ldrh w0, [x0, x0, lsl #0]
+ ldrh w0, [x0, x0, lsl #1]
+ ldrh w0, [x0, x0, sxtx]
+ ldrh w0, [x0, xzr, sxtx]
+ ldrh w0, [x0, x0, sxtx #0]
+ ldrh w0, [x0, x0, sxtx #1]
+
+ ldrsh x0, [x0, w0, uxtw]
+ ldrsh xzr, [x0, w0, uxtw]
+ ldrsh x0, [sp, w0, uxtw]
+ ldrsh x0, [x0, wzr, uxtw]
+ ldrsh x0, [x0, w0, uxtw #0]
+ ldrsh x0, [x0, w0, uxtw #1]
+ ldrsh x0, [x0, w0, sxtw]
+ ldrsh x0, [x0, wzr, sxtw]
+ ldrsh x0, [x0, w0, sxtw #0]
+ ldrsh x0, [x0, w0, sxtw #1]
+ ldrsh x0, [x0, x0]
+ ldrsh x0, [x0, xzr]
+ ldrsh x0, [x0, x0, lsl #0]
+ ldrsh x0, [x0, x0, lsl #1]
+ ldrsh x0, [x0, x0, sxtx]
+ ldrsh x0, [x0, xzr, sxtx]
+ ldrsh x0, [x0, x0, sxtx #0]
+ ldrsh x0, [x0, x0, sxtx #1]
+ ldrsh w0, [x0, w0, uxtw]
+ ldrsh wzr, [x0, w0, uxtw]
+ ldrsh w0, [sp, w0, uxtw]
+ ldrsh w0, [x0, wzr, uxtw]
+ ldrsh w0, [x0, w0, uxtw #0]
+ ldrsh w0, [x0, w0, uxtw #1]
+ ldrsh w0, [x0, w0, sxtw]
+ ldrsh w0, [x0, wzr, sxtw]
+ ldrsh w0, [x0, w0, sxtw #0]
+ ldrsh w0, [x0, w0, sxtw #1]
+ ldrsh w0, [x0, x0]
+ ldrsh w0, [x0, xzr]
+ ldrsh w0, [x0, x0, lsl #0]
+ ldrsh w0, [x0, x0, lsl #1]
+ ldrsh w0, [x0, x0, sxtx]
+ ldrsh w0, [x0, xzr, sxtx]
+ ldrsh w0, [x0, x0, sxtx #0]
+ ldrsh w0, [x0, x0, sxtx #1]
+
+ ldrsw x0, [x0, w0, uxtw]
+ ldrsw xzr, [x0, w0, uxtw]
+ ldrsw x0, [sp, w0, uxtw]
+ ldrsw x0, [x0, wzr, uxtw]
+ ldrsw x0, [x0, w0, uxtw #0]
+ ldrsw x0, [x0, w0, uxtw #2]
+ ldrsw x0, [x0, w0, sxtw]
+ ldrsw x0, [x0, wzr, sxtw]
+ ldrsw x0, [x0, w0, sxtw #0]
+ ldrsw x0, [x0, w0, sxtw #2]
+ ldrsw x0, [x0, x0]
+ ldrsw x0, [x0, xzr]
+ ldrsw x0, [x0, x0, lsl #0]
+ ldrsw x0, [x0, x0, lsl #2]
+ ldrsw x0, [x0, x0, sxtx]
+ ldrsw x0, [x0, xzr, sxtx]
+ ldrsw x0, [x0, x0, sxtx #0]
+ ldrsw x0, [x0, x0, sxtx #2]
diff --git a/gas/testsuite/gas/aarch64/ldst-unpriv.d b/gas/testsuite/gas/aarch64/ldst-unpriv.d
new file mode 100644
index 0000000..9c33678
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/ldst-unpriv.d
@@ -0,0 +1,61 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 38000800 sttrb w0, \[x0\]
+ *[0-9a-f]+: 3800081f sttrb wzr, \[x0\]
+ *[0-9a-f]+: 38000be0 sttrb w0, \[sp\]
+ *[0-9a-f]+: 381ff800 sttrb w0, \[x0, #-1\]
+ *[0-9a-f]+: 38400800 ldtrb w0, \[x0\]
+ *[0-9a-f]+: 3840081f ldtrb wzr, \[x0\]
+ *[0-9a-f]+: 38400be0 ldtrb w0, \[sp\]
+ *[0-9a-f]+: 385ff800 ldtrb w0, \[x0, #-1\]
+ *[0-9a-f]+: 38800800 ldtrsb x0, \[x0\]
+ *[0-9a-f]+: 3880081f ldtrsb xzr, \[x0\]
+ *[0-9a-f]+: 38800be0 ldtrsb x0, \[sp\]
+ *[0-9a-f]+: 389ff800 ldtrsb x0, \[x0, #-1\]
+ *[0-9a-f]+: 38c00800 ldtrsb w0, \[x0\]
+ *[0-9a-f]+: 38c0081f ldtrsb wzr, \[x0\]
+ *[0-9a-f]+: 38c00be0 ldtrsb w0, \[sp\]
+ *[0-9a-f]+: 38dff800 ldtrsb w0, \[x0, #-1\]
+ *[0-9a-f]+: 78000800 sttrh w0, \[x0\]
+ *[0-9a-f]+: 7800081f sttrh wzr, \[x0\]
+ *[0-9a-f]+: 78000be0 sttrh w0, \[sp\]
+ *[0-9a-f]+: 781ff800 sttrh w0, \[x0, #-1\]
+ *[0-9a-f]+: 78400800 ldtrh w0, \[x0\]
+ *[0-9a-f]+: 7840081f ldtrh wzr, \[x0\]
+ *[0-9a-f]+: 78400be0 ldtrh w0, \[sp\]
+ *[0-9a-f]+: 785ff800 ldtrh w0, \[x0, #-1\]
+ *[0-9a-f]+: 78800800 ldtrsh x0, \[x0\]
+ *[0-9a-f]+: 7880081f ldtrsh xzr, \[x0\]
+ *[0-9a-f]+: 78800be0 ldtrsh x0, \[sp\]
+ *[0-9a-f]+: 789ff800 ldtrsh x0, \[x0, #-1\]
+ *[0-9a-f]+: 78c00800 ldtrsh w0, \[x0\]
+ *[0-9a-f]+: 78c0081f ldtrsh wzr, \[x0\]
+ *[0-9a-f]+: 78c00be0 ldtrsh w0, \[sp\]
+ *[0-9a-f]+: 78dff800 ldtrsh w0, \[x0, #-1\]
+ *[0-9a-f]+: b8000800 sttr w0, \[x0\]
+ *[0-9a-f]+: b800081f sttr wzr, \[x0\]
+ *[0-9a-f]+: b8000be0 sttr w0, \[sp\]
+ *[0-9a-f]+: b81ff800 sttr w0, \[x0, #-1\]
+ *[0-9a-f]+: b8400800 ldtr w0, \[x0\]
+ *[0-9a-f]+: b840081f ldtr wzr, \[x0\]
+ *[0-9a-f]+: b8400be0 ldtr w0, \[sp\]
+ *[0-9a-f]+: b85ff800 ldtr w0, \[x0, #-1\]
+ *[0-9a-f]+: b8800800 ldtrsw x0, \[x0\]
+ *[0-9a-f]+: b880081f ldtrsw xzr, \[x0\]
+ *[0-9a-f]+: b8800be0 ldtrsw x0, \[sp\]
+ *[0-9a-f]+: b89ff800 ldtrsw x0, \[x0, #-1\]
+ *[0-9a-f]+: f8000800 sttr x0, \[x0\]
+ *[0-9a-f]+: f800081f sttr xzr, \[x0\]
+ *[0-9a-f]+: f8000be0 sttr x0, \[sp\]
+ *[0-9a-f]+: f81ff800 sttr x0, \[x0, #-1\]
+ *[0-9a-f]+: f8400800 ldtr x0, \[x0\]
+ *[0-9a-f]+: f840081f ldtr xzr, \[x0\]
+ *[0-9a-f]+: f8400be0 ldtr x0, \[sp\]
+ *[0-9a-f]+: f85ff800 ldtr x0, \[x0, #-1\]
diff --git a/gas/testsuite/gas/aarch64/ldst-unpriv.s b/gas/testsuite/gas/aarch64/ldst-unpriv.s
new file mode 100644
index 0000000..52f6461
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/ldst-unpriv.s
@@ -0,0 +1,64 @@
+ sttrb w0, [x0]
+ sttrb wzr, [x0, #0]
+ sttrb w0, [sp]
+ sttrb w0, [x0, #-1]
+
+ ldtrb w0, [x0]
+ ldtrb wzr, [x0, #0]
+ ldtrb w0, [sp]
+ ldtrb w0, [x0, #-1]
+
+ ldtrsb x0, [x0]
+ ldtrsb xzr, [x0, #0]
+ ldtrsb x0, [sp]
+ ldtrsb x0, [x0, #-1]
+
+ ldtrsb w0, [x0]
+ ldtrsb wzr, [x0, #0]
+ ldtrsb w0, [sp]
+ ldtrsb w0, [x0, #-1]
+
+ sttrh w0, [x0]
+ sttrh wzr, [x0, #0]
+ sttrh w0, [sp]
+ sttrh w0, [x0, #-1]
+
+ ldtrh w0, [x0]
+ ldtrh wzr, [x0, #0]
+ ldtrh w0, [sp]
+ ldtrh w0, [x0, #-1]
+
+ ldtrsh x0, [x0]
+ ldtrsh xzr, [x0, #0]
+ ldtrsh x0, [sp]
+ ldtrsh x0, [x0, #-1]
+
+ ldtrsh w0, [x0]
+ ldtrsh wzr, [x0, #0]
+ ldtrsh w0, [sp]
+ ldtrsh w0, [x0, #-1]
+
+ sttr w0, [x0]
+ sttr wzr, [x0, #0]
+ sttr w0, [sp]
+ sttr w0, [x0, #-1]
+
+ ldtr w0, [x0]
+ ldtr wzr, [x0, #0]
+ ldtr w0, [sp]
+ ldtr w0, [x0, #-1]
+
+ ldtrsw x0, [x0]
+ ldtrsw xzr, [x0, #0]
+ ldtrsw x0, [sp]
+ ldtrsw x0, [x0, #-1]
+
+ sttr x0, [x0]
+ sttr xzr, [x0, #0]
+ sttr x0, [sp]
+ sttr x0, [x0, #-1]
+
+ ldtr x0, [x0]
+ ldtr xzr, [x0, #0]
+ ldtr x0, [sp]
+ ldtr x0, [x0, #-1]
diff --git a/gas/testsuite/gas/aarch64/lsfe-bad.d b/gas/testsuite/gas/aarch64/lsfe-bad.d
new file mode 100644
index 0000000..d2bf4a8
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/lsfe-bad.d
@@ -0,0 +1,4 @@
+#name: Bad FEAT_LSFE instructions
+#source: lsfe-bad.s
+#as: -march=armv8-a+lsfe
+#error_output: lsfe-bad.l
diff --git a/gas/testsuite/gas/aarch64/lsfe-bad.l b/gas/testsuite/gas/aarch64/lsfe-bad.l
new file mode 100644
index 0000000..b6937be
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/lsfe-bad.l
@@ -0,0 +1,17 @@
+
+.*: Assembler messages:
+.*: Error: operand mismatch -- `ldfadd h0,s1,\[x2\]'
+.*: Info: did you mean this\?
+.*: Info: ldfadd h0, h1, \[x2\]
+.*: Info: other valid variant\(s\):
+.*: Info: ldfadd s0, s1, \[x2\]
+.*: Info: ldfadd d0, d1, \[x2\]
+.*: Error: operand mismatch -- `ldbfadd s0,s1,\[x2\]'
+.*: Info: did you mean this\?
+.*: Info: ldbfadd h0, h1, \[x2\]
+.*: Error: expected a scalar SIMD or floating-point register at operand 1 -- `stfmax w0,w1,\[x2\]'
+.*: Error: unknown mnemonic `stfmaxa' -- `stfmaxa s0,s1,\[x2\]'
+.*: Error: unknown mnemonic `stfmaxal' -- `stfmaxal s0,s1,\[x2\]'
+.*: Error: operand mismatch -- `stbfmin s0,\[x2\]'
+.*: Info: did you mean this\?
+.*: Info: stbfmin h0, \[x2\]
diff --git a/gas/testsuite/gas/aarch64/lsfe-bad.s b/gas/testsuite/gas/aarch64/lsfe-bad.s
new file mode 100644
index 0000000..2b4b111
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/lsfe-bad.s
@@ -0,0 +1,6 @@
+ ldfadd h0, s1, [x2]
+ ldbfadd s0, s1, [x2]
+ stfmax w0, w1, [x2]
+ stfmaxa s0, s1, [x2]
+ stfmaxal s0, s1, [x2]
+ stbfmin s0, [x2]
diff --git a/gas/testsuite/gas/aarch64/lsfe.d b/gas/testsuite/gas/aarch64/lsfe.d
new file mode 100644
index 0000000..4a3ba97
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/lsfe.d
@@ -0,0 +1,815 @@
+#name: FEAT_LSFE instructions
+#as: -march=armv8-a+lsfe
+#objdump: -dr
+
+.*: file format .*
+
+Disassembly of section \.text:
+
+.* <ldf>:
+.*: 7c200000 ldfadd h0, h0, \[x0\]
+.*: 7c2003e0 ldfadd h0, h0, \[sp\]
+.*: 7c20001f ldfadd h0, h31, \[x0\]
+.*: 7c2003ff ldfadd h0, h31, \[sp\]
+.*: 7c3f0000 ldfadd h31, h0, \[x0\]
+.*: 7c3f03e0 ldfadd h31, h0, \[sp\]
+.*: 7c3f001f ldfadd h31, h31, \[x0\]
+.*: 7c3f03ff ldfadd h31, h31, \[sp\]
+.*: bc200000 ldfadd s0, s0, \[x0\]
+.*: bc2003e0 ldfadd s0, s0, \[sp\]
+.*: bc20001f ldfadd s0, s31, \[x0\]
+.*: bc2003ff ldfadd s0, s31, \[sp\]
+.*: bc3f0000 ldfadd s31, s0, \[x0\]
+.*: bc3f03e0 ldfadd s31, s0, \[sp\]
+.*: bc3f001f ldfadd s31, s31, \[x0\]
+.*: bc3f03ff ldfadd s31, s31, \[sp\]
+.*: fc200000 ldfadd d0, d0, \[x0\]
+.*: fc2003e0 ldfadd d0, d0, \[sp\]
+.*: fc20001f ldfadd d0, d31, \[x0\]
+.*: fc2003ff ldfadd d0, d31, \[sp\]
+.*: fc3f0000 ldfadd d31, d0, \[x0\]
+.*: fc3f03e0 ldfadd d31, d0, \[sp\]
+.*: fc3f001f ldfadd d31, d31, \[x0\]
+.*: fc3f03ff ldfadd d31, d31, \[sp\]
+.*: 7ca00000 ldfadda h0, h0, \[x0\]
+.*: 7ca003e0 ldfadda h0, h0, \[sp\]
+.*: 7ca0001f ldfadda h0, h31, \[x0\]
+.*: 7ca003ff ldfadda h0, h31, \[sp\]
+.*: 7cbf0000 ldfadda h31, h0, \[x0\]
+.*: 7cbf03e0 ldfadda h31, h0, \[sp\]
+.*: 7cbf001f ldfadda h31, h31, \[x0\]
+.*: 7cbf03ff ldfadda h31, h31, \[sp\]
+.*: bca00000 ldfadda s0, s0, \[x0\]
+.*: bca003e0 ldfadda s0, s0, \[sp\]
+.*: bca0001f ldfadda s0, s31, \[x0\]
+.*: bca003ff ldfadda s0, s31, \[sp\]
+.*: bcbf0000 ldfadda s31, s0, \[x0\]
+.*: bcbf03e0 ldfadda s31, s0, \[sp\]
+.*: bcbf001f ldfadda s31, s31, \[x0\]
+.*: bcbf03ff ldfadda s31, s31, \[sp\]
+.*: fca00000 ldfadda d0, d0, \[x0\]
+.*: fca003e0 ldfadda d0, d0, \[sp\]
+.*: fca0001f ldfadda d0, d31, \[x0\]
+.*: fca003ff ldfadda d0, d31, \[sp\]
+.*: fcbf0000 ldfadda d31, d0, \[x0\]
+.*: fcbf03e0 ldfadda d31, d0, \[sp\]
+.*: fcbf001f ldfadda d31, d31, \[x0\]
+.*: fcbf03ff ldfadda d31, d31, \[sp\]
+.*: 7ce00000 ldfaddal h0, h0, \[x0\]
+.*: 7ce003e0 ldfaddal h0, h0, \[sp\]
+.*: 7ce0001f ldfaddal h0, h31, \[x0\]
+.*: 7ce003ff ldfaddal h0, h31, \[sp\]
+.*: 7cff0000 ldfaddal h31, h0, \[x0\]
+.*: 7cff03e0 ldfaddal h31, h0, \[sp\]
+.*: 7cff001f ldfaddal h31, h31, \[x0\]
+.*: 7cff03ff ldfaddal h31, h31, \[sp\]
+.*: bce00000 ldfaddal s0, s0, \[x0\]
+.*: bce003e0 ldfaddal s0, s0, \[sp\]
+.*: bce0001f ldfaddal s0, s31, \[x0\]
+.*: bce003ff ldfaddal s0, s31, \[sp\]
+.*: bcff0000 ldfaddal s31, s0, \[x0\]
+.*: bcff03e0 ldfaddal s31, s0, \[sp\]
+.*: bcff001f ldfaddal s31, s31, \[x0\]
+.*: bcff03ff ldfaddal s31, s31, \[sp\]
+.*: fce00000 ldfaddal d0, d0, \[x0\]
+.*: fce003e0 ldfaddal d0, d0, \[sp\]
+.*: fce0001f ldfaddal d0, d31, \[x0\]
+.*: fce003ff ldfaddal d0, d31, \[sp\]
+.*: fcff0000 ldfaddal d31, d0, \[x0\]
+.*: fcff03e0 ldfaddal d31, d0, \[sp\]
+.*: fcff001f ldfaddal d31, d31, \[x0\]
+.*: fcff03ff ldfaddal d31, d31, \[sp\]
+.*: 7c600000 ldfaddl h0, h0, \[x0\]
+.*: 7c6003e0 ldfaddl h0, h0, \[sp\]
+.*: 7c60001f ldfaddl h0, h31, \[x0\]
+.*: 7c6003ff ldfaddl h0, h31, \[sp\]
+.*: 7c7f0000 ldfaddl h31, h0, \[x0\]
+.*: 7c7f03e0 ldfaddl h31, h0, \[sp\]
+.*: 7c7f001f ldfaddl h31, h31, \[x0\]
+.*: 7c7f03ff ldfaddl h31, h31, \[sp\]
+.*: bc600000 ldfaddl s0, s0, \[x0\]
+.*: bc6003e0 ldfaddl s0, s0, \[sp\]
+.*: bc60001f ldfaddl s0, s31, \[x0\]
+.*: bc6003ff ldfaddl s0, s31, \[sp\]
+.*: bc7f0000 ldfaddl s31, s0, \[x0\]
+.*: bc7f03e0 ldfaddl s31, s0, \[sp\]
+.*: bc7f001f ldfaddl s31, s31, \[x0\]
+.*: bc7f03ff ldfaddl s31, s31, \[sp\]
+.*: fc600000 ldfaddl d0, d0, \[x0\]
+.*: fc6003e0 ldfaddl d0, d0, \[sp\]
+.*: fc60001f ldfaddl d0, d31, \[x0\]
+.*: fc6003ff ldfaddl d0, d31, \[sp\]
+.*: fc7f0000 ldfaddl d31, d0, \[x0\]
+.*: fc7f03e0 ldfaddl d31, d0, \[sp\]
+.*: fc7f001f ldfaddl d31, d31, \[x0\]
+.*: fc7f03ff ldfaddl d31, d31, \[sp\]
+.*: 7c204000 ldfmax h0, h0, \[x0\]
+.*: 7c2043e0 ldfmax h0, h0, \[sp\]
+.*: 7c20401f ldfmax h0, h31, \[x0\]
+.*: 7c2043ff ldfmax h0, h31, \[sp\]
+.*: 7c3f4000 ldfmax h31, h0, \[x0\]
+.*: 7c3f43e0 ldfmax h31, h0, \[sp\]
+.*: 7c3f401f ldfmax h31, h31, \[x0\]
+.*: 7c3f43ff ldfmax h31, h31, \[sp\]
+.*: bc204000 ldfmax s0, s0, \[x0\]
+.*: bc2043e0 ldfmax s0, s0, \[sp\]
+.*: bc20401f ldfmax s0, s31, \[x0\]
+.*: bc2043ff ldfmax s0, s31, \[sp\]
+.*: bc3f4000 ldfmax s31, s0, \[x0\]
+.*: bc3f43e0 ldfmax s31, s0, \[sp\]
+.*: bc3f401f ldfmax s31, s31, \[x0\]
+.*: bc3f43ff ldfmax s31, s31, \[sp\]
+.*: fc204000 ldfmax d0, d0, \[x0\]
+.*: fc2043e0 ldfmax d0, d0, \[sp\]
+.*: fc20401f ldfmax d0, d31, \[x0\]
+.*: fc2043ff ldfmax d0, d31, \[sp\]
+.*: fc3f4000 ldfmax d31, d0, \[x0\]
+.*: fc3f43e0 ldfmax d31, d0, \[sp\]
+.*: fc3f401f ldfmax d31, d31, \[x0\]
+.*: fc3f43ff ldfmax d31, d31, \[sp\]
+.*: 7ca04000 ldfmaxa h0, h0, \[x0\]
+.*: 7ca043e0 ldfmaxa h0, h0, \[sp\]
+.*: 7ca0401f ldfmaxa h0, h31, \[x0\]
+.*: 7ca043ff ldfmaxa h0, h31, \[sp\]
+.*: 7cbf4000 ldfmaxa h31, h0, \[x0\]
+.*: 7cbf43e0 ldfmaxa h31, h0, \[sp\]
+.*: 7cbf401f ldfmaxa h31, h31, \[x0\]
+.*: 7cbf43ff ldfmaxa h31, h31, \[sp\]
+.*: bca04000 ldfmaxa s0, s0, \[x0\]
+.*: bca043e0 ldfmaxa s0, s0, \[sp\]
+.*: bca0401f ldfmaxa s0, s31, \[x0\]
+.*: bca043ff ldfmaxa s0, s31, \[sp\]
+.*: bcbf4000 ldfmaxa s31, s0, \[x0\]
+.*: bcbf43e0 ldfmaxa s31, s0, \[sp\]
+.*: bcbf401f ldfmaxa s31, s31, \[x0\]
+.*: bcbf43ff ldfmaxa s31, s31, \[sp\]
+.*: fca04000 ldfmaxa d0, d0, \[x0\]
+.*: fca043e0 ldfmaxa d0, d0, \[sp\]
+.*: fca0401f ldfmaxa d0, d31, \[x0\]
+.*: fca043ff ldfmaxa d0, d31, \[sp\]
+.*: fcbf4000 ldfmaxa d31, d0, \[x0\]
+.*: fcbf43e0 ldfmaxa d31, d0, \[sp\]
+.*: fcbf401f ldfmaxa d31, d31, \[x0\]
+.*: fcbf43ff ldfmaxa d31, d31, \[sp\]
+.*: 7ce04000 ldfmaxal h0, h0, \[x0\]
+.*: 7ce043e0 ldfmaxal h0, h0, \[sp\]
+.*: 7ce0401f ldfmaxal h0, h31, \[x0\]
+.*: 7ce043ff ldfmaxal h0, h31, \[sp\]
+.*: 7cff4000 ldfmaxal h31, h0, \[x0\]
+.*: 7cff43e0 ldfmaxal h31, h0, \[sp\]
+.*: 7cff401f ldfmaxal h31, h31, \[x0\]
+.*: 7cff43ff ldfmaxal h31, h31, \[sp\]
+.*: bce04000 ldfmaxal s0, s0, \[x0\]
+.*: bce043e0 ldfmaxal s0, s0, \[sp\]
+.*: bce0401f ldfmaxal s0, s31, \[x0\]
+.*: bce043ff ldfmaxal s0, s31, \[sp\]
+.*: bcff4000 ldfmaxal s31, s0, \[x0\]
+.*: bcff43e0 ldfmaxal s31, s0, \[sp\]
+.*: bcff401f ldfmaxal s31, s31, \[x0\]
+.*: bcff43ff ldfmaxal s31, s31, \[sp\]
+.*: fce04000 ldfmaxal d0, d0, \[x0\]
+.*: fce043e0 ldfmaxal d0, d0, \[sp\]
+.*: fce0401f ldfmaxal d0, d31, \[x0\]
+.*: fce043ff ldfmaxal d0, d31, \[sp\]
+.*: fcff4000 ldfmaxal d31, d0, \[x0\]
+.*: fcff43e0 ldfmaxal d31, d0, \[sp\]
+.*: fcff401f ldfmaxal d31, d31, \[x0\]
+.*: fcff43ff ldfmaxal d31, d31, \[sp\]
+.*: 7c604000 ldfmaxl h0, h0, \[x0\]
+.*: 7c6043e0 ldfmaxl h0, h0, \[sp\]
+.*: 7c60401f ldfmaxl h0, h31, \[x0\]
+.*: 7c6043ff ldfmaxl h0, h31, \[sp\]
+.*: 7c7f4000 ldfmaxl h31, h0, \[x0\]
+.*: 7c7f43e0 ldfmaxl h31, h0, \[sp\]
+.*: 7c7f401f ldfmaxl h31, h31, \[x0\]
+.*: 7c7f43ff ldfmaxl h31, h31, \[sp\]
+.*: bc604000 ldfmaxl s0, s0, \[x0\]
+.*: bc6043e0 ldfmaxl s0, s0, \[sp\]
+.*: bc60401f ldfmaxl s0, s31, \[x0\]
+.*: bc6043ff ldfmaxl s0, s31, \[sp\]
+.*: bc7f4000 ldfmaxl s31, s0, \[x0\]
+.*: bc7f43e0 ldfmaxl s31, s0, \[sp\]
+.*: bc7f401f ldfmaxl s31, s31, \[x0\]
+.*: bc7f43ff ldfmaxl s31, s31, \[sp\]
+.*: fc604000 ldfmaxl d0, d0, \[x0\]
+.*: fc6043e0 ldfmaxl d0, d0, \[sp\]
+.*: fc60401f ldfmaxl d0, d31, \[x0\]
+.*: fc6043ff ldfmaxl d0, d31, \[sp\]
+.*: fc7f4000 ldfmaxl d31, d0, \[x0\]
+.*: fc7f43e0 ldfmaxl d31, d0, \[sp\]
+.*: fc7f401f ldfmaxl d31, d31, \[x0\]
+.*: fc7f43ff ldfmaxl d31, d31, \[sp\]
+.*: 7c206000 ldfmaxnm h0, h0, \[x0\]
+.*: 7c2063e0 ldfmaxnm h0, h0, \[sp\]
+.*: 7c20601f ldfmaxnm h0, h31, \[x0\]
+.*: 7c2063ff ldfmaxnm h0, h31, \[sp\]
+.*: 7c3f6000 ldfmaxnm h31, h0, \[x0\]
+.*: 7c3f63e0 ldfmaxnm h31, h0, \[sp\]
+.*: 7c3f601f ldfmaxnm h31, h31, \[x0\]
+.*: 7c3f63ff ldfmaxnm h31, h31, \[sp\]
+.*: bc206000 ldfmaxnm s0, s0, \[x0\]
+.*: bc2063e0 ldfmaxnm s0, s0, \[sp\]
+.*: bc20601f ldfmaxnm s0, s31, \[x0\]
+.*: bc2063ff ldfmaxnm s0, s31, \[sp\]
+.*: bc3f6000 ldfmaxnm s31, s0, \[x0\]
+.*: bc3f63e0 ldfmaxnm s31, s0, \[sp\]
+.*: bc3f601f ldfmaxnm s31, s31, \[x0\]
+.*: bc3f63ff ldfmaxnm s31, s31, \[sp\]
+.*: fc206000 ldfmaxnm d0, d0, \[x0\]
+.*: fc2063e0 ldfmaxnm d0, d0, \[sp\]
+.*: fc20601f ldfmaxnm d0, d31, \[x0\]
+.*: fc2063ff ldfmaxnm d0, d31, \[sp\]
+.*: fc3f6000 ldfmaxnm d31, d0, \[x0\]
+.*: fc3f63e0 ldfmaxnm d31, d0, \[sp\]
+.*: fc3f601f ldfmaxnm d31, d31, \[x0\]
+.*: fc3f63ff ldfmaxnm d31, d31, \[sp\]
+.*: 7ca06000 ldfmaxnma h0, h0, \[x0\]
+.*: 7ca063e0 ldfmaxnma h0, h0, \[sp\]
+.*: 7ca0601f ldfmaxnma h0, h31, \[x0\]
+.*: 7ca063ff ldfmaxnma h0, h31, \[sp\]
+.*: 7cbf6000 ldfmaxnma h31, h0, \[x0\]
+.*: 7cbf63e0 ldfmaxnma h31, h0, \[sp\]
+.*: 7cbf601f ldfmaxnma h31, h31, \[x0\]
+.*: 7cbf63ff ldfmaxnma h31, h31, \[sp\]
+.*: bca06000 ldfmaxnma s0, s0, \[x0\]
+.*: bca063e0 ldfmaxnma s0, s0, \[sp\]
+.*: bca0601f ldfmaxnma s0, s31, \[x0\]
+.*: bca063ff ldfmaxnma s0, s31, \[sp\]
+.*: bcbf6000 ldfmaxnma s31, s0, \[x0\]
+.*: bcbf63e0 ldfmaxnma s31, s0, \[sp\]
+.*: bcbf601f ldfmaxnma s31, s31, \[x0\]
+.*: bcbf63ff ldfmaxnma s31, s31, \[sp\]
+.*: fca06000 ldfmaxnma d0, d0, \[x0\]
+.*: fca063e0 ldfmaxnma d0, d0, \[sp\]
+.*: fca0601f ldfmaxnma d0, d31, \[x0\]
+.*: fca063ff ldfmaxnma d0, d31, \[sp\]
+.*: fcbf6000 ldfmaxnma d31, d0, \[x0\]
+.*: fcbf63e0 ldfmaxnma d31, d0, \[sp\]
+.*: fcbf601f ldfmaxnma d31, d31, \[x0\]
+.*: fcbf63ff ldfmaxnma d31, d31, \[sp\]
+.*: 7ce06000 ldfmaxnmal h0, h0, \[x0\]
+.*: 7ce063e0 ldfmaxnmal h0, h0, \[sp\]
+.*: 7ce0601f ldfmaxnmal h0, h31, \[x0\]
+.*: 7ce063ff ldfmaxnmal h0, h31, \[sp\]
+.*: 7cff6000 ldfmaxnmal h31, h0, \[x0\]
+.*: 7cff63e0 ldfmaxnmal h31, h0, \[sp\]
+.*: 7cff601f ldfmaxnmal h31, h31, \[x0\]
+.*: 7cff63ff ldfmaxnmal h31, h31, \[sp\]
+.*: bce06000 ldfmaxnmal s0, s0, \[x0\]
+.*: bce063e0 ldfmaxnmal s0, s0, \[sp\]
+.*: bce0601f ldfmaxnmal s0, s31, \[x0\]
+.*: bce063ff ldfmaxnmal s0, s31, \[sp\]
+.*: bcff6000 ldfmaxnmal s31, s0, \[x0\]
+.*: bcff63e0 ldfmaxnmal s31, s0, \[sp\]
+.*: bcff601f ldfmaxnmal s31, s31, \[x0\]
+.*: bcff63ff ldfmaxnmal s31, s31, \[sp\]
+.*: fce06000 ldfmaxnmal d0, d0, \[x0\]
+.*: fce063e0 ldfmaxnmal d0, d0, \[sp\]
+.*: fce0601f ldfmaxnmal d0, d31, \[x0\]
+.*: fce063ff ldfmaxnmal d0, d31, \[sp\]
+.*: fcff6000 ldfmaxnmal d31, d0, \[x0\]
+.*: fcff63e0 ldfmaxnmal d31, d0, \[sp\]
+.*: fcff601f ldfmaxnmal d31, d31, \[x0\]
+.*: fcff63ff ldfmaxnmal d31, d31, \[sp\]
+.*: 7c606000 ldfmaxnml h0, h0, \[x0\]
+.*: 7c6063e0 ldfmaxnml h0, h0, \[sp\]
+.*: 7c60601f ldfmaxnml h0, h31, \[x0\]
+.*: 7c6063ff ldfmaxnml h0, h31, \[sp\]
+.*: 7c7f6000 ldfmaxnml h31, h0, \[x0\]
+.*: 7c7f63e0 ldfmaxnml h31, h0, \[sp\]
+.*: 7c7f601f ldfmaxnml h31, h31, \[x0\]
+.*: 7c7f63ff ldfmaxnml h31, h31, \[sp\]
+.*: bc606000 ldfmaxnml s0, s0, \[x0\]
+.*: bc6063e0 ldfmaxnml s0, s0, \[sp\]
+.*: bc60601f ldfmaxnml s0, s31, \[x0\]
+.*: bc6063ff ldfmaxnml s0, s31, \[sp\]
+.*: bc7f6000 ldfmaxnml s31, s0, \[x0\]
+.*: bc7f63e0 ldfmaxnml s31, s0, \[sp\]
+.*: bc7f601f ldfmaxnml s31, s31, \[x0\]
+.*: bc7f63ff ldfmaxnml s31, s31, \[sp\]
+.*: fc606000 ldfmaxnml d0, d0, \[x0\]
+.*: fc6063e0 ldfmaxnml d0, d0, \[sp\]
+.*: fc60601f ldfmaxnml d0, d31, \[x0\]
+.*: fc6063ff ldfmaxnml d0, d31, \[sp\]
+.*: fc7f6000 ldfmaxnml d31, d0, \[x0\]
+.*: fc7f63e0 ldfmaxnml d31, d0, \[sp\]
+.*: fc7f601f ldfmaxnml d31, d31, \[x0\]
+.*: fc7f63ff ldfmaxnml d31, d31, \[sp\]
+.*: 7c205000 ldfmin h0, h0, \[x0\]
+.*: 7c2053e0 ldfmin h0, h0, \[sp\]
+.*: 7c20501f ldfmin h0, h31, \[x0\]
+.*: 7c2053ff ldfmin h0, h31, \[sp\]
+.*: 7c3f5000 ldfmin h31, h0, \[x0\]
+.*: 7c3f53e0 ldfmin h31, h0, \[sp\]
+.*: 7c3f501f ldfmin h31, h31, \[x0\]
+.*: 7c3f53ff ldfmin h31, h31, \[sp\]
+.*: bc205000 ldfmin s0, s0, \[x0\]
+.*: bc2053e0 ldfmin s0, s0, \[sp\]
+.*: bc20501f ldfmin s0, s31, \[x0\]
+.*: bc2053ff ldfmin s0, s31, \[sp\]
+.*: bc3f5000 ldfmin s31, s0, \[x0\]
+.*: bc3f53e0 ldfmin s31, s0, \[sp\]
+.*: bc3f501f ldfmin s31, s31, \[x0\]
+.*: bc3f53ff ldfmin s31, s31, \[sp\]
+.*: fc205000 ldfmin d0, d0, \[x0\]
+.*: fc2053e0 ldfmin d0, d0, \[sp\]
+.*: fc20501f ldfmin d0, d31, \[x0\]
+.*: fc2053ff ldfmin d0, d31, \[sp\]
+.*: fc3f5000 ldfmin d31, d0, \[x0\]
+.*: fc3f53e0 ldfmin d31, d0, \[sp\]
+.*: fc3f501f ldfmin d31, d31, \[x0\]
+.*: fc3f53ff ldfmin d31, d31, \[sp\]
+.*: 7ca05000 ldfmina h0, h0, \[x0\]
+.*: 7ca053e0 ldfmina h0, h0, \[sp\]
+.*: 7ca0501f ldfmina h0, h31, \[x0\]
+.*: 7ca053ff ldfmina h0, h31, \[sp\]
+.*: 7cbf5000 ldfmina h31, h0, \[x0\]
+.*: 7cbf53e0 ldfmina h31, h0, \[sp\]
+.*: 7cbf501f ldfmina h31, h31, \[x0\]
+.*: 7cbf53ff ldfmina h31, h31, \[sp\]
+.*: bca05000 ldfmina s0, s0, \[x0\]
+.*: bca053e0 ldfmina s0, s0, \[sp\]
+.*: bca0501f ldfmina s0, s31, \[x0\]
+.*: bca053ff ldfmina s0, s31, \[sp\]
+.*: bcbf5000 ldfmina s31, s0, \[x0\]
+.*: bcbf53e0 ldfmina s31, s0, \[sp\]
+.*: bcbf501f ldfmina s31, s31, \[x0\]
+.*: bcbf53ff ldfmina s31, s31, \[sp\]
+.*: fca05000 ldfmina d0, d0, \[x0\]
+.*: fca053e0 ldfmina d0, d0, \[sp\]
+.*: fca0501f ldfmina d0, d31, \[x0\]
+.*: fca053ff ldfmina d0, d31, \[sp\]
+.*: fcbf5000 ldfmina d31, d0, \[x0\]
+.*: fcbf53e0 ldfmina d31, d0, \[sp\]
+.*: fcbf501f ldfmina d31, d31, \[x0\]
+.*: fcbf53ff ldfmina d31, d31, \[sp\]
+.*: 7ce05000 ldfminal h0, h0, \[x0\]
+.*: 7ce053e0 ldfminal h0, h0, \[sp\]
+.*: 7ce0501f ldfminal h0, h31, \[x0\]
+.*: 7ce053ff ldfminal h0, h31, \[sp\]
+.*: 7cff5000 ldfminal h31, h0, \[x0\]
+.*: 7cff53e0 ldfminal h31, h0, \[sp\]
+.*: 7cff501f ldfminal h31, h31, \[x0\]
+.*: 7cff53ff ldfminal h31, h31, \[sp\]
+.*: bce05000 ldfminal s0, s0, \[x0\]
+.*: bce053e0 ldfminal s0, s0, \[sp\]
+.*: bce0501f ldfminal s0, s31, \[x0\]
+.*: bce053ff ldfminal s0, s31, \[sp\]
+.*: bcff5000 ldfminal s31, s0, \[x0\]
+.*: bcff53e0 ldfminal s31, s0, \[sp\]
+.*: bcff501f ldfminal s31, s31, \[x0\]
+.*: bcff53ff ldfminal s31, s31, \[sp\]
+.*: fce05000 ldfminal d0, d0, \[x0\]
+.*: fce053e0 ldfminal d0, d0, \[sp\]
+.*: fce0501f ldfminal d0, d31, \[x0\]
+.*: fce053ff ldfminal d0, d31, \[sp\]
+.*: fcff5000 ldfminal d31, d0, \[x0\]
+.*: fcff53e0 ldfminal d31, d0, \[sp\]
+.*: fcff501f ldfminal d31, d31, \[x0\]
+.*: fcff53ff ldfminal d31, d31, \[sp\]
+.*: 7c605000 ldfminl h0, h0, \[x0\]
+.*: 7c6053e0 ldfminl h0, h0, \[sp\]
+.*: 7c60501f ldfminl h0, h31, \[x0\]
+.*: 7c6053ff ldfminl h0, h31, \[sp\]
+.*: 7c7f5000 ldfminl h31, h0, \[x0\]
+.*: 7c7f53e0 ldfminl h31, h0, \[sp\]
+.*: 7c7f501f ldfminl h31, h31, \[x0\]
+.*: 7c7f53ff ldfminl h31, h31, \[sp\]
+.*: bc605000 ldfminl s0, s0, \[x0\]
+.*: bc6053e0 ldfminl s0, s0, \[sp\]
+.*: bc60501f ldfminl s0, s31, \[x0\]
+.*: bc6053ff ldfminl s0, s31, \[sp\]
+.*: bc7f5000 ldfminl s31, s0, \[x0\]
+.*: bc7f53e0 ldfminl s31, s0, \[sp\]
+.*: bc7f501f ldfminl s31, s31, \[x0\]
+.*: bc7f53ff ldfminl s31, s31, \[sp\]
+.*: fc605000 ldfminl d0, d0, \[x0\]
+.*: fc6053e0 ldfminl d0, d0, \[sp\]
+.*: fc60501f ldfminl d0, d31, \[x0\]
+.*: fc6053ff ldfminl d0, d31, \[sp\]
+.*: fc7f5000 ldfminl d31, d0, \[x0\]
+.*: fc7f53e0 ldfminl d31, d0, \[sp\]
+.*: fc7f501f ldfminl d31, d31, \[x0\]
+.*: fc7f53ff ldfminl d31, d31, \[sp\]
+.*: 7c207000 ldfminnm h0, h0, \[x0\]
+.*: 7c2073e0 ldfminnm h0, h0, \[sp\]
+.*: 7c20701f ldfminnm h0, h31, \[x0\]
+.*: 7c2073ff ldfminnm h0, h31, \[sp\]
+.*: 7c3f7000 ldfminnm h31, h0, \[x0\]
+.*: 7c3f73e0 ldfminnm h31, h0, \[sp\]
+.*: 7c3f701f ldfminnm h31, h31, \[x0\]
+.*: 7c3f73ff ldfminnm h31, h31, \[sp\]
+.*: bc207000 ldfminnm s0, s0, \[x0\]
+.*: bc2073e0 ldfminnm s0, s0, \[sp\]
+.*: bc20701f ldfminnm s0, s31, \[x0\]
+.*: bc2073ff ldfminnm s0, s31, \[sp\]
+.*: bc3f7000 ldfminnm s31, s0, \[x0\]
+.*: bc3f73e0 ldfminnm s31, s0, \[sp\]
+.*: bc3f701f ldfminnm s31, s31, \[x0\]
+.*: bc3f73ff ldfminnm s31, s31, \[sp\]
+.*: fc207000 ldfminnm d0, d0, \[x0\]
+.*: fc2073e0 ldfminnm d0, d0, \[sp\]
+.*: fc20701f ldfminnm d0, d31, \[x0\]
+.*: fc2073ff ldfminnm d0, d31, \[sp\]
+.*: fc3f7000 ldfminnm d31, d0, \[x0\]
+.*: fc3f73e0 ldfminnm d31, d0, \[sp\]
+.*: fc3f701f ldfminnm d31, d31, \[x0\]
+.*: fc3f73ff ldfminnm d31, d31, \[sp\]
+.*: 7ca07000 ldfminnma h0, h0, \[x0\]
+.*: 7ca073e0 ldfminnma h0, h0, \[sp\]
+.*: 7ca0701f ldfminnma h0, h31, \[x0\]
+.*: 7ca073ff ldfminnma h0, h31, \[sp\]
+.*: 7cbf7000 ldfminnma h31, h0, \[x0\]
+.*: 7cbf73e0 ldfminnma h31, h0, \[sp\]
+.*: 7cbf701f ldfminnma h31, h31, \[x0\]
+.*: 7cbf73ff ldfminnma h31, h31, \[sp\]
+.*: bca07000 ldfminnma s0, s0, \[x0\]
+.*: bca073e0 ldfminnma s0, s0, \[sp\]
+.*: bca0701f ldfminnma s0, s31, \[x0\]
+.*: bca073ff ldfminnma s0, s31, \[sp\]
+.*: bcbf7000 ldfminnma s31, s0, \[x0\]
+.*: bcbf73e0 ldfminnma s31, s0, \[sp\]
+.*: bcbf701f ldfminnma s31, s31, \[x0\]
+.*: bcbf73ff ldfminnma s31, s31, \[sp\]
+.*: fca07000 ldfminnma d0, d0, \[x0\]
+.*: fca073e0 ldfminnma d0, d0, \[sp\]
+.*: fca0701f ldfminnma d0, d31, \[x0\]
+.*: fca073ff ldfminnma d0, d31, \[sp\]
+.*: fcbf7000 ldfminnma d31, d0, \[x0\]
+.*: fcbf73e0 ldfminnma d31, d0, \[sp\]
+.*: fcbf701f ldfminnma d31, d31, \[x0\]
+.*: fcbf73ff ldfminnma d31, d31, \[sp\]
+.*: 7ce07000 ldfminnmal h0, h0, \[x0\]
+.*: 7ce073e0 ldfminnmal h0, h0, \[sp\]
+.*: 7ce0701f ldfminnmal h0, h31, \[x0\]
+.*: 7ce073ff ldfminnmal h0, h31, \[sp\]
+.*: 7cff7000 ldfminnmal h31, h0, \[x0\]
+.*: 7cff73e0 ldfminnmal h31, h0, \[sp\]
+.*: 7cff701f ldfminnmal h31, h31, \[x0\]
+.*: 7cff73ff ldfminnmal h31, h31, \[sp\]
+.*: bce07000 ldfminnmal s0, s0, \[x0\]
+.*: bce073e0 ldfminnmal s0, s0, \[sp\]
+.*: bce0701f ldfminnmal s0, s31, \[x0\]
+.*: bce073ff ldfminnmal s0, s31, \[sp\]
+.*: bcff7000 ldfminnmal s31, s0, \[x0\]
+.*: bcff73e0 ldfminnmal s31, s0, \[sp\]
+.*: bcff701f ldfminnmal s31, s31, \[x0\]
+.*: bcff73ff ldfminnmal s31, s31, \[sp\]
+.*: fce07000 ldfminnmal d0, d0, \[x0\]
+.*: fce073e0 ldfminnmal d0, d0, \[sp\]
+.*: fce0701f ldfminnmal d0, d31, \[x0\]
+.*: fce073ff ldfminnmal d0, d31, \[sp\]
+.*: fcff7000 ldfminnmal d31, d0, \[x0\]
+.*: fcff73e0 ldfminnmal d31, d0, \[sp\]
+.*: fcff701f ldfminnmal d31, d31, \[x0\]
+.*: fcff73ff ldfminnmal d31, d31, \[sp\]
+.*: 7c607000 ldfminnml h0, h0, \[x0\]
+.*: 7c6073e0 ldfminnml h0, h0, \[sp\]
+.*: 7c60701f ldfminnml h0, h31, \[x0\]
+.*: 7c6073ff ldfminnml h0, h31, \[sp\]
+.*: 7c7f7000 ldfminnml h31, h0, \[x0\]
+.*: 7c7f73e0 ldfminnml h31, h0, \[sp\]
+.*: 7c7f701f ldfminnml h31, h31, \[x0\]
+.*: 7c7f73ff ldfminnml h31, h31, \[sp\]
+.*: bc607000 ldfminnml s0, s0, \[x0\]
+.*: bc6073e0 ldfminnml s0, s0, \[sp\]
+.*: bc60701f ldfminnml s0, s31, \[x0\]
+.*: bc6073ff ldfminnml s0, s31, \[sp\]
+.*: bc7f7000 ldfminnml s31, s0, \[x0\]
+.*: bc7f73e0 ldfminnml s31, s0, \[sp\]
+.*: bc7f701f ldfminnml s31, s31, \[x0\]
+.*: bc7f73ff ldfminnml s31, s31, \[sp\]
+.*: fc607000 ldfminnml d0, d0, \[x0\]
+.*: fc6073e0 ldfminnml d0, d0, \[sp\]
+.*: fc60701f ldfminnml d0, d31, \[x0\]
+.*: fc6073ff ldfminnml d0, d31, \[sp\]
+.*: fc7f7000 ldfminnml d31, d0, \[x0\]
+.*: fc7f73e0 ldfminnml d31, d0, \[sp\]
+.*: fc7f701f ldfminnml d31, d31, \[x0\]
+.*: fc7f73ff ldfminnml d31, d31, \[sp\]
+
+.* <ldbf>:
+.*: 3c200000 ldbfadd h0, h0, \[x0\]
+.*: 3c2003e0 ldbfadd h0, h0, \[sp\]
+.*: 3c20001f ldbfadd h0, h31, \[x0\]
+.*: 3c2003ff ldbfadd h0, h31, \[sp\]
+.*: 3c3f0000 ldbfadd h31, h0, \[x0\]
+.*: 3c3f03e0 ldbfadd h31, h0, \[sp\]
+.*: 3c3f001f ldbfadd h31, h31, \[x0\]
+.*: 3c3f03ff ldbfadd h31, h31, \[sp\]
+.*: 3ca00000 ldbfadda h0, h0, \[x0\]
+.*: 3ca003e0 ldbfadda h0, h0, \[sp\]
+.*: 3ca0001f ldbfadda h0, h31, \[x0\]
+.*: 3ca003ff ldbfadda h0, h31, \[sp\]
+.*: 3cbf0000 ldbfadda h31, h0, \[x0\]
+.*: 3cbf03e0 ldbfadda h31, h0, \[sp\]
+.*: 3cbf001f ldbfadda h31, h31, \[x0\]
+.*: 3cbf03ff ldbfadda h31, h31, \[sp\]
+.*: 3ce00000 ldbfaddal h0, h0, \[x0\]
+.*: 3ce003e0 ldbfaddal h0, h0, \[sp\]
+.*: 3ce0001f ldbfaddal h0, h31, \[x0\]
+.*: 3ce003ff ldbfaddal h0, h31, \[sp\]
+.*: 3cff0000 ldbfaddal h31, h0, \[x0\]
+.*: 3cff03e0 ldbfaddal h31, h0, \[sp\]
+.*: 3cff001f ldbfaddal h31, h31, \[x0\]
+.*: 3cff03ff ldbfaddal h31, h31, \[sp\]
+.*: 3c600000 ldbfaddl h0, h0, \[x0\]
+.*: 3c6003e0 ldbfaddl h0, h0, \[sp\]
+.*: 3c60001f ldbfaddl h0, h31, \[x0\]
+.*: 3c6003ff ldbfaddl h0, h31, \[sp\]
+.*: 3c7f0000 ldbfaddl h31, h0, \[x0\]
+.*: 3c7f03e0 ldbfaddl h31, h0, \[sp\]
+.*: 3c7f001f ldbfaddl h31, h31, \[x0\]
+.*: 3c7f03ff ldbfaddl h31, h31, \[sp\]
+.*: 3c204000 ldbfmax h0, h0, \[x0\]
+.*: 3c2043e0 ldbfmax h0, h0, \[sp\]
+.*: 3c20401f ldbfmax h0, h31, \[x0\]
+.*: 3c2043ff ldbfmax h0, h31, \[sp\]
+.*: 3c3f4000 ldbfmax h31, h0, \[x0\]
+.*: 3c3f43e0 ldbfmax h31, h0, \[sp\]
+.*: 3c3f401f ldbfmax h31, h31, \[x0\]
+.*: 3c3f43ff ldbfmax h31, h31, \[sp\]
+.*: 3ca04000 ldbfmaxa h0, h0, \[x0\]
+.*: 3ca043e0 ldbfmaxa h0, h0, \[sp\]
+.*: 3ca0401f ldbfmaxa h0, h31, \[x0\]
+.*: 3ca043ff ldbfmaxa h0, h31, \[sp\]
+.*: 3cbf4000 ldbfmaxa h31, h0, \[x0\]
+.*: 3cbf43e0 ldbfmaxa h31, h0, \[sp\]
+.*: 3cbf401f ldbfmaxa h31, h31, \[x0\]
+.*: 3cbf43ff ldbfmaxa h31, h31, \[sp\]
+.*: 3ce04000 ldbfmaxal h0, h0, \[x0\]
+.*: 3ce043e0 ldbfmaxal h0, h0, \[sp\]
+.*: 3ce0401f ldbfmaxal h0, h31, \[x0\]
+.*: 3ce043ff ldbfmaxal h0, h31, \[sp\]
+.*: 3cff4000 ldbfmaxal h31, h0, \[x0\]
+.*: 3cff43e0 ldbfmaxal h31, h0, \[sp\]
+.*: 3cff401f ldbfmaxal h31, h31, \[x0\]
+.*: 3cff43ff ldbfmaxal h31, h31, \[sp\]
+.*: 3c604000 ldbfmaxl h0, h0, \[x0\]
+.*: 3c6043e0 ldbfmaxl h0, h0, \[sp\]
+.*: 3c60401f ldbfmaxl h0, h31, \[x0\]
+.*: 3c6043ff ldbfmaxl h0, h31, \[sp\]
+.*: 3c7f4000 ldbfmaxl h31, h0, \[x0\]
+.*: 3c7f43e0 ldbfmaxl h31, h0, \[sp\]
+.*: 3c7f401f ldbfmaxl h31, h31, \[x0\]
+.*: 3c7f43ff ldbfmaxl h31, h31, \[sp\]
+.*: 3c206000 ldbfmaxnm h0, h0, \[x0\]
+.*: 3c2063e0 ldbfmaxnm h0, h0, \[sp\]
+.*: 3c20601f ldbfmaxnm h0, h31, \[x0\]
+.*: 3c2063ff ldbfmaxnm h0, h31, \[sp\]
+.*: 3c3f6000 ldbfmaxnm h31, h0, \[x0\]
+.*: 3c3f63e0 ldbfmaxnm h31, h0, \[sp\]
+.*: 3c3f601f ldbfmaxnm h31, h31, \[x0\]
+.*: 3c3f63ff ldbfmaxnm h31, h31, \[sp\]
+.*: 3ca06000 ldbfmaxnma h0, h0, \[x0\]
+.*: 3ca063e0 ldbfmaxnma h0, h0, \[sp\]
+.*: 3ca0601f ldbfmaxnma h0, h31, \[x0\]
+.*: 3ca063ff ldbfmaxnma h0, h31, \[sp\]
+.*: 3cbf6000 ldbfmaxnma h31, h0, \[x0\]
+.*: 3cbf63e0 ldbfmaxnma h31, h0, \[sp\]
+.*: 3cbf601f ldbfmaxnma h31, h31, \[x0\]
+.*: 3cbf63ff ldbfmaxnma h31, h31, \[sp\]
+.*: 3ce06000 ldbfmaxnmal h0, h0, \[x0\]
+.*: 3ce063e0 ldbfmaxnmal h0, h0, \[sp\]
+.*: 3ce0601f ldbfmaxnmal h0, h31, \[x0\]
+.*: 3ce063ff ldbfmaxnmal h0, h31, \[sp\]
+.*: 3cff6000 ldbfmaxnmal h31, h0, \[x0\]
+.*: 3cff63e0 ldbfmaxnmal h31, h0, \[sp\]
+.*: 3cff601f ldbfmaxnmal h31, h31, \[x0\]
+.*: 3cff63ff ldbfmaxnmal h31, h31, \[sp\]
+.*: 3c606000 ldbfmaxnml h0, h0, \[x0\]
+.*: 3c6063e0 ldbfmaxnml h0, h0, \[sp\]
+.*: 3c60601f ldbfmaxnml h0, h31, \[x0\]
+.*: 3c6063ff ldbfmaxnml h0, h31, \[sp\]
+.*: 3c7f6000 ldbfmaxnml h31, h0, \[x0\]
+.*: 3c7f63e0 ldbfmaxnml h31, h0, \[sp\]
+.*: 3c7f601f ldbfmaxnml h31, h31, \[x0\]
+.*: 3c7f63ff ldbfmaxnml h31, h31, \[sp\]
+.*: 3c205000 ldbfmin h0, h0, \[x0\]
+.*: 3c2053e0 ldbfmin h0, h0, \[sp\]
+.*: 3c20501f ldbfmin h0, h31, \[x0\]
+.*: 3c2053ff ldbfmin h0, h31, \[sp\]
+.*: 3c3f5000 ldbfmin h31, h0, \[x0\]
+.*: 3c3f53e0 ldbfmin h31, h0, \[sp\]
+.*: 3c3f501f ldbfmin h31, h31, \[x0\]
+.*: 3c3f53ff ldbfmin h31, h31, \[sp\]
+.*: 3ca05000 ldbfmina h0, h0, \[x0\]
+.*: 3ca053e0 ldbfmina h0, h0, \[sp\]
+.*: 3ca0501f ldbfmina h0, h31, \[x0\]
+.*: 3ca053ff ldbfmina h0, h31, \[sp\]
+.*: 3cbf5000 ldbfmina h31, h0, \[x0\]
+.*: 3cbf53e0 ldbfmina h31, h0, \[sp\]
+.*: 3cbf501f ldbfmina h31, h31, \[x0\]
+.*: 3cbf53ff ldbfmina h31, h31, \[sp\]
+.*: 3ce05000 ldbfminal h0, h0, \[x0\]
+.*: 3ce053e0 ldbfminal h0, h0, \[sp\]
+.*: 3ce0501f ldbfminal h0, h31, \[x0\]
+.*: 3ce053ff ldbfminal h0, h31, \[sp\]
+.*: 3cff5000 ldbfminal h31, h0, \[x0\]
+.*: 3cff53e0 ldbfminal h31, h0, \[sp\]
+.*: 3cff501f ldbfminal h31, h31, \[x0\]
+.*: 3cff53ff ldbfminal h31, h31, \[sp\]
+.*: 3c605000 ldbfminl h0, h0, \[x0\]
+.*: 3c6053e0 ldbfminl h0, h0, \[sp\]
+.*: 3c60501f ldbfminl h0, h31, \[x0\]
+.*: 3c6053ff ldbfminl h0, h31, \[sp\]
+.*: 3c7f5000 ldbfminl h31, h0, \[x0\]
+.*: 3c7f53e0 ldbfminl h31, h0, \[sp\]
+.*: 3c7f501f ldbfminl h31, h31, \[x0\]
+.*: 3c7f53ff ldbfminl h31, h31, \[sp\]
+.*: 3c207000 ldbfminnm h0, h0, \[x0\]
+.*: 3c2073e0 ldbfminnm h0, h0, \[sp\]
+.*: 3c20701f ldbfminnm h0, h31, \[x0\]
+.*: 3c2073ff ldbfminnm h0, h31, \[sp\]
+.*: 3c3f7000 ldbfminnm h31, h0, \[x0\]
+.*: 3c3f73e0 ldbfminnm h31, h0, \[sp\]
+.*: 3c3f701f ldbfminnm h31, h31, \[x0\]
+.*: 3c3f73ff ldbfminnm h31, h31, \[sp\]
+.*: 3ca07000 ldbfminnma h0, h0, \[x0\]
+.*: 3ca073e0 ldbfminnma h0, h0, \[sp\]
+.*: 3ca0701f ldbfminnma h0, h31, \[x0\]
+.*: 3ca073ff ldbfminnma h0, h31, \[sp\]
+.*: 3cbf7000 ldbfminnma h31, h0, \[x0\]
+.*: 3cbf73e0 ldbfminnma h31, h0, \[sp\]
+.*: 3cbf701f ldbfminnma h31, h31, \[x0\]
+.*: 3cbf73ff ldbfminnma h31, h31, \[sp\]
+.*: 3ce07000 ldbfminnmal h0, h0, \[x0\]
+.*: 3ce073e0 ldbfminnmal h0, h0, \[sp\]
+.*: 3ce0701f ldbfminnmal h0, h31, \[x0\]
+.*: 3ce073ff ldbfminnmal h0, h31, \[sp\]
+.*: 3cff7000 ldbfminnmal h31, h0, \[x0\]
+.*: 3cff73e0 ldbfminnmal h31, h0, \[sp\]
+.*: 3cff701f ldbfminnmal h31, h31, \[x0\]
+.*: 3cff73ff ldbfminnmal h31, h31, \[sp\]
+.*: 3c607000 ldbfminnml h0, h0, \[x0\]
+.*: 3c6073e0 ldbfminnml h0, h0, \[sp\]
+.*: 3c60701f ldbfminnml h0, h31, \[x0\]
+.*: 3c6073ff ldbfminnml h0, h31, \[sp\]
+.*: 3c7f7000 ldbfminnml h31, h0, \[x0\]
+.*: 3c7f73e0 ldbfminnml h31, h0, \[sp\]
+.*: 3c7f701f ldbfminnml h31, h31, \[x0\]
+.*: 3c7f73ff ldbfminnml h31, h31, \[sp\]
+
+.* <stf>:
+.*: 7c20801f stfadd h0, \[x0\]
+.*: 7c2083ff stfadd h0, \[sp\]
+.*: 7c3f801f stfadd h31, \[x0\]
+.*: 7c3f83ff stfadd h31, \[sp\]
+.*: bc20801f stfadd s0, \[x0\]
+.*: bc2083ff stfadd s0, \[sp\]
+.*: bc3f801f stfadd s31, \[x0\]
+.*: bc3f83ff stfadd s31, \[sp\]
+.*: fc20801f stfadd d0, \[x0\]
+.*: fc2083ff stfadd d0, \[sp\]
+.*: fc3f801f stfadd d31, \[x0\]
+.*: fc3f83ff stfadd d31, \[sp\]
+.*: 7c60801f stfaddl h0, \[x0\]
+.*: 7c6083ff stfaddl h0, \[sp\]
+.*: 7c7f801f stfaddl h31, \[x0\]
+.*: 7c7f83ff stfaddl h31, \[sp\]
+.*: bc60801f stfaddl s0, \[x0\]
+.*: bc6083ff stfaddl s0, \[sp\]
+.*: bc7f801f stfaddl s31, \[x0\]
+.*: bc7f83ff stfaddl s31, \[sp\]
+.*: fc60801f stfaddl d0, \[x0\]
+.*: fc6083ff stfaddl d0, \[sp\]
+.*: fc7f801f stfaddl d31, \[x0\]
+.*: fc7f83ff stfaddl d31, \[sp\]
+.*: 7c20c01f stfmax h0, \[x0\]
+.*: 7c20c3ff stfmax h0, \[sp\]
+.*: 7c3fc01f stfmax h31, \[x0\]
+.*: 7c3fc3ff stfmax h31, \[sp\]
+.*: bc20c01f stfmax s0, \[x0\]
+.*: bc20c3ff stfmax s0, \[sp\]
+.*: bc3fc01f stfmax s31, \[x0\]
+.*: bc3fc3ff stfmax s31, \[sp\]
+.*: fc20c01f stfmax d0, \[x0\]
+.*: fc20c3ff stfmax d0, \[sp\]
+.*: fc3fc01f stfmax d31, \[x0\]
+.*: fc3fc3ff stfmax d31, \[sp\]
+.*: 7c60c01f stfmaxl h0, \[x0\]
+.*: 7c60c3ff stfmaxl h0, \[sp\]
+.*: 7c7fc01f stfmaxl h31, \[x0\]
+.*: 7c7fc3ff stfmaxl h31, \[sp\]
+.*: bc60c01f stfmaxl s0, \[x0\]
+.*: bc60c3ff stfmaxl s0, \[sp\]
+.*: bc7fc01f stfmaxl s31, \[x0\]
+.*: bc7fc3ff stfmaxl s31, \[sp\]
+.*: fc60c01f stfmaxl d0, \[x0\]
+.*: fc60c3ff stfmaxl d0, \[sp\]
+.*: fc7fc01f stfmaxl d31, \[x0\]
+.*: fc7fc3ff stfmaxl d31, \[sp\]
+.*: 7c20e01f stfmaxnm h0, \[x0\]
+.*: 7c20e3ff stfmaxnm h0, \[sp\]
+.*: 7c3fe01f stfmaxnm h31, \[x0\]
+.*: 7c3fe3ff stfmaxnm h31, \[sp\]
+.*: bc20e01f stfmaxnm s0, \[x0\]
+.*: bc20e3ff stfmaxnm s0, \[sp\]
+.*: bc3fe01f stfmaxnm s31, \[x0\]
+.*: bc3fe3ff stfmaxnm s31, \[sp\]
+.*: fc20e01f stfmaxnm d0, \[x0\]
+.*: fc20e3ff stfmaxnm d0, \[sp\]
+.*: fc3fe01f stfmaxnm d31, \[x0\]
+.*: fc3fe3ff stfmaxnm d31, \[sp\]
+.*: 7c60e01f stfmaxnml h0, \[x0\]
+.*: 7c60e3ff stfmaxnml h0, \[sp\]
+.*: 7c7fe01f stfmaxnml h31, \[x0\]
+.*: 7c7fe3ff stfmaxnml h31, \[sp\]
+.*: bc60e01f stfmaxnml s0, \[x0\]
+.*: bc60e3ff stfmaxnml s0, \[sp\]
+.*: bc7fe01f stfmaxnml s31, \[x0\]
+.*: bc7fe3ff stfmaxnml s31, \[sp\]
+.*: fc60e01f stfmaxnml d0, \[x0\]
+.*: fc60e3ff stfmaxnml d0, \[sp\]
+.*: fc7fe01f stfmaxnml d31, \[x0\]
+.*: fc7fe3ff stfmaxnml d31, \[sp\]
+.*: 7c20d01f stfmin h0, \[x0\]
+.*: 7c20d3ff stfmin h0, \[sp\]
+.*: 7c3fd01f stfmin h31, \[x0\]
+.*: 7c3fd3ff stfmin h31, \[sp\]
+.*: bc20d01f stfmin s0, \[x0\]
+.*: bc20d3ff stfmin s0, \[sp\]
+.*: bc3fd01f stfmin s31, \[x0\]
+.*: bc3fd3ff stfmin s31, \[sp\]
+.*: fc20d01f stfmin d0, \[x0\]
+.*: fc20d3ff stfmin d0, \[sp\]
+.*: fc3fd01f stfmin d31, \[x0\]
+.*: fc3fd3ff stfmin d31, \[sp\]
+.*: 7c60d01f stfminl h0, \[x0\]
+.*: 7c60d3ff stfminl h0, \[sp\]
+.*: 7c7fd01f stfminl h31, \[x0\]
+.*: 7c7fd3ff stfminl h31, \[sp\]
+.*: bc60d01f stfminl s0, \[x0\]
+.*: bc60d3ff stfminl s0, \[sp\]
+.*: bc7fd01f stfminl s31, \[x0\]
+.*: bc7fd3ff stfminl s31, \[sp\]
+.*: fc60d01f stfminl d0, \[x0\]
+.*: fc60d3ff stfminl d0, \[sp\]
+.*: fc7fd01f stfminl d31, \[x0\]
+.*: fc7fd3ff stfminl d31, \[sp\]
+.*: 7c20f01f stfminnm h0, \[x0\]
+.*: 7c20f3ff stfminnm h0, \[sp\]
+.*: 7c3ff01f stfminnm h31, \[x0\]
+.*: 7c3ff3ff stfminnm h31, \[sp\]
+.*: bc20f01f stfminnm s0, \[x0\]
+.*: bc20f3ff stfminnm s0, \[sp\]
+.*: bc3ff01f stfminnm s31, \[x0\]
+.*: bc3ff3ff stfminnm s31, \[sp\]
+.*: fc20f01f stfminnm d0, \[x0\]
+.*: fc20f3ff stfminnm d0, \[sp\]
+.*: fc3ff01f stfminnm d31, \[x0\]
+.*: fc3ff3ff stfminnm d31, \[sp\]
+.*: 7c60f01f stfminnml h0, \[x0\]
+.*: 7c60f3ff stfminnml h0, \[sp\]
+.*: 7c7ff01f stfminnml h31, \[x0\]
+.*: 7c7ff3ff stfminnml h31, \[sp\]
+.*: bc60f01f stfminnml s0, \[x0\]
+.*: bc60f3ff stfminnml s0, \[sp\]
+.*: bc7ff01f stfminnml s31, \[x0\]
+.*: bc7ff3ff stfminnml s31, \[sp\]
+.*: fc60f01f stfminnml d0, \[x0\]
+.*: fc60f3ff stfminnml d0, \[sp\]
+.*: fc7ff01f stfminnml d31, \[x0\]
+.*: fc7ff3ff stfminnml d31, \[sp\]
+
+.* <stbf>:
+.*: 3c20801f stbfadd h0, \[x0\]
+.*: 3c2083ff stbfadd h0, \[sp\]
+.*: 3c3f801f stbfadd h31, \[x0\]
+.*: 3c3f83ff stbfadd h31, \[sp\]
+.*: 3c60801f stbfaddl h0, \[x0\]
+.*: 3c6083ff stbfaddl h0, \[sp\]
+.*: 3c7f801f stbfaddl h31, \[x0\]
+.*: 3c7f83ff stbfaddl h31, \[sp\]
+.*: 3c20c01f stbfmax h0, \[x0\]
+.*: 3c20c3ff stbfmax h0, \[sp\]
+.*: 3c3fc01f stbfmax h31, \[x0\]
+.*: 3c3fc3ff stbfmax h31, \[sp\]
+.*: 3c60c01f stbfmaxl h0, \[x0\]
+.*: 3c60c3ff stbfmaxl h0, \[sp\]
+.*: 3c7fc01f stbfmaxl h31, \[x0\]
+.*: 3c7fc3ff stbfmaxl h31, \[sp\]
+.*: 3c20e01f stbfmaxnm h0, \[x0\]
+.*: 3c20e3ff stbfmaxnm h0, \[sp\]
+.*: 3c3fe01f stbfmaxnm h31, \[x0\]
+.*: 3c3fe3ff stbfmaxnm h31, \[sp\]
+.*: 3c60e01f stbfmaxnml h0, \[x0\]
+.*: 3c60e3ff stbfmaxnml h0, \[sp\]
+.*: 3c7fe01f stbfmaxnml h31, \[x0\]
+.*: 3c7fe3ff stbfmaxnml h31, \[sp\]
+.*: 3c20d01f stbfmin h0, \[x0\]
+.*: 3c20d3ff stbfmin h0, \[sp\]
+.*: 3c3fd01f stbfmin h31, \[x0\]
+.*: 3c3fd3ff stbfmin h31, \[sp\]
+.*: 3c60d01f stbfminl h0, \[x0\]
+.*: 3c60d3ff stbfminl h0, \[sp\]
+.*: 3c7fd01f stbfminl h31, \[x0\]
+.*: 3c7fd3ff stbfminl h31, \[sp\]
+.*: 3c20f01f stbfminnm h0, \[x0\]
+.*: 3c20f3ff stbfminnm h0, \[sp\]
+.*: 3c3ff01f stbfminnm h31, \[x0\]
+.*: 3c3ff3ff stbfminnm h31, \[sp\]
+.*: 3c60f01f stbfminnml h0, \[x0\]
+.*: 3c60f3ff stbfminnml h0, \[sp\]
+.*: 3c7ff01f stbfminnml h31, \[x0\]
+.*: 3c7ff3ff stbfminnml h31, \[sp\]
diff --git a/gas/testsuite/gas/aarch64/lsfe.s b/gas/testsuite/gas/aarch64/lsfe.s
new file mode 100644
index 0000000..ff11f92
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/lsfe.s
@@ -0,0 +1,71 @@
+ldf:
+ .irp op, add, max, maxnm, min, minnm
+ .irp suffix, , a, al, l
+ ldf\op\suffix h0, h0, [x0]
+ ldf\op\suffix h0, h0, [sp]
+ ldf\op\suffix h0, h31, [x0]
+ ldf\op\suffix h0, h31, [sp]
+ ldf\op\suffix h31, h0, [x0]
+ ldf\op\suffix h31, h0, [sp]
+ ldf\op\suffix h31, h31, [x0]
+ ldf\op\suffix h31, h31, [sp]
+ ldf\op\suffix s0, s0, [x0]
+ ldf\op\suffix s0, s0, [sp]
+ ldf\op\suffix s0, s31, [x0]
+ ldf\op\suffix s0, s31, [sp]
+ ldf\op\suffix s31, s0, [x0]
+ ldf\op\suffix s31, s0, [sp]
+ ldf\op\suffix s31, s31, [x0]
+ ldf\op\suffix s31, s31, [sp]
+ ldf\op\suffix d0, d0, [x0]
+ ldf\op\suffix d0, d0, [sp]
+ ldf\op\suffix d0, d31, [x0]
+ ldf\op\suffix d0, d31, [sp]
+ ldf\op\suffix d31, d0, [x0]
+ ldf\op\suffix d31, d0, [sp]
+ ldf\op\suffix d31, d31, [x0]
+ ldf\op\suffix d31, d31, [sp]
+ .endr
+ .endr
+
+ldbf:
+ .irp op, add, max, maxnm, min, minnm
+ .irp suffix, , a, al, l
+ ldbf\op\suffix h0, h0, [x0]
+ ldbf\op\suffix h0, h0, [sp]
+ ldbf\op\suffix h0, h31, [x0]
+ ldbf\op\suffix h0, h31, [sp]
+ ldbf\op\suffix h31, h0, [x0]
+ ldbf\op\suffix h31, h0, [sp]
+ ldbf\op\suffix h31, h31, [x0]
+ ldbf\op\suffix h31, h31, [sp]
+ .endr
+ .endr
+
+stf:
+ .irp op, add, max, maxnm, min, minnm
+ .irp suffix, , l
+ stf\op\suffix h0, [x0]
+ stf\op\suffix h0, [sp]
+ stf\op\suffix h31, [x0]
+ stf\op\suffix h31, [sp]
+ stf\op\suffix s0, [x0]
+ stf\op\suffix s0, [sp]
+ stf\op\suffix s31, [x0]
+ stf\op\suffix s31, [sp]
+ stf\op\suffix d0, [x0]
+ stf\op\suffix d0, [sp]
+ stf\op\suffix d31, [x0]
+ stf\op\suffix d31, [sp]
+ .endr
+ .endr
+
+stbf:
+ .irp op, add, max, maxnm, min, minnm
+ .irp suffix, , l
+ stbf\op\suffix h0, [x0]
+ stbf\op\suffix h0, [sp]
+ stbf\op\suffix h31, [x0]
+ stbf\op\suffix h31, [sp]
+ .endr
+ .endr
diff --git a/gas/testsuite/gas/aarch64/mec-arch-bad.d b/gas/testsuite/gas/aarch64/mec-arch-bad.d
new file mode 100644
index 0000000..d2e6416
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/mec-arch-bad.d
@@ -0,0 +1,4 @@
+#name: MEC unavailable for architecture below armv9.2-a
+#as: -march=armv9.1-a
+#source: mec.s
+#error_output: mec-arch-bad.l
diff --git a/gas/testsuite/gas/aarch64/mec-arch-bad.l b/gas/testsuite/gas/aarch64/mec-arch-bad.l
new file mode 100644
index 0000000..9025dba
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/mec-arch-bad.l
@@ -0,0 +1,18 @@
+.*: Assembler messages:
+.*: Error: selected processor does not support system register name 'mecidr_el2'
+.*: Error: selected processor does not support system register name 'mecid_p0_el2'
+.*: Error: selected processor does not support system register name 'mecid_a0_el2'
+.*: Error: selected processor does not support system register name 'mecid_p1_el2'
+.*: Error: selected processor does not support system register name 'mecid_a1_el2'
+.*: Error: selected processor does not support system register name 'vmecid_p_el2'
+.*: Error: selected processor does not support system register name 'vmecid_a_el2'
+.*: Error: selected processor does not support system register name 'mecid_rl_a_el3'
+.*: Error: selected processor does not support system register name 'mecid_p0_el2'
+.*: Error: selected processor does not support system register name 'mecid_a0_el2'
+.*: Error: selected processor does not support system register name 'mecid_p1_el2'
+.*: Error: selected processor does not support system register name 'mecid_a1_el2'
+.*: Error: selected processor does not support system register name 'vmecid_p_el2'
+.*: Error: selected processor does not support system register name 'vmecid_a_el2'
+.*: Error: selected processor does not support system register name 'mecid_rl_a_el3'
+.*: Error: selected processor does not support system register name 'cipae'
+.*: Error: selected processor does not support system register name 'cigdpae'
diff --git a/gas/testsuite/gas/aarch64/mec-invalid.s b/gas/testsuite/gas/aarch64/mec-invalid.s
index 9f7f1cd..89917ab 100644
--- a/gas/testsuite/gas/aarch64/mec-invalid.s
+++ b/gas/testsuite/gas/aarch64/mec-invalid.s
@@ -1,4 +1,6 @@
// Memory Encryption Contexts, an extension of RME.
+.arch armv9.2-a
+
// Illegal write to MEC system registers.
msr mecidr_el2, x0
diff --git a/gas/testsuite/gas/aarch64/mec.d b/gas/testsuite/gas/aarch64/mec.d
index 118575d..070f831 100644
--- a/gas/testsuite/gas/aarch64/mec.d
+++ b/gas/testsuite/gas/aarch64/mec.d
@@ -1,4 +1,5 @@
#name: MEC System registers
+#as: -march=armv9.2-a
#objdump: -dr
.*: file format .*
@@ -22,3 +23,5 @@ Disassembly of section .text:
[^:]*: d51ca900 msr vmecid_p_el2, x0
[^:]*: d51ca920 msr vmecid_a_el2, x0
[^:]*: d51eaa20 msr mecid_rl_a_el3, x0
+[^:]*: d50c7e00 dc cipae, x0
+[^:]*: d50c7ee0 dc cigdpae, x0
diff --git a/gas/testsuite/gas/aarch64/mec.s b/gas/testsuite/gas/aarch64/mec.s
index d89a274..c5fb380 100644
--- a/gas/testsuite/gas/aarch64/mec.s
+++ b/gas/testsuite/gas/aarch64/mec.s
@@ -18,3 +18,7 @@ msr mecid_a1_el2, x0
msr vmecid_p_el2, x0
msr vmecid_a_el2, x0
msr mecid_rl_a_el3, x0
+
+// MEC data cache operations.
+dc cipae, x0
+dc cigdpae, x0
diff --git a/gas/testsuite/gas/aarch64/mov-wide.d b/gas/testsuite/gas/aarch64/mov-wide.d
new file mode 100644
index 0000000..6627902
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/mov-wide.d
@@ -0,0 +1,46 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 12800000 mov w0, #0xffffffff // #-1
+ *[0-9a-f]+: 1280001f mov wzr, #0xffffffff // #-1
+ *[0-9a-f]+: 129fffe0 movn w0, #0xffff
+ *[0-9a-f]+: 12a00000 movn w0, #0x0, lsl #16
+ *[0-9a-f]+: 92800000 mov x0, #0xffffffffffffffff // #-1
+ *[0-9a-f]+: 9280001f mov xzr, #0xffffffffffffffff // #-1
+ *[0-9a-f]+: 929fffe0 mov x0, #0xffffffffffff0000 // #-65536
+ *[0-9a-f]+: 92e00000 movn x0, #0x0, lsl #48
+ *[0-9a-f]+: 52800000 mov w0, #0x0 // #0
+ *[0-9a-f]+: 5280001f mov wzr, #0x0 // #0
+ *[0-9a-f]+: 529fffe0 mov w0, #0xffff // #65535
+ *[0-9a-f]+: 52a00000 movz w0, #0x0, lsl #16
+ *[0-9a-f]+: d2800000 mov x0, #0x0 // #0
+ *[0-9a-f]+: d280001f mov xzr, #0x0 // #0
+ *[0-9a-f]+: d29fffe0 mov x0, #0xffff // #65535
+ *[0-9a-f]+: d2e00000 movz x0, #0x0, lsl #48
+ *[0-9a-f]+: 72800000 movk w0, #0x0
+ *[0-9a-f]+: 7280001f movk wzr, #0x0
+ *[0-9a-f]+: 729fffe0 movk w0, #0xffff
+ *[0-9a-f]+: 72a00000 movk w0, #0x0, lsl #16
+ *[0-9a-f]+: f2800000 movk x0, #0x0
+ *[0-9a-f]+: f280001f movk xzr, #0x0
+ *[0-9a-f]+: f29fffe0 movk x0, #0xffff
+ *[0-9a-f]+: f2e00000 movk x0, #0x0, lsl #48
+ *[0-9a-f]+: 52800000 mov w0, #0x0 // #0
+ *[0-9a-f]+: 5280001f mov wzr, #0x0 // #0
+ *[0-9a-f]+: 529fffe0 mov w0, #0xffff // #65535
+ *[0-9a-f]+: 52bfffe0 mov w0, #0xffff0000 // #-65536
+ *[0-9a-f]+: 12800000 mov w0, #0xffffffff // #-1
+ *[0-9a-f]+: 12b00000 mov w0, #0x7fffffff // #2147483647
+ *[0-9a-f]+: d2800000 mov x0, #0x0 // #0
+ *[0-9a-f]+: d280001f mov xzr, #0x0 // #0
+ *[0-9a-f]+: d29fffe0 mov x0, #0xffff // #65535
+ *[0-9a-f]+: d2ffffe0 mov x0, #0xffff000000000000 // #-281474976710656
+ *[0-9a-f]+: 92800000 mov x0, #0xffffffffffffffff // #-1
+ *[0-9a-f]+: 929fffe0 mov x0, #0xffffffffffff0000 // #-65536
+ *[0-9a-f]+: 92ffffe0 mov x0, #0xffffffffffff // #281474976710655
diff --git a/gas/testsuite/gas/aarch64/mov-wide.s b/gas/testsuite/gas/aarch64/mov-wide.s
new file mode 100644
index 0000000..058e23e
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/mov-wide.s
@@ -0,0 +1,40 @@
+ movn w0, #0
+ movn wzr, #0, lsl #0
+ movn w0, #65535
+ movn w0, #0, lsl #16
+ movn x0, #0
+ movn xzr, #0, lsl #0
+ movn x0, #65535
+ movn x0, #0, lsl #48
+
+ movz w0, #0
+ movz wzr, #0, lsl #0
+ movz w0, #65535
+ movz w0, #0, lsl #16
+ movz x0, #0
+ movz xzr, #0, lsl #0
+ movz x0, #65535
+ movz x0, #0, lsl #48
+
+ movk w0, #0
+ movk wzr, #0, lsl #0
+ movk w0, #65535
+ movk w0, #0, lsl #16
+ movk x0, #0
+ movk xzr, #0, lsl #0
+ movk x0, #65535
+ movk x0, #0, lsl #48
+
+ mov w0, #0
+ mov wzr, #0
+ mov w0, #65535
+ mov w0, #4294901760
+ mov w0, #-1
+ mov w0, #2147483647
+ mov x0, #0
+ mov xzr, #0
+ mov x0, #65535
+ mov x0, #18446462598732840960
+ mov x0, #-1
+ mov x0, #-65536
+ mov x0, #281474976710655
diff --git a/gas/testsuite/gas/aarch64/occmo-memtag.d b/gas/testsuite/gas/aarch64/occmo-memtag.d
new file mode 100644
index 0000000..0dbbab0
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/occmo-memtag.d
@@ -0,0 +1,13 @@
+#name: FEAT_OCCMO + MEMTAG Test
+#as: -march=armv8-a+occmo+memtag
+#objdump: -dr
+
+.*: file format .*
+
+Disassembly of section .text:
+
+0+ <.*>:
+[^:]*: d50b7be0 dc cgdvaoc, x0
+[^:]*: d50b7bff dc cgdvaoc, xzr
+[^:]*: d50b7fe0 dc cigdvaoc, x0
+[^:]*: d50b7fff dc cigdvaoc, xzr
diff --git a/gas/testsuite/gas/aarch64/occmo-memtag.s b/gas/testsuite/gas/aarch64/occmo-memtag.s
new file mode 100644
index 0000000..2426dfb
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/occmo-memtag.s
@@ -0,0 +1,4 @@
+ dc cgdvaoc, x0
+ dc cgdvaoc, xzr
+ dc cigdvaoc, x0
+ dc cigdvaoc, xzr
diff --git a/gas/testsuite/gas/aarch64/occmo.d b/gas/testsuite/gas/aarch64/occmo.d
new file mode 100644
index 0000000..0ec68e8
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/occmo.d
@@ -0,0 +1,13 @@
+#name: FEAT_OCCMO Test
+#as: -march=armv8-a+occmo
+#objdump: -dr
+
+.*: file format .*
+
+Disassembly of section .text:
+
+0+ <.*>:
+[^:]*: d50b7b00 dc cvaoc, x0
+[^:]*: d50b7b1f dc cvaoc, xzr
+[^:]*: d50b7f00 dc civaoc, x0
+[^:]*: d50b7f1f dc civaoc, xzr
diff --git a/gas/testsuite/gas/aarch64/occmo.s b/gas/testsuite/gas/aarch64/occmo.s
new file mode 100644
index 0000000..750341d
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/occmo.s
@@ -0,0 +1,4 @@
+ dc cvaoc, x0
+ dc cvaoc, xzr
+ dc civaoc, x0
+ dc civaoc, xzr
diff --git a/gas/testsuite/gas/aarch64/original-missing-misc.d b/gas/testsuite/gas/aarch64/original-missing-misc.d
new file mode 100644
index 0000000..7971e64
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/original-missing-misc.d
@@ -0,0 +1,46 @@
+#as: -march=armv8-a
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ *[0-9a-f]+: 5ef1b800 addp d0, v0\.2d
+ *[0-9a-f]+: 5ef1b81f addp d31, v0\.2d
+ *[0-9a-f]+: 5ef1bbe0 addp d0, v31\.2d
+ *[0-9a-f]+: 9b407c00 smulh x0, x0, x0
+ *[0-9a-f]+: 9b407c1f smulh xzr, x0, x0
+ *[0-9a-f]+: 9b407fe0 smulh x0, xzr, x0
+ *[0-9a-f]+: 9b5f7c00 smulh x0, x0, xzr
+ *[0-9a-f]+: 9bc07c00 umulh x0, x0, x0
+ *[0-9a-f]+: 9bc07c1f umulh xzr, x0, x0
+ *[0-9a-f]+: 9bc07fe0 umulh x0, xzr, x0
+ *[0-9a-f]+: 9bdf7c00 umulh x0, x0, xzr
+ *[0-9a-f]+: f8800000 prfum pldl1keep, \[x0\]
+ *[0-9a-f]+: f880001f prfum #0x1f, \[x0\]
+ *[0-9a-f]+: f88003e0 prfum pldl1keep, \[sp\]
+ *[0-9a-f]+: f89ff000 prfum pldl1keep, \[x0, #-1\]
+ *[0-9a-f]+: f8800008 prfum plil1keep, \[x0\]
+ *[0-9a-f]+: f8800010 prfum pstl1keep, \[x0\]
+ *[0-9a-f]+: f8800002 prfum pldl2keep, \[x0\]
+ *[0-9a-f]+: f8800004 prfum pldl3keep, \[x0\]
+ *[0-9a-f]+: f8800001 prfum pldl1strm, \[x0\]
+ *[0-9a-f]+: f8800018 prfum #0x18, \[x0\]
+ *[0-9a-f]+: 52000000 eor w0, w0, #0x1
+ *[0-9a-f]+: 5200001f eor wsp, w0, #0x1
+ *[0-9a-f]+: 520003e0 eor w0, wzr, #0x1
+ *[0-9a-f]+: 521f0000 eor w0, w0, #0x2
+ *[0-9a-f]+: 52000400 eor w0, w0, #0x3
+ *[0-9a-f]+: 52007800 eor w0, w0, #0x7fffffff
+ *[0-9a-f]+: 5200f000 eor w0, w0, #0x55555555
+ *[0-9a-f]+: 5233f000 eor w0, w0, #0xaaaaaaaa
+ *[0-9a-f]+: d2400000 eor x0, x0, #0x1
+ *[0-9a-f]+: d240001f eor sp, x0, #0x1
+ *[0-9a-f]+: d24003e0 eor x0, xzr, #0x1
+ *[0-9a-f]+: d27f0000 eor x0, x0, #0x2
+ *[0-9a-f]+: d2400400 eor x0, x0, #0x3
+ *[0-9a-f]+: d240f800 eor x0, x0, #0x7fffffffffffffff
+ *[0-9a-f]+: d200f000 eor x0, x0, #0x5555555555555555
+ *[0-9a-f]+: d233f000 eor x0, x0, #0xaaaaaaaaaaaaaaaa
diff --git a/gas/testsuite/gas/aarch64/original-missing-misc.s b/gas/testsuite/gas/aarch64/original-missing-misc.s
new file mode 100644
index 0000000..83d5482
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/original-missing-misc.s
@@ -0,0 +1,42 @@
+ addp d0, v0.2d
+ addp d31, v0.2d
+ addp d0, v31.2d
+
+ smulh x0, x0, x0
+ smulh xzr, x0, x0
+ smulh x0, xzr, x0
+ smulh x0, x0, xzr
+
+ umulh x0, x0, x0
+ umulh xzr, x0, x0
+ umulh x0, xzr, x0
+ umulh x0, x0, xzr
+
+ prfum pldl1keep, [x0, #0]
+ prfum #31, [x0, #0]
+ prfum #0, [sp, #0]
+ prfum #0, [x0, #-1]
+ prfum plil1keep, [x0]
+ prfum pstl1keep, [x0]
+ prfum pldl2keep, [x0]
+ prfum pldl3keep, [x0]
+ prfum pldl1strm, [x0]
+// Verify that we don't use the IR symbol in disassembly.
+ prfum #0x18, [x0, #0]
+
+ eor w0, w0, 0x1
+ eor wsp, w0, 0x1
+ eor w0, wzr, 0x1
+ eor w0, w0, 0x2
+ eor w0, w0, 0x3
+ eor w0, w0, 0x7fffffff
+ eor w0, w0, 0x55555555
+ .inst 0x5233f000
+ eor x0, x0, 0x1
+ eor sp, x0, 0x1
+ eor x0, xzr, 0x1
+ eor x0, x0, 0x2
+ eor x0, x0, 0x3
+ eor x0, x0, 0x7fffffffffffffff
+ eor x0, x0, 0x5555555555555555
+ .inst 0xd233f000
diff --git a/gas/testsuite/gas/aarch64/pac_ab_key.d b/gas/testsuite/gas/aarch64/pac_ab_key.d
index 4012d14..04d5fa4 100644
--- a/gas/testsuite/gas/aarch64/pac_ab_key.d
+++ b/gas/testsuite/gas/aarch64/pac_ab_key.d
@@ -7,7 +7,7 @@
.+: file .+
-Contents of the .eh_frame section:
+Contents of the \.eh_frame section:
0+ 0+10 0+ CIE
Version: 1
diff --git a/gas/testsuite/gas/aarch64/pac_compat_cfi_window_save.d b/gas/testsuite/gas/aarch64/pac_compat_cfi_window_save.d
index 8e59086..6ef77ae 100644
--- a/gas/testsuite/gas/aarch64/pac_compat_cfi_window_save.d
+++ b/gas/testsuite/gas/aarch64/pac_compat_cfi_window_save.d
@@ -22,7 +22,7 @@
.+: file .+
-Contents of the .eh_frame section:
+Contents of the \.eh_frame section:
0+ 0+10 0+ CIE
Version: 1
diff --git a/gas/testsuite/gas/aarch64/pac_negate_ra_state.d b/gas/testsuite/gas/aarch64/pac_negate_ra_state.d
index f49cebc..fa29c7f 100644
--- a/gas/testsuite/gas/aarch64/pac_negate_ra_state.d
+++ b/gas/testsuite/gas/aarch64/pac_negate_ra_state.d
@@ -4,7 +4,7 @@
.+: file .+
-Contents of the .eh_frame section:
+Contents of the \.eh_frame section:
0+ 0+10 0+ CIE
Version: 1
diff --git a/gas/testsuite/gas/aarch64/rcpc3-fail.l b/gas/testsuite/gas/aarch64/rcpc3-fail.l
index 96c2f0a..95987fe 100644
--- a/gas/testsuite/gas/aarch64/rcpc3-fail.l
+++ b/gas/testsuite/gas/aarch64/rcpc3-fail.l
@@ -51,27 +51,23 @@
.*: Error: invalid increment amount at operand 2 -- `stlr x0,\[x1,#-4\]!'
.*: Error: invalid increment amount at operand 2 -- `stlr w0,\[x1,#4\]!'
.*: Error: invalid increment amount at operand 2 -- `stlr x0,\[x1,#8\]!'
-.*: Warning: unpredictable load pair transfer with register overlap -- `ldiapp w0,w0,\[x1\]'
-.*: Warning: unpredictable load pair transfer with register overlap -- `ldiapp x0,x0,\[x1\]'
-.*: Warning: unpredictable load pair transfer with register overlap -- `ldiapp w0,w0,\[x1\],#8'
-.*: Warning: unpredictable load pair transfer with register overlap -- `ldiapp x0,x0,\[x1\],#16'
-.*: Warning: unpredictable load pair transfer with register overlap -- `stilp w0,w0,\[x1\]'
-.*: Warning: unpredictable load pair transfer with register overlap -- `stilp x0,x0,\[x1\]'
-.*: Warning: unpredictable load pair transfer with register overlap -- `stilp w0,w0,\[x1,#-8\]!'
-.*: Warning: unpredictable load pair transfer with register overlap -- `stilp x0,x0,\[x1,#-16\]!'
-.*: Warning: unpredictable transfer with writeback \(load\) -- `ldiapp x0,x1,\[x0\],#16'
-.*: Warning: unpredictable transfer with writeback \(load\) -- `ldiapp x0,x1,\[x1\],#16'
-.*: Warning: unpredictable transfer with writeback \(load\) -- `ldiapp w0,w1,\[x0\],#8'
-.*: Warning: unpredictable transfer with writeback \(load\) -- `ldiapp w0,w1,\[x1\],#8'
-.*: Warning: unpredictable transfer with writeback \(load\) -- `ldapr x0,\[x0\],#8'
-.*: Warning: unpredictable transfer with writeback \(load\) -- `ldapr w0,\[x0\],#4'
-.*: Warning: unpredictable transfer with writeback \(load\) -- `ldapr x1,\[x1\],#8'
-.*: Warning: unpredictable transfer with writeback \(load\) -- `ldapr x30,\[x30\],#8'
-.*: Warning: unpredictable transfer with writeback \(store\) -- `stilp x0,x1,\[x1,#-16\]!'
-.*: Warning: unpredictable transfer with writeback \(store\) -- `stilp w0,w1,\[x1,#-8\]!'
-.*: Warning: unpredictable transfer with writeback \(store\) -- `stilp x0,x1,\[x0,#-16\]!'
-.*: Warning: unpredictable transfer with writeback \(store\) -- `stilp w0,w1,\[x0,#-8\]!'
-.*: Warning: unpredictable transfer with writeback \(store\) -- `stlr x0,\[x0,#-8\]!'
-.*: Warning: unpredictable transfer with writeback \(store\) -- `stlr w0,\[x0,#-4\]!'
-.*: Warning: unpredictable transfer with writeback \(store\) -- `stlr x1,\[x1,#-8\]!'
-.*: Warning: unpredictable transfer with writeback \(store\) -- `stlr x30,\[x30,#-8\]!' \ No newline at end of file
+.*: Warning: unpredictable load of register pair -- `ldiapp w0,w0,\[x1\]'
+.*: Warning: unpredictable load of register pair -- `ldiapp x0,x0,\[x1\]'
+.*: Warning: unpredictable load of register pair -- `ldiapp w0,w0,\[x1\],#8'
+.*: Warning: unpredictable load of register pair -- `ldiapp x0,x0,\[x1\],#16'
+.*: Warning: unpredictable transfer with writeback -- `ldiapp x0,x1,\[x0\],#16'
+.*: Warning: unpredictable transfer with writeback -- `ldiapp x0,x1,\[x1\],#16'
+.*: Warning: unpredictable transfer with writeback -- `ldiapp w0,w1,\[x0\],#8'
+.*: Warning: unpredictable transfer with writeback -- `ldiapp w0,w1,\[x1\],#8'
+.*: Warning: unpredictable transfer with writeback -- `ldapr x0,\[x0\],#8'
+.*: Warning: unpredictable transfer with writeback -- `ldapr w0,\[x0\],#4'
+.*: Warning: unpredictable transfer with writeback -- `ldapr x1,\[x1\],#8'
+.*: Warning: unpredictable transfer with writeback -- `ldapr x30,\[x30\],#8'
+.*: Warning: unpredictable transfer with writeback -- `stilp x0,x1,\[x1,#-16\]!'
+.*: Warning: unpredictable transfer with writeback -- `stilp w0,w1,\[x1,#-8\]!'
+.*: Warning: unpredictable transfer with writeback -- `stilp x0,x1,\[x0,#-16\]!'
+.*: Warning: unpredictable transfer with writeback -- `stilp w0,w1,\[x0,#-8\]!'
+.*: Warning: unpredictable transfer with writeback -- `stlr x0,\[x0,#-8\]!'
+.*: Warning: unpredictable transfer with writeback -- `stlr w0,\[x0,#-4\]!'
+.*: Warning: unpredictable transfer with writeback -- `stlr x1,\[x1,#-8\]!'
+.*: Warning: unpredictable transfer with writeback -- `stlr x30,\[x30,#-8\]!'
diff --git a/gas/testsuite/gas/aarch64/rcpc3-fail.s b/gas/testsuite/gas/aarch64/rcpc3-fail.s
index 687bdd7..1dfdd97 100644
--- a/gas/testsuite/gas/aarch64/rcpc3-fail.s
+++ b/gas/testsuite/gas/aarch64/rcpc3-fail.s
@@ -81,11 +81,6 @@
ldiapp w0, w0, [x1], #8
ldiapp x0, x0, [x1], #16
- stilp w0, w0, [x1]
- stilp x0, x0, [x1]
- stilp w0, w0, [x1, #-8]!
- stilp x0, x0, [x1, #-16]!
-
/* Invalid write back overlap (load)*/
ldiapp x0, x1, [x0], #16
ldiapp x0, x1, [x1], #16
diff --git a/gas/testsuite/gas/aarch64/rcpc3.d b/gas/testsuite/gas/aarch64/rcpc3.d
index 575e46e..36c36a3 100644
--- a/gas/testsuite/gas/aarch64/rcpc3.d
+++ b/gas/testsuite/gas/aarch64/rcpc3.d
@@ -28,8 +28,10 @@ Disassembly of section \.text:
[^:]+: 99010860 stilp w0, w1, \[x3, #-8\]!
[^:]+: d9011820 stilp x0, x1, \[x1\]
[^:]+: d9011800 stilp x0, x1, \[x0\]
+[^:]+: d9001800 stilp x0, x0, \[x0\]
[^:]+: 99011820 stilp w0, w1, \[x1\]
[^:]+: 99011800 stilp w0, w1, \[x0\]
+[^:]+: 99001800 stilp w0, w0, \[x0\]
[^:]+: b8bfc020 ldapr w0, \[x1\]
[^:]+: b8bfc020 ldapr w0, \[x1\]
[^:]+: f8bfc020 ldapr x0, \[x1\]
@@ -44,8 +46,10 @@ Disassembly of section \.text:
[^:]+: d9c00be0 ldapr x0, \[sp\], #8
[^:]+: 889ffc20 stlr w0, \[x1\]
[^:]+: 889ffc20 stlr w0, \[x1\]
+[^:]+: 889ffc00 stlr w0, \[x0\]
[^:]+: c89ffc20 stlr x0, \[x1\]
[^:]+: c89ffc20 stlr x0, \[x1\]
+[^:]+: c89ffc00 stlr x0, \[x0\]
[^:]+: 99800841 stlr w1, \[x2, #-4\]!
[^:]+: d9800841 stlr x1, \[x2, #-8\]!
[^:]+: d980081e stlr x30, \[x0, #-8\]!
diff --git a/gas/testsuite/gas/aarch64/rcpc3.s b/gas/testsuite/gas/aarch64/rcpc3.s
index 41026d4..b3e4055 100644
--- a/gas/testsuite/gas/aarch64/rcpc3.s
+++ b/gas/testsuite/gas/aarch64/rcpc3.s
@@ -29,8 +29,10 @@
// for store is fine.
stilp x0, x1, [x1]
stilp x0, x1, [x0]
+ stilp x0, x0, [x0]
stilp w0, w1, [x1]
stilp w0, w1, [x0]
+ stilp w0, w0, [x0]
ldapr w0, [x1]
ldapr w0, [x1, #0]
@@ -47,8 +49,10 @@
stlr w0, [x1]
stlr w0, [x1, #0]
+ stlr w0, [x0]
stlr x0, [x1]
stlr x0, [x1, #0]
+ stlr x0, [x0]
stlr w1, [x2, #-4]!
stlr x1, [x2, #-8]!
stlr x30, [x0, #-8]!
diff --git a/gas/testsuite/gas/aarch64/shifted.d b/gas/testsuite/gas/aarch64/shifted.d
index 288ee21..5f8e511 100644
--- a/gas/testsuite/gas/aarch64/shifted.d
+++ b/gas/testsuite/gas/aarch64/shifted.d
@@ -5,730 +5,834 @@
Disassembly of section \.text:
0+ <.*>:
- 0: aa030041 orr x1, x2, x3
- 4: aa030441 orr x1, x2, x3, lsl #1
- 8: aa030c41 orr x1, x2, x3, lsl #3
- c: aa031c41 orr x1, x2, x3, lsl #7
- 10: aa033c41 orr x1, x2, x3, lsl #15
- 14: aa037c41 orr x1, x2, x3, lsl #31
- 18: aa03fc41 orr x1, x2, x3, lsl #63
- 1c: aa430041 orr x1, x2, x3, lsr #0
- 20: aa430441 orr x1, x2, x3, lsr #1
- 24: aa430c41 orr x1, x2, x3, lsr #3
- 28: aa431c41 orr x1, x2, x3, lsr #7
- 2c: aa433c41 orr x1, x2, x3, lsr #15
- 30: aa437c41 orr x1, x2, x3, lsr #31
- 34: aa43fc41 orr x1, x2, x3, lsr #63
- 38: aa830041 orr x1, x2, x3, asr #0
- 3c: aa830441 orr x1, x2, x3, asr #1
- 40: aa830c41 orr x1, x2, x3, asr #3
- 44: aa831c41 orr x1, x2, x3, asr #7
- 48: aa833c41 orr x1, x2, x3, asr #15
- 4c: aa837c41 orr x1, x2, x3, asr #31
- 50: aa83fc41 orr x1, x2, x3, asr #63
- 54: aac30041 orr x1, x2, x3, ror #0
- 58: aac30441 orr x1, x2, x3, ror #1
- 5c: aac30c41 orr x1, x2, x3, ror #3
- 60: aac31c41 orr x1, x2, x3, ror #7
- 64: aac33c41 orr x1, x2, x3, ror #15
- 68: aac37c41 orr x1, x2, x3, ror #31
- 6c: aac3fc41 orr x1, x2, x3, ror #63
- 70: 2a030041 orr w1, w2, w3
- 74: 2a030441 orr w1, w2, w3, lsl #1
- 78: 2a030c41 orr w1, w2, w3, lsl #3
- 7c: 2a031c41 orr w1, w2, w3, lsl #7
- 80: 2a033c41 orr w1, w2, w3, lsl #15
- 84: 2a037c41 orr w1, w2, w3, lsl #31
- 88: 2a430041 orr w1, w2, w3, lsr #0
- 8c: 2a430441 orr w1, w2, w3, lsr #1
- 90: 2a430c41 orr w1, w2, w3, lsr #3
- 94: 2a431c41 orr w1, w2, w3, lsr #7
- 98: 2a433c41 orr w1, w2, w3, lsr #15
- 9c: 2a437c41 orr w1, w2, w3, lsr #31
- a0: 2a830041 orr w1, w2, w3, asr #0
- a4: 2a830441 orr w1, w2, w3, asr #1
- a8: 2a830c41 orr w1, w2, w3, asr #3
- ac: 2a831c41 orr w1, w2, w3, asr #7
- b0: 2a833c41 orr w1, w2, w3, asr #15
- b4: 2a837c41 orr w1, w2, w3, asr #31
- b8: 2ac30041 orr w1, w2, w3, ror #0
- bc: 2ac30441 orr w1, w2, w3, ror #1
- c0: 2ac30c41 orr w1, w2, w3, ror #3
- c4: 2ac31c41 orr w1, w2, w3, ror #7
- c8: 2ac33c41 orr w1, w2, w3, ror #15
- cc: 2ac37c41 orr w1, w2, w3, ror #31
- d0: 8a030041 and x1, x2, x3
- d4: 8a030441 and x1, x2, x3, lsl #1
- d8: 8a030c41 and x1, x2, x3, lsl #3
- dc: 8a031c41 and x1, x2, x3, lsl #7
- e0: 8a033c41 and x1, x2, x3, lsl #15
- e4: 8a037c41 and x1, x2, x3, lsl #31
- e8: 8a03fc41 and x1, x2, x3, lsl #63
- ec: 8a430041 and x1, x2, x3, lsr #0
- f0: 8a430441 and x1, x2, x3, lsr #1
- f4: 8a430c41 and x1, x2, x3, lsr #3
- f8: 8a431c41 and x1, x2, x3, lsr #7
- fc: 8a433c41 and x1, x2, x3, lsr #15
- 100: 8a437c41 and x1, x2, x3, lsr #31
- 104: 8a43fc41 and x1, x2, x3, lsr #63
- 108: 8a830041 and x1, x2, x3, asr #0
- 10c: 8a830441 and x1, x2, x3, asr #1
- 110: 8a830c41 and x1, x2, x3, asr #3
- 114: 8a831c41 and x1, x2, x3, asr #7
- 118: 8a833c41 and x1, x2, x3, asr #15
- 11c: 8a837c41 and x1, x2, x3, asr #31
- 120: 8a83fc41 and x1, x2, x3, asr #63
- 124: 8ac30041 and x1, x2, x3, ror #0
- 128: 8ac30441 and x1, x2, x3, ror #1
- 12c: 8ac30c41 and x1, x2, x3, ror #3
- 130: 8ac31c41 and x1, x2, x3, ror #7
- 134: 8ac33c41 and x1, x2, x3, ror #15
- 138: 8ac37c41 and x1, x2, x3, ror #31
- 13c: 8ac3fc41 and x1, x2, x3, ror #63
- 140: 0a030041 and w1, w2, w3
- 144: 0a030441 and w1, w2, w3, lsl #1
- 148: 0a030c41 and w1, w2, w3, lsl #3
- 14c: 0a031c41 and w1, w2, w3, lsl #7
- 150: 0a033c41 and w1, w2, w3, lsl #15
- 154: 0a037c41 and w1, w2, w3, lsl #31
- 158: 0a430041 and w1, w2, w3, lsr #0
- 15c: 0a430441 and w1, w2, w3, lsr #1
- 160: 0a430c41 and w1, w2, w3, lsr #3
- 164: 0a431c41 and w1, w2, w3, lsr #7
- 168: 0a433c41 and w1, w2, w3, lsr #15
- 16c: 0a437c41 and w1, w2, w3, lsr #31
- 170: 0a830041 and w1, w2, w3, asr #0
- 174: 0a830441 and w1, w2, w3, asr #1
- 178: 0a830c41 and w1, w2, w3, asr #3
- 17c: 0a831c41 and w1, w2, w3, asr #7
- 180: 0a833c41 and w1, w2, w3, asr #15
- 184: 0a837c41 and w1, w2, w3, asr #31
- 188: 0ac30041 and w1, w2, w3, ror #0
- 18c: 0ac30441 and w1, w2, w3, ror #1
- 190: 0ac30c41 and w1, w2, w3, ror #3
- 194: 0ac31c41 and w1, w2, w3, ror #7
- 198: 0ac33c41 and w1, w2, w3, ror #15
- 19c: 0ac37c41 and w1, w2, w3, ror #31
- 1a0: ca030041 eor x1, x2, x3
- 1a4: ca030441 eor x1, x2, x3, lsl #1
- 1a8: ca030c41 eor x1, x2, x3, lsl #3
- 1ac: ca031c41 eor x1, x2, x3, lsl #7
- 1b0: ca033c41 eor x1, x2, x3, lsl #15
- 1b4: ca037c41 eor x1, x2, x3, lsl #31
- 1b8: ca03fc41 eor x1, x2, x3, lsl #63
- 1bc: ca430041 eor x1, x2, x3, lsr #0
- 1c0: ca430441 eor x1, x2, x3, lsr #1
- 1c4: ca430c41 eor x1, x2, x3, lsr #3
- 1c8: ca431c41 eor x1, x2, x3, lsr #7
- 1cc: ca433c41 eor x1, x2, x3, lsr #15
- 1d0: ca437c41 eor x1, x2, x3, lsr #31
- 1d4: ca43fc41 eor x1, x2, x3, lsr #63
- 1d8: ca830041 eor x1, x2, x3, asr #0
- 1dc: ca830441 eor x1, x2, x3, asr #1
- 1e0: ca830c41 eor x1, x2, x3, asr #3
- 1e4: ca831c41 eor x1, x2, x3, asr #7
- 1e8: ca833c41 eor x1, x2, x3, asr #15
- 1ec: ca837c41 eor x1, x2, x3, asr #31
- 1f0: ca83fc41 eor x1, x2, x3, asr #63
- 1f4: cac30041 eor x1, x2, x3, ror #0
- 1f8: cac30441 eor x1, x2, x3, ror #1
- 1fc: cac30c41 eor x1, x2, x3, ror #3
- 200: cac31c41 eor x1, x2, x3, ror #7
- 204: cac33c41 eor x1, x2, x3, ror #15
- 208: cac37c41 eor x1, x2, x3, ror #31
- 20c: cac3fc41 eor x1, x2, x3, ror #63
- 210: 4a030041 eor w1, w2, w3
- 214: 4a030441 eor w1, w2, w3, lsl #1
- 218: 4a030c41 eor w1, w2, w3, lsl #3
- 21c: 4a031c41 eor w1, w2, w3, lsl #7
- 220: 4a033c41 eor w1, w2, w3, lsl #15
- 224: 4a037c41 eor w1, w2, w3, lsl #31
- 228: 4a430041 eor w1, w2, w3, lsr #0
- 22c: 4a430441 eor w1, w2, w3, lsr #1
- 230: 4a430c41 eor w1, w2, w3, lsr #3
- 234: 4a431c41 eor w1, w2, w3, lsr #7
- 238: 4a433c41 eor w1, w2, w3, lsr #15
- 23c: 4a437c41 eor w1, w2, w3, lsr #31
- 240: 4a830041 eor w1, w2, w3, asr #0
- 244: 4a830441 eor w1, w2, w3, asr #1
- 248: 4a830c41 eor w1, w2, w3, asr #3
- 24c: 4a831c41 eor w1, w2, w3, asr #7
- 250: 4a833c41 eor w1, w2, w3, asr #15
- 254: 4a837c41 eor w1, w2, w3, asr #31
- 258: 4ac30041 eor w1, w2, w3, ror #0
- 25c: 4ac30441 eor w1, w2, w3, ror #1
- 260: 4ac30c41 eor w1, w2, w3, ror #3
- 264: 4ac31c41 eor w1, w2, w3, ror #7
- 268: 4ac33c41 eor w1, w2, w3, ror #15
- 26c: 4ac37c41 eor w1, w2, w3, ror #31
- 270: 8a230041 bic x1, x2, x3
- 274: 8a230441 bic x1, x2, x3, lsl #1
- 278: 8a230c41 bic x1, x2, x3, lsl #3
- 27c: 8a231c41 bic x1, x2, x3, lsl #7
- 280: 8a233c41 bic x1, x2, x3, lsl #15
- 284: 8a237c41 bic x1, x2, x3, lsl #31
- 288: 8a23fc41 bic x1, x2, x3, lsl #63
- 28c: 8a630041 bic x1, x2, x3, lsr #0
- 290: 8a630441 bic x1, x2, x3, lsr #1
- 294: 8a630c41 bic x1, x2, x3, lsr #3
- 298: 8a631c41 bic x1, x2, x3, lsr #7
- 29c: 8a633c41 bic x1, x2, x3, lsr #15
- 2a0: 8a637c41 bic x1, x2, x3, lsr #31
- 2a4: 8a63fc41 bic x1, x2, x3, lsr #63
- 2a8: 8aa30041 bic x1, x2, x3, asr #0
- 2ac: 8aa30441 bic x1, x2, x3, asr #1
- 2b0: 8aa30c41 bic x1, x2, x3, asr #3
- 2b4: 8aa31c41 bic x1, x2, x3, asr #7
- 2b8: 8aa33c41 bic x1, x2, x3, asr #15
- 2bc: 8aa37c41 bic x1, x2, x3, asr #31
- 2c0: 8aa3fc41 bic x1, x2, x3, asr #63
- 2c4: 8ae30041 bic x1, x2, x3, ror #0
- 2c8: 8ae30441 bic x1, x2, x3, ror #1
- 2cc: 8ae30c41 bic x1, x2, x3, ror #3
- 2d0: 8ae31c41 bic x1, x2, x3, ror #7
- 2d4: 8ae33c41 bic x1, x2, x3, ror #15
- 2d8: 8ae37c41 bic x1, x2, x3, ror #31
- 2dc: 8ae3fc41 bic x1, x2, x3, ror #63
- 2e0: 0a230041 bic w1, w2, w3
- 2e4: 0a230441 bic w1, w2, w3, lsl #1
- 2e8: 0a230c41 bic w1, w2, w3, lsl #3
- 2ec: 0a231c41 bic w1, w2, w3, lsl #7
- 2f0: 0a233c41 bic w1, w2, w3, lsl #15
- 2f4: 0a237c41 bic w1, w2, w3, lsl #31
- 2f8: 0a630041 bic w1, w2, w3, lsr #0
- 2fc: 0a630441 bic w1, w2, w3, lsr #1
- 300: 0a630c41 bic w1, w2, w3, lsr #3
- 304: 0a631c41 bic w1, w2, w3, lsr #7
- 308: 0a633c41 bic w1, w2, w3, lsr #15
- 30c: 0a637c41 bic w1, w2, w3, lsr #31
- 310: 0aa30041 bic w1, w2, w3, asr #0
- 314: 0aa30441 bic w1, w2, w3, asr #1
- 318: 0aa30c41 bic w1, w2, w3, asr #3
- 31c: 0aa31c41 bic w1, w2, w3, asr #7
- 320: 0aa33c41 bic w1, w2, w3, asr #15
- 324: 0aa37c41 bic w1, w2, w3, asr #31
- 328: 0ae30041 bic w1, w2, w3, ror #0
- 32c: 0ae30441 bic w1, w2, w3, ror #1
- 330: 0ae30c41 bic w1, w2, w3, ror #3
- 334: 0ae31c41 bic w1, w2, w3, ror #7
- 338: 0ae33c41 bic w1, w2, w3, ror #15
- 33c: 0ae37c41 bic w1, w2, w3, ror #31
- 340: aa230041 orn x1, x2, x3
- 344: aa230441 orn x1, x2, x3, lsl #1
- 348: aa230c41 orn x1, x2, x3, lsl #3
- 34c: aa231c41 orn x1, x2, x3, lsl #7
- 350: aa233c41 orn x1, x2, x3, lsl #15
- 354: aa237c41 orn x1, x2, x3, lsl #31
- 358: aa23fc41 orn x1, x2, x3, lsl #63
- 35c: aa630041 orn x1, x2, x3, lsr #0
- 360: aa630441 orn x1, x2, x3, lsr #1
- 364: aa630c41 orn x1, x2, x3, lsr #3
- 368: aa631c41 orn x1, x2, x3, lsr #7
- 36c: aa633c41 orn x1, x2, x3, lsr #15
- 370: aa637c41 orn x1, x2, x3, lsr #31
- 374: aa63fc41 orn x1, x2, x3, lsr #63
- 378: aaa30041 orn x1, x2, x3, asr #0
- 37c: aaa30441 orn x1, x2, x3, asr #1
- 380: aaa30c41 orn x1, x2, x3, asr #3
- 384: aaa31c41 orn x1, x2, x3, asr #7
- 388: aaa33c41 orn x1, x2, x3, asr #15
- 38c: aaa37c41 orn x1, x2, x3, asr #31
- 390: aaa3fc41 orn x1, x2, x3, asr #63
- 394: aae30041 orn x1, x2, x3, ror #0
- 398: aae30441 orn x1, x2, x3, ror #1
- 39c: aae30c41 orn x1, x2, x3, ror #3
- 3a0: aae31c41 orn x1, x2, x3, ror #7
- 3a4: aae33c41 orn x1, x2, x3, ror #15
- 3a8: aae37c41 orn x1, x2, x3, ror #31
- 3ac: aae3fc41 orn x1, x2, x3, ror #63
- 3b0: 2a230041 orn w1, w2, w3
- 3b4: 2a230441 orn w1, w2, w3, lsl #1
- 3b8: 2a230c41 orn w1, w2, w3, lsl #3
- 3bc: 2a231c41 orn w1, w2, w3, lsl #7
- 3c0: 2a233c41 orn w1, w2, w3, lsl #15
- 3c4: 2a237c41 orn w1, w2, w3, lsl #31
- 3c8: 2a630041 orn w1, w2, w3, lsr #0
- 3cc: 2a630441 orn w1, w2, w3, lsr #1
- 3d0: 2a630c41 orn w1, w2, w3, lsr #3
- 3d4: 2a631c41 orn w1, w2, w3, lsr #7
- 3d8: 2a633c41 orn w1, w2, w3, lsr #15
- 3dc: 2a637c41 orn w1, w2, w3, lsr #31
- 3e0: 2aa30041 orn w1, w2, w3, asr #0
- 3e4: 2aa30441 orn w1, w2, w3, asr #1
- 3e8: 2aa30c41 orn w1, w2, w3, asr #3
- 3ec: 2aa31c41 orn w1, w2, w3, asr #7
- 3f0: 2aa33c41 orn w1, w2, w3, asr #15
- 3f4: 2aa37c41 orn w1, w2, w3, asr #31
- 3f8: 2ae30041 orn w1, w2, w3, ror #0
- 3fc: 2ae30441 orn w1, w2, w3, ror #1
- 400: 2ae30c41 orn w1, w2, w3, ror #3
- 404: 2ae31c41 orn w1, w2, w3, ror #7
- 408: 2ae33c41 orn w1, w2, w3, ror #15
- 40c: 2ae37c41 orn w1, w2, w3, ror #31
- 410: ca230041 eon x1, x2, x3
- 414: ca230441 eon x1, x2, x3, lsl #1
- 418: ca230c41 eon x1, x2, x3, lsl #3
- 41c: ca231c41 eon x1, x2, x3, lsl #7
- 420: ca233c41 eon x1, x2, x3, lsl #15
- 424: ca237c41 eon x1, x2, x3, lsl #31
- 428: ca23fc41 eon x1, x2, x3, lsl #63
- 42c: ca630041 eon x1, x2, x3, lsr #0
- 430: ca630441 eon x1, x2, x3, lsr #1
- 434: ca630c41 eon x1, x2, x3, lsr #3
- 438: ca631c41 eon x1, x2, x3, lsr #7
- 43c: ca633c41 eon x1, x2, x3, lsr #15
- 440: ca637c41 eon x1, x2, x3, lsr #31
- 444: ca63fc41 eon x1, x2, x3, lsr #63
- 448: caa30041 eon x1, x2, x3, asr #0
- 44c: caa30441 eon x1, x2, x3, asr #1
- 450: caa30c41 eon x1, x2, x3, asr #3
- 454: caa31c41 eon x1, x2, x3, asr #7
- 458: caa33c41 eon x1, x2, x3, asr #15
- 45c: caa37c41 eon x1, x2, x3, asr #31
- 460: caa3fc41 eon x1, x2, x3, asr #63
- 464: cae30041 eon x1, x2, x3, ror #0
- 468: cae30441 eon x1, x2, x3, ror #1
- 46c: cae30c41 eon x1, x2, x3, ror #3
- 470: cae31c41 eon x1, x2, x3, ror #7
- 474: cae33c41 eon x1, x2, x3, ror #15
- 478: cae37c41 eon x1, x2, x3, ror #31
- 47c: cae3fc41 eon x1, x2, x3, ror #63
- 480: 4a230041 eon w1, w2, w3
- 484: 4a230441 eon w1, w2, w3, lsl #1
- 488: 4a230c41 eon w1, w2, w3, lsl #3
- 48c: 4a231c41 eon w1, w2, w3, lsl #7
- 490: 4a233c41 eon w1, w2, w3, lsl #15
- 494: 4a237c41 eon w1, w2, w3, lsl #31
- 498: 4a630041 eon w1, w2, w3, lsr #0
- 49c: 4a630441 eon w1, w2, w3, lsr #1
- 4a0: 4a630c41 eon w1, w2, w3, lsr #3
- 4a4: 4a631c41 eon w1, w2, w3, lsr #7
- 4a8: 4a633c41 eon w1, w2, w3, lsr #15
- 4ac: 4a637c41 eon w1, w2, w3, lsr #31
- 4b0: 4aa30041 eon w1, w2, w3, asr #0
- 4b4: 4aa30441 eon w1, w2, w3, asr #1
- 4b8: 4aa30c41 eon w1, w2, w3, asr #3
- 4bc: 4aa31c41 eon w1, w2, w3, asr #7
- 4c0: 4aa33c41 eon w1, w2, w3, asr #15
- 4c4: 4aa37c41 eon w1, w2, w3, asr #31
- 4c8: 4ae30041 eon w1, w2, w3, ror #0
- 4cc: 4ae30441 eon w1, w2, w3, ror #1
- 4d0: 4ae30c41 eon w1, w2, w3, ror #3
- 4d4: 4ae31c41 eon w1, w2, w3, ror #7
- 4d8: 4ae33c41 eon w1, w2, w3, ror #15
- 4dc: 4ae37c41 eon w1, w2, w3, ror #31
- 4e0: 8b030041 add x1, x2, x3
- 4e4: 8b030441 add x1, x2, x3, lsl #1
- 4e8: 8b030c41 add x1, x2, x3, lsl #3
- 4ec: 8b031c41 add x1, x2, x3, lsl #7
- 4f0: 8b033c41 add x1, x2, x3, lsl #15
- 4f4: 8b037c41 add x1, x2, x3, lsl #31
- 4f8: 8b03fc41 add x1, x2, x3, lsl #63
- 4fc: 8b430041 add x1, x2, x3, lsr #0
- 500: 8b430441 add x1, x2, x3, lsr #1
- 504: 8b430c41 add x1, x2, x3, lsr #3
- 508: 8b431c41 add x1, x2, x3, lsr #7
- 50c: 8b433c41 add x1, x2, x3, lsr #15
- 510: 8b437c41 add x1, x2, x3, lsr #31
- 514: 8b43fc41 add x1, x2, x3, lsr #63
- 518: 8b830041 add x1, x2, x3, asr #0
- 51c: 8b830441 add x1, x2, x3, asr #1
- 520: 8b830c41 add x1, x2, x3, asr #3
- 524: 8b831c41 add x1, x2, x3, asr #7
- 528: 8b833c41 add x1, x2, x3, asr #15
- 52c: 8b837c41 add x1, x2, x3, asr #31
- 530: 8b83fc41 add x1, x2, x3, asr #63
- 534: 8b230041 add x1, x2, w3, uxtb
- 538: 8b230441 add x1, x2, w3, uxtb #1
- 53c: 8b230841 add x1, x2, w3, uxtb #2
- 540: 8b230c41 add x1, x2, w3, uxtb #3
- 544: 8b231041 add x1, x2, w3, uxtb #4
- 548: 8b232041 add x1, x2, w3, uxth
- 54c: 8b232441 add x1, x2, w3, uxth #1
- 550: 8b232841 add x1, x2, w3, uxth #2
- 554: 8b232c41 add x1, x2, w3, uxth #3
- 558: 8b233041 add x1, x2, w3, uxth #4
- 55c: 8b234041 add x1, x2, w3, uxtw
- 560: 8b234441 add x1, x2, w3, uxtw #1
- 564: 8b234841 add x1, x2, w3, uxtw #2
- 568: 8b234c41 add x1, x2, w3, uxtw #3
- 56c: 8b235041 add x1, x2, w3, uxtw #4
- 570: 8b236041 add x1, x2, x3, uxtx
- 574: 8b236441 add x1, x2, x3, uxtx #1
- 578: 8b236841 add x1, x2, x3, uxtx #2
- 57c: 8b236c41 add x1, x2, x3, uxtx #3
- 580: 8b237041 add x1, x2, x3, uxtx #4
- 584: 8b238041 add x1, x2, w3, sxtb
- 588: 8b238441 add x1, x2, w3, sxtb #1
- 58c: 8b238841 add x1, x2, w3, sxtb #2
- 590: 8b238c41 add x1, x2, w3, sxtb #3
- 594: 8b239041 add x1, x2, w3, sxtb #4
- 598: 8b23a041 add x1, x2, w3, sxth
- 59c: 8b23a441 add x1, x2, w3, sxth #1
- 5a0: 8b23a841 add x1, x2, w3, sxth #2
- 5a4: 8b23ac41 add x1, x2, w3, sxth #3
- 5a8: 8b23b041 add x1, x2, w3, sxth #4
- 5ac: 8b23c041 add x1, x2, w3, sxtw
- 5b0: 8b23c441 add x1, x2, w3, sxtw #1
- 5b4: 8b23c841 add x1, x2, w3, sxtw #2
- 5b8: 8b23cc41 add x1, x2, w3, sxtw #3
- 5bc: 8b23d041 add x1, x2, w3, sxtw #4
- 5c0: 8b23e041 add x1, x2, x3, sxtx
- 5c4: 8b23e441 add x1, x2, x3, sxtx #1
- 5c8: 8b23e841 add x1, x2, x3, sxtx #2
- 5cc: 8b23ec41 add x1, x2, x3, sxtx #3
- 5d0: 8b23f041 add x1, x2, x3, sxtx #4
- 5d4: 0b030041 add w1, w2, w3
- 5d8: 0b030441 add w1, w2, w3, lsl #1
- 5dc: 0b030c41 add w1, w2, w3, lsl #3
- 5e0: 0b031c41 add w1, w2, w3, lsl #7
- 5e4: 0b033c41 add w1, w2, w3, lsl #15
- 5e8: 0b037c41 add w1, w2, w3, lsl #31
- 5ec: 0b430041 add w1, w2, w3, lsr #0
- 5f0: 0b430441 add w1, w2, w3, lsr #1
- 5f4: 0b430c41 add w1, w2, w3, lsr #3
- 5f8: 0b431c41 add w1, w2, w3, lsr #7
- 5fc: 0b433c41 add w1, w2, w3, lsr #15
- 600: 0b437c41 add w1, w2, w3, lsr #31
- 604: 0b830041 add w1, w2, w3, asr #0
- 608: 0b830441 add w1, w2, w3, asr #1
- 60c: 0b830c41 add w1, w2, w3, asr #3
- 610: 0b831c41 add w1, w2, w3, asr #7
- 614: 0b833c41 add w1, w2, w3, asr #15
- 618: 0b837c41 add w1, w2, w3, asr #31
- 61c: 0b230041 add w1, w2, w3, uxtb
- 620: 0b230441 add w1, w2, w3, uxtb #1
- 624: 0b230841 add w1, w2, w3, uxtb #2
- 628: 0b230c41 add w1, w2, w3, uxtb #3
- 62c: 0b231041 add w1, w2, w3, uxtb #4
- 630: 0b232041 add w1, w2, w3, uxth
- 634: 0b232441 add w1, w2, w3, uxth #1
- 638: 0b232841 add w1, w2, w3, uxth #2
- 63c: 0b232c41 add w1, w2, w3, uxth #3
- 640: 0b233041 add w1, w2, w3, uxth #4
- 644: 0b238041 add w1, w2, w3, sxtb
- 648: 0b238441 add w1, w2, w3, sxtb #1
- 64c: 0b238841 add w1, w2, w3, sxtb #2
- 650: 0b238c41 add w1, w2, w3, sxtb #3
- 654: 0b239041 add w1, w2, w3, sxtb #4
- 658: 0b23a041 add w1, w2, w3, sxth
- 65c: 0b23a441 add w1, w2, w3, sxth #1
- 660: 0b23a841 add w1, w2, w3, sxth #2
- 664: 0b23ac41 add w1, w2, w3, sxth #3
- 668: 0b23b041 add w1, w2, w3, sxth #4
- 66c: cb030041 sub x1, x2, x3
- 670: cb030441 sub x1, x2, x3, lsl #1
- 674: cb030c41 sub x1, x2, x3, lsl #3
- 678: cb031c41 sub x1, x2, x3, lsl #7
- 67c: cb033c41 sub x1, x2, x3, lsl #15
- 680: cb037c41 sub x1, x2, x3, lsl #31
- 684: cb03fc41 sub x1, x2, x3, lsl #63
- 688: cb430041 sub x1, x2, x3, lsr #0
- 68c: cb430441 sub x1, x2, x3, lsr #1
- 690: cb430c41 sub x1, x2, x3, lsr #3
- 694: cb431c41 sub x1, x2, x3, lsr #7
- 698: cb433c41 sub x1, x2, x3, lsr #15
- 69c: cb437c41 sub x1, x2, x3, lsr #31
- 6a0: cb43fc41 sub x1, x2, x3, lsr #63
- 6a4: cb830041 sub x1, x2, x3, asr #0
- 6a8: cb830441 sub x1, x2, x3, asr #1
- 6ac: cb830c41 sub x1, x2, x3, asr #3
- 6b0: cb831c41 sub x1, x2, x3, asr #7
- 6b4: cb833c41 sub x1, x2, x3, asr #15
- 6b8: cb837c41 sub x1, x2, x3, asr #31
- 6bc: cb83fc41 sub x1, x2, x3, asr #63
- 6c0: cb230041 sub x1, x2, w3, uxtb
- 6c4: cb230441 sub x1, x2, w3, uxtb #1
- 6c8: cb230841 sub x1, x2, w3, uxtb #2
- 6cc: cb230c41 sub x1, x2, w3, uxtb #3
- 6d0: cb231041 sub x1, x2, w3, uxtb #4
- 6d4: cb232041 sub x1, x2, w3, uxth
- 6d8: cb232441 sub x1, x2, w3, uxth #1
- 6dc: cb232841 sub x1, x2, w3, uxth #2
- 6e0: cb232c41 sub x1, x2, w3, uxth #3
- 6e4: cb233041 sub x1, x2, w3, uxth #4
- 6e8: cb234041 sub x1, x2, w3, uxtw
- 6ec: cb234441 sub x1, x2, w3, uxtw #1
- 6f0: cb234841 sub x1, x2, w3, uxtw #2
- 6f4: cb234c41 sub x1, x2, w3, uxtw #3
- 6f8: cb235041 sub x1, x2, w3, uxtw #4
- 6fc: cb236041 sub x1, x2, x3, uxtx
- 700: cb236441 sub x1, x2, x3, uxtx #1
- 704: cb236841 sub x1, x2, x3, uxtx #2
- 708: cb236c41 sub x1, x2, x3, uxtx #3
- 70c: cb237041 sub x1, x2, x3, uxtx #4
- 710: cb238041 sub x1, x2, w3, sxtb
- 714: cb238441 sub x1, x2, w3, sxtb #1
- 718: cb238841 sub x1, x2, w3, sxtb #2
- 71c: cb238c41 sub x1, x2, w3, sxtb #3
- 720: cb239041 sub x1, x2, w3, sxtb #4
- 724: cb23a041 sub x1, x2, w3, sxth
- 728: cb23a441 sub x1, x2, w3, sxth #1
- 72c: cb23a841 sub x1, x2, w3, sxth #2
- 730: cb23ac41 sub x1, x2, w3, sxth #3
- 734: cb23b041 sub x1, x2, w3, sxth #4
- 738: cb23c041 sub x1, x2, w3, sxtw
- 73c: cb23c441 sub x1, x2, w3, sxtw #1
- 740: cb23c841 sub x1, x2, w3, sxtw #2
- 744: cb23cc41 sub x1, x2, w3, sxtw #3
- 748: cb23d041 sub x1, x2, w3, sxtw #4
- 74c: cb23e041 sub x1, x2, x3, sxtx
- 750: cb23e441 sub x1, x2, x3, sxtx #1
- 754: cb23e841 sub x1, x2, x3, sxtx #2
- 758: cb23ec41 sub x1, x2, x3, sxtx #3
- 75c: cb23f041 sub x1, x2, x3, sxtx #4
- 760: 4b030041 sub w1, w2, w3
- 764: 4b030441 sub w1, w2, w3, lsl #1
- 768: 4b030c41 sub w1, w2, w3, lsl #3
- 76c: 4b031c41 sub w1, w2, w3, lsl #7
- 770: 4b033c41 sub w1, w2, w3, lsl #15
- 774: 4b037c41 sub w1, w2, w3, lsl #31
- 778: 4b430041 sub w1, w2, w3, lsr #0
- 77c: 4b430441 sub w1, w2, w3, lsr #1
- 780: 4b430c41 sub w1, w2, w3, lsr #3
- 784: 4b431c41 sub w1, w2, w3, lsr #7
- 788: 4b433c41 sub w1, w2, w3, lsr #15
- 78c: 4b437c41 sub w1, w2, w3, lsr #31
- 790: 4b830041 sub w1, w2, w3, asr #0
- 794: 4b830441 sub w1, w2, w3, asr #1
- 798: 4b830c41 sub w1, w2, w3, asr #3
- 79c: 4b831c41 sub w1, w2, w3, asr #7
- 7a0: 4b833c41 sub w1, w2, w3, asr #15
- 7a4: 4b837c41 sub w1, w2, w3, asr #31
- 7a8: 4b230041 sub w1, w2, w3, uxtb
- 7ac: 4b230441 sub w1, w2, w3, uxtb #1
- 7b0: 4b230841 sub w1, w2, w3, uxtb #2
- 7b4: 4b230c41 sub w1, w2, w3, uxtb #3
- 7b8: 4b231041 sub w1, w2, w3, uxtb #4
- 7bc: 4b232041 sub w1, w2, w3, uxth
- 7c0: 4b232441 sub w1, w2, w3, uxth #1
- 7c4: 4b232841 sub w1, w2, w3, uxth #2
- 7c8: 4b232c41 sub w1, w2, w3, uxth #3
- 7cc: 4b233041 sub w1, w2, w3, uxth #4
- 7d0: 4b238041 sub w1, w2, w3, sxtb
- 7d4: 4b238441 sub w1, w2, w3, sxtb #1
- 7d8: 4b238841 sub w1, w2, w3, sxtb #2
- 7dc: 4b238c41 sub w1, w2, w3, sxtb #3
- 7e0: 4b239041 sub w1, w2, w3, sxtb #4
- 7e4: 4b23a041 sub w1, w2, w3, sxth
- 7e8: 4b23a441 sub w1, w2, w3, sxth #1
- 7ec: 4b23a841 sub w1, w2, w3, sxth #2
- 7f0: 4b23ac41 sub w1, w2, w3, sxth #3
- 7f4: 4b23b041 sub w1, w2, w3, sxth #4
- 7f8: cb0303e2 neg x2, x3
- 7fc: cb0307e2 neg x2, x3, lsl #1
- 800: cb030fe2 neg x2, x3, lsl #3
- 804: cb031fe2 neg x2, x3, lsl #7
- 808: cb033fe2 neg x2, x3, lsl #15
- 80c: cb037fe2 neg x2, x3, lsl #31
- 810: cb03ffe2 neg x2, x3, lsl #63
- 814: cb4303e2 neg x2, x3, lsr #0
- 818: cb4307e2 neg x2, x3, lsr #1
- 81c: cb430fe2 neg x2, x3, lsr #3
- 820: cb431fe2 neg x2, x3, lsr #7
- 824: cb433fe2 neg x2, x3, lsr #15
- 828: cb437fe2 neg x2, x3, lsr #31
- 82c: cb43ffe2 neg x2, x3, lsr #63
- 830: cb8303e2 neg x2, x3, asr #0
- 834: cb8307e2 neg x2, x3, asr #1
- 838: cb830fe2 neg x2, x3, asr #3
- 83c: cb831fe2 neg x2, x3, asr #7
- 840: cb833fe2 neg x2, x3, asr #15
- 844: cb837fe2 neg x2, x3, asr #31
- 848: cb83ffe2 neg x2, x3, asr #63
- 84c: 4b0303e2 neg w2, w3
- 850: 4b0307e2 neg w2, w3, lsl #1
- 854: 4b030fe2 neg w2, w3, lsl #3
- 858: 4b031fe2 neg w2, w3, lsl #7
- 85c: 4b033fe2 neg w2, w3, lsl #15
- 860: 4b037fe2 neg w2, w3, lsl #31
- 864: 4b4303e2 neg w2, w3, lsr #0
- 868: 4b4307e2 neg w2, w3, lsr #1
- 86c: 4b430fe2 neg w2, w3, lsr #3
- 870: 4b431fe2 neg w2, w3, lsr #7
- 874: 4b433fe2 neg w2, w3, lsr #15
- 878: 4b437fe2 neg w2, w3, lsr #31
- 87c: 4b8303e2 neg w2, w3, asr #0
- 880: 4b8307e2 neg w2, w3, asr #1
- 884: 4b830fe2 neg w2, w3, asr #3
- 888: 4b831fe2 neg w2, w3, asr #7
- 88c: 4b833fe2 neg w2, w3, asr #15
- 890: 4b837fe2 neg w2, w3, asr #31
- 894: eb03005f cmp x2, x3
- 898: eb03045f cmp x2, x3, lsl #1
- 89c: eb030c5f cmp x2, x3, lsl #3
- 8a0: eb031c5f cmp x2, x3, lsl #7
- 8a4: eb033c5f cmp x2, x3, lsl #15
- 8a8: eb037c5f cmp x2, x3, lsl #31
- 8ac: eb03fc5f cmp x2, x3, lsl #63
- 8b0: eb43005f cmp x2, x3, lsr #0
- 8b4: eb43045f cmp x2, x3, lsr #1
- 8b8: eb430c5f cmp x2, x3, lsr #3
- 8bc: eb431c5f cmp x2, x3, lsr #7
- 8c0: eb433c5f cmp x2, x3, lsr #15
- 8c4: eb437c5f cmp x2, x3, lsr #31
- 8c8: eb43fc5f cmp x2, x3, lsr #63
- 8cc: eb83005f cmp x2, x3, asr #0
- 8d0: eb83045f cmp x2, x3, asr #1
- 8d4: eb830c5f cmp x2, x3, asr #3
- 8d8: eb831c5f cmp x2, x3, asr #7
- 8dc: eb833c5f cmp x2, x3, asr #15
- 8e0: eb837c5f cmp x2, x3, asr #31
- 8e4: eb83fc5f cmp x2, x3, asr #63
- 8e8: eb23005f cmp x2, w3, uxtb
- 8ec: eb23045f cmp x2, w3, uxtb #1
- 8f0: eb23085f cmp x2, w3, uxtb #2
- 8f4: eb230c5f cmp x2, w3, uxtb #3
- 8f8: eb23105f cmp x2, w3, uxtb #4
- 8fc: eb23205f cmp x2, w3, uxth
- 900: eb23245f cmp x2, w3, uxth #1
- 904: eb23285f cmp x2, w3, uxth #2
- 908: eb232c5f cmp x2, w3, uxth #3
- 90c: eb23305f cmp x2, w3, uxth #4
- 910: eb23405f cmp x2, w3, uxtw
- 914: eb23445f cmp x2, w3, uxtw #1
- 918: eb23485f cmp x2, w3, uxtw #2
- 91c: eb234c5f cmp x2, w3, uxtw #3
- 920: eb23505f cmp x2, w3, uxtw #4
- 924: eb23805f cmp x2, w3, sxtb
- 928: eb23845f cmp x2, w3, sxtb #1
- 92c: eb23885f cmp x2, w3, sxtb #2
- 930: eb238c5f cmp x2, w3, sxtb #3
- 934: eb23905f cmp x2, w3, sxtb #4
- 938: eb23a05f cmp x2, w3, sxth
- 93c: eb23a45f cmp x2, w3, sxth #1
- 940: eb23a85f cmp x2, w3, sxth #2
- 944: eb23ac5f cmp x2, w3, sxth #3
- 948: eb23b05f cmp x2, w3, sxth #4
- 94c: eb23c05f cmp x2, w3, sxtw
- 950: eb23c45f cmp x2, w3, sxtw #1
- 954: eb23c85f cmp x2, w3, sxtw #2
- 958: eb23cc5f cmp x2, w3, sxtw #3
- 95c: eb23d05f cmp x2, w3, sxtw #4
- 960: 6b03005f cmp w2, w3
- 964: 6b03045f cmp w2, w3, lsl #1
- 968: 6b030c5f cmp w2, w3, lsl #3
- 96c: 6b031c5f cmp w2, w3, lsl #7
- 970: 6b033c5f cmp w2, w3, lsl #15
- 974: 6b037c5f cmp w2, w3, lsl #31
- 978: 6b43005f cmp w2, w3, lsr #0
- 97c: 6b43045f cmp w2, w3, lsr #1
- 980: 6b430c5f cmp w2, w3, lsr #3
- 984: 6b431c5f cmp w2, w3, lsr #7
- 988: 6b433c5f cmp w2, w3, lsr #15
- 98c: 6b437c5f cmp w2, w3, lsr #31
- 990: 6b83005f cmp w2, w3, asr #0
- 994: 6b83045f cmp w2, w3, asr #1
- 998: 6b830c5f cmp w2, w3, asr #3
- 99c: 6b831c5f cmp w2, w3, asr #7
- 9a0: 6b833c5f cmp w2, w3, asr #15
- 9a4: 6b837c5f cmp w2, w3, asr #31
- 9a8: 6b23005f cmp w2, w3, uxtb
- 9ac: 6b23045f cmp w2, w3, uxtb #1
- 9b0: 6b23085f cmp w2, w3, uxtb #2
- 9b4: 6b230c5f cmp w2, w3, uxtb #3
- 9b8: 6b23105f cmp w2, w3, uxtb #4
- 9bc: 6b23205f cmp w2, w3, uxth
- 9c0: 6b23245f cmp w2, w3, uxth #1
- 9c4: 6b23285f cmp w2, w3, uxth #2
- 9c8: 6b232c5f cmp w2, w3, uxth #3
- 9cc: 6b23305f cmp w2, w3, uxth #4
- 9d0: 6b23805f cmp w2, w3, sxtb
- 9d4: 6b23845f cmp w2, w3, sxtb #1
- 9d8: 6b23885f cmp w2, w3, sxtb #2
- 9dc: 6b238c5f cmp w2, w3, sxtb #3
- 9e0: 6b23905f cmp w2, w3, sxtb #4
- 9e4: 6b23a05f cmp w2, w3, sxth
- 9e8: 6b23a45f cmp w2, w3, sxth #1
- 9ec: 6b23a85f cmp w2, w3, sxth #2
- 9f0: 6b23ac5f cmp w2, w3, sxth #3
- 9f4: 6b23b05f cmp w2, w3, sxth #4
- 9f8: ab03005f cmn x2, x3
- 9fc: ab03045f cmn x2, x3, lsl #1
- a00: ab030c5f cmn x2, x3, lsl #3
- a04: ab031c5f cmn x2, x3, lsl #7
- a08: ab033c5f cmn x2, x3, lsl #15
- a0c: ab037c5f cmn x2, x3, lsl #31
- a10: ab03fc5f cmn x2, x3, lsl #63
- a14: ab43005f cmn x2, x3, lsr #0
- a18: ab43045f cmn x2, x3, lsr #1
- a1c: ab430c5f cmn x2, x3, lsr #3
- a20: ab431c5f cmn x2, x3, lsr #7
- a24: ab433c5f cmn x2, x3, lsr #15
- a28: ab437c5f cmn x2, x3, lsr #31
- a2c: ab43fc5f cmn x2, x3, lsr #63
- a30: ab83005f cmn x2, x3, asr #0
- a34: ab83045f cmn x2, x3, asr #1
- a38: ab830c5f cmn x2, x3, asr #3
- a3c: ab831c5f cmn x2, x3, asr #7
- a40: ab833c5f cmn x2, x3, asr #15
- a44: ab837c5f cmn x2, x3, asr #31
- a48: ab83fc5f cmn x2, x3, asr #63
- a4c: ab23005f cmn x2, w3, uxtb
- a50: ab23045f cmn x2, w3, uxtb #1
- a54: ab23085f cmn x2, w3, uxtb #2
- a58: ab230c5f cmn x2, w3, uxtb #3
- a5c: ab23105f cmn x2, w3, uxtb #4
- a60: ab23205f cmn x2, w3, uxth
- a64: ab23245f cmn x2, w3, uxth #1
- a68: ab23285f cmn x2, w3, uxth #2
- a6c: ab232c5f cmn x2, w3, uxth #3
- a70: ab23305f cmn x2, w3, uxth #4
- a74: ab23405f cmn x2, w3, uxtw
- a78: ab23445f cmn x2, w3, uxtw #1
- a7c: ab23485f cmn x2, w3, uxtw #2
- a80: ab234c5f cmn x2, w3, uxtw #3
- a84: ab23505f cmn x2, w3, uxtw #4
- a88: ab23805f cmn x2, w3, sxtb
- a8c: ab23845f cmn x2, w3, sxtb #1
- a90: ab23885f cmn x2, w3, sxtb #2
- a94: ab238c5f cmn x2, w3, sxtb #3
- a98: ab23905f cmn x2, w3, sxtb #4
- a9c: ab23a05f cmn x2, w3, sxth
- aa0: ab23a45f cmn x2, w3, sxth #1
- aa4: ab23a85f cmn x2, w3, sxth #2
- aa8: ab23ac5f cmn x2, w3, sxth #3
- aac: ab23b05f cmn x2, w3, sxth #4
- ab0: ab23c05f cmn x2, w3, sxtw
- ab4: ab23c45f cmn x2, w3, sxtw #1
- ab8: ab23c85f cmn x2, w3, sxtw #2
- abc: ab23cc5f cmn x2, w3, sxtw #3
- ac0: ab23d05f cmn x2, w3, sxtw #4
- ac4: 2b03005f cmn w2, w3
- ac8: 2b03045f cmn w2, w3, lsl #1
- acc: 2b030c5f cmn w2, w3, lsl #3
- ad0: 2b031c5f cmn w2, w3, lsl #7
- ad4: 2b033c5f cmn w2, w3, lsl #15
- ad8: 2b037c5f cmn w2, w3, lsl #31
- adc: 2b43005f cmn w2, w3, lsr #0
- ae0: 2b43045f cmn w2, w3, lsr #1
- ae4: 2b430c5f cmn w2, w3, lsr #3
- ae8: 2b431c5f cmn w2, w3, lsr #7
- aec: 2b433c5f cmn w2, w3, lsr #15
- af0: 2b437c5f cmn w2, w3, lsr #31
- af4: 2b83005f cmn w2, w3, asr #0
- af8: 2b83045f cmn w2, w3, asr #1
- afc: 2b830c5f cmn w2, w3, asr #3
- b00: 2b831c5f cmn w2, w3, asr #7
- b04: 2b833c5f cmn w2, w3, asr #15
- b08: 2b837c5f cmn w2, w3, asr #31
- b0c: 2b23005f cmn w2, w3, uxtb
- b10: 2b23045f cmn w2, w3, uxtb #1
- b14: 2b23085f cmn w2, w3, uxtb #2
- b18: 2b230c5f cmn w2, w3, uxtb #3
- b1c: 2b23105f cmn w2, w3, uxtb #4
- b20: 2b23205f cmn w2, w3, uxth
- b24: 2b23245f cmn w2, w3, uxth #1
- b28: 2b23285f cmn w2, w3, uxth #2
- b2c: 2b232c5f cmn w2, w3, uxth #3
- b30: 2b23305f cmn w2, w3, uxth #4
- b34: 2b23805f cmn w2, w3, sxtb
- b38: 2b23845f cmn w2, w3, sxtb #1
- b3c: 2b23885f cmn w2, w3, sxtb #2
- b40: 2b238c5f cmn w2, w3, sxtb #3
- b44: 2b23905f cmn w2, w3, sxtb #4
- b48: 2b23a05f cmn w2, w3, sxth
- b4c: 2b23a45f cmn w2, w3, sxth #1
- b50: 2b23a85f cmn w2, w3, sxth #2
- b54: 2b23ac5f cmn w2, w3, sxth #3
- b58: 2b23b05f cmn w2, w3, sxth #4
+ *[0-9a-f]+: aa030041 orr x1, x2, x3
+ *[0-9a-f]+: aa030441 orr x1, x2, x3, lsl #1
+ *[0-9a-f]+: aa030c41 orr x1, x2, x3, lsl #3
+ *[0-9a-f]+: aa031c41 orr x1, x2, x3, lsl #7
+ *[0-9a-f]+: aa033c41 orr x1, x2, x3, lsl #15
+ *[0-9a-f]+: aa037c41 orr x1, x2, x3, lsl #31
+ *[0-9a-f]+: aa03fc41 orr x1, x2, x3, lsl #63
+ *[0-9a-f]+: aa430041 orr x1, x2, x3, lsr #0
+ *[0-9a-f]+: aa430441 orr x1, x2, x3, lsr #1
+ *[0-9a-f]+: aa430c41 orr x1, x2, x3, lsr #3
+ *[0-9a-f]+: aa431c41 orr x1, x2, x3, lsr #7
+ *[0-9a-f]+: aa433c41 orr x1, x2, x3, lsr #15
+ *[0-9a-f]+: aa437c41 orr x1, x2, x3, lsr #31
+ *[0-9a-f]+: aa43fc41 orr x1, x2, x3, lsr #63
+ *[0-9a-f]+: aa830041 orr x1, x2, x3, asr #0
+ *[0-9a-f]+: aa830441 orr x1, x2, x3, asr #1
+ *[0-9a-f]+: aa830c41 orr x1, x2, x3, asr #3
+ *[0-9a-f]+: aa831c41 orr x1, x2, x3, asr #7
+ *[0-9a-f]+: aa833c41 orr x1, x2, x3, asr #15
+ *[0-9a-f]+: aa837c41 orr x1, x2, x3, asr #31
+ *[0-9a-f]+: aa83fc41 orr x1, x2, x3, asr #63
+ *[0-9a-f]+: aac30041 orr x1, x2, x3, ror #0
+ *[0-9a-f]+: aac30441 orr x1, x2, x3, ror #1
+ *[0-9a-f]+: aac30c41 orr x1, x2, x3, ror #3
+ *[0-9a-f]+: aac31c41 orr x1, x2, x3, ror #7
+ *[0-9a-f]+: aac33c41 orr x1, x2, x3, ror #15
+ *[0-9a-f]+: aac37c41 orr x1, x2, x3, ror #31
+ *[0-9a-f]+: aac3fc41 orr x1, x2, x3, ror #63
+ *[0-9a-f]+: 2a030041 orr w1, w2, w3
+ *[0-9a-f]+: 2a030441 orr w1, w2, w3, lsl #1
+ *[0-9a-f]+: 2a030c41 orr w1, w2, w3, lsl #3
+ *[0-9a-f]+: 2a031c41 orr w1, w2, w3, lsl #7
+ *[0-9a-f]+: 2a033c41 orr w1, w2, w3, lsl #15
+ *[0-9a-f]+: 2a037c41 orr w1, w2, w3, lsl #31
+ *[0-9a-f]+: 2a430041 orr w1, w2, w3, lsr #0
+ *[0-9a-f]+: 2a430441 orr w1, w2, w3, lsr #1
+ *[0-9a-f]+: 2a430c41 orr w1, w2, w3, lsr #3
+ *[0-9a-f]+: 2a431c41 orr w1, w2, w3, lsr #7
+ *[0-9a-f]+: 2a433c41 orr w1, w2, w3, lsr #15
+ *[0-9a-f]+: 2a437c41 orr w1, w2, w3, lsr #31
+ *[0-9a-f]+: 2a830041 orr w1, w2, w3, asr #0
+ *[0-9a-f]+: 2a830441 orr w1, w2, w3, asr #1
+ *[0-9a-f]+: 2a830c41 orr w1, w2, w3, asr #3
+ *[0-9a-f]+: 2a831c41 orr w1, w2, w3, asr #7
+ *[0-9a-f]+: 2a833c41 orr w1, w2, w3, asr #15
+ *[0-9a-f]+: 2a837c41 orr w1, w2, w3, asr #31
+ *[0-9a-f]+: 2ac30041 orr w1, w2, w3, ror #0
+ *[0-9a-f]+: 2ac30441 orr w1, w2, w3, ror #1
+ *[0-9a-f]+: 2ac30c41 orr w1, w2, w3, ror #3
+ *[0-9a-f]+: 2ac31c41 orr w1, w2, w3, ror #7
+ *[0-9a-f]+: 2ac33c41 orr w1, w2, w3, ror #15
+ *[0-9a-f]+: 2ac37c41 orr w1, w2, w3, ror #31
+ *[0-9a-f]+: 8a030041 and x1, x2, x3
+ *[0-9a-f]+: 8a030441 and x1, x2, x3, lsl #1
+ *[0-9a-f]+: 8a030c41 and x1, x2, x3, lsl #3
+ *[0-9a-f]+: 8a031c41 and x1, x2, x3, lsl #7
+ *[0-9a-f]+: 8a033c41 and x1, x2, x3, lsl #15
+ *[0-9a-f]+: 8a037c41 and x1, x2, x3, lsl #31
+ *[0-9a-f]+: 8a03fc41 and x1, x2, x3, lsl #63
+ *[0-9a-f]+: 8a430041 and x1, x2, x3, lsr #0
+ *[0-9a-f]+: 8a430441 and x1, x2, x3, lsr #1
+ *[0-9a-f]+: 8a430c41 and x1, x2, x3, lsr #3
+ *[0-9a-f]+: 8a431c41 and x1, x2, x3, lsr #7
+ *[0-9a-f]+: 8a433c41 and x1, x2, x3, lsr #15
+ *[0-9a-f]+: 8a437c41 and x1, x2, x3, lsr #31
+ *[0-9a-f]+: 8a43fc41 and x1, x2, x3, lsr #63
+ *[0-9a-f]+: 8a830041 and x1, x2, x3, asr #0
+ *[0-9a-f]+: 8a830441 and x1, x2, x3, asr #1
+ *[0-9a-f]+: 8a830c41 and x1, x2, x3, asr #3
+ *[0-9a-f]+: 8a831c41 and x1, x2, x3, asr #7
+ *[0-9a-f]+: 8a833c41 and x1, x2, x3, asr #15
+ *[0-9a-f]+: 8a837c41 and x1, x2, x3, asr #31
+ *[0-9a-f]+: 8a83fc41 and x1, x2, x3, asr #63
+ *[0-9a-f]+: 8ac30041 and x1, x2, x3, ror #0
+ *[0-9a-f]+: 8ac30441 and x1, x2, x3, ror #1
+ *[0-9a-f]+: 8ac30c41 and x1, x2, x3, ror #3
+ *[0-9a-f]+: 8ac31c41 and x1, x2, x3, ror #7
+ *[0-9a-f]+: 8ac33c41 and x1, x2, x3, ror #15
+ *[0-9a-f]+: 8ac37c41 and x1, x2, x3, ror #31
+ *[0-9a-f]+: 8ac3fc41 and x1, x2, x3, ror #63
+ *[0-9a-f]+: 0a030041 and w1, w2, w3
+ *[0-9a-f]+: 0a030441 and w1, w2, w3, lsl #1
+ *[0-9a-f]+: 0a030c41 and w1, w2, w3, lsl #3
+ *[0-9a-f]+: 0a031c41 and w1, w2, w3, lsl #7
+ *[0-9a-f]+: 0a033c41 and w1, w2, w3, lsl #15
+ *[0-9a-f]+: 0a037c41 and w1, w2, w3, lsl #31
+ *[0-9a-f]+: 0a430041 and w1, w2, w3, lsr #0
+ *[0-9a-f]+: 0a430441 and w1, w2, w3, lsr #1
+ *[0-9a-f]+: 0a430c41 and w1, w2, w3, lsr #3
+ *[0-9a-f]+: 0a431c41 and w1, w2, w3, lsr #7
+ *[0-9a-f]+: 0a433c41 and w1, w2, w3, lsr #15
+ *[0-9a-f]+: 0a437c41 and w1, w2, w3, lsr #31
+ *[0-9a-f]+: 0a830041 and w1, w2, w3, asr #0
+ *[0-9a-f]+: 0a830441 and w1, w2, w3, asr #1
+ *[0-9a-f]+: 0a830c41 and w1, w2, w3, asr #3
+ *[0-9a-f]+: 0a831c41 and w1, w2, w3, asr #7
+ *[0-9a-f]+: 0a833c41 and w1, w2, w3, asr #15
+ *[0-9a-f]+: 0a837c41 and w1, w2, w3, asr #31
+ *[0-9a-f]+: 0ac30041 and w1, w2, w3, ror #0
+ *[0-9a-f]+: 0ac30441 and w1, w2, w3, ror #1
+ *[0-9a-f]+: 0ac30c41 and w1, w2, w3, ror #3
+ *[0-9a-f]+: 0ac31c41 and w1, w2, w3, ror #7
+ *[0-9a-f]+: 0ac33c41 and w1, w2, w3, ror #15
+ *[0-9a-f]+: 0ac37c41 and w1, w2, w3, ror #31
+ *[0-9a-f]+: ca030041 eor x1, x2, x3
+ *[0-9a-f]+: ca030441 eor x1, x2, x3, lsl #1
+ *[0-9a-f]+: ca030c41 eor x1, x2, x3, lsl #3
+ *[0-9a-f]+: ca031c41 eor x1, x2, x3, lsl #7
+ *[0-9a-f]+: ca033c41 eor x1, x2, x3, lsl #15
+ *[0-9a-f]+: ca037c41 eor x1, x2, x3, lsl #31
+ *[0-9a-f]+: ca03fc41 eor x1, x2, x3, lsl #63
+ *[0-9a-f]+: ca430041 eor x1, x2, x3, lsr #0
+ *[0-9a-f]+: ca430441 eor x1, x2, x3, lsr #1
+ *[0-9a-f]+: ca430c41 eor x1, x2, x3, lsr #3
+ *[0-9a-f]+: ca431c41 eor x1, x2, x3, lsr #7
+ *[0-9a-f]+: ca433c41 eor x1, x2, x3, lsr #15
+ *[0-9a-f]+: ca437c41 eor x1, x2, x3, lsr #31
+ *[0-9a-f]+: ca43fc41 eor x1, x2, x3, lsr #63
+ *[0-9a-f]+: ca830041 eor x1, x2, x3, asr #0
+ *[0-9a-f]+: ca830441 eor x1, x2, x3, asr #1
+ *[0-9a-f]+: ca830c41 eor x1, x2, x3, asr #3
+ *[0-9a-f]+: ca831c41 eor x1, x2, x3, asr #7
+ *[0-9a-f]+: ca833c41 eor x1, x2, x3, asr #15
+ *[0-9a-f]+: ca837c41 eor x1, x2, x3, asr #31
+ *[0-9a-f]+: ca83fc41 eor x1, x2, x3, asr #63
+ *[0-9a-f]+: cac30041 eor x1, x2, x3, ror #0
+ *[0-9a-f]+: cac30441 eor x1, x2, x3, ror #1
+ *[0-9a-f]+: cac30c41 eor x1, x2, x3, ror #3
+ *[0-9a-f]+: cac31c41 eor x1, x2, x3, ror #7
+ *[0-9a-f]+: cac33c41 eor x1, x2, x3, ror #15
+ *[0-9a-f]+: cac37c41 eor x1, x2, x3, ror #31
+ *[0-9a-f]+: cac3fc41 eor x1, x2, x3, ror #63
+ *[0-9a-f]+: 4a030041 eor w1, w2, w3
+ *[0-9a-f]+: 4a030441 eor w1, w2, w3, lsl #1
+ *[0-9a-f]+: 4a030c41 eor w1, w2, w3, lsl #3
+ *[0-9a-f]+: 4a031c41 eor w1, w2, w3, lsl #7
+ *[0-9a-f]+: 4a033c41 eor w1, w2, w3, lsl #15
+ *[0-9a-f]+: 4a037c41 eor w1, w2, w3, lsl #31
+ *[0-9a-f]+: 4a430041 eor w1, w2, w3, lsr #0
+ *[0-9a-f]+: 4a430441 eor w1, w2, w3, lsr #1
+ *[0-9a-f]+: 4a430c41 eor w1, w2, w3, lsr #3
+ *[0-9a-f]+: 4a431c41 eor w1, w2, w3, lsr #7
+ *[0-9a-f]+: 4a433c41 eor w1, w2, w3, lsr #15
+ *[0-9a-f]+: 4a437c41 eor w1, w2, w3, lsr #31
+ *[0-9a-f]+: 4a830041 eor w1, w2, w3, asr #0
+ *[0-9a-f]+: 4a830441 eor w1, w2, w3, asr #1
+ *[0-9a-f]+: 4a830c41 eor w1, w2, w3, asr #3
+ *[0-9a-f]+: 4a831c41 eor w1, w2, w3, asr #7
+ *[0-9a-f]+: 4a833c41 eor w1, w2, w3, asr #15
+ *[0-9a-f]+: 4a837c41 eor w1, w2, w3, asr #31
+ *[0-9a-f]+: 4ac30041 eor w1, w2, w3, ror #0
+ *[0-9a-f]+: 4ac30441 eor w1, w2, w3, ror #1
+ *[0-9a-f]+: 4ac30c41 eor w1, w2, w3, ror #3
+ *[0-9a-f]+: 4ac31c41 eor w1, w2, w3, ror #7
+ *[0-9a-f]+: 4ac33c41 eor w1, w2, w3, ror #15
+ *[0-9a-f]+: 4ac37c41 eor w1, w2, w3, ror #31
+ *[0-9a-f]+: 8a230041 bic x1, x2, x3
+ *[0-9a-f]+: 8a230441 bic x1, x2, x3, lsl #1
+ *[0-9a-f]+: 8a230c41 bic x1, x2, x3, lsl #3
+ *[0-9a-f]+: 8a231c41 bic x1, x2, x3, lsl #7
+ *[0-9a-f]+: 8a233c41 bic x1, x2, x3, lsl #15
+ *[0-9a-f]+: 8a237c41 bic x1, x2, x3, lsl #31
+ *[0-9a-f]+: 8a23fc41 bic x1, x2, x3, lsl #63
+ *[0-9a-f]+: 8a630041 bic x1, x2, x3, lsr #0
+ *[0-9a-f]+: 8a630441 bic x1, x2, x3, lsr #1
+ *[0-9a-f]+: 8a630c41 bic x1, x2, x3, lsr #3
+ *[0-9a-f]+: 8a631c41 bic x1, x2, x3, lsr #7
+ *[0-9a-f]+: 8a633c41 bic x1, x2, x3, lsr #15
+ *[0-9a-f]+: 8a637c41 bic x1, x2, x3, lsr #31
+ *[0-9a-f]+: 8a63fc41 bic x1, x2, x3, lsr #63
+ *[0-9a-f]+: 8aa30041 bic x1, x2, x3, asr #0
+ *[0-9a-f]+: 8aa30441 bic x1, x2, x3, asr #1
+ *[0-9a-f]+: 8aa30c41 bic x1, x2, x3, asr #3
+ *[0-9a-f]+: 8aa31c41 bic x1, x2, x3, asr #7
+ *[0-9a-f]+: 8aa33c41 bic x1, x2, x3, asr #15
+ *[0-9a-f]+: 8aa37c41 bic x1, x2, x3, asr #31
+ *[0-9a-f]+: 8aa3fc41 bic x1, x2, x3, asr #63
+ *[0-9a-f]+: 8ae30041 bic x1, x2, x3, ror #0
+ *[0-9a-f]+: 8ae30441 bic x1, x2, x3, ror #1
+ *[0-9a-f]+: 8ae30c41 bic x1, x2, x3, ror #3
+ *[0-9a-f]+: 8ae31c41 bic x1, x2, x3, ror #7
+ *[0-9a-f]+: 8ae33c41 bic x1, x2, x3, ror #15
+ *[0-9a-f]+: 8ae37c41 bic x1, x2, x3, ror #31
+ *[0-9a-f]+: 8ae3fc41 bic x1, x2, x3, ror #63
+ *[0-9a-f]+: 0a230041 bic w1, w2, w3
+ *[0-9a-f]+: 0a230441 bic w1, w2, w3, lsl #1
+ *[0-9a-f]+: 0a230c41 bic w1, w2, w3, lsl #3
+ *[0-9a-f]+: 0a231c41 bic w1, w2, w3, lsl #7
+ *[0-9a-f]+: 0a233c41 bic w1, w2, w3, lsl #15
+ *[0-9a-f]+: 0a237c41 bic w1, w2, w3, lsl #31
+ *[0-9a-f]+: 0a630041 bic w1, w2, w3, lsr #0
+ *[0-9a-f]+: 0a630441 bic w1, w2, w3, lsr #1
+ *[0-9a-f]+: 0a630c41 bic w1, w2, w3, lsr #3
+ *[0-9a-f]+: 0a631c41 bic w1, w2, w3, lsr #7
+ *[0-9a-f]+: 0a633c41 bic w1, w2, w3, lsr #15
+ *[0-9a-f]+: 0a637c41 bic w1, w2, w3, lsr #31
+ *[0-9a-f]+: 0aa30041 bic w1, w2, w3, asr #0
+ *[0-9a-f]+: 0aa30441 bic w1, w2, w3, asr #1
+ *[0-9a-f]+: 0aa30c41 bic w1, w2, w3, asr #3
+ *[0-9a-f]+: 0aa31c41 bic w1, w2, w3, asr #7
+ *[0-9a-f]+: 0aa33c41 bic w1, w2, w3, asr #15
+ *[0-9a-f]+: 0aa37c41 bic w1, w2, w3, asr #31
+ *[0-9a-f]+: 0ae30041 bic w1, w2, w3, ror #0
+ *[0-9a-f]+: 0ae30441 bic w1, w2, w3, ror #1
+ *[0-9a-f]+: 0ae30c41 bic w1, w2, w3, ror #3
+ *[0-9a-f]+: 0ae31c41 bic w1, w2, w3, ror #7
+ *[0-9a-f]+: 0ae33c41 bic w1, w2, w3, ror #15
+ *[0-9a-f]+: 0ae37c41 bic w1, w2, w3, ror #31
+ *[0-9a-f]+: aa230041 orn x1, x2, x3
+ *[0-9a-f]+: aa230441 orn x1, x2, x3, lsl #1
+ *[0-9a-f]+: aa230c41 orn x1, x2, x3, lsl #3
+ *[0-9a-f]+: aa231c41 orn x1, x2, x3, lsl #7
+ *[0-9a-f]+: aa233c41 orn x1, x2, x3, lsl #15
+ *[0-9a-f]+: aa237c41 orn x1, x2, x3, lsl #31
+ *[0-9a-f]+: aa23fc41 orn x1, x2, x3, lsl #63
+ *[0-9a-f]+: aa630041 orn x1, x2, x3, lsr #0
+ *[0-9a-f]+: aa630441 orn x1, x2, x3, lsr #1
+ *[0-9a-f]+: aa630c41 orn x1, x2, x3, lsr #3
+ *[0-9a-f]+: aa631c41 orn x1, x2, x3, lsr #7
+ *[0-9a-f]+: aa633c41 orn x1, x2, x3, lsr #15
+ *[0-9a-f]+: aa637c41 orn x1, x2, x3, lsr #31
+ *[0-9a-f]+: aa63fc41 orn x1, x2, x3, lsr #63
+ *[0-9a-f]+: aaa30041 orn x1, x2, x3, asr #0
+ *[0-9a-f]+: aaa30441 orn x1, x2, x3, asr #1
+ *[0-9a-f]+: aaa30c41 orn x1, x2, x3, asr #3
+ *[0-9a-f]+: aaa31c41 orn x1, x2, x3, asr #7
+ *[0-9a-f]+: aaa33c41 orn x1, x2, x3, asr #15
+ *[0-9a-f]+: aaa37c41 orn x1, x2, x3, asr #31
+ *[0-9a-f]+: aaa3fc41 orn x1, x2, x3, asr #63
+ *[0-9a-f]+: aae30041 orn x1, x2, x3, ror #0
+ *[0-9a-f]+: aae30441 orn x1, x2, x3, ror #1
+ *[0-9a-f]+: aae30c41 orn x1, x2, x3, ror #3
+ *[0-9a-f]+: aae31c41 orn x1, x2, x3, ror #7
+ *[0-9a-f]+: aae33c41 orn x1, x2, x3, ror #15
+ *[0-9a-f]+: aae37c41 orn x1, x2, x3, ror #31
+ *[0-9a-f]+: aae3fc41 orn x1, x2, x3, ror #63
+ *[0-9a-f]+: 2a230041 orn w1, w2, w3
+ *[0-9a-f]+: 2a230441 orn w1, w2, w3, lsl #1
+ *[0-9a-f]+: 2a230c41 orn w1, w2, w3, lsl #3
+ *[0-9a-f]+: 2a231c41 orn w1, w2, w3, lsl #7
+ *[0-9a-f]+: 2a233c41 orn w1, w2, w3, lsl #15
+ *[0-9a-f]+: 2a237c41 orn w1, w2, w3, lsl #31
+ *[0-9a-f]+: 2a630041 orn w1, w2, w3, lsr #0
+ *[0-9a-f]+: 2a630441 orn w1, w2, w3, lsr #1
+ *[0-9a-f]+: 2a630c41 orn w1, w2, w3, lsr #3
+ *[0-9a-f]+: 2a631c41 orn w1, w2, w3, lsr #7
+ *[0-9a-f]+: 2a633c41 orn w1, w2, w3, lsr #15
+ *[0-9a-f]+: 2a637c41 orn w1, w2, w3, lsr #31
+ *[0-9a-f]+: 2aa30041 orn w1, w2, w3, asr #0
+ *[0-9a-f]+: 2aa30441 orn w1, w2, w3, asr #1
+ *[0-9a-f]+: 2aa30c41 orn w1, w2, w3, asr #3
+ *[0-9a-f]+: 2aa31c41 orn w1, w2, w3, asr #7
+ *[0-9a-f]+: 2aa33c41 orn w1, w2, w3, asr #15
+ *[0-9a-f]+: 2aa37c41 orn w1, w2, w3, asr #31
+ *[0-9a-f]+: 2ae30041 orn w1, w2, w3, ror #0
+ *[0-9a-f]+: 2ae30441 orn w1, w2, w3, ror #1
+ *[0-9a-f]+: 2ae30c41 orn w1, w2, w3, ror #3
+ *[0-9a-f]+: 2ae31c41 orn w1, w2, w3, ror #7
+ *[0-9a-f]+: 2ae33c41 orn w1, w2, w3, ror #15
+ *[0-9a-f]+: 2ae37c41 orn w1, w2, w3, ror #31
+ *[0-9a-f]+: ca230041 eon x1, x2, x3
+ *[0-9a-f]+: ca230441 eon x1, x2, x3, lsl #1
+ *[0-9a-f]+: ca230c41 eon x1, x2, x3, lsl #3
+ *[0-9a-f]+: ca231c41 eon x1, x2, x3, lsl #7
+ *[0-9a-f]+: ca233c41 eon x1, x2, x3, lsl #15
+ *[0-9a-f]+: ca237c41 eon x1, x2, x3, lsl #31
+ *[0-9a-f]+: ca23fc41 eon x1, x2, x3, lsl #63
+ *[0-9a-f]+: ca630041 eon x1, x2, x3, lsr #0
+ *[0-9a-f]+: ca630441 eon x1, x2, x3, lsr #1
+ *[0-9a-f]+: ca630c41 eon x1, x2, x3, lsr #3
+ *[0-9a-f]+: ca631c41 eon x1, x2, x3, lsr #7
+ *[0-9a-f]+: ca633c41 eon x1, x2, x3, lsr #15
+ *[0-9a-f]+: ca637c41 eon x1, x2, x3, lsr #31
+ *[0-9a-f]+: ca63fc41 eon x1, x2, x3, lsr #63
+ *[0-9a-f]+: caa30041 eon x1, x2, x3, asr #0
+ *[0-9a-f]+: caa30441 eon x1, x2, x3, asr #1
+ *[0-9a-f]+: caa30c41 eon x1, x2, x3, asr #3
+ *[0-9a-f]+: caa31c41 eon x1, x2, x3, asr #7
+ *[0-9a-f]+: caa33c41 eon x1, x2, x3, asr #15
+ *[0-9a-f]+: caa37c41 eon x1, x2, x3, asr #31
+ *[0-9a-f]+: caa3fc41 eon x1, x2, x3, asr #63
+ *[0-9a-f]+: cae30041 eon x1, x2, x3, ror #0
+ *[0-9a-f]+: cae30441 eon x1, x2, x3, ror #1
+ *[0-9a-f]+: cae30c41 eon x1, x2, x3, ror #3
+ *[0-9a-f]+: cae31c41 eon x1, x2, x3, ror #7
+ *[0-9a-f]+: cae33c41 eon x1, x2, x3, ror #15
+ *[0-9a-f]+: cae37c41 eon x1, x2, x3, ror #31
+ *[0-9a-f]+: cae3fc41 eon x1, x2, x3, ror #63
+ *[0-9a-f]+: 4a230041 eon w1, w2, w3
+ *[0-9a-f]+: 4a230441 eon w1, w2, w3, lsl #1
+ *[0-9a-f]+: 4a230c41 eon w1, w2, w3, lsl #3
+ *[0-9a-f]+: 4a231c41 eon w1, w2, w3, lsl #7
+ *[0-9a-f]+: 4a233c41 eon w1, w2, w3, lsl #15
+ *[0-9a-f]+: 4a237c41 eon w1, w2, w3, lsl #31
+ *[0-9a-f]+: 4a630041 eon w1, w2, w3, lsr #0
+ *[0-9a-f]+: 4a630441 eon w1, w2, w3, lsr #1
+ *[0-9a-f]+: 4a630c41 eon w1, w2, w3, lsr #3
+ *[0-9a-f]+: 4a631c41 eon w1, w2, w3, lsr #7
+ *[0-9a-f]+: 4a633c41 eon w1, w2, w3, lsr #15
+ *[0-9a-f]+: 4a637c41 eon w1, w2, w3, lsr #31
+ *[0-9a-f]+: 4aa30041 eon w1, w2, w3, asr #0
+ *[0-9a-f]+: 4aa30441 eon w1, w2, w3, asr #1
+ *[0-9a-f]+: 4aa30c41 eon w1, w2, w3, asr #3
+ *[0-9a-f]+: 4aa31c41 eon w1, w2, w3, asr #7
+ *[0-9a-f]+: 4aa33c41 eon w1, w2, w3, asr #15
+ *[0-9a-f]+: 4aa37c41 eon w1, w2, w3, asr #31
+ *[0-9a-f]+: 4ae30041 eon w1, w2, w3, ror #0
+ *[0-9a-f]+: 4ae30441 eon w1, w2, w3, ror #1
+ *[0-9a-f]+: 4ae30c41 eon w1, w2, w3, ror #3
+ *[0-9a-f]+: 4ae31c41 eon w1, w2, w3, ror #7
+ *[0-9a-f]+: 4ae33c41 eon w1, w2, w3, ror #15
+ *[0-9a-f]+: 4ae37c41 eon w1, w2, w3, ror #31
+ *[0-9a-f]+: ea030041 ands x1, x2, x3
+ *[0-9a-f]+: ea030441 ands x1, x2, x3, lsl #1
+ *[0-9a-f]+: ea030c41 ands x1, x2, x3, lsl #3
+ *[0-9a-f]+: ea031c41 ands x1, x2, x3, lsl #7
+ *[0-9a-f]+: ea033c41 ands x1, x2, x3, lsl #15
+ *[0-9a-f]+: ea037c41 ands x1, x2, x3, lsl #31
+ *[0-9a-f]+: ea03fc41 ands x1, x2, x3, lsl #63
+ *[0-9a-f]+: ea430041 ands x1, x2, x3, lsr #0
+ *[0-9a-f]+: ea430441 ands x1, x2, x3, lsr #1
+ *[0-9a-f]+: ea430c41 ands x1, x2, x3, lsr #3
+ *[0-9a-f]+: ea431c41 ands x1, x2, x3, lsr #7
+ *[0-9a-f]+: ea433c41 ands x1, x2, x3, lsr #15
+ *[0-9a-f]+: ea437c41 ands x1, x2, x3, lsr #31
+ *[0-9a-f]+: ea43fc41 ands x1, x2, x3, lsr #63
+ *[0-9a-f]+: ea830041 ands x1, x2, x3, asr #0
+ *[0-9a-f]+: ea830441 ands x1, x2, x3, asr #1
+ *[0-9a-f]+: ea830c41 ands x1, x2, x3, asr #3
+ *[0-9a-f]+: ea831c41 ands x1, x2, x3, asr #7
+ *[0-9a-f]+: ea833c41 ands x1, x2, x3, asr #15
+ *[0-9a-f]+: ea837c41 ands x1, x2, x3, asr #31
+ *[0-9a-f]+: ea83fc41 ands x1, x2, x3, asr #63
+ *[0-9a-f]+: eac30041 ands x1, x2, x3, ror #0
+ *[0-9a-f]+: eac30441 ands x1, x2, x3, ror #1
+ *[0-9a-f]+: eac30c41 ands x1, x2, x3, ror #3
+ *[0-9a-f]+: eac31c41 ands x1, x2, x3, ror #7
+ *[0-9a-f]+: eac33c41 ands x1, x2, x3, ror #15
+ *[0-9a-f]+: eac37c41 ands x1, x2, x3, ror #31
+ *[0-9a-f]+: eac3fc41 ands x1, x2, x3, ror #63
+ *[0-9a-f]+: 6a030041 ands w1, w2, w3
+ *[0-9a-f]+: 6a030441 ands w1, w2, w3, lsl #1
+ *[0-9a-f]+: 6a030c41 ands w1, w2, w3, lsl #3
+ *[0-9a-f]+: 6a031c41 ands w1, w2, w3, lsl #7
+ *[0-9a-f]+: 6a033c41 ands w1, w2, w3, lsl #15
+ *[0-9a-f]+: 6a037c41 ands w1, w2, w3, lsl #31
+ *[0-9a-f]+: 6a430041 ands w1, w2, w3, lsr #0
+ *[0-9a-f]+: 6a430441 ands w1, w2, w3, lsr #1
+ *[0-9a-f]+: 6a430c41 ands w1, w2, w3, lsr #3
+ *[0-9a-f]+: 6a431c41 ands w1, w2, w3, lsr #7
+ *[0-9a-f]+: 6a433c41 ands w1, w2, w3, lsr #15
+ *[0-9a-f]+: 6a437c41 ands w1, w2, w3, lsr #31
+ *[0-9a-f]+: 6a830041 ands w1, w2, w3, asr #0
+ *[0-9a-f]+: 6a830441 ands w1, w2, w3, asr #1
+ *[0-9a-f]+: 6a830c41 ands w1, w2, w3, asr #3
+ *[0-9a-f]+: 6a831c41 ands w1, w2, w3, asr #7
+ *[0-9a-f]+: 6a833c41 ands w1, w2, w3, asr #15
+ *[0-9a-f]+: 6a837c41 ands w1, w2, w3, asr #31
+ *[0-9a-f]+: 6ac30041 ands w1, w2, w3, ror #0
+ *[0-9a-f]+: 6ac30441 ands w1, w2, w3, ror #1
+ *[0-9a-f]+: 6ac30c41 ands w1, w2, w3, ror #3
+ *[0-9a-f]+: 6ac31c41 ands w1, w2, w3, ror #7
+ *[0-9a-f]+: 6ac33c41 ands w1, w2, w3, ror #15
+ *[0-9a-f]+: 6ac37c41 ands w1, w2, w3, ror #31
+ *[0-9a-f]+: ea230041 bics x1, x2, x3
+ *[0-9a-f]+: ea230441 bics x1, x2, x3, lsl #1
+ *[0-9a-f]+: ea230c41 bics x1, x2, x3, lsl #3
+ *[0-9a-f]+: ea231c41 bics x1, x2, x3, lsl #7
+ *[0-9a-f]+: ea233c41 bics x1, x2, x3, lsl #15
+ *[0-9a-f]+: ea237c41 bics x1, x2, x3, lsl #31
+ *[0-9a-f]+: ea23fc41 bics x1, x2, x3, lsl #63
+ *[0-9a-f]+: ea630041 bics x1, x2, x3, lsr #0
+ *[0-9a-f]+: ea630441 bics x1, x2, x3, lsr #1
+ *[0-9a-f]+: ea630c41 bics x1, x2, x3, lsr #3
+ *[0-9a-f]+: ea631c41 bics x1, x2, x3, lsr #7
+ *[0-9a-f]+: ea633c41 bics x1, x2, x3, lsr #15
+ *[0-9a-f]+: ea637c41 bics x1, x2, x3, lsr #31
+ *[0-9a-f]+: ea63fc41 bics x1, x2, x3, lsr #63
+ *[0-9a-f]+: eaa30041 bics x1, x2, x3, asr #0
+ *[0-9a-f]+: eaa30441 bics x1, x2, x3, asr #1
+ *[0-9a-f]+: eaa30c41 bics x1, x2, x3, asr #3
+ *[0-9a-f]+: eaa31c41 bics x1, x2, x3, asr #7
+ *[0-9a-f]+: eaa33c41 bics x1, x2, x3, asr #15
+ *[0-9a-f]+: eaa37c41 bics x1, x2, x3, asr #31
+ *[0-9a-f]+: eaa3fc41 bics x1, x2, x3, asr #63
+ *[0-9a-f]+: eae30041 bics x1, x2, x3, ror #0
+ *[0-9a-f]+: eae30441 bics x1, x2, x3, ror #1
+ *[0-9a-f]+: eae30c41 bics x1, x2, x3, ror #3
+ *[0-9a-f]+: eae31c41 bics x1, x2, x3, ror #7
+ *[0-9a-f]+: eae33c41 bics x1, x2, x3, ror #15
+ *[0-9a-f]+: eae37c41 bics x1, x2, x3, ror #31
+ *[0-9a-f]+: eae3fc41 bics x1, x2, x3, ror #63
+ *[0-9a-f]+: 6a230041 bics w1, w2, w3
+ *[0-9a-f]+: 6a230441 bics w1, w2, w3, lsl #1
+ *[0-9a-f]+: 6a230c41 bics w1, w2, w3, lsl #3
+ *[0-9a-f]+: 6a231c41 bics w1, w2, w3, lsl #7
+ *[0-9a-f]+: 6a233c41 bics w1, w2, w3, lsl #15
+ *[0-9a-f]+: 6a237c41 bics w1, w2, w3, lsl #31
+ *[0-9a-f]+: 6a630041 bics w1, w2, w3, lsr #0
+ *[0-9a-f]+: 6a630441 bics w1, w2, w3, lsr #1
+ *[0-9a-f]+: 6a630c41 bics w1, w2, w3, lsr #3
+ *[0-9a-f]+: 6a631c41 bics w1, w2, w3, lsr #7
+ *[0-9a-f]+: 6a633c41 bics w1, w2, w3, lsr #15
+ *[0-9a-f]+: 6a637c41 bics w1, w2, w3, lsr #31
+ *[0-9a-f]+: 6aa30041 bics w1, w2, w3, asr #0
+ *[0-9a-f]+: 6aa30441 bics w1, w2, w3, asr #1
+ *[0-9a-f]+: 6aa30c41 bics w1, w2, w3, asr #3
+ *[0-9a-f]+: 6aa31c41 bics w1, w2, w3, asr #7
+ *[0-9a-f]+: 6aa33c41 bics w1, w2, w3, asr #15
+ *[0-9a-f]+: 6aa37c41 bics w1, w2, w3, asr #31
+ *[0-9a-f]+: 6ae30041 bics w1, w2, w3, ror #0
+ *[0-9a-f]+: 6ae30441 bics w1, w2, w3, ror #1
+ *[0-9a-f]+: 6ae30c41 bics w1, w2, w3, ror #3
+ *[0-9a-f]+: 6ae31c41 bics w1, w2, w3, ror #7
+ *[0-9a-f]+: 6ae33c41 bics w1, w2, w3, ror #15
+ *[0-9a-f]+: 6ae37c41 bics w1, w2, w3, ror #31
+ *[0-9a-f]+: 8b030041 add x1, x2, x3
+ *[0-9a-f]+: 8b030441 add x1, x2, x3, lsl #1
+ *[0-9a-f]+: 8b030c41 add x1, x2, x3, lsl #3
+ *[0-9a-f]+: 8b031c41 add x1, x2, x3, lsl #7
+ *[0-9a-f]+: 8b033c41 add x1, x2, x3, lsl #15
+ *[0-9a-f]+: 8b037c41 add x1, x2, x3, lsl #31
+ *[0-9a-f]+: 8b03fc41 add x1, x2, x3, lsl #63
+ *[0-9a-f]+: 8b430041 add x1, x2, x3, lsr #0
+ *[0-9a-f]+: 8b430441 add x1, x2, x3, lsr #1
+ *[0-9a-f]+: 8b430c41 add x1, x2, x3, lsr #3
+ *[0-9a-f]+: 8b431c41 add x1, x2, x3, lsr #7
+ *[0-9a-f]+: 8b433c41 add x1, x2, x3, lsr #15
+ *[0-9a-f]+: 8b437c41 add x1, x2, x3, lsr #31
+ *[0-9a-f]+: 8b43fc41 add x1, x2, x3, lsr #63
+ *[0-9a-f]+: 8b830041 add x1, x2, x3, asr #0
+ *[0-9a-f]+: 8b830441 add x1, x2, x3, asr #1
+ *[0-9a-f]+: 8b830c41 add x1, x2, x3, asr #3
+ *[0-9a-f]+: 8b831c41 add x1, x2, x3, asr #7
+ *[0-9a-f]+: 8b833c41 add x1, x2, x3, asr #15
+ *[0-9a-f]+: 8b837c41 add x1, x2, x3, asr #31
+ *[0-9a-f]+: 8b83fc41 add x1, x2, x3, asr #63
+ *[0-9a-f]+: 8b230041 add x1, x2, w3, uxtb
+ *[0-9a-f]+: 8b230441 add x1, x2, w3, uxtb #1
+ *[0-9a-f]+: 8b230841 add x1, x2, w3, uxtb #2
+ *[0-9a-f]+: 8b230c41 add x1, x2, w3, uxtb #3
+ *[0-9a-f]+: 8b231041 add x1, x2, w3, uxtb #4
+ *[0-9a-f]+: 8b232041 add x1, x2, w3, uxth
+ *[0-9a-f]+: 8b232441 add x1, x2, w3, uxth #1
+ *[0-9a-f]+: 8b232841 add x1, x2, w3, uxth #2
+ *[0-9a-f]+: 8b232c41 add x1, x2, w3, uxth #3
+ *[0-9a-f]+: 8b233041 add x1, x2, w3, uxth #4
+ *[0-9a-f]+: 8b234041 add x1, x2, w3, uxtw
+ *[0-9a-f]+: 8b234441 add x1, x2, w3, uxtw #1
+ *[0-9a-f]+: 8b234841 add x1, x2, w3, uxtw #2
+ *[0-9a-f]+: 8b234c41 add x1, x2, w3, uxtw #3
+ *[0-9a-f]+: 8b235041 add x1, x2, w3, uxtw #4
+ *[0-9a-f]+: 8b236041 add x1, x2, x3, uxtx
+ *[0-9a-f]+: 8b236441 add x1, x2, x3, uxtx #1
+ *[0-9a-f]+: 8b236841 add x1, x2, x3, uxtx #2
+ *[0-9a-f]+: 8b236c41 add x1, x2, x3, uxtx #3
+ *[0-9a-f]+: 8b237041 add x1, x2, x3, uxtx #4
+ *[0-9a-f]+: 8b238041 add x1, x2, w3, sxtb
+ *[0-9a-f]+: 8b238441 add x1, x2, w3, sxtb #1
+ *[0-9a-f]+: 8b238841 add x1, x2, w3, sxtb #2
+ *[0-9a-f]+: 8b238c41 add x1, x2, w3, sxtb #3
+ *[0-9a-f]+: 8b239041 add x1, x2, w3, sxtb #4
+ *[0-9a-f]+: 8b23a041 add x1, x2, w3, sxth
+ *[0-9a-f]+: 8b23a441 add x1, x2, w3, sxth #1
+ *[0-9a-f]+: 8b23a841 add x1, x2, w3, sxth #2
+ *[0-9a-f]+: 8b23ac41 add x1, x2, w3, sxth #3
+ *[0-9a-f]+: 8b23b041 add x1, x2, w3, sxth #4
+ *[0-9a-f]+: 8b23c041 add x1, x2, w3, sxtw
+ *[0-9a-f]+: 8b23c441 add x1, x2, w3, sxtw #1
+ *[0-9a-f]+: 8b23c841 add x1, x2, w3, sxtw #2
+ *[0-9a-f]+: 8b23cc41 add x1, x2, w3, sxtw #3
+ *[0-9a-f]+: 8b23d041 add x1, x2, w3, sxtw #4
+ *[0-9a-f]+: 8b23e041 add x1, x2, x3, sxtx
+ *[0-9a-f]+: 8b23e441 add x1, x2, x3, sxtx #1
+ *[0-9a-f]+: 8b23e841 add x1, x2, x3, sxtx #2
+ *[0-9a-f]+: 8b23ec41 add x1, x2, x3, sxtx #3
+ *[0-9a-f]+: 8b23f041 add x1, x2, x3, sxtx #4
+ *[0-9a-f]+: 0b030041 add w1, w2, w3
+ *[0-9a-f]+: 0b030441 add w1, w2, w3, lsl #1
+ *[0-9a-f]+: 0b030c41 add w1, w2, w3, lsl #3
+ *[0-9a-f]+: 0b031c41 add w1, w2, w3, lsl #7
+ *[0-9a-f]+: 0b033c41 add w1, w2, w3, lsl #15
+ *[0-9a-f]+: 0b037c41 add w1, w2, w3, lsl #31
+ *[0-9a-f]+: 0b430041 add w1, w2, w3, lsr #0
+ *[0-9a-f]+: 0b430441 add w1, w2, w3, lsr #1
+ *[0-9a-f]+: 0b430c41 add w1, w2, w3, lsr #3
+ *[0-9a-f]+: 0b431c41 add w1, w2, w3, lsr #7
+ *[0-9a-f]+: 0b433c41 add w1, w2, w3, lsr #15
+ *[0-9a-f]+: 0b437c41 add w1, w2, w3, lsr #31
+ *[0-9a-f]+: 0b830041 add w1, w2, w3, asr #0
+ *[0-9a-f]+: 0b830441 add w1, w2, w3, asr #1
+ *[0-9a-f]+: 0b830c41 add w1, w2, w3, asr #3
+ *[0-9a-f]+: 0b831c41 add w1, w2, w3, asr #7
+ *[0-9a-f]+: 0b833c41 add w1, w2, w3, asr #15
+ *[0-9a-f]+: 0b837c41 add w1, w2, w3, asr #31
+ *[0-9a-f]+: 0b230041 add w1, w2, w3, uxtb
+ *[0-9a-f]+: 0b230441 add w1, w2, w3, uxtb #1
+ *[0-9a-f]+: 0b230841 add w1, w2, w3, uxtb #2
+ *[0-9a-f]+: 0b230c41 add w1, w2, w3, uxtb #3
+ *[0-9a-f]+: 0b231041 add w1, w2, w3, uxtb #4
+ *[0-9a-f]+: 0b232041 add w1, w2, w3, uxth
+ *[0-9a-f]+: 0b232441 add w1, w2, w3, uxth #1
+ *[0-9a-f]+: 0b232841 add w1, w2, w3, uxth #2
+ *[0-9a-f]+: 0b232c41 add w1, w2, w3, uxth #3
+ *[0-9a-f]+: 0b233041 add w1, w2, w3, uxth #4
+ *[0-9a-f]+: 0b238041 add w1, w2, w3, sxtb
+ *[0-9a-f]+: 0b238441 add w1, w2, w3, sxtb #1
+ *[0-9a-f]+: 0b238841 add w1, w2, w3, sxtb #2
+ *[0-9a-f]+: 0b238c41 add w1, w2, w3, sxtb #3
+ *[0-9a-f]+: 0b239041 add w1, w2, w3, sxtb #4
+ *[0-9a-f]+: 0b23a041 add w1, w2, w3, sxth
+ *[0-9a-f]+: 0b23a441 add w1, w2, w3, sxth #1
+ *[0-9a-f]+: 0b23a841 add w1, w2, w3, sxth #2
+ *[0-9a-f]+: 0b23ac41 add w1, w2, w3, sxth #3
+ *[0-9a-f]+: 0b23b041 add w1, w2, w3, sxth #4
+ *[0-9a-f]+: cb030041 sub x1, x2, x3
+ *[0-9a-f]+: cb030441 sub x1, x2, x3, lsl #1
+ *[0-9a-f]+: cb030c41 sub x1, x2, x3, lsl #3
+ *[0-9a-f]+: cb031c41 sub x1, x2, x3, lsl #7
+ *[0-9a-f]+: cb033c41 sub x1, x2, x3, lsl #15
+ *[0-9a-f]+: cb037c41 sub x1, x2, x3, lsl #31
+ *[0-9a-f]+: cb03fc41 sub x1, x2, x3, lsl #63
+ *[0-9a-f]+: cb430041 sub x1, x2, x3, lsr #0
+ *[0-9a-f]+: cb430441 sub x1, x2, x3, lsr #1
+ *[0-9a-f]+: cb430c41 sub x1, x2, x3, lsr #3
+ *[0-9a-f]+: cb431c41 sub x1, x2, x3, lsr #7
+ *[0-9a-f]+: cb433c41 sub x1, x2, x3, lsr #15
+ *[0-9a-f]+: cb437c41 sub x1, x2, x3, lsr #31
+ *[0-9a-f]+: cb43fc41 sub x1, x2, x3, lsr #63
+ *[0-9a-f]+: cb830041 sub x1, x2, x3, asr #0
+ *[0-9a-f]+: cb830441 sub x1, x2, x3, asr #1
+ *[0-9a-f]+: cb830c41 sub x1, x2, x3, asr #3
+ *[0-9a-f]+: cb831c41 sub x1, x2, x3, asr #7
+ *[0-9a-f]+: cb833c41 sub x1, x2, x3, asr #15
+ *[0-9a-f]+: cb837c41 sub x1, x2, x3, asr #31
+ *[0-9a-f]+: cb83fc41 sub x1, x2, x3, asr #63
+ *[0-9a-f]+: cb230041 sub x1, x2, w3, uxtb
+ *[0-9a-f]+: cb230441 sub x1, x2, w3, uxtb #1
+ *[0-9a-f]+: cb230841 sub x1, x2, w3, uxtb #2
+ *[0-9a-f]+: cb230c41 sub x1, x2, w3, uxtb #3
+ *[0-9a-f]+: cb231041 sub x1, x2, w3, uxtb #4
+ *[0-9a-f]+: cb232041 sub x1, x2, w3, uxth
+ *[0-9a-f]+: cb232441 sub x1, x2, w3, uxth #1
+ *[0-9a-f]+: cb232841 sub x1, x2, w3, uxth #2
+ *[0-9a-f]+: cb232c41 sub x1, x2, w3, uxth #3
+ *[0-9a-f]+: cb233041 sub x1, x2, w3, uxth #4
+ *[0-9a-f]+: cb234041 sub x1, x2, w3, uxtw
+ *[0-9a-f]+: cb234441 sub x1, x2, w3, uxtw #1
+ *[0-9a-f]+: cb234841 sub x1, x2, w3, uxtw #2
+ *[0-9a-f]+: cb234c41 sub x1, x2, w3, uxtw #3
+ *[0-9a-f]+: cb235041 sub x1, x2, w3, uxtw #4
+ *[0-9a-f]+: cb236041 sub x1, x2, x3, uxtx
+ *[0-9a-f]+: cb236441 sub x1, x2, x3, uxtx #1
+ *[0-9a-f]+: cb236841 sub x1, x2, x3, uxtx #2
+ *[0-9a-f]+: cb236c41 sub x1, x2, x3, uxtx #3
+ *[0-9a-f]+: cb237041 sub x1, x2, x3, uxtx #4
+ *[0-9a-f]+: cb238041 sub x1, x2, w3, sxtb
+ *[0-9a-f]+: cb238441 sub x1, x2, w3, sxtb #1
+ *[0-9a-f]+: cb238841 sub x1, x2, w3, sxtb #2
+ *[0-9a-f]+: cb238c41 sub x1, x2, w3, sxtb #3
+ *[0-9a-f]+: cb239041 sub x1, x2, w3, sxtb #4
+ *[0-9a-f]+: cb23a041 sub x1, x2, w3, sxth
+ *[0-9a-f]+: cb23a441 sub x1, x2, w3, sxth #1
+ *[0-9a-f]+: cb23a841 sub x1, x2, w3, sxth #2
+ *[0-9a-f]+: cb23ac41 sub x1, x2, w3, sxth #3
+ *[0-9a-f]+: cb23b041 sub x1, x2, w3, sxth #4
+ *[0-9a-f]+: cb23c041 sub x1, x2, w3, sxtw
+ *[0-9a-f]+: cb23c441 sub x1, x2, w3, sxtw #1
+ *[0-9a-f]+: cb23c841 sub x1, x2, w3, sxtw #2
+ *[0-9a-f]+: cb23cc41 sub x1, x2, w3, sxtw #3
+ *[0-9a-f]+: cb23d041 sub x1, x2, w3, sxtw #4
+ *[0-9a-f]+: cb23e041 sub x1, x2, x3, sxtx
+ *[0-9a-f]+: cb23e441 sub x1, x2, x3, sxtx #1
+ *[0-9a-f]+: cb23e841 sub x1, x2, x3, sxtx #2
+ *[0-9a-f]+: cb23ec41 sub x1, x2, x3, sxtx #3
+ *[0-9a-f]+: cb23f041 sub x1, x2, x3, sxtx #4
+ *[0-9a-f]+: 4b030041 sub w1, w2, w3
+ *[0-9a-f]+: 4b030441 sub w1, w2, w3, lsl #1
+ *[0-9a-f]+: 4b030c41 sub w1, w2, w3, lsl #3
+ *[0-9a-f]+: 4b031c41 sub w1, w2, w3, lsl #7
+ *[0-9a-f]+: 4b033c41 sub w1, w2, w3, lsl #15
+ *[0-9a-f]+: 4b037c41 sub w1, w2, w3, lsl #31
+ *[0-9a-f]+: 4b430041 sub w1, w2, w3, lsr #0
+ *[0-9a-f]+: 4b430441 sub w1, w2, w3, lsr #1
+ *[0-9a-f]+: 4b430c41 sub w1, w2, w3, lsr #3
+ *[0-9a-f]+: 4b431c41 sub w1, w2, w3, lsr #7
+ *[0-9a-f]+: 4b433c41 sub w1, w2, w3, lsr #15
+ *[0-9a-f]+: 4b437c41 sub w1, w2, w3, lsr #31
+ *[0-9a-f]+: 4b830041 sub w1, w2, w3, asr #0
+ *[0-9a-f]+: 4b830441 sub w1, w2, w3, asr #1
+ *[0-9a-f]+: 4b830c41 sub w1, w2, w3, asr #3
+ *[0-9a-f]+: 4b831c41 sub w1, w2, w3, asr #7
+ *[0-9a-f]+: 4b833c41 sub w1, w2, w3, asr #15
+ *[0-9a-f]+: 4b837c41 sub w1, w2, w3, asr #31
+ *[0-9a-f]+: 4b230041 sub w1, w2, w3, uxtb
+ *[0-9a-f]+: 4b230441 sub w1, w2, w3, uxtb #1
+ *[0-9a-f]+: 4b230841 sub w1, w2, w3, uxtb #2
+ *[0-9a-f]+: 4b230c41 sub w1, w2, w3, uxtb #3
+ *[0-9a-f]+: 4b231041 sub w1, w2, w3, uxtb #4
+ *[0-9a-f]+: 4b232041 sub w1, w2, w3, uxth
+ *[0-9a-f]+: 4b232441 sub w1, w2, w3, uxth #1
+ *[0-9a-f]+: 4b232841 sub w1, w2, w3, uxth #2
+ *[0-9a-f]+: 4b232c41 sub w1, w2, w3, uxth #3
+ *[0-9a-f]+: 4b233041 sub w1, w2, w3, uxth #4
+ *[0-9a-f]+: 4b238041 sub w1, w2, w3, sxtb
+ *[0-9a-f]+: 4b238441 sub w1, w2, w3, sxtb #1
+ *[0-9a-f]+: 4b238841 sub w1, w2, w3, sxtb #2
+ *[0-9a-f]+: 4b238c41 sub w1, w2, w3, sxtb #3
+ *[0-9a-f]+: 4b239041 sub w1, w2, w3, sxtb #4
+ *[0-9a-f]+: 4b23a041 sub w1, w2, w3, sxth
+ *[0-9a-f]+: 4b23a441 sub w1, w2, w3, sxth #1
+ *[0-9a-f]+: 4b23a841 sub w1, w2, w3, sxth #2
+ *[0-9a-f]+: 4b23ac41 sub w1, w2, w3, sxth #3
+ *[0-9a-f]+: 4b23b041 sub w1, w2, w3, sxth #4
+ *[0-9a-f]+: cb0303e2 neg x2, x3
+ *[0-9a-f]+: cb0307e2 neg x2, x3, lsl #1
+ *[0-9a-f]+: cb030fe2 neg x2, x3, lsl #3
+ *[0-9a-f]+: cb031fe2 neg x2, x3, lsl #7
+ *[0-9a-f]+: cb033fe2 neg x2, x3, lsl #15
+ *[0-9a-f]+: cb037fe2 neg x2, x3, lsl #31
+ *[0-9a-f]+: cb03ffe2 neg x2, x3, lsl #63
+ *[0-9a-f]+: cb4303e2 neg x2, x3, lsr #0
+ *[0-9a-f]+: cb4307e2 neg x2, x3, lsr #1
+ *[0-9a-f]+: cb430fe2 neg x2, x3, lsr #3
+ *[0-9a-f]+: cb431fe2 neg x2, x3, lsr #7
+ *[0-9a-f]+: cb433fe2 neg x2, x3, lsr #15
+ *[0-9a-f]+: cb437fe2 neg x2, x3, lsr #31
+ *[0-9a-f]+: cb43ffe2 neg x2, x3, lsr #63
+ *[0-9a-f]+: cb8303e2 neg x2, x3, asr #0
+ *[0-9a-f]+: cb8307e2 neg x2, x3, asr #1
+ *[0-9a-f]+: cb830fe2 neg x2, x3, asr #3
+ *[0-9a-f]+: cb831fe2 neg x2, x3, asr #7
+ *[0-9a-f]+: cb833fe2 neg x2, x3, asr #15
+ *[0-9a-f]+: cb837fe2 neg x2, x3, asr #31
+ *[0-9a-f]+: cb83ffe2 neg x2, x3, asr #63
+ *[0-9a-f]+: 4b0303e2 neg w2, w3
+ *[0-9a-f]+: 4b0307e2 neg w2, w3, lsl #1
+ *[0-9a-f]+: 4b030fe2 neg w2, w3, lsl #3
+ *[0-9a-f]+: 4b031fe2 neg w2, w3, lsl #7
+ *[0-9a-f]+: 4b033fe2 neg w2, w3, lsl #15
+ *[0-9a-f]+: 4b037fe2 neg w2, w3, lsl #31
+ *[0-9a-f]+: 4b4303e2 neg w2, w3, lsr #0
+ *[0-9a-f]+: 4b4307e2 neg w2, w3, lsr #1
+ *[0-9a-f]+: 4b430fe2 neg w2, w3, lsr #3
+ *[0-9a-f]+: 4b431fe2 neg w2, w3, lsr #7
+ *[0-9a-f]+: 4b433fe2 neg w2, w3, lsr #15
+ *[0-9a-f]+: 4b437fe2 neg w2, w3, lsr #31
+ *[0-9a-f]+: 4b8303e2 neg w2, w3, asr #0
+ *[0-9a-f]+: 4b8307e2 neg w2, w3, asr #1
+ *[0-9a-f]+: 4b830fe2 neg w2, w3, asr #3
+ *[0-9a-f]+: 4b831fe2 neg w2, w3, asr #7
+ *[0-9a-f]+: 4b833fe2 neg w2, w3, asr #15
+ *[0-9a-f]+: 4b837fe2 neg w2, w3, asr #31
+ *[0-9a-f]+: eb03005f cmp x2, x3
+ *[0-9a-f]+: eb03045f cmp x2, x3, lsl #1
+ *[0-9a-f]+: eb030c5f cmp x2, x3, lsl #3
+ *[0-9a-f]+: eb031c5f cmp x2, x3, lsl #7
+ *[0-9a-f]+: eb033c5f cmp x2, x3, lsl #15
+ *[0-9a-f]+: eb037c5f cmp x2, x3, lsl #31
+ *[0-9a-f]+: eb03fc5f cmp x2, x3, lsl #63
+ *[0-9a-f]+: eb43005f cmp x2, x3, lsr #0
+ *[0-9a-f]+: eb43045f cmp x2, x3, lsr #1
+ *[0-9a-f]+: eb430c5f cmp x2, x3, lsr #3
+ *[0-9a-f]+: eb431c5f cmp x2, x3, lsr #7
+ *[0-9a-f]+: eb433c5f cmp x2, x3, lsr #15
+ *[0-9a-f]+: eb437c5f cmp x2, x3, lsr #31
+ *[0-9a-f]+: eb43fc5f cmp x2, x3, lsr #63
+ *[0-9a-f]+: eb83005f cmp x2, x3, asr #0
+ *[0-9a-f]+: eb83045f cmp x2, x3, asr #1
+ *[0-9a-f]+: eb830c5f cmp x2, x3, asr #3
+ *[0-9a-f]+: eb831c5f cmp x2, x3, asr #7
+ *[0-9a-f]+: eb833c5f cmp x2, x3, asr #15
+ *[0-9a-f]+: eb837c5f cmp x2, x3, asr #31
+ *[0-9a-f]+: eb83fc5f cmp x2, x3, asr #63
+ *[0-9a-f]+: eb23005f cmp x2, w3, uxtb
+ *[0-9a-f]+: eb23045f cmp x2, w3, uxtb #1
+ *[0-9a-f]+: eb23085f cmp x2, w3, uxtb #2
+ *[0-9a-f]+: eb230c5f cmp x2, w3, uxtb #3
+ *[0-9a-f]+: eb23105f cmp x2, w3, uxtb #4
+ *[0-9a-f]+: eb23205f cmp x2, w3, uxth
+ *[0-9a-f]+: eb23245f cmp x2, w3, uxth #1
+ *[0-9a-f]+: eb23285f cmp x2, w3, uxth #2
+ *[0-9a-f]+: eb232c5f cmp x2, w3, uxth #3
+ *[0-9a-f]+: eb23305f cmp x2, w3, uxth #4
+ *[0-9a-f]+: eb23405f cmp x2, w3, uxtw
+ *[0-9a-f]+: eb23445f cmp x2, w3, uxtw #1
+ *[0-9a-f]+: eb23485f cmp x2, w3, uxtw #2
+ *[0-9a-f]+: eb234c5f cmp x2, w3, uxtw #3
+ *[0-9a-f]+: eb23505f cmp x2, w3, uxtw #4
+ *[0-9a-f]+: eb23805f cmp x2, w3, sxtb
+ *[0-9a-f]+: eb23845f cmp x2, w3, sxtb #1
+ *[0-9a-f]+: eb23885f cmp x2, w3, sxtb #2
+ *[0-9a-f]+: eb238c5f cmp x2, w3, sxtb #3
+ *[0-9a-f]+: eb23905f cmp x2, w3, sxtb #4
+ *[0-9a-f]+: eb23a05f cmp x2, w3, sxth
+ *[0-9a-f]+: eb23a45f cmp x2, w3, sxth #1
+ *[0-9a-f]+: eb23a85f cmp x2, w3, sxth #2
+ *[0-9a-f]+: eb23ac5f cmp x2, w3, sxth #3
+ *[0-9a-f]+: eb23b05f cmp x2, w3, sxth #4
+ *[0-9a-f]+: eb23c05f cmp x2, w3, sxtw
+ *[0-9a-f]+: eb23c45f cmp x2, w3, sxtw #1
+ *[0-9a-f]+: eb23c85f cmp x2, w3, sxtw #2
+ *[0-9a-f]+: eb23cc5f cmp x2, w3, sxtw #3
+ *[0-9a-f]+: eb23d05f cmp x2, w3, sxtw #4
+ *[0-9a-f]+: 6b03005f cmp w2, w3
+ *[0-9a-f]+: 6b03045f cmp w2, w3, lsl #1
+ *[0-9a-f]+: 6b030c5f cmp w2, w3, lsl #3
+ *[0-9a-f]+: 6b031c5f cmp w2, w3, lsl #7
+ *[0-9a-f]+: 6b033c5f cmp w2, w3, lsl #15
+ *[0-9a-f]+: 6b037c5f cmp w2, w3, lsl #31
+ *[0-9a-f]+: 6b43005f cmp w2, w3, lsr #0
+ *[0-9a-f]+: 6b43045f cmp w2, w3, lsr #1
+ *[0-9a-f]+: 6b430c5f cmp w2, w3, lsr #3
+ *[0-9a-f]+: 6b431c5f cmp w2, w3, lsr #7
+ *[0-9a-f]+: 6b433c5f cmp w2, w3, lsr #15
+ *[0-9a-f]+: 6b437c5f cmp w2, w3, lsr #31
+ *[0-9a-f]+: 6b83005f cmp w2, w3, asr #0
+ *[0-9a-f]+: 6b83045f cmp w2, w3, asr #1
+ *[0-9a-f]+: 6b830c5f cmp w2, w3, asr #3
+ *[0-9a-f]+: 6b831c5f cmp w2, w3, asr #7
+ *[0-9a-f]+: 6b833c5f cmp w2, w3, asr #15
+ *[0-9a-f]+: 6b837c5f cmp w2, w3, asr #31
+ *[0-9a-f]+: 6b23005f cmp w2, w3, uxtb
+ *[0-9a-f]+: 6b23045f cmp w2, w3, uxtb #1
+ *[0-9a-f]+: 6b23085f cmp w2, w3, uxtb #2
+ *[0-9a-f]+: 6b230c5f cmp w2, w3, uxtb #3
+ *[0-9a-f]+: 6b23105f cmp w2, w3, uxtb #4
+ *[0-9a-f]+: 6b23205f cmp w2, w3, uxth
+ *[0-9a-f]+: 6b23245f cmp w2, w3, uxth #1
+ *[0-9a-f]+: 6b23285f cmp w2, w3, uxth #2
+ *[0-9a-f]+: 6b232c5f cmp w2, w3, uxth #3
+ *[0-9a-f]+: 6b23305f cmp w2, w3, uxth #4
+ *[0-9a-f]+: 6b23805f cmp w2, w3, sxtb
+ *[0-9a-f]+: 6b23845f cmp w2, w3, sxtb #1
+ *[0-9a-f]+: 6b23885f cmp w2, w3, sxtb #2
+ *[0-9a-f]+: 6b238c5f cmp w2, w3, sxtb #3
+ *[0-9a-f]+: 6b23905f cmp w2, w3, sxtb #4
+ *[0-9a-f]+: 6b23a05f cmp w2, w3, sxth
+ *[0-9a-f]+: 6b23a45f cmp w2, w3, sxth #1
+ *[0-9a-f]+: 6b23a85f cmp w2, w3, sxth #2
+ *[0-9a-f]+: 6b23ac5f cmp w2, w3, sxth #3
+ *[0-9a-f]+: 6b23b05f cmp w2, w3, sxth #4
+ *[0-9a-f]+: ab03005f cmn x2, x3
+ *[0-9a-f]+: ab03045f cmn x2, x3, lsl #1
+ *[0-9a-f]+: ab030c5f cmn x2, x3, lsl #3
+ *[0-9a-f]+: ab031c5f cmn x2, x3, lsl #7
+ *[0-9a-f]+: ab033c5f cmn x2, x3, lsl #15
+ *[0-9a-f]+: ab037c5f cmn x2, x3, lsl #31
+ *[0-9a-f]+: ab03fc5f cmn x2, x3, lsl #63
+ *[0-9a-f]+: ab43005f cmn x2, x3, lsr #0
+ *[0-9a-f]+: ab43045f cmn x2, x3, lsr #1
+ *[0-9a-f]+: ab430c5f cmn x2, x3, lsr #3
+ *[0-9a-f]+: ab431c5f cmn x2, x3, lsr #7
+ *[0-9a-f]+: ab433c5f cmn x2, x3, lsr #15
+ *[0-9a-f]+: ab437c5f cmn x2, x3, lsr #31
+ *[0-9a-f]+: ab43fc5f cmn x2, x3, lsr #63
+ *[0-9a-f]+: ab83005f cmn x2, x3, asr #0
+ *[0-9a-f]+: ab83045f cmn x2, x3, asr #1
+ *[0-9a-f]+: ab830c5f cmn x2, x3, asr #3
+ *[0-9a-f]+: ab831c5f cmn x2, x3, asr #7
+ *[0-9a-f]+: ab833c5f cmn x2, x3, asr #15
+ *[0-9a-f]+: ab837c5f cmn x2, x3, asr #31
+ *[0-9a-f]+: ab83fc5f cmn x2, x3, asr #63
+ *[0-9a-f]+: ab23005f cmn x2, w3, uxtb
+ *[0-9a-f]+: ab23045f cmn x2, w3, uxtb #1
+ *[0-9a-f]+: ab23085f cmn x2, w3, uxtb #2
+ *[0-9a-f]+: ab230c5f cmn x2, w3, uxtb #3
+ *[0-9a-f]+: ab23105f cmn x2, w3, uxtb #4
+ *[0-9a-f]+: ab23205f cmn x2, w3, uxth
+ *[0-9a-f]+: ab23245f cmn x2, w3, uxth #1
+ *[0-9a-f]+: ab23285f cmn x2, w3, uxth #2
+ *[0-9a-f]+: ab232c5f cmn x2, w3, uxth #3
+ *[0-9a-f]+: ab23305f cmn x2, w3, uxth #4
+ *[0-9a-f]+: ab23405f cmn x2, w3, uxtw
+ *[0-9a-f]+: ab23445f cmn x2, w3, uxtw #1
+ *[0-9a-f]+: ab23485f cmn x2, w3, uxtw #2
+ *[0-9a-f]+: ab234c5f cmn x2, w3, uxtw #3
+ *[0-9a-f]+: ab23505f cmn x2, w3, uxtw #4
+ *[0-9a-f]+: ab23805f cmn x2, w3, sxtb
+ *[0-9a-f]+: ab23845f cmn x2, w3, sxtb #1
+ *[0-9a-f]+: ab23885f cmn x2, w3, sxtb #2
+ *[0-9a-f]+: ab238c5f cmn x2, w3, sxtb #3
+ *[0-9a-f]+: ab23905f cmn x2, w3, sxtb #4
+ *[0-9a-f]+: ab23a05f cmn x2, w3, sxth
+ *[0-9a-f]+: ab23a45f cmn x2, w3, sxth #1
+ *[0-9a-f]+: ab23a85f cmn x2, w3, sxth #2
+ *[0-9a-f]+: ab23ac5f cmn x2, w3, sxth #3
+ *[0-9a-f]+: ab23b05f cmn x2, w3, sxth #4
+ *[0-9a-f]+: ab23c05f cmn x2, w3, sxtw
+ *[0-9a-f]+: ab23c45f cmn x2, w3, sxtw #1
+ *[0-9a-f]+: ab23c85f cmn x2, w3, sxtw #2
+ *[0-9a-f]+: ab23cc5f cmn x2, w3, sxtw #3
+ *[0-9a-f]+: ab23d05f cmn x2, w3, sxtw #4
+ *[0-9a-f]+: 2b03005f cmn w2, w3
+ *[0-9a-f]+: 2b03045f cmn w2, w3, lsl #1
+ *[0-9a-f]+: 2b030c5f cmn w2, w3, lsl #3
+ *[0-9a-f]+: 2b031c5f cmn w2, w3, lsl #7
+ *[0-9a-f]+: 2b033c5f cmn w2, w3, lsl #15
+ *[0-9a-f]+: 2b037c5f cmn w2, w3, lsl #31
+ *[0-9a-f]+: 2b43005f cmn w2, w3, lsr #0
+ *[0-9a-f]+: 2b43045f cmn w2, w3, lsr #1
+ *[0-9a-f]+: 2b430c5f cmn w2, w3, lsr #3
+ *[0-9a-f]+: 2b431c5f cmn w2, w3, lsr #7
+ *[0-9a-f]+: 2b433c5f cmn w2, w3, lsr #15
+ *[0-9a-f]+: 2b437c5f cmn w2, w3, lsr #31
+ *[0-9a-f]+: 2b83005f cmn w2, w3, asr #0
+ *[0-9a-f]+: 2b83045f cmn w2, w3, asr #1
+ *[0-9a-f]+: 2b830c5f cmn w2, w3, asr #3
+ *[0-9a-f]+: 2b831c5f cmn w2, w3, asr #7
+ *[0-9a-f]+: 2b833c5f cmn w2, w3, asr #15
+ *[0-9a-f]+: 2b837c5f cmn w2, w3, asr #31
+ *[0-9a-f]+: 2b23005f cmn w2, w3, uxtb
+ *[0-9a-f]+: 2b23045f cmn w2, w3, uxtb #1
+ *[0-9a-f]+: 2b23085f cmn w2, w3, uxtb #2
+ *[0-9a-f]+: 2b230c5f cmn w2, w3, uxtb #3
+ *[0-9a-f]+: 2b23105f cmn w2, w3, uxtb #4
+ *[0-9a-f]+: 2b23205f cmn w2, w3, uxth
+ *[0-9a-f]+: 2b23245f cmn w2, w3, uxth #1
+ *[0-9a-f]+: 2b23285f cmn w2, w3, uxth #2
+ *[0-9a-f]+: 2b232c5f cmn w2, w3, uxth #3
+ *[0-9a-f]+: 2b23305f cmn w2, w3, uxth #4
+ *[0-9a-f]+: 2b23805f cmn w2, w3, sxtb
+ *[0-9a-f]+: 2b23845f cmn w2, w3, sxtb #1
+ *[0-9a-f]+: 2b23885f cmn w2, w3, sxtb #2
+ *[0-9a-f]+: 2b238c5f cmn w2, w3, sxtb #3
+ *[0-9a-f]+: 2b23905f cmn w2, w3, sxtb #4
+ *[0-9a-f]+: 2b23a05f cmn w2, w3, sxth
+ *[0-9a-f]+: 2b23a45f cmn w2, w3, sxth #1
+ *[0-9a-f]+: 2b23a85f cmn w2, w3, sxth #2
+ *[0-9a-f]+: 2b23ac5f cmn w2, w3, sxth #3
+ *[0-9a-f]+: 2b23b05f cmn w2, w3, sxth #4
diff --git a/gas/testsuite/gas/aarch64/shifted.s b/gas/testsuite/gas/aarch64/shifted.s
index 2b05454..b513a6c 100644
--- a/gas/testsuite/gas/aarch64/shifted.s
+++ b/gas/testsuite/gas/aarch64/shifted.s
@@ -161,6 +161,9 @@ func:
logical bic
logical orn
logical eon
+
+ logical ands
+ logical bics
arith3 add
arith3 sub
diff --git a/gas/testsuite/gas/aarch64/sme-5.d b/gas/testsuite/gas/aarch64/sme-5.d
index 6667534..f6ef16d 100644
--- a/gas/testsuite/gas/aarch64/sme-5.d
+++ b/gas/testsuite/gas/aarch64/sme-5.d
@@ -87,7 +87,3 @@ Disassembly of section \.text:
134: e1dffe2f ld1q {za15v.q\[w15, 0\]}, p7/z, \[x17, xzr, lsl #4\]
138: e000ffef ld1b {za0v.b\[w15, 15\]}, p7/z, \[sp, x0\]
13c: e0010000 ld1b {za0h.b\[w12, 0\]}, p0/z, \[x0, x1\]
- 140: e0410000 ld1h {za0h.h\[w12, 0\]}, p0/z, \[x0, x1, lsl #1\]
- 144: e0819c0f ld1w {za3v.s\[w12, 3\]}, p7/z, \[x0, x1, lsl #2\]
- 148: e0c10000 ld1d {za0h.d\[w12, 0\]}, p0/z, \[x0, x1, lsl #3\]
- 14c: e1c18000 ld1q {za0v.q\[w12, 0\]}, p0/z, \[x0, x1, lsl #4\]
diff --git a/gas/testsuite/gas/aarch64/sme-5.s b/gas/testsuite/gas/aarch64/sme-5.s
index e0d79f6..398153a 100644
--- a/gas/testsuite/gas/aarch64/sme-5.s
+++ b/gas/testsuite/gas/aarch64/sme-5.s
@@ -95,7 +95,3 @@ ld1q {za15v.q[bar, #0]}, p7/z, [x17]
/* Optional LSL operator. */
ld1b {za0v.b[w15, 15]}, p7/z, [sp, x0, lsl #0]
ld1b {za0h.b[w12, 0]}, p0/z, [x0, x1]
-ld1h {za0h.h[w12, 0]}, p0/z, [x0, x1]
-ld1w {za3v.s[w12, 3]}, p7/z, [x0, x1]
-ld1d {za0h.d[w12, 0]}, p0/z, [x0, x1]
-ld1q {za0v.q[w12, 0]}, p0/z, [x0, x1]
diff --git a/gas/testsuite/gas/aarch64/sme-f16f16-2-bad.s b/gas/testsuite/gas/aarch64/sme-f16f16-2-bad.s
index 4bce380..612d2c5 100644
--- a/gas/testsuite/gas/aarch64/sme-f16f16-2-bad.s
+++ b/gas/testsuite/gas/aarch64/sme-f16f16-2-bad.s
@@ -1,5 +1,4 @@
/* FMOPA. */
-fmopa ZA0.s, p0/m, p0/m, z0.h, z0.h
fmopa ZA1.h, p0, p0/m, z0.h, z0.h
fmopa ZA0.h, p7/m, p0, z0.h, z0.h
fmopa ZA0.h, p0/m, p7/m, z0.s, z0.s
@@ -8,7 +7,6 @@ fmopa ZA2.h, p0/m, p8/m, z0.s, z31.b
fmopa ZA4.h, p15/m, p11/m, z0.s, z31.b
/* FMOPS. */
-fmops ZA0.s, p0/m, p0/m, z0.h, z0.h
fmops ZA1.h, p0, p0/m, z0.h, z0.h
fmops ZA0.h, p7/m, p0, z0.h, z0.h
fmops ZA0.h, p0/m, p7/m, z0.s, z0.s
diff --git a/gas/testsuite/gas/aarch64/sme.d b/gas/testsuite/gas/aarch64/sme.d
index f5cf1f0..9317163 100644
--- a/gas/testsuite/gas/aarch64/sme.d
+++ b/gas/testsuite/gas/aarch64/sme.d
@@ -39,10 +39,10 @@ Disassembly of section \.text:
74: 80833851 fmops za1.s, p6/m, p1/m, z2.s, z3.s
78: 80825472 fmops za2.s, p5/m, p2/m, z3.s, z2.s
7c: 80817093 fmops za3.s, p4/m, p3/m, z4.s, z1.s
- 80: 80842030 fmops za0.s, p0/m, p1/m, z1.s, z4.s
- 84: 80836851 fmops za1.s, p2/m, p3/m, z2.s, z3.s
- 88: 8082b072 fmops za2.s, p4/m, p5/m, z3.s, z2.s
- 8c: 8081f893 fmops za3.s, p6/m, p7/m, z4.s, z1.s
+ 80: 81a42030 fmops za0.s, p0/m, p1/m, z1.h, z4.h
+ 84: 81a36851 fmops za1.s, p2/m, p3/m, z2.h, z3.h
+ 88: 81a2b072 fmops za2.s, p4/m, p5/m, z3.h, z2.h
+ 8c: 81a1f893 fmops za3.s, p6/m, p7/m, z4.h, z1.h
90: a0842020 smopa za0.s, p0/m, p1/m, z1.b, z4.b
94: a0836841 smopa za1.s, p2/m, p3/m, z2.b, z3.b
98: a082b062 smopa za2.s, p4/m, p5/m, z3.b, z2.b
diff --git a/gas/testsuite/gas/aarch64/sme.s b/gas/testsuite/gas/aarch64/sme.s
index 659f141..e4e5ed6 100644
--- a/gas/testsuite/gas/aarch64/sme.s
+++ b/gas/testsuite/gas/aarch64/sme.s
@@ -47,10 +47,10 @@ fmops za2.s, p5/m, p2/m, z3.s, z2.s
fmops za3.s, p4/m, p3/m, z4.s, z1.s
/* FMOPS (widening) */
-fmops za0.s, p0/m, p1/m, z1.s, z4.s
-fmops za1.s, p2/m, p3/m, z2.s, z3.s
-fmops za2.s, p4/m, p5/m, z3.s, z2.s
-fmops za3.s, p6/m, p7/m, z4.s, z1.s
+fmops za0.s, p0/m, p1/m, z1.h, z4.h
+fmops za1.s, p2/m, p3/m, z2.h, z3.h
+fmops za2.s, p4/m, p5/m, z3.h, z2.h
+fmops za3.s, p6/m, p7/m, z4.h, z1.h
/* SMOPA 32-bit variant. */
smopa za0.s, p0/m, p1/m, z1.b, z4.b
diff --git a/gas/testsuite/gas/aarch64/sve-b16b16-sve2-bad-2.l b/gas/testsuite/gas/aarch64/sve-b16b16-sve2-bad-2.l
index 83f00f5..2ede0c9 100644
--- a/gas/testsuite/gas/aarch64/sve-b16b16-sve2-bad-2.l
+++ b/gas/testsuite/gas/aarch64/sve-b16b16-sve2-bad-2.l
@@ -237,8 +237,8 @@
.*: Error: operand mismatch -- `bfmul z31.b,z31.s,z31.d\[8\]'
.*: Info: did you mean this\?
.*: Info: bfmul z31.h, z31.h, z31.h\[8\]
-.*: Error: expected an SVE vector register at operand 1 -- `bfmul { ?z0.h ?},z0.h,z0.h\[1\]'
-.*: Error: expected an SVE vector register at operand 1 -- `bfmul { ?z0.h-z0.h ?},z0.h\[2\]'
+.*: Error: missing braces at operand 2 -- `bfmul { ?z0.h ?},z0.h,z0.h\[1\]'
+.*: Error: invalid range in vector register list at operand 1 -- `bfmul { ?z0.h-z0.h ?},z0.h\[2\]'
.*: Error: expected an SVE predicate register at operand 2 -- `bfmul z0.h,z0.h\[3\]'
.*: Error: operand mismatch -- `bfsub z0.b,z0.h,z0.h'
.*: Info: did you mean this\?
diff --git a/gas/testsuite/gas/aarch64/sve-bfscale-bad.d b/gas/testsuite/gas/aarch64/sve-bfscale-bad.d
new file mode 100644
index 0000000..297fb30
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-bfscale-bad.d
@@ -0,0 +1,4 @@
+#name: Invalid SVE_BFSCALE instructions
+#as: -march=armv8-a+sve-bfscale+sme2
+#source: sve-bfscale-bad.s
+#error_output: sve-bfscale-bad.l
diff --git a/gas/testsuite/gas/aarch64/sve-bfscale-bad.l b/gas/testsuite/gas/aarch64/sve-bfscale-bad.l
new file mode 100644
index 0000000..7cddb25
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-bfscale-bad.l
@@ -0,0 +1,26 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: operand 3 must be the same register as operand 1 -- `bfscale z0\.h,p0/m,z1\.h,z0\.h'
+[^ :]+:[0-9]+: Error: operand mismatch -- `bfscale z0\.h,p0/z,z0\.h,z0\.h'
+[^ :]+:[0-9]+: Info: did you mean this\?
+[^ :]+:[0-9]+: Info: bfscale z0\.h, p0/m, z0\.h, z0\.h
+[^ :]+:[0-9]+: Error: operand 2 must be the same register as operand 1 -- `bfscale { ?z0\.h-z1\.h ?},{ ?z0\.h-z2\.h ?},z0\.h'
+[^ :]+:[0-9]+: Error: expected a list of 2 or 4 registers at operand 1 -- `bfscale { ?z0\.h-z2\.h ?},{ ?z0\.h-z2\.h ?},z0\.h'
+[^ :]+:[0-9]+: Error: too many registers in vector register list at operand 1 -- `bfscale { ?z0\.h-z4\.h ?},{ ?z0\.h-z4\.h ?},z0\.h'
+[^ :]+:[0-9]+: Error: operand 2 must be the same register as operand 1 -- `bfscale { ?z0\.h-z1\.h ?},{ ?z0\.h-z2\.h ?},{ ?z0\.h-z1\.h ?}'
+[^ :]+:[0-9]+: Error: expected a list of 2 or 4 registers at operand 1 -- `bfscale { ?z0\.h-z2\.h ?},{ ?z0\.h-z2\.h ?},{ ?z0\.h-z1\.h ?}'
+[^ :]+:[0-9]+: Error: too many registers in vector register list at operand 1 -- `bfscale { ?z0\.h-z4\.h ?},{ ?z0\.h-z4\.h ?},{ ?z0\.h-z1\.h ?}'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 3 -- `bfscale { ?z0\.h-z1\.h ?},{ ?z0\.h-z1\.h ?},{ ?z0\.h-z2\.h ?}'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 3 -- `bfscale { ?z0\.h-z3\.h ?},{ ?z0\.h-z3\.h ?},{ ?z0\.h-z1\.h ?}'
+[^ :]+:[0-9]+: Error: too many registers in vector register list at operand 3 -- `bfscale { ?z0\.h-z3\.h ?},{ ?z0\.h-z3\.h ?},{ ?z0\.h-z4\.h ?}'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 2 -- `bfmul { ?z0\.h-z1\.h ?},{ ?z0\.h-z2\.h ?},z0\.h'
+[^ :]+:[0-9]+: Error: expected a list of 2 or 4 registers at operand 1 -- `bfmul { ?z0\.h-z2\.h ?},{ ?z0\.h-z1\.h ?},z0\.h'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 2 -- `bfmul { ?z0\.h-z3\.h ?},{ ?z0\.h-z2\.h ?},z0\.h'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 2 -- `bfmul { ?z0\.h-z3\.h ?},{ ?z0\.h-z1\.h ?},z0\.h'
+[^ :]+:[0-9]+: Error: z0-z15 expected at operand 3 -- `bfmul { ?z0\.h-z1\.h ?},{ ?z0\.h-z1\.h ?},z16\.h'
+[^ :]+:[0-9]+: Error: z0-z15 expected at operand 3 -- `bfmul { ?z0\.h-z3\.h ?},{ ?z0\.h-z3\.h ?},z16\.h'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 2 -- `bfmul { ?z0\.h-z1\.h ?},{ ?z0\.h-z2\.h ?},{ ?z0\.h-z1\.h ?}'
+[^ :]+:[0-9]+: Error: expected a list of 2 or 4 registers at operand 1 -- `bfmul { ?z0\.h-z2\.h ?},{ ?z0\.h-z1\.h ?},{ ?z0\.h-z1\.h ?}'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 2 -- `bfmul { ?z0\.h-z3\.h ?},{ ?z0\.h-z2\.h ?},{ ?z0\.h-z3\.h ?}'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 2 -- `bfmul { ?z0\.h-z3\.h ?},{ ?z0\.h-z1\.h ?},{ ?z0\.h-z3\.h ?}'
+[^ :]+:[0-9]+: Error: expected a list of 2 registers at operand 3 -- `bfmul { ?z0\.h-z1\.h ?},{ ?z0\.h-z1\.h ?},{ ?z0\.h-z2\.h ?}'
+[^ :]+:[0-9]+: Error: expected a list of 4 registers at operand 3 -- `bfmul { ?z0\.h-z3\.h ?},{ ?z0\.h-z3\.h ?},{ ?z0\.h-z2\.h ?}'
diff --git a/gas/testsuite/gas/aarch64/sve-bfscale-bad.s b/gas/testsuite/gas/aarch64/sve-bfscale-bad.s
new file mode 100644
index 0000000..bcb8867
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-bfscale-bad.s
@@ -0,0 +1,27 @@
+bfscale:
+ bfscale z0.h, p0/m, z1.h, z0.h
+ bfscale z0.h, p0/z, z0.h, z0.h
+ bfscale {z0.h-z1.h}, {z0.h-z2.h}, z0.h
+ bfscale {z0.h-z2.h}, {z0.h-z2.h}, z0.h
+ bfscale {z0.h-z4.h}, {z0.h-z4.h}, z0.h
+ bfscale {z0.h-z1.h}, {z0.h-z2.h}, {z0.h-z1.h}
+ bfscale {z0.h-z2.h}, {z0.h-z2.h}, {z0.h-z1.h}
+ bfscale {z0.h-z4.h}, {z0.h-z4.h}, {z0.h-z1.h}
+ bfscale {z0.h-z1.h}, {z0.h-z1.h}, {z0.h-z2.h}
+ bfscale {z0.h-z3.h}, {z0.h-z3.h}, {z0.h-z1.h}
+ bfscale {z0.h-z3.h}, {z0.h-z3.h}, {z0.h-z4.h}
+
+bfmul:
+ bfmul {z0.h-z1.h}, {z0.h-z2.h}, z0.h
+ bfmul {z0.h-z2.h}, {z0.h-z1.h}, z0.h
+ bfmul {z0.h-z3.h}, {z0.h-z2.h}, z0.h
+ bfmul {z0.h-z3.h}, {z0.h-z1.h}, z0.h
+ bfmul {z0.h-z1.h}, {z0.h-z1.h}, z16.h
+ bfmul {z0.h-z3.h}, {z0.h-z3.h}, z16.h
+ bfmul {z0.h-z1.h}, {z0.h-z2.h}, {z0.h-z1.h}
+ bfmul {z0.h-z2.h}, {z0.h-z1.h}, {z0.h-z1.h}
+ bfmul {z0.h-z3.h}, {z0.h-z2.h}, {z0.h-z3.h}
+ bfmul {z0.h-z3.h}, {z0.h-z1.h}, {z0.h-z3.h}
+ bfmul {z0.h-z1.h}, {z0.h-z1.h}, {z0.h-z2.h}
+ bfmul {z0.h-z3.h}, {z0.h-z3.h}, {z0.h-z2.h}
+ bfmul {z0.h-z3.h}, {z0.h-z3.h}, {z0.h-z3.h}
diff --git a/gas/testsuite/gas/aarch64/sve-bfscale-sme2-bad.d b/gas/testsuite/gas/aarch64/sve-bfscale-sme2-bad.d
new file mode 100644
index 0000000..ad6d365
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-bfscale-sme2-bad.d
@@ -0,0 +1,4 @@
+#name: Negative SVE_BFSCALE test with missing +sme2 flag.
+#as: -march=armv8-a+sve-bfscale
+#source: sve-bfscale-sme2.s
+#error_output: sve-bfscale-sme2-bad.l
diff --git a/gas/testsuite/gas/aarch64/sve-bfscale-sme2-bad.l b/gas/testsuite/gas/aarch64/sve-bfscale-sme2-bad.l
new file mode 100644
index 0000000..79ae851
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-bfscale-sme2-bad.l
@@ -0,0 +1,41 @@
+[^ :]+: Assembler messages:
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale z0\.h,p0/m,z0\.h,z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale z0\.h,p0/m,z0\.h,z31\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale z0\.h,p7/m,z0\.h,z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale z0\.h,p7/m,z0\.h,z31\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale z31\.h,p0/m,z31\.h,z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale z31\.h,p0/m,z31\.h,z31\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale z31\.h,p7/m,z31\.h,z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale z31\.h,p7/m,z31\.h,z31\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale { ?z0\.h-z1\.h ?},{ ?z0\.h-z1\.h ?},z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale { ?z0\.h-z1\.h ?},{ ?z0\.h-z1\.h ?},z15\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale { ?z30\.h-z31\.h ?},{ ?z30\.h-z31\.h ?},z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale { ?z30\.h-z31\.h ?},{ ?z30\.h-z31\.h ?},z15\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale { ?z0\.h-z3\.h ?},{ ?z0\.h-z3\.h ?},z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale { ?z0\.h-z3\.h ?},{ ?z0\.h-z3\.h ?},z15\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale { ?z28\.h-z31\.h ?},{ ?z28\.h-z31\.h ?},z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale { ?z28\.h-z31\.h ?},{ ?z28\.h-z31\.h ?},z15\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale { ?z0\.h-z1\.h ?},{ ?z0\.h-z1\.h ?},{ ?z0\.h-z1\.h ?}'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale { ?z0\.h-z1\.h ?},{ ?z0\.h-z1\.h ?},{ ?z30\.h-z31\.h ?}'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale { ?z30\.h-z31\.h ?},{ ?z30\.h-z31\.h ?},{ ?z0\.h-z1\.h ?}'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale { ?z30\.h-z31\.h ?},{ ?z30\.h-z31\.h ?},{ ?z30\.h-z31\.h ?}'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale { ?z0\.h-z3\.h ?},{ ?z0\.h-z3\.h ?},{ ?z0\.h-z3\.h ?}'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale { ?z0\.h-z3\.h ?},{ ?z0\.h-z3\.h ?},{ ?z28\.h-z31\.h ?}'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale { ?z28\.h-z31\.h ?},{ ?z28\.h-z31\.h ?},{ ?z0\.h-z3\.h ?}'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfscale { ?z28\.h-z31\.h ?},{ ?z28\.h-z31\.h ?},{ ?z28\.h-z31\.h ?}'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfmul { ?z0\.h-z1\.h ?},{ ?z0\.h-z1\.h ?},z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfmul { ?z0\.h-z1\.h ?},{ ?z0\.h-z1\.h ?},z15\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfmul { ?z30\.h-z31\.h ?},{ ?z30\.h-z31\.h ?},z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfmul { ?z30\.h-z31\.h ?},{ ?z30\.h-z31\.h ?},z15\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfmul { ?z0\.h-z3\.h ?},{ ?z0\.h-z3\.h ?},z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfmul { ?z0\.h-z3\.h ?},{ ?z0\.h-z3\.h ?},z15\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfmul { ?z28\.h-z31\.h ?},{ ?z28\.h-z31\.h ?},z0\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfmul { ?z28\.h-z31\.h ?},{ ?z28\.h-z31\.h ?},z15\.h'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfmul { ?z0\.h-z1\.h ?},{ ?z0\.h-z1\.h ?},{ ?z0\.h-z1\.h ?}'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfmul { ?z0\.h-z1\.h ?},{ ?z0\.h-z1\.h ?},{ ?z30\.h-z31\.h ?}'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfmul { ?z30\.h-z31\.h ?},{ ?z30\.h-z31\.h ?},{ ?z0\.h-z1\.h ?}'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfmul { ?z30\.h-z31\.h ?},{ ?z30\.h-z31\.h ?},{ ?z30\.h-z31\.h ?}'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfmul { ?z0\.h-z3\.h ?},{ ?z0\.h-z3\.h ?},{ ?z0\.h-z3\.h ?}'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfmul { ?z0\.h-z3\.h ?},{ ?z0\.h-z3\.h ?},{ ?z28\.h-z31\.h ?}'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfmul { ?z28\.h-z31\.h ?},{ ?z28\.h-z31\.h ?},{ ?z0\.h-z3\.h ?}'
+[^ :]+:[0-9]+: Error: selected processor does not support `bfmul { ?z28\.h-z31\.h ?},{ ?z28\.h-z31\.h ?},{ ?z28\.h-z31\.h ?}'
diff --git a/gas/testsuite/gas/aarch64/sve-bfscale-sme2.d b/gas/testsuite/gas/aarch64/sve-bfscale-sme2.d
new file mode 100644
index 0000000..84b7647
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-bfscale-sme2.d
@@ -0,0 +1,66 @@
+#name: SVE_BFSCALE + SME2 instructions test
+#as: -march=armv8-a+sve-bfscale+sme2
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section .*:
+
+.* <bfscale>:
+.*: 65098000 bfscale z0.h, p0/m, z0.h, z0.h
+.*: 650983e0 bfscale z0.h, p0/m, z0.h, z31.h
+.*: 65099c00 bfscale z0.h, p7/m, z0.h, z0.h
+.*: 65099fe0 bfscale z0.h, p7/m, z0.h, z31.h
+.*: 6509801f bfscale z31.h, p0/m, z31.h, z0.h
+.*: 650983ff bfscale z31.h, p0/m, z31.h, z31.h
+.*: 65099c1f bfscale z31.h, p7/m, z31.h, z0.h
+.*: 65099fff bfscale z31.h, p7/m, z31.h, z31.h
+
+.* <bfscale_2x1>:
+.*: c120a180 bfscale {z0.h-z1.h}, {z0.h-z1.h}, z0.h
+.*: c12fa180 bfscale {z0.h-z1.h}, {z0.h-z1.h}, z15.h
+.*: c120a19e bfscale {z30.h-z31.h}, {z30.h-z31.h}, z0.h
+.*: c12fa19e bfscale {z30.h-z31.h}, {z30.h-z31.h}, z15.h
+
+.* <bfscale_4x1>:
+.*: c120a980 bfscale {z0.h-z3.h}, {z0.h-z3.h}, z0.h
+.*: c12fa980 bfscale {z0.h-z3.h}, {z0.h-z3.h}, z15.h
+.*: c120a99c bfscale {z28.h-z31.h}, {z28.h-z31.h}, z0.h
+.*: c12fa99c bfscale {z28.h-z31.h}, {z28.h-z31.h}, z15.h
+
+.* <bfscale_2x2>:
+.*: c120b180 bfscale {z0.h-z1.h}, {z0.h-z1.h}, {z0.h-z1.h}
+.*: c13eb180 bfscale {z0.h-z1.h}, {z0.h-z1.h}, {z30.h-z31.h}
+.*: c120b19e bfscale {z30.h-z31.h}, {z30.h-z31.h}, {z0.h-z1.h}
+.*: c13eb19e bfscale {z30.h-z31.h}, {z30.h-z31.h}, {z30.h-z31.h}
+
+.* <bfscale_4x4>:
+.*: c120b980 bfscale {z0.h-z3.h}, {z0.h-z3.h}, {z0.h-z3.h}
+.*: c13cb980 bfscale {z0.h-z3.h}, {z0.h-z3.h}, {z28.h-z31.h}
+.*: c120b99c bfscale {z28.h-z31.h}, {z28.h-z31.h}, {z0.h-z3.h}
+.*: c13cb99c bfscale {z28.h-z31.h}, {z28.h-z31.h}, {z28.h-z31.h}
+
+.* <bfmul_2x1>:
+.*: c120e800 bfmul {z0.h-z1.h}, {z0.h-z1.h}, z0.h
+.*: c13ee800 bfmul {z0.h-z1.h}, {z0.h-z1.h}, z15.h
+.*: c120ebde bfmul {z30.h-z31.h}, {z30.h-z31.h}, z0.h
+.*: c13eebde bfmul {z30.h-z31.h}, {z30.h-z31.h}, z15.h
+
+.* <bfmul_4x1>:
+.*: c121e800 bfmul {z0.h-z3.h}, {z0.h-z3.h}, z0.h
+.*: c13fe800 bfmul {z0.h-z3.h}, {z0.h-z3.h}, z15.h
+.*: c121eb9c bfmul {z28.h-z31.h}, {z28.h-z31.h}, z0.h
+.*: c13feb9c bfmul {z28.h-z31.h}, {z28.h-z31.h}, z15.h
+
+.* <bfmul_2x2>:
+.*: c120e400 bfmul {z0.h-z1.h}, {z0.h-z1.h}, {z0.h-z1.h}
+.*: c13ee400 bfmul {z0.h-z1.h}, {z0.h-z1.h}, {z30.h-z31.h}
+.*: c120e7de bfmul {z30.h-z31.h}, {z30.h-z31.h}, {z0.h-z1.h}
+.*: c13ee7de bfmul {z30.h-z31.h}, {z30.h-z31.h}, {z30.h-z31.h}
+
+.* <bfmul_4x4>:
+.*: c121e400 bfmul {z0.h-z3.h}, {z0.h-z3.h}, {z0.h-z3.h}
+.*: c13de400 bfmul {z0.h-z3.h}, {z0.h-z3.h}, {z28.h-z31.h}
+.*: c121e79c bfmul {z28.h-z31.h}, {z28.h-z31.h}, {z0.h-z3.h}
+.*: c13de79c bfmul {z28.h-z31.h}, {z28.h-z31.h}, {z28.h-z31.h}
diff --git a/gas/testsuite/gas/aarch64/sve-bfscale-sme2.s b/gas/testsuite/gas/aarch64/sve-bfscale-sme2.s
new file mode 100644
index 0000000..46bc6c6
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-bfscale-sme2.s
@@ -0,0 +1,57 @@
+bfscale:
+ bfscale z0.h, p0/m, z0.h, z0.h
+ bfscale z0.h, p0/m, z0.h, z31.h
+ bfscale z0.h, p7/m, z0.h, z0.h
+ bfscale z0.h, p7/m, z0.h, z31.h
+ bfscale z31.h, p0/m, z31.h, z0.h
+ bfscale z31.h, p0/m, z31.h, z31.h
+ bfscale z31.h, p7/m, z31.h, z0.h
+ bfscale z31.h, p7/m, z31.h, z31.h
+
+bfscale_2x1:
+ bfscale {z0.h-z1.h}, {z0.h-z1.h}, z0.h
+ bfscale {z0.h-z1.h}, {z0.h-z1.h}, z15.h
+ bfscale {z30.h-z31.h}, {z30.h-z31.h}, z0.h
+ bfscale {z30.h-z31.h}, {z30.h-z31.h}, z15.h
+
+bfscale_4x1:
+ bfscale {z0.h-z3.h}, {z0.h-z3.h}, z0.h
+ bfscale {z0.h-z3.h}, {z0.h-z3.h}, z15.h
+ bfscale {z28.h-z31.h}, {z28.h-z31.h}, z0.h
+ bfscale {z28.h-z31.h}, {z28.h-z31.h}, z15.h
+
+bfscale_2x2:
+ bfscale {z0.h-z1.h}, {z0.h-z1.h}, {z0.h-z1.h}
+ bfscale {z0.h-z1.h}, {z0.h-z1.h}, {z30.h-z31.h}
+ bfscale {z30.h-z31.h}, {z30.h-z31.h}, {z0.h-z1.h}
+ bfscale {z30.h-z31.h}, {z30.h-z31.h}, {z30.h-z31.h}
+
+bfscale_4x4:
+ bfscale {z0.h-z3.h}, {z0.h-z3.h}, {z0.h-z3.h}
+ bfscale {z0.h-z3.h}, {z0.h-z3.h}, {z28.h-z31.h}
+ bfscale {z28.h-z31.h}, {z28.h-z31.h}, {z0.h-z3.h}
+ bfscale {z28.h-z31.h}, {z28.h-z31.h}, {z28.h-z31.h}
+
+bfmul_2x1:
+ bfmul {z0.h-z1.h}, {z0.h-z1.h}, z0.h
+ bfmul {z0.h-z1.h}, {z0.h-z1.h}, z15.h
+ bfmul {z30.h-z31.h}, {z30.h-z31.h}, z0.h
+ bfmul {z30.h-z31.h}, {z30.h-z31.h}, z15.h
+
+bfmul_4x1:
+ bfmul {z0.h-z3.h}, {z0.h-z3.h}, z0.h
+ bfmul {z0.h-z3.h}, {z0.h-z3.h}, z15.h
+ bfmul {z28.h-z31.h}, {z28.h-z31.h}, z0.h
+ bfmul {z28.h-z31.h}, {z28.h-z31.h}, z15.h
+
+bfmul_2x2:
+ bfmul {z0.h-z1.h}, {z0.h-z1.h}, {z0.h-z1.h}
+ bfmul {z0.h-z1.h}, {z0.h-z1.h}, {z30.h-z31.h}
+ bfmul {z30.h-z31.h}, {z30.h-z31.h}, {z0.h-z1.h}
+ bfmul {z30.h-z31.h}, {z30.h-z31.h}, {z30.h-z31.h}
+
+bfmul_4x4:
+ bfmul {z0.h-z3.h}, {z0.h-z3.h}, {z0.h-z3.h}
+ bfmul {z0.h-z3.h}, {z0.h-z3.h}, {z28.h-z31.h}
+ bfmul {z28.h-z31.h}, {z28.h-z31.h}, {z0.h-z3.h}
+ bfmul {z28.h-z31.h}, {z28.h-z31.h}, {z28.h-z31.h}
diff --git a/gas/testsuite/gas/aarch64/sve-bfscale-sve2.d b/gas/testsuite/gas/aarch64/sve-bfscale-sve2.d
new file mode 100644
index 0000000..874dda0
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-bfscale-sve2.d
@@ -0,0 +1,18 @@
+#name: FEAT_SVE_BFSCALE instruction test
+#as: -march=armv8-a+sve-bfscale+sve2
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section .*:
+
+.* <bfscale>:
+.*: 65098000 bfscale z0.h, p0/m, z0.h, z0.h
+.*: 650983e0 bfscale z0.h, p0/m, z0.h, z31.h
+.*: 65099c00 bfscale z0.h, p7/m, z0.h, z0.h
+.*: 65099fe0 bfscale z0.h, p7/m, z0.h, z31.h
+.*: 6509801f bfscale z31.h, p0/m, z31.h, z0.h
+.*: 650983ff bfscale z31.h, p0/m, z31.h, z31.h
+.*: 65099c1f bfscale z31.h, p7/m, z31.h, z0.h
+.*: 65099fff bfscale z31.h, p7/m, z31.h, z31.h
diff --git a/gas/testsuite/gas/aarch64/sve-bfscale-sve2.s b/gas/testsuite/gas/aarch64/sve-bfscale-sve2.s
new file mode 100644
index 0000000..3315524
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-bfscale-sve2.s
@@ -0,0 +1,9 @@
+bfscale:
+ bfscale z0.h, p0/m, z0.h, z0.h
+ bfscale z0.h, p0/m, z0.h, z31.h
+ bfscale z0.h, p7/m, z0.h, z0.h
+ bfscale z0.h, p7/m, z0.h, z31.h
+ bfscale z31.h, p0/m, z31.h, z0.h
+ bfscale z31.h, p0/m, z31.h, z31.h
+ bfscale z31.h, p7/m, z31.h, z0.h
+ bfscale z31.h, p7/m, z31.h, z31.h
diff --git a/gas/testsuite/gas/aarch64/sve-f16f32mm-bad.d b/gas/testsuite/gas/aarch64/sve-f16f32mm-bad.d
new file mode 100644
index 0000000..3adce33
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-f16f32mm-bad.d
@@ -0,0 +1,4 @@
+#name: Illegal test of SVE_F16F32MM FMMLA instruction
+#as: -march=armv8-a
+#source: sve-f16f32mm.s
+#error_output: sve-f16f32mm-bad.l
diff --git a/gas/testsuite/gas/aarch64/sve-f16f32mm-bad.l b/gas/testsuite/gas/aarch64/sve-f16f32mm-bad.l
new file mode 100644
index 0000000..bb95568
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-f16f32mm-bad.l
@@ -0,0 +1,9 @@
+[^:]*: Assembler messages:
+.*: Error: selected processor does not support `fmmla z0.s,z0.h,z0.h'
+.*: Error: selected processor does not support `fmmla z0.s,z0.h,z31.h'
+.*: Error: selected processor does not support `fmmla z0.s,z31.h,z0.h'
+.*: Error: selected processor does not support `fmmla z0.s,z31.h,z31.h'
+.*: Error: selected processor does not support `fmmla z31.s,z0.h,z0.h'
+.*: Error: selected processor does not support `fmmla z31.s,z0.h,z31.h'
+.*: Error: selected processor does not support `fmmla z31.s,z31.h,z0.h'
+.*: Error: selected processor does not support `fmmla z31.s,z31.h,z31.h'
diff --git a/gas/testsuite/gas/aarch64/sve-f16f32mm.d b/gas/testsuite/gas/aarch64/sve-f16f32mm.d
new file mode 100644
index 0000000..8b72bf2
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-f16f32mm.d
@@ -0,0 +1,18 @@
+#name: SVE_F16F32MM FMMLA instructions
+#as: -march=armv8-a+sve-f16f32mm
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section .*:
+
+.* <a>:
+.*: 6420e400 fmmla z0.s, z0.h, z0.h
+.*: 643fe400 fmmla z0.s, z0.h, z31.h
+.*: 6420e7e0 fmmla z0.s, z31.h, z0.h
+.*: 643fe7e0 fmmla z0.s, z31.h, z31.h
+.*: 6420e41f fmmla z31.s, z0.h, z0.h
+.*: 643fe41f fmmla z31.s, z0.h, z31.h
+.*: 6420e7ff fmmla z31.s, z31.h, z0.h
+.*: 643fe7ff fmmla z31.s, z31.h, z31.h
diff --git a/gas/testsuite/gas/aarch64/sve-f16f32mm.s b/gas/testsuite/gas/aarch64/sve-f16f32mm.s
new file mode 100644
index 0000000..4979258
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-f16f32mm.s
@@ -0,0 +1,9 @@
+a:
+ fmmla z0.s, z0.h, z0.h
+ fmmla z0.s, z0.h, z31.h
+ fmmla z0.s, z31.h, z0.h
+ fmmla z0.s, z31.h, z31.h
+ fmmla z31.s, z0.h, z0.h
+ fmmla z31.s, z0.h, z31.h
+ fmmla z31.s, z31.h, z0.h
+ fmmla z31.s, z31.h, z31.h
diff --git a/gas/testsuite/gas/aarch64/sve-ldff1-invalid.d b/gas/testsuite/gas/aarch64/sve-ldff1-invalid.d
new file mode 100644
index 0000000..07fac45
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-ldff1-invalid.d
@@ -0,0 +1,4 @@
+#as: -march=armv8-a+sve
+#source: sve-ldff1-invalid.s
+#error_output: sve-ldff1-invalid.l
+
diff --git a/gas/testsuite/gas/aarch64/sve-ldff1-invalid.l b/gas/testsuite/gas/aarch64/sve-ldff1-invalid.l
new file mode 100644
index 0000000..3f101f1
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-ldff1-invalid.l
@@ -0,0 +1,58 @@
+[^:]*: Assembler messages:
+.*: Error: operand mismatch -- `ldff1b {z1\.b},p1/z,\[z1\.d\]'
+.*: Info: did you mean this\?
+.*: Info: ldff1b {z1\.d}, p1/z, \[z1\.d\]
+.*: Error: operand mismatch -- `ldff1b {z1\.h},p1/z,\[z1\.s\]'
+.*: Info: did you mean this\?
+.*: Info: ldff1b {z1\.s}, p1/z, \[z1\.s\]
+.*: Error: operand mismatch -- `ldff1b {z1\.s},p1/z,\[z1\.d\]'
+.*: Info: did you mean this\?
+.*: Info: ldff1b {z1\.s}, p1/z, \[z1\.s\]
+.*: Error: operand mismatch -- `ldff1b {z1\.d},p1/z,\[z1\.s\]'
+.*: Info: did you mean this\?
+.*: Info: ldff1b {z1\.s}, p1/z, \[z1\.s\]
+.*: Error: operand mismatch -- `ldff1d {z1\.d},p1/z,\[z1\.s\]'
+.*: Info: did you mean this\?
+.*: Info: ldff1d {z1\.d}, p1/z, \[z1\.d\]
+.*: Error: operand mismatch -- `ldff1h {z1\.h},p1/z,\[z1\.s\]'
+.*: Info: did you mean this\?
+.*: Info: ldff1h {z1\.s}, p1/z, \[z1\.s\]
+.*: Error: operand mismatch -- `ldff1h {z1\.s},p1/z,\[z1\.d\]'
+.*: Info: did you mean this\?
+.*: Info: ldff1h {z1\.s}, p1/z, \[z1\.s\]
+.*: Error: operand mismatch -- `ldff1h {z1\.d},p1/z,\[z1\.s\]'
+.*: Info: did you mean this\?
+.*: Info: ldff1h {z1\.s}, p1/z, \[z1\.s\]
+.*: Error: operand mismatch -- `ldff1sb {z1\.h},p1/z,\[z1\.d\]'
+.*: Info: did you mean this\?
+.*: Info: ldff1sb {z1\.d}, p1/z, \[z1\.d\]
+.*: Error: operand mismatch -- `ldff1sb {z1\.s},p1/z,\[z1\.d\]'
+.*: Info: did you mean this\?
+.*: Info: ldff1sb {z1\.s}, p1/z, \[z1\.s\]
+.*: Error: operand mismatch -- `ldff1sb {z1\.d},p1/z,\[z1\.s\]'
+.*: Info: did you mean this\?
+.*: Info: ldff1sb {z1\.s}, p1/z, \[z1\.s\]
+.*: Error: operand mismatch -- `ldff1sh {z1\.s},p1/z,\[z1\.d\]'
+.*: Info: did you mean this\?
+.*: Info: ldff1sh {z1\.s}, p1/z, \[z1\.s\]
+.*: Error: operand mismatch -- `ldff1sh {z1\.d},p1/z,\[z1\.s\]'
+.*: Info: did you mean this\?
+.*: Info: ldff1sh {z1\.s}, p1/z, \[z1\.s\]
+.*: Error: operand mismatch -- `ldff1sw {z1\.d},p1/z,\[z1\.s\]'
+.*: Info: did you mean this\?
+.*: Info: ldff1sw {z1\.d}, p1/z, \[z1\.d\]
+.*: Error: operand mismatch -- `ldff1w {z1\.s},p1/z,\[z1\.d\]'
+.*: Info: did you mean this\?
+.*: Info: ldff1w {z1\.s}, p1/z, \[z1\.s\]
+.*: Error: operand mismatch -- `ldff1w {z1\.d},p1/z,\[z1\.s\]'
+.*: Info: did you mean this\?
+.*: Info: ldff1w {z1\.s}, p1/z, \[z1\.s\]
+.*: Error: invalid addressing mode at operand 3 -- `ldff1d {z1\.d},p1/z,\[x1,x1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ldff1h {z1\.h},p1/z,\[x1,x1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ldff1h {z1\.s},p1/z,\[x1,x1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ldff1h {z1\.d},p1/z,\[x1,x1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ldff1sh {z1\.s},p1/z,\[x1,x1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ldff1sh {z1\.d},p1/z,\[x1,x1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ldff1sw {z1\.d},p1/z,\[x1,x1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ldff1w {z1\.s},p1/z,\[x1,x1\]'
+.*: Error: invalid addressing mode at operand 3 -- `ldff1w {z1\.d},p1/z,\[x1,x1\]'
diff --git a/gas/testsuite/gas/aarch64/sve-ldff1-invalid.s b/gas/testsuite/gas/aarch64/sve-ldff1-invalid.s
new file mode 100644
index 0000000..ba56f03
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sve-ldff1-invalid.s
@@ -0,0 +1,35 @@
+// The fix for PR22988 accidentally allowed invalid addressing mode
+// ldff1b z1.d, p1/z, [z1.d]
+// which was parsed equivalently to the valid instruction:
+// ldff1b z1.d, p1/z, [x1.d, xzr];
+// and
+// ldff1h{z1.s}, p1/z, [x1, x1]
+// which was parsed as:
+// ldff1h{z1.s}, p1/z, [x1, x1, lsl #1]
+
+ ldff1b {z1.b}, p1/z, [z1.d]
+ ldff1b {z1.h}, p1/z, [z1.s]
+ ldff1b {z1.s}, p1/z, [z1.d]
+ ldff1b {z1.d}, p1/z, [z1.s]
+ ldff1d {z1.d}, p1/z, [z1.s]
+ ldff1h {z1.h}, p1/z, [z1.s]
+ ldff1h {z1.s}, p1/z, [z1.d]
+ ldff1h {z1.d}, p1/z, [z1.s]
+ ldff1sb {z1.h}, p1/z, [z1.d]
+ ldff1sb {z1.s}, p1/z, [z1.d]
+ ldff1sb {z1.d}, p1/z, [z1.s]
+ ldff1sh {z1.s}, p1/z, [z1.d]
+ ldff1sh {z1.d}, p1/z, [z1.s]
+ ldff1sw {z1.d}, p1/z, [z1.s]
+ ldff1w {z1.s}, p1/z, [z1.d]
+ ldff1w {z1.d}, p1/z, [z1.s]
+
+ ldff1d {z1.d}, p1/z, [x1, x1]
+ ldff1h {z1.h}, p1/z, [x1, x1]
+ ldff1h {z1.s}, p1/z, [x1, x1]
+ ldff1h {z1.d}, p1/z, [x1, x1]
+ ldff1sh {z1.s}, p1/z, [x1, x1]
+ ldff1sh {z1.d}, p1/z, [x1, x1]
+ ldff1sw {z1.d}, p1/z, [x1, x1]
+ ldff1w {z1.s}, p1/z, [x1, x1]
+ ldff1w {z1.d}, p1/z, [x1, x1]
diff --git a/gas/testsuite/gas/aarch64/sysreg/armv9_3-a-sme-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/armv9_3-a-sme-sysregs.d
new file mode 100644
index 0000000..a40995c
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/armv9_3-a-sme-sysregs.d
@@ -0,0 +1,10 @@
+#as: -march=armv9.3-a+sme
+#objdump: -dr
+
+.*: file format .*
+
+Disassembly of section \.text:
+
+0+ <.*>:
+.*: d538a5e0 mrs x0, mpambwsm_el1
+.*: d518a5e0 msr mpambwsm_el1, x0
diff --git a/gas/testsuite/gas/aarch64/sysreg/armv9_3-a-sme-sysregs.s b/gas/testsuite/gas/aarch64/sysreg/armv9_3-a-sme-sysregs.s
new file mode 100644
index 0000000..e5ac128
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/armv9_3-a-sme-sysregs.s
@@ -0,0 +1,2 @@
+ mrs x0, mpambwsm_el1
+ msr mpambwsm_el1, x0
diff --git a/gas/testsuite/gas/aarch64/sysreg/armv9_3-a-sysregs.d b/gas/testsuite/gas/aarch64/sysreg/armv9_3-a-sysregs.d
new file mode 100644
index 0000000..46a05d2
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/armv9_3-a-sysregs.d
@@ -0,0 +1,21 @@
+#as: -march=armv9.3-a
+#objdump: -dr
+
+.*: file format .*
+
+Disassembly of section \.text:
+
+0+ <.*>:
+[^:]+:\s+d538a5a0 mrs x0, mpambw0_el1
+[^:]+:\s+d518a5a0 msr mpambw0_el1, x0
+[^:]+:\s+d538a580 mrs x0, mpambw1_el1
+[^:]+:\s+d518a580 msr mpambw1_el1, x0
+[^:]+:\s+d53da580 mrs x0, mpambw1_el12
+[^:]+:\s+d51da580 msr mpambw1_el12, x0
+[^:]+:\s+d53ca580 mrs x0, mpambw2_el2
+[^:]+:\s+d51ca580 msr mpambw2_el2, x0
+[^:]+:\s+d53ea580 mrs x0, mpambw3_el3
+[^:]+:\s+d51ea580 msr mpambw3_el3, x0
+[^:]+:\s+d53ca5c0 mrs x0, mpambwcap_el2
+[^:]+:\s+d51ca5c0 msr mpambwcap_el2, x0
+[^:]+:\s+d538a4a0 mrs x0, mpambwidr_el1
diff --git a/gas/testsuite/gas/aarch64/sysreg/armv9_3-a-sysregs.s b/gas/testsuite/gas/aarch64/sysreg/armv9_3-a-sysregs.s
new file mode 100644
index 0000000..546bdbf
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/armv9_3-a-sysregs.s
@@ -0,0 +1,13 @@
+ mrs x0, mpambw0_el1
+ msr mpambw0_el1, x0
+ mrs x0, mpambw1_el1
+ msr mpambw1_el1, x0
+ mrs x0, mpambw1_el12
+ msr mpambw1_el12, x0
+ mrs x0, mpambw2_el2
+ msr mpambw2_el2, x0
+ mrs x0, mpambw3_el3
+ msr mpambw3_el3, x0
+ mrs x0, mpambwcap_el2
+ msr mpambwcap_el2, x0
+ mrs x0, mpambwidr_el1
diff --git a/gas/testsuite/gas/aarch64/sysreg/mpam-bad.d b/gas/testsuite/gas/aarch64/sysreg/mpam-bad.d
new file mode 100644
index 0000000..c3ec372
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/mpam-bad.d
@@ -0,0 +1,3 @@
+#as: -march=armv9.3-a
+#source: mpam-bad.s
+#error_output: mpam-bad.l
diff --git a/gas/testsuite/gas/aarch64/sysreg/mpam-bad.l b/gas/testsuite/gas/aarch64/sysreg/mpam-bad.l
new file mode 100644
index 0000000..34e9197
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/mpam-bad.l
@@ -0,0 +1,4 @@
+.*: Assembler messages:
+.*: Warning: specified register cannot be written to at operand 1 -- `msr mpambwidr_el1,x0'
+.*: Error: selected processor does not support system register name 'mpambwsm_el1'
+.*: Error: selected processor does not support system register name 'mpambwsm_el1'
diff --git a/gas/testsuite/gas/aarch64/sysreg/mpam-bad.s b/gas/testsuite/gas/aarch64/sysreg/mpam-bad.s
new file mode 100644
index 0000000..2a0f94f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/mpam-bad.s
@@ -0,0 +1,6 @@
+/* This is read-only register */
+msr mpambwidr_el1, x0
+
+/* This register is not available without +sme flag */
+mrs x0, mpambwsm_el1
+msr mpambwsm_el1, x0
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-10-bad.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-10-bad.d
new file mode 100644
index 0000000..628de52
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-10-bad.d
@@ -0,0 +1,3 @@
+#source: sysreg-10.s
+#as: -march=armv8.7-a -I$srcdir/$subdir
+#error_output: sysreg-10-bad.l
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-10-bad.l b/gas/testsuite/gas/aarch64/sysreg/sysreg-10-bad.l
new file mode 100644
index 0000000..c3387cb
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-10-bad.l
@@ -0,0 +1,3 @@
+.*: Assembler messages:
+.*: Error: selected processor does not support system register name 'hfgitr2_el2'
+.*: Error: selected processor does not support system register name 'hfgitr2_el2'
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-10.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-10.d
new file mode 100644
index 0000000..f07df91
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-10.d
@@ -0,0 +1,12 @@
+#source: sysreg-10.s
+#as: -march=armv8.8-a -I$srcdir/$subdir
+#objdump: -dr
+
+[^:]+: file format .*
+
+
+[^:]+:
+
+[^:]+:
+.*: d53c31e0 mrs x0, hfgitr2_el2
+.*: d51c31e0 msr hfgitr2_el2, x0
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-10.s b/gas/testsuite/gas/aarch64/sysreg/sysreg-10.s
new file mode 100644
index 0000000..bab7564
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-10.s
@@ -0,0 +1,2 @@
+ mrs x0, hfgitr2_el2
+ msr hfgitr2_el2, x0
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-9-bad.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-9-bad.d
new file mode 100644
index 0000000..a1ebac6
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-9-bad.d
@@ -0,0 +1,3 @@
+#source: sysreg-9-bad.s
+#as: -I$srcdir/$subdir
+#error_output: sysreg-9-bad.l
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-9-bad.l b/gas/testsuite/gas/aarch64/sysreg/sysreg-9-bad.l
new file mode 100644
index 0000000..b4874c2
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-9-bad.l
@@ -0,0 +1,61 @@
+.*: Assembler messages:
+.*: Error: selected processor does not support system register name 'pmbmar_el1'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbmar_el1'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbsr_el12'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbsr_el12'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbsr_el2'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbsr_el2'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbsr_el3'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbsr_el3'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbmar_el1'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbmar_el1'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbsr_el12'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbsr_el12'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbsr_el2'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbsr_el2'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbsr_el3'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbsr_el3'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbmar_el1'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbmar_el1'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbsr_el12'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbsr_el12'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbsr_el2'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbsr_el2'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbsr_el3'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'pmbsr_el3'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'trbsr_el12'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'trbsr_el12'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'trbsr_el2'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'trbsr_el2'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'trbsr_el3'
+.*: Info: macro invoked from here
+.*: Error: selected processor does not support system register name 'trbsr_el3'
+.*: Info: macro invoked from here
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-9-bad.s b/gas/testsuite/gas/aarch64/sysreg/sysreg-9-bad.s
new file mode 100644
index 0000000..9429b44
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-9-bad.s
@@ -0,0 +1,26 @@
+.include "sysreg-test-utils.inc"
+
+.text
+
+.arch armv9.4-a+profile
+rw_sys_reg pmbmar_el1
+rw_sys_reg pmbsr_el12
+rw_sys_reg pmbsr_el2
+rw_sys_reg pmbsr_el3
+
+.arch armv9.5-a
+rw_sys_reg pmbmar_el1
+rw_sys_reg pmbsr_el12
+rw_sys_reg pmbsr_el2
+rw_sys_reg pmbsr_el3
+
+.arch armv9.4-a
+rw_sys_reg pmbmar_el1
+rw_sys_reg pmbsr_el12
+rw_sys_reg pmbsr_el2
+rw_sys_reg pmbsr_el3
+
+.arch armv9.4-a
+rw_sys_reg trbsr_el12
+rw_sys_reg trbsr_el2
+rw_sys_reg trbsr_el3
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-9.d b/gas/testsuite/gas/aarch64/sysreg/sysreg-9.d
new file mode 100644
index 0000000..61b63ce
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-9.d
@@ -0,0 +1,25 @@
+#source: sysreg-9.s
+#as: -I$srcdir/$subdir
+#objdump: -dr
+
+
+[^:]+: file format .*
+
+
+[^:]+:
+
+[^:]+:
+.*: d5189aa0 msr pmbmar_el1, x0
+.*: d5389aa0 mrs x0, pmbmar_el1
+.*: d51d9a60 msr pmbsr_el12, x0
+.*: d53d9a60 mrs x0, pmbsr_el12
+.*: d51c9a60 msr pmbsr_el2, x0
+.*: d53c9a60 mrs x0, pmbsr_el2
+.*: d51e9a60 msr pmbsr_el3, x0
+.*: d53e9a60 mrs x0, pmbsr_el3
+.*: d51d9b60 msr trbsr_el12, x0
+.*: d53d9b60 mrs x0, trbsr_el12
+.*: d51c9b60 msr trbsr_el2, x0
+.*: d53c9b60 mrs x0, trbsr_el2
+.*: d51e9b60 msr trbsr_el3, x0
+.*: d53e9b60 mrs x0, trbsr_el3
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg-9.s b/gas/testsuite/gas/aarch64/sysreg/sysreg-9.s
new file mode 100644
index 0000000..85a7335
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg-9.s
@@ -0,0 +1,14 @@
+.include "sysreg-test-utils.inc"
+
+.text
+
+.arch armv9.5-a+profile
+rw_sys_reg pmbmar_el1
+rw_sys_reg pmbsr_el12
+rw_sys_reg pmbsr_el2
+rw_sys_reg pmbsr_el3
+
+.arch armv9.5-a
+rw_sys_reg trbsr_el12
+rw_sys_reg trbsr_el2
+rw_sys_reg trbsr_el3
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg.d b/gas/testsuite/gas/aarch64/sysreg/sysreg.d
index 4fa9f0d..9aba548 100644
--- a/gas/testsuite/gas/aarch64/sysreg/sysreg.d
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg.d
@@ -40,3 +40,5 @@ Disassembly of section \.text:
.*: d5384b00 mrs x0, s3_0_c4_c11_0
.*: d5110300 msr trcstatr, x0
.*: d5310300 mrs x0, trcstatr
+.*: d53804e0 mrs x0, id_aa64fpfr0_el1
+.*: d5380440 mrs x0, id_aa64pfr2_el1
diff --git a/gas/testsuite/gas/aarch64/sysreg/sysreg.s b/gas/testsuite/gas/aarch64/sysreg/sysreg.s
index cf04614..cd33810 100644
--- a/gas/testsuite/gas/aarch64/sysreg/sysreg.s
+++ b/gas/testsuite/gas/aarch64/sysreg/sysreg.s
@@ -34,3 +34,5 @@
rw_sys_reg sys_reg=s3_0_c12_c15_0 w=0
rw_sys_reg sys_reg=s3_0_c4_c11_0
rw_sys_reg sys_reg=s2_1_c0_c3_0
+ rw_sys_reg sys_reg=id_aa64fpfr0_el1 w=0
+ rw_sys_reg sys_reg=id_aa64pfr2_el1 w=0
diff --git a/gas/testsuite/gas/aarch64/system.d b/gas/testsuite/gas/aarch64/system.d
index c140077..8c1a113 100644
--- a/gas/testsuite/gas/aarch64/system.d
+++ b/gas/testsuite/gas/aarch64/system.d
@@ -8,12 +8,15 @@ Disassembly of section \.text:
0+ <.*>:
.*: d6bf03e0 drps
+.*: d69f03e0 eret
.*: d503201f nop
.*: d503203f yield
.*: d503205f wfe
.*: d503207f wfi
.*: d503209f sev
.*: d50320bf sevl
+.*: d50320df dgh
+.*: d503229f csdb
.*: d50322df clrbhb
.*: d503201f nop
.*: d503203f yield
@@ -21,7 +24,7 @@ Disassembly of section \.text:
.*: d503207f wfi
.*: d503209f sev
.*: d50320bf sevl
-.*: d50320df hint #0x6
+.*: d50320df dgh
.*: d50320ff (hint #0x7|xpaclri)
.*: d503211f (hint #0x8|pacia1716)
.*: d503213f hint #0x9
diff --git a/gas/testsuite/gas/aarch64/system.s b/gas/testsuite/gas/aarch64/system.s
index 9457b39..db35e7d 100644
--- a/gas/testsuite/gas/aarch64/system.s
+++ b/gas/testsuite/gas/aarch64/system.s
@@ -1,5 +1,6 @@
.text
drps
+ eret
//
// HINTS
@@ -11,6 +12,8 @@
wfi
sev
sevl
+ dgh
+ csdb
clearbhb
.macro all_hints from=0, to=127
diff --git a/gas/testsuite/gas/all/gas.exp b/gas/testsuite/gas/all/gas.exp
index f8bab3c..780838d 100644
--- a/gas/testsuite/gas/all/gas.exp
+++ b/gas/testsuite/gas/all/gas.exp
@@ -330,21 +330,6 @@ switch -glob $target_triplet {
}
}
-# This test is for any COFF target.
-# We omit the ARM toolchains because they define locals to
-# start with '.', which eliminates .eos, .text etc from the output.
-# Omit c54x, since .tag and .def mean something different on that target
-if { ([istarget *-*-coff*] && ![istarget *c4x*-*-coff] && ![istarget *c54x*-*-coff]) \
- ||([istarget *-*-pe*] && ![istarget arm*-*-pe*]) \
- || [istarget i*86-*-aix*] \
- || [istarget i*86-*-go32*] \
- || [istarget i*86-*-cygwin*] \
- || [istarget x86_64-*-mingw*] \
- || [istarget i*86-*-*nt] \
- || [istarget i*86-*-interix*] } {
- run_dump_test cofftag
-}
-
# Test omitting conditionals from listings.
proc test_cond {} {
global comp_output
diff --git a/gas/testsuite/gas/all/octa.d b/gas/testsuite/gas/all/octa.d
index e8eff2c..9c91206 100644
--- a/gas/testsuite/gas/all/octa.d
+++ b/gas/testsuite/gas/all/octa.d
@@ -14,3 +14,11 @@ Contents of section .data:
[^ ]* (00000000 ffffffff ffffffff ffffffff|ffffffff ffffffff ffffffff 00000000) .*
[^ ]* (00000080 ffffffff ffffffff ffffffff|ffffffff ffffffff ffffffff 80000000) .*
[^ ]* (01000000 ffffffff ffffffff ffffffff|ffffffff ffffffff ffffffff 00000001) .*
+ [^ ]* (00000000 000000f0 ffffffff ffffffff|ffffffff ffffffff f0000000 00000000) .*
+ [^ ]* (00000000 00000010 00000000 00000000|00000000 00000000 10000000 00000000) .*
+ [^ ]* (ffffffff ffffffef ffffffff ffffffff|ffffffff ffffffff efffffff ffffffff) .*
+ [^ ]* (01000000 00000010 00000000 00000000|00000000 00000000 10000000 00000001) .*
+ [^ ]* (01000000 000000f0 ffffffff ffffffff|ffffffff ffffffff f0000000 00000001) .*
+ [^ ]* (feffffff ffffff0f 00000000 00000000|00000000 00000000 0fffffff fffffffe) .*
+ [^ ]* (02000000 000000f0 ffffffff ffffffff|ffffffff ffffffff f0000000 00000002) .*
+ [^ ]* (fdffffff ffffff0f 00000000 00000000|00000000 00000000 0fffffff fffffffd) .*
diff --git a/gas/testsuite/gas/all/octa.s b/gas/testsuite/gas/all/octa.s
index faa21fa..037941f 100644
--- a/gas/testsuite/gas/all/octa.s
+++ b/gas/testsuite/gas/all/octa.s
@@ -9,3 +9,13 @@
.octa ~0xffffffff
.octa 0 - 0x80000000
.octa 0 - 0xffffffff
+
+ .octa ~0xfffffffffffffff
+ .octa -~0xfffffffffffffff
+ .octa ~-~0xfffffffffffffff
+ .octa -~-~0xfffffffffffffff
+
+ .octa -0xfffffffffffffff
+ .octa ~-0xfffffffffffffff
+ .octa -~-0xfffffffffffffff
+ .octa ~-~-0xfffffffffffffff
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-aarch64-4.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-aarch64-4.d
index c81888b..51fad9c 100644
--- a/gas/testsuite/gas/cfi-sframe/cfi-sframe-aarch64-4.d
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-aarch64-4.d
@@ -1,7 +1,7 @@
#as: --gsframe
#objdump: --sframe=.sframe
#name: SFrame cfi_negate_ra_state_with_pc test
-#warning: Warning: skipping SFrame FDE; \.cfi_negate_ra_state_with_pc
+#warning: \.cfi_negate_ra_state_with_pc
## The support for .cfi_negate_ra_state_with_pc is currently pending on SFrame
## v3 (currently in development). The unimplemented support is reported to the
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-10.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-10.d
new file mode 100644
index 0000000..106e05d
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-10.d
@@ -0,0 +1,22 @@
+#as: --gsframe
+#objdump: --sframe=.sframe
+#name: SFrame cfi_undefined test
+#...
+Contents of the SFrame section .sframe:
+
+ Header :
+
+ Version: SFRAME_VERSION_2
+ Flags: NONE
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
+ Num FDEs: 1
+ Num FREs: 2
+
+ Function Index :
+ func idx \[0\]: pc = 0x0, size = 8 bytes
+ STARTPC + CFA + FP + RA +
+#...
+ 0+0004 +sp\+16 +u +[uf] +
+
+#pass
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-10.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-10.s
new file mode 100644
index 0000000..7761eda
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-10.s
@@ -0,0 +1,12 @@
+## cfi_undefined when used with "not interesting" registers (from the
+## perspective of SFrame section, non SP/FP/RA registers are not
+## interesting) does not affect the asynchronicity of the SFrame
+## stack trace information. Such CFI directives can be skipped for SFrame
+## stack trace info generation.
+ .cfi_startproc
+ .long 0
+ .cfi_def_cfa_offset 16
+ .cfi_undefined 1
+ .cfi_undefined 2
+ .long 0
+ .cfi_endproc
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-11.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-11.d
new file mode 100644
index 0000000..2584815
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-11.d
@@ -0,0 +1,22 @@
+#as: --gsframe
+#objdump: --sframe=.sframe
+#name: SFrame cfi_same_value test
+#...
+Contents of the SFrame section .sframe:
+
+ Header :
+
+ Version: SFRAME_VERSION_2
+ Flags: NONE
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
+ Num FDEs: 1
+ Num FREs: 2
+
+ Function Index :
+ func idx \[0\]: pc = 0x0, size = 8 bytes
+ STARTPC + CFA + FP + RA +
+#...
+ 0+0004 +sp\+16 +u +[uf] +
+
+#pass
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-11.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-11.s
new file mode 100644
index 0000000..e299f58
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-11.s
@@ -0,0 +1,12 @@
+## cfi_same_value when used with "not interesting" registers (from the
+## perspective of SFrame section, non SP/FP/RA registers are not
+## interesting) does not affect the asynchronicity of the SFrame stack
+## trace information. Such CFI directives can be skipped for SFrame
+## stack trace info generation.
+ .cfi_startproc
+ .long 0
+ .cfi_def_cfa_offset 16
+ .cfi_same_value 1
+ .cfi_same_value 2
+ .long 0
+ .cfi_endproc
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-9.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-9.d
new file mode 100644
index 0000000..80c9235
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-9.d
@@ -0,0 +1,22 @@
+#as: --gsframe
+#objdump: --sframe=.sframe
+#name: SFrame cfi_escape test
+#...
+Contents of the SFrame section .sframe:
+
+ Header :
+
+ Version: SFRAME_VERSION_2
+ Flags: NONE
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
+ Num FDEs: 1
+ Num FREs: 2
+
+ Function Index :
+ func idx \[0\]: pc = 0x0, size = 8 bytes
+ STARTPC + CFA + FP + RA +
+#...
+ 0+0004 +sp\+16 +u +[uf] +
+
+#pass
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-9.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-9.s
new file mode 100644
index 0000000..3ecde7e
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-common-9.s
@@ -0,0 +1,18 @@
+## CFI_escape may be used to encode DWARF expressions among other things.
+## Depending on the register applicable for the DWARF expression, skipping
+## SFrame FDE may be OK: SFrame stack trace information is relevant for SP, FP
+## and RA only. In this test, CFI_escape is safe to skip (does not affect
+## correctness of SFrame data). The register 0xc is non SP / FP on both
+## aarch64 and x86_64.
+ .cfi_startproc
+ .long 0
+ .cfi_def_cfa_offset 16
+# DW_CFA_expression,reg 0xc,length 2,DW_OP_breg6,SLEB(-8)
+ .cfi_escape 0x10,0xc,0x2,0x76,0x78
+# DW_CFA_nop
+ .cfi_escape 0x0
+ .cfi_escape 0x0,0x0,0x0,0x0
+# DW_CFA_val_offset,reg 0xc,ULEB scaled offset
+ .cfi_escape 0x14,0xc,0x4
+ .long 0
+ .cfi_endproc
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-2.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-2.d
new file mode 100644
index 0000000..d779b6d
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-2.d
@@ -0,0 +1,21 @@
+#as: --gsframe
+#objdump: --sframe=.sframe
+#name: Check .cfi_def_cfa_register with no previous offset
+#...
+Contents of the SFrame section .sframe:
+
+ Header :
+
+ Version: SFRAME_VERSION_2
+ Flags: NONE
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
+ Num FDEs: 1
+ Num FREs: 1
+
+ Function Index :
+
+ func idx \[0\]: pc = 0x0, size = 0 bytes
+ STARTPC +CFA +FP +RA +
+ 0+0000 +fp\+8 +u +f +
+#pass
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-2.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-2.s
new file mode 100644
index 0000000..f3f9859
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-2.s
@@ -0,0 +1,4 @@
+# Although not a useful construct by itself, ensure graceful handling.
+ .cfi_startproc
+ .cfi_def_cfa_register 6
+ .cfi_endproc
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-1.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-1.d
new file mode 100644
index 0000000..0bae4b9
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-1.d
@@ -0,0 +1,17 @@
+#as: --gsframe
+#warning: \.cfi_escape DW\_CFA\_expression with SP reg 7
+#objdump: --sframe=.sframe
+#name: CFI_escape with register of significance to SFrame
+#...
+Contents of the SFrame section .sframe:
+
+ Header :
+
+ Version: SFRAME_VERSION_2
+ Flags: NONE
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
+ Num FDEs: 0
+ Num FREs: 0
+
+#pass
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-1.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-1.s
new file mode 100644
index 0000000..cfb1a95
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-1.s
@@ -0,0 +1,11 @@
+## CFI_escape may be used to encode DWARF expressions among other things.
+## In this test, a DWARF expression involving a register of interest (REG_SP on
+## x86_64, which is also the CFA in the current FRE) is seen. SFrame
+## generation, is skipped and a warning issued to the user.
+ .cfi_startproc
+ .long 0
+ .cfi_def_cfa_offset 16
+# DW_CFA_expression,reg 0x7,length 2,DW_OP_breg6,SLEB(-8)
+ .cfi_escape 0x10,0x7,0x2,0x76,0x78
+ .long 0
+ .cfi_endproc
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-2.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-2.d
new file mode 100644
index 0000000..f1ba044
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-2.d
@@ -0,0 +1,17 @@
+#as: --gsframe
+#warning: \.cfi\_escape DW\_CFA\_val\_offset with FP reg 6
+#objdump: --sframe=.sframe
+#name: CFI_escape with register of significance to SFrame II
+#...
+Contents of the SFrame section .sframe:
+
+ Header :
+
+ Version: SFRAME_VERSION_2
+ Flags: NONE
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
+ Num FDEs: 0
+ Num FREs: 0
+
+#pass
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-2.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-2.s
new file mode 100644
index 0000000..90e108e
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-2.s
@@ -0,0 +1,11 @@
+## CFI_escape may be used to encode DWARF expressions among other things.
+## In this test, a DWARF expression involving a register of interest (REG_SP on
+## x86_64, which is also the CFA in the current FRE) is seen. SFrame
+## generation, is skipped and a warning issued to the user.
+ .cfi_startproc
+ .long 0
+ .cfi_def_cfa_offset 16
+# DW_CFA_val_offset,rbp,ULEB scaled offset(16)
+ .cfi_escape 0x14,0x6,0x2
+ .long 0
+ .cfi_endproc
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-3.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-3.d
new file mode 100644
index 0000000..c8fc7a4
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-3.d
@@ -0,0 +1,17 @@
+#as: --gsframe
+#warning: \.cfi\_escape with op \(0x14\)
+#objdump: --sframe=.sframe
+#name: CFI_escape with multiple DWARF expr
+#...
+Contents of the SFrame section .sframe:
+
+ Header :
+
+ Version: SFRAME_VERSION_2
+ Flags: NONE
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
+ Num FDEs: 0
+ Num FREs: 0
+
+#pass
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-3.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-3.s
new file mode 100644
index 0000000..b6af0c3
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-3.s
@@ -0,0 +1,12 @@
+## CFI_escape may be used to encode DWARF expressions among other things.
+## In this test, a stream of valid DWARF information is presented in a
+## single CFI_escape. Parsing such cases is currently not deemed worth the
+## effort. So, such cases are skipped for SFrame FDE generation and a
+## warning issued to the user.
+ .cfi_startproc
+ .long 0
+ .cfi_def_cfa_offset 16
+# DW_CFA_val_offset,rcx,ULEB scaled offset(16), DW_CFA_expr,r10,length,DW_OP_deref,SLEB(-8)
+ .cfi_escape 0x14,0x2,0x2,0x10,0xa,0x2,0x76,0x78
+ .long 0
+ .cfi_endproc
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-4.d b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-4.d
new file mode 100644
index 0000000..43f09e0
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-4.d
@@ -0,0 +1,17 @@
+#as: --gsframe
+#warning: SP reg 7 in \.cfi\_undefined
+#objdump: --sframe=.sframe
+#name: DW_CFA_undefined with register SP
+#...
+Contents of the SFrame section .sframe:
+
+ Header :
+
+ Version: SFRAME_VERSION_2
+ Flags: NONE
+#? CFA fixed FP offset: \-?\d+
+#? CFA fixed RA offset: \-?\d+
+ Num FDEs: 0
+ Num FREs: 0
+
+#pass
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-4.s b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-4.s
new file mode 100644
index 0000000..fae3bbf
--- /dev/null
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe-x86_64-empty-4.s
@@ -0,0 +1,6 @@
+ .cfi_startproc
+ .long 0
+ .cfi_def_cfa_offset 16
+ .cfi_undefined 7
+ .long 0
+ .cfi_endproc
diff --git a/gas/testsuite/gas/cfi-sframe/cfi-sframe.exp b/gas/testsuite/gas/cfi-sframe/cfi-sframe.exp
index b119b9d..341a56a 100644
--- a/gas/testsuite/gas/cfi-sframe/cfi-sframe.exp
+++ b/gas/testsuite/gas/cfi-sframe/cfi-sframe.exp
@@ -78,6 +78,9 @@ if { ([istarget "x86_64-*-*"] || [istarget "aarch64*-*-*"]) \
run_dump_test "cfi-sframe-common-6"
run_dump_test "cfi-sframe-common-7"
run_dump_test "cfi-sframe-common-8"
+ run_dump_test "cfi-sframe-common-9"
+ run_dump_test "cfi-sframe-common-10"
+ run_dump_test "cfi-sframe-common-11"
run_dump_test "common-empty-1"
run_dump_test "common-empty-2"
@@ -89,6 +92,11 @@ if { [istarget "x86_64-*-*"] && [gas_sframe_check] } then {
if { [gas_x86_64_check] } then {
set ASFLAGS "$ASFLAGS --64"
run_dump_test "cfi-sframe-x86_64-1"
+ run_dump_test "cfi-sframe-x86_64-2"
+ run_dump_test "cfi-sframe-x86_64-empty-1"
+ run_dump_test "cfi-sframe-x86_64-empty-2"
+ run_dump_test "cfi-sframe-x86_64-empty-3"
+ run_dump_test "cfi-sframe-x86_64-empty-4"
set ASFLAGS "$old_ASFLAGS"
}
}
diff --git a/gas/testsuite/gas/cfi-sframe/common-empty-1.d b/gas/testsuite/gas/cfi-sframe/common-empty-1.d
index 6e99dd5..736aea8 100644
--- a/gas/testsuite/gas/cfi-sframe/common-empty-1.d
+++ b/gas/testsuite/gas/cfi-sframe/common-empty-1.d
@@ -1,5 +1,5 @@
#as: --gsframe
-#warning: skipping SFrame FDE; \.cfi_remember_state without prior SFrame FRE state
+#warning: \.cfi_remember_state without prior SFrame FRE state
#objdump: --sframe=.sframe
#name: Uninteresting cfi directives generate an empty SFrame section
#...
diff --git a/gas/testsuite/gas/cfi-sframe/common-empty-2.d b/gas/testsuite/gas/cfi-sframe/common-empty-2.d
index 77c303e..163b504 100644
--- a/gas/testsuite/gas/cfi-sframe/common-empty-2.d
+++ b/gas/testsuite/gas/cfi-sframe/common-empty-2.d
@@ -1,5 +1,5 @@
#as: --gsframe
-#warning: skipping SFrame FDE; \.cfi_def_cfa_offset without CFA base register in effect
+#warning: \.cfi_def_cfa_offset without CFA base register in effect
#objdump: --sframe=.sframe
#name: SFrame supports only FP/SP based CFA
#...
diff --git a/gas/testsuite/gas/cfi-sframe/common-empty-3.d b/gas/testsuite/gas/cfi-sframe/common-empty-3.d
index 4ec5b44..39caad5 100644
--- a/gas/testsuite/gas/cfi-sframe/common-empty-3.d
+++ b/gas/testsuite/gas/cfi-sframe/common-empty-3.d
@@ -1,5 +1,5 @@
#as: --gsframe
-#warning: skipping SFrame FDE; non-default RA register 0
+#warning: non-default RA register 0
#objdump: --sframe=.sframe
#name: SFrame supports only default return column
#...
diff --git a/gas/testsuite/gas/cfi/cfi-sparc-2.d b/gas/testsuite/gas/cfi/cfi-sparc-2.d
new file mode 100644
index 0000000..3a425d7
--- /dev/null
+++ b/gas/testsuite/gas/cfi/cfi-sparc-2.d
@@ -0,0 +1,12 @@
+#readelf: -r
+#name: .cfi_escape on SPARC w/ reloc specifier
+#as: -32
+
+Relocation section '.rela.data' at offset 0x[0-9a-f]+ contains 1 entry:
+ Offset Info Type Sym\.Value Sym\. Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ R_SPARC_DISP8 +[0-9a-f]+ +\.data \+ 1
+
+Relocation section '.rela.eh_frame' at offset 0x[0-9a-f]+ contains 2 entries:
+ Offset Info Type Sym\.Value Sym\. Name \+ Addend
+[0-9a-f]+ +[0-9a-f]+ R_SPARC_DISP32 +[0-9a-f]+ +\.text \+ 0
+[0-9a-f]+ +[0-9a-f]+ R_SPARC_DISP8 +[0-9a-f]+ +\.eh_frame \+ [0-9a-f]+
diff --git a/gas/testsuite/gas/cfi/cfi-sparc-2.s b/gas/testsuite/gas/cfi/cfi-sparc-2.s
new file mode 100644
index 0000000..9df6da2
--- /dev/null
+++ b/gas/testsuite/gas/cfi/cfi-sparc-2.s
@@ -0,0 +1,16 @@
+ .data
+ .byte %r_disp8(1f-1)
+ .byte 0x50
+1:
+
+ .text
+func:
+ .cfi_startproc
+ nop
+ .cfi_escape 0x10 ! DW_CFA_expression
+ .cfi_escape 0 ! reg0
+ .cfi_escape %r_disp8(.Lend-1)
+ .cfi_escape 0x50 ! DW_OP_reg0
+ .cfi_label .Lend
+ ret
+ .cfi_endproc
diff --git a/gas/testsuite/gas/cfi/cfi.exp b/gas/testsuite/gas/cfi/cfi.exp
index 8d730a2..83d393c 100644
--- a/gas/testsuite/gas/cfi/cfi.exp
+++ b/gas/testsuite/gas/cfi/cfi.exp
@@ -105,6 +105,7 @@ if { [istarget "i*86-*-*"] || [istarget "x86_64-*-*"] } then {
set nm_status [gas_host_run "$NM $NMFLAGS --help" ""]
run_dump_test "cfi-sparc-1"
+ run_dump_test "cfi-sparc-2"
if { [regexp "elf64\[_-\]sparc" [lindex $nm_status 1]] } then {
run_dump_test "cfi-sparc64-1"
}
@@ -115,6 +116,11 @@ if { [istarget "i*86-*-*"] || [istarget "x86_64-*-*"] } then {
run_list_test "cfi-diag-1" ""
+# ARC and HPPA use ';' as comment char rather than as statement separator.
+if { ![istarget "arc*-*-*"] && ![istarget "hppa*-*"] } then {
+ run_list_test "listing" "-aln --listing-cont-lines=1"
+}
+
# HPPA64 uses 64-bit relocations, which results in all of the dump
# offset numbers not matching up.
if { ![istarget "hppa64*-*"] } then {
diff --git a/gas/testsuite/gas/cfi/listing.l b/gas/testsuite/gas/cfi/listing.l
new file mode 100644
index 0000000..3290fb6
--- /dev/null
+++ b/gas/testsuite/gas/cfi/listing.l
@@ -0,0 +1,39 @@
+[ ]*[0-9]*[ ]+\.text
+[ ]*[0-9]*[ ]+func:
+[ ]*[0-9]*[ ]+0000 (1[04]00 ?0000|0000 ?001[04])[ ]+\.cfi_startproc
+[ ]*[0-9]*[ ]+0000 ?0000 *
+[ ]*[0-9]*[ ]+[0-9a-f]{4} 0A[ ]+\.cfi_remember_state
+[ ]*[0-9]*[ ]+0000 .*[ ]\.nop
+[ ]*[0-9]*[ ]+[0-9a-f]{4} 4.0A[ ]+\.cfi_escape 0x0a
+[ ]*[0-9]*[ ]+[0-9a-f]{4} .*[ ]\.nop
+[ ]*[0-9]*[ ]+[0-9a-f]{4} 4.02 ?0002[ ]+\.cfi_escape 0x02, 0x00, 0x02, 0x00
+[ ]*[0-9]*[ ]+00
+[ ]*[0-9]*[ ]+[0-9a-f]{4} .*[ ]\.nop
+[ ]*[0-9]*[ ]+[0-9a-f]{4} 4.03 ?0000[ ]+\.cfi_escape 0x03; .cfi_escape data2\(0\)
+[ ]*[0-9]*[ ]+[0-9a-f]{4} 0400 ?0000[ ]+\.cfi_escape 0x04; .cfi_escape data4\(0\)
+[ ]*[0-9]*[ ]+00
+[ ]*[0-9]*[ ]+[0-9a-f]{4} .*[ ]\.nop
+[ ]*[0-9]*[ ]+[0-9a-f]{4} 4.0B[ ]+\.cfi_escape 0x0b
+[ ]*[0-9]*[ ]+[0-9a-f]{4} .*[ ]\.nop
+[ ]*[0-9]*[ ]+[0-9a-f]{4} 4.0B[ ]+\.cfi_restore_state
+[ ]*[0-9]*[ ]+[0-9a-f]{4} .*[ ]\.nop
+[ ]*[0-9]*[ ]+([0-9a-f]{4} [0 ]+)?\.cfi_endproc
+[ ]*[0-9]*[ ]*
+[ ]*[0-9]*[ ]+func2:
+[ ]*[0-9]*[ ]+[0-9a-f]{4} ((1C|2[048])00 ?0000|0000 ?00(1C|2[048]))[ ]+\.cfi_startproc
+[ ]*[0-9]*[ ]+(4[048]00 ?0000|0000 ?004[048]) *
+[ ]*[0-9]*[ ]+[0-9a-f]{4} .*[ ]\.nop
+[ ]*[0-9]*[ ]+/\* DW_CFA_register reg127, reg129. \*/
+[ ]*[0-9]*[ ]+[0-9a-f]{4} 4.09 ?7F81[ ]+\.cfi_escape 0x09, uleb128\(127\), uleb128\(129\)
+[ ]*[0-9]*[ ]+01
+[ ]*[0-9]*[ ]+/\* DW_CFA_val_expression reg250, ... \*/
+[ ]*[0-9]*[ ]+[0-9a-f]{4} 16FA ?01[ ]+\.cfi_escape 0x16, uleb128\(250\)
+[ ]*[0-9]*[ ]+/\* ... <len>. \*/
+[ ]*[0-9]*[ ]+[0-9a-f]{4} 03[ ]+\.cfi_escape uleb128\(.LE0e - .LE0s\)
+[ ]*[0-9]*[ ]+\.cfi_label .LE0s
+[ ]*[0-9]*[ ]+/\* DW_OP_breg3. \*/
+[ ]*[0-9]*[ ]+[0-9a-f]{4} 7380 ?78[ ]+\.cfi_escape 0x73, sleb128\(-1024\)
+[ ]*[0-9]*[ ]+\.cfi_label .LE0e
+[ ]*[0-9]*[ ]+[0-9a-f]{4} .*[ ]\.nop
+[ ]*[0-9]*[ ]+([0-9a-f]{4} [0 ]+)?\.cfi_endproc
+#pass
diff --git a/gas/testsuite/gas/cfi/listing.s b/gas/testsuite/gas/cfi/listing.s
new file mode 100644
index 0000000..6794f8a
--- /dev/null
+++ b/gas/testsuite/gas/cfi/listing.s
@@ -0,0 +1,33 @@
+ .text
+func:
+ .cfi_startproc
+ .cfi_remember_state
+ .nop
+ .cfi_escape 0x0a
+ .nop
+ .cfi_escape 0x02, 0x00, 0x02, 0x00
+ .nop
+ .cfi_escape 0x03; .cfi_escape data2(0)
+ .cfi_escape 0x04; .cfi_escape data4(0)
+ .nop
+ .cfi_escape 0x0b
+ .nop
+ .cfi_restore_state
+ .nop
+ .cfi_endproc
+
+func2:
+ .cfi_startproc
+ .nop
+ /* DW_CFA_register reg127, reg129. */
+ .cfi_escape 0x09, uleb128(127), uleb128(129)
+ /* DW_CFA_val_expression reg250, ... */
+ .cfi_escape 0x16, uleb128(250)
+ /* ... <len>. */
+ .cfi_escape uleb128(.LE0e - .LE0s)
+ .cfi_label .LE0s
+ /* DW_OP_breg3. */
+ .cfi_escape 0x73, sleb128(-1024)
+ .cfi_label .LE0e
+ .nop
+ .cfi_endproc
diff --git a/gas/testsuite/gas/coff/coff.exp b/gas/testsuite/gas/coff/coff.exp
new file mode 100644
index 0000000..b5e7d24
--- /dev/null
+++ b/gas/testsuite/gas/coff/coff.exp
@@ -0,0 +1,40 @@
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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.
+
+#
+# coff tests
+#
+
+if { ![is_coff_format] } then {
+ return
+}
+
+# We omit the ARM toolchains because they define locals to start with '.',
+# which eliminates .eos, .text etc from the output.
+# Also omit c4x and c54x, since .tag and .def mean something different there.
+if { ![istarget arm*-*-*]
+ && ![istarget *c4x*-*-*]
+ && ![istarget *c54x*-*-*] } {
+ run_dump_test tag
+}
+
+# Omit c4x and c54x, since .def means something different there.
+if { ![istarget *c4x*-*-*] && ![istarget *c54x*-*-*] } {
+ run_dump_test func1
+ run_dump_test func2
+ run_dump_test func3
+ run_dump_test func4
+}
diff --git a/gas/testsuite/gas/coff/func1.d b/gas/testsuite/gas/coff/func1.d
new file mode 100644
index 0000000..c0bfa83
--- /dev/null
+++ b/gas/testsuite/gas/coff/func1.d
@@ -0,0 +1,16 @@
+#xfail: aarch64-*-*
+#objdump: -t
+#name: functions w/o C_EFCN
+
+.*: file format .*
+
+SYMBOL TABLE:
+\[ 0\]\(sec -2\)\(fl 0x00\)\(ty 0\)\(scl 103\) \(nx 1\) 0x0+0000 func1.c
+File *
+\[ 2\]\(sec 1\)\(fl 0x00\)\(ty 20\)\(scl 3\) \(nx 1\) 0x0+0000 inner
+AUX tagndx 0 ttlsiz 0x0 lnnos 0 next 4
+\[ 4\]\(sec 1\)\(fl 0x00\)\(ty 20\)\(scl 3\) \(nx 1\) 0x0+000. outer
+AUX tagndx 0 ttlsiz 0x0 lnnos 0 next 6
+\[ 6\]\(sec 1\)\(fl 0x00\)\(ty 20\)\(scl 2\) \(nx 1\) 0x0+000. test
+AUX tagndx 0 ttlsiz 0x0 lnnos 0 next 0
+#pass
diff --git a/gas/testsuite/gas/coff/func1.s b/gas/testsuite/gas/coff/func1.s
new file mode 100644
index 0000000..28300e7
--- /dev/null
+++ b/gas/testsuite/gas/coff/func1.s
@@ -0,0 +1,22 @@
+ .file "func1.c"
+ .text
+ .macro fcn, name
+ .def \name
+ .scl 3 /* C_STAT */
+ .type 32 /* DT_FUNC */
+ .endef
+\name:
+ .endm
+
+ fcn inner
+ .nop
+
+ fcn outer
+ .nop
+ .nop
+
+ .global test
+ fcn test
+ .nop
+ .nop
+ .nop
diff --git a/gas/testsuite/gas/coff/func2.d b/gas/testsuite/gas/coff/func2.d
new file mode 100644
index 0000000..55a3a25
--- /dev/null
+++ b/gas/testsuite/gas/coff/func2.d
@@ -0,0 +1,16 @@
+#xfail: aarch64-*-*
+#objdump: -t
+#name: functions w/ C_EFCN
+
+.*: file format .*
+
+SYMBOL TABLE:
+\[ 0\]\(sec -2\)\(fl 0x00\)\(ty 0\)\(scl 103\) \(nx 1\) 0x0+0000 func2.c
+File *
+\[ 2\]\(sec 1\)\(fl 0x00\)\(ty 20\)\(scl 3\) \(nx 1\) 0x0+0000 inner
+AUX tagndx 0 ttlsiz 0x[124] lnnos 0 next 4
+\[ 4\]\(sec 1\)\(fl 0x00\)\(ty 20\)\(scl 3\) \(nx 1\) 0x0+000. outer
+AUX tagndx 0 ttlsiz 0x[248] lnnos 0 next 6
+\[ 6\]\(sec 1\)\(fl 0x00\)\(ty 20\)\(scl 2\) \(nx 1\) 0x0+000. test
+AUX tagndx 0 ttlsiz 0x[36c] lnnos 0 next 0
+#pass
diff --git a/gas/testsuite/gas/coff/func2.s b/gas/testsuite/gas/coff/func2.s
new file mode 100644
index 0000000..75f2069
--- /dev/null
+++ b/gas/testsuite/gas/coff/func2.s
@@ -0,0 +1,34 @@
+ .file "func2.c"
+
+ .macro fcn, name
+ .def \name
+ .scl 3 /* C_STAT */
+ .type 32 /* DT_FUNC */
+ .endef
+\name:
+ .endm
+
+ .macro efcn, name
+ .def .\name
+ .scl 255 /* C_EFCN */
+ .val .
+ .endef
+ .endm
+
+ .text
+
+ fcn inner
+ .nop
+ efcn inner
+
+ fcn outer
+ .nop
+ .nop
+ efcn outer
+
+ .global test
+ fcn test
+ .nop
+ .nop
+ .nop
+ efcn test
diff --git a/gas/testsuite/gas/coff/func3.d b/gas/testsuite/gas/coff/func3.d
new file mode 100644
index 0000000..06b37f8
--- /dev/null
+++ b/gas/testsuite/gas/coff/func3.d
@@ -0,0 +1,16 @@
+#xfail: aarch64-*-*
+#objdump: -t
+#name: functions mixed C_EFCN
+
+.*: file format .*
+
+SYMBOL TABLE:
+\[ 0\]\(sec -2\)\(fl 0x00\)\(ty 0\)\(scl 103\) \(nx 1\) 0x0+0000 func3.c
+File *
+\[ 2\]\(sec 1\)\(fl 0x00\)\(ty 20\)\(scl 3\) \(nx 1\) 0x0+0000 inner
+AUX tagndx 0 ttlsiz 0x0 lnnos 0 next 4
+\[ 4\]\(sec 1\)\(fl 0x00\)\(ty 20\)\(scl 3\) \(nx 1\) 0x0+000. outer
+AUX tagndx 0 ttlsiz 0x[248] lnnos 0 next 6
+\[ 6\]\(sec 1\)\(fl 0x00\)\(ty 20\)\(scl 2\) \(nx 1\) 0x0+000. test
+AUX tagndx 0 ttlsiz 0x[36c] lnnos 0 next 0
+#pass
diff --git a/gas/testsuite/gas/coff/func3.s b/gas/testsuite/gas/coff/func3.s
new file mode 100644
index 0000000..5d41171
--- /dev/null
+++ b/gas/testsuite/gas/coff/func3.s
@@ -0,0 +1,33 @@
+ .file "func3.c"
+
+ .macro fcn, name
+ .def \name
+ .scl 3 /* C_STAT */
+ .type 32 /* DT_FUNC */
+ .endef
+\name:
+ .endm
+
+ .macro efcn, name
+ .def .\name
+ .scl 255 /* C_EFCN */
+ .val .
+ .endef
+ .endm
+
+ .text
+
+ fcn inner
+ .nop
+
+ fcn outer
+ .nop
+ .nop
+ efcn outer
+
+ .global test
+ fcn test
+ .nop
+ .nop
+ .nop
+ efcn test
diff --git a/gas/testsuite/gas/coff/func4.d b/gas/testsuite/gas/coff/func4.d
new file mode 100644
index 0000000..e7cd444
--- /dev/null
+++ b/gas/testsuite/gas/coff/func4.d
@@ -0,0 +1,18 @@
+#xfail: aarch64-*-*
+#objdump: -t
+#name: functions interleaved with data
+
+.*: file format .*
+
+SYMBOL TABLE:
+\[ 0\]\(sec -2\)\(fl 0x00\)\(ty 0\)\(scl 103\) \(nx 1\) 0x0+0000 func4.c
+File *
+\[ 2\]\(sec 1\)\(fl 0x00\)\(ty 20\)\(scl 3\) \(nx 1\) 0x0+0000 inner
+AUX tagndx 0 ttlsiz 0x[124] lnnos 0 next 5
+\[ 4\]\(sec 2\)\(fl 0x00\)\(ty 0\)\(scl 3\) \(nx 0\) 0x0+0000 item1
+\[ 5\]\(sec 1\)\(fl 0x00\)\(ty 20\)\(scl 3\) \(nx 1\) 0x0+000. outer
+AUX tagndx 0 ttlsiz 0x[248] lnnos 0 next 8
+\[ 7\]\(sec 2\)\(fl 0x00\)\(ty 0\)\(scl 3\) \(nx 0\) 0x0+000. item2
+\[ 8\]\(sec 1\)\(fl 0x00\)\(ty 20\)\(scl 2\) \(nx 1\) 0x0+000. test
+AUX tagndx 0 ttlsiz 0x[36c] lnnos 0 next 0
+#pass
diff --git a/gas/testsuite/gas/coff/func4.s b/gas/testsuite/gas/coff/func4.s
new file mode 100644
index 0000000..e9c75f4
--- /dev/null
+++ b/gas/testsuite/gas/coff/func4.s
@@ -0,0 +1,41 @@
+ .file "func4.c"
+
+ .macro fcn, name
+ .def \name
+ .scl 3 /* C_STAT */
+ .type 32 /* DT_FUNC */
+ .endef
+\name:
+ .endm
+
+ .macro efcn, name
+ .def .\name
+ .scl 255 /* C_EFCN */
+ .val .
+ .endef
+ .endm
+
+ .text
+ fcn inner
+ .nop
+ efcn inner
+
+ .data
+item1: .long -1
+
+ .text
+ fcn outer
+ .nop
+ .nop
+ efcn outer
+
+ .data
+item2: .long -2
+
+ .text
+ .global test
+ fcn test
+ .nop
+ .nop
+ .nop
+ efcn test
diff --git a/gas/testsuite/gas/all/cofftag.d b/gas/testsuite/gas/coff/tag.d
index 2d2a4cc..e366d4f 100644
--- a/gas/testsuite/gas/all/cofftag.d
+++ b/gas/testsuite/gas/coff/tag.d
@@ -5,7 +5,7 @@
SYMBOL TABLE:
\[ 0\]\(sec -2\)\(fl 0x00\)\(ty 0\)\(scl 103\) \(nx 1\) 0x0+0000 foo.c
-File
+File *
\[ 2\]\(sec 1\)\(fl 0x00\)\(ty 0\)\(scl 6\) \(nx 0\) 0x0+0000 gcc2_compiled.
\[ 3\]\(sec 1\)\(fl 0x00\)\(ty 0\)\(scl 6\) \(nx 0\) 0x0+0000 ___gnu_compiled_c
\[ 4\]\(sec -2\)\(fl 0x00\)\(ty a\)\(scl 15\) \(nx 1\) 0x0+0000 _token
diff --git a/gas/testsuite/gas/all/cofftag.s b/gas/testsuite/gas/coff/tag.s
index 814d3ed..a17c7f5 100644
--- a/gas/testsuite/gas/all/cofftag.s
+++ b/gas/testsuite/gas/coff/tag.s
@@ -4,7 +4,7 @@
operator,
flags
};
-
+
enum token what= operator;
Type numbers have been converted to decimal to make this test pass on
diff --git a/gas/testsuite/gas/epiphany/allinsn.exp b/gas/testsuite/gas/epiphany/allinsn.exp
index 5ac2ef0..b4f10a6 100644
--- a/gas/testsuite/gas/epiphany/allinsn.exp
+++ b/gas/testsuite/gas/epiphany/allinsn.exp
@@ -24,4 +24,5 @@ if [istarget epiphany*-*-*] {
run_dump_test "badrelax"
gas_test_error "badpostmod" "" "destination register modified by displacement-post-modified address"
run_dump_test "addr-syntax"
+ run_dump_test nop
}
diff --git a/gas/testsuite/gas/epiphany/nop.d b/gas/testsuite/gas/epiphany/nop.d
new file mode 100644
index 0000000..23f457b
--- /dev/null
+++ b/gas/testsuite/gas/epiphany/nop.d
@@ -0,0 +1,16 @@
+#as:
+#objdump: -dr
+
+.*: file format elf32-epiphany
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ 0: 01b2 idle
+ 2: 01a2 nop
+ 4: 01a2 nop
+ 6: 01a2 nop
+ 8: 01b2 idle
+ a: 01b2 idle
+ c: 01a2 nop
+ e: 01a2 nop
diff --git a/gas/testsuite/gas/epiphany/nop.s b/gas/testsuite/gas/epiphany/nop.s
new file mode 100644
index 0000000..ce5cb67
--- /dev/null
+++ b/gas/testsuite/gas/epiphany/nop.s
@@ -0,0 +1,5 @@
+ .text
+ idle
+ .p2align 3
+ idle
+ idle
diff --git a/gas/testsuite/gas/i386/align-branch-6.d b/gas/testsuite/gas/i386/align-branch-6.d
index 11dc03c..cd0a162 100644
--- a/gas/testsuite/gas/i386/align-branch-6.d
+++ b/gas/testsuite/gas/i386/align-branch-6.d
@@ -8,6 +8,7 @@ Disassembly of section .text:
0+ <_start>:
+[a-f0-9]+: eb 3c jmp 3e <_start\+0x3e>
+ +[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
@@ -15,7 +16,6 @@ Disassembly of section .text:
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
- +[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: f2 73 bf bnd jae 0 <_start>
+[a-f0-9]+: c3 ret
#pass
diff --git a/gas/testsuite/gas/i386/arch-4.d b/gas/testsuite/gas/i386/arch-4.d
index 54fde15..6ebd456 100644
--- a/gas/testsuite/gas/i386/arch-4.d
+++ b/gas/testsuite/gas/i386/arch-4.d
@@ -6,7 +6,9 @@
Disassembly of section .text:
0+ <.text>:
+[ ]*[a-f0-9]+: 0f ff cc [ ]*ud0 %esp,%ecx
[ ]*[a-f0-9]+: 0f ff 07 [ ]*ud0 \(%edi\),%eax
+[ ]*[a-f0-9]+: 0f b9 cc [ ]*ud1 %esp,%ecx
[ ]*[a-f0-9]+: 0f b9 07 [ ]*ud1 \(%edi\),%eax
[ ]*[a-f0-9]+: 0f 0b ud2
[ ]*[a-f0-9]+: 0f 0b ud2
diff --git a/gas/testsuite/gas/i386/arch-4.s b/gas/testsuite/gas/i386/arch-4.s
index cf14d73..62c3f8a 100644
--- a/gas/testsuite/gas/i386/arch-4.s
+++ b/gas/testsuite/gas/i386/arch-4.s
@@ -1,5 +1,9 @@
.text
+ ud0
+ int3
ud0 (%edi),%eax
+ ud1
+ int3
ud1 (%edi),%eax
ud2
ud2a
diff --git a/gas/testsuite/gas/i386/avx10_2-256-cvt-intel.d b/gas/testsuite/gas/i386/avx10_2-256-cvt-intel.d
index c349e48..1303642 100644
--- a/gas/testsuite/gas/i386/avx10_2-256-cvt-intel.d
+++ b/gas/testsuite/gas/i386/avx10_2-256-cvt-intel.d
@@ -10,7 +10,6 @@ Disassembly of section \.text:
[a-f0-9]+ <_intel>:
\s*[a-f0-9]+:\s*62 f2 55 08 67 f4\s+vcvt2ps2phx xmm6,xmm5,xmm4
\s*[a-f0-9]+:\s*62 f2 55 28 67 f4\s+vcvt2ps2phx ymm6,ymm5,ymm4
-\s*[a-f0-9]+:\s*62 f2 51 18 67 f4\s+vcvt2ps2phx ymm6,ymm5,ymm4\{rn-sae\}
\s*[a-f0-9]+:\s*62 f2 55 0f 67 b4 f4 00 00 00 10\s+vcvt2ps2phx xmm6\{k7\},xmm5,XMMWORD PTR \[esp\+esi\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 f2 55 18 67 31\s+vcvt2ps2phx xmm6,xmm5,DWORD BCST \[ecx\]
\s*[a-f0-9]+:\s*62 f2 55 08 67 71 7f\s+vcvt2ps2phx xmm6,xmm5,XMMWORD PTR \[ecx\+0x7f0\]
diff --git a/gas/testsuite/gas/i386/avx10_2-256-cvt.d b/gas/testsuite/gas/i386/avx10_2-256-cvt.d
index e59e735..70f03a9 100644
--- a/gas/testsuite/gas/i386/avx10_2-256-cvt.d
+++ b/gas/testsuite/gas/i386/avx10_2-256-cvt.d
@@ -8,7 +8,6 @@ Disassembly of section \.text:
0+ <_start>:
\s*[a-f0-9]+:\s*62 f2 55 08 67 f4\s+vcvt2ps2phx\s+%xmm4,%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f2 55 28 67 f4\s+vcvt2ps2phx\s+%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 51 18 67 f4\s+vcvt2ps2phx\s+\{rn-sae\},%ymm4,%ymm5,%ymm6
\s*[a-f0-9]+:\s*62 f2 55 0f 67 b4 f4 00 00 00 10\s+vcvt2ps2phx\s+0x10000000\(%esp,%esi,8\),%xmm5,%xmm6\{%k7\}
\s*[a-f0-9]+:\s*62 f2 55 18 67 31\s+vcvt2ps2phx\s+\(%ecx\)\{1to4\},%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f2 55 08 67 71 7f\s+vcvt2ps2phx\s+0x7f0\(%ecx\),%xmm5,%xmm6
diff --git a/gas/testsuite/gas/i386/avx10_2-256-cvt.s b/gas/testsuite/gas/i386/avx10_2-256-cvt.s
index 33789cc0..f72ff21 100644
--- a/gas/testsuite/gas/i386/avx10_2-256-cvt.s
+++ b/gas/testsuite/gas/i386/avx10_2-256-cvt.s
@@ -6,7 +6,6 @@
_start:
vcvt2ps2phx %xmm4, %xmm5, %xmm6
vcvt2ps2phx %ymm4, %ymm5, %ymm6
- vcvt2ps2phx {rn-sae}, %ymm4, %ymm5, %ymm6
vcvt2ps2phx 0x10000000(%esp, %esi, 8), %xmm5, %xmm6{%k7}
vcvt2ps2phx (%ecx){1to4}, %xmm5, %xmm6
vcvt2ps2phx 2032(%ecx), %xmm5, %xmm6
@@ -63,7 +62,6 @@ _intel:
.intel_syntax noprefix
vcvt2ps2phx xmm6, xmm5, xmm4
vcvt2ps2phx ymm6, ymm5, ymm4
- vcvt2ps2phx ymm6, ymm5, ymm4, {rn-sae}
vcvt2ps2phx xmm6{k7}, xmm5, XMMWORD PTR [esp+esi*8+0x10000000]
vcvt2ps2phx xmm6, xmm5, DWORD PTR [ecx]{1to4}
vcvt2ps2phx xmm6, xmm5, XMMWORD PTR [ecx+2032]
diff --git a/gas/testsuite/gas/i386/avx10_2-256-miscs-intel.d b/gas/testsuite/gas/i386/avx10_2-256-miscs-intel.d
index 4abace4..0a77225 100644
--- a/gas/testsuite/gas/i386/avx10_2-256-miscs-intel.d
+++ b/gas/testsuite/gas/i386/avx10_2-256-miscs-intel.d
@@ -36,17 +36,14 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f3 57 bf 52 72 80 7b\s+vminmaxbf16 ymm6\{k7\}\{z\},ymm5,WORD BCST \[edx-0x100\],0x7b
\s*[a-f0-9]+:\s*62 f3 57 18 52 31 7b\s+vminmaxbf16 xmm6,xmm5,WORD BCST \[ecx\],0x7b
\s*[a-f0-9]+:\s*62 f3 57 9f 52 72 80 7b\s+vminmaxbf16 xmm6\{k7\}\{z\},xmm5,WORD BCST \[edx-0x100\],0x7b
-\s*[a-f0-9]+:\s*62 f3 d1 18 52 f4 7b\s+vminmaxpd ymm6,ymm5,ymm4\{sae\},0x7b
\s*[a-f0-9]+:\s*62 f3 d5 38 52 31 7b\s+vminmaxpd ymm6,ymm5,QWORD BCST \[ecx\],0x7b
\s*[a-f0-9]+:\s*62 f3 d5 bf 52 72 80 7b\s+vminmaxpd ymm6\{k7\}\{z\},ymm5,QWORD BCST \[edx-0x400\],0x7b
\s*[a-f0-9]+:\s*62 f3 d5 18 52 31 7b\s+vminmaxpd xmm6,xmm5,QWORD BCST \[ecx\],0x7b
\s*[a-f0-9]+:\s*62 f3 d5 9f 52 72 80 7b\s+vminmaxpd xmm6\{k7\}\{z\},xmm5,QWORD BCST \[edx-0x400\],0x7b
-\s*[a-f0-9]+:\s*62 f3 50 18 52 f4 7b\s+vminmaxph ymm6,ymm5,ymm4\{sae\},0x7b
\s*[a-f0-9]+:\s*62 f3 54 38 52 31 7b\s+vminmaxph ymm6,ymm5,WORD BCST \[ecx\],0x7b
\s*[a-f0-9]+:\s*62 f3 54 bf 52 72 80 7b\s+vminmaxph ymm6\{k7\}\{z\},ymm5,WORD BCST \[edx-0x100\],0x7b
\s*[a-f0-9]+:\s*62 f3 54 18 52 31 7b\s+vminmaxph xmm6,xmm5,WORD BCST \[ecx\],0x7b
\s*[a-f0-9]+:\s*62 f3 54 9f 52 72 80 7b\s+vminmaxph xmm6\{k7\}\{z\},xmm5,WORD BCST \[edx-0x100\],0x7b
-\s*[a-f0-9]+:\s*62 f3 51 18 52 f4 7b\s+vminmaxps ymm6,ymm5,ymm4\{sae\},0x7b
\s*[a-f0-9]+:\s*62 f3 55 38 52 31 7b\s+vminmaxps ymm6,ymm5,DWORD BCST \[ecx\],0x7b
\s*[a-f0-9]+:\s*62 f3 55 bf 52 72 80 7b\s+vminmaxps ymm6\{k7\}\{z\},ymm5,DWORD BCST \[edx-0x200\],0x7b
\s*[a-f0-9]+:\s*62 f3 55 18 52 31 7b\s+vminmaxps xmm6,xmm5,DWORD BCST \[ecx\],0x7b
diff --git a/gas/testsuite/gas/i386/avx10_2-256-miscs.d b/gas/testsuite/gas/i386/avx10_2-256-miscs.d
index 6682342..4f83b43 100644
--- a/gas/testsuite/gas/i386/avx10_2-256-miscs.d
+++ b/gas/testsuite/gas/i386/avx10_2-256-miscs.d
@@ -34,17 +34,14 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f3 57 bf 52 72 80 7b\s+vminmaxbf16\s\$0x7b,-0x100\(%edx\)\{1to16\},%ymm5,%ymm6\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 f3 57 18 52 31 7b\s+vminmaxbf16\s\$0x7b,\(%ecx\)\{1to8\},%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f3 57 9f 52 72 80 7b\s+vminmaxbf16\s\$0x7b,-0x100\(%edx\)\{1to8\},%xmm5,%xmm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f3 d1 18 52 f4 7b\s+vminmaxpd\s\$0x7b,\{sae\},%ymm4,%ymm5,%ymm6
\s*[a-f0-9]+:\s*62 f3 d5 38 52 31 7b\s+vminmaxpd\s\$0x7b,\(%ecx\)\{1to4\},%ymm5,%ymm6
\s*[a-f0-9]+:\s*62 f3 d5 bf 52 72 80 7b\s+vminmaxpd\s\$0x7b,-0x400\(%edx\)\{1to4\},%ymm5,%ymm6\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 f3 d5 18 52 31 7b\s+vminmaxpd\s\$0x7b,\(%ecx\)\{1to2\},%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f3 d5 9f 52 72 80 7b\s+vminmaxpd\s\$0x7b,-0x400\(%edx\)\{1to2\},%xmm5,%xmm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f3 50 18 52 f4 7b\s+vminmaxph\s\$0x7b,\{sae\},%ymm4,%ymm5,%ymm6
\s*[a-f0-9]+:\s*62 f3 54 38 52 31 7b\s+vminmaxph\s\$0x7b,\(%ecx\)\{1to16\},%ymm5,%ymm6
\s*[a-f0-9]+:\s*62 f3 54 bf 52 72 80 7b\s+vminmaxph\s\$0x7b,-0x100\(%edx\)\{1to16\},%ymm5,%ymm6\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 f3 54 18 52 31 7b\s+vminmaxph\s\$0x7b,\(%ecx\)\{1to8\},%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f3 54 9f 52 72 80 7b\s+vminmaxph\s\$0x7b,-0x100\(%edx\)\{1to8\},%xmm5,%xmm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f3 51 18 52 f4 7b\s+vminmaxps\s\$0x7b,\{sae\},%ymm4,%ymm5,%ymm6
\s*[a-f0-9]+:\s*62 f3 55 38 52 31 7b\s+vminmaxps\s\$0x7b,\(%ecx\)\{1to8\},%ymm5,%ymm6
\s*[a-f0-9]+:\s*62 f3 55 bf 52 72 80 7b\s+vminmaxps\s\$0x7b,-0x200\(%edx\)\{1to8\},%ymm5,%ymm6\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 f3 55 18 52 31 7b\s+vminmaxps\s\$0x7b,\(%ecx\)\{1to4\},%xmm5,%xmm6
diff --git a/gas/testsuite/gas/i386/avx10_2-256-miscs.s b/gas/testsuite/gas/i386/avx10_2-256-miscs.s
index a35d8bc..79e8177 100644
--- a/gas/testsuite/gas/i386/avx10_2-256-miscs.s
+++ b/gas/testsuite/gas/i386/avx10_2-256-miscs.s
@@ -17,17 +17,14 @@ _start:
vminmaxbf16 $123, -256(%edx){1to16}, %ymm5, %ymm6{%k7}{z}
vminmaxbf16 $123, (%ecx){1to8}, %xmm5, %xmm6
vminmaxbf16 $123, -256(%edx){1to8}, %xmm5, %xmm6{%k7}{z}
- vminmaxpd $123, {sae}, %ymm4, %ymm5, %ymm6
vminmaxpd $123, (%ecx){1to4}, %ymm5, %ymm6
vminmaxpd $123, -1024(%edx){1to4}, %ymm5, %ymm6{%k7}{z}
vminmaxpd $123, (%ecx){1to2}, %xmm5, %xmm6
vminmaxpd $123, -1024(%edx){1to2}, %xmm5, %xmm6{%k7}{z}
- vminmaxph $123, {sae}, %ymm4, %ymm5, %ymm6
vminmaxph $123, (%ecx){1to16}, %ymm5, %ymm6
vminmaxph $123, -256(%edx){1to16}, %ymm5, %ymm6{%k7}{z}
vminmaxph $123, (%ecx){1to8}, %xmm5, %xmm6
vminmaxph $123, -256(%edx){1to8}, %xmm5, %xmm6{%k7}{z}
- vminmaxps $123, {sae}, %ymm4, %ymm5, %ymm6
vminmaxps $123, (%ecx){1to8}, %ymm5, %ymm6
vminmaxps $123, -512(%edx){1to8}, %ymm5, %ymm6{%k7}{z}
vminmaxps $123, (%ecx){1to4}, %xmm5, %xmm6
@@ -83,17 +80,14 @@ _intel:
vminmaxbf16 ymm6{k7}{z}, ymm5, WORD PTR [edx-256]{1to16}, 123
vminmaxbf16 xmm6, xmm5, [ecx]{1to8}, 123
vminmaxbf16 xmm6{k7}{z}, xmm5, WORD PTR [edx-256]{1to8}, 123
- vminmaxpd ymm6, ymm5, ymm4, {sae}, 123
vminmaxpd ymm6, ymm5, QWORD PTR [ecx]{1to4}, 123
vminmaxpd ymm6{k7}{z}, ymm5, [edx-1024]{1to4}, 123
vminmaxpd xmm6, xmm5, QWORD PTR [ecx]{1to2}, 123
vminmaxpd xmm6{k7}{z}, xmm5, [edx-1024]{1to2}, 123
- vminmaxph ymm6, ymm5, ymm4, {sae}, 123
vminmaxph ymm6, ymm5, [ecx]{1to16}, 123
vminmaxph ymm6{k7}{z}, ymm5, WORD PTR [edx-256]{1to16}, 123
vminmaxph xmm6, xmm5, WORD PTR [ecx]{1to8}, 123
vminmaxph xmm6{k7}{z}, xmm5, [edx-256]{1to8}, 123
- vminmaxps ymm6, ymm5, ymm4, {sae}, 123
vminmaxps ymm6, ymm5, DWORD PTR [ecx]{1to8}, 123
vminmaxps ymm6{k7}{z}, ymm5, [edx-512]{1to8}, 123
vminmaxps xmm6, xmm5, [ecx]{1to4}, 123
diff --git a/gas/testsuite/gas/i386/avx10_2-256-satcvt-intel.d b/gas/testsuite/gas/i386/avx10_2-256-satcvt-intel.d
index 38935d3..f2a7e73 100644
--- a/gas/testsuite/gas/i386/avx10_2-256-satcvt-intel.d
+++ b/gas/testsuite/gas/i386/avx10_2-256-satcvt-intel.d
@@ -20,7 +20,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7f bf 69 72 80\s+vcvtbf162ibs ymm6\{k7\}\{z\},WORD BCST \[edx-0x100\]
\s*[a-f0-9]+:\s*62 f5 7c 08 69 f5\s+vcvtph2ibs xmm6,xmm5
\s*[a-f0-9]+:\s*62 f5 7c 28 69 f5\s+vcvtph2ibs ymm6,ymm5
-\s*[a-f0-9]+:\s*62 f5 78 18 69 f5\s+vcvtph2ibs ymm6,ymm5\{rn-sae\}
\s*[a-f0-9]+:\s*62 f5 7c 0f 69 b4 f4 00 00 00 10\s+vcvtph2ibs xmm6\{k7\},XMMWORD PTR \[esp\+esi\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 f5 7c 18 69 31\s+vcvtph2ibs xmm6,WORD BCST \[ecx\]
\s*[a-f0-9]+:\s*62 f5 7c 08 69 71 7f\s+vcvtph2ibs xmm6,XMMWORD PTR \[ecx\+0x7f0\]
@@ -31,7 +30,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7c bf 69 72 80\s+vcvtph2ibs ymm6\{k7\}\{z\},WORD BCST \[edx-0x100\]
\s*[a-f0-9]+:\s*62 f5 7d 08 69 f5\s+vcvtps2ibs xmm6,xmm5
\s*[a-f0-9]+:\s*62 f5 7d 28 69 f5\s+vcvtps2ibs ymm6,ymm5
-\s*[a-f0-9]+:\s*62 f5 79 18 69 f5\s+vcvtps2ibs ymm6,ymm5\{rn-sae\}
\s*[a-f0-9]+:\s*62 f5 7d 0f 69 b4 f4 00 00 00 10\s+vcvtps2ibs xmm6\{k7\},XMMWORD PTR \[esp\+esi\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 f5 7d 18 69 31\s+vcvtps2ibs xmm6,DWORD BCST \[ecx\]
\s*[a-f0-9]+:\s*62 f5 7d 08 69 71 7f\s+vcvtps2ibs xmm6,XMMWORD PTR \[ecx\+0x7f0\]
@@ -52,7 +50,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7f bf 68 72 80\s+vcvttbf162ibs ymm6\{k7\}\{z\},WORD BCST \[edx-0x100\]
\s*[a-f0-9]+:\s*62 f5 7c 08 68 f5\s+vcvttph2ibs xmm6,xmm5
\s*[a-f0-9]+:\s*62 f5 7c 28 68 f5\s+vcvttph2ibs ymm6,ymm5
-\s*[a-f0-9]+:\s*62 f5 78 18 68 f5\s+vcvttph2ibs ymm6,ymm5\{sae\}
\s*[a-f0-9]+:\s*62 f5 7c 0f 68 b4 f4 00 00 00 10\s+vcvttph2ibs xmm6\{k7\},XMMWORD PTR \[esp\+esi\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 f5 7c 18 68 31\s+vcvttph2ibs xmm6,WORD BCST \[ecx\]
\s*[a-f0-9]+:\s*62 f5 7c 08 68 71 7f\s+vcvttph2ibs xmm6,XMMWORD PTR \[ecx\+0x7f0\]
@@ -63,7 +60,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7c bf 68 72 80\s+vcvttph2ibs ymm6\{k7\}\{z\},WORD BCST \[edx-0x100\]
\s*[a-f0-9]+:\s*62 f5 7d 08 68 f5\s+vcvttps2ibs xmm6,xmm5
\s*[a-f0-9]+:\s*62 f5 7d 28 68 f5\s+vcvttps2ibs ymm6,ymm5
-\s*[a-f0-9]+:\s*62 f5 79 18 68 f5\s+vcvttps2ibs ymm6,ymm5\{sae\}
\s*[a-f0-9]+:\s*62 f5 7d 0f 68 b4 f4 00 00 00 10\s+vcvttps2ibs xmm6\{k7\},XMMWORD PTR \[esp\+esi\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 f5 7d 18 68 31\s+vcvttps2ibs xmm6,DWORD BCST \[ecx\]
\s*[a-f0-9]+:\s*62 f5 7d 08 68 71 7f\s+vcvttps2ibs xmm6,XMMWORD PTR \[ecx\+0x7f0\]
@@ -74,7 +70,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7d bf 68 72 80\s+vcvttps2ibs ymm6\{k7\}\{z\},DWORD BCST \[edx-0x200\]
\s*[a-f0-9]+:\s*62 f5 fc 08 6d f5\s+vcvttpd2dqs xmm6,xmm5
\s*[a-f0-9]+:\s*62 f5 fc 28 6d f5\s+vcvttpd2dqs xmm6,ymm5
-\s*[a-f0-9]+:\s*62 f5 f8 18 6d f5\s+vcvttpd2dqs xmm6,ymm5\{sae\}
\s*[a-f0-9]+:\s*62 f5 fc 0f 6d b4 f4 00 00 00 10\s+vcvttpd2dqs xmm6\{k7\},XMMWORD PTR \[esp\+esi\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 f5 fc 18 6d 31\s+vcvttpd2dqs xmm6,QWORD BCST \[ecx\]\{1to2\}
\s*[a-f0-9]+:\s*62 f5 fc 08 6d 71 7f\s+vcvttpd2dqs xmm6,XMMWORD PTR \[ecx\+0x7f0\]
@@ -84,7 +79,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 fc bf 6d 72 80\s+vcvttpd2dqs xmm6\{k7\}\{z\},QWORD BCST \[edx-0x400\]\{1to4\}
\s*[a-f0-9]+:\s*62 f5 fd 08 6d f5\s+vcvttpd2qqs xmm6,xmm5
\s*[a-f0-9]+:\s*62 f5 fd 28 6d f5\s+vcvttpd2qqs ymm6,ymm5
-\s*[a-f0-9]+:\s*62 f5 f9 18 6d f5\s+vcvttpd2qqs ymm6,ymm5\{sae\}
\s*[a-f0-9]+:\s*62 f5 fd 0f 6d b4 f4 00 00 00 10\s+vcvttpd2qqs xmm6\{k7\},XMMWORD PTR \[esp\+esi\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 f5 fd 18 6d 31\s+vcvttpd2qqs xmm6,QWORD BCST \[ecx\]
\s*[a-f0-9]+:\s*62 f5 fd 08 6d 71 7f\s+vcvttpd2qqs xmm6,XMMWORD PTR \[ecx\+0x7f0\]
@@ -95,7 +89,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 fd bf 6d 72 80\s+vcvttpd2qqs ymm6\{k7\}\{z\},QWORD BCST \[edx-0x400\]
\s*[a-f0-9]+:\s*62 f5 7c 08 6d f5\s+vcvttps2dqs xmm6,xmm5
\s*[a-f0-9]+:\s*62 f5 7c 28 6d f5\s+vcvttps2dqs ymm6,ymm5
-\s*[a-f0-9]+:\s*62 f5 78 18 6d f5\s+vcvttps2dqs ymm6,ymm5\{sae\}
\s*[a-f0-9]+:\s*62 f5 7c 0f 6d b4 f4 00 00 00 10\s+vcvttps2dqs xmm6\{k7\},XMMWORD PTR \[esp\+esi\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 f5 7c 18 6d 31\s+vcvttps2dqs xmm6,DWORD BCST \[ecx\]
\s*[a-f0-9]+:\s*62 f5 7c 08 6d 71 7f\s+vcvttps2dqs xmm6,XMMWORD PTR \[ecx\+0x7f0\]
@@ -106,7 +99,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7c bf 6d 72 80\s+vcvttps2dqs ymm6\{k7\}\{z\},DWORD BCST \[edx-0x200\]
\s*[a-f0-9]+:\s*62 f5 7d 08 6d f5\s+vcvttps2qqs xmm6,xmm5
\s*[a-f0-9]+:\s*62 f5 7d 28 6d f5\s+vcvttps2qqs ymm6,xmm5
-\s*[a-f0-9]+:\s*62 f5 79 18 6d f5\s+vcvttps2qqs ymm6,xmm5\{sae\}
\s*[a-f0-9]+:\s*62 f5 7d 0f 6d b4 f4 00 00 00 10\s+vcvttps2qqs xmm6\{k7\},QWORD PTR \[esp\+esi\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 f5 7d 18 6d 31\s+vcvttps2qqs xmm6,DWORD BCST \[ecx\]
\s*[a-f0-9]+:\s*62 f5 7d 08 6d 71 7f\s+vcvttps2qqs xmm6,QWORD PTR \[ecx\+0x3f8\]
@@ -139,7 +131,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7f bf 6b 72 80\s+vcvtbf162iubs ymm6\{k7\}\{z\},WORD BCST \[edx-0x100\]
\s*[a-f0-9]+:\s*62 f5 7c 08 6b f5\s+vcvtph2iubs xmm6,xmm5
\s*[a-f0-9]+:\s*62 f5 7c 28 6b f5\s+vcvtph2iubs ymm6,ymm5
-\s*[a-f0-9]+:\s*62 f5 78 18 6b f5\s+vcvtph2iubs ymm6,ymm5\{rn-sae\}
\s*[a-f0-9]+:\s*62 f5 7c 0f 6b b4 f4 00 00 00 10\s+vcvtph2iubs xmm6\{k7\},XMMWORD PTR \[esp\+esi\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 f5 7c 18 6b 31\s+vcvtph2iubs xmm6,WORD BCST \[ecx\]
\s*[a-f0-9]+:\s*62 f5 7c 08 6b 71 7f\s+vcvtph2iubs xmm6,XMMWORD PTR \[ecx\+0x7f0\]
@@ -150,7 +141,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7c bf 6b 72 80\s+vcvtph2iubs ymm6\{k7\}\{z\},WORD BCST \[edx-0x100\]
\s*[a-f0-9]+:\s*62 f5 7d 08 6b f5\s+vcvtps2iubs xmm6,xmm5
\s*[a-f0-9]+:\s*62 f5 7d 28 6b f5\s+vcvtps2iubs ymm6,ymm5
-\s*[a-f0-9]+:\s*62 f5 79 18 6b f5\s+vcvtps2iubs ymm6,ymm5\{rn-sae\}
\s*[a-f0-9]+:\s*62 f5 7d 0f 6b b4 f4 00 00 00 10\s+vcvtps2iubs xmm6\{k7\},XMMWORD PTR \[esp\+esi\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 f5 7d 18 6b 31\s+vcvtps2iubs xmm6,DWORD BCST \[ecx\]
\s*[a-f0-9]+:\s*62 f5 7d 08 6b 71 7f\s+vcvtps2iubs xmm6,XMMWORD PTR \[ecx\+0x7f0\]
@@ -171,7 +161,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7f bf 6a 72 80\s+vcvttbf162iubs ymm6\{k7\}\{z\},WORD BCST \[edx-0x100\]
\s*[a-f0-9]+:\s*62 f5 7c 08 6a f5\s+vcvttph2iubs xmm6,xmm5
\s*[a-f0-9]+:\s*62 f5 7c 28 6a f5\s+vcvttph2iubs ymm6,ymm5
-\s*[a-f0-9]+:\s*62 f5 78 18 6a f5\s+vcvttph2iubs ymm6,ymm5\{sae\}
\s*[a-f0-9]+:\s*62 f5 7c 0f 6a b4 f4 00 00 00 10\s+vcvttph2iubs xmm6\{k7\},XMMWORD PTR \[esp\+esi\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 f5 7c 18 6a 31\s+vcvttph2iubs xmm6,WORD BCST \[ecx\]
\s*[a-f0-9]+:\s*62 f5 7c 08 6a 71 7f\s+vcvttph2iubs xmm6,XMMWORD PTR \[ecx\+0x7f0\]
@@ -182,7 +171,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7c bf 6a 72 80\s+vcvttph2iubs ymm6\{k7\}\{z\},WORD BCST \[edx-0x100\]
\s*[a-f0-9]+:\s*62 f5 7d 08 6a f5\s+vcvttps2iubs xmm6,xmm5
\s*[a-f0-9]+:\s*62 f5 7d 28 6a f5\s+vcvttps2iubs ymm6,ymm5
-\s*[a-f0-9]+:\s*62 f5 79 18 6a f5\s+vcvttps2iubs ymm6,ymm5\{sae\}
\s*[a-f0-9]+:\s*62 f5 7d 0f 6a b4 f4 00 00 00 10\s+vcvttps2iubs xmm6\{k7\},XMMWORD PTR \[esp\+esi\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 f5 7d 18 6a 31\s+vcvttps2iubs xmm6,DWORD BCST \[ecx\]
\s*[a-f0-9]+:\s*62 f5 7d 08 6a 71 7f\s+vcvttps2iubs xmm6,XMMWORD PTR \[ecx\+0x7f0\]
@@ -193,7 +181,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7d bf 6a 72 80\s+vcvttps2iubs ymm6\{k7\}\{z\},DWORD BCST \[edx-0x200\]
\s*[a-f0-9]+:\s*62 f5 fc 08 6c f5\s+vcvttpd2udqs xmm6,xmm5
\s*[a-f0-9]+:\s*62 f5 fc 28 6c f5\s+vcvttpd2udqs xmm6,ymm5
-\s*[a-f0-9]+:\s*62 f5 f8 18 6c f5\s+vcvttpd2udqs xmm6,ymm5\{sae\}
\s*[a-f0-9]+:\s*62 f5 fc 0f 6c b4 f4 00 00 00 10\s+vcvttpd2udqs xmm6\{k7\},XMMWORD PTR \[esp\+esi\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 f5 fc 18 6c 31\s+vcvttpd2udqs xmm6,QWORD BCST \[ecx\]\{1to2\}
\s*[a-f0-9]+:\s*62 f5 fc 08 6c 71 7f\s+vcvttpd2udqs xmm6,XMMWORD PTR \[ecx\+0x7f0\]
@@ -203,7 +190,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 fc bf 6c 72 80\s+vcvttpd2udqs xmm6\{k7\}\{z\},QWORD BCST \[edx-0x400\]\{1to4\}
\s*[a-f0-9]+:\s*62 f5 fd 08 6c f5\s+vcvttpd2uqqs xmm6,xmm5
\s*[a-f0-9]+:\s*62 f5 fd 28 6c f5\s+vcvttpd2uqqs ymm6,ymm5
-\s*[a-f0-9]+:\s*62 f5 f9 18 6c f5\s+vcvttpd2uqqs ymm6,ymm5\{sae\}
\s*[a-f0-9]+:\s*62 f5 fd 0f 6c b4 f4 00 00 00 10\s+vcvttpd2uqqs xmm6\{k7\},XMMWORD PTR \[esp\+esi\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 f5 fd 18 6c 31\s+vcvttpd2uqqs xmm6,QWORD BCST \[ecx\]
\s*[a-f0-9]+:\s*62 f5 fd 08 6c 71 7f\s+vcvttpd2uqqs xmm6,XMMWORD PTR \[ecx\+0x7f0\]
@@ -214,7 +200,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 fd bf 6c 72 80\s+vcvttpd2uqqs ymm6\{k7\}\{z\},QWORD BCST \[edx-0x400\]
\s*[a-f0-9]+:\s*62 f5 7c 08 6c f5\s+vcvttps2udqs xmm6,xmm5
\s*[a-f0-9]+:\s*62 f5 7c 28 6c f5\s+vcvttps2udqs ymm6,ymm5
-\s*[a-f0-9]+:\s*62 f5 78 18 6c f5\s+vcvttps2udqs ymm6,ymm5\{sae\}
\s*[a-f0-9]+:\s*62 f5 7c 0f 6c b4 f4 00 00 00 10\s+vcvttps2udqs xmm6\{k7\},XMMWORD PTR \[esp\+esi\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 f5 7c 18 6c 31\s+vcvttps2udqs xmm6,DWORD BCST \[ecx\]
\s*[a-f0-9]+:\s*62 f5 7c 08 6c 71 7f\s+vcvttps2udqs xmm6,XMMWORD PTR \[ecx\+0x7f0\]
@@ -225,7 +210,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7c bf 6c 72 80\s+vcvttps2udqs ymm6\{k7\}\{z\},DWORD BCST \[edx-0x200\]
\s*[a-f0-9]+:\s*62 f5 7d 08 6c f5\s+vcvttps2uqqs xmm6,xmm5
\s*[a-f0-9]+:\s*62 f5 7d 28 6c f5\s+vcvttps2uqqs ymm6,xmm5
-\s*[a-f0-9]+:\s*62 f5 79 18 6c f5\s+vcvttps2uqqs ymm6,xmm5\{sae\}
\s*[a-f0-9]+:\s*62 f5 7d 0f 6c b4 f4 00 00 00 10\s+vcvttps2uqqs xmm6\{k7\},QWORD PTR \[esp\+esi\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 f5 7d 18 6c 31\s+vcvttps2uqqs xmm6,DWORD BCST \[ecx\]
\s*[a-f0-9]+:\s*62 f5 7d 08 6c 71 7f\s+vcvttps2uqqs xmm6,QWORD PTR \[ecx\+0x3f8\]
diff --git a/gas/testsuite/gas/i386/avx10_2-256-satcvt.d b/gas/testsuite/gas/i386/avx10_2-256-satcvt.d
index 1dd404d..4e6b881 100644
--- a/gas/testsuite/gas/i386/avx10_2-256-satcvt.d
+++ b/gas/testsuite/gas/i386/avx10_2-256-satcvt.d
@@ -18,7 +18,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7f bf 69 72 80\s+vcvtbf162ibs\s+-0x100\(%edx\)\{1to16\},%ymm6\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 f5 7c 08 69 f5\s+vcvtph2ibs\s+%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f5 7c 28 69 f5\s+vcvtph2ibs\s+%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 78 18 69 f5\s+vcvtph2ibs\s+\{rn-sae\},%ymm5,%ymm6
\s*[a-f0-9]+:\s*62 f5 7c 0f 69 b4 f4 00 00 00 10\s+vcvtph2ibs\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\}
\s*[a-f0-9]+:\s*62 f5 7c 18 69 31\s+vcvtph2ibs\s+\(%ecx\)\{1to8\},%xmm6
\s*[a-f0-9]+:\s*62 f5 7c 08 69 71 7f\s+vcvtph2ibs\s+0x7f0\(%ecx\),%xmm6
@@ -29,7 +28,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7c bf 69 72 80\s+vcvtph2ibs\s+-0x100\(%edx\)\{1to16\},%ymm6\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 f5 7d 08 69 f5\s+vcvtps2ibs\s+%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f5 7d 28 69 f5\s+vcvtps2ibs\s+%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 79 18 69 f5\s+vcvtps2ibs\s+\{rn-sae\},%ymm5,%ymm6
\s*[a-f0-9]+:\s*62 f5 7d 0f 69 b4 f4 00 00 00 10\s+vcvtps2ibs\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\}
\s*[a-f0-9]+:\s*62 f5 7d 18 69 31\s+vcvtps2ibs\s+\(%ecx\)\{1to4\},%xmm6
\s*[a-f0-9]+:\s*62 f5 7d 08 69 71 7f\s+vcvtps2ibs\s+0x7f0\(%ecx\),%xmm6
@@ -50,7 +48,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7f bf 68 72 80\s+vcvttbf162ibs\s+-0x100\(%edx\)\{1to16\},%ymm6\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 f5 7c 08 68 f5\s+vcvttph2ibs\s+%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f5 7c 28 68 f5\s+vcvttph2ibs\s+%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 78 18 68 f5\s+vcvttph2ibs\s+\{sae\},%ymm5,%ymm6
\s*[a-f0-9]+:\s*62 f5 7c 0f 68 b4 f4 00 00 00 10\s+vcvttph2ibs\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\}
\s*[a-f0-9]+:\s*62 f5 7c 18 68 31\s+vcvttph2ibs\s+\(%ecx\)\{1to8\},%xmm6
\s*[a-f0-9]+:\s*62 f5 7c 08 68 71 7f\s+vcvttph2ibs\s+0x7f0\(%ecx\),%xmm6
@@ -61,7 +58,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7c bf 68 72 80\s+vcvttph2ibs\s+-0x100\(%edx\)\{1to16\},%ymm6\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 f5 7d 08 68 f5\s+vcvttps2ibs\s+%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f5 7d 28 68 f5\s+vcvttps2ibs\s+%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 79 18 68 f5\s+vcvttps2ibs\s+\{sae\},%ymm5,%ymm6
\s*[a-f0-9]+:\s*62 f5 7d 0f 68 b4 f4 00 00 00 10\s+vcvttps2ibs\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\}
\s*[a-f0-9]+:\s*62 f5 7d 18 68 31\s+vcvttps2ibs\s+\(%ecx\)\{1to4\},%xmm6
\s*[a-f0-9]+:\s*62 f5 7d 08 68 71 7f\s+vcvttps2ibs\s+0x7f0\(%ecx\),%xmm6
@@ -72,7 +68,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7d bf 68 72 80\s+vcvttps2ibs\s+-0x200\(%edx\)\{1to8\},%ymm6\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 f5 fc 08 6d f5\s+vcvttpd2dqs\s+%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f5 fc 28 6d f5\s+vcvttpd2dqs\s+%ymm5,%xmm6
-\s*[a-f0-9]+:\s*62 f5 f8 18 6d f5\s+vcvttpd2dqs\s+\{sae\},%ymm5,%xmm6
\s*[a-f0-9]+:\s*62 f5 fc 0f 6d b4 f4 00 00 00 10\s+vcvttpd2dqsx\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\}
\s*[a-f0-9]+:\s*62 f5 fc 18 6d 31\s+vcvttpd2dqs\s+\(%ecx\)\{1to2\},%xmm6
\s*[a-f0-9]+:\s*62 f5 fc 08 6d 71 7f\s+vcvttpd2dqsx\s+0x7f0\(%ecx\),%xmm6
@@ -82,7 +77,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 fc bf 6d 72 80\s+vcvttpd2dqs\s+-0x400\(%edx\)\{1to4\},%xmm6\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 f5 fd 08 6d f5\s+vcvttpd2qqs\s+%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f5 fd 28 6d f5\s+vcvttpd2qqs\s+%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 f9 18 6d f5\s+vcvttpd2qqs\s+\{sae\},%ymm5,%ymm6
\s*[a-f0-9]+:\s*62 f5 fd 0f 6d b4 f4 00 00 00 10\s+vcvttpd2qqs\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\}
\s*[a-f0-9]+:\s*62 f5 fd 18 6d 31\s+vcvttpd2qqs\s+\(%ecx\)\{1to2\},%xmm6
\s*[a-f0-9]+:\s*62 f5 fd 08 6d 71 7f\s+vcvttpd2qqs\s+0x7f0\(%ecx\),%xmm6
@@ -93,7 +87,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 fd bf 6d 72 80\s+vcvttpd2qqs\s+-0x400\(%edx\)\{1to4\},%ymm6\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 f5 7c 08 6d f5\s+vcvttps2dqs\s+%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f5 7c 28 6d f5\s+vcvttps2dqs\s+%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 78 18 6d f5\s+vcvttps2dqs\s+\{sae\},%ymm5,%ymm6
\s*[a-f0-9]+:\s*62 f5 7c 0f 6d b4 f4 00 00 00 10\s+vcvttps2dqs\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\}
\s*[a-f0-9]+:\s*62 f5 7c 18 6d 31\s+vcvttps2dqs\s+\(%ecx\)\{1to4\},%xmm6
\s*[a-f0-9]+:\s*62 f5 7c 08 6d 71 7f\s+vcvttps2dqs\s+0x7f0\(%ecx\),%xmm6
@@ -104,7 +97,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7c bf 6d 72 80\s+vcvttps2dqs\s+-0x200\(%edx\)\{1to8\},%ymm6\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 f5 7d 08 6d f5\s+vcvttps2qqs\s+%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f5 7d 28 6d f5\s+vcvttps2qqs\s+%xmm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 79 18 6d f5\s+vcvttps2qqs\s+\{sae\},%xmm5,%ymm6
\s*[a-f0-9]+:\s*62 f5 7d 0f 6d b4 f4 00 00 00 10\s+vcvttps2qqs\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\}
\s*[a-f0-9]+:\s*62 f5 7d 18 6d 31\s+vcvttps2qqs\s+\(%ecx\)\{1to2\},%xmm6
\s*[a-f0-9]+:\s*62 f5 7d 08 6d 71 7f\s+vcvttps2qqs\s+0x3f8\(%ecx\),%xmm6
@@ -137,7 +129,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7f bf 6b 72 80\s+vcvtbf162iubs\s+-0x100\(%edx\)\{1to16\},%ymm6\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 f5 7c 08 6b f5\s+vcvtph2iubs\s+%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f5 7c 28 6b f5\s+vcvtph2iubs\s+%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 78 18 6b f5\s+vcvtph2iubs\s+\{rn-sae\},%ymm5,%ymm6
\s*[a-f0-9]+:\s*62 f5 7c 0f 6b b4 f4 00 00 00 10\s+vcvtph2iubs\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\}
\s*[a-f0-9]+:\s*62 f5 7c 18 6b 31\s+vcvtph2iubs\s+\(%ecx\)\{1to8\},%xmm6
\s*[a-f0-9]+:\s*62 f5 7c 08 6b 71 7f\s+vcvtph2iubs\s+0x7f0\(%ecx\),%xmm6
@@ -148,7 +139,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7c bf 6b 72 80\s+vcvtph2iubs\s+-0x100\(%edx\)\{1to16\},%ymm6\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 f5 7d 08 6b f5\s+vcvtps2iubs\s+%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f5 7d 28 6b f5\s+vcvtps2iubs\s+%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 79 18 6b f5\s+vcvtps2iubs\s+\{rn-sae\},%ymm5,%ymm6
\s*[a-f0-9]+:\s*62 f5 7d 0f 6b b4 f4 00 00 00 10\s+vcvtps2iubs\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\}
\s*[a-f0-9]+:\s*62 f5 7d 18 6b 31\s+vcvtps2iubs\s+\(%ecx\)\{1to4\},%xmm6
\s*[a-f0-9]+:\s*62 f5 7d 08 6b 71 7f\s+vcvtps2iubs\s+0x7f0\(%ecx\),%xmm6
@@ -169,7 +159,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7f bf 6a 72 80\s+vcvttbf162iubs\s+-0x100\(%edx\)\{1to16\},%ymm6\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 f5 7c 08 6a f5\s+vcvttph2iubs\s+%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f5 7c 28 6a f5\s+vcvttph2iubs\s+%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 78 18 6a f5\s+vcvttph2iubs\s+\{sae\},%ymm5,%ymm6
\s*[a-f0-9]+:\s*62 f5 7c 0f 6a b4 f4 00 00 00 10\s+vcvttph2iubs\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\}
\s*[a-f0-9]+:\s*62 f5 7c 18 6a 31\s+vcvttph2iubs\s+\(%ecx\)\{1to8\},%xmm6
\s*[a-f0-9]+:\s*62 f5 7c 08 6a 71 7f\s+vcvttph2iubs\s+0x7f0\(%ecx\),%xmm6
@@ -180,7 +169,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7c bf 6a 72 80\s+vcvttph2iubs\s+-0x100\(%edx\)\{1to16\},%ymm6\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 f5 7d 08 6a f5\s+vcvttps2iubs\s+%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f5 7d 28 6a f5\s+vcvttps2iubs\s+%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 79 18 6a f5\s+vcvttps2iubs\s+\{sae\},%ymm5,%ymm6
\s*[a-f0-9]+:\s*62 f5 7d 0f 6a b4 f4 00 00 00 10\s+vcvttps2iubs\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\}
\s*[a-f0-9]+:\s*62 f5 7d 18 6a 31\s+vcvttps2iubs\s+\(%ecx\)\{1to4\},%xmm6
\s*[a-f0-9]+:\s*62 f5 7d 08 6a 71 7f\s+vcvttps2iubs\s+0x7f0\(%ecx\),%xmm6
@@ -191,7 +179,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7d bf 6a 72 80\s+vcvttps2iubs\s+-0x200\(%edx\)\{1to8\},%ymm6\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 f5 fc 08 6c f5\s+vcvttpd2udqs\s+%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f5 fc 28 6c f5\s+vcvttpd2udqs\s+%ymm5,%xmm6
-\s*[a-f0-9]+:\s*62 f5 f8 18 6c f5\s+vcvttpd2udqs\s+\{sae\},%ymm5,%xmm6
\s*[a-f0-9]+:\s*62 f5 fc 0f 6c b4 f4 00 00 00 10\s+vcvttpd2udqsx\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\}
\s*[a-f0-9]+:\s*62 f5 fc 18 6c 31\s+vcvttpd2udqs\s+\(%ecx\)\{1to2\},%xmm6
\s*[a-f0-9]+:\s*62 f5 fc 08 6c 71 7f\s+vcvttpd2udqsx\s+0x7f0\(%ecx\),%xmm6
@@ -201,7 +188,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 fc bf 6c 72 80\s+vcvttpd2udqs\s+-0x400\(%edx\)\{1to4\},%xmm6\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 f5 fd 08 6c f5\s+vcvttpd2uqqs\s+%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f5 fd 28 6c f5\s+vcvttpd2uqqs\s+%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 f9 18 6c f5\s+vcvttpd2uqqs\s+\{sae\},%ymm5,%ymm6
\s*[a-f0-9]+:\s*62 f5 fd 0f 6c b4 f4 00 00 00 10\s+vcvttpd2uqqs\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\}
\s*[a-f0-9]+:\s*62 f5 fd 18 6c 31\s+vcvttpd2uqqs\s+\(%ecx\)\{1to2\},%xmm6
\s*[a-f0-9]+:\s*62 f5 fd 08 6c 71 7f\s+vcvttpd2uqqs\s+0x7f0\(%ecx\),%xmm6
@@ -212,7 +198,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 fd bf 6c 72 80\s+vcvttpd2uqqs\s+-0x400\(%edx\)\{1to4\},%ymm6\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 f5 7c 08 6c f5\s+vcvttps2udqs\s+%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f5 7c 28 6c f5\s+vcvttps2udqs\s+%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 78 18 6c f5\s+vcvttps2udqs\s+\{sae\},%ymm5,%ymm6
\s*[a-f0-9]+:\s*62 f5 7c 0f 6c b4 f4 00 00 00 10\s+vcvttps2udqs\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\}
\s*[a-f0-9]+:\s*62 f5 7c 18 6c 31\s+vcvttps2udqs\s+\(%ecx\)\{1to4\},%xmm6
\s*[a-f0-9]+:\s*62 f5 7c 08 6c 71 7f\s+vcvttps2udqs\s+0x7f0\(%ecx\),%xmm6
@@ -223,7 +208,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 f5 7c bf 6c 72 80\s+vcvttps2udqs\s+-0x200\(%edx\)\{1to8\},%ymm6\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 f5 7d 08 6c f5\s+vcvttps2uqqs\s+%xmm5,%xmm6
\s*[a-f0-9]+:\s*62 f5 7d 28 6c f5\s+vcvttps2uqqs\s+%xmm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 79 18 6c f5\s+vcvttps2uqqs\s+\{sae\},%xmm5,%ymm6
\s*[a-f0-9]+:\s*62 f5 7d 0f 6c b4 f4 00 00 00 10\s+vcvttps2uqqs\s+0x10000000\(%esp,%esi,8\),%xmm6\{%k7\}
\s*[a-f0-9]+:\s*62 f5 7d 18 6c 31\s+vcvttps2uqqs\s+\(%ecx\)\{1to2\},%xmm6
\s*[a-f0-9]+:\s*62 f5 7d 08 6c 71 7f\s+vcvttps2uqqs\s+0x3f8\(%ecx\),%xmm6
diff --git a/gas/testsuite/gas/i386/avx10_2-256-satcvt.s b/gas/testsuite/gas/i386/avx10_2-256-satcvt.s
index 25d493f..86f000c 100644
--- a/gas/testsuite/gas/i386/avx10_2-256-satcvt.s
+++ b/gas/testsuite/gas/i386/avx10_2-256-satcvt.s
@@ -18,7 +18,6 @@ _start:
vcvtph2i\u\()bs %xmm5, %xmm6
vcvtph2i\u\()bs %ymm5, %ymm6
- vcvtph2i\u\()bs {rn-sae}, %ymm5, %ymm6
vcvtph2i\u\()bs 0x10000000(%esp, %esi, 8), %xmm6{%k7}
vcvtph2i\u\()bs (%ecx){1to8}, %xmm6
vcvtph2i\u\()bs 2032(%ecx), %xmm6
@@ -30,7 +29,6 @@ _start:
vcvtps2i\u\()bs %xmm5, %xmm6
vcvtps2i\u\()bs %ymm5, %ymm6
- vcvtps2i\u\()bs {rn-sae}, %ymm5, %ymm6
vcvtps2i\u\()bs 0x10000000(%esp, %esi, 8), %xmm6{%k7}
vcvtps2i\u\()bs (%ecx){1to4}, %xmm6
vcvtps2i\u\()bs 2032(%ecx), %xmm6
@@ -53,7 +51,6 @@ _start:
vcvttph2i\u\()bs %xmm5, %xmm6
vcvttph2i\u\()bs %ymm5, %ymm6
- vcvttph2i\u\()bs {sae}, %ymm5, %ymm6
vcvttph2i\u\()bs 0x10000000(%esp, %esi, 8), %xmm6{%k7}
vcvttph2i\u\()bs (%ecx){1to8}, %xmm6
vcvttph2i\u\()bs 2032(%ecx), %xmm6
@@ -65,7 +62,6 @@ _start:
vcvttps2i\u\()bs %xmm5, %xmm6
vcvttps2i\u\()bs %ymm5, %ymm6
- vcvttps2i\u\()bs {sae}, %ymm5, %ymm6
vcvttps2i\u\()bs 0x10000000(%esp, %esi, 8), %xmm6{%k7}
vcvttps2i\u\()bs (%ecx){1to4}, %xmm6
vcvttps2i\u\()bs 2032(%ecx), %xmm6
@@ -77,7 +73,6 @@ _start:
vcvttpd2\u\()dqs %xmm5, %xmm6
vcvttpd2\u\()dqs %ymm5, %xmm6
- vcvttpd2\u\()dqs {sae}, %ymm5, %xmm6
vcvttpd2\u\()dqsx 0x10000000(%esp, %esi, 8), %xmm6{%k7}
vcvttpd2\u\()dqs (%ecx){1to2}, %xmm6
vcvttpd2\u\()dqsx 2032(%ecx), %xmm6
@@ -88,7 +83,6 @@ _start:
vcvttpd2\u\()qqs %xmm5, %xmm6
vcvttpd2\u\()qqs %ymm5, %ymm6
- vcvttpd2\u\()qqs {sae}, %ymm5, %ymm6
vcvttpd2\u\()qqs 0x10000000(%esp, %esi, 8), %xmm6{%k7}
vcvttpd2\u\()qqs (%ecx){1to2}, %xmm6
vcvttpd2\u\()qqs 2032(%ecx), %xmm6
@@ -100,7 +94,6 @@ _start:
vcvttps2\u\()dqs %xmm5, %xmm6
vcvttps2\u\()dqs %ymm5, %ymm6
- vcvttps2\u\()dqs {sae}, %ymm5, %ymm6
vcvttps2\u\()dqs 0x10000000(%esp, %esi, 8), %xmm6{%k7}
vcvttps2\u\()dqs (%ecx){1to4}, %xmm6
vcvttps2\u\()dqs 2032(%ecx), %xmm6
@@ -112,7 +105,6 @@ _start:
vcvttps2\u\()qqs %xmm5, %xmm6
vcvttps2\u\()qqs %xmm5, %ymm6
- vcvttps2\u\()qqs {sae}, %xmm5, %ymm6
vcvttps2\u\()qqs 0x10000000(%esp, %esi, 8), %xmm6{%k7}
vcvttps2\u\()qqs (%ecx){1to2}, %xmm6
vcvttps2\u\()qqs 1016(%ecx), %xmm6
@@ -153,7 +145,6 @@ _intel:
vcvtph2i\u\()bs xmm6, xmm5
vcvtph2i\u\()bs ymm6, ymm5
- vcvtph2i\u\()bs ymm6, ymm5, {rn-sae}
vcvtph2i\u\()bs xmm6{k7}, XMMWORD PTR [esp+esi*8+0x10000000]
vcvtph2i\u\()bs xmm6, WORD PTR [ecx]{1to8}
vcvtph2i\u\()bs xmm6, [ecx+2032]
@@ -165,7 +156,6 @@ _intel:
vcvtps2i\u\()bs xmm6, xmm5
vcvtps2i\u\()bs ymm6, ymm5
- vcvtps2i\u\()bs ymm6, ymm5, {rn-sae}
vcvtps2i\u\()bs xmm6{k7}, [esp+esi*8+0x10000000]
vcvtps2i\u\()bs xmm6, [ecx]{1to4}
vcvtps2i\u\()bs xmm6, XMMWORD PTR [ecx+2032]
@@ -188,7 +178,6 @@ _intel:
vcvttph2i\u\()bs xmm6, xmm5
vcvttph2i\u\()bs ymm6, ymm5
- vcvttph2i\u\()bs ymm6, ymm5, {sae}
vcvttph2i\u\()bs xmm6{k7}, XMMWORD PTR [esp+esi*8+0x10000000]
vcvttph2i\u\()bs xmm6, WORD PTR [ecx]{1to8}
vcvttph2i\u\()bs xmm6, [ecx+2032]
@@ -200,7 +189,6 @@ _intel:
vcvttps2i\u\()bs xmm6, xmm5
vcvttps2i\u\()bs ymm6, ymm5
- vcvttps2i\u\()bs ymm6, ymm5, {sae}
vcvttps2i\u\()bs xmm6{k7}, [esp+esi*8+0x10000000]
vcvttps2i\u\()bs xmm6, [ecx]{1to4}
vcvttps2i\u\()bs xmm6, XMMWORD PTR [ecx+2032]
@@ -212,7 +200,6 @@ _intel:
vcvttpd2\u\()dqs xmm6, xmm5
vcvttpd2\u\()dqs xmm6, ymm5
- vcvttpd2\u\()dqs xmm6, ymm5, {sae}
vcvttpd2\u\()dqs xmm6{k7}, XMMWORD PTR [esp+esi*8+0x10000000]
vcvttpd2\u\()dqs xmm6, QWORD PTR [ecx]{1to2}
vcvttpd2\u\()dqs xmm6, XMMWORD PTR [ecx+2032]
@@ -223,7 +210,6 @@ _intel:
vcvttpd2\u\()qqs xmm6, xmm5
vcvttpd2\u\()qqs ymm6, ymm5
- vcvttpd2\u\()qqs ymm6, ymm5, {sae}
vcvttpd2\u\()qqs xmm6{k7}, XMMWORD PTR [esp+esi*8+0x10000000]
vcvttpd2\u\()qqs xmm6, [ecx]{1to2}
vcvttpd2\u\()qqs xmm6, [ecx+2032]
@@ -235,7 +221,6 @@ _intel:
vcvttps2\u\()dqs xmm6, xmm5
vcvttps2\u\()dqs ymm6, ymm5
- vcvttps2\u\()dqs ymm6, ymm5, {sae}
vcvttps2\u\()dqs xmm6{k7}, XMMWORD PTR [esp+esi*8+0x10000000]
vcvttps2\u\()dqs xmm6, DWORD PTR [ecx]{1to4}
vcvttps2\u\()dqs xmm6, [ecx+2032]
@@ -247,7 +232,6 @@ _intel:
vcvttps2\u\()qqs xmm6, xmm5
vcvttps2\u\()qqs ymm6, xmm5
- vcvttps2\u\()qqs ymm6, xmm5, {sae}
vcvttps2\u\()qqs xmm6{k7}, [esp+esi*8+0x10000000]
vcvttps2\u\()qqs xmm6, [ecx]{1to2}
vcvttps2\u\()qqs xmm6, QWORD PTR [ecx+1016]
diff --git a/gas/testsuite/gas/i386/avx10_2-rounding-intel.d b/gas/testsuite/gas/i386/avx10_2-rounding-intel.d
deleted file mode 100644
index f40c296..0000000
--- a/gas/testsuite/gas/i386/avx10_2-rounding-intel.d
+++ /dev/null
@@ -1,452 +0,0 @@
-#objdump: -dw -Mintel
-#name: i386 AVX10.2 insns rounding (Intel disassembly)
-#source: avx10_2-rounding.s
-
-.*: +file format .*
-
-Disassembly of section \.text:
-
-#...
-[a-f0-9]+ <_intel>:
-\s*[a-f0-9]+:\s*62 f1 d1 18 c2 ec 7b\s+vcmppd k5,ymm5,ymm4\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f1 d1 1f c2 ec 7b\s+vcmppd k5\{k7\},ymm5,ymm4\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f2 f9 18 42 f5\s+vgetexppd ymm6,ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f2 f9 1f 42 f5\s+vgetexppd ymm6\{k7\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f2 f9 9f 42 f5\s+vgetexppd ymm6\{k7\}\{z\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 18 51 f5\s+vsqrtpd ymm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 3f 51 f5\s+vsqrtpd ymm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 ff 51 f5\s+vsqrtpd ymm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f3 50 18 c2 ec 7b\s+vcmpph k5,ymm5,ymm4\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 50 1f c2 ec 7b\s+vcmpph k5\{k7\},ymm5,ymm4\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f6 79 18 42 f5\s+vgetexpph ymm6,ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f6 79 1f 42 f5\s+vgetexpph ymm6\{k7\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f6 79 9f 42 f5\s+vgetexpph ymm6\{k7\}\{z\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 78 18 51 f5\s+vsqrtph ymm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f5 78 3f 51 f5\s+vsqrtph ymm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f5 78 ff 51 f5\s+vsqrtph ymm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 50 18 c2 ec 7b\s+vcmpps k5,ymm5,ymm4\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f1 50 1f c2 ec 7b\s+vcmpps k5\{k7\},ymm5,ymm4\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f2 79 18 42 f5\s+vgetexpps ymm6,ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f2 79 1f 42 f5\s+vgetexpps ymm6\{k7\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f2 79 9f 42 f5\s+vgetexpps ymm6\{k7\}\{z\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 78 18 51 f5\s+vsqrtps ymm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 78 3f 51 f5\s+vsqrtps ymm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 78 ff 51 f5\s+vsqrtps ymm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 d1 18 58 f4\s+vaddpd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 d1 3f 58 f4\s+vaddpd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 d1 ff 58 f4\s+vaddpd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f5 50 18 58 f4\s+vaddph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f5 50 3f 58 f4\s+vaddph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f5 50 ff 58 f4\s+vaddph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 50 18 58 f4\s+vaddps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 50 3f 58 f4\s+vaddps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 50 ff 58 f4\s+vaddps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 d1 18 5e f4\s+vdivpd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 d1 3f 5e f4\s+vdivpd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 d1 ff 5e f4\s+vdivpd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f5 50 18 5e f4\s+vdivph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f5 50 3f 5e f4\s+vdivph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f5 50 ff 5e f4\s+vdivph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 50 18 5e f4\s+vdivps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 50 3f 5e f4\s+vdivps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 50 ff 5e f4\s+vdivps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 d1 18 59 f4\s+vmulpd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 d1 3f 59 f4\s+vmulpd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 d1 ff 59 f4\s+vmulpd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f5 50 18 59 f4\s+vmulph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f5 50 3f 59 f4\s+vmulph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f5 50 ff 59 f4\s+vmulph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 50 18 59 f4\s+vmulps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 50 3f 59 f4\s+vmulps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 50 ff 59 f4\s+vmulps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 2c f4\s+vscalefpd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 3f 2c f4\s+vscalefpd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff 2c f4\s+vscalefpd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 18 2c f4\s+vscalefph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 3f 2c f4\s+vscalefph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 ff 2c f4\s+vscalefph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 18 2c f4\s+vscalefps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 3f 2c f4\s+vscalefps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 ff 2c f4\s+vscalefps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 d1 18 5c f4\s+vsubpd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 d1 3f 5c f4\s+vsubpd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 d1 ff 5c f4\s+vsubpd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f5 50 18 5c f4\s+vsubph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f5 50 3f 5c f4\s+vsubph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f5 50 ff 5c f4\s+vsubph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 50 18 5c f4\s+vsubps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 50 3f 5c f4\s+vsubps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 50 ff 5c f4\s+vsubps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 d1 18 5f f4\s+vmaxpd ymm6,ymm5,ymm4\{sae\}
-\s*[a-f0-9]+:\s*62 f1 d1 1f 5f f4\s+vmaxpd ymm6\{k7\},ymm5,ymm4\{sae\}
-\s*[a-f0-9]+:\s*62 f1 d1 9f 5f f4\s+vmaxpd ymm6\{k7\}\{z\},ymm5,ymm4\{sae\}
-\s*[a-f0-9]+:\s*62 f5 50 18 5f f4\s+vmaxph ymm6,ymm5,ymm4\{sae\}
-\s*[a-f0-9]+:\s*62 f5 50 1f 5f f4\s+vmaxph ymm6\{k7\},ymm5,ymm4\{sae\}
-\s*[a-f0-9]+:\s*62 f5 50 9f 5f f4\s+vmaxph ymm6\{k7\}\{z\},ymm5,ymm4\{sae\}
-\s*[a-f0-9]+:\s*62 f1 50 18 5f f4\s+vmaxps ymm6,ymm5,ymm4\{sae\}
-\s*[a-f0-9]+:\s*62 f1 50 1f 5f f4\s+vmaxps ymm6\{k7\},ymm5,ymm4\{sae\}
-\s*[a-f0-9]+:\s*62 f1 50 9f 5f f4\s+vmaxps ymm6\{k7\}\{z\},ymm5,ymm4\{sae\}
-\s*[a-f0-9]+:\s*62 f1 d1 18 5d f4\s+vminpd ymm6,ymm5,ymm4\{sae\}
-\s*[a-f0-9]+:\s*62 f1 d1 1f 5d f4\s+vminpd ymm6\{k7\},ymm5,ymm4\{sae\}
-\s*[a-f0-9]+:\s*62 f1 d1 9f 5d f4\s+vminpd ymm6\{k7\}\{z\},ymm5,ymm4\{sae\}
-\s*[a-f0-9]+:\s*62 f5 50 18 5d f4\s+vminph ymm6,ymm5,ymm4\{sae\}
-\s*[a-f0-9]+:\s*62 f5 50 1f 5d f4\s+vminph ymm6\{k7\},ymm5,ymm4\{sae\}
-\s*[a-f0-9]+:\s*62 f5 50 9f 5d f4\s+vminph ymm6\{k7\}\{z\},ymm5,ymm4\{sae\}
-\s*[a-f0-9]+:\s*62 f1 50 18 5d f4\s+vminps ymm6,ymm5,ymm4\{sae\}
-\s*[a-f0-9]+:\s*62 f1 50 1f 5d f4\s+vminps ymm6\{k7\},ymm5,ymm4\{sae\}
-\s*[a-f0-9]+:\s*62 f1 50 9f 5d f4\s+vminps ymm6\{k7\}\{z\},ymm5,ymm4\{sae\}
-\s*[a-f0-9]+:\s*62 f3 f9 18 26 f5 7b\s+vgetmantpd ymm6,ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 f9 1f 26 f5 7b\s+vgetmantpd ymm6\{k7\},ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 f9 9f 26 f5 7b\s+vgetmantpd ymm6\{k7\}\{z\},ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 78 18 26 f5 7b\s+vgetmantph ymm6,ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 78 1f 26 f5 7b\s+vgetmantph ymm6\{k7\},ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 78 9f 26 f5 7b\s+vgetmantph ymm6\{k7\}\{z\},ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 79 18 26 f5 7b\s+vgetmantps ymm6,ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 79 1f 26 f5 7b\s+vgetmantps ymm6\{k7\},ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 79 9f 26 f5 7b\s+vgetmantps ymm6\{k7\}\{z\},ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 f9 18 56 f5 7b\s+vreducepd ymm6,ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 f9 1f 56 f5 7b\s+vreducepd ymm6\{k7\},ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 f9 9f 56 f5 7b\s+vreducepd ymm6\{k7\}\{z\},ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 78 18 56 f5 7b\s+vreduceph ymm6,ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 78 1f 56 f5 7b\s+vreduceph ymm6\{k7\},ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 78 9f 56 f5 7b\s+vreduceph ymm6\{k7\}\{z\},ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 79 18 56 f5 7b\s+vreduceps ymm6,ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 79 1f 56 f5 7b\s+vreduceps ymm6\{k7\},ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 79 9f 56 f5 7b\s+vreduceps ymm6\{k7\}\{z\},ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 f9 18 09 f5 7b\s+vrndscalepd ymm6,ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 f9 1f 09 f5 7b\s+vrndscalepd ymm6\{k7\},ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 f9 9f 09 f5 7b\s+vrndscalepd ymm6\{k7\}\{z\},ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 78 18 08 f5 7b\s+vrndscaleph ymm6,ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 78 1f 08 f5 7b\s+vrndscaleph ymm6\{k7\},ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 78 9f 08 f5 7b\s+vrndscaleph ymm6\{k7\}\{z\},ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 79 18 08 f5 7b\s+vrndscaleps ymm6,ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 79 1f 08 f5 7b\s+vrndscaleps ymm6\{k7\},ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 79 9f 08 f5 7b\s+vrndscaleps ymm6\{k7\}\{z\},ymm5\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f2 d1 18 98 f4\s+vfmadd132pd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 3f 98 f4\s+vfmadd132pd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff 98 f4\s+vfmadd132pd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 18 98 f4\s+vfmadd132ph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 3f 98 f4\s+vfmadd132ph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 ff 98 f4\s+vfmadd132ph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 18 98 f4\s+vfmadd132ps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 3f 98 f4\s+vfmadd132ps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 ff 98 f4\s+vfmadd132ps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 a8 f4\s+vfmadd213pd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 3f a8 f4\s+vfmadd213pd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff a8 f4\s+vfmadd213pd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 18 a8 f4\s+vfmadd213ph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 3f a8 f4\s+vfmadd213ph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 ff a8 f4\s+vfmadd213ph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 18 a8 f4\s+vfmadd213ps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 3f a8 f4\s+vfmadd213ps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 ff a8 f4\s+vfmadd213ps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 b8 f4\s+vfmadd231pd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 3f b8 f4\s+vfmadd231pd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff b8 f4\s+vfmadd231pd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 18 b8 f4\s+vfmadd231ph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 3f b8 f4\s+vfmadd231ph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 ff b8 f4\s+vfmadd231ph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 18 b8 f4\s+vfmadd231ps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 3f b8 f4\s+vfmadd231ps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 ff b8 f4\s+vfmadd231ps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 96 f4\s+vfmaddsub132pd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 3f 96 f4\s+vfmaddsub132pd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff 96 f4\s+vfmaddsub132pd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 18 96 f4\s+vfmaddsub132ph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 3f 96 f4\s+vfmaddsub132ph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 ff 96 f4\s+vfmaddsub132ph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 18 96 f4\s+vfmaddsub132ps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 3f 96 f4\s+vfmaddsub132ps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 ff 96 f4\s+vfmaddsub132ps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 a6 f4\s+vfmaddsub213pd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 3f a6 f4\s+vfmaddsub213pd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff a6 f4\s+vfmaddsub213pd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 18 a6 f4\s+vfmaddsub213ph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 3f a6 f4\s+vfmaddsub213ph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 ff a6 f4\s+vfmaddsub213ph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 18 a6 f4\s+vfmaddsub213ps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 3f a6 f4\s+vfmaddsub213ps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 ff a6 f4\s+vfmaddsub213ps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 b6 f4\s+vfmaddsub231pd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 3f b6 f4\s+vfmaddsub231pd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff b6 f4\s+vfmaddsub231pd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 18 b6 f4\s+vfmaddsub231ph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 3f b6 f4\s+vfmaddsub231ph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 ff b6 f4\s+vfmaddsub231ph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 18 b6 f4\s+vfmaddsub231ps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 3f b6 f4\s+vfmaddsub231ps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 ff b6 f4\s+vfmaddsub231ps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 9a f4\s+vfmsub132pd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 3f 9a f4\s+vfmsub132pd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff 9a f4\s+vfmsub132pd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 18 9a f4\s+vfmsub132ph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 3f 9a f4\s+vfmsub132ph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 ff 9a f4\s+vfmsub132ph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 18 9a f4\s+vfmsub132ps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 3f 9a f4\s+vfmsub132ps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 ff 9a f4\s+vfmsub132ps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 aa f4\s+vfmsub213pd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 3f aa f4\s+vfmsub213pd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff aa f4\s+vfmsub213pd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 18 aa f4\s+vfmsub213ph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 3f aa f4\s+vfmsub213ph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 ff aa f4\s+vfmsub213ph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 18 aa f4\s+vfmsub213ps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 3f aa f4\s+vfmsub213ps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 ff aa f4\s+vfmsub213ps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 ba f4\s+vfmsub231pd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 3f ba f4\s+vfmsub231pd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff ba f4\s+vfmsub231pd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 18 ba f4\s+vfmsub231ph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 3f ba f4\s+vfmsub231ph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 ff ba f4\s+vfmsub231ph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 18 ba f4\s+vfmsub231ps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 3f ba f4\s+vfmsub231ps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 ff ba f4\s+vfmsub231ps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 97 f4\s+vfmsubadd132pd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 3f 97 f4\s+vfmsubadd132pd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff 97 f4\s+vfmsubadd132pd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 18 97 f4\s+vfmsubadd132ph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 3f 97 f4\s+vfmsubadd132ph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 ff 97 f4\s+vfmsubadd132ph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 18 97 f4\s+vfmsubadd132ps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 3f 97 f4\s+vfmsubadd132ps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 ff 97 f4\s+vfmsubadd132ps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 a7 f4\s+vfmsubadd213pd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 3f a7 f4\s+vfmsubadd213pd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff a7 f4\s+vfmsubadd213pd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 18 a7 f4\s+vfmsubadd213ph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 3f a7 f4\s+vfmsubadd213ph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 ff a7 f4\s+vfmsubadd213ph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 18 a7 f4\s+vfmsubadd213ps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 3f a7 f4\s+vfmsubadd213ps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 ff a7 f4\s+vfmsubadd213ps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 b7 f4\s+vfmsubadd231pd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 3f b7 f4\s+vfmsubadd231pd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff b7 f4\s+vfmsubadd231pd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 18 b7 f4\s+vfmsubadd231ph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 3f b7 f4\s+vfmsubadd231ph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 ff b7 f4\s+vfmsubadd231ph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 18 b7 f4\s+vfmsubadd231ps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 3f b7 f4\s+vfmsubadd231ps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 ff b7 f4\s+vfmsubadd231ps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 9c f4\s+vfnmadd132pd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 3f 9c f4\s+vfnmadd132pd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff 9c f4\s+vfnmadd132pd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 18 9c f4\s+vfnmadd132ph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 3f 9c f4\s+vfnmadd132ph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 ff 9c f4\s+vfnmadd132ph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 18 9c f4\s+vfnmadd132ps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 3f 9c f4\s+vfnmadd132ps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 ff 9c f4\s+vfnmadd132ps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 ac f4\s+vfnmadd213pd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 3f ac f4\s+vfnmadd213pd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff ac f4\s+vfnmadd213pd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 18 ac f4\s+vfnmadd213ph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 3f ac f4\s+vfnmadd213ph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 ff ac f4\s+vfnmadd213ph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 18 ac f4\s+vfnmadd213ps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 3f ac f4\s+vfnmadd213ps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 ff ac f4\s+vfnmadd213ps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 bc f4\s+vfnmadd231pd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 3f bc f4\s+vfnmadd231pd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff bc f4\s+vfnmadd231pd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 18 bc f4\s+vfnmadd231ph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 3f bc f4\s+vfnmadd231ph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 ff bc f4\s+vfnmadd231ph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 18 bc f4\s+vfnmadd231ps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 3f bc f4\s+vfnmadd231ps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 ff bc f4\s+vfnmadd231ps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 9e f4\s+vfnmsub132pd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 3f 9e f4\s+vfnmsub132pd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff 9e f4\s+vfnmsub132pd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 18 9e f4\s+vfnmsub132ph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 3f 9e f4\s+vfnmsub132ph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 ff 9e f4\s+vfnmsub132ph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 18 9e f4\s+vfnmsub132ps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 3f 9e f4\s+vfnmsub132ps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 ff 9e f4\s+vfnmsub132ps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 ae f4\s+vfnmsub213pd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 3f ae f4\s+vfnmsub213pd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff ae f4\s+vfnmsub213pd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 18 ae f4\s+vfnmsub213ph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 3f ae f4\s+vfnmsub213ph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 ff ae f4\s+vfnmsub213ph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 18 ae f4\s+vfnmsub213ps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 3f ae f4\s+vfnmsub213ps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 ff ae f4\s+vfnmsub213ps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 be f4\s+vfnmsub231pd ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 3f be f4\s+vfnmsub231pd ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff be f4\s+vfnmsub231pd ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 18 be f4\s+vfnmsub231ph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 3f be f4\s+vfnmsub231ph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 51 ff be f4\s+vfnmsub231ph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 18 be f4\s+vfnmsub231ps ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 3f be f4\s+vfnmsub231ps ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f2 51 ff be f4\s+vfnmsub231ps ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f3 d1 18 54 f4 7b\s+vfixupimmpd ymm6,ymm5,ymm4\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 d1 1f 54 f4 7b\s+vfixupimmpd ymm6\{k7\},ymm5,ymm4\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 d1 9f 54 f4 7b\s+vfixupimmpd ymm6\{k7\}\{z\},ymm5,ymm4\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 51 18 54 f4 7b\s+vfixupimmps ymm6,ymm5,ymm4\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 51 1f 54 f4 7b\s+vfixupimmps ymm6\{k7\},ymm5,ymm4\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 51 9f 54 f4 7b\s+vfixupimmps ymm6\{k7\}\{z\},ymm5,ymm4\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 d1 18 50 f4 7b\s+vrangepd ymm6,ymm5,ymm4\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 d1 1f 50 f4 7b\s+vrangepd ymm6\{k7\},ymm5,ymm4\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 d1 9f 50 f4 7b\s+vrangepd ymm6\{k7\}\{z\},ymm5,ymm4\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 51 18 50 f4 7b\s+vrangeps ymm6,ymm5,ymm4\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 51 1f 50 f4 7b\s+vrangeps ymm6\{k7\},ymm5,ymm4\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f3 51 9f 50 f4 7b\s+vrangeps ymm6\{k7\}\{z\},ymm5,ymm4\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 f6 53 18 56 f4\s+vfcmaddcph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 53 3f 56 f4\s+vfcmaddcph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 53 ff 56 f4\s+vfcmaddcph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 53 18 d6 f4\s+vfcmulcph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 53 3f d6 f4\s+vfcmulcph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 53 ff d6 f4\s+vfcmulcph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 52 18 56 f4\s+vfmaddcph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 52 3f 56 f4\s+vfmaddcph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 52 ff 56 f4\s+vfmaddcph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f6 52 18 d6 f4\s+vfmulcph ymm6,ymm5,ymm4\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f6 52 3f d6 f4\s+vfmulcph ymm6\{k7\},ymm5,ymm4\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f6 52 ff d6 f4\s+vfmulcph ymm6\{k7\}\{z\},ymm5,ymm4\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f5 78 18 5b f5\s+vcvtdq2ph xmm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f5 78 3f 5b f5\s+vcvtdq2ph xmm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f5 78 ff 5b f5\s+vcvtdq2ph xmm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 78 18 5b f5\s+vcvtdq2ps ymm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 78 3f 5b f5\s+vcvtdq2ps ymm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 78 ff 5b f5\s+vcvtdq2ps ymm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f5 7b 18 7a f5\s+vcvtudq2ph xmm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f5 7b 3f 7a f5\s+vcvtudq2ph xmm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f5 7b ff 7a f5\s+vcvtudq2ph xmm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 7b 18 7a f5\s+vcvtudq2ps ymm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 7b 3f 7a f5\s+vcvtudq2ps ymm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 7b ff 7a f5\s+vcvtudq2ps ymm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 fb 18 e6 f5\s+vcvtpd2dq xmm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 fb 3f e6 f5\s+vcvtpd2dq xmm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 fb ff e6 f5\s+vcvtpd2dq xmm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f5 f9 18 5a f5\s+vcvtpd2ph xmm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f5 f9 3f 5a f5\s+vcvtpd2ph xmm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f5 f9 ff 5a f5\s+vcvtpd2ph xmm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 18 5a f5\s+vcvtpd2ps xmm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 3f 5a f5\s+vcvtpd2ps xmm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 ff 5a f5\s+vcvtpd2ps xmm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 f8 18 79 f5\s+vcvtpd2udq xmm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 f8 3f 79 f5\s+vcvtpd2udq xmm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 f8 ff 79 f5\s+vcvtpd2udq xmm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 18 7b f5\s+vcvtpd2qq ymm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 3f 7b f5\s+vcvtpd2qq ymm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 ff 7b f5\s+vcvtpd2qq ymm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 18 79 f5\s+vcvtpd2uqq ymm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 3f 79 f5\s+vcvtpd2uqq ymm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 ff 79 f5\s+vcvtpd2uqq ymm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f5 79 18 5b f5\s+vcvtph2dq ymm6,xmm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f5 79 3f 5b f5\s+vcvtph2dq ymm6\{k7\},xmm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f5 79 ff 5b f5\s+vcvtph2dq ymm6\{k7\}\{z\},xmm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f5 79 18 7b f5\s+vcvtph2qq ymm6,xmm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f5 79 3f 7b f5\s+vcvtph2qq ymm6\{k7\},xmm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f5 79 ff 7b f5\s+vcvtph2qq ymm6\{k7\}\{z\},xmm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f5 78 18 79 f5\s+vcvtph2udq ymm6,xmm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f5 78 3f 79 f5\s+vcvtph2udq ymm6\{k7\},xmm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f5 78 ff 79 f5\s+vcvtph2udq ymm6\{k7\}\{z\},xmm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f5 79 18 79 f5\s+vcvtph2uqq ymm6,xmm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f5 79 3f 79 f5\s+vcvtph2uqq ymm6\{k7\},xmm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f5 79 ff 79 f5\s+vcvtph2uqq ymm6\{k7\}\{z\},xmm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f5 78 18 5a f5\s+vcvtph2pd ymm6,xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 78 1f 5a f5\s+vcvtph2pd ymm6\{k7\},xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 78 9f 5a f5\s+vcvtph2pd ymm6\{k7\}\{z\},xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f2 79 18 13 f5\s+vcvtph2ps ymm6,xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f2 79 1f 13 f5\s+vcvtph2ps ymm6\{k7\},xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f2 79 9f 13 f5\s+vcvtph2ps ymm6\{k7\}\{z\},xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f6 79 18 13 f5\s+vcvtph2psx ymm6,xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f6 79 1f 13 f5\s+vcvtph2psx ymm6\{k7\},xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f6 79 9f 13 f5\s+vcvtph2psx ymm6\{k7\}\{z\},xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 78 18 7d f5\s+vcvtph2uw ymm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f5 78 3f 7d f5\s+vcvtph2uw ymm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f5 78 ff 7d f5\s+vcvtph2uw ymm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f5 79 18 7d f5\s+vcvtph2w ymm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f5 79 3f 7d f5\s+vcvtph2w ymm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f5 79 ff 7d f5\s+vcvtph2w ymm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 79 18 5b f5\s+vcvtps2dq ymm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 79 3f 5b f5\s+vcvtps2dq ymm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 79 ff 5b f5\s+vcvtps2dq ymm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 78 18 79 f5\s+vcvtps2udq ymm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 78 3f 79 f5\s+vcvtps2udq ymm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 78 ff 79 f5\s+vcvtps2udq ymm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 78 18 5a f5\s+vcvtps2pd ymm6,xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 78 1f 5a f5\s+vcvtps2pd ymm6\{k7\},xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 78 9f 5a f5\s+vcvtps2pd ymm6\{k7\}\{z\},xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 79 18 1d f5\s+vcvtps2phx xmm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f5 79 3f 1d f5\s+vcvtps2phx xmm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f5 79 ff 1d f5\s+vcvtps2phx xmm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 79 18 7b f5\s+vcvtps2qq ymm6,xmm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 79 3f 7b f5\s+vcvtps2qq ymm6\{k7\},xmm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 79 ff 7b f5\s+vcvtps2qq ymm6\{k7\}\{z\},xmm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 79 18 79 f5\s+vcvtps2uqq ymm6,xmm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 79 3f 79 f5\s+vcvtps2uqq ymm6\{k7\},xmm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 79 ff 79 f5\s+vcvtps2uqq ymm6\{k7\}\{z\},xmm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 fa 18 e6 f5\s+vcvtqq2pd ymm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 fa 3f e6 f5\s+vcvtqq2pd ymm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 fa ff e6 f5\s+vcvtqq2pd ymm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f5 f8 18 5b f5\s+vcvtqq2ph xmm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f5 f8 3f 5b f5\s+vcvtqq2ph xmm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f5 f8 ff 5b f5\s+vcvtqq2ph xmm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 f8 18 5b f5\s+vcvtqq2ps xmm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 f8 3f 5b f5\s+vcvtqq2ps xmm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 f8 ff 5b f5\s+vcvtqq2ps xmm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 fa 18 7a f5\s+vcvtuqq2pd ymm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 fa 3f 7a f5\s+vcvtuqq2pd ymm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 fa ff 7a f5\s+vcvtuqq2pd ymm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f5 fb 18 7a f5\s+vcvtuqq2ph xmm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f5 fb 3f 7a f5\s+vcvtuqq2ph xmm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f5 fb ff 7a f5\s+vcvtuqq2ph xmm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 fb 18 7a f5\s+vcvtuqq2ps xmm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f1 fb 3f 7a f5\s+vcvtuqq2ps xmm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f1 fb ff 7a f5\s+vcvtuqq2ps xmm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 18 e6 f5\s+vcvttpd2dq xmm6,ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 1f e6 f5\s+vcvttpd2dq xmm6\{k7\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 9f e6 f5\s+vcvttpd2dq xmm6\{k7\}\{z\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 f8 18 78 f5\s+vcvttpd2udq xmm6,ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 f8 1f 78 f5\s+vcvttpd2udq xmm6\{k7\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 f8 9f 78 f5\s+vcvttpd2udq xmm6\{k7\}\{z\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 18 7a f5\s+vcvttpd2qq ymm6,ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 1f 7a f5\s+vcvttpd2qq ymm6\{k7\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 9f 7a f5\s+vcvttpd2qq ymm6\{k7\}\{z\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 18 78 f5\s+vcvttpd2uqq ymm6,ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 1f 78 f5\s+vcvttpd2uqq ymm6\{k7\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 f9 9f 78 f5\s+vcvttpd2uqq ymm6\{k7\}\{z\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 7a 18 5b f5\s+vcvttph2dq ymm6,xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 7a 1f 5b f5\s+vcvttph2dq ymm6\{k7\},xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 7a 9f 5b f5\s+vcvttph2dq ymm6\{k7\}\{z\},xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 79 18 7a f5\s+vcvttph2qq ymm6,xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 79 1f 7a f5\s+vcvttph2qq ymm6\{k7\},xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 79 9f 7a f5\s+vcvttph2qq ymm6\{k7\}\{z\},xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 78 18 78 f5\s+vcvttph2udq ymm6,xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 78 1f 78 f5\s+vcvttph2udq ymm6\{k7\},xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 78 9f 78 f5\s+vcvttph2udq ymm6\{k7\}\{z\},xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 79 18 78 f5\s+vcvttph2uqq ymm6,xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 79 1f 78 f5\s+vcvttph2uqq ymm6\{k7\},xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 79 9f 78 f5\s+vcvttph2uqq ymm6\{k7\}\{z\},xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 78 18 7c f5\s+vcvttph2uw ymm6,ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 78 1f 7c f5\s+vcvttph2uw ymm6\{k7\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 78 9f 7c f5\s+vcvttph2uw ymm6\{k7\}\{z\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 79 18 7c f5\s+vcvttph2w ymm6,ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 79 1f 7c f5\s+vcvttph2w ymm6\{k7\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 79 9f 7c f5\s+vcvttph2w ymm6\{k7\}\{z\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 7a 18 5b f5\s+vcvttps2dq ymm6,ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 7a 1f 5b f5\s+vcvttps2dq ymm6\{k7\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 7a 9f 5b f5\s+vcvttps2dq ymm6\{k7\}\{z\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 78 18 78 f5\s+vcvttps2udq ymm6,ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 78 1f 78 f5\s+vcvttps2udq ymm6\{k7\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 78 9f 78 f5\s+vcvttps2udq ymm6\{k7\}\{z\},ymm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 79 18 7a f5\s+vcvttps2qq ymm6,xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 79 1f 7a f5\s+vcvttps2qq ymm6\{k7\},xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 79 9f 7a f5\s+vcvttps2qq ymm6\{k7\}\{z\},xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 79 18 78 f5\s+vcvttps2uqq ymm6,xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 79 1f 78 f5\s+vcvttps2uqq ymm6\{k7\},xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f1 79 9f 78 f5\s+vcvttps2uqq ymm6\{k7\}\{z\},xmm5\{sae\}
-\s*[a-f0-9]+:\s*62 f5 7b 18 7d f5\s+vcvtuw2ph ymm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f5 7b 3f 7d f5\s+vcvtuw2ph ymm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f5 7b ff 7d f5\s+vcvtuw2ph ymm6\{k7\}\{z\},ymm5\{rz-sae\}
-\s*[a-f0-9]+:\s*62 f5 7a 18 7d f5\s+vcvtw2ph ymm6,ymm5\{rn-sae\}
-\s*[a-f0-9]+:\s*62 f5 7a 3f 7d f5\s+vcvtw2ph ymm6\{k7\},ymm5\{rd-sae\}
-\s*[a-f0-9]+:\s*62 f5 7a ff 7d f5\s+vcvtw2ph ymm6\{k7\}\{z\},ymm5\{rz-sae\}
-#pass
diff --git a/gas/testsuite/gas/i386/avx10_2-rounding-inval.l b/gas/testsuite/gas/i386/avx10_2-rounding-inval.l
deleted file mode 100644
index 924353b..0000000
--- a/gas/testsuite/gas/i386/avx10_2-rounding-inval.l
+++ /dev/null
@@ -1,35 +0,0 @@
-.* Assembler messages:
-.*:6: Error: operand size mismatch for `vcmppd'
-.*:7: Error: operand size mismatch for `vgetexppd'
-.*:8: Error: operand size mismatch for `vsqrtpd'
-.*:9: Error: operand size mismatch for `vaddpd'
-.*:10: Error: operand size mismatch for `vmaxpd'
-.*:11: Error: operand size mismatch for `vreducepd'
-.*:12: Error: operand size mismatch for `vfmadd132pd'
-.*:13: Error: operand size mismatch for `vrangepd'
-.*:14: Error: operand size mismatch for `vfcmaddcph'
-.*:15: Error: operand size mismatch for `vcvtdq2ph'
-.*:16: Error: operand size mismatch for `vcvtdq2ps'
-.*:17: Error: operand size mismatch for `vcvtpd2dq'
-.*:18: Error: operand size mismatch for `vcvtpd2ph'
-.*:19: Error: operand size mismatch for `vcvtpd2qq'
-.*:20: Error: operand size mismatch for `vcvtph2dq'
-.*:21: Error: operand size mismatch for `vcvtph2qq'
-.*:22: Error: operand size mismatch for `vcvtph2pd'
-.*:23: Error: operand size mismatch for `vcvtph2ps'
-.*:24: Error: operand size mismatch for `vcvtph2uw'
-.*:25: Error: operand size mismatch for `vcvtps2dq'
-.*:26: Error: operand size mismatch for `vcvtps2pd'
-.*:27: Error: operand size mismatch for `vcvtps2phx'
-.*:28: Error: operand size mismatch for `vcvtps2qq'
-.*:29: Error: operand size mismatch for `vcvtqq2pd'
-.*:30: Error: operand size mismatch for `vcvtqq2ph'
-.*:31: Error: operand size mismatch for `vcvtqq2ps'
-.*:32: Error: operand size mismatch for `vcvttpd2dq'
-.*:33: Error: operand size mismatch for `vcvttpd2qq'
-.*:34: Error: operand size mismatch for `vcvttph2dq'
-.*:35: Error: operand size mismatch for `vcvttph2qq'
-.*:36: Error: operand size mismatch for `vcvttph2uw'
-.*:37: Error: operand size mismatch for `vcvttps2dq'
-.*:38: Error: operand size mismatch for `vcvttps2qq'
-.*:39: Error: operand size mismatch for `vcvtuw2ph'
diff --git a/gas/testsuite/gas/i386/avx10_2-rounding-inval.s b/gas/testsuite/gas/i386/avx10_2-rounding-inval.s
deleted file mode 100644
index fbde553..0000000
--- a/gas/testsuite/gas/i386/avx10_2-rounding-inval.s
+++ /dev/null
@@ -1,39 +0,0 @@
-# Check invalid AVX10.2 instructions
-
- .text
- .arch .noavx10.2
-_start:
- vcmppd $123, {sae}, %ymm4, %ymm5, %k5
- vgetexppd {sae}, %ymm5, %ymm6
- vsqrtpd {rn-sae}, %ymm5, %ymm6
- vaddpd {rn-sae}, %ymm4, %ymm5, %ymm6
- vmaxpd {sae}, %ymm4, %ymm5, %ymm6
- vreducepd $123, {sae}, %ymm5, %ymm6
- vfmadd132pd {rn-sae}, %ymm4, %ymm5, %ymm6
- vrangepd $123, {sae}, %ymm4, %ymm5, %ymm6
- vfcmaddcph {rn-sae}, %ymm4, %ymm5, %ymm6
- vcvtdq2ph {rn-sae}, %ymm5, %xmm6
- vcvtdq2ps {rn-sae}, %ymm5, %ymm6
- vcvtpd2dq {rn-sae}, %ymm5, %xmm6
- vcvtpd2ph {rn-sae}, %ymm5, %xmm6
- vcvtpd2qq {rn-sae}, %ymm5, %ymm6
- vcvtph2dq {rn-sae}, %xmm5, %ymm6
- vcvtph2qq {rn-sae}, %xmm5, %ymm6
- vcvtph2pd {sae}, %xmm5, %ymm6
- vcvtph2ps {sae}, %xmm5, %ymm6
- vcvtph2uw {rn-sae}, %ymm5, %ymm6
- vcvtps2dq {rn-sae}, %ymm5, %ymm6
- vcvtps2pd {sae}, %xmm5, %ymm6
- vcvtps2phx {rn-sae}, %ymm5, %xmm6
- vcvtps2qq {rn-sae}, %xmm5, %ymm6
- vcvtqq2pd {rn-sae}, %ymm5, %ymm6
- vcvtqq2ph {rn-sae}, %ymm5, %xmm6
- vcvtqq2ps {rn-sae}, %ymm5, %xmm6
- vcvttpd2dq {sae}, %ymm5, %xmm6
- vcvttpd2qq {sae}, %ymm5, %ymm6
- vcvttph2dq {sae}, %xmm5, %ymm6
- vcvttph2qq {sae}, %xmm5, %ymm6
- vcvttph2uw {sae}, %ymm5, %ymm6
- vcvttps2dq {sae}, %ymm5, %ymm6
- vcvttps2qq {sae}, %xmm5, %ymm6
- vcvtuw2ph {rn-sae}, %ymm5, %ymm6
diff --git a/gas/testsuite/gas/i386/avx10_2-rounding.d b/gas/testsuite/gas/i386/avx10_2-rounding.d
deleted file mode 100644
index 30d4624..0000000
--- a/gas/testsuite/gas/i386/avx10_2-rounding.d
+++ /dev/null
@@ -1,450 +0,0 @@
-#objdump: -dw
-#name: i386 AVX10.2 rounding insns
-
-.*: +file format .*
-
-Disassembly of section \.text:
-
-0+ <_start>:
-\s*[a-f0-9]+:\s*62 f1 d1 18 c2 ec 7b\s+vcmppd \$0x7b,\{sae\},%ymm4,%ymm5,%k5
-\s*[a-f0-9]+:\s*62 f1 d1 1f c2 ec 7b\s+vcmppd \$0x7b,\{sae\},%ymm4,%ymm5,%k5\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 f9 18 42 f5\s+vgetexppd \{sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 f9 1f 42 f5\s+vgetexppd \{sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 f9 9f 42 f5\s+vgetexppd \{sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 f9 18 51 f5\s+vsqrtpd \{rn-sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 f9 3f 51 f5\s+vsqrtpd \{rd-sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 f9 ff 51 f5\s+vsqrtpd \{rz-sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f3 50 18 c2 ec 7b\s+vcmpph \$0x7b,\{sae\},%ymm4,%ymm5,%k5
-\s*[a-f0-9]+:\s*62 f3 50 1f c2 ec 7b\s+vcmpph \$0x7b,\{sae\},%ymm4,%ymm5,%k5\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 79 18 42 f5\s+vgetexpph \{sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 79 1f 42 f5\s+vgetexpph \{sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 79 9f 42 f5\s+vgetexpph \{sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 78 18 51 f5\s+vsqrtph \{rn-sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 78 3f 51 f5\s+vsqrtph \{rd-sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 78 ff 51 f5\s+vsqrtph \{rz-sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 50 18 c2 ec 7b\s+vcmpps \$0x7b,\{sae\},%ymm4,%ymm5,%k5
-\s*[a-f0-9]+:\s*62 f1 50 1f c2 ec 7b\s+vcmpps \$0x7b,\{sae\},%ymm4,%ymm5,%k5\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 79 18 42 f5\s+vgetexpps \{sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 79 1f 42 f5\s+vgetexpps \{sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 79 9f 42 f5\s+vgetexpps \{sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 78 18 51 f5\s+vsqrtps \{rn-sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 78 3f 51 f5\s+vsqrtps \{rd-sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 78 ff 51 f5\s+vsqrtps \{rz-sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 d1 18 58 f4\s+vaddpd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 d1 3f 58 f4\s+vaddpd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 d1 ff 58 f4\s+vaddpd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 50 18 58 f4\s+vaddph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 50 3f 58 f4\s+vaddph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 50 ff 58 f4\s+vaddph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 50 18 58 f4\s+vaddps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 50 3f 58 f4\s+vaddps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 50 ff 58 f4\s+vaddps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 d1 18 5e f4\s+vdivpd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 d1 3f 5e f4\s+vdivpd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 d1 ff 5e f4\s+vdivpd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 50 18 5e f4\s+vdivph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 50 3f 5e f4\s+vdivph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 50 ff 5e f4\s+vdivph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 50 18 5e f4\s+vdivps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 50 3f 5e f4\s+vdivps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 50 ff 5e f4\s+vdivps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 d1 18 59 f4\s+vmulpd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 d1 3f 59 f4\s+vmulpd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 d1 ff 59 f4\s+vmulpd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 50 18 59 f4\s+vmulph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 50 3f 59 f4\s+vmulph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 50 ff 59 f4\s+vmulph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 50 18 59 f4\s+vmulps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 50 3f 59 f4\s+vmulps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 50 ff 59 f4\s+vmulps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 2c f4\s+vscalefpd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 d1 3f 2c f4\s+vscalefpd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff 2c f4\s+vscalefpd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 51 18 2c f4\s+vscalefph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 51 3f 2c f4\s+vscalefph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 51 ff 2c f4\s+vscalefph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 51 18 2c f4\s+vscalefps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 51 3f 2c f4\s+vscalefps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 51 ff 2c f4\s+vscalefps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 d1 18 5c f4\s+vsubpd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 d1 3f 5c f4\s+vsubpd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 d1 ff 5c f4\s+vsubpd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 50 18 5c f4\s+vsubph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 50 3f 5c f4\s+vsubph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 50 ff 5c f4\s+vsubph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 50 18 5c f4\s+vsubps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 50 3f 5c f4\s+vsubps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 50 ff 5c f4\s+vsubps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 d1 18 5f f4\s+vmaxpd \{sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 d1 1f 5f f4\s+vmaxpd \{sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 d1 9f 5f f4\s+vmaxpd \{sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 50 18 5f f4\s+vmaxph \{sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 50 1f 5f f4\s+vmaxph \{sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 50 9f 5f f4\s+vmaxph \{sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 50 18 5f f4\s+vmaxps \{sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 50 1f 5f f4\s+vmaxps \{sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 50 9f 5f f4\s+vmaxps \{sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 d1 18 5d f4\s+vminpd \{sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 d1 1f 5d f4\s+vminpd \{sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 d1 9f 5d f4\s+vminpd \{sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 50 18 5d f4\s+vminph \{sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 50 1f 5d f4\s+vminph \{sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 50 9f 5d f4\s+vminph \{sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 50 18 5d f4\s+vminps \{sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 50 1f 5d f4\s+vminps \{sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 50 9f 5d f4\s+vminps \{sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f3 f9 18 26 f5 7b\s+vgetmantpd \$0x7b,\{sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f3 f9 1f 26 f5 7b\s+vgetmantpd \$0x7b,\{sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f3 f9 9f 26 f5 7b\s+vgetmantpd \$0x7b,\{sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f3 78 18 26 f5 7b\s+vgetmantph \$0x7b,\{sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f3 78 1f 26 f5 7b\s+vgetmantph \$0x7b,\{sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f3 78 9f 26 f5 7b\s+vgetmantph \$0x7b,\{sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f3 79 18 26 f5 7b\s+vgetmantps \$0x7b,\{sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f3 79 1f 26 f5 7b\s+vgetmantps \$0x7b,\{sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f3 79 9f 26 f5 7b\s+vgetmantps \$0x7b,\{sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f3 f9 18 56 f5 7b\s+vreducepd \$0x7b,\{sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f3 f9 1f 56 f5 7b\s+vreducepd \$0x7b,\{sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f3 f9 9f 56 f5 7b\s+vreducepd \$0x7b,\{sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f3 78 18 56 f5 7b\s+vreduceph \$0x7b,\{sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f3 78 1f 56 f5 7b\s+vreduceph \$0x7b,\{sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f3 78 9f 56 f5 7b\s+vreduceph \$0x7b,\{sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f3 79 18 56 f5 7b\s+vreduceps \$0x7b,\{sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f3 79 1f 56 f5 7b\s+vreduceps \$0x7b,\{sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f3 79 9f 56 f5 7b\s+vreduceps \$0x7b,\{sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f3 f9 18 09 f5 7b\s+vrndscalepd \$0x7b,\{sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f3 f9 1f 09 f5 7b\s+vrndscalepd \$0x7b,\{sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f3 f9 9f 09 f5 7b\s+vrndscalepd \$0x7b,\{sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f3 78 18 08 f5 7b\s+vrndscaleph \$0x7b,\{sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f3 78 1f 08 f5 7b\s+vrndscaleph \$0x7b,\{sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f3 78 9f 08 f5 7b\s+vrndscaleph \$0x7b,\{sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f3 79 18 08 f5 7b\s+vrndscaleps \$0x7b,\{sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f3 79 1f 08 f5 7b\s+vrndscaleps \$0x7b,\{sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f3 79 9f 08 f5 7b\s+vrndscaleps \$0x7b,\{sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 98 f4\s+vfmadd132pd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 d1 3f 98 f4\s+vfmadd132pd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff 98 f4\s+vfmadd132pd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 51 18 98 f4\s+vfmadd132ph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 51 3f 98 f4\s+vfmadd132ph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 51 ff 98 f4\s+vfmadd132ph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 51 18 98 f4\s+vfmadd132ps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 51 3f 98 f4\s+vfmadd132ps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 51 ff 98 f4\s+vfmadd132ps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 a8 f4\s+vfmadd213pd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 d1 3f a8 f4\s+vfmadd213pd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff a8 f4\s+vfmadd213pd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 51 18 a8 f4\s+vfmadd213ph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 51 3f a8 f4\s+vfmadd213ph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 51 ff a8 f4\s+vfmadd213ph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 51 18 a8 f4\s+vfmadd213ps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 51 3f a8 f4\s+vfmadd213ps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 51 ff a8 f4\s+vfmadd213ps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 b8 f4\s+vfmadd231pd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 d1 3f b8 f4\s+vfmadd231pd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff b8 f4\s+vfmadd231pd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 51 18 b8 f4\s+vfmadd231ph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 51 3f b8 f4\s+vfmadd231ph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 51 ff b8 f4\s+vfmadd231ph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 51 18 b8 f4\s+vfmadd231ps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 51 3f b8 f4\s+vfmadd231ps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 51 ff b8 f4\s+vfmadd231ps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 96 f4\s+vfmaddsub132pd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 d1 3f 96 f4\s+vfmaddsub132pd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff 96 f4\s+vfmaddsub132pd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 51 18 96 f4\s+vfmaddsub132ph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 51 3f 96 f4\s+vfmaddsub132ph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 51 ff 96 f4\s+vfmaddsub132ph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 51 18 96 f4\s+vfmaddsub132ps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 51 3f 96 f4\s+vfmaddsub132ps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 51 ff 96 f4\s+vfmaddsub132ps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 a6 f4\s+vfmaddsub213pd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 d1 3f a6 f4\s+vfmaddsub213pd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff a6 f4\s+vfmaddsub213pd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 51 18 a6 f4\s+vfmaddsub213ph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 51 3f a6 f4\s+vfmaddsub213ph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 51 ff a6 f4\s+vfmaddsub213ph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 51 18 a6 f4\s+vfmaddsub213ps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 51 3f a6 f4\s+vfmaddsub213ps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 51 ff a6 f4\s+vfmaddsub213ps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 b6 f4\s+vfmaddsub231pd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 d1 3f b6 f4\s+vfmaddsub231pd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff b6 f4\s+vfmaddsub231pd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 51 18 b6 f4\s+vfmaddsub231ph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 51 3f b6 f4\s+vfmaddsub231ph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 51 ff b6 f4\s+vfmaddsub231ph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 51 18 b6 f4\s+vfmaddsub231ps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 51 3f b6 f4\s+vfmaddsub231ps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 51 ff b6 f4\s+vfmaddsub231ps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 9a f4\s+vfmsub132pd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 d1 3f 9a f4\s+vfmsub132pd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff 9a f4\s+vfmsub132pd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 51 18 9a f4\s+vfmsub132ph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 51 3f 9a f4\s+vfmsub132ph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 51 ff 9a f4\s+vfmsub132ph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 51 18 9a f4\s+vfmsub132ps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 51 3f 9a f4\s+vfmsub132ps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 51 ff 9a f4\s+vfmsub132ps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 aa f4\s+vfmsub213pd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 d1 3f aa f4\s+vfmsub213pd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff aa f4\s+vfmsub213pd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 51 18 aa f4\s+vfmsub213ph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 51 3f aa f4\s+vfmsub213ph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 51 ff aa f4\s+vfmsub213ph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 51 18 aa f4\s+vfmsub213ps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 51 3f aa f4\s+vfmsub213ps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 51 ff aa f4\s+vfmsub213ps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 ba f4\s+vfmsub231pd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 d1 3f ba f4\s+vfmsub231pd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff ba f4\s+vfmsub231pd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 51 18 ba f4\s+vfmsub231ph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 51 3f ba f4\s+vfmsub231ph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 51 ff ba f4\s+vfmsub231ph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 51 18 ba f4\s+vfmsub231ps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 51 3f ba f4\s+vfmsub231ps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 51 ff ba f4\s+vfmsub231ps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 97 f4\s+vfmsubadd132pd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 d1 3f 97 f4\s+vfmsubadd132pd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff 97 f4\s+vfmsubadd132pd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 51 18 97 f4\s+vfmsubadd132ph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 51 3f 97 f4\s+vfmsubadd132ph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 51 ff 97 f4\s+vfmsubadd132ph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 51 18 97 f4\s+vfmsubadd132ps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 51 3f 97 f4\s+vfmsubadd132ps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 51 ff 97 f4\s+vfmsubadd132ps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 a7 f4\s+vfmsubadd213pd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 d1 3f a7 f4\s+vfmsubadd213pd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff a7 f4\s+vfmsubadd213pd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 51 18 a7 f4\s+vfmsubadd213ph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 51 3f a7 f4\s+vfmsubadd213ph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 51 ff a7 f4\s+vfmsubadd213ph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 51 18 a7 f4\s+vfmsubadd213ps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 51 3f a7 f4\s+vfmsubadd213ps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 51 ff a7 f4\s+vfmsubadd213ps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 b7 f4\s+vfmsubadd231pd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 d1 3f b7 f4\s+vfmsubadd231pd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff b7 f4\s+vfmsubadd231pd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 51 18 b7 f4\s+vfmsubadd231ph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 51 3f b7 f4\s+vfmsubadd231ph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 51 ff b7 f4\s+vfmsubadd231ph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 51 18 b7 f4\s+vfmsubadd231ps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 51 3f b7 f4\s+vfmsubadd231ps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 51 ff b7 f4\s+vfmsubadd231ps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 9c f4\s+vfnmadd132pd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 d1 3f 9c f4\s+vfnmadd132pd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff 9c f4\s+vfnmadd132pd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 51 18 9c f4\s+vfnmadd132ph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 51 3f 9c f4\s+vfnmadd132ph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 51 ff 9c f4\s+vfnmadd132ph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 51 18 9c f4\s+vfnmadd132ps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 51 3f 9c f4\s+vfnmadd132ps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 51 ff 9c f4\s+vfnmadd132ps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 ac f4\s+vfnmadd213pd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 d1 3f ac f4\s+vfnmadd213pd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff ac f4\s+vfnmadd213pd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 51 18 ac f4\s+vfnmadd213ph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 51 3f ac f4\s+vfnmadd213ph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 51 ff ac f4\s+vfnmadd213ph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 51 18 ac f4\s+vfnmadd213ps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 51 3f ac f4\s+vfnmadd213ps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 51 ff ac f4\s+vfnmadd213ps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 bc f4\s+vfnmadd231pd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 d1 3f bc f4\s+vfnmadd231pd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff bc f4\s+vfnmadd231pd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 51 18 bc f4\s+vfnmadd231ph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 51 3f bc f4\s+vfnmadd231ph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 51 ff bc f4\s+vfnmadd231ph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 51 18 bc f4\s+vfnmadd231ps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 51 3f bc f4\s+vfnmadd231ps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 51 ff bc f4\s+vfnmadd231ps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 9e f4\s+vfnmsub132pd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 d1 3f 9e f4\s+vfnmsub132pd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff 9e f4\s+vfnmsub132pd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 51 18 9e f4\s+vfnmsub132ph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 51 3f 9e f4\s+vfnmsub132ph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 51 ff 9e f4\s+vfnmsub132ph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 51 18 9e f4\s+vfnmsub132ps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 51 3f 9e f4\s+vfnmsub132ps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 51 ff 9e f4\s+vfnmsub132ps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 ae f4\s+vfnmsub213pd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 d1 3f ae f4\s+vfnmsub213pd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff ae f4\s+vfnmsub213pd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 51 18 ae f4\s+vfnmsub213ph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 51 3f ae f4\s+vfnmsub213ph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 51 ff ae f4\s+vfnmsub213ph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 51 18 ae f4\s+vfnmsub213ps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 51 3f ae f4\s+vfnmsub213ps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 51 ff ae f4\s+vfnmsub213ps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 d1 18 be f4\s+vfnmsub231pd \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 d1 3f be f4\s+vfnmsub231pd \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 d1 ff be f4\s+vfnmsub231pd \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 51 18 be f4\s+vfnmsub231ph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 51 3f be f4\s+vfnmsub231ph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 51 ff be f4\s+vfnmsub231ph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 51 18 be f4\s+vfnmsub231ps \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 51 3f be f4\s+vfnmsub231ps \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 51 ff be f4\s+vfnmsub231ps \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f3 d1 18 54 f4 7b\s+vfixupimmpd \$0x7b,\{sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f3 d1 1f 54 f4 7b\s+vfixupimmpd \$0x7b,\{sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f3 d1 9f 54 f4 7b\s+vfixupimmpd \$0x7b,\{sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f3 51 18 54 f4 7b\s+vfixupimmps \$0x7b,\{sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f3 51 1f 54 f4 7b\s+vfixupimmps \$0x7b,\{sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f3 51 9f 54 f4 7b\s+vfixupimmps \$0x7b,\{sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f3 d1 18 50 f4 7b\s+vrangepd \$0x7b,\{sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f3 d1 1f 50 f4 7b\s+vrangepd \$0x7b,\{sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f3 d1 9f 50 f4 7b\s+vrangepd \$0x7b,\{sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f3 51 18 50 f4 7b\s+vrangeps \$0x7b,\{sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f3 51 1f 50 f4 7b\s+vrangeps \$0x7b,\{sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f3 51 9f 50 f4 7b\s+vrangeps \$0x7b,\{sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 53 18 56 f4\s+vfcmaddcph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 53 3f 56 f4\s+vfcmaddcph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 53 ff 56 f4\s+vfcmaddcph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 53 18 d6 f4\s+vfcmulcph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 53 3f d6 f4\s+vfcmulcph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 53 ff d6 f4\s+vfcmulcph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 52 18 56 f4\s+vfmaddcph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 52 3f 56 f4\s+vfmaddcph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 52 ff 56 f4\s+vfmaddcph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 52 18 d6 f4\s+vfmulcph \{rn-sae\},%ymm4,%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 52 3f d6 f4\s+vfmulcph \{rd-sae\},%ymm4,%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 52 ff d6 f4\s+vfmulcph \{rz-sae\},%ymm4,%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 78 18 5b f5\s+vcvtdq2ph \{rn-sae\},%ymm5,%xmm6
-\s*[a-f0-9]+:\s*62 f5 78 3f 5b f5\s+vcvtdq2ph \{rd-sae\},%ymm5,%xmm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 78 ff 5b f5\s+vcvtdq2ph \{rz-sae\},%ymm5,%xmm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 78 18 5b f5\s+vcvtdq2ps \{rn-sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 78 3f 5b f5\s+vcvtdq2ps \{rd-sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 78 ff 5b f5\s+vcvtdq2ps \{rz-sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 7b 18 7a f5\s+vcvtudq2ph \{rn-sae\},%ymm5,%xmm6
-\s*[a-f0-9]+:\s*62 f5 7b 3f 7a f5\s+vcvtudq2ph \{rd-sae\},%ymm5,%xmm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 7b ff 7a f5\s+vcvtudq2ph \{rz-sae\},%ymm5,%xmm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 7b 18 7a f5\s+vcvtudq2ps \{rn-sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 7b 3f 7a f5\s+vcvtudq2ps \{rd-sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 7b ff 7a f5\s+vcvtudq2ps \{rz-sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 fb 18 e6 f5\s+vcvtpd2dq \{rn-sae\},%ymm5,%xmm6
-\s*[a-f0-9]+:\s*62 f1 fb 3f e6 f5\s+vcvtpd2dq \{rd-sae\},%ymm5,%xmm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 fb ff e6 f5\s+vcvtpd2dq \{rz-sae\},%ymm5,%xmm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 f9 18 5a f5\s+vcvtpd2ph \{rn-sae\},%ymm5,%xmm6
-\s*[a-f0-9]+:\s*62 f5 f9 3f 5a f5\s+vcvtpd2ph \{rd-sae\},%ymm5,%xmm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 f9 ff 5a f5\s+vcvtpd2ph \{rz-sae\},%ymm5,%xmm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 f9 18 5a f5\s+vcvtpd2ps \{rn-sae\},%ymm5,%xmm6
-\s*[a-f0-9]+:\s*62 f1 f9 3f 5a f5\s+vcvtpd2ps \{rd-sae\},%ymm5,%xmm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 f9 ff 5a f5\s+vcvtpd2ps \{rz-sae\},%ymm5,%xmm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 f8 18 79 f5\s+vcvtpd2udq \{rn-sae\},%ymm5,%xmm6
-\s*[a-f0-9]+:\s*62 f1 f8 3f 79 f5\s+vcvtpd2udq \{rd-sae\},%ymm5,%xmm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 f8 ff 79 f5\s+vcvtpd2udq \{rz-sae\},%ymm5,%xmm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 f9 18 7b f5\s+vcvtpd2qq \{rn-sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 f9 3f 7b f5\s+vcvtpd2qq \{rd-sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 f9 ff 7b f5\s+vcvtpd2qq \{rz-sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 f9 18 79 f5\s+vcvtpd2uqq \{rn-sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 f9 3f 79 f5\s+vcvtpd2uqq \{rd-sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 f9 ff 79 f5\s+vcvtpd2uqq \{rz-sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 79 18 5b f5\s+vcvtph2dq \{rn-sae\},%xmm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 79 3f 5b f5\s+vcvtph2dq \{rd-sae\},%xmm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 79 ff 5b f5\s+vcvtph2dq \{rz-sae\},%xmm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 79 18 7b f5\s+vcvtph2qq \{rn-sae\},%xmm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 79 3f 7b f5\s+vcvtph2qq \{rd-sae\},%xmm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 79 ff 7b f5\s+vcvtph2qq \{rz-sae\},%xmm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 78 18 79 f5\s+vcvtph2udq \{rn-sae\},%xmm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 78 3f 79 f5\s+vcvtph2udq \{rd-sae\},%xmm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 78 ff 79 f5\s+vcvtph2udq \{rz-sae\},%xmm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 79 18 79 f5\s+vcvtph2uqq \{rn-sae\},%xmm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 79 3f 79 f5\s+vcvtph2uqq \{rd-sae\},%xmm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 79 ff 79 f5\s+vcvtph2uqq \{rz-sae\},%xmm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 78 18 5a f5\s+vcvtph2pd \{sae\},%xmm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 78 1f 5a f5\s+vcvtph2pd \{sae\},%xmm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 78 9f 5a f5\s+vcvtph2pd \{sae\},%xmm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f2 79 18 13 f5\s+vcvtph2ps \{sae\},%xmm5,%ymm6
-\s*[a-f0-9]+:\s*62 f2 79 1f 13 f5\s+vcvtph2ps \{sae\},%xmm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f2 79 9f 13 f5\s+vcvtph2ps \{sae\},%xmm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f6 79 18 13 f5\s+vcvtph2psx \{sae\},%xmm5,%ymm6
-\s*[a-f0-9]+:\s*62 f6 79 1f 13 f5\s+vcvtph2psx \{sae\},%xmm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f6 79 9f 13 f5\s+vcvtph2psx \{sae\},%xmm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 78 18 7d f5\s+vcvtph2uw \{rn-sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 78 3f 7d f5\s+vcvtph2uw \{rd-sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 78 ff 7d f5\s+vcvtph2uw \{rz-sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 79 18 7d f5\s+vcvtph2w \{rn-sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 79 3f 7d f5\s+vcvtph2w \{rd-sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 79 ff 7d f5\s+vcvtph2w \{rz-sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 79 18 5b f5\s+vcvtps2dq \{rn-sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 79 3f 5b f5\s+vcvtps2dq \{rd-sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 79 ff 5b f5\s+vcvtps2dq \{rz-sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 78 18 79 f5\s+vcvtps2udq \{rn-sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 78 3f 79 f5\s+vcvtps2udq \{rd-sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 78 ff 79 f5\s+vcvtps2udq \{rz-sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 78 18 5a f5\s+vcvtps2pd \{sae\},%xmm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 78 1f 5a f5\s+vcvtps2pd \{sae\},%xmm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 78 9f 5a f5\s+vcvtps2pd \{sae\},%xmm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 79 18 1d f5\s+vcvtps2phx \{rn-sae\},%ymm5,%xmm6
-\s*[a-f0-9]+:\s*62 f5 79 3f 1d f5\s+vcvtps2phx \{rd-sae\},%ymm5,%xmm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 79 ff 1d f5\s+vcvtps2phx \{rz-sae\},%ymm5,%xmm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 79 18 7b f5\s+vcvtps2qq \{rn-sae\},%xmm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 79 3f 7b f5\s+vcvtps2qq \{rd-sae\},%xmm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 79 ff 7b f5\s+vcvtps2qq \{rz-sae\},%xmm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 79 18 79 f5\s+vcvtps2uqq \{rn-sae\},%xmm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 79 3f 79 f5\s+vcvtps2uqq \{rd-sae\},%xmm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 79 ff 79 f5\s+vcvtps2uqq \{rz-sae\},%xmm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 fa 18 e6 f5\s+vcvtqq2pd \{rn-sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 fa 3f e6 f5\s+vcvtqq2pd \{rd-sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 fa ff e6 f5\s+vcvtqq2pd \{rz-sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 f8 18 5b f5\s+vcvtqq2ph \{rn-sae\},%ymm5,%xmm6
-\s*[a-f0-9]+:\s*62 f5 f8 3f 5b f5\s+vcvtqq2ph \{rd-sae\},%ymm5,%xmm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 f8 ff 5b f5\s+vcvtqq2ph \{rz-sae\},%ymm5,%xmm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 f8 18 5b f5\s+vcvtqq2ps \{rn-sae\},%ymm5,%xmm6
-\s*[a-f0-9]+:\s*62 f1 f8 3f 5b f5\s+vcvtqq2ps \{rd-sae\},%ymm5,%xmm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 f8 ff 5b f5\s+vcvtqq2ps \{rz-sae\},%ymm5,%xmm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 fa 18 7a f5\s+vcvtuqq2pd \{rn-sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 fa 3f 7a f5\s+vcvtuqq2pd \{rd-sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 fa ff 7a f5\s+vcvtuqq2pd \{rz-sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 fb 18 7a f5\s+vcvtuqq2ph \{rn-sae\},%ymm5,%xmm6
-\s*[a-f0-9]+:\s*62 f5 fb 3f 7a f5\s+vcvtuqq2ph \{rd-sae\},%ymm5,%xmm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 fb ff 7a f5\s+vcvtuqq2ph \{rz-sae\},%ymm5,%xmm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 fb 18 7a f5\s+vcvtuqq2ps \{rn-sae\},%ymm5,%xmm6
-\s*[a-f0-9]+:\s*62 f1 fb 3f 7a f5\s+vcvtuqq2ps \{rd-sae\},%ymm5,%xmm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 fb ff 7a f5\s+vcvtuqq2ps \{rz-sae\},%ymm5,%xmm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 f9 18 e6 f5\s+vcvttpd2dq \{sae\},%ymm5,%xmm6
-\s*[a-f0-9]+:\s*62 f1 f9 1f e6 f5\s+vcvttpd2dq \{sae\},%ymm5,%xmm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 f9 9f e6 f5\s+vcvttpd2dq \{sae\},%ymm5,%xmm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 f8 18 78 f5\s+vcvttpd2udq \{sae\},%ymm5,%xmm6
-\s*[a-f0-9]+:\s*62 f1 f8 1f 78 f5\s+vcvttpd2udq \{sae\},%ymm5,%xmm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 f8 9f 78 f5\s+vcvttpd2udq \{sae\},%ymm5,%xmm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 f9 18 7a f5\s+vcvttpd2qq \{sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 f9 1f 7a f5\s+vcvttpd2qq \{sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 f9 9f 7a f5\s+vcvttpd2qq \{sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 f9 18 78 f5\s+vcvttpd2uqq \{sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 f9 1f 78 f5\s+vcvttpd2uqq \{sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 f9 9f 78 f5\s+vcvttpd2uqq \{sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 7a 18 5b f5\s+vcvttph2dq \{sae\},%xmm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 7a 1f 5b f5\s+vcvttph2dq \{sae\},%xmm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 7a 9f 5b f5\s+vcvttph2dq \{sae\},%xmm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 79 18 7a f5\s+vcvttph2qq \{sae\},%xmm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 79 1f 7a f5\s+vcvttph2qq \{sae\},%xmm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 79 9f 7a f5\s+vcvttph2qq \{sae\},%xmm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 78 18 78 f5\s+vcvttph2udq \{sae\},%xmm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 78 1f 78 f5\s+vcvttph2udq \{sae\},%xmm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 78 9f 78 f5\s+vcvttph2udq \{sae\},%xmm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 79 18 78 f5\s+vcvttph2uqq \{sae\},%xmm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 79 1f 78 f5\s+vcvttph2uqq \{sae\},%xmm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 79 9f 78 f5\s+vcvttph2uqq \{sae\},%xmm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 78 18 7c f5\s+vcvttph2uw \{sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 78 1f 7c f5\s+vcvttph2uw \{sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 78 9f 7c f5\s+vcvttph2uw \{sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 79 18 7c f5\s+vcvttph2w \{sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 79 1f 7c f5\s+vcvttph2w \{sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 79 9f 7c f5\s+vcvttph2w \{sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 7a 18 5b f5\s+vcvttps2dq \{sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 7a 1f 5b f5\s+vcvttps2dq \{sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 7a 9f 5b f5\s+vcvttps2dq \{sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 78 18 78 f5\s+vcvttps2udq \{sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 78 1f 78 f5\s+vcvttps2udq \{sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 78 9f 78 f5\s+vcvttps2udq \{sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 79 18 7a f5\s+vcvttps2qq \{sae\},%xmm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 79 1f 7a f5\s+vcvttps2qq \{sae\},%xmm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 79 9f 7a f5\s+vcvttps2qq \{sae\},%xmm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f1 79 18 78 f5\s+vcvttps2uqq \{sae\},%xmm5,%ymm6
-\s*[a-f0-9]+:\s*62 f1 79 1f 78 f5\s+vcvttps2uqq \{sae\},%xmm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f1 79 9f 78 f5\s+vcvttps2uqq \{sae\},%xmm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 7b 18 7d f5\s+vcvtuw2ph \{rn-sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 7b 3f 7d f5\s+vcvtuw2ph \{rd-sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 7b ff 7d f5\s+vcvtuw2ph \{rz-sae\},%ymm5,%ymm6\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 f5 7a 18 7d f5\s+vcvtw2ph \{rn-sae\},%ymm5,%ymm6
-\s*[a-f0-9]+:\s*62 f5 7a 3f 7d f5\s+vcvtw2ph \{rd-sae\},%ymm5,%ymm6\{%k7\}
-\s*[a-f0-9]+:\s*62 f5 7a ff 7d f5\s+vcvtw2ph \{rz-sae\},%ymm5,%ymm6\{%k7\}\{z\}
-#pass
diff --git a/gas/testsuite/gas/i386/avx10_2-rounding.s b/gas/testsuite/gas/i386/avx10_2-rounding.s
deleted file mode 100644
index 048e715..0000000
--- a/gas/testsuite/gas/i386/avx10_2-rounding.s
+++ /dev/null
@@ -1,351 +0,0 @@
-# Check 32bit AVX10.2 instructions
-
- .text
-_start:
- .irp m, pd, ph, ps
- vcmp\m $123, {sae}, %ymm4, %ymm5, %k5
- vcmp\m $123, {sae}, %ymm4, %ymm5, %k5{%k7}
- vgetexp\m {sae}, %ymm5, %ymm6
- vgetexp\m {sae}, %ymm5, %ymm6{%k7}
- vgetexp\m {sae}, %ymm5, %ymm6{%k7}{z}
- vsqrt\m {rn-sae}, %ymm5, %ymm6
- vsqrt\m {rd-sae}, %ymm5, %ymm6{%k7}
- vsqrt\m {rz-sae}, %ymm5, %ymm6{%k7}{z}
- .endr
-
- .irp a, add, div, mul, scalef, sub
- .irp m, pd, ph, ps
- v\a\m {rn-sae}, %ymm4, %ymm5, %ymm6
- v\a\m {rd-sae}, %ymm4, %ymm5, %ymm6{%k7}
- v\a\m {rz-sae}, %ymm4, %ymm5, %ymm6{%k7}{z}
- .endr
- .endr
-
- .irp a, max, min
- .irp m, pd, ph, ps
- v\a\m {sae}, %ymm4, %ymm5, %ymm6
- v\a\m {sae}, %ymm4, %ymm5, %ymm6{%k7}
- v\a\m {sae}, %ymm4, %ymm5, %ymm6{%k7}{z}
- .endr
- .endr
-
- .irp a, getmant, reduce, rndscale
- .irp m, pd, ph, ps
- v\a\m $123, {sae}, %ymm5, %ymm6
- v\a\m $123, {sae}, %ymm5, %ymm6{%k7}
- v\a\m $123, {sae}, %ymm5, %ymm6{%k7}{z}
- .endr
- .endr
-
- .irp a, madd, maddsub, msub, msubadd, nmadd, nmsub
- .irp n, 132, 213, 231
- .irp m, pd, ph, ps
- vf\a\n\m {rn-sae}, %ymm4, %ymm5, %ymm6
- vf\a\n\m {rd-sae}, %ymm4, %ymm5, %ymm6{%k7}
- vf\a\n\m {rz-sae}, %ymm4, %ymm5, %ymm6{%k7}{z}
- .endr
- .endr
- .endr
-
- .irp a, fixupimm, range
- .irp m, pd, ps
- v\a\m $123, {sae}, %ymm4, %ymm5, %ymm6
- v\a\m $123, {sae}, %ymm4, %ymm5, %ymm6{%k7}
- v\a\m $123, {sae}, %ymm4, %ymm5, %ymm6{%k7}{z}
- .endr
- .endr
-
- .irp a, cmadd, cmul, madd, mul
- vf\a\()cph {rn-sae}, %ymm4, %ymm5, %ymm6
- vf\a\()cph {rd-sae}, %ymm4, %ymm5, %ymm6{%k7}
- vf\a\()cph {rz-sae}, %ymm4, %ymm5, %ymm6{%k7}{z}
- .endr
-
- .irp n, dq, udq
- vcvt\n\()2ph {rn-sae}, %ymm5, %xmm6
- vcvt\n\()2ph {rd-sae}, %ymm5, %xmm6{%k7}
- vcvt\n\()2ph {rz-sae}, %ymm5, %xmm6{%k7}{z}
-
- vcvt\n\()2ps {rn-sae}, %ymm5, %ymm6
- vcvt\n\()2ps {rd-sae}, %ymm5, %ymm6{%k7}
- vcvt\n\()2ps {rz-sae}, %ymm5, %ymm6{%k7}{z}
- .endr
-
- .irp m, dq, ph, ps, udq
- vcvtpd2\m {rn-sae}, %ymm5, %xmm6
- vcvtpd2\m {rd-sae}, %ymm5, %xmm6{%k7}
- vcvtpd2\m {rz-sae}, %ymm5, %xmm6{%k7}{z}
- .endr
-
- .irp m, qq, uqq
- vcvtpd2\m {rn-sae}, %ymm5, %ymm6
- vcvtpd2\m {rd-sae}, %ymm5, %ymm6{%k7}
- vcvtpd2\m {rz-sae}, %ymm5, %ymm6{%k7}{z}
- .endr
-
- .irp m, dq, qq, udq, uqq
- vcvtph2\m {rn-sae}, %xmm5, %ymm6
- vcvtph2\m {rd-sae}, %xmm5, %ymm6{%k7}
- vcvtph2\m {rz-sae}, %xmm5, %ymm6{%k7}{z}
- .endr
-
- .irp m, pd, ps, psx
- vcvtph2\m {sae}, %xmm5, %ymm6
- vcvtph2\m {sae}, %xmm5, %ymm6{%k7}
- vcvtph2\m {sae}, %xmm5, %ymm6{%k7}{z}
- .endr
-
- .irp m, uw, w
- vcvtph2\m {rn-sae}, %ymm5, %ymm6
- vcvtph2\m {rd-sae}, %ymm5, %ymm6{%k7}
- vcvtph2\m {rz-sae}, %ymm5, %ymm6{%k7}{z}
- .endr
-
- .irp m, dq, udq
- vcvtps2\m {rn-sae}, %ymm5, %ymm6
- vcvtps2\m {rd-sae}, %ymm5, %ymm6{%k7}
- vcvtps2\m {rz-sae}, %ymm5, %ymm6{%k7}{z}
- .endr
-
- vcvtps2pd {sae}, %xmm5, %ymm6
- vcvtps2pd {sae}, %xmm5, %ymm6{%k7}
- vcvtps2pd {sae}, %xmm5, %ymm6{%k7}{z}
-
- vcvtps2phx {rn-sae}, %ymm5, %xmm6
- vcvtps2phx {rd-sae}, %ymm5, %xmm6{%k7}
- vcvtps2phx {rz-sae}, %ymm5, %xmm6{%k7}{z}
-
- .irp m, qq, uqq
- vcvtps2\m {rn-sae}, %xmm5, %ymm6
- vcvtps2\m {rd-sae}, %xmm5, %ymm6{%k7}
- vcvtps2\m {rz-sae}, %xmm5, %ymm6{%k7}{z}
- .endr
-
- .irp n, qq, uqq
- vcvt\n\()2pd {rn-sae}, %ymm5, %ymm6
- vcvt\n\()2pd {rd-sae}, %ymm5, %ymm6{%k7}
- vcvt\n\()2pd {rz-sae}, %ymm5, %ymm6{%k7}{z}
-
- .irp m, ph, ps
- vcvt\n\()2\m {rn-sae}, %ymm5, %xmm6
- vcvt\n\()2\m {rd-sae}, %ymm5, %xmm6{%k7}
- vcvt\n\()2\m {rz-sae}, %ymm5, %xmm6{%k7}{z}
- .endr
- .endr
-
- .irp m, dq, udq
- vcvttpd2\m {sae}, %ymm5, %xmm6
- vcvttpd2\m {sae}, %ymm5, %xmm6{%k7}
- vcvttpd2\m {sae}, %ymm5, %xmm6{%k7}{z}
- .endr
-
- .irp m, qq, uqq
- vcvttpd2\m {sae}, %ymm5, %ymm6
- vcvttpd2\m {sae}, %ymm5, %ymm6{%k7}
- vcvttpd2\m {sae}, %ymm5, %ymm6{%k7}{z}
- .endr
-
- .irp m, dq, qq, udq, uqq
- vcvttph2\m {sae}, %xmm5, %ymm6
- vcvttph2\m {sae}, %xmm5, %ymm6{%k7}
- vcvttph2\m {sae}, %xmm5, %ymm6{%k7}{z}
- .endr
-
- .irp m, uw, w
- vcvttph2\m {sae}, %ymm5, %ymm6
- vcvttph2\m {sae}, %ymm5, %ymm6{%k7}
- vcvttph2\m {sae}, %ymm5, %ymm6{%k7}{z}
- .endr
-
- .irp m, dq, udq
- vcvttps2\m {sae}, %ymm5, %ymm6
- vcvttps2\m {sae}, %ymm5, %ymm6{%k7}
- vcvttps2\m {sae}, %ymm5, %ymm6{%k7}{z}
- .endr
-
- .irp m, qq, uqq
- vcvttps2\m {sae}, %xmm5, %ymm6
- vcvttps2\m {sae}, %xmm5, %ymm6{%k7}
- vcvttps2\m {sae}, %xmm5, %ymm6{%k7}{z}
- .endr
-
- .irp n, uw, w
- vcvt\n\()2ph {rn-sae}, %ymm5, %ymm6
- vcvt\n\()2ph {rd-sae}, %ymm5, %ymm6{%k7}
- vcvt\n\()2ph {rz-sae}, %ymm5, %ymm6{%k7}{z}
- .endr
-
-_intel:
- .intel_syntax noprefix
- .irp m, pd, ph, ps
- vcmp\m k5, ymm5, ymm4{sae}, 123
- vcmp\m k5{k7}, ymm5, ymm4{sae}, 123
- vgetexp\m ymm6, ymm5{sae}
- vgetexp\m ymm6{k7}, ymm5{sae}
- vgetexp\m ymm6{k7}{z}, ymm5{sae}
- vsqrt\m ymm6, ymm5{rn-sae}
- vsqrt\m ymm6{k7}, ymm5{rd-sae}
- vsqrt\m ymm6{k7}{z}, ymm5{rz-sae}
- .endr
-
- .irp a, add, div, mul, scalef, sub
- .irp m, pd, ph, ps
- v\a\m ymm6, ymm5, ymm4{rn-sae}
- v\a\m ymm6{k7}, ymm5, ymm4{rd-sae}
- v\a\m ymm6{k7}{z}, ymm5, ymm4{rz-sae}
- .endr
- .endr
-
- .irp a, max, min
- .irp m, pd, ph, ps
- v\a\m ymm6, ymm5, ymm4{sae}
- v\a\m ymm6{k7}, ymm5, ymm4{sae}
- v\a\m ymm6{k7}{z}, ymm5, ymm4{sae}
- .endr
- .endr
-
- .irp a, getmant, reduce, rndscale
- .irp m, pd, ph, ps
- v\a\m ymm6, ymm5{sae}, 123
- v\a\m ymm6{k7}, ymm5{sae}, 123
- v\a\m ymm6{k7}{z}, ymm5{sae}, 123
- .endr
- .endr
-
- .irp a, madd, maddsub, msub, msubadd, nmadd, nmsub
- .irp n, 132, 213, 231
- .irp m, pd, ph, ps
- vf\a\n\m ymm6, ymm5, ymm4{rn-sae}
- vf\a\n\m ymm6{k7}, ymm5, ymm4{rd-sae}
- vf\a\n\m ymm6{k7}{z}, ymm5, ymm4{rz-sae}
- .endr
- .endr
- .endr
-
- .irp a, fixupimm, range
- .irp m, pd, ps
- v\a\m ymm6, ymm5, ymm4{sae}, 123
- v\a\m ymm6{k7}, ymm5, ymm4{sae}, 123
- v\a\m ymm6{k7}{z}, ymm5, ymm4{sae}, 123
- .endr
- .endr
-
- .irp a, cmadd, cmul, madd, mul
- vf\a\()cph ymm6, ymm5, ymm4{rn-sae}
- vf\a\()cph ymm6{k7}, ymm5, ymm4{rd-sae}
- vf\a\()cph ymm6{k7}{z}, ymm5, ymm4{rz-sae}
- .endr
-
- .irp n, dq, udq
- vcvt\n\()2ph xmm6, ymm5{rn-sae}
- vcvt\n\()2ph xmm6{k7}, ymm5{rd-sae}
- vcvt\n\()2ph xmm6{k7}{z}, ymm5{rz-sae}
-
- vcvt\n\()2ps ymm6, ymm5{rn-sae}
- vcvt\n\()2ps ymm6{k7}, ymm5{rd-sae}
- vcvt\n\()2ps ymm6{k7}{z}, ymm5{rz-sae}
- .endr
-
- .irp m, dq, ph, ps, udq
- vcvtpd2\m xmm6, ymm5{rn-sae}
- vcvtpd2\m xmm6{k7}, ymm5{rd-sae}
- vcvtpd2\m xmm6{k7}{z}, ymm5{rz-sae}
- .endr
-
- .irp m, qq, uqq
- vcvtpd2\m ymm6, ymm5{rn-sae}
- vcvtpd2\m ymm6{k7}, ymm5{rd-sae}
- vcvtpd2\m ymm6{k7}{z}, ymm5{rz-sae}
- .endr
-
- .irp m, dq, qq, udq, uqq
- vcvtph2\m ymm6, xmm5{rn-sae}
- vcvtph2\m ymm6{k7}, xmm5{rd-sae}
- vcvtph2\m ymm6{k7}{z}, xmm5{rz-sae}
- .endr
-
- .irp m, pd, ps, psx
- vcvtph2\m ymm6, xmm5{sae}
- vcvtph2\m ymm6{k7}, xmm5{sae}
- vcvtph2\m ymm6{k7}{z}, xmm5{sae}
- .endr
-
- .irp m, uw, w
- vcvtph2\m ymm6, ymm5{rn-sae}
- vcvtph2\m ymm6{k7}, ymm5{rd-sae}
- vcvtph2\m ymm6{k7}{z}, ymm5{rz-sae}
- .endr
-
- .irp m, dq, udq
- vcvtps2\m ymm6, ymm5{rn-sae}
- vcvtps2\m ymm6{k7}, ymm5{rd-sae}
- vcvtps2\m ymm6{k7}{z}, ymm5{rz-sae}
- .endr
-
- vcvtps2pd ymm6, xmm5{sae}
- vcvtps2pd ymm6{k7}, xmm5{sae}
- vcvtps2pd ymm6{k7}{z}, xmm5{sae}
-
- vcvtps2phx xmm6, ymm5{rn-sae}
- vcvtps2phx xmm6{k7}, ymm5{rd-sae}
- vcvtps2phx xmm6{k7}{z}, ymm5{rz-sae}
-
- .irp m, qq, uqq
- vcvtps2\m ymm6, xmm5{rn-sae}
- vcvtps2\m ymm6{k7}, xmm5{rd-sae}
- vcvtps2\m ymm6{k7}{z}, xmm5{rz-sae}
- .endr
-
- .irp n, qq, uqq
- vcvt\n\()2pd ymm6, ymm5{rn-sae}
- vcvt\n\()2pd ymm6{k7}, ymm5{rd-sae}
- vcvt\n\()2pd ymm6{k7}{z}, ymm5{rz-sae}
-
- .irp m, ph, ps
- vcvt\n\()2\m xmm6, ymm5{rn-sae}
- vcvt\n\()2\m xmm6{k7}, ymm5{rd-sae}
- vcvt\n\()2\m xmm6{k7}{z}, ymm5{rz-sae}
- .endr
- .endr
-
- .irp m, dq, udq
- vcvttpd2\m xmm6, ymm5{sae}
- vcvttpd2\m xmm6{k7}, ymm5{sae}
- vcvttpd2\m xmm6{k7}{z}, ymm5{sae}
- .endr
-
- .irp m, qq, uqq
- vcvttpd2\m ymm6, ymm5{sae}
- vcvttpd2\m ymm6{k7}, ymm5{sae}
- vcvttpd2\m ymm6{k7}{z}, ymm5{sae}
- .endr
-
- .irp m, dq, qq, udq, uqq
- vcvttph2\m ymm6, xmm5{sae}
- vcvttph2\m ymm6{k7}, xmm5{sae}
- vcvttph2\m ymm6{k7}{z}, xmm5{sae}
- .endr
-
- .irp m, uw, w
- vcvttph2\m ymm6, ymm5{sae}
- vcvttph2\m ymm6{k7}, ymm5{sae}
- vcvttph2\m ymm6{k7}{z}, ymm5{sae}
- .endr
-
- .irp m, dq, udq
- vcvttps2\m ymm6, ymm5{sae}
- vcvttps2\m ymm6{k7}, ymm5{sae}
- vcvttps2\m ymm6{k7}{z}, ymm5{sae}
- .endr
-
- .irp m, qq, uqq
- vcvttps2\m ymm6, xmm5{sae}
- vcvttps2\m ymm6{k7}, xmm5{sae}
- vcvttps2\m ymm6{k7}{z}, xmm5{sae}
- .endr
-
- .irp n, uw, w
- vcvt\n\()2ph ymm6, ymm5{rn-sae}
- vcvt\n\()2ph ymm6{k7}, ymm5{rd-sae}
- vcvt\n\()2ph ymm6{k7}{z}, ymm5{rz-sae}
- .endr
diff --git a/gas/testsuite/gas/i386/evex.d b/gas/testsuite/gas/i386/evex.d
index a352340..3d20f20 100644
--- a/gas/testsuite/gas/i386/evex.d
+++ b/gas/testsuite/gas/i386/evex.d
@@ -19,7 +19,5 @@ Disassembly of section .text:
+[a-f0-9]+: 62 e1 7e 08 2d c0 \{evex\} vcvtss2si %xmm0,%eax
+[a-f0-9]+: 62 e1 7c 08 c2 c0 00 vcmpeqps %xmm0,%xmm0,%k0
+[a-f0-9]+: 62 f1 7e 38 e6 f5 vcvtdq2pd %ymm5,%zmm6
- +[a-f0-9]+: 62 f1 7a 38 e6 f5 vcvtdq2pd %xmm5,%ymm6
+[a-f0-9]+: 62 f1 7e 38 7a f5 vcvtudq2pd %ymm5,%zmm6
- +[a-f0-9]+: 62 f1 7a 38 7a f5 vcvtudq2pd %xmm5,%ymm6
#pass
diff --git a/gas/testsuite/gas/i386/evex.s b/gas/testsuite/gas/i386/evex.s
index 890eed9..b2388b7 100644
--- a/gas/testsuite/gas/i386/evex.s
+++ b/gas/testsuite/gas/i386/evex.s
@@ -14,6 +14,4 @@ _start:
.byte 0x62, 0xe1, 0x7e, 0x08, 0x2d, 0xc0
.byte 0x62, 0xe1, 0x7c, 0x08, 0xc2, 0xc0, 0x00
.insn EVEX.F3.0F.W0 0xe6, {rd-sae},%zmm5,%ymm6
- .insn EVEX.F3.0F.W0 0xe6, {rd-sae},%ymm5,%xmm6
.insn EVEX.F3.0F.W0 0x7a, {rd-sae},%zmm5,%ymm6
- .insn EVEX.F3.0F.W0 0x7a, {rd-sae},%ymm5,%xmm6
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index b4d33cc..b068b32 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -117,6 +117,7 @@ if [gas_32_check] then {
run_dump_test "gmi"
run_dump_test "padlockrng2"
run_dump_test "padlockphe2"
+ run_dump_test "padlockxmodx"
run_dump_test "crx"
run_list_test "cr-err" ""
run_dump_test "cdr"
@@ -514,9 +515,6 @@ if [gas_32_check] then {
run_list_test "user_msr-inval"
run_list_test "msr_imm-inval"
run_list_test "apx-push2pop2-inval"
- run_dump_test "avx10_2-rounding"
- run_dump_test "avx10_2-rounding-intel"
- run_list_test "avx10_2-rounding-inval"
run_dump_test "avx10_2-evex-promote"
run_dump_test "avx10_2-512-media"
run_dump_test "avx10_2-512-media-intel"
@@ -637,6 +635,7 @@ if [gas_32_check] then {
run_dump_test "nop-1-suffix"
run_list_test "nop-1" "-aln"
run_dump_test "nop-2"
+ run_list_test "nop-7" "-aln"
run_dump_test "optimize-1"
run_dump_test "optimize-1a"
run_dump_test "optimize-2"
@@ -834,6 +833,7 @@ if {![istarget "i*86-*-elfiamcu"] && [gas_64_check]} then {
}
run_list_test "string-bad" ""
run_list_test "reg-bad" ""
+run_list_test "inval-type"
run_list_test "space1" "-al"
if {![istarget "i*86-*-elfiamcu"]} then {
run_list_test "xmmword"
@@ -846,6 +846,9 @@ run_list_test "unspec" ""
run_dump_test "fp"
run_dump_test "cond"
run_dump_test pr30248
+if {![is_aout_format]} then {
+ run_list_test pr32721 ""
+}
if {[is_elf_format] || [istarget "*-*-vxworks*"]} then {
run_list_test_stdin "list-1" "-al"
run_list_test_stdin "list-2" "-al"
diff --git a/gas/testsuite/gas/i386/insn-64.d b/gas/testsuite/gas/i386/insn-64.d
index 0c1f0c5..cbfbabd 100644
--- a/gas/testsuite/gas/i386/insn-64.d
+++ b/gas/testsuite/gas/i386/insn-64.d
@@ -63,4 +63,13 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 62 f5 fd 58 5a 40 01[ ]+vcvtpd2ph (0x)?8\(%rax\)\{1to8\},%xmm0
[ ]*[a-f0-9]+: 62 f5 7c 48 5a 40 01[ ]+vcvtph2pd 0x10\(%rax\),%zmm0
[ ]*[a-f0-9]+: 62 f5 7c 58 5a 40 01[ ]+vcvtph2pd (0x)?2\(%rax\)\{1to8\},%zmm0
+[ ]*[a-f0-9]+: 62 e4 7c 08 8b 00[ ]+movrs \(%rax\),%r16d
+[ ]*[a-f0-9]+: 62 fc 7c 08 8b 00[ ]+movrs \(%r16\),%eax
+[ ]*[a-f0-9]+: 62 f4 78 08 8b 04 00[ ]+movrs \(%rax,%r16(,1)?\),%eax
+[ ]*[a-f0-9]+: 62 fc 7c 08 60 c0[ ]+movbe %r16d,%eax
+[ ]*[a-f0-9]+: 62 f4 7c 0c 01 c0[ ]+\{nf\} add %eax,%eax
+[ ]*[a-f0-9]+: 62 f4 7c 18 01 c0[ ]+add %eax,%eax,%eax
+[ ]*[a-f0-9]+: 62 f4 ec 18 ff f1[ ]+push2p %rcx,%rdx
+[ ]*[a-f0-9]+: 62 f4 7f 18 42 c0[ ]+setzub %al
+[ ]*[a-f0-9]+: 62 f4 44 0b 39 c0[ ]+ccmpf \{dfv=of\} %eax,%eax
#pass
diff --git a/gas/testsuite/gas/i386/insn-64.s b/gas/testsuite/gas/i386/insn-64.s
index 3152ec9..f79db65 100644
--- a/gas/testsuite/gas/i386/insn-64.s
+++ b/gas/testsuite/gas/i386/insn-64.s
@@ -104,3 +104,24 @@ insn:
# vcvtph2pd
.insn EVEX.M5.W0 0x5a, 16(%rax){:d16}, %zmm0
.insn EVEX.M5.W0 0x5a, 2(%rax){1to8:d2}, %zmm0
+
+ # movrs (APX)
+ .insn EVEX.L0.NP.M4 0x8b, (%rax), %r16d
+ .insn EVEX.L0.NP.M4 0x8b, (%r16), %eax
+ .insn EVEX.L0.NP.M4 0x8b, (%rax,%r16), %eax
+
+ # movbe (APX)
+ .insn EVEX.L0.NP.M4 0x60, %r16d, %eax
+
+ # add (APX)
+ .insn {nf} EVEX.L0.NP.M4 0x01, %eax, %eax
+ .insn EVEX.L0.NP.M4.ND 0x01, %eax, %eax, %eax
+
+ # push2p
+ .insn EVEX.L0.NP.M4.W1.ND 0xff/6, %rcx, %rdx
+
+ # setzub
+ .insn EVEX.L0.F2.M4.ZU 0x42/0, %eax
+
+ # ccmpf
+ .insn EVEX.L0.NP.M4 0x39 {scc=0b1011,dfv=of}, %eax, %eax
diff --git a/gas/testsuite/gas/i386/inval-type.l b/gas/testsuite/gas/i386/inval-type.l
new file mode 100644
index 0000000..c029a9f
--- /dev/null
+++ b/gas/testsuite/gas/i386/inval-type.l
@@ -0,0 +1,13 @@
+.*: Assembler messages:
+.*: Error: operand type mismatch for .blendvps.
+.*: Error: operand type mismatch for .blendvps.
+.*: Error: operand type mismatch for .bsf.
+.*: Error: operand type mismatch for .bswap.
+.*: Error: operand type mismatch for .bswap.
+.*: Error: operand type mismatch for .bswap.
+.*: Error: operand type mismatch for .fcomi.
+.*: Error: operand type mismatch for .fcomi.
+.*: Error: operand type mismatch for .in.
+.*: Error: operand type mismatch for .in.
+.*: Error: operand type mismatch for .movntdqa.
+.*: Error: operand type mismatch for .movntdq.
diff --git a/gas/testsuite/gas/i386/inval-type.s b/gas/testsuite/gas/i386/inval-type.s
new file mode 100644
index 0000000..6490acd
--- /dev/null
+++ b/gas/testsuite/gas/i386/inval-type.s
@@ -0,0 +1,17 @@
+ .text
+
+# All the following should yield "operand type mismatch" (or something yet more
+# specific), but _not_ "operand size mismatch".
+
+ blendvps %eax, %xmm1, %xmm2
+ blendvps %st, %xmm1, %xmm2
+ bsf %eax, (%eax)
+ bswap %st
+ bswap %mm0
+ bswapl %xmm0
+ fcomi %st(1), %eax
+ fcomi %st(1), %xmm0
+ inl $0, %st
+ inl $0, %xmm0
+ movntdqa %xmm0, (%eax)
+ movntdq (%eax), %xmm0
diff --git a/gas/testsuite/gas/i386/nop-1-suffix.d b/gas/testsuite/gas/i386/nop-1-suffix.d
index dbea21b..ff9c7ee 100644
--- a/gas/testsuite/gas/i386/nop-1-suffix.d
+++ b/gas/testsuite/gas/i386/nop-1-suffix.d
@@ -21,19 +21,20 @@ Disassembly of section .text:
+[a-f0-9]+: 8d 74 26 00 leal 0x0\(%esi,%eiz,1\),%esi
0+12 <pseudo_20>:
+ +[a-f0-9]+: 8d 74 26 00 leal 0x0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 leal %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 leal %cs:(0x)?0\(%esi,%eiz,1\),%esi
- +[a-f0-9]+: 8d 74 26 00 leal 0x0\(%esi,%eiz,1\),%esi
0+26 <pseudo_30>:
+[a-f0-9]+: eb 1c jmp 44 <pseudo_129>
+ +[a-f0-9]+: 8d 74 26 00 leal 0x0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 leal %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 leal %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 leal %cs:(0x)?0\(%esi,%eiz,1\),%esi
- +[a-f0-9]+: 8d 74 26 00 leal 0x0\(%esi,%eiz,1\),%esi
0+44 <pseudo_129>:
+[a-f0-9]+: eb 7f jmp c5 <end>
+ +[a-f0-9]+: 8d b4 26 00 00 00 00 leal 0x0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 leal %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 leal %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 leal %cs:(0x)?0\(%esi,%eiz,1\),%esi
@@ -49,7 +50,6 @@ Disassembly of section .text:
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 leal %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 leal %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 leal %cs:(0x)?0\(%esi,%eiz,1\),%esi
- +[a-f0-9]+: 8d b4 26 00 00 00 00 leal 0x0\(%esi,%eiz,1\),%esi
0+c5 <end>:
+[a-f0-9]+: 31 c0 xorl %eax,%eax
diff --git a/gas/testsuite/gas/i386/nop-1.d b/gas/testsuite/gas/i386/nop-1.d
index 93c7c3a..3c5e946 100644
--- a/gas/testsuite/gas/i386/nop-1.d
+++ b/gas/testsuite/gas/i386/nop-1.d
@@ -20,19 +20,20 @@ Disassembly of section .text:
+[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
0+12 <pseudo_20>:
+ +[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
- +[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
0+26 <pseudo_30>:
+[a-f0-9]+: eb 1c jmp 44 <pseudo_129>
+ +[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
- +[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
0+44 <pseudo_129>:
+[a-f0-9]+: eb 7f jmp c5 <end>
+ +[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
@@ -48,7 +49,6 @@ Disassembly of section .text:
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
- +[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
0+c5 <end>:
+[a-f0-9]+: 31 c0 xor %eax,%eax
diff --git a/gas/testsuite/gas/i386/nop-1.l b/gas/testsuite/gas/i386/nop-1.l
index a818708..39260bb 100644
--- a/gas/testsuite/gas/i386/nop-1.l
+++ b/gas/testsuite/gas/i386/nop-1.l
@@ -15,25 +15,25 @@
[ ]*[0-9]+[ ]+8D742600 *
[ ]*[0-9]+[ ]*
[ ]*[0-9]+[ ]+pseudo_20:
-[ ]*[0-9]+[ ]+.... 2E8DB426[ ]+\.nops 20
+[ ]*[0-9]+[ ]+.... 8D742600[ ]+\.nops 20
+[ ]*[0-9]+[ ]+2E8DB426 *
[ ]*[0-9]+[ ]+00000000 *
[ ]*[0-9]+[ ]+2E8DB426 *
[ ]*[0-9]+[ ]+00000000 *
-[ ]*[0-9]+[ ]+8D742600 *
[ ]*[0-9]+[ ]*
[ ]*[0-9]+[ ]+pseudo_30:
-[ ]*[0-9]+[ ]+.... EB1C2E8D[ ]+\.nops 30
+[ ]*[0-9]+[ ]+.... EB1C8D74[ ]+\.nops 30
+[ ]*[0-9]+[ ]+26002E8D *
[ ]*[0-9]+[ ]+B4260000 *
[ ]*[0-9]+[ ]+00002E8D *
[ ]*[0-9]+[ ]+B4260000 *
-[ ]*[0-9]+[ ]+00002E8D *
[ ]*[0-9]+[ ]*
[ ]*[0-9]+[ ]+pseudo_129:
-[ ]*[0-9]+[ ]+.... EB7F2E8D[ ]+\.nops 129
-[ ]*[0-9]+[ ]+B4260000 *
-[ ]*[0-9]+[ ]+00002E8D *
-[ ]*[0-9]+[ ]+B4260000 *
-[ ]*[0-9]+[ ]+00002E8D *
+[ ]*[0-9]+[ ]+.... EB7F8DB4[ ]+\.nops 129
+[ ]*[0-9]+[ ]+26000000 *
+[ ]*[0-9]+[ ]+002E8DB4 *
+[ ]*[0-9]+[ ]+26000000 *
+[ ]*[0-9]+[ ]+002E8DB4 *
[ ]*[0-9]+[ ]*
[ ]*[0-9]+[ ]+end:
#pass
diff --git a/gas/testsuite/gas/i386/nop-2.d b/gas/testsuite/gas/i386/nop-2.d
index d87ab7e..f29df32 100644
--- a/gas/testsuite/gas/i386/nop-2.d
+++ b/gas/testsuite/gas/i386/nop-2.d
@@ -13,8 +13,8 @@ Disassembly of section .text:
+[a-f0-9]+: 90 nop
0+2 <pseudo_8>:
- +[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
+[a-f0-9]+: 8d 74 00 lea (0x)?0\(%si\),%si
+ +[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
0+a <pseudo_8_4>:
+[a-f0-9]+: 8d b4 00 00 lea 0x0\(%si\),%si
@@ -22,22 +22,23 @@ Disassembly of section .text:
0+12 <pseudo_20>:
+[a-f0-9]+: eb 12 jmp 26 <pseudo_30>
+ +[a-f0-9]+: 8d 74 00 lea (0x)?0\(%si\),%si
+[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
+[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
+[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
- +[a-f0-9]+: 8d 74 00 lea (0x)?0\(%si\),%si
0+26 <pseudo_30>:
+[a-f0-9]+: eb 1c jmp 44 <pseudo_129>
+ +[a-f0-9]+: 8d 74 00 lea (0x)?0\(%si\),%si
+[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
+[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
+[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
+[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
+[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
- +[a-f0-9]+: 8d 74 00 lea (0x)?0\(%si\),%si
0+44 <pseudo_129>:
+[a-f0-9]+: eb 7f jmp c5 <end>
+ +[a-f0-9]+: 89 f6 mov %si,%si
+[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
+[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
+[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
@@ -63,7 +64,6 @@ Disassembly of section .text:
+[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
+[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
+[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
- +[a-f0-9]+: 89 f6 mov %si,%si
0+c5 <end>:
+[a-f0-9]+: 66 31 c0 xor %eax,%eax
diff --git a/gas/testsuite/gas/i386/nop-4.d b/gas/testsuite/gas/i386/nop-4.d
index 5953652..5f9e0b9 100644
--- a/gas/testsuite/gas/i386/nop-4.d
+++ b/gas/testsuite/gas/i386/nop-4.d
@@ -9,8 +9,8 @@ Disassembly of section .text:
0+ <_start>:
+[a-f0-9]+: 31 c0 xor %eax,%eax
+[a-f0-9]+: 85 c0 test %eax,%eax
- +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 90 nop
+ +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 31 c0 xor %eax,%eax
+[a-f0-9]+: 31 c0 xor %eax,%eax
diff --git a/gas/testsuite/gas/i386/nop-5.d b/gas/testsuite/gas/i386/nop-5.d
index 193e0cd..71f1259 100644
--- a/gas/testsuite/gas/i386/nop-5.d
+++ b/gas/testsuite/gas/i386/nop-5.d
@@ -9,9 +9,9 @@ Disassembly of section .text:
0+ <_start>:
+[a-f0-9]+: 31 c0 xor %eax,%eax
+[a-f0-9]+: 85 c0 test %eax,%eax
+ +[a-f0-9]+: 90 nop
+[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
- +[a-f0-9]+: 90 nop
+[a-f0-9]+: 31 c0 xor %eax,%eax
+[a-f0-9]+: 31 c0 xor %eax,%eax
diff --git a/gas/testsuite/gas/i386/nop-7.l b/gas/testsuite/gas/i386/nop-7.l
new file mode 100644
index 0000000..2a74137
--- /dev/null
+++ b/gas/testsuite/gas/i386/nop-7.l
@@ -0,0 +1,6 @@
+[ ]*[0-9]+[ ]+\.text
+[ ]*[0-9]+[ ]+nops:
+[ ]*[0-9]+[ ]+.... F88D7426[ ]+clc; \.nops 4; stc
+[ ]*[0-9]+[ ]+00F9
+[ ]*[0-9]+[ ]+.... C3[ ]+ret
+#pass
diff --git a/gas/testsuite/gas/i386/nop-7.s b/gas/testsuite/gas/i386/nop-7.s
new file mode 100644
index 0000000..8018f21
--- /dev/null
+++ b/gas/testsuite/gas/i386/nop-7.s
@@ -0,0 +1,6 @@
+ .text
+nops:
+ clc; .nops 4; stc
+ ret
+
+ .end
diff --git a/gas/testsuite/gas/i386/nops-1-core2.d b/gas/testsuite/gas/i386/nops-1-core2.d
index bd5ad37..c783324 100644
--- a/gas/testsuite/gas/i386/nops-1-core2.d
+++ b/gas/testsuite/gas/i386/nops-1-core2.d
@@ -9,153 +9,153 @@
Disassembly of section .text:
0+ <nop15>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\)
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
0+10 <nop14>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%eax\)
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
0+20 <nop13>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
0+30 <nop12>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
-[ ]*[a-f0-9]+: 90 nop
0+40 <nop11>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
0+50 <nop10>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:0x0\(%eax,%eax,1\)
0+60 <nop9>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%eax,%eax,1\)
0+70 <nop8>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%eax,%eax,1\)
0+80 <nop7>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%eax\)
0+90 <nop6>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%eax,%eax,1\)
0+a0 <nop5>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%eax,%eax,1\)
0+b0 <nop4>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\)
0+c0 <nop3>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%eax\)
0+d0 <nop2>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
#pass
diff --git a/gas/testsuite/gas/i386/nops-1.d b/gas/testsuite/gas/i386/nops-1.d
index ff6444a..71c1721 100644
--- a/gas/testsuite/gas/i386/nops-1.d
+++ b/gas/testsuite/gas/i386/nops-1.d
@@ -8,156 +8,156 @@
Disassembly of section .text:
0+ <nop15>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+10 <nop14>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 8d b6 00 00 00 00 lea (0x)?0\(%esi\),%esi
+ +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+20 <nop13>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+30 <nop12>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 8d 74 26 00 lea (0x)?0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+40 <nop11>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 8d 76 00 lea (0x)?0\(%esi\),%esi
+ +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+50 <nop10>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 66 90 xchg %ax,%ax
+ +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+60 <nop9>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 90 nop
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
- +[a-f0-9]+: 90 nop
0+70 <nop8>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+80 <nop7>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
0+90 <nop6>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 8d b6 00 00 00 00 lea 0x0\(%esi\),%esi
0+a0 <nop5>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+b0 <nop4>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
0+c0 <nop3>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 8d 76 00 lea 0x0\(%esi\),%esi
0+d0 <nop2>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 66 90 xchg %ax,%ax
#pass
diff --git a/gas/testsuite/gas/i386/nops-1.s b/gas/testsuite/gas/i386/nops-1.s
index a4fd769..77cb9a8 100644
--- a/gas/testsuite/gas/i386/nops-1.s
+++ b/gas/testsuite/gas/i386/nops-1.s
@@ -1,147 +1,147 @@
.text
nop15:
- nop
+ clc
.p2align 4
nop14:
- nop
- nop
+ clc
+ clc
.p2align 4
nop13:
- nop
- nop
- nop
+ clc
+ clc
+ clc
.p2align 4
nop12:
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop11:
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop10:
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop9:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop8:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop7:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop6:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop5:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop4:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop3:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop2:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
diff --git a/gas/testsuite/gas/i386/nops-10.d b/gas/testsuite/gas/i386/nops-10.d
index be9d4f7..6aeaaa0 100644
--- a/gas/testsuite/gas/i386/nops-10.d
+++ b/gas/testsuite/gas/i386/nops-10.d
@@ -8,6 +8,6 @@ Disassembly of section .text:
0+ <default>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
#pass
diff --git a/gas/testsuite/gas/i386/nops-2.d b/gas/testsuite/gas/i386/nops-2.d
index 79baee5..b7c1d81 100644
--- a/gas/testsuite/gas/i386/nops-2.d
+++ b/gas/testsuite/gas/i386/nops-2.d
@@ -9,160 +9,160 @@ Disassembly of section .text:
0+ <nop>:
+[a-f0-9]+: 0f be f0 movsbl %al,%esi
- +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+10 <nop15>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 8d b4 26 00 00 00 00 lea (0x)?0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+20 <nop14>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 8d b6 00 00 00 00 lea (0x)?0\(%esi\),%esi
+ +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+30 <nop13>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+40 <nop12>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 8d 74 26 00 lea (0x)?0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+50 <nop11>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 8d 76 00 lea (0x)?0\(%esi\),%esi
+ +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+60 <nop10>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 66 90 xchg %ax,%ax
+ +[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+70 <nop9>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 90 nop
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
- +[a-f0-9]+: 90 nop
0+80 <nop8>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+90 <nop7>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 8d b4 26 00 00 00 00 lea 0x0\(%esi,%eiz,1\),%esi
0+a0 <nop6>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 8d b6 00 00 00 00 lea 0x0\(%esi\),%esi
0+b0 <nop5>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+c0 <nop4>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
0+d0 <nop3>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 8d 76 00 lea 0x0\(%esi\),%esi
0+e0 <nop2>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 66 90 xchg %ax,%ax
#pass
diff --git a/gas/testsuite/gas/i386/nops-2.s b/gas/testsuite/gas/i386/nops-2.s
index 6de16f2..23466e2 100644
--- a/gas/testsuite/gas/i386/nops-2.s
+++ b/gas/testsuite/gas/i386/nops-2.s
@@ -4,148 +4,148 @@ nop:
.p2align 4
nop15:
- nop
+ clc
.p2align 4
nop14:
- nop
- nop
+ clc
+ clc
.p2align 4
nop13:
- nop
- nop
- nop
+ clc
+ clc
+ clc
.p2align 4
nop12:
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop11:
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop10:
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop9:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop8:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop7:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop6:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop5:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop4:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop3:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop2:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
diff --git a/gas/testsuite/gas/i386/nops-3.d b/gas/testsuite/gas/i386/nops-3.d
index 2de34bd..d0539b0 100644
--- a/gas/testsuite/gas/i386/nops-3.d
+++ b/gas/testsuite/gas/i386/nops-3.d
@@ -8,13 +8,13 @@
Disassembly of section .text:
0+ <nop>:
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 1d jmp 20 <nop\+0x20>
+[ ]*[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
-[ ]*[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 89 c3 mov %eax,%ebx
-[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 8d b6 00 00 00 00 lea (0x)?0\(%esi\),%esi
+[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
#pass
diff --git a/gas/testsuite/gas/i386/nops-3.s b/gas/testsuite/gas/i386/nops-3.s
index c42b354..293758a 100644
--- a/gas/testsuite/gas/i386/nops-3.s
+++ b/gas/testsuite/gas/i386/nops-3.s
@@ -1,6 +1,6 @@
.text
nop:
- nop
+ clc
.p2align 5
mov %eax,%ebx
.p2align 4
diff --git a/gas/testsuite/gas/i386/nops-4.d b/gas/testsuite/gas/i386/nops-4.d
index b311db2..8afbb17 100644
--- a/gas/testsuite/gas/i386/nops-4.d
+++ b/gas/testsuite/gas/i386/nops-4.d
@@ -7,230 +7,230 @@
Disassembly of section .text:
0+ <nop31>:
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 1d jmp 20 <nop30>
+[ ]*[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
-[ ]*[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+20 <nop30>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 1c jmp 40 <nop29>
+[ ]*[a-f0-9]+: 8d 74 26 00 lea (0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
-[ ]*[a-f0-9]+: 8d 74 26 00 lea (0x)?0\(%esi,%eiz,1\),%esi
0+40 <nop29>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 1b jmp 60 <nop28>
+[ ]*[a-f0-9]+: 8d 76 00 lea (0x)?0\(%esi\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
-[ ]*[a-f0-9]+: 8d 76 00 lea (0x)?0\(%esi\),%esi
0+60 <nop28>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 1a jmp 80 <nop27>
+[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
-[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
0+80 <nop27>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 19 jmp a0 <nop26>
+[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
-[ ]*[a-f0-9]+: 90 nop
0+a0 <nop26>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 18 jmp c0 <nop25>
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+c0 <nop25>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 17 jmp e0 <nop24>
+[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea (0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
-[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea (0x)?0\(%esi,%eiz,1\),%esi
0+e0 <nop24>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 16 jmp 100 <nop23>
+[ ]*[a-f0-9]+: 8d b6 00 00 00 00 lea (0x)?0\(%esi\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
-[ ]*[a-f0-9]+: 8d b6 00 00 00 00 lea (0x)?0\(%esi\),%esi
0+100 <nop23>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea (0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
-[ ]*[a-f0-9]+: 8d b4 26 00 00 00 00 lea (0x)?0\(%esi,%eiz,1\),%esi
0+120 <nop22>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 8d b6 00 00 00 00 lea (0x)?0\(%esi\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
-[ ]*[a-f0-9]+: 8d b6 00 00 00 00 lea (0x)?0\(%esi\),%esi
0+140 <nop21>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
-[ ]*[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+160 <nop20>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 8d 74 26 00 lea (0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
-[ ]*[a-f0-9]+: 8d 74 26 00 lea (0x)?0\(%esi,%eiz,1\),%esi
0+180 <nop19>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 8d 76 00 lea (0x)?0\(%esi\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
-[ ]*[a-f0-9]+: 8d 76 00 lea (0x)?0\(%esi\),%esi
0+1a0 <nop18>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
-[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
0+1c0 <nop17>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
-[ ]*[a-f0-9]+: 90 nop
0+1e0 <nop16>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
#pass
diff --git a/gas/testsuite/gas/i386/nops-4.s b/gas/testsuite/gas/i386/nops-4.s
index 103ca36..b455f49 100644
--- a/gas/testsuite/gas/i386/nops-4.s
+++ b/gas/testsuite/gas/i386/nops-4.s
@@ -1,187 +1,187 @@
.text
nop31:
- nop
+ clc
.p2align 5
nop30:
- nop
- nop
+ clc
+ clc
.p2align 5
nop29:
- nop
- nop
- nop
+ clc
+ clc
+ clc
.p2align 5
nop28:
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop27:
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop26:
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop25:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop24:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop23:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop22:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop21:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop20:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop19:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop18:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop17:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop16:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
align:
diff --git a/gas/testsuite/gas/i386/nops-4a-i686.d b/gas/testsuite/gas/i386/nops-4a-i686.d
index dfd3217..56ce6d7 100644
--- a/gas/testsuite/gas/i386/nops-4a-i686.d
+++ b/gas/testsuite/gas/i386/nops-4a-i686.d
@@ -8,211 +8,211 @@
Disassembly of section .text:
0+ <nop31>:
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
-[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%eax,%eax,1\)
0+20 <nop30>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
-[ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%eax,%eax,1\)
0+40 <nop29>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%eax\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
-[ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%eax\)
0+60 <nop28>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
-[ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%eax,%eax,1\)
0+80 <nop27>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
-[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%eax,%eax,1\)
0+a0 <nop26>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
-[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%eax\)
0+c0 <nop25>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%eax\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
-[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%eax\)
0+e0 <nop24>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
-[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
0+100 <nop23>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
-[ ]*[a-f0-9]+: 90 nop
0+120 <nop22>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
0+140 <nop21>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 2e 0f 1f 84 00 00 00 00 00 nopw %cs:0x0\(%eax,%eax,1\)
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
0+160 <nop20>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%eax,%eax,1\)
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
0+180 <nop19>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%eax,%eax,1\)
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
0+1a0 <nop18>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%eax\)
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
0+1c0 <nop17>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%eax,%eax,1\)
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
0+1e0 <nop16>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%eax,%eax,1\)
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
#pass
diff --git a/gas/testsuite/gas/i386/nops-5.d b/gas/testsuite/gas/i386/nops-5.d
index d87f950..7ca694e 100644
--- a/gas/testsuite/gas/i386/nops-5.d
+++ b/gas/testsuite/gas/i386/nops-5.d
@@ -7,71 +7,71 @@ Disassembly of section .text:
0+ <i386>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+10 <i486>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+20 <i586>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+30 <i686>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+40 <pentium4>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
0+50 <nocona>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
0+60 <core>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
0+70 <core2>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
0+80 <k6>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+90 <athlon>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
0+a0 <k8>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
0+b0 <generic32>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+c0 <generic64>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
0+d0 <amdfam10>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
#pass
diff --git a/gas/testsuite/gas/i386/nops-6.d b/gas/testsuite/gas/i386/nops-6.d
index c56c9d1..7dfb730 100644
--- a/gas/testsuite/gas/i386/nops-6.d
+++ b/gas/testsuite/gas/i386/nops-6.d
@@ -7,11 +7,11 @@ Disassembly of section .text:
0+ <i386>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+10 <i386_nop>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
#pass
diff --git a/gas/testsuite/gas/i386/nops-7.d b/gas/testsuite/gas/i386/nops-7.d
index 2290ab7..1ae8efa 100644
--- a/gas/testsuite/gas/i386/nops-7.d
+++ b/gas/testsuite/gas/i386/nops-7.d
@@ -8,6 +8,7 @@ Disassembly of section .text:
0+ <_start>:
+[a-f0-9]+: 31 c0 xor %eax,%eax
+[a-f0-9]+: e9 f9 01 00 00 jmp 200 <func1>
+ +[a-f0-9]+: 90 nop
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
@@ -71,11 +72,11 @@ Disassembly of section .text:
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
- +[a-f0-9]+: 90 nop
0+200 <func1>:
+[a-f0-9]+: 31 db xor %ebx,%ebx
+[a-f0-9]+: e9 f9 00 00 00 jmp 300 <func2>
+ +[a-f0-9]+: 90 nop
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
@@ -107,11 +108,11 @@ Disassembly of section .text:
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
- +[a-f0-9]+: 90 nop
0+300 <func2>:
+[a-f0-9]+: 31 db xor %ebx,%ebx
+[a-f0-9]+: eb 7c jmp 380 <func3>
+ +[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
@@ -127,11 +128,11 @@ Disassembly of section .text:
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
- +[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
0+380 <func3>:
+[a-f0-9]+: 31 c9 xor %ecx,%ecx
+[a-f0-9]+: eb 3c jmp 3c0 <func4>
+ +[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
@@ -139,15 +140,14 @@ Disassembly of section .text:
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
- +[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
0+3c0 <func4>:
+[a-f0-9]+: 31 d2 xor %edx,%edx
+[a-f0-9]+: eb 1c jmp 3e0 <func5>
+ +[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
- +[a-f0-9]+: 8d 74 26 00 lea 0x0\(%esi,%eiz,1\),%esi
0+3e0 <func5>:
+[a-f0-9]+: 31 ff xor %edi,%edi
diff --git a/gas/testsuite/gas/i386/nops-9.d b/gas/testsuite/gas/i386/nops-9.d
index ba8707f..62fc954 100644
--- a/gas/testsuite/gas/i386/nops-9.d
+++ b/gas/testsuite/gas/i386/nops-9.d
@@ -7,21 +7,21 @@ Disassembly of section .text:
0+ <default>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+10 <nopopcnt>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d 74 26 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
+[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+20 <popcnt>:
[ ]*[a-f0-9]+: f3 0f b8 f0 popcnt %eax,%esi
-[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
[ ]*[a-f0-9]+: 8d 74 26 00 lea (0x)?0\(%esi,%eiz,1\),%esi
+[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 lea %cs:(0x)?0\(%esi,%eiz,1\),%esi
0+30 <nop>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 nopw %cs:0x0\(%eax,%eax,1\)
#pass
diff --git a/gas/testsuite/gas/i386/nops16-1.d b/gas/testsuite/gas/i386/nops16-1.d
index 5cc860b..dd1219e 100644
--- a/gas/testsuite/gas/i386/nops16-1.d
+++ b/gas/testsuite/gas/i386/nops16-1.d
@@ -7,57 +7,57 @@
Disassembly of section .text:
0+ <nop31>:
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 1d jmp 20 <nop30>
+[ ]*[a-f0-9]+: 8d b4 00 00 lea 0x0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
-[ ]*[a-f0-9]+: 8d b4 00 00 lea 0x0\(%si\),%si
0+20 <nop30>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 1c jmp 40 <nop29>
+[ ]*[a-f0-9]+: 8d 74 00 lea (0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
-[ ]*[a-f0-9]+: 8d 74 00 lea (0x)?0\(%si\),%si
0+40 <nop29>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 1b jmp 60 <nop28>
+[ ]*[a-f0-9]+: 89 f6 mov %si,%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
-[ ]*[a-f0-9]+: 89 f6 mov %si,%si
0+60 <nop28>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 1a jmp 80 <nop27>
+[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
-[ ]*[a-f0-9]+: 90 nop
0+80 <nop27>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 19 jmp a0 <nop26>
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
@@ -66,78 +66,78 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
0+a0 <nop26>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 18 jmp c0 <nop25>
+[ ]*[a-f0-9]+: 8d b4 00 00 lea (0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
-[ ]*[a-f0-9]+: 8d b4 00 00 lea (0x)?0\(%si\),%si
0+c0 <nop25>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 17 jmp e0 <nop24>
+[ ]*[a-f0-9]+: 8d 74 00 lea (0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
-[ ]*[a-f0-9]+: 8d 74 00 lea (0x)?0\(%si\),%si
0+e0 <nop24>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 16 jmp 100 <nop23>
+[ ]*[a-f0-9]+: 89 f6 mov %si,%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
-[ ]*[a-f0-9]+: 89 f6 mov %si,%si
0+100 <nop23>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 15 jmp 120 <nop22>
+[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
-[ ]*[a-f0-9]+: 90 nop
0+120 <nop22>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 14 jmp 140 <nop21>
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
@@ -145,286 +145,286 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
0+140 <nop21>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 13 jmp 160 <nop20>
+[ ]*[a-f0-9]+: 8d b4 00 00 lea (0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
-[ ]*[a-f0-9]+: 8d b4 00 00 lea (0x)?0\(%si\),%si
0+160 <nop20>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 12 jmp 180 <nop19>
+[ ]*[a-f0-9]+: 8d 74 00 lea (0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
-[ ]*[a-f0-9]+: 8d 74 00 lea (0x)?0\(%si\),%si
0+180 <nop19>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 11 jmp 1a0 <nop18>
+[ ]*[a-f0-9]+: 89 f6 mov %si,%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
-[ ]*[a-f0-9]+: 89 f6 mov %si,%si
0+1a0 <nop18>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 10 jmp 1c0 <nop17>
+[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
-[ ]*[a-f0-9]+: 90 nop
0+1c0 <nop17>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 0f jmp 1e0 <nop16>
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
0+1e0 <nop16>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 0e jmp 200 <nop15>
+[ ]*[a-f0-9]+: 8d b4 00 00 lea (0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
-[ ]*[a-f0-9]+: 8d b4 00 00 lea (0x)?0\(%si\),%si
0+200 <nop15>:
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: eb 0d jmp 210 <nop14>
+[ ]*[a-f0-9]+: 8d 74 00 lea (0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
-[ ]*[a-f0-9]+: 8d 74 00 lea (0x)?0\(%si\),%si
0+210 <nop14>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 8d b4 00 00 lea (0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
-[ ]*[a-f0-9]+: 8d b4 00 00 lea (0x)?0\(%si\),%si
0+220 <nop13>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 8d 74 00 lea (0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
-[ ]*[a-f0-9]+: 8d 74 00 lea (0x)?0\(%si\),%si
0+230 <nop12>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 89 f6 mov %si,%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
-[ ]*[a-f0-9]+: 89 f6 mov %si,%si
0+240 <nop11>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
-[ ]*[a-f0-9]+: 90 nop
0+250 <nop10>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
0+260 <nop9>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 8d b4 00 00 lea (0x)?0\(%si\),%si
+[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
0+270 <nop8>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 8d 74 00 lea (0x)?0\(%si\),%si
+[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
0+280 <nop7>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 89 f6 mov %si,%si
+[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
0+290 <nop6>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
-[ ]*[a-f0-9]+: 90 nop
0+2a0 <nop5>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 2e 8d b4 00 00 lea %cs:(0x)?0\(%si\),%si
0+2b0 <nop4>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 8d b4 00 00 lea 0x0\(%si\),%si
0+2c0 <nop3>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 8d 74 00 lea 0x0\(%si\),%si
0+2d0 <nop2>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 89 f6 mov %si,%si
#pass
diff --git a/gas/testsuite/gas/i386/nops16-1.s b/gas/testsuite/gas/i386/nops16-1.s
index 8e13bb6..570711d5 100644
--- a/gas/testsuite/gas/i386/nops16-1.s
+++ b/gas/testsuite/gas/i386/nops16-1.s
@@ -1,332 +1,332 @@
.text
.code16
nop31:
- nop
+ clc
.p2align 5
nop30:
- nop
- nop
+ clc
+ clc
.p2align 5
nop29:
- nop
- nop
- nop
+ clc
+ clc
+ clc
.p2align 5
nop28:
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop27:
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop26:
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop25:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop24:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop23:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop22:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop21:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop20:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop19:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop18:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop17:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop16:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 5
nop15:
- nop
+ clc
.p2align 4
nop14:
- nop
- nop
+ clc
+ clc
.p2align 4
nop13:
- nop
- nop
- nop
+ clc
+ clc
+ clc
.p2align 4
nop12:
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop11:
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop10:
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop9:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop8:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop7:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop6:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop5:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop4:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop3:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
nop2:
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
+ clc
.p2align 4
diff --git a/gas/testsuite/gas/i386/padlockxmodx.d b/gas/testsuite/gas/i386/padlockxmodx.d
new file mode 100644
index 0000000..9184d2c
--- /dev/null
+++ b/gas/testsuite/gas/i386/padlockxmodx.d
@@ -0,0 +1,13 @@
+#objdump: -dw
+#name: Zhaoxin PadLock XMODX
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+000 <foo>:
+ 0:[ ]*f3 0f a6 f0 [ ]*repz montmul2
+ 4:[ ]*f3 0f a6 f0 [ ]*repz montmul2
+ 8:[ ]*f3 0f a6 f8 [ ]*repz xmodexp
+ c:[ ]*f3 0f a6 f8 [ ]*repz xmodexp
+#pass
diff --git a/gas/testsuite/gas/i386/padlockxmodx.s b/gas/testsuite/gas/i386/padlockxmodx.s
new file mode 100644
index 0000000..4092fa5
--- /dev/null
+++ b/gas/testsuite/gas/i386/padlockxmodx.s
@@ -0,0 +1,9 @@
+# Zhaoxin PadLock XMODX instructions
+
+ .text
+foo:
+ montmul2
+ rep montmul2
+ xmodexp
+ rep xmodexp
+ .p2align 4,0
diff --git a/gas/testsuite/gas/i386/pr32721.l b/gas/testsuite/gas/i386/pr32721.l
new file mode 100644
index 0000000..54532bc
--- /dev/null
+++ b/gas/testsuite/gas/i386/pr32721.l
@@ -0,0 +1,7 @@
+.*: Assembler messages:
+.*:1: Error: bad expression
+.*:1: Warning: missing operand; zero assumed
+.*:1: Error: invalid operands .* for `|'
+#?.*: Error: invalid operands .* when setting .*
+#?.*: Error: invalid operands .* when setting .*
+#?.*: Error: invalid operands .* when setting .*
diff --git a/gas/testsuite/gas/i386/pr32721.s b/gas/testsuite/gas/i386/pr32721.s
new file mode 100644
index 0000000..c66e371
--- /dev/null
+++ b/gas/testsuite/gas/i386/pr32721.s
@@ -0,0 +1,7 @@
+ A=%eax|%!
+ Y=A
+ Z=A
+
+ .text
+pr32721:
+ orl $6,Z
diff --git a/gas/testsuite/gas/i386/property-6.d b/gas/testsuite/gas/i386/property-6.d
index a7dab96..2120bc7 100644
--- a/gas/testsuite/gas/i386/property-6.d
+++ b/gas/testsuite/gas/i386/property-6.d
@@ -5,5 +5,5 @@
Displaying notes found in: .note.gnu.property
[ ]+Owner[ ]+Data size[ ]+Description
GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
- Properties: x86 ISA used: x86-64-baseline, x86-64-v4
+ Properties: x86 ISA used: (x86-64-baseline, )?x86-64-v4
x86 feature used: x86, MASK
diff --git a/gas/testsuite/gas/i386/pseudos.d b/gas/testsuite/gas/i386/pseudos.d
index 47dca19..5c0bc3b 100644
--- a/gas/testsuite/gas/i386/pseudos.d
+++ b/gas/testsuite/gas/i386/pseudos.d
@@ -443,4 +443,29 @@ Disassembly of section .text:
+[a-f0-9]+: 67 8a 86 00 00 mov 0x0\(%bp\),%al
+[a-f0-9]+: e9 fb ff ff ff jmp [0-9a-f]* <.*>
+[a-f0-9]+: e9 fd ff ff ff jmp [0-9a-f]* <.*>
+ +[a-f0-9]+: 81 03 00 00 00 00 addl \$0x0,\(%ebx\)
+ +[a-f0-9]+: 81 03 ff 00 00 00 addl \$0xff,\(%ebx\)
+ +[a-f0-9]+: 66 81 03 00 00 addw \$0x0,\(%ebx\)
+ +[a-f0-9]+: 66 81 03 ff 00 addw \$0xff,\(%ebx\)
+ +[a-f0-9]+: 80 03 00 addb \$0x0,\(%ebx\)
+ +[a-f0-9]+: 80 03 ff addb \$0xff,\(%ebx\)
+ +[a-f0-9]+: 81 c3 00 00 00 00 add \$0x0,%ebx
+ +[a-f0-9]+: 81 c3 ff 00 00 00 add \$0xff,%ebx
+ +[a-f0-9]+: 66 81 c3 00 00 add \$0x0,%bx
+ +[a-f0-9]+: 66 81 c3 ff 00 add \$0xff,%bx
+ +[a-f0-9]+: 80 c3 00 add \$0x0,%bl
+ +[a-f0-9]+: 80 c3 ff add \$0xff,%bl
+ +[a-f0-9]+: c7 03 00 00 00 00 movl \$0x0,\(%ebx\)
+ +[a-f0-9]+: c7 03 ff 00 00 00 movl \$0xff,\(%ebx\)
+ +[a-f0-9]+: 66 c7 03 00 00 movw \$0x0,\(%ebx\)
+ +[a-f0-9]+: 66 c7 03 ff 00 movw \$0xff,\(%ebx\)
+ +[a-f0-9]+: c6 03 00 movb \$0x0,\(%ebx\)
+ +[a-f0-9]+: c6 03 ff movb \$0xff,\(%ebx\)
+ +[a-f0-9]+: bb 00 00 00 00 mov \$0x0,%ebx
+ +[a-f0-9]+: bb ff 00 00 00 mov \$0xff,%ebx
+ +[a-f0-9]+: 66 bb 00 00 mov \$0x0,%bx
+ +[a-f0-9]+: 66 bb ff 00 mov \$0xff,%bx
+ +[a-f0-9]+: b3 00 mov \$0x0,%bl
+ +[a-f0-9]+: b3 ff mov \$0xff,%bl
+ +[a-f0-9]+: c1 c3 ff rol \$0xff,%ebx
#pass
diff --git a/gas/testsuite/gas/i386/pseudos.s b/gas/testsuite/gas/i386/pseudos.s
index 7e3600e..3806b23 100644
--- a/gas/testsuite/gas/i386/pseudos.s
+++ b/gas/testsuite/gas/i386/pseudos.s
@@ -408,3 +408,31 @@ _start:
.code16
{disp16} jmp .
.byte -1, -1
+
+ .att_syntax prefix
+ .code32
+{noimm8s} addl $0,(%ebx)
+{noimm8s} addl $255,(%ebx)
+{noimm8s} addw $0,(%ebx)
+{noimm8s} addw $255,(%ebx)
+{noimm8s} addb $0,(%ebx)
+{noimm8s} addb $255,(%ebx)
+{noimm8s} add $0,%ebx
+{noimm8s} add $255,%ebx
+{noimm8s} add $0,%bx
+{noimm8s} add $255,%bx
+{noimm8s} add $0,%bl
+{noimm8s} add $255,%bl
+{noimm8s} movl $0,(%ebx)
+{noimm8s} movl $255,(%ebx)
+{noimm8s} movw $0,(%ebx)
+{noimm8s} movw $255,(%ebx)
+{noimm8s} movb $0,(%ebx)
+{noimm8s} movb $255,(%ebx)
+{noimm8s} mov $0,%ebx
+{noimm8s} mov $255,%ebx
+{noimm8s} mov $0,%bx
+{noimm8s} mov $255,%bx
+{noimm8s} mov $0,%bl
+{noimm8s} mov $255,%bl
+{noimm8s} rol $255,%ebx
diff --git a/gas/testsuite/gas/i386/solaris/x86-64-nop-5.d b/gas/testsuite/gas/i386/solaris/x86-64-nop-5.d
index 3ca31a0..76e02fd 100644
--- a/gas/testsuite/gas/i386/solaris/x86-64-nop-5.d
+++ b/gas/testsuite/gas/i386/solaris/x86-64-nop-5.d
@@ -10,9 +10,9 @@ Disassembly of section .text:
0+ <_start>:
+[a-f0-9]+: 31 c0 xor %eax,%eax
+[a-f0-9]+: 85 c0 test %eax,%eax
+ +[a-f0-9]+: 90 nop
+[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\)
- +[a-f0-9]+: 90 nop
+[a-f0-9]+: 31 c0 xor %eax,%eax
+[a-f0-9]+: 31 c0 xor %eax,%eax
diff --git a/gas/testsuite/gas/i386/x86-64-align-branch-6.d b/gas/testsuite/gas/i386/x86-64-align-branch-6.d
index 01a28ae..f198401 100644
--- a/gas/testsuite/gas/i386/x86-64-align-branch-6.d
+++ b/gas/testsuite/gas/i386/x86-64-align-branch-6.d
@@ -8,12 +8,12 @@
Disassembly of section .text:
0+ <_start>:
+ +[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%rax\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
- +[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%rax\)
+[a-f0-9]+: f2 73 bf bnd jae 0 <_start>
+[a-f0-9]+: c3 ret
#pass
diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.d b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.d
index 667e6f2..53d38fc 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.d
+++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.d
@@ -12,7 +12,7 @@ Disassembly of section .text:
[ ]*[a-f0-9]+:[ ]+c7[ ]+\(bad\)
[ ]*[a-f0-9]+:[ ]+62 fc 7f 08 60[ ]+\(bad\)
[ ]*[a-f0-9]+:[ ]+c7[ ]+\(bad\)
-[ ]*[a-f0-9]+:[ ]+62 e2 f9 41 91 84[ ]+vpgatherqq \(bad\),%zmm16\{%k1\}
+[ ]*[a-f0-9]+:[ ]+62 e2 f9 41 91 44[ ]+vpgatherqq \(bad\),%zmm16\{%k1\}
[ ]*[a-f0-9]+:[ ]+cd ff[ ]+int \$0xff
[ ]*[a-f0-9]+:[ ]+62 fd 7d 08 60[ ]+\(bad\)
[ ]*[a-f0-9]+:[ ]+c7[ ]+.*
diff --git a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s
index 7b2df4b..c98422e 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s
+++ b/gas/testsuite/gas/i386/x86-64-apx-evex-promoted-bad.s
@@ -9,9 +9,8 @@ _start:
#movbe %r23w,%ax set EVEX.pp = f2.
.insn EVEX.L0.f2.M12.W0 0x60, %di, %ax
- #VSIB vpgatherqq (%rbp,%zmm17,8),%zmm16{%k1} set EVEX.P[10] == 0
- .byte 0x62, 0xe2, 0xf9, 0x41, 0x91, 0x84, 0xcd
- .byte 0xff
+ #VSIB vpgatherqq -8(%rbp,%zmm17,8),%zmm16{%k1} set EVEX.U = 0.
+ .insn EVEX.512.66.0f38.W1 0x91, -8(%rbp,%r17,8){:d8}, %zmm16{%k1}, %r16
#EVEX_MAP4 movbe %r23w,%ax set EVEX.mm == 0b01.
.insn EVEX.L0.66.M13.W0 0x60, %di, %ax
@@ -38,11 +37,11 @@ _start:
#EVEX from VEX bzhi %rax,(%rax,%rbx),%rcx EVEX.P[20](EVEX.b) == 0b1
.insn EVEX.L0.NP.0f38.W1 0xf5, %rax, (%rax,%rbx){1to8}, %rcx
- #{evex} inc %rax %rbx EVEX.vvvv != 1111 && EVEX.ND = 0.
- .byte 0x62, 0xf4, 0xe4, 0x08, 0xff, 0x04, 0x08
+ #{evex} inc (%rax,%rcx), %rbx EVEX.vvvv != 1111 && EVEX.ND = 0.
+ .insn EVEX.L0.NP.M4 0xff/0, (%rax,%rcx), %rbx
# pop2 %rdi, %r8 set EVEX.ND=0.
- .byte 0x62, 0xf4, 0x3c, 0x08, 0x8f, 0xc7
+ .insn EVEX.L0.NP.M4.W0 0x8f/0, %rdi, %r8
# pop2 %rax, %rax
.insn EVEX.L0.NP.M4.W0 0x8f/0, %rax, {sae}, %rax
@@ -59,7 +58,7 @@ _start:
#EVEX_MAP4 movbe %r18w,%ax set EVEX.nf = 1.
.insn EVEX.L0.66.M12.W0 0x60, %di, %ax {%k4}
- # EVEX_MAP4 movbe %r23w,%ax set EVEX.P[10] = 0.
+ # EVEX_MAP4 movbe %r23w,%ax set EVEX.U = 0.
.byte 0x62, 0xfc, 0x79, 0x08, 0x60, 0xc7
# ccmps {dfv=of,sf,zf,cf} %r15, %rdx set EVEX.ND = 1.
diff --git a/gas/testsuite/gas/i386/x86-64-apx-pushp-popp-inval.l b/gas/testsuite/gas/i386/x86-64-apx-pushp-popp-inval.l
index c4d774b..5e334a0 100644
--- a/gas/testsuite/gas/i386/x86-64-apx-pushp-popp-inval.l
+++ b/gas/testsuite/gas/i386/x86-64-apx-pushp-popp-inval.l
@@ -1,5 +1,5 @@
.* Assembler messages:
.*:4: Error: operand size mismatch for `pushp'
.*:5: Error: operand size mismatch for `popp'
-.*:6: Error: operand size mismatch for `pushp'
-.*:7: Error: operand size mismatch for `popp'
+.*:6: Error: operand type mismatch for `pushp'
+.*:7: Error: operand type mismatch for `popp'
diff --git a/gas/testsuite/gas/i386/x86-64-avx10_2-256-cvt-intel.d b/gas/testsuite/gas/i386/x86-64-avx10_2-256-cvt-intel.d
index bf902a5..3c2659b 100644
--- a/gas/testsuite/gas/i386/x86-64-avx10_2-256-cvt-intel.d
+++ b/gas/testsuite/gas/i386/x86-64-avx10_2-256-cvt-intel.d
@@ -10,7 +10,6 @@ Disassembly of section \.text:
[a-f0-9]+ <_intel>:
\s*[a-f0-9]+:\s*62 02 15 00 67 f4\s+vcvt2ps2phx xmm30,xmm29,xmm28
\s*[a-f0-9]+:\s*62 02 15 20 67 f4\s+vcvt2ps2phx ymm30,ymm29,ymm28
-\s*[a-f0-9]+:\s*62 02 11 10 67 f4\s+vcvt2ps2phx ymm30,ymm29,ymm28\{rn-sae\}
\s*[a-f0-9]+:\s*62 22 15 07 67 b4 f5 00 00 00 10\s+vcvt2ps2phx xmm30\{k7\},xmm29,XMMWORD PTR \[rbp\+r14\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 42 15 10 67 31\s+vcvt2ps2phx xmm30,xmm29,DWORD BCST \[r9\]
\s*[a-f0-9]+:\s*62 62 15 00 67 71 7f\s+vcvt2ps2phx xmm30,xmm29,XMMWORD PTR \[rcx\+0x7f0\]
diff --git a/gas/testsuite/gas/i386/x86-64-avx10_2-256-cvt.d b/gas/testsuite/gas/i386/x86-64-avx10_2-256-cvt.d
index ca9c536..d94c10e 100644
--- a/gas/testsuite/gas/i386/x86-64-avx10_2-256-cvt.d
+++ b/gas/testsuite/gas/i386/x86-64-avx10_2-256-cvt.d
@@ -8,7 +8,6 @@ Disassembly of section \.text:
0+ <_start>:
\s*[a-f0-9]+:\s*62 02 15 00 67 f4\s+vcvt2ps2phx\s+%xmm28,%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 02 15 20 67 f4\s+vcvt2ps2phx\s+%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 11 10 67 f4\s+vcvt2ps2phx\s+\{rn-sae\},%ymm28,%ymm29,%ymm30
\s*[a-f0-9]+:\s*62 22 15 07 67 b4 f5 00 00 00 10\s+vcvt2ps2phx\s+0x10000000\(%rbp,%r14,8\),%xmm29,%xmm30\{%k7\}
\s*[a-f0-9]+:\s*62 42 15 10 67 31\s+vcvt2ps2phx\s+\(%r9\)\{1to4\},%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 62 15 00 67 71 7f\s+vcvt2ps2phx\s+0x7f0\(%rcx\),%xmm29,%xmm30
diff --git a/gas/testsuite/gas/i386/x86-64-avx10_2-256-cvt.s b/gas/testsuite/gas/i386/x86-64-avx10_2-256-cvt.s
index 8ff066a..1d6a5bc 100644
--- a/gas/testsuite/gas/i386/x86-64-avx10_2-256-cvt.s
+++ b/gas/testsuite/gas/i386/x86-64-avx10_2-256-cvt.s
@@ -6,7 +6,6 @@
_start:
vcvt2ps2phx %xmm28, %xmm29, %xmm30
vcvt2ps2phx %ymm28, %ymm29, %ymm30
- vcvt2ps2phx {rn-sae}, %ymm28, %ymm29, %ymm30
vcvt2ps2phx 0x10000000(%rbp, %r14, 8), %xmm29, %xmm30{%k7}
vcvt2ps2phx (%r9){1to4}, %xmm29, %xmm30
vcvt2ps2phx 2032(%rcx), %xmm29, %xmm30
@@ -63,7 +62,6 @@ _intel:
.intel_syntax noprefix
vcvt2ps2phx xmm30, xmm29, xmm28
vcvt2ps2phx ymm30, ymm29, ymm28
- vcvt2ps2phx ymm30, ymm29, ymm28, {rn-sae}
vcvt2ps2phx xmm30{k7}, xmm29, XMMWORD PTR [rbp+r14*8+0x10000000]
vcvt2ps2phx xmm30, xmm29, DWORD PTR [r9]{1to4}
vcvt2ps2phx xmm30, xmm29, XMMWORD PTR [rcx+2032]
diff --git a/gas/testsuite/gas/i386/x86-64-avx10_2-256-miscs-intel.d b/gas/testsuite/gas/i386/x86-64-avx10_2-256-miscs-intel.d
index 777e25d..97fb4a9 100644
--- a/gas/testsuite/gas/i386/x86-64-avx10_2-256-miscs-intel.d
+++ b/gas/testsuite/gas/i386/x86-64-avx10_2-256-miscs-intel.d
@@ -36,17 +36,14 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 63 17 b7 52 72 80 7b\s+vminmaxbf16 ymm30\{k7\}\{z\},ymm29,WORD BCST \[rdx-0x100\],0x7b
\s*[a-f0-9]+:\s*62 43 17 10 52 31 7b\s+vminmaxbf16 xmm30,xmm29,WORD BCST \[r9\],0x7b
\s*[a-f0-9]+:\s*62 63 17 97 52 72 80 7b\s+vminmaxbf16 xmm30\{k7\}\{z\},xmm29,WORD BCST \[rdx-0x100\],0x7b
-\s*[a-f0-9]+:\s*62 03 91 10 52 f4 7b\s+vminmaxpd ymm30,ymm29,ymm28\{sae\},0x7b
\s*[a-f0-9]+:\s*62 43 95 30 52 31 7b\s+vminmaxpd ymm30,ymm29,QWORD BCST \[r9\],0x7b
\s*[a-f0-9]+:\s*62 63 95 b7 52 72 80 7b\s+vminmaxpd ymm30\{k7\}\{z\},ymm29,QWORD BCST \[rdx-0x400\],0x7b
\s*[a-f0-9]+:\s*62 43 95 10 52 31 7b\s+vminmaxpd xmm30,xmm29,QWORD BCST \[r9\],0x7b
\s*[a-f0-9]+:\s*62 63 95 97 52 72 80 7b\s+vminmaxpd xmm30\{k7\}\{z\},xmm29,QWORD BCST \[rdx-0x400\],0x7b
-\s*[a-f0-9]+:\s*62 03 10 10 52 f4 7b\s+vminmaxph ymm30,ymm29,ymm28\{sae\},0x7b
\s*[a-f0-9]+:\s*62 43 14 30 52 31 7b\s+vminmaxph ymm30,ymm29,WORD BCST \[r9\],0x7b
\s*[a-f0-9]+:\s*62 63 14 b7 52 72 80 7b\s+vminmaxph ymm30\{k7\}\{z\},ymm29,WORD BCST \[rdx-0x100\],0x7b
\s*[a-f0-9]+:\s*62 43 14 10 52 31 7b\s+vminmaxph xmm30,xmm29,WORD BCST \[r9\],0x7b
\s*[a-f0-9]+:\s*62 63 14 97 52 72 80 7b\s+vminmaxph xmm30\{k7\}\{z\},xmm29,WORD BCST \[rdx-0x100\],0x7b
-\s*[a-f0-9]+:\s*62 03 11 10 52 f4 7b\s+vminmaxps ymm30,ymm29,ymm28\{sae\},0x7b
\s*[a-f0-9]+:\s*62 43 15 30 52 31 7b\s+vminmaxps ymm30,ymm29,DWORD BCST \[r9\],0x7b
\s*[a-f0-9]+:\s*62 63 15 b7 52 72 80 7b\s+vminmaxps ymm30\{k7\}\{z\},ymm29,DWORD BCST \[rdx-0x200\],0x7b
\s*[a-f0-9]+:\s*62 43 15 10 52 31 7b\s+vminmaxps xmm30,xmm29,DWORD BCST \[r9\],0x7b
diff --git a/gas/testsuite/gas/i386/x86-64-avx10_2-256-miscs.d b/gas/testsuite/gas/i386/x86-64-avx10_2-256-miscs.d
index 420a8fc..b76308c 100644
--- a/gas/testsuite/gas/i386/x86-64-avx10_2-256-miscs.d
+++ b/gas/testsuite/gas/i386/x86-64-avx10_2-256-miscs.d
@@ -34,17 +34,14 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 63 17 b7 52 72 80 7b\s+vminmaxbf16\s\$0x7b,-0x100\(%rdx\)\{1to16\},%ymm29,%ymm30\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 43 17 10 52 31 7b\s+vminmaxbf16\s\$0x7b,\(%r9\)\{1to8\},%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 63 17 97 52 72 80 7b\s+vminmaxbf16\s\$0x7b,-0x100\(%rdx\)\{1to8\},%xmm29,%xmm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 03 91 10 52 f4 7b\s+vminmaxpd\s\$0x7b,\{sae\},%ymm28,%ymm29,%ymm30
\s*[a-f0-9]+:\s*62 43 95 30 52 31 7b\s+vminmaxpd\s\$0x7b,\(%r9\)\{1to4\},%ymm29,%ymm30
\s*[a-f0-9]+:\s*62 63 95 b7 52 72 80 7b\s+vminmaxpd\s\$0x7b,-0x400\(%rdx\)\{1to4\},%ymm29,%ymm30\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 43 95 10 52 31 7b\s+vminmaxpd\s\$0x7b,\(%r9\)\{1to2\},%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 63 95 97 52 72 80 7b\s+vminmaxpd\s\$0x7b,-0x400\(%rdx\)\{1to2\},%xmm29,%xmm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 03 10 10 52 f4 7b\s+vminmaxph\s\$0x7b,\{sae\},%ymm28,%ymm29,%ymm30
\s*[a-f0-9]+:\s*62 43 14 30 52 31 7b\s+vminmaxph\s\$0x7b,\(%r9\)\{1to16\},%ymm29,%ymm30
\s*[a-f0-9]+:\s*62 63 14 b7 52 72 80 7b\s+vminmaxph\s\$0x7b,-0x100\(%rdx\)\{1to16\},%ymm29,%ymm30\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 43 14 10 52 31 7b\s+vminmaxph\s\$0x7b,\(%r9\)\{1to8\},%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 63 14 97 52 72 80 7b\s+vminmaxph\s\$0x7b,-0x100\(%rdx\)\{1to8\},%xmm29,%xmm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 03 11 10 52 f4 7b\s+vminmaxps\s\$0x7b,\{sae\},%ymm28,%ymm29,%ymm30
\s*[a-f0-9]+:\s*62 43 15 30 52 31 7b\s+vminmaxps\s\$0x7b,\(%r9\)\{1to8\},%ymm29,%ymm30
\s*[a-f0-9]+:\s*62 63 15 b7 52 72 80 7b\s+vminmaxps\s\$0x7b,-0x200\(%rdx\)\{1to8\},%ymm29,%ymm30\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 43 15 10 52 31 7b\s+vminmaxps\s\$0x7b,\(%r9\)\{1to4\},%xmm29,%xmm30
diff --git a/gas/testsuite/gas/i386/x86-64-avx10_2-256-miscs.s b/gas/testsuite/gas/i386/x86-64-avx10_2-256-miscs.s
index ce11c5b..c318fcf 100644
--- a/gas/testsuite/gas/i386/x86-64-avx10_2-256-miscs.s
+++ b/gas/testsuite/gas/i386/x86-64-avx10_2-256-miscs.s
@@ -17,17 +17,14 @@ _start:
vminmaxbf16 $123, -256(%rdx){1to16}, %ymm29, %ymm30{%k7}{z}
vminmaxbf16 $123, (%r9){1to8}, %xmm29, %xmm30
vminmaxbf16 $123, -256(%rdx){1to8}, %xmm29, %xmm30{%k7}{z}
- vminmaxpd $123, {sae}, %ymm28, %ymm29, %ymm30
vminmaxpd $123, (%r9){1to4}, %ymm29, %ymm30
vminmaxpd $123, -1024(%rdx){1to4}, %ymm29, %ymm30{%k7}{z}
vminmaxpd $123, (%r9){1to2}, %xmm29, %xmm30
vminmaxpd $123, -1024(%rdx){1to2}, %xmm29, %xmm30{%k7}{z}
- vminmaxph $123, {sae}, %ymm28, %ymm29, %ymm30
vminmaxph $123, (%r9){1to16}, %ymm29, %ymm30
vminmaxph $123, -256(%rdx){1to16}, %ymm29, %ymm30{%k7}{z}
vminmaxph $123, (%r9){1to8}, %xmm29, %xmm30
vminmaxph $123, -256(%rdx){1to8}, %xmm29, %xmm30{%k7}{z}
- vminmaxps $123, {sae}, %ymm28, %ymm29, %ymm30
vminmaxps $123, (%r9){1to8}, %ymm29, %ymm30
vminmaxps $123, -512(%rdx){1to8}, %ymm29, %ymm30{%k7}{z}
vminmaxps $123, (%r9){1to4}, %xmm29, %xmm30
@@ -83,17 +80,14 @@ _intel:
vminmaxbf16 ymm30{k7}{z}, ymm29, WORD PTR [rdx-256]{1to16}, 123
vminmaxbf16 xmm30, xmm29, [r9]{1to8}, 123
vminmaxbf16 xmm30{k7}{z}, xmm29, WORD PTR [rdx-256]{1to8}, 123
- vminmaxpd ymm30, ymm29, ymm28, {sae}, 123
vminmaxpd ymm30, ymm29, QWORD PTR [r9]{1to4}, 123
vminmaxpd ymm30{k7}{z}, ymm29, [rdx-1024]{1to4}, 123
vminmaxpd xmm30, xmm29, QWORD PTR [r9]{1to2}, 123
vminmaxpd xmm30{k7}{z}, xmm29, [rdx-1024]{1to2}, 123
- vminmaxph ymm30, ymm29, ymm28, {sae}, 123
vminmaxph ymm30, ymm29, [r9]{1to16}, 123
vminmaxph ymm30{k7}{z}, ymm29, WORD PTR [rdx-256]{1to16}, 123
vminmaxph xmm30, xmm29, WORD PTR [r9]{1to8}, 123
vminmaxph xmm30{k7}{z}, xmm29, [rdx-256]{1to8}, 123
- vminmaxps ymm30, ymm29, ymm28, {sae}, 123
vminmaxps ymm30, ymm29, DWORD PTR [r9]{1to8}, 123
vminmaxps ymm30{k7}{z}, ymm29, [rdx-512]{1to8}, 123
vminmaxps xmm30, xmm29, [r9]{1to4}, 123
diff --git a/gas/testsuite/gas/i386/x86-64-avx10_2-256-satcvt-intel.d b/gas/testsuite/gas/i386/x86-64-avx10_2-256-satcvt-intel.d
index ba02d98..4be779a 100644
--- a/gas/testsuite/gas/i386/x86-64-avx10_2-256-satcvt-intel.d
+++ b/gas/testsuite/gas/i386/x86-64-avx10_2-256-satcvt-intel.d
@@ -20,7 +20,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7f bf 69 72 80\s+vcvtbf162ibs ymm30\{k7\}\{z\},WORD BCST \[rdx-0x100\]
\s*[a-f0-9]+:\s*62 05 7c 08 69 f5\s+vcvtph2ibs xmm30,xmm29
\s*[a-f0-9]+:\s*62 05 7c 28 69 f5\s+vcvtph2ibs ymm30,ymm29
-\s*[a-f0-9]+:\s*62 05 78 18 69 f5\s+vcvtph2ibs ymm30,ymm29{rn-sae}
\s*[a-f0-9]+:\s*62 25 7c 0f 69 b4 f5 00 00 00 10\s+vcvtph2ibs xmm30\{k7\},XMMWORD PTR \[rbp\+r14\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 45 7c 18 69 31\s+vcvtph2ibs xmm30,WORD BCST \[r9\]
\s*[a-f0-9]+:\s*62 65 7c 08 69 71 7f\s+vcvtph2ibs xmm30,XMMWORD PTR \[rcx\+0x7f0\]
@@ -31,7 +30,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7c bf 69 72 80\s+vcvtph2ibs ymm30\{k7\}\{z\},WORD BCST \[rdx-0x100\]
\s*[a-f0-9]+:\s*62 05 7d 08 69 f5\s+vcvtps2ibs xmm30,xmm29
\s*[a-f0-9]+:\s*62 05 7d 28 69 f5\s+vcvtps2ibs ymm30,ymm29
-\s*[a-f0-9]+:\s*62 05 79 18 69 f5\s+vcvtps2ibs ymm30,ymm29{rn-sae}
\s*[a-f0-9]+:\s*62 25 7d 0f 69 b4 f5 00 00 00 10\s+vcvtps2ibs xmm30\{k7\},XMMWORD PTR \[rbp\+r14\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 45 7d 18 69 31\s+vcvtps2ibs xmm30,DWORD BCST \[r9\]
\s*[a-f0-9]+:\s*62 65 7d 08 69 71 7f\s+vcvtps2ibs xmm30,XMMWORD PTR \[rcx\+0x7f0\]
@@ -52,7 +50,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7f bf 68 72 80\s+vcvttbf162ibs ymm30\{k7\}\{z\},WORD BCST \[rdx-0x100\]
\s*[a-f0-9]+:\s*62 05 7c 08 68 f5\s+vcvttph2ibs xmm30,xmm29
\s*[a-f0-9]+:\s*62 05 7c 28 68 f5\s+vcvttph2ibs ymm30,ymm29
-\s*[a-f0-9]+:\s*62 05 78 18 68 f5\s+vcvttph2ibs ymm30,ymm29\{sae\}
\s*[a-f0-9]+:\s*62 25 7c 0f 68 b4 f5 00 00 00 10\s+vcvttph2ibs xmm30\{k7\},XMMWORD PTR \[rbp\+r14\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 45 7c 18 68 31\s+vcvttph2ibs xmm30,WORD BCST \[r9\]
\s*[a-f0-9]+:\s*62 65 7c 08 68 71 7f\s+vcvttph2ibs xmm30,XMMWORD PTR \[rcx\+0x7f0\]
@@ -63,7 +60,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7c bf 68 72 80\s+vcvttph2ibs ymm30\{k7\}\{z\},WORD BCST \[rdx-0x100\]
\s*[a-f0-9]+:\s*62 05 7d 08 68 f5\s+vcvttps2ibs xmm30,xmm29
\s*[a-f0-9]+:\s*62 05 7d 28 68 f5\s+vcvttps2ibs ymm30,ymm29
-\s*[a-f0-9]+:\s*62 05 79 18 68 f5\s+vcvttps2ibs ymm30,ymm29\{sae\}
\s*[a-f0-9]+:\s*62 25 7d 0f 68 b4 f5 00 00 00 10\s+vcvttps2ibs xmm30\{k7\},XMMWORD PTR \[rbp\+r14\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 45 7d 18 68 31\s+vcvttps2ibs xmm30,DWORD BCST \[r9\]
\s*[a-f0-9]+:\s*62 65 7d 08 68 71 7f\s+vcvttps2ibs xmm30,XMMWORD PTR \[rcx\+0x7f0\]
@@ -74,7 +70,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7d bf 68 72 80\s+vcvttps2ibs ymm30\{k7\}\{z\},DWORD BCST \[rdx-0x200\]
\s*[a-f0-9]+:\s*62 05 fc 08 6d f5\s+vcvttpd2dqs xmm30,xmm29
\s*[a-f0-9]+:\s*62 05 fc 28 6d f5\s+vcvttpd2dqs xmm30,ymm29
-\s*[a-f0-9]+:\s*62 05 f8 18 6d f5\s+vcvttpd2dqs xmm30,ymm29\{sae\}
\s*[a-f0-9]+:\s*62 25 fc 0f 6d b4 f5 00 00 00 10\s+vcvttpd2dqs xmm30\{k7\},XMMWORD PTR \[rbp\+r14\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 45 fc 18 6d 31\s+vcvttpd2dqs xmm30,QWORD BCST \[r9\]\{1to2\}
\s*[a-f0-9]+:\s*62 65 fc 08 6d 71 7f\s+vcvttpd2dqs xmm30,XMMWORD PTR \[rcx\+0x7f0\]
@@ -84,7 +79,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 fc bf 6d 72 80\s+vcvttpd2dqs xmm30\{k7\}\{z\},QWORD BCST \[rdx-0x400\]\{1to4\}
\s*[a-f0-9]+:\s*62 05 fd 08 6d f5\s+vcvttpd2qqs xmm30,xmm29
\s*[a-f0-9]+:\s*62 05 fd 28 6d f5\s+vcvttpd2qqs ymm30,ymm29
-\s*[a-f0-9]+:\s*62 05 f9 18 6d f5\s+vcvttpd2qqs ymm30,ymm29\{sae\}
\s*[a-f0-9]+:\s*62 25 fd 0f 6d b4 f5 00 00 00 10\s+vcvttpd2qqs xmm30\{k7\},XMMWORD PTR \[rbp\+r14\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 45 fd 18 6d 31\s+vcvttpd2qqs xmm30,QWORD BCST \[r9\]
\s*[a-f0-9]+:\s*62 65 fd 08 6d 71 7f\s+vcvttpd2qqs xmm30,XMMWORD PTR \[rcx\+0x7f0\]
@@ -95,7 +89,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 fd bf 6d 72 80\s+vcvttpd2qqs ymm30\{k7\}\{z\},QWORD BCST \[rdx-0x400\]
\s*[a-f0-9]+:\s*62 05 7c 08 6d f5\s+vcvttps2dqs xmm30,xmm29
\s*[a-f0-9]+:\s*62 05 7c 28 6d f5\s+vcvttps2dqs ymm30,ymm29
-\s*[a-f0-9]+:\s*62 05 78 18 6d f5\s+vcvttps2dqs ymm30,ymm29\{sae\}
\s*[a-f0-9]+:\s*62 25 7c 0f 6d b4 f5 00 00 00 10\s+vcvttps2dqs xmm30\{k7\},XMMWORD PTR \[rbp\+r14\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 45 7c 18 6d 31\s+vcvttps2dqs xmm30,DWORD BCST \[r9\]
\s*[a-f0-9]+:\s*62 65 7c 08 6d 71 7f\s+vcvttps2dqs xmm30,XMMWORD PTR \[rcx\+0x7f0\]
@@ -106,7 +99,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7c bf 6d 72 80\s+vcvttps2dqs ymm30\{k7\}\{z\},DWORD BCST \[rdx-0x200\]
\s*[a-f0-9]+:\s*62 05 7d 08 6d f5\s+vcvttps2qqs xmm30,xmm29
\s*[a-f0-9]+:\s*62 05 7d 28 6d f5\s+vcvttps2qqs ymm30,xmm29
-\s*[a-f0-9]+:\s*62 05 79 18 6d f5\s+vcvttps2qqs ymm30,xmm29\{sae\}
\s*[a-f0-9]+:\s*62 25 7d 0f 6d b4 f5 00 00 00 10\s+vcvttps2qqs xmm30\{k7\},QWORD PTR \[rbp\+r14\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 45 7d 18 6d 31\s+vcvttps2qqs xmm30,DWORD BCST \[r9\]
\s*[a-f0-9]+:\s*62 65 7d 08 6d 71 7f\s+vcvttps2qqs xmm30,QWORD PTR \[rcx\+0x3f8\]
@@ -151,7 +143,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7f bf 6b 72 80\s+vcvtbf162iubs ymm30\{k7\}\{z\},WORD BCST \[rdx-0x100\]
\s*[a-f0-9]+:\s*62 05 7c 08 6b f5\s+vcvtph2iubs xmm30,xmm29
\s*[a-f0-9]+:\s*62 05 7c 28 6b f5\s+vcvtph2iubs ymm30,ymm29
-\s*[a-f0-9]+:\s*62 05 78 18 6b f5\s+vcvtph2iubs ymm30,ymm29{rn-sae}
\s*[a-f0-9]+:\s*62 25 7c 0f 6b b4 f5 00 00 00 10\s+vcvtph2iubs xmm30\{k7\},XMMWORD PTR \[rbp\+r14\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 45 7c 18 6b 31\s+vcvtph2iubs xmm30,WORD BCST \[r9\]
\s*[a-f0-9]+:\s*62 65 7c 08 6b 71 7f\s+vcvtph2iubs xmm30,XMMWORD PTR \[rcx\+0x7f0\]
@@ -162,7 +153,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7c bf 6b 72 80\s+vcvtph2iubs ymm30\{k7\}\{z\},WORD BCST \[rdx-0x100\]
\s*[a-f0-9]+:\s*62 05 7d 08 6b f5\s+vcvtps2iubs xmm30,xmm29
\s*[a-f0-9]+:\s*62 05 7d 28 6b f5\s+vcvtps2iubs ymm30,ymm29
-\s*[a-f0-9]+:\s*62 05 79 18 6b f5\s+vcvtps2iubs ymm30,ymm29{rn-sae}
\s*[a-f0-9]+:\s*62 25 7d 0f 6b b4 f5 00 00 00 10\s+vcvtps2iubs xmm30\{k7\},XMMWORD PTR \[rbp\+r14\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 45 7d 18 6b 31\s+vcvtps2iubs xmm30,DWORD BCST \[r9\]
\s*[a-f0-9]+:\s*62 65 7d 08 6b 71 7f\s+vcvtps2iubs xmm30,XMMWORD PTR \[rcx\+0x7f0\]
@@ -183,7 +173,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7f bf 6a 72 80\s+vcvttbf162iubs ymm30\{k7\}\{z\},WORD BCST \[rdx-0x100\]
\s*[a-f0-9]+:\s*62 05 7c 08 6a f5\s+vcvttph2iubs xmm30,xmm29
\s*[a-f0-9]+:\s*62 05 7c 28 6a f5\s+vcvttph2iubs ymm30,ymm29
-\s*[a-f0-9]+:\s*62 05 78 18 6a f5\s+vcvttph2iubs ymm30,ymm29\{sae\}
\s*[a-f0-9]+:\s*62 25 7c 0f 6a b4 f5 00 00 00 10\s+vcvttph2iubs xmm30\{k7\},XMMWORD PTR \[rbp\+r14\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 45 7c 18 6a 31\s+vcvttph2iubs xmm30,WORD BCST \[r9\]
\s*[a-f0-9]+:\s*62 65 7c 08 6a 71 7f\s+vcvttph2iubs xmm30,XMMWORD PTR \[rcx\+0x7f0\]
@@ -194,7 +183,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7c bf 6a 72 80\s+vcvttph2iubs ymm30\{k7\}\{z\},WORD BCST \[rdx-0x100\]
\s*[a-f0-9]+:\s*62 05 7d 08 6a f5\s+vcvttps2iubs xmm30,xmm29
\s*[a-f0-9]+:\s*62 05 7d 28 6a f5\s+vcvttps2iubs ymm30,ymm29
-\s*[a-f0-9]+:\s*62 05 79 18 6a f5\s+vcvttps2iubs ymm30,ymm29\{sae\}
\s*[a-f0-9]+:\s*62 25 7d 0f 6a b4 f5 00 00 00 10\s+vcvttps2iubs xmm30\{k7\},XMMWORD PTR \[rbp\+r14\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 45 7d 18 6a 31\s+vcvttps2iubs xmm30,DWORD BCST \[r9\]
\s*[a-f0-9]+:\s*62 65 7d 08 6a 71 7f\s+vcvttps2iubs xmm30,XMMWORD PTR \[rcx\+0x7f0\]
@@ -205,7 +193,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7d bf 6a 72 80\s+vcvttps2iubs ymm30\{k7\}\{z\},DWORD BCST \[rdx-0x200\]
\s*[a-f0-9]+:\s*62 05 fc 08 6c f5\s+vcvttpd2udqs xmm30,xmm29
\s*[a-f0-9]+:\s*62 05 fc 28 6c f5\s+vcvttpd2udqs xmm30,ymm29
-\s*[a-f0-9]+:\s*62 05 f8 18 6c f5\s+vcvttpd2udqs xmm30,ymm29\{sae\}
\s*[a-f0-9]+:\s*62 25 fc 0f 6c b4 f5 00 00 00 10\s+vcvttpd2udqs xmm30\{k7\},XMMWORD PTR \[rbp\+r14\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 45 fc 18 6c 31\s+vcvttpd2udqs xmm30,QWORD BCST \[r9\]\{1to2\}
\s*[a-f0-9]+:\s*62 65 fc 08 6c 71 7f\s+vcvttpd2udqs xmm30,XMMWORD PTR \[rcx\+0x7f0\]
@@ -215,7 +202,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 fc bf 6c 72 80\s+vcvttpd2udqs xmm30\{k7\}\{z\},QWORD BCST \[rdx-0x400\]\{1to4\}
\s*[a-f0-9]+:\s*62 05 fd 08 6c f5\s+vcvttpd2uqqs xmm30,xmm29
\s*[a-f0-9]+:\s*62 05 fd 28 6c f5\s+vcvttpd2uqqs ymm30,ymm29
-\s*[a-f0-9]+:\s*62 05 f9 18 6c f5\s+vcvttpd2uqqs ymm30,ymm29\{sae\}
\s*[a-f0-9]+:\s*62 25 fd 0f 6c b4 f5 00 00 00 10\s+vcvttpd2uqqs xmm30\{k7\},XMMWORD PTR \[rbp\+r14\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 45 fd 18 6c 31\s+vcvttpd2uqqs xmm30,QWORD BCST \[r9\]
\s*[a-f0-9]+:\s*62 65 fd 08 6c 71 7f\s+vcvttpd2uqqs xmm30,XMMWORD PTR \[rcx\+0x7f0\]
@@ -226,7 +212,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 fd bf 6c 72 80\s+vcvttpd2uqqs ymm30\{k7\}\{z\},QWORD BCST \[rdx-0x400\]
\s*[a-f0-9]+:\s*62 05 7c 08 6c f5\s+vcvttps2udqs xmm30,xmm29
\s*[a-f0-9]+:\s*62 05 7c 28 6c f5\s+vcvttps2udqs ymm30,ymm29
-\s*[a-f0-9]+:\s*62 05 78 18 6c f5\s+vcvttps2udqs ymm30,ymm29\{sae\}
\s*[a-f0-9]+:\s*62 25 7c 0f 6c b4 f5 00 00 00 10\s+vcvttps2udqs xmm30\{k7\},XMMWORD PTR \[rbp\+r14\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 45 7c 18 6c 31\s+vcvttps2udqs xmm30,DWORD BCST \[r9\]
\s*[a-f0-9]+:\s*62 65 7c 08 6c 71 7f\s+vcvttps2udqs xmm30,XMMWORD PTR \[rcx\+0x7f0\]
@@ -237,7 +222,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7c bf 6c 72 80\s+vcvttps2udqs ymm30\{k7\}\{z\},DWORD BCST \[rdx-0x200\]
\s*[a-f0-9]+:\s*62 05 7d 08 6c f5\s+vcvttps2uqqs xmm30,xmm29
\s*[a-f0-9]+:\s*62 05 7d 28 6c f5\s+vcvttps2uqqs ymm30,xmm29
-\s*[a-f0-9]+:\s*62 05 79 18 6c f5\s+vcvttps2uqqs ymm30,xmm29\{sae\}
\s*[a-f0-9]+:\s*62 25 7d 0f 6c b4 f5 00 00 00 10\s+vcvttps2uqqs xmm30\{k7\},QWORD PTR \[rbp\+r14\*8\+0x10000000\]
\s*[a-f0-9]+:\s*62 45 7d 18 6c 31\s+vcvttps2uqqs xmm30,DWORD BCST \[r9\]
\s*[a-f0-9]+:\s*62 65 7d 08 6c 71 7f\s+vcvttps2uqqs xmm30,QWORD PTR \[rcx\+0x3f8\]
diff --git a/gas/testsuite/gas/i386/x86-64-avx10_2-256-satcvt.d b/gas/testsuite/gas/i386/x86-64-avx10_2-256-satcvt.d
index f9d5f52..7f9ef07 100644
--- a/gas/testsuite/gas/i386/x86-64-avx10_2-256-satcvt.d
+++ b/gas/testsuite/gas/i386/x86-64-avx10_2-256-satcvt.d
@@ -18,7 +18,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7f bf 69 72 80\s+vcvtbf162ibs\s+-0x100\(%rdx\)\{1to16\},%ymm30\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 05 7c 08 69 f5\s+vcvtph2ibs\s+%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 05 7c 28 69 f5\s+vcvtph2ibs\s+%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 78 18 69 f5\s+vcvtph2ibs\s+\{rn-sae\},%ymm29,%ymm30
\s*[a-f0-9]+:\s*62 25 7c 0f 69 b4 f5 00 00 00 10\s+vcvtph2ibs\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\}
\s*[a-f0-9]+:\s*62 45 7c 18 69 31\s+vcvtph2ibs\s+\(%r9\)\{1to8\},%xmm30
\s*[a-f0-9]+:\s*62 65 7c 08 69 71 7f\s+vcvtph2ibs\s+0x7f0\(%rcx\),%xmm30
@@ -29,7 +28,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7c bf 69 72 80\s+vcvtph2ibs\s+-0x100\(%rdx\)\{1to16\},%ymm30\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 05 7d 08 69 f5\s+vcvtps2ibs\s+%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 05 7d 28 69 f5\s+vcvtps2ibs\s+%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 79 18 69 f5\s+vcvtps2ibs\s+\{rn-sae\},%ymm29,%ymm30
\s*[a-f0-9]+:\s*62 25 7d 0f 69 b4 f5 00 00 00 10\s+vcvtps2ibs\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\}
\s*[a-f0-9]+:\s*62 45 7d 18 69 31\s+vcvtps2ibs\s+\(%r9\)\{1to4\},%xmm30
\s*[a-f0-9]+:\s*62 65 7d 08 69 71 7f\s+vcvtps2ibs\s+0x7f0\(%rcx\),%xmm30
@@ -50,7 +48,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7f bf 68 72 80\s+vcvttbf162ibs\s+-0x100\(%rdx\)\{1to16\},%ymm30\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 05 7c 08 68 f5\s+vcvttph2ibs\s+%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 05 7c 28 68 f5\s+vcvttph2ibs\s+%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 78 18 68 f5\s+vcvttph2ibs\s+\{sae\},%ymm29,%ymm30
\s*[a-f0-9]+:\s*62 25 7c 0f 68 b4 f5 00 00 00 10\s+vcvttph2ibs\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\}
\s*[a-f0-9]+:\s*62 45 7c 18 68 31\s+vcvttph2ibs\s+\(%r9\)\{1to8\},%xmm30
\s*[a-f0-9]+:\s*62 65 7c 08 68 71 7f\s+vcvttph2ibs\s+0x7f0\(%rcx\),%xmm30
@@ -61,7 +58,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7c bf 68 72 80\s+vcvttph2ibs\s+-0x100\(%rdx\)\{1to16\},%ymm30\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 05 7d 08 68 f5\s+vcvttps2ibs\s+%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 05 7d 28 68 f5\s+vcvttps2ibs\s+%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 79 18 68 f5\s+vcvttps2ibs\s+\{sae\},%ymm29,%ymm30
\s*[a-f0-9]+:\s*62 25 7d 0f 68 b4 f5 00 00 00 10\s+vcvttps2ibs\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\}
\s*[a-f0-9]+:\s*62 45 7d 18 68 31\s+vcvttps2ibs\s+\(%r9\)\{1to4\},%xmm30
\s*[a-f0-9]+:\s*62 65 7d 08 68 71 7f\s+vcvttps2ibs\s+0x7f0\(%rcx\),%xmm30
@@ -72,7 +68,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7d bf 68 72 80\s+vcvttps2ibs\s+-0x200\(%rdx\)\{1to8\},%ymm30\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 05 fc 08 6d f5\s+vcvttpd2dqs\s+%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 05 fc 28 6d f5\s+vcvttpd2dqs\s+%ymm29,%xmm30
-\s*[a-f0-9]+:\s*62 05 f8 18 6d f5\s+vcvttpd2dqs\s+\{sae\},%ymm29,%xmm30
\s*[a-f0-9]+:\s*62 25 fc 0f 6d b4 f5 00 00 00 10\s+vcvttpd2dqsx\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\}
\s*[a-f0-9]+:\s*62 45 fc 18 6d 31\s+vcvttpd2dqs\s+\(%r9\)\{1to2\},%xmm30
\s*[a-f0-9]+:\s*62 65 fc 08 6d 71 7f\s+vcvttpd2dqsx\s+0x7f0\(%rcx\),%xmm30
@@ -82,7 +77,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 fc bf 6d 72 80\s+vcvttpd2dqs\s+-0x400\(%rdx\)\{1to4\},%xmm30\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 05 fd 08 6d f5\s+vcvttpd2qqs\s+%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 05 fd 28 6d f5\s+vcvttpd2qqs\s+%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 f9 18 6d f5\s+vcvttpd2qqs\s+\{sae\},%ymm29,%ymm30
\s*[a-f0-9]+:\s*62 25 fd 0f 6d b4 f5 00 00 00 10\s+vcvttpd2qqs\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\}
\s*[a-f0-9]+:\s*62 45 fd 18 6d 31\s+vcvttpd2qqs\s+\(%r9\)\{1to2\},%xmm30
\s*[a-f0-9]+:\s*62 65 fd 08 6d 71 7f\s+vcvttpd2qqs\s+0x7f0\(%rcx\),%xmm30
@@ -93,7 +87,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 fd bf 6d 72 80\s+vcvttpd2qqs\s+-0x400\(%rdx\)\{1to4\},%ymm30\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 05 7c 08 6d f5\s+vcvttps2dqs\s+%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 05 7c 28 6d f5\s+vcvttps2dqs\s+%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 78 18 6d f5\s+vcvttps2dqs\s+\{sae\},%ymm29,%ymm30
\s*[a-f0-9]+:\s*62 25 7c 0f 6d b4 f5 00 00 00 10\s+vcvttps2dqs\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\}
\s*[a-f0-9]+:\s*62 45 7c 18 6d 31\s+vcvttps2dqs\s+\(%r9\)\{1to4\},%xmm30
\s*[a-f0-9]+:\s*62 65 7c 08 6d 71 7f\s+vcvttps2dqs\s+0x7f0\(%rcx\),%xmm30
@@ -104,7 +97,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7c bf 6d 72 80\s+vcvttps2dqs\s+-0x200\(%rdx\)\{1to8\},%ymm30\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 05 7d 08 6d f5\s+vcvttps2qqs\s+%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 05 7d 28 6d f5\s+vcvttps2qqs\s+%xmm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 79 18 6d f5\s+vcvttps2qqs\s+\{sae\},%xmm29,%ymm30
\s*[a-f0-9]+:\s*62 25 7d 0f 6d b4 f5 00 00 00 10\s+vcvttps2qqs\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\}
\s*[a-f0-9]+:\s*62 45 7d 18 6d 31\s+vcvttps2qqs\s+\(%r9\)\{1to2\},%xmm30
\s*[a-f0-9]+:\s*62 65 7d 08 6d 71 7f\s+vcvttps2qqs\s+0x3f8\(%rcx\),%xmm30
@@ -149,7 +141,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7f bf 6b 72 80\s+vcvtbf162iubs\s+-0x100\(%rdx\)\{1to16\},%ymm30\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 05 7c 08 6b f5\s+vcvtph2iubs\s+%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 05 7c 28 6b f5\s+vcvtph2iubs\s+%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 78 18 6b f5\s+vcvtph2iubs\s+\{rn-sae\},%ymm29,%ymm30
\s*[a-f0-9]+:\s*62 25 7c 0f 6b b4 f5 00 00 00 10\s+vcvtph2iubs\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\}
\s*[a-f0-9]+:\s*62 45 7c 18 6b 31\s+vcvtph2iubs\s+\(%r9\)\{1to8\},%xmm30
\s*[a-f0-9]+:\s*62 65 7c 08 6b 71 7f\s+vcvtph2iubs\s+0x7f0\(%rcx\),%xmm30
@@ -160,7 +151,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7c bf 6b 72 80\s+vcvtph2iubs\s+-0x100\(%rdx\)\{1to16\},%ymm30\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 05 7d 08 6b f5\s+vcvtps2iubs\s+%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 05 7d 28 6b f5\s+vcvtps2iubs\s+%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 79 18 6b f5\s+vcvtps2iubs\s+\{rn-sae\},%ymm29,%ymm30
\s*[a-f0-9]+:\s*62 25 7d 0f 6b b4 f5 00 00 00 10\s+vcvtps2iubs\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\}
\s*[a-f0-9]+:\s*62 45 7d 18 6b 31\s+vcvtps2iubs\s+\(%r9\)\{1to4\},%xmm30
\s*[a-f0-9]+:\s*62 65 7d 08 6b 71 7f\s+vcvtps2iubs\s+0x7f0\(%rcx\),%xmm30
@@ -181,7 +171,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7f bf 6a 72 80\s+vcvttbf162iubs\s+-0x100\(%rdx\)\{1to16\},%ymm30\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 05 7c 08 6a f5\s+vcvttph2iubs\s+%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 05 7c 28 6a f5\s+vcvttph2iubs\s+%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 78 18 6a f5\s+vcvttph2iubs\s+\{sae\},%ymm29,%ymm30
\s*[a-f0-9]+:\s*62 25 7c 0f 6a b4 f5 00 00 00 10\s+vcvttph2iubs\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\}
\s*[a-f0-9]+:\s*62 45 7c 18 6a 31\s+vcvttph2iubs\s+\(%r9\)\{1to8\},%xmm30
\s*[a-f0-9]+:\s*62 65 7c 08 6a 71 7f\s+vcvttph2iubs\s+0x7f0\(%rcx\),%xmm30
@@ -192,7 +181,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7c bf 6a 72 80\s+vcvttph2iubs\s+-0x100\(%rdx\)\{1to16\},%ymm30\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 05 7d 08 6a f5\s+vcvttps2iubs\s+%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 05 7d 28 6a f5\s+vcvttps2iubs\s+%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 79 18 6a f5\s+vcvttps2iubs\s+\{sae\},%ymm29,%ymm30
\s*[a-f0-9]+:\s*62 25 7d 0f 6a b4 f5 00 00 00 10\s+vcvttps2iubs\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\}
\s*[a-f0-9]+:\s*62 45 7d 18 6a 31\s+vcvttps2iubs\s+\(%r9\)\{1to4\},%xmm30
\s*[a-f0-9]+:\s*62 65 7d 08 6a 71 7f\s+vcvttps2iubs\s+0x7f0\(%rcx\),%xmm30
@@ -203,7 +191,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7d bf 6a 72 80\s+vcvttps2iubs\s+-0x200\(%rdx\)\{1to8\},%ymm30\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 05 fc 08 6c f5\s+vcvttpd2udqs\s+%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 05 fc 28 6c f5\s+vcvttpd2udqs\s+%ymm29,%xmm30
-\s*[a-f0-9]+:\s*62 05 f8 18 6c f5\s+vcvttpd2udqs\s+\{sae\},%ymm29,%xmm30
\s*[a-f0-9]+:\s*62 25 fc 0f 6c b4 f5 00 00 00 10\s+vcvttpd2udqsx\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\}
\s*[a-f0-9]+:\s*62 45 fc 18 6c 31\s+vcvttpd2udqs\s+\(%r9\)\{1to2\},%xmm30
\s*[a-f0-9]+:\s*62 65 fc 08 6c 71 7f\s+vcvttpd2udqsx\s+0x7f0\(%rcx\),%xmm30
@@ -213,7 +200,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 fc bf 6c 72 80\s+vcvttpd2udqs\s+-0x400\(%rdx\)\{1to4\},%xmm30\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 05 fd 08 6c f5\s+vcvttpd2uqqs\s+%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 05 fd 28 6c f5\s+vcvttpd2uqqs\s+%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 f9 18 6c f5\s+vcvttpd2uqqs\s+\{sae\},%ymm29,%ymm30
\s*[a-f0-9]+:\s*62 25 fd 0f 6c b4 f5 00 00 00 10\s+vcvttpd2uqqs\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\}
\s*[a-f0-9]+:\s*62 45 fd 18 6c 31\s+vcvttpd2uqqs\s+\(%r9\)\{1to2\},%xmm30
\s*[a-f0-9]+:\s*62 65 fd 08 6c 71 7f\s+vcvttpd2uqqs\s+0x7f0\(%rcx\),%xmm30
@@ -224,7 +210,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 fd bf 6c 72 80\s+vcvttpd2uqqs\s+-0x400\(%rdx\)\{1to4\},%ymm30\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 05 7c 08 6c f5\s+vcvttps2udqs\s+%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 05 7c 28 6c f5\s+vcvttps2udqs\s+%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 78 18 6c f5\s+vcvttps2udqs\s+\{sae\},%ymm29,%ymm30
\s*[a-f0-9]+:\s*62 25 7c 0f 6c b4 f5 00 00 00 10\s+vcvttps2udqs\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\}
\s*[a-f0-9]+:\s*62 45 7c 18 6c 31\s+vcvttps2udqs\s+\(%r9\)\{1to4\},%xmm30
\s*[a-f0-9]+:\s*62 65 7c 08 6c 71 7f\s+vcvttps2udqs\s+0x7f0\(%rcx\),%xmm30
@@ -235,7 +220,6 @@ Disassembly of section \.text:
\s*[a-f0-9]+:\s*62 65 7c bf 6c 72 80\s+vcvttps2udqs\s+-0x200\(%rdx\)\{1to8\},%ymm30\{%k7\}\{z\}
\s*[a-f0-9]+:\s*62 05 7d 08 6c f5\s+vcvttps2uqqs\s+%xmm29,%xmm30
\s*[a-f0-9]+:\s*62 05 7d 28 6c f5\s+vcvttps2uqqs\s+%xmm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 79 18 6c f5\s+vcvttps2uqqs\s+\{sae\},%xmm29,%ymm30
\s*[a-f0-9]+:\s*62 25 7d 0f 6c b4 f5 00 00 00 10\s+vcvttps2uqqs\s+0x10000000\(%rbp,%r14,8\),%xmm30\{%k7\}
\s*[a-f0-9]+:\s*62 45 7d 18 6c 31\s+vcvttps2uqqs\s+\(%r9\)\{1to2\},%xmm30
\s*[a-f0-9]+:\s*62 65 7d 08 6c 71 7f\s+vcvttps2uqqs\s+0x3f8\(%rcx\),%xmm30
diff --git a/gas/testsuite/gas/i386/x86-64-avx10_2-256-satcvt.s b/gas/testsuite/gas/i386/x86-64-avx10_2-256-satcvt.s
index 2c66259..9abc89f 100644
--- a/gas/testsuite/gas/i386/x86-64-avx10_2-256-satcvt.s
+++ b/gas/testsuite/gas/i386/x86-64-avx10_2-256-satcvt.s
@@ -18,7 +18,6 @@ _start:
vcvtph2i\u\()bs %xmm29, %xmm30
vcvtph2i\u\()bs %ymm29, %ymm30
- vcvtph2i\u\()bs {rn-sae}, %ymm29, %ymm30
vcvtph2i\u\()bs 0x10000000(%rbp, %r14, 8), %xmm30{%k7}
vcvtph2i\u\()bs (%r9){1to8}, %xmm30
vcvtph2i\u\()bs 2032(%rcx), %xmm30
@@ -30,7 +29,6 @@ _start:
vcvtps2i\u\()bs %xmm29, %xmm30
vcvtps2i\u\()bs %ymm29, %ymm30
- vcvtps2i\u\()bs {rn-sae}, %ymm29, %ymm30
vcvtps2i\u\()bs 0x10000000(%rbp, %r14, 8), %xmm30{%k7}
vcvtps2i\u\()bs (%r9){1to4}, %xmm30
vcvtps2i\u\()bs 2032(%rcx), %xmm30
@@ -53,7 +51,6 @@ _start:
vcvttph2i\u\()bs %xmm29, %xmm30
vcvttph2i\u\()bs %ymm29, %ymm30
- vcvttph2i\u\()bs {sae}, %ymm29, %ymm30
vcvttph2i\u\()bs 0x10000000(%rbp, %r14, 8), %xmm30{%k7}
vcvttph2i\u\()bs (%r9){1to8}, %xmm30
vcvttph2i\u\()bs 2032(%rcx), %xmm30
@@ -65,7 +62,6 @@ _start:
vcvttps2i\u\()bs %xmm29, %xmm30
vcvttps2i\u\()bs %ymm29, %ymm30
- vcvttps2i\u\()bs {sae}, %ymm29, %ymm30
vcvttps2i\u\()bs 0x10000000(%rbp, %r14, 8), %xmm30{%k7}
vcvttps2i\u\()bs (%r9){1to4}, %xmm30
vcvttps2i\u\()bs 2032(%rcx), %xmm30
@@ -77,7 +73,6 @@ _start:
vcvttpd2\u\()dqs %xmm29, %xmm30
vcvttpd2\u\()dqs %ymm29, %xmm30
- vcvttpd2\u\()dqs {sae}, %ymm29, %xmm30
vcvttpd2\u\()dqsx 0x10000000(%rbp, %r14, 8), %xmm30{%k7}
vcvttpd2\u\()dqs (%r9){1to2}, %xmm30
vcvttpd2\u\()dqsx 2032(%rcx), %xmm30
@@ -88,7 +83,6 @@ _start:
vcvttpd2\u\()qqs %xmm29, %xmm30
vcvttpd2\u\()qqs %ymm29, %ymm30
- vcvttpd2\u\()qqs {sae}, %ymm29, %ymm30
vcvttpd2\u\()qqs 0x10000000(%rbp, %r14, 8), %xmm30{%k7}
vcvttpd2\u\()qqs (%r9){1to2}, %xmm30
vcvttpd2\u\()qqs 2032(%rcx), %xmm30
@@ -100,7 +94,6 @@ _start:
vcvttps2\u\()dqs %xmm29, %xmm30
vcvttps2\u\()dqs %ymm29, %ymm30
- vcvttps2\u\()dqs {sae}, %ymm29, %ymm30
vcvttps2\u\()dqs 0x10000000(%rbp, %r14, 8), %xmm30{%k7}
vcvttps2\u\()dqs (%r9){1to4}, %xmm30
vcvttps2\u\()dqs 2032(%rcx), %xmm30
@@ -112,7 +105,6 @@ _start:
vcvttps2\u\()qqs %xmm29, %xmm30
vcvttps2\u\()qqs %xmm29, %ymm30
- vcvttps2\u\()qqs {sae}, %xmm29, %ymm30
vcvttps2\u\()qqs 0x10000000(%rbp, %r14, 8), %xmm30{%k7}
vcvttps2\u\()qqs (%r9){1to2}, %xmm30
vcvttps2\u\()qqs 1016(%rcx), %xmm30
@@ -165,7 +157,6 @@ _intel:
vcvtph2i\u\()bs xmm30, xmm29
vcvtph2i\u\()bs ymm30, ymm29
- vcvtph2i\u\()bs ymm30, ymm29, {rn-sae}
vcvtph2i\u\()bs xmm30{k7}, XMMWORD PTR [rbp+r14*8+0x10000000]
vcvtph2i\u\()bs xmm30, WORD PTR [r9]{1to8}
vcvtph2i\u\()bs xmm30, [rcx+2032]
@@ -177,7 +168,6 @@ _intel:
vcvtps2i\u\()bs xmm30, xmm29
vcvtps2i\u\()bs ymm30, ymm29
- vcvtps2i\u\()bs ymm30, ymm29, {rn-sae}
vcvtps2i\u\()bs xmm30{k7}, [rbp+r14*8+0x10000000]
vcvtps2i\u\()bs xmm30, [r9]{1to4}
vcvtps2i\u\()bs xmm30, XMMWORD PTR [rcx+2032]
@@ -200,7 +190,6 @@ _intel:
vcvttph2i\u\()bs xmm30, xmm29
vcvttph2i\u\()bs ymm30, ymm29
- vcvttph2i\u\()bs ymm30, ymm29, {sae}
vcvttph2i\u\()bs xmm30{k7}, XMMWORD PTR [rbp+r14*8+0x10000000]
vcvttph2i\u\()bs xmm30, WORD PTR [r9]{1to8}
vcvttph2i\u\()bs xmm30, [rcx+2032]
@@ -212,7 +201,6 @@ _intel:
vcvttps2i\u\()bs xmm30, xmm29
vcvttps2i\u\()bs ymm30, ymm29
- vcvttps2i\u\()bs ymm30, ymm29, {sae}
vcvttps2i\u\()bs xmm30{k7}, [rbp+r14*8+0x10000000]
vcvttps2i\u\()bs xmm30, [r9]{1to4}
vcvttps2i\u\()bs xmm30, XMMWORD PTR [rcx+2032]
@@ -224,7 +212,6 @@ _intel:
vcvttpd2\u\()dqs xmm30, xmm29
vcvttpd2\u\()dqs xmm30, ymm29
- vcvttpd2\u\()dqs xmm30, ymm29, {sae}
vcvttpd2\u\()dqs xmm30{k7}, XMMWORD PTR [rbp+r14*8+0x10000000]
vcvttpd2\u\()dqs xmm30, QWORD PTR [r9]{1to2}
vcvttpd2\u\()dqs xmm30, XMMWORD PTR [rcx+2032]
@@ -235,7 +222,6 @@ _intel:
vcvttpd2\u\()qqs xmm30, xmm29
vcvttpd2\u\()qqs ymm30, ymm29
- vcvttpd2\u\()qqs ymm30, ymm29, {sae}
vcvttpd2\u\()qqs xmm30{k7}, XMMWORD PTR [rbp+r14*8+0x10000000]
vcvttpd2\u\()qqs xmm30, [r9]{1to2}
vcvttpd2\u\()qqs xmm30, [rcx+2032]
@@ -247,7 +233,6 @@ _intel:
vcvttps2\u\()dqs xmm30, xmm29
vcvttps2\u\()dqs ymm30, ymm29
- vcvttps2\u\()dqs ymm30, ymm29, {sae}
vcvttps2\u\()dqs xmm30{k7}, [rbp+r14*8+0x10000000]
vcvttps2\u\()dqs xmm30, DWORD PTR [r9]{1to4}
vcvttps2\u\()dqs xmm30, XMMWORD PTR [rcx+2032]
@@ -259,7 +244,6 @@ _intel:
vcvttps2\u\()qqs xmm30, xmm29
vcvttps2\u\()qqs ymm30, xmm29
- vcvttps2\u\()qqs ymm30, xmm29, {sae}
vcvttps2\u\()qqs xmm30{k7}, QWORD PTR [rbp+r14*8+0x10000000]
vcvttps2\u\()qqs xmm30, [r9]{1to2}
vcvttps2\u\()qqs xmm30, QWORD PTR [rcx+1016]
diff --git a/gas/testsuite/gas/i386/x86-64-avx10_2-rounding-intel.d b/gas/testsuite/gas/i386/x86-64-avx10_2-rounding-intel.d
deleted file mode 100644
index d5e17c2..0000000
--- a/gas/testsuite/gas/i386/x86-64-avx10_2-rounding-intel.d
+++ /dev/null
@@ -1,452 +0,0 @@
-#objdump: -dw -Mintel
-#name: x86_64 AVX10.2 rounding insns (Intel disassembly)
-#source: x86-64-avx10_2-rounding.s
-
-.*: +file format .*
-
-Disassembly of section \.text:
-
-0+ <_start>:
-#...
-\s*a83:\s*62 91 91 10 c2 ec 7b\s+vcmppd k5,ymm29,ymm28\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 91 91 17 c2 ec 7b\s+vcmppd k5\{k7\},ymm29,ymm28\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 02 f9 18 42 f5\s+vgetexppd ymm30,ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 02 f9 1f 42 f5\s+vgetexppd ymm30\{k7\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 02 f9 9f 42 f5\s+vgetexppd ymm30\{k7\}\{z\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 f9 18 51 f5\s+vsqrtpd ymm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 f9 3f 51 f5\s+vsqrtpd ymm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 f9 ff 51 f5\s+vsqrtpd ymm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 93 10 10 c2 ec 7b\s+vcmpph k5,ymm29,ymm28\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 93 10 17 c2 ec 7b\s+vcmpph k5\{k7\},ymm29,ymm28\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 06 79 18 42 f5\s+vgetexpph ymm30,ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 06 79 1f 42 f5\s+vgetexpph ymm30\{k7\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 06 79 9f 42 f5\s+vgetexpph ymm30\{k7\}\{z\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 78 18 51 f5\s+vsqrtph ymm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 05 78 3f 51 f5\s+vsqrtph ymm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 05 78 ff 51 f5\s+vsqrtph ymm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 91 10 10 c2 ec 7b\s+vcmpps k5,ymm29,ymm28\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 91 10 17 c2 ec 7b\s+vcmpps k5\{k7\},ymm29,ymm28\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 02 79 18 42 f5\s+vgetexpps ymm30,ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 02 79 1f 42 f5\s+vgetexpps ymm30\{k7\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 02 79 9f 42 f5\s+vgetexpps ymm30\{k7\}\{z\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 78 18 51 f5\s+vsqrtps ymm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 78 3f 51 f5\s+vsqrtps ymm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 78 ff 51 f5\s+vsqrtps ymm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 91 10 58 f4\s+vaddpd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 91 37 58 f4\s+vaddpd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 91 f7 58 f4\s+vaddpd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 05 10 10 58 f4\s+vaddph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 05 10 37 58 f4\s+vaddph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 05 10 f7 58 f4\s+vaddph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 10 10 58 f4\s+vaddps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 10 37 58 f4\s+vaddps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 10 f7 58 f4\s+vaddps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 91 10 5e f4\s+vdivpd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 91 37 5e f4\s+vdivpd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 91 f7 5e f4\s+vdivpd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 05 10 10 5e f4\s+vdivph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 05 10 37 5e f4\s+vdivph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 05 10 f7 5e f4\s+vdivph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 10 10 5e f4\s+vdivps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 10 37 5e f4\s+vdivps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 10 f7 5e f4\s+vdivps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 91 10 59 f4\s+vmulpd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 91 37 59 f4\s+vmulpd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 91 f7 59 f4\s+vmulpd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 05 10 10 59 f4\s+vmulph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 05 10 37 59 f4\s+vmulph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 05 10 f7 59 f4\s+vmulph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 10 10 59 f4\s+vmulps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 10 37 59 f4\s+vmulps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 10 f7 59 f4\s+vmulps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 91 10 2c f4\s+vscalefpd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 91 37 2c f4\s+vscalefpd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 91 f7 2c f4\s+vscalefpd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 11 10 2c f4\s+vscalefph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 11 37 2c f4\s+vscalefph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 11 f7 2c f4\s+vscalefph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 11 10 2c f4\s+vscalefps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 11 37 2c f4\s+vscalefps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 11 f7 2c f4\s+vscalefps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 91 10 5c f4\s+vsubpd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 91 37 5c f4\s+vsubpd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 91 f7 5c f4\s+vsubpd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 05 10 10 5c f4\s+vsubph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 05 10 37 5c f4\s+vsubph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 05 10 f7 5c f4\s+vsubph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 10 10 5c f4\s+vsubps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 10 37 5c f4\s+vsubps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 10 f7 5c f4\s+vsubps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 91 10 5f f4\s+vmaxpd ymm30,ymm29,ymm28\{sae\}
-\s*[a-f0-9]+:\s*62 01 91 17 5f f4\s+vmaxpd ymm30\{k7\},ymm29,ymm28\{sae\}
-\s*[a-f0-9]+:\s*62 01 91 97 5f f4\s+vmaxpd ymm30\{k7\}\{z\},ymm29,ymm28\{sae\}
-\s*[a-f0-9]+:\s*62 05 10 10 5f f4\s+vmaxph ymm30,ymm29,ymm28\{sae\}
-\s*[a-f0-9]+:\s*62 05 10 17 5f f4\s+vmaxph ymm30\{k7\},ymm29,ymm28\{sae\}
-\s*[a-f0-9]+:\s*62 05 10 97 5f f4\s+vmaxph ymm30\{k7\}\{z\},ymm29,ymm28\{sae\}
-\s*[a-f0-9]+:\s*62 01 10 10 5f f4\s+vmaxps ymm30,ymm29,ymm28\{sae\}
-\s*[a-f0-9]+:\s*62 01 10 17 5f f4\s+vmaxps ymm30\{k7\},ymm29,ymm28\{sae\}
-\s*[a-f0-9]+:\s*62 01 10 97 5f f4\s+vmaxps ymm30\{k7\}\{z\},ymm29,ymm28\{sae\}
-\s*[a-f0-9]+:\s*62 01 91 10 5d f4\s+vminpd ymm30,ymm29,ymm28\{sae\}
-\s*[a-f0-9]+:\s*62 01 91 17 5d f4\s+vminpd ymm30\{k7\},ymm29,ymm28\{sae\}
-\s*[a-f0-9]+:\s*62 01 91 97 5d f4\s+vminpd ymm30\{k7\}\{z\},ymm29,ymm28\{sae\}
-\s*[a-f0-9]+:\s*62 05 10 10 5d f4\s+vminph ymm30,ymm29,ymm28\{sae\}
-\s*[a-f0-9]+:\s*62 05 10 17 5d f4\s+vminph ymm30\{k7\},ymm29,ymm28\{sae\}
-\s*[a-f0-9]+:\s*62 05 10 97 5d f4\s+vminph ymm30\{k7\}\{z\},ymm29,ymm28\{sae\}
-\s*[a-f0-9]+:\s*62 01 10 10 5d f4\s+vminps ymm30,ymm29,ymm28\{sae\}
-\s*[a-f0-9]+:\s*62 01 10 17 5d f4\s+vminps ymm30\{k7\},ymm29,ymm28\{sae\}
-\s*[a-f0-9]+:\s*62 01 10 97 5d f4\s+vminps ymm30\{k7\}\{z\},ymm29,ymm28\{sae\}
-\s*[a-f0-9]+:\s*62 03 f9 18 26 f5 7b\s+vgetmantpd ymm30,ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 f9 1f 26 f5 7b\s+vgetmantpd ymm30\{k7\},ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 f9 9f 26 f5 7b\s+vgetmantpd ymm30\{k7\}\{z\},ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 78 18 26 f5 7b\s+vgetmantph ymm30,ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 78 1f 26 f5 7b\s+vgetmantph ymm30\{k7\},ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 78 9f 26 f5 7b\s+vgetmantph ymm30\{k7\}\{z\},ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 79 18 26 f5 7b\s+vgetmantps ymm30,ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 79 1f 26 f5 7b\s+vgetmantps ymm30\{k7\},ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 79 9f 26 f5 7b\s+vgetmantps ymm30\{k7\}\{z\},ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 f9 18 56 f5 7b\s+vreducepd ymm30,ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 f9 1f 56 f5 7b\s+vreducepd ymm30\{k7\},ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 f9 9f 56 f5 7b\s+vreducepd ymm30\{k7\}\{z\},ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 78 18 56 f5 7b\s+vreduceph ymm30,ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 78 1f 56 f5 7b\s+vreduceph ymm30\{k7\},ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 78 9f 56 f5 7b\s+vreduceph ymm30\{k7\}\{z\},ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 79 18 56 f5 7b\s+vreduceps ymm30,ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 79 1f 56 f5 7b\s+vreduceps ymm30\{k7\},ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 79 9f 56 f5 7b\s+vreduceps ymm30\{k7\}\{z\},ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 f9 18 09 f5 7b\s+vrndscalepd ymm30,ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 f9 1f 09 f5 7b\s+vrndscalepd ymm30\{k7\},ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 f9 9f 09 f5 7b\s+vrndscalepd ymm30\{k7\}\{z\},ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 78 18 08 f5 7b\s+vrndscaleph ymm30,ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 78 1f 08 f5 7b\s+vrndscaleph ymm30\{k7\},ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 78 9f 08 f5 7b\s+vrndscaleph ymm30\{k7\}\{z\},ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 79 18 08 f5 7b\s+vrndscaleps ymm30,ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 79 1f 08 f5 7b\s+vrndscaleps ymm30\{k7\},ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 79 9f 08 f5 7b\s+vrndscaleps ymm30\{k7\}\{z\},ymm29\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 02 91 10 98 f4\s+vfmadd132pd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 91 37 98 f4\s+vfmadd132pd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 91 f7 98 f4\s+vfmadd132pd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 11 10 98 f4\s+vfmadd132ph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 11 37 98 f4\s+vfmadd132ph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 11 f7 98 f4\s+vfmadd132ph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 11 10 98 f4\s+vfmadd132ps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 11 37 98 f4\s+vfmadd132ps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 11 f7 98 f4\s+vfmadd132ps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 91 10 a8 f4\s+vfmadd213pd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 91 37 a8 f4\s+vfmadd213pd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 91 f7 a8 f4\s+vfmadd213pd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 11 10 a8 f4\s+vfmadd213ph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 11 37 a8 f4\s+vfmadd213ph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 11 f7 a8 f4\s+vfmadd213ph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 11 10 a8 f4\s+vfmadd213ps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 11 37 a8 f4\s+vfmadd213ps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 11 f7 a8 f4\s+vfmadd213ps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 91 10 b8 f4\s+vfmadd231pd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 91 37 b8 f4\s+vfmadd231pd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 91 f7 b8 f4\s+vfmadd231pd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 11 10 b8 f4\s+vfmadd231ph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 11 37 b8 f4\s+vfmadd231ph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 11 f7 b8 f4\s+vfmadd231ph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 11 10 b8 f4\s+vfmadd231ps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 11 37 b8 f4\s+vfmadd231ps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 11 f7 b8 f4\s+vfmadd231ps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 91 10 96 f4\s+vfmaddsub132pd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 91 37 96 f4\s+vfmaddsub132pd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 91 f7 96 f4\s+vfmaddsub132pd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 11 10 96 f4\s+vfmaddsub132ph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 11 37 96 f4\s+vfmaddsub132ph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 11 f7 96 f4\s+vfmaddsub132ph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 11 10 96 f4\s+vfmaddsub132ps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 11 37 96 f4\s+vfmaddsub132ps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 11 f7 96 f4\s+vfmaddsub132ps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 91 10 a6 f4\s+vfmaddsub213pd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 91 37 a6 f4\s+vfmaddsub213pd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 91 f7 a6 f4\s+vfmaddsub213pd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 11 10 a6 f4\s+vfmaddsub213ph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 11 37 a6 f4\s+vfmaddsub213ph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 11 f7 a6 f4\s+vfmaddsub213ph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 11 10 a6 f4\s+vfmaddsub213ps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 11 37 a6 f4\s+vfmaddsub213ps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 11 f7 a6 f4\s+vfmaddsub213ps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 91 10 b6 f4\s+vfmaddsub231pd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 91 37 b6 f4\s+vfmaddsub231pd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 91 f7 b6 f4\s+vfmaddsub231pd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 11 10 b6 f4\s+vfmaddsub231ph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 11 37 b6 f4\s+vfmaddsub231ph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 11 f7 b6 f4\s+vfmaddsub231ph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 11 10 b6 f4\s+vfmaddsub231ps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 11 37 b6 f4\s+vfmaddsub231ps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 11 f7 b6 f4\s+vfmaddsub231ps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 91 10 9a f4\s+vfmsub132pd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 91 37 9a f4\s+vfmsub132pd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 91 f7 9a f4\s+vfmsub132pd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 11 10 9a f4\s+vfmsub132ph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 11 37 9a f4\s+vfmsub132ph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 11 f7 9a f4\s+vfmsub132ph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 11 10 9a f4\s+vfmsub132ps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 11 37 9a f4\s+vfmsub132ps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 11 f7 9a f4\s+vfmsub132ps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 91 10 aa f4\s+vfmsub213pd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 91 37 aa f4\s+vfmsub213pd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 91 f7 aa f4\s+vfmsub213pd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 11 10 aa f4\s+vfmsub213ph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 11 37 aa f4\s+vfmsub213ph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 11 f7 aa f4\s+vfmsub213ph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 11 10 aa f4\s+vfmsub213ps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 11 37 aa f4\s+vfmsub213ps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 11 f7 aa f4\s+vfmsub213ps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 91 10 ba f4\s+vfmsub231pd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 91 37 ba f4\s+vfmsub231pd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 91 f7 ba f4\s+vfmsub231pd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 11 10 ba f4\s+vfmsub231ph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 11 37 ba f4\s+vfmsub231ph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 11 f7 ba f4\s+vfmsub231ph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 11 10 ba f4\s+vfmsub231ps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 11 37 ba f4\s+vfmsub231ps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 11 f7 ba f4\s+vfmsub231ps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 91 10 97 f4\s+vfmsubadd132pd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 91 37 97 f4\s+vfmsubadd132pd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 91 f7 97 f4\s+vfmsubadd132pd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 11 10 97 f4\s+vfmsubadd132ph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 11 37 97 f4\s+vfmsubadd132ph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 11 f7 97 f4\s+vfmsubadd132ph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 11 10 97 f4\s+vfmsubadd132ps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 11 37 97 f4\s+vfmsubadd132ps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 11 f7 97 f4\s+vfmsubadd132ps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 91 10 a7 f4\s+vfmsubadd213pd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 91 37 a7 f4\s+vfmsubadd213pd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 91 f7 a7 f4\s+vfmsubadd213pd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 11 10 a7 f4\s+vfmsubadd213ph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 11 37 a7 f4\s+vfmsubadd213ph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 11 f7 a7 f4\s+vfmsubadd213ph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 11 10 a7 f4\s+vfmsubadd213ps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 11 37 a7 f4\s+vfmsubadd213ps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 11 f7 a7 f4\s+vfmsubadd213ps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 91 10 b7 f4\s+vfmsubadd231pd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 91 37 b7 f4\s+vfmsubadd231pd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 91 f7 b7 f4\s+vfmsubadd231pd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 11 10 b7 f4\s+vfmsubadd231ph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 11 37 b7 f4\s+vfmsubadd231ph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 11 f7 b7 f4\s+vfmsubadd231ph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 11 10 b7 f4\s+vfmsubadd231ps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 11 37 b7 f4\s+vfmsubadd231ps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 11 f7 b7 f4\s+vfmsubadd231ps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 91 10 9c f4\s+vfnmadd132pd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 91 37 9c f4\s+vfnmadd132pd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 91 f7 9c f4\s+vfnmadd132pd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 11 10 9c f4\s+vfnmadd132ph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 11 37 9c f4\s+vfnmadd132ph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 11 f7 9c f4\s+vfnmadd132ph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 11 10 9c f4\s+vfnmadd132ps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 11 37 9c f4\s+vfnmadd132ps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 11 f7 9c f4\s+vfnmadd132ps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 91 10 ac f4\s+vfnmadd213pd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 91 37 ac f4\s+vfnmadd213pd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 91 f7 ac f4\s+vfnmadd213pd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 11 10 ac f4\s+vfnmadd213ph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 11 37 ac f4\s+vfnmadd213ph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 11 f7 ac f4\s+vfnmadd213ph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 11 10 ac f4\s+vfnmadd213ps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 11 37 ac f4\s+vfnmadd213ps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 11 f7 ac f4\s+vfnmadd213ps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 91 10 bc f4\s+vfnmadd231pd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 91 37 bc f4\s+vfnmadd231pd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 91 f7 bc f4\s+vfnmadd231pd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 11 10 bc f4\s+vfnmadd231ph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 11 37 bc f4\s+vfnmadd231ph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 11 f7 bc f4\s+vfnmadd231ph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 11 10 bc f4\s+vfnmadd231ps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 11 37 bc f4\s+vfnmadd231ps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 11 f7 bc f4\s+vfnmadd231ps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 91 10 9e f4\s+vfnmsub132pd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 91 37 9e f4\s+vfnmsub132pd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 91 f7 9e f4\s+vfnmsub132pd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 11 10 9e f4\s+vfnmsub132ph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 11 37 9e f4\s+vfnmsub132ph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 11 f7 9e f4\s+vfnmsub132ph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 11 10 9e f4\s+vfnmsub132ps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 11 37 9e f4\s+vfnmsub132ps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 11 f7 9e f4\s+vfnmsub132ps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 91 10 ae f4\s+vfnmsub213pd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 91 37 ae f4\s+vfnmsub213pd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 91 f7 ae f4\s+vfnmsub213pd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 11 10 ae f4\s+vfnmsub213ph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 11 37 ae f4\s+vfnmsub213ph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 11 f7 ae f4\s+vfnmsub213ph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 11 10 ae f4\s+vfnmsub213ps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 11 37 ae f4\s+vfnmsub213ps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 11 f7 ae f4\s+vfnmsub213ps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 91 10 be f4\s+vfnmsub231pd ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 91 37 be f4\s+vfnmsub231pd ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 91 f7 be f4\s+vfnmsub231pd ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 11 10 be f4\s+vfnmsub231ph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 11 37 be f4\s+vfnmsub231ph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 11 f7 be f4\s+vfnmsub231ph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 02 11 10 be f4\s+vfnmsub231ps ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 02 11 37 be f4\s+vfnmsub231ps ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 02 11 f7 be f4\s+vfnmsub231ps ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 03 91 10 54 f4 7b\s+vfixupimmpd ymm30,ymm29,ymm28\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 91 17 54 f4 7b\s+vfixupimmpd ymm30\{k7\},ymm29,ymm28\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 91 97 54 f4 7b\s+vfixupimmpd ymm30\{k7\}\{z\},ymm29,ymm28\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 11 10 54 f4 7b\s+vfixupimmps ymm30,ymm29,ymm28\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 11 17 54 f4 7b\s+vfixupimmps ymm30\{k7\},ymm29,ymm28\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 11 97 54 f4 7b\s+vfixupimmps ymm30\{k7\}\{z\},ymm29,ymm28\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 91 10 50 f4 7b\s+vrangepd ymm30,ymm29,ymm28\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 91 17 50 f4 7b\s+vrangepd ymm30\{k7\},ymm29,ymm28\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 91 97 50 f4 7b\s+vrangepd ymm30\{k7\}\{z\},ymm29,ymm28\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 11 10 50 f4 7b\s+vrangeps ymm30,ymm29,ymm28\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 11 17 50 f4 7b\s+vrangeps ymm30\{k7\},ymm29,ymm28\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 03 11 97 50 f4 7b\s+vrangeps ymm30\{k7\}\{z\},ymm29,ymm28\{sae\},0x7b
-\s*[a-f0-9]+:\s*62 06 13 10 56 f4\s+vfcmaddcph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 13 37 56 f4\s+vfcmaddcph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 13 f7 56 f4\s+vfcmaddcph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 13 10 d6 f4\s+vfcmulcph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 13 37 d6 f4\s+vfcmulcph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 13 f7 d6 f4\s+vfcmulcph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 12 10 56 f4\s+vfmaddcph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 12 37 56 f4\s+vfmaddcph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 12 f7 56 f4\s+vfmaddcph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 06 12 10 d6 f4\s+vfmulcph ymm30,ymm29,ymm28\{rn-sae\}
-\s*[a-f0-9]+:\s*62 06 12 37 d6 f4\s+vfmulcph ymm30\{k7\},ymm29,ymm28\{rd-sae\}
-\s*[a-f0-9]+:\s*62 06 12 f7 d6 f4\s+vfmulcph ymm30\{k7\}\{z\},ymm29,ymm28\{rz-sae\}
-\s*[a-f0-9]+:\s*62 05 78 18 5b f5\s+vcvtdq2ph xmm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 05 78 3f 5b f5\s+vcvtdq2ph xmm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 05 78 ff 5b f5\s+vcvtdq2ph xmm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 78 18 5b f5\s+vcvtdq2ps ymm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 78 3f 5b f5\s+vcvtdq2ps ymm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 78 ff 5b f5\s+vcvtdq2ps ymm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 05 7b 18 7a f5\s+vcvtudq2ph xmm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 05 7b 3f 7a f5\s+vcvtudq2ph xmm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 05 7b ff 7a f5\s+vcvtudq2ph xmm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 7b 18 7a f5\s+vcvtudq2ps ymm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 7b 3f 7a f5\s+vcvtudq2ps ymm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 7b ff 7a f5\s+vcvtudq2ps ymm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 fb 18 e6 f5\s+vcvtpd2dq xmm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 fb 3f e6 f5\s+vcvtpd2dq xmm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 fb ff e6 f5\s+vcvtpd2dq xmm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 05 f9 18 5a f5\s+vcvtpd2ph xmm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 05 f9 3f 5a f5\s+vcvtpd2ph xmm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 05 f9 ff 5a f5\s+vcvtpd2ph xmm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 f9 18 5a f5\s+vcvtpd2ps xmm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 f9 3f 5a f5\s+vcvtpd2ps xmm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 f9 ff 5a f5\s+vcvtpd2ps xmm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 f8 18 79 f5\s+vcvtpd2udq xmm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 f8 3f 79 f5\s+vcvtpd2udq xmm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 f8 ff 79 f5\s+vcvtpd2udq xmm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 f9 18 7b f5\s+vcvtpd2qq ymm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 f9 3f 7b f5\s+vcvtpd2qq ymm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 f9 ff 7b f5\s+vcvtpd2qq ymm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 f9 18 79 f5\s+vcvtpd2uqq ymm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 f9 3f 79 f5\s+vcvtpd2uqq ymm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 f9 ff 79 f5\s+vcvtpd2uqq ymm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 05 79 18 5b f5\s+vcvtph2dq ymm30,xmm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 05 79 3f 5b f5\s+vcvtph2dq ymm30\{k7\},xmm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 05 79 ff 5b f5\s+vcvtph2dq ymm30\{k7\}\{z\},xmm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 05 79 18 7b f5\s+vcvtph2qq ymm30,xmm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 05 79 3f 7b f5\s+vcvtph2qq ymm30\{k7\},xmm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 05 79 ff 7b f5\s+vcvtph2qq ymm30\{k7\}\{z\},xmm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 05 78 18 79 f5\s+vcvtph2udq ymm30,xmm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 05 78 3f 79 f5\s+vcvtph2udq ymm30\{k7\},xmm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 05 78 ff 79 f5\s+vcvtph2udq ymm30\{k7\}\{z\},xmm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 05 79 18 79 f5\s+vcvtph2uqq ymm30,xmm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 05 79 3f 79 f5\s+vcvtph2uqq ymm30\{k7\},xmm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 05 79 ff 79 f5\s+vcvtph2uqq ymm30\{k7\}\{z\},xmm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 05 78 18 5a f5\s+vcvtph2pd ymm30,xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 78 1f 5a f5\s+vcvtph2pd ymm30\{k7\},xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 78 9f 5a f5\s+vcvtph2pd ymm30\{k7\}\{z\},xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 02 79 18 13 f5\s+vcvtph2ps ymm30,xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 02 79 1f 13 f5\s+vcvtph2ps ymm30\{k7\},xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 02 79 9f 13 f5\s+vcvtph2ps ymm30\{k7\}\{z\},xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 06 79 18 13 f5\s+vcvtph2psx ymm30,xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 06 79 1f 13 f5\s+vcvtph2psx ymm30\{k7\},xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 06 79 9f 13 f5\s+vcvtph2psx ymm30\{k7\}\{z\},xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 78 18 7d f5\s+vcvtph2uw ymm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 05 78 3f 7d f5\s+vcvtph2uw ymm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 05 78 ff 7d f5\s+vcvtph2uw ymm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 05 79 18 7d f5\s+vcvtph2w ymm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 05 79 3f 7d f5\s+vcvtph2w ymm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 05 79 ff 7d f5\s+vcvtph2w ymm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 79 18 5b f5\s+vcvtps2dq ymm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 79 3f 5b f5\s+vcvtps2dq ymm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 79 ff 5b f5\s+vcvtps2dq ymm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 78 18 79 f5\s+vcvtps2udq ymm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 78 3f 79 f5\s+vcvtps2udq ymm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 78 ff 79 f5\s+vcvtps2udq ymm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 78 18 5a f5\s+vcvtps2pd ymm30,xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 78 1f 5a f5\s+vcvtps2pd ymm30\{k7\},xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 78 9f 5a f5\s+vcvtps2pd ymm30\{k7\}\{z\},xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 79 18 1d f5\s+vcvtps2phx xmm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 05 79 3f 1d f5\s+vcvtps2phx xmm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 05 79 ff 1d f5\s+vcvtps2phx xmm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 79 18 7b f5\s+vcvtps2qq ymm30,xmm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 79 3f 7b f5\s+vcvtps2qq ymm30\{k7\},xmm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 79 ff 7b f5\s+vcvtps2qq ymm30\{k7\}\{z\},xmm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 79 18 79 f5\s+vcvtps2uqq ymm30,xmm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 79 3f 79 f5\s+vcvtps2uqq ymm30\{k7\},xmm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 79 ff 79 f5\s+vcvtps2uqq ymm30\{k7\}\{z\},xmm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 fa 18 e6 f5\s+vcvtqq2pd ymm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 fa 3f e6 f5\s+vcvtqq2pd ymm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 fa ff e6 f5\s+vcvtqq2pd ymm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 05 f8 18 5b f5\s+vcvtqq2ph xmm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 05 f8 3f 5b f5\s+vcvtqq2ph xmm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 05 f8 ff 5b f5\s+vcvtqq2ph xmm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 f8 18 5b f5\s+vcvtqq2ps xmm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 f8 3f 5b f5\s+vcvtqq2ps xmm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 f8 ff 5b f5\s+vcvtqq2ps xmm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 fa 18 7a f5\s+vcvtuqq2pd ymm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 fa 3f 7a f5\s+vcvtuqq2pd ymm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 fa ff 7a f5\s+vcvtuqq2pd ymm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 05 fb 18 7a f5\s+vcvtuqq2ph xmm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 05 fb 3f 7a f5\s+vcvtuqq2ph xmm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 05 fb ff 7a f5\s+vcvtuqq2ph xmm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 fb 18 7a f5\s+vcvtuqq2ps xmm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 01 fb 3f 7a f5\s+vcvtuqq2ps xmm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 01 fb ff 7a f5\s+vcvtuqq2ps xmm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 01 f9 18 e6 f5\s+vcvttpd2dq xmm30,ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 f9 1f e6 f5\s+vcvttpd2dq xmm30\{k7\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 f9 9f e6 f5\s+vcvttpd2dq xmm30\{k7\}\{z\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 f8 18 78 f5\s+vcvttpd2udq xmm30,ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 f8 1f 78 f5\s+vcvttpd2udq xmm30\{k7\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 f8 9f 78 f5\s+vcvttpd2udq xmm30\{k7\}\{z\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 f9 18 7a f5\s+vcvttpd2qq ymm30,ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 f9 1f 7a f5\s+vcvttpd2qq ymm30\{k7\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 f9 9f 7a f5\s+vcvttpd2qq ymm30\{k7\}\{z\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 f9 18 78 f5\s+vcvttpd2uqq ymm30,ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 f9 1f 78 f5\s+vcvttpd2uqq ymm30\{k7\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 f9 9f 78 f5\s+vcvttpd2uqq ymm30\{k7\}\{z\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 7a 18 5b f5\s+vcvttph2dq ymm30,xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 7a 1f 5b f5\s+vcvttph2dq ymm30\{k7\},xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 7a 9f 5b f5\s+vcvttph2dq ymm30\{k7\}\{z\},xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 79 18 7a f5\s+vcvttph2qq ymm30,xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 79 1f 7a f5\s+vcvttph2qq ymm30\{k7\},xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 79 9f 7a f5\s+vcvttph2qq ymm30\{k7\}\{z\},xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 78 18 78 f5\s+vcvttph2udq ymm30,xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 78 1f 78 f5\s+vcvttph2udq ymm30\{k7\},xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 78 9f 78 f5\s+vcvttph2udq ymm30\{k7\}\{z\},xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 79 18 78 f5\s+vcvttph2uqq ymm30,xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 79 1f 78 f5\s+vcvttph2uqq ymm30\{k7\},xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 79 9f 78 f5\s+vcvttph2uqq ymm30\{k7\}\{z\},xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 78 18 7c f5\s+vcvttph2uw ymm30,ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 78 1f 7c f5\s+vcvttph2uw ymm30\{k7\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 78 9f 7c f5\s+vcvttph2uw ymm30\{k7\}\{z\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 79 18 7c f5\s+vcvttph2w ymm30,ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 79 1f 7c f5\s+vcvttph2w ymm30\{k7\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 79 9f 7c f5\s+vcvttph2w ymm30\{k7\}\{z\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 7a 18 5b f5\s+vcvttps2dq ymm30,ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 7a 1f 5b f5\s+vcvttps2dq ymm30\{k7\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 7a 9f 5b f5\s+vcvttps2dq ymm30\{k7\}\{z\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 78 18 78 f5\s+vcvttps2udq ymm30,ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 78 1f 78 f5\s+vcvttps2udq ymm30\{k7\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 78 9f 78 f5\s+vcvttps2udq ymm30\{k7\}\{z\},ymm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 79 18 7a f5\s+vcvttps2qq ymm30,xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 79 1f 7a f5\s+vcvttps2qq ymm30\{k7\},xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 79 9f 7a f5\s+vcvttps2qq ymm30\{k7\}\{z\},xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 79 18 78 f5\s+vcvttps2uqq ymm30,xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 79 1f 78 f5\s+vcvttps2uqq ymm30\{k7\},xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 01 79 9f 78 f5\s+vcvttps2uqq ymm30\{k7\}\{z\},xmm29\{sae\}
-\s*[a-f0-9]+:\s*62 05 7b 18 7d f5\s+vcvtuw2ph ymm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 05 7b 3f 7d f5\s+vcvtuw2ph ymm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 05 7b ff 7d f5\s+vcvtuw2ph ymm30\{k7\}\{z\},ymm29\{rz-sae\}
-\s*[a-f0-9]+:\s*62 05 7a 18 7d f5\s+vcvtw2ph ymm30,ymm29\{rn-sae\}
-\s*[a-f0-9]+:\s*62 05 7a 3f 7d f5\s+vcvtw2ph ymm30\{k7\},ymm29\{rd-sae\}
-\s*[a-f0-9]+:\s*62 05 7a ff 7d f5\s+vcvtw2ph ymm30\{k7\}\{z\},ymm29\{rz-sae\}
-#pass
diff --git a/gas/testsuite/gas/i386/x86-64-avx10_2-rounding.d b/gas/testsuite/gas/i386/x86-64-avx10_2-rounding.d
deleted file mode 100644
index 2bdfbf3..0000000
--- a/gas/testsuite/gas/i386/x86-64-avx10_2-rounding.d
+++ /dev/null
@@ -1,450 +0,0 @@
-#objdump: -dw
-#name: x86_64 AVX10.2 rounding insns
-
-.*: +file format .*
-
-Disassembly of section \.text:
-
-0+ <_start>:
-\s*[a-f0-9]+:\s*62 91 91 10 c2 ec 7b\s+vcmppd \$0x7b,\{sae\},%ymm28,%ymm29,%k5
-\s*[a-f0-9]+:\s*62 91 91 17 c2 ec 7b\s+vcmppd \$0x7b,\{sae\},%ymm28,%ymm29,%k5\{%k7\}
-\s*[a-f0-9]+:\s*62 02 f9 18 42 f5\s+vgetexppd \{sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 f9 1f 42 f5\s+vgetexppd \{sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 f9 9f 42 f5\s+vgetexppd \{sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 f9 18 51 f5\s+vsqrtpd \{rn-sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 f9 3f 51 f5\s+vsqrtpd \{rd-sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 f9 ff 51 f5\s+vsqrtpd \{rz-sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 93 10 10 c2 ec 7b\s+vcmpph \$0x7b,\{sae\},%ymm28,%ymm29,%k5
-\s*[a-f0-9]+:\s*62 93 10 17 c2 ec 7b\s+vcmpph \$0x7b,\{sae\},%ymm28,%ymm29,%k5\{%k7\}
-\s*[a-f0-9]+:\s*62 06 79 18 42 f5\s+vgetexpph \{sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 79 1f 42 f5\s+vgetexpph \{sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 79 9f 42 f5\s+vgetexpph \{sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 78 18 51 f5\s+vsqrtph \{rn-sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 78 3f 51 f5\s+vsqrtph \{rd-sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 78 ff 51 f5\s+vsqrtph \{rz-sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 91 10 10 c2 ec 7b\s+vcmpps \$0x7b,\{sae\},%ymm28,%ymm29,%k5
-\s*[a-f0-9]+:\s*62 91 10 17 c2 ec 7b\s+vcmpps \$0x7b,\{sae\},%ymm28,%ymm29,%k5\{%k7\}
-\s*[a-f0-9]+:\s*62 02 79 18 42 f5\s+vgetexpps \{sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 79 1f 42 f5\s+vgetexpps \{sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 79 9f 42 f5\s+vgetexpps \{sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 78 18 51 f5\s+vsqrtps \{rn-sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 78 3f 51 f5\s+vsqrtps \{rd-sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 78 ff 51 f5\s+vsqrtps \{rz-sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 91 10 58 f4\s+vaddpd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 91 37 58 f4\s+vaddpd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 91 f7 58 f4\s+vaddpd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 10 10 58 f4\s+vaddph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 10 37 58 f4\s+vaddph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 10 f7 58 f4\s+vaddph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 10 10 58 f4\s+vaddps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 10 37 58 f4\s+vaddps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 10 f7 58 f4\s+vaddps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 91 10 5e f4\s+vdivpd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 91 37 5e f4\s+vdivpd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 91 f7 5e f4\s+vdivpd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 10 10 5e f4\s+vdivph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 10 37 5e f4\s+vdivph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 10 f7 5e f4\s+vdivph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 10 10 5e f4\s+vdivps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 10 37 5e f4\s+vdivps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 10 f7 5e f4\s+vdivps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 91 10 59 f4\s+vmulpd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 91 37 59 f4\s+vmulpd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 91 f7 59 f4\s+vmulpd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 10 10 59 f4\s+vmulph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 10 37 59 f4\s+vmulph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 10 f7 59 f4\s+vmulph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 10 10 59 f4\s+vmulps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 10 37 59 f4\s+vmulps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 10 f7 59 f4\s+vmulps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 91 10 2c f4\s+vscalefpd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 91 37 2c f4\s+vscalefpd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 91 f7 2c f4\s+vscalefpd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 11 10 2c f4\s+vscalefph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 11 37 2c f4\s+vscalefph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 11 f7 2c f4\s+vscalefph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 11 10 2c f4\s+vscalefps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 11 37 2c f4\s+vscalefps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 11 f7 2c f4\s+vscalefps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 91 10 5c f4\s+vsubpd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 91 37 5c f4\s+vsubpd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 91 f7 5c f4\s+vsubpd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 10 10 5c f4\s+vsubph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 10 37 5c f4\s+vsubph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 10 f7 5c f4\s+vsubph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 10 10 5c f4\s+vsubps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 10 37 5c f4\s+vsubps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 10 f7 5c f4\s+vsubps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 91 10 5f f4\s+vmaxpd \{sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 91 17 5f f4\s+vmaxpd \{sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 91 97 5f f4\s+vmaxpd \{sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 10 10 5f f4\s+vmaxph \{sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 10 17 5f f4\s+vmaxph \{sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 10 97 5f f4\s+vmaxph \{sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 10 10 5f f4\s+vmaxps \{sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 10 17 5f f4\s+vmaxps \{sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 10 97 5f f4\s+vmaxps \{sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 91 10 5d f4\s+vminpd \{sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 91 17 5d f4\s+vminpd \{sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 91 97 5d f4\s+vminpd \{sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 10 10 5d f4\s+vminph \{sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 10 17 5d f4\s+vminph \{sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 10 97 5d f4\s+vminph \{sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 10 10 5d f4\s+vminps \{sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 10 17 5d f4\s+vminps \{sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 10 97 5d f4\s+vminps \{sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 03 f9 18 26 f5 7b\s+vgetmantpd \$0x7b,\{sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 03 f9 1f 26 f5 7b\s+vgetmantpd \$0x7b,\{sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 03 f9 9f 26 f5 7b\s+vgetmantpd \$0x7b,\{sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 03 78 18 26 f5 7b\s+vgetmantph \$0x7b,\{sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 03 78 1f 26 f5 7b\s+vgetmantph \$0x7b,\{sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 03 78 9f 26 f5 7b\s+vgetmantph \$0x7b,\{sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 03 79 18 26 f5 7b\s+vgetmantps \$0x7b,\{sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 03 79 1f 26 f5 7b\s+vgetmantps \$0x7b,\{sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 03 79 9f 26 f5 7b\s+vgetmantps \$0x7b,\{sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 03 f9 18 56 f5 7b\s+vreducepd \$0x7b,\{sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 03 f9 1f 56 f5 7b\s+vreducepd \$0x7b,\{sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 03 f9 9f 56 f5 7b\s+vreducepd \$0x7b,\{sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 03 78 18 56 f5 7b\s+vreduceph \$0x7b,\{sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 03 78 1f 56 f5 7b\s+vreduceph \$0x7b,\{sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 03 78 9f 56 f5 7b\s+vreduceph \$0x7b,\{sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 03 79 18 56 f5 7b\s+vreduceps \$0x7b,\{sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 03 79 1f 56 f5 7b\s+vreduceps \$0x7b,\{sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 03 79 9f 56 f5 7b\s+vreduceps \$0x7b,\{sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 03 f9 18 09 f5 7b\s+vrndscalepd \$0x7b,\{sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 03 f9 1f 09 f5 7b\s+vrndscalepd \$0x7b,\{sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 03 f9 9f 09 f5 7b\s+vrndscalepd \$0x7b,\{sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 03 78 18 08 f5 7b\s+vrndscaleph \$0x7b,\{sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 03 78 1f 08 f5 7b\s+vrndscaleph \$0x7b,\{sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 03 78 9f 08 f5 7b\s+vrndscaleph \$0x7b,\{sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 03 79 18 08 f5 7b\s+vrndscaleps \$0x7b,\{sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 03 79 1f 08 f5 7b\s+vrndscaleps \$0x7b,\{sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 03 79 9f 08 f5 7b\s+vrndscaleps \$0x7b,\{sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 91 10 98 f4\s+vfmadd132pd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 91 37 98 f4\s+vfmadd132pd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 91 f7 98 f4\s+vfmadd132pd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 11 10 98 f4\s+vfmadd132ph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 11 37 98 f4\s+vfmadd132ph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 11 f7 98 f4\s+vfmadd132ph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 11 10 98 f4\s+vfmadd132ps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 11 37 98 f4\s+vfmadd132ps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 11 f7 98 f4\s+vfmadd132ps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 91 10 a8 f4\s+vfmadd213pd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 91 37 a8 f4\s+vfmadd213pd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 91 f7 a8 f4\s+vfmadd213pd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 11 10 a8 f4\s+vfmadd213ph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 11 37 a8 f4\s+vfmadd213ph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 11 f7 a8 f4\s+vfmadd213ph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 11 10 a8 f4\s+vfmadd213ps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 11 37 a8 f4\s+vfmadd213ps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 11 f7 a8 f4\s+vfmadd213ps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 91 10 b8 f4\s+vfmadd231pd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 91 37 b8 f4\s+vfmadd231pd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 91 f7 b8 f4\s+vfmadd231pd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 11 10 b8 f4\s+vfmadd231ph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 11 37 b8 f4\s+vfmadd231ph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 11 f7 b8 f4\s+vfmadd231ph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 11 10 b8 f4\s+vfmadd231ps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 11 37 b8 f4\s+vfmadd231ps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 11 f7 b8 f4\s+vfmadd231ps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 91 10 96 f4\s+vfmaddsub132pd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 91 37 96 f4\s+vfmaddsub132pd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 91 f7 96 f4\s+vfmaddsub132pd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 11 10 96 f4\s+vfmaddsub132ph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 11 37 96 f4\s+vfmaddsub132ph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 11 f7 96 f4\s+vfmaddsub132ph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 11 10 96 f4\s+vfmaddsub132ps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 11 37 96 f4\s+vfmaddsub132ps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 11 f7 96 f4\s+vfmaddsub132ps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 91 10 a6 f4\s+vfmaddsub213pd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 91 37 a6 f4\s+vfmaddsub213pd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 91 f7 a6 f4\s+vfmaddsub213pd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 11 10 a6 f4\s+vfmaddsub213ph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 11 37 a6 f4\s+vfmaddsub213ph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 11 f7 a6 f4\s+vfmaddsub213ph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 11 10 a6 f4\s+vfmaddsub213ps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 11 37 a6 f4\s+vfmaddsub213ps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 11 f7 a6 f4\s+vfmaddsub213ps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 91 10 b6 f4\s+vfmaddsub231pd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 91 37 b6 f4\s+vfmaddsub231pd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 91 f7 b6 f4\s+vfmaddsub231pd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 11 10 b6 f4\s+vfmaddsub231ph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 11 37 b6 f4\s+vfmaddsub231ph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 11 f7 b6 f4\s+vfmaddsub231ph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 11 10 b6 f4\s+vfmaddsub231ps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 11 37 b6 f4\s+vfmaddsub231ps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 11 f7 b6 f4\s+vfmaddsub231ps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 91 10 9a f4\s+vfmsub132pd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 91 37 9a f4\s+vfmsub132pd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 91 f7 9a f4\s+vfmsub132pd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 11 10 9a f4\s+vfmsub132ph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 11 37 9a f4\s+vfmsub132ph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 11 f7 9a f4\s+vfmsub132ph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 11 10 9a f4\s+vfmsub132ps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 11 37 9a f4\s+vfmsub132ps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 11 f7 9a f4\s+vfmsub132ps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 91 10 aa f4\s+vfmsub213pd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 91 37 aa f4\s+vfmsub213pd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 91 f7 aa f4\s+vfmsub213pd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 11 10 aa f4\s+vfmsub213ph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 11 37 aa f4\s+vfmsub213ph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 11 f7 aa f4\s+vfmsub213ph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 11 10 aa f4\s+vfmsub213ps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 11 37 aa f4\s+vfmsub213ps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 11 f7 aa f4\s+vfmsub213ps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 91 10 ba f4\s+vfmsub231pd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 91 37 ba f4\s+vfmsub231pd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 91 f7 ba f4\s+vfmsub231pd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 11 10 ba f4\s+vfmsub231ph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 11 37 ba f4\s+vfmsub231ph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 11 f7 ba f4\s+vfmsub231ph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 11 10 ba f4\s+vfmsub231ps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 11 37 ba f4\s+vfmsub231ps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 11 f7 ba f4\s+vfmsub231ps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 91 10 97 f4\s+vfmsubadd132pd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 91 37 97 f4\s+vfmsubadd132pd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 91 f7 97 f4\s+vfmsubadd132pd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 11 10 97 f4\s+vfmsubadd132ph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 11 37 97 f4\s+vfmsubadd132ph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 11 f7 97 f4\s+vfmsubadd132ph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 11 10 97 f4\s+vfmsubadd132ps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 11 37 97 f4\s+vfmsubadd132ps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 11 f7 97 f4\s+vfmsubadd132ps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 91 10 a7 f4\s+vfmsubadd213pd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 91 37 a7 f4\s+vfmsubadd213pd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 91 f7 a7 f4\s+vfmsubadd213pd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 11 10 a7 f4\s+vfmsubadd213ph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 11 37 a7 f4\s+vfmsubadd213ph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 11 f7 a7 f4\s+vfmsubadd213ph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 11 10 a7 f4\s+vfmsubadd213ps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 11 37 a7 f4\s+vfmsubadd213ps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 11 f7 a7 f4\s+vfmsubadd213ps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 91 10 b7 f4\s+vfmsubadd231pd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 91 37 b7 f4\s+vfmsubadd231pd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 91 f7 b7 f4\s+vfmsubadd231pd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 11 10 b7 f4\s+vfmsubadd231ph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 11 37 b7 f4\s+vfmsubadd231ph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 11 f7 b7 f4\s+vfmsubadd231ph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 11 10 b7 f4\s+vfmsubadd231ps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 11 37 b7 f4\s+vfmsubadd231ps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 11 f7 b7 f4\s+vfmsubadd231ps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 91 10 9c f4\s+vfnmadd132pd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 91 37 9c f4\s+vfnmadd132pd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 91 f7 9c f4\s+vfnmadd132pd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 11 10 9c f4\s+vfnmadd132ph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 11 37 9c f4\s+vfnmadd132ph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 11 f7 9c f4\s+vfnmadd132ph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 11 10 9c f4\s+vfnmadd132ps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 11 37 9c f4\s+vfnmadd132ps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 11 f7 9c f4\s+vfnmadd132ps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 91 10 ac f4\s+vfnmadd213pd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 91 37 ac f4\s+vfnmadd213pd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 91 f7 ac f4\s+vfnmadd213pd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 11 10 ac f4\s+vfnmadd213ph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 11 37 ac f4\s+vfnmadd213ph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 11 f7 ac f4\s+vfnmadd213ph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 11 10 ac f4\s+vfnmadd213ps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 11 37 ac f4\s+vfnmadd213ps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 11 f7 ac f4\s+vfnmadd213ps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 91 10 bc f4\s+vfnmadd231pd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 91 37 bc f4\s+vfnmadd231pd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 91 f7 bc f4\s+vfnmadd231pd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 11 10 bc f4\s+vfnmadd231ph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 11 37 bc f4\s+vfnmadd231ph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 11 f7 bc f4\s+vfnmadd231ph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 11 10 bc f4\s+vfnmadd231ps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 11 37 bc f4\s+vfnmadd231ps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 11 f7 bc f4\s+vfnmadd231ps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 91 10 9e f4\s+vfnmsub132pd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 91 37 9e f4\s+vfnmsub132pd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 91 f7 9e f4\s+vfnmsub132pd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 11 10 9e f4\s+vfnmsub132ph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 11 37 9e f4\s+vfnmsub132ph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 11 f7 9e f4\s+vfnmsub132ph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 11 10 9e f4\s+vfnmsub132ps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 11 37 9e f4\s+vfnmsub132ps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 11 f7 9e f4\s+vfnmsub132ps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 91 10 ae f4\s+vfnmsub213pd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 91 37 ae f4\s+vfnmsub213pd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 91 f7 ae f4\s+vfnmsub213pd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 11 10 ae f4\s+vfnmsub213ph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 11 37 ae f4\s+vfnmsub213ph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 11 f7 ae f4\s+vfnmsub213ph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 11 10 ae f4\s+vfnmsub213ps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 11 37 ae f4\s+vfnmsub213ps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 11 f7 ae f4\s+vfnmsub213ps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 91 10 be f4\s+vfnmsub231pd \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 91 37 be f4\s+vfnmsub231pd \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 91 f7 be f4\s+vfnmsub231pd \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 11 10 be f4\s+vfnmsub231ph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 11 37 be f4\s+vfnmsub231ph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 11 f7 be f4\s+vfnmsub231ph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 11 10 be f4\s+vfnmsub231ps \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 11 37 be f4\s+vfnmsub231ps \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 11 f7 be f4\s+vfnmsub231ps \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 03 91 10 54 f4 7b\s+vfixupimmpd \$0x7b,\{sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 03 91 17 54 f4 7b\s+vfixupimmpd \$0x7b,\{sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 03 91 97 54 f4 7b\s+vfixupimmpd \$0x7b,\{sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 03 11 10 54 f4 7b\s+vfixupimmps \$0x7b,\{sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 03 11 17 54 f4 7b\s+vfixupimmps \$0x7b,\{sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 03 11 97 54 f4 7b\s+vfixupimmps \$0x7b,\{sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 03 91 10 50 f4 7b\s+vrangepd \$0x7b,\{sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 03 91 17 50 f4 7b\s+vrangepd \$0x7b,\{sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 03 91 97 50 f4 7b\s+vrangepd \$0x7b,\{sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 03 11 10 50 f4 7b\s+vrangeps \$0x7b,\{sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 03 11 17 50 f4 7b\s+vrangeps \$0x7b,\{sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 03 11 97 50 f4 7b\s+vrangeps \$0x7b,\{sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 13 10 56 f4\s+vfcmaddcph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 13 37 56 f4\s+vfcmaddcph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 13 f7 56 f4\s+vfcmaddcph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 13 10 d6 f4\s+vfcmulcph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 13 37 d6 f4\s+vfcmulcph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 13 f7 d6 f4\s+vfcmulcph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 12 10 56 f4\s+vfmaddcph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 12 37 56 f4\s+vfmaddcph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 12 f7 56 f4\s+vfmaddcph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 12 10 d6 f4\s+vfmulcph \{rn-sae\},%ymm28,%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 12 37 d6 f4\s+vfmulcph \{rd-sae\},%ymm28,%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 12 f7 d6 f4\s+vfmulcph \{rz-sae\},%ymm28,%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 78 18 5b f5\s+vcvtdq2ph \{rn-sae\},%ymm29,%xmm30
-\s*[a-f0-9]+:\s*62 05 78 3f 5b f5\s+vcvtdq2ph \{rd-sae\},%ymm29,%xmm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 78 ff 5b f5\s+vcvtdq2ph \{rz-sae\},%ymm29,%xmm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 78 18 5b f5\s+vcvtdq2ps \{rn-sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 78 3f 5b f5\s+vcvtdq2ps \{rd-sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 78 ff 5b f5\s+vcvtdq2ps \{rz-sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 7b 18 7a f5\s+vcvtudq2ph \{rn-sae\},%ymm29,%xmm30
-\s*[a-f0-9]+:\s*62 05 7b 3f 7a f5\s+vcvtudq2ph \{rd-sae\},%ymm29,%xmm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 7b ff 7a f5\s+vcvtudq2ph \{rz-sae\},%ymm29,%xmm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 7b 18 7a f5\s+vcvtudq2ps \{rn-sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 7b 3f 7a f5\s+vcvtudq2ps \{rd-sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 7b ff 7a f5\s+vcvtudq2ps \{rz-sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 fb 18 e6 f5\s+vcvtpd2dq \{rn-sae\},%ymm29,%xmm30
-\s*[a-f0-9]+:\s*62 01 fb 3f e6 f5\s+vcvtpd2dq \{rd-sae\},%ymm29,%xmm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 fb ff e6 f5\s+vcvtpd2dq \{rz-sae\},%ymm29,%xmm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 f9 18 5a f5\s+vcvtpd2ph \{rn-sae\},%ymm29,%xmm30
-\s*[a-f0-9]+:\s*62 05 f9 3f 5a f5\s+vcvtpd2ph \{rd-sae\},%ymm29,%xmm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 f9 ff 5a f5\s+vcvtpd2ph \{rz-sae\},%ymm29,%xmm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 f9 18 5a f5\s+vcvtpd2ps \{rn-sae\},%ymm29,%xmm30
-\s*[a-f0-9]+:\s*62 01 f9 3f 5a f5\s+vcvtpd2ps \{rd-sae\},%ymm29,%xmm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 f9 ff 5a f5\s+vcvtpd2ps \{rz-sae\},%ymm29,%xmm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 f8 18 79 f5\s+vcvtpd2udq \{rn-sae\},%ymm29,%xmm30
-\s*[a-f0-9]+:\s*62 01 f8 3f 79 f5\s+vcvtpd2udq \{rd-sae\},%ymm29,%xmm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 f8 ff 79 f5\s+vcvtpd2udq \{rz-sae\},%ymm29,%xmm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 f9 18 7b f5\s+vcvtpd2qq \{rn-sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 f9 3f 7b f5\s+vcvtpd2qq \{rd-sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 f9 ff 7b f5\s+vcvtpd2qq \{rz-sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 f9 18 79 f5\s+vcvtpd2uqq \{rn-sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 f9 3f 79 f5\s+vcvtpd2uqq \{rd-sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 f9 ff 79 f5\s+vcvtpd2uqq \{rz-sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 79 18 5b f5\s+vcvtph2dq \{rn-sae\},%xmm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 79 3f 5b f5\s+vcvtph2dq \{rd-sae\},%xmm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 79 ff 5b f5\s+vcvtph2dq \{rz-sae\},%xmm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 79 18 7b f5\s+vcvtph2qq \{rn-sae\},%xmm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 79 3f 7b f5\s+vcvtph2qq \{rd-sae\},%xmm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 79 ff 7b f5\s+vcvtph2qq \{rz-sae\},%xmm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 78 18 79 f5\s+vcvtph2udq \{rn-sae\},%xmm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 78 3f 79 f5\s+vcvtph2udq \{rd-sae\},%xmm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 78 ff 79 f5\s+vcvtph2udq \{rz-sae\},%xmm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 79 18 79 f5\s+vcvtph2uqq \{rn-sae\},%xmm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 79 3f 79 f5\s+vcvtph2uqq \{rd-sae\},%xmm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 79 ff 79 f5\s+vcvtph2uqq \{rz-sae\},%xmm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 78 18 5a f5\s+vcvtph2pd \{sae\},%xmm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 78 1f 5a f5\s+vcvtph2pd \{sae\},%xmm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 78 9f 5a f5\s+vcvtph2pd \{sae\},%xmm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 02 79 18 13 f5\s+vcvtph2ps \{sae\},%xmm29,%ymm30
-\s*[a-f0-9]+:\s*62 02 79 1f 13 f5\s+vcvtph2ps \{sae\},%xmm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 02 79 9f 13 f5\s+vcvtph2ps \{sae\},%xmm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 06 79 18 13 f5\s+vcvtph2psx \{sae\},%xmm29,%ymm30
-\s*[a-f0-9]+:\s*62 06 79 1f 13 f5\s+vcvtph2psx \{sae\},%xmm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 06 79 9f 13 f5\s+vcvtph2psx \{sae\},%xmm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 78 18 7d f5\s+vcvtph2uw \{rn-sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 78 3f 7d f5\s+vcvtph2uw \{rd-sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 78 ff 7d f5\s+vcvtph2uw \{rz-sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 79 18 7d f5\s+vcvtph2w \{rn-sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 79 3f 7d f5\s+vcvtph2w \{rd-sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 79 ff 7d f5\s+vcvtph2w \{rz-sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 79 18 5b f5\s+vcvtps2dq \{rn-sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 79 3f 5b f5\s+vcvtps2dq \{rd-sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 79 ff 5b f5\s+vcvtps2dq \{rz-sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 78 18 79 f5\s+vcvtps2udq \{rn-sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 78 3f 79 f5\s+vcvtps2udq \{rd-sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 78 ff 79 f5\s+vcvtps2udq \{rz-sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 78 18 5a f5\s+vcvtps2pd \{sae\},%xmm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 78 1f 5a f5\s+vcvtps2pd \{sae\},%xmm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 78 9f 5a f5\s+vcvtps2pd \{sae\},%xmm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 79 18 1d f5\s+vcvtps2phx \{rn-sae\},%ymm29,%xmm30
-\s*[a-f0-9]+:\s*62 05 79 3f 1d f5\s+vcvtps2phx \{rd-sae\},%ymm29,%xmm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 79 ff 1d f5\s+vcvtps2phx \{rz-sae\},%ymm29,%xmm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 79 18 7b f5\s+vcvtps2qq \{rn-sae\},%xmm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 79 3f 7b f5\s+vcvtps2qq \{rd-sae\},%xmm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 79 ff 7b f5\s+vcvtps2qq \{rz-sae\},%xmm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 79 18 79 f5\s+vcvtps2uqq \{rn-sae\},%xmm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 79 3f 79 f5\s+vcvtps2uqq \{rd-sae\},%xmm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 79 ff 79 f5\s+vcvtps2uqq \{rz-sae\},%xmm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 fa 18 e6 f5\s+vcvtqq2pd \{rn-sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 fa 3f e6 f5\s+vcvtqq2pd \{rd-sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 fa ff e6 f5\s+vcvtqq2pd \{rz-sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 f8 18 5b f5\s+vcvtqq2ph \{rn-sae\},%ymm29,%xmm30
-\s*[a-f0-9]+:\s*62 05 f8 3f 5b f5\s+vcvtqq2ph \{rd-sae\},%ymm29,%xmm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 f8 ff 5b f5\s+vcvtqq2ph \{rz-sae\},%ymm29,%xmm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 f8 18 5b f5\s+vcvtqq2ps \{rn-sae\},%ymm29,%xmm30
-\s*[a-f0-9]+:\s*62 01 f8 3f 5b f5\s+vcvtqq2ps \{rd-sae\},%ymm29,%xmm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 f8 ff 5b f5\s+vcvtqq2ps \{rz-sae\},%ymm29,%xmm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 fa 18 7a f5\s+vcvtuqq2pd \{rn-sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 fa 3f 7a f5\s+vcvtuqq2pd \{rd-sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 fa ff 7a f5\s+vcvtuqq2pd \{rz-sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 fb 18 7a f5\s+vcvtuqq2ph \{rn-sae\},%ymm29,%xmm30
-\s*[a-f0-9]+:\s*62 05 fb 3f 7a f5\s+vcvtuqq2ph \{rd-sae\},%ymm29,%xmm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 fb ff 7a f5\s+vcvtuqq2ph \{rz-sae\},%ymm29,%xmm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 fb 18 7a f5\s+vcvtuqq2ps \{rn-sae\},%ymm29,%xmm30
-\s*[a-f0-9]+:\s*62 01 fb 3f 7a f5\s+vcvtuqq2ps \{rd-sae\},%ymm29,%xmm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 fb ff 7a f5\s+vcvtuqq2ps \{rz-sae\},%ymm29,%xmm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 f9 18 e6 f5\s+vcvttpd2dq \{sae\},%ymm29,%xmm30
-\s*[a-f0-9]+:\s*62 01 f9 1f e6 f5\s+vcvttpd2dq \{sae\},%ymm29,%xmm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 f9 9f e6 f5\s+vcvttpd2dq \{sae\},%ymm29,%xmm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 f8 18 78 f5\s+vcvttpd2udq \{sae\},%ymm29,%xmm30
-\s*[a-f0-9]+:\s*62 01 f8 1f 78 f5\s+vcvttpd2udq \{sae\},%ymm29,%xmm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 f8 9f 78 f5\s+vcvttpd2udq \{sae\},%ymm29,%xmm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 f9 18 7a f5\s+vcvttpd2qq \{sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 f9 1f 7a f5\s+vcvttpd2qq \{sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 f9 9f 7a f5\s+vcvttpd2qq \{sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 f9 18 78 f5\s+vcvttpd2uqq \{sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 f9 1f 78 f5\s+vcvttpd2uqq \{sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 f9 9f 78 f5\s+vcvttpd2uqq \{sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 7a 18 5b f5\s+vcvttph2dq \{sae\},%xmm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 7a 1f 5b f5\s+vcvttph2dq \{sae\},%xmm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 7a 9f 5b f5\s+vcvttph2dq \{sae\},%xmm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 79 18 7a f5\s+vcvttph2qq \{sae\},%xmm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 79 1f 7a f5\s+vcvttph2qq \{sae\},%xmm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 79 9f 7a f5\s+vcvttph2qq \{sae\},%xmm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 78 18 78 f5\s+vcvttph2udq \{sae\},%xmm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 78 1f 78 f5\s+vcvttph2udq \{sae\},%xmm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 78 9f 78 f5\s+vcvttph2udq \{sae\},%xmm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 79 18 78 f5\s+vcvttph2uqq \{sae\},%xmm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 79 1f 78 f5\s+vcvttph2uqq \{sae\},%xmm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 79 9f 78 f5\s+vcvttph2uqq \{sae\},%xmm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 78 18 7c f5\s+vcvttph2uw \{sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 78 1f 7c f5\s+vcvttph2uw \{sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 78 9f 7c f5\s+vcvttph2uw \{sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 79 18 7c f5\s+vcvttph2w \{sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 79 1f 7c f5\s+vcvttph2w \{sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 79 9f 7c f5\s+vcvttph2w \{sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 7a 18 5b f5\s+vcvttps2dq \{sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 7a 1f 5b f5\s+vcvttps2dq \{sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 7a 9f 5b f5\s+vcvttps2dq \{sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 78 18 78 f5\s+vcvttps2udq \{sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 78 1f 78 f5\s+vcvttps2udq \{sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 78 9f 78 f5\s+vcvttps2udq \{sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 79 18 7a f5\s+vcvttps2qq \{sae\},%xmm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 79 1f 7a f5\s+vcvttps2qq \{sae\},%xmm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 79 9f 7a f5\s+vcvttps2qq \{sae\},%xmm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 01 79 18 78 f5\s+vcvttps2uqq \{sae\},%xmm29,%ymm30
-\s*[a-f0-9]+:\s*62 01 79 1f 78 f5\s+vcvttps2uqq \{sae\},%xmm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 01 79 9f 78 f5\s+vcvttps2uqq \{sae\},%xmm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 7b 18 7d f5\s+vcvtuw2ph \{rn-sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 7b 3f 7d f5\s+vcvtuw2ph \{rd-sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 7b ff 7d f5\s+vcvtuw2ph \{rz-sae\},%ymm29,%ymm30\{%k7\}\{z\}
-\s*[a-f0-9]+:\s*62 05 7a 18 7d f5\s+vcvtw2ph \{rn-sae\},%ymm29,%ymm30
-\s*[a-f0-9]+:\s*62 05 7a 3f 7d f5\s+vcvtw2ph \{rd-sae\},%ymm29,%ymm30\{%k7\}
-\s*[a-f0-9]+:\s*62 05 7a ff 7d f5\s+vcvtw2ph \{rz-sae\},%ymm29,%ymm30\{%k7\}\{z\}
-#pass
diff --git a/gas/testsuite/gas/i386/x86-64-avx10_2-rounding.s b/gas/testsuite/gas/i386/x86-64-avx10_2-rounding.s
deleted file mode 100644
index eee5eab..0000000
--- a/gas/testsuite/gas/i386/x86-64-avx10_2-rounding.s
+++ /dev/null
@@ -1,350 +0,0 @@
-# Check 64bit AVX10.2 instructions
-
- .text
-_start:
- .irp m, pd, ph, ps
- vcmp\m $123, {sae}, %ymm28, %ymm29, %k5
- vcmp\m $123, {sae}, %ymm28, %ymm29, %k5{%k7}
- vgetexp\m {sae}, %ymm29, %ymm30
- vgetexp\m {sae}, %ymm29, %ymm30{%k7}
- vgetexp\m {sae}, %ymm29, %ymm30{%k7}{z}
- vsqrt\m {rn-sae}, %ymm29, %ymm30
- vsqrt\m {rd-sae}, %ymm29, %ymm30{%k7}
- vsqrt\m {rz-sae}, %ymm29, %ymm30{%k7}{z}
- .endr
-
- .irp a, add, div, mul, scalef, sub
- .irp m, pd, ph, ps
- v\a\m {rn-sae}, %ymm28, %ymm29, %ymm30
- v\a\m {rd-sae}, %ymm28, %ymm29, %ymm30{%k7}
- v\a\m {rz-sae}, %ymm28, %ymm29, %ymm30{%k7}{z}
- .endr
- .endr
-
- .irp a, max, min
- .irp m, pd, ph, ps
- v\a\m {sae}, %ymm28, %ymm29, %ymm30
- v\a\m {sae}, %ymm28, %ymm29, %ymm30{%k7}
- v\a\m {sae}, %ymm28, %ymm29, %ymm30{%k7}{z}
- .endr
- .endr
-
- .irp a, getmant, reduce, rndscale
- .irp m, pd, ph, ps
- v\a\m $123, {sae}, %ymm29, %ymm30
- v\a\m $123, {sae}, %ymm29, %ymm30{%k7}
- v\a\m $123, {sae}, %ymm29, %ymm30{%k7}{z}
- .endr
- .endr
-
- .irp a, madd, maddsub, msub, msubadd, nmadd, nmsub
- .irp n, 132, 213, 231
- .irp m, pd, ph, ps
- vf\a\n\m {rn-sae}, %ymm28, %ymm29, %ymm30
- vf\a\n\m {rd-sae}, %ymm28, %ymm29, %ymm30{%k7}
- vf\a\n\m {rz-sae}, %ymm28, %ymm29, %ymm30{%k7}{z}
- .endr
- .endr
- .endr
-
- .irp a, fixupimm, range
- .irp m, pd, ps
- v\a\m $123, {sae}, %ymm28, %ymm29, %ymm30
- v\a\m $123, {sae}, %ymm28, %ymm29, %ymm30{%k7}
- v\a\m $123, {sae}, %ymm28, %ymm29, %ymm30{%k7}{z}
- .endr
- .endr
-
- .irp a, cmadd, cmul, madd, mul
- vf\a\()cph {rn-sae}, %ymm28, %ymm29, %ymm30
- vf\a\()cph {rd-sae}, %ymm28, %ymm29, %ymm30{%k7}
- vf\a\()cph {rz-sae}, %ymm28, %ymm29, %ymm30{%k7}{z}
- .endr
-
- .irp n, dq, udq
- vcvt\n\()2ph {rn-sae}, %ymm29, %xmm30
- vcvt\n\()2ph {rd-sae}, %ymm29, %xmm30{%k7}
- vcvt\n\()2ph {rz-sae}, %ymm29, %xmm30{%k7}{z}
-
- vcvt\n\()2ps {rn-sae}, %ymm29, %ymm30
- vcvt\n\()2ps {rd-sae}, %ymm29, %ymm30{%k7}
- vcvt\n\()2ps {rz-sae}, %ymm29, %ymm30{%k7}{z}
- .endr
-
- .irp m, dq, ph, ps, udq
- vcvtpd2\m {rn-sae}, %ymm29, %xmm30
- vcvtpd2\m {rd-sae}, %ymm29, %xmm30{%k7}
- vcvtpd2\m {rz-sae}, %ymm29, %xmm30{%k7}{z}
- .endr
-
- .irp m, qq, uqq
- vcvtpd2\m {rn-sae}, %ymm29, %ymm30
- vcvtpd2\m {rd-sae}, %ymm29, %ymm30{%k7}
- vcvtpd2\m {rz-sae}, %ymm29, %ymm30{%k7}{z}
- .endr
-
- .irp m, dq, qq, udq, uqq
- vcvtph2\m {rn-sae}, %xmm29, %ymm30
- vcvtph2\m {rd-sae}, %xmm29, %ymm30{%k7}
- vcvtph2\m {rz-sae}, %xmm29, %ymm30{%k7}{z}
- .endr
-
- .irp m, pd, ps, psx
- vcvtph2\m {sae}, %xmm29, %ymm30
- vcvtph2\m {sae}, %xmm29, %ymm30{%k7}
- vcvtph2\m {sae}, %xmm29, %ymm30{%k7}{z}
- .endr
-
- .irp m, uw, w
- vcvtph2\m {rn-sae}, %ymm29, %ymm30
- vcvtph2\m {rd-sae}, %ymm29, %ymm30{%k7}
- vcvtph2\m {rz-sae}, %ymm29, %ymm30{%k7}{z}
- .endr
-
- .irp m, dq, udq
- vcvtps2\m {rn-sae}, %ymm29, %ymm30
- vcvtps2\m {rd-sae}, %ymm29, %ymm30{%k7}
- vcvtps2\m {rz-sae}, %ymm29, %ymm30{%k7}{z}
- .endr
-
- vcvtps2pd {sae}, %xmm29, %ymm30
- vcvtps2pd {sae}, %xmm29, %ymm30{%k7}
- vcvtps2pd {sae}, %xmm29, %ymm30{%k7}{z}
-
- vcvtps2phx {rn-sae}, %ymm29, %xmm30
- vcvtps2phx {rd-sae}, %ymm29, %xmm30{%k7}
- vcvtps2phx {rz-sae}, %ymm29, %xmm30{%k7}{z}
-
- .irp m, qq, uqq
- vcvtps2\m {rn-sae}, %xmm29, %ymm30
- vcvtps2\m {rd-sae}, %xmm29, %ymm30{%k7}
- vcvtps2\m {rz-sae}, %xmm29, %ymm30{%k7}{z}
- .endr
-
- .irp n, qq, uqq
- vcvt\n\()2pd {rn-sae}, %ymm29, %ymm30
- vcvt\n\()2pd {rd-sae}, %ymm29, %ymm30{%k7}
- vcvt\n\()2pd {rz-sae}, %ymm29, %ymm30{%k7}{z}
-
- .irp m, ph, ps
- vcvt\n\()2\m {rn-sae}, %ymm29, %xmm30
- vcvt\n\()2\m {rd-sae}, %ymm29, %xmm30{%k7}
- vcvt\n\()2\m {rz-sae}, %ymm29, %xmm30{%k7}{z}
- .endr
- .endr
-
- .irp m, dq, udq
- vcvttpd2\m {sae}, %ymm29, %xmm30
- vcvttpd2\m {sae}, %ymm29, %xmm30{%k7}
- vcvttpd2\m {sae}, %ymm29, %xmm30{%k7}{z}
- .endr
-
- .irp m, qq, uqq
- vcvttpd2\m {sae}, %ymm29, %ymm30
- vcvttpd2\m {sae}, %ymm29, %ymm30{%k7}
- vcvttpd2\m {sae}, %ymm29, %ymm30{%k7}{z}
- .endr
-
- .irp m, dq, qq, udq, uqq
- vcvttph2\m {sae}, %xmm29, %ymm30
- vcvttph2\m {sae}, %xmm29, %ymm30{%k7}
- vcvttph2\m {sae}, %xmm29, %ymm30{%k7}{z}
- .endr
-
- .irp m, uw, w
- vcvttph2\m {sae}, %ymm29, %ymm30
- vcvttph2\m {sae}, %ymm29, %ymm30{%k7}
- vcvttph2\m {sae}, %ymm29, %ymm30{%k7}{z}
- .endr
-
- .irp m, dq, udq
- vcvttps2\m {sae}, %ymm29, %ymm30
- vcvttps2\m {sae}, %ymm29, %ymm30{%k7}
- vcvttps2\m {sae}, %ymm29, %ymm30{%k7}{z}
- .endr
-
- .irp m, qq, uqq
- vcvttps2\m {sae}, %xmm29, %ymm30
- vcvttps2\m {sae}, %xmm29, %ymm30{%k7}
- vcvttps2\m {sae}, %xmm29, %ymm30{%k7}{z}
- .endr
-
- .irp n, uw, w
- vcvt\n\()2ph {rn-sae}, %ymm29, %ymm30
- vcvt\n\()2ph {rd-sae}, %ymm29, %ymm30{%k7}
- vcvt\n\()2ph {rz-sae}, %ymm29, %ymm30{%k7}{z}
- .endr
-
- .intel_syntax noprefix
- .irp m, pd, ph, ps
- vcmp\m k5, ymm29, ymm28{sae}, 123
- vcmp\m k5{k7}, ymm29, ymm28{sae}, 123
- vgetexp\m ymm30, ymm29{sae}
- vgetexp\m ymm30{k7}, ymm29{sae}
- vgetexp\m ymm30{k7}{z}, ymm29{sae}
- vsqrt\m ymm30, ymm29{rn-sae}
- vsqrt\m ymm30{k7}, ymm29{rd-sae}
- vsqrt\m ymm30{k7}{z}, ymm29{rz-sae}
- .endr
-
- .irp a, add, div, mul, scalef, sub
- .irp m, pd, ph, ps
- v\a\m ymm30, ymm29, ymm28{rn-sae}
- v\a\m ymm30{k7}, ymm29, ymm28{rd-sae}
- v\a\m ymm30{k7}{z}, ymm29, ymm28{rz-sae}
- .endr
- .endr
-
- .irp a, max, min
- .irp m, pd, ph, ps
- v\a\m ymm30, ymm29, ymm28{sae}
- v\a\m ymm30{k7}, ymm29, ymm28{sae}
- v\a\m ymm30{k7}{z}, ymm29, ymm28{sae}
- .endr
- .endr
-
- .irp a, getmant, reduce, rndscale
- .irp m, pd, ph, ps
- v\a\m ymm30, ymm29{sae}, 123
- v\a\m ymm30{k7}, ymm29{sae}, 123
- v\a\m ymm30{k7}{z}, ymm29{sae}, 123
- .endr
- .endr
-
- .irp a, madd, maddsub, msub, msubadd, nmadd, nmsub
- .irp n, 132, 213, 231
- .irp m, pd, ph, ps
- vf\a\n\m ymm30, ymm29, ymm28{rn-sae}
- vf\a\n\m ymm30{k7}, ymm29, ymm28{rd-sae}
- vf\a\n\m ymm30{k7}{z}, ymm29, ymm28{rz-sae}
- .endr
- .endr
- .endr
-
- .irp a, fixupimm, range
- .irp m, pd, ps
- v\a\m ymm30, ymm29, ymm28{sae}, 123
- v\a\m ymm30{k7}, ymm29, ymm28{sae}, 123
- v\a\m ymm30{k7}{z}, ymm29, ymm28{sae}, 123
- .endr
- .endr
-
- .irp a, cmadd, cmul, madd, mul
- vf\a\()cph ymm30, ymm29, ymm28{rn-sae}
- vf\a\()cph ymm30{k7}, ymm29, ymm28{rd-sae}
- vf\a\()cph ymm30{k7}{z}, ymm29, ymm28{rz-sae}
- .endr
-
- .irp n, dq, udq
- vcvt\n\()2ph xmm30, ymm29{rn-sae}
- vcvt\n\()2ph xmm30{k7}, ymm29{rd-sae}
- vcvt\n\()2ph xmm30{k7}{z}, ymm29{rz-sae}
-
- vcvt\n\()2ps ymm30, ymm29{rn-sae}
- vcvt\n\()2ps ymm30{k7}, ymm29{rd-sae}
- vcvt\n\()2ps ymm30{k7}{z}, ymm29{rz-sae}
- .endr
-
- .irp m, dq, ph, ps, udq
- vcvtpd2\m xmm30, ymm29{rn-sae}
- vcvtpd2\m xmm30{k7}, ymm29{rd-sae}
- vcvtpd2\m xmm30{k7}{z}, ymm29{rz-sae}
- .endr
-
- .irp m, qq, uqq
- vcvtpd2\m ymm30, ymm29{rn-sae}
- vcvtpd2\m ymm30{k7}, ymm29{rd-sae}
- vcvtpd2\m ymm30{k7}{z}, ymm29{rz-sae}
- .endr
-
- .irp m, dq, qq, udq, uqq
- vcvtph2\m ymm30, xmm29{rn-sae}
- vcvtph2\m ymm30{k7}, xmm29{rd-sae}
- vcvtph2\m ymm30{k7}{z}, xmm29{rz-sae}
- .endr
-
- .irp m, pd, ps, psx
- vcvtph2\m ymm30, xmm29{sae}
- vcvtph2\m ymm30{k7}, xmm29{sae}
- vcvtph2\m ymm30{k7}{z}, xmm29{sae}
- .endr
-
- .irp m, uw, w
- vcvtph2\m ymm30, ymm29{rn-sae}
- vcvtph2\m ymm30{k7}, ymm29{rd-sae}
- vcvtph2\m ymm30{k7}{z}, ymm29{rz-sae}
- .endr
-
- .irp m, dq, udq
- vcvtps2\m ymm30, ymm29{rn-sae}
- vcvtps2\m ymm30{k7}, ymm29{rd-sae}
- vcvtps2\m ymm30{k7}{z}, ymm29{rz-sae}
- .endr
-
- vcvtps2pd ymm30, xmm29{sae}
- vcvtps2pd ymm30{k7}, xmm29{sae}
- vcvtps2pd ymm30{k7}{z}, xmm29{sae}
-
- vcvtps2phx xmm30, ymm29{rn-sae}
- vcvtps2phx xmm30{k7}, ymm29{rd-sae}
- vcvtps2phx xmm30{k7}{z}, ymm29{rz-sae}
-
- .irp m, qq, uqq
- vcvtps2\m ymm30, xmm29{rn-sae}
- vcvtps2\m ymm30{k7}, xmm29{rd-sae}
- vcvtps2\m ymm30{k7}{z}, xmm29{rz-sae}
- .endr
-
- .irp n, qq, uqq
- vcvt\n\()2pd ymm30, ymm29{rn-sae}
- vcvt\n\()2pd ymm30{k7}, ymm29{rd-sae}
- vcvt\n\()2pd ymm30{k7}{z}, ymm29{rz-sae}
-
- .irp m, ph, ps
- vcvt\n\()2\m xmm30, ymm29{rn-sae}
- vcvt\n\()2\m xmm30{k7}, ymm29{rd-sae}
- vcvt\n\()2\m xmm30{k7}{z}, ymm29{rz-sae}
- .endr
- .endr
-
- .irp m, dq, udq
- vcvttpd2\m xmm30, ymm29{sae}
- vcvttpd2\m xmm30{k7}, ymm29{sae}
- vcvttpd2\m xmm30{k7}{z}, ymm29{sae}
- .endr
-
- .irp m, qq, uqq
- vcvttpd2\m ymm30, ymm29{sae}
- vcvttpd2\m ymm30{k7}, ymm29{sae}
- vcvttpd2\m ymm30{k7}{z}, ymm29{sae}
- .endr
-
- .irp m, dq, qq, udq, uqq
- vcvttph2\m ymm30, xmm29{sae}
- vcvttph2\m ymm30{k7}, xmm29{sae}
- vcvttph2\m ymm30{k7}{z}, xmm29{sae}
- .endr
-
- .irp m, uw, w
- vcvttph2\m ymm30, ymm29{sae}
- vcvttph2\m ymm30{k7}, ymm29{sae}
- vcvttph2\m ymm30{k7}{z}, ymm29{sae}
- .endr
-
- .irp m, dq, udq
- vcvttps2\m ymm30, ymm29{sae}
- vcvttps2\m ymm30{k7}, ymm29{sae}
- vcvttps2\m ymm30{k7}{z}, ymm29{sae}
- .endr
-
- .irp m, qq, uqq
- vcvttps2\m ymm30, xmm29{sae}
- vcvttps2\m ymm30{k7}, xmm29{sae}
- vcvttps2\m ymm30{k7}{z}, xmm29{sae}
- .endr
-
- .irp n, uw, w
- vcvt\n\()2ph ymm30, ymm29{rn-sae}
- vcvt\n\()2ph ymm30{k7}, ymm29{rd-sae}
- vcvt\n\()2ph ymm30{k7}{z}, ymm29{rz-sae}
- .endr
diff --git a/gas/testsuite/gas/i386/x86-64-evex.d b/gas/testsuite/gas/i386/x86-64-evex.d
index 6fb4bf8..68118d5 100644
--- a/gas/testsuite/gas/i386/x86-64-evex.d
+++ b/gas/testsuite/gas/i386/x86-64-evex.d
@@ -20,7 +20,5 @@ Disassembly of section .text:
+[a-f0-9]+: 62 e1 7e 08 2d c0 vcvtss2si %xmm0,%r16d
+[a-f0-9]+: 62 e1 7c 08 c2 c0 00 vcmpeqps %xmm0,%xmm0,\(bad\)
+[a-f0-9]+: 62 f1 7e 38 e6 f5 vcvtdq2pd %ymm5,%zmm6
- +[a-f0-9]+: 62 f1 7a 38 e6 f5 vcvtdq2pd %xmm5,%ymm6
+[a-f0-9]+: 62 f1 7e 38 7a f5 vcvtudq2pd %ymm5,%zmm6
- +[a-f0-9]+: 62 f1 7a 38 7a f5 vcvtudq2pd %xmm5,%ymm6
#pass
diff --git a/gas/testsuite/gas/i386/x86-64-lkgs-inval.l b/gas/testsuite/gas/i386/x86-64-lkgs-inval.l
index 77ee7d7..29da973 100644
--- a/gas/testsuite/gas/i386/x86-64-lkgs-inval.l
+++ b/gas/testsuite/gas/i386/x86-64-lkgs-inval.l
@@ -5,5 +5,5 @@
.*:8: Error: invalid instruction suffix for `lkgs'
.*:11: Error: invalid instruction suffix for `lkgs'
.*:12: Error: invalid instruction suffix for `lkgs'
-.*:13: Error: invalid instruction suffix for `lkgs'
-.*:14: Error: invalid instruction suffix for `lkgs'
+.*:13: Error: .* for `lkgs'
+.*:14: Error: .* for `lkgs'
diff --git a/gas/testsuite/gas/i386/x86-64-nop-1.d b/gas/testsuite/gas/i386/x86-64-nop-1.d
index 5778021..3e52c70 100644
--- a/gas/testsuite/gas/i386/x86-64-nop-1.d
+++ b/gas/testsuite/gas/i386/x86-64-nop-1.d
@@ -21,16 +21,17 @@ Disassembly of section .text:
+[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\)
0+12 <pseudo_20>:
- +[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%rax,%rax,1\)
+ +[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+26 <pseudo_30>:
+ +[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
- +[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%rax,%rax,1\)
0+44 <pseudo_129>:
+[a-f0-9]+: eb 7f jmp c5 <end>
+ +[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
@@ -42,7 +43,6 @@ Disassembly of section .text:
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
- +[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\)
0+c5 <end>:
+[a-f0-9]+: 31 c0 xor %eax,%eax
diff --git a/gas/testsuite/gas/i386/x86-64-nop-5.d b/gas/testsuite/gas/i386/x86-64-nop-5.d
index d5c84c1..b8c0ea7 100644
--- a/gas/testsuite/gas/i386/x86-64-nop-5.d
+++ b/gas/testsuite/gas/i386/x86-64-nop-5.d
@@ -11,9 +11,9 @@ Disassembly of section .text:
0+ <_start>:
+[a-f0-9]+: 31 c0 xor %eax,%eax
+[a-f0-9]+: 85 c0 test %eax,%eax
+ +[a-f0-9]+: 90 nop
+[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\)
- +[a-f0-9]+: 90 nop
+[a-f0-9]+: 31 c0 xor %eax,%eax
+[a-f0-9]+: 31 c0 xor %eax,%eax
diff --git a/gas/testsuite/gas/i386/x86-64-nops-1-core2.d b/gas/testsuite/gas/i386/x86-64-nops-1-core2.d
index 3fe7f3f..5acc63c 100644
--- a/gas/testsuite/gas/i386/x86-64-nops-1-core2.d
+++ b/gas/testsuite/gas/i386/x86-64-nops-1-core2.d
@@ -9,149 +9,149 @@
Disassembly of section .text:
0+ <nop15>:
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
0+10 <nop14>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
0+20 <nop13>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
0+30 <nop12>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
0+40 <nop11>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 66 2e 48 0f 1f 84 00 00 00 00 00 data16 cs nopq (0x)?0\(%rax,%rax,1\)
0+50 <nop10>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 2e 48 0f 1f 84 00 00 00 00 00 cs nopq (0x)?0\(%rax,%rax,1\)
0+60 <nop9>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 48 0f 1f 84 00 00 00 00 00 nopq (0x)?0\(%rax,%rax,1\)
0+70 <nop8>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl (0x)?0\(%rax,%rax,1\)
0+80 <nop7>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl (0x)?0\(%rax\)
0+90 <nop6>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 66 0f 1f 44 00 00 nopw (0x)?0\(%rax,%rax,1\)
0+a0 <nop5>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 0f 1f 44 00 00 nopl (0x)?0\(%rax,%rax,1\)
0+b0 <nop4>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 0f 1f 40 00 nopl (0x)?0\(%rax\)
0+c0 <nop3>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 0f 1f 00 nopl \(%rax\)
0+d0 <nop2>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 66 90 xchg %ax,%ax
#pass
diff --git a/gas/testsuite/gas/i386/x86-64-nops-1-pentium.d b/gas/testsuite/gas/i386/x86-64-nops-1-pentium.d
index a888208..571ec95 100644
--- a/gas/testsuite/gas/i386/x86-64-nops-1-pentium.d
+++ b/gas/testsuite/gas/i386/x86-64-nops-1-pentium.d
@@ -8,155 +8,155 @@
Disassembly of section .text:
0+ <nop15>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 2e 48 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%rsi
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 2e 48 8d 74 26 00 cs lea (0x)?0\(%rsi,%riz,1\),%rsi
+[ ]*[a-f0-9]+: 2e 48 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%rsi
0+10 <nop14>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 2e 48 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%rsi
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 48 8d 74 26 00 lea (0x)?0\(%rsi,%riz,1\),%rsi
+[ ]*[a-f0-9]+: 2e 48 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%rsi
0+20 <nop13>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 2e 48 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%rsi
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 48 8d 76 00 lea (0x)?0\(%rsi\),%rsi
+[ ]*[a-f0-9]+: 2e 48 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%rsi
0+30 <nop12>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 2e 48 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%rsi
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 48 89 f6 mov %rsi,%rsi
+[ ]*[a-f0-9]+: 2e 48 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%rsi
0+40 <nop11>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 2e 48 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%rsi
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 2e 48 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%rsi
0+50 <nop10>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 2e 48 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%rsi
-[ ]*[a-f0-9]+: 90 nop
0+60 <nop9>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 2e 48 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%rsi
0+70 <nop8>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 48 8d b4 26 00 00 00 00 lea (0x)?0\(%rsi,%riz,1\),%rsi
0+80 <nop7>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 48 8d b6 00 00 00 00 lea (0x)?0\(%rsi\),%rsi
0+90 <nop6>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 2e 48 8d 74 26 00 cs lea (0x)?0\(%rsi,%riz,1\),%rsi
0+a0 <nop5>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 48 8d 74 26 00 lea (0x)?0\(%rsi,%riz,1\),%rsi
0+b0 <nop4>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 48 8d 76 00 lea (0x)?0\(%rsi\),%rsi
0+c0 <nop3>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 48 89 f6 mov %rsi,%rsi
0+d0 <nop2>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
#pass
diff --git a/gas/testsuite/gas/i386/x86-64-nops-1.d b/gas/testsuite/gas/i386/x86-64-nops-1.d
index ab99e56..45867a4 100644
--- a/gas/testsuite/gas/i386/x86-64-nops-1.d
+++ b/gas/testsuite/gas/i386/x86-64-nops-1.d
@@ -8,153 +8,153 @@
Disassembly of section .text:
0+ <nop15>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\)
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+10 <nop14>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\)
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+20 <nop13>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+30 <nop12>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
-[ ]*[a-f0-9]+: 90 nop
0+40 <nop11>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+50 <nop10>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0\(%rax,%rax,1\)
0+60 <nop9>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%rax,%rax,1\)
0+70 <nop8>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%rax,%rax,1\)
0+80 <nop7>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%rax\)
0+90 <nop6>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\)
0+a0 <nop5>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\)
0+b0 <nop4>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\)
0+c0 <nop3>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\)
0+d0 <nop2>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
#pass
diff --git a/gas/testsuite/gas/i386/x86-64-nops-2.d b/gas/testsuite/gas/i386/x86-64-nops-2.d
index fa07de7..b184888 100644
--- a/gas/testsuite/gas/i386/x86-64-nops-2.d
+++ b/gas/testsuite/gas/i386/x86-64-nops-2.d
@@ -10,157 +10,157 @@ Disassembly of section .text:
0+ <nop>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+10 <nop15>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\)
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+20 <nop14>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\)
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+30 <nop13>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+40 <nop12>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
-[ ]*[a-f0-9]+: 90 nop
0+50 <nop11>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+60 <nop10>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0\(%rax,%rax,1\)
0+70 <nop9>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%rax,%rax,1\)
0+80 <nop8>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%rax,%rax,1\)
0+90 <nop7>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%rax\)
0+a0 <nop6>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\)
0+b0 <nop5>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\)
0+c0 <nop4>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\)
0+d0 <nop3>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\)
0+e0 <nop2>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
#pass
diff --git a/gas/testsuite/gas/i386/x86-64-nops-3.d b/gas/testsuite/gas/i386/x86-64-nops-3.d
index 74c4d9c..899affb 100644
--- a/gas/testsuite/gas/i386/x86-64-nops-3.d
+++ b/gas/testsuite/gas/i386/x86-64-nops-3.d
@@ -9,11 +9,11 @@
Disassembly of section .text:
0+ <nop>:
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
-[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 89 c3 mov %eax,%ebx
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\)
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
#pass
diff --git a/gas/testsuite/gas/i386/x86-64-nops-4-core2.d b/gas/testsuite/gas/i386/x86-64-nops-4-core2.d
index 8154ca9..eb5cb16 100644
--- a/gas/testsuite/gas/i386/x86-64-nops-4-core2.d
+++ b/gas/testsuite/gas/i386/x86-64-nops-4-core2.d
@@ -9,203 +9,203 @@
Disassembly of section .text:
0+ <nop31>:
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 90 nop
+[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
- +[a-f0-9]+: 90 nop
0+20 <nop30>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
0+40 <nop29>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
0+60 <nop28>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
0+80 <nop27>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
0+a0 <nop26>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 66 2e 48 0f 1f 84 00 00 00 00 00 data16 cs nopq (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
0+c0 <nop25>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 2e 48 0f 1f 84 00 00 00 00 00 cs nopq (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
0+e0 <nop24>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 48 0f 1f 84 00 00 00 00 00 nopq (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
0+100 <nop23>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
0+120 <nop22>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl (0x)?0\(%rax\)
+ +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
0+140 <nop21>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 66 0f 1f 44 00 00 nopw (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
0+160 <nop20>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 0f 1f 44 00 00 nopl (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
0+180 <nop19>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 0f 1f 40 00 nopl (0x)?0\(%rax\)
+ +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
0+1a0 <nop18>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 0f 1f 00 nopl \(%rax\)
+ +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
0+1c0 <nop17>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 66 90 xchg %ax,%ax
+ +[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
0+1e0 <nop16>:
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
- +[a-f0-9]+: 90 nop
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+ +[a-f0-9]+: f8 clc
+[a-f0-9]+: 90 nop
+[a-f0-9]+: 66 66 66 66 66 2e 48 0f 1f 84 00 00 00 00 00 data16 data16 data16 data16 data16 cs nopq (0x)?0\(%rax,%rax,1\)
- +[a-f0-9]+: 90 nop
#pass
diff --git a/gas/testsuite/gas/i386/x86-64-nops-4.d b/gas/testsuite/gas/i386/x86-64-nops-4.d
index 7a922c9..778f9b2 100644
--- a/gas/testsuite/gas/i386/x86-64-nops-4.d
+++ b/gas/testsuite/gas/i386/x86-64-nops-4.d
@@ -9,211 +9,211 @@
Disassembly of section .text:
0+ <nop31>:
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
-[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%rax,%rax,1\)
0+20 <nop30>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
-[ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%rax,%rax,1\)
0+40 <nop29>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%rax\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
-[ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%rax\)
0+60 <nop28>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
-[ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\)
0+80 <nop27>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
-[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\)
0+a0 <nop26>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
-[ ]*[a-f0-9]+: 0f 1f 40 00 nopl 0x0\(%rax\)
0+c0 <nop25>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
-[ ]*[a-f0-9]+: 0f 1f 00 nopl \(%rax\)
0+e0 <nop24>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
-[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
0+100 <nop23>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 90 nop
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
-[ ]*[a-f0-9]+: 90 nop
0+120 <nop22>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+140 <nop21>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+160 <nop20>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 0f 1f 84 00 00 00 00 00 nopw 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+180 <nop19>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+1a0 <nop18>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%rax\)
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+1c0 <nop17>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 66 0f 1f 44 00 00 nopw 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+1e0 <nop16>:
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 90 nop
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
+[ ]*[a-f0-9]+: f8 clc
[ ]*[a-f0-9]+: 0f 1f 44 00 00 nopl 0x0\(%rax,%rax,1\)
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
#pass
diff --git a/gas/testsuite/gas/i386/x86-64-nops-5.d b/gas/testsuite/gas/i386/x86-64-nops-5.d
index 3d18825..290f1d0 100644
--- a/gas/testsuite/gas/i386/x86-64-nops-5.d
+++ b/gas/testsuite/gas/i386/x86-64-nops-5.d
@@ -9,71 +9,71 @@ Disassembly of section .text:
0+ <i386>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d 74 26 00 cs lea (0x)?0\(%rsi,%riz,1\),%esi
+[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%esi
0+10 <i486>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d 74 26 00 cs lea (0x)?0\(%rsi,%riz,1\),%esi
+[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%esi
0+20 <i586>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d 74 26 00 cs lea (0x)?0\(%rsi,%riz,1\),%esi
+[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%esi
0+30 <i686>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d 74 26 00 cs lea (0x)?0\(%rsi,%riz,1\),%esi
+[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%esi
0+40 <pentium4>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+50 <nocona>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+60 <core>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+70 <core2>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+80 <k6>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d 74 26 00 cs lea (0x)?0\(%rsi,%riz,1\),%esi
+[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%esi
0+90 <athlon>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+a0 <k8>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+b0 <generic32>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%esi
[ ]*[a-f0-9]+: 2e 8d 74 26 00 cs lea (0x)?0\(%rsi,%riz,1\),%esi
+[ ]*[a-f0-9]+: 2e 8d b4 26 00 00 00 00 cs lea (0x)?0\(%rsi,%riz,1\),%esi
0+c0 <generic64>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
0+d0 <amdfam10>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
#pass
diff --git a/gas/testsuite/gas/i386/x86-64-nops-6.d b/gas/testsuite/gas/i386/x86-64-nops-6.d
index e962350..94bb966 100644
--- a/gas/testsuite/gas/i386/x86-64-nops-6.d
+++ b/gas/testsuite/gas/i386/x86-64-nops-6.d
@@ -8,6 +8,6 @@ Disassembly of section .text:
0+ <default>:
[ ]*[a-f0-9]+: 0f be f0 movsbl %al,%esi
-[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw (0x)?0\(%rax,%rax,1\)
[ ]*[a-f0-9]+: 66 90 xchg %ax,%ax
+[ ]*[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw (0x)?0\(%rax,%rax,1\)
#pass
diff --git a/gas/testsuite/gas/i386/x86-64-nops-7.d b/gas/testsuite/gas/i386/x86-64-nops-7.d
index 859dfd8..d26c239 100644
--- a/gas/testsuite/gas/i386/x86-64-nops-7.d
+++ b/gas/testsuite/gas/i386/x86-64-nops-7.d
@@ -10,6 +10,7 @@ Disassembly of section .text:
0+ <_start>:
+[a-f0-9]+: 31 c0 xor %eax,%eax
+[a-f0-9]+: e9 f9 01 00 00 jmp 200 <func1>
+ +[a-f0-9]+: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
@@ -55,11 +56,11 @@ Disassembly of section .text:
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
- +[a-f0-9]+: 66 2e 0f 1f 84 00 00 00 00 00 cs nopw 0x0\(%rax,%rax,1\)
0+200 <func1>:
+[a-f0-9]+: 31 db xor %ebx,%ebx
+[a-f0-9]+: e9 f9 00 00 00 jmp 300 <func2>
+ +[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%rax\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
@@ -82,11 +83,11 @@ Disassembly of section .text:
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
- +[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%rax\)
0+300 <func2>:
+[a-f0-9]+: 31 db xor %ebx,%ebx
+[a-f0-9]+: eb 7c jmp 380 <func3>
+ +[a-f0-9]+: 0f 1f 00 nopl \(%rax\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
@@ -98,22 +99,21 @@ Disassembly of section .text:
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
- +[a-f0-9]+: 0f 1f 00 nopl \(%rax\)
0+380 <func3>:
+[a-f0-9]+: 31 c9 xor %ecx,%ecx
+ +[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%rax\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
- +[a-f0-9]+: 0f 1f 80 00 00 00 00 nopl 0x0\(%rax\)
0+3c0 <func4>:
+[a-f0-9]+: 31 d2 xor %edx,%edx
+ +[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
+[a-f0-9]+: 66 66 2e 0f 1f 84 00 00 00 00 00 data16 cs nopw 0x0\(%rax,%rax,1\)
- +[a-f0-9]+: 0f 1f 84 00 00 00 00 00 nopl 0x0\(%rax,%rax,1\)
0+3e0 <func5>:
+[a-f0-9]+: 31 ff xor %edi,%edi
diff --git a/gas/testsuite/gas/i386/x86-64-pseudos.d b/gas/testsuite/gas/i386/x86-64-pseudos.d
index ea5a358..5a43901 100644
--- a/gas/testsuite/gas/i386/x86-64-pseudos.d
+++ b/gas/testsuite/gas/i386/x86-64-pseudos.d
@@ -534,4 +534,36 @@ Disassembly of section .text:
+[a-f0-9]+: 67 41 8a 45 00 mov 0x0\(%r13d\),%al
+[a-f0-9]+: 67 41 8a 85 00 00 00 00 mov 0x0\(%r13d\),%al
+[a-f0-9]+: 40 8a c1 rex mov %cl,%al
+ +[a-f0-9]+: 48 81 03 00 00 00 00 addq \$0x0,\(%rbx\)
+ +[a-f0-9]+: 48 81 03 ff 00 00 00 addq \$0xff,\(%rbx\)
+ +[a-f0-9]+: 81 03 00 00 00 00 addl \$0x0,\(%rbx\)
+ +[a-f0-9]+: 81 03 ff 00 00 00 addl \$0xff,\(%rbx\)
+ +[a-f0-9]+: 66 81 03 00 00 addw \$0x0,\(%rbx\)
+ +[a-f0-9]+: 66 81 03 ff 00 addw \$0xff,\(%rbx\)
+ +[a-f0-9]+: 80 03 00 addb \$0x0,\(%rbx\)
+ +[a-f0-9]+: 80 03 ff addb \$0xff,\(%rbx\)
+ +[a-f0-9]+: 48 81 c3 00 00 00 00 add \$0x0,%rbx
+ +[a-f0-9]+: 48 81 c3 ff 00 00 00 add \$0xff,%rbx
+ +[a-f0-9]+: 81 c3 00 00 00 00 add \$0x0,%ebx
+ +[a-f0-9]+: 81 c3 ff 00 00 00 add \$0xff,%ebx
+ +[a-f0-9]+: 66 81 c3 00 00 add \$0x0,%bx
+ +[a-f0-9]+: 66 81 c3 ff 00 add \$0xff,%bx
+ +[a-f0-9]+: 80 c3 00 add \$0x0,%bl
+ +[a-f0-9]+: 80 c3 ff add \$0xff,%bl
+ +[a-f0-9]+: 48 c7 03 00 00 00 00 movq \$0x0,\(%rbx\)
+ +[a-f0-9]+: 48 c7 03 ff 00 00 00 movq \$0xff,\(%rbx\)
+ +[a-f0-9]+: c7 03 00 00 00 00 movl \$0x0,\(%rbx\)
+ +[a-f0-9]+: c7 03 ff 00 00 00 movl \$0xff,\(%rbx\)
+ +[a-f0-9]+: 66 c7 03 00 00 movw \$0x0,\(%rbx\)
+ +[a-f0-9]+: 66 c7 03 ff 00 movw \$0xff,\(%rbx\)
+ +[a-f0-9]+: c6 03 00 movb \$0x0,\(%rbx\)
+ +[a-f0-9]+: c6 03 ff movb \$0xff,\(%rbx\)
+ +[a-f0-9]+: bb 00 00 00 00 mov \$0x0,%ebx
+ +[a-f0-9]+: bb ff 00 00 00 mov \$0xff,%ebx
+ +[a-f0-9]+: 66 bb 00 00 mov \$0x0,%bx
+ +[a-f0-9]+: 66 bb ff 00 mov \$0xff,%bx
+ +[a-f0-9]+: b3 00 mov \$0x0,%bl
+ +[a-f0-9]+: b3 ff mov \$0xff,%bl
+ +[a-f0-9]+: 48 c1 c3 ff rol \$0xff,%rbx
+ +[a-f0-9]+: c1 c3 ff rol \$0xff,%ebx
#pass
diff --git a/gas/testsuite/gas/i386/x86-64-pseudos.s b/gas/testsuite/gas/i386/x86-64-pseudos.s
index 041f98e..3658f34 100644
--- a/gas/testsuite/gas/i386/x86-64-pseudos.s
+++ b/gas/testsuite/gas/i386/x86-64-pseudos.s
@@ -504,3 +504,37 @@ _start:
{disp32} mov al, BYTE PTR [r13d]
.insn {rex} 0x8a, al, cl
+
+ .att_syntax prefix
+{noimm8s} addq $0,(%rbx)
+{noimm8s} addq $255,(%rbx)
+{noimm8s} addl $0,(%rbx)
+{noimm8s} addl $255,(%rbx)
+{noimm8s} addw $0,(%rbx)
+{noimm8s} addw $255,(%rbx)
+{noimm8s} addb $0,(%rbx)
+{noimm8s} addb $255,(%rbx)
+{noimm8s} add $0,%rbx
+{noimm8s} add $255,%rbx
+{noimm8s} add $0,%ebx
+{noimm8s} add $255,%ebx
+{noimm8s} add $0,%bx
+{noimm8s} add $255,%bx
+{noimm8s} add $0,%bl
+{noimm8s} add $255,%bl
+{noimm8s} movq $0,(%rbx)
+{noimm8s} movq $255,(%rbx)
+{noimm8s} movl $0,(%rbx)
+{noimm8s} movl $255,(%rbx)
+{noimm8s} movw $0,(%rbx)
+{noimm8s} movw $255,(%rbx)
+{noimm8s} movb $0,(%rbx)
+{noimm8s} movb $255,(%rbx)
+{noimm8s} mov $0,%ebx
+{noimm8s} mov $255,%ebx
+{noimm8s} mov $0,%bx
+{noimm8s} mov $255,%bx
+{noimm8s} mov $0,%bl
+{noimm8s} mov $255,%bl
+{noimm8s} rol $255,%rbx
+{noimm8s} rol $255,%ebx
diff --git a/gas/testsuite/gas/i386/x86-64-reg-bad.l b/gas/testsuite/gas/i386/x86-64-reg-bad.l
deleted file mode 100644
index 88184b6..0000000
--- a/gas/testsuite/gas/i386/x86-64-reg-bad.l
+++ /dev/null
@@ -1,21 +0,0 @@
-.*: Assembler messages:
-.*:6: Error: .* mismatch for `div'
-.*:7: Error: .* mismatch for `in'
-.*:8: Error: .* mismatch for `lods'
-.*:9: Error: .* mismatch for `movabs'
-.*:10: Error: .* mismatch for `shl'
-GAS LISTING .*
-
-
-[ ]*[1-9][0-9]*[ ]+\# Check %axl / %cxl aren't permitted as accumulator / shift count
-[ ]*[1-9][0-9]*[ ]+
-[ ]*[1-9][0-9]*[ ]+\.text
-[ ]*[1-9][0-9]*[ ]+reg:
-[ ]*[1-9][0-9]*[ ]+\?* 4080C001[ ]+add \$1, %axl
-[ ]*[1-9][0-9]*[ ]+div %bl, %axl
-[ ]*[1-9][0-9]*[ ]+in %dx, %axl
-[ ]*[1-9][0-9]*[ ]+lods \(%rsi\), %axl
-[ ]*[1-9][0-9]*[ ]+movabs -1, %axl
-[ ]*[1-9][0-9]*[ ]+shl %cxl, %eax
-[ ]*[1-9][0-9]*[ ]+\?* 40F6C001[ ]+test \$1, %axl
-#pass
diff --git a/gas/testsuite/gas/i386/x86-64-reg-bad.s b/gas/testsuite/gas/i386/x86-64-reg-bad.s
deleted file mode 100644
index d7e0c7c..0000000
--- a/gas/testsuite/gas/i386/x86-64-reg-bad.s
+++ /dev/null
@@ -1,11 +0,0 @@
-# Check %axl / %cxl aren't permitted as accumulator / shift count
-
- .text
-reg:
- add $1, %axl
- div %bl, %axl
- in %dx, %axl
- lods (%rsi), %axl
- movabs -1, %axl
- shl %cxl, %eax
- test $1, %axl
diff --git a/gas/testsuite/gas/i386/x86-64-reg-intel.d b/gas/testsuite/gas/i386/x86-64-reg-intel.d
index f6974c8..023aad9 100644
--- a/gas/testsuite/gas/i386/x86-64-reg-intel.d
+++ b/gas/testsuite/gas/i386/x86-64-reg-intel.d
@@ -26,7 +26,7 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 0f 73 f6 02 psllq mm6,0x2
[ ]*[a-f0-9]+: 66 41 0f 73 f2 02 psllq xmm10,0x2
[ ]*[a-f0-9]+: 66 41 0f 73 fa 02 pslldq xmm10,0x2
-[ ]*[a-f0-9]+: 40 80 c0 01[ ]+rex add al,0x1
+[ ]*[a-f0-9]+: 40 04 01[ ]+rex add al,0x1
[ ]*[a-f0-9]+: 40 80 c1 01[ ]+rex add cl,0x1
[ ]*[a-f0-9]+: 40 80 c2 01[ ]+rex add dl,0x1
[ ]*[a-f0-9]+: 40 80 c3 01[ ]+rex add bl,0x1
@@ -34,6 +34,9 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 40 80 c5 01[ ]+add bpl,0x1
[ ]*[a-f0-9]+: 40 80 c6 01[ ]+add sil,0x1
[ ]*[a-f0-9]+: 40 80 c7 01[ ]+add dil,0x1
+[ ]*[a-f0-9]+: 40 e4 00[ ]+rex in al,0x0
+[ ]*[a-f0-9]+: 40 e6 00[ ]+rex out 0x0,al
+[ ]*[a-f0-9]+: 40 d3 e0[ ]+rex shl eax,cl
[ ]*[a-f0-9]+: 0f 71 d6 02 psrlw mm6,0x2
[ ]*[a-f0-9]+: 66 0f 71 d2 02 psrlw xmm2,0x2
[ ]*[a-f0-9]+: 0f 71 e6 02 psraw mm6,0x2
diff --git a/gas/testsuite/gas/i386/x86-64-reg.d b/gas/testsuite/gas/i386/x86-64-reg.d
index ae9c054..e644a46 100644
--- a/gas/testsuite/gas/i386/x86-64-reg.d
+++ b/gas/testsuite/gas/i386/x86-64-reg.d
@@ -25,7 +25,7 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 0f 73 f6 02 psllq \$0x2,%mm6
[ ]*[a-f0-9]+: 66 41 0f 73 f2 02 psllq \$0x2,%xmm10
[ ]*[a-f0-9]+: 66 41 0f 73 fa 02 pslldq \$0x2,%xmm10
-[ ]*[a-f0-9]+: 40 80 c0 01[ ]+rex add \$0x1,%al
+[ ]*[a-f0-9]+: 40 04 01[ ]+rex add \$0x1,%al
[ ]*[a-f0-9]+: 40 80 c1 01[ ]+rex add \$0x1,%cl
[ ]*[a-f0-9]+: 40 80 c2 01[ ]+rex add \$0x1,%dl
[ ]*[a-f0-9]+: 40 80 c3 01[ ]+rex add \$0x1,%bl
@@ -33,6 +33,9 @@ Disassembly of section .text:
[ ]*[a-f0-9]+: 40 80 c5 01[ ]+add \$0x1,%bpl
[ ]*[a-f0-9]+: 40 80 c6 01[ ]+add \$0x1,%sil
[ ]*[a-f0-9]+: 40 80 c7 01[ ]+add \$0x1,%dil
+[ ]*[a-f0-9]+: 40 e4 00[ ]+rex in \$0x0,%al
+[ ]*[a-f0-9]+: 40 e6 00[ ]+rex out %al,\$0x0
+[ ]*[a-f0-9]+: 40 d3 e0[ ]+rex shl %cl,%eax
[ ]*[a-f0-9]+: 0f 71 d6 02 psrlw \$0x2,%mm6
[ ]*[a-f0-9]+: 66 0f 71 d2 02 psrlw \$0x2,%xmm2
[ ]*[a-f0-9]+: 0f 71 e6 02 psraw \$0x2,%mm6
diff --git a/gas/testsuite/gas/i386/x86-64-reg.s b/gas/testsuite/gas/i386/x86-64-reg.s
index 69ac24b..b1e13e4 100644
--- a/gas/testsuite/gas/i386/x86-64-reg.s
+++ b/gas/testsuite/gas/i386/x86-64-reg.s
@@ -30,6 +30,10 @@ pslldq $2, %xmm10
add $1, %sil
add $1, %dil
+ in $0, %axl
+ out %axl, $0
+ shl %cxl, %eax
+
.intel_syntax noprefix
psrlw mm6, 2
psrlw xmm2, 2
diff --git a/gas/testsuite/gas/i386/x86-64.exp b/gas/testsuite/gas/i386/x86-64.exp
index edacbaa..d24e910 100644
--- a/gas/testsuite/gas/i386/x86-64.exp
+++ b/gas/testsuite/gas/i386/x86-64.exp
@@ -156,7 +156,6 @@ run_dump_test "x86-64-simd-suffix"
run_dump_test "x86-64-mem"
run_dump_test "x86-64-mem-intel"
run_dump_test "x86-64-reg"
-run_list_test "x86-64-reg-bad" "-al"
run_dump_test "x86-64-reg-intel"
run_dump_test "x86-64-sib"
run_dump_test "x86-64-sib-intel"
@@ -495,8 +494,6 @@ run_list_test "x86-64-user_msr-inval"
run_dump_test "x86-64-msr_imm"
run_dump_test "x86-64-msr_imm-intel"
run_list_test "x86-64-msr_imm-inval"
-run_dump_test "x86-64-avx10_2-rounding"
-run_dump_test "x86-64-avx10_2-rounding-intel"
run_dump_test "x86-64-avx10_2-evex-promote"
run_dump_test "x86-64-avx10_2-512-media"
run_dump_test "x86-64-avx10_2-512-media-intel"
diff --git a/gas/testsuite/gas/kvx/nop-align.d b/gas/testsuite/gas/kvx/nop-align.d
index 5fbb571..755cf8d 100644
--- a/gas/testsuite/gas/kvx/nop-align.d
+++ b/gas/testsuite/gas/kvx/nop-align.d
@@ -20,9 +20,9 @@ Disassembly of section .text:
[0-9a-f]+ <g\+0xc> nop
[0-9a-f]+ <g\+0x10> nop
-[0-9a-f]+ <g\+0x14> nop
-[0-9a-f]+ <g\+0x18> nop;;
+[0-9a-f]+ <g\+0x14> nop;;
+[0-9a-f]+ <g\+0x18> nop
[0-9a-f]+ <g\+0x1c> nop
[0-9a-f]+ <g\+0x20> nop
[0-9a-f]+ <g\+0x24> nop;;
diff --git a/gas/testsuite/gas/loongarch/div_zero.l b/gas/testsuite/gas/loongarch/div_zero.l
new file mode 100644
index 0000000..b30c665
--- /dev/null
+++ b/gas/testsuite/gas/loongarch/div_zero.l
@@ -0,0 +1,4 @@
+#source: div_zero.s
+.*: Assembler messages:
+.*: Warning: Divide by zero!
+.*: Warning: Divide by zero!
diff --git a/gas/testsuite/gas/loongarch/div_zero.s b/gas/testsuite/gas/loongarch/div_zero.s
new file mode 100644
index 0000000..44a5c26
--- /dev/null
+++ b/gas/testsuite/gas/loongarch/div_zero.s
@@ -0,0 +1,2 @@
+addi.w $a0,$a1,2/0
+addi.d $a0,$a1,4%0
diff --git a/gas/testsuite/gas/loongarch/fix_op.d b/gas/testsuite/gas/loongarch/fix_op.d
index 7125f2e..05e7403 100644
--- a/gas/testsuite/gas/loongarch/fix_op.d
+++ b/gas/testsuite/gas/loongarch/fix_op.d
@@ -132,3 +132,6 @@ Disassembly of section .text:
[ ]+1e8:[ ]+00df04a4 [ ]+bstrpick.d[ ]+[ ]+\$a0, \$a1, 0x1f, 0x1
[ ]+1ec:[ ]+00e000a4 [ ]+bstrpick.d[ ]+[ ]+\$a0, \$a1, 0x20, 0x0
[ ]+1f0:[ ]+00ff00a4 [ ]+bstrpick.d[ ]+[ ]+\$a0, \$a1, 0x3f, 0x0
+[ ]+1f4:[ ]+00006004 [ ]+rdcntvl.w[ ]+[ ]+\$a0
+[ ]+1f8:[ ]+000060a0 [ ]+rdcntid.w[ ]+[ ]+\$a1
+[ ]+1fc:[ ]+00006404 [ ]+rdcntvh.w[ ]+[ ]+\$a0
diff --git a/gas/testsuite/gas/loongarch/fix_op.s b/gas/testsuite/gas/loongarch/fix_op.s
index d0523f9..876913b 100644
--- a/gas/testsuite/gas/loongarch/fix_op.s
+++ b/gas/testsuite/gas/loongarch/fix_op.s
@@ -123,3 +123,8 @@ bstrpick.d $r4,$r5,0,0
bstrpick.d $r4,$r5,31,1
bstrpick.d $r4,$r5,32,0
bstrpick.d $r4,$r5,63,0
+
+# LA32R aliases
+rdcntvl.w $r4
+rdcntid.w $r5
+rdcntvh.w $r4
diff --git a/gas/testsuite/gas/loongarch/insn_alias_32.d b/gas/testsuite/gas/loongarch/insn_alias_32.d
index 753eae7..3aa716f 100644
--- a/gas/testsuite/gas/loongarch/insn_alias_32.d
+++ b/gas/testsuite/gas/loongarch/insn_alias_32.d
@@ -17,3 +17,6 @@ Disassembly of section .text:
18: 60000080 blt \$a0, \$zero, 0 # 18 <L1\+0x18>
1c: 64000080 bge \$a0, \$zero, 0 # 1c <L1\+0x1c>
20: 64000004 bge \$zero, \$a0, 0 # 20 <L1\+0x20>
+ 24: 00006004 rdtimel.w \$a0, \$zero
+ 28: 000060a0 rdtimel.w \$zero, \$a1
+ 2c: 00006406 rdtimeh.w \$a2, \$zero
diff --git a/gas/testsuite/gas/loongarch/insn_alias_32.s b/gas/testsuite/gas/loongarch/insn_alias_32.s
index 8027e32..492e52a 100644
--- a/gas/testsuite/gas/loongarch/insn_alias_32.s
+++ b/gas/testsuite/gas/loongarch/insn_alias_32.s
@@ -8,3 +8,8 @@ L1:
bltz $a0,.L1
bgez $a0,.L1
blez $a0,.L1
+
+ # LA32R aliases
+ rdcntvl.w $a0
+ rdcntid.w $a1
+ rdcntvh.w $a2
diff --git a/gas/testsuite/gas/loongarch/loongarch.exp b/gas/testsuite/gas/loongarch/loongarch.exp
index 87595b9..d2008f4 100644
--- a/gas/testsuite/gas/loongarch/loongarch.exp
+++ b/gas/testsuite/gas/loongarch/loongarch.exp
@@ -36,5 +36,7 @@ if [istarget loongarch*-*-*] {
if [istarget loongarch64-*-*] {
run_list_test "illegal-operand"
run_list_test "pseudo_op_option_fail"
+ run_list_test "negative_right_shift"
+ run_list_test "div_zero"
}
}
diff --git a/gas/testsuite/gas/loongarch/negative_right_shift.d b/gas/testsuite/gas/loongarch/negative_right_shift.d
new file mode 100644
index 0000000..4237710
--- /dev/null
+++ b/gas/testsuite/gas/loongarch/negative_right_shift.d
@@ -0,0 +1,40 @@
+#as:
+#objdump: -d
+#skip: loongarch32-*-*
+#warning_output: negative_right_shift.l
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <directives>:
+ 0: 03400000 nop
+ 4: 00000001 \.word 0x00000001
+ 8: 00000001 \.word 0x00000001
+
+0+c <insns>:
+ c: 02bff9ac addi.w \$t0, \$t1, -2
+ 10: 02fff9ac addi.d \$t0, \$t1, -2
+ 14: 13fff9ac addu16i.d \$t0, \$t1, -2
+ 18: 15ffffcc lu12i.w \$t0, -2
+ 1c: 17ffffcc lu32i.d \$t0, -2
+ 20: 033ff9ac lu52i.d \$t0, \$t1, -2
+ 24: 023ff9ac slti \$t0, \$t1, -2
+ 28: 027ff9ac sltui \$t0, \$t1, -2
+ 2c: 19ffffcc pcaddi \$t0, -2
+ 30: 1dffffcc pcaddu12i \$t0, -2
+ 34: 1fffffcc pcaddu18i \$t0, -2
+ 38: 1bffffcc pcalau12i \$t0, -2
+ 3c: 02bffdac addi.w \$t0, \$t1, -1
+ 40: 02fffdac addi.d \$t0, \$t1, -1
+ 44: 13fffdac addu16i.d \$t0, \$t1, -1
+ 48: 15ffffec lu12i.w \$t0, -1
+ 4c: 17ffffec lu32i.d \$t0, -1
+ 50: 033ffdac lu52i.d \$t0, \$t1, -1
+ 54: 023ffdac slti \$t0, \$t1, -1
+ 58: 027ffdac sltui \$t0, \$t1, -1
+ 5c: 19ffffec pcaddi \$t0, -1
+ 60: 1dffffec pcaddu12i \$t0, -1
+ 64: 1fffffec pcaddu18i \$t0, -1
+ 68: 1bffffec pcalau12i \$t0, -1
diff --git a/gas/testsuite/gas/loongarch/negative_right_shift.l b/gas/testsuite/gas/loongarch/negative_right_shift.l
new file mode 100644
index 0000000..6edb2a5
--- /dev/null
+++ b/gas/testsuite/gas/loongarch/negative_right_shift.l
@@ -0,0 +1,13 @@
+.*: Assembler messages:
+.*: Warning: Right shift of negative numbers may be changed from arithmetic right shift to logical right shift!
+.*: Warning: Right shift of negative numbers may be changed from arithmetic right shift to logical right shift!
+.*: Warning: Right shift of negative numbers may be changed from arithmetic right shift to logical right shift!
+.*: Warning: Right shift of negative numbers may be changed from arithmetic right shift to logical right shift!
+.*: Warning: Right shift of negative numbers may be changed from arithmetic right shift to logical right shift!
+.*: Warning: Right shift of negative numbers may be changed from arithmetic right shift to logical right shift!
+.*: Warning: Right shift of negative numbers may be changed from arithmetic right shift to logical right shift!
+.*: Warning: Right shift of negative numbers may be changed from arithmetic right shift to logical right shift!
+.*: Warning: Right shift of negative numbers may be changed from arithmetic right shift to logical right shift!
+.*: Warning: Right shift of negative numbers may be changed from arithmetic right shift to logical right shift!
+.*: Warning: Right shift of negative numbers may be changed from arithmetic right shift to logical right shift!
+.*: Warning: Right shift of negative numbers may be changed from arithmetic right shift to logical right shift!
diff --git a/gas/testsuite/gas/loongarch/negative_right_shift.s b/gas/testsuite/gas/loongarch/negative_right_shift.s
new file mode 100644
index 0000000..c6a8a1e
--- /dev/null
+++ b/gas/testsuite/gas/loongarch/negative_right_shift.s
@@ -0,0 +1,32 @@
+directives:
+.align -1>>62
+.word -1>>63
+.4byte -1>>63
+
+insns:
+addi.w $t0, $t1, -1<<1
+addi.d $t0, $t1, -1<<1
+addu16i.d $t0, $t1, -1<<1
+lu12i.w $t0, -1<<1
+lu32i.d $t0, -1<<1
+lu52i.d $t0, $t1, -1<<1
+slti $t0, $t1, -1<<1
+sltui $t0, $t1, -1<<1
+pcaddi $t0, -1<<1
+pcaddu12i $t0, -1<<1
+pcaddu18i $t0, -1<<1
+pcalau12i $t0, -1<<1
+
+# warn
+addi.w $t0, $t1, -1>>63
+addi.d $t0, $t1, -1>>63
+addu16i.d $t0, $t1, -1>>63
+lu12i.w $t0, -1>>63
+lu32i.d $t0, -1>>63
+lu52i.d $t0, $t1, -1>>63
+slti $t0, $t1, -1>>63
+sltui $t0, $t1, -1>>63
+pcaddi $t0, -1>>63
+pcaddu12i $t0, -1>>63
+pcaddu18i $t0, -1>>63
+pcalau12i $t0, -1>>63
diff --git a/gas/testsuite/gas/loongarch/relax_align.d b/gas/testsuite/gas/loongarch/relax_align.d
index fc1fd03..a92df37 100644
--- a/gas/testsuite/gas/loongarch/relax_align.d
+++ b/gas/testsuite/gas/loongarch/relax_align.d
@@ -1,6 +1,7 @@
#as:
#objdump: -dr
#skip: loongarch32-*-*
+#warning_output: relax_align.l
.*:[ ]+file format .*
@@ -44,3 +45,8 @@ Disassembly of section .text:
[ ]+68:[ ]+03400000[ ]+nop
[ ]+6c:[ ]+03400000[ ]+nop
[ ]+70:[ ]+4c000020[ ]+ret
+[ ]+74:[ ]+03400000[ ]+nop
+[ ]+74: R_LARCH_ALIGN[ ]+\*ABS\*\+0xc
+[ ]+78:[ ]+03400000[ ]+nop
+[ ]+7c:[ ]+03400000[ ]+nop
+[ ]+80:[ ]+4c000020[ ]+ret
diff --git a/gas/testsuite/gas/loongarch/relax_align.l b/gas/testsuite/gas/loongarch/relax_align.l
new file mode 100644
index 0000000..e33fa86
--- /dev/null
+++ b/gas/testsuite/gas/loongarch/relax_align.l
@@ -0,0 +1,3 @@
+.*Assembler messages:
+.*: Warning: ignoring out of range alignment maximum
+.*: Warning: ignoring out of range alignment maximum
diff --git a/gas/testsuite/gas/loongarch/relax_align.s b/gas/testsuite/gas/loongarch/relax_align.s
index 4f4867f..079f549 100644
--- a/gas/testsuite/gas/loongarch/relax_align.s
+++ b/gas/testsuite/gas/loongarch/relax_align.s
@@ -1,5 +1,4 @@
-# If max < -0x80000000, max becomes a positive number because type conversion
-# (bfd_signed_vma -> unsigned int).
+# Range of max: 0<= max <= 0xffffffff
.text
.L1:
ret
@@ -13,6 +12,9 @@
ret
.align 4, , 12
ret
+ .align 4, , 0xffffffff
+ ret
+# ignore out of range alignment maxumum
.align 4, , -1
ret
.align 4, , -0x80000000
diff --git a/gas/testsuite/gas/mips/fpr-names-eabi32.d b/gas/testsuite/gas/mips/fpr-names-eabi32.d
new file mode 100644
index 0000000..6d9e674
--- /dev/null
+++ b/gas/testsuite/gas/mips/fpr-names-eabi32.d
@@ -0,0 +1,42 @@
+#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric,fpr-names=eabi32
+#name: MIPS FPR disassembly (eabi32)
+#source: fpr-names.s
+
+# Check objdump's handling of -M fpr-names=foo options.
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> 44800000 mtc1 \$0,fv0
+0+0004 <[^>]*> 44800800 mtc1 \$0,fv0f
+0+0008 <[^>]*> 44801000 mtc1 \$0,fv1
+0+000c <[^>]*> 44801800 mtc1 \$0,fv1f
+0+0010 <[^>]*> 44802000 mtc1 \$0,ft0
+0+0014 <[^>]*> 44802800 mtc1 \$0,ft0f
+0+0018 <[^>]*> 44803000 mtc1 \$0,ft1
+0+001c <[^>]*> 44803800 mtc1 \$0,ft1f
+0+0020 <[^>]*> 44804000 mtc1 \$0,ft2
+0+0024 <[^>]*> 44804800 mtc1 \$0,ft2f
+0+0028 <[^>]*> 44805000 mtc1 \$0,ft3
+0+002c <[^>]*> 44805800 mtc1 \$0,ft3f
+0+0030 <[^>]*> 44806000 mtc1 \$0,fa0
+0+0034 <[^>]*> 44806800 mtc1 \$0,fa0f
+0+0038 <[^>]*> 44807000 mtc1 \$0,fa1
+0+003c <[^>]*> 44807800 mtc1 \$0,fa1f
+0+0040 <[^>]*> 44808000 mtc1 \$0,fa2
+0+0044 <[^>]*> 44808800 mtc1 \$0,fa2f
+0+0048 <[^>]*> 44809000 mtc1 \$0,fa3
+0+004c <[^>]*> 44809800 mtc1 \$0,fa3f
+0+0050 <[^>]*> 4480a000 mtc1 \$0,fs0
+0+0054 <[^>]*> 4480a800 mtc1 \$0,fs0f
+0+0058 <[^>]*> 4480b000 mtc1 \$0,fs1
+0+005c <[^>]*> 4480b800 mtc1 \$0,fs1f
+0+0060 <[^>]*> 4480c000 mtc1 \$0,fs2
+0+0064 <[^>]*> 4480c800 mtc1 \$0,fs2f
+0+0068 <[^>]*> 4480d000 mtc1 \$0,fs3
+0+006c <[^>]*> 4480d800 mtc1 \$0,fs3f
+0+0070 <[^>]*> 4480e000 mtc1 \$0,fs4
+0+0074 <[^>]*> 4480e800 mtc1 \$0,fs4f
+0+0078 <[^>]*> 4480f000 mtc1 \$0,fs5
+0+007c <[^>]*> 4480f800 mtc1 \$0,fs5f
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/fpr-names-eabi64.d b/gas/testsuite/gas/mips/fpr-names-eabi64.d
new file mode 100644
index 0000000..343feef
--- /dev/null
+++ b/gas/testsuite/gas/mips/fpr-names-eabi64.d
@@ -0,0 +1,42 @@
+#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric,fpr-names=eabi64
+#name: MIPS FPR disassembly (eabi64)
+#source: fpr-names.s
+
+# Check objdump's handling of -M fpr-names=foo options.
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> 44800000 mtc1 \$0,fv0
+0+0004 <[^>]*> 44800800 mtc1 \$0,fv1
+0+0008 <[^>]*> 44801000 mtc1 \$0,ft0
+0+000c <[^>]*> 44801800 mtc1 \$0,ft1
+0+0010 <[^>]*> 44802000 mtc1 \$0,ft2
+0+0014 <[^>]*> 44802800 mtc1 \$0,ft3
+0+0018 <[^>]*> 44803000 mtc1 \$0,ft4
+0+001c <[^>]*> 44803800 mtc1 \$0,ft5
+0+0020 <[^>]*> 44804000 mtc1 \$0,ft6
+0+0024 <[^>]*> 44804800 mtc1 \$0,ft7
+0+0028 <[^>]*> 44805000 mtc1 \$0,ft8
+0+002c <[^>]*> 44805800 mtc1 \$0,ft9
+0+0030 <[^>]*> 44806000 mtc1 \$0,fa0
+0+0034 <[^>]*> 44806800 mtc1 \$0,fa1
+0+0038 <[^>]*> 44807000 mtc1 \$0,fa2
+0+003c <[^>]*> 44807800 mtc1 \$0,fa3
+0+0040 <[^>]*> 44808000 mtc1 \$0,fa4
+0+0044 <[^>]*> 44808800 mtc1 \$0,fa5
+0+0048 <[^>]*> 44809000 mtc1 \$0,fa6
+0+004c <[^>]*> 44809800 mtc1 \$0,fa7
+0+0050 <[^>]*> 4480a000 mtc1 \$0,fs0
+0+0054 <[^>]*> 4480a800 mtc1 \$0,fs1
+0+0058 <[^>]*> 4480b000 mtc1 \$0,fs2
+0+005c <[^>]*> 4480b800 mtc1 \$0,fs3
+0+0060 <[^>]*> 4480c000 mtc1 \$0,fs4
+0+0064 <[^>]*> 4480c800 mtc1 \$0,fs5
+0+0068 <[^>]*> 4480d000 mtc1 \$0,fs6
+0+006c <[^>]*> 4480d800 mtc1 \$0,fs7
+0+0070 <[^>]*> 4480e000 mtc1 \$0,fs8
+0+0074 <[^>]*> 4480e800 mtc1 \$0,fs9
+0+0078 <[^>]*> 4480f000 mtc1 \$0,fs10
+0+007c <[^>]*> 4480f800 mtc1 \$0,fs11
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/fpr-names-o64.d b/gas/testsuite/gas/mips/fpr-names-o64.d
new file mode 100644
index 0000000..4060285
--- /dev/null
+++ b/gas/testsuite/gas/mips/fpr-names-o64.d
@@ -0,0 +1,42 @@
+#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric,fpr-names=o64
+#name: MIPS FPR disassembly (o64)
+#source: fpr-names.s
+
+# Check objdump's handling of -M fpr-names=foo options.
+
+.*: +file format .*mips.*
+
+Disassembly of section .text:
+0+0000 <[^>]*> 44800000 mtc1 \$0,fv0
+0+0004 <[^>]*> 44800800 mtc1 \$0,fv1
+0+0008 <[^>]*> 44801000 mtc1 \$0,ft0
+0+000c <[^>]*> 44801800 mtc1 \$0,ft1
+0+0010 <[^>]*> 44802000 mtc1 \$0,ft2
+0+0014 <[^>]*> 44802800 mtc1 \$0,ft3
+0+0018 <[^>]*> 44803000 mtc1 \$0,ft4
+0+001c <[^>]*> 44803800 mtc1 \$0,ft5
+0+0020 <[^>]*> 44804000 mtc1 \$0,ft6
+0+0024 <[^>]*> 44804800 mtc1 \$0,ft7
+0+0028 <[^>]*> 44805000 mtc1 \$0,ft8
+0+002c <[^>]*> 44805800 mtc1 \$0,ft9
+0+0030 <[^>]*> 44806000 mtc1 \$0,fa0
+0+0034 <[^>]*> 44806800 mtc1 \$0,fa1
+0+0038 <[^>]*> 44807000 mtc1 \$0,ft10
+0+003c <[^>]*> 44807800 mtc1 \$0,ft11
+0+0040 <[^>]*> 44808000 mtc1 \$0,ft12
+0+0044 <[^>]*> 44808800 mtc1 \$0,ft13
+0+0048 <[^>]*> 44809000 mtc1 \$0,ft14
+0+004c <[^>]*> 44809800 mtc1 \$0,ft15
+0+0050 <[^>]*> 4480a000 mtc1 \$0,fs0
+0+0054 <[^>]*> 4480a800 mtc1 \$0,fs1
+0+0058 <[^>]*> 4480b000 mtc1 \$0,fs2
+0+005c <[^>]*> 4480b800 mtc1 \$0,fs3
+0+0060 <[^>]*> 4480c000 mtc1 \$0,fs4
+0+0064 <[^>]*> 4480c800 mtc1 \$0,fs5
+0+0068 <[^>]*> 4480d000 mtc1 \$0,fs6
+0+006c <[^>]*> 4480d800 mtc1 \$0,fs7
+0+0070 <[^>]*> 4480e000 mtc1 \$0,fs8
+0+0074 <[^>]*> 4480e800 mtc1 \$0,fs9
+0+0078 <[^>]*> 4480f000 mtc1 \$0,fs10
+0+007c <[^>]*> 4480f800 mtc1 \$0,fs11
+ \.\.\.
diff --git a/gas/testsuite/gas/mips/gpr-names-eabi32.d b/gas/testsuite/gas/mips/gpr-names-eabi32.d
new file mode 100644
index 0000000..299dff7
--- /dev/null
+++ b/gas/testsuite/gas/mips/gpr-names-eabi32.d
@@ -0,0 +1,4 @@
+#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=eabi32
+#name: MIPS GPR disassembly (eabi32)
+#source: gpr-names.s
+#dump: gpr-names-64.d
diff --git a/gas/testsuite/gas/mips/gpr-names-eabi64.d b/gas/testsuite/gas/mips/gpr-names-eabi64.d
new file mode 100644
index 0000000..be0a046
--- /dev/null
+++ b/gas/testsuite/gas/mips/gpr-names-eabi64.d
@@ -0,0 +1,4 @@
+#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=eabi64
+#name: MIPS GPR disassembly (eabi64)
+#source: gpr-names.s
+#dump: gpr-names-64.d
diff --git a/gas/testsuite/gas/mips/gpr-names-n32.d b/gas/testsuite/gas/mips/gpr-names-n32.d
index 2a41934..18e41fd 100644
--- a/gas/testsuite/gas/mips/gpr-names-n32.d
+++ b/gas/testsuite/gas/mips/gpr-names-n32.d
@@ -1,42 +1,4 @@
#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=n32
#name: MIPS GPR disassembly (n32)
#source: gpr-names.s
-
-# Check objdump's handling of -M gpr-names=foo options.
-
-.*: +file format .*mips.*
-
-Disassembly of section .text:
-0+0000 <[^>]*> 3c000000 lui zero,0x0
-0+0004 <[^>]*> 3c010000 lui at,0x0
-0+0008 <[^>]*> 3c020000 lui v0,0x0
-0+000c <[^>]*> 3c030000 lui v1,0x0
-0+0010 <[^>]*> 3c040000 lui a0,0x0
-0+0014 <[^>]*> 3c050000 lui a1,0x0
-0+0018 <[^>]*> 3c060000 lui a2,0x0
-0+001c <[^>]*> 3c070000 lui a3,0x0
-0+0020 <[^>]*> 3c080000 lui a4,0x0
-0+0024 <[^>]*> 3c090000 lui a5,0x0
-0+0028 <[^>]*> 3c0a0000 lui a6,0x0
-0+002c <[^>]*> 3c0b0000 lui a7,0x0
-0+0030 <[^>]*> 3c0c0000 lui t0,0x0
-0+0034 <[^>]*> 3c0d0000 lui t1,0x0
-0+0038 <[^>]*> 3c0e0000 lui t2,0x0
-0+003c <[^>]*> 3c0f0000 lui t3,0x0
-0+0040 <[^>]*> 3c100000 lui s0,0x0
-0+0044 <[^>]*> 3c110000 lui s1,0x0
-0+0048 <[^>]*> 3c120000 lui s2,0x0
-0+004c <[^>]*> 3c130000 lui s3,0x0
-0+0050 <[^>]*> 3c140000 lui s4,0x0
-0+0054 <[^>]*> 3c150000 lui s5,0x0
-0+0058 <[^>]*> 3c160000 lui s6,0x0
-0+005c <[^>]*> 3c170000 lui s7,0x0
-0+0060 <[^>]*> 3c180000 lui t8,0x0
-0+0064 <[^>]*> 3c190000 lui t9,0x0
-0+0068 <[^>]*> 3c1a0000 lui k0,0x0
-0+006c <[^>]*> 3c1b0000 lui k1,0x0
-0+0070 <[^>]*> 3c1c0000 lui gp,0x0
-0+0074 <[^>]*> 3c1d0000 lui sp,0x0
-0+0078 <[^>]*> 3c1e0000 lui s8,0x0
-0+007c <[^>]*> 3c1f0000 lui ra,0x0
- \.\.\.
+#dump: gpr-names-64.d
diff --git a/gas/testsuite/gas/mips/gpr-names-o64.d b/gas/testsuite/gas/mips/gpr-names-o64.d
new file mode 100644
index 0000000..f86530e
--- /dev/null
+++ b/gas/testsuite/gas/mips/gpr-names-o64.d
@@ -0,0 +1,4 @@
+#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=o64
+#name: MIPS GPR disassembly (o64)
+#source: gpr-names.s
+#dump: gpr-names-32.d
diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp
index d3877a0..1dace1c 100644
--- a/gas/testsuite/gas/mips/mips.exp
+++ b/gas/testsuite/gas/mips/mips.exp
@@ -124,11 +124,15 @@ proc mips_arch_init {} {
# the entry specified by EXTENDS. (The new architecture is considered
# to extend the capabilities provided by that architecture.)
#
-# If DEFAULT_FOR_TARGETS is specified, it is a list of targets for which
-# this architecture is the default architecture. If "istarget" returns
-# true for any of the targets in the list, a "default" entry will be
-# added to the architecture array which indicates that ARCH is the default
-# architecture.
+# If DEFAULT_FOR_TARGETS is specified, it is a list of targets to match
+# against for the purpose of setting the default architecture. Entries
+# are examined in turn with any preceding "!" stripped until either all
+# have been processed or "istarget" returns true for a match. In the
+# case of a match a "default" entry will be added to the architecture
+# array which indicates that ARCH is the default architecture unless
+# the match was for a target preceded by "!". This lets an early match
+# against a more specific entry preceded by "!" prevent from matching a
+# more general entry placed later in the list.
proc mips_arch_create {arch gprsize extends props as_flags objdump_flags
{default_for_targets {}}} {
global mips_arches
@@ -154,6 +158,10 @@ proc mips_arch_create {arch gprsize extends props as_flags objdump_flags
# Set as default if appropriate.
foreach target $default_for_targets {
+ if { [string match {!*} $target]
+ && [istarget [string range $target 1 end]] } {
+ break
+ }
if { [istarget $target] } {
if { [info exists mips_arches(default)] } {
error "mips_arch_create: default arch already exists"
@@ -473,7 +481,8 @@ mips_arch_create mips32r5 32 mips32r3 { fpisa3 fpisa4 fpisa5 ror } \
mips_arch_create mips32r6 32 mips32r5 { fpisa3 fpisa4 fpisa5 ror } \
{ -march=mips32r6 -mtune=mips32r6 --defsym r6=} \
{ -mmips:isa32r6 } \
- { mipsisa32r6-*-* mipsisa32r6el-*-* mips*-img-* }
+ { mipsisa32r6-*-* mipsisa32r6el-*-*
+ !mips64*-img-* mips*-img-* }
mips_arch_create mips64 64 mips5 { mips32 } \
{ -march=mips64 -mtune=mips64 } { -mmips:isa64 } \
{ mipsisa64-*-* mipsisa64el-*-* }
@@ -492,7 +501,7 @@ mips_arch_create mips64r5 64 mips64r3 { mips32r5 ror } \
mips_arch_create mips64r6 64 mips64r5 { mips32r6 ror } \
{ -march=mips64r6 -mtune=mips64r6 --defsym r6=} \
{ -mmips:isa64r6 } \
- { mipsisa64r6-*-* mipsisa64r6el-*-* }
+ { mipsisa64r6-*-* mipsisa64r6el-*-* mips64*-img-* }
mips_arch_create mips16-32 32 {} {} \
{ -march=mips1 -mips16 } { -mmips:3000 }
mips_arch_create mips16-64 64 mips16-32 {} \
@@ -1329,13 +1338,19 @@ if { [istarget mips*-*-vxworks*] } {
# register names.
run_dump_test "gpr-names-numeric"
run_dump_test "gpr-names-32"
+ run_dump_test "gpr-names-o64"
run_dump_test "gpr-names-n32"
run_dump_test "gpr-names-64"
+ run_dump_test "gpr-names-eabi32"
+ run_dump_test "gpr-names-eabi64"
run_dump_test "fpr-names-numeric"
run_dump_test "fpr-names-32"
+ run_dump_test "fpr-names-o64"
run_dump_test "fpr-names-n32"
run_dump_test "fpr-names-64"
+ run_dump_test "fpr-names-eabi32"
+ run_dump_test "fpr-names-eabi64"
run_dump_test "cp0-names-numeric"
run_dump_test "cp0-names-r3000"
@@ -1523,6 +1538,8 @@ if { [istarget mips*-*-vxworks*] } {
run_dump_test "mips16-sprel-swap"
run_dump_test "mips16-sdrasp"
run_dump_test "mips16-insn-length-noargs"
+ run_dump_test_arches "mips16-insn-length-bad" \
+ [mips_arch_list_matching mips16-32]
run_dump_test "mips16-branch-unextended-1"
run_dump_test "mips16-branch-unextended-2"
diff --git a/gas/testsuite/gas/mips/mips16-insn-length-bad.d b/gas/testsuite/gas/mips/mips16-insn-length-bad.d
new file mode 100644
index 0000000..9e2d3bc
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips16-insn-length-bad.d
@@ -0,0 +1,3 @@
+#as: -32
+#name: MIPS16 bad instruction size override
+#error_output: mips16-insn-length-bad.l
diff --git a/gas/testsuite/gas/mips/mips16-insn-length-bad.l b/gas/testsuite/gas/mips/mips16-insn-length-bad.l
new file mode 100644
index 0000000..b955ea7
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips16-insn-length-bad.l
@@ -0,0 +1,11 @@
+.*: Assembler messages:
+.*:3: Error: unrecognized opcode `break\.'
+.*:4: Error: unrecognized opcode `entry\.'
+.*:5: Error: unrecognized opcode `addiu\. \$2,0x7fff'
+.*:6: Error: unrecognized opcode `addiu\. \$3,\$2,0'
+.*:7: Error: unrecognized opcode `exit\.ex'
+.*:8: Error: unrecognized opcode `exit\.tx'
+.*:9: Error: unrecognized opcode `nop\.ey'
+.*:10: Error: unrecognized opcode `nop\.ty'
+.*:11: Error: unrecognized opcode `li\.ez \$2,0'
+.*:12: Error: unrecognized opcode `li\.tz \$2,0'
diff --git a/gas/testsuite/gas/mips/mips16-insn-length-bad.s b/gas/testsuite/gas/mips/mips16-insn-length-bad.s
new file mode 100644
index 0000000..edff61a
--- /dev/null
+++ b/gas/testsuite/gas/mips/mips16-insn-length-bad.s
@@ -0,0 +1,16 @@
+ .set mips16
+foo:
+ break.
+ entry.
+ addiu. $2, 0x7fff
+ addiu. $3, $2, 0
+ exit.ex
+ exit.tx
+ nop.ey
+ nop.ty
+ li.ez $2, 0
+ li.tz $2, 0
+
+# Force some (non-delay-slot) zero bytes, to make 'objdump' print ...
+ .align 4, 0
+ .space 16
diff --git a/gas/testsuite/gas/msp430/bad.l b/gas/testsuite/gas/msp430/bad.l
index 7b68583..3ea1b7b 100644
--- a/gas/testsuite/gas/msp430/bad.l
+++ b/gas/testsuite/gas/msp430/bad.l
@@ -6,13 +6,16 @@
[^:]*:10: Warning: no size modifier after period, .w assumed
[^:]*:10: Warning: a NOP might be needed here, before this interrupt state change
[^:]*:11: Error: instruction bis.a does not exist
-[^:]*:16: Warning: a NOP might also be needed here, after the instruction that changed interrupt state
-[^:]*:16: Warning: a NOP might be needed here, before an interrupt enable instruction
-[^:]*:25: Warning: a NOP might be needed here, after an interrupt disable instruction
-[^:]*:26: Warning: a NOP might be needed here, after an interrupt enable instruction
-[^:]*:29: Warning: a NOP might be needed here, after an interrupt disable instruction
-[^:]*:31: Warning: a NOP might be needed here, after an interrupt disable instruction
-[^:]*:32: Warning: a NOP might be needed here, after an interrupt disable instruction
-[^:]*:33: Warning: a NOP might be needed here, after an interrupt disable instruction
-[^:]*:34: Warning: a NOP might be needed here, after an interrupt enable instruction
+[^:]*:14: Warning: a NOP might also be needed here, after the instruction that changed interrupt state
+[^:]*:14: Error: expected value of first argument of adda to fit into 20-bits
+[^:]*:15: Error: expected value of first argument of adda to fit into 20-bits
+[^:]*:22: Error: expected value of first argument of adda to fit into 20-bits
+[^:]*:27: Warning: a NOP might be needed here, before an interrupt enable instruction
+[^:]*:36: Warning: a NOP might be needed here, after an interrupt disable instruction
+[^:]*:37: Warning: a NOP might be needed here, after an interrupt enable instruction
+[^:]*:40: Warning: a NOP might be needed here, after an interrupt disable instruction
+[^:]*:42: Warning: a NOP might be needed here, after an interrupt disable instruction
+[^:]*:43: Warning: a NOP might be needed here, after an interrupt disable instruction
+[^:]*:44: Warning: a NOP might be needed here, after an interrupt disable instruction
+[^:]*:45: Warning: a NOP might be needed here, after an interrupt enable instruction
[^:]*: Warning: a NOP might be needed after the interrupt state change at the end of the file
diff --git a/gas/testsuite/gas/msp430/bad.s b/gas/testsuite/gas/msp430/bad.s
index ae2db2f..8649031 100644
--- a/gas/testsuite/gas/msp430/bad.s
+++ b/gas/testsuite/gas/msp430/bad.s
@@ -10,6 +10,17 @@
mov. r1, r2
bis.a #8, r2
+ ;; Make sure that the range checking gets #imm20 correct.
+ adda #-524289, r12
+ adda #0x180000, r10
+ ;; An immediate of #524288 will not trigger an error because
+ ;; positive values up to 1048575 are allowed. This is because
+ ;; assembler programmers often specify bit patterns as immediate
+ ;; values in hex knowing that they will fit, despite the fact
+ ;; that those same values, when viewed as integers, are out of range.
+ ;; eg: adda 0xfffff, r1
+ adda #1048576, r11
+
;;; FIXME: Add more tests of assembler error detection here.
;; A NOP is needed *before* an EINT instruction.
@@ -17,7 +28,7 @@
nop
;; And *after* a DINT instruction.
dint
-
+
;; Changing interrupt states in two successive instructions
;; might cause an interrupt to be missed. The assembler
;; should warn about this, if the -mz command line option
@@ -35,3 +46,4 @@
;; We will also get a warning if the last instruction in the file
;; changes the interrupt state, since this file could be linked
;; with another that starts with an interrupt change.
+
diff --git a/gas/testsuite/gas/msp430/msp430x.d b/gas/testsuite/gas/msp430/msp430x.d
index ecaef8f..fe4c634 100644
--- a/gas/testsuite/gas/msp430/msp430x.d
+++ b/gas/testsuite/gas/msp430/msp430x.d
@@ -230,3 +230,7 @@ Disassembly of section .text:
0+0406 <[^>]*> 84 18 44 11 rpt r4 \{ rrax.a r4 ;
0+040a <[^>]*> 44 18 45 55 rpt #5 \{ rlax.b r5 ;
0+040e <[^>]*> 05 18 46 66 rpt #6 \{ rlcx.a r6 ;
+0+0412 <[^>]*> ac 08 00 00 adda #524288,r12 ;0x80000
+0+0416 <[^>]*> ab 07 ff ff adda #524287,r11 ;0x7ffff
+0+041a <[^>]*> ac 08 00 00 adda #524288,r12 ;0x80000
+0+041e <[^>]*> ab 07 ff ff adda #524287,r11 ;0x7ffff
diff --git a/gas/testsuite/gas/msp430/msp430x.s b/gas/testsuite/gas/msp430/msp430x.s
index 8fef882..e6ae903 100644
--- a/gas/testsuite/gas/msp430/msp430x.s
+++ b/gas/testsuite/gas/msp430/msp430x.s
@@ -281,3 +281,9 @@ foo:
rpt r4 { rrax.a r4
rpt #5 { rlax.b r5
rpt #6 { rlcx.a r6
+
+ ;; Make sure that the range checking gets #imm20 correct.
+ adda #-524288, r12
+ adda #524287, r11
+ adda #-0x80000, r12
+ adda #0x7ffff, r11
diff --git a/gas/testsuite/gas/msp430/opcode.d b/gas/testsuite/gas/msp430/opcode.d
index 9212d89..04d1081 100644
--- a/gas/testsuite/gas/msp430/opcode.d
+++ b/gas/testsuite/gas/msp430/opcode.d
@@ -43,3 +43,4 @@ Disassembly of section .text:
0+062 <[^>]*> 3f 40 f0 00 mov #240, r15 ;#0x00f0
0+066 <[^>]*> 30 40 00 00 br #0x0000 ;
0+06a <[^>]*> 92 52 00 02 72 01 add &0x0200,&0x0172 ;0x0200
+
diff --git a/gas/testsuite/gas/msp430/opcode.s b/gas/testsuite/gas/msp430/opcode.s
index 4924a60..fc29b8c 100644
--- a/gas/testsuite/gas/msp430/opcode.s
+++ b/gas/testsuite/gas/msp430/opcode.s
@@ -55,3 +55,5 @@ main:
;; This next instruction triggered a bug which
;; was fixed by a patch to msp430-dis.c on Jan 2, 2004
add &0x200, &0x172
+
+
diff --git a/gas/testsuite/gas/ppc/future.d b/gas/testsuite/gas/ppc/future.d
index 76a30a5..5c008b5 100644
--- a/gas/testsuite/gas/ppc/future.d
+++ b/gas/testsuite/gas/ppc/future.d
@@ -57,4 +57,39 @@ Disassembly of section \.text:
.*: (d0 1e 22 f0|f0 22 1e d0) xxgfmul128gcm vs1,vs2,vs3
.*: (d6 0f e0 f3|f3 e0 0f d6) xxgfmul128xts vs31,vs32,vs33
.*: (d6 0f e0 f3|f3 e0 0f d6) xxgfmul128xts vs31,vs32,vs33
+.*: (06 00 00 00|00 00 00 06) paddis r12,r9,15
+.*: (3d 89 00 0f|0f 00 89 3d)
+.*: (06 00 00 00|00 00 00 06) paddis r12,r9,15
+.*: (3d 89 00 0f|0f 00 89 3d)
+.*: (06 00 ff ff|ff ff 00 06) paddis r12,r9,-32769
+.*: (3d 89 7f ff|ff 7f 89 3d)
+.*: (06 00 ff ff|ff ff 00 06) paddis r12,r9,-32769
+.*: (3d 89 7f ff|ff 7f 89 3d)
+.*: (06 10 00 00|00 00 10 06) paddis r9,0,25,1 # e4
+.*: (3d 20 00 19|19 00 20 3d)
+.*: (06 00 7f ff|ff 7f 00 06) plis r24,2147483647
+.*: (3f 00 ff ff|ff ff 00 3f)
+.*: (06 00 7f ff|ff 7f 00 06) plis r24,2147483647
+.*: (3f 00 ff ff|ff ff 00 3f)
+.*: (60 00 00 00|00 00 00 60) nop
+.*: (06 00 7f ff|ff 7f 00 06) plis r24,2147483647
+.*: (3f 00 ff ff|ff ff 00 3f)
+.*: (06 00 80 00|00 80 00 06) paddis r30,r10,-2147483648
+.*: (3f ca 00 00|00 00 ca 3f)
+.*: (06 00 80 00|00 80 00 06) paddis r30,r10,-2147483648
+.*: (3f ca 00 00|00 00 ca 3f)
+.*: (06 00 80 00|00 80 00 06) paddis r30,r10,-2147483648
+.*: (3f ca 00 00|00 00 ca 3f)
+.*: (60 00 00 00|00 00 00 60) nop
+.*: (06 00 7f ff|ff 7f 00 06) paddis r30,r10,2147483647
+.*: (3f ca ff ff|ff ff ca 3f)
+.*: (06 00 7f ff|ff 7f 00 06) paddis r30,r10,2147483647
+.*: (3f ca ff ff|ff ff ca 3f)
+.*: (06 00 7f ff|ff 7f 00 06) paddis r30,r10,2147483647
+.*: (3f ca ff ff|ff ff ca 3f)
+.*: (60 00 00 00|00 00 00 60) nop
+.*: (06 10 7f ff|ff 7f 10 06) paddis r15,0,2147483647,1 # 140
+.* (3d e0 ff ff|ff ff e0 3d)
+.*: (06 10 7f ff|ff 7f 10 06) paddis r15,0,2147483647,1 # 148
+.* (3d e0 ff ff|ff ff e0 3d)
#pass
diff --git a/gas/testsuite/gas/ppc/future.s b/gas/testsuite/gas/ppc/future.s
index fec99e3..55867de 100644
--- a/gas/testsuite/gas/ppc/future.s
+++ b/gas/testsuite/gas/ppc/future.s
@@ -49,3 +49,21 @@ _start:
xxgfmul128gcm 1, 2, 3
xxgfmul128 31, 32, 33, 1
xxgfmul128xts 31, 32, 33
+ paddis 12, 9, 15, 0
+ paddis 12, 9, 15
+ paddis 12, 9, ~(1<<15), 0
+ paddis 12, 9, ~(1<<15)
+ paddis 9, 0, 25, 1
+ paddis 24, 0, 2147483647, 0
+ paddis 24, 0, 2147483647
+ plis 24, 2147483647
+ paddis 30, 10, -2147483648, 0
+ paddis 30, 10, -2147483648
+ psubis 30, 10, 2147483648, 0
+ nop
+ paddis 30, 10, 2147483647, 0
+ paddis 30, 10, 2147483647
+ psubis 30, 10, -2147483647, 0
+ paddis 15, 0, 2147483647, 1
+ psubis 15, 0, -2147483647, 1
+
diff --git a/gas/testsuite/gas/riscv/attribute-15.d b/gas/testsuite/gas/riscv/attribute-15.d
new file mode 100644
index 0000000..929631a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/attribute-15.d
@@ -0,0 +1,8 @@
+#as: -march-attr -mpriv-spec=1.13
+#readelf: -A
+#source: attribute-11.s
+Attribute Section: riscv
+File Attributes
+ Tag_RISCV_arch: [a-zA-Z0-9_\"].*
+ Tag_RISCV_priv_spec: 1
+ Tag_RISCV_priv_spec_minor: 13
diff --git a/gas/testsuite/gas/riscv/attribute-16.d b/gas/testsuite/gas/riscv/attribute-16.d
new file mode 100644
index 0000000..928d8d7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/attribute-16.d
@@ -0,0 +1,6 @@
+#as: -march-attr -mpriv-spec=1.13
+#readelf: -A
+#source: empty.s
+Attribute Section: riscv
+File Attributes
+ Tag_RISCV_arch: [a-zA-Z0-9_\"].*
diff --git a/gas/testsuite/gas/riscv/attribute-17.d b/gas/testsuite/gas/riscv/attribute-17.d
new file mode 100644
index 0000000..8e87e8e
--- /dev/null
+++ b/gas/testsuite/gas/riscv/attribute-17.d
@@ -0,0 +1,6 @@
+#as: -march=rva20u64 -misa-spec=20191213
+#readelf: -A
+#source: empty.s
+Attribute Section: riscv
+File Attributes
+ Tag_RISCV_arch: "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicsr2p0_zmmul1p0_za128rs1p0_zaamo1p0_zalrsc1p0"
diff --git a/gas/testsuite/gas/riscv/attribute-18.d b/gas/testsuite/gas/riscv/attribute-18.d
new file mode 100644
index 0000000..2bec0df
--- /dev/null
+++ b/gas/testsuite/gas/riscv/attribute-18.d
@@ -0,0 +1,6 @@
+#as: -march=rvi20u32_d -misa-spec=20191213
+#readelf: -A
+#source: empty.s
+Attribute Section: riscv
+File Attributes
+ Tag_RISCV_arch: "rv32i2p1_f2p2_d2p2_zicsr2p0"
diff --git a/gas/testsuite/gas/riscv/attribute-19.d b/gas/testsuite/gas/riscv/attribute-19.d
new file mode 100644
index 0000000..1cd15d5
--- /dev/null
+++ b/gas/testsuite/gas/riscv/attribute-19.d
@@ -0,0 +1,6 @@
+#as: -march=rva23u64 -misa-spec=20191213
+#readelf: -A
+#source: empty.s
+Attribute Section: riscv
+File Attributes
+ Tag_RISCV_arch: "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_zmmul1p0_za64rs1p0_zaamo1p0_zalrsc1p0_zawrs1p0_zfa1p0_zfhmin1p0_zca1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0_zvbb1p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvfhmin1p0_zvkb1p0_zvkt1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0"
diff --git a/gas/testsuite/gas/riscv/attribute-20.d b/gas/testsuite/gas/riscv/attribute-20.d
new file mode 100644
index 0000000..e8fb767
--- /dev/null
+++ b/gas/testsuite/gas/riscv/attribute-20.d
@@ -0,0 +1,6 @@
+#as: -march=rvb23u64 -misa-spec=20191213
+#readelf: -A
+#source: empty.s
+Attribute Section: riscv
+File Attributes
+ Tag_RISCV_arch: "rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_zmmul1p0_za64rs1p0_zaamo1p0_zalrsc1p0_zawrs1p0_zfa1p0_zfhmin1p0_zca1p0_zcb1p0_zcmop1p0_zba1p0_zbb1p0_zbs1p0_zkt1p0"
diff --git a/gas/testsuite/gas/riscv/bfloat16-be.d b/gas/testsuite/gas/riscv/bfloat16-be.d
new file mode 100644
index 0000000..21408d0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/bfloat16-be.d
@@ -0,0 +1,10 @@
+# source: bfloat16.s
+# objdump: -sj .data
+# as: -mbig-endian
+
+.*:[ ]+file format .*
+
+Contents of section \.data:
+ 0000 41403dfc 000042f7 8000c2f7 7fff7f80.*
+ 0010 ff807f7f ff7f0080 80800001 8001007f.*
+ 0020 807f3f80 bf804000 c000ffc1 ff81.*
diff --git a/gas/testsuite/gas/riscv/bfloat16-le.d b/gas/testsuite/gas/riscv/bfloat16-le.d
new file mode 100644
index 0000000..2043a9c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/bfloat16-le.d
@@ -0,0 +1,10 @@
+# source: bfloat16.s
+# objdump: -sj .data
+# as: -mlittle-endian
+
+.*:[ ]+file format .*
+
+Contents of section \.data:
+ 0000 4041fc3d 0000f742 0080f7c2 ff7f807f.*
+ 0010 80ff7f7f 7fff8000 80800100 01807f00.*
+ 0020 7f80803f 80bf0040 00c0c1ff 81ff.*
diff --git a/gas/testsuite/gas/riscv/bfloat16.s b/gas/testsuite/gas/riscv/bfloat16.s
new file mode 100644
index 0000000..ed92856
--- /dev/null
+++ b/gas/testsuite/gas/riscv/bfloat16.s
@@ -0,0 +1,21 @@
+ .data
+ .bfloat16 12.0
+ .bfloat16 0.123
+ .bfloat16 +0.0
+ .bfloat16 123.4
+ .bfloat16 -0.0
+ .bfloat16 -123.4
+ .bfloat16 NaN
+ .bfloat16 Inf
+ .bfloat16 -Inf
+ .bfloat16 3.390e+38
+ .bfloat16 -3.390e+38
+ .bfloat16 1.175e-38
+ .bfloat16 -1.175e-38
+ .bfloat16 9.194e-41
+ .bfloat16 -9.194e-41
+ .bfloat16 1.167e-38
+ .bfloat16 -1.167e-38
+ .bfloat16 1.0, -1, 2.0, -2
+ .bfloat16 0b:ffc1
+ .bfloat16 0B:ff81
diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.d b/gas/testsuite/gas/riscv/csr-version-1p10.d
index 0729795..f05b3b5 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p10.d
+++ b/gas/testsuite/gas/riscv/csr-version-1p10.d
@@ -175,6 +175,8 @@ Disassembly of section .text:
[ ]+[0-9a-f]+:[ ]+30159073[ ]+csrw[ ]+misa,a1
[ ]+[0-9a-f]+:[ ]+30202573[ ]+csrr[ ]+a0,medeleg
[ ]+[0-9a-f]+:[ ]+30259073[ ]+csrw[ ]+medeleg,a1
+[ ]+[0-9a-f]+:[ ]+31202573[ ]+csrr[ ]+a0,0x312
+[ ]+[0-9a-f]+:[ ]+31259073[ ]+csrw[ ]+0x312,a1
[ ]+[0-9a-f]+:[ ]+30302573[ ]+csrr[ ]+a0,mideleg
[ ]+[0-9a-f]+:[ ]+30359073[ ]+csrw[ ]+mideleg,a1
[ ]+[0-9a-f]+:[ ]+30402573[ ]+csrr[ ]+a0,mie
@@ -555,6 +557,8 @@ Disassembly of section .text:
[ ]+[0-9a-f]+:[ ]+60059073[ ]+csrw[ ]+hstatus,a1
[ ]+[0-9a-f]+:[ ]+60202573[ ]+csrr[ ]+a0,hedeleg
[ ]+[0-9a-f]+:[ ]+60259073[ ]+csrw[ ]+hedeleg,a1
+[ ]+[0-9a-f]+:[ ]+61202573[ ]+csrr[ ]+a0,0x612
+[ ]+[0-9a-f]+:[ ]+61259073[ ]+csrw[ ]+0x612,a1
[ ]+[0-9a-f]+:[ ]+60302573[ ]+csrr[ ]+a0,hideleg
[ ]+[0-9a-f]+:[ ]+60359073[ ]+csrw[ ]+hideleg,a1
[ ]+[0-9a-f]+:[ ]+60402573[ ]+csrr[ ]+a0,hie
@@ -735,6 +739,8 @@ Disassembly of section .text:
[ ]+[0-9a-f]+:[ ]+21459073[ ]+csrw[ ]+vsieh,a1
[ ]+[0-9a-f]+:[ ]+25402573[ ]+csrr[ ]+a0,vsiph
[ ]+[0-9a-f]+:[ ]+25459073[ ]+csrw[ ]+vsiph,a1
+[ ]+[0-9a-f]+:[ ]+12002573[ ]+csrr[ ]+a0,scountinhibit
+[ ]+[0-9a-f]+:[ ]+12059073[ ]+csrw[ ]+scountinhibit,a1
[ ]+[0-9a-f]+:[ ]+01102573[ ]+csrr[ ]+a0,ssp
[ ]+[0-9a-f]+:[ ]+01159073[ ]+csrw[ ]+ssp,a1
[ ]+[0-9a-f]+:[ ]+15002573[ ]+csrr[ ]+a0,siselect
@@ -933,3 +939,5 @@ Disassembly of section .text:
[ ]+[0-9a-f]+:[ ]+c2259073[ ]+csrw[ ]+vlenb,a1
[ ]+[0-9a-f]+:[ ]+01702573[ ]+csrr[ ]+a0,jvt
[ ]+[0-9a-f]+:[ ]+01759073[ ]+csrw[ ]+jvt,a1
+[ ]+[0-9a-f]+:[ ]+18102573[ ]+csrr[ ]+a0,srmcfg
+[ ]+[0-9a-f]+:[ ]+18159073[ ]+csrw[ ]+srmcfg,a1
diff --git a/gas/testsuite/gas/riscv/csr-version-1p10.l b/gas/testsuite/gas/riscv/csr-version-1p10.l
index 2427ba9..4b6f573 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p10.l
+++ b/gas/testsuite/gas/riscv/csr-version-1p10.l
@@ -273,6 +273,14 @@
.*Info: macro .*
.*Warning: read-only CSR is written `csrw mconfigptr,a1'
.*Info: macro .*
+.*Warning: invalid CSR `medelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh' for the privileged spec `1.10'
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh' for the privileged spec `1.10'
+.*Info: macro .*
.*Warning: invalid CSR `mstatush', needs rv32i extension
.*Info: macro .*
.*Warning: invalid CSR `mstatush' for the privileged spec `1.10'
@@ -721,6 +729,14 @@
.*Info: macro .*
.*Warning: invalid CSR `hedeleg', needs `h' extension
.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs `h' extension
+.*Info: macro .*
.*Warning: invalid CSR `hideleg', needs `h' extension
.*Info: macro .*
.*Warning: invalid CSR `hideleg', needs `h' extension
@@ -1285,6 +1301,10 @@
.*Info: macro .*
.*Warning: invalid CSR `vsiph', needs `ssaia' extension
.*Info: macro .*
+.*Warning: invalid CSR `scountinhibit', needs `ssccfg' extension
+.*Info: macro .*
+.*Warning: invalid CSR `scountinhibit', needs `ssccfg' extension
+.*Info: macro .*
.*Warning: invalid CSR `ssp', needs `zicfiss' extension
.*Info: macro .*
.*Warning: invalid CSR `ssp', needs `zicfiss' extension
@@ -1717,3 +1737,7 @@
.*Info: macro .*
.*Warning: invalid CSR `jvt', needs `zcmt' extension
.*Info: macro .*
+.*Warning: invalid CSR `srmcfg', needs `ssqosid' extension
+.*Info: macro .*
+.*Warning: invalid CSR `srmcfg', needs `ssqosid' extension
+.*Info: macro .*
diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.d b/gas/testsuite/gas/riscv/csr-version-1p11.d
index 70cafb8..f2f8af9 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p11.d
+++ b/gas/testsuite/gas/riscv/csr-version-1p11.d
@@ -175,6 +175,8 @@ Disassembly of section .text:
[ ]+[0-9a-f]+:[ ]+30159073[ ]+csrw[ ]+misa,a1
[ ]+[0-9a-f]+:[ ]+30202573[ ]+csrr[ ]+a0,medeleg
[ ]+[0-9a-f]+:[ ]+30259073[ ]+csrw[ ]+medeleg,a1
+[ ]+[0-9a-f]+:[ ]+31202573[ ]+csrr[ ]+a0,0x312
+[ ]+[0-9a-f]+:[ ]+31259073[ ]+csrw[ ]+0x312,a1
[ ]+[0-9a-f]+:[ ]+30302573[ ]+csrr[ ]+a0,mideleg
[ ]+[0-9a-f]+:[ ]+30359073[ ]+csrw[ ]+mideleg,a1
[ ]+[0-9a-f]+:[ ]+30402573[ ]+csrr[ ]+a0,mie
@@ -555,6 +557,8 @@ Disassembly of section .text:
[ ]+[0-9a-f]+:[ ]+60059073[ ]+csrw[ ]+hstatus,a1
[ ]+[0-9a-f]+:[ ]+60202573[ ]+csrr[ ]+a0,hedeleg
[ ]+[0-9a-f]+:[ ]+60259073[ ]+csrw[ ]+hedeleg,a1
+[ ]+[0-9a-f]+:[ ]+61202573[ ]+csrr[ ]+a0,0x612
+[ ]+[0-9a-f]+:[ ]+61259073[ ]+csrw[ ]+0x612,a1
[ ]+[0-9a-f]+:[ ]+60302573[ ]+csrr[ ]+a0,hideleg
[ ]+[0-9a-f]+:[ ]+60359073[ ]+csrw[ ]+hideleg,a1
[ ]+[0-9a-f]+:[ ]+60402573[ ]+csrr[ ]+a0,hie
@@ -735,6 +739,8 @@ Disassembly of section .text:
[ ]+[0-9a-f]+:[ ]+21459073[ ]+csrw[ ]+vsieh,a1
[ ]+[0-9a-f]+:[ ]+25402573[ ]+csrr[ ]+a0,vsiph
[ ]+[0-9a-f]+:[ ]+25459073[ ]+csrw[ ]+vsiph,a1
+[ ]+[0-9a-f]+:[ ]+12002573[ ]+csrr[ ]+a0,scountinhibit
+[ ]+[0-9a-f]+:[ ]+12059073[ ]+csrw[ ]+scountinhibit,a1
[ ]+[0-9a-f]+:[ ]+01102573[ ]+csrr[ ]+a0,ssp
[ ]+[0-9a-f]+:[ ]+01159073[ ]+csrw[ ]+ssp,a1
[ ]+[0-9a-f]+:[ ]+15002573[ ]+csrr[ ]+a0,siselect
@@ -933,3 +939,5 @@ Disassembly of section .text:
[ ]+[0-9a-f]+:[ ]+c2259073[ ]+csrw[ ]+vlenb,a1
[ ]+[0-9a-f]+:[ ]+01702573[ ]+csrr[ ]+a0,jvt
[ ]+[0-9a-f]+:[ ]+01759073[ ]+csrw[ ]+jvt,a1
+[ ]+[0-9a-f]+:[ ]+18102573[ ]+csrr[ ]+a0,srmcfg
+[ ]+[0-9a-f]+:[ ]+18159073[ ]+csrw[ ]+srmcfg,a1
diff --git a/gas/testsuite/gas/riscv/csr-version-1p11.l b/gas/testsuite/gas/riscv/csr-version-1p11.l
index aeec089..eb2322b 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p11.l
+++ b/gas/testsuite/gas/riscv/csr-version-1p11.l
@@ -273,6 +273,14 @@
.*Info: macro .*
.*Warning: read-only CSR is written `csrw mconfigptr,a1'
.*Info: macro .*
+.*Warning: invalid CSR `medelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh' for the privileged spec `1.11'
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh' for the privileged spec `1.11'
+.*Info: macro .*
.*Warning: invalid CSR `mstatush', needs rv32i extension
.*Info: macro .*
.*Warning: invalid CSR `mstatush' for the privileged spec `1.11'
@@ -717,6 +725,14 @@
.*Info: macro .*
.*Warning: invalid CSR `hedeleg', needs `h' extension
.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs `h' extension
+.*Info: macro .*
.*Warning: invalid CSR `hideleg', needs `h' extension
.*Info: macro .*
.*Warning: invalid CSR `hideleg', needs `h' extension
@@ -1281,6 +1297,10 @@
.*Info: macro .*
.*Warning: invalid CSR `vsiph', needs `ssaia' extension
.*Info: macro .*
+.*Warning: invalid CSR `scountinhibit', needs `ssccfg' extension
+.*Info: macro .*
+.*Warning: invalid CSR `scountinhibit', needs `ssccfg' extension
+.*Info: macro .*
.*Warning: invalid CSR `ssp', needs `zicfiss' extension
.*Info: macro .*
.*Warning: invalid CSR `ssp', needs `zicfiss' extension
@@ -1713,3 +1733,7 @@
.*Info: macro .*
.*Warning: invalid CSR `jvt', needs `zcmt' extension
.*Info: macro .*
+.*Warning: invalid CSR `srmcfg', needs `ssqosid' extension
+.*Info: macro .*
+.*Warning: invalid CSR `srmcfg', needs `ssqosid' extension
+.*Info: macro .*
diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.d b/gas/testsuite/gas/riscv/csr-version-1p12.d
index daf79f4..d9d3529 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p12.d
+++ b/gas/testsuite/gas/riscv/csr-version-1p12.d
@@ -175,6 +175,8 @@ Disassembly of section .text:
[ ]+[0-9a-f]+:[ ]+30159073[ ]+csrw[ ]+misa,a1
[ ]+[0-9a-f]+:[ ]+30202573[ ]+csrr[ ]+a0,medeleg
[ ]+[0-9a-f]+:[ ]+30259073[ ]+csrw[ ]+medeleg,a1
+[ ]+[0-9a-f]+:[ ]+31202573[ ]+csrr[ ]+a0,0x312
+[ ]+[0-9a-f]+:[ ]+31259073[ ]+csrw[ ]+0x312,a1
[ ]+[0-9a-f]+:[ ]+30302573[ ]+csrr[ ]+a0,mideleg
[ ]+[0-9a-f]+:[ ]+30359073[ ]+csrw[ ]+mideleg,a1
[ ]+[0-9a-f]+:[ ]+30402573[ ]+csrr[ ]+a0,mie
@@ -555,6 +557,8 @@ Disassembly of section .text:
[ ]+[0-9a-f]+:[ ]+60059073[ ]+csrw[ ]+hstatus,a1
[ ]+[0-9a-f]+:[ ]+60202573[ ]+csrr[ ]+a0,hedeleg
[ ]+[0-9a-f]+:[ ]+60259073[ ]+csrw[ ]+hedeleg,a1
+[ ]+[0-9a-f]+:[ ]+61202573[ ]+csrr[ ]+a0,0x612
+[ ]+[0-9a-f]+:[ ]+61259073[ ]+csrw[ ]+0x612,a1
[ ]+[0-9a-f]+:[ ]+60302573[ ]+csrr[ ]+a0,hideleg
[ ]+[0-9a-f]+:[ ]+60359073[ ]+csrw[ ]+hideleg,a1
[ ]+[0-9a-f]+:[ ]+60402573[ ]+csrr[ ]+a0,hie
@@ -735,6 +739,8 @@ Disassembly of section .text:
[ ]+[0-9a-f]+:[ ]+21459073[ ]+csrw[ ]+vsieh,a1
[ ]+[0-9a-f]+:[ ]+25402573[ ]+csrr[ ]+a0,vsiph
[ ]+[0-9a-f]+:[ ]+25459073[ ]+csrw[ ]+vsiph,a1
+[ ]+[0-9a-f]+:[ ]+12002573[ ]+csrr[ ]+a0,scountinhibit
+[ ]+[0-9a-f]+:[ ]+12059073[ ]+csrw[ ]+scountinhibit,a1
[ ]+[0-9a-f]+:[ ]+01102573[ ]+csrr[ ]+a0,ssp
[ ]+[0-9a-f]+:[ ]+01159073[ ]+csrw[ ]+ssp,a1
[ ]+[0-9a-f]+:[ ]+15002573[ ]+csrr[ ]+a0,siselect
@@ -933,3 +939,5 @@ Disassembly of section .text:
[ ]+[0-9a-f]+:[ ]+c2259073[ ]+csrw[ ]+vlenb,a1
[ ]+[0-9a-f]+:[ ]+01702573[ ]+csrr[ ]+a0,jvt
[ ]+[0-9a-f]+:[ ]+01759073[ ]+csrw[ ]+jvt,a1
+[ ]+[0-9a-f]+:[ ]+18102573[ ]+csrr[ ]+a0,srmcfg
+[ ]+[0-9a-f]+:[ ]+18159073[ ]+csrw[ ]+srmcfg,a1
diff --git a/gas/testsuite/gas/riscv/csr-version-1p12.l b/gas/testsuite/gas/riscv/csr-version-1p12.l
index 3710da9..13c63e1 100644
--- a/gas/testsuite/gas/riscv/csr-version-1p12.l
+++ b/gas/testsuite/gas/riscv/csr-version-1p12.l
@@ -265,6 +265,14 @@
.*Info: macro .*
.*Warning: read-only CSR is written `csrw mconfigptr,a1'
.*Info: macro .*
+.*Warning: invalid CSR `medelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh' for the privileged spec `1.12'
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh' for the privileged spec `1.12'
+.*Info: macro .*
.*Warning: invalid CSR `mstatush', needs rv32i extension
.*Info: macro .*
.*Warning: invalid CSR `mstatush', needs rv32i extension
@@ -441,6 +449,14 @@
.*Info: macro .*
.*Warning: invalid CSR `hedeleg', needs `h' extension
.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs `h' extension
+.*Info: macro .*
.*Warning: invalid CSR `hideleg', needs `h' extension
.*Info: macro .*
.*Warning: invalid CSR `hideleg', needs `h' extension
@@ -1005,6 +1021,10 @@
.*Info: macro .*
.*Warning: invalid CSR `vsiph', needs `ssaia' extension
.*Info: macro .*
+.*Warning: invalid CSR `scountinhibit', needs `ssccfg' extension
+.*Info: macro .*
+.*Warning: invalid CSR `scountinhibit', needs `ssccfg' extension
+.*Info: macro .*
.*Warning: invalid CSR `ssp', needs `zicfiss' extension
.*Info: macro .*
.*Warning: invalid CSR `ssp', needs `zicfiss' extension
@@ -1477,3 +1497,7 @@
.*Info: macro .*
.*Warning: invalid CSR `jvt', needs `zcmt' extension
.*Info: macro .*
+.*Warning: invalid CSR `srmcfg', needs `ssqosid' extension
+.*Info: macro .*
+.*Warning: invalid CSR `srmcfg', needs `ssqosid' extension
+.*Info: macro .*
diff --git a/gas/testsuite/gas/riscv/csr-version-1p13.d b/gas/testsuite/gas/riscv/csr-version-1p13.d
new file mode 100644
index 0000000..5d3cef8
--- /dev/null
+++ b/gas/testsuite/gas/riscv/csr-version-1p13.d
@@ -0,0 +1,943 @@
+#as: -march=rv64i_zicsr -mcsr-check -mpriv-spec=1.13
+#source: csr.s
+#warning_output: csr-version-1p13.l
+#objdump: -dr -Mpriv-spec=1.13
+
+.*:[ ]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <.text>:
+[ ]+[0-9a-f]+:[ ]+c0002573[ ]+rdcycle[ ]+a0
+[ ]+[0-9a-f]+:[ ]+c0059073[ ]+csrw[ ]+cycle,a1
+[ ]+[0-9a-f]+:[ ]+c0102573[ ]+rdtime[ ]+a0
+[ ]+[0-9a-f]+:[ ]+c0159073[ ]+csrw[ ]+time,a1
+[ ]+[0-9a-f]+:[ ]+c0202573[ ]+rdinstret[ ]+a0
+[ ]+[0-9a-f]+:[ ]+c0259073[ ]+csrw[ ]+instret,a1
+[ ]+[0-9a-f]+:[ ]+c0302573[ ]+csrr[ ]+a0,hpmcounter3
+[ ]+[0-9a-f]+:[ ]+c0359073[ ]+csrw[ ]+hpmcounter3,a1
+[ ]+[0-9a-f]+:[ ]+c0402573[ ]+csrr[ ]+a0,hpmcounter4
+[ ]+[0-9a-f]+:[ ]+c0459073[ ]+csrw[ ]+hpmcounter4,a1
+[ ]+[0-9a-f]+:[ ]+c0502573[ ]+csrr[ ]+a0,hpmcounter5
+[ ]+[0-9a-f]+:[ ]+c0559073[ ]+csrw[ ]+hpmcounter5,a1
+[ ]+[0-9a-f]+:[ ]+c0602573[ ]+csrr[ ]+a0,hpmcounter6
+[ ]+[0-9a-f]+:[ ]+c0659073[ ]+csrw[ ]+hpmcounter6,a1
+[ ]+[0-9a-f]+:[ ]+c0702573[ ]+csrr[ ]+a0,hpmcounter7
+[ ]+[0-9a-f]+:[ ]+c0759073[ ]+csrw[ ]+hpmcounter7,a1
+[ ]+[0-9a-f]+:[ ]+c0802573[ ]+csrr[ ]+a0,hpmcounter8
+[ ]+[0-9a-f]+:[ ]+c0859073[ ]+csrw[ ]+hpmcounter8,a1
+[ ]+[0-9a-f]+:[ ]+c0902573[ ]+csrr[ ]+a0,hpmcounter9
+[ ]+[0-9a-f]+:[ ]+c0959073[ ]+csrw[ ]+hpmcounter9,a1
+[ ]+[0-9a-f]+:[ ]+c0a02573[ ]+csrr[ ]+a0,hpmcounter10
+[ ]+[0-9a-f]+:[ ]+c0a59073[ ]+csrw[ ]+hpmcounter10,a1
+[ ]+[0-9a-f]+:[ ]+c0b02573[ ]+csrr[ ]+a0,hpmcounter11
+[ ]+[0-9a-f]+:[ ]+c0b59073[ ]+csrw[ ]+hpmcounter11,a1
+[ ]+[0-9a-f]+:[ ]+c0c02573[ ]+csrr[ ]+a0,hpmcounter12
+[ ]+[0-9a-f]+:[ ]+c0c59073[ ]+csrw[ ]+hpmcounter12,a1
+[ ]+[0-9a-f]+:[ ]+c0d02573[ ]+csrr[ ]+a0,hpmcounter13
+[ ]+[0-9a-f]+:[ ]+c0d59073[ ]+csrw[ ]+hpmcounter13,a1
+[ ]+[0-9a-f]+:[ ]+c0e02573[ ]+csrr[ ]+a0,hpmcounter14
+[ ]+[0-9a-f]+:[ ]+c0e59073[ ]+csrw[ ]+hpmcounter14,a1
+[ ]+[0-9a-f]+:[ ]+c0f02573[ ]+csrr[ ]+a0,hpmcounter15
+[ ]+[0-9a-f]+:[ ]+c0f59073[ ]+csrw[ ]+hpmcounter15,a1
+[ ]+[0-9a-f]+:[ ]+c1002573[ ]+csrr[ ]+a0,hpmcounter16
+[ ]+[0-9a-f]+:[ ]+c1059073[ ]+csrw[ ]+hpmcounter16,a1
+[ ]+[0-9a-f]+:[ ]+c1102573[ ]+csrr[ ]+a0,hpmcounter17
+[ ]+[0-9a-f]+:[ ]+c1159073[ ]+csrw[ ]+hpmcounter17,a1
+[ ]+[0-9a-f]+:[ ]+c1202573[ ]+csrr[ ]+a0,hpmcounter18
+[ ]+[0-9a-f]+:[ ]+c1259073[ ]+csrw[ ]+hpmcounter18,a1
+[ ]+[0-9a-f]+:[ ]+c1302573[ ]+csrr[ ]+a0,hpmcounter19
+[ ]+[0-9a-f]+:[ ]+c1359073[ ]+csrw[ ]+hpmcounter19,a1
+[ ]+[0-9a-f]+:[ ]+c1402573[ ]+csrr[ ]+a0,hpmcounter20
+[ ]+[0-9a-f]+:[ ]+c1459073[ ]+csrw[ ]+hpmcounter20,a1
+[ ]+[0-9a-f]+:[ ]+c1502573[ ]+csrr[ ]+a0,hpmcounter21
+[ ]+[0-9a-f]+:[ ]+c1559073[ ]+csrw[ ]+hpmcounter21,a1
+[ ]+[0-9a-f]+:[ ]+c1602573[ ]+csrr[ ]+a0,hpmcounter22
+[ ]+[0-9a-f]+:[ ]+c1659073[ ]+csrw[ ]+hpmcounter22,a1
+[ ]+[0-9a-f]+:[ ]+c1702573[ ]+csrr[ ]+a0,hpmcounter23
+[ ]+[0-9a-f]+:[ ]+c1759073[ ]+csrw[ ]+hpmcounter23,a1
+[ ]+[0-9a-f]+:[ ]+c1802573[ ]+csrr[ ]+a0,hpmcounter24
+[ ]+[0-9a-f]+:[ ]+c1859073[ ]+csrw[ ]+hpmcounter24,a1
+[ ]+[0-9a-f]+:[ ]+c1902573[ ]+csrr[ ]+a0,hpmcounter25
+[ ]+[0-9a-f]+:[ ]+c1959073[ ]+csrw[ ]+hpmcounter25,a1
+[ ]+[0-9a-f]+:[ ]+c1a02573[ ]+csrr[ ]+a0,hpmcounter26
+[ ]+[0-9a-f]+:[ ]+c1a59073[ ]+csrw[ ]+hpmcounter26,a1
+[ ]+[0-9a-f]+:[ ]+c1b02573[ ]+csrr[ ]+a0,hpmcounter27
+[ ]+[0-9a-f]+:[ ]+c1b59073[ ]+csrw[ ]+hpmcounter27,a1
+[ ]+[0-9a-f]+:[ ]+c1c02573[ ]+csrr[ ]+a0,hpmcounter28
+[ ]+[0-9a-f]+:[ ]+c1c59073[ ]+csrw[ ]+hpmcounter28,a1
+[ ]+[0-9a-f]+:[ ]+c1d02573[ ]+csrr[ ]+a0,hpmcounter29
+[ ]+[0-9a-f]+:[ ]+c1d59073[ ]+csrw[ ]+hpmcounter29,a1
+[ ]+[0-9a-f]+:[ ]+c1e02573[ ]+csrr[ ]+a0,hpmcounter30
+[ ]+[0-9a-f]+:[ ]+c1e59073[ ]+csrw[ ]+hpmcounter30,a1
+[ ]+[0-9a-f]+:[ ]+c1f02573[ ]+csrr[ ]+a0,hpmcounter31
+[ ]+[0-9a-f]+:[ ]+c1f59073[ ]+csrw[ ]+hpmcounter31,a1
+[ ]+[0-9a-f]+:[ ]+c8002573[ ]+csrr[ ]+a0,cycleh
+[ ]+[0-9a-f]+:[ ]+c8059073[ ]+csrw[ ]+cycleh,a1
+[ ]+[0-9a-f]+:[ ]+c8102573[ ]+csrr[ ]+a0,timeh
+[ ]+[0-9a-f]+:[ ]+c8159073[ ]+csrw[ ]+timeh,a1
+[ ]+[0-9a-f]+:[ ]+c8202573[ ]+csrr[ ]+a0,instreth
+[ ]+[0-9a-f]+:[ ]+c8259073[ ]+csrw[ ]+instreth,a1
+[ ]+[0-9a-f]+:[ ]+c8302573[ ]+csrr[ ]+a0,hpmcounter3h
+[ ]+[0-9a-f]+:[ ]+c8359073[ ]+csrw[ ]+hpmcounter3h,a1
+[ ]+[0-9a-f]+:[ ]+c8402573[ ]+csrr[ ]+a0,hpmcounter4h
+[ ]+[0-9a-f]+:[ ]+c8459073[ ]+csrw[ ]+hpmcounter4h,a1
+[ ]+[0-9a-f]+:[ ]+c8502573[ ]+csrr[ ]+a0,hpmcounter5h
+[ ]+[0-9a-f]+:[ ]+c8559073[ ]+csrw[ ]+hpmcounter5h,a1
+[ ]+[0-9a-f]+:[ ]+c8602573[ ]+csrr[ ]+a0,hpmcounter6h
+[ ]+[0-9a-f]+:[ ]+c8659073[ ]+csrw[ ]+hpmcounter6h,a1
+[ ]+[0-9a-f]+:[ ]+c8702573[ ]+csrr[ ]+a0,hpmcounter7h
+[ ]+[0-9a-f]+:[ ]+c8759073[ ]+csrw[ ]+hpmcounter7h,a1
+[ ]+[0-9a-f]+:[ ]+c8802573[ ]+csrr[ ]+a0,hpmcounter8h
+[ ]+[0-9a-f]+:[ ]+c8859073[ ]+csrw[ ]+hpmcounter8h,a1
+[ ]+[0-9a-f]+:[ ]+c8902573[ ]+csrr[ ]+a0,hpmcounter9h
+[ ]+[0-9a-f]+:[ ]+c8959073[ ]+csrw[ ]+hpmcounter9h,a1
+[ ]+[0-9a-f]+:[ ]+c8a02573[ ]+csrr[ ]+a0,hpmcounter10h
+[ ]+[0-9a-f]+:[ ]+c8a59073[ ]+csrw[ ]+hpmcounter10h,a1
+[ ]+[0-9a-f]+:[ ]+c8b02573[ ]+csrr[ ]+a0,hpmcounter11h
+[ ]+[0-9a-f]+:[ ]+c8b59073[ ]+csrw[ ]+hpmcounter11h,a1
+[ ]+[0-9a-f]+:[ ]+c8c02573[ ]+csrr[ ]+a0,hpmcounter12h
+[ ]+[0-9a-f]+:[ ]+c8c59073[ ]+csrw[ ]+hpmcounter12h,a1
+[ ]+[0-9a-f]+:[ ]+c8d02573[ ]+csrr[ ]+a0,hpmcounter13h
+[ ]+[0-9a-f]+:[ ]+c8d59073[ ]+csrw[ ]+hpmcounter13h,a1
+[ ]+[0-9a-f]+:[ ]+c8e02573[ ]+csrr[ ]+a0,hpmcounter14h
+[ ]+[0-9a-f]+:[ ]+c8e59073[ ]+csrw[ ]+hpmcounter14h,a1
+[ ]+[0-9a-f]+:[ ]+c8f02573[ ]+csrr[ ]+a0,hpmcounter15h
+[ ]+[0-9a-f]+:[ ]+c8f59073[ ]+csrw[ ]+hpmcounter15h,a1
+[ ]+[0-9a-f]+:[ ]+c9002573[ ]+csrr[ ]+a0,hpmcounter16h
+[ ]+[0-9a-f]+:[ ]+c9059073[ ]+csrw[ ]+hpmcounter16h,a1
+[ ]+[0-9a-f]+:[ ]+c9102573[ ]+csrr[ ]+a0,hpmcounter17h
+[ ]+[0-9a-f]+:[ ]+c9159073[ ]+csrw[ ]+hpmcounter17h,a1
+[ ]+[0-9a-f]+:[ ]+c9202573[ ]+csrr[ ]+a0,hpmcounter18h
+[ ]+[0-9a-f]+:[ ]+c9259073[ ]+csrw[ ]+hpmcounter18h,a1
+[ ]+[0-9a-f]+:[ ]+c9302573[ ]+csrr[ ]+a0,hpmcounter19h
+[ ]+[0-9a-f]+:[ ]+c9359073[ ]+csrw[ ]+hpmcounter19h,a1
+[ ]+[0-9a-f]+:[ ]+c9402573[ ]+csrr[ ]+a0,hpmcounter20h
+[ ]+[0-9a-f]+:[ ]+c9459073[ ]+csrw[ ]+hpmcounter20h,a1
+[ ]+[0-9a-f]+:[ ]+c9502573[ ]+csrr[ ]+a0,hpmcounter21h
+[ ]+[0-9a-f]+:[ ]+c9559073[ ]+csrw[ ]+hpmcounter21h,a1
+[ ]+[0-9a-f]+:[ ]+c9602573[ ]+csrr[ ]+a0,hpmcounter22h
+[ ]+[0-9a-f]+:[ ]+c9659073[ ]+csrw[ ]+hpmcounter22h,a1
+[ ]+[0-9a-f]+:[ ]+c9702573[ ]+csrr[ ]+a0,hpmcounter23h
+[ ]+[0-9a-f]+:[ ]+c9759073[ ]+csrw[ ]+hpmcounter23h,a1
+[ ]+[0-9a-f]+:[ ]+c9802573[ ]+csrr[ ]+a0,hpmcounter24h
+[ ]+[0-9a-f]+:[ ]+c9859073[ ]+csrw[ ]+hpmcounter24h,a1
+[ ]+[0-9a-f]+:[ ]+c9902573[ ]+csrr[ ]+a0,hpmcounter25h
+[ ]+[0-9a-f]+:[ ]+c9959073[ ]+csrw[ ]+hpmcounter25h,a1
+[ ]+[0-9a-f]+:[ ]+c9a02573[ ]+csrr[ ]+a0,hpmcounter26h
+[ ]+[0-9a-f]+:[ ]+c9a59073[ ]+csrw[ ]+hpmcounter26h,a1
+[ ]+[0-9a-f]+:[ ]+c9b02573[ ]+csrr[ ]+a0,hpmcounter27h
+[ ]+[0-9a-f]+:[ ]+c9b59073[ ]+csrw[ ]+hpmcounter27h,a1
+[ ]+[0-9a-f]+:[ ]+c9c02573[ ]+csrr[ ]+a0,hpmcounter28h
+[ ]+[0-9a-f]+:[ ]+c9c59073[ ]+csrw[ ]+hpmcounter28h,a1
+[ ]+[0-9a-f]+:[ ]+c9d02573[ ]+csrr[ ]+a0,hpmcounter29h
+[ ]+[0-9a-f]+:[ ]+c9d59073[ ]+csrw[ ]+hpmcounter29h,a1
+[ ]+[0-9a-f]+:[ ]+c9e02573[ ]+csrr[ ]+a0,hpmcounter30h
+[ ]+[0-9a-f]+:[ ]+c9e59073[ ]+csrw[ ]+hpmcounter30h,a1
+[ ]+[0-9a-f]+:[ ]+c9f02573[ ]+csrr[ ]+a0,hpmcounter31h
+[ ]+[0-9a-f]+:[ ]+c9f59073[ ]+csrw[ ]+hpmcounter31h,a1
+[ ]+[0-9a-f]+:[ ]+10002573[ ]+csrr[ ]+a0,sstatus
+[ ]+[0-9a-f]+:[ ]+10059073[ ]+csrw[ ]+sstatus,a1
+[ ]+[0-9a-f]+:[ ]+10402573[ ]+csrr[ ]+a0,sie
+[ ]+[0-9a-f]+:[ ]+10459073[ ]+csrw[ ]+sie,a1
+[ ]+[0-9a-f]+:[ ]+10502573[ ]+csrr[ ]+a0,stvec
+[ ]+[0-9a-f]+:[ ]+10559073[ ]+csrw[ ]+stvec,a1
+[ ]+[0-9a-f]+:[ ]+10602573[ ]+csrr[ ]+a0,scounteren
+[ ]+[0-9a-f]+:[ ]+10659073[ ]+csrw[ ]+scounteren,a1
+[ ]+[0-9a-f]+:[ ]+10a02573[ ]+csrr[ ]+a0,senvcfg
+[ ]+[0-9a-f]+:[ ]+10a59073[ ]+csrw[ ]+senvcfg,a1
+[ ]+[0-9a-f]+:[ ]+14002573[ ]+csrr[ ]+a0,sscratch
+[ ]+[0-9a-f]+:[ ]+14059073[ ]+csrw[ ]+sscratch,a1
+[ ]+[0-9a-f]+:[ ]+14102573[ ]+csrr[ ]+a0,sepc
+[ ]+[0-9a-f]+:[ ]+14159073[ ]+csrw[ ]+sepc,a1
+[ ]+[0-9a-f]+:[ ]+14202573[ ]+csrr[ ]+a0,scause
+[ ]+[0-9a-f]+:[ ]+14259073[ ]+csrw[ ]+scause,a1
+[ ]+[0-9a-f]+:[ ]+14302573[ ]+csrr[ ]+a0,stval
+[ ]+[0-9a-f]+:[ ]+14359073[ ]+csrw[ ]+stval,a1
+[ ]+[0-9a-f]+:[ ]+14402573[ ]+csrr[ ]+a0,sip
+[ ]+[0-9a-f]+:[ ]+14459073[ ]+csrw[ ]+sip,a1
+[ ]+[0-9a-f]+:[ ]+18002573[ ]+csrr[ ]+a0,satp
+[ ]+[0-9a-f]+:[ ]+18059073[ ]+csrw[ ]+satp,a1
+[ ]+[0-9a-f]+:[ ]+f1102573[ ]+csrr[ ]+a0,mvendorid
+[ ]+[0-9a-f]+:[ ]+f1159073[ ]+csrw[ ]+mvendorid,a1
+[ ]+[0-9a-f]+:[ ]+f1202573[ ]+csrr[ ]+a0,marchid
+[ ]+[0-9a-f]+:[ ]+f1259073[ ]+csrw[ ]+marchid,a1
+[ ]+[0-9a-f]+:[ ]+f1302573[ ]+csrr[ ]+a0,mimpid
+[ ]+[0-9a-f]+:[ ]+f1359073[ ]+csrw[ ]+mimpid,a1
+[ ]+[0-9a-f]+:[ ]+f1402573[ ]+csrr[ ]+a0,mhartid
+[ ]+[0-9a-f]+:[ ]+f1459073[ ]+csrw[ ]+mhartid,a1
+[ ]+[0-9a-f]+:[ ]+f1502573[ ]+csrr[ ]+a0,mconfigptr
+[ ]+[0-9a-f]+:[ ]+f1559073[ ]+csrw[ ]+mconfigptr,a1
+[ ]+[0-9a-f]+:[ ]+30002573[ ]+csrr[ ]+a0,mstatus
+[ ]+[0-9a-f]+:[ ]+30059073[ ]+csrw[ ]+mstatus,a1
+[ ]+[0-9a-f]+:[ ]+30102573[ ]+csrr[ ]+a0,misa
+[ ]+[0-9a-f]+:[ ]+30159073[ ]+csrw[ ]+misa,a1
+[ ]+[0-9a-f]+:[ ]+30202573[ ]+csrr[ ]+a0,medeleg
+[ ]+[0-9a-f]+:[ ]+30259073[ ]+csrw[ ]+medeleg,a1
+[ ]+[0-9a-f]+:[ ]+31202573[ ]+csrr[ ]+a0,medelegh
+[ ]+[0-9a-f]+:[ ]+31259073[ ]+csrw[ ]+medelegh,a1
+[ ]+[0-9a-f]+:[ ]+30302573[ ]+csrr[ ]+a0,mideleg
+[ ]+[0-9a-f]+:[ ]+30359073[ ]+csrw[ ]+mideleg,a1
+[ ]+[0-9a-f]+:[ ]+30402573[ ]+csrr[ ]+a0,mie
+[ ]+[0-9a-f]+:[ ]+30459073[ ]+csrw[ ]+mie,a1
+[ ]+[0-9a-f]+:[ ]+30502573[ ]+csrr[ ]+a0,mtvec
+[ ]+[0-9a-f]+:[ ]+30559073[ ]+csrw[ ]+mtvec,a1
+[ ]+[0-9a-f]+:[ ]+30602573[ ]+csrr[ ]+a0,mcounteren
+[ ]+[0-9a-f]+:[ ]+30659073[ ]+csrw[ ]+mcounteren,a1
+[ ]+[0-9a-f]+:[ ]+31002573[ ]+csrr[ ]+a0,mstatush
+[ ]+[0-9a-f]+:[ ]+31059073[ ]+csrw[ ]+mstatush,a1
+[ ]+[0-9a-f]+:[ ]+34002573[ ]+csrr[ ]+a0,mscratch
+[ ]+[0-9a-f]+:[ ]+34059073[ ]+csrw[ ]+mscratch,a1
+[ ]+[0-9a-f]+:[ ]+34102573[ ]+csrr[ ]+a0,mepc
+[ ]+[0-9a-f]+:[ ]+34159073[ ]+csrw[ ]+mepc,a1
+[ ]+[0-9a-f]+:[ ]+34202573[ ]+csrr[ ]+a0,mcause
+[ ]+[0-9a-f]+:[ ]+34259073[ ]+csrw[ ]+mcause,a1
+[ ]+[0-9a-f]+:[ ]+34302573[ ]+csrr[ ]+a0,mtval
+[ ]+[0-9a-f]+:[ ]+34359073[ ]+csrw[ ]+mtval,a1
+[ ]+[0-9a-f]+:[ ]+34402573[ ]+csrr[ ]+a0,mip
+[ ]+[0-9a-f]+:[ ]+34459073[ ]+csrw[ ]+mip,a1
+[ ]+[0-9a-f]+:[ ]+34a02573[ ]+csrr[ ]+a0,mtinst
+[ ]+[0-9a-f]+:[ ]+34a59073[ ]+csrw[ ]+mtinst,a1
+[ ]+[0-9a-f]+:[ ]+34b02573[ ]+csrr[ ]+a0,mtval2
+[ ]+[0-9a-f]+:[ ]+34b59073[ ]+csrw[ ]+mtval2,a1
+[ ]+[0-9a-f]+:[ ]+30a02573[ ]+csrr[ ]+a0,menvcfg
+[ ]+[0-9a-f]+:[ ]+30a59073[ ]+csrw[ ]+menvcfg,a1
+[ ]+[0-9a-f]+:[ ]+31a02573[ ]+csrr[ ]+a0,menvcfgh
+[ ]+[0-9a-f]+:[ ]+31a59073[ ]+csrw[ ]+menvcfgh,a1
+[ ]+[0-9a-f]+:[ ]+74702573[ ]+csrr[ ]+a0,mseccfg
+[ ]+[0-9a-f]+:[ ]+74759073[ ]+csrw[ ]+mseccfg,a1
+[ ]+[0-9a-f]+:[ ]+75702573[ ]+csrr[ ]+a0,mseccfgh
+[ ]+[0-9a-f]+:[ ]+75759073[ ]+csrw[ ]+mseccfgh,a1
+[ ]+[0-9a-f]+:[ ]+3a002573[ ]+csrr[ ]+a0,pmpcfg0
+[ ]+[0-9a-f]+:[ ]+3a059073[ ]+csrw[ ]+pmpcfg0,a1
+[ ]+[0-9a-f]+:[ ]+3a102573[ ]+csrr[ ]+a0,pmpcfg1
+[ ]+[0-9a-f]+:[ ]+3a159073[ ]+csrw[ ]+pmpcfg1,a1
+[ ]+[0-9a-f]+:[ ]+3a202573[ ]+csrr[ ]+a0,pmpcfg2
+[ ]+[0-9a-f]+:[ ]+3a259073[ ]+csrw[ ]+pmpcfg2,a1
+[ ]+[0-9a-f]+:[ ]+3a302573[ ]+csrr[ ]+a0,pmpcfg3
+[ ]+[0-9a-f]+:[ ]+3a359073[ ]+csrw[ ]+pmpcfg3,a1
+[ ]+[0-9a-f]+:[ ]+3a402573[ ]+csrr[ ]+a0,pmpcfg4
+[ ]+[0-9a-f]+:[ ]+3a459073[ ]+csrw[ ]+pmpcfg4,a1
+[ ]+[0-9a-f]+:[ ]+3a502573[ ]+csrr[ ]+a0,pmpcfg5
+[ ]+[0-9a-f]+:[ ]+3a559073[ ]+csrw[ ]+pmpcfg5,a1
+[ ]+[0-9a-f]+:[ ]+3a602573[ ]+csrr[ ]+a0,pmpcfg6
+[ ]+[0-9a-f]+:[ ]+3a659073[ ]+csrw[ ]+pmpcfg6,a1
+[ ]+[0-9a-f]+:[ ]+3a702573[ ]+csrr[ ]+a0,pmpcfg7
+[ ]+[0-9a-f]+:[ ]+3a759073[ ]+csrw[ ]+pmpcfg7,a1
+[ ]+[0-9a-f]+:[ ]+3a802573[ ]+csrr[ ]+a0,pmpcfg8
+[ ]+[0-9a-f]+:[ ]+3a859073[ ]+csrw[ ]+pmpcfg8,a1
+[ ]+[0-9a-f]+:[ ]+3a902573[ ]+csrr[ ]+a0,pmpcfg9
+[ ]+[0-9a-f]+:[ ]+3a959073[ ]+csrw[ ]+pmpcfg9,a1
+[ ]+[0-9a-f]+:[ ]+3aa02573[ ]+csrr[ ]+a0,pmpcfg10
+[ ]+[0-9a-f]+:[ ]+3aa59073[ ]+csrw[ ]+pmpcfg10,a1
+[ ]+[0-9a-f]+:[ ]+3ab02573[ ]+csrr[ ]+a0,pmpcfg11
+[ ]+[0-9a-f]+:[ ]+3ab59073[ ]+csrw[ ]+pmpcfg11,a1
+[ ]+[0-9a-f]+:[ ]+3ac02573[ ]+csrr[ ]+a0,pmpcfg12
+[ ]+[0-9a-f]+:[ ]+3ac59073[ ]+csrw[ ]+pmpcfg12,a1
+[ ]+[0-9a-f]+:[ ]+3ad02573[ ]+csrr[ ]+a0,pmpcfg13
+[ ]+[0-9a-f]+:[ ]+3ad59073[ ]+csrw[ ]+pmpcfg13,a1
+[ ]+[0-9a-f]+:[ ]+3ae02573[ ]+csrr[ ]+a0,pmpcfg14
+[ ]+[0-9a-f]+:[ ]+3ae59073[ ]+csrw[ ]+pmpcfg14,a1
+[ ]+[0-9a-f]+:[ ]+3af02573[ ]+csrr[ ]+a0,pmpcfg15
+[ ]+[0-9a-f]+:[ ]+3af59073[ ]+csrw[ ]+pmpcfg15,a1
+[ ]+[0-9a-f]+:[ ]+3b002573[ ]+csrr[ ]+a0,pmpaddr0
+[ ]+[0-9a-f]+:[ ]+3b059073[ ]+csrw[ ]+pmpaddr0,a1
+[ ]+[0-9a-f]+:[ ]+3b102573[ ]+csrr[ ]+a0,pmpaddr1
+[ ]+[0-9a-f]+:[ ]+3b159073[ ]+csrw[ ]+pmpaddr1,a1
+[ ]+[0-9a-f]+:[ ]+3b202573[ ]+csrr[ ]+a0,pmpaddr2
+[ ]+[0-9a-f]+:[ ]+3b259073[ ]+csrw[ ]+pmpaddr2,a1
+[ ]+[0-9a-f]+:[ ]+3b302573[ ]+csrr[ ]+a0,pmpaddr3
+[ ]+[0-9a-f]+:[ ]+3b359073[ ]+csrw[ ]+pmpaddr3,a1
+[ ]+[0-9a-f]+:[ ]+3b402573[ ]+csrr[ ]+a0,pmpaddr4
+[ ]+[0-9a-f]+:[ ]+3b459073[ ]+csrw[ ]+pmpaddr4,a1
+[ ]+[0-9a-f]+:[ ]+3b502573[ ]+csrr[ ]+a0,pmpaddr5
+[ ]+[0-9a-f]+:[ ]+3b559073[ ]+csrw[ ]+pmpaddr5,a1
+[ ]+[0-9a-f]+:[ ]+3b602573[ ]+csrr[ ]+a0,pmpaddr6
+[ ]+[0-9a-f]+:[ ]+3b659073[ ]+csrw[ ]+pmpaddr6,a1
+[ ]+[0-9a-f]+:[ ]+3b702573[ ]+csrr[ ]+a0,pmpaddr7
+[ ]+[0-9a-f]+:[ ]+3b759073[ ]+csrw[ ]+pmpaddr7,a1
+[ ]+[0-9a-f]+:[ ]+3b802573[ ]+csrr[ ]+a0,pmpaddr8
+[ ]+[0-9a-f]+:[ ]+3b859073[ ]+csrw[ ]+pmpaddr8,a1
+[ ]+[0-9a-f]+:[ ]+3b902573[ ]+csrr[ ]+a0,pmpaddr9
+[ ]+[0-9a-f]+:[ ]+3b959073[ ]+csrw[ ]+pmpaddr9,a1
+[ ]+[0-9a-f]+:[ ]+3ba02573[ ]+csrr[ ]+a0,pmpaddr10
+[ ]+[0-9a-f]+:[ ]+3ba59073[ ]+csrw[ ]+pmpaddr10,a1
+[ ]+[0-9a-f]+:[ ]+3bb02573[ ]+csrr[ ]+a0,pmpaddr11
+[ ]+[0-9a-f]+:[ ]+3bb59073[ ]+csrw[ ]+pmpaddr11,a1
+[ ]+[0-9a-f]+:[ ]+3bc02573[ ]+csrr[ ]+a0,pmpaddr12
+[ ]+[0-9a-f]+:[ ]+3bc59073[ ]+csrw[ ]+pmpaddr12,a1
+[ ]+[0-9a-f]+:[ ]+3bd02573[ ]+csrr[ ]+a0,pmpaddr13
+[ ]+[0-9a-f]+:[ ]+3bd59073[ ]+csrw[ ]+pmpaddr13,a1
+[ ]+[0-9a-f]+:[ ]+3be02573[ ]+csrr[ ]+a0,pmpaddr14
+[ ]+[0-9a-f]+:[ ]+3be59073[ ]+csrw[ ]+pmpaddr14,a1
+[ ]+[0-9a-f]+:[ ]+3bf02573[ ]+csrr[ ]+a0,pmpaddr15
+[ ]+[0-9a-f]+:[ ]+3bf59073[ ]+csrw[ ]+pmpaddr15,a1
+[ ]+[0-9a-f]+:[ ]+3c002573[ ]+csrr[ ]+a0,pmpaddr16
+[ ]+[0-9a-f]+:[ ]+3c059073[ ]+csrw[ ]+pmpaddr16,a1
+[ ]+[0-9a-f]+:[ ]+3c102573[ ]+csrr[ ]+a0,pmpaddr17
+[ ]+[0-9a-f]+:[ ]+3c159073[ ]+csrw[ ]+pmpaddr17,a1
+[ ]+[0-9a-f]+:[ ]+3c202573[ ]+csrr[ ]+a0,pmpaddr18
+[ ]+[0-9a-f]+:[ ]+3c259073[ ]+csrw[ ]+pmpaddr18,a1
+[ ]+[0-9a-f]+:[ ]+3c302573[ ]+csrr[ ]+a0,pmpaddr19
+[ ]+[0-9a-f]+:[ ]+3c359073[ ]+csrw[ ]+pmpaddr19,a1
+[ ]+[0-9a-f]+:[ ]+3c402573[ ]+csrr[ ]+a0,pmpaddr20
+[ ]+[0-9a-f]+:[ ]+3c459073[ ]+csrw[ ]+pmpaddr20,a1
+[ ]+[0-9a-f]+:[ ]+3c502573[ ]+csrr[ ]+a0,pmpaddr21
+[ ]+[0-9a-f]+:[ ]+3c559073[ ]+csrw[ ]+pmpaddr21,a1
+[ ]+[0-9a-f]+:[ ]+3c602573[ ]+csrr[ ]+a0,pmpaddr22
+[ ]+[0-9a-f]+:[ ]+3c659073[ ]+csrw[ ]+pmpaddr22,a1
+[ ]+[0-9a-f]+:[ ]+3c702573[ ]+csrr[ ]+a0,pmpaddr23
+[ ]+[0-9a-f]+:[ ]+3c759073[ ]+csrw[ ]+pmpaddr23,a1
+[ ]+[0-9a-f]+:[ ]+3c802573[ ]+csrr[ ]+a0,pmpaddr24
+[ ]+[0-9a-f]+:[ ]+3c859073[ ]+csrw[ ]+pmpaddr24,a1
+[ ]+[0-9a-f]+:[ ]+3c902573[ ]+csrr[ ]+a0,pmpaddr25
+[ ]+[0-9a-f]+:[ ]+3c959073[ ]+csrw[ ]+pmpaddr25,a1
+[ ]+[0-9a-f]+:[ ]+3ca02573[ ]+csrr[ ]+a0,pmpaddr26
+[ ]+[0-9a-f]+:[ ]+3ca59073[ ]+csrw[ ]+pmpaddr26,a1
+[ ]+[0-9a-f]+:[ ]+3cb02573[ ]+csrr[ ]+a0,pmpaddr27
+[ ]+[0-9a-f]+:[ ]+3cb59073[ ]+csrw[ ]+pmpaddr27,a1
+[ ]+[0-9a-f]+:[ ]+3cc02573[ ]+csrr[ ]+a0,pmpaddr28
+[ ]+[0-9a-f]+:[ ]+3cc59073[ ]+csrw[ ]+pmpaddr28,a1
+[ ]+[0-9a-f]+:[ ]+3cd02573[ ]+csrr[ ]+a0,pmpaddr29
+[ ]+[0-9a-f]+:[ ]+3cd59073[ ]+csrw[ ]+pmpaddr29,a1
+[ ]+[0-9a-f]+:[ ]+3ce02573[ ]+csrr[ ]+a0,pmpaddr30
+[ ]+[0-9a-f]+:[ ]+3ce59073[ ]+csrw[ ]+pmpaddr30,a1
+[ ]+[0-9a-f]+:[ ]+3cf02573[ ]+csrr[ ]+a0,pmpaddr31
+[ ]+[0-9a-f]+:[ ]+3cf59073[ ]+csrw[ ]+pmpaddr31,a1
+[ ]+[0-9a-f]+:[ ]+3d002573[ ]+csrr[ ]+a0,pmpaddr32
+[ ]+[0-9a-f]+:[ ]+3d059073[ ]+csrw[ ]+pmpaddr32,a1
+[ ]+[0-9a-f]+:[ ]+3d102573[ ]+csrr[ ]+a0,pmpaddr33
+[ ]+[0-9a-f]+:[ ]+3d159073[ ]+csrw[ ]+pmpaddr33,a1
+[ ]+[0-9a-f]+:[ ]+3d202573[ ]+csrr[ ]+a0,pmpaddr34
+[ ]+[0-9a-f]+:[ ]+3d259073[ ]+csrw[ ]+pmpaddr34,a1
+[ ]+[0-9a-f]+:[ ]+3d302573[ ]+csrr[ ]+a0,pmpaddr35
+[ ]+[0-9a-f]+:[ ]+3d359073[ ]+csrw[ ]+pmpaddr35,a1
+[ ]+[0-9a-f]+:[ ]+3d402573[ ]+csrr[ ]+a0,pmpaddr36
+[ ]+[0-9a-f]+:[ ]+3d459073[ ]+csrw[ ]+pmpaddr36,a1
+[ ]+[0-9a-f]+:[ ]+3d502573[ ]+csrr[ ]+a0,pmpaddr37
+[ ]+[0-9a-f]+:[ ]+3d559073[ ]+csrw[ ]+pmpaddr37,a1
+[ ]+[0-9a-f]+:[ ]+3d602573[ ]+csrr[ ]+a0,pmpaddr38
+[ ]+[0-9a-f]+:[ ]+3d659073[ ]+csrw[ ]+pmpaddr38,a1
+[ ]+[0-9a-f]+:[ ]+3d702573[ ]+csrr[ ]+a0,pmpaddr39
+[ ]+[0-9a-f]+:[ ]+3d759073[ ]+csrw[ ]+pmpaddr39,a1
+[ ]+[0-9a-f]+:[ ]+3d802573[ ]+csrr[ ]+a0,pmpaddr40
+[ ]+[0-9a-f]+:[ ]+3d859073[ ]+csrw[ ]+pmpaddr40,a1
+[ ]+[0-9a-f]+:[ ]+3d902573[ ]+csrr[ ]+a0,pmpaddr41
+[ ]+[0-9a-f]+:[ ]+3d959073[ ]+csrw[ ]+pmpaddr41,a1
+[ ]+[0-9a-f]+:[ ]+3da02573[ ]+csrr[ ]+a0,pmpaddr42
+[ ]+[0-9a-f]+:[ ]+3da59073[ ]+csrw[ ]+pmpaddr42,a1
+[ ]+[0-9a-f]+:[ ]+3db02573[ ]+csrr[ ]+a0,pmpaddr43
+[ ]+[0-9a-f]+:[ ]+3db59073[ ]+csrw[ ]+pmpaddr43,a1
+[ ]+[0-9a-f]+:[ ]+3dc02573[ ]+csrr[ ]+a0,pmpaddr44
+[ ]+[0-9a-f]+:[ ]+3dc59073[ ]+csrw[ ]+pmpaddr44,a1
+[ ]+[0-9a-f]+:[ ]+3dd02573[ ]+csrr[ ]+a0,pmpaddr45
+[ ]+[0-9a-f]+:[ ]+3dd59073[ ]+csrw[ ]+pmpaddr45,a1
+[ ]+[0-9a-f]+:[ ]+3de02573[ ]+csrr[ ]+a0,pmpaddr46
+[ ]+[0-9a-f]+:[ ]+3de59073[ ]+csrw[ ]+pmpaddr46,a1
+[ ]+[0-9a-f]+:[ ]+3df02573[ ]+csrr[ ]+a0,pmpaddr47
+[ ]+[0-9a-f]+:[ ]+3df59073[ ]+csrw[ ]+pmpaddr47,a1
+[ ]+[0-9a-f]+:[ ]+3e002573[ ]+csrr[ ]+a0,pmpaddr48
+[ ]+[0-9a-f]+:[ ]+3e059073[ ]+csrw[ ]+pmpaddr48,a1
+[ ]+[0-9a-f]+:[ ]+3e102573[ ]+csrr[ ]+a0,pmpaddr49
+[ ]+[0-9a-f]+:[ ]+3e159073[ ]+csrw[ ]+pmpaddr49,a1
+[ ]+[0-9a-f]+:[ ]+3e202573[ ]+csrr[ ]+a0,pmpaddr50
+[ ]+[0-9a-f]+:[ ]+3e259073[ ]+csrw[ ]+pmpaddr50,a1
+[ ]+[0-9a-f]+:[ ]+3e302573[ ]+csrr[ ]+a0,pmpaddr51
+[ ]+[0-9a-f]+:[ ]+3e359073[ ]+csrw[ ]+pmpaddr51,a1
+[ ]+[0-9a-f]+:[ ]+3e402573[ ]+csrr[ ]+a0,pmpaddr52
+[ ]+[0-9a-f]+:[ ]+3e459073[ ]+csrw[ ]+pmpaddr52,a1
+[ ]+[0-9a-f]+:[ ]+3e502573[ ]+csrr[ ]+a0,pmpaddr53
+[ ]+[0-9a-f]+:[ ]+3e559073[ ]+csrw[ ]+pmpaddr53,a1
+[ ]+[0-9a-f]+:[ ]+3e602573[ ]+csrr[ ]+a0,pmpaddr54
+[ ]+[0-9a-f]+:[ ]+3e659073[ ]+csrw[ ]+pmpaddr54,a1
+[ ]+[0-9a-f]+:[ ]+3e702573[ ]+csrr[ ]+a0,pmpaddr55
+[ ]+[0-9a-f]+:[ ]+3e759073[ ]+csrw[ ]+pmpaddr55,a1
+[ ]+[0-9a-f]+:[ ]+3e802573[ ]+csrr[ ]+a0,pmpaddr56
+[ ]+[0-9a-f]+:[ ]+3e859073[ ]+csrw[ ]+pmpaddr56,a1
+[ ]+[0-9a-f]+:[ ]+3e902573[ ]+csrr[ ]+a0,pmpaddr57
+[ ]+[0-9a-f]+:[ ]+3e959073[ ]+csrw[ ]+pmpaddr57,a1
+[ ]+[0-9a-f]+:[ ]+3ea02573[ ]+csrr[ ]+a0,pmpaddr58
+[ ]+[0-9a-f]+:[ ]+3ea59073[ ]+csrw[ ]+pmpaddr58,a1
+[ ]+[0-9a-f]+:[ ]+3eb02573[ ]+csrr[ ]+a0,pmpaddr59
+[ ]+[0-9a-f]+:[ ]+3eb59073[ ]+csrw[ ]+pmpaddr59,a1
+[ ]+[0-9a-f]+:[ ]+3ec02573[ ]+csrr[ ]+a0,pmpaddr60
+[ ]+[0-9a-f]+:[ ]+3ec59073[ ]+csrw[ ]+pmpaddr60,a1
+[ ]+[0-9a-f]+:[ ]+3ed02573[ ]+csrr[ ]+a0,pmpaddr61
+[ ]+[0-9a-f]+:[ ]+3ed59073[ ]+csrw[ ]+pmpaddr61,a1
+[ ]+[0-9a-f]+:[ ]+3ee02573[ ]+csrr[ ]+a0,pmpaddr62
+[ ]+[0-9a-f]+:[ ]+3ee59073[ ]+csrw[ ]+pmpaddr62,a1
+[ ]+[0-9a-f]+:[ ]+3ef02573[ ]+csrr[ ]+a0,pmpaddr63
+[ ]+[0-9a-f]+:[ ]+3ef59073[ ]+csrw[ ]+pmpaddr63,a1
+[ ]+[0-9a-f]+:[ ]+b0002573[ ]+csrr[ ]+a0,mcycle
+[ ]+[0-9a-f]+:[ ]+b0059073[ ]+csrw[ ]+mcycle,a1
+[ ]+[0-9a-f]+:[ ]+b0202573[ ]+csrr[ ]+a0,minstret
+[ ]+[0-9a-f]+:[ ]+b0259073[ ]+csrw[ ]+minstret,a1
+[ ]+[0-9a-f]+:[ ]+b0302573[ ]+csrr[ ]+a0,mhpmcounter3
+[ ]+[0-9a-f]+:[ ]+b0359073[ ]+csrw[ ]+mhpmcounter3,a1
+[ ]+[0-9a-f]+:[ ]+b0402573[ ]+csrr[ ]+a0,mhpmcounter4
+[ ]+[0-9a-f]+:[ ]+b0459073[ ]+csrw[ ]+mhpmcounter4,a1
+[ ]+[0-9a-f]+:[ ]+b0502573[ ]+csrr[ ]+a0,mhpmcounter5
+[ ]+[0-9a-f]+:[ ]+b0559073[ ]+csrw[ ]+mhpmcounter5,a1
+[ ]+[0-9a-f]+:[ ]+b0602573[ ]+csrr[ ]+a0,mhpmcounter6
+[ ]+[0-9a-f]+:[ ]+b0659073[ ]+csrw[ ]+mhpmcounter6,a1
+[ ]+[0-9a-f]+:[ ]+b0702573[ ]+csrr[ ]+a0,mhpmcounter7
+[ ]+[0-9a-f]+:[ ]+b0759073[ ]+csrw[ ]+mhpmcounter7,a1
+[ ]+[0-9a-f]+:[ ]+b0802573[ ]+csrr[ ]+a0,mhpmcounter8
+[ ]+[0-9a-f]+:[ ]+b0859073[ ]+csrw[ ]+mhpmcounter8,a1
+[ ]+[0-9a-f]+:[ ]+b0902573[ ]+csrr[ ]+a0,mhpmcounter9
+[ ]+[0-9a-f]+:[ ]+b0959073[ ]+csrw[ ]+mhpmcounter9,a1
+[ ]+[0-9a-f]+:[ ]+b0a02573[ ]+csrr[ ]+a0,mhpmcounter10
+[ ]+[0-9a-f]+:[ ]+b0a59073[ ]+csrw[ ]+mhpmcounter10,a1
+[ ]+[0-9a-f]+:[ ]+b0b02573[ ]+csrr[ ]+a0,mhpmcounter11
+[ ]+[0-9a-f]+:[ ]+b0b59073[ ]+csrw[ ]+mhpmcounter11,a1
+[ ]+[0-9a-f]+:[ ]+b0c02573[ ]+csrr[ ]+a0,mhpmcounter12
+[ ]+[0-9a-f]+:[ ]+b0c59073[ ]+csrw[ ]+mhpmcounter12,a1
+[ ]+[0-9a-f]+:[ ]+b0d02573[ ]+csrr[ ]+a0,mhpmcounter13
+[ ]+[0-9a-f]+:[ ]+b0d59073[ ]+csrw[ ]+mhpmcounter13,a1
+[ ]+[0-9a-f]+:[ ]+b0e02573[ ]+csrr[ ]+a0,mhpmcounter14
+[ ]+[0-9a-f]+:[ ]+b0e59073[ ]+csrw[ ]+mhpmcounter14,a1
+[ ]+[0-9a-f]+:[ ]+b0f02573[ ]+csrr[ ]+a0,mhpmcounter15
+[ ]+[0-9a-f]+:[ ]+b0f59073[ ]+csrw[ ]+mhpmcounter15,a1
+[ ]+[0-9a-f]+:[ ]+b1002573[ ]+csrr[ ]+a0,mhpmcounter16
+[ ]+[0-9a-f]+:[ ]+b1059073[ ]+csrw[ ]+mhpmcounter16,a1
+[ ]+[0-9a-f]+:[ ]+b1102573[ ]+csrr[ ]+a0,mhpmcounter17
+[ ]+[0-9a-f]+:[ ]+b1159073[ ]+csrw[ ]+mhpmcounter17,a1
+[ ]+[0-9a-f]+:[ ]+b1202573[ ]+csrr[ ]+a0,mhpmcounter18
+[ ]+[0-9a-f]+:[ ]+b1259073[ ]+csrw[ ]+mhpmcounter18,a1
+[ ]+[0-9a-f]+:[ ]+b1302573[ ]+csrr[ ]+a0,mhpmcounter19
+[ ]+[0-9a-f]+:[ ]+b1359073[ ]+csrw[ ]+mhpmcounter19,a1
+[ ]+[0-9a-f]+:[ ]+b1402573[ ]+csrr[ ]+a0,mhpmcounter20
+[ ]+[0-9a-f]+:[ ]+b1459073[ ]+csrw[ ]+mhpmcounter20,a1
+[ ]+[0-9a-f]+:[ ]+b1502573[ ]+csrr[ ]+a0,mhpmcounter21
+[ ]+[0-9a-f]+:[ ]+b1559073[ ]+csrw[ ]+mhpmcounter21,a1
+[ ]+[0-9a-f]+:[ ]+b1602573[ ]+csrr[ ]+a0,mhpmcounter22
+[ ]+[0-9a-f]+:[ ]+b1659073[ ]+csrw[ ]+mhpmcounter22,a1
+[ ]+[0-9a-f]+:[ ]+b1702573[ ]+csrr[ ]+a0,mhpmcounter23
+[ ]+[0-9a-f]+:[ ]+b1759073[ ]+csrw[ ]+mhpmcounter23,a1
+[ ]+[0-9a-f]+:[ ]+b1802573[ ]+csrr[ ]+a0,mhpmcounter24
+[ ]+[0-9a-f]+:[ ]+b1859073[ ]+csrw[ ]+mhpmcounter24,a1
+[ ]+[0-9a-f]+:[ ]+b1902573[ ]+csrr[ ]+a0,mhpmcounter25
+[ ]+[0-9a-f]+:[ ]+b1959073[ ]+csrw[ ]+mhpmcounter25,a1
+[ ]+[0-9a-f]+:[ ]+b1a02573[ ]+csrr[ ]+a0,mhpmcounter26
+[ ]+[0-9a-f]+:[ ]+b1a59073[ ]+csrw[ ]+mhpmcounter26,a1
+[ ]+[0-9a-f]+:[ ]+b1b02573[ ]+csrr[ ]+a0,mhpmcounter27
+[ ]+[0-9a-f]+:[ ]+b1b59073[ ]+csrw[ ]+mhpmcounter27,a1
+[ ]+[0-9a-f]+:[ ]+b1c02573[ ]+csrr[ ]+a0,mhpmcounter28
+[ ]+[0-9a-f]+:[ ]+b1c59073[ ]+csrw[ ]+mhpmcounter28,a1
+[ ]+[0-9a-f]+:[ ]+b1d02573[ ]+csrr[ ]+a0,mhpmcounter29
+[ ]+[0-9a-f]+:[ ]+b1d59073[ ]+csrw[ ]+mhpmcounter29,a1
+[ ]+[0-9a-f]+:[ ]+b1e02573[ ]+csrr[ ]+a0,mhpmcounter30
+[ ]+[0-9a-f]+:[ ]+b1e59073[ ]+csrw[ ]+mhpmcounter30,a1
+[ ]+[0-9a-f]+:[ ]+b1f02573[ ]+csrr[ ]+a0,mhpmcounter31
+[ ]+[0-9a-f]+:[ ]+b1f59073[ ]+csrw[ ]+mhpmcounter31,a1
+[ ]+[0-9a-f]+:[ ]+b8002573[ ]+csrr[ ]+a0,mcycleh
+[ ]+[0-9a-f]+:[ ]+b8059073[ ]+csrw[ ]+mcycleh,a1
+[ ]+[0-9a-f]+:[ ]+b8202573[ ]+csrr[ ]+a0,minstreth
+[ ]+[0-9a-f]+:[ ]+b8259073[ ]+csrw[ ]+minstreth,a1
+[ ]+[0-9a-f]+:[ ]+b8302573[ ]+csrr[ ]+a0,mhpmcounter3h
+[ ]+[0-9a-f]+:[ ]+b8359073[ ]+csrw[ ]+mhpmcounter3h,a1
+[ ]+[0-9a-f]+:[ ]+b8402573[ ]+csrr[ ]+a0,mhpmcounter4h
+[ ]+[0-9a-f]+:[ ]+b8459073[ ]+csrw[ ]+mhpmcounter4h,a1
+[ ]+[0-9a-f]+:[ ]+b8502573[ ]+csrr[ ]+a0,mhpmcounter5h
+[ ]+[0-9a-f]+:[ ]+b8559073[ ]+csrw[ ]+mhpmcounter5h,a1
+[ ]+[0-9a-f]+:[ ]+b8602573[ ]+csrr[ ]+a0,mhpmcounter6h
+[ ]+[0-9a-f]+:[ ]+b8659073[ ]+csrw[ ]+mhpmcounter6h,a1
+[ ]+[0-9a-f]+:[ ]+b8702573[ ]+csrr[ ]+a0,mhpmcounter7h
+[ ]+[0-9a-f]+:[ ]+b8759073[ ]+csrw[ ]+mhpmcounter7h,a1
+[ ]+[0-9a-f]+:[ ]+b8802573[ ]+csrr[ ]+a0,mhpmcounter8h
+[ ]+[0-9a-f]+:[ ]+b8859073[ ]+csrw[ ]+mhpmcounter8h,a1
+[ ]+[0-9a-f]+:[ ]+b8902573[ ]+csrr[ ]+a0,mhpmcounter9h
+[ ]+[0-9a-f]+:[ ]+b8959073[ ]+csrw[ ]+mhpmcounter9h,a1
+[ ]+[0-9a-f]+:[ ]+b8a02573[ ]+csrr[ ]+a0,mhpmcounter10h
+[ ]+[0-9a-f]+:[ ]+b8a59073[ ]+csrw[ ]+mhpmcounter10h,a1
+[ ]+[0-9a-f]+:[ ]+b8b02573[ ]+csrr[ ]+a0,mhpmcounter11h
+[ ]+[0-9a-f]+:[ ]+b8b59073[ ]+csrw[ ]+mhpmcounter11h,a1
+[ ]+[0-9a-f]+:[ ]+b8c02573[ ]+csrr[ ]+a0,mhpmcounter12h
+[ ]+[0-9a-f]+:[ ]+b8c59073[ ]+csrw[ ]+mhpmcounter12h,a1
+[ ]+[0-9a-f]+:[ ]+b8d02573[ ]+csrr[ ]+a0,mhpmcounter13h
+[ ]+[0-9a-f]+:[ ]+b8d59073[ ]+csrw[ ]+mhpmcounter13h,a1
+[ ]+[0-9a-f]+:[ ]+b8e02573[ ]+csrr[ ]+a0,mhpmcounter14h
+[ ]+[0-9a-f]+:[ ]+b8e59073[ ]+csrw[ ]+mhpmcounter14h,a1
+[ ]+[0-9a-f]+:[ ]+b8f02573[ ]+csrr[ ]+a0,mhpmcounter15h
+[ ]+[0-9a-f]+:[ ]+b8f59073[ ]+csrw[ ]+mhpmcounter15h,a1
+[ ]+[0-9a-f]+:[ ]+b9002573[ ]+csrr[ ]+a0,mhpmcounter16h
+[ ]+[0-9a-f]+:[ ]+b9059073[ ]+csrw[ ]+mhpmcounter16h,a1
+[ ]+[0-9a-f]+:[ ]+b9102573[ ]+csrr[ ]+a0,mhpmcounter17h
+[ ]+[0-9a-f]+:[ ]+b9159073[ ]+csrw[ ]+mhpmcounter17h,a1
+[ ]+[0-9a-f]+:[ ]+b9202573[ ]+csrr[ ]+a0,mhpmcounter18h
+[ ]+[0-9a-f]+:[ ]+b9259073[ ]+csrw[ ]+mhpmcounter18h,a1
+[ ]+[0-9a-f]+:[ ]+b9302573[ ]+csrr[ ]+a0,mhpmcounter19h
+[ ]+[0-9a-f]+:[ ]+b9359073[ ]+csrw[ ]+mhpmcounter19h,a1
+[ ]+[0-9a-f]+:[ ]+b9402573[ ]+csrr[ ]+a0,mhpmcounter20h
+[ ]+[0-9a-f]+:[ ]+b9459073[ ]+csrw[ ]+mhpmcounter20h,a1
+[ ]+[0-9a-f]+:[ ]+b9502573[ ]+csrr[ ]+a0,mhpmcounter21h
+[ ]+[0-9a-f]+:[ ]+b9559073[ ]+csrw[ ]+mhpmcounter21h,a1
+[ ]+[0-9a-f]+:[ ]+b9602573[ ]+csrr[ ]+a0,mhpmcounter22h
+[ ]+[0-9a-f]+:[ ]+b9659073[ ]+csrw[ ]+mhpmcounter22h,a1
+[ ]+[0-9a-f]+:[ ]+b9702573[ ]+csrr[ ]+a0,mhpmcounter23h
+[ ]+[0-9a-f]+:[ ]+b9759073[ ]+csrw[ ]+mhpmcounter23h,a1
+[ ]+[0-9a-f]+:[ ]+b9802573[ ]+csrr[ ]+a0,mhpmcounter24h
+[ ]+[0-9a-f]+:[ ]+b9859073[ ]+csrw[ ]+mhpmcounter24h,a1
+[ ]+[0-9a-f]+:[ ]+b9902573[ ]+csrr[ ]+a0,mhpmcounter25h
+[ ]+[0-9a-f]+:[ ]+b9959073[ ]+csrw[ ]+mhpmcounter25h,a1
+[ ]+[0-9a-f]+:[ ]+b9a02573[ ]+csrr[ ]+a0,mhpmcounter26h
+[ ]+[0-9a-f]+:[ ]+b9a59073[ ]+csrw[ ]+mhpmcounter26h,a1
+[ ]+[0-9a-f]+:[ ]+b9b02573[ ]+csrr[ ]+a0,mhpmcounter27h
+[ ]+[0-9a-f]+:[ ]+b9b59073[ ]+csrw[ ]+mhpmcounter27h,a1
+[ ]+[0-9a-f]+:[ ]+b9c02573[ ]+csrr[ ]+a0,mhpmcounter28h
+[ ]+[0-9a-f]+:[ ]+b9c59073[ ]+csrw[ ]+mhpmcounter28h,a1
+[ ]+[0-9a-f]+:[ ]+b9d02573[ ]+csrr[ ]+a0,mhpmcounter29h
+[ ]+[0-9a-f]+:[ ]+b9d59073[ ]+csrw[ ]+mhpmcounter29h,a1
+[ ]+[0-9a-f]+:[ ]+b9e02573[ ]+csrr[ ]+a0,mhpmcounter30h
+[ ]+[0-9a-f]+:[ ]+b9e59073[ ]+csrw[ ]+mhpmcounter30h,a1
+[ ]+[0-9a-f]+:[ ]+b9f02573[ ]+csrr[ ]+a0,mhpmcounter31h
+[ ]+[0-9a-f]+:[ ]+b9f59073[ ]+csrw[ ]+mhpmcounter31h,a1
+[ ]+[0-9a-f]+:[ ]+32002573[ ]+csrr[ ]+a0,mcountinhibit
+[ ]+[0-9a-f]+:[ ]+32059073[ ]+csrw[ ]+mcountinhibit,a1
+[ ]+[0-9a-f]+:[ ]+32302573[ ]+csrr[ ]+a0,mhpmevent3
+[ ]+[0-9a-f]+:[ ]+32359073[ ]+csrw[ ]+mhpmevent3,a1
+[ ]+[0-9a-f]+:[ ]+32402573[ ]+csrr[ ]+a0,mhpmevent4
+[ ]+[0-9a-f]+:[ ]+32459073[ ]+csrw[ ]+mhpmevent4,a1
+[ ]+[0-9a-f]+:[ ]+32502573[ ]+csrr[ ]+a0,mhpmevent5
+[ ]+[0-9a-f]+:[ ]+32559073[ ]+csrw[ ]+mhpmevent5,a1
+[ ]+[0-9a-f]+:[ ]+32602573[ ]+csrr[ ]+a0,mhpmevent6
+[ ]+[0-9a-f]+:[ ]+32659073[ ]+csrw[ ]+mhpmevent6,a1
+[ ]+[0-9a-f]+:[ ]+32702573[ ]+csrr[ ]+a0,mhpmevent7
+[ ]+[0-9a-f]+:[ ]+32759073[ ]+csrw[ ]+mhpmevent7,a1
+[ ]+[0-9a-f]+:[ ]+32802573[ ]+csrr[ ]+a0,mhpmevent8
+[ ]+[0-9a-f]+:[ ]+32859073[ ]+csrw[ ]+mhpmevent8,a1
+[ ]+[0-9a-f]+:[ ]+32902573[ ]+csrr[ ]+a0,mhpmevent9
+[ ]+[0-9a-f]+:[ ]+32959073[ ]+csrw[ ]+mhpmevent9,a1
+[ ]+[0-9a-f]+:[ ]+32a02573[ ]+csrr[ ]+a0,mhpmevent10
+[ ]+[0-9a-f]+:[ ]+32a59073[ ]+csrw[ ]+mhpmevent10,a1
+[ ]+[0-9a-f]+:[ ]+32b02573[ ]+csrr[ ]+a0,mhpmevent11
+[ ]+[0-9a-f]+:[ ]+32b59073[ ]+csrw[ ]+mhpmevent11,a1
+[ ]+[0-9a-f]+:[ ]+32c02573[ ]+csrr[ ]+a0,mhpmevent12
+[ ]+[0-9a-f]+:[ ]+32c59073[ ]+csrw[ ]+mhpmevent12,a1
+[ ]+[0-9a-f]+:[ ]+32d02573[ ]+csrr[ ]+a0,mhpmevent13
+[ ]+[0-9a-f]+:[ ]+32d59073[ ]+csrw[ ]+mhpmevent13,a1
+[ ]+[0-9a-f]+:[ ]+32e02573[ ]+csrr[ ]+a0,mhpmevent14
+[ ]+[0-9a-f]+:[ ]+32e59073[ ]+csrw[ ]+mhpmevent14,a1
+[ ]+[0-9a-f]+:[ ]+32f02573[ ]+csrr[ ]+a0,mhpmevent15
+[ ]+[0-9a-f]+:[ ]+32f59073[ ]+csrw[ ]+mhpmevent15,a1
+[ ]+[0-9a-f]+:[ ]+33002573[ ]+csrr[ ]+a0,mhpmevent16
+[ ]+[0-9a-f]+:[ ]+33059073[ ]+csrw[ ]+mhpmevent16,a1
+[ ]+[0-9a-f]+:[ ]+33102573[ ]+csrr[ ]+a0,mhpmevent17
+[ ]+[0-9a-f]+:[ ]+33159073[ ]+csrw[ ]+mhpmevent17,a1
+[ ]+[0-9a-f]+:[ ]+33202573[ ]+csrr[ ]+a0,mhpmevent18
+[ ]+[0-9a-f]+:[ ]+33259073[ ]+csrw[ ]+mhpmevent18,a1
+[ ]+[0-9a-f]+:[ ]+33302573[ ]+csrr[ ]+a0,mhpmevent19
+[ ]+[0-9a-f]+:[ ]+33359073[ ]+csrw[ ]+mhpmevent19,a1
+[ ]+[0-9a-f]+:[ ]+33402573[ ]+csrr[ ]+a0,mhpmevent20
+[ ]+[0-9a-f]+:[ ]+33459073[ ]+csrw[ ]+mhpmevent20,a1
+[ ]+[0-9a-f]+:[ ]+33502573[ ]+csrr[ ]+a0,mhpmevent21
+[ ]+[0-9a-f]+:[ ]+33559073[ ]+csrw[ ]+mhpmevent21,a1
+[ ]+[0-9a-f]+:[ ]+33602573[ ]+csrr[ ]+a0,mhpmevent22
+[ ]+[0-9a-f]+:[ ]+33659073[ ]+csrw[ ]+mhpmevent22,a1
+[ ]+[0-9a-f]+:[ ]+33702573[ ]+csrr[ ]+a0,mhpmevent23
+[ ]+[0-9a-f]+:[ ]+33759073[ ]+csrw[ ]+mhpmevent23,a1
+[ ]+[0-9a-f]+:[ ]+33802573[ ]+csrr[ ]+a0,mhpmevent24
+[ ]+[0-9a-f]+:[ ]+33859073[ ]+csrw[ ]+mhpmevent24,a1
+[ ]+[0-9a-f]+:[ ]+33902573[ ]+csrr[ ]+a0,mhpmevent25
+[ ]+[0-9a-f]+:[ ]+33959073[ ]+csrw[ ]+mhpmevent25,a1
+[ ]+[0-9a-f]+:[ ]+33a02573[ ]+csrr[ ]+a0,mhpmevent26
+[ ]+[0-9a-f]+:[ ]+33a59073[ ]+csrw[ ]+mhpmevent26,a1
+[ ]+[0-9a-f]+:[ ]+33b02573[ ]+csrr[ ]+a0,mhpmevent27
+[ ]+[0-9a-f]+:[ ]+33b59073[ ]+csrw[ ]+mhpmevent27,a1
+[ ]+[0-9a-f]+:[ ]+33c02573[ ]+csrr[ ]+a0,mhpmevent28
+[ ]+[0-9a-f]+:[ ]+33c59073[ ]+csrw[ ]+mhpmevent28,a1
+[ ]+[0-9a-f]+:[ ]+33d02573[ ]+csrr[ ]+a0,mhpmevent29
+[ ]+[0-9a-f]+:[ ]+33d59073[ ]+csrw[ ]+mhpmevent29,a1
+[ ]+[0-9a-f]+:[ ]+33e02573[ ]+csrr[ ]+a0,mhpmevent30
+[ ]+[0-9a-f]+:[ ]+33e59073[ ]+csrw[ ]+mhpmevent30,a1
+[ ]+[0-9a-f]+:[ ]+33f02573[ ]+csrr[ ]+a0,mhpmevent31
+[ ]+[0-9a-f]+:[ ]+33f59073[ ]+csrw[ ]+mhpmevent31,a1
+[ ]+[0-9a-f]+:[ ]+60002573[ ]+csrr[ ]+a0,hstatus
+[ ]+[0-9a-f]+:[ ]+60059073[ ]+csrw[ ]+hstatus,a1
+[ ]+[0-9a-f]+:[ ]+60202573[ ]+csrr[ ]+a0,hedeleg
+[ ]+[0-9a-f]+:[ ]+60259073[ ]+csrw[ ]+hedeleg,a1
+[ ]+[0-9a-f]+:[ ]+61202573[ ]+csrr[ ]+a0,hedelegh
+[ ]+[0-9a-f]+:[ ]+61259073[ ]+csrw[ ]+hedelegh,a1
+[ ]+[0-9a-f]+:[ ]+60302573[ ]+csrr[ ]+a0,hideleg
+[ ]+[0-9a-f]+:[ ]+60359073[ ]+csrw[ ]+hideleg,a1
+[ ]+[0-9a-f]+:[ ]+60402573[ ]+csrr[ ]+a0,hie
+[ ]+[0-9a-f]+:[ ]+60459073[ ]+csrw[ ]+hie,a1
+[ ]+[0-9a-f]+:[ ]+60602573[ ]+csrr[ ]+a0,hcounteren
+[ ]+[0-9a-f]+:[ ]+60659073[ ]+csrw[ ]+hcounteren,a1
+[ ]+[0-9a-f]+:[ ]+60702573[ ]+csrr[ ]+a0,hgeie
+[ ]+[0-9a-f]+:[ ]+60759073[ ]+csrw[ ]+hgeie,a1
+[ ]+[0-9a-f]+:[ ]+64302573[ ]+csrr[ ]+a0,htval
+[ ]+[0-9a-f]+:[ ]+64359073[ ]+csrw[ ]+htval,a1
+[ ]+[0-9a-f]+:[ ]+64402573[ ]+csrr[ ]+a0,hip
+[ ]+[0-9a-f]+:[ ]+64459073[ ]+csrw[ ]+hip,a1
+[ ]+[0-9a-f]+:[ ]+64502573[ ]+csrr[ ]+a0,hvip
+[ ]+[0-9a-f]+:[ ]+64559073[ ]+csrw[ ]+hvip,a1
+[ ]+[0-9a-f]+:[ ]+64a02573[ ]+csrr[ ]+a0,htinst
+[ ]+[0-9a-f]+:[ ]+64a59073[ ]+csrw[ ]+htinst,a1
+[ ]+[0-9a-f]+:[ ]+e1202573[ ]+csrr[ ]+a0,hgeip
+[ ]+[0-9a-f]+:[ ]+e1259073[ ]+csrw[ ]+hgeip,a1
+[ ]+[0-9a-f]+:[ ]+60a02573[ ]+csrr[ ]+a0,henvcfg
+[ ]+[0-9a-f]+:[ ]+60a59073[ ]+csrw[ ]+henvcfg,a1
+[ ]+[0-9a-f]+:[ ]+61a02573[ ]+csrr[ ]+a0,henvcfgh
+[ ]+[0-9a-f]+:[ ]+61a59073[ ]+csrw[ ]+henvcfgh,a1
+[ ]+[0-9a-f]+:[ ]+68002573[ ]+csrr[ ]+a0,hgatp
+[ ]+[0-9a-f]+:[ ]+68059073[ ]+csrw[ ]+hgatp,a1
+[ ]+[0-9a-f]+:[ ]+60502573[ ]+csrr[ ]+a0,htimedelta
+[ ]+[0-9a-f]+:[ ]+60559073[ ]+csrw[ ]+htimedelta,a1
+[ ]+[0-9a-f]+:[ ]+61502573[ ]+csrr[ ]+a0,htimedeltah
+[ ]+[0-9a-f]+:[ ]+61559073[ ]+csrw[ ]+htimedeltah,a1
+[ ]+[0-9a-f]+:[ ]+20002573[ ]+csrr[ ]+a0,vsstatus
+[ ]+[0-9a-f]+:[ ]+20059073[ ]+csrw[ ]+vsstatus,a1
+[ ]+[0-9a-f]+:[ ]+20402573[ ]+csrr[ ]+a0,vsie
+[ ]+[0-9a-f]+:[ ]+20459073[ ]+csrw[ ]+vsie,a1
+[ ]+[0-9a-f]+:[ ]+20502573[ ]+csrr[ ]+a0,vstvec
+[ ]+[0-9a-f]+:[ ]+20559073[ ]+csrw[ ]+vstvec,a1
+[ ]+[0-9a-f]+:[ ]+24002573[ ]+csrr[ ]+a0,vsscratch
+[ ]+[0-9a-f]+:[ ]+24059073[ ]+csrw[ ]+vsscratch,a1
+[ ]+[0-9a-f]+:[ ]+24102573[ ]+csrr[ ]+a0,vsepc
+[ ]+[0-9a-f]+:[ ]+24159073[ ]+csrw[ ]+vsepc,a1
+[ ]+[0-9a-f]+:[ ]+24202573[ ]+csrr[ ]+a0,vscause
+[ ]+[0-9a-f]+:[ ]+24259073[ ]+csrw[ ]+vscause,a1
+[ ]+[0-9a-f]+:[ ]+24302573[ ]+csrr[ ]+a0,vstval
+[ ]+[0-9a-f]+:[ ]+24359073[ ]+csrw[ ]+vstval,a1
+[ ]+[0-9a-f]+:[ ]+24402573[ ]+csrr[ ]+a0,vsip
+[ ]+[0-9a-f]+:[ ]+24459073[ ]+csrw[ ]+vsip,a1
+[ ]+[0-9a-f]+:[ ]+28002573[ ]+csrr[ ]+a0,vsatp
+[ ]+[0-9a-f]+:[ ]+28059073[ ]+csrw[ ]+vsatp,a1
+[ ]+[0-9a-f]+:[ ]+35002573[ ]+csrr[ ]+a0,miselect
+[ ]+[0-9a-f]+:[ ]+35059073[ ]+csrw[ ]+miselect,a1
+[ ]+[0-9a-f]+:[ ]+35102573[ ]+csrr[ ]+a0,mireg
+[ ]+[0-9a-f]+:[ ]+35159073[ ]+csrw[ ]+mireg,a1
+[ ]+[0-9a-f]+:[ ]+35c02573[ ]+csrr[ ]+a0,mtopei
+[ ]+[0-9a-f]+:[ ]+35c59073[ ]+csrw[ ]+mtopei,a1
+[ ]+[0-9a-f]+:[ ]+fb002573[ ]+csrr[ ]+a0,mtopi
+[ ]+[0-9a-f]+:[ ]+fb059073[ ]+csrw[ ]+mtopi,a1
+[ ]+[0-9a-f]+:[ ]+30802573[ ]+csrr[ ]+a0,mvien
+[ ]+[0-9a-f]+:[ ]+30859073[ ]+csrw[ ]+mvien,a1
+[ ]+[0-9a-f]+:[ ]+30902573[ ]+csrr[ ]+a0,mvip
+[ ]+[0-9a-f]+:[ ]+30959073[ ]+csrw[ ]+mvip,a1
+[ ]+[0-9a-f]+:[ ]+31302573[ ]+csrr[ ]+a0,midelegh
+[ ]+[0-9a-f]+:[ ]+31359073[ ]+csrw[ ]+midelegh,a1
+[ ]+[0-9a-f]+:[ ]+31402573[ ]+csrr[ ]+a0,mieh
+[ ]+[0-9a-f]+:[ ]+31459073[ ]+csrw[ ]+mieh,a1
+[ ]+[0-9a-f]+:[ ]+31802573[ ]+csrr[ ]+a0,mvienh
+[ ]+[0-9a-f]+:[ ]+31859073[ ]+csrw[ ]+mvienh,a1
+[ ]+[0-9a-f]+:[ ]+31902573[ ]+csrr[ ]+a0,mviph
+[ ]+[0-9a-f]+:[ ]+31959073[ ]+csrw[ ]+mviph,a1
+[ ]+[0-9a-f]+:[ ]+35402573[ ]+csrr[ ]+a0,miph
+[ ]+[0-9a-f]+:[ ]+35459073[ ]+csrw[ ]+miph,a1
+[ ]+[0-9a-f]+:[ ]+35002573[ ]+csrr[ ]+a0,miselect
+[ ]+[0-9a-f]+:[ ]+35059073[ ]+csrw[ ]+miselect,a1
+[ ]+[0-9a-f]+:[ ]+35102573[ ]+csrr[ ]+a0,mireg
+[ ]+[0-9a-f]+:[ ]+35159073[ ]+csrw[ ]+mireg,a1
+[ ]+[0-9a-f]+:[ ]+35202573[ ]+csrr[ ]+a0,mireg2
+[ ]+[0-9a-f]+:[ ]+35259073[ ]+csrw[ ]+mireg2,a1
+[ ]+[0-9a-f]+:[ ]+35302573[ ]+csrr[ ]+a0,mireg3
+[ ]+[0-9a-f]+:[ ]+35359073[ ]+csrw[ ]+mireg3,a1
+[ ]+[0-9a-f]+:[ ]+35502573[ ]+csrr[ ]+a0,mireg4
+[ ]+[0-9a-f]+:[ ]+35559073[ ]+csrw[ ]+mireg4,a1
+[ ]+[0-9a-f]+:[ ]+35602573[ ]+csrr[ ]+a0,mireg5
+[ ]+[0-9a-f]+:[ ]+35659073[ ]+csrw[ ]+mireg5,a1
+[ ]+[0-9a-f]+:[ ]+35702573[ ]+csrr[ ]+a0,mireg6
+[ ]+[0-9a-f]+:[ ]+35759073[ ]+csrw[ ]+mireg6,a1
+[ ]+[0-9a-f]+:[ ]+32102573[ ]+csrr[ ]+a0,mcyclecfg
+[ ]+[0-9a-f]+:[ ]+32159073[ ]+csrw[ ]+mcyclecfg,a1
+[ ]+[0-9a-f]+:[ ]+32202573[ ]+csrr[ ]+a0,minstretcfg
+[ ]+[0-9a-f]+:[ ]+32259073[ ]+csrw[ ]+minstretcfg,a1
+[ ]+[0-9a-f]+:[ ]+72102573[ ]+csrr[ ]+a0,mcyclecfgh
+[ ]+[0-9a-f]+:[ ]+72159073[ ]+csrw[ ]+mcyclecfgh,a1
+[ ]+[0-9a-f]+:[ ]+72202573[ ]+csrr[ ]+a0,minstretcfgh
+[ ]+[0-9a-f]+:[ ]+72259073[ ]+csrw[ ]+minstretcfgh,a1
+[ ]+[0-9a-f]+:[ ]+74102573[ ]+csrr[ ]+a0,mnepc
+[ ]+[0-9a-f]+:[ ]+74159073[ ]+csrw[ ]+mnepc,a1
+[ ]+[0-9a-f]+:[ ]+74202573[ ]+csrr[ ]+a0,mncause
+[ ]+[0-9a-f]+:[ ]+74259073[ ]+csrw[ ]+mncause,a1
+[ ]+[0-9a-f]+:[ ]+74002573[ ]+csrr[ ]+a0,mnscratch
+[ ]+[0-9a-f]+:[ ]+74059073[ ]+csrw[ ]+mnscratch,a1
+[ ]+[0-9a-f]+:[ ]+74402573[ ]+csrr[ ]+a0,mnstatus
+[ ]+[0-9a-f]+:[ ]+74459073[ ]+csrw[ ]+mnstatus,a1
+[ ]+[0-9a-f]+:[ ]+30c02573[ ]+csrr[ ]+a0,mstateen0
+[ ]+[0-9a-f]+:[ ]+30c59073[ ]+csrw[ ]+mstateen0,a1
+[ ]+[0-9a-f]+:[ ]+30d02573[ ]+csrr[ ]+a0,mstateen1
+[ ]+[0-9a-f]+:[ ]+30d59073[ ]+csrw[ ]+mstateen1,a1
+[ ]+[0-9a-f]+:[ ]+30e02573[ ]+csrr[ ]+a0,mstateen2
+[ ]+[0-9a-f]+:[ ]+30e59073[ ]+csrw[ ]+mstateen2,a1
+[ ]+[0-9a-f]+:[ ]+30f02573[ ]+csrr[ ]+a0,mstateen3
+[ ]+[0-9a-f]+:[ ]+30f59073[ ]+csrw[ ]+mstateen3,a1
+[ ]+[0-9a-f]+:[ ]+10c02573[ ]+csrr[ ]+a0,sstateen0
+[ ]+[0-9a-f]+:[ ]+10c59073[ ]+csrw[ ]+sstateen0,a1
+[ ]+[0-9a-f]+:[ ]+10d02573[ ]+csrr[ ]+a0,sstateen1
+[ ]+[0-9a-f]+:[ ]+10d59073[ ]+csrw[ ]+sstateen1,a1
+[ ]+[0-9a-f]+:[ ]+10e02573[ ]+csrr[ ]+a0,sstateen2
+[ ]+[0-9a-f]+:[ ]+10e59073[ ]+csrw[ ]+sstateen2,a1
+[ ]+[0-9a-f]+:[ ]+10f02573[ ]+csrr[ ]+a0,sstateen3
+[ ]+[0-9a-f]+:[ ]+10f59073[ ]+csrw[ ]+sstateen3,a1
+[ ]+[0-9a-f]+:[ ]+60c02573[ ]+csrr[ ]+a0,hstateen0
+[ ]+[0-9a-f]+:[ ]+60c59073[ ]+csrw[ ]+hstateen0,a1
+[ ]+[0-9a-f]+:[ ]+60d02573[ ]+csrr[ ]+a0,hstateen1
+[ ]+[0-9a-f]+:[ ]+60d59073[ ]+csrw[ ]+hstateen1,a1
+[ ]+[0-9a-f]+:[ ]+60e02573[ ]+csrr[ ]+a0,hstateen2
+[ ]+[0-9a-f]+:[ ]+60e59073[ ]+csrw[ ]+hstateen2,a1
+[ ]+[0-9a-f]+:[ ]+60f02573[ ]+csrr[ ]+a0,hstateen3
+[ ]+[0-9a-f]+:[ ]+60f59073[ ]+csrw[ ]+hstateen3,a1
+[ ]+[0-9a-f]+:[ ]+31c02573[ ]+csrr[ ]+a0,mstateen0h
+[ ]+[0-9a-f]+:[ ]+31c59073[ ]+csrw[ ]+mstateen0h,a1
+[ ]+[0-9a-f]+:[ ]+31d02573[ ]+csrr[ ]+a0,mstateen1h
+[ ]+[0-9a-f]+:[ ]+31d59073[ ]+csrw[ ]+mstateen1h,a1
+[ ]+[0-9a-f]+:[ ]+31e02573[ ]+csrr[ ]+a0,mstateen2h
+[ ]+[0-9a-f]+:[ ]+31e59073[ ]+csrw[ ]+mstateen2h,a1
+[ ]+[0-9a-f]+:[ ]+31f02573[ ]+csrr[ ]+a0,mstateen3h
+[ ]+[0-9a-f]+:[ ]+31f59073[ ]+csrw[ ]+mstateen3h,a1
+[ ]+[0-9a-f]+:[ ]+61c02573[ ]+csrr[ ]+a0,hstateen0h
+[ ]+[0-9a-f]+:[ ]+61c59073[ ]+csrw[ ]+hstateen0h,a1
+[ ]+[0-9a-f]+:[ ]+61d02573[ ]+csrr[ ]+a0,hstateen1h
+[ ]+[0-9a-f]+:[ ]+61d59073[ ]+csrw[ ]+hstateen1h,a1
+[ ]+[0-9a-f]+:[ ]+61e02573[ ]+csrr[ ]+a0,hstateen2h
+[ ]+[0-9a-f]+:[ ]+61e59073[ ]+csrw[ ]+hstateen2h,a1
+[ ]+[0-9a-f]+:[ ]+61f02573[ ]+csrr[ ]+a0,hstateen3h
+[ ]+[0-9a-f]+:[ ]+61f59073[ ]+csrw[ ]+hstateen3h,a1
+[ ]+[0-9a-f]+:[ ]+15002573[ ]+csrr[ ]+a0,siselect
+[ ]+[0-9a-f]+:[ ]+15059073[ ]+csrw[ ]+siselect,a1
+[ ]+[0-9a-f]+:[ ]+15102573[ ]+csrr[ ]+a0,sireg
+[ ]+[0-9a-f]+:[ ]+15159073[ ]+csrw[ ]+sireg,a1
+[ ]+[0-9a-f]+:[ ]+15c02573[ ]+csrr[ ]+a0,stopei
+[ ]+[0-9a-f]+:[ ]+15c59073[ ]+csrw[ ]+stopei,a1
+[ ]+[0-9a-f]+:[ ]+db002573[ ]+csrr[ ]+a0,stopi
+[ ]+[0-9a-f]+:[ ]+db059073[ ]+csrw[ ]+stopi,a1
+[ ]+[0-9a-f]+:[ ]+11402573[ ]+csrr[ ]+a0,sieh
+[ ]+[0-9a-f]+:[ ]+11459073[ ]+csrw[ ]+sieh,a1
+[ ]+[0-9a-f]+:[ ]+15402573[ ]+csrr[ ]+a0,siph
+[ ]+[0-9a-f]+:[ ]+15459073[ ]+csrw[ ]+siph,a1
+[ ]+[0-9a-f]+:[ ]+60802573[ ]+csrr[ ]+a0,hvien
+[ ]+[0-9a-f]+:[ ]+60859073[ ]+csrw[ ]+hvien,a1
+[ ]+[0-9a-f]+:[ ]+60902573[ ]+csrr[ ]+a0,hvictl
+[ ]+[0-9a-f]+:[ ]+60959073[ ]+csrw[ ]+hvictl,a1
+[ ]+[0-9a-f]+:[ ]+64602573[ ]+csrr[ ]+a0,hviprio1
+[ ]+[0-9a-f]+:[ ]+64659073[ ]+csrw[ ]+hviprio1,a1
+[ ]+[0-9a-f]+:[ ]+64702573[ ]+csrr[ ]+a0,hviprio2
+[ ]+[0-9a-f]+:[ ]+64759073[ ]+csrw[ ]+hviprio2,a1
+[ ]+[0-9a-f]+:[ ]+25002573[ ]+csrr[ ]+a0,vsiselect
+[ ]+[0-9a-f]+:[ ]+25059073[ ]+csrw[ ]+vsiselect,a1
+[ ]+[0-9a-f]+:[ ]+25102573[ ]+csrr[ ]+a0,vsireg
+[ ]+[0-9a-f]+:[ ]+25159073[ ]+csrw[ ]+vsireg,a1
+[ ]+[0-9a-f]+:[ ]+25c02573[ ]+csrr[ ]+a0,vstopei
+[ ]+[0-9a-f]+:[ ]+25c59073[ ]+csrw[ ]+vstopei,a1
+[ ]+[0-9a-f]+:[ ]+eb002573[ ]+csrr[ ]+a0,vstopi
+[ ]+[0-9a-f]+:[ ]+eb059073[ ]+csrw[ ]+vstopi,a1
+[ ]+[0-9a-f]+:[ ]+61302573[ ]+csrr[ ]+a0,hidelegh
+[ ]+[0-9a-f]+:[ ]+61359073[ ]+csrw[ ]+hidelegh,a1
+[ ]+[0-9a-f]+:[ ]+61802573[ ]+csrr[ ]+a0,hvienh
+[ ]+[0-9a-f]+:[ ]+61859073[ ]+csrw[ ]+hvienh,a1
+[ ]+[0-9a-f]+:[ ]+65502573[ ]+csrr[ ]+a0,hviph
+[ ]+[0-9a-f]+:[ ]+65559073[ ]+csrw[ ]+hviph,a1
+[ ]+[0-9a-f]+:[ ]+65602573[ ]+csrr[ ]+a0,hviprio1h
+[ ]+[0-9a-f]+:[ ]+65659073[ ]+csrw[ ]+hviprio1h,a1
+[ ]+[0-9a-f]+:[ ]+65702573[ ]+csrr[ ]+a0,hviprio2h
+[ ]+[0-9a-f]+:[ ]+65759073[ ]+csrw[ ]+hviprio2h,a1
+[ ]+[0-9a-f]+:[ ]+21402573[ ]+csrr[ ]+a0,vsieh
+[ ]+[0-9a-f]+:[ ]+21459073[ ]+csrw[ ]+vsieh,a1
+[ ]+[0-9a-f]+:[ ]+25402573[ ]+csrr[ ]+a0,vsiph
+[ ]+[0-9a-f]+:[ ]+25459073[ ]+csrw[ ]+vsiph,a1
+[ ]+[0-9a-f]+:[ ]+12002573[ ]+csrr[ ]+a0,scountinhibit
+[ ]+[0-9a-f]+:[ ]+12059073[ ]+csrw[ ]+scountinhibit,a1
+[ ]+[0-9a-f]+:[ ]+01102573[ ]+csrr[ ]+a0,ssp
+[ ]+[0-9a-f]+:[ ]+01159073[ ]+csrw[ ]+ssp,a1
+[ ]+[0-9a-f]+:[ ]+15002573[ ]+csrr[ ]+a0,siselect
+[ ]+[0-9a-f]+:[ ]+15059073[ ]+csrw[ ]+siselect,a1
+[ ]+[0-9a-f]+:[ ]+15102573[ ]+csrr[ ]+a0,sireg
+[ ]+[0-9a-f]+:[ ]+15159073[ ]+csrw[ ]+sireg,a1
+[ ]+[0-9a-f]+:[ ]+15202573[ ]+csrr[ ]+a0,sireg2
+[ ]+[0-9a-f]+:[ ]+15259073[ ]+csrw[ ]+sireg2,a1
+[ ]+[0-9a-f]+:[ ]+15302573[ ]+csrr[ ]+a0,sireg3
+[ ]+[0-9a-f]+:[ ]+15359073[ ]+csrw[ ]+sireg3,a1
+[ ]+[0-9a-f]+:[ ]+15502573[ ]+csrr[ ]+a0,sireg4
+[ ]+[0-9a-f]+:[ ]+15559073[ ]+csrw[ ]+sireg4,a1
+[ ]+[0-9a-f]+:[ ]+15602573[ ]+csrr[ ]+a0,sireg5
+[ ]+[0-9a-f]+:[ ]+15659073[ ]+csrw[ ]+sireg5,a1
+[ ]+[0-9a-f]+:[ ]+15702573[ ]+csrr[ ]+a0,sireg6
+[ ]+[0-9a-f]+:[ ]+15759073[ ]+csrw[ ]+sireg6,a1
+[ ]+[0-9a-f]+:[ ]+25002573[ ]+csrr[ ]+a0,vsiselect
+[ ]+[0-9a-f]+:[ ]+25059073[ ]+csrw[ ]+vsiselect,a1
+[ ]+[0-9a-f]+:[ ]+25102573[ ]+csrr[ ]+a0,vsireg
+[ ]+[0-9a-f]+:[ ]+25159073[ ]+csrw[ ]+vsireg,a1
+[ ]+[0-9a-f]+:[ ]+25202573[ ]+csrr[ ]+a0,vsireg2
+[ ]+[0-9a-f]+:[ ]+25259073[ ]+csrw[ ]+vsireg2,a1
+[ ]+[0-9a-f]+:[ ]+25302573[ ]+csrr[ ]+a0,vsireg3
+[ ]+[0-9a-f]+:[ ]+25359073[ ]+csrw[ ]+vsireg3,a1
+[ ]+[0-9a-f]+:[ ]+25502573[ ]+csrr[ ]+a0,vsireg4
+[ ]+[0-9a-f]+:[ ]+25559073[ ]+csrw[ ]+vsireg4,a1
+[ ]+[0-9a-f]+:[ ]+25602573[ ]+csrr[ ]+a0,vsireg5
+[ ]+[0-9a-f]+:[ ]+25659073[ ]+csrw[ ]+vsireg5,a1
+[ ]+[0-9a-f]+:[ ]+25702573[ ]+csrr[ ]+a0,vsireg6
+[ ]+[0-9a-f]+:[ ]+25759073[ ]+csrw[ ]+vsireg6,a1
+[ ]+[0-9a-f]+:[ ]+da002573[ ]+csrr[ ]+a0,scountovf
+[ ]+[0-9a-f]+:[ ]+da059073[ ]+csrw[ ]+scountovf,a1
+[ ]+[0-9a-f]+:[ ]+72302573[ ]+csrr[ ]+a0,mhpmevent3h
+[ ]+[0-9a-f]+:[ ]+72359073[ ]+csrw[ ]+mhpmevent3h,a1
+[ ]+[0-9a-f]+:[ ]+72402573[ ]+csrr[ ]+a0,mhpmevent4h
+[ ]+[0-9a-f]+:[ ]+72459073[ ]+csrw[ ]+mhpmevent4h,a1
+[ ]+[0-9a-f]+:[ ]+72502573[ ]+csrr[ ]+a0,mhpmevent5h
+[ ]+[0-9a-f]+:[ ]+72559073[ ]+csrw[ ]+mhpmevent5h,a1
+[ ]+[0-9a-f]+:[ ]+72602573[ ]+csrr[ ]+a0,mhpmevent6h
+[ ]+[0-9a-f]+:[ ]+72659073[ ]+csrw[ ]+mhpmevent6h,a1
+[ ]+[0-9a-f]+:[ ]+72702573[ ]+csrr[ ]+a0,mhpmevent7h
+[ ]+[0-9a-f]+:[ ]+72759073[ ]+csrw[ ]+mhpmevent7h,a1
+[ ]+[0-9a-f]+:[ ]+72802573[ ]+csrr[ ]+a0,mhpmevent8h
+[ ]+[0-9a-f]+:[ ]+72859073[ ]+csrw[ ]+mhpmevent8h,a1
+[ ]+[0-9a-f]+:[ ]+72902573[ ]+csrr[ ]+a0,mhpmevent9h
+[ ]+[0-9a-f]+:[ ]+72959073[ ]+csrw[ ]+mhpmevent9h,a1
+[ ]+[0-9a-f]+:[ ]+72a02573[ ]+csrr[ ]+a0,mhpmevent10h
+[ ]+[0-9a-f]+:[ ]+72a59073[ ]+csrw[ ]+mhpmevent10h,a1
+[ ]+[0-9a-f]+:[ ]+72b02573[ ]+csrr[ ]+a0,mhpmevent11h
+[ ]+[0-9a-f]+:[ ]+72b59073[ ]+csrw[ ]+mhpmevent11h,a1
+[ ]+[0-9a-f]+:[ ]+72c02573[ ]+csrr[ ]+a0,mhpmevent12h
+[ ]+[0-9a-f]+:[ ]+72c59073[ ]+csrw[ ]+mhpmevent12h,a1
+[ ]+[0-9a-f]+:[ ]+72d02573[ ]+csrr[ ]+a0,mhpmevent13h
+[ ]+[0-9a-f]+:[ ]+72d59073[ ]+csrw[ ]+mhpmevent13h,a1
+[ ]+[0-9a-f]+:[ ]+72e02573[ ]+csrr[ ]+a0,mhpmevent14h
+[ ]+[0-9a-f]+:[ ]+72e59073[ ]+csrw[ ]+mhpmevent14h,a1
+[ ]+[0-9a-f]+:[ ]+72f02573[ ]+csrr[ ]+a0,mhpmevent15h
+[ ]+[0-9a-f]+:[ ]+72f59073[ ]+csrw[ ]+mhpmevent15h,a1
+[ ]+[0-9a-f]+:[ ]+73002573[ ]+csrr[ ]+a0,mhpmevent16h
+[ ]+[0-9a-f]+:[ ]+73059073[ ]+csrw[ ]+mhpmevent16h,a1
+[ ]+[0-9a-f]+:[ ]+73102573[ ]+csrr[ ]+a0,mhpmevent17h
+[ ]+[0-9a-f]+:[ ]+73159073[ ]+csrw[ ]+mhpmevent17h,a1
+[ ]+[0-9a-f]+:[ ]+73202573[ ]+csrr[ ]+a0,mhpmevent18h
+[ ]+[0-9a-f]+:[ ]+73259073[ ]+csrw[ ]+mhpmevent18h,a1
+[ ]+[0-9a-f]+:[ ]+73302573[ ]+csrr[ ]+a0,mhpmevent19h
+[ ]+[0-9a-f]+:[ ]+73359073[ ]+csrw[ ]+mhpmevent19h,a1
+[ ]+[0-9a-f]+:[ ]+73402573[ ]+csrr[ ]+a0,mhpmevent20h
+[ ]+[0-9a-f]+:[ ]+73459073[ ]+csrw[ ]+mhpmevent20h,a1
+[ ]+[0-9a-f]+:[ ]+73502573[ ]+csrr[ ]+a0,mhpmevent21h
+[ ]+[0-9a-f]+:[ ]+73559073[ ]+csrw[ ]+mhpmevent21h,a1
+[ ]+[0-9a-f]+:[ ]+73602573[ ]+csrr[ ]+a0,mhpmevent22h
+[ ]+[0-9a-f]+:[ ]+73659073[ ]+csrw[ ]+mhpmevent22h,a1
+[ ]+[0-9a-f]+:[ ]+73702573[ ]+csrr[ ]+a0,mhpmevent23h
+[ ]+[0-9a-f]+:[ ]+73759073[ ]+csrw[ ]+mhpmevent23h,a1
+[ ]+[0-9a-f]+:[ ]+73802573[ ]+csrr[ ]+a0,mhpmevent24h
+[ ]+[0-9a-f]+:[ ]+73859073[ ]+csrw[ ]+mhpmevent24h,a1
+[ ]+[0-9a-f]+:[ ]+73902573[ ]+csrr[ ]+a0,mhpmevent25h
+[ ]+[0-9a-f]+:[ ]+73959073[ ]+csrw[ ]+mhpmevent25h,a1
+[ ]+[0-9a-f]+:[ ]+73a02573[ ]+csrr[ ]+a0,mhpmevent26h
+[ ]+[0-9a-f]+:[ ]+73a59073[ ]+csrw[ ]+mhpmevent26h,a1
+[ ]+[0-9a-f]+:[ ]+73b02573[ ]+csrr[ ]+a0,mhpmevent27h
+[ ]+[0-9a-f]+:[ ]+73b59073[ ]+csrw[ ]+mhpmevent27h,a1
+[ ]+[0-9a-f]+:[ ]+73c02573[ ]+csrr[ ]+a0,mhpmevent28h
+[ ]+[0-9a-f]+:[ ]+73c59073[ ]+csrw[ ]+mhpmevent28h,a1
+[ ]+[0-9a-f]+:[ ]+73d02573[ ]+csrr[ ]+a0,mhpmevent29h
+[ ]+[0-9a-f]+:[ ]+73d59073[ ]+csrw[ ]+mhpmevent29h,a1
+[ ]+[0-9a-f]+:[ ]+73e02573[ ]+csrr[ ]+a0,mhpmevent30h
+[ ]+[0-9a-f]+:[ ]+73e59073[ ]+csrw[ ]+mhpmevent30h,a1
+[ ]+[0-9a-f]+:[ ]+73f02573[ ]+csrr[ ]+a0,mhpmevent31h
+[ ]+[0-9a-f]+:[ ]+73f59073[ ]+csrw[ ]+mhpmevent31h,a1
+[ ]+[0-9a-f]+:[ ]+14d02573[ ]+csrr[ ]+a0,stimecmp
+[ ]+[0-9a-f]+:[ ]+14d59073[ ]+csrw[ ]+stimecmp,a1
+[ ]+[0-9a-f]+:[ ]+15d02573[ ]+csrr[ ]+a0,stimecmph
+[ ]+[0-9a-f]+:[ ]+15d59073[ ]+csrw[ ]+stimecmph,a1
+[ ]+[0-9a-f]+:[ ]+24d02573[ ]+csrr[ ]+a0,vstimecmp
+[ ]+[0-9a-f]+:[ ]+24d59073[ ]+csrw[ ]+vstimecmp,a1
+[ ]+[0-9a-f]+:[ ]+25d02573[ ]+csrr[ ]+a0,vstimecmph
+[ ]+[0-9a-f]+:[ ]+25d59073[ ]+csrw[ ]+vstimecmph,a1
+[ ]+[0-9a-f]+:[ ]+14e02573[ ]+csrr[ ]+a0,sctrctl
+[ ]+[0-9a-f]+:[ ]+14e59073[ ]+csrw[ ]+sctrctl,a1
+[ ]+[0-9a-f]+:[ ]+14f02573[ ]+csrr[ ]+a0,sctrstatus
+[ ]+[0-9a-f]+:[ ]+14f59073[ ]+csrw[ ]+sctrstatus,a1
+[ ]+[0-9a-f]+:[ ]+15f02573[ ]+csrr[ ]+a0,sctrdepth
+[ ]+[0-9a-f]+:[ ]+15f59073[ ]+csrw[ ]+sctrdepth,a1
+[ ]+[0-9a-f]+:[ ]+24e02573[ ]+csrr[ ]+a0,vsctrctl
+[ ]+[0-9a-f]+:[ ]+24e59073[ ]+csrw[ ]+vsctrctl,a1
+[ ]+[0-9a-f]+:[ ]+34e02573[ ]+csrr[ ]+a0,mctrctl
+[ ]+[0-9a-f]+:[ ]+34e59073[ ]+csrw[ ]+mctrctl,a1
+[ ]+[0-9a-f]+:[ ]+00002573[ ]+csrr[ ]+a0,0x0
+[ ]+[0-9a-f]+:[ ]+00059073[ ]+csrw[ ]+0x0,a1
+[ ]+[0-9a-f]+:[ ]+00402573[ ]+csrr[ ]+a0,0x4
+[ ]+[0-9a-f]+:[ ]+00459073[ ]+csrw[ ]+0x4,a1
+[ ]+[0-9a-f]+:[ ]+00502573[ ]+csrr[ ]+a0,0x5
+[ ]+[0-9a-f]+:[ ]+00559073[ ]+csrw[ ]+0x5,a1
+[ ]+[0-9a-f]+:[ ]+04002573[ ]+csrr[ ]+a0,0x40
+[ ]+[0-9a-f]+:[ ]+04059073[ ]+csrw[ ]+0x40,a1
+[ ]+[0-9a-f]+:[ ]+04102573[ ]+csrr[ ]+a0,0x41
+[ ]+[0-9a-f]+:[ ]+04159073[ ]+csrw[ ]+0x41,a1
+[ ]+[0-9a-f]+:[ ]+04202573[ ]+csrr[ ]+a0,0x42
+[ ]+[0-9a-f]+:[ ]+04259073[ ]+csrw[ ]+0x42,a1
+[ ]+[0-9a-f]+:[ ]+04302573[ ]+csrr[ ]+a0,0x43
+[ ]+[0-9a-f]+:[ ]+04359073[ ]+csrw[ ]+0x43,a1
+[ ]+[0-9a-f]+:[ ]+04402573[ ]+csrr[ ]+a0,0x44
+[ ]+[0-9a-f]+:[ ]+04459073[ ]+csrw[ ]+0x44,a1
+[ ]+[0-9a-f]+:[ ]+10202573[ ]+csrr[ ]+a0,0x102
+[ ]+[0-9a-f]+:[ ]+10259073[ ]+csrw[ ]+0x102,a1
+[ ]+[0-9a-f]+:[ ]+10302573[ ]+csrr[ ]+a0,0x103
+[ ]+[0-9a-f]+:[ ]+10359073[ ]+csrw[ ]+0x103,a1
+[ ]+[0-9a-f]+:[ ]+00102573[ ]+csrr[ ]+a0,fflags
+[ ]+[0-9a-f]+:[ ]+00159073[ ]+csrw[ ]+fflags,a1
+[ ]+[0-9a-f]+:[ ]+00202573[ ]+csrr[ ]+a0,frm
+[ ]+[0-9a-f]+:[ ]+00259073[ ]+csrw[ ]+frm,a1
+[ ]+[0-9a-f]+:[ ]+00302573[ ]+csrr[ ]+a0,fcsr
+[ ]+[0-9a-f]+:[ ]+00359073[ ]+csrw[ ]+fcsr,a1
+[ ]+[0-9a-f]+:[ ]+7b002573[ ]+csrr[ ]+a0,dcsr
+[ ]+[0-9a-f]+:[ ]+7b059073[ ]+csrw[ ]+dcsr,a1
+[ ]+[0-9a-f]+:[ ]+7b102573[ ]+csrr[ ]+a0,dpc
+[ ]+[0-9a-f]+:[ ]+7b159073[ ]+csrw[ ]+dpc,a1
+[ ]+[0-9a-f]+:[ ]+7b202573[ ]+csrr[ ]+a0,dscratch0
+[ ]+[0-9a-f]+:[ ]+7b259073[ ]+csrw[ ]+dscratch0,a1
+[ ]+[0-9a-f]+:[ ]+7b302573[ ]+csrr[ ]+a0,dscratch1
+[ ]+[0-9a-f]+:[ ]+7b359073[ ]+csrw[ ]+dscratch1,a1
+[ ]+[0-9a-f]+:[ ]+7b202573[ ]+csrr[ ]+a0,dscratch0
+[ ]+[0-9a-f]+:[ ]+7b259073[ ]+csrw[ ]+dscratch0,a1
+[ ]+[0-9a-f]+:[ ]+7a002573[ ]+csrr[ ]+a0,tselect
+[ ]+[0-9a-f]+:[ ]+7a059073[ ]+csrw[ ]+tselect,a1
+[ ]+[0-9a-f]+:[ ]+7a102573[ ]+csrr[ ]+a0,tdata1
+[ ]+[0-9a-f]+:[ ]+7a159073[ ]+csrw[ ]+tdata1,a1
+[ ]+[0-9a-f]+:[ ]+7a202573[ ]+csrr[ ]+a0,tdata2
+[ ]+[0-9a-f]+:[ ]+7a259073[ ]+csrw[ ]+tdata2,a1
+[ ]+[0-9a-f]+:[ ]+7a302573[ ]+csrr[ ]+a0,tdata3
+[ ]+[0-9a-f]+:[ ]+7a359073[ ]+csrw[ ]+tdata3,a1
+[ ]+[0-9a-f]+:[ ]+7a402573[ ]+csrr[ ]+a0,tinfo
+[ ]+[0-9a-f]+:[ ]+7a459073[ ]+csrw[ ]+tinfo,a1
+[ ]+[0-9a-f]+:[ ]+7a502573[ ]+csrr[ ]+a0,tcontrol
+[ ]+[0-9a-f]+:[ ]+7a559073[ ]+csrw[ ]+tcontrol,a1
+[ ]+[0-9a-f]+:[ ]+6a802573[ ]+csrr[ ]+a0,hcontext
+[ ]+[0-9a-f]+:[ ]+6a859073[ ]+csrw[ ]+hcontext,a1
+[ ]+[0-9a-f]+:[ ]+5a802573[ ]+csrr[ ]+a0,scontext
+[ ]+[0-9a-f]+:[ ]+5a859073[ ]+csrw[ ]+scontext,a1
+[ ]+[0-9a-f]+:[ ]+7a802573[ ]+csrr[ ]+a0,mcontext
+[ ]+[0-9a-f]+:[ ]+7a859073[ ]+csrw[ ]+mcontext,a1
+[ ]+[0-9a-f]+:[ ]+7aa02573[ ]+csrr[ ]+a0,mscontext
+[ ]+[0-9a-f]+:[ ]+7aa59073[ ]+csrw[ ]+mscontext,a1
+[ ]+[0-9a-f]+:[ ]+7a102573[ ]+csrr[ ]+a0,tdata1
+[ ]+[0-9a-f]+:[ ]+7a159073[ ]+csrw[ ]+tdata1,a1
+[ ]+[0-9a-f]+:[ ]+7a102573[ ]+csrr[ ]+a0,tdata1
+[ ]+[0-9a-f]+:[ ]+7a159073[ ]+csrw[ ]+tdata1,a1
+[ ]+[0-9a-f]+:[ ]+7a102573[ ]+csrr[ ]+a0,tdata1
+[ ]+[0-9a-f]+:[ ]+7a159073[ ]+csrw[ ]+tdata1,a1
+[ ]+[0-9a-f]+:[ ]+7a102573[ ]+csrr[ ]+a0,tdata1
+[ ]+[0-9a-f]+:[ ]+7a159073[ ]+csrw[ ]+tdata1,a1
+[ ]+[0-9a-f]+:[ ]+7a102573[ ]+csrr[ ]+a0,tdata1
+[ ]+[0-9a-f]+:[ ]+7a159073[ ]+csrw[ ]+tdata1,a1
+[ ]+[0-9a-f]+:[ ]+7a102573[ ]+csrr[ ]+a0,tdata1
+[ ]+[0-9a-f]+:[ ]+7a159073[ ]+csrw[ ]+tdata1,a1
+[ ]+[0-9a-f]+:[ ]+7a302573[ ]+csrr[ ]+a0,tdata3
+[ ]+[0-9a-f]+:[ ]+7a359073[ ]+csrw[ ]+tdata3,a1
+[ ]+[0-9a-f]+:[ ]+7a302573[ ]+csrr[ ]+a0,tdata3
+[ ]+[0-9a-f]+:[ ]+7a359073[ ]+csrw[ ]+tdata3,a1
+[ ]+[0-9a-f]+:[ ]+01502573[ ]+csrr[ ]+a0,seed
+[ ]+[0-9a-f]+:[ ]+01559073[ ]+csrw[ ]+seed,a1
+[ ]+[0-9a-f]+:[ ]+00802573[ ]+csrr[ ]+a0,vstart
+[ ]+[0-9a-f]+:[ ]+00859073[ ]+csrw[ ]+vstart,a1
+[ ]+[0-9a-f]+:[ ]+00902573[ ]+csrr[ ]+a0,vxsat
+[ ]+[0-9a-f]+:[ ]+00959073[ ]+csrw[ ]+vxsat,a1
+[ ]+[0-9a-f]+:[ ]+00a02573[ ]+csrr[ ]+a0,vxrm
+[ ]+[0-9a-f]+:[ ]+00a59073[ ]+csrw[ ]+vxrm,a1
+[ ]+[0-9a-f]+:[ ]+00f02573[ ]+csrr[ ]+a0,vcsr
+[ ]+[0-9a-f]+:[ ]+00f59073[ ]+csrw[ ]+vcsr,a1
+[ ]+[0-9a-f]+:[ ]+c2002573[ ]+csrr[ ]+a0,vl
+[ ]+[0-9a-f]+:[ ]+c2059073[ ]+csrw[ ]+vl,a1
+[ ]+[0-9a-f]+:[ ]+c2102573[ ]+csrr[ ]+a0,vtype
+[ ]+[0-9a-f]+:[ ]+c2159073[ ]+csrw[ ]+vtype,a1
+[ ]+[0-9a-f]+:[ ]+c2202573[ ]+csrr[ ]+a0,vlenb
+[ ]+[0-9a-f]+:[ ]+c2259073[ ]+csrw[ ]+vlenb,a1
+[ ]+[0-9a-f]+:[ ]+01702573[ ]+csrr[ ]+a0,jvt
+[ ]+[0-9a-f]+:[ ]+01759073[ ]+csrw[ ]+jvt,a1
+[ ]+[0-9a-f]+:[ ]+18102573[ ]+csrr[ ]+a0,srmcfg
+[ ]+[0-9a-f]+:[ ]+18159073[ ]+csrw[ ]+srmcfg,a1
diff --git a/gas/testsuite/gas/riscv/csr-version-1p13.l b/gas/testsuite/gas/riscv/csr-version-1p13.l
new file mode 100644
index 0000000..a705581
--- /dev/null
+++ b/gas/testsuite/gas/riscv/csr-version-1p13.l
@@ -0,0 +1,1499 @@
+.*Assembler messages:
+.*Warning: read-only CSR is written `csrw cycle,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw time,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw instret,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter3,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter4,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter5,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter6,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter7,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter8,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter9,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter10,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter11,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter12,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter13,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter14,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter15,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter16,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter17,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter18,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter19,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter20,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter21,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter22,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter23,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter24,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter25,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter26,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter27,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter28,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter29,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter30,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter31,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `cycleh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `cycleh', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw cycleh,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `timeh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `timeh', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw timeh,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `instreth', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `instreth', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw instreth,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter3h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter3h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter3h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter4h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter4h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter4h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter5h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter5h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter5h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter6h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter6h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter6h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter7h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter7h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter7h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter8h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter8h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter8h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter9h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter9h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter9h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter10h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter10h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter10h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter11h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter11h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter11h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter12h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter12h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter12h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter13h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter13h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter13h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter14h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter14h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter14h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter15h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter15h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter15h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter16h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter16h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter16h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter17h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter17h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter17h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter18h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter18h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter18h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter19h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter19h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter19h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter20h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter20h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter20h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter21h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter21h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter21h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter22h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter22h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter22h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter23h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter23h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter23h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter24h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter24h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter24h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter25h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter25h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter25h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter26h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter26h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter26h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter27h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter27h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter27h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter28h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter28h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter28h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter29h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter29h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter29h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter30h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter30h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter30h,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter31h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hpmcounter31h', needs rv32i extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hpmcounter31h,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw mvendorid,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw marchid,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw mimpid,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw mhartid,a1'
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw mconfigptr,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `medelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstatush', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstatush', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `menvcfgh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `menvcfgh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mseccfgh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mseccfgh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg1', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg1', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg3', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg3', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg5', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg5', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg7', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg7', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg9', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg9', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg11', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg11', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg13', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg13', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg15', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `pmpcfg15', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mcycleh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mcycleh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `minstreth', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `minstreth', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter3h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter3h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter4h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter4h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter5h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter5h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter6h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter6h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter7h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter7h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter8h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter8h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter9h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter9h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter10h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter10h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter11h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter11h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter12h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter12h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter13h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter13h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter14h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter14h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter15h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter15h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter16h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter16h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter17h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter17h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter18h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter18h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter19h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter19h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter20h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter20h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter21h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter21h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter22h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter22h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter23h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter23h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter24h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter24h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter25h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter25h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter26h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter26h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter27h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter27h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter28h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter28h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter29h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter29h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter30h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter30h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter31h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmcounter31h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstatus', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstatus', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedeleg', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedeleg', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hedelegh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hideleg', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hideleg', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hie', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hie', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hcounteren', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hcounteren', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hgeie', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hgeie', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `htval', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `htval', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hip', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hip', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvip', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvip', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `htinst', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `htinst', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hgeip', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hgeip', needs `h' extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw hgeip,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `henvcfg', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `henvcfg', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `henvcfgh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `henvcfgh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `henvcfgh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `henvcfgh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hgatp', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hgatp', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `htimedelta', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `htimedelta', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `htimedeltah', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `htimedeltah', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `htimedeltah', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `htimedeltah', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsstatus', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsstatus', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsie', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsie', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstvec', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstvec', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsscratch', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsscratch', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsepc', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsepc', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vscause', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vscause', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstval', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstval', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsip', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsip', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsatp', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsatp', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `miselect', needs `smaia or smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `miselect', needs `smaia or smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg', needs `smaia or smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg', needs `smaia or smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mtopei', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mtopei', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mtopi', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mtopi', needs `smaia' extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw mtopi,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `mvien', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mvien', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mvip', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mvip', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `midelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `midelegh', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `midelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `midelegh', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mieh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mieh', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mieh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mieh', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mvienh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mvienh', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mvienh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mvienh', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mviph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mviph', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mviph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mviph', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `miph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `miph', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `miph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `miph', needs `smaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `miselect', needs `smaia or smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `miselect', needs `smaia or smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg', needs `smaia or smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg', needs `smaia or smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg2', needs `smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg2', needs `smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg3', needs `smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg3', needs `smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg4', needs `smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg4', needs `smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg5', needs `smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg5', needs `smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg6', needs `smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mireg6', needs `smcsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mcyclecfg', needs `smcntrpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mcyclecfg', needs `smcntrpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `minstretcfg', needs `smcntrpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `minstretcfg', needs `smcntrpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mcyclecfgh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mcyclecfgh', needs `smcntrpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mcyclecfgh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mcyclecfgh', needs `smcntrpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `minstretcfgh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `minstretcfgh', needs `smcntrpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `minstretcfgh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `minstretcfgh', needs `smcntrpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mnepc', needs `smrnmi' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mnepc', needs `smrnmi' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mncause', needs `smrnmi' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mncause', needs `smrnmi' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mnscratch', needs `smrnmi' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mnscratch', needs `smrnmi' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mnstatus', needs `smrnmi' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mnstatus', needs `smrnmi' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen0', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen0', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen1', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen1', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen2', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen2', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen3', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen3', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sstateen0', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sstateen0', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sstateen1', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sstateen1', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sstateen2', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sstateen2', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sstateen3', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sstateen3', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen0', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen0', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen0', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen0', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen1', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen1', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen1', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen1', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen2', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen2', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen2', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen2', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen3', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen3', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen3', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen3', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen0h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen0h', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen0h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen0h', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen1h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen1h', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen1h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen1h', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen2h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen2h', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen2h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen2h', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen3h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen3h', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen3h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mstateen3h', needs `smstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen0h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen0h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen0h', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen0h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen0h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen0h', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen1h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen1h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen1h', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen1h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen1h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen1h', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen2h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen2h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen2h', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen2h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen2h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen2h', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen3h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen3h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen3h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen3h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hstateen3h', needs `ssstateen' extension
+.*Info: macro .*
+.*Warning: invalid CSR `siselect', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `siselect', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `stopei', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `stopei', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `stopi', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `stopi', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw stopi,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `sieh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `sieh', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sieh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `sieh', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `siph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `siph', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `siph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `siph', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvien', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvien', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvien', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvien', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvictl', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvictl', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvictl', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvictl', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio1', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio1', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio1', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio1', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio2', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio2', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio2', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio2', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiselect', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiselect', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiselect', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiselect', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstopei', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstopei', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstopei', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstopei', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstopi', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstopi', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstopi', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstopi', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw vstopi,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `hidelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hidelegh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hidelegh', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hidelegh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hidelegh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hidelegh', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvienh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvienh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvienh', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvienh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvienh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hvienh', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviph', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviph', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviph', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviph', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio1h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio1h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio1h', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio1h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio1h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio1h', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio2h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio2h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio2h', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio2h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio2h', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `hviprio2h', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsieh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsieh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsieh', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsieh', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsieh', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsieh', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiph', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiph', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiph', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiph', needs `ssaia' extension
+.*Info: macro .*
+.*Warning: invalid CSR `scountinhibit', needs `ssccfg' extension
+.*Info: macro .*
+.*Warning: invalid CSR `scountinhibit', needs `ssccfg' extension
+.*Info: macro .*
+.*Warning: invalid CSR `ssp', needs `zicfiss' extension
+.*Info: macro .*
+.*Warning: invalid CSR `ssp', needs `zicfiss' extension
+.*Info: macro .*
+.*Warning: invalid CSR `siselect', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `siselect', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg2', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg2', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg3', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg3', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg4', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg4', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg5', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg5', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg6', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sireg6', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiselect', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiselect', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiselect', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsiselect', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg', needs `ssaia or sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg2', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg2', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg2', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg2', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg3', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg3', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg3', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg3', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg4', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg4', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg4', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg4', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg5', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg5', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg5', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg5', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg6', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg6', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg6', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsireg6', needs `sscsrind' extension
+.*Info: macro .*
+.*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `scountovf', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw scountovf,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent3h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent3h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent3h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent3h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent4h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent4h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent4h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent4h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent5h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent5h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent5h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent5h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent6h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent6h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent6h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent6h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent7h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent7h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent7h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent7h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent8h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent8h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent8h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent8h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent9h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent9h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent9h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent9h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent10h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent10h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent10h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent10h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent11h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent11h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent11h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent11h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent12h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent12h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent12h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent12h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent13h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent13h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent13h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent13h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent14h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent14h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent14h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent14h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent15h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent15h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent15h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent15h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent16h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent16h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent16h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent16h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent17h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent17h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent17h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent17h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent18h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent18h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent18h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent18h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent19h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent19h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent19h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent19h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent20h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent20h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent20h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent20h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent21h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent21h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent21h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent21h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent22h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent22h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent22h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent22h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent23h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent23h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent23h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent23h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent24h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent24h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent24h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent24h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent25h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent25h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent25h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent25h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent26h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent26h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent26h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent26h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent27h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent27h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent27h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent27h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent28h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent28h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent28h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent28h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent29h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent29h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent29h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent29h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent30h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent30h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent30h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent30h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent31h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent31h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent31h', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `mhpmevent31h', needs `sscofpmf' extension
+.*Info: macro .*
+.*Warning: invalid CSR `stimecmp', needs `sstc' extension
+.*Info: macro .*
+.*Warning: invalid CSR `stimecmp', needs `sstc' extension
+.*Info: macro .*
+.*Warning: invalid CSR `stimecmph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `stimecmph', needs `sstc' extension
+.*Info: macro .*
+.*Warning: invalid CSR `stimecmph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `stimecmph', needs `sstc' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstimecmp', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstimecmp', needs `sstc' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstimecmp', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstimecmp', needs `sstc' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstimecmph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstimecmph', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstimecmph', needs `sstc' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstimecmph', needs rv32i extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstimecmph', needs `h' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstimecmph', needs `sstc' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sctrctl', needs `ssctr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sctrctl', needs `ssctr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sctrstatus', needs `ssctr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sctrstatus', needs `ssctr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sctrdepth', needs `ssctr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `sctrdepth', needs `ssctr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsctrctl', needs `ssctr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vsctrctl', needs `ssctr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mctrctl', needs `smctr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `mctrctl', needs `smctr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `ustatus' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `ustatus' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `uie' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `uie' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `utvec' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `utvec' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `uscratch' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `uscratch' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `uepc' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `uepc' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `ucause' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `ucause' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `utval' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `utval' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `uip' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `uip' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `sedeleg' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `sedeleg' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `sideleg' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `sideleg' for the privileged spec `1.13'
+.*Info: macro .*
+.*Warning: invalid CSR `fflags', needs `f' extension
+.*Info: macro .*
+.*Warning: invalid CSR `fflags', needs `f' extension
+.*Info: macro .*
+.*Warning: invalid CSR `frm', needs `f' extension
+.*Info: macro .*
+.*Warning: invalid CSR `frm', needs `f' extension
+.*Info: macro .*
+.*Warning: invalid CSR `fcsr', needs `f' extension
+.*Info: macro .*
+.*Warning: invalid CSR `fcsr', needs `f' extension
+.*Info: macro .*
+.*Warning: invalid CSR `seed', needs `zkr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `seed', needs `zkr' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstart', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vstart', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vxsat', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vxsat', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vxrm', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vxrm', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vcsr', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vcsr', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vl', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vl', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw vl,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `vtype', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vtype', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw vtype,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `vlenb', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: invalid CSR `vlenb', needs `zve32x' extension
+.*Info: macro .*
+.*Warning: read-only CSR is written `csrw vlenb,a1'
+.*Info: macro .*
+.*Warning: invalid CSR `jvt', needs `zcmt' extension
+.*Info: macro .*
+.*Warning: invalid CSR `jvt', needs `zcmt' extension
+.*Info: macro .*
+.*Warning: invalid CSR `srmcfg', needs `ssqosid' extension
+.*Info: macro .*
+.*Warning: invalid CSR `srmcfg', needs `ssqosid' extension
+.*Info: macro .*
diff --git a/gas/testsuite/gas/riscv/csr.s b/gas/testsuite/gas/riscv/csr.s
index 44fc1e7..7920644 100644
--- a/gas/testsuite/gas/riscv/csr.s
+++ b/gas/testsuite/gas/riscv/csr.s
@@ -3,7 +3,7 @@
csrw \val, a1
.endm
- # Supported privileged specs, 1.10, 1.11 and 1.12.
+ # Supported privileged specs, 1.10, 1.11, 1.12 and 1.13.
# User Counter/Timers
csr cycle
@@ -101,6 +101,7 @@
csr mstatus
csr misa
csr medeleg
+ csr medelegh # Added in 1.13
csr mideleg
csr mie
csr mtvec
@@ -303,6 +304,7 @@
# Hypervisor Trap Setup
csr hstatus
csr hedeleg
+ csr hedelegh # Added in 1.13
csr hideleg
csr hie
csr hcounteren
@@ -416,6 +418,9 @@
csr vsieh
csr vsiph
+ # Ssccfg or Smcdeleg
+ csr scountinhibit
+
# Zicfiss
csr ssp
@@ -541,3 +546,6 @@
# Zcmt
csr jvt
+
+ # Ssqosid
+ csr srmcfg
diff --git a/gas/testsuite/gas/riscv/dis-data.d b/gas/testsuite/gas/riscv/dis-data.d
new file mode 100644
index 0000000..4b876f0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/dis-data.d
@@ -0,0 +1,134 @@
+#as: -mno-arch-attr
+#source: dis-data.s
+#objdump: -D
+
+.*:[ ]+file format .*
+
+
+Disassembly of section .text.byte:
+
+0+000 <.text.byte>:
+[ ]+0:[ ]+7f[ ]+.byte[ ]+0x7f
+
+Disassembly of section .text.short:
+
+0+000 <.text.short>:
+[ ]+0:[ ]+ef7f[ ]+.short[ ]+0xef7f
+
+Disassembly of section .text.3byte:
+
+0+000 <.text.3byte>:
+[ ]+0:[ ]+03ef7f[ ]+.3byte[ ]+0x03ef7f
+
+Disassembly of section .text.word:
+
+0+000 <.text.word>:
+[ ]+0:[ ]+0403ef7f[ ]+.word[ ]+0x0403ef7f
+
+Disassembly of section .text.5byte:
+
+0+000 <.text.5byte>:
+[ ]+0:[ ]+050403ef7f[ ]+.5byte[ ]+0x050403ef7f
+
+Disassembly of section .text.6byte:
+
+0+000 <.text.6byte>:
+[ ]+0:[ ]+06050403ef7f[ ]+.6byte[ ]+0x06050403ef7f
+
+Disassembly of section .text.7byte:
+
+0+000 <.text.7byte>:
+[ ]+0:[ ]+0706050403ef7f[ ]+.7byte[ ]+0x0706050403ef7f
+
+Disassembly of section .text.dword:
+
+0+000 <.text.dword>:
+[ ]+0:[ ]+080706050403ef7f[ ]+.dword[ ]+0x080706050403ef7f
+
+Disassembly of section .text.9byte:
+
+0+000 <.text.9byte>:
+[ ]+0:[ ]+09080706050403ef7f[ ]+.9byte[ ]+0x09080706050403ef7f
+
+Disassembly of section .text.10byte:
+
+0+000 <.text.10byte>:
+[ ]+0:[ ]+0a09080706050403ef7f[ ]+.10byte[ ]+0x0a09080706050403ef7f
+
+Disassembly of section .text.11byte:
+
+0+000 <.text.11byte>:
+[ ]+0:[ ]+0b0a09080706050403ef7f[ ]+.11byte[ ]+0x0b0a09080706050403ef7f
+
+Disassembly of section .text.12byte:
+
+0+000 <.text.12byte>:
+[ ]+0:[ ]+0c0b0a09080706050403ef7f[ ]+.12byte[ ]+0x0c0b0a09080706050403ef7f
+
+Disassembly of section .text.13byte:
+
+0+000 <.text.13byte>:
+[ ]+0:[ ]+0d0c0b0a09080706050403ef7f[ ]+.13byte[ ]+0x0d0c0b0a09080706050403ef7f
+
+Disassembly of section .text.14byte:
+
+0+000 <.text.14byte>:
+[ ]+0:[ ]+0e0d0c0b0a09080706050403ef7f[ ]+.14byte[ ]+0x0e0d0c0b0a09080706050403ef7f
+
+Disassembly of section .text.15byte:
+
+0+000 <.text.15byte>:
+[ ]+0:[ ]+0f0e0d0c0b0a09080706050403ef7f[ ]+.15byte[ ]+0x0f0e0d0c0b0a09080706050403ef7f
+
+Disassembly of section .text.16byte:
+
+0+000 <.text.16byte>:
+[ ]+0:[ ]+100f0e0d0c0b0a09080706050403ef7f[ ]+.16byte[ ]+0x100f0e0d0c0b0a09080706050403ef7f
+
+Disassembly of section .text.17byte:
+
+0+000 <.text.17byte>:
+[ ]+0:[ ]+11100f0e0d0c0b0a09080706050403ef7f[ ]+.17byte[ ]+0x11100f0e0d0c0b0a09080706050403ef7f
+
+Disassembly of section .text.18byte:
+
+0+000 <.text.18byte>:
+[ ]+0:[ ]+1211100f0e0d0c0b0a09080706050403ef7f[ ]+.18byte[ ]+0x1211100f0e0d0c0b0a09080706050403ef7f
+
+Disassembly of section .text.19byte:
+
+0+000 <.text.19byte>:
+[ ]+0:[ ]+131211100f0e0d0c0b0a09080706050403ef7f[ ]+.19byte[ ]+0x131211100f0e0d0c0b0a09080706050403ef7f
+
+Disassembly of section .text.20byte:
+
+0+000 <.text.20byte>:
+[ ]+0:[ ]+14131211100f0e0d0c0b0a09080706050403ef7f[ ]+.20byte[ ]+0x14131211100f0e0d0c0b0a09080706050403ef7f
+
+Disassembly of section .text.21byte:
+
+0+000 <.text.21byte>:
+[ ]+0:[ ]+1514131211100f0e0d0c0b0a09080706050403ef7f[ ]+.21byte[ ]+0x1514131211100f0e0d0c0b0a09080706050403ef7f
+
+Disassembly of section .text.22byte:
+
+0+000 <.text.22byte>:
+[ ]+0:[ ]+ef7f 0403 0605 0807[ ]+.insn[ ]+22, 0x161514131211100f0e0d0c0b0a09080706050403ef7f
+[ ]+8:[ ]+0a09 0c0b 0e0d 100f ?
+[ ]+10:[ ]+1211 1413 1615 ?
+
+Disassembly of section .text.23byte:
+
+0+000 <.text.23byte>:
+[ ]+0:[ ]+ef7f 0403 0605 0807[ ]+.insn[ ]+22, 0x161514131211100f0e0d0c0b0a09080706050403ef7f
+[ ]+8:[ ]+0a09 0c0b 0e0d 100f ?
+[ ]+10:[ ]+1211 1413 1615 ?
+[ ]+16:[ ]+17[ ]+.byte[ ]+0x17
+
+Disassembly of section .text.24byte:
+
+0+000 <.text.24byte>:
+[ ]+0:[ ]+ef7f 0403 0605 0807[ ]+.insn[ ]+22, 0x161514131211100f0e0d0c0b0a09080706050403ef7f
+[ ]+8:[ ]+0a09 0c0b 0e0d 100f ?
+[ ]+10:[ ]+1211 1413 1615 ?
+[ ]+16:[ ]+1817[ ]+.short[ ]+0x1817
diff --git a/gas/testsuite/gas/riscv/dis-data.s b/gas/testsuite/gas/riscv/dis-data.s
new file mode 100644
index 0000000..4da0fa0
--- /dev/null
+++ b/gas/testsuite/gas/riscv/dis-data.s
@@ -0,0 +1,48 @@
+.section .text.byte, "ax"
+.byte 0x7f
+.section .text.short, "ax"
+.byte 0x7f,0xef
+.section .text.3byte, "ax"
+.byte 0x7f,0xef,3
+.section .text.word, "ax"
+.byte 0x7f,0xef,3,4
+.section .text.5byte, "ax"
+.byte 0x7f,0xef,3,4,5
+.section .text.6byte, "ax"
+.byte 0x7f,0xef,3,4,5,6
+.section .text.7byte, "ax"
+.byte 0x7f,0xef,3,4,5,6,7
+.section .text.dword, "ax"
+.byte 0x7f,0xef,3,4,5,6,7,8
+.section .text.9byte, "ax"
+.byte 0x7f,0xef,3,4,5,6,7,8,9
+.section .text.10byte, "ax"
+.byte 0x7f,0xef,3,4,5,6,7,8,9,10
+.section .text.11byte, "ax"
+.byte 0x7f,0xef,3,4,5,6,7,8,9,10,11
+.section .text.12byte, "ax"
+.byte 0x7f,0xef,3,4,5,6,7,8,9,10,11,12
+.section .text.13byte, "ax"
+.byte 0x7f,0xef,3,4,5,6,7,8,9,10,11,12,13
+.section .text.14byte, "ax"
+.byte 0x7f,0xef,3,4,5,6,7,8,9,10,11,12,13,14
+.section .text.15byte, "ax"
+.byte 0x7f,0xef,3,4,5,6,7,8,9,10,11,12,13,14,15
+.section .text.16byte, "ax"
+.byte 0x7f,0xef,3,4,5,6,7,8,9,10,11,12,13,14,15,16
+.section .text.17byte, "ax"
+.byte 0x7f,0xef,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17
+.section .text.18byte, "ax"
+.byte 0x7f,0xef,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18
+.section .text.19byte, "ax"
+.byte 0x7f,0xef,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19
+.section .text.20byte, "ax"
+.byte 0x7f,0xef,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
+.section .text.21byte, "ax"
+.byte 0x7f,0xef,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21
+.section .text.22byte, "ax"
+.byte 0x7f,0xef,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22
+.section .text.23byte, "ax"
+.byte 0x7f,0xef,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23
+.section .text.24byte, "ax"
+.byte 0x7f,0xef,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24
diff --git a/gas/testsuite/gas/riscv/dis-partial-insn-word.d b/gas/testsuite/gas/riscv/dis-partial-insn-word.d
index 2f52153..af30c5b 100644
--- a/gas/testsuite/gas/riscv/dis-partial-insn-word.d
+++ b/gas/testsuite/gas/riscv/dis-partial-insn-word.d
@@ -8,4 +8,4 @@
Disassembly of section .text:
0+000 <target>:
-[ ]+0:[ ]+000013[ ]+.word[ ]+0x000013
+[ ]+0:[ ]+000013[ ]+.3byte[ ]+0x000013
diff --git a/gas/testsuite/gas/riscv/imply.d b/gas/testsuite/gas/riscv/imply.d
index 78ff200..b68da92 100644
--- a/gas/testsuite/gas/riscv/imply.d
+++ b/gas/testsuite/gas/riscv/imply.d
@@ -22,6 +22,8 @@ SYMBOL TABLE:
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zve32x1p0_zvl128b1p0_zvl256b1p0_zvl32b1p0_zvl64b1p0_xsfvqmaccqoq1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zve32x1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0_xsfvqmaccdod1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_f2p2_zicsr2p0_zve32f1p0_zve32x1p0_zvl32b1p0_xsfvfnrclipxfqf1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_xtheadvector1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zaamo1p0_xtheadzvamo1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_f2p2_d2p2_v1p0_zicsr2p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_f2p2_zicsr2p0_zfhmin1p0_zve32f1p0_zve32x1p0_zvfh1p0_zvfhmin1p0_zvl32b1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_f2p2_zicsr2p0_zve32f1p0_zve32x1p0_zvfhmin1p0_zvl32b1p0
@@ -51,6 +53,7 @@ SYMBOL TABLE:
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_zca1p0_zcmt1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicfilp1p0_zicsr2p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicfiss1p0_zicsr2p0_zimop1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_h1p0_zicsr2p0_sha1p0_shcounterenw1p0_shgatpa1p0_shtvala1p0_shvsatpa1p0_shvstvala1p0_shvstvecd1p0_ssstateen1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_h1p0_zicsr2p0_shcounterenw1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_h1p0_zicsr2p0_shgatpa1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_h1p0_zicsr2p0_shtvala1p0
@@ -82,12 +85,15 @@ SYMBOL TABLE:
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zvbc1p0_zvkb1p0_zvks1p0_zvksc1p0_zvksed1p0_zvksh1p0_zvkt1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zvkb1p0_zvks1p0_zvksed1p0_zvksh1p0_zvkt1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_smaia1p0_ssaia1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_smcdeleg1p0_ssccfg1p0_sscsrind1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_smcsrind1p0_sscsrind1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_smcntrpmf1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_smrnmi1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_smstateen1p0_ssstateen1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_smepmp1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_smdbltrp1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_ssaia1p0
+[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_ssccfg1p0_sscsrind1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_sscsrind1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_sscofpmf1p0
[0-9a-f]+ l .text 0+000 \$xrv32i2p1_zicsr2p0_sscounterenw1p0
diff --git a/gas/testsuite/gas/riscv/imply.s b/gas/testsuite/gas/riscv/imply.s
index d696b52..35c68d3 100644
--- a/gas/testsuite/gas/riscv/imply.s
+++ b/gas/testsuite/gas/riscv/imply.s
@@ -25,6 +25,9 @@ imply xsfvqmaccqoq
imply xsfvqmaccdod
imply xsfvfnrclipxfqf
+imply xtheadvector
+imply xtheadzvamo
+
imply v
imply zvfh
imply zvfhmin
@@ -57,6 +60,8 @@ imply zcmt
imply zicfilp
imply zicfiss
+imply sha
+
imply shcounterenw
imply shgatpa
imply shtvala
@@ -94,13 +99,16 @@ imply zvksc
imply zvks
imply smaia
+imply smcdeleg
imply smcsrind
imply smcntrpmf
+imply smrnmi
imply smstateen
imply smepmp
imply smdbltrp
imply ssaia
+imply ssccfg
imply sscsrind
imply sscofpmf
imply sscounterenw
diff --git a/gas/testsuite/gas/riscv/insn-dwarf.d b/gas/testsuite/gas/riscv/insn-dwarf.d
index b8bd42d..d6c6e6e 100644
--- a/gas/testsuite/gas/riscv/insn-dwarf.d
+++ b/gas/testsuite/gas/riscv/insn-dwarf.d
@@ -82,5 +82,6 @@ insn.s +78 +0x16a.*
insn.s +79 +0x180.*
insn.s +80 +0x196.*
insn.s +81 +0x1ac.*
-insn.s +- +0x1c2
+insn.s +83 +0x1c2.*
+insn.s +- +0x1c6
#pass
diff --git a/gas/testsuite/gas/riscv/insn-na.d b/gas/testsuite/gas/riscv/insn-na.d
index 55bf301..47d1297 100644
--- a/gas/testsuite/gas/riscv/insn-na.d
+++ b/gas/testsuite/gas/riscv/insn-na.d
@@ -1,4 +1,4 @@
-#as: -march=rv32ifcv
+#as: -march=rv32ifcv_zvknha
#source: insn.s
#objdump: -dw -Mno-aliases
@@ -81,3 +81,4 @@ Disassembly of section .text:
[^:]+:[ ]+607f 33cc 55aa cdef 89ab 4567 0123 3210 7654 ba98 00dc[ ]+\.insn[ ]+22, 0x00dcba98765432100123456789abcdef55aa33cc607f
[^:]+:[ ]+607f 33cc 55aa cdef 89ab 4567 0123 3210 7654 ba98 fedc[ ]+\.insn[ ]+22, 0xfedcba98765432100123456789abcdef55aa33cc607f
[^:]+:[ ]+607f 33cc 55aa cdef 89ab 4567 0123 3210 7654 ba98 fedc[ ]+\.insn[ ]+22, 0xfedcba98765432100123456789abcdef55aa33cc607f
+[^:]+:[ ]+ba862277[ ]+vsha2ch\.vv[ ]+v4,v8,v12
diff --git a/gas/testsuite/gas/riscv/insn.d b/gas/testsuite/gas/riscv/insn.d
index 9411a6b..7ffb4e2 100644
--- a/gas/testsuite/gas/riscv/insn.d
+++ b/gas/testsuite/gas/riscv/insn.d
@@ -1,4 +1,4 @@
-#as: -march=rv32ifcv
+#as: -march=rv32ifcv_zvknha
#objdump: -dr
.*:[ ]+file format .*
@@ -114,3 +114,4 @@ Disassembly of section .text:
[^:]+:[ ]+607f 33cc 55aa cdef[ ]+\.insn[ ]+22, 0xfedcba98765432100123456789abcdef55aa33cc607f
[^:]+:[ ]+89ab 4567 0123 3210 ?
[^:]+:[ ]+7654 ba98 fedc ?
+[^:]+:[ ]+ba862277[ ]+vsha2ch\.vv[ ]+v4,v8,v12
diff --git a/gas/testsuite/gas/riscv/insn.s b/gas/testsuite/gas/riscv/insn.s
index 48db59b..4f72d5b 100644
--- a/gas/testsuite/gas/riscv/insn.s
+++ b/gas/testsuite/gas/riscv/insn.s
@@ -79,3 +79,5 @@ target:
.insn 22, 0x00dcba98765432100123456789abcdef55aa33cc607f
.insn 0xfedcba98765432100123456789abcdef55aa33cc607f
.insn 22, 0xfedcba98765432100123456789abcdef55aa33cc607f
+
+ .insn r OP_VE, 0b010, 0b1011101, x4, x12, x8
diff --git a/gas/testsuite/gas/riscv/l-s-macro-zilsd.d b/gas/testsuite/gas/riscv/l-s-macro-zilsd.d
new file mode 100644
index 0000000..c05bae6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/l-s-macro-zilsd.d
@@ -0,0 +1,53 @@
+#as: -march=rv32i_zilsd
+#name: Lx/Sx macro insns for Zilsd
+#source: l-s-macro.s
+#objdump: -dwr
+
+.*:[ ]+file format .*
+
+
+Disassembly of section .text:
+
+0+ <L>:
+[ ]+[0-9a-f]+:[ ]+00000517[ ]+auipc[ ]+a0,0x0[ ]+[0-9a-f]+:[ ]+R_RISCV_PCREL_HI20[ ]+bval
+[ ]+[0-9a-f]+:[ ]+R_RISCV_RELAX.*
+[ ]+[0-9a-f]+:[ ]+00050503[ ]+lb[ ]+a0,0\(a0\) # [0-9a-f]+( <.*>)?[ ]+[0-9a-f]+:[ ]+R_RISCV_PCREL_LO12_I[ ]+.*
+[ ]+[0-9a-f]+:[ ]+R_RISCV_RELAX.*
+[ ]+[0-9a-f]+:[ ]+00000517[ ]+auipc[ ]+a0,0x0[ ]+[0-9a-f]+:[ ]+R_RISCV_PCREL_HI20[ ]+bval
+[ ]+[0-9a-f]+:[ ]+R_RISCV_RELAX.*
+[ ]+[0-9a-f]+:[ ]+00054503[ ]+lbu[ ]+a0,0\(a0\) # [0-9a-f]+( <.*>)?[ ]+[0-9a-f]+:[ ]+R_RISCV_PCREL_LO12_I[ ]+.*
+[ ]+[0-9a-f]+:[ ]+R_RISCV_RELAX.*
+[ ]+[0-9a-f]+:[ ]+00000517[ ]+auipc[ ]+a0,0x0[ ]+[0-9a-f]+:[ ]+R_RISCV_PCREL_HI20[ ]+hval
+[ ]+[0-9a-f]+:[ ]+R_RISCV_RELAX.*
+[ ]+[0-9a-f]+:[ ]+00051503[ ]+lh[ ]+a0,0\(a0\) # [0-9a-f]+( <.*>)?[ ]+[0-9a-f]+:[ ]+R_RISCV_PCREL_LO12_I[ ]+.*
+[ ]+[0-9a-f]+:[ ]+R_RISCV_RELAX.*
+[ ]+[0-9a-f]+:[ ]+00000517[ ]+auipc[ ]+a0,0x0[ ]+[0-9a-f]+:[ ]+R_RISCV_PCREL_HI20[ ]+hval
+[ ]+[0-9a-f]+:[ ]+R_RISCV_RELAX.*
+[ ]+[0-9a-f]+:[ ]+00055503[ ]+lhu[ ]+a0,0\(a0\) # [0-9a-f]+( <.*>)?[ ]+[0-9a-f]+:[ ]+R_RISCV_PCREL_LO12_I[ ]+.*
+[ ]+[0-9a-f]+:[ ]+R_RISCV_RELAX.*
+[ ]+[0-9a-f]+:[ ]+00000517[ ]+auipc[ ]+a0,0x0[ ]+[0-9a-f]+:[ ]+R_RISCV_PCREL_HI20[ ]+wval
+[ ]+[0-9a-f]+:[ ]+R_RISCV_RELAX.*
+[ ]+[0-9a-f]+:[ ]+00052503[ ]+lw[ ]+a0,0\(a0\) # [0-9a-f]+( <.*>)?[ ]+[0-9a-f]+:[ ]+R_RISCV_PCREL_LO12_I[ ]+.*
+[ ]+[0-9a-f]+:[ ]+R_RISCV_RELAX.*
+[ ]+[0-9a-f]+:[ ]+00000517[ ]+auipc[ ]+a0,0x0[ ]+[0-9a-f]+:[ ]+R_RISCV_PCREL_HI20[ ]+dval
+[ ]+[0-9a-f]+:[ ]+R_RISCV_RELAX.*
+[ ]+[0-9a-f]+:[ ]+00053503[ ]+ld[ ]+a0,0\(a0\) # [0-9a-f]+( <.*>)?[ ]+[0-9a-f]+:[ ]+R_RISCV_PCREL_LO12_I[ ]+.*
+[ ]+[0-9a-f]+:[ ]+R_RISCV_RELAX.*
+
+[0-9a-f]+ <S>:
+[ ]+[0-9a-f]+:[ ]+00000297[ ]+auipc[ ]+t0,0x0[ ]+[0-9a-f]+:[ ]+R_RISCV_PCREL_HI20[ ]+bval
+[ ]+[0-9a-f]+:[ ]+R_RISCV_RELAX.*
+[ ]+[0-9a-f]+:[ ]+00a28023[ ]+sb[ ]+a0,0\(t0\) # [0-9a-f]+( <.*>)?[ ]+[0-9a-f]+:[ ]+R_RISCV_PCREL_LO12_S[ ]+.*
+[ ]+[0-9a-f]+:[ ]+R_RISCV_RELAX.*
+[ ]+[0-9a-f]+:[ ]+00000297[ ]+auipc[ ]+t0,0x0[ ]+[0-9a-f]+:[ ]+R_RISCV_PCREL_HI20[ ]+hval
+[ ]+[0-9a-f]+:[ ]+R_RISCV_RELAX.*
+[ ]+[0-9a-f]+:[ ]+00a29023[ ]+sh[ ]+a0,0\(t0\) # [0-9a-f]+( <.*>)?[ ]+[0-9a-f]+:[ ]+R_RISCV_PCREL_LO12_S[ ]+.*
+[ ]+[0-9a-f]+:[ ]+R_RISCV_RELAX.*
+[ ]+[0-9a-f]+:[ ]+00000297[ ]+auipc[ ]+t0,0x0[ ]+[0-9a-f]+:[ ]+R_RISCV_PCREL_HI20[ ]+wval
+[ ]+[0-9a-f]+:[ ]+R_RISCV_RELAX.*
+[ ]+[0-9a-f]+:[ ]+00a2a023[ ]+sw[ ]+a0,0\(t0\) # [0-9a-f]+( <.*>)?[ ]+[0-9a-f]+:[ ]+R_RISCV_PCREL_LO12_S[ ]+.*
+[ ]+[0-9a-f]+:[ ]+R_RISCV_RELAX.*
+[ ]+[0-9a-f]+:[ ]+00000297[ ]+auipc[ ]+t0,0x0[ ]+[0-9a-f]+:[ ]+R_RISCV_PCREL_HI20[ ]+dval
+[ ]+[0-9a-f]+:[ ]+R_RISCV_RELAX.*
+[ ]+[0-9a-f]+:[ ]+00a2b023[ ]+sd[ ]+a0,0\(t0\) # [0-9a-f]+( <.*>)?[ ]+[0-9a-f]+:[ ]+R_RISCV_PCREL_LO12_S[ ]+.*
+[ ]+[0-9a-f]+:[ ]+R_RISCV_RELAX.*
diff --git a/gas/testsuite/gas/riscv/l-s-macro.d b/gas/testsuite/gas/riscv/l-s-macro.d
index d6e5993..93753ba 100644
--- a/gas/testsuite/gas/riscv/l-s-macro.d
+++ b/gas/testsuite/gas/riscv/l-s-macro.d
@@ -1,4 +1,4 @@
-#as: -march=rv64i
+#as: -march=rv64i -defsym __64_bit__=1
#name: Lx/Sx macro insns
#objdump: -dwr
diff --git a/gas/testsuite/gas/riscv/l-s-macro.s b/gas/testsuite/gas/riscv/l-s-macro.s
index 316adc4..d46d3b6 100644
--- a/gas/testsuite/gas/riscv/l-s-macro.s
+++ b/gas/testsuite/gas/riscv/l-s-macro.s
@@ -4,7 +4,9 @@ L:
lh a0, hval
lhu a0, hval
lw a0, wval
+.ifdef __64_bit__
lwu a0, wval
+.endif
ld a0, dval
S:
diff --git a/gas/testsuite/gas/riscv/mapping-symbols.d b/gas/testsuite/gas/riscv/mapping-symbols.d
index 057454b..ab1d470 100644
--- a/gas/testsuite/gas/riscv/mapping-symbols.d
+++ b/gas/testsuite/gas/riscv/mapping-symbols.d
@@ -20,14 +20,13 @@ SYMBOL TABLE:
0+00 l d .text.odd.align.start.insn 0+00 .text.odd.align.start.insn
0+00 l .text.odd.align.start.insn 0+00 \$xrv32i2p1_c2p0
0+02 l .text.odd.align.start.insn 0+00 \$d
-0+08 l .text.odd.align.start.insn 0+00 \$xrv32i2p1
0+00 l d .text.odd.align.start.data 0+00 .text.odd.align.start.data
0+00 l .text.odd.align.start.data 0+00 \$d
0+00 l d .text.zero.fill.first 0+00 .text.zero.fill.first
0+00 l .text.zero.fill.first 0+00 \$xrv32i2p1_c2p0
0+00 l d .text.zero.fill.last 0+00 .text.zero.fill.last
0+00 l .text.zero.fill.last 0+00 \$xrv32i2p1_c2p0
-0+02 l .text.zero.fill.last 0+00 \$x
+0+02 l .text.zero.fill.last 0+00 \$xrv32i2p1_c2p0
0+00 l d .text.zero.fill.align.A 0+00 .text.zero.fill.align.A
0+00 l .text.zero.fill.align.A 0+00 \$xrv32i2p1_c2p0
0+00 l d .text.zero.fill.align.B 0+00 .text.zero.fill.align.B
@@ -42,9 +41,9 @@ SYMBOL TABLE:
0+00 l d .text.relax.align 0+00 .text.relax.align
0+00 l .text.relax.align 0+00 \$xrv32i2p1_c2p0
0+08 l .text.relax.align 0+00 \$xrv32i2p1
-0+0a l .text.section.padding 0+00 \$x
+0+0a l .text.section.padding 0+00 \$xrv32i2p1_c2p0
0+03 l .text.odd.align.start.insn 0+00 \$d
-0+04 l .text.odd.align.start.insn 0+00 \$x
+0+04 l .text.odd.align.start.insn 0+00 \$xrv32i2p1
0+01 l .text.odd.align.start.data 0+00 \$d
0+02 l .text.odd.align.start.data 0+00 \$xrv32i2p1_c2p0
0+00 l d .riscv.attributes 0+00 .riscv.attributes
diff --git a/gas/testsuite/gas/riscv/mapping-x.d b/gas/testsuite/gas/riscv/mapping-x.d
new file mode 100644
index 0000000..ccf9ef7
--- /dev/null
+++ b/gas/testsuite/gas/riscv/mapping-x.d
@@ -0,0 +1,13 @@
+#as:
+#source: mapping-x.s
+#objdump: -d
+
+.*:[ ]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <.text>:
+[ ]+[0-9a-f]+:[ ]+00000013[ ]+nop
+[ ]+[0-9a-f]+:[ ]+0001[ ]+nop
+[ ]+[0-9a-f]+:[ ]+0001[ ]+nop
diff --git a/gas/testsuite/gas/riscv/mapping-x.s b/gas/testsuite/gas/riscv/mapping-x.s
new file mode 100644
index 0000000..f17cf22
--- /dev/null
+++ b/gas/testsuite/gas/riscv/mapping-x.s
@@ -0,0 +1,6 @@
+.attribute arch, "rv32ic"
+.option arch, -c
+.insn 4, 0x00000013
+$x:
+.insn 2, 0x0001
+.insn 2, 0x0001
diff --git a/gas/testsuite/gas/riscv/march-fail-rv32-pointer-masking.d b/gas/testsuite/gas/riscv/march-fail-rv32-pointer-masking.d
new file mode 100644
index 0000000..fb4dfc6
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-rv32-pointer-masking.d
@@ -0,0 +1,3 @@
+#as: -march=rv32i_ssnpm_smnpm_smmpm_sspm_supm
+#source: empty.s
+#error_output: march-fail-rv32-pointer-masking.l
diff --git a/gas/testsuite/gas/riscv/march-fail-rv32-pointer-masking.l b/gas/testsuite/gas/riscv/march-fail-rv32-pointer-masking.l
new file mode 100644
index 0000000..1196528
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-rv32-pointer-masking.l
@@ -0,0 +1,6 @@
+.*Assembler messages:
+.*Error: rv32 does not support the `ssnpm' extension
+.*Error: rv32 does not support the `smnpm' extension
+.*Error: rv32 does not support the `smmpm' extension
+.*Error: rv32 does not support the `sspm' extension
+.*Error: rv32 does not support the `supm' extension
diff --git a/gas/testsuite/gas/riscv/march-fail-rvi20u64v.d b/gas/testsuite/gas/riscv/march-fail-rvi20u64v.d
new file mode 100644
index 0000000..175db99
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-rvi20u64v.d
@@ -0,0 +1,3 @@
+#as: -march=rvi20u64v
+#source: empty.s
+#warning_output: march-fail-rvi20u64v.l
diff --git a/gas/testsuite/gas/riscv/march-fail-rvi20u64v.l b/gas/testsuite/gas/riscv/march-fail-rvi20u64v.l
new file mode 100644
index 0000000..ef27179
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-fail-rvi20u64v.l
@@ -0,0 +1 @@
+.*Warning: should use \"_\" to contact Profiles with other extensions
diff --git a/gas/testsuite/gas/riscv/march-help.l b/gas/testsuite/gas/riscv/march-help.l
index f92c98f..709ccff 100644
--- a/gas/testsuite/gas/riscv/march-help.l
+++ b/gas/testsuite/gas/riscv/march-help.l
@@ -28,6 +28,7 @@ All available -march extensions for RISC-V:
zimop 1.0
zicfiss 1.0
zicfilp 1.0
+ zilsd 1.0
zmmul 1.0
za64rs 1.0
za128rs 1.0
@@ -102,11 +103,14 @@ All available -march extensions for RISC-V:
ztso 1.0
zca 1.0
zcb 1.0
+ zce 1.0
zcf 1.0
zcd 1.0
zcmop 1.0
zcmp 1.0
zcmt 1.0
+ zclsd 1.0
+ sha 1.0
shcounterenw 1.0
shgatpa 1.0
shtvala 1.0
@@ -114,6 +118,7 @@ All available -march extensions for RISC-V:
shvstvala 1.0
shvstvecd 1.0
smaia 1.0
+ smcdeleg 1.0
smcsrind 1.0
smcntrpmf 1.0
smctr 1.0
@@ -122,6 +127,7 @@ All available -march extensions for RISC-V:
smstateen 1.0
smdbltrp 1.0
ssaia 1.0
+ ssccfg 1.0
ssccptr 1.0
sscsrind 1.0
sscofpmf 1.0
@@ -139,6 +145,13 @@ All available -march extensions for RISC-V:
svinval 1.0
svnapot 1.0
svpbmt 1.0
+ svvptc 1.0
+ ssqosid 1.0
+ ssnpm 1.0
+ smnpm 1.0
+ smmpm 1.0
+ sspm 1.0
+ supm 1.0
xcvalu 1.0
xcvbi 1.0
xcvbitmanip 1.0
@@ -159,6 +172,7 @@ All available -march extensions for RISC-V:
xtheadmempair 1.0
xtheadsync 1.0
xtheadvector 1.0
+ xtheadvdot 1.0
xtheadzvamo 1.0
xventanacondops 1.0
xsfvcp 1.0
@@ -166,3 +180,7 @@ All available -march extensions for RISC-V:
xsfvqmaccqoq 1.0
xsfvqmaccdod 1.0
xsfvfnrclipxfqf 1.0
+ xmipscbop 1.0
+ xmipscmov 1.0
+ xmipsexectl 1.0
+ xmipslsp 1.0
diff --git a/gas/testsuite/gas/riscv/march-imply-zce-f-32.d b/gas/testsuite/gas/riscv/march-imply-zce-f-32.d
new file mode 100644
index 0000000..e0cca82
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-imply-zce-f-32.d
@@ -0,0 +1,6 @@
+#as: -march=rv32if_zce -march-attr -misa-spec=20191213
+#readelf: -A
+#source: empty.s
+Attribute Section: riscv
+File Attributes
+ Tag_RISCV_arch: "rv32i2p1_f2p2_zicsr2p0_zca1p0_zcb1p0_zce1p0_zcf1p0_zcmp1p0_zcmt1p0"
diff --git a/gas/testsuite/gas/riscv/march-imply-zce-f-64.d b/gas/testsuite/gas/riscv/march-imply-zce-f-64.d
new file mode 100644
index 0000000..f0ccd7a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-imply-zce-f-64.d
@@ -0,0 +1,6 @@
+#as: -march=rv64if_zce -march-attr -misa-spec=20191213
+#readelf: -A
+#source: empty.s
+Attribute Section: riscv
+File Attributes
+ Tag_RISCV_arch: "rv64i2p1_f2p2_zicsr2p0_zca1p0_zcb1p0_zce1p0_zcmp1p0_zcmt1p0"
diff --git a/gas/testsuite/gas/riscv/march-imply-zce.d b/gas/testsuite/gas/riscv/march-imply-zce.d
new file mode 100644
index 0000000..fd1cd3f
--- /dev/null
+++ b/gas/testsuite/gas/riscv/march-imply-zce.d
@@ -0,0 +1,6 @@
+#as: -march=rv32i_zce -march-attr -misa-spec=20191213
+#readelf: -A
+#source: empty.s
+Attribute Section: riscv
+File Attributes
+ Tag_RISCV_arch: "rv32i2p1_zicsr2p0_zca1p0_zcb1p0_zce1p0_zcmp1p0_zcmt1p0"
diff --git a/gas/testsuite/gas/riscv/mips-insns.d b/gas/testsuite/gas/riscv/mips-insns.d
new file mode 100644
index 0000000..999c433
--- /dev/null
+++ b/gas/testsuite/gas/riscv/mips-insns.d
@@ -0,0 +1,31 @@
+#as:
+#objdump: -dr
+
+.*:[ ]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <.text>:
+[ ]+[0-9a-f]+:[ ]+0003000b[ ]+mips.pref[ ]+0x0,0x0\(t1\)
+[ ]+[0-9a-f]+:[ ]+1ff38f8b[ ]+mips.pref[ ]+0x1f,0x1ff\(t2\)
+[ ]+[0-9a-f]+:[ ]+6eb6350b[ ]+mips.ccmov[ ]+a0,a1,a2,a3
+[ ]+[0-9a-f]+:[ ]+00301013[ ]+mips.ehb
+[ ]+[0-9a-f]+:[ ]+00101013[ ]+mips.ihb
+[ ]+[0-9a-f]+:[ ]+00501013[ ]+mips.pause
+[ ]+[0-9a-f]+:[ ]+e80f4e0b[ ]+mips.ldp[ ]+t3,t4,0\(t5\)
+[ ]+[0-9a-f]+:[ ]+e88f4e0b[ ]+mips.ldp[ ]+t3,t4,8\(t5\)
+[ ]+[0-9a-f]+:[ ]+1f00cf8b[ ]+mips.ldp[ ]+t6,gp,112\(ra\)
+[ ]+[0-9a-f]+:[ ]+1f80cf8b[ ]+mips.ldp[ ]+t6,gp,120\(ra\)
+[ ]+[0-9a-f]+:[ ]+5816450b[ ]+mips.lwp[ ]+a0,a1,0\(a2\)
+[ ]+[0-9a-f]+:[ ]+5856450b[ ]+mips.lwp[ ]+a0,a1,4\(a2\)
+[ ]+[0-9a-f]+:[ ]+7797c68b[ ]+mips.lwp[ ]+a3,a4,120\(a5\)
+[ ]+[0-9a-f]+:[ ]+77d7c68b[ ]+mips.lwp[ ]+a3,a4,124\(a5\)
+[ ]+[0-9a-f]+:[ ]+e9cf500b[ ]+mips.sdp[ ]+t3,t4,0\(t5\)
+[ ]+[0-9a-f]+:[ ]+e9cf540b[ ]+mips.sdp[ ]+t3,t4,8\(t5\)
+[ ]+[0-9a-f]+:[ ]+1ff0d80b[ ]+mips.sdp[ ]+t6,gp,112\(ra\)
+[ ]+[0-9a-f]+:[ ]+1ff0dc0b[ ]+mips.sdp[ ]+t6,gp,120\(ra\)
+[ ]+[0-9a-f]+:[ ]+58a6508b[ ]+mips.swp[ ]+a0,a1,0\(a2\)
+[ ]+[0-9a-f]+:[ ]+58a6528b[ ]+mips.swp[ ]+a0,a1,4\(a2\)
+[ ]+[0-9a-f]+:[ ]+76d7dc8b[ ]+mips.swp[ ]+a3,a4,120\(a5\)
+[ ]+[0-9a-f]+:[ ]+76d7de8b[ ]+mips.swp[ ]+a3,a4,124\(a5\)
diff --git a/gas/testsuite/gas/riscv/mips-insns.s b/gas/testsuite/gas/riscv/mips-insns.s
new file mode 100644
index 0000000..793c6ef
--- /dev/null
+++ b/gas/testsuite/gas/riscv/mips-insns.s
@@ -0,0 +1,42 @@
+ .attribute arch, "rv64i"
+ # xmipscbop
+ .option push
+ .option arch, +xmipscbop
+ mips.pref 0, 0(t1)
+ mips.pref 31, 511(t2)
+ .option pop
+
+ # xmipscmov
+ .option push
+ .option arch, +xmipscmov
+ mips.ccmov a0,a1,a2,a3
+ .option pop
+
+ # xmipsexectl
+ .option push
+ .option arch, +xmipsexectl
+ mips.ehb
+ mips.ihb
+ mips.pause
+ .option pop
+
+ # xmipslsp
+ .option push
+ .option arch, +xmipslsp
+ mips.ldp t3, t4, 0(t5)
+ mips.ldp t3, t4, 8(t5)
+ mips.ldp t6, gp, 112(ra)
+ mips.ldp t6, gp, 120(ra)
+ mips.lwp a0, a1, 0(a2)
+ mips.lwp a0, a1, 4(a2)
+ mips.lwp a3, a4, 120(a5)
+ mips.lwp a3, a4, 124(a5)
+ mips.sdp t3, t4, 0(t5)
+ mips.sdp t3, t4, 8(t5)
+ mips.sdp t6, gp, 112(ra)
+ mips.sdp t6, gp, 120(ra)
+ mips.swp a0, a1, 0(a2)
+ mips.swp a0, a1, 4(a2)
+ mips.swp a3, a4, 120(a5)
+ mips.swp a3, a4, 124(a5)
+ .option pop
diff --git a/gas/testsuite/gas/riscv/no-relax-branch-offset-fail.d b/gas/testsuite/gas/riscv/no-relax-branch-offset-fail.d
new file mode 100644
index 0000000..0e84771
--- /dev/null
+++ b/gas/testsuite/gas/riscv/no-relax-branch-offset-fail.d
@@ -0,0 +1,2 @@
+#as: -march=rv32ic
+#error_output: no-relax-branch-offset-fail.l
diff --git a/gas/testsuite/gas/riscv/no-relax-branch-offset-fail.l b/gas/testsuite/gas/riscv/no-relax-branch-offset-fail.l
new file mode 100644
index 0000000..8f6b5c9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/no-relax-branch-offset-fail.l
@@ -0,0 +1,8 @@
+.*Assembler messages:
+.*:4: Error: invalid J-type offset \(\+1048576\)
+.*:5: Error: invalid J-type offset \(-1048578\)
+.*:8: Error: invalid J-type offset \(\+1048576\)
+.*:10: Error: invalid J-type offset \(-1048578\)
+.*:14: Error: invalid J-type offset \(\+1048576\)
+.*:17: Error: invalid J-type offset \(-1048578\)
+.*:20: Error: invalid CJ-type offset \(\+1\)
diff --git a/gas/testsuite/gas/riscv/no-relax-branch-offset-fail.s b/gas/testsuite/gas/riscv/no-relax-branch-offset-fail.s
new file mode 100644
index 0000000..98a0978
--- /dev/null
+++ b/gas/testsuite/gas/riscv/no-relax-branch-offset-fail.s
@@ -0,0 +1,20 @@
+ .option norelax
+
+ # Relative to the current instruction.
+ j .+0x0ffffe+2
+ j .-0x100000-2
+
+ # Relative to local labels (make sure that all instructions except "c.j" occupy 4-bytes).
+ j 1f+0x0ffffe-4+2
+1:
+ j 2f-0x100000-4-2
+2:
+3:
+ lui t0, 0x12345
+ j 3b+0x0ffffe+4+2
+4:
+ lui t0, 0x2abcd
+ j 4b-0x100000+4-2
+
+ # Jump to odd address (violates instruction alignment).
+ c.j .+1
diff --git a/gas/testsuite/gas/riscv/no-relax-branch-offset-ok.d b/gas/testsuite/gas/riscv/no-relax-branch-offset-ok.d
new file mode 100644
index 0000000..6ef31e2
--- /dev/null
+++ b/gas/testsuite/gas/riscv/no-relax-branch-offset-ok.d
@@ -0,0 +1,17 @@
+#as: -march=rv32ic
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+[ ]+0:[ ]+7ffff06f[ ]+j[ ][0-9a-f]+.*
+[ ]+4:[ ]+8000006f[ ]+j[ ][0-9a-f]+.*
+[ ]+8:[ ]+7ffff06f[ ]+j[ ][0-9a-f]+.*
+[ ]+c:[ ]+8000006f[ ]+j[ ][0-9a-f]+.*
+[ ]+10:[ ]+123452b7[ ]+lui[ ]t0,0x12345
+[ ]+14:[ ]+7ffff06f[ ]+j[ ][0-9a-f]+.*
+[ ]+18:[ ]+2abcd2b7[ ]+lui[ ]t0,0x2abcd
+[ ]+1c:[ ]+8000006f[ ]+j[ ][0-9a-f]+.*
diff --git a/gas/testsuite/gas/riscv/no-relax-branch-offset-ok.s b/gas/testsuite/gas/riscv/no-relax-branch-offset-ok.s
new file mode 100644
index 0000000..4711c90
--- /dev/null
+++ b/gas/testsuite/gas/riscv/no-relax-branch-offset-ok.s
@@ -0,0 +1,17 @@
+ .option norelax
+
+ # Relative to the current instruction.
+ j .+0x0ffffe
+ j .-0x100000
+
+ # Relative to local labels (make sure that all instructions occupy 4-bytes).
+ j 1f+0x0ffffe-4
+1:
+ j 2f-0x100000-4
+2:
+3:
+ lui t0, 0x12345
+ j 3b+0x0ffffe+4
+4:
+ lui t0, 0x2abcd
+ j 4b-0x100000+4
diff --git a/gas/testsuite/gas/riscv/no-relax-pcrel-offset-fail-64.d b/gas/testsuite/gas/riscv/no-relax-pcrel-offset-fail-64.d
new file mode 100644
index 0000000..79d59de
--- /dev/null
+++ b/gas/testsuite/gas/riscv/no-relax-pcrel-offset-fail-64.d
@@ -0,0 +1,2 @@
+#as: -march=rv64i
+#error_output: no-relax-pcrel-offset-fail-64.l
diff --git a/gas/testsuite/gas/riscv/no-relax-pcrel-offset-fail-64.l b/gas/testsuite/gas/riscv/no-relax-pcrel-offset-fail-64.l
new file mode 100644
index 0000000..bcc0925
--- /dev/null
+++ b/gas/testsuite/gas/riscv/no-relax-pcrel-offset-fail-64.l
@@ -0,0 +1,7 @@
+.*Assembler messages:
+.*:8: Error: invalid pcrel_hi offset \(\+2147481600\)
+.*:11: Error: invalid pcrel_hi offset \(-2147485697\)
+.*:17: Error: invalid pcrel_hi offset \(\+2147481600\)
+.*:21: Error: invalid pcrel_hi offset \(-2147485697\)
+.*:26: Error: invalid pcrel_hi offset \(\+2147481600\)
+.*:30: Error: invalid pcrel_hi offset \(-2147485697\)
diff --git a/gas/testsuite/gas/riscv/no-relax-pcrel-offset-fail-64.s b/gas/testsuite/gas/riscv/no-relax-pcrel-offset-fail-64.s
new file mode 100644
index 0000000..d01ffe9
--- /dev/null
+++ b/gas/testsuite/gas/riscv/no-relax-pcrel-offset-fail-64.s
@@ -0,0 +1,31 @@
+ .option norelax
+
+ ## Fail on RV64, wrap without errors on RV32.
+
+ # Relative to the current instruction.
+
+1:
+ auipc a0, %pcrel_hi(.+0x7ffff7ff+1)
+ addi a0, a0, %pcrel_lo(1b)
+2:
+ auipc a0, %pcrel_hi(.-0x80000800-1)
+ addi a0, a0, %pcrel_lo(2b)
+
+ # Relative to local labels (all instructions occupy 4-bytes).
+
+3:
+ auipc a0, %pcrel_hi(4f+0x7ffff7ff-4+1)
+4:
+ addi a0, a0, %pcrel_lo(3b)
+5:
+ auipc a0, %pcrel_hi(6f-0x80000800-4-1)
+6:
+ addi a0, a0, %pcrel_lo(5b)
+
+7:
+ auipc a0, %pcrel_hi(6b+0x7ffff7ff+4+1)
+8:
+ addi a0, a0, %pcrel_lo(7b)
+9:
+ auipc a0, %pcrel_hi(8b-0x80000800+4-1)
+ addi a0, a0, %pcrel_lo(9b)
diff --git a/gas/testsuite/gas/riscv/no-relax-pcrel-offset-fail-not-32.d b/gas/testsuite/gas/riscv/no-relax-pcrel-offset-fail-not-32.d
new file mode 100644
index 0000000..0d7cb7c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/no-relax-pcrel-offset-fail-not-32.d
@@ -0,0 +1,22 @@
+#as: -march=rv32i
+#source: no-relax-pcrel-offset-fail-64.s
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+[ ]+0:[ ]+80000517[ ]+auipc[ ]a0,0x80000
+[ ]+4:[ ]+80050513[ ]+addi[ ]a0,a0,-2048([^0-9].*)?
+[ ]+8:[ ]+7ffff517[ ]+auipc[ ]a0,0x7ffff
+[ ]+c:[ ]+7ff50513[ ]+addi[ ]a0,a0,2047([^0-9].*)?
+[ ]+10:[ ]+80000517[ ]+auipc[ ]a0,0x80000
+[ ]+14:[ ]+80050513[ ]+addi[ ]a0,a0,-2048([^0-9].*)?
+[ ]+18:[ ]+7ffff517[ ]+auipc[ ]a0,0x7ffff
+[ ]+1c:[ ]+7ff50513[ ]+addi[ ]a0,a0,2047([^0-9].*)?
+[ ]+20:[ ]+80000517[ ]+auipc[ ]a0,0x80000
+[ ]+24:[ ]+80050513[ ]+addi[ ]a0,a0,-2048([^0-9].*)?
+[ ]+28:[ ]+7ffff517[ ]+auipc[ ]a0,0x7ffff
+[ ]+2c:[ ]+7ff50513[ ]+addi[ ]a0,a0,2047([^0-9].*)?
diff --git a/gas/testsuite/gas/riscv/no-relax-pcrel-offset-ok.d b/gas/testsuite/gas/riscv/no-relax-pcrel-offset-ok.d
new file mode 100644
index 0000000..e585032
--- /dev/null
+++ b/gas/testsuite/gas/riscv/no-relax-pcrel-offset-ok.d
@@ -0,0 +1,21 @@
+#as: -march=rv64i
+#objdump: -dr
+
+.*: file format .*
+
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+[ ]+0:[ ]+7ffff517[ ]+auipc[ ]a0,0x7ffff
+[ ]+4:[ ]+7ff50513[ ]+addi[ ]a0,a0,2047([^0-9].*)?
+[ ]+8:[ ]+80000517[ ]+auipc[ ]a0,0x80000
+[ ]+c:[ ]+80050513[ ]+addi[ ]a0,a0,-2048([^0-9].*)?
+[ ]+10:[ ]+7ffff517[ ]+auipc[ ]a0,0x7ffff
+[ ]+14:[ ]+7ff50513[ ]+addi[ ]a0,a0,2047([^0-9].*)?
+[ ]+18:[ ]+80000517[ ]+auipc[ ]a0,0x80000
+[ ]+1c:[ ]+80050513[ ]+addi[ ]a0,a0,-2048([^0-9].*)?
+[ ]+20:[ ]+7ffff517[ ]+auipc[ ]a0,0x7ffff
+[ ]+24:[ ]+7ff50513[ ]+addi[ ]a0,a0,2047([^0-9].*)?
+[ ]+28:[ ]+80000517[ ]+auipc[ ]a0,0x80000
+[ ]+2c:[ ]+80050513[ ]+addi[ ]a0,a0,-2048([^0-9].*)?
diff --git a/gas/testsuite/gas/riscv/no-relax-pcrel-offset-ok.s b/gas/testsuite/gas/riscv/no-relax-pcrel-offset-ok.s
new file mode 100644
index 0000000..ededcca
--- /dev/null
+++ b/gas/testsuite/gas/riscv/no-relax-pcrel-offset-ok.s
@@ -0,0 +1,29 @@
+ .option norelax
+
+ # Relative to the current instruction.
+
+1:
+ auipc a0, %pcrel_hi(.+0x7ffff7ff)
+ addi a0, a0, %pcrel_lo(1b)
+2:
+ auipc a0, %pcrel_hi(.-0x80000800)
+ addi a0, a0, %pcrel_lo(2b)
+
+ # Relative to local labels (all instructions occupy 4-bytes).
+
+3:
+ auipc a0, %pcrel_hi(4f+0x7ffff7ff-4)
+4:
+ addi a0, a0, %pcrel_lo(3b)
+5:
+ auipc a0, %pcrel_hi(6f-0x80000800-4)
+6:
+ addi a0, a0, %pcrel_lo(5b)
+
+7:
+ auipc a0, %pcrel_hi(6b+0x7ffff7ff+4)
+8:
+ addi a0, a0, %pcrel_lo(7b)
+9:
+ auipc a0, %pcrel_hi(8b-0x80000800+4)
+ addi a0, a0, %pcrel_lo(9b)
diff --git a/gas/testsuite/gas/riscv/option-arch-fail.l b/gas/testsuite/gas/riscv/option-arch-fail.l
index b9979a4..d83f01d 100644
--- a/gas/testsuite/gas/riscv/option-arch-fail.l
+++ b/gas/testsuite/gas/riscv/option-arch-fail.l
@@ -1,5 +1,5 @@
.*Assembler messages:
-.*Error: m2p0: ISA string must begin with rv32 or rv64
+.*Error: m2p0: ISA string must begin with rv32, rv64 or Profiles
.*Error: cannot \+ or \- base extension `i' in .option arch `\-i'
.*Error: cannot \+ or \- base extension `e' in .option arch `\+e'
.*Error: cannot \+ or \- base extension `g' in .option arch `\-g'
diff --git a/gas/testsuite/gas/riscv/smrnmi.d b/gas/testsuite/gas/riscv/smrnmi.d
new file mode 100644
index 0000000..e0659be
--- /dev/null
+++ b/gas/testsuite/gas/riscv/smrnmi.d
@@ -0,0 +1,10 @@
+#as: -march=rv32i_smrnmi
+#source: smrnmi.s
+#objdump: -d
+
+.*:[ ]+file format .*
+
+Disassembly of section .text:
+
+0+000 <.text>:
+[ ]+[0-9a-f]+:[ ]+70200073[ ]+mnret
diff --git a/gas/testsuite/gas/riscv/smrnmi.s b/gas/testsuite/gas/riscv/smrnmi.s
new file mode 100644
index 0000000..085c10d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/smrnmi.s
@@ -0,0 +1 @@
+ mnret
diff --git a/gas/testsuite/gas/riscv/x-thead-vdot.d b/gas/testsuite/gas/riscv/x-thead-vdot.d
new file mode 100644
index 0000000..021ff1a
--- /dev/null
+++ b/gas/testsuite/gas/riscv/x-thead-vdot.d
@@ -0,0 +1,30 @@
+#as: -march=rv32if_xtheadvdot
+#objdump: -dr
+
+.*:[ ]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <test_int8_int4>:
+[ ]+[0-9a-f]+:[ ]+8000600b[ ]+th.vmaqa\.vv[ ]+v0,v0,v0,v0\.t
+[ ]+[0-9a-f]+:[ ]+8200600b[ ]+th.vmaqa\.vv[ ]+v0,v0,v0
+[ ]+[0-9a-f]+:[ ]+8211600b[ ]+th.vmaqa\.vv[ ]+v0,v2,v1
+[ ]+[0-9a-f]+:[ ]+8400600b[ ]+th.vmaqa\.vx[ ]+v0,zero,v0,v0\.t
+[ ]+[0-9a-f]+:[ ]+8600600b[ ]+th.vmaqa\.vx[ ]+v0,zero,v0
+[ ]+[0-9a-f]+:[ ]+8611600b[ ]+th.vmaqa\.vx[ ]+v0,sp,v1
+[ ]+[0-9a-f]+:[ ]+8800600b[ ]+th.vmaqau\.vv[ ]+v0,v0,v0,v0\.t
+[ ]+[0-9a-f]+:[ ]+8a00600b[ ]+th.vmaqau\.vv[ ]+v0,v0,v0
+[ ]+[0-9a-f]+:[ ]+8a11600b[ ]+th.vmaqau\.vv[ ]+v0,v2,v1
+[ ]+[0-9a-f]+:[ ]+8c00600b[ ]+th.vmaqau\.vx[ ]+v0,zero,v0,v0\.t
+[ ]+[0-9a-f]+:[ ]+8e00600b[ ]+th.vmaqau\.vx[ ]+v0,zero,v0
+[ ]+[0-9a-f]+:[ ]+8e11600b[ ]+th.vmaqau\.vx[ ]+v0,sp,v1
+[ ]+[0-9a-f]+:[ ]+9000600b[ ]+th.vmaqasu\.vv[ ]+v0,v0,v0,v0\.t
+[ ]+[0-9a-f]+:[ ]+9200600b[ ]+th.vmaqasu\.vv[ ]+v0,v0,v0
+[ ]+[0-9a-f]+:[ ]+9211600b[ ]+th.vmaqasu\.vv[ ]+v0,v2,v1
+[ ]+[0-9a-f]+:[ ]+9400600b[ ]+th.vmaqasu\.vx[ ]+v0,zero,v0,v0\.t
+[ ]+[0-9a-f]+:[ ]+9600600b[ ]+th.vmaqasu\.vx[ ]+v0,zero,v0
+[ ]+[0-9a-f]+:[ ]+9611600b[ ]+th.vmaqasu\.vx[ ]+v0,sp,v1
+[ ]+[0-9a-f]+:[ ]+9c00600b[ ]+th.vmaqaus\.vx[ ]+v0,zero,v0,v0\.t
+[ ]+[0-9a-f]+:[ ]+9e00600b[ ]+th.vmaqaus\.vx[ ]+v0,zero,v0
+[ ]+[0-9a-f]+:[ ]+9e11600b[ ]+th.vmaqaus\.vx[ ]+v0,sp,v1
diff --git a/gas/testsuite/gas/riscv/x-thead-vdot.s b/gas/testsuite/gas/riscv/x-thead-vdot.s
new file mode 100644
index 0000000..77c05464
--- /dev/null
+++ b/gas/testsuite/gas/riscv/x-thead-vdot.s
@@ -0,0 +1,31 @@
+
+.text
+
+test_int8_int4:
+ th.vmaqa.vv v0, v0, v0, v0.t
+ th.vmaqa.vv v0, v0, v0
+ th.vmaqa.vv v0, v2, v1
+
+ th.vmaqa.vx v0, x0, v0, v0.t
+ th.vmaqa.vx v0, x0, v0
+ th.vmaqa.vx v0, x2, v1
+
+ th.vmaqau.vv v0, v0, v0, v0.t
+ th.vmaqau.vv v0, v0, v0
+ th.vmaqau.vv v0, v2, v1
+
+ th.vmaqau.vx v0, x0, v0, v0.t
+ th.vmaqau.vx v0, x0, v0
+ th.vmaqau.vx v0, x2, v1
+
+ th.vmaqasu.vv v0, v0, v0, v0.t
+ th.vmaqasu.vv v0, v0, v0
+ th.vmaqasu.vv v0, v2, v1
+
+ th.vmaqasu.vx v0, x0, v0, v0.t
+ th.vmaqasu.vx v0, x0, v0
+ th.vmaqasu.vx v0, x2, v1
+
+ th.vmaqaus.vx v0, x0, v0, v0.t
+ th.vmaqaus.vx v0, x0, v0
+ th.vmaqaus.vx v0, x2, v1
diff --git a/gas/testsuite/gas/riscv/x-thead-vector-fail.d b/gas/testsuite/gas/riscv/x-thead-vector-fail.d
index ac99c3f..35231d9 100644
--- a/gas/testsuite/gas/riscv/x-thead-vector-fail.d
+++ b/gas/testsuite/gas/riscv/x-thead-vector-fail.d
@@ -1,3 +1,3 @@
-#as: -march=rv64gcv_xtheadvector
+#as: -march=rv64gc_zve32x_xtheadvector
#source: x-thead-vector.s
#error_output: x-thead-vector-fail.l
diff --git a/gas/testsuite/gas/riscv/x-thead-vector-fail.l b/gas/testsuite/gas/riscv/x-thead-vector-fail.l
index 7dd88e3..6b4d828 100644
--- a/gas/testsuite/gas/riscv/x-thead-vector-fail.l
+++ b/gas/testsuite/gas/riscv/x-thead-vector-fail.l
@@ -1,2 +1,2 @@
Assembler messages:
-Error: `xtheadvector' is conflict with the `v' extension \ No newline at end of file
+Error: `xtheadvector' is conflict with the `v/zve32x' extension
diff --git a/gas/testsuite/gas/riscv/zicfisslp-64.d b/gas/testsuite/gas/riscv/zicfisslp-64.d
index 0eb1b87..1dba3a6 100644
--- a/gas/testsuite/gas/riscv/zicfisslp-64.d
+++ b/gas/testsuite/gas/riscv/zicfisslp-64.d
@@ -12,6 +12,14 @@ Disassembly of section .text:
[ ]+[0-9a-f]+:[ ]+cdc0c073[ ]+sspopchk[ ]+ra
[ ]+[0-9a-f]+:[ ]+cdc2c073[ ]+sspopchk[ ]+t0
[ ]+[0-9a-f]+:[ ]+cdc04573[ ]+ssrdp[ ]+a0
+[ ]+[0-9a-f]+:[ ]+48a5252f[ ]+ssamoswap.w[ ]+a0,a0,\(a0\)
+[ ]+[0-9a-f]+:[ ]+48a5252f[ ]+ssamoswap.w[ ]+a0,a0,\(a0\)
+[ ]+[0-9a-f]+:[ ]+4ca5252f[ ]+ssamoswap.w.aq[ ]+a0,a0,\(a0\)
+[ ]+[0-9a-f]+:[ ]+4ca5252f[ ]+ssamoswap.w.aq[ ]+a0,a0,\(a0\)
+[ ]+[0-9a-f]+:[ ]+4aa5252f[ ]+ssamoswap.w.rl[ ]+a0,a0,\(a0\)
+[ ]+[0-9a-f]+:[ ]+4aa5252f[ ]+ssamoswap.w.rl[ ]+a0,a0,\(a0\)
+[ ]+[0-9a-f]+:[ ]+4ea5252f[ ]+ssamoswap.w.aqrl[ ]+a0,a0,\(a0\)
+[ ]+[0-9a-f]+:[ ]+4ea5252f[ ]+ssamoswap.w.aqrl[ ]+a0,a0,\(a0\)
[ ]+[0-9a-f]+:[ ]+48a5352f[ ]+ssamoswap.d[ ]+a0,a0,\(a0\)
[ ]+[0-9a-f]+:[ ]+48a5352f[ ]+ssamoswap.d[ ]+a0,a0,\(a0\)
[ ]+[0-9a-f]+:[ ]+4ca5352f[ ]+ssamoswap.d.aq[ ]+a0,a0,\(a0\)
diff --git a/gas/testsuite/gas/riscv/zicfisslp-64.s b/gas/testsuite/gas/riscv/zicfisslp-64.s
index 1199a43..21ff0e2 100644
--- a/gas/testsuite/gas/riscv/zicfisslp-64.s
+++ b/gas/testsuite/gas/riscv/zicfisslp-64.s
@@ -6,6 +6,14 @@
sspopchk x1
sspopchk x5
ssrdp a0
+ ssamoswap.w a0,a0,0(a0)
+ ssamoswap.w a0,a0,(a0)
+ ssamoswap.w.aq a0,a0,0(a0)
+ ssamoswap.w.aq a0,a0,(a0)
+ ssamoswap.w.rl a0,a0,0(a0)
+ ssamoswap.w.rl a0,a0,(a0)
+ ssamoswap.w.aqrl a0,a0,0(a0)
+ ssamoswap.w.aqrl a0,a0,(a0)
ssamoswap.d a0, a0, 0(a0)
ssamoswap.d a0, a0, (a0)
ssamoswap.d.aq a0, a0, 0(a0)
diff --git a/gas/testsuite/gas/riscv/zilsd-zclsd-fail.d b/gas/testsuite/gas/riscv/zilsd-zclsd-fail.d
new file mode 100644
index 0000000..da73c2d
--- /dev/null
+++ b/gas/testsuite/gas/riscv/zilsd-zclsd-fail.d
@@ -0,0 +1,3 @@
+#as: -march=rv32ima_zilsd_zclsd
+#source: zilsd-zclsd-fail.s
+#error_output: zilsd-zclsd-fail.l
diff --git a/gas/testsuite/gas/riscv/zilsd-zclsd-fail.l b/gas/testsuite/gas/riscv/zilsd-zclsd-fail.l
new file mode 100644
index 0000000..18e2903
--- /dev/null
+++ b/gas/testsuite/gas/riscv/zilsd-zclsd-fail.l
@@ -0,0 +1,15 @@
+.*: Assembler messages:
+.*: Error: illegal operands `ld x7,\(x5\)'
+.*: Error: illegal operands `ld x9,8\(x11\)'
+.*: Error: illegal operands `ld x13,16\(x16\)'
+.*: Error: illegal operands `sd x7,\(x5\)'
+.*: Error: illegal operands `sd x9,8\(x11\)'
+.*: Error: illegal operands `sd x13,16\(x16\)'
+.*: Error: illegal operands `c.ld x11,\(x9\)'
+.*: Error: illegal operands `c.ld x13,\(x16\)'
+.*: Error: illegal operands `c.ldsp x0,\(x2\)'
+.*: Error: illegal operands `c.ldsp x11,\(x2\)'
+.*: Error: illegal operands `c.sd x11,\(x9\)'
+.*: Error: illegal operands `c.sd x13,\(x16\)'
+.*: Error: illegal operands `c.sdsp x11,\(x2\)'
+.*: Error: illegal operands `c.sdsp x13,8\(x2\)'
diff --git a/gas/testsuite/gas/riscv/zilsd-zclsd-fail.s b/gas/testsuite/gas/riscv/zilsd-zclsd-fail.s
new file mode 100644
index 0000000..925cd48
--- /dev/null
+++ b/gas/testsuite/gas/riscv/zilsd-zclsd-fail.s
@@ -0,0 +1,15 @@
+target:
+ ld x7, (x5)
+ ld x9, 8(x11)
+ ld x13, 16(x16)
+ sd x7, (x5)
+ sd x9, 8(x11)
+ sd x13, 16(x16)
+ c.ld x11, (x9)
+ c.ld x13, (x16)
+ c.ldsp x0, (x2)
+ c.ldsp x11, (x2)
+ c.sd x11, (x9)
+ c.sd x13, (x16)
+ c.sdsp x11, (x2)
+ c.sdsp x13, 8(x2)
diff --git a/gas/testsuite/gas/riscv/zilsd-zclsd.d b/gas/testsuite/gas/riscv/zilsd-zclsd.d
new file mode 100644
index 0000000..816371c
--- /dev/null
+++ b/gas/testsuite/gas/riscv/zilsd-zclsd.d
@@ -0,0 +1,29 @@
+#as: -march=rv32ima_zilsd_zclsd
+#source: zilsd-zclsd.s
+#objdump: -d -Mno-aliases
+
+.*:[ ]+file format .*
+
+
+Disassembly of section .text:
+
+0+000 <target>:
+[ ]+0:[ ]+0007b303[ ]+ld[ ]+t1,0\(a5\)
+[ ]+4:[ ]+00883903[ ]+ld[ ]+s2,8\(a6\)
+[ ]+8:[ ]+0105ba03[ ]+ld[ ]+s4,16\(a1\)
+[ ]+c:[ ]+0067b023[ ]+sd[ ]+t1,0\(a5\)
+[ ]+10:[ ]+01283423[ ]+sd[ ]+s2,8\(a6\)
+[ ]+14:[ ]+0145b823[ ]+sd[ ]+s4,16\(a1\)
+[ ]+18:[ ]+6380[ ]+c.ld[ ]+s0,0\(a5\)
+[ ]+1a:[ ]+6408[ ]+c.ld[ ]+a0,8\(s0\)
+[ ]+1c:[ ]+6a90[ ]+c.ld[ ]+a2,16\(a3\)
+[ ]+1e:[ ]+e380[ ]+c.sd[ ]+s0,0\(a5\)
+[ ]+20:[ ]+e408[ ]+c.sd[ ]+a0,8\(s0\)
+[ ]+22:[ ]+ea90[ ]+c.sd[ ]+a2,16\(a3\)
+[ ]+24:[ ]+6122[ ]+c.ldsp[ ]+sp,8\(sp\)
+[ ]+26:[ ]+652a[ ]+c.ldsp[ ]+a0,136\(sp\)
+[ ]+28:[ ]+7f7e[ ]+c.ldsp[ ]+t5,504\(sp\)
+[ ]+2a:[ ]+e002[ ]+c.sdsp[ ]+zero,0\(sp\)
+[ ]+2c:[ ]+e40a[ ]+c.sdsp[ ]+sp,8\(sp\)
+[ ]+2e:[ ]+e52a[ ]+c.sdsp[ ]+a0,136\(sp\)
+[ ]+30:[ ]+fffa[ ]+c.sdsp[ ]+t5,504\(sp\)
diff --git a/gas/testsuite/gas/riscv/zilsd-zclsd.s b/gas/testsuite/gas/riscv/zilsd-zclsd.s
new file mode 100644
index 0000000..28d83ed
--- /dev/null
+++ b/gas/testsuite/gas/riscv/zilsd-zclsd.s
@@ -0,0 +1,20 @@
+target:
+ ld x6, (x15)
+ ld x18, 8(x16)
+ ld x20, 16(x11)
+ sd x6, (x15)
+ sd x18, 8(x16)
+ sd x20, 16(x11)
+ c.ld x8, (x15)
+ c.ld x10, 8(x8)
+ c.ld x12, 16(x13)
+ c.sd x8, (x15)
+ c.sd x10, 8(x8)
+ c.sd x12, 16(x13)
+ c.ldsp x2, 8(sp)
+ c.ldsp x10, 136(sp)
+ c.ldsp x30, 504(sp)
+ c.sdsp x0, (sp)
+ c.sdsp x2, 8(sp)
+ c.sdsp x10, 136(sp)
+ c.sdsp x30, 504(sp)
diff --git a/gas/testsuite/gas/score/pr32700.d b/gas/testsuite/gas/score/pr32700.d
new file mode 100644
index 0000000..be814b8
--- /dev/null
+++ b/gas/testsuite/gas/score/pr32700.d
@@ -0,0 +1,14 @@
+#as:
+#objdump: -dr
+#source: pr32700.s
+
+.*: +file format .*
+
+Disassembly of section \.text:
+
+0+ <\.text>:
+ 0: 94388000 ldis r1, 0x0\(0\)
+ 0: R_SCORE_HI16 dwarf_reg_size_table
+ 4: 84348000 ori r1, 0x0
+ 4: R_SCORE_LO16 dwarf_reg_size_table
+ 8: d8e18000 lbu r7, \[r1, 0\]
diff --git a/gas/testsuite/gas/score/pr32700.s b/gas/testsuite/gas/score/pr32700.s
new file mode 100644
index 0000000..117b3c8
--- /dev/null
+++ b/gas/testsuite/gas/score/pr32700.s
@@ -0,0 +1,2 @@
+ .text
+ lbu r7,dwarf_reg_size_table
diff --git a/gas/testsuite/gas/score/relax.exp b/gas/testsuite/gas/score/relax.exp
index 184f918..534a822 100644
--- a/gas/testsuite/gas/score/relax.exp
+++ b/gas/testsuite/gas/score/relax.exp
@@ -32,5 +32,5 @@ if [istarget score-*-*] then {
run_dump_test "move"
run_dump_test "rD_rA_BN"
run_dump_test "rD_rA"
+ run_dump_test pr32700
}
-
diff --git a/gas/write.c b/gas/write.c
index 439f6a6..8ccd996 100644
--- a/gas/write.c
+++ b/gas/write.c
@@ -1653,6 +1653,19 @@ write_contents (bfd *abfd ATTRIBUTE_UNUSED,
offsetT count;
gas_assert (f->fr_type == rs_fill || f->fr_type == rs_fill_nop);
+
+ count = f->fr_offset;
+ fill_literal = f->fr_literal + f->fr_fix;
+ if (f->fr_type == rs_fill_nop && count > 0)
+ {
+ md_generate_nops (f, fill_literal, count, *fill_literal);
+ /* md_generate_nops updates fr_fix and fr_var. */
+ f->fr_offset = (f->fr_next->fr_address - f->fr_address
+ - f->fr_fix) / f->fr_var;
+ count = f->fr_offset;
+ fill_literal = f->fr_literal + f->fr_fix;
+ }
+
if (f->fr_fix)
{
x = bfd_set_section_contents (stdoutput, sec,
@@ -1671,39 +1684,6 @@ write_contents (bfd *abfd ATTRIBUTE_UNUSED,
}
fill_size = f->fr_var;
- count = f->fr_offset;
- fill_literal = f->fr_literal + f->fr_fix;
-
- if (f->fr_type == rs_fill_nop)
- {
- gas_assert (count >= 0 && fill_size == 1);
- if (count > 0)
- {
- char *buf = xmalloc (count);
- md_generate_nops (f, buf, count, *fill_literal);
- x = bfd_set_section_contents
- (stdoutput, sec, buf, (file_ptr) offset,
- (bfd_size_type) count);
- if (!x)
- as_fatal (ngettext ("can't fill %ld byte "
- "in section %s of %s: '%s'",
- "can't fill %ld bytes "
- "in section %s of %s: '%s'",
- (long) count),
- (long) count,
- bfd_section_name (sec),
- bfd_get_filename (stdoutput),
- bfd_errmsg (bfd_get_error ()));
- offset += count;
-#ifndef NO_LISTING
- if (listing & LISTING_LISTING)
- f->fr_opcode = buf;
- else
-#endif
- free (buf);
- }
- continue;
- }
gas_assert (count >= 0);
if (fill_size && count)
@@ -1804,9 +1784,8 @@ set_symtab (void)
if (nsyms)
{
int i;
- bfd_size_type amt = (bfd_size_type) nsyms * sizeof (asymbol *);
- asympp = (asymbol **) bfd_alloc (stdoutput, amt);
+ asympp = notes_alloc (nsyms * sizeof (asymbol *));
symp = symbol_rootP;
for (i = 0; i < nsyms; symp = symbol_next (symp))
if (!symbol_removed_p (symp)
@@ -1919,27 +1898,27 @@ subsegs_finish (void)
}
#ifdef OBJ_ELF
+
static void
create_obj_attrs_section (void)
{
- segT s;
- char *p;
- offsetT size;
- const char *name;
-
- size = bfd_elf_obj_attr_size (stdoutput);
+ offsetT size = bfd_elf_obj_attr_size (stdoutput);
if (size == 0)
return;
- name = get_elf_backend_data (stdoutput)->obj_attrs_section;
- if (!name)
+ const char *name = get_elf_backend_data (stdoutput)->obj_attrs_section;
+ if (name == NULL)
+ /* Note: .gnu.attributes is different from GNU_BUILD_ATTRS_SECTION_NAME
+ (a.k.a .gnu.build.attributes). The first one seems to be used by some
+ backends like PowerPC to store the build attributes. The second one is
+ used to store build notes. */
name = ".gnu.attributes";
- s = subseg_new (name, 0);
+ segT s = subseg_new (name, 0);
elf_section_type (s)
= get_elf_backend_data (stdoutput)->obj_attrs_section_type;
bfd_set_section_flags (s, SEC_READONLY | SEC_DATA);
frag_now_fix ();
- p = frag_more (size);
+ char *p = frag_more (size);
bfd_elf_set_obj_attr_contents (stdoutput, (bfd_byte *)p, size);
subsegs_finish_section (s);
diff --git a/gdb/.dir-locals.el b/gdb/.dir-locals.el
index eb4edba..8228d2b 100644
--- a/gdb/.dir-locals.el
+++ b/gdb/.dir-locals.el
@@ -1,5 +1,5 @@
;; Emacs settings.
-;; Copyright (C) 2012-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2025 Free Software Foundation, Inc.
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
diff --git a/gdb/MAINTAINERS b/gdb/MAINTAINERS
index 927be43..5284110 100644
--- a/gdb/MAINTAINERS
+++ b/gdb/MAINTAINERS
@@ -366,7 +366,6 @@ the native maintainer when resolving ABI issues.
mcore Deleted
mep --target=mep-elf
- Kevin Buettner kevinb@redhat.com
microblaze --target=microblaze-xilinx-elf
--target=microblaze-linux-gnu
@@ -493,7 +492,7 @@ sim/ See sim/MAINTAINERS
readline/ Master version: ftp://ftp.cwru.edu/pub/bash/
ALL
- Host maintainers (host dependant parts)
+ Host maintainers (host dependent parts)
(but get your changes into the master version)
tcl/ tk/ itcl/ ALL
@@ -514,13 +513,9 @@ ARM Richard Earnshaw rearnsha@arm.com
Blackfin Mike Frysinger vapier@gentoo.org
CRIS Hans-Peter Nilsson hp@axis.com
IA64 Jeff Johnston jjohnstn@redhat.com
-PowerPC Kevin Buettner kevinb@redhat.com
S390 Ulrich Weigand uweigand@de.ibm.com
djgpp DJ Delorie dj@delorie.com
[Please use this address to contact DJ about DJGPP]
-ia64 Kevin Buettner kevinb@redhat.com
-AIX Kevin Buettner kevinb@redhat.com
-GNU/Linux PPC native Kevin Buettner kevinb@redhat.com
Pascal support Pierre Muller muller@sourceware.org
@@ -607,6 +602,7 @@ Klaus Gerlicher klaus.gerlicher@intel.com
Mircea Gherzan mircea.gherzan@intel.com
Paul Gilliam pgilliam@us.ibm.com
Tristan Gingold tgingold@free.fr
+Timur Golubovich timurgol007@gmail.com
Anton Gorenkov xgsa@yandex.ru
Raoul Gough RaoulGough@yahoo.co.uk
Anthony Green green@redhat.com
@@ -729,6 +725,7 @@ Theodore A. Roth troth@openavr.org
Yvan Roux yvan.roux@foss.st.com
Ian Roxborough irox@redhat.com
Maciej W. Rozycki macro@orcam.me.uk
+Piotr Rudnicki piotr.rudnicki@intel.com
Kamil Rytarowski n54@gmx.com
Grace Sainsbury graces@redhat.com
Kei Sakamoto sakamoto.kei@renesas.com
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index b726b1d..998203c 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 1989-2024 Free Software Foundation, Inc.
+# Copyright (C) 1989-2025 Free Software Foundation, Inc.
# This file is part of GDB.
@@ -265,7 +265,7 @@ INCSUPPORT = \
-I..
#
-# CLI sub directory definitons
+# CLI sub directory definitions
#
SUBDIR_CLI_SRCS = \
cli/cli-cmds.c \
@@ -282,7 +282,7 @@ SUBDIR_CLI_SRCS = \
SUBDIR_CLI_OBS = $(patsubst %.c,%.o,$(SUBDIR_CLI_SRCS))
#
-# MI sub directory definitons
+# MI sub directory definitions
#
SUBDIR_MI_SRCS = \
mi/mi-cmd-break.c \
@@ -350,7 +350,7 @@ SUBDIR_GCC_COMPILE_SRCS = \
SUBDIR_GCC_COMPILE_OBS = $(patsubst %.c,%.o,$(filter %.c,$(SUBDIR_GCC_COMPILE_SRCS)))
#
-# Guile sub directory definitons for guile support.
+# Guile sub directory definitions for guile support.
#
SUBDIR_GUILE_SRCS = \
guile/guile.c \
@@ -387,7 +387,7 @@ SUBDIR_GUILE_LDFLAGS =
SUBDIR_GUILE_CFLAGS =
#
-# python sub directory definitons
+# python sub directory definitions
#
SUBDIR_PYTHON_SRCS = \
python/py-arch.c \
@@ -479,6 +479,7 @@ SELFTESTS_SRCS = \
unittests/ptid-selftests.c \
unittests/main-thread-selftests.c \
unittests/mkdir-recursive-selftests.c \
+ unittests/remote-arg-selftests.c \
unittests/rsp-low-selftests.c \
unittests/scoped_fd-selftests.c \
unittests/scoped_ignore_signal-selftests.c \
@@ -491,7 +492,6 @@ SELFTESTS_SRCS = \
unittests/ui-file-selftests.c \
unittests/unique_xmalloc_ptr_char.c \
unittests/unpack-selftests.c \
- unittests/utils-selftests.c \
unittests/vec-utils-selftests.c \
unittests/xml-utils-selftests.c
@@ -741,6 +741,7 @@ ALL_64_TARGET_OBS = \
amd64-darwin-tdep.o \
amd64-dicos-tdep.o \
amd64-fbsd-tdep.o \
+ amd64-gnu-tdep.o \
amd64-linux-tdep.o \
amd64-netbsd-tdep.o \
amd64-obsd-tdep.o \
@@ -768,6 +769,7 @@ ALL_64_TARGET_OBS = \
mips-sde-tdep.o \
mips-tdep.o \
mips64-obsd-tdep.o \
+ riscv-canonicalize-syscall-gen.o \
riscv-fbsd-tdep.o \
riscv-linux-tdep.o \
riscv-none-tdep.o \
@@ -895,6 +897,7 @@ ALL_TARGET_OBS = \
sparc-ravenscar-thread.o \
sparc-sol2-tdep.o \
sparc-tdep.o \
+ svr4-tls-tdep.o \
symfile-mem.o \
tic6x-linux-tdep.o \
tic6x-tdep.o \
@@ -1089,31 +1092,6 @@ COMMON_SFILES = \
disasm.c \
displaced-stepping.c \
dummy-frame.c \
- dwarf2/abbrev.c \
- dwarf2/abbrev-table-cache.c \
- dwarf2/ada-imported.c \
- dwarf2/aranges.c \
- dwarf2/attribute.c \
- dwarf2/comp-unit-head.c \
- dwarf2/cooked-index.c \
- dwarf2/cu.c \
- dwarf2/die.c \
- dwarf2/dwz.c \
- dwarf2/expr.c \
- dwarf2/frame-tailcall.c \
- dwarf2/frame.c \
- dwarf2/index-cache.c \
- dwarf2/index-common.c \
- dwarf2/index-write.c \
- dwarf2/leb.c \
- dwarf2/line-header.c \
- dwarf2/loc.c \
- dwarf2/macro.c \
- dwarf2/read.c \
- dwarf2/read-debug-names.c \
- dwarf2/read-gdb-index.c \
- dwarf2/section.c \
- dwarf2/stringify.c \
extract-store-integer.c \
eval.c \
event-top.c \
@@ -1164,7 +1142,6 @@ COMMON_SFILES = \
maint.c \
maint-test-options.c \
maint-test-settings.c \
- mdebugread.c \
mem-break.c \
memattr.c \
memory-map.c \
@@ -1352,6 +1329,10 @@ HFILES_NO_SRCDIR = \
dummy-frame.h \
dwarf2/aranges.h \
dwarf2/cooked-index.h \
+ dwarf2/cooked-index-entry.h \
+ dwarf2/cooked-index-shard.h \
+ dwarf2/cooked-index-worker.h \
+ dwarf2/cooked-indexer.h \
dwarf2/cu.h \
dwarf2/frame-tailcall.h \
dwarf2/frame.h \
@@ -1499,7 +1480,6 @@ HFILES_NO_SRCDIR = \
solib-darwin.h \
solib-svr4.h \
solib-target.h \
- solist.h \
source.h \
source-cache.h \
sparc-nat.h \
@@ -1510,6 +1490,7 @@ HFILES_NO_SRCDIR = \
stabsread.h \
stack.h \
stap-probe.h \
+ svr4-tls-tdep.h \
symfile.h \
symtab.h \
target.h \
@@ -1700,6 +1681,7 @@ ALLDEPFILES = \
amd64-dicos-tdep.c \
amd64-fbsd-nat.c \
amd64-fbsd-tdep.c \
+ amd64-gnu-tdep.c \
amd64-linux-nat.c \
amd64-linux-tdep.c \
amd64-nat.c \
@@ -1755,7 +1737,6 @@ ALLDEPFILES = \
i386-dicos-tdep.c \
i386-fbsd-nat.c \
i386-fbsd-tdep.c \
- i386-gnu-nat.c \
i386-gnu-tdep.c \
i386-linux-nat.c \
i386-linux-tdep.c \
@@ -1873,6 +1854,7 @@ ALLDEPFILES = \
sparc64-obsd-tdep.c \
sparc64-sol2-tdep.c \
sparc64-tdep.c \
+ svr4-tls-tdep.c \
tilegx-linux-nat.c \
tilegx-linux-tdep.c \
tilegx-tdep.c \
@@ -1882,6 +1864,7 @@ ALLDEPFILES = \
vax-tdep.c \
windows-nat.c \
windows-tdep.c \
+ x86-gnu-nat.c \
x86-nat.c \
x86-tdep.c \
xcoffread.c \
@@ -1898,6 +1881,40 @@ TAGFILES_NO_SRCDIR = $(SFILES) $(HFILES_NO_SRCDIR) $(ALLDEPFILES) \
$(CONFIG_SRCS)
TAGFILES_WITH_SRCDIR = $(HFILES_WITH_SRCDIR)
+# Files that are used to support certain debuginfo formats
+DWARF2_SRCS = \
+ dwarf2/abbrev.c \
+ dwarf2/abbrev-table-cache.c \
+ dwarf2/ada-imported.c \
+ dwarf2/aranges.c \
+ dwarf2/attribute.c \
+ dwarf2/cooked-index.c \
+ dwarf2/cooked-index-entry.c \
+ dwarf2/cooked-index-shard.c \
+ dwarf2/cooked-index-worker.c \
+ dwarf2/cooked-indexer.c \
+ dwarf2/cu.c \
+ dwarf2/die.c \
+ dwarf2/dwz.c \
+ dwarf2/expr.c \
+ dwarf2/frame-tailcall.c \
+ dwarf2/frame.c \
+ dwarf2/index-cache.c \
+ dwarf2/index-common.c \
+ dwarf2/index-write.c \
+ dwarf2/leb.c \
+ dwarf2/line-header.c \
+ dwarf2/loc.c \
+ dwarf2/macro.c \
+ dwarf2/parent-map.c \
+ dwarf2/read.c \
+ dwarf2/read-debug-names.c \
+ dwarf2/read-gdb-index.c \
+ dwarf2/section.c \
+ dwarf2/stringify.c \
+ dwarf2/unit-head.c
+DWARF2_OBS = $(patsubst %.c,%.o, $(DWARF2_SRCS))
+
COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \
mi/mi-common.o \
version.o \
@@ -1905,8 +1922,7 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \
$(patsubst %.c,%.o,$(COMMON_SFILES)) \
$(SUBDIR_CLI_OBS) \
$(SUBDIR_MI_OBS) \
- $(SUBDIR_TARGET_OBS) \
- $(SUBDIR_GCC_COMPILE_OBS)
+ $(SUBDIR_TARGET_OBS)
SUBDIRS = doc @subdirs@ data-directory
CLEANDIRS = $(SUBDIRS)
@@ -1949,7 +1965,7 @@ generated_files = \
# Flags needed to compile Python code
PYTHON_CFLAGS = @PYTHON_CFLAGS@
-all: gdb$(EXEEXT) $(CONFIG_ALL) gdb-gdb.py gdb-gdb.gdb gcore gstack
+all: gdb$(EXEEXT) $(CONFIG_ALL) gdb-gdb.py gdb-gdb.gdb gcore gstack gdb-add-index
@$(MAKE) $(FLAGS_TO_PASS) DO=all "DODIRS=$(SUBDIRS)" subdir_do
# Rule for compiling .c files in the top-level gdb directory.
@@ -2128,7 +2144,7 @@ install-only: $(CONFIG_INSTALL)
else \
true ; \
fi ; \
- $(INSTALL_SCRIPT) $(srcdir)/contrib/gdb-add-index.sh \
+ $(INSTALL_SCRIPT) gdb-add-index \
$(DESTDIR)$(bindir)/$$transformed_name
@$(MAKE) DO=install "DODIRS=$(SUBDIRS)" $(FLAGS_TO_PASS) subdir_do
@@ -2345,18 +2361,18 @@ run: Makefile
jit-reader.h: $(srcdir)/jit-reader.in config.status
$(ECHO_GEN) $(SHELL) config.status $(SILENT_FLAG) $@
-gcore: $(srcdir)/gcore.in config.status
+gstack.in gcore.in: %.in : $(srcdir)/%-1.in config.status
+ $(ECHO_GEN) $(SHELL) config.status $(SILENT_FLAG) $@
+
+gdb-add-index.in : $(srcdir)/contrib/gdb-add-index.sh config.status
$(ECHO_GEN) $(SHELL) config.status $(SILENT_FLAG) $@
-gstack: gstack.in version.c
+gstack gcore gdb-add-index: % : %.in version.c
$(ECHO_GEN) \
vv=`grep 'version\[\] = ' version.c | grep -o '".*"' | tr -d \"`; \
sed -e "s,@VERSION@,$$vv," $< > $@
@chmod +x $@
-gstack.in: $(srcdir)/gstack-1.in config.status
- $(ECHO_GEN) $(SHELL) config.status $(SILENT_FLAG) $@
-
gdb-gdb.py: $(srcdir)/gdb-gdb.py.in config.status
$(ECHO_GEN) $(SHELL) config.status $(SILENT_FLAG) $@
diff --git a/gdb/NEWS b/gdb/NEWS
index 39a5f66..6c8a008 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -3,6 +3,10 @@
*** Changes since GDB 16
+* Debugger Adapter Protocol changes
+
+ ** GDB now supports the "completions" request.
+
* "set style" commands now supports numeric format for basic colors
from 0 to 255 and #RRGGBB format for TrueColor.
@@ -26,6 +30,24 @@
* Linux checkpoint code has been updated to work with multiple inferiors.
+* The gcore and gdb-add-index scripts now have a -v or --version
+ option, which prints the version number, and then exits. As well as
+ a -h or --help option, which prints each options and a brief
+ description.
+
+* On systems that support linker namespaces, the output of the command
+ "info sharedlibraries" may add one more column, NS, which identifies the
+ namespace into which the library was loaded, if more than one namespace
+ is active.
+
+* New built-in convenience variables $_active_linker_namespaces and
+ $_linker_namespace. These show the number of active linker
+ namespaces, and the namespace to which the current location belongs to.
+ In systems that don't support linker namespaces, these always return
+ the integers 1 and 0 respectively.
+
+* Add record full support for rv64gc architectures
+
* New commands
maintenance check psymtabs
@@ -34,19 +56,109 @@ maintenance check psymtabs
maintenance check symtabs
Renamed from maintenance check-symtabs
+maintenance canonicalize
+ Show the canonical form of a C++ name.
+
set riscv numeric-register-names on|off
show riscv numeric-register-names
Controls whether GDB refers to risc-v registers by their numeric names
(e.g 'x1') or their abi names (e.g. 'ra').
Defaults to 'off', matching the old behaviour (abi names).
+set style emoji on|off|auto
+show style emoji
+ Controls whether GDB can display emoji. The default is "auto",
+ which means emoji will be displayed in some situations when
+ the host charset is UTF-8.
+
+set style warning-prefix STRING
+set style error-prefix STRING
+ These commands control the prefix that is printed before warnings
+ and errors, respectively. This functionality is intended for use
+ with emoji display, and so the prefixes are only displayed if emoji
+ styling is enabled.
+
+info linker-namespaces
+info linker-namespaces [[N]]
+ Print information about the given linker namespace (identified as N),
+ or about all the namespaces if no argument is given.
+
+* Changed commands
+
+info sharedlibrary
+ On Linux and FreeBSD, the addresses shown in the output of this
+ command are now for the full memory range allocated to the shared
+ library.
+
+info threads [-gid] [-stopped] [-running] [ID]...
+ If no threads match the given ID(s) or filter options, GDB now prints
+
+ No threads matched.
+
+ without printing the provided arguments. The newly added '-stopped'
+ option makes GDB list the stopped threads only. Similarly,
+ '-running' makes GDB list the running threads only. If both options
+ are given together, both stopped and running threads are listed.
+ These new flags can be useful to get a reduced list when there is a
+ large number of threads.
+
+* GDB-internal Thread Local Storage (TLS) support
+
+ ** Linux targets for the x86_64, aarch64, ppc64, s390x, and riscv
+ architectures now have GDB-internal support for TLS address
+ lookup in addition to that traditionally provided by the
+ libthread_db library. This internal support works for programs
+ linked against either the GLIBC or MUSL C libraries. For
+ programs linked against MUSL, this new internal support provides
+ new debug functionality, allowing access to TLS variables, due to
+ the fact that MUSL does not implement the libthread_db library.
+ Internal TLS support is also useful in cross-debugging
+ situations, debugging statically linked binaries, and debugging
+ programs linked against GLIBC 2.33 and earlier, but which are not
+ linked against libpthread.
+
+ ** The command 'maint set force-internal-tls-address-lookup on' may
+ be used to force the internal TLS lookup mechanisms to be used.
+ Otherwise, TLS lookup via libthread_db will still be preferred,
+ when available.
+
* Python API
+ ** GDB no longer supports Python versions less than 3.4.
+
** New class gdb.Color for dealing with colors.
** New constant gdb.PARAM_COLOR represents color type of a
gdb.Parameter.value. Parameter's value is gdb.Color instance.
+ ** The memory_source argument (the second argument) has been removed
+ from gdb.disassembler.builtin_disassemble. This argument was
+ never used by GDB, and was added by mistake. The unused argument
+ was never documented in the GDB manual, so users should not have
+ been using it.
+
+ ** gdb.execute has an additional 'styling' argument. When True, then
+ output will be styled. The default for this argument is True
+ when output is going to standard output, and False when output is
+ going to a string.
+
+ ** Setting the documentation string (__doc__) of a gdb.Parameter
+ sub-class to the empty string, means GDB will only display the
+ set_doc or show_doc strings in the set/show help output.
+
+ ** New gdb.ParameterPrefix class. This can be used to create 'set'
+ and 'show' gdb.Command prefixes, suitable for use with new
+ gdb.Parameters.
+
+ ** Prefix commands (gdb.Command sub-classes) that don't have an
+ invoke method will now behave like builtin prefix commands when
+ invoked without a sub-command name. This means printing the help
+ text for all sub-commands, unless the prefix command is a 'show'
+ command, in which case the value of all sub-commands is printed.
+
+ ** New gdb.warning() function that takes a string and prints it as a
+ warning, with GDB's standard 'warning' prefix.
+
* Guile API
** New type <gdb:color> for dealing with colors.
@@ -54,6 +166,17 @@ show riscv numeric-register-names
** New constant PARAM_COLOR represents color type of a value
of a <gdb:parameter> object. Parameter's value is <gdb::color> instance.
+ ** Eliding the #:doc string from make-parameter now means that GDB
+ will use a default documentation string. Setting #:doc to the
+ empty string for make-parameter means GDB will only display the
+ #:set_doc or #:show_doc strings in the set/show help output.
+
+ ** Prefix commands (using make-command) that don't have a #:invoke
+ property will now behave like builtin prefix commands when
+ invoked without a sub-command name. This means printing the help
+ text for all sub-commands, unless the prefix command is a 'show'
+ command, in which case the value of all sub-commands is printed.
+
* New remote packets
binary-upload in qSupported reply
@@ -62,6 +185,51 @@ binary-upload in qSupported reply
stub doesn't report this feature supported, then GDB will not use
the 'x' packet.
+vFile:lstat
+ Return information about files on the remote system. Like
+ vFile:stat but if the filename is a symbolic link, return
+ information about the link itself, the file the link refers to.
+
+* Changed remote packets
+
+qXfer:threads:read
+ The XML that is sent as a response can now include an "id_str"
+ attribute for a thread element. The attribute indicates what GDB
+ should print as the target ID of the thread, for example in the
+ "info threads" command or when switching to the thread.
+
+vFile:stat
+ Previously, gdbserver incorrectly implemented this packet using
+ lstat rather than stat. This has now been corrected. The
+ documentation has also been clarified.
+
+* MI changes
+
+** The =library-unloaded event now includes the 'ranges' field, which
+ has the same meaning as for the =library-loaded event.
+
+** The =library-unloaded event now includes the 'still-in-use' field.
+ This field is 'true' when a library is unloaded (removed from the
+ inferior's list of loaded libraries), but the mapping within the
+ inferior's address space is retained, as the library was mapped
+ multiple times, and the same mapping was being reused. In all
+ other cases, this field will have the value 'false'.
+
+* Support for stabs debugging format and the a.out/dbx object format is
+ deprecated, and will be removed in GDB 18.
+
+* A new configure option was added, allowing support for the compile
+ subsystem to be disabled at configure time, in the form of
+ --disable-gdb-compile.
+
+* A new configure option was added, allowing support for DWARF debug
+ information to be disabled at configure time. The flag is
+ --disable-gdb-dwarf-support.
+
+* A new configure option was added, allowing support for mdebug/ecoff
+ debug information to be disabled at configure time. The flag to do
+ that is --disable-gdb-mdebug-support.
+
*** Changes in GDB 16
* Support for Nios II targets has been removed as this architecture
@@ -264,7 +432,7 @@ maintenance print remote-registers
which registers were included in the last stop reply packet received by
GDB.
-mainenance info frame-unwinders
+maintenance info frame-unwinders
Add a CLASS column to the output. This class is a somewhat arbitrary
grouping of unwinders, based on which area of GDB adds the unwinder.
Also add an ENABLED column, that will show if the unwinder is enabled
@@ -322,7 +490,7 @@ generate-core-file
maintenance info line-table
Add an EPILOGUE-BEGIN column to the output of the command. It indicates
- if the line is considered the start of the epilgoue, and thus a point at
+ if the line is considered the start of the epilogue, and thus a point at
which the frame can be considered destroyed.
set unwindonsignal on|off
@@ -583,7 +751,7 @@ qIsAddressTagged
* For both the break and watch commands, it is now invalid to use both
the 'thread' and 'task' keywords within the same command. For
- example the following commnds will now give an error:
+ example the following commands will now give an error:
break foo thread 1 task 1
watch var thread 2 task 3
@@ -2181,7 +2349,7 @@ info connections
help
The "help" command uses the title style to enhance the
- readibility of its output by styling the classes and
+ readability of its output by styling the classes and
command names.
apropos [-v] REGEXP
@@ -2536,7 +2704,7 @@ info variables [-q] [-t TYPEREGEXP] [NAMEREGEXP]
These commands can now print only the searched entities
matching the provided regexp(s), giving a condition
on the entity names or entity types. The flag -q disables
- printing headers or informations messages.
+ printing headers or information messages.
info functions
info types
@@ -4070,7 +4238,7 @@ show mi-async
commands have been replaced with "target native". The QNX/NTO port
leaves the "procfs" target in place and adds a "native" target for
consistency with other ports. The impact on users should be minimal
- as these commands previously either throwed an error, or were
+ as these commands previously either threw an error, or were
no-ops. The target's name is visible in the output of the following
commands: "help target", "info target", "info files", "maint print
target-stack".
@@ -4797,7 +4965,7 @@ qXfer:btrace:read
** "dprintf location,format,args..." creates a dynamic printf, which
is basically a breakpoint that does a printf and immediately
resumes your program's execution, so it is like a printf that you
- can insert dynamically at runtime instead of at compiletime.
+ can insert dynamically at runtime instead of at compile time.
** "set print symbol"
"show print symbol"
@@ -5703,8 +5871,8 @@ ARM Symbian arm*-*-symbianelf*
GDB now supports importing of namespaces in C++. This enables the
user to inspect variables from imported namespaces. Support for
- namepace aliasing has also been added. So, if a namespace is
- aliased in the current scope (e.g. namepace C=A; ) the user can
+ namespace aliasing has also been added. So, if a namespace is
+ aliased in the current scope (e.g. namespace C=A; ) the user can
print variables using the alias (e.g. (gdb) print C::x).
** Bug Fixes
@@ -7437,7 +7605,7 @@ for DW_OP_piece is still missing).
A number of long standing bugs that caused GDB to die while starting a
Java application have been fixed. GDB's Java support is now
-considered "useable".
+considered "usable".
* GNU/Linux support for fork, vfork, and exec.
@@ -9346,7 +9514,7 @@ on an SVR4 system (including the one you are debugging). At the moment,
it prints the address mappings of the process.
If you bring up GDB on another SVR4 system, please send mail to
-bug-gdb@prep.ai.mit.edu to let us know what changes were reqired (if any).
+bug-gdb@prep.ai.mit.edu to let us know what changes were required (if any).
* Better dynamic linking support in SunOS
@@ -9361,7 +9529,7 @@ same code linked statically.
GDB is now using the latest `getopt' routines from the FSF. This
version accepts the -- prefix for options with long names. GDB will
continue to accept the old forms (-option and +option) as well.
-Various single letter abbreviations for options have been explicity
+Various single letter abbreviations for options have been explicitly
added to the option table so that they won't get overshadowed in the
future by other options that begin with the same letter.
@@ -9394,7 +9562,7 @@ GDB can read ELF object files on System V Release 4, and can handle
debugging records for C, in DWARF format, in ELF files. This support
is preliminary. If you bring up GDB on another SVR4 system, please
send mail to bug-gdb@prep.ai.mit.edu to let us know what changes were
-reqired (if any).
+required (if any).
* New Readline
diff --git a/gdb/README b/gdb/README
index b6eb3f1..eca4181c 100644
--- a/gdb/README
+++ b/gdb/README
@@ -17,7 +17,7 @@ Unpacking and Installation -- quick overview
'gdb-VERSION.tar.gz', where VERSION is the version of GDB.
The GDB debugger sources, the generic GNU include
-files, the BFD ("binary file description") library, the readline
+files, the BFD ("Binary File Descriptor") library, the readline
library, and other libraries all have directories of their own
underneath the gdb-VERSION directory. The idea is that a variety of GNU
tools can share a common copy of these things. Be aware of variation
@@ -442,6 +442,16 @@ more obscure GDB `configure' options are not listed here.
Requires a curses library (ncurses and cursesX are also
supported).
+`--disable-gdb-compile'
+ Build GDB without support for the 'compile' command. DWARF support
+ is required for this feature.
+
+`--disable-gdb-dwarf-support'
+ Build GDB without support for reading DWARF debug information.
+
+`--disable-gdb-mdebug-support'
+ Build GDB without support for reading mdebug debug information.
+
`--with-curses'
Use the curses library instead of the termcap library, for
text-mode terminal operations.
@@ -530,7 +540,7 @@ more obscure GDB `configure' options are not listed here.
GDB scripting much more powerful than the restricted CLI
scripting language. If your host does not have Python installed,
you can find it on `http://www.python.org/download/'. The oldest
- version of Python supported by GDB is 3.2. The optional argument
+ version of Python supported by GDB is 3.4. The optional argument
PYTHON is used to find the Python headers and libraries. It can
be either the name of a Python executable, or the name of the
directory in which Python is installed.
diff --git a/gdb/aarch32-linux-nat.c b/gdb/aarch32-linux-nat.c
index edff97b..adccd1c 100644
--- a/gdb/aarch32-linux-nat.c
+++ b/gdb/aarch32-linux-nat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/aarch32-linux-nat.h b/gdb/aarch32-linux-nat.h
index 79ad5ad..8f474cf 100644
--- a/gdb/aarch32-linux-nat.h
+++ b/gdb/aarch32-linux-nat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/aarch32-tdep.c b/gdb/aarch32-tdep.c
index 5a54a71..8f27a4e 100644
--- a/gdb/aarch32-tdep.c
+++ b/gdb/aarch32-tdep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/aarch32-tdep.h b/gdb/aarch32-tdep.h
index 16ceb30..137f952 100644
--- a/gdb/aarch32-tdep.h
+++ b/gdb/aarch32-tdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/aarch64-fbsd-nat.c b/gdb/aarch64-fbsd-nat.c
index 7ca8463..1746ad1 100644
--- a/gdb/aarch64-fbsd-nat.c
+++ b/gdb/aarch64-fbsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for FreeBSD/aarch64.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/aarch64-fbsd-tdep.c b/gdb/aarch64-fbsd-tdep.c
index 844023c..07fa38a 100644
--- a/gdb/aarch64-fbsd-tdep.c
+++ b/gdb/aarch64-fbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for FreeBSD/aarch64.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/aarch64-fbsd-tdep.h b/gdb/aarch64-fbsd-tdep.h
index 6d53b28..074e79f 100644
--- a/gdb/aarch64-fbsd-tdep.h
+++ b/gdb/aarch64-fbsd-tdep.h
@@ -1,6 +1,6 @@
/* FreeBSD/aarch64 target support, prototypes.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/aarch64-linux-nat.c b/gdb/aarch64-linux-nat.c
index 48ab765..d7869f4 100644
--- a/gdb/aarch64-linux-nat.c
+++ b/gdb/aarch64-linux-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux AArch64.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GDB.
diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c
index 2d156ad..a194ac8 100644
--- a/gdb/aarch64-linux-tdep.c
+++ b/gdb/aarch64-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux AArch64.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GDB.
@@ -24,6 +24,7 @@
#include "gdbarch.h"
#include "glibc-tdep.h"
#include "linux-tdep.h"
+#include "svr4-tls-tdep.h"
#include "aarch64-tdep.h"
#include "aarch64-linux-tdep.h"
#include "osabi.h"
@@ -35,6 +36,7 @@
#include "target/target.h"
#include "expop.h"
#include "auxv.h"
+#include "inferior.h"
#include "regcache.h"
#include "regset.h"
@@ -2038,11 +2040,17 @@ enum aarch64_syscall {
static enum gdb_syscall
aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number)
{
-#define SYSCALL_MAP(SYSCALL) case aarch64_sys_##SYSCALL: \
- return gdb_sys_##SYSCALL
+#define SYSCALL_MAP(SYSCALL) \
+ case aarch64_sys_ ## SYSCALL: \
+ return gdb_sys_ ## SYSCALL
-#define UNSUPPORTED_SYSCALL_MAP(SYSCALL) case aarch64_sys_##SYSCALL: \
- return gdb_sys_no_syscall
+#define SYSCALL_MAP_RENAME(SYSCALL, GDB_SYSCALL) \
+ case aarch64_sys_ ## SYSCALL: \
+ return GDB_SYSCALL;
+
+#define UNSUPPORTED_SYSCALL_MAP(SYSCALL) \
+ case aarch64_sys_ ## SYSCALL: \
+ return gdb_sys_no_syscall
switch (syscall_number)
{
@@ -2269,8 +2277,7 @@ aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number)
SYSCALL_MAP (clone);
SYSCALL_MAP (execve);
- case aarch64_sys_mmap:
- return gdb_sys_mmap2;
+ SYSCALL_MAP_RENAME (mmap, gdb_sys_old_mmap);
SYSCALL_MAP (fadvise64);
SYSCALL_MAP (swapon);
@@ -2291,7 +2298,7 @@ aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number)
SYSCALL_MAP (move_pages);
UNSUPPORTED_SYSCALL_MAP (rt_tgsigqueueinfo);
UNSUPPORTED_SYSCALL_MAP (perf_event_open);
- UNSUPPORTED_SYSCALL_MAP (accept4);
+ SYSCALL_MAP (accept4);
UNSUPPORTED_SYSCALL_MAP (recvmmsg);
SYSCALL_MAP (wait4);
@@ -2312,9 +2319,14 @@ aarch64_canonicalize_syscall (enum aarch64_syscall syscall_number)
UNSUPPORTED_SYSCALL_MAP (sched_setattr);
UNSUPPORTED_SYSCALL_MAP (sched_getattr);
SYSCALL_MAP (getrandom);
- default:
- return gdb_sys_no_syscall;
- }
+
+ default:
+ return gdb_sys_no_syscall;
+ }
+
+#undef SYSCALL_MAP
+#undef SYSCALL_MAP_RENAME
+#undef UNSUPPORTED_SYSCALL_MAP
}
/* Retrieve the syscall number at a ptrace syscall-stop, either on syscall entry
@@ -2587,8 +2599,8 @@ aarch64_linux_fill_memtag_section (struct gdbarch *gdbarch, asection *osec)
static_cast<int> (memtag_type::allocation)))
{
warning (_("Failed to read MTE tags from memory range [%s,%s)."),
- phex_nz (start_address, sizeof (start_address)),
- phex_nz (end_address, sizeof (end_address)));
+ phex_nz (start_address),
+ phex_nz (end_address));
return false;
}
@@ -2691,6 +2703,57 @@ aarch64_use_target_description_from_corefile_notes (gdbarch *gdbarch,
return true;
}
+/* Fetch and return the TLS DTV (dynamic thread vector) address for PTID.
+ Throw a suitable TLS error if something goes wrong. */
+
+static CORE_ADDR
+aarch64_linux_get_tls_dtv_addr (struct gdbarch *gdbarch, ptid_t ptid,
+ svr4_tls_libc libc)
+{
+ /* On aarch64, the thread pointer is found in the TPIDR register.
+ Note that this is the first register in the TLS feature - see
+ features/aarch64-tls.c - and it will always be present. */
+ regcache *regcache
+ = get_thread_arch_regcache (current_inferior (), ptid, gdbarch);
+ aarch64_gdbarch_tdep *tdep = gdbarch_tdep<aarch64_gdbarch_tdep> (gdbarch);
+ target_fetch_registers (regcache, tdep->tls_regnum_base);
+ ULONGEST thr_ptr;
+ if (regcache->cooked_read (tdep->tls_regnum_base, &thr_ptr) != REG_VALID)
+ throw_error (TLS_GENERIC_ERROR, _("Unable to fetch thread pointer"));
+
+ CORE_ADDR dtv_ptr_addr;
+ switch (libc)
+ {
+ case svr4_tls_libc_musl:
+ /* MUSL: The DTV pointer is found at the very end of the pthread
+ struct which is located *before* the thread pointer. I.e.
+ the thread pointer will be just beyond the end of the struct,
+ so the address of the DTV pointer is found one pointer-size
+ before the thread pointer. */
+ dtv_ptr_addr = thr_ptr - (gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT);
+ break;
+ case svr4_tls_libc_glibc:
+ /* GLIBC: The thread pointer (tpidr) points at the TCB (thread control
+ block). On aarch64, this struct (tcbhead_t) is defined to
+ contain two pointers. The first is a pointer to the DTV and
+ the second is a pointer to private data. So the DTV pointer
+ address is the same as the thread pointer. */
+ dtv_ptr_addr = thr_ptr;
+ break;
+ default:
+ throw_error (TLS_GENERIC_ERROR, _("Unknown aarch64 C library"));
+ break;
+ }
+ gdb::byte_vector buf (gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT);
+ if (target_read_memory (dtv_ptr_addr, buf.data (), buf.size ()) != 0)
+ throw_error (TLS_GENERIC_ERROR, _("Unable to fetch DTV address"));
+
+ const struct builtin_type *builtin = builtin_type (gdbarch);
+ CORE_ADDR dtv_addr = gdbarch_pointer_to_address
+ (gdbarch, builtin->builtin_data_ptr, buf.data ());
+ return dtv_addr;
+}
+
static void
aarch64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
{
@@ -2712,6 +2775,9 @@ aarch64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
/* Enable TLS support. */
set_gdbarch_fetch_tls_load_module_address (gdbarch,
svr4_fetch_objfile_link_map);
+ set_gdbarch_get_thread_local_address (gdbarch,
+ svr4_tls_get_thread_local_address);
+ svr4_tls_register_tls_methods (info, gdbarch, aarch64_linux_get_tls_dtv_addr);
/* Shared library handling. */
set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
@@ -2972,7 +3038,7 @@ aarch64_linux_ltag_tests (void)
}
}
-} // namespace selftests
+} /* namespace selftests */
#endif /* GDB_SELF_TEST */
void _initialize_aarch64_linux_tdep ();
diff --git a/gdb/aarch64-linux-tdep.h b/gdb/aarch64-linux-tdep.h
index 4cca8e9..77d968f 100644
--- a/gdb/aarch64-linux-tdep.h
+++ b/gdb/aarch64-linux-tdep.h
@@ -1,6 +1,6 @@
/* GNU/Linux on AArch64 target support, prototypes.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GDB.
diff --git a/gdb/aarch64-nat.c b/gdb/aarch64-nat.c
index 1ba9c4c..b6b8de9 100644
--- a/gdb/aarch64-nat.c
+++ b/gdb/aarch64-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for AArch64.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/aarch64-nat.h b/gdb/aarch64-nat.h
index 4687094..3120bca 100644
--- a/gdb/aarch64-nat.h
+++ b/gdb/aarch64-nat.h
@@ -1,6 +1,6 @@
/* Native-dependent code for AArch64.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/aarch64-newlib-tdep.c b/gdb/aarch64-newlib-tdep.c
index 4ac42a4..c0ecd3f 100644
--- a/gdb/aarch64-newlib-tdep.c
+++ b/gdb/aarch64-newlib-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for Newlib AArch64.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GDB.
diff --git a/gdb/aarch64-ravenscar-thread.c b/gdb/aarch64-ravenscar-thread.c
index 5a877cd..70da667 100644
--- a/gdb/aarch64-ravenscar-thread.c
+++ b/gdb/aarch64-ravenscar-thread.c
@@ -1,6 +1,6 @@
/* Ravenscar Aarch64 target support.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/aarch64-ravenscar-thread.h b/gdb/aarch64-ravenscar-thread.h
index 9cf0113..198d052 100644
--- a/gdb/aarch64-ravenscar-thread.h
+++ b/gdb/aarch64-ravenscar-thread.h
@@ -1,6 +1,6 @@
/* Ravenscar Aarch64 target support.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c
index 840f987..8d54e59 100644
--- a/gdb/aarch64-tdep.c
+++ b/gdb/aarch64-tdep.c
@@ -1,6 +1,6 @@
/* Common target dependent code for GDB on AArch64 systems.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GDB.
@@ -949,7 +949,7 @@ aarch64_analyze_prologue_test (void)
}
}
}
-} // namespace selftests
+} /* namespace selftests */
#endif /* GDB_SELF_TEST */
/* Implement the "skip_prologue" gdbarch method. */
@@ -2696,7 +2696,7 @@ aarch64_store_return_value (struct type *type, struct regcache *regs,
{
/* Integral values greater than one word are stored in
consecutive registers starting with r0. This will always
- be a multiple of the regiser size. */
+ be a multiple of the register size. */
int len = type->length ();
int regno = AARCH64_X0_REGNUM;
@@ -3290,6 +3290,9 @@ aarch64_pseudo_read_value (gdbarch *gdbarch, const frame_info_ptr &next_frame,
return aarch64_pseudo_read_value_1 (next_frame, pseudo_reg_num,
pseudo_offset - AARCH64_SVE_V0_REGNUM);
+ if (tdep->has_pauth () && pseudo_reg_num == tdep->ra_sign_state_regnum)
+ return value::zero (builtin_type (gdbarch)->builtin_uint64, lval_register);
+
gdb_assert_not_reached ("regnum out of bound");
}
@@ -4233,7 +4236,7 @@ aarch64_memtag_to_string (struct gdbarch *gdbarch, struct value *tag_value)
CORE_ADDR tag = value_as_address (tag_value);
- return string_printf ("0x%s", phex_nz (tag, sizeof (tag)));
+ return string_printf ("0x%s", phex_nz (tag));
}
/* See aarch64-tdep.h. */
@@ -4341,7 +4344,7 @@ aarch64_initialize_sme_pseudo_names (struct gdbarch *gdbarch,
}
/* Initialize the current architecture based on INFO. If possible,
- re-use an architecture from ARCHES, which is a list of
+ reuse an architecture from ARCHES, which is a list of
architectures already created during this debugging session.
Called e.g. at program startup, when reading a core file, and when
@@ -5200,9 +5203,9 @@ aarch64_record_asimd_load_store (aarch64_insn_decode_record *aarch64_insn_r)
CORE_ADDR address;
uint64_t addr_offset = 0;
uint32_t record_buf[24];
- uint64_t record_buf_mem[24];
+ std::vector<uint64_t> record_buf_mem;
uint32_t reg_rn, reg_rt;
- uint32_t reg_index = 0, mem_index = 0;
+ uint32_t reg_index = 0;
uint8_t opcode_bits, size_bits;
reg_rt = bits (aarch64_insn_r->aarch64_insn, 0, 4);
@@ -5265,8 +5268,8 @@ aarch64_record_asimd_load_store (aarch64_insn_decode_record *aarch64_insn_r)
record_buf[reg_index++] = reg_rt + AARCH64_V0_REGNUM;
else
{
- record_buf_mem[mem_index++] = esize / 8;
- record_buf_mem[mem_index++] = address + addr_offset;
+ record_buf_mem.push_back (esize / 8);
+ record_buf_mem.push_back (address + addr_offset);
}
addr_offset = addr_offset + (esize / 8);
reg_rt = (reg_rt + 1) % 32;
@@ -5337,8 +5340,8 @@ aarch64_record_asimd_load_store (aarch64_insn_decode_record *aarch64_insn_r)
record_buf[reg_index++] = reg_tt + AARCH64_V0_REGNUM;
else
{
- record_buf_mem[mem_index++] = esize / 8;
- record_buf_mem[mem_index++] = address + addr_offset;
+ record_buf_mem.push_back (esize / 8);
+ record_buf_mem.push_back (address + addr_offset);
}
addr_offset = addr_offset + (esize / 8);
reg_tt = (reg_tt + 1) % 32;
@@ -5350,9 +5353,9 @@ aarch64_record_asimd_load_store (aarch64_insn_decode_record *aarch64_insn_r)
record_buf[reg_index++] = reg_rn;
aarch64_insn_r->reg_rec_count = reg_index;
- aarch64_insn_r->mem_rec_count = mem_index / 2;
+ aarch64_insn_r->mem_rec_count = record_buf_mem.size () / 2;
MEM_ALLOC (aarch64_insn_r->aarch64_mems, aarch64_insn_r->mem_rec_count,
- record_buf_mem);
+ record_buf_mem.data ());
REG_ALLOC (aarch64_insn_r->aarch64_regs, aarch64_insn_r->reg_rec_count,
record_buf);
return AARCH64_RECORD_SUCCESS;
@@ -5943,7 +5946,7 @@ aarch64_process_record_test (void)
deallocate_reg_mem (&aarch64_record);
}
-} // namespace selftests
+} /* namespace selftests */
#endif /* GDB_SELF_TEST */
/* Parse the current instruction and record the values of the registers and
diff --git a/gdb/aarch64-tdep.h b/gdb/aarch64-tdep.h
index d1a8731..3b8dcc2 100644
--- a/gdb/aarch64-tdep.h
+++ b/gdb/aarch64-tdep.h
@@ -1,6 +1,6 @@
/* Common target dependent code for GDB on AArch64 systems.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GDB.
diff --git a/gdb/acx_configure_dir.m4 b/gdb/acx_configure_dir.m4
index c87fdf3..5d444ef 100644
--- a/gdb/acx_configure_dir.m4
+++ b/gdb/acx_configure_dir.m4
@@ -1,4 +1,4 @@
-# Copyright (C) 1992-2024 Free Software Foundation, Inc.
+# Copyright (C) 1992-2025 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
diff --git a/gdb/ada-casefold.h b/gdb/ada-casefold.h
index 47c0016..9d7a8b0 100644
--- a/gdb/ada-casefold.h
+++ b/gdb/ada-casefold.h
@@ -3,7 +3,7 @@
/* UTF-32 case-folding for GDB
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ada-exp.h b/gdb/ada-exp.h
index 0c8161e..8c9bfe8 100644
--- a/gdb/ada-exp.h
+++ b/gdb/ada-exp.h
@@ -1,6 +1,6 @@
/* Definitions for Ada expressions
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ada-exp.y b/gdb/ada-exp.y
index cffeada..1546ae9 100644
--- a/gdb/ada-exp.y
+++ b/gdb/ada-exp.y
@@ -1,5 +1,5 @@
/* YACC parser for Ada expressions, for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -36,7 +36,7 @@
%{
#include <ctype.h>
-#include <unordered_map>
+#include "gdbsupport/unordered_map.h"
#include "expression.h"
#include "value.h"
#include "parser-defs.h"
@@ -98,7 +98,7 @@ struct ada_parse_state
std::vector<ada_assign_up> assignments;
/* Track currently active iterated assignment names. */
- std::unordered_map<std::string, std::vector<ada_index_var_operation *>>
+ gdb::unordered_map<std::string, std::vector<ada_index_var_operation *>>
iterated_associations;
auto_obstack temp_space;
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index 1cfd843..3f5e707 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -1,6 +1,6 @@
/* Ada language support routines for GDB, the GNU debugger.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -36,7 +36,7 @@
#include "objfiles.h"
#include "breakpoint.h"
#include "gdbcore.h"
-#include "hashtab.h"
+#include "gdbsupport/unordered_set.h"
#include "gdbsupport/gdb_obstack.h"
#include "ada-lang.h"
#include "completer.h"
@@ -52,6 +52,7 @@
#include "namespace.h"
#include "cli/cli-style.h"
#include "cli/cli-decode.h"
+#include "gdbsupport/string-set.h"
#include "value.h"
#include "mi/mi-common.h"
@@ -203,6 +204,8 @@ static int symbols_are_identical_enums
static bool ada_identical_enum_types_p (struct type *type1,
struct type *type2);
+
+static const char *ada_unqualify_enum_name (const char *name);
/* The character set used for source files. */
@@ -347,56 +350,58 @@ struct cache_entry_search
{
const char *name;
domain_search_flags domain;
+};
+
+/* Hash function for cache entry. */
+
+struct cache_entry_hash
+{
+ using is_transparent = void;
+ using is_avalanching = void;
- hashval_t hash () const
+ /* This implementation works for both cache_entry and
+ cache_entry_search. */
+ template<typename T>
+ uint64_t operator() (const T &entry) const noexcept
{
- /* This must agree with hash_cache_entry, below. */
- return htab_hash_string (name);
+ return ankerl::unordered_dense::hash<std::string_view> () (entry.name);
}
};
-/* Hash function for cache_entry. */
+/* Equality function for cache entry. */
-static hashval_t
-hash_cache_entry (const void *v)
+struct cache_entry_eq
{
- const cache_entry *entry = (const cache_entry *) v;
- return htab_hash_string (entry->name.c_str ());
-}
+ using is_transparent = void;
-/* Equality function for cache_entry. */
-
-static int
-eq_cache_entry (const void *a, const void *b)
-{
- const cache_entry *entrya = (const cache_entry *) a;
- const cache_entry_search *entryb = (const cache_entry_search *) b;
+ /* This implementation works for both cache_entry and
+ cache_entry_search. */
+ template<typename T>
+ bool operator() (const T &lhs, const cache_entry &rhs) const noexcept
+ {
+ return lhs.domain == rhs.domain && lhs.name == rhs.name;
+ }
+};
- return entrya->domain == entryb->domain && entrya->name == entryb->name;
-}
+using cache_entry_set
+ = gdb::unordered_set<cache_entry, cache_entry_hash, cache_entry_eq>;
/* Key to our per-program-space data. */
-static const registry<program_space>::key<htab, htab_deleter>
+static const registry<program_space>::key<cache_entry_set>
ada_pspace_data_handle;
-/* Return this module's data for the given program space (PSPACE).
- If not is found, add a zero'ed one now.
-
- This function always returns a valid object. */
+/* Return this module's data for the given program space (PSPACE). If
+ not is found, one is created. This function always returns a valid
+ object. */
-static htab_t
+static cache_entry_set &
get_ada_pspace_data (struct program_space *pspace)
{
- htab_t data = ada_pspace_data_handle.get (pspace);
+ cache_entry_set *data = ada_pspace_data_handle.get (pspace);
if (data == nullptr)
- {
- data = htab_create_alloc (10, hash_cache_entry, eq_cache_entry,
- htab_delete_entry<cache_entry>,
- xcalloc, xfree);
- ada_pspace_data_handle.set (pspace, data);
- }
+ data = ada_pspace_data_handle.emplace (pspace);
- return data;
+ return *data;
}
/* Utilities */
@@ -1530,7 +1535,7 @@ ada_decode (const char *encoded, bool wrap, bool operators, bool wide)
{
/* This is a X[bn]* sequence not separated from the previous
part of the name with a non-alpha-numeric character (in other
- words, immediately following an alpha-numeric character), then
+ words, immediately following an alphanumeric character), then
verify that it is placed at the end of the encoded name. If
not, then the encoding is not valid and we should abort the
decoding. Otherwise, just skip it, it is used in body-nested
@@ -1601,7 +1606,7 @@ ada_decode_tests ()
storage leak, it should not be significant unless there are massive
changes in the set of decoded names in successive versions of a
symbol table loaded during a single session. */
-static struct htab *decoded_names_store;
+static gdb::string_set decoded_names_store;
/* Returns the decoded name of GSYMBOL, as for ada_decode, caching it
in the language-specific part of GSYMBOL, if it has not been
@@ -1635,13 +1640,7 @@ ada_decode_symbol (const struct general_symbol_info *arg)
which case, we put the result on the heap. Since we only
decode when needed, we hope this usually does not cause a
significant memory leak (FIXME). */
-
- char **slot = (char **) htab_find_slot (decoded_names_store,
- decoded.c_str (), INSERT);
-
- if (*slot == NULL)
- *slot = xstrdup (decoded.c_str ());
- *resultp = *slot;
+ *resultp = decoded_names_store.insert (decoded);
}
}
@@ -3045,7 +3044,7 @@ ada_value_subscript (struct value *arr, int arity, struct value **ind)
Note: Unlike what one would expect, this function is used instead of
ada_value_subscript for basically all non-packed array types. The reason
- for this is that a side effect of doing our own pointer arithmetics instead
+ for this is that a side effect of doing our own pointer arithmetic instead
of relying on value_subscript is that there is no implicit typedef peeling.
This is important for arrays of array accesses, where it allows us to
preserve the fact that the array's element is an array access, where the
@@ -3796,7 +3795,10 @@ ada_resolve_enum (std::vector<struct block_symbol> &syms,
for (int i = 0; i < syms.size (); ++i)
{
struct type *type2 = ada_check_typedef (syms[i].symbol->type ());
- if (strcmp (type1->name (), type2->name ()) != 0)
+ /* We let an anonymous enum type match a non-anonymous one. */
+ if (type1->name () != nullptr
+ && type2->name () != nullptr
+ && strcmp (type1->name (), type2->name ()) != 0)
continue;
if (ada_identical_enum_types_p (type1, type2))
return i;
@@ -3945,9 +3947,9 @@ ada_type_match (struct type *ftype, struct type *atype)
atype = ada_check_typedef (atype);
if (ftype->code () == TYPE_CODE_REF)
- ftype = ftype->target_type ();
+ ftype = ada_check_typedef (ftype->target_type ());
if (atype->code () == TYPE_CODE_REF)
- atype = atype->target_type ();
+ atype = ada_check_typedef (atype->target_type ());
switch (ftype->code ())
{
@@ -4690,19 +4692,18 @@ static int
lookup_cached_symbol (const char *name, domain_search_flags domain,
struct symbol **sym, const struct block **block)
{
- htab_t tab = get_ada_pspace_data (current_program_space);
+ cache_entry_set &htab = get_ada_pspace_data (current_program_space);
cache_entry_search search;
search.name = name;
search.domain = domain;
- cache_entry *e = (cache_entry *) htab_find_with_hash (tab, &search,
- search.hash ());
- if (e == nullptr)
+ auto iter = htab.find (search);
+ if (iter == htab.end ())
return 0;
if (sym != nullptr)
- *sym = e->sym;
+ *sym = iter->sym;
if (block != nullptr)
- *block = e->block;
+ *block = iter->block;
return 1;
}
@@ -4730,21 +4731,8 @@ cache_symbol (const char *name, domain_search_flags domain,
return;
}
- htab_t tab = get_ada_pspace_data (current_program_space);
- cache_entry_search search;
- search.name = name;
- search.domain = domain;
-
- void **slot = htab_find_slot_with_hash (tab, &search,
- search.hash (), INSERT);
-
- cache_entry *e = new cache_entry;
- e->name = name;
- e->domain = domain;
- e->sym = sym;
- e->block = block;
-
- *slot = e;
+ cache_entry_set &tab = get_ada_pspace_data (current_program_space);
+ tab.insert (cache_entry {name, domain, sym, block});
}
/* Symbol Lookup */
@@ -4973,8 +4961,8 @@ ada_identical_enum_types_p (struct type *type1, struct type *type2)
suffix). */
for (int i = 0; i < type1->num_fields (); i++)
{
- const char *name_1 = type1->field (i).name ();
- const char *name_2 = type2->field (i).name ();
+ const char *name_1 = ada_unqualify_enum_name (type1->field (i).name ());
+ const char *name_2 = ada_unqualify_enum_name (type2->field (i).name ());
int len_1 = strlen (name_1);
int len_2 = strlen (name_2);
@@ -5421,36 +5409,47 @@ ada_add_block_renamings (std::vector<struct block_symbol> &result,
const char *r_name;
/* Avoid infinite recursions: skip this renaming if we are actually
- already traversing it.
-
- Currently, symbol lookup in Ada don't use the namespace machinery from
- C++/Fortran support: skip namespace imports that use them. */
- if (renaming->searched
- || (renaming->import_src != NULL
- && renaming->import_src[0] != '\0')
- || (renaming->import_dest != NULL
- && renaming->import_dest[0] != '\0'))
+ already traversing it. */
+ if (renaming->searched)
continue;
- renaming->searched = 1;
/* TODO: here, we perform another name-based symbol lookup, which can
pull its own multiple overloads. In theory, we should be able to do
better in this case since, in DWARF, DW_AT_import is a DIE reference,
not a simple name. But in order to do this, we would need to enhance
the DWARF reader to associate a symbol to this renaming, instead of a
- name. So, for now, we do something simpler: re-use the C++/Fortran
+ name. So, for now, we do something simpler: reuse the C++/Fortran
namespace machinery. */
r_name = (renaming->alias != NULL
? renaming->alias
: renaming->declaration);
+ if (r_name == nullptr)
+ continue;
+
+ scoped_restore reset_searched
+ = make_scoped_restore (&renaming->searched, 1);
+ std::string storage;
+ if (renaming->import_src != nullptr && renaming->import_src[0] != '\0')
+ {
+ storage = std::string (renaming->import_src) + "__" + r_name;
+ r_name = storage.c_str ();
+ }
+
if (name_match (r_name, lookup_name, NULL))
{
- lookup_name_info decl_lookup_name (renaming->declaration,
+ r_name = renaming->declaration;
+ if (renaming->import_dest != nullptr
+ && renaming->import_dest[0] != '\0')
+ {
+ storage = std::string (renaming->import_dest) + "__" + r_name;
+ r_name = storage.c_str ();
+ }
+
+ lookup_name_info decl_lookup_name (r_name,
lookup_name.match_type ());
ada_add_all_symbols (result, block, decl_lookup_name, domain,
1, NULL);
}
- renaming->searched = 0;
}
return result.size () != defns_mark;
}
@@ -6682,8 +6681,10 @@ ada_variant_discrim_name (struct type *type0)
if (name == NULL || name[0] == '\000')
return "";
- for (discrim_end = name + strlen (name) - 6; discrim_end != name;
- discrim_end -= 1)
+ size_t len = strlen (name);
+ if (len < 6)
+ return "";
+ for (discrim_end = name + len - 6; discrim_end != name; discrim_end -= 1)
{
if (startswith (discrim_end, "___XVN"))
break;
@@ -8753,7 +8754,14 @@ ada_atr_enum_rep (struct expression *exp, enum noside noside, struct type *type,
type = type->target_type ();
if (type->code () != TYPE_CODE_ENUM)
error (_("'Enum_Rep only defined on enum types"));
- if (!types_equal (type, arg->type ()))
+ /* In some scenarios, GNAT will emit two distinct-but-equivalent
+ enum types. For example, this can happen with an artificial
+ range type like the index type in:
+
+ type AR is array (Enum_With_Gaps range <>) of MyWord;
+
+ This is why types_equal is not used here. */
+ if (!ada_identical_enum_types_p (type, arg->type ()))
error (_("'Enum_Rep requires argument to have same type as enum"));
return value_cast (inttype, arg);
@@ -8939,15 +8947,12 @@ ada_aligned_value_addr (struct type *type, const gdb_byte *valaddr)
}
+/* Remove qualifications from the enumeration constant named NAME,
+ returning a pointer to the constant's base name. */
-/* The printed representation of an enumeration literal with encoded
- name NAME. The value is good to the next call of ada_enum_name. */
-const char *
-ada_enum_name (const char *name)
+static const char *
+ada_unqualify_enum_name (const char *name)
{
- static std::string storage;
- const char *tmp;
-
/* First, unqualify the enumeration name:
1. Search for the last '.' character. If we find one, then skip
all the preceding characters, the unqualified name starts
@@ -8957,7 +8962,7 @@ ada_enum_name (const char *name)
but stop searching when we hit an overloading suffix, which is
of the form "__" followed by digits. */
- tmp = strrchr (name, '.');
+ const char *tmp = strrchr (name, '.');
if (tmp != NULL)
name = tmp + 1;
else
@@ -8971,6 +8976,17 @@ ada_enum_name (const char *name)
}
}
+ return name;
+}
+
+/* The printed representation of an enumeration literal with encoded
+ name NAME. The value is good to the next call of ada_enum_name. */
+const char *
+ada_enum_name (const char *name)
+{
+ static std::string storage;
+
+ name = ada_unqualify_enum_name (name);
if (name[0] == 'Q')
{
int v;
@@ -9009,7 +9025,7 @@ ada_enum_name (const char *name)
}
else
{
- tmp = strstr (name, "__");
+ const char *tmp = strstr (name, "__");
if (tmp == NULL)
tmp = strstr (name, "$");
if (tmp != NULL)
@@ -9769,7 +9785,7 @@ ada_value_cast (struct type *type, struct value *arg2)
The following description is a general guide as to what should be
done (and what should NOT be done) in order to evaluate an expression
involving such types, and when. This does not cover how the semantic
- information is encoded by GNAT as this is covered separatly. For the
+ information is encoded by GNAT as this is covered separately. For the
document used as the reference for the GNAT encoding, see exp_dbug.ads
in the GNAT sources.
@@ -11747,14 +11763,14 @@ ada_exception_support_info_sniffer (void)
return;
}
- /* Try the v0 exception suport info. */
+ /* Try the v0 exception support info. */
if (ada_has_this_exception_support (&exception_support_info_v0))
{
data->exception_info = &exception_support_info_v0;
return;
}
- /* Try our fallback exception suport info. */
+ /* Try our fallback exception support info. */
if (ada_has_this_exception_support (&exception_support_info_fallback))
{
data->exception_info = &exception_support_info_fallback;
@@ -12999,15 +13015,6 @@ ada_add_exceptions_from_frame (compiled_regex *preg,
}
}
-/* Return true if NAME matches PREG or if PREG is NULL. */
-
-static bool
-name_matches_regex (const char *name, compiled_regex *preg)
-{
- return (preg == NULL
- || preg->exec (ada_decode (name).c_str (), 0, NULL, 0) == 0);
-}
-
/* Add all exceptions defined globally whose name name match
a regular expression, excluding standard exceptions.
@@ -13031,6 +13038,13 @@ static void
ada_add_global_exceptions (compiled_regex *preg,
std::vector<ada_exc_info> *exceptions)
{
+ /* Return true if NAME matches PREG or if PREG is NULL. */
+ auto name_matches_regex = [&] (const char *name)
+ {
+ return preg == nullptr || preg->exec (name, 0, NULL, 0) == 0;
+ };
+
+
/* In Ada, the symbol "search name" is a linkage name, whereas the
regular expression used to do the matching refers to the natural
name. So match against the decoded name. */
@@ -13039,7 +13053,7 @@ ada_add_global_exceptions (compiled_regex *preg,
[&] (const char *search_name)
{
std::string decoded = ada_decode (search_name);
- return name_matches_regex (decoded.c_str (), preg);
+ return name_matches_regex (decoded.c_str ());
},
NULL,
SEARCH_GLOBAL_BLOCK | SEARCH_STATIC_BLOCK,
@@ -13065,7 +13079,7 @@ ada_add_global_exceptions (compiled_regex *preg,
for (struct symbol *sym : block_iterator_range (b))
if (ada_is_non_standard_exception_sym (sym)
- && name_matches_regex (sym->natural_name (), preg))
+ && name_matches_regex (sym->natural_name ()))
{
struct ada_exc_info info
= {sym->print_name (), sym->value_address ()};
@@ -14018,10 +14032,6 @@ When enabled, the debugger will stop using the DW_AT_GNAT_descriptive_type\n\
DWARF attribute."),
NULL, NULL, &maint_set_ada_cmdlist, &maint_show_ada_cmdlist);
- decoded_names_store = htab_create_alloc (256, htab_hash_string,
- htab_eq_string,
- NULL, xcalloc, xfree);
-
/* The ada-lang observers. */
gdb::observers::new_objfile.attach (ada_new_objfile_observer, "ada-lang");
gdb::observers::all_objfiles_removed.attach (ada_clear_symbol_cache,
diff --git a/gdb/ada-lang.h b/gdb/ada-lang.h
index 3582082..c125fbc 100644
--- a/gdb/ada-lang.h
+++ b/gdb/ada-lang.h
@@ -1,6 +1,6 @@
/* Ada language support definitions for GDB, the GNU debugger.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ada-lex.l b/gdb/ada-lex.l
index 8291595..0cfa0c8 100644
--- a/gdb/ada-lex.l
+++ b/gdb/ada-lex.l
@@ -1,5 +1,5 @@
/* FLEX lexer for Ada expressions, for GDB. -*- c++ -*-
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ada-tasks.c b/gdb/ada-tasks.c
index 5f4eceb..2595123 100644
--- a/gdb/ada-tasks.c
+++ b/gdb/ada-tasks.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ada-typeprint.c b/gdb/ada-typeprint.c
index ef466a1..defd828 100644
--- a/gdb/ada-typeprint.c
+++ b/gdb/ada-typeprint.c
@@ -1,5 +1,5 @@
/* Support for printing Ada types for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -702,7 +702,7 @@ print_variant_part (const variant_part &part,
name = "?";
else
{
- name = type->field (part.discriminant_index).name ();;
+ name = type->field (part.discriminant_index).name ();
discr_type = type->field (part.discriminant_index).type ();
}
diff --git a/gdb/ada-unicode.py b/gdb/ada-unicode.py
index f128dee..c269b4d 100755
--- a/gdb/ada-unicode.py
+++ b/gdb/ada-unicode.py
@@ -2,7 +2,7 @@
# Generate Unicode case-folding table for Ada.
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This file is part of GDB.
diff --git a/gdb/ada-valprint.c b/gdb/ada-valprint.c
index 937bd39..7c6826e 100644
--- a/gdb/ada-valprint.c
+++ b/gdb/ada-valprint.c
@@ -1,6 +1,6 @@
/* Support for printing Ada values for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ada-varobj.c b/gdb/ada-varobj.c
index 21412db..c87e7be 100644
--- a/gdb/ada-varobj.c
+++ b/gdb/ada-varobj.c
@@ -1,6 +1,6 @@
/* varobj support for Ada.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -379,16 +379,14 @@ ada_varobj_get_number_of_children (struct value *parent_value,
whose index is CHILD_INDEX:
- If CHILD_NAME is not NULL, then a copy of the child's name
- is saved in *CHILD_NAME. This copy must be deallocated
- with xfree after use.
+ is saved in *CHILD_NAME.
- If CHILD_VALUE is not NULL, then save the child's value
in *CHILD_VALUE. Same thing for the child's type with
CHILD_TYPE if not NULL.
- If CHILD_PATH_EXPR is not NULL, then compute the child's
- path expression. The resulting string must be deallocated
- after use with xfree.
+ path expression.
Computing the child's path expression requires the PARENT_PATH_EXPR
to be non-NULL. Otherwise, PARENT_PATH_EXPR may be null if
@@ -612,7 +610,7 @@ ada_varobj_describe_simple_array_child (struct value *parent_value,
{
std::string index_img = ada_varobj_scalar_image (index_type, real_index);
- /* Enumeration litterals by themselves are potentially ambiguous.
+ /* Enumeration literals by themselves are potentially ambiguous.
For instance, consider the following package spec:
package Pck is
@@ -620,10 +618,10 @@ ada_varobj_describe_simple_array_child (struct value *parent_value,
type Blood_Cells is (White, Red);
end Pck;
- In this case, the litteral "red" for instance, or even
- the fully-qualified litteral "pck.red" cannot be resolved
+ In this case, the literal "red" for instance, or even
+ the fully-qualified literal "pck.red" cannot be resolved
by itself. Type qualification is needed to determine which
- enumeration litterals should be used.
+ enumeration literals should be used.
The following variable will be used to contain the name
of the array index type when such type qualification is
@@ -805,9 +803,7 @@ ada_varobj_get_type_of_child (struct value *parent_value,
}
/* Return a string that contains the image of the given VALUE, using
- the print options OPTS as the options for formatting the result.
-
- The resulting string must be deallocated after use with xfree. */
+ the print options OPTS as the options for formatting the result. */
static std::string
ada_varobj_get_value_image (struct value *value,
@@ -825,9 +821,7 @@ ada_varobj_get_value_image (struct value *value,
in the array inside square brackets, but there are situations where
it's useful to add more info.
- OPTS are the print options used when formatting the result.
-
- The result should be deallocated after use using xfree. */
+ OPTS are the print options used when formatting the result. */
static std::string
ada_varobj_get_value_of_array_variable (struct value *value,
diff --git a/gdb/addrmap.c b/gdb/addrmap.c
index bd5601b..ea8bf0e 100644
--- a/gdb/addrmap.c
+++ b/gdb/addrmap.c
@@ -1,6 +1,6 @@
/* addrmap.c --- implementation of address map data structure.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -178,6 +178,29 @@ addrmap_mutable::force_transition (CORE_ADDR addr)
}
+/* Compare keys as CORE_ADDR * values. */
+static int
+splay_compare_CORE_ADDR_ptr (splay_tree_key ak, splay_tree_key bk)
+{
+ CORE_ADDR a = * (CORE_ADDR *) ak;
+ CORE_ADDR b = * (CORE_ADDR *) bk;
+
+ /* We can't just return a-b here, because of over/underflow. */
+ if (a < b)
+ return -1;
+ else if (a == b)
+ return 0;
+ else
+ return 1;
+}
+
+
+static void
+xfree_wrapper (splay_tree_key key)
+{
+ xfree ((void *) key);
+}
+
void
addrmap_mutable::set_empty (CORE_ADDR start, CORE_ADDR end_inclusive,
void *obj)
@@ -185,6 +208,10 @@ addrmap_mutable::set_empty (CORE_ADDR start, CORE_ADDR end_inclusive,
splay_tree_node n, next;
void *prior_value;
+ if (tree == nullptr)
+ tree = splay_tree_new (splay_compare_CORE_ADDR_ptr, xfree_wrapper,
+ nullptr /* no delete value */);
+
/* If we're being asked to set all empty portions of the given
address range to empty, then probably the caller is confused.
(If that turns out to be useful in some cases, then we can change
@@ -233,6 +260,9 @@ addrmap_mutable::set_empty (CORE_ADDR start, CORE_ADDR end_inclusive,
void *
addrmap_mutable::do_find (CORE_ADDR addr) const
{
+ if (tree == nullptr)
+ return nullptr;
+
splay_tree_node n = splay_tree_lookup (addr);
if (n != nullptr)
{
@@ -287,16 +317,6 @@ addrmap_fixed::addrmap_fixed (struct obstack *obstack,
gdb_assert (num_transitions == transition_count);
}
-
-void
-addrmap_mutable::relocate (CORE_ADDR offset)
-{
- /* Not needed yet. */
- internal_error (_("addrmap_relocate is not implemented yet "
- "for mutable addrmaps"));
-}
-
-
/* This is a splay_tree_foreach_fn. */
static int
@@ -311,43 +331,20 @@ addrmap_mutable_foreach_worker (splay_tree_node node, void *data)
int
addrmap_mutable::do_foreach (addrmap_foreach_fn fn) const
{
- return splay_tree_foreach (tree, addrmap_mutable_foreach_worker, &fn);
-}
-
-
-/* Compare keys as CORE_ADDR * values. */
-static int
-splay_compare_CORE_ADDR_ptr (splay_tree_key ak, splay_tree_key bk)
-{
- CORE_ADDR a = * (CORE_ADDR *) ak;
- CORE_ADDR b = * (CORE_ADDR *) bk;
-
- /* We can't just return a-b here, because of over/underflow. */
- if (a < b)
- return -1;
- else if (a == b)
+ if (tree == nullptr)
return 0;
- else
- return 1;
-}
-
-
-static void
-xfree_wrapper (splay_tree_key key)
-{
- xfree ((void *) key);
+ return splay_tree_foreach (tree, addrmap_mutable_foreach_worker, &fn);
}
-addrmap_mutable::addrmap_mutable ()
- : tree (splay_tree_new (splay_compare_CORE_ADDR_ptr, xfree_wrapper,
- nullptr /* no delete value */))
-{
-}
-addrmap_mutable::~addrmap_mutable ()
+void
+addrmap_mutable::clear ()
{
if (tree != nullptr)
- splay_tree_delete (tree);
+ {
+ splay_tree_delete (tree);
+ tree = nullptr;
+ }
}
@@ -401,20 +398,20 @@ namespace selftests {
/* Convert P to CORE_ADDR. */
static CORE_ADDR
-core_addr (void *p)
+core_addr (const void *p)
{
- return (CORE_ADDR)(uintptr_t)p;
+ return (CORE_ADDR) (uintptr_t) p;
}
/* Check that &ARRAY[LOW]..&ARRAY[HIGH] has VAL in MAP. */
-#define CHECK_ADDRMAP_FIND(MAP, ARRAY, LOW, HIGH, VAL) \
- do \
- { \
- for (unsigned i = LOW; i <= HIGH; ++i) \
- SELF_CHECK (MAP->find (core_addr (&ARRAY[i])) == VAL); \
- } \
- while (0)
+static void
+check_addrmap_find (const addrmap &map, const char *array, unsigned int low,
+ unsigned int high, const void *val)
+{
+ for (unsigned int i = low; i <= high; ++i)
+ SELF_CHECK (map.find (core_addr (&array[i])) == val);
+}
/* Entry point for addrmap unit tests. */
@@ -430,25 +427,24 @@ test_addrmap ()
/* Create mutable addrmap. */
auto_obstack temp_obstack;
- auto map = std::make_unique<struct addrmap_mutable> ();
- SELF_CHECK (map != nullptr);
+ addrmap_mutable map;
/* Check initial state. */
- CHECK_ADDRMAP_FIND (map, array, 0, 19, nullptr);
+ check_addrmap_find (map, array, 0, 19, nullptr);
/* Insert address range into mutable addrmap. */
- map->set_empty (core_addr (&array[10]), core_addr (&array[12]), val1);
- CHECK_ADDRMAP_FIND (map, array, 0, 9, nullptr);
- CHECK_ADDRMAP_FIND (map, array, 10, 12, val1);
- CHECK_ADDRMAP_FIND (map, array, 13, 19, nullptr);
+ map.set_empty (core_addr (&array[10]), core_addr (&array[12]), val1);
+ check_addrmap_find (map, array, 0, 9, nullptr);
+ check_addrmap_find (map, array, 10, 12, val1);
+ check_addrmap_find (map, array, 13, 19, nullptr);
/* Create corresponding fixed addrmap. */
- struct addrmap *map2
- = new (&temp_obstack) addrmap_fixed (&temp_obstack, map.get ());
+ addrmap_fixed *map2
+ = new (&temp_obstack) addrmap_fixed (&temp_obstack, &map);
SELF_CHECK (map2 != nullptr);
- CHECK_ADDRMAP_FIND (map2, array, 0, 9, nullptr);
- CHECK_ADDRMAP_FIND (map2, array, 10, 12, val1);
- CHECK_ADDRMAP_FIND (map2, array, 13, 19, nullptr);
+ check_addrmap_find (*map2, array, 0, 9, nullptr);
+ check_addrmap_find (*map2, array, 10, 12, val1);
+ check_addrmap_find (*map2, array, 13, 19, nullptr);
/* Iterate over both addrmaps. */
auto callback = [&] (CORE_ADDR start_addr, void *obj)
@@ -463,24 +459,24 @@ test_addrmap ()
SELF_CHECK (false);
return 0;
};
- SELF_CHECK (map->foreach (callback) == 0);
+ SELF_CHECK (map.foreach (callback) == 0);
SELF_CHECK (map2->foreach (callback) == 0);
/* Relocate fixed addrmap. */
map2->relocate (1);
- CHECK_ADDRMAP_FIND (map2, array, 0, 10, nullptr);
- CHECK_ADDRMAP_FIND (map2, array, 11, 13, val1);
- CHECK_ADDRMAP_FIND (map2, array, 14, 19, nullptr);
+ check_addrmap_find (*map2, array, 0, 10, nullptr);
+ check_addrmap_find (*map2, array, 11, 13, val1);
+ check_addrmap_find (*map2, array, 14, 19, nullptr);
/* Insert partially overlapping address range into mutable addrmap. */
- map->set_empty (core_addr (&array[11]), core_addr (&array[13]), val2);
- CHECK_ADDRMAP_FIND (map, array, 0, 9, nullptr);
- CHECK_ADDRMAP_FIND (map, array, 10, 12, val1);
- CHECK_ADDRMAP_FIND (map, array, 13, 13, val2);
- CHECK_ADDRMAP_FIND (map, array, 14, 19, nullptr);
+ map.set_empty (core_addr (&array[11]), core_addr (&array[13]), val2);
+ check_addrmap_find (map, array, 0, 9, nullptr);
+ check_addrmap_find (map, array, 10, 12, val1);
+ check_addrmap_find (map, array, 13, 13, val2);
+ check_addrmap_find (map, array, 14, 19, nullptr);
}
-} // namespace selftests
+} /* namespace selftests */
#endif /* GDB_SELF_TEST */
void _initialize_addrmap ();
diff --git a/gdb/addrmap.h b/gdb/addrmap.h
index 95f6ec8..179e1f8 100644
--- a/gdb/addrmap.h
+++ b/gdb/addrmap.h
@@ -1,6 +1,6 @@
/* addrmap.h --- interface to address map data structure.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -52,10 +52,6 @@ struct addrmap
void *find (CORE_ADDR addr)
{ return this->do_find (addr); }
- /* Relocate all the addresses in MAP by OFFSET. (This can be applied
- to either mutable or immutable maps.) */
- virtual void relocate (CORE_ADDR offset) = 0;
-
/* Call FN for every address in MAP, following an in-order traversal.
If FN ever returns a non-zero value, the iteration ceases
immediately, and the value is returned. Otherwise, this function
@@ -94,7 +90,8 @@ public:
addrmap_fixed (addrmap_fixed &&other) = default;
addrmap_fixed &operator= (addrmap_fixed &&) = default;
- void relocate (CORE_ADDR offset) override;
+ /* Relocate all the addresses in this map by OFFSET. */
+ void relocate (CORE_ADDR offset);
private:
void *do_find (CORE_ADDR addr) const override;
@@ -126,8 +123,12 @@ struct addrmap_mutable final : public addrmap
{
public:
- addrmap_mutable ();
- ~addrmap_mutable ();
+ addrmap_mutable () = default;
+ ~addrmap_mutable ()
+ {
+ clear ();
+ }
+
DISABLE_COPY_AND_ASSIGN (addrmap_mutable);
addrmap_mutable (addrmap_mutable &&other)
@@ -138,7 +139,13 @@ public:
addrmap_mutable &operator= (addrmap_mutable &&other)
{
- std::swap (tree, other.tree);
+ /* Handle self-move. */
+ if (this != &other)
+ {
+ clear ();
+ tree = other.tree;
+ other.tree = nullptr;
+ }
return *this;
}
@@ -181,7 +188,9 @@ public:
representation. */
void set_empty (CORE_ADDR start, CORE_ADDR end_inclusive,
void *obj);
- void relocate (CORE_ADDR offset) override;
+
+ /* Clear this addrmap. */
+ void clear ();
private:
void *do_find (CORE_ADDR addr) const override;
@@ -204,7 +213,7 @@ private:
function, we can't keep a freelist for keys. Since mutable
addrmaps are only used temporarily right now, we just leak keys
from deleted nodes; they'll be freed when the obstack is freed. */
- splay_tree tree;
+ splay_tree tree = nullptr;
/* Various helper methods. */
splay_tree_key allocate_key (CORE_ADDR addr);
diff --git a/gdb/agent.c b/gdb/agent.c
index 7a2a8e5..2009980 100644
--- a/gdb/agent.c
+++ b/gdb/agent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/aix-thread.c b/gdb/aix-thread.c
index 4a050cd..2fd6121 100644
--- a/gdb/aix-thread.c
+++ b/gdb/aix-thread.c
@@ -1,6 +1,6 @@
/* Low level interface for debugging AIX 4.3+ pthreads.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Nick Duffek <nsd@redhat.com>.
This file is part of GDB.
@@ -867,16 +867,6 @@ sync_threadlists (pid_t pid)
}
}
-/* Iterate_over_threads() callback for locating a thread, using
- the TID of its associated kernel thread. */
-
-static int
-iter_tid (struct thread_info *thread, void *tidp)
-{
- const pthdb_tid_t tid = *(pthdb_tid_t *)tidp;
- return thread->ptid.lwp () == tid;
-}
-
/* Synchronize libpthdebug's state with the inferior and with GDB,
generate a composite process/thread <pid> for the current thread,
Return the ptid of the event thread if one can be found, else
@@ -906,7 +896,10 @@ pd_update (pid_t pid)
tid = get_signaled_thread (pid);
if (tid != 0)
- thread = iterate_over_threads (iter_tid, &tid);
+ thread = iterate_over_threads ([&] (struct thread_info *thread)
+ {
+ return thread->ptid.lwp () == tid;
+ });
if (!thread)
ptid = ptid_t (pid);
else
diff --git a/gdb/alloc.c b/gdb/alloc.c
index d07c81f..667ecad 100644
--- a/gdb/alloc.c
+++ b/gdb/alloc.c
@@ -1,6 +1,6 @@
/* Shared allocation functions for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/alpha-bsd-nat.c b/gdb/alpha-bsd-nat.c
index 11e1639..85fb525 100644
--- a/gdb/alpha-bsd-nat.c
+++ b/gdb/alpha-bsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for Alpha BSD's.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/alpha-bsd-tdep.c b/gdb/alpha-bsd-tdep.c
index 21e39cc..b74b738 100644
--- a/gdb/alpha-bsd-tdep.c
+++ b/gdb/alpha-bsd-tdep.c
@@ -1,6 +1,6 @@
/* Common target dependent code Alpha BSD's.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/alpha-bsd-tdep.h b/gdb/alpha-bsd-tdep.h
index 4783854..7f85c78 100644
--- a/gdb/alpha-bsd-tdep.h
+++ b/gdb/alpha-bsd-tdep.h
@@ -1,6 +1,6 @@
/* Common target dependent code for Alpha BSD's.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/alpha-linux-nat.c b/gdb/alpha-linux-nat.c
index 83d6bc4..6d9de81 100644
--- a/gdb/alpha-linux-nat.c
+++ b/gdb/alpha-linux-nat.c
@@ -1,5 +1,5 @@
/* Low level Alpha GNU/Linux interface, for GDB when running native.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/alpha-linux-tdep.c b/gdb/alpha-linux-tdep.c
index 9a40e0c..2f6affa 100644
--- a/gdb/alpha-linux-tdep.c
+++ b/gdb/alpha-linux-tdep.c
@@ -1,5 +1,5 @@
/* Target-dependent code for GNU/Linux on Alpha.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/alpha-mdebug-tdep.c b/gdb/alpha-mdebug-tdep.c
index b43849c..b22641e 100644
--- a/gdb/alpha-mdebug-tdep.c
+++ b/gdb/alpha-mdebug-tdep.c
@@ -1,5 +1,5 @@
/* Target-dependent mdebug code for the ALPHA architecture.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/alpha-netbsd-tdep.c b/gdb/alpha-netbsd-tdep.c
index f3cd62b..a240039 100644
--- a/gdb/alpha-netbsd-tdep.c
+++ b/gdb/alpha-netbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for NetBSD/alpha.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Wasabi Systems, Inc.
diff --git a/gdb/alpha-obsd-tdep.c b/gdb/alpha-obsd-tdep.c
index 8602e21..b5ddbbc 100644
--- a/gdb/alpha-obsd-tdep.c
+++ b/gdb/alpha-obsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for OpenBSD/alpha.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c
index 7201b72..f0272b0 100644
--- a/gdb/alpha-tdep.c
+++ b/gdb/alpha-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the ALPHA architecture, for GDB, the GNU Debugger.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -1705,7 +1705,7 @@ alpha_software_single_step (struct regcache *regcache)
}
-/* Initialize the current architecture based on INFO. If possible, re-use an
+/* Initialize the current architecture based on INFO. If possible, reuse an
architecture from ARCHES, which is a list of architectures already created
during this debugging session.
diff --git a/gdb/alpha-tdep.h b/gdb/alpha-tdep.h
index b42863f..5e0adf3 100644
--- a/gdb/alpha-tdep.h
+++ b/gdb/alpha-tdep.h
@@ -1,5 +1,5 @@
/* Common target dependent code for GDB on Alpha systems.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/amd-dbgapi-target.c b/gdb/amd-dbgapi-target.c
index 2bb79ac..e2a8ec8 100644
--- a/gdb/amd-dbgapi-target.c
+++ b/gdb/amd-dbgapi-target.c
@@ -1,6 +1,6 @@
/* Target used to communicate with the AMD Debugger API.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -24,6 +24,8 @@
#include "cli/cli-cmds.h"
#include "cli/cli-decode.h"
#include "cli/cli-style.h"
+#include "gdbcore.h"
+#include "gdbsupport/unordered_map.h"
#include "inf-loop.h"
#include "inferior.h"
#include "objfiles.h"
@@ -207,13 +209,19 @@ struct amd_dbgapi_inferior_info
bool enabled = false;
} precise_memory;
- std::unordered_map<decltype (amd_dbgapi_breakpoint_id_t::handle),
+ gdb::unordered_map<decltype (amd_dbgapi_breakpoint_id_t::handle),
struct breakpoint *>
breakpoint_map;
/* List of pending events the amd-dbgapi target retrieved from the dbgapi. */
std::list<std::pair<ptid_t, target_waitstatus>> wave_events;
+ /* Map of threads with ongoing displaced steps to corresponding amd-dbgapi
+ displaced stepping handles. */
+ gdb::unordered_map<thread_info *,
+ decltype (amd_dbgapi_displaced_stepping_id_t::handle)>
+ stepping_id_map;
+
/* Map of wave ID to wave_info. We cache wave_info objects because
we need to access the info after the wave is gone, in the thread
exit nofication. E.g.:
@@ -221,12 +229,12 @@ struct amd_dbgapi_inferior_info
wave_info objects are added when we first see the wave, and
removed from a thread_deleted observer. */
- std::unordered_map<decltype (amd_dbgapi_wave_id_t::handle), wave_info>
+ gdb::unordered_map<decltype (amd_dbgapi_wave_id_t::handle), wave_info>
wave_info_map;
};
static amd_dbgapi_event_id_t process_event_queue
- (amd_dbgapi_process_id_t process_id,
+ (amd_dbgapi_inferior_info &info,
amd_dbgapi_event_kind_t until_event_kind = AMD_DBGAPI_EVENT_KIND_NONE);
static const target_info amd_dbgapi_target_info = {
@@ -290,6 +298,21 @@ struct amd_dbgapi_target final : public target_ops
bool stopped_by_sw_breakpoint () override;
bool stopped_by_hw_breakpoint () override;
+ bool supports_displaced_step (thread_info *thread) override
+ {
+ /* Handle displaced stepping for GPU threads only. */
+ if (!ptid_is_gpu (thread->ptid))
+ return beneath ()->supports_displaced_step (thread);
+
+ return true;
+ }
+
+ displaced_step_prepare_status displaced_step_prepare
+ (thread_info *thread, CORE_ADDR &displaced_pc) override;
+
+ displaced_step_finish_status displaced_step_finish
+ (thread_info *thread, const target_waitstatus &status) override;
+
private:
/* True if we must report thread events. */
bool m_report_thread_events = false;
@@ -420,6 +443,32 @@ async_event_handler_mark ()
mark_async_event_handler (amd_dbgapi_async_event_handler);
}
+/* Set forward progress requirement to REQUIRE for inferior INFO. */
+
+static void
+require_forward_progress (amd_dbgapi_inferior_info &info, bool require)
+{
+ /* If we try to disable forward progress requirement but the target expects
+ resumed threads to be committed to the target, we could wait for events
+ that will never arrive. */
+ if (!require)
+ gdb_assert (!info.inf->process_target ()->commit_resumed_state);
+
+ gdb_assert (info.process_id != AMD_DBGAPI_PROCESS_NONE);
+
+ /* Don't do unnecessary calls to amd-dbgapi to avoid polluting the logs. */
+ if (info.forward_progress_required == require)
+ return;
+
+ const auto progress
+ = require ? AMD_DBGAPI_PROGRESS_NORMAL : AMD_DBGAPI_PROGRESS_NO_FORWARD;
+ const auto status
+ = amd_dbgapi_process_set_progress (info.process_id, progress);
+ gdb_assert (status == AMD_DBGAPI_STATUS_SUCCESS);
+
+ info.forward_progress_required = require;
+}
+
/* Set forward progress requirement to REQUIRE for all processes of PROC_TARGET
matching PTID. */
@@ -434,21 +483,8 @@ require_forward_progress (ptid_t ptid, process_stratum_target *proc_target,
amd_dbgapi_inferior_info *info = get_amd_dbgapi_inferior_info (inf);
- if (info->process_id == AMD_DBGAPI_PROCESS_NONE)
- continue;
-
- /* Don't do unnecessary calls to amd-dbgapi to avoid polluting the logs. */
- if (info->forward_progress_required == require)
- continue;
-
- amd_dbgapi_status_t status
- = amd_dbgapi_process_set_progress
- (info->process_id, (require
- ? AMD_DBGAPI_PROGRESS_NORMAL
- : AMD_DBGAPI_PROGRESS_NO_FORWARD));
- gdb_assert (status == AMD_DBGAPI_STATUS_SUCCESS);
-
- info->forward_progress_required = require;
+ if (info->process_id != AMD_DBGAPI_PROCESS_NONE)
+ require_forward_progress (*info, require);
/* If ptid targets a single inferior and we have found it, no need to
continue. */
@@ -532,11 +568,12 @@ amd_dbgapi_target_breakpoint::check_status (struct bpstat *bs)
if (action == AMD_DBGAPI_BREAKPOINT_ACTION_RESUME)
return;
+ require_forward_progress (*info, false);
+
/* If the action is AMD_DBGAPI_BREAKPOINT_ACTION_HALT, we need to wait until
a breakpoint resume event for this breakpoint_id is seen. */
amd_dbgapi_event_id_t resume_event_id
- = process_event_queue (info->process_id,
- AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME);
+ = process_event_queue (*info, AMD_DBGAPI_EVENT_KIND_BREAKPOINT_RESUME);
/* We should always get a breakpoint_resume event after processing all
events generated by reporting the breakpoint hit. */
@@ -1115,32 +1152,14 @@ add_gpu_thread (inferior *inf, ptid_t wave_ptid)
/* Process an event that was just pulled out of the amd-dbgapi library. */
static void
-process_one_event (amd_dbgapi_event_id_t event_id,
+process_one_event (amd_dbgapi_inferior_info &info,
+ amd_dbgapi_event_id_t event_id,
amd_dbgapi_event_kind_t event_kind)
{
/* Automatically mark this event processed when going out of scope. */
scoped_amd_dbgapi_event_processed mark_event_processed (event_id);
- amd_dbgapi_process_id_t process_id;
- amd_dbgapi_status_t status
- = amd_dbgapi_event_get_info (event_id, AMD_DBGAPI_EVENT_INFO_PROCESS,
- sizeof (process_id), &process_id);
- if (status != AMD_DBGAPI_STATUS_SUCCESS)
- error (_("event_get_info for event_%ld failed (%s)"), event_id.handle,
- get_status_string (status));
-
- amd_dbgapi_os_process_id_t pid;
- status = amd_dbgapi_process_get_info (process_id,
- AMD_DBGAPI_PROCESS_INFO_OS_ID,
- sizeof (pid), &pid);
- if (status != AMD_DBGAPI_STATUS_SUCCESS)
- error (_("process_get_info for process_%ld failed (%s)"),
- process_id.handle, get_status_string (status));
-
- auto *proc_target = current_inferior ()->process_target ();
- inferior *inf = find_inferior_pid (proc_target, pid);
- gdb_assert (inf != nullptr);
- amd_dbgapi_inferior_info *info = get_amd_dbgapi_inferior_info (inf);
+ gdb_assert (info.inf != nullptr);
switch (event_kind)
{
@@ -1148,14 +1167,14 @@ process_one_event (amd_dbgapi_event_id_t event_id,
case AMD_DBGAPI_EVENT_KIND_WAVE_STOP:
{
amd_dbgapi_wave_id_t wave_id;
- status
+ amd_dbgapi_status_t status
= amd_dbgapi_event_get_info (event_id, AMD_DBGAPI_EVENT_INFO_WAVE,
sizeof (wave_id), &wave_id);
if (status != AMD_DBGAPI_STATUS_SUCCESS)
error (_("event_get_info for event_%ld failed (%s)"),
event_id.handle, get_status_string (status));
- ptid_t event_ptid = make_gpu_ptid (pid, wave_id);
+ ptid_t event_ptid = make_gpu_ptid (info.inf->pid, wave_id);
target_waitstatus ws;
amd_dbgapi_wave_stop_reasons_t stop_reason;
@@ -1196,9 +1215,10 @@ process_one_event (amd_dbgapi_event_id_t event_id,
else
ws.set_stopped (GDB_SIGNAL_0);
- thread_info *thread = proc_target->find_thread (event_ptid);
+ thread_info *thread
+ = info.inf->process_target ()->find_thread (event_ptid);
if (thread == nullptr)
- thread = add_gpu_thread (inf, event_ptid);
+ thread = add_gpu_thread (info.inf, event_ptid);
/* If the wave is stopped because of a software breakpoint, the
program counter needs to be adjusted so that it points to the
@@ -1220,7 +1240,7 @@ process_one_event (amd_dbgapi_event_id_t event_id,
error (_("wave_get_info for wave_%ld failed (%s)"),
wave_id.handle, get_status_string (status));
- info->wave_events.emplace_back (event_ptid, ws);
+ info.wave_events.emplace_back (event_ptid, ws);
break;
}
@@ -1238,7 +1258,7 @@ process_one_event (amd_dbgapi_event_id_t event_id,
When amd_dbgapi_target_breakpoint::check_status is called, the current
inferior is the inferior that hit the breakpoint, which should still be
the case now. */
- gdb_assert (inf == current_inferior ());
+ gdb_assert (info.inf == current_inferior ());
handle_solib_event ();
break;
@@ -1252,22 +1272,22 @@ process_one_event (amd_dbgapi_event_id_t event_id,
{
amd_dbgapi_runtime_state_t runtime_state;
- status = amd_dbgapi_event_get_info (event_id,
- AMD_DBGAPI_EVENT_INFO_RUNTIME_STATE,
- sizeof (runtime_state),
- &runtime_state);
+ amd_dbgapi_status_t status
+ = amd_dbgapi_event_get_info (event_id,
+ AMD_DBGAPI_EVENT_INFO_RUNTIME_STATE,
+ sizeof (runtime_state), &runtime_state);
if (status != AMD_DBGAPI_STATUS_SUCCESS)
error (_("event_get_info for event_%ld failed (%s)"),
event_id.handle, get_status_string (status));
gdb_assert (runtime_state == AMD_DBGAPI_RUNTIME_STATE_UNLOADED);
gdb_assert
- (info->runtime_state == AMD_DBGAPI_RUNTIME_STATE_LOADED_SUCCESS);
+ (info.runtime_state == AMD_DBGAPI_RUNTIME_STATE_LOADED_SUCCESS);
- info->runtime_state = runtime_state;
+ info.runtime_state = runtime_state;
- gdb_assert (inf->target_is_pushed (&the_amd_dbgapi_target));
- inf->unpush_target (&the_amd_dbgapi_target);
+ gdb_assert (info.inf->target_is_pushed (&the_amd_dbgapi_target));
+ info.inf->unpush_target (&the_amd_dbgapi_target);
}
break;
@@ -1308,20 +1328,18 @@ event_kind_str (amd_dbgapi_event_kind_t kind)
gdb_assert_not_reached ("unhandled amd_dbgapi_event_kind_t value");
}
-/* Drain the dbgapi event queue of a given process_id, or of all processes if
- process_id is AMD_DBGAPI_PROCESS_NONE. Stop processing the events if an
- event of a given kind is requested and `process_id` is not
- AMD_DBGAPI_PROCESS_NONE. Wave stop events that are not returned are queued
- into their inferior's amd_dbgapi_inferior_info pending wave events. */
+/* Drain the dbgapi event queue of a given inferior. Stop processing the
+ events if an event of a given kind is requested (not AMD_DBGAPI_EVENT_NONE).
+ Wave stop events that are not returned are queued into their inferior's
+ amd_dbgapi_inferior_info pending wave events. */
static amd_dbgapi_event_id_t
-process_event_queue (amd_dbgapi_process_id_t process_id,
+process_event_queue (amd_dbgapi_inferior_info &info,
amd_dbgapi_event_kind_t until_event_kind)
{
- /* An event of a given type can only be requested from a single
- process_id. */
- gdb_assert (until_event_kind == AMD_DBGAPI_EVENT_KIND_NONE
- || process_id != AMD_DBGAPI_PROCESS_NONE);
+ /* Pulling events with forward progress required may result in bad
+ performance, make sure it is not required. */
+ gdb_assert (!info.forward_progress_required);
while (true)
{
@@ -1329,7 +1347,7 @@ process_event_queue (amd_dbgapi_process_id_t process_id,
amd_dbgapi_event_kind_t event_kind;
amd_dbgapi_status_t status
- = amd_dbgapi_process_next_pending_event (process_id, &event_id,
+ = amd_dbgapi_process_next_pending_event (info.process_id, &event_id,
&event_kind);
if (status != AMD_DBGAPI_STATUS_SUCCESS)
@@ -1345,7 +1363,7 @@ process_event_queue (amd_dbgapi_process_id_t process_id,
if (event_id == AMD_DBGAPI_EVENT_NONE || event_kind == until_event_kind)
return event_id;
- process_one_event (event_id, event_kind);
+ process_one_event (info, event_id, event_kind);
}
}
@@ -1450,7 +1468,7 @@ amd_dbgapi_target::wait (ptid_t ptid, struct target_waitstatus *ws,
/* Drain the events for the current inferior from the amd_dbgapi and
preserve the ordering. */
auto info = get_amd_dbgapi_inferior_info (current_inferior ());
- process_event_queue (info->process_id, AMD_DBGAPI_EVENT_KIND_NONE);
+ process_event_queue (*info);
std::tie (event_ptid, gpu_waitstatus) = consume_one_event (ptid.pid ());
if (event_ptid == minus_one_ptid)
@@ -1837,13 +1855,14 @@ amd_dbgapi_target::update_thread_list ()
if (changed == AMD_DBGAPI_CHANGED_NO)
continue;
+ gdb::unique_xmalloc_ptr<amd_dbgapi_wave_id_t> wave_list_holder
+ (wave_list);
+
/* Create a set and free the wave list. */
std::set<ptid_t::tid_type> threads;
for (size_t i = 0; i < count; ++i)
threads.emplace (wave_list[i].handle);
- xfree (wave_list);
-
/* Prune the wave_ids that already have a thread_info. Any thread_info
which does not have a corresponding wave_id represents a wave which
is gone at this point and should be deleted. */
@@ -1896,6 +1915,122 @@ amd_dbgapi_target::update_thread_list ()
this->beneath ()->update_thread_list ();
}
+displaced_step_prepare_status
+amd_dbgapi_target::displaced_step_prepare (thread_info *thread,
+ CORE_ADDR &displaced_pc)
+{
+ if (!ptid_is_gpu (thread->ptid))
+ return beneath ()->displaced_step_prepare (thread, displaced_pc);
+
+ gdb_assert (!thread->displaced_step_state.in_progress ());
+
+ /* Read the bytes that were overwritten by the breakpoint instruction being
+ stepped over. */
+ CORE_ADDR original_pc = regcache_read_pc (get_thread_regcache (thread));
+ gdbarch *arch = get_thread_regcache (thread)->arch ();
+ size_t size = get_amdgpu_gdbarch_tdep (arch)->breakpoint_instruction_size;
+ gdb::byte_vector overwritten_bytes (size);
+
+ read_memory (original_pc, overwritten_bytes.data (), size);
+
+ /* Ask dbgapi to start the displaced step. */
+ amd_dbgapi_wave_id_t wave_id = get_amd_dbgapi_wave_id (thread->ptid);
+ amd_dbgapi_displaced_stepping_id_t stepping_id;
+ amd_dbgapi_status_t status
+ = amd_dbgapi_displaced_stepping_start (wave_id, overwritten_bytes.data (),
+ &stepping_id);
+
+ switch (status)
+ {
+ case AMD_DBGAPI_STATUS_SUCCESS:
+ break;
+
+ case AMD_DBGAPI_STATUS_ERROR_DISPLACED_STEPPING_BUFFER_NOT_AVAILABLE:
+ return DISPLACED_STEP_PREPARE_STATUS_UNAVAILABLE;
+
+ case AMD_DBGAPI_STATUS_ERROR_ILLEGAL_INSTRUCTION:
+ return DISPLACED_STEP_PREPARE_STATUS_CANT;
+
+ default:
+ error (_("amd_dbgapi_displaced_stepping_start failed (%s)"),
+ get_status_string (status));
+ }
+
+ /* Save the displaced stepping id in the per-inferior info. */
+ amd_dbgapi_inferior_info *info = get_amd_dbgapi_inferior_info (thread->inf);
+
+ bool inserted
+ = info->stepping_id_map.emplace (thread, stepping_id.handle).second;
+ gdb_assert (inserted);
+
+ /* Get the new (displaced) PC. */
+ status = amd_dbgapi_wave_get_info (wave_id, AMD_DBGAPI_WAVE_INFO_PC,
+ sizeof (displaced_pc), &displaced_pc);
+ if (status != AMD_DBGAPI_STATUS_SUCCESS)
+ {
+ amd_dbgapi_displaced_stepping_complete (wave_id, stepping_id);
+ error (_("amd_dbgapi_wave_get_info failed (%s), could not get the "
+ "thread's displaced PC."),
+ get_status_string (status));
+ }
+
+ displaced_debug_printf ("selected buffer at %#lx", displaced_pc);
+
+ /* We may have written some registers, so flush the register cache. */
+ registers_changed_thread (thread);
+
+ return DISPLACED_STEP_PREPARE_STATUS_OK;
+}
+
+displaced_step_finish_status
+amd_dbgapi_target::displaced_step_finish (thread_info *thread,
+ const target_waitstatus &ws)
+{
+ if (!ptid_is_gpu (thread->ptid))
+ return beneath ()->displaced_step_finish (thread, ws);
+
+ gdb_assert (thread->displaced_step_state.in_progress ());
+
+ /* Find the displaced stepping id for this thread. */
+ amd_dbgapi_inferior_info *info = get_amd_dbgapi_inferior_info (thread->inf);
+ auto entry = info->stepping_id_map.extract (thread);
+
+ gdb_assert (entry.has_value ());
+ amd_dbgapi_displaced_stepping_id_t stepping_id {entry->second};
+
+ /* If the thread exited while stepping, we are done. The code above
+ cleared our associated resources. We don't want to call dbgapi
+ below: since the thread is gone, we wouldn't be able to find the
+ necessary wave ID. dbgapi already took care of releasing its
+ displaced-stepping-related resources when it deleted the
+ wave. */
+ if (ws.kind () == TARGET_WAITKIND_THREAD_EXITED)
+ return DISPLACED_STEP_FINISH_STATUS_OK;
+
+ amd_dbgapi_wave_id_t wave_id = get_amd_dbgapi_wave_id (thread->ptid);
+ amd_dbgapi_wave_stop_reasons_t stop_reason;
+ amd_dbgapi_status_t status
+ = amd_dbgapi_wave_get_info (wave_id, AMD_DBGAPI_WAVE_INFO_STOP_REASON,
+ sizeof (stop_reason), &stop_reason);
+
+ if (status != AMD_DBGAPI_STATUS_SUCCESS)
+ error (_("wave_get_info for wave_%ld failed (%s)"), wave_id.handle,
+ get_status_string (status));
+
+ status = amd_dbgapi_displaced_stepping_complete (wave_id, stepping_id);
+
+ if (status != AMD_DBGAPI_STATUS_SUCCESS)
+ error (_("amd_dbgapi_displaced_stepping_complete failed (%s)"),
+ get_status_string (status));
+
+ /* We may have written some registers, so flush the register cache. */
+ registers_changed_thread (thread);
+
+ return (stop_reason & AMD_DBGAPI_WAVE_STOP_REASON_SINGLE_STEP) != 0
+ ? DISPLACED_STEP_FINISH_STATUS_OK
+ : DISPLACED_STEP_FINISH_STATUS_NOT_EXECUTED;
+}
+
/* inferior_created observer. */
static void
diff --git a/gdb/amd-dbgapi-target.h b/gdb/amd-dbgapi-target.h
index 0a9cafa..dd37ba3 100644
--- a/gdb/amd-dbgapi-target.h
+++ b/gdb/amd-dbgapi-target.h
@@ -1,6 +1,6 @@
/* Target used to communicate with the AMD Debugger API.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/amd64-bsd-nat.c b/gdb/amd64-bsd-nat.c
index e0ba28f..85e6053 100644
--- a/gdb/amd64-bsd-nat.c
+++ b/gdb/amd64-bsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for AMD64 BSD's.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/amd64-bsd-nat.h b/gdb/amd64-bsd-nat.h
index 7ea2682..aab990d 100644
--- a/gdb/amd64-bsd-nat.h
+++ b/gdb/amd64-bsd-nat.h
@@ -1,6 +1,6 @@
/* Native-dependent code for modern AMD64 BSD's.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/amd64-darwin-tdep.c b/gdb/amd64-darwin-tdep.c
index f2741e2..dde023e 100644
--- a/gdb/amd64-darwin-tdep.c
+++ b/gdb/amd64-darwin-tdep.c
@@ -1,5 +1,5 @@
/* Darwin support for GDB, the GNU debugger.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Apple Computer, Inc.
diff --git a/gdb/amd64-darwin-tdep.h b/gdb/amd64-darwin-tdep.h
index c09cfe3..f5d8550 100644
--- a/gdb/amd64-darwin-tdep.h
+++ b/gdb/amd64-darwin-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for Darwin x86-64.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/amd64-dicos-tdep.c b/gdb/amd64-dicos-tdep.c
index 7624289..3e9b8c7 100644
--- a/gdb/amd64-dicos-tdep.c
+++ b/gdb/amd64-dicos-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for DICOS running on x86-64's, for GDB.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/amd64-fbsd-nat.c b/gdb/amd64-fbsd-nat.c
index 6ce7c45..a783a5d1 100644
--- a/gdb/amd64-fbsd-nat.c
+++ b/gdb/amd64-fbsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for FreeBSD/amd64.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -137,7 +137,7 @@ amd64_fbsd_nat_target::fetch_registers (struct regcache *regcache, int regnum)
/* There is no amd64_fxsave_supplies or amd64_xsave_supplies.
Instead, the earlier register sets return early if the request
- was for a specific register that was already satisified to avoid
+ was for a specific register that was already satisfied to avoid
fetching the FPU/XSAVE state unnecessarily. */
#ifdef PT_GETXSTATE_INFO
@@ -214,7 +214,7 @@ amd64_fbsd_nat_target::store_registers (struct regcache *regcache, int regnum)
/* There is no amd64_fxsave_supplies or amd64_xsave_supplies.
Instead, the earlier register sets return early if the request
- was for a specific register that was already satisified to avoid
+ was for a specific register that was already satisfied to avoid
fetching the FPU/XSAVE state unnecessarily. */
#ifdef PT_GETXSTATE_INFO
diff --git a/gdb/amd64-fbsd-tdep.c b/gdb/amd64-fbsd-tdep.c
index de29509..eea0105 100644
--- a/gdb/amd64-fbsd-tdep.c
+++ b/gdb/amd64-fbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for FreeBSD/amd64.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/amd64-fbsd-tdep.h b/gdb/amd64-fbsd-tdep.h
index 7e8acc6..c92618e 100644
--- a/gdb/amd64-fbsd-tdep.h
+++ b/gdb/amd64-fbsd-tdep.h
@@ -1,6 +1,6 @@
/* FreeBSD/amd64 target support, prototypes.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/amd64-gnu-tdep.c b/gdb/amd64-gnu-tdep.c
new file mode 100644
index 0000000..602fa8e
--- /dev/null
+++ b/gdb/amd64-gnu-tdep.c
@@ -0,0 +1,231 @@
+/* Target-dependent code for the GNU Hurd.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include "defs.h"
+#include "extract-store-integer.h"
+#include "gdbcore.h"
+#include "osabi.h"
+#include "solib-svr4.h"
+
+#include "amd64-tdep.h"
+#include "glibc-tdep.h"
+
+/* Recognizing signal handler frames. */
+
+/* When the GNU/Hurd libc calls a signal handler, the return address points
+ inside the trampoline assembly snippet.
+
+ If the trampoline function name can not be identified, we resort to reading
+ memory from the process in order to identify it. */
+
+static const gdb_byte gnu_sigtramp_code[] =
+{
+/* rpc_wait_trampoline: */
+ 0x48, 0xc7, 0xc0, 0xe7, 0xff, 0xff, 0xff, /* mov $-25,%rax */
+ 0x0f, 0x05, /* syscall */
+ 0x49, 0x89, 0x04, 0x24, /* mov %rax,(%r12) */
+ 0x48, 0x89, 0xdc, /* mov %rbx,%rsp */
+
+/* trampoline: */
+ 0x5f, /* pop %rdi */
+ 0x5e, /* pop %rsi */
+ 0x5a, /* pop %rdx */
+ 0x48, 0x83, 0xc4, 0x08, /* add $0x8,%rsp */
+ 0x41, 0xff, 0xd5, /* call *%r13 */
+
+/* RA HERE */
+ 0x48, 0x8b, 0x7c, 0x24, 0x10, /* mov 0x10(%rsp),%rdi */
+ 0xc3, /* ret */
+
+/* firewall: */
+ 0xf4, /* hlt */
+};
+
+#define GNU_SIGTRAMP_LEN (sizeof gnu_sigtramp_code)
+#define GNU_SIGTRAMP_TAIL 7 /* length of tail after RA */
+
+/* If THIS_FRAME is a sigtramp routine, return the address of the
+ start of the routine. Otherwise, return 0. */
+
+static CORE_ADDR
+amd64_gnu_sigtramp_start (frame_info_ptr this_frame)
+{
+ CORE_ADDR pc = get_frame_pc (this_frame);
+ gdb_byte buf[GNU_SIGTRAMP_LEN];
+
+ if (!safe_frame_unwind_memory (this_frame,
+ pc + GNU_SIGTRAMP_TAIL - GNU_SIGTRAMP_LEN,
+ buf))
+ return 0;
+
+ if (memcmp (buf, gnu_sigtramp_code, GNU_SIGTRAMP_LEN) != 0)
+ return 0;
+
+ return pc;
+}
+
+/* Return whether THIS_FRAME corresponds to a Hurd sigtramp routine. */
+
+static int
+amd64_gnu_sigtramp_p (const frame_info_ptr &this_frame)
+{
+ CORE_ADDR pc = get_frame_pc (this_frame);
+ const char *name;
+
+ find_pc_partial_function (pc, &name, NULL, NULL);
+
+ /* If we have a NAME, we can check for the trampoline function */
+ if (name != NULL && strcmp (name, "trampoline") == 0)
+ return 1;
+
+ return amd64_gnu_sigtramp_start (this_frame) != 0;
+}
+
+/* Offset to sc_i386_thread_state in sigcontext, from <bits/sigcontext.h>. */
+#define AMD64_GNU_SIGCONTEXT_THREAD_STATE_OFFSET 32
+
+/* Assuming THIS_FRAME is a Hurd sigtramp routine, return the
+ address of the associated sigcontext structure. */
+
+static CORE_ADDR
+amd64_gnu_sigcontext_addr (const frame_info_ptr &this_frame)
+{
+ struct gdbarch *gdbarch = get_frame_arch (this_frame);
+ enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
+ CORE_ADDR pc;
+ CORE_ADDR sp;
+ gdb_byte buf[8];
+
+ get_frame_register (this_frame, AMD64_RSP_REGNUM, buf);
+ sp = extract_unsigned_integer (buf, 8, byte_order);
+
+ pc = amd64_gnu_sigtramp_start (this_frame);
+ if (pc)
+ {
+ CORE_ADDR sigcontext_addr;
+
+ /* The sigcontext structure address is passed as the third argument
+ * of the signal handler but %RDX is not saved across calls. Luckily,
+ * the structured is saved underneath the &__sigreturn and a dummy word
+ * to fill the slot for the address for __sigreturn to return to.
+ */
+ read_memory (sp + 16, buf, 8);
+ sigcontext_addr = extract_unsigned_integer (buf, 8, byte_order);
+ return sigcontext_addr + AMD64_GNU_SIGCONTEXT_THREAD_STATE_OFFSET;
+ }
+
+ error (_("Couldn't recognize signal trampoline."));
+ return 0;
+}
+
+/* Mapping between the general-purpose registers in `struct
+ sigcontext' format (starting at sc_i386_thread_state)
+ and GDB's register cache layout. */
+
+/* From <bits/sigcontext.h>. */
+static int amd64_gnu_sc_reg_offset[] =
+{
+ 15 * 8, /* %rax */
+ 12 * 8, /* %rbx */
+ 14 * 8, /* %rcx */
+ 13 * 8, /* %rdx */
+ 10 * 8, /* %rsi */
+ 9 * 8, /* %rdi */
+ 10 * 8, /* %rbp */
+ 11 * 8, /* %rsp */
+ 0 * 8, /* %r8 ... */
+ 8 * 8,
+ 7 * 8,
+ 6 * 8,
+ 3 * 8,
+ 2 * 8,
+ 1 * 8,
+ 0 * 8, /* ... %r15 */
+ 16 * 8, /* %rip */
+ 18 * 8, /* %eflags */
+ 17 * 8, /* %cs */
+};
+
+/* From <sys/ucontext.h>. */
+static int amd64_gnu_gregset_reg_offset[] =
+{
+ 10 * 8, /* %rax */
+ 5 * 8, /* %rbx */
+ 11 * 8, /* %rcx */
+ 12 * 8, /* %rdx */
+ 13 * 8, /* %rsi */
+ 14 * 8, /* %rdi */
+ 4 * 8, /* %rbp */
+ 19 * 8, /* %rsp */
+ 9 * 8, /* %r8 ... */
+ 8 * 8,
+ 7 * 8,
+ 6 * 8,
+ 3 * 8,
+ 2 * 8,
+ 1 * 8,
+ 0 * 8, /* ... %r15 */
+ 16 * 8, /* %rip */
+ 18 * 8, /* %eflags */
+ 17 * 8, /* %cs */
+ -1, /* %ss */
+ -1, /* %ds */
+ -1, /* %es */
+ -1, /* %fs */
+ -1, /* %gs */
+};
+
+static void
+amd64_gnu_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
+{
+ i386_gdbarch_tdep *tdep = gdbarch_tdep<i386_gdbarch_tdep> (gdbarch);
+
+ amd64_init_abi (info, gdbarch,
+ amd64_target_description (X86_XSTATE_SSE_MASK, true));
+
+ /* Enable TLS support. */
+ set_gdbarch_fetch_tls_load_module_address (gdbarch,
+ svr4_fetch_objfile_link_map);
+
+ /* Hurd uses SVR4-style shared libraries. */
+ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
+
+ /* Hurd uses the dynamic linker included in the GNU C Library. */
+ set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver);
+
+ tdep->gregset_reg_offset = amd64_gnu_gregset_reg_offset;
+ tdep->gregset_num_regs = ARRAY_SIZE (amd64_gnu_gregset_reg_offset);
+ tdep->sizeof_gregset = 21 * 8; /* sizeof (struct i386_thread_state); */
+
+ tdep->sigtramp_p = amd64_gnu_sigtramp_p;
+ tdep->sigcontext_addr = amd64_gnu_sigcontext_addr;
+ tdep->sc_reg_offset = amd64_gnu_sc_reg_offset;
+ tdep->sc_num_regs = ARRAY_SIZE (amd64_gnu_sc_reg_offset);
+
+ /* Hurd uses SVR4-style shared libraries. */
+ set_solib_svr4_fetch_link_map_offsets
+ (gdbarch, svr4_lp64_fetch_link_map_offsets);
+}
+
+void _initialize_amd64_gnu_tdep ();
+void
+_initialize_amd64_gnu_tdep ()
+{
+ gdbarch_register_osabi (bfd_arch_i386, bfd_mach_x86_64,
+ GDB_OSABI_HURD, amd64_gnu_init_abi);
+}
diff --git a/gdb/amd64-linux-nat.c b/gdb/amd64-linux-nat.c
index c3b7a19..75e63c6 100644
--- a/gdb/amd64-linux-nat.c
+++ b/gdb/amd64-linux-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux x86-64.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
Contributed by Jiri Smid, SuSE Labs.
This file is part of GDB.
diff --git a/gdb/amd64-linux-tdep.c b/gdb/amd64-linux-tdep.c
index 2c76a1d..e5a2ab9 100644
--- a/gdb/amd64-linux-tdep.c
+++ b/gdb/amd64-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux x86-64.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
Contributed by Jiri Smid, SuSE Labs.
This file is part of GDB.
@@ -33,7 +33,9 @@
#include "amd64-linux-tdep.h"
#include "i386-linux-tdep.h"
#include "linux-tdep.h"
+#include "svr4-tls-tdep.h"
#include "gdbsupport/x86-xstate.h"
+#include "inferior.h"
#include "amd64-tdep.h"
#include "solib-svr4.h"
@@ -412,7 +414,7 @@ amd64_canonicalize_syscall (enum amd64_syscall syscall_number)
case amd64_sys_mmap:
case amd64_x32_sys_mmap:
- return gdb_sys_mmap2;
+ return gdb_sys_old_mmap;
case amd64_sys_mprotect:
case amd64_x32_sys_mprotect:
@@ -556,6 +558,10 @@ amd64_canonicalize_syscall (enum amd64_syscall syscall_number)
case amd64_x32_sys_accept:
return gdb_sys_accept;
+ case amd64_sys_accept4:
+ case amd64_x32_sys_accept4:
+ return gdb_sys_accept4;
+
case amd64_sys_sendto:
case amd64_x32_sys_sendto:
return gdb_sys_sendto;
@@ -1828,6 +1834,39 @@ amd64_linux_remove_non_address_bits_watchpoint (gdbarch *gdbarch,
return (addr & amd64_linux_lam_untag_mask ());
}
+/* Fetch and return the TLS DTV (dynamic thread vector) address for PTID.
+ Throw a suitable TLS error if something goes wrong. */
+
+static CORE_ADDR
+amd64_linux_get_tls_dtv_addr (struct gdbarch *gdbarch, ptid_t ptid,
+ enum svr4_tls_libc libc)
+{
+ /* On x86-64, the thread pointer is found in the fsbase register. */
+ regcache *regcache
+ = get_thread_arch_regcache (current_inferior (), ptid, gdbarch);
+ target_fetch_registers (regcache, AMD64_FSBASE_REGNUM);
+ ULONGEST fsbase;
+ if (regcache->cooked_read (AMD64_FSBASE_REGNUM, &fsbase) != REG_VALID)
+ throw_error (TLS_GENERIC_ERROR, _("Unable to fetch thread pointer"));
+
+ /* The thread pointer (fsbase) points at the TCB (thread control
+ block). The first two members of this struct are both pointers,
+ where the first will be a pointer to the TCB (i.e. it points at
+ itself) and the second will be a pointer to the DTV (dynamic
+ thread vector). There are many other fields too, but the one
+ we care about here is the DTV pointer. Compute the address
+ of the DTV pointer, fetch it, and convert it to an address. */
+ CORE_ADDR dtv_ptr_addr = fsbase + gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT;
+ gdb::byte_vector buf (gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT);
+ if (target_read_memory (dtv_ptr_addr, buf.data (), buf.size ()) != 0)
+ throw_error (TLS_GENERIC_ERROR, _("Unable to fetch DTV address"));
+
+ const struct builtin_type *builtin = builtin_type (gdbarch);
+ CORE_ADDR dtv_addr = gdbarch_pointer_to_address
+ (gdbarch, builtin->builtin_data_ptr, buf.data ());
+ return dtv_addr;
+}
+
static void
amd64_linux_init_abi_common(struct gdbarch_info info, struct gdbarch *gdbarch,
int num_disp_step_buffers)
@@ -1858,6 +1897,9 @@ amd64_linux_init_abi_common(struct gdbarch_info info, struct gdbarch *gdbarch,
/* Enable TLS support. */
set_gdbarch_fetch_tls_load_module_address (gdbarch,
svr4_fetch_objfile_link_map);
+ set_gdbarch_get_thread_local_address (gdbarch,
+ svr4_tls_get_thread_local_address);
+ svr4_tls_register_tls_methods (info, gdbarch, amd64_linux_get_tls_dtv_addr);
/* GNU/Linux uses SVR4-style shared libraries. */
set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
diff --git a/gdb/amd64-linux-tdep.h b/gdb/amd64-linux-tdep.h
index 935e9b6..20f4180 100644
--- a/gdb/amd64-linux-tdep.h
+++ b/gdb/amd64-linux-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux AMD64.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -302,6 +302,7 @@ enum amd64_syscall {
amd64_sys_sync_file_range = 277,
amd64_sys_vmsplice = 278,
amd64_sys_move_pages = 279,
+ amd64_sys_accept4 = 288,
amd64_sys_pipe2 = 293,
amd64_sys_getrandom = 318
};
@@ -553,6 +554,7 @@ enum amd64_x32_syscall {
amd64_x32_sys_splice = (amd64_x32_syscall_bit + 275),
amd64_x32_sys_tee = (amd64_x32_syscall_bit + 276),
amd64_x32_sys_sync_file_range = (amd64_x32_syscall_bit + 277),
+ amd64_x32_sys_accept4 = (amd64_x32_syscall_bit + 288),
amd64_x32_sys_rt_sigaction = (amd64_x32_syscall_bit + 512),
amd64_x32_sys_rt_sigreturn = (amd64_x32_syscall_bit + 513),
amd64_x32_sys_ioctl = (amd64_x32_syscall_bit + 514),
diff --git a/gdb/amd64-nat.c b/gdb/amd64-nat.c
index 5c5c368..b0b7660 100644
--- a/gdb/amd64-nat.c
+++ b/gdb/amd64-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for AMD64.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/amd64-nat.h b/gdb/amd64-nat.h
index 56ad36c..81ce9b3 100644
--- a/gdb/amd64-nat.h
+++ b/gdb/amd64-nat.h
@@ -1,6 +1,6 @@
/* Native-dependent code for AMD64.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/amd64-netbsd-nat.c b/gdb/amd64-netbsd-nat.c
index 8bd3e12..92ad4b2 100644
--- a/gdb/amd64-netbsd-nat.c
+++ b/gdb/amd64-netbsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for NetBSD/amd64.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/amd64-netbsd-tdep.c b/gdb/amd64-netbsd-tdep.c
index 26404205..f4464b7 100644
--- a/gdb/amd64-netbsd-tdep.c
+++ b/gdb/amd64-netbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for NetBSD/amd64.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/amd64-obsd-nat.c b/gdb/amd64-obsd-nat.c
index 717f6bd..93d38df 100644
--- a/gdb/amd64-obsd-nat.c
+++ b/gdb/amd64-obsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for OpenBSD/amd64.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/amd64-obsd-tdep.c b/gdb/amd64-obsd-tdep.c
index d1ebb06..5acc380 100644
--- a/gdb/amd64-obsd-tdep.c
+++ b/gdb/amd64-obsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for OpenBSD/amd64.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/amd64-ravenscar-thread.c b/gdb/amd64-ravenscar-thread.c
index a0de0d7..8b4ce1e 100644
--- a/gdb/amd64-ravenscar-thread.c
+++ b/gdb/amd64-ravenscar-thread.c
@@ -1,6 +1,6 @@
/* Ravenscar x86-64 target support.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/amd64-ravenscar-thread.h b/gdb/amd64-ravenscar-thread.h
index 41e3832..94d375a 100644
--- a/gdb/amd64-ravenscar-thread.h
+++ b/gdb/amd64-ravenscar-thread.h
@@ -1,6 +1,6 @@
/* Ravenscar x86-64 target support.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/amd64-sol2-tdep.c b/gdb/amd64-sol2-tdep.c
index 070d7ed..84d5f87 100644
--- a/gdb/amd64-sol2-tdep.c
+++ b/gdb/amd64-sol2-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for AMD64 Solaris.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
Contributed by Joseph Myers, CodeSourcery, LLC.
diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c
index 3c75f2f..e495778 100644
--- a/gdb/amd64-tdep.c
+++ b/gdb/amd64-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for AMD64.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
Contributed by Jiri Smid, SuSE Labs.
@@ -50,6 +50,7 @@
#include "osabi.h"
#include "x86-tdep.h"
#include "amd64-ravenscar-thread.h"
+#include "gdbsupport/selftest.h"
/* Note that the AMD64 architecture was previously known as x86-64.
The latter is (forever) engraved into the canonical system name as
@@ -1157,6 +1158,14 @@ rex_prefix_p (gdb_byte pfx)
return REX_PREFIX_P (pfx);
}
+/* True if PFX is the start of the 2-byte REX2 prefix. */
+
+static bool
+rex2_prefix_p (gdb_byte pfx)
+{
+ return pfx == REX2_OPCODE;
+}
+
/* True if PFX is the start of the 2-byte VEX prefix. */
static bool
@@ -1173,6 +1182,14 @@ vex3_prefix_p (gdb_byte pfx)
return pfx == 0xc4;
}
+/* Return true if PFX is the start of the 4-byte EVEX prefix. */
+
+static bool
+evex_prefix_p (gdb_byte pfx)
+{
+ return pfx == 0x62;
+}
+
/* Skip the legacy instruction prefixes in INSN.
We assume INSN is properly sentineled so we don't have to worry
about falling off the end of the buffer. */
@@ -1206,31 +1223,38 @@ amd64_skip_prefixes (gdb_byte *insn)
return insn;
}
-/* Return an integer register (other than RSP) that is unused as an input
- operand in INSN.
- In order to not require adding a rex prefix if the insn doesn't already
- have one, the result is restricted to RAX ... RDI, sans RSP.
- The register numbering of the result follows architecture ordering,
- e.g. RDI = 7. */
+/* Return true if the MODRM byte of an insn indicates that the insn is
+ rip-relative. */
-static int
-amd64_get_unused_input_int_reg (const struct amd64_insn *details)
+static bool
+rip_relative_p (gdb_byte modrm)
{
- /* 1 bit for each reg */
- int used_regs_mask = 0;
+ gdb_byte mod = MODRM_MOD_FIELD (modrm);
+ gdb_byte rm = MODRM_RM_FIELD (modrm);
+
+ return mod == 0 && rm == 0x05;
+}
- /* There can be at most 3 int regs used as inputs in an insn, and we have
- 7 to choose from (RAX ... RDI, sans RSP).
- This allows us to take a conservative approach and keep things simple.
- E.g. By avoiding RAX, we don't have to specifically watch for opcodes
- that implicitly specify RAX. */
+/* Return a register mask for the integer registers that are used as an input
+ operand in INSN. If !ASSUMPTIONS, only return the registers we actually
+ found, for the benefit of self tests. */
- /* Avoid RAX. */
- used_regs_mask |= 1 << EAX_REG_NUM;
- /* Similarly avoid RDX, implicit operand in divides. */
- used_regs_mask |= 1 << EDX_REG_NUM;
- /* Avoid RSP. */
- used_regs_mask |= 1 << ESP_REG_NUM;
+static uint32_t
+amd64_get_used_input_int_regs (const struct amd64_insn *details,
+ bool assumptions = true)
+{
+ /* 1 bit for each reg */
+ uint32_t used_regs_mask = 0;
+
+ if (assumptions)
+ {
+ /* Assume RAX is used. If not, we'd have to detect opcodes that implicitly
+ use RAX. */
+ used_regs_mask |= 1 << EAX_REG_NUM;
+ /* Assume RDX is used. If not, we'd have to detect opcodes that implicitly
+ use RDX, like divides. */
+ used_regs_mask |= 1 << EDX_REG_NUM;
+ }
/* If the opcode is one byte long and there's no ModRM byte,
assume the opcode specifies a register. */
@@ -1256,28 +1280,42 @@ amd64_get_unused_input_int_reg (const struct amd64_insn *details)
used_regs_mask |= 1 << base;
used_regs_mask |= 1 << idx;
}
- else
+ else if (!rip_relative_p (modrm))
{
used_regs_mask |= 1 << rm;
}
}
gdb_assert (used_regs_mask < 256);
- gdb_assert (used_regs_mask != 255);
+ return used_regs_mask;
+}
+
+/* Return an integer register in ALLOWED_REGS_MASK that is unused as an input
+ operand in INSN. The register numbering of the result follows architecture
+ ordering, e.g. RDI = 7. Return -1 if no register can be found. */
+
+static int
+amd64_get_unused_input_int_reg (const struct amd64_insn *details,
+ uint32_t allowed_regs_mask)
+{
+ /* 1 bit for each reg */
+ uint32_t used_regs_mask = amd64_get_used_input_int_regs (details);
/* Finally, find a free reg. */
{
int i;
- for (i = 0; i < 8; ++i)
+ for (i = 0; i < 32; ++i)
{
+ if (! (allowed_regs_mask & (1 << i)))
+ continue;
+
if (! (used_regs_mask & (1 << i)))
return i;
}
-
- /* We shouldn't get here. */
- internal_error (_("unable to find free reg"));
}
+
+ return -1;
}
/* Extract the details of INSN that we need. */
@@ -1304,10 +1342,14 @@ amd64_get_insn_details (gdb_byte *insn, struct amd64_insn *details)
details->enc_prefix_offset = insn - start;
++insn;
}
+ else if (rex2_prefix_p (*insn))
+ {
+ details->enc_prefix_offset = insn - start;
+ insn += 2;
+ }
else if (vex2_prefix_p (*insn))
{
- /* Don't record the offset in this case because this prefix has
- no REX.B equivalent. */
+ details->enc_prefix_offset = insn - start;
insn += 2;
}
else if (vex3_prefix_p (*insn))
@@ -1315,10 +1357,89 @@ amd64_get_insn_details (gdb_byte *insn, struct amd64_insn *details)
details->enc_prefix_offset = insn - start;
insn += 3;
}
+ else if (evex_prefix_p (*insn))
+ {
+ details->enc_prefix_offset = insn - start;
+ insn += 4;
+ }
+ gdb_byte *prefix = (details->enc_prefix_offset == -1
+ ? nullptr
+ : &start[details->enc_prefix_offset]);
details->opcode_offset = insn - start;
- if (*insn == TWO_BYTE_OPCODE_ESCAPE)
+ if (prefix != nullptr && rex2_prefix_p (*prefix))
+ {
+ bool m = (prefix[1] & (REX2_M << 4)) != 0;
+ if (!m)
+ {
+ need_modrm = onebyte_has_modrm[*insn];
+ details->opcode_len = 1;
+ }
+ else
+ {
+ need_modrm = twobyte_has_modrm[*insn];
+ details->opcode_len = 2;
+ }
+ }
+ else if (prefix != nullptr && vex2_prefix_p (*prefix))
+ {
+ need_modrm = twobyte_has_modrm[*insn];
+ details->opcode_len = 2;
+ }
+ else if (prefix != nullptr && vex3_prefix_p (*prefix))
+ {
+ need_modrm = twobyte_has_modrm[*insn];
+
+ gdb_byte m = prefix[1] & 0x1f;
+ if (m == 0)
+ {
+ /* Todo: Xeon Phi-specific JKZD/JKNZD. */
+ return;
+ }
+ else if (m == 1)
+ {
+ /* Escape 0x0f. */
+ details->opcode_len = 2;
+ }
+ else if (m == 2 || m == 3)
+ {
+ /* Escape 0x0f 0x38 or 0x0f 0x3a. */
+ details->opcode_len = 3;
+ }
+ else if (m == 7)
+ {
+ /* Todo: URDMSR/UWRMSR instructions. */
+ return;
+ }
+ else
+ {
+ /* Unknown opcode map. */
+ return;
+ }
+ }
+ else if (prefix != nullptr && evex_prefix_p (*prefix))
+ {
+ need_modrm = twobyte_has_modrm[*insn];
+
+ gdb_byte m = prefix[1] & 0x7;
+ if (m == 1)
+ {
+ /* Escape 0x0f. */
+ details->opcode_len = 2;
+ }
+ else if (m == 2 || m == 3)
+ {
+ /* Escape 0x0f 0x38 or 0x0f 0x3a. */
+ details->opcode_len = 3;
+ }
+ else
+ {
+ /* Unknown opcode map. */
+ return;
+ }
+ }
+ else if (*insn == TWO_BYTE_OPCODE_ESCAPE)
{
/* Two or three-byte opcode. */
++insn;
@@ -1355,21 +1476,71 @@ amd64_get_insn_details (gdb_byte *insn, struct amd64_insn *details)
}
}
+/* Convert a %rip-relative INSN to use BASEREG+disp addressing, leaving
+ displacement unchanged. */
+
+static void
+fixup_riprel (const struct amd64_insn &details, gdb_byte *insn,
+ int basereg)
+{
+ /* Position of the not-B bit in the 3-byte VEX prefix (in byte 1). */
+ static constexpr gdb_byte VEX3_NOT_B = 0x20;
+
+ /* Position of the B3 and B4 bits in the REX2 prefix (in byte 1). */
+ static constexpr gdb_byte REX2_B = 0x11;
+
+ /* Position of the not-B3 bit in the EVEX prefix (in byte 1). */
+ static constexpr gdb_byte EVEX_NOT_B = VEX3_NOT_B;
+
+ /* Position of the B4 bit in the EVEX prefix (in byte 1). */
+ static constexpr gdb_byte EVEX_B = 0x08;
+
+ /* REX.B should be unset (VEX.!B set) as we were using rip-relative
+ addressing, but ensure it's unset (set for VEX) anyway, tmp_regno
+ is not r8-r15. */
+ if (details.enc_prefix_offset != -1)
+ {
+ gdb_byte *pfx = &insn[details.enc_prefix_offset];
+ if (rex_prefix_p (pfx[0]))
+ pfx[0] &= ~REX_B;
+ else if (rex2_prefix_p (pfx[0]))
+ pfx[1] &= ~REX2_B;
+ else if (vex2_prefix_p (pfx[0]))
+ {
+ /* VEX.!B is set implicitly. */
+ }
+ else if (vex3_prefix_p (pfx[0]))
+ pfx[1] |= VEX3_NOT_B;
+ else if (evex_prefix_p (pfx[0]))
+ {
+ pfx[1] |= EVEX_NOT_B;
+ pfx[1] &= ~EVEX_B;
+ }
+ else
+ gdb_assert_not_reached ("unhandled prefix");
+ }
+
+ int modrm_offset = details.modrm_offset;
+ /* Convert the ModRM field to be base+disp. */
+ insn[modrm_offset] &= ~0xc7;
+ insn[modrm_offset] |= 0x80 + basereg;
+}
+
/* Update %rip-relative addressing in INSN.
%rip-relative addressing only uses a 32-bit displacement.
32 bits is not enough to be guaranteed to cover the distance between where
the real instruction is and where its copy is.
Convert the insn to use base+disp addressing.
- We set base = pc + insn_length so we can leave disp unchanged. */
+ We set base = pc + insn_length so we can leave disp unchanged.
+ Return true if successful, false otherwise. */
-static void
+static bool
fixup_riprel (struct gdbarch *gdbarch,
amd64_displaced_step_copy_insn_closure *dsc,
CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
{
const struct amd64_insn *insn_details = &dsc->insn_details;
- int modrm_offset = insn_details->modrm_offset;
CORE_ADDR rip_base;
int insn_length;
int arch_tmp_regno, tmp_regno;
@@ -1380,47 +1551,41 @@ fixup_riprel (struct gdbarch *gdbarch,
dsc->insn_buf.size (), from);
rip_base = from + insn_length;
- /* We need a register to hold the address.
- Pick one not used in the insn.
- NOTE: arch_tmp_regno uses architecture ordering, e.g. RDI = 7. */
- arch_tmp_regno = amd64_get_unused_input_int_reg (insn_details);
+ /* We need a register to hold the address. Pick one not used in the insn.
+ In order to not require adding a rex prefix if the insn doesn't already
+ have one, the range is restricted to RAX ... RDI, without RSP.
+ We avoid RSP, because when patched into in the modrm byte, it doesn't
+ indicate the use of the register, but instead the use of a SIB byte. */
+ uint32_t allowed_regs_mask = 0xff & ~(1 << ESP_REG_NUM);
+ arch_tmp_regno
+ = amd64_get_unused_input_int_reg (insn_details, allowed_regs_mask);
+ if (arch_tmp_regno == -1)
+ return false;
+
+ fixup_riprel (dsc->insn_details, dsc->insn_buf.data (), arch_tmp_regno);
+
+ /* Convert arch_tmp_regno, which uses architecture ordering (e.g. RDI = 7),
+ to GDB regnum. */
tmp_regno = amd64_arch_reg_to_regnum (arch_tmp_regno);
- /* Position of the not-B bit in the 3-byte VEX prefix (in byte 1). */
- static constexpr gdb_byte VEX3_NOT_B = 0x20;
-
- /* REX.B should be unset (VEX.!B set) as we were using rip-relative
- addressing, but ensure it's unset (set for VEX) anyway, tmp_regno
- is not r8-r15. */
- if (insn_details->enc_prefix_offset != -1)
- {
- gdb_byte *pfx = &dsc->insn_buf[insn_details->enc_prefix_offset];
- if (rex_prefix_p (pfx[0]))
- pfx[0] &= ~REX_B;
- else if (vex3_prefix_p (pfx[0]))
- pfx[1] |= VEX3_NOT_B;
- else
- gdb_assert_not_reached ("unhandled prefix");
- }
-
regcache_cooked_read_unsigned (regs, tmp_regno, &orig_value);
dsc->tmp_regno = tmp_regno;
dsc->tmp_save = orig_value;
dsc->tmp_used = 1;
- /* Convert the ModRM field to be base+disp. */
- dsc->insn_buf[modrm_offset] &= ~0xc7;
- dsc->insn_buf[modrm_offset] |= 0x80 + arch_tmp_regno;
-
regcache_cooked_write_unsigned (regs, tmp_regno, rip_base);
displaced_debug_printf ("%%rip-relative addressing used.");
displaced_debug_printf ("using temp reg %d, old value %s, new value %s",
dsc->tmp_regno, paddress (gdbarch, dsc->tmp_save),
paddress (gdbarch, rip_base));
+ return true;
}
-static void
+/* Fixup the insn in DSC->insn_buf, which was copied from address FROM to TO.
+ Return true if successful, false otherwise. */
+
+static bool
fixup_displaced_copy (struct gdbarch *gdbarch,
amd64_displaced_step_copy_insn_closure *dsc,
CORE_ADDR from, CORE_ADDR to, struct regcache *regs)
@@ -1431,13 +1596,15 @@ fixup_displaced_copy (struct gdbarch *gdbarch,
{
gdb_byte modrm = details->raw_insn[details->modrm_offset];
- if ((modrm & 0xc7) == 0x05)
+ if (rip_relative_p (modrm))
{
/* The insn uses rip-relative addressing.
Deal with it. */
- fixup_riprel (gdbarch, dsc, from, to, regs);
+ return fixup_riprel (gdbarch, dsc, from, to, regs);
}
}
+
+ return true;
}
displaced_step_copy_insn_closure_up
@@ -1462,6 +1629,8 @@ amd64_displaced_step_copy_insn (struct gdbarch *gdbarch,
memset (buf + len, 0, fixup_sentinel_space);
amd64_get_insn_details (buf, details);
+ if (details->opcode_len == -1)
+ return nullptr;
/* GDB may get control back after the insn after the syscall.
Presumably this is a kernel bug.
@@ -1475,7 +1644,8 @@ amd64_displaced_step_copy_insn (struct gdbarch *gdbarch,
/* Modify the insn to cope with the address where it will be executed from.
In particular, handle any rip-relative addressing. */
- fixup_displaced_copy (gdbarch, dsc.get (), from, to, regs);
+ if (!fixup_displaced_copy (gdbarch, dsc.get (), from, to, regs))
+ return nullptr;
write_memory (to, buf, len);
@@ -1762,7 +1932,7 @@ rip_relative_offset (struct amd64_insn *insn)
{
gdb_byte modrm = insn->raw_insn[insn->modrm_offset];
- if ((modrm & 0xc7) == 0x05)
+ if (rip_relative_p (modrm))
{
/* The displacement is found right after the ModRM byte. */
return insn->modrm_offset + 1;
@@ -2438,7 +2608,7 @@ amd64_skip_xmm_prologue (CORE_ADDR pc, CORE_ADDR start_pc)
if (next_sal.line != start_pc_sal.line)
return pc;
- /* START_PC can be from overlayed memory, ignored here. */
+ /* START_PC can be from overlay memory, ignored here. */
if (target_read_code (next_sal.pc - 4, buf, sizeof (buf)) != 0)
return pc;
@@ -3374,6 +3544,202 @@ amd64_target_description (uint64_t xcr0, bool segments)
return *tdesc;
}
+#if GDB_SELF_TEST
+
+namespace selftests {
+
+/* Recode a vex2 instruction into a vex3 instruction. */
+
+static void
+vex2_to_vex3 (gdb::byte_vector &vex2, gdb::byte_vector &vex3)
+{
+ gdb_assert (vex2.size () >= 2);
+ gdb_assert (vex2[0] == 0xc5);
+
+ unsigned char r = vex2[1] >> 7;
+ unsigned char b = 0x1;
+ unsigned char x = 0x1;
+ unsigned char m = 0x1;
+ unsigned char w = 0x0;
+
+ vex3.resize (3);
+ vex3[0] = 0xc4;
+ vex3[1] = (r << 7) | (x << 6) | (b << 5) | m;
+ vex3[2] = (vex2[1] & ~0x80) | (w << 7);
+
+ std::copy (vex2.begin () + 2, vex2.end (),
+ std::back_inserter (vex3));
+}
+
+/* Test vex2 to vex3. */
+
+static void
+test_vex2_to_vex3 (void)
+{
+ /* INSN: vzeroall, vex2 prefix. */
+ gdb::byte_vector vex2 = { 0xc5, 0xfc, 0x77 };
+
+ gdb::byte_vector vex3;
+ vex2_to_vex3 (vex2, vex3);
+
+ /* INSN: vzeroall, vex3 prefix. */
+ gdb::byte_vector vex3_ref = { 0xc4, 0xe1, 0x7c, 0x77 };
+ SELF_CHECK (vex3 == vex3_ref);
+}
+
+/* Test amd64_get_insn_details. */
+
+static void
+test_amd64_get_insn_details (void)
+{
+ struct amd64_insn details;
+ gdb::byte_vector insn, tmp;
+
+ /* INSN: add %eax,(%rcx). */
+ insn = { 0x01, 0x01 };
+ amd64_get_insn_details (insn.data (), &details);
+ SELF_CHECK (details.opcode_len == 1);
+ SELF_CHECK (details.enc_prefix_offset == -1);
+ SELF_CHECK (details.opcode_offset == 0);
+ SELF_CHECK (details.modrm_offset == 1);
+ SELF_CHECK (amd64_get_used_input_int_regs (&details, false)
+ == ((1 << EAX_REG_NUM) | (1 << ECX_REG_NUM)));
+ SELF_CHECK (rip_relative_offset (&details) == 0);
+
+ /* INSN: push %rax. This exercises the "opcode specifies register" case in
+ amd64_get_used_input_int_regs. */
+ insn = { 0x50 };
+ amd64_get_insn_details (insn.data (), &details);
+ SELF_CHECK (details.opcode_len == 1);
+ SELF_CHECK (details.enc_prefix_offset == -1);
+ SELF_CHECK (details.opcode_offset == 0);
+ SELF_CHECK (details.modrm_offset == -1);
+ SELF_CHECK (amd64_get_used_input_int_regs (&details, false)
+ == ((1 << EAX_REG_NUM)));
+ SELF_CHECK (rip_relative_offset (&details) == 0);
+
+ /* INSN: lea 0x1e(%rip),%rdi, rex prefix. */
+ insn = { 0x48, 0x8d, 0x3d, 0x1e, 0x00, 0x00, 0x00 };
+ amd64_get_insn_details (insn.data (), &details);
+ SELF_CHECK (details.opcode_len == 1);
+ SELF_CHECK (details.enc_prefix_offset == 0);
+ SELF_CHECK (details.opcode_offset == 1);
+ SELF_CHECK (details.modrm_offset == 2);
+ SELF_CHECK (amd64_get_used_input_int_regs (&details, false)
+ == (1 << EDI_REG_NUM));
+ SELF_CHECK (rip_relative_offset (&details) == 3);
+
+ /* INSN: lea 0x1e(%ecx),%rdi, rex prefix. */
+ gdb::byte_vector updated_insn = { 0x48, 0x8d, 0xb9, 0x1e, 0x00, 0x00, 0x00 };
+ fixup_riprel (details, insn.data (), ECX_REG_NUM);
+ SELF_CHECK (insn == updated_insn);
+
+ gdb::byte_vector vex2, vex3;
+
+ /* INSN: vzeroall, vex2 prefix. */
+ vex2 = { 0xc5, 0xfc, 0x77 };
+ amd64_get_insn_details (vex2.data (), &details);
+ SELF_CHECK (details.opcode_len == 2);
+ SELF_CHECK (details.enc_prefix_offset == 0);
+ SELF_CHECK (details.opcode_offset == 2);
+ SELF_CHECK (details.modrm_offset == -1);
+
+ /* INSN: vzeroall, vex3 prefix. */
+ vex2_to_vex3 (vex2, vex3);
+ amd64_get_insn_details (vex3.data (), &details);
+ SELF_CHECK (details.opcode_len == 2);
+ SELF_CHECK (details.enc_prefix_offset == 0);
+ SELF_CHECK (details.opcode_offset == 3);
+ SELF_CHECK (details.modrm_offset == -1);
+
+ /* INSN: vzeroupper, vex2 prefix. */
+ vex2 = { 0xc5, 0xf8, 0x77 };
+ amd64_get_insn_details (vex2.data (), &details);
+ SELF_CHECK (details.opcode_len == 2);
+ SELF_CHECK (details.enc_prefix_offset == 0);
+ SELF_CHECK (details.opcode_offset == 2);
+ SELF_CHECK (details.modrm_offset == -1);
+
+ /* INSN: vzeroupper, vex3 prefix. */
+ vex2_to_vex3 (vex2, vex3);
+ amd64_get_insn_details (vex3.data (), &details);
+ SELF_CHECK (details.opcode_len == 2);
+ SELF_CHECK (details.enc_prefix_offset == 0);
+ SELF_CHECK (details.opcode_offset == 3);
+ SELF_CHECK (details.modrm_offset == -1);
+
+ /* INSN: vmovdqu 0x9(%rip),%ymm3, vex2 prefix. */
+ vex2 = { 0xc5, 0xfe, 0x6f, 0x1d, 0x09, 0x00, 0x00, 0x00 };
+ amd64_get_insn_details (vex2.data (), &details);
+ SELF_CHECK (details.opcode_len == 2);
+ SELF_CHECK (details.enc_prefix_offset == 0);
+ SELF_CHECK (details.opcode_offset == 2);
+ SELF_CHECK (details.modrm_offset == 3);
+
+ /* INSN: vmovdqu 0x9(%rcx),%ymm3, vex2 prefix. */
+ gdb::byte_vector updated_vex2
+ = { 0xc5, 0xfe, 0x6f, 0x99, 0x09, 0x00, 0x00, 0x00 };
+ tmp = vex2;
+ fixup_riprel (details, tmp.data (), ECX_REG_NUM);
+ SELF_CHECK (tmp == updated_vex2);
+
+ /* INSN: vmovdqu 0x9(%rip),%ymm3, vex3 prefix. */
+ vex2_to_vex3 (vex2, vex3);
+ amd64_get_insn_details (vex3.data (), &details);
+ SELF_CHECK (details.opcode_len == 2);
+ SELF_CHECK (details.enc_prefix_offset == 0);
+ SELF_CHECK (details.opcode_offset == 3);
+ SELF_CHECK (details.modrm_offset == 4);
+
+ /* INSN: vmovdqu 0x9(%rcx),%ymm3, vex3 prefix. */
+ gdb::byte_vector updated_vex3;
+ vex2_to_vex3 (updated_vex2, updated_vex3);
+ tmp = vex3;
+ fixup_riprel (details, tmp.data (), ECX_REG_NUM);
+ SELF_CHECK (tmp == updated_vex3);
+
+ /* INSN: lea 0x0(%eip),%r31d, rex2 prefix. */
+ insn = { 0x67, 0xd5, 0x44, 0x8d, 0x3d, 0x00, 0x00, 0x00, 0x00 };
+ amd64_get_insn_details (insn.data (), &details);
+ SELF_CHECK (details.opcode_len == 1);
+ SELF_CHECK (details.enc_prefix_offset == 1);
+ SELF_CHECK (details.opcode_offset == 3);
+ SELF_CHECK (details.modrm_offset == 4);
+ /* This is incorrect, r31 is used instead of rdi, but currently that doesn't
+ matter. */
+ SELF_CHECK (amd64_get_used_input_int_regs (&details, false)
+ == (1 << EDI_REG_NUM));
+
+ /* INSN: lea 0x0(%ecx),%r31d, rex2 prefix. */
+ updated_insn = { 0x67, 0xd5, 0x44, 0x8d, 0xb9, 0x00, 0x00, 0x00, 0x00 };
+ fixup_riprel (details, insn.data (), ECX_REG_NUM);
+ SELF_CHECK (insn == updated_insn);
+
+ /* INSN: vmovaps -0x400(%rip),%zmm0, evex prefix. */
+ insn = { 0x62, 0xf1, 0x7c, 0x48, 0x28, 0x05, 0x00, 0xfc, 0xff, 0xff };
+ amd64_get_insn_details (insn.data (), &details);
+ SELF_CHECK (details.opcode_len == 2);
+ SELF_CHECK (details.enc_prefix_offset == 0);
+ SELF_CHECK (details.opcode_offset == 4);
+ SELF_CHECK (details.modrm_offset == 5);
+
+ /* INSN: vmovaps -0x400(%rcx),%zmm0, evex prefix. */
+ updated_insn
+ = { 0x62, 0xf1, 0x7c, 0x48, 0x28, 0x81, 0x00, 0xfc, 0xff, 0xff };
+ fixup_riprel (details, insn.data (), ECX_REG_NUM);
+ SELF_CHECK (insn == updated_insn);
+}
+
+static void
+amd64_insn_decode (void)
+{
+ test_vex2_to_vex3 ();
+ test_amd64_get_insn_details ();
+}
+
+} // namespace selftests
+#endif /* GDB_SELF_TEST */
+
void _initialize_amd64_tdep ();
void
_initialize_amd64_tdep ()
@@ -3382,6 +3748,10 @@ _initialize_amd64_tdep ()
amd64_none_init_abi);
gdbarch_register_osabi (bfd_arch_i386, bfd_mach_x64_32, GDB_OSABI_NONE,
amd64_x32_none_init_abi);
+#if GDB_SELF_TEST
+ selftests::register_test ("amd64-insn-decode",
+ selftests::amd64_insn_decode);
+#endif
}
diff --git a/gdb/amd64-tdep.h b/gdb/amd64-tdep.h
index 7439b6e..cbf8a97 100644
--- a/gdb/amd64-tdep.h
+++ b/gdb/amd64-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent definitions for AMD64.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
Contributed by Jiri Smid, SuSE Labs.
This file is part of GDB.
diff --git a/gdb/amd64-windows-nat.c b/gdb/amd64-windows-nat.c
index a282762..223e078 100644
--- a/gdb/amd64-windows-nat.c
+++ b/gdb/amd64-windows-nat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/amd64-windows-tdep.c b/gdb/amd64-windows-tdep.c
index b9de332..c4719dc 100644
--- a/gdb/amd64-windows-tdep.c
+++ b/gdb/amd64-windows-tdep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/amdgpu-tdep.c b/gdb/amdgpu-tdep.c
index 3272d24..dc1b32f 100644
--- a/gdb/amdgpu-tdep.c
+++ b/gdb/amdgpu-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the AMDGPU architectures.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/amdgpu-tdep.h b/gdb/amdgpu-tdep.h
index 16c7b83..b468c6c 100644
--- a/gdb/amdgpu-tdep.h
+++ b/gdb/amdgpu-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for the AMDGPU architectures.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/annotate.c b/gdb/annotate.c
index c1d4229..ea0bfa9 100644
--- a/gdb/annotate.c
+++ b/gdb/annotate.c
@@ -1,5 +1,5 @@
/* Annotation routines for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/annotate.h b/gdb/annotate.h
index 04c1ad8..0f394f5 100644
--- a/gdb/annotate.h
+++ b/gdb/annotate.h
@@ -1,5 +1,5 @@
/* Annotation routines for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arc-linux-nat.c b/gdb/arc-linux-nat.c
index 66f0000..091a966 100644
--- a/gdb/arc-linux-nat.c
+++ b/gdb/arc-linux-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux ARC.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arc-linux-tdep.c b/gdb/arc-linux-tdep.c
index 69980f9..adf6691 100644
--- a/gdb/arc-linux-tdep.c
+++ b/gdb/arc-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target dependent code for GNU/Linux ARC.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arc-linux-tdep.h b/gdb/arc-linux-tdep.h
index 9fe4116..8d142ef 100644
--- a/gdb/arc-linux-tdep.h
+++ b/gdb/arc-linux-tdep.h
@@ -1,6 +1,6 @@
/* Target dependent code for GNU/Linux ARC.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arc-newlib-tdep.c b/gdb/arc-newlib-tdep.c
index dbc0961..fd80bfa 100644
--- a/gdb/arc-newlib-tdep.c
+++ b/gdb/arc-newlib-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for Newlib ARC.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
Contributed by Synopsys Inc.
This file is part of GDB.
diff --git a/gdb/arc-tdep.c b/gdb/arc-tdep.c
index d9fafc4..8db6e7b 100644
--- a/gdb/arc-tdep.c
+++ b/gdb/arc-tdep.c
@@ -1,6 +1,6 @@
/* Target dependent code for ARC architecture, for GDB.
- Copyright 2005-2024 Free Software Foundation, Inc.
+ Copyright 2005-2025 Free Software Foundation, Inc.
Contributed by Synopsys Inc.
This file is part of GDB.
diff --git a/gdb/arc-tdep.h b/gdb/arc-tdep.h
index 86a483d..0343108 100644
--- a/gdb/arc-tdep.h
+++ b/gdb/arc-tdep.h
@@ -1,6 +1,6 @@
/* Target dependent code for ARC architecture, for GDB.
- Copyright 2005-2024 Free Software Foundation, Inc.
+ Copyright 2005-2025 Free Software Foundation, Inc.
Contributed by Synopsys Inc.
This file is part of GDB.
diff --git a/gdb/arch-utils.c b/gdb/arch-utils.c
index 3cc6d99..be0494f 100644
--- a/gdb/arch-utils.c
+++ b/gdb/arch-utils.c
@@ -1,6 +1,6 @@
/* Dynamic architecture support for GDB, the GNU debugger.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch-utils.h b/gdb/arch-utils.h
index d27cc1d..1509cb7 100644
--- a/gdb/arch-utils.h
+++ b/gdb/arch-utils.h
@@ -1,6 +1,6 @@
/* Dynamic architecture support for GDB, the GNU debugger.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/aarch32.c b/gdb/arch/aarch32.c
index ead368f..9ae69fd 100644
--- a/gdb/arch/aarch32.c
+++ b/gdb/arch/aarch32.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/aarch32.h b/gdb/arch/aarch32.h
index f3e70af..7dd43f8 100644
--- a/gdb/arch/aarch32.h
+++ b/gdb/arch/aarch32.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/aarch64-insn.c b/gdb/arch/aarch64-insn.c
index 3caef45..4be15ab 100644
--- a/gdb/arch/aarch64-insn.c
+++ b/gdb/arch/aarch64-insn.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GDB.
diff --git a/gdb/arch/aarch64-insn.h b/gdb/arch/aarch64-insn.h
index bd3a85f..f2b9d9c 100644
--- a/gdb/arch/aarch64-insn.h
+++ b/gdb/arch/aarch64-insn.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GDB.
diff --git a/gdb/arch/aarch64-mte-linux.c b/gdb/arch/aarch64-mte-linux.c
index 49426d7..9f433b0 100644
--- a/gdb/arch/aarch64-mte-linux.c
+++ b/gdb/arch/aarch64-mte-linux.c
@@ -1,6 +1,6 @@
/* Common Linux target-dependent functionality for AArch64 MTE
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/aarch64-mte-linux.h b/gdb/arch/aarch64-mte-linux.h
index f933729..a4f55c5 100644
--- a/gdb/arch/aarch64-mte-linux.h
+++ b/gdb/arch/aarch64-mte-linux.h
@@ -1,6 +1,6 @@
/* Common Linux target-dependent definitions for AArch64 MTE
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/aarch64-mte.c b/gdb/arch/aarch64-mte.c
index 908e12c..3fd0b61 100644
--- a/gdb/arch/aarch64-mte.c
+++ b/gdb/arch/aarch64-mte.c
@@ -1,6 +1,6 @@
/* Common AArch64 functionality for MTE
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/aarch64-mte.h b/gdb/arch/aarch64-mte.h
index 0b4f4a3..ec495f0 100644
--- a/gdb/arch/aarch64-mte.h
+++ b/gdb/arch/aarch64-mte.h
@@ -1,6 +1,6 @@
/* Common AArch64 definitions for MTE
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/aarch64-scalable-linux.c b/gdb/arch/aarch64-scalable-linux.c
index 485d77e..110acf0 100644
--- a/gdb/arch/aarch64-scalable-linux.c
+++ b/gdb/arch/aarch64-scalable-linux.c
@@ -1,7 +1,7 @@
/* Common Linux arch-specific functionality for AArch64 scalable
extensions: SVE and SME.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/aarch64-scalable-linux.h b/gdb/arch/aarch64-scalable-linux.h
index 886f4a2..a4bfcd8 100644
--- a/gdb/arch/aarch64-scalable-linux.h
+++ b/gdb/arch/aarch64-scalable-linux.h
@@ -1,7 +1,7 @@
/* Common AArch64 Linux arch-specific definitions for the scalable
extensions: SVE and SME.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/aarch64.c b/gdb/arch/aarch64.c
index 5526aa1..3e1ca05 100644
--- a/gdb/arch/aarch64.c
+++ b/gdb/arch/aarch64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/aarch64.h b/gdb/arch/aarch64.h
index f45a0e2..ee18b74 100644
--- a/gdb/arch/aarch64.h
+++ b/gdb/arch/aarch64.h
@@ -1,6 +1,6 @@
/* Common target-dependent functionality for AArch64.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/amd64-linux-tdesc.c b/gdb/arch/amd64-linux-tdesc.c
index e9c4a99..91de758 100644
--- a/gdb/arch/amd64-linux-tdesc.c
+++ b/gdb/arch/amd64-linux-tdesc.c
@@ -1,6 +1,6 @@
/* Target description related code for GNU/Linux x86-64.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/amd64-linux-tdesc.h b/gdb/arch/amd64-linux-tdesc.h
index f6a4248..8806a13 100644
--- a/gdb/arch/amd64-linux-tdesc.h
+++ b/gdb/arch/amd64-linux-tdesc.h
@@ -1,6 +1,6 @@
/* Target description related code for GNU/Linux x86-64.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/amd64.c b/gdb/arch/amd64.c
index 5fc9947..252650b 100644
--- a/gdb/arch/amd64.c
+++ b/gdb/arch/amd64.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/amd64.h b/gdb/arch/amd64.h
index 1c7a2bb..695660c 100644
--- a/gdb/arch/amd64.h
+++ b/gdb/arch/amd64.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/arc.c b/gdb/arch/arc.c
index e807b60..efe7111 100644
--- a/gdb/arch/arc.c
+++ b/gdb/arch/arc.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/arc.h b/gdb/arch/arc.h
index 887431e..f0dbbb8 100644
--- a/gdb/arch/arc.h
+++ b/gdb/arch/arc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/arm-get-next-pcs.c b/gdb/arch/arm-get-next-pcs.c
index 6c18236..82b077c 100644
--- a/gdb/arch/arm-get-next-pcs.c
+++ b/gdb/arch/arm-get-next-pcs.c
@@ -1,6 +1,6 @@
/* Common code for ARM software single stepping support.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -39,10 +39,92 @@ arm_get_next_pcs_ctor (struct arm_get_next_pcs *self,
self->regcache = regcache;
}
-/* Checks for an atomic sequence of instructions beginning with a LDREX{,B,H,D}
- instruction and ending with a STREX{,B,H,D} instruction. If such a sequence
- is found, attempt to step through it. The end of the sequence address is
- added to the next_pcs list. */
+/* Return true if INSN matches one of the <value,mask> pairs in MATCHES. */
+
+static bool
+insn_matches (uint32_t insn, gdb::array_view<const uint32_t> matches)
+{
+ gdb_assert (matches.size () % 2 == 0);
+
+ for (int i = 0; i < matches.size (); i += 2)
+ {
+ uint32_t value = matches[i];
+ uint32_t mask = matches[i + 1];
+ if ((insn & mask) == value)
+ return true;
+ }
+
+ return false;
+}
+
+/* Return true if INSN is an ldaex arm insn. */
+
+static bool
+ldaex_arm_p (uint32_t insn)
+{
+ /* Copied from arm_opcodes in opcodes/arm-dis.c. */
+ const uint32_t matches_ldaex_arm[] = {
+ 0x01900e9f, 0x0ff00fff, /* ldaex. */
+ 0x01b00e9f, 0x0ff00fff, /* ldaexd. */
+ 0x01d00e9f, 0x0ff00fff, /* ldaexb. */
+ 0x01f00e9f, 0x0ff00fff /* ldaexh. */
+ };
+
+ return insn_matches (insn, matches_ldaex_arm);
+}
+
+/* Return true if INSN is an ldaex thumb32 insn. */
+
+static bool
+ldaex_thumb32_p (uint32_t insn)
+{
+ /* Copied from thumb32_opcodes in opcodes/arm-dis.c. */
+ const uint32_t matches_ldaex_thumb32[] = {
+ 0xe8d00fcf, 0xfff00fff, /* ldaexb. */
+ 0xe8d00fdf, 0xfff00fff, /* ldaexh. */
+ 0xe8d00fef, 0xfff00fff, /* ldaex. */
+ 0xe8d000ff, 0xfff000ff /* ldaexd. */
+ };
+
+ return insn_matches (insn, matches_ldaex_thumb32);
+}
+
+/* Return true if INSN is an stlex arm insn. */
+
+static bool
+stlex_arm_p (uint32_t insn)
+{
+ /* Copied from arm_opcodes in opcodes/arm-dis.c. */
+ const uint32_t matches_stlex_arm[] = {
+ 0x01800e90, 0x0ff00ff0, /* stlex. */
+ 0x01a00e90, 0x0ff00ff0, /* stlexd. */
+ 0x01c00e90, 0x0ff00ff0, /* stlexb. */
+ 0x01e00e90, 0x0ff00ff0, /* stlexh. */
+ };
+
+ return insn_matches (insn, matches_stlex_arm);
+}
+
+/* Return true if INSN is an stlex thumb32 insn. */
+
+static bool
+stlex_thumb32_p (uint32_t insn)
+{
+ /* Copied from thumb32_opcodes in opcodes/arm-dis.c. */
+ const uint32_t matches_stlex_thumb32[] = {
+ 0xe8c00fc0, 0xfff00ff0, /* stlexb. */
+ 0xe8c00fd0, 0xfff00ff0, /* stlexh. */
+ 0xe8c00fe0, 0xfff00ff0, /* stlex. */
+ 0xe8c000f0, 0xfff000f0, /* stlexd. */
+ };
+
+ return insn_matches (insn, matches_stlex_thumb32);
+}
+
+/* Checks for an atomic sequence of instructions beginning with an
+ LD[AR]EX{,B,H,D} instruction and ending with a ST[LR]EX{,B,H,D} instruction.
+ If such a sequence is found, attempt to step through it. The end of the
+ sequence address is added to the next_pcs list. */
static std::vector<CORE_ADDR>
thumb_deal_with_atomic_sequence_raw (struct arm_get_next_pcs *self)
@@ -64,18 +146,22 @@ thumb_deal_with_atomic_sequence_raw (struct arm_get_next_pcs *self)
if (itstate & 0x0f)
return {};
- /* Assume all atomic sequences start with a ldrex{,b,h,d} instruction. */
insn1 = self->ops->read_mem_uint (loc, 2, byte_order_for_code);
-
loc += 2;
+
if (thumb_insn_size (insn1) != 4)
return {};
insn2 = self->ops->read_mem_uint (loc, 2, byte_order_for_code);
-
loc += 2;
+
+ uint32_t insn = (uint32_t)insn2 | ((uint32_t)insn1 << 16);
+
+ /* Assume all atomic sequences start with an ld[ar]ex{,b,h,d}
+ instruction. */
if (!((insn1 & 0xfff0) == 0xe850
- || ((insn1 & 0xfff0) == 0xe8d0 && (insn2 & 0x00c0) == 0x0040)))
+ || ((insn1 & 0xfff0) == 0xe8d0 && (insn2 & 0x00c0) == 0x0040)
+ || ldaex_thumb32_p (insn)))
return {};
/* Assume that no atomic sequence is longer than "atomic_sequence_length"
@@ -110,9 +196,10 @@ thumb_deal_with_atomic_sequence_raw (struct arm_get_next_pcs *self)
else
{
insn2 = self->ops->read_mem_uint (loc, 2, byte_order_for_code);
-
loc += 2;
+ insn = (uint32_t)insn2 | ((uint32_t)insn1 << 16);
+
/* Assume that there is at most one conditional branch in the
atomic sequence. If a conditional branch is found, put a
breakpoint in its destination address. */
@@ -147,9 +234,10 @@ thumb_deal_with_atomic_sequence_raw (struct arm_get_next_pcs *self)
else if (thumb2_instruction_changes_pc (insn1, insn2))
return {};
- /* If we find a strex{,b,h,d}, we're done. */
+ /* If we find a st[lr]ex{,b,h,d}, we're done. */
if ((insn1 & 0xfff0) == 0xe840
- || ((insn1 & 0xfff0) == 0xe8c0 && (insn2 & 0x00c0) == 0x0040))
+ || ((insn1 & 0xfff0) == 0xe8c0 && (insn2 & 0x00c0) == 0x0040)
+ || stlex_thumb32_p (insn))
break;
}
}
@@ -177,10 +265,10 @@ thumb_deal_with_atomic_sequence_raw (struct arm_get_next_pcs *self)
return next_pcs;
}
-/* Checks for an atomic sequence of instructions beginning with a LDREX{,B,H,D}
- instruction and ending with a STREX{,B,H,D} instruction. If such a sequence
- is found, attempt to step through it. The end of the sequence address is
- added to the next_pcs list. */
+/* Checks for an atomic sequence of instructions beginning with an
+ LD[AR]EX{,B,H,D} instruction and ending with a ST[LR]EX{,B,H,D} instruction.
+ If such a sequence is found, attempt to step through it. The end of the
+ sequence address is added to the next_pcs list. */
static std::vector<CORE_ADDR>
arm_deal_with_atomic_sequence_raw (struct arm_get_next_pcs *self)
@@ -195,13 +283,16 @@ arm_deal_with_atomic_sequence_raw (struct arm_get_next_pcs *self)
int last_breakpoint = 0; /* Defaults to 0 (no breakpoints placed). */
const int atomic_sequence_length = 16; /* Instruction sequence length. */
- /* Assume all atomic sequences start with a ldrex{,b,h,d} instruction.
- Note that we do not currently support conditionally executed atomic
- instructions. */
insn = self->ops->read_mem_uint (loc, 4, byte_order_for_code);
-
loc += 4;
- if ((insn & 0xff9000f0) != 0xe1900090)
+
+ /* Currently we do not support conditionally executed atomic instructions. */
+ if (!insn_condition_always_true (insn))
+ return {};
+
+ /* Assume all atomic sequences start with an ld[ar]ex{,b,h,d} instruction. */
+ if (!((insn & 0x0f9000f0) == 0x01900090
+ || ldaex_arm_p (insn)))
return {};
/* Assume that no atomic sequence is longer than "atomic_sequence_length"
@@ -231,8 +322,14 @@ arm_deal_with_atomic_sequence_raw (struct arm_get_next_pcs *self)
else if (arm_instruction_changes_pc (insn))
return {};
- /* If we find a strex{,b,h,d}, we're done. */
- if ((insn & 0xff9000f0) == 0xe1800090)
+ /* Currently we do not support conditionally executed atomic
+ instructions. */
+ if (!insn_condition_always_true (insn))
+ return {};
+
+ /* If we find a st[lr]ex{,b,h,d}, we're done. */
+ if ((insn & 0x0f9000f0) == 0x01800090
+ || stlex_arm_p (insn))
break;
}
diff --git a/gdb/arch/arm-get-next-pcs.h b/gdb/arch/arm-get-next-pcs.h
index 7680373..e6ecbe9 100644
--- a/gdb/arch/arm-get-next-pcs.h
+++ b/gdb/arch/arm-get-next-pcs.h
@@ -1,6 +1,6 @@
/* Common code for ARM software single stepping support.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/arm-linux.c b/gdb/arch/arm-linux.c
index 246bade..18918ec 100644
--- a/gdb/arch/arm-linux.c
+++ b/gdb/arch/arm-linux.c
@@ -1,6 +1,6 @@
/* Common target dependent code for GNU/Linux on ARM systems.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/arm-linux.h b/gdb/arch/arm-linux.h
index 39c73c3..db8193b 100644
--- a/gdb/arch/arm-linux.h
+++ b/gdb/arch/arm-linux.h
@@ -1,6 +1,6 @@
/* Common target dependent code for GNU/Linux on ARM systems.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/arm.c b/gdb/arch/arm.c
index f1c292b..1843dbe 100644
--- a/gdb/arch/arm.c
+++ b/gdb/arch/arm.c
@@ -1,6 +1,6 @@
/* Common target dependent code for GDB on ARM systems.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -46,7 +46,7 @@ thumb_insn_size (unsigned short inst1)
int
condition_true (unsigned long cond, unsigned long status_reg)
{
- if (cond == INST_AL || cond == INST_NV)
+ if (condition_always_true (cond))
return 1;
switch (cond)
diff --git a/gdb/arch/arm.h b/gdb/arch/arm.h
index 7738d9c..d9c7503 100644
--- a/gdb/arch/arm.h
+++ b/gdb/arch/arm.h
@@ -1,5 +1,5 @@
/* Common target dependent code for GDB on ARM systems.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -194,6 +194,23 @@ struct reg_buffer_common;
first halfword is INST1. */
int thumb_insn_size (unsigned short inst1);
+/* Returns true if COND always evaluates to true. */
+
+static inline bool
+condition_always_true (unsigned long cond)
+{
+ return cond == INST_AL || cond == INST_NV;
+}
+
+/* Returns true if cond of INSN always evaluates to true. */
+
+static inline bool
+insn_condition_always_true (uint32_t insn)
+{
+ unsigned long cond = bits (insn, 28, 31);
+ return condition_always_true (cond);
+}
+
/* Returns true if the condition evaluates to true. */
int condition_true (unsigned long cond, unsigned long status_reg);
diff --git a/gdb/arch/csky.c b/gdb/arch/csky.c
index 32df2ad..64ead0d 100644
--- a/gdb/arch/csky.c
+++ b/gdb/arch/csky.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/csky.h b/gdb/arch/csky.h
index 67b2f17..9bcb554b 100644
--- a/gdb/arch/csky.h
+++ b/gdb/arch/csky.h
@@ -1,6 +1,6 @@
/* Common target-dependent functionality for CSKY
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/i386-linux-tdesc.c b/gdb/arch/i386-linux-tdesc.c
index 9f12e59..5151317 100644
--- a/gdb/arch/i386-linux-tdesc.c
+++ b/gdb/arch/i386-linux-tdesc.c
@@ -1,6 +1,6 @@
/* Target description related code for GNU/Linux i386.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/i386-linux-tdesc.h b/gdb/arch/i386-linux-tdesc.h
index 4ecd674..2c3c174 100644
--- a/gdb/arch/i386-linux-tdesc.h
+++ b/gdb/arch/i386-linux-tdesc.h
@@ -1,6 +1,6 @@
/* Target description related code for GNU/Linux i386.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/i386.c b/gdb/arch/i386.c
index 2072eae..835df53 100644
--- a/gdb/arch/i386.c
+++ b/gdb/arch/i386.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/i386.h b/gdb/arch/i386.h
index 1b5cc6e..1fc4101 100644
--- a/gdb/arch/i386.h
+++ b/gdb/arch/i386.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/loongarch-insn.h b/gdb/arch/loongarch-insn.h
index 805cd53..c94c082 100644
--- a/gdb/arch/loongarch-insn.h
+++ b/gdb/arch/loongarch-insn.h
@@ -1,6 +1,6 @@
/* Target-dependent code for LoongArch
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -18,8 +18,8 @@
/* The LoongArch opcode and mask definitions in this file are obtained from
https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=opcodes/loongarch-opc.c */
-#ifndef ARCH_LOONGARCH_INSN_H
-#define ARCH_LOONGARCH_INSN_H
+#ifndef GDB_ARCH_LOONGARCH_INSN_H
+#define GDB_ARCH_LOONGARCH_INSN_H
/* loongarch fix insn opcode */
#define OP_CLO_W 0x00001000
@@ -2093,4 +2093,4 @@ is_special_insn (uint32_t insn)
return false;
}
-#endif /* ARCH_LOONGARCH_INSN_H */
+#endif /* GDB_ARCH_LOONGARCH_INSN_H */
diff --git a/gdb/arch/loongarch-syscall.h b/gdb/arch/loongarch-syscall.h
index d4b00e4..af1da4e 100644
--- a/gdb/arch/loongarch-syscall.h
+++ b/gdb/arch/loongarch-syscall.h
@@ -1,6 +1,6 @@
/* Target-dependent code for LoongArch
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,8 +19,8 @@
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/asm-generic/unistd.h
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/loongarch/include/asm/unistd.h */
-#ifndef ARCH_LOONGARCH_SYSCALL_H
-#define ARCH_LOONGARCH_SYSCALL_H
+#ifndef GDB_ARCH_LOONGARCH_SYSCALL_H
+#define GDB_ARCH_LOONGARCH_SYSCALL_H
enum loongarch_syscall
{
@@ -345,4 +345,4 @@ enum loongarch_syscall
loongarch_sys_syscalls = 463,
};
-#endif /* ARCH_LOONGARCH_SYSCALL_H */
+#endif /* GDB_ARCH_LOONGARCH_SYSCALL_H */
diff --git a/gdb/arch/loongarch.c b/gdb/arch/loongarch.c
index 04b6dfc..07c6d4d 100644
--- a/gdb/arch/loongarch.c
+++ b/gdb/arch/loongarch.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/loongarch.h b/gdb/arch/loongarch.h
index 07f37d8..251099c 100644
--- a/gdb/arch/loongarch.h
+++ b/gdb/arch/loongarch.h
@@ -1,6 +1,6 @@
/* Common target-dependent functionality for LoongArch
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/ppc-linux-common.c b/gdb/arch/ppc-linux-common.c
index 0a6915c..2088b76 100644
--- a/gdb/arch/ppc-linux-common.c
+++ b/gdb/arch/ppc-linux-common.c
@@ -1,6 +1,6 @@
/* Common target dependent code for GNU/Linux on PPC systems.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/ppc-linux-common.h b/gdb/arch/ppc-linux-common.h
index 1f72b29..fd4722c 100644
--- a/gdb/arch/ppc-linux-common.h
+++ b/gdb/arch/ppc-linux-common.h
@@ -1,6 +1,6 @@
/* Common target dependent code for GNU/Linux on PPC systems.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/ppc-linux-tdesc.h b/gdb/arch/ppc-linux-tdesc.h
index bde6ba2..1ff316a 100644
--- a/gdb/arch/ppc-linux-tdesc.h
+++ b/gdb/arch/ppc-linux-tdesc.h
@@ -1,6 +1,6 @@
/* Target description declarations shared between gdb, gdbserver and IPA.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/riscv.c b/gdb/arch/riscv.c
index 9a84844..a6188ea 100644
--- a/gdb/arch/riscv.c
+++ b/gdb/arch/riscv.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/riscv.h b/gdb/arch/riscv.h
index bf65b0b..bc95e72 100644
--- a/gdb/arch/riscv.h
+++ b/gdb/arch/riscv.h
@@ -1,6 +1,6 @@
/* Common target-dependent functionality for RISC-V
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/tic6x.c b/gdb/arch/tic6x.c
index b8a722b..5724305 100644
--- a/gdb/arch/tic6x.c
+++ b/gdb/arch/tic6x.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/tic6x.h b/gdb/arch/tic6x.h
index efb3282..6120892 100644
--- a/gdb/arch/tic6x.h
+++ b/gdb/arch/tic6x.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/x86-linux-tdesc-features.c b/gdb/arch/x86-linux-tdesc-features.c
index f6eb112..f65920c 100644
--- a/gdb/arch/x86-linux-tdesc-features.c
+++ b/gdb/arch/x86-linux-tdesc-features.c
@@ -1,6 +1,6 @@
/* Target description related code for GNU/Linux x86 (i386 and x86-64).
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/x86-linux-tdesc-features.h b/gdb/arch/x86-linux-tdesc-features.h
index cf8351d..89fe7ce 100644
--- a/gdb/arch/x86-linux-tdesc-features.h
+++ b/gdb/arch/x86-linux-tdesc-features.h
@@ -1,6 +1,6 @@
/* Target description related code for GNU/Linux x86 (i386 and x86-64).
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/x86-linux-tdesc.h b/gdb/arch/x86-linux-tdesc.h
index 718060c..0de2648 100644
--- a/gdb/arch/x86-linux-tdesc.h
+++ b/gdb/arch/x86-linux-tdesc.h
@@ -1,6 +1,6 @@
/* Target description related code for GNU/Linux x86 (i386 and x86-64).
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arch/xtensa.h b/gdb/arch/xtensa.h
index 70167b3..2f5b5a0 100644
--- a/gdb/arch/xtensa.h
+++ b/gdb/arch/xtensa.h
@@ -1,6 +1,6 @@
/* Common Target-dependent code for the Xtensa port of GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arm-bsd-tdep.c b/gdb/arm-bsd-tdep.c
index 1ccabcb..567ab08 100644
--- a/gdb/arm-bsd-tdep.c
+++ b/gdb/arm-bsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for ARM BSD's.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arm-fbsd-nat.c b/gdb/arm-fbsd-nat.c
index cbe9867..2b7b75a 100644
--- a/gdb/arm-fbsd-nat.c
+++ b/gdb/arm-fbsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for FreeBSD/arm.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arm-fbsd-tdep.c b/gdb/arm-fbsd-tdep.c
index dfb7532..c9a466f 100644
--- a/gdb/arm-fbsd-tdep.c
+++ b/gdb/arm-fbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for FreeBSD/arm.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arm-fbsd-tdep.h b/gdb/arm-fbsd-tdep.h
index 151f26c..cc30375 100644
--- a/gdb/arm-fbsd-tdep.h
+++ b/gdb/arm-fbsd-tdep.h
@@ -1,6 +1,6 @@
/* FreeBSD/arm target support, prototypes.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arm-linux-nat.c b/gdb/arm-linux-nat.c
index 7b4faac..3ff9fc6 100644
--- a/gdb/arm-linux-nat.c
+++ b/gdb/arm-linux-nat.c
@@ -1,5 +1,5 @@
/* GNU/Linux on ARM native support.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -714,7 +714,7 @@ struct arm_linux_hw_breakpoint
The Linux ptrace interface to hardware break-/watch-points presents the
values in a vector centred around 0 (which is used fo generic information).
- Positive indicies refer to breakpoint addresses/control registers, negative
+ Positive indices refer to breakpoint addresses/control registers, negative
indices to watchpoint addresses/control registers.
The Linux vector is indexed as follows:
diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c
index 0e49f9f..485a5d9 100644
--- a/gdb/arm-linux-tdep.c
+++ b/gdb/arm-linux-tdep.c
@@ -1,6 +1,6 @@
/* GNU/Linux on ARM target support.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -1361,8 +1361,8 @@ arm_canonicalize_syscall (int syscall)
case 86: return gdb_sys_uselib;
case 87: return gdb_sys_swapon;
case 88: return gdb_sys_reboot;
- case 89: return gdb_old_readdir;
- case 90: return gdb_old_mmap;
+ case 89: return gdb_sys_old_readdir;
+ case 90: return gdb_sys_old_mmap;
case 91: return gdb_sys_munmap;
case 92: return gdb_sys_truncate;
case 93: return gdb_sys_ftruncate;
@@ -1629,7 +1629,9 @@ arm_canonicalize_syscall (int syscall)
case 363: return gdb_sys_rt_tgsigqueueinfo;
case 364: return gdb_sys_perf_event_open;
case 365: return gdb_sys_recvmmsg;
+ */
case 366: return gdb_sys_accept4;
+ /*
case 367: return gdb_sys_fanotify_init;
case 368: return gdb_sys_fanotify_mark;
case 369: return gdb_sys_prlimit64;
diff --git a/gdb/arm-linux-tdep.h b/gdb/arm-linux-tdep.h
index 7aa69ce..ad6a1cd 100644
--- a/gdb/arm-linux-tdep.h
+++ b/gdb/arm-linux-tdep.h
@@ -1,6 +1,6 @@
/* GNU/Linux on ARM target support, prototypes.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arm-netbsd-nat.c b/gdb/arm-netbsd-nat.c
index 37f6530..3a24f51 100644
--- a/gdb/arm-netbsd-nat.c
+++ b/gdb/arm-netbsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for BSD Unix running on ARM's, for GDB.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arm-netbsd-tdep.c b/gdb/arm-netbsd-tdep.c
index f77fec7..a162054 100644
--- a/gdb/arm-netbsd-tdep.c
+++ b/gdb/arm-netbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for NetBSD/arm.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arm-netbsd-tdep.h b/gdb/arm-netbsd-tdep.h
index 6e554d4..2bb8542 100644
--- a/gdb/arm-netbsd-tdep.h
+++ b/gdb/arm-netbsd-tdep.h
@@ -1,6 +1,6 @@
/* NetBSD/ARM support.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arm-none-tdep.c b/gdb/arm-none-tdep.c
index 4212af3..81db22f 100644
--- a/gdb/arm-none-tdep.c
+++ b/gdb/arm-none-tdep.c
@@ -1,6 +1,6 @@
/* none on ARM target support.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arm-obsd-tdep.c b/gdb/arm-obsd-tdep.c
index 56102b0..6fd4c85 100644
--- a/gdb/arm-obsd-tdep.c
+++ b/gdb/arm-obsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for OpenBSD/arm.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arm-pikeos-tdep.c b/gdb/arm-pikeos-tdep.c
index 4760755..428bb7d 100644
--- a/gdb/arm-pikeos-tdep.c
+++ b/gdb/arm-pikeos-tdep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -36,8 +36,6 @@ arm_pikeos_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
static enum gdb_osabi
arm_pikeos_osabi_sniffer (bfd *abfd)
{
- long number_of_symbols;
- long i;
int pikeos_stack_found = 0;
int pikeos_stack_size_found = 0;
@@ -50,20 +48,15 @@ arm_pikeos_osabi_sniffer (bfd *abfd)
OS ABI sniffers are called before the minimal symtabs are
created. So inspect the symbol table using BFD. */
- long storage_needed = bfd_get_symtab_upper_bound (abfd);
- if (storage_needed <= 0)
- return GDB_OSABI_UNKNOWN;
-
- gdb::unique_xmalloc_ptr<asymbol *> symbol_table
- ((asymbol **) xmalloc (storage_needed));
- number_of_symbols = bfd_canonicalize_symtab (abfd, symbol_table.get ());
+ gdb::array_view<asymbol *> symbol_table
+ = gdb_bfd_canonicalize_symtab (abfd, false);
- if (number_of_symbols <= 0)
+ if (symbol_table.empty ())
return GDB_OSABI_UNKNOWN;
- for (i = 0; i < number_of_symbols; i++)
+ for (const asymbol *sym : symbol_table)
{
- const char *name = bfd_asymbol_name (symbol_table.get ()[i]);
+ const char *name = bfd_asymbol_name (sym);
if (strcmp (name, "_vm_stack") == 0
|| strcmp (name, "__p4_stack") == 0)
diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 0c15215..708f9ec 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -1,6 +1,6 @@
/* Common target dependent code for GDB on ARM systems.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -1669,7 +1669,7 @@ arm_analyze_load_stack_chk_guard(CORE_ADDR pc, struct gdbarch *gdbarch,
ldr Rn, .Label
....
- .Lable:
+ .Label:
.word __stack_chk_guard
Since ldr/str is a very popular instruction, we can't use them as
@@ -9202,7 +9202,7 @@ arm_store_return_value (struct type *type, struct regcache *regs,
{
/* Integral values greater than one word are stored in consecutive
registers starting with r0. This will always be a multiple of
- the regiser size. */
+ the register size. */
int len = type->length ();
int regno = ARM_A1_REGNUM;
@@ -9719,9 +9719,9 @@ coff_sym_is_thumb (int val)
symbol to indicate that it does. */
static void
-arm_elf_make_msymbol_special(asymbol *sym, struct minimal_symbol *msym)
+arm_elf_make_msymbol_special (const asymbol *sym, struct minimal_symbol *msym)
{
- elf_symbol_type *elfsym = (elf_symbol_type *) sym;
+ const elf_symbol_type *elfsym = (const elf_symbol_type *) sym;
if (ARM_GET_SYM_BRANCH_TYPE (elfsym->internal_elf_sym.st_target_internal)
== ST_BRANCH_TO_THUMB)
@@ -9737,7 +9737,7 @@ arm_coff_make_msymbol_special(int val, struct minimal_symbol *msym)
static void
arm_record_special_symbol (struct gdbarch *gdbarch, struct objfile *objfile,
- asymbol *sym)
+ const asymbol *sym)
{
const char *name = bfd_asymbol_name (sym);
struct arm_per_bfd *data;
@@ -10103,7 +10103,7 @@ arm_get_pc_address_flags (const frame_info_ptr &frame, CORE_ADDR pc)
}
/* Initialize the current architecture based on INFO. If possible,
- re-use an architecture from ARCHES, which is a list of
+ reuse an architecture from ARCHES, which is a list of
architectures already created during this debugging session.
Called e.g. at program startup, when reading a core file, and when
@@ -14846,7 +14846,7 @@ arm_analyze_prologue_test ()
}
}
-} // namespace selftests
+} /* namespace selftests */
#endif /* GDB_SELF_TEST */
/* Cleans up local record registers and memory allocations. */
diff --git a/gdb/arm-tdep.h b/gdb/arm-tdep.h
index f8049f4..aa950fb 100644
--- a/gdb/arm-tdep.h
+++ b/gdb/arm-tdep.h
@@ -1,5 +1,5 @@
/* Common target dependent code for GDB on ARM systems.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/arm-wince-tdep.c b/gdb/arm-wince-tdep.c
index 403795f..b1e1304 100644
--- a/gdb/arm-wince-tdep.c
+++ b/gdb/arm-wince-tdep.c
@@ -1,7 +1,7 @@
/* Target-dependent code for Windows CE running on ARM processors,
for GDB.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/async-event.c b/gdb/async-event.c
index 32b5865..27b739f 100644
--- a/gdb/async-event.c
+++ b/gdb/async-event.c
@@ -1,5 +1,5 @@
/* Async events for the GDB event loop.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/async-event.h b/gdb/async-event.h
index 16045f4..c97b77b 100644
--- a/gdb/async-event.h
+++ b/gdb/async-event.h
@@ -1,5 +1,5 @@
/* Async events for the GDB event loop.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/auto-load.c b/gdb/auto-load.c
index 71bbae4..f33a8d0 100644
--- a/gdb/auto-load.c
+++ b/gdb/auto-load.c
@@ -1,6 +1,6 @@
/* GDB routines for supporting auto-loaded scripts.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -41,6 +41,7 @@
#include <algorithm>
#include "gdbsupport/pathstuff.h"
#include "cli/cli-style.h"
+#include "gdbsupport/selftest.h"
/* The section to look in for auto-loaded scripts (in file formats that
support sections).
@@ -162,6 +163,67 @@ show_auto_load_dir (struct ui_file *file, int from_tty,
value);
}
+/* Substitute all occurrences of string FROM by string TO in STRING.
+ STRING will be updated in place as needed. FROM needs to be
+ delimited by IS_DIR_SEPARATOR or DIRNAME_SEPARATOR (or be located
+ at the start or end of STRING. */
+
+static void
+substitute_path_component (std::string &string, std::string_view from,
+ std::string_view to)
+{
+ for (size_t s = 0;;)
+ {
+ s = string.find (from, s);
+ if (s == std::string::npos)
+ break;
+
+ if ((s == 0 || IS_DIR_SEPARATOR (string[s - 1])
+ || string[s - 1] == DIRNAME_SEPARATOR)
+ && (s + from.size () == string.size ()
+ || IS_DIR_SEPARATOR (string[s + from.size ()])
+ || string[s + from.size ()] == DIRNAME_SEPARATOR))
+ {
+ string.replace (s, from.size (), to);
+ s += to.size ();
+ }
+ else
+ s++;
+ }
+}
+
+#if GDB_SELF_TEST
+
+namespace selftests {
+namespace subst_path {
+
+static void
+test_substitute_path_component ()
+{
+ auto test = [] (std::string s, const char *from, const char *to,
+ const char *expected)
+ {
+ substitute_path_component (s, from, to);
+ SELF_CHECK (s == expected);
+ };
+
+ test ("/abc/$def/g", "abc", "xyz", "/xyz/$def/g");
+ test ("abc/$def/g", "abc", "xyz", "xyz/$def/g");
+ test ("/abc/$def/g", "$def", "xyz", "/abc/xyz/g");
+ test ("/abc/$def/g", "g", "xyz", "/abc/$def/xyz");
+ test ("/abc/$def/g", "ab", "xyz", "/abc/$def/g");
+ test ("/abc/$def/g", "def", "xyz", "/abc/$def/g");
+ test ("/abc/$def/g", "abc", "abc", "/abc/$def/g");
+ test ("/abc/$def/g", "abc", "", "//$def/g");
+ test ("/abc/$def/g", "abc/$def", "xyz", "/xyz/g");
+ test ("/abc/$def/abc", "abc", "xyz", "/xyz/$def/xyz");
+}
+
+}
+}
+
+#endif /* GDB_SELF_TEST */
+
/* Directory list safe to hold auto-loaded files. It is not checked for
absolute paths but they are strongly recommended. It is initialized by
_initialize_auto_load. */
@@ -178,16 +240,15 @@ static std::vector<gdb::unique_xmalloc_ptr<char>> auto_load_safe_path_vec;
static std::vector<gdb::unique_xmalloc_ptr<char>>
auto_load_expand_dir_vars (const char *string)
{
- char *s = xstrdup (string);
- substitute_path_component (&s, "$datadir", gdb_datadir.c_str ());
- substitute_path_component (&s, "$debugdir", debug_file_directory.c_str ());
+ std::string s = string;
+ substitute_path_component (s, "$datadir", gdb_datadir.c_str ());
+ substitute_path_component (s, "$debugdir", debug_file_directory.c_str ());
- if (debug_auto_load && strcmp (s, string) != 0)
- auto_load_debug_printf ("Expanded $-variables to \"%s\".", s);
+ if (debug_auto_load && s != string)
+ auto_load_debug_printf ("Expanded $-variables to \"%s\".", s.c_str ());
std::vector<gdb::unique_xmalloc_ptr<char>> dir_vec
- = dirnames_to_char_ptr_vec (s);
- xfree(s);
+ = dirnames_to_char_ptr_vec (s.c_str ());
return dir_vec;
}
@@ -1650,4 +1711,9 @@ When non-zero, debugging output for files of 'set auto-load ...'\n\
is displayed."),
NULL, show_debug_auto_load,
&setdebuglist, &showdebuglist);
+
+#if GDB_SELF_TEST
+ selftests::register_test ("substitute_path_component",
+ selftests::subst_path::test_substitute_path_component);
+#endif
}
diff --git a/gdb/auto-load.h b/gdb/auto-load.h
index 48e6ccf..8dd963b 100644
--- a/gdb/auto-load.h
+++ b/gdb/auto-load.h
@@ -1,6 +1,6 @@
/* GDB routines for supporting auto-loaded scripts.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/auxv.c b/gdb/auxv.c
index c831b2b..5ec39ea 100644
--- a/gdb/auxv.c
+++ b/gdb/auxv.c
@@ -1,6 +1,6 @@
/* Auxiliary vector support for GDB, the GNU debugger.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/auxv.h b/gdb/auxv.h
index 3faddff..6a187e9 100644
--- a/gdb/auxv.h
+++ b/gdb/auxv.h
@@ -1,6 +1,6 @@
/* Auxiliary vector support for GDB, the GNU debugger.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/avr-tdep.c b/gdb/avr-tdep.c
index b3fe3fe..36e6ec4 100644
--- a/gdb/avr-tdep.c
+++ b/gdb/avr-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for Atmel AVR, for GDB.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ax-gdb.c b/gdb/ax-gdb.c
index 2b7d6ce..e572465 100644
--- a/gdb/ax-gdb.c
+++ b/gdb/ax-gdb.c
@@ -1,6 +1,6 @@
/* GDB-specific functions for operating on agent expressions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ax-gdb.h b/gdb/ax-gdb.h
index 53f48ff..eed7a85 100644
--- a/gdb/ax-gdb.h
+++ b/gdb/ax-gdb.h
@@ -1,5 +1,5 @@
/* GDB-specific functions for operating on agent expressions
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ax-general.c b/gdb/ax-general.c
index 3d00745..8dbd0c9 100644
--- a/gdb/ax-general.c
+++ b/gdb/ax-general.c
@@ -1,5 +1,5 @@
/* Functions for manipulating expressions designed to be executed on the agent
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ax.h b/gdb/ax.h
index 45fd560..6edad88 100644
--- a/gdb/ax.h
+++ b/gdb/ax.h
@@ -1,5 +1,5 @@
/* Definitions for expressions designed to be executed on the agent
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ax_cxx_compile_stdcxx.m4 b/gdb/ax_cxx_compile_stdcxx.m4
index 6c1d04a..3dc58fb 100644
--- a/gdb/ax_cxx_compile_stdcxx.m4
+++ b/gdb/ax_cxx_compile_stdcxx.m4
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2024 Free Software Foundation, Inc.
+# Copyright (c) 2016-2025 Free Software Foundation, Inc.
#
# Originally based on the AX_CXX_COMPILE_STDCXX macro found at the url
# below.
diff --git a/gdb/bcache.c b/gdb/bcache.c
index a9aab28..fd74c62 100644
--- a/gdb/bcache.c
+++ b/gdb/bcache.c
@@ -2,7 +2,7 @@
Written by Fred Fish <fnf@cygnus.com>
Rewritten by Jim Blandy <jimb@cygnus.com>
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -250,7 +250,7 @@ print_percentage (int portion, int total)
}
-/* Print statistics on BCACHE's memory usage and efficacity at
+/* Print statistics on BCACHE's memory usage and efficacy at
eliminating duplication. NAME should describe the kind of data
BCACHE holds. Statistics are printed using `gdb_printf' and
its ilk. */
diff --git a/gdb/bcache.h b/gdb/bcache.h
index 82cdd13..0980c07 100644
--- a/gdb/bcache.h
+++ b/gdb/bcache.h
@@ -2,7 +2,7 @@
Written by Fred Fish <fnf@cygnus.com>
Rewritten by Jim Blandy <jimb@cygnus.com>
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -173,7 +173,7 @@ struct bcache
added);
}
- /* Print statistics on this bcache's memory usage and efficacity at
+ /* Print statistics on this bcache's memory usage and efficacy at
eliminating duplication. TYPE should be a string describing the
kind of data this bcache holds. Statistics are printed using
`gdb_printf' and its ilk. */
diff --git a/gdb/bfd-target.c b/gdb/bfd-target.c
index 96e045e..855f5bb 100644
--- a/gdb/bfd-target.c
+++ b/gdb/bfd-target.c
@@ -1,6 +1,6 @@
/* Very simple "bfd" target, for GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/bfd-target.h b/gdb/bfd-target.h
index ab3233e..f922f34 100644
--- a/gdb/bfd-target.h
+++ b/gdb/bfd-target.h
@@ -1,6 +1,6 @@
/* Very simple "bfd" target, for GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/bfin-linux-tdep.c b/gdb/bfin-linux-tdep.c
index 0b1b018..3ba3146 100644
--- a/gdb/bfin-linux-tdep.c
+++ b/gdb/bfin-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for Analog Devices Blackfin processor, for GDB.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
diff --git a/gdb/bfin-tdep.c b/gdb/bfin-tdep.c
index 78ade80..32d9371 100644
--- a/gdb/bfin-tdep.c
+++ b/gdb/bfin-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for Analog Devices Blackfin processor, for GDB.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
@@ -769,7 +769,7 @@ bfin_abi (struct gdbarch *gdbarch)
}
/* Initialize the current architecture based on INFO. If possible,
- re-use an architecture from ARCHES, which is a list of
+ reuse an architecture from ARCHES, which is a list of
architectures already created during this debugging session.
Called e.g. at program startup, when reading a core file, and when
diff --git a/gdb/bfin-tdep.h b/gdb/bfin-tdep.h
index d28af50..dc76eda 100644
--- a/gdb/bfin-tdep.h
+++ b/gdb/bfin-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for Analog Devices Blackfin processor, for GDB.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
diff --git a/gdb/block.c b/gdb/block.c
index cf7ca67..fdf209c 100644
--- a/gdb/block.c
+++ b/gdb/block.c
@@ -1,6 +1,6 @@
/* Block-related functions for the GNU debugger, GDB.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/block.h b/gdb/block.h
index 75f5c8e..76fa203 100644
--- a/gdb/block.h
+++ b/gdb/block.h
@@ -1,6 +1,6 @@
/* Code dealing with blocks for GDB.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/blockframe.c b/gdb/blockframe.c
index 7275eb1..5a3e342 100644
--- a/gdb/blockframe.c
+++ b/gdb/blockframe.c
@@ -1,7 +1,7 @@
/* Get info from stack frames; convert between frames, blocks,
functions and pc values.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/bpf-tdep.c b/gdb/bpf-tdep.c
index 8f3e50d..2c95607 100644
--- a/gdb/bpf-tdep.c
+++ b/gdb/bpf-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for BPF.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -307,7 +307,7 @@ bpf_return_value (struct gdbarch *gdbarch, struct value *function,
}
-/* Initialize the current architecture based on INFO. If possible, re-use an
+/* Initialize the current architecture based on INFO. If possible, reuse an
architecture from ARCHES, which is a list of architectures already created
during this debugging session. */
diff --git a/gdb/break-catch-exec.c b/gdb/break-catch-exec.c
index bd412fc..6716437 100644
--- a/gdb/break-catch-exec.c
+++ b/gdb/break-catch-exec.c
@@ -1,6 +1,6 @@
/* Everything about exec catchpoints, for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/break-catch-fork.c b/gdb/break-catch-fork.c
index afbd847..cba3753 100644
--- a/gdb/break-catch-fork.c
+++ b/gdb/break-catch-fork.c
@@ -1,6 +1,6 @@
/* Everything about vfork catchpoints, for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/break-catch-load.c b/gdb/break-catch-load.c
index ce30b6f..9d25d75 100644
--- a/gdb/break-catch-load.c
+++ b/gdb/break-catch-load.c
@@ -1,6 +1,6 @@
/* Everything about load/unload catchpoints, for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -24,7 +24,7 @@
#include "cli/cli-decode.h"
#include "mi/mi-common.h"
#include "progspace.h"
-#include "solist.h"
+#include "solib.h"
#include "target.h"
#include "valprint.h"
@@ -119,7 +119,7 @@ solib_catchpoint::check_status (struct bpstat *bs)
for (solib *iter : current_program_space->added_solibs)
{
if (!regex
- || compiled->exec (iter->so_name.c_str (), 0, nullptr, 0) == 0)
+ || compiled->exec (iter->name.c_str (), 0, nullptr, 0) == 0)
return;
}
}
diff --git a/gdb/break-catch-sig.c b/gdb/break-catch-sig.c
index 72a5ebc..fb5d202 100644
--- a/gdb/break-catch-sig.c
+++ b/gdb/break-catch-sig.c
@@ -1,6 +1,6 @@
/* Everything about signal catchpoints, for GDB.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/break-catch-syscall.c b/gdb/break-catch-syscall.c
index 52ae60b..3d28898 100644
--- a/gdb/break-catch-syscall.c
+++ b/gdb/break-catch-syscall.c
@@ -1,6 +1,6 @@
/* Everything about syscall catchpoints, for GDB.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -423,7 +423,7 @@ catch_syscall_command_1 (const char *arg, int from_tty,
struct syscall s;
struct gdbarch *gdbarch = get_current_arch ();
- /* Checking if the feature if supported. */
+ /* Checking if the feature is supported. */
if (gdbarch_get_syscall_number_p (gdbarch) == 0)
error (_("The feature 'catch syscall' is not supported on \
this architecture yet."));
diff --git a/gdb/break-catch-throw.c b/gdb/break-catch-throw.c
index c1c88d9..41213e4 100644
--- a/gdb/break-catch-throw.c
+++ b/gdb/break-catch-throw.c
@@ -1,6 +1,6 @@
/* Everything about catch/throw catchpoints, for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/break-cond-parse.c b/gdb/break-cond-parse.c
index 0428cdf..caf13a7 100644
--- a/gdb/break-cond-parse.c
+++ b/gdb/break-cond-parse.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 Free Software Foundation, Inc.
+/* Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -569,10 +569,10 @@ test (const char *input, const char *condition, int thread = -1,
gdb::unique_xmalloc_ptr<char> extracted_rest;
int extracted_thread, extracted_inferior, extracted_task;
bool extracted_force_condition;
- std::string exception_msg, error_str;
+ std::string exception_msg;
- if (error_msg != nullptr)
- error_str = std::string (error_msg) + "\n";
+ if (error_msg == nullptr)
+ error_msg = "";
try
{
@@ -584,10 +584,7 @@ test (const char *input, const char *condition, int thread = -1,
}
catch (const gdb_exception_error &ex)
{
- string_file buf;
-
- exception_print (&buf, ex);
- exception_msg = buf.release ();
+ exception_msg = ex.what ();
}
if ((condition == nullptr) != (extracted_condition.get () == nullptr)
@@ -599,7 +596,7 @@ test (const char *input, const char *condition, int thread = -1,
|| inferior != extracted_inferior
|| task != extracted_task
|| force != extracted_force_condition
- || exception_msg != error_str)
+ || exception_msg != error_msg)
{
if (run_verbose ())
{
@@ -684,7 +681,7 @@ create_breakpoint_parse_arg_string_tests ()
test_error ("task 1xxx", "Junk 'xxx' after task keyword.");
}
-} // namespace selftests
+} /* namespace selftests */
#endif /* GDB_SELF_TEST */
void _initialize_break_cond_parse ();
diff --git a/gdb/break-cond-parse.h b/gdb/break-cond-parse.h
index 33e60dd..175715b 100644
--- a/gdb/break-cond-parse.h
+++ b/gdb/break-cond-parse.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023 Free Software Foundation, Inc.
+/* Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index e7fdeca..dab52f1 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -1,6 +1,6 @@
/* Everything about breakpoints, for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -50,7 +50,6 @@
#include "cli/cli-script.h"
#include "block.h"
#include "solib.h"
-#include "solist.h"
#include "observable.h"
#include "memattr.h"
#include "ada-lang.h"
@@ -70,7 +69,6 @@
#include "tid-parse.h"
#include "cli/cli-style.h"
#include "cli/cli-decode.h"
-#include <unordered_set>
#include "break-cond-parse.h"
/* readline include files */
@@ -256,14 +254,22 @@ DIAGNOSTIC_POP
static std::string
breakpoint_location_address_str (const bp_location *bl)
{
- std::string str = string_printf ("Breakpoint %d (%s) at address %s",
+ std::string str = string_printf ("Breakpoint %d (%s) ",
bl->owner->number,
- host_address_to_string (bl),
- paddress (bl->gdbarch, bl->address));
+ host_address_to_string (bl));
- std::string loc_string = bl->to_string ();
- if (!loc_string.empty ())
- str += string_printf (" %s", loc_string.c_str ());
+ if (bl_address_is_meaningful (bl))
+ {
+ gdb_assert (bl->gdbarch != nullptr);
+ str += string_printf ("at address %s",
+ paddress (bl->gdbarch, bl->address));
+
+ std::string loc_string = bl->to_string ();
+ if (!loc_string.empty ())
+ str += string_printf (" %s", loc_string.c_str ());
+ }
+ else
+ str += "with dummy location";
return str;
}
@@ -722,7 +728,8 @@ all_tracepoints ()
tracepoint_iterator (breakpoint_chain.end ()));
}
-/* Array is sorted by bp_location_is_less_than - primarily by the ADDRESS. */
+/* Array is sorted by bp_location_ptr_is_less_than - primarily by the
+ ADDRESS. */
static std::vector<bp_location *> bp_locations;
@@ -1536,6 +1543,11 @@ void
breakpoint_set_commands (struct breakpoint *b,
counted_command_line &&commands)
{
+ /* If the commands have not changed then there's no need to update
+ anything, and no need to emit a breakpoint modified event. */
+ if (commands_equal (b->commands.get (), commands.get ()))
+ return;
+
validate_commands_for_breakpoint (b, commands.get ());
b->commands = std::move (commands);
@@ -3100,7 +3112,6 @@ insert_bp_location (struct bp_location *bl,
|| shared_objfile_contains_address_p (bl->pspace,
bl->address)))
{
- /* See also: disable_breakpoints_in_shlibs. */
bl->shlib_disabled = 1;
notify_breakpoint_modified (bl->owner);
if (!*disabled_breaks)
@@ -5133,7 +5144,7 @@ print_solib_event (bool is_catchpoint)
if (!first)
current_uiout->text (" ");
first = false;
- current_uiout->field_string ("library", iter->so_name);
+ current_uiout->field_string ("library", iter->name);
current_uiout->text ("\n");
}
}
@@ -6424,7 +6435,28 @@ print_breakpoint_location (const breakpoint *b, const bp_location *loc)
uiout->field_stream ("at", stb);
}
else
- uiout->field_string ("pending", b->locspec->to_string ());
+ {
+ /* Internal breakpoints don't have a locspec string, but can become
+ pending if the shared library the breakpoint is in is unloaded.
+ For most internal breakpoint types though, after unloading the
+ shared library, the breakpoint will be deleted and never recreated
+ (see internal_breakpoint::re_set). But for two internal
+ breakpoint types bp_shlib_event and bp_thread_event this is not
+ true. Usually we don't expect the libraries that contain these
+ breakpoints to ever be unloaded, but a buggy inferior might do
+ such a thing, in which case GDB should be prepared to handle this
+ case.
+
+ If these two breakpoint types become pending then there will be no
+ locspec string. */
+ gdb_assert (b->locspec != nullptr
+ || (!user_breakpoint_p (b)
+ && (b->type == bp_shlib_event
+ || b->type == bp_thread_event)));
+ const char *locspec_str
+ = (b->locspec != nullptr ? b->locspec->to_string () : "");
+ uiout->field_string ("pending", locspec_str);
+ }
if (loc && is_breakpoint (b)
&& breakpoint_condition_evaluation_mode () == condition_evaluation_target
@@ -7480,7 +7512,7 @@ breakpoint_locations_match (const struct bp_location *loc1,
else
/* We compare bp_location.length in order to cover ranged
breakpoints. Keep this in sync with
- bp_location_is_less_than. */
+ bp_location_ptr_is_less_than. */
return (breakpoint_address_match (loc1->pspace->aspace.get (),
loc1->address,
loc2->pspace->aspace.get (),
@@ -7839,7 +7871,7 @@ check_longjmp_breakpoint_for_call_dummy (struct thread_info *tp)
/* We would need to delete breakpoints other than the current one while
iterating, so all_breakpoints_safe is not sufficient to make that safe.
Save all breakpoints to delete in that set and delete them at the end. */
- std::unordered_set<breakpoint *> to_delete;
+ gdb::unordered_set<breakpoint *> to_delete;
for (struct breakpoint &b : all_breakpoints ())
{
@@ -8059,77 +8091,74 @@ create_and_insert_solib_event_breakpoint (struct gdbarch *gdbarch, CORE_ADDR add
return b;
}
-/* See breakpoint.h. */
-
-void
-disable_breakpoints_in_shlibs (program_space *pspace)
-{
- for (bp_location *loc : all_bp_locations ())
- {
- /* ALL_BP_LOCATIONS bp_location has LOC->OWNER always non-NULL. */
- struct breakpoint *b = loc->owner;
-
- /* We apply the check to all breakpoints, including disabled for
- those with loc->duplicate set. This is so that when breakpoint
- becomes enabled, or the duplicate is removed, gdb will try to
- insert all breakpoints. If we don't set shlib_disabled here,
- we'll try to insert those breakpoints and fail. */
- if (((b->type == bp_breakpoint)
- || (b->type == bp_jit_event)
- || (b->type == bp_hardware_breakpoint)
- || (is_tracepoint (b)))
- && loc->pspace == pspace
- && !loc->shlib_disabled
- && solib_name_from_address (loc->pspace, loc->address)
- )
- {
- loc->shlib_disabled = 1;
- }
- }
-}
-
/* Disable any breakpoints and tracepoints that are in SOLIB upon
notification of unloaded_shlib. Only apply to enabled breakpoints,
- disabled ones can just stay disabled. */
+ disabled ones can just stay disabled.
+
+ When STILL_IN_USE is true, SOLIB hasn't really been unmapped from
+ the inferior. In this case, don't disable anything.
+
+ When SILENT is false notify the user if any breakpoints are disabled,
+ otherwise, still disable the breakpoints, but don't tell the user. */
static void
-disable_breakpoints_in_unloaded_shlib (program_space *pspace, const solib &solib)
+disable_breakpoints_in_unloaded_shlib (program_space *pspace, const solib &solib,
+ bool still_in_use, bool silent)
{
+ if (still_in_use)
+ return;
+
bool disabled_shlib_breaks = false;
- for (bp_location *loc : all_bp_locations ())
+ for (breakpoint &b : all_breakpoints ())
{
- /* ALL_BP_LOCATIONS bp_location has LOC->OWNER always non-NULL. */
- struct breakpoint *b = loc->owner;
-
- if (pspace == loc->pspace
- && !loc->shlib_disabled
- && (((b->type == bp_breakpoint
- || b->type == bp_jit_event
- || b->type == bp_hardware_breakpoint)
- && (loc->loc_type == bp_loc_hardware_breakpoint
- || loc->loc_type == bp_loc_software_breakpoint))
- || is_tracepoint (b))
- && solib_contains_address_p (solib, loc->address))
- {
- loc->shlib_disabled = 1;
- /* At this point, we cannot rely on remove_breakpoint
- succeeding so we must mark the breakpoint as not inserted
- to prevent future errors occurring in remove_breakpoints. */
- loc->inserted = 0;
-
- /* This may cause duplicate notifications for the same breakpoint. */
- notify_breakpoint_modified (b);
-
- if (!disabled_shlib_breaks)
+ bool bp_modified = false;
+
+ for (bp_location &loc : b.locations ())
+ {
+ if (pspace != loc.pspace || loc.shlib_disabled)
+ continue;
+
+ if (loc.loc_type != bp_loc_hardware_breakpoint
+ && loc.loc_type != bp_loc_software_breakpoint
+ && !is_tracepoint (&b))
+ continue;
+
+ if (!solib_contains_address_p (solib, loc.address))
+ continue;
+
+ loc.shlib_disabled = 1;
+
+ /* At this point, we don't know whether the shared library
+ was unmapped from the inferior or not, so leave the
+ inserted flag alone. We'll handle failure to uninsert
+ quietly, in case the library was indeed unmapped.
+
+ The test gdb.base/nostdlib.exp when run on AArch64
+ GNU/Linux using glibc will cause the dynamic linker to be
+ unloaded from the inferior, but the linker will never be
+ unmapped. Additionally, at the time the dynamic linker
+ is unloaded the inferior will be stopped within the
+ dynamic linker.
+
+ If we clear the inserted flag here then GDB will fail to
+ remove the internal breakpoints from the dynamic linker
+ leading to unexpected SIGTRAPs. */
+
+ bp_modified = true;
+
+ if (!disabled_shlib_breaks && !silent && user_breakpoint_p (&b))
{
target_terminal::ours_for_output ();
warning (_("Temporarily disabling breakpoints "
"for unloaded shared library \"%s\""),
- solib.so_name.c_str ());
+ solib.name.c_str ());
+ disabled_shlib_breaks = true;
}
- disabled_shlib_breaks = true;
}
+
+ if (bp_modified)
+ notify_breakpoint_modified (&b);
}
}
@@ -10268,7 +10297,7 @@ masked_watchpoint::print_recreate (struct ui_file *fp) const
}
gdb_printf (fp, " %s mask 0x%s", exp_string.get (),
- phex (hw_wp_mask, sizeof (CORE_ADDR)));
+ phex (hw_wp_mask));
print_recreate_thread (fp);
}
@@ -11184,14 +11213,17 @@ breakpoint_auto_delete (bpstat *bs)
delete_breakpoint (&b);
}
-/* A comparison function for bp_location AP and BP being interfaced to
- std::sort. Sort elements primarily by their ADDRESS (no matter what
- bl_address_is_meaningful says), secondarily by ordering first
- permanent elements and tertiarily just ensuring the array is sorted
- stable way despite std::sort being an unstable algorithm. */
+/* A comparison function for bp_location pointers A and B being interfaced to
+ std::sort, for instance to sort an std::vector<bp_location *>. Sort
+ elements:
+ - primarily by their ADDRESS (no matter what bl_address_is_meaningful
+ says),
+ - secondarily by ordering first permanent elements, and
+ - tertiarily just ensuring the array is sorted in a stable way despite
+ std::sort being an unstable algorithm. */
-static int
-bp_location_is_less_than (const bp_location *a, const bp_location *b)
+static bool
+bp_location_ptr_is_less_than (const bp_location *a, const bp_location *b)
{
if (a->address != b->address)
return a->address < b->address;
@@ -11229,6 +11261,15 @@ bp_location_is_less_than (const bp_location *a, const bp_location *b)
return a < b;
}
+/* A comparison function for bp_locations A and B being interfaced to
+ std::sort, for instance to sort an std::vector<bp_location>. */
+
+static bool
+bp_location_is_less_than (const bp_location &a, const bp_location &b)
+{
+ return bp_location_ptr_is_less_than (&a, &b);
+}
+
/* Set bp_locations_placed_address_before_address_max and
bp_locations_shadow_len_after_address_max according to the current
content of the bp_locations array. */
@@ -11434,7 +11475,7 @@ update_global_location_list (enum ugll_insert_mode insert_mode)
handle_automatic_hardware_breakpoints (loc);
std::sort (bp_locations.begin (), bp_locations.end (),
- bp_location_is_less_than);
+ bp_location_ptr_is_less_than);
bp_locations_target_extensions_update ();
@@ -11788,16 +11829,6 @@ bpstat_remove_bp_location (bpstat *bps, struct breakpoint *bpt)
}
}
-/* Callback for iterate_over_threads. */
-static int
-bpstat_remove_breakpoint_callback (struct thread_info *th, void *data)
-{
- struct breakpoint *bpt = (struct breakpoint *) data;
-
- bpstat_remove_bp_location (th->control.stop_bpstat, bpt);
- return 0;
-}
-
/* See breakpoint.h. */
void
@@ -11892,9 +11923,7 @@ breakpoint::add_location (bp_location &loc)
auto ub = std::upper_bound (m_locations.begin (), m_locations.end (),
loc,
- [] (const bp_location &left,
- const bp_location &right)
- { return left.address < right.address; });
+ bp_location_is_less_than);
m_locations.insert (ub, loc);
}
@@ -12642,7 +12671,11 @@ delete_breakpoint (struct breakpoint *bpt)
event-top.c won't do anything, and temporary breakpoints with
commands won't work. */
- iterate_over_threads (bpstat_remove_breakpoint_callback, bpt);
+ iterate_over_threads ([&] (struct thread_info *th)
+ {
+ bpstat_remove_bp_location (th->control.stop_bpstat, bpt);
+ return false;
+ });
/* Now that breakpoint is removed from breakpoint list, update the
global location list. This will remove locations that used to
@@ -13036,8 +13069,7 @@ update_breakpoint_locations (code_breakpoint *b,
for (const bp_location &e : existing_locations)
{
- if (e.function_name == nullptr
- || (e.enabled && !e.disabled_by_cond))
+ if (e.function_name == nullptr || e.enabled)
continue;
if (have_ambiguous_names)
@@ -13054,7 +13086,6 @@ update_breakpoint_locations (code_breakpoint *b,
if (breakpoint_locations_match (&e, &l, true))
{
l.enabled = e.enabled;
- l.disabled_by_cond = e.disabled_by_cond;
break;
}
}
@@ -13067,7 +13098,6 @@ update_breakpoint_locations (code_breakpoint *b,
l.function_name.get ()) == 0)
{
l.enabled = e.enabled;
- l.disabled_by_cond = e.disabled_by_cond;
break;
}
}
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index 94fba1c..9341112 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -1,5 +1,5 @@
/* Data structures associated with breakpoints in GDB.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -425,7 +425,9 @@ public:
simplicity is more important than memory usage for breakpoints. */
/* Architecture associated with this location's address. May be
- different from the breakpoint architecture. */
+ different from the breakpoint architecture. Not every location has
+ an address (e.g. see add_dummy_location), so not every location has
+ an associated gdbarch -- this can be NULL for a valid location. */
struct gdbarch *gdbarch = NULL;
/* The program space associated with this breakpoint location
@@ -1740,7 +1742,7 @@ extern void disable_overlay_breakpoints (void);
extern void set_std_terminate_breakpoint (void);
extern void delete_std_terminate_breakpoint (void);
-/* These functions respectively disable or reenable all currently
+/* These functions respectively disable or re-enable all currently
enabled watchpoints. When disabled, the watchpoints are marked
call_disabled. When re-enabled, they are marked enabled.
diff --git a/gdb/bsd-kvm.c b/gdb/bsd-kvm.c
index 19353eb..5158fb6 100644
--- a/gdb/bsd-kvm.c
+++ b/gdb/bsd-kvm.c
@@ -1,6 +1,6 @@
/* BSD Kernel Data Access Library (libkvm) interface.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/bsd-kvm.h b/gdb/bsd-kvm.h
index 6ddd154..92c2d78 100644
--- a/gdb/bsd-kvm.h
+++ b/gdb/bsd-kvm.h
@@ -1,6 +1,6 @@
/* BSD Kernel Data Access Library (libkvm) interface.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/bsd-uthread.c b/gdb/bsd-uthread.c
index eb1ed42..a493b0c 100644
--- a/gdb/bsd-uthread.c
+++ b/gdb/bsd-uthread.c
@@ -1,6 +1,6 @@
/* BSD user-level threads support.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -25,7 +25,6 @@
#include "observable.h"
#include "regcache.h"
#include "solib.h"
-#include "solist.h"
#include "symfile.h"
#include "target.h"
@@ -280,13 +279,13 @@ bsd_uthread_solib_loaded (solib &so)
for (names = bsd_uthread_solib_names; *names; names++)
{
- if (startswith (so.so_original_name, *names))
+ if (startswith (so.original_name, *names))
{
solib_read_symbols (so, 0);
if (bsd_uthread_activate (so.objfile))
{
- bsd_uthread_solib_name = so.so_original_name;
+ bsd_uthread_solib_name = so.original_name;
return;
}
}
@@ -294,12 +293,13 @@ bsd_uthread_solib_loaded (solib &so)
}
static void
-bsd_uthread_solib_unloaded (program_space *pspace, const solib &so)
+bsd_uthread_solib_unloaded (program_space *pspace, const solib &so,
+ bool still_in_use, bool /* silent */)
{
- if (bsd_uthread_solib_name.empty ())
+ if (bsd_uthread_solib_name.empty () || still_in_use)
return;
- if (so.so_original_name == bsd_uthread_solib_name)
+ if (so.original_name == bsd_uthread_solib_name)
bsd_uthread_deactivate ();
}
@@ -535,7 +535,7 @@ bsd_uthread_target::pid_to_str (ptid_t ptid)
if (ptid.tid () != 0)
return string_printf ("process %d, thread 0x%s",
ptid.pid (),
- phex_nz (ptid.tid (), sizeof (ULONGEST)));
+ phex_nz (ptid.tid ()));
return normal_pid_to_str (ptid);
}
diff --git a/gdb/bsd-uthread.h b/gdb/bsd-uthread.h
index e236eaa..567a886 100644
--- a/gdb/bsd-uthread.h
+++ b/gdb/bsd-uthread.h
@@ -1,6 +1,6 @@
/* BSD user-level threads support.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/bt-utils.c b/gdb/bt-utils.c
index 64d7701..922402e 100644
--- a/gdb/bt-utils.c
+++ b/gdb/bt-utils.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -40,6 +40,17 @@ gdb_internal_backtrace_set_cmd (const char *args, int from_tty,
#endif
}
+/* See bt-utils.h. */
+
+void
+sig_write (const char *msg)
+{
+ if (gdb_stderr == nullptr || gdb_stderr->fd () == -1)
+ std::ignore = ::write (2, msg, strlen (msg));
+ else
+ gdb_stderr->write_async_safe (msg, strlen (msg));
+}
+
#ifdef GDB_PRINT_INTERNAL_BACKTRACE
#ifdef GDB_PRINT_INTERNAL_BACKTRACE_USING_LIBBACKTRACE
@@ -53,11 +64,6 @@ libbacktrace_error (void *data, const char *errmsg, int errnum)
if (errnum < 0)
return;
- const auto sig_write = [] (const char *msg) -> void
- {
- gdb_stderr->write_async_safe (msg, strlen (msg));
- };
-
sig_write ("error creating backtrace: ");
sig_write (errmsg);
if (errnum > 0)
@@ -77,11 +83,6 @@ static int
libbacktrace_print (void *data, uintptr_t pc, const char *filename,
int lineno, const char *function)
{
- const auto sig_write = [] (const char *msg) -> void
- {
- gdb_stderr->write_async_safe (msg, strlen (msg));
- };
-
/* Buffer to print addresses and line numbers into. An 8-byte address
with '0x' prefix and a null terminator requires 20 characters. This
also feels like it should be enough to represent line numbers in most
@@ -128,16 +129,14 @@ gdb_internal_backtrace_1 ()
static void
gdb_internal_backtrace_1 ()
{
- const auto sig_write = [] (const char *msg) -> void
- {
- gdb_stderr->write_async_safe (msg, strlen (msg));
- };
-
/* Allow up to 25 frames of backtrace. */
void *buffer[25];
int frames = backtrace (buffer, ARRAY_SIZE (buffer));
- backtrace_symbols_fd (buffer, frames, gdb_stderr->fd ());
+ int fd = ((gdb_stderr == nullptr || gdb_stderr->fd () == -1)
+ ? 2
+ : gdb_stderr->fd ());
+ backtrace_symbols_fd (buffer, frames, fd);
if (frames == ARRAY_SIZE (buffer))
sig_write (_("Backtrace might be incomplete.\n"));
}
@@ -171,17 +170,9 @@ gdb_internal_backtrace ()
return;
#ifdef GDB_PRINT_INTERNAL_BACKTRACE
- const auto sig_write = [] (const char *msg) -> void
- {
- gdb_stderr->write_async_safe (msg, strlen (msg));
- };
-
sig_write (str_backtrace);
- if (gdb_stderr->fd () > -1)
- gdb_internal_backtrace_1 ();
- else
- sig_write (str_backtrace_unavailable);
+ gdb_internal_backtrace_1 ();
sig_write ("---------------------\n");
#endif
diff --git a/gdb/bt-utils.h b/gdb/bt-utils.h
index 0981ed7..c2fbe97 100644
--- a/gdb/bt-utils.h
+++ b/gdb/bt-utils.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -75,4 +75,9 @@ extern void gdb_internal_backtrace_set_cmd (const char *args, int from_tty,
extern void gdb_internal_backtrace_init_str ();
+/* Print MSG to gdb_stderr or stderr in a way that is safe to do from an
+ interrupt handler. */
+
+extern void sig_write (const char *msg);
+
#endif /* GDB_BT_UTILS_H */
diff --git a/gdb/btrace.c b/gdb/btrace.c
index 152f6f2..3d883c5 100644
--- a/gdb/btrace.c
+++ b/gdb/btrace.c
@@ -1,6 +1,6 @@
/* Branch trace support for GDB, the GNU debugger.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>
@@ -1531,23 +1531,23 @@ handle_pt_insn_events (struct btrace_thread_info *btinfo,
if (event.variant.vmexit.has_vmxr != 0)
{
- std::string seperator = aux_string.back () == ':' ? "" : ",";
- aux_string += seperator + std::string (" vmxr = ")
+ std::string separator = aux_string.back () == ':' ? "" : ",";
+ aux_string += separator + std::string (" vmxr = ")
+ hex_string (event.variant.vmexit.vmxr);
}
if (event.variant.vmexit.has_vmxq != 0)
{
- std::string seperator = aux_string.back () == ':' ? "" : ",";
- aux_string += seperator + std::string (" vmxq = ")
+ std::string separator = aux_string.back () == ':' ? "" : ",";
+ aux_string += separator + std::string (" vmxq = ")
+ hex_string (event.variant.vmexit.vmxq);
}
if (event.ip_suppressed == 0)
{
pc = event.variant.vmexit.ip;
- std::string seperator = aux_string.back () == ':' ? "" : ",";
- aux_string += seperator + std::string (" ip = ")
+ std::string separator = aux_string.back () == ':' ? "" : ",";
+ aux_string += separator + std::string (" ip = ")
+ hex_string (*pc);
}
@@ -2136,7 +2136,7 @@ btrace_stitch_bts (struct btrace_data_bts *btrace, struct thread_info *tp)
/* Adjust the block trace in order to stitch old and new trace together.
BTRACE is the new delta trace between the last and the current stop.
TP is the traced thread.
- May modifx BTRACE as well as the existing trace in TP.
+ May modify BTRACE as well as the existing trace in TP.
Return 0 on success, -1 otherwise. */
static int
diff --git a/gdb/btrace.h b/gdb/btrace.h
index e8867c8..558fe49 100644
--- a/gdb/btrace.h
+++ b/gdb/btrace.h
@@ -1,6 +1,6 @@
/* Branch trace support for GDB, the GNU debugger.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>.
diff --git a/gdb/build-id.c b/gdb/build-id.c
index 43a80dd..0ecd79f 100644
--- a/gdb/build-id.c
+++ b/gdb/build-id.c
@@ -1,6 +1,6 @@
/* build-id-related functions.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -29,6 +29,7 @@
#include "gdbsupport/scoped_fd.h"
#include "debuginfod-support.h"
#include "extension.h"
+#include "inferior.h"
/* See build-id.h. */
@@ -128,8 +129,9 @@ build_id_to_debug_bfd_1 (const std::string &original_link,
if (supports_target_stat != TRIBOOL_FALSE)
{
struct stat sb;
- int res = target_fileio_stat (nullptr, link_on_target, &sb,
- &target_errno);
+ int res = target_fileio_lstat (current_inferior (),
+ link_on_target, &sb,
+ &target_errno);
if (res != 0 && target_errno != FILEIO_ENOSYS)
{
@@ -157,7 +159,7 @@ build_id_to_debug_bfd_1 (const std::string &original_link,
the path doesn't exist, but we just assume that anything
other than EINVAL indicates the path doesn't exist. */
std::optional<std::string> link_target
- = target_fileio_readlink (nullptr, link_on_target,
+ = target_fileio_readlink (current_inferior (), link_on_target,
&target_errno);
if (link_target.has_value ()
|| target_errno == FILEIO_EINVAL)
diff --git a/gdb/build-id.h b/gdb/build-id.h
index e2a62fd..ffdb306 100644
--- a/gdb/build-id.h
+++ b/gdb/build-id.h
@@ -1,6 +1,6 @@
/* build-id-related functions.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/buildsym-legacy.c b/gdb/buildsym-legacy.c
index a2d786b..af7bb53 100644
--- a/gdb/buildsym-legacy.c
+++ b/gdb/buildsym-legacy.c
@@ -1,5 +1,5 @@
/* Legacy support routines for building symbol tables in GDB's internal format.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/buildsym-legacy.h b/gdb/buildsym-legacy.h
index 1f032c4..4ae8e1a 100644
--- a/gdb/buildsym-legacy.h
+++ b/gdb/buildsym-legacy.h
@@ -1,5 +1,5 @@
/* Build symbol tables in GDB's internal format - legacy APIs
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/buildsym.c b/gdb/buildsym.c
index 02d6848..6dc079f 100644
--- a/gdb/buildsym.c
+++ b/gdb/buildsym.c
@@ -1,5 +1,5 @@
/* Support routines for building symbol tables in GDB's internal format.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/buildsym.h b/gdb/buildsym.h
index 974645c..8f38131 100644
--- a/gdb/buildsym.h
+++ b/gdb/buildsym.h
@@ -1,5 +1,5 @@
/* Build symbol tables in GDB's internal format.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -55,7 +55,7 @@ struct subfile
struct subfile *next = nullptr;
std::string name;
- /* This field is analoguous in function to symtab::filename_for_id.
+ /* This field is analogous in function to symtab::filename_for_id.
It is used to look up existing subfiles in calls to start_subfile. */
std::string name_for_id;
@@ -448,7 +448,7 @@ private:
struct pending *m_local_symbols = nullptr;
};
-
+using buildsym_compunit_up = std::unique_ptr<buildsym_compunit>;
extern void add_symbol_to_list (struct symbol *symbol,
struct pending **listhead);
diff --git a/gdb/c-exp.h b/gdb/c-exp.h
index a6c084d..f15185f 100644
--- a/gdb/c-exp.h
+++ b/gdb/c-exp.h
@@ -1,6 +1,6 @@
/* Definitions for C expressions
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/c-exp.y b/gdb/c-exp.y
index 645cb59..14d4b70 100644
--- a/gdb/c-exp.y
+++ b/gdb/c-exp.y
@@ -1,5 +1,5 @@
/* YACC parser for C expressions, for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -3042,10 +3042,6 @@ classify_name (struct parser_state *par_state, const struct block *block,
std::string copy = copy_name (yylval.sval);
- /* Initialize this in case we *don't* use it in this call; that way
- we can refer to it unconditionally below. */
- memset (&is_a_field_of_this, 0, sizeof (is_a_field_of_this));
-
bsym = lookup_symbol (copy.c_str (), block, SEARCH_VFT,
par_state->language ()->name_of_this ()
? &is_a_field_of_this : NULL);
@@ -3396,18 +3392,18 @@ c_parse (struct parser_state *par_state)
c_parse_state cstate;
scoped_restore cstate_restore = make_scoped_restore (&cpstate, &cstate);
- gdb::unique_xmalloc_ptr<struct macro_scope> macro_scope;
+ macro_scope macro_scope;
if (par_state->expression_context_block)
macro_scope
= sal_macro_scope (find_pc_line (par_state->expression_context_pc, 0));
else
macro_scope = default_macro_scope ();
- if (! macro_scope)
+ if (!macro_scope.is_valid ())
macro_scope = user_macro_scope ();
scoped_restore restore_macro_scope
- = make_scoped_restore (&expression_macro_scope, macro_scope.get ());
+ = make_scoped_restore (&expression_macro_scope, &macro_scope);
scoped_restore restore_yydebug = make_scoped_restore (&yydebug,
par_state->debug);
diff --git a/gdb/c-lang.c b/gdb/c-lang.c
index c28493f..f052401 100644
--- a/gdb/c-lang.c
+++ b/gdb/c-lang.c
@@ -1,6 +1,6 @@
/* C language support routines for GDB, the GNU debugger.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -807,22 +807,6 @@ public:
}
/* See language.h. */
- std::unique_ptr<compile_instance> get_compile_instance () const override
- {
- return c_get_compile_context ();
- }
-
- /* See language.h. */
- std::string compute_program (compile_instance *inst,
- const char *input,
- struct gdbarch *gdbarch,
- const struct block *expr_block,
- CORE_ADDR expr_pc) const override
- {
- return c_compute_program (inst, input, gdbarch, expr_block, expr_pc);
- }
-
- /* See language.h. */
bool can_print_type_offsets () const override
{
@@ -943,22 +927,6 @@ public:
}
/* See language.h. */
- std::unique_ptr<compile_instance> get_compile_instance () const override
- {
- return cplus_get_compile_context ();
- }
-
- /* See language.h. */
- std::string compute_program (compile_instance *inst,
- const char *input,
- struct gdbarch *gdbarch,
- const struct block *expr_block,
- CORE_ADDR expr_pc) const override
- {
- return cplus_compute_program (inst, input, gdbarch, expr_block, expr_pc);
- }
-
- /* See language.h. */
unsigned int search_name_hash (const char *name) const override
{
return cp_search_name_hash (name);
diff --git a/gdb/c-lang.h b/gdb/c-lang.h
index 0e733d8..c4f729c 100644
--- a/gdb/c-lang.h
+++ b/gdb/c-lang.h
@@ -1,6 +1,6 @@
/* C language support definitions for GDB, the GNU debugger.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -25,7 +25,6 @@ struct ui_file;
struct language_arch_info;
struct type_print_options;
struct parser_state;
-struct compile_instance;
#include "compile/compile.h"
#include "value.h"
@@ -132,43 +131,6 @@ extern bool c_is_string_type_p (struct type *type);
extern int c_textual_element_type (struct type *, char);
-/* Create a new instance of the C compiler and return it. This
- function never returns NULL, but rather throws an exception on
- failure. This is suitable for use as the
- language_defn::get_compile_instance method. */
-
-extern std::unique_ptr<compile_instance> c_get_compile_context ();
-
-/* Create a new instance of the C++ compiler and return it. This
- function never returns NULL, but rather throws an exception on
- failure. This is suitable for use as the
- language_defn::get_compile_instance method. */
-
-extern std::unique_ptr<compile_instance> cplus_get_compile_context ();
-
-/* This takes the user-supplied text and returns a new bit of code to
- compile.
-
- This is used as the compute_program language method; see that
- for a description of the arguments. */
-
-extern std::string c_compute_program (compile_instance *inst,
- const char *input,
- struct gdbarch *gdbarch,
- const struct block *expr_block,
- CORE_ADDR expr_pc);
-
-/* This takes the user-supplied text and returns a new bit of code to compile.
-
- This is used as the compute_program language method; see that
- for a description of the arguments. */
-
-extern std::string cplus_compute_program (compile_instance *inst,
- const char *input,
- struct gdbarch *gdbarch,
- const struct block *expr_block,
- CORE_ADDR expr_pc);
-
/* Return the canonical form of the C symbol NAME. If NAME is already
canonical, return nullptr. */
diff --git a/gdb/c-support.h b/gdb/c-support.h
index 30858d1..47f4066 100644
--- a/gdb/c-support.h
+++ b/gdb/c-support.h
@@ -1,5 +1,5 @@
/* Helper routines for C support in GDB.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/c-typeprint.c b/gdb/c-typeprint.c
index 64a3808..df7bdbe 100644
--- a/gdb/c-typeprint.c
+++ b/gdb/c-typeprint.c
@@ -1,5 +1,5 @@
/* Support for printing C and C++ types for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/c-valprint.c b/gdb/c-valprint.c
index bad9490..1a51fed 100644
--- a/gdb/c-valprint.c
+++ b/gdb/c-valprint.c
@@ -1,6 +1,6 @@
/* Support for printing C values for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/c-varobj.c b/gdb/c-varobj.c
index 4751f0a..df407b1 100644
--- a/gdb/c-varobj.c
+++ b/gdb/c-varobj.c
@@ -1,6 +1,6 @@
/* varobj support for C and C++.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/cgen-remap.h b/gdb/cgen-remap.h
index 30b8457..172c485 100644
--- a/gdb/cgen-remap.h
+++ b/gdb/cgen-remap.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/charset-list.h b/gdb/charset-list.h
index 9da3da2..2119e23 100644
--- a/gdb/charset-list.h
+++ b/gdb/charset-list.h
@@ -1,6 +1,6 @@
/* List of character set names for GDB.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/charset.c b/gdb/charset.c
index f1f66bb..3e37ec9 100644
--- a/gdb/charset.c
+++ b/gdb/charset.c
@@ -1,6 +1,6 @@
/* Character set conversion support for GDB.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/charset.h b/gdb/charset.h
index c4e0de5..a0f109d 100644
--- a/gdb/charset.h
+++ b/gdb/charset.h
@@ -1,5 +1,5 @@
/* Character set conversion support for GDB.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/check-include-guards.py b/gdb/check-include-guards.py
index 1673ab1..366ae00 100755
--- a/gdb/check-include-guards.py
+++ b/gdb/check-include-guards.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
@@ -99,12 +99,14 @@ def check_header(filename: str):
failure(filename, i, "no header guard")
force_rewrite = True
symbol = m.group(1)
- updated = False
+ # Either None or a tuple like (LINE, TEXT) that describes a needed
+ # update.
+ updated = None
if symbol != expected:
force_rewrite = True
if force_rewrite:
contents[i] = "#ifndef " + expected + "\n"
- updated = True
+ updated = (i, "wrong symbol in ifndef")
i += 1
if i == len(contents):
failure(filename, i, "premature EOF")
@@ -112,15 +114,20 @@ def check_header(filename: str):
failure(filename, i, "no define of header guard")
if contents[i] != "#define " + expected + "\n":
contents[i] = "#define " + expected + "\n"
- updated = True
+ if updated is None:
+ updated = (i, "wrong symbol in define")
i = len(contents) - 1
if not contents[i].startswith("#endif"):
failure(filename, i, "no trailing endif")
if contents[i] != "#endif /* " + expected + " */\n":
contents[i] = "#endif /* " + expected + " */\n"
- updated = True
- if updated and write_files:
- write_header(filename, contents)
+ if updated is None:
+ updated = (i, "wrong endif line")
+ if updated is not None:
+ if write_files:
+ write_header(filename, contents)
+ else:
+ failure(filename, *updated)
for filename in args:
diff --git a/gdb/cli-out.c b/gdb/cli-out.c
index afa73eb..27a82f6 100644
--- a/gdb/cli-out.c
+++ b/gdb/cli-out.c
@@ -1,6 +1,6 @@
/* Output generating routines for GDB CLI.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
Written by Fernando Nasser for Cygnus.
diff --git a/gdb/cli-out.h b/gdb/cli-out.h
index bdbf990..c761dac 100644
--- a/gdb/cli-out.h
+++ b/gdb/cli-out.h
@@ -1,5 +1,5 @@
/* Output generating routines for GDB CLI.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of GDB.
diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c
index 923b67b2..d812c49 100644
--- a/gdb/cli/cli-cmds.c
+++ b/gdb/cli/cli-cmds.c
@@ -1,6 +1,6 @@
/* GDB CLI commands.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -833,7 +833,7 @@ echo_command (const char *text, int from_tty)
gdb_printf ("%c", c);
}
- gdb_stdout->reset_style ();
+ gdb_stdout->emit_style_escape (ui_file_style ());
/* Force this output to appear now. */
gdb_flush (gdb_stdout);
@@ -952,6 +952,21 @@ shell_command (const char *arg, int from_tty)
shell_escape (arg, from_tty);
}
+/* Completion for the shell command. Currently, this just uses filename
+ completion, but we could, potentially, complete command names from $PATH
+ for the first word, which would make this even more shell like. */
+
+static void
+shell_command_completer (struct cmd_list_element *ignore,
+ completion_tracker &tracker,
+ const char *text, const char * /* word */)
+{
+ tracker.set_use_custom_word_point (true);
+ const char *word
+ = advance_to_filename_maybe_quoted_complete_word_point (tracker, text);
+ filename_maybe_quoted_completer (ignore, tracker, text, word);
+}
+
static void
edit_command (const char *arg, int from_tty)
{
@@ -2803,7 +2818,7 @@ the previous command number shown."),
= add_com ("shell", class_support, shell_command, _("\
Execute the rest of the line as a shell command.\n\
With no arguments, run an inferior shell."));
- set_cmd_completer (shell_cmd, deprecated_filename_completer);
+ set_cmd_completer_handle_brkchars (shell_cmd, shell_command_completer);
add_com_alias ("!", shell_cmd, class_support, 0);
diff --git a/gdb/cli/cli-cmds.h b/gdb/cli/cli-cmds.h
index 6719ad7..33d13fb 100644
--- a/gdb/cli/cli-cmds.h
+++ b/gdb/cli/cli-cmds.h
@@ -1,5 +1,5 @@
/* Header file for GDB CLI command implementation library.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c
index c5eab2f..48a3466 100644
--- a/gdb/cli/cli-decode.c
+++ b/gdb/cli/cli-decode.c
@@ -1,6 +1,6 @@
/* Handle lists of commands, their decoding and documentation, for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -2041,40 +2041,28 @@ void
print_doc_line (struct ui_file *stream, const char *str,
bool for_value_prefix)
{
- static char *line_buffer = 0;
- static int line_size;
- const char *p;
+ const char *p = strchr (str, '\n');
- if (!line_buffer)
- {
- line_size = 80;
- line_buffer = (char *) xmalloc (line_size);
- }
+ /* Only copy the input string if we really need to. */
+ std::optional<std::string> line_buffer;
+ if (p != nullptr)
+ line_buffer = std::string (str, p);
+ else if (for_value_prefix)
+ line_buffer = str;
- /* Searches for the first end of line or the end of STR. */
- p = str;
- while (*p && *p != '\n')
- p++;
- if (p - str > line_size - 1)
- {
- line_size = p - str + 1;
- xfree (line_buffer);
- line_buffer = (char *) xmalloc (line_size);
- }
- strncpy (line_buffer, str, p - str);
if (for_value_prefix)
{
- if (islower (line_buffer[0]))
- line_buffer[0] = toupper (line_buffer[0]);
- gdb_assert (p > str);
- if (line_buffer[p - str - 1] == '.')
- line_buffer[p - str - 1] = '\0';
- else
- line_buffer[p - str] = '\0';
+ char &c = (*line_buffer)[0];
+ if (islower (c))
+ c = toupper (c);
+ if (line_buffer->back () == '.')
+ line_buffer->pop_back ();
}
- else
- line_buffer[p - str] = '\0';
- gdb_puts (line_buffer, stream);
+
+ gdb_puts (line_buffer.has_value ()
+ ? line_buffer->c_str ()
+ : str,
+ stream);
}
/* Print one-line help for command C.
@@ -2452,7 +2440,7 @@ lookup_cmd (const char **line, struct cmd_list_element *list,
}
else if (c == CMD_LIST_AMBIGUOUS)
{
- /* Ambigous. Local values should be off subcommands or called
+ /* Ambiguous. Local values should be off subcommands or called
values. */
int local_allow_unknown = (last_list ? last_list->allow_unknown :
allow_unknown);
@@ -2912,14 +2900,20 @@ parse_cli_var_color (const char **args)
if (len != 7)
error_no_arg (_("invalid RGB hex triplet format"));
+ uint32_t rgb;
uint8_t r, g, b;
int scanned_chars = 0;
- int parsed_args = sscanf (*args, "#%2" SCNx8 "%2" SCNx8 "%2" SCNx8 "%n",
- &r, &g, &b, &scanned_chars);
+ int parsed_args = sscanf (*args, "#%6" SCNx32 "%n",
+ &rgb, &scanned_chars);
- if (parsed_args != 3 || scanned_chars != 7)
+ if (parsed_args != 1 || scanned_chars != 7)
error_no_arg (_("invalid RGB hex triplet format"));
+ gdb_assert ((rgb >> 24) == 0);
+ r = (rgb >> 16) & 0xff;
+ g = (rgb >> 8) & 0xff;
+ b = rgb & 0xff;
+
*args += len;
return ui_file_style::color (r, g, b);
}
diff --git a/gdb/cli/cli-decode.h b/gdb/cli/cli-decode.h
index 85bd474..9be446f 100644
--- a/gdb/cli/cli-decode.h
+++ b/gdb/cli/cli-decode.h
@@ -1,6 +1,6 @@
/* Header file for GDB command decoding library.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -62,6 +62,8 @@ struct cmd_list_element
type (not_set_cmd),
doc (doc_)
{
+ gdb_assert (name != nullptr);
+ gdb_assert (doc != nullptr);
memset (&function, 0, sizeof (function));
}
diff --git a/gdb/cli/cli-dump.c b/gdb/cli/cli-dump.c
index 2b9307e..3055734 100644
--- a/gdb/cli/cli-dump.c
+++ b/gdb/cli/cli-dump.c
@@ -1,6 +1,6 @@
/* Dump-to-file commands, for GDB, the GNU debugger.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
@@ -397,7 +397,7 @@ restore_one_section (bfd *ibfd, asection *isec,
if (sec_end <= load_start
|| (load_end > 0 && sec_start >= load_end))
{
- /* No, no useable data in this section. */
+ /* No, no usable data in this section. */
gdb_printf (_("skipping section %s...\n"),
bfd_section_name (isec));
return;
diff --git a/gdb/cli/cli-interp.c b/gdb/cli/cli-interp.c
index dbe2ed1..32ba9d9 100644
--- a/gdb/cli/cli-interp.c
+++ b/gdb/cli/cli-interp.c
@@ -1,6 +1,6 @@
/* CLI Definitions for GDB, the GNU debugger.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/cli/cli-interp.h b/gdb/cli/cli-interp.h
index ed3d904..8f41725 100644
--- a/gdb/cli/cli-interp.h
+++ b/gdb/cli/cli-interp.h
@@ -1,6 +1,6 @@
/* CLI Definitions for GDB, the GNU debugger.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/cli/cli-logging.c b/gdb/cli/cli-logging.c
index 2c54cea..d225533 100644
--- a/gdb/cli/cli-logging.c
+++ b/gdb/cli/cli-logging.c
@@ -1,6 +1,6 @@
/* Command-line output logging for GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/cli/cli-option.c b/gdb/cli/cli-option.c
index 34ac164..a30261e 100644
--- a/gdb/cli/cli-option.c
+++ b/gdb/cli/cli-option.c
@@ -1,6 +1,6 @@
/* CLI options framework, for GDB.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/cli/cli-option.h b/gdb/cli/cli-option.h
index ac614c3..6a56d5a 100644
--- a/gdb/cli/cli-option.h
+++ b/gdb/cli/cli-option.h
@@ -1,6 +1,6 @@
/* CLI options framework, for GDB.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -340,7 +340,7 @@ struct color_option_def : option_def
const char *set_doc_,
const char *show_doc_ = nullptr,
const char *help_doc_ = nullptr)
- : option_def (long_option_, var_color,
+ : option_def (long_option_, var_color, nullptr,
(erased_get_var_address_ftype *) get_var_address_cb_,
show_cmd_cb_,
set_doc_, show_doc_, help_doc_)
diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c
index 9131768..bdbf850 100644
--- a/gdb/cli/cli-script.c
+++ b/gdb/cli/cli-script.c
@@ -1,6 +1,6 @@
/* GDB CLI command scripting.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -422,14 +422,14 @@ execute_control_commands (struct command_line *cmdlines, int from_tty)
std::string
execute_control_commands_to_string (struct command_line *commands,
- int from_tty)
+ int from_tty, bool term_out)
{
std::string result;
execute_fn_to_string (result, [&] ()
{
execute_control_commands (commands, from_tty);
- }, false);
+ }, term_out);
return result;
}
@@ -660,9 +660,13 @@ execute_control_command_1 (struct command_line *cmd, int from_tty)
}
case compile_control:
+#if defined(HAVE_COMPILE)
eval_compile_command (cmd, NULL, cmd->control_u.compile.scope,
cmd->control_u.compile.scope_data);
ret = simple_control;
+#else
+ error (_("compile support has not been compiled into gdb"));
+#endif
break;
case define_control:
@@ -1621,6 +1625,65 @@ define_prefix_command (const char *comname, int from_tty)
c->allow_unknown = c->user_commands.get () != nullptr;
}
+/* See cli/cli-script.h. */
+
+bool
+commands_equal (const command_line *a, const command_line *b)
+{
+ if ((a == nullptr) != (b == nullptr))
+ return false;
+
+ while (a != nullptr)
+ {
+ /* We are either at the end of both command lists, or there's
+ another command in both lists. */
+ if ((a->next == nullptr) != (b->next == nullptr))
+ return false;
+
+ /* There's a command line for both, or neither. */
+ if ((a->line == nullptr) != (b->line == nullptr))
+ return false;
+
+ /* Check control_type matches. */
+ if (a->control_type != b->control_type)
+ return false;
+
+ if (a->control_type == compile_control)
+ {
+ if (a->control_u.compile.scope != b->control_u.compile.scope)
+ return false;
+
+ /* This is where we "fail safe". The scope_data is a 'void *'
+ pointer which changes in meaning based on the value of
+ 'scope'. It is possible that two different 'void *' pointers
+ could point to the equal scope data, however, we just assume
+ that if the pointers are different, then the scope_data is
+ different. This could be improved in the future. */
+ if (a->control_u.compile.scope_data
+ != b->control_u.compile.scope_data)
+ return false;
+ }
+
+ /* Check lines are identical. */
+ if (a->line != nullptr && strcmp (a->line, b->line) != 0)
+ return false;
+
+ /* Check body_list_0. */
+ if (!commands_equal (a->body_list_0.get (), b->body_list_0.get ()))
+ return false;
+
+ /* Check body_list_1. */
+ if (!commands_equal (a->body_list_1.get (), b->body_list_1.get ()))
+ return false;
+
+ /* Move to the next element in each chain. */
+ a = a->next;
+ b = b->next;
+ }
+
+ return true;
+}
+
/* Used to implement source_command. */
diff --git a/gdb/cli/cli-script.h b/gdb/cli/cli-script.h
index 23bd83e..1ce0754 100644
--- a/gdb/cli/cli-script.h
+++ b/gdb/cli/cli-script.h
@@ -1,5 +1,5 @@
/* Header file for GDB CLI command implementation library.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -143,10 +143,12 @@ extern void execute_control_commands (struct command_line *cmdlines,
/* Run execute_control_commands for COMMANDS. Capture its output into
the returned string, do not display it to the screen. BATCH_FLAG
- will be temporarily set to true. */
+ will be temporarily set to true. When TERM_OUT is true the output is
+ collected with terminal behavior (e.g. with styling). When TERM_OUT is
+ false raw output will be collected (e.g. no styling). */
extern std::string execute_control_commands_to_string
- (struct command_line *commands, int from_tty);
+ (struct command_line *commands, int from_tty, bool term_out);
/* Exported to gdb/breakpoint.c */
@@ -182,4 +184,14 @@ extern void print_command_trace (const char *cmd, ...)
extern void reset_command_nest_depth (void);
+/* Return true if A and B are identical. Some commands carry around a
+ 'void *' compilation context, in this case this function doesn't try to
+ validate if the context is actually the same or not, and will just
+ return false indicating the commands have changed. That is, a return
+ value of true is a guarantee that the commands are equal, a return
+ value of false means the commands are possibly different (and in most
+ cases are different). */
+
+extern bool commands_equal (const command_line *a, const command_line *b);
+
#endif /* GDB_CLI_CLI_SCRIPT_H */
diff --git a/gdb/cli/cli-setshow.c b/gdb/cli/cli-setshow.c
index b438e98..4d4695f 100644
--- a/gdb/cli/cli-setshow.c
+++ b/gdb/cli/cli-setshow.c
@@ -1,6 +1,6 @@
/* Handle set and show GDB commands.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/cli/cli-setshow.h b/gdb/cli/cli-setshow.h
index 9eac86f..886f89f 100644
--- a/gdb/cli/cli-setshow.h
+++ b/gdb/cli/cli-setshow.h
@@ -1,5 +1,5 @@
/* Header file for GDB CLI set and show commands implementation.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/cli/cli-style.c b/gdb/cli/cli-style.c
index 4151082..e644127 100644
--- a/gdb/cli/cli-style.c
+++ b/gdb/cli/cli-style.c
@@ -1,6 +1,6 @@
/* CLI colorizing
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -23,13 +23,14 @@
#include "cli/cli-style.h"
#include "source-cache.h"
#include "observable.h"
+#include "charset.h"
/* True if styling is enabled. */
#if defined (__MSDOS__)
-bool cli_styling = false;
+static bool cli_styling = false;
#else
-bool cli_styling = true;
+static bool cli_styling = true;
#endif
/* True if source styling is enabled. Note that this is only
@@ -42,6 +43,10 @@ bool source_styling = true;
bool disassembler_styling = true;
+/* User-settable variable controlling emoji output. */
+
+static auto_boolean emoji_styling = AUTO_BOOLEAN_AUTO;
+
/* Names of intensities; must correspond to
ui_file_style::intensity. */
static const char * const cli_intensities[] = {
@@ -51,6 +56,81 @@ static const char * const cli_intensities[] = {
nullptr
};
+/* When true styling is being temporarily suppressed. */
+
+static bool scoped_disable_styling_p = false;
+
+/* See cli/cli-style.h. */
+
+scoped_disable_styling::scoped_disable_styling ()
+{
+ m_old_value = scoped_disable_styling_p;
+ scoped_disable_styling_p = true;
+}
+
+/* See cli/cli-style.h. */
+
+scoped_disable_styling::~scoped_disable_styling ()
+{
+ scoped_disable_styling_p = m_old_value;
+}
+
+/* Return true if GDB's output terminal should support styling, otherwise,
+ return false. This function really checks for things that indicate
+ styling might not be supported, so a return value of false indicates
+ we've seen something to indicate we should not perform styling. A
+ return value of true is the default. */
+
+static bool
+terminal_supports_styling ()
+{
+ const char *term = getenv ("TERM");
+
+ /* Windows doesn't by default define $TERM, but can support styles
+ regardless. */
+#ifndef _WIN32
+ if (term == nullptr || strcmp (term, "dumb") == 0)
+ return false;
+#else
+ /* But if they do define $TERM, let us behave the same as on Posix
+ platforms, for the benefit of programs which invoke GDB as their
+ back-end. */
+ if (term != nullptr && strcmp (term, "dumb") == 0)
+ return false;
+#endif
+
+ return true;
+}
+
+/* See cli/cli-style.h. */
+
+void
+disable_cli_styling ()
+{
+ cli_styling = false;
+}
+
+/* See cli/cli-style.h. */
+
+bool
+term_cli_styling ()
+{
+ return cli_styling && !scoped_disable_styling_p;
+}
+
+/* See cli/cli-style.h. */
+
+void
+disable_styling_from_environment ()
+{
+ const char *no_color = getenv ("NO_COLOR");
+ if (no_color != nullptr && *no_color != '\0')
+ cli_styling = false;
+
+ if (!terminal_supports_styling ())
+ cli_styling = false;
+}
+
/* See cli-style.h. */
cli_style_option file_name_style ("filename", ui_file_style::GREEN);
@@ -286,7 +366,20 @@ static cmd_list_element *style_disasm_show_list;
static void
set_style_enabled (const char *args, int from_tty, struct cmd_list_element *c)
{
- g_source_cache.clear ();
+ /* This finds the 'set style enabled' command. */
+ struct cmd_list_element *set_style_enabled_cmd
+ = lookup_cmd_exact ("enabled", style_set_list);
+
+ /* If the user does 'set style enabled on', but the terminal doesn't
+ appear to support styling, then warn the user. */
+ if (c == set_style_enabled_cmd && cli_styling
+ && !terminal_supports_styling ())
+ warning ("The current terminal doesn't support styling. Styled output "
+ "might not appear as expected.");
+
+ /* It is not necessary to flush the source cache here. The source cache
+ tracks whether entries are styled or not. */
+
gdb::observers::styling_changed.notify ();
}
@@ -322,6 +415,85 @@ show_style_disassembler (struct ui_file *file, int from_tty,
gdb_printf (file, _("Disassembler output styling is disabled.\n"));
}
+/* Implement 'show style emoji'. */
+
+static void
+show_emoji_styling (struct ui_file *file, int from_tty,
+ struct cmd_list_element *c, const char *value)
+{
+ if (emoji_styling == AUTO_BOOLEAN_TRUE)
+ gdb_printf (file, _("CLI emoji styling is enabled.\n"));
+ else if (emoji_styling == AUTO_BOOLEAN_FALSE)
+ gdb_printf (file, _("CLI emoji styling is disabled.\n"));
+ else
+ gdb_printf (file, _("CLI emoji styling is automatic (currently %s).\n"),
+ emojis_ok () ? _("enabled") : _("disabled"));
+}
+
+/* See cli-style.h. */
+
+bool
+emojis_ok ()
+{
+ if (!cli_styling || emoji_styling == AUTO_BOOLEAN_FALSE)
+ return false;
+ if (emoji_styling == AUTO_BOOLEAN_TRUE)
+ return true;
+ return strcmp (host_charset (), "UTF-8") == 0;
+}
+
+/* See cli-style.h. */
+
+void
+no_emojis ()
+{
+ emoji_styling = AUTO_BOOLEAN_FALSE;
+}
+
+/* Emoji warning prefix. */
+static std::string warning_prefix = "âš ï¸ ";
+
+/* Implement 'show style warning-prefix'. */
+
+static void
+show_warning_prefix (struct ui_file *file, int from_tty,
+ struct cmd_list_element *c, const char *value)
+{
+ gdb_printf (file, _("Warning prefix is \"%s\".\n"),
+ warning_prefix.c_str ());
+}
+
+/* See cli-style.h. */
+
+void
+print_warning_prefix (ui_file *file)
+{
+ if (emojis_ok ())
+ gdb_puts (warning_prefix.c_str (), file);
+}
+
+/* Emoji error prefix. */
+static std::string error_prefix = "âŒï¸ ";
+
+/* Implement 'show style error-prefix'. */
+
+static void
+show_error_prefix (struct ui_file *file, int from_tty,
+ struct cmd_list_element *c, const char *value)
+{
+ gdb_printf (file, _("Error prefix is \"%s\".\n"),
+ error_prefix.c_str ());
+}
+
+/* See cli-style.h. */
+
+void
+print_error_prefix (ui_file *file)
+{
+ if (emojis_ok ())
+ gdb_puts (error_prefix.c_str (), file);
+}
+
void _initialize_cli_style ();
void
_initialize_cli_style ()
@@ -343,6 +515,13 @@ If enabled, output to the terminal is styled."),
set_style_enabled, show_style_enabled,
&style_set_list, &style_show_list);
+ add_setshow_auto_boolean_cmd ("emoji", no_class, &emoji_styling, _("\
+Set whether emoji output is enabled."), _("\
+Show whether emoji output is enabled."), _("\
+If enabled, emojis may be displayed."),
+ nullptr, show_emoji_styling,
+ &style_set_list, &style_show_list);
+
add_setshow_boolean_cmd ("sources", no_class, &source_styling, _("\
Set whether source code styling is enabled."), _("\
Show whether source code styling is enabled."), _("\
@@ -371,9 +550,17 @@ Configure various disassembler style-related variables."),
add_setshow_boolean_cmd ("enabled", no_class, &disassembler_styling, _("\
Set whether disassembler output styling is enabled."), _("\
Show whether disassembler output styling is enabled."), _("\
-If enabled, disassembler output is styled. Disassembler highlighting\n\
-requires the Python Pygments library, if this library is not available\n\
-then disassembler highlighting will not be possible."
+If enabled, disassembler output is styled.\n\
+\n\
+Disassembler styling requires a library that is able to style the current\n\
+instruction architecture. By default, GDB will use its builtin library\n\
+for disassembler styling, but this cannot style every architecture.\n\
+\n\
+For architectures that cannot be styled by the builtin disassembler library\n\
+GDB will use the Python Pygments library, if this library is available.\n\
+\n\
+If neither option is able to style the current architecture, then\n\
+disassembler output will be unstyled, even when this option is enabled."
), set_style_enabled, show_style_disassembler,
&style_disasm_set_list, &style_disasm_show_list);
@@ -531,4 +718,23 @@ coming from your source code."),
&style_disasm_set_list);
add_alias_cmd ("symbol", function_prefix_cmds.show, no_class, 0,
&style_disasm_show_list);
+
+ add_setshow_string_cmd ("warning-prefix", no_class,
+ &warning_prefix,
+ _("Set the warning prefix text."),
+ _("Show the warning prefix text."),
+ _("\
+The warning prefix text is displayed before any warning, when\n\
+emoji output is enabled."),
+ nullptr, show_warning_prefix,
+ &style_set_list, &style_show_list);
+ add_setshow_string_cmd ("error-prefix", no_class,
+ &error_prefix,
+ _("Set the error prefix text."),
+ _("Show the error prefix text."),
+ _("\
+The error prefix text is displayed before any error, when\n\
+emoji output is enabled."),
+ nullptr, show_error_prefix,
+ &style_set_list, &style_show_list);
}
diff --git a/gdb/cli/cli-style.h b/gdb/cli/cli-style.h
index a1e538b..b1a950a 100644
--- a/gdb/cli/cli-style.h
+++ b/gdb/cli/cli-style.h
@@ -1,6 +1,6 @@
/* CLI stylizing
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -157,7 +157,51 @@ extern bool source_styling;
/* True if disassembler styling is enabled. */
extern bool disassembler_styling;
-/* True if styling is enabled. */
-extern bool cli_styling;
+/* Check for environment variables that indicate styling should start as
+ disabled. If any are found then disable styling. Styling is never
+ enabled by this call. If styling was already disabled then it remains
+ disabled after this call. */
+extern void disable_styling_from_environment ();
+
+/* Equivalent to 'set style enabled off'. Can be used during GDB's start
+ up if a command line option, or environment variable, indicates that
+ styling should be turned off. */
+extern void disable_cli_styling ();
+
+/* Return true styled output is currently enabled. */
+extern bool term_cli_styling ();
+
+/* Allow styling to be temporarily suppressed without changing the value of
+ 'set style enabled' user setting. This is useful in, for example, the
+ Python gdb.execute() call which can produce unstyled output. */
+struct scoped_disable_styling
+{
+ /* Temporarily suppress styling without changing the value of 'set
+ style enabled' user setting. */
+ scoped_disable_styling ();
+
+ /* If the constructor started suppressing styling, then styling is
+ resumed after this destructor call. */
+ ~scoped_disable_styling ();
+
+private:
+
+ /* The value to restore in the destructor. */
+ bool m_old_value;
+};
+
+/* Return true if emoji styling is allowed. */
+extern bool emojis_ok ();
+
+/* Disable emoji styling. This is here so that Windows can disable
+ emoji when the console is in use. It shouldn't be called
+ elsewhere. */
+extern void no_emojis ();
+
+/* Print the warning prefix, if desired. */
+extern void print_warning_prefix (ui_file *file);
+
+/* Print the error prefix, if desired. */
+extern void print_error_prefix (ui_file *file);
#endif /* GDB_CLI_CLI_STYLE_H */
diff --git a/gdb/cli/cli-utils.c b/gdb/cli/cli-utils.c
index 152fee9..23706e0 100644
--- a/gdb/cli/cli-utils.c
+++ b/gdb/cli/cli-utils.c
@@ -1,6 +1,6 @@
/* CLI utilities.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/cli/cli-utils.h b/gdb/cli/cli-utils.h
index e11430e..f9b0123 100644
--- a/gdb/cli/cli-utils.h
+++ b/gdb/cli/cli-utils.h
@@ -1,6 +1,6 @@
/* CLI utilities.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -82,7 +82,7 @@ public:
/* STRING is the string to be parsed. */
void init (const char *string);
- /* While processing a range, this fuction is called iteratively; At
+ /* While processing a range, this function is called iteratively; At
each call it will return the next value in the range.
At the beginning of parsing a range, the char pointer
diff --git a/gdb/coff-pe-read.c b/gdb/coff-pe-read.c
index bb85b00..3a3611e 100644
--- a/gdb/coff-pe-read.c
+++ b/gdb/coff-pe-read.c
@@ -2,7 +2,7 @@
convert to internal format, for GDB. Used as a last resort if no
debugging symbols recognized.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/coff-pe-read.h b/gdb/coff-pe-read.h
index c151046..faaece3 100644
--- a/gdb/coff-pe-read.h
+++ b/gdb/coff-pe-read.h
@@ -1,6 +1,6 @@
/* Interface to coff-pe-read.c (portable-executable-specific symbol reader).
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/coffread.c b/gdb/coffread.c
index abe150d..8a87e9c 100644
--- a/gdb/coffread.c
+++ b/gdb/coffread.c
@@ -1,5 +1,5 @@
/* Read coff symbol tables and convert to internal format, for GDB.
- Copyright (C) 1987-2024 Free Software Foundation, Inc.
+ Copyright (C) 1987-2025 Free Software Foundation, Inc.
Contributed by David D. Johnson, Brown University (ddj@cs.brown.edu).
This file is part of GDB.
@@ -234,6 +234,7 @@ coffstab_build_psymtabs (struct objfile *objfile,
const char *name = bfd_get_filename (sym_bfd);
unsigned int stabsize;
+ stabs_deprecated_warning ();
/* Allocate struct to keep track of stab reading. */
dbx_objfile_data_key.emplace (objfile);
dbx_symfile_info *key = dbx_objfile_data_key.get (objfile);
@@ -902,7 +903,7 @@ coff_symtab_read (minimal_symbol_reader &reader,
symnum = 0;
while (symnum < nsyms)
{
- QUIT; /* Make this command interruptable. */
+ QUIT; /* Make this command interruptible. */
read_one_sym (cs, &main_sym, &main_aux);
diff --git a/gdb/command.h b/gdb/command.h
index 37c7ddf..f8a0212 100644
--- a/gdb/command.h
+++ b/gdb/command.h
@@ -1,6 +1,6 @@
/* Header file for command creation.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -558,7 +558,7 @@ extern struct cmd_list_element *lookup_cmd (const char **,
the section of text it matched, set *RESULT_LIST to point to the list in
which the last word was matched, and will return a pointer to the cmd
list element which the text matches. It will return NULL if no match at
- all was possible. It will return -1 (cast appropriately, ick) if ambigous
+ all was possible. It will return -1 (cast appropriately, ick) if ambiguous
matches are possible; in this case *RESULT_LIST will be set to point to
the list in which there are ambiguous choices (and *TEXT will be set to
the ambiguous text string).
diff --git a/gdb/compile/compile-c-support.c b/gdb/compile/compile-c-support.c
index a152e5a..ac8888f 100644
--- a/gdb/compile/compile-c-support.c
+++ b/gdb/compile/compile-c-support.c
@@ -1,6 +1,6 @@
/* C/C++ language support for compilation.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -185,18 +185,18 @@ static void
write_macro_definitions (const struct block *block, CORE_ADDR pc,
struct ui_file *file)
{
- gdb::unique_xmalloc_ptr<struct macro_scope> scope;
+ macro_scope scope;
if (block != NULL)
scope = sal_macro_scope (find_pc_line (pc, 0));
else
scope = default_macro_scope ();
- if (scope == NULL)
+ if (!scope.is_valid ())
scope = user_macro_scope ();
- if (scope != NULL && scope->file != NULL && scope->file->table != NULL)
+ if (scope.is_valid () && scope.file->table != nullptr)
{
- macro_for_each_in_scope (scope->file, scope->line,
+ macro_for_each_in_scope (scope.file, scope.line,
[&] (const char *name,
const macro_definition *macro,
macro_source_file *source,
diff --git a/gdb/compile/compile-c-symbols.c b/gdb/compile/compile-c-symbols.c
index 7070e5e..b31592f 100644
--- a/gdb/compile/compile-c-symbols.c
+++ b/gdb/compile/compile-c-symbols.c
@@ -1,6 +1,6 @@
/* Convert symbols from GDB to GCC
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/compile/compile-c-types.c b/gdb/compile/compile-c-types.c
index 6407f12..bf1fea5 100644
--- a/gdb/compile/compile-c-types.c
+++ b/gdb/compile/compile-c-types.c
@@ -1,6 +1,6 @@
/* Convert types from GDB to GCC
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/compile/compile-c.h b/gdb/compile/compile-c.h
index b77b7aa..1a6b056 100644
--- a/gdb/compile/compile-c.h
+++ b/gdb/compile/compile-c.h
@@ -1,5 +1,5 @@
/* Header file for GDB compile C-language support.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/compile/compile-cplus-symbols.c b/gdb/compile/compile-cplus-symbols.c
index 6c482e7..b03c4b9 100644
--- a/gdb/compile/compile-cplus-symbols.c
+++ b/gdb/compile/compile-cplus-symbols.c
@@ -1,6 +1,6 @@
/* Convert symbols from GDB to GCC
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/compile/compile-cplus-types.c b/gdb/compile/compile-cplus-types.c
index 8d14114..56ef033 100644
--- a/gdb/compile/compile-cplus-types.c
+++ b/gdb/compile/compile-cplus-types.c
@@ -1,6 +1,6 @@
/* Convert types from GDB to GCC
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/compile/compile-cplus.h b/gdb/compile/compile-cplus.h
index d3b2d3e..d08feea 100644
--- a/gdb/compile/compile-cplus.h
+++ b/gdb/compile/compile-cplus.h
@@ -1,5 +1,5 @@
/* Header file for GDB compile C++ language support.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/compile/compile-internal.h b/gdb/compile/compile-internal.h
index f4cc9ee..46a8ac2 100644
--- a/gdb/compile/compile-internal.h
+++ b/gdb/compile/compile-internal.h
@@ -1,5 +1,5 @@
/* Header file for GDB compile command and supporting functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -80,4 +80,43 @@ private:
std::string m_object_file;
};
+struct compile_instance;
+
+/* Create a new instance of the C compiler and return it. This
+ function never returns NULL, but rather throws an exception on
+ failure. This is suitable for use as the
+ language_defn::get_compile_instance method. */
+
+extern std::unique_ptr<compile_instance> c_get_compile_context ();
+
+/* Create a new instance of the C++ compiler and return it. This
+ function never returns NULL, but rather throws an exception on
+ failure. This is suitable for use as the
+ language_defn::get_compile_instance method. */
+
+extern std::unique_ptr<compile_instance> cplus_get_compile_context ();
+
+/* This takes the user-supplied text and returns a new bit of code to
+ compile.
+
+ This is used as the compute_program language method; see that
+ for a description of the arguments. */
+
+extern std::string c_compute_program (compile_instance *inst,
+ const char *input,
+ struct gdbarch *gdbarch,
+ const struct block *expr_block,
+ CORE_ADDR expr_pc);
+
+/* This takes the user-supplied text and returns a new bit of code to compile.
+
+ This is used as the compute_program language method; see that
+ for a description of the arguments. */
+
+extern std::string cplus_compute_program (compile_instance *inst,
+ const char *input,
+ struct gdbarch *gdbarch,
+ const struct block *expr_block,
+ CORE_ADDR expr_pc);
+
#endif /* GDB_COMPILE_COMPILE_INTERNAL_H */
diff --git a/gdb/compile/compile-loc2c.c b/gdb/compile/compile-loc2c.c
index df05c01..31fd8e2 100644
--- a/gdb/compile/compile-loc2c.c
+++ b/gdb/compile/compile-loc2c.c
@@ -1,6 +1,6 @@
/* Convert a DWARF location expression to C
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -597,7 +597,7 @@ do_compile_dwarf_expr_to_c (int indent, string_file *stream,
unsigned int addr_size,
const gdb_byte *op_ptr, const gdb_byte *op_end,
CORE_ADDR *initial,
- dwarf2_per_cu_data *per_cu,
+ dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile)
{
/* We keep a counter so that labels and other objects we create have
@@ -1147,7 +1147,7 @@ compile_dwarf_expr_to_c (string_file *stream, const char *result_name,
std::vector<bool> &registers_used,
unsigned int addr_size,
const gdb_byte *op_ptr, const gdb_byte *op_end,
- dwarf2_per_cu_data *per_cu,
+ dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile)
{
do_compile_dwarf_expr_to_c (2, stream, GCC_UINTPTR, result_name, sym, pc,
@@ -1166,7 +1166,7 @@ compile_dwarf_bounds_to_c (string_file *stream,
std::vector<bool> &registers_used,
unsigned int addr_size,
const gdb_byte *op_ptr, const gdb_byte *op_end,
- dwarf2_per_cu_data *per_cu,
+ dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile)
{
do_compile_dwarf_expr_to_c (2, stream, "unsigned long ", result_name,
diff --git a/gdb/compile/compile-object-load.c b/gdb/compile/compile-object-load.c
index 8b1556e..49b967a 100644
--- a/gdb/compile/compile-object-load.c
+++ b/gdb/compile/compile-object-load.c
@@ -1,6 +1,6 @@
/* Load module for 'compile' command.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -299,6 +299,7 @@ static const struct bfd_link_callbacks link_callbacks =
link_callbacks_reloc_dangerous, /* reloc_dangerous */
link_callbacks_unattached_reloc, /* unattached_reloc */
NULL, /* notice */
+ NULL, /* fatal */
link_callbacks_einfo, /* einfo */
NULL, /* info */
NULL, /* minfo */
@@ -604,9 +605,7 @@ compile_object_load (const compile_file_names &file_names,
CORE_ADDR regs_addr, out_value_addr = 0;
struct symbol *func_sym;
struct type *func_type;
- long storage_needed;
- asymbol **symbol_table, **symp;
- long number_of_symbols, missing_symbols;
+ long missing_symbols;
struct type *regs_type, *out_value_type = NULL;
char **matching;
struct objfile *objfile;
@@ -634,11 +633,6 @@ compile_object_load (const compile_file_names &file_names,
setup_sections_data.setup_one_section (sect);
setup_sections_data.setup_one_section (nullptr);
- storage_needed = bfd_get_symtab_upper_bound (abfd.get ());
- if (storage_needed < 0)
- error (_("Cannot read symbols of compiled module \"%s\": %s"),
- filename.get (), bfd_errmsg (bfd_get_error ()));
-
/* SYMFILE_VERBOSE is not passed even if FROM_TTY, user is not interested in
"Reading symbols from ..." message for automatically generated file. */
scoped_objfile_unlinker objfile_holder (symbol_file_add_from_bfd
@@ -691,21 +685,12 @@ compile_object_load (const compile_file_names &file_names,
"module \"%s\"."),
GCC_FE_WRAPPER_FUNCTION, objfile_name (objfile));
- /* The memory may be later needed
- by bfd_generic_get_relocated_section_contents
- called from default_symfile_relocate. */
- symbol_table = (asymbol **) obstack_alloc (&objfile->objfile_obstack,
- storage_needed);
- number_of_symbols = bfd_canonicalize_symtab (abfd.get (), symbol_table);
- if (number_of_symbols < 0)
- error (_("Cannot parse symbols of compiled module \"%s\": %s"),
- filename.get (), bfd_errmsg (bfd_get_error ()));
+ gdb::array_view<asymbol *> symbol_table
+ = gdb_bfd_canonicalize_symtab (abfd.get ());
missing_symbols = 0;
- for (symp = symbol_table; symp < symbol_table + number_of_symbols; symp++)
+ for (asymbol *sym : symbol_table)
{
- asymbol *sym = *symp;
-
if (sym->flags != 0)
continue;
sym->flags = BSF_GLOBAL;
@@ -799,7 +784,7 @@ compile_object_load (const compile_file_names &file_names,
if (missing_symbols)
error (_("%ld symbols were missing, cannot continue."), missing_symbols);
- bfd_map_over_sections (abfd.get (), copy_sections, symbol_table);
+ bfd_map_over_sections (abfd.get (), copy_sections, symbol_table.data ());
regs_type = get_regs_type (func_sym, objfile);
if (regs_type == NULL)
diff --git a/gdb/compile/compile-object-load.h b/gdb/compile/compile-object-load.h
index 463aa08..5122764 100644
--- a/gdb/compile/compile-object-load.h
+++ b/gdb/compile/compile-object-load.h
@@ -1,5 +1,5 @@
/* Header file to load module for 'compile' command.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/compile/compile-object-run.c b/gdb/compile/compile-object-run.c
index 8316377..30b45dc 100644
--- a/gdb/compile/compile-object-run.c
+++ b/gdb/compile/compile-object-run.c
@@ -1,6 +1,6 @@
/* Call module for 'compile' command.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/compile/compile-object-run.h b/gdb/compile/compile-object-run.h
index 64b2bd9..7515b70 100644
--- a/gdb/compile/compile-object-run.h
+++ b/gdb/compile/compile-object-run.h
@@ -1,5 +1,5 @@
/* Header file to call module for 'compile' command.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/compile/compile.c b/gdb/compile/compile.c
index d6bcc1f..ab4cb0b 100644
--- a/gdb/compile/compile.c
+++ b/gdb/compile/compile.c
@@ -1,6 +1,6 @@
/* General Compile and inject code
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -46,16 +46,17 @@
#include "gdbsupport/scoped_ignore_signal.h"
#include "gdbsupport/buildargv.h"
+/* Hold "compile" commands. */
+
+static struct cmd_list_element *compile_command_list;
+
+#ifdef HAVE_COMPILE
/* Initial filename for temporary files. */
#define TMP_PREFIX "/tmp/gdbobj-"
-/* Hold "compile" commands. */
-
-static struct cmd_list_element *compile_command_list;
-
/* Debug flag for "compile" commands. */
bool compile_debug;
@@ -527,6 +528,41 @@ print_callback (void *ignore, const char *message)
gdb_puts (message, gdb_stderr);
}
+/* Helper for compile_to_object, to find the compile context
+ based on the current language. */
+static std::unique_ptr<compile_instance>
+get_language_compile_context ()
+{
+ switch (current_language->la_language)
+ {
+ case language_c:
+ return c_get_compile_context ();
+ case language_cplus:
+ return cplus_get_compile_context ();
+ default:
+ return {};
+ }
+}
+
+/* Helper for compile_to_object, to call the correct
+ compute_program based on the current language. */
+static std::string
+compute_program_language (compile_instance *inst, const char *input,
+ struct gdbarch *gdbarch,
+ const struct block *block,
+ CORE_ADDR pc)
+{
+ switch (current_language->la_language)
+ {
+ case language_c:
+ return c_compute_program (inst, input, gdbarch, block, pc);
+ case language_cplus:
+ return cplus_compute_program (inst, input, gdbarch, block, pc);
+ default:
+ gdb_assert_not_reached ("Unsupported language");
+ }
+}
+
/* Process the compilation request. On success it returns the object
and source file names. On an error condition, error () is
called. */
@@ -550,7 +586,8 @@ compile_to_object (struct command_line *cmd, const char *cmd_string,
/* Set up instance and context for the compiler. */
std::unique_ptr<compile_instance> compiler
- = current_language->get_compile_instance ();
+ = get_language_compile_context ();
+
if (compiler == nullptr)
error (_("No compiler support for language %s."),
current_language->name ());
@@ -582,8 +619,8 @@ compile_to_object (struct command_line *cmd, const char *cmd_string,
error (_("Neither a simple expression, or a multi-line specified."));
std::string code
- = current_language->compute_program (compiler.get (), input, gdbarch,
- expr_block, expr_pc);
+ = compute_program_language (compiler.get (), input, gdbarch,
+ expr_block, expr_pc);
if (compile_debug)
gdb_printf (gdb_stdlog, "debug output:\n\n%s", code.c_str ());
@@ -816,6 +853,18 @@ compile_instance::compile (const char *filename, int verbose_level)
#undef FORWARD
+#else /* HAVE_COMPILE */
+
+/* The "compile" prefix command, when support was disabled. */
+
+static void
+compile_command (const char *args, int from_tty)
+{
+ error (_("This command is not supported."));
+}
+
+#endif /* HAVE_COMPILE */
+
/* See compile.h. */
cmd_list_element *compile_cmd_element = nullptr;
@@ -823,14 +872,25 @@ void _initialize_compile ();
void
_initialize_compile ()
{
- struct cmd_list_element *c = NULL;
-
compile_cmd_element = add_prefix_cmd ("compile", class_obscure,
- compile_command, _("\
+ compile_command,
+#ifdef HAVE_COMPILE
+ _("\
Command to compile source code and inject it into the inferior."),
+#else /* HAVE_COMPILE */
+ _("\
+Command to compile source code and inject it into the inferior.\n\
+\n\
+Code compilation and injection is not supported in this copy of GDB.\n\
+This command is only a placeholder."),
+#endif /* HAVE_COMPILE */
&compile_command_list, 1, &cmdlist);
add_com_alias ("expression", compile_cmd_element, class_obscure, 0);
+#ifdef HAVE_COMPILE
+
+ struct cmd_list_element *c = NULL;
+
const auto compile_opts = make_compile_options_def_group (nullptr);
static const std::string compile_code_help
@@ -937,4 +997,5 @@ It should be absolute filename of the gcc executable.\n\
If empty the default target triplet will be searched in $PATH."),
NULL, show_compile_gcc, &setlist,
&showlist);
+#endif /* HAVE_COMPILE */
}
diff --git a/gdb/compile/compile.h b/gdb/compile/compile.h
index 7d03d3c..9308623 100644
--- a/gdb/compile/compile.h
+++ b/gdb/compile/compile.h
@@ -1,6 +1,6 @@
/* Header file for Compile and inject module.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -23,7 +23,7 @@
struct ui_file;
struct gdbarch;
-struct dwarf2_per_cu_data;
+struct dwarf2_per_cu;
struct dwarf2_per_objfile;
struct symbol;
struct dynamic_prop;
@@ -215,7 +215,7 @@ extern void compile_dwarf_expr_to_c (string_file *stream,
unsigned int addr_size,
const gdb_byte *op_ptr,
const gdb_byte *op_end,
- dwarf2_per_cu_data *per_cu,
+ dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile);
/* Compile a DWARF bounds expression to C, suitable for use by the
@@ -254,7 +254,7 @@ extern void compile_dwarf_bounds_to_c (string_file *stream,
unsigned int addr_size,
const gdb_byte *op_ptr,
const gdb_byte *op_end,
- dwarf2_per_cu_data *per_cu,
+ dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile);
extern void compile_print_value (struct value *val, void *data_voidp);
diff --git a/gdb/compile/gcc-c-plugin.h b/gdb/compile/gcc-c-plugin.h
index d12472f..bc6710e 100644
--- a/gdb/compile/gcc-c-plugin.h
+++ b/gdb/compile/gcc-c-plugin.h
@@ -1,6 +1,6 @@
/* GCC C plug-in wrapper for GDB.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/compile/gcc-cp-plugin.h b/gdb/compile/gcc-cp-plugin.h
index 8f36993..d926355 100644
--- a/gdb/compile/gcc-cp-plugin.h
+++ b/gdb/compile/gcc-cp-plugin.h
@@ -1,6 +1,6 @@
/* GCC C++ plug-in wrapper for GDB.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/complaints.c b/gdb/complaints.c
index 07c0f7e..2f58af2 100644
--- a/gdb/complaints.c
+++ b/gdb/complaints.c
@@ -1,6 +1,6 @@
/* Support for complaint handling during symbol reading in GDB.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -23,14 +23,14 @@
#include "run-on-main-thread.h"
#include "top.h"
#include "gdbsupport/selftest.h"
-#include <unordered_map>
+#include "gdbsupport/unordered_map.h"
#if CXX_STD_THREAD
#include <mutex>
#endif
/* Map format strings to counters. */
-static std::unordered_map<const char *, int> counters;
+static gdb::unordered_map<const char *, int> counters;
/* How many complaints about a particular thing should be printed
before we stop whining about it? Default is no whining at all,
@@ -149,7 +149,7 @@ namespace selftests {
static void
test_complaints ()
{
- std::unordered_map<const char *, int> tmp;
+ gdb::unordered_map<const char *, int> tmp;
scoped_restore reset_counters = make_scoped_restore (&counters, tmp);
scoped_restore reset_stop_whining = make_scoped_restore (&stop_whining, 2);
@@ -185,7 +185,7 @@ test_complaints ()
}
-} // namespace selftests
+} /* namespace selftests */
#endif /* GDB_SELF_TEST */
void _initialize_complaints ();
diff --git a/gdb/complaints.h b/gdb/complaints.h
index 3d0e0ba..113cf5e 100644
--- a/gdb/complaints.h
+++ b/gdb/complaints.h
@@ -1,6 +1,6 @@
/* Definitions for complaint handling during symbol reading in GDB.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -21,7 +21,7 @@
#define GDB_COMPLAINTS_H
#include "gdbsupport/scoped_restore.h"
-#include <unordered_set>
+#include "gdbsupport/unordered_set.h"
/* Helper for complaint. */
extern void complaint_internal (const char *fmt, ...)
@@ -59,7 +59,7 @@ extern void clear_complaints ();
/* Type of collected complaints. */
-typedef std::unordered_set<std::string> complaint_collection;
+typedef gdb::unordered_set<std::string> complaint_collection;
/* A class that can handle calls to complaint from multiple threads.
When this is instantiated, it hooks into the complaint mechanism,
diff --git a/gdb/completer.c b/gdb/completer.c
index 4735aa5..658a0c6 100644
--- a/gdb/completer.c
+++ b/gdb/completer.c
@@ -1,5 +1,5 @@
/* Line completion stuff for GDB, the GNU debugger.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -356,7 +356,7 @@ gdb_completer_file_name_quote_1 (const char *text, char quote_char)
if (quote_char == '\'')
{
/* There is no backslash escaping permitted within a single quoted
- string, so in this case we can just return the input sting. */
+ string, so in this case we can just return the input string. */
str = text;
}
else if (quote_char == '"')
diff --git a/gdb/completer.h b/gdb/completer.h
index 07953f1..0912fb2 100644
--- a/gdb/completer.h
+++ b/gdb/completer.h
@@ -1,5 +1,5 @@
/* Header for GDB line completion.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -722,7 +722,7 @@ extern void complete_nested_command_line (completion_tracker &tracker,
This function is designed so that trying to complete '/' will offer no
completions, the user needs to insert the format specification
themselves. Trying to complete '/FMT' (where FMT is any non-empty set
- of alpha-numeric characters) will cause readline to insert a single
+ of alphanumeric characters) will cause readline to insert a single
space, setting the user up to enter the expression. */
extern bool skip_over_slash_fmt (completion_tracker &tracker,
diff --git a/gdb/config.in b/gdb/config.in
index db63aea..149aeaf 100644
--- a/gdb/config.in
+++ b/gdb/config.in
@@ -39,6 +39,9 @@
/* Define to BFD's default target vector. */
#undef DEFAULT_BFD_VEC
+/* defined if dwarf format was requested. */
+#undef DWARF_FORMAT_AVAILABLE
+
/* Handle .ctf type-info sections */
#undef ENABLE_LIBCTF
@@ -93,6 +96,9 @@
/* Define if amd-dbgapi is being linked in. */
#undef HAVE_AMD_DBGAPI
+/* Define to 1 if you have the <asm/termios.h> header file. */
+#undef HAVE_ASM_TERMIOS_H
+
/* Define to 1 if you have the `btowc' function. */
#undef HAVE_BTOWC
@@ -104,6 +110,9 @@
the CoreFoundation framework. */
#undef HAVE_CFPREFERENCESCOPYAPPVALUE
+/* Define if compiling support to gdb compile. */
+#undef HAVE_COMPILE
+
/* Define to 1 if you have the <cursesX.h> header file. */
#undef HAVE_CURSESX_H
@@ -241,6 +250,9 @@
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
+/* Define to 1 if you have the <IOKit/serial/ioss.h> header file. */
+#undef HAVE_IOKIT_SERIAL_IOSS_H
+
/* Define to 1 if you have the `kinfo_getfile' function. */
#undef HAVE_KINFO_GETFILE
@@ -636,6 +648,9 @@
*/
#undef LT_OBJDIR
+/* defined if mdebug format was requested. */
+#undef MDEBUG_FORMAT_AVAILABLE
+
/* Name of this package. */
#undef PACKAGE
@@ -719,9 +734,6 @@
/* The size of `unsigned __int128', as computed by sizeof. */
#undef SIZEOF_UNSIGNED___INT128
-/* The size of `void *', as computed by sizeof. */
-#undef SIZEOF_VOID_P
-
/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at runtime.
diff --git a/gdb/config/djgpp/README b/gdb/config/djgpp/README
index 2ae6535..cecc9d0 100644
--- a/gdb/config/djgpp/README
+++ b/gdb/config/djgpp/README
@@ -175,7 +175,7 @@ SOMETHING.tst (where SOMETHING is the name of the failed test). You
should compare each of the *.tst files with the corresponding *.out
file and convince yourself that the differences do not indicate a real
problem. Examples of differences you can disregard are changes in the
-copyright blurb printed by GDB, values of unitialized variables,
+copyright blurb printed by GDB, values of uninitialized variables,
addresses of global variables like argv[] and envp[] (which depend on
the size of your environment), etc.
diff --git a/gdb/config/djgpp/djcheck.sh b/gdb/config/djgpp/djcheck.sh
index 32c2a8e..f9810ad 100644
--- a/gdb/config/djgpp/djcheck.sh
+++ b/gdb/config/djgpp/djcheck.sh
@@ -2,7 +2,7 @@
# A shell script to run the test suite on the DJGPP version of GDB.
-# Copyright (C) 2000-2024 Free Software Foundation, Inc.
+# Copyright (C) 2000-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/config/djgpp/djconfig.sh b/gdb/config/djgpp/djconfig.sh
index ccec3c8..05b3bbe 100644
--- a/gdb/config/djgpp/djconfig.sh
+++ b/gdb/config/djgpp/djconfig.sh
@@ -5,7 +5,7 @@
# configuring other GNU programs for DJGPP.
#
#=====================================================================
-# Copyright (C) 1997-2024 Free Software Foundation, Inc.
+# Copyright (C) 1997-2025 Free Software Foundation, Inc.
#
# Originally written by Robert Hoehne, revised by Eli Zaretskii.
# This file is part of GDB.
@@ -123,7 +123,7 @@ do
done
# Now set the config shell. It is really needed, that the shell
-# points to a shell with full path and also it must conatain the
+# points to a shell with full path and also it must contain the
# .exe suffix. I assume here, that bash is installed. If not,
# install it. Additionally, the pathname must not contain a
# drive letter, so use the /dev/x/foo format supported by versions
diff --git a/gdb/config/djgpp/langinfo.h b/gdb/config/djgpp/langinfo.h
index dc68822..929b890 100644
--- a/gdb/config/djgpp/langinfo.h
+++ b/gdb/config/djgpp/langinfo.h
@@ -1,5 +1,5 @@
/* langinfo.h file for DJGPP.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
Written by Eli Zaretskii.
This file is part of GDB.
@@ -17,8 +17,8 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef CONFIG_DJGPP_LANGINFO_H
-#define CONFIG_DJGPP_LANGINFO_H
+#ifndef GDB_CONFIG_DJGPP_LANGINFO_H
+#define GDB_CONFIG_DJGPP_LANGINFO_H
#include <nl_types.h>
@@ -32,4 +32,4 @@ enum {
extern char *nl_langinfo (nl_item);
-#endif /* CONFIG_DJGPP_LANGINFO_H */
+#endif /* GDB_CONFIG_DJGPP_LANGINFO_H */
diff --git a/gdb/config/djgpp/nl_types.h b/gdb/config/djgpp/nl_types.h
index 03d4f77..4b24ac6 100644
--- a/gdb/config/djgpp/nl_types.h
+++ b/gdb/config/djgpp/nl_types.h
@@ -1,5 +1,5 @@
/* nl_types.h for DJGPP.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
Written by Eli Zaretskii.
This file is part of GDB.
@@ -17,9 +17,9 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef CONFIG_DJGPP_NL_TYPES_H
-#define CONFIG_DJGPP_NL_TYPES_H
+#ifndef GDB_CONFIG_DJGPP_NL_TYPES_H
+#define GDB_CONFIG_DJGPP_NL_TYPES_H
typedef int nl_item;
-#endif /* CONFIG_DJGPP_NL_TYPES_H */
+#endif /* GDB_CONFIG_DJGPP_NL_TYPES_H */
diff --git a/gdb/config/i386/nm-i386gnu.h b/gdb/config/i386/nm-x86-gnu.h
index d2d5de8..0ddde30 100644
--- a/gdb/config/i386/nm-i386gnu.h
+++ b/gdb/config/i386/nm-x86-gnu.h
@@ -1,5 +1,5 @@
/* Native-dependent definitions for Intel 386 running the GNU Hurd
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -16,15 +16,22 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef CONFIG_I386_NM_I386GNU_H
-#define CONFIG_I386_NM_I386GNU_H
+#ifndef GDB_CONFIG_I386_NM_X86_GNU_H
+#define GDB_CONFIG_I386_NM_X86_GNU_H
/* Thread flavors used in re-setting the T bit. */
#define THREAD_STATE_FLAVOR i386_REGS_SEGS_STATE
#define THREAD_STATE_SIZE i386_THREAD_STATE_COUNT
+#ifdef __x86_64__
+#define THREAD_STATE_SET_TRACED(state) \
+ ((struct i386_thread_state *) (state))->rfl |= 0x100
+#define THREAD_STATE_CLEAR_TRACED(state) \
+ ((((struct i386_thread_state *) (state))->rfl &= ~0x100), 1)
+#else
#define THREAD_STATE_SET_TRACED(state) \
((struct i386_thread_state *) (state))->efl |= 0x100
#define THREAD_STATE_CLEAR_TRACED(state) \
((((struct i386_thread_state *) (state))->efl &= ~0x100), 1)
+#endif /* __x86_64__ */
-#endif /* CONFIG_I386_NM_I386GNU_H */
+#endif /* GDB_CONFIG_I386_NM_X86_GNU_H */
diff --git a/gdb/config/i386/i386gnu.mn b/gdb/config/i386/x86-gnu.mn
index 24c58b0..24c58b0 100644
--- a/gdb/config/i386/i386gnu.mn
+++ b/gdb/config/i386/x86-gnu.mn
diff --git a/gdb/config/nm-linux.h b/gdb/config/nm-linux.h
index d599d3f..811ec5f 100644
--- a/gdb/config/nm-linux.h
+++ b/gdb/config/nm-linux.h
@@ -1,6 +1,6 @@
/* Native support for GNU/Linux.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/config/sparc/nm-sol2.h b/gdb/config/sparc/nm-sol2.h
index 9e1b66b..e356435 100644
--- a/gdb/config/sparc/nm-sol2.h
+++ b/gdb/config/sparc/nm-sol2.h
@@ -1,6 +1,6 @@
/* Native-dependent definitions for Solaris SPARC.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -17,10 +17,10 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef CONFIG_SPARC_NM_SOL2_H
-#define CONFIG_SPARC_NM_SOL2_H
+#ifndef GDB_CONFIG_SPARC_NM_SOL2_H
+#define GDB_CONFIG_SPARC_NM_SOL2_H
#define GDB_GREGSET_T prgregset_t
#define GDB_FPREGSET_T prfpregset_t
-#endif /* CONFIG_SPARC_NM_SOL2_H */
+#endif /* GDB_CONFIG_SPARC_NM_SOL2_H */
diff --git a/gdb/configure b/gdb/configure
index bdc405e..8fc3b04 100755
--- a/gdb/configure
+++ b/gdb/configure
@@ -761,8 +761,6 @@ TARGET_OBS
AMD_DBGAPI_LIBS
AMD_DBGAPI_CFLAGS
HAVE_GSTACK
-ENABLE_BFD_64_BIT_FALSE
-ENABLE_BFD_64_BIT_TRUE
subdirs
GDB_DATADIR
DEBUGDIR
@@ -934,7 +932,8 @@ with_relocated_sources
with_auto_load_dir
with_auto_load_safe_path
enable_targets
-enable_64_bit_bfd
+enable_gdb_mdebug_support
+enable_gdb_dwarf_support
with_amd_dbgapi
enable_tui
enable_gdbtk
@@ -956,6 +955,7 @@ with_libexpat_type
with_python
with_python_libdir
with_guile
+enable_gdb_compile
enable_source_highlight
with_sysroot
with_system_gdbinit
@@ -1645,11 +1645,18 @@ Optional Features:
--disable-nls do not use Native Language Support
--enable-targets=TARGETS
alternative target configurations
- --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)
+ --enable-gdb-mdebug-support
+ Enable support for the mdebug debuginfo format
+ (default 'yes')
+ --enable-gdb-dwarf-support
+ Enable support for the dwarf debuginfo format
+ (default 'yes')
--enable-tui enable full-screen terminal user interface (TUI)
--enable-gdbtk enable gdbtk graphical user interface (GUI)
--enable-profiling enable profiling of GDB
--enable-codesign=CERT sign gdb with 'codesign -s CERT'
+ --enable-gdb-compile enable support for the compile subsystem, default
+ 'yes'
--enable-source-highlight
enable source-highlight for source listings
--enable-werror treat compile warnings as errors
@@ -11500,7 +11507,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11503 "configure"
+#line 11510 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11606,7 +11613,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11609 "configure"
+#line 11616 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -24876,70 +24883,90 @@ fi
-# Check whether --enable-64-bit-bfd was given.
-if test "${enable_64_bit_bfd+set}" = set; then :
- enableval=$enable_64_bit_bfd; case $enableval in #(
- yes|no) :
- ;; #(
- *) :
- as_fn_error $? "bad value ${enableval} for 64-bit-bfd option" "$LINENO" 5 ;; #(
- *) :
- ;;
-esac
+# Check whether to support mdebug/ecoff debug information.
+# Check whether --enable-gdb-mdebug-support was given.
+if test "${enable_gdb_mdebug_support+set}" = set; then :
+ enableval=$enable_gdb_mdebug_support;
+ case $enableval in
+ yes | no)
+ ;;
+ *)
+ as_fn_error $? "bad value $enableval for --enable-gdb-mdebug-support" "$LINENO" 5
+ ;;
+ esac
+
else
- enable_64_bit_bfd=no
+ enable_gdb_mdebug_support=yes
fi
-if test "x$enable_64_bit_bfd" = "xno"; then :
- # The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5
-$as_echo_n "checking size of void *... " >&6; }
-if ${ac_cv_sizeof_void_p+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then :
+if test "x${enable_gdb_mdebug_support}" != "xno"; then
+ CONFIG_SRCS="$CONFIG_SRCS mdebugread.c"
+ CONFIG_OBS="$CONFIG_OBS mdebugread.o"
-else
- if test "$ac_cv_type_void_p" = yes; then
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (void *)
-See \`config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_void_p=0
- fi
-fi
+$as_echo "#define MDEBUG_FORMAT_AVAILABLE 1" >>confdefs.h
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5
-$as_echo "$ac_cv_sizeof_void_p" >&6; }
+# Check whether to support dwarf debug information
+# Check whether --enable-gdb-dwarf-support was given.
+if test "${enable_gdb_dwarf_support+set}" = set; then :
+ enableval=$enable_gdb_dwarf_support;
+ case $enableval in
+ yes | no)
+ ;;
+ *)
+ as_fn_error $? "bad value $enableval for --enable-gdb-dwarf-support" "$LINENO" 5
+ ;;
+ esac
+else
+ enable_gdb_dwarf_support=yes
+fi
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
-_ACEOF
+if test "x${enable_gdb_dwarf_support}" != "xno"; then
- if test "x$ac_cv_sizeof_void_p" = "x8"; then :
- enable_64_bit_bfd=yes
-fi
+$as_echo "#define DWARF_FORMAT_AVAILABLE 1" >>confdefs.h
+ CONFIG_SRCS="$CONFIG_SRCS \$(DWARF2_SRCS)"
+ CONFIG_OBS="$CONFIG_OBS \$(DWARF2_OBS)"
fi
- if test "x$enable_64_bit_bfd" = "xyes"; then
- ENABLE_BFD_64_BIT_TRUE=
- ENABLE_BFD_64_BIT_FALSE='#'
+# See whether 64-bit bfd lib has been enabled.
+OLD_CPPFLAGS=$CPPFLAGS
+# Put the old CPPFLAGS last, in case the user's CPPFLAGS point somewhere
+# with bfd, with -I/foo/include. We always want our bfd.
+CPPFLAGS="-I${srcdir}/../include -I../bfd -I${srcdir}/../bfd $CPPFLAGS"
+# Note we cannot cache the result of this check because BFD64 may change
+# when a secondary target has been added or removed and we have no access
+# to this information here.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether BFD is 64-bit" >&5
+$as_echo_n "checking whether BFD is 64-bit... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include "bfd.h"
+int
+main ()
+{
+#ifdef BFD64
+HAVE_BFD64
+#endif
+ ;
+ return 0;
+}
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "HAVE_BFD64" >/dev/null 2>&1; then :
+ have_64_bit_bfd=yes
else
- ENABLE_BFD_64_BIT_TRUE='#'
- ENABLE_BFD_64_BIT_FALSE=
+ have_64_bit_bfd=no
fi
+rm -f conftest*
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_64_bit_bfd" >&5
+$as_echo "$have_64_bit_bfd" >&6; }
+CPPFLAGS=$OLD_CPPFLAGS
# Provide defaults for some variables set by the per-host and per-target
# configuration.
@@ -24989,7 +25016,7 @@ fi
done
# Check whether this target needs 64-bit CORE_ADDR
- if test x${enable_64_bit_bfd} = xno; then
+ if test x${have_64_bit_bfd} = xno; then
. ${srcdir}/../bfd/config.bfd
fi
@@ -25002,19 +25029,10 @@ fi
done
if test x${all_targets} = xtrue; then
- if test x${enable_64_bit_bfd} = xyes; then
+ if test x${have_64_bit_bfd} = xyes; then
TARGET_OBS='$(ALL_TARGET_OBS) $(ALL_64_TARGET_OBS)'
else
- case ${host} in
- mips*)
- # If all targets were requested, but 64 bit bfd is not enabled,
- # the build will fail. See PR 28684.
- as_fn_error $? "--enable-targets=all requires --enable-64-bit-bfd" "$LINENO" 5
- ;;
- *)
- TARGET_OBS='$(ALL_TARGET_OBS)'
- ;;
- esac
+ TARGET_OBS='$(ALL_TARGET_OBS)'
fi
fi
@@ -28207,8 +28225,8 @@ int
main ()
{
- #if PY_MAJOR_VERSION != 3
- # error "We only support Python 3"
+ #if PY_VERSION_HEX < 0x03040000
+ # error "Minimum supported Python version is 3.4"
#endif
Py_Initialize ();
@@ -28969,6 +28987,47 @@ fi
# ---------------------------- #
+# Check for compile support. #
+# ---------------------------- #
+
+# Check whether --enable-gdb-compile was given.
+if test "${enable_gdb_compile+set}" = set; then :
+ enableval=$enable_gdb_compile;
+ case $enableval in
+ yes | no)
+ ;;
+ *)
+ as_fn_error $? "bad value $enableval for --enable-gdb-compile" "$LINENO" 5
+ ;;
+ esac
+
+else
+ enable_gdb_compile=default
+fi
+
+
+if test "${enable_gdb_compile}" = "default"; then
+ enable_gdb_compile=${enable_gdb_dwarf_support}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Defaulting compile support to '${enable_gdb_dwarf_support}'" >&5
+$as_echo "$as_me: WARNING: Defaulting compile support to '${enable_gdb_dwarf_support}'" >&2;}
+fi
+
+if test "${enable_gdb_compile}" = "yes"; then
+ if test "${enable_gdb_dwarf_support}" = "no"; then
+ as_fn_error $? "enabling gdb compile requires dwarf support" "$LINENO" 5
+ fi
+
+$as_echo "#define HAVE_COMPILE 1" >>confdefs.h
+
+ CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_GCC_COMPILE_OBS)"
+else
+ # Even if compile support is not enabled, we need this file to define
+ # the "compile" command.
+ CONFIG_OBS="$CONFIG_OBS compile/compile.o"
+ CONFIG_SRCS="$CONFIG_SRCS compile/compile.c"
+fi
+
+# ---------------------------- #
# Check for source highlight. #
# ---------------------------- #
@@ -29204,6 +29263,8 @@ $as_echo "#define STDC_HEADERS 1" >>confdefs.h
fi
for ac_header in \
+ IOKit/serial/ioss.h \
+ asm/termios.h \
machine/reg.h \
nlist.h \
ptrace.h \
@@ -31274,22 +31335,36 @@ if test "${ERROR_ON_WARNING}" = yes ; then
fi
# The options we'll try to enable.
-build_warnings="-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 \
--Wno-error=deprecated-register \
--Wsuggest-override \
--Wimplicit-fallthrough=5 \
--Wduplicated-cond \
--Wshadow=local \
+build_warnings=" \
+-Wall \
-Wdeprecated-copy \
-Wdeprecated-copy-dtor \
--Wredundant-move \
+-Wduplicated-cond \
+-Wempty-body \
+-Wimplicit-fallthrough=5 \
-Wmissing-declarations \
+-Wno-char-subscripts \
+-Wno-error=deprecated-register \
+-Wno-mismatched-tags \
+-Wno-sign-compare -Wno-error=maybe-uninitialized \
+-Wno-switch \
+-Wno-unused \
+-Wpointer-arith \
+-Wredundant-move \
+-Wshadow=local \
-Wstrict-null-sentinel \
+-Wsuggest-override \
+-Wunused-but-set-parameter \
+-Wunused-but-set-variable \
+-Wunused-const-variable=1 \
+-Wunused-function \
+-Wunused-label \
+-Wunused-lambda-capture \
+-Wunused-local-typedefs \
+-Wunused-member-function \
+-Wunused-private-field \
+-Wunused-value \
+-Wunused-variable \
-Wvla \
"
@@ -31610,7 +31685,7 @@ if test "$gdb_cv_var_elf" = yes; then
$as_echo "#define HAVE_ELF 1" >>confdefs.h
- # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
+ # -ldl is provided by bfd/Makefile.am (LIBDL) <PLUGINS>.
if test "$plugins" = "yes"; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
$as_echo_n "checking for library containing dlopen... " >&6; }
@@ -33775,10 +33850,12 @@ fi
fi
-ac_config_files="$ac_config_files gcore"
+ac_config_files="$ac_config_files gcore.in:gcore-1.in"
ac_config_files="$ac_config_files gstack.in:gstack-1.in"
+ac_config_files="$ac_config_files gdb-add-index.in:contrib/gdb-add-index.sh"
+
ac_config_files="$ac_config_files Makefile gdb-gdb.gdb gdb-gdb.py doc/Makefile data-directory/Makefile"
@@ -33895,10 +33972,6 @@ if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${ENABLE_BFD_64_BIT_TRUE}" && test -z "${ENABLE_BFD_64_BIT_FALSE}"; then
- as_fn_error $? "conditional \"ENABLE_BFD_64_BIT\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
if test -z "${HAVE_PYTHON_TRUE}" && test -z "${HAVE_PYTHON_FALSE}"; then
as_fn_error $? "conditional \"HAVE_PYTHON\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -34878,8 +34951,9 @@ do
"default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
"jit-reader.h") CONFIG_FILES="$CONFIG_FILES jit-reader.h:jit-reader.in" ;;
"nm.h") CONFIG_LINKS="$CONFIG_LINKS nm.h:$GDB_NM_FILE" ;;
- "gcore") CONFIG_FILES="$CONFIG_FILES gcore" ;;
+ "gcore.in") CONFIG_FILES="$CONFIG_FILES gcore.in:gcore-1.in" ;;
"gstack.in") CONFIG_FILES="$CONFIG_FILES gstack.in:gstack-1.in" ;;
+ "gdb-add-index.in") CONFIG_FILES="$CONFIG_FILES gdb-add-index.in:contrib/gdb-add-index.sh" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"gdb-gdb.gdb") CONFIG_FILES="$CONFIG_FILES gdb-gdb.gdb" ;;
"gdb-gdb.py") CONFIG_FILES="$CONFIG_FILES gdb-gdb.py" ;;
@@ -36425,7 +36499,6 @@ _LT_EOF
esac
done ;;
"nm.h":L) echo > stamp-nmh ;;
- "gcore":F) chmod +x gcore ;;
esac
done # for ac_tag
diff --git a/gdb/configure.ac b/gdb/configure.ac
index fb77e79..226e27e 100644
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -1,5 +1,5 @@
dnl Autoconf configure script for GDB, the GNU debugger.
-dnl Copyright (C) 1995-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1995-2025 Free Software Foundation, Inc.
dnl
dnl This file is part of GDB.
dnl
@@ -192,6 +192,34 @@ AS_HELP_STRING([--enable-targets=TARGETS], [alternative target configurations]),
esac])
+# Check whether to support mdebug/ecoff debug information.
+AC_ARG_ENABLE(gdb-mdebug-support,
+AS_HELP_STRING([--enable-gdb-mdebug-support],
+ [Enable support for the mdebug debuginfo format (default 'yes')]),
+[GDB_CHECK_YES_NO_VAL([$enableval], [--enable-gdb-mdebug-support])],
+[enable_gdb_mdebug_support=yes])
+
+if test "x${enable_gdb_mdebug_support}" != "xno"; then
+ CONFIG_SRCS="$CONFIG_SRCS mdebugread.c"
+ CONFIG_OBS="$CONFIG_OBS mdebugread.o"
+ AC_DEFINE(MDEBUG_FORMAT_AVAILABLE, 1,
+ [defined if mdebug format was requested.])
+fi
+
+# Check whether to support dwarf debug information
+AC_ARG_ENABLE(gdb-dwarf-support,
+AS_HELP_STRING([--enable-gdb-dwarf-support],
+ [Enable support for the dwarf debuginfo format (default 'yes')]),
+[GDB_CHECK_YES_NO_VAL([$enableval], [--enable-gdb-dwarf-support])],
+[enable_gdb_dwarf_support=yes])
+
+if test "x${enable_gdb_dwarf_support}" != "xno"; then
+ AC_DEFINE(DWARF_FORMAT_AVAILABLE, 1,
+ [defined if dwarf format was requested.])
+ CONFIG_SRCS="$CONFIG_SRCS \$(DWARF2_SRCS)"
+ CONFIG_OBS="$CONFIG_OBS \$(DWARF2_OBS)"
+fi
+
BFD_64_BIT
# Provide defaults for some variables set by the per-host and per-target
@@ -241,7 +269,7 @@ do
done
# Check whether this target needs 64-bit CORE_ADDR
- if test x${enable_64_bit_bfd} = xno; then
+ if test x${have_64_bit_bfd} = xno; then
. ${srcdir}/../bfd/config.bfd
fi
@@ -254,19 +282,10 @@ do
done
if test x${all_targets} = xtrue; then
- if test x${enable_64_bit_bfd} = xyes; then
+ if test x${have_64_bit_bfd} = xyes; then
TARGET_OBS='$(ALL_TARGET_OBS) $(ALL_64_TARGET_OBS)'
else
- case ${host} in
- mips*)
- # If all targets were requested, but 64 bit bfd is not enabled,
- # the build will fail. See PR 28684.
- AC_MSG_ERROR([--enable-targets=all requires --enable-64-bit-bfd])
- ;;
- *)
- TARGET_OBS='$(ALL_TARGET_OBS)'
- ;;
- esac
+ TARGET_OBS='$(ALL_TARGET_OBS)'
fi
fi
@@ -749,8 +768,8 @@ AC_DEFUN([AC_TRY_LIBPYTHON],
found_usable_python=no
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include "Python.h"]],
[[
- #if PY_MAJOR_VERSION != 3
- # error "We only support Python 3"
+ #if PY_VERSION_HEX < 0x03040000
+ # error "Minimum supported Python version is 3.4"
#endif
Py_Initialize ();
]])],
@@ -1222,6 +1241,34 @@ AC_SUBST(GUILE_LIBS)
AM_CONDITIONAL(HAVE_GUILE, test "${have_libguile}" != no)
# ---------------------------- #
+# Check for compile support. #
+# ---------------------------- #
+
+AC_ARG_ENABLE([gdb-compile],
+ AS_HELP_STRING([--enable-gdb-compile],
+ [enable support for the compile subsystem, default 'yes']),
+ [GDB_CHECK_YES_NO_VAL([$enableval], [--enable-gdb-compile])],
+ [enable_gdb_compile=default])
+
+if test "${enable_gdb_compile}" = "default"; then
+ enable_gdb_compile=${enable_gdb_dwarf_support}
+ AC_MSG_WARN([Defaulting compile support to '${enable_gdb_dwarf_support}'])
+fi
+
+if test "${enable_gdb_compile}" = "yes"; then
+ if test "${enable_gdb_dwarf_support}" = "no"; then
+ AC_MSG_ERROR([enabling gdb compile requires dwarf support])
+ fi
+ AC_DEFINE(HAVE_COMPILE, 1, [Define if compiling support to gdb compile.])
+ CONFIG_OBS="$CONFIG_OBS \$(SUBDIR_GCC_COMPILE_OBS)"
+else
+ # Even if compile support is not enabled, we need this file to define
+ # the "compile" command.
+ CONFIG_OBS="$CONFIG_OBS compile/compile.o"
+ CONFIG_SRCS="$CONFIG_SRCS compile/compile.c"
+fi
+
+# ---------------------------- #
# Check for source highlight. #
# ---------------------------- #
@@ -1310,6 +1357,8 @@ AC_SUBST(SRCHIGH_CFLAGS)
AC_HEADER_STDC
AC_CHECK_HEADERS([ \
+ IOKit/serial/ioss.h \
+ asm/termios.h \
machine/reg.h \
nlist.h \
ptrace.h \
@@ -1911,7 +1960,7 @@ if test "$gdb_cv_var_elf" = yes; then
gcore-elf.o elf-none-tdep.o"
AC_DEFINE(HAVE_ELF, 1,
[Define if ELF support should be included.])
- # -ldl is provided by bfd/Makfile.am (LIBDL) <PLUGINS>.
+ # -ldl is provided by bfd/Makefile.am (LIBDL) <PLUGINS>.
if test "$plugins" = "yes"; then
AC_SEARCH_LIBS(dlopen, dl)
fi
@@ -2278,8 +2327,9 @@ GDB_AC_SELFTEST([
GDB_AC_TRANSFORM([gdb], [GDB_TRANSFORM_NAME])
GDB_AC_TRANSFORM([gcore], [GCORE_TRANSFORM_NAME])
-AC_CONFIG_FILES([gcore], [chmod +x gcore])
+AC_CONFIG_FILES([gcore.in:gcore-1.in])
AC_CONFIG_FILES([gstack.in:gstack-1.in])
+AC_CONFIG_FILES([gdb-add-index.in:contrib/gdb-add-index.sh])
AC_CONFIG_FILES([Makefile gdb-gdb.gdb gdb-gdb.py doc/Makefile data-directory/Makefile])
AC_OUTPUT
diff --git a/gdb/configure.host b/gdb/configure.host
index 22855cd..fdd6519 100644
--- a/gdb/configure.host
+++ b/gdb/configure.host
@@ -183,6 +183,7 @@ x86_64-*-mingw*) gdb_host=mingw64
gdb_host_obs=mingw-hdep.o
;;
x86_64-*-cygwin*) gdb_host=cygwin64 ;;
+x86_64-*-gnu*) gdb_host=gnu64 ;;
m32r*-*-linux*) gdb_host=linux ;;
xtensa*-*-linux*) gdb_host=linux ;;
diff --git a/gdb/configure.nat b/gdb/configure.nat
index 9e78091..2bd67ae 100644
--- a/gdb/configure.nat
+++ b/gdb/configure.nat
@@ -1,5 +1,5 @@
# ; -*- mode: sh ; -*-
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
@@ -211,23 +211,44 @@ case ${gdb_host} in
;;
esac
;;
+ gnu64)
+ case ${gdb_host_cpu} in
+ i386)
+ # Host: x86_64 running the GNU Hurd
+ NATDEPFILES='x86-gnu-nat.o gnu-nat.o \
+ x86-nat.o nat/x86-dregs.o \
+ amd64-nat.o fork-child.o \
+ nat/fork-inferior.o \
+ notify_S.o process_reply_S.o msg_reply_S.o \
+ msg_U.o exc_request_U.o exc_request_S.o'
+ HAVE_NATIVE_GCORE_HOST=1
+
+ NAT_FILE='nm-x86-gnu.h'
+ MH_CFLAGS='-D_GNU_SOURCE'
+
+ XM_CLIBS='-lshouldbeinlibc'
+
+ nat_makefile_frag="${srcdir}/config/${gdb_host_cpu}/x86-gnu.mn"
+ ;;
+ esac
+ ;;
i386gnu)
case ${gdb_host_cpu} in
i386)
# Host: Intel 386 running the GNU Hurd
- NATDEPFILES='i386-gnu-nat.o gnu-nat.o \
+ NATDEPFILES='x86-gnu-nat.o gnu-nat.o \
x86-nat.o nat/x86-dregs.o fork-child.o \
nat/fork-inferior.o \
notify_S.o process_reply_S.o msg_reply_S.o \
msg_U.o exc_request_U.o exc_request_S.o'
HAVE_NATIVE_GCORE_HOST=1
- NAT_FILE='nm-i386gnu.h'
+ NAT_FILE='nm-x86-gnu.h'
MH_CFLAGS='-D_GNU_SOURCE'
XM_CLIBS='-lshouldbeinlibc'
- nat_makefile_frag="${srcdir}/config/${gdb_host_cpu}/i386gnu.mn"
+ nat_makefile_frag="${srcdir}/config/${gdb_host_cpu}/x86-gnu.mn"
;;
esac
;;
diff --git a/gdb/configure.tgt b/gdb/configure.tgt
index f7b9e32..e9b3068 100644
--- a/gdb/configure.tgt
+++ b/gdb/configure.tgt
@@ -85,7 +85,7 @@ hppa*-*-*)
i[34567]86-*-*)
cpu_obs="${i386_tobjs}"
- if test "x$enable_64_bit_bfd" = "xyes"; then
+ if test "x$have_64_bit_bfd" = "xyes"; then
cpu_obs="${amd64_tobjs} ${cpu_obs}"
fi
;;
@@ -150,7 +150,7 @@ aarch64*-*-linux*)
arch/aarch64-scalable-linux.o \
arch/arm.o arch/arm-linux.o arch/arm-get-next-pcs.o \
arm-tdep.o arm-linux-tdep.o \
- glibc-tdep.o linux-tdep.o solib-svr4.o \
+ glibc-tdep.o linux-tdep.o solib-svr4.o svr4-tls-tdep.o \
symfile-mem.o linux-record.o"
;;
@@ -284,7 +284,7 @@ hppa*-*-openbsd*)
i[34567]86-*-darwin*)
# Target: Darwin/i386
gdb_target_obs="i386-darwin-tdep.o solib-darwin.o"
- if test "x$enable_64_bit_bfd" = "xyes"; then
+ if test "x$have_64_bit_bfd" = "xyes"; then
# Target: GNU/Linux x86-64
gdb_target_obs="amd64-darwin-tdep.o ${gdb_target_obs}"
fi
@@ -319,7 +319,7 @@ i[34567]86-*-linux*)
linux-tdep.o linux-record.o \
arch/i386-linux-tdesc.o \
arch/x86-linux-tdesc-features.o"
- if test "x$enable_64_bit_bfd" = "xyes"; then
+ if test "x$have_64_bit_bfd" = "xyes"; then
# Target: GNU/Linux x86-64
gdb_target_obs="amd64-linux-tdep.o \
arch/amd64-linux-tdesc.o ${gdb_target_obs}"
@@ -327,7 +327,7 @@ i[34567]86-*-linux*)
;;
i[34567]86-*-gnu*)
# Target: Intel 386 running the GNU Hurd
- gdb_target_obs="i386-gnu-tdep.o solib-svr4.o"
+ gdb_target_obs="i386-gnu-tdep.o glibc-tdep.o solib-svr4.o"
;;
i[34567]86-*-cygwin*)
# Target: Intel 386 running win32
@@ -503,7 +503,7 @@ powerpc-*-aix* | rs6000-*-* | powerpc64-*-aix*)
powerpc*-*-linux*)
# Target: PowerPC running Linux
gdb_target_obs="rs6000-tdep.o ppc-linux-tdep.o ppc-sysv-tdep.o \
- ppc64-tdep.o solib-svr4.o \
+ ppc64-tdep.o solib-svr4.o svr4-tls-tdep.o \
glibc-tdep.o symfile-mem.o linux-tdep.o \
ravenscar-thread.o ppc-ravenscar-thread.o \
linux-record.o \
@@ -524,7 +524,8 @@ powerpc*-*-*)
s390*-*-linux*)
# Target: S390 running Linux
gdb_target_obs="s390-linux-tdep.o s390-tdep.o solib-svr4.o \
- linux-tdep.o linux-record.o symfile-mem.o"
+ linux-tdep.o linux-record.o symfile-mem.o \
+ svr4-tls-tdep.o"
;;
riscv*-*-freebsd*)
@@ -534,8 +535,9 @@ riscv*-*-freebsd*)
riscv*-*-linux*)
# Target: Linux/RISC-V
- gdb_target_obs="riscv-linux-tdep.o glibc-tdep.o \
- linux-tdep.o solib-svr4.o symfile-mem.o linux-record.o"
+ gdb_target_obs="riscv-linux-tdep.o riscv-canonicalize-syscall-gen.o \
+ glibc-tdep.o linux-tdep.o solib-svr4.o symfile-mem.o \
+ linux-record.o svr4-tls-tdep.o"
;;
riscv*-*-*)
@@ -578,7 +580,7 @@ sparc-*-linux*)
sparc-linux-tdep.o solib-svr4.o symfile-mem.o \
linux-tdep.o \
ravenscar-thread.o sparc-ravenscar-thread.o"
- if test "x$enable_64_bit_bfd" = "xyes"; then
+ if test "x$have_64_bit_bfd" = "xyes"; then
# Target: GNU/Linux UltraSPARC
gdb_target_obs="sparc64-tdep.o \
sparc64-linux-tdep.o ${gdb_target_obs}"
@@ -705,7 +707,7 @@ x86_64-*-elf*)
x86_64-*-linux*)
# Target: GNU/Linux x86-64
gdb_target_obs="amd64-linux-tdep.o ${i386_tobjs} \
- i386-linux-tdep.o glibc-tdep.o \
+ i386-linux-tdep.o glibc-tdep.o svr4-tls-tdep.o \
solib-svr4.o symfile-mem.o linux-tdep.o linux-record.o \
arch/i386-linux-tdesc.o arch/amd64-linux-tdesc.o \
arch/x86-linux-tdesc-features.o"
@@ -734,6 +736,10 @@ x86_64-*-openbsd*)
x86_64-*-rtems*)
gdb_target_obs="${amd64_tobjs} ${i386_tobjs} i386-bsd-tdep.o"
;;
+x86_64-*-gnu*)
+ # Target: x86_64 running the GNU Hurd
+ gdb_target_obs="amd64-gnu-tdep.o glibc-tdep.o solib-svr4.o"
+ ;;
xtensa*-*-*linux*)
# Target: GNU/Linux Xtensa
gdb_target_obs="xtensa-linux-tdep.o symfile-mem.o linux-tdep.o"
diff --git a/gdb/contrib/ari/create-web-ari-in-src.sh b/gdb/contrib/ari/create-web-ari-in-src.sh
index 64d3c73..b479ce5 100644
--- a/gdb/contrib/ari/create-web-ari-in-src.sh
+++ b/gdb/contrib/ari/create-web-ari-in-src.sh
@@ -2,7 +2,7 @@
# GDB script to create web ARI page directly from within gdb/ari directory.
#
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
@@ -50,7 +50,7 @@ if [ -z "${tempdir}" ] ; then
fi
fi
-# Default location of generate index.hmtl web page.
+# Default location of generated index.html web page.
if [ -z "${webdir}" ] ; then
# Use 'branch' subdir name if Tag contains branch
if [ -f "${srcdir}/gdb/CVS/Tag" ] ; then
diff --git a/gdb/contrib/ari/gdb_ari.sh b/gdb/contrib/ari/gdb_ari.sh
index 5ed7d61..e10bbe0 100755
--- a/gdb/contrib/ari/gdb_ari.sh
+++ b/gdb/contrib/ari/gdb_ari.sh
@@ -2,7 +2,7 @@
# GDB script to list of problems using awk.
#
-# Copyright (C) 2002-2024 Free Software Foundation, Inc.
+# Copyright (C) 2002-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
@@ -60,7 +60,7 @@ Options:
-Werror Treat all problems as errors.
-Wall Report all problems.
-Wari Report problems that should be fixed in new code.
- -WCATEGORY Report problems in the specifed category. The category
+ -WCATEGORY Report problems in the specified category. The category
can be prefixed with "no-". Valid categories
are: ${all}
EOF
@@ -159,7 +159,7 @@ BEGIN {
PWD = "'`pwd`'"
}
-# Print the error message for BUG. Append SUPLEMENT if non-empty.
+# Print the error message for BUG. Append SUPPLEMENT if non-empty.
function print_bug(file,line,prefix,category,bug,doc,supplement, suffix,idx) {
if (print_idx) {
idx = bug ": "
diff --git a/gdb/contrib/ari/gdb_find.sh b/gdb/contrib/ari/gdb_find.sh
index f0aa6d1..b6bd3f9 100644
--- a/gdb/contrib/ari/gdb_find.sh
+++ b/gdb/contrib/ari/gdb_find.sh
@@ -2,7 +2,7 @@
# GDB script to create list of files to check using gdb_ari.sh.
#
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
diff --git a/gdb/contrib/ari/update-web-ari.sh b/gdb/contrib/ari/update-web-ari.sh
index 75ab029..b9ef184 100644
--- a/gdb/contrib/ari/update-web-ari.sh
+++ b/gdb/contrib/ari/update-web-ari.sh
@@ -2,7 +2,7 @@
# GDB script to create GDB ARI web page.
#
-# Copyright (C) 2001-2024 Free Software Foundation, Inc.
+# Copyright (C) 2001-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
@@ -176,7 +176,7 @@ fi
# THIS HAS SUFFERED BIT ROT
if ${check_indent_p} && test -d "${srcdir}"
then
- printf "Analizing file indentation:" 1>&2
+ printf "Analyzing file indentation:" 1>&2
( cd "${srcdir}" && /bin/sh ${aridir}/gdb_find.sh ${project} | while read f
do
if /bin/sh ${aridir}/gdb_indent.sh < ${f} 2>/dev/null | cmp -s - ${f}
@@ -550,7 +550,7 @@ function print_heading (nb_file, where, bug_i) {
for (bug_i = 1; bug_i <= nr_bug; bug_i++) {
bug = i2bug[bug_i];
printf "<th>"
- # The title names are offset by one. Otherwize, when the browser
+ # The title names are offset by one. Otherwise, when the browser
# jumps to the name it leaves out half the relevant column.
#printf "<a name=\",%s\">&nbsp;</a>", bug
printf "<a name=\",%s\">&nbsp;</a>", i2bug[bug_i-1]
@@ -851,7 +851,7 @@ EOF
print_toc 0 -1 deprecate Deprecate <<EOF
Mechanisms that are a candidate for being made obsolete. Once core
GDB no longer depends on these mechanisms and/or there is a
-replacement available, these mechanims can be deprecated (adding the
+replacement available, these mechanisms can be deprecated (adding the
deprecated prefix) obsoleted (put into category obsolete) or deleted.
See obsolete and deprecated.
EOF
diff --git a/gdb/contrib/cc-with-tweaks.sh b/gdb/contrib/cc-with-tweaks.sh
index 4214b92..930ba5c 100755
--- a/gdb/contrib/cc-with-tweaks.sh
+++ b/gdb/contrib/cc-with-tweaks.sh
@@ -2,7 +2,7 @@
# Wrapper around gcc to tweak the output in various ways when running
# the testsuite.
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
@@ -42,6 +42,7 @@
# -Z invoke objcopy --compress-debug-sections
# -z compress using dwz
# -m compress using dwz -m
+# -5 compress using dwz -m -5
# -i make an index (.gdb_index)
# -c make an index (currently .gdb_index) in a cache dir
# -n make a dwarf5 index (.debug_names)
@@ -88,6 +89,7 @@ want_index=false
index_options=""
want_index_cache=false
want_dwz=false
+dwz_5flag=
want_multi=false
want_dwp=false
want_objcopy_compress=false
@@ -101,6 +103,7 @@ while [ $# -gt 0 ]; do
-n) want_index=true; index_options=-dwarf-5;;
-c) want_index_cache=true ;;
-m) want_multi=true ;;
+ -5) want_multi=true; dwz_5flag=-5 ;;
-p) want_dwp=true ;;
-l) want_gnu_debuglink=true ;;
*) break ;;
@@ -269,7 +272,7 @@ elif [ "$want_multi" = true ]; then
rm -f "$dwz_file"
cp "$output_file" "${output_file}.alt"
- $DWZ -m "$dwz_file" "$output_file" "${output_file}.alt" > /dev/null
+ $DWZ $dwz_5flag -m "$dwz_file" "$output_file" "${output_file}.alt" > /dev/null
rm -f "${output_file}.alt"
# Validate dwz's work by checking if the expected output file exists.
diff --git a/gdb/contrib/codespell-dictionary.txt b/gdb/contrib/codespell-dictionary.txt
new file mode 100644
index 0000000..09bc309
--- /dev/null
+++ b/gdb/contrib/codespell-dictionary.txt
@@ -0,0 +1 @@
+gdbsever->gdbserver
diff --git a/gdb/contrib/codespell-ignore-words.txt b/gdb/contrib/codespell-ignore-words.txt
new file mode 100644
index 0000000..881b1d2
--- /dev/null
+++ b/gdb/contrib/codespell-ignore-words.txt
@@ -0,0 +1,3 @@
+configury
+SME
+Synopsys
diff --git a/gdb/contrib/codespell-log.sh b/gdb/contrib/codespell-log.sh
new file mode 100755
index 0000000..10780f8
--- /dev/null
+++ b/gdb/contrib/codespell-log.sh
@@ -0,0 +1,95 @@
+#!/usr/bin/env bash
+
+# Copyright (C) 2025 Free Software Foundation, Inc.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Script to be used as pre-commit commit-msg hook to spell-check the commit
+# log using codespell.
+#
+# Using codespell directly as a pre-commit commit-msg hook has the drawback
+# that:
+# - if codespell fails, the commit fails
+# - if the commit log mentions a typo correction, it'll require a
+# codespell:ignore annotation.
+#
+# This script works around these problems by treating codespell output as a
+# hint, and ignoring codespell exit status.
+#
+# Implementation note: rather than using codespell directly, this script uses
+# pre-commit to call codespell, because it allows us to control the codespell
+# version that is used.
+
+# Exit on error.
+set -e
+
+# Initialize temporary file names.
+cfg=""
+output=""
+
+cleanup()
+{
+ for f in "$cfg" "$output"; do
+ if [ "$f" != "" ]; then
+ rm -f "$f"
+ fi
+ done
+}
+
+# Schedule cleanup.
+trap cleanup EXIT
+
+# Create temporary files.
+cfg=$(mktemp)
+output=$(mktemp)
+
+gen_cfg ()
+{
+ cat > "$1" <<EOF
+repos:
+- repo: https://github.com/codespell-project/codespell
+ rev: v2.4.1
+ hooks:
+ - id: codespell
+ name: codespell-log-internal
+ stages: [manual]
+ args: [--config, gdb/contrib/setup.cfg]
+EOF
+}
+
+# Generate pre-commit configuration file.
+gen_cfg "$cfg"
+
+# Setup pre-commit command to run.
+cmd=(pre-commit \
+ run \
+ -c "$cfg" \
+ codespell \
+ --hook-stage manual \
+ --files "$@")
+
+# Run pre-commit command.
+if "${cmd[@]}" \
+ > "$output" \
+ 2>&1; then
+ # Command succeeded quietly, we're done.
+ exit 0
+fi
+
+# Command failed quietly, now show the output.
+#
+# Simply doing "cat $output" doesn't produce colored output, so we just
+# run the command again, that should be fast enough.
+#
+# Ignore codespell exit status.
+"${cmd[@]}" || true
diff --git a/gdb/contrib/expect-read1.c b/gdb/contrib/expect-read1.c
index 454ecda..bb7317b 100644
--- a/gdb/contrib/expect-read1.c
+++ b/gdb/contrib/expect-read1.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/contrib/expect-read1.sh b/gdb/contrib/expect-read1.sh
index 82c638c..e8589a2 100755
--- a/gdb/contrib/expect-read1.sh
+++ b/gdb/contrib/expect-read1.sh
@@ -1,7 +1,7 @@
#! /bin/sh
# runtest wrapper to reliably reproduce racy incomplete reads in the testsuite.
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/contrib/gdb-add-index.sh b/gdb/contrib/gdb-add-index.sh
index 00a9bea..d2c523f 100755
--- a/gdb/contrib/gdb-add-index.sh
+++ b/gdb/contrib/gdb-add-index.sh
@@ -2,7 +2,7 @@
# Add a .gdb_index section to a file.
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
@@ -22,16 +22,73 @@ GDB=${GDB:=gdb}
OBJCOPY=${OBJCOPY:=objcopy}
READELF=${READELF:=readelf}
+PKGVERSION="@PKGVERSION@"
+VERSION="@VERSION@"
+
myname="${0##*/}"
+print_usage() {
+ prefix="Usage: $myname"
+ echo "$prefix [-h|--help] [-v|--version] [--dwarf-5] FILENAME"
+}
+
+print_try_help() {
+ echo "Try '$myname --help' for more information."
+}
+
+print_help() {
+ print_usage
+ echo
+ echo "Add a .gdb_index section to FILENAME to facilitate faster debug"
+ echo "information loading by GDB."
+ echo
+ echo " -h, --help Print this message then exit."
+ echo " -v, --version Print version information then exit."
+ echo " --dwarf-5 Add the DWARF-5 style .debug_names section"
+ echo " instead of .gdb_index."
+}
+
+print_version() {
+ echo "GNU gdb-add-index (${PKGVERSION}) ${VERSION}"
+}
+
dwarf5=""
-if [ "$1" = "-dwarf-5" ]; then
- dwarf5="$1"
+
+# Parse options.
+until
+opt=$1
+case ${opt} in
+ --dwarf-5 | -dwarf-5)
+ dwarf5="-dwarf-5"
+ ;;
+
+ --help | -help | -h)
+ print_help
+ exit 0
+ ;;
+
+ --version | -version | -v)
+ print_version
+ exit 0
+ ;;
+
+ -?*)
+ print_try_help 1>&2
+ exit 2
+ ;;
+
+ *)
+ # No arguments remaining.
+ ;;
+esac
+# Break from loop if the first character of OPT is not '-'.
+[ "x$(printf %.1s "$opt")" != "x-" ]
+do
shift
-fi
+done
if test $# != 1; then
- echo "usage: $myname [-dwarf-5] FILE" 1>&2
+ print_try_help
exit 1
fi
diff --git a/gdb/contrib/license-check-new-files.sh b/gdb/contrib/license-check-new-files.sh
new file mode 100755
index 0000000..710afa1
--- /dev/null
+++ b/gdb/contrib/license-check-new-files.sh
@@ -0,0 +1,149 @@
+#!/usr/bin/env python3
+
+# Copyright (C) 2025 Free Software Foundation, Inc.
+#
+# This file is part of GDB.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# This program requires the python modules GitPython (git) and scancode-toolkit.
+# It builds a list of all the newly added files to the repository and scans
+# each file for a license, printing it to the terminal. If "--skip" is used,
+# it will only output non-"common" licenses, e.g., omitting "GPL-3.0-or-later".
+# This makes it a little bit easier to detect any possible new licenses.
+#
+# Example:
+# bash$ cd /path/to/binutils-gdb/gdb
+# bash$ ./contrib/license-check-new-files.sh -s gdb-15-branchpoint gdb-16-branchpoint
+# Scanning directories gdb*/...
+# gdb/contrib/common-misspellings.txt: no longer in repo?
+# gdb/contrib/spellcheck.sh: no longer in repo?
+# gdbsupport/unordered_dense.h: MIT
+
+import os
+import sys
+import argparse
+from pathlib import PurePath
+from git import Repo
+from scancode import api
+
+# A list of "common" licenses. If "--skip" is used, any file
+# with a license in this list will be omitted from the output.
+COMMON_LICENSES = ["GPL-2.0-or-later", "GPL-3.0-or-later"]
+
+# Default list of directories to scan. Default scans are limited to
+# gdb-specific git directories because much of the rest of binutils-gdb
+# is actually owned by other projects/packages.
+DEFAULT_SCAN_DIRS = "gdb*"
+
+
+# Get the commit object associated with the string commit CSTR
+# from the git repository REPO.
+#
+# Returns the object or prints an error and exits.
+def get_commit(repo, cstr):
+ try:
+ return repo.commit(cstr)
+ except:
+ print(f'unknown commit "{cstr}"')
+ sys.exit(2)
+
+
+# Uses scancode-toolkit package to scan FILE's licenses.
+# Returns the full license dict from scancode on success or
+# propagates any exceptions.
+def get_licenses_for_file(file):
+ return api.get_licenses(file)
+
+
+# Helper function to print FILE to the terminal if skipping
+# common licenses.
+def skip_print_file(skip, file):
+ if skip:
+ print(f"{file}: ", end="")
+
+
+def main(argv):
+ parser = argparse.ArgumentParser()
+ parser.add_argument("from_commit")
+ parser.add_argument("to_commit")
+ parser.add_argument(
+ "-s", "--skip", help="skip common licenses in output", action="store_true"
+ )
+ parser.add_argument(
+ "-p",
+ "--paths",
+ help=f'paths to scan (default is "{DEFAULT_SCAN_DIRS}")',
+ type=str,
+ default=DEFAULT_SCAN_DIRS,
+ )
+ args = parser.parse_args()
+
+ # Commit boundaries to search for new files
+ from_commit = args.from_commit
+ to_commit = args.to_commit
+
+ # Get the list of new files from git. Try the current directory,
+ # looping up to the root attempting to find a valid git repository.
+ path = PurePath(os.getcwd())
+ paths = list(path.parents)
+ paths.insert(0, path)
+ for dir in paths:
+ try:
+ repo = Repo(dir)
+ break
+ except:
+ pass
+
+ if dir == path.parents[-1]:
+ print(f'not a git repository (or any parent up to mount point "{dir}")')
+ sys.exit(2)
+
+ # Get from/to commits
+ fc = get_commit(repo, from_commit)
+ tc = get_commit(repo, to_commit)
+
+ # Loop over new files
+ paths = [str(dir) for dir in args.paths.split(",")]
+ print(f'Scanning directories {",".join(f"{s}/" for s in paths)}...')
+ for file in fc.diff(tc, paths=paths).iter_change_type("A"):
+ filename = file.a_path
+ if not args.skip:
+ print(f"checking licenses for {filename}... ", end="", flush=True)
+ try:
+ f = dir.joinpath(dir, filename).as_posix()
+ lic = get_licenses_for_file(f)
+ if len(lic["license_clues"]) > 1:
+ print("multiple licenses detected")
+ elif (
+ not args.skip
+ or lic["detected_license_expression_spdx"] not in COMMON_LICENSES
+ ):
+ skip_print_file(args.skip, filename)
+ print(f"{lic['detected_license_expression_spdx']}")
+ except OSError:
+ # Likely hit a file that was added to the repo and subsequently removed.
+ skip_print_file(args.skip, filename)
+ print("no longer in repo?")
+ except KeyboardInterrupt:
+ print("interrupted")
+ break
+ except Exception as e:
+ # If scanning fails, there is little we can do but print an error.
+ skip_print_file(args.skip, filename)
+ print(e)
+
+
+if __name__ == "__main__":
+ main(sys.argv)
diff --git a/gdb/contrib/setup.cfg b/gdb/contrib/setup.cfg
new file mode 100644
index 0000000..5541a01
--- /dev/null
+++ b/gdb/contrib/setup.cfg
@@ -0,0 +1,19 @@
+[codespell]
+
+# Skip ChangeLogs and generated files.
+skip = */ChangeLog*,*/configure,gdbsupport/Makefile.in,*.dat,*.eps,gdb/features/*.c,gdb/ada-casefold.h,gdb/copying.c,gdb/gdbarch-gen.h,gdb/gdbarch-gen.c,gdb/target-delegates-gen.c
+
+ignore-words = gdb/contrib/codespell-ignore-words.txt
+dictionary = gdb/contrib/codespell-dictionary.txt,-
+
+# Ignore all URLs.
+uri-ignore-words-list = *
+
+# This codespell issue (
+# https://github.com/codespell-project/codespell/issues/3381 ) reports the
+# need to have support for ignoring blocks of code.
+# A suggestion there is to use ignore-multiline-regex, which does work, but
+# has a bug: using -w drops all newlines in the updated files (
+# https://github.com/codespell-project/codespell/issues/3642 ).
+# Consequently, disabled. To be enabled when the bug is fixed.
+#ignore-multiline-regex = codespell:ignore-begin.*codespell:ignore-end
diff --git a/gdb/contrib/spellcheck.sh b/gdb/contrib/spellcheck.sh
deleted file mode 100755
index 420891f..0000000
--- a/gdb/contrib/spellcheck.sh
+++ /dev/null
@@ -1,536 +0,0 @@
-#!/bin/bash
-
-# Copyright (C) 2024 Free Software Foundation, Inc.
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# 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, see <http://www.gnu.org/licenses/>.
-
-# Script to auto-correct common spelling mistakes.
-#
-# Example usage:
-# $ ./gdb/contrib/spellcheck.sh gdb*
-
-scriptdir=$(cd "$(dirname "$0")" || exit; pwd -P)
-this_script=$scriptdir/$(basename "$0")
-
-url=https://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines
-cache_dir=$scriptdir/../../.git
-cache_file=wikipedia-common-misspellings.txt
-dictionary=$cache_dir/$cache_file
-local_dictionary=$scriptdir/common-misspellings.txt
-cache_file2=spell-check.pat1
-
-bash_version_at_least ()
-{
- local major
- major="$1"
- local minor
- minor="$2"
-
- if [ "$bash_major" = "" ]; then
- bash_major=$(echo "$BASH_VERSION" | awk -F '.' '{print $1}')
- bash_minor=$(echo "$BASH_VERSION" | awk -F '.' '{print $2}')
- fi
-
- if [ "$bash_major" -lt "$major" ]; then
- # Major version less then required, return false.
- return 1
- fi
-
- if [ "$bash_major" -gt "$major" ]; then
- # Major version more then required, return true.
- return 0
- fi
-
- # Check minor version.
- [ "$bash_minor" -ge "$minor" ]
-}
-
-# Separators: space, slash, tab, colon, comma.
-declare -a grep_separators
-grep_separators=(
- " "
- "/"
- " "
- ":"
- ","
- "\""
-)
-declare -a sed_separators
-sed_separators=(
- " "
- "/"
- "\t"
- ":"
- ","
- "\""
-)
-
-# Pre: start of line, left parenthesis.
-declare -a grep_pre
-grep_pre=(
- "^"
- "\("
-)
-declare -a sed_pre
-sed_pre=(
- "^"
- "("
-)
-
-# Post: dot, right parenthesis, end of line.
-declare -a grep_post
-grep_post=(
- "\."
- "\)"
- "$"
-)
-declare -a sed_post
-sed_post=(
- "\."
- ")"
- "$"
-)
-
-join ()
-{
- local or
- or="$1"
- shift
-
- local res
- res=""
-
- local first
- first=true
-
- for item in "$@"; do
- if $first; then
- first=false
- res="$item"
- else
- res="$res$or$item"
- fi
- done
-
- echo "$res"
-}
-
-grep_or="|"
-sed_or="\|"
-
-grep_join ()
-{
- local res
- res=$(join $grep_or "$@")
- echo "($res)"
-}
-
-sed_join ()
-{
- local res
- res=$(join $sed_or "$@")
- echo "\($res\)"
-}
-
-usage ()
-{
- echo "usage: $(basename "$0") [--check] <file|dir>+"
- echo " $(basename "$0") --print-dictionary"
-}
-
-make_absolute ()
-{
- local arg
- arg="$1"
-
- case "$arg" in
- /*)
- ;;
- *)
- arg=$(pwd -P)/"$arg"
- ;;
- esac
-
- echo "$arg"
-}
-
-parse_args ()
-{
- local files
- files=$(mktemp)
- trap 'rm -f "$files"' EXIT
-
- if [ $# -eq 1 ] && [ "$1" = "--print-dictionary" ]; then
- print_dictionary=true
- return
- fi
-
- while true; do
- case " $1 " in
- " --check ")
- check=true
- shift
- ;;
- *)
- break
- ;;
- esac
- done
-
- if [ $# -eq -0 ]; then
- usage
- exit 1
- fi
-
- local arg
- for arg in "$@"; do
- if [ -f "$arg" ]; then
- arg=$(make_absolute "$arg")
- readlink -e "$arg" \
- >> "$files"
- elif [ -d "$arg" ]; then
- arg=$(make_absolute "$arg")
- local f
- find "$arg" -type f -exec readlink -e {} \; \
- >> "$files"
- else
- echo "Not a file or directory: $arg"
- exit 1
- fi
- done
-
- mapfile -t unique_files \
- < <(sort -u "$files" \
- | grep -v ChangeLog)
-
- rm -f "$files"
- trap "" EXIT
-}
-
-get_dictionary ()
-{
- if [ -f "$dictionary" ]; then
- return
- fi
-
- local webpage
- webpage=$(mktemp)
- trap 'rm -f "$webpage"' EXIT
-
- # Download web page containing table.
- wget $url -O "$webpage"
-
- # Extract table from web page.
- awk '/<pre>/,/<\/pre>/' "$webpage" \
- | sed 's/<pre>//;s/<\/pre>//' \
- | grep -E -v "^$" \
- > "$dictionary"
-
- rm -f "$webpage"
- trap "" EXIT
-}
-
-output_local_dictionary ()
-{
- # Filter out comments and empty lines.
- grep -E -v \
- "^#|^$" \
- "$local_dictionary"
-}
-
-output_dictionaries ()
-{
- (
- output_local_dictionary
- cat "$dictionary"
- ) | grep -E -v "[A-Z]"
-}
-
-parse_dictionary ()
-{
- # Parse dictionary.
- mapfile -t words \
- < <(awk -F '->' '{print $1}' <(output_dictionaries))
- mapfile -t replacements \
- < <(awk -F '->' '{print $2}' <(output_dictionaries))
-
- local words_done
- declare -A words_done
- local i word replacement
- i=0
- for word in "${words[@]}"; do
- replacement=${replacements[i]}
-
- # Skip words that are already handled. This ensures that the local
- # dictionary overrides the wiki dictionary.
- if [ "${words_done[$word]}" == 1 ]; then
- words[i]=""
- replacements[i]=""
- i=$((i + 1))
- continue
- fi
- words_done[$word]=1
-
- # Skip identity rules.
- if [ "$word" = "$replacement" ]; then
- words[i]=""
- replacements[i]=""
- fi
-
- i=$((i + 1))
- done
-}
-
-print_dictionary ()
-{
- local i word replacement
- i=0
- for word in "${words[@]}"; do
- replacement=${replacements[i]}
- i=$((i + 1))
-
- if [ "$word" == "" ]; then
- continue
- fi
-
- echo "$word -> $replacement"
- done
-}
-
-find_files_matching_words ()
-{
- local cache_id
- cache_id=$(cat "$local_dictionary" "$dictionary" "$this_script" \
- | md5sum \
- | awk '{print $1}')
-
- local patfile
- patfile="$cache_dir/$cache_file2".$cache_id
-
- local pat
- if [ -f "$patfile" ]; then
- pat=$(cat "$patfile")
- else
- rm -f "$cache_dir/$cache_file2".*
-
- declare -a re_words
- mapfile -t re_words \
- < <(for f in "${words[@]}"; do
- if [ "$f" = "" ]; then
- continue
- fi
- echo "$f"
- done \
- | sed "s/^\(.\)/[\u\1\1]/")
-
- pat=$(grep_join "${re_words[@]}")
-
- local before after
- before=$(grep_join \
- "${grep_pre[@]}" \
- "${grep_separators[@]}")
- after=$(grep_join \
- "${grep_separators[@]}" \
- "${grep_post[@]}")
-
- pat="$before$pat$after"
-
- echo "$pat" \
- > "$patfile"
- fi
-
- grep -E \
- -l \
- "$pat" \
- "$@"
-}
-
-find_files_matching_word ()
-{
- local pat
- pat="$1"
- shift
-
- local before after
- before=$(grep_join \
- "${grep_pre[@]}" \
- "${grep_separators[@]}")
- after=$(grep_join \
- "${grep_separators[@]}" \
- "${grep_post[@]}")
-
- if bash_version_at_least 5 1; then
- patc=${pat@u}
- else
- # shellcheck disable=SC2001
- patc=$(echo "$pat" | sed 's/^\(.\)/\u\1/')
- fi
- pat="($patc|$pat)"
-
- pat="$before$pat$after"
-
- grep -E \
- -l \
- "$pat" \
- "$@"
-}
-
-replace_word_in_file ()
-{
- local word
- word="$1"
-
- local replacement
- replacement="$2"
-
- local file
- file="$3"
-
- local before after
- before=$(sed_join \
- "${sed_pre[@]}" \
- "${sed_separators[@]}")
- after=$(sed_join \
- "${sed_separators[@]}" \
- "${sed_post[@]}")
-
- if bash_version_at_least 5 1; then
- wordc=${word@u}
- replacementc=${replacement@u}
- else
- # shellcheck disable=SC2001
- wordc=$(echo "$word" | sed 's/^\(.\)/\u\1/')
- # shellcheck disable=SC2001
- replacementc=$(echo "$replacement" | sed 's/^\(.\)/\u\1/')
- fi
-
- local repl1
- local repl2
- repl1="s%$before$word$after%\1$replacement\2%g"
- repl2="s%$before$wordc$after%\1$replacementc\2%g"
-
- sed -i \
- "$repl1;$repl2" \
- "$file"
-}
-
-replace_word_in_files ()
-{
- local word
- word="$1"
-
- local replacement
- replacement="$2"
-
- shift 2
-
- local id
- id="$word -> $replacement"
-
- # Reduce set of files for sed to operate on.
- local files_matching_word
- declare -a files_matching_word
- mapfile -t files_matching_word \
- < <(find_files_matching_word "$word" "$@")
-
- if [ ${#files_matching_word[@]} -eq 0 ]; then
- return
- fi
-
- if echo "$replacement"| grep -q ","; then
- echo "TODO: $id"
- return
- fi
-
- declare -A md5sums
-
- local changed f before after
- changed=false
- for f in "${files_matching_word[@]}"; do
- if [ "${md5sums[$f]}" = "" ]; then
- md5sums[$f]=$(md5sum "$f")
- fi
-
- before="${md5sums[$f]}"
-
- replace_word_in_file \
- "$word" \
- "$replacement" \
- "$f"
-
- after=$(md5sum "$f")
-
- if [ "$after" != "$before" ]; then
- md5sums[$f]="$after"
- changed=true
- fi
- done
-
- if $changed; then
- echo "$id"
- fi
-
- find_files_matching_word "$word" "${files_matching_word[@]}" \
- | awk "{ printf \"TODO: $id: replacement failed: %s\n\", \$0}"
-}
-
-main ()
-{
- declare -a unique_files
- check=false
- print_dictionary=false
- parse_args "$@"
-
- get_dictionary
-
- declare -a words
- declare -a replacements
- parse_dictionary
-
- if $print_dictionary; then
- print_dictionary
- exit 0
- fi
-
- # Reduce set of files for sed to operate on.
- local files_matching_words
- declare -a files_matching_words
- mapfile -t files_matching_words \
- < <(find_files_matching_words "${unique_files[@]}")
-
- if [ ${#files_matching_words[@]} -eq 0 ]; then
- return
- fi
-
- if $check; then
- exit 1
- fi
-
- local i word replacement
- i=0
- for word in "${words[@]}"; do
- replacement=${replacements[i]}
- i=$((i + 1))
-
- if [ "$word" = "" ]; then
- continue
- fi
-
- replace_word_in_files \
- "$word" \
- "$replacement" \
- "${files_matching_words[@]}"
- done
-}
-
-main "$@"
diff --git a/gdb/contrib/test_pubnames_and_indexes.py b/gdb/contrib/test_pubnames_and_indexes.py
index a3f5c92..7a3dec6 100644
--- a/gdb/contrib/test_pubnames_and_indexes.py
+++ b/gdb/contrib/test_pubnames_and_indexes.py
@@ -1,6 +1,6 @@
#! /usr/bin/env python3
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
diff --git a/gdb/contrib/words.sh b/gdb/contrib/words.sh
index 90b1bd9..a4bb2c7 100755
--- a/gdb/contrib/words.sh
+++ b/gdb/contrib/words.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# Copyright (C) 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/copyright.py b/gdb/copyright.py
index 1a155b9..bd854dc 100755
--- a/gdb/copyright.py
+++ b/gdb/copyright.py
@@ -1,6 +1,6 @@
#! /usr/bin/env python3
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
@@ -20,7 +20,7 @@
# This script updates the list of years in the copyright notices in
# most files maintained by the GDB project.
#
-# Usage: cd src/gdb && ./copyright.py
+# Usage: ./gdb/copyright.py
#
# Always review the output of this script before committing it!
#
@@ -30,13 +30,16 @@
#
# This removes the bulk of the changes which are most likely to be correct.
+# pyright: strict
+
import argparse
import locale
import os
import os.path
+import pathlib
import subprocess
import sys
-from typing import List, Optional
+from typing import Iterable
def get_update_list():
@@ -46,42 +49,40 @@ def get_update_list():
of the GDB source tree (NOT the gdb/ subdirectory!). The names of
the files are relative to that root directory.
"""
- result = []
- for gdb_dir in (
- "gdb",
- "gdbserver",
- "gdbsupport",
- "gnulib",
- "sim",
- "include/gdb",
- ):
- for root, dirs, files in os.walk(gdb_dir, topdown=True):
- for dirname in dirs:
- reldirname = "%s/%s" % (root, dirname)
- if (
- dirname in EXCLUDE_ALL_LIST
- or reldirname in EXCLUDE_LIST
- or reldirname in NOT_FSF_LIST
- or reldirname in BY_HAND
- ):
- # Prune this directory from our search list.
- dirs.remove(dirname)
- for filename in files:
- relpath = "%s/%s" % (root, filename)
- if (
- filename in EXCLUDE_ALL_LIST
- or relpath in EXCLUDE_LIST
- or relpath in NOT_FSF_LIST
- or relpath in BY_HAND
- ):
- # Ignore this file.
- pass
- else:
- result.append(relpath)
- return result
-
-
-def update_files(update_list):
+ result = (
+ subprocess.check_output(
+ [
+ "git",
+ "ls-files",
+ "-z",
+ "--",
+ "gdb",
+ "gdbserver",
+ "gdbsupport",
+ "gnulib",
+ "sim",
+ "include/gdb",
+ ],
+ text=True,
+ )
+ .rstrip("\0")
+ .split("\0")
+ )
+
+ full_exclude_list = EXCLUDE_LIST + BY_HAND
+
+ def include_file(filename: str):
+ path = pathlib.Path(filename)
+ for pattern in full_exclude_list:
+ if path.full_match(pattern):
+ return False
+
+ return True
+
+ return filter(include_file, result)
+
+
+def update_files(update_list: Iterable[str]):
"""Update the copyright header of the files in the given list.
We use gnulib's update-copyright script for that.
@@ -126,7 +127,7 @@ def update_files(update_list):
print("*** " + line)
-def may_have_copyright_notice(filename):
+def may_have_copyright_notice(filename: str):
"""Check that the given file does not seem to have a copyright notice.
The filename is relative to the root directory.
@@ -164,17 +165,13 @@ def get_parser() -> argparse.ArgumentParser:
return parser
-def main(argv: List[str]) -> Optional[int]:
+def main(argv: list[str]) -> int | None:
"""The main subprogram."""
parser = get_parser()
_ = parser.parse_args(argv)
- root_dir = os.path.dirname(os.getcwd())
- os.chdir(root_dir)
- if not (
- os.path.isdir("gdb") and os.path.isfile("gnulib/import/extra/update-copyright")
- ):
- sys.exit("Error: This script must be called from the gdb directory.")
+ if not os.path.isfile("gnulib/import/extra/update-copyright"):
+ sys.exit("Error: This script must be called from the top-level directory.")
update_list = get_update_list()
update_files(update_list)
@@ -212,54 +209,26 @@ def main(argv: List[str]) -> Optional[int]:
# generated, non-FSF, or otherwise special (e.g. license text,
# or test cases which must be sensitive to line numbering).
#
-# Filenames are relative to the root directory.
+# Entries are treated as glob patterns.
EXCLUDE_LIST = (
+ "**/aclocal.m4",
+ "**/configure",
+ "**/COPYING.LIB",
+ "**/COPYING",
+ "**/fdl.texi",
+ "**/gpl.texi",
+ "gdb/copying.c",
"gdb/nat/glibc_thread_db.h",
"gdb/CONTRIBUTE",
"gdbsupport/Makefile.in",
+ "gdbsupport/unordered_dense.h",
"gnulib/doc/gendocs_template",
"gnulib/doc/gendocs_template_min",
- "gnulib/import",
+ "gnulib/import/**",
"gnulib/config.in",
"gnulib/Makefile.in",
-)
-
-# Files which should not be modified, either because they are
-# generated, non-FSF, or otherwise special (e.g. license text,
-# or test cases which must be sensitive to line numbering).
-#
-# Matches any file or directory name anywhere. Use with caution.
-# This is mostly for files that can be found in multiple directories.
-# Eg: We want all files named COPYING to be left untouched.
-
-EXCLUDE_ALL_LIST = (
- "COPYING",
- "COPYING.LIB",
- "CVS",
- "configure",
- "copying.c",
- "fdl.texi",
- "gpl.texi",
- "aclocal.m4",
-)
-
-# The list of files to update by hand.
-BY_HAND = (
- # Nothing at the moment :-).
-)
-
-# Files containing multiple copyright headers. This script is only
-# fixing the first one it finds, so we need to finish the update
-# by hand.
-MULTIPLE_COPYRIGHT_HEADERS = (
- "gdb/doc/gdb.texinfo",
- "gdb/doc/refcard.tex",
- "gdb/syscalls/update-netbsd.sh",
-)
-
-# The list of file which have a copyright, but not held by the FSF.
-# Filenames are relative to the root directory.
-NOT_FSF_LIST = (
+ "sim/Makefile.in",
+ # The files below have a copyright, but not held by the FSF.
"gdb/exc_request.defs",
"gdb/gdbtk",
"gdb/testsuite/gdb.gdbtk/",
@@ -296,133 +265,27 @@ NOT_FSF_LIST = (
"sim/mips/sim-main.c",
"sim/moxie/moxie-gdb.dts",
# Not a single file in sim/ppc/ appears to be copyright FSF :-(.
- "sim/ppc/filter.h",
- "sim/ppc/gen-support.h",
- "sim/ppc/ld-insn.h",
- "sim/ppc/hw_sem.c",
- "sim/ppc/hw_disk.c",
- "sim/ppc/idecode_branch.h",
- "sim/ppc/sim-endian.h",
- "sim/ppc/table.c",
- "sim/ppc/hw_core.c",
- "sim/ppc/gen-support.c",
- "sim/ppc/gen-semantics.h",
- "sim/ppc/cpu.h",
- "sim/ppc/sim_callbacks.h",
- "sim/ppc/RUN",
- "sim/ppc/Makefile.in",
- "sim/ppc/emul_chirp.c",
- "sim/ppc/hw_nvram.c",
- "sim/ppc/dc-test.01",
- "sim/ppc/hw_phb.c",
- "sim/ppc/hw_eeprom.c",
- "sim/ppc/bits.h",
- "sim/ppc/hw_vm.c",
- "sim/ppc/cap.h",
- "sim/ppc/os_emul.h",
- "sim/ppc/options.h",
- "sim/ppc/gen-idecode.c",
- "sim/ppc/filter.c",
- "sim/ppc/corefile-n.h",
- "sim/ppc/std-config.h",
- "sim/ppc/ld-decode.h",
- "sim/ppc/filter_filename.h",
- "sim/ppc/hw_shm.c",
- "sim/ppc/pk_disklabel.c",
- "sim/ppc/dc-simple",
- "sim/ppc/misc.h",
- "sim/ppc/device_table.h",
- "sim/ppc/ld-insn.c",
- "sim/ppc/inline.c",
- "sim/ppc/emul_bugapi.h",
- "sim/ppc/hw_cpu.h",
- "sim/ppc/debug.h",
- "sim/ppc/hw_ide.c",
- "sim/ppc/debug.c",
- "sim/ppc/gen-itable.h",
- "sim/ppc/interrupts.c",
- "sim/ppc/hw_glue.c",
- "sim/ppc/emul_unix.c",
- "sim/ppc/sim_calls.c",
- "sim/ppc/dc-complex",
- "sim/ppc/ld-cache.c",
- "sim/ppc/registers.h",
- "sim/ppc/dc-test.02",
- "sim/ppc/options.c",
- "sim/ppc/igen.h",
- "sim/ppc/registers.c",
- "sim/ppc/device.h",
- "sim/ppc/emul_chirp.h",
- "sim/ppc/hw_register.c",
- "sim/ppc/hw_init.c",
- "sim/ppc/sim-endian-n.h",
- "sim/ppc/filter_filename.c",
- "sim/ppc/bits.c",
- "sim/ppc/idecode_fields.h",
- "sim/ppc/hw_memory.c",
- "sim/ppc/misc.c",
- "sim/ppc/double.c",
- "sim/ppc/psim.h",
- "sim/ppc/hw_trace.c",
- "sim/ppc/emul_netbsd.h",
- "sim/ppc/psim.c",
- "sim/ppc/powerpc.igen",
- "sim/ppc/tree.h",
- "sim/ppc/README",
- "sim/ppc/gen-icache.h",
- "sim/ppc/gen-model.h",
- "sim/ppc/ld-cache.h",
- "sim/ppc/mon.c",
- "sim/ppc/corefile.h",
- "sim/ppc/vm.c",
- "sim/ppc/INSTALL",
- "sim/ppc/gen-model.c",
- "sim/ppc/hw_cpu.c",
- "sim/ppc/corefile.c",
- "sim/ppc/hw_opic.c",
- "sim/ppc/gen-icache.c",
- "sim/ppc/events.h",
- "sim/ppc/os_emul.c",
- "sim/ppc/emul_generic.c",
- "sim/ppc/main.c",
- "sim/ppc/hw_com.c",
- "sim/ppc/gen-semantics.c",
- "sim/ppc/emul_bugapi.c",
- "sim/ppc/device.c",
- "sim/ppc/emul_generic.h",
- "sim/ppc/tree.c",
- "sim/ppc/mon.h",
- "sim/ppc/interrupts.h",
- "sim/ppc/cap.c",
- "sim/ppc/cpu.c",
- "sim/ppc/hw_phb.h",
- "sim/ppc/device_table.c",
- "sim/ppc/lf.c",
- "sim/ppc/lf.c",
- "sim/ppc/dc-stupid",
- "sim/ppc/hw_pal.c",
- "sim/ppc/ppc-spr-table",
- "sim/ppc/emul_unix.h",
- "sim/ppc/words.h",
- "sim/ppc/basics.h",
- "sim/ppc/hw_htab.c",
- "sim/ppc/lf.h",
- "sim/ppc/ld-decode.c",
- "sim/ppc/sim-endian.c",
- "sim/ppc/gen-itable.c",
- "sim/ppc/idecode_expression.h",
- "sim/ppc/table.h",
- "sim/ppc/dgen.c",
- "sim/ppc/events.c",
- "sim/ppc/gen-idecode.h",
- "sim/ppc/emul_netbsd.c",
- "sim/ppc/igen.c",
- "sim/ppc/vm_n.h",
- "sim/ppc/vm.h",
- "sim/ppc/hw_iobus.c",
- "sim/ppc/inline.h",
+ "sim/ppc/**",
"sim/testsuite/mips/mips32-dsp2.s",
)
+# The list of files to update by hand.
+#
+# Entries are treated as glob patterns.
+BY_HAND: tuple[str, ...] = (
+ # Nothing at the moment :-).
+)
+
+# Files containing multiple copyright headers. This script is only
+# fixing the first one it finds, so we need to finish the update
+# by hand.
+#
+# Entries are treated as glob patterns.
+MULTIPLE_COPYRIGHT_HEADERS = (
+ "gdb/doc/gdb.texinfo",
+ "gdb/doc/refcard.tex",
+ "gdb/syscalls/update-netbsd.sh",
+)
+
if __name__ == "__main__":
sys.exit(main(sys.argv[1:]))
diff --git a/gdb/corefile.c b/gdb/corefile.c
index 7fe5e83..9f27f14 100644
--- a/gdb/corefile.c
+++ b/gdb/corefile.c
@@ -1,6 +1,6 @@
/* Core dump and executable file functions above target vector, for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/corelow.c b/gdb/corelow.c
index ee57a9c..b5895de 100644
--- a/gdb/corelow.c
+++ b/gdb/corelow.c
@@ -1,6 +1,6 @@
/* Core dump and executable file functions below target vector, for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -37,7 +37,6 @@
#include "exec.h"
#include "readline/tilde.h"
#include "solib.h"
-#include "solist.h"
#include "filenames.h"
#include "progspace.h"
#include "objfiles.h"
@@ -48,8 +47,8 @@
#include "gdbsupport/pathstuff.h"
#include "gdbsupport/scoped_fd.h"
#include "gdbsupport/x86-xstate.h"
-#include <unordered_map>
-#include <unordered_set>
+#include "gdbsupport/unordered_map.h"
+#include "gdbsupport/unordered_set.h"
#include "cli/cli-cmds.h"
#include "xml-tdesc.h"
#include "memtag.h"
@@ -125,11 +124,11 @@ private:
/* A type that maps a string to a build-id. */
using string_to_build_id_map
- = std::unordered_map<std::string, const bfd_build_id *>;
+ = gdb::unordered_map<std::string, const bfd_build_id *>;
/* A type that maps a build-id to a string. */
using build_id_to_string_map
- = std::unordered_map<const bfd_build_id *, std::string>;
+ = gdb::unordered_map<const bfd_build_id *, std::string>;
/* When loading a core file, the build-ids are extracted based on the
file backed mappings. This map associates the name of a file that was
@@ -405,11 +404,11 @@ core_target::build_file_mappings ()
std::vector<region> regions;
};
- std::unordered_map<std::string, struct bfd *> bfd_map;
- std::unordered_set<std::string> unavailable_paths;
+ gdb::unordered_map<std::string, struct bfd *> bfd_map;
+ gdb::unordered_set<std::string> unavailable_paths;
/* All files mapped into the core file. The key is the filename. */
- std::unordered_map<std::string, mapped_file> mapped_files;
+ gdb::unordered_map<std::string, mapped_file> mapped_files;
/* See linux_read_core_file_mappings() in linux-tdep.c for an example
read_core_file_mappings method. */
@@ -540,11 +539,41 @@ core_target::build_file_mappings ()
/* If ABFD was opened, but the wrong format, close it now. */
abfd = nullptr;
+ /* When true, this indicates that the mapped contents of this
+ file are available within the core file. When false, some of
+ the mapped contents are not available. If the contents are
+ entirely available within the core file, then we don't need to
+ warn the user if GDB cannot find the file. */
+ bool content_is_in_core_file_p = true;
+
/* Record all regions for this file as unavailable. */
for (const mapped_file::region &region : file_data.regions)
- m_core_unavailable_mappings.emplace_back (region.start,
- region.end
- - region.start);
+ {
+ /* Check to see if the region is available within the core
+ file. */
+ bool found_region_in_core_file = false;
+ for (const target_section &ts : m_core_section_table)
+ {
+ if (ts.addr <= region.start && ts.endaddr >= region.end
+ && (ts.the_bfd_section->flags & SEC_HAS_CONTENTS) != 0)
+ {
+ found_region_in_core_file = true;
+ break;
+ }
+ }
+
+ /* This region is not available within the core file.
+ Without the file available to read from it is not possible
+ for GDB to read this mapping within the inferior. Warn
+ the user about this case. */
+ if (!found_region_in_core_file)
+ content_is_in_core_file_p = false;
+
+ /* Record the unavailable region. */
+ m_core_unavailable_mappings.emplace_back (region.start,
+ region.end
+ - region.start);
+ }
/* And give the user an appropriate warning. */
if (build_id_mismatch)
@@ -564,7 +593,7 @@ core_target::build_file_mappings ()
styled_string (file_name_style.style (),
expanded_fname.get ()));
}
- else
+ else if (!content_is_in_core_file_p)
{
if (expanded_fname == nullptr
|| filename == expanded_fname.get ())
@@ -774,7 +803,7 @@ rename_vmcore_idle_reg_sections (bfd *abfd, inferior *inf)
/* The set of all /NN numbers found. Needed so we can easily find unused
numbers in the case that we need to rename some sections. */
- std::unordered_set<int> all_lwpids;
+ gdb::unordered_set<int> all_lwpids;
/* A count of how many sections called .reg/0 we have found. */
unsigned zero_lwpid_count = 0;
@@ -927,7 +956,7 @@ locate_exec_from_corefile_exec_context (bfd *cbfd,
execbfd = open_and_check_build_id (exec_name);
else
{
- std::string p = (ldirname (bfd_get_filename (cbfd))
+ std::string p = (gdb_ldirname (bfd_get_filename (cbfd))
+ '/'
+ exec_name);
execbfd = open_and_check_build_id (p.c_str ());
@@ -941,7 +970,7 @@ locate_exec_from_corefile_exec_context (bfd *cbfd,
if (execbfd == nullptr)
{
const char *base_name = lbasename (exec_name);
- std::string p = (ldirname (bfd_get_filename (cbfd))
+ std::string p = (gdb_ldirname (bfd_get_filename (cbfd))
+ '/'
+ base_name);
execbfd = open_and_check_build_id (p.c_str ());
@@ -1174,7 +1203,7 @@ core_target_open (const char *arg, int from_tty)
for (const gdb::unique_xmalloc_ptr<char> &a : ctx.args ())
argv.push_back (a.get ());
gdb::array_view<char * const> view (argv.data (), argv.size ());
- current_inferior ()->set_args (view);
+ current_inferior ()->set_args (view, true);
/* And now copy the environment. */
current_inferior ()->environment = ctx.environment ();
@@ -1188,11 +1217,11 @@ core_target_open (const char *arg, int from_tty)
}
else
{
- gdb::unique_xmalloc_ptr<char> failing_command = make_unique_xstrdup
- (bfd_core_file_failing_command (current_program_space->core_bfd ()));
+ const char *failing_command
+ = bfd_core_file_failing_command (current_program_space->core_bfd ());
if (failing_command != nullptr)
gdb_printf (_("Core was generated by `%s'.\n"),
- failing_command.get ());
+ failing_command);
}
/* Clearing any previous state of convenience variables. */
diff --git a/gdb/cp-abi.c b/gdb/cp-abi.c
index 3167b74..8f2067b 100644
--- a/gdb/cp-abi.c
+++ b/gdb/cp-abi.c
@@ -1,6 +1,6 @@
/* Generic code for supporting multiple C++ ABI's
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/cp-abi.h b/gdb/cp-abi.h
index 6c8d904..c564d67 100644
--- a/gdb/cp-abi.h
+++ b/gdb/cp-abi.h
@@ -3,7 +3,7 @@
Contributed by Daniel Berlin <dberlin@redhat.com>
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/cp-name-parser.y b/gdb/cp-name-parser.y
index 9d0085d..cb0babb 100644
--- a/gdb/cp-name-parser.y
+++ b/gdb/cp-name-parser.y
@@ -1,6 +1,6 @@
/* YACC parser for C++ names, for GDB.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
Parts of the lexer are based on c-exp.y from GDB.
@@ -75,19 +75,35 @@
struct cpname_state
{
+ cpname_state (const char *input, demangle_parse_info *info)
+ : lexptr (input),
+ prev_lexptr (input),
+ demangle_info (info)
+ { }
+
+ /* Un-push a character into the lexer. This can only un-push the
+ previous character in the input string. */
+ void unpush (char c)
+ {
+ gdb_assert (lexptr[-1] == c);
+ --lexptr;
+ }
+
/* LEXPTR is the current pointer into our lex buffer. PREV_LEXPTR
is the start of the last token lexed, only used for diagnostics.
ERROR_LEXPTR is the first place an error occurred. GLOBAL_ERRMSG
is the first error message encountered. */
- const char *lexptr, *prev_lexptr, *error_lexptr, *global_errmsg;
+ const char *lexptr, *prev_lexptr;
+ const char *error_lexptr = nullptr;
+ const char *global_errmsg = nullptr;
demangle_parse_info *demangle_info;
/* The parse tree created by the parser is stored here after a
successful parse. */
- struct demangle_component *global_result;
+ struct demangle_component *global_result = nullptr;
struct demangle_component *d_grab ();
@@ -358,6 +374,22 @@ function
| colon_ext_only function_arglist start_opt
{ $$ = state->fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, $1, $2.comp);
if ($3) $$ = state->fill_comp (DEMANGLE_COMPONENT_LOCAL_NAME, $$, $3); }
+ | colon_ext_only
+ {
+ /* This production is a hack to handle
+ something like "name::operator new[]" --
+ without arguments, this ordinarily would
+ not parse, but canonicalizing it is
+ important. So we infer the "()" and then
+ remove it when converting back to string.
+ Note that this works because this
+ production is terminal. */
+ demangle_component *comp
+ = state->fill_comp (DEMANGLE_COMPONENT_FUNCTION_TYPE,
+ nullptr, nullptr);
+ $$ = state->fill_comp (DEMANGLE_COMPONENT_TYPED_NAME, $1, comp);
+ state->demangle_info->added_parens = true;
+ }
| conversion_op_name start_opt
{ $$ = $1.comp;
@@ -507,6 +539,11 @@ conversion_op_name
unqualified_name: oper
| oper '<' template_params '>'
{ $$ = state->fill_comp (DEMANGLE_COMPONENT_TEMPLATE, $1, $3.comp); }
+ | oper '<' template_params RSH
+ {
+ $$ = state->fill_comp (DEMANGLE_COMPONENT_TEMPLATE, $1, $3.comp);
+ state->unpush ('>');
+ }
| '~' NAME
{ $$ = state->make_dtor (gnu_v3_complete_object_dtor, $2); }
;
@@ -572,6 +609,11 @@ nested_name : NAME COLONCOLON
/* DEMANGLE_COMPONENT_TEMPLATE_ARGLIST */
templ : NAME '<' template_params '>'
{ $$ = state->fill_comp (DEMANGLE_COMPONENT_TEMPLATE, $1, $3.comp); }
+ | NAME '<' template_params RSH
+ {
+ $$ = state->fill_comp (DEMANGLE_COMPONENT_TEMPLATE, $1, $3.comp);
+ state->unpush ('>');
+ }
;
template_params : template_arg
@@ -2018,15 +2060,14 @@ struct std::unique_ptr<demangle_parse_info>
cp_demangled_name_to_comp (const char *demangled_name,
std::string *errmsg)
{
- cpname_state state;
-
- state.prev_lexptr = state.lexptr = demangled_name;
- state.error_lexptr = NULL;
- state.global_errmsg = NULL;
-
auto result = std::make_unique<demangle_parse_info> ();
- state.demangle_info = result.get ();
+ cpname_state state (demangled_name, result.get ());
+ /* Note that we can't set yydebug here, as is done in the other
+ parsers. Bison implements yydebug as a global, even with a pure
+ parser, and this parser is run from worker threads. So, changing
+ yydebug causes TSan reports. If you need to debug this parser,
+ debug gdb and set the global from the outer gdb. */
if (yyparse (&state))
{
if (state.global_errmsg && errmsg)
@@ -2083,6 +2124,15 @@ canonicalize_tests ()
should_be_the_same ("something<void ()>", "something<void (void)>");
should_parse ("void whatever::operator<=><int, int>");
+
+ should_be_the_same ("Foozle<int>::fogey<Empty<int> > (Empty<int>)",
+ "Foozle<int>::fogey<Empty<int>> (Empty<int>)");
+
+ should_be_the_same ("something :: operator new [ ]",
+ "something::operator new[]");
+ should_be_the_same ("something :: operator new",
+ "something::operator new");
+ should_be_the_same ("operator()", "operator ()");
}
#endif
diff --git a/gdb/cp-namespace.c b/gdb/cp-namespace.c
index dc018a2..d285e86 100644
--- a/gdb/cp-namespace.c
+++ b/gdb/cp-namespace.c
@@ -1,5 +1,5 @@
/* Helper routines for C++ support in GDB.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
Contributed by David Carlton and by Kealia, Inc.
@@ -32,7 +32,7 @@
#include "language.h"
#include "namespace.h"
#include "inferior.h"
-#include <map>
+#include "gdbsupport/unordered_map.h"
#include <string>
#include <string.h>
@@ -352,6 +352,9 @@ cp_lookup_symbol_in_namespace (const char *the_namespace, const char *name,
return sym;
}
+/* Type used for collecting symbols. Maps names to symbols. */
+using symbol_map = gdb::unordered_map<std::string, block_symbol>;
+
/* This version of the function is internal, use the wrapper unless
the list of ambiguous symbols is needed.
@@ -391,8 +394,7 @@ cp_lookup_symbol_via_imports (const char *scope,
const int search_scope_first,
const int declaration_only,
const int search_parents,
- std::map<std::string,
- struct block_symbol>& found_symbols)
+ symbol_map &found_symbols)
{
struct block_symbol sym = {};
int len;
@@ -509,7 +511,7 @@ cp_lookup_symbol_via_imports (const char *scope,
const int declaration_only,
const int search_parents)
{
- std::map<std::string, struct block_symbol> found_symbols;
+ symbol_map found_symbols;
cp_lookup_symbol_via_imports(scope, name, block, domain, 0,
declaration_only, search_parents,
@@ -924,7 +926,7 @@ cp_lookup_nested_symbol (struct type *parent_type,
case TYPE_CODE_NAMESPACE:
case TYPE_CODE_UNION:
case TYPE_CODE_ENUM:
- /* NOTE: Handle modules here as well, because Fortran is re-using the C++
+ /* NOTE: Handle modules here as well, because Fortran is reusing the C++
specific code to lookup nested symbols in modules, by calling the
method lookup_symbol_nonlocal, which ends up here. */
case TYPE_CODE_MODULE:
diff --git a/gdb/cp-support.c b/gdb/cp-support.c
index 3621d68..9001329 100644
--- a/gdb/cp-support.c
+++ b/gdb/cp-support.c
@@ -1,5 +1,5 @@
/* Helper routines for C++ support in GDB.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by MontaVista Software.
@@ -573,6 +573,17 @@ replace_typedefs (struct demangle_parse_info *info,
}
}
+/* A helper to strip a trailing "()" from PTR. The string is modified
+ in place. */
+
+static void
+maybe_strip_parens (char *ptr)
+{
+ size_t len = strlen (ptr);
+ if (len > 2 && ptr[len - 2] == '(' && ptr[len - 1] == ')')
+ ptr[len - 2] = '\0';
+}
+
/* Parse STRING and convert it to canonical form, resolving any
typedefs. If parsing fails, or if STRING is already canonical,
return nullptr. Otherwise return the canonical form. If
@@ -599,6 +610,9 @@ cp_canonicalize_string_full (const char *string,
estimated_len);
gdb_assert (us);
+ if (info->added_parens)
+ maybe_strip_parens (us.get ());
+
/* Finally, compare the original string with the computed
name, returning NULL if they are the same. */
if (strcmp (us.get (), string) == 0)
@@ -647,6 +661,9 @@ cp_canonicalize_string (const char *string)
return nullptr;
}
+ if (info->added_parens)
+ maybe_strip_parens (us.get ());
+
if (strcmp (us.get (), string) == 0)
return nullptr;
@@ -2267,7 +2284,7 @@ test_cp_remove_params ()
#undef CHECK_INCOMPL
}
-} // namespace selftests
+} /* namespace selftests */
#endif /* GDB_SELF_CHECK */
diff --git a/gdb/cp-support.h b/gdb/cp-support.h
index b557c1d..ffe0ba1 100644
--- a/gdb/cp-support.h
+++ b/gdb/cp-support.h
@@ -1,5 +1,5 @@
/* Helper routines for C++ support in GDB.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by MontaVista Software.
Namespace support contributed by David Carlton.
@@ -63,6 +63,10 @@ struct demangle_parse_info
/* Any memory used during processing. */
auto_obstack obstack;
+ /* True if the parser had to add a dummy '()' at the end of the
+ input text to make it parse. */
+ bool added_parens = false;
+
/* Any other objects referred to by this object, and whose storage
lifetime must be linked. */
std::vector<std::unique_ptr<demangle_parse_info>> infos;
diff --git a/gdb/cp-valprint.c b/gdb/cp-valprint.c
index 2634c1e..2117718 100644
--- a/gdb/cp-valprint.c
+++ b/gdb/cp-valprint.c
@@ -1,6 +1,6 @@
/* Support for printing C++ values for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -100,7 +100,7 @@ cp_is_vtbl_member (struct type *type)
/* The type name of the thunk pointer is NULL when using
dwarf2. We could test for a pointer to a function, but
there is no type info for the virtual table either, so it
- wont help. */
+ won't help. */
return cp_is_vtbl_ptr_type (type);
}
}
diff --git a/gdb/cris-linux-tdep.c b/gdb/cris-linux-tdep.c
index 7ec5505..b2ac80d 100644
--- a/gdb/cris-linux-tdep.c
+++ b/gdb/cris-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux on CRIS processors, for GDB.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
Contributed by Axis Communications AB.
Written by Hendrik Ruijter, Stefan Andersson, Orjan Friberg,
diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c
index f531b4c..722c0a4 100644
--- a/gdb/cris-tdep.c
+++ b/gdb/cris-tdep.c
@@ -1,6 +1,6 @@
/* Target dependent code for CRIS, for GDB, the GNU debugger.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
Contributed by Axis Communications AB.
Written by Hendrik Ruijter, Stefan Andersson, and Orjan Friberg.
@@ -1467,7 +1467,7 @@ cris_register_size (struct gdbarch *gdbarch, int regno)
}
/* Nonzero if regno should not be fetched from the target. This is the case
- for unimplemented (size 0) and non-existant registers. */
+ for unimplemented (size 0) and non-existent registers. */
static int
cris_cannot_fetch_register (struct gdbarch *gdbarch, int regno)
@@ -1508,7 +1508,7 @@ cris_cannot_store_register (struct gdbarch *gdbarch, int regno)
}
/* Nonzero if regno should not be fetched from the target. This is the case
- for unimplemented (size 0) and non-existant registers. */
+ for unimplemented (size 0) and non-existent registers. */
static int
crisv32_cannot_fetch_register (struct gdbarch *gdbarch, int regno)
diff --git a/gdb/cris-tdep.h b/gdb/cris-tdep.h
index 8be9547..d983f56 100644
--- a/gdb/cris-tdep.h
+++ b/gdb/cris-tdep.h
@@ -1,6 +1,6 @@
/* Target dependent code for CRIS, for GDB, the GNU debugger.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
Contributed by Axis Communications AB.
Written by Hendrik Ruijter, Stefan Andersson, and Orjan Friberg.
diff --git a/gdb/csky-linux-tdep.c b/gdb/csky-linux-tdep.c
index c02eedb..2afb358 100644
--- a/gdb/csky-linux-tdep.c
+++ b/gdb/csky-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux on CSKY.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by C-SKY Microsystems and Mentor Graphics.
diff --git a/gdb/csky-tdep.c b/gdb/csky-tdep.c
index 4f41a51..350612f 100644
--- a/gdb/csky-tdep.c
+++ b/gdb/csky-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the CSKY architecture, for GDB.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by C-SKY Microsystems and Mentor Graphics.
@@ -1072,7 +1072,7 @@ csky_analyze_prologue (struct gdbarch *gdbarch,
}
else if (CSKY_32_IS_MOV_FP_SP (insn))
{
- /* SP is saved to FP reg, means code afer prologue may
+ /* SP is saved to FP reg, means code after prologue may
modify SP. */
is_fp_saved = 1;
adjust_fp = stacksize;
@@ -2667,7 +2667,7 @@ csky_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache,
}
/* Initialize the current architecture based on INFO. If possible,
- re-use an architecture from ARCHES, which is a list of
+ reuse an architecture from ARCHES, which is a list of
architectures already created during this debugging session.
Called at program startup, when reading a core file, and when
diff --git a/gdb/csky-tdep.h b/gdb/csky-tdep.h
index 2991719..924d5d9 100644
--- a/gdb/csky-tdep.h
+++ b/gdb/csky-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for the CSKY architecture, for GDB.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ctfread.c b/gdb/ctfread.c
index ee7c30f..e568f15 100644
--- a/gdb/ctfread.c
+++ b/gdb/ctfread.c
@@ -1,6 +1,6 @@
/* Compact ANSI-C Type Format (CTF) support in GDB.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ctfread.h b/gdb/ctfread.h
index 711a1dd..d1323d4 100644
--- a/gdb/ctfread.h
+++ b/gdb/ctfread.h
@@ -1,6 +1,6 @@
/* CTF debugging format support for GDB.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/d-exp.y b/gdb/d-exp.y
index df89cb6..e0ee758 100644
--- a/gdb/d-exp.y
+++ b/gdb/d-exp.y
@@ -1,6 +1,6 @@
/* YACC parser for D expressions, for GDB.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/d-lang.c b/gdb/d-lang.c
index 32d9cc8..0119a01 100644
--- a/gdb/d-lang.c
+++ b/gdb/d-lang.c
@@ -1,6 +1,6 @@
/* D language support routines for GDB, the GNU debugger.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/d-lang.h b/gdb/d-lang.h
index 8a94447..41615e0 100644
--- a/gdb/d-lang.h
+++ b/gdb/d-lang.h
@@ -1,6 +1,6 @@
/* D language support definitions for GDB, the GNU debugger.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/d-namespace.c b/gdb/d-namespace.c
index 530349e..b5e046e 100644
--- a/gdb/d-namespace.c
+++ b/gdb/d-namespace.c
@@ -1,6 +1,6 @@
/* Helper routines for D support in GDB.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/d-valprint.c b/gdb/d-valprint.c
index 543bb19..bf2c44e 100644
--- a/gdb/d-valprint.c
+++ b/gdb/d-valprint.c
@@ -1,6 +1,6 @@
/* Support for printing D values for GDB, the GNU debugger.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/darwin-nat-info.c b/gdb/darwin-nat-info.c
index 0157dfb..b5784be 100644
--- a/gdb/darwin-nat-info.c
+++ b/gdb/darwin-nat-info.c
@@ -1,5 +1,5 @@
/* Darwin support for GDB, the GNU debugger.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Apple Computer, Inc.
diff --git a/gdb/darwin-nat.c b/gdb/darwin-nat.c
index ea47344..ffbf949 100644
--- a/gdb/darwin-nat.c
+++ b/gdb/darwin-nat.c
@@ -1,5 +1,5 @@
/* Darwin support for GDB, the GNU debugger.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributed by AdaCore.
@@ -1853,7 +1853,7 @@ copy_shell_to_cache (const char *shell, const std::string &new_name)
error (_("Could not open shell (%s) for reading: %s"),
shell, safe_strerror (errno));
- std::string new_dir = ldirname (new_name.c_str ());
+ std::string new_dir = gdb_ldirname (new_name.c_str ());
if (!mkdir_recursive (new_dir.c_str ()))
error (_("Could not make cache directory \"%s\": %s"),
new_dir.c_str (), safe_strerror (errno));
diff --git a/gdb/darwin-nat.h b/gdb/darwin-nat.h
index 4ead0ea..90bf293 100644
--- a/gdb/darwin-nat.h
+++ b/gdb/darwin-nat.h
@@ -1,5 +1,5 @@
/* Common things used by the various darwin files
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in
index 287dc7f..2ca2b8e 100644
--- a/gdb/data-directory/Makefile.in
+++ b/gdb/data-directory/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# Makefile for building a staged copy of the data-directory.
# This file is part of GDB.
@@ -97,6 +97,7 @@ PYTHON_FILE_LIST = \
gdb/command/xmethods.py \
gdb/dap/breakpoint.py \
gdb/dap/bt.py \
+ gdb/dap/completions.py \
gdb/dap/disassemble.py \
gdb/dap/evaluate.py \
gdb/dap/events.py \
diff --git a/gdb/dbxread.c b/gdb/dbxread.c
index 4cd7210..8d0ebab 100644
--- a/gdb/dbxread.c
+++ b/gdb/dbxread.c
@@ -1,5 +1,5 @@
/* Read dbx symbol tables and convert to internal format, for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -31,36 +31,18 @@
for real. dbx_psymtab_to_symtab() is the function that does this */
-#include "event-top.h"
-#include "gdbsupport/gdb_obstack.h"
#include <sys/stat.h>
#include "symtab.h"
-#include "breakpoint.h"
#include "target.h"
-#include "gdbcore.h"
#include "libaout.h"
-#include "filenames.h"
#include "objfiles.h"
-#include "buildsym-legacy.h"
#include "stabsread.h"
#include "gdb-stabs.h"
-#include "demangle.h"
-#include "complaints.h"
-#include "cp-abi.h"
#include "cp-support.h"
-#include "c-lang.h"
-#include "psymtab.h"
-#include "block.h"
-#include "aout/aout64.h"
-#include "aout/stab_gnu.h"
-
+
/* Required for the following registry. */
#include "gdb-stabs.h"
-
-
-
-
/* Local function prototypes. */
static void dbx_symfile_init (struct objfile *);
@@ -110,6 +92,7 @@ dbx_new_init (struct objfile *ignore)
{
stabsread_new_init ();
init_header_files ();
+ warning (_("The a.out file format is deprecated and will be removed soon."));
}
diff --git a/gdb/dcache.c b/gdb/dcache.c
index 2f40d27..2c5484d 100644
--- a/gdb/dcache.c
+++ b/gdb/dcache.c
@@ -1,6 +1,6 @@
/* Caching code for GDB, the GNU debugger.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/dcache.h b/gdb/dcache.h
index 21f49e5..6a99541 100644
--- a/gdb/dcache.h
+++ b/gdb/dcache.h
@@ -1,7 +1,7 @@
/* Declarations for caching. Typically used by remote back ends for
caching remote memory.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/debug.c b/gdb/debug.c
index f7d2451..b6a3f1d 100644
--- a/gdb/debug.c
+++ b/gdb/debug.c
@@ -1,6 +1,6 @@
/* Debug printing functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/debuginfod-support.c b/gdb/debuginfod-support.c
index 2ae7228..d573b8d 100644
--- a/gdb/debuginfod-support.c
+++ b/gdb/debuginfod-support.c
@@ -1,5 +1,5 @@
/* debuginfod utilities for GDB.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/debuginfod-support.h b/gdb/debuginfod-support.h
index 2b396dc..764c335 100644
--- a/gdb/debuginfod-support.h
+++ b/gdb/debuginfod-support.h
@@ -1,5 +1,5 @@
/* debuginfod utilities for GDB.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/defs.h b/gdb/defs.h
index 5d52e66..bda4ef6 100644
--- a/gdb/defs.h
+++ b/gdb/defs.h
@@ -1,5 +1,5 @@
/* Basic, host-specific, and target-specific definitions for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/dicos-tdep.c b/gdb/dicos-tdep.c
index 3627426..4dfac76 100644
--- a/gdb/dicos-tdep.c
+++ b/gdb/dicos-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent, architecture-independent code for DICOS, for GDB.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -53,9 +53,7 @@ dicos_init_abi (struct gdbarch *gdbarch)
int
dicos_load_module_p (bfd *abfd, int header_size)
{
- long storage_needed;
int ret = 0;
- asymbol **symbol_table = NULL;
const char *symname = "Dicos_loadModuleInfo";
asection *section;
@@ -75,42 +73,19 @@ dicos_load_module_p (bfd *abfd, int header_size)
/* Dicos LMs always have a "Dicos_loadModuleInfo" symbol
defined. Look for it. */
- storage_needed = bfd_get_symtab_upper_bound (abfd);
- if (storage_needed < 0)
- {
- warning (_("Can't read elf symbols from %s: %s"),
- bfd_get_filename (abfd),
- bfd_errmsg (bfd_get_error ()));
- return 0;
- }
+ gdb::array_view<asymbol *> symbol_table
+ = gdb_bfd_canonicalize_symtab (abfd, false);
- if (storage_needed > 0)
+ for (asymbol *sym : symbol_table)
{
- long i, symcount;
-
- symbol_table = (asymbol **) xmalloc (storage_needed);
- symcount = bfd_canonicalize_symtab (abfd, symbol_table);
-
- if (symcount < 0)
- warning (_("Can't read elf symbols from %s: %s"),
- bfd_get_filename (abfd),
- bfd_errmsg (bfd_get_error ()));
- else
+ if (sym->name != NULL
+ && symname[0] == sym->name[0]
+ && strcmp (symname + 1, sym->name + 1) == 0)
{
- for (i = 0; i < symcount; i++)
- {
- asymbol *sym = symbol_table[i];
- if (sym->name != NULL
- && symname[0] == sym->name[0]
- && strcmp (symname + 1, sym->name + 1) == 0)
- {
- ret = 1;
- break;
- }
- }
+ ret = 1;
+ break;
}
}
- xfree (symbol_table);
return ret;
}
diff --git a/gdb/dicos-tdep.h b/gdb/dicos-tdep.h
index 5305deb..920cf3f 100644
--- a/gdb/dicos-tdep.h
+++ b/gdb/dicos-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent, architecture-independent code for DICOS, for GDB.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/dictionary.c b/gdb/dictionary.c
index 6925ad4..91dafd1 100644
--- a/gdb/dictionary.c
+++ b/gdb/dictionary.c
@@ -1,6 +1,6 @@
/* Routines for name->symbol lookups in GDB.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
Contributed by David Carlton <carlton@bactrian.org> and by Kealia,
Inc.
@@ -26,7 +26,7 @@
#include "buildsym.h"
#include "dictionary.h"
#include "gdbsupport/gdb-safe-ctype.h"
-#include <unordered_map>
+#include "gdbsupport/unordered_map.h"
#include "language.h"
/* This file implements dictionaries, which are tables that associate
@@ -915,29 +915,12 @@ struct multidictionary
unsigned short n_allocated_dictionaries;
};
-/* A hasher for enum language. Injecting this into std is a convenience
- when using unordered_map with C++11. */
-
-namespace std
-{
- template<> struct hash<enum language>
- {
- typedef enum language argument_type;
- typedef std::size_t result_type;
-
- result_type operator() (const argument_type &l) const noexcept
- {
- return static_cast<result_type> (l);
- }
- };
-} /* namespace std */
-
/* A helper function to collate symbols on the pending list by language. */
-static std::unordered_map<enum language, std::vector<symbol *>>
+static gdb::unordered_map<enum language, std::vector<symbol *>>
collate_pending_symbols_by_language (const struct pending *symbol_list)
{
- std::unordered_map<enum language, std::vector<symbol *>> nsyms;
+ gdb::unordered_map<enum language, std::vector<symbol *>> nsyms;
for (const pending *list_counter = symbol_list;
list_counter != nullptr; list_counter = list_counter->next)
@@ -960,7 +943,7 @@ mdict_create_hashed (struct obstack *obstack,
{
struct multidictionary *retval
= XOBNEW (obstack, struct multidictionary);
- std::unordered_map<enum language, std::vector<symbol *>> nsyms
+ gdb::unordered_map<enum language, std::vector<symbol *>> nsyms
= collate_pending_symbols_by_language (symbol_list);
/* Loop over all languages and create/populate dictionaries. */
@@ -1005,7 +988,7 @@ mdict_create_linear (struct obstack *obstack,
{
struct multidictionary *retval
= XOBNEW (obstack, struct multidictionary);
- std::unordered_map<enum language, std::vector<symbol *>> nsyms
+ gdb::unordered_map<enum language, std::vector<symbol *>> nsyms
= collate_pending_symbols_by_language (symbol_list);
/* Loop over all languages and create/populate dictionaries. */
@@ -1149,7 +1132,7 @@ void
mdict_add_pending (struct multidictionary *mdict,
const struct pending *symbol_list)
{
- std::unordered_map<enum language, std::vector<symbol *>> nsyms
+ gdb::unordered_map<enum language, std::vector<symbol *>> nsyms
= collate_pending_symbols_by_language (symbol_list);
for (const auto &pair : nsyms)
diff --git a/gdb/dictionary.h b/gdb/dictionary.h
index 79b2f70..530cd99 100644
--- a/gdb/dictionary.h
+++ b/gdb/dictionary.h
@@ -1,6 +1,6 @@
/* Routines for name->symbol lookups in GDB.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
Contributed by David Carlton <carlton@bactrian.org> and by Kealia,
Inc.
diff --git a/gdb/disable-implicit-rules.mk b/gdb/disable-implicit-rules.mk
index 2a4aade..1a2bb74 100644
--- a/gdb/disable-implicit-rules.mk
+++ b/gdb/disable-implicit-rules.mk
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This file is part of GDB.
diff --git a/gdb/disasm-flags.h b/gdb/disasm-flags.h
index 9f48d98..67415a1 100644
--- a/gdb/disasm-flags.h
+++ b/gdb/disasm-flags.h
@@ -1,6 +1,6 @@
/* Disassemble flags for GDB.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/disasm-selftests.c b/gdb/disasm-selftests.c
index 221b94f..3ccc174 100644
--- a/gdb/disasm-selftests.c
+++ b/gdb/disasm-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for disassembler for GDB, the GNU debugger.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -21,6 +21,7 @@
#include "gdbsupport/selftest.h"
#include "selftest-arch.h"
#include "gdbarch.h"
+#include "disasm-selftests.h"
namespace selftests {
@@ -29,7 +30,7 @@ namespace selftests {
of the returned buffer.
If there's no known instruction to disassemble for GDBARCH (because we
- haven't figured on out, not because no instructions exist) then nullptr
+ haven't figured one out, not because no instructions exist) then nullptr
is returned, and *LEN is set to 0. */
static const gdb_byte *
@@ -329,7 +330,93 @@ memory_error_test (struct gdbarch *gdbarch)
SELF_CHECK (saw_memory_error);
}
-} // namespace selftests
+/* Disassemble INSN (a GDBARCH insn), and return the result. */
+
+static std::string
+disassemble_one_insn_to_string (struct gdbarch *gdbarch,
+ gdb::array_view<const gdb_byte> insn)
+{
+ string_file buffer;
+
+ class gdb_disassembler_test : public gdb_disassembler
+ {
+ public:
+
+ explicit gdb_disassembler_test (struct gdbarch *gdbarch,
+ gdb::array_view<const gdb_byte> insn,
+ string_file &buffer)
+ : gdb_disassembler (gdbarch,
+ &buffer,
+ gdb_disassembler_test::read_memory),
+ m_insn (insn)
+ {
+ }
+
+ int
+ print_insn (CORE_ADDR memaddr)
+ {
+ try
+ {
+ return gdb_disassembler::print_insn (memaddr);
+ }
+ catch (const gdb_exception_error &)
+ {
+ return -1;
+ }
+ }
+
+ private:
+ gdb::array_view<const gdb_byte> m_insn;
+
+ static int read_memory (bfd_vma memaddr, gdb_byte *myaddr,
+ unsigned int len,
+ struct disassemble_info *info) noexcept
+ {
+ gdb_disassembler_test *self
+ = static_cast<gdb_disassembler_test *>(info->application_data);
+
+ if (len > self->m_insn.size ())
+ return -1;
+
+ for (size_t i = 0; i < len; i++)
+ myaddr[i] = self->m_insn[i];
+
+ return 0;
+ }
+ };
+
+ gdb_disassembler_test di (gdbarch, insn, buffer);
+ if (di.print_insn (0) != insn.size ())
+ return "";
+
+ return buffer.string ();
+}
+
+/* See disasm-selftests.h. */
+
+void
+disassemble_insn (gdbarch *gdbarch, gdb::byte_vector &insn,
+ const std::string &expected)
+{
+ std::string buffer
+ = disassemble_one_insn_to_string (gdbarch, insn);
+
+ bool check_ok = buffer == expected;
+
+ if (run_verbose () || !check_ok)
+ {
+ for (gdb_byte b : insn)
+ debug_printf ("0x%02x ", b);
+ debug_printf ("-> %s\n", buffer.c_str ());
+ }
+
+ if (!check_ok)
+ debug_printf ("expected: %s\n", expected.c_str ());
+
+ SELF_CHECK (check_ok);
+}
+
+} /* namespace selftests */
void _initialize_disasm_selftests ();
void
diff --git a/gdb/disasm-selftests.h b/gdb/disasm-selftests.h
new file mode 100644
index 0000000..29acf87
--- /dev/null
+++ b/gdb/disasm-selftests.h
@@ -0,0 +1,32 @@
+/* Copyright (C) 2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#ifndef GDB_DISASM_SELFTESTS_H
+#define GDB_DISASM_SELFTESTS_H
+
+namespace selftests
+{
+
+/* Check that disassembly of INSN (a GDBARCH insn) matches EXPECTED. */
+
+void
+disassemble_insn (gdbarch *gdbarch, gdb::byte_vector &insn,
+ const std::string &expected);
+
+}
+
+#endif /* GDB_DISASM_SELFTESTS_H */
diff --git a/gdb/disasm.c b/gdb/disasm.c
index 11d6efd..2a7a80c 100644
--- a/gdb/disasm.c
+++ b/gdb/disasm.c
@@ -1,6 +1,6 @@
/* Disassemble support for GDB.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/disasm.h b/gdb/disasm.h
index be500e5..13ac683 100644
--- a/gdb/disasm.h
+++ b/gdb/disasm.h
@@ -1,5 +1,5 @@
/* Disassemble support for GDB.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/displaced-stepping.c b/gdb/displaced-stepping.c
index 7869eba..7df45d6 100644
--- a/gdb/displaced-stepping.c
+++ b/gdb/displaced-stepping.c
@@ -1,6 +1,6 @@
/* Displaced stepping related things.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -328,3 +328,46 @@ When non-zero, displaced stepping specific debugging is enabled."),
show_debug_displaced,
&setdebuglist, &showdebuglist);
}
+
+/* See displaced-stepping.h. */
+
+bool
+default_supports_displaced_step (target_ops *target, thread_info *thread)
+{
+ /* Only check for the presence of `prepare`. The gdbarch verification ensures
+ that if `prepare` is provided, so is `finish`. */
+ gdbarch *arch = get_thread_regcache (thread)->arch ();
+ return gdbarch_displaced_step_prepare_p (arch);
+}
+
+/* See displaced-stepping.h. */
+
+displaced_step_prepare_status
+default_displaced_step_prepare (target_ops *target, thread_info *thread,
+ CORE_ADDR &displaced_pc)
+{
+ gdbarch *arch = get_thread_regcache (thread)->arch ();
+ return gdbarch_displaced_step_prepare (arch, thread, displaced_pc);
+}
+
+/* See displaced-stepping.h. */
+
+displaced_step_finish_status
+default_displaced_step_finish (target_ops *target,
+ thread_info *thread,
+ const target_waitstatus &status)
+{
+ gdbarch *arch = thread->displaced_step_state.get_original_gdbarch ();
+ return gdbarch_displaced_step_finish (arch, thread, status);
+}
+
+/* See displaced-stepping.h. */
+
+void
+default_displaced_step_restore_all_in_ptid (target_ops *target,
+ inferior *parent_inf,
+ ptid_t child_ptid)
+{
+ return gdbarch_displaced_step_restore_all_in_ptid (parent_inf->arch (),
+ parent_inf, child_ptid);
+}
diff --git a/gdb/displaced-stepping.h b/gdb/displaced-stepping.h
index d7a537a..16ec1d6 100644
--- a/gdb/displaced-stepping.h
+++ b/gdb/displaced-stepping.h
@@ -1,6 +1,6 @@
/* Displaced stepping related things.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -24,6 +24,8 @@
#include "gdbsupport/byte-vector.h"
struct gdbarch;
+struct inferior;
+struct target_ops;
struct thread_info;
/* True if we are debugging displaced stepping. */
@@ -48,6 +50,26 @@ enum displaced_step_prepare_status
DISPLACED_STEP_PREPARE_STATUS_UNAVAILABLE,
};
+/* Return a string representation of STATUS. */
+
+static inline const char *
+displaced_step_prepare_status_str (displaced_step_prepare_status status)
+{
+ switch (status)
+ {
+ case DISPLACED_STEP_PREPARE_STATUS_OK:
+ return "OK";
+
+ case DISPLACED_STEP_PREPARE_STATUS_CANT:
+ return "CANT";
+
+ case DISPLACED_STEP_PREPARE_STATUS_UNAVAILABLE:
+ return "UNAVAILABLE";
+ }
+
+ gdb_assert_not_reached ("invalid displaced_step_prepare_status value");
+}
+
enum displaced_step_finish_status
{
/* Either the instruction was stepped and fixed up, or the specified thread
@@ -59,6 +81,23 @@ enum displaced_step_finish_status
DISPLACED_STEP_FINISH_STATUS_NOT_EXECUTED,
};
+/* Return a string representation of STATUS. */
+
+static inline const char *
+displaced_step_finish_status_str (displaced_step_finish_status status)
+{
+ switch (status)
+ {
+ case DISPLACED_STEP_FINISH_STATUS_OK:
+ return "OK";
+
+ case DISPLACED_STEP_FINISH_STATUS_NOT_EXECUTED:
+ return "NOT_EXECUTED";
+ }
+
+ gdb_assert_not_reached ("invalid displaced_step_finish_status value");
+}
+
/* Data returned by a gdbarch displaced_step_copy_insn method, to be passed to
the matching displaced_step_fixup method. */
@@ -207,4 +246,32 @@ private:
std::vector<displaced_step_buffer> m_buffers;
};
+/* Default implementation of target_ops::supports_displaced_step.
+
+ Forwards the call to the architecture of THREAD. */
+
+bool default_supports_displaced_step (target_ops *target, thread_info *thread);
+
+/* Default implementation of target_ops::displaced_step_prepare.
+
+ Forwards the call to the architecture of THREAD. */
+
+displaced_step_prepare_status default_displaced_step_prepare
+ (target_ops *target, thread_info *thread, CORE_ADDR &displaced_pc);
+
+/* Default implementation of target_ops::displaced_step_finish.
+
+ Forwards the call to the architecture of THREAD. */
+
+displaced_step_finish_status default_displaced_step_finish
+ (target_ops *target, thread_info *thread, const target_waitstatus &status);
+
+/* Default implementation of target_ops::displaced_step_restore_all_in_ptid.
+
+ Forwards the call to the architecture of PARENT_INF. */
+
+void default_displaced_step_restore_all_in_ptid (target_ops *target,
+ inferior *parent_inf,
+ ptid_t child_ptid);
+
#endif /* GDB_DISPLACED_STEPPING_H */
diff --git a/gdb/doc/Doxyfile-base.in b/gdb/doc/Doxyfile-base.in
index 709a013..dc42b53 100644
--- a/gdb/doc/Doxyfile-base.in
+++ b/gdb/doc/Doxyfile-base.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# Base doxyfile for GDB.
# This file is part of GDB.
diff --git a/gdb/doc/Doxyfile-gdb-api.in b/gdb/doc/Doxyfile-gdb-api.in
index d3ba254..b4d6d5f 100644
--- a/gdb/doc/Doxyfile-gdb-api.in
+++ b/gdb/doc/Doxyfile-gdb-api.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# Doxygen file for GDB internal API.
# This file is part of GDB.
diff --git a/gdb/doc/Doxyfile-gdb-xref.in b/gdb/doc/Doxyfile-gdb-xref.in
index 3ec76b8..ce5aaaa 100644
--- a/gdb/doc/Doxyfile-gdb-xref.in
+++ b/gdb/doc/Doxyfile-gdb-xref.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# Doxygen file for a full GDB cross-reference.
# This file is part of GDB.
diff --git a/gdb/doc/Doxyfile-gdbserver.in b/gdb/doc/Doxyfile-gdbserver.in
index 0f7b34b..c130115 100644
--- a/gdb/doc/Doxyfile-gdbserver.in
+++ b/gdb/doc/Doxyfile-gdbserver.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# Doxygen file for a GDBserver cross-reference.
# This file is part of GDB.
diff --git a/gdb/doc/Makefile.in b/gdb/doc/Makefile.in
index c75714b..b9c79b9 100644
--- a/gdb/doc/Makefile.in
+++ b/gdb/doc/Makefile.in
@@ -1,4 +1,4 @@
-##Copyright (C) 1991-2024 Free Software Foundation, Inc.
+##Copyright (C) 1991-2025 Free Software Foundation, Inc.
# Makefile for GDB documentation.
# This file is part of GDB.
diff --git a/gdb/doc/agentexpr.texi b/gdb/doc/agentexpr.texi
index b15953f..970f930 100644
--- a/gdb/doc/agentexpr.texi
+++ b/gdb/doc/agentexpr.texi
@@ -7,7 +7,7 @@
@c This file is part of the GDB manual.
@c
-@c Copyright (C) 2003--2024 Free Software Foundation, Inc.
+@c Copyright (C) 2003--2025 Free Software Foundation, Inc.
@c
@c See the file gdb.texinfo for copying conditions.
diff --git a/gdb/doc/all-cfg.texi b/gdb/doc/all-cfg.texi
index 4ba231f..5d2af66 100644
--- a/gdb/doc/all-cfg.texi
+++ b/gdb/doc/all-cfg.texi
@@ -1,6 +1,6 @@
@c GDB MANUAL configuration file.
@c
-@c Copyright (C) 1993--2024 Free Software Foundation, Inc.
+@c Copyright (C) 1993--2025 Free Software Foundation, Inc.
@c
@c NOTE: While the GDB manual is configurable (by changing these
@c switches), its configuration is ***NOT*** automatically tied in to
diff --git a/gdb/doc/annotate.texinfo b/gdb/doc/annotate.texinfo
index 8593b00..eccdb87 100644
--- a/gdb/doc/annotate.texinfo
+++ b/gdb/doc/annotate.texinfo
@@ -27,7 +27,7 @@
@c cost. Having a smaller cheaper manual helps the GNU Press with its sales.
@copying
-Copyright @copyright{} 1994--2024 Free Software Foundation, Inc.
+Copyright @copyright{} 1994--2025 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -147,11 +147,11 @@ the annotation interface was marked as deprecated.
This chapter discusses the known problems.
-@section Dependant on @sc{cli} output
+@section Dependent on @sc{cli} output
The annotation interface works by interspersing markups with
@value{GDBN} normal command-line interpreter output. Unfortunately, this
-makes the annotation client dependant on not just the annotations, but
+makes the annotation client dependent on not just the annotations, but
also the @sc{cli} output. This is because the client is forced to
assume that specific @value{GDBN} commands provide specific information.
Any change to @value{GDBN}'s @sc{cli} output modifies or removes that
diff --git a/gdb/doc/doxy-index.in b/gdb/doc/doxy-index.in
index 67636bb..2da8658 100644
--- a/gdb/doc/doxy-index.in
+++ b/gdb/doc/doxy-index.in
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2025 Free Software Foundation, Inc.
Navigation page for Doxygen-generated GDB info.
diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
index b37266b..4ef6406 100644
--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -1,5 +1,5 @@
\input texinfo @c -*-texinfo-*-
-@c Copyright (C) 1988--2024 Free Software Foundation, Inc.
+@c Copyright (C) 1988--2025 Free Software Foundation, Inc.
@c
@c %**start of header
@c makeinfo ignores cmds prev to setfilename, so its arg cannot make use
@@ -50,7 +50,7 @@
@copying
@c man begin COPYRIGHT
-Copyright @copyright{} 1988-2024 Free Software Foundation, Inc.
+Copyright @copyright{} 1988-2025 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
@@ -120,7 +120,7 @@ This is the @value{EDITION} Edition, for @value{GDBN}
@end ifset
Version @value{GDBVN}.
-Copyright (C) 1988-2024 Free Software Foundation, Inc.
+Copyright (C) 1988-2025 Free Software Foundation, Inc.
This edition of the GDB manual is dedicated to the memory of Fred
Fish. Fred was a long-standing contributor to GDB and to Free
@@ -3807,7 +3807,7 @@ Thread 1 "main" received signal SIGINT, Interrupt.
@table @code
@anchor{info_threads}
@kindex info threads
-@item info threads @r{[}-gid@r{]} @r{[}@var{thread-id-list}@r{]}
+@item info threads @r{[}-gid@r{]} @r{[}-stopped@r{]} @r{[}-running@r{]} @r{[}@var{thread-id-list}@r{]}
Display information about one or more threads. With no arguments
displays information about all threads. You can specify the list of
@@ -3857,6 +3857,14 @@ If you're debugging multiple inferiors, @value{GDBN} displays thread
IDs using the qualified @var{inferior-num}.@var{thread-num} format.
Otherwise, only @var{thread-num} is shown.
+If you specify the @samp{-stopped} option, @value{GDBN} filters the
+output of the command to print the stopped threads only. Similarly,
+if you specify the @samp{-running} option, @value{GDBN} filters the
+output to print the running threads only. These options can be
+helpful to reduce the output list if there is a large number of
+threads. If you specify both options, @value{GDBN} prints both
+stopped and running threads.
+
If you specify the @samp{-gid} option, @value{GDBN} displays a column
indicating each thread's global thread ID:
@@ -4090,6 +4098,56 @@ When @samp{on} @value{GDBN} will print additional messages when
threads are created and deleted.
@end table
+@cindex thread local storage
+@cindex @acronym{TLS}
+For some debugging targets, @value{GDBN} has support for accessing
+variables that reside in Thread Local Storage (@acronym{TLS}).
+@acronym{TLS} variables are similar to global variables, except that
+each thread has its own copy of the variable. While often used in
+multi-threaded programs, @acronym{TLS} variables can also be used in
+programs without threads. The C library variable @var{errno} is,
+perhaps, the most prominent example of a @acronym{TLS} variable that
+is frequently used in non-threaded programs. For targets where
+@value{GDBN} does not have good @acronym{TLS} support, printing or
+changing the value of @var{errno} might not be directly possible.
+
+@sc{gnu}/Linux and FreeBSD targets have support for accessing
+@acronym{TLS} variables. On @sc{gnu}/Linux, the helper library,
+@code{libthread_db}, is used to help resolve the addresses of
+@acronym{TLS} variables. Some FreeBSD and some @sc{gnu}/Linux targets
+also have @value{GDBN}-internal @acronym{TLS} resolution code.
+@sc{gnu}/Linux targets will attempt to use the @acronym{TLS} address
+lookup functionality provided by @code{libthread_db}, but will fall
+back to using its internal @acronym{TLS} support when
+@code{libthread_db} is not available. This can happen in
+cross-debugging scenarios or when debugging programs that are linked
+in such a way that @code{libthread_db} support is unavailable -- this
+includes statically linked programs, linking against @acronym{GLIBC}
+versions earlier than 2.34, but not with @code{libpthread}, and use of
+other (non-@acronym{GLIBC}) C libraries.
+
+@table @code
+@kindex maint set force-internal-tls-address-lookup
+@kindex maint show force-internal-tls-address-lookup
+@cindex internal @acronym{TLS} address lookup
+@item maint set force-internal-tls-address-lookup
+@itemx maint show force-internal-tls-address-lookup
+Turns on or off forced use of @value{GDBN}-internal @acronym{TLS}
+address lookup code. Use @code{on} to enable and @code{off} to
+disable. The default for this setting is @code{off}.
+
+When disabled, @value{GDBN} will attempt to use a helper
+@code{libthread_db} library if possible, but will fall back to use of
+its own internal @acronym{TLS} address lookup mechanisms if necessary.
+
+When enabled, @value{GDBN} will only use @value{GDBN}'s internal
+@acronym{TLS} address lookup mechanisms, if they exist.
+
+This command is only available for @sc{gnu}/Linux targets. Its
+primary use is for testing -- certain tests in the @value{GDBN} test
+suite use this command to force use of internal TLS address lookup.
+@end table
+
@node Forks
@section Debugging Forks
@@ -6900,7 +6958,7 @@ fatal so it can carry out the purpose of the interrupt: to kill the program.
@value{GDBN} has the ability to detect any occurrence of a signal in your
program. You can tell @value{GDBN} in advance what to do for each kind of
-signal.
+signal, apart from SIGKILL, which has its usual effect regardless.
When specifying a signal by number, @value{GDBN} translates the number
to the target platform according to the corresponding signal name.
@@ -7807,9 +7865,9 @@ previous instruction; otherwise, it will work in record mode, if the
platform supports reverse execution, or stop if not.
Currently, process record and replay is supported on ARM, Aarch64,
-LoongArch, Moxie, PowerPC, PowerPC64, S/390, and x86 (i386/amd64) running
-GNU/Linux. Process record and replay can be used both when native
-debugging, and when remote debugging via @code{gdbserver}.
+LoongArch, Moxie, PowerPC, PowerPC64, S/390, RISC-V and x86 (i386/amd64)
+running GNU/Linux. Process record and replay can be used both when
+native debugging, and when remote debugging via @code{gdbserver}.
When recording an inferior, @value{GDBN} may print auxiliary information
during stepping commands and commands displaying the execution history.
@@ -9689,20 +9747,21 @@ Any expression valid in the current working language.
@item @var{funcaddr}
An address of a function or procedure derived from its name. In C,
-C@t{++}, Objective-C, Fortran, minimal, and assembly, this is
+C@t{++}, Objective-C, Fortran, Pascal, Modula-2, minimal, and assembly, this is
simply the function's name @var{function} (and actually a special case
-of a valid expression). In Pascal and Modula-2, this is
-@code{&@var{function}}. In Ada, this is @code{@var{function}'Address}
-(although the Pascal form also works).
+of a valid expression). In Ada, this is @code{@var{function}'Address}
+(although @code{&@var{function}} also works).
This form specifies the address of the function's first instruction,
before the stack frame and arguments have been set up.
-@item '@var{filename}':@var{funcaddr}
+@item '@var{filename}'::@var{funcaddr}
Like @var{funcaddr} above, but also specifies the name of the source
file explicitly. This is useful if the name of the function does not
specify the function unambiguously, e.g., if there are several
-functions with identical names in different source files.
+functions with identical names in different source files,
+see @ref{variable name conflict}. This may not be supported for all
+languages, see @ref{Expressions}.
@end table
@node Edit
@@ -10843,8 +10902,9 @@ this manual are in C. @xref{Languages, , Using @value{GDBN} with Different
Languages}, for information on how to use expressions in other
languages.
-In this section, we discuss operators that you can use in @value{GDBN}
-expressions regardless of your programming language.
+In this section, we discuss operators that may be available in @value{GDBN}
+expressions in addition to those of your programming language. However,
+they are not necessarily available in all working languages.
@cindex casts, in expressions
Casts are supported in all languages, not just in C, because it is so
@@ -10863,6 +10923,7 @@ to programming languages:
@item ::
@samp{::} allows you to specify a variable in terms of the file or
function where it is defined. @xref{Variables, ,Program Variables}.
+This is currently not supported in Ada, Rust, Pascal, Modula-2 and D.
@cindex @{@var{type}@}
@cindex type casting memory
@@ -11001,6 +11062,7 @@ executing within the function @code{foo}, but you can only use or
examine the variable @code{b} while your program is executing inside
the block where @code{b} is declared.
+@anchor{variable name conflict}
@cindex variable name conflict
There is an exception: you can refer to a variable or function whose
scope is a single source file even if the current execution point is not
@@ -11008,7 +11070,8 @@ in this file. But it is possible to have more than one such variable or
function with the same name (in different source files). If that
happens, referring to that name has unpredictable effects. If you wish,
you can specify a static variable in a particular function or file by
-using the colon-colon (@code{::}) notation:
+using the colon-colon (@code{::}) notation (this may not be supported for all
+languages, @pxref{Expressions}):
@cindex colon-colon, context for variables/functions
@ifnotinfo
@@ -13041,6 +13104,18 @@ variable which may be @samp{truecolor} or @samp{24bit}. Other color spaces are
determined by the "Co" termcap which in turn depends on the @env{TERM}
environment variable.
+@vindex $_active_linker_namespaces@r{, convenience variable}
+@item $_active_linker_namespaces
+Number of active linker namespaces in the inferior (@pxref{Files}). In systems
+with no support for linker namespaces, this variable will always be set to
+@samp{1}.
+
+@vindex $_linker_namespace@r{, convenience variable}
+@item $_linker_namespace
+The namespace which contains the current location in the inferior. This returns
+@value{GDBN}'s internal numbering for the namespace. In systems with no support
+for linker namespaces, this variable will always be set to @samp{0}.
+
@end table
@node Convenience Funs
@@ -22161,6 +22236,24 @@ Print the names of the shared libraries which are currently loaded
that match @var{regex}. If @var{regex} is omitted then print
all shared libraries that are loaded.
+For each library, @value{GDBN} also lists the address range allocated
+to that library if it can be determined. If the address range cannot
+be determined then the address range for the @code{.text} section from
+the library will be listed. If the @code{.text} section cannot be
+found then no addresses will be listed.
+
+On systems that support linker namespaces, the output includes an
+additional column @code{NS} if the inferior has more than one active
+namespace when the command is used. This column the linker namespace
+that the shared library was loaded into.
+
+@cindex linker namespaces
+@dfn{Linker namespaces} are a feature of some standard libraries, that allow
+shared objects to be loaded in isolated environment, eliminating the
+possibility that those objects may cross-talk. Each set of isolated
+shared objects is said to belong to a ``namespace'', and linker related
+actions such as relocations do not cross namespace boundaries.
+
@kindex info dll
@item info dll @var{regex}
This is an alias of @code{info sharedlibrary}.
@@ -22196,6 +22289,22 @@ less useful than setting a catchpoint, because it does not allow for
conditions or commands as a catchpoint does.
@table @code
+@kindex info linker-namespaces
+@item info linker-namespaces
+@item info linker-namespaces @code{[[@var{n}]]}
+
+With no argument, print the number of linker namespaces which are
+currently active --- that is, namespaces that have libraries loaded
+into them. Then, it prints the number of libraries loaded into each
+namespace, and all the libraries loaded into them, in the same way
+as @code{info sharedlibrary}.
+
+If an argument @code{[[@var{n}]]} is provided, only prints the
+library count and the libraried for the provided namespace @var{n}.
+The surrounding square brackets are optional.
+@end table
+
+@table @code
@item set stop-on-solib-events
@kindex set stop-on-solib-events
This command controls whether @value{GDBN} should give you control
@@ -22865,10 +22974,9 @@ To create an index file, use the @code{save gdb-index} command:
@kindex save gdb-index
Create index files for all symbol files currently known by
@value{GDBN}. For each known @var{symbol-file}, this command by
-default creates it produces a single file
-@file{@var{symbol-file}.gdb-index}. If you invoke this command with
-the @option{-dwarf-5} option, it produces 2 files:
-@file{@var{symbol-file}.debug_names} and
+default produces a single file @file{@var{symbol-file}.gdb-index}.
+If you invoke this command with the @option{-dwarf-5} option, it
+produces 2 files: @file{@var{symbol-file}.debug_names} and
@file{@var{symbol-file}.debug_str}. The files are created in the
given @var{directory}.
@@ -22976,16 +23084,48 @@ The DWARF specification documents an optional index section called
section. However, in order to work with @value{GDBN}, some extensions
were necessary.
-@value{GDBN} uses the augmentation string @samp{GDB2}. Earlier
-versions used the string @samp{GDB}, but these versions of the index
-are no longer supported.
+@value{GDBN} uses an augmentation string to specify which extensions
+are in use and to allow support of backwards-incompatible changes in
+this functionality. The augmentation string has the form
+@samp{GDB@var{n}}, where @var{n} is an integral version number of the
+extensions, which is incremented when the extensions are added or
+modified. The smallest @var{n} is 2; earlier versions of
+@value{GDBN} used just @samp{GDB} with no version number, but these
+versions of the index are no longer supported.
+
+Here is a list of augmentation string versions along with the changes
+introduced with each version, compared to the previous version.
+
+@table @samp
+
+@item GDB2
+Specifies the use of attributes @code{DW_IDX_GNU_internal},
+@code{DW_IDX_GNU_main}, @code{DW_IDX_GNU_language} and
+@code{DW_IDX_GNU_linkage_name}, described below.
+
+@item GDB3
+Changes the semantic of the @code{DW_IDX_parent} attribute.
+With @samp{GDB2}, @code{DW_IDX_parent} provided an offset into the name
+table. With @samp{GDB3}, it now provides an offset to the index entry
+of the parent, relative to the start of the entry pool region.
+
+@end table
+
+@value{GDBN} produces indexes with the augmentation string @samp{GDB3}.
+
+@value{GDBN} can read indexes with augmentation strings @samp{GDB2} or
+@samp{GDB3}. @value{GDBN} does not support reading indexes with any
+other augmentation strings.
@value{GDBN} does not use the specified hash table. Therefore,
because this hash table is optional, @value{GDBN} also does not write
it.
-@value{GDBN} also generates and uses some extra index attributes:
+@value{GDBN} generates and uses the following non-standard index
+attributes:
+
@table @code
+
@item DW_IDX_GNU_internal
This has the value @samp{0x2000}. It is a flag that, when set,
indicates that the associated entry has @code{static} linkage.
@@ -23002,6 +23142,7 @@ indicating the language of the associated entry.
This has the value @samp{0x2004}. It is a flag that, when set,
indicates that the associated entry is a linkage name, and not a
source name.
+
@end table
@node Symbol Errors
@@ -23512,7 +23653,7 @@ on the @code{gdbserver} command line or use the @option{--attach} option
on the @code{gdbserver} command line, or you can load the program or attach
to it using @value{GDBN} commands after connecting to @code{gdbserver}.
-@anchor{--multi Option in Types of Remote Connnections}
+@anchor{--multi Option in Types of Remote Connections}
You can start @code{gdbserver} without supplying an initial command to run
or process ID to attach. To do this, use the @option{--multi} command line
option. Then you can connect using @code{target extended-remote} and start
@@ -24001,7 +24142,7 @@ You can use the @option{--multi} option to start @code{gdbserver} without
specifying a program to debug or a process to attach to. Then you can
attach in @code{target extended-remote} mode and run or attach to a
program. For more information,
-@pxref{--multi Option in Types of Remote Connnections}.
+@pxref{--multi Option in Types of Remote Connections}.
@cindex @option{--debug}, @code{gdbserver} option
The @option{--debug[=option1,option2,@dots{}]} option tells
@@ -24641,6 +24782,10 @@ future connections is shown. The available settings are:
@tab @code{vFile:stat}
@tab Host I/O
+@item @code{hostio-lstat-packet}
+@tab @code{vFile:lstat}
+@tab Host I/O
+
@item @code{hostio-setfs-packet}
@tab @code{vFile:setfs}
@tab Host I/O
@@ -26504,8 +26649,9 @@ Show whether AArch64 debugging messages are displayed.
@end table
-@subsubsection AArch64 SVE.
-@cindex AArch64 SVE.
+@subsubsection AArch64 Scalable Vector Extension
+@cindex Scalable Vector Extension, AArch64
+@cindex SVE, AArch64
When @value{GDBN} is debugging the AArch64 architecture, if the Scalable Vector
Extension (SVE) is present, then @value{GDBN} will provide the vector registers
@@ -26544,11 +26690,10 @@ internally by @value{GDBN} and the Linux Kernel.
@end itemize
-@subsubsection AArch64 SME.
+@subsubsection AArch64 Scalable Matrix Extension
@anchor{AArch64 SME}
-@cindex SME
-@cindex AArch64 SME
-@cindex Scalable Matrix Extension
+@cindex Scalable Matrix Extension, AArch64
+@cindex SME, AArch64
The Scalable Matrix Extension (@url{https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/scalable-matrix-extension-armv9-a-architecture, @acronym{SME}})
is an AArch64 architecture extension that expands on the concept of the
@@ -26740,11 +26885,10 @@ incorrect values for SVE registers (when in streaming mode).
This is the same limitation we have for the @acronym{SVE} registers, and there
are plans to address this limitation going forward.
-@subsubsection AArch64 SME2.
+@subsubsection AArch64 Scalable Matrix Extension 2
@anchor{AArch64 SME2}
-@cindex SME2
-@cindex AArch64 SME2
-@cindex Scalable Matrix Extension 2
+@cindex Scalable Matrix Extension 2, AArch64
+@cindex SME2, AArch64
The Scalable Matrix Extension 2 is an AArch64 architecture extension that
further expands the @acronym{SME} extension with the following:
@@ -26784,8 +26928,9 @@ For more information about @acronym{SME2}, please refer to the
official @url{https://developer.arm.com/documentation/ddi0487/latest,
architecture documentation}.
-@subsubsection AArch64 Pointer Authentication.
-@cindex AArch64 Pointer Authentication.
+@subsubsection AArch64 Pointer Authentication
+@cindex Pointer Authentication, AArch64
+@cindex PAC, AArch64
@anchor{AArch64 PAC}
When @value{GDBN} is debugging the AArch64 architecture, and the program is
@@ -26795,8 +26940,9 @@ When GDB prints a backtrace, any addresses that required unmasking will be
postfixed with the marker [PAC]. When using the MI, this is printed as part
of the @code{addr_flags} field.
-@subsubsection AArch64 Memory Tagging Extension.
-@cindex AArch64 Memory Tagging Extension.
+@subsubsection AArch64 Memory Tagging Extension
+@cindex Memory Tagging Extension, AArch64
+@cindex MTE, AArch64
When @value{GDBN} is debugging the AArch64 architecture, the program is
using the v8.5-A feature Memory Tagging Extension (MTE) and there is support
@@ -27848,6 +27994,19 @@ value, then @value{GDBN} will change this to @samp{off} at startup.
@item show style enabled
Show the current state of styling.
+@item set style emoji @samp{auto|on|off}
+Enable or disable the use of emoji. On most hosts, the default is
+@samp{auto}, meaning that emoji will only be used if the host
+character set is @samp{UTF-8}; however, on Windows the default is
+@samp{off} when using the console. Note that disabling styling as a
+whole will also prevent emoji display.
+
+Currently, emoji are printed whenever @value{GDBN} reports an error or
+a warning.
+
+@item show style emoji
+Show the current state of emoji output.
+
@item set style sources @samp{on|off}
Enable or disable source code styling. This affects whether source
code, such as the output of the @code{list} command, is styled. The
@@ -27864,6 +28023,18 @@ then it will be used.
@item show style sources
Show the current state of source code styling.
+@anchor{warning-prefix}
+@item set style warning-prefix
+@itemx show style warning-prefix
+@itemx set style error-prefix
+@itemx show style error-prefix
+
+These commands control the prefix that is printed before warnings and
+errors, respectively. This functionality is intended for use with
+emoji display, and so the prefixes are only displayed if emoji styling
+is enabled. The defaults are the warning sign emoji for warnings, and
+and the cross mark emoji for errors.
+
@item set style tui-current-position @samp{on|off}
Enable or disable styling of the source and assembly code highlighted
by the TUI's current position indicator. The default is @samp{off}.
@@ -30005,7 +30176,7 @@ but it was deemed this would be confusing, and so is not allowed.}.
For example, if you often use the command @code{thread apply all}
specifying to work on the threads in ascending order and to continue in case it
-encounters an error, you can tell @value{GDBN} to automatically preprend
+encounters an error, you can tell @value{GDBN} to automatically prepend
the @code{-ascending} and @code{-c} options by using:
@smallexample
@@ -31166,138 +31337,13 @@ appropriate @code{set style} commands. @xref{Output Styling}.
@cindex Emacs
@cindex @sc{gnu} Emacs
-A special interface allows you to use @sc{gnu} Emacs to view (and
-edit) the source files for the program you are debugging with
-@value{GDBN}.
-
-To use this interface, use the command @kbd{M-x gdb} in Emacs. Give the
-executable file you want to debug as an argument. This command starts
-@value{GDBN} as a subprocess of Emacs, with input and output through a newly
-created Emacs buffer.
-@c (Do not use the @code{-tui} option to run @value{GDBN} from Emacs.)
-
-Running @value{GDBN} under Emacs can be just like running @value{GDBN} normally except for two
-things:
-
-@itemize @bullet
-@item
-All ``terminal'' input and output goes through an Emacs buffer, called
-the GUD buffer.
-
-This applies both to @value{GDBN} commands and their output, and to the input
-and output done by the program you are debugging.
-
-This is useful because it means that you can copy the text of previous
-commands and input them again; you can even use parts of the output
-in this way.
-
-All the facilities of Emacs' Shell mode are available for interacting
-with your program. In particular, you can send signals the usual
-way---for example, @kbd{C-c C-c} for an interrupt, @kbd{C-c C-z} for a
-stop.
-
-@item
-@value{GDBN} displays source code through Emacs.
-
-Each time @value{GDBN} displays a stack frame, Emacs automatically finds the
-source file for that frame and puts an arrow (@samp{=>}) at the
-left margin of the current line. Emacs uses a separate buffer for
-source display, and splits the screen to show both your @value{GDBN} session
-and the source.
-
-Explicit @value{GDBN} @code{list} or search commands still produce output as
-usual, but you probably have no reason to use them from Emacs.
-@end itemize
-
-We call this @dfn{text command mode}. Emacs 22.1, and later, also uses
-a graphical mode, enabled by default, which provides further buffers
-that can control the execution and describe the state of your program.
-@xref{GDB Graphical Interface,,, Emacs, The @sc{gnu} Emacs Manual}.
-
-If you specify an absolute file name when prompted for the @kbd{M-x
-gdb} argument, then Emacs sets your current working directory to where
-your program resides. If you only specify the file name, then Emacs
-sets your current working directory to the directory associated
-with the previous buffer. In this case, @value{GDBN} may find your
-program by searching your environment's @env{PATH} variable, but on
-some operating systems it might not find the source. So, although the
-@value{GDBN} input and output session proceeds normally, the auxiliary
-buffer does not display the current source and line of execution.
-
-The initial working directory of @value{GDBN} is printed on the top
-line of the GUD buffer and this serves as a default for the commands
-that specify files for @value{GDBN} to operate on. @xref{Files,
-,Commands to Specify Files}.
-
-By default, @kbd{M-x gdb} calls the program called @file{gdb}. If you
-need to call @value{GDBN} by a different name (for example, if you
-keep several configurations around, with different names) you can
-customize the Emacs variable @code{gud-gdb-command-name} to run the
-one you want.
-
-In the GUD buffer, you can use these special Emacs commands in
-addition to the standard Shell mode commands:
-
-@table @kbd
-@item C-h m
-Describe the features of Emacs' GUD Mode.
-
-@item C-c C-s
-Execute to another source line, like the @value{GDBN} @code{step} command; also
-update the display window to show the current file and location.
-
-@item C-c C-n
-Execute to next source line in this function, skipping all function
-calls, like the @value{GDBN} @code{next} command. Then update the display window
-to show the current file and location.
-
-@item C-c C-i
-Execute one instruction, like the @value{GDBN} @code{stepi} command; update
-display window accordingly.
-
-@item C-c C-f
-Execute until exit from the selected stack frame, like the @value{GDBN}
-@code{finish} command.
-@item C-c C-r
-Continue execution of your program, like the @value{GDBN} @code{continue}
-command.
-
-@item C-c <
-Go up the number of frames indicated by the numeric argument
-(@pxref{Arguments, , Numeric Arguments, Emacs, The @sc{gnu} Emacs Manual}),
-like the @value{GDBN} @code{up} command.
-
-@item C-c >
-Go down the number of frames indicated by the numeric argument, like the
-@value{GDBN} @code{down} command.
-@end table
-
-In any source file, the Emacs command @kbd{C-x @key{SPC}} (@code{gud-break})
-tells @value{GDBN} to set a breakpoint on the source line point is on.
-
-In text command mode, if you type @kbd{M-x speedbar}, Emacs displays a
-separate frame which shows a backtrace when the GUD buffer is current.
-Move point to any frame in the stack and type @key{RET} to make it
-become the current frame and display the associated source in the
-source buffer. Alternatively, click @kbd{Mouse-2} to make the
-selected frame become the current one. In graphical mode, the
-speedbar displays watch expressions.
+In @sc{gnu} Emacs there is a special interface to @value{GDBN}, which
+facilitates viewing the source code for the program you are debugging.
+There is also an IDE-like interface to GDB, with specialized buffers for
+breakpoints, stack frames and other aspects of the debugger state.
-If you accidentally delete the source-display buffer, an easy way to get
-it back is to type the command @code{f} in the @value{GDBN} buffer, to
-request a frame display; when you run under Emacs, this recreates
-the source buffer if necessary to show you the context of the current
-frame.
-
-The source files displayed in Emacs are in ordinary Emacs buffers
-which are visiting the source files in the usual way. You can edit
-the files with these buffers if you wish; but keep in mind that @value{GDBN}
-communicates with Emacs in terms of line numbers. If you add or
-delete lines from the text, the line numbers that @value{GDBN} knows cease
-to correspond properly with the code.
-
-A more detailed description of Emacs' interaction with @value{GDBN} is
+A detailed description of Emacs' interaction with @value{GDBN} is
given in the Emacs manual (@pxref{Debuggers,,, Emacs, The @sc{gnu}
Emacs Manual}).
@@ -32253,12 +32299,22 @@ to this library.
@item =library-unloaded,...
Reports that a library was unloaded by the program. This notification
-has 3 fields---@var{id}, @var{target-name} and @var{host-name} with
-the same meaning as for the @code{=library-loaded} notification.
+has the following fields---@var{id}, @var{target-name},
+@var{host-name} and @var{ranges} with the same meaning as for the
+@code{=library-loaded} notification.
+
+It is possible that a library can appear multiple times in an
+inferior's library list, but the library is only mapped once into the
+inferior's address space. When this happens, and one copy of the
+library is unloaded, but there are remaining copies, the
+@var{still-in-use} field will be @samp{true}. In all other
+situations, the @var{still-in-use} field will have the value
+@samp{false}.
+
The @var{thread-group} field, if present, specifies the id of the
-thread group in whose context the library was unloaded. If the field is
-absent, it means the library was unloaded in the context of all present
-thread groups.
+thread group in whose context the library was unloaded. If the field
+is absent, it means the library was unloaded in the context of all
+present thread groups.
@item =traceframe-changed,num=@var{tfnum},tracepoint=@var{tpnum}
@itemx =traceframe-changed,end
@@ -32387,6 +32443,11 @@ by a symbol name.
If this breakpoint is pending, this field is present and holds the
text used to set the breakpoint, as entered by the user.
+@value{GDBN}'s internal breakpoints (@pxref{maint info breakpoints})
+can sometimes become pending too, for these breakpoints the
+@var{pending} field will be empty as @value{GDBN} automatically
+creates these breakpoints as shared libraries are loaded.
+
@item evaluated-by
Where this breakpoint's condition is evaluated, either @samp{host} or
@samp{target}.
@@ -41293,7 +41354,7 @@ libpython is present and found at configure time.) Python makes
@value{GDBN} scripting much more powerful than the restricted CLI
scripting language. If your host does not have Python installed, you
can find it on @url{http://www.python.org/download/}. The oldest version
-of Python supported by GDB is 3.0.1. The optional argument @var{python}
+of Python supported by GDB is 3.4. The optional argument @var{python}
is used to find the Python headers and libraries. It can be either
the name of a Python executable, or the name of the directory in which
Python is installed.
@@ -41491,6 +41552,13 @@ into remote agent bytecodes and display them as a disassembled list.
This command is useful for debugging the agent version of dynamic
printf (@pxref{Dynamic Printf}).
+@kindex maint canonicalize
+@item maint canonicalize @var{name}
+Print the canonical form of @var{name}, a C@t{++} name. Because a
+C@t{++} name may have multiple possible spellings, @value{GDBN}
+computes a canonical form of a name for internal use. For example,
+@code{short int} and @code{short} are two ways to name the same type.
+
@kindex maint info breakpoints
@anchor{maint info breakpoints}
@item maint info breakpoints
@@ -42346,7 +42414,7 @@ required.
@end table
@var{name} and @var{class} are always case insensitive. If no option
-starting wth @code{-} is given, @value{GDBN} assumes @code{-class}.
+starting with @code{-} is given, @value{GDBN} assumes @code{-class}.
@kindex maint set worker-threads
@kindex maint show worker-threads
@@ -46663,12 +46731,28 @@ If an error occurs the return value is -1. The format of the
returned binary attachment is as described in @ref{struct stat}.
@item vFile:stat: @var{filename}
-Get information about the file @var{filename} on the target.
-On success the information is returned as a binary attachment
-and the return value is the size of this attachment in bytes.
-If an error occurs the return value is -1. The format of the
+Get information about the file @var{filename} on the target as if from
+a @samp{stat} call. On success the information is returned as a binary
+attachment and the return value is the size of this attachment in
+bytes. If an error occurs the return value is -1. The format of the
returned binary attachment is as described in @ref{struct stat}.
+If @var{filename} is a symbolic link, then the information returned is
+about the file the link refers to, this is inline with the @samp{stat}
+library call.
+
+@item vFile:lstat: @var{filename}
+Get information about the file @var{filename} on the target as if from
+an @samp{lstat} call. On success the information is returned as a
+binary attachment and the return value is the size of this attachment
+in bytes. If an error occurs the return value is -1. The format of
+the returned binary attachment is as described in @ref{struct stat}.
+
+This packet is identical to @samp{vFile:stat}, except if
+@var{filename} is a symbolic link, then this packet returns
+information about the link itself, not the file that the link refers
+to, this is inline with the @samp{lstat} library call.
+
@item vFile:unlink: @var{filename}
Delete the file at @var{filename} on the target. Return 0,
or -1 if an error occurs. The @var{filename} is a string.
@@ -48401,7 +48485,7 @@ the following structure:
@smallexample
<?xml version="1.0"?>
<threads>
- <thread id="id" core="0" name="name" handle="1a2b3c">
+ <thread id="id" core="0" name="name" id_str="Thread 12.34" handle="1a2b3c">
... description ...
</thread>
</threads>
@@ -48413,7 +48497,10 @@ identifies the thread (@pxref{thread-id syntax}). The
the thread was last executing on. The @samp{name} attribute, if
present, specifies the human-readable name of the thread. The content
of the of @samp{thread} element is interpreted as human-readable
-auxiliary information. The @samp{handle} attribute, if present,
+auxiliary information. The @samp{id_str} attribute, if present,
+specifies what @value{GDBN} should print as the target ID of the
+thread (e.g.@: in the @samp{info threads} command or when switching
+to the thread). The @samp{handle} attribute, if present,
is a hex encoded representation of the thread handle.
@@ -51336,7 +51423,8 @@ Richard M. Stallman and Roland H. Pesch, July 1991.
@format
@c man begin SYNOPSIS gcore
-gcore [-a] [-o @var{prefix}] [-d @var{directory}] @var{pid1} [@var{pid2}...@var{pidN}]
+gcore [-v | --version] [-h | --help] [-a] [-o @var{prefix}] [-d @var{directory}]
+ @var{pid1} [@var{pid2}...@var{pidN}]
@c man end
@end format
@@ -51363,11 +51451,19 @@ The optional argument @var{prefix} specifies the prefix to be used
when composing the file names of the core dumps. The file name is
composed as @file{@var{prefix}.@var{pid}}, where @var{pid} is the
process ID of the running program being analyzed by @command{gcore}.
-If not specified, @var{prefix} defaults to @var{gcore}.
+If not specified, @var{prefix} defaults to @var{core}.
@item -d @var{directory}
Use @var{directory} as the data directory when invoking @value{GDBN} for running
the gcore command. This argument is optional.
+
+@item --help
+@itemx -h
+List all options, with brief explanations.
+
+@item --version
+@itemx -v
+Print version information and then exit.
@end table
@c man end
@@ -51579,7 +51675,7 @@ Richard M. Stallman and Roland H. Pesch, July 1991.
@c man title gdb-add-index Add index files to speed up GDB
@c man begin SYNOPSIS gdb-add-index
-gdb-add-index [-dwarf-5] @var{filename}
+gdb-add-index [-h | --help] [-v | --version] [--dwarf-5] @var{filename}
@c man end
@c man begin DESCRIPTION gdb-add-index
@@ -51597,8 +51693,8 @@ which use ELF binaries and DWARF debug information (i.e., sections
named @code{.debug_*}).
By default @command{gdb-add-index} will add a pre-DWARF 5
-@code{.gdb_index} section to @var{filename}. With @option{-dwarf-5}
-DWARF 5 sections are added instead.
+@code{.gdb_index} section to @var{filename}. With @option{--dwarf-5}
+the DWARF 5 section @code{.debug_names} is added instead.
@var{filename} must be writable.
@@ -51622,9 +51718,16 @@ the @value{GDBN} manual in node @code{Index Files}
@c man begin OPTIONS gdb-add-index
@table @env
-@item -dwarf-5
-Add DWARF 5 sections instead of previous @code{.debug_index} section.
+@item --dwarf-5
+Add DWARF 5 sections instead of previous @code{.gdb_index} section.
+@item --help
+@itemx -h
+List all options, with brief explanations.
+
+@item --version
+@itemx -v
+Print version information and then exit.
@end table
@c man end
diff --git a/gdb/doc/guile.texi b/gdb/doc/guile.texi
index f1b638e..9677229 100644
--- a/gdb/doc/guile.texi
+++ b/gdb/doc/guile.texi
@@ -1,4 +1,4 @@
-@c Copyright (C) 2008--2024 Free Software Foundation, Inc.
+@c Copyright (C) 2008--2025 Free Software Foundation, Inc.
@c Permission is granted to copy, distribute and/or modify this document
@c under the terms of the GNU Free Documentation License, Version 1.3 or
@c any later version published by the Free Software Foundation; with the
@@ -1772,6 +1772,16 @@ invoking it interactively. If this function throws an exception,
it is turned into a @value{GDBN} @code{error} call.
Otherwise, the return value is ignored.
+For non-prefix commands, @var{invoke} is required. For prefix
+commands @var{invoke} is optional. Only prefix commands that need to
+handle unknown sub-commands should supply @var{invoke}.
+
+For prefix commands that don't supply @var{invoke}, if the prefix
+command is used without a sub-command name then @value{GDBN} will
+display the help text for every sub-command, unless the prefix command
+is a @kbd{show} sub-command, in which case @value{GDBN} will list the
+values of all sub-commands.
+
The argument @var{command-class} is one of the @samp{COMMAND_} constants
defined below. This argument tells @value{GDBN} how to categorize the
new command in the help system. The default is @code{COMMAND_NONE}.
@@ -2098,8 +2108,10 @@ is the @code{<gdb:parameter>} object representing the parameter, and
This function must return a string, and will be displayed to the user.
@value{GDBN} will add a trailing newline.
-The argument @var{doc} is the help text for the new parameter.
-If there is no documentation string, a default value is used.
+The argument @var{doc} is the help text for the new parameter. If
+there is no documentation string, a default value is used. If the
+documentation string is empty, then @value{GDBN} will print just the
+@var{set-doc} and @var{show-doc} strings (see below).
The argument @var{set-doc} is the help text for this parameter's
@code{set} command.
@@ -3899,6 +3911,9 @@ Return string to change terminal's color to this.
If @var{is_foreground} is @code{#t}, then the returned sequence will change
foreground color. Otherwise, the returned sequence will change background
color.
+
+If styling is currently disabled (@pxref{Output Styling,,@kbd{set style
+enabled}}), then this procedure will return an empty string.
@end deffn
When color is initialized, its color space must be specified. The
diff --git a/gdb/doc/python.texi b/gdb/doc/python.texi
index a682132..6fa2285 100644
--- a/gdb/doc/python.texi
+++ b/gdb/doc/python.texi
@@ -257,7 +257,7 @@ Python code must not override these, or even change the options using
signals, @value{GDBN} will most likely stop working correctly. Note
that it is unfortunately common for GUI toolkits to install a
@code{SIGCHLD} handler. When creating a new Python thread, you can
-use @code{gdb.block_signals} or @code{gdb.Thread} to handle this
+use @code{gdb.blocked_signals} or @code{gdb.Thread} to handle this
correctly; see @ref{Threading in GDB}.
@item
@@ -285,7 +285,7 @@ offered for debugging purposes only, expect them to change over time.
A string containing the python directory (@pxref{Python}).
@end defvar
-@defun gdb.execute (command @r{[}, from_tty @r{[}, to_string@r{]]})
+@defun gdb.execute (command @r{[}, from_tty @r{[}, to_string @w{@r{[}, styling @r{]]]}})
Evaluate @var{command}, a string, as a @value{GDBN} CLI command.
If a GDB exception happens while @var{command} runs, it is
translated as described in @ref{Exception Handling,,Exception Handling}.
@@ -302,6 +302,14 @@ returned as a string. The default is @code{False}, in which case the
return value is @code{None}. If @var{to_string} is @code{True}, the
@value{GDBN} virtual terminal will be temporarily set to unlimited width
and height, and its pagination will be disabled; @pxref{Screen Size}.
+
+When @var{styling} is @code{True}, the output, whether sent to
+standard output, or to a string, will have styling applied, if
+@value{GDBN}'s standard output supports styling, and @kbd{show style
+enabled} is @kbd{on}. When @var{styling} is @code{False} then no
+styling is applied. The default for @var{styling} is @code{True} when
+@var{to_string} is @code{False}, and @code{False} when @var{to_string}
+is @code{True}.
@end defun
@defun gdb.breakpoints ()
@@ -471,7 +479,7 @@ call this function and will automatically direct the output to the
relevant stream.
@end defun
-@defun gdb.flush (@r{[}, stream@r{]})
+@defun gdb.flush (@r{[}stream@r{]})
Flush the buffer of a @value{GDBN} paginated stream so that the
contents are displayed immediately. @value{GDBN} will flush the
contents of a stream automatically when it encounters a newline in the
@@ -501,6 +509,17 @@ Flushing @code{sys.stdout} or @code{sys.stderr} will automatically
call this function for the relevant stream.
@end defun
+@defun gdb.warning (text)
+Print a warning message to @value{GDBN}'s standard output stream. The
+warning message is the warning prefix (@pxref{warning-prefix}), the
+string @w{@samp{warning: }}, and then @var{text}, which must be a
+non-empty string.
+
+Due to the warning prefix, @var{text} should not begin with a capital
+letter (except for proper nouns), and @var{text} should end with a
+period.
+@end defun
+
@defun gdb.target_charset ()
Return the name of the current target character set (@pxref{Character
Sets}). This differs from @code{gdb.parameter('target-charset')} in
@@ -646,22 +665,22 @@ threads, you must be careful to only call @value{GDBN}-specific
functions in the @value{GDBN} thread. @value{GDBN} provides some
functions to help with this.
-@defun gdb.block_signals ()
+@defun gdb.blocked_signals ()
As mentioned earlier (@pxref{Basic Python}), certain signals must be
-delivered to the @value{GDBN} main thread. The @code{block_signals}
+delivered to the @value{GDBN} main thread. The @code{blocked_signals}
function returns a context manager that will block these signals on
entry. This can be used when starting a new thread to ensure that the
signals are blocked there, like:
@smallexample
-with gdb.block_signals():
+with gdb.blocked_signals():
start_new_thread()
@end smallexample
@end defun
@deftp {class} gdb.Thread
This is a subclass of Python's @code{threading.Thread} class. It
-overrides the @code{start} method to call @code{block_signals}, making
+overrides the @code{start} method to call @code{blocked_signals}, making
this an easy-to-use drop-in replacement for creating threads that will
work well in @value{GDBN}.
@end deftp
@@ -4517,6 +4536,7 @@ You can implement new @value{GDBN} CLI commands in Python. A CLI
command is implemented using an instance of the @code{gdb.Command}
class, most commonly using a subclass.
+@anchor{Command.__init__}
@defun Command.__init__ (name, command_class @r{[}, completer_class @r{[}, prefix@r{]]})
The object initializer for @code{Command} registers the new command
with @value{GDBN}. This initializer is normally invoked from the
@@ -4546,10 +4566,11 @@ registered.
The help text for the new command is taken from the Python
documentation string for the command's class, if there is one. If no
-documentation string is provided, the default value ``This command is
-not documented.'' is used.
+documentation string is provided, the default value @samp{This command
+is not documented.} is used.
@end defun
+@anchor{Command.dont_repeat}
@cindex don't repeat Python command
@defun Command.dont_repeat ()
By default, a @value{GDBN} command is repeated when the user enters a
@@ -4560,6 +4581,7 @@ exception). This is similar to the user command @code{dont-repeat},
see @ref{Define, dont-repeat}.
@end defun
+@anchor{Command.invoke}
@defun Command.invoke (argument, from_tty)
This method is called by @value{GDBN} when this command is invoked.
@@ -4573,6 +4595,17 @@ that the command came from elsewhere.
If this method throws an exception, it is turned into a @value{GDBN}
@code{error} call. Otherwise, the return value is ignored.
+For non-prefix commands (@pxref{Command.__init__}), the @code{invoke}
+method is required. For prefix commands the @code{invoke} method is
+optional. Only prefix commands that need to handle unknown
+sub-commands should implement the @code{invoke} method.
+
+For prefix commands that don't implement @code{invoke}, if the prefix
+command is used without a sub-command name then @value{GDBN} will
+display the help text for every sub-command, unless the prefix command
+is a @kbd{show} sub-command, in which case @value{GDBN} will list the
+values of all sub-commands.
+
@findex gdb.string_to_argv
To break @var{argument} up into an argv-like string use
@code{gdb.string_to_argv}. This function behaves identically to
@@ -5071,7 +5104,9 @@ string from the parameter's class, if there is one. If there is no
documentation string, a default value is used. The documentation
string is included in the output of the parameters @code{help set} and
@code{help show} commands, and should be written taking this into
-account.
+account. If the documentation string for the parameter's class is the
+empty string then @value{GDBN} will only use @code{Parameter.set_doc}
+or @code{Parameter.show_doc} (see below) in the @kbd{help} output.
@end defun
@defvar Parameter.set_doc
@@ -5250,6 +5285,99 @@ constants provided when the parameter is created.
The value is @code{gdb.Color} instance.
@end table
+When creating multiple new parameters using @code{gdb.Parameter}, it
+is often desirable to create a prefix command that can be used to
+group related parameters together, for example, if you wished to add
+the parameters @kbd{plugin-name feature-1} and @kbd{plugin-name
+feature-2}, then the @kbd{plugin-name} would need to be a prefix
+command (@pxref{CLI Commands In Python}).
+
+However, when creating parameters, you will almost always need to
+create two prefix commands, one as a @kbd{set} sub-command, and one as
+a @kbd{show} sub-command. @value{GDBN} provides the
+@code{gdb.ParameterPrefix} helper class to make creation of these two
+prefixes easier.
+
+@defun ParameterPrefix.__init__ (name, command_class, doc = @code{None})
+The object initializer for @code{ParameterPrefix} registers two new
+@code{gdb.Command} prefixes, one as a @kbd{set} sub-command, and the
+other as a @kbd{show} sub-command.
+
+@var{name}, a string, is the name of the new prefix, without either
+@kbd{set} or @kbd{show}, similar to the @var{name} passed to
+@code{gdb.Parameter} (@pxref{Parameters In Python}). For example, to
+create the prefixes @kbd{set plugin-name} and @kbd{show plugin-name},
+you would pass the string @kbd{plugin-name}.
+
+@var{command_class} should be one of the @samp{COMMAND_} constants
+(@pxref{CLI Commands In Python}). This argument tells @value{GDBN} how to
+categorize the new parameter prefixes in the help system.
+
+There are a number of ways in which the help text for the two new
+prefix commands can be provided. If the @var{doc} parameter is not
+@code{None}, then this will be used as the documentation string for
+both prefix commands.
+
+If @var{doc} is @code{None}, but @code{gdb.ParameterPrefix} has been
+sub-classed, then the prefix command documentation will be taken from
+sub-classes documentation string (i.e., the @code{__doc__} attribute).
+
+If @var{doc} is @code{None}, and there is no @code{__doc__} string,
+then the default value @samp{This command is not documented.} is used.
+
+When writing the help text, keep in mind that the same text is used
+for both the @kbd{set} and @kbd{show} prefix commands.
+@end defun
+
+@defun ParameterPrefix.invoke_set (argument, from_tty)
+If a sub-class defines this method, then @value{GDBN} will call this
+when the prefix command is used with an unknown sub-command. The
+@var{argument} and @var{from_tty} parameters are the same as for
+@code{gdb.Command.invoke} (@pxref{Command.invoke}).
+
+If this method throws an exception, it is turned into a @value{GDBN}
+@code{error} call. Otherwise, the return value is ignored.
+
+It is not required that a @code{ParameterPrefix} sub-class override
+this method. Usually, a parameter prefix only exists as a means to
+group related parameters together. @value{GDBN} handles this use case
+automatically with no need to implement @code{invoke_set}.
+@end defun
+
+@defun ParameterPrefix.invoke_show (argument, from_tty)
+This is like the @code{invoke_set} method, but for the @kbd{show}
+prefix command. As with @code{invoke_set}, implementation of this
+method is optional, and usually not required.
+@end defun
+
+@cindex don't repeat Python command
+@defun ParameterPrefix.dont_repeat ()
+Like @code{Command.dont_repeat} (@pxref{Command.dont_repeat}), this
+can be called from @code{ParameterPrefix.invoke_set} or
+@code{ParameterPrefix.invoke_show} to prevent the prefix commands from
+being repeated.
+@end defun
+
+Here is a small example that uses @code{gdb.ParameterPrefix} along
+with @code{gdb.Parameter} to create two new parameters
+@kbd{plugin-name feature-1} and @kbd{plugin-name feature-2}. As
+neither @code{invoke_set} or @code{invoke_show} is needed, this
+example does not sub-class @code{gdb.ParameterPrefix}:
+
+@smallexample
+class ExampleParam(gdb.Parameter):
+ def __init__ (self, name):
+ super ().__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)
+ self.value = True
+
+gdb.ParameterPrefix("plugin-name", gdb.COMMAND_NONE,
+ """An example parameter prefix.
+
+ This groups together some parameters.""")
+ExampleParam("plugin-name feature-1")
+ExampleParam("plugin-name feature-2")
+@end smallexample
+
@node Functions In Python
@subsubsection Writing new convenience functions
@@ -7041,13 +7169,13 @@ writable.
@cindex colors in python
@tindex gdb.Color
-You can assign instance of @code{Color} to the @code{value} of
+You can assign instance of @code{gdb.Color} to the @code{value} of
a @code{Parameter} instance created with @code{PARAM_COLOR}.
-@code{Color} may refer to an index from color palette or contain components
-of a color from some colorspace.
+@code{gdb.Color} may refer to an index from a color palette or contain
+components of a color from some color space.
-@defun Color.__init__ (@r{[}@var{value} @r{[}, @var{color-space}@r{]}@r{]})
+@defun Color.__init__ (@r{[}value @r{[}, color_space@r{]}@r{]})
@var{value} is @code{None} (meaning the terminal's default color),
an integer index of a color in palette, tuple with color components
@@ -7057,22 +7185,23 @@ or one of the following color names:
@samp{green}, @samp{yellow}, @samp{blue}, @samp{magenta}, @samp{cyan},
or @samp{white}.
-@var{color-space} should be one of the @samp{COLORSPACE_} constants. This
-argument tells @value{GDBN} which color space @var{value} belongs.
+@var{color_space} should be one of the @samp{COLORSPACE_} constants
+listed below. This argument tells @value{GDBN} which color space
+@var{value} belongs.
@end defun
@defvar Color.is_none
-This atribute is boolean. If its value is @code{True} then color is terminal's
+This attribute is boolean. If its value is @code{True} then color is terminal's
default.
@end defvar
@defvar Color.is_indexed
-This atribute is boolean. If its value is @code{True} then color is indexed,
+This attribute is boolean. If its value is @code{True} then color is indexed,
i.e. belongs to some palette.
@end defvar
@defvar Color.is_direct
-This atribute is boolean. If its value is @code{True} then this object
+This attribute is boolean. If its value is @code{True} then this object
describes direct colour in the sense of ISO/IEC 8613-6.
@end defvar
@@ -7086,12 +7215,15 @@ This attribute exist if @code{is_direct} is @code{True}. Its value is tuple
with integer components of a color.
@end defvar
-@defun Color.escape_sequence (@var{self}, @var{is_foreground})
+@defun Color.escape_sequence (is_foreground)
Returns string to change terminal's color to this.
If @var{is_foreground} is @code{True}, then the returned sequence will change
foreground color. Otherwise, the returned sequence will change background
color.
+
+If styling is currently disabled (@pxref{Output Styling,,@kbd{set style
+enabled}}), then this method will return an empty string.
@end defun
When color is initialized, its color space must be specified. The
@@ -7128,6 +7260,8 @@ Direct 24-bit RGB colors.
@end table
+It is not possible to sub-class the @code{Color} class.
+
@node Architectures In Python
@subsubsection Python representation of architectures
@cindex Python architectures
diff --git a/gdb/doc/refcard.tex b/gdb/doc/refcard.tex
index 78b88f5..8a40262 100644
--- a/gdb/doc/refcard.tex
+++ b/gdb/doc/refcard.tex
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%% gdb-refcard.tex %%%%%%%%%%%%%%%%
%This file is TeX source for a reference card describing GDB, the GNU debugger.
-%Copyright (C) 1991--2024 Free Software Foundation, Inc.
+%Copyright (C) 1991--2025 Free Software Foundation, Inc.
%Permission is granted to make and distribute verbatim copies of
%this reference provided the copyright notices and permission notices
%are preserved on all copies.
@@ -307,7 +307,7 @@ shell {\it cmd}&execute arbitrary shell command string\cr
\line{\smrm \opt{ } surround optional arguments \hfill $\ldots$ show
one or more arguments}
\vskip\baselineskip
-\centerline{\smrm \copyright 1998-2024 Free Software Foundation, Inc.\qquad Permissions on back}
+\centerline{\smrm \copyright 1998-2025 Free Software Foundation, Inc.\qquad Permissions on back}
\eject
\sec Breakpoints and Watchpoints;
break \opt{\it file\tt:}{\it line}\par
@@ -632,7 +632,7 @@ statement.\cr
\vfill
{\smrm\parskip=6pt
-Copyright \copyright 1991-2024 Free Software Foundation, Inc.
+Copyright \copyright 1991-2025 Free Software Foundation, Inc.
Author: Roland H. Pesch
The author assumes no responsibility for any errors on this card.
diff --git a/gdb/doc/stabs.texinfo b/gdb/doc/stabs.texinfo
index 98810f8..eac342a 100644
--- a/gdb/doc/stabs.texinfo
+++ b/gdb/doc/stabs.texinfo
@@ -17,7 +17,7 @@
@end direntry
@copying
-Copyright @copyright{} 1992--2024 Free Software Foundation, Inc.
+Copyright @copyright{} 1992--2025 Free Software Foundation, Inc.
Contributed by Cygnus Support. Written by Julia Menapace, Jim Kingdon,
and David MacKenzie.
diff --git a/gdb/dtrace-probe.c b/gdb/dtrace-probe.c
index ac1b1c5..fa60c34 100644
--- a/gdb/dtrace-probe.c
+++ b/gdb/dtrace-probe.c
@@ -1,6 +1,6 @@
/* DTrace probe support for GDB.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
Contributed by Oracle, Inc.
@@ -424,7 +424,7 @@ dtrace_process_dof_probe (struct objfile *objfile,
It follows that if there are DTrace is-enabled probes defined for
some provider/name but no DTrace regular probes defined then the
- GDB user wont be able to enable/disable these conditionals. */
+ GDB user won't be able to enable/disable these conditionals. */
num_probes = DOF_UINT (dof, probe->dofpr_noffs);
if (num_probes == 0)
diff --git a/gdb/dummy-frame.c b/gdb/dummy-frame.c
index 697cc11..f8440b3 100644
--- a/gdb/dummy-frame.c
+++ b/gdb/dummy-frame.c
@@ -1,6 +1,6 @@
/* Code dealing with dummy stack frames, for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/dummy-frame.h b/gdb/dummy-frame.h
index dc28a8d..1dbef62 100644
--- a/gdb/dummy-frame.h
+++ b/gdb/dummy-frame.h
@@ -1,6 +1,6 @@
/* Code dealing with dummy stack frames, for GDB, the GNU debugger.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/dwarf2/abbrev-table-cache.c b/gdb/dwarf2/abbrev-table-cache.c
index 2395ae4..536769b 100644
--- a/gdb/dwarf2/abbrev-table-cache.c
+++ b/gdb/dwarf2/abbrev-table-cache.c
@@ -1,6 +1,6 @@
/* DWARF 2 abbrev table cache
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/dwarf2/abbrev-table-cache.h b/gdb/dwarf2/abbrev-table-cache.h
index 8469948..74d81c7 100644
--- a/gdb/dwarf2/abbrev-table-cache.h
+++ b/gdb/dwarf2/abbrev-table-cache.h
@@ -1,6 +1,6 @@
/* DWARF abbrev table cache
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -30,6 +30,9 @@ public:
abbrev_table_cache () = default;
DISABLE_COPY_AND_ASSIGN (abbrev_table_cache);
+ abbrev_table_cache (abbrev_table_cache &&) = default;
+ abbrev_table_cache &operator= (abbrev_table_cache &&) = default;
+
/* Find an abbrev table coming from the abbrev section SECTION at
offset OFFSET. Return the table, or nullptr if it has not yet
been registered. */
diff --git a/gdb/dwarf2/abbrev.c b/gdb/dwarf2/abbrev.c
index 9f7ead8..5cfff69 100644
--- a/gdb/dwarf2/abbrev.c
+++ b/gdb/dwarf2/abbrev.c
@@ -1,6 +1,6 @@
/* DWARF 2 abbreviations
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
Adapted by Gary Funck (gary@intrepid.com), Intrepid Technology,
Inc. with support from Florida State University (under contract
diff --git a/gdb/dwarf2/abbrev.h b/gdb/dwarf2/abbrev.h
index 93e3b90..6fc61b1 100644
--- a/gdb/dwarf2/abbrev.h
+++ b/gdb/dwarf2/abbrev.h
@@ -1,6 +1,6 @@
/* DWARF abbrev table
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
Adapted by Gary Funck (gary@intrepid.com), Intrepid Technology,
Inc. with support from Florida State University (under contract
@@ -61,7 +61,7 @@ struct abbrev_info
};
struct abbrev_table;
-typedef std::unique_ptr<struct abbrev_table> abbrev_table_up;
+using abbrev_table_up = std::unique_ptr<abbrev_table>;
/* Top level data structure to contain an abbreviation table.
diff --git a/gdb/dwarf2/ada-imported.c b/gdb/dwarf2/ada-imported.c
index 1654d58..1e25966 100644
--- a/gdb/dwarf2/ada-imported.c
+++ b/gdb/dwarf2/ada-imported.c
@@ -1,6 +1,6 @@
/* Ada Pragma Import support.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/dwarf2/aranges.c b/gdb/dwarf2/aranges.c
index af14f82..437aca4 100644
--- a/gdb/dwarf2/aranges.c
+++ b/gdb/dwarf2/aranges.c
@@ -1,6 +1,6 @@
/* DWARF aranges handling
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -39,8 +39,7 @@ read_addrmap_from_aranges (dwarf2_per_objfile *per_objfile,
struct gdbarch *gdbarch = objfile->arch ();
dwarf2_per_bfd *per_bfd = per_objfile->per_bfd;
- std::unordered_map<sect_offset, dwarf2_per_cu_data *>
- debug_info_offset_to_per_cu;
+ gdb::unordered_map<sect_offset, dwarf2_per_cu *> debug_info_offset_to_per_cu;
for (const auto &per_cu : per_bfd->all_units)
{
/* A TU will not need aranges, and skipping them here is an easy
@@ -58,8 +57,9 @@ read_addrmap_from_aranges (dwarf2_per_objfile *per_objfile,
gdb_assert (insertpair.second);
}
- std::set<sect_offset> debug_info_offset_seen;
+ gdb::unordered_set<sect_offset> debug_info_offset_seen;
const bfd_endian dwarf5_byte_order = gdbarch_byte_order (gdbarch);
+ const int signed_addr_p = bfd_get_sign_extend_vma (abfd);
const gdb_byte *addr = section->buffer;
while (addr < section->buffer + section->size)
{
@@ -123,7 +123,7 @@ read_addrmap_from_aranges (dwarf2_per_objfile *per_objfile,
sect_offset_str (sect_offset (debug_info_offset)));
return false;
}
- dwarf2_per_cu_data *const per_cu = per_cu_it->second;
+ dwarf2_per_cu *const per_cu = per_cu_it->second;
const uint8_t address_size = *addr++;
if (address_size < 1 || address_size > 8)
@@ -168,8 +168,13 @@ read_addrmap_from_aranges (dwarf2_per_objfile *per_objfile,
plongest (entry_addr - section->buffer));
return false;
}
- ULONGEST start = extract_unsigned_integer (addr, address_size,
- dwarf5_byte_order);
+ ULONGEST start;
+ if (signed_addr_p)
+ start = extract_signed_integer (addr, address_size,
+ dwarf5_byte_order);
+ else
+ start = extract_unsigned_integer (addr, address_size,
+ dwarf5_byte_order);
addr += address_size;
ULONGEST length = extract_unsigned_integer (addr, address_size,
dwarf5_byte_order);
diff --git a/gdb/dwarf2/aranges.h b/gdb/dwarf2/aranges.h
index 2ba8a05..e2edfb9 100644
--- a/gdb/dwarf2/aranges.h
+++ b/gdb/dwarf2/aranges.h
@@ -1,6 +1,6 @@
/* DWARF aranges handling
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/dwarf2/attribute.c b/gdb/dwarf2/attribute.c
index f777c14..d2b5364 100644
--- a/gdb/dwarf2/attribute.c
+++ b/gdb/dwarf2/attribute.c
@@ -1,6 +1,6 @@
/* DWARF attributes
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
Adapted by Gary Funck (gary@intrepid.com), Intrepid Technology,
Inc. with support from Florida State University (under contract
@@ -73,7 +73,8 @@ attribute::form_is_string () const
|| form == DW_FORM_strx3
|| form == DW_FORM_strx4
|| form == DW_FORM_GNU_str_index
- || form == DW_FORM_GNU_strp_alt);
+ || form == DW_FORM_GNU_strp_alt
+ || form == DW_FORM_strp_sup);
}
/* See attribute.h. */
@@ -164,11 +165,80 @@ attribute::constant_value (int default_value) const
/* See attribute.h. */
+std::optional<ULONGEST>
+attribute::unsigned_constant () const
+{
+ if (form_is_strictly_signed ())
+ {
+ if (u.snd >= 0)
+ return u.snd;
+ complaint (_("Attribute value is not unsigned (%s)"),
+ dwarf_form_name (form));
+ }
+ else if (form_is_constant ())
+ return u.unsnd;
+
+ /* For DW_FORM_data16 see attribute::form_is_constant. */
+ complaint (_("Attribute value is not a constant (%s)"),
+ dwarf_form_name (form));
+ return {};
+}
+
+/* See attribute.h. */
+
+std::optional<LONGEST>
+attribute::signed_constant () const
+{
+ if (form_is_strictly_signed ())
+ return u.snd;
+
+ switch (form)
+ {
+ case DW_FORM_data8:
+ case DW_FORM_udata:
+ /* Not sure if DW_FORM_udata should be handled or not. Anyway
+ for DW_FORM_data8, there's no need to sign-extend. */
+ return u.snd;
+
+ case DW_FORM_data1:
+ return sign_extend (u.unsnd, 8);
+ case DW_FORM_data2:
+ return sign_extend (u.unsnd, 16);
+ case DW_FORM_data4:
+ return sign_extend (u.unsnd, 32);
+ }
+
+ /* For DW_FORM_data16 see attribute::form_is_constant. */
+ complaint (_("Attribute value is not a constant (%s)"),
+ dwarf_form_name (form));
+ return {};
+}
+
+/* See attribute.h. */
+
+std::optional<LONGEST>
+attribute::confused_constant () const
+{
+ if (form_is_strictly_signed ())
+ return u.snd;
+ else if (form_is_constant ())
+ return u.unsnd;
+
+ /* For DW_FORM_data16 see attribute::form_is_constant. */
+ complaint (_("Attribute value is not a constant (%s)"),
+ dwarf_form_name (form));
+ return {};
+}
+
+/* See attribute.h. */
+
bool
attribute::form_is_unsigned () const
{
return (form == DW_FORM_ref_addr
|| form == DW_FORM_GNU_ref_alt
+ || form == DW_FORM_ref_sup4
+ || form == DW_FORM_ref_sup8
|| form == DW_FORM_data2
|| form == DW_FORM_data4
|| form == DW_FORM_data8
@@ -189,7 +259,7 @@ attribute::form_is_unsigned () const
/* See attribute.h. */
bool
-attribute::form_is_signed () const
+attribute::form_is_strictly_signed () const
{
return form == DW_FORM_sdata || form == DW_FORM_implicit_const;
}
@@ -216,21 +286,24 @@ attribute::form_requires_reprocessing () const
dwarf_defaulted_attribute
attribute::defaulted () const
{
- LONGEST value = constant_value (-1);
+ std::optional<ULONGEST> value = unsigned_constant ();
- switch (value)
+ if (value.has_value ())
{
- case DW_DEFAULTED_no:
- case DW_DEFAULTED_in_class:
- case DW_DEFAULTED_out_of_class:
- return (dwarf_defaulted_attribute) value;
+ switch (*value)
+ {
+ case DW_DEFAULTED_no:
+ case DW_DEFAULTED_in_class:
+ case DW_DEFAULTED_out_of_class:
+ return (dwarf_defaulted_attribute) *value;
+
+ default:
+ complaint (_("unrecognized DW_AT_defaulted value (%s)"),
+ plongest (*value));
+ break;
+ }
}
- /* If the form was not constant, we already complained in
- constant_value, so there's no need to complain again. */
- if (form_is_constant ())
- complaint (_("unrecognized DW_AT_defaulted value (%s)"),
- plongest (value));
return DW_DEFAULTED_no;
}
@@ -239,21 +312,24 @@ attribute::defaulted () const
dwarf_virtuality_attribute
attribute::as_virtuality () const
{
- LONGEST value = constant_value (-1);
+ std::optional<ULONGEST> value = unsigned_constant ();
- switch (value)
+ if (value.has_value ())
{
- case DW_VIRTUALITY_none:
- case DW_VIRTUALITY_virtual:
- case DW_VIRTUALITY_pure_virtual:
- return (dwarf_virtuality_attribute) value;
+ switch (*value)
+ {
+ case DW_VIRTUALITY_none:
+ case DW_VIRTUALITY_virtual:
+ case DW_VIRTUALITY_pure_virtual:
+ return (dwarf_virtuality_attribute) *value;
+
+ default:
+ complaint (_("unrecognized DW_AT_virtuality value (%s)"),
+ plongest (*value));
+ break;
+ }
}
- /* If the form was not constant, we already complained in
- constant_value, so there's no need to complain again. */
- if (form_is_constant ())
- complaint (_("unrecognized DW_AT_virtuality value (%s)"),
- plongest (value));
return DW_VIRTUALITY_none;
}
@@ -266,5 +342,8 @@ attribute::as_boolean () const
return true;
else if (form == DW_FORM_flag)
return u.unsnd != 0;
- return constant_value (0) != 0;
+ /* Using signed_constant here will work even for the weird case
+ where a negative value is provided. Probably doesn't matter but
+ also seems harmless. */
+ return signed_constant ().value_or (0) != 0;
}
diff --git a/gdb/dwarf2/attribute.h b/gdb/dwarf2/attribute.h
index 115d006..234de4e 100644
--- a/gdb/dwarf2/attribute.h
+++ b/gdb/dwarf2/attribute.h
@@ -1,6 +1,6 @@
/* DWARF attributes
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
Adapted by Gary Funck (gary@intrepid.com), Intrepid Technology,
Inc. with support from Florida State University (under contract
@@ -69,7 +69,7 @@ struct attribute
form. */
LONGEST as_signed () const
{
- gdb_assert (form_is_signed ());
+ gdb_assert (form_is_strictly_signed ());
return u.snd;
}
@@ -91,28 +91,6 @@ struct attribute
return u.unsnd;
}
- /* Return true if the value is nonnegative. Requires that that
- reprocessing not be needed. */
- bool is_nonnegative () const
- {
- if (form_is_unsigned ())
- return true;
- if (form_is_signed ())
- return as_signed () >= 0;
- return false;
- }
-
- /* Return the nonnegative value. Requires that that reprocessing not be
- needed. */
- ULONGEST as_nonnegative () const
- {
- if (form_is_unsigned ())
- return as_unsigned ();
- if (form_is_signed ())
- return (ULONGEST)as_signed ();
- gdb_assert (false);
- }
-
/* Return non-zero if ATTR's value is a section offset --- classes
lineptr, loclistptr, macptr or rangelistptr --- or zero, otherwise.
You may use the as_unsigned method to retrieve such offsets.
@@ -124,6 +102,46 @@ struct attribute
bool form_is_section_offset () const;
+ /* Return an unsigned constant value. This only handles constant
+ forms (i.e., form_is_constant -- and not the extended list of
+ "unsigned" forms) and assumes an unsigned value is desired. This
+ can be used with DWARF-defined enumerations like DW_CC_* or
+ DW_INL_*, but also in situations where a nonnegative constant
+ integer is specified by DWARF.
+
+ If a signed form and negative value is used, or if a non-constant
+ form is used, then complaint is issued and an empty value is
+ returned. */
+ std::optional<ULONGEST> unsigned_constant () const;
+
+ /* Return a signed constant value. This only handles constant forms
+ (i.e., form_is_constant -- and not the extended list of
+ "unsigned" forms) and assumes a signed value is desired. This
+ function will sign-extend DW_FORM_data* values.
+
+ If non-constant form is used, then complaint is issued and an
+ empty value is returned. */
+ std::optional<LONGEST> signed_constant () const;
+
+ /* Return a signed constant value. However, for narrow forms like
+ DW_FORM_data1, sign extension is not done.
+
+ DWARF advises compilers to generally use DW_FORM_[su]data to
+ avoid ambiguity. However, both GCC and LLVM ignore this for
+ certain attributes. Furthermore in DWARF, whether a narrower
+ form causes sign-extension depends on the attribute -- for
+ attributes that can only assume non-negative values, sign
+ extension is not done.
+
+ Unfortunately, both compilers also emit certain attributes in a
+ "confused" way, using DW_FORM_sdata for signed values, and
+ possibly choosing a narrow form (e.g., DW_FORM_data1) otherwise
+ -- assuming that sign-extension will not be done.
+
+ This method should only be called when this "confused" treatment
+ is necessary. */
+ std::optional<LONGEST> confused_constant () const;
+
/* 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.
@@ -154,7 +172,9 @@ struct attribute
|| form == DW_FORM_ref4
|| form == DW_FORM_ref8
|| form == DW_FORM_ref_udata
- || form == DW_FORM_GNU_ref_alt);
+ || form == DW_FORM_GNU_ref_alt
+ || form == DW_FORM_ref_sup4
+ || form == DW_FORM_ref_sup8);
}
/* Check if the attribute's form is a DW_FORM_block*
@@ -168,13 +188,35 @@ struct attribute
/* Check if the attribute's form is an unsigned integer form. */
bool form_is_unsigned () const;
- /* Check if the attribute's form is a signed integer form. */
- bool form_is_signed () const;
+ /* Check if the attribute's form is a signed integer form. This
+ only returns true for forms that are strictly signed -- that is,
+ for a context-dependent form like DW_FORM_data1, this returns
+ false. */
+ bool form_is_strictly_signed () const;
+
+ /* Check if the attribute's form is an unsigned constant form. This
+ only returns true for forms that are strictly unsigned -- that
+ is, for a context-dependent form like DW_FORM_data1, this returns
+ false. */
+ bool form_is_strictly_unsigned () const
+ {
+ return form == DW_FORM_udata;
+ }
/* Check if the attribute's form is a form that requires
"reprocessing". */
bool form_requires_reprocessing () const;
+ /* Check if attribute's form refers to the separate "dwz" file.
+ This is only useful for references to the .debug_info section,
+ not to the supplementary .debug_str section. */
+ bool form_is_alt () const
+ {
+ return (form == DW_FORM_GNU_ref_alt
+ || form == DW_FORM_ref_sup4
+ || form == DW_FORM_ref_sup8);
+ }
+
/* Return DIE offset of this attribute. Return 0 with complaint if
the attribute is not of the required kind. */
diff --git a/gdb/dwarf2/call-site.h b/gdb/dwarf2/call-site.h
index 32cf673..2cc4883 100644
--- a/gdb/dwarf2/call-site.h
+++ b/gdb/dwarf2/call-site.h
@@ -1,6 +1,6 @@
/* Call site information.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support, using pieces from other GDB modules.
@@ -28,7 +28,7 @@
#include "gdbsupport/unordered_set.h"
struct dwarf2_locexpr_baton;
-struct dwarf2_per_cu_data;
+struct dwarf2_per_cu;
struct dwarf2_per_objfile;
/* struct call_site_parameter can be referenced in callees by several ways. */
@@ -164,7 +164,7 @@ struct call_site_parameter
struct call_site
{
- call_site (unrelocated_addr pc, dwarf2_per_cu_data *per_cu,
+ call_site (unrelocated_addr pc, dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile)
: per_cu (per_cu), per_objfile (per_objfile), m_unrelocated_pc (pc)
{}
@@ -198,7 +198,7 @@ struct call_site
struct call_site *tail_call_next = nullptr;
/* * Describe DW_AT_call_target. Missing attribute uses
- FIELD_LOC_KIND_DWARF_BLOCK with FIELD_DWARF_BLOCK == NULL. */
+ m_loc_kind == DWARF_BLOCK with m_loc.dwarf_block == nullptr. */
struct call_site_target target {};
@@ -209,7 +209,7 @@ struct call_site
/* * CU of the function where the call is located. It gets used
for DWARF blocks execution in the parameter array below. */
- dwarf2_per_cu_data *const per_cu = nullptr;
+ dwarf2_per_cu *const per_cu = nullptr;
/* objfile of the function where the call is located. */
diff --git a/gdb/dwarf2/cooked-index-entry.c b/gdb/dwarf2/cooked-index-entry.c
new file mode 100644
index 0000000..560d695
--- /dev/null
+++ b/gdb/dwarf2/cooked-index-entry.c
@@ -0,0 +1,244 @@
+/* Entry in the cooked index
+
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include "dwarf2/cooked-index-entry.h"
+#include "dwarf2/tag.h"
+#include "gdbsupport/gdb-safe-ctype.h"
+#include "gdbsupport/selftest.h"
+
+/* See cooked-index-entry.h. */
+
+std::string
+to_string (cooked_index_flag flags)
+{
+ static constexpr cooked_index_flag::string_mapping mapping[] = {
+ MAP_ENUM_FLAG (IS_MAIN),
+ MAP_ENUM_FLAG (IS_STATIC),
+ MAP_ENUM_FLAG (IS_LINKAGE),
+ MAP_ENUM_FLAG (IS_TYPE_DECLARATION),
+ MAP_ENUM_FLAG (IS_PARENT_DEFERRED),
+ MAP_ENUM_FLAG (IS_SYNTHESIZED),
+ };
+
+ return flags.to_string (mapping);
+}
+
+/* See cooked-index-entry.h. */
+
+int
+cooked_index_entry::compare (const char *stra, const char *strb,
+ comparison_mode mode)
+{
+#if defined (__GNUC__) && !defined (__clang__) && __GNUC__ <= 7
+ /* Work around error with gcc 7.5.0. */
+ auto munge = [] (char c) -> unsigned char
+#else
+ auto munge = [] (char c) constexpr -> unsigned char
+#endif
+ {
+ /* Treat '<' as if it ended the string. This lets something
+ like "func<t>" match "func<t<int>>". See the "Breakpoints in
+ template functions" section in the manual. */
+ if (c == '<')
+ return '\0';
+ return TOLOWER ((unsigned char) c);
+ };
+
+ unsigned char a = munge (*stra);
+ unsigned char b = munge (*strb);
+
+ while (a != '\0' && b != '\0' && a == b)
+ {
+ a = munge (*++stra);
+ b = munge (*++strb);
+ }
+
+ if (a == b)
+ return 0;
+
+ /* When completing, if STRB ends earlier than STRA, consider them as
+ equal. */
+ if (mode == COMPLETE && b == '\0')
+ return 0;
+
+ return a < b ? -1 : 1;
+}
+
+#if GDB_SELF_TEST
+
+namespace {
+
+void
+test_compare ()
+{
+ /* Convenience aliases. */
+ const auto mode_compare = cooked_index_entry::MATCH;
+ const auto mode_sort = cooked_index_entry::SORT;
+ const auto mode_complete = cooked_index_entry::COMPLETE;
+
+ SELF_CHECK (cooked_index_entry::compare ("abcd", "abcd",
+ mode_compare) == 0);
+ SELF_CHECK (cooked_index_entry::compare ("abcd", "abcd",
+ mode_complete) == 0);
+
+ SELF_CHECK (cooked_index_entry::compare ("abcd", "ABCDE",
+ mode_compare) < 0);
+ SELF_CHECK (cooked_index_entry::compare ("ABCDE", "abcd",
+ mode_compare) > 0);
+ SELF_CHECK (cooked_index_entry::compare ("abcd", "ABCDE",
+ mode_complete) < 0);
+ SELF_CHECK (cooked_index_entry::compare ("ABCDE", "abcd",
+ mode_complete) == 0);
+
+ SELF_CHECK (cooked_index_entry::compare ("name", "name<>",
+ mode_compare) == 0);
+ SELF_CHECK (cooked_index_entry::compare ("name<>", "name",
+ mode_compare) == 0);
+ SELF_CHECK (cooked_index_entry::compare ("name", "name<>",
+ mode_complete) == 0);
+ SELF_CHECK (cooked_index_entry::compare ("name<>", "name",
+ mode_complete) == 0);
+
+ SELF_CHECK (cooked_index_entry::compare ("name<arg>", "name<arg>",
+ mode_compare) == 0);
+ SELF_CHECK (cooked_index_entry::compare ("name<arg>", "name<ag>",
+ mode_compare) == 0);
+ SELF_CHECK (cooked_index_entry::compare ("name<arg>", "name<arg>",
+ mode_complete) == 0);
+ SELF_CHECK (cooked_index_entry::compare ("name<arg>", "name<ag>",
+ mode_complete) == 0);
+
+ SELF_CHECK (cooked_index_entry::compare ("name<arg<more>>",
+ "name<arg<more>>",
+ mode_compare) == 0);
+ SELF_CHECK (cooked_index_entry::compare ("name<arg>",
+ "name<arg<more>>",
+ mode_compare) == 0);
+
+ SELF_CHECK (cooked_index_entry::compare ("name", "name<arg<more>>",
+ mode_compare) == 0);
+ SELF_CHECK (cooked_index_entry::compare ("name<arg<more>>", "name",
+ mode_compare) == 0);
+ SELF_CHECK (cooked_index_entry::compare ("name<arg<more>>", "name<arg<",
+ mode_compare) == 0);
+ SELF_CHECK (cooked_index_entry::compare ("name<arg<more>>", "name<arg<",
+ mode_complete) == 0);
+
+ SELF_CHECK (cooked_index_entry::compare ("", "abcd", mode_compare) < 0);
+ SELF_CHECK (cooked_index_entry::compare ("", "abcd", mode_complete) < 0);
+ SELF_CHECK (cooked_index_entry::compare ("abcd", "", mode_compare) > 0);
+ SELF_CHECK (cooked_index_entry::compare ("abcd", "", mode_complete) == 0);
+
+ SELF_CHECK (cooked_index_entry::compare ("func", "func<type>",
+ mode_sort) == 0);
+ SELF_CHECK (cooked_index_entry::compare ("func<type>", "func1",
+ mode_sort) < 0);
+}
+
+} /* anonymous namespace */
+
+#endif /* GDB_SELF_TEST */
+
+/* See cooked-index-entry.h. */
+
+bool
+cooked_index_entry::matches (domain_search_flags kind) const
+{
+ /* Just reject type declarations. */
+ if ((flags & IS_TYPE_DECLARATION) != 0)
+ return false;
+
+ return tag_matches_domain (tag, kind, lang);
+}
+
+/* See cooked-index-entry.h. */
+
+const char *
+cooked_index_entry::full_name (struct obstack *storage,
+ cooked_index_full_name_flag name_flags,
+ const char *default_sep) const
+{
+ const char *local_name = ((name_flags & FOR_MAIN) != 0) ? name : canonical;
+
+ if ((flags & IS_LINKAGE) != 0 || get_parent () == nullptr)
+ return local_name;
+
+ const char *sep = default_sep;
+ switch (lang)
+ {
+ case language_cplus:
+ case language_rust:
+ case language_fortran:
+ sep = "::";
+ break;
+
+ case language_ada:
+ if ((name_flags & FOR_ADA_LINKAGE_NAME) != 0)
+ {
+ sep = "__";
+ break;
+ }
+ [[fallthrough]];
+ case language_go:
+ case language_d:
+ sep = ".";
+ break;
+
+ default:
+ if (sep == nullptr)
+ return local_name;
+ break;
+ }
+
+ /* The FOR_ADA_LINKAGE_NAME flag should only affect Ada entries, so
+ disable it here if we don't need it. */
+ if (lang != language_ada)
+ name_flags &= ~FOR_ADA_LINKAGE_NAME;
+
+ get_parent ()->write_scope (storage, sep, name_flags);
+ obstack_grow0 (storage, local_name, strlen (local_name));
+ return (const char *) obstack_finish (storage);
+}
+
+/* See cooked-index-entry.h. */
+
+void
+cooked_index_entry::write_scope (struct obstack *storage,
+ const char *sep,
+ cooked_index_full_name_flag flags) const
+{
+ if (get_parent () != nullptr)
+ get_parent ()->write_scope (storage, sep, flags);
+ /* When computing the Ada linkage name, the entry might not have
+ been canonicalized yet, so use the 'name'. */
+ const char *local_name = ((flags & (FOR_MAIN | FOR_ADA_LINKAGE_NAME)) != 0
+ ? name
+ : canonical);
+ obstack_grow (storage, local_name, strlen (local_name));
+ obstack_grow (storage, sep, strlen (sep));
+}
+
+void _initialize_dwarf2_entry ();
+void
+_initialize_dwarf2_entry ()
+{
+#if GDB_SELF_TEST
+ selftests::register_test ("cooked_index_entry::compare", test_compare);
+#endif
+}
diff --git a/gdb/dwarf2/cooked-index-entry.h b/gdb/dwarf2/cooked-index-entry.h
new file mode 100644
index 0000000..db2b6d7
--- /dev/null
+++ b/gdb/dwarf2/cooked-index-entry.h
@@ -0,0 +1,258 @@
+/* Entry in the cooked index
+
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#ifndef GDB_DWARF2_COOKED_INDEX_ENTRY_H
+#define GDB_DWARF2_COOKED_INDEX_ENTRY_H
+
+#include "dwarf2/parent-map.h"
+#include "dwarf2/types.h"
+#include "symtab.h"
+#include "gdbsupport/gdb_obstack.h"
+#include "quick-symbol.h"
+
+/* Flags that describe an entry in the index. */
+enum cooked_index_flag_enum : unsigned char
+{
+ /* True if this entry is the program's "main". */
+ IS_MAIN = 1,
+ /* True if this entry represents a "static" object. */
+ IS_STATIC = 2,
+ /* True if this entry uses the linkage name. */
+ IS_LINKAGE = 4,
+ /* True if this entry is just for the declaration of a type, not the
+ definition. */
+ IS_TYPE_DECLARATION = 8,
+ /* True is parent_entry.deferred has a value rather than parent_entry
+ .resolved. */
+ IS_PARENT_DEFERRED = 16,
+ /* True if this entry was synthesized by gdb (as opposed to coming
+ directly from the DWARF). */
+ IS_SYNTHESIZED = 32,
+};
+DEF_ENUM_FLAGS_TYPE (enum cooked_index_flag_enum, cooked_index_flag);
+
+/* Flags used when requesting the full name of an entry. */
+enum cooked_index_full_name_enum : unsigned char
+{
+ /* Set when requesting the name of "main". See the method for the
+ full description. */
+ FOR_MAIN = 1,
+ /* Set when requesting the linkage name for an Ada entry. */
+ FOR_ADA_LINKAGE_NAME = 2,
+};
+DEF_ENUM_FLAGS_TYPE (enum cooked_index_full_name_enum, cooked_index_full_name_flag);
+
+/* Type representing either a resolved or deferred cooked_index_entry. */
+
+union cooked_index_entry_ref
+{
+ cooked_index_entry_ref (parent_map::addr_type deferred_)
+ {
+ deferred = deferred_;
+ }
+
+ cooked_index_entry_ref (const cooked_index_entry *resolved_)
+ {
+ resolved = resolved_;
+ }
+
+ const cooked_index_entry *resolved;
+ parent_map::addr_type deferred;
+};
+
+/* Return a string representation of FLAGS. */
+
+std::string to_string (cooked_index_flag flags);
+
+/* A cooked_index_entry represents a single item in the index. Note
+ that two entries can be created for the same DIE -- one using the
+ name, and another one using the linkage name, if any.
+
+ This is an "open" class and the members are all directly
+ accessible. It is read-only after the index has been fully read
+ and processed. */
+struct cooked_index_entry : public allocate_on_obstack<cooked_index_entry>
+{
+ cooked_index_entry (sect_offset die_offset_, enum dwarf_tag tag_,
+ cooked_index_flag flags_,
+ enum language lang_, const char *name_,
+ cooked_index_entry_ref parent_entry_,
+ dwarf2_per_cu *per_cu_)
+ : name (name_),
+ tag (tag_),
+ flags (flags_),
+ lang (lang_),
+ die_offset (die_offset_),
+ per_cu (per_cu_),
+ m_parent_entry (parent_entry_)
+ {
+ }
+
+ /* Return true if this entry matches SEARCH_FLAGS. */
+ bool matches (block_search_flags search_flags) const
+ {
+ /* Just reject type declarations. */
+ if ((flags & IS_TYPE_DECLARATION) != 0)
+ return false;
+
+ if ((search_flags & SEARCH_STATIC_BLOCK) != 0
+ && (flags & IS_STATIC) != 0)
+ return true;
+ if ((search_flags & SEARCH_GLOBAL_BLOCK) != 0
+ && (flags & IS_STATIC) == 0)
+ return true;
+ return false;
+ }
+
+ /* Return true if this entry matches KIND. */
+ bool matches (domain_search_flags kind) const;
+
+ /* Construct the fully-qualified name of this entry and return a
+ pointer to it. If allocation is needed, it will be done on
+ STORAGE.
+
+ FLAGS affects the result. If the FOR_MAIN flag is set, we are
+ computing the name of the "main" entry -- one marked
+ DW_AT_main_subprogram. This matters for avoiding name
+ canonicalization and also a related race (if "main" computation
+ is done during finalization).
+
+ If the FOR_ADA_LINKAGE_NAME flag is set, then Ada-language
+ symbols will have their "linkage-style" name computed. The
+ default is source-style.
+
+ If the language doesn't prescribe a separator, one can be
+ specified using DEFAULT_SEP. */
+ const char *full_name (struct obstack *storage,
+ cooked_index_full_name_flag name_flags = 0,
+ const char *default_sep = nullptr) const;
+
+ /* Comparison modes for the 'compare' function. See the function
+ for a description. */
+ enum comparison_mode
+ {
+ MATCH,
+ SORT,
+ COMPLETE,
+ };
+
+ /* Compare two strings, case-insensitively. Return -1 if STRA is
+ less than STRB, 0 if they are equal, and 1 if STRA is greater.
+
+ When comparing, '<' is considered to be less than all other
+ printable characters. This ensures that "t<x>" sorts before
+ "t1", which is necessary when looking up "t". This '<' handling
+ is to ensure that certain C++ lookups work correctly. It is
+ inexact, and applied regardless of the search language, but this
+ is ok because callers of this code do more precise filtering
+ according to their needs. This is also why using a
+ case-insensitive comparison works even for languages that are
+ case sensitive.
+
+ MODE controls how the comparison proceeds.
+
+ MODE==SORT is used when sorting and the only special '<' handling
+ that it does is to ensure that '<' sorts before all other
+ printable characters. This ensures that the resulting ordering
+ will be binary-searchable.
+
+ MODE==MATCH is used when searching for a symbol. In this case,
+ STRB must always be the search name, and STRA must be the name in
+ the index that is under consideration. In compare mode, early
+ termination of STRB may match STRA -- for example, "t<int>" and
+ "t" will be considered to be equal. (However, if A=="t" and
+ B=="t<int>", then this will not consider them as equal.)
+
+ MODE==COMPLETE is used when searching for a symbol for
+ completion. In this case, STRB must always be the search name,
+ and STRA must be the name in the index that is under
+ consideration. In completion mode, early termination of STRB
+ always results in a match. */
+ static int compare (const char *stra, const char *strb,
+ comparison_mode mode);
+
+ /* Compare two entries by canonical name. */
+ bool operator< (const cooked_index_entry &other) const
+ {
+ return compare (canonical, other.canonical, SORT) < 0;
+ }
+
+ /* Set parent entry to PARENT. */
+ void set_parent (const cooked_index_entry *parent)
+ {
+ gdb_assert ((flags & IS_PARENT_DEFERRED) == 0);
+ m_parent_entry.resolved = parent;
+ }
+
+ /* Resolve deferred parent entry to PARENT. */
+ void resolve_parent (const cooked_index_entry *parent)
+ {
+ gdb_assert ((flags & IS_PARENT_DEFERRED) != 0);
+ flags = flags & ~IS_PARENT_DEFERRED;
+ m_parent_entry.resolved = parent;
+ }
+
+ /* Return parent entry. */
+ const cooked_index_entry *get_parent () const
+ {
+ gdb_assert ((flags & IS_PARENT_DEFERRED) == 0);
+ return m_parent_entry.resolved;
+ }
+
+ /* Return deferred parent entry. */
+ parent_map::addr_type get_deferred_parent () const
+ {
+ gdb_assert ((flags & IS_PARENT_DEFERRED) != 0);
+ return m_parent_entry.deferred;
+ }
+
+ /* The name as it appears in DWARF. This always points into one of
+ the mapped DWARF sections. Note that this may be the name or the
+ linkage name -- two entries are created for DIEs which have both
+ attributes. */
+ const char *name;
+ /* The canonical name. This may be equal to NAME. */
+ const char *canonical = nullptr;
+ /* The DWARF tag. */
+ enum dwarf_tag tag;
+ /* Any flags attached to this entry. */
+ cooked_index_flag flags;
+ /* The language of this symbol. */
+ ENUM_BITFIELD (language) lang : LANGUAGE_BITS;
+ /* The offset of this DIE. */
+ sect_offset die_offset;
+ /* The CU from which this entry originates. */
+ dwarf2_per_cu *per_cu;
+
+private:
+
+ /* A helper method for full_name. Emits the full scope of this
+ object, followed by the separator, to STORAGE. If this entry has
+ a parent, its write_scope method is called first. See full_name
+ for a description of the FLAGS parameter. */
+ void write_scope (struct obstack *storage, const char *sep,
+ cooked_index_full_name_flag flags) const;
+
+ /* The parent entry. This is NULL for top-level entries.
+ Otherwise, it points to the parent entry, such as a namespace or
+ class. */
+ cooked_index_entry_ref m_parent_entry;
+};
+
+#endif /* GDB_DWARF2_COOKED_INDEX_ENTRY_H */
diff --git a/gdb/dwarf2/cooked-index-shard.c b/gdb/dwarf2/cooked-index-shard.c
new file mode 100644
index 0000000..c717bbb
--- /dev/null
+++ b/gdb/dwarf2/cooked-index-shard.c
@@ -0,0 +1,331 @@
+/* Shards for the cooked index
+
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include "dwarf2/cooked-index-shard.h"
+#include "dwarf2/tag.h"
+#include "dwarf2/index-common.h"
+#include "cp-support.h"
+#include "c-lang.h"
+#include "ada-lang.h"
+
+/* Return true if a plain "main" could be the main program for this
+ language. Languages that are known to use some other mechanism are
+ excluded here. */
+
+static bool
+language_may_use_plain_main (enum language lang)
+{
+ /* No need to handle "unknown" here. */
+ return (lang == language_c
+ || lang == language_objc
+ || lang == language_cplus
+ || lang == language_m2
+ || lang == language_asm
+ || lang == language_opencl
+ || lang == language_minimal);
+}
+
+/* See cooked-index-shard.h. */
+
+cooked_index_entry *
+cooked_index_shard::create (sect_offset die_offset,
+ enum dwarf_tag tag,
+ cooked_index_flag flags,
+ enum language lang,
+ const char *name,
+ cooked_index_entry_ref parent_entry,
+ dwarf2_per_cu *per_cu)
+{
+ if (tag == DW_TAG_module || tag == DW_TAG_namespace)
+ flags &= ~IS_STATIC;
+ else if (lang == language_cplus
+ && (tag == DW_TAG_class_type
+ || tag == DW_TAG_interface_type
+ || tag == DW_TAG_structure_type
+ || tag == DW_TAG_union_type
+ || tag == DW_TAG_enumeration_type
+ || tag == DW_TAG_enumerator))
+ flags &= ~IS_STATIC;
+ else if (tag_is_type (tag))
+ flags |= IS_STATIC;
+
+ return new (&m_storage) cooked_index_entry (die_offset, tag, flags,
+ lang, name, parent_entry,
+ per_cu);
+}
+
+/* See cooked-index-shard.h. */
+
+cooked_index_entry *
+cooked_index_shard::add (sect_offset die_offset, enum dwarf_tag tag,
+ cooked_index_flag flags, enum language lang,
+ const char *name, cooked_index_entry_ref parent_entry,
+ dwarf2_per_cu *per_cu)
+{
+ cooked_index_entry *result = create (die_offset, tag, flags, lang, name,
+ parent_entry, per_cu);
+ m_entries.push_back (result);
+
+ /* An explicitly-tagged main program should always override the
+ implicit "main" discovery. */
+ if ((flags & IS_MAIN) != 0)
+ m_main = result;
+ else if ((flags & IS_PARENT_DEFERRED) == 0
+ && parent_entry.resolved == nullptr
+ && m_main == nullptr
+ && language_may_use_plain_main (lang)
+ && strcmp (name, "main") == 0)
+ m_main = result;
+
+ return result;
+}
+
+/* See cooked-index-shard.h. */
+
+void
+cooked_index_shard::handle_gnat_encoded_entry
+ (cooked_index_entry *entry,
+ htab_t gnat_entries,
+ std::vector<cooked_index_entry *> &new_entries)
+{
+ /* We decode Ada names in a particular way: operators and wide
+ characters are left as-is. This is done to make name matching a
+ bit simpler; and for wide characters, it means the choice of Ada
+ source charset does not affect the indexer directly. */
+ std::string canonical = ada_decode (entry->name, false, false, false);
+ if (canonical.empty ())
+ {
+ entry->canonical = entry->name;
+ return;
+ }
+ std::vector<std::string_view> names = split_name (canonical.c_str (),
+ split_style::DOT_STYLE);
+ std::string_view tail = names.back ();
+ names.pop_back ();
+
+ const cooked_index_entry *parent = nullptr;
+ for (const auto &name : names)
+ {
+ uint32_t hashval = dwarf5_djb_hash (name);
+ void **slot = htab_find_slot_with_hash (gnat_entries, &name,
+ hashval, INSERT);
+ /* CUs are processed in order, so we only need to check the most
+ recent entry. */
+ cooked_index_entry *last = (cooked_index_entry *) *slot;
+ if (last == nullptr || last->per_cu != entry->per_cu)
+ {
+ const char *new_name = m_names.insert (name);
+ last = create (entry->die_offset, DW_TAG_module,
+ IS_SYNTHESIZED, language_ada, new_name, parent,
+ entry->per_cu);
+ last->canonical = last->name;
+ new_entries.push_back (last);
+ *slot = last;
+ }
+
+ parent = last;
+ }
+
+ entry->set_parent (parent);
+ entry->canonical = m_names.insert (tail);
+}
+
+/* Hash a cooked index entry by name pointer value.
+
+ We can use pointer equality here because names come from .debug_str, which
+ will normally be unique-ified by the linker. Also, duplicates are relatively
+ harmless -- they just mean a bit of extra memory is used. */
+
+struct cooked_index_entry_name_ptr_hash
+{
+ using is_avalanching = void;
+
+ std::uint64_t operator () (const cooked_index_entry *entry) const noexcept
+ {
+ return ankerl::unordered_dense::hash<const char *> () (entry->name);
+ }
+};
+
+/* Compare cooked index entries by name pointer value. */
+
+struct cooked_index_entry_name_ptr_eq
+{
+ bool operator () (const cooked_index_entry *a,
+ const cooked_index_entry *b) const noexcept
+ {
+ return a->name == b->name;
+ }
+};
+
+/* See cooked-index-shard.h. */
+
+void
+cooked_index_shard::finalize (const parent_map_map *parent_maps)
+{
+ gdb::unordered_set<const cooked_index_entry *,
+ cooked_index_entry_name_ptr_hash,
+ cooked_index_entry_name_ptr_eq> seen_names;
+
+ auto hash_entry = [] (const void *e)
+ {
+ const cooked_index_entry *entry = (const cooked_index_entry *) e;
+ return dwarf5_djb_hash (entry->canonical);
+ };
+
+ auto eq_entry = [] (const void *a, const void *b) -> int
+ {
+ const cooked_index_entry *ae = (const cooked_index_entry *) a;
+ const std::string_view *sv = (const std::string_view *) b;
+ return (strlen (ae->canonical) == sv->length ()
+ && strncasecmp (ae->canonical, sv->data (), sv->length ()) == 0);
+ };
+
+ htab_up gnat_entries (htab_create_alloc (10, hash_entry, eq_entry,
+ nullptr, xcalloc, xfree));
+ std::vector<cooked_index_entry *> new_gnat_entries;
+
+ for (cooked_index_entry *entry : m_entries)
+ {
+ if ((entry->flags & IS_PARENT_DEFERRED) != 0)
+ {
+ const cooked_index_entry *new_parent
+ = parent_maps->find (entry->get_deferred_parent ());
+ entry->resolve_parent (new_parent);
+ }
+
+ /* Note that this code must be kept in sync with
+ language_requires_canonicalization. */
+ gdb_assert (entry->canonical == nullptr);
+ if ((entry->flags & IS_LINKAGE) != 0)
+ entry->canonical = entry->name;
+ else if (entry->lang == language_ada)
+ {
+ /* Newer versions of GNAT emit DW_TAG_module and use a
+ hierarchical structure. In this case, we don't need to
+ do any extra work. This can be detected by looking for a
+ GNAT-encoded name. */
+ if (strstr (entry->name, "__") == nullptr)
+ {
+ entry->canonical = entry->name;
+
+ /* If the entry does not have a parent, then there's
+ nothing extra to do here -- the entry itself is
+ sufficient.
+
+ However, if it does have a parent, we have to
+ synthesize an entry with the full name. This is
+ unfortunate, but it's necessary due to how some of
+ the Ada name-lookup code currently works. For
+ example, without this, ada_get_tsd_type will
+ fail.
+
+ Eventually it would be good to change the Ada lookup
+ code, and then remove these entries (and supporting
+ code in cooked_index_entry::full_name). */
+ if (entry->get_parent () != nullptr)
+ {
+ const char *fullname
+ = entry->full_name (&m_storage, FOR_ADA_LINKAGE_NAME);
+ cooked_index_entry *linkage = create (entry->die_offset,
+ entry->tag,
+ (entry->flags
+ | IS_LINKAGE
+ | IS_SYNTHESIZED),
+ language_ada,
+ fullname,
+ nullptr,
+ entry->per_cu);
+ linkage->canonical = fullname;
+ new_gnat_entries.push_back (linkage);
+ }
+ }
+ else
+ handle_gnat_encoded_entry (entry, gnat_entries.get (),
+ new_gnat_entries);
+ }
+ else if (entry->lang == language_cplus || entry->lang == language_c)
+ {
+ auto [it, inserted] = seen_names.insert (entry);
+
+ if (inserted)
+ {
+ /* No entry with that name was present, compute the canonical
+ name. */
+ gdb::unique_xmalloc_ptr<char> canon_name
+ = (entry->lang == language_cplus
+ ? cp_canonicalize_string (entry->name)
+ : c_canonicalize_name (entry->name));
+ if (canon_name == nullptr)
+ entry->canonical = entry->name;
+ else
+ entry->canonical = m_names.insert (std::move (canon_name));
+ }
+ else
+ {
+ /* An entry with that name was present, re-use its canonical
+ name. */
+ entry->canonical = (*it)->canonical;
+ }
+ }
+ else
+ entry->canonical = entry->name;
+ }
+
+ /* Make sure any new Ada entries end up in the results. This isn't
+ done when creating these new entries to avoid invalidating the
+ m_entries iterator used in the foreach above. */
+ m_entries.insert (m_entries.end (), new_gnat_entries.begin (),
+ new_gnat_entries.end ());
+
+ m_entries.shrink_to_fit ();
+ std::sort (m_entries.begin (), m_entries.end (),
+ [] (const cooked_index_entry *a, const cooked_index_entry *b)
+ {
+ return *a < *b;
+ });
+}
+
+/* See cooked-index-shard.h. */
+
+cooked_index_shard::range
+cooked_index_shard::find (const std::string &name, bool completing) const
+{
+ struct comparator
+ {
+ cooked_index_entry::comparison_mode mode;
+
+ bool operator() (const cooked_index_entry *entry,
+ const char *name) const noexcept
+ {
+ return cooked_index_entry::compare (entry->canonical, name, mode) < 0;
+ }
+
+ bool operator() (const char *name,
+ const cooked_index_entry *entry) const noexcept
+ {
+ return cooked_index_entry::compare (entry->canonical, name, mode) > 0;
+ }
+ };
+
+ return std::make_from_tuple<range>
+ (std::equal_range (m_entries.cbegin (), m_entries.cend (), name.c_str (),
+ comparator { (completing
+ ? cooked_index_entry::COMPLETE
+ : cooked_index_entry::MATCH) }));
+}
diff --git a/gdb/dwarf2/cooked-index-shard.h b/gdb/dwarf2/cooked-index-shard.h
new file mode 100644
index 0000000..925960b
--- /dev/null
+++ b/gdb/dwarf2/cooked-index-shard.h
@@ -0,0 +1,134 @@
+/* Shards for the cooked index
+
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#ifndef GDB_DWARF2_COOKED_INDEX_SHARD_H
+#define GDB_DWARF2_COOKED_INDEX_SHARD_H
+
+#include "dwarf2/cooked-index-entry.h"
+#include "dwarf2/types.h"
+#include "gdbsupport/gdb_obstack.h"
+#include "addrmap.h"
+#include "gdbsupport/iterator-range.h"
+#include "gdbsupport/string-set.h"
+
+/* An index of interesting DIEs. This is "cooked", in contrast to a
+ mapped .debug_names or .gdb_index, which are "raw". An entry in
+ the index is of type cooked_index_entry.
+
+ Operations on the index are described below. They are chosen to
+ make it relatively simple to implement the symtab "quick"
+ methods. */
+class cooked_index_shard
+{
+public:
+ cooked_index_shard () = default;
+ DISABLE_COPY_AND_ASSIGN (cooked_index_shard);
+
+ /* Create a new cooked_index_entry and register it with this object.
+ Entries are owned by this object. The new item is returned. */
+ cooked_index_entry *add (sect_offset die_offset, enum dwarf_tag tag,
+ cooked_index_flag flags, enum language lang,
+ const char *name,
+ cooked_index_entry_ref parent_entry,
+ dwarf2_per_cu *per_cu);
+
+ /* Install a new fixed addrmap from the given mutable addrmap. */
+ void install_addrmap (addrmap_mutable *map)
+ {
+ gdb_assert (m_addrmap == nullptr);
+ m_addrmap = new (&m_storage) addrmap_fixed (&m_storage, map);
+ }
+
+ friend class cooked_index;
+
+ /* A simple range over part of m_entries. */
+ typedef iterator_range<std::vector<cooked_index_entry *>::const_iterator>
+ range;
+
+ /* Return a range of all the entries. */
+ range all_entries () const
+ {
+ return { m_entries.cbegin (), m_entries.cend () };
+ }
+
+ /* Look up an entry by name. Returns a range of all matching
+ results. If COMPLETING is true, then a larger range, suitable
+ for completion, will be returned. */
+ range find (const std::string &name, bool completing) const;
+
+private:
+
+ /* Return the entry that is believed to represent the program's
+ "main". This will return NULL if no such entry is available. */
+ const cooked_index_entry *get_main () const
+ {
+ return m_main;
+ }
+
+ /* Look up ADDR in the address map, and return either the
+ corresponding CU, or nullptr if the address could not be
+ found. */
+ dwarf2_per_cu *lookup (unrelocated_addr addr)
+ {
+ if (m_addrmap == nullptr)
+ return nullptr;
+
+ return (static_cast<dwarf2_per_cu *> (m_addrmap->find ((CORE_ADDR) addr)));
+ }
+
+ /* Create a new cooked_index_entry and register it with this object.
+ Entries are owned by this object. The new item is returned. */
+ cooked_index_entry *create (sect_offset die_offset,
+ enum dwarf_tag tag,
+ cooked_index_flag flags,
+ enum language lang,
+ const char *name,
+ cooked_index_entry_ref parent_entry,
+ dwarf2_per_cu *per_cu);
+
+ /* When GNAT emits mangled ("encoded") names in the DWARF, and does
+ not emit the module structure, we still need this structuring to
+ do lookups. This function recreates that information for an
+ existing entry, modifying ENTRY as appropriate. Any new entries
+ are added to NEW_ENTRIES. */
+ void handle_gnat_encoded_entry
+ (cooked_index_entry *entry, htab_t gnat_entries,
+ std::vector<cooked_index_entry *> &new_entries);
+
+ /* Finalize the index. This should be called a single time, when
+ the index has been fully populated. It enters all the entries
+ into the internal table and fixes up all missing parent links.
+ This may be invoked in a worker thread. */
+ void finalize (const parent_map_map *parent_maps);
+
+ /* Storage for the entries. */
+ auto_obstack m_storage;
+ /* List of all entries. */
+ std::vector<cooked_index_entry *> m_entries;
+ /* If we found an entry with 'is_main' set, store it here. */
+ cooked_index_entry *m_main = nullptr;
+ /* The addrmap. This maps address ranges to dwarf2_per_cu objects. */
+ addrmap_fixed *m_addrmap = nullptr;
+ /* Storage for canonical names. */
+ gdb::string_set m_names;
+};
+
+using cooked_index_shard_up = std::unique_ptr<cooked_index_shard>;
+
+#endif /* GDB_DWARF2_COOKED_INDEX_SHARD_H */
diff --git a/gdb/dwarf2/cooked-index-worker.c b/gdb/dwarf2/cooked-index-worker.c
new file mode 100644
index 0000000..09d80ef
--- /dev/null
+++ b/gdb/dwarf2/cooked-index-worker.c
@@ -0,0 +1,260 @@
+/* DWARF index storage
+
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include "dwarf2/cooked-index-worker.h"
+#include "dwarf2/cooked-index.h"
+#include "gdbsupport/thread-pool.h"
+#include "maint.h"
+#include "run-on-main-thread.h"
+#include "event-top.h"
+#include "exceptions.h"
+
+/* See cooked-index-worker.h. */
+
+cooked_index_worker_result::cooked_index_worker_result ()
+ : m_shard (new cooked_index_shard)
+{
+}
+
+/* See cooked-index-worker.h. */
+
+cutu_reader *
+cooked_index_worker_result::get_reader (dwarf2_per_cu *per_cu)
+{
+ auto it = m_reader_hash.find (*per_cu);
+ return it != m_reader_hash.end () ? it->get () : nullptr;
+}
+
+/* See cooked-index-worker.h. */
+
+cutu_reader *
+cooked_index_worker_result::preserve (cutu_reader_up reader)
+{
+ m_abbrev_table_cache.add (reader->release_abbrev_table ());
+
+ auto [it, inserted] = m_reader_hash.insert (std::move (reader));
+ gdb_assert (inserted);
+
+ return it->get();
+}
+
+/* See cooked-index-worker.h. */
+
+std::uint64_t
+cooked_index_worker_result::cutu_reader_hash::operator()
+ (const cutu_reader_up &reader) const noexcept
+{
+ return (*this) (*reader->cu ()->per_cu);
+}
+
+/* See cooked-index-worker.h. */
+
+std::uint64_t
+cooked_index_worker_result::cutu_reader_hash::operator() (const dwarf2_per_cu &per_cu)
+ const noexcept
+{
+ return per_cu.index;
+}
+
+/* See cooked-index-worker.h. */
+
+bool
+cooked_index_worker_result::cutu_reader_eq::operator() (const cutu_reader_up &a,
+ const cutu_reader_up &b) const noexcept
+{
+ return (*this) (*a->cu ()->per_cu, b);
+}
+
+/* See cooked-index-worker.h. */
+
+bool cooked_index_worker_result::cutu_reader_eq::operator()
+ (const dwarf2_per_cu &per_cu, const cutu_reader_up &reader) const noexcept
+{
+ return per_cu.index == reader->cu ()->per_cu->index;
+}
+
+/* See cooked-index-worker.h. */
+
+void
+cooked_index_worker_result::emit_complaints_and_exceptions
+ (gdb::unordered_set<gdb_exception> &seen_exceptions)
+{
+ gdb_assert (is_main_thread ());
+
+ re_emit_complaints (m_complaints);
+
+ /* Only show a given exception a single time. */
+ for (auto &one_exc : m_exceptions)
+ if (seen_exceptions.insert (one_exc).second)
+ exception_print (gdb_stderr, one_exc);
+}
+
+/* See cooked-index-worker.h. */
+
+void
+cooked_index_worker::start ()
+{
+ gdb::thread_pool::g_thread_pool->post_task ([this] ()
+ {
+ try
+ {
+ do_reading ();
+ }
+ catch (const gdb_exception &exc)
+ {
+ m_failed = exc;
+ set (cooked_state::CACHE_DONE);
+ }
+
+ bfd_thread_cleanup ();
+ });
+}
+
+/* See cooked-index-worker.h. */
+
+bool
+cooked_index_worker::wait (cooked_state desired_state, bool allow_quit)
+{
+ bool done;
+#if CXX_STD_THREAD
+ {
+ std::unique_lock<std::mutex> lock (m_mutex);
+
+ /* This may be called from a non-main thread -- this functionality
+ is needed for the index cache -- but in this case we require
+ that the desired state already have been attained. */
+ gdb_assert (is_main_thread () || desired_state <= m_state);
+
+ while (desired_state > m_state)
+ {
+ if (allow_quit)
+ {
+ std::chrono::milliseconds duration { 15 };
+ if (m_cond.wait_for (lock, duration) == std::cv_status::timeout)
+ QUIT;
+ }
+ else
+ m_cond.wait (lock);
+ }
+ done = m_state == cooked_state::CACHE_DONE;
+ }
+#else
+ /* Without threads, all the work is done immediately on the main
+ thread, and there is never anything to wait for. */
+ done = desired_state == cooked_state::CACHE_DONE;
+#endif /* CXX_STD_THREAD */
+
+ /* Only the main thread is allowed to report complaints and the
+ like. */
+ if (!is_main_thread ())
+ return false;
+
+ if (m_reported)
+ return done;
+ m_reported = true;
+
+ /* Emit warnings first, maybe they were emitted before an exception
+ (if any) was thrown. */
+ m_warnings.emit ();
+
+ if (m_failed.has_value ())
+ {
+ /* do_reading failed -- report it. */
+ exception_print (gdb_stderr, *m_failed);
+ m_failed.reset ();
+ return done;
+ }
+
+ /* Only show a given exception a single time. */
+ gdb::unordered_set<gdb_exception> seen_exceptions;
+ for (auto &one_result : m_results)
+ one_result.emit_complaints_and_exceptions (seen_exceptions);
+
+ print_stats ();
+
+ struct objfile *objfile = m_per_objfile->objfile;
+ dwarf2_per_bfd *per_bfd = m_per_objfile->per_bfd;
+ cooked_index *table
+ = (gdb::checked_static_cast<cooked_index *>
+ (per_bfd->index_table.get ()));
+
+ auto_obstack temp_storage;
+ enum language lang = language_unknown;
+ const char *main_name = table->get_main_name (&temp_storage, &lang);
+ if (main_name != nullptr)
+ set_objfile_main_name (objfile, main_name, lang);
+
+ /* dwarf_read_debug_printf ("Done building psymtabs of %s", */
+ /* objfile_name (objfile)); */
+
+ return done;
+}
+
+/* See cooked-index-worker.h. */
+
+void
+cooked_index_worker::set (cooked_state desired_state)
+{
+ gdb_assert (desired_state != cooked_state::INITIAL);
+
+#if CXX_STD_THREAD
+ std::lock_guard<std::mutex> guard (m_mutex);
+ gdb_assert (desired_state > m_state);
+ m_state = desired_state;
+ m_cond.notify_one ();
+#else
+ /* Without threads, all the work is done immediately on the main
+ thread, and there is never anything to do. */
+#endif /* CXX_STD_THREAD */
+}
+
+/* See cooked-index-worker.h. */
+
+void
+cooked_index_worker::write_to_cache (const cooked_index *idx)
+{
+ if (idx != nullptr)
+ {
+ /* Writing to the index cache may cause a warning to be emitted.
+ See PR symtab/30837. This arranges to capture all such
+ warnings. This is safe because we know the deferred_warnings
+ object isn't in use by any other thread at this point. */
+ scoped_restore_warning_hook defer (&m_warnings);
+ m_cache_store.store ();
+ }
+}
+
+/* See cooked-index-worker.h. */
+
+void
+cooked_index_worker::done_reading ()
+{
+ {
+ scoped_time_it time_it ("DWARF add parent map", m_per_command_time);
+
+ for (auto &one_result : m_results)
+ m_all_parents_map.add_map (*one_result.get_parent_map ());
+ }
+
+ dwarf2_per_bfd *per_bfd = m_per_objfile->per_bfd;
+ cooked_index *table
+ = (gdb::checked_static_cast<cooked_index *>
+ (per_bfd->index_table.get ()));
+ table->set_contents ();
+}
diff --git a/gdb/dwarf2/cooked-index-worker.h b/gdb/dwarf2/cooked-index-worker.h
new file mode 100644
index 0000000..8b9766c
--- /dev/null
+++ b/gdb/dwarf2/cooked-index-worker.h
@@ -0,0 +1,323 @@
+/* DWARF index storage
+
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#ifndef GDB_DWARF2_COOKED_INDEX_WORKER_H
+#define GDB_DWARF2_COOKED_INDEX_WORKER_H
+
+#include "dwarf2/abbrev-table-cache.h"
+#include "dwarf2/cooked-index-entry.h"
+#include "dwarf2/cooked-index-shard.h"
+#include "dwarf2/types.h"
+#include "dwarf2/read.h"
+#include "maint.h"
+#include "run-on-main-thread.h"
+
+#if CXX_STD_THREAD
+#include <mutex>
+#include <condition_variable>
+#endif /* CXX_STD_THREAD */
+
+using cutu_reader_up = std::unique_ptr<cutu_reader>;
+
+/* An instance of this is created when scanning DWARF to create a
+ cooked index. This class is the result of a single task to store
+ results while working -- that is, it is an implementation detail of
+ the threads managed by cooked_index_worker. Once scanning is done,
+ selected parts of the state here are stored into the shard, and
+ then these temporary objects are destroyed. */
+
+class cooked_index_worker_result
+{
+public:
+
+ cooked_index_worker_result ();
+ DISABLE_COPY_AND_ASSIGN (cooked_index_worker_result);
+
+ cooked_index_worker_result (cooked_index_worker_result &&) = default;
+ cooked_index_worker_result &operator= (cooked_index_worker_result &&)
+ = default;
+
+ /* Return the current abbrev table_cache. */
+ const abbrev_table_cache &get_abbrev_table_cache () const
+ { return m_abbrev_table_cache; }
+
+ /* Return the DIE reader corresponding to PER_CU. If no such reader
+ has been registered, return NULL. */
+ cutu_reader *get_reader (dwarf2_per_cu *per_cu);
+
+ /* Preserve READER by storing it in the local hash table. */
+ cutu_reader *preserve (cutu_reader_up reader);
+
+ /* Add an entry to the index. The arguments describe the entry; see
+ cooked-index.h. The new entry is returned. */
+ cooked_index_entry *add (sect_offset die_offset, enum dwarf_tag tag,
+ cooked_index_flag flags,
+ const char *name,
+ cooked_index_entry_ref parent_entry,
+ dwarf2_per_cu *per_cu)
+ {
+ return m_shard->add (die_offset, tag, flags, per_cu->lang (),
+ name, parent_entry, per_cu);
+ }
+
+ /* Overload that allows the language to be specified. */
+ cooked_index_entry *add (sect_offset die_offset, enum dwarf_tag tag,
+ cooked_index_flag flags, enum language lang,
+ const char *name,
+ cooked_index_entry_ref parent_entry,
+ dwarf2_per_cu *per_cu)
+ {
+ return m_shard->add (die_offset, tag, flags, lang,
+ name, parent_entry, per_cu);
+ }
+
+ /* Install the current addrmap into the shard being constructed,
+ then transfer ownership of the index to the caller. */
+ cooked_index_shard_up release_shard ()
+ {
+ m_shard->install_addrmap (&m_addrmap);
+ /* This isn't needed any more. */
+ m_addrmap.clear ();
+ return std::move (m_shard);
+ }
+
+ /* Return the mutable addrmap that is currently being created. */
+ addrmap_mutable *get_addrmap ()
+ {
+ return &m_addrmap;
+ }
+
+ /* Return the parent_map that is currently being created. */
+ parent_map *get_parent_map ()
+ {
+ return &m_parent_map;
+ }
+
+ /* Catch exceptions from calling F (), and add them to the list of caught
+ exceptions. These are passed forward and printed by the main thread. */
+ template <typename F>
+ void
+ catch_error (F &&f)
+ {
+ try
+ {
+ f ();
+ }
+ catch (gdb_exception &ex)
+ {
+ m_exceptions.push_back (std::move (ex));
+ }
+ }
+
+ /* Called when the thread using this object is done with its work.
+ This stores any complaints for later emission, and it clears some
+ data that won't be needed again. */
+ void done_reading (complaint_collection &&complaints)
+ {
+ /* Hang on to the complaints. */
+ m_complaints = std::move (complaints);
+ /* Discard things that are no longer needed. */
+ m_reader_hash.clear ();
+ }
+
+ /* Called to emit any stored complaints or exceptions. This can
+ only be called on the main thread. */
+ void emit_complaints_and_exceptions
+ (gdb::unordered_set<gdb_exception> &seen_exceptions);
+
+private:
+ /* The abbrev table cache used by this indexer. */
+ abbrev_table_cache m_abbrev_table_cache;
+
+ /* Hash function for a cutu_reader. */
+ struct cutu_reader_hash
+ {
+ using is_transparent = void;
+
+ std::uint64_t operator() (const cutu_reader_up &reader) const noexcept;
+ std::uint64_t operator() (const dwarf2_per_cu &per_cu) const noexcept;
+ };
+
+ /* Equality function for cutu_reader. */
+ struct cutu_reader_eq
+ {
+ using is_transparent = void;
+
+ bool operator() (const cutu_reader_up &a,
+ const cutu_reader_up &b) const noexcept;
+
+ bool operator() (const dwarf2_per_cu &per_cu,
+ const cutu_reader_up &reader) const noexcept;
+ };
+
+ /* A hash table of cutu_reader objects. */
+ gdb::unordered_set<cutu_reader_up, cutu_reader_hash, cutu_reader_eq>
+ m_reader_hash;
+
+ /* The index shard that is being constructed. */
+ cooked_index_shard_up m_shard;
+
+ /* Parent map for each CU that is read. */
+ parent_map m_parent_map;
+
+ /* A writeable addrmap being constructed by this scanner. */
+ addrmap_mutable m_addrmap;
+
+ /* The issued complaints. Only set after done_reading is
+ called. */
+ complaint_collection m_complaints;
+
+ /* Exceptions that we're storing to emit later. */
+ std::vector<gdb_exception> m_exceptions;
+};
+
+/* The possible states of the index. See the explanatory comment
+ before cooked_index for more details. */
+enum class cooked_state
+{
+ /* The default state. This is not a valid argument to 'wait'. */
+ INITIAL,
+ /* The initial scan has completed. The name of "main" is now
+ available (if known). The addrmaps are usable now.
+ Finalization has started but is not complete. */
+ MAIN_AVAILABLE,
+ /* Finalization has completed. This means the index is fully
+ available for queries. */
+ FINALIZED,
+ /* Writing to the index cache has finished. */
+ CACHE_DONE,
+};
+
+/* An object of this type controls the scanning of the DWARF. It
+ schedules the worker tasks and tracks the current state. Once
+ scanning is done, this object is discarded.
+
+ This is an abstract base class that defines the basic behavior of
+ scanners. Separate concrete implementations exist for scanning
+ .debug_names and .debug_info. */
+
+class cooked_index_worker
+{
+public:
+
+ explicit cooked_index_worker (dwarf2_per_objfile *per_objfile)
+ : m_per_objfile (per_objfile),
+ m_cache_store (global_index_cache, per_objfile->per_bfd),
+ m_per_command_time (per_command_time)
+ {
+ /* Make sure we capture per_command_time from the main thread. */
+ gdb_assert (is_main_thread ());
+ }
+ virtual ~cooked_index_worker ()
+ { }
+ DISABLE_COPY_AND_ASSIGN (cooked_index_worker);
+
+ /* Start reading. */
+ void start ();
+
+ /* Wait for a particular state to be achieved. If ALLOW_QUIT is
+ true, then the loop will check the QUIT flag. Normally this
+ method may only be called from the main thread; however, it can
+ be called from a worker thread provided that the desired state
+ has already been attained. (This oddity is used by the index
+ cache writer.) */
+ bool wait (cooked_state desired_state, bool allow_quit);
+
+ /* Release all shards from the results. */
+ std::vector<cooked_index_shard_up> release_shards ()
+ {
+ std::vector<cooked_index_shard_up> result;
+ for (auto &one_result : m_results)
+ result.push_back (one_result.release_shard ());
+ result.shrink_to_fit ();
+ return result;
+ }
+
+ /* Return the object holding all the parent maps. */
+ const parent_map_map *get_parent_map_map () const
+ {
+ return &m_all_parents_map;
+ }
+
+protected:
+
+ /* Let cooked_index call the 'set' and 'write_to_cache' methods. */
+ friend class cooked_index;
+
+ /* Set the current state. */
+ void set (cooked_state desired_state);
+
+ /* Write to the index cache. */
+ void write_to_cache (const cooked_index *idx);
+
+ /* Helper function that does the work of reading. This must be able
+ to be run in a worker thread without problems. */
+ virtual void do_reading () = 0;
+
+ /* Helper function that should be called when done reading. This
+ assumes that m_results is filled in, and will initialize
+ m_all_parents_map and end by calling
+ cooked_index::set_contents. */
+ virtual void done_reading ();
+
+ /* A callback that can print stats, if needed. This is called when
+ transitioning to the 'MAIN_AVAILABLE' state. */
+ virtual void print_stats ()
+ { }
+
+ /* The per-objfile object. */
+ dwarf2_per_objfile *m_per_objfile;
+ /* Result of each worker task. */
+ std::vector<cooked_index_worker_result> m_results;
+ /* Any warnings emitted. For the time being at least, this only
+ needed in do_reading, not in every worker. Note that
+ deferred_warnings uses gdb_stderr in its constructor, and this
+ should only be done from the main thread. This is enforced in
+ the cooked_index_worker constructor. */
+ deferred_warnings m_warnings;
+
+ /* A map of all parent maps. Used during finalization to fix up
+ parent relationships. */
+ parent_map_map m_all_parents_map;
+
+#if CXX_STD_THREAD
+ /* Current state of this object. */
+ cooked_state m_state = cooked_state::INITIAL;
+ /* Mutex and condition variable used to synchronize. */
+ std::mutex m_mutex;
+ std::condition_variable m_cond;
+#endif /* CXX_STD_THREAD */
+ /* This flag indicates whether any complaints or exceptions that
+ arose during scanning have been reported by 'wait'. This may
+ only be modified on the main thread. */
+ bool m_reported = false;
+ /* If set, an exception occurred during reading; in this case the
+ scanning is stopped and this exception will later be reported by
+ the 'wait' method. */
+ std::optional<gdb_exception> m_failed;
+ /* An object used to write to the index cache. */
+ index_cache_store_context m_cache_store;
+
+ /* Captured value of per_command_time. */
+ bool m_per_command_time;
+};
+
+using cooked_index_worker_up = std::unique_ptr<cooked_index_worker>;
+
+#endif /* GDB_DWARF2_COOKED_INDEX_WORKER_H */
diff --git a/gdb/dwarf2/cooked-index.c b/gdb/dwarf2/cooked-index.c
index 2d9f6e9..7232f28 100644
--- a/gdb/dwarf2/cooked-index.c
+++ b/gdb/dwarf2/cooked-index.c
@@ -1,6 +1,6 @@
/* DIE indexing
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -18,52 +18,26 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "dwarf2/cooked-index.h"
-#include "dwarf2/index-common.h"
#include "dwarf2/read.h"
#include "dwarf2/stringify.h"
-#include "dwarf2/index-cache.h"
-#include "cp-support.h"
-#include "c-lang.h"
-#include "ada-lang.h"
-#include "dwarf2/tag.h"
#include "event-top.h"
-#include "exceptions.h"
-#include "split-name.h"
+#include "maint.h"
#include "observable.h"
#include "run-on-main-thread.h"
-#include <algorithm>
-#include "gdbsupport/gdb-safe-ctype.h"
-#include "gdbsupport/selftest.h"
#include "gdbsupport/task-group.h"
-#include "gdbsupport/thread-pool.h"
-#include <chrono>
-#include <unordered_set>
#include "cli/cli-cmds.h"
/* We don't want gdb to exit while it is in the process of writing to
the index cache. So, all live cooked index vectors are stored
here, and then these are all waited for before exit proceeds. */
-static std::unordered_set<cooked_index *> active_vectors;
+static gdb::unordered_set<cooked_index *> active_vectors;
-/* See cooked-index.h. */
-
-std::string
-to_string (cooked_index_flag flags)
-{
- static constexpr cooked_index_flag::string_mapping mapping[] = {
- MAP_ENUM_FLAG (IS_MAIN),
- MAP_ENUM_FLAG (IS_STATIC),
- MAP_ENUM_FLAG (IS_LINKAGE),
- MAP_ENUM_FLAG (IS_TYPE_DECLARATION),
- MAP_ENUM_FLAG (IS_PARENT_DEFERRED),
- };
-
- return flags.to_string (mapping);
-}
-
-/* See cooked-index.h. */
+/* Return true if LANG requires canonicalization. This is used
+ primarily to work around an issue computing the name of "main".
+ This function must be kept in sync with
+ cooked_index_shard::finalize. */
-bool
+static bool
language_requires_canonicalization (enum language lang)
{
return (lang == language_ada
@@ -71,550 +45,8 @@ language_requires_canonicalization (enum language lang)
|| lang == language_cplus);
}
-/* Return true if a plain "main" could be the main program for this
- language. Languages that are known to use some other mechanism are
- excluded here. */
-
-static bool
-language_may_use_plain_main (enum language lang)
-{
- /* No need to handle "unknown" here. */
- return (lang == language_c
- || lang == language_objc
- || lang == language_cplus
- || lang == language_m2
- || lang == language_asm
- || lang == language_opencl
- || lang == language_minimal);
-}
-
-/* See cooked-index.h. */
-
-int
-cooked_index_entry::compare (const char *stra, const char *strb,
- comparison_mode mode)
-{
-#if defined (__GNUC__) && !defined (__clang__) && __GNUC__ <= 7
- /* Work around error with gcc 7.5.0. */
- auto munge = [] (char c) -> unsigned char
-#else
- auto munge = [] (char c) constexpr -> unsigned char
-#endif
- {
- /* Treat '<' as if it ended the string. This lets something
- like "func<t>" match "func<t<int>>". See the "Breakpoints in
- template functions" section in the manual. */
- if (c == '<')
- return '\0';
- return TOLOWER ((unsigned char) c);
- };
-
- unsigned char a = munge (*stra);
- unsigned char b = munge (*strb);
-
- while (a != '\0' && b != '\0' && a == b)
- {
- a = munge (*++stra);
- b = munge (*++strb);
- }
-
- if (a == b)
- return 0;
-
- /* When completing, if STRB ends earlier than STRA, consider them as
- equal. */
- if (mode == COMPLETE || (mode == MATCH && a == munge ('<')))
- {
- if (b == '\0')
- return 0;
- }
-
- return a < b ? -1 : 1;
-}
-
-#if GDB_SELF_TEST
-
-namespace {
-
-void
-test_compare ()
-{
- /* Convenience aliases. */
- const auto mode_compare = cooked_index_entry::MATCH;
- const auto mode_sort = cooked_index_entry::SORT;
- const auto mode_complete = cooked_index_entry::COMPLETE;
-
- SELF_CHECK (cooked_index_entry::compare ("abcd", "abcd",
- mode_compare) == 0);
- SELF_CHECK (cooked_index_entry::compare ("abcd", "abcd",
- mode_complete) == 0);
-
- SELF_CHECK (cooked_index_entry::compare ("abcd", "ABCDE",
- mode_compare) < 0);
- SELF_CHECK (cooked_index_entry::compare ("ABCDE", "abcd",
- mode_compare) > 0);
- SELF_CHECK (cooked_index_entry::compare ("abcd", "ABCDE",
- mode_complete) < 0);
- SELF_CHECK (cooked_index_entry::compare ("ABCDE", "abcd",
- mode_complete) == 0);
-
- SELF_CHECK (cooked_index_entry::compare ("name", "name<>",
- mode_compare) == 0);
- SELF_CHECK (cooked_index_entry::compare ("name<>", "name",
- mode_compare) == 0);
- SELF_CHECK (cooked_index_entry::compare ("name", "name<>",
- mode_complete) == 0);
- SELF_CHECK (cooked_index_entry::compare ("name<>", "name",
- mode_complete) == 0);
-
- SELF_CHECK (cooked_index_entry::compare ("name<arg>", "name<arg>",
- mode_compare) == 0);
- SELF_CHECK (cooked_index_entry::compare ("name<arg>", "name<ag>",
- mode_compare) == 0);
- SELF_CHECK (cooked_index_entry::compare ("name<arg>", "name<arg>",
- mode_complete) == 0);
- SELF_CHECK (cooked_index_entry::compare ("name<arg>", "name<ag>",
- mode_complete) == 0);
-
- SELF_CHECK (cooked_index_entry::compare ("name<arg<more>>",
- "name<arg<more>>",
- mode_compare) == 0);
- SELF_CHECK (cooked_index_entry::compare ("name<arg>",
- "name<arg<more>>",
- mode_compare) == 0);
-
- SELF_CHECK (cooked_index_entry::compare ("name", "name<arg<more>>",
- mode_compare) == 0);
- SELF_CHECK (cooked_index_entry::compare ("name<arg<more>>", "name",
- mode_compare) == 0);
- SELF_CHECK (cooked_index_entry::compare ("name<arg<more>>", "name<arg<",
- mode_compare) == 0);
- SELF_CHECK (cooked_index_entry::compare ("name<arg<more>>", "name<arg<",
- mode_complete) == 0);
-
- SELF_CHECK (cooked_index_entry::compare ("", "abcd", mode_compare) < 0);
- SELF_CHECK (cooked_index_entry::compare ("", "abcd", mode_complete) < 0);
- SELF_CHECK (cooked_index_entry::compare ("abcd", "", mode_compare) > 0);
- SELF_CHECK (cooked_index_entry::compare ("abcd", "", mode_complete) == 0);
-
- SELF_CHECK (cooked_index_entry::compare ("func", "func<type>",
- mode_sort) == 0);
- SELF_CHECK (cooked_index_entry::compare ("func<type>", "func1",
- mode_sort) < 0);
-}
-
-} /* anonymous namespace */
-
-#endif /* GDB_SELF_TEST */
-
-/* See cooked-index.h. */
-
-bool
-cooked_index_entry::matches (domain_search_flags kind) const
-{
- /* Just reject type declarations. */
- if ((flags & IS_TYPE_DECLARATION) != 0)
- return false;
-
- return tag_matches_domain (tag, kind, lang);
-}
-
-/* See cooked-index.h. */
-
-const char *
-cooked_index_entry::full_name (struct obstack *storage, bool for_main,
- const char *default_sep) const
-{
- const char *local_name = for_main ? name : canonical;
-
- if ((flags & IS_LINKAGE) != 0 || get_parent () == nullptr)
- return local_name;
-
- const char *sep = default_sep;
- switch (lang)
- {
- case language_cplus:
- case language_rust:
- sep = "::";
- break;
-
- case language_go:
- case language_d:
- case language_ada:
- sep = ".";
- break;
-
- default:
- if (sep == nullptr)
- return local_name;
- break;
- }
-
- get_parent ()->write_scope (storage, sep, for_main);
- obstack_grow0 (storage, local_name, strlen (local_name));
- return (const char *) obstack_finish (storage);
-}
-
-/* See cooked-index.h. */
-
-void
-cooked_index_entry::write_scope (struct obstack *storage,
- const char *sep,
- bool for_main) const
-{
- if (get_parent () != nullptr)
- get_parent ()->write_scope (storage, sep, for_main);
- const char *local_name = for_main ? name : canonical;
- obstack_grow (storage, local_name, strlen (local_name));
- obstack_grow (storage, sep, strlen (sep));
-}
-
-/* See cooked-index.h. */
-
-cooked_index_entry *
-cooked_index_shard::add (sect_offset die_offset, enum dwarf_tag tag,
- cooked_index_flag flags, enum language lang,
- const char *name,
- cooked_index_entry_ref parent_entry,
- dwarf2_per_cu_data *per_cu)
-{
- cooked_index_entry *result = create (die_offset, tag, flags, lang, name,
- parent_entry, per_cu);
- m_entries.push_back (result);
-
- /* An explicitly-tagged main program should always override the
- implicit "main" discovery. */
- if ((flags & IS_MAIN) != 0)
- m_main = result;
- else if ((flags & IS_PARENT_DEFERRED) == 0
- && parent_entry.resolved == nullptr
- && m_main == nullptr
- && language_may_use_plain_main (lang)
- && strcmp (name, "main") == 0)
- m_main = result;
-
- return result;
-}
-
-/* See cooked-index.h. */
-
-void
-cooked_index_shard::handle_gnat_encoded_entry (cooked_index_entry *entry,
- htab_t gnat_entries)
-{
- /* We decode Ada names in a particular way: operators and wide
- characters are left as-is. This is done to make name matching a
- bit simpler; and for wide characters, it means the choice of Ada
- source charset does not affect the indexer directly. */
- std::string canonical = ada_decode (entry->name, false, false, false);
- if (canonical.empty ())
- {
- entry->canonical = entry->name;
- return;
- }
- std::vector<std::string_view> names = split_name (canonical.c_str (),
- split_style::DOT_STYLE);
- std::string_view tail = names.back ();
- names.pop_back ();
-
- const cooked_index_entry *parent = nullptr;
- for (const auto &name : names)
- {
- uint32_t hashval = dwarf5_djb_hash (name);
- void **slot = htab_find_slot_with_hash (gnat_entries, &name,
- hashval, INSERT);
- /* CUs are processed in order, so we only need to check the most
- recent entry. */
- cooked_index_entry *last = (cooked_index_entry *) *slot;
- if (last == nullptr || last->per_cu != entry->per_cu)
- {
- gdb::unique_xmalloc_ptr<char> new_name
- = make_unique_xstrndup (name.data (), name.length ());
- last = create (entry->die_offset, DW_TAG_namespace,
- 0, language_ada, new_name.get (), parent,
- entry->per_cu);
- last->canonical = last->name;
- m_names.push_back (std::move (new_name));
- *slot = last;
- }
-
- parent = last;
- }
-
- entry->set_parent (parent);
- auto new_canon = make_unique_xstrndup (tail.data (), tail.length ());
- entry->canonical = new_canon.get ();
- m_names.push_back (std::move (new_canon));
-}
-
-/* See cooked-index.h. */
-
-void
-cooked_index_shard::finalize (const parent_map_map *parent_maps)
-{
- auto hash_name_ptr = [] (const void *p)
- {
- const cooked_index_entry *entry = (const cooked_index_entry *) p;
- return htab_hash_pointer (entry->name);
- };
-
- auto eq_name_ptr = [] (const void *a, const void *b) -> int
- {
- const cooked_index_entry *ea = (const cooked_index_entry *) a;
- const cooked_index_entry *eb = (const cooked_index_entry *) b;
- return ea->name == eb->name;
- };
-
- /* We can use pointer equality here because names come from
- .debug_str, which will normally be unique-ified by the linker.
- Also, duplicates are relatively harmless -- they just mean a bit
- of extra memory is used. */
- htab_up seen_names (htab_create_alloc (10, hash_name_ptr, eq_name_ptr,
- nullptr, xcalloc, xfree));
-
- auto hash_entry = [] (const void *e)
- {
- const cooked_index_entry *entry = (const cooked_index_entry *) e;
- return dwarf5_djb_hash (entry->canonical);
- };
-
- auto eq_entry = [] (const void *a, const void *b) -> int
- {
- const cooked_index_entry *ae = (const cooked_index_entry *) a;
- const std::string_view *sv = (const std::string_view *) b;
- return (strlen (ae->canonical) == sv->length ()
- && strncasecmp (ae->canonical, sv->data (), sv->length ()) == 0);
- };
-
- htab_up gnat_entries (htab_create_alloc (10, hash_entry, eq_entry,
- nullptr, xcalloc, xfree));
-
- for (cooked_index_entry *entry : m_entries)
- {
- if ((entry->flags & IS_PARENT_DEFERRED) != 0)
- {
- const cooked_index_entry *new_parent
- = parent_maps->find (entry->get_deferred_parent ());
- entry->resolve_parent (new_parent);
- }
-
- /* Note that this code must be kept in sync with
- language_requires_canonicalization. */
- gdb_assert (entry->canonical == nullptr);
- if ((entry->flags & IS_LINKAGE) != 0)
- entry->canonical = entry->name;
- else if (entry->lang == language_ada)
- handle_gnat_encoded_entry (entry, gnat_entries.get ());
- else if (entry->lang == language_cplus || entry->lang == language_c)
- {
- void **slot = htab_find_slot (seen_names.get (), entry,
- INSERT);
- if (*slot == nullptr)
- {
- gdb::unique_xmalloc_ptr<char> canon_name
- = (entry->lang == language_cplus
- ? cp_canonicalize_string (entry->name)
- : c_canonicalize_name (entry->name));
- if (canon_name == nullptr)
- entry->canonical = entry->name;
- else
- {
- entry->canonical = canon_name.get ();
- m_names.push_back (std::move (canon_name));
- }
- *slot = entry;
- }
- else
- {
- const cooked_index_entry *other
- = (const cooked_index_entry *) *slot;
- entry->canonical = other->canonical;
- }
- }
- else
- entry->canonical = entry->name;
- }
-
- m_names.shrink_to_fit ();
- m_entries.shrink_to_fit ();
- std::sort (m_entries.begin (), m_entries.end (),
- [] (const cooked_index_entry *a, const cooked_index_entry *b)
- {
- return *a < *b;
- });
-}
-
-/* See cooked-index.h. */
-
-cooked_index_shard::range
-cooked_index_shard::find (const std::string &name, bool completing) const
-{
- cooked_index_entry::comparison_mode mode = (completing
- ? cooked_index_entry::COMPLETE
- : cooked_index_entry::MATCH);
-
- auto lower = std::lower_bound (m_entries.cbegin (), m_entries.cend (), name,
- [=] (const cooked_index_entry *entry,
- const std::string &n)
- {
- return cooked_index_entry::compare (entry->canonical, n.c_str (), mode) < 0;
- });
-
- auto upper = std::upper_bound (m_entries.cbegin (), m_entries.cend (), name,
- [=] (const std::string &n,
- const cooked_index_entry *entry)
- {
- return cooked_index_entry::compare (entry->canonical, n.c_str (), mode) > 0;
- });
-
- return range (lower, upper);
-}
-
-/* See cooked-index.h. */
-
-void
-cooked_index_worker::start ()
-{
- gdb::thread_pool::g_thread_pool->post_task ([this] ()
- {
- try
- {
- do_reading ();
- }
- catch (const gdb_exception &exc)
- {
- m_failed = exc;
- set (cooked_state::CACHE_DONE);
- }
-
- bfd_thread_cleanup ();
- });
-}
-
-/* See cooked-index.h. */
-
-bool
-cooked_index_worker::wait (cooked_state desired_state, bool allow_quit)
-{
- bool done;
-#if CXX_STD_THREAD
- {
- std::unique_lock<std::mutex> lock (m_mutex);
-
- /* This may be called from a non-main thread -- this functionality
- is needed for the index cache -- but in this case we require
- that the desired state already have been attained. */
- gdb_assert (is_main_thread () || desired_state <= m_state);
-
- while (desired_state > m_state)
- {
- if (allow_quit)
- {
- std::chrono::milliseconds duration { 15 };
- if (m_cond.wait_for (lock, duration) == std::cv_status::timeout)
- QUIT;
- }
- else
- m_cond.wait (lock);
- }
- done = m_state == cooked_state::CACHE_DONE;
- }
-#else
- /* Without threads, all the work is done immediately on the main
- thread, and there is never anything to wait for. */
- done = desired_state == cooked_state::CACHE_DONE;
-#endif /* CXX_STD_THREAD */
-
- /* Only the main thread is allowed to report complaints and the
- like. */
- if (!is_main_thread ())
- return false;
-
- if (m_reported)
- return done;
- m_reported = true;
-
- /* Emit warnings first, maybe they were emitted before an exception
- (if any) was thrown. */
- m_warnings.emit ();
-
- if (m_failed.has_value ())
- {
- /* do_reading failed -- report it. */
- exception_print (gdb_stderr, *m_failed);
- m_failed.reset ();
- return done;
- }
-
- /* Only show a given exception a single time. */
- std::unordered_set<gdb_exception> seen_exceptions;
- for (auto &one_result : m_results)
- {
- re_emit_complaints (std::get<1> (one_result));
- for (auto &one_exc : std::get<2> (one_result))
- if (seen_exceptions.insert (one_exc).second)
- exception_print (gdb_stderr, one_exc);
- }
-
- print_stats ();
-
- struct objfile *objfile = m_per_objfile->objfile;
- dwarf2_per_bfd *per_bfd = m_per_objfile->per_bfd;
- cooked_index *table
- = (gdb::checked_static_cast<cooked_index *>
- (per_bfd->index_table.get ()));
-
- auto_obstack temp_storage;
- enum language lang = language_unknown;
- const char *main_name = table->get_main_name (&temp_storage, &lang);
- if (main_name != nullptr)
- set_objfile_main_name (objfile, main_name, lang);
-
- /* dwarf_read_debug_printf ("Done building psymtabs of %s", */
- /* objfile_name (objfile)); */
-
- return done;
-}
-
-/* See cooked-index.h. */
-
-void
-cooked_index_worker::set (cooked_state desired_state)
-{
- gdb_assert (desired_state != cooked_state::INITIAL);
-
-#if CXX_STD_THREAD
- std::lock_guard<std::mutex> guard (m_mutex);
- gdb_assert (desired_state > m_state);
- m_state = desired_state;
- m_cond.notify_one ();
-#else
- /* Without threads, all the work is done immediately on the main
- thread, and there is never anything to do. */
-#endif /* CXX_STD_THREAD */
-}
-
-/* See cooked-index.h. */
-
-void
-cooked_index_worker::write_to_cache (const cooked_index *idx,
- deferred_warnings *warn) const
-{
- if (idx != nullptr)
- {
- /* Writing to the index cache may cause a warning to be emitted.
- See PR symtab/30837. This arranges to capture all such
- warnings. This is safe because we know the deferred_warnings
- object isn't in use by any other thread at this point. */
- scoped_restore_warning_hook defer (warn);
- m_cache_store.store ();
- }
-}
-
-cooked_index::cooked_index (dwarf2_per_objfile *per_objfile,
- std::unique_ptr<cooked_index_worker> &&worker)
- : m_state (std::move (worker)),
- m_per_bfd (per_objfile->per_bfd)
+cooked_index::cooked_index (cooked_index_worker_up &&worker)
+ : m_state (std::move (worker))
{
/* ACTIVE_VECTORS is not locked, and this assert ensures that this
will be caught if ever moved to the background. */
@@ -647,11 +79,10 @@ cooked_index::wait (cooked_state desired_state, bool allow_quit)
}
void
-cooked_index::set_contents (vec_type &&vec, deferred_warnings *warn,
- const parent_map_map *parent_maps)
+cooked_index::set_contents ()
{
- gdb_assert (m_vector.empty ());
- m_vector = std::move (vec);
+ gdb_assert (m_shards.empty ());
+ m_shards = m_state->release_shards ();
m_state->set (cooked_state::MAIN_AVAILABLE);
@@ -660,17 +91,23 @@ cooked_index::set_contents (vec_type &&vec, deferred_warnings *warn,
finalization. However, that would take a slot in the global
thread pool, and if enough such tasks were submitted at once, it
would cause a livelock. */
- gdb::task_group finalizers ([this, warn] ()
+ gdb::task_group finalizers ([this] ()
{
m_state->set (cooked_state::FINALIZED);
- m_state->write_to_cache (index_for_writing (), warn);
+ m_state->write_to_cache (index_for_writing ());
m_state->set (cooked_state::CACHE_DONE);
});
- for (auto &idx : m_vector)
+ for (auto &shard : m_shards)
{
- auto this_index = idx.get ();
- finalizers.add_task ([=] () { this_index->finalize (parent_maps); });
+ auto this_shard = shard.get ();
+ const parent_map_map *parent_maps = m_state->get_parent_map_map ();
+ finalizers.add_task ([=] ()
+ {
+ scoped_time_it time_it ("DWARF finalize worker",
+ m_state->m_per_command_time);
+ this_shard->finalize (parent_maps);
+ });
}
finalizers.start ();
@@ -691,14 +128,14 @@ cooked_index::~cooked_index ()
/* See cooked-index.h. */
-dwarf2_per_cu_data *
+dwarf2_per_cu *
cooked_index::lookup (unrelocated_addr addr)
{
/* Ensure that the address maps are ready. */
wait (cooked_state::MAIN_AVAILABLE, true);
- for (const auto &index : m_vector)
+ for (const auto &shard : m_shards)
{
- dwarf2_per_cu_data *result = index->lookup (addr);
+ dwarf2_per_cu *result = shard->lookup (addr);
if (result != nullptr)
return result;
}
@@ -713,8 +150,8 @@ cooked_index::get_addrmaps ()
/* Ensure that the address maps are ready. */
wait (cooked_state::MAIN_AVAILABLE, true);
std::vector<const addrmap *> result;
- for (const auto &index : m_vector)
- result.push_back (index->m_addrmap);
+ for (const auto &shard : m_shards)
+ result.push_back (shard->m_addrmap);
return result;
}
@@ -725,9 +162,9 @@ cooked_index::find (const std::string &name, bool completing)
{
wait (cooked_state::FINALIZED, true);
std::vector<cooked_index_shard::range> result_range;
- result_range.reserve (m_vector.size ());
- for (auto &entry : m_vector)
- result_range.push_back (entry->find (name, completing));
+ result_range.reserve (m_shards.size ());
+ for (auto &shard : m_shards)
+ result_range.push_back (shard->find (name, completing));
return range (std::move (result_range));
}
@@ -742,7 +179,7 @@ cooked_index::get_main_name (struct obstack *obstack, enum language *lang)
return nullptr;
*lang = entry->lang;
- return entry->full_name (obstack, true);
+ return entry->full_name (obstack, FOR_MAIN);
}
/* See cooked_index.h. */
@@ -751,9 +188,9 @@ const cooked_index_entry *
cooked_index::get_main () const
{
const cooked_index_entry *best_entry = nullptr;
- for (const auto &index : m_vector)
+ for (const auto &shard : m_shards)
{
- const cooked_index_entry *entry = index->get_main ();
+ const cooked_index_entry *entry = shard->get_main ();
/* Choose the first "main" we see. We only do this for names
not requiring canonicalization. At this point in the process
names might not have been canonicalized. However, currently,
@@ -810,7 +247,7 @@ cooked_index::dump (gdbarch *arch)
gdb_printf (" name: %s\n", entry->name);
gdb_printf (" canonical: %s\n", entry->canonical);
gdb_printf (" qualified: %s\n",
- entry->full_name (&temp_storage, false, "::"));
+ entry->full_name (&temp_storage, 0, "::"));
gdb_printf (" DWARF tag: %s\n", dwarf_tag_name (entry->tag));
gdb_printf (" flags: %s\n", to_string (entry->flags).c_str ());
gdb_printf (" DIE offset: %s\n", sect_offset_str (entry->die_offset));
@@ -841,12 +278,15 @@ cooked_index::dump (gdbarch *arch)
std::vector<const addrmap *> addrmaps = this->get_addrmaps ();
for (i = 0; i < addrmaps.size (); ++i)
{
- const addrmap &addrmap = *addrmaps[i];
+ const addrmap *addrmap = addrmaps[i];
- gdb_printf (" [%zu] ((addrmap *) %p)\n", i, &addrmap);
+ gdb_printf (" [%zu] ((addrmap *) %p)\n", i, addrmap);
gdb_printf ("\n");
- addrmap.foreach ([arch] (CORE_ADDR start_addr, const void *obj)
+ if (addrmap == nullptr)
+ continue;
+
+ addrmap->foreach ([arch] (CORE_ADDR start_addr, const void *obj)
{
QUIT;
@@ -854,14 +294,13 @@ cooked_index::dump (gdbarch *arch)
if (obj != nullptr)
{
- const dwarf2_per_cu_data *per_cu
- = static_cast<const dwarf2_per_cu_data *> (obj);
- gdb_printf (" [%s] ((dwarf2_per_cu_data *) %p)\n",
+ const dwarf2_per_cu *per_cu
+ = static_cast<const dwarf2_per_cu *> (obj);
+ gdb_printf (" [%s] ((dwarf2_per_cu *) %p)\n",
start_addr_str, per_cu);
}
else
- gdb_printf (" [%s] ((dwarf2_per_cu_data *) 0)\n",
- start_addr_str);
+ gdb_printf (" [%s] ((dwarf2_per_cu *) 0)\n", start_addr_str);
return 0;
});
@@ -892,10 +331,6 @@ void _initialize_cooked_index ();
void
_initialize_cooked_index ()
{
-#if GDB_SELF_TEST
- selftests::register_test ("cooked_index_entry::compare", test_compare);
-#endif
-
add_cmd ("wait-for-index-cache", class_maintenance,
maintenance_wait_for_index_cache, _("\
Wait until all pending writes to the index cache have completed.\n\
diff --git a/gdb/dwarf2/cooked-index.h b/gdb/dwarf2/cooked-index.h
index d1d81f8..43b2723 100644
--- a/gdb/dwarf2/cooked-index.h
+++ b/gdb/dwarf2/cooked-index.h
@@ -1,6 +1,6 @@
/* DIE indexing
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -20,550 +20,16 @@
#ifndef GDB_DWARF2_COOKED_INDEX_H
#define GDB_DWARF2_COOKED_INDEX_H
-#include "dwarf2.h"
-#include "dwarf2/types.h"
+#include "dwarf2/cooked-index-entry.h"
#include "symtab.h"
-#include "hashtab.h"
#include "quick-symbol.h"
-#include "gdbsupport/gdb_obstack.h"
#include "addrmap.h"
-#include "gdbsupport/iterator-range.h"
#include "dwarf2/mapped-index.h"
#include "dwarf2/read.h"
-#include "dwarf2/abbrev-table-cache.h"
#include "dwarf2/parent-map.h"
#include "gdbsupport/range-chain.h"
-#include "complaints.h"
-
-#if CXX_STD_THREAD
-#include <mutex>
-#include <condition_variable>
-#endif /* CXX_STD_THREAD */
-
-struct dwarf2_per_cu_data;
-struct dwarf2_per_bfd;
-struct index_cache_store_context;
-struct cooked_index_entry;
-
-/* Flags that describe an entry in the index. */
-enum cooked_index_flag_enum : unsigned char
-{
- /* True if this entry is the program's "main". */
- IS_MAIN = 1,
- /* True if this entry represents a "static" object. */
- IS_STATIC = 2,
- /* True if this entry uses the linkage name. */
- IS_LINKAGE = 4,
- /* True if this entry is just for the declaration of a type, not the
- definition. */
- IS_TYPE_DECLARATION = 8,
- /* True is parent_entry.deferred has a value rather than parent_entry
- .resolved. */
- IS_PARENT_DEFERRED = 16,
-};
-DEF_ENUM_FLAGS_TYPE (enum cooked_index_flag_enum, cooked_index_flag);
-
-/* Type representing either a resolved or deferred cooked_index_entry. */
-
-union cooked_index_entry_ref
-{
- cooked_index_entry_ref (parent_map::addr_type deferred_)
- {
- deferred = deferred_;
- }
-
- cooked_index_entry_ref (const cooked_index_entry *resolved_)
- {
- resolved = resolved_;
- }
-
- const cooked_index_entry *resolved;
- parent_map::addr_type deferred;
-};
-
-/* Return a string representation of FLAGS. */
-
-std::string to_string (cooked_index_flag flags);
-
-/* Return true if LANG requires canonicalization. This is used
- primarily to work around an issue computing the name of "main".
- This function must be kept in sync with
- cooked_index_shard::finalize. */
-
-extern bool language_requires_canonicalization (enum language lang);
-
-/* A cooked_index_entry represents a single item in the index. Note
- that two entries can be created for the same DIE -- one using the
- name, and another one using the linkage name, if any.
-
- This is an "open" class and the members are all directly
- accessible. It is read-only after the index has been fully read
- and processed. */
-struct cooked_index_entry : public allocate_on_obstack<cooked_index_entry>
-{
- cooked_index_entry (sect_offset die_offset_, enum dwarf_tag tag_,
- cooked_index_flag flags_,
- enum language lang_, const char *name_,
- cooked_index_entry_ref parent_entry_,
- dwarf2_per_cu_data *per_cu_)
- : name (name_),
- tag (tag_),
- flags (flags_),
- lang (lang_),
- die_offset (die_offset_),
- per_cu (per_cu_),
- m_parent_entry (parent_entry_)
- {
- }
-
- /* Return true if this entry matches SEARCH_FLAGS. */
- bool matches (block_search_flags search_flags) const
- {
- /* Just reject type declarations. */
- if ((flags & IS_TYPE_DECLARATION) != 0)
- return false;
-
- if ((search_flags & SEARCH_STATIC_BLOCK) != 0
- && (flags & IS_STATIC) != 0)
- return true;
- if ((search_flags & SEARCH_GLOBAL_BLOCK) != 0
- && (flags & IS_STATIC) == 0)
- return true;
- return false;
- }
-
- /* Return true if this entry matches KIND. */
- bool matches (domain_search_flags kind) const;
-
- /* Construct the fully-qualified name of this entry and return a
- pointer to it. If allocation is needed, it will be done on
- STORAGE. FOR_MAIN is true if we are computing the name of the
- "main" entry -- one marked DW_AT_main_subprogram. This matters
- for avoiding name canonicalization and also a related race (if
- "main" computation is done during finalization). If the language
- doesn't prescribe a separator, one can be specified using
- DEFAULT_SEP. */
- const char *full_name (struct obstack *storage, bool for_main = false,
- const char *default_sep = nullptr) const;
-
- /* Comparison modes for the 'compare' function. See the function
- for a description. */
- enum comparison_mode
- {
- MATCH,
- SORT,
- COMPLETE,
- };
-
- /* Compare two strings, case-insensitively. Return -1 if STRA is
- less than STRB, 0 if they are equal, and 1 if STRA is greater.
-
- When comparing, '<' is considered to be less than all other
- printable characters. This ensures that "t<x>" sorts before
- "t1", which is necessary when looking up "t". This '<' handling
- is to ensure that certain C++ lookups work correctly. It is
- inexact, and applied regardless of the search language, but this
- is ok because callers of this code do more precise filtering
- according to their needs. This is also why using a
- case-insensitive comparison works even for languages that are
- case sensitive.
-
- MODE controls how the comparison proceeds.
-
- MODE==SORT is used when sorting and the only special '<' handling
- that it does is to ensure that '<' sorts before all other
- printable characters. This ensures that the resulting ordering
- will be binary-searchable.
-
- MODE==MATCH is used when searching for a symbol. In this case,
- STRB must always be the search name, and STRA must be the name in
- the index that is under consideration. In compare mode, early
- termination of STRB may match STRA -- for example, "t<int>" and
- "t" will be considered to be equal. (However, if A=="t" and
- B=="t<int>", then this will not consider them as equal.)
-
- MODE==COMPLETE is used when searching for a symbol for
- completion. In this case, STRB must always be the search name,
- and STRA must be the name in the index that is under
- consideration. In completion mode, early termination of STRB
- always results in a match. */
- static int compare (const char *stra, const char *strb,
- comparison_mode mode);
-
- /* Compare two entries by canonical name. */
- bool operator< (const cooked_index_entry &other) const
- {
- return compare (canonical, other.canonical, SORT) < 0;
- }
-
- /* Set parent entry to PARENT. */
- void set_parent (const cooked_index_entry *parent)
- {
- gdb_assert ((flags & IS_PARENT_DEFERRED) == 0);
- m_parent_entry.resolved = parent;
- }
-
- /* Resolve deferred parent entry to PARENT. */
- void resolve_parent (const cooked_index_entry *parent)
- {
- gdb_assert ((flags & IS_PARENT_DEFERRED) != 0);
- flags = flags & ~IS_PARENT_DEFERRED;
- m_parent_entry.resolved = parent;
- }
-
- /* Return parent entry. */
- const cooked_index_entry *get_parent () const
- {
- gdb_assert ((flags & IS_PARENT_DEFERRED) == 0);
- return m_parent_entry.resolved;
- }
-
- /* Return deferred parent entry. */
- parent_map::addr_type get_deferred_parent () const
- {
- gdb_assert ((flags & IS_PARENT_DEFERRED) != 0);
- return m_parent_entry.deferred;
- }
-
- /* The name as it appears in DWARF. This always points into one of
- the mapped DWARF sections. Note that this may be the name or the
- linkage name -- two entries are created for DIEs which have both
- attributes. */
- const char *name;
- /* The canonical name. This may be equal to NAME. */
- const char *canonical = nullptr;
- /* The DWARF tag. */
- enum dwarf_tag tag;
- /* Any flags attached to this entry. */
- cooked_index_flag flags;
- /* The language of this symbol. */
- ENUM_BITFIELD (language) lang : LANGUAGE_BITS;
- /* The offset of this DIE. */
- sect_offset die_offset;
- /* The CU from which this entry originates. */
- dwarf2_per_cu_data *per_cu;
-
-private:
-
- /* A helper method for full_name. Emits the full scope of this
- object, followed by the separator, to STORAGE. If this entry has
- a parent, its write_scope method is called first. FOR_MAIN is
- true when computing the name of 'main'; see full_name. */
- void write_scope (struct obstack *storage, const char *sep,
- bool for_main) const;
-
- /* The parent entry. This is NULL for top-level entries.
- Otherwise, it points to the parent entry, such as a namespace or
- class. */
- cooked_index_entry_ref m_parent_entry;
-};
-
-class cooked_index;
-
-/* An index of interesting DIEs. This is "cooked", in contrast to a
- mapped .debug_names or .gdb_index, which are "raw". An entry in
- the index is of type cooked_index_entry.
-
- Operations on the index are described below. They are chosen to
- make it relatively simple to implement the symtab "quick"
- methods. */
-class cooked_index_shard
-{
-public:
- cooked_index_shard () = default;
- DISABLE_COPY_AND_ASSIGN (cooked_index_shard);
-
- /* Create a new cooked_index_entry and register it with this object.
- Entries are owned by this object. The new item is returned. */
- cooked_index_entry *add (sect_offset die_offset, enum dwarf_tag tag,
- cooked_index_flag flags, enum language lang,
- const char *name,
- cooked_index_entry_ref parent_entry,
- dwarf2_per_cu_data *per_cu);
-
- /* Install a new fixed addrmap from the given mutable addrmap. */
- void install_addrmap (addrmap_mutable *map)
- {
- gdb_assert (m_addrmap == nullptr);
- m_addrmap = new (&m_storage) addrmap_fixed (&m_storage, map);
- }
-
- friend class cooked_index;
-
- /* A simple range over part of m_entries. */
- typedef iterator_range<std::vector<cooked_index_entry *>::const_iterator>
- range;
-
- /* Return a range of all the entries. */
- range all_entries () const
- {
- return { m_entries.cbegin (), m_entries.cend () };
- }
-
- /* Look up an entry by name. Returns a range of all matching
- results. If COMPLETING is true, then a larger range, suitable
- for completion, will be returned. */
- range find (const std::string &name, bool completing) const;
-
-private:
-
- /* Return the entry that is believed to represent the program's
- "main". This will return NULL if no such entry is available. */
- const cooked_index_entry *get_main () const
- {
- return m_main;
- }
-
- /* Look up ADDR in the address map, and return either the
- corresponding CU, or nullptr if the address could not be
- found. */
- dwarf2_per_cu_data *lookup (unrelocated_addr addr)
- {
- return (static_cast<dwarf2_per_cu_data *>
- (m_addrmap->find ((CORE_ADDR) addr)));
- }
-
- /* Create a new cooked_index_entry and register it with this object.
- Entries are owned by this object. The new item is returned. */
- cooked_index_entry *create (sect_offset die_offset,
- enum dwarf_tag tag,
- cooked_index_flag flags,
- enum language lang,
- const char *name,
- cooked_index_entry_ref parent_entry,
- dwarf2_per_cu_data *per_cu)
- {
- return new (&m_storage) cooked_index_entry (die_offset, tag, flags,
- lang, name, parent_entry,
- per_cu);
- }
-
- /* GNAT only emits mangled ("encoded") names in the DWARF, and does
- not emit the module structure. However, we need this structure
- to do lookups. This function recreates that structure for an
- existing entry, modifying ENTRY as appropriate. */
- void handle_gnat_encoded_entry
- (cooked_index_entry *entry, htab_t gnat_entries);
-
- /* Finalize the index. This should be called a single time, when
- the index has been fully populated. It enters all the entries
- into the internal table and fixes up all missing parent links.
- This may be invoked in a worker thread. */
- void finalize (const parent_map_map *parent_maps);
-
- /* Storage for the entries. */
- auto_obstack m_storage;
- /* List of all entries. */
- std::vector<cooked_index_entry *> m_entries;
- /* If we found an entry with 'is_main' set, store it here. */
- cooked_index_entry *m_main = nullptr;
- /* The addrmap. This maps address ranges to dwarf2_per_cu_data
- objects. */
- addrmap_fixed *m_addrmap = nullptr;
- /* Storage for canonical names. */
- std::vector<gdb::unique_xmalloc_ptr<char>> m_names;
-};
-
-class cutu_reader;
-
-/* An instance of this is created when scanning DWARF to create a
- cooked index. */
-
-class cooked_index_storage
-{
-public:
-
- cooked_index_storage ();
- DISABLE_COPY_AND_ASSIGN (cooked_index_storage);
-
- /* Return the current abbrev table_cache. */
- const abbrev_table_cache &get_abbrev_table_cache () const
- { return m_abbrev_table_cache; }
-
- /* Return the DIE reader corresponding to PER_CU. If no such reader
- has been registered, return NULL. */
- cutu_reader *get_reader (dwarf2_per_cu_data *per_cu);
-
- /* Preserve READER by storing it in the local hash table. */
- cutu_reader *preserve (std::unique_ptr<cutu_reader> reader);
-
- /* Add an entry to the index. The arguments describe the entry; see
- cooked-index.h. The new entry is returned. */
- cooked_index_entry *add (sect_offset die_offset, enum dwarf_tag tag,
- cooked_index_flag flags,
- const char *name,
- cooked_index_entry_ref parent_entry,
- dwarf2_per_cu_data *per_cu)
- {
- return m_index->add (die_offset, tag, flags, per_cu->lang (),
- name, parent_entry, per_cu);
- }
-
- /* Install the current addrmap into the shard being constructed,
- then transfer ownership of the index to the caller. */
- std::unique_ptr<cooked_index_shard> release ()
- {
- m_index->install_addrmap (&m_addrmap);
- return std::move (m_index);
- }
-
- /* Return the mutable addrmap that is currently being created. */
- addrmap_mutable *get_addrmap ()
- {
- return &m_addrmap;
- }
-
- /* Return the parent_map that is currently being created. */
- parent_map *get_parent_map ()
- {
- return &m_parent_map;
- }
-
- /* Return the parent_map that is currently being created. Ownership
- is passed to the caller. */
- parent_map release_parent_map ()
- {
- return std::move (m_parent_map);
- }
-
-private:
-
- /* Hash function for a cutu_reader. */
- static hashval_t hash_cutu_reader (const void *a);
-
- /* Equality function for cutu_reader. */
- static int eq_cutu_reader (const void *a, const void *b);
-
- /* The abbrev table cache used by this indexer. */
- abbrev_table_cache m_abbrev_table_cache;
-
- /* A hash table of cutu_reader objects. */
- htab_up m_reader_hash;
- /* The index shard that is being constructed. */
- std::unique_ptr<cooked_index_shard> m_index;
-
- /* Parent map for each CU that is read. */
- parent_map m_parent_map;
-
- /* A writeable addrmap being constructed by this scanner. */
- addrmap_mutable m_addrmap;
-};
-
-/* The possible states of the index. See the explanatory comment
- before cooked_index for more details. */
-enum class cooked_state
-{
- /* The default state. This is not a valid argument to 'wait'. */
- INITIAL,
- /* The initial scan has completed. The name of "main" is now
- available (if known). The addrmaps are usable now.
- Finalization has started but is not complete. */
- MAIN_AVAILABLE,
- /* Finalization has completed. This means the index is fully
- available for queries. */
- FINALIZED,
- /* Writing to the index cache has finished. */
- CACHE_DONE,
-};
-
-/* An object of this type controls the scanning of the DWARF. It
- schedules the worker tasks and tracks the current state. Once
- scanning is done, this object is discarded.
-
- This is an abstract base class that defines the basic behavior of
- scanners. Separate concrete implementations exist for scanning
- .debug_names and .debug_info. */
-
-class cooked_index_worker
-{
-public:
-
- explicit cooked_index_worker (dwarf2_per_objfile *per_objfile)
- : m_per_objfile (per_objfile),
- m_cache_store (global_index_cache, per_objfile->per_bfd)
- { }
- virtual ~cooked_index_worker ()
- { }
- DISABLE_COPY_AND_ASSIGN (cooked_index_worker);
-
- /* Start reading. */
- void start ();
-
- /* Wait for a particular state to be achieved. If ALLOW_QUIT is
- true, then the loop will check the QUIT flag. Normally this
- method may only be called from the main thread; however, it can
- be called from a worker thread provided that the desired state
- has already been attained. (This oddity is used by the index
- cache writer.) */
- bool wait (cooked_state desired_state, bool allow_quit);
-
-protected:
-
- /* Let cooked_index call the 'set' and 'write_to_cache' methods. */
- friend class cooked_index;
-
- /* Set the current state. */
- void set (cooked_state desired_state);
-
- /* Write to the index cache. */
- void write_to_cache (const cooked_index *idx,
- deferred_warnings *warn) const;
-
- /* Helper function that does the work of reading. This must be able
- to be run in a worker thread without problems. */
- virtual void do_reading () = 0;
-
- /* A callback that can print stats, if needed. This is called when
- transitioning to the 'MAIN_AVAILABLE' state. */
- virtual void print_stats ()
- { }
-
- /* Each thread returns a tuple holding a cooked index, any collected
- complaints, a vector of errors that should be printed, and a
- vector of parent maps.
-
- The errors are retained because GDB's I/O system is not
- thread-safe. run_on_main_thread could be used, but that would
- mean the messages are printed after the prompt, which looks
- weird. */
- using result_type = std::tuple<std::unique_ptr<cooked_index_shard>,
- complaint_collection,
- std::vector<gdb_exception>,
- parent_map>;
-
- /* The per-objfile object. */
- dwarf2_per_objfile *m_per_objfile;
- /* Result of each worker task. */
- std::vector<result_type> m_results;
- /* Any warnings emitted. This is not in 'result_type' because (for
- the time being at least), it's only needed in do_reading, not in
- every worker. Note that deferred_warnings uses gdb_stderr in its
- constructor, and this should only be done from the main thread.
- This is enforced in the cooked_index_worker constructor. */
- deferred_warnings m_warnings;
-
- /* A map of all parent maps. Used during finalization to fix up
- parent relationships. */
- parent_map_map m_all_parents_map;
-
-#if CXX_STD_THREAD
- /* Current state of this object. */
- cooked_state m_state = cooked_state::INITIAL;
- /* Mutex and condition variable used to synchronize. */
- std::mutex m_mutex;
- std::condition_variable m_cond;
-#endif /* CXX_STD_THREAD */
- /* This flag indicates whether any complaints or exceptions that
- arose during scanning have been reported by 'wait'. This may
- only be modified on the main thread. */
- bool m_reported = false;
- /* If set, an exception occurred during reading; in this case the
- scanning is stopped and this exception will later be reported by
- the 'wait' method. */
- std::optional<gdb_exception> m_failed;
- /* An object used to write to the index cache. */
- index_cache_store_context m_cache_store;
-};
+#include "dwarf2/cooked-index-shard.h"
+#include "dwarf2/cooked-index-worker.h"
/* The main index of DIEs.
@@ -575,6 +41,14 @@ protected:
possible. This combination should help hide the effort from the
user to the maximum possible degree.
+ There are a number of different objects involved in this process.
+ Most of them are temporary -- they are created to handle different
+ phases of scanning, then discarded when possible. The "steady
+ state" objects are index itself (cooked_index, below), which holds
+ the entries (cooked_index_entry), and the implementation of the
+ "quick" API (e.g., cooked_index_functions, though there are
+ other variants).
+
. Main Thread | Worker Threads
============================================================
. dwarf2_initialize_objfile
@@ -606,6 +80,7 @@ protected:
. v
. maybe write to index cache
. state = CACHE_DONE
+ . ~cooked_index_worker
.
.
. if main thread calls...
@@ -621,28 +96,17 @@ protected:
class cooked_index : public dwarf_scanner_base
{
public:
-
- /* A convenience typedef for the vector that is contained in this
- object. */
- using vec_type = std::vector<std::unique_ptr<cooked_index_shard>>;
-
- cooked_index (dwarf2_per_objfile *per_objfile,
- std::unique_ptr<cooked_index_worker> &&worker);
+ cooked_index (cooked_index_worker_up &&worker);
~cooked_index () override;
DISABLE_COPY_AND_ASSIGN (cooked_index);
/* Start reading the DWARF. */
- void start_reading ();
+ void start_reading () override;
/* Called by cooked_index_worker to set the contents of this index
- and transition to the MAIN_AVAILABLE state. WARN is used to
- collect any warnings that may arise when writing to the cache.
- PARENT_MAPS is used when resolving pending parent links.
- PARENT_MAPS may be NULL if there are no IS_PARENT_DEFERRED
- entries in VEC. */
- void set_contents (vec_type &&vec, deferred_warnings *warn,
- const parent_map_map *parent_maps);
+ and transition to the MAIN_AVAILABLE state. */
+ void set_contents ();
/* A range over a vector of subranges. */
using range = range_chain<cooked_index_shard::range>;
@@ -657,19 +121,21 @@ public:
{
wait (cooked_state::FINALIZED, true);
std::vector<cooked_index_shard::range> result_range;
- result_range.reserve (m_vector.size ());
- for (auto &entry : m_vector)
- result_range.push_back (entry->all_entries ());
+ result_range.reserve (m_shards.size ());
+ for (auto &shard : m_shards)
+ result_range.push_back (shard->all_entries ());
return range (std::move (result_range));
}
/* Look up ADDR in the address map, and return either the
corresponding CU, or nullptr if the address could not be
found. */
- dwarf2_per_cu_data *lookup (unrelocated_addr addr) override;
+ dwarf2_per_cu *lookup (unrelocated_addr addr) override;
/* Return a new vector of all the addrmaps used by all the indexes
- held by this object. */
+ held by this object.
+
+ Elements of the vector may be nullptr. */
std::vector<const addrmap *> get_addrmaps ();
/* Return the entry that is believed to represent the program's
@@ -707,14 +173,12 @@ private:
/* The vector of cooked_index objects. This is stored because the
entries are stored on the obstacks in those objects. */
- vec_type m_vector;
+ std::vector<cooked_index_shard_up> m_shards;
/* This tracks the current state. When this is nullptr, it means
that the state is CACHE_DONE -- it's important to note that only
the main thread may change the value of this pointer. */
- std::unique_ptr<cooked_index_worker> m_state;
-
- dwarf2_per_bfd *m_per_bfd;
+ cooked_index_worker_up m_state;
};
/* An implementation of quick_symbol_functions for the cooked DWARF
@@ -775,14 +239,13 @@ struct cooked_index_functions : public dwarf2_base_index_functions
bool expand_symtabs_matching
(struct objfile *objfile,
- gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
+ expand_symtabs_file_matcher file_matcher,
const lookup_name_info *lookup_name,
- gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
- gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
+ expand_symtabs_symbol_matcher symbol_matcher,
+ expand_symtabs_expansion_listener expansion_notify,
block_search_flags search_flags,
domain_search_flags domain,
- gdb::function_view<expand_symtabs_lang_matcher_ftype> lang_matcher)
- override;
+ expand_symtabs_lang_matcher lang_matcher) override;
struct compunit_symtab *find_pc_sect_compunit_symtab
(struct objfile *objfile, bound_minimal_symbol msymbol,
@@ -793,10 +256,8 @@ struct cooked_index_functions : public dwarf2_base_index_functions
(objfile, msymbol, pc, section, warn_if_readin));
}
- void map_symbol_filenames
- (struct objfile *objfile,
- gdb::function_view<symbol_filename_ftype> fun,
- bool need_fullname) override
+ void map_symbol_filenames (objfile *objfile, symbol_filename_listener fun,
+ bool need_fullname) override
{
wait (objfile, true);
return (dwarf2_base_index_functions::map_symbol_filenames
diff --git a/gdb/dwarf2/cooked-indexer.c b/gdb/dwarf2/cooked-indexer.c
new file mode 100644
index 0000000..c093984
--- /dev/null
+++ b/gdb/dwarf2/cooked-indexer.c
@@ -0,0 +1,694 @@
+/* DWARF indexer
+
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include "dwarf2/cooked-indexer.h"
+#include "dwarf2/cooked-index-worker.h"
+#include "dwarf2/error.h"
+
+/* See cooked-indexer.h. */
+
+cooked_indexer::cooked_indexer (cooked_index_worker_result *storage,
+ dwarf2_per_cu *per_cu, enum language language)
+ : m_index_storage (storage),
+ m_per_cu (per_cu),
+ m_language (language),
+ m_die_range_map (storage->get_parent_map ())
+{
+}
+
+/* See cooked-indexer.h. */
+
+void
+cooked_indexer::check_bounds (cutu_reader *reader)
+{
+ dwarf2_cu *cu = reader->cu ();
+
+ if (cu->per_cu->addresses_seen)
+ return;
+
+ unrelocated_addr best_lowpc = {}, best_highpc = {};
+ /* Possibly set the default values of LOWPC and HIGHPC from
+ `DW_AT_ranges'. */
+ dwarf2_find_base_address (reader->top_level_die (), cu);
+ enum pc_bounds_kind cu_bounds_kind
+ = dwarf2_get_pc_bounds (reader->top_level_die (), &best_lowpc, &best_highpc,
+ cu, m_index_storage->get_addrmap (), cu->per_cu);
+ if (cu_bounds_kind == PC_BOUNDS_HIGH_LOW && best_lowpc < best_highpc)
+ {
+ /* Store the contiguous range if it is not empty; it can be
+ empty for CUs with no code. addrmap requires CORE_ADDR, so
+ we cast here. */
+ m_index_storage->get_addrmap ()->set_empty ((CORE_ADDR) best_lowpc,
+ (CORE_ADDR) best_highpc - 1,
+ cu->per_cu);
+
+ cu->per_cu->addresses_seen = true;
+ }
+}
+
+/* Helper function that returns true if TAG can have a linkage
+ name. */
+
+static bool
+tag_can_have_linkage_name (enum dwarf_tag tag)
+{
+ switch (tag)
+ {
+ case DW_TAG_variable:
+ case DW_TAG_subprogram:
+ return true;
+
+ default:
+ return false;
+ }
+}
+
+/* See cooked-indexer.h. */
+
+cutu_reader *
+cooked_indexer::ensure_cu_exists (cutu_reader *reader,
+ sect_offset sect_off, bool is_dwz,
+ bool for_scanning)
+{
+ /* Lookups for type unit references are always in the CU, and
+ cross-CU references will crash. */
+ if (reader->cu ()->per_cu->is_dwz == is_dwz
+ && reader->cu ()->header.offset_in_unit_p (sect_off))
+ return reader;
+
+ dwarf2_per_objfile *per_objfile = reader->cu ()->per_objfile;
+ dwarf2_per_cu *per_cu
+ = dwarf2_find_containing_comp_unit (sect_off, is_dwz,
+ per_objfile->per_bfd);
+
+ /* When scanning, we only want to visit a given CU a single time.
+ Doing this check here avoids self-imports as well. */
+ if (for_scanning)
+ {
+ bool nope = false;
+ if (!per_cu->scanned.compare_exchange_strong (nope, true))
+ return nullptr;
+ }
+
+ cutu_reader *result = m_index_storage->get_reader (per_cu);
+ if (result == nullptr)
+ {
+ const abbrev_table_cache &abbrev_table_cache
+ = m_index_storage->get_abbrev_table_cache ();
+ auto new_reader
+ = std::make_unique<cutu_reader> (*per_cu, *per_objfile, nullptr,
+ nullptr, false, language_minimal,
+ &abbrev_table_cache);
+
+ if (new_reader->is_dummy ())
+ return nullptr;
+
+ result = m_index_storage->preserve (std::move (new_reader));
+ }
+
+ if (result->is_dummy ())
+ return nullptr;
+
+ if (for_scanning)
+ check_bounds (result);
+
+ return result;
+}
+
+/* See cooked-indexer.h. */
+
+const gdb_byte *
+cooked_indexer::scan_attributes (dwarf2_per_cu *scanning_per_cu,
+ cutu_reader *reader,
+ const gdb_byte *watermark_ptr,
+ const gdb_byte *info_ptr,
+ const abbrev_info *abbrev,
+ const char **name,
+ const char **linkage_name,
+ cooked_index_flag *flags,
+ sect_offset *sibling_offset,
+ const cooked_index_entry **parent_entry,
+ parent_map::addr_type *maybe_defer,
+ bool *is_enum_class,
+ bool for_specification)
+{
+ bool origin_is_dwz = false;
+ bool is_declaration = false;
+ sect_offset origin_offset {};
+
+ std::optional<unrelocated_addr> low_pc;
+ std::optional<unrelocated_addr> high_pc;
+ bool high_pc_relative = false;
+
+ for (int i = 0; i < abbrev->num_attrs; ++i)
+ {
+ attribute attr;
+ info_ptr = reader->read_attribute (&attr, &abbrev->attrs[i], info_ptr);
+
+ /* Store the data if it is of an attribute we want to keep in a
+ partial symbol table. */
+ switch (attr.name)
+ {
+ case DW_AT_name:
+ switch (abbrev->tag)
+ {
+ case DW_TAG_compile_unit:
+ case DW_TAG_partial_unit:
+ case DW_TAG_type_unit:
+ /* Compilation units have a DW_AT_name that is a filename, not
+ a source language identifier. */
+ break;
+
+ default:
+ if (*name == nullptr)
+ *name = attr.as_string ();
+ break;
+ }
+ break;
+
+ case DW_AT_linkage_name:
+ case DW_AT_MIPS_linkage_name:
+ /* Note that both forms of linkage name might appear. We
+ assume they will be the same, and we only store the last
+ one we see. */
+ if (*linkage_name == nullptr)
+ *linkage_name = attr.as_string ();
+ break;
+
+ /* DWARF 4 has defined a dedicated DW_AT_main_subprogram
+ attribute to indicate the starting function of the program... */
+ case DW_AT_main_subprogram:
+ if (attr.as_boolean ())
+ *flags |= IS_MAIN;
+ break;
+
+ /* ... however with older versions the DW_CC_program value of
+ the DW_AT_calling_convention attribute was used instead as
+ the only means available. We handle both variants then. */
+ case DW_AT_calling_convention:
+ {
+ std::optional<ULONGEST> value = attr.unsigned_constant ();
+ if (value.has_value () && *value == DW_CC_program)
+ *flags |= IS_MAIN;
+ }
+ break;
+
+ case DW_AT_declaration:
+ is_declaration = attr.as_boolean ();
+ break;
+
+ case DW_AT_sibling:
+ if (sibling_offset != nullptr)
+ *sibling_offset = attr.get_ref_die_offset ();
+ break;
+
+ case DW_AT_specification:
+ case DW_AT_abstract_origin:
+ case DW_AT_extension:
+ origin_offset = attr.get_ref_die_offset ();
+ origin_is_dwz = attr.form_is_alt ();
+ break;
+
+ case DW_AT_external:
+ if (attr.as_boolean ())
+ *flags &= ~IS_STATIC;
+ break;
+
+ case DW_AT_enum_class:
+ if (attr.as_boolean ())
+ *is_enum_class = true;
+ break;
+
+ case DW_AT_low_pc:
+ low_pc = attr.as_address ();
+ break;
+
+ case DW_AT_high_pc:
+ high_pc = attr.as_address ();
+ if (reader->cu ()->header.version >= 4 && attr.form_is_constant ())
+ high_pc_relative = true;
+ break;
+
+ case DW_AT_location:
+ if (!scanning_per_cu->addresses_seen && attr.form_is_block ())
+ {
+ struct dwarf_block *locdesc = attr.as_block ();
+ CORE_ADDR addr;
+ dwarf2_cu *cu = reader->cu ();
+
+ if (decode_locdesc (locdesc, cu, &addr)
+ && (addr != 0
+ || cu->per_objfile->per_bfd->has_section_at_zero))
+ {
+ low_pc = (unrelocated_addr) addr;
+ /* For variables, we don't want to try decoding the
+ type just to find the size -- for gdb's purposes
+ we only need the address of a variable. */
+ high_pc = (unrelocated_addr) (addr + 1);
+ high_pc_relative = false;
+ }
+ }
+ break;
+
+ case DW_AT_ranges:
+ if (!scanning_per_cu->addresses_seen)
+ {
+ /* Offset in the .debug_ranges or .debug_rnglist section
+ (depending on DWARF version). */
+ ULONGEST ranges_offset = attr.as_unsigned ();
+
+ /* See dwarf2_cu::gnu_ranges_base's doc for why we might
+ want to add this value. */
+ ranges_offset += reader->cu ()->gnu_ranges_base;
+
+ unrelocated_addr lowpc, highpc;
+ dwarf2_ranges_read (ranges_offset, &lowpc, &highpc, reader->cu (),
+ m_index_storage->get_addrmap (),
+ scanning_per_cu, abbrev->tag);
+ }
+ break;
+ }
+ }
+
+ /* We don't want to examine declarations, but if we found a
+ declaration when handling DW_AT_specification or the like, then
+ that is ok. Similarly, we allow an external variable without a
+ location; those are resolved via minimal symbols. */
+ if (is_declaration && !for_specification
+ && !(abbrev->tag == DW_TAG_variable && (*flags & IS_STATIC) == 0))
+ {
+ /* We always want to recurse into some types, but we may not
+ want to treat them as definitions. */
+ if ((abbrev->tag == DW_TAG_class_type
+ || abbrev->tag == DW_TAG_structure_type
+ || abbrev->tag == DW_TAG_union_type
+ || abbrev->tag == DW_TAG_namespace)
+ && abbrev->has_children)
+ *flags |= IS_TYPE_DECLARATION;
+ else
+ {
+ *linkage_name = nullptr;
+ *name = nullptr;
+ }
+ }
+ else if ((*name == nullptr
+ || (*linkage_name == nullptr
+ && tag_can_have_linkage_name (abbrev->tag))
+ || (*parent_entry == nullptr && m_language != language_c))
+ && origin_offset != sect_offset (0))
+ {
+ cutu_reader *new_reader
+ = ensure_cu_exists (reader, origin_offset, origin_is_dwz, false);
+ if (new_reader == nullptr)
+ error (_(DWARF_ERROR_PREFIX
+ "cannot follow reference to DIE at %s"
+ " [in module %s]"),
+ sect_offset_str (origin_offset),
+ bfd_get_filename (reader->abfd ()));
+
+ const gdb_byte *new_info_ptr
+ = (new_reader->buffer () + to_underlying (origin_offset));
+
+ if (*parent_entry == nullptr)
+ {
+ /* We only perform immediate lookups of parents for DIEs
+ from earlier in this CU. This avoids any problem
+ with a NULL result when when we see a reference to a
+ DIE in another CU that we may or may not have
+ imported locally. */
+ parent_map::addr_type addr = parent_map::form_addr (new_info_ptr);
+ if (new_reader->cu () != reader->cu ()
+ || new_info_ptr > watermark_ptr)
+ *maybe_defer = addr;
+ else
+ *parent_entry = m_die_range_map->find (addr);
+ }
+
+ unsigned int bytes_read;
+ const abbrev_info *new_abbrev
+ = new_reader->peek_die_abbrev (new_info_ptr, &bytes_read);
+
+ if (new_abbrev == nullptr)
+ error (_(DWARF_ERROR_PREFIX
+ "Unexpected null DIE at offset %s [in module %s]"),
+ sect_offset_str (origin_offset),
+ bfd_get_filename (new_reader->abfd ()));
+
+ new_info_ptr += bytes_read;
+
+ if (new_reader->cu () == reader->cu () && new_info_ptr == watermark_ptr)
+ {
+ /* Self-reference, we're done. */
+ }
+ else
+ scan_attributes (scanning_per_cu, new_reader, new_info_ptr,
+ new_info_ptr, new_abbrev, name, linkage_name,
+ flags, nullptr, parent_entry, maybe_defer,
+ is_enum_class, true);
+ }
+
+ if (!for_specification)
+ {
+ /* Older versions of GNAT emit full-qualified encoded names. In
+ this case, also use this name as the linkage name. */
+ if (m_language == language_ada
+ && *linkage_name == nullptr
+ && *name != nullptr
+ && strstr (*name, "__") != nullptr)
+ *linkage_name = *name;
+
+ if (!scanning_per_cu->addresses_seen && low_pc.has_value ()
+ && (reader->cu ()->per_objfile->per_bfd->has_section_at_zero
+ || *low_pc != (unrelocated_addr) 0)
+ && high_pc.has_value ())
+ {
+ if (high_pc_relative)
+ high_pc = (unrelocated_addr) ((ULONGEST) *high_pc
+ + (ULONGEST) *low_pc);
+
+ if (*high_pc > *low_pc)
+ {
+ /* Need CORE_ADDR casts for addrmap. */
+ m_index_storage->get_addrmap ()->set_empty
+ ((CORE_ADDR) *low_pc, (CORE_ADDR) *high_pc - 1,
+ scanning_per_cu);
+ }
+ }
+
+ if (abbrev->tag == DW_TAG_namespace && *name == nullptr)
+ *name = "(anonymous namespace)";
+
+ /* Keep in sync with new_symbol. */
+ if (abbrev->tag == DW_TAG_subprogram
+ && (m_language == language_ada
+ || m_language == language_fortran))
+ *flags &= ~IS_STATIC;
+ }
+
+ return info_ptr;
+}
+
+/* See cooked-indexer.h. */
+
+const gdb_byte *
+cooked_indexer::index_imported_unit (cutu_reader *reader,
+ const gdb_byte *info_ptr,
+ const abbrev_info *abbrev)
+{
+ sect_offset sect_off {};
+ bool is_dwz = false;
+
+ for (int i = 0; i < abbrev->num_attrs; ++i)
+ {
+ /* Note that we never need to reprocess attributes here. */
+ attribute attr;
+ info_ptr = reader->read_attribute (&attr, &abbrev->attrs[i], info_ptr);
+
+ if (attr.name == DW_AT_import)
+ {
+ sect_off = attr.get_ref_die_offset ();
+ is_dwz = (attr.form_is_alt ()
+ || reader->cu ()->per_cu->is_dwz);
+ }
+ }
+
+ /* Did not find DW_AT_import. */
+ if (sect_off == sect_offset (0))
+ return info_ptr;
+
+ cutu_reader *new_reader
+ = ensure_cu_exists (reader, sect_off, is_dwz, true);
+ if (new_reader != nullptr)
+ {
+ index_dies (new_reader, new_reader->info_ptr (), nullptr, false);
+
+ reader->cu ()->add_dependence (new_reader->cu ()->per_cu);
+ }
+
+ return info_ptr;
+}
+
+/* See cooked-indexer.h. */
+
+const gdb_byte *
+cooked_indexer::recurse (cutu_reader *reader,
+ const gdb_byte *info_ptr,
+ std::variant<const cooked_index_entry *,
+ parent_map::addr_type> parent,
+ bool fully)
+{
+ info_ptr = index_dies (reader, info_ptr, parent, fully);
+
+ if (!std::holds_alternative<const cooked_index_entry *> (parent))
+ return info_ptr;
+ const cooked_index_entry *parent_entry
+ = std::get<const cooked_index_entry *> (parent);
+
+ if (parent_entry != nullptr)
+ {
+ /* Both start and end are inclusive, so use both "+ 1" and "- 1" to
+ limit the range to the children of parent_entry. */
+ parent_map::addr_type start
+ = parent_map::form_addr (reader->buffer ()
+ + to_underlying (parent_entry->die_offset)
+ + 1);
+ parent_map::addr_type end = parent_map::form_addr (info_ptr - 1);
+ m_die_range_map->add_entry (start, end, parent_entry);
+ }
+
+ return info_ptr;
+}
+
+/* See cooked-indexer.h. */
+
+const gdb_byte *
+cooked_indexer::index_dies (cutu_reader *reader,
+ const gdb_byte *info_ptr,
+ std::variant<const cooked_index_entry *,
+ parent_map::addr_type> parent,
+ bool fully)
+{
+ const gdb_byte *end_ptr
+ = (reader->buffer () + to_underlying (reader->cu ()->header.sect_off)
+ + reader->cu ()->header.get_length_with_initial ());
+
+ while (info_ptr < end_ptr)
+ {
+ sect_offset this_die = (sect_offset) (info_ptr - reader->buffer ());
+ unsigned int bytes_read;
+ const abbrev_info *abbrev
+ = reader->peek_die_abbrev (info_ptr, &bytes_read);
+ info_ptr += bytes_read;
+ if (abbrev == nullptr)
+ break;
+
+ if (abbrev->tag == DW_TAG_imported_unit)
+ {
+ info_ptr = index_imported_unit (reader, info_ptr, abbrev);
+ continue;
+ }
+
+ parent_map::addr_type defer {};
+ if (std::holds_alternative<parent_map::addr_type> (parent))
+ defer = std::get<parent_map::addr_type> (parent);
+ const cooked_index_entry *parent_entry = nullptr;
+ if (std::holds_alternative<const cooked_index_entry *> (parent))
+ parent_entry = std::get<const cooked_index_entry *> (parent);
+
+ /* If a DIE parent is a DW_TAG_subprogram, then the DIE is only
+ interesting if it's a DW_TAG_subprogram or a DW_TAG_entry_point. */
+ bool die_interesting
+ = (abbrev->interesting
+ && (parent_entry == nullptr
+ || parent_entry->tag != DW_TAG_subprogram
+ || abbrev->tag == DW_TAG_subprogram
+ || abbrev->tag == DW_TAG_entry_point));
+
+ if (!die_interesting)
+ {
+ info_ptr = reader->skip_one_die (info_ptr, abbrev, !fully);
+ if (fully && abbrev->has_children)
+ info_ptr = index_dies (reader, info_ptr, parent, fully);
+ continue;
+ }
+
+ const char *name = nullptr;
+ const char *linkage_name = nullptr;
+ cooked_index_flag flags = IS_STATIC;
+ sect_offset sibling {};
+ const cooked_index_entry *this_parent_entry = parent_entry;
+ bool is_enum_class = false;
+
+ /* The scope of a DW_TAG_entry_point cooked_index_entry is the one of
+ its surrounding subroutine. */
+ if (abbrev->tag == DW_TAG_entry_point)
+ this_parent_entry = parent_entry->get_parent ();
+ info_ptr
+ = scan_attributes (reader->cu ()->per_cu, reader, info_ptr, info_ptr,
+ abbrev, &name, &linkage_name, &flags, &sibling,
+ &this_parent_entry, &defer, &is_enum_class, false);
+ /* A DW_TAG_entry_point inherits its static/extern property from
+ the enclosing subroutine. */
+ if (abbrev->tag == DW_TAG_entry_point)
+ {
+ flags &= ~IS_STATIC;
+ flags |= parent_entry->flags & IS_STATIC;
+ }
+
+ if (abbrev->tag == DW_TAG_namespace
+ && m_language == language_cplus
+ && strcmp (name, "::") == 0)
+ {
+ /* GCC 4.0 and 4.1 had a bug (PR c++/28460) where they
+ generated bogus DW_TAG_namespace DIEs with a name of "::"
+ for the global namespace. Work around this problem
+ here. */
+ name = nullptr;
+ }
+
+ cooked_index_entry *this_entry = nullptr;
+ if (name != nullptr)
+ {
+ if (defer != 0)
+ this_entry
+ = m_index_storage->add (this_die, abbrev->tag,
+ flags | IS_PARENT_DEFERRED, name,
+ defer, m_per_cu);
+ else
+ this_entry
+ = m_index_storage->add (this_die, abbrev->tag, flags, name,
+ this_parent_entry, m_per_cu);
+ }
+
+ if (linkage_name != nullptr)
+ {
+ /* We only want this to be "main" if it has a linkage name
+ but not an ordinary name. */
+ if (name != nullptr)
+ flags = flags & ~IS_MAIN;
+ /* Set the IS_LINKAGE on for everything except when functions
+ have linkage name present but name is absent. */
+ if (name != nullptr
+ || (abbrev->tag != DW_TAG_subprogram
+ && abbrev->tag != DW_TAG_inlined_subroutine
+ && abbrev->tag != DW_TAG_entry_point))
+ flags = flags | IS_LINKAGE;
+ m_index_storage->add (this_die, abbrev->tag, flags,
+ linkage_name, nullptr, m_per_cu);
+ }
+
+ if (abbrev->has_children)
+ {
+ switch (abbrev->tag)
+ {
+ case DW_TAG_class_type:
+ case DW_TAG_interface_type:
+ case DW_TAG_structure_type:
+ case DW_TAG_union_type:
+ if (m_language != language_c && this_entry != nullptr)
+ {
+ info_ptr = recurse (reader, info_ptr, this_entry, fully);
+ continue;
+ }
+ break;
+
+ case DW_TAG_enumeration_type:
+ /* Some versions of gdc could emit an "enum class"
+ without a name, which is nonsensical. These are
+ skipped. */
+ if (is_enum_class && this_entry == nullptr)
+ continue;
+
+ /* We need to recurse even for an anonymous enumeration.
+ Which scope we record as the parent scope depends on
+ whether we're reading an "enum class". If so, we use
+ the enum itself as the parent, yielding names like
+ "enum_class::enumerator"; otherwise we inject the
+ names into our own parent scope. */
+ {
+ std::variant<const cooked_index_entry *,
+ parent_map::addr_type> recurse_parent;
+ if (is_enum_class)
+ {
+ gdb_assert (this_entry != nullptr);
+ recurse_parent = this_entry;
+ }
+ else if (defer != 0)
+ recurse_parent = defer;
+ else
+ recurse_parent = this_parent_entry;
+
+ info_ptr = recurse (reader, info_ptr, recurse_parent, fully);
+ }
+ continue;
+
+ case DW_TAG_module:
+ if (this_entry == nullptr)
+ break;
+ [[fallthrough]];
+ case DW_TAG_namespace:
+ /* We don't check THIS_ENTRY for a namespace, to handle
+ the ancient G++ workaround pointed out above. */
+ info_ptr = recurse (reader, info_ptr, this_entry, fully);
+ continue;
+
+ case DW_TAG_subprogram:
+ if ((m_language == language_fortran
+ || m_language == language_ada)
+ && this_entry != nullptr)
+ {
+ info_ptr = recurse (reader, info_ptr, this_entry, true);
+ continue;
+ }
+ break;
+ }
+
+ if (sibling != sect_offset (0))
+ {
+ const gdb_byte *sibling_ptr
+ = reader->buffer () + to_underlying (sibling);
+
+ if (sibling_ptr < info_ptr)
+ complaint (_("DW_AT_sibling points backwards"));
+ else if (sibling_ptr > reader->buffer_end ())
+ reader->section ()->overflow_complaint ();
+ else
+ info_ptr = sibling_ptr;
+ }
+ else
+ info_ptr = reader->skip_children (info_ptr);
+ }
+ }
+
+ return info_ptr;
+}
+
+/* See cooked-indexer.h. */
+
+void
+cooked_indexer::make_index (cutu_reader *reader)
+{
+ check_bounds (reader);
+ find_file_and_directory (reader->top_level_die (), reader->cu ());
+
+ if (!reader->top_level_die ()->has_children)
+ return;
+
+ index_dies (reader, reader->info_ptr (), nullptr, false);
+}
diff --git a/gdb/dwarf2/cooked-indexer.h b/gdb/dwarf2/cooked-indexer.h
new file mode 100644
index 0000000..904c55f
--- /dev/null
+++ b/gdb/dwarf2/cooked-indexer.h
@@ -0,0 +1,119 @@
+/* DWARF indexer
+
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#ifndef GDB_DWARF2_COOKED_INDEXER_H
+#define GDB_DWARF2_COOKED_INDEXER_H
+
+#include "dwarf2/cooked-index-entry.h"
+#include "dwarf2/parent-map.h"
+#include "dwarf2/types.h"
+#include <variant>
+
+struct abbrev_info;
+struct cooked_index_worker_result;
+struct cutu_reader;
+struct dwarf2_per_cu;
+struct dwarf2_per_objfile;
+
+/* An instance of this is created to index a CU. */
+
+class cooked_indexer
+{
+public:
+ cooked_indexer (cooked_index_worker_result *storage, dwarf2_per_cu *per_cu,
+ enum language language);
+
+ DISABLE_COPY_AND_ASSIGN (cooked_indexer);
+
+ /* Index the given CU. */
+ void make_index (cutu_reader *reader);
+
+private:
+
+ /* A helper function to scan the PC bounds of READER and record them
+ in the storage's addrmap. */
+ void check_bounds (cutu_reader *reader);
+
+ /* Ensure that the indicated CU exists. The cutu_reader for it is
+ returned. FOR_SCANNING is true if the caller intends to scan all
+ the DIEs in the CU; when false, this use is assumed to be to look
+ up just a single DIE. */
+ cutu_reader *ensure_cu_exists (cutu_reader *reader,
+ sect_offset sect_off,
+ bool is_dwz,
+ bool for_scanning);
+
+ /* Index DIEs in the READER starting at INFO_PTR. PARENT is
+ the entry for the enclosing scope (nullptr at top level). FULLY
+ is true when a full scan must be done -- in some languages,
+ function scopes must be fully explored in order to find nested
+ functions. This returns a pointer to just after the spot where
+ reading stopped. */
+ const gdb_byte *index_dies (cutu_reader *reader,
+ const gdb_byte *info_ptr,
+ std::variant<const cooked_index_entry *,
+ parent_map::addr_type> parent,
+ bool fully);
+
+ /* Scan the attributes for a given DIE and update the out
+ parameters. Returns a pointer to the byte after the DIE. */
+ const gdb_byte *scan_attributes (dwarf2_per_cu *scanning_per_cu,
+ cutu_reader *reader,
+ const gdb_byte *watermark_ptr,
+ const gdb_byte *info_ptr,
+ const abbrev_info *abbrev,
+ const char **name,
+ const char **linkage_name,
+ cooked_index_flag *flags,
+ sect_offset *sibling_offset,
+ const cooked_index_entry **parent_entry,
+ parent_map::addr_type *maybe_defer,
+ bool *is_enum_class,
+ bool for_specification);
+
+ /* Handle DW_TAG_imported_unit, by scanning the DIE to find
+ DW_AT_import, and then scanning the referenced CU. Returns a
+ pointer to the byte after the DIE. */
+ const gdb_byte *index_imported_unit (cutu_reader *reader,
+ const gdb_byte *info_ptr,
+ const abbrev_info *abbrev);
+
+ /* Recursively read DIEs, recording the section offsets in
+ m_die_range_map and then calling index_dies. */
+ const gdb_byte *recurse (cutu_reader *reader,
+ const gdb_byte *info_ptr,
+ std::variant<const cooked_index_entry *,
+ parent_map::addr_type> parent_entry,
+ bool fully);
+
+ /* The storage object, where the results are kept. */
+ cooked_index_worker_result *m_index_storage;
+ /* The CU that we are reading on behalf of. This object might be
+ asked to index one CU but to treat the results as if they come
+ from some including CU; in this case the including CU would be
+ recorded here. */
+ dwarf2_per_cu *m_per_cu;
+ /* The language that we're assuming when reading. */
+ enum language m_language;
+
+ /* Map from DIE ranges to newly-created entries. */
+ parent_map *m_die_range_map;
+};
+
+#endif /* GDB_DWARF2_COOKED_INDEXER_H */
diff --git a/gdb/dwarf2/cu.c b/gdb/dwarf2/cu.c
index 1029b24..86b77f5 100644
--- a/gdb/dwarf2/cu.c
+++ b/gdb/dwarf2/cu.c
@@ -1,6 +1,6 @@
/* DWARF CU data structure
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -21,27 +21,35 @@
#include "dwarf2/read.h"
#include "objfiles.h"
#include "filenames.h"
+#include "producer.h"
#include "gdbsupport/pathstuff.h"
/* Initialize dwarf2_cu to read PER_CU, in the context of PER_OBJFILE. */
-dwarf2_cu::dwarf2_cu (dwarf2_per_cu_data *per_cu,
- dwarf2_per_objfile *per_objfile)
+dwarf2_cu::dwarf2_cu (dwarf2_per_cu *per_cu, dwarf2_per_objfile *per_objfile)
: per_cu (per_cu),
per_objfile (per_objfile),
m_mark (false),
has_loclist (false),
- checked_producer (false),
- producer_is_gxx_lt_4_6 (false),
- producer_is_gcc_lt_4_3 (false),
- producer_is_gcc_11 (false),
- producer_is_icc (false),
- producer_is_icc_lt_14 (false),
- producer_is_codewarrior (false),
- producer_is_clang (false),
- producer_is_gas_lt_2_38 (false),
- producer_is_gas_2_39 (false),
- producer_is_gas_ge_2_40 (false),
+ m_checked_producer (false),
+ m_producer_is_gxx_lt_4_6 (false),
+ m_producer_is_gcc_lt_4_5 (false),
+ m_producer_is_gcc_lt_4_3 (false),
+ m_producer_is_gcc_ge_4 (false),
+ m_producer_is_gcc_11 (false),
+ m_producer_is_gcc (false),
+ m_producer_is_icc (false),
+ m_producer_is_icc_lt_14 (false),
+ m_producer_is_codewarrior (false),
+ m_producer_is_clang (false),
+ m_producer_is_gas_lt_2_38 (false),
+ m_producer_is_gas_2_39 (false),
+ m_producer_is_gas_ge_2_40 (false),
+ m_producer_is_realview (false),
+ m_producer_is_xlc (false),
+ m_producer_is_xlc_opencl (false),
+ m_producer_is_gf77 (false),
+ m_producer_is_ggo (false),
processing_has_namespace_info (false)
{
}
@@ -98,7 +106,7 @@ dwarf2_cu::start_compunit_symtab (const char *name, const char *comp_dir,
const char *debugformat = debugformat_strings[this->header.version - 2];
get_builder ()->record_debugformat (debugformat);
- get_builder ()->record_producer (producer);
+ get_builder ()->record_producer (m_producer);
processing_has_namespace_info = false;
@@ -132,7 +140,7 @@ dwarf2_cu::mark ()
m_mark = true;
- for (dwarf2_per_cu_data *per_cu : m_dependencies)
+ for (dwarf2_per_cu *per_cu : m_dependencies)
{
/* cu->m_dependencies references may not yet have been ever
read if QUIT aborts reading of the chain. As such
@@ -161,3 +169,71 @@ dwarf2_cu::get_builder ()
gdb_assert_not_reached ("");
}
+
+/* See dwarf2/cu.h. */
+
+void
+dwarf2_cu::set_producer (const char *producer)
+{
+ gdb_assert (m_producer == nullptr || strcmp (producer, m_producer) == 0);
+ m_producer = producer;
+
+ int major, minor;
+
+ if (m_producer == nullptr)
+ {
+ /* For unknown compilers expect their behavior is DWARF version
+ compliant.
+
+ GCC started to support .debug_types sections by -gdwarf-4 since
+ gcc-4.5.x. As the .debug_types sections are missing DW_AT_producer
+ for their space efficiency GDB cannot workaround gcc-4.5.x -gdwarf-4
+ combination. gcc-4.5.x -gdwarf-4 binaries have DW_AT_accessibility
+ interpreted incorrectly by GDB now - GCC PR debug/48229. */
+ }
+ else if (::producer_is_gcc (m_producer, &major, &minor))
+ {
+ m_producer_is_gxx_lt_4_6 = major < 4 || (major == 4 && minor < 6);
+ m_producer_is_gcc_lt_4_5 = major < 4 || (major == 4 && minor < 5);
+ m_producer_is_gcc_lt_4_3 = major < 4 || (major == 4 && minor < 3);
+ m_producer_is_gcc_ge_4 = major >= 4;
+ m_producer_is_gcc_11 = major == 11;
+ m_producer_is_gcc = true;
+ }
+ else if (::producer_is_icc (m_producer, &major, &minor))
+ {
+ m_producer_is_icc = true;
+ m_producer_is_icc_lt_14 = major < 14;
+ }
+ else if (startswith (m_producer, "CodeWarrior S12/L-ISA"))
+ m_producer_is_codewarrior = true;
+ else if (::producer_is_clang (m_producer, &major, &minor))
+ m_producer_is_clang = true;
+ else if (::producer_is_gas (m_producer, &major, &minor))
+ {
+ m_producer_is_gas_lt_2_38 = major < 2 || (major == 2 && minor < 38);
+ m_producer_is_gas_2_39 = major == 2 && minor == 39;
+ m_producer_is_gas_ge_2_40 = major > 2 || (major == 2 && minor >= 40);
+ }
+ else if (::producer_is_realview (m_producer))
+ m_producer_is_realview = true;
+ else if (startswith (m_producer, "IBM(R) XL C/C++ Advanced Edition"))
+ m_producer_is_xlc = true;
+ else if (strstr (m_producer, "IBM XL C for OpenCL") != nullptr)
+ m_producer_is_xlc_opencl = true;
+ else
+ {
+ /* For other non-GCC compilers, expect their behavior is DWARF version
+ compliant. */
+ }
+
+ if (m_producer != nullptr)
+ {
+ if (strstr (m_producer, "GNU F77") != nullptr)
+ m_producer_is_gf77 = true;
+ else if (strstr (m_producer, "GNU Go ") != nullptr)
+ m_producer_is_ggo = true;
+ }
+
+ m_checked_producer = true;
+}
diff --git a/gdb/dwarf2/cu.h b/gdb/dwarf2/cu.h
index 737d3ba..69f396c 100644
--- a/gdb/dwarf2/cu.h
+++ b/gdb/dwarf2/cu.h
@@ -1,6 +1,6 @@
/* DWARF CU data structure
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -21,7 +21,7 @@
#define GDB_DWARF2_CU_H
#include "buildsym.h"
-#include "dwarf2/comp-unit-head.h"
+#include "dwarf2/unit-head.h"
#include <optional>
#include "language.h"
#include "gdbsupport/unordered_set.h"
@@ -50,8 +50,7 @@ struct delayed_method_info
/* Internal state when decoding a particular compilation unit. */
struct dwarf2_cu
{
- explicit dwarf2_cu (dwarf2_per_cu_data *per_cu,
- dwarf2_per_objfile *per_objfile);
+ explicit dwarf2_cu (dwarf2_per_cu *per_cu, dwarf2_per_objfile *per_objfile);
DISABLE_COPY_AND_ASSIGN (dwarf2_cu);
@@ -97,11 +96,20 @@ struct dwarf2_cu
}
/* Add a dependence relationship from this cu to REF_PER_CU. */
- void add_dependence (struct dwarf2_per_cu_data *ref_per_cu)
+ void add_dependence (dwarf2_per_cu *ref_per_cu)
{ m_dependencies.emplace (ref_per_cu); }
+ /* Find the DIE at section offset SECT_OFF.
+
+ Return nullptr if not found. */
+ die_info *find_die (sect_offset sect_off) const
+ {
+ auto it = die_hash.find (sect_off);
+ return it != die_hash.end () ? *it : nullptr;
+ }
+
/* The header of the compilation unit. */
- struct comp_unit_head header;
+ struct unit_head header;
/* Base address of this compilation unit. */
std::optional<unrelocated_addr> base_address;
@@ -115,17 +123,163 @@ struct dwarf2_cu
return language_defn->la_language;
}
- const char *producer = nullptr;
+ /* Set the producer string and check various properties of it. */
+ void set_producer (const char *producer);
+
+ /* Check for GCC PR debug/45124 fix which is not present in any G++
+ version up to 4.5.any while it is present already in G++ 4.6.0 -
+ the PR has been fixed during 4.6.0 experimental. */
+ bool producer_is_gxx_lt_4_6 () const
+ {
+ gdb_assert (m_checked_producer);
+ return m_producer_is_gxx_lt_4_6;
+ }
+
+ /* Check for GCC < 4.5.x. */
+ bool producer_is_gcc_lt_4_5 () const
+ {
+ gdb_assert (m_checked_producer);
+ return m_producer_is_gcc_lt_4_5;
+ }
+
+ /* Codewarrior (at least as of version 5.0.40) generates dwarf line
+ information with incorrect is_stmt attributes. */
+ bool producer_is_codewarrior () const
+ {
+ gdb_assert (m_checked_producer);
+ return m_producer_is_codewarrior;
+ }
+
+ bool producer_is_gas_lt_2_38 () const
+ {
+ gdb_assert (m_checked_producer);
+ return m_producer_is_gas_lt_2_38;
+ }
+
+ bool producer_is_gas_2_39 () const
+ {
+ gdb_assert (m_checked_producer);
+ return m_producer_is_gas_2_39;
+ }
+
+ /* Return true if CU is produced by GAS 2.39 or later. */
+ bool producer_is_gas_ge_2_39 () const
+ {
+ gdb_assert (m_checked_producer);
+ return m_producer_is_gas_2_39 || m_producer_is_gas_ge_2_40;
+ }
+
+ /* ICC<14 does not output the required DW_AT_declaration on
+ incomplete types, but gives them a size of zero. Starting with
+ version 14, ICC is compatible with GCC. */
+ bool producer_is_icc_lt_14 () const
+ {
+ gdb_assert (m_checked_producer);
+ return m_producer_is_icc_lt_14;
+ }
+
+ /* ICC generates a DW_AT_type for C void functions. This was
+ observed on ICC 14.0.5.212, and appears to be against the DWARF
+ spec (V5 3.3.2) which says that void functions should not have a
+ DW_AT_type. */
+ bool producer_is_icc () const
+ {
+ gdb_assert (m_checked_producer);
+ return m_producer_is_icc;
+ }
+
+ /* Check for possibly missing DW_AT_comp_dir with relative
+ .debug_line directory paths. GCC SVN r127613 (new option
+ -fdebug-prefix-map) fixed this, it was first present in GCC
+ release 4.3.0. */
+ bool producer_is_gcc_lt_4_3 () const
+ {
+ gdb_assert (m_checked_producer);
+ return m_producer_is_gcc_lt_4_3;
+ }
+
+ /* Check for GCC 4 or later. */
+ bool producer_is_gcc_ge_4 () const
+ {
+ gdb_assert (m_checked_producer);
+ return m_producer_is_gcc_ge_4;
+ }
+
+ /* Check for GCC 11 exactly. */
+ bool producer_is_gcc_11 () const
+ {
+ gdb_assert (m_checked_producer);
+ return m_producer_is_gcc_11;
+ }
+
+ /* Check for any version of GCC. */
+ bool producer_is_gcc () const
+ {
+ gdb_assert (m_checked_producer);
+ return m_producer_is_gcc;
+ }
+
+ /* Return true if the producer of the inferior is clang. */
+ bool producer_is_clang () const
+ {
+ gdb_assert (m_checked_producer);
+ return m_producer_is_clang;
+ }
+
+ /* Return true if the producer is RealView. */
+ bool producer_is_realview () const
+ {
+ gdb_assert (m_checked_producer);
+ return m_producer_is_realview;
+ }
+
+ /* Return true if the producer is IBM XLC. */
+ bool producer_is_xlc () const
+ {
+ gdb_assert (m_checked_producer);
+ return m_producer_is_xlc;
+ }
+
+ /* Return true if the producer is IBM XLC for OpenCL. */
+ bool producer_is_xlc_opencl () const
+ {
+ gdb_assert (m_checked_producer);
+ return m_producer_is_xlc_opencl;
+ }
+
+ /* Return true if the producer is GNU F77. */
+ bool producer_is_gf77 () const
+ {
+ gdb_assert (m_checked_producer);
+ return m_producer_is_gf77;
+ }
+
+ /* Return true if the producer is GNU Go. */
+ bool producer_is_ggo () const
+ {
+ gdb_assert (m_checked_producer);
+ return m_producer_is_ggo;
+ }
+
+ /* Return the producer. In general this should not be used and
+ instead new checks should be added to set_producer. */
+ const char *get_producer () const
+ {
+ gdb_assert (m_checked_producer);
+ return m_producer;
+ }
private:
+ const char *m_producer = nullptr;
+
/* The symtab builder for this CU. This is only non-NULL when full
symbols are being read. */
- std::unique_ptr<buildsym_compunit> m_builder;
+ buildsym_compunit_up m_builder;
- /* A set of pointers to dwarf2_per_cu_data objects for compilation
- units referenced by this one. Only used during full symbol processing;
- partial symbol tables do not have dependencies. */
- gdb::unordered_set<dwarf2_per_cu_data *> m_dependencies;
+ /* A set of pointers to dwarf2_per_cu objects for compilation units referenced
+ by this one. Only used during full symbol processing; partial symbol
+ tables do not have dependencies. */
+ gdb::unordered_set<dwarf2_per_cu *> m_dependencies;
public:
/* The generic symbol table building routines have separate lists for
@@ -144,7 +298,7 @@ public:
auto_obstack comp_unit_obstack;
/* Backlink to our per_cu entry. */
- struct dwarf2_per_cu_data *per_cu;
+ dwarf2_per_cu *per_cu;
/* The dwarf2_per_objfile that owns this. */
dwarf2_per_objfile *per_objfile;
@@ -215,7 +369,7 @@ public:
right place. And since the DW_TAG_compile_unit DIE in the split-unit can't
have a DW_AT_ranges attribute, we can use the
- die->tag != DW_AT_compile_unit
+ die->tag != DW_TAG_compile_unit
to determine whether the base should be added or not. */
ULONGEST gnu_ranges_base = 0;
@@ -258,17 +412,25 @@ public:
if all the producer_is_* fields are valid. This information is cached
because profiling CU expansion showed excessive time spent in
producer_is_gxx_lt_4_6. */
- bool checked_producer : 1;
- bool producer_is_gxx_lt_4_6 : 1;
- bool producer_is_gcc_lt_4_3 : 1;
- bool producer_is_gcc_11 : 1;
- bool producer_is_icc : 1;
- bool producer_is_icc_lt_14 : 1;
- bool producer_is_codewarrior : 1;
- bool producer_is_clang : 1;
- bool producer_is_gas_lt_2_38 : 1;
- bool producer_is_gas_2_39 : 1;
- bool producer_is_gas_ge_2_40 : 1;
+ bool m_checked_producer : 1;
+ bool m_producer_is_gxx_lt_4_6 : 1;
+ bool m_producer_is_gcc_lt_4_5 : 1;
+ bool m_producer_is_gcc_lt_4_3 : 1;
+ bool m_producer_is_gcc_ge_4 : 1;
+ bool m_producer_is_gcc_11 : 1;
+ bool m_producer_is_gcc : 1;
+ bool m_producer_is_icc : 1;
+ bool m_producer_is_icc_lt_14 : 1;
+ bool m_producer_is_codewarrior : 1;
+ bool m_producer_is_clang : 1;
+ bool m_producer_is_gas_lt_2_38 : 1;
+ bool m_producer_is_gas_2_39 : 1;
+ bool m_producer_is_gas_ge_2_40 : 1;
+ bool m_producer_is_realview : 1;
+ bool m_producer_is_xlc : 1;
+ bool m_producer_is_xlc_opencl : 1;
+ bool m_producer_is_gf77 : 1;
+ bool m_producer_is_ggo : 1;
/* When true, the file that we're processing is known to have
debugging info for C++ namespaces. GCC 3.3.x did not produce
@@ -280,4 +442,6 @@ public:
buildsym_compunit *get_builder ();
};
+using dwarf2_cu_up = std::unique_ptr<dwarf2_cu>;
+
#endif /* GDB_DWARF2_CU_H */
diff --git a/gdb/dwarf2/die.c b/gdb/dwarf2/die.c
index 500d7bf..7ed18bf 100644
--- a/gdb/dwarf2/die.c
+++ b/gdb/dwarf2/die.c
@@ -1,6 +1,6 @@
/* DWARF DIEs
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -90,6 +90,8 @@ dump_die_shallow (struct ui_file *f, int indent, struct die_info *die)
gdb_puts (hex_string (die->attrs[i].as_unsigned ()), f);
break;
case DW_FORM_GNU_ref_alt:
+ case DW_FORM_ref_sup4:
+ case DW_FORM_ref_sup8:
gdb_printf (f, "alt ref address: ");
gdb_puts (hex_string (die->attrs[i].as_unsigned ()), f);
break;
@@ -123,6 +125,7 @@ dump_die_shallow (struct ui_file *f, int indent, struct die_info *die)
case DW_FORM_strx:
case DW_FORM_GNU_str_index:
case DW_FORM_GNU_strp_alt:
+ case DW_FORM_strp_sup:
gdb_printf (f, "string: \"%s\" (%s canonicalized)",
die->attrs[i].as_string ()
? die->attrs[i].as_string () : "",
@@ -184,9 +187,9 @@ dump_die_1 (struct ui_file *f, int level, int max_level, struct die_info *die)
}
}
- if (die->sibling != NULL && level > 0)
+ if (die->next != NULL && level > 0)
{
- dump_die_1 (f, level, max_level, die->sibling);
+ dump_die_1 (f, level, max_level, die->next);
}
}
diff --git a/gdb/dwarf2/die.h b/gdb/dwarf2/die.h
index 770964e..6ec5757 100644
--- a/gdb/dwarf2/die.h
+++ b/gdb/dwarf2/die.h
@@ -1,6 +1,6 @@
/* DWARF DIEs
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -22,6 +22,7 @@
#include "complaints.h"
#include "dwarf2/attribute.h"
+#include "gdbsupport/next-iterator.h"
/* This data structure holds a complete die structure. */
struct die_info
@@ -103,6 +104,13 @@ struct die_info
return 0;
}
+ /* Return a range suitable for iterating over the children of this
+ DIE. */
+ next_range<die_info> children () const
+ {
+ return next_range<die_info> (child);
+ }
+
/* DWARF-2 tag for this DIE. */
ENUM_BITFIELD(dwarf_tag) tag : 16;
@@ -128,9 +136,9 @@ struct die_info
/* The dies in a compilation unit form an n-ary tree. PARENT
points to this die's parent; CHILD points to the first child of
this node; and all the children of a given node are chained
- together via their SIBLING fields. */
+ together via their NEXT fields. */
struct die_info *child; /* Its first child, if any. */
- struct die_info *sibling; /* Its next sibling, if any. */
+ struct die_info *next; /* Its next sibling, if any. */
struct die_info *parent; /* Its parent, if any. */
/* An array of attributes, with NUM_ATTRS elements. There may be
diff --git a/gdb/dwarf2/dwz.c b/gdb/dwarf2/dwz.c
index fb11ac6..1aa0d03 100644
--- a/gdb/dwarf2/dwz.c
+++ b/gdb/dwarf2/dwz.c
@@ -1,6 +1,6 @@
/* DWARF DWZ handling for GDB.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -21,6 +21,7 @@
#include "build-id.h"
#include "debuginfod-support.h"
+#include "dwarf2/leb.h"
#include "dwarf2/read.h"
#include "dwarf2/sect-names.h"
#include "filenames.h"
@@ -34,16 +35,18 @@
const char *
dwz_file::read_string (struct objfile *objfile, LONGEST str_offset)
{
- str.read (objfile);
+ /* This must be true because the sections are read in when the
+ dwz_file is created. */
+ gdb_assert (str.readin);
if (str.buffer == NULL)
- error (_("DW_FORM_GNU_strp_alt used without .debug_str "
+ error (_("supplementary DWARF file missing .debug_str "
"section [in module %s]"),
- bfd_get_filename (dwz_bfd.get ()));
+ this->filename ());
if (str_offset >= str.size)
- error (_("DW_FORM_GNU_strp_alt pointing outside of "
- ".debug_str section [in module %s]"),
- bfd_get_filename (dwz_bfd.get ()));
+ error (_("invalid string reference to supplementary DWARF file "
+ "[in module %s]"),
+ this->filename ());
gdb_assert (HOST_CHAR_BIT == 8);
if (str.buffer[str_offset] == '\0')
return NULL;
@@ -53,36 +56,171 @@ dwz_file::read_string (struct objfile *objfile, LONGEST str_offset)
/* A helper function to find the sections for a .dwz file. */
static void
-locate_dwz_sections (struct objfile *objfile, bfd *abfd, asection *sectp,
- dwz_file *dwz_file)
+locate_dwz_sections (objfile *objfile, dwz_file &dwz_file)
{
- dwarf2_section_info *sect = nullptr;
+ for (asection *sec : gdb_bfd_sections (dwz_file.dwz_bfd))
+ {
+ dwarf2_section_info *sect = nullptr;
- /* Note that we only support the standard ELF names, because .dwz
+ /* Note that we only support the standard ELF names, because .dwz
is ELF-only (at the time of writing). */
- if (dwarf2_elf_names.abbrev.matches (sectp->name))
- sect = &dwz_file->abbrev;
- else if (dwarf2_elf_names.info.matches (sectp->name))
- sect = &dwz_file->info;
- else if (dwarf2_elf_names.str.matches (sectp->name))
- sect = &dwz_file->str;
- else if (dwarf2_elf_names.line.matches (sectp->name))
- sect = &dwz_file->line;
- else if (dwarf2_elf_names.macro.matches (sectp->name))
- sect = &dwz_file->macro;
- else if (dwarf2_elf_names.gdb_index.matches (sectp->name))
- sect = &dwz_file->gdb_index;
- else if (dwarf2_elf_names.debug_names.matches (sectp->name))
- sect = &dwz_file->debug_names;
- else if (dwarf2_elf_names.types.matches (sectp->name))
- sect = &dwz_file->types;
-
- if (sect != nullptr)
+ if (dwarf2_elf_names.abbrev.matches (sec->name))
+ sect = &dwz_file.abbrev;
+ else if (dwarf2_elf_names.info.matches (sec->name))
+ sect = &dwz_file.info;
+ else if (dwarf2_elf_names.str.matches (sec->name))
+ sect = &dwz_file.str;
+ else if (dwarf2_elf_names.line.matches (sec->name))
+ sect = &dwz_file.line;
+ else if (dwarf2_elf_names.macro.matches (sec->name))
+ sect = &dwz_file.macro;
+ else if (dwarf2_elf_names.gdb_index.matches (sec->name))
+ sect = &dwz_file.gdb_index;
+ else if (dwarf2_elf_names.debug_names.matches (sec->name))
+ sect = &dwz_file.debug_names;
+ else if (dwarf2_elf_names.types.matches (sec->name))
+ sect = &dwz_file.types;
+
+ if (sect != nullptr)
+ {
+ sect->s.section = sec;
+ sect->size = bfd_section_size (sec);
+ sect->read (objfile);
+ }
+ }
+}
+
+/* Helper that throws an exception when reading the .debug_sup
+ section. */
+
+static void
+debug_sup_failure (const char *text, bfd *abfd)
+{
+ error (_("%s [in modules %s]"), text, bfd_get_filename (abfd));
+}
+
+/* Look for the .debug_sup section and read it. If the section does
+ not exist, this returns false. If the section does exist but fails
+ to parse for some reason, an exception is thrown. Otherwise, if
+ everything goes well, this returns true and fills in the out
+ parameters. */
+
+static bool
+get_debug_sup_info (bfd *abfd,
+ std::string *filename,
+ size_t *buildid_len,
+ gdb::unique_xmalloc_ptr<bfd_byte> *buildid)
+{
+ asection *sect = bfd_get_section_by_name (abfd, ".debug_sup");
+ if (sect == nullptr)
+ return false;
+
+ bfd_byte *contents;
+ if (!bfd_malloc_and_get_section (abfd, sect, &contents))
+ debug_sup_failure (_("could not read .debug_sup section"), abfd);
+
+ gdb::unique_xmalloc_ptr<bfd_byte> content_holder (contents);
+ bfd_size_type size = bfd_section_size (sect);
+
+ /* Version of this section. */
+ if (size < 4)
+ debug_sup_failure (_(".debug_sup section too short"), abfd);
+ unsigned int version = read_2_bytes (abfd, contents);
+ contents += 2;
+ size -= 2;
+ if (version != 5)
+ debug_sup_failure (_(".debug_sup has wrong version number"), abfd);
+
+ /* Skip the is_supplementary value. We already ensured there were
+ enough bytes, above. */
+ ++contents;
+ --size;
+
+ /* The spec says that in the supplementary file, this must be \0,
+ but it doesn't seem very important. */
+ const char *fname = (const char *) contents;
+ size_t len = strlen (fname) + 1;
+ if (filename != nullptr)
+ *filename = fname;
+ contents += len;
+ size -= len;
+
+ if (size == 0)
+ debug_sup_failure (_(".debug_sup section missing ID"), abfd);
+
+ unsigned int bytes_read;
+ *buildid_len = read_unsigned_leb128 (abfd, contents, &bytes_read);
+ contents += bytes_read;
+ size -= bytes_read;
+
+ if (size < *buildid_len)
+ debug_sup_failure (_("extra data after .debug_sup section ID"), abfd);
+
+ if (*buildid_len != 0)
+ buildid->reset ((bfd_byte *) xmemdup (contents, *buildid_len,
+ *buildid_len));
+
+ return true;
+}
+
+/* Validate that ABFD matches the given BUILDID. If DWARF5 is true,
+ then this is done by examining the .debug_sup data. */
+
+static bool
+verify_id (bfd *abfd, size_t len, const bfd_byte *buildid, bool dwarf5)
+{
+ if (!bfd_check_format (abfd, bfd_object))
+ return false;
+
+ if (dwarf5)
+ {
+ size_t new_len;
+ gdb::unique_xmalloc_ptr<bfd_byte> new_id;
+
+ if (!get_debug_sup_info (abfd, nullptr, &new_len, &new_id))
+ return false;
+ return (len == new_len
+ && memcmp (buildid, new_id.get (), len) == 0);
+ }
+ else
+ return build_id_verify (abfd, len, buildid);
+}
+
+/* Find either the .debug_sup or .gnu_debugaltlink section and return
+ its contents. Returns true on success and sets out parameters, or
+ false if nothing is found. */
+
+static bool
+read_alt_info (bfd *abfd, std::string *filename,
+ size_t *buildid_len,
+ gdb::unique_xmalloc_ptr<bfd_byte> *buildid,
+ bool *dwarf5)
+{
+ if (get_debug_sup_info (abfd, filename, buildid_len, buildid))
+ {
+ *dwarf5 = true;
+ return true;
+ }
+
+ bfd_size_type buildid_len_arg;
+ bfd_set_error (bfd_error_no_error);
+ bfd_byte *buildid_out;
+ gdb::unique_xmalloc_ptr<char> new_filename
+ (bfd_get_alt_debug_link_info (abfd, &buildid_len_arg,
+ &buildid_out));
+ if (new_filename == nullptr)
{
- sect->s.section = sectp;
- sect->size = bfd_section_size (sectp);
- sect->read (objfile);
+ if (bfd_get_error () == bfd_error_no_error)
+ return false;
+ error (_("could not read '.gnu_debugaltlink' section: %s"),
+ bfd_errmsg (bfd_get_error ()));
}
+ *filename = new_filename.get ();
+
+ *buildid_len = buildid_len_arg;
+ buildid->reset (buildid_out);
+ *dwarf5 = false;
+ return true;
}
/* Attempt to find a .dwz file (whose full path is represented by
@@ -93,7 +231,7 @@ locate_dwz_sections (struct objfile *objfile, bfd *abfd, asection *sectp,
static gdb_bfd_ref_ptr
dwz_search_other_debugdirs (std::string &filename, bfd_byte *buildid,
- size_t buildid_len)
+ size_t buildid_len, bool dwarf5)
{
/* Let's assume that the path represented by FILENAME has the
"/.dwz/" subpath in it. This is what (most) GNU/Linux
@@ -161,7 +299,7 @@ dwz_search_other_debugdirs (std::string &filename, bfd_byte *buildid,
if (dwz_bfd == nullptr)
continue;
- if (!build_id_verify (dwz_bfd.get (), buildid_len, buildid))
+ if (!verify_id (dwz_bfd.get (), buildid_len, buildid, dwarf5))
{
dwz_bfd.reset (nullptr);
continue;
@@ -177,11 +315,8 @@ dwz_search_other_debugdirs (std::string &filename, bfd_byte *buildid,
/* See dwz.h. */
void
-dwarf2_read_dwz_file (dwarf2_per_objfile *per_objfile)
+dwz_file::read_dwz_file (dwarf2_per_objfile *per_objfile)
{
- bfd_size_type buildid_len_arg;
- size_t buildid_len;
- bfd_byte *buildid;
dwarf2_per_bfd *per_bfd = per_objfile->per_bfd;
/* This may query the user via the debuginfod support, so it may
@@ -193,30 +328,22 @@ dwarf2_read_dwz_file (dwarf2_per_objfile *per_objfile)
/* Set this early, so that on error it remains NULL. */
per_bfd->dwz_file.emplace (nullptr);
- bfd_set_error (bfd_error_no_error);
- gdb::unique_xmalloc_ptr<char> data
- (bfd_get_alt_debug_link_info (per_bfd->obfd,
- &buildid_len_arg, &buildid));
- if (data == NULL)
+ size_t buildid_len;
+ gdb::unique_xmalloc_ptr<bfd_byte> buildid;
+ std::string filename;
+ bool dwarf5;
+ if (!read_alt_info (per_bfd->obfd, &filename, &buildid_len, &buildid,
+ &dwarf5))
{
- if (bfd_get_error () == bfd_error_no_error)
- return;
- error (_("could not read '.gnu_debugaltlink' section: %s"),
- bfd_errmsg (bfd_get_error ()));
+ /* Nothing found, nothing to do. */
+ return;
}
- gdb::unique_xmalloc_ptr<bfd_byte> buildid_holder (buildid);
-
- buildid_len = (size_t) buildid_len_arg;
-
- std::string filename = data.get ();
-
if (!IS_ABSOLUTE_PATH (filename.c_str ()))
{
- gdb::unique_xmalloc_ptr<char> abs
- = gdb_realpath (bfd_get_filename (per_bfd->obfd));
+ gdb::unique_xmalloc_ptr<char> abs = gdb_realpath (per_bfd->filename ());
- filename = ldirname (abs.get ()) + SLASH_STRING + filename;
+ filename = gdb_ldirname (abs.get ()) + SLASH_STRING + filename;
}
/* First try the file name given in the section. If that doesn't
@@ -224,29 +351,27 @@ dwarf2_read_dwz_file (dwarf2_per_objfile *per_objfile)
gdb_bfd_ref_ptr dwz_bfd (gdb_bfd_open (filename.c_str (), gnutarget));
if (dwz_bfd != NULL)
{
- if (!build_id_verify (dwz_bfd.get (), buildid_len, buildid))
+ if (!verify_id (dwz_bfd.get (), buildid_len, buildid.get (), dwarf5))
dwz_bfd.reset (nullptr);
}
if (dwz_bfd == NULL)
- dwz_bfd = build_id_to_debug_bfd (buildid_len, buildid);
+ dwz_bfd = build_id_to_debug_bfd (buildid_len, buildid.get ());
if (dwz_bfd == nullptr)
{
/* If the user has provided us with different
debug file directories, we can try them in order. */
- dwz_bfd = dwz_search_other_debugdirs (filename, buildid, buildid_len);
+ dwz_bfd = dwz_search_other_debugdirs (filename, buildid.get (),
+ buildid_len, dwarf5);
}
if (dwz_bfd == nullptr)
{
gdb::unique_xmalloc_ptr<char> alt_filename;
- const char *origname = bfd_get_filename (per_bfd->obfd);
-
- scoped_fd fd (debuginfod_debuginfo_query (buildid,
- buildid_len,
- origname,
- &alt_filename));
+ scoped_fd fd
+ = debuginfod_debuginfo_query (buildid.get (), buildid_len,
+ per_bfd->filename (), &alt_filename);
if (fd.get () >= 0)
{
@@ -256,41 +381,23 @@ dwarf2_read_dwz_file (dwarf2_per_objfile *per_objfile)
if (dwz_bfd == nullptr)
warning (_("File \"%s\" from debuginfod cannot be opened as bfd"),
alt_filename.get ());
- else if (!build_id_verify (dwz_bfd.get (), buildid_len, buildid))
+ else if (!verify_id (dwz_bfd.get (), buildid_len, buildid.get (),
+ dwarf5))
dwz_bfd.reset (nullptr);
}
}
if (dwz_bfd == NULL)
- error (_("could not find '.gnu_debugaltlink' file for %s"),
- bfd_get_filename (per_bfd->obfd));
+ error (_("could not find supplementary DWARF file (%s) for %s"),
+ filename.c_str (),
+ per_bfd->filename ());
- std::unique_ptr<struct dwz_file> result
- (new struct dwz_file (std::move (dwz_bfd)));
+ dwz_file_up result (new dwz_file (std::move (dwz_bfd)));
- for (asection *sec : gdb_bfd_sections (result->dwz_bfd))
- locate_dwz_sections (per_objfile->objfile, result->dwz_bfd.get (),
- sec, result.get ());
+ locate_dwz_sections (per_objfile->objfile, *result);
gdb_bfd_record_inclusion (per_bfd->obfd, result->dwz_bfd.get ());
bfd_cache_close (result->dwz_bfd.get ());
per_bfd->dwz_file = std::move (result);
}
-
-/* See dwz.h. */
-
-struct dwz_file *
-dwarf2_get_dwz_file (dwarf2_per_bfd *per_bfd, bool require)
-{
- gdb_assert (!require || per_bfd->dwz_file.has_value ());
-
- dwz_file *result = nullptr;
- if (per_bfd->dwz_file.has_value ())
- {
- result = per_bfd->dwz_file->get ();
- if (require && result == nullptr)
- error (_("could not read '.gnu_debugaltlink' section"));
- }
- return result;
-}
diff --git a/gdb/dwarf2/dwz.h b/gdb/dwarf2/dwz.h
index 3ec3af1..372f7e6 100644
--- a/gdb/dwarf2/dwz.h
+++ b/gdb/dwarf2/dwz.h
@@ -1,6 +1,6 @@
/* DWARF DWZ handling for GDB.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -31,10 +31,12 @@ struct dwarf2_per_objfile;
struct dwz_file
{
- dwz_file (gdb_bfd_ref_ptr &&bfd)
- : dwz_bfd (std::move (bfd))
- {
- }
+ /* Open the separate '.dwz' debug file, if needed. This will set
+ the appropriate field in the per-BFD structure. If the DWZ file
+ exists, the relevant sections are read in as well. Throws an
+ exception if the .gnu_debugaltlink or .debug_sup section exists
+ but is invalid or if the file cannot be found. */
+ static void read_dwz_file (dwarf2_per_objfile *per_objfile);
const char *filename () const
{
@@ -56,7 +58,7 @@ struct dwz_file
/* If we loaded the index from an external file, this contains the
resources associated to the open file, memory mapping, etc. */
- std::unique_ptr<index_cache_resource> index_cache_res;
+ index_cache_resource_up index_cache_res;
/* Read a string at offset STR_OFFSET in the .debug_str section from
this dwz file. Throw an error if the offset is too large. If
@@ -64,22 +66,15 @@ struct dwz_file
return a pointer to the string. */
const char *read_string (struct objfile *objfile, LONGEST str_offset);
-};
-
-/* Return the separate '.dwz' debug file. If there is no
- .gnu_debugaltlink section in the file, then the result depends on
- REQUIRE: if REQUIRE is true, then error; if REQUIRE is false,
- return NULL. */
-extern dwz_file *dwarf2_get_dwz_file (dwarf2_per_bfd *per_bfd,
- bool require = false);
+private:
-/* Open the separate '.dwz' debug file, if needed. This just sets the
- appropriate field in the per-BFD structure. If the DWZ file
- exists, the relevant sections are read in as well. Throws an error
- if the .gnu_debugaltlink section exists but the file cannot be
- found. */
+ explicit dwz_file (gdb_bfd_ref_ptr &&bfd)
+ : dwz_bfd (std::move (bfd))
+ {
+ }
+};
-extern void dwarf2_read_dwz_file (dwarf2_per_objfile *per_objfile);
+using dwz_file_up = std::unique_ptr<dwz_file>;
#endif /* GDB_DWARF2_DWZ_H */
diff --git a/gdb/dwarf2/error.h b/gdb/dwarf2/error.h
index f8861f2..432775a 100644
--- a/gdb/dwarf2/error.h
+++ b/gdb/dwarf2/error.h
@@ -1,6 +1,6 @@
/* DWARF error handling utilities.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/dwarf2/expr.c b/gdb/dwarf2/expr.c
index 0977cfc..346bf7f 100644
--- a/gdb/dwarf2/expr.c
+++ b/gdb/dwarf2/expr.c
@@ -1,6 +1,6 @@
/* DWARF 2 Expression Evaluator.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
Contributed by Daniel Berlin (dan@dberlin.org)
@@ -60,7 +60,7 @@ ensure_have_frame (const frame_info_ptr &frame, const char *op_name)
/* Ensure that a PER_CU is defined and throw an exception otherwise. */
static void
-ensure_have_per_cu (dwarf2_per_cu_data *per_cu, const char* op_name)
+ensure_have_per_cu (dwarf2_per_cu *per_cu, const char *op_name)
{
if (per_cu == nullptr)
throw_error (GENERIC_ERROR,
@@ -96,7 +96,7 @@ struct piece_closure
dwarf2_per_objfile *per_objfile = nullptr;
/* The CU from which this closure's expression came. */
- dwarf2_per_cu_data *per_cu = nullptr;
+ dwarf2_per_cu *per_cu = nullptr;
/* The pieces describing this variable. */
std::vector<dwarf_expr_piece> pieces;
@@ -110,8 +110,7 @@ struct piece_closure
PIECES. */
static piece_closure *
-allocate_piece_closure (dwarf2_per_cu_data *per_cu,
- dwarf2_per_objfile *per_objfile,
+allocate_piece_closure (dwarf2_per_cu *per_cu, dwarf2_per_objfile *per_objfile,
std::vector<dwarf_expr_piece> &&pieces,
const frame_info_ptr &frame)
{
@@ -670,8 +669,7 @@ static const struct lval_funcs pieced_value_funcs = {
found at SECT_OFF. */
static value *
-sect_variable_value (sect_offset sect_off,
- dwarf2_per_cu_data *per_cu,
+sect_variable_value (sect_offset sect_off, dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile)
{
const char *var_name = nullptr;
@@ -882,6 +880,34 @@ dwarf_expr_context::read_mem (gdb_byte *buf, CORE_ADDR addr,
/* See expr.h. */
+value *
+dwarf_expr_context::deref (CORE_ADDR addr, int size, struct type *type)
+{
+ gdb_byte *buf = (gdb_byte *) alloca (size);
+ this->read_mem (buf, addr, size);
+
+ if (type == nullptr)
+ type = this->address_type ();
+
+ /* If the size of the object read from memory is different
+ from the type length, we need to zero-extend it. */
+ if (type->length () != size)
+ {
+ gdbarch *arch = this->m_per_objfile->objfile->arch ();
+ bfd_endian byte_order = gdbarch_byte_order (arch);
+ ULONGEST datum
+ = extract_unsigned_integer (buf, size, byte_order);
+
+ buf = (gdb_byte *) alloca (type->length ());
+ store_unsigned_integer (buf, type->length (),
+ byte_order, datum);
+ }
+
+ return value_from_contents_and_address (type, buf, addr);
+}
+
+/* See expr.h. */
+
void
dwarf_expr_context::push_dwarf_reg_entry_value (call_site_parameter_kind kind,
call_site_parameter_u kind_u,
@@ -890,7 +916,7 @@ dwarf_expr_context::push_dwarf_reg_entry_value (call_site_parameter_kind kind,
ensure_have_per_cu (this->m_per_cu, "DW_OP_entry_value");
ensure_have_frame (this->m_frame, "DW_OP_entry_value");
- dwarf2_per_cu_data *caller_per_cu;
+ dwarf2_per_cu *caller_per_cu;
dwarf2_per_objfile *caller_per_objfile;
frame_info_ptr caller_frame = get_prev_frame (this->m_frame);
call_site_parameter *parameter
@@ -1096,7 +1122,8 @@ dwarf_expr_context::fetch_result (struct type *type, struct type *subobj_type,
value *
dwarf_expr_context::evaluate (const gdb_byte *addr, size_t len, bool as_lval,
- dwarf2_per_cu_data *per_cu, const frame_info_ptr &frame,
+ dwarf2_per_cu *per_cu,
+ const frame_info_ptr &frame,
const struct property_addr_info *addr_info,
struct type *type, struct type *subobj_type,
LONGEST subobj_offset)
@@ -1508,6 +1535,27 @@ dwarf_block_to_sp_offset (struct gdbarch *gdbarch, const gdb_byte *buf,
return 1;
}
+/* Return true if, for an expr evaluated in the context of FRAME, we can
+ assume that DW_OP_entry_value (expr) == expr.
+
+ We can assume this right after executing a call, when stopped at the
+ start of the called function, in other words, when:
+ - FRAME is the innermost frame, and
+ - FRAME->pc is the first insn in a function. */
+
+static bool
+trivial_entry_value (frame_info_ptr frame)
+{
+ bool innermost_frame = frame_relative_level (frame) == 0;
+
+ /* Get pc corresponding to frame. Use get_frame_address_in_block to make
+ sure we get a pc in the correct function in the case of tail calls. */
+ CORE_ADDR pc = get_frame_address_in_block (frame);
+ bool at_first_insn = find_function_type (pc) != nullptr;
+
+ return innermost_frame && at_first_insn;
+}
+
/* The engine for the expression evaluator. Using the context in this
object, evaluate the expression between OP_PTR and OP_END. */
@@ -1917,7 +1965,6 @@ dwarf_expr_context::execute_stack_op (const gdb_byte *op_ptr,
case DW_OP_GNU_deref_type:
{
int addr_size = (op == DW_OP_deref ? this->m_addr_size : *op_ptr++);
- gdb_byte *buf = (gdb_byte *) alloca (addr_size);
CORE_ADDR addr = fetch_address (0);
struct type *type;
@@ -1932,21 +1979,7 @@ dwarf_expr_context::execute_stack_op (const gdb_byte *op_ptr,
else
type = address_type;
- this->read_mem (buf, addr, addr_size);
-
- /* If the size of the object read from memory is different
- from the type length, we need to zero-extend it. */
- if (type->length () != addr_size)
- {
- ULONGEST datum =
- extract_unsigned_integer (buf, addr_size, byte_order);
-
- buf = (gdb_byte *) alloca (type->length ());
- store_unsigned_integer (buf, type->length (),
- byte_order, datum);
- }
-
- result_val = value_from_contents_and_address (type, buf, addr);
+ result_val = this->deref (addr, addr_size, type);
break;
}
@@ -2275,6 +2308,17 @@ dwarf_expr_context::execute_stack_op (const gdb_byte *op_ptr,
if (kind_u.dwarf_reg != -1)
{
op_ptr += len;
+
+ if (trivial_entry_value (this->m_frame))
+ {
+ /* We can assume that DW_OP_entry_value (expr) == expr.
+ Handle as DW_OP_regx. */
+ result_val
+ = value_from_ulongest (address_type, kind_u.dwarf_reg);
+ this->m_location = DWARF_VALUE_REGISTER;
+ break;
+ }
+
this->push_dwarf_reg_entry_value (CALL_SITE_PARAMETER_DWARF_REG,
kind_u,
-1 /* deref_size */);
@@ -2289,6 +2333,17 @@ dwarf_expr_context::execute_stack_op (const gdb_byte *op_ptr,
if (deref_size == -1)
deref_size = this->m_addr_size;
op_ptr += len;
+
+ if (trivial_entry_value (this->m_frame))
+ {
+ /* We can assume that DW_OP_entry_value (expr) == expr.
+ Handle as DW_OP_bregx;DW_OP_deref_size. */
+ CORE_ADDR addr
+ = read_addr_from_reg (this->m_frame, kind_u.dwarf_reg);
+ result_val = this->deref (addr, deref_size);
+ break;
+ }
+
this->push_dwarf_reg_entry_value (CALL_SITE_PARAMETER_DWARF_REG,
kind_u, deref_size);
goto no_push;
diff --git a/gdb/dwarf2/expr.h b/gdb/dwarf2/expr.h
index 1b1653e..0129fb9 100644
--- a/gdb/dwarf2/expr.h
+++ b/gdb/dwarf2/expr.h
@@ -1,6 +1,6 @@
/* DWARF 2 Expression Evaluator.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
Contributed by Daniel Berlin <dan@dberlin.org>.
@@ -141,7 +141,7 @@ struct dwarf_expr_context
The ADDR_INFO property can be specified to override the range of
memory addresses with the passed in buffer. */
value *evaluate (const gdb_byte *addr, size_t len, bool as_lval,
- dwarf2_per_cu_data *per_cu, const frame_info_ptr &frame,
+ dwarf2_per_cu *per_cu, const frame_info_ptr &frame,
const struct property_addr_info *addr_info = nullptr,
struct type *type = nullptr,
struct type *subobj_type = nullptr,
@@ -203,7 +203,7 @@ private:
frame_info_ptr m_frame = nullptr;
/* Compilation unit used for the evaluation. */
- dwarf2_per_cu_data *m_per_cu = nullptr;
+ dwarf2_per_cu *m_per_cu = nullptr;
/* Property address info used for the evaluation. */
const struct property_addr_info *m_addr_info = nullptr;
@@ -256,6 +256,10 @@ private:
but with the address being 0. In this situation, we arrange for
memory reads to come from the passed-in buffer. */
void read_mem (gdb_byte *buf, CORE_ADDR addr, size_t length);
+
+ /* Deref ADDR with size SIZE and return a value of type TYPE.
+ If TYPE == nullptr, defaults to this->address_type (). */
+ value *deref (CORE_ADDR addr, int size, struct type *type = nullptr);
};
/* Return the value of register number REG (a DWARF register number),
diff --git a/gdb/dwarf2/file-and-dir.h b/gdb/dwarf2/file-and-dir.h
index a5b1d8a..163479f 100644
--- a/gdb/dwarf2/file-and-dir.h
+++ b/gdb/dwarf2/file-and-dir.h
@@ -1,6 +1,6 @@
/* DWARF file and directory
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
Adapted by Gary Funck (gary@intrepid.com), Intrepid Technology,
Inc. with support from Florida State University (under contract
@@ -126,4 +126,6 @@ private:
gdb::unique_xmalloc_ptr<char> m_fullname;
};
+using file_and_directory_up = std::unique_ptr<file_and_directory>;
+
#endif /* GDB_DWARF2_FILE_AND_DIR_H */
diff --git a/gdb/dwarf2/frame-tailcall.c b/gdb/dwarf2/frame-tailcall.c
index 2d7ab74..6464ffb 100644
--- a/gdb/dwarf2/frame-tailcall.c
+++ b/gdb/dwarf2/frame-tailcall.c
@@ -1,6 +1,6 @@
/* Virtual tail call frames unwinder for GDB.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/dwarf2/frame-tailcall.h b/gdb/dwarf2/frame-tailcall.h
index e830261..b48de22 100644
--- a/gdb/dwarf2/frame-tailcall.h
+++ b/gdb/dwarf2/frame-tailcall.h
@@ -1,6 +1,6 @@
/* Definitions for virtual tail call frames unwinder for GDB.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/dwarf2/frame.c b/gdb/dwarf2/frame.c
index 03e973e..1b4de0d 100644
--- a/gdb/dwarf2/frame.c
+++ b/gdb/dwarf2/frame.c
@@ -1,6 +1,6 @@
/* Frame unwinder for frames with DWARF Call Frame Information.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
Contributed by Mark Kettenis.
@@ -32,6 +32,7 @@
#include "value.h"
#include "record.h"
#include "extract-store-integer.h"
+#include "producer.h"
#include "complaints.h"
#include "dwarf2/frame.h"
@@ -44,7 +45,6 @@
#include "gdbsupport/selftest.h"
#include "selftest-arch.h"
#endif
-#include <unordered_map>
#include <algorithm>
@@ -104,7 +104,7 @@ struct dwarf2_cie
/* The CIE table is used to find CIEs during parsing, but then
discarded. It maps from the CIE's offset to the CIE. */
-typedef std::unordered_map<ULONGEST, dwarf2_cie *> dwarf2_cie_table;
+using dwarf2_cie_table = gdb::unordered_map<ULONGEST, dwarf2_cie *>;
/* Frame Description Entry (FDE). */
@@ -574,7 +574,7 @@ execute_cfa_program_test (struct gdbarch *gdbarch)
SELF_CHECK (fs.regs.prev == NULL);
}
-} // namespace selftests
+} /* namespace selftests */
#endif /* GDB_SELF_TEST */
@@ -772,9 +772,8 @@ dwarf2_frame_find_quirks (struct dwarf2_frame_state *fs,
int
dwarf2_fetch_cfa_info (struct gdbarch *gdbarch, CORE_ADDR pc,
- struct dwarf2_per_cu_data *data,
- int *regnum_out, LONGEST *offset_out,
- CORE_ADDR *text_offset_out,
+ dwarf2_per_cu *data, int *regnum_out,
+ LONGEST *offset_out, CORE_ADDR *text_offset_out,
const gdb_byte **cfa_start_out,
const gdb_byte **cfa_end_out)
{
diff --git a/gdb/dwarf2/frame.h b/gdb/dwarf2/frame.h
index 7ff3190..9357cc1 100644
--- a/gdb/dwarf2/frame.h
+++ b/gdb/dwarf2/frame.h
@@ -1,6 +1,6 @@
/* Frame unwinder for frames with DWARF Call Frame Information.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
Contributed by Mark Kettenis.
@@ -24,7 +24,7 @@
struct gdbarch;
class frame_info_ptr;
-struct dwarf2_per_cu_data;
+struct dwarf2_per_cu;
struct agent_expr;
struct axs_value;
@@ -198,6 +198,15 @@ struct dwarf2_frame_state
bool armcc_cfa_offsets_reversed = false;
};
+/* If DWARF supoprt was requested, create the real prototype for the
+ append_unwinders function. Otherwise, create a fake inline function.
+
+ There is no need to emit a warning for some of these, because they aren't
+ actively reading DWARF when this is called, they're just initializing GDB.
+
+ These should probably be moved to dwarf2/public.h. */
+#if defined(DWARF_FORMAT_AVAILABLE)
+
/* Set the architecture-specific register state initialization
function for GDBARCH to INIT_REG. */
@@ -251,13 +260,12 @@ CORE_ADDR dwarf2_frame_cfa (const frame_info_ptr &this_frame);
in other cases. These are only used when 0 is returned. */
extern int dwarf2_fetch_cfa_info (struct gdbarch *gdbarch, CORE_ADDR pc,
- struct dwarf2_per_cu_data *data,
- int *regnum_out, LONGEST *offset_out,
+ dwarf2_per_cu *data, int *regnum_out,
+ LONGEST *offset_out,
CORE_ADDR *text_offset_out,
const gdb_byte **cfa_start_out,
const gdb_byte **cfa_end_out);
-
/* Allocate a new instance of the function unique data.
The main purpose of this custom function data object is to allow caching the
@@ -288,4 +296,56 @@ extern void *dwarf2_frame_get_fn_data (const frame_info_ptr &this_frame,
void **this_cache,
fn_prev_register cookie);
+#else /* DWARF_FORMAT_AVAILABLE */
+
+static inline void dwarf2_append_unwinders (struct gdbarch *gdbarch) { }
+
+static inline void dwarf2_frame_set_init_reg (
+ gdbarch *gdbarch, void (*init_reg) (struct gdbarch *,int,
+ dwarf2_frame_state_reg *,
+ const frame_info_ptr &)) { }
+
+static inline const struct frame_base *
+ dwarf2_frame_base_sniffer (const frame_info_ptr &this_frame)
+{
+ warning (_("No dwarf support available."));
+ return nullptr;
+}
+
+static inline void dwarf2_frame_set_signal_frame_p
+ (gdbarch *gdbarch, int (*signal_frame_p) (struct gdbarch *,
+ const frame_info_ptr &)) { }
+
+static inline void *dwarf2_frame_get_fn_data (const frame_info_ptr &this_frame,
+ void **this_cache,
+ fn_prev_register cookie)
+{
+ return nullptr;
+}
+
+static inline void *dwarf2_frame_allocate_fn_data
+ (const frame_info_ptr &this_frame, void **this_cache,
+ fn_prev_register cookie, unsigned long size)
+{
+ return nullptr;
+}
+
+static inline int dwarf2_fetch_cfa_info (struct gdbarch *gdbarch, CORE_ADDR pc,
+ struct dwarf2_per_cu_data *data,
+ int *regnum_out, LONGEST *offset_out,
+ CORE_ADDR *text_offset_out,
+ const gdb_byte **cfa_start_out,
+ const gdb_byte **cfa_end_out)
+{
+ return 0;
+}
+
+static inline void
+ dwarf2_frame_set_adjust_regnum (struct gdbarch *gdbarch,
+ int (*adjust_regnum) (struct gdbarch *,
+ int, int))
+{}
+
+#endif /* DWARF_FORMAT_AVAILABLE */
+
#endif /* GDB_DWARF2_FRAME_H */
diff --git a/gdb/dwarf2/index-cache.c b/gdb/dwarf2/index-cache.c
index 4e1aaa0..1715beb 100644
--- a/gdb/dwarf2/index-cache.c
+++ b/gdb/dwarf2/index-cache.c
@@ -1,6 +1,6 @@
/* Caching of GDB/DWARF index files.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -103,15 +103,14 @@ index_cache_store_context::index_cache_store_context (const index_cache &ic,
const bfd_build_id *build_id = build_id_bfd_get (per_bfd->obfd);
if (build_id == nullptr)
{
- index_cache_debug ("objfile %s has no build id",
- bfd_get_filename (per_bfd->obfd));
+ index_cache_debug ("objfile %s has no build id", per_bfd->filename ());
m_enabled = false;
return;
}
m_build_id_str = build_id_to_string (build_id);
/* Get build id of dwz file, if present. */
- const dwz_file *dwz = dwarf2_get_dwz_file (per_bfd);
+ const dwz_file *dwz = per_bfd->get_dwz_file ();
if (dwz != nullptr)
{
@@ -149,7 +148,7 @@ index_cache_store_context::index_cache_store_context (const index_cache &ic,
catch (const gdb_exception_error &except)
{
index_cache_debug ("couldn't store index cache for objfile %s: %s",
- bfd_get_filename (per_bfd->obfd), except.what ());
+ per_bfd->filename (), except.what ());
m_enabled = false;
}
}
@@ -169,7 +168,7 @@ index_cache_store_context::store () const
try
{
index_cache_debug ("writing index cache for objfile %s",
- bfd_get_filename (m_per_bfd->obfd));
+ m_per_bfd->filename ());
/* Write the index itself to the directory, using the build id as the
filename. */
@@ -180,7 +179,7 @@ index_cache_store_context::store () const
catch (const gdb_exception_error &except)
{
index_cache_debug ("couldn't store index cache for objfile %s: %s",
- bfd_get_filename (m_per_bfd->obfd), except.what ());
+ m_per_bfd->filename (), except.what ());
}
}
@@ -203,7 +202,7 @@ struct index_cache_resource_mmap final : public index_cache_resource
gdb::array_view<const gdb_byte>
index_cache::lookup_gdb_index (const bfd_build_id *build_id,
- std::unique_ptr<index_cache_resource> *resource)
+ index_cache_resource_up *resource)
{
if (!enabled ())
return {};
@@ -249,7 +248,7 @@ index_cache::lookup_gdb_index (const bfd_build_id *build_id,
gdb::array_view<const gdb_byte>
index_cache::lookup_gdb_index (const bfd_build_id *build_id,
- std::unique_ptr<index_cache_resource> *resource)
+ index_cache_resource_up *resource)
{
return {};
}
diff --git a/gdb/dwarf2/index-cache.h b/gdb/dwarf2/index-cache.h
index 94c4413..19fa6ef 100644
--- a/gdb/dwarf2/index-cache.h
+++ b/gdb/dwarf2/index-cache.h
@@ -1,6 +1,6 @@
/* Caching of GDB/DWARF index files.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -33,6 +33,8 @@ struct index_cache_resource
virtual ~index_cache_resource () = 0;
};
+using index_cache_resource_up = std::unique_ptr<index_cache_resource>;
+
/* Information to be captured in the main thread, and to be used by worker
threads during store (). */
@@ -89,7 +91,7 @@ public:
If no matching index file is found, return an empty array view. */
gdb::array_view<const gdb_byte>
lookup_gdb_index (const bfd_build_id *build_id,
- std::unique_ptr<index_cache_resource> *resource);
+ index_cache_resource_up *resource);
/* Return the number of cache hits. */
unsigned int n_hits () const
diff --git a/gdb/dwarf2/index-common.c b/gdb/dwarf2/index-common.c
index 08b2f37..c24c8fc 100644
--- a/gdb/dwarf2/index-common.c
+++ b/gdb/dwarf2/index-common.c
@@ -1,6 +1,6 @@
/* Things needed for both reading and writing DWARF indices.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/dwarf2/index-common.h b/gdb/dwarf2/index-common.h
index ca37721..ae060d8 100644
--- a/gdb/dwarf2/index-common.h
+++ b/gdb/dwarf2/index-common.h
@@ -1,6 +1,6 @@
/* Things needed for both reading and writing DWARF indices.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/dwarf2/index-write.c b/gdb/dwarf2/index-write.c
index e82d38a..614bdcd 100644
--- a/gdb/dwarf2/index-write.c
+++ b/gdb/dwarf2/index-write.c
@@ -1,6 +1,6 @@
/* DWARF index writing support for GDB.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -43,8 +43,6 @@
#include <algorithm>
#include <map>
-#include <unordered_map>
-#include <unordered_set>
/* Ensure only legit values are used. */
#define DW2_GDB_INDEX_SYMBOL_STATIC_SET_VALUE(cu_index, value) \
@@ -130,6 +128,15 @@ public:
::store_unsigned_integer (grow (len), len, byte_order, val);
}
+ /* Accept a host-format integer in VAL and write it in the buffer at offset
+ OFFSET as a target-format integer which is LEN bytes long. */
+ void write_uint (size_t offset, size_t len, bfd_endian byte_order,
+ ULONGEST val)
+ {
+ gdb_assert (offset + len <= m_vec.size ());
+ ::store_unsigned_integer (&m_vec[offset], len, byte_order, val);
+ }
+
/* Copy VALUE to the end of the buffer, little-endian. */
void append_offset (offset_type value)
{
@@ -305,7 +312,8 @@ mapped_symtab::hash_expand ()
/* See mapped_symtab class declaration. */
-void mapped_symtab::sort ()
+void
+mapped_symtab::sort ()
{
/* Move contents out of this->data vector. */
std::vector<symtab_index_entry> original_data = std::move (m_data);
@@ -423,7 +431,7 @@ symtab_index_entry::minimize ()
this, we want to keep the entry from the first CU -- but this is
implicit due to the sort. This choice is done because it's
similar to what gdb historically did for partial symbols. */
- std::unordered_set<offset_type> seen;
+ gdb::unordered_set<offset_type> seen;
from = std::remove_if (cu_indices.begin (), cu_indices.end (),
[&] (offset_type val)
{
@@ -469,7 +477,7 @@ private:
const char *const m_cstr;
};
-/* A std::unordered_map::hasher for c_str_view that uses the right
+/* A gdb::unordered_map::hasher for c_str_view that uses the right
hash function for strings in a mapped index. */
class c_str_view_hasher
{
@@ -480,7 +488,7 @@ public:
}
};
-/* A std::unordered_map::hasher for std::vector<>. */
+/* A gdb::unordered_map::hasher for std::vector<>. */
template<typename T>
class vector_hasher
{
@@ -501,7 +509,7 @@ write_hash_table (mapped_symtab *symtab, data_buf &output, data_buf &cpool)
{
/* Elements are sorted vectors of the indices of all the CUs that
hold an object of this name. */
- std::unordered_map<std::vector<offset_type>, offset_type,
+ gdb::unordered_map<std::vector<offset_type>, offset_type,
vector_hasher<offset_type>>
symbol_hash_table;
@@ -528,7 +536,7 @@ write_hash_table (mapped_symtab *symtab, data_buf &output, data_buf &cpool)
}
/* Now write out the hash table. */
- std::unordered_map<c_str_view, offset_type, c_str_view_hasher> str_table;
+ gdb::unordered_map<c_str_view, offset_type, c_str_view_hasher> str_table;
for (const auto &entry : *symtab)
{
offset_type str_off, vec_off;
@@ -554,8 +562,7 @@ write_hash_table (mapped_symtab *symtab, data_buf &output, data_buf &cpool)
}
}
-using cu_index_map
- = std::unordered_map<const dwarf2_per_cu_data *, unsigned int>;
+using cu_index_map = gdb::unordered_map<const dwarf2_per_cu *, unsigned int>;
/* Helper struct for building the address table. */
struct addrmap_index_data
@@ -596,8 +603,7 @@ add_address_entry (data_buf &addr_vec,
int
addrmap_index_data::operator() (CORE_ADDR start_addr, const void *obj)
{
- const dwarf2_per_cu_data *per_cu
- = static_cast<const dwarf2_per_cu_data *> (obj);
+ const dwarf2_per_cu *per_cu = static_cast<const dwarf2_per_cu *> (obj);
if (previous_valid)
add_address_entry (addr_vec,
@@ -670,15 +676,11 @@ public:
/* Insert one symbol. */
void insert (const cooked_index_entry *entry)
{
- /* These entries are synthesized by the reader, and so should not
- be written. */
- if (entry->lang == language_ada && entry->tag == DW_TAG_namespace)
+ /* Synthesized entries should not be written. */
+ if ((entry->flags & IS_SYNTHESIZED) != 0)
return;
- const auto insertpair
- = m_name_to_value_set.try_emplace (c_str_view (entry->name));
- entry_list &elist = insertpair.first->second;
- elist.entries.push_back (entry);
+ m_name_to_value_set[entry->name].emplace_back (entry);
}
/* Build all the tables. All symbols must be already inserted.
@@ -692,25 +694,16 @@ public:
m_name_table_string_offs.reserve (name_count);
m_name_table_entry_offs.reserve (name_count);
- /* The name table is indexed from 1. The numbers are needed here
- so that parent entries can be handled correctly. */
- int next_name = 1;
- for (auto &item : m_name_to_value_set)
- item.second.index = next_name++;
-
/* The next available abbrev number. */
int next_abbrev = 1;
- for (auto &item : m_name_to_value_set)
+ for (auto &[name, these_entries] : m_name_to_value_set)
{
- const c_str_view &name = item.first;
- entry_list &these_entries = item.second;
-
/* Sort the items within each bucket. This ensures that the
generated index files will be the same no matter the order in
which symbols were added into the index. */
- std::sort (these_entries.entries.begin (),
- these_entries.entries.end (),
+ std::sort (these_entries.begin (),
+ these_entries.end (),
[] (const cooked_index_entry *a,
const cooked_index_entry *b)
{
@@ -730,16 +723,16 @@ public:
(m_debugstrlookup.lookup (name.c_str ())); /* ??? */
m_name_table_entry_offs.push_back_reorder (m_entry_pool.size ());
- for (const cooked_index_entry *entry : these_entries.entries)
+ for (const cooked_index_entry *entry : these_entries)
{
unit_kind kind = (entry->per_cu->is_debug_types
? unit_kind::tu
: unit_kind::cu);
- /* Currently Ada parentage is synthesized by the
- reader and so must be ignored here. */
- const cooked_index_entry *parent = (entry->lang == language_ada
- ? nullptr
- : entry->get_parent ());
+ /* Some Ada parentage is synthesized by the reader and so
+ must be ignored here. */
+ const cooked_index_entry *parent = entry->get_parent ();
+ if (parent != nullptr && (parent->flags & IS_SYNTHESIZED) != 0)
+ parent = nullptr;
int &idx = m_indexkey_to_idx[index_key (entry->tag,
kind,
@@ -760,7 +753,8 @@ public:
m_abbrev_table.append_unsigned_leb128 (DW_FORM_ref_addr);
m_abbrev_table.append_unsigned_leb128 (DW_IDX_GNU_language);
m_abbrev_table.append_unsigned_leb128 (DW_FORM_udata);
- if ((entry->flags & IS_STATIC) != 0)
+ if (!tag_is_type (entry->tag)
+ && (entry->flags & IS_STATIC) != 0)
{
m_abbrev_table.append_unsigned_leb128 (DW_IDX_GNU_internal);
m_abbrev_table.append_unsigned_leb128 (DW_FORM_flag_present);
@@ -778,7 +772,7 @@ public:
if (parent != nullptr)
{
m_abbrev_table.append_unsigned_leb128 (DW_IDX_parent);
- m_abbrev_table.append_unsigned_leb128 (DW_FORM_udata);
+ m_abbrev_table.append_unsigned_leb128 (DW_FORM_data4);
}
/* Terminate attributes list. */
@@ -786,6 +780,14 @@ public:
m_abbrev_table.append_unsigned_leb128 (0);
}
+ /* Record the offset in the pool at which this entry will
+ reside. */
+ const auto offset_inserted
+ = (m_entry_pool_offsets.emplace (entry, m_entry_pool.size ())
+ .second);
+ gdb_assert (offset_inserted);
+
+ /* Write the entry to the pool. */
m_entry_pool.append_unsigned_leb128 (idx);
const auto it = m_cu_index_htab.find (entry->per_cu);
@@ -800,11 +802,11 @@ public:
if (parent != nullptr)
{
- c_str_view par_name (parent->name);
- auto name_iter = m_name_to_value_set.find (par_name);
- gdb_assert (name_iter != m_name_to_value_set.end ());
- gdb_assert (name_iter->second.index != 0);
- m_entry_pool.append_unsigned_leb128 (name_iter->second.index);
+ m_offsets_to_patch.emplace_back (m_entry_pool.size (), parent);
+
+ /* Write a dummy number, this gets patched later. */
+ m_entry_pool.append_uint (4, m_dwarf5_byte_order,
+ 0xfafafafa);
}
}
@@ -814,6 +816,15 @@ public:
/* Terminate tags list. */
m_abbrev_table.append_unsigned_leb128 (0);
+
+ /* Write the parent offset values. */
+ for (const auto &[reloc_offset, parent] : m_offsets_to_patch)
+ {
+ const auto parent_offset_it = m_entry_pool_offsets.find (parent);
+ gdb_assert (parent_offset_it != m_entry_pool_offsets.cend ());
+ m_entry_pool.write_uint (reloc_offset, 4, m_dwarf5_byte_order,
+ parent_offset_it->second);
+ }
}
/* Return .debug_names names count. This must be called only after
@@ -861,7 +872,7 @@ public:
m_debugstrlookup.file_write (file_str);
}
- void add_cu (dwarf2_per_cu_data *per_cu, offset_type index)
+ void add_cu (dwarf2_per_cu *per_cu, offset_type index)
{
m_cu_index_htab.emplace (per_cu, index);
}
@@ -876,8 +887,7 @@ private:
/* Object constructor to be called for current DWARF2_PER_BFD. */
debug_str_lookup (dwarf2_per_bfd *per_bfd)
- : m_abfd (per_bfd->obfd),
- m_per_bfd (per_bfd)
+ : m_per_bfd (per_bfd)
{
}
@@ -910,8 +920,7 @@ private:
}
private:
- std::unordered_map<c_str_view, size_t, c_str_view_hasher> m_str_table;
- bfd *const m_abfd;
+ gdb::unordered_map<c_str_view, size_t, c_str_view_hasher> m_str_table;
dwarf2_per_bfd *m_per_bfd;
/* Data to add at the end of .debug_str for new needed symbol names. */
@@ -949,7 +958,7 @@ private:
const bool has_parent;
};
- /* Provide std::unordered_map::hasher for index_key. */
+ /* Provide gdb::unordered_map::hasher for index_key. */
class index_key_hasher
{
public:
@@ -1059,15 +1068,26 @@ private:
offset_vec_tmpl<OffsetSize> m_name_table_entry_offs;
};
- struct entry_list
- {
- unsigned index = 0;
- std::vector<const cooked_index_entry *> entries;
- };
+ /* Store the index entries for each name.
+
+ Note that we rely on the sorting behavior of map to make the output
+ stable. */
+ std::map<c_str_view, std::vector<const cooked_index_entry *>>
+ m_name_to_value_set;
+
+ /* Offset at which each entry is written in the entry pool. */
+ gdb::unordered_map<const cooked_index_entry *, offset_type>
+ m_entry_pool_offsets;
- /* Store value of each symbol. Note that we rely on the sorting
- behavior of map to make the output stable. */
- std::map<c_str_view, entry_list> m_name_to_value_set;
+ /* The locations where we need to patch offset to entries.
+
+ The first element of the pair is the offset into the pool that needs to
+ be patched.
+
+ The second element is the entry the offset to which needs to be
+ patched in. */
+ std::vector<std::pair<offset_type, const cooked_index_entry *>>
+ m_offsets_to_patch;
const bfd_endian m_dwarf5_byte_order;
dwarf_tmpl<uint32_t> m_dwarf32;
@@ -1078,7 +1098,7 @@ private:
/* Map each used .debug_names abbreviation tag parameter to its
index value. */
- std::unordered_map<index_key, int, index_key_hasher> m_indexkey_to_idx;
+ gdb::unordered_map<index_key, int, index_key_hasher> m_indexkey_to_idx;
/* .debug_names abbreviation table. */
data_buf m_abbrev_table;
@@ -1258,7 +1278,7 @@ write_shortcuts_table (cooked_index *table, data_buf &shortcuts,
if (dw_lang != 0)
{
auto_obstack obstack;
- const auto main_name = main_info->full_name (&obstack, true);
+ const auto main_name = main_info->full_name (&obstack, FOR_MAIN);
main_name_offset = cpool.size ();
cpool.append_cstr0 (main_name);
@@ -1282,10 +1302,9 @@ write_gdbindex (dwarf2_per_bfd *per_bfd, cooked_index *table,
data_buf objfile_cu_list;
data_buf dwz_cu_list;
- /* While we're scanning CU's create a table that maps a dwarf2_per_cu_data
- (which is what addrmap records) to its index (which is what is recorded
- in the index file). This will later be needed to write the address
- table. */
+ /* While we're scanning CU's create a table that maps a dwarf2_per_cu (which
+ is what addrmap records) to its index (which is what is recorded in the
+ index file). This will later be needed to write the address table. */
cu_index_map cu_index_htab;
cu_index_htab.reserve (per_bfd->all_units.size ());
@@ -1296,11 +1315,9 @@ write_gdbindex (dwarf2_per_bfd *per_bfd, cooked_index *table,
work here. */
int counter = 0;
- for (int i = 0; i < per_bfd->all_units.size (); ++i)
+ for (const dwarf2_per_cu_up &per_cu : per_bfd->all_units)
{
- dwarf2_per_cu_data *per_cu = per_bfd->all_units[i].get ();
-
- const auto insertpair = cu_index_htab.emplace (per_cu, counter);
+ const auto insertpair = cu_index_htab.emplace (per_cu.get (), counter);
gdb_assert (insertpair.second);
/* See enhancement PR symtab/30838. */
@@ -1316,7 +1333,7 @@ write_gdbindex (dwarf2_per_bfd *per_bfd, cooked_index *table,
to_underlying (per_cu->sect_off));
if (per_cu->is_debug_types)
{
- signatured_type *sig_type = (signatured_type *) per_cu;
+ signatured_type *sig_type = (signatured_type *) per_cu.get ();
cu_list.append_uint (8, BFD_ENDIAN_LITTLE,
to_underlying (sig_type->type_offset_in_tu));
cu_list.append_uint (8, BFD_ENDIAN_LITTLE,
@@ -1333,7 +1350,8 @@ write_gdbindex (dwarf2_per_bfd *per_bfd, cooked_index *table,
/* Dump the address map. */
data_buf addr_vec;
for (auto map : table->get_addrmaps ())
- write_address_map (map, addr_vec, cu_index_htab);
+ if (map != nullptr)
+ write_address_map (map, addr_vec, cu_index_htab);
/* Ensure symbol hash is built domestically. */
symtab.sort ();
@@ -1378,14 +1396,12 @@ write_debug_names (dwarf2_per_bfd *per_bfd, cooked_index *table,
debug_names nametable (per_bfd, dwarf5_is_dwarf64, dwarf5_byte_order);
int counter = 0;
int types_counter = 0;
- for (int i = 0; i < per_bfd->all_units.size (); ++i)
+ for (const dwarf2_per_cu_up &per_cu : per_bfd->all_units)
{
- dwarf2_per_cu_data *per_cu = per_bfd->all_units[i].get ();
-
int &this_counter = per_cu->is_debug_types ? types_counter : counter;
data_buf &this_list = per_cu->is_debug_types ? types_cu_list : cu_list;
- nametable.add_cu (per_cu, this_counter);
+ nametable.add_cu (per_cu.get (), this_counter);
this_list.append_uint (nametable.dwarf5_offset_size (),
dwarf5_byte_order,
to_underlying (per_cu->sect_off));
@@ -1406,7 +1422,7 @@ write_debug_names (dwarf2_per_bfd *per_bfd, cooked_index *table,
const offset_type bytes_of_header
= ((dwarf5_is_dwarf64 ? 12 : 4)
+ 2 + 2 + 7 * 4
- + sizeof (dwarf5_augmentation));
+ + sizeof (dwarf5_augmentation_3));
size_t expected_bytes = 0;
expected_bytes += bytes_of_header;
expected_bytes += cu_list.size ();
@@ -1458,9 +1474,9 @@ write_debug_names (dwarf2_per_bfd *per_bfd, cooked_index *table,
/* augmentation_string_size - The size in bytes of the augmentation
string. This value is rounded up to a multiple of 4. */
- static_assert (sizeof (dwarf5_augmentation) % 4 == 0);
- header.append_uint (4, dwarf5_byte_order, sizeof (dwarf5_augmentation));
- header.append_array (dwarf5_augmentation);
+ static_assert (sizeof (dwarf5_augmentation_3) % 4 == 0);
+ header.append_uint (4, dwarf5_byte_order, sizeof (dwarf5_augmentation_3));
+ header.append_array (dwarf5_augmentation_3);
gdb_assert (header.size () == bytes_of_header);
@@ -1658,7 +1674,7 @@ save_gdb_index_command (const char *args, int from_tty)
try
{
const char *basename = lbasename (objfile_name (objfile));
- const dwz_file *dwz = dwarf2_get_dwz_file (per_objfile->per_bfd);
+ const dwz_file *dwz = per_objfile->per_bfd->get_dwz_file ();
const char *dwz_basename = NULL;
if (dwz != NULL)
diff --git a/gdb/dwarf2/index-write.h b/gdb/dwarf2/index-write.h
index 1982e85..e4ac812 100644
--- a/gdb/dwarf2/index-write.h
+++ b/gdb/dwarf2/index-write.h
@@ -1,6 +1,6 @@
/* DWARF index writing support for GDB.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/dwarf2/leb.c b/gdb/dwarf2/leb.c
index 1b7202e..4ccee5a 100644
--- a/gdb/dwarf2/leb.c
+++ b/gdb/dwarf2/leb.c
@@ -1,6 +1,6 @@
/* Low-level DWARF 2 reading code
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
Adapted by Gary Funck (gary@intrepid.com), Intrepid Technology,
Inc. with support from Florida State University (under contract
diff --git a/gdb/dwarf2/leb.h b/gdb/dwarf2/leb.h
index 36582b4..4c1ac4b 100644
--- a/gdb/dwarf2/leb.h
+++ b/gdb/dwarf2/leb.h
@@ -1,6 +1,6 @@
/* Low-level DWARF 2 reading code
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
Adapted by Gary Funck (gary@intrepid.com), Intrepid Technology,
Inc. with support from Florida State University (under contract
diff --git a/gdb/dwarf2/line-header.c b/gdb/dwarf2/line-header.c
index eddb2ef..4652306 100644
--- a/gdb/dwarf2/line-header.c
+++ b/gdb/dwarf2/line-header.c
@@ -1,6 +1,6 @@
/* DWARF 2 debugging format support for GDB.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -17,7 +17,7 @@
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 "dwarf2/comp-unit-head.h"
+#include "dwarf2/unit-head.h"
#include "dwarf2/leb.h"
#include "dwarf2/line-header.h"
#include "dwarf2/read.h"
@@ -95,7 +95,7 @@ dwarf2_statement_list_fits_in_line_number_section_complaint (void)
static LONGEST
read_checked_initial_length_and_offset (bfd *abfd, const gdb_byte *buf,
- const struct comp_unit_head *cu_header,
+ const struct unit_head *cu_header,
unsigned int *bytes_read,
unsigned int *offset_size)
{
@@ -253,11 +253,10 @@ read_formatted_entries (dwarf2_per_objfile *per_objfile, bfd *abfd,
/* See line-header.h. */
line_header_up
-dwarf_decode_line_header (sect_offset sect_off, bool is_dwz,
- dwarf2_per_objfile *per_objfile,
- struct dwarf2_section_info *section,
- const struct comp_unit_head *cu_header,
- const char *comp_dir)
+dwarf_decode_line_header (sect_offset sect_off, bool is_dwz,
+ dwarf2_per_objfile *per_objfile,
+ struct dwarf2_section_info *section,
+ const unit_head *cu_header, const char *comp_dir)
{
const gdb_byte *line_ptr;
unsigned int bytes_read, offset_size;
diff --git a/gdb/dwarf2/line-header.h b/gdb/dwarf2/line-header.h
index 30809f6..e6f9ea9 100644
--- a/gdb/dwarf2/line-header.h
+++ b/gdb/dwarf2/line-header.h
@@ -1,6 +1,6 @@
/* DWARF 2 debugging format support for GDB.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -200,7 +200,7 @@ struct line_header
const char *m_comp_dir = nullptr;
};
-typedef std::unique_ptr<line_header> line_header_up;
+using line_header_up = std::unique_ptr<line_header>;
inline const char *
file_entry::include_dir (const line_header *lh) const
@@ -218,7 +218,7 @@ file_entry::include_dir (const line_header *lh) const
extern line_header_up dwarf_decode_line_header
(sect_offset sect_off, bool is_dwz, dwarf2_per_objfile *per_objfile,
- struct dwarf2_section_info *section, const struct comp_unit_head *cu_header,
+ struct dwarf2_section_info *section, const struct unit_head *cu_header,
const char *comp_dir);
#endif /* GDB_DWARF2_LINE_HEADER_H */
diff --git a/gdb/dwarf2/loc.c b/gdb/dwarf2/loc.c
index a01161e..dee6127 100644
--- a/gdb/dwarf2/loc.c
+++ b/gdb/dwarf2/loc.c
@@ -1,6 +1,6 @@
/* DWARF 2 location expression support for GDB.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
Contributed by Daniel Jacobowitz, MontaVista Software, Inc.
@@ -43,14 +43,13 @@
#include "compile/compile.h"
#include <algorithm>
#include <vector>
-#include <unordered_set>
#include "gdbsupport/underlying.h"
#include "gdbsupport/byte-vector.h"
#include "extract-store-integer.h"
static struct value *dwarf2_evaluate_loc_desc_full
(struct type *type, const frame_info_ptr &frame, const gdb_byte *data,
- size_t size, dwarf2_per_cu_data *per_cu, dwarf2_per_objfile *per_objfile,
+ size_t size, dwarf2_per_cu *per_cu, dwarf2_per_objfile *per_objfile,
struct type *subobj_type, LONGEST subobj_byte_offset, bool as_lval = true);
/* Until these have formal names, we define these here.
@@ -154,7 +153,7 @@ decode_debug_loc_addresses (const gdb_byte *loc_ptr, const gdb_byte *buf_end,
The result indicates the kind of entry found. */
static enum debug_loc_kind
-decode_debug_loclists_addresses (dwarf2_per_cu_data *per_cu,
+decode_debug_loclists_addresses (dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile,
const gdb_byte *loc_ptr,
const gdb_byte *buf_end,
@@ -289,7 +288,7 @@ decode_debug_loclists_addresses (dwarf2_per_cu_data *per_cu,
The result indicates the kind of entry found. */
static enum debug_loc_kind
-decode_debug_loc_dwo_addresses (dwarf2_per_cu_data *per_cu,
+decode_debug_loc_dwo_addresses (dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile,
const gdb_byte *loc_ptr,
const gdb_byte *buf_end,
@@ -389,12 +388,12 @@ dwarf2_find_location_expression (const dwarf2_loclist_baton *baton,
enum debug_loc_kind kind;
const gdb_byte *new_ptr = NULL; /* init for gcc -Wall */
- if (baton->per_cu->version () < 5 && baton->from_dwo)
+ if (baton->dwarf_version < 5 && baton->from_dwo)
kind = decode_debug_loc_dwo_addresses (baton->per_cu,
baton->per_objfile,
loc_ptr, buf_end, &new_ptr,
&low, &high, byte_order);
- else if (baton->per_cu->version () < 5)
+ else if (baton->dwarf_version < 5)
kind = decode_debug_loc_addresses (loc_ptr, buf_end, &new_ptr,
&low, &high,
byte_order, addr_size,
@@ -445,7 +444,7 @@ dwarf2_find_location_expression (const dwarf2_loclist_baton *baton,
high = (unrelocated_addr) ((CORE_ADDR) high + (CORE_ADDR) base_address);
}
- if (baton->per_cu->version () < 5)
+ if (baton->dwarf_version < 5)
{
length = extract_unsigned_integer (loc_ptr, 2, byte_order);
loc_ptr += 2;
@@ -795,7 +794,7 @@ func_verify_no_selftailcall (struct gdbarch *gdbarch, CORE_ADDR verify_addr)
std::vector<CORE_ADDR> todo;
/* Track here CORE_ADDRs which were already visited. */
- std::unordered_set<CORE_ADDR> addr_hash;
+ gdb::unordered_set<CORE_ADDR> addr_hash;
todo.push_back (verify_addr);
while (!todo.empty ())
@@ -964,7 +963,7 @@ call_site_find_chain_2
(struct gdbarch *gdbarch,
gdb::unique_xmalloc_ptr<struct call_site_chain> *resultp,
std::vector<struct call_site *> &chain,
- std::unordered_set<CORE_ADDR> &addr_hash,
+ gdb::unordered_set<CORE_ADDR> &addr_hash,
struct call_site *call_site,
CORE_ADDR callee_pc)
{
@@ -1047,7 +1046,7 @@ call_site_find_chain_1 (struct gdbarch *gdbarch, CORE_ADDR caller_pc,
paddress (gdbarch, save_callee_pc));
/* Mark CALL_SITEs so we do not visit the same ones twice. */
- std::unordered_set<CORE_ADDR> addr_hash;
+ gdb::unordered_set<CORE_ADDR> addr_hash;
/* Do not push CALL_SITE to CHAIN. Push there only the first tail call site
at the target's function. All the possible tail call sites in the
@@ -1138,7 +1137,7 @@ struct call_site_parameter *
dwarf_expr_reg_to_entry_parameter (const frame_info_ptr &initial_frame,
call_site_parameter_kind kind,
call_site_parameter_u kind_u,
- dwarf2_per_cu_data **per_cu_return,
+ dwarf2_per_cu **per_cu_return,
dwarf2_per_objfile **per_objfile_return)
{
CORE_ADDR func_addr, caller_pc;
@@ -1260,7 +1259,7 @@ static struct value *
dwarf_entry_parameter_to_value (struct call_site_parameter *parameter,
CORE_ADDR deref_size, struct type *type,
const frame_info_ptr &caller_frame,
- dwarf2_per_cu_data *per_cu,
+ dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile)
{
const gdb_byte *data_src;
@@ -1344,7 +1343,7 @@ value_of_dwarf_reg_entry (struct type *type, const frame_info_ptr &frame,
frame_info_ptr caller_frame = get_prev_frame (frame);
struct value *outer_val, *target_val, *val;
struct call_site_parameter *parameter;
- dwarf2_per_cu_data *caller_per_cu;
+ dwarf2_per_cu *caller_per_cu;
dwarf2_per_objfile *caller_per_objfile;
parameter = dwarf_expr_reg_to_entry_parameter (frame, kind, kind_u,
@@ -1417,7 +1416,7 @@ value_of_dwarf_block_entry (struct type *type, const frame_info_ptr &frame,
static struct value *
fetch_const_value_from_synthetic_pointer (sect_offset die, LONGEST byte_offset,
- dwarf2_per_cu_data *per_cu,
+ dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile,
struct type *type)
{
@@ -1450,7 +1449,7 @@ fetch_const_value_from_synthetic_pointer (sect_offset die, LONGEST byte_offset,
struct value *
indirect_synthetic_pointer (sect_offset die, LONGEST byte_offset,
- dwarf2_per_cu_data *per_cu,
+ dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile,
const frame_info_ptr &frame, struct type *type,
bool resolve_abstract_p)
@@ -1494,7 +1493,7 @@ indirect_synthetic_pointer (sect_offset die, LONGEST byte_offset,
static struct value *
dwarf2_evaluate_loc_desc_full (struct type *type, const frame_info_ptr &frame,
const gdb_byte *data, size_t size,
- dwarf2_per_cu_data *per_cu,
+ dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile,
struct type *subobj_type,
LONGEST subobj_byte_offset,
@@ -1559,7 +1558,7 @@ dwarf2_evaluate_loc_desc_full (struct type *type, const frame_info_ptr &frame,
struct value *
dwarf2_evaluate_loc_desc (struct type *type, const frame_info_ptr &frame,
const gdb_byte *data, size_t size,
- dwarf2_per_cu_data *per_cu,
+ dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile, bool as_lval)
{
return dwarf2_evaluate_loc_desc_full (type, frame, data, size, per_cu,
@@ -1590,7 +1589,7 @@ dwarf2_locexpr_baton_eval (const struct dwarf2_locexpr_baton *dlbaton,
return 0;
dwarf2_per_objfile *per_objfile = dlbaton->per_objfile;
- dwarf2_per_cu_data *per_cu = dlbaton->per_cu;
+ dwarf2_per_cu *per_cu = dlbaton->per_cu;
dwarf_expr_context ctx (per_objfile, per_cu->addr_size ());
value *result;
@@ -1733,11 +1732,10 @@ dwarf2_evaluate_property (const dynamic_prop *prop,
*value = prop->const_val ();
return true;
- case PROP_ADDR_OFFSET:
+ case PROP_FIELD:
{
const dwarf2_property_baton *baton = prop->baton ();
const struct property_addr_info *pinfo;
- struct value *val;
for (pinfo = addr_stack; pinfo != NULL; pinfo = pinfo->next)
{
@@ -1748,14 +1746,40 @@ dwarf2_evaluate_property (const dynamic_prop *prop,
}
if (pinfo == NULL)
error (_("cannot find reference address for offset property"));
- if (pinfo->valaddr.data () != NULL)
- val = value_from_contents
- (baton->offset_info.type,
- pinfo->valaddr.data () + baton->offset_info.offset);
- else
- val = value_at (baton->offset_info.type,
- pinfo->addr + baton->offset_info.offset);
- *value = value_as_address (val);
+
+ struct field resolved_field = baton->field;
+ resolve_dynamic_field (resolved_field, pinfo, initial_frame);
+
+ /* Storage for memory if we need to read it. */
+ gdb::byte_vector memory;
+ const gdb_byte *bytes = pinfo->valaddr.data ();
+ if (bytes == nullptr)
+ {
+ int bitpos = resolved_field.loc_bitpos ();
+ int bitsize = resolved_field.bitsize ();
+ if (bitsize == 0)
+ bitsize = check_typedef (resolved_field.type ())->length () * 8;
+
+ /* Read just the minimum number of bytes needed to satisfy
+ unpack_field_as_long. So, update the resolved field's
+ starting offset to remove any unnecessary leading
+ bytes. */
+ int byte_offset = bitpos / 8;
+
+ bitpos %= 8;
+ resolved_field.set_loc_bitpos (bitpos);
+
+ /* Make sure to include any remaining bit offset in the
+ size computation, in case the value straddles a
+ byte. */
+ int byte_length = align_up (bitsize + bitpos, 8) / 8;
+ memory.resize (byte_length);
+
+ read_memory (pinfo->addr + byte_offset, memory.data (),
+ byte_length);
+ bytes = memory.data ();
+ }
+ *value = unpack_field_as_long (bytes, &resolved_field);
return true;
}
@@ -1785,10 +1809,11 @@ dwarf2_compile_property_to_c (string_file *stream,
CORE_ADDR pc,
struct symbol *sym)
{
+#if defined (HAVE_COMPILE)
const dwarf2_property_baton *baton = prop->baton ();
const gdb_byte *data;
size_t size;
- dwarf2_per_cu_data *per_cu;
+ dwarf2_per_cu *per_cu;
dwarf2_per_objfile *per_objfile;
if (prop->kind () == PROP_LOCEXPR)
@@ -1811,6 +1836,9 @@ dwarf2_compile_property_to_c (string_file *stream,
gdbarch, registers_used,
per_cu->addr_size (),
data, data + size, per_cu, per_objfile);
+#else
+ gdb_assert_not_reached ("Compile support was disabled");
+#endif
}
/* Compute the correct symbol_needs_kind value for the location
@@ -1821,7 +1849,7 @@ dwarf2_compile_property_to_c (string_file *stream,
static enum symbol_needs_kind
dwarf2_get_symbol_read_needs (gdb::array_view<const gdb_byte> expr,
- dwarf2_per_cu_data *per_cu,
+ dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile,
bfd_endian byte_order,
int addr_size,
@@ -1841,7 +1869,7 @@ dwarf2_get_symbol_read_needs (gdb::array_view<const gdb_byte> expr,
std::vector<const gdb_byte *> ops_to_visit;
/* Operations already visited. */
- std::unordered_set<const gdb_byte *> visited_ops;
+ gdb::unordered_set<const gdb_byte *> visited_ops;
/* Insert OP in OPS_TO_VISIT if it is within the expression's range and
hasn't been visited yet. */
@@ -2372,8 +2400,7 @@ access_memory (struct gdbarch *arch, struct agent_expr *expr, ULONGEST nbits)
static void
dwarf2_compile_expr_to_ax (struct agent_expr *expr, struct axs_value *loc,
unsigned int addr_size, const gdb_byte *op_ptr,
- const gdb_byte *op_end,
- dwarf2_per_cu_data *per_cu,
+ const gdb_byte *op_end, dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile)
{
gdbarch *arch = expr->gdbarch;
@@ -3135,7 +3162,7 @@ locexpr_regname (struct gdbarch *gdbarch, int dwarf_regnum)
static const gdb_byte *
locexpr_describe_location_piece (struct symbol *symbol, struct ui_file *stream,
- CORE_ADDR addr, dwarf2_per_cu_data *per_cu,
+ CORE_ADDR addr, dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile,
const gdb_byte *data, const gdb_byte *end,
unsigned int addr_size)
@@ -3315,7 +3342,7 @@ disassemble_dwarf_expression (struct ui_file *stream,
int offset_size, const gdb_byte *start,
const gdb_byte *data, const gdb_byte *end,
int indent, int all,
- dwarf2_per_cu_data *per_cu,
+ dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile)
{
while (data < end
@@ -3721,7 +3748,7 @@ locexpr_describe_location_1 (struct symbol *symbol, CORE_ADDR addr,
struct ui_file *stream,
const gdb_byte *data, size_t size,
unsigned int addr_size,
- int offset_size, dwarf2_per_cu_data *per_cu,
+ int offset_size, dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile)
{
const gdb_byte *end = data + size;
@@ -3854,6 +3881,7 @@ locexpr_generate_c_location (struct symbol *sym, string_file *stream,
std::vector<bool> &registers_used,
CORE_ADDR pc, const char *result_name)
{
+#if defined (HAVE_COMPILE)
struct dwarf2_locexpr_baton *dlbaton
= (struct dwarf2_locexpr_baton *) SYMBOL_LOCATION_BATON (sym);
unsigned int addr_size = dlbaton->per_cu->addr_size ();
@@ -3865,6 +3893,9 @@ locexpr_generate_c_location (struct symbol *sym, string_file *stream,
sym, pc, gdbarch, registers_used, addr_size,
dlbaton->data, dlbaton->data + dlbaton->size,
dlbaton->per_cu, dlbaton->per_objfile);
+#else
+ gdb_assert_not_reached ("Compile support was disabled");
+#endif
}
/* The set of location functions used with the DWARF-2 expression
@@ -3978,12 +4009,12 @@ loclist_describe_location (struct symbol *symbol, CORE_ADDR addr,
enum debug_loc_kind kind;
const gdb_byte *new_ptr = NULL; /* init for gcc -Wall */
- if (dlbaton->per_cu->version () < 5 && dlbaton->from_dwo)
+ if (dlbaton->dwarf_version < 5 && dlbaton->from_dwo)
kind = decode_debug_loc_dwo_addresses (dlbaton->per_cu,
per_objfile,
loc_ptr, buf_end, &new_ptr,
&low, &high, byte_order);
- else if (dlbaton->per_cu->version () < 5)
+ else if (dlbaton->dwarf_version < 5)
kind = decode_debug_loc_addresses (loc_ptr, buf_end, &new_ptr,
&low, &high,
byte_order, addr_size,
@@ -4033,7 +4064,7 @@ loclist_describe_location (struct symbol *symbol, CORE_ADDR addr,
CORE_ADDR low_reloc = per_objfile->relocate (low);
CORE_ADDR high_reloc = per_objfile->relocate (high);
- if (dlbaton->per_cu->version () < 5)
+ if (dlbaton->dwarf_version < 5)
{
length = extract_unsigned_integer (loc_ptr, 2, byte_order);
loc_ptr += 2;
@@ -4090,6 +4121,7 @@ loclist_generate_c_location (struct symbol *sym, string_file *stream,
std::vector<bool> &registers_used,
CORE_ADDR pc, const char *result_name)
{
+#if defined (HAVE_COMPILE)
struct dwarf2_loclist_baton *dlbaton
= (struct dwarf2_loclist_baton *) SYMBOL_LOCATION_BATON (sym);
unsigned int addr_size = dlbaton->per_cu->addr_size ();
@@ -4105,6 +4137,9 @@ loclist_generate_c_location (struct symbol *sym, string_file *stream,
data, data + size,
dlbaton->per_cu,
dlbaton->per_objfile);
+#else
+ gdb_assert_not_reached ("Compile support was disabled");
+#endif
}
/* The set of location functions used with the DWARF-2 expression
diff --git a/gdb/dwarf2/loc.h b/gdb/dwarf2/loc.h
index 7863568..c672320 100644
--- a/gdb/dwarf2/loc.h
+++ b/gdb/dwarf2/loc.h
@@ -1,6 +1,6 @@
/* DWARF 2 location expression support for GDB.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -20,11 +20,12 @@
#ifndef GDB_DWARF2_LOC_H
#define GDB_DWARF2_LOC_H
+#include "gdbtypes.h"
#include "dwarf2/expr.h"
struct symbol_computed_ops;
struct dwarf2_per_objfile;
-struct dwarf2_per_cu_data;
+struct dwarf2_per_cu;
struct dwarf2_loclist_baton;
struct agent_expr;
struct axs_value;
@@ -67,7 +68,7 @@ value *compute_var_value (const char *name);
call_site_parameter *dwarf_expr_reg_to_entry_parameter
(const frame_info_ptr &frame, call_site_parameter_kind kind,
- call_site_parameter_u kind_u, dwarf2_per_cu_data **per_cu_return,
+ call_site_parameter_u kind_u, dwarf2_per_cu **per_cu_return,
dwarf2_per_objfile **per_objfile_return);
@@ -78,7 +79,7 @@ call_site_parameter *dwarf_expr_reg_to_entry_parameter
value *dwarf2_evaluate_loc_desc (type *type, const frame_info_ptr &frame,
const gdb_byte *data, size_t size,
- dwarf2_per_cu_data *per_cu,
+ dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile,
bool as_lval = true);
@@ -99,31 +100,9 @@ struct property_addr_info
/* If not NULL, a pointer to the info for the object containing
the object described by this node. */
- struct property_addr_info *next;
+ const property_addr_info *next;
};
-/* Converts a dynamic property into a static one. FRAME is the frame in which
- the property is evaluated; if NULL, the selected frame (if any) is used
- instead.
-
- ADDR_STACK is the stack of addresses that might be needed to evaluate the
- property. When evaluating a property that is not related to a type, it can
- be NULL.
-
- Returns true if PROP could be converted and the static value is passed
- back into VALUE, otherwise returns false.
-
- Any values in PUSH_VALUES will be pushed before evaluating the location
- expression, PUSH_VALUES[0] will be pushed first, then PUSH_VALUES[1],
- etc. This means the during evaluation PUSH_VALUES[0] will be at the
- bottom of the stack. */
-
-bool dwarf2_evaluate_property (const struct dynamic_prop *prop,
- const frame_info_ptr &frame,
- const property_addr_info *addr_stack,
- CORE_ADDR *value,
- gdb::array_view<CORE_ADDR> push_values = {});
-
/* A helper for the compiler interface that compiles a single dynamic
property to C code.
@@ -167,12 +146,32 @@ struct dwarf2_locexpr_baton
directly. */
bool is_reference;
+ /* True if this object is actually a dwarf2_field_location_baton. */
+ bool is_field_location;
+
/* The objfile that was used when creating this. */
dwarf2_per_objfile *per_objfile;
/* The compilation unit containing the symbol whose location
we're computing. */
- struct dwarf2_per_cu_data *per_cu;
+ dwarf2_per_cu *per_cu;
+};
+
+/* If the DWARF location for a field used DW_AT_bit_size, then an
+ object of this type is created to represent the field location.
+ This is then used to apply the bit offset after computing the
+ field's byte offset. Objects of this type always set the
+ 'is_field_location' member in dwarf2_locexpr_baton. See also
+ apply_bit_offset_to_field. */
+
+struct dwarf2_field_location_baton : public dwarf2_locexpr_baton
+{
+ /* The bit offset, coming from DW_AT_bit_offset. */
+ LONGEST bit_offset;
+
+ /* The DW_AT_byte_size of the field. If no explicit byte size was
+ specified, this is 0. */
+ LONGEST explicit_byte_size;
};
struct dwarf2_loclist_baton
@@ -192,28 +191,14 @@ struct dwarf2_loclist_baton
/* The compilation unit containing the symbol whose location
we're computing. */
- struct dwarf2_per_cu_data *per_cu;
+ dwarf2_per_cu *per_cu;
/* Non-zero if the location list lives in .debug_loc.dwo.
The format of entries in this section are different. */
unsigned char from_dwo;
-};
-
-/* The baton used when a dynamic property is an offset to a parent
- type. This can be used, for instance, then the bound of an array
- inside a record is determined by the value of another field inside
- that record. */
-
-struct dwarf2_offset_baton
-{
- /* The offset from the parent type where the value of the property
- is stored. In the example provided above, this would be the offset
- of the field being used as the array bound. */
- LONGEST offset;
- /* The type of the object whose property is dynamic. In the example
- provided above, this would the array's index type. */
- struct type *type;
+ /* The version of DWARF this loclist comes from. */
+ unsigned char dwarf_version;
};
/* A dynamic property is either expressed as a single location expression
@@ -238,8 +223,8 @@ struct dwarf2_property_baton
/* Location list to be evaluated in the context of PROPERTY_TYPE. */
struct dwarf2_loclist_baton loclist;
- /* The location is an offset to PROPERTY_TYPE. */
- struct dwarf2_offset_baton offset_info;
+ /* The location is stored in a field of PROPERTY_TYPE. */
+ struct field field;
};
};
@@ -293,7 +278,7 @@ extern void invalid_synthetic_pointer ();
/* Fetch the value pointed to by a synthetic pointer. */
extern struct value *indirect_synthetic_pointer
- (sect_offset die, LONGEST byte_offset, dwarf2_per_cu_data *per_cu,
+ (sect_offset die, LONGEST byte_offset, dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile, const frame_info_ptr &frame,
struct type *type, bool resolve_abstract_p = false);
@@ -304,8 +289,53 @@ extern struct value *indirect_synthetic_pointer
Function always returns non-NULL value. It throws NO_ENTRY_VALUE_ERROR if
it cannot resolve the parameter for any reason. */
+#if defined(DWARF_FORMAT_AVAILABLE)
+
+/* Converts a dynamic property into a static one. FRAME is the frame in which
+ the property is evaluated; if NULL, the selected frame (if any) is used
+ instead.
+
+ ADDR_STACK is the stack of addresses that might be needed to evaluate the
+ property. When evaluating a property that is not related to a type, it can
+ be NULL.
+
+ Returns true if PROP could be converted and the static value is passed
+ back into VALUE, otherwise returns false.
+
+ Any values in PUSH_VALUES will be pushed before evaluating the location
+ expression, PUSH_VALUES[0] will be pushed first, then PUSH_VALUES[1],
+ etc. This means the during evaluation PUSH_VALUES[0] will be at the
+ bottom of the stack. */
+
+bool dwarf2_evaluate_property (const struct dynamic_prop *prop,
+ const frame_info_ptr &frame,
+ const property_addr_info *addr_stack,
+ CORE_ADDR *value,
+ gdb::array_view<CORE_ADDR> push_values = {});
+
extern struct value *value_of_dwarf_reg_entry (struct type *type,
const frame_info_ptr &frame,
enum call_site_parameter_kind kind,
union call_site_parameter_u kind_u);
+
+#else /* DWARF_FORMAT_AVAILABLE */
+
+static inline bool
+dwarf2_evaluate_property (const struct dynamic_prop *, const frame_info_ptr &,
+ const property_addr_info *, CORE_ADDR *,
+ gdb::array_view<CORE_ADDR> = {})
+{
+ return false;
+}
+
+static inline struct value *
+value_of_dwarf_reg_entry (struct type *type, const frame_info_ptr &frame,
+ enum call_site_parameter_kind kind,
+ union call_site_parameter_u kind_u)
+{
+ error (_("No dwarf support available."));
+}
+
+#endif /* DWARF_FORMAT_AVAILABLE */
+
#endif /* GDB_DWARF2_LOC_H */
diff --git a/gdb/dwarf2/macro.c b/gdb/dwarf2/macro.c
index aab855a..1dc3a9e 100644
--- a/gdb/dwarf2/macro.c
+++ b/gdb/dwarf2/macro.c
@@ -1,6 +1,6 @@
/* Read DWARF macro information
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
Adapted by Gary Funck (gary@intrepid.com), Intrepid Technology,
Inc. with support from Florida State University (under contract
@@ -259,6 +259,7 @@ skip_form_bytes (bfd *abfd, const gdb_byte *bytes, const gdb_byte *buffer_end,
case DW_FORM_sec_offset:
case DW_FORM_strp:
case DW_FORM_GNU_strp_alt:
+ case DW_FORM_strp_sup:
bytes += offset_size;
break;
@@ -503,8 +504,7 @@ dwarf_decode_macro_bytes (dwarf2_per_objfile *per_objfile,
|| macinfo_type == DW_MACRO_undef_sup
|| section_is_dwz)
{
- dwz_file *dwz = dwarf2_get_dwz_file (per_objfile->per_bfd,
- true);
+ dwz_file *dwz = per_objfile->per_bfd->get_dwz_file (true);
body = dwz->read_string (objfile, str_offset);
}
@@ -652,7 +652,7 @@ dwarf_decode_macro_bytes (dwarf2_per_objfile *per_objfile,
complaint (_("macro debug info has an unmatched "
"`close_file' directive"));
else if (current_file->included_by == nullptr
- && producer_is_clang (cu))
+ && cu->producer_is_clang ())
{
/* Clang, until the current version, misplaces some macro
definitions - such as ones defined in the command line,
@@ -710,8 +710,7 @@ dwarf_decode_macro_bytes (dwarf2_per_objfile *per_objfile,
if (macinfo_type == DW_MACRO_import_sup)
{
- dwz_file *dwz = dwarf2_get_dwz_file (per_objfile->per_bfd,
- true);
+ dwz_file *dwz = per_objfile->per_bfd->get_dwz_file (true);
include_section = &dwz->macro;
include_bfd = include_section->get_bfd_owner ();
diff --git a/gdb/dwarf2/macro.h b/gdb/dwarf2/macro.h
index 7ef2134..9cbd560 100644
--- a/gdb/dwarf2/macro.h
+++ b/gdb/dwarf2/macro.h
@@ -1,6 +1,6 @@
/* DWARF macro support for GDB.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/dwarf2/mapped-index.h b/gdb/dwarf2/mapped-index.h
index 8bc81b4..1690690 100644
--- a/gdb/dwarf2/mapped-index.h
+++ b/gdb/dwarf2/mapped-index.h
@@ -1,6 +1,6 @@
/* Base class for mapped indices
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -32,6 +32,11 @@ struct dwarf_scanner_base
virtual ~dwarf_scanner_base () = default;
DISABLE_COPY_AND_ASSIGN (dwarf_scanner_base);
+ /* Start the reading. This is only really relevant to the cooked
+ index; see cooked-index.h. */
+ virtual void start_reading ()
+ { }
+
/* Return a quick_symbol_functions instance that refers back to this
dwarf_scanner_base. */
virtual quick_symbol_functions_up make_quick_functions () const = 0;
@@ -60,8 +65,10 @@ struct dwarf_scanner_base
/* Look up ADDR, and return either the corresponding CU, or nullptr
if the address could not be found. */
- virtual dwarf2_per_cu_data *lookup (unrelocated_addr addr)
+ virtual dwarf2_per_cu *lookup (unrelocated_addr addr)
{ return nullptr; }
};
+using dwarf_scanner_base_up = std::unique_ptr<dwarf_scanner_base>;
+
#endif /* GDB_DWARF2_MAPPED_INDEX_H */
diff --git a/gdb/dwarf2/parent-map.c b/gdb/dwarf2/parent-map.c
new file mode 100644
index 0000000..6f290c1
--- /dev/null
+++ b/gdb/dwarf2/parent-map.c
@@ -0,0 +1,88 @@
+/* DIE parent maps
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include "dwarf2/cooked-index-entry.h"
+#include "dwarf2/read.h"
+#include "dwarf2/parent-map.h"
+
+/* Dump MAP as parent_map. */
+
+static void
+dump_parent_map (dwarf2_per_bfd *per_bfd, const struct addrmap *map)
+{
+ auto_obstack temp_storage;
+
+ auto annotate_cooked_index_entry
+ = [&] (struct ui_file *outfile, CORE_ADDR start_addr, const void *value)
+ {
+ const cooked_index_entry *parent_entry
+ = (const cooked_index_entry *)value;
+
+ gdb_printf (outfile, "\n\t");
+
+ bool found = false;
+ for (auto sections : {per_bfd->infos, per_bfd->types})
+ for (auto section : sections)
+ if ((CORE_ADDR)section.buffer <= start_addr
+ && start_addr < (CORE_ADDR) (section.buffer + section.size))
+ {
+ gdb_printf (outfile, "(section: %s, offset: 0x%" PRIx64 ")",
+ section.get_name (),
+ start_addr - (CORE_ADDR)section.buffer);
+ found = true;
+ break;
+ }
+
+ if (!found)
+ gdb_printf (outfile, "()");
+
+ if (parent_entry == nullptr)
+ {
+ gdb_printf (outfile, " -> ()");
+ return;
+ }
+
+ gdb_printf (outfile, " -> (0x%" PRIx64 ": %s)",
+ to_underlying (parent_entry->die_offset),
+ parent_entry->full_name (&temp_storage));
+ };
+
+ addrmap_dump (const_cast<addrmap *> (map), gdb_stdlog, nullptr,
+ annotate_cooked_index_entry);
+}
+
+/* See parent-map.h. */
+
+void
+parent_map::dump (dwarf2_per_bfd *per_bfd) const
+{
+ dump_parent_map (per_bfd, &m_map);
+}
+
+/* See parent-map.h. */
+
+void
+parent_map_map::dump (dwarf2_per_bfd *per_bfd) const
+{
+ for (const auto &iter : m_maps)
+ {
+ gdb_printf (gdb_stdlog, "map start:\n");
+ dump_parent_map (per_bfd, iter);
+ }
+}
diff --git a/gdb/dwarf2/parent-map.h b/gdb/dwarf2/parent-map.h
index 130098f..51fe7dd 100644
--- a/gdb/dwarf2/parent-map.h
+++ b/gdb/dwarf2/parent-map.h
@@ -1,6 +1,6 @@
/* DIE indexing
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/dwarf2/public.h b/gdb/dwarf2/public.h
index 8247641..f9e7488 100644
--- a/gdb/dwarf2/public.h
+++ b/gdb/dwarf2/public.h
@@ -1,6 +1,6 @@
/* Public API for gdb DWARF reader
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -30,6 +30,8 @@ enum class dw_index_kind
DEBUG_NAMES,
};
+#if defined(DWARF_FORMAT_AVAILABLE)
+
/* Try to locate the sections we need for DWARF 2 debugging
information. If these are found, begin reading the DWARF and
return true. Otherwise, return false. NAMES points to the dwarf2
@@ -44,4 +46,27 @@ extern bool dwarf2_initialize_objfile
extern void dwarf2_build_frame_info (struct objfile *);
+/* Append the DWARF-2 frame unwinders to GDBARCH's list. */
+
+void dwarf2_append_unwinders (struct gdbarch *gdbarch);
+
+#else /* DWARF_FORMAT_AVAILABLE */
+
+static inline bool
+dwarf2_initialize_objfile (struct objfile *,
+ const struct dwarf2_debug_sections * = nullptr,
+ bool = false)
+{
+ warning (_("No dwarf support available."));
+ return false;
+}
+
+static inline void
+dwarf2_build_frame_info (struct objfile *)
+{
+ warning (_("No dwarf support available."));
+}
+
+#endif /* DWARF_FORMAT_AVAILABLE */
+
#endif /* GDB_DWARF2_PUBLIC_H */
diff --git a/gdb/dwarf2/read-debug-names.c b/gdb/dwarf2/read-debug-names.c
index ffc4f3a..4b3f385 100644
--- a/gdb/dwarf2/read-debug-names.c
+++ b/gdb/dwarf2/read-debug-names.c
@@ -1,6 +1,6 @@
/* Reading code for .debug_names
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -28,6 +28,7 @@
#include "read.h"
#include "stringify.h"
#include "extract-store-integer.h"
+#include "gdbsupport/thread-pool.h"
/* This is just like cooked_index_functions, but overrides a single
method so the test suite can distinguish the .debug_names case from
@@ -40,7 +41,7 @@ struct dwarf2_debug_names_index : public cooked_index_functions
void dump (struct objfile *objfile) override
{
gdb_printf (".debug_names: exists\n");
- /* This could call the superclass method if that's useful. */
+ cooked_index_functions::dump (objfile);
}
};
@@ -74,7 +75,15 @@ struct mapped_debug_names_reader
bfd *abfd = nullptr;
bfd_endian dwarf5_byte_order {};
bool dwarf5_is_dwarf64 = false;
+
+ /* True if the augmentation string indicates the index was produced by
+ GDB. */
bool augmentation_is_gdb = false;
+
+ /* If AUGMENTATION_IS_GDB is true, this indicates the version. Otherwise,
+ this value is meaningless. */
+ unsigned int gdb_augmentation_version = 0;
+
uint8_t offset_size = 0;
uint32_t cu_count = 0;
uint32_t tu_count = 0, bucket_count = 0, name_count = 0;
@@ -103,10 +112,36 @@ struct mapped_debug_names_reader
std::vector<attr> attr_vec;
};
- std::unordered_map<ULONGEST, index_val> abbrev_map;
+ gdb::unordered_map<ULONGEST, index_val> abbrev_map;
+
+ /* Even though the scanning of .debug_names and creation of the
+ cooked index entries is done serially, we create multiple shards
+ so that the finalization step can be parallelized. The shards
+ are filled in a round robin fashion. It's convenient to use a
+ result object rather than an actual shard. */
+ std::vector<cooked_index_worker_result> indices;
+
+ /* Next shard to insert an entry in. */
+ int next_shard = 0;
+
+ /* Maps entry pool offsets to cooked index entries. */
+ gdb::unordered_map<ULONGEST, cooked_index_entry *>
+ entry_pool_offsets_to_entries;
+
+ /* Cooked index entries for which the parent needs to be resolved.
- std::unique_ptr<cooked_index_shard> shard;
+ The second value of the pair is the DW_IDX_parent value. Its meaning
+ depends on the augmentation string:
+
+ - GDB2: an index in the name table
+ - GDB3: an offset offset into the entry pool */
std::vector<std::pair<cooked_index_entry *, ULONGEST>> needs_parent;
+
+ /* All the cooked index entries created, in the same order and groups as
+ listed in the name table.
+
+ The size of the outer vector is equal to the number of entries in the name
+ table (NAME_COUNT). */
std::vector<std::vector<cooked_index_entry *>> all_entries;
};
@@ -121,6 +156,7 @@ mapped_debug_names_reader::scan_one_entry (const char *name,
std::optional<ULONGEST> &parent)
{
unsigned int bytes_read;
+ const auto offset_in_entry_pool = entry - entry_pool;
const ULONGEST abbrev = read_unsigned_leb128 (abfd, entry, &bytes_read);
entry += bytes_read;
if (abbrev == 0)
@@ -139,7 +175,7 @@ mapped_debug_names_reader::scan_one_entry (const char *name,
cooked_index_flag flags = 0;
sect_offset die_offset {};
enum language lang = language_unknown;
- dwarf2_per_cu_data *per_cu = nullptr;
+ dwarf2_per_cu *per_cu = nullptr;
for (const auto &attr : indexval.attr_vec)
{
ULONGEST ull;
@@ -159,6 +195,17 @@ mapped_debug_names_reader::scan_one_entry (const char *name,
ull = read_offset (abfd, entry, offset_size);
entry += offset_size;
break;
+ case DW_FORM_data1:
+ ull = *entry++;
+ break;
+ case DW_FORM_data2:
+ ull = read_2_bytes (abfd, entry);
+ entry += 2;
+ break;
+ case DW_FORM_data4:
+ ull = read_4_bytes (abfd, entry);
+ entry += 4;
+ break;
case DW_FORM_ref4:
ull = read_4_bytes (abfd, entry);
entry += 4;
@@ -172,9 +219,12 @@ mapped_debug_names_reader::scan_one_entry (const char *name,
entry += 8;
break;
default:
- complaint (_("Unsupported .debug_names form %s [in module %s]"),
- dwarf_form_name (attr.form),
- bfd_get_filename (abfd));
+ /* A warning instead of a complaint, because this one is
+ more like a bug in gdb. */
+ warning (_("Unsupported .debug_names form %s [in module %s].\n"
+ "This normally should not happen, please file a bug report."),
+ dwarf_form_name (attr.form),
+ bfd_get_filename (abfd));
return nullptr;
}
switch (attr.dw_idx)
@@ -191,7 +241,7 @@ mapped_debug_names_reader::scan_one_entry (const char *name,
continue;
}
}
- per_cu = per_objfile->per_bfd->get_cu (ull);
+ per_cu = per_objfile->per_bfd->get_unit (ull);
break;
case DW_IDX_type_unit:
/* Don't crash on bad data. */
@@ -205,7 +255,7 @@ mapped_debug_names_reader::scan_one_entry (const char *name,
}
{
int nr_cus = per_objfile->per_bfd->all_comp_units.size ();
- per_cu = per_objfile->per_bfd->get_cu (nr_cus + ull);
+ per_cu = per_objfile->per_bfd->get_unit (nr_cus + ull);
}
break;
case DW_IDX_die_offset:
@@ -213,7 +263,7 @@ mapped_debug_names_reader::scan_one_entry (const char *name,
/* In a per-CU index (as opposed to a per-module index), index
entries without CU attribute implicitly refer to the single CU. */
if (per_cu == NULL)
- per_cu = per_objfile->per_bfd->get_cu (0);
+ per_cu = per_objfile->per_bfd->get_unit (0);
break;
case DW_IDX_parent:
parent = ull;
@@ -239,8 +289,18 @@ mapped_debug_names_reader::scan_one_entry (const char *name,
/* Skip if we couldn't find a valid CU/TU index. */
if (per_cu != nullptr)
- *result = shard->add (die_offset, (dwarf_tag) indexval.dwarf_tag, flags,
- lang, name, nullptr, per_cu);
+ {
+ *result
+ = indices[next_shard].add (die_offset, (dwarf_tag) indexval.dwarf_tag,
+ flags, lang, name, nullptr, per_cu);
+
+ ++next_shard;
+ if (next_shard == indices.size ())
+ next_shard = 0;
+
+ entry_pool_offsets_to_entries.emplace (offset_in_entry_pool, *result);
+ }
+
return entry;
}
@@ -296,27 +356,51 @@ mapped_debug_names_reader::scan_all_names ()
scan_entries (i, name, entry);
}
- /* Now update the parent pointers for all entries. This has to be
- done in a funny way because DWARF specifies the parent entry to
- point to a name -- but we don't know which specific one. */
- for (auto [entry, parent_idx] : needs_parent)
+ /* Resolve the parent pointers for all entries that have a parent.
+
+ If the augmentation string is "GDB2", the DW_IDX_parent value is an index
+ into the name table. Since there may be multiple index entries associated
+ to that name, we have a little heuristic to figure out which is the right
+ one.
+
+ Otherwise, the DW_IDX_parent value is an offset into the entry pool, which
+ is not ambiguous. */
+ for (auto &[entry, parent_val] : needs_parent)
{
- /* Name entries are indexed from 1 in DWARF. */
- std::vector<cooked_index_entry *> &entries = all_entries[parent_idx - 1];
- for (const auto &parent : entries)
- if (parent->lang == entry->lang)
- {
- entry->set_parent (parent);
- break;
- }
+ if (augmentation_is_gdb && gdb_augmentation_version == 2)
+ {
+ /* Name entries are indexed from 1 in DWARF. */
+ std::vector<cooked_index_entry *> &entries
+ = all_entries[parent_val - 1];
+
+ for (const auto &parent : entries)
+ if (parent->lang == entry->lang)
+ {
+ entry->set_parent (parent);
+ break;
+ }
+ }
+ else
+ {
+ const auto parent_it
+ = entry_pool_offsets_to_entries.find (parent_val);
+
+ if (parent_it == entry_pool_offsets_to_entries.cend ())
+ {
+ complaint (_ ("Parent entry not found for .debug_names entry"));
+ continue;
+ }
+
+ entry->set_parent (parent_it->second);
+ }
}
}
/* A reader for .debug_names. */
-struct cooked_index_debug_names : public cooked_index_worker
+struct cooked_index_worker_debug_names : public cooked_index_worker
{
- cooked_index_debug_names (dwarf2_per_objfile *per_objfile,
+ cooked_index_worker_debug_names (dwarf2_per_objfile *per_objfile,
mapped_debug_names_reader &&map)
: cooked_index_worker (per_objfile),
m_map (std::move (map))
@@ -328,34 +412,30 @@ struct cooked_index_debug_names : public cooked_index_worker
};
void
-cooked_index_debug_names::do_reading ()
+cooked_index_worker_debug_names::do_reading ()
{
complaint_interceptor complaint_handler;
- std::vector<gdb_exception> exceptions;
- try
+
+ /* Arbitrarily put all exceptions into the first result. */
+ m_map.indices[0].catch_error ([&] ()
{
m_map.scan_all_names ();
- }
- catch (const gdb_exception &exc)
+ });
+
+ bool first = true;
+ for (auto &iter : m_map.indices)
{
- exceptions.push_back (std::move (exc));
+ if (first)
+ {
+ iter.done_reading (complaint_handler.release ());
+ first = false;
+ }
+ else
+ iter.done_reading ({});
}
- dwarf2_per_bfd *per_bfd = m_per_objfile->per_bfd;
- per_bfd->quick_file_names_table
- = create_quick_file_names_table (per_bfd->all_units.size ());
- m_results.emplace_back (nullptr,
- complaint_handler.release (),
- std::move (exceptions),
- parent_map ());
- std::vector<std::unique_ptr<cooked_index_shard>> indexes;
- indexes.push_back (std::move (m_map.shard));
- cooked_index *table
- = (gdb::checked_static_cast<cooked_index *>
- (per_bfd->index_table.get ()));
- /* Note that this code never uses IS_PARENT_DEFERRED, so it is safe
- to pass nullptr here. */
- table->set_contents (std::move (indexes), &m_warnings, nullptr);
+ m_results = std::move (m_map.indices);
+ done_reading ();
bfd_thread_cleanup ();
}
@@ -386,7 +466,7 @@ check_signatured_type_table_from_debug_names
bool found = false;
for (; j < nr_cus_tus; j++)
- if (per_bfd->get_cu (j)->sect_off == sect_off)
+ if (per_bfd->get_unit (j)->sect_off == sect_off)
{
found = true;
break;
@@ -397,23 +477,13 @@ check_signatured_type_table_from_debug_names
" ignoring .debug_names."));
return false;
}
- per_bfd->all_comp_units_index_tus.push_back (per_bfd->get_cu (j));
+ per_bfd->all_comp_units_index_tus.push_back (per_bfd->get_unit (j));
}
return true;
}
/* DWARF-5 debug_names reader. */
-/* The old, no-longer-supported GDB augmentation. */
-static const gdb_byte old_gdb_augmentation[]
- = { 'G', 'D', 'B', 0 };
-static_assert (sizeof (old_gdb_augmentation) % 4 == 0);
-
-/* DWARF-5 augmentation string for GDB's DW_IDX_GNU_* extension. This
- must have a size that is a multiple of 4. */
-const gdb_byte dwarf5_augmentation[8] = { 'G', 'D', 'B', '2', 0, 0, 0, 0 };
-static_assert (sizeof (dwarf5_augmentation) % 4 == 0);
-
/* A helper function that reads the .debug_names section in SECTION
and fills in MAP. FILENAME is the name of the file containing the
section; it is used for error reporting.
@@ -525,18 +595,24 @@ read_debug_names_from_section (dwarf2_per_objfile *per_objfile,
addr += 4;
augmentation_string_size += (-augmentation_string_size) & 3;
- if (augmentation_string_size == sizeof (old_gdb_augmentation)
- && memcmp (addr, old_gdb_augmentation,
- sizeof (old_gdb_augmentation)) == 0)
+ const auto augmentation_string
+ = gdb::make_array_view (addr, augmentation_string_size);
+
+ if (augmentation_string == gdb::make_array_view (dwarf5_augmentation_1))
{
warning (_(".debug_names created by an old version of gdb; ignoring"));
return false;
}
-
- map.augmentation_is_gdb = ((augmentation_string_size
- == sizeof (dwarf5_augmentation))
- && memcmp (addr, dwarf5_augmentation,
- sizeof (dwarf5_augmentation)) == 0);
+ else if (augmentation_string == gdb::make_array_view (dwarf5_augmentation_2))
+ {
+ map.augmentation_is_gdb = true;
+ map.gdb_augmentation_version = 2;
+ }
+ else if (augmentation_string == gdb::make_array_view (dwarf5_augmentation_3))
+ {
+ map.augmentation_is_gdb = true;
+ map.gdb_augmentation_version = 3;
+ }
if (!map.augmentation_is_gdb)
{
@@ -544,6 +620,7 @@ read_debug_names_from_section (dwarf2_per_objfile *per_objfile,
return false;
}
+ /* Skip past augmentation string. */
addr += augmentation_string_size;
/* List of CUs */
@@ -642,7 +719,7 @@ check_cus_from_debug_names_list (dwarf2_per_bfd *per_bfd,
map.dwarf5_byte_order));
bool found = false;
for (; j < nr_cus; j++)
- if (per_bfd->get_cu (j)->sect_off == sect_off)
+ if (per_bfd->get_unit (j)->sect_off == sect_off)
{
found = true;
break;
@@ -653,7 +730,7 @@ check_cus_from_debug_names_list (dwarf2_per_bfd *per_bfd,
" ignoring .debug_names."));
return false;
}
- per_bfd->all_comp_units_index_cus.push_back (per_bfd->get_cu (j));
+ per_bfd->all_comp_units_index_cus.push_back (per_bfd->get_unit (j));
}
return true;
}
@@ -672,7 +749,7 @@ check_cus_from_debug_names_list (dwarf2_per_bfd *per_bfd,
(map.cu_table_reordered + i * map.offset_size,
map.offset_size,
map.dwarf5_byte_order));
- if (sect_off != per_bfd->get_cu (i)->sect_off)
+ if (sect_off != per_bfd->get_unit (i)->sect_off)
{
warning (_("Section .debug_names has incorrect entry in CU table,"
" ignoring .debug_names."));
@@ -698,7 +775,7 @@ check_cus_from_debug_names (dwarf2_per_bfd *per_bfd,
if (dwz_map.cu_count == 0)
return true;
- dwz_file *dwz = dwarf2_get_dwz_file (per_bfd);
+ dwz_file *dwz = per_bfd->get_dwz_file ();
return check_cus_from_debug_names_list (per_bfd, dwz_map, dwz->info,
true /* is_dwz */);
}
@@ -724,7 +801,7 @@ do_dwarf2_read_debug_names (dwarf2_per_objfile *per_objfile)
/* If there is a .dwz file, read it so we can get its CU list as
well. */
- dwz_file *dwz = dwarf2_get_dwz_file (per_bfd);
+ dwz_file *dwz = per_bfd->get_dwz_file ();
if (dwz != NULL)
{
if (!read_debug_names_from_section (per_objfile,
@@ -760,22 +837,31 @@ do_dwarf2_read_debug_names (dwarf2_per_objfile *per_objfile)
}
per_bfd->debug_aranges.read (per_objfile->objfile);
- addrmap_mutable addrmap;
+
+ /* There is a single address map for the whole index (coming from
+ .debug_aranges). We only need to install it into a single shard
+ for it to get searched by cooked_index. So, we make the first
+ result object here, so we can store the addrmap, then move it
+ into place later. */
+ cooked_index_worker_result first;
deferred_warnings warnings;
read_addrmap_from_aranges (per_objfile, &per_bfd->debug_aranges,
- &addrmap, &warnings);
+ first.get_addrmap (), &warnings);
warnings.emit ();
- map.shard = std::make_unique<cooked_index_shard> ();
- map.shard->install_addrmap (&addrmap);
+ const auto n_workers
+ = std::max<std::size_t> (gdb::thread_pool::g_thread_pool->thread_count (),
+ 1);
- cooked_index *idx
- = new debug_names_index (per_objfile,
- (std::make_unique<cooked_index_debug_names>
- (per_objfile, std::move (map))));
- per_bfd->index_table.reset (idx);
+ /* Create as many index shard as there are worker threads,
+ preserving the first one. */
+ map.indices.push_back (std::move (first));
+ map.indices.resize (n_workers);
- idx->start_reading ();
+ auto cidn = (std::make_unique<cooked_index_worker_debug_names>
+ (per_objfile, std::move (map)));
+ auto idx = std::make_unique<debug_names_index> (std::move (cidn));
+ per_bfd->start_reading (std::move (idx));
return true;
}
diff --git a/gdb/dwarf2/read-debug-names.h b/gdb/dwarf2/read-debug-names.h
index 729fe89..3abbc03 100644
--- a/gdb/dwarf2/read-debug-names.h
+++ b/gdb/dwarf2/read-debug-names.h
@@ -1,6 +1,6 @@
/* Reading code for .debug_names
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -22,7 +22,30 @@
struct dwarf2_per_objfile;
-extern const gdb_byte dwarf5_augmentation[8];
+/* DWARF-5 augmentation strings.
+
+ They must have a size that is a multiple of 4.
+
+ "GDB" is the old, no-longer-supported GDB augmentation.
+
+ The "GDB2" augmentation string specifies the use of the DW_IDX_GNU_*
+ attributes.
+
+ The meaning of the "GDB3" augmentation string is identical to "GDB2", except
+ for the meaning of DW_IDX_parent. With "GDB2", DW_IDX_parent represented an
+ index in the name table. With "GDB3", it represents an offset into the entry
+ pool. */
+
+constexpr gdb_byte dwarf5_augmentation_1[4] = { 'G', 'D', 'B', 0 };
+static_assert (sizeof (dwarf5_augmentation_1) % 4 == 0);
+
+constexpr gdb_byte dwarf5_augmentation_2[8]
+ = { 'G', 'D', 'B', '2', 0, 0, 0, 0 };
+static_assert (sizeof (dwarf5_augmentation_2) % 4 == 0);
+
+constexpr gdb_byte dwarf5_augmentation_3[8]
+ = { 'G', 'D', 'B', '3', 0, 0, 0, 0 };
+static_assert (sizeof (dwarf5_augmentation_3) % 4 == 0);
/* Read .debug_names. If everything went ok, initialize the "quick"
elements of all the CUs and return true. Otherwise, return false. */
diff --git a/gdb/dwarf2/read-gdb-index.c b/gdb/dwarf2/read-gdb-index.c
index a8706d0..70110b7 100644
--- a/gdb/dwarf2/read-gdb-index.c
+++ b/gdb/dwarf2/read-gdb-index.c
@@ -1,6 +1,6 @@
/* Reading code for .gdb_index
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -129,7 +129,7 @@ struct mapped_gdb_index : public dwarf_scanner_base
/* The shortcut table data. */
gdb::array_view<const gdb_byte> shortcut_table;
- /* An address map that maps from PC to dwarf2_per_cu_data. */
+ /* An address map that maps from PC to dwarf2_per_cu. */
addrmap_fixed *index_addrmap = nullptr;
/* Return the index into the constant pool of the name of the IDXth
@@ -186,13 +186,13 @@ struct mapped_gdb_index : public dwarf_scanner_base
return version >= 8;
}
- dwarf2_per_cu_data *lookup (unrelocated_addr addr) override
+ dwarf2_per_cu *lookup (unrelocated_addr addr) override
{
if (index_addrmap == nullptr)
return nullptr;
void *obj = index_addrmap->find (static_cast<CORE_ADDR> (addr));
- return static_cast<dwarf2_per_cu_data *> (obj);
+ return static_cast<dwarf2_per_cu *> (obj);
}
cooked_index *index_for_writing () override
@@ -434,10 +434,10 @@ static bool
dw2_expand_symtabs_matching_symbol
(mapped_gdb_index &index,
const lookup_name_info &lookup_name_in,
- gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
+ expand_symtabs_symbol_matcher symbol_matcher,
gdb::function_view<bool (offset_type)> match_callback,
dwarf2_per_objfile *per_objfile,
- gdb::function_view<expand_symtabs_lang_matcher_ftype> lang_matcher)
+ expand_symtabs_lang_matcher lang_matcher)
{
lookup_name_info lookup_name_without_params
= lookup_name_in.make_ignore_params ();
@@ -985,7 +985,7 @@ run_test ()
test_dw2_expand_symtabs_matching_symbol ();
}
-}} // namespace selftests::dw2_expand_symtabs_matching
+}} /* namespace selftests::dw2_expand_symtabs_matching */
#endif /* GDB_SELF_TEST */
@@ -999,14 +999,13 @@ struct dwarf2_gdb_index : public dwarf2_base_index_functions
bool expand_symtabs_matching
(struct objfile *objfile,
- gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
+ expand_symtabs_file_matcher file_matcher,
const lookup_name_info *lookup_name,
- gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
- gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
+ expand_symtabs_symbol_matcher symbol_matcher,
+ expand_symtabs_expansion_listener expansion_notify,
block_search_flags search_flags,
domain_search_flags domain,
- gdb::function_view<expand_symtabs_lang_matcher_ftype> lang_matcher)
- override;
+ expand_symtabs_lang_matcher lang_matcher) override;
};
/* This dumps minimal information about the index.
@@ -1030,13 +1029,12 @@ dwarf2_gdb_index::dump (struct objfile *objfile)
index of the symbol name that matched. */
static bool
-dw2_expand_marked_cus
- (dwarf2_per_objfile *per_objfile, offset_type idx,
- gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
- gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
- block_search_flags search_flags,
- domain_search_flags kind,
- gdb::function_view<expand_symtabs_lang_matcher_ftype> lang_matcher)
+dw2_expand_marked_cus (dwarf2_per_objfile *per_objfile, offset_type idx,
+ expand_symtabs_file_matcher file_matcher,
+ expand_symtabs_expansion_listener expansion_notify,
+ block_search_flags search_flags,
+ domain_search_flags kind,
+ expand_symtabs_lang_matcher lang_matcher)
{
offset_type vec_len, vec_idx;
bool global_seen = false;
@@ -1115,7 +1113,8 @@ dw2_expand_marked_cus
continue;
}
- dwarf2_per_cu_data *per_cu = per_objfile->per_bfd->get_cu (cu_index);
+ dwarf2_per_cu *per_cu = per_objfile->per_bfd->get_unit (cu_index);
+
if (!dw2_expand_symtabs_matching_one (per_cu, per_objfile, file_matcher,
expansion_notify, lang_matcher))
return false;
@@ -1126,14 +1125,14 @@ dw2_expand_marked_cus
bool
dwarf2_gdb_index::expand_symtabs_matching
- (struct objfile *objfile,
- gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
- const lookup_name_info *lookup_name,
- gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
- gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
- block_search_flags search_flags,
- domain_search_flags domain,
- gdb::function_view<expand_symtabs_lang_matcher_ftype> lang_matcher)
+ (objfile *objfile,
+ expand_symtabs_file_matcher file_matcher,
+ const lookup_name_info *lookup_name,
+ expand_symtabs_symbol_matcher symbol_matcher,
+ expand_symtabs_expansion_listener expansion_notify,
+ block_search_flags search_flags,
+ domain_search_flags domain,
+ expand_symtabs_lang_matcher lang_matcher)
{
dwarf2_per_objfile *per_objfile = get_dwarf2_per_objfile (objfile);
@@ -1143,8 +1142,7 @@ dwarf2_gdb_index::expand_symtabs_matching
gdb_assert (lookup_name != nullptr || symbol_matcher == nullptr);
if (lookup_name == nullptr)
{
- for (dwarf2_per_cu_data *per_cu
- : all_units_range (per_objfile->per_bfd))
+ for (dwarf2_per_cu *per_cu : all_units_range (per_objfile->per_bfd))
{
QUIT;
@@ -1326,10 +1324,10 @@ create_cus_from_gdb_index_list (dwarf2_per_bfd *per_bfd,
ULONGEST length = extract_unsigned_integer (cu_list + 8, 8, BFD_ENDIAN_LITTLE);
cu_list += 2 * 8;
- dwarf2_per_cu_data_up per_cu
- = create_cu_from_index_list (per_bfd, section, is_dwz, sect_off,
- length);
- per_bfd->all_units.push_back (std::move (per_cu));
+ per_bfd->all_units.emplace_back (per_bfd->allocate_per_cu (section,
+ sect_off,
+ length,
+ is_dwz));
}
}
@@ -1350,7 +1348,7 @@ create_cus_from_gdb_index (dwarf2_per_bfd *per_bfd,
if (dwz_elements == 0)
return;
- dwz_file *dwz = dwarf2_get_dwz_file (per_bfd);
+ dwz_file *dwz = per_bfd->get_dwz_file ();
create_cus_from_gdb_index_list (per_bfd, dwz_list, dwz_elements,
&dwz->info, 1);
}
@@ -1362,32 +1360,28 @@ create_signatured_type_table_from_gdb_index
(dwarf2_per_bfd *per_bfd, struct dwarf2_section_info *section,
const gdb_byte *bytes, offset_type elements)
{
- htab_up sig_types_hash = allocate_signatured_type_table ();
+ signatured_type_set sig_types_hash;
for (offset_type i = 0; i < elements; i += 3)
{
- signatured_type_up sig_type;
- ULONGEST signature;
- void **slot;
- cu_offset type_offset_in_tu;
-
static_assert (sizeof (ULONGEST) >= 8);
sect_offset sect_off
= (sect_offset) extract_unsigned_integer (bytes, 8, BFD_ENDIAN_LITTLE);
- type_offset_in_tu
+ cu_offset type_offset_in_tu
= (cu_offset) extract_unsigned_integer (bytes + 8, 8,
BFD_ENDIAN_LITTLE);
- signature = extract_unsigned_integer (bytes + 16, 8, BFD_ENDIAN_LITTLE);
+ ULONGEST signature
+ = extract_unsigned_integer (bytes + 16, 8, BFD_ENDIAN_LITTLE);
bytes += 3 * 8;
- sig_type = per_bfd->allocate_signatured_type (signature);
+ /* The length of the type unit is unknown at this time. It gets
+ (presumably) set by a cutu_reader when it gets expanded later. */
+ signatured_type_up sig_type
+ = per_bfd->allocate_signatured_type (section, sect_off, 0 /* length */,
+ false /* is_dwz */, signature);
sig_type->type_offset_in_tu = type_offset_in_tu;
- sig_type->section = section;
- sig_type->sect_off = sect_off;
-
- slot = htab_find_slot (sig_types_hash.get (), sig_type.get (), INSERT);
- *slot = sig_type.get ();
+ sig_types_hash.emplace (sig_type.get ());
per_bfd->all_units.emplace_back (sig_type.release ());
}
@@ -1432,7 +1426,7 @@ create_addrmap_from_gdb_index (dwarf2_per_objfile *per_objfile,
continue;
}
- mutable_map.set_empty (lo, hi - 1, per_bfd->get_cu (cu_index));
+ mutable_map.set_empty (lo, hi - 1, per_bfd->get_unit (cu_index));
}
index->index_addrmap
@@ -1486,7 +1480,6 @@ dwarf2_read_gdb_index
{
const gdb_byte *cu_list, *types_list, *dwz_list = NULL;
offset_type cu_list_elements, types_list_elements, dwz_list_elements = 0;
- struct dwz_file *dwz;
struct objfile *objfile = per_objfile->objfile;
dwarf2_per_bfd *per_bfd = per_objfile->per_bfd;
@@ -1510,7 +1503,7 @@ dwarf2_read_gdb_index
/* If there is a .dwz file, read it so we can get its CU list as
well. */
- dwz = dwarf2_get_dwz_file (per_bfd);
+ dwz_file *dwz = per_bfd->get_dwz_file ();
if (dwz != NULL)
{
mapped_gdb_index dwz_map;
@@ -1523,14 +1516,14 @@ dwarf2_read_gdb_index
if (dwz_index_content.empty ())
return false;
- if (!read_gdb_index_from_buffer (bfd_get_filename (dwz->dwz_bfd.get ()),
+ if (!read_gdb_index_from_buffer (dwz->filename (),
1, dwz_index_content, &dwz_map,
&dwz_list, &dwz_list_elements,
&dwz_types_ignore,
&dwz_types_elements_ignore))
{
warning (_("could not read '.gdb_index' section from %s; skipping"),
- bfd_get_filename (dwz->dwz_bfd.get ()));
+ dwz->filename ());
return false;
}
}
@@ -1565,8 +1558,6 @@ dwarf2_read_gdb_index
set_main_name_from_gdb_index (per_objfile, map.get ());
per_bfd->index_table = std::move (map);
- per_bfd->quick_file_names_table =
- create_quick_file_names_table (per_bfd->all_units.size ());
return true;
}
diff --git a/gdb/dwarf2/read-gdb-index.h b/gdb/dwarf2/read-gdb-index.h
index e38a831..5107d63 100644
--- a/gdb/dwarf2/read-gdb-index.h
+++ b/gdb/dwarf2/read-gdb-index.h
@@ -1,6 +1,6 @@
/* Reading code for .gdb_index
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index 70e9022..2f27b7c 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -1,6 +1,6 @@
/* DWARF 2 debugging format support for GDB.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
Adapted by Gary Funck (gary@intrepid.com), Intrepid Technology,
Inc. with support from Florida State University (under contract
@@ -31,7 +31,9 @@
#include "dwarf2/abbrev.h"
#include "dwarf2/aranges.h"
#include "dwarf2/attribute.h"
-#include "dwarf2/comp-unit-head.h"
+#include "dwarf2/unit-head.h"
+#include "dwarf2/cooked-index-worker.h"
+#include "dwarf2/cooked-indexer.h"
#include "dwarf2/cu.h"
#include "dwarf2/index-cache.h"
#include "dwarf2/leb.h"
@@ -43,11 +45,14 @@
#include "dwarf2/read-gdb-index.h"
#include "dwarf2/sect-names.h"
#include "dwarf2/stringify.h"
+#include "dwarf2/tag.h"
#include "dwarf2/public.h"
#include "bfd.h"
#include "elf-bfd.h"
#include "event-top.h"
+#include "exceptions.h"
#include "gdbsupport/task-group.h"
+#include "maint.h"
#include "symtab.h"
#include "gdbtypes.h"
#include "objfiles.h"
@@ -79,22 +84,18 @@
#include <optional>
#include "gdbsupport/underlying.h"
#include "filename-seen-cache.h"
-#include "producer.h"
#include <fcntl.h>
#include <algorithm>
-#include <unordered_map>
#include "gdbsupport/selftest.h"
#include "rust-lang.h"
#include "gdbsupport/pathstuff.h"
#include "count-one-bits.h"
-#include <unordered_set>
#include "dwarf2/abbrev-table-cache.h"
#include "cooked-index.h"
#include "gdbsupport/thread-pool.h"
#include "run-on-main-thread.h"
#include "dwarf2/parent-map.h"
#include "dwarf2/error.h"
-#include <variant>
#include "gdbsupport/unordered_set.h"
#include "extract-store-integer.h"
@@ -115,6 +116,12 @@ static unsigned int dwarf_read_debug = 0;
debug_prefixed_printf_cond (dwarf_read_debug >= 2, "dwarf-read", fmt, \
##__VA_ARGS__)
+/* Print "dwarf-read" start/end debug statements. */
+
+#define DWARF_READ_SCOPED_DEBUG_START_END(fmt, ...) \
+ scoped_debug_start_end ([] { return dwarf_read_debug >= 1; }, "dwarf-read", \
+ fmt, ##__VA_ARGS__)
+
/* When non-zero, dump DIEs after they are read in. */
static unsigned int dwarf_die_debug = 0;
@@ -149,9 +156,6 @@ static int dwarf2_locexpr_block_index;
static int dwarf2_loclist_block_index;
static int ada_block_index;
-static bool producer_is_gas_lt_2_38 (struct dwarf2_cu *cu);
-static bool producer_is_gas_ge_2_39 (struct dwarf2_cu *cu);
-
/* Size of .debug_loclists section header for 32-bit DWARF format. */
#define LOCLIST_HEADER_SIZE32 12
@@ -262,29 +266,6 @@ struct loclists_rnglists_header
unsigned int offset_entry_count;
};
-/* A struct that can be used as a hash key for tables based on DW_AT_stmt_list.
- This includes type_unit_group and quick_file_names. */
-
-struct stmt_list_hash
-{
- /* The DWO unit this table is from or NULL if there is none. */
- struct dwo_unit *dwo_unit;
-
- /* Offset in .debug_line or .debug_line.dwo. */
- sect_offset line_sect_off;
-};
-
-/* Each element of dwarf2_per_bfd->type_unit_groups is a pointer to
- an object of this type. This contains elements of type unit groups
- that can be shared across objfiles. The non-shareable parts are in
- type_unit_group_unshareable. */
-
-struct type_unit_group
-{
- /* The data used to construct the hash key. */
- struct stmt_list_hash hash {};
-};
-
/* These sections are what may appear in a (real or virtual) DWO file. */
struct dwo_sections
@@ -299,7 +280,7 @@ struct dwo_sections
struct dwarf2_section_info str;
struct dwarf2_section_info str_offsets;
/* In the case of a virtual DWO file, these two are unused. */
- struct dwarf2_section_info info;
+ std::vector<dwarf2_section_info> infos;
std::vector<dwarf2_section_info> types;
};
@@ -308,24 +289,63 @@ struct dwo_sections
struct dwo_unit
{
/* Backlink to the containing struct dwo_file. */
- struct dwo_file *dwo_file;
+ struct dwo_file *dwo_file = nullptr;
/* The "id" that distinguishes this CU/TU.
.debug_info calls this "dwo_id", .debug_types calls this "signature".
Since signatures came first, we stick with it for consistency. */
- ULONGEST signature;
+ ULONGEST signature = 0;
/* The section this CU/TU lives in, in the DWO file. */
- struct dwarf2_section_info *section;
+ dwarf2_section_info *section = nullptr;
- /* Same as dwarf2_per_cu_data:{sect_off,length} but in the DWO section. */
- sect_offset sect_off;
- unsigned int length;
+ /* This is set if SECTION is owned by this dwo_unit. */
+ dwarf2_section_info_up section_holder;
+
+ /* Same as dwarf2_per_cu::{sect_off,length} but in the DWO section. */
+ sect_offset sect_off {};
+ unsigned int length = 0;
/* For types, offset in the type's DIE of the type defined by this TU. */
cu_offset type_offset_in_tu;
};
+using dwo_unit_up = std::unique_ptr<dwo_unit>;
+
+/* Hash function for dwo_unit objects, based on the signature. */
+
+struct dwo_unit_hash
+{
+ using is_transparent = void;
+
+ std::size_t operator() (ULONGEST signature) const noexcept
+ { return signature; }
+
+ std::size_t operator() (const dwo_unit_up &unit) const noexcept
+ { return (*this) (unit->signature); }
+};
+
+/* Equal function for dwo_unit objects, based on the signature.
+
+ The signature is assumed to be unique within the DWO file. So while object
+ file CU dwo_id's always have the value zero, that's OK, assuming each object
+ file DWO file has only one CU, and that's the rule for now. */
+
+struct dwo_unit_eq
+{
+ using is_transparent = void;
+
+ bool operator() (ULONGEST sig, const dwo_unit_up &unit) const noexcept
+ { return sig == unit->signature; }
+
+ bool operator() (const dwo_unit_up &a, const dwo_unit_up &b) const noexcept
+ { return (*this) (a->signature, b); }
+};
+
+/* Set of dwo_unit object, using their signature as identity. */
+
+using dwo_unit_set = gdb::unordered_set<dwo_unit_up, dwo_unit_hash, dwo_unit_eq>;
+
/* include/dwarf2.h defines the DWP section codes.
It defines a max value but it doesn't define a min value, which we
use for error checking, so provide one. */
@@ -370,16 +390,59 @@ struct dwo_file
struct dwo_sections sections {};
/* The CUs in the file.
- Each element is a struct dwo_unit. Multiple CUs per DWO are supported as
- an extension to handle LLVM's Link Time Optimization output (where
- multiple source files may be compiled into a single object/dwo pair). */
- htab_up cus;
-
- /* Table of TUs in the file.
- Each element is a struct dwo_unit. */
- htab_up tus;
+
+ Multiple CUs per DWO are supported as an extension to handle LLVM's Link
+ Time Optimization output (where multiple source files may be compiled into
+ a single object/dwo pair). */
+ dwo_unit_set cus;
+
+ /* Table of TUs in the file. */
+ dwo_unit_set tus;
};
+/* See dwarf2/read.h. */
+
+std::size_t
+dwo_file_hash::operator() (const dwo_file_search &search) const noexcept
+{
+ hashval_t hash = htab_hash_string (search.dwo_name);
+
+ if (search.comp_dir != nullptr)
+ hash += htab_hash_string (search.comp_dir);
+
+ return hash;
+}
+
+/* See dwarf2/read.h. */
+
+std::size_t
+dwo_file_hash::operator() (const dwo_file_up &file) const noexcept
+{
+ return (*this) ({ file->dwo_name.c_str (), file->comp_dir });
+}
+
+/* See dwarf2/read.h. */
+
+bool
+dwo_file_eq::operator() (const dwo_file_search &search,
+ const dwo_file_up &dwo_file) const noexcept
+{
+ if (search.dwo_name != dwo_file->dwo_name)
+ return false;
+
+ if (search.comp_dir == nullptr || dwo_file->comp_dir == nullptr)
+ return search.comp_dir == dwo_file->comp_dir;
+
+ return std::strcmp (search.comp_dir, dwo_file->comp_dir) == 0;
+}
+
+/* See dwarf2/read.h. */
+
+bool
+dwo_file_eq::operator() (const dwo_file_up &a,
+ const dwo_file_up &b) const noexcept
+{ return (*this) ({ a->dwo_name.c_str (), a->comp_dir }, b); }
+
/* These sections are what may appear in a DWP file. */
struct dwp_sections
@@ -537,9 +600,14 @@ struct dwp_file
/* Table of TUs in the file. */
const struct dwp_hash_table *tus = nullptr;
- /* Tables of loaded CUs/TUs. Each entry is a struct dwo_unit *. */
- htab_up loaded_cus;
- htab_up loaded_tus;
+ /* Tables of loaded CUs/TUs. */
+ dwo_unit_set loaded_cus;
+ dwo_unit_set loaded_tus;
+
+#if CXX_STD_THREAD
+ /* Mutex to synchronize access to LOADED_CUS and LOADED_TUS. */
+ std::mutex loaded_cutus_lock;
+#endif
/* Table to map ELF section numbers to their sections.
This is only needed for the DWP V1 file format. */
@@ -547,89 +615,6 @@ struct dwp_file
asection **elf_sections = nullptr;
};
-/* Struct used to pass misc. parameters to read_die_and_children, et
- al. which are used for both .debug_info and .debug_types dies.
- All parameters here are unchanging for the life of the call. This
- struct exists to abstract away the constant parameters of die reading. */
-
-struct die_reader_specs
-{
- /* The bfd of die_section. */
- bfd *abfd;
-
- /* The CU of the DIE we are parsing. */
- struct dwarf2_cu *cu;
-
- /* Non-NULL if reading a DWO file (including one packaged into a DWP). */
- struct dwo_file *dwo_file;
-
- /* The section the die comes from.
- This is either .debug_info or .debug_types, or the .dwo variants. */
- struct dwarf2_section_info *die_section;
-
- /* die_section->buffer. */
- const gdb_byte *buffer;
-
- /* The end of the buffer. */
- const gdb_byte *buffer_end;
-
- /* The abbreviation table to use when reading the DIEs. */
- const struct abbrev_table *abbrev_table;
-};
-
-/* A subclass of die_reader_specs that holds storage and has complex
- constructor and destructor behavior. */
-
-class cutu_reader : public die_reader_specs
-{
-public:
-
- cutu_reader (dwarf2_per_cu_data *this_cu,
- dwarf2_per_objfile *per_objfile,
- const struct abbrev_table *abbrev_table,
- dwarf2_cu *existing_cu,
- bool skip_partial,
- const abbrev_table_cache *cache = nullptr);
-
- explicit cutu_reader (struct dwarf2_per_cu_data *this_cu,
- dwarf2_per_objfile *per_objfile,
- struct dwarf2_cu *parent_cu = nullptr,
- struct dwo_file *dwo_file = nullptr);
-
- DISABLE_COPY_AND_ASSIGN (cutu_reader);
-
- cutu_reader (cutu_reader &&) = default;
-
- const gdb_byte *info_ptr = nullptr;
- struct die_info *comp_unit_die = nullptr;
- bool dummy_p = false;
-
- /* Release the new CU, putting it on the chain. This cannot be done
- for dummy CUs. */
- void keep ();
-
- /* Release the abbrev table, transferring ownership to the
- caller. */
- abbrev_table_up release_abbrev_table ()
- {
- return std::move (m_abbrev_table_holder);
- }
-
-private:
- void init_tu_and_read_dwo_dies (dwarf2_per_cu_data *this_cu,
- dwarf2_per_objfile *per_objfile,
- dwarf2_cu *existing_cu);
-
- struct dwarf2_per_cu_data *m_this_cu;
- std::unique_ptr<dwarf2_cu> m_new_cu;
-
- /* The ordinary abbreviation table. */
- abbrev_table_up m_abbrev_table_holder;
-
- /* The DWO abbreviation table. */
- abbrev_table_up m_dwo_abbrev_table;
-};
-
/* FIXME: We might want to set this from BFD via bfd_arch_bits_per_byte,
but this would require a corresponding change in unpack_field_as_long
and friends. */
@@ -648,15 +633,21 @@ struct variant_field
/* A variant can contain other variant parts. */
std::vector<variant_part_builder> variant_parts;
- /* If we see a DW_TAG_variant, then this will be set if this is the
- default branch. */
- bool default_branch = false;
/* If we see a DW_AT_discr_value, then this will be the discriminant
- value. */
- ULONGEST discriminant_value = 0;
+ value. Just the attribute is stored here, because we have to
+ defer deciding whether the value is signed or unsigned until the
+ end. */
+ const attribute *discriminant_attr = nullptr;
/* If we see a DW_AT_discr_list, then this is a pointer to the list
data. */
struct dwarf_block *discr_list_data = nullptr;
+
+ /* If both DW_AT_discr_value and DW_AT_discr_list are absent, then
+ this is the default branch. */
+ bool is_default () const
+ {
+ return discriminant_attr == nullptr && discr_list_data == nullptr;
+ }
};
/* This represents a DW_TAG_variant_part. */
@@ -753,48 +744,26 @@ show_dwarf_synchronous (struct ui_file *file, int from_tty,
/* local function prototypes */
-static void dwarf2_find_base_address (struct die_info *die,
- struct dwarf2_cu *cu);
-
-static void build_type_psymtabs_reader (cutu_reader *reader,
- cooked_index_storage *storage);
-
static void var_decode_location (struct attribute *attr,
struct symbol *sym,
struct dwarf2_cu *cu);
static unsigned int peek_abbrev_code (bfd *, const gdb_byte *);
-static const gdb_byte *read_attribute (const struct die_reader_specs *,
- struct attribute *,
- const struct attr_abbrev *,
- const gdb_byte *,
- bool allow_reprocess = true);
-
-/* Note that the default for TAG is chosen because it only matters
- when reading the top-level DIE, and that function is careful to
- pass the correct tag. */
-static void read_attribute_reprocess (const struct die_reader_specs *reader,
- struct attribute *attr,
- dwarf_tag tag = DW_TAG_padding);
-
static unrelocated_addr read_addr_index (struct dwarf2_cu *cu,
unsigned int addr_index);
static sect_offset read_abbrev_offset (dwarf2_per_objfile *per_objfile,
dwarf2_section_info *, sect_offset);
-static const char *read_indirect_string
- (dwarf2_per_objfile *per_objfile, bfd *, const gdb_byte *,
- const struct comp_unit_head *, unsigned int *);
+static const char *read_indirect_string (dwarf2_per_objfile *per_objfile, bfd *,
+ const gdb_byte *, const unit_head *,
+ unsigned int *);
static unrelocated_addr read_addr_index_from_leb128 (struct dwarf2_cu *,
const gdb_byte *,
unsigned int *);
-static const char *read_dwo_str_index (const struct die_reader_specs *reader,
- ULONGEST str_index);
-
static const char *read_stub_str_index (struct dwarf2_cu *cu,
ULONGEST str_index);
@@ -888,31 +857,6 @@ static struct dwarf2_section_info *cu_debug_loc_section (struct dwarf2_cu *cu);
static struct dwarf2_section_info *cu_debug_rnglists_section
(struct dwarf2_cu *cu, dwarf_tag tag);
-/* How dwarf2_get_pc_bounds constructed its *LOWPC and *HIGHPC return
- values. Keep the items ordered with increasing constraints compliance. */
-enum pc_bounds_kind
-{
- /* No attribute DW_AT_low_pc, DW_AT_high_pc or DW_AT_ranges was found. */
- PC_BOUNDS_NOT_PRESENT,
-
- /* Some of the attributes DW_AT_low_pc, DW_AT_high_pc or DW_AT_ranges
- were present but they do not form a valid range of PC addresses. */
- PC_BOUNDS_INVALID,
-
- /* Discontiguous range was found - that is DW_AT_ranges was found. */
- PC_BOUNDS_RANGES,
-
- /* Contiguous range was found - DW_AT_low_pc and DW_AT_high_pc were found. */
- PC_BOUNDS_HIGH_LOW,
-};
-
-static enum pc_bounds_kind dwarf2_get_pc_bounds (struct die_info *,
- unrelocated_addr *,
- unrelocated_addr *,
- struct dwarf2_cu *,
- addrmap_mutable *,
- void *);
-
static void get_scope_pc_bounds (struct die_info *,
unrelocated_addr *, unrelocated_addr *,
struct dwarf2_cu *);
@@ -956,30 +900,9 @@ static const char *namespace_name (struct die_info *die,
static void process_enumeration_scope (struct die_info *, struct dwarf2_cu *);
-static bool decode_locdesc (struct dwarf_block *, struct dwarf2_cu *,
- CORE_ADDR *addr);
-
static enum dwarf_array_dim_ordering read_array_order (struct die_info *,
struct dwarf2_cu *);
-static struct die_info *read_die_and_siblings_1
- (const struct die_reader_specs *, const gdb_byte *, const gdb_byte **,
- struct die_info *);
-
-static struct die_info *read_die_and_siblings (const struct die_reader_specs *,
- const gdb_byte *info_ptr,
- const gdb_byte **new_info_ptr,
- struct die_info *parent);
-
-static const gdb_byte *read_full_die_1 (const struct die_reader_specs *,
- struct die_info **, const gdb_byte *,
- int, bool);
-
-static const gdb_byte *read_toplevel_die (const struct die_reader_specs *,
- struct die_info **,
- const gdb_byte *,
- gdb::array_view<attribute *> = {});
-
static void process_die (struct die_info *, struct dwarf2_cu *);
static const char *dwarf2_canonicalize_name (const char *, struct dwarf2_cu *,
@@ -1016,7 +939,7 @@ static struct type *get_DW_AT_signature_type (struct die_info *,
const struct attribute *,
struct dwarf2_cu *);
-static void load_full_type_unit (dwarf2_per_cu_data *per_cu,
+static void load_full_type_unit (dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile);
static void read_signatured_type (signatured_type *sig_type,
@@ -1041,43 +964,26 @@ static void dwarf2_symbol_mark_computed (const struct attribute *attr,
struct dwarf2_cu *cu,
int is_block);
-static const gdb_byte *skip_one_die (const struct die_reader_specs *reader,
- const gdb_byte *info_ptr,
- const struct abbrev_info *abbrev,
- bool do_skip_children = true);
-
-static struct dwarf2_per_cu_data *dwarf2_find_containing_comp_unit
- (sect_offset sect_off, unsigned int offset_in_dwz,
- dwarf2_per_bfd *per_bfd);
-
-static void prepare_one_comp_unit (struct dwarf2_cu *cu,
- struct die_info *comp_unit_die,
- enum language pretend_language);
-
static struct type *set_die_type (struct die_info *, struct type *,
struct dwarf2_cu *, bool = false);
-static void load_full_comp_unit (dwarf2_per_cu_data *per_cu,
+static void load_full_comp_unit (dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile,
- dwarf2_cu *existing_cu,
bool skip_partial,
enum language pretend_language);
-static void process_full_comp_unit (dwarf2_cu *cu,
- enum language pretend_language);
+static void process_full_comp_unit (dwarf2_cu *cu);
-static void process_full_type_unit (dwarf2_cu *cu,
- enum language pretend_language);
+static void process_full_type_unit (dwarf2_cu *cu);
static struct type *get_die_type_at_offset (sect_offset,
- dwarf2_per_cu_data *per_cu,
+ dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile);
static struct type *get_die_type (struct die_info *die, struct dwarf2_cu *cu);
-static void queue_comp_unit (dwarf2_per_cu_data *per_cu,
- dwarf2_per_objfile *per_objfile,
- enum language pretend_language);
+static void queue_comp_unit (dwarf2_per_cu *per_cu,
+ dwarf2_per_objfile *per_objfile);
static void process_queue (dwarf2_per_objfile *per_objfile);
@@ -1129,7 +1035,7 @@ dwarf2_queue_item::~dwarf2_queue_item ()
/* See dwarf2/read.h. */
void
-dwarf2_per_cu_data_deleter::operator() (dwarf2_per_cu_data *data)
+dwarf2_per_cu_deleter::operator() (dwarf2_per_cu *data)
{
if (data->is_debug_types)
delete static_cast<signatured_type *> (data);
@@ -1137,39 +1043,22 @@ dwarf2_per_cu_data_deleter::operator() (dwarf2_per_cu_data *data)
delete data;
}
-static file_and_directory &find_file_and_directory
- (struct die_info *die, struct dwarf2_cu *cu);
-
static const char *compute_include_file_name
(const struct line_header *lh,
const file_entry &fe,
const file_and_directory &cu_info,
std::string &name_holder);
-static htab_up allocate_dwo_unit_table ();
-
static struct dwo_unit *lookup_dwo_unit_in_dwp
- (dwarf2_per_objfile *per_objfile, struct dwp_file *dwp_file,
+ (dwarf2_per_bfd *per_bfd, struct dwp_file *dwp_file,
const char *comp_dir, ULONGEST signature, int is_debug_types);
-static struct dwp_file *get_dwp_file (dwarf2_per_objfile *per_objfile);
-
-static struct dwo_unit *lookup_dwo_comp_unit
- (dwarf2_cu *cu, const char *dwo_name, const char *comp_dir,
- ULONGEST signature);
-
-static struct dwo_unit *lookup_dwo_type_unit
- (dwarf2_cu *cu, const char *dwo_name, const char *comp_dir);
+static void open_and_init_dwp_file (dwarf2_per_objfile *per_objfile);
static void queue_and_load_all_dwo_tus (dwarf2_cu *cu);
-/* A unique pointer to a dwo_file. */
-
-typedef std::unique_ptr<struct dwo_file> dwo_file_up;
-
static void process_cu_includes (dwarf2_per_objfile *per_objfile);
-static void check_producer (struct dwarf2_cu *cu);
/* Various complaints about symbol reading that don't abort the process. */
@@ -1260,7 +1149,7 @@ dwarf2_per_bfd::dwarf2_per_bfd (bfd *obfd, const dwarf2_debug_sections *names,
names = &dwarf2_elf_names;
for (asection *sec = obfd->sections; sec != NULL; sec = sec->next)
- locate_sections (obfd, sec, *names);
+ this->locate_sections (sec, *names);
}
dwarf2_per_bfd::~dwarf2_per_bfd ()
@@ -1313,33 +1202,33 @@ private:
/* See read.h. */
bool
-dwarf2_per_objfile::symtab_set_p (const dwarf2_per_cu_data *per_cu) const
+dwarf2_per_objfile::symtab_set_p (const dwarf2_per_cu *per_cu) const
{
- if (per_cu->index < this->m_symtabs.size ())
- return this->m_symtabs[per_cu->index] != nullptr;
+ if (per_cu->index < m_symtabs.size ())
+ return m_symtabs[per_cu->index] != nullptr;
return false;
}
/* See read.h. */
compunit_symtab *
-dwarf2_per_objfile::get_symtab (const dwarf2_per_cu_data *per_cu) const
+dwarf2_per_objfile::get_symtab (const dwarf2_per_cu *per_cu) const
{
- if (per_cu->index < this->m_symtabs.size ())
- return this->m_symtabs[per_cu->index];
+ if (per_cu->index < m_symtabs.size ())
+ return m_symtabs[per_cu->index];
return nullptr;
}
/* See read.h. */
void
-dwarf2_per_objfile::set_symtab (const dwarf2_per_cu_data *per_cu,
+dwarf2_per_objfile::set_symtab (const dwarf2_per_cu *per_cu,
compunit_symtab *symtab)
{
- if (per_cu->index >= this->m_symtabs.size ())
- this->m_symtabs.resize (per_cu->index + 1);
- gdb_assert (this->m_symtabs[per_cu->index] == nullptr);
- this->m_symtabs[per_cu->index] = symtab;
+ if (per_cu->index >= m_symtabs.size ())
+ m_symtabs.resize (per_cu->index + 1);
+ gdb_assert (m_symtabs[per_cu->index] == nullptr);
+ m_symtabs[per_cu->index] = symtab;
}
/* Helper function for dwarf2_initialize_objfile that creates the
@@ -1407,7 +1296,16 @@ dwarf2_has_info (struct objfile *objfile,
BFD, to avoid races. */
try
{
- dwarf2_read_dwz_file (per_objfile);
+ dwz_file::read_dwz_file (per_objfile);
+ }
+ catch (const gdb_exception_error &err)
+ {
+ warning (_("%s"), err.what ());
+ }
+
+ try
+ {
+ open_and_init_dwp_file (per_objfile);
}
catch (const gdb_exception_error &err)
{
@@ -1421,7 +1319,7 @@ dwarf2_has_info (struct objfile *objfile,
/* See declaration. */
void
-dwarf2_per_bfd::locate_sections (bfd *abfd, asection *sectp,
+dwarf2_per_bfd::locate_sections (asection *sectp,
const dwarf2_debug_sections &names)
{
flagword aflag = bfd_section_flags (sectp);
@@ -1429,13 +1327,13 @@ dwarf2_per_bfd::locate_sections (bfd *abfd, asection *sectp,
if ((aflag & SEC_HAS_CONTENTS) == 0)
{
}
- else if (bfd_section_size_insane (abfd, sectp))
+ else if (bfd_section_size_insane (this->obfd, sectp))
{
bfd_size_type size = sectp->size;
warning (_("Discarding section %s which has an invalid size (%s) "
"[in module %s]"),
- bfd_section_name (sectp), phex_nz (size, sizeof (size)),
- bfd_get_filename (abfd));
+ bfd_section_name (sectp), phex_nz (size),
+ this->filename ());
}
else if (names.info.matches (sectp->name))
{
@@ -1608,6 +1506,16 @@ dwarf2_per_bfd::map_info_sections (struct objfile *objfile)
section.read (objfile);
}
+/* See dwarf2/read.h. */
+
+void
+dwarf2_per_bfd::start_reading (dwarf_scanner_base_up new_table)
+{
+ gdb_assert (index_table == nullptr);
+ index_table = std::move (new_table);
+ index_table->start_reading ();
+}
+
/* DWARF quick_symbol_functions support. */
@@ -1618,9 +1526,6 @@ dwarf2_per_bfd::map_info_sections (struct objfile *objfile)
line_header when we're done and don't need to record it here. */
struct quick_file_names
{
- /* The data used to construct the hash key. */
- struct stmt_list_hash hash;
-
/* The number of entries in file_names, real_names. */
unsigned int num_file_names;
@@ -1650,77 +1555,46 @@ struct readnow_functions : public dwarf2_base_index_functions
bool expand_symtabs_matching
(struct objfile *objfile,
- gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
+ expand_symtabs_file_matcher file_matcher,
const lookup_name_info *lookup_name,
- gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
- gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
+ expand_symtabs_symbol_matcher symbol_matcher,
+ expand_symtabs_expansion_listener expansion_notify,
block_search_flags search_flags,
domain_search_flags domain,
- gdb::function_view<expand_symtabs_lang_matcher_ftype> lang_matcher)
- override
+ expand_symtabs_lang_matcher lang_matcher) override
{
return true;
}
};
-/* Utility hash function for a stmt_list_hash. */
-
-static hashval_t
-hash_stmt_list_entry (const struct stmt_list_hash *stmt_list_hash)
-{
- hashval_t v = 0;
-
- if (stmt_list_hash->dwo_unit != NULL)
- v += (uintptr_t) stmt_list_hash->dwo_unit->dwo_file;
- v += to_underlying (stmt_list_hash->line_sect_off);
- return v;
-}
-
-/* Utility equality function for a stmt_list_hash. */
+/* See read.h. */
-static int
-eq_stmt_list_entry (const struct stmt_list_hash *lhs,
- const struct stmt_list_hash *rhs)
+std::uint64_t
+stmt_list_hash_hash::operator() (const stmt_list_hash &key) const noexcept
{
- if ((lhs->dwo_unit != NULL) != (rhs->dwo_unit != NULL))
- return 0;
- if (lhs->dwo_unit != NULL
- && lhs->dwo_unit->dwo_file != rhs->dwo_unit->dwo_file)
- return 0;
-
- return lhs->line_sect_off == rhs->line_sect_off;
-}
+ std::uint64_t v = 0;
-/* Hash function for a quick_file_names. */
-
-static hashval_t
-hash_file_name_entry (const void *e)
-{
- const struct quick_file_names *file_data
- = (const struct quick_file_names *) e;
+ if (key.dwo_unit != nullptr)
+ v += ankerl::unordered_dense::hash<dwo_file *> () (key.dwo_unit->dwo_file);
- return hash_stmt_list_entry (&file_data->hash);
+ v += (ankerl::unordered_dense::hash<std::uint64_t> ()
+ (to_underlying (key.line_sect_off)));
+ return v;
}
-/* Equality function for a quick_file_names. */
+/* See read.h. */
-static int
-eq_file_name_entry (const void *a, const void *b)
+bool
+stmt_list_hash::operator== (const stmt_list_hash &rhs) const noexcept
{
- const struct quick_file_names *ea = (const struct quick_file_names *) a;
- const struct quick_file_names *eb = (const struct quick_file_names *) b;
-
- return eq_stmt_list_entry (&ea->hash, &eb->hash);
-}
+ if ((this->dwo_unit != nullptr) != (rhs.dwo_unit != nullptr))
+ return false;
-/* See read.h. */
+ if (this->dwo_unit != nullptr
+ && this->dwo_unit->dwo_file != rhs.dwo_unit->dwo_file)
+ return false;
-htab_up
-create_quick_file_names_table (unsigned int nr_initial_entries)
-{
- return htab_up (htab_create_alloc (nr_initial_entries,
- hash_file_name_entry, eq_file_name_entry,
- nullptr, xcalloc, xfree));
+ return this->line_sect_off == rhs.line_sect_off;
}
/* Read in CU (dwarf2_cu object) for PER_CU in the context of PER_OBJFILE. This
@@ -1728,14 +1602,13 @@ create_quick_file_names_table (unsigned int nr_initial_entries)
You should call age_cached_comp_units after processing the CU. */
static dwarf2_cu *
-load_cu (dwarf2_per_cu_data *per_cu, dwarf2_per_objfile *per_objfile,
+load_cu (dwarf2_per_cu *per_cu, dwarf2_per_objfile *per_objfile,
bool skip_partial)
{
if (per_cu->is_debug_types)
load_full_type_unit (per_cu, per_objfile);
else
- load_full_comp_unit (per_cu, per_objfile, per_objfile->get_cu (per_cu),
- skip_partial, language_minimal);
+ load_full_comp_unit (per_cu, per_objfile, skip_partial, language_minimal);
dwarf2_cu *cu = per_objfile->get_cu (per_cu);
if (cu == nullptr)
@@ -1749,7 +1622,7 @@ load_cu (dwarf2_per_cu_data *per_cu, dwarf2_per_objfile *per_objfile,
/* Read in the symbols for PER_CU in the context of PER_OBJFILE. */
static void
-dw2_do_instantiate_symtab (dwarf2_per_cu_data *per_cu,
+dw2_do_instantiate_symtab (dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile, bool skip_partial)
{
{
@@ -1760,8 +1633,11 @@ dw2_do_instantiate_symtab (dwarf2_per_cu_data *per_cu,
if (!per_objfile->symtab_set_p (per_cu))
{
- queue_comp_unit (per_cu, per_objfile, language_minimal);
- dwarf2_cu *cu = load_cu (per_cu, per_objfile, skip_partial);
+ queue_comp_unit (per_cu, per_objfile);
+ dwarf2_cu *cu = per_objfile->get_cu (per_cu);
+
+ if (cu == nullptr)
+ cu = load_cu (per_cu, per_objfile, skip_partial);
/* If we just loaded a CU from a DWO, and we're working with an index
that may badly handle TUs, load all the TUs in that DWO as well.
@@ -1772,7 +1648,7 @@ dw2_do_instantiate_symtab (dwarf2_per_cu_data *per_cu,
&& per_objfile->per_bfd->index_table != NULL
&& !per_objfile->per_bfd->index_table->version_check ()
/* DWP files aren't supported yet. */
- && get_dwp_file (per_objfile) == NULL)
+ && per_objfile->per_bfd->dwp_file == nullptr)
queue_and_load_all_dwo_tus (cu);
}
@@ -1790,8 +1666,7 @@ dw2_do_instantiate_symtab (dwarf2_per_cu_data *per_cu,
Returns the resulting symbol table. */
static struct compunit_symtab *
-dw2_instantiate_symtab (dwarf2_per_cu_data *per_cu,
- dwarf2_per_objfile *per_objfile,
+dw2_instantiate_symtab (dwarf2_per_cu *per_cu, dwarf2_per_objfile *per_objfile,
bool skip_partial)
{
if (!per_objfile->symtab_set_p (per_cu))
@@ -1807,11 +1682,13 @@ dw2_instantiate_symtab (dwarf2_per_cu_data *per_cu,
/* See read.h. */
-dwarf2_per_cu_data_up
-dwarf2_per_bfd::allocate_per_cu ()
+dwarf2_per_cu_up
+dwarf2_per_bfd::allocate_per_cu (dwarf2_section_info *section,
+ sect_offset sect_off, unsigned int length,
+ bool is_dwz)
{
- dwarf2_per_cu_data_up result (new dwarf2_per_cu_data);
- result->per_bfd = this;
+ dwarf2_per_cu_up result (new dwarf2_per_cu (this, section, sect_off,
+ length, is_dwz));
result->index = all_units.size ();
return result;
}
@@ -1819,45 +1696,28 @@ dwarf2_per_bfd::allocate_per_cu ()
/* See read.h. */
signatured_type_up
-dwarf2_per_bfd::allocate_signatured_type (ULONGEST signature)
-{
- signatured_type_up result (new signatured_type (signature));
- result->per_bfd = this;
+dwarf2_per_bfd::allocate_signatured_type (dwarf2_section_info *section,
+ sect_offset sect_off,
+ unsigned int length,
+ bool is_dwz,
+ ULONGEST signature)
+{
+ auto result
+ = std::make_unique<signatured_type> (this, section, sect_off, length,
+ is_dwz, signature);
result->index = all_units.size ();
- result->is_debug_types = true;
tu_stats.nr_tus++;
return result;
}
-/* See read.h. */
-
-dwarf2_per_cu_data_up
-create_cu_from_index_list (dwarf2_per_bfd *per_bfd,
- struct dwarf2_section_info *section,
- int is_dwz,
- sect_offset sect_off, ULONGEST length)
-{
- dwarf2_per_cu_data_up the_cu = per_bfd->allocate_per_cu ();
- the_cu->sect_off = sect_off;
- the_cu->set_length (length);
- the_cu->section = section;
- the_cu->is_dwz = is_dwz;
- return the_cu;
-}
-
/* die_reader_func for dw2_get_file_names. */
static void
-dw2_get_file_names_reader (const struct die_reader_specs *reader,
- struct die_info *comp_unit_die)
+dw2_get_file_names_reader (dwarf2_cu *cu, die_info *comp_unit_die)
{
- struct dwarf2_cu *cu = reader->cu;
- struct dwarf2_per_cu_data *this_cu = cu->per_cu;
+ dwarf2_per_cu *this_cu = cu->per_cu;
dwarf2_per_objfile *per_objfile = cu->per_objfile;
- struct dwarf2_per_cu_data *lh_cu;
- struct attribute *attr;
- void **slot;
- struct quick_file_names *qfn;
+ dwarf2_per_bfd *per_bfd = per_objfile->per_bfd;
gdb_assert (! this_cu->is_debug_types);
@@ -1867,30 +1727,24 @@ dw2_get_file_names_reader (const struct die_reader_specs *reader,
if (comp_unit_die->tag == DW_TAG_partial_unit)
return;
- lh_cu = this_cu;
- slot = NULL;
-
line_header_up lh;
- sect_offset line_offset {};
file_and_directory &fnd = find_file_and_directory (comp_unit_die, cu);
+ std::optional<stmt_list_hash> stmt_list_hash_key;
+ attribute *attr = dwarf2_attr (comp_unit_die, DW_AT_stmt_list, cu);
- attr = dwarf2_attr (comp_unit_die, DW_AT_stmt_list, cu);
if (attr != nullptr && attr->form_is_unsigned ())
{
- struct quick_file_names find_entry;
-
- line_offset = (sect_offset) attr->as_unsigned ();
+ sect_offset line_offset = (sect_offset) attr->as_unsigned ();
/* We may have already read in this line header (TU line header sharing).
If we have we're done. */
- find_entry.hash.dwo_unit = cu->dwo_unit;
- find_entry.hash.line_sect_off = line_offset;
- slot = htab_find_slot (per_objfile->per_bfd->quick_file_names_table.get (),
- &find_entry, INSERT);
- if (*slot != NULL)
+ stmt_list_hash_key = {cu->dwo_unit, line_offset};
+
+ if (auto it = per_bfd->quick_file_names_table.find (*stmt_list_hash_key);
+ it != per_bfd->quick_file_names_table.end ())
{
- lh_cu->file_names = (struct quick_file_names *) *slot;
+ this_cu->file_names = it->second;
return;
}
@@ -1903,12 +1757,11 @@ dw2_get_file_names_reader (const struct die_reader_specs *reader,
else if (lh == nullptr)
return;
- qfn = XOBNEW (&per_objfile->per_bfd->obstack, struct quick_file_names);
- qfn->hash.dwo_unit = cu->dwo_unit;
- qfn->hash.line_sect_off = line_offset;
+ auto *qfn = XOBNEW (&per_bfd->obstack, quick_file_names);
+
/* There may not be a DW_AT_stmt_list. */
- if (slot != nullptr)
- *slot = qfn;
+ if (stmt_list_hash_key.has_value ())
+ per_bfd->quick_file_names_table.emplace (*stmt_list_hash_key, qfn);
std::vector<const char *> include_names;
if (lh != nullptr)
@@ -1928,9 +1781,8 @@ dw2_get_file_names_reader (const struct die_reader_specs *reader,
qfn->num_file_names = offset + include_names.size ();
qfn->comp_dir = fnd.intern_comp_dir (per_objfile->objfile);
- qfn->file_names =
- XOBNEWVEC (&per_objfile->per_bfd->obstack, const char *,
- qfn->num_file_names);
+ qfn->file_names
+ = XOBNEWVEC (&per_bfd->obstack, const char *, qfn->num_file_names);
if (offset != 0)
qfn->file_names[0] = per_objfile->objfile->intern (fnd.get_name ());
@@ -1940,15 +1792,14 @@ dw2_get_file_names_reader (const struct die_reader_specs *reader,
qfn->real_names = NULL;
- lh_cu->file_names = qfn;
+ this_cu->file_names = qfn;
}
/* A helper for the "quick" functions which attempts to read the line
table for THIS_CU. */
static struct quick_file_names *
-dw2_get_file_names (dwarf2_per_cu_data *this_cu,
- dwarf2_per_objfile *per_objfile)
+dw2_get_file_names (dwarf2_per_cu *this_cu, dwarf2_per_objfile *per_objfile)
{
/* This should never be called for TUs. */
gdb_assert (! this_cu->is_debug_types);
@@ -1956,9 +1807,11 @@ dw2_get_file_names (dwarf2_per_cu_data *this_cu,
if (this_cu->files_read)
return this_cu->file_names;
- cutu_reader reader (this_cu, per_objfile);
- if (!reader.dummy_p)
- dw2_get_file_names_reader (&reader, reader.comp_unit_die);
+ cutu_reader reader (*this_cu, *per_objfile, nullptr,
+ per_objfile->get_cu (this_cu), true, language_minimal,
+ nullptr);
+ if (!reader.is_dummy ())
+ dw2_get_file_names_reader (reader.cu (), reader.top_level_die ());
return this_cu->file_names;
}
@@ -1994,8 +1847,7 @@ struct symtab *
dwarf2_base_index_functions::find_last_source_symtab (struct objfile *objfile)
{
dwarf2_per_objfile *per_objfile = get_dwarf2_per_objfile (objfile);
- dwarf2_per_cu_data *dwarf_cu
- = per_objfile->per_bfd->all_units.back ().get ();
+ dwarf2_per_cu *dwarf_cu = per_objfile->per_bfd->all_units.back ().get ();
compunit_symtab *cust = dw2_instantiate_symtab (dwarf_cu, per_objfile, false);
if (cust == NULL)
@@ -2007,7 +1859,7 @@ dwarf2_base_index_functions::find_last_source_symtab (struct objfile *objfile)
/* See read.h. */
void
-dwarf2_per_cu_data::free_cached_file_names ()
+dwarf2_per_cu::free_cached_file_names ()
{
if (fnd != nullptr)
fnd->forget_fullname ();
@@ -2049,25 +1901,22 @@ dwarf2_base_index_functions::print_stats (struct objfile *objfile,
for (int i = 0; i < total; ++i)
{
- dwarf2_per_cu_data *per_cu = per_objfile->per_bfd->get_cu (i);
+ dwarf2_per_cu *per_cu = per_objfile->per_bfd->get_unit (i);
if (!per_objfile->symtab_set_p (per_cu))
++count;
}
- gdb_printf (_(" Number of read CUs: %d\n"), total - count);
- gdb_printf (_(" Number of unread CUs: %d\n"), count);
+ gdb_printf (_(" Number of read units: %d\n"), total - count);
+ gdb_printf (_(" Number of unread units: %d\n"), count);
}
void
dwarf2_base_index_functions::expand_all_symtabs (struct objfile *objfile)
{
dwarf2_per_objfile *per_objfile = get_dwarf2_per_objfile (objfile);
- int total_units = per_objfile->per_bfd->all_units.size ();
- for (int i = 0; i < total_units; ++i)
+ for (dwarf2_per_cu *per_cu : all_units_range (per_objfile->per_bfd))
{
- dwarf2_per_cu_data *per_cu = per_objfile->per_bfd->get_cu (i);
-
/* We don't want to directly expand a partial CU, because if we
read it with the wrong language, then assertion failures can
be triggered later on. See PR symtab/23010. So, tell
@@ -2081,11 +1930,11 @@ dwarf2_base_index_functions::expand_all_symtabs (struct objfile *objfile)
bool
dw2_expand_symtabs_matching_one
- (dwarf2_per_cu_data *per_cu,
+ (dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile,
- gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
- gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
- gdb::function_view<expand_symtabs_lang_matcher_ftype> lang_matcher)
+ expand_symtabs_file_matcher file_matcher,
+ expand_symtabs_expansion_listener expansion_notify,
+ expand_symtabs_lang_matcher lang_matcher)
{
if (file_matcher != nullptr && !per_cu->mark)
return true;
@@ -2114,8 +1963,7 @@ dw2_expand_symtabs_matching_one
void
dw_expand_symtabs_matching_file_matcher
- (dwarf2_per_objfile *per_objfile,
- gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher)
+ (dwarf2_per_objfile *per_objfile, expand_symtabs_file_matcher file_matcher)
{
if (file_matcher == NULL)
return;
@@ -2250,7 +2098,7 @@ dwarf2_base_index_functions::find_pc_sect_compunit_symtab
return nullptr;
CORE_ADDR baseaddr = objfile->text_section_offset ();
- struct dwarf2_per_cu_data *data
+ dwarf2_per_cu *data
= per_bfd->index_table->lookup ((unrelocated_addr) (pc - baseaddr));
if (data == nullptr)
return nullptr;
@@ -2270,16 +2118,15 @@ dwarf2_base_index_functions::find_pc_sect_compunit_symtab
}
void
-dwarf2_base_index_functions::map_symbol_filenames
- (struct objfile *objfile,
- gdb::function_view<symbol_filename_ftype> fun,
- bool need_fullname)
+dwarf2_base_index_functions::map_symbol_filenames (objfile *objfile,
+ symbol_filename_listener fun,
+ bool need_fullname)
{
dwarf2_per_objfile *per_objfile = get_dwarf2_per_objfile (objfile);
/* Use caches to ensure we only call FUN once for each filename. */
filename_seen_cache filenames_cache;
- std::unordered_set<quick_file_names *> qfn_cache;
+ gdb::unordered_set<quick_file_names *> qfn_cache;
/* The rule is CUs specify all the files, including those used by any TU,
so there's no need to scan TUs here. We can ignore file names coming
@@ -2297,8 +2144,7 @@ dwarf2_base_index_functions::map_symbol_filenames
}
}
- for (dwarf2_per_cu_data *per_cu
- : all_units_range (per_objfile->per_bfd))
+ for (dwarf2_per_cu *per_cu : all_units_range (per_objfile->per_bfd))
{
/* We only need to look at symtabs not already expanded. */
if (per_cu->is_debug_types || per_objfile->symtab_set_p (per_cu))
@@ -2451,9 +2297,6 @@ dwarf2_initialize_objfile (struct objfile *objfile,
dwarf_read_debug_printf ("readnow requested");
create_all_units (per_objfile);
- per_bfd->quick_file_names_table
- = create_quick_file_names_table (per_bfd->all_units.size ());
-
objfile->qf.emplace_front (new readnow_functions);
}
/* Was a GDB index already read when we processed an objfile sharing
@@ -2490,15 +2333,9 @@ dwarf2_initialize_objfile (struct objfile *objfile,
return true;
}
-
-
-/* Find the base address of the compilation unit for range lists and
- location lists. It will normally be specified by DW_AT_low_pc.
- In DWARF-3 draft 4, the base address could be overridden by
- DW_AT_entry_pc. It's been removed, but GCC still uses this for
- compilation units with discontinuous ranges. */
+/* See read.h. */
-static void
+void
dwarf2_find_base_address (struct die_info *die, struct dwarf2_cu *cu)
{
struct attribute *attr;
@@ -2520,13 +2357,13 @@ dwarf2_find_base_address (struct die_info *die, struct dwarf2_cu *cu)
THIS_CU. */
static struct dwarf2_section_info *
-get_abbrev_section_for_cu (struct dwarf2_per_cu_data *this_cu)
+get_abbrev_section_for_cu (dwarf2_per_cu *this_cu)
{
struct dwarf2_section_info *abbrev;
dwarf2_per_bfd *per_bfd = this_cu->per_bfd;
if (this_cu->is_dwz)
- abbrev = &dwarf2_get_dwz_file (per_bfd, true)->abbrev;
+ abbrev = &per_bfd->get_dwz_file (true)->abbrev;
else
abbrev = &per_bfd->abbrev;
@@ -2562,179 +2399,29 @@ read_abbrev_offset (dwarf2_per_objfile *per_objfile,
return (sect_offset) read_offset (abfd, info_ptr, offset_size);
}
-static hashval_t
-hash_signatured_type (const void *item)
-{
- const struct signatured_type *sig_type
- = (const struct signatured_type *) item;
-
- /* This drops the top 32 bits of the signature, but is ok for a hash. */
- return sig_type->signature;
-}
-
-static int
-eq_signatured_type (const void *item_lhs, const void *item_rhs)
-{
- const struct signatured_type *lhs = (const struct signatured_type *) item_lhs;
- const struct signatured_type *rhs = (const struct signatured_type *) item_rhs;
-
- return lhs->signature == rhs->signature;
-}
-
-/* See read.h. */
+/* Add an entry for signature SIG to per_bfd->signatured_types. */
-htab_up
-allocate_signatured_type_table ()
+static signatured_type_set::iterator
+add_type_unit (dwarf2_per_bfd *per_bfd, dwarf2_section_info *section,
+ sect_offset sect_off, unsigned int length, ULONGEST sig)
{
- return htab_up (htab_create_alloc (41,
- hash_signatured_type,
- eq_signatured_type,
- NULL, xcalloc, xfree));
-}
-
-/* A helper for create_debug_types_hash_table. Read types from SECTION
- and fill them into TYPES_HTAB. It will process only type units,
- therefore DW_UT_type. */
-
-static void
-create_debug_type_hash_table (dwarf2_per_objfile *per_objfile,
- struct dwo_file *dwo_file,
- dwarf2_section_info *section, htab_up &types_htab,
- rcuh_kind section_kind)
-{
- struct objfile *objfile = per_objfile->objfile;
- struct dwarf2_section_info *abbrev_section;
- bfd *abfd;
- const gdb_byte *info_ptr, *end_ptr;
-
- abbrev_section = &dwo_file->sections.abbrev;
-
- dwarf_read_debug_printf ("Reading %s for %s",
- section->get_name (),
- abbrev_section->get_file_name ());
-
- section->read (objfile);
- info_ptr = section->buffer;
-
- if (info_ptr == NULL)
- return;
-
- /* We can't set abfd until now because the section may be empty or
- not present, in which case the bfd is unknown. */
- abfd = section->get_bfd_owner ();
-
- /* We don't use cutu_reader here because we don't need to read
- any dies: the signature is in the header. */
-
- end_ptr = info_ptr + section->size;
- while (info_ptr < end_ptr)
- {
- signatured_type_up sig_type;
- struct dwo_unit *dwo_tu;
- void **slot;
- const gdb_byte *ptr = info_ptr;
- struct comp_unit_head header;
- unsigned int length;
-
- sect_offset sect_off = (sect_offset) (ptr - section->buffer);
-
- /* Initialize it due to a false compiler warning. */
- header.signature = -1;
- header.type_cu_offset_in_tu = (cu_offset) -1;
-
- /* We need to read the type's signature in order to build the hash
- table, but we don't need anything else just yet. */
-
- ptr = read_and_check_comp_unit_head (per_objfile, &header, section,
- abbrev_section, ptr, section_kind);
-
- length = header.get_length_with_initial ();
-
- /* Skip dummy type units. */
- if (ptr >= info_ptr + length
- || peek_abbrev_code (abfd, ptr) == 0
- || (header.unit_type != DW_UT_type
- && header.unit_type != DW_UT_split_type))
- {
- info_ptr += length;
- continue;
- }
-
- if (types_htab == NULL)
- types_htab = allocate_dwo_unit_table ();
-
- dwo_tu = OBSTACK_ZALLOC (&per_objfile->per_bfd->obstack, dwo_unit);
- dwo_tu->dwo_file = dwo_file;
- dwo_tu->signature = header.signature;
- dwo_tu->type_offset_in_tu = header.type_cu_offset_in_tu;
- dwo_tu->section = section;
- dwo_tu->sect_off = sect_off;
- dwo_tu->length = length;
-
- slot = htab_find_slot (types_htab.get (), dwo_tu, INSERT);
- gdb_assert (slot != NULL);
- if (*slot != NULL)
- complaint (_("debug type entry at offset %s is duplicate to"
- " the entry at offset %s, signature %s"),
- sect_offset_str (sect_off),
- sect_offset_str (dwo_tu->sect_off),
- hex_string (header.signature));
- *slot = dwo_tu;
-
- dwarf_read_debug_printf_v (" offset %s, signature %s",
- sect_offset_str (sect_off),
- hex_string (header.signature));
-
- info_ptr += length;
- }
-}
-
-/* Create the hash table of all entries in the .debug_types
- (or .debug_types.dwo) section(s).
- DWO_FILE is a pointer to the DWO file object.
-
- The result is a pointer to the hash table or NULL if there are no types.
-
- Note: This function processes DWO files only, not DWP files. */
-
-static void
-create_debug_types_hash_table (dwarf2_per_objfile *per_objfile,
- struct dwo_file *dwo_file,
- gdb::array_view<dwarf2_section_info> type_sections,
- htab_up &types_htab)
-{
- for (dwarf2_section_info &section : type_sections)
- create_debug_type_hash_table (per_objfile, dwo_file, &section, types_htab,
- rcuh_kind::TYPE);
-}
-
-/* Add an entry for signature SIG to dwarf2_per_objfile->per_bfd->signatured_types.
- If SLOT is non-NULL, it is the entry to use in the hash table.
- Otherwise we find one. */
-
-static struct signatured_type *
-add_type_unit (dwarf2_per_objfile *per_objfile, ULONGEST sig, void **slot)
-{
- if (per_objfile->per_bfd->all_units.size ()
- == per_objfile->per_bfd->all_units.capacity ())
- ++per_objfile->per_bfd->tu_stats.nr_all_type_units_reallocs;
+ if (per_bfd->all_units.size () == per_bfd->all_units.capacity ())
+ ++per_bfd->tu_stats.nr_all_type_units_reallocs;
signatured_type_up sig_type_holder
- = per_objfile->per_bfd->allocate_signatured_type (sig);
+ = per_bfd->allocate_signatured_type (section, sect_off, length,
+ false /* is_dwz */, sig);
signatured_type *sig_type = sig_type_holder.get ();
- per_objfile->per_bfd->all_units.emplace_back
- (sig_type_holder.release ());
+ per_bfd->all_units.emplace_back (sig_type_holder.release ());
+ auto emplace_ret = per_bfd->signatured_types.emplace (sig_type);
+
+ /* Assert that an insertion took place - that there wasn't a type unit with
+ that signature already. */
+ gdb_assert (emplace_ret.second);
- if (slot == NULL)
- {
- slot = htab_find_slot (per_objfile->per_bfd->signatured_types.get (),
- sig_type, INSERT);
- }
- gdb_assert (*slot == NULL);
- *slot = sig_type;
/* The rest of sig_type must be filled in by the caller. */
- return sig_type;
+ return emplace_ret.first;
}
/* Subroutine of lookup_dwo_signatured_type and lookup_dwp_signatured_type.
@@ -2745,8 +2432,6 @@ fill_in_sig_entry_from_dwo_entry (dwarf2_per_objfile *per_objfile,
struct signatured_type *sig_entry,
struct dwo_unit *dwo_entry)
{
- dwarf2_per_bfd *per_bfd = per_objfile->per_bfd;
-
/* Make sure we're not clobbering something we don't expect to. */
gdb_assert (! sig_entry->queued);
gdb_assert (per_objfile->get_cu (sig_entry) == NULL);
@@ -2755,15 +2440,11 @@ fill_in_sig_entry_from_dwo_entry (dwarf2_per_objfile *per_objfile,
gdb_assert (to_underlying (sig_entry->type_offset_in_section) == 0
|| (to_underlying (sig_entry->type_offset_in_section)
== to_underlying (dwo_entry->type_offset_in_tu)));
- gdb_assert (sig_entry->type_unit_group == NULL);
+ gdb_assert (!sig_entry->type_unit_group_key.has_value ());
gdb_assert (sig_entry->dwo_unit == NULL
|| sig_entry->dwo_unit == dwo_entry);
- sig_entry->section = dwo_entry->section;
- sig_entry->sect_off = dwo_entry->sect_off;
- sig_entry->set_length (dwo_entry->length, false);
sig_entry->reading_dwo_directly = 1;
- sig_entry->per_bfd = per_bfd;
sig_entry->type_offset_in_tu = dwo_entry->type_offset_in_tu;
sig_entry->dwo_unit = dwo_entry;
}
@@ -2784,27 +2465,17 @@ static struct signatured_type *
lookup_dwo_signatured_type (struct dwarf2_cu *cu, ULONGEST sig)
{
dwarf2_per_objfile *per_objfile = cu->per_objfile;
- struct dwo_file *dwo_file;
- struct dwo_unit find_dwo_entry, *dwo_entry;
- void **slot;
+ dwarf2_per_bfd *per_bfd = per_objfile->per_bfd;
gdb_assert (cu->dwo_unit);
- /* If TU skeletons have been removed then we may not have read in any
- TUs yet. */
- if (per_objfile->per_bfd->signatured_types == NULL)
- per_objfile->per_bfd->signatured_types = allocate_signatured_type_table ();
-
/* We only ever need to read in one copy of a signatured type.
Use the global signatured_types array to do our own comdat-folding
of types. If this is the first time we're reading this TU, and
the TU has an entry in .gdb_index, replace the recorded data from
.gdb_index with this TU. */
- signatured_type find_sig_entry (sig);
- slot = htab_find_slot (per_objfile->per_bfd->signatured_types.get (),
- &find_sig_entry, INSERT);
- signatured_type *sig_entry = (struct signatured_type *) *slot;
+ auto sig_type_it = per_bfd->signatured_types.find (sig);
/* We can get here with the TU already read, *or* in the process of being
read. Don't reassign the global entry to point to this DWO if that's
@@ -2815,30 +2486,29 @@ lookup_dwo_signatured_type (struct dwarf2_cu *cu, ULONGEST sig)
/* Have we already tried to read this TU?
Note: sig_entry can be NULL if the skeleton TU was removed (thus it
needn't exist in the global table yet). */
- if (sig_entry != NULL && sig_entry->tu_read)
- return sig_entry;
+ if (sig_type_it != per_bfd->signatured_types.end ()
+ && (*sig_type_it)->tu_read)
+ return *sig_type_it;
/* Note: cu->dwo_unit is the dwo_unit that references this TU, not the
dwo_unit of the TU itself. */
- dwo_file = cu->dwo_unit->dwo_file;
+ dwo_file *dwo_file = cu->dwo_unit->dwo_file;
+ auto it = dwo_file->tus.find (sig);
+ if (it == dwo_file->tus.end ())
+ return nullptr;
- /* Ok, this is the first time we're reading this TU. */
- if (dwo_file->tus == NULL)
- return NULL;
- find_dwo_entry.signature = sig;
- dwo_entry = (struct dwo_unit *) htab_find (dwo_file->tus.get (),
- &find_dwo_entry);
- if (dwo_entry == NULL)
- return NULL;
+ dwo_unit *dwo_entry = it->get ();
/* If the global table doesn't have an entry for this TU, add one. */
- if (sig_entry == NULL)
- sig_entry = add_type_unit (per_objfile, sig, slot);
+ if (sig_type_it == per_bfd->signatured_types.end ())
+ sig_type_it = add_type_unit (per_bfd, dwo_entry->section,
+ dwo_entry->sect_off, dwo_entry->length, sig);
+
+ if ((*sig_type_it)->dwo_unit == nullptr)
+ fill_in_sig_entry_from_dwo_entry (per_objfile, *sig_type_it, dwo_entry);
- if (sig_entry->dwo_unit == nullptr)
- fill_in_sig_entry_from_dwo_entry (per_objfile, sig_entry, dwo_entry);
- sig_entry->tu_read = 1;
- return sig_entry;
+ (*sig_type_it)->tu_read = 1;
+ return *sig_type_it;
}
/* Subroutine of lookup_signatured_type.
@@ -2850,40 +2520,33 @@ static struct signatured_type *
lookup_dwp_signatured_type (struct dwarf2_cu *cu, ULONGEST sig)
{
dwarf2_per_objfile *per_objfile = cu->per_objfile;
- struct dwp_file *dwp_file = get_dwp_file (per_objfile);
- struct dwo_unit *dwo_entry;
- void **slot;
+ dwarf2_per_bfd *per_bfd = per_objfile->per_bfd;
+ dwp_file *dwp_file = per_objfile->per_bfd->dwp_file.get ();
gdb_assert (cu->dwo_unit);
gdb_assert (dwp_file != NULL);
- /* If TU skeletons have been removed then we may not have read in any
- TUs yet. */
- if (per_objfile->per_bfd->signatured_types == NULL)
- per_objfile->per_bfd->signatured_types = allocate_signatured_type_table ();
-
- signatured_type find_sig_entry (sig);
- slot = htab_find_slot (per_objfile->per_bfd->signatured_types.get (),
- &find_sig_entry, INSERT);
- signatured_type *sig_entry = (struct signatured_type *) *slot;
+ auto sig_type_it = per_bfd->signatured_types.find (sig);
/* Have we already tried to read this TU?
Note: sig_entry can be NULL if the skeleton TU was removed (thus it
needn't exist in the global table yet). */
- if (sig_entry != NULL)
- return sig_entry;
+ if (sig_type_it != per_bfd->signatured_types.end ())
+ return *sig_type_it;
if (dwp_file->tus == NULL)
return NULL;
- dwo_entry = lookup_dwo_unit_in_dwp (per_objfile, dwp_file, NULL, sig,
- 1 /* is_debug_types */);
+
+ auto dwo_entry = lookup_dwo_unit_in_dwp (per_bfd, dwp_file, NULL, sig,
+ 1 /* is_debug_types */);
if (dwo_entry == NULL)
return NULL;
- sig_entry = add_type_unit (per_objfile, sig, slot);
- fill_in_sig_entry_from_dwo_entry (per_objfile, sig_entry, dwo_entry);
+ sig_type_it = add_type_unit (per_bfd, dwo_entry->section,
+ dwo_entry->sect_off, dwo_entry->length, sig);
+ fill_in_sig_entry_from_dwo_entry (per_objfile, *sig_type_it, dwo_entry);
- return sig_entry;
+ return *sig_type_it;
}
/* Lookup a signature based type for DW_FORM_ref_sig8.
@@ -2894,46 +2557,45 @@ static struct signatured_type *
lookup_signatured_type (struct dwarf2_cu *cu, ULONGEST sig)
{
dwarf2_per_objfile *per_objfile = cu->per_objfile;
+ dwarf2_per_bfd *per_bfd = per_objfile->per_bfd;
if (cu->dwo_unit)
{
/* We're in a DWO/DWP file, and we're using .gdb_index.
These cases require special processing. */
- if (get_dwp_file (per_objfile) == NULL)
+ if (per_objfile->per_bfd->dwp_file == nullptr)
return lookup_dwo_signatured_type (cu, sig);
else
return lookup_dwp_signatured_type (cu, sig);
}
else
{
- if (per_objfile->per_bfd->signatured_types == NULL)
- return NULL;
- signatured_type find_entry (sig);
- return ((struct signatured_type *)
- htab_find (per_objfile->per_bfd->signatured_types.get (),
- &find_entry));
+ auto sig_type_it = per_bfd->signatured_types.find (sig);
+
+ if (sig_type_it != per_bfd->signatured_types.end ())
+ return *sig_type_it;
+
+ return nullptr;
}
}
/* Low level DIE reading support. */
-/* Initialize a die_reader_specs struct from a dwarf2_cu struct. */
+/* Initialize a cutu_reader from a dwarf2_cu. */
-static void
-init_cu_die_reader (struct die_reader_specs *reader,
- struct dwarf2_cu *cu,
- struct dwarf2_section_info *section,
- struct dwo_file *dwo_file,
- const abbrev_table *abbrev_table)
+void
+cutu_reader::init_cu_die_reader (dwarf2_cu *cu, dwarf2_section_info *section,
+ struct dwo_file *dwo_file,
+ const struct abbrev_table *abbrev_table)
{
gdb_assert (section->readin && section->buffer != NULL);
- reader->abfd = section->get_bfd_owner ();
- reader->cu = cu;
- reader->dwo_file = dwo_file;
- reader->die_section = section;
- reader->buffer = section->buffer;
- reader->buffer_end = section->buffer + section->size;
- reader->abbrev_table = abbrev_table;
+ m_abfd = section->get_bfd_owner ();
+ m_cu = cu;
+ m_dwo_file = dwo_file;
+ m_die_section = section;
+ m_buffer = section->buffer;
+ m_buffer_end = section->buffer + section->size;
+ m_abbrev_table = abbrev_table;
}
/* Subroutine of cutu_reader to simplify it.
@@ -2943,33 +2605,27 @@ init_cu_die_reader (struct die_reader_specs *reader,
STUB_COMP_UNIT_DIE is for the stub DIE, we copy over certain attributes
from it to the DIE in the DWO. If NULL we are skipping the stub.
+
STUB_COMP_DIR is similar to STUB_COMP_UNIT_DIE: When reading a TU directly
from the DWO file, bypassing the stub, it contains the DW_AT_comp_dir
attribute of the referencing CU. At most one of STUB_COMP_UNIT_DIE and
STUB_COMP_DIR may be non-NULL.
- *RESULT_READER,*RESULT_INFO_PTR,*RESULT_COMP_UNIT_DIE
- are filled in with the info of the DIE from the DWO file.
+
+ *RESULT_READER and *RESULT_TOP_LEVEL_DIE are filled in with the info of the
+ DIE from the DWO file.
+
*RESULT_DWO_ABBREV_TABLE will be filled in with the abbrev table allocated
from the dwo. Since *RESULT_READER references this abbrev table, it must be
- kept around for at least as long as *RESULT_READER.
+ kept around for at least as long as *RESULT_READER. */
- The result is non-zero if a valid (non-dummy) DIE was found. */
-
-static int
-read_cutu_die_from_dwo (dwarf2_cu *cu,
- struct dwo_unit *dwo_unit,
- struct die_info *stub_comp_unit_die,
- const char *stub_comp_dir,
- struct die_reader_specs *result_reader,
- const gdb_byte **result_info_ptr,
- struct die_info **result_comp_unit_die,
- abbrev_table_up *result_dwo_abbrev_table)
+void
+cutu_reader::read_cutu_die_from_dwo (dwarf2_cu *cu, dwo_unit *dwo_unit,
+ die_info *stub_comp_unit_die,
+ const char *stub_comp_dir)
{
- dwarf2_per_objfile *per_objfile = cu->per_objfile;
- dwarf2_per_cu_data *per_cu = cu->per_cu;
- struct objfile *objfile = per_objfile->objfile;
+ dwarf2_per_cu *per_cu = cu->per_cu;
+ struct objfile *objfile = cu->per_objfile->objfile;
bfd *abfd;
- const gdb_byte *begin_info_ptr, *info_ptr;
struct dwarf2_section_info *dwo_abbrev_section;
/* At most one of these may be provided. */
@@ -3036,17 +2692,18 @@ read_cutu_die_from_dwo (dwarf2_cu *cu,
dwarf2_section_info *section = dwo_unit->section;
section->read (objfile);
abfd = section->get_bfd_owner ();
- begin_info_ptr = info_ptr = (section->buffer
- + to_underlying (dwo_unit->sect_off));
+ m_info_ptr = section->buffer + to_underlying (dwo_unit->sect_off);
+ const gdb_byte *begin_info_ptr = m_info_ptr;
dwo_abbrev_section = &dwo_unit->dwo_file->sections.abbrev;
if (per_cu->is_debug_types)
{
signatured_type *sig_type = (struct signatured_type *) per_cu;
- info_ptr = read_and_check_comp_unit_head (per_objfile, &cu->header,
- section, dwo_abbrev_section,
- info_ptr, rcuh_kind::TYPE);
+ m_info_ptr = read_and_check_unit_head (&cu->header, section,
+ dwo_abbrev_section, m_info_ptr,
+ ruh_kind::TYPE);
+
/* This is not an assert because it can be caused by bad debug info. */
if (sig_type->signature != cu->header.signature)
{
@@ -3062,7 +2719,7 @@ read_cutu_die_from_dwo (dwarf2_cu *cu,
/* For DWOs coming from DWP files, we don't know the CU length
nor the type's offset in the TU until now. */
dwo_unit->length = cu->header.get_length_with_initial ();
- dwo_unit->type_offset_in_tu = cu->header.type_cu_offset_in_tu;
+ dwo_unit->type_offset_in_tu = cu->header.type_offset_in_tu;
/* Establish the type offset that can be used to lookup the type.
For DWO files, we don't know it until now. */
@@ -3071,9 +2728,9 @@ read_cutu_die_from_dwo (dwarf2_cu *cu,
}
else
{
- info_ptr = read_and_check_comp_unit_head (per_objfile, &cu->header,
- section, dwo_abbrev_section,
- info_ptr, rcuh_kind::COMPILE);
+ m_info_ptr = read_and_check_unit_head (&cu->header, section,
+ dwo_abbrev_section, m_info_ptr,
+ ruh_kind::COMPILE);
gdb_assert (dwo_unit->sect_off == cu->header.sect_off);
/* For DWOs coming from DWP files, we don't know the CU length
until now. */
@@ -3081,26 +2738,26 @@ read_cutu_die_from_dwo (dwarf2_cu *cu,
}
dwo_abbrev_section->read (objfile);
- *result_dwo_abbrev_table
+ m_dwo_abbrev_table
= abbrev_table::read (dwo_abbrev_section, cu->header.abbrev_sect_off);
- init_cu_die_reader (result_reader, cu, section, dwo_unit->dwo_file,
- result_dwo_abbrev_table->get ());
+ this->init_cu_die_reader (cu, section, dwo_unit->dwo_file,
+ m_dwo_abbrev_table.get ());
+
+ /* Skip dummy compilation units. */
+ if (m_info_ptr >= begin_info_ptr + dwo_unit->length
+ || peek_abbrev_code (abfd, m_info_ptr) == 0)
+ {
+ m_dummy_p = true;
+ return;
+ }
/* Read in the die, filling in the attributes from the stub. This
has the benefit of simplifying the rest of the code - all the
work to maintain the illusion of a single
DW_TAG_{compile,type}_unit DIE is done here. */
- info_ptr = read_toplevel_die (result_reader, result_comp_unit_die, info_ptr,
- gdb::make_array_view (attributes,
- next_attr_idx));
-
- /* Skip dummy compilation units. */
- if (info_ptr >= begin_info_ptr + dwo_unit->length
- || peek_abbrev_code (abfd, info_ptr) == 0)
- return 0;
-
- *result_info_ptr = info_ptr;
- return 1;
+ m_top_level_die
+ = this->read_toplevel_die (gdb::make_array_view (attributes,
+ next_attr_idx));
}
/* Return the signature of the compile unit, if found. In DWARF 4 and before,
@@ -3119,27 +2776,23 @@ lookup_dwo_id (struct dwarf2_cu *cu, struct die_info* comp_unit_die)
}
/* Subroutine of cutu_reader to simplify it.
- Look up the DWO unit specified by COMP_UNIT_DIE of THIS_CU.
- Returns NULL if the specified DWO unit cannot be found. */
+ Look up the DWO unit specified by COMP_UNIT_DIE of CU.
-static struct dwo_unit *
-lookup_dwo_unit (dwarf2_cu *cu, die_info *comp_unit_die, const char *dwo_name)
-{
-#if CXX_STD_THREAD
- /* We need a lock here to handle the DWO hash table. */
- static std::mutex dwo_lock;
+ DWO_NAME is the name (DW_AT_dwo_name) of the DWO unit already read from
+ COMP_UNIT_DIE.
- std::lock_guard<std::mutex> guard (dwo_lock);
-#endif
+ Returns nullptr if the specified DWO unit cannot be found. */
- dwarf2_per_cu_data *per_cu = cu->per_cu;
+dwo_unit *
+cutu_reader::lookup_dwo_unit (dwarf2_cu *cu, die_info *comp_unit_die,
+ const char *dwo_name)
+{
+ dwarf2_per_cu *per_cu = cu->per_cu;
struct dwo_unit *dwo_unit;
const char *comp_dir;
gdb_assert (cu != NULL);
- /* Yeah, we look dwo_name up again, but it simplifies the code. */
- dwo_name = dwarf2_dwo_name (comp_unit_die, cu);
comp_dir = dwarf2_string_attr (comp_unit_die, DW_AT_comp_dir, cu);
if (per_cu->is_debug_types)
@@ -3152,7 +2805,7 @@ lookup_dwo_unit (dwarf2_cu *cu, die_info *comp_unit_die, const char *dwo_name)
error (_(DWARF_ERROR_PREFIX
"missing dwo_id for dwo_name %s"
" [in module %s]"),
- dwo_name, bfd_get_filename (per_cu->per_bfd->obfd));
+ dwo_name, per_cu->per_bfd->filename ());
dwo_unit = lookup_dwo_comp_unit (cu, dwo_name, comp_dir, *signature);
}
@@ -3165,9 +2818,10 @@ lookup_dwo_unit (dwarf2_cu *cu, die_info *comp_unit_die, const char *dwo_name)
Read a TU directly from a DWO file, bypassing the stub. */
void
-cutu_reader::init_tu_and_read_dwo_dies (dwarf2_per_cu_data *this_cu,
+cutu_reader::init_tu_and_read_dwo_dies (dwarf2_per_cu *this_cu,
dwarf2_per_objfile *per_objfile,
- dwarf2_cu *existing_cu)
+ dwarf2_cu *existing_cu,
+ enum language pretend_language)
{
struct signatured_type *sig_type;
@@ -3199,16 +2853,9 @@ cutu_reader::init_tu_and_read_dwo_dies (dwarf2_per_cu_data *this_cu,
abbrev table. When reading DWOs with skeletonless TUs, all the TUs
could share abbrev tables. */
- if (read_cutu_die_from_dwo (cu, sig_type->dwo_unit,
- NULL /* stub_comp_unit_die */,
- sig_type->dwo_unit->dwo_file->comp_dir,
- this, &info_ptr,
- &comp_unit_die,
- &m_dwo_abbrev_table) == 0)
- {
- /* Dummy die. */
- dummy_p = true;
- }
+ read_cutu_die_from_dwo (cu, sig_type->dwo_unit, NULL /* stub_comp_unit_die */,
+ sig_type->dwo_unit->dwo_file->comp_dir);
+ prepare_one_comp_unit (cu, pretend_language);
}
/* Initialize a CU (or TU) and read its DIEs.
@@ -3221,17 +2868,16 @@ cutu_reader::init_tu_and_read_dwo_dies (dwarf2_per_cu_data *this_cu,
If EXISTING_CU is non-NULL, then use it. Otherwise, a new CU is
allocated. */
-cutu_reader::cutu_reader (dwarf2_per_cu_data *this_cu,
- dwarf2_per_objfile *per_objfile,
+cutu_reader::cutu_reader (dwarf2_per_cu &this_cu,
+ dwarf2_per_objfile &per_objfile,
const struct abbrev_table *abbrev_table,
dwarf2_cu *existing_cu,
bool skip_partial,
- const abbrev_table_cache *cache)
- : die_reader_specs {},
- m_this_cu (this_cu)
+ enum language pretend_language,
+ const abbrev_table_cache *abbrev_cache)
{
- struct objfile *objfile = per_objfile->objfile;
- struct dwarf2_section_info *section = this_cu->section;
+ struct objfile *objfile = per_objfile.objfile;
+ struct dwarf2_section_info *section = this_cu.section;
bfd *abfd = section->get_bfd_owner ();
const gdb_byte *begin_info_ptr;
struct signatured_type *sig_type = NULL;
@@ -3243,26 +2889,28 @@ cutu_reader::cutu_reader (dwarf2_per_cu_data *this_cu,
if (dwarf_die_debug)
gdb_printf (gdb_stdlog, "Reading %s unit at offset %s\n",
- this_cu->is_debug_types ? "type" : "comp",
- sect_offset_str (this_cu->sect_off));
+ this_cu.is_debug_types ? "type" : "comp",
+ sect_offset_str (this_cu.sect_off));
/* If we're reading a TU directly from a DWO file, including a virtual DWO
file (instead of going through the stub), short-circuit all of this. */
- if (this_cu->reading_dwo_directly)
+ if (this_cu.reading_dwo_directly)
{
/* Narrow down the scope of possibilities to have to understand. */
- gdb_assert (this_cu->is_debug_types);
+ gdb_assert (this_cu.is_debug_types);
gdb_assert (abbrev_table == NULL);
- init_tu_and_read_dwo_dies (this_cu, per_objfile, existing_cu);
+ init_tu_and_read_dwo_dies (&this_cu, &per_objfile, existing_cu,
+ pretend_language);
return;
}
/* This is cheap if the section is already read in. */
section->read (objfile);
- begin_info_ptr = info_ptr = section->buffer + to_underlying (this_cu->sect_off);
+ begin_info_ptr = m_info_ptr
+ = section->buffer + to_underlying (this_cu.sect_off);
- abbrev_section = get_abbrev_section_for_cu (this_cu);
+ abbrev_section = get_abbrev_section_for_cu (&this_cu);
dwarf2_cu *cu;
@@ -3286,229 +2934,207 @@ cutu_reader::cutu_reader (dwarf2_per_cu_data *this_cu,
indexer. This assert is avoided in this case because (1) it
is irrelevant, and (2) the get_cu method is not
thread-safe. */
- gdb_assert (cache != nullptr
- || per_objfile->get_cu (this_cu) == nullptr);
- m_new_cu = std::make_unique<dwarf2_cu> (this_cu, per_objfile);
+ gdb_assert (abbrev_cache != nullptr
+ || per_objfile.get_cu (&this_cu) == nullptr);
+ m_new_cu = std::make_unique<dwarf2_cu> (&this_cu, &per_objfile);
cu = m_new_cu.get ();
}
/* Get the header. */
- if (to_underlying (cu->header.first_die_cu_offset) != 0 && !rereading_dwo_cu)
+ if (to_underlying (cu->header.first_die_offset_in_unit) != 0
+ && !rereading_dwo_cu)
{
/* We already have the header, there's no need to read it in again. */
- info_ptr += to_underlying (cu->header.first_die_cu_offset);
+ m_info_ptr += to_underlying (cu->header.first_die_offset_in_unit);
}
else
{
- if (this_cu->is_debug_types)
+ if (this_cu.is_debug_types)
{
- info_ptr = read_and_check_comp_unit_head (per_objfile, &cu->header,
- section, abbrev_section,
- info_ptr, rcuh_kind::TYPE);
+ m_info_ptr = read_and_check_unit_head (&cu->header, section,
+ abbrev_section, m_info_ptr,
+ ruh_kind::TYPE);
/* Since per_cu is the first member of struct signatured_type,
we can go from a pointer to one to a pointer to the other. */
- sig_type = (struct signatured_type *) this_cu;
+ sig_type = (struct signatured_type *) &this_cu;
gdb_assert (sig_type->signature == cu->header.signature);
gdb_assert (sig_type->type_offset_in_tu
- == cu->header.type_cu_offset_in_tu);
- gdb_assert (this_cu->sect_off == cu->header.sect_off);
+ == cu->header.type_offset_in_tu);
+ gdb_assert (this_cu.sect_off == cu->header.sect_off);
/* LENGTH has not been set yet for type units if we're
using .gdb_index. */
- this_cu->set_length (cu->header.get_length_with_initial ());
+ this_cu.set_length (cu->header.get_length_with_initial ());
/* Establish the type offset that can be used to lookup the type. */
sig_type->type_offset_in_section =
- this_cu->sect_off + to_underlying (sig_type->type_offset_in_tu);
-
- this_cu->set_version (cu->header.version);
+ this_cu.sect_off + to_underlying (sig_type->type_offset_in_tu);
}
else
{
- info_ptr = read_and_check_comp_unit_head (per_objfile, &cu->header,
- section, abbrev_section,
- info_ptr,
- rcuh_kind::COMPILE);
-
- gdb_assert (this_cu->sect_off == cu->header.sect_off);
- this_cu->set_length (cu->header.get_length_with_initial ());
- this_cu->set_version (cu->header.version);
+ m_info_ptr = read_and_check_unit_head (&cu->header, section,
+ abbrev_section, m_info_ptr,
+ ruh_kind::COMPILE);
+
+ gdb_assert (this_cu.sect_off == cu->header.sect_off);
+ this_cu.set_length (cu->header.get_length_with_initial ());
}
}
/* Skip dummy compilation units. */
- if (info_ptr >= begin_info_ptr + this_cu->length ()
- || peek_abbrev_code (abfd, info_ptr) == 0)
- {
- dummy_p = true;
- return;
- }
-
- /* If we don't have them yet, read the abbrevs for this compilation unit.
- And if we need to read them now, make sure they're freed when we're
- done. */
- if (abbrev_table != NULL)
- gdb_assert (cu->header.abbrev_sect_off == abbrev_table->sect_off);
+ if (m_info_ptr >= begin_info_ptr + this_cu.length ()
+ || peek_abbrev_code (abfd, m_info_ptr) == 0)
+ m_dummy_p = true;
else
{
- if (cache != nullptr)
- abbrev_table = cache->find (abbrev_section,
- cu->header.abbrev_sect_off);
- if (abbrev_table == nullptr)
+ /* If we don't have them yet, read the abbrevs for this
+ compilation unit. And if we need to read them now, make sure
+ they're freed when we're done. */
+ if (abbrev_table != NULL)
+ gdb_assert (cu->header.abbrev_sect_off == abbrev_table->sect_off);
+ else
{
- abbrev_section->read (objfile);
- m_abbrev_table_holder
- = abbrev_table::read (abbrev_section, cu->header.abbrev_sect_off);
- abbrev_table = m_abbrev_table_holder.get ();
+ if (abbrev_cache != nullptr)
+ abbrev_table = abbrev_cache->find (abbrev_section,
+ cu->header.abbrev_sect_off);
+ if (abbrev_table == nullptr)
+ {
+ abbrev_section->read (objfile);
+ m_abbrev_table_holder
+ = abbrev_table::read (abbrev_section,
+ cu->header.abbrev_sect_off);
+ abbrev_table = m_abbrev_table_holder.get ();
+ }
}
- }
-
- /* Read the top level CU/TU die. */
- init_cu_die_reader (this, cu, section, NULL, abbrev_table);
- info_ptr = read_toplevel_die (this, &comp_unit_die, info_ptr);
-
- if (skip_partial && comp_unit_die->tag == DW_TAG_partial_unit)
- {
- dummy_p = true;
- return;
- }
-
- /* If we are in a DWO stub, process it and then read in the "real" CU/TU
- from the DWO file. read_cutu_die_from_dwo will allocate the abbreviation
- table from the DWO file and pass the ownership over to us. It will be
- referenced from READER, so we must make sure to free it after we're done
- with READER.
- Note that if USE_EXISTING_OK != 0, and THIS_CU->cu already contains a
- DWO CU, that this test will fail (the attribute will not be present). */
- const char *dwo_name = dwarf2_dwo_name (comp_unit_die, cu);
- if (dwo_name != nullptr)
- {
- struct dwo_unit *dwo_unit;
- struct die_info *dwo_comp_unit_die;
+ /* Read the top level CU/TU die. */
+ this->init_cu_die_reader (cu, section, NULL, abbrev_table);
+ m_top_level_die = this->read_toplevel_die ();
- if (comp_unit_die->has_children)
- {
- complaint (_("compilation unit with DW_AT_GNU_dwo_name"
- " has children (offset %s) [in module %s]"),
- sect_offset_str (this_cu->sect_off),
- bfd_get_filename (abfd));
- }
- dwo_unit = lookup_dwo_unit (cu, comp_unit_die, dwo_name);
- if (dwo_unit != NULL)
+ if (skip_partial && m_top_level_die->tag == DW_TAG_partial_unit)
+ m_dummy_p = true;
+ else
{
- if (read_cutu_die_from_dwo (cu, dwo_unit,
- comp_unit_die, NULL,
- this, &info_ptr,
- &dwo_comp_unit_die,
- &m_dwo_abbrev_table) == 0)
+ /* If we are in a DWO stub, process it and then read in the
+ "real" CU/TU from the DWO file. read_cutu_die_from_dwo
+ will allocate the abbreviation table from the DWO file
+ and pass the ownership over to us. It will be referenced
+ from READER, so we must make sure to free it after we're
+ done with READER.
+
+ Note that if USE_EXISTING_OK != 0, and THIS_CU->cu
+ already contains a DWO CU, that this test will fail (the
+ attribute will not be present). */
+ const char *dwo_name = dwarf2_dwo_name (m_top_level_die, cu);
+ if (dwo_name != nullptr)
{
- /* Dummy die. */
- dummy_p = true;
- return;
+ struct dwo_unit *dwo_unit;
+
+ if (m_top_level_die->has_children)
+ {
+ complaint (_("compilation unit with DW_AT_GNU_dwo_name"
+ " has children (offset %s) [in module %s]"),
+ sect_offset_str (this_cu.sect_off),
+ bfd_get_filename (abfd));
+ }
+
+ dwo_unit = lookup_dwo_unit (cu, m_top_level_die, dwo_name);
+ if (dwo_unit != NULL)
+ read_cutu_die_from_dwo (cu, dwo_unit, m_top_level_die, nullptr);
+ else
+ {
+ /* Yikes, we couldn't find the rest of the DIE, we only have
+ the stub. A complaint has already been logged. There's
+ not much more we can do except pass on the stub DIE to
+ die_reader_func. We don't want to throw an error on bad
+ debug info. */
+ }
}
- comp_unit_die = dwo_comp_unit_die;
- }
- else
- {
- /* Yikes, we couldn't find the rest of the DIE, we only have
- the stub. A complaint has already been logged. There's
- not much more we can do except pass on the stub DIE to
- die_reader_func. We don't want to throw an error on bad
- debug info. */
}
}
-}
-void
-cutu_reader::keep ()
-{
- /* Done, clean up. */
- gdb_assert (!dummy_p);
- if (m_new_cu != NULL)
- {
- /* Save this dwarf2_cu in the per_objfile. The per_objfile owns it
- now. */
- dwarf2_per_objfile *per_objfile = m_new_cu->per_objfile;
- per_objfile->set_cu (m_this_cu, std::move (m_new_cu));
- }
+ /* Only a dummy unit can be missing the compunit DIE. */
+ gdb_assert (m_dummy_p || m_top_level_die != nullptr);
+ prepare_one_comp_unit (cu, pretend_language);
}
-/* Read CU/TU THIS_CU but do not follow DW_AT_GNU_dwo_name (DW_AT_dwo_name)
- if present. DWO_FILE, if non-NULL, is the DWO file to read (the caller is
- assumed to have already done the lookup to find the DWO file).
+/* See read.h. */
- The caller is required to fill in THIS_CU->section, THIS_CU->offset, and
- THIS_CU->is_debug_types, but nothing else.
+dwarf2_cu_up
+cutu_reader::release_cu ()
+{
+ gdb_assert (!m_dummy_p);
+ gdb_assert (m_new_cu != nullptr);
- We fill in THIS_CU->length.
+ return std::move (m_new_cu);
+}
+
+/* This constructor exists for the special case of reading many units in a row
+ from a given known DWO file.
- THIS_CU->cu is always freed when done.
- This is done in order to not leave THIS_CU->cu in a state where we have
- to care whether it refers to the "main" CU or the DWO CU.
+ THIS_CU is a special dwarf2_per_cu to represent where to read the unit from,
+ in the DWO file. The caller is required to fill THIS_CU::SECTION,
+ THIS_CU::SECT_OFF, and THIS_CU::IS_DEBUG_TYPES. This constructor will fill
+ in the length. THIS_CU::SECTION must point to a section from the DWO file,
+ which is normally not the case for regular dwarf2_per_cu uses.
- When parent_cu is passed, it is used to provide a default value for
- str_offsets_base and addr_base from the parent. */
+ PARENT_CU is the CU created when reading the skeleton unit, and is used to
+ provide a default value for str_offsets_base and addr_base. */
-cutu_reader::cutu_reader (dwarf2_per_cu_data *this_cu,
- dwarf2_per_objfile *per_objfile,
- struct dwarf2_cu *parent_cu,
- struct dwo_file *dwo_file)
- : die_reader_specs {},
- m_this_cu (this_cu)
+cutu_reader::cutu_reader (dwarf2_per_cu &this_cu,
+ dwarf2_per_objfile &per_objfile,
+ language pretend_language, dwarf2_cu &parent_cu,
+ dwo_file &dwo_file)
{
- struct objfile *objfile = per_objfile->objfile;
- struct dwarf2_section_info *section = this_cu->section;
+ struct objfile *objfile = per_objfile.objfile;
+ struct dwarf2_section_info *section = this_cu.section;
bfd *abfd = section->get_bfd_owner ();
- struct dwarf2_section_info *abbrev_section;
- const gdb_byte *begin_info_ptr, *info_ptr;
if (dwarf_die_debug)
gdb_printf (gdb_stdlog, "Reading %s unit at offset %s\n",
- this_cu->is_debug_types ? "type" : "comp",
- sect_offset_str (this_cu->sect_off));
+ this_cu.is_debug_types ? "type" : "comp",
+ sect_offset_str (this_cu.sect_off));
- gdb_assert (per_objfile->get_cu (this_cu) == nullptr);
+ gdb_assert (per_objfile.get_cu (&this_cu) == nullptr);
- abbrev_section = (dwo_file != NULL
- ? &dwo_file->sections.abbrev
- : get_abbrev_section_for_cu (this_cu));
+ dwarf2_section_info *abbrev_section = &dwo_file.sections.abbrev;
/* This is cheap if the section is already read in. */
section->read (objfile);
- m_new_cu = std::make_unique<dwarf2_cu> (this_cu, per_objfile);
+ m_new_cu = std::make_unique<dwarf2_cu> (&this_cu, &per_objfile);
- begin_info_ptr = info_ptr = section->buffer + to_underlying (this_cu->sect_off);
- info_ptr = read_and_check_comp_unit_head (per_objfile, &m_new_cu->header,
- section, abbrev_section, info_ptr,
- (this_cu->is_debug_types
- ? rcuh_kind::TYPE
- : rcuh_kind::COMPILE));
+ m_info_ptr = section->buffer + to_underlying (this_cu.sect_off);
+ const gdb_byte *begin_info_ptr = m_info_ptr;
+ m_info_ptr = read_and_check_unit_head (&m_new_cu->header, section,
+ abbrev_section, m_info_ptr,
+ (this_cu.is_debug_types
+ ? ruh_kind::TYPE
+ : ruh_kind::COMPILE));
- if (parent_cu != nullptr)
- {
- m_new_cu->str_offsets_base = parent_cu->str_offsets_base;
- m_new_cu->addr_base = parent_cu->addr_base;
- }
- this_cu->set_length (m_new_cu->header.get_length_with_initial ());
+ m_new_cu->str_offsets_base = parent_cu.str_offsets_base;
+ m_new_cu->addr_base = parent_cu.addr_base;
+
+ this_cu.set_length (m_new_cu->header.get_length_with_initial ());
/* Skip dummy compilation units. */
- if (info_ptr >= begin_info_ptr + this_cu->length ()
- || peek_abbrev_code (abfd, info_ptr) == 0)
+ if (m_info_ptr >= begin_info_ptr + this_cu.length ()
+ || peek_abbrev_code (abfd, m_info_ptr) == 0)
+ m_dummy_p = true;
+ else
{
- dummy_p = true;
- return;
- }
+ abbrev_section->read (objfile);
+ m_abbrev_table_holder
+ = abbrev_table::read (abbrev_section,
+ m_new_cu->header.abbrev_sect_off);
- abbrev_section->read (objfile);
- m_abbrev_table_holder
- = abbrev_table::read (abbrev_section, m_new_cu->header.abbrev_sect_off);
+ this->init_cu_die_reader (m_new_cu.get (), section, &dwo_file,
+ m_abbrev_table_holder.get ());
+ m_top_level_die = this->read_toplevel_die ();
+ }
- init_cu_die_reader (this, m_new_cu.get (), section, dwo_file,
- m_abbrev_table_holder.get ());
- info_ptr = read_toplevel_die (this, &comp_unit_die, info_ptr);
+ prepare_one_comp_unit (m_new_cu.get (), pretend_language);
}
@@ -3520,71 +3146,21 @@ cutu_reader::cutu_reader (dwarf2_per_cu_data *this_cu,
together. A future step could be to put the types in the same symtab as
the CU the types ultimately came from. */
-static hashval_t
-hash_type_unit_group (const void *item)
-{
- const struct type_unit_group *tu_group
- = (const struct type_unit_group *) item;
-
- return hash_stmt_list_entry (&tu_group->hash);
-}
-
-static int
-eq_type_unit_group (const void *item_lhs, const void *item_rhs)
-{
- const struct type_unit_group *lhs = (const struct type_unit_group *) item_lhs;
- const struct type_unit_group *rhs = (const struct type_unit_group *) item_rhs;
-
- return eq_stmt_list_entry (&lhs->hash, &rhs->hash);
-}
-
-/* Allocate a hash table for type unit groups. */
-
-static htab_up
-allocate_type_unit_groups_table ()
-{
- return htab_up (htab_create_alloc (3,
- hash_type_unit_group,
- eq_type_unit_group,
- htab_delete_entry<type_unit_group>,
- xcalloc, xfree));
-}
-
/* Type units that don't have DW_AT_stmt_list are grouped into their own
partial symtabs. We combine several TUs per psymtab to not let the size
of any one psymtab grow too big. */
#define NO_STMT_LIST_TYPE_UNIT_PSYMTAB (1 << 31)
#define NO_STMT_LIST_TYPE_UNIT_PSYMTAB_SIZE 10
-/* Helper routine for get_type_unit_group.
- Create the type_unit_group object used to hold one or more TUs. */
-
-static std::unique_ptr<type_unit_group>
-create_type_unit_group (struct dwarf2_cu *cu, sect_offset line_offset_struct)
-{
- auto tu_group = std::make_unique<type_unit_group> ();
-
- tu_group->hash.dwo_unit = cu->dwo_unit;
- tu_group->hash.line_sect_off = line_offset_struct;
+/* Get the type unit group key for type unit CU. STMT_LIST is a DW_AT_stmt_list
+ attribute. */
- return tu_group;
-}
-
-/* Look up the type_unit_group for type unit CU, and create it if necessary.
- STMT_LIST is a DW_AT_stmt_list attribute. */
-
-static struct type_unit_group *
-get_type_unit_group (struct dwarf2_cu *cu, const struct attribute *stmt_list)
+static stmt_list_hash
+get_type_unit_group_key (struct dwarf2_cu *cu, const struct attribute *stmt_list)
{
dwarf2_per_objfile *per_objfile = cu->per_objfile;
struct tu_stats *tu_stats = &per_objfile->per_bfd->tu_stats;
- struct type_unit_group *tu_group;
- void **slot;
unsigned int line_offset;
- struct type_unit_group type_unit_group_for_lookup;
-
- if (per_objfile->per_bfd->type_unit_groups == NULL)
- per_objfile->per_bfd->type_unit_groups = allocate_type_unit_groups_table ();
/* Do we need to create a new group, or can we use an existing one? */
@@ -3606,291 +3182,158 @@ get_type_unit_group (struct dwarf2_cu *cu, const struct attribute *stmt_list)
++tu_stats->nr_stmt_less_type_units;
}
- type_unit_group_for_lookup.hash.dwo_unit = cu->dwo_unit;
- type_unit_group_for_lookup.hash.line_sect_off = (sect_offset) line_offset;
- slot = htab_find_slot (per_objfile->per_bfd->type_unit_groups.get (),
- &type_unit_group_for_lookup, INSERT);
- if (*slot == nullptr)
- {
- sect_offset line_offset_struct = (sect_offset) line_offset;
- std::unique_ptr<type_unit_group> grp
- = create_type_unit_group (cu, line_offset_struct);
- *slot = grp.release ();
- ++tu_stats->nr_symtabs;
- }
-
- tu_group = (struct type_unit_group *) *slot;
- gdb_assert (tu_group != nullptr);
- return tu_group;
-}
-
-
-cooked_index_storage::cooked_index_storage ()
- : m_reader_hash (htab_create_alloc (10, hash_cutu_reader,
- eq_cutu_reader,
- htab_delete_entry<cutu_reader>,
- xcalloc, xfree)),
- m_index (new cooked_index_shard)
-{
-}
-
-cutu_reader *
-cooked_index_storage::get_reader (dwarf2_per_cu_data *per_cu)
-{
- int index = per_cu->index;
- return (cutu_reader *) htab_find_with_hash (m_reader_hash.get (),
- &index, index);
-}
-
-cutu_reader *
-cooked_index_storage::preserve (std::unique_ptr<cutu_reader> reader)
-{
- m_abbrev_table_cache.add (reader->release_abbrev_table ());
-
- int index = reader->cu->per_cu->index;
- void **slot = htab_find_slot_with_hash (m_reader_hash.get (), &index,
- index, INSERT);
- gdb_assert (*slot == nullptr);
- cutu_reader *result = reader.get ();
- *slot = reader.release ();
- return result;
+ return {cu->dwo_unit, static_cast<sect_offset> (line_offset)};
}
-/* Hash function for a cutu_reader. */
-hashval_t
-cooked_index_storage::hash_cutu_reader (const void *a)
-{
- const cutu_reader *reader = (const cutu_reader *) a;
- return reader->cu->per_cu->index;
-}
-
-/* Equality function for cutu_reader. */
-int
-cooked_index_storage::eq_cutu_reader (const void *a, const void *b)
-{
- const cutu_reader *ra = (const cutu_reader *) a;
- const int *rb = (const int *) b;
- return ra->cu->per_cu->index == *rb;
-}
-
-/* Dump MAP as parent_map. */
+/* A subclass of cooked_index_worker that handles scanning
+ .debug_info. */
-static void
-dump_parent_map (dwarf2_per_bfd *per_bfd, const struct addrmap *map)
+class cooked_index_worker_debug_info : public cooked_index_worker
{
- auto_obstack temp_storage;
-
- auto annotate_cooked_index_entry
- = [&] (struct ui_file *outfile, CORE_ADDR start_addr, const void *value)
- {
- const cooked_index_entry *parent_entry
- = (const cooked_index_entry *)value;
+public:
+ cooked_index_worker_debug_info (dwarf2_per_objfile *per_objfile)
+ : cooked_index_worker (per_objfile)
+ {
+ gdb_assert (is_main_thread ());
- gdb_printf (outfile, "\n\t");
+ struct objfile *objfile = per_objfile->objfile;
+ dwarf2_per_bfd *per_bfd = per_objfile->per_bfd;
- bool found = false;
- for (auto sections : {per_bfd->infos, per_bfd->types})
- for (auto section : sections)
- if ((CORE_ADDR)section.buffer <= start_addr
- && start_addr < (CORE_ADDR) (section.buffer + section.size))
- {
- gdb_printf (outfile, "(section: %s, offset: 0x%" PRIx64 ")",
- section.get_name (),
- start_addr - (CORE_ADDR)section.buffer);
- found = true;
- break;
- }
+ dwarf_read_debug_printf ("Building psymtabs of objfile %s ...",
+ objfile_name (objfile));
- if (!found)
- gdb_printf (outfile, "()");
+ per_bfd->map_info_sections (objfile);
+ }
- if (parent_entry == nullptr)
- {
- gdb_printf (outfile, " -> ()");
- return;
- }
+private:
+ void do_reading () override;
- gdb_printf (outfile, " -> (0x%" PRIx64 ": %s)",
- to_underlying (parent_entry->die_offset),
- parent_entry->full_name (&temp_storage, false));
- };
+ /* Print collected type unit statistics. */
- addrmap_dump (const_cast<addrmap *> (map), gdb_stdlog, nullptr,
- annotate_cooked_index_entry);
-}
+ void print_tu_stats (dwarf2_per_objfile *per_objfile)
+ {
+ struct tu_stats *tu_stats = &per_objfile->per_bfd->tu_stats;
+
+ dwarf_read_debug_printf ("Type unit statistics:");
+ dwarf_read_debug_printf (" %d TUs", tu_stats->nr_tus);
+ dwarf_read_debug_printf (" %d uniq abbrev tables",
+ tu_stats->nr_uniq_abbrev_tables);
+ dwarf_read_debug_printf (" %d symtabs from stmt_list entries",
+ tu_stats->nr_symtabs);
+ dwarf_read_debug_printf (" %d symtab sharers",
+ tu_stats->nr_symtab_sharers);
+ dwarf_read_debug_printf (" %d type units without a stmt_list",
+ tu_stats->nr_stmt_less_type_units);
+ dwarf_read_debug_printf (" %d all_type_units reallocs",
+ tu_stats->nr_all_type_units_reallocs);
+ }
-/* See parent-map.h. */
+ void print_stats () override
+ {
+ if (dwarf_read_debug > 0)
+ print_tu_stats (m_per_objfile);
-void
-parent_map::dump (dwarf2_per_bfd *per_bfd) const
-{
- dump_parent_map (per_bfd, &m_map);
-}
+ if (dwarf_read_debug > 1)
+ {
+ dwarf_read_debug_printf_v ("Final m_all_parents_map:");
+ m_all_parents_map.dump (m_per_objfile->per_bfd);
+ }
+ }
-/* See parent-map.h. */
+ /* After the last DWARF-reading task has finished, this function
+ does the remaining work to finish the scan. */
+ void done_reading () override;
-void
-parent_map_map::dump (dwarf2_per_bfd *per_bfd) const
-{
- for (const auto &iter : m_maps)
- {
- gdb_printf (gdb_stdlog, "map start:\n");
- dump_parent_map (per_bfd, iter);
- }
-}
+ /* An iterator for the comp units. */
+ using unit_iterator = std::vector<dwarf2_per_cu_up>::iterator;
-/* An instance of this is created to index a CU. */
+ /* Process a batch of CUs. This may be called multiple times in
+ separate threads. TASK_NUMBER indicates which task this is --
+ the result is stored in that slot of M_RESULTS. */
+ void process_units (size_t task_number, unit_iterator first,
+ unit_iterator end);
-class cooked_indexer
-{
-public:
+ /* Process unit THIS_CU. */
+ void process_unit (dwarf2_per_cu *this_cu, dwarf2_per_objfile *per_objfile,
+ cooked_index_worker_result *storage);
- cooked_indexer (cooked_index_storage *storage,
- dwarf2_per_cu_data *per_cu,
- enum language language)
- : m_index_storage (storage),
- m_per_cu (per_cu),
- m_language (language),
- m_die_range_map (storage->get_parent_map ())
- {
- }
+ /* Process all type units existing in PER_OBJFILE::PER_BFD::ALL_UNITS. */
+ void process_type_units (dwarf2_per_objfile *per_objfile,
+ cooked_index_worker_result *storage);
- DISABLE_COPY_AND_ASSIGN (cooked_indexer);
+ /* Process the type unit wrapped in READER. */
+ void process_type_unit (cutu_reader *reader,
+ cooked_index_worker_result *storage);
- /* Index the given CU. */
- void make_index (cutu_reader *reader);
+ /* Process all type units of all DWO files.
-private:
+ This is needed in case a TU was emitted without its skeleton.
+ Note: This can't be done until we know what all the DWO files are. */
+ void process_skeletonless_type_units (dwarf2_per_objfile *per_objfile,
+ cooked_index_worker_result *storage);
- /* A helper function to scan the PC bounds of READER and record them
- in the storage's addrmap. */
- void check_bounds (cutu_reader *reader);
+ /* Process the type unit represented by DWO_UNIT. */
+ void process_skeletonless_type_unit (dwo_unit *dwo_unit,
+ dwarf2_per_objfile *per_objfile,
+ cooked_index_worker_result *storage);
- /* Ensure that the indicated CU exists. The cutu_reader for it is
- returned. FOR_SCANNING is true if the caller intends to scan all
- the DIEs in the CU; when false, this use is assumed to be to look
- up just a single DIE. */
- cutu_reader *ensure_cu_exists (cutu_reader *reader,
- dwarf2_per_objfile *per_objfile,
- sect_offset sect_off,
- bool is_dwz,
- bool for_scanning);
-
- /* Index DIEs in the READER starting at INFO_PTR. PARENT is
- the entry for the enclosing scope (nullptr at top level). FULLY
- is true when a full scan must be done -- in some languages,
- function scopes must be fully explored in order to find nested
- functions. This returns a pointer to just after the spot where
- reading stopped. */
- const gdb_byte *index_dies (cutu_reader *reader,
- const gdb_byte *info_ptr,
- std::variant<const cooked_index_entry *,
- parent_map::addr_type> parent,
- bool fully);
-
- /* Scan the attributes for a given DIE and update the out
- parameters. Returns a pointer to the byte after the DIE. */
- const gdb_byte *scan_attributes (dwarf2_per_cu_data *scanning_per_cu,
- cutu_reader *reader,
- const gdb_byte *watermark_ptr,
- const gdb_byte *info_ptr,
- const abbrev_info *abbrev,
- const char **name,
- const char **linkage_name,
- cooked_index_flag *flags,
- sect_offset *sibling_offset,
- const cooked_index_entry **parent_entry,
- parent_map::addr_type *maybe_defer,
- bool *is_enum_class,
- bool for_specification);
-
- /* Handle DW_TAG_imported_unit, by scanning the DIE to find
- DW_AT_import, and then scanning the referenced CU. Returns a
- pointer to the byte after the DIE. */
- const gdb_byte *index_imported_unit (cutu_reader *reader,
- const gdb_byte *info_ptr,
- const abbrev_info *abbrev);
-
- /* Recursively read DIEs, recording the section offsets in
- m_die_range_map and then calling index_dies. */
- const gdb_byte *recurse (cutu_reader *reader,
- const gdb_byte *info_ptr,
- std::variant<const cooked_index_entry *,
- parent_map::addr_type> parent_entry,
- bool fully);
-
- /* The storage object, where the results are kept. */
- cooked_index_storage *m_index_storage;
- /* The CU that we are reading on behalf of. This object might be
- asked to index one CU but to treat the results as if they come
- from some including CU; in this case the including CU would be
- recorded here. */
- dwarf2_per_cu_data *m_per_cu;
- /* The language that we're assuming when reading. */
- enum language m_language;
-
- /* Map from DIE ranges to newly-created entries. */
- parent_map *m_die_range_map;
+ /* A storage object for "leftovers" -- see the 'start' method, but
+ essentially things not parsed during the normal CU parsing
+ passes. */
+ cooked_index_worker_result m_index_storage;
};
-/* Subroutine of dwarf2_build_psymtabs_hard to simplify it.
- Process compilation unit THIS_CU for a psymtab. */
-
-static void
-process_psymtab_comp_unit (dwarf2_per_cu_data *this_cu,
- dwarf2_per_objfile *per_objfile,
- cooked_index_storage *storage)
+void
+cooked_index_worker_debug_info::process_unit
+ (dwarf2_per_cu *this_cu, dwarf2_per_objfile *per_objfile,
+ cooked_index_worker_result *storage)
{
cutu_reader *reader = storage->get_reader (this_cu);
if (reader == nullptr)
{
- cutu_reader new_reader (this_cu, per_objfile, nullptr, nullptr, false,
- &storage->get_abbrev_table_cache ());
+ const abbrev_table_cache &abbrev_table_cache
+ = storage->get_abbrev_table_cache ();
+ auto new_reader = std::make_unique<cutu_reader> (*this_cu, *per_objfile,
+ nullptr, nullptr, false,
+ language_minimal,
+ &abbrev_table_cache);
- if (new_reader.comp_unit_die == nullptr || new_reader.dummy_p)
+ if (new_reader->is_dummy ())
return;
- std::unique_ptr<cutu_reader> copy
- (new cutu_reader (std::move (new_reader)));
- reader = storage->preserve (std::move (copy));
+ reader = storage->preserve (std::move (new_reader));
}
- if (reader->comp_unit_die == nullptr || reader->dummy_p)
+ if (reader->is_dummy ())
return;
if (this_cu->is_debug_types)
- build_type_psymtabs_reader (reader, storage);
- else if (reader->comp_unit_die->tag != DW_TAG_partial_unit)
+ process_type_unit (reader, storage);
+ else if (reader->top_level_die ()->tag != DW_TAG_partial_unit)
{
bool nope = false;
if (this_cu->scanned.compare_exchange_strong (nope, true))
{
- prepare_one_comp_unit (reader->cu, reader->comp_unit_die,
- language_minimal);
gdb_assert (storage != nullptr);
- cooked_indexer indexer (storage, this_cu, reader->cu->lang ());
+ cooked_indexer indexer (storage, this_cu, reader->cu ()->lang ());
indexer.make_index (reader);
}
}
}
-/* Reader function for build_type_psymtabs. */
-
-static void
-build_type_psymtabs_reader (cutu_reader *reader,
- cooked_index_storage *storage)
+void
+cooked_index_worker_debug_info::process_type_unit
+ (cutu_reader *reader, cooked_index_worker_result *storage)
{
- struct dwarf2_cu *cu = reader->cu;
- struct dwarf2_per_cu_data *per_cu = cu->per_cu;
- struct die_info *type_unit_die = reader->comp_unit_die;
+ struct dwarf2_cu *cu = reader->cu ();
+ dwarf2_per_cu *per_cu = cu->per_cu;
+ die_info *type_unit_die = reader->top_level_die ();
gdb_assert (per_cu->is_debug_types);
if (! type_unit_die->has_children)
return;
- prepare_one_comp_unit (cu, type_unit_die, language_minimal);
-
gdb_assert (storage != nullptr);
cooked_indexer indexer (storage, per_cu, cu->lang ());
indexer.make_index (reader);
@@ -3914,34 +3357,14 @@ struct tu_abbrev_offset
sect_offset abbrev_offset;
};
-/* Efficiently read all the type units.
-
- The efficiency is because we sort TUs by the abbrev table they use and
- only read each abbrev table once. In one program there are 200K TUs
- sharing 8K abbrev tables.
-
- The main purpose of this function is to support building the
- dwarf2_per_objfile->per_bfd->type_unit_groups table.
- TUs typically share the DW_AT_stmt_list of the CU they came from, so we
- can collapse the search space by grouping them by stmt_list.
- The savings can be significant, in the same program from above the 200K TUs
- share 8K stmt_list tables.
-
- FUNC is expected to call get_type_unit_group, which will create the
- struct type_unit_group if necessary and add it to
- dwarf2_per_objfile->per_bfd->type_unit_groups. */
-
-static void
-build_type_psymtabs (dwarf2_per_objfile *per_objfile,
- cooked_index_storage *storage)
+void
+cooked_index_worker_debug_info::process_type_units
+ (dwarf2_per_objfile *per_objfile, cooked_index_worker_result *storage)
{
struct tu_stats *tu_stats = &per_objfile->per_bfd->tu_stats;
abbrev_table_up abbrev_table;
sect_offset abbrev_offset;
- /* It's up to the caller to not call us multiple times. */
- gdb_assert (per_objfile->per_bfd->type_unit_groups == NULL);
-
if (per_objfile->per_bfd->all_type_units.size () == 0)
return;
@@ -3972,15 +3395,14 @@ build_type_psymtabs (dwarf2_per_objfile *per_objfile,
sorted_by_abbrev.reserve (per_objfile->per_bfd->all_type_units.size ());
for (const auto &cu : per_objfile->per_bfd->all_units)
- {
- if (cu->is_debug_types)
- {
- auto sig_type = static_cast<signatured_type *> (cu.get ());
- sorted_by_abbrev.emplace_back
- (sig_type, read_abbrev_offset (per_objfile, sig_type->section,
- sig_type->sect_off));
- }
- }
+ if (cu->is_debug_types)
+ {
+ auto sig_type = static_cast<signatured_type *> (cu.get ());
+ sorted_by_abbrev.emplace_back (sig_type,
+ read_abbrev_offset (per_objfile,
+ sig_type->section,
+ sig_type->sect_off));
+ }
std::sort (sorted_by_abbrev.begin (), sorted_by_abbrev.end ());
@@ -3999,169 +3421,65 @@ build_type_psymtabs (dwarf2_per_objfile *per_objfile,
++tu_stats->nr_uniq_abbrev_tables;
}
- cutu_reader reader (tu.sig_type, per_objfile,
- abbrev_table.get (), nullptr, false);
- if (!reader.dummy_p)
- build_type_psymtabs_reader (&reader, storage);
+ cutu_reader reader (*tu.sig_type, *per_objfile,
+ abbrev_table.get (), nullptr, false,
+ language_minimal);
+ if (!reader.is_dummy ())
+ storage->catch_error ([&] ()
+ {
+ process_type_unit (&reader, storage);
+ });
}
}
-/* Print collected type unit statistics. */
-
-static void
-print_tu_stats (dwarf2_per_objfile *per_objfile)
-{
- struct tu_stats *tu_stats = &per_objfile->per_bfd->tu_stats;
-
- dwarf_read_debug_printf ("Type unit statistics:");
- dwarf_read_debug_printf (" %d TUs", tu_stats->nr_tus);
- dwarf_read_debug_printf (" %d uniq abbrev tables",
- tu_stats->nr_uniq_abbrev_tables);
- dwarf_read_debug_printf (" %d symtabs from stmt_list entries",
- tu_stats->nr_symtabs);
- dwarf_read_debug_printf (" %d symtab sharers",
- tu_stats->nr_symtab_sharers);
- dwarf_read_debug_printf (" %d type units without a stmt_list",
- tu_stats->nr_stmt_less_type_units);
- dwarf_read_debug_printf (" %d all_type_units reallocs",
- tu_stats->nr_all_type_units_reallocs);
-}
-
-struct skeleton_data
-{
- dwarf2_per_objfile *per_objfile;
- cooked_index_storage *storage;
-};
-
-/* Traversal function for process_skeletonless_type_unit.
- Read a TU in a DWO file and build partial symbols for it. */
-
-static int
-process_skeletonless_type_unit (void **slot, void *info)
+void
+cooked_index_worker_debug_info::process_skeletonless_type_unit
+ (dwo_unit *dwo_unit, dwarf2_per_objfile *per_objfile,
+ cooked_index_worker_result *storage)
{
- struct dwo_unit *dwo_unit = (struct dwo_unit *) *slot;
- skeleton_data *data = (skeleton_data *) info;
+ dwarf2_per_bfd *per_bfd = per_objfile->per_bfd;
/* If this TU doesn't exist in the global table, add it and read it in. */
+ auto sig_type_it = per_bfd->signatured_types.find (dwo_unit->signature);
- if (data->per_objfile->per_bfd->signatured_types == NULL)
- data->per_objfile->per_bfd->signatured_types
- = allocate_signatured_type_table ();
-
- signatured_type find_entry (dwo_unit->signature);
- slot = htab_find_slot (data->per_objfile->per_bfd->signatured_types.get (),
- &find_entry, INSERT);
/* If we've already seen this type there's nothing to do. What's happening
is we're doing our own version of comdat-folding here. */
- if (*slot != NULL)
- return 1;
+ if (sig_type_it != per_bfd->signatured_types.end ())
+ return;
/* This does the job that create_all_units would have done for
this TU. */
- signatured_type *entry
- = add_type_unit (data->per_objfile, dwo_unit->signature, slot);
- fill_in_sig_entry_from_dwo_entry (data->per_objfile, entry, dwo_unit);
- *slot = entry;
+ sig_type_it = add_type_unit (per_bfd, dwo_unit->section, dwo_unit->sect_off,
+ dwo_unit->length, dwo_unit->signature);
+ fill_in_sig_entry_from_dwo_entry (per_objfile, *sig_type_it, dwo_unit);
/* This does the job that build_type_psymtabs would have done. */
- cutu_reader reader (entry, data->per_objfile, nullptr, nullptr, false);
- if (!reader.dummy_p)
- build_type_psymtabs_reader (&reader, data->storage);
-
- return 1;
+ cutu_reader reader (**sig_type_it, *per_objfile, nullptr, nullptr, false,
+ language_minimal);
+ if (!reader.is_dummy ())
+ process_type_unit (&reader, storage);
}
-/* Traversal function for process_skeletonless_type_units. */
-
-static int
-process_dwo_file_for_skeletonless_type_units (void **slot, void *info)
-{
- struct dwo_file *dwo_file = (struct dwo_file *) *slot;
-
- if (dwo_file->tus != NULL)
- htab_traverse_noresize (dwo_file->tus.get (),
- process_skeletonless_type_unit, info);
-
- return 1;
-}
-
-/* Scan all TUs of DWO files, verifying we've processed them.
- This is needed in case a TU was emitted without its skeleton.
- Note: This can't be done until we know what all the DWO files are. */
-
-static void
-process_skeletonless_type_units (dwarf2_per_objfile *per_objfile,
- cooked_index_storage *storage)
+void
+cooked_index_worker_debug_info::process_skeletonless_type_units
+ (dwarf2_per_objfile *per_objfile, cooked_index_worker_result *storage)
{
- skeleton_data data { per_objfile, storage };
+ scoped_time_it time_it ("DWARF skeletonless type units", m_per_command_time);
/* Skeletonless TUs in DWP files without .gdb_index is not supported yet. */
- if (get_dwp_file (per_objfile) == NULL
- && per_objfile->per_bfd->dwo_files != NULL)
- {
- htab_traverse_noresize (per_objfile->per_bfd->dwo_files.get (),
- process_dwo_file_for_skeletonless_type_units,
- &data);
- }
+ if (per_objfile->per_bfd->dwp_file == nullptr)
+ for (const dwo_file_up &file : per_objfile->per_bfd->dwo_files)
+ for (const dwo_unit_up &unit : file->tus)
+ storage->catch_error ([&] ()
+ {
+ process_skeletonless_type_unit (unit.get (), per_objfile, storage);
+ });
}
-/* A subclass of cooked_index_worker that handles scanning
- .debug_info. */
-
-class cooked_index_debug_info : public cooked_index_worker
-{
-public:
- cooked_index_debug_info (dwarf2_per_objfile *per_objfile)
- : cooked_index_worker (per_objfile)
- {
- gdb_assert (is_main_thread ());
-
- struct objfile *objfile = per_objfile->objfile;
- dwarf2_per_bfd *per_bfd = per_objfile->per_bfd;
-
- dwarf_read_debug_printf ("Building psymtabs of objfile %s ...",
- objfile_name (objfile));
-
- per_bfd->map_info_sections (objfile);
- }
-
-private:
-
- void do_reading () override;
-
- void print_stats () override
- {
- if (dwarf_read_debug > 0)
- print_tu_stats (m_per_objfile);
- if (dwarf_read_debug > 1)
- {
- dwarf_read_debug_printf_v ("Final m_all_parents_map:");
- m_all_parents_map.dump (m_per_objfile->per_bfd);
- }
- }
-
- /* After the last DWARF-reading task has finished, this function
- does the remaining work to finish the scan. */
- void done_reading ();
-
- /* An iterator for the comp units. */
- typedef std::vector<dwarf2_per_cu_data_up>::iterator unit_iterator;
-
- /* Process a batch of CUs. This may be called multiple times in
- separate threads. TASK_NUMBER indicates which task this is --
- the result is stored in that slot of M_RESULTS. */
- void process_cus (size_t task_number, unit_iterator first,
- unit_iterator end);
-
- /* A storage object for "leftovers" -- see the 'start' method, but
- essentially things not parsed during the normal CU parsing
- passes. */
- cooked_index_storage m_index_storage;
-};
-
void
-cooked_index_debug_info::process_cus (size_t task_number, unit_iterator first,
- unit_iterator end)
+cooked_index_worker_debug_info::process_units (size_t task_number,
+ unit_iterator first,
+ unit_iterator end)
{
SCOPE_EXIT { bfd_thread_cleanup (); };
@@ -4169,64 +3487,41 @@ cooked_index_debug_info::process_cus (size_t task_number, unit_iterator first,
complaint_interceptor complaint_handler;
std::vector<gdb_exception> errors;
- cooked_index_storage thread_storage;
+ cooked_index_worker_result thread_storage;
for (auto inner = first; inner != end; ++inner)
{
- dwarf2_per_cu_data *per_cu = inner->get ();
- try
- {
- process_psymtab_comp_unit (per_cu, m_per_objfile, &thread_storage);
- }
- catch (gdb_exception &except)
+ dwarf2_per_cu *per_cu = inner->get ();
+
+ thread_storage.catch_error ([&] ()
{
- errors.push_back (std::move (except));
- }
+ process_unit (per_cu, m_per_objfile, &thread_storage);
+ });
}
- m_results[task_number] = result_type (thread_storage.release (),
- complaint_handler.release (),
- std::move (errors),
- thread_storage.release_parent_map ());
+ thread_storage.done_reading (complaint_handler.release ());
+ m_results[task_number] = std::move (thread_storage);
}
void
-cooked_index_debug_info::done_reading ()
+cooked_index_worker_debug_info::done_reading ()
{
- /* Only handle the scanning results here. Complaints and exceptions
- can only be dealt with on the main thread. */
- std::vector<std::unique_ptr<cooked_index_shard>> indexes;
- for (auto &one_result : m_results)
- {
- indexes.push_back (std::move (std::get<0> (one_result)));
- m_all_parents_map.add_map (std::get<3> (one_result));
- }
-
/* This has to wait until we read the CUs, we need the list of DWOs. */
process_skeletonless_type_units (m_per_objfile, &m_index_storage);
- indexes.push_back (m_index_storage.release ());
- indexes.shrink_to_fit ();
+ m_results.push_back (std::move (m_index_storage));
- m_all_parents_map.add_map (m_index_storage.release_parent_map ());
-
- dwarf2_per_bfd *per_bfd = m_per_objfile->per_bfd;
- cooked_index *table
- = (gdb::checked_static_cast<cooked_index *>
- (per_bfd->index_table.get ()));
- table->set_contents (std::move (indexes), &m_warnings,
- &m_all_parents_map);
+ /* Call into the base class. */
+ cooked_index_worker::done_reading ();
}
void
-cooked_index_debug_info::do_reading ()
+cooked_index_worker_debug_info::do_reading ()
{
dwarf2_per_bfd *per_bfd = m_per_objfile->per_bfd;
create_all_units (m_per_objfile);
- build_type_psymtabs (m_per_objfile, &m_index_storage);
+ process_type_units (m_per_objfile, &m_index_storage);
- per_bfd->quick_file_names_table
- = create_quick_file_names_table (per_bfd->all_units.size ());
if (!per_bfd->debug_aranges.empty ())
read_addrmap_from_aranges (m_per_objfile, &per_bfd->debug_aranges,
m_index_storage.get_addrmap (),
@@ -4278,7 +3573,8 @@ cooked_index_debug_info::do_reading ()
gdb_assert (iter != last);
workers.add_task ([this, task_count, iter, last] ()
{
- process_cus (task_count, iter, last);
+ scoped_time_it time_it ("DWARF indexing worker", m_per_command_time);
+ process_units (task_count, iter, last);
});
++task_count;
@@ -4294,11 +3590,12 @@ read_comp_units_from_section (dwarf2_per_objfile *per_objfile,
struct dwarf2_section_info *section,
struct dwarf2_section_info *abbrev_section,
unsigned int is_dwz,
- htab_up &types_htab,
- rcuh_kind section_kind)
+ signatured_type_set &sig_types,
+ ruh_kind section_kind)
{
const gdb_byte *info_ptr;
struct objfile *objfile = per_objfile->objfile;
+ dwarf2_per_bfd *per_bfd = per_objfile->per_bfd;
dwarf_read_debug_printf ("Reading %s for %s",
section->get_name (),
@@ -4310,50 +3607,40 @@ read_comp_units_from_section (dwarf2_per_objfile *per_objfile,
while (info_ptr < section->buffer + section->size)
{
- dwarf2_per_cu_data_up this_cu;
+ dwarf2_per_cu_up this_cu;
sect_offset sect_off = (sect_offset) (info_ptr - section->buffer);
- comp_unit_head cu_header;
- read_and_check_comp_unit_head (per_objfile, &cu_header, section,
- abbrev_section, info_ptr,
- section_kind);
+ unit_head cu_header;
+ read_and_check_unit_head (&cu_header, section, abbrev_section, info_ptr,
+ section_kind);
+
+ unsigned int length = cu_header.get_length_with_initial ();
/* Save the compilation unit for later lookup. */
if (cu_header.unit_type != DW_UT_type)
- this_cu = per_objfile->per_bfd->allocate_per_cu ();
+ this_cu = per_bfd->allocate_per_cu (section, sect_off, length, is_dwz);
else
{
- if (types_htab == nullptr)
- types_htab = allocate_signatured_type_table ();
-
- auto sig_type = per_objfile->per_bfd->allocate_signatured_type
- (cu_header.signature);
+ auto sig_type
+ = per_bfd->allocate_signatured_type (section, sect_off, length,
+ is_dwz, cu_header.signature);
signatured_type *sig_ptr = sig_type.get ();
- sig_type->type_offset_in_tu = cu_header.type_cu_offset_in_tu;
+ sig_type->type_offset_in_tu = cu_header.type_offset_in_tu;
this_cu.reset (sig_type.release ());
- void **slot = htab_find_slot (types_htab.get (), sig_ptr, INSERT);
- gdb_assert (slot != nullptr);
- if (*slot != nullptr)
+ auto inserted = sig_types.emplace (sig_ptr).second;
+
+ if (!inserted)
complaint (_("debug type entry at offset %s is duplicate to"
" the entry at offset %s, signature %s"),
sect_offset_str (sect_off),
sect_offset_str (sig_ptr->sect_off),
hex_string (sig_ptr->signature));
- *slot = sig_ptr;
}
- this_cu->sect_off = sect_off;
- this_cu->set_length (cu_header.get_length_with_initial ());
- this_cu->is_dwz = is_dwz;
- this_cu->section = section;
- /* Init this asap, to avoid a data race in the set_version in
- cutu_reader::cutu_reader (which may be run in parallel for the cooked
- index case). */
- this_cu->set_version (cu_header.version);
info_ptr = info_ptr + this_cu->length ();
- per_objfile->per_bfd->all_units.push_back (std::move (this_cu));
+ per_bfd->all_units.push_back (std::move (this_cu));
}
}
@@ -4364,7 +3651,7 @@ finalize_all_units (dwarf2_per_bfd *per_bfd)
{
size_t nr_tus = per_bfd->tu_stats.nr_tus;
size_t nr_cus = per_bfd->all_units.size () - nr_tus;
- gdb::array_view<dwarf2_per_cu_data_up> tmp = per_bfd->all_units;
+ gdb::array_view<dwarf2_per_cu_up> tmp = per_bfd->all_units;
per_bfd->all_comp_units = tmp.slice (0, nr_cus);
per_bfd->all_type_units = tmp.slice (nr_cus, nr_tus);
}
@@ -4374,23 +3661,24 @@ finalize_all_units (dwarf2_per_bfd *per_bfd)
void
create_all_units (dwarf2_per_objfile *per_objfile)
{
- htab_up types_htab;
gdb_assert (per_objfile->per_bfd->all_units.empty ());
+ signatured_type_set sig_types;
+
for (dwarf2_section_info &section : per_objfile->per_bfd->infos)
read_comp_units_from_section (per_objfile, &section,
- &per_objfile->per_bfd->abbrev, 0,
- types_htab, rcuh_kind::COMPILE);
+ &per_objfile->per_bfd->abbrev, 0, sig_types,
+ ruh_kind::COMPILE);
for (dwarf2_section_info &section : per_objfile->per_bfd->types)
read_comp_units_from_section (per_objfile, &section,
- &per_objfile->per_bfd->abbrev, 0,
- types_htab, rcuh_kind::TYPE);
+ &per_objfile->per_bfd->abbrev, 0, sig_types,
+ ruh_kind::TYPE);
- dwz_file *dwz = dwarf2_get_dwz_file (per_objfile->per_bfd);
+ dwz_file *dwz = per_objfile->per_bfd->get_dwz_file ();
if (dwz != NULL)
{
read_comp_units_from_section (per_objfile, &dwz->info, &dwz->abbrev, 1,
- types_htab, rcuh_kind::COMPILE);
+ sig_types, ruh_kind::COMPILE);
if (!dwz->types.empty ())
{
@@ -4402,7 +3690,7 @@ create_all_units (dwarf2_per_objfile *per_objfile)
}
}
- per_objfile->per_bfd->signatured_types = std::move (types_htab);
+ per_objfile->per_bfd->signatured_types = std::move (sig_types);
finalize_all_units (per_objfile->per_bfd);
}
@@ -4424,27 +3712,25 @@ peek_abbrev_code (bfd *abfd, const gdb_byte *info_ptr)
an empty DIE). In either case *BYTES_READ will be set to the length of
the initial number. */
-static const struct abbrev_info *
-peek_die_abbrev (const die_reader_specs &reader,
- const gdb_byte *info_ptr, unsigned int *bytes_read)
+const abbrev_info *
+cutu_reader::peek_die_abbrev (const gdb_byte *info_ptr,
+ unsigned int *bytes_read)
{
- dwarf2_cu *cu = reader.cu;
- bfd *abfd = reader.abfd;
unsigned int abbrev_number
- = read_unsigned_leb128 (abfd, info_ptr, bytes_read);
+ = read_unsigned_leb128 (m_abfd, info_ptr, bytes_read);
if (abbrev_number == 0)
return NULL;
- const abbrev_info *abbrev
- = reader.abbrev_table->lookup_abbrev (abbrev_number);
+ const abbrev_info *abbrev = m_abbrev_table->lookup_abbrev (abbrev_number);
if (!abbrev)
{
error (_(DWARF_ERROR_PREFIX
"Could not find abbrev number %d in %s at offset %s"
" [in module %s]"),
- abbrev_number, cu->per_cu->is_debug_types ? "TU" : "CU",
- sect_offset_str (cu->header.sect_off), bfd_get_filename (abfd));
+ abbrev_number, m_cu->per_cu->is_debug_types ? "TU" : "CU",
+ sect_offset_str (m_cu->header.sect_off),
+ bfd_get_filename (m_abfd));
}
return abbrev;
@@ -4454,19 +3740,121 @@ peek_die_abbrev (const die_reader_specs &reader,
Returns a pointer to the end of a series of DIEs, terminated by an empty
DIE. Any children of the skipped DIEs will also be skipped. */
-static const gdb_byte *
-skip_children (const struct die_reader_specs *reader, const gdb_byte *info_ptr)
+const gdb_byte *
+cutu_reader::skip_children (const gdb_byte *info_ptr)
{
while (1)
{
unsigned int bytes_read;
- const abbrev_info *abbrev = peek_die_abbrev (*reader, info_ptr,
- &bytes_read);
+ const abbrev_info *abbrev = this->peek_die_abbrev (info_ptr, &bytes_read);
if (abbrev == NULL)
return info_ptr + bytes_read;
else
- info_ptr = skip_one_die (reader, info_ptr + bytes_read, abbrev);
+ info_ptr = this->skip_one_die (info_ptr + bytes_read, abbrev);
+ }
+}
+
+/* See read.h. */
+
+const gdb_byte *
+cutu_reader::skip_one_attribute (dwarf_form form, const gdb_byte *info_ptr)
+{
+ unsigned int bytes_read;
+
+ switch (form)
+ {
+ case DW_FORM_ref_addr:
+ /* In DWARF 2, DW_FORM_ref_addr is address sized; in DWARF 3
+ and later it is offset sized. */
+ if (m_cu->header.version == 2)
+ return info_ptr + m_cu->header.addr_size;
+ else
+ return info_ptr + m_cu->header.offset_size;
+
+ case DW_FORM_GNU_ref_alt:
+ return info_ptr + m_cu->header.offset_size;
+
+ case DW_FORM_addr:
+ return info_ptr + m_cu->header.addr_size;
+
+ case DW_FORM_data1:
+ case DW_FORM_ref1:
+ case DW_FORM_flag:
+ case DW_FORM_strx1:
+ return info_ptr + 1;
+
+ case DW_FORM_flag_present:
+ case DW_FORM_implicit_const:
+ return info_ptr;
+
+ case DW_FORM_data2:
+ case DW_FORM_ref2:
+ case DW_FORM_strx2:
+ return info_ptr + 2;
+
+ case DW_FORM_strx3:
+ return info_ptr + 3;
+
+ case DW_FORM_data4:
+ case DW_FORM_ref4:
+ case DW_FORM_strx4:
+ case DW_FORM_ref_sup4:
+ return info_ptr + 4;
+
+ case DW_FORM_data8:
+ case DW_FORM_ref8:
+ case DW_FORM_ref_sig8:
+ case DW_FORM_ref_sup8:
+ return info_ptr + 8;
+
+ case DW_FORM_data16:
+ return info_ptr + 16;
+
+ case DW_FORM_string:
+ read_direct_string (m_abfd, info_ptr, &bytes_read);
+ return info_ptr + bytes_read;
+
+ case DW_FORM_sec_offset:
+ case DW_FORM_strp:
+ case DW_FORM_GNU_strp_alt:
+ case DW_FORM_strp_sup:
+ return info_ptr + m_cu->header.offset_size;
+
+ case DW_FORM_exprloc:
+ case DW_FORM_block:
+ info_ptr += read_unsigned_leb128 (m_abfd, info_ptr, &bytes_read);
+ return info_ptr + bytes_read;
+
+ case DW_FORM_block1:
+ return info_ptr + 1 + read_1_byte (m_abfd, info_ptr);
+
+ case DW_FORM_block2:
+ return info_ptr + 2 + read_2_bytes (m_abfd, info_ptr);
+
+ case DW_FORM_block4:
+ return info_ptr + 4 + read_4_bytes (m_abfd, info_ptr);
+
+ case DW_FORM_addrx:
+ case DW_FORM_strx:
+ case DW_FORM_sdata:
+ case DW_FORM_udata:
+ case DW_FORM_ref_udata:
+ case DW_FORM_GNU_addr_index:
+ case DW_FORM_GNU_str_index:
+ case DW_FORM_rnglistx:
+ case DW_FORM_loclistx:
+ return safe_skip_leb128 (info_ptr, m_buffer_end);
+
+ case DW_FORM_indirect:
+ form = static_cast<dwarf_form> (read_unsigned_leb128 (m_abfd, info_ptr,
+ &bytes_read));
+ return this->skip_one_attribute(form, info_ptr + bytes_read);
+
+ default:
+ error (_ (DWARF_ERROR_PREFIX
+ "Cannot handle %s in DWARF reader [in module %s]"),
+ dwarf_form_name (form), bfd_get_filename (m_abfd));
}
}
@@ -4479,26 +3867,18 @@ skip_children (const struct die_reader_specs *reader, const gdb_byte *info_ptr)
returns a pointer to this DIE's sibling, skipping any children.
Otherwise, returns a pointer to the DIE's first child. */
-static const gdb_byte *
-skip_one_die (const struct die_reader_specs *reader, const gdb_byte *info_ptr,
- const struct abbrev_info *abbrev, bool do_skip_children)
+const gdb_byte *
+cutu_reader::skip_one_die (const gdb_byte *info_ptr, const abbrev_info *abbrev,
+ bool do_skip_children)
{
- unsigned int bytes_read;
- struct attribute attr;
- bfd *abfd = reader->abfd;
- struct dwarf2_cu *cu = reader->cu;
- const gdb_byte *buffer = reader->buffer;
- const gdb_byte *buffer_end = reader->buffer_end;
- unsigned int form, i;
-
if (do_skip_children && abbrev->sibling_offset != (unsigned short) -1)
{
/* We only handle DW_FORM_ref4 here. */
const gdb_byte *sibling_data = info_ptr + abbrev->sibling_offset;
- unsigned int offset = read_4_bytes (abfd, sibling_data);
+ unsigned int offset = read_4_bytes (m_abfd, sibling_data);
const gdb_byte *sibling_ptr
- = buffer + to_underlying (cu->header.sect_off) + offset;
- if (sibling_ptr >= info_ptr && sibling_ptr < reader->buffer_end)
+ = m_buffer + to_underlying (m_cu->header.sect_off) + offset;
+ if (sibling_ptr >= info_ptr && sibling_ptr < m_buffer_end)
return sibling_ptr;
/* Fall through to the slow way. */
}
@@ -4506,11 +3886,11 @@ skip_one_die (const struct die_reader_specs *reader, const gdb_byte *info_ptr,
{
info_ptr += abbrev->size_if_constant;
if (do_skip_children && abbrev->has_children)
- return skip_children (reader, info_ptr);
+ return this->skip_children (info_ptr);
return info_ptr;
}
- for (i = 0; i < abbrev->num_attrs; i++)
+ for (unsigned int i = 0; i < abbrev->num_attrs; i++)
{
/* The only abbrev we care about is DW_AT_sibling. */
if (do_skip_children && abbrev->attrs[i].name == DW_AT_sibling)
@@ -4518,123 +3898,30 @@ skip_one_die (const struct die_reader_specs *reader, const gdb_byte *info_ptr,
/* Note there is no need for the extra work of
"reprocessing" here, so we pass false for that
argument. */
- read_attribute (reader, &attr, &abbrev->attrs[i], info_ptr, false);
+ attribute attr;
+ this->read_attribute (&attr, &abbrev->attrs[i], info_ptr, false);
if (attr.form == DW_FORM_ref_addr)
complaint (_("ignoring absolute DW_AT_sibling"));
else
{
sect_offset off = attr.get_ref_die_offset ();
- const gdb_byte *sibling_ptr = buffer + to_underlying (off);
+ const gdb_byte *sibling_ptr = m_buffer + to_underlying (off);
if (sibling_ptr < info_ptr)
complaint (_("DW_AT_sibling points backwards"));
- else if (sibling_ptr > reader->buffer_end)
- reader->die_section->overflow_complaint ();
+ else if (sibling_ptr > m_buffer_end)
+ m_die_section->overflow_complaint ();
else
return sibling_ptr;
}
}
/* If it isn't DW_AT_sibling, skip this attribute. */
- form = abbrev->attrs[i].form;
- skip_attribute:
- switch (form)
- {
- case DW_FORM_ref_addr:
- /* In DWARF 2, DW_FORM_ref_addr is address sized; in DWARF 3
- and later it is offset sized. */
- if (cu->header.version == 2)
- info_ptr += cu->header.addr_size;
- else
- info_ptr += cu->header.offset_size;
- break;
- case DW_FORM_GNU_ref_alt:
- info_ptr += cu->header.offset_size;
- break;
- case DW_FORM_addr:
- info_ptr += cu->header.addr_size;
- break;
- case DW_FORM_data1:
- case DW_FORM_ref1:
- case DW_FORM_flag:
- case DW_FORM_strx1:
- info_ptr += 1;
- break;
- case DW_FORM_flag_present:
- case DW_FORM_implicit_const:
- break;
- case DW_FORM_data2:
- case DW_FORM_ref2:
- case DW_FORM_strx2:
- info_ptr += 2;
- break;
- case DW_FORM_strx3:
- info_ptr += 3;
- break;
- case DW_FORM_data4:
- case DW_FORM_ref4:
- case DW_FORM_strx4:
- info_ptr += 4;
- break;
- case DW_FORM_data8:
- case DW_FORM_ref8:
- case DW_FORM_ref_sig8:
- info_ptr += 8;
- break;
- case DW_FORM_data16:
- info_ptr += 16;
- break;
- case DW_FORM_string:
- read_direct_string (abfd, info_ptr, &bytes_read);
- info_ptr += bytes_read;
- break;
- case DW_FORM_sec_offset:
- case DW_FORM_strp:
- case DW_FORM_GNU_strp_alt:
- info_ptr += cu->header.offset_size;
- break;
- case DW_FORM_exprloc:
- case DW_FORM_block:
- info_ptr += read_unsigned_leb128 (abfd, info_ptr, &bytes_read);
- info_ptr += bytes_read;
- break;
- case DW_FORM_block1:
- info_ptr += 1 + read_1_byte (abfd, info_ptr);
- break;
- case DW_FORM_block2:
- info_ptr += 2 + read_2_bytes (abfd, info_ptr);
- break;
- case DW_FORM_block4:
- info_ptr += 4 + read_4_bytes (abfd, info_ptr);
- break;
- case DW_FORM_addrx:
- case DW_FORM_strx:
- case DW_FORM_sdata:
- case DW_FORM_udata:
- case DW_FORM_ref_udata:
- case DW_FORM_GNU_addr_index:
- case DW_FORM_GNU_str_index:
- case DW_FORM_rnglistx:
- case DW_FORM_loclistx:
- info_ptr = safe_skip_leb128 (info_ptr, buffer_end);
- break;
- case DW_FORM_indirect:
- form = read_unsigned_leb128 (abfd, info_ptr, &bytes_read);
- info_ptr += bytes_read;
- /* We need to continue parsing from here, so just go back to
- the top. */
- goto skip_attribute;
-
- default:
- error (_(DWARF_ERROR_PREFIX
- "Cannot handle %s in DWARF reader [in module %s]"),
- dwarf_form_name (form),
- bfd_get_filename (abfd));
- }
+ info_ptr = this->skip_one_attribute (abbrev->attrs[i].form, info_ptr);
}
if (do_skip_children && abbrev->has_children)
- return skip_children (reader, info_ptr);
+ return this->skip_children (info_ptr);
else
return info_ptr;
}
@@ -4644,14 +3931,12 @@ skip_one_die (const struct die_reader_specs *reader, const gdb_byte *info_ptr,
/* Add PER_CU to the queue. */
static void
-queue_comp_unit (dwarf2_per_cu_data *per_cu,
- dwarf2_per_objfile *per_objfile,
- enum language pretend_language)
+queue_comp_unit (dwarf2_per_cu *per_cu, dwarf2_per_objfile *per_objfile)
{
per_cu->queued = 1;
gdb_assert (per_objfile->queue.has_value ());
- per_objfile->queue->emplace (per_cu, per_objfile, pretend_language);
+ per_objfile->queue->emplace (per_cu, per_objfile);
}
/* If PER_CU is not yet expanded of queued for expansion, add it to the queue.
@@ -4679,11 +3964,9 @@ queue_comp_unit (dwarf2_per_cu_data *per_cu,
indicator of whether the CU's DIEs are loaded right now, it should check
that by calling `dwarf2_per_objfile::get_cu` instead. */
-static int
-maybe_queue_comp_unit (struct dwarf2_cu *dependent_cu,
- dwarf2_per_cu_data *per_cu,
- dwarf2_per_objfile *per_objfile,
- enum language pretend_language)
+static bool
+maybe_queue_comp_unit (struct dwarf2_cu *dependent_cu, dwarf2_per_cu *per_cu,
+ dwarf2_per_objfile *per_objfile)
{
/* Mark the dependence relation so that we don't flush PER_CU
too early. */
@@ -4702,15 +3985,21 @@ maybe_queue_comp_unit (struct dwarf2_cu *dependent_cu,
gdb_assert (!per_objfile->symtab_set_p (per_cu));
/* The DIEs are already loaded, the caller doesn't need to do it. */
- return 0;
+ return false;
}
bool queued = false;
if (!per_objfile->symtab_set_p (per_cu))
{
/* Add it to the queue. */
- queue_comp_unit (per_cu, per_objfile, pretend_language);
+ queue_comp_unit (per_cu, per_objfile);
queued = true;
+
+ dwarf_read_debug_printf ("Queuing CU for expansion: "
+ "section offset = 0x%" PRIx64 ", "
+ "queue size = %zu",
+ to_underlying (per_cu->sect_off),
+ per_objfile->queue->size ());
}
/* If the compilation unit is already loaded, just mark it as
@@ -4729,15 +4018,18 @@ maybe_queue_comp_unit (struct dwarf2_cu *dependent_cu,
static void
process_queue (dwarf2_per_objfile *per_objfile)
{
- dwarf_read_debug_printf ("Expanding one or more symtabs of objfile %s ...",
- objfile_name (per_objfile->objfile));
+ DWARF_READ_SCOPED_DEBUG_START_END
+ ("Expanding one or more symtabs of objfile %s ...",
+ objfile_name (per_objfile->objfile));
+
+ unsigned int expanded_count = 0;
/* The queue starts out with one item, but following a DIE reference
may load a new CU, adding it to the end of the queue. */
while (!per_objfile->queue->empty ())
{
dwarf2_queue_item &item = per_objfile->queue->front ();
- dwarf2_per_cu_data *per_cu = item.per_cu;
+ dwarf2_per_cu *per_cu = item.per_cu;
if (!per_objfile->symtab_set_p (per_cu))
{
@@ -4746,8 +4038,11 @@ process_queue (dwarf2_per_objfile *per_objfile)
/* Skip dummy CUs. */
if (cu != nullptr)
{
+ namespace chr = std::chrono;
+
unsigned int debug_print_threshold;
char buf[100];
+ std::optional<chr::time_point<chr::steady_clock>> start_time;
if (per_cu->is_debug_types)
{
@@ -4769,15 +4064,28 @@ process_queue (dwarf2_per_objfile *per_objfile)
}
if (dwarf_read_debug >= debug_print_threshold)
- dwarf_read_debug_printf ("Expanding symtab of %s", buf);
+ {
+ dwarf_read_debug_printf ("Expanding symtab of %s", buf);
+ start_time = chr::steady_clock::now ();
+ }
+
+ ++expanded_count;
if (per_cu->is_debug_types)
- process_full_type_unit (cu, item.pretend_language);
+ process_full_type_unit (cu);
else
- process_full_comp_unit (cu, item.pretend_language);
+ process_full_comp_unit (cu);
if (dwarf_read_debug >= debug_print_threshold)
- dwarf_read_debug_printf ("Done expanding %s", buf);
+ {
+ const auto end_time = chr::steady_clock::now ();
+ const auto time_spent = end_time - *start_time;
+ const auto ms
+ = chr::duration_cast<chr::milliseconds> (time_spent);
+
+ dwarf_read_debug_printf ("Done expanding %s, took %.3fs", buf,
+ ms.count () / 1000.0);
+ }
}
}
@@ -4785,52 +4093,28 @@ process_queue (dwarf2_per_objfile *per_objfile)
per_objfile->queue->pop ();
}
- dwarf_read_debug_printf ("Done expanding symtabs of %s.",
- objfile_name (per_objfile->objfile));
+ dwarf_read_debug_printf ("Done expanding %u symtabs.", expanded_count);
}
-/* Load the DIEs associated with PER_CU into memory.
-
- In some cases, the caller, while reading partial symbols, will need to load
- the full symbols for the CU for some reason. It will already have a
- dwarf2_cu object for THIS_CU and pass it as EXISTING_CU, so it can be re-used
- rather than creating a new one. */
+/* Load the DIEs associated with PER_CU into memory. */
static void
-load_full_comp_unit (dwarf2_per_cu_data *this_cu,
- dwarf2_per_objfile *per_objfile,
- dwarf2_cu *existing_cu,
- bool skip_partial,
- enum language pretend_language)
+load_full_comp_unit (dwarf2_per_cu *this_cu, dwarf2_per_objfile *per_objfile,
+ bool skip_partial, enum language pretend_language)
{
gdb_assert (! this_cu->is_debug_types);
+ gdb_assert (per_objfile->get_cu (this_cu) == nullptr);
- cutu_reader reader (this_cu, per_objfile, NULL, existing_cu, skip_partial);
- if (reader.dummy_p)
+ cutu_reader reader (*this_cu, *per_objfile, nullptr, nullptr, skip_partial,
+ pretend_language);
+ if (reader.is_dummy ())
return;
- struct dwarf2_cu *cu = reader.cu;
- const gdb_byte *info_ptr = reader.info_ptr;
-
- gdb_assert (cu->die_hash.empty ());
- cu->die_hash.reserve (cu->header.get_length_without_initial () / 12);
-
- if (reader.comp_unit_die->has_children)
- reader.comp_unit_die->child
- = read_die_and_siblings (&reader, reader.info_ptr,
- &info_ptr, reader.comp_unit_die);
- cu->dies = reader.comp_unit_die;
- /* comp_unit_die is not stored in die_hash, no need. */
-
- /* We try not to read any attributes in this function, because not
- all CUs needed for references have been loaded yet, and symbol
- table processing isn't initialized. But we have to set the CU language,
- or we won't be able to build types correctly.
- Similarly, if we do not read the producer, we can not apply
- producer-specific interpretation. */
- prepare_one_comp_unit (cu, cu->dies, pretend_language);
+ reader.read_all_dies ();
- reader.keep ();
+ /* Save this dwarf2_cu in the per_objfile. The per_objfile owns it
+ now. */
+ per_objfile->set_cu (this_cu, reader.release_cu ());
}
/* Add a DIE to the delayed physname list. */
@@ -5242,7 +4526,7 @@ quirk_rust_enum (struct type *type, struct objfile *objfile)
/* We need a way to find the correct discriminant given a
variant name. For convenience we build a map here. */
struct type *enum_type = disr_field->type ();
- std::unordered_map<std::string_view, ULONGEST> discriminant_map;
+ gdb::unordered_map<std::string_view, ULONGEST> discriminant_map;
for (int i = 0; i < enum_type->num_fields (); ++i)
{
if (enum_type->field (i).loc_kind () == FIELD_LOC_KIND_ENUMVAL)
@@ -5315,24 +4599,23 @@ rust_union_quirks (struct dwarf2_cu *cu)
/* See read.h. */
type_unit_group_unshareable *
-dwarf2_per_objfile::get_type_unit_group_unshareable (type_unit_group *tu_group)
+dwarf2_per_objfile::get_type_unit_group_unshareable
+ (stmt_list_hash tu_group_key)
{
- auto iter = this->m_type_units.find (tu_group);
- if (iter != this->m_type_units.end ())
- return iter->second.get ();
+ auto [it, inserted] = m_type_units.emplace (tu_group_key, nullptr);
- type_unit_group_unshareable_up uniq (new type_unit_group_unshareable);
- type_unit_group_unshareable *result = uniq.get ();
- this->m_type_units[tu_group] = std::move (uniq);
- return result;
+ if (inserted)
+ it->second = std::make_unique<type_unit_group_unshareable> ();
+
+ return it->second.get ();
}
struct type *
dwarf2_per_objfile::get_type_for_signatured_type
(signatured_type *sig_type) const
{
- auto iter = this->m_type_map.find (sig_type);
- if (iter == this->m_type_map.end ())
+ auto iter = m_type_map.find (sig_type);
+ if (iter == m_type_map.end ())
return nullptr;
return iter->second;
@@ -5341,9 +4624,9 @@ dwarf2_per_objfile::get_type_for_signatured_type
void dwarf2_per_objfile::set_type_for_signatured_type
(signatured_type *sig_type, struct type *type)
{
- gdb_assert (this->m_type_map.find (sig_type) == this->m_type_map.end ());
+ gdb_assert (m_type_map.find (sig_type) == m_type_map.end ());
- this->m_type_map[sig_type] = type;
+ m_type_map[sig_type] = type;
}
/* A helper function for computing the list of all symbol tables
@@ -5352,9 +4635,9 @@ void dwarf2_per_objfile::set_type_for_signatured_type
static void
recursively_compute_inclusions
(std::vector<compunit_symtab *> *result,
- gdb::unordered_set<dwarf2_per_cu_data *> &all_children,
+ gdb::unordered_set<dwarf2_per_cu *> &all_children,
gdb::unordered_set<compunit_symtab *> &all_type_symtabs,
- dwarf2_per_cu_data *per_cu,
+ dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile,
struct compunit_symtab *immediate_parent)
{
@@ -5389,7 +4672,7 @@ recursively_compute_inclusions
}
}
- for (dwarf2_per_cu_data *ptr : per_cu->imported_symtabs)
+ for (dwarf2_per_cu *ptr : per_cu->imported_symtabs)
recursively_compute_inclusions (result, all_children,
all_type_symtabs, ptr, per_objfile,
cust);
@@ -5399,7 +4682,7 @@ recursively_compute_inclusions
PER_CU. */
static void
-compute_compunit_symtab_includes (dwarf2_per_cu_data *per_cu,
+compute_compunit_symtab_includes (dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile)
{
gdb_assert (! per_cu->is_debug_types);
@@ -5414,10 +4697,10 @@ compute_compunit_symtab_includes (dwarf2_per_cu_data *per_cu,
if (cust == NULL)
return;
- gdb::unordered_set<dwarf2_per_cu_data *> all_children;
+ gdb::unordered_set<dwarf2_per_cu *> all_children;
gdb::unordered_set<compunit_symtab *> all_type_symtabs;
- for (dwarf2_per_cu_data *ptr : per_cu->imported_symtabs)
+ for (dwarf2_per_cu *ptr : per_cu->imported_symtabs)
recursively_compute_inclusions (&result_symtabs, all_children,
all_type_symtabs, ptr,
per_objfile, cust);
@@ -5439,7 +4722,7 @@ compute_compunit_symtab_includes (dwarf2_per_cu_data *per_cu,
static void
process_cu_includes (dwarf2_per_objfile *per_objfile)
{
- for (dwarf2_per_cu_data *iter : per_objfile->per_bfd->just_read_cus)
+ for (dwarf2_per_cu *iter : per_objfile->per_bfd->just_read_cus)
{
if (! iter->is_debug_types)
compute_compunit_symtab_includes (iter, per_objfile);
@@ -5452,7 +4735,7 @@ process_cu_includes (dwarf2_per_objfile *per_objfile)
already been loaded into memory. */
static void
-process_full_comp_unit (dwarf2_cu *cu, enum language pretend_language)
+process_full_comp_unit (dwarf2_cu *cu)
{
dwarf2_per_objfile *per_objfile = cu->per_objfile;
unrelocated_addr lowpc, highpc;
@@ -5517,8 +4800,6 @@ process_full_comp_unit (dwarf2_cu *cu, enum language pretend_language)
if (cust != NULL)
{
- int gcc_4_minor = producer_is_gcc_ge_4 (cu->producer);
-
/* Set symtab language to language from DW_AT_language. If the
compilation is from a C file generated by language preprocessors, do
not set the language if it was already deduced by start_subfile. */
@@ -5538,13 +4819,13 @@ process_full_comp_unit (dwarf2_cu *cu, enum language pretend_language)
Still one can confuse GDB by using non-standard GCC compilation
options - this waits on GCC PR other/32998 (-frecord-gcc-switches).
*/
- if (cu->has_loclist && gcc_4_minor >= 5)
+ /* Note that this code traditionally did not accept non-GCC
+ compilers; that is preserved but seems potentially wrong. */
+ if (cu->has_loclist && cu->producer_is_gcc ()
+ && !cu->producer_is_gcc_lt_4_5 ())
cust->set_locations_valid (true);
- int major, minor;
- if (cu->producer != nullptr
- && producer_is_gcc (cu->producer, &major, &minor)
- && (major < 4 || (major == 4 && minor < 5)))
+ if (cu->producer_is_gcc_lt_4_5 ())
/* Don't trust gcc < 4.5.x. */
cust->set_epilogue_unwind_valid (false);
else
@@ -5566,8 +4847,7 @@ process_full_comp_unit (dwarf2_cu *cu, enum language pretend_language)
already been loaded into memory. */
static void
-process_full_type_unit (dwarf2_cu *cu,
- enum language pretend_language)
+process_full_type_unit (dwarf2_cu *cu)
{
dwarf2_per_objfile *per_objfile = cu->per_objfile;
struct compunit_symtab *cust;
@@ -5599,7 +4879,7 @@ process_full_type_unit (dwarf2_cu *cu,
of it with end_expandable_symtab. Otherwise, complete the addition of
this TU's symbols to the existing symtab. */
type_unit_group_unshareable *tug_unshare =
- per_objfile->get_type_unit_group_unshareable (sig_type->type_unit_group);
+ per_objfile->get_type_unit_group_unshareable (*sig_type->type_unit_group_key);
if (tug_unshare->compunit_symtab == NULL)
{
buildsym_compunit *builder = cu->get_builder ();
@@ -5649,9 +4929,9 @@ process_imported_unit_die (struct die_info *die, struct dwarf2_cu *cu)
if (attr != NULL)
{
sect_offset sect_off = attr->get_ref_die_offset ();
- bool is_dwz = (attr->form == DW_FORM_GNU_ref_alt || cu->per_cu->is_dwz);
+ bool is_dwz = attr->form_is_alt () || cu->per_cu->is_dwz;
dwarf2_per_objfile *per_objfile = cu->per_objfile;
- dwarf2_per_cu_data *per_cu
+ dwarf2_per_cu *per_cu
= dwarf2_find_containing_comp_unit (sect_off, is_dwz,
per_objfile->per_bfd);
@@ -5665,10 +4945,8 @@ process_imported_unit_die (struct die_info *die, struct dwarf2_cu *cu)
return;
/* If necessary, add it to the queue and load its DIEs. */
- if (maybe_queue_comp_unit (cu, per_cu, per_objfile,
- cu->lang ()))
- load_full_comp_unit (per_cu, per_objfile, per_objfile->get_cu (per_cu),
- false, cu->lang ());
+ if (maybe_queue_comp_unit (cu, per_cu, per_objfile))
+ load_full_comp_unit (per_cu, per_objfile, false, cu->lang ());
cu->per_cu->imported_symtabs.push_back (per_cu);
}
@@ -5838,15 +5116,39 @@ die_needs_namespace (struct die_info *die, struct dwarf2_cu *cu)
{
struct attribute *attr;
+ if (tag_is_type (die->tag) && die->tag != DW_TAG_template_type_param)
+ {
+ /* Historically GNAT emitted some types in funny scopes. For
+ example, in one test case, where the first use of Natural was
+ as the type of a field in a record, GNAT emitted:
+
+ <2>: DW_TAG_structure_type
+ ... variant parts and whatnot
+ <5>: DW_TAG_subrange_type
+ . DW_AT_name: natural
+
+ To detect this, we look up the DIE tree for a node that has
+ a name; and if that name is fully qualified, we return 0
+ here. */
+ if (cu->lang () == language_ada)
+ {
+ for (die_info *iter = die->parent;
+ iter != nullptr;
+ iter = iter->parent)
+ {
+ if (tag_is_type (iter->tag))
+ {
+ const char *name = dwarf2_name (iter, cu);
+ if (name != nullptr)
+ return strstr (name, "__") == nullptr;
+ }
+ }
+ }
+ return 1;
+ }
+
switch (die->tag)
{
- case DW_TAG_namespace:
- case DW_TAG_typedef:
- case DW_TAG_class_type:
- case DW_TAG_interface_type:
- case DW_TAG_structure_type:
- case DW_TAG_union_type:
- case DW_TAG_enumeration_type:
case DW_TAG_enumerator:
case DW_TAG_subprogram:
case DW_TAG_inlined_subroutine:
@@ -5855,6 +5157,11 @@ die_needs_namespace (struct die_info *die, struct dwarf2_cu *cu)
case DW_TAG_imported_declaration:
return 1;
+ case DW_TAG_module:
+ /* We don't need the namespace for Fortran modules, but we do
+ for Ada packages. */
+ return cu->lang () == language_ada;
+
case DW_TAG_variable:
case DW_TAG_constant:
/* We only need to prefix "globally" visible variables. These include
@@ -5961,8 +5268,7 @@ dwarf2_compute_name (const char *name,
Fortran names because there is no mangling standard. So new_symbol
will set the demangled name to the result of dwarf2_full_name, and it is
the demangled name that GDB uses if it exists. */
- if (lang == language_ada
- || (lang == language_fortran && physname))
+ if ((lang == language_ada || lang == language_fortran) && physname)
{
/* For Ada unit, we prefer the linkage name over the name, as
the former contains the exported name, which the user expects
@@ -5975,11 +5281,21 @@ dwarf2_compute_name (const char *name,
return linkage_name;
}
+ /* Some versions of GNAT emit fully-qualified names already. These
+ have "__" separating the components -- something ordinary names
+ will never have. */
+ if (lang == language_ada
+ && name != nullptr
+ && strstr (name, "__") != nullptr)
+ return name;
+
/* These are the only languages we know how to qualify names in. */
if (name != NULL
&& (lang == language_cplus
- || lang == language_fortran || lang == language_d
- || lang == language_rust))
+ || lang == language_fortran
+ || lang == language_d
+ || lang == language_rust
+ || lang == language_ada))
{
if (die_needs_namespace (die, cu))
{
@@ -6022,12 +5338,11 @@ dwarf2_compute_name (const char *name,
if (lang == language_cplus && strchr (name, '<') == NULL)
{
struct attribute *attr;
- struct die_info *child;
int first = 1;
die->building_fullname = 1;
- for (child = die->child; child != NULL; child = child->sibling)
+ for (die_info *child : die->children ())
{
struct type *type;
LONGEST value;
@@ -6373,17 +5688,14 @@ read_decl_line (struct die_info *die, struct dwarf2_cu *cu)
struct attribute *decl_line = dwarf2_attr (die, DW_AT_decl_line, cu);
if (decl_line == nullptr)
return 0;
- if (decl_line->form_is_constant ())
- {
- LONGEST val = decl_line->constant_value (0);
- if (0 <= val && val <= UINT_MAX)
- return (unsigned int) val;
+ std::optional<ULONGEST> val = decl_line->unsigned_constant ();
+ if (val.has_value ())
+ {
+ if (*val <= UINT_MAX)
+ return (unsigned int) *val;
complaint (_("Declared line for using directive is too large"));
- return 0;
}
-
- complaint (_("Declared line for using directive is of incorrect format"));
return 0;
}
@@ -6394,7 +5706,7 @@ read_import_statement (struct die_info *die, struct dwarf2_cu *cu)
{
struct objfile *objfile = cu->per_objfile->objfile;
struct attribute *import_attr;
- struct die_info *imported_die, *child_die;
+ struct die_info *imported_die;
struct dwarf2_cu *imported_cu;
const char *imported_name;
const char *imported_name_prefix;
@@ -6469,19 +5781,16 @@ read_import_statement (struct die_info *die, struct dwarf2_cu *cu)
canonical_name = imported_name_prefix;
}
else if (strlen (imported_name_prefix) > 0)
- canonical_name = obconcat (&objfile->objfile_obstack,
- imported_name_prefix,
- (cu->lang () == language_d
- ? "."
- : "::"),
- imported_name, (char *) NULL);
+ {
+ gdb::unique_xmalloc_ptr<char> temp;
+ temp = typename_concat (imported_name_prefix, imported_name, 0, cu);
+ canonical_name = obstack_strdup (&objfile->objfile_obstack, temp.get ());
+ }
else
canonical_name = imported_name;
- if (die->tag == DW_TAG_imported_module
- && cu->lang () == language_fortran)
- for (child_die = die->child; child_die && child_die->tag;
- child_die = child_die->sibling)
+ if (die->tag == DW_TAG_imported_module && cu->lang () == language_fortran)
+ for (die_info *child_die : die->children ())
{
/* DWARF-4: A Fortran use statement with a “rename list†may be
represented by an imported module entry with an import attribute
@@ -6533,56 +5842,7 @@ read_import_statement (struct die_info *die, struct dwarf2_cu *cu)
&objfile->objfile_obstack);
}
-/* ICC<14 does not output the required DW_AT_declaration on incomplete
- types, but gives them a size of zero. Starting with version 14,
- ICC is compatible with GCC. */
-
-static bool
-producer_is_icc_lt_14 (struct dwarf2_cu *cu)
-{
- if (!cu->checked_producer)
- check_producer (cu);
-
- return cu->producer_is_icc_lt_14;
-}
-
-/* ICC generates a DW_AT_type for C void functions. This was observed on
- ICC 14.0.5.212, and appears to be against the DWARF spec (V5 3.3.2)
- which says that void functions should not have a DW_AT_type. */
-
-static bool
-producer_is_icc (struct dwarf2_cu *cu)
-{
- if (!cu->checked_producer)
- check_producer (cu);
-
- return cu->producer_is_icc;
-}
-
-/* Check for possibly missing DW_AT_comp_dir with relative .debug_line
- directory paths. GCC SVN r127613 (new option -fdebug-prefix-map) fixed
- this, it was first present in GCC release 4.3.0. */
-
-static bool
-producer_is_gcc_lt_4_3 (struct dwarf2_cu *cu)
-{
- if (!cu->checked_producer)
- check_producer (cu);
-
- return cu->producer_is_gcc_lt_4_3;
-}
-
-/* See dwarf2/read.h. */
-bool
-producer_is_clang (struct dwarf2_cu *cu)
-{
- if (!cu->checked_producer)
- check_producer (cu);
-
- return cu->producer_is_clang;
-}
-
-static file_and_directory &
+file_and_directory &
find_file_and_directory (struct die_info *die, struct dwarf2_cu *cu)
{
if (cu->per_cu->fnd != nullptr)
@@ -6594,11 +5854,11 @@ find_file_and_directory (struct die_info *die, struct dwarf2_cu *cu)
dwarf2_string_attr (die, DW_AT_comp_dir, cu));
if (res.get_comp_dir () == nullptr
- && producer_is_gcc_lt_4_3 (cu)
+ && cu->producer_is_gcc_lt_4_3 ()
&& res.get_name () != nullptr
&& IS_ABSOLUTE_PATH (res.get_name ()))
{
- res.set_comp_dir (ldirname (res.get_name ()));
+ res.set_comp_dir (gdb_ldirname (res.get_name ()));
res.set_name (make_unique_xstrdup (lbasename (res.get_name ())));
}
@@ -6717,9 +5977,6 @@ read_file_scope (struct die_info *die, struct dwarf2_cu *cu)
struct objfile *objfile = per_objfile->objfile;
CORE_ADDR lowpc;
struct attribute *attr;
- struct die_info *child_die;
-
- prepare_one_comp_unit (cu, die, cu->lang ());
unrelocated_addr unrel_low, unrel_high;
get_scope_pc_bounds (die, &unrel_low, &unrel_high, cu);
@@ -6737,7 +5994,7 @@ read_file_scope (struct die_info *die, struct dwarf2_cu *cu)
implicitly prefixing it with the compilation dir. Work around this by
prefixing it with the source dir instead. */
if (cu->header.version == 5 && !IS_ABSOLUTE_PATH (fnd.get_name ())
- && producer_is_gas_lt_2_38 (cu))
+ && cu->producer_is_gas_lt_2_38 ())
{
attr = dwarf2_attr (die, DW_AT_stmt_list, cu);
if (attr != nullptr && attr->form_is_unsigned ())
@@ -6766,15 +6023,9 @@ read_file_scope (struct die_info *die, struct dwarf2_cu *cu)
handle_DW_AT_stmt_list (die, cu, fnd, unrel_low, unrel_low != unrel_high);
/* Process all dies in compilation unit. */
- if (die->child != NULL)
- {
- child_die = die->child;
- while (child_die && child_die->tag)
- {
- process_die (child_die, cu);
- child_die = child_die->sibling;
- }
- }
+ for (die_info *child_die : die->children ())
+ process_die (child_die, cu);
+
per_objfile->sym_cu = nullptr;
/* Decode macro information, if present. Dwarf 2 macro information
@@ -6806,7 +6057,6 @@ read_file_scope (struct die_info *die, struct dwarf2_cu *cu)
void
dwarf2_cu::setup_type_unit_groups (struct die_info *die)
{
- struct type_unit_group *tu_group;
int first_time;
struct attribute *attr;
unsigned int i;
@@ -6819,16 +6069,15 @@ dwarf2_cu::setup_type_unit_groups (struct die_info *die)
/* If we're using .gdb_index (includes -readnow) then
per_cu->type_unit_group may not have been set up yet. */
- if (sig_type->type_unit_group == NULL)
- sig_type->type_unit_group = get_type_unit_group (this, attr);
- tu_group = sig_type->type_unit_group;
+ if (!sig_type->type_unit_group_key.has_value ())
+ sig_type->type_unit_group_key = get_type_unit_group_key (this, attr);
/* If we've already processed this stmt_list there's no real need to
do it again, we could fake it and just recreate the part we need
(file name,index -> symtab mapping). If data shows this optimization
is useful we can do it then. */
type_unit_group_unshareable *tug_unshare
- = per_objfile->get_type_unit_group_unshareable (tu_group);
+ = per_objfile->get_type_unit_group_unshareable (*sig_type->type_unit_group_key);
first_time = tug_unshare->compunit_symtab == NULL;
/* We have to handle the case of both a missing DW_AT_stmt_list or bad
@@ -6932,24 +6181,13 @@ dwarf2_cu::setup_type_unit_groups (struct die_info *die)
static void
read_type_unit_scope (struct die_info *die, struct dwarf2_cu *cu)
{
- struct die_info *child_die;
-
- prepare_one_comp_unit (cu, die, language_minimal);
-
/* Initialize (or reinitialize) the machinery for building symtabs.
We do this before processing child DIEs, so that the line header table
is available for DW_AT_decl_file. */
cu->setup_type_unit_groups (die);
- if (die->child != NULL)
- {
- child_die = die->child;
- while (child_die && child_die->tag)
- {
- process_die (child_die, cu);
- child_die = child_die->sibling;
- }
- }
+ for (die_info *child_die : die->children ())
+ process_die (child_die, cu);
}
/* DWO/DWP files.
@@ -6961,225 +6199,164 @@ read_type_unit_scope (struct die_info *die, struct dwarf2_cu *cu)
and DWP files (a file with the DWOs packaged up into one file), we treat
DWP files as having a collection of virtual DWO files. */
-/* A helper function to hash two file names. This is a separate
- function because the hash table uses a search with a different
- type. The second file may be NULL. */
-
-static hashval_t
-hash_two_files (const char *one, const char *two)
-{
- hashval_t hash = htab_hash_string (one);
- if (two != nullptr)
- hash += htab_hash_string (two);
- return hash;
-}
-
-static hashval_t
-hash_dwo_file (const void *item)
-{
- const struct dwo_file *dwo_file = (const struct dwo_file *) item;
- return hash_two_files (dwo_file->dwo_name.c_str (), dwo_file->comp_dir);
-}
-
-/* This is used when looking up entries in the DWO hash table. */
-
-struct dwo_file_search
-{
- /* Name of the DWO to look for. */
- const char *dwo_name;
- /* Compilation directory to look for. */
- const char *comp_dir;
-
- /* Return a hash value compatible with the table. */
- hashval_t hash () const
- {
- return hash_two_files (dwo_name, comp_dir);
- }
-};
+/* Lookup DWO file DWO_NAME. */
-static int
-eq_dwo_file (const void *item_lhs, const void *item_rhs)
+static dwo_file *
+lookup_dwo_file (dwarf2_per_bfd *per_bfd, const char *dwo_name,
+ const char *comp_dir)
{
- const struct dwo_file *lhs = (const struct dwo_file *) item_lhs;
- const struct dwo_file_search *rhs
- = (const struct dwo_file_search *) item_rhs;
-
- if (lhs->dwo_name != rhs->dwo_name)
- return 0;
- if (lhs->comp_dir == NULL || rhs->comp_dir == NULL)
- return lhs->comp_dir == rhs->comp_dir;
- return strcmp (lhs->comp_dir, rhs->comp_dir) == 0;
-}
+#if CXX_STD_THREAD
+ std::lock_guard<std::mutex> guard (per_bfd->dwo_files_lock);
+#endif
-/* Allocate a hash table for DWO files. */
+ auto it = per_bfd->dwo_files.find (dwo_file_search {dwo_name, comp_dir});
-static htab_up
-allocate_dwo_file_hash_table ()
-{
- return htab_up (htab_create_alloc (41,
- hash_dwo_file,
- eq_dwo_file,
- htab_delete_entry<dwo_file>,
- xcalloc, xfree));
+ return it != per_bfd->dwo_files.end () ? it->get() : nullptr;
}
-/* Lookup DWO file DWO_NAME. */
+/* Add DWO_FILE to the per-BFD DWO file hash table.
-static void **
-lookup_dwo_file_slot (dwarf2_per_objfile *per_objfile,
- const char *dwo_name,
- const char *comp_dir)
-{
- struct dwo_file_search find_entry;
- void **slot;
+ Return the dwo_file actually kept in the hash table.
- if (per_objfile->per_bfd->dwo_files == NULL)
- per_objfile->per_bfd->dwo_files = allocate_dwo_file_hash_table ();
+ If another thread raced with this one, opening the exact same DWO file and
+ inserting it first in the hash table, then keep that other thread's copy
+ and DWO_FILE gets freed. */
- find_entry.dwo_name = dwo_name;
- find_entry.comp_dir = comp_dir;
- slot = htab_find_slot_with_hash (per_objfile->per_bfd->dwo_files.get (),
- &find_entry, find_entry.hash (),
- INSERT);
-
- return slot;
-}
-
-static hashval_t
-hash_dwo_unit (const void *item)
+static dwo_file *
+add_dwo_file (dwarf2_per_bfd *per_bfd, dwo_file_up dwo_file)
{
- const struct dwo_unit *dwo_unit = (const struct dwo_unit *) item;
+#if CXX_STD_THREAD
+ std::lock_guard<std::mutex> lock (per_bfd->dwo_files_lock);
+#endif
- /* This drops the top 32 bits of the id, but is ok for a hash. */
- return dwo_unit->signature;
+ return per_bfd->dwo_files.emplace (std::move (dwo_file)).first->get ();
}
-static int
-eq_dwo_unit (const void *item_lhs, const void *item_rhs)
+void
+cutu_reader::create_dwo_unit_hash_tables (dwo_file &dwo_file,
+ dwarf2_cu &skeleton_cu,
+ dwarf2_section_info &section,
+ ruh_kind section_kind)
{
- const struct dwo_unit *lhs = (const struct dwo_unit *) item_lhs;
- const struct dwo_unit *rhs = (const struct dwo_unit *) item_rhs;
-
- /* The signature is assumed to be unique within the DWO file.
- So while object file CU dwo_id's always have the value zero,
- that's OK, assuming each object file DWO file has only one CU,
- and that's the rule for now. */
- return lhs->signature == rhs->signature;
-}
+ dwarf2_per_objfile &per_objfile = *skeleton_cu.per_objfile;
+ dwarf2_per_bfd &per_bfd = *per_objfile.per_bfd;
-/* Allocate a hash table for DWO CUs,TUs.
- There is one of these tables for each of CUs,TUs for each DWO file. */
+ const gdb_byte *info_ptr = section.buffer;
-static htab_up
-allocate_dwo_unit_table ()
-{
- /* Start out with a pretty small number.
- Generally DWO files contain only one CU and maybe some TUs. */
- return htab_up (htab_create_alloc (3,
- hash_dwo_unit,
- eq_dwo_unit,
- NULL, xcalloc, xfree));
-}
+ if (info_ptr == NULL)
+ return;
-/* die_reader_func for create_dwo_cu. */
+ dwarf_read_debug_printf ("Reading %s for %s:", section.get_name (),
+ section.get_file_name ());
-static void
-create_dwo_cu_reader (const struct die_reader_specs *reader,
- const gdb_byte *info_ptr,
- struct die_info *comp_unit_die,
- struct dwo_file *dwo_file,
- struct dwo_unit *dwo_unit)
-{
- struct dwarf2_cu *cu = reader->cu;
- sect_offset sect_off = cu->per_cu->sect_off;
- struct dwarf2_section_info *section = cu->per_cu->section;
+ const gdb_byte *end_ptr = info_ptr + section.size;
- std::optional<ULONGEST> signature = lookup_dwo_id (cu, comp_unit_die);
- if (!signature.has_value ())
+ while (info_ptr < end_ptr)
{
- complaint (_(DWARF_ERROR_PREFIX
- "debug entry at offset %s is missing its dwo_id"
- " [in module %s]"),
- sect_offset_str (sect_off), dwo_file->dwo_name.c_str ());
- return;
- }
+ sect_offset sect_off = (sect_offset) (info_ptr - section.buffer);
+ unit_head header;
+ dwarf2_section_info *abbrev_section = &dwo_file.sections.abbrev;
+ const gdb_byte *info_ptr_post_header
+ = read_and_check_unit_head (&header, &section, abbrev_section,
+ info_ptr, section_kind);
- dwo_unit->dwo_file = dwo_file;
- dwo_unit->signature = *signature;
- dwo_unit->section = section;
- dwo_unit->sect_off = sect_off;
- dwo_unit->length = cu->per_cu->length ();
+ unsigned int length = header.get_length_with_initial ();
+ info_ptr += length;
- dwarf_read_debug_printf (" offset %s, dwo_id %s",
- sect_offset_str (sect_off),
- hex_string (dwo_unit->signature));
-}
+ /* Skip dummy units. */
+ if (info_ptr_post_header >= info_ptr
+ || peek_abbrev_code (section.get_bfd_owner (),
+ info_ptr_post_header) == 0)
+ continue;
-/* Create the dwo_units for the CUs in a DWO_FILE.
- Note: This function processes DWO files only, not DWP files. */
+ if (header.unit_type != DW_UT_compile
+ && header.unit_type != DW_UT_split_compile
+ && header.unit_type != DW_UT_type
+ && header.unit_type != DW_UT_split_type)
+ continue;
-static void
-create_cus_hash_table (dwarf2_per_objfile *per_objfile,
- dwarf2_cu *cu, struct dwo_file &dwo_file,
- dwarf2_section_info &section, htab_up &cus_htab)
-{
- struct objfile *objfile = per_objfile->objfile;
- dwarf2_per_bfd *per_bfd = per_objfile->per_bfd;
- const gdb_byte *info_ptr, *end_ptr;
+ ULONGEST signature;
- section.read (objfile);
- info_ptr = section.buffer;
+ /* For type units (all DWARF versions) and DWARF 5 compile units, the
+ signature/DWO ID is already available in the header. For compile
+ units in DWARF < 5, we need to read the DW_AT_GNU_dwo_id attribute
+ from the top-level DIE.
- if (info_ptr == NULL)
- return;
+ For DWARF < 5 compile units, the unit type will be set to DW_UT_compile
+ by read_and_check_comp_unit_head. */
+ if (header.version < 5 && header.unit_type == DW_UT_compile)
+ {
+ /* The length of the CU is not necessary. */
+ dwarf2_per_cu per_cu (&per_bfd, &section, sect_off, length,
+ false /* is_dwz */);
+ cutu_reader reader (per_cu, per_objfile, language_minimal,
+ skeleton_cu, dwo_file);
- dwarf_read_debug_printf ("Reading %s for %s:",
- section.get_name (),
- section.get_file_name ());
+ std::optional<ULONGEST> opt_signature
+ = lookup_dwo_id (reader.cu (), reader.top_level_die ());
- end_ptr = info_ptr + section.size;
- while (info_ptr < end_ptr)
- {
- struct dwarf2_per_cu_data per_cu;
- struct dwo_unit read_unit {};
- struct dwo_unit *dwo_unit;
- void **slot;
- sect_offset sect_off = (sect_offset) (info_ptr - section.buffer);
+ if (!opt_signature.has_value ())
+ {
+ complaint (_ (DWARF_ERROR_PREFIX
+ "debug entry at offset %s is missing its dwo_id"
+ " [in module %s]"),
+ sect_offset_str (sect_off),
+ dwo_file.dwo_name.c_str ());
+ continue;
+ }
- per_cu.per_bfd = per_bfd;
- per_cu.is_debug_types = 0;
- per_cu.sect_off = sect_offset (info_ptr - section.buffer);
- per_cu.section = &section;
+ signature = *opt_signature;
+ }
+ else
+ signature = header.signature;
- cutu_reader reader (&per_cu, per_objfile, cu, &dwo_file);
- if (!reader.dummy_p)
- create_dwo_cu_reader (&reader, reader.info_ptr, reader.comp_unit_die,
- &dwo_file, &read_unit);
- info_ptr += per_cu.length ();
+ auto dwo_unit = std::make_unique<struct dwo_unit> ();
- // If the unit could not be parsed, skip it.
- if (read_unit.dwo_file == NULL)
- continue;
+ /* Set the fields common to compile and type units. */
+ dwo_unit->dwo_file = &dwo_file;
+ dwo_unit->signature = signature;
+ dwo_unit->section = &section;
+ dwo_unit->sect_off = sect_off;
+ dwo_unit->length = length;
+
+ switch (header.unit_type)
+ {
+ case DW_UT_compile:
+ case DW_UT_split_compile:
+ {
+ dwarf_read_debug_printf (" compile unit at offset %s, dwo_id %s",
+ sect_offset_str (sect_off),
+ hex_string (dwo_unit->signature));
- if (cus_htab == NULL)
- cus_htab = allocate_dwo_unit_table ();
+ auto [it, inserted] = dwo_file.cus.emplace (std::move (dwo_unit));
+ if (!inserted)
+ complaint (_("debug cu entry at offset %s is duplicate to"
+ " the entry at offset %s, signature %s"),
+ sect_offset_str (sect_off),
+ sect_offset_str ((*it)->sect_off),
+ hex_string (dwo_unit->signature));
+ break;
+ }
- dwo_unit = OBSTACK_ZALLOC (&per_bfd->obstack,
- struct dwo_unit);
- *dwo_unit = read_unit;
- slot = htab_find_slot (cus_htab.get (), dwo_unit, INSERT);
- gdb_assert (slot != NULL);
- if (*slot != NULL)
+ case DW_UT_type:
+ case DW_UT_split_type:
{
- const struct dwo_unit *dup_cu = (const struct dwo_unit *)*slot;
- sect_offset dup_sect_off = dup_cu->sect_off;
+ dwo_unit->type_offset_in_tu = header.type_offset_in_tu;
- complaint (_("debug cu entry at offset %s is duplicate to"
- " the entry at offset %s, signature %s"),
- sect_offset_str (sect_off), sect_offset_str (dup_sect_off),
- hex_string (dwo_unit->signature));
+ dwarf_read_debug_printf (" type unit at offset %s, signature %s",
+ sect_offset_str (sect_off),
+ hex_string (dwo_unit->signature));
+
+ auto [it, inserted] = dwo_file.tus.emplace (std::move (dwo_unit));
+ if (!inserted)
+ complaint (_("debug type entry at offset %s is duplicate to"
+ " the entry at offset %s, signature %s"),
+ sect_offset_str (sect_off),
+ sect_offset_str ((*it)->sect_off),
+ hex_string (header.signature));
+ break;
+ }
}
- *slot = (void *)dwo_unit;
}
}
@@ -7337,27 +6514,18 @@ create_cus_hash_table (dwarf2_per_objfile *per_objfile,
Note: This function processes DWP files only, not DWO files. */
static struct dwp_hash_table *
-create_dwp_hash_table (dwarf2_per_objfile *per_objfile,
- struct dwp_file *dwp_file, int is_debug_types)
+create_dwp_hash_table (dwarf2_per_bfd *per_bfd, struct dwp_file *dwp_file,
+ dwarf2_section_info &index)
{
- struct objfile *objfile = per_objfile->objfile;
bfd *dbfd = dwp_file->dbfd.get ();
- const gdb_byte *index_ptr, *index_end;
- struct dwarf2_section_info *index;
uint32_t version, nr_columns, nr_units, nr_slots;
struct dwp_hash_table *htab;
- if (is_debug_types)
- index = &dwp_file->sections.tu_index;
- else
- index = &dwp_file->sections.cu_index;
-
- if (index->empty ())
+ if (index.empty ())
return NULL;
- index->read (objfile);
- index_ptr = index->buffer;
- index_end = index_ptr + index->size;
+ const gdb_byte *index_ptr = index.buffer;
+ const gdb_byte *index_end = index_ptr + index.size;
/* For Version 5, the version is really 2 bytes of data & 2 bytes of padding.
For now it's safe to just read 4 bytes (particularly as it's difficult to
@@ -7388,7 +6556,7 @@ create_dwp_hash_table (dwarf2_per_objfile *per_objfile,
pulongest (nr_slots), dwp_file->name);
}
- htab = OBSTACK_ZALLOC (&per_objfile->per_bfd->obstack, struct dwp_hash_table);
+ htab = OBSTACK_ZALLOC (&per_bfd->obstack, struct dwp_hash_table);
htab->version = version;
htab->nr_columns = nr_columns;
htab->nr_units = nr_units;
@@ -7660,8 +6828,8 @@ locate_v1_virtual_dwo_sections (asection *sectp,
COMP_DIR is the DW_AT_comp_dir attribute of the referencing CU.
This is for DWP version 1 files. */
-static struct dwo_unit *
-create_dwo_unit_in_dwp_v1 (dwarf2_per_objfile *per_objfile,
+static dwo_unit_up
+create_dwo_unit_in_dwp_v1 (dwarf2_per_bfd *per_bfd,
struct dwp_file *dwp_file,
uint32_t unit_index,
const char *comp_dir,
@@ -7671,10 +6839,7 @@ create_dwo_unit_in_dwp_v1 (dwarf2_per_objfile *per_objfile,
is_debug_types ? dwp_file->tus : dwp_file->cus;
bfd *dbfd = dwp_file->dbfd.get ();
const char *kind = is_debug_types ? "TU" : "CU";
- struct dwo_file *dwo_file;
- struct dwo_unit *dwo_unit;
struct virtual_v1_dwo_sections sections;
- void **dwo_file_slot;
int i;
gdb_assert (dwp_file->version == 1);
@@ -7755,26 +6920,30 @@ create_dwo_unit_in_dwp_v1 (dwarf2_per_objfile *per_objfile,
sections.line.get_id (),
sections.loc.get_id (),
sections.str_offsets.get_id ());
+
/* Can we use an existing virtual DWO file? */
- dwo_file_slot = lookup_dwo_file_slot (per_objfile, virtual_dwo_name.c_str (),
- comp_dir);
+ dwo_file *dwo_file
+ = lookup_dwo_file (per_bfd, virtual_dwo_name.c_str (), comp_dir);
+
/* Create one if necessary. */
- if (*dwo_file_slot == NULL)
+ if (dwo_file == nullptr)
{
dwarf_read_debug_printf ("Creating virtual DWO: %s",
virtual_dwo_name.c_str ());
- dwo_file = new struct dwo_file;
- dwo_file->dwo_name = std::move (virtual_dwo_name);
- dwo_file->comp_dir = comp_dir;
- dwo_file->sections.abbrev = sections.abbrev;
- dwo_file->sections.line = sections.line;
- dwo_file->sections.loc = sections.loc;
- dwo_file->sections.macinfo = sections.macinfo;
- dwo_file->sections.macro = sections.macro;
- dwo_file->sections.str_offsets = sections.str_offsets;
+ dwo_file_up new_dwo_file = std::make_unique<struct dwo_file> ();
+ new_dwo_file->dwo_name = std::move (virtual_dwo_name);
+ new_dwo_file->comp_dir = comp_dir;
+ new_dwo_file->sections.abbrev = sections.abbrev;
+ new_dwo_file->sections.line = sections.line;
+ new_dwo_file->sections.loc = sections.loc;
+ new_dwo_file->sections.macinfo = sections.macinfo;
+ new_dwo_file->sections.macro = sections.macro;
+ new_dwo_file->sections.str_offsets = sections.str_offsets;
+
/* The "str" section is global to the entire DWP file. */
- dwo_file->sections.str = dwp_file->sections.str;
+ new_dwo_file->sections.str = dwp_file->sections.str;
+
/* The info or types section is assigned below to dwo_unit,
there's no need to record it in dwo_file.
Also, we can't simply record type sections in dwo_file because
@@ -7782,21 +6951,17 @@ create_dwo_unit_in_dwp_v1 (dwarf2_per_objfile *per_objfile,
types we'll grow the vector and eventually have to reallocate space
for it, invalidating all copies of pointers into the previous
contents. */
- *dwo_file_slot = dwo_file;
+ dwo_file = add_dwo_file (per_bfd, std::move (new_dwo_file));
}
else
- {
- dwarf_read_debug_printf ("Using existing virtual DWO: %s",
- virtual_dwo_name.c_str ());
-
- dwo_file = (struct dwo_file *) *dwo_file_slot;
- }
+ dwarf_read_debug_printf ("Using existing virtual DWO: %s",
+ virtual_dwo_name.c_str ());
- dwo_unit = OBSTACK_ZALLOC (&per_objfile->per_bfd->obstack, struct dwo_unit);
+ auto dwo_unit = std::make_unique<struct dwo_unit> ();
dwo_unit->dwo_file = dwo_file;
dwo_unit->signature = signature;
- dwo_unit->section =
- XOBNEW (&per_objfile->per_bfd->obstack, struct dwarf2_section_info);
+ dwo_unit->section_holder = std::make_unique<dwarf2_section_info> ();
+ dwo_unit->section = dwo_unit->section_holder.get ();
*dwo_unit->section = sections.info_or_types;
/* dwo_unit->{offset,length,type_offset_in_tu} are set later. */
@@ -7809,7 +6974,7 @@ create_dwo_unit_in_dwp_v1 (dwarf2_per_objfile *per_objfile,
virtual section of just that piece. */
static struct dwarf2_section_info
-create_dwp_v2_or_v5_section (dwarf2_per_objfile *per_objfile,
+create_dwp_v2_or_v5_section (dwarf2_per_bfd *per_bfd,
struct dwarf2_section_info *section,
bfd_size_type offset, bfd_size_type size)
{
@@ -7838,7 +7003,7 @@ create_dwp_v2_or_v5_section (dwarf2_per_objfile *per_objfile,
"Bad DWP V2 or V5 section info, doesn't fit in section %s"
" [in module %s]"),
sectp ? bfd_section_name (sectp) : "<unknown>",
- objfile_name (per_objfile->objfile));
+ per_bfd->filename ());
}
result.virtual_offset = offset;
@@ -7854,8 +7019,8 @@ create_dwp_v2_or_v5_section (dwarf2_per_objfile *per_objfile,
COMP_DIR is the DW_AT_comp_dir attribute of the referencing CU.
This is for DWP version 2 files. */
-static struct dwo_unit *
-create_dwo_unit_in_dwp_v2 (dwarf2_per_objfile *per_objfile,
+static dwo_unit_up
+create_dwo_unit_in_dwp_v2 (dwarf2_per_bfd *per_bfd,
struct dwp_file *dwp_file,
uint32_t unit_index,
const char *comp_dir,
@@ -7865,10 +7030,7 @@ create_dwo_unit_in_dwp_v2 (dwarf2_per_objfile *per_objfile,
is_debug_types ? dwp_file->tus : dwp_file->cus;
bfd *dbfd = dwp_file->dbfd.get ();
const char *kind = is_debug_types ? "TU" : "CU";
- struct dwo_file *dwo_file;
- struct dwo_unit *dwo_unit;
struct virtual_v2_or_v5_dwo_sections sections;
- void **dwo_file_slot;
int i;
gdb_assert (dwp_file->version == 2);
@@ -7944,44 +7106,47 @@ create_dwo_unit_in_dwp_v2 (dwarf2_per_objfile *per_objfile,
(long) (sections.loc_size ? sections.loc_offset : 0),
(long) (sections.str_offsets_size
? sections.str_offsets_offset : 0));
+
/* Can we use an existing virtual DWO file? */
- dwo_file_slot = lookup_dwo_file_slot (per_objfile, virtual_dwo_name.c_str (),
- comp_dir);
+ dwo_file *dwo_file
+ = lookup_dwo_file (per_bfd, virtual_dwo_name.c_str (), comp_dir);
+
/* Create one if necessary. */
- if (*dwo_file_slot == NULL)
+ if (dwo_file == nullptr)
{
dwarf_read_debug_printf ("Creating virtual DWO: %s",
virtual_dwo_name.c_str ());
- dwo_file = new struct dwo_file;
- dwo_file->dwo_name = std::move (virtual_dwo_name);
- dwo_file->comp_dir = comp_dir;
- dwo_file->sections.abbrev =
- create_dwp_v2_or_v5_section (per_objfile, &dwp_file->sections.abbrev,
- sections.abbrev_offset,
- sections.abbrev_size);
- dwo_file->sections.line =
- create_dwp_v2_or_v5_section (per_objfile, &dwp_file->sections.line,
- sections.line_offset,
- sections.line_size);
- dwo_file->sections.loc =
- create_dwp_v2_or_v5_section (per_objfile, &dwp_file->sections.loc,
- sections.loc_offset, sections.loc_size);
- dwo_file->sections.macinfo =
- create_dwp_v2_or_v5_section (per_objfile, &dwp_file->sections.macinfo,
- sections.macinfo_offset,
- sections.macinfo_size);
- dwo_file->sections.macro =
- create_dwp_v2_or_v5_section (per_objfile, &dwp_file->sections.macro,
- sections.macro_offset,
- sections.macro_size);
- dwo_file->sections.str_offsets =
- create_dwp_v2_or_v5_section (per_objfile,
- &dwp_file->sections.str_offsets,
- sections.str_offsets_offset,
- sections.str_offsets_size);
+ dwo_file_up new_dwo_file = std::make_unique<struct dwo_file> ();
+ new_dwo_file->dwo_name = std::move (virtual_dwo_name);
+ new_dwo_file->comp_dir = comp_dir;
+ new_dwo_file->sections.abbrev
+ = create_dwp_v2_or_v5_section (per_bfd, &dwp_file->sections.abbrev,
+ sections.abbrev_offset,
+ sections.abbrev_size);
+ new_dwo_file->sections.line
+ = create_dwp_v2_or_v5_section (per_bfd, &dwp_file->sections.line,
+ sections.line_offset,
+ sections.line_size);
+ new_dwo_file->sections.loc
+ = create_dwp_v2_or_v5_section (per_bfd, &dwp_file->sections.loc,
+ sections.loc_offset, sections.loc_size);
+ new_dwo_file->sections.macinfo
+ = create_dwp_v2_or_v5_section (per_bfd, &dwp_file->sections.macinfo,
+ sections.macinfo_offset,
+ sections.macinfo_size);
+ new_dwo_file->sections.macro
+ = create_dwp_v2_or_v5_section (per_bfd, &dwp_file->sections.macro,
+ sections.macro_offset,
+ sections.macro_size);
+ new_dwo_file->sections.str_offsets
+ = create_dwp_v2_or_v5_section (per_bfd, &dwp_file->sections.str_offsets,
+ sections.str_offsets_offset,
+ sections.str_offsets_size);
+
/* The "str" section is global to the entire DWP file. */
- dwo_file->sections.str = dwp_file->sections.str;
+ new_dwo_file->sections.str = dwp_file->sections.str;
+
/* The info or types section is assigned below to dwo_unit,
there's no need to record it in dwo_file.
Also, we can't simply record type sections in dwo_file because
@@ -7989,23 +7154,19 @@ create_dwo_unit_in_dwp_v2 (dwarf2_per_objfile *per_objfile,
types we'll grow the vector and eventually have to reallocate space
for it, invalidating all copies of pointers into the previous
contents. */
- *dwo_file_slot = dwo_file;
+ dwo_file = add_dwo_file (per_bfd, std::move (new_dwo_file));
}
else
- {
- dwarf_read_debug_printf ("Using existing virtual DWO: %s",
- virtual_dwo_name.c_str ());
+ dwarf_read_debug_printf ("Using existing virtual DWO: %s",
+ virtual_dwo_name.c_str ());
- dwo_file = (struct dwo_file *) *dwo_file_slot;
- }
-
- dwo_unit = OBSTACK_ZALLOC (&per_objfile->per_bfd->obstack, struct dwo_unit);
+ auto dwo_unit = std::make_unique<struct dwo_unit> ();
dwo_unit->dwo_file = dwo_file;
dwo_unit->signature = signature;
- dwo_unit->section =
- XOBNEW (&per_objfile->per_bfd->obstack, struct dwarf2_section_info);
+ dwo_unit->section_holder = std::make_unique<dwarf2_section_info> ();
+ dwo_unit->section = dwo_unit->section_holder.get ();
*dwo_unit->section = create_dwp_v2_or_v5_section
- (per_objfile,
+ (per_bfd,
is_debug_types
? &dwp_file->sections.types
: &dwp_file->sections.info,
@@ -8021,8 +7182,8 @@ create_dwo_unit_in_dwp_v2 (dwarf2_per_objfile *per_objfile,
COMP_DIR is the DW_AT_comp_dir attribute of the referencing CU.
This is for DWP version 5 files. */
-static struct dwo_unit *
-create_dwo_unit_in_dwp_v5 (dwarf2_per_objfile *per_objfile,
+static dwo_unit_up
+create_dwo_unit_in_dwp_v5 (dwarf2_per_bfd *per_bfd,
struct dwp_file *dwp_file,
uint32_t unit_index,
const char *comp_dir,
@@ -8032,10 +7193,7 @@ create_dwo_unit_in_dwp_v5 (dwarf2_per_objfile *per_objfile,
= is_debug_types ? dwp_file->tus : dwp_file->cus;
bfd *dbfd = dwp_file->dbfd.get ();
const char *kind = is_debug_types ? "TU" : "CU";
- struct dwo_file *dwo_file;
- struct dwo_unit *dwo_unit;
struct virtual_v2_or_v5_dwo_sections sections {};
- void **dwo_file_slot;
gdb_assert (dwp_file->version == 5);
@@ -8115,50 +7273,48 @@ create_dwo_unit_in_dwp_v5 (dwarf2_per_objfile *per_objfile,
? sections.str_offsets_offset : 0),
(long) (sections.macro_size ? sections.macro_offset : 0),
(long) (sections.rnglists_size ? sections.rnglists_offset: 0));
+
/* Can we use an existing virtual DWO file? */
- dwo_file_slot = lookup_dwo_file_slot (per_objfile,
- virtual_dwo_name.c_str (),
- comp_dir);
+ dwo_file *dwo_file
+ = lookup_dwo_file (per_bfd, virtual_dwo_name.c_str (), comp_dir);
+
/* Create one if necessary. */
- if (*dwo_file_slot == NULL)
+ if (dwo_file == nullptr)
{
dwarf_read_debug_printf ("Creating virtual DWO: %s",
virtual_dwo_name.c_str ());
- dwo_file = new struct dwo_file;
- dwo_file->dwo_name = std::move (virtual_dwo_name);
- dwo_file->comp_dir = comp_dir;
- dwo_file->sections.abbrev =
- create_dwp_v2_or_v5_section (per_objfile,
- &dwp_file->sections.abbrev,
- sections.abbrev_offset,
- sections.abbrev_size);
- dwo_file->sections.line =
- create_dwp_v2_or_v5_section (per_objfile,
- &dwp_file->sections.line,
- sections.line_offset, sections.line_size);
- dwo_file->sections.macro =
- create_dwp_v2_or_v5_section (per_objfile,
- &dwp_file->sections.macro,
- sections.macro_offset,
- sections.macro_size);
- dwo_file->sections.loclists =
- create_dwp_v2_or_v5_section (per_objfile,
- &dwp_file->sections.loclists,
- sections.loclists_offset,
- sections.loclists_size);
- dwo_file->sections.rnglists =
- create_dwp_v2_or_v5_section (per_objfile,
- &dwp_file->sections.rnglists,
- sections.rnglists_offset,
- sections.rnglists_size);
- dwo_file->sections.str_offsets =
- create_dwp_v2_or_v5_section (per_objfile,
- &dwp_file->sections.str_offsets,
- sections.str_offsets_offset,
- sections.str_offsets_size);
+ dwo_file_up new_dwo_file = std::make_unique<struct dwo_file> ();
+ new_dwo_file->dwo_name = std::move (virtual_dwo_name);
+ new_dwo_file->comp_dir = comp_dir;
+ new_dwo_file->sections.abbrev
+ = create_dwp_v2_or_v5_section (per_bfd, &dwp_file->sections.abbrev,
+ sections.abbrev_offset,
+ sections.abbrev_size);
+ new_dwo_file->sections.line
+ = create_dwp_v2_or_v5_section (per_bfd, &dwp_file->sections.line,
+ sections.line_offset,
+ sections.line_size);
+ new_dwo_file->sections.macro
+ = create_dwp_v2_or_v5_section (per_bfd, &dwp_file->sections.macro,
+ sections.macro_offset,
+ sections.macro_size);
+ new_dwo_file->sections.loclists
+ = create_dwp_v2_or_v5_section (per_bfd, &dwp_file->sections.loclists,
+ sections.loclists_offset,
+ sections.loclists_size);
+ new_dwo_file->sections.rnglists
+ = create_dwp_v2_or_v5_section (per_bfd, &dwp_file->sections.rnglists,
+ sections.rnglists_offset,
+ sections.rnglists_size);
+ new_dwo_file->sections.str_offsets
+ = create_dwp_v2_or_v5_section (per_bfd, &dwp_file->sections.str_offsets,
+ sections.str_offsets_offset,
+ sections.str_offsets_size);
+
/* The "str" section is global to the entire DWP file. */
- dwo_file->sections.str = dwp_file->sections.str;
+ new_dwo_file->sections.str = dwp_file->sections.str;
+
/* The info or types section is assigned below to dwo_unit,
there's no need to record it in dwo_file.
Also, we can't simply record type sections in dwo_file because
@@ -8166,25 +7322,21 @@ create_dwo_unit_in_dwp_v5 (dwarf2_per_objfile *per_objfile,
types we'll grow the vector and eventually have to reallocate space
for it, invalidating all copies of pointers into the previous
contents. */
- *dwo_file_slot = dwo_file;
+ dwo_file = add_dwo_file (per_bfd, std::move (new_dwo_file));
}
else
- {
- dwarf_read_debug_printf ("Using existing virtual DWO: %s",
- virtual_dwo_name.c_str ());
-
- dwo_file = (struct dwo_file *) *dwo_file_slot;
- }
+ dwarf_read_debug_printf ("Using existing virtual DWO: %s",
+ virtual_dwo_name.c_str ());
- dwo_unit = OBSTACK_ZALLOC (&per_objfile->per_bfd->obstack, struct dwo_unit);
+ auto dwo_unit = std::make_unique<struct dwo_unit> ();
dwo_unit->dwo_file = dwo_file;
dwo_unit->signature = signature;
dwo_unit->section
- = XOBNEW (&per_objfile->per_bfd->obstack, struct dwarf2_section_info);
- *dwo_unit->section = create_dwp_v2_or_v5_section (per_objfile,
- &dwp_file->sections.info,
- sections.info_or_types_offset,
- sections.info_or_types_size);
+ = XOBNEW (&per_bfd->obstack, struct dwarf2_section_info);
+ *dwo_unit->section
+ = create_dwp_v2_or_v5_section (per_bfd, &dwp_file->sections.info,
+ sections.info_or_types_offset,
+ sections.info_or_types_size);
/* dwo_unit->{offset,length,type_offset_in_tu} are set later. */
return dwo_unit;
@@ -8194,7 +7346,7 @@ create_dwo_unit_in_dwp_v5 (dwarf2_per_objfile *per_objfile,
Returns NULL if the signature isn't found. */
static struct dwo_unit *
-lookup_dwo_unit_in_dwp (dwarf2_per_objfile *per_objfile,
+lookup_dwo_unit_in_dwp (dwarf2_per_bfd *per_bfd,
struct dwp_file *dwp_file, const char *comp_dir,
ULONGEST signature, int is_debug_types)
{
@@ -8204,22 +7356,21 @@ lookup_dwo_unit_in_dwp (dwarf2_per_objfile *per_objfile,
uint32_t mask = dwp_htab->nr_slots - 1;
uint32_t hash = signature & mask;
uint32_t hash2 = ((signature >> 32) & mask) | 1;
- unsigned int i;
- void **slot;
- struct dwo_unit find_dwo_cu;
+ auto &dwo_unit_set
+ = is_debug_types ? dwp_file->loaded_tus : dwp_file->loaded_cus;
- memset (&find_dwo_cu, 0, sizeof (find_dwo_cu));
- find_dwo_cu.signature = signature;
- slot = htab_find_slot (is_debug_types
- ? dwp_file->loaded_tus.get ()
- : dwp_file->loaded_cus.get (),
- &find_dwo_cu, INSERT);
+ {
+#if CXX_STD_THREAD
+ std::lock_guard<std::mutex> guard (dwp_file->loaded_cutus_lock);
+#endif
- if (*slot != NULL)
- return (struct dwo_unit *) *slot;
+ if (auto it = dwo_unit_set.find (signature);
+ it != dwo_unit_set.end ())
+ return it->get ();
+ }
/* Use a for loop so that we don't loop forever on bad debug info. */
- for (i = 0; i < dwp_htab->nr_slots; ++i)
+ for (unsigned int i = 0; i < dwp_htab->nr_slots; ++i)
{
ULONGEST signature_in_table;
@@ -8230,29 +7381,34 @@ lookup_dwo_unit_in_dwp (dwarf2_per_objfile *per_objfile,
uint32_t unit_index =
read_4_bytes (dbfd,
dwp_htab->unit_table + hash * sizeof (uint32_t));
+ dwo_unit_up dwo_unit;
if (dwp_file->version == 1)
- {
- *slot = create_dwo_unit_in_dwp_v1 (per_objfile, dwp_file,
- unit_index, comp_dir,
- signature, is_debug_types);
- }
+ dwo_unit
+ = create_dwo_unit_in_dwp_v1 (per_bfd, dwp_file, unit_index,
+ comp_dir, signature, is_debug_types);
else if (dwp_file->version == 2)
- {
- *slot = create_dwo_unit_in_dwp_v2 (per_objfile, dwp_file,
- unit_index, comp_dir,
- signature, is_debug_types);
- }
+ dwo_unit
+ = create_dwo_unit_in_dwp_v2 (per_bfd, dwp_file, unit_index,
+ comp_dir, signature, is_debug_types);
else /* version == 5 */
- {
- *slot = create_dwo_unit_in_dwp_v5 (per_objfile, dwp_file,
- unit_index, comp_dir,
- signature, is_debug_types);
- }
- return (struct dwo_unit *) *slot;
+ dwo_unit
+ = create_dwo_unit_in_dwp_v5 (per_bfd, dwp_file, unit_index,
+ comp_dir, signature, is_debug_types);
+
+ /* If another thread raced with this one, opening the exact same
+ DWO unit, then we'll keep that other thread's copy. */
+#if CXX_STD_THREAD
+ std::lock_guard<std::mutex> guard (dwp_file->loaded_cutus_lock);
+#endif
+
+ auto it = dwo_unit_set.emplace (std::move (dwo_unit)).first;
+ return it->get ();
}
+
if (signature_in_table == 0)
return NULL;
+
hash = (hash + hash2) & mask;
}
@@ -8274,8 +7430,8 @@ lookup_dwo_unit_in_dwp (dwarf2_per_objfile *per_objfile,
NOTE: This function is derived from symfile_bfd_open. */
static gdb_bfd_ref_ptr
-try_open_dwop_file (dwarf2_per_objfile *per_objfile,
- const char *file_name, int is_dwp, int search_cwd)
+try_open_dwop_file (dwarf2_per_bfd *per_bfd, const char *file_name, int is_dwp,
+ int search_cwd)
{
int desc;
/* Blech. OPF_TRY_CWD_FIRST also disables searching the path list if
@@ -8287,7 +7443,7 @@ try_open_dwop_file (dwarf2_per_objfile *per_objfile,
gdb::unique_xmalloc_ptr<char> search_path_holder;
if (search_cwd)
{
- const std::string &debug_dir = per_objfile->per_bfd->captured_debug_dir;
+ const std::string &debug_dir = per_bfd->captured_debug_dir;
if (!debug_dir.empty ())
{
@@ -8300,10 +7456,10 @@ try_open_dwop_file (dwarf2_per_objfile *per_objfile,
search_path = ".";
}
else
- search_path = per_objfile->per_bfd->captured_debug_dir.c_str ();
+ search_path = per_bfd->captured_debug_dir.c_str ();
/* Add the path for the executable binary to the list of search paths. */
- std::string objfile_dir = ldirname (objfile_name (per_objfile->objfile));
+ std::string objfile_dir = gdb_ldirname (per_bfd->filename ());
search_path_holder.reset (concat (objfile_dir.c_str (),
dirname_separator_string,
search_path, nullptr));
@@ -8314,9 +7470,8 @@ try_open_dwop_file (dwarf2_per_objfile *per_objfile,
flags |= OPF_SEARCH_IN_PATH;
gdb::unique_xmalloc_ptr<char> absolute_name;
- desc = openp (search_path, flags, file_name,
- O_RDONLY | O_BINARY, &absolute_name,
- per_objfile->per_bfd->captured_cwd.c_str ());
+ desc = openp (search_path, flags, file_name, O_RDONLY | O_BINARY,
+ &absolute_name, per_bfd->captured_cwd.c_str ());
if (desc < 0)
return NULL;
@@ -8325,14 +7480,23 @@ try_open_dwop_file (dwarf2_per_objfile *per_objfile,
if (sym_bfd == NULL)
return NULL;
- if (!bfd_check_format (sym_bfd.get (), bfd_object))
- return NULL;
+ {
+#if CXX_STD_THREAD
+ /* The operations below are not thread-safe, use a lock to synchronize
+ concurrent accesses. */
+ static std::mutex mutex;
+ std::lock_guard<std::mutex> lock (mutex);
+#endif
+
+ if (!bfd_check_format (sym_bfd.get (), bfd_object))
+ return NULL;
- /* Success. Record the bfd as having been included by the objfile's bfd.
+ /* Success. Record the bfd as having been included by the objfile's bfd.
This is important because things like demangled_names_hash lives in the
objfile's per_bfd space and may have references to things like symbol
names that live in the DWO/DWP file's per_bfd space. PR 16426. */
- gdb_bfd_record_inclusion (per_objfile->objfile->obfd.get (), sym_bfd.get ());
+ gdb_bfd_record_inclusion (per_bfd->obfd, sym_bfd.get ());
+ }
return sym_bfd;
}
@@ -8344,12 +7508,12 @@ try_open_dwop_file (dwarf2_per_objfile *per_objfile,
Upon success, the canonicalized path of the file is stored in the bfd,
same as symfile_bfd_open. */
-static gdb_bfd_ref_ptr
-open_dwo_file (dwarf2_per_objfile *per_objfile,
- const char *file_name, const char *comp_dir)
+gdb_bfd_ref_ptr
+cutu_reader::open_dwo_file (dwarf2_per_bfd *per_bfd, const char *file_name,
+ const char *comp_dir)
{
if (IS_ABSOLUTE_PATH (file_name))
- return try_open_dwop_file (per_objfile, file_name,
+ return try_open_dwop_file (per_bfd, file_name,
0 /*is_dwp*/, 0 /*search_cwd*/);
/* Before trying the search path, try DWO_NAME in COMP_DIR. */
@@ -8360,8 +7524,9 @@ open_dwo_file (dwarf2_per_objfile *per_objfile,
/* NOTE: If comp_dir is a relative path, this will also try the
search path, which seems useful. */
- gdb_bfd_ref_ptr abfd (try_open_dwop_file
- (per_objfile, path_to_try.c_str (), 0 /*is_dwp*/, 1 /*search_cwd*/));
+ gdb_bfd_ref_ptr abfd
+ = try_open_dwop_file (per_bfd, path_to_try.c_str (), 0 /* is_dwp */,
+ 1 /* search_cwd */);
if (abfd != NULL)
return abfd;
@@ -8370,58 +7535,77 @@ open_dwo_file (dwarf2_per_objfile *per_objfile,
/* That didn't work, try debug-file-directory, which, despite its name,
is a list of paths. */
- if (per_objfile->per_bfd->captured_debug_dir.empty ())
+ if (per_bfd->captured_debug_dir.empty ())
return NULL;
- return try_open_dwop_file (per_objfile, file_name,
- 0 /*is_dwp*/, 1 /*search_cwd*/);
+ return try_open_dwop_file (per_bfd, file_name, 0 /* is_dwp */,
+ 1 /* search_cwd */);
}
/* This function is mapped across the sections and remembers the offset and
size of each of the DWO debugging sections we are interested in. */
-static void
-dwarf2_locate_dwo_sections (struct objfile *objfile, bfd *abfd,
- asection *sectp, dwo_sections *dwo_sections)
+void
+cutu_reader::locate_dwo_sections (objfile *objfile, dwo_file &dwo_file)
{
const struct dwop_section_names *names = &dwop_section_names;
+ dwo_sections &dwo_sections = dwo_file.sections;
+ bool complained_about_macro_already = false;
+
+ for (asection *sec : gdb_bfd_sections (dwo_file.dbfd))
+ {
+ struct dwarf2_section_info *dw_sect = nullptr;
+
+ if (names->abbrev_dwo.matches (sec->name))
+ dw_sect = &dwo_sections.abbrev;
+ else if (names->info_dwo.matches (sec->name))
+ dw_sect = &dwo_sections.infos.emplace_back (dwarf2_section_info {});
+ else if (names->line_dwo.matches (sec->name))
+ dw_sect = &dwo_sections.line;
+ else if (names->loc_dwo.matches (sec->name))
+ dw_sect = &dwo_sections.loc;
+ else if (names->loclists_dwo.matches (sec->name))
+ dw_sect = &dwo_sections.loclists;
+ else if (names->macinfo_dwo.matches (sec->name))
+ dw_sect = &dwo_sections.macinfo;
+ else if (names->macro_dwo.matches (sec->name))
+ {
+ /* gcc versions <= 13 generate multiple .debug_macro.dwo sections with
+ some unresolved links between them. It's not usable, so do as if
+ there were not there. */
+ if (!complained_about_macro_already)
+ {
+ if (dwo_sections.macro.s.section == nullptr)
+ dw_sect = &dwo_sections.macro;
+ else
+ {
+ warning (_("Multiple .debug_macro.dwo sections found in "
+ "%s, ignoring them."), dwo_file.dbfd->filename);
- struct dwarf2_section_info *dw_sect = nullptr;
-
- if (names->abbrev_dwo.matches (sectp->name))
- dw_sect = &dwo_sections->abbrev;
- else if (names->info_dwo.matches (sectp->name))
- dw_sect = &dwo_sections->info;
- else if (names->line_dwo.matches (sectp->name))
- dw_sect = &dwo_sections->line;
- else if (names->loc_dwo.matches (sectp->name))
- dw_sect = &dwo_sections->loc;
- else if (names->loclists_dwo.matches (sectp->name))
- dw_sect = &dwo_sections->loclists;
- else if (names->macinfo_dwo.matches (sectp->name))
- dw_sect = &dwo_sections->macinfo;
- else if (names->macro_dwo.matches (sectp->name))
- dw_sect = &dwo_sections->macro;
- else if (names->rnglists_dwo.matches (sectp->name))
- dw_sect = &dwo_sections->rnglists;
- else if (names->str_dwo.matches (sectp->name))
- dw_sect = &dwo_sections->str;
- else if (names->str_offsets_dwo.matches (sectp->name))
- dw_sect = &dwo_sections->str_offsets;
- else if (names->types_dwo.matches (sectp->name))
- {
- struct dwarf2_section_info type_section;
-
- memset (&type_section, 0, sizeof (type_section));
- dwo_sections->types.push_back (type_section);
- dw_sect = &dwo_sections->types.back ();
- }
+ dwo_sections.macro = dwarf2_section_info {};
+ complained_about_macro_already = true;
+ }
+ }
+ }
+ else if (names->rnglists_dwo.matches (sec->name))
+ dw_sect = &dwo_sections.rnglists;
+ else if (names->str_dwo.matches (sec->name))
+ dw_sect = &dwo_sections.str;
+ else if (names->str_offsets_dwo.matches (sec->name))
+ dw_sect = &dwo_sections.str_offsets;
+ else if (names->types_dwo.matches (sec->name))
+ dw_sect = &dwo_sections.types.emplace_back (dwarf2_section_info {});
+
+ if (dw_sect != nullptr)
+ {
+ /* Make sure we don't overwrite a section info that has been filled in
+ already. */
+ gdb_assert (!dw_sect->readin);
- if (dw_sect != nullptr)
- {
- dw_sect->s.section = sectp;
- dw_sect->size = bfd_section_size (sectp);
- dw_sect->read (objfile);
+ dw_sect->s.section = sec;
+ dw_sect->size = bfd_section_size (sec);
+ dw_sect->read (objfile);
+ }
}
}
@@ -8429,13 +7613,14 @@ dwarf2_locate_dwo_sections (struct objfile *objfile, bfd *abfd,
by PER_CU. This is for the non-DWP case.
The result is NULL if DWO_NAME can't be found. */
-static struct dwo_file *
-open_and_init_dwo_file (dwarf2_cu *cu, const char *dwo_name,
- const char *comp_dir)
+dwo_file_up
+cutu_reader::open_and_init_dwo_file (dwarf2_cu *cu, const char *dwo_name,
+ const char *comp_dir)
{
dwarf2_per_objfile *per_objfile = cu->per_objfile;
- gdb_bfd_ref_ptr dbfd = open_dwo_file (per_objfile, dwo_name, comp_dir);
+ gdb_bfd_ref_ptr dbfd
+ = open_dwo_file (per_objfile->per_bfd, dwo_name, comp_dir);
if (dbfd == NULL)
{
dwarf_read_debug_printf ("DWO file not found: %s", dwo_name);
@@ -8443,35 +7628,24 @@ open_and_init_dwo_file (dwarf2_cu *cu, const char *dwo_name,
return NULL;
}
- dwo_file_up dwo_file (new struct dwo_file);
+ dwo_file_up dwo_file = std::make_unique<struct dwo_file> ();
dwo_file->dwo_name = dwo_name;
dwo_file->comp_dir = comp_dir;
dwo_file->dbfd = std::move (dbfd);
- for (asection *sec : gdb_bfd_sections (dwo_file->dbfd))
- dwarf2_locate_dwo_sections (per_objfile->objfile, dwo_file->dbfd.get (),
- sec, &dwo_file->sections);
+ this->locate_dwo_sections (per_objfile->objfile, *dwo_file);
- create_cus_hash_table (per_objfile, cu, *dwo_file, dwo_file->sections.info,
- dwo_file->cus);
+ for (dwarf2_section_info &section : dwo_file->sections.infos)
+ create_dwo_unit_hash_tables (*dwo_file, *cu, section, ruh_kind::COMPILE);
- if (cu->per_cu->version () < 5)
- {
- create_debug_types_hash_table (per_objfile, dwo_file.get (),
- dwo_file->sections.types, dwo_file->tus);
- }
- else
- {
- create_debug_type_hash_table (per_objfile, dwo_file.get (),
- &dwo_file->sections.info, dwo_file->tus,
- rcuh_kind::COMPILE);
- }
+ for (dwarf2_section_info &section : dwo_file->sections.types)
+ create_dwo_unit_hash_tables (*dwo_file, *cu, section, ruh_kind::TYPE);
dwarf_read_debug_printf ("DWO file found: %s", dwo_name);
bfd_cache_close (dwo_file->dbfd.get ());
- return dwo_file.release ();
+ return dwo_file;
}
/* This function is mapped across the sections and remembers the offset and
@@ -8501,6 +7675,10 @@ dwarf2_locate_common_dwp_sections (struct objfile *objfile, bfd *abfd,
if (dw_sect != nullptr)
{
+ /* Make sure we don't overwrite a section info that has been filled in
+ already. */
+ gdb_assert (!dw_sect->readin);
+
dw_sect->s.section = sectp;
dw_sect->size = bfd_section_size (sectp);
dw_sect->read (objfile);
@@ -8546,6 +7724,10 @@ dwarf2_locate_v2_dwp_sections (struct objfile *objfile, bfd *abfd,
if (dw_sect != nullptr)
{
+ /* Make sure we don't overwrite a section info that has been filled in
+ already. */
+ gdb_assert (!dw_sect->readin);
+
dw_sect->s.section = sectp;
dw_sect->size = bfd_section_size (sectp);
dw_sect->read (objfile);
@@ -8589,45 +7771,16 @@ dwarf2_locate_v5_dwp_sections (struct objfile *objfile, bfd *abfd,
if (dw_sect != nullptr)
{
+ /* Make sure we don't overwrite a section info that has been filled in
+ already. */
+ gdb_assert (!dw_sect->readin);
+
dw_sect->s.section = sectp;
dw_sect->size = bfd_section_size (sectp);
dw_sect->read (objfile);
}
}
-/* Hash function for dwp_file loaded CUs/TUs. */
-
-static hashval_t
-hash_dwp_loaded_cutus (const void *item)
-{
- const struct dwo_unit *dwo_unit = (const struct dwo_unit *) item;
-
- /* This drops the top 32 bits of the signature, but is ok for a hash. */
- return dwo_unit->signature;
-}
-
-/* Equality function for dwp_file loaded CUs/TUs. */
-
-static int
-eq_dwp_loaded_cutus (const void *a, const void *b)
-{
- const struct dwo_unit *dua = (const struct dwo_unit *) a;
- const struct dwo_unit *dub = (const struct dwo_unit *) b;
-
- return dua->signature == dub->signature;
-}
-
-/* Allocate a hash table for dwp_file loaded CUs/TUs. */
-
-static htab_up
-allocate_dwp_loaded_cutus_table ()
-{
- return htab_up (htab_create_alloc (3,
- hash_dwp_loaded_cutus,
- eq_dwp_loaded_cutus,
- NULL, xcalloc, xfree));
-}
-
/* Try to open DWP file FILE_NAME.
The result is the bfd handle of the file.
If there is a problem finding or opening the file, return NULL.
@@ -8635,11 +7788,11 @@ allocate_dwp_loaded_cutus_table ()
same as symfile_bfd_open. */
static gdb_bfd_ref_ptr
-open_dwp_file (dwarf2_per_objfile *per_objfile, const char *file_name)
+open_dwp_file (dwarf2_per_bfd *per_bfd, const char *file_name)
{
- gdb_bfd_ref_ptr abfd (try_open_dwop_file (per_objfile, file_name,
- 1 /*is_dwp*/,
- 1 /*search_cwd*/));
+ gdb_bfd_ref_ptr abfd
+ = try_open_dwop_file (per_bfd, file_name, 1 /* is_dwp */,
+ 1 /* search_cwd */);
if (abfd != NULL)
return abfd;
@@ -8651,27 +7804,26 @@ open_dwp_file (dwarf2_per_objfile *per_objfile, const char *file_name)
[IWBN if the dwp file name was recorded in the executable, akin to
.gnu_debuglink, but that doesn't exist yet.]
Strip the directory from FILE_NAME and search again. */
- if (!per_objfile->per_bfd->captured_debug_dir.empty ())
+ if (!per_bfd->captured_debug_dir.empty ())
{
/* Don't implicitly search the current directory here.
If the user wants to search "." to handle this case,
it must be added to debug-file-directory. */
- return try_open_dwop_file (per_objfile, lbasename (file_name),
- 1 /*is_dwp*/,
- 0 /*search_cwd*/);
+ return try_open_dwop_file (per_bfd, lbasename (file_name),
+ 1 /* is_dwp */, 0 /* search_cwd */);
}
return NULL;
}
/* Initialize the use of the DWP file for the current objfile.
- By convention the name of the DWP file is ${objfile}.dwp.
- The result is NULL if it can't be found. */
+ By convention the name of the DWP file is ${objfile}.dwp. */
-static std::unique_ptr<struct dwp_file>
+static void
open_and_init_dwp_file (dwarf2_per_objfile *per_objfile)
{
struct objfile *objfile = per_objfile->objfile;
+ dwarf2_per_bfd *per_bfd = per_objfile->per_bfd;
/* Try to find first .dwp for the binary file before any symbolic links
resolving. */
@@ -8684,46 +7836,45 @@ open_and_init_dwp_file (dwarf2_per_objfile *per_objfile)
struct objfile *backlink = objfile->separate_debug_objfile_backlink;
const char *backlink_basename = lbasename (backlink->original_name);
- dwp_name = ldirname (objfile->original_name) + SLASH_STRING + backlink_basename;
+ dwp_name = gdb_ldirname (objfile->original_name) + SLASH_STRING + backlink_basename;
}
else
dwp_name = objfile->original_name;
dwp_name += ".dwp";
- gdb_bfd_ref_ptr dbfd (open_dwp_file (per_objfile, dwp_name.c_str ()));
+ gdb_bfd_ref_ptr dbfd (open_dwp_file (per_bfd, dwp_name.c_str ()));
if (dbfd == NULL
&& strcmp (objfile->original_name, objfile_name (objfile)) != 0)
{
/* Try to find .dwp for the binary file after gdb_realpath resolving. */
dwp_name = objfile_name (objfile);
dwp_name += ".dwp";
- dbfd = open_dwp_file (per_objfile, dwp_name.c_str ());
+ dbfd = open_dwp_file (per_bfd, dwp_name.c_str ());
}
if (dbfd == NULL)
{
dwarf_read_debug_printf ("DWP file not found: %s", dwp_name.c_str ());
- return std::unique_ptr<dwp_file> ();
+ return;
}
const char *name = bfd_get_filename (dbfd.get ());
- std::unique_ptr<struct dwp_file> dwp_file
- (new struct dwp_file (name, std::move (dbfd)));
+ auto dwp_file = std::make_unique<struct dwp_file> (name, std::move (dbfd));
dwp_file->num_sections = elf_numsections (dwp_file->dbfd);
- dwp_file->elf_sections =
- OBSTACK_CALLOC (&per_objfile->per_bfd->obstack,
- dwp_file->num_sections, asection *);
+ dwp_file->elf_sections
+ = OBSTACK_CALLOC (&per_bfd->obstack, dwp_file->num_sections, asection *);
for (asection *sec : gdb_bfd_sections (dwp_file->dbfd))
dwarf2_locate_common_dwp_sections (objfile, dwp_file->dbfd.get (), sec,
dwp_file.get ());
- dwp_file->cus = create_dwp_hash_table (per_objfile, dwp_file.get (), 0);
-
- dwp_file->tus = create_dwp_hash_table (per_objfile, dwp_file.get (), 1);
+ dwp_file->cus = create_dwp_hash_table (per_bfd, dwp_file.get (),
+ dwp_file->sections.cu_index);
+ dwp_file->tus = create_dwp_hash_table (per_bfd, dwp_file.get (),
+ dwp_file->sections.tu_index);
/* The DWP file version is stored in the hash table. Oh well. */
if (dwp_file->cus && dwp_file->tus
@@ -8756,9 +7907,6 @@ open_and_init_dwp_file (dwarf2_per_objfile *per_objfile)
dwp_file.get ());
}
- dwp_file->loaded_cus = allocate_dwp_loaded_cutus_table ();
- dwp_file->loaded_tus = allocate_dwp_loaded_cutus_table ();
-
dwarf_read_debug_printf ("DWP file found: %s", dwp_file->name);
dwarf_read_debug_printf (" %s CUs, %s TUs",
pulongest (dwp_file->cus ? dwp_file->cus->nr_units : 0),
@@ -8766,20 +7914,8 @@ open_and_init_dwp_file (dwarf2_per_objfile *per_objfile)
bfd_cache_close (dwp_file->dbfd.get ());
- return dwp_file;
-}
-
-/* Wrapper around open_and_init_dwp_file, only open it once. */
-
-static struct dwp_file *
-get_dwp_file (dwarf2_per_objfile *per_objfile)
-{
- if (!per_objfile->per_bfd->dwp_checked)
- {
- per_objfile->per_bfd->dwp_file = open_and_init_dwp_file (per_objfile);
- per_objfile->per_bfd->dwp_checked = 1;
- }
- return per_objfile->per_bfd->dwp_file.get ();
+ /* Everything worked, install this dwp_file in the per_bfd. */
+ per_objfile->per_bfd->dwp_file = std::move (dwp_file);
}
/* Subroutine of lookup_dwo_comp_unit, lookup_dwo_type_unit.
@@ -8798,23 +7934,23 @@ get_dwp_file (dwarf2_per_objfile *per_objfile)
The result is a pointer to the dwo_unit object or NULL if we didn't find it
(dwo_id mismatch or couldn't find the DWO/DWP file). */
-static struct dwo_unit *
-lookup_dwo_cutu (dwarf2_cu *cu, const char *dwo_name, const char *comp_dir,
- ULONGEST signature, int is_debug_types)
+dwo_unit *
+cutu_reader::lookup_dwo_cutu (dwarf2_cu *cu, const char *dwo_name,
+ const char *comp_dir, ULONGEST signature,
+ int is_debug_types)
{
dwarf2_per_objfile *per_objfile = cu->per_objfile;
+ dwarf2_per_bfd *per_bfd = per_objfile->per_bfd;
struct objfile *objfile = per_objfile->objfile;
const char *kind = is_debug_types ? "TU" : "CU";
- void **dwo_file_slot;
- struct dwo_file *dwo_file;
- struct dwp_file *dwp_file;
/* First see if there's a DWP file.
If we have a DWP file but didn't find the DWO inside it, don't
look for the original DWO file. It makes gdb behave differently
depending on whether one is debugging in the build tree. */
- dwp_file = get_dwp_file (per_objfile);
+ dwp_file *dwp_file = per_objfile->per_bfd->dwp_file.get ();
+
if (dwp_file != NULL)
{
const struct dwp_hash_table *dwp_htab =
@@ -8823,7 +7959,7 @@ lookup_dwo_cutu (dwarf2_cu *cu, const char *dwo_name, const char *comp_dir,
if (dwp_htab != NULL)
{
struct dwo_unit *dwo_cutu =
- lookup_dwo_unit_in_dwp (per_objfile, dwp_file, comp_dir, signature,
+ lookup_dwo_unit_in_dwp (per_bfd, dwp_file, comp_dir, signature,
is_debug_types);
if (dwo_cutu != NULL)
@@ -8839,38 +7975,35 @@ lookup_dwo_cutu (dwarf2_cu *cu, const char *dwo_name, const char *comp_dir,
else
{
/* No DWP file, look for the DWO file. */
+ dwo_file *dwo_file = lookup_dwo_file (per_bfd, dwo_name, comp_dir);
- dwo_file_slot = lookup_dwo_file_slot (per_objfile, dwo_name, comp_dir);
- if (*dwo_file_slot == NULL)
+ if (dwo_file == nullptr)
{
- /* Read in the file and build a table of the CUs/TUs it contains. */
- *dwo_file_slot = open_and_init_dwo_file (cu, dwo_name, comp_dir);
+ /* Read in the file and build a table of the CUs/TUs it contains.
+
+ NOTE: This will be nullptr if unable to open the file. */
+ dwo_file_up new_dwo_file
+ = open_and_init_dwo_file (cu, dwo_name, comp_dir);
+
+ if (new_dwo_file != nullptr)
+ dwo_file = add_dwo_file (per_bfd, std::move (new_dwo_file));
}
- /* NOTE: This will be NULL if unable to open the file. */
- dwo_file = (struct dwo_file *) *dwo_file_slot;
if (dwo_file != NULL)
{
struct dwo_unit *dwo_cutu = NULL;
- if (is_debug_types && dwo_file->tus)
+ if (is_debug_types && !dwo_file->tus.empty ())
{
- struct dwo_unit find_dwo_cutu;
-
- memset (&find_dwo_cutu, 0, sizeof (find_dwo_cutu));
- find_dwo_cutu.signature = signature;
- dwo_cutu
- = (struct dwo_unit *) htab_find (dwo_file->tus.get (),
- &find_dwo_cutu);
+ if (auto it = dwo_file->tus.find (signature);
+ it != dwo_file->tus.end ())
+ dwo_cutu = it->get ();
}
- else if (!is_debug_types && dwo_file->cus)
+ else if (!is_debug_types && !dwo_file->cus.empty ())
{
- struct dwo_unit find_dwo_cutu;
-
- memset (&find_dwo_cutu, 0, sizeof (find_dwo_cutu));
- find_dwo_cutu.signature = signature;
- dwo_cutu = (struct dwo_unit *)htab_find (dwo_file->cus.get (),
- &find_dwo_cutu);
+ if (auto it = dwo_file->cus.find (signature);
+ it != dwo_file->cus.end ())
+ dwo_cutu = it->get ();
}
if (dwo_cutu != NULL)
@@ -8913,9 +8046,9 @@ lookup_dwo_cutu (dwarf2_cu *cu, const char *dwo_name, const char *comp_dir,
/* Lookup the DWO CU DWO_NAME/SIGNATURE referenced from THIS_CU.
See lookup_dwo_cutu_unit for details. */
-static struct dwo_unit *
-lookup_dwo_comp_unit (dwarf2_cu *cu, const char *dwo_name, const char *comp_dir,
- ULONGEST signature)
+dwo_unit *
+cutu_reader::lookup_dwo_comp_unit (dwarf2_cu *cu, const char *dwo_name,
+ const char *comp_dir, ULONGEST signature)
{
gdb_assert (!cu->per_cu->is_debug_types);
@@ -8925,8 +8058,9 @@ lookup_dwo_comp_unit (dwarf2_cu *cu, const char *dwo_name, const char *comp_dir,
/* Lookup the DWO TU DWO_NAME/SIGNATURE referenced from THIS_TU.
See lookup_dwo_cutu_unit for details. */
-static struct dwo_unit *
-lookup_dwo_type_unit (dwarf2_cu *cu, const char *dwo_name, const char *comp_dir)
+dwo_unit *
+cutu_reader::lookup_dwo_type_unit (dwarf2_cu *cu, const char *dwo_name,
+ const char *comp_dir)
{
gdb_assert (cu->per_cu->is_debug_types);
@@ -8938,10 +8072,8 @@ lookup_dwo_type_unit (dwarf2_cu *cu, const char *dwo_name, const char *comp_dir)
/* Traversal function for queue_and_load_all_dwo_tus. */
static int
-queue_and_load_dwo_tu (void **slot, void *info)
+queue_and_load_dwo_tu (dwo_unit *dwo_unit, dwarf2_cu *cu)
{
- struct dwo_unit *dwo_unit = (struct dwo_unit *) *slot;
- dwarf2_cu *cu = (dwarf2_cu *) info;
ULONGEST signature = dwo_unit->signature;
signatured_type *sig_type = lookup_dwo_signatured_type (cu, signature);
@@ -8950,8 +8082,7 @@ queue_and_load_dwo_tu (void **slot, void *info)
/* We pass NULL for DEPENDENT_CU because we don't yet know if there's
a real dependency of PER_CU on SIG_TYPE. That is detected later
while processing PER_CU. */
- if (maybe_queue_comp_unit (NULL, sig_type, cu->per_objfile,
- cu->lang ()))
+ if (maybe_queue_comp_unit (NULL, sig_type, cu->per_objfile))
load_full_type_unit (sig_type, cu->per_objfile);
cu->per_cu->imported_symtabs.push_back (sig_type);
}
@@ -8972,14 +8103,15 @@ queue_and_load_all_dwo_tus (dwarf2_cu *cu)
gdb_assert (cu != nullptr);
gdb_assert (!cu->per_cu->is_debug_types);
- gdb_assert (get_dwp_file (cu->per_objfile) == nullptr);
+ gdb_assert (cu->per_objfile->per_bfd->dwp_file == nullptr);
dwo_unit = cu->dwo_unit;
gdb_assert (dwo_unit != NULL);
dwo_file = dwo_unit->dwo_file;
- if (dwo_file->tus != NULL)
- htab_traverse_noresize (dwo_file->tus.get (), queue_and_load_dwo_tu, cu);
+
+ for (const dwo_unit_up &unit : dwo_file->tus)
+ queue_and_load_dwo_tu (unit.get (), cu);
}
/* Read in various DIEs. */
@@ -9034,8 +8166,8 @@ inherit_abstract_dies (struct die_info *die, struct dwarf2_cu *cu)
break;
}
- concrete_child = concrete_child->sibling;
- abstract_child = abstract_child->sibling;
+ concrete_child = concrete_child->next;
+ abstract_child = abstract_child->next;
}
/* Walk the origin's children in parallel to the concrete children.
@@ -9048,9 +8180,7 @@ inherit_abstract_dies (struct die_info *die, struct dwarf2_cu *cu)
std::vector<sect_offset> offsets;
- for (die_info *child_die = die->child;
- child_die && child_die->tag;
- child_die = child_die->sibling)
+ for (die_info *child_die : die->children ())
{
/* We are trying to process concrete instance entries:
DW_TAG_call_site DIEs indeed have a DW_AT_abstract_origin tag, but
@@ -9062,7 +8192,7 @@ inherit_abstract_dies (struct die_info *die, struct dwarf2_cu *cu)
{
if (are_isomorphic)
corresponding_abstract_child
- = corresponding_abstract_child->sibling;
+ = corresponding_abstract_child->next;
continue;
}
@@ -9120,7 +8250,7 @@ inherit_abstract_dies (struct die_info *die, struct dwarf2_cu *cu)
}
if (are_isomorphic)
- corresponding_abstract_child = corresponding_abstract_child->sibling;
+ corresponding_abstract_child = corresponding_abstract_child->next;
}
if (!offsets.empty ())
@@ -9138,8 +8268,7 @@ inherit_abstract_dies (struct die_info *die, struct dwarf2_cu *cu)
}
auto offsets_it = offsets.begin ();
- die_info *origin_child_die = origin_die->child;
- while (origin_child_die != nullptr && origin_child_die->tag != 0)
+ for (die_info *origin_child_die : origin_die->children ())
{
/* Is ORIGIN_CHILD_DIE referenced by any of the DIE children? */
while (offsets_it < offsets.end ()
@@ -9156,8 +8285,6 @@ inherit_abstract_dies (struct die_info *die, struct dwarf2_cu *cu)
if (!origin_child_die->in_process)
process_die (origin_child_die, origin_cu);
}
-
- origin_child_die = origin_child_die->sibling;
}
origin_cu->list_in_scope = origin_previous_list_in_scope;
@@ -9178,8 +8305,10 @@ dwarf2_func_is_main_p (struct die_info *die, struct dwarf2_cu *cu)
if (dwarf2_flag_true_p (die, DW_AT_main_subprogram, cu))
return true;
struct attribute *attr = dwarf2_attr (die, DW_AT_calling_convention, cu);
- return (attr != nullptr
- && attr->constant_value (DW_CC_normal) == DW_CC_program);
+ if (attr == nullptr)
+ return false;
+ std::optional<ULONGEST> value = attr->unsigned_constant ();
+ return value.has_value () && *value == DW_CC_program;
}
/* A helper to handle Ada's "Pragma Import" feature when it is applied
@@ -9188,8 +8317,14 @@ dwarf2_func_is_main_p (struct die_info *die, struct dwarf2_cu *cu)
static bool
check_ada_pragma_import (struct die_info *die, struct dwarf2_cu *cu)
{
- /* A Pragma Import will have both a name and a linkage name. */
- const char *name = dwarf2_name (die, cu);
+ if (cu->lang () != language_ada)
+ return false;
+
+ /* A Pragma Import will have both a name and a linkage name. With a
+ newer version of GNAT, we have to examine the full name, because
+ the compiler might decide to emit a linkage name matching the
+ full name in some scenario. */
+ const char *name = dwarf2_full_name (nullptr, die, cu);
if (name == nullptr)
return false;
@@ -9221,7 +8356,7 @@ fixup_low_high_pc (struct dwarf2_cu *cu, struct die_info *die, CORE_ADDR *low_pc
struct gdbarch *gdbarch = objfile->arch ();
if (gdbarch_bfd_arch_info (gdbarch)->arch == bfd_arch_arm
- && producer_is_gas_ge_2_39 (cu))
+ && cu->producer_is_gas_ge_2_39 ())
{
/* Gas version 2.39 produces DWARF for a Thumb subprogram with a low_pc
attribute with the thumb bit set (PR gas/31115). Work around this. */
@@ -9240,7 +8375,6 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
struct context_stack *newobj;
CORE_ADDR lowpc;
CORE_ADDR highpc;
- struct die_info *child_die;
struct attribute *attr, *call_line, *call_file;
const char *name;
struct block *block;
@@ -9293,11 +8427,14 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
attr = dwarf2_attr (die, DW_AT_external, cu);
bool external_p = attr != nullptr && attr->as_boolean ();
attr = dwarf2_attr (die, DW_AT_inline, cu);
- bool inlined_p
- = (attr != nullptr
- && attr->is_nonnegative ()
- && (attr->as_nonnegative () == DW_INL_inlined
- || attr->as_nonnegative () == DW_INL_declared_inlined));
+ bool inlined_p = false;
+ if (attr != nullptr)
+ {
+ std::optional<ULONGEST> value = attr->unsigned_constant ();
+ inlined_p = (value.has_value ()
+ && (*value == DW_INL_inlined
+ || *value == DW_INL_declared_inlined));
+ }
attr = dwarf2_attr (die, DW_AT_declaration, cu);
bool decl_p = attr != nullptr && attr->as_boolean ();
if (!external_p && !inlined_p && !decl_p)
@@ -9314,7 +8451,7 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
/* If we have any template arguments, then we must allocate a
different sort of symbol. */
- for (child_die = die->child; child_die; child_die = child_die->sibling)
+ for (die_info *child_die : die->children ())
{
if (child_die->tag == DW_TAG_template_type_param
|| child_die->tag == DW_TAG_template_value_param)
@@ -9352,23 +8489,18 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
cu->list_in_scope = cu->get_builder ()->get_local_symbols ();
- if (die->child != NULL)
+ for (die_info *child_die : die->children ())
{
- child_die = die->child;
- while (child_die && child_die->tag)
+ if (child_die->tag == DW_TAG_template_type_param
+ || child_die->tag == DW_TAG_template_value_param)
{
- if (child_die->tag == DW_TAG_template_type_param
- || child_die->tag == DW_TAG_template_value_param)
- {
- struct symbol *arg = new_symbol (child_die, NULL, cu);
+ struct symbol *arg = new_symbol (child_die, NULL, cu);
- if (arg != NULL)
- template_args.push_back (arg);
- }
- else
- process_die (child_die, cu);
- child_die = child_die->sibling;
+ if (arg != NULL)
+ template_args.push_back (arg);
}
+ else
+ process_die (child_die, cu);
}
inherit_abstract_dies (die, cu);
@@ -9384,13 +8516,9 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
while (spec_die)
{
- child_die = spec_die->child;
- while (child_die && child_die->tag)
- {
- if (child_die->tag == DW_TAG_imported_module)
- process_die (child_die, spec_cu);
- child_die = child_die->sibling;
- }
+ for (die_info *child_die : spec_die->children ())
+ if (child_die->tag == DW_TAG_imported_module)
+ process_die (child_die, spec_cu);
/* In some cases, GCC generates specification DIEs that
themselves contain DW_AT_specification attributes. */
@@ -9459,7 +8587,6 @@ read_lexical_block_scope (struct die_info *die, struct dwarf2_cu *cu)
{
dwarf2_per_objfile *per_objfile = cu->per_objfile;
CORE_ADDR lowpc, highpc;
- struct die_info *child_die;
/* Ignore blocks with missing or invalid low and high pc attributes. */
/* ??? Perhaps consider discontiguous blocks defined by DW_AT_ranges
@@ -9474,9 +8601,7 @@ read_lexical_block_scope (struct die_info *die, struct dwarf2_cu *cu)
/* DW_TAG_lexical_block has no attributes, process its children as if
there was no wrapping by that DW_TAG_lexical_block.
GCC does no longer produces such DWARF since GCC r224161. */
- for (child_die = die->child;
- child_die != NULL && child_die->tag;
- child_die = child_die->sibling)
+ for (die_info *child_die : die->children ())
{
/* We might already be processing this DIE. This can happen
in an unusual circumstance -- where a subroutine A
@@ -9495,15 +8620,9 @@ read_lexical_block_scope (struct die_info *die, struct dwarf2_cu *cu)
highpc = per_objfile->relocate (unrel_high);
cu->get_builder ()->push_context (0, lowpc);
- if (die->child != NULL)
- {
- child_die = die->child;
- while (child_die && child_die->tag)
- {
- process_die (child_die, cu);
- child_die = child_die->sibling;
- }
- }
+ for (die_info *child_die : die->children ())
+ process_die (child_die, cu);
+
inherit_abstract_dies (die, cu);
struct context_stack cstk = cu->get_builder ()->pop_context ();
@@ -9546,7 +8665,6 @@ read_call_site_scope (struct die_info *die, struct dwarf2_cu *cu)
struct gdbarch *gdbarch = objfile->arch ();
struct attribute *attr;
int nparams;
- struct die_info *child_die;
attr = dwarf2_attr (die, DW_AT_call_return_pc, cu);
if (attr == NULL)
@@ -9567,8 +8685,7 @@ read_call_site_scope (struct die_info *die, struct dwarf2_cu *cu)
/* Count parameters at the caller. */
nparams = 0;
- for (child_die = die->child; child_die && child_die->tag;
- child_die = child_die->sibling)
+ for (die_info *child_die : die->children ())
{
if (child_die->tag != DW_TAG_call_site_parameter
&& child_die->tag != DW_TAG_GNU_call_site_parameter)
@@ -9670,7 +8787,8 @@ read_call_site_scope (struct die_info *die, struct dwarf2_cu *cu)
struct dwarf2_locexpr_baton *dlbaton;
struct dwarf_block *block = attr->as_block ();
- dlbaton = XOBNEW (&objfile->objfile_obstack, struct dwarf2_locexpr_baton);
+ dlbaton = OBSTACK_ZALLOC (&objfile->objfile_obstack,
+ struct dwarf2_locexpr_baton);
dlbaton->data = block->data;
dlbaton->size = block->size;
dlbaton->per_objfile = per_objfile;
@@ -9737,9 +8855,7 @@ read_call_site_scope (struct die_info *die, struct dwarf2_cu *cu)
"block nor reference, for DIE %s [in module %s]"),
sect_offset_str (die->sect_off), objfile_name (objfile));
- for (child_die = die->child;
- child_die && child_die->tag;
- child_die = child_die->sibling)
+ for (die_info *child_die : die->children ())
{
struct call_site_parameter *parameter;
struct attribute *loc, *origin;
@@ -9771,7 +8887,7 @@ read_call_site_scope (struct die_info *die, struct dwarf2_cu *cu)
parameter->kind = CALL_SITE_PARAMETER_PARAM_OFFSET;
sect_offset sect_off = origin->get_ref_die_offset ();
- if (!cu->header.offset_in_cu_p (sect_off))
+ if (!cu->header.offset_in_unit_p (sect_off))
{
/* As DW_OP_GNU_parameter_ref uses CU-relative offset this
binding can be done only inside one CU. Such referenced DIE
@@ -10139,7 +9255,7 @@ dwarf2_ranges_process (unsigned offset, struct dwarf2_cu *cu, dwarf_tag tag,
{
dwarf2_per_objfile *per_objfile = cu->per_objfile;
struct objfile *objfile = per_objfile->objfile;
- struct comp_unit_head *cu_header = &cu->header;
+ unit_head *cu_header = &cu->header;
bfd *obfd = objfile->obfd.get ();
unsigned int addr_size = cu_header->addr_size;
CORE_ADDR mask = ~(~(CORE_ADDR)1 << (addr_size * 8 - 1));
@@ -10229,12 +9345,9 @@ dwarf2_ranges_process (unsigned offset, struct dwarf2_cu *cu, dwarf_tag tag,
return 1;
}
-/* Get low and high pc attributes from DW_AT_ranges attribute value OFFSET.
- Return 1 if the attributes are present and valid, otherwise, return 0.
- TAG is passed to dwarf2_ranges_process. If MAP is not NULL, then
- ranges in MAP are set, using DATUM as the value. */
+/* See read.h. */
-static int
+int
dwarf2_ranges_read (unsigned offset, unrelocated_addr *low_return,
unrelocated_addr *high_return, struct dwarf2_cu *cu,
addrmap_mutable *map, void *datum, dwarf_tag tag)
@@ -10405,11 +9518,9 @@ dwarf_get_pc_bounds_ranges_or_highlow_pc (die_info *die, unrelocated_addr *low,
return ret;
}
-/* Get low and high pc attributes from a die. See enum pc_bounds_kind
- definition for the return value. *LOWPC and *HIGHPC are set iff
- neither PC_BOUNDS_NOT_PRESENT nor PC_BOUNDS_INVALID are returned. */
+/* See read.h. */
-static enum pc_bounds_kind
+pc_bounds_kind
dwarf2_get_pc_bounds (struct die_info *die, unrelocated_addr *lowpc,
unrelocated_addr *highpc, struct dwarf2_cu *cu,
addrmap_mutable *map, void *datum)
@@ -10464,7 +9575,6 @@ dwarf2_get_subprogram_pc_bounds (struct die_info *die,
struct dwarf2_cu *cu)
{
unrelocated_addr low, high;
- struct die_info *child = die->child;
if (dwarf2_get_pc_bounds (die, &low, &high, cu, nullptr, nullptr)
>= PC_BOUNDS_RANGES)
@@ -10482,12 +9592,11 @@ dwarf2_get_subprogram_pc_bounds (struct die_info *die,
subprograms, then check their pc bounds. Likewise, we need to
check lexical blocks as well, as they may also contain subprogram
definitions. */
- while (child && child->tag)
+ for (die_info *child : die->children ())
{
if (child->tag == DW_TAG_subprogram
|| child->tag == DW_TAG_lexical_block)
dwarf2_get_subprogram_pc_bounds (child, lowpc, highpc, cu);
- child = child->sibling;
}
}
@@ -10513,9 +9622,7 @@ get_scope_pc_bounds (struct die_info *die,
}
else
{
- struct die_info *child = die->child;
-
- while (child && child->tag)
+ for (die_info *child : die->children ())
{
switch (child->tag) {
case DW_TAG_subprogram:
@@ -10543,8 +9650,6 @@ get_scope_pc_bounds (struct die_info *die,
/* Ignore. */
break;
}
-
- child = child->sibling;
}
}
@@ -10640,8 +9745,8 @@ dwarf2_record_block_entry_pc (struct die_info *die, struct block *block,
{
/* We could possibly handle signed constants, but this is out
of spec, so for now, just complain and ignore it. */
- complaint (_("Unhandled constant for DW_AT_entry_pc, value (%s)"),
- plongest (attr->as_nonnegative ()));
+ complaint (_("Invalid form for DW_AT_entry_pc: %s"),
+ dwarf_form_name (attr->form));
}
}
else
@@ -10761,110 +9866,6 @@ dwarf2_record_block_ranges (struct die_info *die, struct block *block,
dwarf2_record_block_entry_pc (die, block, cu);
}
-/* Check whether the producer field indicates either of GCC < 4.6, or the
- Intel C/C++ compiler, and cache the result in CU. */
-
-static void
-check_producer (struct dwarf2_cu *cu)
-{
- int major, minor;
-
- if (cu->producer == NULL)
- {
- /* For unknown compilers expect their behavior is DWARF version
- compliant.
-
- GCC started to support .debug_types sections by -gdwarf-4 since
- gcc-4.5.x. As the .debug_types sections are missing DW_AT_producer
- for their space efficiency GDB cannot workaround gcc-4.5.x -gdwarf-4
- combination. gcc-4.5.x -gdwarf-4 binaries have DW_AT_accessibility
- interpreted incorrectly by GDB now - GCC PR debug/48229. */
- }
- else if (producer_is_gcc (cu->producer, &major, &minor))
- {
- cu->producer_is_gxx_lt_4_6 = major < 4 || (major == 4 && minor < 6);
- cu->producer_is_gcc_lt_4_3 = major < 4 || (major == 4 && minor < 3);
- cu->producer_is_gcc_11 = major == 11;
- }
- else if (producer_is_icc (cu->producer, &major, &minor))
- {
- cu->producer_is_icc = true;
- cu->producer_is_icc_lt_14 = major < 14;
- }
- else if (startswith (cu->producer, "CodeWarrior S12/L-ISA"))
- cu->producer_is_codewarrior = true;
- else if (producer_is_clang (cu->producer, &major, &minor))
- cu->producer_is_clang = true;
- else if (producer_is_gas (cu->producer, &major, &minor))
- {
- cu->producer_is_gas_lt_2_38 = major < 2 || (major == 2 && minor < 38);
- cu->producer_is_gas_2_39 = major == 2 && minor == 39;
- cu->producer_is_gas_ge_2_40 = major > 2 || (major == 2 && minor >= 40);
- }
- else
- {
- /* For other non-GCC compilers, expect their behavior is DWARF version
- compliant. */
- }
-
- cu->checked_producer = true;
-}
-
-/* Check for GCC PR debug/45124 fix which is not present in any G++ version up
- to 4.5.any while it is present already in G++ 4.6.0 - the PR has been fixed
- during 4.6.0 experimental. */
-
-static bool
-producer_is_gxx_lt_4_6 (struct dwarf2_cu *cu)
-{
- if (!cu->checked_producer)
- check_producer (cu);
-
- return cu->producer_is_gxx_lt_4_6;
-}
-
-
-/* Codewarrior (at least as of version 5.0.40) generates dwarf line information
- with incorrect is_stmt attributes. */
-
-static bool
-producer_is_codewarrior (struct dwarf2_cu *cu)
-{
- if (!cu->checked_producer)
- check_producer (cu);
-
- return cu->producer_is_codewarrior;
-}
-
-static bool
-producer_is_gas_lt_2_38 (struct dwarf2_cu *cu)
-{
- if (!cu->checked_producer)
- check_producer (cu);
-
- return cu->producer_is_gas_lt_2_38;
-}
-
-static bool
-producer_is_gas_2_39 (struct dwarf2_cu *cu)
-{
- if (!cu->checked_producer)
- check_producer (cu);
-
- return cu->producer_is_gas_2_39;
-}
-
-/* Return true if CU is produced by GAS 2.39 or later. */
-
-static bool
-producer_is_gas_ge_2_39 (struct dwarf2_cu *cu)
-{
- if (!cu->checked_producer)
- check_producer (cu);
-
- return cu->producer_is_gas_2_39 || cu->producer_is_gas_ge_2_40;
-}
-
/* Return the accessibility of DIE, as given by DW_AT_accessibility.
If that attribute is not available, return the appropriate
default. */
@@ -10875,16 +9876,19 @@ dwarf2_access_attribute (struct die_info *die, struct dwarf2_cu *cu)
attribute *attr = dwarf2_attr (die, DW_AT_accessibility, cu);
if (attr != nullptr)
{
- LONGEST value = attr->constant_value (-1);
- if (value == DW_ACCESS_public
- || value == DW_ACCESS_protected
- || value == DW_ACCESS_private)
- return (dwarf_access_attribute) value;
- complaint (_("Unhandled DW_AT_accessibility value (%s)"),
- plongest (value));
+ std::optional<ULONGEST> value = attr->unsigned_constant ();
+ if (value.has_value ())
+ {
+ if (*value == DW_ACCESS_public
+ || *value == DW_ACCESS_protected
+ || *value == DW_ACCESS_private)
+ return (dwarf_access_attribute) *value;
+ complaint (_("Unhandled DW_AT_accessibility value (%s)"),
+ pulongest (*value));
+ }
}
- if (cu->header.version < 3 || producer_is_gxx_lt_4_6 (cu))
+ if (cu->header.version < 3 || cu->producer_is_gxx_lt_4_6 ())
{
/* The default DWARF 2 accessibility for members is public, the default
accessibility for inheritance is private. */
@@ -10907,54 +9911,6 @@ dwarf2_access_attribute (struct die_info *die, struct dwarf2_cu *cu)
}
}
-/* Look for DW_AT_data_member_location or DW_AT_data_bit_offset. Set
- *OFFSET to the byte offset. If the attribute was not found return
- 0, otherwise return 1. If it was found but could not properly be
- handled, set *OFFSET to 0. */
-
-static int
-handle_member_location (struct die_info *die, struct dwarf2_cu *cu,
- LONGEST *offset)
-{
- struct attribute *attr;
-
- attr = dwarf2_attr (die, DW_AT_data_member_location, cu);
- if (attr != NULL)
- {
- *offset = 0;
- CORE_ADDR temp;
-
- /* Note that we do not check for a section offset first here.
- This is because DW_AT_data_member_location is new in DWARF 4,
- so if we see it, we can assume that a constant form is really
- a constant and not a section offset. */
- if (attr->form_is_constant ())
- *offset = attr->constant_value (0);
- else if (attr->form_is_section_offset ())
- dwarf2_complex_location_expr_complaint ();
- else if (attr->form_is_block ()
- && decode_locdesc (attr->as_block (), cu, &temp))
- {
- *offset = temp;
- }
- else
- dwarf2_complex_location_expr_complaint ();
-
- return 1;
- }
- else
- {
- attr = dwarf2_attr (die, DW_AT_data_bit_offset, cu);
- if (attr != nullptr)
- {
- *offset = attr->constant_value (0);
- return 1;
- }
- }
-
- return 0;
-}
-
/* Look for DW_AT_data_member_location or DW_AT_data_bit_offset and
store the results in FIELD. */
@@ -10967,9 +9923,28 @@ handle_member_location (struct die_info *die, struct dwarf2_cu *cu,
attr = dwarf2_attr (die, DW_AT_data_member_location, cu);
if (attr != NULL)
{
+ bool has_bit_offset = false;
+ LONGEST bit_offset = 0;
+ LONGEST anonymous_size = 0;
+
+ attribute *attr2 = dwarf2_attr (die, DW_AT_bit_offset, cu);
+ if (attr2 != nullptr && attr2->form_is_constant ())
+ {
+ has_bit_offset = true;
+ bit_offset = attr2->confused_constant ().value_or (0);
+ attr2 = dwarf2_attr (die, DW_AT_byte_size, cu);
+ if (attr2 != nullptr && attr2->form_is_constant ())
+ {
+ /* The size of the anonymous object containing
+ the bit field is explicit, so use the
+ indicated size (in bytes). */
+ anonymous_size = attr2->unsigned_constant ().value_or (0);
+ }
+ }
+
if (attr->form_is_constant ())
{
- LONGEST offset = attr->constant_value (0);
+ LONGEST offset = attr->confused_constant ().value_or (0);
/* Work around this GCC 11 bug, where it would erroneously use -1
data member locations, instead of 0:
@@ -10977,16 +9952,16 @@ handle_member_location (struct die_info *die, struct dwarf2_cu *cu,
Negative DW_AT_data_member_location
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101378
*/
- if (offset == -1 && cu->producer_is_gcc_11)
+ if (offset == -1 && cu->producer_is_gcc_11 ())
{
complaint (_("DW_AT_data_member_location value of -1, assuming 0"));
offset = 0;
}
field->set_loc_bitpos (offset * bits_per_byte);
+ if (has_bit_offset)
+ apply_bit_offset_to_field (*field, bit_offset, anonymous_size);
}
- else if (attr->form_is_section_offset ())
- dwarf2_complex_location_expr_complaint ();
else if (attr->form_is_block ())
{
CORE_ADDR offset;
@@ -10996,9 +9971,20 @@ handle_member_location (struct die_info *die, struct dwarf2_cu *cu,
{
dwarf2_per_objfile *per_objfile = cu->per_objfile;
struct objfile *objfile = per_objfile->objfile;
- struct dwarf2_locexpr_baton *dlbaton
- = XOBNEW (&objfile->objfile_obstack,
- struct dwarf2_locexpr_baton);
+ struct dwarf2_locexpr_baton *dlbaton;
+ if (has_bit_offset)
+ {
+ dwarf2_field_location_baton *flbaton
+ = OBSTACK_ZALLOC (&objfile->objfile_obstack,
+ dwarf2_field_location_baton);
+ flbaton->is_field_location = true;
+ flbaton->bit_offset = bit_offset;
+ flbaton->explicit_byte_size = anonymous_size;
+ dlbaton = flbaton;
+ }
+ else
+ dlbaton = OBSTACK_ZALLOC (&objfile->objfile_obstack,
+ struct dwarf2_locexpr_baton);
dlbaton->data = attr->as_block ()->data;
dlbaton->size = attr->as_block ()->size;
/* When using this baton, we want to compute the address
@@ -11008,28 +9994,71 @@ handle_member_location (struct die_info *die, struct dwarf2_cu *cu,
dlbaton->per_objfile = per_objfile;
dlbaton->per_cu = cu->per_cu;
- field->set_loc_dwarf_block (dlbaton);
+ field->set_loc_dwarf_block_addr (dlbaton);
}
}
else
- dwarf2_complex_location_expr_complaint ();
+ complaint (_("Unsupported form %s for DW_AT_data_member_location"),
+ dwarf_form_name (attr->form));
}
else
{
attr = dwarf2_attr (die, DW_AT_data_bit_offset, cu);
if (attr != nullptr)
- field->set_loc_bitpos (attr->constant_value (0));
+ {
+ if (attr->form_is_constant ())
+ field->set_loc_bitpos (attr->unsigned_constant ().value_or (0));
+ else if (attr->form_is_block ())
+ {
+ /* This is a DWARF extension. See
+ https://dwarfstd.org/issues/250501.1.html. */
+ dwarf2_per_objfile *per_objfile = cu->per_objfile;
+ dwarf2_locexpr_baton *dlbaton
+ = OBSTACK_ZALLOC (&per_objfile->objfile->objfile_obstack,
+ dwarf2_locexpr_baton);
+ dlbaton->data = attr->as_block ()->data;
+ dlbaton->size = attr->as_block ()->size;
+ dlbaton->per_objfile = per_objfile;
+ dlbaton->per_cu = cu->per_cu;
+
+ field->set_loc_dwarf_block_bitpos (dlbaton);
+ }
+ else
+ complaint (_("Unsupported form %s for DW_AT_data_bit_offset"),
+ dwarf_form_name (attr->form));
+ }
}
}
+/* A helper that computes the location of a field. The CU and the
+ DW_TAG_member DIE are passed in. The results are stored in
+ *FP. */
+
+static void
+compute_field_location (dwarf2_cu *cu, die_info *die, field *fp)
+{
+ /* Get type of field. */
+ fp->set_type (die_type (die, cu));
+
+ fp->set_loc_bitpos (0);
+
+ /* Get bit size of field (zero if none). */
+ attribute *attr = dwarf2_attr (die, DW_AT_bit_size, cu);
+ if (attr != nullptr)
+ fp->set_bitsize (attr->unsigned_constant ().value_or (0));
+ else
+ fp->set_bitsize (0);
+
+ /* Get bit offset of field. */
+ handle_member_location (die, cu, fp);
+}
+
/* Add an aggregate field to the field list. */
static void
dwarf2_add_field (struct field_info *fip, struct die_info *die,
struct dwarf2_cu *cu)
{
- struct objfile *objfile = cu->per_objfile->objfile;
- struct gdbarch *gdbarch = objfile->arch ();
struct nextfield *new_field;
struct attribute *attr;
struct field *fp;
@@ -11079,64 +10108,7 @@ dwarf2_add_field (struct field_info *fip, struct die_info *die,
}
/* Data member other than a C++ static data member. */
- /* Get type of field. */
- fp->set_type (die_type (die, cu));
-
- fp->set_loc_bitpos (0);
-
- /* Get bit size of field (zero if none). */
- attr = dwarf2_attr (die, DW_AT_bit_size, cu);
- if (attr != nullptr)
- fp->set_bitsize (attr->constant_value (0));
- else
- fp->set_bitsize (0);
-
- /* Get bit offset of field. */
- handle_member_location (die, cu, fp);
- attr = dwarf2_attr (die, DW_AT_bit_offset, cu);
- if (attr != nullptr && attr->form_is_constant ())
- {
- if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG)
- {
- /* For big endian bits, the DW_AT_bit_offset gives the
- additional bit offset from the MSB of the containing
- anonymous object to the MSB of the field. We don't
- have to do anything special since we don't need to
- know the size of the anonymous object. */
- fp->set_loc_bitpos (fp->loc_bitpos () + attr->constant_value (0));
- }
- else
- {
- /* For little endian bits, compute the bit offset to the
- MSB of the anonymous object, subtract off the number of
- bits from the MSB of the field to the MSB of the
- object, and then subtract off the number of bits of
- the field itself. The result is the bit offset of
- the LSB of the field. */
- int anonymous_size;
- int bit_offset = attr->constant_value (0);
-
- attr = dwarf2_attr (die, DW_AT_byte_size, cu);
- if (attr != nullptr && attr->form_is_constant ())
- {
- /* The size of the anonymous object containing
- the bit field is explicit, so use the
- indicated size (in bytes). */
- anonymous_size = attr->constant_value (0);
- }
- else
- {
- /* The size of the anonymous object containing
- the bit field must be inferred from the type
- attribute of the data member containing the
- bit field. */
- anonymous_size = fp->type ()->length ();
- }
- fp->set_loc_bitpos (fp->loc_bitpos ()
- + anonymous_size * bits_per_byte
- - bit_offset - fp->bitsize ());
- }
- }
+ compute_field_location (cu, die, fp);
/* Get name of field. */
fieldname = dwarf2_name (die, cu);
@@ -11262,7 +10234,7 @@ dwarf2_add_type_defn (struct field_info *fip, struct die_info *die,
/* A convenience typedef that's used when finding the discriminant
field for a variant part. */
-typedef std::unordered_map<sect_offset, int> offset_map_type;
+using offset_map_type = gdb::unordered_map<sect_offset, int>;
/* Compute the discriminant range for a given variant. OBSTACK is
where the results will be stored. VARIANT is the variant to
@@ -11275,13 +10247,19 @@ convert_variant_range (struct obstack *obstack, const variant_field &variant,
{
std::vector<discriminant_range> ranges;
- if (variant.default_branch)
+ if (variant.is_default ())
return {};
if (variant.discr_list_data == nullptr)
{
- discriminant_range r
- = {variant.discriminant_value, variant.discriminant_value};
+ ULONGEST value;
+
+ if (is_unsigned)
+ value = variant.discriminant_attr->unsigned_constant ().value_or (0);
+ else
+ value = variant.discriminant_attr->signed_constant ().value_or (0);
+
+ discriminant_range r = { value, value };
ranges.push_back (r);
}
else
@@ -11908,16 +10886,11 @@ get_alignment (struct dwarf2_cu *cu, struct die_info *die)
return 0;
}
- LONGEST val = attr->constant_value (0);
- if (val < 0)
- {
- complaint (_("DW_AT_alignment value must not be negative"
- " - DIE at %s [in module %s]"),
- sect_offset_str (die->sect_off),
- objfile_name (cu->per_objfile->objfile));
- return 0;
- }
- ULONGEST align = val;
+ std::optional<ULONGEST> val = attr->unsigned_constant ();
+ if (!val.has_value ())
+ return 0;
+
+ ULONGEST align = *val;
if (align == 0)
{
@@ -12040,7 +11013,8 @@ read_structure_type (struct die_info *die, struct dwarf2_cu *cu)
{
if (cu->lang () == language_cplus
|| cu->lang () == language_d
- || cu->lang () == language_rust)
+ || cu->lang () == language_rust
+ || cu->lang () == language_ada)
{
const char *full_name = dwarf2_full_name (name, die, cu);
@@ -12083,19 +11057,23 @@ read_structure_type (struct die_info *die, struct dwarf2_cu *cu)
the die. Otherwise the calling convention remains set to
the default value DW_CC_normal. */
attr = dwarf2_attr (die, DW_AT_calling_convention, cu);
- if (attr != nullptr
- && is_valid_DW_AT_calling_convention_for_type (attr->constant_value (0)))
+ if (attr != nullptr)
{
- ALLOCATE_CPLUS_STRUCT_TYPE (type);
- TYPE_CPLUS_CALLING_CONVENTION (type)
- = (enum dwarf_calling_convention) (attr->constant_value (0));
+ std::optional<ULONGEST> value = attr->unsigned_constant ();
+ if (value.has_value ()
+ && is_valid_DW_AT_calling_convention_for_type (*value))
+ {
+ ALLOCATE_CPLUS_STRUCT_TYPE (type);
+ TYPE_CPLUS_CALLING_CONVENTION (type)
+ = (enum dwarf_calling_convention) *value;
+ }
}
attr = dwarf2_attr (die, DW_AT_byte_size, cu);
if (attr != nullptr)
{
if (attr->form_is_constant ())
- type->set_length (attr->constant_value (0));
+ type->set_length (attr->unsigned_constant ().value_or (0));
else
{
struct dynamic_prop prop;
@@ -12110,7 +11088,7 @@ read_structure_type (struct die_info *die, struct dwarf2_cu *cu)
maybe_set_alignment (cu, die, type);
- if (producer_is_icc_lt_14 (cu) && (type->length () == 0))
+ if (cu->producer_is_icc_lt_14 () && type->length () == 0)
{
/* ICC<14 does not output the required DW_AT_declaration on
incomplete types, but gives them a size of zero. */
@@ -12122,7 +11100,7 @@ read_structure_type (struct die_info *die, struct dwarf2_cu *cu)
if (die_is_declaration (die, cu))
type->set_is_stub (true);
else if (attr == NULL && die->child == NULL
- && producer_is_realview (cu->producer))
+ && cu->producer_is_realview ())
/* RealView does not output the required DW_AT_declaration
on incomplete types. */
type->set_is_stub (true);
@@ -12196,9 +11174,7 @@ handle_variant_part (struct die_info *die, struct type *type,
objfile_name (cu->per_objfile->objfile));
}
- for (die_info *child_die = die->child;
- child_die != NULL;
- child_die = child_die->sibling)
+ for (die_info *child_die : die->children ())
handle_struct_member_die (child_die, type, fi, template_args, cu);
}
@@ -12242,16 +11218,16 @@ handle_variant (struct die_info *die, struct type *type,
{
discr = dwarf2_attr (die, DW_AT_discr_list, cu);
if (discr == nullptr || discr->as_block ()->size == 0)
- variant.default_branch = true;
+ {
+ /* Nothing to do here -- default branch. */
+ }
else
variant.discr_list_data = discr->as_block ();
}
else
- variant.discriminant_value = discr->constant_value (0);
+ variant.discriminant_attr = discr;
- for (die_info *variant_child = die->child;
- variant_child != NULL;
- variant_child = variant_child->sibling)
+ for (die_info *variant_child : die->children ())
handle_struct_member_die (variant_child, type, fi, template_args, cu);
variant.last_field = fi->fields.size ();
@@ -12311,6 +11287,21 @@ handle_struct_member_die (struct die_info *child_die, struct type *type,
handle_variant (child_die, type, fi, template_args, cu);
}
+/* Create a property baton for a field. DIE is the field's DIE. The
+ baton's "field" member is filled in, but the other members of the
+ baton are not. The new property baton is returned. */
+
+static dwarf2_property_baton *
+find_field_create_baton (dwarf2_cu *cu, die_info *die)
+{
+ dwarf2_property_baton *result
+ = XOBNEW (&cu->per_objfile->objfile->objfile_obstack,
+ struct dwarf2_property_baton);
+ memset (&result->field, 0, sizeof (result->field));
+ compute_field_location (cu, die, &result->field);
+ return result;
+}
+
/* Finish creating a structure or union type, including filling in its
members and creating a symbol for it. This function also handles Fortran
namelist variables, their items or members and creating a symbol for
@@ -12320,7 +11311,6 @@ static void
process_structure_scope (struct die_info *die, struct dwarf2_cu *cu)
{
struct objfile *objfile = cu->per_objfile->objfile;
- struct die_info *child_die;
struct type *type;
type = get_die_type (die, cu);
@@ -12333,13 +11323,8 @@ process_structure_scope (struct die_info *die, struct dwarf2_cu *cu)
struct field_info fi;
std::vector<struct symbol *> template_args;
- child_die = die->child;
-
- while (child_die && child_die->tag)
- {
- handle_struct_member_die (child_die, type, &fi, &template_args, cu);
- child_die = child_die->sibling;
- }
+ for (die_info *child_die : die->children ())
+ handle_struct_member_die (child_die, type, &fi, &template_args, cu);
/* Attach template arguments to type. */
if (!template_args.empty ())
@@ -12403,8 +11388,7 @@ process_structure_scope (struct die_info *die, struct dwarf2_cu *cu)
set_type_vptr_fieldno (type, TYPE_VPTR_FIELDNO (t));
}
}
- else if (cu->producer
- && startswith (cu->producer, "IBM(R) XL C/C++ Advanced Edition"))
+ else if (cu->producer_is_xlc ())
{
/* The IBM XLC compiler does not provide direct indication
of the containing type, but the vtable pointer is
@@ -12478,9 +11462,7 @@ process_structure_scope (struct die_info *die, struct dwarf2_cu *cu)
current die is a declaration. Normally, of course, a declaration
won't have any children at all. */
- child_die = die->child;
-
- while (child_die != NULL && child_die->tag)
+ for (die_info *child_die : die->children ())
{
if (child_die->tag == DW_TAG_member
|| child_die->tag == DW_TAG_variable
@@ -12492,8 +11474,6 @@ process_structure_scope (struct die_info *die, struct dwarf2_cu *cu)
}
else
process_die (child_die, cu);
-
- child_die = child_die->sibling;
}
/* Do not consider external references. According to the DWARF standard,
@@ -12555,19 +11535,26 @@ die_byte_order (die_info *die, dwarf2_cu *cu, enum bfd_endian *byte_order)
attribute *attr = dwarf2_attr (die, DW_AT_endianity, cu);
if (attr != nullptr && attr->form_is_constant ())
{
- int endianity = attr->constant_value (0);
+ std::optional<ULONGEST> endianity = attr->unsigned_constant ();
- switch (endianity)
+ if (endianity.has_value ())
{
- case DW_END_big:
- new_order = BFD_ENDIAN_BIG;
- break;
- case DW_END_little:
- new_order = BFD_ENDIAN_LITTLE;
- break;
- default:
- complaint (_("DW_AT_endianity has unrecognized value %d"), endianity);
- break;
+ switch (*endianity)
+ {
+ case DW_END_default:
+ /* Nothing. */
+ break;
+ case DW_END_big:
+ new_order = BFD_ENDIAN_BIG;
+ break;
+ case DW_END_little:
+ new_order = BFD_ENDIAN_LITTLE;
+ break;
+ default:
+ complaint (_("DW_AT_endianity has unrecognized value %s"),
+ pulongest (*endianity));
+ break;
+ }
}
}
@@ -12579,28 +11566,30 @@ die_byte_order (die_info *die, dwarf2_cu *cu, enum bfd_endian *byte_order)
/* Assuming DIE is an enumeration type, and TYPE is its associated
type, update TYPE using some information only available in DIE's
- children. In particular, the fields are computed. */
+ children. In particular, the fields are computed. If IS_UNSIGNED
+ is set, the enumeration type's sign is already known (a true value
+ means unsigned), and so examining the constants to determine the
+ sign isn't needed; when this is unset, the enumerator constants are
+ read as signed values. */
static void
update_enumeration_type_from_children (struct die_info *die,
struct type *type,
- struct dwarf2_cu *cu)
+ struct dwarf2_cu *cu,
+ std::optional<bool> is_unsigned)
{
- struct die_info *child_die;
- int unsigned_enum = 1;
- int flag_enum = 1;
+ /* This is used to check whether the enum is signed or unsigned; for
+ simplicity, it is always correct regardless of whether
+ IS_UNSIGNED is set. */
+ bool unsigned_enum = is_unsigned.value_or (true);
+ bool flag_enum = true;
- auto_obstack obstack;
std::vector<struct field> fields;
- for (child_die = die->child;
- child_die != NULL && child_die->tag;
- child_die = child_die->sibling)
+ for (die_info *child_die : die->children ())
{
struct attribute *attr;
LONGEST value;
- const gdb_byte *bytes;
- struct dwarf2_locexpr_baton *baton;
const char *name;
if (child_die->tag != DW_TAG_enumerator)
@@ -12614,19 +11603,26 @@ update_enumeration_type_from_children (struct die_info *die,
if (name == NULL)
name = "<anonymous enumerator>";
- dwarf2_const_value_attr (attr, type, name, &obstack, cu,
- &value, &bytes, &baton);
- if (value < 0)
- {
- unsigned_enum = 0;
- flag_enum = 0;
- }
+ /* Can't check UNSIGNED_ENUM here because that is
+ optimistic. */
+ if (is_unsigned.has_value () && *is_unsigned)
+ value = attr->unsigned_constant ().value_or (0);
else
{
- if (count_one_bits_ll (value) >= 2)
- flag_enum = 0;
+ /* Read as signed, either because we don't know the sign or
+ because we know it is definitely signed. */
+ value = attr->signed_constant ().value_or (0);
+
+ if (value < 0)
+ {
+ unsigned_enum = false;
+ flag_enum = false;
+ }
}
+ if (flag_enum && count_one_bits_ll (value) >= 2)
+ flag_enum = false;
+
struct field &field = fields.emplace_back ();
field.set_name (dwarf2_physname (name, child_die, cu));
field.set_loc_enumval (value);
@@ -12635,13 +11631,10 @@ update_enumeration_type_from_children (struct die_info *die,
if (!fields.empty ())
type->copy_fields (fields);
else
- flag_enum = 0;
-
- if (unsigned_enum)
- type->set_is_unsigned (true);
+ flag_enum = false;
- if (flag_enum)
- type->set_is_flag_enum (true);
+ type->set_is_unsigned (unsigned_enum);
+ type->set_is_flag_enum (flag_enum);
}
/* Given a DW_AT_enumeration_type die, set its type. We do not
@@ -12685,7 +11678,7 @@ read_enumeration_type (struct die_info *die, struct dwarf2_cu *cu)
attr = dwarf2_attr (die, DW_AT_byte_size, cu);
if (attr != nullptr)
- type->set_length (attr->constant_value (0));
+ type->set_length (attr->unsigned_constant ().value_or (0));
else
type->set_length (0);
@@ -12699,6 +11692,11 @@ read_enumeration_type (struct die_info *die, struct dwarf2_cu *cu)
if (die_is_declaration (die, cu))
type->set_is_stub (true);
+ /* If the underlying type is known, and is unsigned, then we'll
+ assume the enumerator constants are unsigned. Otherwise we have
+ to assume they are signed. */
+ std::optional<bool> is_unsigned;
+
/* If this type has an underlying type that is not a stub, then we
may use its attributes. We always use the "unsigned" attribute
in this situation, because ordinarily we guess whether the type
@@ -12711,7 +11709,8 @@ read_enumeration_type (struct die_info *die, struct dwarf2_cu *cu)
struct type *underlying_type = type->target_type ();
underlying_type = check_typedef (underlying_type);
- type->set_is_unsigned (underlying_type->is_unsigned ());
+ is_unsigned = underlying_type->is_unsigned ();
+ type->set_is_unsigned (*is_unsigned);
if (type->length () == 0)
type->set_length (underlying_type->length ());
@@ -12731,7 +11730,7 @@ read_enumeration_type (struct die_info *die, struct dwarf2_cu *cu)
Note that, as usual, this must come after set_die_type to avoid
infinite recursion when trying to compute the names of the
enumerators. */
- update_enumeration_type_from_children (die, type, cu);
+ update_enumeration_type_from_children (die, type, cu, is_unsigned);
return type;
}
@@ -12753,10 +11752,7 @@ process_enumeration_scope (struct die_info *die, struct dwarf2_cu *cu)
if (die->child != NULL)
{
- struct die_info *child_die;
-
- child_die = die->child;
- while (child_die && child_die->tag)
+ for (die_info *child_die : die->children ())
{
if (child_die->tag != DW_TAG_enumerator)
{
@@ -12764,8 +11760,6 @@ process_enumeration_scope (struct die_info *die, struct dwarf2_cu *cu)
}
else
new_symbol (child_die, this_type, cu);
-
- child_die = child_die->sibling;
}
}
@@ -12946,9 +11940,7 @@ quirk_ada_thick_pointer (struct die_info *die, struct dwarf2_cu *cu,
int bounds_offset = -1;
int max_align = -1;
std::vector<struct field> range_fields;
- for (struct die_info *child_die = die->child;
- child_die;
- child_die = child_die->sibling)
+ for (die_info *child_die : die->children ())
{
if (child_die->tag == DW_TAG_subrange_type)
{
@@ -13049,7 +12041,6 @@ static struct type *
read_array_type (struct die_info *die, struct dwarf2_cu *cu)
{
struct objfile *objfile = cu->per_objfile->objfile;
- struct die_info *child_die;
struct type *type;
struct type *element_type, *range_type, *index_type;
struct attribute *attr;
@@ -13089,7 +12080,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
attr = dwarf2_attr (die, DW_AT_bit_stride, cu);
if (attr != NULL)
- bit_stride = attr->constant_value (0);
+ bit_stride = attr->unsigned_constant ().value_or (0);
/* Irix 6.2 native cc creates array types without children for
arrays with unspecified length. */
@@ -13104,8 +12095,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
}
std::vector<struct type *> range_types;
- child_die = die->child;
- while (child_die && child_die->tag)
+ for (die_info *child_die : die->children ())
{
if (child_die->tag == DW_TAG_subrange_type
|| child_die->tag == DW_TAG_generic_subrange)
@@ -13119,7 +12109,6 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
range_types.push_back (child_type);
}
}
- child_die = child_die->sibling;
}
if (range_types.empty ())
@@ -13189,7 +12178,7 @@ read_array_type (struct die_info *die, struct dwarf2_cu *cu)
"than the total size of elements"));
}
- name = dwarf2_name (die, cu);
+ name = dwarf2_full_name (nullptr, die, cu);
if (name)
type->set_name (name);
@@ -13221,9 +12210,10 @@ read_array_order (struct die_info *die, struct dwarf2_cu *cu)
if (attr != nullptr)
{
- LONGEST val = attr->constant_value (-1);
- if (val == DW_ORD_row_major || val == DW_ORD_col_major)
- return (enum dwarf_array_dim_ordering) val;
+ std::optional<ULONGEST> val = attr->unsigned_constant ();
+ if (val.has_value () &&
+ (*val == DW_ORD_row_major || *val == DW_ORD_col_major))
+ return (enum dwarf_array_dim_ordering) *val;
}
/* GNU F77 is a special case, as at 08/2004 array type info is the
@@ -13233,8 +12223,7 @@ read_array_order (struct die_info *die, struct dwarf2_cu *cu)
FIXME: dsl/2004-8-20: If G77 is ever fixed, this will also need
version checking. */
- if (cu->lang () == language_fortran
- && cu->producer && strstr (cu->producer, "GNU F77"))
+ if (cu->lang () == language_fortran && cu->producer_is_gf77 ())
{
return DW_ORD_row_major;
}
@@ -13306,7 +12295,8 @@ mark_common_block_symbol_computed (struct symbol *sym,
gdb_assert (member_loc->form_is_block ()
|| member_loc->form_is_constant ());
- baton = XOBNEW (&objfile->objfile_obstack, struct dwarf2_locexpr_baton);
+ baton = OBSTACK_ZALLOC (&objfile->objfile_obstack,
+ struct dwarf2_locexpr_baton);
baton->per_objfile = per_objfile;
baton->per_cu = cu->per_cu;
gdb_assert (baton->per_cu);
@@ -13315,7 +12305,7 @@ mark_common_block_symbol_computed (struct symbol *sym,
if (member_loc->form_is_constant ())
{
- offset = member_loc->constant_value (0);
+ offset = member_loc->unsigned_constant ().value_or (0);
baton->size += 1 /* DW_OP_addr */ + cu->header.addr_size;
}
else
@@ -13386,15 +12376,12 @@ read_common_block (struct die_info *die, struct dwarf2_cu *cu)
if (die->child != NULL)
{
struct objfile *objfile = cu->per_objfile->objfile;
- struct die_info *child_die;
- size_t n_entries = 0, size;
+ size_t size;
struct common_block *common_block;
struct symbol *sym;
- for (child_die = die->child;
- child_die && child_die->tag;
- child_die = child_die->sibling)
- ++n_entries;
+ auto range = die->children ();
+ size_t n_entries = std::distance (range.begin (), range.end ());
size = (sizeof (struct common_block)
+ (n_entries - 1) * sizeof (struct symbol *));
@@ -13404,9 +12391,7 @@ read_common_block (struct die_info *die, struct dwarf2_cu *cu)
memset (common_block->contents, 0, n_entries * sizeof (struct symbol *));
common_block->n_entries = 0;
- for (child_die = die->child;
- child_die && child_die->tag;
- child_die = child_die->sibling)
+ for (die_info *child_die : die->children ())
{
/* Create the symbol in the DW_TAG_common_block block in the current
symbol scope. */
@@ -13529,50 +12514,52 @@ read_namespace (struct die_info *die, struct dwarf2_cu *cu)
if (die->child != NULL)
{
- struct die_info *child_die = die->child;
-
- while (child_die && child_die->tag)
- {
- process_die (child_die, cu);
- child_die = child_die->sibling;
- }
+ for (die_info *child_die : die->children ())
+ process_die (child_die, cu);
}
}
-/* Read a Fortran module as type. This DIE can be only a declaration used for
- imported module. Still we need that type as local Fortran "use ... only"
- declaration imports depend on the created type in determine_prefix. */
+/* Read a Fortran module or Ada package as type. For Fortran, This
+ DIE can be only a declaration used for imported module. Still we
+ need that type as local Fortran "use ... only" declaration imports
+ depend on the created type in determine_prefix. */
static struct type *
read_module_type (struct die_info *die, struct dwarf2_cu *cu)
{
+ enum language lang = cu->lang ();
struct objfile *objfile = cu->per_objfile->objfile;
- const char *module_name;
struct type *type;
- module_name = dwarf2_name (die, cu);
- type = type_allocator (objfile, cu->lang ()).new_type (TYPE_CODE_MODULE,
- 0, module_name);
+ if (lang == language_ada)
+ {
+ const char *pkg_name = dwarf2_full_name (nullptr, die, cu);
+ type = type_allocator (objfile, lang).new_type (TYPE_CODE_NAMESPACE,
+ 0, pkg_name);
+ }
+ else
+ {
+ const char *module_name = dwarf2_name (die, cu);
+ type = type_allocator (objfile, lang).new_type (TYPE_CODE_MODULE,
+ 0, module_name);
+ }
return set_die_type (die, type, cu);
}
-/* Read a Fortran module. */
+/* Read a module. This tag is used by Fortran (for modules), but also
+ by Ada (for packages). */
static void
read_module (struct die_info *die, struct dwarf2_cu *cu)
{
- struct die_info *child_die = die->child;
struct type *type;
type = read_type_die (die, cu);
new_symbol (die, type, cu);
- while (child_die && child_die->tag)
- {
- process_die (child_die, cu);
- child_die = child_die->sibling;
- }
+ for (die_info *child_die : die->children ())
+ process_die (child_die, cu);
}
/* Return the name of the namespace represented by DIE. Set
@@ -13615,11 +12602,11 @@ static struct type *
read_tag_pointer_type (struct die_info *die, struct dwarf2_cu *cu)
{
struct gdbarch *gdbarch = cu->per_objfile->objfile->arch ();
- struct comp_unit_head *cu_header = &cu->header;
+ unit_head *cu_header = &cu->header;
struct type *type;
struct attribute *attr_byte_size;
struct attribute *attr_address_class;
- int byte_size, addr_class;
+ int byte_size;
struct type *target_type;
target_type = die_type (die, cu);
@@ -13633,13 +12620,16 @@ read_tag_pointer_type (struct die_info *die, struct dwarf2_cu *cu)
attr_byte_size = dwarf2_attr (die, DW_AT_byte_size, cu);
if (attr_byte_size)
- byte_size = attr_byte_size->constant_value (cu_header->addr_size);
+ byte_size = (attr_byte_size->unsigned_constant ()
+ .value_or (cu_header->addr_size));
else
byte_size = cu_header->addr_size;
attr_address_class = dwarf2_attr (die, DW_AT_address_class, cu);
+ ULONGEST addr_class;
if (attr_address_class)
- addr_class = attr_address_class->constant_value (DW_ADDR_none);
+ addr_class = (attr_address_class->unsigned_constant ()
+ .value_or (DW_ADDR_none));
else
addr_class = DW_ADDR_none;
@@ -13727,7 +12717,7 @@ static struct type *
read_tag_reference_type (struct die_info *die, struct dwarf2_cu *cu,
enum type_code refcode)
{
- struct comp_unit_head *cu_header = &cu->header;
+ unit_head *cu_header = &cu->header;
struct type *type, *target_type;
struct attribute *attr;
@@ -13743,7 +12733,8 @@ read_tag_reference_type (struct die_info *die, struct dwarf2_cu *cu,
type = lookup_reference_type (target_type, refcode);
attr = dwarf2_attr (die, DW_AT_byte_size, cu);
if (attr != nullptr)
- type->set_length (attr->constant_value (cu_header->addr_size));
+ type->set_length (attr->unsigned_constant ()
+ .value_or (cu_header->addr_size));
else
type->set_length (cu_header->addr_size);
@@ -13907,9 +12898,7 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu)
len = dwarf2_attr (die, DW_AT_byte_size, cu);
if (len != nullptr && len->form_is_constant ())
{
- /* Pass 0 as the default as we know this attribute is constant
- and the default value will not be returned. */
- LONGEST sz = len->constant_value (0);
+ LONGEST sz = len->unsigned_constant ().value_or (0);
prop_type = objfile_int_type (objfile, sz, true);
}
else
@@ -13928,15 +12917,14 @@ read_tag_string_type (struct die_info *die, struct dwarf2_cu *cu)
else if (attr != nullptr)
{
/* This DW_AT_string_length just contains the length with no
- indirection. There's no need to create a dynamic property in this
- case. Pass 0 for the default value as we know it will not be
- returned in this case. */
- length = attr->constant_value (0);
+ indirection. There's no need to create a dynamic property in
+ this case. */
+ length = attr->unsigned_constant ().value_or (0);
}
else if ((attr = dwarf2_attr (die, DW_AT_byte_size, cu)) != nullptr)
{
/* We don't currently support non-constant byte sizes for strings. */
- length = attr->constant_value (1);
+ length = attr->unsigned_constant ().value_or (1);
}
else
{
@@ -13987,7 +12975,7 @@ prototyped_function_p (struct die_info *die, struct dwarf2_cu *cu)
prototyped and unprototyped functions; default to prototyped,
since that is more common in modern code (and RealView warns
about unprototyped functions). */
- if (producer_is_realview (cu->producer))
+ if (cu->producer_is_realview ())
return 1;
return 0;
@@ -14018,8 +13006,7 @@ read_subroutine_type (struct die_info *die, struct dwarf2_cu *cu)
if (type->code () == TYPE_CODE_VOID
&& !type->is_stub ()
&& die->child == nullptr
- && (cu->per_cu->version () == 2
- || producer_is_gas_2_39 (cu)))
+ && (cu->header.version == 2 || cu->producer_is_gas_2_39 ()))
{
/* Work around PR gas/29517, pretend we have an DW_TAG_unspecified_type
return type. */
@@ -14042,11 +13029,15 @@ read_subroutine_type (struct die_info *die, struct dwarf2_cu *cu)
the subroutine die. Otherwise set the calling convention to
the default value DW_CC_normal. */
attr = dwarf2_attr (die, DW_AT_calling_convention, cu);
- if (attr != nullptr
- && is_valid_DW_AT_calling_convention_for_subroutine (attr->constant_value (0)))
- TYPE_CALLING_CONVENTION (ftype)
- = (enum dwarf_calling_convention) attr->constant_value (0);
- else if (cu->producer && strstr (cu->producer, "IBM XL C for OpenCL"))
+ if (attr != nullptr)
+ {
+ std::optional<ULONGEST> value = attr->unsigned_constant ();
+ if (value.has_value ()
+ && is_valid_DW_AT_calling_convention_for_subroutine (*value))
+ TYPE_CALLING_CONVENTION (ftype)
+ = (enum dwarf_calling_convention) *value;
+ }
+ else if (cu->producer_is_xlc_opencl ())
TYPE_CALLING_CONVENTION (ftype) = DW_CC_GDB_IBM_OpenCL;
else
TYPE_CALLING_CONVENTION (ftype) = DW_CC_normal;
@@ -14065,22 +13056,18 @@ read_subroutine_type (struct die_info *die, struct dwarf2_cu *cu)
if (die->child != NULL)
{
struct type *void_type = builtin_type (objfile)->builtin_void;
- struct die_info *child_die;
int nparams, iparams;
/* Count the number of parameters.
FIXME: GDB currently ignores vararg functions, but knows about
vararg member functions. */
nparams = 0;
- child_die = die->child;
- while (child_die && child_die->tag)
+ for (die_info *child_die : die->children ())
{
if (child_die->tag == DW_TAG_formal_parameter)
nparams++;
else if (child_die->tag == DW_TAG_unspecified_parameters)
ftype->set_has_varargs (true);
-
- child_die = child_die->sibling;
}
/* Allocate storage for parameters and fill them in. */
@@ -14092,8 +13079,7 @@ read_subroutine_type (struct die_info *die, struct dwarf2_cu *cu)
ftype->field (iparams).set_type (void_type);
iparams = 0;
- child_die = die->child;
- while (child_die && child_die->tag)
+ for (die_info *child_die : die->children ())
{
if (child_die->tag == DW_TAG_formal_parameter)
{
@@ -14150,7 +13136,6 @@ read_subroutine_type (struct die_info *die, struct dwarf2_cu *cu)
ftype->field (iparams).set_type (arg_type);
iparams++;
}
- child_die = child_die->sibling;
}
}
@@ -14166,7 +13151,8 @@ read_typedef (struct die_info *die, struct dwarf2_cu *cu)
struct gdbarch *gdbarch = objfile->arch ();
struct type *target_type = die_type (die, cu);
- if (gdbarch_dwarf2_omit_typedef_p (gdbarch, target_type, cu->producer, name))
+ if (gdbarch_dwarf2_omit_typedef_p (gdbarch, target_type,
+ cu->get_producer (), name))
{
/* The long double is defined as a base type in C. GCC creates a long
double typedef with target-type _Float128 for the long double to
@@ -14213,7 +13199,7 @@ read_typedef (struct die_info *die, struct dwarf2_cu *cu)
a given gmp_mpz given an attribute. */
static void
-get_mpz (struct dwarf2_cu *cu, gdb_mpz *value, struct attribute *attr)
+get_mpz_for_rational (dwarf2_cu *cu, gdb_mpz *value, attribute *attr)
{
/* GCC will sometimes emit a 16-byte constant value as a DWARF
location expression that pushes an implicit value. */
@@ -14247,10 +13233,11 @@ get_mpz (struct dwarf2_cu *cu, gdb_mpz *value, struct attribute *attr)
? BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE,
true);
}
- else if (attr->form_is_unsigned ())
- *value = gdb_mpz (attr->as_unsigned ());
else
- *value = gdb_mpz (attr->constant_value (1));
+ {
+ /* Rational constants for Ada are always unsigned. */
+ *value = gdb_mpz (attr->unsigned_constant ().value_or (1));
+ }
}
/* Assuming DIE is a rational DW_TAG_constant, read the DIE's
@@ -14279,8 +13266,8 @@ get_dwarf2_rational_constant (struct die_info *die, struct dwarf2_cu *cu,
if (num_attr == nullptr || denom_attr == nullptr)
return;
- get_mpz (cu, numerator, num_attr);
- get_mpz (cu, denominator, denom_attr);
+ get_mpz_for_rational (cu, numerator, num_attr);
+ get_mpz_for_rational (cu, denominator, denom_attr);
}
/* Same as get_dwarf2_rational_constant, but extracting an unsigned
@@ -14429,14 +13416,14 @@ finish_fixed_point_type (struct type *type, const char *suffix,
}
else if (attr->name == DW_AT_binary_scale)
{
- LONGEST scale_exp = attr->constant_value (0);
+ LONGEST scale_exp = attr->signed_constant ().value_or (0);
gdb_mpz &num_or_denom = scale_exp > 0 ? scale_num : scale_denom;
num_or_denom <<= std::abs (scale_exp);
}
else if (attr->name == DW_AT_decimal_scale)
{
- LONGEST scale_exp = attr->constant_value (0);
+ LONGEST scale_exp = attr->signed_constant ().value_or (0);
gdb_mpz &num_or_denom = scale_exp > 0 ? scale_num : scale_denom;
num_or_denom = gdb_mpz::pow (10, std::abs (scale_exp));
@@ -14515,7 +13502,7 @@ dwarf2_init_integer_type (struct dwarf2_cu *cu, int bits, int unsigned_p,
/* Versions of Intel's C Compiler generate an integer type called "void"
instead of using DW_TAG_unspecified_type. This has been seen on
at least versions 14, 17, and 18. */
- if (bits == 0 && producer_is_icc (cu) && name != nullptr
+ if (bits == 0 && cu->producer_is_icc () && name != nullptr
&& strcmp (name, "void") == 0)
type = builtin_type (objfile)->builtin_void;
else
@@ -14635,16 +13622,44 @@ read_base_type (struct die_info *die, struct dwarf2_cu *cu)
struct objfile *objfile = cu->per_objfile->objfile;
struct type *type;
struct attribute *attr;
- int encoding = 0, bits = 0;
+ ULONGEST encoding = 0;
const char *name;
attr = dwarf2_attr (die, DW_AT_encoding, cu);
- if (attr != nullptr && attr->form_is_constant ())
- encoding = attr->constant_value (0);
+ if (attr != nullptr)
+ {
+ std::optional<ULONGEST> value = attr->unsigned_constant ();
+ if (value.has_value ())
+ encoding = *value;
+ }
+
attr = dwarf2_attr (die, DW_AT_byte_size, cu);
+ std::optional<ULONGEST> byte_size;
if (attr != nullptr)
- bits = attr->constant_value (0) * TARGET_CHAR_BIT;
- name = dwarf2_name (die, cu);
+ byte_size = attr->unsigned_constant ();
+ attr = dwarf2_attr (die, DW_AT_bit_size, cu);
+ std::optional<ULONGEST> bit_size;
+ if (attr != nullptr)
+ bit_size = attr->unsigned_constant ();
+
+ attr = dwarf2_attr (die, DW_AT_data_bit_offset, cu);
+ std::optional<ULONGEST> bit_offset;
+ if (attr != nullptr)
+ bit_offset = attr->unsigned_constant ();
+
+ int bits = 0;
+ if (byte_size.has_value ())
+ bits = TARGET_CHAR_BIT * *byte_size;
+ else if (bit_size.has_value ())
+ bits = align_up (*bit_size, 8);
+ else
+ {
+ /* No size, so arrange for an error type. */
+ complaint (_("DW_TAG_base_type has neither bit- nor byte-size"));
+ encoding = (ULONGEST) -1;
+ }
+
+ name = dwarf2_full_name (nullptr, die, cu);
if (!name)
complaint (_("DW_AT_name missing from DW_TAG_base_type"));
@@ -14789,29 +13804,21 @@ read_base_type (struct die_info *die, struct dwarf2_cu *cu)
type->set_endianity_is_not_default (not_default);
- if (TYPE_SPECIFIC_FIELD (type) == TYPE_SPECIFIC_INT)
+ /* If both a byte size and bit size were provided, then that means
+ that not every bit in the object contributes to the value. */
+ if (TYPE_SPECIFIC_FIELD (type) == TYPE_SPECIFIC_INT
+ && byte_size.has_value ()
+ && bit_size.has_value ())
{
- attr = dwarf2_attr (die, DW_AT_bit_size, cu);
- if (attr != nullptr && attr->form_is_constant ())
+ /* DWARF says: If this attribute is omitted a default data bit
+ offset of zero is assumed. */
+ ULONGEST offset = bit_offset.value_or (0);
+
+ /* Only use the attributes if they make sense together. */
+ if (*bit_size + offset <= 8 * type->length ())
{
- unsigned real_bit_size = attr->constant_value (0);
- if (real_bit_size >= 0 && real_bit_size <= 8 * type->length ())
- {
- attr = dwarf2_attr (die, DW_AT_data_bit_offset, cu);
- /* Only use the attributes if they make sense together. */
- if (attr == nullptr
- || (attr->form_is_constant ()
- && attr->constant_value (0) >= 0
- && (attr->constant_value (0) + real_bit_size
- <= 8 * type->length ())))
- {
- TYPE_MAIN_TYPE (type)->type_specific.int_stuff.bit_size
- = real_bit_size;
- if (attr != nullptr)
- TYPE_MAIN_TYPE (type)->type_specific.int_stuff.bit_offset
- = attr->constant_value (0);
- }
- }
+ TYPE_MAIN_TYPE (type)->type_specific.int_stuff.bit_size = *bit_size;
+ TYPE_MAIN_TYPE (type)->type_specific.int_stuff.bit_offset = offset;
}
}
@@ -14952,17 +13959,13 @@ attr_to_dynamic_prop (const struct attribute *attr, struct die_info *die,
case DW_AT_data_member_location:
case DW_AT_data_bit_offset:
{
- LONGEST offset;
-
- if (!handle_member_location (target_die, target_cu, &offset))
+ baton = find_field_create_baton (cu, target_die);
+ if (baton == nullptr)
return 0;
- baton = XOBNEW (obstack, struct dwarf2_property_baton);
baton->property_type = read_type_die (target_die->parent,
- target_cu);
- baton->offset_info.offset = offset;
- baton->offset_info.type = die_type (target_die, target_cu);
- prop->set_addr_offset (baton);
+ target_cu);
+ prop->set_field (baton);
break;
}
}
@@ -15122,8 +14125,13 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
LONGEST bias = 0;
struct attribute *bias_attr = dwarf2_attr (die, DW_AT_GNU_bias, cu);
- if (bias_attr != nullptr && bias_attr->form_is_constant ())
- bias = bias_attr->constant_value (0);
+ if (bias_attr != nullptr)
+ {
+ if (base_type->is_unsigned ())
+ bias = (LONGEST) bias_attr->unsigned_constant ().value_or (0);
+ else
+ bias = bias_attr->signed_constant ().value_or (0);
+ }
/* Normally, the DWARF producers are expected to use a signed
constant form (Eg. DW_FORM_sdata) to express negative bounds.
@@ -15204,13 +14212,13 @@ read_subrange_type (struct die_info *die, struct dwarf2_cu *cu)
if (attr == NULL && cu->lang () != language_ada)
range_type->bounds ()->high.set_undefined ();
- name = dwarf2_name (die, cu);
+ name = dwarf2_full_name (nullptr, die, cu);
if (name)
range_type->set_name (name);
attr = dwarf2_attr (die, DW_AT_byte_size, cu);
if (attr != nullptr)
- range_type->set_length (attr->constant_value (0));
+ range_type->set_length (attr->unsigned_constant ().value_or (0));
maybe_set_alignment (cu, die, range_type);
@@ -15241,40 +14249,28 @@ read_unspecified_type (struct die_info *die, struct dwarf2_cu *cu)
return set_die_type (die, type, cu);
}
-/* Read a single die and all its descendents. Set the die's sibling
+/* Read a single die and all its descendents. Set the die's next
field to NULL; set other fields in the die correctly, and set all
- of the descendents' fields correctly. Set *NEW_INFO_PTR to the
- location of the info_ptr after reading all of those dies. PARENT
- is the parent of the die in question. */
+ of the descendents' fields correctly. PARENT is the parent of the
+ die in question. */
-static struct die_info *
-read_die_and_children (const struct die_reader_specs *reader,
- const gdb_byte *info_ptr,
- const gdb_byte **new_info_ptr,
- struct die_info *parent)
+die_info *
+cutu_reader::read_die_and_children (die_info *parent)
{
- struct die_info *die;
- const gdb_byte *cur_ptr;
+ die_info *die = this->read_full_die (0, true);
- cur_ptr = read_full_die_1 (reader, &die, info_ptr, 0, true);
- if (die == NULL)
- {
- *new_info_ptr = cur_ptr;
- return NULL;
- }
+ if (die == nullptr)
+ return nullptr;
- bool inserted = reader->cu->die_hash.emplace (die).second;
+ bool inserted = m_cu->die_hash.emplace (die).second;
gdb_assert (inserted);
if (die->has_children)
- die->child = read_die_and_siblings_1 (reader, cur_ptr, new_info_ptr, die);
+ die->child = this->read_die_and_siblings (die);
else
- {
- die->child = NULL;
- *new_info_ptr = cur_ptr;
- }
+ die->child = nullptr;
- die->sibling = NULL;
+ die->next = nullptr;
die->parent = parent;
return die;
}
@@ -15283,101 +14279,85 @@ read_die_and_children (const struct die_reader_specs *reader,
all of the fields of all of the dies correctly. Arguments are as
in read_die_and_children. */
-static struct die_info *
-read_die_and_siblings_1 (const struct die_reader_specs *reader,
- const gdb_byte *info_ptr,
- const gdb_byte **new_info_ptr,
- struct die_info *parent)
+die_info *
+cutu_reader::read_die_and_siblings (die_info *parent)
{
- struct die_info *first_die, *last_sibling;
- const gdb_byte *cur_ptr;
+ die_info *first_die = nullptr;
+ die_info *last_sibling = nullptr;
- cur_ptr = info_ptr;
- first_die = last_sibling = NULL;
-
- while (1)
+ while (true)
{
- struct die_info *die
- = read_die_and_children (reader, cur_ptr, &cur_ptr, parent);
+ die_info *die = this->read_die_and_children (parent);
- if (die == NULL)
- {
- *new_info_ptr = cur_ptr;
- return first_die;
- }
+ if (die == nullptr)
+ return first_die;
- if (!first_die)
+ if (first_die == nullptr)
first_die = die;
else
- last_sibling->sibling = die;
+ last_sibling->next = die;
last_sibling = die;
}
}
-/* Read a die, all of its descendents, and all of its siblings; set
- all of the fields of all of the dies correctly. Arguments are as
- in read_die_and_children.
- This the main entry point for reading a DIE and all its children. */
+/* See read.h. */
-static struct die_info *
-read_die_and_siblings (const struct die_reader_specs *reader,
- const gdb_byte *info_ptr,
- const gdb_byte **new_info_ptr,
- struct die_info *parent)
+void
+cutu_reader::read_all_dies ()
{
- struct die_info *die = read_die_and_siblings_1 (reader, info_ptr,
- new_info_ptr, parent);
+ const gdb_byte *begin_info_ptr = m_info_ptr;
- if (dwarf_die_debug)
+ if (m_top_level_die->has_children)
{
- gdb_printf (gdb_stdlog,
- "Read die from %s@0x%x of %s:\n",
- reader->die_section->get_name (),
- (unsigned) (info_ptr - reader->die_section->buffer),
- bfd_get_filename (reader->abfd));
- die->dump (dwarf_die_debug);
+ gdb_assert (m_cu->die_hash.empty ());
+ m_cu->die_hash.reserve (m_cu->header.get_length_without_initial () / 12);
+ m_top_level_die->child = this->read_die_and_siblings (m_top_level_die);
}
- return die;
+ m_cu->dies = m_top_level_die;
+
+ if (dwarf_die_debug)
+ {
+ gdb_printf (gdb_stdlog, "Read die from %s@0x%tx of %s:\n",
+ m_die_section->get_name (),
+ begin_info_ptr - m_die_section->buffer,
+ bfd_get_filename (m_abfd));
+ m_top_level_die->child->dump (dwarf_die_debug);
+ }
}
/* Read a die and all its attributes, leave space for NUM_EXTRA_ATTRS
attributes.
+
The caller is responsible for filling in the extra attributes
- and updating (*DIEP)->num_attrs.
- Set DIEP to point to a newly allocated die with its information,
- except for its child, sibling, and parent fields. */
+ and updating die_info::num_attrs.
-static const gdb_byte *
-read_full_die_1 (const struct die_reader_specs *reader,
- struct die_info **diep, const gdb_byte *info_ptr,
- int num_extra_attrs, bool allow_reprocess)
+ Return a newly allocated die with its information, except for its
+ child, next, and parent fields. */
+
+die_info *
+cutu_reader::read_full_die (int num_extra_attrs, bool allow_reprocess)
{
- unsigned int abbrev_number, bytes_read, i;
+ unsigned int bytes_read, i;
const struct abbrev_info *abbrev;
- struct die_info *die;
- struct dwarf2_cu *cu = reader->cu;
- bfd *abfd = reader->abfd;
- sect_offset sect_off = (sect_offset) (info_ptr - reader->buffer);
- abbrev_number = read_unsigned_leb128 (abfd, info_ptr, &bytes_read);
- info_ptr += bytes_read;
- if (!abbrev_number)
- {
- *diep = NULL;
- return info_ptr;
- }
+ sect_offset sect_off = static_cast<sect_offset> (m_info_ptr - m_buffer);
+ unsigned int abbrev_number
+ = read_unsigned_leb128 (m_abfd, m_info_ptr, &bytes_read);
+ m_info_ptr += bytes_read;
+
+ if (abbrev_number == 0)
+ return nullptr;
- abbrev = reader->abbrev_table->lookup_abbrev (abbrev_number);
+ abbrev = m_abbrev_table->lookup_abbrev (abbrev_number);
if (!abbrev)
error (_(DWARF_ERROR_PREFIX
"could not find abbrev number %d [in module %s]"),
- abbrev_number,
- bfd_get_filename (abfd));
+ abbrev_number, bfd_get_filename (m_abfd));
- die = die_info::allocate (&cu->comp_unit_obstack,
- abbrev->num_attrs + num_extra_attrs);
+ die_info *die = die_info::allocate (&m_cu->comp_unit_obstack,
+ abbrev->num_attrs + num_extra_attrs);
die->sect_off = sect_off;
die->tag = abbrev->tag;
die->abbrev = abbrev_number;
@@ -15389,722 +14369,62 @@ read_full_die_1 (const struct die_reader_specs *reader,
die->num_attrs = abbrev->num_attrs;
for (i = 0; i < abbrev->num_attrs; ++i)
- info_ptr = read_attribute (reader, &die->attrs[i], &abbrev->attrs[i],
- info_ptr, allow_reprocess);
+ m_info_ptr = this->read_attribute (&die->attrs[i], &abbrev->attrs[i],
+ m_info_ptr, allow_reprocess);
- *diep = die;
- return info_ptr;
+ return die;
}
/* Read a die and all its attributes.
- Set DIEP to point to a newly allocated die with its information,
- except for its child, sibling, and parent fields. */
-static const gdb_byte *
-read_toplevel_die (const struct die_reader_specs *reader,
- struct die_info **diep, const gdb_byte *info_ptr,
- gdb::array_view<attribute *> extra_attrs)
-{
- const gdb_byte *result;
- struct dwarf2_cu *cu = reader->cu;
+ Return a newly allocated die with its information, except for its
+ child, next, and parent fields. */
- result = read_full_die_1 (reader, diep, info_ptr, extra_attrs.size (),
- false);
+die_info *
+cutu_reader::read_toplevel_die (gdb::array_view<attribute *> extra_attrs)
+{
+ const gdb_byte *begin_info_ptr = m_info_ptr;
+ die_info *die = this->read_full_die (extra_attrs.size (), false);
/* Copy in the extra attributes, if any. */
- attribute *next = &(*diep)->attrs[(*diep)->num_attrs];
+ attribute *next = &die->attrs[die->num_attrs];
for (attribute *extra : extra_attrs)
*next++ = *extra;
- struct attribute *attr = (*diep)->attr (DW_AT_str_offsets_base);
+ struct attribute *attr = die->attr (DW_AT_str_offsets_base);
if (attr != nullptr && attr->form_is_unsigned ())
- cu->str_offsets_base = attr->as_unsigned ();
+ m_cu->str_offsets_base = attr->as_unsigned ();
- attr = (*diep)->attr (DW_AT_loclists_base);
+ attr = die->attr (DW_AT_loclists_base);
if (attr != nullptr)
- cu->loclist_base = attr->as_unsigned ();
+ m_cu->loclist_base = attr->as_unsigned ();
- auto maybe_addr_base = (*diep)->addr_base ();
+ auto maybe_addr_base = die->addr_base ();
if (maybe_addr_base.has_value ())
- cu->addr_base = *maybe_addr_base;
+ m_cu->addr_base = *maybe_addr_base;
- attr = (*diep)->attr (DW_AT_rnglists_base);
+ attr = die->attr (DW_AT_rnglists_base);
if (attr != nullptr)
- cu->rnglists_base = attr->as_unsigned ();
+ m_cu->rnglists_base = attr->as_unsigned ();
- for (int i = 0; i < (*diep)->num_attrs; ++i)
+ for (int i = 0; i < die->num_attrs; ++i)
{
- if ((*diep)->attrs[i].form_requires_reprocessing ())
- read_attribute_reprocess (reader, &(*diep)->attrs[i], (*diep)->tag);
+ if (die->attrs[i].form_requires_reprocessing ())
+ this->read_attribute_reprocess (&die->attrs[i], die->tag);
}
- (*diep)->num_attrs += extra_attrs.size ();
+ die->num_attrs += extra_attrs.size ();
if (dwarf_die_debug)
{
- gdb_printf (gdb_stdlog,
- "Read die from %s@0x%x of %s:\n",
- reader->die_section->get_name (),
- (unsigned) (info_ptr - reader->die_section->buffer),
- bfd_get_filename (reader->abfd));
- (*diep)->dump (dwarf_die_debug);
- }
-
- return result;
-}
-
-
-void
-cooked_indexer::check_bounds (cutu_reader *reader)
-{
- if (reader->cu->per_cu->addresses_seen)
- return;
-
- dwarf2_cu *cu = reader->cu;
-
- unrelocated_addr best_lowpc = {}, best_highpc = {};
- /* Possibly set the default values of LOWPC and HIGHPC from
- `DW_AT_ranges'. */
- dwarf2_find_base_address (reader->comp_unit_die, cu);
- enum pc_bounds_kind cu_bounds_kind
- = dwarf2_get_pc_bounds (reader->comp_unit_die, &best_lowpc, &best_highpc,
- cu, m_index_storage->get_addrmap (), cu->per_cu);
- if (cu_bounds_kind == PC_BOUNDS_HIGH_LOW && best_lowpc < best_highpc)
- {
- /* Store the contiguous range if it is not empty; it can be
- empty for CUs with no code. addrmap requires CORE_ADDR, so
- we cast here. */
- m_index_storage->get_addrmap ()->set_empty ((CORE_ADDR) best_lowpc,
- (CORE_ADDR) best_highpc - 1,
- cu->per_cu);
-
- cu->per_cu->addresses_seen = true;
- }
-}
-
-/* Helper function that returns true if TAG can have a linkage
- name. */
-
-static bool
-tag_can_have_linkage_name (enum dwarf_tag tag)
-{
- switch (tag)
- {
- case DW_TAG_variable:
- case DW_TAG_subprogram:
- return true;
-
- default:
- return false;
- }
-}
-
-cutu_reader *
-cooked_indexer::ensure_cu_exists (cutu_reader *reader,
- dwarf2_per_objfile *per_objfile,
- sect_offset sect_off, bool is_dwz,
- bool for_scanning)
-{
- /* Lookups for type unit references are always in the CU, and
- cross-CU references will crash. */
- if (reader->cu->per_cu->is_dwz == is_dwz
- && reader->cu->header.offset_in_cu_p (sect_off))
- return reader;
-
- dwarf2_per_cu_data *per_cu
- = dwarf2_find_containing_comp_unit (sect_off, is_dwz,
- per_objfile->per_bfd);
-
- /* When scanning, we only want to visit a given CU a single time.
- Doing this check here avoids self-imports as well. */
- if (for_scanning)
- {
- bool nope = false;
- if (!per_cu->scanned.compare_exchange_strong (nope, true))
- return nullptr;
- }
-
- cutu_reader *result = m_index_storage->get_reader (per_cu);
- if (result == nullptr)
- {
- cutu_reader new_reader (per_cu, per_objfile, nullptr, nullptr, false,
- &m_index_storage->get_abbrev_table_cache ());
-
- if (new_reader.dummy_p || new_reader.comp_unit_die == nullptr
- || !new_reader.comp_unit_die->has_children)
- return nullptr;
-
- prepare_one_comp_unit (new_reader.cu, new_reader.comp_unit_die,
- language_minimal);
- std::unique_ptr<cutu_reader> copy
- (new cutu_reader (std::move (new_reader)));
- result = m_index_storage->preserve (std::move (copy));
- }
-
- if (result->dummy_p || result->comp_unit_die == nullptr
- || !result->comp_unit_die->has_children)
- return nullptr;
-
- if (for_scanning)
- check_bounds (result);
-
- return result;
-}
-
-const gdb_byte *
-cooked_indexer::scan_attributes (dwarf2_per_cu_data *scanning_per_cu,
- cutu_reader *reader,
- const gdb_byte *watermark_ptr,
- const gdb_byte *info_ptr,
- const abbrev_info *abbrev,
- const char **name,
- const char **linkage_name,
- cooked_index_flag *flags,
- sect_offset *sibling_offset,
- const cooked_index_entry **parent_entry,
- parent_map::addr_type *maybe_defer,
- bool *is_enum_class,
- bool for_specification)
-{
- bool origin_is_dwz = false;
- bool is_declaration = false;
- sect_offset origin_offset {};
-
- std::optional<unrelocated_addr> low_pc;
- std::optional<unrelocated_addr> high_pc;
- bool high_pc_relative = false;
-
- for (int i = 0; i < abbrev->num_attrs; ++i)
- {
- attribute attr;
- info_ptr = read_attribute (reader, &attr, &abbrev->attrs[i], info_ptr);
-
- /* Store the data if it is of an attribute we want to keep in a
- partial symbol table. */
- switch (attr.name)
- {
- case DW_AT_name:
- switch (abbrev->tag)
- {
- case DW_TAG_compile_unit:
- case DW_TAG_partial_unit:
- case DW_TAG_type_unit:
- /* Compilation units have a DW_AT_name that is a filename, not
- a source language identifier. */
- break;
-
- default:
- if (*name == nullptr)
- *name = attr.as_string ();
- break;
- }
- break;
-
- case DW_AT_linkage_name:
- case DW_AT_MIPS_linkage_name:
- /* Note that both forms of linkage name might appear. We
- assume they will be the same, and we only store the last
- one we see. */
- if (*linkage_name == nullptr)
- *linkage_name = attr.as_string ();
- break;
-
- /* DWARF 4 has defined a dedicated DW_AT_main_subprogram
- attribute to indicate the starting function of the program... */
- case DW_AT_main_subprogram:
- if (attr.as_boolean ())
- *flags |= IS_MAIN;
- break;
-
- /* ... however with older versions the DW_CC_program value of
- the DW_AT_calling_convention attribute was used instead as
- the only means available. We handle both variants then. */
- case DW_AT_calling_convention:
- if (attr.constant_value (DW_CC_normal) == DW_CC_program)
- *flags |= IS_MAIN;
- break;
-
- case DW_AT_declaration:
- is_declaration = attr.as_boolean ();
- break;
-
- case DW_AT_sibling:
- if (sibling_offset != nullptr)
- *sibling_offset = attr.get_ref_die_offset ();
- break;
-
- case DW_AT_specification:
- case DW_AT_abstract_origin:
- case DW_AT_extension:
- origin_offset = attr.get_ref_die_offset ();
- origin_is_dwz = attr.form == DW_FORM_GNU_ref_alt;
- break;
-
- case DW_AT_external:
- if (attr.as_boolean ())
- *flags &= ~IS_STATIC;
- break;
-
- case DW_AT_enum_class:
- if (attr.as_boolean ())
- *is_enum_class = true;
- break;
-
- case DW_AT_low_pc:
- low_pc = attr.as_address ();
- break;
-
- case DW_AT_high_pc:
- high_pc = attr.as_address ();
- if (reader->cu->header.version >= 4 && attr.form_is_constant ())
- high_pc_relative = true;
- break;
-
- case DW_AT_location:
- if (!scanning_per_cu->addresses_seen && attr.form_is_block ())
- {
- struct dwarf_block *locdesc = attr.as_block ();
- CORE_ADDR addr;
- if (decode_locdesc (locdesc, reader->cu, &addr)
- && (addr != 0
- || reader->cu->per_objfile->per_bfd->has_section_at_zero))
- {
- low_pc = (unrelocated_addr) addr;
- /* For variables, we don't want to try decoding the
- type just to find the size -- for gdb's purposes
- we only need the address of a variable. */
- high_pc = (unrelocated_addr) (addr + 1);
- high_pc_relative = false;
- }
- }
- break;
-
- case DW_AT_ranges:
- if (!scanning_per_cu->addresses_seen)
- {
- /* Offset in the .debug_ranges or .debug_rnglist section
- (depending on DWARF version). */
- ULONGEST ranges_offset = attr.as_unsigned ();
-
- /* See dwarf2_cu::gnu_ranges_base's doc for why we might
- want to add this value. */
- ranges_offset += reader->cu->gnu_ranges_base;
-
- unrelocated_addr lowpc, highpc;
- dwarf2_ranges_read (ranges_offset, &lowpc, &highpc, reader->cu,
- m_index_storage->get_addrmap (),
- scanning_per_cu, abbrev->tag);
- }
- break;
- }
- }
-
- /* We don't want to examine declarations, but if we found a
- declaration when handling DW_AT_specification or the like, then
- that is ok. Similarly, we allow an external variable without a
- location; those are resolved via minimal symbols. */
- if (is_declaration && !for_specification
- && !(abbrev->tag == DW_TAG_variable && (*flags & IS_STATIC) == 0))
- {
- /* We always want to recurse into some types, but we may not
- want to treat them as definitions. */
- if ((abbrev->tag == DW_TAG_class_type
- || abbrev->tag == DW_TAG_structure_type
- || abbrev->tag == DW_TAG_union_type
- || abbrev->tag == DW_TAG_namespace)
- && abbrev->has_children)
- *flags |= IS_TYPE_DECLARATION;
- else
- {
- *linkage_name = nullptr;
- *name = nullptr;
- }
- }
- else if ((*name == nullptr
- || (*linkage_name == nullptr
- && tag_can_have_linkage_name (abbrev->tag))
- || (*parent_entry == nullptr && m_language != language_c))
- && origin_offset != sect_offset (0))
- {
- cutu_reader *new_reader
- = ensure_cu_exists (reader, reader->cu->per_objfile, origin_offset,
- origin_is_dwz, false);
- if (new_reader == nullptr)
- error (_(DWARF_ERROR_PREFIX
- "cannot follow reference to DIE at %s"
- " [in module %s]"),
- sect_offset_str (origin_offset),
- bfd_get_filename (reader->abfd));
-
- const gdb_byte *new_info_ptr = (new_reader->buffer
- + to_underlying (origin_offset));
-
- if (*parent_entry == nullptr)
- {
- /* We only perform immediate lookups of parents for DIEs
- from earlier in this CU. This avoids any problem
- with a NULL result when when we see a reference to a
- DIE in another CU that we may or may not have
- imported locally. */
- parent_map::addr_type addr = parent_map::form_addr (new_info_ptr);
- if (new_reader->cu != reader->cu || new_info_ptr > watermark_ptr)
- *maybe_defer = addr;
- else
- *parent_entry = m_die_range_map->find (addr);
- }
-
- unsigned int bytes_read;
- const abbrev_info *new_abbrev = peek_die_abbrev (*new_reader,
- new_info_ptr,
- &bytes_read);
-
- if (new_abbrev == nullptr)
- error (_(DWARF_ERROR_PREFIX
- "Unexpected null DIE at offset %s [in module %s]"),
- sect_offset_str (origin_offset),
- bfd_get_filename (new_reader->abfd));
-
- new_info_ptr += bytes_read;
-
- if (new_reader->cu == reader->cu && new_info_ptr == watermark_ptr)
- {
- /* Self-reference, we're done. */
- }
- else
- scan_attributes (scanning_per_cu, new_reader, new_info_ptr,
- new_info_ptr, new_abbrev, name, linkage_name,
- flags, nullptr, parent_entry, maybe_defer,
- is_enum_class, true);
- }
-
- if (!for_specification)
- {
- if (m_language == language_ada
- && *linkage_name == nullptr)
- *linkage_name = *name;
-
- if (!scanning_per_cu->addresses_seen
- && low_pc.has_value ()
- && (reader->cu->per_objfile->per_bfd->has_section_at_zero
- || *low_pc != (unrelocated_addr) 0)
- && high_pc.has_value ())
- {
- if (high_pc_relative)
- high_pc = (unrelocated_addr) ((ULONGEST) *high_pc
- + (ULONGEST) *low_pc);
-
- if (*high_pc > *low_pc)
- {
- /* Need CORE_ADDR casts for addrmap. */
- m_index_storage->get_addrmap ()->set_empty
- ((CORE_ADDR) *low_pc, (CORE_ADDR) *high_pc - 1,
- scanning_per_cu);
- }
- }
-
- if (abbrev->tag == DW_TAG_module || abbrev->tag == DW_TAG_namespace)
- *flags &= ~IS_STATIC;
-
- if (abbrev->tag == DW_TAG_namespace && *name == nullptr)
- *name = "(anonymous namespace)";
-
- if (m_language == language_cplus
- && (abbrev->tag == DW_TAG_class_type
- || abbrev->tag == DW_TAG_interface_type
- || abbrev->tag == DW_TAG_structure_type
- || abbrev->tag == DW_TAG_union_type
- || abbrev->tag == DW_TAG_enumeration_type
- || abbrev->tag == DW_TAG_enumerator))
- *flags &= ~IS_STATIC;
-
- /* Keep in sync with new_symbol. */
- if (abbrev->tag == DW_TAG_subprogram
- && (m_language == language_ada
- || m_language == language_fortran))
- *flags &= ~IS_STATIC;
- }
-
- return info_ptr;
-}
-
-const gdb_byte *
-cooked_indexer::index_imported_unit (cutu_reader *reader,
- const gdb_byte *info_ptr,
- const abbrev_info *abbrev)
-{
- sect_offset sect_off {};
- bool is_dwz = false;
-
- for (int i = 0; i < abbrev->num_attrs; ++i)
- {
- /* Note that we never need to reprocess attributes here. */
- attribute attr;
- info_ptr = read_attribute (reader, &attr, &abbrev->attrs[i], info_ptr);
-
- if (attr.name == DW_AT_import)
- {
- sect_off = attr.get_ref_die_offset ();
- is_dwz = (attr.form == DW_FORM_GNU_ref_alt
- || reader->cu->per_cu->is_dwz);
- }
- }
-
- /* Did not find DW_AT_import. */
- if (sect_off == sect_offset (0))
- return info_ptr;
-
- dwarf2_per_objfile *per_objfile = reader->cu->per_objfile;
- cutu_reader *new_reader = ensure_cu_exists (reader, per_objfile, sect_off,
- is_dwz, true);
- if (new_reader != nullptr)
- {
- index_dies (new_reader, new_reader->info_ptr, nullptr, false);
-
- reader->cu->add_dependence (new_reader->cu->per_cu);
- }
-
- return info_ptr;
-}
-
-const gdb_byte *
-cooked_indexer::recurse (cutu_reader *reader,
- const gdb_byte *info_ptr,
- std::variant<const cooked_index_entry *,
- parent_map::addr_type> parent,
- bool fully)
-{
- info_ptr = index_dies (reader, info_ptr, parent, fully);
-
- if (!std::holds_alternative<const cooked_index_entry *> (parent))
- return info_ptr;
- const cooked_index_entry *parent_entry
- = std::get<const cooked_index_entry *> (parent);
-
- if (parent_entry != nullptr)
- {
- /* Both start and end are inclusive, so use both "+ 1" and "- 1" to
- limit the range to the children of parent_entry. */
- parent_map::addr_type start
- = parent_map::form_addr (reader->buffer
- + to_underlying (parent_entry->die_offset)
- + 1);
- parent_map::addr_type end = parent_map::form_addr (info_ptr - 1);
- m_die_range_map->add_entry (start, end, parent_entry);
- }
-
- return info_ptr;
-}
-
-const gdb_byte *
-cooked_indexer::index_dies (cutu_reader *reader,
- const gdb_byte *info_ptr,
- std::variant<const cooked_index_entry *,
- parent_map::addr_type> parent,
- bool fully)
-{
- const gdb_byte *end_ptr = (reader->buffer
- + to_underlying (reader->cu->header.sect_off)
- + reader->cu->header.get_length_with_initial ());
-
- while (info_ptr < end_ptr)
- {
- sect_offset this_die = (sect_offset) (info_ptr - reader->buffer);
- unsigned int bytes_read;
- const abbrev_info *abbrev = peek_die_abbrev (*reader, info_ptr,
- &bytes_read);
- info_ptr += bytes_read;
- if (abbrev == nullptr)
- break;
-
- if (abbrev->tag == DW_TAG_imported_unit)
- {
- info_ptr = index_imported_unit (reader, info_ptr, abbrev);
- continue;
- }
-
- parent_map::addr_type defer {};
- if (std::holds_alternative<parent_map::addr_type> (parent))
- defer = std::get<parent_map::addr_type> (parent);
- const cooked_index_entry *parent_entry = nullptr;
- if (std::holds_alternative<const cooked_index_entry *> (parent))
- parent_entry = std::get<const cooked_index_entry *> (parent);
-
- /* If a DIE parent is a DW_TAG_subprogram, then the DIE is only
- interesting if it's a DW_TAG_subprogram or a DW_TAG_entry_point. */
- bool die_interesting
- = (abbrev->interesting
- && (parent_entry == nullptr
- || parent_entry->tag != DW_TAG_subprogram
- || abbrev->tag == DW_TAG_subprogram
- || abbrev->tag == DW_TAG_entry_point));
-
- if (!die_interesting)
- {
- info_ptr = skip_one_die (reader, info_ptr, abbrev, !fully);
- if (fully && abbrev->has_children)
- info_ptr = index_dies (reader, info_ptr, parent, fully);
- continue;
- }
-
- const char *name = nullptr;
- const char *linkage_name = nullptr;
- cooked_index_flag flags = IS_STATIC;
- sect_offset sibling {};
- const cooked_index_entry *this_parent_entry = parent_entry;
- bool is_enum_class = false;
-
- /* The scope of a DW_TAG_entry_point cooked_index_entry is the one of
- its surrounding subroutine. */
- if (abbrev->tag == DW_TAG_entry_point)
- this_parent_entry = parent_entry->get_parent ();
- info_ptr = scan_attributes (reader->cu->per_cu, reader, info_ptr,
- info_ptr, abbrev, &name, &linkage_name,
- &flags, &sibling, &this_parent_entry,
- &defer, &is_enum_class, false);
- /* A DW_TAG_entry_point inherits its static/extern property from
- the enclosing subroutine. */
- if (abbrev->tag == DW_TAG_entry_point)
- {
- flags &= ~IS_STATIC;
- flags |= parent_entry->flags & IS_STATIC;
- }
-
- if (abbrev->tag == DW_TAG_namespace
- && m_language == language_cplus
- && strcmp (name, "::") == 0)
- {
- /* GCC 4.0 and 4.1 had a bug (PR c++/28460) where they
- generated bogus DW_TAG_namespace DIEs with a name of "::"
- for the global namespace. Work around this problem
- here. */
- name = nullptr;
- }
-
- cooked_index_entry *this_entry = nullptr;
- if (name != nullptr)
- {
- if (defer != 0)
- this_entry
- = m_index_storage->add (this_die, abbrev->tag,
- flags | IS_PARENT_DEFERRED, name,
- defer, m_per_cu);
- else
- this_entry
- = m_index_storage->add (this_die, abbrev->tag, flags, name,
- this_parent_entry, m_per_cu);
- }
-
- if (linkage_name != nullptr)
- {
- /* We only want this to be "main" if it has a linkage name
- but not an ordinary name. */
- if (name != nullptr)
- flags = flags & ~IS_MAIN;
- /* Set the IS_LINKAGE on for everything except when functions
- have linkage name present but name is absent. */
- if (name != nullptr
- || (abbrev->tag != DW_TAG_subprogram
- && abbrev->tag != DW_TAG_inlined_subroutine
- && abbrev->tag != DW_TAG_entry_point))
- flags = flags | IS_LINKAGE;
- m_index_storage->add (this_die, abbrev->tag, flags,
- linkage_name, nullptr, m_per_cu);
- }
-
- if (abbrev->has_children)
- {
- switch (abbrev->tag)
- {
- case DW_TAG_class_type:
- case DW_TAG_interface_type:
- case DW_TAG_structure_type:
- case DW_TAG_union_type:
- if (m_language != language_c && this_entry != nullptr)
- {
- info_ptr = recurse (reader, info_ptr, this_entry, fully);
- continue;
- }
- break;
-
- case DW_TAG_enumeration_type:
- /* Some versions of gdc could emit an "enum class"
- without a name, which is nonsensical. These are
- skipped. */
- if (is_enum_class && this_entry == nullptr)
- continue;
-
- /* We need to recurse even for an anonymous enumeration.
- Which scope we record as the parent scope depends on
- whether we're reading an "enum class". If so, we use
- the enum itself as the parent, yielding names like
- "enum_class::enumerator"; otherwise we inject the
- names into our own parent scope. */
- {
- std::variant<const cooked_index_entry *,
- parent_map::addr_type> recurse_parent;
- if (is_enum_class)
- {
- gdb_assert (this_entry != nullptr);
- recurse_parent = this_entry;
- }
- else if (defer != 0)
- recurse_parent = defer;
- else
- recurse_parent = this_parent_entry;
-
- info_ptr = recurse (reader, info_ptr, recurse_parent, fully);
- }
- continue;
-
- case DW_TAG_module:
- if (this_entry == nullptr)
- break;
- [[fallthrough]];
- case DW_TAG_namespace:
- /* We don't check THIS_ENTRY for a namespace, to handle
- the ancient G++ workaround pointed out above. */
- info_ptr = recurse (reader, info_ptr, this_entry, fully);
- continue;
-
- case DW_TAG_subprogram:
- if ((m_language == language_fortran
- || m_language == language_ada)
- && this_entry != nullptr)
- {
- info_ptr = recurse (reader, info_ptr, this_entry, true);
- continue;
- }
- break;
- }
-
- if (sibling != sect_offset (0))
- {
- const gdb_byte *sibling_ptr
- = reader->buffer + to_underlying (sibling);
-
- if (sibling_ptr < info_ptr)
- complaint (_("DW_AT_sibling points backwards"));
- else if (sibling_ptr > reader->buffer_end)
- reader->die_section->overflow_complaint ();
- else
- info_ptr = sibling_ptr;
- }
- else
- info_ptr = skip_children (reader, info_ptr);
- }
+ gdb_printf (gdb_stdlog, "Read die from %s@0x%tx of %s:\n",
+ m_die_section->get_name (),
+ (begin_info_ptr - m_die_section->buffer),
+ bfd_get_filename (m_abfd));
+ die->dump (dwarf_die_debug);
}
- return info_ptr;
-}
-
-void
-cooked_indexer::make_index (cutu_reader *reader)
-{
- check_bounds (reader);
- find_file_and_directory (reader->comp_unit_die, reader->cu);
- if (!reader->comp_unit_die->has_children)
- return;
- index_dies (reader, reader->info_ptr, nullptr, false);
+ return die;
}
struct compunit_symtab *
@@ -16118,7 +14438,7 @@ cooked_index_functions::find_compunit_symtab_by_address
cooked_index *table = wait (objfile, true);
CORE_ADDR baseaddr = objfile->data_section_offset ();
- dwarf2_per_cu_data *per_cu
+ dwarf2_per_cu *per_cu
= table->lookup ((unrelocated_addr) (address - baseaddr));
if (per_cu == nullptr)
return nullptr;
@@ -16128,14 +14448,14 @@ cooked_index_functions::find_compunit_symtab_by_address
bool
cooked_index_functions::expand_symtabs_matching
- (struct objfile *objfile,
- gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
- const lookup_name_info *lookup_name,
- gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
- gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
- block_search_flags search_flags,
- domain_search_flags domain,
- gdb::function_view<expand_symtabs_lang_matcher_ftype> lang_matcher)
+ (objfile *objfile,
+ expand_symtabs_file_matcher file_matcher,
+ const lookup_name_info *lookup_name,
+ expand_symtabs_symbol_matcher symbol_matcher,
+ expand_symtabs_expansion_listener expansion_notify,
+ block_search_flags search_flags,
+ domain_search_flags domain,
+ expand_symtabs_lang_matcher lang_matcher)
{
dwarf2_per_objfile *per_objfile = get_dwarf2_per_objfile (objfile);
@@ -16147,8 +14467,7 @@ cooked_index_functions::expand_symtabs_matching
gdb_assert (lookup_name != nullptr || symbol_matcher == nullptr);
if (lookup_name == nullptr)
{
- for (dwarf2_per_cu_data *per_cu
- : all_units_range (per_objfile->per_bfd))
+ for (dwarf2_per_cu *per_cu : all_units_range (per_objfile->per_bfd))
{
QUIT;
@@ -16222,10 +14541,8 @@ cooked_index_functions::expand_symtabs_matching
std::vector<lookup_name_info> segment_lookup_names;
segment_lookup_names.reserve (name_vec.size ());
for (auto &segment_name : name_str_vec)
- {
- segment_lookup_names.emplace_back (segment_name,
- symbol_name_match_type::FULL, completing, true);
- }
+ segment_lookup_names.emplace_back (segment_name, match_type,
+ completing, true);
for (const cooked_index_entry *entry : table->find (name_str_vec.back (),
completing))
@@ -16261,6 +14578,7 @@ cooked_index_functions::expand_symtabs_matching
bool found = true;
const cooked_index_entry *parent = entry->get_parent ();
+ const language_defn *lang_def = language_def (entry->lang);
for (int i = name_vec.size () - 1; i > 0; --i)
{
/* If we ran out of entries, or if this segment doesn't
@@ -16272,7 +14590,6 @@ cooked_index_functions::expand_symtabs_matching
}
if (parent->lang != language_unknown)
{
- const language_defn *lang_def = language_def (parent->lang);
symbol_name_matcher_ftype *name_matcher
= lang_def->get_symbol_name_matcher
(segment_lookup_names[i-1]);
@@ -16292,32 +14609,33 @@ cooked_index_functions::expand_symtabs_matching
/* Might have been looking for "a::b" and found
"x::a::b". */
- if (symbol_matcher == nullptr)
- {
- if ((match_type == symbol_name_match_type::FULL
- || (lang != language_ada
- && match_type == symbol_name_match_type::EXPRESSION)))
- {
- if (parent != nullptr)
- continue;
+ if (((match_type == symbol_name_match_type::FULL
+ || (lang != language_ada
+ && match_type == symbol_name_match_type::EXPRESSION)))
+ && parent != nullptr)
+ continue;
- if (entry->lang != language_unknown)
- {
- const language_defn *lang_def = language_def (entry->lang);
- symbol_name_matcher_ftype *name_matcher
- = lang_def->get_symbol_name_matcher
- (segment_lookup_names.back ());
- if (!name_matcher (entry->canonical,
- segment_lookup_names.back (), nullptr))
- continue;
- }
- }
- }
- else
+ /* Check that the full name matches -- either by matching
+ the lookup name ourselves, or by passing the full name to
+ the symbol matcher. The former is a bit of a hack: it
+ seems like the loop above could just examine every
+ element of the name, avoiding the need to check here; but
+ this is hard. See PR symtab/32733. */
+ if (symbol_matcher != nullptr || entry->lang != language_unknown)
{
auto_obstack temp_storage;
- const char *full_name = entry->full_name (&temp_storage);
- if (!symbol_matcher (full_name))
+ const char *full_name = entry->full_name (&temp_storage,
+ FOR_ADA_LINKAGE_NAME);
+ if (symbol_matcher == nullptr)
+ {
+ symbol_name_matcher_ftype *name_matcher
+ = (lang_def->get_symbol_name_matcher
+ (lookup_name_without_params));
+ if (!name_matcher (full_name, lookup_name_without_params,
+ nullptr))
+ continue;
+ }
+ else if (!symbol_matcher (full_name))
continue;
}
@@ -16339,13 +14657,8 @@ start_debug_info_reader (dwarf2_per_objfile *per_objfile)
/* Set the index table early so that sharing works even while
scanning; and then start the scanning. */
dwarf2_per_bfd *per_bfd = per_objfile->per_bfd;
- std::unique_ptr<cooked_index_worker> worker
- (new cooked_index_debug_info (per_objfile));
- cooked_index *idx = new cooked_index (per_objfile, std::move (worker));
- per_bfd->index_table.reset (idx);
- /* Don't start reading until after 'index_table' is set. This
- avoids races. */
- idx->start_reading ();
+ auto worker = std::make_unique<cooked_index_worker_debug_info> (per_objfile);
+ per_bfd->start_reading (std::make_unique<cooked_index> (std::move (worker)));
}
@@ -16527,22 +14840,21 @@ read_rnglist_index (struct dwarf2_cu *cu, ULONGEST rnglist_index,
attributes are the ones that need str_offsets_base or addr_base attributes.
They could not have been processed in the first round, because at the time
the values of str_offsets_base or addr_base may not have been known. */
-static void
-read_attribute_reprocess (const struct die_reader_specs *reader,
- struct attribute *attr, dwarf_tag tag)
+
+void
+cutu_reader::read_attribute_reprocess (attribute *attr, dwarf_tag tag)
{
- struct dwarf2_cu *cu = reader->cu;
switch (attr->form)
{
case DW_FORM_addrx:
case DW_FORM_GNU_addr_index:
- attr->set_address (read_addr_index (cu,
+ attr->set_address (read_addr_index (m_cu,
attr->as_unsigned_reprocess ()));
break;
case DW_FORM_loclistx:
{
sect_offset loclists_sect_off
- = read_loclist_index (cu, attr->as_unsigned_reprocess ());
+ = read_loclist_index (m_cu, attr->as_unsigned_reprocess ());
attr->set_unsigned (to_underlying (loclists_sect_off));
}
@@ -16550,7 +14862,7 @@ read_attribute_reprocess (const struct die_reader_specs *reader,
case DW_FORM_rnglistx:
{
sect_offset rnglists_sect_off
- = read_rnglist_index (cu, attr->as_unsigned_reprocess (), tag);
+ = read_rnglist_index (m_cu, attr->as_unsigned_reprocess (), tag);
attr->set_unsigned (to_underlying (rnglists_sect_off));
}
@@ -16564,11 +14876,11 @@ read_attribute_reprocess (const struct die_reader_specs *reader,
{
unsigned int str_index = attr->as_unsigned_reprocess ();
gdb_assert (!attr->canonical_string_p ());
- if (reader->dwo_file != NULL)
- attr->set_string_noncanonical (read_dwo_str_index (reader,
- str_index));
+ if (m_dwo_file != NULL)
+ attr->set_string_noncanonical
+ (this->read_dwo_str_index (str_index));
else
- attr->set_string_noncanonical (read_stub_str_index (cu,
+ attr->set_string_noncanonical (read_stub_str_index (m_cu,
str_index));
break;
}
@@ -16579,17 +14891,15 @@ read_attribute_reprocess (const struct die_reader_specs *reader,
/* Read an attribute value described by an attribute form. */
-static const gdb_byte *
-read_attribute_value (const struct die_reader_specs *reader,
- struct attribute *attr, unsigned form,
- LONGEST implicit_const, const gdb_byte *info_ptr,
- bool allow_reprocess)
+const gdb_byte *
+cutu_reader::read_attribute_value (attribute *attr, unsigned form,
+ LONGEST implicit_const,
+ const gdb_byte *info_ptr,
+ bool allow_reprocess)
{
- struct dwarf2_cu *cu = reader->cu;
- dwarf2_per_objfile *per_objfile = cu->per_objfile;
+ dwarf2_per_objfile *per_objfile = m_cu->per_objfile;
struct objfile *objfile = per_objfile->objfile;
- bfd *abfd = reader->abfd;
- struct comp_unit_head *cu_header = &cu->header;
+ unit_head *cu_header = &m_cu->header;
unsigned int bytes_read;
struct dwarf_block *blk;
@@ -16598,93 +14908,96 @@ read_attribute_value (const struct die_reader_specs *reader,
{
case DW_FORM_ref_addr:
if (cu_header->version == 2)
- attr->set_unsigned ((ULONGEST) cu_header->read_address (abfd, info_ptr,
+ attr->set_unsigned ((ULONGEST) cu_header->read_address (m_abfd,
+ info_ptr,
&bytes_read));
else
- attr->set_unsigned (cu_header->read_offset (abfd, info_ptr,
+ attr->set_unsigned (cu_header->read_offset (m_abfd, info_ptr,
&bytes_read));
info_ptr += bytes_read;
break;
case DW_FORM_GNU_ref_alt:
- attr->set_unsigned (cu_header->read_offset (abfd, info_ptr,
+ attr->set_unsigned (cu_header->read_offset (m_abfd, info_ptr,
&bytes_read));
info_ptr += bytes_read;
break;
case DW_FORM_addr:
{
- unrelocated_addr addr = cu_header->read_address (abfd, info_ptr,
- &bytes_read);
+ unrelocated_addr addr
+ = cu_header->read_address (m_abfd, info_ptr, &bytes_read);
attr->set_address (addr);
info_ptr += bytes_read;
}
break;
case DW_FORM_block2:
- blk = dwarf_alloc_block (cu);
- blk->size = read_2_bytes (abfd, info_ptr);
+ blk = dwarf_alloc_block (m_cu);
+ blk->size = read_2_bytes (m_abfd, info_ptr);
info_ptr += 2;
- blk->data = read_n_bytes (abfd, info_ptr, blk->size);
+ blk->data = read_n_bytes (m_abfd, info_ptr, blk->size);
info_ptr += blk->size;
attr->set_block (blk);
break;
case DW_FORM_block4:
- blk = dwarf_alloc_block (cu);
- blk->size = read_4_bytes (abfd, info_ptr);
+ blk = dwarf_alloc_block (m_cu);
+ blk->size = read_4_bytes (m_abfd, info_ptr);
info_ptr += 4;
- blk->data = read_n_bytes (abfd, info_ptr, blk->size);
+ blk->data = read_n_bytes (m_abfd, info_ptr, blk->size);
info_ptr += blk->size;
attr->set_block (blk);
break;
case DW_FORM_data2:
- attr->set_unsigned (read_2_bytes (abfd, info_ptr));
+ attr->set_unsigned (read_2_bytes (m_abfd, info_ptr));
info_ptr += 2;
break;
case DW_FORM_data4:
- attr->set_unsigned (read_4_bytes (abfd, info_ptr));
+ case DW_FORM_ref_sup4:
+ attr->set_unsigned (read_4_bytes (m_abfd, info_ptr));
info_ptr += 4;
break;
case DW_FORM_data8:
- attr->set_unsigned (read_8_bytes (abfd, info_ptr));
+ case DW_FORM_ref_sup8:
+ attr->set_unsigned (read_8_bytes (m_abfd, info_ptr));
info_ptr += 8;
break;
case DW_FORM_data16:
- blk = dwarf_alloc_block (cu);
+ blk = dwarf_alloc_block (m_cu);
blk->size = 16;
- blk->data = read_n_bytes (abfd, info_ptr, 16);
+ blk->data = read_n_bytes (m_abfd, info_ptr, 16);
info_ptr += 16;
attr->set_block (blk);
break;
case DW_FORM_sec_offset:
- attr->set_unsigned (cu_header->read_offset (abfd, info_ptr,
+ attr->set_unsigned (cu_header->read_offset (m_abfd, info_ptr,
&bytes_read));
info_ptr += bytes_read;
break;
case DW_FORM_loclistx:
{
- attr->set_unsigned_reprocess (read_unsigned_leb128 (abfd, info_ptr,
+ attr->set_unsigned_reprocess (read_unsigned_leb128 (m_abfd, info_ptr,
&bytes_read));
info_ptr += bytes_read;
if (allow_reprocess)
- read_attribute_reprocess (reader, attr);
+ this->read_attribute_reprocess (attr);
}
break;
case DW_FORM_string:
- attr->set_string_noncanonical (read_direct_string (abfd, info_ptr,
+ attr->set_string_noncanonical (read_direct_string (m_abfd, info_ptr,
&bytes_read));
info_ptr += bytes_read;
break;
case DW_FORM_strp:
- if (!cu->per_cu->is_dwz)
+ if (!m_cu->per_cu->is_dwz)
{
- attr->set_string_noncanonical
- (read_indirect_string (per_objfile,
- abfd, info_ptr, cu_header,
- &bytes_read));
+ attr->set_string_noncanonical (read_indirect_string (per_objfile,
+ m_abfd, info_ptr,
+ cu_header,
+ &bytes_read));
info_ptr += bytes_read;
break;
}
[[fallthrough]];
case DW_FORM_line_strp:
- if (!cu->per_cu->is_dwz)
+ if (!m_cu->per_cu->is_dwz)
{
attr->set_string_noncanonical
(per_objfile->read_line_string (info_ptr, cu_header,
@@ -16694,10 +15007,11 @@ read_attribute_value (const struct die_reader_specs *reader,
}
[[fallthrough]];
case DW_FORM_GNU_strp_alt:
+ case DW_FORM_strp_sup:
{
- dwz_file *dwz = dwarf2_get_dwz_file (per_objfile->per_bfd, true);
- LONGEST str_offset = cu_header->read_offset (abfd, info_ptr,
- &bytes_read);
+ dwz_file *dwz = per_objfile->per_bfd->get_dwz_file (true);
+ LONGEST str_offset
+ = cu_header->read_offset (m_abfd, info_ptr, &bytes_read);
attr->set_string_noncanonical
(dwz->read_string (objfile, str_offset));
@@ -16706,97 +15020,97 @@ read_attribute_value (const struct die_reader_specs *reader,
break;
case DW_FORM_exprloc:
case DW_FORM_block:
- blk = dwarf_alloc_block (cu);
- blk->size = read_unsigned_leb128 (abfd, info_ptr, &bytes_read);
+ blk = dwarf_alloc_block (m_cu);
+ blk->size = read_unsigned_leb128 (m_abfd, info_ptr, &bytes_read);
info_ptr += bytes_read;
- blk->data = read_n_bytes (abfd, info_ptr, blk->size);
+ blk->data = read_n_bytes (m_abfd, info_ptr, blk->size);
info_ptr += blk->size;
attr->set_block (blk);
break;
case DW_FORM_block1:
- blk = dwarf_alloc_block (cu);
- blk->size = read_1_byte (abfd, info_ptr);
+ blk = dwarf_alloc_block (m_cu);
+ blk->size = read_1_byte (m_abfd, info_ptr);
info_ptr += 1;
- blk->data = read_n_bytes (abfd, info_ptr, blk->size);
+ blk->data = read_n_bytes (m_abfd, info_ptr, blk->size);
info_ptr += blk->size;
attr->set_block (blk);
break;
case DW_FORM_data1:
case DW_FORM_flag:
- attr->set_unsigned (read_1_byte (abfd, info_ptr));
+ attr->set_unsigned (read_1_byte (m_abfd, info_ptr));
info_ptr += 1;
break;
case DW_FORM_flag_present:
attr->set_unsigned (1);
break;
case DW_FORM_sdata:
- attr->set_signed (read_signed_leb128 (abfd, info_ptr, &bytes_read));
+ attr->set_signed (read_signed_leb128 (m_abfd, info_ptr, &bytes_read));
info_ptr += bytes_read;
break;
case DW_FORM_rnglistx:
{
- attr->set_unsigned_reprocess (read_unsigned_leb128 (abfd, info_ptr,
+ attr->set_unsigned_reprocess (read_unsigned_leb128 (m_abfd, info_ptr,
&bytes_read));
info_ptr += bytes_read;
if (allow_reprocess)
- read_attribute_reprocess (reader, attr);
+ this->read_attribute_reprocess (attr);
}
break;
case DW_FORM_udata:
- attr->set_unsigned (read_unsigned_leb128 (abfd, info_ptr, &bytes_read));
+ attr->set_unsigned (read_unsigned_leb128 (m_abfd, info_ptr, &bytes_read));
info_ptr += bytes_read;
break;
case DW_FORM_ref1:
attr->set_unsigned ((to_underlying (cu_header->sect_off)
- + read_1_byte (abfd, info_ptr)));
+ + read_1_byte (m_abfd, info_ptr)));
info_ptr += 1;
break;
case DW_FORM_ref2:
attr->set_unsigned ((to_underlying (cu_header->sect_off)
- + read_2_bytes (abfd, info_ptr)));
+ + read_2_bytes (m_abfd, info_ptr)));
info_ptr += 2;
break;
case DW_FORM_ref4:
attr->set_unsigned ((to_underlying (cu_header->sect_off)
- + read_4_bytes (abfd, info_ptr)));
+ + read_4_bytes (m_abfd, info_ptr)));
info_ptr += 4;
break;
case DW_FORM_ref8:
attr->set_unsigned ((to_underlying (cu_header->sect_off)
- + read_8_bytes (abfd, info_ptr)));
+ + read_8_bytes (m_abfd, info_ptr)));
info_ptr += 8;
break;
case DW_FORM_ref_sig8:
- attr->set_signature (read_8_bytes (abfd, info_ptr));
+ attr->set_signature (read_8_bytes (m_abfd, info_ptr));
info_ptr += 8;
break;
case DW_FORM_ref_udata:
attr->set_unsigned ((to_underlying (cu_header->sect_off)
- + read_unsigned_leb128 (abfd, info_ptr,
+ + read_unsigned_leb128 (m_abfd, info_ptr,
&bytes_read)));
info_ptr += bytes_read;
break;
case DW_FORM_indirect:
- form = read_unsigned_leb128 (abfd, info_ptr, &bytes_read);
+ form = read_unsigned_leb128 (m_abfd, info_ptr, &bytes_read);
info_ptr += bytes_read;
if (form == DW_FORM_implicit_const)
{
- implicit_const = read_signed_leb128 (abfd, info_ptr, &bytes_read);
+ implicit_const = read_signed_leb128 (m_abfd, info_ptr, &bytes_read);
info_ptr += bytes_read;
}
- info_ptr = read_attribute_value (reader, attr, form, implicit_const,
- info_ptr, allow_reprocess);
+ info_ptr = this->read_attribute_value (attr, form, implicit_const,
+ info_ptr, allow_reprocess);
break;
case DW_FORM_implicit_const:
attr->set_signed (implicit_const);
break;
case DW_FORM_addrx:
case DW_FORM_GNU_addr_index:
- attr->set_unsigned_reprocess (read_unsigned_leb128 (abfd, info_ptr,
+ attr->set_unsigned_reprocess (read_unsigned_leb128 (m_abfd, info_ptr,
&bytes_read));
info_ptr += bytes_read;
if (allow_reprocess)
- read_attribute_reprocess (reader, attr);
+ this->read_attribute_reprocess (attr);
break;
case DW_FORM_strx:
case DW_FORM_strx1:
@@ -16808,43 +15122,42 @@ read_attribute_value (const struct die_reader_specs *reader,
ULONGEST str_index;
if (form == DW_FORM_strx1)
{
- str_index = read_1_byte (abfd, info_ptr);
+ str_index = read_1_byte (m_abfd, info_ptr);
info_ptr += 1;
}
else if (form == DW_FORM_strx2)
{
- str_index = read_2_bytes (abfd, info_ptr);
+ str_index = read_2_bytes (m_abfd, info_ptr);
info_ptr += 2;
}
else if (form == DW_FORM_strx3)
{
- str_index = read_3_bytes (abfd, info_ptr);
+ str_index = read_3_bytes (m_abfd, info_ptr);
info_ptr += 3;
}
else if (form == DW_FORM_strx4)
{
- str_index = read_4_bytes (abfd, info_ptr);
+ str_index = read_4_bytes (m_abfd, info_ptr);
info_ptr += 4;
}
else
{
- str_index = read_unsigned_leb128 (abfd, info_ptr, &bytes_read);
+ str_index = read_unsigned_leb128 (m_abfd, info_ptr, &bytes_read);
info_ptr += bytes_read;
}
attr->set_unsigned_reprocess (str_index);
if (allow_reprocess)
- read_attribute_reprocess (reader, attr);
+ this->read_attribute_reprocess (attr);
}
break;
default:
error (_(DWARF_ERROR_PREFIX
"Cannot handle %s in DWARF reader [in module %s]"),
- dwarf_form_name (form),
- bfd_get_filename (abfd));
+ dwarf_form_name (form), bfd_get_filename (m_abfd));
}
/* Super hack. */
- if (cu->per_cu->is_dwz && attr->form_is_ref ())
+ if (m_cu->per_cu->is_dwz && attr->form_is_ref ())
attr->form = DW_FORM_GNU_ref_alt;
/* We have seen instances where the compiler tried to emit a byte
@@ -16868,17 +15181,14 @@ read_attribute_value (const struct die_reader_specs *reader,
/* Read an attribute described by an abbreviated attribute. */
-static const gdb_byte *
-read_attribute (const struct die_reader_specs *reader,
- struct attribute *attr, const struct attr_abbrev *abbrev,
- const gdb_byte *info_ptr,
- bool allow_reprocess)
+const gdb_byte *
+cutu_reader::read_attribute (attribute *attr, const attr_abbrev *abbrev,
+ const gdb_byte *info_ptr, bool allow_reprocess)
{
attr->name = abbrev->name;
attr->string_is_canonical = 0;
- return read_attribute_value (reader, attr, abbrev->form,
- abbrev->implicit_const, info_ptr,
- allow_reprocess);
+ return this->read_attribute_value (attr, abbrev->form, abbrev->implicit_const,
+ info_ptr, allow_reprocess);
}
/* See read.h. */
@@ -16897,8 +15207,7 @@ read_indirect_string_at_offset (dwarf2_per_objfile *per_objfile,
static const char *
read_indirect_string (dwarf2_per_objfile *per_objfile, bfd *abfd,
- const gdb_byte *buf,
- const struct comp_unit_head *cu_header,
+ const gdb_byte *buf, const unit_head *cu_header,
unsigned int *bytes_read_ptr)
{
LONGEST str_offset = cu_header->read_offset (abfd, buf, bytes_read_ptr);
@@ -16922,7 +15231,7 @@ dwarf2_per_objfile::read_line_string (const gdb_byte *buf,
const char *
dwarf2_per_objfile::read_line_string (const gdb_byte *buf,
- const struct comp_unit_head *cu_header,
+ const unit_head *cu_header,
unsigned int *bytes_read_ptr)
{
bfd *abfd = objfile->obfd.get ();
@@ -16985,8 +15294,7 @@ read_addr_index_from_leb128 (struct dwarf2_cu *cu, const gdb_byte *info_ptr,
/* See read.h. */
unrelocated_addr
-dwarf2_read_addr_index (dwarf2_per_cu_data *per_cu,
- dwarf2_per_objfile *per_objfile,
+dwarf2_read_addr_index (dwarf2_per_cu *per_cu, dwarf2_per_objfile *per_objfile,
unsigned int addr_index)
{
struct dwarf2_cu *cu = per_objfile->get_cu (per_cu);
@@ -17016,9 +15324,10 @@ dwarf2_read_addr_index (dwarf2_per_cu_data *per_cu,
}
else
{
- cutu_reader reader (per_cu, per_objfile, nullptr, nullptr, false);
- addr_base = reader.cu->addr_base;
- addr_size = reader.cu->header.addr_size;
+ cutu_reader reader (*per_cu, *per_objfile, nullptr, nullptr, false,
+ language_minimal);
+ addr_base = reader.cu ()->addr_base;
+ addr_size = reader.cu ()->header.addr_size;
}
return read_addr_index_1 (per_objfile, addr_index, addr_base, addr_size);
@@ -17055,9 +15364,16 @@ read_str_index (struct dwarf2_cu *cu,
" in CU at offset %s [in module %s]"),
form_name, str_section->get_name (),
sect_offset_str (cu->header.sect_off), objf_name);
- info_ptr = (str_offsets_section->buffer
- + str_offsets_base
- + str_index * offset_size);
+
+ ULONGEST str_offsets_offset = str_offsets_base + str_index * offset_size;
+ if (str_offsets_offset >= str_offsets_section->size)
+ error (_(DWARF_ERROR_PREFIX
+ "Offset from %s pointing outside of %s section in CU at offset %s"
+ " [in module %s]"),
+ form_name, str_offsets_section->get_name (),
+ sect_offset_str (cu->header.sect_off), objf_name);
+ info_ptr = str_offsets_section->buffer + str_offsets_offset;
+
if (offset_size == 4)
str_offset = bfd_get_32 (abfd, info_ptr);
else
@@ -17072,19 +15388,19 @@ read_str_index (struct dwarf2_cu *cu,
/* Given a DW_FORM_GNU_str_index from a DWO file, fetch the string. */
-static const char *
-read_dwo_str_index (const struct die_reader_specs *reader, ULONGEST str_index)
+const char *
+cutu_reader::read_dwo_str_index (ULONGEST str_index)
{
unsigned offset_size;
ULONGEST str_offsets_base;
- if (reader->cu->header.version >= 5)
+ if (m_cu->header.version >= 5)
{
/* We have a DWARF5 CU with a reference to a .debug_str_offsets section,
so assume the .debug_str_offsets section is DWARF5 as well, and
parse the header. FIXME: Parse the header only once. */
unsigned int bytes_read = 0;
- bfd *abfd = reader->dwo_file->sections.str_offsets.get_bfd_owner ();
- const gdb_byte *p = reader->dwo_file->sections.str_offsets.buffer;
+ bfd *abfd = m_dwo_file->sections.str_offsets.get_bfd_owner ();
+ const gdb_byte *p = m_dwo_file->sections.str_offsets.buffer;
/* Header: Initial length. */
read_initial_length (abfd, p + bytes_read, &bytes_read);
@@ -17105,7 +15421,7 @@ read_dwo_str_index (const struct die_reader_specs *reader, ULONGEST str_index)
least has a limit. */
complaint (_("Section .debug_str_offsets in %s has unsupported"
" version %d, use empty string."),
- reader->dwo_file->dwo_name.c_str (), version);
+ m_dwo_file->dwo_name.c_str (), version);
return "";
}
@@ -17122,13 +15438,12 @@ read_dwo_str_index (const struct die_reader_specs *reader, ULONGEST str_index)
str_offsets_base = 0;
/* Determine offset_size based on the .debug_info header. */
- offset_size = reader->cu->header.offset_size;
+ offset_size = m_cu->header.offset_size;
}
- return read_str_index (reader->cu,
- &reader->dwo_file->sections.str,
- &reader->dwo_file->sections.str_offsets,
- str_offsets_base, str_index, offset_size);
+ return read_str_index (m_cu, &m_dwo_file->sections.str,
+ &m_dwo_file->sections.str_offsets, str_offsets_base,
+ str_index, offset_size);
}
/* Given a DW_FORM_GNU_str_index from a Fission stub, fetch the string. */
@@ -17173,7 +15488,7 @@ leb128_size (const gdb_byte *buf)
/* Converts DWARF language names to GDB language names. */
enum language
-dwarf_lang_to_enum_language (unsigned int lang)
+dwarf_lang_to_enum_language (ULONGEST lang)
{
enum language language;
@@ -17384,11 +15699,7 @@ get_debug_line_section (struct dwarf2_cu *cu)
if (cu->dwo_unit && cu->per_cu->is_debug_types)
section = &cu->dwo_unit->dwo_file->sections.line;
else if (cu->per_cu->is_dwz)
- {
- dwz_file *dwz = dwarf2_get_dwz_file (per_objfile->per_bfd, true);
-
- section = &dwz->line;
- }
+ section = &per_objfile->per_bfd->get_dwz_file (true)->line;
else
section = &per_objfile->per_bfd->line;
@@ -17631,9 +15942,6 @@ private:
/* Additional bits of state we need to track. */
- /* The last file that we called dwarf2_start_subfile for.
- This is only used for TLLs. */
- unsigned int m_last_file = 0;
/* The last file a line number was recorded for. */
struct subfile *m_last_subfile = NULL;
@@ -17700,7 +16008,6 @@ lnp_state_machine::handle_set_file (file_name_index file)
dwarf2_debug_line_missing_file_complaint ();
else
{
- m_last_subfile = m_cu->get_builder ()->get_current_subfile ();
m_line_has_non_zero_discriminator = m_discriminator != 0;
dwarf2_start_subfile (m_cu, *fe, *m_line_header);
}
@@ -17877,7 +16184,7 @@ lnp_state_machine::record_line (bool end_sequence)
if (!end_sequence && !ignore_this_line)
{
linetable_entry_flags lte_flags = m_flags;
- if (producer_is_codewarrior (m_cu))
+ if (m_cu->producer_is_codewarrior ())
lte_flags |= LEF_IS_STMT;
if (dwarf_record_line_p (m_cu, m_line, m_last_line,
@@ -17889,9 +16196,10 @@ lnp_state_machine::record_line (bool end_sequence)
builder->get_current_subfile (),
m_line, m_address, lte_flags,
m_currently_recording_lines ? m_cu : nullptr);
+
+ m_last_subfile = m_cu->get_builder ()->get_current_subfile ();
+ m_last_line = m_line;
}
- m_last_subfile = m_cu->get_builder ()->get_current_subfile ();
- m_last_line = m_line;
}
}
@@ -18262,7 +16570,7 @@ var_decode_location (struct attribute *attr, struct symbol *sym,
struct dwarf2_cu *cu)
{
struct objfile *objfile = cu->per_objfile->objfile;
- struct comp_unit_head *cu_header = &cu->header;
+ unit_head *cu_header = &cu->header;
/* NOTE drow/2003-01-30: There used to be a comment and some special
code here to turn a symbol with DW_AT_external and a
@@ -18418,13 +16726,15 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
/* Fortran does not have mangling standard and the mangling does differ
between gfortran, iFort etc. */
const char *physname
- = (cu->lang () == language_fortran
+ = ((cu->lang () == language_fortran || cu->lang () == language_ada)
? dwarf2_full_name (name, die, cu)
: dwarf2_physname (name, die, cu));
const char *linkagename = dw2_linkage_name (die, cu);
- if (linkagename == nullptr || cu->lang () == language_ada)
+ if (linkagename == nullptr)
sym->set_linkage_name (physname);
+ else if (cu->lang () == language_ada)
+ sym->set_linkage_name (linkagename);
else
{
if (physname == linkagename)
@@ -18452,33 +16762,36 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
inlined_func ? DW_AT_call_line : DW_AT_decl_line,
cu);
if (attr != nullptr)
- sym->set_line (attr->constant_value (0));
+ sym->set_line (attr->unsigned_constant ().value_or (0));
struct dwarf2_cu *file_cu = cu;
attr = dwarf2_attr (die,
inlined_func ? DW_AT_call_file : DW_AT_decl_file,
&file_cu);
- if (attr != nullptr && attr->is_nonnegative ())
+ if (attr != nullptr)
{
- file_name_index file_index
- = (file_name_index) attr->as_nonnegative ();
- struct file_entry *fe;
-
- if (file_cu->line_header == nullptr)
+ std::optional<ULONGEST> index_cst = attr->unsigned_constant ();
+ if (index_cst.has_value ())
{
- file_and_directory fnd (nullptr, nullptr);
- handle_DW_AT_stmt_list (file_cu->dies, file_cu, fnd, {}, false);
- }
+ file_name_index file_index = (file_name_index) *index_cst;
+ struct file_entry *fe;
- if (file_cu->line_header != nullptr)
- fe = file_cu->line_header->file_name_at (file_index);
- else
- fe = NULL;
+ if (file_cu->line_header == nullptr)
+ {
+ file_and_directory fnd (nullptr, nullptr);
+ handle_DW_AT_stmt_list (file_cu->dies, file_cu, fnd, {}, false);
+ }
- if (fe == NULL)
- complaint (_("file index out of range"));
- else
- sym->set_symtab (fe->symtab);
+ if (file_cu->line_header != nullptr)
+ fe = file_cu->line_header->file_name_at (file_index);
+ else
+ fe = NULL;
+
+ if (fe == NULL)
+ complaint (_("file index out of range"));
+ else
+ sym->set_symtab (fe->symtab);
+ }
}
switch (die->tag)
@@ -18536,11 +16849,11 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
list_to_add = cu->list_in_scope;
}
- if (is_ada_import_or_export (cu, name, linkagename))
+ if (is_ada_import_or_export (cu, physname, linkagename))
{
/* This is either a Pragma Import or Export. They can
be distinguished by the declaration flag. */
- sym->set_linkage_name (name);
+ sym->set_linkage_name (physname);
if (die_is_declaration (die, cu))
{
/* For Import, create a symbol using the source
@@ -18553,7 +16866,7 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
/* For Export, create a symbol using the source
name, then create a second symbol that refers
back to it. */
- add_ada_export_symbol (sym, linkagename, name, cu,
+ add_ada_export_symbol (sym, linkagename, physname, cu,
list_to_add);
}
}
@@ -18653,12 +16966,12 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
list_to_add = cu->list_in_scope;
if (list_to_add != nullptr
- && is_ada_import_or_export (cu, name, linkagename))
+ && is_ada_import_or_export (cu, physname, linkagename))
{
/* This is a Pragma Export. A Pragma Import won't
be seen here, because it will not have a location
and so will be handled below. */
- add_ada_export_symbol (sym, name, linkagename, cu,
+ add_ada_export_symbol (sym, physname, linkagename, cu,
list_to_add);
}
}
@@ -18682,12 +16995,12 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
if (!suppress_add)
list_to_add = cu->list_in_scope;
}
- else if (is_ada_import_or_export (cu, name, linkagename))
+ else if (is_ada_import_or_export (cu, physname, linkagename))
{
/* This is a Pragma Import. A Pragma Export won't
be seen here, because it will have a location and
so will be handled above. */
- sym->set_linkage_name (name);
+ sym->set_linkage_name (physname);
list_to_add
= ((cu->list_in_scope
== cu->get_builder ()->get_file_symbols ())
@@ -18758,17 +17071,11 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
case DW_TAG_union_type:
case DW_TAG_set_type:
case DW_TAG_enumeration_type:
- case DW_TAG_namelist:
- if (die->tag == DW_TAG_namelist)
- {
- sym->set_aclass_index (LOC_STATIC);
- sym->set_domain (VAR_DOMAIN);
- }
- else if (cu->lang () == language_c
- || cu->lang () == language_cplus
- || cu->lang () == language_objc
- || cu->lang () == language_opencl
- || cu->lang () == language_minimal)
+ if (cu->lang () == language_c
+ || cu->lang () == language_cplus
+ || cu->lang () == language_objc
+ || cu->lang () == language_opencl
+ || cu->lang () == language_minimal)
{
/* These languages have a tag namespace. Note that
there's a special hack for C++ in the matching code,
@@ -18862,6 +17169,11 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
sym->set_domain (COMMON_BLOCK_DOMAIN);
list_to_add = cu->list_in_scope;
break;
+ case DW_TAG_namelist:
+ sym->set_aclass_index (LOC_STATIC);
+ sym->set_domain (VAR_DOMAIN);
+ list_to_add = cu->list_in_scope;
+ break;
default:
/* Not a tag we recognize. Hopefully we aren't processing
trash data, but since we must specifically ignore things
@@ -18891,40 +17203,6 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
return (sym);
}
-/* Given an attr with a DW_FORM_dataN value in host byte order,
- zero-extend it as appropriate for the symbol's type. The DWARF
- standard (v4) is not entirely clear about the meaning of using
- DW_FORM_dataN for a constant with a signed type, where the type is
- wider than the data. The conclusion of a discussion on the DWARF
- list was that this is unspecified. We choose to always zero-extend
- because that is the interpretation long in use by GCC. */
-
-static gdb_byte *
-dwarf2_const_value_data (const struct attribute *attr, struct obstack *obstack,
- struct dwarf2_cu *cu, LONGEST *value, int bits)
-{
- struct objfile *objfile = cu->per_objfile->objfile;
- enum bfd_endian byte_order = bfd_big_endian (objfile->obfd.get ()) ?
- BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE;
- LONGEST l = attr->constant_value (0);
-
- if (bits < sizeof (*value) * 8)
- {
- l &= ((LONGEST) 1 << bits) - 1;
- *value = l;
- }
- else if (bits == sizeof (*value) * 8)
- *value = l;
- else
- {
- gdb_byte *bytes = (gdb_byte *) obstack_alloc (obstack, bits / 8);
- store_unsigned_integer (bytes, bits / 8, byte_order, l);
- return bytes;
- }
-
- return NULL;
-}
-
/* Read a constant value from an attribute. Either set *VALUE, or if
the value does not fit in *VALUE, set *BYTES - either already
allocated on the objfile obstack, or newly allocated on OBSTACK,
@@ -18940,7 +17218,7 @@ dwarf2_const_value_attr (const struct attribute *attr, struct type *type,
{
dwarf2_per_objfile *per_objfile = cu->per_objfile;
struct objfile *objfile = per_objfile->objfile;
- struct comp_unit_head *cu_header = &cu->header;
+ unit_head *cu_header = &cu->header;
struct dwarf_block *blk;
enum bfd_endian byte_order = (bfd_big_endian (objfile->obfd.get ()) ?
BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE);
@@ -18964,7 +17242,7 @@ dwarf2_const_value_attr (const struct attribute *attr, struct type *type,
/* Symbols of this form are reasonably rare, so we just
piggyback on the existing location code rather than writing
a new implementation of symbol_computed_ops. */
- *baton = XOBNEW (obstack, struct dwarf2_locexpr_baton);
+ *baton = OBSTACK_ZALLOC (obstack, struct dwarf2_locexpr_baton);
(*baton)->per_objfile = per_objfile;
(*baton)->per_cu = cu->per_cu;
gdb_assert ((*baton)->per_cu);
@@ -18984,6 +17262,7 @@ dwarf2_const_value_attr (const struct attribute *attr, struct type *type,
case DW_FORM_strx:
case DW_FORM_GNU_str_index:
case DW_FORM_GNU_strp_alt:
+ case DW_FORM_strp_sup:
/* The string is already allocated on the objfile obstack, point
directly to it. */
*bytes = (const gdb_byte *) attr->as_string ();
@@ -19007,25 +17286,13 @@ dwarf2_const_value_attr (const struct attribute *attr, struct type *type,
converted to host endianness, so we just need to sign- or
zero-extend it as appropriate. */
case DW_FORM_data1:
- *bytes = dwarf2_const_value_data (attr, obstack, cu, value, 8);
- break;
case DW_FORM_data2:
- *bytes = dwarf2_const_value_data (attr, obstack, cu, value, 16);
- break;
case DW_FORM_data4:
- *bytes = dwarf2_const_value_data (attr, obstack, cu, value, 32);
- break;
case DW_FORM_data8:
- *bytes = dwarf2_const_value_data (attr, obstack, cu, value, 64);
- break;
-
case DW_FORM_sdata:
case DW_FORM_implicit_const:
- *value = attr->as_signed ();
- break;
-
case DW_FORM_udata:
- *value = attr->as_unsigned ();
+ *value = attr->confused_constant ().value_or (0);
break;
default:
@@ -19190,13 +17457,12 @@ lookup_die_type (struct die_info *die, const struct attribute *attr,
/* First see if we have it cached. */
- if (attr->form == DW_FORM_GNU_ref_alt)
+ if (attr->form_is_alt ())
{
- struct dwarf2_per_cu_data *per_cu;
sect_offset sect_off = attr->get_ref_die_offset ();
+ dwarf2_per_cu *per_cu
+ = dwarf2_find_containing_comp_unit (sect_off, 1, per_objfile->per_bfd);
- per_cu = dwarf2_find_containing_comp_unit (sect_off, 1,
- per_objfile->per_bfd);
this_type = get_die_type_at_offset (sect_off, per_cu, per_objfile);
}
else if (attr->form_is_ref ())
@@ -19364,7 +17630,6 @@ guess_full_die_structure_name (struct die_info *die, struct dwarf2_cu *cu)
{
struct die_info *spec_die;
struct dwarf2_cu *spec_cu;
- struct die_info *child;
struct objfile *objfile = cu->per_objfile->objfile;
spec_cu = cu;
@@ -19375,9 +17640,7 @@ guess_full_die_structure_name (struct die_info *die, struct dwarf2_cu *cu)
cu = spec_cu;
}
- for (child = die->child;
- child != NULL;
- child = child->sibling)
+ for (die_info *child : die->children ())
{
if (child->tag == DW_TAG_subprogram)
{
@@ -19481,7 +17744,8 @@ determine_prefix (struct die_info *die, struct dwarf2_cu *cu)
if (cu->lang () != language_cplus
&& cu->lang () != language_fortran
&& cu->lang () != language_d
- && cu->lang () != language_rust)
+ && cu->lang () != language_rust
+ && cu->lang () != language_ada)
return "";
retval = anonymous_struct_prefix (die, cu);
@@ -19614,6 +17878,11 @@ determine_prefix (struct die_info *die, struct dwarf2_cu *cu)
else if (die->tag == DW_TAG_entry_point)
return determine_prefix (parent, cu);
}
+ else if (cu->lang () == language_ada
+ && (die->tag == DW_TAG_subprogram
+ || die->tag == DW_TAG_inlined_subroutine
+ || die->tag == DW_TAG_lexical_block))
+ return dwarf2_full_name (nullptr, parent, cu);
return "";
case DW_TAG_enumeration_type:
parent_type = read_type_die (parent, cu);
@@ -19665,6 +17934,8 @@ typename_concat (const char *prefix, const char *suffix, int physname,
lead = "__";
sep = "_MOD_";
}
+ else if (cu->lang () == language_ada)
+ sep = "__";
else
sep = "::";
@@ -19695,18 +17966,19 @@ unnamed_template_tag_name (die_info *die, dwarf2_cu *cu)
arrive at our entry. */
size_t nth_unnamed = 0;
- die_info *child = die->parent->child;
- while (child != die)
- {
- gdb_assert (child != nullptr);
- if (child->tag == DW_TAG_template_type_param
- || child->tag == DW_TAG_template_value_param)
- {
- if (dwarf2_attr (child, DW_AT_name, cu) == nullptr)
- ++nth_unnamed;
- }
- child = child->sibling;
- }
+ for (die_info *child : die->parent->children ())
+ {
+ if (child == die)
+ break;
+
+ gdb_assert (child != nullptr);
+ if (child->tag == DW_TAG_template_type_param
+ || child->tag == DW_TAG_template_value_param)
+ {
+ if (dwarf2_attr (child, DW_AT_name, cu) == nullptr)
+ ++nth_unnamed;
+ }
+ }
const std::string name_str = "<unnamed" + std::to_string (nth_unnamed) + ">";
return cu->per_objfile->objfile->intern (name_str.c_str ());
@@ -19760,7 +18032,8 @@ dwarf2_name (struct die_info *die, struct dwarf2_cu *cu)
&& die->tag != DW_TAG_namelist
&& die->tag != DW_TAG_union_type
&& die->tag != DW_TAG_template_type_param
- && die->tag != DW_TAG_template_value_param)
+ && die->tag != DW_TAG_template_value_param
+ && die->tag != DW_TAG_module)
return NULL;
switch (die->tag)
@@ -19898,51 +18171,50 @@ static struct die_info *
follow_die_offset (sect_offset sect_off, int offset_in_dwz,
struct dwarf2_cu **ref_cu)
{
- struct dwarf2_cu *target_cu, *cu = *ref_cu;
- dwarf2_per_objfile *per_objfile = cu->per_objfile;
-
- gdb_assert (cu->per_cu != NULL);
+ dwarf2_cu *source_cu = *ref_cu;
+ dwarf2_cu *target_cu = source_cu;
+ dwarf2_per_objfile *per_objfile = source_cu->per_objfile;
- target_cu = cu;
+ gdb_assert (source_cu->per_cu != nullptr);
+ gdb_assert (source_cu->dies != nullptr);
dwarf_read_debug_printf_v ("source CU offset: %s, target offset: %s, "
"source CU contains target offset: %d",
- sect_offset_str (cu->per_cu->sect_off),
+ sect_offset_str (source_cu->per_cu->sect_off),
sect_offset_str (sect_off),
- cu->header.offset_in_cu_p (sect_off));
+ source_cu->header.offset_in_unit_p (sect_off));
- if (cu->per_cu->is_debug_types)
+ if (source_cu->per_cu->is_debug_types)
{
/* .debug_types CUs cannot reference anything outside their CU.
If they need to, they have to reference a signatured type via
DW_FORM_ref_sig8. */
- if (!cu->header.offset_in_cu_p (sect_off))
+ if (!source_cu->header.offset_in_unit_p (sect_off))
return NULL;
}
- else if (offset_in_dwz != cu->per_cu->is_dwz
- || !cu->header.offset_in_cu_p (sect_off))
+ else if (offset_in_dwz != source_cu->per_cu->is_dwz
+ || !source_cu->header.offset_in_unit_p (sect_off))
{
- struct dwarf2_per_cu_data *per_cu;
-
- per_cu = dwarf2_find_containing_comp_unit (sect_off, offset_in_dwz,
- per_objfile->per_bfd);
+ dwarf2_per_cu *target_per_cu
+ = dwarf2_find_containing_comp_unit (sect_off, offset_in_dwz,
+ per_objfile->per_bfd);
dwarf_read_debug_printf_v ("target CU offset: %s, "
"target CU DIEs loaded: %d",
- sect_offset_str (per_cu->sect_off),
- per_objfile->get_cu (per_cu) != nullptr);
+ sect_offset_str (target_per_cu->sect_off),
+ per_objfile->get_cu (target_per_cu) != nullptr);
/* If necessary, add it to the queue and load its DIEs.
Even if maybe_queue_comp_unit doesn't require us to load the CU's DIEs,
it doesn't mean they are currently loaded. Since we require them
to be loaded, we must check for ourselves. */
- if (maybe_queue_comp_unit (cu, per_cu, per_objfile, cu->lang ())
- || per_objfile->get_cu (per_cu) == nullptr)
- load_full_comp_unit (per_cu, per_objfile, per_objfile->get_cu (per_cu),
- false, cu->lang ());
+ if (maybe_queue_comp_unit (source_cu, target_per_cu, per_objfile)
+ || per_objfile->get_cu (target_per_cu) == nullptr)
+ load_full_comp_unit (target_per_cu, per_objfile, false,
+ source_cu->lang ());
- target_cu = per_objfile->get_cu (per_cu);
+ target_cu = per_objfile->get_cu (target_per_cu);
if (target_cu == nullptr)
error (_(DWARF_ERROR_PREFIX
"cannot follow reference to DIE at %s"
@@ -19950,17 +18222,10 @@ follow_die_offset (sect_offset sect_off, int offset_in_dwz,
sect_offset_str (sect_off),
objfile_name (per_objfile->objfile));
}
- else if (cu->dies == NULL)
- {
- /* We're loading full DIEs during partial symbol reading. */
- load_full_comp_unit (cu->per_cu, per_objfile, cu, false,
- language_minimal);
- }
*ref_cu = target_cu;
- auto it = target_cu->die_hash.find (sect_off);
- return it != target_cu->die_hash.end () ? *it : nullptr;
+ return target_cu->find_die (sect_off);
}
/* Follow reference attribute ATTR of SRC_DIE.
@@ -19975,15 +18240,14 @@ follow_die_ref (struct die_info *src_die, const struct attribute *attr,
struct dwarf2_cu *cu = *ref_cu;
struct die_info *die;
- if (attr->form != DW_FORM_GNU_ref_alt && src_die->sect_off == sect_off)
+ if (!attr->form_is_alt () && src_die->sect_off == sect_off)
{
/* Self-reference, we're done. */
return src_die;
}
die = follow_die_offset (sect_off,
- (attr->form == DW_FORM_GNU_ref_alt
- || cu->per_cu->is_dwz),
+ attr->form_is_alt () || cu->per_cu->is_dwz,
ref_cu);
if (!die)
error (_(DWARF_ERROR_PREFIX
@@ -19997,8 +18261,7 @@ follow_die_ref (struct die_info *src_die, const struct attribute *attr,
/* See read.h. */
struct dwarf2_locexpr_baton
-dwarf2_fetch_die_loc_sect_off (sect_offset sect_off,
- dwarf2_per_cu_data *per_cu,
+dwarf2_fetch_die_loc_sect_off (sect_offset sect_off, dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile,
gdb::function_view<CORE_ADDR ()> get_frame_pc,
bool resolve_abstract_p)
@@ -20103,8 +18366,7 @@ dwarf2_fetch_die_loc_sect_off (sect_offset sect_off,
/* See read.h. */
struct dwarf2_locexpr_baton
-dwarf2_fetch_die_loc_cu_off (cu_offset offset_in_cu,
- dwarf2_per_cu_data *per_cu,
+dwarf2_fetch_die_loc_cu_off (cu_offset offset_in_cu, dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile,
gdb::function_view<CORE_ADDR ()> get_frame_pc)
{
@@ -20137,7 +18399,7 @@ write_constant_as_bytes (struct obstack *obstack,
const gdb_byte *
dwarf2_fetch_constant_bytes (sect_offset sect_off,
- dwarf2_per_cu_data *per_cu,
+ dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile,
obstack *obstack,
LONGEST *len)
@@ -20196,6 +18458,7 @@ dwarf2_fetch_constant_bytes (sect_offset sect_off,
case DW_FORM_strx:
case DW_FORM_GNU_str_index:
case DW_FORM_GNU_strp_alt:
+ case DW_FORM_strp_sup:
/* The string is already allocated on the objfile obstack, point
directly to it. */
{
@@ -20221,47 +18484,19 @@ dwarf2_fetch_constant_bytes (sect_offset sect_off,
symbol's value "represented as it would be on the target
architecture." By the time we get here, it's already been
converted to host endianness, so we just need to sign- or
- zero-extend it as appropriate. */
+ zero-extend it as appropriate.
+
+ Both GCC and LLVM agree that these are always signed, though. */
case DW_FORM_data1:
- type = die_type (die, cu);
- result = dwarf2_const_value_data (attr, obstack, cu, &value, 8);
- if (result == NULL)
- result = write_constant_as_bytes (obstack, byte_order,
- type, value, len);
- break;
case DW_FORM_data2:
- type = die_type (die, cu);
- result = dwarf2_const_value_data (attr, obstack, cu, &value, 16);
- if (result == NULL)
- result = write_constant_as_bytes (obstack, byte_order,
- type, value, len);
- break;
case DW_FORM_data4:
- type = die_type (die, cu);
- result = dwarf2_const_value_data (attr, obstack, cu, &value, 32);
- if (result == NULL)
- result = write_constant_as_bytes (obstack, byte_order,
- type, value, len);
- break;
case DW_FORM_data8:
- type = die_type (die, cu);
- result = dwarf2_const_value_data (attr, obstack, cu, &value, 64);
- if (result == NULL)
- result = write_constant_as_bytes (obstack, byte_order,
- type, value, len);
- break;
-
case DW_FORM_sdata:
case DW_FORM_implicit_const:
- type = die_type (die, cu);
- result = write_constant_as_bytes (obstack, byte_order,
- type, attr->as_signed (), len);
- break;
-
case DW_FORM_udata:
type = die_type (die, cu);
- result = write_constant_as_bytes (obstack, byte_order,
- type, attr->as_unsigned (), len);
+ value = attr->confused_constant ().value_or (0);
+ result = write_constant_as_bytes (obstack, byte_order, type, value, len);
break;
default:
@@ -20276,8 +18511,7 @@ dwarf2_fetch_constant_bytes (sect_offset sect_off,
/* See read.h. */
struct type *
-dwarf2_fetch_die_type_sect_off (sect_offset sect_off,
- dwarf2_per_cu_data *per_cu,
+dwarf2_fetch_die_type_sect_off (sect_offset sect_off, dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile,
const char **var_name)
{
@@ -20302,8 +18536,7 @@ dwarf2_fetch_die_type_sect_off (sect_offset sect_off,
/* See read.h. */
struct type *
-dwarf2_get_die_type (cu_offset die_offset,
- dwarf2_per_cu_data *per_cu,
+dwarf2_get_die_type (cu_offset die_offset, dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile)
{
sect_offset die_offset_sect = per_cu->sect_off + to_underlying (die_offset);
@@ -20332,8 +18565,7 @@ follow_die_sig_1 (struct die_info *src_die, struct signatured_type *sig_type,
Even if maybe_queue_comp_unit doesn't require us to load the CU's DIEs,
it doesn't mean they are currently loaded. Since we require them
to be loaded, we must check for ourselves. */
- if (maybe_queue_comp_unit (*ref_cu, sig_type, per_objfile,
- language_minimal)
+ if (maybe_queue_comp_unit (*ref_cu, sig_type, per_objfile)
|| per_objfile->get_cu (sig_type) == nullptr)
read_signatured_type (sig_type, per_objfile);
@@ -20341,8 +18573,8 @@ follow_die_sig_1 (struct die_info *src_die, struct signatured_type *sig_type,
gdb_assert (sig_cu != NULL);
gdb_assert (to_underlying (sig_type->type_offset_in_section) != 0);
- if (auto die_it = sig_cu->die_hash.find (sig_type->type_offset_in_section);
- die_it != sig_cu->die_hash.end ())
+ if (die_info *die = sig_cu->find_die (sig_type->type_offset_in_section);
+ die != nullptr)
{
/* For .gdb_index version 7 keep track of included TUs.
http://sourceware.org/bugzilla/show_bug.cgi?id=15021. */
@@ -20351,7 +18583,7 @@ follow_die_sig_1 (struct die_info *src_die, struct signatured_type *sig_type,
(*ref_cu)->per_cu->imported_symtabs.push_back (sig_cu->per_cu);
*ref_cu = sig_cu;
- return *die_it;
+ return die;
}
return NULL;
@@ -20498,8 +18730,7 @@ get_DW_AT_signature_type (struct die_info *die, const struct attribute *attr,
/* Load the DIEs associated with type unit PER_CU into memory. */
static void
-load_full_type_unit (dwarf2_per_cu_data *per_cu,
- dwarf2_per_objfile *per_objfile)
+load_full_type_unit (dwarf2_per_cu *per_cu, dwarf2_per_objfile *per_objfile)
{
struct signatured_type *sig_type;
@@ -20526,64 +18757,24 @@ read_signatured_type (signatured_type *sig_type,
gdb_assert (sig_type->is_debug_types);
gdb_assert (per_objfile->get_cu (sig_type) == nullptr);
- cutu_reader reader (sig_type, per_objfile, nullptr, nullptr, false);
+ cutu_reader reader (*sig_type, *per_objfile, nullptr, nullptr, false,
+ language_minimal);
- if (!reader.dummy_p)
+ if (!reader.is_dummy ())
{
- struct dwarf2_cu *cu = reader.cu;
- const gdb_byte *info_ptr = reader.info_ptr;
-
- gdb_assert (cu->die_hash.empty ());
- cu->die_hash.reserve (cu->header.get_length_without_initial () / 12);
+ reader.read_all_dies ();
- if (reader.comp_unit_die->has_children)
- reader.comp_unit_die->child
- = read_die_and_siblings (&reader, info_ptr, &info_ptr,
- reader.comp_unit_die);
- cu->dies = reader.comp_unit_die;
- /* comp_unit_die is not stored in die_hash, no need. */
-
- /* We try not to read any attributes in this function, because
- not all CUs needed for references have been loaded yet, and
- symbol table processing isn't initialized. But we have to
- set the CU language, or we won't be able to build types
- correctly. Similarly, if we do not read the producer, we can
- not apply producer-specific interpretation. */
- prepare_one_comp_unit (cu, cu->dies, language_minimal);
-
- reader.keep ();
+ /* Save this dwarf2_cu in the per_objfile. The per_objfile owns it
+ now. */
+ per_objfile->set_cu (sig_type, reader.release_cu ());
}
sig_type->tu_read = 1;
}
-/* Decode simple location descriptions.
-
- Given a pointer to a DWARF block that defines a location, compute
- the location. Returns true if the expression was computable by
- this function, false otherwise. On a true return, *RESULT is set.
-
- Note that this function does not implement a full DWARF expression
- evaluator. Instead, it is used for a few limited purposes:
-
- - Getting the address of a symbol that has a constant address. For
- example, if a symbol has a location like "DW_OP_addr", the address
- can be extracted.
-
- - Getting the offset of a virtual function in its vtable. There
- are two forms of this, one of which involves DW_OP_deref -- so this
- function handles derefs in a peculiar way to make this 'work'.
- (Probably this area should be rewritten.)
-
- - Getting the offset of a field, when it is constant.
-
- Opcodes that cannot be part of a constant expression, for example
- those involving registers, simply result in a return of
- 'false'.
-
- This function may emit a complaint. */
+/* See read.h. */
-static bool
+bool
decode_locdesc (struct dwarf_block *blk, struct dwarf2_cu *cu,
CORE_ADDR *result)
{
@@ -20849,9 +19040,19 @@ dwarf_decode_macros (struct dwarf2_cu *cu, unsigned int offset,
str_offsets_base = cu->str_offsets_base;
}
- dwarf_decode_macros (per_objfile, builder, section, lh,
- offset_size, offset, str_section, str_offsets_section,
- str_offsets_base, section_is_gnu, cu);
+ try
+ {
+ dwarf_decode_macros (per_objfile, builder, section, lh, offset_size,
+ offset, str_section, str_offsets_section,
+ str_offsets_base, section_is_gnu, cu);
+ }
+ catch (const gdb_exception_error &error)
+ {
+ /* Print the error and carry on with no (or partial) macro
+ information. */
+ exception_fprintf (gdb_stderr, error, _("While reading section %s: "),
+ section->get_name ());
+ }
}
/* Return the .debug_loc section to use for CU.
@@ -20924,6 +19125,7 @@ fill_in_loclist_baton (struct dwarf2_cu *cu,
else
baton->base_address = {};
baton->from_dwo = cu->dwo_unit != NULL;
+ baton->dwarf_version = cu->header.version;
}
static void
@@ -20938,7 +19140,7 @@ dwarf2_symbol_mark_computed (const struct attribute *attr, struct symbol *sym,
/* .debug_loc{,.dwo} may not exist at all, or the offset may be outside
the section. If so, fall through to the complaint in the
other branch. */
- && attr->as_unsigned () < section->get_size (objfile))
+ && attr->as_unsigned () < section->size)
{
struct dwarf2_loclist_baton *baton;
@@ -20959,7 +19161,8 @@ dwarf2_symbol_mark_computed (const struct attribute *attr, struct symbol *sym,
{
struct dwarf2_locexpr_baton *baton;
- baton = XOBNEW (&objfile->objfile_obstack, struct dwarf2_locexpr_baton);
+ baton = OBSTACK_ZALLOC (&objfile->objfile_obstack,
+ struct dwarf2_locexpr_baton);
baton->per_objfile = per_objfile;
baton->per_cu = cu->per_cu;
gdb_assert (baton->per_cu);
@@ -20991,16 +19194,15 @@ dwarf2_symbol_mark_computed (const struct attribute *attr, struct symbol *sym,
/* See read.h. */
-const comp_unit_head *
-dwarf2_per_cu_data::get_header () const
+const unit_head *
+dwarf2_per_cu::get_header () const
{
if (!m_header_read_in)
{
const gdb_byte *info_ptr
= this->section->buffer + to_underlying (this->sect_off);
- read_comp_unit_head (&m_header, info_ptr, this->section,
- rcuh_kind::COMPILE);
+ read_unit_head (&m_header, info_ptr, this->section, ruh_kind::COMPILE);
m_header_read_in = true;
}
@@ -21011,7 +19213,7 @@ dwarf2_per_cu_data::get_header () const
/* See read.h. */
int
-dwarf2_per_cu_data::addr_size () const
+dwarf2_per_cu::addr_size () const
{
return this->get_header ()->addr_size;
}
@@ -21019,7 +19221,7 @@ dwarf2_per_cu_data::addr_size () const
/* See read.h. */
int
-dwarf2_per_cu_data::offset_size () const
+dwarf2_per_cu::offset_size () const
{
return this->get_header ()->offset_size;
}
@@ -21027,9 +19229,9 @@ dwarf2_per_cu_data::offset_size () const
/* See read.h. */
int
-dwarf2_per_cu_data::ref_addr_size () const
+dwarf2_per_cu::ref_addr_size () const
{
- const comp_unit_head *header = this->get_header ();
+ const unit_head *header = this->get_header ();
if (header->version == 2)
return header->addr_size;
@@ -21040,8 +19242,7 @@ dwarf2_per_cu_data::ref_addr_size () const
/* See read.h. */
void
-dwarf2_per_cu_data::set_lang (enum language lang,
- dwarf_source_language dw_lang)
+dwarf2_per_cu::set_lang (enum language lang, dwarf_source_language dw_lang)
{
if (unit_type () == DW_UT_partial)
return;
@@ -21050,7 +19251,9 @@ dwarf2_per_cu_data::set_lang (enum language lang,
packed<language, LANGUAGE_BYTES> new_value = lang;
packed<language, LANGUAGE_BYTES> old_value = m_lang.exchange (new_value);
/* If already set, verify that it's the same value. */
- gdb_assert (old_value == language_unknown || old_value == lang);
+ gdb_assert (old_value == language_unknown
+ || old_value == language_minimal
+ || old_value == lang);
packed<dwarf_source_language, 2> new_dw = dw_lang;
packed<dwarf_source_language, 2> old_dw = m_dw_lang.exchange (new_dw);
@@ -21060,19 +19263,15 @@ dwarf2_per_cu_data::set_lang (enum language lang,
/* See read.h. */
void
-dwarf2_per_cu_data::ensure_lang (dwarf2_per_objfile *per_objfile)
+dwarf2_per_cu::ensure_lang (dwarf2_per_objfile *per_objfile)
{
if (lang (false) != language_unknown)
return;
- cutu_reader reader (this, per_objfile);
- if (reader.dummy_p)
- {
- set_lang (language_minimal, (dwarf_source_language)0);
- return;
- }
-
- prepare_one_comp_unit (reader.cu, reader.comp_unit_die, language_minimal);
+ /* Constructing this object will set the language as a side
+ effect. */
+ cutu_reader reader (*this, *per_objfile, nullptr, per_objfile->get_cu (this),
+ true, language_minimal, nullptr);
}
/* A helper function for dwarf2_find_containing_comp_unit that returns
@@ -21085,7 +19284,7 @@ static int
dwarf2_find_containing_comp_unit
(sect_offset sect_off,
unsigned int offset_in_dwz,
- const std::vector<dwarf2_per_cu_data_up> &all_units)
+ const std::vector<dwarf2_per_cu_up> &all_units)
{
int low, high;
@@ -21093,10 +19292,9 @@ dwarf2_find_containing_comp_unit
high = all_units.size () - 1;
while (high > low)
{
- struct dwarf2_per_cu_data *mid_cu;
int mid = low + (high - low) / 2;
+ dwarf2_per_cu *mid_cu = all_units[mid].get ();
- mid_cu = all_units[mid].get ();
if (mid_cu->is_dwz > offset_in_dwz
|| (mid_cu->is_dwz == offset_in_dwz
&& mid_cu->sect_off + mid_cu->length () > sect_off))
@@ -21108,17 +19306,16 @@ dwarf2_find_containing_comp_unit
return low;
}
-/* Locate the .debug_info compilation unit from CU's objfile which contains
- the DIE at OFFSET. Raises an error on failure. */
+/* See read.h. */
-static struct dwarf2_per_cu_data *
+dwarf2_per_cu *
dwarf2_find_containing_comp_unit (sect_offset sect_off,
unsigned int offset_in_dwz,
dwarf2_per_bfd *per_bfd)
{
int low = dwarf2_find_containing_comp_unit
(sect_off, offset_in_dwz, per_bfd->all_units);
- dwarf2_per_cu_data *this_cu = per_bfd->all_units[low].get ();
+ dwarf2_per_cu *this_cu = per_bfd->all_units[low].get ();
if (this_cu->is_dwz != offset_in_dwz || this_cu->sect_off > sect_off)
{
@@ -21126,7 +19323,7 @@ dwarf2_find_containing_comp_unit (sect_offset sect_off,
error (_(DWARF_ERROR_PREFIX
"could not find CU containing offset %s [in module %s]"),
sect_offset_str (sect_off),
- bfd_get_filename (per_bfd->obfd));
+ per_bfd->filename ());
gdb_assert (per_bfd->all_units[low-1]->sect_off
<= sect_off);
@@ -21150,26 +19347,35 @@ namespace find_containing_comp_unit {
static void
run_test ()
{
- dwarf2_per_cu_data_up one (new dwarf2_per_cu_data);
- dwarf2_per_cu_data *one_ptr = one.get ();
- dwarf2_per_cu_data_up two (new dwarf2_per_cu_data);
- dwarf2_per_cu_data *two_ptr = two.get ();
- dwarf2_per_cu_data_up three (new dwarf2_per_cu_data);
- dwarf2_per_cu_data *three_ptr = three.get ();
- dwarf2_per_cu_data_up four (new dwarf2_per_cu_data);
- dwarf2_per_cu_data *four_ptr = four.get ();
-
- one->set_length (5);
- two->sect_off = sect_offset (one->length ());
- two->set_length (7);
-
- three->set_length (5);
- three->is_dwz = 1;
- four->sect_off = sect_offset (three->length ());
- four->set_length (7);
- four->is_dwz = 1;
-
- std::vector<dwarf2_per_cu_data_up> units;
+ char dummy_per_bfd;
+ char dummy_section;
+
+ const auto create_dummy_per_cu = [&] (sect_offset sect_off,
+ unsigned int length,
+ bool is_dwz)
+ {
+ auto per_bfd = reinterpret_cast<dwarf2_per_bfd *> (&dummy_per_bfd);
+ auto section = reinterpret_cast<dwarf2_section_info *> (&dummy_section);
+
+ return dwarf2_per_cu_up (new dwarf2_per_cu (per_bfd, section, sect_off,
+ length, is_dwz));
+ };
+
+ /* Units in the main file. */
+ dwarf2_per_cu_up one = create_dummy_per_cu (sect_offset (0), 5, false);
+ dwarf2_per_cu *one_ptr = one.get ();
+ dwarf2_per_cu_up two
+ = create_dummy_per_cu (sect_offset (one->length ()), 7, false);
+ dwarf2_per_cu *two_ptr = two.get ();
+
+ /* Units in the supplementary (dwz) file. */
+ dwarf2_per_cu_up three = create_dummy_per_cu (sect_offset (0), 5, true);
+ dwarf2_per_cu *three_ptr = three.get ();
+ dwarf2_per_cu_up four
+ = create_dummy_per_cu (sect_offset (three->length ()), 7, true);
+ dwarf2_per_cu *four_ptr = four.get ();
+
+ std::vector<dwarf2_per_cu_up> units;
units.push_back (std::move (one));
units.push_back (std::move (two));
units.push_back (std::move (three));
@@ -21197,22 +19403,33 @@ run_test ()
#endif /* GDB_SELF_TEST */
-/* Initialize basic fields of dwarf_cu CU according to DIE COMP_UNIT_DIE. */
+/* Initialize basic fields of dwarf_cu CU according to DIE
+ COMP_UNIT_DIE. If COMP_UNIT_DIE is NULL, the CU is assumed to be a
+ CU one with no contents; in this case default values are used for
+ the fields. */
-static void
-prepare_one_comp_unit (struct dwarf2_cu *cu, struct die_info *comp_unit_die,
- enum language pretend_language)
+void
+cutu_reader::prepare_one_comp_unit (struct dwarf2_cu *cu,
+ enum language pretend_language)
{
struct attribute *attr;
- cu->producer = dwarf2_string_attr (comp_unit_die, DW_AT_producer, cu);
+ if (m_top_level_die == nullptr)
+ {
+ cu->set_producer (nullptr);
+ cu->language_defn = language_def (pretend_language);
+ cu->per_cu->set_unit_type (DW_UT_compile);
+ cu->per_cu->set_lang (pretend_language, (dwarf_source_language) 0);
+ return;
+ }
+
+ cu->set_producer (dwarf2_string_attr (m_top_level_die, DW_AT_producer, cu));
/* Set the language we're debugging. */
- attr = dwarf2_attr (comp_unit_die, DW_AT_language, cu);
+ attr = dwarf2_attr (m_top_level_die, DW_AT_language, cu);
enum language lang;
dwarf_source_language dw_lang = (dwarf_source_language) 0;
- if (cu->producer != nullptr
- && strstr (cu->producer, "IBM XL C for OpenCL") != NULL)
+ if (cu->producer_is_xlc_opencl ())
{
/* The XLCL doesn't generate DW_LANG_OpenCL because this
attribute is not standardised yet. As a workaround for the
@@ -21221,8 +19438,7 @@ prepare_one_comp_unit (struct dwarf2_cu *cu, struct die_info *comp_unit_die,
lang = language_opencl;
dw_lang = DW_LANG_OpenCL;
}
- else if (cu->producer != nullptr
- && strstr (cu->producer, "GNU Go ") != NULL)
+ else if (cu->producer_is_ggo ())
{
/* Similar hack for Go. */
lang = language_go;
@@ -21230,8 +19446,15 @@ prepare_one_comp_unit (struct dwarf2_cu *cu, struct die_info *comp_unit_die,
}
else if (attr != nullptr)
{
- lang = dwarf_lang_to_enum_language (attr->constant_value (0));
- dw_lang = (dwarf_source_language) attr->constant_value (0);
+ std::optional<ULONGEST> lang_val = attr->unsigned_constant ();
+ if (lang_val.has_value ())
+ {
+ lang = dwarf_lang_to_enum_language (*lang_val);
+ if (lang_val <= DW_LANG_hi_user)
+ dw_lang = (dwarf_source_language) *lang_val;
+ }
+ else
+ lang = language_minimal;
}
else
lang = pretend_language;
@@ -21239,15 +19462,14 @@ prepare_one_comp_unit (struct dwarf2_cu *cu, struct die_info *comp_unit_die,
cu->language_defn = language_def (lang);
/* Initialize the lto_artificial field. */
- attr = dwarf2_attr (comp_unit_die, DW_AT_name, cu);
+ attr = dwarf2_attr (m_top_level_die, DW_AT_name, cu);
if (attr != nullptr
- && cu->producer != nullptr
+ && cu->producer_is_gcc ()
&& attr->as_string () != nullptr
- && strcmp (attr->as_string (), "<artificial>") == 0
- && producer_is_gcc (cu->producer, nullptr, nullptr))
+ && strcmp (attr->as_string (), "<artificial>") == 0)
cu->per_cu->lto_artificial = true;
- switch (comp_unit_die->tag)
+ switch (m_top_level_die->tag)
{
case DW_TAG_compile_unit:
cu->per_cu->set_unit_type (DW_UT_compile);
@@ -21259,9 +19481,8 @@ prepare_one_comp_unit (struct dwarf2_cu *cu, struct die_info *comp_unit_die,
cu->per_cu->set_unit_type (DW_UT_type);
break;
default:
- error (_(DWARF_ERROR_PREFIX
- "unexpected tag '%s' at offset %s"),
- dwarf_tag_name (comp_unit_die->tag),
+ error (_(DWARF_ERROR_PREFIX "unexpected tag '%s' at offset %s"),
+ dwarf_tag_name (m_top_level_die->tag),
sect_offset_str (cu->per_cu->sect_off));
}
@@ -21271,7 +19492,7 @@ prepare_one_comp_unit (struct dwarf2_cu *cu, struct die_info *comp_unit_die,
/* See read.h. */
dwarf2_cu *
-dwarf2_per_objfile::get_cu (dwarf2_per_cu_data *per_cu)
+dwarf2_per_objfile::get_cu (dwarf2_per_cu *per_cu)
{
auto it = m_dwarf2_cus.find (per_cu);
if (it == m_dwarf2_cus.end ())
@@ -21283,8 +19504,7 @@ dwarf2_per_objfile::get_cu (dwarf2_per_cu_data *per_cu)
/* See read.h. */
void
-dwarf2_per_objfile::set_cu (dwarf2_per_cu_data *per_cu,
- std::unique_ptr<dwarf2_cu> cu)
+dwarf2_per_objfile::set_cu (dwarf2_per_cu *per_cu, dwarf2_cu_up cu)
{
gdb_assert (this->get_cu (per_cu) == nullptr);
@@ -21339,7 +19559,7 @@ dwarf2_per_objfile::age_comp_units ()
/* See read.h. */
void
-dwarf2_per_objfile::remove_cu (dwarf2_per_cu_data *per_cu)
+dwarf2_per_objfile::remove_cu (dwarf2_per_cu *per_cu)
{
auto it = m_dwarf2_cus.find (per_cu);
if (it == m_dwarf2_cus.end ())
@@ -21445,8 +19665,7 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu,
or return NULL if the die does not have a saved type. */
static struct type *
-get_die_type_at_offset (sect_offset sect_off,
- dwarf2_per_cu_data *per_cu,
+get_die_type_at_offset (sect_offset sect_off, dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile)
{
auto it = per_objfile->die_type_hash.find ({per_cu, sect_off});
diff --git a/gdb/dwarf2/read.h b/gdb/dwarf2/read.h
index 12d5f06..a5cfb31 100644
--- a/gdb/dwarf2/read.h
+++ b/gdb/dwarf2/read.h
@@ -1,6 +1,6 @@
/* DWARF 2 debugging format support for GDB.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -20,14 +20,18 @@
#ifndef GDB_DWARF2_READ_H
#define GDB_DWARF2_READ_H
+#if CXX_STD_THREAD
+#include <mutex>
+#endif
#include <queue>
-#include <unordered_map>
-#include "dwarf2/comp-unit-head.h"
+#include "dwarf2/abbrev.h"
+#include "dwarf2/unit-head.h"
#include "dwarf2/file-and-dir.h"
#include "dwarf2/index-cache.h"
#include "dwarf2/mapped-index.h"
#include "dwarf2/section.h"
#include "dwarf2/cu.h"
+#include "dwarf2/dwz.h"
#include "gdbsupport/gdb_obstack.h"
#include "gdbsupport/function-view.h"
#include "gdbsupport/packed.h"
@@ -38,67 +42,87 @@ extern struct cmd_list_element *show_dwarf_cmdlist;
struct tu_stats
{
- int nr_uniq_abbrev_tables;
- int nr_symtabs;
- int nr_symtab_sharers;
- int nr_stmt_less_type_units;
- int nr_all_type_units_reallocs;
- int nr_tus;
+ int nr_uniq_abbrev_tables = 0;
+ int nr_symtabs = 0;
+ int nr_symtab_sharers = 0;
+ int nr_stmt_less_type_units = 0;
+ int nr_all_type_units_reallocs = 0;
+ int nr_tus = 0;
};
+struct abbrev_table_cache;
struct dwarf2_cu;
struct dwarf2_debug_sections;
struct dwarf2_per_bfd;
-struct dwarf2_per_cu_data;
+struct dwarf2_per_cu;
struct mapped_index;
struct mapped_debug_names;
struct signatured_type;
-struct type_unit_group;
/* One item on the queue of compilation units to read in full symbols
for. */
struct dwarf2_queue_item
{
- dwarf2_queue_item (dwarf2_per_cu_data *cu, dwarf2_per_objfile *per_objfile,
- enum language lang)
+ dwarf2_queue_item (dwarf2_per_cu *cu, dwarf2_per_objfile *per_objfile)
: per_cu (cu),
- per_objfile (per_objfile),
- pretend_language (lang)
- {
+ per_objfile (per_objfile) {
}
~dwarf2_queue_item ();
DISABLE_COPY_AND_ASSIGN (dwarf2_queue_item);
- dwarf2_per_cu_data *per_cu;
+ dwarf2_per_cu *per_cu;
dwarf2_per_objfile *per_objfile;
- enum language pretend_language;
};
-/* A deleter for dwarf2_per_cu_data that knows to downcast to
- signatured_type as appropriate. This approach lets us avoid a
- virtual destructor, which saves a bit of space. */
+/* A struct that can be used as a hash key for tables based on DW_AT_stmt_list.
+ This includes type_unit_group and quick_file_names. */
+
+struct stmt_list_hash
+{
+ bool operator== (const stmt_list_hash &other) const noexcept;
+
+ /* The DWO unit this table is from or NULL if there is none. */
+ struct dwo_unit *dwo_unit;
+
+ /* Offset in .debug_line or .debug_line.dwo. */
+ sect_offset line_sect_off;
+};
+
+struct stmt_list_hash_hash
+{
+ using is_avalanching = void;
+
+ std::uint64_t operator() (const stmt_list_hash &key) const noexcept;
+};
+
+/* A deleter for dwarf2_per_cu that knows to downcast to signatured_type as
+ appropriate. This approach lets us avoid a virtual destructor, which saves
+ a bit of space. */
-struct dwarf2_per_cu_data_deleter
+struct dwarf2_per_cu_deleter
{
- void operator() (dwarf2_per_cu_data *data);
+ void operator() (dwarf2_per_cu *data);
};
-/* A specialization of unique_ptr for dwarf2_per_cu_data and
- subclasses. */
-typedef std::unique_ptr<dwarf2_per_cu_data, dwarf2_per_cu_data_deleter>
- dwarf2_per_cu_data_up;
+/* A specialization of unique_ptr for dwarf2_per_cu and subclasses. */
+using dwarf2_per_cu_up = std::unique_ptr<dwarf2_per_cu, dwarf2_per_cu_deleter>;
/* Persistent data held for a compilation unit, even when not
processing it. We put a pointer to this structure in the
psymtab. */
-struct dwarf2_per_cu_data
+struct dwarf2_per_cu
{
- dwarf2_per_cu_data ()
- : is_debug_types (false),
- is_dwz (false),
+ /* LENGTH is the length of the unit. If the value is 0, it means it is not
+ known, and may be set later using the set_length method. */
+ dwarf2_per_cu (dwarf2_per_bfd *per_bfd, dwarf2_section_info *section,
+ sect_offset sect_off, unsigned int length, bool is_dwz)
+ : sect_off (sect_off),
+ m_length (length),
+ is_debug_types (false),
+ is_dwz (is_dwz),
reading_dwo_directly (false),
tu_read (false),
lto_artificial (false),
@@ -106,8 +130,12 @@ struct dwarf2_per_cu_data
m_header_read_in (false),
mark (false),
files_read (false),
- scanned (false)
+ scanned (false),
+ section (section),
+ per_bfd (per_bfd)
{
+ gdb_assert (per_bfd != nullptr);
+ gdb_assert (section != nullptr);
}
/* The start offset and length of this compilation unit.
@@ -115,17 +143,14 @@ struct dwarf2_per_cu_data
initial_length_size.
If the DIE refers to a DWO file, this is always of the original die,
not the DWO file. */
- sect_offset sect_off {};
+ sect_offset sect_off;
private:
unsigned int m_length = 0;
- /* DWARF standard version this data has been read from (such as 4 or 5). */
- unsigned char m_dwarf_version = 0;
-
public:
/* Non-zero if this CU is from .debug_types.
- Struct dwarf2_per_cu_data is contained in struct signatured_type iff
+ Struct dwarf2_per_cu is contained in struct signatured_type iff
this is non-zero. */
unsigned int is_debug_types : 1;
@@ -209,22 +234,22 @@ public:
struct dwarf2_section_info *section = nullptr;
/* Backlink to the owner of this. */
- dwarf2_per_bfd *per_bfd = nullptr;
+ dwarf2_per_bfd *per_bfd;
- /* DWARF header of this CU. Note that dwarf2_cu reads its own version of the
- header, which may differ from this one, since it may pass rcuh_kind::TYPE
- to read_comp_unit_head, whereas for dwarf2_per_cu_data we always pass
- rcuh_kind::COMPILE.
+ /* DWARF header of this unit. Note that dwarf2_cu reads its own version of
+ the header, which may differ from this one, since it may pass
+ rch_kind::TYPE to read_unit_head, whereas for dwarf2_per_cu we always pass
+ ruh_kind::COMPILE.
Don't access this field directly, use the get_header method instead. It
should be private, but we can't make it private at the moment. */
- mutable comp_unit_head m_header;
+ mutable unit_head m_header;
/* The file and directory for this CU. This is cached so that we
don't need to re-examine the DWO in some situations. This may be
nullptr, depending on the CU; for example a partial unit won't
have one. */
- std::unique_ptr<file_and_directory> fnd;
+ file_and_directory_up fnd;
/* The file table. This can be NULL if there was no file table
or it's currently not read in.
@@ -246,10 +271,10 @@ public:
to. Concurrently with this change gdb was modified to emit version 8
indices so we only pay a price for gold generated indices.
http://sourceware.org/bugzilla/show_bug.cgi?id=15021. */
- std::vector<dwarf2_per_cu_data *> imported_symtabs;
+ std::vector<dwarf2_per_cu *> imported_symtabs;
/* Get the header of this per_cu, reading it if necessary. */
- const comp_unit_head *get_header () const;
+ const unit_head *get_header () const;
/* Return the address size given in the compilation unit header for
this CU. */
@@ -281,24 +306,6 @@ public:
gdb_assert (m_length == length);
}
- /* Return DWARF version number of this CU. */
- short version () const
- {
- /* Make sure it's set already. */
- gdb_assert (m_dwarf_version != 0);
- return m_dwarf_version;
- }
-
- void set_version (short version)
- {
- if (m_dwarf_version == 0)
- /* Set if not set already. */
- m_dwarf_version = version;
- else
- /* If already set, verify that it's the same value. */
- gdb_assert (m_dwarf_version == version);
- }
-
dwarf_unit_type unit_type (bool strict_p = true) const
{
dwarf_unit_type ut = m_unit_type.load ();
@@ -365,11 +372,16 @@ public:
/* Entry in the signatured_types hash table. */
-struct signatured_type : public dwarf2_per_cu_data
+struct signatured_type : public dwarf2_per_cu
{
- signatured_type (ULONGEST signature)
- : signature (signature)
- {}
+ signatured_type (dwarf2_per_bfd *per_bfd, dwarf2_section_info *section,
+ sect_offset sect_off, unsigned int length, bool is_dwz,
+ ULONGEST signature)
+ : dwarf2_per_cu (per_bfd, section, sect_off, length, is_dwz),
+ signature (signature)
+ {
+ this->is_debug_types = true;
+ }
/* The type's signature. */
ULONGEST signature;
@@ -387,8 +399,9 @@ struct signatured_type : public dwarf2_per_cu_data
sect_offset type_offset_in_section {};
/* Type units are grouped by their DW_AT_stmt_list entry so that they
- can share them. This points to the containing symtab. */
- struct type_unit_group *type_unit_group = nullptr;
+ can share them. This is the key of the group this type unit is part
+ of. */
+ std::optional<stmt_list_hash> type_unit_group_key;
/* Containing DWO unit.
This field is valid iff per_cu.reading_dwo_directly. */
@@ -397,6 +410,87 @@ struct signatured_type : public dwarf2_per_cu_data
using signatured_type_up = std::unique_ptr<signatured_type>;
+/* Hash a signatured_type object based on its signature. */
+
+struct signatured_type_hash
+{
+ using is_transparent = void;
+
+ std::size_t operator() (ULONGEST signature) const noexcept
+ { return signature; }
+
+ std::size_t operator() (const signatured_type *sig_type) const noexcept
+ { return (*this) (sig_type->signature); }
+};
+
+/* Compare signatured_type objects based on their signatures. */
+
+struct signatured_type_eq
+{
+ using is_transparent = void;
+
+ bool operator() (ULONGEST sig, const signatured_type *sig_type) const noexcept
+ { return sig == sig_type->signature; }
+
+ bool operator() (const signatured_type *sig_type_a,
+ const signatured_type *sig_type_b) const noexcept
+ { return (*this) (sig_type_a->signature, sig_type_b); }
+};
+
+/* Unordered set of signatured_type objects using their signature as the
+ key. */
+
+using signatured_type_set
+ = gdb::unordered_set<signatured_type *, signatured_type_hash,
+ signatured_type_eq>;
+
+struct dwo_file;
+
+using dwo_file_up = std::unique_ptr<dwo_file>;
+
+/* This is used when looking up entries in a dwo_file_set. */
+
+struct dwo_file_search
+{
+ /* Name of the DWO to look for. */
+ const char *dwo_name;
+
+ /* Compilation directory to look for. */
+ const char *comp_dir;
+};
+
+/* Hash function for dwo_file objects, using their dwo_name and comp_dir as
+ identity. */
+
+struct dwo_file_hash
+{
+ using is_transparent = void;
+
+ std::size_t operator() (const dwo_file_search &search) const noexcept;
+ std::size_t operator() (const dwo_file_up &file) const noexcept;
+};
+
+/* Equal function for dwo_file objects, using their dwo_name and comp_dir as
+ identity. */
+
+struct dwo_file_eq
+{
+ using is_transparent = void;
+
+ bool operator() (const dwo_file_search &search,
+ const dwo_file_up &dwo_file) const noexcept;
+ bool operator() (const dwo_file_up &a, const dwo_file_up &b) const noexcept;
+};
+
+/* Set of dwo_file objects, using their dwo_name and comp_dir as identity. */
+
+using dwo_file_up_set
+ = gdb::unordered_set<dwo_file_up, dwo_file_hash, dwo_file_eq>;
+
+struct dwp_file;
+
+using dwp_file_up = std::unique_ptr<dwp_file>;
+
/* Some DWARF data can be shared across objfiles who share the same BFD,
this data is stored in this object.
@@ -417,46 +511,79 @@ struct dwarf2_per_bfd
DISABLE_COPY_AND_ASSIGN (dwarf2_per_bfd);
- /* Return the CU given its index. */
- dwarf2_per_cu_data *get_cu (int index) const
+ /* Return the filename of the BFD. */
+ const char *filename () const
+ { return bfd_get_filename (this->obfd); }
+
+ /* Return the unit given its index. */
+ dwarf2_per_cu *get_unit (int index) const
{
return this->all_units[index].get ();
}
/* Return the CU given its index in the CU table in the index. */
- dwarf2_per_cu_data *get_index_cu (int index) const
+ dwarf2_per_cu *get_index_cu (int index) const
{
if (this->all_comp_units_index_cus.empty ())
- return get_cu (index);
+ return get_unit (index);
return this->all_comp_units_index_cus[index];
}
- dwarf2_per_cu_data *get_index_tu (int index) const
+ dwarf2_per_cu *get_index_tu (int index) const
{
return this->all_comp_units_index_tus[index];
}
- /* A convenience function to allocate a dwarf2_per_cu_data. The
- returned object has its "index" field set properly. The object
- is allocated on the dwarf2_per_bfd obstack. */
- dwarf2_per_cu_data_up allocate_per_cu ();
+ /* Return the separate '.dwz' debug file. If there is no
+ .gnu_debugaltlink or .debug_sup section in the file, then the
+ result depends on REQUIRE: if REQUIRE is true, error out; if
+ REQUIRE is false, return nullptr. */
+ struct dwz_file *get_dwz_file (bool require = false)
+ {
+ gdb_assert (!require || this->dwz_file.has_value ());
+
+ struct dwz_file *result = nullptr;
+
+ if (this->dwz_file.has_value ())
+ {
+ result = this->dwz_file->get ();
+ if (require && result == nullptr)
+ error (_("could not find supplementary DWARF file"));
+ }
+
+ return result;
+ }
+
+ /* A convenience function to allocate a dwarf2_per_cu. The returned object
+ has its "index" field set properly. The object is allocated on the
+ dwarf2_per_bfd obstack. */
+ dwarf2_per_cu_up allocate_per_cu (dwarf2_section_info *section,
+ sect_offset sect_off, unsigned int length,
+ bool is_dwz);
/* A convenience function to allocate a signatured_type. The
returned object has its "index" field set properly. The object
is allocated on the dwarf2_per_bfd obstack. */
- signatured_type_up allocate_signatured_type (ULONGEST signature);
+ signatured_type_up allocate_signatured_type (dwarf2_section_info *section,
+ sect_offset sect_off,
+ unsigned int length,
+ bool is_dwz,
+ ULONGEST signature);
/* Map all the DWARF section data needed when scanning
.debug_info. */
void map_info_sections (struct objfile *objfile);
+ /* Set the 'index_table' member and then call start_reading on
+ it. */
+ void start_reading (dwarf_scanner_base_up new_table);
+
private:
/* This function is mapped across the sections and remembers the
offset and size of each of the debugging sections we are
interested in. */
- void locate_sections (bfd *abfd, asection *sectp,
- const dwarf2_debug_sections &names);
+ void locate_sections (asection *sectp, const dwarf2_debug_sections &names);
public:
/* The corresponding BFD. */
@@ -490,41 +617,37 @@ public:
/* Table of all the compilation units. This is used to locate
the target compilation unit of a particular reference. */
- std::vector<dwarf2_per_cu_data_up> all_units;
+ std::vector<dwarf2_per_cu_up> all_units;
/* The all_units vector contains both CUs and TUs. Provide views on the
vector that are limited to either the CU part or the TU part. */
- gdb::array_view<dwarf2_per_cu_data_up> all_comp_units;
- gdb::array_view<dwarf2_per_cu_data_up> all_type_units;
-
- std::vector<dwarf2_per_cu_data*> all_comp_units_index_cus;
- std::vector<dwarf2_per_cu_data*> all_comp_units_index_tus;
+ gdb::array_view<dwarf2_per_cu_up> all_comp_units;
+ gdb::array_view<dwarf2_per_cu_up> all_type_units;
- /* Table of struct type_unit_group objects.
- The hash key is the DW_AT_stmt_list value. */
- htab_up type_unit_groups;
+ std::vector<dwarf2_per_cu *> all_comp_units_index_cus;
+ std::vector<dwarf2_per_cu *> all_comp_units_index_tus;
- /* A table mapping .debug_types signatures to its signatured_type entry.
- This is NULL if the .debug_types section hasn't been read in yet. */
- htab_up signatured_types;
+ /* Set of signatured_types, used to look up by signature. */
+ signatured_type_set signatured_types;
/* Type unit statistics, to see how well the scaling improvements
are doing. */
- struct tu_stats tu_stats {};
+ struct tu_stats tu_stats;
- /* A table mapping DW_AT_dwo_name values to struct dwo_file objects.
- This is NULL if the table hasn't been allocated yet. */
- htab_up dwo_files;
+ /* Set of dwo_file objects. */
+ dwo_file_up_set dwo_files;
- /* True if we've checked for whether there is a DWP file. */
- bool dwp_checked = false;
+#if CXX_STD_THREAD
+ /* Mutex to synchronize access to DWO_FILES. */
+ std::mutex dwo_files_lock;
+#endif
/* The DWP file if there is one, or NULL. */
- std::unique_ptr<struct dwp_file> dwp_file;
+ dwp_file_up dwp_file;
/* The shared '.dwz' file, if one exists. This is used when the
original data was compressed using 'dwz -m'. */
- std::optional<std::unique_ptr<struct dwz_file>> dwz_file;
+ std::optional<dwz_file_up> dwz_file;
/* Whether copy relocations are supported by this object format. */
bool can_copy;
@@ -534,7 +657,7 @@ public:
bool has_section_at_zero = false;
/* The mapped index, or NULL in the readnow case. */
- std::unique_ptr<dwarf_scanner_base> index_table;
+ dwarf_scanner_base_up index_table;
/* When using index_table, this keeps track of all quick_file_names entries.
TUs typically share line table entries with a CU, so we maintain a
@@ -543,18 +666,19 @@ public:
sorted all the TUs into "type unit groups", grouped by their
DW_AT_stmt_list value. Therefore the only sharing done here is with a
CU and its associated TU group if there is one. */
- htab_up quick_file_names_table;
+ gdb::unordered_map<stmt_list_hash, quick_file_names *, stmt_list_hash_hash>
+ quick_file_names_table;
/* The CUs we recently read. */
- std::vector<dwarf2_per_cu_data *> just_read_cus;
+ std::vector<dwarf2_per_cu *> just_read_cus;
/* If we loaded the index from an external file, this contains the
resources associated to the open file, memory mapping, etc. */
- std::unique_ptr<index_cache_resource> index_cache_res;
+ index_cache_resource_up index_cache_res;
/* Mapping from abstract origin DIE to concrete DIEs that reference it as
DW_AT_abstract_origin. */
- std::unordered_map<sect_offset, std::vector<sect_offset>>
+ gdb::unordered_map<sect_offset, std::vector<sect_offset>>
abstract_to_concrete;
/* Current directory, captured at the moment that object this was
@@ -584,9 +708,9 @@ public:
return *this;
}
- dwarf2_per_cu_data *operator* () const
+ dwarf2_per_cu *operator* () const
{
- return m_per_bfd->get_cu (m_index);
+ return m_per_bfd->get_unit (m_index);
}
bool operator== (const all_units_iterator &other) const
@@ -655,9 +779,12 @@ struct type_unit_group_unshareable
struct symtab **symtabs = nullptr;
};
+using type_unit_group_unshareable_up
+ = std::unique_ptr<type_unit_group_unshareable>;
+
struct per_cu_and_offset
{
- dwarf2_per_cu_data *per_cu;
+ dwarf2_per_cu *per_cu;
sect_offset offset;
bool operator== (const per_cu_and_offset &other) const noexcept
@@ -670,7 +797,7 @@ struct per_cu_and_offset_hash
{
std::uint64_t operator() (const per_cu_and_offset &key) const noexcept
{
- return (std::hash<dwarf2_per_cu_data *> () (key.per_cu)
+ return (std::hash<dwarf2_per_cu *> () (key.per_cu)
+ std::hash<sect_offset> () (key.offset));
}
};
@@ -693,7 +820,7 @@ struct dwarf2_per_objfile
BUF is assumed to be in a compilation unit described by CU_HEADER.
Return *BYTES_READ_PTR count of bytes read from BUF. */
const char *read_line_string (const gdb_byte *buf,
- const struct comp_unit_head *cu_header,
+ const struct unit_head *unit_header,
unsigned int *bytes_read_ptr);
/* Return pointer to string at .debug_line_str offset as read from BUF.
@@ -703,18 +830,18 @@ struct dwarf2_per_objfile
/* Return true if the symtab corresponding to PER_CU has been set,
false otherwise. */
- bool symtab_set_p (const dwarf2_per_cu_data *per_cu) const;
+ bool symtab_set_p (const dwarf2_per_cu *per_cu) const;
/* Return the compunit_symtab associated to PER_CU, if it has been created. */
- compunit_symtab *get_symtab (const dwarf2_per_cu_data *per_cu) const;
+ compunit_symtab *get_symtab (const dwarf2_per_cu *per_cu) const;
/* Set the compunit_symtab associated to PER_CU. */
- void set_symtab (const dwarf2_per_cu_data *per_cu, compunit_symtab *symtab);
+ void set_symtab (const dwarf2_per_cu *per_cu, compunit_symtab *symtab);
- /* Get the type_unit_group_unshareable corresponding to TU_GROUP. If one
+ /* Get the type_unit_group_unshareable corresponding to TU_GROUP_KEY. If one
does not exist, create it. */
type_unit_group_unshareable *get_type_unit_group_unshareable
- (type_unit_group *tu_group);
+ (stmt_list_hash tu_group_key);
struct type *get_type_for_signatured_type (signatured_type *sig_type) const;
@@ -722,13 +849,13 @@ struct dwarf2_per_objfile
struct type *type);
/* Get the dwarf2_cu matching PER_CU for this objfile. */
- dwarf2_cu *get_cu (dwarf2_per_cu_data *per_cu);
+ dwarf2_cu *get_cu (dwarf2_per_cu *per_cu);
/* Set the dwarf2_cu matching PER_CU for this objfile. */
- void set_cu (dwarf2_per_cu_data *per_cu, std::unique_ptr<dwarf2_cu> cu);
+ void set_cu (dwarf2_per_cu *per_cu, dwarf2_cu_up cu);
/* Remove/free the dwarf2_cu matching PER_CU for this objfile. */
- void remove_cu (dwarf2_per_cu_data *per_cu);
+ void remove_cu (dwarf2_per_cu *per_cu);
/* Free all cached compilation units. */
void remove_all_cus ();
@@ -759,7 +886,7 @@ struct dwarf2_per_objfile
or the type may come from a DWO file. Furthermore, while it's more logical
to use per_cu->section+offset, with Fission the section with the data is in
the DWO file but we don't know that section at the point we need it.
- We have to use something in dwarf2_per_cu_data (or the pointer to it)
+ We have to use something in dwarf2_per_cu (or the pointer to it)
because we can enter the lookup routine, get_die_type_at_offset, from
outside this file, and thus won't necessarily have PER_CU->cu.
Fortunately, PER_CU is stable for the life of the objfile. */
@@ -776,31 +903,197 @@ struct dwarf2_per_objfile
std::optional<std::queue<dwarf2_queue_item>> queue;
private:
- /* Hold the corresponding compunit_symtab for each CU or TU. This
- is indexed by dwarf2_per_cu_data::index. A NULL value means
- that the CU/TU has not been expanded yet. */
+ /* Hold the corresponding compunit_symtab for each CU or TU. This is indexed
+ by dwarf2_per_cu::index. A NULL value means that the CU/TU has not been
+ expanded yet. */
std::vector<compunit_symtab *> m_symtabs;
- /* Map from a type unit group to the corresponding unshared
+ /* Map from a type unit group key to the corresponding unshared
structure. */
- typedef std::unique_ptr<type_unit_group_unshareable>
- type_unit_group_unshareable_up;
-
- std::unordered_map<type_unit_group *, type_unit_group_unshareable_up>
+ gdb::unordered_map<stmt_list_hash, type_unit_group_unshareable_up,
+ stmt_list_hash_hash>
m_type_units;
/* Map from signatured types to the corresponding struct type. */
- std::unordered_map<signatured_type *, struct type *> m_type_map;
+ gdb::unordered_map<signatured_type *, struct type *> m_type_map;
- /* Map from the objfile-independent dwarf2_per_cu_data instances to the
+ /* Map from the objfile-independent dwarf2_per_cu instances to the
corresponding objfile-dependent dwarf2_cu instances. */
- std::unordered_map<dwarf2_per_cu_data *,
- std::unique_ptr<dwarf2_cu>> m_dwarf2_cus;
+ gdb::unordered_map<dwarf2_per_cu *, dwarf2_cu_up> m_dwarf2_cus;
+};
+
+class cutu_reader
+{
+public:
+
+ cutu_reader (dwarf2_per_cu &this_cu,
+ dwarf2_per_objfile &per_objfile,
+ const struct abbrev_table *abbrev_table,
+ dwarf2_cu *existing_cu,
+ bool skip_partial,
+ enum language pretend_language,
+ const abbrev_table_cache *abbrev_cache = nullptr);
+
+ cutu_reader (dwarf2_per_cu &this_cu,
+ dwarf2_per_objfile &per_objfile,
+ enum language pretend_language,
+ struct dwarf2_cu &parent_cu,
+ struct dwo_file &dwo_file);
+
+ DISABLE_COPY_AND_ASSIGN (cutu_reader);
+
+ /* Return true if either:
+
+ - the unit is empty (just a header without any DIE)
+ - the unit is a partial unit and this cutu_reader was built with SKIP
+ PARTIAL true. */
+ bool is_dummy () const { return m_dummy_p; }
+
+ dwarf2_cu *cu () const { return m_cu; }
+
+ die_info *top_level_die () const { return m_top_level_die; }
+
+ const gdb_byte *info_ptr () const { return m_info_ptr; }
+
+ bfd *abfd () const { return m_abfd; }
+
+ const gdb_byte *buffer () const { return m_buffer; }
+
+ const gdb_byte *buffer_end () const { return m_buffer_end; }
+
+ const dwarf2_section_info *section () const { return m_die_section; }
+
+ /* Release the CU created by this cutu_reader. */
+ dwarf2_cu_up release_cu ();
+
+ /* Release the abbrev table, transferring ownership to the
+ caller. */
+ abbrev_table_up release_abbrev_table ()
+ {
+ return std::move (m_abbrev_table_holder);
+ }
+
+ /* Read all DIES of the debug info section in memory. */
+ void read_all_dies ();
+
+ const gdb_byte *read_attribute (attribute *attr, const attr_abbrev *abbrev,
+ const gdb_byte *info_ptr,
+ bool allow_reprocess = true);
+
+ const abbrev_info *peek_die_abbrev (const gdb_byte *info_ptr,
+ unsigned int *bytes_read);
+
+ const gdb_byte *skip_one_die (const gdb_byte *info_ptr,
+ const abbrev_info *abbrev,
+ bool do_skip_children = true);
+
+ const gdb_byte *skip_children (const gdb_byte *info_ptr);
+
+private:
+ /* Skip the attribute at INFO_PTR, knowing it has form FORM. Return a pointer
+ just past the attribute. */
+ const gdb_byte *skip_one_attribute (dwarf_form form,
+ const gdb_byte *info_ptr);
+
+ void init_cu_die_reader (dwarf2_cu *cu, dwarf2_section_info *section,
+ struct dwo_file *dwo_file,
+ const struct abbrev_table *abbrev_table);
+
+ void init_tu_and_read_dwo_dies (dwarf2_per_cu *this_cu,
+ dwarf2_per_objfile *per_objfile,
+ dwarf2_cu *existing_cu,
+ enum language pretend_language);
+
+ void read_cutu_die_from_dwo (dwarf2_cu *cu, dwo_unit *dwo_unit,
+ die_info *stub_comp_unit_die,
+ const char *stub_comp_dir);
+
+ void prepare_one_comp_unit (struct dwarf2_cu *cu,
+ enum language pretend_language);
+
+ /* Helpers to build the in-memory DIE tree. */
+
+ die_info *read_toplevel_die (gdb::array_view<attribute *> extra_attrs = {});
+
+ die_info *read_die_and_siblings (die_info *parent);
+
+ die_info *read_die_and_children (die_info *parent);
+
+ die_info *read_full_die (int num_extra_attrs, bool allow_reprocess);
+
+ const gdb_byte *read_attribute_value (attribute *attr, unsigned form,
+ LONGEST implicit_const,
+ const gdb_byte *info_ptr,
+ bool allow_reprocess);
+
+ void read_attribute_reprocess (attribute *attr,
+ dwarf_tag tag = DW_TAG_padding);
+
+ const char *read_dwo_str_index (ULONGEST str_index);
+
+ gdb_bfd_ref_ptr open_dwo_file (dwarf2_per_bfd *per_bfd, const char *file_name,
+ const char *comp_dir);
+
+ dwo_file_up open_and_init_dwo_file (dwarf2_cu *cu, const char *dwo_name,
+ const char *comp_dir);
+
+ void locate_dwo_sections (objfile *objfile, dwo_file &dwo_file);
+
+ void create_dwo_unit_hash_tables (dwo_file &dwo_file, dwarf2_cu &skeleton_cu,
+ dwarf2_section_info &section,
+ ruh_kind section_kind);
+
+ dwo_unit *lookup_dwo_cutu (dwarf2_cu *cu, const char *dwo_name,
+ const char *comp_dir, ULONGEST signature,
+ int is_debug_types);
+
+ dwo_unit *lookup_dwo_comp_unit (dwarf2_cu *cu, const char *dwo_name,
+ const char *comp_dir, ULONGEST signature);
+
+ dwo_unit *lookup_dwo_type_unit (dwarf2_cu *cu, const char *dwo_name,
+ const char *comp_dir);
+
+ dwo_unit *lookup_dwo_unit (dwarf2_cu *cu, die_info *comp_unit_die,
+ const char *dwo_name);
+
+ /* The bfd of die_section. */
+ bfd *m_abfd;
+
+ /* The CU of the DIE we are parsing. */
+ struct dwarf2_cu *m_cu;
+
+ /* Non-NULL if reading a DWO file (including one packaged into a DWP). */
+ struct dwo_file *m_dwo_file;
+
+ /* The section the die comes from.
+ This is either .debug_info or .debug_types, or the .dwo variants. */
+ struct dwarf2_section_info *m_die_section;
+
+ /* die_section->buffer. */
+ const gdb_byte *m_buffer;
+
+ /* The end of the buffer. */
+ const gdb_byte *m_buffer_end;
+
+ /* The abbreviation table to use when reading the DIEs. */
+ const struct abbrev_table *m_abbrev_table;
+
+ const gdb_byte *m_info_ptr = nullptr;
+ struct die_info *m_top_level_die = nullptr;
+ bool m_dummy_p = false;
+
+ dwarf2_cu_up m_new_cu;
+
+ /* The ordinary abbreviation table. */
+ abbrev_table_up m_abbrev_table_holder;
+
+ /* The DWO abbreviation table. */
+ abbrev_table_up m_dwo_abbrev_table;
};
/* Converts DWARF language names to GDB language names. */
-enum language dwarf_lang_to_enum_language (unsigned int lang);
+enum language dwarf_lang_to_enum_language (ULONGEST lang);
/* Get the dwarf2_per_objfile associated to OBJFILE. */
@@ -809,8 +1102,7 @@ dwarf2_per_objfile *get_dwarf2_per_objfile (struct objfile *objfile);
/* Return the type of the DIE at DIE_OFFSET in the CU named by
PER_CU. */
-struct type *dwarf2_get_die_type (cu_offset die_offset,
- dwarf2_per_cu_data *per_cu,
+struct type *dwarf2_get_die_type (cu_offset die_offset, dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile);
/* Given an index in .debug_addr, fetch the value.
@@ -818,7 +1110,7 @@ struct type *dwarf2_get_die_type (cu_offset die_offset,
long after the debug information has been read, and thus per_cu->cu
may no longer exist. */
-unrelocated_addr dwarf2_read_addr_index (dwarf2_per_cu_data *per_cu,
+unrelocated_addr dwarf2_read_addr_index (dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile,
unsigned int addr_index);
@@ -828,7 +1120,7 @@ unrelocated_addr dwarf2_read_addr_index (dwarf2_per_cu_data *per_cu,
PER_CU->DWARF2_PER_OBJFILE->OBJFILE. */
struct dwarf2_locexpr_baton dwarf2_fetch_die_loc_sect_off
- (sect_offset sect_off, dwarf2_per_cu_data *per_cu,
+ (sect_offset sect_off, dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile,
gdb::function_view<CORE_ADDR ()> get_frame_pc,
bool resolve_abstract_p = false);
@@ -837,7 +1129,7 @@ struct dwarf2_locexpr_baton dwarf2_fetch_die_loc_sect_off
offset. */
struct dwarf2_locexpr_baton dwarf2_fetch_die_loc_cu_off
- (cu_offset offset_in_cu, dwarf2_per_cu_data *per_cu,
+ (cu_offset offset_in_cu, dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile,
gdb::function_view<CORE_ADDR ()> get_frame_pc);
@@ -847,7 +1139,7 @@ struct dwarf2_locexpr_baton dwarf2_fetch_die_loc_cu_off
does not have a DW_AT_const_value, return NULL. */
extern const gdb_byte *dwarf2_fetch_constant_bytes
- (sect_offset sect_off, dwarf2_per_cu_data *per_cu,
+ (sect_offset sect_off, dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile, obstack *obstack,
LONGEST *len);
@@ -856,10 +1148,10 @@ extern const gdb_byte *dwarf2_fetch_constant_bytes
the DIE in question is a variable declaration (definitions are
excluded), then *VAR_NAME is set to the variable's name. */
-struct type *dwarf2_fetch_die_type_sect_off
- (sect_offset sect_off, dwarf2_per_cu_data *per_cu,
- dwarf2_per_objfile *per_objfile,
- const char **var_name = nullptr);
+type *dwarf2_fetch_die_type_sect_off (sect_offset sect_off,
+ dwarf2_per_cu *per_cu,
+ dwarf2_per_objfile *per_objfile,
+ const char **var_name = nullptr);
/* When non-zero, dump line number entries as they are read in. */
extern unsigned int dwarf_line_debug;
@@ -875,9 +1167,6 @@ extern void dwarf2_get_section_info (struct objfile *,
asection **, const gdb_byte **,
bfd_size_type *);
-/* Return true if the producer of the inferior is clang. */
-extern bool producer_is_clang (struct dwarf2_cu *cu);
-
/* Interface for DWARF indexing methods. */
struct dwarf2_base_index_functions : public quick_symbol_functions
@@ -914,8 +1203,7 @@ struct dwarf2_base_index_functions : public quick_symbol_functions
return nullptr;
}
- void map_symbol_filenames (struct objfile *objfile,
- gdb::function_view<symbol_filename_ftype> fun,
+ void map_symbol_filenames (objfile *objfile, symbol_filename_listener fun,
bool need_fullname) override;
};
@@ -925,11 +1213,11 @@ struct dwarf2_base_index_functions : public quick_symbol_functions
EXPANSION_NOTIFY on it. */
extern bool dw2_expand_symtabs_matching_one
- (dwarf2_per_cu_data *per_cu,
+ (dwarf2_per_cu *per_cu,
dwarf2_per_objfile *per_objfile,
- gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
- gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
- gdb::function_view<expand_symtabs_lang_matcher_ftype> lang_matcher);
+ expand_symtabs_file_matcher file_matcher,
+ expand_symtabs_expansion_listener expansion_notify,
+ expand_symtabs_lang_matcher lang_matcher);
/* If FILE_MATCHER is non-NULL, set all the
dwarf2_per_cu_quick_data::MARK of the current DWARF2_PER_OBJFILE
@@ -937,24 +1225,13 @@ extern bool dw2_expand_symtabs_matching_one
extern void dw_expand_symtabs_matching_file_matcher
(dwarf2_per_objfile *per_objfile,
- gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher);
+ expand_symtabs_file_matcher file_matcher);
/* Return pointer to string at .debug_str offset STR_OFFSET. */
extern const char *read_indirect_string_at_offset
(dwarf2_per_objfile *per_objfile, LONGEST str_offset);
-/* Allocate a hash table for signatured types. */
-
-extern htab_up allocate_signatured_type_table ();
-
-/* Return a new dwarf2_per_cu_data allocated on the per-bfd
- obstack, and constructed with the specified field values. */
-
-extern dwarf2_per_cu_data_up create_cu_from_index_list
- (dwarf2_per_bfd *per_bfd, struct dwarf2_section_info *section,
- int is_dwz, sect_offset sect_off, ULONGEST length);
-
/* Initialize the views on all_units. */
extern void finalize_all_units (dwarf2_per_bfd *per_bfd);
@@ -963,8 +1240,91 @@ extern void finalize_all_units (dwarf2_per_bfd *per_bfd);
extern void create_all_units (dwarf2_per_objfile *per_objfile);
-/* Create a quick_file_names hash table. */
+/* Find the base address of the compilation unit for range lists and
+ location lists. It will normally be specified by DW_AT_low_pc.
+ In DWARF-3 draft 4, the base address could be overridden by
+ DW_AT_entry_pc. It's been removed, but GCC still uses this for
+ compilation units with discontinuous ranges. */
+
+extern void dwarf2_find_base_address (die_info *die, dwarf2_cu *cu);
+
+/* How dwarf2_get_pc_bounds constructed its *LOWPC and *HIGHPC return
+ values. Keep the items ordered with increasing constraints compliance. */
+
+enum pc_bounds_kind
+{
+ /* No attribute DW_AT_low_pc, DW_AT_high_pc or DW_AT_ranges was found. */
+ PC_BOUNDS_NOT_PRESENT,
+
+ /* Some of the attributes DW_AT_low_pc, DW_AT_high_pc or DW_AT_ranges
+ were present but they do not form a valid range of PC addresses. */
+ PC_BOUNDS_INVALID,
+
+ /* Discontiguous range was found - that is DW_AT_ranges was found. */
+ PC_BOUNDS_RANGES,
+
+ /* Contiguous range was found - DW_AT_low_pc and DW_AT_high_pc were found. */
+ PC_BOUNDS_HIGH_LOW,
+};
+
+/* Get low and high pc attributes from a die. See enum pc_bounds_kind
+ definition for the return value. *LOWPC and *HIGHPC are set iff
+ neither PC_BOUNDS_NOT_PRESENT nor PC_BOUNDS_INVALID are returned. */
+
+extern pc_bounds_kind dwarf2_get_pc_bounds (die_info *die,
+ unrelocated_addr *lowpc,
+ unrelocated_addr *highpc,
+ dwarf2_cu *cu, addrmap_mutable *map,
+ void *datum);
+
+/* Locate the .debug_info compilation unit from CU's objfile which contains
+ the DIE at OFFSET. Raises an error on failure. */
+
+extern dwarf2_per_cu *dwarf2_find_containing_comp_unit (sect_offset sect_off,
+ unsigned int
+ offset_in_dwz,
+ dwarf2_per_bfd
+ *per_bfd);
+
+/* Decode simple location descriptions.
+
+ Given a pointer to a DWARF block that defines a location, compute
+ the location. Returns true if the expression was computable by
+ this function, false otherwise. On a true return, *RESULT is set.
+
+ Note that this function does not implement a full DWARF expression
+ evaluator. Instead, it is used for a few limited purposes:
+
+ - Getting the address of a symbol that has a constant address. For
+ example, if a symbol has a location like "DW_OP_addr", the address
+ can be extracted.
+
+ - Getting the offset of a virtual function in its vtable. There
+ are two forms of this, one of which involves DW_OP_deref -- so this
+ function handles derefs in a peculiar way to make this 'work'.
+ (Probably this area should be rewritten.)
+
+ - Getting the offset of a field, when it is constant.
+
+ Opcodes that cannot be part of a constant expression, for example
+ those involving registers, simply result in a return of
+ 'false'.
+
+ This function may emit a complaint. */
+
+extern bool decode_locdesc (dwarf_block *blk, dwarf2_cu *cu, CORE_ADDR *result);
+
+/* Get low and high pc attributes from DW_AT_ranges attribute value OFFSET.
+ Return 1 if the attributes are present and valid, otherwise, return 0.
+ TAG is passed to dwarf2_ranges_process. If MAP is not NULL, then
+ ranges in MAP are set, using DATUM as the value. */
+
+extern int dwarf2_ranges_read (unsigned offset, unrelocated_addr *low_return,
+ unrelocated_addr *high_return, dwarf2_cu *cu,
+ addrmap_mutable *map, void *datum,
+ dwarf_tag tag);
-extern htab_up create_quick_file_names_table (unsigned int nr_initial_entries);
+extern file_and_directory &find_file_and_directory (die_info *die,
+ dwarf2_cu *cu);
#endif /* GDB_DWARF2_READ_H */
diff --git a/gdb/dwarf2/sect-names.h b/gdb/dwarf2/sect-names.h
index 03a571c..71e11f8 100644
--- a/gdb/dwarf2/sect-names.h
+++ b/gdb/dwarf2/sect-names.h
@@ -1,6 +1,6 @@
/* DWARF 2 section names.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/dwarf2/section.c b/gdb/dwarf2/section.c
index e0b63fd..0a790f4 100644
--- a/gdb/dwarf2/section.c
+++ b/gdb/dwarf2/section.c
@@ -1,6 +1,6 @@
/* DWARF 2 low-level section code
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
Adapted by Gary Funck (gary@intrepid.com), Intrepid Technology,
Inc. with support from Florida State University (under contract
diff --git a/gdb/dwarf2/section.h b/gdb/dwarf2/section.h
index 09bddd4..fd6e34d 100644
--- a/gdb/dwarf2/section.h
+++ b/gdb/dwarf2/section.h
@@ -1,6 +1,6 @@
/* DWARF 2 low-level section code
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
Adapted by Gary Funck (gary@intrepid.com), Intrepid Technology,
Inc. with support from Florida State University (under contract
@@ -81,19 +81,6 @@ struct dwarf2_section_info
If the section is compressed, uncompress it before returning. */
void read (struct objfile *objfile);
- /* A helper function that returns the size of a section in a safe way.
- If you are positive that the section has been read before using the
- size, then it is safe to refer to the dwarf2_section_info object's
- "size" field directly. In other cases, you must call this
- function, because for compressed sections the size field is not set
- correctly until the section has been read. */
- bfd_size_type get_size (struct objfile *objfile)
- {
- if (!readin)
- read (objfile);
- return size;
- }
-
/* Issue a complaint that something was outside the bounds of this
buffer. */
void overflow_complaint () const;
@@ -125,4 +112,6 @@ struct dwarf2_section_info
bool is_virtual;
};
+using dwarf2_section_info_up = std::unique_ptr<dwarf2_section_info>;
+
#endif /* GDB_DWARF2_SECTION_H */
diff --git a/gdb/dwarf2/stringify.c b/gdb/dwarf2/stringify.c
index 1a4e280..c9625e8 100644
--- a/gdb/dwarf2/stringify.c
+++ b/gdb/dwarf2/stringify.c
@@ -1,6 +1,6 @@
/* DWARF stringify code
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
Adapted by Gary Funck (gary@intrepid.com), Intrepid Technology,
Inc. with support from Florida State University (under contract
diff --git a/gdb/dwarf2/stringify.h b/gdb/dwarf2/stringify.h
index 1fb7ab3..254582e 100644
--- a/gdb/dwarf2/stringify.h
+++ b/gdb/dwarf2/stringify.h
@@ -1,6 +1,6 @@
/* DWARF stringify code
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/dwarf2/tag.h b/gdb/dwarf2/tag.h
index d82690b..ed730c0 100644
--- a/gdb/dwarf2/tag.h
+++ b/gdb/dwarf2/tag.h
@@ -1,6 +1,6 @@
/* Tag attributes
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -135,7 +135,10 @@ tag_matches_domain (dwarf_tag tag, domain_search_flags search, language lang)
break;
case DW_TAG_module:
- flags = SEARCH_MODULE_DOMAIN;
+ if (lang == language_ada)
+ flags = SEARCH_TYPE_DOMAIN;
+ else
+ flags = SEARCH_MODULE_DOMAIN;
break;
}
diff --git a/gdb/dwarf2/types.h b/gdb/dwarf2/types.h
index 8cb689d..3d33b42 100644
--- a/gdb/dwarf2/types.h
+++ b/gdb/dwarf2/types.h
@@ -1,6 +1,6 @@
/* Common internal types for the DWARF reader
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/dwarf2/comp-unit-head.c b/gdb/dwarf2/unit-head.c
index 1413971..0c7614f 100644
--- a/gdb/dwarf2/comp-unit-head.c
+++ b/gdb/dwarf2/unit-head.c
@@ -1,6 +1,6 @@
/* DWARF 2 debugging format support for GDB.
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
Adapted by Gary Funck (gary@intrepid.com), Intrepid Technology,
Inc. with support from Florida State University (under contract
@@ -24,119 +24,117 @@
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 "dwarf2/comp-unit-head.h"
+#include "dwarf2/unit-head.h"
#include "dwarf2/leb.h"
-#include "dwarf2/read.h"
#include "dwarf2/section.h"
#include "dwarf2/stringify.h"
#include "dwarf2/error.h"
-/* See comp-unit-head.h. */
+/* See unit-head.h. */
const gdb_byte *
-read_comp_unit_head (struct comp_unit_head *cu_header,
- const gdb_byte *info_ptr,
- struct dwarf2_section_info *section,
- rcuh_kind section_kind)
+read_unit_head (struct unit_head *header, const gdb_byte *info_ptr,
+ struct dwarf2_section_info *section, ruh_kind section_kind)
{
int signed_addr;
unsigned int bytes_read;
const char *filename = section->get_file_name ();
bfd *abfd = section->get_bfd_owner ();
- cu_header->set_length (read_initial_length (abfd, info_ptr, &bytes_read));
- cu_header->initial_length_size = bytes_read;
- cu_header->offset_size = (bytes_read == 4) ? 4 : 8;
+ header->set_length (read_initial_length (abfd, info_ptr, &bytes_read));
+ header->initial_length_size = bytes_read;
+ header->offset_size = (bytes_read == 4) ? 4 : 8;
info_ptr += bytes_read;
unsigned version = read_2_bytes (abfd, info_ptr);
if (version < 2 || version > 5)
error (_(DWARF_ERROR_PREFIX
- "wrong version in compilation unit header "
+ "wrong version in unit header "
"(is %d, should be 2, 3, 4 or 5) [in module %s]"),
version, filename);
- cu_header->version = version;
+ header->version = version;
info_ptr += 2;
- if (cu_header->version < 5)
+ if (header->version < 5)
switch (section_kind)
{
- case rcuh_kind::COMPILE:
- cu_header->unit_type = DW_UT_compile;
+ case ruh_kind::COMPILE:
+ header->unit_type = DW_UT_compile;
break;
- case rcuh_kind::TYPE:
- cu_header->unit_type = DW_UT_type;
+ case ruh_kind::TYPE:
+ header->unit_type = DW_UT_type;
break;
default:
- internal_error (_("read_comp_unit_head: invalid section_kind"));
+ internal_error (_("read_unit_head: invalid section_kind"));
}
else
{
- cu_header->unit_type = static_cast<enum dwarf_unit_type>
- (read_1_byte (abfd, info_ptr));
+ header->unit_type
+ = static_cast<enum dwarf_unit_type> (read_1_byte (abfd, info_ptr));
info_ptr += 1;
- switch (cu_header->unit_type)
+ switch (header->unit_type)
{
case DW_UT_compile:
case DW_UT_partial:
case DW_UT_skeleton:
case DW_UT_split_compile:
- if (section_kind != rcuh_kind::COMPILE)
+ if (section_kind != ruh_kind::COMPILE)
error (_(DWARF_ERROR_PREFIX
- "wrong unit_type in compilation unit header "
+ "wrong unit_type in unit header "
"(is %s, should be %s) [in module %s]"),
- dwarf_unit_type_name (cu_header->unit_type),
+ dwarf_unit_type_name (header->unit_type),
dwarf_unit_type_name (DW_UT_type), filename);
break;
case DW_UT_type:
case DW_UT_split_type:
- section_kind = rcuh_kind::TYPE;
+ section_kind = ruh_kind::TYPE;
break;
default:
error (_(DWARF_ERROR_PREFIX
- "wrong unit_type in compilation unit header "
+ "wrong unit_type in unit header "
"(is %#04x, should be one of: %s, %s, %s, %s or %s) "
"[in module %s]"),
- cu_header->unit_type, dwarf_unit_type_name (DW_UT_compile),
+ header->unit_type, dwarf_unit_type_name (DW_UT_compile),
dwarf_unit_type_name (DW_UT_skeleton),
dwarf_unit_type_name (DW_UT_split_compile),
dwarf_unit_type_name (DW_UT_type),
dwarf_unit_type_name (DW_UT_split_type), filename);
}
- cu_header->addr_size = read_1_byte (abfd, info_ptr);
+ header->addr_size = read_1_byte (abfd, info_ptr);
info_ptr += 1;
}
- cu_header->abbrev_sect_off
- = (sect_offset) cu_header->read_offset (abfd, info_ptr, &bytes_read);
+ header->abbrev_sect_off
+ = (sect_offset) header->read_offset (abfd, info_ptr, &bytes_read);
info_ptr += bytes_read;
- if (cu_header->version < 5)
+ if (header->version < 5)
{
- cu_header->addr_size = read_1_byte (abfd, info_ptr);
+ header->addr_size = read_1_byte (abfd, info_ptr);
info_ptr += 1;
}
signed_addr = bfd_get_sign_extend_vma (abfd);
if (signed_addr < 0)
- internal_error (_("read_comp_unit_head: dwarf from non elf file"));
- cu_header->signed_addr_p = signed_addr;
+ internal_error (_("read_unit_head: dwarf from non elf file"));
+ header->signed_addr_p = signed_addr;
- bool header_has_signature = section_kind == rcuh_kind::TYPE
- || cu_header->unit_type == DW_UT_skeleton
- || cu_header->unit_type == DW_UT_split_compile;
+ bool header_has_signature =
+ (section_kind == ruh_kind::TYPE
+ || header->unit_type == DW_UT_skeleton
+ || header->unit_type == DW_UT_split_compile);
if (header_has_signature)
{
- cu_header->signature = read_8_bytes (abfd, info_ptr);
+ header->signature = read_8_bytes (abfd, info_ptr);
info_ptr += 8;
}
- if (section_kind == rcuh_kind::TYPE)
+ if (section_kind == ruh_kind::TYPE)
{
LONGEST type_offset;
- type_offset = cu_header->read_offset (abfd, info_ptr, &bytes_read);
+ type_offset = header->read_offset (abfd, info_ptr, &bytes_read);
info_ptr += bytes_read;
- cu_header->type_cu_offset_in_tu = (cu_offset) type_offset;
- if (to_underlying (cu_header->type_cu_offset_in_tu) != type_offset)
+ header->type_offset_in_tu = (cu_offset) type_offset;
+ if (to_underlying (header->type_offset_in_tu) != type_offset)
error (_(DWARF_ERROR_PREFIX
- "Too big type_offset in compilation unit "
+ "Too big type_offset in unit "
"header (is %s) [in module %s]"),
plongest (type_offset), filename);
}
@@ -144,64 +142,56 @@ read_comp_unit_head (struct comp_unit_head *cu_header,
return info_ptr;
}
-/* Subroutine of read_and_check_comp_unit_head and
- read_and_check_type_unit_head to simplify them.
+/* Subroutine of read_and_check_unit_head to to simplify it.
Perform various error checking on the header. */
static void
-error_check_comp_unit_head (dwarf2_per_objfile *per_objfile,
- struct comp_unit_head *header,
- struct dwarf2_section_info *section,
- struct dwarf2_section_info *abbrev_section)
+error_check_unit_head (unit_head *header, dwarf2_section_info *section,
+ dwarf2_section_info *abbrev_section)
{
const char *filename = section->get_file_name ();
- if (to_underlying (header->abbrev_sect_off)
- >= abbrev_section->get_size (per_objfile->objfile))
+ if (to_underlying (header->abbrev_sect_off) >= abbrev_section->size)
error (_(DWARF_ERROR_PREFIX
- "bad offset (%s) in compilation unit header "
+ "bad offset (%s) in unit header "
"(offset %s + 6) [in module %s]"),
sect_offset_str (header->abbrev_sect_off),
- sect_offset_str (header->sect_off),
- filename);
+ sect_offset_str (header->sect_off), filename);
/* Cast to ULONGEST to use 64-bit arithmetic when possible to
avoid potential 32-bit overflow. */
if (((ULONGEST) header->sect_off + header->get_length_with_initial ())
> section->size)
error (_(DWARF_ERROR_PREFIX
- "bad length (0x%x) in compilation unit header "
+ "bad length (0x%x) in unit header "
"(offset %s + 0) [in module %s]"),
header->get_length_without_initial (), sect_offset_str (header->sect_off),
filename);
}
-/* See comp-unit-head.h. */
+/* See unit-head.h. */
const gdb_byte *
-read_and_check_comp_unit_head (dwarf2_per_objfile *per_objfile,
- struct comp_unit_head *header,
- struct dwarf2_section_info *section,
- struct dwarf2_section_info *abbrev_section,
- const gdb_byte *info_ptr,
- rcuh_kind section_kind)
+read_and_check_unit_head (unit_head *header, dwarf2_section_info *section,
+ dwarf2_section_info *abbrev_section,
+ const gdb_byte *info_ptr, ruh_kind section_kind)
{
- const gdb_byte *beg_of_comp_unit = info_ptr;
+ const gdb_byte *beg_of_unit = info_ptr;
- header->sect_off = (sect_offset) (beg_of_comp_unit - section->buffer);
+ header->sect_off = (sect_offset) (beg_of_unit - section->buffer);
- info_ptr = read_comp_unit_head (header, info_ptr, section, section_kind);
+ info_ptr = read_unit_head (header, info_ptr, section, section_kind);
- header->first_die_cu_offset = (cu_offset) (info_ptr - beg_of_comp_unit);
+ header->first_die_offset_in_unit = (cu_offset) (info_ptr - beg_of_unit);
- error_check_comp_unit_head (per_objfile, header, section, abbrev_section);
+ error_check_unit_head (header, section, abbrev_section);
return info_ptr;
}
unrelocated_addr
-comp_unit_head::read_address (bfd *abfd, const gdb_byte *buf,
- unsigned int *bytes_read) const
+unit_head::read_address (bfd *abfd, const gdb_byte *buf,
+ unsigned int *bytes_read) const
{
ULONGEST retval = 0;
diff --git a/gdb/dwarf2/comp-unit-head.h b/gdb/dwarf2/unit-head.h
index d161783..6272888 100644
--- a/gdb/dwarf2/comp-unit-head.h
+++ b/gdb/dwarf2/unit-head.h
@@ -1,6 +1,6 @@
/* Low-level DWARF 2 reading code
- Copyright (C) 1994-2024 Free Software Foundation, Inc.
+ Copyright (C) 1994-2025 Free Software Foundation, Inc.
Adapted by Gary Funck (gary@intrepid.com), Intrepid Technology,
Inc. with support from Florida State University (under contract
@@ -24,18 +24,19 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef GDB_DWARF2_COMP_UNIT_HEAD_H
-#define GDB_DWARF2_COMP_UNIT_HEAD_H
+#ifndef GDB_DWARF2_UNIT_HEAD_H
+#define GDB_DWARF2_UNIT_HEAD_H
#include "dwarf2.h"
#include "dwarf2/leb.h"
#include "dwarf2/types.h"
struct dwarf2_per_objfile;
+struct dwarf2_section_info;
-/* The data in a compilation unit header, after target2host
- translation, looks like this. */
-struct comp_unit_head
+/* The data in a unit header, after target2host translation, looks like
+ this. */
+struct unit_head
{
private:
unsigned int m_length = 0;
@@ -53,16 +54,16 @@ public:
enum dwarf_unit_type unit_type {};
- /* Offset to first die in this cu from the start of the cu.
- This will be the first byte following the compilation unit header. */
- cu_offset first_die_cu_offset {};
+ /* Offset to first die in this unit from the start of the unit.
+ This will be the first byte following the unit header. */
+ cu_offset first_die_offset_in_unit {};
- /* Offset to the first byte of this compilation unit header in the
- .debug_info section, for resolving relative reference dies. */
+ /* Offset to the first byte of this unit header in the containing section,
+ for resolving relative reference dies. */
sect_offset sect_off {};
/* For types, offset in the type's DIE of the type defined by this TU. */
- cu_offset type_cu_offset_in_tu {};
+ cu_offset type_offset_in_tu {};
/* 64-bit signature of this unit. For type units, it denotes the signature of
the type (DW_UT_type in DWARF 4, additionally DW_UT_split_type in DWARF 5).
@@ -75,22 +76,22 @@ public:
m_length = length;
}
- /* Return the total length of the CU described by this header, including the
+ /* Return the total length of the unit described by this header, including the
initial length field. */
unsigned int get_length_with_initial () const
{
return m_length + initial_length_size;
}
- /* Return the total length of the CU described by this header, excluding the
+ /* Return the total length of the unit described by this header, excluding the
initial length field. */
unsigned int get_length_without_initial () const
{
return m_length;
}
- /* Return TRUE if OFF is within this CU. */
- bool offset_in_cu_p (sect_offset off) const
+ /* Return TRUE if OFF is within this unit. */
+ bool offset_in_unit_p (sect_offset off) const
{
sect_offset bottom = sect_off;
sect_offset top = sect_off + get_length_with_initial ();
@@ -98,7 +99,7 @@ public:
}
/* Read an offset from the data stream. The size of the offset is
- given by cu_header->offset_size. */
+ given by unit_head::offset_size. */
LONGEST read_offset (bfd *abfd, const gdb_byte *buf,
unsigned int *bytes_read) const
{
@@ -112,28 +113,24 @@ public:
unsigned int *bytes_read) const;
};
-/* Expected enum dwarf_unit_type for read_comp_unit_head. */
-enum class rcuh_kind { COMPILE, TYPE };
+/* Expected enum dwarf_unit_type for read_unit_head. */
+enum class ruh_kind { COMPILE, TYPE };
-/* Read in the comp unit header information from the debug_info at info_ptr.
- Use rcuh_kind::COMPILE as the default type if not known by the caller.
- NOTE: This leaves members offset, first_die_offset to be filled in
+/* Read in the unit header information from the debug_info at info_ptr.
+ Use ruh_kind::COMPILE as the default type if not known by the caller.
+ NOTE: This leaves members sect_off, first_die_unit_offset to be filled in
by the caller. */
-extern const gdb_byte *read_comp_unit_head
- (struct comp_unit_head *cu_header,
- const gdb_byte *info_ptr,
- struct dwarf2_section_info *section,
- rcuh_kind section_kind);
+extern const gdb_byte *read_unit_head (unit_head *header,
+ const gdb_byte *info_ptr,
+ dwarf2_section_info *section,
+ ruh_kind section_kind);
-/* Read in a CU/TU header and perform some basic error checking.
+/* Read in a unit header and perform some basic error checking.
The contents of the header are stored in HEADER.
The result is a pointer to the start of the first DIE. */
-extern const gdb_byte *read_and_check_comp_unit_head
- (dwarf2_per_objfile *per_objfile,
- struct comp_unit_head *header,
- struct dwarf2_section_info *section,
- struct dwarf2_section_info *abbrev_section,
- const gdb_byte *info_ptr,
- rcuh_kind section_kind);
-
-#endif /* GDB_DWARF2_COMP_UNIT_HEAD_H */
+extern const gdb_byte *read_and_check_unit_head
+ (unit_head *header, dwarf2_section_info *section,
+ dwarf2_section_info *abbrev_section, const gdb_byte *info_ptr,
+ ruh_kind section_kind);
+
+#endif /* GDB_DWARF2_UNIT_HEAD_H */
diff --git a/gdb/elf-none-tdep.c b/gdb/elf-none-tdep.c
index d46c41c..da68cc5 100644
--- a/gdb/elf-none-tdep.c
+++ b/gdb/elf-none-tdep.c
@@ -1,7 +1,7 @@
/* Common code for targets with the none ABI (bare-metal), but where the
BFD library is build with ELF support.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/elf-none-tdep.h b/gdb/elf-none-tdep.h
index 1881e4b..7739d3f 100644
--- a/gdb/elf-none-tdep.h
+++ b/gdb/elf-none-tdep.h
@@ -1,6 +1,6 @@
/* Architecture independent code for ABI 'none' (bare-metal).
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/elfread.c b/gdb/elfread.c
index e81233c..7dd8fc7 100644
--- a/gdb/elfread.c
+++ b/gdb/elfread.c
@@ -1,6 +1,6 @@
/* Read ELF (Executable and Linking Format) object files for GDB.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
Written by Fred Fish at Cygnus Support.
@@ -592,7 +592,7 @@ elf_rel_plt_read (minimal_symbol_reader &reader,
std::string string_buffer;
/* Does ADDRESS reside in SECTION of OBFD? */
- auto within_section = [obfd] (asection *section, CORE_ADDR address)
+ auto within_section = [] (asection *section, CORE_ADDR address)
{
if (section == NULL)
return false;
@@ -898,7 +898,7 @@ elf_gnu_ifunc_resolve_name (const char *name, CORE_ADDR *addr_p)
return false;
}
-/* Call STT_GNU_IFUNC - a function returning addresss of a real function to
+/* Call STT_GNU_IFUNC - a function returning address of a real function to
call. PC is theSTT_GNU_IFUNC resolving function entry. The value returned
is the entry point of the resolved STT_GNU_IFUNC target function to call.
*/
@@ -1062,8 +1062,8 @@ elf_read_minimal_symbols (struct objfile *objfile, int symfile_flags,
const struct elfinfo *ei)
{
bfd *synth_abfd, *abfd = objfile->obfd.get ();
- long symcount = 0, dynsymcount = 0, synthcount, storage_needed;
- asymbol **symbol_table = NULL, **dyn_symbol_table = NULL;
+ long dynsymcount = 0, synthcount;
+ asymbol **dyn_symbol_table = NULL;
asymbol *synthsyms;
symtab_create_debug_printf ("reading minimal symbols of objfile %s",
@@ -1087,32 +1087,16 @@ elf_read_minimal_symbols (struct objfile *objfile, int symfile_flags,
/* Process the normal ELF symbol table first. */
- storage_needed = bfd_get_symtab_upper_bound (objfile->obfd.get ());
- if (storage_needed < 0)
- error (_("Can't read symbols from %s: %s"),
- bfd_get_filename (objfile->obfd.get ()),
- bfd_errmsg (bfd_get_error ()));
+ gdb::array_view<asymbol *> symbol_table
+ = gdb_bfd_canonicalize_symtab (objfile->obfd.get ());
- if (storage_needed > 0)
- {
- /* Memory gets permanently referenced from ABFD after
- bfd_canonicalize_symtab so it must not get freed before ABFD gets. */
-
- symbol_table = (asymbol **) bfd_alloc (abfd, storage_needed);
- symcount = bfd_canonicalize_symtab (objfile->obfd.get (), symbol_table);
-
- if (symcount < 0)
- error (_("Can't read symbols from %s: %s"),
- bfd_get_filename (objfile->obfd.get ()),
- bfd_errmsg (bfd_get_error ()));
-
- elf_symtab_read (reader, objfile, ST_REGULAR, symcount, symbol_table,
- false);
- }
+ elf_symtab_read (reader, objfile, ST_REGULAR, symbol_table.size (),
+ symbol_table.data (), false);
/* Add the dynamic symbols. */
- storage_needed = bfd_get_dynamic_symtab_upper_bound (objfile->obfd.get ());
+ long storage_needed
+ = bfd_get_dynamic_symtab_upper_bound (objfile->obfd.get ());
if (storage_needed > 0)
{
@@ -1157,7 +1141,8 @@ elf_read_minimal_symbols (struct objfile *objfile, int symfile_flags,
/* Add synthetic symbols - for instance, names for any PLT entries. */
- synthcount = bfd_get_synthetic_symtab (synth_abfd, symcount, symbol_table,
+ synthcount = bfd_get_synthetic_symtab (synth_abfd, symbol_table.size (),
+ symbol_table.data (),
dynsymcount, dyn_symbol_table,
&synthsyms);
if (synthcount > 0)
diff --git a/gdb/eval.c b/gdb/eval.c
index 457a436..539b700 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -1,6 +1,6 @@
/* Evaluate expressions for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -994,9 +994,10 @@ add_struct_fields (struct type *type, completion_list &output,
output.emplace_back (concat (prefix, type->field (i).name (),
nullptr));
}
- else if (type->field (i).type ()->code () == TYPE_CODE_UNION)
+ else if (type->field (i).type ()->code () == TYPE_CODE_UNION
+ || type->field (i).type ()->code () == TYPE_CODE_STRUCT)
{
- /* Recurse into anonymous unions. */
+ /* Recurse into anonymous unions and structures. */
add_struct_fields (type->field (i).type (),
output, fieldname, namelen, prefix);
}
@@ -1071,20 +1072,6 @@ is_integral_or_integral_reference (struct type *type)
&& is_integral_type (type->target_type ()));
}
-/* Helper function that implements the body of OP_SCOPE. */
-
-struct value *
-eval_op_scope (struct type *expect_type, struct expression *exp,
- enum noside noside,
- struct type *type, const char *string)
-{
- struct value *arg1 = value_aggregate_elt (type, string, expect_type,
- 0, noside);
- if (arg1 == NULL)
- error (_("There is no field named %s"), string);
- return arg1;
-}
-
/* Helper function that implements the body of OP_VAR_ENTRY_VALUE. */
struct value *
@@ -2571,27 +2558,26 @@ unop_extract_operation::evaluate (struct type *expect_type,
}
-
/* Helper for evaluate_subexp_for_address. */
static value *
-evaluate_subexp_for_address_base (struct expression *exp, enum noside noside,
- value *x)
+evaluate_subexp_for_address_base (enum noside noside, value *x)
{
if (noside == EVAL_AVOID_SIDE_EFFECTS)
{
struct type *type = check_typedef (x->type ());
+ enum type_code typecode = type->code ();
if (TYPE_IS_REFERENCE (type))
return value::zero (lookup_pointer_type (type->target_type ()),
- not_lval);
- else if (x->lval () == lval_memory || value_must_coerce_to_target (x))
- return value::zero (lookup_pointer_type (x->type ()),
- not_lval);
+ not_lval);
+ else if (x->lval () == lval_memory || value_must_coerce_to_target (x)
+ || typecode == TYPE_CODE_STRUCT || typecode == TYPE_CODE_UNION)
+ return value::zero (lookup_pointer_type (x->type ()), not_lval);
else
- error (_("Attempt to take address of "
- "value not located in memory."));
+ error (_("Attempt to take address of value not located in memory."));
}
+
return value_addr (x);
}
@@ -2611,18 +2597,20 @@ value *
operation::evaluate_for_address (struct expression *exp, enum noside noside)
{
value *val = evaluate (nullptr, exp, noside);
- return evaluate_subexp_for_address_base (exp, noside, val);
+ return evaluate_subexp_for_address_base (noside, val);
}
value *
-scope_operation::evaluate_for_address (struct expression *exp,
- enum noside noside)
-{
- value *x = value_aggregate_elt (std::get<0> (m_storage),
- std::get<1> (m_storage).c_str (),
- NULL, 1, noside);
- if (x == NULL)
- error (_("There is no field named %s"), std::get<1> (m_storage).c_str ());
+scope_operation::evaluate_internal (struct type *expect_type,
+ struct expression *exp,
+ enum noside noside,
+ bool want_address)
+{
+ const char *string = std::get<1> (m_storage).c_str ();
+ value *x = value_aggregate_elt (std::get<0> (m_storage), string,
+ expect_type, want_address, noside);
+ if (x == nullptr)
+ error (_("There is no field named %s"), string);
return x;
}
@@ -2636,7 +2624,7 @@ unop_ind_base_operation::evaluate_for_address (struct expression *exp,
if (unop_user_defined_p (UNOP_IND, x))
{
x = value_x_unop (x, UNOP_IND, noside);
- return evaluate_subexp_for_address_base (exp, noside, x);
+ return evaluate_subexp_for_address_base (noside, x);
}
return coerce_array (x);
diff --git a/gdb/event-top.c b/gdb/event-top.c
index 1fe3784..968117c 100644
--- a/gdb/event-top.c
+++ b/gdb/event-top.c
@@ -1,6 +1,6 @@
/* Top level stuff for GDB, the GNU debugger.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Elena Zannoni <ezannoni@cygnus.com> of Cygnus Solutions.
@@ -980,11 +980,6 @@ handle_fatal_signal (int sig)
#endif
#ifdef GDB_PRINT_INTERNAL_BACKTRACE
- const auto sig_write = [] (const char *msg) -> void
- {
- gdb_stderr->write_async_safe (msg, strlen (msg));
- };
-
if (bt_on_fatal_signal)
{
sig_write ("\n\n");
@@ -1027,7 +1022,13 @@ handle_fatal_signal (int sig)
}
sig_write ("\n\n");
- gdb_stderr->flush ();
+ if (gdb_stderr == nullptr || gdb_stderr->fd () == -1)
+ {
+ /* Writing to file descriptor instead of stream, no flush
+ required. */
+ }
+ else
+ gdb_stderr->flush ();
}
#endif
diff --git a/gdb/event-top.h b/gdb/event-top.h
index 57f86f9..79e0590 100644
--- a/gdb/event-top.h
+++ b/gdb/event-top.h
@@ -1,6 +1,6 @@
/* Definitions used by event-top.c, for GDB, the GNU debugger.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Elena Zannoni <ezannoni@cygnus.com> of Cygnus Solutions.
diff --git a/gdb/exceptions.c b/gdb/exceptions.c
index 3689998..35400f3 100644
--- a/gdb/exceptions.c
+++ b/gdb/exceptions.c
@@ -1,6 +1,6 @@
/* Exception (throw catch) mechanism, for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -18,15 +18,14 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "exceptions.h"
-#include "breakpoint.h"
#include "target.h"
#include "inferior.h"
#include "annotate.h"
#include "ui-out.h"
#include "serial.h"
-#include "gdbthread.h"
#include "ui.h"
#include <optional>
+#include "cli/cli-style.h"
static void
print_flush (void)
@@ -82,7 +81,7 @@ print_exception (struct ui_file *file, const struct gdb_exception &e)
end++;
file->write (start, end - start);
}
- }
+ }
gdb_printf (file, "\n");
/* Now append the annotation. */
@@ -107,6 +106,7 @@ exception_print (struct ui_file *file, const struct gdb_exception &e)
if (e.reason < 0 && e.message != NULL)
{
print_flush ();
+ print_error_prefix (file);
print_exception (file, e);
}
}
@@ -120,6 +120,7 @@ exception_fprintf (struct ui_file *file, const struct gdb_exception &e,
va_list args;
print_flush ();
+ print_error_prefix (file);
/* Print the prefix. */
va_start (args, prefix);
diff --git a/gdb/exceptions.h b/gdb/exceptions.h
index bf7141d..4a06b6b 100644
--- a/gdb/exceptions.h
+++ b/gdb/exceptions.h
@@ -1,6 +1,6 @@
/* Exception (throw catch) mechanism, for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/exec.c b/gdb/exec.c
index a1fed77..d08ac7a 100644
--- a/gdb/exec.c
+++ b/gdb/exec.c
@@ -1,6 +1,6 @@
/* Work with executable files, for GDB.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -44,7 +44,7 @@
#include <ctype.h>
#include <sys/stat.h>
-#include "solist.h"
+#include "solib.h"
#include <algorithm>
#include "gdbsupport/pathstuff.h"
#include "cli/cli-style.h"
@@ -218,28 +218,32 @@ validate_exec_file (int from_tty)
if (exec_file_mismatch_mode == exec_file_mismatch_off)
return;
+ /* If there's no current executable, then there's nothing to
+ validate against, so we're done. */
const char *current_exec_file = current_program_space->exec_filename ();
- struct inferior *inf = current_inferior ();
- /* Try to determine a filename from the process itself. */
- const char *pid_exec_file = target_pid_to_exec_file (inf->pid);
- bool build_id_mismatch = false;
-
- /* If we cannot validate the exec file, return. */
- if (current_exec_file == NULL || pid_exec_file == NULL)
+ if (current_exec_file == nullptr)
return;
- /* Try validating via build-id, if available. This is the most
- reliable check. */
+ /* Try to determine a filename from the process itself. If we
+ cannot get an executable from the process, then no validation is
+ possible. */
+ const char *pid_exec_file
+ = target_pid_to_exec_file (current_inferior ()->pid);
+ if (pid_exec_file == nullptr)
+ return;
- /* In case current_exec_file was changed, reopen_exec_file ensures
- an up to date build_id (will do nothing if the file timestamp
- did not change). If exec file changed, reopen_exec_file has
- allocated another file name, so get_exec_file again. */
+ /* In case current_exec_file was changed, reopen_exec_file ensures an up
+ to date build_id (will do nothing if the file timestamp did not
+ change). If exec file changed, reopen_exec_file has allocated another
+ file name, so get_exec_file again. */
reopen_exec_file ();
current_exec_file = current_program_space->exec_filename ();
+ /* Try validating via build-id, if available. This is the most reliable
+ check. */
const bfd_build_id *exec_file_build_id
= build_id_bfd_get (current_program_space->exec_bfd ());
+ bool build_id_mismatch = false;
if (exec_file_build_id != nullptr)
{
/* Prepend the target prefix, to force gdb_bfd_open to open the
diff --git a/gdb/exec.h b/gdb/exec.h
index 77482af..1503c36 100644
--- a/gdb/exec.h
+++ b/gdb/exec.h
@@ -1,6 +1,6 @@
/* Work with executable files, for GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/expop.h b/gdb/expop.h
index a7b2c1b..a3541d4 100644
--- a/gdb/expop.h
+++ b/gdb/expop.h
@@ -1,6 +1,6 @@
/* Definitions for expressions in GDB
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -45,10 +45,6 @@ extern void gen_expr_unop (struct expression *exp,
expr::operation *lhs,
struct agent_expr *ax, struct axs_value *value);
-extern struct value *eval_op_scope (struct type *expect_type,
- struct expression *exp,
- enum noside noside,
- struct type *type, const char *string);
extern struct value *eval_op_var_msym_value (struct type *expect_type,
struct expression *exp,
enum noside noside,
@@ -600,13 +596,14 @@ public:
struct expression *exp,
enum noside noside) override
{
- return eval_op_scope (expect_type, exp, noside,
- std::get<0> (m_storage),
- std::get<1> (m_storage).c_str ());
+ return evaluate_internal (expect_type, exp, noside, false);
}
value *evaluate_for_address (struct expression *exp,
- enum noside noside) override;
+ enum noside noside) override
+ {
+ return evaluate_internal (nullptr, exp, noside, true);
+ }
value *evaluate_funcall (struct type *expect_type,
struct expression *exp,
@@ -623,6 +620,11 @@ protected:
struct axs_value *value,
struct type *cast_type)
override;
+
+private:
+
+ value *evaluate_internal (struct type *expect_type, struct expression *exp,
+ enum noside noside, bool want_address);
};
/* Compute the value of a variable. */
diff --git a/gdb/expprint.c b/gdb/expprint.c
index 2d8bccd..c87be74 100644
--- a/gdb/expprint.c
+++ b/gdb/expprint.c
@@ -1,6 +1,6 @@
/* Print in infix form a struct expression.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/expression.h b/gdb/expression.h
index bc0bdb7..21e267c 100644
--- a/gdb/expression.h
+++ b/gdb/expression.h
@@ -1,6 +1,6 @@
/* Definitions for expressions stored in reversed prefix form, for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/extension-priv.h b/gdb/extension-priv.h
index a38f104..cde64a2 100644
--- a/gdb/extension-priv.h
+++ b/gdb/extension-priv.h
@@ -1,7 +1,7 @@
/* Private implementation details of interface between gdb and its
extension languages.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -262,12 +262,13 @@ struct extension_language_ops
const char *method_name,
std::vector<xmethod_worker_up> *dm_vec);
- /* Colorize a source file. NAME is the source file's name, and
- CONTENTS is the contents of the file. This should either return
- colorized (using ANSI terminal escapes) version of the contents,
+ /* Colorize a source file. NAME is the source file's name, CONTENTS is the
+ contents of the file, and LANG is the language. This should either
+ return colorized (using ANSI terminal escapes) version of the contents,
or an empty option. */
std::optional<std::string> (*colorize) (const std::string &name,
- const std::string &contents);
+ const std::string &contents,
+ enum language lang);
/* Colorize a single line of disassembler output, CONTENT. This should
either return colorized (using ANSI terminal escapes) version of the
diff --git a/gdb/extension.c b/gdb/extension.c
index b78ea4f..6d14a20 100644
--- a/gdb/extension.c
+++ b/gdb/extension.c
@@ -1,6 +1,6 @@
/* Interface between gdb and its extension languages.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -974,7 +974,8 @@ xmethod_worker::get_result_type (value *object, gdb::array_view<value *> args)
/* See extension.h. */
std::optional<std::string>
-ext_lang_colorize (const std::string &filename, const std::string &contents)
+ext_lang_colorize (const std::string &filename, const std::string &contents,
+ enum language lang)
{
std::optional<std::string> result;
@@ -983,7 +984,7 @@ ext_lang_colorize (const std::string &filename, const std::string &contents)
if (extlang->ops == nullptr
|| extlang->ops->colorize == nullptr)
continue;
- result = extlang->ops->colorize (filename, contents);
+ result = extlang->ops->colorize (filename, contents, lang);
if (result.has_value ())
return result;
}
diff --git a/gdb/extension.h b/gdb/extension.h
index 957642a..c607df8 100644
--- a/gdb/extension.h
+++ b/gdb/extension.h
@@ -1,6 +1,6 @@
/* Interface between gdb and its extension languages.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -325,12 +325,14 @@ extern void get_matching_xmethod_workers
std::vector<xmethod_worker_up> *workers);
/* Try to colorize some source code. FILENAME is the name of the file
- holding the code. CONTENTS is the source code itself. This will
- either a colorized (using ANSI terminal escapes) version of the
- source code, or an empty value if colorizing could not be done. */
+ holding the code. CONTENTS is the source code itself. LANG is the
+ language of the CONTENTS. This will either a colorized (using ANSI
+ terminal escapes) version of the source code, or an empty value if
+ colorizing could not be done. */
extern std::optional<std::string> ext_lang_colorize
- (const std::string &filename, const std::string &contents);
+ (const std::string &filename, const std::string &contents,
+ enum language lang);
/* Try to colorize a single line of disassembler output, CONTENT for
GDBARCH. This will return either a colorized (using ANSI terminal
diff --git a/gdb/extract-store-integer.c b/gdb/extract-store-integer.c
index 644273c..4f20092 100644
--- a/gdb/extract-store-integer.c
+++ b/gdb/extract-store-integer.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1986-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -333,7 +333,7 @@ extract_integer_test ()
do_extract_tests<int8_t> (0x00, 0x00, 0x00);
}
-} // namespace selftests
+} /* namespace selftests */
#endif
diff --git a/gdb/extract-store-integer.h b/gdb/extract-store-integer.h
index a51ef3d..2e91844 100644
--- a/gdb/extract-store-integer.h
+++ b/gdb/extract-store-integer.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1986-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/f-array-walker.h b/gdb/f-array-walker.h
index 27d7ae1..2cb3612 100644
--- a/gdb/f-array-walker.h
+++ b/gdb/f-array-walker.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/f-exp.h b/gdb/f-exp.h
index 47d469a..df0328b 100644
--- a/gdb/f-exp.h
+++ b/gdb/f-exp.h
@@ -1,6 +1,6 @@
/* Definitions for Fortran expressions
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/f-exp.y b/gdb/f-exp.y
index 259f274..44ea11b 100644
--- a/gdb/f-exp.y
+++ b/gdb/f-exp.y
@@ -1,6 +1,6 @@
/* YACC parser for Fortran expressions, for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
Contributed by Motorola. Adapted from the C parser by Farooq Butt
(fmbutt@engage.sps.mot.com).
diff --git a/gdb/f-lang.c b/gdb/f-lang.c
index db96753..3e31dce 100644
--- a/gdb/f-lang.c
+++ b/gdb/f-lang.c
@@ -1,6 +1,6 @@
/* Fortran language support routines for GDB, the GNU debugger.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
Contributed by Motorola. Adapted from the C parser by Farooq Butt
(fmbutt@engage.sps.mot.com).
diff --git a/gdb/f-lang.h b/gdb/f-lang.h
index 180ac0e..f60d02a 100644
--- a/gdb/f-lang.h
+++ b/gdb/f-lang.h
@@ -1,6 +1,6 @@
/* Fortran language support definitions for GDB, the GNU debugger.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
Contributed by Motorola. Adapted from the C definitions by Farooq Butt
(fmbutt@engage.sps.mot.com).
diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c
index 36e434a..7d0cdc0 100644
--- a/gdb/f-typeprint.c
+++ b/gdb/f-typeprint.c
@@ -1,6 +1,6 @@
/* Support for printing Fortran types for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
Contributed by Motorola. Adapted from the C version by Farooq Butt
(fmbutt@engage.sps.mot.com).
diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c
index cd87dd2..0f3b2a6 100644
--- a/gdb/f-valprint.c
+++ b/gdb/f-valprint.c
@@ -1,6 +1,6 @@
/* Support for printing Fortran values for GDB, the GNU debugger.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
Contributed by Motorola. Adapted from the C definitions by Farooq Butt
(fmbutt@engage.sps.mot.com), additionally worked over by Stan Shebs.
diff --git a/gdb/fbsd-nat.c b/gdb/fbsd-nat.c
index 8e0523d..19c4a7b 100644
--- a/gdb/fbsd-nat.c
+++ b/gdb/fbsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for FreeBSD.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -2465,7 +2465,7 @@ fbsd_nat_get_siginfo (ptid_t ptid, siginfo_t *siginfo)
if (ptrace (PT_LWPINFO, pid, (caddr_t) &pl, sizeof pl) == -1)
return false;
if (!(pl.pl_flags & PL_FLAG_SI))
- return false;;
+ return false;
*siginfo = pl.pl_siginfo;
return (true);
}
diff --git a/gdb/fbsd-nat.h b/gdb/fbsd-nat.h
index 2123175..fb81c53 100644
--- a/gdb/fbsd-nat.h
+++ b/gdb/fbsd-nat.h
@@ -1,6 +1,6 @@
/* Native-dependent code for FreeBSD.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/fbsd-tdep.c b/gdb/fbsd-tdep.c
index 804a72c..39e1e86 100644
--- a/gdb/fbsd-tdep.c
+++ b/gdb/fbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for FreeBSD, architecture-independent.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -637,14 +637,11 @@ fbsd_core_xfer_siginfo (struct gdbarch *gdbarch, gdb_byte *readbuf,
return len;
}
-static int
-find_signalled_thread (struct thread_info *info, void *data)
+static bool
+find_signalled_thread (struct thread_info *info)
{
- if (info->stop_signal () != GDB_SIGNAL_0
- && info->ptid.pid () == inferior_ptid.pid ())
- return 1;
-
- return 0;
+ return (info->stop_signal () != GDB_SIGNAL_0
+ && info->ptid.pid () == inferior_ptid.pid ());
}
/* Return a byte_vector containing the contents of a core dump note
@@ -718,7 +715,7 @@ fbsd_make_corefile_notes (struct gdbarch *gdbarch, bfd *obfd, int *note_size)
signalled_thr = curr_thr;
else
{
- signalled_thr = iterate_over_threads (find_signalled_thread, NULL);
+ signalled_thr = iterate_over_threads (find_signalled_thread);
if (signalled_thr == NULL)
signalled_thr = curr_thr;
}
diff --git a/gdb/fbsd-tdep.h b/gdb/fbsd-tdep.h
index 79381b3..3e1e97f 100644
--- a/gdb/fbsd-tdep.h
+++ b/gdb/fbsd-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for FreeBSD, architecture independent.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/features/Makefile b/gdb/features/Makefile
index 344c12c..7a8c799 100644
--- a/gdb/features/Makefile
+++ b/gdb/features/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# Copyright (C) 2007-2025 Free Software Foundation, Inc.
# This file is part of GDB.
diff --git a/gdb/features/aarch64-core.xml b/gdb/features/aarch64-core.xml
index 13fe7ec..b804651 100644
--- a/gdb/features/aarch64-core.xml
+++ b/gdb/features/aarch64-core.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2025 Free Software Foundation, Inc.
Contributed by ARM Ltd.
Copying and distribution of this file, with or without modification,
diff --git a/gdb/features/aarch64-fpu.xml b/gdb/features/aarch64-fpu.xml
index 7893955..509824f 100644
--- a/gdb/features/aarch64-fpu.xml
+++ b/gdb/features/aarch64-fpu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2025 Free Software Foundation, Inc.
Contributed by ARM Ltd.
Copying and distribution of this file, with or without modification,
diff --git a/gdb/features/aarch64-mte.xml b/gdb/features/aarch64-mte.xml
index 62a07de..4440f11 100644
--- a/gdb/features/aarch64-mte.xml
+++ b/gdb/features/aarch64-mte.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2021-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/aarch64-pauth.xml b/gdb/features/aarch64-pauth.xml
index 9fcf690..f608b44 100644
--- a/gdb/features/aarch64-pauth.xml
+++ b/gdb/features/aarch64-pauth.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/aarch64-sme.c b/gdb/features/aarch64-sme.c
index 591c9af..8930452 100644
--- a/gdb/features/aarch64-sme.c
+++ b/gdb/features/aarch64-sme.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/features/aarch64-sme2.c b/gdb/features/aarch64-sme2.c
index f078abe..b5d4e79 100644
--- a/gdb/features/aarch64-sme2.c
+++ b/gdb/features/aarch64-sme2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/features/aarch64-sve.c b/gdb/features/aarch64-sve.c
index 67fc801..0b15881 100644
--- a/gdb/features/aarch64-sve.c
+++ b/gdb/features/aarch64-sve.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/features/aarch64-tls.c b/gdb/features/aarch64-tls.c
index f974976..abf7e7b 100644
--- a/gdb/features/aarch64-tls.c
+++ b/gdb/features/aarch64-tls.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/features/arc/v1-aux.xml b/gdb/features/arc/v1-aux.xml
index 4b9fd13..5759eaa 100644
--- a/gdb/features/arc/v1-aux.xml
+++ b/gdb/features/arc/v1-aux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2015-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/arc/v1-core.xml b/gdb/features/arc/v1-core.xml
index 01fd832..60ae134 100644
--- a/gdb/features/arc/v1-core.xml
+++ b/gdb/features/arc/v1-core.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2015-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/arc/v2-aux.xml b/gdb/features/arc/v2-aux.xml
index 46b77c7..9492d1f 100644
--- a/gdb/features/arc/v2-aux.xml
+++ b/gdb/features/arc/v2-aux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2015-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/arc/v2-core.xml b/gdb/features/arc/v2-core.xml
index 27d4228..8676b75 100644
--- a/gdb/features/arc/v2-core.xml
+++ b/gdb/features/arc/v2-core.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2015-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/arm/arm-core.xml b/gdb/features/arm/arm-core.xml
index c573fa6..498aee1 100644
--- a/gdb/features/arm/arm-core.xml
+++ b/gdb/features/arm/arm-core.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/arm/arm-fpa.xml b/gdb/features/arm/arm-fpa.xml
index fce0e1e..bbf39c2 100644
--- a/gdb/features/arm/arm-fpa.xml
+++ b/gdb/features/arm/arm-fpa.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/arm/arm-m-profile-mve.xml b/gdb/features/arm/arm-m-profile-mve.xml
index 852d485..43546fc 100644
--- a/gdb/features/arm/arm-m-profile-mve.xml
+++ b/gdb/features/arm/arm-m-profile-mve.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2021-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/arm/arm-m-profile-with-fpa.xml b/gdb/features/arm/arm-m-profile-with-fpa.xml
index 9b5cf64..26b7d66 100644
--- a/gdb/features/arm/arm-m-profile-with-fpa.xml
+++ b/gdb/features/arm/arm-m-profile-with-fpa.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2019-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/arm/arm-m-profile.xml b/gdb/features/arm/arm-m-profile.xml
index a30be2a..1ec0a80 100644
--- a/gdb/features/arm/arm-m-profile.xml
+++ b/gdb/features/arm/arm-m-profile.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/arm/arm-m-system.xml b/gdb/features/arm/arm-m-system.xml
index 17f4915..7e5fbd5 100644
--- a/gdb/features/arm/arm-m-system.xml
+++ b/gdb/features/arm/arm-m-system.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2022-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/arm/arm-secext.xml b/gdb/features/arm/arm-secext.xml
index 13d13d7..97ec233 100644
--- a/gdb/features/arm/arm-secext.xml
+++ b/gdb/features/arm/arm-secext.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2022-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/arm/arm-tls.xml b/gdb/features/arm/arm-tls.xml
index 97e4913..cb004b9 100644
--- a/gdb/features/arm/arm-tls.xml
+++ b/gdb/features/arm/arm-tls.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2022-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/arm/arm-vfpv2.xml b/gdb/features/arm/arm-vfpv2.xml
index 5caeddc..2dc2ba7 100644
--- a/gdb/features/arm/arm-vfpv2.xml
+++ b/gdb/features/arm/arm-vfpv2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/arm/arm-vfpv3.xml b/gdb/features/arm/arm-vfpv3.xml
index 87020fe..8c1dbe6 100644
--- a/gdb/features/arm/arm-vfpv3.xml
+++ b/gdb/features/arm/arm-vfpv3.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/arm/xscale-iwmmxt.xml b/gdb/features/arm/xscale-iwmmxt.xml
index 6f1138e..3fe1d16 100644
--- a/gdb/features/arm/xscale-iwmmxt.xml
+++ b/gdb/features/arm/xscale-iwmmxt.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/btrace-conf.dtd b/gdb/features/btrace-conf.dtd
index c6f3f60..64b595d 100644
--- a/gdb/features/btrace-conf.dtd
+++ b/gdb/features/btrace-conf.dtd
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/btrace.dtd b/gdb/features/btrace.dtd
index 44b063f..543a8fb 100644
--- a/gdb/features/btrace.dtd
+++ b/gdb/features/btrace.dtd
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/cskyv2-linux.xml b/gdb/features/cskyv2-linux.xml
index ef1ccc0..45eb180 100644
--- a/gdb/features/cskyv2-linux.xml
+++ b/gdb/features/cskyv2-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2022-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/feature_to_c.awk b/gdb/features/feature_to_c.awk
index ae866fe..0f06115 100644
--- a/gdb/features/feature_to_c.awk
+++ b/gdb/features/feature_to_c.awk
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# Copyright (C) 2007-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
diff --git a/gdb/features/feature_to_c.sh b/gdb/features/feature_to_c.sh
index d5d3db7..d518ae3 100755
--- a/gdb/features/feature_to_c.sh
+++ b/gdb/features/feature_to_c.sh
@@ -2,7 +2,7 @@
# Convert text files to compilable C arrays.
#
-# Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# Copyright (C) 2007-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
diff --git a/gdb/features/gdb-target.dtd b/gdb/features/gdb-target.dtd
index d07703f..2ecc41e 100644
--- a/gdb/features/gdb-target.dtd
+++ b/gdb/features/gdb-target.dtd
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/i386/32bit-avx.xml b/gdb/features/i386/32bit-avx.xml
index 251f13d..5cd9a93 100644
--- a/gdb/features/i386/32bit-avx.xml
+++ b/gdb/features/i386/32bit-avx.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/i386/32bit-avx512.xml b/gdb/features/i386/32bit-avx512.xml
index 05e3213..949ff42 100644
--- a/gdb/features/i386/32bit-avx512.xml
+++ b/gdb/features/i386/32bit-avx512.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/i386/32bit-core.xml b/gdb/features/i386/32bit-core.xml
index 3c774f6..e1473aa 100644
--- a/gdb/features/i386/32bit-core.xml
+++ b/gdb/features/i386/32bit-core.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/i386/32bit-linux.xml b/gdb/features/i386/32bit-linux.xml
index aa57c0a..0bfc0bc 100644
--- a/gdb/features/i386/32bit-linux.xml
+++ b/gdb/features/i386/32bit-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/i386/32bit-segments.xml b/gdb/features/i386/32bit-segments.xml
index b84c865..c800a71 100644
--- a/gdb/features/i386/32bit-segments.xml
+++ b/gdb/features/i386/32bit-segments.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2016-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/i386/32bit-sse.xml b/gdb/features/i386/32bit-sse.xml
index e6afdd4..a292906 100644
--- a/gdb/features/i386/32bit-sse.xml
+++ b/gdb/features/i386/32bit-sse.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/i386/64bit-avx.xml b/gdb/features/i386/64bit-avx.xml
index bae5143..c57385d 100644
--- a/gdb/features/i386/64bit-avx.xml
+++ b/gdb/features/i386/64bit-avx.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/i386/64bit-avx512.xml b/gdb/features/i386/64bit-avx512.xml
index 07921d4..d4081ff 100644
--- a/gdb/features/i386/64bit-avx512.xml
+++ b/gdb/features/i386/64bit-avx512.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/i386/64bit-core.xml b/gdb/features/i386/64bit-core.xml
index 5cbae2c..6746c25 100644
--- a/gdb/features/i386/64bit-core.xml
+++ b/gdb/features/i386/64bit-core.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/i386/64bit-linux.xml b/gdb/features/i386/64bit-linux.xml
index 9ee944d..a72a9f7 100644
--- a/gdb/features/i386/64bit-linux.xml
+++ b/gdb/features/i386/64bit-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/i386/64bit-segments.xml b/gdb/features/i386/64bit-segments.xml
index 80156d4..0c05d38 100644
--- a/gdb/features/i386/64bit-segments.xml
+++ b/gdb/features/i386/64bit-segments.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2016-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/i386/64bit-sse.xml b/gdb/features/i386/64bit-sse.xml
index bcee5a2..6fc7632 100644
--- a/gdb/features/i386/64bit-sse.xml
+++ b/gdb/features/i386/64bit-sse.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/i386/pkeys.xml b/gdb/features/i386/pkeys.xml
index 6d2a2b1..0996090 100644
--- a/gdb/features/i386/pkeys.xml
+++ b/gdb/features/i386/pkeys.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2016-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/i386/x32-core.xml b/gdb/features/i386/x32-core.xml
index ba7aee9..3395d4a 100644
--- a/gdb/features/i386/x32-core.xml
+++ b/gdb/features/i386/x32-core.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2012-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/library-list-aix.dtd b/gdb/features/library-list-aix.dtd
index dc4586e..1eed464 100644
--- a/gdb/features/library-list-aix.dtd
+++ b/gdb/features/library-list-aix.dtd
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/library-list-svr4.dtd b/gdb/features/library-list-svr4.dtd
index 671fd85..ab56491 100644
--- a/gdb/features/library-list-svr4.dtd
+++ b/gdb/features/library-list-svr4.dtd
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2011-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/library-list.dtd b/gdb/features/library-list.dtd
index 98ed7bc..66945cb 100644
--- a/gdb/features/library-list.dtd
+++ b/gdb/features/library-list.dtd
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/loongarch/base32.xml b/gdb/features/loongarch/base32.xml
index b8af2b6..7562223 100644
--- a/gdb/features/loongarch/base32.xml
+++ b/gdb/features/loongarch/base32.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2022-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/loongarch/base64.xml b/gdb/features/loongarch/base64.xml
index 5cd7bec..57c86f5 100644
--- a/gdb/features/loongarch/base64.xml
+++ b/gdb/features/loongarch/base64.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2022-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/loongarch/fpu.xml b/gdb/features/loongarch/fpu.xml
index c68fc1b..c892fea 100644
--- a/gdb/features/loongarch/fpu.xml
+++ b/gdb/features/loongarch/fpu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2021-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/loongarch/lasx.xml b/gdb/features/loongarch/lasx.xml
index 753b982..d44de54 100644
--- a/gdb/features/loongarch/lasx.xml
+++ b/gdb/features/loongarch/lasx.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2022-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/loongarch/lbt.xml b/gdb/features/loongarch/lbt.xml
index 6526ee6..32183d4 100644
--- a/gdb/features/loongarch/lbt.xml
+++ b/gdb/features/loongarch/lbt.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2022-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/loongarch/lsx.xml b/gdb/features/loongarch/lsx.xml
index e19a404..4288d6f 100644
--- a/gdb/features/loongarch/lsx.xml
+++ b/gdb/features/loongarch/lsx.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2022-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/microblaze-core.xml b/gdb/features/microblaze-core.xml
index d1d7d53..4182d4b 100644
--- a/gdb/features/microblaze-core.xml
+++ b/gdb/features/microblaze-core.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/microblaze-linux.xml b/gdb/features/microblaze-linux.xml
index 688a3f8..ee38f1a 100644
--- a/gdb/features/microblaze-linux.xml
+++ b/gdb/features/microblaze-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2014-2018 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/microblaze-stack-protect.xml b/gdb/features/microblaze-stack-protect.xml
index b5f6840..4ecae94 100644
--- a/gdb/features/microblaze-stack-protect.xml
+++ b/gdb/features/microblaze-stack-protect.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/microblaze-with-stack-protect.xml b/gdb/features/microblaze-with-stack-protect.xml
index c1e3699..6a0c602 100644
--- a/gdb/features/microblaze-with-stack-protect.xml
+++ b/gdb/features/microblaze-with-stack-protect.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/microblaze.xml b/gdb/features/microblaze.xml
index 8c10bcc..353c429 100644
--- a/gdb/features/microblaze.xml
+++ b/gdb/features/microblaze.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2014-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/mips-cp0.xml b/gdb/features/mips-cp0.xml
index fb489f4..4d5a1ef 100644
--- a/gdb/features/mips-cp0.xml
+++ b/gdb/features/mips-cp0.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/mips-cpu.xml b/gdb/features/mips-cpu.xml
index 779a0a7..9fb053c 100644
--- a/gdb/features/mips-cpu.xml
+++ b/gdb/features/mips-cpu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/mips-dsp-linux.xml b/gdb/features/mips-dsp-linux.xml
index 84dcf03..209e76d 100644
--- a/gdb/features/mips-dsp-linux.xml
+++ b/gdb/features/mips-dsp-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2012-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/mips-dsp.xml b/gdb/features/mips-dsp.xml
index 7e10e69..4146e05 100644
--- a/gdb/features/mips-dsp.xml
+++ b/gdb/features/mips-dsp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2012-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/mips-fpu.xml b/gdb/features/mips-fpu.xml
index 4424b3b..a4ab60f 100644
--- a/gdb/features/mips-fpu.xml
+++ b/gdb/features/mips-fpu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/mips-linux.xml b/gdb/features/mips-linux.xml
index 2e735fa..bb0c66c 100644
--- a/gdb/features/mips-linux.xml
+++ b/gdb/features/mips-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/mips64-cp0.xml b/gdb/features/mips64-cp0.xml
index dbb82d9..cfc2864 100644
--- a/gdb/features/mips64-cp0.xml
+++ b/gdb/features/mips64-cp0.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/mips64-cpu.xml b/gdb/features/mips64-cpu.xml
index 2989ee4..e3f5f27 100644
--- a/gdb/features/mips64-cpu.xml
+++ b/gdb/features/mips64-cpu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/mips64-dsp-linux.xml b/gdb/features/mips64-dsp-linux.xml
index 6c10855..c8fc120 100644
--- a/gdb/features/mips64-dsp-linux.xml
+++ b/gdb/features/mips64-dsp-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2012-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/mips64-dsp.xml b/gdb/features/mips64-dsp.xml
index f711868..18ace0e 100644
--- a/gdb/features/mips64-dsp.xml
+++ b/gdb/features/mips64-dsp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2012-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/mips64-fpu.xml b/gdb/features/mips64-fpu.xml
index b66b986..8b1f9de 100644
--- a/gdb/features/mips64-fpu.xml
+++ b/gdb/features/mips64-fpu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/mips64-linux.xml b/gdb/features/mips64-linux.xml
index f861982..60eda28 100644
--- a/gdb/features/mips64-linux.xml
+++ b/gdb/features/mips64-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/nds32-core.xml b/gdb/features/nds32-core.xml
index 38571af..9be7753 100644
--- a/gdb/features/nds32-core.xml
+++ b/gdb/features/nds32-core.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/nds32-fpu.xml b/gdb/features/nds32-fpu.xml
index f362fbd..dddad9f 100644
--- a/gdb/features/nds32-fpu.xml
+++ b/gdb/features/nds32-fpu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/nds32-system.xml b/gdb/features/nds32-system.xml
index e42d98a..ae2e661 100644
--- a/gdb/features/nds32-system.xml
+++ b/gdb/features/nds32-system.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/nds32.xml b/gdb/features/nds32.xml
index 0926c95..dbbeb4f 100644
--- a/gdb/features/nds32.xml
+++ b/gdb/features/nds32.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/or1k-core.xml b/gdb/features/or1k-core.xml
index 0f24458..1d6700f 100644
--- a/gdb/features/or1k-core.xml
+++ b/gdb/features/or1k-core.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2017-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/or1k-linux.xml b/gdb/features/or1k-linux.xml
index 7f57b7e..86ec853 100644
--- a/gdb/features/or1k-linux.xml
+++ b/gdb/features/or1k-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2021-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/or1k.xml b/gdb/features/or1k.xml
index 54d98cc..f3dab0e 100644
--- a/gdb/features/or1k.xml
+++ b/gdb/features/or1k.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2016-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/osdata.dtd b/gdb/features/osdata.dtd
index 6350b7a..d5befc3 100644
--- a/gdb/features/osdata.dtd
+++ b/gdb/features/osdata.dtd
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/print-osabi.xsl b/gdb/features/print-osabi.xsl
index 77f9931..4e19244 100644
--- a/gdb/features/print-osabi.xsl
+++ b/gdb/features/print-osabi.xsl
@@ -1,6 +1,6 @@
<!--
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/features/riscv/32bit-cpu.xml b/gdb/features/riscv/32bit-cpu.xml
index dc948c7..76180b8 100644
--- a/gdb/features/riscv/32bit-cpu.xml
+++ b/gdb/features/riscv/32bit-cpu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/riscv/32bit-fpu.xml b/gdb/features/riscv/32bit-fpu.xml
index 985d0e9..d5ec19b 100644
--- a/gdb/features/riscv/32bit-fpu.xml
+++ b/gdb/features/riscv/32bit-fpu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/riscv/64bit-cpu.xml b/gdb/features/riscv/64bit-cpu.xml
index 60f42f2..61ec01e 100644
--- a/gdb/features/riscv/64bit-cpu.xml
+++ b/gdb/features/riscv/64bit-cpu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/riscv/64bit-fpu.xml b/gdb/features/riscv/64bit-fpu.xml
index 8f18bf1..1e1838e 100644
--- a/gdb/features/riscv/64bit-fpu.xml
+++ b/gdb/features/riscv/64bit-fpu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/riscv/rv32e-xregs.xml b/gdb/features/riscv/rv32e-xregs.xml
index ff0f9c7..c1013f2 100644
--- a/gdb/features/riscv/rv32e-xregs.xml
+++ b/gdb/features/riscv/rv32e-xregs.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-altivec.xml b/gdb/features/rs6000/power-altivec.xml
index 243de8d..eb95210 100644
--- a/gdb/features/rs6000/power-altivec.xml
+++ b/gdb/features/rs6000/power-altivec.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-core.xml b/gdb/features/rs6000/power-core.xml
index 3b81a73..ba53eb9 100644
--- a/gdb/features/rs6000/power-core.xml
+++ b/gdb/features/rs6000/power-core.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-dscr.xml b/gdb/features/rs6000/power-dscr.xml
index 4d6865e..4735056 100644
--- a/gdb/features/rs6000/power-dscr.xml
+++ b/gdb/features/rs6000/power-dscr.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-ebb.xml b/gdb/features/rs6000/power-ebb.xml
index 1379ab1..4020d64 100644
--- a/gdb/features/rs6000/power-ebb.xml
+++ b/gdb/features/rs6000/power-ebb.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-fpu-isa205.xml b/gdb/features/rs6000/power-fpu-isa205.xml
index 8cf63c9..822fe67 100644
--- a/gdb/features/rs6000/power-fpu-isa205.xml
+++ b/gdb/features/rs6000/power-fpu-isa205.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-fpu.xml b/gdb/features/rs6000/power-fpu.xml
index 0ad8801..076486d 100644
--- a/gdb/features/rs6000/power-fpu.xml
+++ b/gdb/features/rs6000/power-fpu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-htm-altivec.xml b/gdb/features/rs6000/power-htm-altivec.xml
index cab4c9a..f9513fb 100644
--- a/gdb/features/rs6000/power-htm-altivec.xml
+++ b/gdb/features/rs6000/power-htm-altivec.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-htm-core.xml b/gdb/features/rs6000/power-htm-core.xml
index 1ec64fc..69ab345 100644
--- a/gdb/features/rs6000/power-htm-core.xml
+++ b/gdb/features/rs6000/power-htm-core.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-htm-dscr.xml b/gdb/features/rs6000/power-htm-dscr.xml
index a15621f..d6bacaa 100644
--- a/gdb/features/rs6000/power-htm-dscr.xml
+++ b/gdb/features/rs6000/power-htm-dscr.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-htm-fpu.xml b/gdb/features/rs6000/power-htm-fpu.xml
index 1f67d91..274a09a 100644
--- a/gdb/features/rs6000/power-htm-fpu.xml
+++ b/gdb/features/rs6000/power-htm-fpu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-htm-ppr.xml b/gdb/features/rs6000/power-htm-ppr.xml
index 6d645e1..d73f430 100644
--- a/gdb/features/rs6000/power-htm-ppr.xml
+++ b/gdb/features/rs6000/power-htm-ppr.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-htm-spr.xml b/gdb/features/rs6000/power-htm-spr.xml
index d7e37ba..3f5b94c 100644
--- a/gdb/features/rs6000/power-htm-spr.xml
+++ b/gdb/features/rs6000/power-htm-spr.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-htm-tar.xml b/gdb/features/rs6000/power-htm-tar.xml
index 828ca75..ee3170a 100644
--- a/gdb/features/rs6000/power-htm-tar.xml
+++ b/gdb/features/rs6000/power-htm-tar.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-htm-vsx.xml b/gdb/features/rs6000/power-htm-vsx.xml
index bb5a1cb..9721c8f 100644
--- a/gdb/features/rs6000/power-htm-vsx.xml
+++ b/gdb/features/rs6000/power-htm-vsx.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-linux-pmu.xml b/gdb/features/rs6000/power-linux-pmu.xml
index 7f44bbc..791ed0a 100644
--- a/gdb/features/rs6000/power-linux-pmu.xml
+++ b/gdb/features/rs6000/power-linux-pmu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-linux.xml b/gdb/features/rs6000/power-linux.xml
index 6e98bd4..22d1ced 100644
--- a/gdb/features/rs6000/power-linux.xml
+++ b/gdb/features/rs6000/power-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-oea.xml b/gdb/features/rs6000/power-oea.xml
index fd9bcca..7c35eb8 100644
--- a/gdb/features/rs6000/power-oea.xml
+++ b/gdb/features/rs6000/power-oea.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-ppr.xml b/gdb/features/rs6000/power-ppr.xml
index 2f34a21..13f4886 100644
--- a/gdb/features/rs6000/power-ppr.xml
+++ b/gdb/features/rs6000/power-ppr.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-spe.xml b/gdb/features/rs6000/power-spe.xml
index b04aca6..4eafcb1 100644
--- a/gdb/features/rs6000/power-spe.xml
+++ b/gdb/features/rs6000/power-spe.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-tar.xml b/gdb/features/rs6000/power-tar.xml
index d282716..5584c75 100644
--- a/gdb/features/rs6000/power-tar.xml
+++ b/gdb/features/rs6000/power-tar.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power-vsx.xml b/gdb/features/rs6000/power-vsx.xml
index 334345a..0823027 100644
--- a/gdb/features/rs6000/power-vsx.xml
+++ b/gdb/features/rs6000/power-vsx.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power64-core.xml b/gdb/features/rs6000/power64-core.xml
index c2f6a90..e6161bb 100644
--- a/gdb/features/rs6000/power64-core.xml
+++ b/gdb/features/rs6000/power64-core.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power64-htm-core.xml b/gdb/features/rs6000/power64-htm-core.xml
index 3e509ee..fc47fa5 100644
--- a/gdb/features/rs6000/power64-htm-core.xml
+++ b/gdb/features/rs6000/power64-htm-core.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/power64-linux.xml b/gdb/features/rs6000/power64-linux.xml
index c0ae303..7d2962a 100644
--- a/gdb/features/rs6000/power64-linux.xml
+++ b/gdb/features/rs6000/power64-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-32.xml b/gdb/features/rs6000/powerpc-32.xml
index d81c28f..dbc3dc1 100644
--- a/gdb/features/rs6000/powerpc-32.xml
+++ b/gdb/features/rs6000/powerpc-32.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-32l.xml b/gdb/features/rs6000/powerpc-32l.xml
index 2a5c0a5..1df3cd8 100644
--- a/gdb/features/rs6000/powerpc-32l.xml
+++ b/gdb/features/rs6000/powerpc-32l.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-403.xml b/gdb/features/rs6000/powerpc-403.xml
index 167ca89..5138b00 100644
--- a/gdb/features/rs6000/powerpc-403.xml
+++ b/gdb/features/rs6000/powerpc-403.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-403gc.xml b/gdb/features/rs6000/powerpc-403gc.xml
index fc6aa56..5de8026 100644
--- a/gdb/features/rs6000/powerpc-403gc.xml
+++ b/gdb/features/rs6000/powerpc-403gc.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-405.xml b/gdb/features/rs6000/powerpc-405.xml
index f027d24..379b9ab 100644
--- a/gdb/features/rs6000/powerpc-405.xml
+++ b/gdb/features/rs6000/powerpc-405.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-505.xml b/gdb/features/rs6000/powerpc-505.xml
index c17f95a..916e8f5 100644
--- a/gdb/features/rs6000/powerpc-505.xml
+++ b/gdb/features/rs6000/powerpc-505.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-601.xml b/gdb/features/rs6000/powerpc-601.xml
index e1e45fc..82e7d48 100644
--- a/gdb/features/rs6000/powerpc-601.xml
+++ b/gdb/features/rs6000/powerpc-601.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-602.xml b/gdb/features/rs6000/powerpc-602.xml
index 45677b8..14ba3af 100644
--- a/gdb/features/rs6000/powerpc-602.xml
+++ b/gdb/features/rs6000/powerpc-602.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-603.xml b/gdb/features/rs6000/powerpc-603.xml
index ea77ecf..cd949c4 100644
--- a/gdb/features/rs6000/powerpc-603.xml
+++ b/gdb/features/rs6000/powerpc-603.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-604.xml b/gdb/features/rs6000/powerpc-604.xml
index 2b2e4c5..8da101d 100644
--- a/gdb/features/rs6000/powerpc-604.xml
+++ b/gdb/features/rs6000/powerpc-604.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-64.xml b/gdb/features/rs6000/powerpc-64.xml
index 6590817..d20e99c 100644
--- a/gdb/features/rs6000/powerpc-64.xml
+++ b/gdb/features/rs6000/powerpc-64.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-64l.xml b/gdb/features/rs6000/powerpc-64l.xml
index 808512e..3d205f4 100644
--- a/gdb/features/rs6000/powerpc-64l.xml
+++ b/gdb/features/rs6000/powerpc-64l.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-7400.xml b/gdb/features/rs6000/powerpc-7400.xml
index 0197721..2e4ef38 100644
--- a/gdb/features/rs6000/powerpc-7400.xml
+++ b/gdb/features/rs6000/powerpc-7400.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-750.xml b/gdb/features/rs6000/powerpc-750.xml
index fce28c0..797df49 100644
--- a/gdb/features/rs6000/powerpc-750.xml
+++ b/gdb/features/rs6000/powerpc-750.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-860.xml b/gdb/features/rs6000/powerpc-860.xml
index 386001d..9d91255 100644
--- a/gdb/features/rs6000/powerpc-860.xml
+++ b/gdb/features/rs6000/powerpc-860.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-altivec32.xml b/gdb/features/rs6000/powerpc-altivec32.xml
index c16b586..0a3b7e8 100644
--- a/gdb/features/rs6000/powerpc-altivec32.xml
+++ b/gdb/features/rs6000/powerpc-altivec32.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-altivec32l.xml b/gdb/features/rs6000/powerpc-altivec32l.xml
index 6c4388a..9858195 100644
--- a/gdb/features/rs6000/powerpc-altivec32l.xml
+++ b/gdb/features/rs6000/powerpc-altivec32l.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-altivec64.xml b/gdb/features/rs6000/powerpc-altivec64.xml
index fed5242..56263d6 100644
--- a/gdb/features/rs6000/powerpc-altivec64.xml
+++ b/gdb/features/rs6000/powerpc-altivec64.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-altivec64l.xml b/gdb/features/rs6000/powerpc-altivec64l.xml
index 21b84a2..4db7691 100644
--- a/gdb/features/rs6000/powerpc-altivec64l.xml
+++ b/gdb/features/rs6000/powerpc-altivec64l.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-e500.xml b/gdb/features/rs6000/powerpc-e500.xml
index f793667..98b8273 100644
--- a/gdb/features/rs6000/powerpc-e500.xml
+++ b/gdb/features/rs6000/powerpc-e500.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-e500l.xml b/gdb/features/rs6000/powerpc-e500l.xml
index 9f0f84a..11d656b 100644
--- a/gdb/features/rs6000/powerpc-e500l.xml
+++ b/gdb/features/rs6000/powerpc-e500l.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-isa205-32l.xml b/gdb/features/rs6000/powerpc-isa205-32l.xml
index 74931bb..927c2de 100644
--- a/gdb/features/rs6000/powerpc-isa205-32l.xml
+++ b/gdb/features/rs6000/powerpc-isa205-32l.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-isa205-64l.xml b/gdb/features/rs6000/powerpc-isa205-64l.xml
index c274765..c99c86c 100644
--- a/gdb/features/rs6000/powerpc-isa205-64l.xml
+++ b/gdb/features/rs6000/powerpc-isa205-64l.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-isa205-altivec32l.xml b/gdb/features/rs6000/powerpc-isa205-altivec32l.xml
index fe70722..54c9637 100644
--- a/gdb/features/rs6000/powerpc-isa205-altivec32l.xml
+++ b/gdb/features/rs6000/powerpc-isa205-altivec32l.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-isa205-altivec64l.xml b/gdb/features/rs6000/powerpc-isa205-altivec64l.xml
index 1a7c28e..4c863e5 100644
--- a/gdb/features/rs6000/powerpc-isa205-altivec64l.xml
+++ b/gdb/features/rs6000/powerpc-isa205-altivec64l.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.xml b/gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.xml
index 75b651c..9b953eb 100644
--- a/gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.xml
+++ b/gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.xml b/gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.xml
index c6f81b1..2661f9c 100644
--- a/gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.xml
+++ b/gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-isa205-vsx32l.xml b/gdb/features/rs6000/powerpc-isa205-vsx32l.xml
index dead8e4..0c89e30 100644
--- a/gdb/features/rs6000/powerpc-isa205-vsx32l.xml
+++ b/gdb/features/rs6000/powerpc-isa205-vsx32l.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-isa205-vsx64l.xml b/gdb/features/rs6000/powerpc-isa205-vsx64l.xml
index 89c9fcb..ca87da3 100644
--- a/gdb/features/rs6000/powerpc-isa205-vsx64l.xml
+++ b/gdb/features/rs6000/powerpc-isa205-vsx64l.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-isa207-htm-vsx32l.xml b/gdb/features/rs6000/powerpc-isa207-htm-vsx32l.xml
index 9c8b357..374e3cf 100644
--- a/gdb/features/rs6000/powerpc-isa207-htm-vsx32l.xml
+++ b/gdb/features/rs6000/powerpc-isa207-htm-vsx32l.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-isa207-htm-vsx64l.xml b/gdb/features/rs6000/powerpc-isa207-htm-vsx64l.xml
index 893541c..7b9dafb 100644
--- a/gdb/features/rs6000/powerpc-isa207-htm-vsx64l.xml
+++ b/gdb/features/rs6000/powerpc-isa207-htm-vsx64l.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-isa207-vsx32l.xml b/gdb/features/rs6000/powerpc-isa207-vsx32l.xml
index 6c1dab6..4c9710e 100644
--- a/gdb/features/rs6000/powerpc-isa207-vsx32l.xml
+++ b/gdb/features/rs6000/powerpc-isa207-vsx32l.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-isa207-vsx64l.xml b/gdb/features/rs6000/powerpc-isa207-vsx64l.xml
index 746eeaa..19cfdb8 100644
--- a/gdb/features/rs6000/powerpc-isa207-vsx64l.xml
+++ b/gdb/features/rs6000/powerpc-isa207-vsx64l.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2018-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-vsx32.xml b/gdb/features/rs6000/powerpc-vsx32.xml
index a9ecc4e..c2d516f 100644
--- a/gdb/features/rs6000/powerpc-vsx32.xml
+++ b/gdb/features/rs6000/powerpc-vsx32.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-vsx32l.xml b/gdb/features/rs6000/powerpc-vsx32l.xml
index 73e61ce..4d00297 100644
--- a/gdb/features/rs6000/powerpc-vsx32l.xml
+++ b/gdb/features/rs6000/powerpc-vsx32l.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-vsx64.xml b/gdb/features/rs6000/powerpc-vsx64.xml
index 57f2902..53db22c 100644
--- a/gdb/features/rs6000/powerpc-vsx64.xml
+++ b/gdb/features/rs6000/powerpc-vsx64.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/powerpc-vsx64l.xml b/gdb/features/rs6000/powerpc-vsx64l.xml
index 9165bc2..c3cd31d 100644
--- a/gdb/features/rs6000/powerpc-vsx64l.xml
+++ b/gdb/features/rs6000/powerpc-vsx64l.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rs6000/rs6000.xml b/gdb/features/rs6000/rs6000.xml
index 7f65c7e..f3820f9 100644
--- a/gdb/features/rs6000/rs6000.xml
+++ b/gdb/features/rs6000/rs6000.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/rx.xml b/gdb/features/rx.xml
index a103f83..201db4f 100644
--- a/gdb/features/rx.xml
+++ b/gdb/features/rx.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2019-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390-acr.xml b/gdb/features/s390-acr.xml
index 3200f3c..055155e 100644
--- a/gdb/features/s390-acr.xml
+++ b/gdb/features/s390-acr.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390-core32.xml b/gdb/features/s390-core32.xml
index 8f64ed1..0e4008f 100644
--- a/gdb/features/s390-core32.xml
+++ b/gdb/features/s390-core32.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390-core64.xml b/gdb/features/s390-core64.xml
index 771f2b2..1d6d1b1 100644
--- a/gdb/features/s390-core64.xml
+++ b/gdb/features/s390-core64.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390-fpr.xml b/gdb/features/s390-fpr.xml
index 02db0b1..71a0da4 100644
--- a/gdb/features/s390-fpr.xml
+++ b/gdb/features/s390-fpr.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390-gs-linux64.xml b/gdb/features/s390-gs-linux64.xml
index e33e8a4..5de9825 100644
--- a/gdb/features/s390-gs-linux64.xml
+++ b/gdb/features/s390-gs-linux64.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2017-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390-gs.xml b/gdb/features/s390-gs.xml
index 16bdac8..c9bb317 100644
--- a/gdb/features/s390-gs.xml
+++ b/gdb/features/s390-gs.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2017-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390-gsbc.xml b/gdb/features/s390-gsbc.xml
index fae2aa7..b6db229 100644
--- a/gdb/features/s390-gsbc.xml
+++ b/gdb/features/s390-gsbc.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2017-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390-linux32.xml b/gdb/features/s390-linux32.xml
index 6a51c21..cfc775f 100644
--- a/gdb/features/s390-linux32.xml
+++ b/gdb/features/s390-linux32.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390-linux32v1.xml b/gdb/features/s390-linux32v1.xml
index 6378076..a553734 100644
--- a/gdb/features/s390-linux32v1.xml
+++ b/gdb/features/s390-linux32v1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390-linux32v2.xml b/gdb/features/s390-linux32v2.xml
index 0646ce3..f64906d 100644
--- a/gdb/features/s390-linux32v2.xml
+++ b/gdb/features/s390-linux32v2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390-linux64.xml b/gdb/features/s390-linux64.xml
index e8d8f03..45bf154 100644
--- a/gdb/features/s390-linux64.xml
+++ b/gdb/features/s390-linux64.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390-linux64v1.xml b/gdb/features/s390-linux64v1.xml
index fc63a16..2e68af8 100644
--- a/gdb/features/s390-linux64v1.xml
+++ b/gdb/features/s390-linux64v1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390-linux64v2.xml b/gdb/features/s390-linux64v2.xml
index 3d0c9f9..09c0727 100644
--- a/gdb/features/s390-linux64v2.xml
+++ b/gdb/features/s390-linux64v2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390-tdb.xml b/gdb/features/s390-tdb.xml
index fb97117..4b78a7b 100644
--- a/gdb/features/s390-tdb.xml
+++ b/gdb/features/s390-tdb.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390-te-linux64.xml b/gdb/features/s390-te-linux64.xml
index 399053a..910a97c 100644
--- a/gdb/features/s390-te-linux64.xml
+++ b/gdb/features/s390-te-linux64.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390-tevx-linux64.xml b/gdb/features/s390-tevx-linux64.xml
index 2dbb039..a985c57 100644
--- a/gdb/features/s390-tevx-linux64.xml
+++ b/gdb/features/s390-tevx-linux64.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2015-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390-vx-linux64.xml b/gdb/features/s390-vx-linux64.xml
index 6b32bf8..6013d3a 100644
--- a/gdb/features/s390-vx-linux64.xml
+++ b/gdb/features/s390-vx-linux64.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2015-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390-vx.xml b/gdb/features/s390-vx.xml
index c86ed2b..c5eee12 100644
--- a/gdb/features/s390-vx.xml
+++ b/gdb/features/s390-vx.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2015-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390x-core64.xml b/gdb/features/s390x-core64.xml
index 0e4aaa5..c5af641 100644
--- a/gdb/features/s390x-core64.xml
+++ b/gdb/features/s390x-core64.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390x-gs-linux64.xml b/gdb/features/s390x-gs-linux64.xml
index c41e460..727d9cc 100644
--- a/gdb/features/s390x-gs-linux64.xml
+++ b/gdb/features/s390x-gs-linux64.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2017-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390x-linux64.xml b/gdb/features/s390x-linux64.xml
index 31afe82..0a3e0fd 100644
--- a/gdb/features/s390x-linux64.xml
+++ b/gdb/features/s390x-linux64.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390x-linux64v1.xml b/gdb/features/s390x-linux64v1.xml
index 8aa26b4..4772e63 100644
--- a/gdb/features/s390x-linux64v1.xml
+++ b/gdb/features/s390x-linux64v1.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390x-linux64v2.xml b/gdb/features/s390x-linux64v2.xml
index 3769a75..78f68e0 100644
--- a/gdb/features/s390x-linux64v2.xml
+++ b/gdb/features/s390x-linux64v2.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390x-te-linux64.xml b/gdb/features/s390x-te-linux64.xml
index c48831d..57e2e9b 100644
--- a/gdb/features/s390x-te-linux64.xml
+++ b/gdb/features/s390x-te-linux64.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390x-tevx-linux64.xml b/gdb/features/s390x-tevx-linux64.xml
index a53bfff..5732e6f 100644
--- a/gdb/features/s390x-tevx-linux64.xml
+++ b/gdb/features/s390x-tevx-linux64.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2015-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/s390x-vx-linux64.xml b/gdb/features/s390x-vx-linux64.xml
index fcf75de..cc84b37 100644
--- a/gdb/features/s390x-vx-linux64.xml
+++ b/gdb/features/s390x-vx-linux64.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2015-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/sparc/sparc32-cp0.xml b/gdb/features/sparc/sparc32-cp0.xml
index baa80c2..a7f6e64 100644
--- a/gdb/features/sparc/sparc32-cp0.xml
+++ b/gdb/features/sparc/sparc32-cp0.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/sparc/sparc32-cpu.xml b/gdb/features/sparc/sparc32-cpu.xml
index 43c4768..b28c533 100644
--- a/gdb/features/sparc/sparc32-cpu.xml
+++ b/gdb/features/sparc/sparc32-cpu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/sparc/sparc32-fpu.xml b/gdb/features/sparc/sparc32-fpu.xml
index e0de97b..289c1d2 100644
--- a/gdb/features/sparc/sparc32-fpu.xml
+++ b/gdb/features/sparc/sparc32-fpu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/sparc/sparc32-solaris.xml b/gdb/features/sparc/sparc32-solaris.xml
index 7a88743..c6c29d5 100644
--- a/gdb/features/sparc/sparc32-solaris.xml
+++ b/gdb/features/sparc/sparc32-solaris.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/sparc/sparc64-cp0.xml b/gdb/features/sparc/sparc64-cp0.xml
index 473198b..cef58f3 100644
--- a/gdb/features/sparc/sparc64-cp0.xml
+++ b/gdb/features/sparc/sparc64-cp0.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/sparc/sparc64-cpu.xml b/gdb/features/sparc/sparc64-cpu.xml
index 7f4802d..b8a66d9 100644
--- a/gdb/features/sparc/sparc64-cpu.xml
+++ b/gdb/features/sparc/sparc64-cpu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/sparc/sparc64-fpu.xml b/gdb/features/sparc/sparc64-fpu.xml
index 8710585..cef935e 100644
--- a/gdb/features/sparc/sparc64-fpu.xml
+++ b/gdb/features/sparc/sparc64-fpu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/sparc/sparc64-solaris.xml b/gdb/features/sparc/sparc64-solaris.xml
index 8c4b67b..afaf64f 100644
--- a/gdb/features/sparc/sparc64-solaris.xml
+++ b/gdb/features/sparc/sparc64-solaris.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2013-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/threads.dtd b/gdb/features/threads.dtd
index 862fb62..f2e5614 100644
--- a/gdb/features/threads.dtd
+++ b/gdb/features/threads.dtd
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2008-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/tic6x-c62x-linux.xml b/gdb/features/tic6x-c62x-linux.xml
index 180d55e..b0d1f08 100644
--- a/gdb/features/tic6x-c62x-linux.xml
+++ b/gdb/features/tic6x-c62x-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/tic6x-c64x-linux.xml b/gdb/features/tic6x-c64x-linux.xml
index 6c3ccfd..4b1d22c 100644
--- a/gdb/features/tic6x-c64x-linux.xml
+++ b/gdb/features/tic6x-c64x-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/tic6x-c64xp-linux.xml b/gdb/features/tic6x-c64xp-linux.xml
index e2c6916..a0103f6 100644
--- a/gdb/features/tic6x-c64xp-linux.xml
+++ b/gdb/features/tic6x-c64xp-linux.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/tic6x-c6xp.xml b/gdb/features/tic6x-c6xp.xml
index 1fca5b3..e549f7e 100644
--- a/gdb/features/tic6x-c6xp.xml
+++ b/gdb/features/tic6x-c6xp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/tic6x-core.xml b/gdb/features/tic6x-core.xml
index d577202..1fe0f19 100644
--- a/gdb/features/tic6x-core.xml
+++ b/gdb/features/tic6x-core.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/tic6x-gp.xml b/gdb/features/tic6x-gp.xml
index 0d2fd83..60b96b1 100644
--- a/gdb/features/tic6x-gp.xml
+++ b/gdb/features/tic6x-gp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/traceframe-info.dtd b/gdb/features/traceframe-info.dtd
index 52e0c6f..77a84bd 100644
--- a/gdb/features/traceframe-info.dtd
+++ b/gdb/features/traceframe-info.dtd
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/xinclude.dtd b/gdb/features/xinclude.dtd
index 59e92ae..9dfdc27 100644
--- a/gdb/features/xinclude.dtd
+++ b/gdb/features/xinclude.dtd
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2007-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/z80-cpu.xml b/gdb/features/z80-cpu.xml
index b29fd5d..0bce3b1 100644
--- a/gdb/features/z80-cpu.xml
+++ b/gdb/features/z80-cpu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2020-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/features/z80.xml b/gdb/features/z80.xml
index 9d71f82..c697bfb 100644
--- a/gdb/features/z80.xml
+++ b/gdb/features/z80.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2020-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/filename-seen-cache.h b/gdb/filename-seen-cache.h
index 3cac93f..0e25ecb 100644
--- a/gdb/filename-seen-cache.h
+++ b/gdb/filename-seen-cache.h
@@ -1,6 +1,6 @@
/* Filename-seen cache for the GNU debugger, GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/filesystem.c b/gdb/filesystem.c
index 564bc1c..51e1c3f 100644
--- a/gdb/filesystem.c
+++ b/gdb/filesystem.c
@@ -1,6 +1,6 @@
/* Handle different target file systems for GDB, the GNU Debugger.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/filesystem.h b/gdb/filesystem.h
index 73b9a8b..8a06595 100644
--- a/gdb/filesystem.h
+++ b/gdb/filesystem.h
@@ -1,5 +1,5 @@
/* Handle different target file systems for GDB, the GNU Debugger.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/findcmd.c b/gdb/findcmd.c
index a802efe..993c487 100644
--- a/gdb/findcmd.c
+++ b/gdb/findcmd.c
@@ -1,6 +1,6 @@
/* The find command.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/findvar.c b/gdb/findvar.c
index 1a9d2be..9da5c48 100644
--- a/gdb/findvar.c
+++ b/gdb/findvar.c
@@ -1,6 +1,6 @@
/* Find a variable's value in memory, for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -485,7 +485,8 @@ language_defn::read_var_value (struct symbol *var,
/* Determine address of TLS variable. */
if (obj_section
&& (obj_section->the_bfd_section->flags & SEC_THREAD_LOCAL) != 0)
- addr = target_translate_tls_address (obj_section->objfile, addr);
+ addr = target_translate_tls_address (obj_section->objfile, addr,
+ var->print_name ());
}
break;
diff --git a/gdb/fork-child.c b/gdb/fork-child.c
index 539b116..8abfbda 100644
--- a/gdb/fork-child.c
+++ b/gdb/fork-child.c
@@ -1,6 +1,6 @@
/* Fork a Unix child process, and set up to debug it, for GDB.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
diff --git a/gdb/frame-base.c b/gdb/frame-base.c
index 7faa999..9179533 100644
--- a/gdb/frame-base.c
+++ b/gdb/frame-base.c
@@ -1,6 +1,6 @@
/* Definitions for frame address handler, for GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/frame-base.h b/gdb/frame-base.h
index 8436929..889d39c 100644
--- a/gdb/frame-base.h
+++ b/gdb/frame-base.h
@@ -1,6 +1,6 @@
/* Definitions for a frame base, for GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -32,7 +32,7 @@ struct regcache;
the NEXT frame's register unwind method, to determine the address
of THIS frame's `base'.
- The exact meaning of `base' is highly dependant on the type of the
+ The exact meaning of `base' is highly dependent on the type of the
debug info. It is assumed that dwarf2, stabs, ... will each
provide their own methods.
diff --git a/gdb/frame-id.h b/gdb/frame-id.h
index 30850e2..1828468 100644
--- a/gdb/frame-id.h
+++ b/gdb/frame-id.h
@@ -1,6 +1,6 @@
/* Definitions for dealing with stack frames, for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/frame-unwind.c b/gdb/frame-unwind.c
index 33b23f9..c60a349 100644
--- a/gdb/frame-unwind.c
+++ b/gdb/frame-unwind.c
@@ -1,6 +1,6 @@
/* Definitions for frame unwinder, for GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -49,6 +49,7 @@ static constexpr std::initializer_list<const frame_unwind *>
standard_unwinders =
{
&dummy_frame_unwind,
+#if defined(DWARF_FORMAT_AVAILABLE)
/* The DWARF tailcall sniffer must come before the inline sniffer.
Otherwise, we can end up in a situation where a DWARF frame finds
tailcall information, but then the inline sniffer claims a frame
@@ -57,6 +58,7 @@ static constexpr std::initializer_list<const frame_unwind *>
activated if the newer frame was created using the DWARF
unwinder, and it also found tailcall information. */
&dwarf2_tailcall_frame_unwind,
+#endif
&inline_frame_unwind,
};
diff --git a/gdb/frame-unwind.h b/gdb/frame-unwind.h
index baf09ed..a967b7c 100644
--- a/gdb/frame-unwind.h
+++ b/gdb/frame-unwind.h
@@ -1,6 +1,6 @@
/* Definitions for a frame unwinder, for GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/frame.c b/gdb/frame.c
index a524678..fe5336f 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -1,6 +1,6 @@
/* Cache and manage frames for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -25,7 +25,6 @@
#include "inferior.h"
#include "regcache.h"
#include "user-regs.h"
-#include "gdbsupport/gdb_obstack.h"
#include "dummy-frame.h"
#include "sentinel-frame.h"
#include "gdbcore.h"
@@ -2326,7 +2325,22 @@ get_prev_frame_always_1 (const frame_info_ptr &this_frame)
until we have unwound all the way down to the previous non-inline
frame. */
if (get_frame_type (this_frame) == INLINE_FRAME)
- return get_prev_frame_maybe_check_cycle (this_frame);
+ {
+ frame_info_ptr fi = get_prev_frame_maybe_check_cycle (this_frame);
+
+ /* If this_frame is the current frame, then compute and stash its frame
+ id so that the cycle check in get_prev_frame_maybe_check_cycle works
+ correctly in the case where inline frame 0 has been duplicated.
+
+ The this_id.p check is required to avoid recursion as computing the
+ frame id results in a call to inline_frame_this_id which calls back
+ into get_prev_frame_always. */
+ if (this_frame->level == 0
+ && this_frame->this_id.p != frame_id_status::COMPUTING)
+ get_frame_id (this_frame);
+
+ return fi;
+ }
/* If this_frame is the current frame, then compute and stash its
frame id prior to fetching and computing the frame id of the
diff --git a/gdb/frame.h b/gdb/frame.h
index e207c71..b240662 100644
--- a/gdb/frame.h
+++ b/gdb/frame.h
@@ -1,6 +1,6 @@
/* Definitions for dealing with stack frames, for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -586,7 +586,7 @@ void set_current_sal_from_frame (const frame_info_ptr &);
the old get_frame_base method was not sufficient.
get_frame_base_address: get_frame_locals_address:
- get_frame_args_address: A set of high-level debug-info dependant
+ get_frame_args_address: A set of high-level debug-info dependent
addresses that fall within the frame. These addresses almost
certainly will not match the stack address part of a frame ID (as
returned by get_frame_base).
diff --git a/gdb/frv-linux-tdep.c b/gdb/frv-linux-tdep.c
index 4941e4a..067b983 100644
--- a/gdb/frv-linux-tdep.c
+++ b/gdb/frv-linux-tdep.c
@@ -1,7 +1,7 @@
/* Target-dependent code for GNU/Linux running on the Fujitsu FR-V,
for GDB.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/frv-tdep.c b/gdb/frv-tdep.c
index b022cc7..3608872 100644
--- a/gdb/frv-tdep.c
+++ b/gdb/frv-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the Fujitsu FR-V, for GDB, the GNU Debugger.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/frv-tdep.h b/gdb/frv-tdep.h
index 0d78ec4..07982b4 100644
--- a/gdb/frv-tdep.h
+++ b/gdb/frv-tdep.h
@@ -1,5 +1,5 @@
/* Architecture-dependent code for the Fujitsu FR-V, for GDB, the GNU Debugger.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ft32-tdep.c b/gdb/ft32-tdep.c
index 2ef77a2..f84e225 100644
--- a/gdb/ft32-tdep.c
+++ b/gdb/ft32-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for FT32.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -310,7 +310,7 @@ ft32_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
return sal.end;
}
}
- /* No useable line symbol. Use result of prologue parsing method. */
+ /* No usable line symbol. Use result of prologue parsing method. */
return plg_end;
}
}
diff --git a/gdb/ft32-tdep.h b/gdb/ft32-tdep.h
index ee4a247..73ceed0 100644
--- a/gdb/ft32-tdep.h
+++ b/gdb/ft32-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for the FT32.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/gcore.in b/gdb/gcore-1.in
index 0c40e5a..2f6eb02 100644
--- a/gdb/gcore.in
+++ b/gdb/gcore-1.in
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -20,6 +20,9 @@
# It starts up gdb, attaches to the given PID and invokes the gcore command.
#
+PKGVERSION="@PKGVERSION@"
+VERSION="@VERSION@"
+
# Need to check for -o option, but set default basename to "core".
prefix=core
@@ -29,8 +32,45 @@ dump_all_cmds=()
data_directory_opt=()
-while getopts :ao:d: opt; do
- case "$opt" in
+function print_usage() {
+ prefix="Usage: $0"
+ padding=$(printf '%*s' ${#prefix})
+
+ echo "$prefix [-h|--help] [-v|--version]"
+ echo "$padding [-a] [-o prefix] [-d data-directory]"
+ echo "$padding pid1 [pid2...pidN]"
+}
+
+function print_try_help() {
+ echo "Try '$0 --help' for more information."
+}
+
+function print_help() {
+ print_usage
+ echo
+ echo "Create a core file of a running program using GDB."
+ echo
+ echo " -h, --help Print this message then exit."
+ echo " -v, --version Print version information then exit."
+ echo " -a Dump all memory mappings."
+ echo " -o prefix Use 'prefix.pid' as the core file name."
+ echo " The default prefix is 'core'."
+ echo " -d dir Pass '--data-directory dir' as an argument"
+ echo " to GDB."
+}
+
+function print_version() {
+ echo "GNU gcore (${PKGVERSION}) ${VERSION}"
+}
+
+while getopts vhao:d:-: OPT; do
+ if [ "$OPT" = "-" ]; then
+ OPT="${OPTARG%%=*}"
+ OPTARG="${OPTARG#'$OPT'}"
+ OPTARG="${OPTARG#=}"
+ fi
+
+ case "$OPT" in
a)
case "$OSTYPE" in
linux*)
@@ -45,9 +85,26 @@ while getopts :ao:d: opt; do
d)
data_directory_opt=("--data-directory" "$OPTARG")
;;
+ h | help)
+ print_help
+ exit 0
+ ;;
+ v | version)
+ print_version
+ exit 0
+ ;;
+ \?)
+ # getopts has already output an error message.
+ print_try_help 1>&2
+ exit 2
+ ;;
*)
- echo "usage: @GCORE_TRANSFORM_NAME@ [-a] [-o prefix] [-d data-directory] pid1 [pid2...pidN]"
- exit 2
+ # Unknown single character options are handled by the \?
+ # case above. This is formatted to match the error
+ # getopts gives for an unknown single character option.
+ echo "$0: illegal option -- $OPT" 1>&2
+ print_try_help 1>&2
+ exit 2
;;
esac
done
@@ -56,8 +113,8 @@ shift $((OPTIND-1))
if [ "$#" -eq "0" ]
then
- echo "usage: @GCORE_TRANSFORM_NAME@ [-a] [-o prefix] [-d data-directory] pid1 [pid2...pidN]"
- exit 2
+ print_usage 1>&2
+ exit 1
fi
# Attempt to fetch the absolute path to the gcore script that was
diff --git a/gdb/gcore-elf.c b/gdb/gcore-elf.c
index c88fa08..1e4376d 100644
--- a/gdb/gcore-elf.c
+++ b/gdb/gcore-elf.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/gcore-elf.h b/gdb/gcore-elf.h
index 8217f0b..c43d0df 100644
--- a/gdb/gcore-elf.h
+++ b/gdb/gcore-elf.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/gcore.c b/gdb/gcore.c
index 969a854..fa15d06 100644
--- a/gdb/gcore.c
+++ b/gdb/gcore.c
@@ -1,6 +1,6 @@
/* Generate a core file for the inferior process.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/gcore.h b/gdb/gcore.h
index 21e7a8d..48dc290 100644
--- a/gdb/gcore.h
+++ b/gdb/gcore.h
@@ -1,6 +1,6 @@
/* Support for reading/writing gcore files.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/gdb-code-style.el b/gdb/gdb-code-style.el
index c6e34c2..16e41d9 100644
--- a/gdb/gdb-code-style.el
+++ b/gdb/gdb-code-style.el
@@ -1,6 +1,6 @@
;;; gdb-code-style.el --- code style checker for GDB contributors
-;; Copyright (C) 2012-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2025 Free Software Foundation, Inc.
;; Author: Yao Qi <yao@codesourcery.com>
;; Created: 17 April 2012
diff --git a/gdb/gdb-demangle.c b/gdb/gdb-demangle.c
index ed5aca2..239306a 100644
--- a/gdb/gdb-demangle.c
+++ b/gdb/gdb-demangle.c
@@ -1,6 +1,6 @@
/* Basic C++ demangling support for GDB.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
Written by Fred Fish at Cygnus Support.
diff --git a/gdb/gdb-demangle.h b/gdb/gdb-demangle.h
index 86a8bd6..514481e 100644
--- a/gdb/gdb-demangle.h
+++ b/gdb/gdb-demangle.h
@@ -1,5 +1,5 @@
/* Basic C++ demangling support for GDB.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/gdb-gdb.py.in b/gdb/gdb-gdb.py.in
index 7cab694..7388c6f 100644
--- a/gdb/gdb-gdb.py.in
+++ b/gdb/gdb-gdb.py.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
@@ -122,7 +122,7 @@ class StructTypePrettyPrinter:
class StructMainTypePrettyPrinter:
- """Pretty-print an objet of type main_type"""
+ """Pretty-print an object of type main_type"""
def __init__(self, val):
self.val = val
@@ -164,8 +164,10 @@ class StructMainTypePrettyPrinter:
return "physaddr = 0x%x" % loc_val["physaddr"]
elif loc_kind == "FIELD_LOC_KIND_PHYSNAME":
return "physname = %s" % loc_val["physname"]
- elif loc_kind == "FIELD_LOC_KIND_DWARF_BLOCK":
- return "dwarf_block = %s" % loc_val["dwarf_block"]
+ elif loc_kind == "FIELD_LOC_KIND_DWARF_BLOCK_ADDR":
+ return "dwarf_block_addr = %s" % loc_val["dwarf_block"]
+ elif loc_kind == "FIELD_LOC_KIND_DWARF_BLOCK_BITPOS":
+ return "dwarf_block_bitpos = %s" % loc_val["dwarf_block"]
else:
return "m_loc = ??? (unsupported m_loc_kind value)"
diff --git a/gdb/gdb-stabs.h b/gdb/gdb-stabs.h
index b76abe1..9909129 100644
--- a/gdb/gdb-stabs.h
+++ b/gdb/gdb-stabs.h
@@ -1,5 +1,5 @@
/* Definitions for symbol-reading containing "stabs", for GDB.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support. Written by John Gilmore.
This file is part of GDB.
@@ -20,9 +20,9 @@
#ifndef GDB_GDB_STABS_H
#define GDB_GDB_STABS_H
-/* During initial symbol readin, we need to have a structure to keep
+/* During initial symbol reading, we need to have a structure to keep
track of which psymtabs have which bincls in them. This structure
- is used during readin to setup the list of dependencies within each
+ is used during reading to setup the list of dependencies within each
partial symbol table. */
struct legacy_psymtab;
diff --git a/gdb/gdb.c b/gdb/gdb.c
index 5326df4..6e4358c 100644
--- a/gdb/gdb.c
+++ b/gdb/gdb.c
@@ -1,5 +1,5 @@
/* Main function for CLI gdb.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/gdb_bfd.c b/gdb/gdb_bfd.c
index c233551..06d6f5c 100644
--- a/gdb/gdb_bfd.c
+++ b/gdb/gdb_bfd.c
@@ -1,6 +1,6 @@
/* Definitions for BFD wrappers used by GDB.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -33,7 +33,7 @@
#include "gdbsupport/fileio.h"
#include "inferior.h"
#include "cli/cli-style.h"
-#include <unordered_map>
+#include "gdbsupport/unordered_map.h"
#include "gdbsupport/unordered_set.h"
#if CXX_STD_THREAD
@@ -143,6 +143,13 @@ struct gdb_bfd_data
/* Table of all the bfds this bfd has included. */
std::vector<gdb_bfd_ref_ptr> included_bfds;
+ /* This is used by gdb_bfd_canonicalize_symtab to hold the symbols
+ returned by canonicalization. */
+ std::optional<gdb::def_vector<asymbol *>> symbol_table;
+ /* If an error occurred while canonicalizing the symtab, this holds
+ the error message. */
+ std::string symbol_error;
+
/* The registry. */
registry<bfd> registry_fields;
@@ -1177,6 +1184,54 @@ gdb_bfd_errmsg (bfd_error_type error_tag, char **matching)
return ret;
}
+/* See gdb_bfd.h. */
+
+gdb::array_view<asymbol *>
+gdb_bfd_canonicalize_symtab (bfd *abfd, bool should_throw)
+{
+ struct gdb_bfd_data *gdata = (struct gdb_bfd_data *) bfd_usrdata (abfd);
+
+ if (!gdata->symbol_table.has_value ())
+ {
+ /* Ensure it exists. */
+ gdb::def_vector<asymbol *> &symbol_table
+ = gdata->symbol_table.emplace ();
+
+ long storage_needed = bfd_get_symtab_upper_bound (abfd);
+ if (storage_needed < 0)
+ gdata->symbol_error = bfd_errmsg (bfd_get_error ());
+ else if (storage_needed > 0)
+ {
+ symbol_table.resize (storage_needed / sizeof (asymbol *));
+ long number_of_symbols
+ = bfd_canonicalize_symtab (abfd, symbol_table.data ());
+ if (number_of_symbols < 0)
+ {
+ symbol_table.clear ();
+ gdata->symbol_error = bfd_errmsg (bfd_get_error ());
+ }
+ }
+ }
+
+ if (!gdata->symbol_error.empty ())
+ {
+ if (should_throw)
+ error (_("Cannot parse symbols of \"%s\": %s"),
+ bfd_get_filename (abfd), gdata->symbol_error.c_str ());
+ return {};
+ }
+
+ gdb::def_vector<asymbol *> &symbol_table = *gdata->symbol_table;
+ if (symbol_table.empty ())
+ return {};
+
+ /* bfd_canonicalize_symtab adds a trailing NULL, but don't include
+ this in the array view. */
+ gdb_assert (symbol_table.back () == nullptr);
+ return gdb::make_array_view (symbol_table.data (),
+ symbol_table.size () - 1);
+}
+
/* Implement the 'maint info bfd' command. */
static void
@@ -1207,7 +1262,7 @@ maintenance_info_bfds (const char *arg, int from_tty)
struct bfd_inferior_data
{
- std::unordered_map<std::string, unsigned long> bfd_error_string_counts;
+ gdb::unordered_map<std::string, unsigned long> bfd_error_string_counts;
};
/* Per-inferior data key. */
diff --git a/gdb/gdb_bfd.h b/gdb/gdb_bfd.h
index d35f2d6..41ce5ce 100644
--- a/gdb/gdb_bfd.h
+++ b/gdb/gdb_bfd.h
@@ -1,6 +1,6 @@
/* Definitions for BFD wrappers used by GDB.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -274,4 +274,16 @@ extern std::string gdb_bfd_errmsg (bfd_error_type error_tag, char **matching);
extern void gdb_bfd_init ();
+/* A wrapper for bfd_canonicalize_symtab that caches the result. This
+ is important to avoid excess memory use on repeated calls. See
+ PR gdb/32758. bfd_canonicalize_symtab should not be called directly
+ by other code in gdb.
+
+ When SHOULD_THROW is true (the default), this will throw an
+ exception if symbols could not be read. When SHOULD_THROW is
+ false, an empty view is returned instead. */
+
+extern gdb::array_view<asymbol *> gdb_bfd_canonicalize_symtab
+ (bfd *abfd, bool should_throw = true);
+
#endif /* GDB_GDB_BFD_H */
diff --git a/gdb/gdb_buildall.sh b/gdb/gdb_buildall.sh
index c138c3c..2053333 100644
--- a/gdb/gdb_buildall.sh
+++ b/gdb/gdb_buildall.sh
@@ -2,7 +2,7 @@
# Build script to build GDB with all targets enabled.
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
@@ -261,7 +261,7 @@ echo "done."
# Clean up build directory if necessary.
if ${clean}
then
- echo "cleanning up $dir"
+ echo "cleaning up $dir"
rm -rf ${dir}
fi
diff --git a/gdb/gdb_curses.h b/gdb/gdb_curses.h
index d726864..b9d6514 100644
--- a/gdb/gdb_curses.h
+++ b/gdb/gdb_curses.h
@@ -1,6 +1,6 @@
/* Portable <curses.h>.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/gdb_expat.h b/gdb/gdb_expat.h
index 36cee80..6379cd9 100644
--- a/gdb/gdb_expat.h
+++ b/gdb/gdb_expat.h
@@ -1,6 +1,6 @@
/* Slightly more portable version of <expat.h>.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/gdb_mbuild.sh b/gdb/gdb_mbuild.sh
index 05bca0e..686af4c 100755
--- a/gdb/gdb_mbuild.sh
+++ b/gdb/gdb_mbuild.sh
@@ -3,7 +3,7 @@
# Multi-build script for testing compilation of all maintained
# configs of GDB.
-# Copyright (C) 2002-2024 Free Software Foundation, Inc.
+# Copyright (C) 2002-2025 Free Software Foundation, Inc.
# Contributed by Richard Earnshaw (rearnsha@arm.com)
diff --git a/gdb/gdb_proc_service.h b/gdb/gdb_proc_service.h
index c5e060b..f140adc 100644
--- a/gdb/gdb_proc_service.h
+++ b/gdb/gdb_proc_service.h
@@ -1,5 +1,5 @@
/* <proc_service.h> replacement for systems that don't have it.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/gdb_vfork.h b/gdb/gdb_vfork.h
index 69f4955..4d6b8a5 100644
--- a/gdb/gdb_vfork.h
+++ b/gdb/gdb_vfork.h
@@ -1,5 +1,5 @@
/* GDB-friendly replacement for <vfork.h>.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/gdb_wchar.h b/gdb/gdb_wchar.h
index 365f560..417d5ba 100644
--- a/gdb/gdb_wchar.h
+++ b/gdb/gdb_wchar.h
@@ -1,5 +1,5 @@
/* Wide characters for gdb
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/gdbarch-gen.c b/gdb/gdbarch-gen.c
index 8137ece..32d1659 100644
--- a/gdb/gdbarch-gen.c
+++ b/gdb/gdbarch-gen.c
@@ -3,7 +3,7 @@
/* Dynamic architecture support for GDB, the GNU debugger.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -3562,7 +3562,7 @@ gdbarch_elf_make_msymbol_special_p (struct gdbarch *gdbarch)
}
void
-gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch, asymbol *sym, struct minimal_symbol *msym)
+gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch, const asymbol *sym, struct minimal_symbol *msym)
{
gdb_assert (gdbarch != NULL);
gdb_assert (gdbarch->elf_make_msymbol_special != NULL);
@@ -4575,7 +4575,7 @@ gdbarch_record_special_symbol_p (struct gdbarch *gdbarch)
}
void
-gdbarch_record_special_symbol (struct gdbarch *gdbarch, struct objfile *objfile, asymbol *sym)
+gdbarch_record_special_symbol (struct gdbarch *gdbarch, struct objfile *objfile, const asymbol *sym)
{
gdb_assert (gdbarch != NULL);
gdb_assert (gdbarch->record_special_symbol != NULL);
diff --git a/gdb/gdbarch-gen.h b/gdb/gdbarch-gen.h
index abffcf9..313a8f1 100644
--- a/gdb/gdbarch-gen.h
+++ b/gdb/gdbarch-gen.h
@@ -3,7 +3,7 @@
/* Dynamic architecture support for GDB, the GNU debugger.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -859,7 +859,7 @@ extern void set_gdbarch_stack_frame_destroyed_p (struct gdbarch *gdbarch, gdbarc
/* Process an ELF symbol in the minimal symbol table in a backend-specific
way. Normally this hook is supposed to do nothing, however if required,
- then this hook can be used to apply tranformations to symbols that are
+ then this hook can be used to apply transformations to symbols that are
considered special in some way. For example the MIPS backend uses it
to interpret `st_other' information to mark compressed code symbols so
that they can be treated in the appropriate manner in the processing of
@@ -867,8 +867,8 @@ extern void set_gdbarch_stack_frame_destroyed_p (struct gdbarch *gdbarch, gdbarc
extern bool gdbarch_elf_make_msymbol_special_p (struct gdbarch *gdbarch);
-typedef void (gdbarch_elf_make_msymbol_special_ftype) (asymbol *sym, struct minimal_symbol *msym);
-extern void gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch, asymbol *sym, struct minimal_symbol *msym);
+typedef void (gdbarch_elf_make_msymbol_special_ftype) (const asymbol *sym, struct minimal_symbol *msym);
+extern void gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch, const asymbol *sym, struct minimal_symbol *msym);
extern void set_gdbarch_elf_make_msymbol_special (struct gdbarch *gdbarch, gdbarch_elf_make_msymbol_special_ftype *elf_make_msymbol_special);
typedef void (gdbarch_coff_make_msymbol_special_ftype) (int val, struct minimal_symbol *msym);
@@ -877,7 +877,7 @@ extern void set_gdbarch_coff_make_msymbol_special (struct gdbarch *gdbarch, gdba
/* Process a symbol in the main symbol table in a backend-specific way.
Normally this hook is supposed to do nothing, however if required,
- then this hook can be used to apply tranformations to symbols that
+ then this hook can be used to apply transformations to symbols that
are considered special in some way. This is currently used by the
MIPS backend to make sure compressed code symbols have the ISA bit
set. This in turn is needed for symbol values seen in GDB to match
@@ -1325,8 +1325,8 @@ extern void set_gdbarch_get_siginfo_type (struct gdbarch *gdbarch, gdbarch_get_s
extern bool gdbarch_record_special_symbol_p (struct gdbarch *gdbarch);
-typedef void (gdbarch_record_special_symbol_ftype) (struct gdbarch *gdbarch, struct objfile *objfile, asymbol *sym);
-extern void gdbarch_record_special_symbol (struct gdbarch *gdbarch, struct objfile *objfile, asymbol *sym);
+typedef void (gdbarch_record_special_symbol_ftype) (struct gdbarch *gdbarch, struct objfile *objfile, const asymbol *sym);
+extern void gdbarch_record_special_symbol (struct gdbarch *gdbarch, struct objfile *objfile, const asymbol *sym);
extern void set_gdbarch_record_special_symbol (struct gdbarch *gdbarch, gdbarch_record_special_symbol_ftype *record_special_symbol);
/* Function for the 'catch syscall' feature.
@@ -1389,7 +1389,7 @@ extern void set_gdbarch_stap_register_suffixes (struct gdbarch *gdbarch, const c
(%eax) ;; indirecting eax
- in this case, this prefix would be the charater `('.
+ in this case, this prefix would be the character `('.
Please note that we use the indirection prefix also for register
displacement, e.g., `4(%eax)' on x86. */
@@ -1403,7 +1403,7 @@ extern void set_gdbarch_stap_register_indirection_prefixes (struct gdbarch *gdba
(%eax) ;; indirecting eax
- in this case, this prefix would be the charater `)'.
+ in this case, this prefix would be the character `)'.
Please note that we use the indirection suffix also for register
displacement, e.g., `4(%eax)' on x86. */
@@ -1623,7 +1623,7 @@ typedef void (gdbarch_info_proc_ftype) (struct gdbarch *gdbarch, const char *arg
extern void gdbarch_info_proc (struct gdbarch *gdbarch, const char *args, enum info_proc_what what);
extern void set_gdbarch_info_proc (struct gdbarch *gdbarch, gdbarch_info_proc_ftype *info_proc);
-/* Implement the "info proc" command for core files. Noe that there
+/* Implement the "info proc" command for core files. Note that there
are two "info_proc"-like methods on gdbarch -- one for core files,
one for live targets. */
diff --git a/gdb/gdbarch-selftests.c b/gdb/gdbarch-selftests.c
index dbb9341..c370204 100644
--- a/gdb/gdbarch-selftests.c
+++ b/gdb/gdbarch-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for gdbarch for GDB, the GNU debugger.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -25,8 +25,7 @@
#include "gdbsupport/def-vector.h"
#include "gdbarch.h"
#include "scoped-mock-context.h"
-
-#include <map>
+#include "gdbsupport/unordered_map.h"
namespace selftests {
@@ -128,10 +127,13 @@ register_to_value_test (struct gdbarch *gdbarch)
static void
register_name_test (struct gdbarch *gdbarch)
{
+ if (selftest_skip_warning_arch (gdbarch))
+ return;
+
scoped_mock_context<test_target_ops> mockctx (gdbarch);
/* Track the number of times each register name appears. */
- std::map<const std::string, int> name_counts;
+ gdb::unordered_map<std::string, int> name_counts;
const int num_regs = gdbarch_num_cooked_regs (gdbarch);
for (auto regnum = 0; regnum < num_regs; regnum++)
@@ -179,7 +181,7 @@ check_stack_growth (struct gdbarch *gdbarch)
SELF_CHECK (stack_grows_up != stack_grows_down);
}
-} // namespace selftests
+} /* namespace selftests */
void _initialize_gdbarch_selftests ();
void
diff --git a/gdb/gdbarch.h b/gdb/gdbarch.h
index 786b720..9feb2cc 100644
--- a/gdb/gdbarch.h
+++ b/gdb/gdbarch.h
@@ -1,6 +1,6 @@
/* Dynamic architecture support for GDB, the GNU debugger.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -210,7 +210,7 @@ gdbarch_tdep (struct gdbarch *gdbarch)
information obtained from INFO.ABFD or the global defaults.
The ARCHES parameter is a linked list (sorted most recently used)
- of all the previously created architures for this architecture
+ of all the previously created architectures for this architecture
family. The (possibly NULL) ARCHES->gdbarch can used to access
values from the previously selected architecture for this
architecture family.
diff --git a/gdb/gdbarch.py b/gdb/gdbarch.py
index dd1658d..ec66eea 100755
--- a/gdb/gdbarch.py
+++ b/gdb/gdbarch.py
@@ -2,7 +2,7 @@
# Architecture commands for GDB, the GNU debugger.
#
-# Copyright (C) 1998-2024 Free Software Foundation, Inc.
+# Copyright (C) 1998-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
diff --git a/gdb/gdbarch_components.py b/gdb/gdbarch_components.py
index e0fd74e..ec09d95 100644
--- a/gdb/gdbarch_components.py
+++ b/gdb/gdbarch_components.py
@@ -1,6 +1,6 @@
# Dynamic architecture support for GDB, the GNU debugger.
-# Copyright (C) 1998-2024 Free Software Foundation, Inc.
+# Copyright (C) 1998-2025 Free Software Foundation, Inc.
# This file is part of GDB.
@@ -1498,7 +1498,7 @@ Function(
comment="""
Process an ELF symbol in the minimal symbol table in a backend-specific
way. Normally this hook is supposed to do nothing, however if required,
-then this hook can be used to apply tranformations to symbols that are
+then this hook can be used to apply transformations to symbols that are
considered special in some way. For example the MIPS backend uses it
to interpret `st_other' information to mark compressed code symbols so
that they can be treated in the appropriate manner in the processing of
@@ -1506,7 +1506,7 @@ the main symbol table and DWARF-2 records.
""",
type="void",
name="elf_make_msymbol_special",
- params=[("asymbol *", "sym"), ("struct minimal_symbol *", "msym")],
+ params=[("const asymbol *", "sym"), ("struct minimal_symbol *", "msym")],
predicate=True,
)
@@ -1522,7 +1522,7 @@ Function(
comment="""
Process a symbol in the main symbol table in a backend-specific way.
Normally this hook is supposed to do nothing, however if required,
-then this hook can be used to apply tranformations to symbols that
+then this hook can be used to apply transformations to symbols that
are considered special in some way. This is currently used by the
MIPS backend to make sure compressed code symbols have the ISA bit
set. This in turn is needed for symbol values seen in GDB to match
@@ -2126,7 +2126,7 @@ Record architecture-specific information from the symbol table.
""",
type="void",
name="record_special_symbol",
- params=[("struct objfile *", "objfile"), ("asymbol *", "sym")],
+ params=[("struct objfile *", "objfile"), ("const asymbol *", "sym")],
predicate=True,
)
@@ -2224,7 +2224,7 @@ For example, on x86 the register indirection is written as:
(%eax) ;; indirecting eax
-in this case, this prefix would be the charater `('.
+in this case, this prefix would be the character `('.
Please note that we use the indirection prefix also for register
displacement, e.g., `4(%eax)' on x86.
@@ -2243,7 +2243,7 @@ For example, on x86 the register indirection is written as:
(%eax) ;; indirecting eax
-in this case, this prefix would be the charater `)'.
+in this case, this prefix would be the character `)'.
Please note that we use the indirection suffix also for register
displacement, e.g., `4(%eax)' on x86.
@@ -2552,7 +2552,7 @@ Implement the "info proc" command.
Method(
comment="""
-Implement the "info proc" command for core files. Noe that there
+Implement the "info proc" command for core files. Note that there
are two "info_proc"-like methods on gdbarch -- one for core files,
one for live targets.
""",
diff --git a/gdb/gdbarch_types.py b/gdb/gdbarch_types.py
index b98e60b..bbc1c92 100644
--- a/gdb/gdbarch_types.py
+++ b/gdb/gdbarch_types.py
@@ -1,6 +1,6 @@
# Architecture commands for GDB, the GNU debugger.
#
-# Copyright (C) 1998-2024 Free Software Foundation, Inc.
+# Copyright (C) 1998-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
diff --git a/gdb/gdbcopyright.py b/gdb/gdbcopyright.py
index 36749a2..24ae441 100644
--- a/gdb/gdbcopyright.py
+++ b/gdb/gdbcopyright.py
@@ -1,6 +1,6 @@
# Copyright constant for Python code to use.
#
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
diff --git a/gdb/gdbcore.h b/gdb/gdbcore.h
index 773a75b..e0e3843 100644
--- a/gdb/gdbcore.h
+++ b/gdb/gdbcore.h
@@ -1,6 +1,6 @@
/* Machine independent variables that describe the core file under GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/gdbthread.h b/gdb/gdbthread.h
index ee62153..c561e9a 100644
--- a/gdb/gdbthread.h
+++ b/gdb/gdbthread.h
@@ -1,5 +1,5 @@
/* Multi-process/thread control defs for GDB, the GNU debugger.
- Copyright (C) 1987-2024 Free Software Foundation, Inc.
+ Copyright (C) 1987-2025 Free Software Foundation, Inc.
Contributed by Lynx Real-Time Systems, Inc. Los Gatos, CA.
@@ -70,10 +70,10 @@ extern bool debug_threads;
you want. */
enum thread_state
{
- /* In the frontend's perpective, the thread is stopped. */
+ /* In the frontend's perspective, the thread is stopped. */
THREAD_STOPPED,
- /* In the frontend's perpective, the thread is running. */
+ /* In the frontend's perspective, the thread is running. */
THREAD_RUNNING,
/* The thread is listed, but known to have exited. We keep it
@@ -734,8 +734,8 @@ void thread_change_ptid (process_stratum_target *targ,
/* Iterator function to call a user-provided callback function
once for each known thread. */
-typedef int (*thread_callback_func) (struct thread_info *, void *);
-extern struct thread_info *iterate_over_threads (thread_callback_func, void *);
+typedef gdb::function_view<bool (struct thread_info *)> thread_callback_func;
+extern struct thread_info *iterate_over_threads (thread_callback_func);
/* Pull in the internals of the inferiors/threads ranges and
iterators. Must be done after struct thread_info is defined. */
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index 3f78230..9c57f30 100644
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -1,6 +1,6 @@
/* Support routines for manipulating internal types for GDB.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support, using pieces from other GDB modules.
@@ -902,7 +902,7 @@ operator== (const dynamic_prop &l, const dynamic_prop &r)
return true;
case PROP_CONST:
return l.const_val () == r.const_val ();
- case PROP_ADDR_OFFSET:
+ case PROP_FIELD:
case PROP_LOCEXPR:
case PROP_LOCLIST:
return l.baton () == r.baton ();
@@ -2121,7 +2121,7 @@ is_dynamic_type_internal (struct type *type, bool top_level)
return true;
/* If the field is at a fixed offset, then it is not
dynamic. */
- if (type->field (i).loc_kind () != FIELD_LOC_KIND_DWARF_BLOCK)
+ if (!type->field (i).loc_is_dwarf_block ())
continue;
/* Do not consider C++ virtual base types to be dynamic
due to the field's offset being dynamic; these are
@@ -2146,7 +2146,7 @@ is_dynamic_type (struct type *type)
}
static struct type *resolve_dynamic_type_internal
- (struct type *type, struct property_addr_info *addr_stack,
+ (struct type *type, const property_addr_info *addr_stack,
const frame_info_ptr &frame, bool top_level);
/* Given a dynamic range type (dyn_range_type) and a stack of
@@ -2167,7 +2167,7 @@ static struct type *resolve_dynamic_type_internal
static struct type *
resolve_dynamic_range (struct type *dyn_range_type,
- struct property_addr_info *addr_stack,
+ const property_addr_info *addr_stack,
const frame_info_ptr &frame,
int rank, bool resolve_p = true)
{
@@ -2269,7 +2269,7 @@ resolve_dynamic_range (struct type *dyn_range_type,
static struct type *
resolve_dynamic_array_or_string_1 (struct type *type,
- struct property_addr_info *addr_stack,
+ const property_addr_info *addr_stack,
const frame_info_ptr &frame,
int rank, bool resolve_p)
{
@@ -2397,7 +2397,7 @@ resolve_dynamic_array_or_string_1 (struct type *type,
static struct type *
resolve_dynamic_array_or_string (struct type *type,
- struct property_addr_info *addr_stack,
+ const property_addr_info *addr_stack,
const frame_info_ptr &frame)
{
CORE_ADDR value;
@@ -2490,7 +2490,7 @@ resolve_dynamic_array_or_string (struct type *type,
static struct type *
resolve_dynamic_union (struct type *type,
- struct property_addr_info *addr_stack,
+ const property_addr_info *addr_stack,
const frame_info_ptr &frame)
{
struct type *resolved_type;
@@ -2534,7 +2534,7 @@ variant::matches (ULONGEST value, bool is_unsigned) const
static void
compute_variant_fields_inner (struct type *type,
- struct property_addr_info *addr_stack,
+ const property_addr_info *addr_stack,
const variant_part &part,
std::vector<bool> &flags);
@@ -2549,7 +2549,7 @@ compute_variant_fields_inner (struct type *type,
static void
compute_variant_fields_recurse (struct type *type,
- struct property_addr_info *addr_stack,
+ const property_addr_info *addr_stack,
const variant &variant,
std::vector<bool> &flags,
bool enabled)
@@ -2581,7 +2581,7 @@ compute_variant_fields_recurse (struct type *type,
static void
compute_variant_fields_inner (struct type *type,
- struct property_addr_info *addr_stack,
+ const property_addr_info *addr_stack,
const variant_part &part,
std::vector<bool> &flags)
{
@@ -2650,7 +2650,7 @@ compute_variant_fields_inner (struct type *type,
static void
compute_variant_fields (struct type *type,
struct type *resolved_type,
- struct property_addr_info *addr_stack,
+ const property_addr_info *addr_stack,
const gdb::array_view<variant_part> &parts)
{
/* Assume all fields are included by default. */
@@ -2676,13 +2676,118 @@ compute_variant_fields (struct type *type,
}
}
+/* See gdbtypes.h. */
+
+void
+apply_bit_offset_to_field (struct field &field, LONGEST bit_offset,
+ LONGEST explicit_byte_size)
+{
+ struct type *field_type = field.type ();
+ struct gdbarch *gdbarch = field_type->arch ();
+ LONGEST current_bitpos = field.loc_bitpos ();
+
+ if (gdbarch_byte_order (gdbarch) == BFD_ENDIAN_BIG)
+ {
+ /* For big endian bits, the DW_AT_bit_offset gives the
+ additional bit offset from the MSB of the containing
+ anonymous object to the MSB of the field. We don't
+ have to do anything special since we don't need to
+ know the size of the anonymous object. */
+ field.set_loc_bitpos (current_bitpos + bit_offset);
+ }
+ else
+ {
+ /* For little endian bits, compute the bit offset to the
+ MSB of the anonymous object, subtract off the number of
+ bits from the MSB of the field to the MSB of the
+ object, and then subtract off the number of bits of
+ the field itself. The result is the bit offset of
+ the LSB of the field. */
+ LONGEST object_size = explicit_byte_size;
+ if (object_size == 0)
+ object_size = field_type->length ();
+
+ field.set_loc_bitpos (current_bitpos
+ + 8 * object_size
+ - bit_offset
+ - field.bitsize ());
+ }
+}
+
+/* See gdbtypes.h. */
+
+void
+resolve_dynamic_field (struct field &field,
+ const property_addr_info *addr_stack,
+ const frame_info_ptr &frame)
+{
+ gdb_assert (!field.is_static ());
+
+ if (field.loc_is_dwarf_block ())
+ {
+ dwarf2_locexpr_baton *field_loc
+ = field.loc_dwarf_block ();
+
+ struct dwarf2_property_baton baton;
+ baton.property_type = lookup_pointer_type (field.type ());
+ baton.locexpr = *field_loc;
+
+ struct dynamic_prop prop;
+ prop.set_locexpr (&baton);
+
+ CORE_ADDR vals[1] = {addr_stack->addr};
+ CORE_ADDR addr_or_bitpos;
+ if (dwarf2_evaluate_property (&prop, frame, addr_stack,
+ &addr_or_bitpos, vals))
+ {
+ if (field.loc_kind () == FIELD_LOC_KIND_DWARF_BLOCK_ADDR)
+ field.set_loc_bitpos (TARGET_CHAR_BIT
+ * (addr_or_bitpos - addr_stack->addr));
+ else
+ field.set_loc_bitpos (addr_or_bitpos);
+
+ if (field_loc->is_field_location)
+ {
+ dwarf2_field_location_baton *fl_baton
+ = static_cast<dwarf2_field_location_baton *> (field_loc);
+ apply_bit_offset_to_field (field, fl_baton->bit_offset,
+ fl_baton->explicit_byte_size);
+ }
+ }
+ }
+
+ /* As we know this field is not a static field, the field's
+ field_loc_kind should be FIELD_LOC_KIND_BITPOS. Verify
+ this is the case, but only trigger a simple error rather
+ than an internal error if that fails. While failing
+ that verification indicates a bug in our code, the error
+ is not severe enough to suggest to the user he stops
+ his debugging session because of it. */
+ if (field.loc_kind () != FIELD_LOC_KIND_BITPOS)
+ error (_("Cannot determine struct field location"
+ " (invalid location kind)"));
+
+ struct property_addr_info pinfo;
+ pinfo.type = check_typedef (field.type ());
+ size_t offset = field.loc_bitpos () / TARGET_CHAR_BIT;
+ pinfo.valaddr = addr_stack->valaddr;
+ if (!pinfo.valaddr.empty ())
+ pinfo.valaddr = pinfo.valaddr.slice (offset);
+ pinfo.addr = addr_stack->addr + offset;
+ pinfo.next = addr_stack;
+
+ field.set_type (resolve_dynamic_type_internal (field.type (),
+ &pinfo, frame, false));
+ gdb_assert (field.loc_kind () == FIELD_LOC_KIND_BITPOS);
+}
+
/* Resolve dynamic bounds of members of the struct TYPE to static
bounds. ADDR_STACK is a stack of struct property_addr_info to
be used if needed during the dynamic resolution. */
static struct type *
resolve_dynamic_struct (struct type *type,
- struct property_addr_info *addr_stack,
+ const property_addr_info *addr_stack,
const frame_info_ptr &frame)
{
struct type *resolved_type;
@@ -2710,52 +2815,11 @@ resolve_dynamic_struct (struct type *type,
for (i = 0; i < resolved_type->num_fields (); ++i)
{
unsigned new_bit_length;
- struct property_addr_info pinfo;
if (resolved_type->field (i).is_static ())
continue;
- if (resolved_type->field (i).loc_kind () == FIELD_LOC_KIND_DWARF_BLOCK)
- {
- struct dwarf2_property_baton baton;
- baton.property_type
- = lookup_pointer_type (resolved_type->field (i).type ());
- baton.locexpr = *resolved_type->field (i).loc_dwarf_block ();
-
- struct dynamic_prop prop;
- prop.set_locexpr (&baton);
-
- CORE_ADDR addr;
- if (dwarf2_evaluate_property (&prop, frame, addr_stack, &addr,
- {addr_stack->addr}))
- resolved_type->field (i).set_loc_bitpos
- (TARGET_CHAR_BIT * (addr - addr_stack->addr));
- }
-
- /* As we know this field is not a static field, the field's
- field_loc_kind should be FIELD_LOC_KIND_BITPOS. Verify
- this is the case, but only trigger a simple error rather
- than an internal error if that fails. While failing
- that verification indicates a bug in our code, the error
- is not severe enough to suggest to the user he stops
- his debugging session because of it. */
- if (resolved_type->field (i).loc_kind () != FIELD_LOC_KIND_BITPOS)
- error (_("Cannot determine struct field location"
- " (invalid location kind)"));
-
- pinfo.type = check_typedef (resolved_type->field (i).type ());
- size_t offset = resolved_type->field (i).loc_bitpos () / TARGET_CHAR_BIT;
- pinfo.valaddr = addr_stack->valaddr;
- if (!pinfo.valaddr.empty ())
- pinfo.valaddr = pinfo.valaddr.slice (offset);
- pinfo.addr = addr_stack->addr + offset;
- pinfo.next = addr_stack;
-
- resolved_type->field (i).set_type
- (resolve_dynamic_type_internal (resolved_type->field (i).type (),
- &pinfo, frame, false));
- gdb_assert (resolved_type->field (i).loc_kind ()
- == FIELD_LOC_KIND_BITPOS);
+ resolve_dynamic_field (resolved_type->field (i), addr_stack, frame);
new_bit_length = resolved_type->field (i).loc_bitpos ();
if (resolved_type->field (i).bitsize () != 0)
@@ -2797,7 +2861,7 @@ resolve_dynamic_struct (struct type *type,
static struct type *
resolve_dynamic_type_internal (struct type *type,
- struct property_addr_info *addr_stack,
+ const property_addr_info *addr_stack,
const frame_info_ptr &frame,
bool top_level)
{
@@ -4356,7 +4420,8 @@ check_types_equal (struct type *type1, struct type *type2,
field2->loc_physname ()))
return false;
break;
- case FIELD_LOC_KIND_DWARF_BLOCK:
+ case FIELD_LOC_KIND_DWARF_BLOCK_ADDR:
+ case FIELD_LOC_KIND_DWARF_BLOCK_BITPOS:
{
struct dwarf2_locexpr_baton *block1, *block2;
@@ -5501,8 +5566,12 @@ copy_type_recursive (struct type *type, copied_types_hash_t &copied_types)
new_type->field (i).set_loc_physname
(xstrdup (type->field (i).loc_physname ()));
break;
- case FIELD_LOC_KIND_DWARF_BLOCK:
- new_type->field (i).set_loc_dwarf_block
+ case FIELD_LOC_KIND_DWARF_BLOCK_ADDR:
+ new_type->field (i).set_loc_dwarf_block_addr
+ (type->field (i).loc_dwarf_block ());
+ break;
+ case FIELD_LOC_KIND_DWARF_BLOCK_BITPOS:
+ new_type->field (i).set_loc_dwarf_block_bitpos
(type->field (i).loc_dwarf_block ());
break;
default:
@@ -6115,12 +6184,22 @@ builtin_type (struct objfile *objfile)
return builtin_type (objfile->arch ());
}
-/* See gdbtypes.h. */
+/* See dwarf2/call-site.h. */
CORE_ADDR
call_site::pc () const
{
+ /* dwarf2_per_objfile is defined in dwarf/read.c, so if that is disabled
+ at configure time, we won't be able to use this relocate function.
+ This is dwarf-specific, and would ideally be in call-site.h, but
+ including dwarf2/read.h in dwarf2/call-site.h will lead to things being
+ included in the wrong order and many compilation errors will happen.
+ This is the next best thing. */
+#if defined(DWARF_FORMAT_AVAILABLE)
return per_objfile->relocate (m_unrelocated_pc);
+#else
+ gdb_assert_not_reached ("unexpected call_site object found");
+#endif
}
void _initialize_gdbtypes ();
diff --git a/gdb/gdbtypes.h b/gdb/gdbtypes.h
index 8b00fec..9e2efe9 100644
--- a/gdb/gdbtypes.h
+++ b/gdb/gdbtypes.h
@@ -1,6 +1,6 @@
/* Internal type definitions for GDB.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support, using pieces from other GDB modules.
@@ -56,7 +56,7 @@ struct field;
struct block;
struct value_print_options;
struct language_defn;
-struct dwarf2_per_cu_data;
+struct dwarf2_per_cu;
struct dwarf2_per_objfile;
struct dwarf2_property_baton;
@@ -259,7 +259,7 @@ enum dynamic_prop_kind
{
PROP_UNDEFINED, /* Not defined. */
PROP_CONST, /* Constant. */
- PROP_ADDR_OFFSET, /* Address offset. */
+ PROP_FIELD, /* Field of a type. */
PROP_LOCEXPR, /* Location expression. */
PROP_LOCLIST, /* Location list. */
PROP_VARIANT_PARTS, /* Variant parts. */
@@ -347,7 +347,7 @@ struct dynamic_prop
{
gdb_assert (m_kind == PROP_LOCEXPR
|| m_kind == PROP_LOCLIST
- || m_kind == PROP_ADDR_OFFSET);
+ || m_kind == PROP_FIELD);
return m_data.baton;
}
@@ -364,9 +364,9 @@ struct dynamic_prop
m_data.baton = baton;
}
- void set_addr_offset (const dwarf2_property_baton *baton)
+ void set_field (const dwarf2_property_baton *baton)
{
- m_kind = PROP_ADDR_OFFSET;
+ m_kind = PROP_FIELD;
m_data.baton = baton;
}
@@ -480,7 +480,10 @@ enum field_loc_kind
FIELD_LOC_KIND_ENUMVAL, /**< enumval */
FIELD_LOC_KIND_PHYSADDR, /**< physaddr */
FIELD_LOC_KIND_PHYSNAME, /**< physname */
- FIELD_LOC_KIND_DWARF_BLOCK /**< dwarf_block */
+ /* A DWARF block that computes the address of the field. */
+ FIELD_LOC_KIND_DWARF_BLOCK_ADDR, /**< dwarf_block */
+ /* A DWARF block that computes the bit offset of the field. */
+ FIELD_LOC_KIND_DWARF_BLOCK_BITPOS,
};
/* * A discriminant to determine which field in the
@@ -616,6 +619,13 @@ struct field
return m_loc_kind;
}
+ /* Return true if this location has either "DWARF block" kind. */
+ bool loc_is_dwarf_block () const
+ {
+ return (m_loc_kind == FIELD_LOC_KIND_DWARF_BLOCK_ADDR
+ || m_loc_kind == FIELD_LOC_KIND_DWARF_BLOCK_BITPOS);
+ }
+
LONGEST loc_bitpos () const
{
gdb_assert (m_loc_kind == FIELD_LOC_KIND_BITPOS);
@@ -666,13 +676,19 @@ struct field
dwarf2_locexpr_baton *loc_dwarf_block () const
{
- gdb_assert (m_loc_kind == FIELD_LOC_KIND_DWARF_BLOCK);
+ gdb_assert (loc_is_dwarf_block ());
return m_loc.dwarf_block;
}
- void set_loc_dwarf_block (dwarf2_locexpr_baton *dwarf_block)
+ void set_loc_dwarf_block_addr (dwarf2_locexpr_baton *dwarf_block)
+ {
+ m_loc_kind = FIELD_LOC_KIND_DWARF_BLOCK_ADDR;
+ m_loc.dwarf_block = dwarf_block;
+ }
+
+ void set_loc_dwarf_block_bitpos (dwarf2_locexpr_baton *dwarf_block)
{
- m_loc_kind = FIELD_LOC_KIND_DWARF_BLOCK;
+ m_loc_kind = FIELD_LOC_KIND_DWARF_BLOCK_BITPOS;
m_loc.dwarf_block = dwarf_block;
}
@@ -2629,6 +2645,41 @@ extern struct type *resolve_dynamic_type
"dynamic". */
extern bool is_dynamic_type (struct type *type);
+/* Resolve any dynamic components of FIELD. FIELD is updated.
+ ADDR_STACK and FRAME are used where necessary to supply information
+ for the resolution process; see resolve_dynamic_type.
+ Specifically, after calling this, the field's bit position will be
+ a constant, and the field's type will not have dynamic properties.
+
+ This function assumes that FIELD is not a static field. */
+
+extern void resolve_dynamic_field (struct field &field,
+ const struct property_addr_info *addr_stack,
+ const frame_info_ptr &frame);
+
+/* A helper function that handles the DWARF semantics for
+ DW_AT_bit_offset.
+
+ DWARF 3 specified DW_AT_bit_offset in a funny way, making it simple
+ to use on big-endian targets but somewhat difficult for
+ little-endian. This function handles the logic here.
+
+ While DW_AT_bit_offset was deprecated in DWARF 4 (and removed
+ entirely from DWARF 5), it is still useful because it is the only
+ way to describe a field that appears at a non-constant bit
+ offset.
+
+ FIELD is updated in-place. It is assumed that FIELD already has a
+ constant bit position. BIT_OFFSET is the value of the
+ DW_AT_bit_offset attribute, and EXPLICIT_BYTE_SIZE is either the
+ value of a DW_AT_byte_size from the field's DIE -- indicating an
+ explicit size of the enclosing anonymous object -- or it may be 0,
+ indicating that the field's type size should be used. */
+
+extern void apply_bit_offset_to_field (struct field &field,
+ LONGEST bit_offset,
+ LONGEST explicit_byte_size);
+
extern struct type *check_typedef (struct type *);
extern void check_stub_method_group (struct type *, int);
diff --git a/gdb/glibc-tdep.c b/gdb/glibc-tdep.c
index e3bf00c..12ad3cc 100644
--- a/gdb/glibc-tdep.c
+++ b/gdb/glibc-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the GNU C Library (glibc).
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/glibc-tdep.h b/gdb/glibc-tdep.h
index 17006d0..b73c409 100644
--- a/gdb/glibc-tdep.h
+++ b/gdb/glibc-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for the GNU C Library (glibc).
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/gmp-utils.c b/gdb/gmp-utils.c
index aabdd5f..b48e97c 100644
--- a/gdb/gmp-utils.c
+++ b/gdb/gmp-utils.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/gmp-utils.h b/gdb/gmp-utils.h
index f1c9104..b9d1424 100644
--- a/gdb/gmp-utils.h
+++ b/gdb/gmp-utils.h
@@ -1,6 +1,6 @@
/* Miscellaneous routines making it easier to use GMP within GDB's framework.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/gnu-nat-mig.h b/gdb/gnu-nat-mig.h
index 01c1ed4..06d0748 100644
--- a/gdb/gnu-nat-mig.h
+++ b/gdb/gnu-nat-mig.h
@@ -1,5 +1,5 @@
/* Common things used by the various *gnu-nat.c files
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/gnu-nat.c b/gdb/gnu-nat.c
index c6fe7a9..ea07dd6 100644
--- a/gdb/gnu-nat.c
+++ b/gdb/gnu-nat.c
@@ -1,5 +1,5 @@
/* Interface GDB to the GNU Hurd.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/gnu-nat.h b/gdb/gnu-nat.h
index 700a01a..b77d819 100644
--- a/gdb/gnu-nat.h
+++ b/gdb/gnu-nat.h
@@ -1,5 +1,5 @@
/* Common things used by the various *gnu-nat.c files
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
Written by Miles Bader <miles@gnu.ai.mit.edu>
diff --git a/gdb/gnu-v2-abi.c b/gdb/gnu-v2-abi.c
index 0a9c09e..94efa70 100644
--- a/gdb/gnu-v2-abi.c
+++ b/gdb/gnu-v2-abi.c
@@ -1,6 +1,6 @@
/* Abstraction of GNU v2 abi.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
Contributed by Daniel Berlin <dberlin@redhat.com>
@@ -265,15 +265,9 @@ gnuv2_value_rtti_type (struct value *v, int *full, LONGEST *top, int *using_enc)
if (top && ((*top) >0))
{
if (rtti_type->length () > known_type->length ())
- {
- if (full)
- *full=0;
- }
+ *full = 0;
else
- {
- if (full)
- *full=1;
- }
+ *full = 1;
}
}
else
diff --git a/gdb/gnu-v3-abi.c b/gdb/gnu-v3-abi.c
index b51c4d2..9fbabe4 100644
--- a/gdb/gnu-v3-abi.c
+++ b/gdb/gnu-v3-abi.c
@@ -1,7 +1,7 @@
/* Abstraction of GNU v3 abi.
Contributed by Jim Blandy <jimb@redhat.com>
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -476,7 +476,7 @@ gnuv3_baseclass_offset (struct type *type, int index,
return TYPE_BASECLASS_BITPOS (type, index) / 8;
/* If we have a DWARF expression for the offset, evaluate it. */
- if (type->field (index).loc_kind () == FIELD_LOC_KIND_DWARF_BLOCK)
+ if (type->field (index).loc_kind () == FIELD_LOC_KIND_DWARF_BLOCK_ADDR)
{
struct dwarf2_property_baton baton;
baton.property_type
@@ -1178,7 +1178,7 @@ gnuv3_get_type_from_type_info (struct value *type_info_ptr)
{
/* We have to parse the type name, since in general there is not a
symbol for a type. This is somewhat bogus since there may be a
- mis-parse. Another approach might be to re-use the demangler's
+ mis-parse. Another approach might be to reuse the demangler's
internal form to reconstruct the type somehow. */
std::string type_name = gnuv3_get_typename_from_type_info (type_info_ptr);
expression_up expr (parse_expression (type_name.c_str ()));
diff --git a/gdb/go-exp.y b/gdb/go-exp.y
index 8fd6737..8823503 100644
--- a/gdb/go-exp.y
+++ b/gdb/go-exp.y
@@ -1,6 +1,6 @@
/* YACC parser for Go expressions, for GDB.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/go-lang.c b/gdb/go-lang.c
index 18d3fc1..bad2ccf 100644
--- a/gdb/go-lang.c
+++ b/gdb/go-lang.c
@@ -1,6 +1,6 @@
/* Go language support routines for GDB, the GNU debugger.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/go-lang.h b/gdb/go-lang.h
index 030febc..8391688 100644
--- a/gdb/go-lang.h
+++ b/gdb/go-lang.h
@@ -1,6 +1,6 @@
/* Go language support definitions for GDB, the GNU debugger.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/go-typeprint.c b/gdb/go-typeprint.c
index 7778c71..5269f53 100644
--- a/gdb/go-typeprint.c
+++ b/gdb/go-typeprint.c
@@ -1,6 +1,6 @@
/* Support for printing Go types for GDB, the GNU debugger.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/go-valprint.c b/gdb/go-valprint.c
index 43f279a..3248b6c 100644
--- a/gdb/go-valprint.c
+++ b/gdb/go-valprint.c
@@ -1,6 +1,6 @@
/* Support for printing Go values for GDB, the GNU debugger.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/go32-nat.c b/gdb/go32-nat.c
index 8453366..8dcb22d 100644
--- a/gdb/go32-nat.c
+++ b/gdb/go32-nat.c
@@ -1,5 +1,5 @@
/* Native debugging support for Intel x86 running DJGPP.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Written by Robert Hoehne.
This file is part of GDB.
@@ -697,7 +697,7 @@ go32_nat_target::create_inferior (const char *exec_file,
"not enough memory.\n"));
/* Parse the command line and create redirections. */
- if (strpbrk (args, "<>"))
+ if (strpbrk (args, "<>") != nullptr)
{
if (redir_cmdline_parse (args, &child_cmd) == 0)
args = child_cmd.command;
diff --git a/gdb/gregset.h b/gdb/gregset.h
index 9345625..b77ea6b 100644
--- a/gdb/gregset.h
+++ b/gdb/gregset.h
@@ -1,5 +1,5 @@
/* Interface for functions using gregset and fpregset types.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/gstack-1.in b/gdb/gstack-1.in
index 5e41329..25339d9 100755
--- a/gdb/gstack-1.in
+++ b/gdb/gstack-1.in
@@ -1,6 +1,6 @@
#!/usr/bin/env bash
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,8 +22,8 @@
GDB=${GDB:-$(command -v gdb)}
GDBARGS=${GDBARGS:-}
AWK=${AWK:-}
-PKGVERSION=@PKGVERSION@
-VERSION=@VERSION@
+PKGVERSION="@PKGVERSION@"
+VERSION="@VERSION@"
# Find an appropriate awk interpreter if one was not specified
# via the environment.
@@ -132,7 +132,7 @@ EOF
)
# Run GDB and remove some unwanted noise.
-"$GDB" --quiet -nx --readnever $GDBARGS <<EOF |
+"$GDB" --quiet -nx $GDBARGS <<EOF |
set width 0
set height 0
set pagination no
diff --git a/gdb/guile/guile-internal.h b/gdb/guile/guile-internal.h
index 090badd..60a8bf3 100644
--- a/gdb/guile/guile-internal.h
+++ b/gdb/guile/guile-internal.h
@@ -1,6 +1,6 @@
/* Internal header for GDB/Scheme code.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -449,10 +449,11 @@ extern const struct block *bkscm_scm_to_block
/* scm-cmd.c */
-extern char *gdbscm_parse_command_name (const char *name,
- const char *func_name, int arg_pos,
- struct cmd_list_element ***base_list,
- struct cmd_list_element **start_list);
+extern char *gdbscm_parse_command_name
+ (const char *name, const char *func_name, int arg_pos,
+ struct cmd_list_element ***base_list,
+ struct cmd_list_element **start_list,
+ struct cmd_list_element **prefix_cmd = nullptr);
extern int gdbscm_valid_command_class_p (int command_class);
diff --git a/gdb/guile/guile.c b/gdb/guile/guile.c
index 5358b83..1803df0 100644
--- a/gdb/guile/guile.c
+++ b/gdb/guile/guile.c
@@ -1,6 +1,6 @@
/* General GDB/Guile code.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/guile/guile.h b/gdb/guile/guile.h
index 6ce4864..b90a306 100644
--- a/gdb/guile/guile.h
+++ b/gdb/guile/guile.h
@@ -1,6 +1,6 @@
/* General GDB/Scheme code.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/guile/lib/gdb.scm b/gdb/guile/lib/gdb.scm
index afa6aa3..d0272970 100644
--- a/gdb/guile/lib/gdb.scm
+++ b/gdb/guile/lib/gdb.scm
@@ -1,6 +1,6 @@
;; Scheme side of the gdb module.
;;
-;; Copyright (C) 2014-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2025 Free Software Foundation, Inc.
;;
;; This file is part of GDB.
;;
diff --git a/gdb/guile/lib/gdb/boot.scm b/gdb/guile/lib/gdb/boot.scm
index 31a47d0..b41551b 100644
--- a/gdb/guile/lib/gdb/boot.scm
+++ b/gdb/guile/lib/gdb/boot.scm
@@ -1,6 +1,6 @@
;; Bootstrap the Scheme side of the gdb module.
;;
-;; Copyright (C) 2014-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2025 Free Software Foundation, Inc.
;;
;; This file is part of GDB.
;;
diff --git a/gdb/guile/lib/gdb/experimental.scm b/gdb/guile/lib/gdb/experimental.scm
index 0c79d18..df56f05 100644
--- a/gdb/guile/lib/gdb/experimental.scm
+++ b/gdb/guile/lib/gdb/experimental.scm
@@ -1,7 +1,7 @@
;; Various experimental utilities.
;; Anything in this file can change or disappear.
;;
-;; Copyright (C) 2014-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2025 Free Software Foundation, Inc.
;;
;; This file is part of GDB.
;;
diff --git a/gdb/guile/lib/gdb/init.scm b/gdb/guile/lib/gdb/init.scm
index a675c6c..81a16e5 100644
--- a/gdb/guile/lib/gdb/init.scm
+++ b/gdb/guile/lib/gdb/init.scm
@@ -1,6 +1,6 @@
;; Scheme side of the gdb module.
;;
-;; Copyright (C) 2014-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2025 Free Software Foundation, Inc.
;;
;; This file is part of GDB.
;;
diff --git a/gdb/guile/lib/gdb/iterator.scm b/gdb/guile/lib/gdb/iterator.scm
index f27fd96..14a957b 100644
--- a/gdb/guile/lib/gdb/iterator.scm
+++ b/gdb/guile/lib/gdb/iterator.scm
@@ -1,7 +1,7 @@
;; Iteration utilities.
;; Anything in this file can change or disappear.
;;
-;; Copyright (C) 2014-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2025 Free Software Foundation, Inc.
;;
;; This file is part of GDB.
;;
@@ -62,7 +62,7 @@
(iterator-for-each proc iter)))))
(define-public (iterator-filter pred iter)
- "Return the elements that satify predicate PRED."
+ "Return the elements that satisfy predicate PRED."
(let loop ((result '()))
(let ((next (iterator-next! iter)))
(cond ((end-of-iteration? next) (reverse! result))
diff --git a/gdb/guile/lib/gdb/printing.scm b/gdb/guile/lib/gdb/printing.scm
index 19daddd..3116c7c 100644
--- a/gdb/guile/lib/gdb/printing.scm
+++ b/gdb/guile/lib/gdb/printing.scm
@@ -1,6 +1,6 @@
;; Additional pretty-printer support.
;;
-;; Copyright (C) 2014-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2025 Free Software Foundation, Inc.
;;
;; This file is part of GDB.
;;
diff --git a/gdb/guile/lib/gdb/support.scm b/gdb/guile/lib/gdb/support.scm
index 8b575ef..f508f16 100644
--- a/gdb/guile/lib/gdb/support.scm
+++ b/gdb/guile/lib/gdb/support.scm
@@ -1,6 +1,6 @@
;; Internal support routines.
;;
-;; Copyright (C) 2014-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2025 Free Software Foundation, Inc.
;;
;; This file is part of GDB.
;;
diff --git a/gdb/guile/lib/gdb/types.scm b/gdb/guile/lib/gdb/types.scm
index 7d8d3c6..a7b168c 100644
--- a/gdb/guile/lib/gdb/types.scm
+++ b/gdb/guile/lib/gdb/types.scm
@@ -1,5 +1,5 @@
;; Type utilities.
-;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2025 Free Software Foundation, Inc.
;;
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
diff --git a/gdb/guile/scm-arch.c b/gdb/guile/scm-arch.c
index 02adad0..8704d16 100644
--- a/gdb/guile/scm-arch.c
+++ b/gdb/guile/scm-arch.c
@@ -1,6 +1,6 @@
/* Scheme interface to architecture.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/guile/scm-auto-load.c b/gdb/guile/scm-auto-load.c
index ea87ab7..4413744 100644
--- a/gdb/guile/scm-auto-load.c
+++ b/gdb/guile/scm-auto-load.c
@@ -1,6 +1,6 @@
/* GDB routines for supporting auto-loaded Guile scripts.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/guile/scm-block.c b/gdb/guile/scm-block.c
index 4ca4311..a4e692b 100644
--- a/gdb/guile/scm-block.c
+++ b/gdb/guile/scm-block.c
@@ -1,6 +1,6 @@
/* Scheme interface to blocks.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/guile/scm-breakpoint.c b/gdb/guile/scm-breakpoint.c
index b8a5d82..7765b1e 100644
--- a/gdb/guile/scm-breakpoint.c
+++ b/gdb/guile/scm-breakpoint.c
@@ -1,6 +1,6 @@
/* Scheme interface to breakpoints.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/guile/scm-cmd.c b/gdb/guile/scm-cmd.c
index 8255529..19fb742 100644
--- a/gdb/guile/scm-cmd.c
+++ b/gdb/guile/scm-cmd.c
@@ -1,6 +1,6 @@
/* GDB commands implemented in Scheme.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -457,11 +457,13 @@ cmdscm_completer (struct cmd_list_element *command,
name of the new command. All earlier words must be existing prefix
commands.
- *BASE_LIST is set to the final prefix command's list of
- *sub-commands.
+ *BASE_LIST is set to the final prefix command's list of sub-commands.
START_LIST is the list in which the search starts.
+ When PREFIX_CMD is not NULL then *PREFIX_CMD is set to the prefix
+ command itself, or NULL, if there is no prefix command.
+
This function returns the xmalloc()d name of the new command.
On error a Scheme exception is thrown. */
@@ -469,13 +471,17 @@ char *
gdbscm_parse_command_name (const char *name,
const char *func_name, int arg_pos,
struct cmd_list_element ***base_list,
- struct cmd_list_element **start_list)
+ struct cmd_list_element **start_list,
+ struct cmd_list_element **prefix_cmd)
{
struct cmd_list_element *elt;
int len = strlen (name);
int i, lastchar;
char *msg;
+ if (prefix_cmd != nullptr)
+ *prefix_cmd = nullptr;
+
/* Skip trailing whitespace. */
for (i = len - 1; i >= 0 && (name[i] == ' ' || name[i] == '\t'); --i)
;
@@ -490,9 +496,9 @@ gdbscm_parse_command_name (const char *name,
/* Find first character of the final word. */
for (; i > 0 && valid_cmd_char_p (name[i - 1]); --i)
;
- gdb::unique_xmalloc_ptr<char> result ((char *) xmalloc (lastchar - i + 2));
- memcpy (result.get (), &name[i], lastchar - i + 1);
- result.get ()[lastchar - i + 1] = '\0';
+
+ gdb::unique_xmalloc_ptr<char> result
+ = make_unique_xstrndup (&name[i], lastchar - i + 1);
/* Skip whitespace again. */
for (--i; i >= 0 && (name[i] == ' ' || name[i] == '\t'); --i)
@@ -503,18 +509,21 @@ gdbscm_parse_command_name (const char *name,
return result.release ();
}
- gdb::unique_xmalloc_ptr<char> prefix_text ((char *) xmalloc (i + 2));
- memcpy (prefix_text.get (), name, i + 1);
- prefix_text.get ()[i + 1] = '\0';
+ gdb::unique_xmalloc_ptr<char> prefix_text
+ = make_unique_xstrndup (name, i + 1);
const char *prefix_text2 = prefix_text.get ();
elt = lookup_cmd_1 (&prefix_text2, *start_list, NULL, NULL, 1);
- if (elt == NULL || elt == CMD_LIST_AMBIGUOUS)
+ if (elt == nullptr || elt == CMD_LIST_AMBIGUOUS || *prefix_text2 != '\0')
{
msg = xstrprintf (_("could not find command prefix '%s'"),
prefix_text.get ()).release ();
scm_dynwind_begin ((scm_t_dynwind_flags) 0);
gdbscm_dynwind_xfree (msg);
+ /* Release memory now as the destructors will not be run when the
+ guile exception is thrown. */
+ result = nullptr;
+ prefix_text = nullptr;
gdbscm_out_of_range_error (func_name, arg_pos,
gdbscm_scm_from_c_string (name), msg);
}
@@ -522,6 +531,8 @@ gdbscm_parse_command_name (const char *name,
if (elt->is_prefix ())
{
*base_list = elt->subcommands;
+ if (prefix_cmd != nullptr)
+ *prefix_cmd = elt;
return result.release ();
}
@@ -529,6 +540,10 @@ gdbscm_parse_command_name (const char *name,
prefix_text.get ()).release ();
scm_dynwind_begin ((scm_t_dynwind_flags) 0);
gdbscm_dynwind_xfree (msg);
+ /* Release memory now as the destructors will not be run when the guile
+ exception is thrown. */
+ result = nullptr;
+ prefix_text = nullptr;
gdbscm_out_of_range_error (func_name, arg_pos,
gdbscm_scm_from_c_string (name), msg);
/* NOTREACHED */
@@ -743,8 +758,9 @@ gdbscm_register_command_x (SCM self)
if (cmdscm_is_valid (c_smob))
scm_misc_error (FUNC_NAME, _("command is already registered"), SCM_EOL);
+ struct cmd_list_element *prefix_cmd = nullptr;
cmd_name = gdbscm_parse_command_name (c_smob->name, FUNC_NAME, SCM_ARG1,
- &cmd_list, &cmdlist);
+ &cmd_list, &cmdlist, &prefix_cmd);
c_smob->cmd_name = gdbscm_gc_xstrdup (cmd_name);
xfree (cmd_name);
@@ -753,18 +769,50 @@ gdbscm_register_command_x (SCM self)
{
if (c_smob->is_prefix)
{
- /* If we have our own "invoke" method, then allow unknown
- sub-commands. */
- int allow_unknown = gdbscm_is_true (c_smob->invoke);
+ bool has_invoke = gdbscm_is_true (c_smob->invoke) == 1;
- cmd = add_prefix_cmd (c_smob->cmd_name, c_smob->cmd_class,
- NULL, c_smob->doc, &c_smob->sub_list,
- allow_unknown, cmd_list);
+ if (has_invoke)
+ {
+ cmd = add_prefix_cmd (c_smob->cmd_name, c_smob->cmd_class,
+ NULL, c_smob->doc, &c_smob->sub_list,
+ 1 /* allow_unknown */, cmd_list);
+ cmd->func = cmdscm_function;
+ }
+ else
+ {
+ /* If there is no 'invoke' method, then create the prefix
+ using the standard prefix callbacks. This means that for
+ 'set prefix' the user will get the help text listing all
+ of the sub-commands, and for 'show prefix', the user will
+ see all of the sub-command values. */
+ if (prefix_cmd != nullptr)
+ {
+ while (prefix_cmd->prefix != nullptr)
+ prefix_cmd = prefix_cmd->prefix;
+ }
+
+ bool is_show = (prefix_cmd != nullptr
+ && prefix_cmd->subcommands == &showlist);
+
+ if (is_show)
+ cmd = add_show_prefix_cmd (c_smob->cmd_name,
+ c_smob->cmd_class,
+ c_smob->doc,
+ &c_smob->sub_list,
+ 0 /* allow_unknown */, cmd_list);
+ else
+ cmd = add_basic_prefix_cmd (c_smob->cmd_name,
+ c_smob->cmd_class,
+ c_smob->doc,
+ &c_smob->sub_list,
+ 0 /* allow_unknown */, cmd_list);
+ }
}
else
{
cmd = add_cmd (c_smob->cmd_name, c_smob->cmd_class,
c_smob->doc, cmd_list);
+ cmd->func = cmdscm_function;
}
}
catch (const gdb_exception &except)
@@ -777,7 +825,6 @@ gdbscm_register_command_x (SCM self)
So no more errors after this point. */
/* There appears to be no API to set this. */
- cmd->func = cmdscm_function;
cmd->destroyer = cmdscm_destroyer;
c_smob->command = cmd;
diff --git a/gdb/guile/scm-color.c b/gdb/guile/scm-color.c
index 6ebe252..cde22e5 100644
--- a/gdb/guile/scm-color.c
+++ b/gdb/guile/scm-color.c
@@ -1,6 +1,6 @@
/* GDB parameters implemented in Guile.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -24,6 +24,7 @@
#include "language.h"
#include "arch-utils.h"
#include "guile-internal.h"
+#include "cli/cli-style.h"
/* A GDB color. */
@@ -354,8 +355,14 @@ gdbscm_color_escape_sequence (SCM self, SCM is_fg_scm)
const ui_file_style::color &color = coscm_get_color (self);
SCM_ASSERT_TYPE (gdbscm_is_bool (is_fg_scm), is_fg_scm, SCM_ARG2, FUNC_NAME,
_("boolean"));
- bool is_fg = gdbscm_is_true (is_fg_scm);
- std::string s = color.to_ansi (is_fg);
+
+ std::string s;
+ if (term_cli_styling ())
+ {
+ bool is_fg = gdbscm_is_true (is_fg_scm);
+ s = color.to_ansi (is_fg);
+ }
+
return gdbscm_scm_from_host_string (s.c_str (), s.size ());
}
diff --git a/gdb/guile/scm-disasm.c b/gdb/guile/scm-disasm.c
index 0c7c4ec..1c8fc2d 100644
--- a/gdb/guile/scm-disasm.c
+++ b/gdb/guile/scm-disasm.c
@@ -1,6 +1,6 @@
/* Scheme interface to architecture.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/guile/scm-exception.c b/gdb/guile/scm-exception.c
index 61007de..2861c88 100644
--- a/gdb/guile/scm-exception.c
+++ b/gdb/guile/scm-exception.c
@@ -1,6 +1,6 @@
/* GDB/Scheme exception support.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/guile/scm-frame.c b/gdb/guile/scm-frame.c
index c94fcfe..db35ae5 100644
--- a/gdb/guile/scm-frame.c
+++ b/gdb/guile/scm-frame.c
@@ -1,6 +1,6 @@
/* Scheme interface to stack frames.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/guile/scm-gsmob.c b/gdb/guile/scm-gsmob.c
index b3efad2..7a7a69d 100644
--- a/gdb/guile/scm-gsmob.c
+++ b/gdb/guile/scm-gsmob.c
@@ -1,6 +1,6 @@
/* GDB/Scheme smobs (gsmob is pronounced "jee smob")
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/guile/scm-iterator.c b/gdb/guile/scm-iterator.c
index f4d5344..9c2f0e8 100644
--- a/gdb/guile/scm-iterator.c
+++ b/gdb/guile/scm-iterator.c
@@ -1,6 +1,6 @@
/* Simple iterators for GDB/Scheme.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/guile/scm-lazy-string.c b/gdb/guile/scm-lazy-string.c
index 9f525fa..0c5aa59 100644
--- a/gdb/guile/scm-lazy-string.c
+++ b/gdb/guile/scm-lazy-string.c
@@ -1,6 +1,6 @@
/* Scheme interface to lazy strings.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -38,7 +38,7 @@ struct lazy_string_smob
/* Holds the encoding that will be applied to the string when the string
is printed by GDB. If the encoding is set to NULL then GDB will select
- the most appropriate encoding when the sting is printed.
+ the most appropriate encoding when the string is printed.
Space for this is malloc'd and will be freed when the object is
freed. */
char *encoding;
diff --git a/gdb/guile/scm-math.c b/gdb/guile/scm-math.c
index 7a4a703..6c4ee79 100644
--- a/gdb/guile/scm-math.c
+++ b/gdb/guile/scm-math.c
@@ -1,6 +1,6 @@
/* GDB/Scheme support for math operations on values.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/guile/scm-objfile.c b/gdb/guile/scm-objfile.c
index d6c0559..b15a4f9 100644
--- a/gdb/guile/scm-objfile.c
+++ b/gdb/guile/scm-objfile.c
@@ -1,6 +1,6 @@
/* Scheme interface to objfiles.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/guile/scm-param.c b/gdb/guile/scm-param.c
index 749c5ea..5137847 100644
--- a/gdb/guile/scm-param.c
+++ b/gdb/guile/scm-param.c
@@ -1,6 +1,6 @@
/* GDB parameters implemented in Guile.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -308,13 +308,37 @@ pascm_is_valid (param_smob *p_smob)
return p_smob->commands.set != nullptr;
}
-/* A helper function which return the default documentation string for
- a parameter (which is to say that it's undocumented). */
+
+/* The different types of documentation string. */
+
+enum doc_string_type
+{
+ doc_string_set,
+ doc_string_show,
+ doc_string_description
+};
+
+/* A helper function which returns the default documentation string for
+ a parameter CMD_NAME. The DOC_TYPE indicates which type of
+ documentation string is needed. The returned string is dynamically
+ allocated. */
static char *
-get_doc_string (void)
+get_doc_string (doc_string_type doc_type, const char *cmd_name)
{
- return xstrdup (_("This command is not documented."));
+ if (doc_type == doc_string_description)
+ return xstrdup (_("This command is not documented."));
+ else
+ {
+ gdb_assert (cmd_name != nullptr);
+
+ if (doc_type == doc_string_show)
+ return xstrprintf (_("Show the current value of '%s'."),
+ cmd_name).release ();
+ else
+ return xstrprintf (_("Set the current value of '%s'."),
+ cmd_name).release ();
+ }
}
/* Subroutine of pascm_set_func, pascm_show_func to simplify them.
@@ -990,11 +1014,14 @@ gdbscm_make_parameter (SCM name_scm, SCM rest)
&show_doc_arg_pos, &show_doc,
&initial_value_arg_pos, &initial_value_scm);
- /* If doc is NULL, leave it NULL. See add_setshow_cmd_full. */
+ if (doc == nullptr)
+ doc = get_doc_string (doc_string_description, nullptr);
+ else if (*doc == '\0')
+ doc = nullptr;
if (set_doc == NULL)
- set_doc = get_doc_string ();
+ set_doc = get_doc_string (doc_string_set, name);
if (show_doc == NULL)
- show_doc = get_doc_string ();
+ show_doc = get_doc_string (doc_string_show, name);
s = name;
name = gdbscm_canonicalize_command_name (s, 0);
diff --git a/gdb/guile/scm-ports.c b/gdb/guile/scm-ports.c
index ab78b5c..f3e3ec8 100644
--- a/gdb/guile/scm-ports.c
+++ b/gdb/guile/scm-ports.c
@@ -1,7 +1,7 @@
/* Support for connecting Guile's stdio to GDB's.
as well as r/w memory via ports.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -336,9 +336,15 @@ ioscm_flush (SCM port)
return;
if (scm_is_eq (port, error_port_scm))
- gdb_flush (gdb_stderr);
+ {
+ if (gdb_stderr != nullptr)
+ gdb_flush (gdb_stderr);
+ }
else
- gdb_flush (gdb_stdout);
+ {
+ if (gdb_stdout != nullptr)
+ gdb_flush (gdb_stdout);
+ }
}
#else /* !USING_GUILE_BEFORE_2_2 */
diff --git a/gdb/guile/scm-pretty-print.c b/gdb/guile/scm-pretty-print.c
index 99fa243..c4bb052 100644
--- a/gdb/guile/scm-pretty-print.c
+++ b/gdb/guile/scm-pretty-print.c
@@ -1,6 +1,6 @@
/* GDB/Scheme pretty-printing.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -597,9 +597,9 @@ ppscm_get_display_hint_enum (SCM printer)
if (scm_is_string (hint))
{
if (gdbscm_is_true (scm_string_equal_p (hint, ppscm_array_string)))
- return HINT_STRING;
+ return HINT_ARRAY;
if (gdbscm_is_true (scm_string_equal_p (hint, ppscm_map_string)))
- return HINT_STRING;
+ return HINT_MAP;
if (gdbscm_is_true (scm_string_equal_p (hint, ppscm_string_string)))
return HINT_STRING;
return HINT_ERROR;
diff --git a/gdb/guile/scm-progspace.c b/gdb/guile/scm-progspace.c
index fcdcca2..757d66d 100644
--- a/gdb/guile/scm-progspace.c
+++ b/gdb/guile/scm-progspace.c
@@ -1,6 +1,6 @@
/* Guile interface to program spaces.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/guile/scm-safe-call.c b/gdb/guile/scm-safe-call.c
index bc0a1e6..95dcf3a 100644
--- a/gdb/guile/scm-safe-call.c
+++ b/gdb/guile/scm-safe-call.c
@@ -1,6 +1,6 @@
/* GDB/Scheme support for safe calls into the Guile interpreter.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/guile/scm-string.c b/gdb/guile/scm-string.c
index a249bcc..d99cf3d 100644
--- a/gdb/guile/scm-string.c
+++ b/gdb/guile/scm-string.c
@@ -1,6 +1,6 @@
/* GDB/Scheme charset interface.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/guile/scm-symbol.c b/gdb/guile/scm-symbol.c
index 368a598..8c2ae24 100644
--- a/gdb/guile/scm-symbol.c
+++ b/gdb/guile/scm-symbol.c
@@ -1,6 +1,6 @@
/* Scheme interface to symbols.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/guile/scm-symtab.c b/gdb/guile/scm-symtab.c
index 2fd4b03..e337a4b 100644
--- a/gdb/guile/scm-symtab.c
+++ b/gdb/guile/scm-symtab.c
@@ -1,6 +1,6 @@
/* Scheme interface to symbol tables.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/guile/scm-type.c b/gdb/guile/scm-type.c
index f228762..5114579 100644
--- a/gdb/guile/scm-type.c
+++ b/gdb/guile/scm-type.c
@@ -1,6 +1,6 @@
/* Scheme interface to types.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/guile/scm-utils.c b/gdb/guile/scm-utils.c
index 45f42ba..e782637 100644
--- a/gdb/guile/scm-utils.c
+++ b/gdb/guile/scm-utils.c
@@ -1,6 +1,6 @@
/* General utility routines for GDB/Scheme code.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/guile/scm-value.c b/gdb/guile/scm-value.c
index 0f4a6a4..3207980 100644
--- a/gdb/guile/scm-value.c
+++ b/gdb/guile/scm-value.c
@@ -1,6 +1,6 @@
/* Scheme interface to values.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -604,7 +604,7 @@ gdbscm_value_dynamic_type (SCM self)
type = value_rtti_type (value, NULL, NULL, NULL);
else
{
- /* Re-use object's static type. */
+ /* Reuse object's static type. */
type = NULL;
}
}
diff --git a/gdb/h8300-tdep.c b/gdb/h8300-tdep.c
index a845900..db54438 100644
--- a/gdb/h8300-tdep.c
+++ b/gdb/h8300-tdep.c
@@ -1,6 +1,6 @@
/* Target-machine dependent code for Renesas H8/300, for GDB.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -541,7 +541,7 @@ h8300_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
/* Found a line number, use it as end of prologue. */
return sal.end;
- /* No useable line symbol. Use prologue parsing method. */
+ /* No usable line symbol. Use prologue parsing method. */
h8300_init_frame_cache (gdbarch, &cache);
return h8300_analyze_prologue (gdbarch, func_addr, func_end, &cache);
}
diff --git a/gdb/hppa-bsd-tdep.c b/gdb/hppa-bsd-tdep.c
index 67fee6b..db6c92f 100644
--- a/gdb/hppa-bsd-tdep.c
+++ b/gdb/hppa-bsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for HP PA-RISC BSD's.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/hppa-bsd-tdep.h b/gdb/hppa-bsd-tdep.h
index 54599ab..64e45b7 100644
--- a/gdb/hppa-bsd-tdep.h
+++ b/gdb/hppa-bsd-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for HP PA-RISC BSD's.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/hppa-linux-nat.c b/gdb/hppa-linux-nat.c
index 96faeb3..62b3294 100644
--- a/gdb/hppa-linux-nat.c
+++ b/gdb/hppa-linux-nat.c
@@ -1,6 +1,6 @@
/* Functions specific to running GDB native on HPPA running GNU/Linux.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/hppa-linux-offsets.h b/gdb/hppa-linux-offsets.h
index 958afd1..bbbd968 100644
--- a/gdb/hppa-linux-offsets.h
+++ b/gdb/hppa-linux-offsets.h
@@ -1,6 +1,6 @@
/* Register offsets for HPPA running GNU/Linux.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/hppa-linux-tdep.c b/gdb/hppa-linux-tdep.c
index f43a5e7..16cdd45 100644
--- a/gdb/hppa-linux-tdep.c
+++ b/gdb/hppa-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux running on PA-RISC, for GDB.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -322,7 +322,7 @@ static const struct frame_unwind_legacy hppa_linux_sigtramp_frame_unwind (
/* Attempt to find (and return) the global pointer for the given
function.
- This is a rather nasty bit of code searchs for the .dynamic section
+ This rather nasty bit of code searches for the .dynamic section
in the objfile corresponding to the pc of the function we're trying
to call. Once it finds the addresses at which the .dynamic section
lives in the child process, it scans the Elf32_Dyn entries for a
diff --git a/gdb/hppa-netbsd-nat.c b/gdb/hppa-netbsd-nat.c
index e7df997..f57d650 100644
--- a/gdb/hppa-netbsd-nat.c
+++ b/gdb/hppa-netbsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for NetBSD/hppa.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/hppa-netbsd-tdep.c b/gdb/hppa-netbsd-tdep.c
index c71e191..e52e181 100644
--- a/gdb/hppa-netbsd-tdep.c
+++ b/gdb/hppa-netbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for NetBSD/hppa
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/hppa-obsd-nat.c b/gdb/hppa-obsd-nat.c
index 566903a..d879835 100644
--- a/gdb/hppa-obsd-nat.c
+++ b/gdb/hppa-obsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for OpenBSD/hppa.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/hppa-obsd-tdep.c b/gdb/hppa-obsd-tdep.c
index fed9637..d2144f9 100644
--- a/gdb/hppa-obsd-tdep.c
+++ b/gdb/hppa-obsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for OpenBSD/hppa
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c
index 1fb68f2..3c9dde2 100644
--- a/gdb/hppa-tdep.c
+++ b/gdb/hppa-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the HP PA-RISC architecture.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
Contributed by the Center for Software Science at the
University of Utah (pa-gdb-bugs@cs.utah.edu).
diff --git a/gdb/hppa-tdep.h b/gdb/hppa-tdep.h
index e1143a5..0015321 100644
--- a/gdb/hppa-tdep.h
+++ b/gdb/hppa-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for the HP PA-RISC architecture.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i386-bsd-nat.c b/gdb/i386-bsd-nat.c
index e1db6c7..ae9e090 100644
--- a/gdb/i386-bsd-nat.c
+++ b/gdb/i386-bsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for modern i386 BSD's.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i386-bsd-nat.h b/gdb/i386-bsd-nat.h
index 54061ab..b11fd7e 100644
--- a/gdb/i386-bsd-nat.h
+++ b/gdb/i386-bsd-nat.h
@@ -1,6 +1,6 @@
/* Native-dependent code for modern i386 BSD's.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i386-bsd-tdep.c b/gdb/i386-bsd-tdep.c
index ba7817a..eedce22 100644
--- a/gdb/i386-bsd-tdep.c
+++ b/gdb/i386-bsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for i386 BSD's.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i386-darwin-nat.c b/gdb/i386-darwin-nat.c
index 55c6123..08d3a71 100644
--- a/gdb/i386-darwin-nat.c
+++ b/gdb/i386-darwin-nat.c
@@ -1,5 +1,5 @@
/* Darwin support for GDB, the GNU debugger.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Apple Computer, Inc.
diff --git a/gdb/i386-darwin-tdep.c b/gdb/i386-darwin-tdep.c
index 0481296..6180e02 100644
--- a/gdb/i386-darwin-tdep.c
+++ b/gdb/i386-darwin-tdep.c
@@ -1,5 +1,5 @@
/* Darwin support for GDB, the GNU debugger.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Apple Computer, Inc.
diff --git a/gdb/i386-darwin-tdep.h b/gdb/i386-darwin-tdep.h
index 7ccdeec..e4f484f 100644
--- a/gdb/i386-darwin-tdep.h
+++ b/gdb/i386-darwin-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for Darwin x86.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i386-dicos-tdep.c b/gdb/i386-dicos-tdep.c
index 9859c85..d3f19e2 100644
--- a/gdb/i386-dicos-tdep.c
+++ b/gdb/i386-dicos-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for DICOS running on i386's, for GDB.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i386-fbsd-nat.c b/gdb/i386-fbsd-nat.c
index d9f4067..77f0edd 100644
--- a/gdb/i386-fbsd-nat.c
+++ b/gdb/i386-fbsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for FreeBSD/i386.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -92,7 +92,7 @@ i386_fbsd_nat_target::fetch_registers (struct regcache *regcache, int regnum)
/* There is no i386_fxsave_supplies or i386_xsave_supplies.
Instead, the earlier register sets return early if the request
- was for a specific register that was already satisified to avoid
+ was for a specific register that was already satisfied to avoid
fetching the FPU/XSAVE state unnecessarily. */
#ifdef PT_GETXSTATE_INFO
@@ -171,7 +171,7 @@ i386_fbsd_nat_target::store_registers (struct regcache *regcache, int regnum)
/* There is no i386_fxsave_supplies or i386_xsave_supplies.
Instead, the earlier register sets return early if the request
- was for a specific register that was already satisified to avoid
+ was for a specific register that was already satisfied to avoid
fetching the FPU/XSAVE state unnecessarily. */
#ifdef PT_GETXSTATE_INFO
diff --git a/gdb/i386-fbsd-tdep.c b/gdb/i386-fbsd-tdep.c
index d6d477a..72237d8 100644
--- a/gdb/i386-fbsd-tdep.c
+++ b/gdb/i386-fbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for FreeBSD/i386.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i386-fbsd-tdep.h b/gdb/i386-fbsd-tdep.h
index 3b953e5..70ad32f 100644
--- a/gdb/i386-fbsd-tdep.h
+++ b/gdb/i386-fbsd-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for FreeBSD x86.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i386-gnu-tdep.c b/gdb/i386-gnu-tdep.c
index 98e1151..97fbc69 100644
--- a/gdb/i386-gnu-tdep.c
+++ b/gdb/i386-gnu-tdep.c
@@ -1,5 +1,5 @@
/* Target-dependent code for the GNU Hurd.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -21,6 +21,7 @@
#include "osabi.h"
#include "solib-svr4.h"
+#include "glibc-tdep.h"
#include "i386-tdep.h"
/* Recognizing signal handler frames. */
@@ -72,8 +73,7 @@ i386_gnu_sigtramp_start (const frame_info_ptr &this_frame)
return pc;
}
-/* Return whether THIS_FRAME corresponds to a GNU/Linux sigtramp
- routine. */
+/* Return whether THIS_FRAME corresponds to a Hurd sigtramp routine. */
static int
i386_gnu_sigtramp_p (const frame_info_ptr &this_frame)
@@ -178,9 +178,18 @@ i386gnu_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
/* GNU uses ELF. */
i386_elf_init_abi (info, gdbarch);
+ /* Hurd uses SVR4-style shared libraries. */
+ set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
set_solib_svr4_fetch_link_map_offsets
(gdbarch, svr4_ilp32_fetch_link_map_offsets);
+ /* Hurd uses the dynamic linker included in the GNU C Library. */
+ set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver);
+
+ /* Enable TLS support. */
+ set_gdbarch_fetch_tls_load_module_address (gdbarch,
+ svr4_fetch_objfile_link_map);
+
tdep->gregset_reg_offset = i386gnu_gregset_reg_offset;
tdep->gregset_num_regs = ARRAY_SIZE (i386gnu_gregset_reg_offset);
tdep->sizeof_gregset = 19 * 4;
diff --git a/gdb/i386-go32-tdep.c b/gdb/i386-go32-tdep.c
index 738b258..4db09b3 100644
--- a/gdb/i386-go32-tdep.c
+++ b/gdb/i386-go32-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for DJGPP/i386.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i386-linux-nat.c b/gdb/i386-linux-nat.c
index d2cbe51..a5d5582 100644
--- a/gdb/i386-linux-nat.c
+++ b/gdb/i386-linux-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux i386.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i386-linux-tdep.c b/gdb/i386-linux-tdep.c
index 9dec83a..4b05cc6 100644
--- a/gdb/i386-linux-tdep.c
+++ b/gdb/i386-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux i386.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -370,6 +370,16 @@ i386_all_but_ip_registers_record (struct regcache *regcache)
return 0;
}
+enum i386_syscall
+{
+#define SYSCALL(NUMBER,NAME) \
+ i386_sys_ ## NAME = NUMBER,
+
+#include "gdb/i386-syscalls.def"
+
+#undef SYSCALL
+};
+
/* i386_canonicalize_syscall maps from the native i386 Linux set
of syscall ids into a canonical set of syscall ids used by
process record (a mostly trivial mapping, since the canonical
@@ -378,12 +388,486 @@ i386_all_but_ip_registers_record (struct regcache *regcache)
static enum gdb_syscall
i386_canonicalize_syscall (int syscall)
{
- enum { i386_syscall_max = 499 };
-
- if (syscall <= i386_syscall_max)
- return (enum gdb_syscall) syscall;
- else
- return gdb_sys_no_syscall;
+ switch ((enum i386_syscall) syscall)
+ {
+#define SYSCALL_MAP(SYSCALL) \
+ case i386_sys_ ## SYSCALL: \
+ return gdb_sys_ ## SYSCALL
+
+#define SYSCALL_MAP_RENAME(SYSCALL,GDB_SYSCALL) \
+ case i386_sys_##SYSCALL: \
+ return GDB_SYSCALL;
+
+#define UNSUPPORTED_SYSCALL_MAP(SYSCALL) \
+ case i386_sys_ ## SYSCALL: \
+ return gdb_sys_no_syscall;
+
+ SYSCALL_MAP (restart_syscall);
+ SYSCALL_MAP (exit);
+ SYSCALL_MAP (fork);
+ SYSCALL_MAP (read);
+ SYSCALL_MAP (write);
+ SYSCALL_MAP (open);
+ SYSCALL_MAP (close);
+ SYSCALL_MAP (waitpid);
+ SYSCALL_MAP (creat);
+ SYSCALL_MAP (link);
+ SYSCALL_MAP (unlink);
+ SYSCALL_MAP (execve);
+ SYSCALL_MAP (chdir);
+ SYSCALL_MAP (time);
+ SYSCALL_MAP (mknod);
+ SYSCALL_MAP (chmod);
+ SYSCALL_MAP_RENAME (lchown, gdb_sys_lchown16);
+ SYSCALL_MAP_RENAME (break, gdb_sys_ni_syscall17);
+ SYSCALL_MAP_RENAME (oldstat, gdb_sys_stat);
+ SYSCALL_MAP (lseek);
+ SYSCALL_MAP (getpid);
+ SYSCALL_MAP (mount);
+ SYSCALL_MAP_RENAME (umount, gdb_sys_oldumount);
+ SYSCALL_MAP_RENAME (setuid, gdb_sys_setuid16);
+ SYSCALL_MAP_RENAME (getuid, gdb_sys_getuid16);
+ SYSCALL_MAP (stime);
+ SYSCALL_MAP (ptrace);
+ SYSCALL_MAP (alarm);
+ SYSCALL_MAP_RENAME (oldfstat, gdb_sys_fstat);
+ SYSCALL_MAP (pause);
+ SYSCALL_MAP (utime);
+ SYSCALL_MAP_RENAME (stty, gdb_sys_ni_syscall31);
+ SYSCALL_MAP_RENAME (gtty, gdb_sys_ni_syscall32);
+ SYSCALL_MAP (access);
+ SYSCALL_MAP (nice);
+ SYSCALL_MAP_RENAME (ftime, gdb_sys_ni_syscall35);
+ SYSCALL_MAP (sync);
+ SYSCALL_MAP (kill);
+ SYSCALL_MAP (rename);
+ SYSCALL_MAP (mkdir);
+ SYSCALL_MAP (rmdir);
+ SYSCALL_MAP (dup);
+ SYSCALL_MAP (pipe);
+ SYSCALL_MAP (times);
+ SYSCALL_MAP_RENAME (prof, gdb_sys_ni_syscall44);
+ SYSCALL_MAP (brk);
+ SYSCALL_MAP_RENAME (setgid, gdb_sys_setgid16);
+ SYSCALL_MAP_RENAME (getgid, gdb_sys_getgid16);
+ SYSCALL_MAP (signal);
+ SYSCALL_MAP_RENAME (geteuid, gdb_sys_geteuid16);
+ SYSCALL_MAP_RENAME (getegid, gdb_sys_getegid16);
+ SYSCALL_MAP (acct);
+ SYSCALL_MAP_RENAME (umount2, gdb_sys_umount);
+ SYSCALL_MAP_RENAME (lock, gdb_sys_ni_syscall53);
+ SYSCALL_MAP (ioctl);
+ SYSCALL_MAP (fcntl);
+ SYSCALL_MAP_RENAME (mpx, gdb_sys_ni_syscall56);
+ SYSCALL_MAP (setpgid);
+ SYSCALL_MAP_RENAME (ulimit, gdb_sys_ni_syscall58);
+ SYSCALL_MAP_RENAME (oldolduname, gdb_sys_olduname);
+ SYSCALL_MAP (umask);
+ SYSCALL_MAP (chroot);
+ SYSCALL_MAP (ustat);
+ SYSCALL_MAP (dup2);
+ SYSCALL_MAP (getppid);
+ SYSCALL_MAP (getpgrp);
+ SYSCALL_MAP (setsid);
+ SYSCALL_MAP (sigaction);
+ SYSCALL_MAP (sgetmask);
+ SYSCALL_MAP (ssetmask);
+ SYSCALL_MAP_RENAME (setreuid, gdb_sys_setreuid16);
+ SYSCALL_MAP_RENAME (setregid, gdb_sys_setregid16);
+ SYSCALL_MAP (sigsuspend);
+ SYSCALL_MAP (sigpending);
+ SYSCALL_MAP (sethostname);
+ SYSCALL_MAP (setrlimit);
+ SYSCALL_MAP_RENAME (getrlimit, gdb_sys_old_getrlimit);
+ SYSCALL_MAP (getrusage);
+ SYSCALL_MAP (gettimeofday);
+ SYSCALL_MAP (settimeofday);
+ SYSCALL_MAP_RENAME (getgroups, gdb_sys_getgroups16);
+ SYSCALL_MAP_RENAME (setgroups, gdb_sys_setgroups16);
+ SYSCALL_MAP_RENAME (select, gdb_sys_old_select);
+ SYSCALL_MAP (symlink);
+ SYSCALL_MAP_RENAME (oldlstat, gdb_sys_lstat);
+ SYSCALL_MAP (readlink);
+ SYSCALL_MAP (uselib);
+ SYSCALL_MAP (swapon);
+ SYSCALL_MAP (reboot);
+ SYSCALL_MAP_RENAME (readdir, gdb_sys_old_readdir);
+ SYSCALL_MAP_RENAME (mmap, gdb_sys_old_mmap);
+ SYSCALL_MAP (munmap);
+ SYSCALL_MAP (truncate);
+ SYSCALL_MAP (ftruncate);
+ SYSCALL_MAP (fchmod);
+ SYSCALL_MAP_RENAME (fchown, gdb_sys_fchown16);
+ SYSCALL_MAP (getpriority);
+ SYSCALL_MAP (setpriority);
+ SYSCALL_MAP_RENAME (profil, gdb_sys_ni_syscall98);
+ SYSCALL_MAP (statfs);
+ SYSCALL_MAP (fstatfs);
+ SYSCALL_MAP (ioperm);
+ SYSCALL_MAP (socketcall);
+ SYSCALL_MAP (syslog);
+ SYSCALL_MAP (setitimer);
+ SYSCALL_MAP (getitimer);
+ SYSCALL_MAP_RENAME (stat, gdb_sys_newstat);
+ SYSCALL_MAP_RENAME (lstat, gdb_sys_newlstat);
+ SYSCALL_MAP_RENAME (fstat, gdb_sys_newfstat);
+ SYSCALL_MAP_RENAME (olduname, gdb_sys_uname);
+ SYSCALL_MAP (iopl);
+ SYSCALL_MAP (vhangup);
+ SYSCALL_MAP_RENAME (idle, gdb_sys_ni_syscall112);
+ SYSCALL_MAP (vm86old);
+ SYSCALL_MAP (wait4);
+ SYSCALL_MAP (swapoff);
+ SYSCALL_MAP (sysinfo);
+ SYSCALL_MAP (ipc);
+ SYSCALL_MAP (fsync);
+ SYSCALL_MAP (sigreturn);
+ SYSCALL_MAP (clone);
+ SYSCALL_MAP (setdomainname);
+ SYSCALL_MAP_RENAME (uname, gdb_sys_newuname);
+ SYSCALL_MAP (modify_ldt);
+ SYSCALL_MAP (adjtimex);
+ SYSCALL_MAP (mprotect);
+ SYSCALL_MAP (sigprocmask);
+ SYSCALL_MAP_RENAME (create_module, gdb_sys_ni_syscall127);
+ SYSCALL_MAP (init_module);
+ SYSCALL_MAP (delete_module);
+ SYSCALL_MAP_RENAME (get_kernel_syms, gdb_sys_ni_syscall130);
+ SYSCALL_MAP (quotactl);
+ SYSCALL_MAP (getpgid);
+ SYSCALL_MAP (fchdir);
+ SYSCALL_MAP (bdflush);
+ SYSCALL_MAP (sysfs);
+ SYSCALL_MAP (personality);
+ SYSCALL_MAP_RENAME (afs_syscall, gdb_sys_ni_syscall137);
+ SYSCALL_MAP_RENAME (setfsuid, gdb_sys_setfsuid16);
+ SYSCALL_MAP_RENAME (setfsgid, gdb_sys_setfsgid16);
+ SYSCALL_MAP_RENAME (_llseek, gdb_sys_llseek);
+ SYSCALL_MAP (getdents);
+ SYSCALL_MAP_RENAME (_newselect, gdb_sys_select);
+ SYSCALL_MAP (flock);
+ SYSCALL_MAP (msync);
+ SYSCALL_MAP (readv);
+ SYSCALL_MAP (writev);
+ SYSCALL_MAP (getsid);
+ SYSCALL_MAP (fdatasync);
+ SYSCALL_MAP_RENAME (_sysctl, gdb_sys_sysctl);
+ SYSCALL_MAP (mlock);
+ SYSCALL_MAP (munlock);
+ SYSCALL_MAP (mlockall);
+ SYSCALL_MAP (munlockall);
+ SYSCALL_MAP (sched_setparam);
+ SYSCALL_MAP (sched_getparam);
+ SYSCALL_MAP (sched_setscheduler);
+ SYSCALL_MAP (sched_getscheduler);
+ SYSCALL_MAP (sched_yield);
+ SYSCALL_MAP (sched_get_priority_max);
+ SYSCALL_MAP (sched_get_priority_min);
+ SYSCALL_MAP (sched_rr_get_interval);
+ SYSCALL_MAP (nanosleep);
+ SYSCALL_MAP (mremap);
+ SYSCALL_MAP_RENAME (setresuid, gdb_sys_setresuid16);
+ SYSCALL_MAP_RENAME (getresuid, gdb_sys_getresuid16);
+ SYSCALL_MAP (vm86);
+ SYSCALL_MAP_RENAME (query_module, gdb_sys_ni_syscall167);
+ SYSCALL_MAP (poll);
+ SYSCALL_MAP (nfsservctl);
+ SYSCALL_MAP_RENAME (setresgid, gdb_sys_setresgid16);
+ SYSCALL_MAP_RENAME (getresgid, gdb_sys_getresgid16);
+ SYSCALL_MAP (prctl);
+ SYSCALL_MAP (rt_sigreturn);
+ SYSCALL_MAP (rt_sigaction);
+ SYSCALL_MAP (rt_sigprocmask);
+ SYSCALL_MAP (rt_sigpending);
+ SYSCALL_MAP (rt_sigtimedwait);
+ SYSCALL_MAP (rt_sigqueueinfo);
+ SYSCALL_MAP (rt_sigsuspend);
+ SYSCALL_MAP (pread64);
+ SYSCALL_MAP (pwrite64);
+ SYSCALL_MAP_RENAME (chown, gdb_sys_chown16);
+ SYSCALL_MAP (getcwd);
+ SYSCALL_MAP (capget);
+ SYSCALL_MAP (capset);
+ SYSCALL_MAP (sigaltstack);
+ SYSCALL_MAP (sendfile);
+ SYSCALL_MAP_RENAME (getpmsg, gdb_sys_ni_syscall188);
+ SYSCALL_MAP_RENAME (putpmsg, gdb_sys_ni_syscall189);
+ SYSCALL_MAP (vfork);
+ SYSCALL_MAP_RENAME (ugetrlimit, gdb_sys_getrlimit);
+ SYSCALL_MAP (mmap2);
+ SYSCALL_MAP (truncate64);
+ SYSCALL_MAP (ftruncate64);
+ SYSCALL_MAP (stat64);
+ SYSCALL_MAP (lstat64);
+ SYSCALL_MAP (fstat64);
+
+ SYSCALL_MAP_RENAME (lchown32, gdb_sys_lchown);
+ SYSCALL_MAP_RENAME (getuid32, gdb_sys_getuid);
+ SYSCALL_MAP_RENAME (getgid32, gdb_sys_getgid);
+ SYSCALL_MAP_RENAME (geteuid32, gdb_sys_geteuid);
+ SYSCALL_MAP_RENAME (getegid32, gdb_sys_getegid);
+ SYSCALL_MAP_RENAME (setreuid32, gdb_sys_setreuid);
+ SYSCALL_MAP_RENAME (setregid32, gdb_sys_setregid);
+ SYSCALL_MAP_RENAME (getgroups32, gdb_sys_getgroups);
+ SYSCALL_MAP_RENAME (setgroups32, gdb_sys_setgroups);
+ SYSCALL_MAP_RENAME (fchown32, gdb_sys_fchown);
+ SYSCALL_MAP_RENAME (setresuid32, gdb_sys_setresuid);
+ SYSCALL_MAP_RENAME (getresuid32, gdb_sys_getresuid);
+ SYSCALL_MAP_RENAME (setresgid32, gdb_sys_setresgid);
+ SYSCALL_MAP_RENAME (getresgid32, gdb_sys_getresgid);
+ SYSCALL_MAP_RENAME (chown32, gdb_sys_chown);
+ SYSCALL_MAP_RENAME (setuid32, gdb_sys_setuid);
+ SYSCALL_MAP_RENAME (setgid32, gdb_sys_setgid);
+ SYSCALL_MAP_RENAME (setfsuid32, gdb_sys_setfsuid);
+ SYSCALL_MAP_RENAME (setfsgid32, gdb_sys_setfsgid);
+
+ SYSCALL_MAP (pivot_root);
+ SYSCALL_MAP (mincore);
+ SYSCALL_MAP (madvise);
+ SYSCALL_MAP (getdents64);
+ SYSCALL_MAP (fcntl64);
+ SYSCALL_MAP (gettid);
+ SYSCALL_MAP (readahead);
+ SYSCALL_MAP (setxattr);
+ SYSCALL_MAP (lsetxattr);
+ SYSCALL_MAP (fsetxattr);
+ SYSCALL_MAP (getxattr);
+ SYSCALL_MAP (lgetxattr);
+ SYSCALL_MAP (fgetxattr);
+ SYSCALL_MAP (listxattr);
+ SYSCALL_MAP (llistxattr);
+ SYSCALL_MAP (flistxattr);
+ SYSCALL_MAP (removexattr);
+ SYSCALL_MAP (lremovexattr);
+ SYSCALL_MAP (fremovexattr);
+ SYSCALL_MAP (tkill);
+ SYSCALL_MAP (sendfile64);
+ SYSCALL_MAP (futex);
+ SYSCALL_MAP (sched_setaffinity);
+ SYSCALL_MAP (sched_getaffinity);
+ SYSCALL_MAP (set_thread_area);
+ SYSCALL_MAP (get_thread_area);
+ SYSCALL_MAP (io_setup);
+ SYSCALL_MAP (io_destroy);
+ SYSCALL_MAP (io_getevents);
+ SYSCALL_MAP (io_submit);
+ SYSCALL_MAP (io_cancel);
+ SYSCALL_MAP (fadvise64);
+ SYSCALL_MAP (exit_group);
+ SYSCALL_MAP (lookup_dcookie);
+ SYSCALL_MAP (epoll_create);
+ SYSCALL_MAP (epoll_ctl);
+ SYSCALL_MAP (epoll_wait);
+ SYSCALL_MAP (remap_file_pages);
+ SYSCALL_MAP (set_tid_address);
+ SYSCALL_MAP (timer_create);
+ SYSCALL_MAP (timer_settime);
+ SYSCALL_MAP (timer_gettime);
+ SYSCALL_MAP (timer_getoverrun);
+ SYSCALL_MAP (timer_delete);
+ SYSCALL_MAP (clock_settime);
+ SYSCALL_MAP (clock_gettime);
+ SYSCALL_MAP (clock_getres);
+ SYSCALL_MAP (clock_nanosleep);
+ SYSCALL_MAP (statfs64);
+ SYSCALL_MAP (fstatfs64);
+ SYSCALL_MAP (tgkill);
+ SYSCALL_MAP (utimes);
+ SYSCALL_MAP (fadvise64_64);
+ SYSCALL_MAP_RENAME (vserver, gdb_sys_ni_syscall273);
+ SYSCALL_MAP (mbind);
+ SYSCALL_MAP (get_mempolicy);
+ SYSCALL_MAP (set_mempolicy);
+ SYSCALL_MAP (mq_open);
+ SYSCALL_MAP (mq_unlink);
+ SYSCALL_MAP (mq_timedsend);
+ SYSCALL_MAP (mq_timedreceive);
+ SYSCALL_MAP (mq_notify);
+ SYSCALL_MAP (mq_getsetattr);
+ SYSCALL_MAP (kexec_load);
+ SYSCALL_MAP (waitid);
+ SYSCALL_MAP (add_key);
+ SYSCALL_MAP (request_key);
+ SYSCALL_MAP (keyctl);
+ SYSCALL_MAP (ioprio_set);
+ SYSCALL_MAP (ioprio_get);
+ SYSCALL_MAP (inotify_init);
+ SYSCALL_MAP (inotify_add_watch);
+ SYSCALL_MAP (inotify_rm_watch);
+ SYSCALL_MAP (migrate_pages);
+ SYSCALL_MAP (openat);
+ SYSCALL_MAP (mkdirat);
+ SYSCALL_MAP (mknodat);
+ SYSCALL_MAP (fchownat);
+ SYSCALL_MAP (futimesat);
+ SYSCALL_MAP (fstatat64);
+ SYSCALL_MAP (unlinkat);
+ SYSCALL_MAP (renameat);
+ SYSCALL_MAP (linkat);
+ SYSCALL_MAP (symlinkat);
+ SYSCALL_MAP (readlinkat);
+ SYSCALL_MAP (fchmodat);
+ SYSCALL_MAP (faccessat);
+ SYSCALL_MAP (pselect6);
+ SYSCALL_MAP (ppoll);
+ SYSCALL_MAP (unshare);
+ SYSCALL_MAP (set_robust_list);
+ SYSCALL_MAP (get_robust_list);
+ SYSCALL_MAP (splice);
+ SYSCALL_MAP (sync_file_range);
+ SYSCALL_MAP (tee);
+ SYSCALL_MAP (vmsplice);
+ SYSCALL_MAP (move_pages);
+ SYSCALL_MAP (getcpu);
+ SYSCALL_MAP (epoll_pwait);
+ UNSUPPORTED_SYSCALL_MAP (utimensat);
+ UNSUPPORTED_SYSCALL_MAP (signalfd);
+ UNSUPPORTED_SYSCALL_MAP (timerfd_create);
+ UNSUPPORTED_SYSCALL_MAP (eventfd);
+ SYSCALL_MAP (fallocate);
+ UNSUPPORTED_SYSCALL_MAP (timerfd_settime);
+ UNSUPPORTED_SYSCALL_MAP (timerfd_gettime);
+ UNSUPPORTED_SYSCALL_MAP (signalfd4);
+ SYSCALL_MAP (eventfd2);
+ SYSCALL_MAP (epoll_create1);
+ SYSCALL_MAP (dup3);
+ SYSCALL_MAP (pipe2);
+ SYSCALL_MAP (inotify_init1);
+ UNSUPPORTED_SYSCALL_MAP (preadv);
+ UNSUPPORTED_SYSCALL_MAP (pwritev);
+ UNSUPPORTED_SYSCALL_MAP (rt_tgsigqueueinfo);
+ UNSUPPORTED_SYSCALL_MAP (perf_event_open);
+ UNSUPPORTED_SYSCALL_MAP (recvmmsg);
+ UNSUPPORTED_SYSCALL_MAP (fanotify_init);
+ UNSUPPORTED_SYSCALL_MAP (fanotify_mark);
+ UNSUPPORTED_SYSCALL_MAP (prlimit64);
+ UNSUPPORTED_SYSCALL_MAP (name_to_handle_at);
+ UNSUPPORTED_SYSCALL_MAP (open_by_handle_at);
+ UNSUPPORTED_SYSCALL_MAP (clock_adjtime);
+ UNSUPPORTED_SYSCALL_MAP (syncfs);
+ UNSUPPORTED_SYSCALL_MAP (sendmmsg);
+ UNSUPPORTED_SYSCALL_MAP (setns);
+ UNSUPPORTED_SYSCALL_MAP (process_vm_readv);
+ UNSUPPORTED_SYSCALL_MAP (process_vm_writev);
+ UNSUPPORTED_SYSCALL_MAP (kcmp);
+ UNSUPPORTED_SYSCALL_MAP (finit_module);
+ UNSUPPORTED_SYSCALL_MAP (sched_setattr);
+ UNSUPPORTED_SYSCALL_MAP (sched_getattr);
+ UNSUPPORTED_SYSCALL_MAP (renameat2);
+ UNSUPPORTED_SYSCALL_MAP (seccomp);
+ SYSCALL_MAP (getrandom);
+ UNSUPPORTED_SYSCALL_MAP (memfd_create);
+ UNSUPPORTED_SYSCALL_MAP (bpf);
+ UNSUPPORTED_SYSCALL_MAP (execveat);
+ SYSCALL_MAP (socket);
+ SYSCALL_MAP (socketpair);
+ SYSCALL_MAP (bind);
+ SYSCALL_MAP (connect);
+ SYSCALL_MAP (listen);
+ SYSCALL_MAP (accept4);
+ SYSCALL_MAP (getsockopt);
+ SYSCALL_MAP (setsockopt);
+ SYSCALL_MAP (getsockname);
+ SYSCALL_MAP (getpeername);
+ SYSCALL_MAP (sendto);
+ SYSCALL_MAP (sendmsg);
+ SYSCALL_MAP (recvfrom);
+ SYSCALL_MAP (recvmsg);
+ SYSCALL_MAP (shutdown);
+ UNSUPPORTED_SYSCALL_MAP (userfaultfd);
+ UNSUPPORTED_SYSCALL_MAP (membarrier);
+ UNSUPPORTED_SYSCALL_MAP (mlock2);
+ UNSUPPORTED_SYSCALL_MAP (copy_file_range);
+ UNSUPPORTED_SYSCALL_MAP (preadv2);
+ UNSUPPORTED_SYSCALL_MAP (pwritev2);
+ UNSUPPORTED_SYSCALL_MAP (pkey_mprotect);
+ UNSUPPORTED_SYSCALL_MAP (pkey_alloc);
+ UNSUPPORTED_SYSCALL_MAP (pkey_free);
+ SYSCALL_MAP (statx);
+ UNSUPPORTED_SYSCALL_MAP (arch_prctl);
+ UNSUPPORTED_SYSCALL_MAP (io_pgetevents);
+ UNSUPPORTED_SYSCALL_MAP (rseq);
+ SYSCALL_MAP (semget);
+ SYSCALL_MAP (semctl);
+ SYSCALL_MAP (shmget);
+ SYSCALL_MAP (shmctl);
+ SYSCALL_MAP (shmat);
+ SYSCALL_MAP (shmdt);
+ SYSCALL_MAP (msgget);
+ SYSCALL_MAP (msgsnd);
+ SYSCALL_MAP (msgrcv);
+ SYSCALL_MAP (msgctl);
+ SYSCALL_MAP (clock_gettime64);
+ UNSUPPORTED_SYSCALL_MAP (clock_settime64);
+ UNSUPPORTED_SYSCALL_MAP (clock_adjtime64);
+ UNSUPPORTED_SYSCALL_MAP (clock_getres_time64);
+ UNSUPPORTED_SYSCALL_MAP (clock_nanosleep_time64);
+ UNSUPPORTED_SYSCALL_MAP (timer_gettime64);
+ UNSUPPORTED_SYSCALL_MAP (timer_settime64);
+ UNSUPPORTED_SYSCALL_MAP (timerfd_gettime64);
+ UNSUPPORTED_SYSCALL_MAP (timerfd_settime64);
+ UNSUPPORTED_SYSCALL_MAP (utimensat_time64);
+ UNSUPPORTED_SYSCALL_MAP (pselect6_time64);
+ UNSUPPORTED_SYSCALL_MAP (ppoll_time64);
+ UNSUPPORTED_SYSCALL_MAP (io_pgetevents_time64);
+ UNSUPPORTED_SYSCALL_MAP (recvmmsg_time64);
+ UNSUPPORTED_SYSCALL_MAP (mq_timedsend_time64);
+ UNSUPPORTED_SYSCALL_MAP (mq_timedreceive_time64);
+ SYSCALL_MAP_RENAME (semtimedop_time64, gdb_sys_semtimedop);
+ UNSUPPORTED_SYSCALL_MAP (rt_sigtimedwait_time64);
+ UNSUPPORTED_SYSCALL_MAP (futex_time64);
+ UNSUPPORTED_SYSCALL_MAP (sched_rr_get_interval_time64);
+ UNSUPPORTED_SYSCALL_MAP (pidfd_send_signal);
+ UNSUPPORTED_SYSCALL_MAP (io_uring_setup);
+ UNSUPPORTED_SYSCALL_MAP (io_uring_enter);
+ UNSUPPORTED_SYSCALL_MAP (io_uring_register);
+ UNSUPPORTED_SYSCALL_MAP (open_tree);
+ UNSUPPORTED_SYSCALL_MAP (move_mount);
+ UNSUPPORTED_SYSCALL_MAP (fsopen);
+ UNSUPPORTED_SYSCALL_MAP (fsconfig);
+ UNSUPPORTED_SYSCALL_MAP (fsmount);
+ UNSUPPORTED_SYSCALL_MAP (fspick);
+ UNSUPPORTED_SYSCALL_MAP (pidfd_open);
+ UNSUPPORTED_SYSCALL_MAP (clone3);
+ UNSUPPORTED_SYSCALL_MAP (close_range);
+ UNSUPPORTED_SYSCALL_MAP (openat2);
+ UNSUPPORTED_SYSCALL_MAP (pidfd_getfd);
+ UNSUPPORTED_SYSCALL_MAP (faccessat2);
+ UNSUPPORTED_SYSCALL_MAP (process_madvise);
+ UNSUPPORTED_SYSCALL_MAP (epoll_pwait2);
+ UNSUPPORTED_SYSCALL_MAP (mount_setattr);
+ UNSUPPORTED_SYSCALL_MAP (quotactl_fd);
+ UNSUPPORTED_SYSCALL_MAP (landlock_create_ruleset);
+ UNSUPPORTED_SYSCALL_MAP (landlock_add_rule);
+ UNSUPPORTED_SYSCALL_MAP (landlock_restrict_self);
+ UNSUPPORTED_SYSCALL_MAP (memfd_secret);
+ UNSUPPORTED_SYSCALL_MAP (process_mrelease);
+ UNSUPPORTED_SYSCALL_MAP (futex_waitv);
+ UNSUPPORTED_SYSCALL_MAP (set_mempolicy_home_node);
+ UNSUPPORTED_SYSCALL_MAP (cachestat);
+ UNSUPPORTED_SYSCALL_MAP (fchmodat2);
+ UNSUPPORTED_SYSCALL_MAP (map_shadow_stack);
+ UNSUPPORTED_SYSCALL_MAP (futex_wake);
+ UNSUPPORTED_SYSCALL_MAP (futex_wait);
+ UNSUPPORTED_SYSCALL_MAP (futex_requeue);
+ UNSUPPORTED_SYSCALL_MAP (statmount);
+ UNSUPPORTED_SYSCALL_MAP (listmount);
+ UNSUPPORTED_SYSCALL_MAP (lsm_get_self_attr);
+ UNSUPPORTED_SYSCALL_MAP (lsm_set_self_attr);
+ UNSUPPORTED_SYSCALL_MAP (lsm_list_modules);
+ UNSUPPORTED_SYSCALL_MAP (mseal);
+ UNSUPPORTED_SYSCALL_MAP (setxattrat);
+ UNSUPPORTED_SYSCALL_MAP (getxattrat);
+ UNSUPPORTED_SYSCALL_MAP (listxattrat);
+ UNSUPPORTED_SYSCALL_MAP (removexattrat);
+
+#undef SYSCALL_MAP
+#undef SYSCALL_MAP_RENAME
+#undef UNSUPPORTED_SYSCALL_MAP
+
+ default:
+ return gdb_sys_no_syscall;
+ }
}
/* Value of the sigcode in case of a boundary fault. */
diff --git a/gdb/i386-linux-tdep.h b/gdb/i386-linux-tdep.h
index bd5527c..de98256 100644
--- a/gdb/i386-linux-tdep.h
+++ b/gdb/i386-linux-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux x86.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i386-netbsd-nat.c b/gdb/i386-netbsd-nat.c
index 7eaaaf3..0f39fe1 100644
--- a/gdb/i386-netbsd-nat.c
+++ b/gdb/i386-netbsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for NetBSD/i386.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i386-netbsd-tdep.c b/gdb/i386-netbsd-tdep.c
index a437656..701ce04 100644
--- a/gdb/i386-netbsd-tdep.c
+++ b/gdb/i386-netbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for NetBSD/i386.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i386-obsd-nat.c b/gdb/i386-obsd-nat.c
index 2b3d391..323acdb 100644
--- a/gdb/i386-obsd-nat.c
+++ b/gdb/i386-obsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for OpenBSD/i386.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i386-obsd-tdep.c b/gdb/i386-obsd-tdep.c
index ea8addc..be65668 100644
--- a/gdb/i386-obsd-tdep.c
+++ b/gdb/i386-obsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for OpenBSD/i386.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i386-sol2-nat.c b/gdb/i386-sol2-nat.c
index 20ca9d6..d0fb836 100644
--- a/gdb/i386-sol2-nat.c
+++ b/gdb/i386-sol2-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for Solaris x86.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -25,7 +25,7 @@
#include "target.h"
#include "procfs.h"
-/* This file provids the (temporary) glue between the Solaris x86
+/* This file provides the (temporary) glue between the Solaris x86
target dependent code and the machine independent SVR4 /proc
support. */
diff --git a/gdb/i386-sol2-tdep.c b/gdb/i386-sol2-tdep.c
index b85ac17..e842236 100644
--- a/gdb/i386-sol2-tdep.c
+++ b/gdb/i386-sol2-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for Solaris x86.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i386-syscalls.def b/gdb/i386-syscalls.def
new file mode 100644
index 0000000..5ba384a
--- /dev/null
+++ b/gdb/i386-syscalls.def
@@ -0,0 +1,479 @@
+/* Copyright (C) 2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>.
+
+ Generated using linux v6.13 and command:
+
+ $ egrep -v "^#.*" ./arch/x86/entry/syscalls/syscall_32.tbl \
+ | awk '{printf "SYSCALL (%s, %s)\n", $1, $3}'
+*/
+
+SYSCALL (0, restart_syscall)
+SYSCALL (1, exit)
+SYSCALL (2, fork)
+SYSCALL (3, read)
+SYSCALL (4, write)
+SYSCALL (5, open)
+SYSCALL (6, close)
+SYSCALL (7, waitpid)
+SYSCALL (8, creat)
+SYSCALL (9, link)
+SYSCALL (10, unlink)
+SYSCALL (11, execve)
+SYSCALL (12, chdir)
+SYSCALL (13, time)
+SYSCALL (14, mknod)
+SYSCALL (15, chmod)
+SYSCALL (16, lchown)
+SYSCALL (17, break)
+SYSCALL (18, oldstat)
+SYSCALL (19, lseek)
+SYSCALL (20, getpid)
+SYSCALL (21, mount)
+SYSCALL (22, umount)
+SYSCALL (23, setuid)
+SYSCALL (24, getuid)
+SYSCALL (25, stime)
+SYSCALL (26, ptrace)
+SYSCALL (27, alarm)
+SYSCALL (28, oldfstat)
+SYSCALL (29, pause)
+SYSCALL (30, utime)
+SYSCALL (31, stty)
+SYSCALL (32, gtty)
+SYSCALL (33, access)
+SYSCALL (34, nice)
+SYSCALL (35, ftime)
+SYSCALL (36, sync)
+SYSCALL (37, kill)
+SYSCALL (38, rename)
+SYSCALL (39, mkdir)
+SYSCALL (40, rmdir)
+SYSCALL (41, dup)
+SYSCALL (42, pipe)
+SYSCALL (43, times)
+SYSCALL (44, prof)
+SYSCALL (45, brk)
+SYSCALL (46, setgid)
+SYSCALL (47, getgid)
+SYSCALL (48, signal)
+SYSCALL (49, geteuid)
+SYSCALL (50, getegid)
+SYSCALL (51, acct)
+SYSCALL (52, umount2)
+SYSCALL (53, lock)
+SYSCALL (54, ioctl)
+SYSCALL (55, fcntl)
+SYSCALL (56, mpx)
+SYSCALL (57, setpgid)
+SYSCALL (58, ulimit)
+SYSCALL (59, oldolduname)
+SYSCALL (60, umask)
+SYSCALL (61, chroot)
+SYSCALL (62, ustat)
+SYSCALL (63, dup2)
+SYSCALL (64, getppid)
+SYSCALL (65, getpgrp)
+SYSCALL (66, setsid)
+SYSCALL (67, sigaction)
+SYSCALL (68, sgetmask)
+SYSCALL (69, ssetmask)
+SYSCALL (70, setreuid)
+SYSCALL (71, setregid)
+SYSCALL (72, sigsuspend)
+SYSCALL (73, sigpending)
+SYSCALL (74, sethostname)
+SYSCALL (75, setrlimit)
+SYSCALL (76, getrlimit)
+SYSCALL (77, getrusage)
+SYSCALL (78, gettimeofday)
+SYSCALL (79, settimeofday)
+SYSCALL (80, getgroups)
+SYSCALL (81, setgroups)
+SYSCALL (82, select)
+SYSCALL (83, symlink)
+SYSCALL (84, oldlstat)
+SYSCALL (85, readlink)
+SYSCALL (86, uselib)
+SYSCALL (87, swapon)
+SYSCALL (88, reboot)
+SYSCALL (89, readdir)
+SYSCALL (90, mmap)
+SYSCALL (91, munmap)
+SYSCALL (92, truncate)
+SYSCALL (93, ftruncate)
+SYSCALL (94, fchmod)
+SYSCALL (95, fchown)
+SYSCALL (96, getpriority)
+SYSCALL (97, setpriority)
+SYSCALL (98, profil)
+SYSCALL (99, statfs)
+SYSCALL (100, fstatfs)
+SYSCALL (101, ioperm)
+SYSCALL (102, socketcall)
+SYSCALL (103, syslog)
+SYSCALL (104, setitimer)
+SYSCALL (105, getitimer)
+SYSCALL (106, stat)
+SYSCALL (107, lstat)
+SYSCALL (108, fstat)
+SYSCALL (109, olduname)
+SYSCALL (110, iopl)
+SYSCALL (111, vhangup)
+SYSCALL (112, idle)
+SYSCALL (113, vm86old)
+SYSCALL (114, wait4)
+SYSCALL (115, swapoff)
+SYSCALL (116, sysinfo)
+SYSCALL (117, ipc)
+SYSCALL (118, fsync)
+SYSCALL (119, sigreturn)
+SYSCALL (120, clone)
+SYSCALL (121, setdomainname)
+SYSCALL (122, uname)
+SYSCALL (123, modify_ldt)
+SYSCALL (124, adjtimex)
+SYSCALL (125, mprotect)
+SYSCALL (126, sigprocmask)
+SYSCALL (127, create_module)
+SYSCALL (128, init_module)
+SYSCALL (129, delete_module)
+SYSCALL (130, get_kernel_syms)
+SYSCALL (131, quotactl)
+SYSCALL (132, getpgid)
+SYSCALL (133, fchdir)
+SYSCALL (134, bdflush)
+SYSCALL (135, sysfs)
+SYSCALL (136, personality)
+SYSCALL (137, afs_syscall)
+SYSCALL (138, setfsuid)
+SYSCALL (139, setfsgid)
+SYSCALL (140, _llseek)
+SYSCALL (141, getdents)
+SYSCALL (142, _newselect)
+SYSCALL (143, flock)
+SYSCALL (144, msync)
+SYSCALL (145, readv)
+SYSCALL (146, writev)
+SYSCALL (147, getsid)
+SYSCALL (148, fdatasync)
+SYSCALL (149, _sysctl)
+SYSCALL (150, mlock)
+SYSCALL (151, munlock)
+SYSCALL (152, mlockall)
+SYSCALL (153, munlockall)
+SYSCALL (154, sched_setparam)
+SYSCALL (155, sched_getparam)
+SYSCALL (156, sched_setscheduler)
+SYSCALL (157, sched_getscheduler)
+SYSCALL (158, sched_yield)
+SYSCALL (159, sched_get_priority_max)
+SYSCALL (160, sched_get_priority_min)
+SYSCALL (161, sched_rr_get_interval)
+SYSCALL (162, nanosleep)
+SYSCALL (163, mremap)
+SYSCALL (164, setresuid)
+SYSCALL (165, getresuid)
+SYSCALL (166, vm86)
+SYSCALL (167, query_module)
+SYSCALL (168, poll)
+SYSCALL (169, nfsservctl)
+SYSCALL (170, setresgid)
+SYSCALL (171, getresgid)
+SYSCALL (172, prctl)
+SYSCALL (173, rt_sigreturn)
+SYSCALL (174, rt_sigaction)
+SYSCALL (175, rt_sigprocmask)
+SYSCALL (176, rt_sigpending)
+SYSCALL (177, rt_sigtimedwait)
+SYSCALL (178, rt_sigqueueinfo)
+SYSCALL (179, rt_sigsuspend)
+SYSCALL (180, pread64)
+SYSCALL (181, pwrite64)
+SYSCALL (182, chown)
+SYSCALL (183, getcwd)
+SYSCALL (184, capget)
+SYSCALL (185, capset)
+SYSCALL (186, sigaltstack)
+SYSCALL (187, sendfile)
+SYSCALL (188, getpmsg)
+SYSCALL (189, putpmsg)
+SYSCALL (190, vfork)
+SYSCALL (191, ugetrlimit)
+SYSCALL (192, mmap2)
+SYSCALL (193, truncate64)
+SYSCALL (194, ftruncate64)
+SYSCALL (195, stat64)
+SYSCALL (196, lstat64)
+SYSCALL (197, fstat64)
+SYSCALL (198, lchown32)
+SYSCALL (199, getuid32)
+SYSCALL (200, getgid32)
+SYSCALL (201, geteuid32)
+SYSCALL (202, getegid32)
+SYSCALL (203, setreuid32)
+SYSCALL (204, setregid32)
+SYSCALL (205, getgroups32)
+SYSCALL (206, setgroups32)
+SYSCALL (207, fchown32)
+SYSCALL (208, setresuid32)
+SYSCALL (209, getresuid32)
+SYSCALL (210, setresgid32)
+SYSCALL (211, getresgid32)
+SYSCALL (212, chown32)
+SYSCALL (213, setuid32)
+SYSCALL (214, setgid32)
+SYSCALL (215, setfsuid32)
+SYSCALL (216, setfsgid32)
+SYSCALL (217, pivot_root)
+SYSCALL (218, mincore)
+SYSCALL (219, madvise)
+SYSCALL (220, getdents64)
+SYSCALL (221, fcntl64)
+SYSCALL (224, gettid)
+SYSCALL (225, readahead)
+SYSCALL (226, setxattr)
+SYSCALL (227, lsetxattr)
+SYSCALL (228, fsetxattr)
+SYSCALL (229, getxattr)
+SYSCALL (230, lgetxattr)
+SYSCALL (231, fgetxattr)
+SYSCALL (232, listxattr)
+SYSCALL (233, llistxattr)
+SYSCALL (234, flistxattr)
+SYSCALL (235, removexattr)
+SYSCALL (236, lremovexattr)
+SYSCALL (237, fremovexattr)
+SYSCALL (238, tkill)
+SYSCALL (239, sendfile64)
+SYSCALL (240, futex)
+SYSCALL (241, sched_setaffinity)
+SYSCALL (242, sched_getaffinity)
+SYSCALL (243, set_thread_area)
+SYSCALL (244, get_thread_area)
+SYSCALL (245, io_setup)
+SYSCALL (246, io_destroy)
+SYSCALL (247, io_getevents)
+SYSCALL (248, io_submit)
+SYSCALL (249, io_cancel)
+SYSCALL (250, fadvise64)
+SYSCALL (252, exit_group)
+SYSCALL (253, lookup_dcookie)
+SYSCALL (254, epoll_create)
+SYSCALL (255, epoll_ctl)
+SYSCALL (256, epoll_wait)
+SYSCALL (257, remap_file_pages)
+SYSCALL (258, set_tid_address)
+SYSCALL (259, timer_create)
+SYSCALL (260, timer_settime)
+SYSCALL (261, timer_gettime)
+SYSCALL (262, timer_getoverrun)
+SYSCALL (263, timer_delete)
+SYSCALL (264, clock_settime)
+SYSCALL (265, clock_gettime)
+SYSCALL (266, clock_getres)
+SYSCALL (267, clock_nanosleep)
+SYSCALL (268, statfs64)
+SYSCALL (269, fstatfs64)
+SYSCALL (270, tgkill)
+SYSCALL (271, utimes)
+SYSCALL (272, fadvise64_64)
+SYSCALL (273, vserver)
+SYSCALL (274, mbind)
+SYSCALL (275, get_mempolicy)
+SYSCALL (276, set_mempolicy)
+SYSCALL (277, mq_open)
+SYSCALL (278, mq_unlink)
+SYSCALL (279, mq_timedsend)
+SYSCALL (280, mq_timedreceive)
+SYSCALL (281, mq_notify)
+SYSCALL (282, mq_getsetattr)
+SYSCALL (283, kexec_load)
+SYSCALL (284, waitid)
+SYSCALL (286, add_key)
+SYSCALL (287, request_key)
+SYSCALL (288, keyctl)
+SYSCALL (289, ioprio_set)
+SYSCALL (290, ioprio_get)
+SYSCALL (291, inotify_init)
+SYSCALL (292, inotify_add_watch)
+SYSCALL (293, inotify_rm_watch)
+SYSCALL (294, migrate_pages)
+SYSCALL (295, openat)
+SYSCALL (296, mkdirat)
+SYSCALL (297, mknodat)
+SYSCALL (298, fchownat)
+SYSCALL (299, futimesat)
+SYSCALL (300, fstatat64)
+SYSCALL (301, unlinkat)
+SYSCALL (302, renameat)
+SYSCALL (303, linkat)
+SYSCALL (304, symlinkat)
+SYSCALL (305, readlinkat)
+SYSCALL (306, fchmodat)
+SYSCALL (307, faccessat)
+SYSCALL (308, pselect6)
+SYSCALL (309, ppoll)
+SYSCALL (310, unshare)
+SYSCALL (311, set_robust_list)
+SYSCALL (312, get_robust_list)
+SYSCALL (313, splice)
+SYSCALL (314, sync_file_range)
+SYSCALL (315, tee)
+SYSCALL (316, vmsplice)
+SYSCALL (317, move_pages)
+SYSCALL (318, getcpu)
+SYSCALL (319, epoll_pwait)
+SYSCALL (320, utimensat)
+SYSCALL (321, signalfd)
+SYSCALL (322, timerfd_create)
+SYSCALL (323, eventfd)
+SYSCALL (324, fallocate)
+SYSCALL (325, timerfd_settime)
+SYSCALL (326, timerfd_gettime)
+SYSCALL (327, signalfd4)
+SYSCALL (328, eventfd2)
+SYSCALL (329, epoll_create1)
+SYSCALL (330, dup3)
+SYSCALL (331, pipe2)
+SYSCALL (332, inotify_init1)
+SYSCALL (333, preadv)
+SYSCALL (334, pwritev)
+SYSCALL (335, rt_tgsigqueueinfo)
+SYSCALL (336, perf_event_open)
+SYSCALL (337, recvmmsg)
+SYSCALL (338, fanotify_init)
+SYSCALL (339, fanotify_mark)
+SYSCALL (340, prlimit64)
+SYSCALL (341, name_to_handle_at)
+SYSCALL (342, open_by_handle_at)
+SYSCALL (343, clock_adjtime)
+SYSCALL (344, syncfs)
+SYSCALL (345, sendmmsg)
+SYSCALL (346, setns)
+SYSCALL (347, process_vm_readv)
+SYSCALL (348, process_vm_writev)
+SYSCALL (349, kcmp)
+SYSCALL (350, finit_module)
+SYSCALL (351, sched_setattr)
+SYSCALL (352, sched_getattr)
+SYSCALL (353, renameat2)
+SYSCALL (354, seccomp)
+SYSCALL (355, getrandom)
+SYSCALL (356, memfd_create)
+SYSCALL (357, bpf)
+SYSCALL (358, execveat)
+SYSCALL (359, socket)
+SYSCALL (360, socketpair)
+SYSCALL (361, bind)
+SYSCALL (362, connect)
+SYSCALL (363, listen)
+SYSCALL (364, accept4)
+SYSCALL (365, getsockopt)
+SYSCALL (366, setsockopt)
+SYSCALL (367, getsockname)
+SYSCALL (368, getpeername)
+SYSCALL (369, sendto)
+SYSCALL (370, sendmsg)
+SYSCALL (371, recvfrom)
+SYSCALL (372, recvmsg)
+SYSCALL (373, shutdown)
+SYSCALL (374, userfaultfd)
+SYSCALL (375, membarrier)
+SYSCALL (376, mlock2)
+SYSCALL (377, copy_file_range)
+SYSCALL (378, preadv2)
+SYSCALL (379, pwritev2)
+SYSCALL (380, pkey_mprotect)
+SYSCALL (381, pkey_alloc)
+SYSCALL (382, pkey_free)
+SYSCALL (383, statx)
+SYSCALL (384, arch_prctl)
+SYSCALL (385, io_pgetevents)
+SYSCALL (386, rseq)
+SYSCALL (393, semget)
+SYSCALL (394, semctl)
+SYSCALL (395, shmget)
+SYSCALL (396, shmctl)
+SYSCALL (397, shmat)
+SYSCALL (398, shmdt)
+SYSCALL (399, msgget)
+SYSCALL (400, msgsnd)
+SYSCALL (401, msgrcv)
+SYSCALL (402, msgctl)
+SYSCALL (403, clock_gettime64)
+SYSCALL (404, clock_settime64)
+SYSCALL (405, clock_adjtime64)
+SYSCALL (406, clock_getres_time64)
+SYSCALL (407, clock_nanosleep_time64)
+SYSCALL (408, timer_gettime64)
+SYSCALL (409, timer_settime64)
+SYSCALL (410, timerfd_gettime64)
+SYSCALL (411, timerfd_settime64)
+SYSCALL (412, utimensat_time64)
+SYSCALL (413, pselect6_time64)
+SYSCALL (414, ppoll_time64)
+SYSCALL (416, io_pgetevents_time64)
+SYSCALL (417, recvmmsg_time64)
+SYSCALL (418, mq_timedsend_time64)
+SYSCALL (419, mq_timedreceive_time64)
+SYSCALL (420, semtimedop_time64)
+SYSCALL (421, rt_sigtimedwait_time64)
+SYSCALL (422, futex_time64)
+SYSCALL (423, sched_rr_get_interval_time64)
+SYSCALL (424, pidfd_send_signal)
+SYSCALL (425, io_uring_setup)
+SYSCALL (426, io_uring_enter)
+SYSCALL (427, io_uring_register)
+SYSCALL (428, open_tree)
+SYSCALL (429, move_mount)
+SYSCALL (430, fsopen)
+SYSCALL (431, fsconfig)
+SYSCALL (432, fsmount)
+SYSCALL (433, fspick)
+SYSCALL (434, pidfd_open)
+SYSCALL (435, clone3)
+SYSCALL (436, close_range)
+SYSCALL (437, openat2)
+SYSCALL (438, pidfd_getfd)
+SYSCALL (439, faccessat2)
+SYSCALL (440, process_madvise)
+SYSCALL (441, epoll_pwait2)
+SYSCALL (442, mount_setattr)
+SYSCALL (443, quotactl_fd)
+SYSCALL (444, landlock_create_ruleset)
+SYSCALL (445, landlock_add_rule)
+SYSCALL (446, landlock_restrict_self)
+SYSCALL (447, memfd_secret)
+SYSCALL (448, process_mrelease)
+SYSCALL (449, futex_waitv)
+SYSCALL (450, set_mempolicy_home_node)
+SYSCALL (451, cachestat)
+SYSCALL (452, fchmodat2)
+SYSCALL (453, map_shadow_stack)
+SYSCALL (454, futex_wake)
+SYSCALL (455, futex_wait)
+SYSCALL (456, futex_requeue)
+SYSCALL (457, statmount)
+SYSCALL (458, listmount)
+SYSCALL (459, lsm_get_self_attr)
+SYSCALL (460, lsm_set_self_attr)
+SYSCALL (461, lsm_list_modules)
+SYSCALL (462, mseal)
+SYSCALL (463, setxattrat)
+SYSCALL (464, getxattrat)
+SYSCALL (465, listxattrat)
+SYSCALL (466, removexattrat)
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index 1d6d592..23788b4 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -1,6 +1,6 @@
/* Intel 386 target-dependent stuff.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -2322,7 +2322,7 @@ static const struct frame_unwind_legacy i386_epilogue_frame_unwind (
/* These trampolines are used on cross x86 targets, when taking the
address of a nested function. When executing these trampolines,
no stack frame is set up, so we are in a similar situation as in
- epilogues and i386_epilogue_frame_this_id can be re-used. */
+ epilogues and i386_epilogue_frame_this_id can be reused. */
/* Static chain passed in register. */
@@ -5015,7 +5015,7 @@ i386_record_vex (struct i386_record_s *ir, uint8_t vex_w, uint8_t vex_r,
case 0x5e: /* VDIV[P|S][S|D] */
case 0x5f: /* VMAX[P|S][S|D] */
{
- /* vpbroadcast and arithmethic operations are differentiated
+ /* vpbroadcast and arithmetic operations are differentiated
by map_select, but it doesn't change the recording mechanics. */
i386_record_modrm (ir);
int reg_offset = ir->reg + vex_r * 8;
diff --git a/gdb/i386-tdep.h b/gdb/i386-tdep.h
index 680eb02..e849b33 100644
--- a/gdb/i386-tdep.h
+++ b/gdb/i386-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for the i386.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i386-windows-nat.c b/gdb/i386-windows-nat.c
index ec6077f..6c1369a 100644
--- a/gdb/i386-windows-nat.c
+++ b/gdb/i386-windows-nat.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i386-windows-tdep.c b/gdb/i386-windows-tdep.c
index b3a96d7..43ae5e4 100644
--- a/gdb/i386-windows-tdep.c
+++ b/gdb/i386-windows-tdep.c
@@ -1,7 +1,7 @@
/* Target-dependent code for Windows (including Cygwin) running on i386's,
for GDB.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i387-tdep.c b/gdb/i387-tdep.c
index 35a039e..977edeb 100644
--- a/gdb/i387-tdep.c
+++ b/gdb/i387-tdep.c
@@ -1,6 +1,6 @@
/* Intel 387 floating point stuff.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i387-tdep.h b/gdb/i387-tdep.h
index bee8a08..ed4df1d 100644
--- a/gdb/i387-tdep.h
+++ b/gdb/i387-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for the i387.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ia64-libunwind-tdep.c b/gdb/ia64-libunwind-tdep.c
index 72e4fae..3ba9cb6 100644
--- a/gdb/ia64-libunwind-tdep.c
+++ b/gdb/ia64-libunwind-tdep.c
@@ -1,6 +1,6 @@
/* Frame unwinder for ia64 frames using the libunwind library.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
Written by Jeff Johnston, contributed by Red Hat Inc.
diff --git a/gdb/ia64-libunwind-tdep.h b/gdb/ia64-libunwind-tdep.h
index 9d35864..cf83b6a 100644
--- a/gdb/ia64-libunwind-tdep.h
+++ b/gdb/ia64-libunwind-tdep.h
@@ -1,6 +1,6 @@
/* Frame unwinder for ia64 frames with libunwind frame information.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
Contributed by Jeff Johnston.
diff --git a/gdb/ia64-linux-nat.c b/gdb/ia64-linux-nat.c
index fd78632..964b175 100644
--- a/gdb/ia64-linux-nat.c
+++ b/gdb/ia64-linux-nat.c
@@ -1,7 +1,7 @@
/* Functions specific to running gdb native on IA-64 running
GNU/Linux.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ia64-linux-tdep.c b/gdb/ia64-linux-tdep.c
index da06f91..c45b2bb 100644
--- a/gdb/ia64-linux-tdep.c
+++ b/gdb/ia64-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the IA-64 for GDB, the GNU debugger.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c
index 11375d5..395b5f7 100644
--- a/gdb/ia64-tdep.c
+++ b/gdb/ia64-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the IA-64 for GDB, the GNU debugger.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -596,7 +596,7 @@ fetch_instruction (CORE_ADDR addr, ia64_instruction_type *it, long long *instr)
If we would like to store the whole bundle to SHADOW_CONTENTS we would have
to store already the base address (`address & ~0x0f') into PLACED_ADDRESS.
In such case there is no other place where to store
- SLOTNUM (`adress & 0x0f', value in the range <0..2>). We need to know
+ SLOTNUM (`address & 0x0f', value in the range <0..2>). We need to know
SLOTNUM in ia64_memory_remove_breakpoint.
There is one special case where we need to be extra careful:
@@ -3111,7 +3111,7 @@ static const struct frame_unwind_legacy ia64_libunwind_sigtramp_frame_unwind (
ia64_libunwind_sigtramp_frame_sniffer
);
-/* Set of libunwind callback acccessor functions. */
+/* Set of libunwind callback accessor functions. */
unw_accessors_t ia64_unw_accessors =
{
ia64_find_proc_info_x,
@@ -3124,7 +3124,7 @@ unw_accessors_t ia64_unw_accessors =
/* get_proc_name */
};
-/* Set of special libunwind callback acccessor functions specific for accessing
+/* Set of special libunwind callback accessor functions specific for accessing
the rse registers. At the top of the stack, we want libunwind to figure out
how to read r32 - r127. Though usually they are found sequentially in
memory starting from $bof, this is not always true. */
@@ -3415,7 +3415,7 @@ slot_alignment_is_next_even (struct type *t)
/* Attempt to find (and return) the global pointer for the given
function.
- This is a rather nasty bit of code searchs for the .dynamic section
+ This rather nasty bit of code searches for the .dynamic section
in the objfile corresponding to the pc of the function we're trying
to call. Once it finds the addresses at which the .dynamic section
lives in the child process, it scans the Elf64_Dyn entries for a
diff --git a/gdb/ia64-tdep.h b/gdb/ia64-tdep.h
index 9a8acff..d386ea7 100644
--- a/gdb/ia64-tdep.h
+++ b/gdb/ia64-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for the ia64.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ia64-vms-tdep.c b/gdb/ia64-vms-tdep.c
index 20308c7..dcd5598 100644
--- a/gdb/ia64-vms-tdep.c
+++ b/gdb/ia64-vms-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for OpenVMS IA-64.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -118,7 +118,7 @@ ia64_vms_get_dyn_info_list (unw_addr_space_t as,
return -UNW_ENOINFO;
}
-/* Set of libunwind callback acccessor functions. */
+/* Set of libunwind callback accessor functions. */
static unw_accessors_t ia64_vms_unw_accessors;
static unw_accessors_t ia64_vms_unw_rse_accessors;
diff --git a/gdb/inf-child.c b/gdb/inf-child.c
index b6b3750f..57ad0b4 100644
--- a/gdb/inf-child.c
+++ b/gdb/inf-child.c
@@ -1,6 +1,6 @@
/* Base/prototype target for default child (native) targets.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -322,11 +322,11 @@ inf_child_target::fileio_fstat (int fd, struct stat *sb, fileio_error *target_er
return ret;
}
-/* Implementation of to_fileio_stat. */
+/* Implementation of to_fileio_lstat. */
int
-inf_child_target::fileio_stat (struct inferior *inf, const char *filename,
- struct stat *sb, fileio_error *target_errno)
+inf_child_target::fileio_lstat (struct inferior *inf, const char *filename,
+ struct stat *sb, fileio_error *target_errno)
{
int ret;
diff --git a/gdb/inf-child.h b/gdb/inf-child.h
index 7e49424..70de393 100644
--- a/gdb/inf-child.h
+++ b/gdb/inf-child.h
@@ -1,6 +1,6 @@
/* Base/prototype target for default child (native) targets.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -81,8 +81,8 @@ public:
int fileio_pread (int fd, gdb_byte *read_buf, int len,
ULONGEST offset, fileio_error *target_errno) override;
int fileio_fstat (int fd, struct stat *sb, fileio_error *target_errno) override;
- int fileio_stat (struct inferior *inf, const char *filename,
- struct stat *sb, fileio_error *target_errno) override;
+ int fileio_lstat (struct inferior *inf, const char *filename,
+ struct stat *sb, fileio_error *target_errno) override;
int fileio_close (int fd, fileio_error *target_errno) override;
int fileio_unlink (struct inferior *inf,
const char *filename,
diff --git a/gdb/inf-loop.c b/gdb/inf-loop.c
index ec0c059..0134c77 100644
--- a/gdb/inf-loop.c
+++ b/gdb/inf-loop.c
@@ -1,5 +1,5 @@
/* Handling of inferior events for the event loop for GDB, the GNU debugger.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Elena Zannoni <ezannoni@cygnus.com> of Cygnus Solutions.
This file is part of GDB.
@@ -74,7 +74,7 @@ inferior_event_handler (enum inferior_event_type event_type)
{
/* If the user was running a foreground execution
command, then propagate the error so that the prompt
- can be reenabled. Otherwise, the user already has
+ can be re-enabled. Otherwise, the user already has
the prompt and is typing some unrelated command, so
just inform the user and swallow the exception. */
if (current_ui->prompt_state == PROMPT_BLOCKED)
diff --git a/gdb/inf-loop.h b/gdb/inf-loop.h
index 2bf29fa..f3dfac1 100644
--- a/gdb/inf-loop.h
+++ b/gdb/inf-loop.h
@@ -1,5 +1,5 @@
/* Interface to the inferior event handling code for GDB, the GNU debugger.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Elena Zannoni <ezannoni@cygnus.com> of Cygnus Solutions.
This file is part of GDB.
diff --git a/gdb/inf-ptrace.c b/gdb/inf-ptrace.c
index 56ff2fc..efa269c 100644
--- a/gdb/inf-ptrace.c
+++ b/gdb/inf-ptrace.c
@@ -1,6 +1,6 @@
/* Low-level child interface to ptrace.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/inf-ptrace.h b/gdb/inf-ptrace.h
index 901f7e9..aa63f90 100644
--- a/gdb/inf-ptrace.h
+++ b/gdb/inf-ptrace.h
@@ -1,6 +1,6 @@
/* Low level child interface to ptrace.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/infcall.c b/gdb/infcall.c
index 6399278..098072d 100644
--- a/gdb/infcall.c
+++ b/gdb/infcall.c
@@ -1,6 +1,6 @@
/* Perform an inferior function call, for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -1276,7 +1276,7 @@ call_function_by_hand_dummy (struct value *function,
/* A call dummy always consists of just a single breakpoint, so
its address is the same as the address of the dummy.
- The actual breakpoint is inserted separatly so there is no need to
+ The actual breakpoint is inserted separately so there is no need to
write that out. */
bp_addr = dummy_addr;
break;
diff --git a/gdb/infcall.h b/gdb/infcall.h
index eccf133..3b02f45 100644
--- a/gdb/infcall.h
+++ b/gdb/infcall.h
@@ -1,6 +1,6 @@
/* Perform an inferior function call, for GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/infcmd.c b/gdb/infcmd.c
index b6b21a4..e9b58ce 100644
--- a/gdb/infcmd.c
+++ b/gdb/infcmd.c
@@ -1,6 +1,6 @@
/* Memory-access and commands for "inferior" process, for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -517,12 +517,6 @@ run_command (const char *args, int from_tty)
static void
start_command (const char *args, int from_tty)
{
- /* Some languages such as Ada need to search inside the program
- minimal symbols for the location where to put the temporary
- breakpoint before starting. */
- if (!have_minimal_symbols (current_program_space))
- error (_("No symbol table loaded. Use the \"file\" command."));
-
/* Run the program until reaching the main procedure... */
run_command_1 (args, from_tty, RUN_STOP_AT_MAIN);
}
@@ -536,8 +530,8 @@ starti_command (const char *args, int from_tty)
run_command_1 (args, from_tty, RUN_STOP_AT_FIRST_INSN);
}
-static int
-proceed_thread_callback (struct thread_info *thread, void *arg)
+static bool
+proceed_thread_callback (struct thread_info *thread)
{
/* We go through all threads individually instead of compressing
into a single target `resume_all' request, because some threads
@@ -549,15 +543,15 @@ proceed_thread_callback (struct thread_info *thread, void *arg)
thread stopped until I say otherwise', then we can optimize
this. */
if (thread->state != THREAD_STOPPED)
- return 0;
+ return false;
if (!thread->inf->has_execution ())
- return 0;
+ return false;
switch_to_thread (thread);
clear_proceed_status (0);
proceed ((CORE_ADDR) -1, GDB_SIGNAL_DEFAULT);
- return 0;
+ return false;
}
static void
@@ -614,7 +608,7 @@ continue_1 (int all_threads)
scoped_disable_commit_resumed disable_commit_resumed
("continue all threads in non-stop");
- iterate_over_threads (proceed_thread_callback, nullptr);
+ iterate_over_threads (proceed_thread_callback);
if (current_ui->prompt_state == PROMPT_BLOCKED)
{
@@ -2121,9 +2115,10 @@ static const char path_var_name[] = "PATH";
static void
path_info (const char *args, int from_tty)
{
- gdb_puts ("Executable and object file path: ");
- gdb_puts (current_inferior ()->environment.get (path_var_name));
- gdb_puts ("\n");
+ const char *env = current_inferior ()->environment.get (path_var_name);
+
+ gdb_printf (_("Executable and object file path: %s\n"),
+ env != nullptr ? env : "");
}
/* Add zero or more directories to the front of the execution path. */
diff --git a/gdb/inferior-iter.h b/gdb/inferior-iter.h
index 05ddfca..2a0d5c3 100644
--- a/gdb/inferior-iter.h
+++ b/gdb/inferior-iter.h
@@ -1,6 +1,6 @@
/* Inferior iterators and ranges for GDB, the GNU debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/inferior.c b/gdb/inferior.c
index 67d70c5..e8a28cd 100644
--- a/gdb/inferior.c
+++ b/gdb/inferior.c
@@ -1,6 +1,6 @@
/* Multi-process control for GDB, the GNU debugger.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -167,9 +167,10 @@ inferior::tty ()
/* See inferior.h. */
void
-inferior::set_args (gdb::array_view<char * const> args)
+inferior::set_args (gdb::array_view<char * const> args,
+ bool escape_shell_char)
{
- set_args (construct_inferior_arguments (args));
+ set_args (construct_inferior_arguments (args, escape_shell_char));
}
void
diff --git a/gdb/inferior.h b/gdb/inferior.h
index 10f00a1..54f5229 100644
--- a/gdb/inferior.h
+++ b/gdb/inferior.h
@@ -1,7 +1,7 @@
/* Variables that describe the inferior process running under GDB:
Where it is, why it stopped, and how to step it.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -63,7 +63,7 @@ struct thread_info;
#include "process-stratum-target.h"
#include "displaced-stepping.h"
-#include <unordered_map>
+#include "gdbsupport/unordered_map.h"
struct infcall_suspend_state;
struct infcall_control_state;
@@ -459,7 +459,7 @@ public:
/* A map of ptid_t to thread_info*, for average O(1) ptid_t lookup.
Exited threads do not appear in the map. */
- std::unordered_map<ptid_t, thread_info *> ptid_thread_map;
+ gdb::unordered_map<ptid_t, thread_info *> ptid_thread_map;
/* Returns a range adapter covering the inferior's threads,
including exited threads. Used like this:
@@ -522,8 +522,11 @@ public:
m_args = std::move (args);
};
- /* Set the argument string from some strings. */
- void set_args (gdb::array_view<char * const> args);
+ /* Set the argument string from some strings in ARGS. When
+ ESCAPE_SHELL_CHAR is true all special shell characters in ARGS are
+ escaped, When false only the characters that GDB sees as special will
+ be escaped. See construct_inferior_arguments for more details. */
+ void set_args (gdb::array_view<char * const> args, bool escape_shell_char);
/* Get the argument string to use when running this inferior.
diff --git a/gdb/inflow.c b/gdb/inflow.c
index 773ac0b..f5ae6cd 100644
--- a/gdb/inflow.c
+++ b/gdb/inflow.c
@@ -1,5 +1,5 @@
/* Low level interface to ptrace, for GDB when running under Unix.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 4687ee6..2e02642 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -1,7 +1,7 @@
/* Target-struct-independent code to start (run) and stop an inferior
process.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -58,7 +58,6 @@
#include "target-descriptions.h"
#include "target-dcache.h"
#include "terminal.h"
-#include "solist.h"
#include "gdbsupport/event-loop.h"
#include "thread-fsm.h"
#include "gdbsupport/enum-flags.h"
@@ -1699,15 +1698,12 @@ show_can_use_displaced_stepping (struct ui_file *file, int from_tty,
"to step over breakpoints is %s.\n"), value);
}
-/* Return true if the gdbarch implements the required methods to use
- displaced stepping. */
+/* Return true if the target behind THREAD supports displaced stepping. */
static bool
-gdbarch_supports_displaced_stepping (gdbarch *arch)
+target_supports_displaced_stepping (thread_info *thread)
{
- /* Only check for the presence of `prepare`. The gdbarch verification ensures
- that if `prepare` is provided, so is `finish`. */
- return gdbarch_displaced_step_prepare_p (arch);
+ return thread->inf->top_target ()->supports_displaced_step (thread);
}
/* Return non-zero if displaced stepping can/should be used to step
@@ -1726,11 +1722,8 @@ use_displaced_stepping (thread_info *tp)
&& !target_is_non_stop_p ())
return false;
- gdbarch *gdbarch = get_thread_regcache (tp)->arch ();
-
- /* If the architecture doesn't implement displaced stepping, don't use
- it. */
- if (!gdbarch_supports_displaced_stepping (gdbarch))
+ /* If the target doesn't support displaced stepping, don't use it. */
+ if (!target_supports_displaced_stepping (tp))
return false;
/* If recording, don't use displaced stepping. */
@@ -1784,9 +1777,9 @@ displaced_step_prepare_throw (thread_info *tp)
displaced_step_thread_state &disp_step_thread_state
= tp->displaced_step_state;
- /* We should never reach this function if the architecture does not
+ /* We should never reach this function if the target does not
support displaced stepping. */
- gdb_assert (gdbarch_supports_displaced_stepping (gdbarch));
+ gdb_assert (target_supports_displaced_stepping (tp));
/* Nor if the thread isn't meant to step over a breakpoint. */
gdb_assert (tp->control.trap_expected);
@@ -1847,8 +1840,8 @@ displaced_step_prepare_throw (thread_info *tp)
paddress (gdbarch, original_pc), dislen);
}
- displaced_step_prepare_status status
- = gdbarch_displaced_step_prepare (gdbarch, tp, displaced_pc);
+ auto status
+ = tp->inf->top_target ()->displaced_step_prepare (tp, displaced_pc);
if (status == DISPLACED_STEP_PREPARE_STATUS_CANT)
{
@@ -2028,6 +2021,7 @@ displaced_step_finish (thread_info *event_thread,
{
/* Check whether the parent is displaced stepping. */
inferior *parent_inf = event_thread->inf;
+ target_ops *top_target = parent_inf->top_target ();
/* If this was a fork/vfork/clone, this event indicates that the
displaced stepping of the syscall instruction has been done, so
@@ -2044,15 +2038,10 @@ displaced_step_finish (thread_info *event_thread,
gdbarch_displaced_step_restore_all_in_ptid. This is not enforced
during gdbarch validation to support architectures which support
displaced stepping but not forks. */
- if (event_status.kind () == TARGET_WAITKIND_FORKED)
- {
- struct regcache *parent_regcache = get_thread_regcache (event_thread);
- struct gdbarch *gdbarch = parent_regcache->arch ();
-
- if (gdbarch_supports_displaced_stepping (gdbarch))
- gdbarch_displaced_step_restore_all_in_ptid
- (gdbarch, parent_inf, event_status.child_ptid ());
- }
+ if (event_status.kind () == TARGET_WAITKIND_FORKED
+ && target_supports_displaced_stepping (event_thread))
+ top_target->displaced_step_restore_all_in_ptid
+ (parent_inf, event_status.child_ptid ());
displaced_step_thread_state *displaced = &event_thread->displaced_step_state;
@@ -2075,9 +2064,7 @@ displaced_step_finish (thread_info *event_thread,
/* Do the fixup, and release the resources acquired to do the displaced
step. */
- displaced_step_finish_status status
- = gdbarch_displaced_step_finish (displaced->get_original_gdbarch (),
- event_thread, event_status);
+ auto status = top_target->displaced_step_finish (event_thread, event_status);
if (event_status.kind () == TARGET_WAITKIND_FORKED
|| event_status.kind () == TARGET_WAITKIND_VFORKED
@@ -3984,7 +3971,8 @@ delete_just_stopped_threads_single_step_breakpoints (void)
void
print_target_wait_results (ptid_t waiton_ptid, ptid_t result_ptid,
- const struct target_waitstatus &ws)
+ const struct target_waitstatus &ws,
+ process_stratum_target *proc_target)
{
infrun_debug_printf ("target_wait (%s [%s], status) =",
waiton_ptid.to_string ().c_str (),
@@ -3993,6 +3981,20 @@ print_target_wait_results (ptid_t waiton_ptid, ptid_t result_ptid,
result_ptid.to_string ().c_str (),
target_pid_to_str (result_ptid).c_str ());
infrun_debug_printf (" %s", ws.to_string ().c_str ());
+
+ if (proc_target != nullptr)
+ infrun_debug_printf (" from target %d (%s)",
+ proc_target->connection_number,
+ proc_target->shortname ());
+}
+
+/* Wrapper for print_target_wait_results above for convenience. */
+
+static void
+print_target_wait_results (ptid_t waiton_ptid,
+ const execution_control_state &ecs)
+{
+ print_target_wait_results (waiton_ptid, ecs.ptid, ecs.ws, ecs.target);
}
/* Select a thread at random, out of those which are resumed and have
@@ -4344,7 +4346,8 @@ prepare_for_detach (void)
event.ptid = do_target_wait_1 (inf, pid_ptid, &event.ws, 0);
if (debug_infrun)
- print_target_wait_results (pid_ptid, event.ptid, event.ws);
+ print_target_wait_results (pid_ptid, event.ptid, event.ws,
+ event.target);
handle_one (event);
}
@@ -4400,7 +4403,7 @@ wait_for_inferior (inferior *inf)
ecs.target = inf->process_target ();
if (debug_infrun)
- print_target_wait_results (minus_one_ptid, ecs.ptid, ecs.ws);
+ print_target_wait_results (minus_one_ptid, ecs);
/* Now figure out what to do with the result of the result. */
handle_inferior_event (&ecs);
@@ -4681,7 +4684,7 @@ fetch_inferior_event ()
switch_to_target_no_thread (ecs.target);
if (debug_infrun)
- print_target_wait_results (minus_one_ptid, ecs.ptid, ecs.ws);
+ print_target_wait_results (minus_one_ptid, ecs);
/* If an error happens while handling the event, propagate GDB's
knowledge of the executing state to the frontend/user running
@@ -5244,7 +5247,8 @@ poll_one_curr_target (struct target_waitstatus *ws)
event_ptid = target_wait (minus_one_ptid, ws, TARGET_WNOHANG);
if (debug_infrun)
- print_target_wait_results (minus_one_ptid, event_ptid, *ws);
+ print_target_wait_results (minus_one_ptid, event_ptid, *ws,
+ current_inferior ()->process_target ());
return event_ptid;
}
@@ -6683,9 +6687,8 @@ restart_threads (struct thread_info *event_thread, inferior *inf)
/* Callback for iterate_over_threads. Find a resumed thread that has
a pending waitstatus. */
-static int
-resumed_thread_with_pending_status (struct thread_info *tp,
- void *arg)
+static bool
+resumed_thread_with_pending_status (struct thread_info *tp)
{
return tp->resumed () && tp->has_pending_waitstatus ();
}
@@ -6763,8 +6766,7 @@ finish_step_over (struct execution_control_state *ecs)
if (ecs->ws.kind () == TARGET_WAITKIND_THREAD_EXITED)
return 0;
- pending = iterate_over_threads (resumed_thread_with_pending_status,
- nullptr);
+ pending = iterate_over_threads (resumed_thread_with_pending_status);
if (pending != nullptr)
{
struct thread_info *tp = ecs->event_thread;
@@ -9458,7 +9460,7 @@ struct stop_context
ptid_t ptid;
- /* If stopp for a thread event, this is the thread that caused the
+ /* If stopped for a thread event, this is the thread that caused the
stop. */
thread_info_ref thread;
diff --git a/gdb/infrun.h b/gdb/infrun.h
index 4574874..b9b64ac 100644
--- a/gdb/infrun.h
+++ b/gdb/infrun.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1986-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -256,7 +256,8 @@ extern void print_stop_event (struct ui_out *uiout, bool displays = true);
/* Pretty print the results of target_wait, for debugging purposes. */
extern void print_target_wait_results (ptid_t waiton_ptid, ptid_t result_ptid,
- const struct target_waitstatus &ws);
+ const struct target_waitstatus &ws,
+ process_stratum_target *proc_target);
extern int signal_stop_state (int);
diff --git a/gdb/inline-frame.c b/gdb/inline-frame.c
index 088cbfc..d724c28 100644
--- a/gdb/inline-frame.c
+++ b/gdb/inline-frame.c
@@ -1,6 +1,6 @@
/* Inline frame unwinder for GDB.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/inline-frame.h b/gdb/inline-frame.h
index 26858ca..031caa7 100644
--- a/gdb/inline-frame.h
+++ b/gdb/inline-frame.h
@@ -1,6 +1,6 @@
/* Definitions for inline frame support.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/interps.c b/gdb/interps.c
index bd65d1a..00796bc 100644
--- a/gdb/interps.c
+++ b/gdb/interps.c
@@ -1,6 +1,6 @@
/* Manages interpreters for GDB, the GNU debugger.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Written by Jim Ingham <jingham@apple.com> of Apple Computer, Inc.
@@ -496,9 +496,9 @@ interps_notify_solib_loaded (const solib &so)
/* See interps.h. */
void
-interps_notify_solib_unloaded (const solib &so)
+interps_notify_solib_unloaded (const solib &so, bool still_in_use)
{
- interps_notify (&interp::on_solib_unloaded, so);
+ interps_notify (&interp::on_solib_unloaded, so, still_in_use);
}
/* See interps.h. */
diff --git a/gdb/interps.h b/gdb/interps.h
index 987465c..c74495b 100644
--- a/gdb/interps.h
+++ b/gdb/interps.h
@@ -1,6 +1,6 @@
/* Manages interpreters for GDB, the GNU debugger.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Written by Jim Ingham <jingham@apple.com> of Apple Computer, Inc.
@@ -23,6 +23,7 @@
#define GDB_INTERPS_H
#include "gdbsupport/intrusive_list.h"
+#include "gdbsupport/event-loop.h"
struct bpstat;
struct ui_out;
@@ -78,6 +79,13 @@ public:
virtual void pre_command_loop ()
{}
+ /* Service one event.
+ This gives the interpreter a chance to handle its own private
+ events that cannot be fed into the gdb event mechanism.
+ In all cases, this should call gdb_do_one_event at some point. */
+ virtual int do_one_event (int mstimeout = -1)
+ { return gdb_do_one_event (mstimeout); }
+
/* Returns true if this interpreter supports using the readline
library; false if it uses GDB's own simplified readline
emulation. */
@@ -153,8 +161,11 @@ public:
/* Notify the interpreter that solib SO has been loaded. */
virtual void on_solib_loaded (const solib &so) {}
- /* Notify the interpreter that solib SO has been unloaded. */
- virtual void on_solib_unloaded (const solib &so) {}
+ /* Notify the interpreter that solib SO has been unloaded. When
+ STILL_IN_USE is true, the objfile backing SO is still in use,
+ this indicates that SO was loaded multiple times, but only mapped
+ in once (the mapping was reused). */
+ virtual void on_solib_unloaded (const solib &so, bool still_in_use) {}
/* Notify the interpreter that a command it is executing is about to cause
the inferior to proceed. */
@@ -332,8 +343,11 @@ extern void interps_notify_target_resumed (ptid_t ptid);
/* Notify all interpreters that solib SO has been loaded. */
extern void interps_notify_solib_loaded (const solib &so);
-/* Notify all interpreters that solib SO has been unloaded. */
-extern void interps_notify_solib_unloaded (const solib &so);
+/* Notify all interpreters that solib SO has been unloaded. When
+ STILL_IN_USE is true, the objfile backing SO is still in use, this
+ indicates that SO was loaded multiple times, but only mapped in
+ once (the mapping was reused). */
+extern void interps_notify_solib_unloaded (const solib &so, bool still_in_use);
/* Notify all interpreters that the selected traceframe changed.
diff --git a/gdb/iq2000-tdep.c b/gdb/iq2000-tdep.c
index 094f627..49ae744 100644
--- a/gdb/iq2000-tdep.c
+++ b/gdb/iq2000-tdep.c
@@ -1,7 +1,7 @@
/* Target-dependent code for the IQ2000 architecture, for GDB, the GNU
Debugger.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
@@ -348,7 +348,7 @@ iq2000_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
/* Found a line number, use it as end of prologue. */
return sal.end;
- /* No useable line symbol. Use prologue parsing method. */
+ /* No usable line symbol. Use prologue parsing method. */
iq2000_init_frame_cache (&cache);
return iq2000_scan_prologue (gdbarch, func_addr, func_end, NULL, &cache);
}
diff --git a/gdb/jit-reader.in b/gdb/jit-reader.in
index 3dc8a5b..0ebf149 100644
--- a/gdb/jit-reader.in
+++ b/gdb/jit-reader.in
@@ -1,6 +1,6 @@
/* JIT declarations for GDB, the GNU Debugger.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/jit.c b/gdb/jit.c
index d55e371..1944e8a 100644
--- a/gdb/jit.c
+++ b/gdb/jit.c
@@ -1,6 +1,6 @@
/* Handle JIT code generation in the inferior for GDB, the GNU Debugger.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/jit.h b/gdb/jit.h
index 59ad900..43d3054 100644
--- a/gdb/jit.h
+++ b/gdb/jit.h
@@ -1,6 +1,6 @@
/* JIT declarations for GDB, the GNU Debugger.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/language.c b/gdb/language.c
index a8548a2..18a7c9c 100644
--- a/gdb/language.c
+++ b/gdb/language.c
@@ -1,6 +1,6 @@
/* Multiple source language support for GDB.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
Contributed by the Department of Computer Science at the State University
of New York at Buffalo.
@@ -677,14 +677,6 @@ language_defn::is_string_type_p (struct type *type) const
return c_is_string_type_p (type);
}
-/* See language.h. */
-
-std::unique_ptr<compile_instance>
-language_defn::get_compile_instance () const
-{
- return {};
-}
-
/* The default implementation of the get_symbol_name_matcher_inner method
from the language_defn class. Matches with strncmp_iw. */
diff --git a/gdb/language.h b/gdb/language.h
index e6bfa3c..9e9e7f0 100644
--- a/gdb/language.h
+++ b/gdb/language.h
@@ -1,6 +1,6 @@
/* Source-language-related definitions for GDB.
- Copyright (C) 1991-2024 Free Software Foundation, Inc.
+ Copyright (C) 1991-2025 Free Software Foundation, Inc.
Contributed by the Department of Computer Science at the State University
of New York at Buffalo.
@@ -36,7 +36,6 @@ struct value_print_options;
struct type_print_options;
struct lang_varobj_ops;
struct parser_state;
-class compile_instance;
struct completion_match_for_lcd;
class innermost_block_tracker;
@@ -390,37 +389,6 @@ struct language_defn
symbol_name_matcher_ftype *get_symbol_name_matcher
(const lookup_name_info &lookup_name) const;
- /* If this language allows compilation from the gdb command line,
- then this method will return an instance of struct gcc_context
- appropriate to the language. If compilation for this language is
- generally supported, but something goes wrong then an exception
- is thrown. If compilation is not supported for this language
- then this method returns NULL. */
-
- virtual std::unique_ptr<compile_instance> get_compile_instance () const;
-
- /* This method must be overridden if 'get_compile_instance' is
- overridden.
-
- This takes the user-supplied text and returns a new bit of code
- to compile.
-
- INST is the compiler instance being used.
- INPUT is the user's input text.
- GDBARCH is the architecture to use.
- EXPR_BLOCK is the block in which the expression is being
- parsed.
- EXPR_PC is the PC at which the expression is being parsed. */
-
- virtual std::string compute_program (compile_instance *inst,
- const char *input,
- struct gdbarch *gdbarch,
- const struct block *expr_block,
- CORE_ADDR expr_pc) const
- {
- gdb_assert_not_reached ("language_defn::compute_program");
- }
-
/* Hash the given symbol search name. */
virtual unsigned int search_name_hash (const char *name) const;
diff --git a/gdb/linespec.c b/gdb/linespec.c
index 5eef96c..b59c055 100644
--- a/gdb/linespec.c
+++ b/gdb/linespec.c
@@ -1,6 +1,6 @@
/* Parser for linespec for the GNU debugger, GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -1016,7 +1016,7 @@ linespec_lexer_consume_token (linespec_parser *parser)
if (*parser->lexer.stream != '\0')
{
parser->completion_quote_char = '\0';
- parser->completion_quote_end = NULL;;
+ parser->completion_quote_end = NULL;
}
}
@@ -1074,6 +1074,12 @@ add_sal_to_sals (struct linespec_state *self,
struct symtab_and_line *sal,
const char *symname, bool literal_canonical)
{
+ /* We don't want two SALs with the same PC from the
+ same program space. */
+ for (const auto &s : *sals)
+ if (sal->pc == s.pc && sal->pspace == s.pspace)
+ return;
+
sals->push_back (*sal);
if (self->canonical)
@@ -3407,30 +3413,52 @@ lookup_prefix_sym (struct linespec_state *state,
return collector.release_symbols ();
}
-/* A std::sort comparison function for symbols. The resulting order does
- not actually matter; we just need to be able to sort them so that
- symbols with the same program space end up next to each other. */
+/* Compare pspace A and B based on program space ID. Return 0 if equal,
+ 1 if A->num > B->num, -1 otherwise (modeled on strcmp). */
-static bool
-compare_symbols (const block_symbol &a, const block_symbol &b)
+static int
+compare_pspace (const struct program_space *a, const struct program_space *b)
{
- uintptr_t uia, uib;
+ if (a->num > b->num)
+ return 1;
- uia = (uintptr_t) a.symbol->symtab ()->compunit ()->objfile ()->pspace ();
- uib = (uintptr_t) b.symbol->symtab ()->compunit ()->objfile ()->pspace ();
+ if (a->num < b->num)
+ return -1;
- if (uia < uib)
- return true;
- if (uia > uib)
- return false;
+ return 0;
+}
+
+/* An std::sort comparison function for pointers. Don't use this if stable
+ sorting results are required. */
+
+static bool
+compare_pointers (void *a, void *b)
+{
+ return (uintptr_t)a < (uintptr_t)b;
+}
- uia = (uintptr_t) a.symbol;
- uib = (uintptr_t) b.symbol;
+/* An std::sort comparison function for symbols. The requirement is that
+ symbols with the same program space end up next to each other. This is for
+ the purpose of iterating over the symbols and doing something once for each
+ program space. */
- if (uia < uib)
+static bool
+compare_symbols (const block_symbol &a, const block_symbol &b)
+{
+ /* To check for same program space, we could just use a pointer comparison,
+ which gives unstable sorting results. While the assumption is that this
+ doesn't matter, play it safe and compare program space IDs instead. */
+ int cmp
+ = compare_pspace (a.symbol->symtab ()->compunit ()->objfile ()->pspace (),
+ b.symbol->symtab ()->compunit ()->objfile ()->pspace ());
+ if (cmp == -1)
return true;
+ if (cmp == 1)
+ return false;
- return false;
+ /* This gives unstable sorting results. We assume that this doesn't
+ matter. */
+ return compare_pointers (a.symbol, b.symbol);
}
/* Like compare_symbols but for minimal symbols. */
@@ -3438,23 +3466,16 @@ compare_symbols (const block_symbol &a, const block_symbol &b)
static bool
compare_msymbols (const bound_minimal_symbol &a, const bound_minimal_symbol &b)
{
- uintptr_t uia, uib;
-
- uia = (uintptr_t) a.objfile->pspace ();
- uib = (uintptr_t) a.objfile->pspace ();
-
- if (uia < uib)
+ /* See comment in compare_symbols for use of compare_pspace. */
+ int cmp = compare_pspace (a.objfile->pspace (), a.objfile->pspace ());
+ if (cmp == -1)
return true;
- if (uia > uib)
+ if (cmp == 1)
return false;
- uia = (uintptr_t) a.minsym;
- uib = (uintptr_t) b.minsym;
-
- if (uia < uib)
- return true;
-
- return false;
+ /* This gives unstable sorting results. We assume that this doesn't
+ matter. */
+ return compare_pointers (a.minsym, b.minsym);
}
/* Look for all the matching instances of each symbol in NAMES. Only
diff --git a/gdb/linespec.h b/gdb/linespec.h
index 86eb36b..c5cb127 100644
--- a/gdb/linespec.h
+++ b/gdb/linespec.h
@@ -1,5 +1,5 @@
/* Header for GDB line completion.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/linux-fork.c b/gdb/linux-fork.c
index f31c777..338ba03 100644
--- a/gdb/linux-fork.c
+++ b/gdb/linux-fork.c
@@ -1,6 +1,6 @@
/* GNU/Linux native-dependent code for debugging multiple forks.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -30,6 +30,7 @@
#include "gdbthread.h"
#include "source.h"
#include "progspace-and-thread.h"
+#include "cli/cli-style.h"
#include "nat/gdb_ptrace.h"
#include "gdbsupport/gdb_wait.h"
@@ -759,20 +760,14 @@ Please switch to another checkpoint before detaching the current one"));
delete_fork (ptid, current_inferior ());
}
-/* Print information about currently known checkpoints. */
+/* Helper for info_checkpoints_command. */
static void
-info_checkpoints_command (const char *arg, int from_tty)
+print_checkpoints (struct ui_out *uiout, inferior *req_inf, fork_info *req_fi)
{
- struct gdbarch *gdbarch = get_current_arch ();
struct inferior *cur_inf = current_inferior ();
- inferior *req_inf = nullptr;
- fork_info *req_fi = nullptr;
bool will_print_something = false;
- if (arg && *arg)
- std::tie (req_fi, req_inf) = parse_checkpoint_id (arg);
-
/* Figure out whether to print the inferior number in the
checkpoint list. */
bool print_inf = (number_of_inferiors () > 1);
@@ -821,18 +816,21 @@ info_checkpoints_command (const char *arg, int from_tty)
if (!print_inf && num_width < 2)
num_width = 2;
- /* Print column headers... */
- gdb_printf (" ");
- gdb_printf ("%-*s", (print_inf ? (int) inf_width : 0)
- + (int) num_width + 1, "Id");
- gdb_printf ("Active ");
- gdb_printf ("%-*s", (int) targid_width + 1, "Target Id");
- gdb_printf ("Frame\n");
+ ui_out_emit_table table_emitter (uiout, 5, -1, "checkpoints");
+
+ /* Define the columns / headers... */
+ uiout->table_header (1, ui_left, "current", "");
+ uiout->table_header ((print_inf ? (int) inf_width : 0) + (int) num_width,
+ ui_right, "id", "Id");
+ uiout->table_header (6, ui_left, "active", "Active");
+ uiout->table_header (targid_width, ui_left, "target-id", "Target Id");
+ uiout->table_header (1, ui_left, "frame", "Frame");
+ uiout->table_body ();
- /* Print each checkpoint padded, as needed, with spaces so that everything
- lines up. */
for (inferior *inf : all_inferiors (linux_target))
{
+ /* If asked to print a partciular inferior, skip all of
+ those which don't match. */
if (req_inf != nullptr && req_inf != inf)
continue;
@@ -841,59 +839,120 @@ info_checkpoints_command (const char *arg, int from_tty)
for (const fork_info &fi : fork_list (inf))
{
+ /* If asked to print a particular checkpoint, skip all
+ which don't match. */
if (req_fi != nullptr && req_fi != &fi)
continue;
thread_info *t = any_thread_of_inferior (inf);
bool is_current = fi.ptid.pid () == inf->pid;
+
+ ui_out_emit_tuple tuple_emitter (uiout, nullptr);
+
if (is_current && cur_inf == inf)
- gdb_printf ("* ");
+ uiout->field_string ("current", "*");
else
- gdb_printf (" ");
+ uiout->field_skip ("current");
if (print_inf)
- gdb_printf ("%*d.%-*d", (int) inf_width, inf->num,
- (int) num_width, fi.num);
+ uiout->field_fmt ("id", "%d.%d", inf->num, fi.num);
else
- gdb_printf ("%*d ", (int) num_width, fi.num);
+ uiout->field_fmt ("id", "%d", fi.num);
/* Print out 'y' or 'n' for whether the checkpoint is current. */
- gdb_printf ("%-7s", is_current ? "y" : "n");
+ uiout->field_string ("active", is_current ? "y" : "n");
/* Print target id. */
- gdb_printf ("%-*s", (int) targid_width,
- target_pid_to_str (proc_ptid (fi.ptid)).c_str ());
+ uiout->field_string
+ ("target-id", target_pid_to_str (proc_ptid (fi.ptid)).c_str ());
if (t->state == THREAD_RUNNING && is_current)
- gdb_printf (_(" (running)"));
+ uiout->text ("(running)");
else
{
- gdb_printf (_(" at "));
+ /* Print frame info for the checkpoint under
+ consideration.
+
+ Ideally, we'd call print_stack_frame() here in order
+ to have consistency (with regard to how frames are
+ printed) with other parts of GDB as well as to reduce
+ the amount of code required here.
+
+ However, we can't simply print the frame without
+ switching checkpoint contexts. To do that, we could
+ first call scoped_switch_fork_info() - that mostly
+ works - except when the active fork/checkpoint is
+ running, i.e. when t->state == THREAD_RUNNING.
+ Switching context away from a running fork has certain
+ problems associated with it. Certainly, the
+ fork_info struct would need some new fields, but
+ work would also need to be done to do something
+ reasonable should the state of the running fork
+ have changed when switching back to it.
+
+ Note: If scoped_switch_fork_info() is someday
+ changed to allow switching from a running
+ fork/checkpoint, then it might also be possible to
+ allow a restart from a running checkpoint to some
+ other checkpoint. */
+
+ ui_out_emit_tuple frame_tuple_emitter (uiout, "frame");
+ uiout->text ("at ");
+
ULONGEST pc
= (is_current
? regcache_read_pc (get_thread_regcache (t))
: fi.pc);
- gdb_puts (paddress (gdbarch, pc));
+ uiout->field_core_addr ("addr", get_current_arch (), pc);
symtab_and_line sal = find_pc_line (pc, 0);
if (sal.symtab)
- gdb_printf (_(", file %s"),
- symtab_to_filename_for_display (sal.symtab));
+ {
+ uiout->text (", file ");
+ uiout->field_string ("file",
+ symtab_to_filename_for_display (sal.symtab),
+ file_name_style.style ());
+ }
if (sal.line)
- gdb_printf (_(", line %d"), sal.line);
+ {
+ uiout->text (", line ");
+ uiout->field_signed ("line", sal.line,
+ line_number_style.style ());
+ }
if (!sal.symtab && !sal.line)
{
bound_minimal_symbol msym = lookup_minimal_symbol_by_pc (pc);
if (msym.minsym)
- gdb_printf (", <%s>", msym.minsym->linkage_name ());
+ {
+ uiout->text (", <");
+ uiout->field_string ("linkage-name",
+ msym.minsym->linkage_name (),
+ function_name_style.style ());
+ uiout->text (">");
+ }
}
}
- gdb_putc ('\n');
+ uiout->text ("\n");
}
}
}
+/* Print information about currently known checkpoints. */
+
+static void
+info_checkpoints_command (const char *arg, int from_tty)
+{
+ inferior *req_inf = nullptr;
+ fork_info *req_fi = nullptr;
+
+ if (arg && *arg)
+ std::tie (req_fi, req_inf) = parse_checkpoint_id (arg);
+
+ print_checkpoints (current_uiout, req_inf, req_fi);
+
+}
+
/* The PID of the process we're checkpointing. */
static int checkpointing_pid = 0;
diff --git a/gdb/linux-fork.h b/gdb/linux-fork.h
index c3b403b..f69674f 100644
--- a/gdb/linux-fork.h
+++ b/gdb/linux-fork.h
@@ -1,6 +1,6 @@
/* GNU/Linux native-dependent code for debugging multiple forks.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/linux-nat-trad.c b/gdb/linux-nat-trad.c
index b2c982d..b09173e 100644
--- a/gdb/linux-nat-trad.c
+++ b/gdb/linux-nat-trad.c
@@ -1,6 +1,6 @@
/* Generic GNU/Linux target using traditional ptrace register access.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/linux-nat-trad.h b/gdb/linux-nat-trad.h
index c1c031e..1905d25 100644
--- a/gdb/linux-nat-trad.h
+++ b/gdb/linux-nat-trad.h
@@ -1,6 +1,6 @@
/* Generic GNU/Linux target using traditional ptrace register access.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
index b16f9f9..8f5f978 100644
--- a/gdb/linux-nat.c
+++ b/gdb/linux-nat.c
@@ -1,6 +1,6 @@
/* GNU/Linux native-dependent code common to multiple platforms.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -133,7 +133,7 @@ process things as in sync mode, except that the we never block in
sigsuspend.
While processing an event, we may end up momentarily blocked in
-waitpid calls. Those waitpid calls, while blocking, are guarantied to
+waitpid calls. Those waitpid calls, while blocking, are guaranteed to
return quickly. E.g., in all-stop mode, before reporting to the core
that an LWP hit a breakpoint, all LWPs are stopped by sending them
SIGSTOP, and synchronously waiting for the SIGSTOP to be reported.
@@ -702,7 +702,7 @@ lwp_lwpid_htab_add_lwp (struct lwp_info *lp)
/* Head of doubly-linked list of known LWPs. Sorted by reverse
creation order. This order is assumed in some cases. E.g.,
- reaping status after killing alls lwps of a process: the leader LWP
+ reaping status after killing all lwps of a process: the leader LWP
must be reaped last. */
static intrusive_list<lwp_info> lwp_list;
@@ -4029,24 +4029,21 @@ linux_nat_target::pid_to_exec_file (int pid)
class proc_mem_file
{
public:
- proc_mem_file (ptid_t ptid, int fd)
- : m_ptid (ptid), m_fd (fd)
+ proc_mem_file (ptid_t ptid, scoped_fd fd)
+ : m_ptid (ptid), m_fd (std::move (fd))
{
- gdb_assert (m_fd != -1);
+ gdb_assert (m_fd.get () != -1);
}
~proc_mem_file ()
{
linux_nat_debug_printf ("closing fd %d for /proc/%d/task/%ld/mem",
- m_fd, m_ptid.pid (), m_ptid.lwp ());
- close (m_fd);
+ m_fd.get (), m_ptid.pid (), m_ptid.lwp ());
}
- DISABLE_COPY_AND_ASSIGN (proc_mem_file);
-
- int fd ()
+ int fd () const noexcept
{
- return m_fd;
+ return m_fd.get ();
}
private:
@@ -4055,7 +4052,7 @@ private:
ptid_t m_ptid;
/* The file descriptor. */
- int m_fd = -1;
+ scoped_fd m_fd;
};
/* The map between an inferior process id, and the open /proc/PID/mem
@@ -4093,9 +4090,9 @@ open_proc_mem_file (ptid_t ptid)
xsnprintf (filename, sizeof filename,
"/proc/%d/task/%ld/mem", ptid.pid (), ptid.lwp ());
- int fd = gdb_open_cloexec (filename, O_RDWR | O_LARGEFILE, 0).release ();
+ scoped_fd fd = gdb_open_cloexec (filename, O_RDWR | O_LARGEFILE, 0);
- if (fd == -1)
+ if (fd.get () == -1)
{
warning (_("opening /proc/PID/mem file for lwp %d.%ld failed: %s (%d)"),
ptid.pid (), ptid.lwp (),
@@ -4103,12 +4100,11 @@ open_proc_mem_file (ptid_t ptid)
return;
}
+ linux_nat_debug_printf ("opened fd %d for lwp %d.%ld",
+ fd.get (), ptid.pid (), ptid.lwp ());
proc_mem_file_map.emplace (std::piecewise_construct,
std::forward_as_tuple (ptid.pid ()),
- std::forward_as_tuple (ptid, fd));
-
- linux_nat_debug_printf ("opened fd %d for lwp %d.%ld",
- fd, ptid.pid (), ptid.lwp ());
+ std::forward_as_tuple (ptid, std::move (fd)));
}
/* Helper for linux_proc_xfer_memory_partial and
@@ -4589,6 +4585,20 @@ linux_nat_target::fileio_open (struct inferior *inf, const char *filename,
return fd;
}
+/* Implementation of to_fileio_lstat. */
+
+int
+linux_nat_target::fileio_lstat (struct inferior *inf, const char *filename,
+ struct stat *sb, fileio_error *target_errno)
+{
+ int r = linux_mntns_lstat (linux_nat_fileio_pid_of (inf), filename, sb);
+
+ if (r == -1)
+ *target_errno = host_to_fileio_error (errno);
+
+ return r;
+}
+
/* Implementation of to_fileio_readlink. */
std::optional<std::string>
diff --git a/gdb/linux-nat.h b/gdb/linux-nat.h
index b630b85..21ec309 100644
--- a/gdb/linux-nat.h
+++ b/gdb/linux-nat.h
@@ -1,6 +1,6 @@
/* Native debugging support for GNU/Linux (LWP layer).
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -108,6 +108,9 @@ public:
const char *filename,
fileio_error *target_errno) override;
+ int fileio_lstat (struct inferior *inf, const char *filename,
+ struct stat *sb, fileio_error *target_errno) override;
+
int fileio_unlink (struct inferior *inf,
const char *filename,
fileio_error *target_errno) override;
diff --git a/gdb/linux-record.c b/gdb/linux-record.c
index 33efa02..8ceb3f6 100644
--- a/gdb/linux-record.c
+++ b/gdb/linux-record.c
@@ -1,6 +1,6 @@
/* Process record and replay target code for GNU/Linux.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -609,7 +609,7 @@ record_linux_system_call (enum gdb_syscall syscall,
case gdb_sys_setgroups16:
break;
- case gdb_old_select:
+ case gdb_sys_old_select:
{
unsigned long sz_sel_arg = tdep->size_long + tdep->size_pointer * 4;
gdb_byte *a = (gdb_byte *) alloca (sz_sel_arg);
@@ -668,12 +668,12 @@ record_linux_system_call (enum gdb_syscall syscall,
return 1;
break;
- case gdb_old_readdir:
+ case gdb_sys_old_readdir:
if (record_mem_at_reg (regcache, tdep->arg2, tdep->size_old_dirent))
return -1;
break;
- case gdb_old_mmap:
+ case gdb_sys_old_mmap:
break;
case gdb_sys_munmap:
@@ -725,6 +725,7 @@ Do you want to stop the program?"),
break;
case gdb_sys_accept:
+ case gdb_sys_accept4:
case gdb_sys_getsockname:
case gdb_sys_getpeername:
{
diff --git a/gdb/linux-record.h b/gdb/linux-record.h
index 6b1224a..86cfd18 100644
--- a/gdb/linux-record.h
+++ b/gdb/linux-record.h
@@ -1,6 +1,6 @@
/* Process record and replay target code for GNU/Linux.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -266,15 +266,15 @@ enum gdb_syscall {
gdb_sys_settimeofday = 79,
gdb_sys_getgroups16 = 80,
gdb_sys_setgroups16 = 81,
- gdb_old_select = 82,
+ gdb_sys_old_select = 82,
gdb_sys_symlink = 83,
gdb_sys_lstat = 84,
gdb_sys_readlink = 85,
gdb_sys_uselib = 86,
gdb_sys_swapon = 87,
gdb_sys_reboot = 88,
- gdb_old_readdir = 89,
- gdb_old_mmap = 90,
+ gdb_sys_old_readdir = 89,
+ gdb_sys_old_mmap = 90,
gdb_sys_munmap = 91,
gdb_sys_truncate = 92,
gdb_sys_ftruncate = 93,
@@ -541,6 +541,7 @@ enum gdb_syscall {
gdb_sys_msgrcv = 530,
gdb_sys_msgctl = 531,
gdb_sys_semtimedop = 532,
+ gdb_sys_accept4 = 533,
gdb_sys_newfstatat = 540,
};
diff --git a/gdb/linux-tdep.c b/gdb/linux-tdep.c
index d3ab02d..1e339b5 100644
--- a/gdb/linux-tdep.c
+++ b/gdb/linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux, architecture independent.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -44,9 +44,9 @@
#include "solib-svr4.h"
#include "memtag.h"
#include "cli/cli-style.h"
+#include "gdbsupport/unordered_map.h"
#include <ctype.h>
-#include <unordered_map>
/* This enum represents the values that the user can choose when
informing the Linux kernel about which memory mappings will be
@@ -630,9 +630,9 @@ mapping_is_anonymous_p (const char *filename)
return 0;
}
-/* Return 0 if the memory mapping (which is related to FILTERFLAGS, V,
- MAYBE_PRIVATE_P, MAPPING_ANONYMOUS_P, ADDR and OFFSET) should not
- be dumped, or greater than 0 if it should.
+/* Return false if the memory mapping represented by MAP should not be
+ dumped, or true if it should. FILTERFLAGS guides which mappings
+ should be dumped.
In a nutshell, this is the logic that we follow in order to decide
if a mapping should be dumped or not.
@@ -677,11 +677,14 @@ mapping_is_anonymous_p (const char *filename)
header (of a DSO or an executable, for example). If it is, and
if the user is interested in dump it, then we should dump it. */
-static int
-dump_mapping_p (filter_flags filterflags, const struct smaps_vmflags *v,
- int maybe_private_p, int mapping_anon_p, int mapping_file_p,
- const char *filename, ULONGEST addr, ULONGEST offset)
+static bool
+dump_mapping_p (filter_flags filterflags, const smaps_data &map)
{
+ /* Older Linux kernels did not support the "Anonymous:" counter.
+ If it is missing, we can't be sure what to dump, so dump everything. */
+ if (!map.has_anonymous)
+ return true;
+
/* Initially, we trust in what we received from our caller. This
value may not be very precise (i.e., it was probably gathered
from the permission line in the /proc/PID/smaps list, which
@@ -689,41 +692,42 @@ dump_mapping_p (filter_flags filterflags, const struct smaps_vmflags *v,
what we have until we take a look at the "VmFlags:" field
(assuming that the version of the Linux kernel being used
supports it, of course). */
- int private_p = maybe_private_p;
- int dump_p;
+ int private_p = map.priv;
/* We always dump vDSO and vsyscall mappings, because it's likely that
there'll be no file to read the contents from at core load time.
The kernel does the same. */
- if (strcmp ("[vdso]", filename) == 0
- || strcmp ("[vsyscall]", filename) == 0)
- return 1;
+ if (map.filename == "[vdso]" || map.filename == "[vsyscall]")
+ return true;
- if (v->initialized_p)
+ if (map.vmflags.initialized_p)
{
/* We never dump I/O mappings. */
- if (v->io_page)
- return 0;
+ if (map.vmflags.io_page)
+ return false;
/* Check if we should exclude this mapping. */
- if (!dump_excluded_mappings && v->exclude_coredump)
- return 0;
+ if (!dump_excluded_mappings && map.vmflags.exclude_coredump)
+ return false;
/* Update our notion of whether this mapping is shared or
private based on a trustworthy value. */
- private_p = !v->shared_mapping;
+ private_p = !map.vmflags.shared_mapping;
/* HugeTLB checking. */
- if (v->uses_huge_tlb)
+ if (map.vmflags.uses_huge_tlb)
{
if ((private_p && (filterflags & COREFILTER_HUGETLB_PRIVATE))
|| (!private_p && (filterflags & COREFILTER_HUGETLB_SHARED)))
- return 1;
+ return true;
- return 0;
+ return false;
}
}
+ int mapping_anon_p = map.mapping_anon_p;
+ int mapping_file_p = map.mapping_file_p;
+ bool dump_p;
if (private_p)
{
if (mapping_anon_p && mapping_file_p)
@@ -763,7 +767,7 @@ dump_mapping_p (filter_flags filterflags, const struct smaps_vmflags *v,
A mapping contains an ELF header if it is a private mapping, its
offset is zero, and its first word is ELFMAG. */
- if (!dump_p && private_p && offset == 0
+ if (!dump_p && private_p && map.offset == 0
&& (filterflags & COREFILTER_ELF_HEADERS) != 0)
{
/* Useful define specifying the size of the ELF magical
@@ -774,7 +778,7 @@ dump_mapping_p (filter_flags filterflags, const struct smaps_vmflags *v,
/* Let's check if we have an ELF header. */
gdb_byte h[SELFMAG];
- if (target_read_memory (addr, h, SELFMAG) == 0)
+ if (target_read_memory (map.start_address, h, SELFMAG) == 0)
{
/* The EI_MAG* and ELFMAG* constants come from
<elf/common.h>. */
@@ -783,7 +787,7 @@ dump_mapping_p (filter_flags filterflags, const struct smaps_vmflags *v,
{
/* This mapping contains an ELF header, so we
should dump it. */
- dump_p = 1;
+ dump_p = true;
}
}
}
@@ -794,20 +798,24 @@ dump_mapping_p (filter_flags filterflags, const struct smaps_vmflags *v,
/* As above, but return true only when we should dump the NT_FILE
entry. */
-static int
-dump_note_entry_p (filter_flags filterflags, const struct smaps_vmflags *v,
- int maybe_private_p, int mapping_anon_p, int mapping_file_p,
- const char *filename, ULONGEST addr, ULONGEST offset)
+static bool
+dump_note_entry_p (filter_flags filterflags, const smaps_data &map)
{
- /* vDSO and vsyscall mappings will end up in the core file. Don't
- put them in the NT_FILE note. */
- if (strcmp ("[vdso]", filename) == 0
- || strcmp ("[vsyscall]", filename) == 0)
- return 0;
+ /* No NT_FILE entry for mappings with no filename. */
+ if (map.filename.length () == 0)
+ return false;
+
+ /* Special kernel mappings, those with names like '[vdso]' and
+ '[vsyscall]' will be placed in the core file, but shouldn't get an
+ NT_FILE entry. These special mappings all have a zero inode. */
+ if (map.inode == 0
+ && map.filename.front () == '['
+ && map.filename.back () == ']')
+ return false;
/* Otherwise, any other file-based mapping should be placed in the
note. */
- return 1;
+ return true;
}
/* Implement the "info proc" command. */
@@ -854,7 +862,7 @@ linux_info_proc (struct gdbarch *gdbarch, const char *args,
{
xsnprintf (filename, sizeof filename, "/proc/%ld/cmdline", pid);
gdb_byte *buffer;
- ssize_t len = target_fileio_read_alloc (NULL, filename, &buffer);
+ LONGEST len = target_fileio_read_alloc (nullptr, filename, &buffer);
if (len > 0)
{
@@ -1073,7 +1081,7 @@ linux_info_proc (struct gdbarch *gdbarch, const char *args,
gdb_printf (_("Ignored signals bitmap: %s\n"),
hex_string (strtoulst (p, &p, 10)));
if (*p)
- gdb_printf (_("Catched signals bitmap: %s\n"),
+ gdb_printf (_("Caught signals bitmap: %s\n"),
hex_string (strtoulst (p, &p, 10)));
if (*p)
gdb_printf (_("wchan (system call): %s\n"),
@@ -1189,7 +1197,7 @@ linux_read_core_file_mappings
warning (_("malformed note - filename area is too big"));
const bfd_build_id *orig_build_id = cbfd->build_id;
- std::unordered_map<ULONGEST, const bfd_build_id *> vma_map;
+ gdb::unordered_map<ULONGEST, const bfd_build_id *> vma_map;
/* Search for solib build-ids in the core file. Each time one is found,
map the start vma of the corresponding elf header to the build-id. */
@@ -1314,21 +1322,15 @@ linux_core_xfer_siginfo (struct gdbarch *gdbarch, gdb_byte *readbuf,
}
typedef int linux_find_memory_region_ftype (ULONGEST vaddr, ULONGEST size,
- ULONGEST offset, ULONGEST inode,
+ ULONGEST offset,
int read, int write,
int exec, int modified,
bool memory_tagged,
- const char *filename,
+ const std::string &filename,
void *data);
-typedef int linux_dump_mapping_p_ftype (filter_flags filterflags,
- const struct smaps_vmflags *v,
- int maybe_private_p,
- int mapping_anon_p,
- int mapping_file_p,
- const char *filename,
- ULONGEST addr,
- ULONGEST offset);
+typedef bool linux_dump_mapping_p_ftype (filter_flags filterflags,
+ const smaps_data &map);
/* Helper function to parse the contents of /proc/<pid>/smaps into a data
structure, for easy access.
@@ -1590,35 +1592,15 @@ linux_find_memory_regions_full (struct gdbarch *gdbarch,
for (const struct smaps_data &map : smaps)
{
- int should_dump_p = 0;
-
- if (map.has_anonymous)
- {
- should_dump_p
- = should_dump_mapping_p (filterflags, &map.vmflags,
- map.priv,
- map.mapping_anon_p,
- map.mapping_file_p,
- map.filename.c_str (),
- map.start_address,
- map.offset);
- }
- else
- {
- /* Older Linux kernels did not support the "Anonymous:" counter.
- If it is missing, we can't be sure - dump all the pages. */
- should_dump_p = 1;
- }
-
/* Invoke the callback function to create the corefile segment. */
- if (should_dump_p)
+ if (should_dump_mapping_p (filterflags, map))
{
func (map.start_address, map.end_address - map.start_address,
- map.offset, map.inode, map.read, map.write, map.exec,
+ map.offset, map.read, map.write, map.exec,
1, /* MODIFIED is true because we want to dump
the mapping. */
map.vmflags.memory_tagging != 0,
- map.filename.c_str (), obfd);
+ map.filename, obfd);
}
}
@@ -1644,10 +1626,10 @@ struct linux_find_memory_regions_data
static int
linux_find_memory_regions_thunk (ULONGEST vaddr, ULONGEST size,
- ULONGEST offset, ULONGEST inode,
+ ULONGEST offset,
int read, int write, int exec, int modified,
bool memory_tagged,
- const char *filename, void *arg)
+ const std::string &filename, void *arg)
{
struct linux_find_memory_regions_data *data
= (struct linux_find_memory_regions_data *) arg;
@@ -1693,8 +1675,6 @@ struct linux_make_mappings_data
struct type *long_type;
};
-static linux_find_memory_region_ftype linux_make_mappings_callback;
-
/* A callback for linux_find_memory_regions_full that updates the
mappings data for linux_make_mappings_corefile_notes.
@@ -1703,17 +1683,16 @@ static linux_find_memory_region_ftype linux_make_mappings_callback;
static int
linux_make_mappings_callback (ULONGEST vaddr, ULONGEST size,
- ULONGEST offset, ULONGEST inode,
+ ULONGEST offset,
int read, int write, int exec, int modified,
bool memory_tagged,
- const char *filename, void *data)
+ const std::string &filename, void *data)
{
struct linux_make_mappings_data *map_data
= (struct linux_make_mappings_data *) data;
gdb_byte buf[sizeof (ULONGEST)];
- if (*filename == '\0' || inode == 0)
- return 0;
+ gdb_assert (filename.length () > 0);
++map_data->file_count;
@@ -1724,7 +1703,7 @@ linux_make_mappings_callback (ULONGEST vaddr, ULONGEST size,
pack_long (buf, map_data->long_type, offset);
obstack_grow (map_data->data_obstack, buf, map_data->long_type->length ());
- obstack_grow_str0 (map_data->filename_obstack, filename);
+ obstack_grow_str0 (map_data->filename_obstack, filename.c_str ());
return 0;
}
@@ -2180,17 +2159,17 @@ linux_fill_prpsinfo (struct elf_internal_linux_prpsinfo *p)
/* The number of fields read by `sscanf'. */
int n_fields = 0;
- gdb_assert (p != NULL);
+ gdb_assert (p != nullptr);
/* Obtaining PID and filename. */
pid = inferior_ptid.pid ();
xsnprintf (filename, sizeof (filename), "/proc/%d/cmdline", (int) pid);
/* The full name of the program which generated the corefile. */
- gdb_byte *buf = NULL;
- size_t buf_len = target_fileio_read_alloc (NULL, filename, &buf);
+ gdb_byte *buf = nullptr;
+ LONGEST buf_len = target_fileio_read_alloc (nullptr, filename, &buf);
gdb::unique_xmalloc_ptr<char> fname ((char *)buf);
- if (buf_len < 1 || fname.get ()[0] == '\0')
+ if (buf_len < 1 || fname.get () == nullptr || fname.get ()[0] == '\0')
{
/* No program name was read, so we won't be able to retrieve more
information about the process. */
@@ -2749,7 +2728,7 @@ linux_vsyscall_range_raw (struct gdbarch *gdbarch, struct mem_range *range)
in the output, which requires scanning every thread in the thread
group to check whether a VMA is actually a thread's stack. With
Linux 4.4 on an Intel i7-4810MQ @ 2.80GHz, with an inferior with
- a few thousand threads, (1) takes a few miliseconds, while (2)
+ a few thousand threads, (1) takes a few milliseconds, while (2)
takes several seconds. Also note that "smaps", what we read for
determining core dump mappings, is even slower than "maps". */
xsnprintf (filename, sizeof filename, "/proc/%ld/task/%ld/maps", pid, pid);
@@ -3137,6 +3116,7 @@ VM_DONTDUMP flag (\"dd\" in /proc/PID/smaps) when generating the corefile. For\
more information about this file, refer to the manpage of proc(5) and core(5)."),
NULL, show_dump_excluded_mappings,
&setlist, &showlist);
+
}
/* Fetch (and possibly build) an appropriate `link_map_offsets' for
diff --git a/gdb/linux-tdep.h b/gdb/linux-tdep.h
index bf4220b..7485fc1 100644
--- a/gdb/linux-tdep.h
+++ b/gdb/linux-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux, architecture independent.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c
index 9d84187..f60116a 100644
--- a/gdb/linux-thread-db.c
+++ b/gdb/linux-thread-db.c
@@ -1,6 +1,6 @@
/* libthread_db assisted debugging support, generic parts.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -778,9 +778,6 @@ check_thread_db (struct thread_db_info *info, bool log_progress)
}
catch (const gdb_exception_error &except)
{
- if (warning_pre_print)
- gdb_puts (warning_pre_print, gdb_stderr);
-
exception_fprintf (gdb_stderr, except,
_("libthread_db integrity checks failed: "));
diff --git a/gdb/lm32-tdep.c b/gdb/lm32-tdep.c
index c94aef4..ef956b8 100644
--- a/gdb/lm32-tdep.c
+++ b/gdb/lm32-tdep.c
@@ -1,7 +1,7 @@
/* Target-dependent code for Lattice Mico32 processor, for GDB.
Contributed by Jon Beniston <jon@beniston.com>
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/location.c b/gdb/location.c
index 1b40991..378fafc 100644
--- a/gdb/location.c
+++ b/gdb/location.c
@@ -1,5 +1,5 @@
/* Data structures and API for location specs in GDB.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/location.h b/gdb/location.h
index 7772d10..09f25f1 100644
--- a/gdb/location.h
+++ b/gdb/location.h
@@ -1,5 +1,5 @@
/* Data structures and API for location specs in GDB.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/loongarch-linux-nat.c b/gdb/loongarch-linux-nat.c
index bef88ca..3efaa5f 100644
--- a/gdb/loongarch-linux-nat.c
+++ b/gdb/loongarch-linux-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux on LoongArch processors.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
Contributed by Loongson Ltd.
This file is part of GDB.
diff --git a/gdb/loongarch-linux-tdep.c b/gdb/loongarch-linux-tdep.c
index b18cacc..38485e0 100644
--- a/gdb/loongarch-linux-tdep.c
+++ b/gdb/loongarch-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux on LoongArch processors.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
Contributed by Loongson Ltd.
This file is part of GDB.
@@ -581,11 +581,17 @@ static linux_record_tdep loongarch_linux_record_tdep;
static enum gdb_syscall
loongarch_canonicalize_syscall (enum loongarch_syscall syscall_number)
{
-#define SYSCALL_MAP(SYSCALL) case loongarch_sys_##SYSCALL: \
- return gdb_sys_##SYSCALL
+#define SYSCALL_MAP(SYSCALL) \
+ case loongarch_sys_ ## SYSCALL: \
+ return gdb_sys_ ## SYSCALL
-#define UNSUPPORTED_SYSCALL_MAP(SYSCALL) case loongarch_sys_##SYSCALL: \
- return gdb_sys_no_syscall
+#define SYSCALL_MAP_RENAME(SYSCALL, GDB_SYSCALL) \
+ case loongarch_sys_ ## SYSCALL: \
+ return GDB_SYSCALL;
+
+#define UNSUPPORTED_SYSCALL_MAP(SYSCALL) \
+ case loongarch_sys_ ## SYSCALL: \
+ return gdb_sys_no_syscall
switch(syscall_number)
{
@@ -806,8 +812,7 @@ loongarch_canonicalize_syscall (enum loongarch_syscall syscall_number)
SYSCALL_MAP (clone);
SYSCALL_MAP (execve);
- case loongarch_sys_mmap:
- return gdb_sys_mmap2;
+ SYSCALL_MAP_RENAME (mmap, gdb_sys_old_mmap);
SYSCALL_MAP (fadvise64);
SYSCALL_MAP (swapon);
@@ -828,7 +833,7 @@ loongarch_canonicalize_syscall (enum loongarch_syscall syscall_number)
SYSCALL_MAP (move_pages);
UNSUPPORTED_SYSCALL_MAP (rt_tgsigqueueinfo);
UNSUPPORTED_SYSCALL_MAP (perf_event_open);
- UNSUPPORTED_SYSCALL_MAP (accept4);
+ SYSCALL_MAP (accept4);
UNSUPPORTED_SYSCALL_MAP (recvmmsg);
SYSCALL_MAP (wait4);
UNSUPPORTED_SYSCALL_MAP (prlimit64);
@@ -907,7 +912,9 @@ loongarch_canonicalize_syscall (enum loongarch_syscall syscall_number)
default:
return gdb_sys_no_syscall;
}
+
#undef SYSCALL_MAP
+#undef SYSCALL_MAP_RENAME
#undef UNSUPPORTED_SYSCALL_MAP
}
@@ -931,7 +938,7 @@ loongarch_record_all_but_pc_registers (struct regcache *regcache)
return 0;
}
-/* Handler for LoongArch architechture system call instruction recording. */
+/* Handler for LoongArch architecture system call instruction recording. */
static int
loongarch_linux_syscall_record (struct regcache *regcache,
diff --git a/gdb/loongarch-tdep.c b/gdb/loongarch-tdep.c
index 1cab29b..d79ec68 100644
--- a/gdb/loongarch-tdep.c
+++ b/gdb/loongarch-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the LoongArch architecture, for GDB.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -74,7 +74,9 @@ loongarch_insn_is_cond_branch (insn_t insn)
|| (insn & 0xfc000000) == 0x68000000 /* bltu */
|| (insn & 0xfc000000) == 0x6c000000 /* bgeu */
|| (insn & 0xfc000000) == 0x40000000 /* beqz */
- || (insn & 0xfc000000) == 0x44000000) /* bnez */
+ || (insn & 0xfc000000) == 0x44000000 /* bnez */
+ || (insn & 0xfc000300) == 0x48000000 /* bceqz */
+ || (insn & 0xfc000300) == 0x48000100) /* bcnez */
return true;
return false;
}
@@ -314,6 +316,20 @@ loongarch_next_pc (struct regcache *regcache, CORE_ADDR cur_pc)
if (rj != 0)
next_pc = cur_pc + loongarch_decode_imm ("0:5|10:16<<2", insn, 1);
}
+ else if ((insn & 0xfc000300) == 0x48000000) /* bceqz cj, offs21 */
+ {
+ LONGEST cj = regcache_raw_get_signed (regcache,
+ loongarch_decode_imm ("5:3", insn, 0) + LOONGARCH_FIRST_FCC_REGNUM);
+ if (cj == 0)
+ next_pc = cur_pc + loongarch_decode_imm ("0:5|10:16<<2", insn, 1);
+ }
+ else if ((insn & 0xfc000300) == 0x48000100) /* bcnez cj, offs21 */
+ {
+ LONGEST cj = regcache_raw_get_signed (regcache,
+ loongarch_decode_imm ("5:3", insn, 0) + LOONGARCH_FIRST_FCC_REGNUM);
+ if (cj != 0)
+ next_pc = cur_pc + loongarch_decode_imm ("0:5|10:16<<2", insn, 1);
+ }
else if ((insn & 0xffff8000) == 0x002b0000) /* syscall */
{
if (tdep->syscall_next_pc != nullptr)
@@ -351,11 +367,13 @@ loongarch_deal_with_atomic_sequence (struct regcache *regcache, CORE_ADDR cur_pc
{
return {};
}
- /* Look for a conditional branch instruction, put a breakpoint in its destination address. */
+ /* Look for a conditional branch instruction, put a breakpoint in its destination address
+ which is outside of the ll/sc atomic instruction sequence. */
else if (loongarch_insn_is_cond_branch (insn))
{
next_pc = loongarch_next_pc (regcache, cur_pc);
- next_pcs.push_back (next_pc);
+ if (next_pc != cur_pc + insn_len)
+ next_pcs.push_back (next_pc);
}
/* Look for a Store Conditional instruction which closes the atomic sequence. */
else if (loongarch_insn_is_sc (insn))
diff --git a/gdb/loongarch-tdep.h b/gdb/loongarch-tdep.h
index 48e2635..ef965c8 100644
--- a/gdb/loongarch-tdep.h
+++ b/gdb/loongarch-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent header for the LoongArch architecture, for GDB.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/m2-exp.h b/gdb/m2-exp.h
index ce773cb..43f9561 100644
--- a/gdb/m2-exp.h
+++ b/gdb/m2-exp.h
@@ -1,6 +1,6 @@
/* Definitions for Modula-2 expressions
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/m2-exp.y b/gdb/m2-exp.y
index 0201f84..5c31a5e 100644
--- a/gdb/m2-exp.y
+++ b/gdb/m2-exp.y
@@ -1,5 +1,5 @@
/* YACC grammar for Modula-2 expressions, for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
Generated from expread.y (now c-exp.y) and contributed by the Department
of Computer Science at the State University of New York at Buffalo, 1991.
diff --git a/gdb/m2-lang.c b/gdb/m2-lang.c
index 5e9faa6..3533c6a 100644
--- a/gdb/m2-lang.c
+++ b/gdb/m2-lang.c
@@ -1,6 +1,6 @@
/* Modula 2 language support routines for GDB, the GNU debugger.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/m2-lang.h b/gdb/m2-lang.h
index 1551d7e..753fbbe 100644
--- a/gdb/m2-lang.h
+++ b/gdb/m2-lang.h
@@ -1,6 +1,6 @@
/* Modula 2 language support definitions for GDB, the GNU debugger.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/m2-typeprint.c b/gdb/m2-typeprint.c
index 42583b4..12d3120 100644
--- a/gdb/m2-typeprint.c
+++ b/gdb/m2-typeprint.c
@@ -1,5 +1,5 @@
/* Support for printing Modula 2 types for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/m2-valprint.c b/gdb/m2-valprint.c
index 62bfec9..d7d1c73 100644
--- a/gdb/m2-valprint.c
+++ b/gdb/m2-valprint.c
@@ -1,6 +1,6 @@
/* Support for printing Modula 2 values for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/m32c-tdep.c b/gdb/m32c-tdep.c
index 376b362..f8937a2 100644
--- a/gdb/m32c-tdep.c
+++ b/gdb/m32c-tdep.c
@@ -1,6 +1,6 @@
/* Renesas M32C target-dependent code for GDB, the GNU debugger.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/m32r-linux-nat.c b/gdb/m32r-linux-nat.c
index bb86675..7607bd2 100644
--- a/gdb/m32r-linux-nat.c
+++ b/gdb/m32r-linux-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux m32r.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/m32r-linux-tdep.c b/gdb/m32r-linux-tdep.c
index 72c1833..4fbe7d9 100644
--- a/gdb/m32r-linux-tdep.c
+++ b/gdb/m32r-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux m32r.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/m32r-tdep.c b/gdb/m32r-tdep.c
index 8300528..6b6ad03 100644
--- a/gdb/m32r-tdep.c
+++ b/gdb/m32r-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for Renesas M32R, for GDB.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/m32r-tdep.h b/gdb/m32r-tdep.h
index 1cc0de3..3e94c0e 100644
--- a/gdb/m32r-tdep.h
+++ b/gdb/m32r-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for Renesas M32R, for GDB.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/m68hc11-tdep.c b/gdb/m68hc11-tdep.c
index 84a44f5..dd8cbda 100644
--- a/gdb/m68hc11-tdep.c
+++ b/gdb/m68hc11-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for Motorola 68HC11 & 68HC12
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Stephane Carrez, stcarrez@nerim.fr
@@ -1326,11 +1326,12 @@ m68hc11_return_value (struct gdbarch *gdbarch, struct value *function,
rti to return. */
static void
-m68hc11_elf_make_msymbol_special (asymbol *sym, struct minimal_symbol *msym)
+m68hc11_elf_make_msymbol_special (const asymbol *sym,
+ struct minimal_symbol *msym)
{
unsigned char flags;
- flags = ((elf_symbol_type *)sym)->internal_elf_sym.st_other;
+ flags = ((const elf_symbol_type *) sym)->internal_elf_sym.st_other;
if (flags & STO_M68HC12_FAR)
MSYMBOL_SET_RTC (msym);
if (flags & STO_M68HC12_INTERRUPT)
diff --git a/gdb/m68k-bsd-nat.c b/gdb/m68k-bsd-nat.c
index 1fb0c20..04542fd 100644
--- a/gdb/m68k-bsd-nat.c
+++ b/gdb/m68k-bsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for Motorola 68000 BSD's.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/m68k-bsd-tdep.c b/gdb/m68k-bsd-tdep.c
index faec471..09c57c6 100644
--- a/gdb/m68k-bsd-tdep.c
+++ b/gdb/m68k-bsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for Motorola 68000 BSD's.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/m68k-linux-nat.c b/gdb/m68k-linux-nat.c
index 7ea5847..d43ed68 100644
--- a/gdb/m68k-linux-nat.c
+++ b/gdb/m68k-linux-nat.c
@@ -1,6 +1,6 @@
/* Motorola m68k native support for GNU/Linux.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/m68k-linux-tdep.c b/gdb/m68k-linux-tdep.c
index f7388d9..cfc37ab 100644
--- a/gdb/m68k-linux-tdep.c
+++ b/gdb/m68k-linux-tdep.c
@@ -1,6 +1,6 @@
/* Motorola m68k target-dependent support for GNU/Linux.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/m68k-tdep.c b/gdb/m68k-tdep.c
index 4318484..4e25518 100644
--- a/gdb/m68k-tdep.c
+++ b/gdb/m68k-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the Motorola 68000 series.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/m68k-tdep.h b/gdb/m68k-tdep.h
index ad56993..e996958 100644
--- a/gdb/m68k-tdep.h
+++ b/gdb/m68k-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for the Motorola 68000 series.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/machoread.c b/gdb/machoread.c
index ac764c0..cc8aca3 100644
--- a/gdb/machoread.c
+++ b/gdb/machoread.c
@@ -1,5 +1,5 @@
/* Darwin support for GDB, the GNU debugger.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributed by AdaCore.
@@ -164,7 +164,7 @@ macho_symtab_read (minimal_symbol_reader &reader,
S_NO_SO,
/* First SO read. Introduce an SO section, and may be followed by a second
- SO. The SO section should contain onl debugging symbols. */
+ SO. The SO section should contain only debugging symbols. */
S_FIRST_SO,
/* Second non-null SO found, just after the first one. Means that the first
diff --git a/gdb/macrocmd.c b/gdb/macrocmd.c
index 2da5a5b..86b6839 100644
--- a/gdb/macrocmd.c
+++ b/gdb/macrocmd.c
@@ -1,5 +1,5 @@
/* C preprocessor macro expansion commands for GDB.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GDB.
@@ -57,11 +57,11 @@ macro_expand_command (const char *exp, int from_tty)
" expression you\n"
"want to expand."));
- gdb::unique_xmalloc_ptr<macro_scope> ms = default_macro_scope ();
+ macro_scope ms = default_macro_scope ();
- if (ms != nullptr)
+ if (ms.is_valid ())
{
- gdb::unique_xmalloc_ptr<char> expanded = macro_expand (exp, *ms);
+ gdb::unique_xmalloc_ptr<char> expanded = macro_expand (exp, ms);
gdb_puts ("expands to: ");
gdb_puts (expanded.get ());
@@ -85,11 +85,11 @@ macro_expand_once_command (const char *exp, int from_tty)
" the expression\n"
"you want to expand."));
- gdb::unique_xmalloc_ptr<macro_scope> ms = default_macro_scope ();
+ macro_scope ms = default_macro_scope ();
- if (ms != nullptr)
+ if (ms.is_valid ())
{
- gdb::unique_xmalloc_ptr<char> expanded = macro_expand_once (exp, *ms);
+ gdb::unique_xmalloc_ptr<char> expanded = macro_expand_once (exp, ms);
gdb_puts ("expands to: ");
gdb_puts (expanded.get ());
@@ -169,7 +169,6 @@ print_macro_definition (const char *name,
static void
info_macro_command (const char *args, int from_tty)
{
- gdb::unique_xmalloc_ptr<struct macro_scope> ms;
const char *name;
int show_all_macros_named = 0;
const char *arg_start = args;
@@ -201,15 +200,15 @@ info_macro_command (const char *args, int from_tty)
" of the macro\n"
"whose definition you want to see."));
- ms = default_macro_scope ();
+ macro_scope ms = default_macro_scope ();
- if (! ms)
+ if (!ms.is_valid ())
macro_inform_no_debuginfo ();
else if (show_all_macros_named)
- macro_for_each (ms->file->table, [&] (const char *macro_name,
- const macro_definition *macro,
- macro_source_file *source,
- int line)
+ macro_for_each (ms.file->table, [&] (const char *macro_name,
+ const macro_definition *macro,
+ macro_source_file *source,
+ int line)
{
if (strcmp (name, macro_name) == 0)
print_macro_definition (name, macro, source, line);
@@ -218,12 +217,12 @@ info_macro_command (const char *args, int from_tty)
{
struct macro_definition *d;
- d = macro_lookup_definition (ms->file, ms->line, name);
+ d = macro_lookup_definition (ms.file, ms.line, name);
if (d)
{
int line;
struct macro_source_file *file
- = macro_definition_location (ms->file, ms->line, name, &line);
+ = macro_definition_location (ms.file, ms.line, name, &line);
print_macro_definition (name, d, file, line);
}
@@ -232,7 +231,7 @@ info_macro_command (const char *args, int from_tty)
gdb_printf ("The symbol `%s' has no definition as a C/C++"
" preprocessor macro\n"
"at ", name);
- show_pp_source_pos (gdb_stdout, ms->file, ms->line);
+ show_pp_source_pos (gdb_stdout, ms.file, ms.line);
}
}
}
@@ -241,7 +240,7 @@ info_macro_command (const char *args, int from_tty)
static void
info_macros_command (const char *args, int from_tty)
{
- gdb::unique_xmalloc_ptr<struct macro_scope> ms;
+ macro_scope ms;
if (args == NULL)
ms = default_macro_scope ();
@@ -254,10 +253,10 @@ info_macros_command (const char *args, int from_tty)
ms = sal_macro_scope (sals[0]);
}
- if (! ms || ! ms->file || ! ms->file->table)
+ if (!ms.is_valid () || ms.file->table == nullptr)
macro_inform_no_debuginfo ();
else
- macro_for_each_in_scope (ms->file, ms->line, print_macro_definition);
+ macro_for_each_in_scope (ms.file, ms.line, print_macro_definition);
}
diff --git a/gdb/macroexp.c b/gdb/macroexp.c
index bcae7ec..0ada15f 100644
--- a/gdb/macroexp.c
+++ b/gdb/macroexp.c
@@ -1,5 +1,5 @@
/* C preprocessor macro expansion for GDB.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GDB.
diff --git a/gdb/macroexp.h b/gdb/macroexp.h
index 6fd5dc2..0d39629 100644
--- a/gdb/macroexp.h
+++ b/gdb/macroexp.h
@@ -1,5 +1,5 @@
/* Interface to C preprocessor macro expansion for GDB.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GDB.
diff --git a/gdb/macroscope.c b/gdb/macroscope.c
index c1b2238..633ead1 100644
--- a/gdb/macroscope.c
+++ b/gdb/macroscope.c
@@ -1,5 +1,5 @@
/* Functions for deciding which macros are currently in scope.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GDB.
@@ -34,28 +34,29 @@
struct macro_table *macro_user_macros;
-gdb::unique_xmalloc_ptr<struct macro_scope>
+macro_scope
sal_macro_scope (struct symtab_and_line sal)
{
+ macro_scope result;
struct macro_source_file *main_file, *inclusion;
struct compunit_symtab *cust;
if (sal.symtab == NULL)
- return NULL;
+ return result;
cust = sal.symtab->compunit ();
if (cust->macro_table () == NULL)
- return NULL;
+ return result;
- gdb::unique_xmalloc_ptr<struct macro_scope> ms (XNEW (struct macro_scope));
+ macro_scope ms;
main_file = macro_main (cust->macro_table ());
inclusion = macro_lookup_inclusion (main_file, sal.symtab->filename_for_id);
if (inclusion)
{
- ms->file = inclusion;
- ms->line = sal.line;
+ ms.file = inclusion;
+ ms.line = sal.line;
}
else
{
@@ -73,8 +74,8 @@ sal_macro_scope (struct symtab_and_line sal)
For the time being, though, we'll just treat these as
occurring at the end of the main source file. */
- ms->file = main_file;
- ms->line = -1;
+ ms.file = main_file;
+ ms.line = -1;
complaint (_("symtab found for `%s', but that file\n"
"is not covered in the compilation unit's macro information"),
@@ -85,20 +86,16 @@ sal_macro_scope (struct symtab_and_line sal)
}
-gdb::unique_xmalloc_ptr<struct macro_scope>
-user_macro_scope (void)
+macro_scope
+user_macro_scope ()
{
- gdb::unique_xmalloc_ptr<struct macro_scope> ms (XNEW (struct macro_scope));
- ms->file = macro_main (macro_user_macros);
- ms->line = -1;
- return ms;
+ return { macro_main (macro_user_macros), -1 };
}
-gdb::unique_xmalloc_ptr<struct macro_scope>
-default_macro_scope (void)
+macro_scope
+default_macro_scope ()
{
struct symtab_and_line sal;
- gdb::unique_xmalloc_ptr<struct macro_scope> ms;
frame_info_ptr frame;
CORE_ADDR pc;
@@ -128,8 +125,8 @@ default_macro_scope (void)
sal.line = cursal.line;
}
- ms = sal_macro_scope (sal);
- if (! ms)
+ macro_scope ms = sal_macro_scope (sal);
+ if (!ms.is_valid ())
ms = user_macro_scope ();
return ms;
diff --git a/gdb/macroscope.h b/gdb/macroscope.h
index ce9ae33..2cb6a0f 100644
--- a/gdb/macroscope.h
+++ b/gdb/macroscope.h
@@ -1,5 +1,5 @@
/* Interface to functions for deciding which macros are currently in scope.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GDB.
@@ -31,21 +31,25 @@ extern struct macro_table *macro_user_macros;
in scope: a source file (either a main source file or an
#inclusion), and a line number in that file. */
struct macro_scope {
- struct macro_source_file *file;
- int line;
+ struct macro_source_file *file = nullptr;
+ int line = 0;
+
+ /* Return true if this scope is valid. */
+ bool is_valid () const
+ {
+ return file != nullptr;
+ }
};
/* Return a `struct macro_scope' object corresponding to the symtab
and line given in SAL. If we have no macro information for that
- location, or if SAL's pc is zero, return zero. */
-gdb::unique_xmalloc_ptr<struct macro_scope> sal_macro_scope
- (struct symtab_and_line sal);
-
+ location, or if SAL's pc is zero, return an invalid scope. */
+macro_scope sal_macro_scope (struct symtab_and_line sal);
/* Return a `struct macro_scope' object representing just the
user-defined macros. */
-gdb::unique_xmalloc_ptr<struct macro_scope> user_macro_scope (void);
+macro_scope user_macro_scope ();
/* Return a `struct macro_scope' object describing the scope the `macro
expand' and `macro expand-once' commands should use for looking up
@@ -54,7 +58,7 @@ gdb::unique_xmalloc_ptr<struct macro_scope> user_macro_scope (void);
If we have no macro information for the current location, return
the user macro scope. */
-gdb::unique_xmalloc_ptr<struct macro_scope> default_macro_scope (void);
+macro_scope default_macro_scope ();
/* Look up the definition of the macro named NAME in scope at the source
location given by MS. */
diff --git a/gdb/macrotab.c b/gdb/macrotab.c
index 37ae0f2..06f5307 100644
--- a/gdb/macrotab.c
+++ b/gdb/macrotab.c
@@ -1,5 +1,5 @@
/* C preprocessor macro tables for GDB.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GDB.
diff --git a/gdb/macrotab.h b/gdb/macrotab.h
index 1263ba6..43bbe4e 100644
--- a/gdb/macrotab.h
+++ b/gdb/macrotab.h
@@ -1,5 +1,5 @@
/* Interface to C preprocessor macro tables for GDB.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GDB.
diff --git a/gdb/main.c b/gdb/main.c
index b12e5e1..1806ca0 100644
--- a/gdb/main.c
+++ b/gdb/main.c
@@ -1,6 +1,6 @@
/* Top level stuff for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -399,7 +399,7 @@ start_event_loop ()
try
{
- result = gdb_do_one_event ();
+ result = current_interpreter ()->do_one_event ();
}
catch (const gdb_exception_forced_quit &ex)
{
@@ -644,9 +644,9 @@ captured_main_1 (struct captured_main_args *context)
int save_auto_load;
int ret = 1;
- const char *no_color = getenv ("NO_COLOR");
- if (no_color != nullptr && *no_color != '\0')
- cli_styling = false;
+ /* Check for environment variables which might cause GDB to start with
+ styling disabled. */
+ disable_styling_from_environment ();
#ifdef HAVE_USEFUL_SBRK
/* Set this before constructing scoped_command_stats. */
@@ -672,6 +672,8 @@ captured_main_1 (struct captured_main_args *context)
/* Ensure stderr is unbuffered. A Cygwin pty or pipe is implemented
as a Windows pipe, and Windows buffers on pipes. */
setvbuf (stderr, NULL, _IONBF, BUFSIZ);
+
+ windows_initialize_console ();
#endif
/* Note: `error' cannot be called before this point, because the
@@ -705,7 +707,7 @@ captured_main_1 (struct captured_main_args *context)
/* Prefix warning messages with the command name. */
gdb::unique_xmalloc_ptr<char> tmp_warn_preprint
- = xstrprintf ("%s: warning: ", gdb_program_name);
+ = xstrprintf ("%s: ", gdb_program_name);
warning_pre_print = tmp_warn_preprint.get ();
current_directory = getcwd (NULL, 0);
@@ -1027,7 +1029,7 @@ captured_main_1 (struct captured_main_args *context)
quiet = 1;
/* Disable all output styling when running in batch mode. */
- cli_styling = false;
+ disable_cli_styling ();
}
}
@@ -1078,7 +1080,8 @@ captured_main_1 (struct captured_main_args *context)
execarg = argv[optind];
++optind;
current_inferior ()->set_args
- (gdb::array_view<char * const> (&argv[optind], argc - optind));
+ (gdb::array_view<char * const> (&argv[optind], argc - optind),
+ startup_with_shell);
}
else
{
@@ -1123,7 +1126,7 @@ captured_main_1 (struct captured_main_args *context)
/* Do these (and anything which might call wrap_here or *_filtered)
after initialize_all_files() but before the interpreter has been
- installed. Otherwize the help/version messages will be eaten by
+ installed. Otherwise the help/version messages will be eaten by
the interpreter's output handler. */
if (print_version)
@@ -1168,7 +1171,7 @@ captured_main_1 (struct captured_main_args *context)
/* Set off error and warning messages with a blank line. */
tmp_warn_preprint.reset ();
- warning_pre_print = _("\nwarning: ");
+ warning_pre_print = "\n";
/* Read and execute the system-wide gdbinit file, if it exists.
This is done *before* all the command line arguments are
@@ -1273,7 +1276,7 @@ captured_main_1 (struct captured_main_args *context)
current_inferior ()->set_tty (ttyarg);
/* Error messages should no longer be distinguished with extra output. */
- warning_pre_print = _("warning: ");
+ warning_pre_print = "";
/* Read the .gdbinit file in the current directory, *if* it isn't
the same as the $HOME/.gdbinit file (it should exist, also). */
diff --git a/gdb/main.h b/gdb/main.h
index 35dfe9d..0f50b71 100644
--- a/gdb/main.h
+++ b/gdb/main.h
@@ -1,6 +1,6 @@
/* Main interface for GDB, the GNU debugger.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -44,6 +44,9 @@ extern std::string interpreter_p;
return value is in malloc'ed storage. */
extern char *windows_get_absolute_argv0 (const char *argv0);
+/* Initialize Windows console settings. */
+extern void windows_initialize_console ();
+
extern void set_gdb_data_directory (const char *new_data_dir);
#endif /* GDB_MAIN_H */
diff --git a/gdb/maint-test-options.c b/gdb/maint-test-options.c
index 9d76817..25f609b 100644
--- a/gdb/maint-test-options.c
+++ b/gdb/maint-test-options.c
@@ -1,6 +1,6 @@
/* Maintenance commands for testing the options framework.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -137,6 +137,7 @@ struct test_options_opts
int pint_unl_opt = 0;
std::string string_opt;
std::string filename_opt;
+ ui_file_style::color color_opt { ui_file_style::MAGENTA };
test_options_opts () = default;
@@ -149,7 +150,7 @@ struct test_options_opts
gdb_printf (file,
_("-flag %d -xx1 %d -xx2 %d -bool %d "
"-enum %s -uint-unl %s -pint-unl %s -string '%s' "
- "-filename '%s' -- %s\n"),
+ "-filename '%s' -color %s -- %s\n"),
flag_opt,
xx1_opt,
xx2_opt,
@@ -163,6 +164,7 @@ struct test_options_opts
: plongest (pint_unl_opt)),
string_opt.c_str (),
filename_opt.c_str (),
+ color_opt.to_string ().c_str (),
args);
}
};
@@ -245,6 +247,14 @@ static const gdb::option::option_def test_options_option_defs[] = {
nullptr, /* show_cmd_cb */
N_("A filename option."),
},
+
+ /* A color option. */
+ gdb::option::color_option_def<test_options_opts> {
+ "color",
+ [] (test_options_opts *opts) { return &opts->color_opt; },
+ nullptr, /* show_cmd_cb */
+ N_("A color option."),
+ },
};
/* Create an option_def_group for the test_options_opts options, with
diff --git a/gdb/maint-test-settings.c b/gdb/maint-test-settings.c
index 1aaacc2..663190a 100644
--- a/gdb/maint-test-settings.c
+++ b/gdb/maint-test-settings.c
@@ -1,6 +1,6 @@
/* Maintenance commands for testing the settings framework.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/maint.c b/gdb/maint.c
index 4fc70d7..49a308d 100644
--- a/gdb/maint.c
+++ b/gdb/maint.c
@@ -1,6 +1,6 @@
/* Support for GDB maintenance commands.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
Written by Fred Fish at Cygnus Support.
@@ -28,8 +28,6 @@
#include "symtab.h"
#include "block.h"
#include "gdbtypes.h"
-#include "demangle.h"
-#include "gdbcore.h"
#include "expression.h"
#include "language.h"
#include "symfile.h"
@@ -40,6 +38,8 @@
#include "gdbsupport/selftest.h"
#include "inferior.h"
#include "gdbsupport/thread-pool.h"
+#include "event-top.h"
+#include "cp-support.h"
#include "cli/cli-decode.h"
#include "cli/cli-utils.h"
@@ -109,6 +109,18 @@ maintenance_demangle (const char *args, int from_tty)
styled_string (command_style.style (), "demangle"));
}
+/* Print the canonical form of a name. */
+
+static void
+maintenance_canonicalize (const char *args, int from_tty)
+{
+ gdb::unique_xmalloc_ptr<char> canon = cp_canonicalize_string (args);
+ if (canon == nullptr)
+ gdb_printf ("No change.\n");
+ else
+ gdb_printf ("canonical = %s\n", canon.get ());
+}
+
static void
maintenance_time_display (const char *args, int from_tty)
{
@@ -373,6 +385,8 @@ maint_print_all_sections (const char *header, bfd *abfd, objfile *objfile,
for (asection *sect : gdb_bfd_sections (abfd))
{
+ QUIT;
+
obj_section *osect = nullptr;
if (objfile != nullptr)
@@ -906,9 +920,9 @@ maintenance_show_worker_threads (struct ui_file *file, int from_tty,
}
-/* If true, display time usage both at startup and for each command. */
+/* See maint.h. */
-static bool per_command_time;
+bool per_command_time;
/* If true, display space usage both at startup and for each command. */
@@ -1137,6 +1151,72 @@ set_per_command_cmd (const char *args, int from_tty)
}
}
+/* Handle "mt set per-command time". Warn if per-thread run time
+ information is not possible. */
+
+static void
+maintenance_set_command_time_cmd (const char *args, int from_tty,
+ cmd_list_element *c)
+{
+ /* No point warning if this platform can't use multiple threads at
+ all. */
+#if CXX_STD_THREAD
+ static bool already_warned = false;
+ if (per_command_time
+ && !get_run_time_thread_scope_available ()
+ && !already_warned)
+ {
+ warning (_("\
+per-thread run time information not available on this platform"));
+ already_warned = true;
+ }
+#endif
+}
+
+/* See maint.h. */
+
+scoped_time_it::scoped_time_it (const char *what, bool enabled)
+ : m_enabled (enabled),
+ m_what (what),
+ m_start_wall (m_enabled
+ ? std::chrono::steady_clock::now ()
+ : std::chrono::steady_clock::time_point ())
+{
+ if (m_enabled)
+ get_run_time (m_start_user, m_start_sys, run_time_scope::thread);
+}
+
+/* See maint.h. */
+
+scoped_time_it::~scoped_time_it ()
+{
+ if (!m_enabled)
+ return;
+
+ namespace chr = std::chrono;
+ auto end_wall = chr::steady_clock::now ();
+
+ user_cpu_time_clock::time_point end_user;
+ system_cpu_time_clock::time_point end_sys;
+ get_run_time (end_user, end_sys, run_time_scope::thread);
+
+ auto user = end_user - m_start_user;
+ auto sys = end_sys - m_start_sys;
+ auto wall = end_wall - m_start_wall;
+ auto user_ms = chr::duration_cast<chr::milliseconds> (user).count ();
+ auto sys_ms = chr::duration_cast<chr::milliseconds> (sys).count ();
+ auto wall_ms = chr::duration_cast<chr::milliseconds> (wall).count ();
+ auto user_plus_sys_ms = user_ms + sys_ms;
+
+ auto str
+ = string_printf ("Time for \"%s\": wall %.03f, user %.03f, sys %.03f, "
+ "user+sys %.03f, %.01f %% CPU\n",
+ m_what, wall_ms / 1000.0, user_ms / 1000.0,
+ sys_ms / 1000.0, user_plus_sys_ms / 1000.0,
+ user_plus_sys_ms * 100.0 / wall_ms);
+ gdb_stdlog->write_async_safe (str.data (), str.size ());
+}
+
/* Options affecting the "maintenance selftest" command. */
struct maintenance_selftest_options
@@ -1342,6 +1422,12 @@ This command has been moved to \"demangle\"."),
&maintenancelist);
deprecate_cmd (cmd, "demangle");
+ cmd = add_cmd ("canonicalize", class_maintenance, maintenance_canonicalize,
+ _("\
+Show the canonical form of a C++ name.\n\
+Usage: maintenance canonicalize NAME"),
+ &maintenancelist);
+
add_prefix_cmd ("per-command", class_maintenance, set_per_command_cmd, _("\
Per-command statistics settings."),
&per_command_setlist,
@@ -1359,7 +1445,7 @@ Show whether to display per-command execution time."),
_("\
If enabled, the execution time for each command will be\n\
displayed following the command's output."),
- NULL, NULL,
+ maintenance_set_command_time_cmd, NULL,
&per_command_setlist, &per_command_showlist);
add_setshow_boolean_cmd ("space", class_maintenance,
diff --git a/gdb/maint.h b/gdb/maint.h
index 5529d8a..cccb6f6 100644
--- a/gdb/maint.h
+++ b/gdb/maint.h
@@ -1,5 +1,5 @@
/* Support for GDB maintenance commands.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -22,6 +22,9 @@
#include "gdbsupport/run-time-clock.h"
#include <chrono>
+struct obj_section;
+struct objfile;
+
extern void set_per_command_time (int);
extern void set_per_command_space (int);
@@ -67,6 +70,37 @@ class scoped_command_stats
int m_start_nr_blocks;
};
+/* If true, display time usage both at startup and for each command. */
+
+extern bool per_command_time;
+
+/* RAII structure used to measure the time spent by the current thread in a
+ given scope. */
+
+struct scoped_time_it
+{
+ /* WHAT is the prefix to show when the summary line is printed. */
+ scoped_time_it (const char *what, bool enabled = per_command_time);
+
+ DISABLE_COPY_AND_ASSIGN (scoped_time_it);
+ ~scoped_time_it ();
+
+private:
+ bool m_enabled;
+
+ /* Summary line prefix. */
+ const char *m_what;
+
+ /* User time at the start of execution. */
+ user_cpu_time_clock::time_point m_start_user;
+
+ /* System time at the start of execution. */
+ system_cpu_time_clock::time_point m_start_sys;
+
+ /* Wall-clock time at the start of execution. */
+ std::chrono::steady_clock::time_point m_start_wall;
+};
+
extern obj_section *maint_obj_section_from_bfd_section (bfd *abfd,
asection *asection,
objfile *ofile);
diff --git a/gdb/make-init-c b/gdb/make-init-c
index 3458333..5ea6df5 100755
--- a/gdb/make-init-c
+++ b/gdb/make-init-c
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
@@ -43,7 +43,7 @@ echo "/* Do not modify this file. */"
echo "/* It is created automatically by the Makefile. */"
echo "#include <algorithm>"
echo ""
-sed -n -e 's/^\(_initialize_[a-zA-Z0-9_]*\) ()$/\1/p' "$@" | while read -r name; do
+sed -n -e 's/^\(void \|\)\(_initialize_[a-zA-Z0-9_]*\) ()$/\2/p' "$@" | while read -r name; do
echo "extern initialize_file_ftype $name;"
done
echo ""
@@ -53,7 +53,7 @@ echo "initialize_all_files ()"
echo "{"
echo " std::vector<initialize_file_ftype *> functions ="
echo " {"
-sed -n -e 's/^\(_initialize_[a-zA-Z0-9_]*\) ()$/\1/p' "$@" | while read -r name; do
+sed -n -e 's/^\(void \|\)\(_initialize_[a-zA-Z0-9_]*\) ()$/\2/p' "$@" | while read -r name; do
echo " $name,"
done
echo " };"
diff --git a/gdb/make-target-delegates.py b/gdb/make-target-delegates.py
index fc69cb3..17babab 100755
--- a/gdb/make-target-delegates.py
+++ b/gdb/make-target-delegates.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c
index fbfe3a7..51e1907 100644
--- a/gdb/mdebugread.c
+++ b/gdb/mdebugread.c
@@ -1,6 +1,6 @@
/* Read a symbol table in ECOFF format (Third-Eye).
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
Original version contributed by Alessandro Forin (af@cs.cmu.edu) at
CMU. Major work by Per Bothner, John Gilmore and Ian Lance Taylor
@@ -329,7 +329,7 @@ fdr_name (FDR *f)
/* Read in and parse the symtab of the file OBJFILE. Symbols from
different sections are relocated via the SECTION_OFFSETS. */
-void
+static void
mdebug_build_psymtabs (minimal_symbol_reader &reader,
struct objfile *objfile,
const struct ecoff_debug_swap *swap,
@@ -1119,7 +1119,7 @@ parse_symbol (SYMR *sh, union aux_ext *ax, char *ext_sh, int bigend,
case_stBlock_code:
found_ecoff_debugging_info = 1;
- /* Beginnning of (code) block. Value of symbol
+ /* Beginning of (code) block. Value of symbol
is the displacement from procedure start. */
push_parse_stack ();
@@ -2122,7 +2122,7 @@ parse_external (EXTR *es, int bigend, const section_offsets &section_offsets,
/* There is no need to parse the external procedure symbols.
If they are from objects compiled without -g, their index will
be indexNil, and the symbol definition from the minimal symbol
- is preferrable (yielding a function returning int instead of int).
+ is preferable (yielding a function returning int instead of int).
If the index points to a local procedure symbol, the local
symbol already provides the correct type.
Note that the index of the external procedure symbol points
@@ -2488,7 +2488,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
switch (ext_in->asym.st)
{
case stProc:
- /* Beginnning of Procedure */
+ /* Beginning of Procedure */
break;
case stStaticProc:
/* Load time only static procs */
@@ -2671,7 +2671,10 @@ parse_partial_symbols (minimal_symbol_reader &reader,
&sh);
if (strcmp (debug_info->ss + fh->issBase + sh.iss,
stabs_symbol) == 0)
- processing_gcc_compilation = 2;
+ {
+ processing_gcc_compilation = 2;
+ stabs_deprecated_warning ();
+ }
}
if (processing_gcc_compilation != 0)
@@ -2935,7 +2938,7 @@ parse_partial_symbols (minimal_symbol_reader &reader,
name SOs. */
/* Some other compilers (C++ ones in particular) emit
- useless SOs for non-existant .c files. We ignore
+ useless SOs for non-existent .c files. We ignore
all subsequent SOs that immediately follow the
first. */
@@ -4789,6 +4792,27 @@ elfmdebug_build_psymtabs (struct objfile *objfile,
reader.install ();
}
+/* see mdebugread.h. */
+
+void
+mipsmdebug_build_psymtabs (struct objfile *objfile,
+ const struct ecoff_debug_swap *swap,
+ struct ecoff_debug_info *info)
+{
+ bfd *abfd = objfile->obfd.get ();
+
+ minimal_symbol_reader reader (objfile);
+
+ if (!(*swap->read_debug_info) (abfd, nullptr,
+ info))
+ error (_("Error reading ECOFF debugging information: %s"),
+ bfd_errmsg (bfd_get_error ()));
+
+ mdebug_build_psymtabs (reader, objfile, swap, info);
+
+ reader.install ();
+}
+
void _initialize_mdebugread ();
void
_initialize_mdebugread ()
diff --git a/gdb/mdebugread.h b/gdb/mdebugread.h
index 4f43422..f7e9f98 100644
--- a/gdb/mdebugread.h
+++ b/gdb/mdebugread.h
@@ -1,6 +1,6 @@
/* Read a symbol table in ECOFF format (Third-Eye).
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -37,13 +37,38 @@ struct mdebug_extra_func_info
#define MDEBUG_EFI_SYMBOL_NAME "__GDB_EFI_INFO__"
-extern void mdebug_build_psymtabs (minimal_symbol_reader &,
- struct objfile *,
- const struct ecoff_debug_swap *,
- struct ecoff_debug_info *);
+#if defined(MDEBUG_FORMAT_AVAILABLE)
extern void elfmdebug_build_psymtabs (struct objfile *,
const struct ecoff_debug_swap *,
asection *);
+/* Read ECOFF debugging information from a BFD section. This is
+ called from mipsread.c. It parses the section into a
+ ecoff_debug_info struct, and then lets the rest of the file handle
+ it as normal. */
+extern void mipsmdebug_build_psymtabs (struct objfile *,
+ const struct ecoff_debug_swap *,
+ struct ecoff_debug_info *);
+
+#else /* MDEBUG_FORMAT_AVAILABLE */
+
+static inline void
+elfmdebug_build_psymtabs (struct objfile *,
+ const struct ecoff_debug_swap *,
+ asection *)
+{
+ warning (_("No mdebug support available"));
+}
+
+static inline void
+mipsmdebug_build_psymtabs (struct objfile *,
+ const struct ecoff_debug_swap *,
+ struct ecoff_debug_info *)
+{
+ warning (_("No mdebug support available"));
+}
+
+#endif /* MDEBUG_FORMAT_AVAILABLE */
+
#endif /* GDB_MDEBUGREAD_H */
diff --git a/gdb/mem-break.c b/gdb/mem-break.c
index 712ad00..25baa03 100644
--- a/gdb/mem-break.c
+++ b/gdb/mem-break.c
@@ -1,6 +1,6 @@
/* Simulate breakpoints by patching locations in the target system, for GDB.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support. Written by John Gilmore.
diff --git a/gdb/memattr.c b/gdb/memattr.c
index 3499929..81d0de0 100644
--- a/gdb/memattr.c
+++ b/gdb/memattr.c
@@ -1,6 +1,6 @@
/* Memory attributes support, for GDB.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/memattr.h b/gdb/memattr.h
index a6c9e6d..0cf3b3e 100644
--- a/gdb/memattr.h
+++ b/gdb/memattr.h
@@ -1,6 +1,6 @@
/* Memory attributes support, for GDB.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/memory-map.c b/gdb/memory-map.c
index 26c49db..7d4d305 100644
--- a/gdb/memory-map.c
+++ b/gdb/memory-map.c
@@ -1,6 +1,6 @@
/* Routines for handling XML memory maps provided by target.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/memory-map.h b/gdb/memory-map.h
index 59fcd4a..ccfad4f 100644
--- a/gdb/memory-map.h
+++ b/gdb/memory-map.h
@@ -1,6 +1,6 @@
/* Routines for handling XML memory maps provided by target.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/memrange.c b/gdb/memrange.c
index 58749b7..70ea234 100644
--- a/gdb/memrange.c
+++ b/gdb/memrange.c
@@ -1,6 +1,6 @@
/* Memory ranges
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/memrange.h b/gdb/memrange.h
index 1891269..5f35a8c 100644
--- a/gdb/memrange.h
+++ b/gdb/memrange.h
@@ -1,6 +1,6 @@
/* The memory range data structure, and associated utilities.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/memtag.c b/gdb/memtag.c
index 54bdc0a..c747f3c 100644
--- a/gdb/memtag.c
+++ b/gdb/memtag.c
@@ -1,6 +1,6 @@
/* GDB generic memory tagging functions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/memtag.h b/gdb/memtag.h
index 600b4b9..a5eceeb 100644
--- a/gdb/memtag.h
+++ b/gdb/memtag.h
@@ -1,5 +1,5 @@
/* GDB generic memory tagging definitions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mep-tdep.c b/gdb/mep-tdep.c
index 9b6f491..60bae3a 100644
--- a/gdb/mep-tdep.c
+++ b/gdb/mep-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the Toshiba MeP for GDB, the GNU debugger.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
diff --git a/gdb/mi/mi-cmd-break.c b/gdb/mi/mi-cmd-break.c
index 5c78acd..e4cb2e7 100644
--- a/gdb/mi/mi-cmd-break.c
+++ b/gdb/mi/mi-cmd-break.c
@@ -1,5 +1,5 @@
/* MI Command Set - breakpoint and watchpoint commands.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions (a Red Hat company).
This file is part of GDB.
@@ -20,8 +20,6 @@
#include "arch-utils.h"
#include "exceptions.h"
#include "mi-cmds.h"
-#include "ui-out.h"
-#include "mi-out.h"
#include "breakpoint.h"
#include "mi-getopt.h"
#include "observable.h"
@@ -30,7 +28,6 @@
#include "language.h"
#include "location.h"
#include "linespec.h"
-#include "gdbsupport/gdb_obstack.h"
#include <ctype.h>
#include "tracepoint.h"
diff --git a/gdb/mi/mi-cmd-break.h b/gdb/mi/mi-cmd-break.h
index 160c578..89f25d3 100644
--- a/gdb/mi/mi-cmd-break.h
+++ b/gdb/mi/mi-cmd-break.h
@@ -1,5 +1,5 @@
/* MI Command Set - breakpoint and watchpoint commands.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by Intel Corporation.
diff --git a/gdb/mi/mi-cmd-catch.c b/gdb/mi/mi-cmd-catch.c
index 6cba316..8c0d230 100644
--- a/gdb/mi/mi-cmd-catch.c
+++ b/gdb/mi/mi-cmd-catch.c
@@ -1,5 +1,5 @@
/* MI Command Set - catch commands.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by Intel Corporation.
diff --git a/gdb/mi/mi-cmd-disas.c b/gdb/mi/mi-cmd-disas.c
index a311e25..cb839e7 100644
--- a/gdb/mi/mi-cmd-disas.c
+++ b/gdb/mi/mi-cmd-disas.c
@@ -1,5 +1,5 @@
/* MI Command Set - disassemble commands.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions (a Red Hat company).
This file is part of GDB.
@@ -19,7 +19,6 @@
#include "arch-utils.h"
#include "progspace.h"
-#include "target.h"
#include "value.h"
#include "mi-cmds.h"
#include "mi-getopt.h"
diff --git a/gdb/mi/mi-cmd-env.c b/gdb/mi/mi-cmd-env.c
index ae8c5e8..e79af9c 100644
--- a/gdb/mi/mi-cmd-env.c
+++ b/gdb/mi/mi-cmd-env.c
@@ -1,5 +1,5 @@
/* MI Command Set - environment commands.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Red Hat Inc.
@@ -19,11 +19,9 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "inferior.h"
-#include "value.h"
#include "mi-out.h"
#include "mi-cmds.h"
#include "mi-getopt.h"
-#include "symtab.h"
#include "target.h"
#include "gdbsupport/environ.h"
#include "command.h"
diff --git a/gdb/mi/mi-cmd-file.c b/gdb/mi/mi-cmd-file.c
index f2fe435..cf7991f 100644
--- a/gdb/mi/mi-cmd-file.c
+++ b/gdb/mi/mi-cmd-file.c
@@ -1,5 +1,5 @@
/* MI Command Set - file commands.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions (a Red Hat company).
This file is part of GDB.
@@ -20,13 +20,11 @@
#include "mi-cmds.h"
#include "mi-getopt.h"
#include "mi-interp.h"
+#include "progspace.h"
#include "ui-out.h"
#include "symtab.h"
#include "source.h"
-#include "objfiles.h"
#include "solib.h"
-#include "solist.h"
-#include "gdbsupport/gdb_regex.h"
/* Return to the client the absolute path and line number of the
current file being executed. */
@@ -164,10 +162,10 @@ mi_cmd_file_list_shared_libraries (const char *command,
for (const solib &so : current_program_space->solibs ())
{
- if (so.so_name.empty ())
+ if (so.name.empty ())
continue;
- if (pattern != nullptr && !re_exec (so.so_name.c_str ()))
+ if (pattern != nullptr && !re_exec (so.name.c_str ()))
continue;
ui_out_emit_tuple tuple_emitter (uiout, NULL);
diff --git a/gdb/mi/mi-cmd-info.c b/gdb/mi/mi-cmd-info.c
index 628891b..4fc884e 100644
--- a/gdb/mi/mi-cmd-info.c
+++ b/gdb/mi/mi-cmd-info.c
@@ -1,5 +1,5 @@
/* MI Command Set - information commands.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mi/mi-cmd-stack.c b/gdb/mi/mi-cmd-stack.c
index 5e50428..cc26747 100644
--- a/gdb/mi/mi-cmd-stack.c
+++ b/gdb/mi/mi-cmd-stack.c
@@ -1,5 +1,5 @@
/* MI Command Set - stack commands.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions (a Red Hat company).
This file is part of GDB.
@@ -18,18 +18,15 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "event-top.h"
-#include "target.h"
#include "frame.h"
#include "value.h"
#include "mi-cmds.h"
#include "ui-out.h"
#include "symtab.h"
#include "block.h"
-#include "stack.h"
#include "dictionary.h"
#include "language.h"
#include "valprint.h"
-#include "utils.h"
#include "mi-getopt.h"
#include "extension.h"
#include <ctype.h>
@@ -37,7 +34,6 @@
#include <optional>
#include "gdbsupport/gdb-safe-ctype.h"
#include "inferior.h"
-#include "observable.h"
enum what_to_list { locals, arguments, all };
diff --git a/gdb/mi/mi-cmd-target.c b/gdb/mi/mi-cmd-target.c
index fbc6d6c..22bc43e 100644
--- a/gdb/mi/mi-cmd-target.c
+++ b/gdb/mi/mi-cmd-target.c
@@ -1,5 +1,5 @@
/* MI Command Set - target commands.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mi/mi-cmd-var.c b/gdb/mi/mi-cmd-var.c
index f311204..9cbb857 100644
--- a/gdb/mi/mi-cmd-var.c
+++ b/gdb/mi/mi-cmd-var.c
@@ -1,5 +1,5 @@
/* MI Command Set - varobj commands.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions (a Red Hat company).
@@ -29,7 +29,6 @@
#include "mi-getopt.h"
#include "gdbthread.h"
#include "mi-parse.h"
-#include <optional>
#include "inferior.h"
static void varobj_update_one (struct varobj *var,
diff --git a/gdb/mi/mi-cmds.c b/gdb/mi/mi-cmds.c
index c7afb10..53cdcc9 100644
--- a/gdb/mi/mi-cmds.c
+++ b/gdb/mi/mi-cmds.c
@@ -1,5 +1,5 @@
/* MI Command Set for GDB, the GNU debugger.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions (a Red Hat company).
@@ -18,16 +18,15 @@
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 "top.h"
#include "mi-cmds.h"
#include "mi-main.h"
#include "mi-parse.h"
-#include <map>
+#include "gdbsupport/unordered_map.h"
#include <string>
/* MI command table (built at run time). */
-static std::map<std::string, mi_command_up> mi_cmd_table;
+static gdb::unordered_map<std::string, mi_command_up> mi_cmd_table;
/* MI command with a pure MI implementation. */
diff --git a/gdb/mi/mi-cmds.h b/gdb/mi/mi-cmds.h
index 2059202..990ff75 100644
--- a/gdb/mi/mi-cmds.h
+++ b/gdb/mi/mi-cmds.h
@@ -1,6 +1,6 @@
/* MI Command Set for GDB, the GNU debugger.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions (a Red Hat company).
diff --git a/gdb/mi/mi-common.c b/gdb/mi/mi-common.c
index 699ead2..bc01371 100644
--- a/gdb/mi/mi-common.c
+++ b/gdb/mi/mi-common.c
@@ -1,5 +1,5 @@
/* Interface for common GDB/MI data
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mi/mi-common.h b/gdb/mi/mi-common.h
index 4c3951c..c37cbc1 100644
--- a/gdb/mi/mi-common.h
+++ b/gdb/mi/mi-common.h
@@ -1,5 +1,5 @@
/* Interface for common GDB/MI data
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mi/mi-console.c b/gdb/mi/mi-console.c
index 1f8d731..991ad7e 100644
--- a/gdb/mi/mi-console.c
+++ b/gdb/mi/mi-console.c
@@ -1,6 +1,6 @@
/* MI Console code.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions (a Red Hat company).
diff --git a/gdb/mi/mi-console.h b/gdb/mi/mi-console.h
index 89e0f4d..935529c 100644
--- a/gdb/mi/mi-console.h
+++ b/gdb/mi/mi-console.h
@@ -1,5 +1,5 @@
/* MI Command Set - MI Console.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions (a Red Hat company).
This file is part of GDB.
diff --git a/gdb/mi/mi-getopt.c b/gdb/mi/mi-getopt.c
index 143c5b9..2c8615a 100644
--- a/gdb/mi/mi-getopt.c
+++ b/gdb/mi/mi-getopt.c
@@ -1,5 +1,5 @@
/* MI Command Set - MI Option Parser.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions (a Red Hat company).
This file is part of GDB.
diff --git a/gdb/mi/mi-getopt.h b/gdb/mi/mi-getopt.h
index 5bc35aa..e3b0c3e 100644
--- a/gdb/mi/mi-getopt.h
+++ b/gdb/mi/mi-getopt.h
@@ -1,5 +1,5 @@
/* MI Option Parser.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions (a Red Hat company).
This file is part of GDB.
diff --git a/gdb/mi/mi-interp.c b/gdb/mi/mi-interp.c
index ff4a0ff..1c90534 100644
--- a/gdb/mi/mi-interp.c
+++ b/gdb/mi/mi-interp.c
@@ -1,6 +1,6 @@
/* MI Interpreter Definitions and Commands for GDB, the GNU debugger.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -23,7 +23,6 @@
#include "exceptions.h"
#include "interps.h"
#include "event-top.h"
-#include "gdbsupport/event-loop.h"
#include "inferior.h"
#include "infrun.h"
#include "ui-out.h"
@@ -35,7 +34,7 @@
#include "mi-common.h"
#include "observable.h"
#include "gdbthread.h"
-#include "solist.h"
+#include "solib.h"
#include "objfiles.h"
#include "tracepoint.h"
#include "cli-out.h"
@@ -721,15 +720,17 @@ mi_interp::on_target_resumed (ptid_t ptid)
/* See mi-interp.h. */
-void
-mi_output_solib_attribs (ui_out *uiout, const solib &solib)
+static void
+mi_output_solib_attribs_1 (ui_out *uiout, const solib &solib,
+ bool include_symbols_loaded_p)
{
gdbarch *gdbarch = current_inferior ()->arch ();
- uiout->field_string ("id", solib.so_original_name);
- uiout->field_string ("target-name", solib.so_original_name);
- uiout->field_string ("host-name", solib.so_name);
- uiout->field_signed ("symbols-loaded", solib.symbols_loaded);
+ uiout->field_string ("id", solib.original_name);
+ uiout->field_string ("target-name", solib.original_name);
+ uiout->field_string ("host-name", solib.name);
+ if (include_symbols_loaded_p)
+ uiout->field_signed ("symbols-loaded", solib.symbols_loaded);
if (!gdbarch_has_global_solist (current_inferior ()->arch ()))
uiout->field_fmt ("thread-group", "i%d", current_inferior ()->num);
@@ -742,6 +743,14 @@ mi_output_solib_attribs (ui_out *uiout, const solib &solib)
}
}
+/* See mi-interp.h. */
+
+void
+mi_output_solib_attribs (ui_out *uiout, const solib &solib)
+{
+ mi_output_solib_attribs_1 (uiout, solib, true);
+}
+
void
mi_interp::on_solib_loaded (const solib &solib)
{
@@ -760,7 +769,7 @@ mi_interp::on_solib_loaded (const solib &solib)
}
void
-mi_interp::on_solib_unloaded (const solib &solib)
+mi_interp::on_solib_unloaded (const solib &solib, bool still_in_use)
{
ui_out *uiout = this->interp_ui_out ();
@@ -771,11 +780,9 @@ mi_interp::on_solib_unloaded (const solib &solib)
ui_out_redirect_pop redir (uiout, this->event_channel);
- uiout->field_string ("id", solib.so_original_name);
- uiout->field_string ("target-name", solib.so_original_name);
- uiout->field_string ("host-name", solib.so_name);
- if (!gdbarch_has_global_solist (current_inferior ()->arch ()))
- uiout->field_fmt ("thread-group", "i%d", current_inferior ()->num);
+ /* Pass false here so that 'symbols-loaded' is not included. */
+ mi_output_solib_attribs_1 (uiout, solib, false);
+ uiout->field_string ("still-in-use", still_in_use ? "true" : "false");
gdb_flush (this->event_channel);
}
diff --git a/gdb/mi/mi-interp.h b/gdb/mi/mi-interp.h
index 8f5eee6..c9211ba 100644
--- a/gdb/mi/mi-interp.h
+++ b/gdb/mi/mi-interp.h
@@ -1,6 +1,6 @@
/* MI Interpreter Definitions and Commands for GDB, the GNU debugger.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -61,7 +61,7 @@ public:
const char *format) override;
void on_target_resumed (ptid_t ptid) override;
void on_solib_loaded (const solib &so) override;
- void on_solib_unloaded (const solib &so) override;
+ void on_solib_unloaded (const solib &so, bool still_in_use) override;
void on_about_to_proceed () override;
void on_traceframe_changed (int tfnum, int tpnum) override;
void on_tsv_created (const trace_state_variable *tsv) override;
@@ -103,7 +103,7 @@ public:
command was issued. */
int mi_proceeded;
- const char *current_token;
+ const char *current_token = nullptr;
};
/* Output the shared object attributes to UIOUT. */
diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c
index 1d0fae9..cda72ca 100644
--- a/gdb/mi/mi-main.c
+++ b/gdb/mi/mi-main.c
@@ -1,6 +1,6 @@
/* MI Command Set.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions (a Red Hat company).
@@ -30,11 +30,9 @@
#include "mi-cmds.h"
#include "mi-parse.h"
#include "mi-getopt.h"
-#include "mi-console.h"
#include "ui-out.h"
#include "mi-out.h"
#include "interps.h"
-#include "gdbsupport/event-loop.h"
#include "event-top.h"
#include "gdbcore.h"
#include "value.h"
@@ -45,7 +43,6 @@
#include "language.h"
#include "valprint.h"
#include "osdata.h"
-#include "gdbsupport/gdb_splay_tree.h"
#include "tracepoint.h"
#include "ada-lang.h"
#include "linespec.h"
@@ -60,9 +57,8 @@
#include <chrono>
#include "progspace-and-thread.h"
#include "gdbsupport/rsp-low.h"
-#include <algorithm>
-#include <set>
-#include <map>
+#include "gdbsupport/unordered_map.h"
+#include "gdbsupport/unordered_set.h"
enum
{
@@ -254,15 +250,6 @@ proceed_thread (struct thread_info *thread, int pid)
proceed ((CORE_ADDR) -1, GDB_SIGNAL_DEFAULT);
}
-static int
-proceed_thread_callback (struct thread_info *thread, void *arg)
-{
- int pid = *(int *)arg;
-
- proceed_thread (thread, pid);
- return 0;
-}
-
static void
exec_continue (const char *const *argv, int argc)
{
@@ -292,7 +279,11 @@ exec_continue (const char *const *argv, int argc)
pid = inf->pid;
}
- iterate_over_threads (proceed_thread_callback, &pid);
+ iterate_over_threads ([&] (struct thread_info *thread)
+ {
+ proceed_thread (thread, pid);
+ return false;
+ });
disable_commit_resumed.reset_and_commit ();
}
else
@@ -345,21 +336,6 @@ mi_cmd_exec_continue (const char *command, const char *const *argv, int argc)
exec_continue (argv, argc);
}
-static int
-interrupt_thread_callback (struct thread_info *thread, void *arg)
-{
- int pid = *(int *)arg;
-
- if (thread->state != THREAD_RUNNING)
- return 0;
-
- if (thread->ptid.pid () != pid)
- return 0;
-
- target_stop (thread->ptid);
- return 0;
-}
-
/* Interrupt the execution of the target. Note how we must play
around with the token variables, in order to display the current
token in the result of the interrupt command, and the previous
@@ -389,7 +365,17 @@ mi_cmd_exec_interrupt (const char *command, const char *const *argv, int argc)
scoped_disable_commit_resumed disable_commit_resumed
("interrupting all threads of thread group");
- iterate_over_threads (interrupt_thread_callback, &inf->pid);
+ iterate_over_threads ([&] (struct thread_info *thread)
+ {
+ if (thread->state != THREAD_RUNNING)
+ return false;
+
+ if (thread->ptid.pid () != inf->pid)
+ return false;
+
+ target_stop (thread->ptid);
+ return false;
+ });
}
else
{
@@ -482,18 +468,6 @@ mi_cmd_exec_run (const char *command, const char *const *argv, int argc)
}
}
-
-static int
-find_thread_of_process (struct thread_info *ti, void *p)
-{
- int pid = *(int *)p;
-
- if (ti->ptid.pid () == pid && ti->state != THREAD_EXITED)
- return 1;
-
- return 0;
-}
-
void
mi_cmd_target_detach (const char *command, const char *const *argv, int argc)
{
@@ -532,7 +506,10 @@ mi_cmd_target_detach (const char *command, const char *const *argv, int argc)
/* Pick any thread in the desired process. Current
target_detach detaches from the parent of inferior_ptid. */
- tp = iterate_over_threads (find_thread_of_process, &pid);
+ tp = iterate_over_threads ([&] (struct thread_info *ti)
+ {
+ return ti->ptid.pid () == pid && ti->state != THREAD_EXITED;
+ });
if (!tp)
error (_("Thread group is empty"));
@@ -604,43 +581,15 @@ mi_cmd_thread_info (const char *command, const char *const *argv, int argc)
print_thread_info (current_uiout, argv[0], -1);
}
-struct collect_cores_data
-{
- int pid;
- std::set<int> cores;
-};
-
-static int
-collect_cores (struct thread_info *ti, void *xdata)
-{
- struct collect_cores_data *data = (struct collect_cores_data *) xdata;
-
- if (ti->ptid.pid () == data->pid)
- {
- int core = target_core_of_thread (ti->ptid);
-
- if (core != -1)
- data->cores.insert (core);
- }
-
- return 0;
-}
-
-struct print_one_inferior_data
-{
- int recurse;
- const std::set<int> *inferiors;
-};
-
static void
print_one_inferior (struct inferior *inferior, bool recurse,
- const std::set<int> &ids)
+ const gdb::unordered_set<int> &ids)
{
struct ui_out *uiout = current_uiout;
if (ids.empty () || (ids.find (inferior->pid) != ids.end ()))
{
- struct collect_cores_data data;
+ gdb::unordered_set<int> cores;
ui_out_emit_tuple tuple_emitter (uiout, NULL);
uiout->field_fmt ("id", "i%d", inferior->num);
@@ -656,15 +605,24 @@ print_one_inferior (struct inferior *inferior, bool recurse,
if (inferior->pid != 0)
{
- data.pid = inferior->pid;
- iterate_over_threads (collect_cores, &data);
+ iterate_over_threads ([&] (struct thread_info *ti)
+ {
+ if (ti->ptid.pid () == inferior->pid)
+ {
+ int core = target_core_of_thread (ti->ptid);
+
+ if (core != -1)
+ cores.insert (core);
+ }
+ return false;
+ });
}
- if (!data.cores.empty ())
+ if (!cores.empty ())
{
ui_out_emit_list list_emitter (uiout, "cores");
- for (int b : data.cores)
+ for (int b : cores)
uiout->field_signed (NULL, b);
}
@@ -690,13 +648,13 @@ output_cores (struct ui_out *uiout, const char *field_name, const char *xcores)
}
static void
-list_available_thread_groups (const std::set<int> &ids, int recurse)
+list_available_thread_groups (const gdb::unordered_set<int> &ids, int recurse)
{
struct ui_out *uiout = current_uiout;
/* This keeps a map from integer (pid) to vector of struct osdata_item.
The vector contains information about all threads for the given pid. */
- std::map<int, std::vector<osdata_item>> tree;
+ gdb::unordered_map<int, std::vector<osdata_item>> tree;
/* get_osdata will throw if it cannot return data. */
std::unique_ptr<osdata> data = get_osdata ("processes");
@@ -773,7 +731,7 @@ mi_cmd_list_thread_groups (const char *command, const char *const *argv,
struct ui_out *uiout = current_uiout;
int available = 0;
int recurse = 0;
- std::set<int> ids;
+ gdb::unordered_set<int> ids;
enum opt
{
@@ -2260,7 +2218,7 @@ timestamp (struct mi_timestamp *tv)
using namespace std::chrono;
tv->wallclock = steady_clock::now ();
- run_time_clock::now (tv->utime, tv->stime);
+ get_run_time (tv->utime, tv->stime, run_time_scope::process);
}
static void
diff --git a/gdb/mi/mi-main.h b/gdb/mi/mi-main.h
index af67029..a857d33 100644
--- a/gdb/mi/mi-main.h
+++ b/gdb/mi/mi-main.h
@@ -1,6 +1,6 @@
/* MI Internal Functions for GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mi/mi-out.c b/gdb/mi/mi-out.c
index 9ad26e7..6adf108 100644
--- a/gdb/mi/mi-out.c
+++ b/gdb/mi/mi-out.c
@@ -1,6 +1,6 @@
/* MI Command Set - output generating routines.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions (a Red Hat company).
@@ -323,7 +323,6 @@ mi_ui_out::version ()
mi_ui_out::mi_ui_out (int mi_version)
: ui_out (make_flags (mi_version)),
m_suppress_field_separator (false),
- m_suppress_output (false),
m_mi_version (mi_version)
{
string_file *stream = new string_file ();
diff --git a/gdb/mi/mi-out.h b/gdb/mi/mi-out.h
index 0112d5a..ec3de74 100644
--- a/gdb/mi/mi-out.h
+++ b/gdb/mi/mi-out.h
@@ -1,5 +1,5 @@
/* MI Command Set - MI output generating routines for GDB.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions (a Red Hat company).
This file is part of GDB.
@@ -139,7 +139,6 @@ private:
}
bool m_suppress_field_separator;
- bool m_suppress_output;
int m_mi_version;
std::vector<ui_file *> m_streams;
};
diff --git a/gdb/mi/mi-parse.c b/gdb/mi/mi-parse.c
index 8804c98..0af90cb 100644
--- a/gdb/mi/mi-parse.c
+++ b/gdb/mi/mi-parse.c
@@ -1,6 +1,6 @@
/* MI Command Set - MI parser.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions (a Red Hat company).
@@ -21,7 +21,6 @@
#include "mi-cmds.h"
#include "mi-parse.h"
-#include "charset.h"
#include <ctype.h>
#include "cli/cli-utils.h"
diff --git a/gdb/mi/mi-parse.h b/gdb/mi/mi-parse.h
index 22d1018..73d39b8 100644
--- a/gdb/mi/mi-parse.h
+++ b/gdb/mi/mi-parse.h
@@ -1,5 +1,5 @@
/* MI Command Set - MI Command Parser.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions (a Red Hat company).
This file is part of GDB.
diff --git a/gdb/mi/mi-symbol-cmds.c b/gdb/mi/mi-symbol-cmds.c
index e4d890f..4f5562d 100644
--- a/gdb/mi/mi-symbol-cmds.c
+++ b/gdb/mi/mi-symbol-cmds.c
@@ -1,5 +1,5 @@
/* MI Command Set - symbol commands.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/microblaze-linux-tdep.c b/gdb/microblaze-linux-tdep.c
index 49cdfc6..8dcbeaa 100644
--- a/gdb/microblaze-linux-tdep.c
+++ b/gdb/microblaze-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for Xilinx MicroBlaze.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -49,6 +49,9 @@ microblaze_linux_memory_remove_breakpoint (struct gdbarch *gdbarch,
/* Determine appropriate breakpoint contents and size for this address. */
bp = gdbarch_breakpoint_from_pc (gdbarch, &addr, &bplen);
+ /* Make sure we see the memory breakpoints. */
+ scoped_restore restore_memory
+ = make_scoped_restore_show_memory_breakpoints (1);
val = target_read_memory (addr, old_contents, bplen);
/* If our breakpoint is no longer at the address, this means that the
diff --git a/gdb/microblaze-tdep.c b/gdb/microblaze-tdep.c
index 99c0fc5..bc728b6 100644
--- a/gdb/microblaze-tdep.c
+++ b/gdb/microblaze-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for Xilinx MicroBlaze.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/microblaze-tdep.h b/gdb/microblaze-tdep.h
index 7b5924e..b2fb5e7 100644
--- a/gdb/microblaze-tdep.h
+++ b/gdb/microblaze-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for Xilinx MicroBlaze.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mingw-hdep.c b/gdb/mingw-hdep.c
index 53815b2..84a7b9f 100644
--- a/gdb/mingw-hdep.c
+++ b/gdb/mingw-hdep.c
@@ -1,6 +1,6 @@
/* Host support routines for MinGW, for GDB, the GNU debugger.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -22,6 +22,7 @@
#include "gdbsupport/event-loop.h"
#include "gdbsupport/gdb_select.h"
#include "inferior.h"
+#include "cli/cli-style.h"
#include <windows.h>
#include <signal.h>
@@ -212,7 +213,30 @@ static int mingw_console_initialized;
static HANDLE hstdout = INVALID_HANDLE_VALUE;
/* Text attribute to use for normal text (the "none" pseudo-color). */
-static SHORT norm_attr;
+static SHORT norm_attr;
+
+/* Initialize settings related to the console. */
+
+void
+windows_initialize_console ()
+{
+ hstdout = (HANDLE)_get_osfhandle (fileno (stdout));
+ DWORD cmode;
+ CONSOLE_SCREEN_BUFFER_INFO csbi;
+
+ if (hstdout != INVALID_HANDLE_VALUE
+ && GetConsoleMode (hstdout, &cmode) != 0
+ && GetConsoleScreenBufferInfo (hstdout, &csbi))
+ {
+ norm_attr = csbi.wAttributes;
+ mingw_console_initialized = 1;
+ }
+ else if (hstdout != INVALID_HANDLE_VALUE)
+ mingw_console_initialized = -1; /* valid, but not a console device */
+
+ if (mingw_console_initialized > 0)
+ no_emojis ();
+}
/* The most recently applied style. */
static ui_file_style last_style;
@@ -223,22 +247,6 @@ static ui_file_style last_style;
int
gdb_console_fputs (const char *linebuf, FILE *fstream)
{
- if (!mingw_console_initialized)
- {
- hstdout = (HANDLE)_get_osfhandle (fileno (fstream));
- DWORD cmode;
- CONSOLE_SCREEN_BUFFER_INFO csbi;
-
- if (hstdout != INVALID_HANDLE_VALUE
- && GetConsoleMode (hstdout, &cmode) != 0
- && GetConsoleScreenBufferInfo (hstdout, &csbi))
- {
- norm_attr = csbi.wAttributes;
- mingw_console_initialized = 1;
- }
- else if (hstdout != INVALID_HANDLE_VALUE)
- mingw_console_initialized = -1; /* valid, but not a console device */
- }
/* If our stdout is not a console device, let the default 'fputs'
handle the task. */
if (mingw_console_initialized <= 0)
diff --git a/gdb/minidebug.c b/gdb/minidebug.c
index b3a1f12..668c55c 100644
--- a/gdb/minidebug.c
+++ b/gdb/minidebug.c
@@ -1,6 +1,6 @@
/* Read MiniDebugInfo data from an objfile.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/minsyms.c b/gdb/minsyms.c
index 7b03e38..4a6459a 100644
--- a/gdb/minsyms.c
+++ b/gdb/minsyms.c
@@ -1,5 +1,5 @@
/* GDB routines for manipulating the minimal symbol tables.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support, using pieces from other GDB modules.
This file is part of GDB.
@@ -37,6 +37,7 @@
#include <ctype.h>
+#include "maint.h"
#include "symtab.h"
#include "bfd.h"
#include "filenames.h"
@@ -1478,9 +1479,11 @@ minimal_symbol_reader::install ()
msymbols = m_objfile->per_bfd->msymbols.get ();
/* Arbitrarily require at least 10 elements in a thread. */
- gdb::parallel_for_each (10, &msymbols[0], &msymbols[mcount],
+ gdb::parallel_for_each<10> (&msymbols[0], &msymbols[mcount],
[&] (minimal_symbol *start, minimal_symbol *end)
{
+ scoped_time_it time_it ("minsyms install worker");
+
for (minimal_symbol *msym = start; msym < end; ++msym)
{
size_t idx = msym - msymbols;
@@ -1688,7 +1691,8 @@ find_minsym_type_and_address (minimal_symbol *msymbol,
{
/* Skip translation if caller does not need the address. */
if (address_p != NULL)
- *address_p = target_translate_tls_address (objfile, addr);
+ *address_p = target_translate_tls_address
+ (objfile, addr, bound_msym.minsym->print_name ());
return builtin_type (objfile)->nodebug_tls_symbol;
}
diff --git a/gdb/minsyms.h b/gdb/minsyms.h
index 2327a1b..709faa5 100644
--- a/gdb/minsyms.h
+++ b/gdb/minsyms.h
@@ -1,6 +1,6 @@
/* Minimal symbol table definitions for GDB.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mips-fbsd-nat.c b/gdb/mips-fbsd-nat.c
index b4d4104..667a4bc 100644
--- a/gdb/mips-fbsd-nat.c
+++ b/gdb/mips-fbsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for FreeBSD/mips.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mips-fbsd-tdep.c b/gdb/mips-fbsd-tdep.c
index 7736078..c280527 100644
--- a/gdb/mips-fbsd-tdep.c
+++ b/gdb/mips-fbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for FreeBSD/mips.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mips-fbsd-tdep.h b/gdb/mips-fbsd-tdep.h
index 201b1e5..5ae580a 100644
--- a/gdb/mips-fbsd-tdep.h
+++ b/gdb/mips-fbsd-tdep.h
@@ -1,6 +1,6 @@
/* Common target dependent code for GDB on MIPS systems running FreeBSD.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mips-linux-nat.c b/gdb/mips-linux-nat.c
index 3d072ea..b4b5788 100644
--- a/gdb/mips-linux-nat.c
+++ b/gdb/mips-linux-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux on MIPS processors.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mips-linux-tdep.c b/gdb/mips-linux-tdep.c
index b076d24..bf3df36 100644
--- a/gdb/mips-linux-tdep.c
+++ b/gdb/mips-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux on MIPS processors.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -30,7 +30,6 @@
#include "gdbtypes.h"
#include "objfiles.h"
#include "solib.h"
-#include "solist.h"
#include "symtab.h"
#include "target-descriptions.h"
#include "regset.h"
@@ -667,24 +666,24 @@ mips_linux_in_dynsym_stub (CORE_ADDR pc)
return 1;
}
-/* Return non-zero iff PC belongs to the dynamic linker resolution
+/* Return true iff PC belongs to the dynamic linker resolution
code, a PLT entry, or a lazy binding stub. */
-static int
+static bool
mips_linux_in_dynsym_resolve_code (CORE_ADDR pc)
{
/* Check whether PC is in the dynamic linker. This also checks
whether it is in the .plt section, used by non-PIC executables. */
if (svr4_in_dynsym_resolve_code (pc))
- return 1;
+ return true;
/* Likewise for the stubs. They live in the .MIPS.stubs section these
days, so we check if the PC is within, than fall back to a pattern
match. */
if (mips_linux_in_dynsym_stub (pc))
- return 1;
+ return true;
- return 0;
+ return false;
}
/* See the comments for SKIP_SOLIB_RESOLVER at the top of infrun.c,
diff --git a/gdb/mips-linux-tdep.h b/gdb/mips-linux-tdep.h
index 8670c0b..362c148 100644
--- a/gdb/mips-linux-tdep.h
+++ b/gdb/mips-linux-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux on MIPS processors.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mips-netbsd-nat.c b/gdb/mips-netbsd-nat.c
index 3576c09..51e3878 100644
--- a/gdb/mips-netbsd-nat.c
+++ b/gdb/mips-netbsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for MIPS systems running NetBSD.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mips-netbsd-tdep.c b/gdb/mips-netbsd-tdep.c
index b8134a6..c9bdaa6 100644
--- a/gdb/mips-netbsd-tdep.c
+++ b/gdb/mips-netbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for NetBSD/mips.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Wasabi Systems, Inc.
diff --git a/gdb/mips-netbsd-tdep.h b/gdb/mips-netbsd-tdep.h
index e9544f0..5680661 100644
--- a/gdb/mips-netbsd-tdep.h
+++ b/gdb/mips-netbsd-tdep.h
@@ -1,6 +1,6 @@
/* Common target dependent code for GDB on MIPS systems running NetBSD.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mips-sde-tdep.c b/gdb/mips-sde-tdep.c
index 783e6fd..1f50ef0 100644
--- a/gdb/mips-sde-tdep.c
+++ b/gdb/mips-sde-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for SDE on MIPS processors.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index a28c99d..c64cd47 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the MIPS architecture, for GDB, the GNU Debugger.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
Contributed by Alessandro Forin(af@cs.cmu.edu) at CMU
and by Per Bothner(bothner@cs.wisc.edu) at U.Wisconsin.
@@ -220,6 +220,7 @@ static std::string mips_disassembler_options;
to the ABI we have selected, perhaps via a `set mips abi ...'
override, rather than ones inferred from the ABI set in the ELF
headers of the binary file selected for debugging. */
+
static const char mips_disassembler_options_o32[] = "gpr-names=32";
static const char mips_disassembler_options_n32[] = "gpr-names=n32";
static const char mips_disassembler_options_n64[] = "gpr-names=64";
@@ -421,9 +422,10 @@ mips_unmake_compact_addr (CORE_ADDR addr)
in a minimal symbol. */
static void
-mips_elf_make_msymbol_special (asymbol * sym, struct minimal_symbol *msym)
+mips_elf_make_msymbol_special (const asymbol * sym,
+ struct minimal_symbol *msym)
{
- elf_symbol_type *elfsym = (elf_symbol_type *) sym;
+ const elf_symbol_type *elfsym = (const elf_symbol_type *) sym;
unsigned char st_other;
if ((sym->flags & BSF_SYNTHETIC) == 0)
@@ -633,7 +635,6 @@ static const char * const mips_linux_reg_names[NUM_MIPS_PROCESSOR_REGS] = {
"fsr", "fir"
};
-
/* Return the name of the register corresponding to REGNO. */
static const char *
mips_register_name (struct gdbarch *gdbarch, int regno)
@@ -657,7 +658,7 @@ mips_register_name (struct gdbarch *gdbarch, int regno)
enum mips_abi abi = mips_abi (gdbarch);
- /* Map [gdbarch_num_regs .. 2*gdbarch_num_regs) onto the raw registers,
+ /* Map [gdbarch_num_regs .. 2*gdbarch_num_regs) onto the raw registers,
but then don't make the raw register names visible. This (upper)
range of user visible register numbers are the pseudo-registers.
@@ -668,6 +669,7 @@ mips_register_name (struct gdbarch *gdbarch, int regno)
configured to be 32-bits wide. The registers that the user
sees - the pseudo registers - match the users expectations
given the programming model being used. */
+
int rawnum = regno % gdbarch_num_regs (gdbarch);
if (regno < gdbarch_num_regs (gdbarch))
return "";
@@ -1005,7 +1007,7 @@ mips_value_to_register (const frame_info_ptr &frame, int regnum,
size_t len = type->length ();
frame_info_ptr next_frame = get_next_frame_sentinel_okay (frame);
- /* Sign extend values, irrespective of type, that are stored to
+ /* Sign extend values, irrespective of type, that are stored to
a 64-bit general purpose register. (32-bit unsigned values
are stored as signed quantities within a 64-bit register.
When performing an operation, in compiled code, that combines
@@ -1236,6 +1238,7 @@ mips_pc_is_mips16 (struct gdbarch *gdbarch, CORE_ADDR memaddr)
elfread.c in the high bit of the info field. Use this to decide
if the function is MIPS16. Otherwise if bit 0 of the address is
set, then ELF file flags will tell if this is a MIPS16 function. */
+
bound_minimal_symbol sym
= lookup_minimal_symbol_by_pc (make_compact_addr (memaddr));
if (sym.minsym)
@@ -1254,6 +1257,7 @@ mips_pc_is_micromips (struct gdbarch *gdbarch, CORE_ADDR memaddr)
if the function is microMIPS. Otherwise if bit 0 of the address
is set, then ELF file flags will tell if this is a microMIPS
function. */
+
bound_minimal_symbol sym
= lookup_minimal_symbol_by_pc (make_compact_addr (memaddr));
if (sym.minsym)
@@ -1273,6 +1277,7 @@ mips_pc_isa (struct gdbarch *gdbarch, CORE_ADDR memaddr)
this to decide if the function is MIPS16 or microMIPS or normal
MIPS. Otherwise if bit 0 of the address is set, then ELF file
flags will tell if this is a MIPS16 or a microMIPS function. */
+
bound_minimal_symbol sym
= lookup_minimal_symbol_by_pc (make_compact_addr (memaddr));
if (sym.minsym)
@@ -1566,7 +1571,7 @@ mips_insn_size (enum mips_isa isa, ULONGEST insn)
else
return MIPS_INSN16_SIZE;
case ISA_MIPS:
- return MIPS_INSN32_SIZE;
+ return MIPS_INSN32_SIZE;
}
internal_error (_("invalid ISA"));
}
@@ -1704,9 +1709,8 @@ mips32_next_pc (struct regcache *regcache, CORE_ADDR pc)
== branch_if)
pc += mips32_relative_offset (inst) + 4;
else
- pc += 8; /* After the delay slot. */
+ pc += 8; /* After the delay slot. */
}
-
else
pc += 4; /* Not a branch, next instruction is easy. */
}
@@ -1725,7 +1729,7 @@ mips32_next_pc (struct regcache *regcache, CORE_ADDR pc)
/* Set PC to that address. */
pc = regcache_raw_get_signed (regcache, rtype_rs (inst));
break;
- case 12: /* SYSCALL */
+ case 12: /* SYSCALL */
{
mips_gdbarch_tdep *tdep
= gdbarch_tdep<mips_gdbarch_tdep> (gdbarch);
@@ -1740,10 +1744,10 @@ mips32_next_pc (struct regcache *regcache, CORE_ADDR pc)
pc += 4;
}
- break; /* end SPECIAL */
- case 1: /* REGIMM */
+ break; /* end SPECIAL */
+ case 1: /* REGIMM */
{
- op = itype_rt (inst); /* branch condition */
+ op = itype_rt (inst); /* Branch condition. */
switch (op)
{
case 0: /* BLTZ */
@@ -1754,7 +1758,7 @@ mips32_next_pc (struct regcache *regcache, CORE_ADDR pc)
if (regcache_raw_get_signed (regcache, itype_rs (inst)) < 0)
pc += mips32_relative_offset (inst) + 4;
else
- pc += 8; /* after the delay slot */
+ pc += 8; /* After the delay slot. */
break;
case 1: /* BGEZ */
case 3: /* BGEZL */
@@ -1763,7 +1767,7 @@ mips32_next_pc (struct regcache *regcache, CORE_ADDR pc)
if (regcache_raw_get_signed (regcache, itype_rs (inst)) >= 0)
pc += mips32_relative_offset (inst) + 4;
else
- pc += 8; /* after the delay slot */
+ pc += 8; /* After the delay slot. */
break;
case 0x1c: /* BPOSGE32 */
case 0x1e: /* BPOSGE64 */
@@ -1789,7 +1793,7 @@ mips32_next_pc (struct regcache *regcache, CORE_ADDR pc)
pc += 4;
}
}
- break; /* end REGIMM */
+ break; /* end REGIMM */
case 2: /* J */
case 3: /* JAL */
{
@@ -2046,27 +2050,27 @@ micromips_next_pc (struct regcache *regcache, CORE_ADDR pc)
case 0x1d: /* JALS: bits 011101 */
case 0x35: /* J: bits 110101 */
case 0x3d: /* JAL: bits 111101 */
- pc = ((pc | 0x7fffffe) ^ 0x7fffffe) | (b0s26_imm (insn) << 1);
+ pc = ((pc | 0x7fffffe) ^ 0x7fffffe) | (b0s26_imm (insn) << 1);
break;
case 0x25: /* BEQ: bits 100101 */
- if (regcache_raw_get_signed (regcache, b0s5_reg (insn >> 16))
- == regcache_raw_get_signed (regcache, b5s5_reg (insn >> 16)))
- pc += micromips_relative_offset16 (insn);
- else
- pc += micromips_pc_insn_size (gdbarch, pc);
+ if (regcache_raw_get_signed (regcache, b0s5_reg (insn >> 16))
+ == regcache_raw_get_signed (regcache, b5s5_reg (insn >> 16)))
+ pc += micromips_relative_offset16 (insn);
+ else
+ pc += micromips_pc_insn_size (gdbarch, pc);
break;
case 0x2d: /* BNE: bits 101101 */
if (regcache_raw_get_signed (regcache, b0s5_reg (insn >> 16))
- != regcache_raw_get_signed (regcache, b5s5_reg (insn >> 16)))
- pc += micromips_relative_offset16 (insn);
+ != regcache_raw_get_signed (regcache, b5s5_reg (insn >> 16)))
+ pc += micromips_relative_offset16 (insn);
else
- pc += micromips_pc_insn_size (gdbarch, pc);
+ pc += micromips_pc_insn_size (gdbarch, pc);
break;
case 0x3c: /* JALX: bits 111100 */
- pc = ((pc | 0xfffffff) ^ 0xfffffff) | (b0s26_imm (insn) << 2);
+ pc = ((pc | 0xfffffff) ^ 0xfffffff) | (b0s26_imm (insn) << 2);
break;
}
break;
@@ -2150,6 +2154,7 @@ enum mips16_inst_fmts
extRi64type, /* 20 5,6,5,5,3,3,5 */
extshift64type /* 21 5,5,1,1,1,1,1,1,5,1,1,1,3,5 */
};
+
/* I am heaping all the fields of the formats into one structure and
then, only the fields which are involved in instruction extension. */
struct upk_mips16
@@ -2159,7 +2164,6 @@ struct upk_mips16
unsigned int regy;
};
-
/* The EXT-I, EXT-ri nad EXT-I8 instructions all have the same format
for the bits which make up the immediate extension. */
@@ -2267,7 +2271,6 @@ unpack_mips16 (struct gdbarch *gdbarch, CORE_ADDR pc,
upk->regy = regy;
}
-
/* Calculate the destination of a branch whose 16-bit opcode word is at PC,
and having a signed 16-bit OFFSET. */
@@ -2395,6 +2398,7 @@ mips16_next_pc (struct regcache *regcache, CORE_ADDR pc)
It works by decoding the current instruction and predicting where a
branch will go. This isn't hard because all the data is available.
The MIPS32, MIPS16 and microMIPS variants are quite different. */
+
static CORE_ADDR
mips_next_pc (struct regcache *regcache, CORE_ADDR pc)
{
@@ -2482,7 +2486,6 @@ set_reg_offset (struct gdbarch *gdbarch, struct mips_frame_cache *this_cache,
}
}
-
/* Fetch the immediate value from a MIPS16 instruction.
If the previous instruction was an EXTEND, use it to extend
the upper bits of the immediate value. This is a helper function
@@ -2517,8 +2520,7 @@ mips16_get_imm (unsigned short prev_inst, /* previous instruction */
}
}
-
-/* Analyze the function prologue from START_PC to LIMIT_PC. Builds
+/* Analyze the function prologue from START_PC to LIMIT_PC. Builds
the associated FRAME_CACHE if not null.
Return the address of the first instruction past the prologue. */
@@ -2535,13 +2537,13 @@ mips16_scan_prologue (struct gdbarch *gdbarch,
CORE_ADDR cur_pc;
CORE_ADDR frame_addr = 0; /* Value of $r17, used as frame pointer. */
CORE_ADDR sp;
- long frame_offset = 0; /* Size of stack frame. */
- long frame_adjust = 0; /* Offset of FP from SP. */
+ long frame_offset = 0; /* Size of stack frame. */
+ long frame_adjust = 0; /* Offset of FP from SP. */
int frame_reg = MIPS_SP_REGNUM;
- unsigned short prev_inst = 0; /* saved copy of previous instruction. */
- unsigned inst = 0; /* current instruction */
- unsigned entry_inst = 0; /* the entry instruction */
- unsigned save_inst = 0; /* the save instruction */
+ unsigned short prev_inst = 0; /* Saved copy of previous instruction. */
+ unsigned inst = 0; /* Current instruction. */
+ unsigned entry_inst = 0; /* The entry instruction. */
+ unsigned save_inst = 0; /* The save instruction. */
int prev_delay_slot = 0;
int in_delay_slot;
int reg, offset;
@@ -2888,7 +2890,7 @@ mips_insn16_frame_cache (const frame_info_ptr &this_frame, void **this_cache)
mips16_scan_prologue (gdbarch, start_addr, pc, this_frame,
(struct mips_frame_cache *) *this_cache);
}
-
+
/* gdbarch_sp_regnum contains the value and not the address. */
cache->saved_regs[gdbarch_num_regs (gdbarch)
+ MIPS_SP_REGNUM].set_value (cache->base);
@@ -3063,7 +3065,7 @@ micromips_scan_prologue (struct gdbarch *gdbarch,
&& dreg == MIPS_SP_REGNUM && sreg == MIPS_SP_REGNUM
&& treg == 3)
/* (D)SUBU $sp, $v1 */
- sp_adj = v1_off;
+ sp_adj = v1_off;
else if (op != 0x150
/* ADDU: bits 000000 00101010000 */
/* DADDU: bits 010110 00101010000 */
@@ -3273,7 +3275,7 @@ micromips_scan_prologue (struct gdbarch *gdbarch,
gdbarch_num_regs (gdbarch) + frame_reg)
+ frame_offset - frame_adjust);
/* FIXME: brobecker/2004-10-10: Just as in the mips32 case, we should
- be able to get rid of the assignment below, evetually. But it's
+ be able to get rid of the assignment below, evetually. But it's
still needed for now. */
this_cache->saved_regs[gdbarch_num_regs (gdbarch)
+ mips_regnum (gdbarch)->pc]
@@ -3292,7 +3294,7 @@ micromips_scan_prologue (struct gdbarch *gdbarch,
/* Heuristic unwinder for procedures using microMIPS instructions.
Procedures that use the 32-bit instruction set are handled by the
- mips_insn32 unwinder. Likewise MIPS16 and the mips_insn16 unwinder. */
+ mips_insn32 unwinder. Likewise MIPS16 and the mips_insn16 unwinder. */
static struct mips_frame_cache *
mips_micro_frame_cache (const frame_info_ptr &this_frame, void **this_cache)
@@ -3425,7 +3427,7 @@ reset_saved_regs (struct gdbarch *gdbarch, struct mips_frame_cache *this_cache)
}
/* Analyze the function prologue from START_PC to LIMIT_PC. Builds
- the associated FRAME_CACHE if not null.
+ the associated FRAME_CACHE if not null.
Return the address of the first instruction past the prologue. */
static CORE_ADDR
@@ -3437,7 +3439,7 @@ mips32_scan_prologue (struct gdbarch *gdbarch,
int prev_non_prologue_insn;
int this_non_prologue_insn;
int non_prologue_insns;
- CORE_ADDR frame_addr = 0; /* Value of $r30. Used by gcc for
+ CORE_ADDR frame_addr = 0; /* Value of $r30. Used by gcc for
frame-pointer. */
int prev_delay_slot;
CORE_ADDR prev_pc;
@@ -3576,7 +3578,7 @@ restart:
}
}
}
- else if ((high_word & 0xFFE0) == 0xafc0 /* sw reg,offset($30) */
+ else if ((high_word & 0xFFE0) == 0xafc0 /* sw reg,offset($30) */
&& !regsize_is_64_bits)
{
set_reg_offset (gdbarch, this_cache, reg, frame_addr + offset);
@@ -3641,7 +3643,7 @@ restart:
if (this_cache != NULL)
{
- this_cache->base =
+ this_cache->base =
(get_frame_register_signed (this_frame,
gdbarch_num_regs (gdbarch) + frame_reg)
+ frame_offset);
@@ -3660,7 +3662,7 @@ restart:
its address instead. */
end_prologue_addr
= prev_non_prologue_insn || prev_delay_slot ? prev_pc : cur_pc;
-
+
/* In a frameless function, we might have incorrectly
skipped some load immediate instructions. Undo the skipping
if the load immediate was not followed by a stack adjustment. */
@@ -3673,7 +3675,7 @@ restart:
/* Heuristic unwinder for procedures using 32-bit instructions (covers
both 32-bit and 64-bit MIPS ISAs). Procedures using 16-bit
instructions (a.k.a. MIPS16) are handled by the mips_insn16
- unwinder. Likewise microMIPS and the mips_micro unwinder. */
+ unwinder. Likewise microMIPS and the mips_micro unwinder. */
static struct mips_frame_cache *
mips_insn32_frame_cache (const frame_info_ptr &this_frame, void **this_cache)
@@ -3704,7 +3706,7 @@ mips_insn32_frame_cache (const frame_info_ptr &this_frame, void **this_cache)
mips32_scan_prologue (gdbarch, start_addr, pc, this_frame,
(struct mips_frame_cache *) *this_cache);
}
-
+
/* gdbarch_sp_regnum contains the value and not the address. */
cache->saved_regs[gdbarch_num_regs (gdbarch)
+ MIPS_SP_REGNUM].set_value (cache->base);
@@ -3924,10 +3926,9 @@ mips_addr_bits_remove (struct gdbarch *gdbarch, CORE_ADDR addr)
return addr;
}
-
/* Checks for an atomic sequence of instructions beginning with a LL/LLD
instruction and ending with a SC/SCD instruction. If such a sequence
- is found, attempt to step through it. A breakpoint is placed at the end of
+ is found, attempt to step through it. A breakpoint is placed at the end of
the sequence. */
/* Instructions used during single-stepping of atomic sequences, standard
@@ -3946,7 +3947,7 @@ mips_deal_with_atomic_sequence (struct gdbarch *gdbarch, CORE_ADDR pc)
ULONGEST insn;
int insn_count;
int index;
- int last_breakpoint = 0; /* Defaults to 0 (no breakpoints placed). */
+ int last_breakpoint = 0; /* Defaults to 0 (no breakpoints placed). */
const int atomic_sequence_length = 16; /* Instruction sequence length. */
insn = mips_fetch_instruction (gdbarch, ISA_MIPS, loc, NULL);
@@ -3954,7 +3955,7 @@ mips_deal_with_atomic_sequence (struct gdbarch *gdbarch, CORE_ADDR pc)
if (itype_op (insn) != LL_OPCODE && itype_op (insn) != LLD_OPCODE)
return {};
- /* Assume that no atomic sequence is longer than "atomic_sequence_length"
+ /* Assume that no atomic sequence is longer than "atomic_sequence_length"
instructions. */
for (insn_count = 0; insn_count < atomic_sequence_length; ++insn_count)
{
@@ -4130,7 +4131,7 @@ micromips_deal_with_atomic_sequence (struct gdbarch *gdbarch,
case 0x35: /* J: bits 110101 */
case 0x3d: /* JAL: bits 111101 */
case 0x3c: /* JALX: bits 111100 */
- return {}; /* Fall back to the standard single-step code. */
+ return {}; /* Fall back to the standard single-step code. */
case 0x18: /* POOL32C: bits 011000 */
if ((b12s4_op (insn) & 0xb) == 0xb)
@@ -4157,10 +4158,10 @@ micromips_deal_with_atomic_sequence (struct gdbarch *gdbarch,
&& b5s5_op (insn) != 0x18)
/* JRADDIUSP: bits 010001 11000 */
break;
- return {}; /* Fall back to the standard single-step code. */
+ return {}; /* Fall back to the standard single-step code. */
case 0x33: /* B16: bits 110011 */
- return {}; /* Fall back to the standard single-step code. */
+ return {}; /* Fall back to the standard single-step code. */
}
break;
}
@@ -4244,7 +4245,6 @@ mips_about_to_return (struct gdbarch *gdbarch, CORE_ADDR pc)
return (insn & ~hint) == 0x3e00008; /* jr(.hb) $ra */
}
-
/* This fencepost looks highly suspicious to me. Removing it also
seems suspicious as it could affect remote debugging across serial
lines. */
@@ -4476,6 +4476,7 @@ mips_type_needs_double_align (struct type *type)
/* Adjust the address downward (direction of stack growth) so that it
is correctly aligned for a new stack frame. */
+
static CORE_ADDR
mips_frame_align (struct gdbarch *gdbarch, CORE_ADDR addr)
{
@@ -4817,7 +4818,7 @@ mips_eabi_return_value (struct gdbarch *gdbarch, struct value *function,
{
if (type->code () == TYPE_CODE_FLT)
fp_return_type = 1;
- /* Structs with a single field of float type
+ /* Structs with a single field of float type
are returned in a floating point register. */
if ((type->code () == TYPE_CODE_STRUCT
|| type->code () == TYPE_CODE_UNION)
@@ -4830,7 +4831,7 @@ mips_eabi_return_value (struct gdbarch *gdbarch, struct value *function,
}
}
- if (fp_return_type)
+ if (fp_return_type)
{
/* A floating-point value belongs in the least significant part
of FP0/FP1. */
@@ -4838,7 +4839,7 @@ mips_eabi_return_value (struct gdbarch *gdbarch, struct value *function,
gdb_printf (gdb_stderr, "Return float in $fp0\n");
regnum = mips_regnum (gdbarch)->fp0;
}
- else
+ else
{
/* An integer value goes in V0/V1. */
if (mips_debug)
@@ -4861,7 +4862,6 @@ mips_eabi_return_value (struct gdbarch *gdbarch, struct value *function,
return RETURN_VALUE_REGISTER_CONVENTION;
}
-
/* N32/N64 ABI stuff. */
/* Search for a naturally aligned double at OFFSET inside a struct
@@ -6525,7 +6525,6 @@ print_fp_register_row (struct ui_file *file, const frame_info_ptr &frame,
return regnum + 1;
}
-
/* Print a row's worth of GP (int) registers, with name labels above. */
static int
@@ -6723,7 +6722,7 @@ mips_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
that bound, then use an arbitrary large number as the upper bound. */
limit_pc = skip_prologue_using_sal (gdbarch, pc);
if (limit_pc == 0)
- limit_pc = pc + 100; /* Magic. */
+ limit_pc = pc + 100; /* Magic. */
if (mips_pc_is_mips16 (gdbarch, pc))
return mips16_scan_prologue (gdbarch, pc, limit_pc, NULL, NULL);
@@ -6964,7 +6963,6 @@ show_mipsfpu_command (const char *args, int from_tty)
("The MIPS floating-point coprocessor is assumed to be %s\n", fpu);
}
-
static void
set_mipsfpu_single_command (const char *args, int from_tty)
{
@@ -7029,7 +7027,7 @@ gdb_print_insn_mips (bfd_vma memaddr, struct disassemble_info *info)
/* FIXME: cagney/2003-06-26: Is this even necessary? The
disassembler needs to be able to locally determine the ISA, and
- not rely on GDB. Otherwize the stand-alone 'objdump -d' will not
+ not rely on GDB. Otherwise the stand-alone 'objdump -d' will not
work. */
if (mips_pc_is_mips16 (gdbarch, memaddr))
info->mach = bfd_mach_mips16;
@@ -7146,7 +7144,7 @@ mips32_instruction_has_delay_slot (struct gdbarch *gdbarch, ULONGEST inst)
{
rs = itype_rs (inst);
rt = itype_rt (inst);
- return (is_octeon_bbit_op (op, gdbarch)
+ return (is_octeon_bbit_op (op, gdbarch)
|| op >> 2 == 5 /* BEQL, BNEL, BLEZL, BGTZL: bits 0101xx */
|| op == 29 /* JALX: bits 011101 */
|| (op == 17
@@ -7393,7 +7391,7 @@ mips_adjust_breakpoint_address (struct gdbarch *gdbarch, CORE_ADDR bpaddr)
/* Make sure we don't scan back before the beginning of the current
function, since we may fetch constant data or insns that look like
a jump. Of course we might do that anyway if the compiler has
- moved constants inline. :-( */
+ moved constants inline. :-( */
if (find_pc_partial_function (bpaddr, NULL, &func_addr, NULL)
&& func_addr > boundary && func_addr <= bpaddr)
boundary = func_addr;
@@ -7404,7 +7402,7 @@ mips_adjust_breakpoint_address (struct gdbarch *gdbarch, CORE_ADDR bpaddr)
return bpaddr;
/* If the previous instruction has a branch delay slot, we have
- to move the breakpoint to the branch instruction. */
+ to move the breakpoint to the branch instruction. */
prev_addr = bpaddr - 4;
if (mips32_insn_at_pc_has_delay_slot (gdbarch, prev_addr))
bpaddr = prev_addr;
@@ -7922,7 +7920,6 @@ mips_stab_reg_to_regnum (struct gdbarch *gdbarch, int num)
return gdbarch_num_regs (gdbarch) + regnum;
}
-
/* Convert a dwarf, dwarf2, or ecoff register number to a GDB [1 *
gdbarch_num_regs .. 2 * gdbarch_num_regs) REGNUM. */
@@ -7960,7 +7957,6 @@ mips_register_sim_regno (struct gdbarch *gdbarch, int regnum)
return LEGACY_SIM_REGNO_IGNORE;
}
-
/* Convert an integer into an address. Extracting the value signed
guarantees a correctly sign extended address. */
@@ -7978,7 +7974,7 @@ mips_integer_to_address (struct gdbarch *gdbarch,
an assertion failure. */
static void
-mips_virtual_frame_pointer (struct gdbarch *gdbarch,
+mips_virtual_frame_pointer (struct gdbarch *gdbarch,
CORE_ADDR pc, int *reg, LONGEST *offset)
{
*reg = MIPS_SP_REGNUM;
@@ -8361,7 +8357,6 @@ mips_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
valid_p &= tdesc_numbered_register (feature, tdesc_data.get (), i,
mips_gprs[i]);
-
valid_p &= tdesc_numbered_register (feature, tdesc_data.get (),
mips_regnum.lo, "lo");
valid_p &= tdesc_numbered_register (feature, tdesc_data.get (),
@@ -8832,7 +8827,7 @@ mips_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
for (i = 0; i < ARRAY_SIZE (mips_numeric_register_aliases); i++)
user_reg_add (gdbarch, mips_numeric_register_aliases[i].name,
- value_of_mips_user_reg,
+ value_of_mips_user_reg,
&mips_numeric_register_aliases[i].regnum);
return gdbarch;
@@ -8860,7 +8855,7 @@ show_mips_abi (struct ui_file *file,
if (gdbarch_bfd_arch_info (current_inferior ()->arch ())->arch
!= bfd_arch_mips)
gdb_printf
- (file,
+ (file,
"The MIPS ABI is unknown because the current architecture "
"is not MIPS.\n");
else
@@ -8871,7 +8866,7 @@ show_mips_abi (struct ui_file *file,
if (global_abi == MIPS_ABI_UNKNOWN)
gdb_printf
- (file,
+ (file,
"The MIPS ABI is set automatically (currently \"%s\").\n",
actual_abi_str);
else if (global_abi == actual_abi)
diff --git a/gdb/mips-tdep.h b/gdb/mips-tdep.h
index df589cf..f9effb0 100644
--- a/gdb/mips-tdep.h
+++ b/gdb/mips-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent header for the MIPS architecture, for GDB, the GNU Debugger.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mips64-obsd-nat.c b/gdb/mips64-obsd-nat.c
index ced3ffb..26fc1b9 100644
--- a/gdb/mips64-obsd-nat.c
+++ b/gdb/mips64-obsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for OpenBSD/mips64.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mips64-obsd-tdep.c b/gdb/mips64-obsd-tdep.c
index 543938b..d0c9a1c 100644
--- a/gdb/mips64-obsd-tdep.c
+++ b/gdb/mips64-obsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for OpenBSD/mips64.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mipsread.c b/gdb/mipsread.c
index 53def12..b726b98 100644
--- a/gdb/mipsread.c
+++ b/gdb/mipsread.c
@@ -1,6 +1,6 @@
/* Read a symbol table in MIPS' format (Third-Eye).
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
Contributed by Alessandro Forin (af@cs.cmu.edu) at CMU. Major work
by Per Bothner, John Gilmore and Ian Lance Taylor at Cygnus Support.
@@ -66,20 +66,16 @@ mipscoff_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags)
{
bfd *abfd = objfile->obfd.get ();
- minimal_symbol_reader reader (objfile);
-
/* Now that the executable file is positioned at symbol table,
process it and define symbols accordingly. */
- if (!((*ecoff_backend (abfd)->debug_swap.read_debug_info)
- (abfd, NULL, &ecoff_data (abfd)->debug_info)))
- error (_("Error reading symbol table: %s"), bfd_errmsg (bfd_get_error ()));
-
- mdebug_build_psymtabs (reader, objfile, &ecoff_backend (abfd)->debug_swap,
- &ecoff_data (abfd)->debug_info);
+ mipsmdebug_build_psymtabs (objfile, &ecoff_backend (abfd)->debug_swap,
+ &ecoff_data (abfd)->debug_info);
/* Add alpha coff dynamic symbols. */
+ minimal_symbol_reader reader (objfile);
+
read_alphacoff_dynamic_symtab (reader, objfile);
/* Install any minimal symbols that have been collected as the current
diff --git a/gdb/mn10300-linux-tdep.c b/gdb/mn10300-linux-tdep.c
index 8eb59d2..3334ca0 100644
--- a/gdb/mn10300-linux-tdep.c
+++ b/gdb/mn10300-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the Matsushita MN10300 for GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mn10300-tdep.c b/gdb/mn10300-tdep.c
index f989bd6..c82a302 100644
--- a/gdb/mn10300-tdep.c
+++ b/gdb/mn10300-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the Matsushita MN10300 for GDB, the GNU debugger.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/mn10300-tdep.h b/gdb/mn10300-tdep.h
index bec5f04..71d07b2 100644
--- a/gdb/mn10300-tdep.h
+++ b/gdb/mn10300-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent interface for Matsushita MN10300 for GDB, the GNU debugger.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/moxie-tdep.c b/gdb/moxie-tdep.c
index f69810f..ddb9efb 100644
--- a/gdb/moxie-tdep.c
+++ b/gdb/moxie-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for Moxie.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -240,7 +240,7 @@ moxie_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
return sal.end;
}
}
- /* No useable line symbol. Use result of prologue parsing
+ /* No usable line symbol. Use result of prologue parsing
method. */
return plg_end;
}
diff --git a/gdb/moxie-tdep.h b/gdb/moxie-tdep.h
index 329d997..8088de5 100644
--- a/gdb/moxie-tdep.h
+++ b/gdb/moxie-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for Moxie
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/msp430-tdep.c b/gdb/msp430-tdep.c
index 17ebddf..441831e 100644
--- a/gdb/msp430-tdep.c
+++ b/gdb/msp430-tdep.c
@@ -1,7 +1,7 @@
/* Target-dependent code for the Texas Instruments MSP430 for GDB, the
GNU debugger.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
diff --git a/gdb/namespace.c b/gdb/namespace.c
index 5a9a99d..52eb1ea 100644
--- a/gdb/namespace.c
+++ b/gdb/namespace.c
@@ -1,5 +1,5 @@
/* Code dealing with "using" directives for GDB.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/namespace.h b/gdb/namespace.h
index ca949aa..97df06a 100644
--- a/gdb/namespace.h
+++ b/gdb/namespace.h
@@ -1,5 +1,5 @@
/* Code dealing with "using" directives for GDB.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/aarch64-hw-point.c b/gdb/nat/aarch64-hw-point.c
index 8ab91fe..6d8dce8 100644
--- a/gdb/nat/aarch64-hw-point.c
+++ b/gdb/nat/aarch64-hw-point.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/aarch64-hw-point.h b/gdb/nat/aarch64-hw-point.h
index 9f9c85e..f8ab55f 100644
--- a/gdb/nat/aarch64-hw-point.h
+++ b/gdb/nat/aarch64-hw-point.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/aarch64-linux-hw-point.c b/gdb/nat/aarch64-linux-hw-point.c
index 43e04fe..3f0c8b9 100644
--- a/gdb/nat/aarch64-linux-hw-point.c
+++ b/gdb/nat/aarch64-linux-hw-point.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GDB.
diff --git a/gdb/nat/aarch64-linux-hw-point.h b/gdb/nat/aarch64-linux-hw-point.h
index 618f79f..8cbe6c5 100644
--- a/gdb/nat/aarch64-linux-hw-point.h
+++ b/gdb/nat/aarch64-linux-hw-point.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GDB.
diff --git a/gdb/nat/aarch64-linux.c b/gdb/nat/aarch64-linux.c
index 5a95f22..23158bc 100644
--- a/gdb/nat/aarch64-linux.c
+++ b/gdb/nat/aarch64-linux.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GDB.
diff --git a/gdb/nat/aarch64-linux.h b/gdb/nat/aarch64-linux.h
index 969bb52..be32f6d 100644
--- a/gdb/nat/aarch64-linux.h
+++ b/gdb/nat/aarch64-linux.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GDB.
diff --git a/gdb/nat/aarch64-mte-linux-ptrace.c b/gdb/nat/aarch64-mte-linux-ptrace.c
index f215588..308bc9a 100644
--- a/gdb/nat/aarch64-mte-linux-ptrace.c
+++ b/gdb/nat/aarch64-mte-linux-ptrace.c
@@ -1,6 +1,6 @@
/* Common Linux native ptrace code for AArch64 MTE.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/aarch64-mte-linux-ptrace.h b/gdb/nat/aarch64-mte-linux-ptrace.h
index e02a081..7c496a9 100644
--- a/gdb/nat/aarch64-mte-linux-ptrace.h
+++ b/gdb/nat/aarch64-mte-linux-ptrace.h
@@ -1,6 +1,6 @@
/* Common native Linux definitions for AArch64 MTE.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/aarch64-scalable-linux-ptrace.c b/gdb/nat/aarch64-scalable-linux-ptrace.c
index 1d226b4..ec8ee33 100644
--- a/gdb/nat/aarch64-scalable-linux-ptrace.c
+++ b/gdb/nat/aarch64-scalable-linux-ptrace.c
@@ -1,6 +1,6 @@
/* Common native Linux code for the AArch64 scalable extensions: SVE and SME.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/aarch64-scalable-linux-ptrace.h b/gdb/nat/aarch64-scalable-linux-ptrace.h
index 2c6d899..f9dbf00 100644
--- a/gdb/nat/aarch64-scalable-linux-ptrace.h
+++ b/gdb/nat/aarch64-scalable-linux-ptrace.h
@@ -1,7 +1,7 @@
/* Common native Linux definitions for the AArch64 scalable
extensions: SVE and SME.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/aarch64-scalable-linux-sigcontext.h b/gdb/nat/aarch64-scalable-linux-sigcontext.h
index bfda9be..a588b64 100644
--- a/gdb/nat/aarch64-scalable-linux-sigcontext.h
+++ b/gdb/nat/aarch64-scalable-linux-sigcontext.h
@@ -1,7 +1,7 @@
/* Linux Kernel sigcontext definitions for AArch64 Scalable Extensions
(SVE/SME).
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
Contributed by Arm Ltd.
This file is part of GDB.
diff --git a/gdb/nat/amd64-linux-siginfo.c b/gdb/nat/amd64-linux-siginfo.c
index f5e9994..9200721 100644
--- a/gdb/nat/amd64-linux-siginfo.c
+++ b/gdb/nat/amd64-linux-siginfo.c
@@ -1,6 +1,6 @@
/* Low-level siginfo manipulation for amd64.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/amd64-linux-siginfo.h b/gdb/nat/amd64-linux-siginfo.h
index 1e102ae..298574f 100644
--- a/gdb/nat/amd64-linux-siginfo.h
+++ b/gdb/nat/amd64-linux-siginfo.h
@@ -1,6 +1,6 @@
/* Low-level siginfo manipulation for amd64.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/fork-inferior.c b/gdb/nat/fork-inferior.c
index 41765b1..b6cf410 100644
--- a/gdb/nat/fork-inferior.c
+++ b/gdb/nat/fork-inferior.c
@@ -1,6 +1,6 @@
/* Fork a Unix child process, and set up to debug it, for GDB and GDBserver.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -27,6 +27,8 @@
#include "gdbsupport/signals-state-save-restore.h"
#include "gdbsupport/gdb_tilde_expand.h"
#include "gdbsupport/gdb_signals.h"
+#include "gdbsupport/buildargv.h"
+#include "gdbsupport/gdb_argv_vec.h"
#include <vector>
extern char **environ;
@@ -50,7 +52,7 @@ public:
strings to which the array point. */
char **argv ()
{
- return const_cast<char **> (&m_argv[0]);
+ return m_argv.argv ();
}
private:
@@ -69,66 +71,28 @@ private:
const std::string &allargs,
const char *shell_file);
- /* The argument vector built. Holds non-owning pointers. Elements
- either point to the strings passed to the execv_argv ctor, or
- inside M_STORAGE. */
- std::vector<const char *> m_argv;
-
- /* Storage. In the no-shell case, this contains a copy of the
- arguments passed to the ctor, split by '\0'. In the shell case,
- this contains the quoted shell command. I.e., SHELL_COMMAND in
- {"$SHELL" "-c", SHELL_COMMAND, NULL}. */
- std::string m_storage;
+ /* The argument vector. This owns the strings within it. */
+ gdb::argv_vec m_argv;
};
-/* Create argument vector for straight call to execvp. Breaks up
- ALLARGS into an argument vector suitable for passing to execvp and
- stores it in M_ARGV. E.g., on "run a b c d" this routine would get
- as input the string "a b c d", and as output it would fill in
- M_ARGV with the four arguments "a", "b", "c", "d". Each argument
- in M_ARGV points to a substring of a copy of ALLARGS stored in
- M_STORAGE. */
+/* Create argument vector for straight call to execvp. Breaks up ALLARGS
+ into an argument vector suitable for passing to execvp and stores it in
+ M_ARGV. EXEC_FILE is the executable to be run.
+
+ E.g., if EXEC_FILE is "foo", and the user does "run a b c d" then
+ ALLARGS would be "a b c d", and this function would fill M_ARGV with
+ give arguments "foo", "a", "b", "c", and "d". */
void
execv_argv::init_for_no_shell (const char *exec_file,
const std::string &allargs)
{
+ m_argv.push_back (xstrdup (exec_file));
- /* Save/work with a copy stored in our storage. The pointers pushed
- to M_ARGV point directly into M_STORAGE, which is modified in
- place with the necessary NULL terminators. This avoids N heap
- allocations and string dups when 1 is sufficient. */
- std::string &args_copy = m_storage = allargs;
-
- m_argv.push_back (exec_file);
-
- for (size_t cur_pos = 0; cur_pos < args_copy.size ();)
- {
- /* Skip whitespace-like chars. */
- std::size_t pos = args_copy.find_first_not_of (" \t\n", cur_pos);
-
- if (pos != std::string::npos)
- cur_pos = pos;
-
- /* Find the position of the next separator. */
- std::size_t next_sep = args_copy.find_first_of (" \t\n", cur_pos);
-
- if (next_sep == std::string::npos)
- {
- /* No separator found, which means this is the last
- argument. */
- next_sep = args_copy.size ();
- }
- else
- {
- /* Replace the separator with a terminator. */
- args_copy[next_sep++] = '\0';
- }
-
- m_argv.push_back (&args_copy[cur_pos]);
+ gdb_argv argv (allargs.c_str ());
- cur_pos = next_sep;
- }
+ for (const auto &a : argv)
+ m_argv.push_back (xstrdup (a));
/* NULL-terminate the vector. */
m_argv.push_back (NULL);
@@ -182,11 +146,7 @@ execv_argv::init_for_shell (const char *exec_file,
/* We're going to call a shell. */
bool escape_bang = escape_bang_in_quoted_argument (shell_file);
- /* We need to build a new shell command string, and make argv point
- to it. So build it in the storage. */
- std::string &shell_command = m_storage;
-
- shell_command = "exec ";
+ std::string shell_command = "exec ";
/* Add any exec wrapper. That may be a program name with arguments,
so the user must handle quoting. */
@@ -255,10 +215,9 @@ execv_argv::init_for_shell (const char *exec_file,
/* If we decided above to start up with a shell, we exec the shell.
"-c" says to interpret the next arg as a shell command to
execute, and this command is "exec <target-program> <args>". */
- m_argv.reserve (4);
- m_argv.push_back (shell_file);
- m_argv.push_back ("-c");
- m_argv.push_back (shell_command.c_str ());
+ m_argv.push_back (xstrdup (shell_file));
+ m_argv.push_back (xstrdup ("-c"));
+ m_argv.push_back (xstrdup (shell_command.c_str ()));
m_argv.push_back (NULL);
}
diff --git a/gdb/nat/fork-inferior.h b/gdb/nat/fork-inferior.h
index 41dad71..d52aa44 100644
--- a/gdb/nat/fork-inferior.h
+++ b/gdb/nat/fork-inferior.h
@@ -1,6 +1,6 @@
/* Functions and data responsible for forking the inferior process.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/gdb_ptrace.h b/gdb/nat/gdb_ptrace.h
index 1785884..dee6e58 100644
--- a/gdb/nat/gdb_ptrace.h
+++ b/gdb/nat/gdb_ptrace.h
@@ -1,6 +1,6 @@
/* Portable <sys/ptrace.h>
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/gdb_thread_db.h b/gdb/nat/gdb_thread_db.h
index 446b921..4560064 100644
--- a/gdb/nat/gdb_thread_db.h
+++ b/gdb/nat/gdb_thread_db.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/i386-linux.c b/gdb/nat/i386-linux.c
index 64605be..7a09862 100644
--- a/gdb/nat/i386-linux.c
+++ b/gdb/nat/i386-linux.c
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux i386.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/i386-linux.h b/gdb/nat/i386-linux.h
index f222d51..d80e0f9 100644
--- a/gdb/nat/i386-linux.h
+++ b/gdb/nat/i386-linux.h
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux i386.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/linux-btrace.c b/gdb/nat/linux-btrace.c
index 0b820cc..9eadd46 100644
--- a/gdb/nat/linux-btrace.c
+++ b/gdb/nat/linux-btrace.c
@@ -1,6 +1,6 @@
/* Linux-dependent part of branch trace support for GDB, and GDBserver.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>
@@ -384,7 +384,7 @@ intel_supports_bts (const struct btrace_cpu *cpu)
case 0x3a: /* Ivy Bridge */
/* AAJ122: LBR, BTM, or BTS records may have incorrect branch
- "from" information afer an EIST transition, T-states, C1E, or
+ "from" information after an EIST transition, T-states, C1E, or
Adaptive Thermal Throttling. */
return 0;
}
diff --git a/gdb/nat/linux-btrace.h b/gdb/nat/linux-btrace.h
index 6fd8107..01d1efa 100644
--- a/gdb/nat/linux-btrace.h
+++ b/gdb/nat/linux-btrace.h
@@ -1,6 +1,6 @@
/* Linux-dependent part of branch trace support for GDB, and GDBserver.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>
diff --git a/gdb/nat/linux-namespaces.c b/gdb/nat/linux-namespaces.c
index 19a05ee..8fe3206 100644
--- a/gdb/nat/linux-namespaces.c
+++ b/gdb/nat/linux-namespaces.c
@@ -1,6 +1,6 @@
/* Linux namespaces(7) support.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -233,6 +233,12 @@ enum mnsh_msg_type
MNSH_RET_INT. */
MNSH_REQ_SETNS,
+ /* A request that the helper call lstat. The single
+ argument (the filename) should be passed in BUF, and
+ should include a terminating NUL character. The helper
+ should respond with a MNSH_RET_INTSTR. */
+ MNSH_REQ_LSTAT,
+
/* A request that the helper call open. Arguments should
be passed in BUF, INT1 and INT2. The filename (in BUF)
should include a terminating NUL character. The helper
@@ -265,62 +271,69 @@ enum mnsh_msg_type
MNSH_RET_INTSTR,
};
-/* Print a string representation of a message using debug_printf.
- This function is not async-signal-safe so should never be
- called from the helper. */
+/* Return a string representation of a message. This function is not
+ async-signal-safe so should never be called from the helper. */
-static void
+static std::string
mnsh_debug_print_message (enum mnsh_msg_type type,
int fd, int int1, int int2,
const void *buf, int bufsiz)
{
+ std::string res;
+
gdb_byte *c = (gdb_byte *) buf;
gdb_byte *cl = c + bufsiz;
switch (type)
{
case MNSH_MSG_ERROR:
- debug_printf ("ERROR");
+ res += "ERROR";
+ break;
+
+ case MNSH_REQ_LSTAT:
+ res += "LSTAT";
break;
case MNSH_REQ_SETNS:
- debug_printf ("SETNS");
+ res += "SETNS";
break;
case MNSH_REQ_OPEN:
- debug_printf ("OPEN");
+ res += "OPEN";
break;
case MNSH_REQ_UNLINK:
- debug_printf ("UNLINK");
+ res += "UNLINK";
break;
case MNSH_REQ_READLINK:
- debug_printf ("READLINK");
+ res += "READLINK";
break;
case MNSH_RET_INT:
- debug_printf ("INT");
+ res += "INT";
break;
case MNSH_RET_FD:
- debug_printf ("FD");
+ res += "FD";
break;
case MNSH_RET_INTSTR:
- debug_printf ("INTSTR");
+ res += "INTSTR";
break;
default:
- debug_printf ("unknown-packet-%d", type);
+ res += string_printf ("unknown-packet-%d", type);
}
- debug_printf (" %d %d %d \"", fd, int1, int2);
+ res += string_printf (" %d %d %d \"", fd, int1, int2);
for (; c < cl; c++)
- debug_printf (*c >= ' ' && *c <= '~' ? "%c" : "\\%o", *c);
+ res += string_printf (*c >= ' ' && *c <= '~' ? "%c" : "\\%o", *c);
+
+ res += "\"";
- debug_printf ("\"");
+ return res;
}
/* Forward declaration. */
@@ -390,12 +403,10 @@ mnsh_send_message (int sock, enum mnsh_msg_type type,
if (size < 0)
mnsh_maybe_mourn_peer ();
- if (debug_linux_namespaces)
- {
- debug_printf ("mnsh: send: ");
- mnsh_debug_print_message (type, fd, int1, int2, buf, bufsiz);
- debug_printf (" -> %s\n", pulongest (size));
- }
+ linux_namespaces_debug_printf
+ ("send: %s -> %s",
+ mnsh_debug_print_message (type, fd, int1, int2, buf, bufsiz).c_str (),
+ pulongest (size));
return size;
}
@@ -445,9 +456,8 @@ mnsh_recv_message (int sock, enum mnsh_msg_type *type,
size = recvmsg (sock, &msg, MSG_CMSG_CLOEXEC);
if (size < 0)
{
- if (debug_linux_namespaces)
- debug_printf ("namespace-helper: recv failed (%s)\n",
- pulongest (size));
+ linux_namespaces_debug_printf
+ ("namespace-helper: recv failed (%s)", pulongest (size));
mnsh_maybe_mourn_peer ();
@@ -457,9 +467,9 @@ mnsh_recv_message (int sock, enum mnsh_msg_type *type,
/* Check for truncation. */
if (size < fixed_size || (msg.msg_flags & (MSG_TRUNC | MSG_CTRUNC)))
{
- if (debug_linux_namespaces)
- debug_printf ("namespace-helper: recv truncated (%s 0x%x)\n",
- pulongest (size), msg.msg_flags);
+ linux_namespaces_debug_printf
+ ("namespace-helper: recv truncated (%s 0x%x)",
+ pulongest (size), msg.msg_flags);
mnsh_maybe_mourn_peer ();
@@ -477,13 +487,10 @@ mnsh_recv_message (int sock, enum mnsh_msg_type *type,
else
*fd = -1;
- if (debug_linux_namespaces)
- {
- debug_printf ("mnsh: recv: ");
- mnsh_debug_print_message (*type, *fd, *int1, *int2, buf,
- size - fixed_size);
- debug_printf ("\n");
- }
+ linux_namespaces_debug_printf
+ ("recv: %s",
+ mnsh_debug_print_message (*type, *fd, *int1, *int2, buf,
+ size - fixed_size).c_str ());
/* Return the number of bytes of data in BUF. */
return size - fixed_size;
@@ -514,6 +521,20 @@ mnsh_handle_setns (int sock, int fd, int nstype)
return mnsh_return_int (sock, result, errno);
}
+
+/* Handle a MNSH_REQ_LSTAT message. Must be async-signal-safe. */
+
+static ssize_t
+mnsh_handle_lstat (int sock, const char *filename)
+{
+ struct stat sb;
+ int stat_ok = lstat (filename, &sb);
+
+ return mnsh_return_intstr (sock, stat_ok, &sb,
+ stat_ok == -1 ? 0 : sizeof (sb),
+ errno);
+}
+
/* Handle a MNSH_REQ_OPEN message. Must be async-signal-safe. */
static ssize_t
@@ -574,6 +595,11 @@ mnsh_main (int sock)
response = mnsh_handle_setns (sock, fd, int1);
break;
+ case MNSH_REQ_LSTAT:
+ if (size > 0 && buf[size - 1] == '\0')
+ response = mnsh_handle_lstat (sock, buf);
+ break;
+
case MNSH_REQ_OPEN:
if (size > 0 && buf[size - 1] == '\0')
response = mnsh_handle_open (sock, buf, int1, int2);
@@ -673,7 +699,7 @@ linux_mntns_get_helper (void)
mnsh_creator_pid = helper_creator;
/* Debug printing isn't async-signal-safe. */
- debug_linux_namespaces = 0;
+ debug_linux_namespaces = false;
mnsh_main (sv[1]);
}
@@ -685,9 +711,8 @@ linux_mntns_get_helper (void)
helper->sock = sv[0];
helper->nsid = ns->id;
- if (debug_linux_namespaces)
- debug_printf ("Started mount namespace helper process %d\n",
- helper->pid);
+ linux_namespaces_debug_printf
+ ("Started mount namespace helper process %d", helper->pid);
}
return helper;
@@ -765,6 +790,10 @@ mnsh_maybe_mourn_peer (void)
mnsh_send_message (helper->sock, MNSH_REQ_OPEN, -1, flags, mode, \
filename, strlen (filename) + 1)
+#define mnsh_send_lstat(helper, filename) \
+ mnsh_send_message (helper->sock, MNSH_REQ_LSTAT, -1, 0, 0, \
+ filename, strlen (filename) + 1)
+
#define mnsh_send_unlink(helper, filename) \
mnsh_send_message (helper->sock, MNSH_REQ_UNLINK, -1, 0, 0, \
filename, strlen (filename) + 1)
@@ -948,6 +977,42 @@ linux_mntns_access_fs (pid_t pid)
/* See nat/linux-namespaces.h. */
int
+linux_mntns_lstat (pid_t pid, const char *filename,
+ struct stat *sb)
+{
+ enum mnsh_fs_code access = linux_mntns_access_fs (pid);
+
+ if (access == MNSH_FS_ERROR)
+ return -1;
+
+ if (access == MNSH_FS_DIRECT)
+ return lstat (filename, sb);
+
+ gdb_assert (access == MNSH_FS_HELPER);
+
+ struct linux_mnsh *helper = linux_mntns_get_helper ();
+
+ ssize_t size = mnsh_send_lstat (helper, filename);
+ if (size < 0)
+ return -1;
+
+ int stat_ok, error;
+ size = mnsh_recv_intstr (helper, &stat_ok, &error, sb, sizeof (*sb));
+
+ if (size < 0)
+ {
+ stat_ok = -1;
+ errno = error;
+ }
+ else
+ gdb_assert (stat_ok == -1 || size == sizeof (*sb));
+
+ return stat_ok;
+}
+
+/* See nat/linux-namespaces.h. */
+
+int
linux_mntns_open_cloexec (pid_t pid, const char *filename,
int flags, mode_t mode)
{
diff --git a/gdb/nat/linux-namespaces.h b/gdb/nat/linux-namespaces.h
index 4327292..a9a99f1 100644
--- a/gdb/nat/linux-namespaces.h
+++ b/gdb/nat/linux-namespaces.h
@@ -1,6 +1,6 @@
/* Linux namespaces(7) support.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -24,6 +24,12 @@
extern bool debug_linux_namespaces;
+/* Print a "linux-namespaces" debug statement. */
+
+#define linux_namespaces_debug_printf(fmt, ...) \
+ debug_prefixed_printf_cond (debug_linux_namespaces, "linux-namespaces", \
+ fmt, ##__VA_ARGS__)
+
/* Enumeration of Linux namespace types. */
enum linux_ns_type
@@ -58,6 +64,11 @@ enum linux_ns_type
extern int linux_ns_same (pid_t pid, enum linux_ns_type type);
+/* Like lstat(2), but in the mount namespace of process PID. */
+
+extern int linux_mntns_lstat (pid_t pid, const char *filename,
+ struct stat *sb);
+
/* Like gdb_open_cloexec, but in the mount namespace of process
PID. */
diff --git a/gdb/nat/linux-nat.h b/gdb/nat/linux-nat.h
index f85d072..59bbd1b 100644
--- a/gdb/nat/linux-nat.h
+++ b/gdb/nat/linux-nat.h
@@ -1,6 +1,6 @@
/* Code for native debugging support for GNU/Linux (LWP layer).
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/linux-osdata.c b/gdb/nat/linux-osdata.c
index 3a62150..b52a8ed 100644
--- a/gdb/nat/linux-osdata.c
+++ b/gdb/nat/linux-osdata.c
@@ -1,6 +1,6 @@
/* Linux-specific functions to retrieve OS data.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/linux-osdata.h b/gdb/nat/linux-osdata.h
index b688116..6b263c5 100644
--- a/gdb/nat/linux-osdata.h
+++ b/gdb/nat/linux-osdata.h
@@ -1,6 +1,6 @@
/* Linux-specific functions to retrieve OS data.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/linux-personality.c b/gdb/nat/linux-personality.c
index a406c73..1f91477 100644
--- a/gdb/nat/linux-personality.c
+++ b/gdb/nat/linux-personality.c
@@ -1,6 +1,6 @@
/* Disable address space randomization based on inferior personality.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/linux-personality.h b/gdb/nat/linux-personality.h
index ab67270..630d493 100644
--- a/gdb/nat/linux-personality.h
+++ b/gdb/nat/linux-personality.h
@@ -1,6 +1,6 @@
/* Disable address space randomization based on inferior personality.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/linux-procfs.c b/gdb/nat/linux-procfs.c
index 5efc86c..a72df2a 100644
--- a/gdb/nat/linux-procfs.c
+++ b/gdb/nat/linux-procfs.c
@@ -1,5 +1,5 @@
/* Linux-specific PROCFS manipulation routines.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -18,9 +18,9 @@
#include "linux-procfs.h"
#include "gdbsupport/filestuff.h"
+#include "gdbsupport/unordered_set.h"
#include <dirent.h>
#include <sys/stat.h>
-#include <unordered_set>
#include <utility>
/* Return the TGID of LWPID from /proc/pid/status. Returns -1 if not
@@ -358,20 +358,9 @@ linux_proc_attach_tgid_threads (pid_t pid,
return;
}
- /* Callable object to hash elements in visited_lpws. */
- struct pair_hash
- {
- std::size_t operator() (const std::pair<unsigned long, ULONGEST> &v) const
- {
- return (std::hash<unsigned long>() (v.first)
- ^ std::hash<ULONGEST>() (v.second));
- }
- };
-
/* Keeps track of the LWPs we have already visited in /proc,
identified by their PID and starttime to detect PID reuse. */
- std::unordered_set<std::pair<unsigned long, ULONGEST>,
- pair_hash> visited_lwps;
+ gdb::unordered_set<std::pair<unsigned long, ULONGEST>> visited_lwps;
/* Scan the task list for existing threads. While we go through the
threads, new threads may be spawned. Cycle through the list of
diff --git a/gdb/nat/linux-procfs.h b/gdb/nat/linux-procfs.h
index d484cc8..0c80622 100644
--- a/gdb/nat/linux-procfs.h
+++ b/gdb/nat/linux-procfs.h
@@ -1,5 +1,5 @@
/* Linux-specific PROCFS manipulation routines.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/linux-ptrace.c b/gdb/nat/linux-ptrace.c
index f90183b..f73058b 100644
--- a/gdb/nat/linux-ptrace.c
+++ b/gdb/nat/linux-ptrace.c
@@ -1,5 +1,5 @@
/* Linux-specific ptrace manipulation routines.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -23,6 +23,7 @@
#include <sys/procfs.h>
#endif
#include "gdbsupport/eintr.h"
+#include "gdbsupport/signals-state-save-restore.h"
/* Stores the ptrace options supported by the running kernel.
A value of -1 means we did not check for features yet. A value
@@ -148,6 +149,9 @@ linux_ptrace_test_ret_to_nx (void)
return;
case 0:
+ /* Set signal handlers to their default because it doesn't make sense
+ to call GDB-specific handlers any more in the child process. */
+ restore_original_signals_state ();
l = ptrace (PTRACE_TRACEME, 0, (PTRACE_TYPE_ARG3) NULL,
(PTRACE_TYPE_ARG4) NULL);
if (l != 0)
diff --git a/gdb/nat/linux-ptrace.h b/gdb/nat/linux-ptrace.h
index c7d4023..725ff9f 100644
--- a/gdb/nat/linux-ptrace.h
+++ b/gdb/nat/linux-ptrace.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/linux-waitpid.c b/gdb/nat/linux-waitpid.c
index f4ae612..8ee7d97 100644
--- a/gdb/nat/linux-waitpid.c
+++ b/gdb/nat/linux-waitpid.c
@@ -1,6 +1,6 @@
/* Wrapper implementation for waitpid for GNU/Linux (LWP layer).
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/linux-waitpid.h b/gdb/nat/linux-waitpid.h
index b75782d..238dc2a 100644
--- a/gdb/nat/linux-waitpid.h
+++ b/gdb/nat/linux-waitpid.h
@@ -1,6 +1,6 @@
/* Wrapper for waitpid for GNU/Linux (LWP layer).
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/loongarch-hw-point.c b/gdb/nat/loongarch-hw-point.c
index 7306d4c..93c4462 100644
--- a/gdb/nat/loongarch-hw-point.c
+++ b/gdb/nat/loongarch-hw-point.c
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux on LoongArch processors.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
Contributed by Loongson Ltd.
This file is part of GDB.
@@ -128,7 +128,7 @@ loongarch_dr_state_insert_one_point (ptid_t ptid,
{
gdb_assert (dr_ref_count[i] == 0);
idx = i;
- /* no break; continue hunting for an exising one. */
+ /* no break; continue hunting for an existing one. */
}
else if (dr_addr_p[i] == addr && dr_ctrl_p[i] == ctrl)
{
diff --git a/gdb/nat/loongarch-hw-point.h b/gdb/nat/loongarch-hw-point.h
index 3098752..90926ef 100644
--- a/gdb/nat/loongarch-hw-point.h
+++ b/gdb/nat/loongarch-hw-point.h
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux on LoongArch processors.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
Contributed by Loongson Ltd.
This file is part of GDB.
@@ -33,8 +33,8 @@
Neither of these values may exceed the width of dr_changed_t
measured in bits. */
-#define LOONGARCH_HBP_MAX_NUM 8
-#define LOONGARCH_HWP_MAX_NUM 8
+#define LOONGARCH_HBP_MAX_NUM 14
+#define LOONGARCH_HWP_MAX_NUM 14
/* The maximum length of a memory region that can be watched by one
diff --git a/gdb/nat/loongarch-linux-hw-point.c b/gdb/nat/loongarch-linux-hw-point.c
index 26a88ee..f41fa1b 100644
--- a/gdb/nat/loongarch-linux-hw-point.c
+++ b/gdb/nat/loongarch-linux-hw-point.c
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux on LoongArch processors.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
Contributed by Loongson Ltd.
This file is part of GDB.
diff --git a/gdb/nat/loongarch-linux-hw-point.h b/gdb/nat/loongarch-linux-hw-point.h
index 3efc9a7..9c244a4 100644
--- a/gdb/nat/loongarch-linux-hw-point.h
+++ b/gdb/nat/loongarch-linux-hw-point.h
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux on LoongArch processors.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
Contributed by Loongson Ltd.
This file is part of GDB.
@@ -32,7 +32,7 @@ struct loongarch_user_watch_state {
uint64_t mask;
uint32_t ctrl;
uint32_t pad;
- } dbg_regs[8];
+ } dbg_regs[14];
};
diff --git a/gdb/nat/loongarch-linux.c b/gdb/nat/loongarch-linux.c
index 9486785..89c83bc 100644
--- a/gdb/nat/loongarch-linux.c
+++ b/gdb/nat/loongarch-linux.c
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux on LoongArch processors.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
Contributed by Loongson Ltd.
This file is part of GDB.
diff --git a/gdb/nat/loongarch-linux.h b/gdb/nat/loongarch-linux.h
index 0505bf3..2d17ae0 100644
--- a/gdb/nat/loongarch-linux.h
+++ b/gdb/nat/loongarch-linux.h
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux on LoongArch processors.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
Contributed by Loongson Ltd.
This file is part of GDB.
diff --git a/gdb/nat/mips-linux-watch.c b/gdb/nat/mips-linux-watch.c
index 7d105e8..b9be3a0 100644
--- a/gdb/nat/mips-linux-watch.c
+++ b/gdb/nat/mips-linux-watch.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/mips-linux-watch.h b/gdb/nat/mips-linux-watch.h
index b18b009..3cada37 100644
--- a/gdb/nat/mips-linux-watch.h
+++ b/gdb/nat/mips-linux-watch.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/netbsd-nat.c b/gdb/nat/netbsd-nat.c
index 713ed6a..a6d9b14 100644
--- a/gdb/nat/netbsd-nat.c
+++ b/gdb/nat/netbsd-nat.c
@@ -1,6 +1,6 @@
/* Internal interfaces for the NetBSD code.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/netbsd-nat.h b/gdb/nat/netbsd-nat.h
index 1ffd705..99208cb 100644
--- a/gdb/nat/netbsd-nat.h
+++ b/gdb/nat/netbsd-nat.h
@@ -1,6 +1,6 @@
/* Internal interfaces for the NetBSD code.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/ppc-linux.c b/gdb/nat/ppc-linux.c
index d64ed33..e48455e 100644
--- a/gdb/nat/ppc-linux.c
+++ b/gdb/nat/ppc-linux.c
@@ -1,4 +1,4 @@
-/*Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/*Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/ppc-linux.h b/gdb/nat/ppc-linux.h
index 3efc1b9..9779274 100644
--- a/gdb/nat/ppc-linux.h
+++ b/gdb/nat/ppc-linux.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/riscv-linux-tdesc.c b/gdb/nat/riscv-linux-tdesc.c
index 0cd3843..254a25c 100644
--- a/gdb/nat/riscv-linux-tdesc.c
+++ b/gdb/nat/riscv-linux-tdesc.c
@@ -1,5 +1,5 @@
/* GNU/Linux/RISC-V native target description support for GDB.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/riscv-linux-tdesc.h b/gdb/nat/riscv-linux-tdesc.h
index 875135e..de10d91 100644
--- a/gdb/nat/riscv-linux-tdesc.h
+++ b/gdb/nat/riscv-linux-tdesc.h
@@ -1,5 +1,5 @@
/* GNU/Linux/RISC-V native target description support for GDB.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/windows-nat.c b/gdb/nat/windows-nat.c
index 6f1ce81..7b0fbc5 100644
--- a/gdb/nat/windows-nat.c
+++ b/gdb/nat/windows-nat.c
@@ -1,5 +1,5 @@
/* Internal interfaces for the Windows code
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/windows-nat.h b/gdb/nat/windows-nat.h
index c01f58f..2f50742 100644
--- a/gdb/nat/windows-nat.h
+++ b/gdb/nat/windows-nat.h
@@ -1,5 +1,5 @@
/* Internal interfaces for the Windows code
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/x86-cpuid.h b/gdb/nat/x86-cpuid.h
index 02a204c..6889f56 100644
--- a/gdb/nat/x86-cpuid.h
+++ b/gdb/nat/x86-cpuid.h
@@ -1,5 +1,5 @@
/* C API for x86 cpuid insn.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/x86-dregs.c b/gdb/nat/x86-dregs.c
index 7ea9f49..4119214 100644
--- a/gdb/nat/x86-dregs.c
+++ b/gdb/nat/x86-dregs.c
@@ -1,6 +1,6 @@
/* Debug register code for x86 (i386 and x86-64).
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/x86-dregs.h b/gdb/nat/x86-dregs.h
index 3dcbf8e..c7f38f6 100644
--- a/gdb/nat/x86-dregs.h
+++ b/gdb/nat/x86-dregs.h
@@ -1,6 +1,6 @@
/* Debug register code for x86 (i386 and x86-64).
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/x86-gcc-cpuid.h b/gdb/nat/x86-gcc-cpuid.h
index b0f2d23..1498100 100644
--- a/gdb/nat/x86-gcc-cpuid.h
+++ b/gdb/nat/x86-gcc-cpuid.h
@@ -7,7 +7,7 @@
#define GDB_NAT_X86_GCC_CPUID_H
/*
- * Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ * Copyright (C) 2007-2025 Free Software Foundation, Inc.
*
* 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 the
diff --git a/gdb/nat/x86-linux-dregs.c b/gdb/nat/x86-linux-dregs.c
index a6c0ea6..2953932 100644
--- a/gdb/nat/x86-linux-dregs.c
+++ b/gdb/nat/x86-linux-dregs.c
@@ -1,6 +1,6 @@
/* Low-level debug register code for GNU/Linux x86 (i386 and x86-64).
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/x86-linux-dregs.h b/gdb/nat/x86-linux-dregs.h
index 6f6a6e3..4c3bcfb 100644
--- a/gdb/nat/x86-linux-dregs.h
+++ b/gdb/nat/x86-linux-dregs.h
@@ -1,6 +1,6 @@
/* Low-level debug register code for GNU/Linux x86 (i386 and x86-64).
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/x86-linux-tdesc.c b/gdb/nat/x86-linux-tdesc.c
index 1824f57..80e4337 100644
--- a/gdb/nat/x86-linux-tdesc.c
+++ b/gdb/nat/x86-linux-tdesc.c
@@ -1,6 +1,6 @@
/* Target description related code for GNU/Linux x86 (i386 and x86-64).
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/x86-linux-tdesc.h b/gdb/nat/x86-linux-tdesc.h
index 2a2d869..38c71f1 100644
--- a/gdb/nat/x86-linux-tdesc.h
+++ b/gdb/nat/x86-linux-tdesc.h
@@ -1,6 +1,6 @@
/* Target description related code for GNU/Linux x86 (i386 and x86-64).
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/x86-linux.c b/gdb/nat/x86-linux.c
index ad3ed3c..0bdff73 100644
--- a/gdb/nat/x86-linux.c
+++ b/gdb/nat/x86-linux.c
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux x86 (i386 and x86-64).
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/x86-linux.h b/gdb/nat/x86-linux.h
index 7c0ac77..dbdef08 100644
--- a/gdb/nat/x86-linux.h
+++ b/gdb/nat/x86-linux.h
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux x86 (i386 and x86-64).
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/x86-xstate.c b/gdb/nat/x86-xstate.c
index ca6fbbf..6f2dfde 100644
--- a/gdb/nat/x86-xstate.c
+++ b/gdb/nat/x86-xstate.c
@@ -1,6 +1,6 @@
/* x86 XSAVE extended state functions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nat/x86-xstate.h b/gdb/nat/x86-xstate.h
index 14b58cd..0046ab8 100644
--- a/gdb/nat/x86-xstate.h
+++ b/gdb/nat/x86-xstate.h
@@ -1,6 +1,6 @@
/* x86 XSAVE extended state functions.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/nds32-tdep.c b/gdb/nds32-tdep.c
index e08ead2..7d826fc 100644
--- a/gdb/nds32-tdep.c
+++ b/gdb/nds32-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the NDS32 architecture, for GDB.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GDB.
@@ -1935,7 +1935,7 @@ nds32_validate_tdesc_p (const struct target_desc *tdesc,
}
/* Initialize the current architecture based on INFO. If possible,
- re-use an architecture from ARCHES, which is a list of
+ reuse an architecture from ARCHES, which is a list of
architectures already created during this debugging session.
Called e.g. at program startup, when reading a core file, and when
diff --git a/gdb/nds32-tdep.h b/gdb/nds32-tdep.h
index 18c360d..0b812d3 100644
--- a/gdb/nds32-tdep.h
+++ b/gdb/nds32-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for the NDS32 architecture, for GDB.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
Contributed by Andes Technology Corporation.
This file is part of GDB.
diff --git a/gdb/netbsd-nat.c b/gdb/netbsd-nat.c
index 5005cb8..060134f 100644
--- a/gdb/netbsd-nat.c
+++ b/gdb/netbsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for NetBSD.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/netbsd-nat.h b/gdb/netbsd-nat.h
index 87e076f..86cb0e6 100644
--- a/gdb/netbsd-nat.h
+++ b/gdb/netbsd-nat.h
@@ -1,6 +1,6 @@
/* Native-dependent code for NetBSD.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/netbsd-tdep.c b/gdb/netbsd-tdep.c
index 415a743..3793bd2 100644
--- a/gdb/netbsd-tdep.c
+++ b/gdb/netbsd-tdep.c
@@ -1,6 +1,6 @@
/* Common target-dependent code for NetBSD systems.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Wasabi Systems, Inc.
diff --git a/gdb/netbsd-tdep.h b/gdb/netbsd-tdep.h
index 2e2993e..9e68ad8 100644
--- a/gdb/netbsd-tdep.h
+++ b/gdb/netbsd-tdep.h
@@ -1,5 +1,5 @@
/* Common target-dependent definitions for NetBSD systems.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Wasabi Systems, Inc.
This file is part of GDB.
diff --git a/gdb/objc-lang.c b/gdb/objc-lang.c
index 58aca29..5341b05 100644
--- a/gdb/objc-lang.c
+++ b/gdb/objc-lang.c
@@ -1,6 +1,6 @@
/* Objective-C language support routines for GDB, the GNU debugger.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Apple Computer, Inc.
Written by Michael Snyder.
diff --git a/gdb/objc-lang.h b/gdb/objc-lang.h
index 6a8dc39..ec6fbe7 100644
--- a/gdb/objc-lang.h
+++ b/gdb/objc-lang.h
@@ -1,6 +1,6 @@
/* Objective-C language support definitions for GDB, the GNU debugger.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
Contributed by Apple Computer, Inc.
diff --git a/gdb/objfile-flags.h b/gdb/objfile-flags.h
index e0a84bc..ab2c746 100644
--- a/gdb/objfile-flags.h
+++ b/gdb/objfile-flags.h
@@ -1,6 +1,6 @@
/* Definition of objfile flags.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/objfiles.c b/gdb/objfiles.c
index 84866e1..d25d1a0 100644
--- a/gdb/objfiles.c
+++ b/gdb/objfiles.c
@@ -1,6 +1,6 @@
/* GDB routines for manipulating objfiles.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support, using pieces from other GDB modules.
@@ -34,7 +34,6 @@
#include <sys/stat.h>
#include <fcntl.h>
#include "gdbsupport/gdb_obstack.h"
-#include "hashtab.h"
#include "breakpoint.h"
#include "block.h"
@@ -674,18 +673,18 @@ objfile_rebase (struct objfile *objfile, CORE_ADDR slide)
/* See objfiles.h. */
bool
-objfile_has_full_symbols (objfile *objfile)
+objfile::has_full_symbols ()
{
- return objfile->compunit_symtabs != nullptr;
+ return this->compunit_symtabs != nullptr;
}
/* See objfiles.h. */
bool
-objfile_has_symbols (objfile *objfile)
+objfile::has_symbols ()
{
- for (::objfile *o : objfile->separate_debug_objfiles ())
- if (o->has_partial_symbols () || objfile_has_full_symbols (o))
+ for (::objfile *o : this->separate_debug_objfiles ())
+ if (o->has_partial_symbols () || o->has_full_symbols ())
return true;
return false;
@@ -709,7 +708,7 @@ bool
have_full_symbols (program_space *pspace)
{
for (objfile *ofp : pspace->objfiles ())
- if (objfile_has_full_symbols (ofp))
+ if (ofp->has_full_symbols ())
return true;
return false;
diff --git a/gdb/objfiles.h b/gdb/objfiles.h
index 4ac56d7..4a34758 100644
--- a/gdb/objfiles.h
+++ b/gdb/objfiles.h
@@ -1,6 +1,6 @@
/* Definitions for symbol file management in GDB.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -515,10 +515,16 @@ public:
return per_bfd->gdbarch;
}
- /* Return true if OBJFILE has partial symbols. */
-
+ /* Return true if this objfile has partial symbols. */
bool has_partial_symbols ();
+ /* Return true if this objfile has full symbols. */
+ bool has_full_symbols ();
+
+ /* Return true if this objfile has full or partial symbols, either directly
+ or through a separate debug file. */
+ bool has_symbols ();
+
/* Look for a separate debug symbol file for this objfile, make use of
build-id, debug-link, and debuginfod as necessary. If a suitable
separate debug symbol file is found then it is loaded using a call to
@@ -593,14 +599,13 @@ public:
/* See quick_symbol_functions. */
bool expand_symtabs_matching
- (gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
+ (expand_symtabs_file_matcher file_matcher,
const lookup_name_info *lookup_name,
- gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
- gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
+ expand_symtabs_symbol_matcher symbol_matcher,
+ expand_symtabs_expansion_listener expansion_notify,
block_search_flags search_flags,
domain_search_flags domain,
- gdb::function_view<expand_symtabs_lang_matcher_ftype> lang_matcher
- = nullptr);
+ expand_symtabs_lang_matcher lang_matcher = nullptr);
/* See quick_symbol_functions. */
struct compunit_symtab *
@@ -609,8 +614,7 @@ public:
int warn_if_readin);
/* See quick_symbol_functions. */
- void map_symbol_filenames (gdb::function_view<symbol_filename_ftype> fun,
- bool need_fullname);
+ void map_symbol_filenames (symbol_filename_listener fun, bool need_fullname);
/* See quick_symbol_functions. */
void compute_main_name ();
@@ -940,15 +944,6 @@ extern void free_objfile_separate_debug (struct objfile *);
extern void objfile_relocate (struct objfile *, const section_offsets &);
extern void objfile_rebase (struct objfile *, CORE_ADDR);
-/* Return true if OBJFILE has full symbols. */
-
-extern bool objfile_has_full_symbols (objfile *objfile);
-
-/* Return true if OBJFILE has full or partial symbols, either directly
- or through a separate debug file. */
-
-extern bool objfile_has_symbols (objfile *objfile);
-
/* Return true if any objfile of PSPACE has partial symbols. */
extern bool have_partial_symbols (program_space *pspace);
@@ -994,10 +989,10 @@ extern struct obj_section *find_pc_section (CORE_ADDR pc);
/* Return true if PC is in a section called NAME. */
extern bool pc_in_section (CORE_ADDR, const char *);
-/* Return non-zero if PC is in a SVR4-style procedure linkage table
+/* Return true if PC is in a SVR4-style procedure linkage table
section. */
-static inline int
+static inline bool
in_plt_section (CORE_ADDR pc)
{
return (pc_in_section (pc, ".plt")
diff --git a/gdb/obsd-nat.c b/gdb/obsd-nat.c
index 701a365..2a47568 100644
--- a/gdb/obsd-nat.c
+++ b/gdb/obsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for OpenBSD.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/obsd-nat.h b/gdb/obsd-nat.h
index 35ee212..ef82c6e 100644
--- a/gdb/obsd-nat.h
+++ b/gdb/obsd-nat.h
@@ -1,6 +1,6 @@
/* Native-dependent code for OpenBSD.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/obsd-tdep.c b/gdb/obsd-tdep.c
index 00de5c0..bf72f8c 100644
--- a/gdb/obsd-tdep.c
+++ b/gdb/obsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for OpenBSD.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/obsd-tdep.h b/gdb/obsd-tdep.h
index c018513..fd7accc 100644
--- a/gdb/obsd-tdep.h
+++ b/gdb/obsd-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for OpenBSD.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/observable.c b/gdb/observable.c
index cc1b01d..734a5f6 100644
--- a/gdb/observable.c
+++ b/gdb/observable.c
@@ -1,6 +1,6 @@
/* GDB Notifications to Observers.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/observable.h b/gdb/observable.h
index 077014c..4d91301 100644
--- a/gdb/observable.h
+++ b/gdb/observable.h
@@ -1,6 +1,6 @@
/* Observers
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -102,9 +102,14 @@ extern observable<inferior */* parent_inf */, inferior */* child_inf */,
extern observable<solib &/* solib */> solib_loaded;
/* The shared library SOLIB has been unloaded from program space PSPACE.
+ The SILENT argument indicates that GDB doesn't wish to notify the CLI
+ about any non-error consequences of unloading the solib, e.g. when
+ breakpoints are disabled.
+
Note when gdb calls this observer, the library's symbols have not
been unloaded yet, and thus are still available. */
-extern observable<program_space *, const solib &/* solib */> solib_unloaded;
+extern observable<program_space *, const solib &/* solib */,
+ bool /* still_in_use */, bool /* silent */> solib_unloaded;
/* The symbol file specified by OBJFILE has been loaded. */
extern observable<struct objfile */* objfile */> new_objfile;
diff --git a/gdb/opencl-lang.c b/gdb/opencl-lang.c
index 939757d..b3286ff 100644
--- a/gdb/opencl-lang.c
+++ b/gdb/opencl-lang.c
@@ -1,5 +1,5 @@
/* OpenCL language support for GDB, the GNU debugger.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Ken Werner <ken.werner@de.ibm.com>.
diff --git a/gdb/or1k-linux-nat.c b/gdb/or1k-linux-nat.c
index e6cc9c7..3a80dc9 100644
--- a/gdb/or1k-linux-nat.c
+++ b/gdb/or1k-linux-nat.c
@@ -1,5 +1,5 @@
/* Native-dependent code for GNU/Linux OpenRISC.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/or1k-linux-tdep.c b/gdb/or1k-linux-tdep.c
index 00045a3..4784e0b 100644
--- a/gdb/or1k-linux-tdep.c
+++ b/gdb/or1k-linux-tdep.c
@@ -1,5 +1,5 @@
/* Target-dependent code for GNU/Linux on OpenRISC processors.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/or1k-linux-tdep.h b/gdb/or1k-linux-tdep.h
index b510f32..f85cf51 100644
--- a/gdb/or1k-linux-tdep.h
+++ b/gdb/or1k-linux-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux on OpenRISC.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/or1k-tdep.c b/gdb/or1k-tdep.c
index bdfad9b..8e76419 100644
--- a/gdb/or1k-tdep.c
+++ b/gdb/or1k-tdep.c
@@ -1,5 +1,5 @@
/* Target-dependent code for the 32-bit OpenRISC 1000, for the GDB.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/or1k-tdep.h b/gdb/or1k-tdep.h
index f307257..12cb2cd 100644
--- a/gdb/or1k-tdep.h
+++ b/gdb/or1k-tdep.h
@@ -1,5 +1,5 @@
/* Definitions to target GDB to OpenRISC 1000 32-bit targets.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/osabi.c b/gdb/osabi.c
index 236d425..ae14f74 100644
--- a/gdb/osabi.c
+++ b/gdb/osabi.c
@@ -1,6 +1,6 @@
/* OS ABI variant handling for GDB.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/osabi.h b/gdb/osabi.h
index 982c7a7..2f359a1 100644
--- a/gdb/osabi.h
+++ b/gdb/osabi.h
@@ -1,5 +1,5 @@
/* OS ABI variant handling for GDB.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/osdata.c b/gdb/osdata.c
index e22c249..5cc584d 100644
--- a/gdb/osdata.c
+++ b/gdb/osdata.c
@@ -1,6 +1,6 @@
/* Routines for handling XML generic OS data provided by target.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/osdata.h b/gdb/osdata.h
index 9de443a..c102246 100644
--- a/gdb/osdata.h
+++ b/gdb/osdata.h
@@ -1,6 +1,6 @@
/* Routines for handling XML generic OS data provided by target.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/p-exp.y b/gdb/p-exp.y
index 938d3cf..cbf6b44 100644
--- a/gdb/p-exp.y
+++ b/gdb/p-exp.y
@@ -1,5 +1,5 @@
/* YACC parser for Pascal expressions, for GDB.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -765,7 +765,7 @@ typebase /* Implements (approximately): (type-qualifier)* type-specifier */
= lookup_struct (copy_name ($2).c_str (),
pstate->expression_context_block);
}
- /* "const" and "volatile" are curently ignored. A type qualifier
+ /* "const" and "volatile" are currently ignored. A type qualifier
after the type is handled in the ptype rule. I think these could
be too. */
;
diff --git a/gdb/p-lang.c b/gdb/p-lang.c
index 4c5d4dd..3ded152 100644
--- a/gdb/p-lang.c
+++ b/gdb/p-lang.c
@@ -1,6 +1,6 @@
/* Pascal language support routines for GDB, the GNU debugger.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/p-lang.h b/gdb/p-lang.h
index abb981a..87430ba 100644
--- a/gdb/p-lang.h
+++ b/gdb/p-lang.h
@@ -1,6 +1,6 @@
/* Pascal language support definitions for GDB, the GNU debugger.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/p-typeprint.c b/gdb/p-typeprint.c
index f9e1d7c..7994ccf 100644
--- a/gdb/p-typeprint.c
+++ b/gdb/p-typeprint.c
@@ -1,5 +1,5 @@
/* Support for printing Pascal types for GDB, the GNU debugger.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/p-valprint.c b/gdb/p-valprint.c
index aa7f1a9..5dcdbcd 100644
--- a/gdb/p-valprint.c
+++ b/gdb/p-valprint.c
@@ -1,6 +1,6 @@
/* Support for printing Pascal values for GDB, the GNU debugger.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/pager.h b/gdb/pager.h
index aa9b24e..052337d 100644
--- a/gdb/pager.h
+++ b/gdb/pager.h
@@ -1,5 +1,5 @@
/* Output pager for gdb
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -50,7 +50,6 @@ public:
}
void emit_style_escape (const ui_file_style &style) override;
- void reset_style () override;
void flush () override;
diff --git a/gdb/parse.c b/gdb/parse.c
index ffefe6f..64653c8 100644
--- a/gdb/parse.c
+++ b/gdb/parse.c
@@ -1,6 +1,6 @@
/* Parse expressions for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
Modified from expread.y by the Department of Computer Science at the
State University of New York at Buffalo, 1991.
@@ -60,8 +60,8 @@ show_expressiondebug (struct ui_file *file, int from_tty,
}
-/* True if an expression parser should set yydebug. */
-static bool parser_debug;
+/* See parser-defs.h. */
+bool parser_debug;
static void
show_parserdebug (struct ui_file *file, int from_tty,
diff --git a/gdb/parser-defs.h b/gdb/parser-defs.h
index eaa3c41..f5618f3 100644
--- a/gdb/parser-defs.h
+++ b/gdb/parser-defs.h
@@ -1,6 +1,6 @@
/* Parser definitions for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
Modified from expread.y by the Department of Computer Science at the
State University of New York at Buffalo.
@@ -389,4 +389,7 @@ extern bool fits_in_type (int n_sign, const gdb_mpz &n, int type_bits,
extern void parser_fprintf (FILE *, const char *, ...) ATTRIBUTE_PRINTF (2, 3);
+/* True if an expression parser should set yydebug. */
+extern bool parser_debug;
+
#endif /* GDB_PARSER_DEFS_H */
diff --git a/gdb/posix-hdep.c b/gdb/posix-hdep.c
index d7d17e6..0f9d9d0 100644
--- a/gdb/posix-hdep.c
+++ b/gdb/posix-hdep.c
@@ -1,6 +1,6 @@
/* Host support routines for MinGW, for GDB, the GNU debugger.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ppc-fbsd-nat.c b/gdb/ppc-fbsd-nat.c
index b3b20ff..e8853cf 100644
--- a/gdb/ppc-fbsd-nat.c
+++ b/gdb/ppc-fbsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for PowerPC's running FreeBSD, for GDB.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ppc-fbsd-tdep.c b/gdb/ppc-fbsd-tdep.c
index 0403b56..3bab031 100644
--- a/gdb/ppc-fbsd-tdep.c
+++ b/gdb/ppc-fbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for PowerPC systems running FreeBSD.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ppc-fbsd-tdep.h b/gdb/ppc-fbsd-tdep.h
index 93ba904..364d7d9 100644
--- a/gdb/ppc-fbsd-tdep.h
+++ b/gdb/ppc-fbsd-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for GDB on PowerPC systems running FreeBSD.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ppc-linux-nat.c b/gdb/ppc-linux-nat.c
index 40a5665..0397ccb 100644
--- a/gdb/ppc-linux-nat.c
+++ b/gdb/ppc-linux-nat.c
@@ -1,6 +1,6 @@
/* PPC GNU/Linux native support.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ppc-linux-tdep.c b/gdb/ppc-linux-tdep.c
index 8a5eea7..b3cc4d5 100644
--- a/gdb/ppc-linux-tdep.c
+++ b/gdb/ppc-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -32,7 +32,6 @@
#include "regset.h"
#include "solib-svr4.h"
#include "solib.h"
-#include "solist.h"
#include "ppc-tdep.h"
#include "ppc64-tdep.h"
#include "ppc-linux-tdep.h"
@@ -49,6 +48,7 @@
#include "arch-utils.h"
#include "xml-syscall.h"
#include "linux-tdep.h"
+#include "svr4-tls-tdep.h"
#include "linux-record.h"
#include "record-full.h"
#include "infrun.h"
@@ -310,22 +310,22 @@ static const struct ppc_insn_pattern powerpc32_plt_stub_so_2[] =
section. For secure PLT, stub is in .text and we need to check
instruction patterns. */
-static int
+static bool
powerpc_linux_in_dynsym_resolve_code (CORE_ADDR pc)
{
/* Check whether PC is in the dynamic linker. This also checks
whether it is in the .plt section, used by non-PIC executables. */
if (svr4_in_dynsym_resolve_code (pc))
- return 1;
+ return true;
/* Check if we are in the resolver. */
bound_minimal_symbol sym = lookup_minimal_symbol_by_pc (pc);
- if (sym.minsym != NULL
- && (strcmp (sym.minsym->linkage_name (), "__glink") == 0
- || strcmp (sym.minsym->linkage_name (), "__glink_PLTresolve") == 0))
- return 1;
- return 0;
+ if (sym.minsym == nullptr)
+ return false;
+
+ return (strcmp (sym.minsym->linkage_name (), "__glink") == 0
+ || strcmp (sym.minsym->linkage_name (), "__glink_PLTresolve") == 0);
}
/* Follow PLT stub to actual routine.
@@ -1638,14 +1638,15 @@ ppc_linux_core_read_description (struct gdbarch *gdbarch,
gdbarch.h. This implementation is used for the ELFv2 ABI only. */
static void
-ppc_elfv2_elf_make_msymbol_special (asymbol *sym, struct minimal_symbol *msym)
+ppc_elfv2_elf_make_msymbol_special (const asymbol *sym,
+ struct minimal_symbol *msym)
{
if ((sym->flags & BSF_SYNTHETIC) != 0)
/* ELFv2 synthetic symbols (the PLT stubs and the __glink_PLTresolve
trampoline) do not have a local entry point. */
return;
- elf_symbol_type *elf_sym = (elf_symbol_type *)sym;
+ const elf_symbol_type *elf_sym = (const elf_symbol_type *)sym;
/* If the symbol is marked as having a local entry point, set a target
flag in the msymbol. We currently only support local entry point
@@ -2070,6 +2071,63 @@ ppc64_linux_gcc_target_options (struct gdbarch *gdbarch)
return "";
}
+/* Fetch and return the TLS DTV (dynamic thread vector) address for PTID.
+ Throw a suitable TLS error if something goes wrong. */
+
+static CORE_ADDR
+ppc64_linux_get_tls_dtv_addr (struct gdbarch *gdbarch, ptid_t ptid,
+ enum svr4_tls_libc libc)
+{
+ /* On ppc64, the thread pointer is found in r13. Fetch this
+ register. */
+ regcache *regcache
+ = get_thread_arch_regcache (current_inferior (), ptid, gdbarch);
+ int thread_pointer_regnum = PPC_R0_REGNUM + 13;
+ target_fetch_registers (regcache, thread_pointer_regnum);
+ ULONGEST thr_ptr;
+ if (regcache->cooked_read (thread_pointer_regnum, &thr_ptr) != REG_VALID)
+ throw_error (TLS_GENERIC_ERROR, _("Unable to fetch thread pointer"));
+
+ /* The thread pointer (r13) is an address that is 0x7000 ahead of
+ the *end* of the TCB (thread control block). The field
+ holding the DTV address is at the very end of the TCB.
+ Therefore, the DTV pointer address can be found by
+ subtracting (0x7000+8) from the thread pointer. Compute the
+ address of the DTV pointer, fetch it, and convert it to an
+ address. */
+ CORE_ADDR dtv_ptr_addr = thr_ptr - 0x7000 - 8;
+ gdb::byte_vector buf (gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT);
+ if (target_read_memory (dtv_ptr_addr, buf.data (), buf.size ()) != 0)
+ throw_error (TLS_GENERIC_ERROR, _("Unable to fetch DTV address"));
+
+ const struct builtin_type *builtin = builtin_type (gdbarch);
+ CORE_ADDR dtv_addr = gdbarch_pointer_to_address
+ (gdbarch, builtin->builtin_data_ptr, buf.data ());
+ return dtv_addr;
+}
+
+/* For internal TLS lookup, return the DTP offset, which is the offset
+ to subtract from a DTV entry, in order to obtain the address of the
+ TLS block. */
+
+static ULONGEST
+ppc_linux_get_tls_dtp_offset (struct gdbarch *gdbarch, ptid_t ptid,
+ svr4_tls_libc libc)
+{
+ if (libc == svr4_tls_libc_musl)
+ {
+ /* This value is DTP_OFFSET, which represents the value to
+ subtract from the DTV entry. For PPC, it can be found in
+ MUSL's arch/powerpc64/pthread_arch.h and
+ arch/powerpc32/pthread_arch.h. (Both values are the same.)
+ It represents the value to subtract from the DTV entry, once
+ it has been fetched from the DTV array. */
+ return 0x8000;
+ }
+ else
+ return 0;
+}
+
static displaced_step_prepare_status
ppc_linux_displaced_step_prepare (gdbarch *arch, thread_info *thread,
CORE_ADDR &displaced_pc)
@@ -2283,6 +2341,11 @@ ppc_linux_init_abi (struct gdbarch_info info,
set_gdbarch_gnu_triplet_regexp (gdbarch, ppc64_gnu_triplet_regexp);
/* Set GCC target options. */
set_gdbarch_gcc_target_options (gdbarch, ppc64_linux_gcc_target_options);
+ /* Internal thread local address support. */
+ set_gdbarch_get_thread_local_address (gdbarch,
+ svr4_tls_get_thread_local_address);
+ svr4_tls_register_tls_methods (info, gdbarch, ppc64_linux_get_tls_dtv_addr,
+ ppc_linux_get_tls_dtp_offset);
}
set_gdbarch_core_read_description (gdbarch, ppc_linux_core_read_description);
diff --git a/gdb/ppc-linux-tdep.h b/gdb/ppc-linux-tdep.h
index a1db503..2c4e39e 100644
--- a/gdb/ppc-linux-tdep.h
+++ b/gdb/ppc-linux-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for GDB, the GNU debugger.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ppc-netbsd-nat.c b/gdb/ppc-netbsd-nat.c
index a384944..a8e65bb 100644
--- a/gdb/ppc-netbsd-nat.c
+++ b/gdb/ppc-netbsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for NetBSD/powerpc.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Wasabi Systems, Inc.
diff --git a/gdb/ppc-netbsd-tdep.c b/gdb/ppc-netbsd-tdep.c
index b412030..911c012 100644
--- a/gdb/ppc-netbsd-tdep.c
+++ b/gdb/ppc-netbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for NetBSD/powerpc.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Wasabi Systems, Inc.
diff --git a/gdb/ppc-netbsd-tdep.h b/gdb/ppc-netbsd-tdep.h
index 47a8b25..1d3c356 100644
--- a/gdb/ppc-netbsd-tdep.h
+++ b/gdb/ppc-netbsd-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for NetBSD/powerpc.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ppc-obsd-nat.c b/gdb/ppc-obsd-nat.c
index 66e7b93..1431aa6 100644
--- a/gdb/ppc-obsd-nat.c
+++ b/gdb/ppc-obsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for OpenBSD/powerpc.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ppc-obsd-tdep.c b/gdb/ppc-obsd-tdep.c
index 37be2d1..5e271c1 100644
--- a/gdb/ppc-obsd-tdep.c
+++ b/gdb/ppc-obsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for OpenBSD/powerpc.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ppc-obsd-tdep.h b/gdb/ppc-obsd-tdep.h
index 7f5e7b9..20dc45b 100644
--- a/gdb/ppc-obsd-tdep.h
+++ b/gdb/ppc-obsd-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for OpenBSD/powerpc.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ppc-ravenscar-thread.c b/gdb/ppc-ravenscar-thread.c
index fd44a9a..88008d9 100644
--- a/gdb/ppc-ravenscar-thread.c
+++ b/gdb/ppc-ravenscar-thread.c
@@ -1,6 +1,6 @@
/* Ravenscar PowerPC target support.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ppc-ravenscar-thread.h b/gdb/ppc-ravenscar-thread.h
index c03fbd2..52fe4a0 100644
--- a/gdb/ppc-ravenscar-thread.h
+++ b/gdb/ppc-ravenscar-thread.h
@@ -1,6 +1,6 @@
/* Ravenscar PowerPC target support.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ppc-sysv-tdep.c b/gdb/ppc-sysv-tdep.c
index f317c94..cae5aa6 100644
--- a/gdb/ppc-sysv-tdep.c
+++ b/gdb/ppc-sysv-tdep.c
@@ -1,7 +1,7 @@
/* Target-dependent code for PowerPC systems using the SVR4 ABI
for GDB, the GNU debugger.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -2112,6 +2112,7 @@ ppc64_sysv_abi_return_value (struct gdbarch *gdbarch, struct value *function,
/* In the ELFv2 ABI, aggregate types of up to 16 bytes are
returned in registers r3:r4. */
if (tdep->elf_abi == POWERPC_ELF_V2
+ && !TYPE_HAS_DYNAMIC_LENGTH (valtype)
&& valtype->length () <= 16
&& (valtype->code () == TYPE_CODE_STRUCT
|| valtype->code () == TYPE_CODE_UNION
diff --git a/gdb/ppc-tdep.h b/gdb/ppc-tdep.h
index 3176c15..bf0e82a 100644
--- a/gdb/ppc-tdep.h
+++ b/gdb/ppc-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for GDB, the GNU debugger.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ppc64-tdep.c b/gdb/ppc64-tdep.c
index 79bc4da..a8dcf6f 100644
--- a/gdb/ppc64-tdep.c
+++ b/gdb/ppc64-tdep.c
@@ -1,6 +1,6 @@
/* Common target-dependent code for ppc64 GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -793,11 +793,12 @@ ppc64_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
from that symbol. */
void
-ppc64_elf_make_msymbol_special (asymbol *sym, struct minimal_symbol *msym)
+ppc64_elf_make_msymbol_special (const asymbol *sym,
+ struct minimal_symbol *msym)
{
if ((sym->flags & BSF_SYNTHETIC) != 0 && sym->udata.p != NULL)
{
- elf_symbol_type *elf_sym = (elf_symbol_type *) sym->udata.p;
+ const elf_symbol_type *elf_sym = (const elf_symbol_type *) sym->udata.p;
msym->set_size (elf_sym->internal_elf_sym.st_size);
}
}
diff --git a/gdb/ppc64-tdep.h b/gdb/ppc64-tdep.h
index 7bea549..893ae8a 100644
--- a/gdb/ppc64-tdep.h
+++ b/gdb/ppc64-tdep.h
@@ -1,6 +1,6 @@
/* Common target-dependent code for ppc64.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -31,6 +31,6 @@ extern CORE_ADDR ppc64_convert_from_func_ptr_addr (struct gdbarch *gdbarch,
CORE_ADDR addr,
struct target_ops *targ);
-extern void ppc64_elf_make_msymbol_special (asymbol *,
+extern void ppc64_elf_make_msymbol_special (const asymbol *,
struct minimal_symbol *);
#endif /* GDB_PPC64_TDEP_H */
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index a9c4e93..b2df42e 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -1,6 +1,6 @@
/* Print values for GNU debugger GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -43,7 +43,6 @@
#include "disasm.h"
#include "target-float.h"
#include "observable.h"
-#include "solist.h"
#include "parser-defs.h"
#include "charset.h"
#include "arch-utils.h"
@@ -56,7 +55,6 @@
#include "gdbsupport/byte-vector.h"
#include <optional>
#include "gdbsupport/gdb-safe-ctype.h"
-#include "gdbsupport/rsp-low.h"
#include "inferior.h"
/* Chain containing all defined memory-tag subcommands. */
@@ -1322,7 +1320,9 @@ process_print_command_args (const char *args, value_print_options *print_opts,
value, so invert it for parse_expression. */
parser_flags flags = 0;
if (!voidprint)
- flags = PARSER_VOID_CONTEXT;
+ flags |= PARSER_VOID_CONTEXT;
+ if (parser_debug)
+ flags |= PARSER_DEBUG;
expression_up expr = parse_expression (exp, nullptr, flags);
return expr->evaluate ();
}
@@ -2394,7 +2394,7 @@ printf_c_string (struct ui_file *stream, const char *format,
}
else
{
- CORE_ADDR tem = value_as_address (value);;
+ CORE_ADDR tem = value_as_address (value);
if (tem == 0)
{
@@ -2885,7 +2885,7 @@ static void
printf_command (const char *arg, int from_tty)
{
ui_printf (arg, gdb_stdout);
- gdb_stdout->reset_style ();
+ gdb_stdout->emit_style_escape (ui_file_style ());
gdb_stdout->wrap_here (0);
gdb_stdout->flush ();
}
diff --git a/gdb/probe.c b/gdb/probe.c
index b13baf0..e6788ff 100644
--- a/gdb/probe.c
+++ b/gdb/probe.c
@@ -1,6 +1,6 @@
/* Generic static probe support for GDB.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/probe.h b/gdb/probe.h
index 00b3f90..446ec18 100644
--- a/gdb/probe.h
+++ b/gdb/probe.h
@@ -1,6 +1,6 @@
/* Generic SDT probe support for GDB.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/proc-api.c b/gdb/proc-api.c
index 55e3919..7a45ba9 100644
--- a/gdb/proc-api.c
+++ b/gdb/proc-api.c
@@ -1,6 +1,6 @@
/* Machine independent support for Solaris /proc (process file system) for GDB.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Michael Snyder at Cygnus Solutions.
Based on work by Fred Fish, Stu Grossman, Geoff Noer, and others.
diff --git a/gdb/proc-events.c b/gdb/proc-events.c
index 55b7363..23af639 100644
--- a/gdb/proc-events.c
+++ b/gdb/proc-events.c
@@ -1,6 +1,6 @@
/* Machine-independent support for Solaris /proc (process file system)
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Michael Snyder at Cygnus Solutions.
Based on work by Fred Fish, Stu Grossman, Geoff Noer, and others.
diff --git a/gdb/proc-flags.c b/gdb/proc-flags.c
index 33075e9..522c142 100644
--- a/gdb/proc-flags.c
+++ b/gdb/proc-flags.c
@@ -1,5 +1,5 @@
/* Machine independent support for Solaris /proc (process file system) for GDB.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Michael Snyder at Cygnus Solutions.
Based on work by Fred Fish, Stu Grossman, Geoff Noer, and others.
diff --git a/gdb/proc-service.c b/gdb/proc-service.c
index ce2d69a..af92335 100644
--- a/gdb/proc-service.c
+++ b/gdb/proc-service.c
@@ -1,6 +1,6 @@
/* <proc_service.h> implementation.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/proc-service.list b/gdb/proc-service.list
index 5fdb45a..102b2b3 100644
--- a/gdb/proc-service.list
+++ b/gdb/proc-service.list
@@ -1,6 +1,6 @@
/* -Wl,--dynamic-list symbols exported for libthread_db.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/proc-utils.h b/gdb/proc-utils.h
index 5f8fe39..85a6f40 100644
--- a/gdb/proc-utils.h
+++ b/gdb/proc-utils.h
@@ -1,5 +1,5 @@
/* Machine independent support for SVR4 /proc (process file system) for GDB.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/proc-why.c b/gdb/proc-why.c
index ec8987d..2e8d33c 100644
--- a/gdb/proc-why.c
+++ b/gdb/proc-why.c
@@ -1,6 +1,6 @@
/* Machine-independent support for Solaris /proc (process file system)
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Michael Snyder at Cygnus Solutions.
Based on work by Fred Fish, Stu Grossman, Geoff Noer, and others.
diff --git a/gdb/process-stratum-target.c b/gdb/process-stratum-target.c
index ce8ff28..329589d 100644
--- a/gdb/process-stratum-target.c
+++ b/gdb/process-stratum-target.c
@@ -1,6 +1,6 @@
/* Abstract base class inherited by all process_stratum targets
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -195,11 +195,11 @@ process_stratum_target::find_thread (ptid_t ptid)
/* See process-stratum-target.h. */
-std::set<process_stratum_target *>
+gdb::unordered_set<process_stratum_target *>
all_non_exited_process_targets ()
{
/* Inferiors may share targets. To eliminate duplicates, use a set. */
- std::set<process_stratum_target *> targets;
+ gdb::unordered_set<process_stratum_target *> targets;
for (inferior *inf : all_non_exited_inferiors ())
targets.insert (inf->process_target ());
diff --git a/gdb/process-stratum-target.h b/gdb/process-stratum-target.h
index 8a0e139..2545d48 100644
--- a/gdb/process-stratum-target.h
+++ b/gdb/process-stratum-target.h
@@ -1,6 +1,6 @@
/* Abstract base class inherited by all process_stratum targets
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -21,9 +21,8 @@
#define GDB_PROCESS_STRATUM_TARGET_H
#include "target.h"
-#include <set>
-#include "gdbsupport/intrusive_list.h"
#include "gdbsupport/gdb-checked-static-cast.h"
+#include "gdbsupport/unordered_set.h"
#include "gdbthread.h"
/* Abstract base class inherited by all process_stratum targets. */
@@ -166,7 +165,8 @@ as_process_stratum_target (target_ops *target)
/* Return a collection of targets that have non-exited inferiors. */
-extern std::set<process_stratum_target *> all_non_exited_process_targets ();
+extern gdb::unordered_set<process_stratum_target *>
+ all_non_exited_process_targets ();
/* Switch to the first inferior (and program space) of TARGET, and
switch to no thread selected. */
diff --git a/gdb/procfs.c b/gdb/procfs.c
index be95a35..aba2ab9 100644
--- a/gdb/procfs.c
+++ b/gdb/procfs.c
@@ -1,6 +1,6 @@
/* Machine independent support for Solaris /proc (process file system) for GDB.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Michael Snyder at Cygnus Solutions.
Based on work by Fred Fish, Stu Grossman, Geoff Noer, and others.
@@ -3550,21 +3550,17 @@ procfs_corefile_thread_callback (procinfo *pi, procinfo *thread, void *data)
return 0;
}
-static int
-find_signalled_thread (struct thread_info *info, void *data)
+static bool
+find_signalled_thread (struct thread_info *info)
{
- if (info->stop_signal () != GDB_SIGNAL_0
- && info->ptid.pid () == inferior_ptid.pid ())
- return 1;
-
- return 0;
+ return (info->stop_signal () != GDB_SIGNAL_0
+ && info->ptid.pid () == inferior_ptid.pid ());
}
static enum gdb_signal
find_stop_signal (void)
{
- struct thread_info *info =
- iterate_over_threads (find_signalled_thread, NULL);
+ struct thread_info *info = iterate_over_threads (find_signalled_thread);
if (info)
return info->stop_signal ();
diff --git a/gdb/procfs.h b/gdb/procfs.h
index 0dafb9a..65d68f0 100644
--- a/gdb/procfs.h
+++ b/gdb/procfs.h
@@ -1,6 +1,6 @@
/* Native debugging support for procfs targets.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/producer.c b/gdb/producer.c
index 2ca701f..d8cbded 100644
--- a/gdb/producer.c
+++ b/gdb/producer.c
@@ -1,6 +1,6 @@
/* Producer string parsers for GDB.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -195,6 +195,30 @@ producer_is_clang (const char *producer, int *major, int *minor)
return false;
}
+/* See producer.h. */
+
+bool
+producer_is_realview (const char *producer)
+{
+ static const char *const arm_idents[] = {
+ "ARM C Compiler, ADS",
+ "Thumb C Compiler, ADS",
+ "ARM C++ Compiler, ADS",
+ "Thumb C++ Compiler, ADS",
+ "ARM/Thumb C/C++ Compiler, RVCT",
+ "ARM C/C++ Compiler, RVCT"
+ };
+
+ if (producer == NULL)
+ return false;
+
+ for (const char *ident : arm_idents)
+ if (startswith (producer, ident))
+ return true;
+
+ return false;
+}
+
#if defined GDB_SELF_TEST
namespace selftests {
namespace producer {
diff --git a/gdb/producer.h b/gdb/producer.h
index 5cdb7ee..f5bf807 100644
--- a/gdb/producer.h
+++ b/gdb/producer.h
@@ -1,6 +1,6 @@
/* Producer string parsers for GDB.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -50,4 +50,8 @@ extern bool producer_is_llvm (const char *producer);
Sets MAJOR and MINOR accordingly, if not NULL. */
extern bool producer_is_clang (const char *producer, int *major, int *minor);
+/* Return true if the supplied producer string matches the ARM
+ RealView compiler (armcc). */
+extern bool producer_is_realview (const char *producer);
+
#endif /* GDB_PRODUCER_H */
diff --git a/gdb/progspace-and-thread.c b/gdb/progspace-and-thread.c
index e78e56d..ec90850 100644
--- a/gdb/progspace-and-thread.c
+++ b/gdb/progspace-and-thread.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/progspace-and-thread.h b/gdb/progspace-and-thread.h
index 52c493b..838102b 100644
--- a/gdb/progspace-and-thread.h
+++ b/gdb/progspace-and-thread.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/progspace.c b/gdb/progspace.c
index 0734b44..1c27165 100644
--- a/gdb/progspace.c
+++ b/gdb/progspace.c
@@ -1,6 +1,6 @@
/* Program and address space management, for GDB, the GNU debugger.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -21,7 +21,6 @@
#include "objfiles.h"
#include "gdbcore.h"
#include "solib.h"
-#include "solist.h"
#include "gdbthread.h"
#include "inferior.h"
#include <algorithm>
@@ -202,12 +201,14 @@ program_space::exec_close ()
if (ebfd != nullptr)
{
/* Removing target sections may close the exec_ops target.
- Clear ebfd before doing so to prevent recursion. */
- bfd *saved_ebfd = ebfd.get ();
+ Clear ebfd before doing so to prevent recursion. We
+ move it to another ref_ptr instead of saving it to a raw
+ pointer to avoid it looking like possible use-after-free. */
+ gdb_bfd_ref_ptr saved_ebfd = std::move (ebfd);
ebfd.reset (nullptr);
ebfd_mtime = 0;
- remove_target_sections (saved_ebfd);
+ remove_target_sections (saved_ebfd.get ());
m_exec_filename.reset ();
}
diff --git a/gdb/progspace.h b/gdb/progspace.h
index 7de970b..5e5d5ed 100644
--- a/gdb/progspace.h
+++ b/gdb/progspace.h
@@ -1,6 +1,6 @@
/* Program and address space management, for GDB, the GNU debugger.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -24,9 +24,9 @@
#include "target.h"
#include "gdb_bfd.h"
#include "registry.h"
-#include "solist.h"
#include "gdbsupport/safe-iterator.h"
#include "gdbsupport/intrusive_list.h"
+#include "gdbsupport/owning_intrusive_list.h"
#include "gdbsupport/refcounted-object.h"
#include "gdbsupport/gdb_ref_ptr.h"
#include <vector>
@@ -231,9 +231,9 @@ struct program_space
is outside all objfiles in this progspace. */
struct objfile *objfile_for_address (CORE_ADDR address);
- /* Return the list of all the solibs in this program space. */
+ /* Return the list of all the solibs in this program space. */
owning_intrusive_list<solib> &solibs ()
- { return so_list; }
+ { return m_solib_list; }
/* Similar to `bfd_get_filename (exec_bfd ())` but in original form given
by user, without symbolic links and pathname resolved. It is not nullptr
@@ -337,10 +337,6 @@ struct program_space
(e.g. the argument to the "symbol-file" or "file" command). */
struct objfile *symfile_object_file = NULL;
- /* List of shared objects mapped into this space. Managed by
- solib.c. */
- owning_intrusive_list<solib> so_list;
-
/* Number of calls to solib_add. */
unsigned int solib_add_generation = 0;
@@ -359,6 +355,10 @@ private:
/* All known objfiles are kept in a linked list. */
owning_intrusive_list<objfile> m_objfiles_list;
+ /* List of shared objects mapped into this space. Managed by
+ solib.c. */
+ owning_intrusive_list<solib> m_solib_list;
+
/* The set of target sections matching the sections mapped into
this program space. Managed by both exec_ops and solib.c. */
std::vector<target_section> m_target_sections;
diff --git a/gdb/prologue-value.c b/gdb/prologue-value.c
index 2c0ce52..85483c0 100644
--- a/gdb/prologue-value.c
+++ b/gdb/prologue-value.c
@@ -1,5 +1,5 @@
/* Prologue value handling for GDB.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/prologue-value.h b/gdb/prologue-value.h
index 39235d5..3f1cf33 100644
--- a/gdb/prologue-value.h
+++ b/gdb/prologue-value.h
@@ -1,5 +1,5 @@
/* Interface to prologue value handling for GDB.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index ef7fa23..986ef44 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -1,6 +1,6 @@
/* Partial symbol tables.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -735,10 +735,9 @@ psymbol_functions::expand_all_symtabs (struct objfile *objfile)
the definition of quick_symbol_functions in symfile.h. */
void
-psymbol_functions::map_symbol_filenames
- (struct objfile *objfile,
- gdb::function_view<symbol_filename_ftype> fun,
- bool need_fullname)
+psymbol_functions::map_symbol_filenames (objfile *objfile,
+ symbol_filename_listener fun,
+ bool need_fullname)
{
for (partial_symtab *ps : partial_symbols (objfile))
{
@@ -797,13 +796,11 @@ psymtab_to_fullname (struct partial_symtab *ps)
various psymtabs that it searches. */
static bool
-recursively_search_psymtabs
- (struct partial_symtab *ps,
- struct objfile *objfile,
- block_search_flags search_flags,
- domain_search_flags domain,
- const lookup_name_info &lookup_name,
- gdb::function_view<expand_symtabs_symbol_matcher_ftype> sym_matcher)
+recursively_search_psymtabs (partial_symtab *ps, objfile *objfile,
+ block_search_flags search_flags,
+ domain_search_flags domain,
+ const lookup_name_info &lookup_name,
+ expand_symtabs_symbol_matcher sym_matcher)
{
int keep_going = 1;
enum psymtab_search_status result = PST_SEARCHED_AND_NOT_FOUND;
@@ -894,14 +891,13 @@ recursively_search_psymtabs
bool
psymbol_functions::expand_symtabs_matching
(struct objfile *objfile,
- gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
+ expand_symtabs_file_matcher file_matcher,
const lookup_name_info *lookup_name,
- gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
- gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
+ expand_symtabs_symbol_matcher symbol_matcher,
+ expand_symtabs_expansion_listener expansion_notify,
block_search_flags search_flags,
domain_search_flags domain,
- gdb::function_view<expand_symtabs_lang_matcher_ftype>
- lang_matcher ATTRIBUTE_UNUSED)
+ expand_symtabs_lang_matcher lang_matcher ATTRIBUTE_UNUSED)
{
/* Clear the search flags. */
for (partial_symtab *ps : partial_symbols (objfile))
diff --git a/gdb/psymtab.h b/gdb/psymtab.h
index 411c95e..ad0b2ff 100644
--- a/gdb/psymtab.h
+++ b/gdb/psymtab.h
@@ -1,6 +1,6 @@
/* Public partial symbol table definitions.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -628,14 +628,13 @@ struct psymbol_functions : public quick_symbol_functions
bool expand_symtabs_matching
(struct objfile *objfile,
- gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
+ expand_symtabs_file_matcher file_matcher,
const lookup_name_info *lookup_name,
- gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
- gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
+ expand_symtabs_symbol_matcher symbol_matcher,
+ expand_symtabs_expansion_listener expansion_notify,
block_search_flags search_flags,
domain_search_flags kind,
- gdb::function_view<expand_symtabs_lang_matcher_ftype> lang_matcher)
- override;
+ expand_symtabs_lang_matcher lang_matcher) override;
struct compunit_symtab *find_pc_sect_compunit_symtab
(struct objfile *objfile, bound_minimal_symbol msymbol, CORE_ADDR pc,
@@ -647,8 +646,7 @@ struct psymbol_functions : public quick_symbol_functions
return nullptr;
}
- void map_symbol_filenames (struct objfile *objfile,
- gdb::function_view<symbol_filename_ftype> fun,
+ void map_symbol_filenames (objfile *objfile, symbol_filename_listener fun,
bool need_fullname) override;
/* Return a range adapter for the psymtabs. */
diff --git a/gdb/python/lib/gdb/FrameDecorator.py b/gdb/python/lib/gdb/FrameDecorator.py
index 5cdfbe1..fa6effa 100644
--- a/gdb/python/lib/gdb/FrameDecorator.py
+++ b/gdb/python/lib/gdb/FrameDecorator.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -174,7 +174,7 @@ class FrameDecorator(_FrameDecoratorBase):
sub-classed from FrameDecorator. If Decorator1 just overrides the
'function' method, then all of the other methods are carried out
by the super-class FrameDecorator. But Decorator2 may have
- overriden other methods, so FrameDecorator will look at the
+ overridden other methods, so FrameDecorator will look at the
'base' parameter and defer to that class's methods. And so on,
down the chain."""
diff --git a/gdb/python/lib/gdb/FrameIterator.py b/gdb/python/lib/gdb/FrameIterator.py
index 75176c3..54534fe 100644
--- a/gdb/python/lib/gdb/FrameIterator.py
+++ b/gdb/python/lib/gdb/FrameIterator.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/__init__.py b/gdb/python/lib/gdb/__init__.py
index 146a963..cedd897 100644
--- a/gdb/python/lib/gdb/__init__.py
+++ b/gdb/python/lib/gdb/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -19,17 +19,22 @@ import sys
import threading
import traceback
from contextlib import contextmanager
+from importlib import reload
-# Python 3 moved "reload"
-if sys.version_info >= (3, 4):
- from importlib import reload
-else:
- from imp import reload
-
-import _gdb
-
+# The star import imports _gdb names. When the names are used locally, they
+# trigger F405 warnings unless added to the explicit import list.
# Note that two indicators are needed here to silence flake8.
from _gdb import * # noqa: F401,F403
+from _gdb import (
+ STDERR,
+ STDOUT,
+ Command,
+ execute,
+ flush,
+ parameter,
+ selected_inferior,
+ write,
+)
# isort: split
@@ -60,14 +65,14 @@ class _GdbFile(object):
self.write(line)
def flush(self):
- _gdb.flush(stream=self.stream)
+ flush(stream=self.stream)
def write(self, s):
- _gdb.write(s, stream=self.stream)
+ write(s, stream=self.stream)
-sys.stdout = _GdbFile(_gdb.STDOUT)
-sys.stderr = _GdbFile(_gdb.STDERR)
+sys.stdout = _GdbFile(STDOUT)
+sys.stderr = _GdbFile(STDERR)
# Default prompt hook does nothing.
prompt_hook = None
@@ -189,7 +194,7 @@ def GdbSetPythonDirectory(dir):
def current_progspace():
"Return the current Progspace."
- return _gdb.selected_inferior().progspace
+ return selected_inferior().progspace
def objfiles():
@@ -226,14 +231,14 @@ def set_parameter(name, value):
value = "on"
else:
value = "off"
- _gdb.execute("set " + name + " " + str(value), to_string=True)
+ execute("set " + name + " " + str(value), to_string=True)
@contextmanager
def with_parameter(name, value):
"""Temporarily set the GDB parameter NAME to VALUE.
Note that this is a context manager."""
- old_value = _gdb.parameter(name)
+ old_value = parameter(name)
set_parameter(name, value)
try:
# Nothing that useful to return.
@@ -392,3 +397,121 @@ def _handle_missing_objfile(pspace, buildid, filename):
return _handle_missing_files(
pspace, "objfile", lambda h: h(pspace, buildid, filename)
)
+
+
+class ParameterPrefix:
+ # A wrapper around gdb.Command for creating set/show prefixes.
+ #
+ # When creating a gdb.Parameter sub-classes, it is sometimes necessary
+ # to first create a gdb.Command object in order to create the needed
+ # command prefix. However, for parameters, we actually need two
+ # prefixes, a 'set' prefix, and a 'show' prefix. With this helper
+ # class, a single instance of this class will create both prefixes at
+ # once.
+ #
+ # It is important that this class-level documentation not be a __doc__
+ # string. Users are expected to sub-class this ParameterPrefix class
+ # and add their own documentation. If they don't, then GDB will
+ # generate a suitable doc string. But, if this (parent) class has a
+ # __doc__ string of its own, then sub-classes will inherit that __doc__
+ # string, and GDB will not understand that it needs to generate one.
+
+ class _PrefixCommand(Command):
+ """A gdb.Command used to implement both the set and show prefixes.
+
+ This documentation string is not used as the prefix command
+ documentation as it is overridden in the __init__ method below."""
+
+ # This private method is connected to the 'invoke' attribute within
+ # this _PrefixCommand object if the containing ParameterPrefix
+ # object has an invoke_set or invoke_show method.
+ #
+ # This method records within self.__delegate which _PrefixCommand
+ # object is currently active, and then calls the correct invoke
+ # method on the delegat object (the ParameterPrefix sub-class
+ # object).
+ #
+ # Recording the currently active _PrefixCommand object is important;
+ # if from the invoke method the user calls dont_repeat, then this is
+ # forwarded to the currently active _PrefixCommand object.
+ def __invoke(self, args, from_tty):
+
+ # A helper class for use as part of a Python 'with' block.
+ # Records which gdb.Command object is currently running its
+ # invoke method.
+ class MarkActiveCallback:
+ # The CMD is a _PrefixCommand object, and the DELEGATE is
+ # the ParameterPrefix class, or sub-class object. At this
+ # point we simple record both of these within the
+ # MarkActiveCallback object.
+ def __init__(self, cmd, delegate):
+ self.__cmd = cmd
+ self.__delegate = delegate
+
+ # Record the currently active _PrefixCommand object within
+ # the outer ParameterPrefix sub-class object.
+ def __enter__(self):
+ self.__delegate.active_prefix = self.__cmd
+
+ # Once the invoke method has completed, then clear the
+ # _PrefixCommand object that was stored into the outer
+ # ParameterPrefix sub-class object.
+ def __exit__(self, exception_type, exception_value, traceback):
+ self.__delegate.active_prefix = None
+
+ # The self.__cb attribute is set when the _PrefixCommand object
+ # is created, and is either invoke_set or invoke_show within the
+ # ParameterPrefix sub-class object.
+ assert callable(self.__cb)
+
+ # Record the currently active _PrefixCommand object within the
+ # ParameterPrefix sub-class object, then call the relevant
+ # invoke method within the ParameterPrefix sub-class object.
+ with MarkActiveCallback(self, self.__delegate):
+ self.__cb(args, from_tty)
+
+ @staticmethod
+ def __find_callback(delegate, mode):
+ """The MODE is either 'set' or 'show'. Look for an invoke_MODE method
+ on DELEGATE, if a suitable method is found, then return it, otherwise,
+ return None.
+ """
+ cb = getattr(delegate, "invoke_" + mode, None)
+ if callable(cb):
+ return cb
+ return None
+
+ def __init__(self, mode, name, cmd_class, delegate, doc=None):
+ """Setup this gdb.Command. Mode is a string, either 'set' or 'show'.
+ NAME is the name for this prefix command, that is, the
+ words that appear after both 'set' and 'show' in the
+ command name. CMD_CLASS is the usual enum. And DELEGATE
+ is the gdb.ParameterPrefix object this prefix is part of.
+ """
+ assert mode == "set" or mode == "show"
+ if doc is None:
+ self.__doc__ = delegate.__doc__
+ else:
+ self.__doc__ = doc
+ self.__cb = self.__find_callback(delegate, mode)
+ self.__delegate = delegate
+ if self.__cb is not None:
+ self.invoke = self.__invoke
+ super().__init__(mode + " " + name, cmd_class, prefix=True)
+
+ def __init__(self, name, cmd_class, doc=None):
+ """Create a _PrefixCommand for both the set and show prefix commands.
+ NAME is the command name without either the leading 'set ' or
+ 'show ' strings, and CMD_CLASS is the usual enum value.
+ """
+ self.active_prefix = None
+ self._set_prefix_cmd = self._PrefixCommand("set", name, cmd_class, self, doc)
+ self._show_prefix_cmd = self._PrefixCommand("show", name, cmd_class, self, doc)
+
+ # When called from within an invoke method the self.active_prefix
+ # attribute should be set to a gdb.Command sub-class (a _PrefixCommand
+ # object, see above). Forward the dont_repeat call to this object to
+ # register the actual command as none repeating.
+ def dont_repeat(self):
+ if self.active_prefix is not None:
+ self.active_prefix.dont_repeat()
diff --git a/gdb/python/lib/gdb/command/__init__.py b/gdb/python/lib/gdb/command/__init__.py
index f1b13bd..3688152 100644
--- a/gdb/python/lib/gdb/command/__init__.py
+++ b/gdb/python/lib/gdb/command/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/command/explore.py b/gdb/python/lib/gdb/command/explore.py
index e359fa5..6107338 100644
--- a/gdb/python/lib/gdb/command/explore.py
+++ b/gdb/python/lib/gdb/command/explore.py
@@ -1,5 +1,5 @@
# GDB 'explore' command.
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/command/frame_filters.py b/gdb/python/lib/gdb/command/frame_filters.py
index 4e1b320..be7be9a 100644
--- a/gdb/python/lib/gdb/command/frame_filters.py
+++ b/gdb/python/lib/gdb/command/frame_filters.py
@@ -1,5 +1,5 @@
# Frame-filter commands.
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/command/missing_files.py b/gdb/python/lib/gdb/command/missing_files.py
index 463853b..09d9684 100644
--- a/gdb/python/lib/gdb/command/missing_files.py
+++ b/gdb/python/lib/gdb/command/missing_files.py
@@ -1,6 +1,6 @@
# Missing debug and objfile related commands.
#
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/command/pretty_printers.py b/gdb/python/lib/gdb/command/pretty_printers.py
index cb9b9f3..f62d329 100644
--- a/gdb/python/lib/gdb/command/pretty_printers.py
+++ b/gdb/python/lib/gdb/command/pretty_printers.py
@@ -1,5 +1,5 @@
# Pretty-printer commands.
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/command/prompt.py b/gdb/python/lib/gdb/command/prompt.py
index 2cfb25d..6574c83 100644
--- a/gdb/python/lib/gdb/command/prompt.py
+++ b/gdb/python/lib/gdb/command/prompt.py
@@ -1,5 +1,5 @@
# Extended prompt.
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/command/type_printers.py b/gdb/python/lib/gdb/command/type_printers.py
index a2be226..9fc654c 100644
--- a/gdb/python/lib/gdb/command/type_printers.py
+++ b/gdb/python/lib/gdb/command/type_printers.py
@@ -1,5 +1,5 @@
# Type printer commands.
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/command/unwinders.py b/gdb/python/lib/gdb/command/unwinders.py
index b863b33..ffedab8 100644
--- a/gdb/python/lib/gdb/command/unwinders.py
+++ b/gdb/python/lib/gdb/command/unwinders.py
@@ -1,5 +1,5 @@
# Unwinder commands.
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/command/xmethods.py b/gdb/python/lib/gdb/command/xmethods.py
index f786227..719c146 100644
--- a/gdb/python/lib/gdb/command/xmethods.py
+++ b/gdb/python/lib/gdb/command/xmethods.py
@@ -1,5 +1,5 @@
# Xmethod commands.
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -37,7 +37,7 @@ def parse_xm_command_args(arg):
Returns:
A 3-tuple: (<locus matching regular expression>,
<matcher matching regular expression>,
- <name matching regular experession>)
+ <name matching regular expression>)
"""
argv = gdb.string_to_argv(arg)
argc = len(argv)
diff --git a/gdb/python/lib/gdb/dap/__init__.py b/gdb/python/lib/gdb/dap/__init__.py
index 145aeb6..1c3cf8e 100644
--- a/gdb/python/lib/gdb/dap/__init__.py
+++ b/gdb/python/lib/gdb/dap/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -26,6 +26,7 @@ from . import startup
# server object. "F401" is the flake8 "imported but unused" code.
from . import breakpoint # noqa: F401
from . import bt # noqa: F401
+from . import completions # noqa: F401
from . import disassemble # noqa: F401
from . import evaluate # noqa: F401
from . import launch # noqa: F401
@@ -95,5 +96,4 @@ def pre_command_loop():
# These are handy for bug reports.
startup.exec_and_log("show version")
startup.exec_and_log("show configuration")
- global server
startup.start_dap(server.main_loop)
diff --git a/gdb/python/lib/gdb/dap/breakpoint.py b/gdb/python/lib/gdb/dap/breakpoint.py
index f0fe073..4d4ca18 100644
--- a/gdb/python/lib/gdb/dap/breakpoint.py
+++ b/gdb/python/lib/gdb/dap/breakpoint.py
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -51,7 +51,6 @@ def suppress_new_breakpoint_event():
@in_gdb_thread
def _bp_modified(event):
- global _suppress_bp
if not _suppress_bp:
send_event(
"breakpoint",
@@ -64,7 +63,6 @@ def _bp_modified(event):
@in_gdb_thread
def _bp_created(event):
- global _suppress_bp
if not _suppress_bp:
send_event(
"breakpoint",
@@ -77,7 +75,6 @@ def _bp_created(event):
@in_gdb_thread
def _bp_deleted(event):
- global _suppress_bp
if not _suppress_bp:
send_event(
"breakpoint",
@@ -151,7 +148,6 @@ def _remove_entries(table, *names):
# the breakpoint.
@in_gdb_thread
def _set_breakpoints_callback(kind, specs, creator):
- global breakpoint_map
# Try to reuse existing breakpoints if possible.
if kind in breakpoint_map:
saved_map = breakpoint_map[kind]
@@ -218,11 +214,11 @@ class _PrintBreakpoint(gdb.Breakpoint):
def __init__(self, logMessage, **args):
super().__init__(**args)
# Split the message up for easier processing.
- self.message = re.split("{(.*?)}", logMessage)
+ self._message = re.split("{(.*?)}", logMessage)
def stop(self):
output = ""
- for idx, item in enumerate(self.message):
+ for idx, item in enumerate(self._message):
if idx % 2 == 0:
# Even indices are plain text.
output += item
@@ -330,7 +326,7 @@ def _rewrite_fn_breakpoint(
}
-@request("setFunctionBreakpoints")
+@request("setFunctionBreakpoints", expect_stopped=False)
@capability("supportsFunctionBreakpoints")
def set_fn_breakpoint(*, breakpoints: Sequence, **args):
specs = [_rewrite_fn_breakpoint(**bp) for bp in breakpoints]
@@ -363,7 +359,7 @@ def _rewrite_insn_breakpoint(
}
-@request("setInstructionBreakpoints")
+@request("setInstructionBreakpoints", expect_stopped=False)
@capability("supportsInstructionBreakpoints")
def set_insn_breakpoints(
*, breakpoints: Sequence, offset: Optional[int] = None, **args
@@ -414,7 +410,7 @@ def _rewrite_exception_breakpoint(
}
-@request("setExceptionBreakpoints")
+@request("setExceptionBreakpoints", expect_stopped=False)
@capability("supportsExceptionFilterOptions")
@capability(
"exceptionBreakpointFilters",
diff --git a/gdb/python/lib/gdb/dap/bt.py b/gdb/python/lib/gdb/dap/bt.py
index 0fefa69..41c7d00 100644
--- a/gdb/python/lib/gdb/dap/bt.py
+++ b/gdb/python/lib/gdb/dap/bt.py
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/dap/completions.py b/gdb/python/lib/gdb/dap/completions.py
new file mode 100644
index 0000000..e5003ff
--- /dev/null
+++ b/gdb/python/lib/gdb/dap/completions.py
@@ -0,0 +1,63 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+from typing import Optional
+
+from .frames import select_frame
+from .server import capability, import_column, import_line, request
+from .startup import exec_mi_and_log
+
+
+@request("completions")
+@capability("supportsCompletionsRequest")
+@capability("completionTriggerCharacters", [" ", "."])
+def completions(
+ *,
+ frameId: Optional[int] = None,
+ text: str,
+ column: int,
+ line: Optional[int] = None,
+ **extra,
+):
+ if frameId is not None:
+ select_frame(frameId)
+
+ column = import_column(column)
+ if line is None:
+ line = 1
+ else:
+ line = import_line(line)
+ if text:
+ text = text.splitlines()[line - 1]
+ text = text[: column - 1]
+ else:
+ text = ""
+ mi_result = exec_mi_and_log("-complete", text)
+ result = []
+ completion = None
+ if "completion" in mi_result:
+ completion = mi_result["completion"]
+ result.append({"label": completion, "length": len(completion)})
+ # If `-complete' finds one match then `completion' and `matches'
+ # will contain the same one match.
+ if (
+ completion is not None
+ and len(mi_result["matches"]) == 1
+ and completion == mi_result["matches"][0]
+ ):
+ return {"targets": result}
+ for match in mi_result["matches"]:
+ result.append({"label": match, "length": len(match)})
+ return {"targets": result}
diff --git a/gdb/python/lib/gdb/dap/disassemble.py b/gdb/python/lib/gdb/dap/disassemble.py
index 5389803..42cad3e 100644
--- a/gdb/python/lib/gdb/dap/disassemble.py
+++ b/gdb/python/lib/gdb/dap/disassemble.py
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -26,30 +26,30 @@ class _BlockTracker:
# Map from PC to symbol names. A given PC is assumed to have
# just one label -- DAP wouldn't let us return multiple labels
# anyway.
- self.labels = {}
+ self._labels = {}
# Blocks that have already been handled.
- self.blocks = set()
+ self._blocks = set()
# Add a gdb.Block and its superblocks, ignoring the static and
# global block. BLOCK can also be None, which is ignored.
def add_block(self, block):
while block is not None:
- if block.is_static or block.is_global or block in self.blocks:
+ if block.is_static or block.is_global or block in self._blocks:
return
- self.blocks.add(block)
+ self._blocks.add(block)
if block.function is not None:
- self.labels[block.start] = block.function.name
+ self._labels[block.start] = block.function.name
for sym in block:
if sym.addr_class == gdb.SYMBOL_LOC_LABEL:
- self.labels[int(sym.value())] = sym.name
+ self._labels[int(sym.value())] = sym.name
block = block.superblock
# Add PC to this tracker. Update RESULT as appropriate with
# information about the source and any label.
def add_pc(self, pc, result):
self.add_block(gdb.block_for_pc(pc))
- if pc in self.labels:
- result["symbol"] = self.labels[pc]
+ if pc in self._labels:
+ result["symbol"] = self._labels[pc]
sal = gdb.find_pc_line(pc)
if sal.symtab is not None:
if sal.line != 0:
diff --git a/gdb/python/lib/gdb/dap/evaluate.py b/gdb/python/lib/gdb/dap/evaluate.py
index 34843f4..fcbcc99 100644
--- a/gdb/python/lib/gdb/dap/evaluate.py
+++ b/gdb/python/lib/gdb/dap/evaluate.py
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -69,7 +69,7 @@ def _repl(command, frame_id):
}
-@request("evaluate")
+@request("evaluate", defer_events=False)
@capability("supportsEvaluateForHovers")
@capability("supportsValueFormattingOptions")
def eval_request(
@@ -110,7 +110,7 @@ def variables(
@capability("supportsSetExpression")
-@request("setExpression")
+@request("setExpression", defer_events=False)
def set_expression(
*, expression: str, value: str, frameId: Optional[int] = None, format=None, **args
):
@@ -126,7 +126,7 @@ def set_expression(
@capability("supportsSetVariable")
-@request("setVariable")
+@request("setVariable", defer_events=False)
def set_variable(
*, variablesReference: int, name: str, value: str, format=None, **args
):
diff --git a/gdb/python/lib/gdb/dap/events.py b/gdb/python/lib/gdb/dap/events.py
index 2e6fe98..e8f2655 100644
--- a/gdb/python/lib/gdb/dap/events.py
+++ b/gdb/python/lib/gdb/dap/events.py
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -17,12 +17,12 @@ import gdb
from .modules import is_module, make_module
from .scopes import set_finish_value
-from .server import send_event, send_event_maybe_later
+from .server import send_event
from .startup import exec_and_log, in_gdb_thread, log
# True when the inferior is thought to be running, False otherwise.
# This may be accessed from any thread, which can be racy. However,
-# this unimportant because this global is only used for the
+# this is unimportant because this global is only used for the
# 'notStopped' response, which itself is inherently racy.
inferior_running = False
@@ -238,10 +238,9 @@ def _on_stop(event):
):
obj["reason"] = "pause"
else:
- global stop_reason_map
obj["reason"] = stop_reason_map[event.details["reason"]]
_expected_pause = False
- send_event_maybe_later("stopped", obj)
+ send_event("stopped", obj)
# This keeps a bit of state between the start of an inferior call and
diff --git a/gdb/python/lib/gdb/dap/frames.py b/gdb/python/lib/gdb/dap/frames.py
index f4e6565..4dacb87 100644
--- a/gdb/python/lib/gdb/dap/frames.py
+++ b/gdb/python/lib/gdb/dap/frames.py
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -53,12 +53,11 @@ gdb.events.cont.connect(_clear_frame_ids)
@in_gdb_thread
def frame_for_id(id):
"""Given a frame identifier ID, return the corresponding frame."""
- global thread_ids
if id in thread_ids:
thread_id = thread_ids[id]
if thread_id != gdb.selected_thread().global_num:
set_thread(thread_id)
- global _all_frames
+
return _all_frames[id]
@@ -75,16 +74,16 @@ def select_frame(id):
# what is needed for the current callers.
class _MemoizingIterator:
def __init__(self, iterator):
- self.iterator = iterator
- self.seen = []
+ self._iterator = iterator
+ self._seen = []
def __iter__(self):
# First the memoized items.
- for item in self.seen:
+ for item in self._seen:
yield item
# Now memoize new items.
- for item in self.iterator:
- self.seen.append(item)
+ for item in self._iterator:
+ self._seen.append(item)
yield item
@@ -103,10 +102,8 @@ def _frame_id_generator():
# Helper function to assign an ID to a frame.
def get_id(frame):
- global _all_frames
num = len(_all_frames)
_all_frames.append(frame)
- global thread_ids
thread_ids[num] = gdb.selected_thread().global_num
return num
@@ -128,7 +125,6 @@ def _frame_id_generator():
@in_gdb_thread
def _get_frame_iterator():
thread_id = gdb.selected_thread().global_num
- global _iter_map
if thread_id not in _iter_map:
_iter_map[thread_id] = _MemoizingIterator(_frame_id_generator())
return _iter_map[thread_id]
diff --git a/gdb/python/lib/gdb/dap/globalvars.py b/gdb/python/lib/gdb/dap/globalvars.py
index 104b242..9d64d28 100644
--- a/gdb/python/lib/gdb/dap/globalvars.py
+++ b/gdb/python/lib/gdb/dap/globalvars.py
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -37,8 +37,8 @@ gdb.events.cont.connect(clear)
class _Globals(BaseReference):
def __init__(self, filename, var_list):
super().__init__("Globals")
- self.filename = filename
- self.var_list = var_list
+ self._filename = filename
+ self._var_list = var_list
def to_object(self):
result = super().to_object()
@@ -46,8 +46,8 @@ class _Globals(BaseReference):
# How would we know?
result["expensive"] = False
result["namedVariables"] = self.child_count()
- if self.filename is not None:
- result["source"] = make_source(self.filename)
+ if self._filename is not None:
+ result["source"] = make_source(self._filename)
return result
def has_children(self):
@@ -56,11 +56,11 @@ class _Globals(BaseReference):
return True
def child_count(self):
- return len(self.var_list)
+ return len(self._var_list)
@in_gdb_thread
def fetch_one_child(self, idx):
- sym = self.var_list[idx]
+ sym = self._var_list[idx]
return (sym.name, sym.value())
@@ -78,7 +78,6 @@ def get_global_scope(frame):
except RuntimeError:
return None
- global _id_to_scope
block = block.static_block
if block in _id_to_scope:
return _id_to_scope[block]
diff --git a/gdb/python/lib/gdb/dap/io.py b/gdb/python/lib/gdb/dap/io.py
index 03031a7..45890da 100644
--- a/gdb/python/lib/gdb/dap/io.py
+++ b/gdb/python/lib/gdb/dap/io.py
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/dap/launch.py b/gdb/python/lib/gdb/dap/launch.py
index fc1890c..8ac4c77 100644
--- a/gdb/python/lib/gdb/dap/launch.py
+++ b/gdb/python/lib/gdb/dap/launch.py
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -164,7 +164,6 @@ def attach(
@request("configurationDone", on_dap_thread=True)
def config_done(**args):
# Handle the launch or attach.
- global _launch_or_attach_promise
if _launch_or_attach_promise is None:
raise DAPException("launch or attach not specified")
# Resolve the launch or attach, but only after the
diff --git a/gdb/python/lib/gdb/dap/locations.py b/gdb/python/lib/gdb/dap/locations.py
index 1ef5a34..fffc038 100644
--- a/gdb/python/lib/gdb/dap/locations.py
+++ b/gdb/python/lib/gdb/dap/locations.py
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/dap/memory.py b/gdb/python/lib/gdb/dap/memory.py
index 4aa4996..d0f8825 100644
--- a/gdb/python/lib/gdb/dap/memory.py
+++ b/gdb/python/lib/gdb/dap/memory.py
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/dap/modules.py b/gdb/python/lib/gdb/dap/modules.py
index 69e5a40..b06f771 100644
--- a/gdb/python/lib/gdb/dap/modules.py
+++ b/gdb/python/lib/gdb/dap/modules.py
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/dap/next.py b/gdb/python/lib/gdb/dap/next.py
index 7e06b1b..898fff1 100644
--- a/gdb/python/lib/gdb/dap/next.py
+++ b/gdb/python/lib/gdb/dap/next.py
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,7 +16,7 @@
import gdb
from .events import exec_and_expect_stop
-from .server import capability, request, send_gdb, send_gdb_with_response
+from .server import capability, request
from .startup import in_gdb_thread
from .state import set_thread
@@ -73,19 +73,14 @@ def step_in(
exec_and_expect_stop(cmd)
-@request("stepOut", defer_stop_events=True)
+@request("stepOut")
def step_out(*, threadId: int, singleThread: bool = False, **args):
_handle_thread_step(threadId, singleThread, True)
exec_and_expect_stop("finish &", propagate_exception=True)
-# This is a server-side request because it is funny: it wants to
-# 'continue' but also return a result, which precludes using
-# response=False. Using 'continue &' would mostly work ok, but this
-# yields races when a stop occurs before the response is sent back to
-# the client.
-@request("continue", on_dap_thread=True)
+@request("continue")
def continue_request(*, threadId: int, singleThread: bool = False, **args):
- locked = send_gdb_with_response(lambda: _handle_thread_step(threadId, singleThread))
- send_gdb(lambda: exec_and_expect_stop("continue"))
+ locked = _handle_thread_step(threadId, singleThread)
+ exec_and_expect_stop("continue &")
return {"allThreadsContinued": not locked}
diff --git a/gdb/python/lib/gdb/dap/pause.py b/gdb/python/lib/gdb/dap/pause.py
index d874a60..c254e45 100644
--- a/gdb/python/lib/gdb/dap/pause.py
+++ b/gdb/python/lib/gdb/dap/pause.py
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/dap/scopes.py b/gdb/python/lib/gdb/dap/scopes.py
index 221ae35..7ce3a7f 100644
--- a/gdb/python/lib/gdb/dap/scopes.py
+++ b/gdb/python/lib/gdb/dap/scopes.py
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ from .sources import make_source
from .startup import in_gdb_thread
from .varref import BaseReference
-# Map DAP frame IDs to scopes. This ensures that scopes are re-used.
+# Map DAP frame IDs to scopes. This ensures that scopes are reused.
frame_to_scope = {}
@@ -78,19 +78,19 @@ def symbol_value(sym, frame):
class _ScopeReference(BaseReference):
def __init__(self, name, hint, frameId: int, var_list):
super().__init__(name)
- self.hint = hint
- self.frameId = frameId
+ self._hint = hint
+ self._frameId = frameId
# VAR_LIST might be any kind of iterator, but it's convenient
# here if it is just a collection.
- self.var_list = tuple(var_list)
+ self._var_list = tuple(var_list)
def to_object(self):
result = super().to_object()
- result["presentationHint"] = self.hint
+ result["presentationHint"] = self._hint
# How would we know?
result["expensive"] = False
result["namedVariables"] = self.child_count()
- frame = frame_for_id(self.frameId)
+ frame = frame_for_id(self._frameId)
if frame.line() is not None:
result["line"] = export_line(frame.line())
filename = frame.filename()
@@ -102,11 +102,11 @@ class _ScopeReference(BaseReference):
return True
def child_count(self):
- return len(self.var_list)
+ return len(self._var_list)
@in_gdb_thread
def fetch_one_child(self, idx):
- return symbol_value(self.var_list[idx], frame_for_id(self.frameId))
+ return symbol_value(self._var_list[idx], frame_for_id(self._frameId))
# A _ScopeReference that wraps the 'finish' value. Note that this
@@ -120,7 +120,6 @@ class _FinishScopeReference(_ScopeReference):
def fetch_one_child(self, idx):
assert idx == 0
- global _last_return_value
return ("(return)", _last_return_value)
@@ -136,17 +135,15 @@ class _RegisterReference(_ScopeReference):
@in_gdb_thread
def fetch_one_child(self, idx):
return (
- self.var_list[idx].name,
- frame_for_id(self.frameId)
+ self._var_list[idx].name,
+ frame_for_id(self._frameId)
.inferior_frame()
- .read_register(self.var_list[idx]),
+ .read_register(self._var_list[idx]),
)
@request("scopes")
def scopes(*, frameId: int, **extra):
- global _last_return_value
- global frame_to_scope
if frameId in frame_to_scope:
scopes = frame_to_scope[frameId]
else:
diff --git a/gdb/python/lib/gdb/dap/server.py b/gdb/python/lib/gdb/dap/server.py
index 6f3af73..7dab582 100644
--- a/gdb/python/lib/gdb/dap/server.py
+++ b/gdb/python/lib/gdb/dap/server.py
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -49,6 +49,7 @@ _server = None
# This is set by the initialize request and is used when rewriting
# line numbers.
_lines_start_at_1 = False
+_columns_start_at_1 = False
class DeferredRequest:
@@ -73,6 +74,13 @@ class DeferredRequest:
self._result = result
@in_dap_thread
+ def defer_events(self):
+ """Return True if events should be deferred during execution.
+
+ This may be overridden by subclasses."""
+ return True
+
+ @in_dap_thread
def invoke(self):
"""Implement the deferred request.
@@ -94,7 +102,10 @@ class DeferredRequest:
"""
with _server.canceller.current_request(self._req):
+ if self.defer_events():
+ _server.set_defer_events()
_server.invoke_request(self._req, self._result, self.invoke)
+ _server.emit_pending_events()
# A subclass of Exception that is used solely for reporting that a
@@ -115,10 +126,10 @@ class CancellationHandler:
# The request currently being handled, or None.
self.in_flight_dap_thread = None
self.in_flight_gdb_thread = None
- self.reqs = []
+ self._reqs = []
# A set holding the request IDs of all deferred requests that
# are still unresolved.
- self.deferred_ids = set()
+ self._deferred_ids = set()
@contextmanager
def current_request(self, req):
@@ -138,7 +149,7 @@ class CancellationHandler:
def defer_request(self, req):
"""Indicate that the request REQ has been deferred."""
with self.lock:
- self.deferred_ids.add(req)
+ self._deferred_ids.add(req)
def request_finished(self, req):
"""Indicate that the request REQ is finished.
@@ -150,7 +161,7 @@ class CancellationHandler:
with self.lock:
# Use discard here, not remove, because this is called
# regardless of whether REQ was deferred.
- self.deferred_ids.discard(req)
+ self._deferred_ids.discard(req)
def check_cancel(self, req):
"""Check whether request REQ is cancelled.
@@ -163,15 +174,15 @@ class CancellationHandler:
deferred = []
try:
# If the request is cancelled, don't execute the region.
- while len(self.reqs) > 0 and self.reqs[0] <= req:
+ while len(self._reqs) > 0 and self._reqs[0] <= req:
# In most cases, if we see a cancellation request
# on the heap that is before REQ, we can just
# ignore it -- we missed our chance to cancel that
# request.
- next_id = heapq.heappop(self.reqs)
+ next_id = heapq.heappop(self._reqs)
if next_id == req:
raise KeyboardInterrupt()
- elif next_id in self.deferred_ids:
+ elif next_id in self._deferred_ids:
# We could be in a situation where we're
# processing request 23, but request 18 is
# still deferred. In this case, popping
@@ -180,7 +191,7 @@ class CancellationHandler:
deferred.append(next_id)
finally:
for x in deferred:
- heapq.heappush(self.reqs, x)
+ heapq.heappush(self._reqs, x)
def cancel(self, req):
"""Call to cancel a request.
@@ -198,7 +209,7 @@ class CancellationHandler:
# the weird property that a request can be cancelled
# before it is even sent. It didn't seem worthwhile
# to try to check for this.
- heapq.heappush(self.reqs, req)
+ heapq.heappush(self._reqs, req)
@contextmanager
def interruptable_region(self, req):
@@ -225,20 +236,20 @@ class Server:
"""The DAP server class."""
def __init__(self, in_stream, out_stream, child_stream):
- self.in_stream = in_stream
- self.out_stream = out_stream
- self.child_stream = child_stream
- self.delayed_fns_lock = threading.Lock()
- self.defer_stop_events = False
- self.delayed_fns = []
+ self._in_stream = in_stream
+ self._out_stream = out_stream
+ self._child_stream = child_stream
+ self._delayed_fns_lock = threading.Lock()
+ self._defer_events = False
+ self._delayed_fns = []
# This queue accepts JSON objects that are then sent to the
# DAP client. Writing is done in a separate thread to avoid
# blocking the read loop.
- self.write_queue = DAPQueue()
+ self._write_queue = DAPQueue()
# Reading is also done in a separate thread, and a queue of
# requests is kept.
- self.read_queue = DAPQueue()
- self.done = False
+ self._read_queue = DAPQueue()
+ self._done = False
self.canceller = CancellationHandler()
global _server
_server = self
@@ -306,7 +317,6 @@ class Server:
args = {}
def fn():
- global _commands
return _commands[params["command"]](**args)
self.invoke_request(req, result, fn)
@@ -315,8 +325,8 @@ class Server:
# is run in its own thread.
def _read_inferior_output(self):
while True:
- line = self.child_stream.readline()
- self.send_event(
+ line = self._child_stream.readline()
+ self.send_event_maybe_later(
"output",
{
"category": "stdout",
@@ -327,7 +337,7 @@ class Server:
# Send OBJ to the client, logging first if needed.
def _send_json(self, obj):
log("WROTE: <<<" + json.dumps(obj) + ">>>")
- self.write_queue.put(obj)
+ self._write_queue.put(obj)
# This is run in a separate thread and simply reads requests from
# the client and puts them into a queue. A separate thread is
@@ -335,7 +345,7 @@ class Server:
# will normally block, waiting for each request to complete.
def _reader_thread(self):
while True:
- cmd = read_json(self.in_stream)
+ cmd = read_json(self._in_stream)
if cmd is None:
break
log("READ: <<<" + json.dumps(cmd) + ">>>")
@@ -351,9 +361,20 @@ class Server:
and "requestId" in cmd["arguments"]
):
self.canceller.cancel(cmd["arguments"]["requestId"])
- self.read_queue.put(cmd)
+ self._read_queue.put(cmd)
# When we hit EOF, signal it with None.
- self.read_queue.put(None)
+ self._read_queue.put(None)
+
+ @in_dap_thread
+ def emit_pending_events(self):
+ """Emit any pending events."""
+ fns = None
+ with self._delayed_fns_lock:
+ fns = self._delayed_fns
+ self._delayed_fns = []
+ self._defer_events = False
+ for fn in fns:
+ fn()
@in_dap_thread
def main_loop(self):
@@ -361,38 +382,32 @@ class Server:
# Before looping, start the thread that writes JSON to the
# client, and the thread that reads output from the inferior.
start_thread("output reader", self._read_inferior_output)
- json_writer = start_json_writer(self.out_stream, self.write_queue)
+ json_writer = start_json_writer(self._out_stream, self._write_queue)
start_thread("JSON reader", self._reader_thread)
- while not self.done:
- cmd = self.read_queue.get()
+ while not self._done:
+ cmd = self._read_queue.get()
# A None value here means the reader hit EOF.
if cmd is None:
break
req = cmd["seq"]
with self.canceller.current_request(req):
self._handle_command(cmd)
- fns = None
- with self.delayed_fns_lock:
- fns = self.delayed_fns
- self.delayed_fns = []
- self.defer_stop_events = False
- for fn in fns:
- fn()
+ self.emit_pending_events()
# Got the terminate request. This is handled by the
# JSON-writing thread, so that we can ensure that all
# responses are flushed to the client before exiting.
- self.write_queue.put(None)
+ self._write_queue.put(None)
json_writer.join()
send_gdb("quit")
@in_dap_thread
- def send_event_later(self, event, body=None):
- """Send a DAP event back to the client, but only after the
- current request has completed."""
- with self.delayed_fns_lock:
- self.delayed_fns.append(lambda: self.send_event(event, body))
+ def set_defer_events(self):
+ """Defer any events until the current request has completed."""
+ with self._delayed_fns_lock:
+ self._defer_events = True
- @in_gdb_thread
+ # Note that this does not need to be run in any particular thread,
+ # because it uses locks for thread-safety.
def send_event_maybe_later(self, event, body=None):
"""Send a DAP event back to the client, but if a request is in-flight
within the dap thread and that request is configured to delay the event,
@@ -400,22 +415,22 @@ class Server:
the client."""
with self.canceller.lock:
if self.canceller.in_flight_dap_thread:
- with self.delayed_fns_lock:
- if self.defer_stop_events:
- self.delayed_fns.append(lambda: self.send_event(event, body))
+ with self._delayed_fns_lock:
+ if self._defer_events:
+ self._delayed_fns.append(lambda: self._send_event(event, body))
return
- self.send_event(event, body)
+ self._send_event(event, body)
@in_dap_thread
def call_function_later(self, fn):
"""Call FN later -- after the current request's response has been sent."""
- with self.delayed_fns_lock:
- self.delayed_fns.append(fn)
+ with self._delayed_fns_lock:
+ self._delayed_fns.append(fn)
# Note that this does not need to be run in any particular thread,
# because it just creates an object and writes it to a thread-safe
# queue.
- def send_event(self, event, body=None):
+ def _send_event(self, event, body=None):
"""Send an event to the DAP client.
EVENT is the name of the event, a string.
BODY is the body of the event, an arbitrary object."""
@@ -432,29 +447,18 @@ class Server:
# Just set a flag. This operation is complicated because we
# want to write the result of the request before exiting. See
# main_loop.
- self.done = True
+ self._done = True
def send_event(event, body=None):
"""Send an event to the DAP client.
EVENT is the name of the event, a string.
BODY is the body of the event, an arbitrary object."""
- global _server
- _server.send_event(event, body)
-
-
-def send_event_maybe_later(event, body=None):
- """Send a DAP event back to the client, but if a request is in-flight
- within the dap thread and that request is configured to delay the event,
- wait until the response has been sent until the event is sent back to
- the client."""
- global _server
_server.send_event_maybe_later(event, body)
def call_function_later(fn):
"""Call FN later -- after the current request's response has been sent."""
- global _server
_server.call_function_later(fn)
@@ -479,7 +483,7 @@ def request(
response: bool = True,
on_dap_thread: bool = False,
expect_stopped: bool = True,
- defer_stop_events: bool = False
+ defer_events: bool = True
):
"""A decorator for DAP requests.
@@ -501,9 +505,9 @@ def request(
inferior is running. When EXPECT_STOPPED is False, the request
will proceed regardless of the inferior's state.
- If DEFER_STOP_EVENTS is True, then make sure any stop events sent
- during the request processing are not sent to the client until the
- response has been sent.
+ If DEFER_EVENTS is True, then make sure any events sent during the
+ request processing are not sent to the client until the response
+ has been sent.
"""
# Validate the parameters.
@@ -526,27 +530,33 @@ def request(
# Verify that the function is run on the correct thread.
if on_dap_thread:
- cmd = in_dap_thread(func)
+ check_cmd = in_dap_thread(func)
else:
func = in_gdb_thread(func)
if response:
- if defer_stop_events:
- global _server
- if _server is not None:
- with _server.delayed_events_lock:
- _server.defer_stop_events = True
def sync_call(**args):
return send_gdb_with_response(lambda: func(**args))
- cmd = sync_call
+ check_cmd = sync_call
else:
def non_sync_call(**args):
return send_gdb(lambda: func(**args))
- cmd = non_sync_call
+ check_cmd = non_sync_call
+
+ if defer_events:
+
+ def deferring(**args):
+ _server.set_defer_events()
+ return check_cmd(**args)
+
+ cmd = deferring
+
+ else:
+ cmd = check_cmd
# If needed, check that the inferior is not running. This
# wrapping is done last, so the check is done first, before
@@ -554,7 +564,6 @@ def request(
if expect_stopped:
cmd = _check_not_running(cmd)
- global _commands
assert name not in _commands
_commands[name] = cmd
return cmd
@@ -567,7 +576,6 @@ def capability(name, value=True):
the DAP capability NAME."""
def wrap(func):
- global _capabilities
assert name not in _capabilities
_capabilities[name] = value
return func
@@ -580,7 +588,6 @@ def client_bool_capability(name, default=False):
If the capability was not specified, or did not have boolean type,
DEFAULT is returned. DEFAULT defaults to False."""
- global _server
if name in _server.config and isinstance(_server.config[name], bool):
return _server.config[name]
return default
@@ -588,11 +595,12 @@ def client_bool_capability(name, default=False):
@request("initialize", on_dap_thread=True)
def initialize(**args):
- global _server, _capabilities
_server.config = args
- _server.send_event_later("initialized")
+ _server.send_event_maybe_later("initialized")
global _lines_start_at_1
_lines_start_at_1 = client_bool_capability("linesStartAt1", True)
+ global _columns_start_at_1
+ _columns_start_at_1 = client_bool_capability("columnsStartAt1", True)
return _capabilities.copy()
@@ -629,19 +637,19 @@ class Invoker(object):
"""A simple class that can invoke a gdb command."""
def __init__(self, cmd):
- self.cmd = cmd
+ self._cmd = cmd
# This is invoked in the gdb thread to run the command.
@in_gdb_thread
def __call__(self):
- exec_and_log(self.cmd)
+ exec_and_log(self._cmd)
class Cancellable(object):
def __init__(self, fn, result_q=None):
- self.fn = fn
- self.result_q = result_q
+ self._fn = fn
+ self._result_q = result_q
with _server.canceller.lock:
self.req = _server.canceller.in_flight_dap_thread
@@ -650,13 +658,13 @@ class Cancellable(object):
def __call__(self):
try:
with _server.canceller.interruptable_region(self.req):
- val = self.fn()
- if self.result_q is not None:
- self.result_q.put(val)
+ val = self._fn()
+ if self._result_q is not None:
+ self._result_q.put(val)
except (Exception, KeyboardInterrupt) as e:
- if self.result_q is not None:
+ if self._result_q is not None:
# Pass result or exception to caller.
- self.result_q.put(e)
+ self._result_q.put(e)
elif isinstance(e, KeyboardInterrupt):
# Fn was cancelled.
pass
@@ -698,11 +706,10 @@ def send_gdb_with_response(fn):
return val
-def export_line(line):
+def export_line(line: int) -> int:
"""Rewrite LINE according to client capability.
This applies the linesStartAt1 capability as needed,
when sending a line number from gdb to the client."""
- global _lines_start_at_1
if not _lines_start_at_1:
# In gdb, lines start at 1, so we only need to change this if
# the client starts at 0.
@@ -710,13 +717,26 @@ def export_line(line):
return line
-def import_line(line):
+def import_line(line: int) -> int:
"""Rewrite LINE according to client capability.
This applies the linesStartAt1 capability as needed,
when the client sends a line number to gdb."""
- global _lines_start_at_1
if not _lines_start_at_1:
# In gdb, lines start at 1, so we only need to change this if
# the client starts at 0.
line = line + 1
return line
+
+
+def export_column(column: int) -> int:
+ """Rewrite COLUMN according to client capability.
+ This applies the columnsStartAt1 capability as needed,
+ when sending a column number from gdb to the client."""
+ return column if _columns_start_at_1 else column - 1
+
+
+def import_column(column: int) -> int:
+ """Rewrite COLUMN according to client capability.
+ This applies the columnsStartAt1 capability as needed,
+ when the client sends a column number to gdb."""
+ return column if _columns_start_at_1 else column + 1
diff --git a/gdb/python/lib/gdb/dap/sources.py b/gdb/python/lib/gdb/dap/sources.py
index a9f4ea6..efcd799 100644
--- a/gdb/python/lib/gdb/dap/sources.py
+++ b/gdb/python/lib/gdb/dap/sources.py
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -37,7 +37,6 @@ def make_source(fullname, filename=None):
FILENAME is the base name; if None (the default), then it is
computed from FULLNAME.
"""
- global _source_map
if fullname in _source_map:
result = _source_map[fullname]
else:
@@ -53,7 +52,6 @@ def make_source(fullname, filename=None):
global _next_source
result["sourceReference"] = _next_source
- global _id_map
_id_map[_next_source] = result
_next_source += 1
@@ -66,12 +64,11 @@ def decode_source(source):
"""Decode a Source object.
Finds and returns the filename of a given Source object."""
- if "path" in source:
- return source["path"]
- if "sourceReference" not in source:
+ if "sourceReference" not in source or source["sourceReference"] <= 0:
+ if "path" in source:
+ return source["path"]
raise DAPException("either 'path' or 'sourceReference' must appear in Source")
ref = source["sourceReference"]
- global _id_map
if ref not in _id_map:
raise DAPException("no sourceReference " + str(ref))
return _id_map[ref]["path"]
diff --git a/gdb/python/lib/gdb/dap/startup.py b/gdb/python/lib/gdb/dap/startup.py
index a3f048b..ab3e8fd 100644
--- a/gdb/python/lib/gdb/dap/startup.py
+++ b/gdb/python/lib/gdb/dap/startup.py
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/dap/state.py b/gdb/python/lib/gdb/dap/state.py
index 57ae355..5fdfbb2 100644
--- a/gdb/python/lib/gdb/dap/state.py
+++ b/gdb/python/lib/gdb/dap/state.py
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/dap/threads.py b/gdb/python/lib/gdb/dap/threads.py
index e65495b..c271961 100644
--- a/gdb/python/lib/gdb/dap/threads.py
+++ b/gdb/python/lib/gdb/dap/threads.py
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/dap/typecheck.py b/gdb/python/lib/gdb/dap/typecheck.py
index 55896cc..1496b67 100644
--- a/gdb/python/lib/gdb/dap/typecheck.py
+++ b/gdb/python/lib/gdb/dap/typecheck.py
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/dap/varref.py b/gdb/python/lib/gdb/dap/varref.py
index 0dd9879..8a13c51 100644
--- a/gdb/python/lib/gdb/dap/varref.py
+++ b/gdb/python/lib/gdb/dap/varref.py
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -60,8 +60,6 @@ class BaseReference(ABC):
This class is just a base class, some methods must be implemented in
subclasses.
-
- The 'ref' field can be used as the variablesReference in the protocol.
"""
@in_gdb_thread
@@ -71,10 +69,9 @@ class BaseReference(ABC):
NAME is a string or None. None means this does not have a
name, e.g., the result of expression evaluation."""
- global all_variables
all_variables.append(self)
- self.ref = len(all_variables)
- self.name = name
+ self._ref = len(all_variables)
+ self._name = name
self.reset_children()
@in_gdb_thread
@@ -83,9 +80,9 @@ class BaseReference(ABC):
The resulting object is a starting point that can be filled in
further. See the Scope or Variable types in the spec"""
- result = {"variablesReference": self.ref if self.has_children() else 0}
- if self.name is not None:
- result["name"] = str(self.name)
+ result = {"variablesReference": self._ref if self.has_children() else 0}
+ if self._name is not None:
+ result["name"] = str(self._name)
return result
@abstractmethod
@@ -97,13 +94,13 @@ class BaseReference(ABC):
"""Reset any cached information about the children of this object."""
# A list of all the children. Each child is a BaseReference
# of some kind.
- self.children = None
+ self._children = None
# Map from the name of a child to a BaseReference.
- self.by_name = {}
+ self._by_name = {}
# Keep track of how many duplicates there are of a given name,
# so that unique names can be generated. Map from base name
# to a count.
- self.name_counts = defaultdict(lambda: 1)
+ self._name_counts = defaultdict(lambda: 1)
@abstractmethod
def fetch_one_child(self, index):
@@ -128,13 +125,13 @@ class BaseReference(ABC):
# and
# https://github.com/microsoft/debug-adapter-protocol/issues/149
def _compute_name(self, name):
- if name in self.by_name:
- self.name_counts[name] += 1
+ if name in self._by_name:
+ self._name_counts[name] += 1
# In theory there's no safe way to compute a name, because
# a pretty-printer might already be generating names of
# that form. In practice I think we should not worry too
# much.
- name = name + " #" + str(self.name_counts[name])
+ name = name + " #" + str(self._name_counts[name])
return name
@in_gdb_thread
@@ -146,16 +143,16 @@ class BaseReference(ABC):
Returns an iterable of some kind."""
if count == 0:
count = self.child_count()
- if self.children is None:
- self.children = [None] * self.child_count()
+ if self._children is None:
+ self._children = [None] * self.child_count()
for idx in range(start, start + count):
- if self.children[idx] is None:
+ if self._children[idx] is None:
(name, value) = self.fetch_one_child(idx)
name = self._compute_name(name)
var = VariableReference(name, value)
- self.children[idx] = var
- self.by_name[name] = var
- yield self.children[idx]
+ self._children[idx] = var
+ self._by_name[name] = var
+ yield self._children[idx]
@in_gdb_thread
def find_child_by_name(self, name):
@@ -165,8 +162,8 @@ class BaseReference(ABC):
# A lookup by name can only be done using names previously
# provided to the client, so we can simply rely on the by-name
# map here.
- if name in self.by_name:
- return self.by_name[name]
+ if name in self._by_name:
+ return self._by_name[name]
raise DAPException("no variable named '" + name + "'")
@@ -181,15 +178,15 @@ class VariableReference(BaseReference):
RESULT_NAME can be used to change how the simple string result
is emitted in the result dictionary."""
super().__init__(name)
- self.result_name = result_name
- self.value = value
+ self._result_name = result_name
+ self._value = value
self._update_value()
# Internal method to update local data when the value changes.
def _update_value(self):
self.reset_children()
- self.printer = gdb.printing.make_visualizer(self.value)
- self.child_cache = None
+ self._printer = gdb.printing.make_visualizer(self._value)
+ self._child_cache = None
if self.has_children():
self.count = -1
else:
@@ -197,32 +194,32 @@ class VariableReference(BaseReference):
def assign(self, value):
"""Assign VALUE to this object and update."""
- self.value.assign(value)
+ self._value.assign(value)
self._update_value()
def has_children(self):
- return hasattr(self.printer, "children")
+ return hasattr(self._printer, "children")
def cache_children(self):
- if self.child_cache is None:
+ if self._child_cache is None:
# This discards all laziness. This could be improved
# slightly by lazily evaluating children, but because this
# code also generally needs to know the number of
# children, it probably wouldn't help much. Note that
# this is only needed with legacy (non-ValuePrinter)
# printers.
- self.child_cache = list(self.printer.children())
- return self.child_cache
+ self._child_cache = list(self._printer.children())
+ return self._child_cache
def child_count(self):
if self.count is None:
return None
if self.count == -1:
num_children = None
- if isinstance(self.printer, gdb.ValuePrinter) and hasattr(
- self.printer, "num_children"
+ if isinstance(self._printer, gdb.ValuePrinter) and hasattr(
+ self._printer, "num_children"
):
- num_children = self.printer.num_children()
+ num_children = self._printer.num_children()
if num_children is None:
num_children = len(self.cache_children())
self.count = num_children
@@ -230,12 +227,12 @@ class VariableReference(BaseReference):
def to_object(self):
result = super().to_object()
- result[self.result_name] = str(self.printer.to_string())
+ result[self._result_name] = str(self._printer.to_string())
num_children = self.child_count()
if num_children is not None:
if (
- hasattr(self.printer, "display_hint")
- and self.printer.display_hint() == "array"
+ hasattr(self._printer, "display_hint")
+ and self._printer.display_hint() == "array"
):
result["indexedVariables"] = num_children
else:
@@ -245,18 +242,18 @@ class VariableReference(BaseReference):
# changed DAP to allow memory references for any of the
# variable response requests, and to lift the restriction
# to pointer-to-function from Variable.
- if self.value.type.strip_typedefs().code == gdb.TYPE_CODE_PTR:
- result["memoryReference"] = hex(int(self.value))
+ if self._value.type.strip_typedefs().code == gdb.TYPE_CODE_PTR:
+ result["memoryReference"] = hex(int(self._value))
if client_bool_capability("supportsVariableType"):
- result["type"] = str(self.value.type)
+ result["type"] = str(self._value.type)
return result
@in_gdb_thread
def fetch_one_child(self, idx):
- if isinstance(self.printer, gdb.ValuePrinter) and hasattr(
- self.printer, "child"
+ if isinstance(self._printer, gdb.ValuePrinter) and hasattr(
+ self._printer, "child"
):
- (name, val) = self.printer.child(idx)
+ (name, val) = self._printer.child(idx)
else:
(name, val) = self.cache_children()[idx]
# A pretty-printer can return something other than a
@@ -269,7 +266,7 @@ class VariableReference(BaseReference):
@in_gdb_thread
def find_variable(ref):
"""Given a variable reference, return the corresponding variable object."""
- global all_variables
+
# Variable references are offset by 1.
ref = ref - 1
if ref < 0 or ref > len(all_variables):
diff --git a/gdb/python/lib/gdb/disassembler.py b/gdb/python/lib/gdb/disassembler.py
index 7d0e781..8f8e768 100644
--- a/gdb/python/lib/gdb/disassembler.py
+++ b/gdb/python/lib/gdb/disassembler.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -81,7 +81,7 @@ def register_disassembler(disassembler, architecture=None):
# Call the private _set_enabled function within the
# _gdb.disassembler module. This function sets a global flag
- # within GDB's C++ code that enables or dissables the Python
+ # within GDB's C++ code that enables or disables the Python
# disassembler functionality, this improves performance of the
# disassembler by avoiding unneeded calls into Python when we know
# that no disassemblers are registered.
diff --git a/gdb/python/lib/gdb/frames.py b/gdb/python/lib/gdb/frames.py
index a3be80c7..96174e9 100644
--- a/gdb/python/lib/gdb/frames.py
+++ b/gdb/python/lib/gdb/frames.py
@@ -1,5 +1,5 @@
# Frame-filter commands.
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/function/__init__.py b/gdb/python/lib/gdb/function/__init__.py
index 4b64bc3..62b6422 100644
--- a/gdb/python/lib/gdb/function/__init__.py
+++ b/gdb/python/lib/gdb/function/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/function/as_string.py b/gdb/python/lib/gdb/function/as_string.py
index a255fff..ff1304f 100644
--- a/gdb/python/lib/gdb/function/as_string.py
+++ b/gdb/python/lib/gdb/function/as_string.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/function/caller_is.py b/gdb/python/lib/gdb/function/caller_is.py
index bacd8c0..3687e4c 100644
--- a/gdb/python/lib/gdb/function/caller_is.py
+++ b/gdb/python/lib/gdb/function/caller_is.py
@@ -1,5 +1,5 @@
# Caller-is functions.
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/function/strfns.py b/gdb/python/lib/gdb/function/strfns.py
index 90c9cea..a620f4f 100644
--- a/gdb/python/lib/gdb/function/strfns.py
+++ b/gdb/python/lib/gdb/function/strfns.py
@@ -1,5 +1,5 @@
# Useful gdb string convenience functions.
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/missing_debug.py b/gdb/python/lib/gdb/missing_debug.py
index 2c2ceba..b03aaad 100644
--- a/gdb/python/lib/gdb/missing_debug.py
+++ b/gdb/python/lib/gdb/missing_debug.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/missing_files.py b/gdb/python/lib/gdb/missing_files.py
index 5f2df88c..9f24db7 100644
--- a/gdb/python/lib/gdb/missing_files.py
+++ b/gdb/python/lib/gdb/missing_files.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/missing_objfile.py b/gdb/python/lib/gdb/missing_objfile.py
index ace0e13..3d06bdd 100644
--- a/gdb/python/lib/gdb/missing_objfile.py
+++ b/gdb/python/lib/gdb/missing_objfile.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/printer/__init__.py b/gdb/python/lib/gdb/printer/__init__.py
index 6692044..854ff3a 100644
--- a/gdb/python/lib/gdb/printer/__init__.py
+++ b/gdb/python/lib/gdb/printer/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/printing.py b/gdb/python/lib/gdb/printing.py
index 0635993..cba27d2 100644
--- a/gdb/python/lib/gdb/printing.py
+++ b/gdb/python/lib/gdb/printing.py
@@ -1,5 +1,5 @@
# Pretty-printer utilities.
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/prompt.py b/gdb/python/lib/gdb/prompt.py
index 497ab83..060474c 100644
--- a/gdb/python/lib/gdb/prompt.py
+++ b/gdb/python/lib/gdb/prompt.py
@@ -1,5 +1,5 @@
# Extended prompt utilities.
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/ptwrite.py b/gdb/python/lib/gdb/ptwrite.py
index 3be65fe..fcc72de 100644
--- a/gdb/python/lib/gdb/ptwrite.py
+++ b/gdb/python/lib/gdb/ptwrite.py
@@ -1,5 +1,5 @@
# Ptwrite utilities.
-# Copyright (C) 2023 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/styling.py b/gdb/python/lib/gdb/styling.py
index 1c5394e..60c470f 100644
--- a/gdb/python/lib/gdb/styling.py
+++ b/gdb/python/lib/gdb/styling.py
@@ -1,5 +1,5 @@
# Styling related hooks.
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,6 +22,7 @@ try:
from pygments import formatters, highlight, lexers
from pygments.filters import TokenMergeFilter
from pygments.token import Comment, Error, Text
+ from pygments.util import ClassNotFound
_formatter = None
@@ -31,10 +32,13 @@ try:
_formatter = formatters.TerminalFormatter()
return _formatter
- def colorize(filename, contents):
+ def colorize(filename, contents, lang):
# Don't want any errors.
try:
- lexer = lexers.get_lexer_for_filename(filename, stripnl=False)
+ try:
+ lexer = lexers.get_lexer_by_name(lang, stripnl=False)
+ except ClassNotFound:
+ lexer = lexers.get_lexer_for_filename(filename, stripnl=False)
formatter = get_formatter()
return highlight(contents, lexer, formatter).encode(
gdb.host_charset(), "backslashreplace"
@@ -76,7 +80,6 @@ try:
# ignore.
pass
- global _asm_lexers
if lexer_type not in _asm_lexers:
_asm_lexers[lexer_type] = lexers.get_lexer_by_name(lexer_type)
_asm_lexers[lexer_type].add_filter(HandleNasmComments())
@@ -94,7 +97,7 @@ try:
except ImportError:
- def colorize(filename, contents):
+ def colorize(filename, contents, lang):
return None
def colorize_disasm(content, gdbarch):
diff --git a/gdb/python/lib/gdb/types.py b/gdb/python/lib/gdb/types.py
index b4af59c..bac1fb9 100644
--- a/gdb/python/lib/gdb/types.py
+++ b/gdb/python/lib/gdb/types.py
@@ -1,5 +1,5 @@
# Type utilities.
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/unwinder.py b/gdb/python/lib/gdb/unwinder.py
index bb0db79..3e1f756 100644
--- a/gdb/python/lib/gdb/unwinder.py
+++ b/gdb/python/lib/gdb/unwinder.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/lib/gdb/xmethod.py b/gdb/python/lib/gdb/xmethod.py
index e12d51c..310585a 100644
--- a/gdb/python/lib/gdb/xmethod.py
+++ b/gdb/python/lib/gdb/xmethod.py
@@ -1,5 +1,5 @@
# Python side of the support for xmethods.
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/py-all-events.def b/gdb/python/py-all-events.def
index f315e75..c20bb36 100644
--- a/gdb/python/py-all-events.def
+++ b/gdb/python/py-all-events.def
@@ -1,6 +1,6 @@
/* Python event definitions -*- c++ -*-
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-auto-load.c b/gdb/python/py-auto-load.c
index 7dc3a7b..f65b979 100644
--- a/gdb/python/py-auto-load.c
+++ b/gdb/python/py-auto-load.c
@@ -1,6 +1,6 @@
/* GDB routines for supporting auto-loaded scripts.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-bpevent.c b/gdb/python/py-bpevent.c
index 5982a26..ddf5066 100644
--- a/gdb/python/py-bpevent.c
+++ b/gdb/python/py-bpevent.c
@@ -1,6 +1,6 @@
/* Python interface to inferior breakpoint stop events.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-breakpoint.c b/gdb/python/py-breakpoint.c
index 75f50e1..58998f5 100644
--- a/gdb/python/py-breakpoint.c
+++ b/gdb/python/py-breakpoint.c
@@ -1,6 +1,6 @@
/* Python interface to breakpoints
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -17,6 +17,7 @@
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 "source.h"
#include "value.h"
#include "python-internal.h"
#include "python.h"
@@ -947,7 +948,7 @@ bppy_init (PyObject *self, PyObject *args, PyObject *kwargs)
else
{
PyErr_SetString (PyExc_RuntimeError,
- _("Line keyword should be an integer or a string. "));
+ _("Line keyword should be an integer or a string."));
return -1;
}
}
@@ -1629,6 +1630,26 @@ bplocpy_get_owner (PyObject *py_self, void *closure)
return (PyObject *) self->owner;
}
+/* Attempt to get fully resolved file path for symtab. */
+
+static gdbpy_ref<>
+bploc_filepath (struct symtab *bploc_symtab)
+{
+ /* The exception is not ours to handle. We should always
+ return some string value and filename is never null. */
+ try
+ {
+ const char *full = symtab_to_fullname (bploc_symtab);
+ if (full)
+ return host_string_to_python_string (full);
+ }
+ catch (const gdb_exception &except)
+ {
+ }
+
+ return host_string_to_python_string (bploc_symtab->filename);
+}
+
/* Python function to get the source file name path and line number
where this breakpoint location was set. */
@@ -1643,9 +1664,7 @@ bplocpy_get_source_location (PyObject *py_self, void *closure)
gdbpy_ref<> tup (PyTuple_New (2));
if (tup == nullptr)
return nullptr;
- /* symtab->filename is never NULL. */
- gdbpy_ref<> filename
- = host_string_to_python_string (self->bp_loc->symtab->filename);
+ gdbpy_ref<> filename = bploc_filepath (self->bp_loc->symtab);
if (filename == nullptr)
return nullptr;
auto line = gdb_py_object_from_ulongest (self->bp_loc->line_number);
diff --git a/gdb/python/py-cmd.c b/gdb/python/py-cmd.c
index 2bb9b82..dc5e270 100644
--- a/gdb/python/py-cmd.c
+++ b/gdb/python/py-cmd.c
@@ -1,6 +1,6 @@
/* gdb commands implemented in Python
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -105,19 +105,17 @@ cmdpy_function (const char *args, int from_tty, cmd_list_element *command)
gdbpy_enter enter_py;
- if (! obj)
+ if (obj == nullptr)
error (_("Invalid invocation of Python command object."));
- if (! PyObject_HasAttr ((PyObject *) obj, invoke_cst))
- {
- if (obj->command->is_prefix ())
- {
- /* A prefix command does not need an invoke method. */
- return;
- }
- error (_("Python command object missing 'invoke' method."));
- }
- if (! args)
+ /* If we get here for a prefix command then the prefix command had an
+ 'invoke' method when it was created. If the 'invoke' method is now
+ missing, then the user has done something weird (like deleting the
+ invoke method, yuck!). */
+ if (!PyObject_HasAttr ((PyObject *) obj, invoke_cst))
+ error (_("Python command object missing 'invoke' method."));
+
+ if (args == nullptr)
args = "";
gdbpy_ref<> argobj (PyUnicode_Decode (args, strlen (args), host_charset (),
NULL));
@@ -336,24 +334,30 @@ cmdpy_completer (struct cmd_list_element *command,
name of the new command. All earlier words must be existing prefix
commands.
- *BASE_LIST is set to the final prefix command's list of
- *sub-commands.
+ *BASE_LIST is set to the final prefix command's list of sub-commands.
START_LIST is the list in which the search starts.
+ When PREFIX_CMD is not NULL then *PREFIX_CMD is set to the prefix
+ command itself, or NULL, if there is no prefix command.
+
This function returns the name of the new command. On error sets the Python
error and returns NULL. */
gdb::unique_xmalloc_ptr<char>
gdbpy_parse_command_name (const char *name,
struct cmd_list_element ***base_list,
- struct cmd_list_element **start_list)
+ struct cmd_list_element **start_list,
+ struct cmd_list_element **prefix_cmd)
{
struct cmd_list_element *elt;
int len = strlen (name);
int i, lastchar;
const char *prefix_text2;
+ if (prefix_cmd != nullptr)
+ *prefix_cmd = nullptr;
+
/* Skip trailing whitespace. */
for (i = len - 1; i >= 0 && (name[i] == ' ' || name[i] == '\t'); --i)
;
@@ -368,9 +372,8 @@ gdbpy_parse_command_name (const char *name,
for (; i > 0 && valid_cmd_char_p (name[i - 1]); --i)
;
- gdb::unique_xmalloc_ptr<char> result ((char *) xmalloc (lastchar - i + 2));
- memcpy (result.get (), &name[i], lastchar - i + 1);
- result.get ()[lastchar - i + 1] = '\0';
+ gdb::unique_xmalloc_ptr<char> result
+ = make_unique_xstrndup (&name[i], lastchar - i + 1);
/* Skip whitespace again. */
for (--i; i >= 0 && (name[i] == ' ' || name[i] == '\t'); --i)
@@ -385,7 +388,7 @@ gdbpy_parse_command_name (const char *name,
prefix_text2 = prefix_text.c_str ();
elt = lookup_cmd_1 (&prefix_text2, *start_list, NULL, NULL, 1);
- if (elt == NULL || elt == CMD_LIST_AMBIGUOUS)
+ if (elt == nullptr || elt == CMD_LIST_AMBIGUOUS || *prefix_text2 != '\0')
{
PyErr_Format (PyExc_RuntimeError, _("Could not find command prefix %s."),
prefix_text.c_str ());
@@ -395,6 +398,8 @@ gdbpy_parse_command_name (const char *name,
if (elt->is_prefix ())
{
*base_list = elt->subcommands;
+ if (prefix_cmd != nullptr)
+ *prefix_cmd = elt;
return result;
}
@@ -469,8 +474,9 @@ cmdpy_init (PyObject *self, PyObject *args, PyObject *kw)
return -1;
}
+ cmd_list_element *prefix_cmd = nullptr;
gdb::unique_xmalloc_ptr<char> cmd_name
- = gdbpy_parse_command_name (name, &cmd_list, &cmdlist);
+ = gdbpy_parse_command_name (name, &cmd_list, &cmdlist, &prefix_cmd);
if (cmd_name == nullptr)
return -1;
@@ -507,26 +513,64 @@ cmdpy_init (PyObject *self, PyObject *args, PyObject *kw)
if (is_prefix)
{
- int allow_unknown;
-
- /* If we have our own "invoke" method, then allow unknown
- sub-commands. */
- allow_unknown = PyObject_HasAttr (self, invoke_cst);
- cmd = add_prefix_cmd (cmd_name.get (),
- (enum command_class) cmdtype,
- NULL, docstring.release (), &obj->sub_list,
- allow_unknown, cmd_list);
+ bool has_invoke = PyObject_HasAttr (self, invoke_cst) == 1;
+ if (has_invoke)
+ {
+ /* If there's an 'invoke' method, then create the prefix
+ command, but call cmdpy_function to dispatch to the invoke
+ method when the user runs the prefix with no sub-command. */
+ cmd = add_prefix_cmd (cmd_name.get (),
+ (enum command_class) cmdtype,
+ nullptr,
+ docstring.release (), &obj->sub_list,
+ 1 /* allow_unknown */, cmd_list);
+ cmd->func = cmdpy_function;
+ }
+ else
+ {
+ /* If there is no 'invoke' method, then create the prefix
+ using the standard prefix callbacks. This means that for
+ 'set prefix' the user will get the help text listing all
+ of the sub-commands, and for 'show prefix', the user will
+ see all of the sub-command values. */
+ if (prefix_cmd != nullptr)
+ {
+ while (prefix_cmd->prefix != nullptr)
+ prefix_cmd = prefix_cmd->prefix;
+ }
+
+ bool is_show = (prefix_cmd != nullptr
+ && prefix_cmd->subcommands == &showlist);
+
+ if (is_show)
+ cmd = add_show_prefix_cmd (cmd_name.get (),
+ (enum command_class) cmdtype,
+ docstring.release (),
+ &obj->sub_list,
+ 0 /* allow_unknown */, cmd_list);
+ else
+ cmd = add_basic_prefix_cmd (cmd_name.get (),
+ (enum command_class) cmdtype,
+ docstring.release (),
+ &obj->sub_list,
+ 0 /* allow_unknown */, cmd_list);
+ }
}
else
- cmd = add_cmd (cmd_name.get (), (enum command_class) cmdtype,
- docstring.release (), cmd_list);
+ {
+ /* For non-prefix commands, arrange to call cmdpy_function, which
+ invokes the Python 'invoke' method, or raises an exception if
+ the 'invoke' method is missing. */
+ cmd = add_cmd (cmd_name.get (), (enum command_class) cmdtype,
+ docstring.release (), cmd_list);
+ cmd->func = cmdpy_function;
+ }
/* If successful, the above takes ownership of the name, since we set
name_allocated, so release it. */
cmd_name.release ();
- /* There appears to be no API to set this. */
- cmd->func = cmdpy_function;
+ /* There appears to be no API to set these member variables. */
cmd->destroyer = cmdpy_destroyer;
cmd->doc_allocated = 1;
cmd->name_allocated = 1;
diff --git a/gdb/python/py-color.c b/gdb/python/py-color.c
index 3a90b62..3bbd22d 100644
--- a/gdb/python/py-color.c
+++ b/gdb/python/py-color.c
@@ -1,6 +1,6 @@
/* Python interface to ui_file_style::color objects.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -21,6 +21,7 @@
#include "python-internal.h"
#include "py-color.h"
#include "cli/cli-decode.h"
+#include "cli/cli-style.h"
/* Colorspace constants and their values. */
static struct {
@@ -64,7 +65,8 @@ create_color_object (const ui_file_style::color &color)
bool
gdbpy_is_color (PyObject *obj)
{
- return PyObject_IsInstance (obj, (PyObject *) &colorpy_object_type);
+ gdb_assert (obj != nullptr);
+ return PyObject_TypeCheck (obj, &colorpy_object_type) != 0;
}
/* See py-color.h. */
@@ -80,33 +82,33 @@ gdbpy_get_color (PyObject *obj)
static PyObject *
get_attr (PyObject *obj, PyObject *attr_name)
{
- if (! PyUnicode_Check (attr_name))
+ if (!PyUnicode_Check (attr_name))
return PyObject_GenericGetAttr (obj, attr_name);
colorpy_object *self = (colorpy_object *) obj;
const ui_file_style::color &color = self->color;
- if (! PyUnicode_CompareWithASCIIString (attr_name, "colorspace"))
+ if (!PyUnicode_CompareWithASCIIString (attr_name, "colorspace"))
{
int value = static_cast<int> (color.colorspace ());
return gdb_py_object_from_longest (value).release ();
}
- if (! PyUnicode_CompareWithASCIIString (attr_name, "is_none"))
+ if (!PyUnicode_CompareWithASCIIString (attr_name, "is_none"))
return PyBool_FromLong (color.is_none ());
- if (! PyUnicode_CompareWithASCIIString (attr_name, "is_indexed"))
+ if (!PyUnicode_CompareWithASCIIString (attr_name, "is_indexed"))
return PyBool_FromLong (color.is_indexed ());
- if (! PyUnicode_CompareWithASCIIString (attr_name, "is_direct"))
+ if (!PyUnicode_CompareWithASCIIString (attr_name, "is_direct"))
return PyBool_FromLong (color.is_direct ());
if (color.is_indexed ()
- && ! PyUnicode_CompareWithASCIIString (attr_name, "index"))
+ && !PyUnicode_CompareWithASCIIString (attr_name, "index"))
return gdb_py_object_from_longest (color.get_value ()).release ();
if (color.is_direct ()
- && ! PyUnicode_CompareWithASCIIString (attr_name, "components"))
+ && !PyUnicode_CompareWithASCIIString (attr_name, "components"))
{
uint8_t rgb[3];
color.get_rgb (rgb);
@@ -135,25 +137,29 @@ get_attr (PyObject *obj, PyObject *attr_name)
/* Implementation of Color.escape_sequence (self, is_fg) -> str. */
static PyObject *
-colorpy_escape_sequence (PyObject *self, PyObject *is_fg_obj)
+colorpy_escape_sequence (PyObject *self, PyObject *args, PyObject *kwargs)
{
- if (!gdbpy_is_color (self))
- {
- PyErr_SetString (PyExc_RuntimeError,
- _("Object is not gdb.Color."));
- return nullptr;
- }
+ static const char *keywords[] = { "is_foreground", nullptr };
+ PyObject *is_fg_obj;
+
+ /* Parse method arguments. */
+ if (!gdb_PyArg_ParseTupleAndKeywords (args, kwargs, "O!", keywords,
+ &PyBool_Type, &is_fg_obj))
+ return nullptr;
- if (! PyBool_Check (is_fg_obj))
+ /* Python ensures the type of SELF. */
+ gdb_assert (gdbpy_is_color (self));
+
+ /* The argument parsing ensures we have a bool. */
+ gdb_assert (PyBool_Check (is_fg_obj));
+
+ std::string s;
+ if (term_cli_styling ())
{
- PyErr_SetString (PyExc_RuntimeError,
- _("A boolean argument is required."));
- return nullptr;
+ bool is_fg = is_fg_obj == Py_True;
+ s = gdbpy_get_color (self).to_ansi (is_fg);
}
- bool is_fg = is_fg_obj == Py_True;
- std::string s = gdbpy_get_color (self).to_ansi (is_fg);
-
return host_string_to_python_string (s.c_str ()).release ();
}
@@ -175,17 +181,20 @@ colorpy_init (PyObject *self, PyObject *args, PyObject *kwds)
PyObject *colorspace_obj = nullptr;
color_space colorspace = color_space::MONOCHROME;
- if (! PyArg_ParseTuple (args, "|OO", &value_obj, &colorspace_obj))
+ static const char *keywords[] = { "value", "color_space", nullptr };
+
+ if (!gdb_PyArg_ParseTupleAndKeywords (args, kwds, "|OO", keywords,
+ &value_obj, &colorspace_obj))
return -1;
try
{
- if (colorspace_obj)
+ if (colorspace_obj != nullptr)
{
if (PyLong_Check (colorspace_obj))
{
long colorspace_id = -1;
- if (! gdb_py_int_as_long (colorspace_obj, &colorspace_id))
+ if (!gdb_py_int_as_long (colorspace_obj, &colorspace_id))
return -1;
if (!color_space_safe_cast (&colorspace, colorspace_id))
error (_("colorspace %ld is out of range."), colorspace_id);
@@ -201,11 +210,11 @@ colorpy_init (PyObject *self, PyObject *args, PyObject *kwds)
else if (PyLong_Check (value_obj))
{
long value = -1;
- if (! gdb_py_int_as_long (value_obj, &value))
+ if (!gdb_py_int_as_long (value_obj, &value))
return -1;
if (value < 0 || value > INT_MAX)
error (_("value %ld is out of range."), value);
- if (colorspace_obj)
+ if (colorspace_obj != nullptr)
obj->color = ui_file_style::color (colorspace, value);
else
obj->color = ui_file_style::color (value);
@@ -256,7 +265,6 @@ colorpy_init (PyObject *self, PyObject *args, PyObject *kwds)
return gdbpy_handle_gdb_exception (-1, except);
}
- Py_INCREF (self);
return 0;
}
@@ -272,10 +280,10 @@ colorpy_str (PyObject *self)
static int
gdbpy_initialize_color (void)
{
- for (auto & pair : colorspace_constants)
- if (PyModule_AddIntConstant (gdb_module, pair.name,
- static_cast<long> (pair.value)) < 0)
- return -1;
+ for (auto &pair : colorspace_constants)
+ if (PyModule_AddIntConstant (gdb_module, pair.name,
+ static_cast<long> (pair.value)) < 0)
+ return -1;
colorpy_object_type.tp_new = PyType_GenericNew;
return gdbpy_type_ready (&colorpy_object_type, gdb_module);
@@ -285,7 +293,8 @@ gdbpy_initialize_color (void)
static PyMethodDef color_methods[] =
{
- { "escape_sequence", colorpy_escape_sequence, METH_O,
+ { "escape_sequence", (PyCFunction) colorpy_escape_sequence,
+ METH_VARARGS | METH_KEYWORDS,
"escape_sequence (is_foreground) -> str.\n\
Return the ANSI escape sequence for this color.\n\
IS_FOREGROUND indicates whether this is a foreground or background color."},
@@ -313,7 +322,7 @@ PyTypeObject colorpy_object_type =
get_attr, /*tp_getattro*/
0, /*tp_setattro*/
0, /*tp_as_buffer*/
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /*tp_flags*/
+ Py_TPFLAGS_DEFAULT, /*tp_flags*/
"GDB color object", /* tp_doc */
0, /* tp_traverse */
0, /* tp_clear */
diff --git a/gdb/python/py-color.h b/gdb/python/py-color.h
index a778d5b..d94baa2 100644
--- a/gdb/python/py-color.h
+++ b/gdb/python/py-color.h
@@ -1,6 +1,6 @@
/* Python interface to ui_file_style::color objects.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -17,8 +17,8 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef PYTHON_PY_COLOR_H
-#define PYTHON_PY_COLOR_H
+#ifndef GDB_PYTHON_PY_COLOR_H
+#define GDB_PYTHON_PY_COLOR_H
#include "python-internal.h"
#include "ui-style.h"
@@ -32,4 +32,4 @@ extern bool gdbpy_is_color (PyObject *obj);
/* Extracts value from OBJ object of gdb.Color type. */
extern const ui_file_style::color &gdbpy_get_color (PyObject *obj);
-#endif /* PYTHON_PY_COLOR_H */
+#endif /* GDB_PYTHON_PY_COLOR_H */
diff --git a/gdb/python/py-connection.c b/gdb/python/py-connection.c
index 7b5146d..93757ac 100644
--- a/gdb/python/py-connection.c
+++ b/gdb/python/py-connection.c
@@ -1,6 +1,6 @@
/* Python interface to inferiors.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -27,8 +27,7 @@
#include "arch-utils.h"
#include "remote.h"
#include "charset.h"
-
-#include <map>
+#include "gdbsupport/unordered_map.h"
/* The Python object that represents a connection. */
@@ -65,8 +64,8 @@ extern PyTypeObject remote_connection_object_type
/* A map between process_stratum targets and the Python object representing
them. We actually hold a gdbpy_ref around the Python object so that
reference counts are handled correctly when entries are deleted. */
-static std::map<process_stratum_target *,
- gdbpy_ref<connection_object>> all_connection_objects;
+static gdb::unordered_map<process_stratum_target *,
+ gdbpy_ref<connection_object>> all_connection_objects;
/* Return a reference to a gdb.TargetConnection object for TARGET. If
TARGET is nullptr then a reference to None is returned.
diff --git a/gdb/python/py-continueevent.c b/gdb/python/py-continueevent.c
index c859b1e..500b5da 100644
--- a/gdb/python/py-continueevent.c
+++ b/gdb/python/py-continueevent.c
@@ -1,6 +1,6 @@
/* Python interface to inferior continue events.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-dap.c b/gdb/python/py-dap.c
index d5555c9..7196d6c 100644
--- a/gdb/python/py-dap.c
+++ b/gdb/python/py-dap.c
@@ -1,6 +1,6 @@
/* Python DAP interpreter
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-disasm.c b/gdb/python/py-disasm.c
index 66ed456..17064dc 100644
--- a/gdb/python/py-disasm.c
+++ b/gdb/python/py-disasm.c
@@ -1,6 +1,6 @@
/* Python interface to instruction disassembly.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -133,7 +133,7 @@ static bool python_print_insn_enabled = false;
struct gdbpy_disassembler : public gdb_disassemble_info
{
/* Constructor. */
- gdbpy_disassembler (disasm_info_object *obj, PyObject *memory_source);
+ gdbpy_disassembler (disasm_info_object *obj);
/* Get the DisassembleInfo object pointer. */
disasm_info_object *
@@ -222,11 +222,6 @@ private:
address of the memory error is stored in here. */
std::optional<CORE_ADDR> m_memory_error_address;
- /* When the user calls the builtin_disassemble function, if they pass a
- memory source object then a pointer to the object is placed in here,
- otherwise, this field is nullptr. */
- PyObject *m_memory_source;
-
/* Move the exception EX into this disassembler object. */
void store_exception (gdbpy_err_fetch &&ex)
{
@@ -539,18 +534,17 @@ disasmpy_init_disassembler_result (disasm_result_object *obj, int length,
static PyObject *
disasmpy_builtin_disassemble (PyObject *self, PyObject *args, PyObject *kw)
{
- PyObject *info_obj, *memory_source_obj = nullptr;
- static const char *keywords[] = { "info", "memory_source", nullptr };
- if (!gdb_PyArg_ParseTupleAndKeywords (args, kw, "O!|O", keywords,
- &disasm_info_object_type, &info_obj,
- &memory_source_obj))
+ PyObject *info_obj;
+ static const char *keywords[] = { "info", nullptr };
+ if (!gdb_PyArg_ParseTupleAndKeywords (args, kw, "O!", keywords,
+ &disasm_info_object_type, &info_obj))
return nullptr;
disasm_info_object *disasm_info = (disasm_info_object *) info_obj;
DISASMPY_DISASM_INFO_REQUIRE_VALID (disasm_info);
/* Where the result will be written. */
- gdbpy_disassembler disassembler (disasm_info, memory_source_obj);
+ gdbpy_disassembler disassembler (disasm_info);
/* Now actually perform the disassembly. LENGTH is set to the length of
the disassembled instruction, or -1 if there was a memory-error
@@ -1139,16 +1133,14 @@ gdbpy_disassembler::print_address_func (bfd_vma addr,
/* constructor. */
-gdbpy_disassembler::gdbpy_disassembler (disasm_info_object *obj,
- PyObject *memory_source)
+gdbpy_disassembler::gdbpy_disassembler (disasm_info_object *obj)
: gdb_disassemble_info (obj->gdbarch,
read_memory_func,
memory_error_func,
print_address_func,
fprintf_func,
fprintf_styled_func),
- m_disasm_info_object (obj),
- m_memory_source (memory_source)
+ m_disasm_info_object (obj)
{ /* Nothing. */ }
/* A wrapper around a reference to a Python DisassembleInfo object, which
@@ -1319,12 +1311,13 @@ gdbpy_print_insn (struct gdbarch *gdbarch, CORE_ADDR memaddr,
return {};
}
- /* Check the result is a DisassemblerResult (or a sub-class). */
- if (!PyObject_IsInstance (result.get (),
- (PyObject *) &disasm_result_object_type))
+ /* Check the result is a DisassemblerResult. */
+ if (!PyObject_TypeCheck (result.get (), &disasm_result_object_type))
{
- PyErr_SetString (PyExc_TypeError,
- _("Result is not a DisassemblerResult."));
+ PyErr_Format
+ (PyExc_TypeError,
+ _("Result from Disassembler must be gdb.DisassemblerResult, not %s."),
+ Py_TYPE (result.get ())->tp_name);
gdbpy_print_stack ();
return std::optional<int> (-1);
}
@@ -1610,10 +1603,9 @@ PyMethodDef python_disassembler_methods[] =
{
{ "builtin_disassemble", (PyCFunction) disasmpy_builtin_disassemble,
METH_VARARGS | METH_KEYWORDS,
- "builtin_disassemble (INFO, MEMORY_SOURCE = None) -> None\n\
+ "builtin_disassemble (INFO) -> None\n\
Disassemble using GDB's builtin disassembler. INFO is an instance of\n\
-gdb.disassembler.DisassembleInfo. The MEMORY_SOURCE, if not None, should\n\
-be an object with the read_memory method." },
+gdb.disassembler.DisassembleInfo." },
{ "_set_enabled", (PyCFunction) disasmpy_set_enabled,
METH_VARARGS | METH_KEYWORDS,
"_set_enabled (STATE) -> None\n\
diff --git a/gdb/python/py-event-types.def b/gdb/python/py-event-types.def
index e22f042..15cd9fa 100644
--- a/gdb/python/py-event-types.def
+++ b/gdb/python/py-event-types.def
@@ -1,6 +1,6 @@
/* Python event definitions -*- c++ -*-
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-event.c b/gdb/python/py-event.c
index a918136..da3b52c 100644
--- a/gdb/python/py-event.c
+++ b/gdb/python/py-event.c
@@ -1,6 +1,6 @@
/* Python interface to inferior events.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-event.h b/gdb/python/py-event.h
index e4491db..3938368 100644
--- a/gdb/python/py-event.h
+++ b/gdb/python/py-event.h
@@ -1,6 +1,6 @@
/* Python interface to inferior events.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-events.h b/gdb/python/py-events.h
index b44c437..d9df3ab 100644
--- a/gdb/python/py-events.h
+++ b/gdb/python/py-events.h
@@ -1,6 +1,6 @@
/* Python interface to inferior events.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-evtregistry.c b/gdb/python/py-evtregistry.c
index 7ae3997..2166f75 100644
--- a/gdb/python/py-evtregistry.c
+++ b/gdb/python/py-evtregistry.c
@@ -1,6 +1,6 @@
/* Python interface to inferior thread event registries.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-evts.c b/gdb/python/py-evts.c
index 4e966e1..c905926 100644
--- a/gdb/python/py-evts.c
+++ b/gdb/python/py-evts.c
@@ -1,6 +1,6 @@
/* Python interface to inferior events.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-exitedevent.c b/gdb/python/py-exitedevent.c
index 4837468..dfe8a8f 100644
--- a/gdb/python/py-exitedevent.c
+++ b/gdb/python/py-exitedevent.c
@@ -1,6 +1,6 @@
/* Python interface to inferior exit events.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-finishbreakpoint.c b/gdb/python/py-finishbreakpoint.c
index bc53d4e..0ea629f 100644
--- a/gdb/python/py-finishbreakpoint.c
+++ b/gdb/python/py-finishbreakpoint.c
@@ -1,6 +1,6 @@
/* Python interface to finish breakpoints
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-frame.c b/gdb/python/py-frame.c
index 88646ee..722a952 100644
--- a/gdb/python/py-frame.c
+++ b/gdb/python/py-frame.c
@@ -1,6 +1,6 @@
/* Python interface to stack frames
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c
index 24e1c91..adf4233 100644
--- a/gdb/python/py-framefilter.c
+++ b/gdb/python/py-framefilter.c
@@ -1,6 +1,6 @@
/* Python frame filters
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -746,7 +746,7 @@ using levels_printed_hash = gdb::unordered_set<frame_info *>;
OUT is the output stream to print to.
- INDENT is the level of indention for this frame (in the case of elided
+ INDENT is the level of indentation for this frame (in the case of elided
frames).
LEVELS_PRINTED is a hash-table containing all the frames for which the
@@ -834,7 +834,7 @@ py_print_frame (PyObject *filter, frame_filter_flags flags,
if (print_frame_info)
{
/* Elided frames are also printed with this function (recursively)
- and are printed with indention. */
+ and are printed with indentation. */
if (indent > 0)
out->spaces (indent * 4);
diff --git a/gdb/python/py-function.c b/gdb/python/py-function.c
index 2b65d8b..86a2f30 100644
--- a/gdb/python/py-function.c
+++ b/gdb/python/py-function.c
@@ -1,6 +1,6 @@
/* Convenience functions implemented in Python.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-gdb-readline.c b/gdb/python/py-gdb-readline.c
index dd0ee45..70ceebb 100644
--- a/gdb/python/py-gdb-readline.c
+++ b/gdb/python/py-gdb-readline.c
@@ -1,6 +1,6 @@
/* Readline support for Python.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -29,11 +29,7 @@
static char *
gdbpy_readline_wrapper (FILE *sys_stdin, FILE *sys_stdout,
-#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 4
const char *prompt)
-#else
- char *prompt)
-#endif
{
int n;
const char *p = NULL;
diff --git a/gdb/python/py-inferior.c b/gdb/python/py-inferior.c
index 60bf56d..2aa11d3 100644
--- a/gdb/python/py-inferior.c
+++ b/gdb/python/py-inferior.c
@@ -1,6 +1,6 @@
/* Python interface to inferiors.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -30,10 +30,10 @@
#include "py-event.h"
#include "py-stopevent.h"
#include "progspace-and-thread.h"
-#include <unordered_map>
+#include "gdbsupport/unordered_map.h"
using thread_map_t
- = std::unordered_map<thread_info *, gdbpy_ref<thread_object>>;
+ = gdb::unordered_map<thread_info *, gdbpy_ref<thread_object>>;
struct inferior_object
{
@@ -929,7 +929,7 @@ infpy_set_args (PyObject *self, PyObject *value, void *closure)
for (const auto &arg : args)
argvec.push_back (arg.get ());
gdb::array_view<char * const> view (argvec.data (), argvec.size ());
- inf->inferior->set_args (view);
+ inf->inferior->set_args (view, true);
}
else
{
diff --git a/gdb/python/py-infevents.c b/gdb/python/py-infevents.c
index f53d589..e63ba52 100644
--- a/gdb/python/py-infevents.c
+++ b/gdb/python/py-infevents.c
@@ -1,6 +1,6 @@
/* Python interface to inferior function events.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-infthread.c b/gdb/python/py-infthread.c
index 4340666..4f1f8d4 100644
--- a/gdb/python/py-infthread.c
+++ b/gdb/python/py-infthread.c
@@ -1,6 +1,6 @@
/* Python interface to inferior threads.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-instruction.c b/gdb/python/py-instruction.c
index 7d77572..60cd561 100644
--- a/gdb/python/py-instruction.c
+++ b/gdb/python/py-instruction.c
@@ -1,6 +1,6 @@
/* Python interface to instruction objects.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-instruction.h b/gdb/python/py-instruction.h
index efbdda8..8baf9cb 100644
--- a/gdb/python/py-instruction.h
+++ b/gdb/python/py-instruction.h
@@ -1,6 +1,6 @@
/* Python interface to instruction objects.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-lazy-string.c b/gdb/python/py-lazy-string.c
index 1226c28..265f34a 100644
--- a/gdb/python/py-lazy-string.c
+++ b/gdb/python/py-lazy-string.c
@@ -1,6 +1,6 @@
/* Python interface to lazy strings.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -32,7 +32,7 @@ struct lazy_string_object {
/* Holds the encoding that will be applied to the string
when the string is printed by GDB. If the encoding is set
to None then GDB will select the most appropriate
- encoding when the sting is printed. */
+ encoding when the string is printed. */
char *encoding;
/* If TYPE is an array: If the length is known, then this value is the
diff --git a/gdb/python/py-linetable.c b/gdb/python/py-linetable.c
index fc57f36..90cba09 100644
--- a/gdb/python/py-linetable.c
+++ b/gdb/python/py-linetable.c
@@ -1,6 +1,6 @@
/* Python interface to line tables.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-membuf.c b/gdb/python/py-membuf.c
index 25ebc99..817dfba 100644
--- a/gdb/python/py-membuf.c
+++ b/gdb/python/py-membuf.c
@@ -1,6 +1,6 @@
/* Python memory buffer interface for reading inferior memory.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-mi.c b/gdb/python/py-mi.c
index cf75a18..9b871d4 100644
--- a/gdb/python/py-mi.c
+++ b/gdb/python/py-mi.c
@@ -1,6 +1,6 @@
/* Python interface to MI commands
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-micmd.c b/gdb/python/py-micmd.c
index e051b90..e4f07c9 100644
--- a/gdb/python/py-micmd.c
+++ b/gdb/python/py-micmd.c
@@ -1,6 +1,6 @@
/* MI Command Set for GDB, the GNU debugger.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-newobjfileevent.c b/gdb/python/py-newobjfileevent.c
index deaee70..b2071f96 100644
--- a/gdb/python/py-newobjfileevent.c
+++ b/gdb/python/py-newobjfileevent.c
@@ -1,6 +1,6 @@
/* Python interface to new object file loading events.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-objfile.c b/gdb/python/py-objfile.c
index 6ce58a1..1c6f569 100644
--- a/gdb/python/py-objfile.c
+++ b/gdb/python/py-objfile.c
@@ -1,6 +1,6 @@
/* Python interface to objfiles.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-param.c b/gdb/python/py-param.c
index 0e79d21..06237b6 100644
--- a/gdb/python/py-param.c
+++ b/gdb/python/py-param.c
@@ -1,6 +1,6 @@
/* GDB parameters implemented in Python
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -495,7 +495,11 @@ get_doc_string (PyObject *object, enum doc_string_type doc_type,
}
}
- if (result == nullptr)
+ /* For the set/show docs, if these strings are empty then we set then to
+ a non-empty string. This ensures that the command has some sane
+ documentation for its 'help' text. */
+ if (result == nullptr
+ || (doc_type != doc_string_description && *result == '\0'))
{
if (doc_type == doc_string_description)
result.reset (xstrdup (_("This command is not documented.")));
@@ -904,6 +908,18 @@ parmpy_init (PyObject *self, PyObject *args, PyObject *kwds)
show_doc = get_doc_string (self, doc_string_show, name);
doc = get_doc_string (self, doc_string_description, cmd_name.get ());
+ /* The set/show docs should always be a non-empty string. */
+ gdb_assert (set_doc != nullptr && *set_doc != '\0');
+ gdb_assert (show_doc != nullptr && *show_doc != '\0');
+
+ /* For the DOC string only, if it is the empty string, then we convert it
+ to NULL. This means GDB will not even display a blank line for this
+ part of the help text, instead the set/show line is all the user will
+ get. */
+ gdb_assert (doc != nullptr);
+ if (*doc == '\0')
+ doc = nullptr;
+
Py_INCREF (self);
try
diff --git a/gdb/python/py-prettyprint.c b/gdb/python/py-prettyprint.c
index e061ea1..1e72e90 100644
--- a/gdb/python/py-prettyprint.c
+++ b/gdb/python/py-prettyprint.c
@@ -1,6 +1,6 @@
/* Python pretty-printing
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-progspace.c b/gdb/python/py-progspace.c
index bb44aa4..61f9b4b 100644
--- a/gdb/python/py-progspace.c
+++ b/gdb/python/py-progspace.c
@@ -1,6 +1,6 @@
/* Python interface to program spaces.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -116,7 +116,7 @@ pspy_get_filename (PyObject *self, void *closure)
Py_RETURN_NONE;
}
-/* Implement the gdb.Progspace.symbol_file attribute. Retun the
+/* Implement the gdb.Progspace.symbol_file attribute. Return the
gdb.Objfile corresponding to the currently loaded symbol-file, or None
if no symbol-file is loaded. If the Progspace is invalid then raise an
exception. */
@@ -136,7 +136,7 @@ pspy_get_symbol_file (PyObject *self, void *closure)
Py_RETURN_NONE;
}
-/* Implement the gdb.Progspace.executable_filename attribute. Retun a
+/* Implement the gdb.Progspace.executable_filename attribute. Return a
string containing the name of the current executable, or None if no
executable is currently set. If the Progspace is invalid then raise an
exception. */
diff --git a/gdb/python/py-record-btrace.c b/gdb/python/py-record-btrace.c
index bdfebf1..620f033 100644
--- a/gdb/python/py-record-btrace.c
+++ b/gdb/python/py-record-btrace.c
@@ -1,6 +1,6 @@
/* Python interface to btrace instruction history.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-record-btrace.h b/gdb/python/py-record-btrace.h
index 30465bb..e5a1b10 100644
--- a/gdb/python/py-record-btrace.h
+++ b/gdb/python/py-record-btrace.h
@@ -1,6 +1,6 @@
/* Python interface to btrace record targets.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-record-full.c b/gdb/python/py-record-full.c
index b6623a6..dd23055 100644
--- a/gdb/python/py-record-full.c
+++ b/gdb/python/py-record-full.c
@@ -1,6 +1,6 @@
/* Python interface to btrace instruction history.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-record-full.h b/gdb/python/py-record-full.h
index df95776..aa07b3a 100644
--- a/gdb/python/py-record-full.h
+++ b/gdb/python/py-record-full.h
@@ -1,6 +1,6 @@
/* Python interface to full record targets.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-record.c b/gdb/python/py-record.c
index 2995dc1..7e7904b 100644
--- a/gdb/python/py-record.c
+++ b/gdb/python/py-record.c
@@ -1,6 +1,6 @@
/* Python interface to record targets.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-record.h b/gdb/python/py-record.h
index 1492de6..98e4863 100644
--- a/gdb/python/py-record.h
+++ b/gdb/python/py-record.h
@@ -1,6 +1,6 @@
/* Python interface to record targets.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-ref.h b/gdb/python/py-ref.h
index 938068e..04e8b82 100644
--- a/gdb/python/py-ref.h
+++ b/gdb/python/py-ref.h
@@ -1,6 +1,6 @@
/* Python reference-holding class
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-registers.c b/gdb/python/py-registers.c
index 229dd62..9be2e3c 100644
--- a/gdb/python/py-registers.c
+++ b/gdb/python/py-registers.c
@@ -1,6 +1,6 @@
/* Python interface to register, and register group information.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -22,7 +22,7 @@
#include "reggroups.h"
#include "python-internal.h"
#include "user-regs.h"
-#include <unordered_map>
+#include "gdbsupport/unordered_map.h"
/* Per-gdbarch data type. */
typedef std::vector<gdbpy_ref<>> gdbpy_register_type;
@@ -98,7 +98,7 @@ gdbpy_get_reggroup (const reggroup *reggroup)
/* Map from GDB's internal reggroup objects to the Python representation.
GDB's reggroups are global, and are never deleted, so using a map like
this is safe. */
- static std::unordered_map<const struct reggroup *,gdbpy_ref<>>
+ static gdb::unordered_map<const struct reggroup *,gdbpy_ref<>>
gdbpy_reggroup_object_map;
/* If there is not already a suitable Python object in the map then
@@ -403,8 +403,7 @@ gdbpy_parse_register_id (struct gdbarch *gdbarch, PyObject *pyo_reg_id,
PyErr_SetString (PyExc_ValueError, "Bad register");
}
/* The register could be a gdb.RegisterDescriptor object. */
- else if (PyObject_IsInstance (pyo_reg_id,
- (PyObject *) &register_descriptor_object_type))
+ else if (PyObject_TypeCheck (pyo_reg_id, &register_descriptor_object_type))
{
register_descriptor_object *reg
= (register_descriptor_object *) pyo_reg_id;
diff --git a/gdb/python/py-signalevent.c b/gdb/python/py-signalevent.c
index bf51106..5d58aa1 100644
--- a/gdb/python/py-signalevent.c
+++ b/gdb/python/py-signalevent.c
@@ -1,6 +1,6 @@
/* Python interface to inferior signal stop events.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-stopevent.c b/gdb/python/py-stopevent.c
index 485bbb1..e49f240 100644
--- a/gdb/python/py-stopevent.c
+++ b/gdb/python/py-stopevent.c
@@ -1,6 +1,6 @@
/* Python interface to inferior stop events.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-stopevent.h b/gdb/python/py-stopevent.h
index 450d8c2..fbfa87e 100644
--- a/gdb/python/py-stopevent.h
+++ b/gdb/python/py-stopevent.h
@@ -1,6 +1,6 @@
/* Python interface to inferior events.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-symbol.c b/gdb/python/py-symbol.c
index 3ce1049..3028a30 100644
--- a/gdb/python/py-symbol.c
+++ b/gdb/python/py-symbol.c
@@ -29,12 +29,6 @@ struct symbol_object {
PyObject_HEAD
/* The GDB symbol structure this object is wrapping. */
struct symbol *symbol;
- /* A symbol object is associated with an objfile, so keep track with
- doubly-linked list, rooted in the objfile. This lets us
- invalidate the underlying struct symbol when the objfile is
- deleted. */
- symbol_object *prev;
- symbol_object *next;
};
/* Require a valid symbol. All access to symbol_object->symbol should be
@@ -50,26 +44,8 @@ struct symbol_object {
} \
} while (0)
-/* A deleter that is used when an objfile is about to be freed. */
-struct symbol_object_deleter
-{
- void operator() (symbol_object *obj)
- {
- while (obj)
- {
- symbol_object *next = obj->next;
-
- obj->symbol = NULL;
- obj->next = NULL;
- obj->prev = NULL;
-
- obj = next;
- }
- }
-};
-
-static const registry<objfile>::key<symbol_object, symbol_object_deleter>
- sympy_objfile_data_key;
+static const gdbpy_registry<gdbpy_memoizing_registry_storage<symbol_object,
+ symbol, &symbol_object::symbol>> sympy_registry;
static PyObject *
sympy_str (PyObject *self)
@@ -347,19 +323,18 @@ static void
set_symbol (symbol_object *obj, struct symbol *symbol)
{
obj->symbol = symbol;
- obj->prev = NULL;
- if (symbol->is_objfile_owned ()
- && symbol->symtab () != NULL)
+ if (symbol->is_objfile_owned ())
{
- struct objfile *objfile = symbol->objfile ();
-
- obj->next = sympy_objfile_data_key.get (objfile);
- if (obj->next)
- obj->next->prev = obj;
- sympy_objfile_data_key.set (objfile, obj);
+ /* Can it really happen that symbol->symtab () is NULL? */
+ if (symbol->symtab () != nullptr)
+ {
+ sympy_registry.add (symbol->objfile (), obj);
+ }
}
else
- obj->next = NULL;
+ {
+ sympy_registry.add (symbol->arch (), obj);
+ }
}
/* Create a new symbol object (gdb.Symbol) that encapsulates the struct
@@ -369,6 +344,15 @@ symbol_to_symbol_object (struct symbol *sym)
{
symbol_object *sym_obj;
+ /* Look if there's already a gdb.Symbol object for given SYMBOL
+ and if so, return it. */
+ if (sym->is_objfile_owned ())
+ sym_obj = sympy_registry.lookup (sym->objfile (), sym);
+ else
+ sym_obj = sympy_registry.lookup (sym->arch (), sym);
+ if (sym_obj != nullptr)
+ return (PyObject*)sym_obj;
+
sym_obj = PyObject_New (symbol_object, &symbol_object_type);
if (sym_obj)
set_symbol (sym_obj, sym);
@@ -390,15 +374,14 @@ sympy_dealloc (PyObject *obj)
{
symbol_object *sym_obj = (symbol_object *) obj;
- if (sym_obj->prev)
- sym_obj->prev->next = sym_obj->next;
- else if (sym_obj->symbol != NULL
- && sym_obj->symbol->is_objfile_owned ()
- && sym_obj->symbol->symtab () != NULL)
- sympy_objfile_data_key.set (sym_obj->symbol->objfile (), sym_obj->next);
- if (sym_obj->next)
- sym_obj->next->prev = sym_obj->prev;
- sym_obj->symbol = NULL;
+ if (sym_obj->symbol != nullptr)
+ {
+ if (sym_obj->symbol->is_objfile_owned ())
+ sympy_registry.remove (sym_obj->symbol->objfile (), sym_obj);
+ else
+ sympy_registry.remove (sym_obj->symbol->arch (), sym_obj);
+ }
+
Py_TYPE (obj)->tp_free (obj);
}
diff --git a/gdb/python/py-symtab.c b/gdb/python/py-symtab.c
index 99a5094..9f7bdb0 100644
--- a/gdb/python/py-symtab.c
+++ b/gdb/python/py-symtab.c
@@ -1,6 +1,6 @@
/* Python interface to symbol tables.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -28,39 +28,12 @@ struct symtab_object {
PyObject_HEAD
/* The GDB Symbol table structure. */
struct symtab *symtab;
- /* A symtab object is associated with an objfile, so keep track with
- a doubly-linked list, rooted in the objfile. This allows
- invalidation of the underlying struct symtab when the objfile is
- deleted. */
- symtab_object *prev;
- symtab_object *next;
-};
-
-/* This function is called when an objfile is about to be freed.
- Invalidate the symbol table as further actions on the symbol table
- would result in bad data. All access to obj->symtab should be
- gated by STPY_REQUIRE_VALID which will raise an exception on
- invalid symbol tables. */
-struct stpy_deleter
-{
- void operator() (symtab_object *obj)
- {
- while (obj)
- {
- symtab_object *next = obj->next;
-
- obj->symtab = NULL;
- obj->next = NULL;
- obj->prev = NULL;
- obj = next;
- }
- }
};
extern PyTypeObject symtab_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("symtab_object");
-static const registry<objfile>::key<symtab_object, stpy_deleter>
- stpy_objfile_data_key;
+static const gdbpy_registry<gdbpy_memoizing_registry_storage<symtab_object,
+ symtab, &symtab_object::symtab>> stpy_registry;
/* Require a valid symbol table. All access to symtab_object->symtab
should be gated by this call. */
@@ -77,8 +50,6 @@ static const registry<objfile>::key<symtab_object, stpy_deleter>
struct sal_object {
PyObject_HEAD
- /* The GDB Symbol table structure. */
- PyObject *symtab;
/* The GDB Symbol table and line structure. */
struct symtab_and_line *sal;
/* A Symtab and line object is associated with an objfile, so keep
@@ -94,34 +65,19 @@ struct sal_object {
data. All access to obj->sal should be gated by
SALPY_REQUIRE_VALID which will raise an exception on invalid symbol
table and line objects. */
-struct salpy_deleter
+struct salpy_invalidator
{
void operator() (sal_object *obj)
{
- gdbpy_enter enter_py;
-
- while (obj)
- {
- sal_object *next = obj->next;
-
- gdbpy_ref<> tmp (obj->symtab);
- obj->symtab = Py_None;
- Py_INCREF (Py_None);
-
- obj->next = NULL;
- obj->prev = NULL;
- xfree (obj->sal);
- obj->sal = NULL;
-
- obj = next;
- }
+ xfree (obj->sal);
+ obj->sal = nullptr;
}
};
extern PyTypeObject sal_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("sal_object");
-static const registry<objfile>::key<sal_object, salpy_deleter>
- salpy_objfile_data_key;
+static const gdbpy_registry<gdbpy_tracking_registry_storage<sal_object,
+ symtab_and_line, &sal_object::sal, salpy_invalidator>> salpy_registry;
/* Require a valid symbol table and line object. All access to
sal_object->sal should be gated by this call. */
@@ -272,18 +228,15 @@ salpy_str (PyObject *self)
{
const char *filename;
sal_object *sal_obj;
- struct symtab_and_line *sal = NULL;
+ struct symtab_and_line *sal = nullptr;
SALPY_REQUIRE_VALID (self, sal);
sal_obj = (sal_object *) self;
- if (sal_obj->symtab == Py_None)
+ if (sal_obj->sal->symtab == nullptr)
filename = "<unknown>";
else
- {
- symtab *symtab = symtab_object_to_symtab (sal_obj->symtab);
- filename = symtab_to_filename_for_display (symtab);
- }
+ filename = symtab_to_filename_for_display (sal_obj->sal->symtab);
return PyUnicode_FromFormat ("symbol and line for %s, line %d", filename,
sal->line);
@@ -292,16 +245,12 @@ salpy_str (PyObject *self)
static void
stpy_dealloc (PyObject *obj)
{
- symtab_object *symtab = (symtab_object *) obj;
-
- if (symtab->prev)
- symtab->prev->next = symtab->next;
- else if (symtab->symtab)
- stpy_objfile_data_key.set (symtab->symtab->compunit ()->objfile (),
- symtab->next);
- if (symtab->next)
- symtab->next->prev = symtab->prev;
- symtab->symtab = NULL;
+ symtab_object *symtab_obj = (symtab_object *) obj;
+
+ if (symtab_obj->symtab != nullptr)
+ stpy_registry.remove (symtab_obj->symtab->compunit ()->objfile(),
+ symtab_obj);
+
Py_TYPE (obj)->tp_free (obj);
}
@@ -346,13 +295,13 @@ static PyObject *
salpy_get_symtab (PyObject *self, void *closure)
{
struct symtab_and_line *sal;
- sal_object *self_sal = (sal_object *) self;
SALPY_REQUIRE_VALID (self, sal);
- Py_INCREF (self_sal->symtab);
-
- return (PyObject *) self_sal->symtab;
+ if (sal->symtab == nullptr)
+ Py_RETURN_NONE;
+ else
+ return symtab_to_symtab_object (sal->symtab);
}
/* Implementation of gdb.Symtab_and_line.is_valid (self) -> Boolean.
@@ -375,17 +324,10 @@ salpy_dealloc (PyObject *self)
{
sal_object *self_sal = (sal_object *) self;
- if (self_sal->prev)
- self_sal->prev->next = self_sal->next;
- else if (self_sal->symtab != Py_None)
- salpy_objfile_data_key.set
- (symtab_object_to_symtab (self_sal->symtab)->compunit ()->objfile (),
- self_sal->next);
-
- if (self_sal->next)
- self_sal->next->prev = self_sal->prev;
+ if (self_sal->sal != nullptr && self_sal->sal->symtab != nullptr)
+ salpy_registry.remove (self_sal->sal->symtab->compunit ()->objfile (),
+ self_sal);
- Py_DECREF (self_sal->symtab);
xfree (self_sal->sal);
Py_TYPE (self)->tp_free (self);
}
@@ -395,48 +337,20 @@ salpy_dealloc (PyObject *self)
Also, register the sal_object life-cycle with the life-cycle of the
object file associated with this sal, if needed. If a failure
occurs during the sal population, this function will return -1. */
-static int CPYCHECKER_NEGATIVE_RESULT_SETS_EXCEPTION
+static void
set_sal (sal_object *sal_obj, struct symtab_and_line sal)
{
- PyObject *symtab_obj;
-
- if (sal.symtab)
- {
- symtab_obj = symtab_to_symtab_object (sal.symtab);
- /* If a symtab existed in the sal, but it cannot be duplicated,
- we exit. */
- if (symtab_obj == NULL)
- return -1;
- }
- else
- {
- symtab_obj = Py_None;
- Py_INCREF (Py_None);
- }
-
sal_obj->sal = ((struct symtab_and_line *)
xmemdup (&sal, sizeof (struct symtab_and_line),
sizeof (struct symtab_and_line)));
- sal_obj->symtab = symtab_obj;
- sal_obj->prev = NULL;
+ sal_obj->prev = nullptr;
+ sal_obj->next = nullptr;
/* If the SAL does not have a symtab, we do not add it to the
objfile cleanup observer linked list. */
- if (sal_obj->symtab != Py_None)
- {
- symtab *symtab = symtab_object_to_symtab (sal_obj->symtab);
-
- sal_obj->next
- = salpy_objfile_data_key.get (symtab->compunit ()->objfile ());
- if (sal_obj->next)
- sal_obj->next->prev = sal_obj;
-
- salpy_objfile_data_key.set (symtab->compunit ()->objfile (), sal_obj);
- }
- else
- sal_obj->next = NULL;
-
- return 0;
+ symtab *symtab = sal_obj->sal->symtab;
+ if (symtab != nullptr)
+ salpy_registry.add (symtab->compunit ()->objfile (), sal_obj);
}
/* Given a symtab, and a symtab_object that has previously been
@@ -448,16 +362,8 @@ static void
set_symtab (symtab_object *obj, struct symtab *symtab)
{
obj->symtab = symtab;
- obj->prev = NULL;
- if (symtab)
- {
- obj->next = stpy_objfile_data_key.get (symtab->compunit ()->objfile ());
- if (obj->next)
- obj->next->prev = obj;
- stpy_objfile_data_key.set (symtab->compunit ()->objfile (), obj);
- }
- else
- obj->next = NULL;
+ if (symtab != nullptr)
+ stpy_registry.add (symtab->compunit ()->objfile (), obj);
}
/* Create a new symbol table (gdb.Symtab) object that encapsulates the
@@ -467,6 +373,16 @@ symtab_to_symtab_object (struct symtab *symtab)
{
symtab_object *symtab_obj;
+ /* Look if there's already a gdb.Symtab object for given SYMTAB
+ and if so, return it. */
+ if (symtab != nullptr)
+ {
+ symtab_obj = stpy_registry.lookup (symtab->compunit ()->objfile (),
+ symtab);
+ if (symtab_obj != nullptr)
+ return (PyObject*)symtab_obj;
+ }
+
symtab_obj = PyObject_New (symtab_object, &symtab_object_type);
if (symtab_obj)
set_symtab (symtab_obj, symtab);
@@ -479,14 +395,13 @@ symtab_to_symtab_object (struct symtab *symtab)
PyObject *
symtab_and_line_to_sal_object (struct symtab_and_line sal)
{
- gdbpy_ref<sal_object> sal_obj (PyObject_New (sal_object, &sal_object_type));
- if (sal_obj != NULL)
- {
- if (set_sal (sal_obj.get (), sal) < 0)
- return NULL;
- }
+ sal_object *sal_obj;
+
+ sal_obj = PyObject_New (sal_object, &sal_object_type);
+ if (sal_obj != nullptr)
+ set_sal (sal_obj, sal);
- return (PyObject *) sal_obj.release ();
+ return (PyObject *) sal_obj;
}
/* Return struct symtab_and_line reference that is wrapped by this
@@ -560,7 +475,7 @@ PyTypeObject symtab_object_type = {
"gdb.Symtab", /*tp_name*/
sizeof (symtab_object), /*tp_basicsize*/
0, /*tp_itemsize*/
- stpy_dealloc, /*tp_dealloc*/
+ stpy_dealloc, /*tp_dealloc*/
0, /*tp_print*/
0, /*tp_getattr*/
0, /*tp_setattr*/
diff --git a/gdb/python/py-threadevent.c b/gdb/python/py-threadevent.c
index 557f2b7..f0a16a1 100644
--- a/gdb/python/py-threadevent.c
+++ b/gdb/python/py-threadevent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-tui.c b/gdb/python/py-tui.c
index 09f0a60..23a713e 100644
--- a/gdb/python/py-tui.c
+++ b/gdb/python/py-tui.c
@@ -1,6 +1,6 @@
/* TUI windows implemented in Python
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c
index 11a96d5..c546aa7 100644
--- a/gdb/python/py-type.c
+++ b/gdb/python/py-type.c
@@ -1,6 +1,6 @@
/* Python interface to types.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -32,12 +32,6 @@ struct type_object
{
PyObject_HEAD
struct type *type;
-
- /* If a Type object is associated with an objfile, it is kept on a
- doubly-linked list, rooted in the objfile. This lets us copy the
- underlying struct type when the objfile is deleted. */
- struct type_object *prev;
- struct type_object *next;
};
extern PyTypeObject type_object_type
@@ -164,7 +158,7 @@ convert_field (struct type *type, int field)
}
else
{
- if (type->field (field).loc_kind () == FIELD_LOC_KIND_DWARF_BLOCK)
+ if (type->field (field).loc_is_dwarf_block ())
arg = gdbpy_ref<>::new_reference (Py_None);
else
arg = gdb_py_object_from_longest (type->field (field).loc_bitpos ());
@@ -1162,75 +1156,61 @@ typy_richcompare (PyObject *self, PyObject *other, int op)
-/* Deleter that saves types when an objfile is being destroyed. */
-struct typy_deleter
+/* Forward declaration, see below. */
+static void set_type (type_object *obj, struct type *type);
+
+/* Invalidator that saves types when an objfile is being destroyed. */
+struct typy_invalidator
{
void operator() (type_object *obj)
{
- if (!gdb_python_initialized)
- return;
-
- /* This prevents another thread from freeing the objects we're
- operating on. */
- gdbpy_enter enter_py;
-
- copied_types_hash_t copied_types;
-
- while (obj)
+ if (obj->type->is_objfile_owned ())
{
- type_object *next = obj->next;
+ copied_types_hash_t copied_types;
- copied_types.clear ();
- obj->type = copy_type_recursive (obj->type, copied_types);
-
- obj->next = NULL;
- obj->prev = NULL;
-
- obj = next;
+ /* Set a copied (now arch-owned) type. As a side-effect this
+ adds OBJ to per-arch list. We do not need to remove it from
+ per-objfile list since the objfile is going to go completely
+ anyway. */
+ set_type (obj, copy_type_recursive (obj->type, copied_types));
+ }
+ else
+ {
+ obj->type = nullptr;
}
}
};
-static const registry<objfile>::key<type_object, typy_deleter>
- typy_objfile_data_key;
+static const gdbpy_registry<gdbpy_memoizing_registry_storage<type_object,
+ type, &type_object::type, typy_invalidator>> typy_registry;
static void
set_type (type_object *obj, struct type *type)
{
+ gdb_assert (type != nullptr);
+
obj->type = type;
- obj->prev = NULL;
- if (type != nullptr && type->objfile_owner () != nullptr)
- {
- struct objfile *objfile = type->objfile_owner ();
- obj->next = typy_objfile_data_key.get (objfile);
- if (obj->next)
- obj->next->prev = obj;
- typy_objfile_data_key.set (objfile, obj);
- }
+ if (type->objfile_owner () != nullptr)
+ typy_registry.add (type->objfile_owner (), obj);
else
- obj->next = NULL;
+ typy_registry.add (type->arch_owner (), obj);
}
static void
typy_dealloc (PyObject *obj)
{
- type_object *type = (type_object *) obj;
+ type_object *type_obj = (type_object *) obj;
- if (type->prev)
- type->prev->next = type->next;
- else if (type->type != nullptr && type->type->objfile_owner () != nullptr)
+ if (type_obj->type != nullptr)
{
- /* Must reset head of list. */
- struct objfile *objfile = type->type->objfile_owner ();
-
- if (objfile)
- typy_objfile_data_key.set (objfile, type->next);
+ if (type_obj->type->is_objfile_owned ())
+ typy_registry.remove (type_obj->type->objfile_owner (), type_obj);
+ else
+ typy_registry.remove (type_obj->type->arch_owner (), type_obj);
}
- if (type->next)
- type->next->prev = type->prev;
- Py_TYPE (type)->tp_free (type);
+ Py_TYPE (obj)->tp_free (obj);
}
/* Return number of fields ("length" of the field dictionary). */
@@ -1473,6 +1453,16 @@ type_to_type_object (struct type *type)
return gdbpy_handle_gdb_exception (nullptr, except);
}
+ /* Look if there's already a gdb.Type object for given TYPE
+ and if so, return it. */
+ if (type->is_objfile_owned ())
+ type_obj = typy_registry.lookup (type->objfile_owner (), type);
+ else
+ type_obj = typy_registry.lookup (type->arch_owner (), type);
+
+ if (type_obj != nullptr)
+ return (PyObject*)type_obj;
+
type_obj = PyObject_New (type_object, &type_object_type);
if (type_obj)
set_type (type_obj, type);
@@ -1684,7 +1674,7 @@ PyTypeObject type_object_type =
"gdb.Type", /*tp_name*/
sizeof (type_object), /*tp_basicsize*/
0, /*tp_itemsize*/
- typy_dealloc, /*tp_dealloc*/
+ typy_dealloc, /*tp_dealloc*/
0, /*tp_print*/
0, /*tp_getattr*/
0, /*tp_setattr*/
diff --git a/gdb/python/py-uiout.h b/gdb/python/py-uiout.h
index 5f8c530..f6fbd83 100644
--- a/gdb/python/py-uiout.h
+++ b/gdb/python/py-uiout.h
@@ -1,6 +1,6 @@
/* Python implementation of ui_out
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-unwind.c b/gdb/python/py-unwind.c
index af8ee98..d43d7e9 100644
--- a/gdb/python/py-unwind.c
+++ b/gdb/python/py-unwind.c
@@ -1,6 +1,6 @@
/* Python frame unwinder interface.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -929,9 +929,9 @@ frame_unwind_python::sniff (const frame_info_ptr &this_frame,
/* Received UnwindInfo, cache data. */
PyObject *pyo_unwind_info = PyTuple_GET_ITEM (pyo_execute_ret.get (), 0);
- if (PyObject_IsInstance (pyo_unwind_info,
- (PyObject *) &unwind_info_object_type) <= 0)
- error (_("A Unwinder should return gdb.UnwindInfo instance."));
+ if (!PyObject_TypeCheck (pyo_unwind_info, &unwind_info_object_type))
+ error (_("an Unwinder should return gdb.UnwindInfo, not %s."),
+ Py_TYPE (pyo_unwind_info)->tp_name);
{
unwind_info_object *unwind_info =
diff --git a/gdb/python/py-utils.c b/gdb/python/py-utils.c
index 0bc18a6..df8b888 100644
--- a/gdb/python/py-utils.c
+++ b/gdb/python/py-utils.c
@@ -1,6 +1,6 @@
/* General utility routines for GDB/Python.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/py-value.c b/gdb/python/py-value.c
index 02c50b4..8a2e263 100644
--- a/gdb/python/py-value.c
+++ b/gdb/python/py-value.c
@@ -1,6 +1,6 @@
/* Python interface to values.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -60,7 +60,6 @@ struct value_object {
struct value_object *prev;
struct value *value;
PyObject *address;
- PyObject *type;
PyObject *dynamic_type;
PyObject *content_bytes;
};
@@ -84,8 +83,6 @@ valpy_clear_value (value_object *self)
self->value = nullptr;
Py_CLEAR (self->address);
- Py_CLEAR (self->type);
- Py_CLEAR (self->dynamic_type);
Py_CLEAR (self->content_bytes);
}
@@ -438,14 +435,7 @@ valpy_get_type (PyObject *self, void *closure)
{
value_object *obj = (value_object *) self;
- if (!obj->type)
- {
- obj->type = type_to_type_object (obj->value->type ());
- if (!obj->type)
- return NULL;
- }
- Py_INCREF (obj->type);
- return obj->type;
+ return type_to_type_object (obj->value->type ());
}
/* Return dynamic type of the value. */
@@ -454,13 +444,7 @@ static PyObject *
valpy_get_dynamic_type (PyObject *self, void *closure)
{
value_object *obj = (value_object *) self;
- struct type *type = NULL;
-
- if (obj->dynamic_type != NULL)
- {
- Py_INCREF (obj->dynamic_type);
- return obj->dynamic_type;
- }
+ struct type *type = nullptr;
try
{
@@ -493,23 +477,14 @@ valpy_get_dynamic_type (PyObject *self, void *closure)
else if (type->code () == TYPE_CODE_STRUCT)
type = value_rtti_type (val, NULL, NULL, NULL);
else
- {
- /* Re-use object's static type. */
- type = NULL;
- }
+ type = val->type ();
}
catch (const gdb_exception &except)
{
return gdbpy_handle_gdb_exception (nullptr, except);
}
- if (type == NULL)
- obj->dynamic_type = valpy_get_type (self, NULL);
- else
- obj->dynamic_type = type_to_type_object (type);
-
- Py_XINCREF (obj->dynamic_type);
- return obj->dynamic_type;
+ return type_to_type_object (type);
}
/* Implementation of gdb.Value.lazy_string ([encoding] [, length]) ->
@@ -1121,8 +1096,7 @@ valpy_getitem (PyObject *self, PyObject *key)
res_val = value_struct_elt (&tmp, {}, field.get (), NULL,
"struct/class/union");
else if (bitpos >= 0)
- res_val = value_struct_elt_bitpos (&tmp, bitpos, field_type,
- "struct/class/union");
+ res_val = value_struct_elt_bitpos (tmp, bitpos, field_type);
else if (base_class_type != NULL)
{
struct type *val_type;
@@ -1937,15 +1911,14 @@ value_to_value_object (struct value *val)
value_object *val_obj;
val_obj = PyObject_New (value_object, &value_object_type);
- if (val_obj != NULL)
+ if (val_obj != nullptr)
{
val->incref ();
val_obj->value = val;
val_obj->next = nullptr;
val_obj->prev = nullptr;
- val_obj->address = NULL;
- val_obj->type = NULL;
- val_obj->dynamic_type = NULL;
+ val_obj->address = nullptr;
+ val_obj->dynamic_type = nullptr;
val_obj->content_bytes = nullptr;
note_value (val_obj);
}
diff --git a/gdb/python/py-varobj.c b/gdb/python/py-varobj.c
index cbfea26..2d36091 100644
--- a/gdb/python/py-varobj.c
+++ b/gdb/python/py-varobj.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/python/py-xmethods.c b/gdb/python/py-xmethods.c
index 2fae043..deac98f 100644
--- a/gdb/python/py-xmethods.c
+++ b/gdb/python/py-xmethods.c
@@ -1,6 +1,6 @@
/* Support for debug methods in Python.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/python/python-internal.h b/gdb/python/python-internal.h
index c48f260..7f4237e 100644
--- a/gdb/python/python-internal.h
+++ b/gdb/python/python-internal.h
@@ -1,6 +1,6 @@
/* Gdb/Python header for private use by Python module.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -22,6 +22,7 @@
#include "extension.h"
#include "extension-priv.h"
+#include "registry.h"
/* These WITH_* macros are defined by the CPython API checker that
comes with the Python plugin for GCC. See:
@@ -87,6 +88,8 @@
#include <frameobject.h>
#include "py-ref.h"
+static_assert (PY_VERSION_HEX >= 0x03040000);
+
#define Py_TPFLAGS_CHECKTYPES 0
/* If Python.h does not define WITH_THREAD, then the various
@@ -134,17 +137,6 @@ typedef unsigned long gdb_py_ulongest;
#endif /* HAVE_LONG_LONG */
-#if PY_VERSION_HEX < 0x03020000
-typedef long Py_hash_t;
-#endif
-
-/* PyMem_RawMalloc appeared in Python 3.4. For earlier versions, we can just
- fall back to PyMem_Malloc. */
-
-#if PY_VERSION_HEX < 0x03040000
-#define PyMem_RawMalloc PyMem_Malloc
-#endif
-
/* A template variable holding the format character (as for
Py_BuildValue) for a given type. */
template<typename T>
@@ -518,7 +510,8 @@ PyObject *gdbpy_string_to_argv (PyObject *self, PyObject *args);
PyObject *gdbpy_parameter_value (const setting &var);
gdb::unique_xmalloc_ptr<char> gdbpy_parse_command_name
(const char *name, struct cmd_list_element ***base_list,
- struct cmd_list_element **start_list);
+ struct cmd_list_element **start_list,
+ struct cmd_list_element **prefix_cmd = nullptr);
PyObject *gdbpy_register_tui_window (PyObject *self, PyObject *args,
PyObject *kw);
@@ -1145,4 +1138,198 @@ gdbpy_type_ready (PyTypeObject *type, PyObject *mod = nullptr)
# define PyType_Ready POISONED_PyType_Ready
#endif
+/* A class to manage lifecycle of Python objects for objects that are "owned"
+ by an objfile or a gdbarch. It keeps track of Python objects and when
+ the "owning" object (objfile or gdbarch) is about to be freed, ensures that
+ all Python objects "owned" by that object are properly invalidated.
+
+ The actual tracking of "owned" Python objects is handled externally
+ by storage class. Storage object is created for each owning object
+ on demand and it is deleted when owning object is about to be freed.
+
+ The storage class must provide two member types:
+
+ * obj_type - the type of Python object whose lifecycle is managed.
+ * val_type - the type of GDB structure the Python objects are
+ representing.
+
+ It must also provide following methods:
+
+ void add (obj_type *obj);
+ void remove (obj_type *obj);
+
+ Memoizing storage must in addition to method above provide:
+
+ obj_type *lookup (val_type *val);
+
+ Finally it must invalidate all registered Python objects upon deletion. */
+template <typename Storage>
+class gdbpy_registry
+{
+public:
+ using obj_type = typename Storage::obj_type;
+ using val_type = typename Storage::val_type;
+
+ /* Register Python object OBJ as being "owned" by OWNER. When OWNER is
+ about to be freed, OBJ will be invalidated. */
+ template <typename O>
+ void add (O *owner, obj_type *obj) const
+ {
+ get_storage (owner)->add (obj);
+ }
+
+ /* Unregister Python object OBJ. OBJ will no longer be invalidated when
+ OWNER is about to be be freed. */
+ template <typename O>
+ void remove (O *owner, obj_type *obj) const
+ {
+ get_storage (owner)->remove (obj);
+ }
+
+ /* Lookup pre-existing Python object for given VAL. Return such object
+ if found, otherwise return NULL. This method always returns new
+ reference. */
+ template <typename O>
+ obj_type *lookup (O *owner, val_type *val) const
+ {
+ obj_type *obj = get_storage (owner)->lookup (val);
+ Py_XINCREF (obj);
+ return obj;
+ }
+
+private:
+
+ template<typename O>
+ using StorageKey = typename registry<O>::template key<Storage>;
+
+ template<typename O>
+ Storage *get_storage (O *owner, const StorageKey<O> &key) const
+ {
+ Storage *r = key.get (owner);
+ if (r == nullptr)
+ {
+ r = new Storage();
+ key.set (owner, r);
+ }
+ return r;
+ }
+
+ Storage *get_storage (struct objfile* objf) const
+ {
+ return get_storage (objf, m_key_for_objf);
+ }
+
+ Storage *get_storage (struct gdbarch* arch) const
+ {
+ return get_storage (arch, m_key_for_arch);
+ }
+
+ const registry<objfile>::key<Storage> m_key_for_objf;
+ const registry<gdbarch>::key<Storage> m_key_for_arch;
+};
+
+/* Default invalidator for Python objects. */
+template <typename P, typename V, V* P::*val_slot>
+struct gdbpy_default_invalidator
+{
+ void operator() (P *obj)
+ {
+ obj->*val_slot = nullptr;
+ }
+};
+
+/* A "storage" implementation suitable for temporary (on-demand) objects. */
+template <typename P,
+ typename V,
+ V* P::*val_slot,
+ typename Invalidator = gdbpy_default_invalidator<P, V, val_slot>>
+class gdbpy_tracking_registry_storage
+{
+public:
+ using obj_type = P;
+ using val_type = V;
+
+ void add (obj_type *obj)
+ {
+ gdb_assert (obj != nullptr && obj->*val_slot != nullptr);
+
+ m_objects.insert (obj);
+ }
+
+ void remove (obj_type *obj)
+ {
+ gdb_assert (obj != nullptr && obj->*val_slot != nullptr);
+ gdb_assert (m_objects.contains (obj));
+
+ m_objects.erase (obj);
+ }
+
+ ~gdbpy_tracking_registry_storage ()
+ {
+ Invalidator invalidate;
+ gdbpy_enter enter_py;
+
+ for (auto each : m_objects)
+ invalidate (each);
+ m_objects.clear ();
+ }
+
+protected:
+ gdb::unordered_set<obj_type *> m_objects;
+};
+
+/* A "storage" implementation suitable for memoized (interned) Python objects.
+
+ Python objects are memoized (interned) temporarily, meaning that when user
+ drops all their references the Python object is deallocated and removed
+ from storage.
+ */
+template <typename P,
+ typename V,
+ V* P::*val_slot,
+ typename Invalidator = gdbpy_default_invalidator<P, V, val_slot>>
+class gdbpy_memoizing_registry_storage
+{
+public:
+ using obj_type = P;
+ using val_type = V;
+
+ void add (obj_type *obj)
+ {
+ gdb_assert (obj != nullptr && obj->*val_slot != nullptr);
+
+ m_objects[obj->*val_slot] = obj;
+ }
+
+ void remove (obj_type *obj)
+ {
+ gdb_assert (obj != nullptr && obj->*val_slot != nullptr);
+ gdb_assert (m_objects.contains (obj->*val_slot));
+
+ m_objects.erase (obj->*val_slot);
+ }
+
+ obj_type *lookup (val_type *val) const
+ {
+ auto result = m_objects.find (val);
+ if (result != m_objects.end ())
+ return result->second;
+ else
+ return nullptr;
+ }
+
+ ~gdbpy_memoizing_registry_storage ()
+ {
+ Invalidator invalidate;
+ gdbpy_enter enter_py;
+
+ for (auto each : m_objects)
+ invalidate (each.second);
+ m_objects.clear ();
+ }
+
+protected:
+ gdb::unordered_map<val_type *, obj_type *> m_objects;
+};
+
#endif /* GDB_PYTHON_PYTHON_INTERNAL_H */
diff --git a/gdb/python/python.c b/gdb/python/python.c
index 94b1fc9..ff50c42 100644
--- a/gdb/python/python.c
+++ b/gdb/python/python.c
@@ -1,6 +1,6 @@
/* General python/gdb code
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -36,6 +36,7 @@
#include "run-on-main-thread.h"
#include "observable.h"
#include "build-id.h"
+#include "cli/cli-style.h"
#if GDB_SELF_TEST
#include "gdbsupport/selftest.h"
@@ -127,7 +128,8 @@ static bool gdbpy_check_quit_flag (const struct extension_language_defn *);
static enum ext_lang_rc gdbpy_before_prompt_hook
(const struct extension_language_defn *, const char *current_gdb_prompt);
static std::optional<std::string> gdbpy_colorize
- (const std::string &filename, const std::string &contents);
+ (const std::string &filename, const std::string &contents,
+ enum language lang);
static std::optional<std::string> gdbpy_colorize_disasm
(const std::string &content, gdbarch *gdbarch);
static ext_lang_missing_file_result gdbpy_handle_missing_debuginfo
@@ -660,12 +662,14 @@ execute_gdb_command (PyObject *self, PyObject *args, PyObject *kw)
const char *arg;
PyObject *from_tty_obj = nullptr;
PyObject *to_string_obj = nullptr;
- static const char *keywords[] = { "command", "from_tty", "to_string",
- nullptr };
+ PyObject *styling = nullptr;
+ static const char *keywords[]
+ = { "command", "from_tty", "to_string", "styling", nullptr };
- if (!gdb_PyArg_ParseTupleAndKeywords (args, kw, "s|O!O!", keywords, &arg,
+ if (!gdb_PyArg_ParseTupleAndKeywords (args, kw, "s|O!O!O!", keywords, &arg,
&PyBool_Type, &from_tty_obj,
- &PyBool_Type, &to_string_obj))
+ &PyBool_Type, &to_string_obj,
+ &PyBool_Type, &styling))
return nullptr;
bool from_tty = false;
@@ -686,6 +690,15 @@ execute_gdb_command (PyObject *self, PyObject *args, PyObject *kw)
to_string = (cmp != 0);
}
+ bool styling_p = !to_string;
+ if (styling != nullptr)
+ {
+ int cmp = PyObject_IsTrue (styling);
+ if (cmp < 0)
+ return nullptr;
+ styling_p = (cmp != 0);
+ }
+
std::string to_string_res;
scoped_restore preventer = prevent_dont_repeat ();
@@ -745,14 +758,29 @@ execute_gdb_command (PyObject *self, PyObject *args, PyObject *kw)
scoped_restore save_uiout = make_scoped_restore (&current_uiout);
+ /* If the Python 'styling' argument was False then temporarily
+ disable styling. Otherwise, don't do anything, styling could
+ already be disabled for some other reason, we shouldn't override
+ that and force styling on. */
+ std::optional<scoped_disable_styling> disable_styling;
+ if (!styling_p)
+ disable_styling.emplace ();
+
/* Use the console interpreter uiout to have the same print format
for console or MI. */
interp = interp_lookup (current_ui, "console");
current_uiout = interp->interp_ui_out ();
if (to_string)
- to_string_res = execute_control_commands_to_string (lines.get (),
- from_tty);
+ {
+ /* Pass 'true' here to always request styling, however, if
+ the scoped_disable_styling disabled styling, or the user
+ has globally disabled styling, then the output will not be
+ styled. */
+ to_string_res
+ = execute_control_commands_to_string (lines.get (), from_tty,
+ true);
+ }
else
execute_control_commands (lines.get (), from_tty);
}
@@ -772,7 +800,8 @@ execute_gdb_command (PyObject *self, PyObject *args, PyObject *kw)
}
if (to_string)
- return PyUnicode_FromString (to_string_res.c_str ());
+ return PyUnicode_Decode (to_string_res.c_str (), to_string_res.size (),
+ host_charset (), nullptr);
Py_RETURN_NONE;
}
@@ -1267,7 +1296,8 @@ gdbpy_before_prompt_hook (const struct extension_language_defn *extlang,
/* This is the extension_language_ops.colorize "method". */
static std::optional<std::string>
-gdbpy_colorize (const std::string &filename, const std::string &contents)
+gdbpy_colorize (const std::string &filename, const std::string &contents,
+ enum language lang)
{
if (!gdb_python_initialized)
return {};
@@ -1301,6 +1331,13 @@ gdbpy_colorize (const std::string &filename, const std::string &contents)
return {};
}
+ gdbpy_ref<> lang_arg (PyUnicode_FromString (language_str (lang)));
+ if (lang_arg == nullptr)
+ {
+ gdbpy_print_stack ();
+ return {};
+ }
+
/* The pygments library, which is what we currently use for applying
styling, is happy to take input as a bytes object, and to figure out
the encoding for itself. This removes the need for us to figure out
@@ -1321,6 +1358,7 @@ gdbpy_colorize (const std::string &filename, const std::string &contents)
gdbpy_ref<> result (PyObject_CallFunctionObjArgs (hook.get (),
fname_arg.get (),
contents_arg.get (),
+ lang_arg.get (),
nullptr));
if (result == nullptr)
{
@@ -1574,16 +1612,53 @@ gdbpy_flush (PyObject *self, PyObject *args, PyObject *kw)
{
case 1:
{
- gdb_flush (gdb_stderr);
+ if (gdb_stderr != nullptr)
+ gdb_flush (gdb_stderr);
break;
}
case 2:
{
- gdb_flush (gdb_stdlog);
+ if (gdb_stdlog != nullptr)
+ gdb_flush (gdb_stdlog);
break;
}
default:
- gdb_flush (gdb_stdout);
+ if (gdb_stdout != nullptr)
+ gdb_flush (gdb_stdout);
+ }
+
+ Py_RETURN_NONE;
+}
+
+/* Implement gdb.warning(). Takes a single text string argument and emit a
+ warning using GDB's 'warning' function. The input text string must not
+ be empty. */
+
+static PyObject *
+gdbpy_warning (PyObject *self, PyObject *args, PyObject *kw)
+{
+ const char *text;
+ static const char *keywords[] = { "text", nullptr };
+
+ if (!gdb_PyArg_ParseTupleAndKeywords (args, kw, "s", keywords, &text))
+ return nullptr;
+
+ if (strlen (text) == 0)
+ {
+ PyErr_SetString (PyExc_ValueError,
+ _("Empty text string passed to gdb.warning"));
+ return nullptr;
+ }
+
+ try
+ {
+ warning ("%s", text);
+ }
+ catch (const gdb_exception &ex)
+ {
+ /* The warning() call probably cannot throw an exception. But just
+ in case it ever does. */
+ return gdbpy_handle_gdb_exception (nullptr, ex);
}
Py_RETURN_NONE;
@@ -2405,7 +2480,7 @@ py_initialize ()
/foo/lib/pythonX.Y/...
This must be done before calling Py_Initialize. */
gdb::unique_xmalloc_ptr<char> progname
- (concat (ldirname (python_libdir.c_str ()).c_str (), SLASH_STRING, "bin",
+ (concat (gdb_ldirname (python_libdir.c_str ()).c_str (), SLASH_STRING, "bin",
SLASH_STRING, "python", (char *) NULL));
{
@@ -2634,7 +2709,7 @@ test_python ()
#undef CHECK_OUTPUT
-} // namespace selftests
+} /* namespace selftests */
#endif /* GDB_SELF_TEST */
#endif /* HAVE_PYTHON */
@@ -3083,6 +3158,12 @@ Return the current print options." },
METH_VARARGS | METH_KEYWORDS,
"notify_mi (name, data) -> None\n\
Output async record to MI channels if any." },
+
+ { "warning", (PyCFunction) gdbpy_warning,
+ METH_VARARGS | METH_KEYWORDS,
+ "warning (text) -> None\n\
+Print a warning." },
+
{NULL, NULL, 0, NULL}
};
diff --git a/gdb/python/python.h b/gdb/python/python.h
index e803285..f564af7 100644
--- a/gdb/python/python.h
+++ b/gdb/python/python.h
@@ -1,6 +1,6 @@
/* Python/gdb header for generic use in gdb
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/quick-symbol.h b/gdb/quick-symbol.h
index 9dbaf49..9db1f18 100644
--- a/gdb/quick-symbol.h
+++ b/gdb/quick-symbol.h
@@ -1,6 +1,6 @@
/* "Quick" symbol functions
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -32,33 +32,36 @@ enum block_search_flag_values
DEF_ENUM_FLAGS_TYPE (enum block_search_flag_values, block_search_flags);
-/* Callback for quick_symbol_functions->map_symbol_filenames. */
+/* Callback for quick_symbol_functions::map_symbol_filenames. */
-typedef void (symbol_filename_ftype) (const char *filename,
- const char *fullname);
+using symbol_filename_listener
+ = gdb::function_view<void (const char *filename, const char *fullname)>;
-/* Callback for quick_symbol_functions->expand_symtabs_matching
+/* Callback for quick_symbol_functions::expand_symtabs_matching
to match a file name. */
-typedef bool (expand_symtabs_file_matcher_ftype) (const char *filename,
- bool basenames);
+using expand_symtabs_file_matcher
+ = gdb::function_view<bool (const char *filename, bool basenames)>;
-/* Callback for quick_symbol_functions->expand_symtabs_matching
+/* Callback for quick_symbol_functions::expand_symtabs_matching
to match a symbol name. */
-typedef bool (expand_symtabs_symbol_matcher_ftype) (const char *name);
+using expand_symtabs_symbol_matcher
+ = gdb::function_view<bool (const char *name)>;
-/* Callback for quick_symbol_functions->expand_symtabs_matching
+/* Callback for quick_symbol_functions::expand_symtabs_matching
to match a language. */
-typedef bool (expand_symtabs_lang_matcher_ftype) (enum language lang);
+using expand_symtabs_lang_matcher
+ = gdb::function_view<bool (enum language lang)>;
-/* Callback for quick_symbol_functions->expand_symtabs_matching
+/* Callback for quick_symbol_functions::expand_symtabs_matching
to be called after a symtab has been expanded. If this returns
true, more symtabs are checked; if it returns false, iteration
stops. */
-typedef bool (expand_symtabs_exp_notify_ftype) (compunit_symtab *symtab);
+using expand_symtabs_expansion_listener
+ = gdb::function_view<bool (compunit_symtab *symtab)>;
/* The "quick" symbol functions exist so that symbol readers can
avoiding an initial read of all the symbols. For example, symbol
@@ -153,21 +156,19 @@ struct quick_symbol_functions
Note that if SYMBOL_MATCHER is non-NULL, then LOOKUP_NAME must
also be provided.
- Otherwise, the symbol's symbol table is expanded and the
- notification function is called. If the notification function
- returns false, execution stops and this method returns false.
- Otherwise, more files are considered. This method will return
- true if all calls to the notification function return true. */
+ Otherwise, the symbol's symbol table is expanded and EXPANSION_NOTIFY is
+ called. If EXPANSION_NOTIFY returns false, execution stops and this method
+ returns false. Otherwise, more files are considered. This method returns
+ true if all calls to EXPANSION_NOTIFY return true. */
virtual bool expand_symtabs_matching
(struct objfile *objfile,
- gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
+ expand_symtabs_file_matcher file_matcher,
const lookup_name_info *lookup_name,
- gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
- gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
+ expand_symtabs_symbol_matcher symbol_matcher,
+ expand_symtabs_expansion_listener expansion_notify,
block_search_flags search_flags,
domain_search_flags domain,
- gdb::function_view<expand_symtabs_lang_matcher_ftype> lang_matcher
- = nullptr) = 0;
+ expand_symtabs_lang_matcher lang_matcher = nullptr) = 0;
/* Return the comp unit from OBJFILE that contains PC and
SECTION. Return NULL if there is no such compunit. This
@@ -187,14 +188,14 @@ struct quick_symbol_functions
virtual struct compunit_symtab *find_compunit_symtab_by_address
(struct objfile *objfile, CORE_ADDR address) = 0;
- /* Call a callback for every file defined in OBJFILE whose symtab is
- not already read in. FUN is the callback. It is passed the
- file's FILENAME and the file's FULLNAME (if need_fullname is
- non-zero). */
- virtual void map_symbol_filenames
- (struct objfile *objfile,
- gdb::function_view<symbol_filename_ftype> fun,
- bool need_fullname) = 0;
+ /* Call FUN for every file defined in OBJFILE whose symtab is
+ not already read in.
+
+ FUN is passed the file's FILENAME and the file's FULLNAME (if need_fullname
+ is true). */
+ virtual void map_symbol_filenames (objfile *objfile,
+ symbol_filename_listener fun,
+ bool need_fullname) = 0;
/* Compute the name and language of the main function for the given
objfile. Normally this is done during symbol reading, but this
diff --git a/gdb/ravenscar-thread.c b/gdb/ravenscar-thread.c
index 47db72b..45205a0 100644
--- a/gdb/ravenscar-thread.c
+++ b/gdb/ravenscar-thread.c
@@ -1,6 +1,6 @@
/* Ada Ravenscar thread support.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -30,7 +30,7 @@
#include "top.h"
#include "regcache.h"
#include "objfiles.h"
-#include <unordered_map>
+#include "gdbsupport/unordered_map.h"
/* This module provides support for "Ravenscar" tasks (Ada) when
debugging on bare-metal targets.
@@ -194,7 +194,7 @@ private:
needed because sometimes the runtime will report an active task
that hasn't yet been put on the list of tasks that is read by
ada-tasks.c. */
- std::unordered_map<ULONGEST, int> m_cpu_map;
+ gdb::unordered_map<ULONGEST, int> m_cpu_map;
};
/* Return true iff PTID corresponds to a ravenscar task. */
@@ -503,7 +503,7 @@ ravenscar_thread_target::pid_to_str (ptid_t ptid)
return beneath ()->pid_to_str (ptid);
return string_printf ("Ravenscar Thread 0x%s",
- phex_nz (ptid.tid (), sizeof (ULONGEST)));
+ phex_nz (ptid.tid ()));
}
CORE_ADDR
diff --git a/gdb/ravenscar-thread.h b/gdb/ravenscar-thread.h
index 046b357..875d1e5 100644
--- a/gdb/ravenscar-thread.h
+++ b/gdb/ravenscar-thread.h
@@ -1,6 +1,6 @@
/* Ada Ravenscar thread support.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c
index d9f3e91..5dd3f1e 100644
--- a/gdb/record-btrace.c
+++ b/gdb/record-btrace.c
@@ -1,6 +1,6 @@
/* Branch trace support for GDB, the GNU debugger.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>
@@ -132,10 +132,7 @@ public:
bool can_execute_reverse () override;
bool stopped_by_sw_breakpoint () override;
- bool supports_stopped_by_sw_breakpoint () override;
-
bool stopped_by_hw_breakpoint () override;
- bool supports_stopped_by_hw_breakpoint () override;
enum exec_direction_kind execution_direction () override;
void prepare_to_generate_core () override;
@@ -2581,7 +2578,7 @@ record_btrace_maybe_mark_async_event
const std::vector<thread_info *> &no_history)
{
bool more_moving = !moving.empty ();
- bool more_no_history = !no_history.empty ();;
+ bool more_no_history = !no_history.empty ();
if (!more_moving && !more_no_history)
return;
@@ -2773,18 +2770,6 @@ record_btrace_target::stopped_by_sw_breakpoint ()
return this->beneath ()->stopped_by_sw_breakpoint ();
}
-/* The supports_stopped_by_sw_breakpoint method of target
- record-btrace. */
-
-bool
-record_btrace_target::supports_stopped_by_sw_breakpoint ()
-{
- if (record_is_replaying (minus_one_ptid))
- return true;
-
- return this->beneath ()->supports_stopped_by_sw_breakpoint ();
-}
-
/* The stopped_by_sw_breakpoint method of target record-btrace. */
bool
@@ -2800,18 +2785,6 @@ record_btrace_target::stopped_by_hw_breakpoint ()
return this->beneath ()->stopped_by_hw_breakpoint ();
}
-/* The supports_stopped_by_hw_breakpoint method of target
- record-btrace. */
-
-bool
-record_btrace_target::supports_stopped_by_hw_breakpoint ()
-{
- if (record_is_replaying (minus_one_ptid))
- return true;
-
- return this->beneath ()->supports_stopped_by_hw_breakpoint ();
-}
-
/* The update_thread_list method of target record-btrace. */
void
diff --git a/gdb/record-btrace.h b/gdb/record-btrace.h
index 5ab3208..cd9eb64 100644
--- a/gdb/record-btrace.h
+++ b/gdb/record-btrace.h
@@ -1,6 +1,6 @@
/* Branch trace support for GDB, the GNU debugger.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <tim.wiederhake@intel.com>
diff --git a/gdb/record-full.c b/gdb/record-full.c
index 6d05651..b52fb06 100644
--- a/gdb/record-full.c
+++ b/gdb/record-full.c
@@ -1,6 +1,6 @@
/* Process record and replay target for GDB, the GNU debugger.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -1647,7 +1647,7 @@ record_full_target::store_registers (struct regcache *regcache, int regno)
/* "xfer_partial" method. Behavior is conditional on
RECORD_FULL_IS_REPLAY.
- In replay mode, we cannot write memory unles we are willing to
+ In replay mode, we cannot write memory unless we are willing to
invalidate the record/replay log from this point forward. */
enum target_xfer_status
@@ -2368,7 +2368,7 @@ record_full_restore (void)
bfdcore_read (current_program_space->core_bfd (), osec, &magic,
sizeof (magic), &bfd_offset);
if (magic != RECORD_FULL_FILE_MAGIC)
- error (_("Version mis-match or file format error in core file %s."),
+ error (_("Version mismatch or file format error in core file %s."),
bfd_get_filename (current_program_space->core_bfd ()));
if (record_debug)
gdb_printf (gdb_stdlog,
diff --git a/gdb/record-full.h b/gdb/record-full.h
index 0852d2a..7be48eb 100644
--- a/gdb/record-full.h
+++ b/gdb/record-full.h
@@ -1,6 +1,6 @@
/* Process record and replay target for GDB, the GNU debugger.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/record.c b/gdb/record.c
index 97a4e46..440c5e9 100644
--- a/gdb/record.c
+++ b/gdb/record.c
@@ -1,6 +1,6 @@
/* Process record and replay target for GDB, the GNU debugger.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/record.h b/gdb/record.h
index 049477c..c8594cc 100644
--- a/gdb/record.h
+++ b/gdb/record.h
@@ -1,6 +1,6 @@
/* Process record and replay target for GDB, the GNU debugger.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/regcache-dump.c b/gdb/regcache-dump.c
index 2719c92..39dd8c5 100644
--- a/gdb/regcache-dump.c
+++ b/gdb/regcache-dump.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1986-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/regcache.c b/gdb/regcache.c
index c980b6f..e3d435f 100644
--- a/gdb/regcache.c
+++ b/gdb/regcache.c
@@ -1,6 +1,6 @@
/* Cache and manage the values of registers for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -28,6 +28,7 @@
#include "reggroups.h"
#include "observable.h"
#include "regset.h"
+#include "gdbsupport/unordered_map.h"
#include <unordered_map>
#include "cli/cli-cmds.h"
@@ -349,12 +350,12 @@ using ptid_regcache_map
/* Type holding regcaches for a given pid. */
-using pid_ptid_regcache_map = std::unordered_map<int, ptid_regcache_map>;
+using pid_ptid_regcache_map = gdb::unordered_map<int, ptid_regcache_map>;
/* Type holding regcaches for a given target. */
using target_pid_ptid_regcache_map
- = std::unordered_map<process_stratum_target *, pid_ptid_regcache_map>;
+ = gdb::unordered_map<process_stratum_target *, pid_ptid_regcache_map>;
/* Global structure containing the existing regcaches. */
@@ -1910,32 +1911,13 @@ public:
{}
};
-/* Return true if regcache::cooked_{read,write}_test should be skipped for
- GDBARCH. */
-
-static bool
-selftest_skiparch (struct gdbarch *gdbarch)
-{
- const char *name = gdbarch_bfd_arch_info (gdbarch)->printable_name;
-
- /* Avoid warning:
- Running selftest regcache::cooked_{read,write}_test::m68hc11.
- warning: No frame soft register found in the symbol table.
- Stack backtrace will not work.
- We could instead capture the output and then filter out the warning, but
- that seems more trouble than it's worth. */
- return (strcmp (name, "m68hc11") == 0
- || strcmp (name, "m68hc12") == 0
- || strcmp (name, "m68hc12:HCS12") == 0);
-}
-
/* Test regcache::cooked_read gets registers from raw registers and
memory instead of target to_{fetch,store}_registers. */
static void
cooked_read_test (struct gdbarch *gdbarch)
{
- if (selftest_skiparch (gdbarch))
+ if (selftest_skip_warning_arch (gdbarch))
return;
scoped_mock_context<target_ops_no_register> mockctx (gdbarch);
@@ -2073,7 +2055,7 @@ cooked_read_test (struct gdbarch *gdbarch)
static void
cooked_write_test (struct gdbarch *gdbarch)
{
- if (selftest_skiparch (gdbarch))
+ if (selftest_skip_warning_arch (gdbarch))
return;
/* Create a mock environment. A process_stratum target pushed. */
@@ -2228,7 +2210,7 @@ regcache_thread_ptid_changed ()
gdb_assert (regcaches.empty ());
}
-} // namespace selftests
+} /* namespace selftests */
#endif /* GDB_SELF_TEST */
void _initialize_regcache ();
diff --git a/gdb/regcache.h b/gdb/regcache.h
index bbb17c8..7eb49b3 100644
--- a/gdb/regcache.h
+++ b/gdb/regcache.h
@@ -1,6 +1,6 @@
/* Cache and manage the values of registers for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/regformats/regdat.sh b/gdb/regformats/regdat.sh
index 49aa02a..7392bc8 100755
--- a/gdb/regformats/regdat.sh
+++ b/gdb/regformats/regdat.sh
@@ -1,7 +1,7 @@
#!/bin/sh -u
# Register protocol definitions for GDB, the GNU debugger.
-# Copyright (C) 2001-2024 Free Software Foundation, Inc.
+# Copyright (C) 2001-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
diff --git a/gdb/regformats/regdef.h b/gdb/regformats/regdef.h
index 8715229..944e577 100644
--- a/gdb/regformats/regdef.h
+++ b/gdb/regformats/regdef.h
@@ -1,5 +1,5 @@
/* Register protocol definition structures for the GNU Debugger
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/reggroups.c b/gdb/reggroups.c
index c28e19a..c931434 100644
--- a/gdb/reggroups.c
+++ b/gdb/reggroups.c
@@ -1,6 +1,6 @@
/* Register groupings for GDB, the GNU debugger.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
diff --git a/gdb/reggroups.h b/gdb/reggroups.h
index 24f81e4..b89bcc0 100644
--- a/gdb/reggroups.h
+++ b/gdb/reggroups.h
@@ -1,6 +1,6 @@
/* Register groupings for GDB, the GNU debugger.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
diff --git a/gdb/registry.h b/gdb/registry.h
index 3221654..944d02c 100644
--- a/gdb/registry.h
+++ b/gdb/registry.h
@@ -1,6 +1,6 @@
/* Macros for general registry objects.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/regset.h b/gdb/regset.h
index 44eaf14..f161640 100644
--- a/gdb/regset.h
+++ b/gdb/regset.h
@@ -1,6 +1,6 @@
/* Manage register sets.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/remote-fileio.c b/gdb/remote-fileio.c
index fe6ac17..7f80de8 100644
--- a/gdb/remote-fileio.c
+++ b/gdb/remote-fileio.c
@@ -1,6 +1,6 @@
/* Remote File-I/O communications
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/remote-fileio.h b/gdb/remote-fileio.h
index d406895..dbb295f 100644
--- a/gdb/remote-fileio.h
+++ b/gdb/remote-fileio.h
@@ -1,6 +1,6 @@
/* Remote File-I/O communications
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/remote-notif.c b/gdb/remote-notif.c
index d16f8d7..053591c 100644
--- a/gdb/remote-notif.c
+++ b/gdb/remote-notif.c
@@ -1,6 +1,6 @@
/* Remote notification in GDB protocol
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/remote-notif.h b/gdb/remote-notif.h
index cca26b0..bca5bd8 100644
--- a/gdb/remote-notif.h
+++ b/gdb/remote-notif.h
@@ -1,6 +1,6 @@
/* Remote notification in GDB protocol
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/remote-sim.c b/gdb/remote-sim.c
index 8e2a54f..fc2c900 100644
--- a/gdb/remote-sim.c
+++ b/gdb/remote-sim.c
@@ -1,6 +1,6 @@
/* Generic remote debugging interface for simulators.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
Steve Chamberlain (sac@cygnus.com).
diff --git a/gdb/remote.c b/gdb/remote.c
index 1318352..8c3040f 100644
--- a/gdb/remote.c
+++ b/gdb/remote.c
@@ -1,6 +1,6 @@
/* Remote target communications for serial-line targets in custom GDB protocol
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -77,10 +77,10 @@
#include "gdbsupport/search.h"
#include <algorithm>
#include <iterator>
-#include <unordered_map>
#include "async-event.h"
#include "gdbsupport/selftest.h"
#include "cli/cli-style.h"
+#include "gdbsupport/remote-args.h"
/* The remote target. */
@@ -251,6 +251,7 @@ enum {
PACKET_vFile_readlink,
PACKET_vFile_fstat,
PACKET_vFile_stat,
+ PACKET_vFile_lstat,
PACKET_qXfer_auxv,
PACKET_qXfer_features,
PACKET_qXfer_exec_file,
@@ -700,7 +701,7 @@ public: /* data */
/* Contains the regnums of the expedited registers in the last stop
reply packet. */
- std::set<int> last_seen_expedited_registers;
+ gdb::unordered_set<int> last_seen_expedited_registers;
private:
/* Asynchronous signal handle registered as event loop source for
@@ -710,7 +711,7 @@ private:
/* Mapping of remote protocol data for each gdbarch. Usually there
is only one entry here, though we may see more with stubs that
support multi-process. */
- std::unordered_map<struct gdbarch *, remote_arch_state>
+ gdb::unordered_map<struct gdbarch *, remote_arch_state>
m_arch_states;
};
@@ -1023,8 +1024,8 @@ public:
int fileio_fstat (int fd, struct stat *sb, fileio_error *target_errno) override;
- int fileio_stat (struct inferior *inf, const char *filename,
- struct stat *sb, fileio_error *target_errno) override;
+ int fileio_lstat (struct inferior *inf, const char *filename,
+ struct stat *sb, fileio_error *target_errno) override;
int fileio_close (int fd, fileio_error *target_errno) override;
@@ -1623,6 +1624,12 @@ struct remote_thread_info : public private_thread_info
std::string name;
int core = -1;
+ /* The string representation for the thread's id.
+
+ The target specifies this if they want to display the thread id
+ in a specific way. If empty, the default approach is used. */
+ std::string id_str;
+
/* Thread handle, perhaps a pthread_t or thread_t value, stored as a
sequence of bytes. */
gdb::byte_vector thread_handle;
@@ -4030,6 +4037,9 @@ struct thread_item
/* The thread's name. */
std::string name;
+ /* The thread's id, translated to a string for displaying. */
+ std::string id_str;
+
/* The core the thread was running on. -1 if not known. */
int core = -1;
@@ -4156,6 +4166,10 @@ start_thread (struct gdb_xml_parser *parser,
if (attr != NULL)
item.name = (const char *) attr->value.get ();
+ attr = xml_find_attribute (attributes, "id_str");
+ if (attr != nullptr)
+ item.id_str = (const char *) attr->value.get ();
+
attr = xml_find_attribute (attributes, "handle");
if (attr != NULL)
item.thread_handle = hex2bin ((const char *) attr->value.get ());
@@ -4177,6 +4191,7 @@ const struct gdb_xml_attribute thread_attributes[] = {
{ "id", GDB_XML_AF_NONE, NULL, NULL },
{ "core", GDB_XML_AF_OPTIONAL, gdb_xml_parse_attr_ulongest, NULL },
{ "name", GDB_XML_AF_OPTIONAL, NULL, NULL },
+ { "id_str", GDB_XML_AF_OPTIONAL, NULL, NULL },
{ "handle", GDB_XML_AF_OPTIONAL, NULL, NULL },
{ NULL, GDB_XML_AF_NONE, NULL, NULL }
};
@@ -4361,6 +4376,7 @@ remote_target::update_thread_list ()
info->core = item.core;
info->extra = std::move (item.extra);
info->name = std::move (item.name);
+ info->id_str = std::move (item.id_str);
info->thread_handle = std::move (item.thread_handle);
}
}
@@ -4929,7 +4945,7 @@ remote_target::process_initial_stop_replies (int from_tty)
event_ptid = target_wait (waiton_ptid, &ws, TARGET_WNOHANG);
if (remote_debug)
- print_target_wait_results (waiton_ptid, event_ptid, ws);
+ print_target_wait_results (waiton_ptid, event_ptid, ws, this);
switch (ws.kind ())
{
@@ -9021,7 +9037,7 @@ remote_target::process_g_packet (struct regcache *regcache)
/* Reply describes registers byte by byte, each byte encoded as two
hex characters. Suck them all up, then supply them to the
- register cacheing/storage mechanism. */
+ register caching/storage mechanism. */
p = rs->buf.data ();
for (i = 0; i < rsa->sizeof_g_packet; i++)
@@ -10821,16 +10837,15 @@ remote_target::extended_remote_run (const std::string &args)
if (!args.empty ())
{
- int i;
+ std::vector<std::string> split_args = gdb::remote_args::split (args);
- gdb_argv argv (args.c_str ());
- for (i = 0; argv[i] != NULL; i++)
+ for (const auto &a : split_args)
{
- if (strlen (argv[i]) * 2 + 1 + len >= get_remote_packet_size ())
+ if (a.size () * 2 + 1 + len >= get_remote_packet_size ())
error (_("Argument list too long for run packet"));
rs->buf[len++] = ';';
- len += 2 * bin2hex ((gdb_byte *) argv[i], rs->buf.data () + len,
- strlen (argv[i]));
+ len += 2 * bin2hex ((gdb_byte *) a.c_str (), rs->buf.data () + len,
+ a.size ());
}
}
@@ -11636,7 +11651,7 @@ remote_target::remote_write_qxfer (const char *object_name,
i = snprintf (rs->buf.data (), max_size,
"qXfer:%s:write:%s:%s:",
object_name, annex ? annex : "",
- phex_nz (offset, sizeof offset));
+ phex_nz (offset));
max_size -= (i + 1);
/* Escape as much data as fits into rs->buf. */
@@ -11701,8 +11716,8 @@ remote_target::remote_read_qxfer (const char *object_name,
snprintf (rs->buf.data (), get_remote_packet_size () - 4,
"qXfer:%s:read:%s:%s,%s",
object_name, annex ? annex : "",
- phex_nz (offset, sizeof offset),
- phex_nz (n, sizeof n));
+ phex_nz (offset),
+ phex_nz (n));
i = putpkt (rs->buf);
if (i < 0)
return TARGET_XFER_E_IO;
@@ -12000,7 +12015,7 @@ remote_target::search_memory (CORE_ADDR start_addr, ULONGEST search_space_len,
i = snprintf (rs->buf.data (), max_size,
"qSearch:memory:%s;%s;",
phex_nz (start_addr, addr_size),
- phex_nz (search_space_len, sizeof (search_space_len)));
+ phex_nz (search_space_len));
max_size -= (i + 1);
/* Escape as much data as fits into rs->buf. */
@@ -12057,6 +12072,9 @@ remote_target::rcmd (const char *command, struct ui_file *outbuf)
if (command == NULL)
command = "";
+ /* It might be important for this command to know the current thread. */
+ set_general_thread (inferior_ptid);
+
/* The query prefix. */
strcpy (rs->buf.data (), "qRcmd,");
p = strchr (rs->buf.data (), '\0');
@@ -12392,7 +12410,16 @@ remote_target::pid_to_str (ptid_t ptid)
{
if (magic_null_ptid == ptid)
return "Thread <main>";
- else if (m_features.remote_multi_process_p ())
+
+ thread_info *thread = this->find_thread (ptid);
+ if ((thread != nullptr) && (thread->priv != nullptr))
+ {
+ remote_thread_info *priv = get_remote_thread_info (thread);
+ if (!priv->id_str.empty ())
+ return priv->id_str;
+ }
+
+ if (m_features.remote_multi_process_p ())
if (ptid.lwp () == 0)
return normal_pid_to_str (ptid);
else
@@ -12449,9 +12476,6 @@ remote_target::get_thread_local_address (ptid_t ptid, CORE_ADDR lm,
return 0;
}
-/* Provide thread local base, i.e. Thread Information Block address.
- Returns 1 if ptid is found and thread_local_base is non zero. */
-
bool
remote_target::get_tib_address (ptid_t ptid, CORE_ADDR *addr)
{
@@ -12478,14 +12502,12 @@ remote_target::get_tib_address (ptid_t ptid, CORE_ADDR *addr)
return true;
}
else if (result.status () == PACKET_UNKNOWN)
- error (_("Remote target doesn't support qGetTIBAddr packet"));
+ return false;
else
error (_("Remote target failed to process qGetTIBAddr request, %s"),
result.err_msg ());
}
- else
- error (_("qGetTIBAddr not supported or disabled on this target"));
- /* Not reached. */
+
return false;
}
@@ -13128,7 +13150,7 @@ remote_target::fileio_readlink (struct inferior *inf, const char *filename,
return ret;
}
-/* Helper function to handle ::fileio_fstat and ::fileio_stat result
+/* Helper function to handle ::fileio_fstat and ::fileio_lstat result
processing. When this function is called the remote syscall has been
performed and we know we didn't get an error back.
@@ -13139,10 +13161,10 @@ remote_target::fileio_readlink (struct inferior *inf, const char *filename,
data) is to be placed in ST. */
static int
-fileio_process_fstat_and_stat_reply (const char *attachment,
- int attachment_len,
- int expected_len,
- struct stat *st)
+fileio_process_fstat_and_lstat_reply (const char *attachment,
+ int attachment_len,
+ int expected_len,
+ struct stat *st)
{
struct fio_stat fst;
@@ -13204,15 +13226,15 @@ remote_target::fileio_fstat (int fd, struct stat *st, fileio_error *remote_errno
return 0;
}
- return fileio_process_fstat_and_stat_reply (attachment, attachment_len,
- ret, st);
+ return fileio_process_fstat_and_lstat_reply (attachment, attachment_len,
+ ret, st);
}
-/* Implementation of to_fileio_stat. */
+/* Implementation of to_fileio_lstat. */
int
-remote_target::fileio_stat (struct inferior *inf, const char *filename,
- struct stat *st, fileio_error *remote_errno)
+remote_target::fileio_lstat (struct inferior *inf, const char *filename,
+ struct stat *st, fileio_error *remote_errno)
{
struct remote_state *rs = get_remote_state ();
char *p = rs->buf.data ();
@@ -13221,14 +13243,14 @@ remote_target::fileio_stat (struct inferior *inf, const char *filename,
if (remote_hostio_set_filesystem (inf, remote_errno) != 0)
return {};
- remote_buffer_add_string (&p, &left, "vFile:stat:");
+ remote_buffer_add_string (&p, &left, "vFile:lstat:");
remote_buffer_add_bytes (&p, &left, (const gdb_byte *) filename,
strlen (filename));
int attachment_len;
const char *attachment;
- int ret = remote_hostio_send_command (p - rs->buf.data (), PACKET_vFile_stat,
+ int ret = remote_hostio_send_command (p - rs->buf.data (), PACKET_vFile_lstat,
remote_errno, &attachment,
&attachment_len);
@@ -13237,8 +13259,8 @@ remote_target::fileio_stat (struct inferior *inf, const char *filename,
if (ret < 0)
return ret;
- return fileio_process_fstat_and_stat_reply (attachment, attachment_len,
- ret, st);
+ return fileio_process_fstat_and_lstat_reply (attachment, attachment_len,
+ ret, st);
}
/* Implementation of to_filesystem_is_local. */
@@ -13742,7 +13764,7 @@ remote_target::download_tracepoint (struct bp_location *loc)
encode_actions_rsp (loc, &tdp_actions, &stepping_actions);
tpaddr = loc->address;
- strcpy (addrbuf, phex (tpaddr, sizeof (CORE_ADDR)));
+ strcpy (addrbuf, phex (tpaddr));
ret = snprintf (buf.data (), buf.size (), "QTDP:%x:%s:%c:%lx:%x",
b->number, addrbuf, /* address */
(b->enable_state == bp_enabled ? 'E' : 'D'),
@@ -14006,7 +14028,7 @@ remote_target::enable_tracepoint (struct bp_location *location)
xsnprintf (rs->buf.data (), get_remote_packet_size (), "QTEnable:%x:%s",
location->owner->number,
- phex (location->address, sizeof (CORE_ADDR)));
+ phex (location->address));
putpkt (rs->buf);
remote_get_noisy_reply ();
if (rs->buf[0] == '\0')
@@ -14022,7 +14044,7 @@ remote_target::disable_tracepoint (struct bp_location *location)
xsnprintf (rs->buf.data (), get_remote_packet_size (), "QTDisable:%x:%s",
location->owner->number,
- phex (location->address, sizeof (CORE_ADDR)));
+ phex (location->address));
putpkt (rs->buf);
remote_get_noisy_reply ();
if (rs->buf[0] == '\0')
@@ -15548,7 +15570,7 @@ remote_target::commit_requested_thread_options ()
*obuf_p++ = ';';
obuf_p += xsnprintf (obuf_p, obuf_endp - obuf_p, "%s",
- phex_nz (options, sizeof (options)));
+ phex_nz (options));
if (tp->ptid != magic_null_ptid)
{
*obuf_p++ = ':';
@@ -15787,8 +15809,8 @@ create_fetch_memtags_request (gdb::char_vector &packet, CORE_ADDR address,
std::string request = string_printf ("qMemTags:%s,%s:%s",
phex_nz (address, addr_size),
- phex_nz (len, sizeof (len)),
- phex_nz (type, sizeof (type)));
+ phex_nz (len),
+ phex_nz (type));
strcpy (packet.data (), request.c_str ());
}
@@ -15822,8 +15844,8 @@ create_store_memtags_request (gdb::char_vector &packet, CORE_ADDR address,
/* Put together the main packet, address and length. */
std::string request = string_printf ("QMemTags:%s,%s:%s:",
phex_nz (address, addr_size),
- phex_nz (len, sizeof (len)),
- phex_nz (type, sizeof (type)));
+ phex_nz (len),
+ phex_nz (type));
request += bin2hex (tags.data (), tags.size ());
/* Check if we have exceeded the maximum packet size. */
@@ -16137,7 +16159,7 @@ test_packet_check_result ()
SELF_CHECK (packet_check_result ("").status () == PACKET_UNKNOWN);
}
-} // namespace selftests
+} /* namespace selftests */
#endif /* GDB_SELF_TEST */
void _initialize_remote ();
@@ -16401,6 +16423,8 @@ Show the maximum size of the address (in bits) in a memory packet."), NULL,
add_packet_config_cmd (PACKET_vFile_stat, "vFile:stat", "hostio-stat", 0);
+ add_packet_config_cmd (PACKET_vFile_lstat, "vFile:lstat", "hostio-lstat", 0);
+
add_packet_config_cmd (PACKET_vAttach, "vAttach", "attach", 0);
add_packet_config_cmd (PACKET_vRun, "vRun", "run", 0);
diff --git a/gdb/remote.h b/gdb/remote.h
index e0335df..ba1b8db 100644
--- a/gdb/remote.h
+++ b/gdb/remote.h
@@ -1,5 +1,5 @@
/* Remote target communications for serial-line targets in custom GDB protocol
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/reply_mig_hack.awk b/gdb/reply_mig_hack.awk
index 156fcc86..9857ee0 100644
--- a/gdb/reply_mig_hack.awk
+++ b/gdb/reply_mig_hack.awk
@@ -1,6 +1,6 @@
# Reply server mig-output massager
#
-# Copyright (C) 1995-2024 Free Software Foundation, Inc.
+# Copyright (C) 1995-2025 Free Software Foundation, Inc.
#
# Written by Miles Bader <miles@gnu.ai.mit.edu>
#
diff --git a/gdb/reverse.c b/gdb/reverse.c
index ca11f83..2c9ed72 100644
--- a/gdb/reverse.c
+++ b/gdb/reverse.c
@@ -1,6 +1,6 @@
/* Reverse execution and reverse debugging.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/riscv-canonicalize-syscall-gen.c b/gdb/riscv-canonicalize-syscall-gen.c
new file mode 100644
index 0000000..67e5410
--- /dev/null
+++ b/gdb/riscv-canonicalize-syscall-gen.c
@@ -0,0 +1,358 @@
+/* DO NOT EDIT: Autogenerated by riscv-canonicalize-syscall-gen.py
+
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include "defs.h"
+#include "riscv-linux-tdep.h"
+
+/* riscv64_canonicalize_syscall maps from the native riscv 64 Linux set
+ of syscall ids into a canonical set of syscall ids used by
+ process record. */
+
+enum gdb_syscall
+riscv64_canonicalize_syscall (int syscall)
+{
+ switch (syscall)
+ {
+ case 0: return gdb_sys_io_setup;
+ case 1: return gdb_sys_io_destroy;
+ case 2: return gdb_sys_io_submit;
+ case 3: return gdb_sys_io_cancel;
+ case 4: return gdb_sys_io_getevents;
+ case 5: return gdb_sys_setxattr;
+ case 6: return gdb_sys_lsetxattr;
+ case 7: return gdb_sys_fsetxattr;
+ case 8: return gdb_sys_getxattr;
+ case 9: return gdb_sys_lgetxattr;
+ case 10: return gdb_sys_fgetxattr;
+ case 11: return gdb_sys_listxattr;
+ case 12: return gdb_sys_llistxattr;
+ case 13: return gdb_sys_flistxattr;
+ case 14: return gdb_sys_removexattr;
+ case 15: return gdb_sys_lremovexattr;
+ case 16: return gdb_sys_fremovexattr;
+ case 17: return gdb_sys_getcwd;
+ case 18: return gdb_sys_lookup_dcookie;
+ case 19: return gdb_sys_eventfd2;
+ case 20: return gdb_sys_epoll_create1;
+ case 21: return gdb_sys_epoll_ctl;
+ case 22: return gdb_sys_epoll_pwait;
+ case 23: return gdb_sys_dup;
+ case 24: return gdb_sys_dup3;
+ case 25: return gdb_sys_fcntl;
+ case 26: return gdb_sys_inotify_init1;
+ case 27: return gdb_sys_inotify_add_watch;
+ case 28: return gdb_sys_inotify_rm_watch;
+ case 29: return gdb_sys_ioctl;
+ case 30: return gdb_sys_ioprio_set;
+ case 31: return gdb_sys_ioprio_get;
+ case 32: return gdb_sys_flock;
+ case 33: return gdb_sys_mknodat;
+ case 34: return gdb_sys_mkdirat;
+ case 35: return gdb_sys_unlinkat;
+ case 36: return gdb_sys_symlinkat;
+ case 37: return gdb_sys_linkat;
+ /* case 39: return gdb_sys_umount2; */
+ case 40: return gdb_sys_mount;
+ case 41: return gdb_sys_pivot_root;
+ case 42: return gdb_sys_nfsservctl;
+ case 43: return gdb_sys_statfs;
+ case 44: return gdb_sys_fstatfs;
+ case 45: return gdb_sys_truncate;
+ case 46: return gdb_sys_ftruncate;
+ case 47: return gdb_sys_fallocate;
+ case 48: return gdb_sys_faccessat;
+ case 49: return gdb_sys_chdir;
+ case 50: return gdb_sys_fchdir;
+ case 51: return gdb_sys_chroot;
+ case 52: return gdb_sys_fchmod;
+ case 53: return gdb_sys_fchmodat;
+ case 54: return gdb_sys_fchownat;
+ case 55: return gdb_sys_fchown;
+ case 56: return gdb_sys_openat;
+ case 57: return gdb_sys_close;
+ case 58: return gdb_sys_vhangup;
+ case 59: return gdb_sys_pipe2;
+ case 60: return gdb_sys_quotactl;
+ case 61: return gdb_sys_getdents64;
+ case 62: return gdb_sys_lseek;
+ case 63: return gdb_sys_read;
+ case 64: return gdb_sys_write;
+ case 65: return gdb_sys_readv;
+ case 66: return gdb_sys_writev;
+ case 67: return gdb_sys_pread64;
+ case 68: return gdb_sys_pwrite64;
+ /* case 69: return gdb_sys_preadv; */
+ /* case 70: return gdb_sys_pwritev; */
+ case 71: return gdb_sys_sendfile;
+ case 72: return gdb_sys_pselect6;
+ case 73: return gdb_sys_ppoll;
+ /* case 74: return gdb_sys_signalfd4; */
+ case 75: return gdb_sys_vmsplice;
+ case 76: return gdb_sys_splice;
+ case 77: return gdb_sys_tee;
+ case 78: return gdb_sys_readlinkat;
+ case 79: return gdb_sys_newfstatat;
+ case 80: return gdb_sys_fstat;
+ case 81: return gdb_sys_sync;
+ case 82: return gdb_sys_fsync;
+ case 83: return gdb_sys_fdatasync;
+ case 84: return gdb_sys_sync_file_range;
+ /* case 85: return gdb_sys_timerfd_create; */
+ /* case 86: return gdb_sys_timerfd_settime; */
+ /* case 87: return gdb_sys_timerfd_gettime; */
+ /* case 88: return gdb_sys_utimensat; */
+ case 89: return gdb_sys_acct;
+ case 90: return gdb_sys_capget;
+ case 91: return gdb_sys_capset;
+ case 92: return gdb_sys_personality;
+ case 93: return gdb_sys_exit;
+ case 94: return gdb_sys_exit_group;
+ case 95: return gdb_sys_waitid;
+ case 96: return gdb_sys_set_tid_address;
+ case 97: return gdb_sys_unshare;
+ case 98: return gdb_sys_futex;
+ case 99: return gdb_sys_set_robust_list;
+ case 100: return gdb_sys_get_robust_list;
+ case 101: return gdb_sys_nanosleep;
+ case 102: return gdb_sys_getitimer;
+ case 103: return gdb_sys_setitimer;
+ case 104: return gdb_sys_kexec_load;
+ case 105: return gdb_sys_init_module;
+ case 106: return gdb_sys_delete_module;
+ case 107: return gdb_sys_timer_create;
+ case 108: return gdb_sys_timer_gettime;
+ case 109: return gdb_sys_timer_getoverrun;
+ case 110: return gdb_sys_timer_settime;
+ case 111: return gdb_sys_timer_delete;
+ case 112: return gdb_sys_clock_settime;
+ case 113: return gdb_sys_clock_gettime;
+ case 114: return gdb_sys_clock_getres;
+ case 115: return gdb_sys_clock_nanosleep;
+ case 116: return gdb_sys_syslog;
+ case 117: return gdb_sys_ptrace;
+ case 118: return gdb_sys_sched_setparam;
+ case 119: return gdb_sys_sched_setscheduler;
+ case 120: return gdb_sys_sched_getscheduler;
+ case 121: return gdb_sys_sched_getparam;
+ case 122: return gdb_sys_sched_setaffinity;
+ case 123: return gdb_sys_sched_getaffinity;
+ case 124: return gdb_sys_sched_yield;
+ case 125: return gdb_sys_sched_get_priority_max;
+ case 126: return gdb_sys_sched_get_priority_min;
+ case 127: return gdb_sys_sched_rr_get_interval;
+ case 128: return gdb_sys_restart_syscall;
+ case 129: return gdb_sys_kill;
+ case 130: return gdb_sys_tkill;
+ case 131: return gdb_sys_tgkill;
+ case 132: return gdb_sys_sigaltstack;
+ case 133: return gdb_sys_rt_sigsuspend;
+ case 134: return gdb_sys_rt_sigaction;
+ case 135: return gdb_sys_rt_sigprocmask;
+ case 136: return gdb_sys_rt_sigpending;
+ case 137: return gdb_sys_rt_sigtimedwait;
+ case 138: return gdb_sys_rt_sigqueueinfo;
+ case 139: return gdb_sys_rt_sigreturn;
+ case 140: return gdb_sys_setpriority;
+ case 141: return gdb_sys_getpriority;
+ case 142: return gdb_sys_reboot;
+ case 143: return gdb_sys_setregid;
+ case 144: return gdb_sys_setgid;
+ case 145: return gdb_sys_setreuid;
+ case 146: return gdb_sys_setuid;
+ case 147: return gdb_sys_setresuid;
+ case 148: return gdb_sys_getresuid;
+ case 149: return gdb_sys_setresgid;
+ case 150: return gdb_sys_getresgid;
+ case 151: return gdb_sys_setfsuid;
+ case 152: return gdb_sys_setfsgid;
+ case 153: return gdb_sys_times;
+ case 154: return gdb_sys_setpgid;
+ case 155: return gdb_sys_getpgid;
+ case 156: return gdb_sys_getsid;
+ case 157: return gdb_sys_setsid;
+ case 158: return gdb_sys_getgroups;
+ case 159: return gdb_sys_setgroups;
+ case 160: return gdb_sys_uname;
+ case 161: return gdb_sys_sethostname;
+ case 162: return gdb_sys_setdomainname;
+ case 163: return gdb_sys_getrlimit;
+ case 164: return gdb_sys_setrlimit;
+ case 165: return gdb_sys_getrusage;
+ case 166: return gdb_sys_umask;
+ case 167: return gdb_sys_prctl;
+ case 168: return gdb_sys_getcpu;
+ case 169: return gdb_sys_gettimeofday;
+ case 170: return gdb_sys_settimeofday;
+ case 171: return gdb_sys_adjtimex;
+ case 172: return gdb_sys_getpid;
+ case 173: return gdb_sys_getppid;
+ case 174: return gdb_sys_getuid;
+ case 175: return gdb_sys_geteuid;
+ case 176: return gdb_sys_getgid;
+ case 177: return gdb_sys_getegid;
+ case 178: return gdb_sys_gettid;
+ case 179: return gdb_sys_sysinfo;
+ case 180: return gdb_sys_mq_open;
+ case 181: return gdb_sys_mq_unlink;
+ case 182: return gdb_sys_mq_timedsend;
+ case 183: return gdb_sys_mq_timedreceive;
+ case 184: return gdb_sys_mq_notify;
+ case 185: return gdb_sys_mq_getsetattr;
+ case 186: return gdb_sys_msgget;
+ case 187: return gdb_sys_msgctl;
+ case 188: return gdb_sys_msgrcv;
+ case 189: return gdb_sys_msgsnd;
+ case 190: return gdb_sys_semget;
+ case 191: return gdb_sys_semctl;
+ case 192: return gdb_sys_semtimedop;
+ case 193: return gdb_sys_semop;
+ case 194: return gdb_sys_shmget;
+ case 195: return gdb_sys_shmctl;
+ case 196: return gdb_sys_shmat;
+ case 197: return gdb_sys_shmdt;
+ case 198: return gdb_sys_socket;
+ case 199: return gdb_sys_socketpair;
+ case 200: return gdb_sys_bind;
+ case 201: return gdb_sys_listen;
+ case 202: return gdb_sys_accept;
+ case 203: return gdb_sys_connect;
+ case 204: return gdb_sys_getsockname;
+ case 205: return gdb_sys_getpeername;
+ case 206: return gdb_sys_sendto;
+ case 207: return gdb_sys_recvfrom;
+ case 208: return gdb_sys_setsockopt;
+ case 209: return gdb_sys_getsockopt;
+ case 210: return gdb_sys_shutdown;
+ case 211: return gdb_sys_sendmsg;
+ case 212: return gdb_sys_recvmsg;
+ case 213: return gdb_sys_readahead;
+ case 214: return gdb_sys_brk;
+ case 215: return gdb_sys_munmap;
+ case 216: return gdb_sys_mremap;
+ case 217: return gdb_sys_add_key;
+ case 218: return gdb_sys_request_key;
+ case 219: return gdb_sys_keyctl;
+ case 220: return gdb_sys_clone;
+ case 221: return gdb_sys_execve;
+ case 222: return gdb_sys_old_mmap;
+ case 223: return gdb_sys_fadvise64;
+ case 224: return gdb_sys_swapon;
+ case 225: return gdb_sys_swapoff;
+ case 226: return gdb_sys_mprotect;
+ case 227: return gdb_sys_msync;
+ case 228: return gdb_sys_mlock;
+ case 229: return gdb_sys_munlock;
+ case 230: return gdb_sys_mlockall;
+ case 231: return gdb_sys_munlockall;
+ case 232: return gdb_sys_mincore;
+ case 233: return gdb_sys_madvise;
+ case 234: return gdb_sys_remap_file_pages;
+ case 235: return gdb_sys_mbind;
+ case 236: return gdb_sys_get_mempolicy;
+ case 237: return gdb_sys_set_mempolicy;
+ case 238: return gdb_sys_migrate_pages;
+ case 239: return gdb_sys_move_pages;
+ /* case 240: return gdb_sys_rt_tgsigqueueinfo; */
+ /* case 241: return gdb_sys_perf_event_open; */
+ case 242: return gdb_sys_accept4;
+ /* case 243: return gdb_sys_recvmmsg; */
+ /* case 258: return gdb_sys_riscv_hwprobe; */
+ /* case 259: return gdb_sys_riscv_flush_icache; */
+ case 260: return gdb_sys_wait4;
+ /* case 261: return gdb_sys_prlimit64; */
+ /* case 262: return gdb_sys_fanotify_init; */
+ /* case 263: return gdb_sys_fanotify_mark; */
+ /* case 264: return gdb_sys_name_to_handle_at; */
+ /* case 265: return gdb_sys_open_by_handle_at; */
+ /* case 266: return gdb_sys_clock_adjtime; */
+ /* case 267: return gdb_sys_syncfs; */
+ /* case 268: return gdb_sys_setns; */
+ /* case 269: return gdb_sys_sendmmsg; */
+ /* case 270: return gdb_sys_process_vm_readv; */
+ /* case 271: return gdb_sys_process_vm_writev; */
+ /* case 272: return gdb_sys_kcmp; */
+ /* case 273: return gdb_sys_finit_module; */
+ /* case 274: return gdb_sys_sched_setattr; */
+ /* case 275: return gdb_sys_sched_getattr; */
+ /* case 276: return gdb_sys_renameat2; */
+ /* case 277: return gdb_sys_seccomp; */
+ case 278: return gdb_sys_getrandom;
+ /* case 279: return gdb_sys_memfd_create; */
+ /* case 280: return gdb_sys_bpf; */
+ /* case 281: return gdb_sys_execveat; */
+ /* case 282: return gdb_sys_userfaultfd; */
+ /* case 283: return gdb_sys_membarrier; */
+ /* case 284: return gdb_sys_mlock2; */
+ /* case 285: return gdb_sys_copy_file_range; */
+ /* case 286: return gdb_sys_preadv2; */
+ /* case 287: return gdb_sys_pwritev2; */
+ /* case 288: return gdb_sys_pkey_mprotect; */
+ /* case 289: return gdb_sys_pkey_alloc; */
+ /* case 290: return gdb_sys_pkey_free; */
+ case 291: return gdb_sys_statx;
+ /* case 292: return gdb_sys_io_pgetevents; */
+ /* case 293: return gdb_sys_rseq; */
+ /* case 294: return gdb_sys_kexec_file_load; */
+ /* case 424: return gdb_sys_pidfd_send_signal; */
+ /* case 425: return gdb_sys_io_uring_setup; */
+ /* case 426: return gdb_sys_io_uring_enter; */
+ /* case 427: return gdb_sys_io_uring_register; */
+ /* case 428: return gdb_sys_open_tree; */
+ /* case 429: return gdb_sys_move_mount; */
+ /* case 430: return gdb_sys_fsopen; */
+ /* case 431: return gdb_sys_fsconfig; */
+ /* case 432: return gdb_sys_fsmount; */
+ /* case 433: return gdb_sys_fspick; */
+ /* case 434: return gdb_sys_pidfd_open; */
+ /* case 435: return gdb_sys_clone3; */
+ /* case 436: return gdb_sys_close_range; */
+ /* case 437: return gdb_sys_openat2; */
+ /* case 438: return gdb_sys_pidfd_getfd; */
+ /* case 439: return gdb_sys_faccessat2; */
+ /* case 440: return gdb_sys_process_madvise; */
+ /* case 441: return gdb_sys_epoll_pwait2; */
+ /* case 442: return gdb_sys_mount_setattr; */
+ /* case 443: return gdb_sys_quotactl_fd; */
+ /* case 444: return gdb_sys_landlock_create_ruleset; */
+ /* case 445: return gdb_sys_landlock_add_rule; */
+ /* case 446: return gdb_sys_landlock_restrict_self; */
+ /* case 447: return gdb_sys_memfd_secret; */
+ /* case 448: return gdb_sys_process_mrelease; */
+ /* case 449: return gdb_sys_futex_waitv; */
+ /* case 450: return gdb_sys_set_mempolicy_home_node; */
+ /* case 451: return gdb_sys_cachestat; */
+ /* case 452: return gdb_sys_fchmodat2; */
+ /* case 453: return gdb_sys_map_shadow_stack; */
+ /* case 454: return gdb_sys_futex_wake; */
+ /* case 455: return gdb_sys_futex_wait; */
+ /* case 456: return gdb_sys_futex_requeue; */
+ /* case 457: return gdb_sys_statmount; */
+ /* case 458: return gdb_sys_listmount; */
+ /* case 459: return gdb_sys_lsm_get_self_attr; */
+ /* case 460: return gdb_sys_lsm_set_self_attr; */
+ /* case 461: return gdb_sys_lsm_list_modules; */
+ /* case 462: return gdb_sys_mseal; */
+ /* case 463: return gdb_sys_setxattrat; */
+ /* case 464: return gdb_sys_getxattrat; */
+ /* case 465: return gdb_sys_listxattrat; */
+ /* case 466: return gdb_sys_removexattrat; */
+ default:
+ return gdb_sys_no_syscall;
+ }
+}
diff --git a/gdb/riscv-fbsd-nat.c b/gdb/riscv-fbsd-nat.c
index bc9d613..df7cc6a 100644
--- a/gdb/riscv-fbsd-nat.c
+++ b/gdb/riscv-fbsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for FreeBSD/riscv.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/riscv-fbsd-tdep.c b/gdb/riscv-fbsd-tdep.c
index 4761edc..fcb91ca 100644
--- a/gdb/riscv-fbsd-tdep.c
+++ b/gdb/riscv-fbsd-tdep.c
@@ -1,5 +1,5 @@
/* Target-dependent code for FreeBSD on RISC-V processors.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/riscv-fbsd-tdep.h b/gdb/riscv-fbsd-tdep.h
index 22ae08d..618b8e5 100644
--- a/gdb/riscv-fbsd-tdep.h
+++ b/gdb/riscv-fbsd-tdep.h
@@ -1,6 +1,6 @@
/* FreeBSD/riscv target support, prototypes.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/riscv-linux-nat.c b/gdb/riscv-linux-nat.c
index a5507e8..8846329 100644
--- a/gdb/riscv-linux-nat.c
+++ b/gdb/riscv-linux-nat.c
@@ -1,5 +1,5 @@
/* Native-dependent code for GNU/Linux RISC-V.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/riscv-linux-tdep.c b/gdb/riscv-linux-tdep.c
index ff478cf..e1ea615 100644
--- a/gdb/riscv-linux-tdep.c
+++ b/gdb/riscv-linux-tdep.c
@@ -1,5 +1,5 @@
/* Target-dependent code for GNU/Linux on RISC-V processors.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -20,11 +20,18 @@
#include "osabi.h"
#include "glibc-tdep.h"
#include "linux-tdep.h"
+#include "svr4-tls-tdep.h"
#include "solib-svr4.h"
#include "regset.h"
#include "tramp-frame.h"
#include "trad-frame.h"
#include "gdbarch.h"
+#include "record-full.h"
+#include "linux-record.h"
+#include "riscv-linux-tdep.h"
+#include "inferior.h"
+
+extern unsigned int record_debug;
/* The following value is derived from __NR_rt_sigreturn in
<include/uapi/asm-generic/unistd.h> from the Linux source tree. */
@@ -173,6 +180,327 @@ riscv_linux_syscall_next_pc (const frame_info_ptr &frame)
return pc + 4 /* Length of the ECALL insn. */;
}
+/* RISC-V process record-replay constructs: syscall, signal etc. */
+
+static linux_record_tdep riscv_linux_record_tdep;
+
+using regnum_type = int;
+
+/* Record registers from first to last for process-record. */
+
+static bool
+save_registers (struct regcache *regcache, regnum_type first, regnum_type last)
+{
+ gdb_assert (regcache != nullptr);
+
+ for (regnum_type i = first; i != last; ++i)
+ if (record_full_arch_list_add_reg (regcache, i))
+ return false;
+ return true;
+};
+
+/* Record all registers but PC register for process-record. */
+
+static bool
+riscv_all_but_pc_registers_record (struct regcache *regcache)
+{
+ gdb_assert (regcache != nullptr);
+
+ struct gdbarch *gdbarch = regcache->arch ();
+ riscv_gdbarch_tdep *tdep = gdbarch_tdep<riscv_gdbarch_tdep> (gdbarch);
+ const struct riscv_gdbarch_features &features = tdep->isa_features;
+
+ if (!save_registers (regcache, RISCV_ZERO_REGNUM + 1, RISCV_PC_REGNUM))
+ return false;
+
+ if (features.flen
+ && !save_registers (regcache, RISCV_FIRST_FP_REGNUM,
+ RISCV_LAST_FP_REGNUM + 1))
+ return false;
+
+ return true;
+}
+
+/* Handler for riscv system call instruction recording. */
+
+static int
+riscv_linux_syscall_record (struct regcache *regcache,
+ unsigned long svc_number)
+{
+ gdb_assert (regcache != nullptr);
+
+ enum gdb_syscall syscall_gdb = riscv64_canonicalize_syscall (svc_number);
+
+ if (record_debug > 1)
+ gdb_printf (gdb_stdlog, "Made syscall %s.\n", plongest (svc_number));
+
+ if (syscall_gdb == gdb_sys_no_syscall)
+ {
+ warning (_("Process record and replay target doesn't "
+ "support syscall number %s\n"), plongest (svc_number));
+ return -1;
+ }
+
+ if (syscall_gdb == gdb_sys_sigreturn || syscall_gdb == gdb_sys_rt_sigreturn)
+ {
+ if (!riscv_all_but_pc_registers_record (regcache))
+ return -1;
+ return 0;
+ }
+
+ int ret = record_linux_system_call (syscall_gdb, regcache,
+ &riscv_linux_record_tdep);
+ if (ret != 0)
+ return ret;
+
+ /* Record the return value of the system call. */
+ if (record_full_arch_list_add_reg (regcache, RISCV_A0_REGNUM))
+ return -1;
+
+ return 0;
+}
+
+/* Initialize the riscv64_linux_record_tdep. */
+
+static void
+riscv64_linux_record_tdep_init (struct gdbarch *gdbarch,
+ struct linux_record_tdep &
+ riscv_linux_record_tdep)
+{
+ gdb_assert (gdbarch != nullptr);
+
+ /* These values are the size of the type that
+ will be used in a system call. */
+ riscv_linux_record_tdep.size_pointer
+ = gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT;
+ riscv_linux_record_tdep.size__old_kernel_stat = 48;
+ riscv_linux_record_tdep.size_tms = 32;
+ riscv_linux_record_tdep.size_loff_t = 8;
+ riscv_linux_record_tdep.size_flock = 32;
+ riscv_linux_record_tdep.size_oldold_utsname = 45;
+ riscv_linux_record_tdep.size_ustat = 32;
+ riscv_linux_record_tdep.size_old_sigaction = 32;
+ riscv_linux_record_tdep.size_old_sigset_t = 8;
+ riscv_linux_record_tdep.size_rlimit = 16;
+ riscv_linux_record_tdep.size_rusage = 144;
+ riscv_linux_record_tdep.size_timeval = 8;
+ riscv_linux_record_tdep.size_timezone = 8;
+ riscv_linux_record_tdep.size_old_gid_t = 2;
+ riscv_linux_record_tdep.size_old_uid_t = 2;
+ riscv_linux_record_tdep.size_fd_set = 128;
+ riscv_linux_record_tdep.size_old_dirent = 268;
+ riscv_linux_record_tdep.size_statfs = 120;
+ riscv_linux_record_tdep.size_statfs64 = 120;
+ riscv_linux_record_tdep.size_sockaddr = 16;
+ riscv_linux_record_tdep.size_int
+ = gdbarch_int_bit (gdbarch) / TARGET_CHAR_BIT;
+ riscv_linux_record_tdep.size_long
+ = gdbarch_long_bit (gdbarch) / TARGET_CHAR_BIT;
+ riscv_linux_record_tdep.size_ulong
+ = gdbarch_long_bit (gdbarch) / TARGET_CHAR_BIT;
+ riscv_linux_record_tdep.size_msghdr = 104;
+ riscv_linux_record_tdep.size_itimerval = 16;
+ riscv_linux_record_tdep.size_stat = 128;
+ riscv_linux_record_tdep.size_old_utsname = 325;
+ riscv_linux_record_tdep.size_sysinfo = 112;
+ riscv_linux_record_tdep.size_msqid_ds = 104;
+ riscv_linux_record_tdep.size_shmid_ds = 88;
+ riscv_linux_record_tdep.size_new_utsname = 390;
+ riscv_linux_record_tdep.size_timex = 188;
+ riscv_linux_record_tdep.size_mem_dqinfo = 72;
+ riscv_linux_record_tdep.size_if_dqblk = 68;
+ riscv_linux_record_tdep.size_fs_quota_stat = 64;
+ riscv_linux_record_tdep.size_timespec = 16;
+ riscv_linux_record_tdep.size_pollfd = 8;
+ riscv_linux_record_tdep.size_NFS_FHSIZE = 32;
+ riscv_linux_record_tdep.size_knfsd_fh = 36;
+ riscv_linux_record_tdep.size_TASK_COMM_LEN = 4;
+ riscv_linux_record_tdep.size_sigaction = 24;
+ riscv_linux_record_tdep.size_sigset_t = 8;
+ riscv_linux_record_tdep.size_siginfo_t = 128;
+ riscv_linux_record_tdep.size_cap_user_data_t = 8;
+ riscv_linux_record_tdep.size_stack_t = 24;
+ riscv_linux_record_tdep.size_off_t = riscv_linux_record_tdep.size_long;
+ riscv_linux_record_tdep.size_stat64 = 136;
+ riscv_linux_record_tdep.size_gid_t = 4;
+ riscv_linux_record_tdep.size_uid_t = 4;
+ riscv_linux_record_tdep.size_PAGE_SIZE = 4096;
+ riscv_linux_record_tdep.size_flock64 = 32;
+ riscv_linux_record_tdep.size_user_desc = 37;
+ riscv_linux_record_tdep.size_io_event = 32;
+ riscv_linux_record_tdep.size_iocb = 64;
+ riscv_linux_record_tdep.size_epoll_event = 16;
+ riscv_linux_record_tdep.size_itimerspec
+ = riscv_linux_record_tdep.size_timespec * 2;
+ riscv_linux_record_tdep.size_mq_attr = 64;
+ riscv_linux_record_tdep.size_termios = 36;
+ riscv_linux_record_tdep.size_termios2 = 44;
+ riscv_linux_record_tdep.size_pid_t = 4;
+ riscv_linux_record_tdep.size_winsize = 8;
+ riscv_linux_record_tdep.size_serial_struct = 72;
+ riscv_linux_record_tdep.size_serial_icounter_struct = 80;
+ riscv_linux_record_tdep.size_hayes_esp_config = 12;
+ riscv_linux_record_tdep.size_size_t = 8;
+ riscv_linux_record_tdep.size_iovec = 16;
+ riscv_linux_record_tdep.size_time_t = 8;
+
+ /* These values are the second argument of system call "sys_ioctl".
+ They are obtained from Linux Kernel source. */
+ riscv_linux_record_tdep.ioctl_TCGETS = 0x5401;
+ riscv_linux_record_tdep.ioctl_TCSETS = 0x5402;
+ riscv_linux_record_tdep.ioctl_TCSETSW = 0x5403;
+ riscv_linux_record_tdep.ioctl_TCSETSF = 0x5404;
+ riscv_linux_record_tdep.ioctl_TCGETA = 0x5405;
+ riscv_linux_record_tdep.ioctl_TCSETA = 0x5406;
+ riscv_linux_record_tdep.ioctl_TCSETAW = 0x5407;
+ riscv_linux_record_tdep.ioctl_TCSETAF = 0x5408;
+ riscv_linux_record_tdep.ioctl_TCSBRK = 0x5409;
+ riscv_linux_record_tdep.ioctl_TCXONC = 0x540a;
+ riscv_linux_record_tdep.ioctl_TCFLSH = 0x540b;
+ riscv_linux_record_tdep.ioctl_TIOCEXCL = 0x540c;
+ riscv_linux_record_tdep.ioctl_TIOCNXCL = 0x540d;
+ riscv_linux_record_tdep.ioctl_TIOCSCTTY = 0x540e;
+ riscv_linux_record_tdep.ioctl_TIOCGPGRP = 0x540f;
+ riscv_linux_record_tdep.ioctl_TIOCSPGRP = 0x5410;
+ riscv_linux_record_tdep.ioctl_TIOCOUTQ = 0x5411;
+ riscv_linux_record_tdep.ioctl_TIOCSTI = 0x5412;
+ riscv_linux_record_tdep.ioctl_TIOCGWINSZ = 0x5413;
+ riscv_linux_record_tdep.ioctl_TIOCSWINSZ = 0x5414;
+ riscv_linux_record_tdep.ioctl_TIOCMGET = 0x5415;
+ riscv_linux_record_tdep.ioctl_TIOCMBIS = 0x5416;
+ riscv_linux_record_tdep.ioctl_TIOCMBIC = 0x5417;
+ riscv_linux_record_tdep.ioctl_TIOCMSET = 0x5418;
+ riscv_linux_record_tdep.ioctl_TIOCGSOFTCAR = 0x5419;
+ riscv_linux_record_tdep.ioctl_TIOCSSOFTCAR = 0x541a;
+ riscv_linux_record_tdep.ioctl_FIONREAD = 0x541b;
+ riscv_linux_record_tdep.ioctl_TIOCINQ
+ = riscv_linux_record_tdep.ioctl_FIONREAD;
+ riscv_linux_record_tdep.ioctl_TIOCLINUX = 0x541c;
+ riscv_linux_record_tdep.ioctl_TIOCCONS = 0x541d;
+ riscv_linux_record_tdep.ioctl_TIOCGSERIAL = 0x541e;
+ riscv_linux_record_tdep.ioctl_TIOCSSERIAL = 0x541f;
+ riscv_linux_record_tdep.ioctl_TIOCPKT = 0x5420;
+ riscv_linux_record_tdep.ioctl_FIONBIO = 0x5421;
+ riscv_linux_record_tdep.ioctl_TIOCNOTTY = 0x5422;
+ riscv_linux_record_tdep.ioctl_TIOCSETD = 0x5423;
+ riscv_linux_record_tdep.ioctl_TIOCGETD = 0x5424;
+ riscv_linux_record_tdep.ioctl_TCSBRKP = 0x5425;
+ riscv_linux_record_tdep.ioctl_TIOCTTYGSTRUCT = 0x5426;
+ riscv_linux_record_tdep.ioctl_TIOCSBRK = 0x5427;
+ riscv_linux_record_tdep.ioctl_TIOCCBRK = 0x5428;
+ riscv_linux_record_tdep.ioctl_TIOCGSID = 0x5429;
+ riscv_linux_record_tdep.ioctl_TCGETS2 = 0x802c542a;
+ riscv_linux_record_tdep.ioctl_TCSETS2 = 0x402c542b;
+ riscv_linux_record_tdep.ioctl_TCSETSW2 = 0x402c542c;
+ riscv_linux_record_tdep.ioctl_TCSETSF2 = 0x402c542d;
+ riscv_linux_record_tdep.ioctl_TIOCGPTN = 0x80045430;
+ riscv_linux_record_tdep.ioctl_TIOCSPTLCK = 0x40045431;
+ riscv_linux_record_tdep.ioctl_FIONCLEX = 0x5450;
+ riscv_linux_record_tdep.ioctl_FIOCLEX = 0x5451;
+ riscv_linux_record_tdep.ioctl_FIOASYNC = 0x5452;
+ riscv_linux_record_tdep.ioctl_TIOCSERCONFIG = 0x5453;
+ riscv_linux_record_tdep.ioctl_TIOCSERGWILD = 0x5454;
+ riscv_linux_record_tdep.ioctl_TIOCSERSWILD = 0x5455;
+ riscv_linux_record_tdep.ioctl_TIOCGLCKTRMIOS = 0x5456;
+ riscv_linux_record_tdep.ioctl_TIOCSLCKTRMIOS = 0x5457;
+ riscv_linux_record_tdep.ioctl_TIOCSERGSTRUCT = 0x5458;
+ riscv_linux_record_tdep.ioctl_TIOCSERGETLSR = 0x5459;
+ riscv_linux_record_tdep.ioctl_TIOCSERGETMULTI = 0x545a;
+ riscv_linux_record_tdep.ioctl_TIOCSERSETMULTI = 0x545b;
+ riscv_linux_record_tdep.ioctl_TIOCMIWAIT = 0x545c;
+ riscv_linux_record_tdep.ioctl_TIOCGICOUNT = 0x545d;
+ riscv_linux_record_tdep.ioctl_TIOCGHAYESESP = 0x545e;
+ riscv_linux_record_tdep.ioctl_TIOCSHAYESESP = 0x545f;
+ riscv_linux_record_tdep.ioctl_FIOQSIZE = 0x5460;
+
+ /* These values are the second argument of system call "sys_fcntl"
+ and "sys_fcntl64". They are obtained from Linux Kernel source. */
+ riscv_linux_record_tdep.fcntl_F_GETLK = 5;
+ riscv_linux_record_tdep.fcntl_F_GETLK64 = 12;
+ riscv_linux_record_tdep.fcntl_F_SETLK64 = 13;
+ riscv_linux_record_tdep.fcntl_F_SETLKW64 = 14;
+
+ riscv_linux_record_tdep.arg1 = RISCV_A0_REGNUM;
+ riscv_linux_record_tdep.arg2 = RISCV_A1_REGNUM;
+ riscv_linux_record_tdep.arg3 = RISCV_A2_REGNUM;
+ riscv_linux_record_tdep.arg4 = RISCV_A3_REGNUM;
+ riscv_linux_record_tdep.arg5 = RISCV_A4_REGNUM;
+ riscv_linux_record_tdep.arg6 = RISCV_A5_REGNUM;
+}
+
+/* Fetch and return the TLS DTV (dynamic thread vector) address for PTID.
+ Throw a suitable TLS error if something goes wrong. */
+
+static CORE_ADDR
+riscv_linux_get_tls_dtv_addr (struct gdbarch *gdbarch, ptid_t ptid,
+ svr4_tls_libc libc)
+{
+ /* On RISC-V, the thread pointer is found in TP. */
+ regcache *regcache
+ = get_thread_arch_regcache (current_inferior (), ptid, gdbarch);
+ int thread_pointer_regnum = RISCV_TP_REGNUM;
+ target_fetch_registers (regcache, thread_pointer_regnum);
+ ULONGEST thr_ptr;
+ if (regcache->cooked_read (thread_pointer_regnum, &thr_ptr) != REG_VALID)
+ throw_error (TLS_GENERIC_ERROR, _("Unable to fetch thread pointer"));
+
+ CORE_ADDR dtv_ptr_addr;
+ switch (libc)
+ {
+ case svr4_tls_libc_musl:
+ /* MUSL: The DTV pointer is found at the very end of the pthread
+ struct which is located *before* the thread pointer. I.e.
+ the thread pointer will be just beyond the end of the struct,
+ so the address of the DTV pointer is found one pointer-size
+ before the thread pointer. */
+ dtv_ptr_addr
+ = thr_ptr - (gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT);
+ break;
+ case svr4_tls_libc_glibc:
+ /* GLIBC: The thread pointer (TP) points just beyond the end of
+ the TCB (thread control block). On RISC-V, this struct
+ (tcbhead_t) is defined to contain two pointers. The first is
+ a pointer to the DTV and the second is a pointer to private
+ data. So the DTV pointer address is 16 bytes (i.e. the size of
+ two pointers) before thread pointer. */
+
+ dtv_ptr_addr
+ = thr_ptr - 2 * (gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT);
+ break;
+ default:
+ throw_error (TLS_GENERIC_ERROR, _("Unknown RISC-V C library"));
+ break;
+ }
+
+ gdb::byte_vector buf (gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT);
+ if (target_read_memory (dtv_ptr_addr, buf.data (), buf.size ()) != 0)
+ throw_error (TLS_GENERIC_ERROR, _("Unable to fetch DTV address"));
+
+ const struct builtin_type *builtin = builtin_type (gdbarch);
+ CORE_ADDR dtv_addr = gdbarch_pointer_to_address
+ (gdbarch, builtin->builtin_data_ptr, buf.data ());
+ return dtv_addr;
+}
+
+/* For internal TLS lookup, return the DTP offset, which is the offset
+ to subtract from a DTV entry, in order to obtain the address of the
+ TLS block. */
+
+static ULONGEST
+riscv_linux_get_tls_dtp_offset (struct gdbarch *gdbarch, ptid_t ptid,
+ svr4_tls_libc libc)
+{
+ if (libc == svr4_tls_libc_musl)
+ {
+ /* This value is DTP_OFFSET in MUSL's arch/riscv64/pthread_arch.h.
+ It represents the value to subtract from the DTV entry, once
+ it has been loaded. */
+ return 0x800;
+ }
+ else
+ return 0;
+}
+
/* Initialize RISC-V Linux ABI info. */
static void
@@ -198,6 +526,10 @@ riscv_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
/* Enable TLS support. */
set_gdbarch_fetch_tls_load_module_address (gdbarch,
svr4_fetch_objfile_link_map);
+ set_gdbarch_get_thread_local_address (gdbarch,
+ svr4_tls_get_thread_local_address);
+ svr4_tls_register_tls_methods (info, gdbarch, riscv_linux_get_tls_dtv_addr,
+ riscv_linux_get_tls_dtp_offset);
set_gdbarch_iterate_over_regset_sections
(gdbarch, riscv_linux_iterate_over_regset_sections);
@@ -205,6 +537,9 @@ riscv_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
tramp_frame_prepend_unwinder (gdbarch, &riscv_linux_sigframe);
tdep->syscall_next_pc = riscv_linux_syscall_next_pc;
+ tdep->riscv_syscall_record = riscv_linux_syscall_record;
+
+ riscv64_linux_record_tdep_init (gdbarch, riscv_linux_record_tdep);
}
/* Initialize RISC-V Linux target support. */
diff --git a/gdb/riscv-linux-tdep.h b/gdb/riscv-linux-tdep.h
new file mode 100644
index 0000000..9dd9e37
--- /dev/null
+++ b/gdb/riscv-linux-tdep.h
@@ -0,0 +1,29 @@
+/* Copyright (C) 2024-2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#ifndef GDB_RISCV_LINUX_TDEP_H
+#define GDB_RISCV_LINUX_TDEP_H
+
+#include "linux-record.h"
+
+/* riscv64_canonicalize_syscall maps from the native riscv Linux set
+ of syscall ids into a canonical set of syscall ids used by
+ process record. */
+
+extern enum gdb_syscall riscv64_canonicalize_syscall (int syscall);
+
+#endif /* GDB_RISCV_LINUX_TDEP_H */
diff --git a/gdb/riscv-none-tdep.c b/gdb/riscv-none-tdep.c
index e98c699..7303f54 100644
--- a/gdb/riscv-none-tdep.c
+++ b/gdb/riscv-none-tdep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/riscv-ravenscar-thread.c b/gdb/riscv-ravenscar-thread.c
index 291b1db..e9829ec 100644
--- a/gdb/riscv-ravenscar-thread.c
+++ b/gdb/riscv-ravenscar-thread.c
@@ -1,6 +1,6 @@
/* Ravenscar RISC-V target support.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/riscv-ravenscar-thread.h b/gdb/riscv-ravenscar-thread.h
index 8773043..de3af94 100644
--- a/gdb/riscv-ravenscar-thread.h
+++ b/gdb/riscv-ravenscar-thread.h
@@ -1,6 +1,6 @@
/* Ravenscar RISC-V target support.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/riscv-tdep.c b/gdb/riscv-tdep.c
index 6eeb1c1..5fb93c8 100644
--- a/gdb/riscv-tdep.c
+++ b/gdb/riscv-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the RISC-V architecture, for GDB.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -54,9 +54,12 @@
#include "observable.h"
#include "prologue-value.h"
#include "arch/riscv.h"
+#include "record-full.h"
#include "riscv-ravenscar-thread.h"
#include "gdbsupport/gdb-safe-ctype.h"
+#include <vector>
+
/* The stack must be 16-byte aligned. */
#define SP_ALIGNMENT 16
@@ -1669,6 +1672,11 @@ public:
int imm_signed () const
{ return m_imm.s; }
+ /* Fetch instruction from target memory at ADDR, return the content of
+ the instruction, and update LEN with the instruction length. */
+ static ULONGEST fetch_instruction (struct gdbarch *gdbarch,
+ CORE_ADDR addr, int *len);
+
private:
/* Extract 5 bit register field at OFFSET from instruction OPCODE. */
@@ -1814,11 +1822,6 @@ private:
m_rs2 = decode_register_index_short (ival, OP_SH_CRS2S);
}
- /* Fetch instruction from target memory at ADDR, return the content of
- the instruction, and update LEN with the instruction length. */
- static ULONGEST fetch_instruction (struct gdbarch *gdbarch,
- CORE_ADDR addr, int *len);
-
/* The length of the instruction in bytes. Should be 2 or 4. */
int m_length;
@@ -4188,7 +4191,7 @@ static const char *const stap_register_indirection_suffixes[] =
};
/* Initialize the current architecture based on INFO. If possible,
- re-use an architecture from ARCHES, which is a list of
+ reuse an architecture from ARCHES, which is a list of
architectures already created during this debugging session.
Called e.g. at program startup, when reading a core file, and when
@@ -4433,6 +4436,9 @@ riscv_gdbarch_init (struct gdbarch_info info,
set_gdbarch_stap_register_indirection_suffixes
(gdbarch, stap_register_indirection_suffixes);
+ /* Process record-replay */
+ set_gdbarch_process_record (gdbarch, riscv_process_record);
+
/* Hook in OS ABI-specific overrides, if they have been registered. */
gdbarch_init_osabi (info, gdbarch);
@@ -4866,3 +4872,674 @@ equivalent change in the disassembler output."),
&setriscvcmdlist,
&showriscvcmdlist);
}
+
+/* A wrapper to read register under number regnum to address addr.
+ Returns false if error happened and makes warning. */
+
+static bool
+try_read (struct regcache *regcache, int regnum, ULONGEST &addr)
+{
+ gdb_assert (regcache != nullptr);
+
+ if (regcache->raw_read (regnum, &addr)
+ != register_status::REG_VALID)
+ {
+ warning (_("Can not read at address %s"), hex_string (addr));
+ return false;
+ }
+ return true;
+}
+
+/* Helper class to record instruction. */
+
+class riscv_recorded_insn final
+{
+public:
+ /* Type for saved register. */
+ using regnum_type = int;
+ /* Type for saved memory. First is address, second is length. */
+ using memory_type = std::pair<CORE_ADDR, int>;
+
+ /* Enum class that represents which type does recording belong to. */
+ enum class record_type
+ {
+ UNKNOWN,
+ ORDINARY,
+
+ /* Corner cases. */
+ ECALL,
+ EBREAK,
+ };
+
+private:
+ /* Type for set of registers that need to be saved. */
+ using recorded_regs = std::vector<regnum_type>;
+ /* Type for set of memory records that need to be saved. */
+ using recorded_mems = std::vector<memory_type>;
+
+ /* Type for memory address, extracted from memory_type. */
+ using mem_addr = decltype (std::declval<memory_type> ().first);
+ /* Type for memory length, extracted from memory_type. */
+ using mem_len = decltype (std::declval<memory_type> ().second);
+
+ /* Record type of current instruction. */
+ record_type m_record_type = record_type::UNKNOWN;
+
+ /* Flag that represents was there an error in current recording. */
+ bool m_error_occured = false;
+
+ /* Set of registers that need to be recorded. */
+ recorded_regs m_regs;
+ /* Set of memory chunks that need to be recorded. */
+ recorded_mems m_mems;
+
+ /* Width in bytes of the general purpose registers for GDBARCH,
+ where recording is happening. */
+ int m_xlen = 0;
+
+ /* Helper for decode 16-bit instruction RS1. */
+ static regnum_type
+ decode_crs1_short (ULONGEST opcode) noexcept
+ {
+ return ((opcode >> OP_SH_CRS1S) & OP_MASK_CRS1S) + 8;
+ }
+
+ /* Helper for decode 16-bit instruction RS2. */
+ static regnum_type
+ decode_crs2_short (ULONGEST opcode) noexcept
+ {
+ return ((opcode >> OP_SH_CRS2S) & OP_MASK_CRS2S) + 8;
+ }
+
+ /* Helper for decode 16-bit instruction CRS1. */
+ static regnum_type
+ decode_crs1 (ULONGEST opcode) noexcept
+ {
+ return ((opcode >> OP_SH_RD) & OP_MASK_RD);
+ }
+
+ /* Helper for decode 16-bit instruction CRS2. */
+ static regnum_type
+ decode_crs2 (ULONGEST opcode) noexcept
+ {
+ return ((opcode >> OP_SH_CRS2) & OP_MASK_CRS2);
+ }
+
+ /* Helper for decode 32-bit instruction RD. */
+ static regnum_type
+ decode_rd (ULONGEST ival) noexcept
+ {
+ return (ival >> OP_SH_RD) & OP_MASK_RD;
+ }
+
+ /* Helper for decode 32-bit instruction RS1. */
+ static regnum_type
+ decode_rs1 (ULONGEST ival) noexcept
+ {
+ return (ival >> OP_SH_RS1) & OP_MASK_RS1;
+ }
+
+ /* Helper for decode 32-bit instruction RS2. */
+ static regnum_type
+ decode_rs2 (ULONGEST ival) noexcept
+ {
+ return (ival >> OP_SH_RS2) & OP_MASK_RS2;
+ }
+
+ /* Helper for decode 32-bit instruction CSR. */
+ static regnum_type
+ decode_csr (ULONGEST ival) noexcept
+ {
+ return (ival >> OP_SH_CSR) & OP_MASK_CSR;
+ }
+
+ /* Set ordinary record type. Always returns true. */
+ bool
+ set_ordinary_record_type () noexcept
+ {
+ m_record_type = record_type::ORDINARY;
+ return true;
+ }
+
+ /* Set error happened. Always returns false. */
+ bool
+ set_error () noexcept
+ {
+ m_error_occured = true;
+ return false;
+ }
+
+ /* Check if current recording has an error. */
+ bool
+ has_error () const noexcept
+ {
+ return m_error_occured;
+ }
+
+ /* Reads register. Sets error and returns false if error happened. */
+ bool
+ read_reg (struct regcache *regcache, regnum_type reg,
+ ULONGEST &addr) noexcept
+ {
+ gdb_assert (regcache != nullptr);
+
+ if (!try_read (regcache, reg, addr))
+ return set_error ();
+ return true;
+ }
+
+ /* Save register. Returns true or aborts if exception happened. */
+ bool
+ save_reg (regnum_type regnum) noexcept
+ {
+ m_regs.emplace_back (regnum);
+ return true;
+ }
+
+ /* Save memory chunk. Returns true or aborts if exception happened. */
+ bool
+ save_mem (mem_addr addr, mem_len len) noexcept
+ {
+ m_mems.emplace_back (addr, len);
+ return true;
+ }
+
+ /* Returns true if instruction needs only saving pc. */
+ static bool
+ need_save_pc (ULONGEST ival) noexcept
+ {
+ return (is_beq_insn (ival) || is_bne_insn (ival) || is_blt_insn (ival)
+ || is_bge_insn (ival) || is_bltu_insn (ival) || is_bgeu_insn (ival)
+ || is_fence_insn (ival) || is_pause_insn (ival)
+ || is_fence_i_insn (ival));
+ }
+
+ /* Returns true if instruction is classified. */
+ bool
+ try_save_pc (ULONGEST ival) noexcept
+ {
+ if (!need_save_pc (ival))
+ return false;
+
+ return set_ordinary_record_type ();
+ }
+
+ /* Returns true if instruction needs only saving pc and rd. */
+ static bool
+ need_save_pc_rd (ULONGEST ival) noexcept
+ {
+ return (is_lui_insn (ival) || is_auipc_insn (ival) || is_jal_insn (ival)
+ || is_jalr_insn (ival) || is_lb_insn (ival) || is_lh_insn (ival)
+ || is_lw_insn (ival) || is_lbu_insn (ival) || is_lhu_insn (ival)
+ || is_addi_insn (ival) || is_slti_insn (ival)
+ || is_sltiu_insn (ival) || is_xori_insn (ival) || is_ori_insn (ival)
+ || is_andi_insn (ival) || is_slli_rv32_insn (ival)
+ || is_srli_rv32_insn (ival) || is_srai_rv32_insn (ival)
+ || is_add_insn (ival) || is_sub_insn (ival) || is_sll_insn (ival)
+ || is_slt_insn (ival) || is_sltu_insn (ival) || is_xor_insn (ival)
+ || is_srl_insn (ival) || is_sra_insn (ival) || is_or_insn (ival)
+ || is_and_insn (ival) || is_lwu_insn (ival) || is_ld_insn (ival)
+ || is_slli_insn (ival) || is_srli_insn (ival) || is_srai_insn (ival)
+ || is_addiw_insn (ival) || is_slliw_insn (ival)
+ || is_srliw_insn (ival) || is_sraiw_insn (ival)
+ || is_addw_insn (ival) || is_subw_insn (ival) || is_sllw_insn (ival)
+ || is_srlw_insn (ival) || is_sraw_insn (ival) || is_mul_insn (ival)
+ || is_mulh_insn (ival) || is_mulhsu_insn (ival)
+ || is_mulhu_insn (ival) || is_div_insn (ival) || is_divu_insn (ival)
+ || is_rem_insn (ival) || is_remu_insn (ival) || is_mulw_insn (ival)
+ || is_divw_insn (ival) || is_divuw_insn (ival)
+ || is_remw_insn (ival) || is_remuw_insn (ival)
+ || is_lr_w_insn (ival) || is_lr_d_insn (ival)
+ || is_fcvt_w_s_insn (ival) || is_fcvt_wu_s_insn (ival)
+ || is_fmv_x_s_insn (ival) || is_feq_s_insn (ival)
+ || is_flt_s_insn (ival) || is_fle_s_insn (ival)
+ || is_fclass_s_insn (ival) || is_fcvt_l_s_insn (ival)
+ || is_fcvt_lu_s_insn (ival) || is_feq_d_insn (ival)
+ || is_flt_d_insn (ival) || is_fle_d_insn (ival)
+ || is_fclass_d_insn (ival) || is_fcvt_w_d_insn (ival)
+ || is_fcvt_wu_d_insn (ival) || is_fcvt_l_d_insn (ival)
+ || is_fcvt_lu_d_insn (ival) || is_fmv_x_d_insn (ival));
+ }
+
+ /* Returns true if instruction is classified. This function can set
+ m_error_occured. */
+ bool
+ try_save_pc_rd (ULONGEST ival) noexcept
+ {
+ if (!need_save_pc_rd (ival))
+ return false;
+
+ return (!save_reg (decode_rd (ival)) || set_ordinary_record_type ());
+ }
+
+ /* Returns true if instruction needs only saving pc and
+ floating point rd. */
+ static bool
+ need_save_pc_fprd (ULONGEST ival) noexcept
+ {
+ return (is_flw_insn (ival) || is_fmadd_s_insn (ival)
+ || is_fmsub_s_insn (ival) || is_fnmsub_s_insn (ival)
+ || is_fnmadd_s_insn (ival) || is_fadd_s_insn (ival)
+ || is_fsub_s_insn (ival) || is_fmul_s_insn (ival)
+ || is_fdiv_s_insn (ival) || is_fsqrt_s_insn (ival)
+ || is_fsgnj_s_insn (ival) || is_fsgnjn_s_insn (ival)
+ || is_fsgnjx_s_insn (ival) || is_fmin_s_insn (ival)
+ || is_fmax_s_insn (ival) || is_fcvt_s_w_insn (ival)
+ || is_fcvt_s_wu_insn (ival) || is_fmv_s_x_insn (ival)
+ || is_fcvt_s_l_insn (ival) || is_fcvt_s_lu_insn (ival)
+ || is_fld_insn (ival) || is_fmadd_d_insn (ival)
+ || is_fmsub_d_insn (ival) || is_fnmsub_d_insn (ival)
+ || is_fnmadd_d_insn (ival) || is_fadd_d_insn (ival)
+ || is_fsub_d_insn (ival) || is_fmul_d_insn (ival)
+ || is_fdiv_d_insn (ival) || is_fsqrt_d_insn (ival)
+ || is_fsgnj_d_insn (ival) || is_fsgnjn_d_insn (ival)
+ || is_fsgnjx_d_insn (ival) || is_fmin_d_insn (ival)
+ || is_fmax_d_insn (ival) || is_fcvt_s_d_insn (ival)
+ || is_fcvt_d_s_insn (ival) || is_fcvt_d_w_insn (ival)
+ || is_fcvt_d_wu_insn (ival) || is_fcvt_d_l_insn (ival)
+ || is_fcvt_d_lu_insn (ival) || is_fmv_d_x_insn (ival));
+ }
+
+ /* Returns true if instruction is classified. This function can set
+ m_error_occured. */
+ bool
+ try_save_pc_fprd (ULONGEST ival) noexcept
+ {
+ if (!need_save_pc_fprd (ival))
+ return false;
+
+ return (!save_reg (RISCV_FIRST_FP_REGNUM + decode_rd (ival))
+ || set_ordinary_record_type ());
+ }
+
+ /* Returns true if instruction needs only saving pc, rd and csr. */
+ static bool
+ need_save_pc_rd_csr (ULONGEST ival) noexcept
+ {
+ return (is_csrrw_insn (ival) || is_csrrs_insn (ival) || is_csrrc_insn (ival)
+ || is_csrrwi_insn (ival) || is_csrrsi_insn (ival)
+ || is_csrrci_insn (ival));
+ }
+
+ /* Returns true if instruction is classified. This function can set
+ m_error_occured. */
+ bool
+ try_save_pc_rd_csr (ULONGEST ival) noexcept
+ {
+ if (!need_save_pc_rd_csr (ival))
+ return false;
+
+ return (!save_reg (decode_rd (ival))
+ || !save_reg (RISCV_FIRST_CSR_REGNUM + decode_csr (ival))
+ || set_ordinary_record_type ());
+ }
+
+ /* Returns the size of the memory chunk that needs to be saved if the
+ instruction belongs to the group that needs only saving pc and memory.
+ Otherwise returns 0. */
+ static mem_len
+ need_save_pc_mem (ULONGEST ival) noexcept
+ {
+ if (is_sb_insn (ival))
+ return 1;
+ if (is_sh_insn (ival))
+ return 2;
+ if (is_sw_insn (ival) || is_fsw_insn (ival))
+ return 4;
+ if (is_sd_insn (ival) || is_fsd_insn (ival))
+ return 8;
+ return 0;
+ }
+
+ /* Returns true if instruction is classified. This function can set
+ m_error_occured. */
+ bool
+ try_save_pc_mem (ULONGEST ival, struct regcache *regcache) noexcept
+ {
+ gdb_assert (regcache != nullptr);
+
+ mem_addr addr = mem_addr{};
+ mem_len len = need_save_pc_mem (ival);
+ if (len <= 0)
+ return false;
+
+ mem_len offset = EXTRACT_STYPE_IMM (ival);
+ return (!read_reg (regcache, decode_rs1 (ival), addr)
+ || !save_mem (addr + offset, len) || set_ordinary_record_type ());
+ }
+
+ /* Returns the size of the memory chunk that needs to be saved if the
+ instruction belongs to the group that needs only saving pc, rd and memory.
+ Otherwise returns 0. */
+ static mem_len
+ need_save_pc_rd_mem (ULONGEST ival) noexcept
+ {
+ if (is_sc_w_insn (ival) || is_amoswap_w_insn (ival)
+ || is_amoadd_w_insn (ival) || is_amoxor_w_insn (ival)
+ || is_amoand_w_insn (ival) || is_amoor_w_insn (ival)
+ || is_amomin_w_insn (ival) || is_amomax_w_insn (ival)
+ || is_amominu_w_insn (ival) || is_amomaxu_w_insn (ival))
+ return 4;
+ if (is_sc_d_insn (ival) || is_amoswap_d_insn (ival)
+ || is_amoadd_d_insn (ival) || is_amoxor_d_insn (ival)
+ || is_amoand_d_insn (ival) || is_amoor_d_insn (ival)
+ || is_amomin_d_insn (ival) || is_amomax_d_insn (ival)
+ || is_amominu_d_insn (ival) || is_amomaxu_d_insn (ival))
+ return 8;
+ return 0;
+ }
+
+ /* Returns true if instruction is classified. This function can set
+ m_error_occured. */
+ bool
+ try_save_pc_rd_mem (ULONGEST ival, struct regcache *regcache) noexcept
+ {
+ gdb_assert (regcache != nullptr);
+
+ mem_len len = need_save_pc_rd_mem (ival);
+ mem_addr addr = 0;
+ if (len <= 0)
+ return false;
+
+ return (!read_reg (regcache, decode_rs1 (ival), addr)
+ || !save_mem (addr, len) || !save_reg (decode_rd (ival))
+ || set_ordinary_record_type ());
+ }
+
+ /* Returns true if instruction is successfully recordered. The length of
+ the instruction must be equal 4 bytes. */
+ bool
+ record_insn_len4 (ULONGEST ival, struct regcache *regcache) noexcept
+ {
+ gdb_assert (regcache != nullptr);
+
+ if (is_ecall_insn (ival))
+ {
+ m_record_type = record_type::ECALL;
+ return true;
+ }
+
+ if (is_ebreak_insn (ival))
+ {
+ m_record_type = record_type::EBREAK;
+ return true;
+ }
+
+ if (try_save_pc (ival) || try_save_pc_rd (ival) || try_save_pc_fprd (ival)
+ || try_save_pc_rd_csr (ival) || try_save_pc_mem (ival, regcache)
+ || try_save_pc_rd_mem (ival, regcache))
+ return !has_error ();
+
+ warning (_("Currently this instruction with len 4(%s) is unsupported"),
+ hex_string (ival));
+ return false;
+ }
+
+ /* Returns true if instruction is successfully recordered. The length of
+ the instruction must be equal 2 bytes. */
+ bool
+ record_insn_len2 (ULONGEST ival, struct regcache *regcache) noexcept
+ {
+ gdb_assert (regcache != nullptr);
+
+ mem_addr addr = mem_addr{};
+
+ /* The order here is very important, because
+ opcodes of some instructions may be the same. */
+
+ if (is_c_addi4spn_insn (ival) || is_c_lw_insn (ival)
+ || (m_xlen == 8 && is_c_ld_insn (ival)))
+ return (!save_reg (decode_crs2_short (ival))
+ || set_ordinary_record_type ());
+
+ if (is_c_fld_insn (ival) || (m_xlen == 4 && is_c_flw_insn (ival)))
+ return (!save_reg (RISCV_FIRST_FP_REGNUM + decode_crs2_short (ival))
+ || set_ordinary_record_type ());
+
+ if (is_c_fsd_insn (ival) || (m_xlen == 8 && is_c_sd_insn (ival)))
+ {
+ ULONGEST offset = ULONGEST{EXTRACT_CLTYPE_LD_IMM (ival)};
+ return (!read_reg (regcache, decode_crs1_short (ival), addr)
+ || !save_mem (addr + offset, 8) || set_ordinary_record_type ());
+ }
+
+ if ((m_xlen == 4 && is_c_fsw_insn (ival)) || is_c_sw_insn (ival))
+ {
+ ULONGEST offset = ULONGEST{EXTRACT_CLTYPE_LW_IMM (ival)};
+ return (!read_reg (regcache, decode_crs1_short (ival), addr)
+ || !save_mem (addr + offset, 4) || set_ordinary_record_type ());
+ }
+
+ if (is_c_nop_insn (ival))
+ return set_ordinary_record_type ();
+
+ if (is_c_addi_insn (ival))
+ return (!save_reg (decode_crs1 (ival)) || set_ordinary_record_type ());
+
+ if (m_xlen == 4 && is_c_jal_insn (ival))
+ return (!save_reg (RISCV_RA_REGNUM) || set_ordinary_record_type ());
+
+ if ((m_xlen == 8 && is_c_addiw_insn (ival)) || is_c_li_insn (ival))
+ return (!save_reg (decode_crs1 (ival)) || set_ordinary_record_type ());
+
+ if (is_c_addi16sp_insn (ival))
+ return (!save_reg (RISCV_SP_REGNUM) || set_ordinary_record_type ());
+
+ if (is_c_lui_insn (ival))
+ return (!save_reg (decode_crs1 (ival)) || set_ordinary_record_type ());
+
+ if (is_c_srli_insn (ival) || is_c_srai_insn (ival) || is_c_andi_insn (ival)
+ || is_c_sub_insn (ival) || is_c_xor_insn (ival) || is_c_or_insn (ival)
+ || is_c_and_insn (ival) || (m_xlen == 8 && is_c_subw_insn (ival))
+ || (m_xlen == 8 && is_c_addw_insn (ival)))
+ return (!save_reg (decode_crs1_short (ival))
+ || set_ordinary_record_type ());
+
+ if (is_c_j_insn (ival) || is_c_beqz_insn (ival) || is_c_bnez_insn (ival))
+ return set_ordinary_record_type ();
+
+ if (is_c_slli_insn (ival))
+ return (!save_reg (decode_crs1 (ival)) || set_ordinary_record_type ());
+
+ if (is_c_fldsp_insn (ival) || (m_xlen == 4 && is_c_flwsp_insn (ival)))
+ return (!save_reg (RISCV_FIRST_FP_REGNUM + decode_crs1 (ival))
+ || set_ordinary_record_type ());
+
+ if (is_c_lwsp_insn (ival) || (m_xlen == 8 && is_c_ldsp_insn (ival)))
+ return (!save_reg (decode_crs1 (ival)) || set_ordinary_record_type ());
+
+ if (is_c_jr_insn (ival))
+ return set_ordinary_record_type ();
+
+ if (is_c_mv_insn (ival))
+ return (!save_reg (decode_crs1 (ival)) || set_ordinary_record_type ());
+
+ if (is_c_ebreak_insn (ival))
+ {
+ m_record_type = record_type::EBREAK;
+ return true;
+ }
+
+ if (is_c_jalr_insn (ival))
+ return (!save_reg (RISCV_RA_REGNUM) || set_ordinary_record_type ());
+
+ if (is_c_add_insn (ival))
+ return (!save_reg (decode_crs1 (ival)) || set_ordinary_record_type ());
+
+ if (is_c_fsdsp_insn (ival) || (m_xlen == 8 && is_c_sdsp_insn (ival)))
+ {
+ ULONGEST offset = ULONGEST{EXTRACT_CSSTYPE_SDSP_IMM (ival)};
+ return (!read_reg (regcache, RISCV_SP_REGNUM, addr)
+ || !save_mem (addr + offset, 8) || set_ordinary_record_type ());
+ }
+
+ if (is_c_swsp_insn (ival) || (m_xlen == 4 && is_c_fswsp_insn (ival)))
+ {
+ ULONGEST offset = ULONGEST{EXTRACT_CSSTYPE_SWSP_IMM (ival)};
+ return (!read_reg (regcache, RISCV_SP_REGNUM, addr)
+ || !save_mem (addr + offset, 4) || set_ordinary_record_type ());
+ }
+
+ warning (_("Currently this instruction with len 2(%s) is unsupported"),
+ hex_string (ival));
+ return false;
+ }
+
+public:
+ /* Iterator for registers that need to be recorded. */
+ using regs_iter = recorded_regs::const_iterator;
+ /* Iterator for memory chunks that need to be recorded. */
+ using mems_iter = recorded_mems::const_iterator;
+
+ /* Record instruction at address addr. Returns false if error happened. */
+ bool
+ record (gdbarch *gdbarch, struct regcache *regcache, CORE_ADDR addr) noexcept
+ {
+ gdb_assert (gdbarch != nullptr);
+ gdb_assert (regcache != nullptr);
+
+ int m_length = 0;
+ m_xlen = riscv_isa_xlen (gdbarch);
+ ULONGEST ival = riscv_insn::fetch_instruction (gdbarch, addr, &m_length);
+ if (!save_reg (RISCV_PC_REGNUM))
+ return false;
+
+ if (m_length == 4)
+ return record_insn_len4 (ival, regcache);
+
+ if (m_length == 2)
+ return record_insn_len2 (ival, regcache);
+
+ /* 6 bytes or more. If the instruction is longer than 8 bytes, we don't
+ have full instruction bits in ival. At least, such long instructions
+ are not defined yet, so just ignore it. */
+ gdb_assert (m_length > 0 && m_length % 2 == 0);
+
+ warning (_("Can not record unknown instruction (opcode = %s)"),
+ hex_string (ival));
+ return false;
+ }
+
+ /* Get record type of instruction. */
+ record_type
+ get_record_type () const noexcept
+ {
+ return m_record_type;
+ }
+
+ /* Returns an iterator to the beginning of the registers that need
+ to be saved. */
+ regs_iter
+ regs_begin () const noexcept
+ {
+ return m_regs.begin ();
+ }
+
+ /* Returns an iterator to the end of the registers that need
+ to be saved. */
+ regs_iter
+ regs_end () const noexcept
+ {
+ return m_regs.end ();
+ }
+
+ /* Returns an iterator to the beginning of the memory chunks that need
+ to be saved. */
+ mems_iter
+ mems_begin () const noexcept
+ {
+ return m_mems.begin ();
+ }
+
+ /* Returns an iterator to the end of the memory chunks that need
+ to be saved. */
+ mems_iter
+ mems_end () const noexcept
+ {
+ return m_mems.end ();
+ }
+};
+
+/* A helper function to record instruction using record API. */
+
+static int
+riscv_record_insn_details (struct gdbarch *gdbarch, struct regcache *regcache,
+ const riscv_recorded_insn &insn)
+{
+ gdb_assert (gdbarch != nullptr);
+ gdb_assert (regcache != nullptr);
+
+ riscv_gdbarch_tdep *tdep = gdbarch_tdep<riscv_gdbarch_tdep> (gdbarch);
+ auto regs_begin = insn.regs_begin ();
+ auto regs_end = insn.regs_end ();
+ if (std::any_of (regs_begin,
+ regs_end,
+ [&regcache] (auto &&reg_it)
+ {
+ return record_full_arch_list_add_reg (regcache, reg_it);
+ }))
+ return -1;
+
+ auto mems_begin = insn.mems_begin ();
+ auto mems_end = insn.mems_end ();
+ if (std::any_of (mems_begin,
+ mems_end,
+ [] (auto &&mem_it)
+ {
+ return record_full_arch_list_add_mem (mem_it.first,
+ mem_it.second);
+ }))
+ return -1;
+
+ switch (insn.get_record_type ())
+ {
+ case riscv_recorded_insn::record_type::ORDINARY:
+ break;
+
+ case riscv_recorded_insn::record_type::ECALL:
+ {
+ if (!tdep->riscv_syscall_record)
+ {
+ warning (_("Syscall record is not supported"));
+ return -1;
+ }
+ ULONGEST reg_val = ULONGEST{};
+ if (!try_read (regcache, RISCV_A7_REGNUM, reg_val))
+ return -1;
+ return tdep->riscv_syscall_record (regcache, reg_val);
+ }
+
+ case riscv_recorded_insn::record_type::EBREAK:
+ break;
+
+ default:
+ return -1;
+ }
+ return 0;
+}
+
+/* Parse the current instruction and record the values of the registers and
+ memory that will be changed in current instruction to record_arch_list.
+ Return -1 if something is wrong. */
+
+int
+riscv_process_record (struct gdbarch *gdbarch, struct regcache *regcache,
+ CORE_ADDR addr)
+{
+ gdb_assert (gdbarch != nullptr);
+ gdb_assert (regcache != nullptr);
+
+ riscv_recorded_insn insn;
+ if (!insn.record (gdbarch, regcache, addr))
+ {
+ record_full_arch_list_add_end ();
+ return -1;
+ }
+
+ int ret_val = riscv_record_insn_details (gdbarch, regcache, insn);
+
+ if (record_full_arch_list_add_end ())
+ return -1;
+
+ return ret_val;
+}
diff --git a/gdb/riscv-tdep.h b/gdb/riscv-tdep.h
index 15c2c4c..2903aef 100644
--- a/gdb/riscv-tdep.h
+++ b/gdb/riscv-tdep.h
@@ -1,7 +1,7 @@
/* Target-dependent header for the RISC-V architecture, for GDB, the
GNU Debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -35,7 +35,11 @@ enum
RISCV_FP_REGNUM = 8, /* Frame Pointer. */
RISCV_A0_REGNUM = 10, /* First argument. */
RISCV_A1_REGNUM = 11, /* Second argument. */
- RISCV_A7_REGNUM = 17, /* Seventh argument. */
+ RISCV_A2_REGNUM = 12, /* Third argument. */
+ RISCV_A3_REGNUM = 13, /* Forth argument. */
+ RISCV_A4_REGNUM = 14, /* Fifth argument. */
+ RISCV_A5_REGNUM = 15, /* Sixth argument. */
+ RISCV_A7_REGNUM = 17, /* Register to pass syscall number. */
RISCV_PC_REGNUM = 32, /* Program Counter. */
RISCV_NUM_INTEGER_REGS = 32,
@@ -113,6 +117,10 @@ struct riscv_gdbarch_tdep : gdbarch_tdep_base
/* Return the expected next PC assuming FRAME is stopped at a syscall
instruction. */
CORE_ADDR (*syscall_next_pc) (const frame_info_ptr &frame) = nullptr;
+
+ /* Syscall record. */
+ int (*riscv_syscall_record) (struct regcache *regcache,
+ unsigned long svc_number) = nullptr;
};
@@ -177,6 +185,12 @@ extern void riscv_supply_regset (const struct regset *regset,
struct regcache *regcache, int regnum,
const void *regs, size_t len);
+/* Parse the current instruction, and record the values of the
+ registers and memory that will be changed by the current
+ instruction. Returns -1 if something goes wrong, 0 otherwise. */
+extern int riscv_process_record (struct gdbarch *gdbarch,
+ struct regcache *regcache, CORE_ADDR addr);
+
/* The names of the RISC-V target description features. */
extern const char *riscv_feature_name_csr;
diff --git a/gdb/rl78-tdep.c b/gdb/rl78-tdep.c
index f4aecce..f325f41 100644
--- a/gdb/rl78-tdep.c
+++ b/gdb/rl78-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the Renesas RL78 for GDB, the GNU debugger.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
diff --git a/gdb/rs6000-aix-nat.c b/gdb/rs6000-aix-nat.c
index 674189b..225d1b8 100644
--- a/gdb/rs6000-aix-nat.c
+++ b/gdb/rs6000-aix-nat.c
@@ -1,6 +1,6 @@
/* IBM RS/6000 native-dependent code for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/rs6000-aix-tdep.c b/gdb/rs6000-aix-tdep.c
index e6255b1..ab9feb3 100644
--- a/gdb/rs6000-aix-tdep.c
+++ b/gdb/rs6000-aix-tdep.c
@@ -1,6 +1,6 @@
/* Native support code for PPC AIX, for GDB the GNU debugger.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
Free Software Foundation, Inc.
diff --git a/gdb/rs6000-aix-tdep.h b/gdb/rs6000-aix-tdep.h
index 5e4f786..da3623d 100644
--- a/gdb/rs6000-aix-tdep.h
+++ b/gdb/rs6000-aix-tdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/rs6000-lynx178-tdep.c b/gdb/rs6000-lynx178-tdep.c
index a5a6bb9..38af2ac 100644
--- a/gdb/rs6000-lynx178-tdep.c
+++ b/gdb/rs6000-lynx178-tdep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index 0d1c89b..23ccd92 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -6951,7 +6951,7 @@ ppc_process_record_prefix_store_vsx_ds_form (struct gdbarch *gdbarch,
}
/* Record the prefixed VSX, form D, instructions. The arguments are the
- instruction address for PC-relative addresss (addr), the first 32-bits of
+ instruction address for PC-relative address (addr), the first 32-bits of
the instruction (insn_prefix) and the following 32-bits of the instruction
(insn_suffix). Return 0 on success. */
@@ -7583,7 +7583,7 @@ ppc64_update_call_site_pc (struct gdbarch *gdbarch, CORE_ADDR pc)
return pc + 4;
}
-/* Initialize the current architecture based on INFO. If possible, re-use an
+/* Initialize the current architecture based on INFO. If possible, reuse an
architecture from ARCHES, which is a list of architectures already created
during this debugging session.
diff --git a/gdb/run-on-main-thread.c b/gdb/run-on-main-thread.c
index 746ea35..edaab08 100644
--- a/gdb/run-on-main-thread.c
+++ b/gdb/run-on-main-thread.c
@@ -1,5 +1,5 @@
/* Run a function on the main thread
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -83,7 +83,7 @@ run_events (int error, gdb_client_data client_data)
}
catch (const gdb_exception_quit &e)
{
- /* Should cancelation of a runnable event cancel the execution of
+ /* Should cancellation of a runnable event cancel the execution of
the following one? The answer is not clear, so keep doing what
we've done so far: ignore this exception. */
}
diff --git a/gdb/run-on-main-thread.h b/gdb/run-on-main-thread.h
index 4f370dd..edbd87d 100644
--- a/gdb/run-on-main-thread.h
+++ b/gdb/run-on-main-thread.h
@@ -1,5 +1,5 @@
/* Run a function on the main thread
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/rust-exp.h b/gdb/rust-exp.h
index e0496e1..3185242 100644
--- a/gdb/rust-exp.h
+++ b/gdb/rust-exp.h
@@ -1,6 +1,6 @@
/* Definitions for Rust expressions
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -33,14 +33,6 @@ extern struct value *eval_op_rust_array (struct type *expect_type,
enum exp_opcode opcode,
struct value *ncopies,
struct value *elt);
-extern struct value *rust_subscript (struct type *expect_type,
- struct expression *exp,
- enum noside noside, bool for_addr,
- struct value *lhs, struct value *rhs);
-extern struct value *rust_range (struct type *expect_type,
- struct expression *exp,
- enum noside noside, enum range_flag kind,
- struct value *low, struct value *high);
namespace expr
{
@@ -75,22 +67,26 @@ public:
struct expression *exp,
enum noside noside) override
{
- value *arg1 = std::get<0> (m_storage)->evaluate (nullptr, exp, noside);
- value *arg2 = std::get<1> (m_storage)->evaluate (nullptr, exp, noside);
- return rust_subscript (expect_type, exp, noside, false, arg1, arg2);
+ return subscript (exp, noside, false);
}
value *slice (struct type *expect_type,
struct expression *exp,
enum noside noside)
{
- value *arg1 = std::get<0> (m_storage)->evaluate (nullptr, exp, noside);
- value *arg2 = std::get<1> (m_storage)->evaluate (nullptr, exp, noside);
- return rust_subscript (expect_type, exp, noside, true, arg1, arg2);
+ return subscript (exp, noside, true);
}
enum exp_opcode opcode () const override
{ return BINOP_SUBSCRIPT; }
+
+private:
+
+ /* Helper function that does the work of evaluation. FOR_ADDR is
+ true if we're evaluating a slice. */
+ value *subscript (struct expression *exp, enum noside noside,
+ bool for_addr);
+
};
class rust_unop_addr_operation
@@ -126,17 +122,7 @@ public:
value *evaluate (struct type *expect_type,
struct expression *exp,
- enum noside noside) override
- {
- auto kind = std::get<0> (m_storage);
- value *low = nullptr;
- if (std::get<1> (m_storage) != nullptr)
- low = std::get<1> (m_storage)->evaluate (nullptr, exp, noside);
- value *high = nullptr;
- if (std::get<2> (m_storage) != nullptr)
- high = std::get<2> (m_storage)->evaluate (nullptr, exp, noside);
- return rust_range (expect_type, exp, noside, kind, low, high);
- }
+ enum noside noside) override;
enum exp_opcode opcode () const override
{ return OP_RANGE; }
diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c
index d4cd880..3957413 100644
--- a/gdb/rust-lang.c
+++ b/gdb/rust-lang.c
@@ -1,6 +1,6 @@
/* Rust language support routines for GDB, the GNU debugger.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -116,7 +116,8 @@ rust_tuple_type_p (struct type *type)
}
/* Return true if all non-static fields of a structlike type are in a
- sequence like __0, __1, __2. */
+ sequence like 0, 1, 2. "__" prefixes are also accepted -- rustc
+ emits "__0" but gccrs emits "0". */
static bool
rust_underscore_fields (struct type *type)
@@ -131,8 +132,12 @@ rust_underscore_fields (struct type *type)
{
char buf[20];
- xsnprintf (buf, sizeof (buf), "__%d", field_number);
- if (strcmp (buf, type->field (i).name ()) != 0)
+ xsnprintf (buf, sizeof (buf), "%d", field_number);
+
+ const char *field_name = type->field (i).name ();
+ if (startswith (field_name, "__"))
+ field_name += 2;
+ if (strcmp (buf, field_name) != 0)
return false;
field_number++;
}
@@ -1137,13 +1142,22 @@ rust_slice_type (const char *name, struct type *elt_type,
-/* A helper for rust_evaluate_subexp that handles OP_RANGE. */
+namespace expr
+{
struct value *
-rust_range (struct type *expect_type, struct expression *exp,
- enum noside noside, enum range_flag kind,
- struct value *low, struct value *high)
+rust_range_operation::evaluate (struct type *expect_type,
+ struct expression *exp,
+ enum noside noside)
{
+ auto kind = std::get<0> (m_storage);
+ value *low = nullptr;
+ if (std::get<1> (m_storage) != nullptr)
+ low = std::get<1> (m_storage)->evaluate (nullptr, exp, noside);
+ value *high = nullptr;
+ if (std::get<2> (m_storage) != nullptr)
+ high = std::get<2> (m_storage)->evaluate (nullptr, exp, noside);
+
struct value *addrval, *result;
CORE_ADDR addr;
struct type *range_type;
@@ -1220,6 +1234,8 @@ rust_range (struct type *expect_type, struct expression *exp,
return result;
}
+} /* namespace expr */
+
/* A helper function to compute the range and kind given a range
value. TYPE is the type of the range value. RANGE is the range
value. LOW, HIGH, and KIND are out parameters. The LOW and HIGH
@@ -1261,13 +1277,16 @@ rust_compute_range (struct type *type, struct value *range,
}
}
-/* A helper for rust_evaluate_subexp that handles BINOP_SUBSCRIPT. */
+namespace expr
+{
struct value *
-rust_subscript (struct type *expect_type, struct expression *exp,
- enum noside noside, bool for_addr,
- struct value *lhs, struct value *rhs)
+rust_subscript_operation::subscript (struct expression *exp,
+ enum noside noside, bool for_addr)
{
+ value *lhs = std::get<0> (m_storage)->evaluate (nullptr, exp, noside);
+ value *rhs = std::get<1> (m_storage)->evaluate (nullptr, exp, noside);
+
struct value *result;
struct type *rhstype;
LONGEST low, high_bound;
@@ -1408,9 +1427,6 @@ rust_subscript (struct type *expect_type, struct expression *exp,
return result;
}
-namespace expr
-{
-
struct value *
rust_unop_ind_operation::evaluate (struct type *expect_type,
struct expression *exp,
@@ -1455,7 +1471,7 @@ eval_op_rust_array (struct type *expect_type, struct expression *exp,
if (copies < 0)
error (_("Array with negative number of elements"));
- if (noside == EVAL_NORMAL)
+ if (noside == EVAL_NORMAL && copies > 0)
return value_array (0, std::vector<value *> (copies, elt));
else
{
@@ -1476,7 +1492,7 @@ rust_struct_anon::evaluate (struct type *expect_type,
value *lhs = std::get<1> (m_storage)->evaluate (nullptr, exp, noside);
int field_number = std::get<0> (m_storage);
- struct type *type = lhs->type ();
+ struct type *type = check_typedef (lhs->type ());
if (type->code () == TYPE_CODE_STRUCT)
{
diff --git a/gdb/rust-lang.h b/gdb/rust-lang.h
index c3369a0..b35968e 100644
--- a/gdb/rust-lang.h
+++ b/gdb/rust-lang.h
@@ -1,6 +1,6 @@
/* Rust language support definitions for GDB, the GNU debugger.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/rust-parse.c b/gdb/rust-parse.c
index e25ae54..ef64005 100644
--- a/gdb/rust-parse.c
+++ b/gdb/rust-parse.c
@@ -1,6 +1,6 @@
/* Rust expression parsing for GDB, the GNU debugger.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/rx-tdep.c b/gdb/rx-tdep.c
index 18d1848..f767666 100644
--- a/gdb/rx-tdep.c
+++ b/gdb/rx-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the Renesas RX for GDB, the GNU debugger.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
diff --git a/gdb/s12z-tdep.c b/gdb/s12z-tdep.c
index faef1a4..70f8598 100644
--- a/gdb/s12z-tdep.c
+++ b/gdb/s12z-tdep.c
@@ -1,5 +1,5 @@
/* Target-dependent code for the S12Z, for the GDB.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/s390-linux-nat.c b/gdb/s390-linux-nat.c
index 0726536..d5964e2 100644
--- a/gdb/s390-linux-nat.c
+++ b/gdb/s390-linux-nat.c
@@ -1,5 +1,5 @@
/* S390 native-dependent code for GDB, the GNU debugger.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
Contributed by D.J. Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com)
for IBM Deutschland Entwicklung GmbH, IBM Corporation.
diff --git a/gdb/s390-linux-tdep.c b/gdb/s390-linux-tdep.c
index 96d6d44..bd1f42c 100644
--- a/gdb/s390-linux-tdep.c
+++ b/gdb/s390-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux on s390.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
Contributed by D.J. Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com)
for IBM Deutschland Entwicklung GmbH, IBM Corporation.
@@ -29,6 +29,7 @@
#include "gdbcore.h"
#include "linux-record.h"
#include "linux-tdep.h"
+#include "svr4-tls-tdep.h"
#include "objfiles.h"
#include "osabi.h"
#include "regcache.h"
@@ -40,6 +41,7 @@
#include "target.h"
#include "trad-frame.h"
#include "xml-syscall.h"
+#include "inferior.h"
#include "features/s390-linux32v1.c"
#include "features/s390-linux32v2.c"
@@ -1124,6 +1126,45 @@ s390_init_linux_record_tdep (struct linux_record_tdep *record_tdep,
record_tdep->ioctl_FIOQSIZE = 0x545e;
}
+/* Fetch and return the TLS DTV (dynamic thread vector) address for PTID.
+ Throw a suitable TLS error if something goes wrong. */
+
+static CORE_ADDR
+s390_linux_get_tls_dtv_addr (struct gdbarch *gdbarch, ptid_t ptid,
+ enum svr4_tls_libc libc)
+{
+ /* On S390, the thread pointer is found in two registers A0 and A1
+ (or, using gdb naming, acr0 and acr1) A0 contains the top 32
+ bits of the address and A1 contains the bottom 32 bits. */
+ regcache *regcache
+ = get_thread_arch_regcache (current_inferior (), ptid, gdbarch);
+ target_fetch_registers (regcache, S390_A0_REGNUM);
+ target_fetch_registers (regcache, S390_A1_REGNUM);
+ ULONGEST thr_ptr_lo, thr_ptr_hi, thr_ptr;
+ if (regcache->cooked_read (S390_A0_REGNUM, &thr_ptr_hi) != REG_VALID
+ || regcache->cooked_read (S390_A1_REGNUM, &thr_ptr_lo) != REG_VALID)
+ throw_error (TLS_GENERIC_ERROR, _("Unable to fetch thread pointer"));
+ thr_ptr = (thr_ptr_hi << 32) + thr_ptr_lo;
+
+ /* The thread pointer points at the TCB (thread control block). The
+ first two members of this struct are both pointers, where the
+ first will be a pointer to the TCB (i.e. it points at itself)
+ and the second will be a pointer to the DTV (dynamic thread
+ vector). There are many other fields too, but the one we care
+ about here is the DTV pointer. Compute the address of the DTV
+ pointer, fetch it, and convert it to an address. */
+ CORE_ADDR dtv_ptr_addr
+ = thr_ptr + gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT;
+ gdb::byte_vector buf (gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT);
+ if (target_read_memory (dtv_ptr_addr, buf.data (), buf.size ()) != 0)
+ throw_error (TLS_GENERIC_ERROR, _("Unable to fetch DTV address"));
+
+ const struct builtin_type *builtin = builtin_type (gdbarch);
+ CORE_ADDR dtv_addr = gdbarch_pointer_to_address
+ (gdbarch, builtin->builtin_data_ptr, buf.data ());
+ return dtv_addr;
+}
+
/* Initialize OSABI common for GNU/Linux on 31- and 64-bit systems. */
static void
@@ -1152,6 +1193,9 @@ s390_linux_init_abi_any (struct gdbarch_info info, struct gdbarch *gdbarch)
/* Enable TLS support. */
set_gdbarch_fetch_tls_load_module_address (gdbarch,
svr4_fetch_objfile_link_map);
+ set_gdbarch_get_thread_local_address (gdbarch,
+ svr4_tls_get_thread_local_address);
+ svr4_tls_register_tls_methods (info, gdbarch, s390_linux_get_tls_dtv_addr);
/* Support reverse debugging. */
set_gdbarch_process_record_signal (gdbarch, s390_linux_record_signal);
diff --git a/gdb/s390-linux-tdep.h b/gdb/s390-linux-tdep.h
index b2efb5b..05ef893 100644
--- a/gdb/s390-linux-tdep.h
+++ b/gdb/s390-linux-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux on s390.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c
index 41faf93..a3b7658 100644
--- a/gdb/s390-tdep.c
+++ b/gdb/s390-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for s390.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -41,6 +41,8 @@
#include "value.h"
#include "inferior.h"
#include "dwarf2/loc.h"
+#include "gdbsupport/selftest.h"
+#include "gdb/disasm-selftests.h"
#include "features/s390-linux32.c"
#include "features/s390x-linux64.c"
@@ -2488,7 +2490,7 @@ s390_prologue_frame_unwind_cache (const frame_info_ptr &this_frame,
size zero. This is only possible if the next frame is a sentinel
frame, a dummy frame, or a signal trampoline frame. */
/* FIXME: cagney/2004-05-01: This sanity check shouldn't be
- needed, instead the code should simpliy rely on its
+ needed, instead the code should simply rely on its
analysis. */
next_frame = get_next_frame (this_frame);
while (next_frame && get_frame_type (next_frame) == INLINE_FRAME)
@@ -2537,7 +2539,7 @@ s390_prologue_frame_unwind_cache (const frame_info_ptr &this_frame,
code at a point where the frame pointer has already been restored.
This can only happen in an innermost frame. */
/* FIXME: cagney/2004-05-01: This sanity check shouldn't be needed,
- instead the code should simpliy rely on its analysis. */
+ instead the code should simply rely on its analysis. */
next_frame = get_next_frame (this_frame);
while (next_frame && get_frame_type (next_frame) == INLINE_FRAME)
next_frame = get_next_frame (next_frame);
@@ -7468,6 +7470,51 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
return gdbarch;
}
+#if GDB_SELF_TEST
+namespace selftests {
+
+/* Return bfd_arch_info representing s390x. */
+
+static const bfd_arch_info *
+bfd_arch_info_s390x ()
+{
+ return bfd_lookup_arch (bfd_arch_s390, bfd_mach_s390_64);
+}
+
+/* Return gdbarch representing s390x. */
+
+static gdbarch *
+gdbarch_s390x ()
+{
+ struct gdbarch_info info;
+ info.bfd_arch_info = bfd_arch_info_s390x ();
+ if (info.bfd_arch_info == nullptr)
+ return nullptr;
+
+ info.osabi = GDB_OSABI_NONE;
+ return gdbarch_find_by_info (info);
+}
+
+/* Check disassembly of s390x instructions. */
+
+static void
+disassemble_s390x ()
+{
+ gdbarch *gdbarch = gdbarch_s390x ();
+ if (gdbarch == nullptr)
+ return;
+
+ scoped_restore disassembler_options_restore
+ = make_scoped_restore (&s390_disassembler_options, "zarch");
+
+ gdb::byte_vector insn = { 0xb9, 0x68, 0x00, 0x03 };
+ disassemble_insn (gdbarch, insn, "clzg\t%r0,%r3");
+}
+
+} /* namespace selftests */
+
+#endif /* GDB_SELF_TEST */
+
void _initialize_s390_tdep ();
void
_initialize_s390_tdep ()
@@ -7477,4 +7524,9 @@ _initialize_s390_tdep ()
initialize_tdesc_s390_linux32 ();
initialize_tdesc_s390x_linux64 ();
+
+#if GDB_SELF_TEST
+ selftests::register_test ("disassemble-s390x",
+ selftests::disassemble_s390x);
+#endif /* GDB_SELF_TEST */
}
diff --git a/gdb/s390-tdep.h b/gdb/s390-tdep.h
index d8f5fd5..80ca3b4 100644
--- a/gdb/s390-tdep.h
+++ b/gdb/s390-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for s390.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sanitize.m4 b/gdb/sanitize.m4
index 21c8730..71624e9 100644
--- a/gdb/sanitize.m4
+++ b/gdb/sanitize.m4
@@ -1,5 +1,5 @@
dnl Sanitization-related configure macro for GDB
-dnl Copyright (C) 2018-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 2018-2025 Free Software Foundation, Inc.
dnl
dnl This file is part of GDB.
dnl
diff --git a/gdb/scoped-mock-context.h b/gdb/scoped-mock-context.h
index 6fd83da..e581e10 100644
--- a/gdb/scoped-mock-context.h
+++ b/gdb/scoped-mock-context.h
@@ -1,6 +1,6 @@
/* RAII type to create a temporary mock context.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -75,7 +75,7 @@ struct scoped_mock_context
}
};
-} // namespace selftests
+} /* namespace selftests */
#endif /* GDB_SELF_TEST */
#endif /* GDB_SCOPED_MOCK_CONTEXT_H */
diff --git a/gdb/selftest-arch.c b/gdb/selftest-arch.c
index a337f76..452258c 100644
--- a/gdb/selftest-arch.c
+++ b/gdb/selftest-arch.c
@@ -1,5 +1,5 @@
/* GDB self-test for each gdbarch.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -108,5 +108,24 @@ reset ()
registers_changed ();
reinit_frame_cache ();
}
-} // namespace selftests
+
+/* See selftest-arch.h. */
+
+bool
+selftest_skip_warning_arch (struct gdbarch *gdbarch)
+{
+ const char *name = gdbarch_bfd_arch_info (gdbarch)->printable_name;
+
+ /* Avoid warning:
+ Running selftest <test>::m68hc11.
+ warning: No frame soft register found in the symbol table.
+ Stack backtrace will not work.
+ We could instead capture the output and then filter out the warning, but
+ that seems more trouble than it's worth. */
+ return (strcmp (name, "m68hc11") == 0
+ || strcmp (name, "m68hc12") == 0
+ || strcmp (name, "m68hc12:HCS12") == 0);
+}
+
+} /* namespace selftests */
#endif /* GDB_SELF_TEST */
diff --git a/gdb/selftest-arch.h b/gdb/selftest-arch.h
index db11723..6d214a2 100644
--- a/gdb/selftest-arch.h
+++ b/gdb/selftest-arch.h
@@ -1,5 +1,5 @@
/* GDB self-test for each gdbarch.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -29,6 +29,11 @@ namespace selftests
extern void
register_test_foreach_arch (const std::string &name,
self_test_foreach_arch_function *function);
+
+/* Return true if GDBARCH should be skipped in some selftests to avoid
+ warnings. */
+
+extern bool selftest_skip_warning_arch (struct gdbarch *gdbarch);
}
#endif /* GDB_SELFTEST_ARCH_H */
diff --git a/gdb/sentinel-frame.c b/gdb/sentinel-frame.c
index c809259..410a6f4 100644
--- a/gdb/sentinel-frame.c
+++ b/gdb/sentinel-frame.c
@@ -1,6 +1,6 @@
/* Code dealing with register stack frames, for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sentinel-frame.h b/gdb/sentinel-frame.h
index b2d4d75..61decb1 100644
--- a/gdb/sentinel-frame.h
+++ b/gdb/sentinel-frame.h
@@ -1,6 +1,6 @@
/* Code dealing with register stack frames, for GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ser-base.c b/gdb/ser-base.c
index 838560e..1c085cd 100644
--- a/gdb/ser-base.c
+++ b/gdb/ser-base.c
@@ -1,6 +1,6 @@
/* Generic serial interface functions.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ser-base.h b/gdb/ser-base.h
index ecb7c99..524278d 100644
--- a/gdb/ser-base.h
+++ b/gdb/ser-base.h
@@ -1,6 +1,6 @@
/* Generic serial interface functions.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ser-event.c b/gdb/ser-event.c
index b039e86..7473ed1 100644
--- a/gdb/ser-event.c
+++ b/gdb/ser-event.c
@@ -1,5 +1,5 @@
/* Serial interface for a selectable event.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ser-event.h b/gdb/ser-event.h
index 08fc62b..96720b9 100644
--- a/gdb/ser-event.h
+++ b/gdb/ser-event.h
@@ -1,5 +1,5 @@
/* Serial interface for a selectable event.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ser-go32.c b/gdb/ser-go32.c
index 2802a44..c6b34ab 100644
--- a/gdb/ser-go32.c
+++ b/gdb/ser-go32.c
@@ -1,5 +1,5 @@
/* Remote serial interface for local (hardwired) serial ports for GO32.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
Contributed by Nigel Stephens, Algorithmics Ltd. (nigel@algor.co.uk).
diff --git a/gdb/ser-mingw.c b/gdb/ser-mingw.c
index 2603bb8..db733c3 100644
--- a/gdb/ser-mingw.c
+++ b/gdb/ser-mingw.c
@@ -1,6 +1,6 @@
/* Serial interface for local (hardwired) serial ports on Windows systems
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -281,10 +281,10 @@ ser_windows_wait_handle (struct serial *scb, HANDLE *read, HANDLE *except)
cleared, and we get a duplicated event, if the last batch
of characters included at least two arriving close together. */
if (!SetCommMask (h, 0))
- warning (_("ser_windows_wait_handle: reseting mask failed"));
+ warning (_("ser_windows_wait_handle: resetting mask failed"));
if (!SetCommMask (h, EV_RXCHAR))
- warning (_("ser_windows_wait_handle: reseting mask failed (2)"));
+ warning (_("ser_windows_wait_handle: resetting mask failed (2)"));
/* There's a potential race condition here; we must check cbInQue
and not wait if that's nonzero. */
diff --git a/gdb/ser-pipe.c b/gdb/ser-pipe.c
index 4931203..16f7419 100644
--- a/gdb/ser-pipe.c
+++ b/gdb/ser-pipe.c
@@ -1,5 +1,5 @@
/* Serial interface for a pipe to a separate program
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
diff --git a/gdb/ser-tcp.c b/gdb/ser-tcp.c
index 18d9123..122b913 100644
--- a/gdb/ser-tcp.c
+++ b/gdb/ser-tcp.c
@@ -1,6 +1,6 @@
/* Serial interface for raw TCP connections on Un*x like systems.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ser-tcp.h b/gdb/ser-tcp.h
index a1ebcf3..988fc0f 100644
--- a/gdb/ser-tcp.h
+++ b/gdb/ser-tcp.h
@@ -1,6 +1,6 @@
/* Serial interface for raw TCP connections on Un*x like systems.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ser-uds.c b/gdb/ser-uds.c
index 8da4c7a..64e1599 100644
--- a/gdb/ser-uds.c
+++ b/gdb/ser-uds.c
@@ -1,6 +1,6 @@
/* Serial interface for local domain connections on Un*x like systems.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ser-unix.c b/gdb/ser-unix.c
index 02845aa..64db84b 100644
--- a/gdb/ser-unix.c
+++ b/gdb/ser-unix.c
@@ -1,6 +1,6 @@
/* Serial interface for local (hardwired) serial ports on Un*x like systems
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -30,9 +30,33 @@
#include "gdbsupport/gdb_select.h"
#include "cli/cli-cmds.h"
#include "gdbsupport/filestuff.h"
-#include <termios.h>
+
+#ifdef HAVE_SYS_IOCTL_H
+# include <sys/ioctl.h>
+#endif
+
+#if HAVE_IOKIT_SERIAL_IOSS_H
+# include <IOKit/serial/ioss.h>
+#endif
+
+#if HAVE_ASM_TERMIOS_H
+/* Workaround to resolve conflicting declarations of termios
+ in <asm/termbits.h> and <termios.h>. */
+# define termios asmtermios
+# include <asm/termbits.h>
+# undef termios
+#endif
+
+#ifdef HAVE_TERMIOS_H
+# include <termios.h>
+#endif
+
#include "gdbsupport/scoped_ignore_sigttou.h"
+#if defined(HAVE_SYS_IOCTL_H) && (defined(BOTHER) || defined(IOSSIOSPEED))
+# define HAVE_CUSTOM_BAUDRATE_SUPPORT 1
+#endif
+
struct hardwire_ttystate
{
struct termios termios;
@@ -289,14 +313,32 @@ baudtab[] =
4800, B4800
}
,
+#ifdef B7200
+ {
+ 7200, B7200
+ }
+ ,
+#endif
{
9600, B9600
}
,
+#ifdef B14400
+ {
+ 14400, B14400
+ }
+ ,
+#endif
{
19200, B19200
}
,
+#ifdef B28800
+ {
+ 28800, B28800
+ }
+ ,
+#endif
{
38400, B38400
}
@@ -307,6 +349,12 @@ baudtab[] =
}
,
#endif
+#ifdef B76800
+ {
+ 76800, B76800
+ }
+ ,
+#endif
#ifdef B115200
{
115200, B115200
@@ -404,7 +452,7 @@ rate_to_code (int rate)
for (i = 0; baudtab[i].rate != -1; i++)
{
- /* test for perfect macth. */
+ /* test for perfect match. */
if (rate == baudtab[i].rate)
return baudtab[i].code;
else
@@ -412,6 +460,7 @@ rate_to_code (int rate)
/* check if it is in between valid values. */
if (rate < baudtab[i].rate)
{
+#if !HAVE_CUSTOM_BAUDRATE_SUPPORT
if (i)
{
error (_("Invalid baud rate %d. "
@@ -423,29 +472,126 @@ rate_to_code (int rate)
error (_("Invalid baud rate %d. Minimum value is %d."),
rate, baudtab[0].rate);
}
+#else
+ return -1;
+#endif
}
}
}
-
+
+#if !HAVE_CUSTOM_BAUDRATE_SUPPORT
/* The requested speed was too large. */
error (_("Invalid baud rate %d. Maximum value is %d."),
rate, baudtab[i - 1].rate);
+#else
+ return -1;
+#endif
}
+/* Set baud rate using B_code from termios.h. */
+
static void
-hardwire_setbaudrate (struct serial *scb, int rate)
+set_baudcode_baudrate (struct serial *scb, int baud_code)
{
struct hardwire_ttystate state;
- int baud_code = rate_to_code (rate);
-
+
if (get_tty_state (scb, &state))
- perror_with_name ("could not get tty state");
+ perror_with_name (_("could not get tty state"));
cfsetospeed (&state.termios, baud_code);
cfsetispeed (&state.termios, baud_code);
if (set_tty_state (scb, &state))
- perror_with_name ("could not set tty state");
+ perror_with_name (_("could not set tty state"));
+}
+
+#if HAVE_CUSTOM_BAUDRATE_SUPPORT && defined(BOTHER)
+
+/* Set a custom baud rate using the termios BOTHER. */
+
+static void
+set_custom_baudrate_linux (int fd, int rate)
+{
+#ifdef TCGETS2
+ struct termios2 tio;
+ const unsigned long req_get = TCGETS2;
+ const unsigned long req_set = TCSETS2;
+#else
+ struct termios tio;
+ const unsigned long req_get = TCGETS;
+ const unsigned long req_set = TCSETS;
+#endif
+
+ if (ioctl (fd, req_get, &tio) < 0)
+ perror_with_name (_("Can not get current baud rate"));
+
+ /* Clear the current output baud rate and fill a new value. */
+ tio.c_cflag &= ~CBAUD;
+ tio.c_cflag |= BOTHER;
+ tio.c_ospeed = rate;
+
+ /* Clear the current input baud rate and fill a new value. */
+ tio.c_cflag &= ~(CBAUD << IBSHIFT);
+ tio.c_cflag |= BOTHER << IBSHIFT;
+ tio.c_ispeed = rate;
+
+ if (ioctl (fd, req_set, &tio) < 0)
+ perror_with_name (_("Can not set custom baud rate"));
+}
+
+#elif HAVE_CUSTOM_BAUDRATE_SUPPORT && defined(IOSSIOSPEED)
+
+/* Set a custom baud rate using the IOSSIOSPEED ioctl call. */
+
+static void
+set_custom_baudrate_darwin (int fd, int rate)
+{
+
+ if (ioctl (fd, IOSSIOSPEED, &rate) < 0)
+ perror_with_name (_("Can not set custom baud rate"));
+}
+
+#endif /* HAVE_CUSTOM_BAUDRATE_SUPPORT
+ && (defined(BOTHER) || defined(IOSSIOSPEED)) */
+
+#if HAVE_CUSTOM_BAUDRATE_SUPPORT
+
+/* Set a baud rate that differs from the OS B_codes.
+ This is possible if one of the following macros is available:
+ - BOTHER (Linux).
+ - IOSSIOSPEED (Darwin). */
+
+static void
+set_custom_baudrate (int fd, int rate)
+{
+#if defined(BOTHER)
+ set_custom_baudrate_linux (fd, rate);
+#elif defined(IOSSIOSPEED)
+ set_custom_baudrate_darwin (fd, rate);
+#endif
+}
+
+#endif /* HAVE_CUSTOM_BAUDRATE_SUPPORT */
+
+/* Set the baud rate for the serial communication. */
+
+static void
+hardwire_setbaudrate (struct serial *scb, int rate)
+{
+ int baud_code = rate_to_code (rate);
+
+ if (baud_code < 0)
+ {
+#if HAVE_CUSTOM_BAUDRATE_SUPPORT
+ set_custom_baudrate (scb->fd, rate);
+#else
+ /* An error should already have been thrown by rate_to_code().
+ Add an additional error in case execution somehow reaches this line. */
+ gdb_assert_not_reached ("Serial baud rate was not found in B_codes");
+#endif
+ }
+ else
+ set_baudcode_baudrate (scb, baud_code);
}
static int
diff --git a/gdb/ser-unix.h b/gdb/ser-unix.h
index 487921f..048ab84 100644
--- a/gdb/ser-unix.h
+++ b/gdb/ser-unix.h
@@ -1,6 +1,6 @@
/* Serial interface for UN*X file-descriptor based connection.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/serial.c b/gdb/serial.c
index f96668a..bab8480 100644
--- a/gdb/serial.c
+++ b/gdb/serial.c
@@ -1,6 +1,6 @@
/* Generic serial interface routines
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/serial.h b/gdb/serial.h
index 017b890..1f26dc6 100644
--- a/gdb/serial.h
+++ b/gdb/serial.h
@@ -1,5 +1,5 @@
/* Remote serial support interface definitions for GDB, the GNU Debugger.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sh-linux-tdep.c b/gdb/sh-linux-tdep.c
index affbf55..f0b35d3 100644
--- a/gdb/sh-linux-tdep.c
+++ b/gdb/sh-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux Super-H.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sh-netbsd-nat.c b/gdb/sh-netbsd-nat.c
index c3c31e9..25aafe1 100644
--- a/gdb/sh-netbsd-nat.c
+++ b/gdb/sh-netbsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for NetBSD/sh.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Wasabi Systems, Inc.
diff --git a/gdb/sh-netbsd-tdep.c b/gdb/sh-netbsd-tdep.c
index fec6a2e..f99566f 100644
--- a/gdb/sh-netbsd-tdep.c
+++ b/gdb/sh-netbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for NetBSD/sh.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Wasabi Systems, Inc.
diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c
index 375b796..59a67bf 100644
--- a/gdb/sh-tdep.c
+++ b/gdb/sh-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for Renesas Super-H, for GDB.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sh-tdep.h b/gdb/sh-tdep.h
index dd52440..073f06d 100644
--- a/gdb/sh-tdep.h
+++ b/gdb/sh-tdep.h
@@ -1,5 +1,5 @@
/* Target-specific definition for a Renesas Super-H.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sim-regno.h b/gdb/sim-regno.h
index 76ecfea..f8ebbc1 100644
--- a/gdb/sim-regno.h
+++ b/gdb/sim-regno.h
@@ -1,6 +1,6 @@
/* Generic remote debugging interface for simulators.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
diff --git a/gdb/skip.c b/gdb/skip.c
index aaa0785..a077241 100644
--- a/gdb/skip.c
+++ b/gdb/skip.c
@@ -1,6 +1,6 @@
/* Skipping uninteresting files and functions while stepping.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/skip.h b/gdb/skip.h
index 5625a79..50d79b4 100644
--- a/gdb/skip.h
+++ b/gdb/skip.h
@@ -1,6 +1,6 @@
/* Header for skipping over uninteresting files and functions when debugging.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/sol-thread.c b/gdb/sol-thread.c
index db86079..07e00a2 100644
--- a/gdb/sol-thread.c
+++ b/gdb/sol-thread.c
@@ -1,6 +1,6 @@
/* Solaris threads debugging interface.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -1108,33 +1108,24 @@ info_solthreads (const char *args, int from_tty)
TD_SIGNO_MASK, TD_THR_ANY_USER_FLAGS);
}
-/* Callback routine used to find a thread based on the TID part of
- its PTID. */
-
-static int
-thread_db_find_thread_from_tid (struct thread_info *thread, void *data)
-{
- ULONGEST *tid = (ULONGEST *) data;
-
- if (thread->ptid.tid () == *tid)
- return 1;
-
- return 0;
-}
-
ptid_t
sol_thread_target::get_ada_task_ptid (long lwp, ULONGEST thread)
{
- struct thread_info *thread_info =
- iterate_over_threads (thread_db_find_thread_from_tid, &thread);
+ auto thread_db_find_thread_from_tid
+ = [&] (struct thread_info *iter)
+ {
+ return iter->ptid.tid () == thread;
+ };
+
+ struct thread_info *thread_info
+ = iterate_over_threads (thread_db_find_thread_from_tid);
if (thread_info == NULL)
{
/* The list of threads is probably not up to date. Find any
thread that is missing from the list, and try again. */
update_thread_list ();
- thread_info = iterate_over_threads (thread_db_find_thread_from_tid,
- &thread);
+ thread_info = iterate_over_threads (thread_db_find_thread_from_tid);
}
gdb_assert (thread_info != NULL);
diff --git a/gdb/sol2-tdep.c b/gdb/sol2-tdep.c
index 0beab74..cfad8f2 100644
--- a/gdb/sol2-tdep.c
+++ b/gdb/sol2-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for Solaris.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sol2-tdep.h b/gdb/sol2-tdep.h
index 8e505d3..c042639 100644
--- a/gdb/sol2-tdep.h
+++ b/gdb/sol2-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for Solaris.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/solib-aix.c b/gdb/solib-aix.c
index 926f1ed..4af83de 100644
--- a/gdb/solib-aix.c
+++ b/gdb/solib-aix.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -17,7 +17,6 @@
#include "solib-aix.h"
#include "solib.h"
-#include "solist.h"
#include "inferior.h"
#include "gdb_bfd.h"
#include "objfiles.h"
@@ -482,30 +481,14 @@ solib_aix_current_sos ()
/* Add it to the list. */
auto &new_solib = sos.emplace_back ();
- new_solib.so_original_name = so_name;
- new_solib.so_name = so_name;
+ new_solib.original_name = so_name;
+ new_solib.name = so_name;
new_solib.lm_info = std::make_unique<lm_info_aix> (info);
}
return sos;
}
-/* Implement the "open_symbol_file_object" solib_ops method. */
-
-static int
-solib_aix_open_symbol_file_object (int from_tty)
-{
- return 0;
-}
-
-/* Implement the "in_dynsym_resolve_code" solib_ops method. */
-
-static int
-solib_aix_in_dynsym_resolve_code (CORE_ADDR pc)
-{
- return 0;
-}
-
/* Implement the "bfd_open" solib_ops method. */
static gdb_bfd_ref_ptr
@@ -684,8 +667,8 @@ const solib_ops solib_aix_so_ops =
nullptr,
solib_aix_solib_create_inferior_hook,
solib_aix_current_sos,
- solib_aix_open_symbol_file_object,
- solib_aix_in_dynsym_resolve_code,
+ nullptr,
+ nullptr,
solib_aix_bfd_open,
nullptr,
nullptr,
diff --git a/gdb/solib-aix.h b/gdb/solib-aix.h
index 79cad4d..7a1bc7b 100644
--- a/gdb/solib-aix.h
+++ b/gdb/solib-aix.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/solib-darwin.c b/gdb/solib-darwin.c
index 6c7d906..4003c77 100644
--- a/gdb/solib-darwin.c
+++ b/gdb/solib-darwin.c
@@ -1,6 +1,6 @@
/* Handle Darwin shared libraries for GDB, the GNU Debugger.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -27,7 +27,7 @@
#include "regcache.h"
#include "gdb_bfd.h"
-#include "solist.h"
+#include "solib.h"
#include "solib-darwin.h"
#include "mach-o.h"
@@ -133,7 +133,7 @@ darwin_load_image_infos (struct darwin_info *info)
(buf + 8 + ptr_type->length (), ptr_type);
}
-/* Link map info to include in an allocated so_list entry. */
+/* Link map info to include in an allocated solib entry. */
struct lm_info_darwin final : public lm_info
{
@@ -146,24 +146,13 @@ struct lm_info_darwin final : public lm_info
static CORE_ADDR
lookup_symbol_from_bfd (bfd *abfd, const char *symname)
{
- long storage_needed;
- asymbol **symbol_table;
- unsigned int number_of_symbols;
- unsigned int i;
CORE_ADDR symaddr = 0;
- storage_needed = bfd_get_symtab_upper_bound (abfd);
+ gdb::array_view<asymbol *> symbol_table
+ = gdb_bfd_canonicalize_symtab (abfd, false);
- if (storage_needed <= 0)
- return 0;
-
- symbol_table = (asymbol **) xmalloc (storage_needed);
- number_of_symbols = bfd_canonicalize_symtab (abfd, symbol_table);
-
- for (i = 0; i < number_of_symbols; i++)
+ for (const asymbol *sym : symbol_table)
{
- asymbol *sym = symbol_table[i];
-
if (strcmp (sym->name, symname) == 0
&& (sym->section->flags & (SEC_CODE | SEC_DATA)) != 0)
{
@@ -172,7 +161,6 @@ lookup_symbol_from_bfd (bfd *abfd, const char *symname)
break;
}
}
- xfree (symbol_table);
return symaddr;
}
@@ -200,16 +188,6 @@ find_program_interpreter (void)
return buf;
}
-/* Not used. I don't see how the main symbol file can be found: the
- interpreter name is needed and it is known from the executable file.
- Note that darwin-nat.c implements pid_to_exec_file. */
-
-static int
-open_symbol_file_object (int from_tty)
-{
- return 0;
-}
-
/* Build a list of currently loaded shared objects. See solib-svr4.c. */
static owning_intrusive_list<solib>
@@ -276,8 +254,8 @@ darwin_current_sos ()
auto li = std::make_unique<lm_info_darwin> ();
- newobj.so_name = file_path.get ();
- newobj.so_original_name = newobj.so_name;
+ newobj.name = file_path.get ();
+ newobj.original_name = newobj.name;
li->lm_addr = load_addr;
newobj.lm_info = std::move (li);
@@ -375,15 +353,6 @@ darwin_read_exec_load_addr_at_init (struct darwin_info *info)
return darwin_validate_exec_header (load_addr);
}
-/* Return 1 if PC lies in the dynamic symbol resolution code of the
- run time loader. */
-
-static int
-darwin_in_dynsym_resolve_code (CORE_ADDR pc)
-{
- return 0;
-}
-
/* A wrapper for bfd_mach_o_fat_extract that handles reference
counting properly. This will either return NULL, or return a new
reference to a BFD. */
@@ -661,8 +630,8 @@ const solib_ops darwin_so_ops =
darwin_clear_solib,
darwin_solib_create_inferior_hook,
darwin_current_sos,
- open_symbol_file_object,
- darwin_in_dynsym_resolve_code,
+ nullptr,
+ nullptr,
darwin_bfd_open,
nullptr,
nullptr,
diff --git a/gdb/solib-darwin.h b/gdb/solib-darwin.h
index d62d680..b96e744 100644
--- a/gdb/solib-darwin.h
+++ b/gdb/solib-darwin.h
@@ -1,6 +1,6 @@
/* Handle shared libraries for GDB, the GNU Debugger.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/solib-dsbt.c b/gdb/solib-dsbt.c
index 360aede..2b31536 100644
--- a/gdb/solib-dsbt.c
+++ b/gdb/solib-dsbt.c
@@ -1,5 +1,5 @@
/* Handle TIC6X (DSBT) shared libraries for GDB, the GNU Debugger.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -21,7 +21,6 @@
#include "inferior.h"
#include "gdbcore.h"
#include "solib.h"
-#include "solist.h"
#include "objfiles.h"
#include "symtab.h"
#include "command.h"
@@ -121,7 +120,7 @@ struct dbst_ext_link_map
ext_ptr l_next, l_prev; /* struct link_map *l_next, *l_prev; */
};
-/* Link map info to include in an allocated so_list entry */
+/* Link map info to include in an allocated solib entry */
struct lm_info_dsbt final : public lm_info
{
@@ -393,15 +392,6 @@ fetch_loadmap (CORE_ADDR ldmaddr)
static void dsbt_relocate_main_executable (void);
static int enable_break (void);
-/* See solist.h. */
-
-static int
-open_symbol_file_object (int from_tty)
-{
- /* Unimplemented. */
- return 0;
-}
-
/* Given a loadmap and an address, return the displacement needed
to relocate the address. */
@@ -612,8 +602,8 @@ dsbt_current_sos (void)
gdb_printf (gdb_stdlog, "current_sos: name = %s\n",
name_buf.get ());
- sop.so_name = name_buf.get ();
- sop.so_original_name = sop.so_name;
+ sop.name = name_buf.get ();
+ sop.original_name = sop.name;
}
sop.lm_info = std::move (li);
@@ -630,10 +620,10 @@ dsbt_current_sos (void)
return sos;
}
-/* Return 1 if PC lies in the dynamic symbol resolution code of the
+/* Return true if PC lies in the dynamic symbol resolution code of the
run time loader. */
-static int
+static bool
dsbt_in_dynsym_resolve_code (CORE_ADDR pc)
{
dsbt_info *info = get_dsbt_info (current_program_space);
@@ -910,7 +900,7 @@ const solib_ops dsbt_so_ops =
dsbt_clear_solib,
dsbt_solib_create_inferior_hook,
dsbt_current_sos,
- open_symbol_file_object,
+ nullptr,
dsbt_in_dynsym_resolve_code,
solib_bfd_open,
nullptr,
diff --git a/gdb/solib-dsbt.h b/gdb/solib-dsbt.h
index 2777939..d5c52c6 100644
--- a/gdb/solib-dsbt.h
+++ b/gdb/solib-dsbt.h
@@ -1,6 +1,6 @@
/* Handle shared libraries for GDB, the GNU Debugger.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/solib-frv.c b/gdb/solib-frv.c
index 25873e6..ceef722 100644
--- a/gdb/solib-frv.c
+++ b/gdb/solib-frv.c
@@ -1,5 +1,5 @@
/* Handle FR-V (FDPIC) shared libraries for GDB, the GNU Debugger.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -20,7 +20,6 @@
#include "extract-store-integer.h"
#include "gdbcore.h"
#include "solib.h"
-#include "solist.h"
#include "frv-tdep.h"
#include "objfiles.h"
#include "symtab.h"
@@ -194,7 +193,7 @@ struct ext_link_map
ext_ptr l_next, l_prev; /* struct link_map *l_next, *l_prev; */
};
-/* Link map info to include in an allocated so_list entry. */
+/* Link map info to include in an allocated solib entry. */
struct lm_info_frv final : public lm_info
{
@@ -237,15 +236,6 @@ static void frv_relocate_main_executable (void);
static CORE_ADDR main_got (void);
static int enable_break2 (void);
-/* Implement the "open_symbol_file_object" solib_ops method. */
-
-static int
-open_symbol_file_object (int from_tty)
-{
- /* Unimplemented. */
- return 0;
-}
-
/* Cached value for lm_base(), below. */
static CORE_ADDR lm_base_cache = 0;
@@ -397,8 +387,8 @@ frv_current_sos ()
warning (_("Can't read pathname for link map entry."));
else
{
- sop.so_name = name_buf.get ();
- sop.so_original_name = sop.so_name;
+ sop.name = name_buf.get ();
+ sop.original_name = sop.name;
}
}
else
@@ -424,7 +414,7 @@ static CORE_ADDR interp_text_sect_high;
static CORE_ADDR interp_plt_sect_low;
static CORE_ADDR interp_plt_sect_high;
-static int
+static bool
frv_in_dynsym_resolve_code (CORE_ADDR pc)
{
return ((pc >= interp_text_sect_low && pc < interp_text_sect_high)
@@ -1081,7 +1071,7 @@ const solib_ops frv_so_ops =
frv_clear_solib,
frv_solib_create_inferior_hook,
frv_current_sos,
- open_symbol_file_object,
+ nullptr,
frv_in_dynsym_resolve_code,
solib_bfd_open,
nullptr,
diff --git a/gdb/solib-rocm.c b/gdb/solib-rocm.c
index 156b36a..b27613b 100644
--- a/gdb/solib-rocm.c
+++ b/gdb/solib-rocm.c
@@ -1,6 +1,6 @@
/* Handle ROCm Code Objects for GDB, the GNU Debugger.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -29,7 +29,6 @@
#include "observable.h"
#include "solib.h"
#include "solib-svr4.h"
-#include "solist.h"
#include "symfile.h"
#include <unordered_map>
@@ -202,10 +201,10 @@ rocm_solib_handle_event ()
rocm_update_solib_list ();
}
-/* Create so_list objects from rocm_so objects in SOS. */
+/* Create solib objects from rocm_so objects in SOS. */
static owning_intrusive_list<solib>
-so_list_from_rocm_sos (const std::vector<rocm_so> &sos)
+solibs_from_rocm_sos (const std::vector<rocm_so> &sos)
{
owning_intrusive_list<solib> dst;
@@ -214,8 +213,8 @@ so_list_from_rocm_sos (const std::vector<rocm_so> &sos)
auto &newobj = dst.emplace_back ();
newobj.lm_info = std::make_unique<lm_info_svr4> (*so.lm_info);
- newobj.so_name = so.name;
- newobj.so_original_name = so.unique_name;
+ newobj.name = so.name;
+ newobj.original_name = so.unique_name;
}
return dst;
@@ -236,13 +235,13 @@ rocm_solib_current_sos ()
if (dev_sos.empty ())
return sos;
- owning_intrusive_list<solib> dev_so_list = so_list_from_rocm_sos (dev_sos);
+ owning_intrusive_list<solib> dev_solibs = solibs_from_rocm_sos (dev_sos);
if (sos.empty ())
- return dev_so_list;
+ return dev_solibs;
/* Append our libraries to the end of the list. */
- sos.splice (std::move (dev_so_list));
+ sos.splice (std::move (dev_solibs));
return sos;
}
@@ -403,7 +402,7 @@ protected:
/* Snapshot of the original ELF image taken during load. This is done to
support the situation where an inferior uses an in-memory image, and
- releases or re-uses this memory before GDB is done using it. */
+ releases or reuses this memory before GDB is done using it. */
gdb::byte_vector m_objfile_image;
LONGEST size () override
@@ -704,6 +703,9 @@ rocm_update_solib_list ()
return;
}
+ gdb::unique_xmalloc_ptr<amd_dbgapi_code_object_id_t> code_object_list_holder
+ (code_object_list);
+
for (size_t i = 0; i < count; ++i)
{
CORE_ADDR l_addr;
@@ -735,8 +737,6 @@ rocm_update_solib_list ()
sos.emplace_back (uri_bytes, std::move (unique_name), std::move (li));
}
- xfree (code_object_list);
-
if (rocm_solib_ops.current_sos == NULL)
{
/* Override what we need to. */
diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c
index 8378eca..48aace1 100644
--- a/gdb/solib-svr4.c
+++ b/gdb/solib-svr4.c
@@ -1,6 +1,6 @@
/* Handle SVR4 shared libraries for GDB, the GNU Debugger.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -35,7 +35,6 @@
#include "regcache.h"
#include "observable.h"
-#include "solist.h"
#include "solib.h"
#include "solib-svr4.h"
@@ -49,7 +48,6 @@
#include <map>
static struct link_map_offsets *svr4_fetch_link_map_offsets (void);
-static int svr4_have_link_map_offsets (void);
static void svr4_relocate_main_executable (void);
static void probes_table_remove_objfile_probes (struct objfile *objfile);
static void svr4_iterate_over_objfiles_in_search_order
@@ -194,8 +192,8 @@ svr4_same (const solib &gdb, const solib &inferior)
auto *lmi
= gdb::checked_static_cast<const lm_info_svr4 *> (inferior.lm_info.get ());
- return svr4_same (gdb.so_original_name.c_str (),
- inferior.so_original_name.c_str (), *lmg, *lmi);
+ return svr4_same (gdb.original_name.c_str (),
+ inferior.original_name.c_str (), *lmg, *lmi);
}
static lm_info_svr4_up
@@ -317,7 +315,7 @@ lm_addr_check (const solib &so, bfd *abfd)
gdb_printf (_("Using PIC (Position Independent Code) "
"prelink displacement %s for \"%s\".\n"),
paddress (current_inferior ()->arch (), l_addr),
- so.so_name.c_str ());
+ so.name.c_str ());
}
else
{
@@ -333,7 +331,7 @@ lm_addr_check (const solib &so, bfd *abfd)
warning (_(".dynamic section for \"%s\" "
"is not at the expected address "
"(wrong library or version mismatch?)"),
- so.so_name.c_str ());
+ so.name.c_str ());
}
}
@@ -369,7 +367,7 @@ struct svr4_info
CORE_ADDR debug_loader_offset = 0;
/* Name of the dynamic linker, valid if debug_loader_offset_p. */
- char *debug_loader_name = nullptr;
+ std::string debug_loader_name;
/* Load map address for the main executable in default namespace. */
CORE_ADDR main_lm_addr = 0;
@@ -405,11 +403,68 @@ struct svr4_info
The special entry zero is reserved for a linear list to support
gdbstubs that do not support namespaces. */
std::map<CORE_ADDR, std::vector<svr4_so>> solib_lists;
+
+ /* Mapping between r_debug[_ext] addresses and a user-friendly
+ identifier for the namespace. A vector is used to make it
+ easy to assign new internal IDs to namespaces.
+
+ For gdbservers that don't support namespaces, the first (and only)
+ entry of the vector will be 0.
+
+ A note on consistency. We can't make the IDs be consistent before
+ and after the initial relocation of the inferior (when the global
+ _r_debug is relocated, as mentioned in the previous comment). It is
+ likely that this is a non-issue, since the inferior can't have called
+ dlmopen yet, but I think it is worth noting.
+
+ The only issue I am aware at this point is that, if when parsing an
+ XML file, we read an LMID that given by an XML file (and read in
+ library_list_start_library) is the identifier obtained with dlinfo
+ instead of the address of r_debug[_ext], and after attaching the
+ inferior adds another SO to that namespace, we might double-count it
+ since we won't have access to the LMID later on. However, this is
+ already a problem with the existing solib_lists code. */
+ std::vector<CORE_ADDR> namespace_id;
+
+ /* This identifies which namespaces are active. A namespace is considered
+ active when there is at least one shared object loaded into it. */
+ std::set<size_t> active_namespaces;
+
+ /* This flag indicates whether initializations related to the
+ GLIBC TLS module id tracking code have been performed. */
+ bool glibc_tls_slots_inited = false;
+
+ /* A vector of link map addresses for GLIBC TLS slots. See comment
+ for tls_maybe_fill_slot for more information. */
+ std::vector<CORE_ADDR> glibc_tls_slots;
};
/* Per-program-space data key. */
static const registry<program_space>::key<svr4_info> solib_svr4_pspace_data;
+/* Check if the lmid address is already assigned an ID in the svr4_info,
+ and if not, assign it one and add it to the list of known namespaces. */
+static void
+svr4_maybe_add_namespace (svr4_info *info, CORE_ADDR lmid)
+{
+ int i;
+ for (i = 0; i < info->namespace_id.size (); i++)
+ {
+ if (info->namespace_id[i] == lmid)
+ break;
+ }
+ if (i == info->namespace_id.size ())
+ info->namespace_id.push_back (lmid);
+
+ info->active_namespaces.insert (i);
+
+ /* Create or update the convenience variable "active_namespaces".
+ It only needs to be updated here, as this only changes when a
+ dlmopen or dlclose call happens. */
+ set_internalvar_integer (lookup_internalvar ("_active_linker_namespaces"),
+ info->active_namespaces.size ());
+}
+
/* Return whether DEBUG_BASE is the default namespace of INFO. */
static bool
@@ -586,10 +641,10 @@ read_program_header (int type, int *p_arch_size, CORE_ADDR *base_addr)
return buf;
}
+/* See solib-svr4.h. */
-/* Return program interpreter string. */
-static std::optional<gdb::byte_vector>
-find_program_interpreter (void)
+std::optional<gdb::byte_vector>
+svr4_find_program_interpreter ()
{
/* If we have a current exec_bfd, use its section table. */
if (current_program_space->exec_bfd ()
@@ -697,9 +752,6 @@ elf_locate_base (void)
{
CORE_ADDR dyn_ptr, dyn_ptr_addr;
- if (!svr4_have_link_map_offsets ())
- return 0;
-
/* Look for DT_MIPS_RLD_MAP first. MIPS executables use this
instead of DT_DEBUG, although they sometimes contain an unused
DT_DEBUG. */
@@ -894,7 +946,7 @@ svr4_keep_data_in_core (CORE_ADDR vaddr, unsigned long size)
return (name_lm >= vaddr && name_lm < vaddr + size);
}
-/* See solist.h. */
+/* See solib.h. */
static int
open_symbol_file_object (int from_tty)
@@ -989,10 +1041,10 @@ svr4_clear_so (const solib &so)
li->l_addr_p = 0;
}
-/* Create the so_list objects equivalent to the svr4_sos in SOS. */
+/* Create the solib objects equivalent to the svr4_sos in SOS. */
static owning_intrusive_list<solib>
-so_list_from_svr4_sos (const std::vector<svr4_so> &sos)
+solib_from_svr4_sos (const std::vector<svr4_so> &sos)
{
owning_intrusive_list<solib> dst;
@@ -1000,8 +1052,8 @@ so_list_from_svr4_sos (const std::vector<svr4_so> &sos)
{
auto &newobj = dst.emplace_back ();
- newobj.so_name = so.name;
- newobj.so_original_name = so.name;
+ newobj.name = so.name;
+ newobj.original_name = so.name;
newobj.lm_info = std::make_unique<lm_info_svr4> (*so.lm_info);
}
@@ -1041,14 +1093,18 @@ library_list_start_library (struct gdb_xml_parser *parser,
/* Older versions did not supply lmid. Put the element into the flat
list of the special namespace zero in that case. */
gdb_xml_value *at_lmid = xml_find_attribute (attributes, "lmid");
+ svr4_info *info = get_svr4_info (current_program_space);
if (at_lmid == nullptr)
- solist = list->cur_list;
+ {
+ solist = list->cur_list;
+ svr4_maybe_add_namespace (info, 0);
+ }
else
{
ULONGEST lmid = *(ULONGEST *) at_lmid->value.get ();
solist = &list->solib_lists[lmid];
+ svr4_maybe_add_namespace (info, lmid);
}
-
solist->emplace_back (name, std::move (li));
}
@@ -1115,11 +1171,10 @@ static const struct gdb_xml_element svr4_library_list_elements[] =
{ NULL, NULL, NULL, GDB_XML_EF_NONE, NULL, NULL }
};
-/* Parse qXfer:libraries:read packet into *SO_LIST_RETURN. Return 1 if
+/* Parse qXfer:libraries:read packet into *LIST.
- Return 0 if packet not supported, *SO_LIST_RETURN is not modified in such
- case. Return 1 if *SO_LIST_RETURN contains the library list, it may be
- empty, caller is responsible for freeing all its entries. */
+ Return 0 if packet not supported, *LIST is not modified in such case.
+ Return 1 if *LIST contains the library list. */
static int
svr4_parse_libraries (const char *document, struct svr4_library_list *list)
@@ -1141,11 +1196,11 @@ svr4_parse_libraries (const char *document, struct svr4_library_list *list)
return 0;
}
-/* Attempt to get so_list from target via qXfer:libraries-svr4:read packet.
+/* Attempt to get the shared object list from target via
+ qXfer:libraries-svr4:read packet.
- Return 0 if packet not supported, *SO_LIST_RETURN is not modified in such
- case. Return 1 if *SO_LIST_RETURN contains the library list, it may be
- empty, caller is responsible for freeing all its entries.
+ Return 0 if packet not supported, *LIST is not modified in such case.
+ Return 1 if *LIST contains the library list.
Note that ANNEX must be NULL if the remote does not explicitly allow
qXfer:libraries-svr4:read packets with non-empty annexes. Support for
@@ -1198,8 +1253,8 @@ svr4_default_sos (svr4_info *info)
auto &newobj = sos.emplace_back ();
newobj.lm_info = std::move (li);
- newobj.so_name = info->debug_loader_name;
- newobj.so_original_name = newobj.so_name;
+ newobj.name = info->debug_loader_name;
+ newobj.original_name = newobj.name;
return sos;
}
@@ -1286,6 +1341,8 @@ svr4_current_sos_direct (struct svr4_info *info)
/* Remove any old libraries. We're going to read them back in again. */
info->solib_lists.clear ();
+ info->active_namespaces.clear ();
+
/* Fall back to manual examination of the target if the packet is not
supported or gdbserver failed to find DT_DEBUG. gdb.server/solib-list.exp
tests a case where gdbserver cannot find the shared libraries list while
@@ -1333,7 +1390,10 @@ svr4_current_sos_direct (struct svr4_info *info)
ignore_first = true;
auto cleanup = make_scope_exit ([info] ()
- { info->solib_lists.clear (); });
+ {
+ info->solib_lists.clear ();
+ info->active_namespaces.clear ();
+ });
/* Collect the sos in each namespace. */
CORE_ADDR debug_base = info->debug_base;
@@ -1343,8 +1403,11 @@ svr4_current_sos_direct (struct svr4_info *info)
/* Walk the inferior's link map list, and build our so_list list. */
lm = solib_svr4_r_map (debug_base);
if (lm != 0)
- svr4_read_so_list (info, lm, 0, info->solib_lists[debug_base],
- ignore_first);
+ {
+ svr4_maybe_add_namespace (info, debug_base);
+ svr4_read_so_list (info, lm, 0, info->solib_lists[debug_base],
+ ignore_first);
+ }
}
/* On Solaris, the dynamic linker is not in the normal list of
@@ -1361,8 +1424,11 @@ svr4_current_sos_direct (struct svr4_info *info)
{
/* Add the dynamic linker's namespace unless we already did. */
if (info->solib_lists.find (debug_base) == info->solib_lists.end ())
- svr4_read_so_list (info, debug_base, 0, info->solib_lists[debug_base],
- 0);
+ {
+ svr4_maybe_add_namespace (info, debug_base);
+ svr4_read_so_list (info, debug_base, 0, info->solib_lists[debug_base],
+ 0);
+ }
}
cleanup.release ();
@@ -1378,7 +1444,7 @@ svr4_collect_probes_sos (svr4_info *info)
for (const auto &tuple : info->solib_lists)
{
const std::vector<svr4_so> &sos = tuple.second;
- res.splice (so_list_from_svr4_sos (sos));
+ res.splice (solib_from_svr4_sos (sos));
}
return res;
@@ -1516,6 +1582,204 @@ svr4_fetch_objfile_link_map (struct objfile *objfile)
return 0;
}
+/* Return true if bfd section BFD_SECT is a thread local section
+ (i.e. either named ".tdata" or ".tbss"), and false otherwise. */
+
+static bool
+is_thread_local_section (struct bfd_section *bfd_sect)
+{
+ return ((strcmp (bfd_sect->name, ".tdata") == 0
+ || strcmp (bfd_sect->name, ".tbss") == 0)
+ && bfd_sect->size != 0);
+}
+
+/* Return true if objfile OBJF contains a thread local section, and
+ false otherwise. */
+
+static bool
+has_thread_local_section (const objfile *objf)
+{
+ for (obj_section *objsec : objf->sections ())
+ if (is_thread_local_section (objsec->the_bfd_section))
+ return true;
+ return false;
+}
+
+/* Return true if solib SO contains a thread local section, and false
+ otherwise. */
+
+static bool
+has_thread_local_section (const solib &so)
+{
+ for (const target_section &p : so.sections)
+ if (is_thread_local_section (p.the_bfd_section))
+ return true;
+ return false;
+}
+
+/* For the MUSL C library, given link map address LM_ADDR, return the
+ corresponding TLS module id, or 0 if not found.
+
+ Background: Unlike the mechanism used by glibc (see below), the
+ scheme used by the MUSL C library is pretty simple. If the
+ executable contains TLS variables it gets module id 1. Otherwise,
+ the first shared object loaded which contains TLS variables is
+ assigned to module id 1. TLS-containing shared objects are then
+ assigned consecutive module ids, based on the order that they are
+ loaded. When unloaded via dlclose, module ids are reassigned as if
+ that module had never been loaded. */
+
+int
+musl_link_map_to_tls_module_id (CORE_ADDR lm_addr)
+{
+ /* When lm_addr is zero, the program is statically linked. Any TLS
+ variables will be in module id 1. */
+ if (lm_addr == 0)
+ return 1;
+
+ int mod_id = 0;
+ if (has_thread_local_section (current_program_space->symfile_object_file))
+ mod_id++;
+
+ struct svr4_info *info = get_svr4_info (current_program_space);
+
+ /* Cause svr4_current_sos() to be run if it hasn't been already. */
+ if (info->main_lm_addr == 0)
+ solib_add (NULL, 0, auto_solib_add);
+
+ /* Handle case where lm_addr corresponds to the main program.
+ Return value is either 0, when there are no TLS variables, or 1,
+ when there are. */
+ if (lm_addr == info->main_lm_addr)
+ return mod_id;
+
+ /* Iterate through the shared objects, possibly incrementing the
+ module id, and returning mod_id should a match be found. */
+ for (const solib &so : current_program_space->solibs ())
+ {
+ if (has_thread_local_section (so))
+ mod_id++;
+
+ auto *li = gdb::checked_static_cast<lm_info_svr4 *> (so.lm_info.get ());
+ if (li->lm_addr == lm_addr)
+ return mod_id;
+ }
+ return 0;
+}
+
+/* For GLIBC, given link map address LM_ADDR, return the corresponding TLS
+ module id, or 0 if not found. */
+
+int
+glibc_link_map_to_tls_module_id (CORE_ADDR lm_addr)
+{
+ /* When lm_addr is zero, the program is statically linked. Any TLS
+ variables will be in module id 1. */
+ if (lm_addr == 0)
+ return 1;
+
+ /* Look up lm_addr in the TLS slot data structure. */
+ struct svr4_info *info = get_svr4_info (current_program_space);
+ auto it = std::find (info->glibc_tls_slots.begin (),
+ info->glibc_tls_slots.end (),
+ lm_addr);
+ if (it == info->glibc_tls_slots.end ())
+ return 0;
+ else
+ return 1 + it - info->glibc_tls_slots.begin ();
+}
+
+/* Conditionally, based on whether the shared object, SO, contains TLS
+ variables, assign a link map address to a TLS module id slot. This
+ code is GLIBC-specific and may only work for specific GLIBC
+ versions. That said, it is known to work for (at least) GLIBC
+ versions 2.27 thru 2.40.
+
+ Background: In order to implement internal TLS address lookup
+ code, it is necessary to find the module id that has been
+ associated with a specific link map address. In GLIBC, the TLS
+ module id is stored in struct link_map, in the member
+ 'l_tls_modid'. While the first several members of struct link_map
+ are part of the SVR4 ABI, the offset to l_tls_modid definitely is
+ not. Therefore, since we don't know the offset to l_tls_modid, we
+ cannot simply look it up - which is a shame, because things would
+ be so much more easy and obviously accurate, if we could access
+ l_tls_modid.
+
+ GLIBC has a concept of TLS module id slots. These slots are
+ allocated consecutively as shared objects containing TLS variables
+ are loaded. When unloaded (e.g. via dlclose()), the corresponding
+ slot is marked as unused, but may be used again when later loading
+ a shared object.
+
+ The functions tls_maybe_fill_slot and tls_maybe_erase_slot are
+ associated with the observers 'solib_loaded' and 'solib_unloaded'.
+ They (attempt to) track use of TLS module id slots in the same way
+ that GLIBC does, which will hopefully provide an accurate module id
+ when asked to provide it via glibc_link_map_to_tls_module_id(),
+ above. */
+
+static void
+tls_maybe_fill_slot (solib &so)
+{
+ auto *li = dynamic_cast<lm_info_svr4 *> (so.lm_info.get ());
+ if (li == nullptr)
+ return;
+
+ struct svr4_info *info = get_svr4_info (current_program_space);
+ if (!info->glibc_tls_slots_inited)
+ {
+ /* Cause svr4_current_sos() to be run if it hasn't been already. */
+ if (info->main_lm_addr == 0)
+ svr4_current_sos_direct (info);
+
+ /* Quit early when main_lm_addr is still 0. */
+ if (info->main_lm_addr == 0)
+ return;
+
+ /* Also quit early when symfile_object_file is not yet known. */
+ if (current_program_space->symfile_object_file == nullptr)
+ return;
+
+ if (has_thread_local_section (current_program_space->symfile_object_file))
+ info->glibc_tls_slots.push_back (info->main_lm_addr);
+ info->glibc_tls_slots_inited = true;
+ }
+
+ if (has_thread_local_section (so))
+ {
+ auto it = std::find (info->glibc_tls_slots.begin (),
+ info->glibc_tls_slots.end (),
+ 0);
+ if (it == info->glibc_tls_slots.end ())
+ info->glibc_tls_slots.push_back (li->lm_addr);
+ else
+ *it = li->lm_addr;
+ }
+}
+
+/* Remove a link map address from the TLS module slot data structure.
+ As noted above, this code is GLIBC-specific. */
+
+static void
+tls_maybe_erase_slot (program_space *pspace, const solib &so,
+ bool still_in_use, bool silent)
+{
+ if (still_in_use)
+ return;
+
+ auto *li = dynamic_cast<lm_info_svr4 *> (so.lm_info.get ());
+ if (li == nullptr)
+ return;
+
+ struct svr4_info *info = get_svr4_info (pspace);
+ auto it = std::find (info->glibc_tls_slots.begin (),
+ info->glibc_tls_slots.end (),
+ li->lm_addr);
+ if (it != info->glibc_tls_slots.end ())
+ *it = 0;
+}
+
/* On some systems, the only way to recognize the link map entry for
the main executable file is by looking at its name. Return
non-zero iff SONAME matches one of the known main executable names. */
@@ -1534,10 +1798,10 @@ match_main (const char *soname)
return (0);
}
-/* Return 1 if PC lies in the dynamic symbol resolution code of the
+/* Return true if PC lies in the dynamic symbol resolution code of the
SVR4 run time loader. */
-int
+bool
svr4_in_dynsym_resolve_code (CORE_ADDR pc)
{
struct svr4_info *info = get_svr4_info (current_program_space);
@@ -1778,6 +2042,10 @@ solist_update_incremental (svr4_info *info, CORE_ADDR debug_base,
return 0;
prev_lm = 0;
+
+ /* If the list is empty, we are seeing a new namespace for the
+ first time, so assign it an internal ID. */
+ svr4_maybe_add_namespace (info, debug_base);
}
else
prev_lm = solist.back ().lm_info->lm_addr;
@@ -1790,9 +2058,9 @@ solist_update_incremental (svr4_info *info, CORE_ADDR debug_base,
/* Unknown key=value pairs are ignored by the gdbstub. */
xsnprintf (annex, sizeof (annex), "lmid=%s;start=%s;prev=%s",
- phex_nz (debug_base, sizeof (debug_base)),
- phex_nz (lm, sizeof (lm)),
- phex_nz (prev_lm, sizeof (prev_lm)));
+ phex_nz (debug_base),
+ phex_nz (lm),
+ phex_nz (prev_lm));
if (!svr4_current_sos_via_xfer_libraries (&library_list, annex))
return 0;
@@ -1845,6 +2113,8 @@ disable_probes_interface (svr4_info *info)
free_probes_table (info);
info->solib_lists.clear ();
+ info->namespace_id.clear ();
+ info->active_namespaces.clear ();
}
/* Update the solib list as appropriate when using the
@@ -2307,7 +2577,7 @@ enable_break (struct svr4_info *info, int from_tty)
/* Find the program interpreter; if not found, warn the user and drop
into the old breakpoint at symbol code. */
std::optional<gdb::byte_vector> interp_name_holder
- = find_program_interpreter ();
+ = svr4_find_program_interpreter ();
if (interp_name_holder)
{
const char *interp_name = (const char *) interp_name_holder->data ();
@@ -2347,7 +2617,7 @@ enable_break (struct svr4_info *info, int from_tty)
address from the shared library table. */
for (const solib &so : current_program_space->solibs ())
{
- if (svr4_same_1 (interp_name, so.so_original_name.c_str ()))
+ if (svr4_same_1 (interp_name, so.original_name.c_str ()))
{
load_addr_found = 1;
loader_found_in_list = 1;
@@ -2407,7 +2677,7 @@ enable_break (struct svr4_info *info, int from_tty)
if (!loader_found_in_list)
{
- info->debug_loader_name = xstrdup (interp_name);
+ info->debug_loader_name = interp_name;
info->debug_loader_offset_p = 1;
info->debug_loader_offset = load_addr;
solib_add (NULL, from_tty, auto_solib_add);
@@ -3042,6 +3312,8 @@ svr4_solib_create_inferior_hook (int from_tty)
/* Clear the probes-based interface's state. */
free_probes_table (info);
info->solib_lists.clear ();
+ info->namespace_id.clear ();
+ info->active_namespaces.clear ();
/* Relocate the main executable if necessary. */
svr4_relocate_main_executable ();
@@ -3051,9 +3323,6 @@ svr4_solib_create_inferior_hook (int from_tty)
if (!target_has_execution ())
return;
- if (!svr4_have_link_map_offsets ())
- return;
-
if (!enable_break (info, from_tty))
return;
}
@@ -3065,8 +3334,7 @@ svr4_clear_solib (program_space *pspace)
info->debug_base = 0;
info->debug_loader_offset_p = 0;
info->debug_loader_offset = 0;
- xfree (info->debug_loader_name);
- info->debug_loader_name = NULL;
+ info->debug_loader_name.clear ();
}
/* Clear any bits of ADDR that wouldn't fit in a target-format
@@ -3093,6 +3361,37 @@ svr4_truncate_ptr (CORE_ADDR addr)
return addr & (((CORE_ADDR) 1 << gdbarch_ptr_bit (current_inferior ()->arch ())) - 1);
}
+/* Find the LOAD-able program header in ABFD that contains ASECT. Return
+ NULL if no such header can be found. */
+
+static Elf_Internal_Phdr *
+find_loadable_elf_internal_phdr (bfd *abfd, bfd_section *asect)
+{
+ Elf_Internal_Ehdr *ehdr = elf_tdata (abfd)->elf_header;
+ Elf_Internal_Phdr *phdr = elf_tdata (abfd)->phdr;
+
+ for (int i = 0; i < ehdr->e_phnum; i++)
+ {
+ if (phdr[i].p_type == PT_LOAD)
+ {
+ /* A section without the SEC_LOAD flag is a no-bits section
+ (e.g. .bss) and has zero size within ABFD. */
+ ULONGEST section_file_size
+ = (((bfd_section_flags (asect) & SEC_LOAD) != 0)
+ ? bfd_section_size (asect)
+ : 0);
+
+ if (asect->filepos >= phdr[i].p_offset
+ && ((asect->filepos + section_file_size)
+ <= (phdr[i].p_offset + phdr[i].p_filesz)))
+ return &phdr[i];
+ }
+ }
+
+ return nullptr;
+}
+
+/* Implement solib_ops::relocate_section_addresses() for svr4 targets. */
static void
svr4_relocate_section_addresses (solib &so, target_section *sec)
@@ -3101,6 +3400,74 @@ svr4_relocate_section_addresses (solib &so, target_section *sec)
sec->addr = svr4_truncate_ptr (sec->addr + lm_addr_check (so, abfd));
sec->endaddr = svr4_truncate_ptr (sec->endaddr + lm_addr_check (so, abfd));
+
+ struct bfd_section *asect = sec->the_bfd_section;
+ gdb_assert (asect != nullptr);
+
+ /* Update the address range of SO based on ASECT. */
+ if ((bfd_section_flags (asect) & SEC_ALLOC) != 0
+ && bfd_get_flavour (abfd) == bfd_target_elf_flavour)
+ {
+ /* First, SO must cover the contents of ASECT. */
+ if (so.addr_low == 0 || sec->addr < so.addr_low)
+ so.addr_low = sec->addr;
+
+ if (so.addr_high == 0 || sec->endaddr > so.addr_high)
+ so.addr_high = sec->endaddr;
+
+ gdb_assert (so.addr_low <= so.addr_high);
+
+ /* But we can do better. Find the program header which contains
+ ASECT, and figure out its extents. This gives an larger possible
+ region for SO. */
+ Elf_Internal_Phdr *phdr = find_loadable_elf_internal_phdr (abfd, asect);
+
+ if (phdr != nullptr)
+ {
+ /* Figure out the alignment required by this segment. */
+ ULONGEST minpagesize = get_elf_backend_data (abfd)->minpagesize;
+ ULONGEST segment_alignment
+ = std::max (minpagesize, static_cast<ULONGEST> (phdr->p_align));
+ ULONGEST at_pagesz;
+ if (target_auxv_search (AT_PAGESZ, &at_pagesz) > 0)
+ segment_alignment = std::max (segment_alignment, at_pagesz);
+
+ /* The offset of this section within the segment. */
+ ULONGEST section_offset = asect->vma - phdr->p_vaddr;
+
+ /* The start address for the segment, without alignment. */
+ CORE_ADDR unaligned_start = sec->addr - section_offset;
+
+ /* And the start address with downward alignment. */
+ CORE_ADDR aligned_start
+ = align_down (unaligned_start, segment_alignment);
+
+ /* The end address of the segment depends on its size. Start
+ with the size as described in the ELF. This check of the
+ memory size and file size is what BFD does, so assume it
+ knows best and copy this logic. */
+ ULONGEST seg_size = std::max (phdr->p_memsz, phdr->p_filesz);
+
+ /* But by aligning the start address down we need to also include
+ that difference in the segment size. */
+ seg_size += (unaligned_start - aligned_start);
+
+ /* And align the segment size upward. */
+ seg_size = align_up (seg_size, segment_alignment);
+
+ /* Finally, we can compute the end address. */
+ CORE_ADDR end = aligned_start + seg_size;
+
+ /* And now we can update the extend of SO. */
+ if (so.addr_low == 0 || aligned_start < so.addr_low)
+ so.addr_low = aligned_start;
+
+ if (so.addr_high == 0 || end > so.addr_high)
+ so.addr_high = end;
+
+ gdb_assert (so.addr_low <= so.addr_high);
+ }
+ }
}
@@ -3154,17 +3521,6 @@ svr4_fetch_link_map_offsets (void)
return ops->fetch_link_map_offsets ();
}
-/* Return 1 if a link map offset fetcher has been defined, 0 otherwise. */
-
-static int
-svr4_have_link_map_offsets (void)
-{
- struct solib_svr4_ops *ops = get_ops (current_inferior ()->arch ());
-
- return (ops->fetch_link_map_offsets != NULL);
-}
-
-
/* Most OS'es that have SVR4-style ELF dynamic libraries define a
`struct r_debug' and a `struct link_map' that are binary compatible
with the original SVR4 implementation. */
@@ -3279,7 +3635,7 @@ find_debug_base_for_solib (const solib *solib)
const std::vector<svr4_so> &sos = tuple.second;
for (const svr4_so &so : sos)
- if (svr4_same (solib->so_original_name.c_str (), so.name.c_str (),
+ if (svr4_same (solib->original_name.c_str (), so.name.c_str (),
*lm_info, *so.lm_info))
return debug_base;
}
@@ -3361,6 +3717,80 @@ svr4_find_solib_addr (solib &so)
return li->l_addr_inferior;
}
+/* See solib_ops::find_solib_ns in solist.h. */
+
+static int
+svr4_find_solib_ns (const solib &so)
+{
+ CORE_ADDR debug_base = find_debug_base_for_solib (&so);
+ svr4_info *info = get_svr4_info (current_program_space);
+ for (int i = 0; i < info->namespace_id.size (); i++)
+ {
+ if (info->namespace_id[i] == debug_base)
+ {
+ gdb_assert (info->active_namespaces.count (i) == 1);
+ return i;
+ }
+ }
+ error (_("No namespace found"));
+}
+
+/* see solib_ops::num_active_namespaces in solist.h. */
+static int
+svr4_num_active_namespaces ()
+{
+ svr4_info *info = get_svr4_info (current_program_space);
+ return info->active_namespaces.size ();
+}
+
+/* See solib_ops::get_solibs_in_ns in solist.h. */
+static std::vector<const solib *>
+svr4_get_solibs_in_ns (int nsid)
+{
+ std::vector<const solib*> ns_solibs;
+ svr4_info *info = get_svr4_info (current_program_space);
+
+ /* If the namespace ID is inactive, there will be no active
+ libraries, so we can have an early exit, as a treat. */
+ if (info->active_namespaces.count (nsid) != 1)
+ return ns_solibs;
+
+ /* Since we only have the names of solibs in a given namespace,
+ we'll need to walk through the solib list of the inferior and
+ find which solib objects correspond to which svr4_so. We create
+ an unordered map with the names and lm_info to check things
+ faster, and to be able to remove SOs from the map, to avoid
+ returning the dynamic linker multiple times. */
+ CORE_ADDR debug_base = info->namespace_id[nsid];
+ std::unordered_map<std::string, const lm_info_svr4 *> namespace_solibs;
+ for (svr4_so &so : info->solib_lists[debug_base])
+ {
+ namespace_solibs[so.name]
+ = gdb::checked_static_cast<const lm_info_svr4 *>
+ (so.lm_info.get ());
+ }
+ for (const solib &so: current_program_space->solibs ())
+ {
+ auto *lm_inferior
+ = gdb::checked_static_cast<const lm_info_svr4 *> (so.lm_info.get ());
+
+ /* This is inspired by the svr4_same, by finding the svr4_so object
+ in the map, and then double checking if the lm_info is considered
+ the same. */
+ if (namespace_solibs.count (so.original_name) > 0
+ && namespace_solibs[so.original_name]->l_addr_inferior
+ == lm_inferior->l_addr_inferior)
+ {
+ ns_solibs.push_back (&so);
+ /* Remove the SO from the map, so that we don't end up
+ printing the dynamic linker multiple times. */
+ namespace_solibs.erase (so.original_name);
+ }
+ }
+
+ return ns_solibs;
+}
+
const struct solib_ops svr4_so_ops =
{
svr4_relocate_section_addresses,
@@ -3376,6 +3806,9 @@ const struct solib_ops svr4_so_ops =
svr4_update_solib_event_breakpoints,
svr4_handle_solib_event,
svr4_find_solib_addr,
+ svr4_find_solib_ns,
+ svr4_num_active_namespaces,
+ svr4_get_solibs_in_ns,
};
void _initialize_svr4_solib ();
@@ -3384,4 +3817,8 @@ _initialize_svr4_solib ()
{
gdb::observers::free_objfile.attach (svr4_free_objfile_observer,
"solib-svr4");
+
+ /* Set up observers for tracking GLIBC TLS module id slots. */
+ gdb::observers::solib_loaded.attach (tls_maybe_fill_slot, "solib-svr4");
+ gdb::observers::solib_unloaded.attach (tls_maybe_erase_slot, "solib-svr4");
}
diff --git a/gdb/solib-svr4.h b/gdb/solib-svr4.h
index 37cdaff..1ff9be7 100644
--- a/gdb/solib-svr4.h
+++ b/gdb/solib-svr4.h
@@ -1,6 +1,6 @@
/* Handle shared libraries for GDB, the GNU Debugger.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -20,14 +20,14 @@
#ifndef GDB_SOLIB_SVR4_H
#define GDB_SOLIB_SVR4_H
-#include "solist.h"
+#include "solib.h"
struct objfile;
struct solib_ops;
extern const solib_ops svr4_so_ops;
-/* Link map info to include in an allocated so_list entry. */
+/* Link map info to include in an allocated solib entry. */
struct lm_info_svr4 final : public lm_info
{
@@ -108,8 +108,20 @@ extern CORE_ADDR svr4_fetch_objfile_link_map (struct objfile *objfile);
extern struct link_map_offsets *svr4_ilp32_fetch_link_map_offsets (void);
extern struct link_map_offsets *svr4_lp64_fetch_link_map_offsets (void);
-/* Return 1 if PC lies in the dynamic symbol resolution code of the
+/* Return true if PC lies in the dynamic symbol resolution code of the
SVR4 run time loader. */
-int svr4_in_dynsym_resolve_code (CORE_ADDR pc);
+bool svr4_in_dynsym_resolve_code (CORE_ADDR pc);
+
+/* For the MUSL C library, given link map address LM_ADDR, return the
+ corresponding TLS module id, or 0 if not found. */
+int musl_link_map_to_tls_module_id (CORE_ADDR lm_addr);
+
+/* For GLIBC, given link map address LM_ADDR, return the corresponding TLS
+ module id, or 0 if not found. */
+int glibc_link_map_to_tls_module_id (CORE_ADDR lm_addr);
+
+/* Return program interpreter string. */
+
+std::optional<gdb::byte_vector> svr4_find_program_interpreter ();
#endif /* GDB_SOLIB_SVR4_H */
diff --git a/gdb/solib-target.c b/gdb/solib-target.c
index 8f73d5d..68dc3cc 100644
--- a/gdb/solib-target.c
+++ b/gdb/solib-target.c
@@ -1,6 +1,6 @@
/* Definitions for targets which report shared library events.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -18,7 +18,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "objfiles.h"
-#include "solist.h"
+#include "solib.h"
#include "symtab.h"
#include "symfile.h"
#include "target.h"
@@ -30,7 +30,7 @@
struct lm_info_target final : public lm_info
{
/* The library's name. The name is normally kept in the struct
- so_list; it is only here during XML parsing. */
+ solib; it is only here during XML parsing. */
std::string name;
/* The target can either specify segment bases or section bases, not
@@ -248,8 +248,8 @@ solib_target_current_sos (void)
auto &new_solib = sos.emplace_back ();
/* We don't need a copy of the name in INFO anymore. */
- new_solib.so_name = std::move (info->name);
- new_solib.so_original_name = new_solib.so_name;
+ new_solib.name = std::move (info->name);
+ new_solib.original_name = new_solib.name;
new_solib.lm_info = std::move (info);
}
@@ -257,12 +257,6 @@ solib_target_current_sos (void)
}
static void
-solib_target_solib_create_inferior_hook (int from_tty)
-{
- /* Nothing needed. */
-}
-
-static void
solib_target_relocate_section_addresses (solib &so, target_section *sec)
{
CORE_ADDR offset;
@@ -291,7 +285,7 @@ solib_target_relocate_section_addresses (solib &so, target_section *sec)
if (num_alloc_sections != li->section_bases.size ())
warning (_("\
Could not relocate shared library \"%s\": wrong number of ALLOC sections"),
- so.so_name.c_str ());
+ so.name.c_str ());
else
{
int bases_index = 0;
@@ -334,7 +328,7 @@ Could not relocate shared library \"%s\": wrong number of ALLOC sections"),
if (data == NULL)
warning (_("\
-Could not relocate shared library \"%s\": no segments"), so.so_name.c_str ());
+Could not relocate shared library \"%s\": no segments"), so.name.c_str ());
else
{
ULONGEST orig_delta;
@@ -345,7 +339,7 @@ Could not relocate shared library \"%s\": no segments"), so.so_name.c_str ());
li->segment_bases.size (),
li->segment_bases.data ()))
warning (_("\
-Could not relocate shared library \"%s\": bad offsets"), so.so_name.c_str ());
+Could not relocate shared library \"%s\": bad offsets"), so.name.c_str ());
/* Find the range of addresses to report for this library in
"info sharedlibrary". Report any consecutive segments
@@ -382,15 +376,7 @@ Could not relocate shared library \"%s\": bad offsets"), so.so_name.c_str ());
sec->endaddr += offset;
}
-static int
-solib_target_open_symbol_file_object (int from_tty)
-{
- /* We can't locate the main symbol file based on the target's
- knowledge; the user has to specify it. */
- return 0;
-}
-
-static int
+static bool
solib_target_in_dynsym_resolve_code (CORE_ADDR pc)
{
/* We don't have a range of addresses for the dynamic linker; there
@@ -404,9 +390,9 @@ const solib_ops solib_target_so_ops =
solib_target_relocate_section_addresses,
nullptr,
nullptr,
- solib_target_solib_create_inferior_hook,
+ nullptr,
solib_target_current_sos,
- solib_target_open_symbol_file_object,
+ nullptr,
solib_target_in_dynsym_resolve_code,
solib_bfd_open,
nullptr,
diff --git a/gdb/solib-target.h b/gdb/solib-target.h
index f03e221..f8a22fd 100644
--- a/gdb/solib-target.h
+++ b/gdb/solib-target.h
@@ -1,6 +1,6 @@
/* Handle shared libraries for GDB, the GNU Debugger.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/solib.c b/gdb/solib.c
index 4a04f1d..7721fd6 100644
--- a/gdb/solib.c
+++ b/gdb/solib.c
@@ -1,6 +1,6 @@
/* Handle shared libraries for GDB, the GNU Debugger.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -37,7 +37,6 @@
#include "elf/common.h"
#include "filenames.h"
#include "exec.h"
-#include "solist.h"
#include "observable.h"
#include "readline/tilde.h"
#include "solib.h"
@@ -68,7 +67,7 @@ show_solib_search_path (struct ui_file *file, int from_tty,
value);
}
-/* Same as HAVE_DOS_BASED_FILE_SYSTEM, but useable as an rvalue. */
+/* Same as HAVE_DOS_BASED_FILE_SYSTEM, but usable as an rvalue. */
#if (HAVE_DOS_BASED_FILE_SYSTEM)
#define DOS_BASED_FILE_SYSTEM 1
#else
@@ -485,7 +484,7 @@ solib_map_sections (solib &so)
{
const solib_ops *ops = gdbarch_so_ops (current_inferior ()->arch ());
- gdb::unique_xmalloc_ptr<char> filename (tilde_expand (so.so_name.c_str ()));
+ gdb::unique_xmalloc_ptr<char> filename (tilde_expand (so.name.c_str ()));
gdb_bfd_ref_ptr abfd (ops->bfd_open (filename.get ()));
/* If we have a core target then the core target might have some helpful
@@ -498,7 +497,7 @@ solib_map_sections (solib &so)
its filename. */
std::optional<CORE_ADDR> solib_addr = ops->find_solib_addr (so);
std::optional <const core_target_mapped_file_info> mapped_file_info
- = core_target_find_mapped_file (so.so_name.c_str (), solib_addr);
+ = core_target_find_mapped_file (so.name.c_str (), solib_addr);
/* If we already know the build-id of this solib from a core file, verify
it matches ABFD's build-id. If there is a mismatch or the solib wasn't
@@ -527,7 +526,7 @@ solib_map_sections (solib &so)
if (abfd == nullptr)
abfd = find_objfile_by_build_id (current_program_space,
mapped_file_info->build_id (),
- so.so_name.c_str ());
+ so.name.c_str ());
if (abfd == nullptr && mismatch)
{
@@ -545,14 +544,14 @@ solib_map_sections (solib &so)
/* Leave bfd open, core_xfer_memory and "info files" need it. */
so.abfd = std::move (abfd);
- /* Copy the full path name into so_name, allowing symbol_file_add
+ /* Copy the full path name into `so.name`, allowing symbol_file_add
to find it later. This also affects the =library-loaded GDB/MI
event, and in particular the part of that notification providing
the library's host-side path. If we let the target dictate
that objfile's path, and the target is different from the host,
GDB/MI will not provide the correct host-side path. */
- so.so_name = bfd_get_filename (so.abfd.get ());
+ so.name = bfd_get_filename (so.abfd.get ());
so.sections = build_section_table (so.abfd.get ());
for (target_section &p : so.sections)
@@ -582,7 +581,7 @@ solib_map_sections (solib &so)
return 1;
}
-/* See solist.h. */
+/* See solib.h. */
void
solib::clear ()
@@ -600,7 +599,7 @@ solib::clear ()
/* Restore the target-supplied file name. SO_NAME may be the path
of the symbol file. */
- this->so_name = this->so_original_name;
+ this->name = this->original_name;
/* Do the same for target-specific data. */
if (ops->clear_so != NULL)
@@ -634,7 +633,7 @@ solib_read_symbols (solib &so, symfile_add_flags flags)
so.objfile = nullptr;
for (objfile *objfile : current_program_space->objfiles ())
{
- if (filename_cmp (objfile_name (objfile), so.so_name.c_str ())
+ if (filename_cmp (objfile_name (objfile), so.name.c_str ())
== 0
&& objfile->addr_low == so.addr_low)
{
@@ -648,7 +647,7 @@ solib_read_symbols (solib &so, symfile_add_flags flags)
= build_section_addr_info_from_section_table (so.sections);
gdb_bfd_ref_ptr tmp_bfd = so.abfd;
so.objfile
- = symbol_file_add_from_bfd (tmp_bfd, so.so_name.c_str (),
+ = symbol_file_add_from_bfd (tmp_bfd, so.name.c_str (),
flags, &sap, OBJF_SHARED, nullptr);
so.objfile->addr_low = so.addr_low;
}
@@ -660,7 +659,7 @@ solib_read_symbols (solib &so, symfile_add_flags flags)
exception_fprintf (gdb_stderr, e,
_ ("Error while reading shared"
" library symbols for %s:\n"),
- so.so_name.c_str ());
+ so.name.c_str ());
}
return true;
@@ -691,13 +690,20 @@ notify_solib_loaded (solib &so)
gdb::observers::solib_loaded.notify (so);
}
-/* Notify interpreters and observers that solib SO has been unloaded. */
+/* Notify interpreters and observers that solib SO has been unloaded.
+ When STILL_IN_USE is true, the objfile backing SO is still in use,
+ this indicates that SO was loaded multiple times, but only mapped
+ in once (the mapping was reused).
+
+ When SILENT is true, don't announce to the user if any breakpoints are
+ disabled as a result of unloading SO. */
static void
-notify_solib_unloaded (program_space *pspace, const solib &so)
+notify_solib_unloaded (program_space *pspace, const solib &so,
+ bool still_in_use, bool silent)
{
- interps_notify_solib_unloaded (so);
- gdb::observers::solib_unloaded.notify (pspace, so);
+ interps_notify_solib_unloaded (so, still_in_use);
+ gdb::observers::solib_unloaded.notify (pspace, so, still_in_use, silent);
}
/* See solib.h. */
@@ -717,7 +723,8 @@ update_solib_list (int from_tty)
have not opened a symbol file, we may be able to get its
symbols now! */
if (inf->attach_flag
- && current_program_space->symfile_object_file == NULL)
+ && current_program_space->symfile_object_file == nullptr
+ && ops->open_symbol_file_object != nullptr)
{
try
{
@@ -758,8 +765,8 @@ update_solib_list (int from_tty)
owning_intrusive_list<solib> inferior = ops->current_sos ();
owning_intrusive_list<solib>::iterator gdb_iter
- = current_program_space->so_list.begin ();
- while (gdb_iter != current_program_space->so_list.end ())
+ = current_program_space->solibs ().begin ();
+ while (gdb_iter != current_program_space->solibs ().end ())
{
intrusive_list<solib>::iterator inferior_iter = inferior.begin ();
@@ -774,8 +781,8 @@ update_solib_list (int from_tty)
}
else
{
- if (!filename_cmp (gdb_iter->so_original_name.c_str (),
- inferior_iter->so_original_name.c_str ()))
+ if (!filename_cmp (gdb_iter->original_name.c_str (),
+ inferior_iter->original_name.c_str ()))
break;
}
}
@@ -792,23 +799,28 @@ update_solib_list (int from_tty)
/* If it's not on the inferior's list, remove it from GDB's tables. */
else
{
+ bool still_in_use
+ = (gdb_iter->objfile != nullptr
+ && solib_used (current_program_space, *gdb_iter));
+
/* Notify any observer that the shared object has been
unloaded before we remove it from GDB's tables. */
- notify_solib_unloaded (current_program_space, *gdb_iter);
-
- current_program_space->deleted_solibs.push_back (gdb_iter->so_name);
+ notify_solib_unloaded (current_program_space, *gdb_iter,
+ still_in_use, false);
/* Unless the user loaded it explicitly, free SO's objfile. */
if (gdb_iter->objfile != nullptr
&& !(gdb_iter->objfile->flags & OBJF_USERLOADED)
- && !solib_used (current_program_space, *gdb_iter))
+ && !still_in_use)
gdb_iter->objfile->unlink ();
+ current_program_space->deleted_solibs.push_back (gdb_iter->name);
+
/* Some targets' section tables might be referring to
sections from so.abfd; remove them. */
current_program_space->remove_target_sections (&*gdb_iter);
- gdb_iter = current_program_space->so_list.erase (gdb_iter);
+ gdb_iter = current_program_space->solibs ().erase (gdb_iter);
}
}
@@ -832,7 +844,7 @@ update_solib_list (int from_tty)
{
not_found++;
if (not_found_filename == NULL)
- not_found_filename = new_so.so_original_name.c_str ();
+ not_found_filename = new_so.original_name.c_str ();
}
}
@@ -849,7 +861,7 @@ update_solib_list (int from_tty)
}
/* Add the new shared objects to GDB's list. */
- current_program_space->so_list.splice (std::move (inferior));
+ current_program_space->solibs ().splice (std::move (inferior));
/* If a library was not found, issue an appropriate warning
message. We have to use a single call to warning in case the
@@ -906,7 +918,7 @@ libpthread_name_p (const char *name)
static bool
libpthread_solib_p (const solib &so)
{
- return libpthread_name_p (so.so_name.c_str ());
+ return libpthread_name_p (so.name.c_str ());
}
/* Read in symbolic information for any shared objects whose names
@@ -956,7 +968,7 @@ solib_add (const char *pattern, int from_tty, int readsyms)
add_flags |= SYMFILE_VERBOSE;
for (solib &gdb : current_program_space->solibs ())
- if (!pattern || re_exec (gdb.so_name.c_str ()))
+ if (!pattern || re_exec (gdb.name.c_str ()))
{
/* Normally, we would read the symbols from that library
only if READSYMS is set. However, we're making a small
@@ -975,14 +987,14 @@ solib_add (const char *pattern, int from_tty, int readsyms)
if (pattern && (from_tty || info_verbose))
gdb_printf (_ ("Symbols already loaded for %ps\n"),
styled_string (file_name_style.style (),
- gdb.so_name.c_str ()));
+ gdb.name.c_str ()));
}
else if (solib_read_symbols (gdb, add_flags))
loaded_any_symbols = true;
}
}
- if (loaded_any_symbols)
+ if (loaded_any_symbols || !current_program_space->deleted_solibs.empty ())
breakpoint_re_set ();
if (from_tty && pattern && !any_matches)
@@ -998,72 +1010,61 @@ solib_add (const char *pattern, int from_tty, int readsyms)
}
}
-/* Implement the "info sharedlibrary" command. Walk through the
- shared library list and print information about each attached
- library matching PATTERN. If PATTERN is elided, print them
- all. */
+/* Helper function for "info sharedlibrary" and "info namespace".
+ This receives a list of solibs to be printed, and prints a table
+ with all the relevant data. If PRINT_NAMESPACE is true, figure out
+ the solib_ops of the current gdbarch, to calculate the namespace
+ that contains an solib.
+ Returns true if one or more solibs are missing debug information,
+ false otherwise. */
static void
-info_sharedlibrary_command (const char *pattern, int from_tty)
+print_solib_list_table (std::vector<const solib *> solib_list,
+ bool print_namespace)
{
- bool so_missing_debug_info = false;
- int addr_width;
- int nr_libs;
gdbarch *gdbarch = current_inferior ()->arch ();
- struct ui_out *uiout = current_uiout;
-
- if (pattern)
- {
- char *re_err = re_comp (pattern);
-
- if (re_err)
- error (_ ("Invalid regexp: %s"), re_err);
- }
-
/* "0x", a little whitespace, and two hex digits per byte of pointers. */
- addr_width = 4 + (gdbarch_ptr_bit (gdbarch) / 4);
-
- update_solib_list (from_tty);
+ int addr_width = 4 + (gdbarch_ptr_bit (gdbarch) / 4);
+ const solib_ops *ops = gdbarch_so_ops (gdbarch);
+ struct ui_out *uiout = current_uiout;
+ bool so_missing_debug_info = false;
- /* ui_out_emit_table table_emitter needs to know the number of rows,
- so we need to make two passes over the libs. */
+ /* There are 3 conditions for this command to print solib namespaces,
+ first PRINT_NAMESPACE has to be true, second the solib_ops has to
+ support multiple namespaces, and third there must be more than one
+ active namespace. Fold all these into the PRINT_NAMESPACE condition. */
+ print_namespace = print_namespace && ops->num_active_namespaces != nullptr
+ && ops->num_active_namespaces () > 1;
- nr_libs = 0;
- for (const solib &so : current_program_space->solibs ())
- {
- if (!so.so_name.empty ())
- {
- if (pattern && !re_exec (so.so_name.c_str ()))
- continue;
- ++nr_libs;
- }
- }
+ int num_cols = 4;
+ if (print_namespace)
+ num_cols++;
{
- ui_out_emit_table table_emitter (uiout, 4, nr_libs, "SharedLibraryTable");
+ ui_out_emit_table table_emitter (uiout, num_cols, solib_list.size (),
+ "SharedLibraryTable");
/* The "- 1" is because ui_out adds one space between columns. */
uiout->table_header (addr_width - 1, ui_left, "from", "From");
uiout->table_header (addr_width - 1, ui_left, "to", "To");
+ if (print_namespace)
+ uiout->table_header (5, ui_left, "namespace", "NS");
uiout->table_header (12 - 1, ui_left, "syms-read", "Syms Read");
uiout->table_header (0, ui_noalign, "name", "Shared Object Library");
uiout->table_body ();
- for (const solib &so : current_program_space->solibs ())
+ for (const solib *so : solib_list)
{
- if (so.so_name.empty ())
- continue;
-
- if (pattern && !re_exec (so.so_name.c_str ()))
+ if (so->name.empty ())
continue;
ui_out_emit_tuple tuple_emitter (uiout, "lib");
- if (so.addr_high != 0)
+ if (so->addr_high != 0)
{
- uiout->field_core_addr ("from", gdbarch, so.addr_low);
- uiout->field_core_addr ("to", gdbarch, so.addr_high);
+ uiout->field_core_addr ("from", gdbarch, so->addr_low);
+ uiout->field_core_addr ("to", gdbarch, so->addr_high);
}
else
{
@@ -1071,33 +1072,170 @@ info_sharedlibrary_command (const char *pattern, int from_tty)
uiout->field_skip ("to");
}
+ if (print_namespace)
+ {
+ try
+ {
+ uiout->field_fmt ("namespace", "[[%d]]", ops->find_solib_ns (*so));
+ }
+ catch (const gdb_exception_error &er)
+ {
+ uiout->field_skip ("namespace");
+ }
+ }
+
if (!top_level_interpreter ()->interp_ui_out ()->is_mi_like_p ()
- && so.symbols_loaded && !objfile_has_symbols (so.objfile))
+ && so->symbols_loaded && !so->objfile->has_symbols ())
{
so_missing_debug_info = true;
uiout->field_string ("syms-read", "Yes (*)");
}
else
- uiout->field_string ("syms-read", so.symbols_loaded ? "Yes" : "No");
+ uiout->field_string ("syms-read", so->symbols_loaded ? "Yes" : "No");
- uiout->field_string ("name", so.so_name, file_name_style.style ());
+ uiout->field_string ("name", so->name, file_name_style.style ());
uiout->text ("\n");
}
}
- if (nr_libs == 0)
+ if (so_missing_debug_info)
+ uiout->message (_ ("(*): Shared library is missing "
+ "debugging information.\n"));
+}
+
+/* Implement the "info sharedlibrary" command. Walk through the
+ shared library list and print information about each attached
+ library matching PATTERN. If PATTERN is elided, print them
+ all. */
+
+static void
+info_sharedlibrary_command (const char *pattern, int from_tty)
+{
+ struct ui_out *uiout = current_uiout;
+
+ if (pattern)
+ {
+ char *re_err = re_comp (pattern);
+
+ if (re_err)
+ error (_ ("Invalid regexp: %s"), re_err);
+ }
+
+ update_solib_list (from_tty);
+
+ /* ui_out_emit_table table_emitter needs to know the number of rows,
+ so we need to make two passes over the libs. */
+
+ std::vector<const solib *> print_libs;
+ for (const solib &so : current_program_space->solibs ())
+ {
+ if (!so.name.empty ())
+ {
+ if (pattern && !re_exec (so.name.c_str ()))
+ continue;
+ print_libs.push_back (&so);
+ }
+ }
+
+ print_solib_list_table (print_libs, true);
+
+ if (print_libs.size () == 0)
{
if (pattern)
uiout->message (_ ("No shared libraries matched.\n"));
else
uiout->message (_ ("No shared libraries loaded at this time.\n"));
}
+}
+
+/* Implement the "info linker-namespaces" command. If the current
+ gdbarch's solib_ops object does not support multiple namespaces,
+ this command would just look like "info sharedlibrary", so point
+ the user to that command instead.
+ If solib_ops does support multiple namespaces, this command
+ will group the libraries by linker namespace, or only print the
+ libraries in the supplied namespace. */
+static void
+info_linker_namespace_command (const char *pattern, int from_tty)
+{
+ const solib_ops *ops = gdbarch_so_ops (current_inferior ()->arch ());
+ /* This command only really makes sense for inferiors that support
+ linker namespaces, so we can leave early. */
+ if (ops->num_active_namespaces == nullptr)
+ error (_("Current inferior does not support linker namespaces." \
+ "Use \"info sharedlibrary\" instead"));
+
+ struct ui_out *uiout = current_uiout;
+ std::vector<std::pair<int, std::vector<const solib *>>> all_solibs_to_print;
+
+ if (pattern != nullptr)
+ while (*pattern == ' ')
+ pattern++;
+
+ if (pattern == nullptr || pattern[0] == '\0')
+ {
+ uiout->message (_ ("There are %d linker namespaces loaded\n"),
+ ops->num_active_namespaces ());
+
+ int printed = 0;
+ for (int i = 0; printed < ops->num_active_namespaces (); i++)
+ {
+ std::vector<const solib *> solibs_to_print
+ = ops->get_solibs_in_ns (i);
+ if (solibs_to_print.size () > 0)
+ {
+ all_solibs_to_print.push_back (std::make_pair
+ (i, solibs_to_print));
+ printed++;
+ }
+ }
+ }
else
{
- if (so_missing_debug_info)
- uiout->message (_ ("(*): Shared library is missing "
- "debugging information.\n"));
+ int ns;
+ /* Check if the pattern includes the optional [[ and ]] decorators.
+ To match multiple occurrences, '+' needs to be escaped, and every
+ escape sequence must be doubled to survive the compiler pass. */
+ re_comp ("^\\[\\[[0-9]\\+\\]\\]$");
+ if (re_exec (pattern))
+ ns = strtol (pattern+2, nullptr, 10);
+ else
+ {
+ char * end = nullptr;
+ ns = strtol (pattern, &end, 10);
+ if (end[0] != '\0')
+ error (_ ("Invalid linker namespace identifier: %s"), pattern);
+ }
+
+ all_solibs_to_print.push_back
+ (std::make_pair (ns, ops->get_solibs_in_ns (ns)));
+ }
+
+ bool ns_separator = false;
+
+ for (auto &solibs_pair : all_solibs_to_print)
+ {
+ if (ns_separator)
+ uiout->message ("\n\n");
+ else
+ ns_separator = true;
+ int ns = solibs_pair.first;
+ std::vector<const solib *> solibs_to_print = solibs_pair.second;
+ if (solibs_to_print.size () == 0)
+ {
+ uiout->message (_("Linker namespace [[%d]] is not active.\n"), ns);
+ /* If we got here, a specific namespace was requested, so there
+ will only be one vector. We can leave early. */
+ break;
+ }
+ uiout->message
+ (_ ("There are %zu libraries loaded in linker namespace [[%d]]\n"),
+ solibs_to_print.size (), ns);
+ uiout->message
+ (_ ("Displaying libraries for linker namespace [[%d]]:\n"), ns);
+
+ print_solib_list_table (solibs_to_print, false);
}
}
@@ -1127,9 +1265,9 @@ solib_contains_address_p (const solib &solib, CORE_ADDR address)
const char *
solib_name_from_address (struct program_space *pspace, CORE_ADDR address)
{
- for (const solib &so : pspace->so_list)
+ for (const solib &so : pspace->solibs ())
if (solib_contains_address_p (so, address))
- return so.so_name.c_str ();
+ return so.name.c_str ();
return nullptr;
}
@@ -1154,15 +1292,16 @@ clear_solib (program_space *pspace)
{
const solib_ops *ops = gdbarch_so_ops (current_inferior ()->arch ());
- disable_breakpoints_in_shlibs (pspace);
-
- for (solib &so : pspace->so_list)
+ for (solib &so : pspace->solibs ())
{
- notify_solib_unloaded (pspace, so);
+ bool still_in_use
+ = (so.objfile != nullptr && solib_used (pspace, so));
+
+ notify_solib_unloaded (pspace, so, still_in_use, true);
pspace->remove_target_sections (&so);
};
- pspace->so_list.clear ();
+ pspace->solibs ().clear ();
if (ops->clear_solib != nullptr)
ops->clear_solib (pspace);
@@ -1178,7 +1317,8 @@ solib_create_inferior_hook (int from_tty)
{
const solib_ops *ops = gdbarch_so_ops (current_inferior ()->arch ());
- ops->solib_create_inferior_hook (from_tty);
+ if (ops->solib_create_inferior_hook != nullptr)
+ ops->solib_create_inferior_hook (from_tty);
}
/* See solib.h. */
@@ -1186,9 +1326,10 @@ solib_create_inferior_hook (int from_tty)
bool
in_solib_dynsym_resolve_code (CORE_ADDR pc)
{
- const solib_ops *ops = gdbarch_so_ops (current_inferior ()->arch ());
+ const auto in_dynsym_resolve_code
+ = gdbarch_so_ops (current_inferior ()->arch ())->in_dynsym_resolve_code;
- return ops->in_dynsym_resolve_code (pc) != 0;
+ return in_dynsym_resolve_code && in_dynsym_resolve_code (pc);
}
/* Implements the "sharedlibrary" command. */
@@ -1275,7 +1416,7 @@ reload_shared_libraries_1 (int from_tty)
add_flags |= SYMFILE_VERBOSE;
gdb::unique_xmalloc_ptr<char> filename (
- tilde_expand (so.so_original_name.c_str ()));
+ tilde_expand (so.original_name.c_str ()));
gdb_bfd_ref_ptr abfd (solib_bfd_open (filename.get ()));
if (abfd != NULL)
found_pathname = bfd_get_filename (abfd.get ());
@@ -1284,7 +1425,7 @@ reload_shared_libraries_1 (int from_tty)
symbol file, close that. */
if ((found_pathname == NULL && was_loaded)
|| (found_pathname != NULL
- && filename_cmp (found_pathname, so.so_name.c_str ()) != 0))
+ && filename_cmp (found_pathname, so.name.c_str ()) != 0))
{
if (so.objfile && !(so.objfile->flags & OBJF_USERLOADED)
&& !solib_used (current_program_space, so))
@@ -1297,7 +1438,7 @@ reload_shared_libraries_1 (int from_tty)
file, open it. */
if (found_pathname != NULL
&& (!was_loaded
- || filename_cmp (found_pathname, so.so_name.c_str ()) != 0))
+ || filename_cmp (found_pathname, so.name.c_str ()) != 0))
{
bool got_error = false;
@@ -1341,7 +1482,7 @@ reload_shared_libraries (const char *ignored, int from_tty,
if (target_has_execution ())
{
/* Reset or free private data structures not associated with
- so_list entries. */
+ solib entries. */
if (ops->clear_solib != nullptr)
ops->clear_solib (current_program_space);
@@ -1419,49 +1560,38 @@ CORE_ADDR
gdb_bfd_lookup_symbol_from_symtab (
bfd *abfd, gdb::function_view<bool (const asymbol *)> match_sym)
{
- long storage_needed = bfd_get_symtab_upper_bound (abfd);
CORE_ADDR symaddr = 0;
+ gdb::array_view<asymbol *> symbol_table
+ = gdb_bfd_canonicalize_symtab (abfd, false);
- if (storage_needed > 0)
+ for (asymbol *sym : symbol_table)
{
- unsigned int i;
-
- gdb::def_vector<asymbol *> storage (storage_needed / sizeof (asymbol *));
- asymbol **symbol_table = storage.data ();
- unsigned int number_of_symbols
- = bfd_canonicalize_symtab (abfd, symbol_table);
-
- for (i = 0; i < number_of_symbols; i++)
+ if (match_sym (sym))
{
- asymbol *sym = *symbol_table++;
-
- if (match_sym (sym))
+ gdbarch *gdbarch = current_inferior ()->arch ();
+ symaddr = sym->value;
+
+ /* Some ELF targets fiddle with addresses of symbols they
+ consider special. They use minimal symbols to do that
+ and this is needed for correct breakpoint placement,
+ but we do not have full data here to build a complete
+ minimal symbol, so just set the address and let the
+ targets cope with that. */
+ if (bfd_get_flavour (abfd) == bfd_target_elf_flavour
+ && gdbarch_elf_make_msymbol_special_p (gdbarch))
{
- gdbarch *gdbarch = current_inferior ()->arch ();
- symaddr = sym->value;
-
- /* Some ELF targets fiddle with addresses of symbols they
- consider special. They use minimal symbols to do that
- and this is needed for correct breakpoint placement,
- but we do not have full data here to build a complete
- minimal symbol, so just set the address and let the
- targets cope with that. */
- if (bfd_get_flavour (abfd) == bfd_target_elf_flavour
- && gdbarch_elf_make_msymbol_special_p (gdbarch))
+ struct minimal_symbol msym
{
- struct minimal_symbol msym
- {
- };
+ };
- msym.set_value_address (symaddr);
- gdbarch_elf_make_msymbol_special (gdbarch, sym, &msym);
- symaddr = CORE_ADDR (msym.unrelocated_address ());
- }
-
- /* BFD symbols are section relative. */
- symaddr += sym->section->vma;
- break;
+ msym.set_value_address (symaddr);
+ gdbarch_elf_make_msymbol_special (gdbarch, sym, &msym);
+ symaddr = CORE_ADDR (msym.unrelocated_address ());
}
+
+ /* BFD symbols are section relative. */
+ symaddr += sym->section->vma;
+ break;
}
}
@@ -1688,6 +1818,42 @@ default_find_solib_addr (solib &so)
return {};
}
+/* Implementation of the linker_namespace convenience variable.
+ This returns the GDB internal identifier of the linker namespace,
+ for the selected frame, as an integer. If the inferior doesn't support
+ linker namespaces, this always returns 0. */
+
+static value *
+linker_namespace_make_value (gdbarch *gdbarch, internalvar *var,
+ void *ignore)
+{
+ const solib_ops *ops = gdbarch_so_ops (gdbarch);
+ int nsid = 0;
+ if (ops->find_solib_ns != nullptr)
+ {
+ CORE_ADDR curr_pc = get_frame_pc (get_selected_frame ());
+ for (const solib &so : current_program_space->solibs ())
+ if (solib_contains_address_p (so, curr_pc))
+ {
+ nsid = ops->find_solib_ns (so);
+ break;
+ }
+ }
+
+
+ /* If the PC is not in an SO, or the solib_ops doesn't support
+ linker namespaces, the inferior is in the default namespace. */
+ return value_from_longest (builtin_type (gdbarch)->builtin_int, nsid);
+}
+
+/* Implementation of `$_linker_namespace' variable. */
+
+static const struct internalvar_funcs linker_namespace_funcs =
+{
+ linker_namespace_make_value,
+ nullptr,
+};
+
void _initialize_solib ();
void
@@ -1700,6 +1866,13 @@ _initialize_solib ()
},
"solib");
+ /* Convenience variables for debugging linker namespaces. These are
+ set here, even if the solib_ops doesn't support them,
+ for consistency. */
+ create_internalvar_type_lazy ("_linker_namespace",
+ &linker_namespace_funcs, nullptr);
+ set_internalvar_integer (lookup_internalvar ("_active_linker_namespaces"), 1);
+
add_com (
"sharedlibrary", class_files, sharedlibrary_command,
_ ("Load shared object library symbols for files matching REGEXP."));
@@ -1710,6 +1883,9 @@ _initialize_solib ()
add_com ("nosharedlibrary", class_files, no_shared_libraries_command,
_ ("Unload all shared object library symbols."));
+ add_info ("linker-namespaces", info_linker_namespace_command,
+ _ ("Get information about linker namespaces in the inferior."));
+
add_setshow_boolean_cmd ("auto-solib-add", class_support, &auto_solib_add,
_ ("\
Set autoloading of shared library symbols."),
diff --git a/gdb/solib.h b/gdb/solib.h
index 577bcae..f5922aa 100644
--- a/gdb/solib.h
+++ b/gdb/solib.h
@@ -1,6 +1,6 @@
/* Shared library declarations for GDB, the GNU Debugger.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -20,15 +20,14 @@
#ifndef GDB_SOLIB_H
#define GDB_SOLIB_H
-/* Forward decl's for prototypes */
-struct solib;
-struct target_ops;
-struct solib_ops;
-struct program_space;
-
#include "gdb_bfd.h"
-#include "symfile-add-flags.h"
#include "gdbsupport/function-view.h"
+#include "gdbsupport/intrusive_list.h"
+#include "gdbsupport/owning_intrusive_list.h"
+#include "symfile-add-flags.h"
+#include "target-section.h"
+
+struct program_space;
/* Value of the 'set debug solib' configuration variable. */
@@ -42,6 +41,201 @@ extern bool debug_solib;
#define SOLIB_SCOPED_DEBUG_START_END(fmt, ...) \
scoped_debug_start_end (debug_solib, "solib", fmt, ##__VA_ARGS__)
+#define SO_NAME_MAX_PATH_SIZE 512 /* FIXME: Should be dynamic */
+
+/* Base class for target-specific link map information. */
+
+struct lm_info
+{
+ lm_info () = default;
+ lm_info (const lm_info &) = default;
+ virtual ~lm_info () = 0;
+};
+
+using lm_info_up = std::unique_ptr<lm_info>;
+
+struct solib : intrusive_list_node<solib>
+{
+ /* Free symbol-file related contents of SO and reset for possible reloading
+ of SO. If we have opened a BFD for SO, close it. If we have placed SO's
+ sections in some target's section table, the caller is responsible for
+ removing them.
+
+ This function doesn't mess with objfiles at all. If there is an
+ objfile associated with SO that needs to be removed, the caller is
+ responsible for taking care of that. */
+ void clear () ;
+
+ /* The following fields of the structure come directly from the
+ dynamic linker's tables in the inferior, and are initialized by
+ current_sos. */
+
+ /* A pointer to target specific link map information. Often this
+ will be a copy of struct link_map from the user process, but
+ it need not be; it can be any collection of data needed to
+ traverse the dynamic linker's data structures. */
+ lm_info_up lm_info;
+
+ /* Shared object file name, exactly as it appears in the
+ inferior's link map. This may be a relative path, or something
+ which needs to be looked up in LD_LIBRARY_PATH, etc. We use it
+ to tell which entries in the inferior's dynamic linker's link
+ map we've already loaded. */
+ std::string original_name;
+
+ /* Shared object file name, expanded to something GDB can open. */
+ std::string name;
+
+ /* The following fields of the structure are built from
+ information gathered from the shared object file itself, and
+ are set when we actually add it to our symbol tables.
+
+ current_sos must initialize these fields to 0. */
+
+ gdb_bfd_ref_ptr abfd;
+
+ /* True if symbols have been read in. */
+ bool symbols_loaded = false;
+
+ /* objfile with symbols for a loaded library. Target memory is read from
+ ABFD. OBJFILE may be NULL either before symbols have been loaded, if
+ the file cannot be found or after the command "nosharedlibrary". */
+ struct objfile *objfile = nullptr;
+
+ std::vector<target_section> sections;
+
+ /* Record the range of addresses belonging to this shared library.
+ There may not be just one (e.g. if two segments are relocated
+ differently). This is used for "info sharedlibrary" and
+ the MI command "-file-list-shared-libraries". The latter has a format
+ that supports outputting multiple segments once the related code
+ supports them. */
+ CORE_ADDR addr_low = 0, addr_high = 0;
+};
+
+/* A unique pointer to an solib. */
+using solib_up = std::unique_ptr<solib>;
+
+struct solib_ops
+{
+ /* Adjust the section binding addresses by the base address at
+ which the object was actually mapped. */
+ void (*relocate_section_addresses) (solib &so, target_section *);
+
+ /* Reset private data structures associated with SO.
+ This is called when SO is about to be reloaded.
+ It is also called when SO is about to be freed. */
+ void (*clear_so) (const solib &so);
+
+ /* Free private data structures associated to PSPACE. This method
+ should not free resources associated to individual solib entries,
+ those are cleared by the clear_so method. */
+ void (*clear_solib) (program_space *pspace);
+
+ /* Target dependent code to run after child process fork. */
+ void (*solib_create_inferior_hook) (int from_tty);
+
+ /* Construct a list of the currently loaded shared objects. This
+ list does not include an entry for the main executable file.
+
+ Note that we only gather information directly available from the
+ inferior --- we don't examine any of the shared library files
+ themselves. The declaration of `struct solib' says which fields
+ we provide values for. */
+ owning_intrusive_list<solib> (*current_sos) ();
+
+ /* Find, open, and read the symbols for the main executable. If
+ FROM_TTY is non-zero, allow messages to be printed. */
+ int (*open_symbol_file_object) (int from_ttyp);
+
+ /* Determine if PC lies in the dynamic symbol resolution code of
+ the run time loader. */
+ bool (*in_dynsym_resolve_code) (CORE_ADDR pc);
+
+ /* Find and open shared library binary file. */
+ gdb_bfd_ref_ptr (*bfd_open) (const char *pathname);
+
+ /* Given two solib objects, one from the GDB thread list
+ and another from the list returned by current_sos, return 1
+ if they represent the same library.
+ Falls back to using strcmp on ORIGINAL_NAME when set to nullptr. */
+ int (*same) (const solib &gdb, const solib &inferior);
+
+ /* Return whether a region of memory must be kept in a core file
+ for shared libraries loaded before "gcore" is used to be
+ handled correctly when the core file is loaded. This only
+ applies when the section would otherwise not be kept in the
+ core file (in particular, for readonly sections). */
+ int (*keep_data_in_core) (CORE_ADDR vaddr,
+ unsigned long size);
+
+ /* Enable or disable optional solib event breakpoints as
+ appropriate. This should be called whenever
+ stop_on_solib_events is changed. This pointer can be
+ NULL, in which case no enabling or disabling is necessary
+ for this target. */
+ void (*update_breakpoints) (void);
+
+ /* Target-specific processing of solib events that will be
+ performed before solib_add is called. This pointer can be
+ NULL, in which case no specific preprocessing is necessary
+ for this target. */
+ void (*handle_event) (void);
+
+ /* Return an address within the inferior's address space which is known
+ to be part of SO. If there is no such address, or GDB doesn't know
+ how to figure out such an address then an empty optional is
+ returned.
+
+ The returned address can be used when loading the shared libraries
+ for a core file. GDB knows the build-ids for (some) files mapped
+ into the inferior's address space, and knows the address ranges which
+ those mapped files cover. If GDB can figure out a representative
+ address for the library then this can be used to match a library to a
+ mapped file, and thus to a build-id. GDB can then use this
+ information to help locate the shared library objfile, if the objfile
+ is not in the expected place (as defined by the shared libraries file
+ name). */
+ std::optional<CORE_ADDR> (*find_solib_addr) (solib &so);
+
+ /* Return which linker namespace contains the current so.
+ If the linker or libc does not support linkage namespaces at all
+ (which is basically all of them but solib-svr4), this function should
+ be set to nullptr, so that "info shared" won't add an unnecessary
+ column.
+
+ If the namespace can not be determined (such as when we're stepping
+ though the dynamic linker), this function should throw a
+ gdb_exception_error. */
+ int (*find_solib_ns) (const solib &so);
+
+ /* Returns the number of active namespaces in the inferior. */
+ int (*num_active_namespaces) ();
+
+ /* Returns all solibs for a given namespace. If the namespace is not
+ active, returns an empty vector. */
+ std::vector<const solib *> (*get_solibs_in_ns) (int ns);
+};
+
+/* Find main executable binary file. */
+extern gdb::unique_xmalloc_ptr<char> exec_file_find (const char *in_pathname,
+ int *fd);
+
+/* Find shared library binary file. */
+extern gdb::unique_xmalloc_ptr<char> solib_find (const char *in_pathname,
+ int *fd);
+
+/* Open BFD for shared library file. */
+extern gdb_bfd_ref_ptr solib_bfd_fopen (const char *pathname, int fd);
+
+/* Find solib binary file and open it. */
+extern gdb_bfd_ref_ptr solib_bfd_open (const char *in_pathname);
+
+/* A default implementation of the solib_ops::find_solib_addr callback.
+ This just returns an empty std::optional<CORE_ADDR> indicating GDB is
+ unable to find an address within the library SO. */
+extern std::optional<CORE_ADDR> default_find_solib_addr (solib &so);
+
/* Called when we free all symtabs of PSPACE, to free the shared library
information as well. */
@@ -89,7 +283,8 @@ extern void no_shared_libraries (program_space *pspace);
Extract the list of currently loaded shared objects from the
inferior, and compare it with the list of shared objects in the
current program space's list of shared libraries. Edit
- so_list_head to bring it in sync with the inferior's new list.
+ the current program space's solib list to bring it in sync with the
+ inferior's new list.
If we notice that the inferior has unloaded some shared objects,
free any symbolic info GDB had read about those shared objects.
diff --git a/gdb/solist.h b/gdb/solist.h
deleted file mode 100644
index 9a157a4..0000000
--- a/gdb/solist.h
+++ /dev/null
@@ -1,207 +0,0 @@
-/* Shared library declarations for GDB, the GNU Debugger.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 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, see <http://www.gnu.org/licenses/>. */
-
-#ifndef GDB_SOLIST_H
-#define GDB_SOLIST_H
-
-#define SO_NAME_MAX_PATH_SIZE 512 /* FIXME: Should be dynamic */
-
-/* For domain_enum domain. */
-#include "symtab.h"
-#include "gdb_bfd.h"
-#include "gdbsupport/owning_intrusive_list.h"
-#include "target-section.h"
-
-/* Base class for target-specific link map information. */
-
-struct lm_info
-{
- lm_info () = default;
- lm_info (const lm_info &) = default;
- virtual ~lm_info () = 0;
-};
-
-using lm_info_up = std::unique_ptr<lm_info>;
-
-struct solib : intrusive_list_node<solib>
-{
- /* Free symbol-file related contents of SO and reset for possible reloading
- of SO. If we have opened a BFD for SO, close it. If we have placed SO's
- sections in some target's section table, the caller is responsible for
- removing them.
-
- This function doesn't mess with objfiles at all. If there is an
- objfile associated with SO that needs to be removed, the caller is
- responsible for taking care of that. */
- void clear () ;
-
- /* The following fields of the structure come directly from the
- dynamic linker's tables in the inferior, and are initialized by
- current_sos. */
-
- /* A pointer to target specific link map information. Often this
- will be a copy of struct link_map from the user process, but
- it need not be; it can be any collection of data needed to
- traverse the dynamic linker's data structures. */
- lm_info_up lm_info;
-
- /* Shared object file name, exactly as it appears in the
- inferior's link map. This may be a relative path, or something
- which needs to be looked up in LD_LIBRARY_PATH, etc. We use it
- to tell which entries in the inferior's dynamic linker's link
- map we've already loaded. */
- std::string so_original_name;
-
- /* Shared object file name, expanded to something GDB can open. */
- std::string so_name;
-
- /* The following fields of the structure are built from
- information gathered from the shared object file itself, and
- are set when we actually add it to our symbol tables.
-
- current_sos must initialize these fields to 0. */
-
- gdb_bfd_ref_ptr abfd;
-
- /* True if symbols have been read in. */
- bool symbols_loaded = false;
-
- /* objfile with symbols for a loaded library. Target memory is read from
- ABFD. OBJFILE may be NULL either before symbols have been loaded, if
- the file cannot be found or after the command "nosharedlibrary". */
- struct objfile *objfile = nullptr;
-
- std::vector<target_section> sections;
-
- /* Record the range of addresses belonging to this shared library.
- There may not be just one (e.g. if two segments are relocated
- differently). This is used for "info sharedlibrary" and
- the MI command "-file-list-shared-libraries". The latter has a format
- that supports outputting multiple segments once the related code
- supports them. */
- CORE_ADDR addr_low = 0, addr_high = 0;
-};
-
-struct solib_ops
-{
- /* Adjust the section binding addresses by the base address at
- which the object was actually mapped. */
- void (*relocate_section_addresses) (solib &so, target_section *);
-
- /* Reset private data structures associated with SO.
- This is called when SO is about to be reloaded.
- It is also called when SO is about to be freed. */
- void (*clear_so) (const solib &so);
-
- /* Free private data structures associated to PSPACE. This method
- should not free resources associated to individual so_list entries,
- those are cleared by the clear_so method. */
- void (*clear_solib) (program_space *pspace);
-
- /* Target dependent code to run after child process fork. */
- void (*solib_create_inferior_hook) (int from_tty);
-
- /* Construct a list of the currently loaded shared objects. This
- list does not include an entry for the main executable file.
-
- Note that we only gather information directly available from the
- inferior --- we don't examine any of the shared library files
- themselves. The declaration of `struct solib' says which fields
- we provide values for. */
- owning_intrusive_list<solib> (*current_sos) ();
-
- /* Find, open, and read the symbols for the main executable. If
- FROM_TTY is non-zero, allow messages to be printed. */
- int (*open_symbol_file_object) (int from_ttyp);
-
- /* Determine if PC lies in the dynamic symbol resolution code of
- the run time loader. */
- int (*in_dynsym_resolve_code) (CORE_ADDR pc);
-
- /* Find and open shared library binary file. */
- gdb_bfd_ref_ptr (*bfd_open) (const char *pathname);
-
- /* Given two so_list objects, one from the GDB thread list
- and another from the list returned by current_sos, return 1
- if they represent the same library.
- Falls back to using strcmp on so_original_name field when set
- to NULL. */
- int (*same) (const solib &gdb, const solib &inferior);
-
- /* Return whether a region of memory must be kept in a core file
- for shared libraries loaded before "gcore" is used to be
- handled correctly when the core file is loaded. This only
- applies when the section would otherwise not be kept in the
- core file (in particular, for readonly sections). */
- int (*keep_data_in_core) (CORE_ADDR vaddr,
- unsigned long size);
-
- /* Enable or disable optional solib event breakpoints as
- appropriate. This should be called whenever
- stop_on_solib_events is changed. This pointer can be
- NULL, in which case no enabling or disabling is necessary
- for this target. */
- void (*update_breakpoints) (void);
-
- /* Target-specific processing of solib events that will be
- performed before solib_add is called. This pointer can be
- NULL, in which case no specific preprocessing is necessary
- for this target. */
- void (*handle_event) (void);
-
- /* Return an address within the inferior's address space which is known
- to be part of SO. If there is no such address, or GDB doesn't know
- how to figure out such an address then an empty optional is
- returned.
-
- The returned address can be used when loading the shared libraries
- for a core file. GDB knows the build-ids for (some) files mapped
- into the inferior's address space, and knows the address ranges which
- those mapped files cover. If GDB can figure out a representative
- address for the library then this can be used to match a library to a
- mapped file, and thus to a build-id. GDB can then use this
- information to help locate the shared library objfile, if the objfile
- is not in the expected place (as defined by the shared libraries file
- name). */
-
- std::optional<CORE_ADDR> (*find_solib_addr) (solib &so);
-};
-
-/* A unique pointer to a so_list. */
-using solib_up = std::unique_ptr<solib>;
-
-/* Find main executable binary file. */
-extern gdb::unique_xmalloc_ptr<char> exec_file_find (const char *in_pathname,
- int *fd);
-
-/* Find shared library binary file. */
-extern gdb::unique_xmalloc_ptr<char> solib_find (const char *in_pathname,
- int *fd);
-
-/* Open BFD for shared library file. */
-extern gdb_bfd_ref_ptr solib_bfd_fopen (const char *pathname, int fd);
-
-/* Find solib binary file and open it. */
-extern gdb_bfd_ref_ptr solib_bfd_open (const char *in_pathname);
-
-/* A default implementation of the solib_ops::find_solib_addr callback.
- This just returns an empty std::optional<CORE_ADDR> indicating GDB is
- unable to find an address within the library SO. */
-extern std::optional<CORE_ADDR> default_find_solib_addr (solib &so);
-
-#endif /* GDB_SOLIST_H */
diff --git a/gdb/source-cache.c b/gdb/source-cache.c
index f08c872..ebe451d 100644
--- a/gdb/source-cache.c
+++ b/gdb/source-cache.c
@@ -1,5 +1,5 @@
/* Cache of styled source file text
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -325,11 +325,26 @@ source_cache::ensure (struct symtab *s)
least one caller. */
if (i != size - 1)
std::swap (m_source_map[i], m_source_map[size - 1]);
- return true;
+
+ /* If the styling status of the cached entry matches our desired
+ styling status, or we know this file cannot be styled, in
+ which case, this (unstyled) content, is the best we can do. */
+ if (((source_styling && gdb_stdout->can_emit_style_escape ())
+ == m_source_map[size - 1].styled)
+ || m_no_styling_files.count (fullname) > 0)
+ return true;
+
+ /* We found a match, but styling status doesn't match the desired
+ styling status. We already moved the matching item to the
+ back of M_SOURCE_MAP, so drop the entry now, and then
+ recompute with the desired styling. */
+ m_source_map.pop_back ();
+ break;
}
}
std::string contents;
+ bool styled_p = false;
try
{
contents = get_plain_source_lines (s, fullname);
@@ -343,21 +358,22 @@ source_cache::ensure (struct symtab *s)
if (source_styling && gdb_stdout->can_emit_style_escape ()
&& m_no_styling_files.count (fullname) == 0)
{
- bool already_styled
+ styled_p
= try_source_highlight (contents, s->language (), fullname);
- if (!already_styled)
+ if (!styled_p)
{
std::optional<std::string> ext_contents;
- ext_contents = ext_lang_colorize (fullname, contents);
+ ext_contents = ext_lang_colorize (fullname, contents,
+ s->language ());
if (ext_contents.has_value ())
{
contents = std::move (*ext_contents);
- already_styled = true;
+ styled_p = true;
}
}
- if (!already_styled)
+ if (!styled_p)
{
/* Styling failed. Styling can fail for instance for these
reasons:
@@ -374,7 +390,8 @@ source_cache::ensure (struct symtab *s)
}
}
- source_text result = { std::move (fullname), std::move (contents) };
+ source_text result
+ = { std::move (fullname), std::move (contents), styled_p };
m_source_map.push_back (std::move (result));
if (m_source_map.size () > MAX_ENTRIES)
diff --git a/gdb/source-cache.h b/gdb/source-cache.h
index 35eeb1c..5b3b922 100644
--- a/gdb/source-cache.h
+++ b/gdb/source-cache.h
@@ -1,5 +1,5 @@
/* Cache of styled source file text
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -19,8 +19,8 @@
#ifndef GDB_SOURCE_CACHE_H
#define GDB_SOURCE_CACHE_H
-#include <unordered_map>
-#include <unordered_set>
+#include "gdbsupport/unordered_map.h"
+#include "gdbsupport/unordered_set.h"
/* This caches two things related to source files.
@@ -78,6 +78,8 @@ private:
std::string fullname;
/* The contents of the file. */
std::string contents;
+ /* True if CONTENTS are styled. Otherwise, false. */
+ bool styled;
};
/* A helper function for get_source_lines reads a source file.
@@ -95,10 +97,10 @@ private:
/* The file offset cache. The key is the full name of the source
file. */
- std::unordered_map<std::string, std::vector<off_t>> m_offset_cache;
+ gdb::unordered_map<std::string, std::vector<off_t>> m_offset_cache;
/* The list of files where styling failed. */
- std::unordered_set<std::string> m_no_styling_files;
+ gdb::unordered_set<std::string> m_no_styling_files;
};
/* The global source cache. */
diff --git a/gdb/source.c b/gdb/source.c
index 0d6523c..13cb8d6 100644
--- a/gdb/source.c
+++ b/gdb/source.c
@@ -1,5 +1,5 @@
/* List lines of source files for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/source.h b/gdb/source.h
index 8ff1ebd..8a7d258 100644
--- a/gdb/source.h
+++ b/gdb/source.h
@@ -1,5 +1,5 @@
/* List lines of source files for GDB, the GNU debugger.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sparc-linux-nat.c b/gdb/sparc-linux-nat.c
index 0b3a692..8dccce9 100644
--- a/gdb/sparc-linux-nat.c
+++ b/gdb/sparc-linux-nat.c
@@ -1,5 +1,5 @@
/* Native-dependent code for GNU/Linux SPARC.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sparc-linux-tdep.c b/gdb/sparc-linux-tdep.c
index 2cf83eb..27706b7 100644
--- a/gdb/sparc-linux-tdep.c
+++ b/gdb/sparc-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux SPARC.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sparc-nat.c b/gdb/sparc-nat.c
index 74156a8..c2d3833 100644
--- a/gdb/sparc-nat.c
+++ b/gdb/sparc-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for SPARC.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sparc-nat.h b/gdb/sparc-nat.h
index 712c9d0..7cef734 100644
--- a/gdb/sparc-nat.h
+++ b/gdb/sparc-nat.h
@@ -1,6 +1,6 @@
/* Native-dependent code for SPARC.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sparc-netbsd-nat.c b/gdb/sparc-netbsd-nat.c
index 82592cc..8eee741 100644
--- a/gdb/sparc-netbsd-nat.c
+++ b/gdb/sparc-netbsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for NetBSD/sparc.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sparc-netbsd-tdep.c b/gdb/sparc-netbsd-tdep.c
index bc058dc..84e3a97 100644
--- a/gdb/sparc-netbsd-tdep.c
+++ b/gdb/sparc-netbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for NetBSD/sparc.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Wasabi Systems, Inc.
This file is part of GDB.
diff --git a/gdb/sparc-obsd-tdep.c b/gdb/sparc-obsd-tdep.c
index 2bc944e..3486799 100644
--- a/gdb/sparc-obsd-tdep.c
+++ b/gdb/sparc-obsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for OpenBSD/sparc.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -147,7 +147,7 @@ static const struct frame_unwind_legacy sparc32obsd_sigtramp_frame_unwind (
-/* Offset wthin the thread structure where we can find %fp and %i7. */
+/* Offset within the thread structure where we can find %fp and %i7. */
#define SPARC32OBSD_UTHREAD_FP_OFFSET 128
#define SPARC32OBSD_UTHREAD_PC_OFFSET 132
diff --git a/gdb/sparc-ravenscar-thread.c b/gdb/sparc-ravenscar-thread.c
index 82f68e1..7e0f2e5 100644
--- a/gdb/sparc-ravenscar-thread.c
+++ b/gdb/sparc-ravenscar-thread.c
@@ -1,6 +1,6 @@
/* Ravenscar SPARC target support.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sparc-ravenscar-thread.h b/gdb/sparc-ravenscar-thread.h
index 5f2749f..7cccd66 100644
--- a/gdb/sparc-ravenscar-thread.h
+++ b/gdb/sparc-ravenscar-thread.h
@@ -1,6 +1,6 @@
/* Ravenscar SPARC target support.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sparc-sol2-nat.c b/gdb/sparc-sol2-nat.c
index 8f9607f..88f6178 100644
--- a/gdb/sparc-sol2-nat.c
+++ b/gdb/sparc-sol2-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for Solaris SPARC.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -26,7 +26,7 @@
#include "target.h"
#include "procfs.h"
-/* This file provids the (temporary) glue between the Solaris SPARC
+/* This file provides the (temporary) glue between the Solaris SPARC
target dependent code and the machine independent SVR4 /proc
support. */
diff --git a/gdb/sparc-sol2-tdep.c b/gdb/sparc-sol2-tdep.c
index b6ac801..5c6085a 100644
--- a/gdb/sparc-sol2-tdep.c
+++ b/gdb/sparc-sol2-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for Solaris SPARC.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c
index 5fab313..80914d9 100644
--- a/gdb/sparc-tdep.c
+++ b/gdb/sparc-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for SPARC.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sparc-tdep.h b/gdb/sparc-tdep.h
index 4fd7e6b..f4444d0 100644
--- a/gdb/sparc-tdep.h
+++ b/gdb/sparc-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for SPARC.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sparc64-fbsd-nat.c b/gdb/sparc64-fbsd-nat.c
index c10d55f..4848c77 100644
--- a/gdb/sparc64-fbsd-nat.c
+++ b/gdb/sparc64-fbsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for FreeBSD/sparc64.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sparc64-fbsd-tdep.c b/gdb/sparc64-fbsd-tdep.c
index 6630a9b..738c3d1 100644
--- a/gdb/sparc64-fbsd-tdep.c
+++ b/gdb/sparc64-fbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for FreeBSD/sparc64.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sparc64-linux-nat.c b/gdb/sparc64-linux-nat.c
index bd9aafd..9a4b228 100644
--- a/gdb/sparc64-linux-nat.c
+++ b/gdb/sparc64-linux-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux UltraSPARC.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sparc64-linux-tdep.c b/gdb/sparc64-linux-tdep.c
index de44465..6e7281c 100644
--- a/gdb/sparc64-linux-tdep.c
+++ b/gdb/sparc64-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux UltraSPARC.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sparc64-nat.c b/gdb/sparc64-nat.c
index aa07bf5..6bb37d8 100644
--- a/gdb/sparc64-nat.c
+++ b/gdb/sparc64-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux UltraSPARC.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sparc64-netbsd-nat.c b/gdb/sparc64-netbsd-nat.c
index 111a45d..c4bec4c 100644
--- a/gdb/sparc64-netbsd-nat.c
+++ b/gdb/sparc64-netbsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for NetBSD/sparc64.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sparc64-netbsd-tdep.c b/gdb/sparc64-netbsd-tdep.c
index 53c49fe..1919598 100644
--- a/gdb/sparc64-netbsd-tdep.c
+++ b/gdb/sparc64-netbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for NetBSD/sparc64.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Based on code contributed by Wasabi Systems, Inc.
This file is part of GDB.
diff --git a/gdb/sparc64-obsd-nat.c b/gdb/sparc64-obsd-nat.c
index 71589d1..5f9bd46 100644
--- a/gdb/sparc64-obsd-nat.c
+++ b/gdb/sparc64-obsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for OpenBSD/sparc64.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sparc64-obsd-tdep.c b/gdb/sparc64-obsd-tdep.c
index 8596d2f..657f548 100644
--- a/gdb/sparc64-obsd-tdep.c
+++ b/gdb/sparc64-obsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for OpenBSD/sparc64.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -318,7 +318,7 @@ static const struct frame_unwind_legacy sparc64obsd_trapframe_unwind (
/* Threads support. */
-/* Offset wthin the thread structure where we can find %fp and %i7. */
+/* Offset within the thread structure where we can find %fp and %i7. */
#define SPARC64OBSD_UTHREAD_FP_OFFSET 232
#define SPARC64OBSD_UTHREAD_PC_OFFSET 240
diff --git a/gdb/sparc64-sol2-tdep.c b/gdb/sparc64-sol2-tdep.c
index cadbf49..72a07ec 100644
--- a/gdb/sparc64-sol2-tdep.c
+++ b/gdb/sparc64-sol2-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for Solaris UltraSPARC.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sparc64-tdep.c b/gdb/sparc64-tdep.c
index 7810b81..ee7d7ed 100644
--- a/gdb/sparc64-tdep.c
+++ b/gdb/sparc64-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for UltraSPARC.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/sparc64-tdep.h b/gdb/sparc64-tdep.h
index a19af4a..1199938 100644
--- a/gdb/sparc64-tdep.h
+++ b/gdb/sparc64-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for UltraSPARC.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/split-name.c b/gdb/split-name.c
index f296080..dc09dec 100644
--- a/gdb/split-name.c
+++ b/gdb/split-name.c
@@ -1,6 +1,6 @@
/* Split a symbol name.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/split-name.h b/gdb/split-name.h
index 5f7ebb2..b2403bf 100644
--- a/gdb/split-name.h
+++ b/gdb/split-name.h
@@ -1,6 +1,6 @@
/* Split a symbol name.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/stabsread.c b/gdb/stabsread.c
index e479820..409f303 100644
--- a/gdb/stabsread.c
+++ b/gdb/stabsread.c
@@ -1,6 +1,6 @@
/* Support routines for decoding "stabs" debugging information format.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -891,7 +891,7 @@ read_ofile_symtab (struct objfile *objfile, legacy_psymtab *pst)
symnum < max_symnum;
symnum++)
{
- QUIT; /* Allow this to be interruptable. */
+ QUIT; /* Allow this to be interruptible. */
if (symbuf_idx == symbuf_end)
fill_symbuf (abfd, objfile);
bufp = &symbuf[symbuf_idx++];
@@ -1301,7 +1301,7 @@ read_stabs_symtab_1 (minimal_symbol_reader &reader,
for (symnum = 0; symnum < DBX_SYMCOUNT (objfile); symnum++)
{
/* Get the symbol for this run and pull out some info. */
- QUIT; /* Allow this to be interruptable. */
+ QUIT; /* Allow this to be interruptible. */
if (symbuf_idx == symbuf_end)
fill_symbuf (abfd, objfile);
bufp = &symbuf[symbuf_idx++];
@@ -1540,7 +1540,7 @@ read_stabs_symtab_1 (minimal_symbol_reader &reader,
}
/* Some other compilers (C++ ones in particular) emit useless
- SOs for non-existant .c files. We ignore all subsequent SOs
+ SOs for non-existent .c files. We ignore all subsequent SOs
that immediately follow the first. */
if (!pst)
@@ -2226,6 +2226,8 @@ read_stabs_symtab (struct objfile *objfile, symfile_add_flags symfile_flags)
sym_bfd = objfile->obfd.get ();
+ stabs_deprecated_warning ();
+
/* .o and .nlm files are relocatables with text, data and bss segs based at
0. This flag disables special (Solaris stabs-in-elf only) fixups for
symbols with a value of 0. */
@@ -3509,7 +3511,7 @@ define_symbol (CORE_ADDR valu, const char *string, int desc, int type,
sym->set_aclass_index (LOC_STATIC);
sym->set_domain (VAR_DOMAIN);
/* Don't add symbol references to global_sym_chain.
- Symbol references don't have valid names and wont't match up with
+ Symbol references don't have valid names and won't match up with
minimal symbols when the global_sym_chain is relocated.
We'll fixup symbol references when we fixup the defining symbol. */
if (sym->linkage_name () && sym->linkage_name ()[0] != '#')
@@ -4905,7 +4907,7 @@ read_member_functions (struct stab_field_info *fip, const char **pp,
int nbits;
/* virtual member function, followed by index.
The sign bit is set to distinguish pointers-to-methods
- from virtual function indicies. Since the array is
+ from virtual function indices. Since the array is
in words, the quantity must be shifted left by 1
on 16 bit machine, and by 2 on 32 bit machine, forcing
the sign bit out, and usable as a valid index into
diff --git a/gdb/stabsread.h b/gdb/stabsread.h
index a88b593..15f7326 100644
--- a/gdb/stabsread.h
+++ b/gdb/stabsread.h
@@ -1,5 +1,5 @@
/* Include file for stabs debugging format support functions.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -131,7 +131,7 @@ struct header_file
/* The actual length of HEADER_FILES. */
#define N_HEADER_FILES(OBJFILE) (DBX_SYMFILE_INFO (OBJFILE)->n_header_files)
-/* The allocated lengh of HEADER_FILES. */
+/* The allocated length of HEADER_FILES. */
#define N_ALLOCATED_HEADER_FILES(OBJFILE) \
(DBX_SYMFILE_INFO (OBJFILE)->n_allocated_header_files)
@@ -305,4 +305,10 @@ struct symloc
int file_string_offset;
enum language pst_language;
};
+
+static inline void
+stabs_deprecated_warning ()
+{
+ warning (_("Stabs support is deprecated and will be removed soon."));
+}
#endif /* GDB_STABSREAD_H */
diff --git a/gdb/stack.c b/gdb/stack.c
index 4a92449..6542840 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -1,6 +1,6 @@
/* Print and select stack frames for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -827,7 +827,7 @@ print_frame_args (const frame_print_options &fp_opts,
(1) Because find_saved_registers may be slow for
remote debugging.
- (2) Because registers are often re-used and stack
+ (2) Because registers are often reused and stack
slots rarely (never?) are. Therefore using
the stack slot is much less likely to print
garbage.
@@ -2863,9 +2863,11 @@ find_frame_for_function (const char *function_name)
do
{
+ CORE_ADDR frame_pc = get_frame_address_in_block (frame);
+
for (size_t i = 0; (i < sals.size () && !found); i++)
- found = (get_frame_pc (frame) >= func_bounds[i].low
- && get_frame_pc (frame) < func_bounds[i].high);
+ found = (frame_pc >= func_bounds[i].low
+ && frame_pc < func_bounds[i].high);
if (!found)
{
level = 1;
diff --git a/gdb/stack.h b/gdb/stack.h
index e87ba32..6b2efb8 100644
--- a/gdb/stack.h
+++ b/gdb/stack.h
@@ -1,6 +1,6 @@
/* Stack manipulation commands, for GDB the GNU Debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/stap-probe.c b/gdb/stap-probe.c
index 38ea199..8cc7599 100644
--- a/gdb/stap-probe.c
+++ b/gdb/stap-probe.c
@@ -1,6 +1,6 @@
/* SystemTap probe support for GDB.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -37,7 +37,7 @@
#include "language.h"
#include "elf-bfd.h"
#include "expop.h"
-#include <unordered_map>
+#include "gdbsupport/unordered_map.h"
#include <ctype.h>
@@ -434,7 +434,7 @@ typedef expr::operation_up binop_maker_ftype (expr::operation_up &&,
expr::operation_up &&);
/* Map from an expression opcode to a function that can create a
binary operation of that type. */
-static std::unordered_map<exp_opcode, binop_maker_ftype *> stap_maker_map;
+static gdb::unordered_map<exp_opcode, binop_maker_ftype *> stap_maker_map;
/* Helper function to create a binary operation. */
static expr::operation_up
@@ -1225,7 +1225,7 @@ stap_parse_argument (const char **arg, struct type *atype,
{
/* We need to initialize the expression buffer, in order to begin
our parsing efforts. We use language_c here because we may need
- to do pointer arithmetics. */
+ to do pointer arithmetic. */
struct stap_parse_info p (*arg, atype, language_def (language_c),
gdbarch);
diff --git a/gdb/stap-probe.h b/gdb/stap-probe.h
index e757d80..2819a5b 100644
--- a/gdb/stap-probe.h
+++ b/gdb/stap-probe.h
@@ -1,6 +1,6 @@
/* SystemTap probe support for GDB.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/std-operator.def b/gdb/std-operator.def
index 296d9fa..d12421e 100644
--- a/gdb/std-operator.def
+++ b/gdb/std-operator.def
@@ -1,6 +1,6 @@
/* Standard language operator definitions for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/std-regs.c b/gdb/std-regs.c
index 3539d8a..2a3f93d 100644
--- a/gdb/std-regs.c
+++ b/gdb/std-regs.c
@@ -1,6 +1,6 @@
/* Builtin frame register, for GDB, the GNU debugger.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
diff --git a/gdb/stub-termcap.c b/gdb/stub-termcap.c
index ff0ef99..f7b7005 100644
--- a/gdb/stub-termcap.c
+++ b/gdb/stub-termcap.c
@@ -1,6 +1,6 @@
/* A very minimal do-nothing termcap emulation stub.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by CodeSourcery, LLC.
diff --git a/gdb/stubs/buildvms.com b/gdb/stubs/buildvms.com
index eecdf72..d36d5d3 100644
--- a/gdb/stubs/buildvms.com
+++ b/gdb/stubs/buildvms.com
@@ -1,6 +1,6 @@
$! Command to build the gdb stub
-$! Copyright (C) 2012-2024 Free Software Foundation, Inc.
+$! Copyright (C) 2012-2025 Free Software Foundation, Inc.
$!
$! This file is part of GDB.
$!
diff --git a/gdb/stubs/ia64vms-stub.c b/gdb/stubs/ia64vms-stub.c
index 7e08119..549e7f5 100644
--- a/gdb/stubs/ia64vms-stub.c
+++ b/gdb/stubs/ia64vms-stub.c
@@ -1,5 +1,5 @@
/* GDB stub for Itanium OpenVMS
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by Tristan Gingold, AdaCore.
diff --git a/gdb/stubs/z80-stub.c b/gdb/stubs/z80-stub.c
index 745688c..37007c2 100644
--- a/gdb/stubs/z80-stub.c
+++ b/gdb/stubs/z80-stub.c
@@ -1,6 +1,6 @@
/* Debug stub for Z80.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/svr4-tls-tdep.c b/gdb/svr4-tls-tdep.c
new file mode 100644
index 0000000..56e1470
--- /dev/null
+++ b/gdb/svr4-tls-tdep.c
@@ -0,0 +1,256 @@
+/* Target-dependent code for GNU/Linux, architecture independent.
+
+ Copyright (C) 2009-2024 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include "svr4-tls-tdep.h"
+#include "solib-svr4.h"
+#include "inferior.h"
+#include "objfiles.h"
+#include "cli/cli-cmds.h"
+#include <optional>
+
+struct svr4_tls_gdbarch_data
+{
+ /* Method for looking up TLS DTV. */
+ get_tls_dtv_addr_ftype *get_tls_dtv_addr = nullptr;
+
+ /* Method for looking up the TLS DTP offset. */
+ get_tls_dtp_offset_ftype *get_tls_dtp_offset = nullptr;
+
+ /* Cached libc value for TLS lookup purposes. */
+ enum svr4_tls_libc libc = svr4_tls_libc_unknown;
+};
+
+static const registry<gdbarch>::key<svr4_tls_gdbarch_data>
+ svr4_tls_gdbarch_data_handle;
+
+static struct svr4_tls_gdbarch_data *
+get_svr4_tls_gdbarch_data (struct gdbarch *gdbarch)
+{
+ struct svr4_tls_gdbarch_data *result = svr4_tls_gdbarch_data_handle.get (gdbarch);
+ if (result == nullptr)
+ result = svr4_tls_gdbarch_data_handle.emplace (gdbarch);
+ return result;
+}
+
+/* When true, force internal TLS address lookup instead of lookup via
+ the thread stratum. */
+
+static bool force_internal_tls_address_lookup = false;
+
+/* For TLS lookup purposes, use heuristics to decide whether program
+ was linked against MUSL or GLIBC. */
+
+static enum svr4_tls_libc
+libc_tls_sniffer (struct gdbarch *gdbarch)
+{
+ /* Check for cached libc value. */
+ svr4_tls_gdbarch_data *gdbarch_data = get_svr4_tls_gdbarch_data (gdbarch);
+ if (gdbarch_data->libc != svr4_tls_libc_unknown)
+ return gdbarch_data->libc;
+
+ svr4_tls_libc libc = svr4_tls_libc_unknown;
+
+ /* Fetch the program interpreter. */
+ std::optional<gdb::byte_vector> interp_name_holder
+ = svr4_find_program_interpreter ();
+ if (interp_name_holder)
+ {
+ /* A dynamically linked program linked against MUSL will have a
+ "ld-musl-" in its interpreter name. (Two examples of MUSL
+ interpreter names are "/lib/ld-musl-x86_64.so.1" and
+ "lib/ld-musl-aarch64.so.1".) If it's not found, assume GLIBC. */
+ const char *interp_name = (const char *) interp_name_holder->data ();
+ if (strstr (interp_name, "/ld-musl-") != nullptr)
+ libc = svr4_tls_libc_musl;
+ else
+ libc = svr4_tls_libc_glibc;
+ gdbarch_data->libc = libc;
+ return libc;
+ }
+
+ /* If there is no interpreter name, it's statically linked. For
+ programs with TLS data, a program statically linked against MUSL
+ will have the symbols 'main_tls' and 'builtin_tls'. If both of
+ these are present, assume that it was statically linked against
+ MUSL, otherwise assume GLIBC. */
+ if (lookup_minimal_symbol (current_program_space, "main_tls").minsym
+ != nullptr
+ && lookup_minimal_symbol (current_program_space, "builtin_tls").minsym
+ != nullptr)
+ libc = svr4_tls_libc_musl;
+ else
+ libc = svr4_tls_libc_glibc;
+ gdbarch_data->libc = libc;
+ return libc;
+}
+
+/* Implement gdbarch method, get_thread_local_address, for architectures
+ which provide a method for determining the DTV and possibly the DTP
+ offset. */
+
+CORE_ADDR
+svr4_tls_get_thread_local_address (struct gdbarch *gdbarch, ptid_t ptid,
+ CORE_ADDR lm_addr, CORE_ADDR offset)
+{
+ svr4_tls_gdbarch_data *gdbarch_data = get_svr4_tls_gdbarch_data (gdbarch);
+
+ /* Use the target's get_thread_local_address method when:
+
+ - No method has been provided for finding the TLS DTV.
+
+ or
+
+ - The thread stratum has been pushed (at some point) onto the
+ target stack, except when 'force_internal_tls_address_lookup'
+ has been set.
+
+ The idea here is to prefer use of of the target's thread_stratum
+ method since it should be more accurate. */
+ if (gdbarch_data->get_tls_dtv_addr == nullptr
+ || (find_target_at (thread_stratum) != nullptr
+ && !force_internal_tls_address_lookup))
+ {
+ struct target_ops *target = current_inferior ()->top_target ();
+ return target->get_thread_local_address (ptid, lm_addr, offset);
+ }
+ else
+ {
+ /* Details, found below, regarding TLS layout is for the GNU C
+ library (glibc) and the MUSL C library (musl), circa 2024.
+ While some of this layout is defined by the TLS ABI, some of
+ it, such as how/where to find the DTV pointer in the TCB, is
+ not. A good source of ABI info for some architectures can be
+ found in "ELF Handling For Thread-Local Storage" by Ulrich
+ Drepper. That document is worth consulting even for
+ architectures not described there, since the general approach
+ and terminology is used regardless.
+
+ Some architectures, such as aarch64, are not described in
+ that document, so some details had to ferreted out using the
+ glibc source code. Likewise, the MUSL source code was
+ consulted for details which differ from GLIBC. */
+ enum svr4_tls_libc libc = libc_tls_sniffer (gdbarch);
+ int mod_id;
+ if (libc == svr4_tls_libc_glibc)
+ mod_id = glibc_link_map_to_tls_module_id (lm_addr);
+ else /* Assume MUSL. */
+ mod_id = musl_link_map_to_tls_module_id (lm_addr);
+ if (mod_id == 0)
+ throw_error (TLS_GENERIC_ERROR, _("Unable to determine TLS module id"));
+
+ /* Use the architecture specific DTV fetcher to obtain the DTV. */
+ CORE_ADDR dtv_addr = gdbarch_data->get_tls_dtv_addr (gdbarch, ptid, libc);
+
+ /* In GLIBC, The DTV (dynamic thread vector) is an array of
+ structs consisting of two fields, the first of which is a
+ pointer to the TLS block of interest. (The second field is a
+ pointer that assists with memory management, but that's not
+ of interest here.) Also, the 0th entry is the generation
+ number, but although it's a single scalar, the 0th entry is
+ padded to be the same size as all the rest. Thus each
+ element of the DTV array is two pointers in size.
+
+ In MUSL, the DTV is simply an array of pointers. The 0th
+ entry is still the generation number, but contains no padding
+ aside from that which is needed to make it pointer sized. */
+ int m; /* Multiplier, for size of DTV entry. */
+ switch (libc)
+ {
+ case svr4_tls_libc_glibc:
+ m = 2;
+ break;
+ default:
+ m = 1;
+ break;
+ }
+
+ /* Obtain TLS block address. Module ids start at 1, so there's
+ no need to adjust it to skip over the 0th entry of the DTV,
+ which is the generation number. */
+ CORE_ADDR dtv_elem_addr
+ = dtv_addr + mod_id * m * (gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT);
+ gdb::byte_vector buf (gdbarch_ptr_bit (gdbarch) / TARGET_CHAR_BIT);
+ if (target_read_memory (dtv_elem_addr, buf.data (), buf.size ()) != 0)
+ throw_error (TLS_GENERIC_ERROR, _("Unable to fetch TLS block address"));
+ const struct builtin_type *builtin = builtin_type (gdbarch);
+ CORE_ADDR tls_block_addr = gdbarch_pointer_to_address
+ (gdbarch, builtin->builtin_data_ptr,
+ buf.data ());
+
+ /* When the TLS block addr is 0 or -1, this usually indicates that
+ the TLS storage hasn't been allocated yet. (In GLIBC, some
+ architectures use 0 while others use -1.) */
+ if (tls_block_addr == 0 || tls_block_addr == (CORE_ADDR) -1)
+ throw_error (TLS_NOT_ALLOCATED_YET_ERROR, _("TLS not allocated yet"));
+
+ /* MUSL (and perhaps other C libraries, though not GLIBC) have
+ TLS implementations for some architectures which, for some
+ reason, have DTV entries which must be negatively offset by
+ DTP_OFFSET in order to obtain the TLS block address.
+ DTP_OFFSET is a constant in the MUSL sources - these offsets,
+ when they're non-zero, seem to be either 0x800 or 0x8000,
+ and are present for riscv[32/64], powerpc[32/64], m68k, and
+ mips.
+
+ Use the architecture specific get_tls_dtp_offset method, if
+ present, to obtain this offset. */
+ ULONGEST dtp_offset
+ = gdbarch_data->get_tls_dtp_offset == nullptr
+ ? 0
+ : gdbarch_data->get_tls_dtp_offset (gdbarch, ptid, libc);
+
+ return tls_block_addr - dtp_offset + offset;
+ }
+}
+
+/* See svr4-tls-tdep.h. */
+
+void
+svr4_tls_register_tls_methods (struct gdbarch_info info, struct gdbarch *gdbarch,
+ get_tls_dtv_addr_ftype *get_tls_dtv_addr,
+ get_tls_dtp_offset_ftype *get_tls_dtp_offset)
+{
+ gdb_assert (get_tls_dtv_addr != nullptr);
+
+ svr4_tls_gdbarch_data *gdbarch_data = get_svr4_tls_gdbarch_data (gdbarch);
+ gdbarch_data->get_tls_dtv_addr = get_tls_dtv_addr;
+ gdbarch_data->get_tls_dtp_offset = get_tls_dtp_offset;
+}
+
+void _initialize_svr4_tls_tdep ();
+void
+_initialize_svr4_tls_tdep ()
+{
+ add_setshow_boolean_cmd ("force-internal-tls-address-lookup", class_obscure,
+ &force_internal_tls_address_lookup, _("\
+Set to force internal TLS address lookup."), _("\
+Show whether GDB is forced to use internal TLS address lookup."), _("\
+When resolving addresses for TLS (Thread Local Storage) variables,\n\
+GDB will attempt to use facilities provided by the thread library (i.e.\n\
+libthread_db). If those facilities aren't available, GDB will fall\n\
+back to using some internal (to GDB), but possibly less accurate\n\
+mechanisms to resolve the addresses for TLS variables. When this flag\n\
+is set, GDB will force use of the fall-back TLS resolution mechanisms.\n\
+This flag is used by some GDB tests to ensure that the internal fallback\n\
+code is exercised and working as expected. The default is to not force\n\
+the internal fall-back mechanisms to be used."),
+ NULL, NULL,
+ &maintenance_set_cmdlist,
+ &maintenance_show_cmdlist);
+}
diff --git a/gdb/svr4-tls-tdep.h b/gdb/svr4-tls-tdep.h
new file mode 100644
index 0000000..73efc02
--- /dev/null
+++ b/gdb/svr4-tls-tdep.h
@@ -0,0 +1,59 @@
+/* Target-dependent code for GNU/Linux, architecture independent.
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#ifndef GDB_SVR4_TLS_TDEP_H
+#define GDB_SVR4_TLS_TDEP_H
+
+/* C library variants for TLS lookup. */
+
+enum svr4_tls_libc
+{
+ svr4_tls_libc_unknown,
+ svr4_tls_libc_musl,
+ svr4_tls_libc_glibc
+};
+
+/* Function type for "get_tls_dtv_addr" method. */
+
+typedef CORE_ADDR (get_tls_dtv_addr_ftype) (struct gdbarch *gdbarch,
+ ptid_t ptid,
+ enum svr4_tls_libc libc);
+
+/* Function type for "get_tls_dtp_offset" method. */
+
+typedef CORE_ADDR (get_tls_dtp_offset_ftype) (struct gdbarch *gdbarch,
+ ptid_t ptid,
+ enum svr4_tls_libc libc);
+
+/* Register architecture specific methods for fetching the TLS DTV
+ and TLS DTP, used by linux_get_thread_local_address. */
+
+extern void svr4_tls_register_tls_methods
+ (struct gdbarch_info info, struct gdbarch *gdbarch,
+ get_tls_dtv_addr_ftype *get_tls_dtv_addr,
+ get_tls_dtp_offset_ftype *get_tls_dtp_offset = nullptr);
+
+/* Used as a gdbarch method for get_thread_local_address when the tdep
+ file also defines a suitable method for obtaining the TLS DTV.
+ See linux_init_abi(), above. */
+CORE_ADDR
+svr4_tls_get_thread_local_address (struct gdbarch *gdbarch, ptid_t ptid,
+ CORE_ADDR lm_addr, CORE_ADDR offset);
+
+#endif /* GDB_SVR4_TLS_TDEP_H */
diff --git a/gdb/sym-domains.def b/gdb/sym-domains.def
index dd5b1b6..4a7f713 100644
--- a/gdb/sym-domains.def
+++ b/gdb/sym-domains.def
@@ -1,6 +1,6 @@
/* Symbol domains -*- c++ -*-
- Copyright (C) 2023 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/symfile-add-flags.h b/gdb/symfile-add-flags.h
index 3db532c..bc074e6 100644
--- a/gdb/symfile-add-flags.h
+++ b/gdb/symfile-add-flags.h
@@ -1,6 +1,6 @@
/* Definition of symfile add flags.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/symfile-debug.c b/gdb/symfile-debug.c
index b21a5a4..9c5ce85 100644
--- a/gdb/symfile-debug.c
+++ b/gdb/symfile-debug.c
@@ -1,6 +1,6 @@
/* Debug logging for the symbol file functions for the GNU debugger, GDB.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support, using pieces from other GDB modules.
@@ -33,7 +33,6 @@
#include "symfile.h"
#include "block.h"
#include "filenames.h"
-#include "cli/cli-style.h"
#include "build-id.h"
#include "debuginfod-support.h"
@@ -371,13 +370,13 @@ objfile::expand_symtabs_with_fullname (const char *fullname)
bool
objfile::expand_symtabs_matching
- (gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
+ (expand_symtabs_file_matcher file_matcher,
const lookup_name_info *lookup_name,
- gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
- gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
+ expand_symtabs_symbol_matcher symbol_matcher,
+ expand_symtabs_expansion_listener expansion_notify,
block_search_flags search_flags,
domain_search_flags domain,
- gdb::function_view<expand_symtabs_lang_matcher_ftype> lang_matcher)
+ expand_symtabs_lang_matcher lang_matcher)
{
/* This invariant is documented in quick-functions.h. */
gdb_assert (lookup_name != nullptr || symbol_matcher == nullptr);
@@ -436,8 +435,7 @@ objfile::find_pc_sect_compunit_symtab (bound_minimal_symbol msymbol,
}
void
-objfile::map_symbol_filenames (gdb::function_view<symbol_filename_ftype> fun,
- bool need_fullname)
+objfile::map_symbol_filenames (symbol_filename_listener fun, bool need_fullname)
{
if (debug_symfile)
gdb_printf (gdb_stdlog,
@@ -791,24 +789,6 @@ debug_sym_relocate (struct objfile *objfile, asection *sectp, bfd_byte *buf)
return retval;
}
-/* Template of debugging version of struct sym_fns.
- A copy is made, with sym_flavour updated, and a pointer to the real table
- installed in real_sf, and then a pointer to the copy is installed in the
- objfile. */
-
-static const struct sym_fns debug_sym_fns =
-{
- debug_sym_new_init,
- debug_sym_init,
- debug_sym_read,
- debug_sym_finish,
- debug_sym_offsets,
- debug_sym_segments,
- debug_sym_read_linetable,
- debug_sym_relocate,
- &debug_sym_probe_fns,
-};
-
/* Install the debugging versions of the symfile functions for OBJFILE.
Do not call this if the debug versions are already installed. */
diff --git a/gdb/symfile-mem.c b/gdb/symfile-mem.c
index 42569f4..92672d7 100644
--- a/gdb/symfile-mem.c
+++ b/gdb/symfile-mem.c
@@ -1,6 +1,6 @@
/* Reading symbol files from memory.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/symfile.c b/gdb/symfile.c
index 4d5f3d2..680c9a5 100644
--- a/gdb/symfile.c
+++ b/gdb/symfile.c
@@ -1,6 +1,6 @@
/* Generic symbol file reading for the GNU debugger, GDB.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support, using pieces from other GDB modules.
@@ -1101,7 +1101,7 @@ symbol_file_add_with_addrs (const gdb_bfd_ref_ptr &abfd, const char *name,
no separate debug file. If there is a separate debug file which
does not have symbols, we'll have emitted this message for that
file, and so printing it twice is just redundant. */
- if (should_print && !objfile_has_symbols (objfile)
+ if (should_print && !objfile->has_symbols ()
&& objfile->separate_debug_objfile == nullptr)
gdb_printf (_("(No debugging symbols found in %ps)\n"),
styled_string (file_name_style.style (), name));
@@ -2323,7 +2323,7 @@ add_symbol_file_command (const char *args, int from_tty)
objf = symbol_file_add (filename.get (), add_flags, &section_addrs,
flags);
- if (!objfile_has_symbols (objf) && objf->per_bfd->minimal_symbol_count <= 0)
+ if (!objf->has_symbols () && objf->per_bfd->minimal_symbol_count <= 0)
warning (_("newly-added symbol file \"%ps\" does not provide any symbols"),
styled_string (file_name_style.style (), filename.get ()));
@@ -2662,7 +2662,7 @@ reread_symbols (int from_tty)
objfile->expand_all_symtabs ();
}
- if (!objfile_has_symbols (objfile))
+ if (!objfile->has_symbols ())
{
gdb_stdout->wrap_here (0);
gdb_printf (_("(no debugging symbols found)\n"));
@@ -3035,7 +3035,7 @@ section_is_mapped (struct obj_section *osect)
case ovly_off:
return 0; /* overlay debugging off */
case ovly_auto: /* overlay debugging automatic */
- /* Unles there is a gdbarch_overlay_update function,
+ /* Unless there is a gdbarch_overlay_update function,
there's really nothing useful to do here (can't really go auto). */
gdbarch = osect->objfile->arch ();
if (gdbarch_overlay_update_p (gdbarch))
@@ -3761,14 +3761,13 @@ symfile_free_objfile (struct objfile *objfile)
See quick_symbol_functions.expand_symtabs_matching for details. */
bool
-expand_symtabs_matching
- (gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
- const lookup_name_info &lookup_name,
- gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
- gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
- block_search_flags search_flags,
- domain_search_flags domain,
- gdb::function_view<expand_symtabs_lang_matcher_ftype> lang_matcher)
+expand_symtabs_matching (expand_symtabs_file_matcher file_matcher,
+ const lookup_name_info &lookup_name,
+ expand_symtabs_symbol_matcher symbol_matcher,
+ expand_symtabs_expansion_listener expansion_notify,
+ block_search_flags search_flags,
+ domain_search_flags domain,
+ expand_symtabs_lang_matcher lang_matcher)
{
for (objfile *objfile : current_program_space->objfiles ())
if (!objfile->expand_symtabs_matching (file_matcher,
@@ -3787,8 +3786,7 @@ expand_symtabs_matching
See quick_symbol_functions.map_symbol_filenames for details. */
void
-map_symbol_filenames (gdb::function_view<symbol_filename_ftype> fun,
- bool need_fullname)
+map_symbol_filenames (symbol_filename_listener fun, bool need_fullname)
{
for (objfile *objfile : current_program_space->objfiles ())
objfile->map_symbol_filenames (fun, need_fullname);
diff --git a/gdb/symfile.h b/gdb/symfile.h
index 9a207c5..ee9bc11 100644
--- a/gdb/symfile.h
+++ b/gdb/symfile.h
@@ -1,6 +1,6 @@
/* Definitions for reading symbol files into GDB.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -26,7 +26,6 @@
#include "symfile-add-flags.h"
#include "objfile-flags.h"
#include "gdb_bfd.h"
-#include "gdbsupport/function-view.h"
#include "target-section.h"
#include "quick-symbol.h"
@@ -347,17 +346,15 @@ symfile_segment_data_up get_symfile_segment_data (bfd *abfd);
extern scoped_restore_tmpl<int> increment_reading_symtab (void);
bool expand_symtabs_matching
- (gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher,
+ (expand_symtabs_file_matcher file_matcher,
const lookup_name_info &lookup_name,
- gdb::function_view<expand_symtabs_symbol_matcher_ftype> symbol_matcher,
- gdb::function_view<expand_symtabs_exp_notify_ftype> expansion_notify,
+ expand_symtabs_symbol_matcher symbol_matcher,
+ expand_symtabs_expansion_listener expansion_notify,
block_search_flags search_flags,
domain_search_flags kind,
- gdb::function_view<expand_symtabs_lang_matcher_ftype> lang_matcher
- = nullptr);
+ expand_symtabs_lang_matcher lang_matcher = nullptr);
-void map_symbol_filenames (gdb::function_view<symbol_filename_ftype> fun,
- bool need_fullname);
+void map_symbol_filenames (symbol_filename_listener fun, bool need_fullname);
/* Target-agnostic function to load the sections of an executable into memory.
diff --git a/gdb/symmisc.c b/gdb/symmisc.c
index 3f06cb1..8a95958 100644
--- a/gdb/symmisc.c
+++ b/gdb/symmisc.c
@@ -1,6 +1,6 @@
/* Do various things to symbol tables (other than lookup), for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/symtab.c b/gdb/symtab.c
index c8bcab7..b2de990 100644
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -1,6 +1,6 @@
/* Symbol table lookup for the GNU debugger, GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -60,7 +60,6 @@
#include "cp-abi.h"
#include "cp-support.h"
#include "observable.h"
-#include "solist.h"
#include "macrotab.h"
#include "macroscope.h"
@@ -75,7 +74,7 @@
#include "gdbsupport/pathstuff.h"
#include "gdbsupport/common-utils.h"
#include <optional>
-#include <unordered_set>
+#include "gdbsupport/unordered_set.h"
/* Forward declarations for local functions. */
@@ -1911,7 +1910,7 @@ lookup_name_info::match_any ()
{
/* Lookup any symbol that "" would complete. I.e., this matches all
symbol names. */
- static const lookup_name_info lookup_name ("", symbol_name_match_type::FULL,
+ static const lookup_name_info lookup_name ("", symbol_name_match_type::WILD,
true);
return lookup_name;
@@ -2163,13 +2162,6 @@ lookup_symbol_aux (const char *name, symbol_name_match_type match_type,
domain_name (domain).c_str (), language_str (language));
}
- /* Make sure we do something sensible with is_a_field_of_this, since
- the callers that set this parameter to some non-null value will
- certainly use it later. If we don't set it, the contents of
- is_a_field_of_this are undefined. */
- if (is_a_field_of_this != NULL)
- memset (is_a_field_of_this, 0, sizeof (*is_a_field_of_this));
-
langdef = language_def (language);
/* Search specified block and its superiors. Don't search
@@ -4499,7 +4491,7 @@ info_sources_filter::matches (const char *fullname) const
switch (m_match_type)
{
case match_on::DIRNAME:
- dirname = ldirname (fullname);
+ dirname = gdb_ldirname (fullname);
to_match = dirname.c_str ();
break;
case match_on::BASENAME:
@@ -4714,7 +4706,7 @@ info_sources_worker (struct ui_out *uiout,
if (uiout->is_mi_like_p ())
{
const char *debug_info_state;
- if (objfile_has_symbols (objfile))
+ if (objfile->has_symbols ())
{
if (debug_fully_readin)
debug_info_state = "fully-read";
@@ -4730,7 +4722,7 @@ info_sources_worker (struct ui_out *uiout,
if (!debug_fully_readin)
uiout->text ("(Full debug information has not yet been read "
"for this file.)\n");
- if (!objfile_has_symbols (objfile))
+ if (!objfile->has_symbols ())
uiout->text ("(Objfile has no debug information.)\n");
uiout->text ("\n");
}
@@ -4910,7 +4902,7 @@ global_symbol_searcher::expand_symtabs
{
return file_matches (filename, m_filenames, basenames);
};
- gdb::function_view<expand_symtabs_file_matcher_ftype> file_matcher = nullptr;
+ expand_symtabs_file_matcher file_matcher = nullptr;
if (!m_filenames.empty ())
file_matcher = do_file_match;
@@ -5623,7 +5615,7 @@ rbreak_command (const char *regexp, int from_tty)
spec.add_filename (std::move (file_name));
std::vector<symbol_search> symbols = spec.search ();
- std::unordered_set<std::string> seen_names;
+ gdb::unordered_set<std::string> seen_names;
scoped_rbreak_breakpoints finalize;
int err_count = 0;
@@ -6206,8 +6198,6 @@ default_collect_symbol_completion_matches_break_on
if (current_language->macro_expansion () == macro_expansion_c
&& code == TYPE_CODE_UNDEF)
{
- gdb::unique_xmalloc_ptr<struct macro_scope> scope;
-
/* This adds a macro's name to the current completion list. */
auto add_macro_name = [&] (const char *macro_name,
const macro_definition *,
@@ -6225,10 +6215,9 @@ default_collect_symbol_completion_matches_break_on
resulting expression will be evaluated at "file:line" -- but
at there does not seem to be a way to detect this at
completion time. */
- scope = default_macro_scope ();
- if (scope)
- macro_for_each_in_scope (scope->file, scope->line,
- add_macro_name);
+ macro_scope scope = default_macro_scope ();
+ if (scope.is_valid ())
+ macro_for_each_in_scope (scope.file, scope.line, add_macro_name);
/* User-defined macros are always visible. */
macro_for_each (macro_user_macros, add_macro_name);
@@ -6550,7 +6539,7 @@ find_main_name (void)
language. It is easy to guaranty this with Ada, since we use a
special symbol generated only when the main in Ada to find the name
of the main procedure. It is difficult however to see how this can
- be guarantied for languages such as C, for instance. This suggests
+ be guaranteed for languages such as C, for instance. This suggests
that order of call for these methods becomes important, which means
a more complicated approach. */
new_main_name = ada_main_name ();
@@ -6636,31 +6625,6 @@ main_language (void)
return info->language_of_main;
}
-/* Return 1 if the supplied producer string matches the ARM RealView
- compiler (armcc). */
-
-bool
-producer_is_realview (const char *producer)
-{
- static const char *const arm_idents[] = {
- "ARM C Compiler, ADS",
- "Thumb C Compiler, ADS",
- "ARM C++ Compiler, ADS",
- "Thumb C++ Compiler, ADS",
- "ARM/Thumb C/C++ Compiler, RVCT",
- "ARM C/C++ Compiler, RVCT"
- };
-
- if (producer == NULL)
- return false;
-
- for (const char *ident : arm_idents)
- if (startswith (producer, ident))
- return true;
-
- return false;
-}
-
/* The next index to hand out in response to a registration request. */
diff --git a/gdb/symtab.h b/gdb/symtab.h
index cd9220c..0a57be5 100644
--- a/gdb/symtab.h
+++ b/gdb/symtab.h
@@ -1,6 +1,6 @@
/* Symbol table definitions for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -2101,17 +2101,17 @@ struct field_of_this_result
symbol was not found in 'this'. If non-NULL, then one of the
other fields will be non-NULL as well. */
- struct type *type;
+ struct type *type = nullptr;
/* If the symbol was found as an ordinary field of 'this', then this
is non-NULL and points to the particular field. */
- struct field *field;
+ struct field *field = nullptr;
/* If the symbol was found as a function field of 'this', then this
is non-NULL and points to the particular field. */
- struct fn_fieldlist *fn_field;
+ struct fn_fieldlist *fn_field = nullptr;
};
/* Find the definition for a specified symbol name NAME
@@ -2750,10 +2750,6 @@ extern struct block_symbol
const char *name,
const domain_search_flags domain);
-/* Return 1 if the supplied producer string matches the ARM RealView
- compiler (armcc). */
-bool producer_is_realview (const char *producer);
-
extern unsigned int symtab_create_debug;
/* Print a "symtab-create" debug statement. */
diff --git a/gdb/syscalls/Makefile b/gdb/syscalls/Makefile
index 0c31f07..3656fcd 100644
--- a/gdb/syscalls/Makefile
+++ b/gdb/syscalls/Makefile
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This file is part of GDB.
diff --git a/gdb/syscalls/apply-defaults.xsl b/gdb/syscalls/apply-defaults.xsl
index fef45a8..23f89d7 100644
--- a/gdb/syscalls/apply-defaults.xsl
+++ b/gdb/syscalls/apply-defaults.xsl
@@ -1,5 +1,5 @@
<!-- Generate syscall XML files based on defaults template.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/syscalls/freebsd.xml b/gdb/syscalls/freebsd.xml
index d2758c8..5fbe36d 100644
--- a/gdb/syscalls/freebsd.xml
+++ b/gdb/syscalls/freebsd.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?> <!-- THIS FILE IS GENERATED -*- buffer-read-only: t -*- -->
<!-- vi:set ro: -->
-<!-- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/syscalls/gdb-syscalls.dtd b/gdb/syscalls/gdb-syscalls.dtd
index 0bb93ed..daceb0f 100644
--- a/gdb/syscalls/gdb-syscalls.dtd
+++ b/gdb/syscalls/gdb-syscalls.dtd
@@ -1,4 +1,4 @@
-<!-- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2009-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/syscalls/netbsd.xml b/gdb/syscalls/netbsd.xml
index e1e25d8..f0e3815 100644
--- a/gdb/syscalls/netbsd.xml
+++ b/gdb/syscalls/netbsd.xml
@@ -1,6 +1,6 @@
<?xml version="1.0"?> <!-- THIS FILE IS GENERATED -*- buffer-read-only: t -*- -->
<!-- vi:set ro: -->
-<!-- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2020-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/syscalls/riscv-canonicalize-syscall-gen.py b/gdb/syscalls/riscv-canonicalize-syscall-gen.py
new file mode 100755
index 0000000..40039bb
--- /dev/null
+++ b/gdb/syscalls/riscv-canonicalize-syscall-gen.py
@@ -0,0 +1,171 @@
+#!/usr/bin/env python3
+# pylint: disable=invalid-name
+
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
+# Contributed by Timur Golubovich
+
+# This file is part of GDB.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# 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, see <http://www.gnu.org/licenses/>.
+
+
+# To get help message for this script, run:
+# ./gdb/syscalls/riscv-canonicalize-syscall-gen.py --help
+
+# Execution result:
+
+# usage: riscv-canonicalize-syscall-gen.py [-h] -i INPUT
+#
+# Generate file gdb/riscv-canonicalize-syscall-gen.c from path to riscv linux syscalls.
+#
+# options:
+# -h, --help show this help message and exit
+# -i INPUT, --input INPUT
+# path to riscv linux syscalls (glibc/sysdeps/unix/sysv/linux/riscv/rv64/arch-syscall.h)
+
+import argparse
+import re
+import sys
+from pathlib import Path as _Path
+
+head = """\
+/* DO NOT EDIT: Autogenerated by riscv-canonicalize-syscall-gen.py
+
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include "defs.h"
+#include "riscv-linux-tdep.h"
+
+/* riscv64_canonicalize_syscall maps from the native riscv 64 Linux set
+ of syscall ids into a canonical set of syscall ids used by
+ process record. */
+
+enum gdb_syscall
+riscv64_canonicalize_syscall (int syscall)
+{
+ switch (syscall)
+ {
+"""
+
+tail = """\
+ default:
+ return gdb_sys_no_syscall;
+ }
+}
+"""
+
+
+class Generator:
+ def _get_gdb_syscalls(self, gdb_syscalls_path: _Path) -> list[str]:
+ gdb_syscalls: list[str] = []
+ with open(gdb_syscalls_path, "r", encoding="UTF-8") as file:
+ lines = file.readlines()
+ for line in lines:
+ match = re.search(r"\s*(?P<name>gdb_sys_[^S]+)\S*=", line)
+ if match:
+ gdb_syscalls.append(match.group("name").strip())
+ return gdb_syscalls
+
+ def _get_canon_syscalls_lines(
+ self, syscalls_path: _Path, gdb_syscalls: list[str]
+ ) -> list[str]:
+ canon_syscalls: dict[int, str] = {}
+ with open(syscalls_path, "r", encoding="UTF-8") as file:
+ lines = file.readlines()
+ for line in lines:
+ match = re.match(
+ r"#define\s+__NR_(?P<name>[^\s]+)\s+(?P<number>\d+)", line
+ )
+ if match:
+ syscall_name = match.group("name")
+ syscall_num = int(match.group("number"))
+ gdb_syscall_name = f"gdb_sys_{syscall_name}"
+ if gdb_syscall_name in gdb_syscalls:
+ value = f" case {syscall_num}: return {gdb_syscall_name};\n"
+ canon_syscalls[syscall_num] = value
+ # this is a place for corner cases
+ elif syscall_name == "mmap":
+ gdb_old_syscall_name = "gdb_sys_old_mmap"
+ value = (
+ f" case {syscall_num}: return {gdb_old_syscall_name};\n"
+ )
+ canon_syscalls[syscall_num] = value
+ else:
+ value = f" /* case {syscall_num}: return {gdb_syscall_name}; */\n"
+ canon_syscalls[syscall_num] = value
+ return [canon_syscalls[syscall_num] for syscall_num in sorted(canon_syscalls)]
+
+ def generate(self, syscalls_path: _Path) -> None:
+ repo_path = _Path(__file__).parent.parent.parent
+ gdb_syscalls_path = repo_path / "gdb" / "linux-record.h"
+ canon_syscalls_path = repo_path / "gdb" / "riscv-canonicalize-syscall-gen.c"
+
+ gdb_syscalls = self._get_gdb_syscalls(gdb_syscalls_path)
+ canon_syscalls_lines = self._get_canon_syscalls_lines(
+ syscalls_path, gdb_syscalls
+ )
+
+ with open(canon_syscalls_path, "w", encoding="UTF-8") as file:
+ file.writelines(head)
+ file.writelines(canon_syscalls_lines)
+ file.writelines(tail)
+
+
+help_message = """\
+Generate file gdb/riscv-canonicalize-syscall-gen.c
+from path to riscv linux syscalls.
+"""
+
+
+def setup_parser() -> argparse.ArgumentParser:
+ parser = argparse.ArgumentParser(description=help_message)
+ parser.add_argument(
+ "-i",
+ "--input",
+ type=_Path,
+ required=True,
+ help="path to riscv linux syscalls (glibc/sysdeps/unix/sysv/linux/riscv/rv64/arch-syscall.h)",
+ )
+ return parser
+
+
+def main(argv: list[str]) -> int:
+ try:
+ parser = setup_parser()
+ args = parser.parse_args(argv)
+ generator = Generator()
+ generator.generate(args.input)
+ return 0
+ except RuntimeError as e:
+ print(str(e))
+ return -1
+
+
+if __name__ == "__main__":
+ sys.exit(main(sys.argv[1:]))
diff --git a/gdb/syscalls/update-freebsd.sh b/gdb/syscalls/update-freebsd.sh
index 2a54c19..ae1ee80 100755
--- a/gdb/syscalls/update-freebsd.sh
+++ b/gdb/syscalls/update-freebsd.sh
@@ -1,6 +1,6 @@
#! /bin/sh
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
diff --git a/gdb/syscalls/update-linux-defaults.sh b/gdb/syscalls/update-linux-defaults.sh
index 92378f0..d374051 100755
--- a/gdb/syscalls/update-linux-defaults.sh
+++ b/gdb/syscalls/update-linux-defaults.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
diff --git a/gdb/syscalls/update-linux-from-src.sh b/gdb/syscalls/update-linux-from-src.sh
index 35d7899..ea06c13 100755
--- a/gdb/syscalls/update-linux-from-src.sh
+++ b/gdb/syscalls/update-linux-from-src.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
diff --git a/gdb/syscalls/update-linux.sh b/gdb/syscalls/update-linux.sh
index 8248a96..107ce05 100755
--- a/gdb/syscalls/update-linux.sh
+++ b/gdb/syscalls/update-linux.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
diff --git a/gdb/syscalls/update-netbsd.sh b/gdb/syscalls/update-netbsd.sh
index 43b2b04..ef50646 100755
--- a/gdb/syscalls/update-netbsd.sh
+++ b/gdb/syscalls/update-netbsd.sh
@@ -1,6 +1,6 @@
#! /bin/sh
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
@@ -36,7 +36,7 @@ fi
cat > netbsd.xml.tmp <<EOF
<?xml version="1.0"?> <!-- THIS FILE IS GENERATED -*- buffer-read-only: t -*- -->
<!-- vi:set ro: -->
-<!-- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2020-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/system-gdbinit/elinos.py b/gdb/system-gdbinit/elinos.py
index da82687..6a08258 100644
--- a/gdb/system-gdbinit/elinos.py
+++ b/gdb/system-gdbinit/elinos.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/system-gdbinit/wrs-linux.py b/gdb/system-gdbinit/wrs-linux.py
index 952617e..7db36bf 100644
--- a/gdb/system-gdbinit/wrs-linux.py
+++ b/gdb/system-gdbinit/wrs-linux.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/target-connection.c b/gdb/target-connection.c
index d9a529a..60d7732 100644
--- a/gdb/target-connection.c
+++ b/gdb/target-connection.c
@@ -1,6 +1,6 @@
/* List of target connections for GDB.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/target-connection.h b/gdb/target-connection.h
index 4faae11..67bac5c 100644
--- a/gdb/target-connection.h
+++ b/gdb/target-connection.h
@@ -1,6 +1,6 @@
/* List of target connections for GDB.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/target-dcache.c b/gdb/target-dcache.c
index 6a51bc6..9fcdd1e 100644
--- a/gdb/target-dcache.c
+++ b/gdb/target-dcache.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/target-dcache.h b/gdb/target-dcache.h
index a199a23..1a0d946 100644
--- a/gdb/target-dcache.h
+++ b/gdb/target-dcache.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/target-debug.h b/gdb/target-debug.h
index 7530cf0..f7debe4 100644
--- a/gdb/target-debug.h
+++ b/gdb/target-debug.h
@@ -1,6 +1,6 @@
/* GDB target debugging macros
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -146,6 +146,10 @@ target_debug_print_CORE_ADDR_p (CORE_ADDR *p)
{ return core_addr_to_string (*p); }
static std::string
+target_debug_print_CORE_ADDR_r (CORE_ADDR &p)
+{ return core_addr_to_string (p); }
+
+static std::string
target_debug_print_int_p (int *p)
{ return plongest (*p); }
@@ -306,6 +310,10 @@ static std::string
target_debug_print_target_waitstatus_p (struct target_waitstatus *status)
{ return status->to_string (); }
+static std::string
+target_debug_print_const_target_waitstatus_r (const target_waitstatus &status)
+{ return status.to_string (); }
+
/* Functions that are used via TARGET_DEBUG_PRINTER. */
static std::string
@@ -379,4 +387,14 @@ target_debug_print_x86_xsave_layout (const x86_xsave_layout &layout)
return s;
}
+
+static std::string
+target_debug_print_displaced_step_finish_status (displaced_step_finish_status s)
+{ return displaced_step_finish_status_str (s); }
+
+static std::string
+target_debug_print_displaced_step_prepare_status
+ (displaced_step_prepare_status s)
+{ return displaced_step_prepare_status_str (s); }
+
#endif /* GDB_TARGET_DEBUG_H */
diff --git a/gdb/target-delegates-gen.c b/gdb/target-delegates-gen.c
index dd20e14..164ddbb 100644
--- a/gdb/target-delegates-gen.c
+++ b/gdb/target-delegates-gen.c
@@ -3,7 +3,7 @@
/* Boilerplate target methods for GDB
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -199,6 +199,10 @@ struct dummy_target : public target_ops
bool store_memtags (CORE_ADDR arg0, size_t arg1, const gdb::byte_vector &arg2, int arg3) override;
bool is_address_tagged (gdbarch *arg0, CORE_ADDR arg1) override;
x86_xsave_layout fetch_x86_xsave_layout () override;
+ bool supports_displaced_step (thread_info *arg0) override;
+ displaced_step_prepare_status displaced_step_prepare (thread_info *arg0, CORE_ADDR &arg1) override;
+ displaced_step_finish_status displaced_step_finish (thread_info *arg0, const target_waitstatus &arg1) override;
+ void displaced_step_restore_all_in_ptid (inferior *arg0, ptid_t arg1) override;
};
struct debug_target : public target_ops
@@ -376,6 +380,10 @@ struct debug_target : public target_ops
bool store_memtags (CORE_ADDR arg0, size_t arg1, const gdb::byte_vector &arg2, int arg3) override;
bool is_address_tagged (gdbarch *arg0, CORE_ADDR arg1) override;
x86_xsave_layout fetch_x86_xsave_layout () override;
+ bool supports_displaced_step (thread_info *arg0) override;
+ displaced_step_prepare_status displaced_step_prepare (thread_info *arg0, CORE_ADDR &arg1) override;
+ displaced_step_finish_status displaced_step_finish (thread_info *arg0, const target_waitstatus &arg1) override;
+ void displaced_step_restore_all_in_ptid (inferior *arg0, ptid_t arg1) override;
};
void
@@ -4411,3 +4419,103 @@ debug_target::fetch_x86_xsave_layout ()
target_debug_print_x86_xsave_layout (result).c_str ());
return result;
}
+
+bool
+target_ops::supports_displaced_step (thread_info *arg0)
+{
+ return this->beneath ()->supports_displaced_step (arg0);
+}
+
+bool
+dummy_target::supports_displaced_step (thread_info *arg0)
+{
+ return default_supports_displaced_step (this, arg0);
+}
+
+bool
+debug_target::supports_displaced_step (thread_info *arg0)
+{
+ target_debug_printf_nofunc ("-> %s->supports_displaced_step (...)", this->beneath ()->shortname ());
+ bool result
+ = this->beneath ()->supports_displaced_step (arg0);
+ target_debug_printf_nofunc ("<- %s->supports_displaced_step (%s) = %s",
+ this->beneath ()->shortname (),
+ target_debug_print_thread_info_p (arg0).c_str (),
+ target_debug_print_bool (result).c_str ());
+ return result;
+}
+
+displaced_step_prepare_status
+target_ops::displaced_step_prepare (thread_info *arg0, CORE_ADDR &arg1)
+{
+ return this->beneath ()->displaced_step_prepare (arg0, arg1);
+}
+
+displaced_step_prepare_status
+dummy_target::displaced_step_prepare (thread_info *arg0, CORE_ADDR &arg1)
+{
+ return default_displaced_step_prepare (this, arg0, arg1);
+}
+
+displaced_step_prepare_status
+debug_target::displaced_step_prepare (thread_info *arg0, CORE_ADDR &arg1)
+{
+ target_debug_printf_nofunc ("-> %s->displaced_step_prepare (...)", this->beneath ()->shortname ());
+ displaced_step_prepare_status result
+ = this->beneath ()->displaced_step_prepare (arg0, arg1);
+ target_debug_printf_nofunc ("<- %s->displaced_step_prepare (%s, %s) = %s",
+ this->beneath ()->shortname (),
+ target_debug_print_thread_info_p (arg0).c_str (),
+ target_debug_print_CORE_ADDR_r (arg1).c_str (),
+ target_debug_print_displaced_step_prepare_status (result).c_str ());
+ return result;
+}
+
+displaced_step_finish_status
+target_ops::displaced_step_finish (thread_info *arg0, const target_waitstatus &arg1)
+{
+ return this->beneath ()->displaced_step_finish (arg0, arg1);
+}
+
+displaced_step_finish_status
+dummy_target::displaced_step_finish (thread_info *arg0, const target_waitstatus &arg1)
+{
+ return default_displaced_step_finish (this, arg0, arg1);
+}
+
+displaced_step_finish_status
+debug_target::displaced_step_finish (thread_info *arg0, const target_waitstatus &arg1)
+{
+ target_debug_printf_nofunc ("-> %s->displaced_step_finish (...)", this->beneath ()->shortname ());
+ displaced_step_finish_status result
+ = this->beneath ()->displaced_step_finish (arg0, arg1);
+ target_debug_printf_nofunc ("<- %s->displaced_step_finish (%s, %s) = %s",
+ this->beneath ()->shortname (),
+ target_debug_print_thread_info_p (arg0).c_str (),
+ target_debug_print_const_target_waitstatus_r (arg1).c_str (),
+ target_debug_print_displaced_step_finish_status (result).c_str ());
+ return result;
+}
+
+void
+target_ops::displaced_step_restore_all_in_ptid (inferior *arg0, ptid_t arg1)
+{
+ this->beneath ()->displaced_step_restore_all_in_ptid (arg0, arg1);
+}
+
+void
+dummy_target::displaced_step_restore_all_in_ptid (inferior *arg0, ptid_t arg1)
+{
+ default_displaced_step_restore_all_in_ptid (this, arg0, arg1);
+}
+
+void
+debug_target::displaced_step_restore_all_in_ptid (inferior *arg0, ptid_t arg1)
+{
+ target_debug_printf_nofunc ("-> %s->displaced_step_restore_all_in_ptid (...)", this->beneath ()->shortname ());
+ this->beneath ()->displaced_step_restore_all_in_ptid (arg0, arg1);
+ target_debug_printf_nofunc ("<- %s->displaced_step_restore_all_in_ptid (%s, %s)",
+ this->beneath ()->shortname (),
+ target_debug_print_inferior_p (arg0).c_str (),
+ target_debug_print_ptid_t (arg1).c_str ());
+}
diff --git a/gdb/target-descriptions.c b/gdb/target-descriptions.c
index 1d35e4d..8042d25 100644
--- a/gdb/target-descriptions.c
+++ b/gdb/target-descriptions.c
@@ -1,6 +1,6 @@
/* Target description support for GDB.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
Contributed by CodeSourcery.
diff --git a/gdb/target-descriptions.h b/gdb/target-descriptions.h
index 5bd7973..7481c87 100644
--- a/gdb/target-descriptions.h
+++ b/gdb/target-descriptions.h
@@ -1,6 +1,6 @@
/* Target description support for GDB.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
Contributed by CodeSourcery.
diff --git a/gdb/target-float.c b/gdb/target-float.c
index 9b1b6b7..9b0376f 100644
--- a/gdb/target-float.c
+++ b/gdb/target-float.c
@@ -1,6 +1,6 @@
/* Floating point routines for GDB, the GNU debugger.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/target-float.h b/gdb/target-float.h
index 0b9cd7a..ab0c848 100644
--- a/gdb/target-float.h
+++ b/gdb/target-float.h
@@ -1,6 +1,6 @@
/* Floating point definitions for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/target-memory.c b/gdb/target-memory.c
index f752769..56fac49 100644
--- a/gdb/target-memory.c
+++ b/gdb/target-memory.c
@@ -1,7 +1,7 @@
/* Parts of target interface that deal with accessing memory and memory-like
objects.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/target-section.h b/gdb/target-section.h
index d7cea4f..30ff663 100644
--- a/gdb/target-section.h
+++ b/gdb/target-section.h
@@ -1,6 +1,6 @@
/* Target sections.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/target.c b/gdb/target.c
index b6d1abe..a854a98 100644
--- a/gdb/target.c
+++ b/gdb/target.c
@@ -1,6 +1,6 @@
/* Select target systems and architectures at runtime for GDB.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
@@ -50,7 +50,7 @@
#include "gdbsupport/byte-vector.h"
#include "gdbsupport/search.h"
#include "terminal.h"
-#include <unordered_map>
+#include "gdbsupport/unordered_map.h"
#include "target-connection.h"
#include "valprint.h"
#include "cli/cli-decode.h"
@@ -72,7 +72,7 @@ static int default_verify_memory (struct target_ops *self,
TARGET_NAME" command that when invoked calls the factory registered
here. The target_info object is associated with the command via
the command's context. */
-static std::unordered_map<const target_info *, target_open_ftype *>
+static gdb::unordered_map<const target_info *, target_open_ftype *>
target_factories;
/* The singleton debug target. */
@@ -1250,11 +1250,21 @@ generic_tls_error (void)
_("Cannot find thread-local variables on this target"));
}
-/* Using the objfile specified in OBJFILE, find the address for the
- current thread's thread-local storage with offset OFFSET. */
+/* See target.h. */
+
CORE_ADDR
-target_translate_tls_address (struct objfile *objfile, CORE_ADDR offset)
+target_translate_tls_address (struct objfile *objfile, CORE_ADDR offset,
+ const char *name)
{
+ if (!target_has_registers ())
+ {
+ if (name == nullptr)
+ error (_("Cannot translate TLS address without registers"));
+ else
+ error (_("Cannot find address of TLS symbol `%s' without registers"),
+ name);
+ }
+
volatile CORE_ADDR addr = 0;
struct target_ops *target = current_inferior ()->top_target ();
gdbarch *gdbarch = current_inferior ()->arch ();
@@ -3194,8 +3204,8 @@ target_ops::fileio_fstat (int fd, struct stat *sb, fileio_error *target_errno)
}
int
-target_ops::fileio_stat (struct inferior *inf, const char *filename,
- struct stat *sb, fileio_error *target_errno)
+target_ops::fileio_lstat (struct inferior *inf, const char *filename,
+ struct stat *sb, fileio_error *target_errno)
{
*target_errno = FILEIO_ENOSYS;
return -1;
@@ -3321,17 +3331,17 @@ target_fileio_fstat (int fd, struct stat *sb, fileio_error *target_errno)
/* See target.h. */
int
-target_fileio_stat (struct inferior *inf, const char *filename,
- struct stat *sb, fileio_error *target_errno)
+target_fileio_lstat (struct inferior *inf, const char *filename,
+ struct stat *sb, fileio_error *target_errno)
{
for (target_ops *t = default_fileio_target (); t != NULL; t = t->beneath ())
{
- int ret = t->fileio_stat (inf, filename, sb, target_errno);
+ int ret = t->fileio_lstat (inf, filename, sb, target_errno);
if (ret == -1 && *target_errno == FILEIO_ENOSYS)
continue;
- target_debug_printf_nofunc ("target_fileio_stat (%s) = %d (%d)",
+ target_debug_printf_nofunc ("target_fileio_lstat (%s) = %d (%d)",
filename, ret,
ret != -1 ? 0 : *target_errno);
return ret;
diff --git a/gdb/target.h b/gdb/target.h
index 5b45f15..365e894 100644
--- a/gdb/target.h
+++ b/gdb/target.h
@@ -1,6 +1,6 @@
/* Interface between GDB and target environments, including files and processes
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support. Written by John Gilmore.
@@ -1016,8 +1016,8 @@ struct target_ops
filesystem seen by the debugger (GDB or, for remote targets, the
remote stub). Return 0 on success, or -1 if an error occurs (and
set *TARGET_ERRNO). */
- virtual int fileio_stat (struct inferior *inf, const char *filename,
- struct stat *sb, fileio_error *target_errno);
+ virtual int fileio_lstat (struct inferior *inf, const char *filename,
+ struct stat *sb, fileio_error *target_errno);
/* Close FD on the target. Return 0, or -1 if an error occurs
(and set *TARGET_ERRNO). */
@@ -1162,8 +1162,12 @@ struct target_ops
CORE_ADDR memaddr, ULONGEST size)
TARGET_DEFAULT_FUNC (default_verify_memory);
- /* Return the address of the start of the Thread Information Block
- a Windows OS specific feature. */
+ /* Set *ADDR to the address of the start of the Thread Information
+ Block (TIB) for thread PTID. Return true on success and false
+ otherwise.
+
+ ADDR may be nullptr, in which case the checks will be done but
+ the result will be discarded. */
virtual bool get_tib_address (ptid_t ptid, CORE_ADDR *addr)
TARGET_DEFAULT_NORETURN (tcomplain ());
@@ -1376,6 +1380,25 @@ struct target_ops
/* Return the x86 XSAVE extended state area layout. */
virtual x86_xsave_layout fetch_x86_xsave_layout ()
TARGET_DEFAULT_RETURN (x86_xsave_layout ());
+
+ /* Return true if the target supports displaced stepping for THREAD. */
+ virtual bool supports_displaced_step (thread_info *thread)
+ TARGET_DEFAULT_FUNC (default_supports_displaced_step);
+
+ /* See documentation of gdbarch_displaced_step_prepare. */
+ virtual displaced_step_prepare_status displaced_step_prepare (thread_info *thread,
+ CORE_ADDR &displaced_pc)
+ TARGET_DEFAULT_FUNC (default_displaced_step_prepare);
+
+ /* See documentation of gdbarch_displaced_step_finish. */
+ virtual displaced_step_finish_status displaced_step_finish
+ (thread_info *thread, const target_waitstatus &status)
+ TARGET_DEFAULT_FUNC (default_displaced_step_finish);
+
+ /* See documentation of gdbarch_displaced_step_restore_all_in_ptid. */
+ virtual void displaced_step_restore_all_in_ptid (inferior *parent_inf,
+ ptid_t child_ptid)
+ TARGET_DEFAULT_FUNC (default_displaced_step_restore_all_in_ptid);
};
/* Deleter for std::unique_ptr. See comments in
@@ -2233,8 +2256,8 @@ extern int target_fileio_fstat (int fd, struct stat *sb,
filesystem seen by the debugger (GDB or, for remote targets, the remote
stub). Return 0 on success, or -1 if an error occurs (and set
*TARGET_ERRNO). */
-extern int target_fileio_stat (struct inferior *inf, const char *filename,
- struct stat *sb, fileio_error *target_errno);
+extern int target_fileio_lstat (struct inferior *inf, const char *filename,
+ struct stat *sb, fileio_error *target_errno);
/* Close FD on the target. Return 0, or -1 if an error occurs
(and set *TARGET_ERRNO). */
@@ -2338,6 +2361,8 @@ extern void target_set_trace_buffer_size (LONGEST val);
extern bool target_set_trace_notes (const char *user, const char *notes,
const char *stopnotes);
+/* A wrapper that calls get_tib_address on the top target of the
+ current inferior. */
extern bool target_get_tib_address (ptid_t ptid, CORE_ADDR *addr);
extern void target_set_permissions ();
@@ -2447,8 +2472,14 @@ extern void target_pre_inferior ();
extern void target_preopen (int);
+/* Using the objfile specified in OBJFILE, find the address for the
+ current thread's thread-local storage with offset OFFSET. If it's
+ provided, NAME might be used to indicate the relevant variable
+ in an error message. */
+
extern CORE_ADDR target_translate_tls_address (struct objfile *objfile,
- CORE_ADDR offset);
+ CORE_ADDR offset,
+ const char *name = nullptr);
/* Return the "section" containing the specified address. */
const struct target_section *target_section_by_addr (struct target_ops *target,
diff --git a/gdb/target/resume.h b/gdb/target/resume.h
index 024e39b..00e4e48 100644
--- a/gdb/target/resume.h
+++ b/gdb/target/resume.h
@@ -1,6 +1,6 @@
/* Target resumption definitions and prototypes.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/target/target.c b/gdb/target/target.c
index c84a6ff..c7b0df7 100644
--- a/gdb/target/target.c
+++ b/gdb/target/target.c
@@ -1,6 +1,6 @@
/* String reading
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/target/target.h b/gdb/target/target.h
index 87a3464..b69caf5 100644
--- a/gdb/target/target.h
+++ b/gdb/target/target.h
@@ -1,6 +1,6 @@
/* Declarations for common target functions.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/target/wait.h b/gdb/target/wait.h
index 026a42f..a724a73 100644
--- a/gdb/target/wait.h
+++ b/gdb/target/wait.h
@@ -1,6 +1,6 @@
/* Target wait definitions and prototypes.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/target/waitstatus.c b/gdb/target/waitstatus.c
index 9e9b563..94d129a 100644
--- a/gdb/target/waitstatus.c
+++ b/gdb/target/waitstatus.c
@@ -1,6 +1,6 @@
/* Target waitstatus implementations.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/target/waitstatus.h b/gdb/target/waitstatus.h
index 0ba5b9c..d87988f 100644
--- a/gdb/target/waitstatus.h
+++ b/gdb/target/waitstatus.h
@@ -1,6 +1,6 @@
/* Target waitstatus definitions and prototypes.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/terminal.h b/gdb/terminal.h
index 154b4be..54e5e98 100644
--- a/gdb/terminal.h
+++ b/gdb/terminal.h
@@ -1,5 +1,5 @@
/* Terminal interface definitions for GDB, the GNU Debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/test-target.c b/gdb/test-target.c
index 4da7a08..d7a7461 100644
--- a/gdb/test-target.c
+++ b/gdb/test-target.c
@@ -1,6 +1,6 @@
/* A mock process_stratum target_ops
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/test-target.h b/gdb/test-target.h
index b88c154..d09131f 100644
--- a/gdb/test-target.h
+++ b/gdb/test-target.h
@@ -1,6 +1,6 @@
/* A mock process_stratum target_ops
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -59,7 +59,7 @@ public:
}
};
-} // namespace selftests
+} /* namespace selftests */
#endif /* GDB_SELF_TEST */
#endif /* GDB_TEST_TARGET_H */
diff --git a/gdb/testsuite/ChangeLog-1993-2013 b/gdb/testsuite/ChangeLog-1993-2013
index e6d8a49..a54c643 100644
--- a/gdb/testsuite/ChangeLog-1993-2013
+++ b/gdb/testsuite/ChangeLog-1993-2013
@@ -33699,6 +33699,6 @@ Sun Feb 21 10:55:55 1993 Mike Werner (mtw@poseidon.cygnus.com)
;; version-control: never
;; End:
- Copyright 1993-2024 Free Software Foundation, Inc.
+ Copyright 1993-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted provided the copyright notice and this notice are preserved.
diff --git a/gdb/testsuite/ChangeLog-2014-2021 b/gdb/testsuite/ChangeLog-2014-2021
index 6376c70..e0c50c6 100644
--- a/gdb/testsuite/ChangeLog-2014-2021
+++ b/gdb/testsuite/ChangeLog-2014-2021
@@ -24947,6 +24947,6 @@ For older changes see ChangeLog-1993-2013.
;; version-control: never
;; End:
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted provided the copyright notice and this notice are preserved.
diff --git a/gdb/testsuite/Makefile.in b/gdb/testsuite/Makefile.in
index 3235c70..4a6665d 100644
--- a/gdb/testsuite/Makefile.in
+++ b/gdb/testsuite/Makefile.in
@@ -1,5 +1,5 @@
# Makefile for regression testing the GNU debugger.
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This file is part of GDB.
@@ -440,14 +440,15 @@ expect-read1 expect-readmore:
# function, making it read one byte at a time. Running the testsuite
# with this catches racy tests.
read1.so: lib/read1.c
- $(ECHO_CC) $(CC) -o $@ ${srcdir}/lib/read1.c -Wall -g -shared -fPIC $(CFLAGS)
+ $(ECHO_CC) $(CC) -o $@ ${srcdir}/lib/read1.c -Wall -g -shared -fPIC \
+ $(filter-out -fsanitize=%,$(CFLAGS))
# Build the readmore.so preload library. This overrides the `read'
# function, making it try harder to read more at a time. Running the
# testsuite with this catches racy tests.
readmore.so: lib/read1.c
$(ECHO_CC) $(CC) -o $@ ${srcdir}/lib/read1.c -Wall -g -shared -fPIC \
- $(CFLAGS) -DREADMORE
+ $(filter-out -fsanitize=%,$(CFLAGS)) -DREADMORE
# Build the read1 machinery.
.PHONY: read1 readmore
diff --git a/gdb/testsuite/analyze-racy-logs.py b/gdb/testsuite/analyze-racy-logs.py
index 3863bd0..f24bea9 100755
--- a/gdb/testsuite/analyze-racy-logs.py
+++ b/gdb/testsuite/analyze-racy-logs.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
@@ -62,7 +62,6 @@ sum_matcher = re.compile("^(.?(PASS|FAIL)): (.*)$")
def parse_sum_line(line: str, dic: dict[str, set[str]]):
"""Parse a single LINE from a sumfile, and store the results in the
dictionary referenced by DIC."""
- global sum_matcher
line = line.rstrip()
m = re.match(sum_matcher, line)
@@ -96,7 +95,6 @@ def read_sum_files(files: list[str]):
"""Read the sumfiles (passed as a list in the FILES variable), and
process each one, filling the FILES_AND_TESTS global dictionary with
information about them."""
- global files_and_tests
for x in files:
with open(x, "r") as f:
@@ -115,7 +113,6 @@ def identify_racy_tests():
This function does that for all sets (PASS, FAIL, KPASS, KFAIL, etc.),
and then print a sorted list (without duplicates) of all the tests
that were found to be racy."""
- global files_and_tests
# First, construct two dictionaries that will hold one set of
# testcases for each state (PASS, FAIL, etc.).
diff --git a/gdb/testsuite/boards/cc-with-debug-names.exp b/gdb/testsuite/boards/cc-with-debug-names.exp
index a4b7b8e..0484422 100644
--- a/gdb/testsuite/boards/cc-with-debug-names.exp
+++ b/gdb/testsuite/boards/cc-with-debug-names.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/cc-with-dwz-5.exp b/gdb/testsuite/boards/cc-with-dwz-5.exp
new file mode 100644
index 0000000..b254f91
--- /dev/null
+++ b/gdb/testsuite/boards/cc-with-dwz-5.exp
@@ -0,0 +1,28 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# This file is a dejagnu "board file" and is used to run the testsuite
+# with contrib/cc-with-tweaks.sh -5.
+#
+# NOTE: We assume dwz is in $PATH.
+#
+# Example usage:
+# bash$ cd $objdir
+# bash$ make check-gdb \
+# RUNTESTFLAGS='--target_board=cc-with-dwz-5'
+#
+
+set CC_WITH_TWEAKS_FLAGS "-5"
+load_board_description "cc-with-tweaks"
diff --git a/gdb/testsuite/boards/cc-with-dwz-m.exp b/gdb/testsuite/boards/cc-with-dwz-m.exp
index 8b8387f..ba42704 100644
--- a/gdb/testsuite/boards/cc-with-dwz-m.exp
+++ b/gdb/testsuite/boards/cc-with-dwz-m.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/cc-with-dwz.exp b/gdb/testsuite/boards/cc-with-dwz.exp
index 57dc09c..f83e211 100644
--- a/gdb/testsuite/boards/cc-with-dwz.exp
+++ b/gdb/testsuite/boards/cc-with-dwz.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/cc-with-gdb-index.exp b/gdb/testsuite/boards/cc-with-gdb-index.exp
index 3889df0..d859935 100644
--- a/gdb/testsuite/boards/cc-with-gdb-index.exp
+++ b/gdb/testsuite/boards/cc-with-gdb-index.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/cc-with-gnu-debuglink.exp b/gdb/testsuite/boards/cc-with-gnu-debuglink.exp
index 5688593..b6e8378 100644
--- a/gdb/testsuite/boards/cc-with-gnu-debuglink.exp
+++ b/gdb/testsuite/boards/cc-with-gnu-debuglink.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/cc-with-index-cache.exp b/gdb/testsuite/boards/cc-with-index-cache.exp
index debcaac..60ad1e9 100644
--- a/gdb/testsuite/boards/cc-with-index-cache.exp
+++ b/gdb/testsuite/boards/cc-with-index-cache.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/cc-with-tweaks.exp b/gdb/testsuite/boards/cc-with-tweaks.exp
index 52c93a9..8c079da 100644
--- a/gdb/testsuite/boards/cc-with-tweaks.exp
+++ b/gdb/testsuite/boards/cc-with-tweaks.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/debug-types.exp b/gdb/testsuite/boards/debug-types.exp
index 733510c..970829b 100644
--- a/gdb/testsuite/boards/debug-types.exp
+++ b/gdb/testsuite/boards/debug-types.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/dwarf4-gdb-index.exp b/gdb/testsuite/boards/dwarf4-gdb-index.exp
index cf94a99..a9ac29c 100644
--- a/gdb/testsuite/boards/dwarf4-gdb-index.exp
+++ b/gdb/testsuite/boards/dwarf4-gdb-index.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/dwarf5-fission-debug-types.exp b/gdb/testsuite/boards/dwarf5-fission-debug-types.exp
new file mode 100644
index 0000000..189a591
--- /dev/null
+++ b/gdb/testsuite/boards/dwarf5-fission-debug-types.exp
@@ -0,0 +1,33 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# A board that compiles with DWARF 5, split DWARF (fission) and type units.
+# This results in .dwo files containing one compilation unit and (possibly)
+# multiple type units each.
+
+# This is copied from baseboards/unix.exp.
+# At the moment this only supports things that unix.exp supports.
+load_generic_config "unix"
+process_multilib_options ""
+set_board_info compiler "[find_gcc]"
+
+set_board_info debug_flags \
+ [join { "-gdwarf-5" \
+ "-gsplit-dwarf" \
+ "-fdebug-types-section" }]
+
+# This is needed otherwise dejagnu tries to rsh to host with the board name
+# as its hostname.
+load_board_description "local-board"
diff --git a/gdb/testsuite/boards/dwarf64.exp b/gdb/testsuite/boards/dwarf64.exp
index 161d8cd..1c22cad 100644
--- a/gdb/testsuite/boards/dwarf64.exp
+++ b/gdb/testsuite/boards/dwarf64.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/fission-dwp.exp b/gdb/testsuite/boards/fission-dwp.exp
index c04e819..55de56d 100644
--- a/gdb/testsuite/boards/fission-dwp.exp
+++ b/gdb/testsuite/boards/fission-dwp.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/fission.exp b/gdb/testsuite/boards/fission.exp
index 496fece..bc0ead1 100644
--- a/gdb/testsuite/boards/fission.exp
+++ b/gdb/testsuite/boards/fission.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/gdbserver-base.exp b/gdb/testsuite/boards/gdbserver-base.exp
index 5e16791..717dff9 100644
--- a/gdb/testsuite/boards/gdbserver-base.exp
+++ b/gdb/testsuite/boards/gdbserver-base.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/gold-gdb-index.exp b/gdb/testsuite/boards/gold-gdb-index.exp
index 568a334..b91df71 100644
--- a/gdb/testsuite/boards/gold-gdb-index.exp
+++ b/gdb/testsuite/boards/gold-gdb-index.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/gold.exp b/gdb/testsuite/boards/gold.exp
index b1bcd2f..35dcbe0 100644
--- a/gdb/testsuite/boards/gold.exp
+++ b/gdb/testsuite/boards/gold.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/local-board.exp b/gdb/testsuite/boards/local-board.exp
index c659b80..1d9bb43 100644
--- a/gdb/testsuite/boards/local-board.exp
+++ b/gdb/testsuite/boards/local-board.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/local-remote-host-native.exp b/gdb/testsuite/boards/local-remote-host-native.exp
index 204f646..dd4a437 100644
--- a/gdb/testsuite/boards/local-remote-host-native.exp
+++ b/gdb/testsuite/boards/local-remote-host-native.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/local-remote-host-notty.exp b/gdb/testsuite/boards/local-remote-host-notty.exp
index e515d14..56e0ed3 100644
--- a/gdb/testsuite/boards/local-remote-host-notty.exp
+++ b/gdb/testsuite/boards/local-remote-host-notty.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/local-remote-host.exp b/gdb/testsuite/boards/local-remote-host.exp
index 64c1d83..c342b6f 100644
--- a/gdb/testsuite/boards/local-remote-host.exp
+++ b/gdb/testsuite/boards/local-remote-host.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/native-extended-gdbserver.exp b/gdb/testsuite/boards/native-extended-gdbserver.exp
index ef77acc..3299e31 100644
--- a/gdb/testsuite/boards/native-extended-gdbserver.exp
+++ b/gdb/testsuite/boards/native-extended-gdbserver.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/native-gdbserver.exp b/gdb/testsuite/boards/native-gdbserver.exp
index 722e23b..a24d7ab 100644
--- a/gdb/testsuite/boards/native-gdbserver.exp
+++ b/gdb/testsuite/boards/native-gdbserver.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/native-stdio-gdbserver.exp b/gdb/testsuite/boards/native-stdio-gdbserver.exp
index 55010e2..b95eec6 100644
--- a/gdb/testsuite/boards/native-stdio-gdbserver.exp
+++ b/gdb/testsuite/boards/native-stdio-gdbserver.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/readnow.exp b/gdb/testsuite/boards/readnow.exp
index c3a28ff..744e929 100644
--- a/gdb/testsuite/boards/readnow.exp
+++ b/gdb/testsuite/boards/readnow.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp b/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp
index 3e223a0..93c584e 100644
--- a/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp
+++ b/gdb/testsuite/boards/remote-gdbserver-on-localhost.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/remote-stdio-gdbserver.exp b/gdb/testsuite/boards/remote-stdio-gdbserver.exp
index 1cc435e..25faa04 100644
--- a/gdb/testsuite/boards/remote-stdio-gdbserver.exp
+++ b/gdb/testsuite/boards/remote-stdio-gdbserver.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/simavr.exp b/gdb/testsuite/boards/simavr.exp
index fb159a2..6e6e309 100644
--- a/gdb/testsuite/boards/simavr.exp
+++ b/gdb/testsuite/boards/simavr.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/stabs.exp b/gdb/testsuite/boards/stabs.exp
index 9cb4c5c..537fd01 100644
--- a/gdb/testsuite/boards/stabs.exp
+++ b/gdb/testsuite/boards/stabs.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/boards/stdio-gdbserver-base.exp b/gdb/testsuite/boards/stdio-gdbserver-base.exp
index 66c773a..509b77e 100644
--- a/gdb/testsuite/boards/stdio-gdbserver-base.exp
+++ b/gdb/testsuite/boards/stdio-gdbserver-base.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/cfdbug.exp b/gdb/testsuite/config/cfdbug.exp
index e6a73ed..71e27dc 100644
--- a/gdb/testsuite/config/cfdbug.exp
+++ b/gdb/testsuite/config/cfdbug.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/d10v.exp b/gdb/testsuite/config/d10v.exp
index aa0cfae..cb099ab 100644
--- a/gdb/testsuite/config/d10v.exp
+++ b/gdb/testsuite/config/d10v.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1997-2024 Free Software Foundation, Inc.
+# Copyright (C) 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/default.exp b/gdb/testsuite/config/default.exp
index 160be8f..751e412 100644
--- a/gdb/testsuite/config/default.exp
+++ b/gdb/testsuite/config/default.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# Copyright (C) 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/dve.exp b/gdb/testsuite/config/dve.exp
index 715751e..b08514b 100644
--- a/gdb/testsuite/config/dve.exp
+++ b/gdb/testsuite/config/dve.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/extended-gdbserver.exp b/gdb/testsuite/config/extended-gdbserver.exp
index d9f3148..00e6b55 100644
--- a/gdb/testsuite/config/extended-gdbserver.exp
+++ b/gdb/testsuite/config/extended-gdbserver.exp
@@ -1,4 +1,4 @@
-# Copyright 2000-2024 Free Software Foundation, Inc.
+# Copyright 2000-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/gdbserver.exp b/gdb/testsuite/config/gdbserver.exp
index cd9fe4c..40298d6 100644
--- a/gdb/testsuite/config/gdbserver.exp
+++ b/gdb/testsuite/config/gdbserver.exp
@@ -1,4 +1,4 @@
-# Copyright 2000-2024 Free Software Foundation, Inc.
+# Copyright 2000-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/i960.exp b/gdb/testsuite/config/i960.exp
index 64f7fcc..b30b7f7 100644
--- a/gdb/testsuite/config/i960.exp
+++ b/gdb/testsuite/config/i960.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/m32r.exp b/gdb/testsuite/config/m32r.exp
index 1004644..2ea691b 100644
--- a/gdb/testsuite/config/m32r.exp
+++ b/gdb/testsuite/config/m32r.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/mips-idt.exp b/gdb/testsuite/config/mips-idt.exp
index 6883ab8..d053ca8 100644
--- a/gdb/testsuite/config/mips-idt.exp
+++ b/gdb/testsuite/config/mips-idt.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1993-2024 Free Software Foundation, Inc.
+# Copyright (C) 1993-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/mips.exp b/gdb/testsuite/config/mips.exp
index 6883ab8..d053ca8 100644
--- a/gdb/testsuite/config/mips.exp
+++ b/gdb/testsuite/config/mips.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1993-2024 Free Software Foundation, Inc.
+# Copyright (C) 1993-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/mn10300-eval.exp b/gdb/testsuite/config/mn10300-eval.exp
index 715751e..b08514b 100644
--- a/gdb/testsuite/config/mn10300-eval.exp
+++ b/gdb/testsuite/config/mn10300-eval.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/monitor.exp b/gdb/testsuite/config/monitor.exp
index d5a589e..7634510 100644
--- a/gdb/testsuite/config/monitor.exp
+++ b/gdb/testsuite/config/monitor.exp
@@ -1,5 +1,5 @@
# Test Framework Driver for GDB driving a ROM monitor (via monitor.c).
-# Copyright 1995-2024 Free Software Foundation, Inc.
+# Copyright 1995-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/proelf.exp b/gdb/testsuite/config/proelf.exp
index 64f7fcc..b30b7f7 100644
--- a/gdb/testsuite/config/proelf.exp
+++ b/gdb/testsuite/config/proelf.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/rom68k.exp b/gdb/testsuite/config/rom68k.exp
index 64f7fcc..b30b7f7 100644
--- a/gdb/testsuite/config/rom68k.exp
+++ b/gdb/testsuite/config/rom68k.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/sh.exp b/gdb/testsuite/config/sh.exp
index 64f7fcc..b30b7f7 100644
--- a/gdb/testsuite/config/sh.exp
+++ b/gdb/testsuite/config/sh.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/sid.exp b/gdb/testsuite/config/sid.exp
index c0fb962..f4a58b9 100644
--- a/gdb/testsuite/config/sid.exp
+++ b/gdb/testsuite/config/sid.exp
@@ -1,5 +1,5 @@
# Test Framework Driver for GDB driving an external simulator
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/sim.exp b/gdb/testsuite/config/sim.exp
index da2780e..b12d7ce 100644
--- a/gdb/testsuite/config/sim.exp
+++ b/gdb/testsuite/config/sim.exp
@@ -1,5 +1,5 @@
# Test Framework Driver for GDB driving a builtin simulator
-# Copyright 1994-2024 Free Software Foundation, Inc.
+# Copyright 1994-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/slite.exp b/gdb/testsuite/config/slite.exp
index d472a63..d4ae98d 100644
--- a/gdb/testsuite/config/slite.exp
+++ b/gdb/testsuite/config/slite.exp
@@ -1,4 +1,4 @@
-# Copyright 1993-2024 Free Software Foundation, Inc.
+# Copyright 1993-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/unix.exp b/gdb/testsuite/config/unix.exp
index 30a9699..5199940 100644
--- a/gdb/testsuite/config/unix.exp
+++ b/gdb/testsuite/config/unix.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1988-2024 Free Software Foundation, Inc.
+# Copyright (C) 1988-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/vr4300.exp b/gdb/testsuite/config/vr4300.exp
index 64f7fcc..b30b7f7 100644
--- a/gdb/testsuite/config/vr4300.exp
+++ b/gdb/testsuite/config/vr4300.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/config/vr5000.exp b/gdb/testsuite/config/vr5000.exp
index 64f7fcc..b30b7f7 100644
--- a/gdb/testsuite/config/vr5000.exp
+++ b/gdb/testsuite/config/vr5000.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/configure.ac b/gdb/testsuite/configure.ac
index 8c0b605..560d7d9 100644
--- a/gdb/testsuite/configure.ac
+++ b/gdb/testsuite/configure.ac
@@ -1,7 +1,7 @@
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/O2_float_param.exp b/gdb/testsuite/gdb.ada/O2_float_param.exp
index 86b67ff..f22dff4 100644
--- a/gdb/testsuite/gdb.ada/O2_float_param.exp
+++ b/gdb/testsuite/gdb.ada/O2_float_param.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/O2_float_param/callee.adb b/gdb/testsuite/gdb.ada/O2_float_param/callee.adb
index aa07b84..595adf4 100644
--- a/gdb/testsuite/gdb.ada/O2_float_param/callee.adb
+++ b/gdb/testsuite/gdb.ada/O2_float_param/callee.adb
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/O2_float_param/callee.ads b/gdb/testsuite/gdb.ada/O2_float_param/callee.ads
index ef81bbc..2440881 100644
--- a/gdb/testsuite/gdb.ada/O2_float_param/callee.ads
+++ b/gdb/testsuite/gdb.ada/O2_float_param/callee.ads
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/O2_float_param/caller.adb b/gdb/testsuite/gdb.ada/O2_float_param/caller.adb
index 0e7bf77..8736917 100644
--- a/gdb/testsuite/gdb.ada/O2_float_param/caller.adb
+++ b/gdb/testsuite/gdb.ada/O2_float_param/caller.adb
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/O2_float_param/caller.ads b/gdb/testsuite/gdb.ada/O2_float_param/caller.ads
index 681b731..fe3ec2e 100644
--- a/gdb/testsuite/gdb.ada/O2_float_param/caller.ads
+++ b/gdb/testsuite/gdb.ada/O2_float_param/caller.ads
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/O2_float_param/foo.adb b/gdb/testsuite/gdb.ada/O2_float_param/foo.adb
index 67cf870..5f97a93 100644
--- a/gdb/testsuite/gdb.ada/O2_float_param/foo.adb
+++ b/gdb/testsuite/gdb.ada/O2_float_param/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/O2_float_param/io.adb b/gdb/testsuite/gdb.ada/O2_float_param/io.adb
index 90b9381..84ece0a 100644
--- a/gdb/testsuite/gdb.ada/O2_float_param/io.adb
+++ b/gdb/testsuite/gdb.ada/O2_float_param/io.adb
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/O2_float_param/io.ads b/gdb/testsuite/gdb.ada/O2_float_param/io.ads
index 319d973..0d553f6 100644
--- a/gdb/testsuite/gdb.ada/O2_float_param/io.ads
+++ b/gdb/testsuite/gdb.ada/O2_float_param/io.ads
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/access_tagged_param.exp b/gdb/testsuite/gdb.ada/access_tagged_param.exp
index f197b0c..113ac33 100644
--- a/gdb/testsuite/gdb.ada/access_tagged_param.exp
+++ b/gdb/testsuite/gdb.ada/access_tagged_param.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/access_tagged_param/foo.adb b/gdb/testsuite/gdb.ada/access_tagged_param/foo.adb
index 112dea0..8bf1e74 100644
--- a/gdb/testsuite/gdb.ada/access_tagged_param/foo.adb
+++ b/gdb/testsuite/gdb.ada/access_tagged_param/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/access_tagged_param/pck.adb b/gdb/testsuite/gdb.ada/access_tagged_param/pck.adb
index b0d1a66..840d5fa 100644
--- a/gdb/testsuite/gdb.ada/access_tagged_param/pck.adb
+++ b/gdb/testsuite/gdb.ada/access_tagged_param/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/access_tagged_param/pck.ads b/gdb/testsuite/gdb.ada/access_tagged_param/pck.ads
index 7731fe2..fdca197 100644
--- a/gdb/testsuite/gdb.ada/access_tagged_param/pck.ads
+++ b/gdb/testsuite/gdb.ada/access_tagged_param/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/access_to_packed_array.exp b/gdb/testsuite/gdb.ada/access_to_packed_array.exp
index 65b5df3..420ea8c 100644
--- a/gdb/testsuite/gdb.ada/access_to_packed_array.exp
+++ b/gdb/testsuite/gdb.ada/access_to_packed_array.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/access_to_packed_array/foo.adb b/gdb/testsuite/gdb.ada/access_to_packed_array/foo.adb
index a97f85d..c70e513 100644
--- a/gdb/testsuite/gdb.ada/access_to_packed_array/foo.adb
+++ b/gdb/testsuite/gdb.ada/access_to_packed_array/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/access_to_packed_array/pack.adb b/gdb/testsuite/gdb.ada/access_to_packed_array/pack.adb
index 3709e4a..044946a 100644
--- a/gdb/testsuite/gdb.ada/access_to_packed_array/pack.adb
+++ b/gdb/testsuite/gdb.ada/access_to_packed_array/pack.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/access_to_packed_array/pack.ads b/gdb/testsuite/gdb.ada/access_to_packed_array/pack.ads
index 7b33559..dc10ad1 100644
--- a/gdb/testsuite/gdb.ada/access_to_packed_array/pack.ads
+++ b/gdb/testsuite/gdb.ada/access_to_packed_array/pack.ads
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/access_to_unbounded_array.exp b/gdb/testsuite/gdb.ada/access_to_unbounded_array.exp
index eeaceb0..6959683 100644
--- a/gdb/testsuite/gdb.ada/access_to_unbounded_array.exp
+++ b/gdb/testsuite/gdb.ada/access_to_unbounded_array.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -31,6 +31,7 @@ foreach_gnat_encoding scenario flags {all minimal} {
set bp_location [gdb_get_line_number "BREAK" ${testdir}/foo.adb]
runto "foo.adb:$bp_location"
- gdb_test "print Aos(1)" " = \\(foo.string_access\\) $hex"
- gdb_test "print Aos(2)" " = \\(foo.string_access\\) $hex"
+ # Accept "foo." prefix for older versions of GNAT.
+ gdb_test "print Aos(1)" " = \\((foo.)?string_access\\) $hex"
+ gdb_test "print Aos(2)" " = \\((foo.)?string_access\\) $hex"
}
diff --git a/gdb/testsuite/gdb.ada/access_to_unbounded_array/foo.adb b/gdb/testsuite/gdb.ada/access_to_unbounded_array/foo.adb
index 85a7c18..df3e91b 100644
--- a/gdb/testsuite/gdb.ada/access_to_unbounded_array/foo.adb
+++ b/gdb/testsuite/gdb.ada/access_to_unbounded_array/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/access_to_unbounded_array/pack.adb b/gdb/testsuite/gdb.ada/access_to_unbounded_array/pack.adb
index d79bc9d..ce44765 100644
--- a/gdb/testsuite/gdb.ada/access_to_unbounded_array/pack.adb
+++ b/gdb/testsuite/gdb.ada/access_to_unbounded_array/pack.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/access_to_unbounded_array/pack.ads b/gdb/testsuite/gdb.ada/access_to_unbounded_array/pack.ads
index 2c20cb9..e0dbb03 100644
--- a/gdb/testsuite/gdb.ada/access_to_unbounded_array/pack.ads
+++ b/gdb/testsuite/gdb.ada/access_to_unbounded_array/pack.ads
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/addr_arith.exp b/gdb/testsuite/gdb.ada/addr_arith.exp
index 1389454..049ecfb 100644
--- a/gdb/testsuite/gdb.ada/addr_arith.exp
+++ b/gdb/testsuite/gdb.ada/addr_arith.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/addr_arith/foo_na07_019.adb b/gdb/testsuite/gdb.ada/addr_arith/foo_na07_019.adb
index 847ca66..40ae890 100644
--- a/gdb/testsuite/gdb.ada/addr_arith/foo_na07_019.adb
+++ b/gdb/testsuite/gdb.ada/addr_arith/foo_na07_019.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/addr_arith/pck.adb b/gdb/testsuite/gdb.ada/addr_arith/pck.adb
index 065383d..530aea7 100644
--- a/gdb/testsuite/gdb.ada/addr_arith/pck.adb
+++ b/gdb/testsuite/gdb.ada/addr_arith/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/addr_arith/pck.ads b/gdb/testsuite/gdb.ada/addr_arith/pck.ads
index 9f666a7..1f9b51d 100644
--- a/gdb/testsuite/gdb.ada/addr_arith/pck.ads
+++ b/gdb/testsuite/gdb.ada/addr_arith/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/aliased_array.exp b/gdb/testsuite/gdb.ada/aliased_array.exp
index 35ac81e..fe195a2 100644
--- a/gdb/testsuite/gdb.ada/aliased_array.exp
+++ b/gdb/testsuite/gdb.ada/aliased_array.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/aliased_array/foo.adb b/gdb/testsuite/gdb.ada/aliased_array/foo.adb
index 648793c..b859ddb 100644
--- a/gdb/testsuite/gdb.ada/aliased_array/foo.adb
+++ b/gdb/testsuite/gdb.ada/aliased_array/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/aliased_array/pck.adb b/gdb/testsuite/gdb.ada/aliased_array/pck.adb
index 9320cf9..459baf4 100644
--- a/gdb/testsuite/gdb.ada/aliased_array/pck.adb
+++ b/gdb/testsuite/gdb.ada/aliased_array/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/aliased_array/pck.ads b/gdb/testsuite/gdb.ada/aliased_array/pck.ads
index 51a9ed4..63817a6 100644
--- a/gdb/testsuite/gdb.ada/aliased_array/pck.ads
+++ b/gdb/testsuite/gdb.ada/aliased_array/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arr_acc_idx_w_gap.exp b/gdb/testsuite/gdb.ada/arr_acc_idx_w_gap.exp
index 4ecb4f8..dbbe4a8 100644
--- a/gdb/testsuite/gdb.ada/arr_acc_idx_w_gap.exp
+++ b/gdb/testsuite/gdb.ada/arr_acc_idx_w_gap.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arr_acc_idx_w_gap/enum_with_gap.adb b/gdb/testsuite/gdb.ada/arr_acc_idx_w_gap/enum_with_gap.adb
index 7f9b68e..1837b53 100644
--- a/gdb/testsuite/gdb.ada/arr_acc_idx_w_gap/enum_with_gap.adb
+++ b/gdb/testsuite/gdb.ada/arr_acc_idx_w_gap/enum_with_gap.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arr_acc_idx_w_gap/enum_with_gap.ads b/gdb/testsuite/gdb.ada/arr_acc_idx_w_gap/enum_with_gap.ads
index ba8d952..b449952 100644
--- a/gdb/testsuite/gdb.ada/arr_acc_idx_w_gap/enum_with_gap.ads
+++ b/gdb/testsuite/gdb.ada/arr_acc_idx_w_gap/enum_with_gap.ads
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arr_acc_idx_w_gap/enum_with_gap_main.adb b/gdb/testsuite/gdb.ada/arr_acc_idx_w_gap/enum_with_gap_main.adb
index a4e1827..7286409 100644
--- a/gdb/testsuite/gdb.ada/arr_acc_idx_w_gap/enum_with_gap_main.adb
+++ b/gdb/testsuite/gdb.ada/arr_acc_idx_w_gap/enum_with_gap_main.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arr_arr.exp b/gdb/testsuite/gdb.ada/arr_arr.exp
index dc641ae..1f252f0 100644
--- a/gdb/testsuite/gdb.ada/arr_arr.exp
+++ b/gdb/testsuite/gdb.ada/arr_arr.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -30,5 +30,6 @@ if {![runto "foo.adb:$bp_location"]} {
return
}
+# Accept "foo." prefix for older versions of GNAT.
gdb_test "ptype a2" \
- " = array \\(1 \\.\\. 2\\) of foo.array2_first"
+ " = array \\(1 \\.\\. 2\\) of (foo.)?array2_first"
diff --git a/gdb/testsuite/gdb.ada/arr_arr/foo.adb b/gdb/testsuite/gdb.ada/arr_arr/foo.adb
index 6f944a7..67f09ae 100644
--- a/gdb/testsuite/gdb.ada/arr_arr/foo.adb
+++ b/gdb/testsuite/gdb.ada/arr_arr/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arr_arr/pck.adb b/gdb/testsuite/gdb.ada/arr_arr/pck.adb
index a175b7b..d29c5da 100644
--- a/gdb/testsuite/gdb.ada/arr_arr/pck.adb
+++ b/gdb/testsuite/gdb.ada/arr_arr/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arr_arr/pck.ads b/gdb/testsuite/gdb.ada/arr_arr/pck.ads
index 384bf08..02fc1c8 100644
--- a/gdb/testsuite/gdb.ada/arr_arr/pck.ads
+++ b/gdb/testsuite/gdb.ada/arr_arr/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arr_enum_idx_w_gap.exp b/gdb/testsuite/gdb.ada/arr_enum_idx_w_gap.exp
index 491402b..249c613 100644
--- a/gdb/testsuite/gdb.ada/arr_enum_idx_w_gap.exp
+++ b/gdb/testsuite/gdb.ada/arr_enum_idx_w_gap.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arr_enum_idx_w_gap/foo_q418_043.adb b/gdb/testsuite/gdb.ada/arr_enum_idx_w_gap/foo_q418_043.adb
index 363e514..d240e48 100644
--- a/gdb/testsuite/gdb.ada/arr_enum_idx_w_gap/foo_q418_043.adb
+++ b/gdb/testsuite/gdb.ada/arr_enum_idx_w_gap/foo_q418_043.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_bounds.exp b/gdb/testsuite/gdb.ada/array_bounds.exp
index 9622327..3675c9f 100644
--- a/gdb/testsuite/gdb.ada/array_bounds.exp
+++ b/gdb/testsuite/gdb.ada/array_bounds.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_bounds/bar.adb b/gdb/testsuite/gdb.ada/array_bounds/bar.adb
index 9d10c2b..0d2a81f 100644
--- a/gdb/testsuite/gdb.ada/array_bounds/bar.adb
+++ b/gdb/testsuite/gdb.ada/array_bounds/bar.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_char_idx.exp b/gdb/testsuite/gdb.ada/array_char_idx.exp
index 40d91d5..acc2bc4 100644
--- a/gdb/testsuite/gdb.ada/array_char_idx.exp
+++ b/gdb/testsuite/gdb.ada/array_char_idx.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_char_idx/foo.adb b/gdb/testsuite/gdb.ada/array_char_idx/foo.adb
index a4c10d5..16d1ce4 100644
--- a/gdb/testsuite/gdb.ada/array_char_idx/foo.adb
+++ b/gdb/testsuite/gdb.ada/array_char_idx/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_char_idx/pck.adb b/gdb/testsuite/gdb.ada/array_char_idx/pck.adb
index a64c5e9..54ddf5c 100644
--- a/gdb/testsuite/gdb.ada/array_char_idx/pck.adb
+++ b/gdb/testsuite/gdb.ada/array_char_idx/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_char_idx/pck.ads b/gdb/testsuite/gdb.ada/array_char_idx/pck.ads
index 87fe6ec..5c3cdaf 100644
--- a/gdb/testsuite/gdb.ada/array_char_idx/pck.ads
+++ b/gdb/testsuite/gdb.ada/array_char_idx/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_of_symbolic_length.exp b/gdb/testsuite/gdb.ada/array_of_symbolic_length.exp
index 134b448..51dd5bb 100644
--- a/gdb/testsuite/gdb.ada/array_of_symbolic_length.exp
+++ b/gdb/testsuite/gdb.ada/array_of_symbolic_length.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_of_symbolic_length/foo.adb b/gdb/testsuite/gdb.ada/array_of_symbolic_length/foo.adb
index 7eb7c82..1f91f08 100644
--- a/gdb/testsuite/gdb.ada/array_of_symbolic_length/foo.adb
+++ b/gdb/testsuite/gdb.ada/array_of_symbolic_length/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_of_symbolic_length/gl.adb b/gdb/testsuite/gdb.ada/array_of_symbolic_length/gl.adb
index 3bae49f..02630c4 100644
--- a/gdb/testsuite/gdb.ada/array_of_symbolic_length/gl.adb
+++ b/gdb/testsuite/gdb.ada/array_of_symbolic_length/gl.adb
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_of_symbolic_length/gl.ads b/gdb/testsuite/gdb.ada/array_of_symbolic_length/gl.ads
index f014dbd..9f72e3e 100644
--- a/gdb/testsuite/gdb.ada/array_of_symbolic_length/gl.ads
+++ b/gdb/testsuite/gdb.ada/array_of_symbolic_length/gl.ads
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_of_symbolic_length/pck.adb b/gdb/testsuite/gdb.ada/array_of_symbolic_length/pck.adb
index 988c2ae..a38bb00 100644
--- a/gdb/testsuite/gdb.ada/array_of_symbolic_length/pck.adb
+++ b/gdb/testsuite/gdb.ada/array_of_symbolic_length/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_of_symbolic_length/pck.ads b/gdb/testsuite/gdb.ada/array_of_symbolic_length/pck.ads
index cca17df..bafc561 100644
--- a/gdb/testsuite/gdb.ada/array_of_symbolic_length/pck.ads
+++ b/gdb/testsuite/gdb.ada/array_of_symbolic_length/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_of_variable_length.exp b/gdb/testsuite/gdb.ada/array_of_variable_length.exp
index 3c68c80..fa05bd8 100644
--- a/gdb/testsuite/gdb.ada/array_of_variable_length.exp
+++ b/gdb/testsuite/gdb.ada/array_of_variable_length.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_of_variable_length/foo.adb b/gdb/testsuite/gdb.ada/array_of_variable_length/foo.adb
index 76ff073..51c88ed 100644
--- a/gdb/testsuite/gdb.ada/array_of_variable_length/foo.adb
+++ b/gdb/testsuite/gdb.ada/array_of_variable_length/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_of_variable_length/pck.adb b/gdb/testsuite/gdb.ada/array_of_variable_length/pck.adb
index 45c89c6..8ceb14f 100644
--- a/gdb/testsuite/gdb.ada/array_of_variable_length/pck.adb
+++ b/gdb/testsuite/gdb.ada/array_of_variable_length/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_of_variable_length/pck.ads b/gdb/testsuite/gdb.ada/array_of_variable_length/pck.ads
index f610821..681f712 100644
--- a/gdb/testsuite/gdb.ada/array_of_variable_length/pck.ads
+++ b/gdb/testsuite/gdb.ada/array_of_variable_length/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_of_variant.exp b/gdb/testsuite/gdb.ada/array_of_variant.exp
index 8b83f4e..7b35bb0 100644
--- a/gdb/testsuite/gdb.ada/array_of_variant.exp
+++ b/gdb/testsuite/gdb.ada/array_of_variant.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -20,7 +20,7 @@ require allow_ada_tests
standard_ada_testfile p
-set old_gcc [gnat_version_compare <= 7]
+set old_gcc [gnat_version_compare < 8]
proc gdb_test_with_xfail { cmd re re_xfail msg } {
global scenario old_gcc
diff --git a/gdb/testsuite/gdb.ada/array_of_variant/p.adb b/gdb/testsuite/gdb.ada/array_of_variant/p.adb
index 2a7c3a8..7aecd4c 100644
--- a/gdb/testsuite/gdb.ada/array_of_variant/p.adb
+++ b/gdb/testsuite/gdb.ada/array_of_variant/p.adb
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_of_variant/pck.adb b/gdb/testsuite/gdb.ada/array_of_variant/pck.adb
index fc4840e..95bd90a 100644
--- a/gdb/testsuite/gdb.ada/array_of_variant/pck.adb
+++ b/gdb/testsuite/gdb.ada/array_of_variant/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_of_variant/pck.ads b/gdb/testsuite/gdb.ada/array_of_variant/pck.ads
index 29ab6d6..66e61b5 100644
--- a/gdb/testsuite/gdb.ada/array_of_variant/pck.ads
+++ b/gdb/testsuite/gdb.ada/array_of_variant/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_ptr_renaming.exp b/gdb/testsuite/gdb.ada/array_ptr_renaming.exp
index eadfcb6..b33adf4 100644
--- a/gdb/testsuite/gdb.ada/array_ptr_renaming.exp
+++ b/gdb/testsuite/gdb.ada/array_ptr_renaming.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_ptr_renaming/foo.adb b/gdb/testsuite/gdb.ada/array_ptr_renaming/foo.adb
index 1ce2772..7639e22 100644
--- a/gdb/testsuite/gdb.ada/array_ptr_renaming/foo.adb
+++ b/gdb/testsuite/gdb.ada/array_ptr_renaming/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_ptr_renaming/pack.ads b/gdb/testsuite/gdb.ada/array_ptr_renaming/pack.ads
index a38878c..07ad545 100644
--- a/gdb/testsuite/gdb.ada/array_ptr_renaming/pack.ads
+++ b/gdb/testsuite/gdb.ada/array_ptr_renaming/pack.ads
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_return.exp b/gdb/testsuite/gdb.ada/array_return.exp
index d1fc2ac..903edf5 100644
--- a/gdb/testsuite/gdb.ada/array_return.exp
+++ b/gdb/testsuite/gdb.ada/array_return.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@ standard_ada_testfile p
set opts {}
lappend opts debug
-if { [have_fvar_tracking] } {
+if { [ada_fvar_tracking] } {
lappend opts "additional_flags=-fvar-tracking"
}
diff --git a/gdb/testsuite/gdb.ada/array_return/p.adb b/gdb/testsuite/gdb.ada/array_return/p.adb
index 4b7a55c..20b5d8c 100644
--- a/gdb/testsuite/gdb.ada/array_return/p.adb
+++ b/gdb/testsuite/gdb.ada/array_return/p.adb
@@ -1,4 +1,4 @@
--- Copyright 2006-2024 Free Software Foundation, Inc.
+-- Copyright 2006-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_return/pck.adb b/gdb/testsuite/gdb.ada/array_return/pck.adb
index c231770..db1d489 100644
--- a/gdb/testsuite/gdb.ada/array_return/pck.adb
+++ b/gdb/testsuite/gdb.ada/array_return/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2006-2024 Free Software Foundation, Inc.
+-- Copyright 2006-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_return/pck.ads b/gdb/testsuite/gdb.ada/array_return/pck.ads
index c16a6d7..45284aa 100644
--- a/gdb/testsuite/gdb.ada/array_return/pck.ads
+++ b/gdb/testsuite/gdb.ada/array_return/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2006-2024 Free Software Foundation, Inc.
+-- Copyright 2006-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_subscript_addr.exp b/gdb/testsuite/gdb.ada/array_subscript_addr.exp
index be6cc00..07b97a4 100644
--- a/gdb/testsuite/gdb.ada/array_subscript_addr.exp
+++ b/gdb/testsuite/gdb.ada/array_subscript_addr.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/array_subscript_addr/p.adb b/gdb/testsuite/gdb.ada/array_subscript_addr/p.adb
index 5bdee8d..057d7a0 100644
--- a/gdb/testsuite/gdb.ada/array_subscript_addr/p.adb
+++ b/gdb/testsuite/gdb.ada/array_subscript_addr/p.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
@@ -14,11 +14,12 @@
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
procedure P is
- type Table is array (1 .. 3) of Integer;
+ -- Make this large enough to force it into memory with gnat-llvm.
+ type Table is array (1 .. 15) of Integer;
function Create (I : Integer) return Table is
begin
- return (4 + I, 8 * I, 7 * I + 4);
+ return (4 + I, 8 * I, 7 * I + 4, others => 72);
end Create;
A : Table := Create (7);
diff --git a/gdb/testsuite/gdb.ada/arraydim.exp b/gdb/testsuite/gdb.ada/arraydim.exp
index 02339f2..037ed8a 100644
--- a/gdb/testsuite/gdb.ada/arraydim.exp
+++ b/gdb/testsuite/gdb.ada/arraydim.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arraydim/foo.adb b/gdb/testsuite/gdb.ada/arraydim/foo.adb
index 5338261..c0609fe 100644
--- a/gdb/testsuite/gdb.ada/arraydim/foo.adb
+++ b/gdb/testsuite/gdb.ada/arraydim/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arraydim/inc.c b/gdb/testsuite/gdb.ada/arraydim/inc.c
index a6b8926..498b891 100644
--- a/gdb/testsuite/gdb.ada/arraydim/inc.c
+++ b/gdb/testsuite/gdb.ada/arraydim/inc.c
@@ -1,4 +1,4 @@
-/* Copyright 2013-2024 Free Software Foundation, Inc.
+/* Copyright 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.ada/arraydim/pck.adb b/gdb/testsuite/gdb.ada/arraydim/pck.adb
index 6e8bda9..d05dba8 100644
--- a/gdb/testsuite/gdb.ada/arraydim/pck.adb
+++ b/gdb/testsuite/gdb.ada/arraydim/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arraydim/pck.ads b/gdb/testsuite/gdb.ada/arraydim/pck.ads
index c127246..cfa98d4 100644
--- a/gdb/testsuite/gdb.ada/arraydim/pck.ads
+++ b/gdb/testsuite/gdb.ada/arraydim/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arrayidx.exp b/gdb/testsuite/gdb.ada/arrayidx.exp
index bc76cd3..9481d28 100644
--- a/gdb/testsuite/gdb.ada/arrayidx.exp
+++ b/gdb/testsuite/gdb.ada/arrayidx.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arrayidx/p.adb b/gdb/testsuite/gdb.ada/arrayidx/p.adb
index 65fd9f9..aed36c9 100644
--- a/gdb/testsuite/gdb.ada/arrayidx/p.adb
+++ b/gdb/testsuite/gdb.ada/arrayidx/p.adb
@@ -1,4 +1,4 @@
--- Copyright 2005-2024 Free Software Foundation, Inc.
+-- Copyright 2005-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arrayparam.exp b/gdb/testsuite/gdb.ada/arrayparam.exp
index ef00037..f15e4c0 100644
--- a/gdb/testsuite/gdb.ada/arrayparam.exp
+++ b/gdb/testsuite/gdb.ada/arrayparam.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arrayparam/foo.adb b/gdb/testsuite/gdb.ada/arrayparam/foo.adb
index b69aad2..bdd2499 100644
--- a/gdb/testsuite/gdb.ada/arrayparam/foo.adb
+++ b/gdb/testsuite/gdb.ada/arrayparam/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arrayparam/pck.adb b/gdb/testsuite/gdb.ada/arrayparam/pck.adb
index dbb37aa..794ac34 100644
--- a/gdb/testsuite/gdb.ada/arrayparam/pck.adb
+++ b/gdb/testsuite/gdb.ada/arrayparam/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arrayparam/pck.ads b/gdb/testsuite/gdb.ada/arrayparam/pck.ads
index 64e63b9..af5c839 100644
--- a/gdb/testsuite/gdb.ada/arrayparam/pck.ads
+++ b/gdb/testsuite/gdb.ada/arrayparam/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arrayptr.exp b/gdb/testsuite/gdb.ada/arrayptr.exp
index b8c2eab..211d486 100644
--- a/gdb/testsuite/gdb.ada/arrayptr.exp
+++ b/gdb/testsuite/gdb.ada/arrayptr.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -33,14 +33,15 @@ foreach_gnat_encoding scenario flags {all minimal} {
return
}
+ # Accept "foo." prefix for older versions of GNAT.
gdb_test "print string_p" \
- "= \\(foo\\.string_access\\) 0x\[0-9a-zA-Z\]+"
+ "= \\((foo\\.)?string_access\\) 0x\[0-9a-zA-Z\]+"
gdb_test "print string_p(3..4)" "= \"ll\""
- gdb_test "print null_string" "= \\(foo\\.string_access\\) 0x0"
+ gdb_test "print null_string" "= \\((foo\\.)?string_access\\) 0x0"
- gdb_test "print arr_ptr" "= \\(access foo\\.little_array\\) 0x\[0-9a-zA-Z\]+"
+ gdb_test "print arr_ptr" "= \\(access (foo\\.)?little_array\\) 0x\[0-9a-zA-Z\]+"
gdb_test "print arr_ptr(2)" "= 22"
diff --git a/gdb/testsuite/gdb.ada/arrayptr/foo.adb b/gdb/testsuite/gdb.ada/arrayptr/foo.adb
index 0dbc712..6959059 100644
--- a/gdb/testsuite/gdb.ada/arrayptr/foo.adb
+++ b/gdb/testsuite/gdb.ada/arrayptr/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arrayptr/pck.adb b/gdb/testsuite/gdb.ada/arrayptr/pck.adb
index 3425f21..4c32dd5 100644
--- a/gdb/testsuite/gdb.ada/arrayptr/pck.adb
+++ b/gdb/testsuite/gdb.ada/arrayptr/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/arrayptr/pck.ads b/gdb/testsuite/gdb.ada/arrayptr/pck.ads
index a1523f1..58305f0 100644
--- a/gdb/testsuite/gdb.ada/arrayptr/pck.ads
+++ b/gdb/testsuite/gdb.ada/arrayptr/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/assign_1.exp b/gdb/testsuite/gdb.ada/assign_1.exp
index 839af8f..622fa96 100644
--- a/gdb/testsuite/gdb.ada/assign_1.exp
+++ b/gdb/testsuite/gdb.ada/assign_1.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/assign_arr.exp b/gdb/testsuite/gdb.ada/assign_arr.exp
index ec0227f..4954188 100644
--- a/gdb/testsuite/gdb.ada/assign_arr.exp
+++ b/gdb/testsuite/gdb.ada/assign_arr.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/assign_arr/main_p324_051.adb b/gdb/testsuite/gdb.ada/assign_arr/main_p324_051.adb
index 641a628..c3737b1 100644
--- a/gdb/testsuite/gdb.ada/assign_arr/main_p324_051.adb
+++ b/gdb/testsuite/gdb.ada/assign_arr/main_p324_051.adb
@@ -1,4 +1,4 @@
--- Copyright 2016-2024 Free Software Foundation, Inc.
+-- Copyright 2016-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/assign_arr/target_wrapper.adb b/gdb/testsuite/gdb.ada/assign_arr/target_wrapper.adb
index 092ff88..8d030d9 100644
--- a/gdb/testsuite/gdb.ada/assign_arr/target_wrapper.adb
+++ b/gdb/testsuite/gdb.ada/assign_arr/target_wrapper.adb
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/assign_arr/target_wrapper.ads b/gdb/testsuite/gdb.ada/assign_arr/target_wrapper.ads
index 71dbf9a..3c925e6 100644
--- a/gdb/testsuite/gdb.ada/assign_arr/target_wrapper.ads
+++ b/gdb/testsuite/gdb.ada/assign_arr/target_wrapper.ads
@@ -1,4 +1,4 @@
--- Copyright 2016-2024 Free Software Foundation, Inc.
+-- Copyright 2016-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/assoc.exp b/gdb/testsuite/gdb.ada/assoc.exp
index 03f25c6..f7dba3d 100644
--- a/gdb/testsuite/gdb.ada/assoc.exp
+++ b/gdb/testsuite/gdb.ada/assoc.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/assoc/main.adb b/gdb/testsuite/gdb.ada/assoc/main.adb
index 2e05b2a..f8779e6 100644
--- a/gdb/testsuite/gdb.ada/assoc/main.adb
+++ b/gdb/testsuite/gdb.ada/assoc/main.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/assoc/pck.ads b/gdb/testsuite/gdb.ada/assoc/pck.ads
index 395705b..e8579d6 100644
--- a/gdb/testsuite/gdb.ada/assoc/pck.ads
+++ b/gdb/testsuite/gdb.ada/assoc/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/assoc/xtra.adb b/gdb/testsuite/gdb.ada/assoc/xtra.adb
index a72d76f..29309de 100644
--- a/gdb/testsuite/gdb.ada/assoc/xtra.adb
+++ b/gdb/testsuite/gdb.ada/assoc/xtra.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/assoc/xtra.ads b/gdb/testsuite/gdb.ada/assoc/xtra.ads
index 94b39ab..2858e20 100644
--- a/gdb/testsuite/gdb.ada/assoc/xtra.ads
+++ b/gdb/testsuite/gdb.ada/assoc/xtra.ads
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/atomic_enum.exp b/gdb/testsuite/gdb.ada/atomic_enum.exp
index fbfaf5c..f7d764d 100644
--- a/gdb/testsuite/gdb.ada/atomic_enum.exp
+++ b/gdb/testsuite/gdb.ada/atomic_enum.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/atomic_enum/foo.adb b/gdb/testsuite/gdb.ada/atomic_enum/foo.adb
index 77b491b..8753675 100644
--- a/gdb/testsuite/gdb.ada/atomic_enum/foo.adb
+++ b/gdb/testsuite/gdb.ada/atomic_enum/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/atomic_enum/pck.adb b/gdb/testsuite/gdb.ada/atomic_enum/pck.adb
index d39327f..5d9e042 100644
--- a/gdb/testsuite/gdb.ada/atomic_enum/pck.adb
+++ b/gdb/testsuite/gdb.ada/atomic_enum/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/atomic_enum/pck.ads b/gdb/testsuite/gdb.ada/atomic_enum/pck.ads
index a427f73..e450d65 100644
--- a/gdb/testsuite/gdb.ada/atomic_enum/pck.ads
+++ b/gdb/testsuite/gdb.ada/atomic_enum/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/attr_ref_and_charlit.exp b/gdb/testsuite/gdb.ada/attr_ref_and_charlit.exp
index 27f31b5..3d0459a 100644
--- a/gdb/testsuite/gdb.ada/attr_ref_and_charlit.exp
+++ b/gdb/testsuite/gdb.ada/attr_ref_and_charlit.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/attr_ref_and_charlit/foo.adb b/gdb/testsuite/gdb.ada/attr_ref_and_charlit/foo.adb
index f09acf3..1ed7f40 100644
--- a/gdb/testsuite/gdb.ada/attr_ref_and_charlit/foo.adb
+++ b/gdb/testsuite/gdb.ada/attr_ref_and_charlit/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ax-ada.exp b/gdb/testsuite/gdb.ada/ax-ada.exp
index 3c78801..a824815 100644
--- a/gdb/testsuite/gdb.ada/ax-ada.exp
+++ b/gdb/testsuite/gdb.ada/ax-ada.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ax-ada/prog.adb b/gdb/testsuite/gdb.ada/ax-ada/prog.adb
index 577a205..f963420 100644
--- a/gdb/testsuite/gdb.ada/ax-ada/prog.adb
+++ b/gdb/testsuite/gdb.ada/ax-ada/prog.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bad-task-bp-keyword.exp b/gdb/testsuite/gdb.ada/bad-task-bp-keyword.exp
index 42e1284..c452b15 100644
--- a/gdb/testsuite/gdb.ada/bad-task-bp-keyword.exp
+++ b/gdb/testsuite/gdb.ada/bad-task-bp-keyword.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bad-task-bp-keyword/foo.adb b/gdb/testsuite/gdb.ada/bad-task-bp-keyword/foo.adb
index a320f2b..f9e4993 100644
--- a/gdb/testsuite/gdb.ada/bad-task-bp-keyword/foo.adb
+++ b/gdb/testsuite/gdb.ada/bad-task-bp-keyword/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2009-2024 Free Software Foundation, Inc.
+-- Copyright 2009-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bias.exp b/gdb/testsuite/gdb.ada/bias.exp
index 1b8b917..4f83037 100644
--- a/gdb/testsuite/gdb.ada/bias.exp
+++ b/gdb/testsuite/gdb.ada/bias.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -19,9 +19,13 @@ require allow_ada_tests
standard_ada_testfile bias
-if {[gdb_compile_ada "${srcfile}" "${binfile}" executable \
- {debug additional_flags=-fgnat-encodings=minimal}] != "" } {
- return -1
+set flags {debug}
+if {[ada_minimal_encodings]} {
+ lappend flags additional_flags=-fgnat-encodings=minimal
+}
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable $flags] != ""} {
+ return -1
}
clean_restart ${testfile}
diff --git a/gdb/testsuite/gdb.ada/bias/bias.adb b/gdb/testsuite/gdb.ada/bias/bias.adb
index 5264eb0..b193189 100644
--- a/gdb/testsuite/gdb.ada/bias/bias.adb
+++ b/gdb/testsuite/gdb.ada/bias/bias.adb
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bias/pck.adb b/gdb/testsuite/gdb.ada/bias/pck.adb
index 6a23d01..a1dfce0 100644
--- a/gdb/testsuite/gdb.ada/bias/pck.adb
+++ b/gdb/testsuite/gdb.ada/bias/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bias/pck.ads b/gdb/testsuite/gdb.ada/bias/pck.ads
index 7e964b5..7a96fea 100644
--- a/gdb/testsuite/gdb.ada/bias/pck.ads
+++ b/gdb/testsuite/gdb.ada/bias/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/big_packed_array.exp b/gdb/testsuite/gdb.ada/big_packed_array.exp
index 6f030f3..b1566af 100644
--- a/gdb/testsuite/gdb.ada/big_packed_array.exp
+++ b/gdb/testsuite/gdb.ada/big_packed_array.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/big_packed_array/foo_ra24_010.adb b/gdb/testsuite/gdb.ada/big_packed_array/foo_ra24_010.adb
index da184fa..53b55c6 100644
--- a/gdb/testsuite/gdb.ada/big_packed_array/foo_ra24_010.adb
+++ b/gdb/testsuite/gdb.ada/big_packed_array/foo_ra24_010.adb
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/big_packed_array/pck.adb b/gdb/testsuite/gdb.ada/big_packed_array/pck.adb
index 64f765d..34162db 100644
--- a/gdb/testsuite/gdb.ada/big_packed_array/pck.adb
+++ b/gdb/testsuite/gdb.ada/big_packed_array/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/big_packed_array/pck.ads b/gdb/testsuite/gdb.ada/big_packed_array/pck.ads
index 3fe382a..baf731d 100644
--- a/gdb/testsuite/gdb.ada/big_packed_array/pck.ads
+++ b/gdb/testsuite/gdb.ada/big_packed_array/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/boolean_expr.exp b/gdb/testsuite/gdb.ada/boolean_expr.exp
index 0b104b5..de6cc4c 100644
--- a/gdb/testsuite/gdb.ada/boolean_expr.exp
+++ b/gdb/testsuite/gdb.ada/boolean_expr.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_c_mixed_case.exp b/gdb/testsuite/gdb.ada/bp_c_mixed_case.exp
index 2286e46..4231287 100644
--- a/gdb/testsuite/gdb.ada/bp_c_mixed_case.exp
+++ b/gdb/testsuite/gdb.ada/bp_c_mixed_case.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_c_mixed_case/bar.c b/gdb/testsuite/gdb.ada/bp_c_mixed_case/bar.c
index f91eb12..55ec6b5 100644
--- a/gdb/testsuite/gdb.ada/bp_c_mixed_case/bar.c
+++ b/gdb/testsuite/gdb.ada/bp_c_mixed_case/bar.c
@@ -1,4 +1,4 @@
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.ada/bp_c_mixed_case/foo_h731_021.adb b/gdb/testsuite/gdb.ada/bp_c_mixed_case/foo_h731_021.adb
index 8b4368e..d948498 100644
--- a/gdb/testsuite/gdb.ada/bp_c_mixed_case/foo_h731_021.adb
+++ b/gdb/testsuite/gdb.ada/bp_c_mixed_case/foo_h731_021.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_c_mixed_case/qux.c b/gdb/testsuite/gdb.ada/bp_c_mixed_case/qux.c
index 0ad7ae9..b353448 100644
--- a/gdb/testsuite/gdb.ada/bp_c_mixed_case/qux.c
+++ b/gdb/testsuite/gdb.ada/bp_c_mixed_case/qux.c
@@ -1,4 +1,4 @@
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.ada/bp_enum_homonym.exp b/gdb/testsuite/gdb.ada/bp_enum_homonym.exp
index dc9f96a..de826bd 100644
--- a/gdb/testsuite/gdb.ada/bp_enum_homonym.exp
+++ b/gdb/testsuite/gdb.ada/bp_enum_homonym.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_enum_homonym/p.adb b/gdb/testsuite/gdb.ada/bp_enum_homonym/p.adb
index 74c873d..84cb697 100644
--- a/gdb/testsuite/gdb.ada/bp_enum_homonym/p.adb
+++ b/gdb/testsuite/gdb.ada/bp_enum_homonym/p.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_enum_homonym/pck.adb b/gdb/testsuite/gdb.ada/bp_enum_homonym/pck.adb
index 1b5afab..6ae3fb0 100644
--- a/gdb/testsuite/gdb.ada/bp_enum_homonym/pck.adb
+++ b/gdb/testsuite/gdb.ada/bp_enum_homonym/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_enum_homonym/pck.ads b/gdb/testsuite/gdb.ada/bp_enum_homonym/pck.ads
index 471db68..2f2a7ba 100644
--- a/gdb/testsuite/gdb.ada/bp_enum_homonym/pck.ads
+++ b/gdb/testsuite/gdb.ada/bp_enum_homonym/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_fun_addr.exp b/gdb/testsuite/gdb.ada/bp_fun_addr.exp
index 909907d..46f9d52 100644
--- a/gdb/testsuite/gdb.ada/bp_fun_addr.exp
+++ b/gdb/testsuite/gdb.ada/bp_fun_addr.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_fun_addr/bp_fun_addr.adb b/gdb/testsuite/gdb.ada/bp_fun_addr/bp_fun_addr.adb
index 38f0bc8..fa6a50e 100644
--- a/gdb/testsuite/gdb.ada/bp_fun_addr/bp_fun_addr.adb
+++ b/gdb/testsuite/gdb.ada/bp_fun_addr/bp_fun_addr.adb
@@ -1,4 +1,4 @@
--- Copyright 2016-2024 Free Software Foundation, Inc.
+-- Copyright 2016-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_inlined_func.exp b/gdb/testsuite/gdb.ada/bp_inlined_func.exp
index db56a11..04cf755 100644
--- a/gdb/testsuite/gdb.ada/bp_inlined_func.exp
+++ b/gdb/testsuite/gdb.ada/bp_inlined_func.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -41,8 +41,10 @@ gdb_test "break read_small" \
for {set i 0} {$i < 4} {incr i} {
with_test_prefix "iteration $i" {
+ # gnat-llvm may emit a call to an out-of-line copy, so allow
+ # for this here.
gdb_test "continue" \
- "Breakpoint $bkptno_num_re, b\\.read_small \\(\\).*" \
+ "Breakpoint $bkptno_num_re, ($hex in )?b\\.read_small \\(\\).*" \
"stopped in read_small"
}
}
diff --git a/gdb/testsuite/gdb.ada/bp_inlined_func/b.adb b/gdb/testsuite/gdb.ada/bp_inlined_func/b.adb
index 172581b..0343515 100644
--- a/gdb/testsuite/gdb.ada/bp_inlined_func/b.adb
+++ b/gdb/testsuite/gdb.ada/bp_inlined_func/b.adb
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_inlined_func/b.ads b/gdb/testsuite/gdb.ada/bp_inlined_func/b.ads
index 64dc4d8..2e93297 100644
--- a/gdb/testsuite/gdb.ada/bp_inlined_func/b.ads
+++ b/gdb/testsuite/gdb.ada/bp_inlined_func/b.ads
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_inlined_func/c.adb b/gdb/testsuite/gdb.ada/bp_inlined_func/c.adb
index d1e82d6..55b9b3f 100644
--- a/gdb/testsuite/gdb.ada/bp_inlined_func/c.adb
+++ b/gdb/testsuite/gdb.ada/bp_inlined_func/c.adb
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_inlined_func/c.ads b/gdb/testsuite/gdb.ada/bp_inlined_func/c.ads
index 48d0dff..b8e7d2a 100644
--- a/gdb/testsuite/gdb.ada/bp_inlined_func/c.ads
+++ b/gdb/testsuite/gdb.ada/bp_inlined_func/c.ads
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_inlined_func/foo.adb b/gdb/testsuite/gdb.ada/bp_inlined_func/foo.adb
index 4a263fa..891bcd3 100644
--- a/gdb/testsuite/gdb.ada/bp_inlined_func/foo.adb
+++ b/gdb/testsuite/gdb.ada/bp_inlined_func/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_on_var.exp b/gdb/testsuite/gdb.ada/bp_on_var.exp
index c402874..e540a92 100644
--- a/gdb/testsuite/gdb.ada/bp_on_var.exp
+++ b/gdb/testsuite/gdb.ada/bp_on_var.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_on_var/foo.adb b/gdb/testsuite/gdb.ada/bp_on_var/foo.adb
index 359027b..ce3a94f 100644
--- a/gdb/testsuite/gdb.ada/bp_on_var/foo.adb
+++ b/gdb/testsuite/gdb.ada/bp_on_var/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_on_var/pck.adb b/gdb/testsuite/gdb.ada/bp_on_var/pck.adb
index c3edc8b..2371a1f 100644
--- a/gdb/testsuite/gdb.ada/bp_on_var/pck.adb
+++ b/gdb/testsuite/gdb.ada/bp_on_var/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_on_var/pck.ads b/gdb/testsuite/gdb.ada/bp_on_var/pck.ads
index dbbae20..979207a 100644
--- a/gdb/testsuite/gdb.ada/bp_on_var/pck.ads
+++ b/gdb/testsuite/gdb.ada/bp_on_var/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_range_type.exp b/gdb/testsuite/gdb.ada/bp_range_type.exp
index 2682946..704b714 100644
--- a/gdb/testsuite/gdb.ada/bp_range_type.exp
+++ b/gdb/testsuite/gdb.ada/bp_range_type.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_range_type/foo.adb b/gdb/testsuite/gdb.ada/bp_range_type/foo.adb
index 4ede2a9..22ba15f 100644
--- a/gdb/testsuite/gdb.ada/bp_range_type/foo.adb
+++ b/gdb/testsuite/gdb.ada/bp_range_type/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_range_type/pck.adb b/gdb/testsuite/gdb.ada/bp_range_type/pck.adb
index a64c5e9..54ddf5c 100644
--- a/gdb/testsuite/gdb.ada/bp_range_type/pck.adb
+++ b/gdb/testsuite/gdb.ada/bp_range_type/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_range_type/pck.ads b/gdb/testsuite/gdb.ada/bp_range_type/pck.ads
index bd9fd43..db7c0a8 100644
--- a/gdb/testsuite/gdb.ada/bp_range_type/pck.ads
+++ b/gdb/testsuite/gdb.ada/bp_range_type/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_reset.exp b/gdb/testsuite/gdb.ada/bp_reset.exp
index 440784f..8d84061 100644
--- a/gdb/testsuite/gdb.ada/bp_reset.exp
+++ b/gdb/testsuite/gdb.ada/bp_reset.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_reset/foo.adb b/gdb/testsuite/gdb.ada/bp_reset/foo.adb
index 3586f51..e5dd868 100644
--- a/gdb/testsuite/gdb.ada/bp_reset/foo.adb
+++ b/gdb/testsuite/gdb.ada/bp_reset/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_reset/io.adb b/gdb/testsuite/gdb.ada/bp_reset/io.adb
index 8455067..708965b 100644
--- a/gdb/testsuite/gdb.ada/bp_reset/io.adb
+++ b/gdb/testsuite/gdb.ada/bp_reset/io.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_reset/io.ads b/gdb/testsuite/gdb.ada/bp_reset/io.ads
index e8482ea..a1a8b2b 100644
--- a/gdb/testsuite/gdb.ada/bp_reset/io.ads
+++ b/gdb/testsuite/gdb.ada/bp_reset/io.ads
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_reset/pck.adb b/gdb/testsuite/gdb.ada/bp_reset/pck.adb
index a3f3e8c..9c0e376 100644
--- a/gdb/testsuite/gdb.ada/bp_reset/pck.adb
+++ b/gdb/testsuite/gdb.ada/bp_reset/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/bp_reset/pck.ads b/gdb/testsuite/gdb.ada/bp_reset/pck.ads
index 19dc2ba..1c6f93f 100644
--- a/gdb/testsuite/gdb.ada/bp_reset/pck.ads
+++ b/gdb/testsuite/gdb.ada/bp_reset/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/break-label.exp b/gdb/testsuite/gdb.ada/break-label.exp
index 23a593f..c30903c 100644
--- a/gdb/testsuite/gdb.ada/break-label.exp
+++ b/gdb/testsuite/gdb.ada/break-label.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/break-label/pck.adb b/gdb/testsuite/gdb.ada/break-label/pck.adb
index 3a9936d..6021faf 100644
--- a/gdb/testsuite/gdb.ada/break-label/pck.adb
+++ b/gdb/testsuite/gdb.ada/break-label/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/break-label/pck.ads b/gdb/testsuite/gdb.ada/break-label/pck.ads
index 504c911..f04f378 100644
--- a/gdb/testsuite/gdb.ada/break-label/pck.ads
+++ b/gdb/testsuite/gdb.ada/break-label/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/break-label/proc.adb b/gdb/testsuite/gdb.ada/break-label/proc.adb
index e1c6157..60b3c47 100644
--- a/gdb/testsuite/gdb.ada/break-label/proc.adb
+++ b/gdb/testsuite/gdb.ada/break-label/proc.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/byte_packed_arr.exp b/gdb/testsuite/gdb.ada/byte_packed_arr.exp
index cc7c655..e240ffd 100644
--- a/gdb/testsuite/gdb.ada/byte_packed_arr.exp
+++ b/gdb/testsuite/gdb.ada/byte_packed_arr.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/byte_packed_arr/array_list_g.ads b/gdb/testsuite/gdb.ada/byte_packed_arr/array_list_g.ads
index cb53a71..6352159 100644
--- a/gdb/testsuite/gdb.ada/byte_packed_arr/array_list_g.ads
+++ b/gdb/testsuite/gdb.ada/byte_packed_arr/array_list_g.ads
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/byte_packed_arr/reprod.adb b/gdb/testsuite/gdb.ada/byte_packed_arr/reprod.adb
index 83ce5b5..c086284 100644
--- a/gdb/testsuite/gdb.ada/byte_packed_arr/reprod.adb
+++ b/gdb/testsuite/gdb.ada/byte_packed_arr/reprod.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/byte_packed_arr/reprod.ads b/gdb/testsuite/gdb.ada/byte_packed_arr/reprod.ads
index 3537afa..fe5efbf 100644
--- a/gdb/testsuite/gdb.ada/byte_packed_arr/reprod.ads
+++ b/gdb/testsuite/gdb.ada/byte_packed_arr/reprod.ads
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/byte_packed_arr/reprod_main.adb b/gdb/testsuite/gdb.ada/byte_packed_arr/reprod_main.adb
index d628b13..a5bee32 100644
--- a/gdb/testsuite/gdb.ada/byte_packed_arr/reprod_main.adb
+++ b/gdb/testsuite/gdb.ada/byte_packed_arr/reprod_main.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/call-no-debug.exp b/gdb/testsuite/gdb.ada/call-no-debug.exp
index 58a3d55..30e605a 100644
--- a/gdb/testsuite/gdb.ada/call-no-debug.exp
+++ b/gdb/testsuite/gdb.ada/call-no-debug.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/call-no-debug/pck.adb b/gdb/testsuite/gdb.ada/call-no-debug/pck.adb
index df9c73f..c4fb54d 100644
--- a/gdb/testsuite/gdb.ada/call-no-debug/pck.adb
+++ b/gdb/testsuite/gdb.ada/call-no-debug/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/call-no-debug/pck.ads b/gdb/testsuite/gdb.ada/call-no-debug/pck.ads
index 97f0c22..f7e42f8 100644
--- a/gdb/testsuite/gdb.ada/call-no-debug/pck.ads
+++ b/gdb/testsuite/gdb.ada/call-no-debug/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/call-no-debug/prog.adb b/gdb/testsuite/gdb.ada/call-no-debug/prog.adb
index 60aa32d..87604d2 100644
--- a/gdb/testsuite/gdb.ada/call-no-debug/prog.adb
+++ b/gdb/testsuite/gdb.ada/call-no-debug/prog.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/call_pn.exp b/gdb/testsuite/gdb.ada/call_pn.exp
index 9114d30..7e01523 100644
--- a/gdb/testsuite/gdb.ada/call_pn.exp
+++ b/gdb/testsuite/gdb.ada/call_pn.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/call_pn/foo.adb b/gdb/testsuite/gdb.ada/call_pn/foo.adb
index fceff8f..7923732 100644
--- a/gdb/testsuite/gdb.ada/call_pn/foo.adb
+++ b/gdb/testsuite/gdb.ada/call_pn/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2010-2024 Free Software Foundation, Inc.
+-- Copyright 2010-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/call_pn/pck.adb b/gdb/testsuite/gdb.ada/call_pn/pck.adb
index 6624c97..6604aea 100644
--- a/gdb/testsuite/gdb.ada/call_pn/pck.adb
+++ b/gdb/testsuite/gdb.ada/call_pn/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2010-2024 Free Software Foundation, Inc.
+-- Copyright 2010-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/call_pn/pck.ads b/gdb/testsuite/gdb.ada/call_pn/pck.ads
index 5d73127..f1cc9c2 100644
--- a/gdb/testsuite/gdb.ada/call_pn/pck.ads
+++ b/gdb/testsuite/gdb.ada/call_pn/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2010-2024 Free Software Foundation, Inc.
+-- Copyright 2010-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/catch_assert_if.exp b/gdb/testsuite/gdb.ada/catch_assert_if.exp
index 48b1c85..9e63c17 100644
--- a/gdb/testsuite/gdb.ada/catch_assert_if.exp
+++ b/gdb/testsuite/gdb.ada/catch_assert_if.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/catch_assert_if/bla.adb b/gdb/testsuite/gdb.ada/catch_assert_if/bla.adb
index c0cc04b..d862b9b 100644
--- a/gdb/testsuite/gdb.ada/catch_assert_if/bla.adb
+++ b/gdb/testsuite/gdb.ada/catch_assert_if/bla.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/catch_assert_if/pck.ads b/gdb/testsuite/gdb.ada/catch_assert_if/pck.ads
index e74feaa..62409d5 100644
--- a/gdb/testsuite/gdb.ada/catch_assert_if/pck.ads
+++ b/gdb/testsuite/gdb.ada/catch_assert_if/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/catch_ex.exp b/gdb/testsuite/gdb.ada/catch_ex.exp
index 48ace25..6b57735 100644
--- a/gdb/testsuite/gdb.ada/catch_ex.exp
+++ b/gdb/testsuite/gdb.ada/catch_ex.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/catch_ex/foo.adb b/gdb/testsuite/gdb.ada/catch_ex/foo.adb
index 34b9f68..25c545e 100644
--- a/gdb/testsuite/gdb.ada/catch_ex/foo.adb
+++ b/gdb/testsuite/gdb.ada/catch_ex/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/catch_ex_std.exp b/gdb/testsuite/gdb.ada/catch_ex_std.exp
index 2eae854..8326395 100644
--- a/gdb/testsuite/gdb.ada/catch_ex_std.exp
+++ b/gdb/testsuite/gdb.ada/catch_ex_std.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/catch_ex_std/foo.adb b/gdb/testsuite/gdb.ada/catch_ex_std/foo.adb
index 20fa1f0..273fe49 100644
--- a/gdb/testsuite/gdb.ada/catch_ex_std/foo.adb
+++ b/gdb/testsuite/gdb.ada/catch_ex_std/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/catch_ex_std/some_package.adb b/gdb/testsuite/gdb.ada/catch_ex_std/some_package.adb
index 9609f83..f708d41 100644
--- a/gdb/testsuite/gdb.ada/catch_ex_std/some_package.adb
+++ b/gdb/testsuite/gdb.ada/catch_ex_std/some_package.adb
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/catch_ex_std/some_package.ads b/gdb/testsuite/gdb.ada/catch_ex_std/some_package.ads
index c24a67b..fe79a98 100644
--- a/gdb/testsuite/gdb.ada/catch_ex_std/some_package.ads
+++ b/gdb/testsuite/gdb.ada/catch_ex_std/some_package.ads
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/char_enum.exp b/gdb/testsuite/gdb.ada/char_enum.exp
index 5be041c..8757a10 100644
--- a/gdb/testsuite/gdb.ada/char_enum.exp
+++ b/gdb/testsuite/gdb.ada/char_enum.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/char_enum/foo.adb b/gdb/testsuite/gdb.ada/char_enum/foo.adb
index 8919bda..9a9c4a2 100644
--- a/gdb/testsuite/gdb.ada/char_enum/foo.adb
+++ b/gdb/testsuite/gdb.ada/char_enum/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/char_enum/pck.adb b/gdb/testsuite/gdb.ada/char_enum/pck.adb
index de1eb7e..fc67d2f 100644
--- a/gdb/testsuite/gdb.ada/char_enum/pck.adb
+++ b/gdb/testsuite/gdb.ada/char_enum/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/char_enum/pck.ads b/gdb/testsuite/gdb.ada/char_enum/pck.ads
index 3adab44..0293c79 100644
--- a/gdb/testsuite/gdb.ada/char_enum/pck.ads
+++ b/gdb/testsuite/gdb.ada/char_enum/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/char_enum_overload.exp b/gdb/testsuite/gdb.ada/char_enum_overload.exp
index 01b57c4..1ab8e9e 100644
--- a/gdb/testsuite/gdb.ada/char_enum_overload.exp
+++ b/gdb/testsuite/gdb.ada/char_enum_overload.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/char_enum_overload/foo.adb b/gdb/testsuite/gdb.ada/char_enum_overload/foo.adb
index 5fba5f2..4c516b0 100644
--- a/gdb/testsuite/gdb.ada/char_enum_overload/foo.adb
+++ b/gdb/testsuite/gdb.ada/char_enum_overload/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/char_enum_overload/pck.adb b/gdb/testsuite/gdb.ada/char_enum_overload/pck.adb
index f133ab1..56953b1 100644
--- a/gdb/testsuite/gdb.ada/char_enum_overload/pck.adb
+++ b/gdb/testsuite/gdb.ada/char_enum_overload/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/char_enum_overload/pck.ads b/gdb/testsuite/gdb.ada/char_enum_overload/pck.ads
index 4925378..2abe5eb 100644
--- a/gdb/testsuite/gdb.ada/char_enum_overload/pck.ads
+++ b/gdb/testsuite/gdb.ada/char_enum_overload/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/char_enum_unicode.exp b/gdb/testsuite/gdb.ada/char_enum_unicode.exp
index 17ee9a9..838bae0 100644
--- a/gdb/testsuite/gdb.ada/char_enum_unicode.exp
+++ b/gdb/testsuite/gdb.ada/char_enum_unicode.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/char_enum_unicode/foo.adb b/gdb/testsuite/gdb.ada/char_enum_unicode/foo.adb
index fd7088c..4440f2e 100644
--- a/gdb/testsuite/gdb.ada/char_enum_unicode/foo.adb
+++ b/gdb/testsuite/gdb.ada/char_enum_unicode/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/char_enum_unicode/pck.adb b/gdb/testsuite/gdb.ada/char_enum_unicode/pck.adb
index 2822e77..2bfbe8c 100644
--- a/gdb/testsuite/gdb.ada/char_enum_unicode/pck.adb
+++ b/gdb/testsuite/gdb.ada/char_enum_unicode/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/char_enum_unicode/pck.ads b/gdb/testsuite/gdb.ada/char_enum_unicode/pck.ads
index d6d3d88..9002c74 100644
--- a/gdb/testsuite/gdb.ada/char_enum_unicode/pck.ads
+++ b/gdb/testsuite/gdb.ada/char_enum_unicode/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/char_param.exp b/gdb/testsuite/gdb.ada/char_param.exp
index 6b67c62..fe19a83 100644
--- a/gdb/testsuite/gdb.ada/char_param.exp
+++ b/gdb/testsuite/gdb.ada/char_param.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/char_param/foo.adb b/gdb/testsuite/gdb.ada/char_param/foo.adb
index fd86552..b1e4bfd 100644
--- a/gdb/testsuite/gdb.ada/char_param/foo.adb
+++ b/gdb/testsuite/gdb.ada/char_param/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/char_param/pck.adb b/gdb/testsuite/gdb.ada/char_param/pck.adb
index 92458e6..241f9d7 100644
--- a/gdb/testsuite/gdb.ada/char_param/pck.adb
+++ b/gdb/testsuite/gdb.ada/char_param/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/char_param/pck.ads b/gdb/testsuite/gdb.ada/char_param/pck.ads
index 476c583..4caa285 100644
--- a/gdb/testsuite/gdb.ada/char_param/pck.ads
+++ b/gdb/testsuite/gdb.ada/char_param/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/complete.exp b/gdb/testsuite/gdb.ada/complete.exp
index 6263c4e..c8fcc47 100644
--- a/gdb/testsuite/gdb.ada/complete.exp
+++ b/gdb/testsuite/gdb.ada/complete.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -30,6 +30,17 @@ runto "foo.adb:$bp_location"
set eol "\r\n"
+# Like multi_line, but if a line is optional (like "(mumble)?"), then
+# insert the \r\n into the optional part.
+proc multi_line_with_optional {args} {
+ set result ""
+ foreach line $args {
+ append result [regsub -- "(\\)\\?)?$" $line "\r\n\\1"]
+ }
+ # Remove the final \r\n.
+ return [string range $result 0 end-2]
+}
+
# A convenience function that verifies that the "complete EXPR" command
# returns the EXPECTED_OUTPUT.
@@ -155,29 +166,35 @@ test_gdb_complete "external_ident" \
# Complete on the name of package.
test_gdb_complete "pck" \
- [multi_line "(p pck\\.ad\[sb\])?" \
- "(p pck\\.ad\[sb\])?" \
- "p pck.ambiguous_func" \
- "p pck.external_identical_one" \
- "p pck.inner.inside_variable" \
- "p pck.internal_capitalized" \
- "p pck.local_identical_one" \
- "p pck.local_identical_two" \
- "p pck.my_global_variable" \
- "p pck.proc" ]
+ [multi_line_with_optional \
+ "(p pck)?" \
+ "(p pck\\.ad\[sb\])?" \
+ "(p pck\\.ad\[sb\])?" \
+ "p pck.ambiguous_func" \
+ "p pck.external_identical_one" \
+ "(p pck.inner)?" \
+ "p pck.inner.inside_variable" \
+ "p pck.internal_capitalized" \
+ "p pck.local_identical_one" \
+ "p pck.local_identical_two" \
+ "p pck.my_global_variable" \
+ "p pck.proc" ]
# Complete on the name of a package followed by a dot:
test_gdb_complete "pck." \
- [multi_line "(p pck\\.ad\[sb\])?" \
- "(p pck\\.ad\[sb\])?" \
- "p pck.ambiguous_func" \
- "p pck.external_identical_one" \
- "p pck.inner.inside_variable" \
- "p pck.internal_capitalized" \
- "p pck.local_identical_one" \
- "p pck.local_identical_two" \
- "p pck.my_global_variable" \
- "p pck.proc" ]
+ [multi_line_with_optional \
+ "(p pck\\.)?" \
+ "(p pck\\.ad\[sb\])?" \
+ "(p pck\\.ad\[sb\])?" \
+ "p pck.ambiguous_func" \
+ "p pck.external_identical_one" \
+ "(p pck.inner)?" \
+ "p pck.inner.inside_variable" \
+ "p pck.internal_capitalized" \
+ "p pck.local_identical_one" \
+ "p pck.local_identical_two" \
+ "p pck.my_global_variable" \
+ "p pck.proc" ]
# Complete a mangled symbol name, but using the '<...>' notation.
test_gdb_complete "<pck__my" \
diff --git a/gdb/testsuite/gdb.ada/complete/aux_pck.adb b/gdb/testsuite/gdb.ada/complete/aux_pck.adb
index 94481c0..eccde67 100644
--- a/gdb/testsuite/gdb.ada/complete/aux_pck.adb
+++ b/gdb/testsuite/gdb.ada/complete/aux_pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/complete/aux_pck.ads b/gdb/testsuite/gdb.ada/complete/aux_pck.ads
index e7c53ce..86a43b6 100644
--- a/gdb/testsuite/gdb.ada/complete/aux_pck.ads
+++ b/gdb/testsuite/gdb.ada/complete/aux_pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/complete/foo.adb b/gdb/testsuite/gdb.ada/complete/foo.adb
index 50ed6a7..446d054 100644
--- a/gdb/testsuite/gdb.ada/complete/foo.adb
+++ b/gdb/testsuite/gdb.ada/complete/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/complete/pck.adb b/gdb/testsuite/gdb.ada/complete/pck.adb
index 59991bd..cb0e7e8 100644
--- a/gdb/testsuite/gdb.ada/complete/pck.adb
+++ b/gdb/testsuite/gdb.ada/complete/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/complete/pck.ads b/gdb/testsuite/gdb.ada/complete/pck.ads
index 414fe63..932ce62 100644
--- a/gdb/testsuite/gdb.ada/complete/pck.ads
+++ b/gdb/testsuite/gdb.ada/complete/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/cond_lang.exp b/gdb/testsuite/gdb.ada/cond_lang.exp
index a617357..3577ad7 100644
--- a/gdb/testsuite/gdb.ada/cond_lang.exp
+++ b/gdb/testsuite/gdb.ada/cond_lang.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/cond_lang/a.adb b/gdb/testsuite/gdb.ada/cond_lang/a.adb
index 7275b44..8402402 100644
--- a/gdb/testsuite/gdb.ada/cond_lang/a.adb
+++ b/gdb/testsuite/gdb.ada/cond_lang/a.adb
@@ -1,4 +1,4 @@
--- Copyright 2010-2024 Free Software Foundation, Inc.
+-- Copyright 2010-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/cond_lang/foo.c b/gdb/testsuite/gdb.ada/cond_lang/foo.c
index d479fca..aeb28b8 100644
--- a/gdb/testsuite/gdb.ada/cond_lang/foo.c
+++ b/gdb/testsuite/gdb.ada/cond_lang/foo.c
@@ -1,4 +1,4 @@
-/* Copyright 2010-2024 Free Software Foundation, Inc.
+/* Copyright 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.ada/cond_lang/mixed.adb b/gdb/testsuite/gdb.ada/cond_lang/mixed.adb
index 38ba255..1814a44 100644
--- a/gdb/testsuite/gdb.ada/cond_lang/mixed.adb
+++ b/gdb/testsuite/gdb.ada/cond_lang/mixed.adb
@@ -1,4 +1,4 @@
--- Copyright 2010-2024 Free Software Foundation, Inc.
+-- Copyright 2010-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/cond_lang/mixed.ads b/gdb/testsuite/gdb.ada/cond_lang/mixed.ads
index 8cae37e..7c4398b 100644
--- a/gdb/testsuite/gdb.ada/cond_lang/mixed.ads
+++ b/gdb/testsuite/gdb.ada/cond_lang/mixed.ads
@@ -1,4 +1,4 @@
--- Copyright 2010-2024 Free Software Foundation, Inc.
+-- Copyright 2010-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/cond_lang/pck.adb b/gdb/testsuite/gdb.ada/cond_lang/pck.adb
index 6c543be..6be7b5e 100644
--- a/gdb/testsuite/gdb.ada/cond_lang/pck.adb
+++ b/gdb/testsuite/gdb.ada/cond_lang/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2010-2024 Free Software Foundation, Inc.
+-- Copyright 2010-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/cond_lang/pck.ads b/gdb/testsuite/gdb.ada/cond_lang/pck.ads
index 1934eb0..016add5 100644
--- a/gdb/testsuite/gdb.ada/cond_lang/pck.ads
+++ b/gdb/testsuite/gdb.ada/cond_lang/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2010-2024 Free Software Foundation, Inc.
+-- Copyright 2010-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/convvar_comp.exp b/gdb/testsuite/gdb.ada/convvar_comp.exp
index e7ff3ba..0b847cc 100644
--- a/gdb/testsuite/gdb.ada/convvar_comp.exp
+++ b/gdb/testsuite/gdb.ada/convvar_comp.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/convvar_comp/pb16_063.adb b/gdb/testsuite/gdb.ada/convvar_comp/pb16_063.adb
index b79b328..f424419 100644
--- a/gdb/testsuite/gdb.ada/convvar_comp/pb16_063.adb
+++ b/gdb/testsuite/gdb.ada/convvar_comp/pb16_063.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/convvar_comp/pck.adb b/gdb/testsuite/gdb.ada/convvar_comp/pck.adb
index b7bf3ef..ae91a74 100644
--- a/gdb/testsuite/gdb.ada/convvar_comp/pck.adb
+++ b/gdb/testsuite/gdb.ada/convvar_comp/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/convvar_comp/pck.ads b/gdb/testsuite/gdb.ada/convvar_comp/pck.ads
index b73793c..724d902 100644
--- a/gdb/testsuite/gdb.ada/convvar_comp/pck.ads
+++ b/gdb/testsuite/gdb.ada/convvar_comp/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/data-sections.exp b/gdb/testsuite/gdb.ada/data-sections.exp
index 2d9fee1..ff9be0f 100644
--- a/gdb/testsuite/gdb.ada/data-sections.exp
+++ b/gdb/testsuite/gdb.ada/data-sections.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/data-sections/main.adb b/gdb/testsuite/gdb.ada/data-sections/main.adb
index de74fc4..9cb51f9 100644
--- a/gdb/testsuite/gdb.ada/data-sections/main.adb
+++ b/gdb/testsuite/gdb.ada/data-sections/main.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/delta-assign.exp b/gdb/testsuite/gdb.ada/delta-assign.exp
index d733952..13b62b8 100644
--- a/gdb/testsuite/gdb.ada/delta-assign.exp
+++ b/gdb/testsuite/gdb.ada/delta-assign.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/delta-assign/main.adb b/gdb/testsuite/gdb.ada/delta-assign/main.adb
index 75d51cf..7a3ee04 100644
--- a/gdb/testsuite/gdb.ada/delta-assign/main.adb
+++ b/gdb/testsuite/gdb.ada/delta-assign/main.adb
@@ -1,4 +1,4 @@
--- Copyright 2024 Free Software Foundation, Inc.
+-- Copyright 2024-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/delta-assign/pck.adb b/gdb/testsuite/gdb.ada/delta-assign/pck.adb
index 14580e6..7863563 100644
--- a/gdb/testsuite/gdb.ada/delta-assign/pck.adb
+++ b/gdb/testsuite/gdb.ada/delta-assign/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2024 Free Software Foundation, Inc.
+-- Copyright 2024-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/delta-assign/pck.ads b/gdb/testsuite/gdb.ada/delta-assign/pck.ads
index 6f09a8e..f3bc6a8 100644
--- a/gdb/testsuite/gdb.ada/delta-assign/pck.ads
+++ b/gdb/testsuite/gdb.ada/delta-assign/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2024 Free Software Foundation, Inc.
+-- Copyright 2024-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dgopt.exp b/gdb/testsuite/gdb.ada/dgopt.exp
index 9a74e817..7967f32 100644
--- a/gdb/testsuite/gdb.ada/dgopt.exp
+++ b/gdb/testsuite/gdb.ada/dgopt.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dgopt/x.adb b/gdb/testsuite/gdb.ada/dgopt/x.adb
index 883b72c..d82e884 100644
--- a/gdb/testsuite/gdb.ada/dgopt/x.adb
+++ b/gdb/testsuite/gdb.ada/dgopt/x.adb
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/disc_arr_bound.exp b/gdb/testsuite/gdb.ada/disc_arr_bound.exp
index 0730e3e..e11bc56 100644
--- a/gdb/testsuite/gdb.ada/disc_arr_bound.exp
+++ b/gdb/testsuite/gdb.ada/disc_arr_bound.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/disc_arr_bound/foo_n612_026.adb b/gdb/testsuite/gdb.ada/disc_arr_bound/foo_n612_026.adb
index ab0d8ec..3d2b269 100644
--- a/gdb/testsuite/gdb.ada/disc_arr_bound/foo_n612_026.adb
+++ b/gdb/testsuite/gdb.ada/disc_arr_bound/foo_n612_026.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/disc_arr_bound/pck.adb b/gdb/testsuite/gdb.ada/disc_arr_bound/pck.adb
index a39b1dc..4e02b5f 100644
--- a/gdb/testsuite/gdb.ada/disc_arr_bound/pck.adb
+++ b/gdb/testsuite/gdb.ada/disc_arr_bound/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/disc_arr_bound/pck.ads b/gdb/testsuite/gdb.ada/disc_arr_bound/pck.ads
index b830142..09380db 100644
--- a/gdb/testsuite/gdb.ada/disc_arr_bound/pck.ads
+++ b/gdb/testsuite/gdb.ada/disc_arr_bound/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/discrete-char.exp b/gdb/testsuite/gdb.ada/discrete-char.exp
index 87c8561..dfe698a 100644
--- a/gdb/testsuite/gdb.ada/discrete-char.exp
+++ b/gdb/testsuite/gdb.ada/discrete-char.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/discrete-char/main.adb b/gdb/testsuite/gdb.ada/discrete-char/main.adb
index 4851a58..5954fb6 100644
--- a/gdb/testsuite/gdb.ada/discrete-char/main.adb
+++ b/gdb/testsuite/gdb.ada/discrete-char/main.adb
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/discrete-char/pck.adb b/gdb/testsuite/gdb.ada/discrete-char/pck.adb
index a175b7b..d29c5da 100644
--- a/gdb/testsuite/gdb.ada/discrete-char/pck.adb
+++ b/gdb/testsuite/gdb.ada/discrete-char/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/discrete-char/pck.ads b/gdb/testsuite/gdb.ada/discrete-char/pck.ads
index 384bf08..02fc1c8 100644
--- a/gdb/testsuite/gdb.ada/discrete-char/pck.ads
+++ b/gdb/testsuite/gdb.ada/discrete-char/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/display_nested.exp b/gdb/testsuite/gdb.ada/display_nested.exp
index 2233700..fbc072b 100644
--- a/gdb/testsuite/gdb.ada/display_nested.exp
+++ b/gdb/testsuite/gdb.ada/display_nested.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/display_nested/foo.adb b/gdb/testsuite/gdb.ada/display_nested/foo.adb
index 8cc186b..df002e6 100644
--- a/gdb/testsuite/gdb.ada/display_nested/foo.adb
+++ b/gdb/testsuite/gdb.ada/display_nested/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/display_nested/pack.adb b/gdb/testsuite/gdb.ada/display_nested/pack.adb
index 6409010..9ba98a1 100644
--- a/gdb/testsuite/gdb.ada/display_nested/pack.adb
+++ b/gdb/testsuite/gdb.ada/display_nested/pack.adb
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/display_nested/pack.ads b/gdb/testsuite/gdb.ada/display_nested/pack.ads
index 2b910b7..78e02c9 100644
--- a/gdb/testsuite/gdb.ada/display_nested/pack.ads
+++ b/gdb/testsuite/gdb.ada/display_nested/pack.ads
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dot_all.exp b/gdb/testsuite/gdb.ada/dot_all.exp
index 0bd527f..ba5d9df 100644
--- a/gdb/testsuite/gdb.ada/dot_all.exp
+++ b/gdb/testsuite/gdb.ada/dot_all.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dot_all/foo.adb b/gdb/testsuite/gdb.ada/dot_all/foo.adb
index 490dc8e..df783d4 100644
--- a/gdb/testsuite/gdb.ada/dot_all/foo.adb
+++ b/gdb/testsuite/gdb.ada/dot_all/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dot_all/pck.adb b/gdb/testsuite/gdb.ada/dot_all/pck.adb
index e0ec67d..7b1933a 100644
--- a/gdb/testsuite/gdb.ada/dot_all/pck.adb
+++ b/gdb/testsuite/gdb.ada/dot_all/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dot_all/pck.ads b/gdb/testsuite/gdb.ada/dot_all/pck.ads
index c82b657..90ba348 100644
--- a/gdb/testsuite/gdb.ada/dot_all/pck.ads
+++ b/gdb/testsuite/gdb.ada/dot_all/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dyn-bit-offset.exp b/gdb/testsuite/gdb.ada/dyn-bit-offset.exp
new file mode 100644
index 0000000..f8a4363
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/dyn-bit-offset.exp
@@ -0,0 +1,79 @@
+# Copyright 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+load_lib "ada.exp"
+
+require allow_ada_tests
+
+standard_ada_testfile exam
+
+set flags {debug}
+if {[ada_minimal_encodings]} {
+ lappend flags additional_flags=-fgnat-encodings=minimal
+}
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable $flags] != ""} {
+ return -1
+}
+
+# GCC needs to have fixes:
+# - 809b46d2ccc ("Partially lift restriction from loc_list_from_tree_1")
+# - d7f24e37d4b ("Fix oversight about big-endian targets in latest change")
+set have_xfail [gnat_version_compare <= {16 1}]
+
+clean_restart ${testfile}
+
+set bp_location [gdb_get_line_number "STOP" ${testdir}/exam.adb]
+runto "exam.adb:$bp_location"
+
+set re_pass \
+ [string_to_regexp \
+ " = (discr => 3, array_field => (-5, -6, -7), field => -5, another_field => -6)"]
+set re_xfail_le \
+ [string_to_regexp \
+ " = (discr => 3, array_field => (-5, -6, -7), field => -4, another_field => -4)"]
+set re_xfail_be \
+ [string_to_regexp \
+ " = (discr => 3, array_field => (-5, -6, -7), field => -6, another_field => -6)"]
+
+gdb_test_multiple "print spr" "" {
+ -re -wrap $re_pass {
+ pass $gdb_test_name
+ }
+ -re -wrap $re_xfail_le|$re_xfail_be {
+ if { $have_xfail } {
+ xfail $gdb_test_name
+ } else {
+ fail $gdb_test_name
+ }
+ }
+}
+
+set re_pass " = -5"
+set re_xfail_le " = -4"
+set re_xfail_be " = -6"
+
+gdb_test_multiple "print spr.field" "" {
+ -re -wrap $re_pass {
+ pass $gdb_test_name
+ }
+ -re -wrap $re_xfail_le|$re_xfail_be {
+ if { $have_xfail } {
+ xfail $gdb_test_name
+ } else {
+ fail $gdb_test_name
+ }
+ }
+}
diff --git a/gdb/testsuite/gdb.ada/dyn-bit-offset/exam.adb b/gdb/testsuite/gdb.ada/dyn-bit-offset/exam.adb
new file mode 100644
index 0000000..5c7f70b
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/dyn-bit-offset/exam.adb
@@ -0,0 +1,45 @@
+-- Copyright 2025 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- 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, see <http://www.gnu.org/licenses/>.
+
+procedure Exam is
+ type Small is range -7 .. -4;
+ for Small'Size use 2;
+
+ type Packed_Array is array (Integer range <>) of Small;
+ pragma pack (Packed_Array);
+
+ subtype Range_Int is Natural range 0 .. 7;
+
+ type Some_Packed_Record (Discr : Range_Int := 3) is record
+ Array_Field : Packed_Array (1 .. Discr);
+ Field: Small;
+ case Discr is
+ when 3 =>
+ Another_Field : Small;
+ when others =>
+ null;
+ end case;
+ end record;
+ pragma Pack (Some_Packed_Record);
+ pragma No_Component_Reordering (Some_Packed_Record);
+
+ SPR : Some_Packed_Record := (Discr => 3,
+ Field => -5,
+ Another_Field => -6,
+ Array_Field => (-5, -6, -7));
+
+begin
+ null; -- STOP
+end Exam;
diff --git a/gdb/testsuite/gdb.ada/dyn-range.exp b/gdb/testsuite/gdb.ada/dyn-range.exp
index 9c25522..aed5847 100644
--- a/gdb/testsuite/gdb.ada/dyn-range.exp
+++ b/gdb/testsuite/gdb.ada/dyn-range.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -30,4 +30,5 @@ if {![runto "dyn.adb:$bp_location"]} {
return -1
}
-gdb_test "whatis d" "type = dyn.dyn_range"
+# Accept "dyn." prefix for older versions of GNAT.
+gdb_test "whatis d" "type = (dyn.)?dyn_range"
diff --git a/gdb/testsuite/gdb.ada/dyn-range/dyn.adb b/gdb/testsuite/gdb.ada/dyn-range/dyn.adb
index dd84ba3..5799ef6 100644
--- a/gdb/testsuite/gdb.ada/dyn-range/dyn.adb
+++ b/gdb/testsuite/gdb.ada/dyn-range/dyn.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dyn-range/pck.adb b/gdb/testsuite/gdb.ada/dyn-range/pck.adb
index 4fcd42f..77e7094 100644
--- a/gdb/testsuite/gdb.ada/dyn-range/pck.adb
+++ b/gdb/testsuite/gdb.ada/dyn-range/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dyn-range/pck.ads b/gdb/testsuite/gdb.ada/dyn-range/pck.ads
index 0bfcbb3..8e0d043 100644
--- a/gdb/testsuite/gdb.ada/dyn-range/pck.ads
+++ b/gdb/testsuite/gdb.ada/dyn-range/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dyn_arrayidx.exp b/gdb/testsuite/gdb.ada/dyn_arrayidx.exp
index d82e54c..fa5b95e 100644
--- a/gdb/testsuite/gdb.ada/dyn_arrayidx.exp
+++ b/gdb/testsuite/gdb.ada/dyn_arrayidx.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dyn_arrayidx/foo.adb b/gdb/testsuite/gdb.ada/dyn_arrayidx/foo.adb
index 76ac25c..13ae028 100644
--- a/gdb/testsuite/gdb.ada/dyn_arrayidx/foo.adb
+++ b/gdb/testsuite/gdb.ada/dyn_arrayidx/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dyn_loc.exp b/gdb/testsuite/gdb.ada/dyn_loc.exp
index 19e89d9..0a1313b 100644
--- a/gdb/testsuite/gdb.ada/dyn_loc.exp
+++ b/gdb/testsuite/gdb.ada/dyn_loc.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dyn_loc/p.adb b/gdb/testsuite/gdb.ada/dyn_loc/p.adb
index 36de9d7..8db230e 100644
--- a/gdb/testsuite/gdb.ada/dyn_loc/p.adb
+++ b/gdb/testsuite/gdb.ada/dyn_loc/p.adb
@@ -1,4 +1,4 @@
--- Copyright 2010-2024 Free Software Foundation, Inc.
+-- Copyright 2010-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dyn_loc/pack.adb b/gdb/testsuite/gdb.ada/dyn_loc/pack.adb
index 158beb3..9fee9dc 100644
--- a/gdb/testsuite/gdb.ada/dyn_loc/pack.adb
+++ b/gdb/testsuite/gdb.ada/dyn_loc/pack.adb
@@ -1,4 +1,4 @@
--- Copyright 2010-2024 Free Software Foundation, Inc.
+-- Copyright 2010-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dyn_loc/pack.ads b/gdb/testsuite/gdb.ada/dyn_loc/pack.ads
index 78e6a2c..bdf5c23 100644
--- a/gdb/testsuite/gdb.ada/dyn_loc/pack.ads
+++ b/gdb/testsuite/gdb.ada/dyn_loc/pack.ads
@@ -1,4 +1,4 @@
--- Copyright 2010-2024 Free Software Foundation, Inc.
+-- Copyright 2010-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dyn_stride.exp b/gdb/testsuite/gdb.ada/dyn_stride.exp
index 8809c3a..deeeddd 100644
--- a/gdb/testsuite/gdb.ada/dyn_stride.exp
+++ b/gdb/testsuite/gdb.ada/dyn_stride.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dyn_stride/foo.adb b/gdb/testsuite/gdb.ada/dyn_stride/foo.adb
index 373278d..a677db6 100644
--- a/gdb/testsuite/gdb.ada/dyn_stride/foo.adb
+++ b/gdb/testsuite/gdb.ada/dyn_stride/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dynamic-iface.exp b/gdb/testsuite/gdb.ada/dynamic-iface.exp
index 94cf219..a3add3f 100644
--- a/gdb/testsuite/gdb.ada/dynamic-iface.exp
+++ b/gdb/testsuite/gdb.ada/dynamic-iface.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dynamic-iface/concrete.adb b/gdb/testsuite/gdb.ada/dynamic-iface/concrete.adb
index c97014e..40e40f4 100644
--- a/gdb/testsuite/gdb.ada/dynamic-iface/concrete.adb
+++ b/gdb/testsuite/gdb.ada/dynamic-iface/concrete.adb
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dynamic-iface/concrete.ads b/gdb/testsuite/gdb.ada/dynamic-iface/concrete.ads
index 1149b5b..8bebbff 100644
--- a/gdb/testsuite/gdb.ada/dynamic-iface/concrete.ads
+++ b/gdb/testsuite/gdb.ada/dynamic-iface/concrete.ads
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/dynamic-iface/main.adb b/gdb/testsuite/gdb.ada/dynamic-iface/main.adb
index 8fbc311..c5c0230 100644
--- a/gdb/testsuite/gdb.ada/dynamic-iface/main.adb
+++ b/gdb/testsuite/gdb.ada/dynamic-iface/main.adb
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/enum_idx_packed.exp b/gdb/testsuite/gdb.ada/enum_idx_packed.exp
index cf70e9a..c274d2b 100644
--- a/gdb/testsuite/gdb.ada/enum_idx_packed.exp
+++ b/gdb/testsuite/gdb.ada/enum_idx_packed.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/enum_idx_packed/foo.adb b/gdb/testsuite/gdb.ada/enum_idx_packed/foo.adb
index 381a884..1f0a1f4 100644
--- a/gdb/testsuite/gdb.ada/enum_idx_packed/foo.adb
+++ b/gdb/testsuite/gdb.ada/enum_idx_packed/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/enum_idx_packed/pck.adb b/gdb/testsuite/gdb.ada/enum_idx_packed/pck.adb
index 9206bb0..bbba128 100644
--- a/gdb/testsuite/gdb.ada/enum_idx_packed/pck.adb
+++ b/gdb/testsuite/gdb.ada/enum_idx_packed/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/enum_idx_packed/pck.ads b/gdb/testsuite/gdb.ada/enum_idx_packed/pck.ads
index 25065c0..0fc06d1 100644
--- a/gdb/testsuite/gdb.ada/enum_idx_packed/pck.ads
+++ b/gdb/testsuite/gdb.ada/enum_idx_packed/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/enum_qual.exp b/gdb/testsuite/gdb.ada/enum_qual.exp
index c386701..75df83c 100644
--- a/gdb/testsuite/gdb.ada/enum_qual.exp
+++ b/gdb/testsuite/gdb.ada/enum_qual.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/enum_qual/gener.ads b/gdb/testsuite/gdb.ada/enum_qual/gener.ads
index 11ab37a..931a345 100644
--- a/gdb/testsuite/gdb.ada/enum_qual/gener.ads
+++ b/gdb/testsuite/gdb.ada/enum_qual/gener.ads
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/enum_qual/qual.adb b/gdb/testsuite/gdb.ada/enum_qual/qual.adb
index 570e482..c67bf4c 100644
--- a/gdb/testsuite/gdb.ada/enum_qual/qual.adb
+++ b/gdb/testsuite/gdb.ada/enum_qual/qual.adb
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/enums_overload.exp b/gdb/testsuite/gdb.ada/enums_overload.exp
index 61f9cd2..8109e86 100644
--- a/gdb/testsuite/gdb.ada/enums_overload.exp
+++ b/gdb/testsuite/gdb.ada/enums_overload.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/enums_overload/enums_overload.adb b/gdb/testsuite/gdb.ada/enums_overload/enums_overload.adb
index cc5d94e..264b83f 100644
--- a/gdb/testsuite/gdb.ada/enums_overload/enums_overload.adb
+++ b/gdb/testsuite/gdb.ada/enums_overload/enums_overload.adb
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/enums_overload/enums_overload.ads b/gdb/testsuite/gdb.ada/enums_overload/enums_overload.ads
index bf6fb00..233c840 100644
--- a/gdb/testsuite/gdb.ada/enums_overload/enums_overload.ads
+++ b/gdb/testsuite/gdb.ada/enums_overload/enums_overload.ads
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/enums_overload/enums_overload_main.adb b/gdb/testsuite/gdb.ada/enums_overload/enums_overload_main.adb
index 4def88e..f52cc83 100644
--- a/gdb/testsuite/gdb.ada/enums_overload/enums_overload_main.adb
+++ b/gdb/testsuite/gdb.ada/enums_overload/enums_overload_main.adb
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/excep_handle.exp b/gdb/testsuite/gdb.ada/excep_handle.exp
index 2a99457..9d91d45 100644
--- a/gdb/testsuite/gdb.ada/excep_handle.exp
+++ b/gdb/testsuite/gdb.ada/excep_handle.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/excep_handle/foo.adb b/gdb/testsuite/gdb.ada/excep_handle/foo.adb
index 3a696b4..b07df3c 100644
--- a/gdb/testsuite/gdb.ada/excep_handle/foo.adb
+++ b/gdb/testsuite/gdb.ada/excep_handle/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/excep_handle/pck.ads b/gdb/testsuite/gdb.ada/excep_handle/pck.ads
index 10f5190..a0774f2 100644
--- a/gdb/testsuite/gdb.ada/excep_handle/pck.ads
+++ b/gdb/testsuite/gdb.ada/excep_handle/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/exception-lto.c b/gdb/testsuite/gdb.ada/exception-lto.c
index c5ee69d..c602392 100644
--- a/gdb/testsuite/gdb.ada/exception-lto.c
+++ b/gdb/testsuite/gdb.ada/exception-lto.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/exception-lto.exp b/gdb/testsuite/gdb.ada/exception-lto.exp
index 21059a3..42a5472 100644
--- a/gdb/testsuite/gdb.ada/exception-lto.exp
+++ b/gdb/testsuite/gdb.ada/exception-lto.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/exec_changed.exp b/gdb/testsuite/gdb.ada/exec_changed.exp
index 69f386e..c52757e 100644
--- a/gdb/testsuite/gdb.ada/exec_changed.exp
+++ b/gdb/testsuite/gdb.ada/exec_changed.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/exec_changed/first.adb b/gdb/testsuite/gdb.ada/exec_changed/first.adb
index 7f63108..ef0d7bc 100644
--- a/gdb/testsuite/gdb.ada/exec_changed/first.adb
+++ b/gdb/testsuite/gdb.ada/exec_changed/first.adb
@@ -1,4 +1,4 @@
--- Copyright 2005-2024 Free Software Foundation, Inc.
+-- Copyright 2005-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/exec_changed/second.adb b/gdb/testsuite/gdb.ada/exec_changed/second.adb
index 7792c28..7ce6bc6 100644
--- a/gdb/testsuite/gdb.ada/exec_changed/second.adb
+++ b/gdb/testsuite/gdb.ada/exec_changed/second.adb
@@ -1,4 +1,4 @@
--- Copyright 2005-2024 Free Software Foundation, Inc.
+-- Copyright 2005-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/expr_delims.exp b/gdb/testsuite/gdb.ada/expr_delims.exp
index 1698a21..f343774 100644
--- a/gdb/testsuite/gdb.ada/expr_delims.exp
+++ b/gdb/testsuite/gdb.ada/expr_delims.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/expr_delims/foo.adb b/gdb/testsuite/gdb.ada/expr_delims/foo.adb
index 61d0798..fc535ea 100644
--- a/gdb/testsuite/gdb.ada/expr_delims/foo.adb
+++ b/gdb/testsuite/gdb.ada/expr_delims/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/expr_delims/pck.adb b/gdb/testsuite/gdb.ada/expr_delims/pck.adb
index ddc76f6..722e523 100644
--- a/gdb/testsuite/gdb.ada/expr_delims/pck.adb
+++ b/gdb/testsuite/gdb.ada/expr_delims/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/expr_delims/pck.ads b/gdb/testsuite/gdb.ada/expr_delims/pck.ads
index 334f6df..abe8bc6 100644
--- a/gdb/testsuite/gdb.ada/expr_delims/pck.ads
+++ b/gdb/testsuite/gdb.ada/expr_delims/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/expr_with_funcall.exp b/gdb/testsuite/gdb.ada/expr_with_funcall.exp
index 581212b..db73a7a 100644
--- a/gdb/testsuite/gdb.ada/expr_with_funcall.exp
+++ b/gdb/testsuite/gdb.ada/expr_with_funcall.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/expr_with_funcall/expr_r821_013.adb b/gdb/testsuite/gdb.ada/expr_with_funcall/expr_r821_013.adb
index d6c16a8..8df4b17 100644
--- a/gdb/testsuite/gdb.ada/expr_with_funcall/expr_r821_013.adb
+++ b/gdb/testsuite/gdb.ada/expr_with_funcall/expr_r821_013.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/expr_with_funcall/pck.adb b/gdb/testsuite/gdb.ada/expr_with_funcall/pck.adb
index e1fc963..709592a 100644
--- a/gdb/testsuite/gdb.ada/expr_with_funcall/pck.adb
+++ b/gdb/testsuite/gdb.ada/expr_with_funcall/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/expr_with_funcall/pck.ads b/gdb/testsuite/gdb.ada/expr_with_funcall/pck.ads
index 26f464d..24d5d01 100644
--- a/gdb/testsuite/gdb.ada/expr_with_funcall/pck.ads
+++ b/gdb/testsuite/gdb.ada/expr_with_funcall/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/exprs.exp b/gdb/testsuite/gdb.ada/exprs.exp
index 027ec59..1a5a524 100644
--- a/gdb/testsuite/gdb.ada/exprs.exp
+++ b/gdb/testsuite/gdb.ada/exprs.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/exprs/p.adb b/gdb/testsuite/gdb.ada/exprs/p.adb
index bb85a83..08d2a8a 100644
--- a/gdb/testsuite/gdb.ada/exprs/p.adb
+++ b/gdb/testsuite/gdb.ada/exprs/p.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/file-then-restart.exp b/gdb/testsuite/gdb.ada/file-then-restart.exp
index 8019189..faa9962 100644
--- a/gdb/testsuite/gdb.ada/file-then-restart.exp
+++ b/gdb/testsuite/gdb.ada/file-then-restart.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/file-then-restart/first.adb b/gdb/testsuite/gdb.ada/file-then-restart/first.adb
index 7f63108..ef0d7bc 100644
--- a/gdb/testsuite/gdb.ada/file-then-restart/first.adb
+++ b/gdb/testsuite/gdb.ada/file-then-restart/first.adb
@@ -1,4 +1,4 @@
--- Copyright 2005-2024 Free Software Foundation, Inc.
+-- Copyright 2005-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/file-then-restart/second.adb b/gdb/testsuite/gdb.ada/file-then-restart/second.adb
index 7792c28..7ce6bc6 100644
--- a/gdb/testsuite/gdb.ada/file-then-restart/second.adb
+++ b/gdb/testsuite/gdb.ada/file-then-restart/second.adb
@@ -1,4 +1,4 @@
--- Copyright 2005-2024 Free Software Foundation, Inc.
+-- Copyright 2005-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fin_fun_out.exp b/gdb/testsuite/gdb.ada/fin_fun_out.exp
index b340caf..6ba7377 100644
--- a/gdb/testsuite/gdb.ada/fin_fun_out.exp
+++ b/gdb/testsuite/gdb.ada/fin_fun_out.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fin_fun_out/bar.adb b/gdb/testsuite/gdb.ada/fin_fun_out/bar.adb
index 98dc657..002eff6 100644
--- a/gdb/testsuite/gdb.ada/fin_fun_out/bar.adb
+++ b/gdb/testsuite/gdb.ada/fin_fun_out/bar.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fin_fun_out/bar.ads b/gdb/testsuite/gdb.ada/fin_fun_out/bar.ads
index d88a94c..c003989 100644
--- a/gdb/testsuite/gdb.ada/fin_fun_out/bar.ads
+++ b/gdb/testsuite/gdb.ada/fin_fun_out/bar.ads
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fin_fun_out/foo_o525_013.adb b/gdb/testsuite/gdb.ada/fin_fun_out/foo_o525_013.adb
index ca80194..101ca82 100644
--- a/gdb/testsuite/gdb.ada/fin_fun_out/foo_o525_013.adb
+++ b/gdb/testsuite/gdb.ada/fin_fun_out/foo_o525_013.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/finish-large.exp b/gdb/testsuite/gdb.ada/finish-large.exp
index b9823d3..10cb840 100644
--- a/gdb/testsuite/gdb.ada/finish-large.exp
+++ b/gdb/testsuite/gdb.ada/finish-large.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -21,7 +21,7 @@ standard_ada_testfile p
set flags {debug}
-if {[have_fvar_tracking]} {
+if {[ada_fvar_tracking]} {
lappend flags "additional_flags=-fvar-tracking"
}
diff --git a/gdb/testsuite/gdb.ada/finish-large/p.adb b/gdb/testsuite/gdb.ada/finish-large/p.adb
index 5135ff6..74b158b 100644
--- a/gdb/testsuite/gdb.ada/finish-large/p.adb
+++ b/gdb/testsuite/gdb.ada/finish-large/p.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/finish-large/pck.adb b/gdb/testsuite/gdb.ada/finish-large/pck.adb
index cfae0a5..8b44997 100644
--- a/gdb/testsuite/gdb.ada/finish-large/pck.adb
+++ b/gdb/testsuite/gdb.ada/finish-large/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/finish-large/pck.ads b/gdb/testsuite/gdb.ada/finish-large/pck.ads
index 1204eb7..93d1138 100644
--- a/gdb/testsuite/gdb.ada/finish-large/pck.ads
+++ b/gdb/testsuite/gdb.ada/finish-large/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/finish-var-size.exp b/gdb/testsuite/gdb.ada/finish-var-size.exp
index 7b20d7d..ae30086 100644
--- a/gdb/testsuite/gdb.ada/finish-var-size.exp
+++ b/gdb/testsuite/gdb.ada/finish-var-size.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,7 +22,13 @@ require {expr [gcc_major_version] >= 12}
standard_ada_testfile p
-if {[gdb_compile_ada "${srcfile}" "${binfile}" executable debug] != ""} {
+set opts {}
+lappend opts debug
+if { [have_fvar_tracking] } {
+ lappend opts additional_flags=-fvar-tracking
+}
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable $opts] != ""} {
return -1
}
diff --git a/gdb/testsuite/gdb.ada/finish-var-size/p.adb b/gdb/testsuite/gdb.ada/finish-var-size/p.adb
index 58aea2e..9cfec73 100644
--- a/gdb/testsuite/gdb.ada/finish-var-size/p.adb
+++ b/gdb/testsuite/gdb.ada/finish-var-size/p.adb
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/finish-var-size/pck.adb b/gdb/testsuite/gdb.ada/finish-var-size/pck.adb
index d2ae489..e28f623 100644
--- a/gdb/testsuite/gdb.ada/finish-var-size/pck.adb
+++ b/gdb/testsuite/gdb.ada/finish-var-size/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/finish-var-size/pck.ads b/gdb/testsuite/gdb.ada/finish-var-size/pck.ads
index 499b54e..36014e7 100644
--- a/gdb/testsuite/gdb.ada/finish-var-size/pck.ads
+++ b/gdb/testsuite/gdb.ada/finish-var-size/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fixed_cmp.exp b/gdb/testsuite/gdb.ada/fixed_cmp.exp
index dcd4745..6d546f2 100644
--- a/gdb/testsuite/gdb.ada/fixed_cmp.exp
+++ b/gdb/testsuite/gdb.ada/fixed_cmp.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fixed_cmp/fixed.adb b/gdb/testsuite/gdb.ada/fixed_cmp/fixed.adb
index f5575c1..a451bc8 100644
--- a/gdb/testsuite/gdb.ada/fixed_cmp/fixed.adb
+++ b/gdb/testsuite/gdb.ada/fixed_cmp/fixed.adb
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fixed_cmp/pck.adb b/gdb/testsuite/gdb.ada/fixed_cmp/pck.adb
index d1e115d..3dc26b6 100644
--- a/gdb/testsuite/gdb.ada/fixed_cmp/pck.adb
+++ b/gdb/testsuite/gdb.ada/fixed_cmp/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fixed_cmp/pck.ads b/gdb/testsuite/gdb.ada/fixed_cmp/pck.ads
index e877d00..02e2789 100644
--- a/gdb/testsuite/gdb.ada/fixed_cmp/pck.ads
+++ b/gdb/testsuite/gdb.ada/fixed_cmp/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fixed_points.exp b/gdb/testsuite/gdb.ada/fixed_points.exp
index 19ec1f8..0e65004 100644
--- a/gdb/testsuite/gdb.ada/fixed_points.exp
+++ b/gdb/testsuite/gdb.ada/fixed_points.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -90,6 +90,10 @@ foreach_gnat_encoding scenario flags {all minimal} {
# This only started working in GCC 11.
if {$scenario == "minimal" && [gnat_version_compare >= 11]} {
gdb_test "print fp5_var" " = 3e-19"
+
+ gdb_test "print Float(Object_Fixed) = Float(Semicircle_Delta * 5)" \
+ " = true" \
+ "examine object_fixed"
}
# This failed before GCC 10.
diff --git a/gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb b/gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb
index b233d05..94a41b9 100644
--- a/gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb
+++ b/gdb/testsuite/gdb.ada/fixed_points/fixed_points.adb
@@ -1,4 +1,4 @@
--- Copyright 2004-2024 Free Software Foundation, Inc.
+-- Copyright 2004-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
@@ -64,6 +64,12 @@ procedure Fixed_Points is
for Another_Type'size use 64;
Another_Fixed : Another_Type := Another_Delta * 5;
+ Semicircle_Delta : constant := 1.0/(2**31);
+ type Semicircle_Type is delta Semicircle_Delta range -1.0 .. (1.0 - Semicircle_Delta);
+ for Semicircle_Type'small use Semicircle_Delta;
+ for Semicircle_Type'size use 32;
+ Object_Fixed : Semicircle_Type := Semicircle_Delta * 5;
+
begin
Base_Object := 1.0/16.0; -- Set breakpoint here
Subtype_Object := 1.0/16.0;
@@ -75,4 +81,5 @@ begin
Do_Nothing (FP4_Var'Address);
Do_Nothing (FP5_Var'Address);
Do_Nothing (Another_Fixed'Address);
+ Do_Nothing (Object_Fixed'Address);
end Fixed_Points;
diff --git a/gdb/testsuite/gdb.ada/fixed_points/pck.adb b/gdb/testsuite/gdb.ada/fixed_points/pck.adb
index 0236303..06ff0af 100644
--- a/gdb/testsuite/gdb.ada/fixed_points/pck.adb
+++ b/gdb/testsuite/gdb.ada/fixed_points/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2016-2024 Free Software Foundation, Inc.
+-- Copyright 2016-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fixed_points/pck.ads b/gdb/testsuite/gdb.ada/fixed_points/pck.ads
index 44719ce..74a8144 100644
--- a/gdb/testsuite/gdb.ada/fixed_points/pck.ads
+++ b/gdb/testsuite/gdb.ada/fixed_points/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2016-2024 Free Software Foundation, Inc.
+-- Copyright 2016-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fixed_points_function.exp b/gdb/testsuite/gdb.ada/fixed_points_function.exp
index f950d3d..005ea07 100644
--- a/gdb/testsuite/gdb.ada/fixed_points_function.exp
+++ b/gdb/testsuite/gdb.ada/fixed_points_function.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fixed_points_function/fixed_points_function.adb b/gdb/testsuite/gdb.ada/fixed_points_function/fixed_points_function.adb
index 287295c..763e15c 100644
--- a/gdb/testsuite/gdb.ada/fixed_points_function/fixed_points_function.adb
+++ b/gdb/testsuite/gdb.ada/fixed_points_function/fixed_points_function.adb
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fixed_points_function/pck.adb b/gdb/testsuite/gdb.ada/fixed_points_function/pck.adb
index 7a18868..cfb13a4 100644
--- a/gdb/testsuite/gdb.ada/fixed_points_function/pck.adb
+++ b/gdb/testsuite/gdb.ada/fixed_points_function/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fixed_points_function/pck.ads b/gdb/testsuite/gdb.ada/fixed_points_function/pck.ads
index a483529..9e4749c 100644
--- a/gdb/testsuite/gdb.ada/fixed_points_function/pck.ads
+++ b/gdb/testsuite/gdb.ada/fixed_points_function/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/float-bits.exp b/gdb/testsuite/gdb.ada/float-bits.exp
index 7fbb1de..848cbc2 100644
--- a/gdb/testsuite/gdb.ada/float-bits.exp
+++ b/gdb/testsuite/gdb.ada/float-bits.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/float-bits/pck.adb b/gdb/testsuite/gdb.ada/float-bits/pck.adb
index a175b7b..d29c5da 100644
--- a/gdb/testsuite/gdb.ada/float-bits/pck.adb
+++ b/gdb/testsuite/gdb.ada/float-bits/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/float-bits/pck.ads b/gdb/testsuite/gdb.ada/float-bits/pck.ads
index 384bf08..02fc1c8 100644
--- a/gdb/testsuite/gdb.ada/float-bits/pck.ads
+++ b/gdb/testsuite/gdb.ada/float-bits/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/float-bits/prog.adb b/gdb/testsuite/gdb.ada/float-bits/prog.adb
index 21a2ae4..bc6b7bc 100644
--- a/gdb/testsuite/gdb.ada/float-bits/prog.adb
+++ b/gdb/testsuite/gdb.ada/float-bits/prog.adb
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/float_param.exp b/gdb/testsuite/gdb.ada/float_param.exp
index df19a6e..1fe0292 100644
--- a/gdb/testsuite/gdb.ada/float_param.exp
+++ b/gdb/testsuite/gdb.ada/float_param.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/float_param/foo.adb b/gdb/testsuite/gdb.ada/float_param/foo.adb
index 9e5e53e..01c2e3f 100644
--- a/gdb/testsuite/gdb.ada/float_param/foo.adb
+++ b/gdb/testsuite/gdb.ada/float_param/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/float_param/pck.adb b/gdb/testsuite/gdb.ada/float_param/pck.adb
index 3012a48..5143bde 100644
--- a/gdb/testsuite/gdb.ada/float_param/pck.adb
+++ b/gdb/testsuite/gdb.ada/float_param/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/float_param/pck.ads b/gdb/testsuite/gdb.ada/float_param/pck.ads
index 86166fa..fd68b49 100644
--- a/gdb/testsuite/gdb.ada/float_param/pck.ads
+++ b/gdb/testsuite/gdb.ada/float_param/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/formatted_ref.exp b/gdb/testsuite/gdb.ada/formatted_ref.exp
index 6f91154..c63f847 100644
--- a/gdb/testsuite/gdb.ada/formatted_ref.exp
+++ b/gdb/testsuite/gdb.ada/formatted_ref.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/formatted_ref/defs.adb b/gdb/testsuite/gdb.ada/formatted_ref/defs.adb
index 274761a..ba994fc 100644
--- a/gdb/testsuite/gdb.ada/formatted_ref/defs.adb
+++ b/gdb/testsuite/gdb.ada/formatted_ref/defs.adb
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/formatted_ref/defs.ads b/gdb/testsuite/gdb.ada/formatted_ref/defs.ads
index 4addf09..6d54ad5 100644
--- a/gdb/testsuite/gdb.ada/formatted_ref/defs.ads
+++ b/gdb/testsuite/gdb.ada/formatted_ref/defs.ads
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/formatted_ref/formatted_ref.adb b/gdb/testsuite/gdb.ada/formatted_ref/formatted_ref.adb
index 838062b..3916a14 100644
--- a/gdb/testsuite/gdb.ada/formatted_ref/formatted_ref.adb
+++ b/gdb/testsuite/gdb.ada/formatted_ref/formatted_ref.adb
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/frame_arg_lang.exp b/gdb/testsuite/gdb.ada/frame_arg_lang.exp
index b629c42..073c256 100644
--- a/gdb/testsuite/gdb.ada/frame_arg_lang.exp
+++ b/gdb/testsuite/gdb.ada/frame_arg_lang.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/frame_arg_lang/bla.adb b/gdb/testsuite/gdb.ada/frame_arg_lang/bla.adb
index f742987..7e62b4e 100644
--- a/gdb/testsuite/gdb.ada/frame_arg_lang/bla.adb
+++ b/gdb/testsuite/gdb.ada/frame_arg_lang/bla.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/frame_arg_lang/foo.c b/gdb/testsuite/gdb.ada/frame_arg_lang/foo.c
index a054bc3..7c039f3 100644
--- a/gdb/testsuite/gdb.ada/frame_arg_lang/foo.c
+++ b/gdb/testsuite/gdb.ada/frame_arg_lang/foo.c
@@ -1,4 +1,4 @@
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.ada/frame_arg_lang/pck.adb b/gdb/testsuite/gdb.ada/frame_arg_lang/pck.adb
index c4d22a6..16e3b4d 100644
--- a/gdb/testsuite/gdb.ada/frame_arg_lang/pck.adb
+++ b/gdb/testsuite/gdb.ada/frame_arg_lang/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/frame_arg_lang/pck.ads b/gdb/testsuite/gdb.ada/frame_arg_lang/pck.ads
index 890b8f5..0428a07 100644
--- a/gdb/testsuite/gdb.ada/frame_arg_lang/pck.ads
+++ b/gdb/testsuite/gdb.ada/frame_arg_lang/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/frame_args.exp b/gdb/testsuite/gdb.ada/frame_args.exp
index c5eb380..4ffc3d1 100644
--- a/gdb/testsuite/gdb.ada/frame_args.exp
+++ b/gdb/testsuite/gdb.ada/frame_args.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/frame_args/foo.adb b/gdb/testsuite/gdb.ada/frame_args/foo.adb
index b71a44c..d32dfed 100644
--- a/gdb/testsuite/gdb.ada/frame_args/foo.adb
+++ b/gdb/testsuite/gdb.ada/frame_args/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/frame_args/pck.adb b/gdb/testsuite/gdb.ada/frame_args/pck.adb
index 330da76..3fddae8 100644
--- a/gdb/testsuite/gdb.ada/frame_args/pck.adb
+++ b/gdb/testsuite/gdb.ada/frame_args/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/frame_args/pck.ads b/gdb/testsuite/gdb.ada/frame_args/pck.ads
index 6594d07..abb380c 100644
--- a/gdb/testsuite/gdb.ada/frame_args/pck.ads
+++ b/gdb/testsuite/gdb.ada/frame_args/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fullname_bp.exp b/gdb/testsuite/gdb.ada/fullname_bp.exp
index 26240d7..4ca1308 100644
--- a/gdb/testsuite/gdb.ada/fullname_bp.exp
+++ b/gdb/testsuite/gdb.ada/fullname_bp.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fullname_bp/dn.adb b/gdb/testsuite/gdb.ada/fullname_bp/dn.adb
index 0ce59b5..2249b0b 100644
--- a/gdb/testsuite/gdb.ada/fullname_bp/dn.adb
+++ b/gdb/testsuite/gdb.ada/fullname_bp/dn.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fullname_bp/dn.ads b/gdb/testsuite/gdb.ada/fullname_bp/dn.ads
index e442972..e1361f6 100644
--- a/gdb/testsuite/gdb.ada/fullname_bp/dn.ads
+++ b/gdb/testsuite/gdb.ada/fullname_bp/dn.ads
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fullname_bp/foo.adb b/gdb/testsuite/gdb.ada/fullname_bp/foo.adb
index 801e0b4..06a0b23 100644
--- a/gdb/testsuite/gdb.ada/fullname_bp/foo.adb
+++ b/gdb/testsuite/gdb.ada/fullname_bp/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fullname_bp/pck.adb b/gdb/testsuite/gdb.ada/fullname_bp/pck.adb
index 579ba23..cf218e2 100644
--- a/gdb/testsuite/gdb.ada/fullname_bp/pck.adb
+++ b/gdb/testsuite/gdb.ada/fullname_bp/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fullname_bp/pck.ads b/gdb/testsuite/gdb.ada/fullname_bp/pck.ads
index 895b24e..f2c7f6d 100644
--- a/gdb/testsuite/gdb.ada/fullname_bp/pck.ads
+++ b/gdb/testsuite/gdb.ada/fullname_bp/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fun_addr.exp b/gdb/testsuite/gdb.ada/fun_addr.exp
index 2c9368a..45fee79 100644
--- a/gdb/testsuite/gdb.ada/fun_addr.exp
+++ b/gdb/testsuite/gdb.ada/fun_addr.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fun_addr/foo.adb b/gdb/testsuite/gdb.ada/fun_addr/foo.adb
index f9d7c0b..0463f94 100644
--- a/gdb/testsuite/gdb.ada/fun_addr/foo.adb
+++ b/gdb/testsuite/gdb.ada/fun_addr/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fun_in_declare.exp b/gdb/testsuite/gdb.ada/fun_in_declare.exp
index a73a91f..9ababcf 100644
--- a/gdb/testsuite/gdb.ada/fun_in_declare.exp
+++ b/gdb/testsuite/gdb.ada/fun_in_declare.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fun_in_declare/foo.adb b/gdb/testsuite/gdb.ada/fun_in_declare/foo.adb
index fcaf853..afee6d9 100644
--- a/gdb/testsuite/gdb.ada/fun_in_declare/foo.adb
+++ b/gdb/testsuite/gdb.ada/fun_in_declare/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fun_in_declare/pck.adb b/gdb/testsuite/gdb.ada/fun_in_declare/pck.adb
index 1a8f551..b95ea86 100644
--- a/gdb/testsuite/gdb.ada/fun_in_declare/pck.adb
+++ b/gdb/testsuite/gdb.ada/fun_in_declare/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fun_in_declare/pck.ads b/gdb/testsuite/gdb.ada/fun_in_declare/pck.ads
index 7a4b893..3945c34 100644
--- a/gdb/testsuite/gdb.ada/fun_in_declare/pck.ads
+++ b/gdb/testsuite/gdb.ada/fun_in_declare/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fun_overload_menu.exp b/gdb/testsuite/gdb.ada/fun_overload_menu.exp
index 8e7a3fb..b4d969a 100644
--- a/gdb/testsuite/gdb.ada/fun_overload_menu.exp
+++ b/gdb/testsuite/gdb.ada/fun_overload_menu.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -28,18 +28,30 @@ clean_restart ${testfile}
set bp_location [gdb_get_line_number "BREAK" ${testdir}/foo.adb]
runto "foo.adb:$bp_location"
+set line1 [gdb_get_line_number "LINE 1" ${testdir}/foo.adb]
+set line2 [gdb_get_line_number "LINE 2" ${testdir}/foo.adb]
-proc test_menu {expr function menu_entries selection output} {
- set menu [multi_line "Multiple matches for $function" \
- "\\\[0\\\] cancel" \
- "$menu_entries" \
- "> $"]
+proc test_menu {expr function first second selection output} {
+ set menu1 [multi_line "Multiple matches for $function" \
+ "\\\[0\\\] cancel" \
+ "\\\[1\\\] $first" \
+ "\\\[2\\\] $second" \
+ "> $"]
+ set menu2 [multi_line "Multiple matches for $function" \
+ "\\\[0\\\] cancel" \
+ "\\\[1\\\] $second" \
+ "\\\[2\\\] $first" \
+ "> $"]
set test_name "multiple matches for $function {$expr}"
- gdb_test_multiple "print $expr" "$test_name" \
- {
- -re "$menu" {
+ gdb_test_multiple "print $expr" "$test_name" {
+ -re "$menu1" {
pass "$test_name"
}
+ -re "$menu2" {
+ pass "$test_name"
+ # Make sure we pick the correct one.
+ set selection [expr {3 - $selection}]
+ }
default {
fail "$test_name"
}
@@ -53,18 +65,16 @@ proc test_menu {expr function menu_entries selection output} {
# 1. Test with overloaded functions
with_test_prefix "func" {
test_menu "f (1, null)" "f" \
- [multi_line \
- "\\\[1\\\] foo\\.f \\(integer; foo\\.integer_access\\) return boolean at .*foo.adb:.*" \
- "\\\[2\\\] foo\\.f \\(foo\\.new_integer; foo\\.integer_access\\) return boolean at .*foo.adb:.*"] \
+ "foo\\.f \\(integer; (foo\\.)?integer_access\\) return boolean at .*foo.adb:.*" \
+ "foo\\.f \\((foo\\.)?new_integer; (foo\\.)?integer_access\\) return boolean at .*foo.adb:.*" \
"1" "= true"
}
# 2. Test with overloaded procedures
with_test_prefix "proc" {
test_menu "p (1, null)" "p" \
- [multi_line \
- "\\\[1\\\] foo\\.p \\(integer; foo\\.integer_access\\) at .*foo.adb:.*" \
- "\\\[2\\\] foo\\.p \\(foo\\.new_integer; foo\\.integer_access\\) at .*foo.adb:.*" ] \
+ "foo\\.p \\(integer; (foo\\.)?integer_access\\) at .*foo.adb:.*" \
+ "foo\\.p \\((foo\\.)?new_integer; (foo\\.)?integer_access\\) at .*foo.adb:.*" \
"1" "= (void)"
}
@@ -72,8 +82,7 @@ with_test_prefix "proc" {
gdb_test "set ada print-signatures off" ""
with_test_prefix "signatures disabled" {
test_menu "f (1, null)" "f" \
- [multi_line \
- "\\\[1\\\] foo\\.f at .*foo.adb:.*" \
- "\\\[2\\\] foo\\.f at .*foo.adb:.*"] \
+ "foo\\.f at .*foo.adb:$line1.*" \
+ "foo\\.f at .*foo.adb:$line2.*" \
"1" "= true"
}
diff --git a/gdb/testsuite/gdb.ada/fun_overload_menu/foo.adb b/gdb/testsuite/gdb.ada/fun_overload_menu/foo.adb
index 0a2b21a..1cc0d71 100644
--- a/gdb/testsuite/gdb.ada/fun_overload_menu/foo.adb
+++ b/gdb/testsuite/gdb.ada/fun_overload_menu/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
@@ -20,12 +20,12 @@ procedure Foo is
function F (I : Integer; A : Integer_Access) return Boolean is
begin
- return True;
+ return True; -- LINE 1
end F;
function F (I : New_Integer; A : Integer_Access) return Boolean is
begin
- return False;
+ return False; -- LINE 2
end F;
procedure P (I : Integer; A : Integer_Access) is
diff --git a/gdb/testsuite/gdb.ada/fun_renaming.exp b/gdb/testsuite/gdb.ada/fun_renaming.exp
index 21f80db..19fcb2f 100644
--- a/gdb/testsuite/gdb.ada/fun_renaming.exp
+++ b/gdb/testsuite/gdb.ada/fun_renaming.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fun_renaming/fun_renaming.adb b/gdb/testsuite/gdb.ada/fun_renaming/fun_renaming.adb
index 00b18da..f95c96f 100644
--- a/gdb/testsuite/gdb.ada/fun_renaming/fun_renaming.adb
+++ b/gdb/testsuite/gdb.ada/fun_renaming/fun_renaming.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fun_renaming/pack.adb b/gdb/testsuite/gdb.ada/fun_renaming/pack.adb
index ee31c76..aca775c 100644
--- a/gdb/testsuite/gdb.ada/fun_renaming/pack.adb
+++ b/gdb/testsuite/gdb.ada/fun_renaming/pack.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/fun_renaming/pack.ads b/gdb/testsuite/gdb.ada/fun_renaming/pack.ads
index b6ca4b3..1909c93 100644
--- a/gdb/testsuite/gdb.ada/fun_renaming/pack.ads
+++ b/gdb/testsuite/gdb.ada/fun_renaming/pack.ads
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/funcall_char.exp b/gdb/testsuite/gdb.ada/funcall_char.exp
index 349f4ed..1589741 100644
--- a/gdb/testsuite/gdb.ada/funcall_char.exp
+++ b/gdb/testsuite/gdb.ada/funcall_char.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/funcall_char/foo.adb b/gdb/testsuite/gdb.ada/funcall_char/foo.adb
index e096768..39bdb44 100644
--- a/gdb/testsuite/gdb.ada/funcall_char/foo.adb
+++ b/gdb/testsuite/gdb.ada/funcall_char/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/funcall_param.exp b/gdb/testsuite/gdb.ada/funcall_param.exp
index d9711a0..a38ffeb 100644
--- a/gdb/testsuite/gdb.ada/funcall_param.exp
+++ b/gdb/testsuite/gdb.ada/funcall_param.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/funcall_param/foo.adb b/gdb/testsuite/gdb.ada/funcall_param/foo.adb
index baaaf19..b959769 100644
--- a/gdb/testsuite/gdb.ada/funcall_param/foo.adb
+++ b/gdb/testsuite/gdb.ada/funcall_param/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/funcall_param/pck.adb b/gdb/testsuite/gdb.ada/funcall_param/pck.adb
index 2e73016..7fe4b32 100644
--- a/gdb/testsuite/gdb.ada/funcall_param/pck.adb
+++ b/gdb/testsuite/gdb.ada/funcall_param/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/funcall_param/pck.ads b/gdb/testsuite/gdb.ada/funcall_param/pck.ads
index 72f9dfe..1420569 100644
--- a/gdb/testsuite/gdb.ada/funcall_param/pck.ads
+++ b/gdb/testsuite/gdb.ada/funcall_param/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/funcall_ptr.exp b/gdb/testsuite/gdb.ada/funcall_ptr.exp
index 12304cc..b4c77f0 100644
--- a/gdb/testsuite/gdb.ada/funcall_ptr.exp
+++ b/gdb/testsuite/gdb.ada/funcall_ptr.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/funcall_ptr/foo.adb b/gdb/testsuite/gdb.ada/funcall_ptr/foo.adb
index 53ab8e9..87767f8 100644
--- a/gdb/testsuite/gdb.ada/funcall_ptr/foo.adb
+++ b/gdb/testsuite/gdb.ada/funcall_ptr/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/funcall_ptr/pck.adb b/gdb/testsuite/gdb.ada/funcall_ptr/pck.adb
index 25d59f8..514a0ea 100644
--- a/gdb/testsuite/gdb.ada/funcall_ptr/pck.adb
+++ b/gdb/testsuite/gdb.ada/funcall_ptr/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/funcall_ptr/pck.ads b/gdb/testsuite/gdb.ada/funcall_ptr/pck.ads
index 16d6bb1..0de5bb9 100644
--- a/gdb/testsuite/gdb.ada/funcall_ptr/pck.ads
+++ b/gdb/testsuite/gdb.ada/funcall_ptr/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/funcall_ref.exp b/gdb/testsuite/gdb.ada/funcall_ref.exp
index 1c28392..d72110c 100644
--- a/gdb/testsuite/gdb.ada/funcall_ref.exp
+++ b/gdb/testsuite/gdb.ada/funcall_ref.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/funcall_ref/foo.adb b/gdb/testsuite/gdb.ada/funcall_ref/foo.adb
index 1299b14..0217082 100644
--- a/gdb/testsuite/gdb.ada/funcall_ref/foo.adb
+++ b/gdb/testsuite/gdb.ada/funcall_ref/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ghost.exp b/gdb/testsuite/gdb.ada/ghost.exp
index b4217cb..78e6f39 100644
--- a/gdb/testsuite/gdb.ada/ghost.exp
+++ b/gdb/testsuite/gdb.ada/ghost.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ghost/gpck.ads b/gdb/testsuite/gdb.ada/ghost/gpck.ads
index 6ccf43f..b373014 100644
--- a/gdb/testsuite/gdb.ada/ghost/gpck.ads
+++ b/gdb/testsuite/gdb.ada/ghost/gpck.ads
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ghost/main.adb b/gdb/testsuite/gdb.ada/ghost/main.adb
index 9c8d0d9..6f14c25 100644
--- a/gdb/testsuite/gdb.ada/ghost/main.adb
+++ b/gdb/testsuite/gdb.ada/ghost/main.adb
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ghost/pck.ads b/gdb/testsuite/gdb.ada/ghost/pck.ads
index 54523d1..cce3eaf 100644
--- a/gdb/testsuite/gdb.ada/ghost/pck.ads
+++ b/gdb/testsuite/gdb.ada/ghost/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/homonym.exp b/gdb/testsuite/gdb.ada/homonym.exp
index 91a4e62..97a2ee2 100644
--- a/gdb/testsuite/gdb.ada/homonym.exp
+++ b/gdb/testsuite/gdb.ada/homonym.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -38,7 +38,7 @@ gdb_test "break homonym.adb:Get_Value" \
"set breakpoint at homonym.adb:Get_Value"
gdb_test "break <homonym__get_value>" \
- "Breakpoint \[0-9\]+ at $hex: file .*homonym\\.adb, line $decimal\\." \
+ ".*Breakpoint \[0-9\]+ at $hex: (file .*homonym\\.adb, line $decimal\\.|<homonym__get_value>\\. .2 locations.)" \
"set breakpoint at <homonym__get_value>"
delete_breakpoints
diff --git a/gdb/testsuite/gdb.ada/homonym/homonym.adb b/gdb/testsuite/gdb.ada/homonym/homonym.adb
index fdd51e5..15e9123 100644
--- a/gdb/testsuite/gdb.ada/homonym/homonym.adb
+++ b/gdb/testsuite/gdb.ada/homonym/homonym.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/homonym/homonym.ads b/gdb/testsuite/gdb.ada/homonym/homonym.ads
index 6846940..f25a4b2 100644
--- a/gdb/testsuite/gdb.ada/homonym/homonym.ads
+++ b/gdb/testsuite/gdb.ada/homonym/homonym.ads
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/homonym/homonym_main.adb b/gdb/testsuite/gdb.ada/homonym/homonym_main.adb
index 7f58279..2d71d2d 100644
--- a/gdb/testsuite/gdb.ada/homonym/homonym_main.adb
+++ b/gdb/testsuite/gdb.ada/homonym/homonym_main.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/homonym/pck.adb b/gdb/testsuite/gdb.ada/homonym/pck.adb
index 2822e77..2bfbe8c 100644
--- a/gdb/testsuite/gdb.ada/homonym/pck.adb
+++ b/gdb/testsuite/gdb.ada/homonym/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/homonym/pck.ads b/gdb/testsuite/gdb.ada/homonym/pck.ads
index 7de7794..90f3ced 100644
--- a/gdb/testsuite/gdb.ada/homonym/pck.ads
+++ b/gdb/testsuite/gdb.ada/homonym/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/huge.exp b/gdb/testsuite/gdb.ada/huge.exp
index 7943b83..9a86804 100644
--- a/gdb/testsuite/gdb.ada/huge.exp
+++ b/gdb/testsuite/gdb.ada/huge.exp
@@ -1,4 +1,4 @@
-# Copyright 2001-2024 Free Software Foundation, Inc.
+# Copyright 2001-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/huge/foo.adb b/gdb/testsuite/gdb.ada/huge/foo.adb
index 3743b1e..0db6806 100644
--- a/gdb/testsuite/gdb.ada/huge/foo.adb
+++ b/gdb/testsuite/gdb.ada/huge/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/huge/pck.adb b/gdb/testsuite/gdb.ada/huge/pck.adb
index 69d00f4..23e1914 100644
--- a/gdb/testsuite/gdb.ada/huge/pck.adb
+++ b/gdb/testsuite/gdb.ada/huge/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/huge/pck.ads b/gdb/testsuite/gdb.ada/huge/pck.ads
index ec30773..13dadbb 100644
--- a/gdb/testsuite/gdb.ada/huge/pck.ads
+++ b/gdb/testsuite/gdb.ada/huge/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/import.exp b/gdb/testsuite/gdb.ada/import.exp
index 04bb7e1..ab3a1c9 100644
--- a/gdb/testsuite/gdb.ada/import.exp
+++ b/gdb/testsuite/gdb.ada/import.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/import/inc.c b/gdb/testsuite/gdb.ada/import/inc.c
index 5688ff8..1c6e545 100644
--- a/gdb/testsuite/gdb.ada/import/inc.c
+++ b/gdb/testsuite/gdb.ada/import/inc.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.ada/import/pkg.adb b/gdb/testsuite/gdb.ada/import/pkg.adb
index fc59ee8..74c8b08 100644
--- a/gdb/testsuite/gdb.ada/import/pkg.adb
+++ b/gdb/testsuite/gdb.ada/import/pkg.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/import/pkg.ads b/gdb/testsuite/gdb.ada/import/pkg.ads
index 6bc7d54..3af89a9 100644
--- a/gdb/testsuite/gdb.ada/import/pkg.ads
+++ b/gdb/testsuite/gdb.ada/import/pkg.ads
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/import/prog.adb b/gdb/testsuite/gdb.ada/import/prog.adb
index 130aa72..347c5d4 100644
--- a/gdb/testsuite/gdb.ada/import/prog.adb
+++ b/gdb/testsuite/gdb.ada/import/prog.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/info_addr_mixed_case.exp b/gdb/testsuite/gdb.ada/info_addr_mixed_case.exp
index fb5a269..2ae4cf6 100644
--- a/gdb/testsuite/gdb.ada/info_addr_mixed_case.exp
+++ b/gdb/testsuite/gdb.ada/info_addr_mixed_case.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb b/gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb
index 4db21c0..afc67ed 100644
--- a/gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb
+++ b/gdb/testsuite/gdb.ada/info_addr_mixed_case/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb b/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb
index 74d0be1..656c81e 100644
--- a/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb
+++ b/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.ads b/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.ads
index 75a725f..af0c2aa 100644
--- a/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.ads
+++ b/gdb/testsuite/gdb.ada/info_addr_mixed_case/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/info_auto_lang.exp b/gdb/testsuite/gdb.ada/info_auto_lang.exp
index e15232d..805257e 100644
--- a/gdb/testsuite/gdb.ada/info_auto_lang.exp
+++ b/gdb/testsuite/gdb.ada/info_auto_lang.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/info_auto_lang/global_pack.ads b/gdb/testsuite/gdb.ada/info_auto_lang/global_pack.ads
index 9aa3aa7..54f7a60 100644
--- a/gdb/testsuite/gdb.ada/info_auto_lang/global_pack.ads
+++ b/gdb/testsuite/gdb.ada/info_auto_lang/global_pack.ads
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/info_auto_lang/proc_in_ada.adb b/gdb/testsuite/gdb.ada/info_auto_lang/proc_in_ada.adb
index 01560e6..6a12ac5 100644
--- a/gdb/testsuite/gdb.ada/info_auto_lang/proc_in_ada.adb
+++ b/gdb/testsuite/gdb.ada/info_auto_lang/proc_in_ada.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/info_auto_lang/some_c.c b/gdb/testsuite/gdb.ada/info_auto_lang/some_c.c
index 536e6fa..00755b0 100644
--- a/gdb/testsuite/gdb.ada/info_auto_lang/some_c.c
+++ b/gdb/testsuite/gdb.ada/info_auto_lang/some_c.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/info_exc.exp b/gdb/testsuite/gdb.ada/info_exc.exp
index 997d847..c2ab2f9 100644
--- a/gdb/testsuite/gdb.ada/info_exc.exp
+++ b/gdb/testsuite/gdb.ada/info_exc.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/info_exc/const.ads b/gdb/testsuite/gdb.ada/info_exc/const.ads
index 9f525d6..1f48e87 100644
--- a/gdb/testsuite/gdb.ada/info_exc/const.ads
+++ b/gdb/testsuite/gdb.ada/info_exc/const.ads
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/info_exc/foo.adb b/gdb/testsuite/gdb.ada/info_exc/foo.adb
index 7dca0f1..f24cdcf 100644
--- a/gdb/testsuite/gdb.ada/info_exc/foo.adb
+++ b/gdb/testsuite/gdb.ada/info_exc/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/info_locals_renaming.exp b/gdb/testsuite/gdb.ada/info_locals_renaming.exp
index 885d7d9..794474c 100644
--- a/gdb/testsuite/gdb.ada/info_locals_renaming.exp
+++ b/gdb/testsuite/gdb.ada/info_locals_renaming.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/info_locals_renaming/foo.adb b/gdb/testsuite/gdb.ada/info_locals_renaming/foo.adb
index 274c460..996fcf2 100644
--- a/gdb/testsuite/gdb.ada/info_locals_renaming/foo.adb
+++ b/gdb/testsuite/gdb.ada/info_locals_renaming/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/info_locals_renaming/pck.adb b/gdb/testsuite/gdb.ada/info_locals_renaming/pck.adb
index 59eb795..b779e2a 100644
--- a/gdb/testsuite/gdb.ada/info_locals_renaming/pck.adb
+++ b/gdb/testsuite/gdb.ada/info_locals_renaming/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/info_locals_renaming/pck.ads b/gdb/testsuite/gdb.ada/info_locals_renaming/pck.ads
index 45074f1..01708e8 100644
--- a/gdb/testsuite/gdb.ada/info_locals_renaming/pck.ads
+++ b/gdb/testsuite/gdb.ada/info_locals_renaming/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/info_types.c b/gdb/testsuite/gdb.ada/info_types.c
index 6f6980f..34c7447 100644
--- a/gdb/testsuite/gdb.ada/info_types.c
+++ b/gdb/testsuite/gdb.ada/info_types.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/info_types.exp b/gdb/testsuite/gdb.ada/info_types.exp
index 80bcec0..370f810 100644
--- a/gdb/testsuite/gdb.ada/info_types.exp
+++ b/gdb/testsuite/gdb.ada/info_types.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/inline-section-gc.exp b/gdb/testsuite/gdb.ada/inline-section-gc.exp
index 55cd156..7965b02 100644
--- a/gdb/testsuite/gdb.ada/inline-section-gc.exp
+++ b/gdb/testsuite/gdb.ada/inline-section-gc.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -19,14 +19,20 @@ require allow_ada_tests
standard_ada_testfile caller
+# The ordering here works around a bug in older versions of dejagnu.
+# In particular we use "additional_flags" and not "ldflags" to ensure
+# the ordering (this is ok because the distinction doesn't really
+# matter for gnatmake anyway) and furthermore we take care to end with
+# "-margs" so that any flags appended by dejagnu are applied in the
+# correct mode.
set options {
debug
optimize=-O2
additional_flags=-ffunction-sections
- ldflags=-margs
additional_flags=-gnatn
- ldflags=-largs
- ldflags=-Wl,--gc-sections
+ additional_flags=-largs
+ additional_flags=-Wl,--gc-sections
+ additional_flags=-margs
}
if {[gdb_compile_ada "${srcfile}" "${binfile}" executable $options] != ""} {
return -1
diff --git a/gdb/testsuite/gdb.ada/inline-section-gc/callee.adb b/gdb/testsuite/gdb.ada/inline-section-gc/callee.adb
index 97e4622..6479158 100644
--- a/gdb/testsuite/gdb.ada/inline-section-gc/callee.adb
+++ b/gdb/testsuite/gdb.ada/inline-section-gc/callee.adb
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/inline-section-gc/callee.ads b/gdb/testsuite/gdb.ada/inline-section-gc/callee.ads
index 9924dce..60ee837 100644
--- a/gdb/testsuite/gdb.ada/inline-section-gc/callee.ads
+++ b/gdb/testsuite/gdb.ada/inline-section-gc/callee.ads
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/inline-section-gc/caller.adb b/gdb/testsuite/gdb.ada/inline-section-gc/caller.adb
index 1c61d9e..aadd002 100644
--- a/gdb/testsuite/gdb.ada/inline-section-gc/caller.adb
+++ b/gdb/testsuite/gdb.ada/inline-section-gc/caller.adb
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/int_deref.exp b/gdb/testsuite/gdb.ada/int_deref.exp
index faff596..4d989db 100644
--- a/gdb/testsuite/gdb.ada/int_deref.exp
+++ b/gdb/testsuite/gdb.ada/int_deref.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/int_deref/foo.adb b/gdb/testsuite/gdb.ada/int_deref/foo.adb
index 8bcdad2..e85168a 100644
--- a/gdb/testsuite/gdb.ada/int_deref/foo.adb
+++ b/gdb/testsuite/gdb.ada/int_deref/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/int_deref/pck.ads b/gdb/testsuite/gdb.ada/int_deref/pck.ads
index b8f1b7c..a525c23 100644
--- a/gdb/testsuite/gdb.ada/int_deref/pck.ads
+++ b/gdb/testsuite/gdb.ada/int_deref/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/interface.exp b/gdb/testsuite/gdb.ada/interface.exp
index 704d647..5b42944 100644
--- a/gdb/testsuite/gdb.ada/interface.exp
+++ b/gdb/testsuite/gdb.ada/interface.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/interface/foo.adb b/gdb/testsuite/gdb.ada/interface/foo.adb
index 9516a3b..0c0da6d 100644
--- a/gdb/testsuite/gdb.ada/interface/foo.adb
+++ b/gdb/testsuite/gdb.ada/interface/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/interface/types.adb b/gdb/testsuite/gdb.ada/interface/types.adb
index 9b1eb49..43d54e1 100644
--- a/gdb/testsuite/gdb.ada/interface/types.adb
+++ b/gdb/testsuite/gdb.ada/interface/types.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/interface/types.ads b/gdb/testsuite/gdb.ada/interface/types.ads
index 1918391..e0fdaba 100644
--- a/gdb/testsuite/gdb.ada/interface/types.ads
+++ b/gdb/testsuite/gdb.ada/interface/types.ads
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/iterated-assign.exp b/gdb/testsuite/gdb.ada/iterated-assign.exp
index 76b038f..8afaa16 100644
--- a/gdb/testsuite/gdb.ada/iterated-assign.exp
+++ b/gdb/testsuite/gdb.ada/iterated-assign.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/iterated-assign/main.adb b/gdb/testsuite/gdb.ada/iterated-assign/main.adb
index 239c22c..c6a6254 100644
--- a/gdb/testsuite/gdb.ada/iterated-assign/main.adb
+++ b/gdb/testsuite/gdb.ada/iterated-assign/main.adb
@@ -1,4 +1,4 @@
--- Copyright 2024 Free Software Foundation, Inc.
+-- Copyright 2024-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/iterated-assign/pck.adb b/gdb/testsuite/gdb.ada/iterated-assign/pck.adb
index 14580e6..7863563 100644
--- a/gdb/testsuite/gdb.ada/iterated-assign/pck.adb
+++ b/gdb/testsuite/gdb.ada/iterated-assign/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2024 Free Software Foundation, Inc.
+-- Copyright 2024-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/iterated-assign/pck.ads b/gdb/testsuite/gdb.ada/iterated-assign/pck.ads
index b77af72..ee3705df 100644
--- a/gdb/testsuite/gdb.ada/iterated-assign/pck.ads
+++ b/gdb/testsuite/gdb.ada/iterated-assign/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2024 Free Software Foundation, Inc.
+-- Copyright 2024-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/iwide.exp b/gdb/testsuite/gdb.ada/iwide.exp
index 2f69316..b6cc8fe 100644
--- a/gdb/testsuite/gdb.ada/iwide.exp
+++ b/gdb/testsuite/gdb.ada/iwide.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/iwide/classes.adb b/gdb/testsuite/gdb.ada/iwide/classes.adb
index 10b87be..6c17a9f 100644
--- a/gdb/testsuite/gdb.ada/iwide/classes.adb
+++ b/gdb/testsuite/gdb.ada/iwide/classes.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/iwide/classes.ads b/gdb/testsuite/gdb.ada/iwide/classes.ads
index ce804c2..522fc22 100644
--- a/gdb/testsuite/gdb.ada/iwide/classes.ads
+++ b/gdb/testsuite/gdb.ada/iwide/classes.ads
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/iwide/p.adb b/gdb/testsuite/gdb.ada/iwide/p.adb
index 55c266a..686ed6d 100644
--- a/gdb/testsuite/gdb.ada/iwide/p.adb
+++ b/gdb/testsuite/gdb.ada/iwide/p.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/lang_switch.exp b/gdb/testsuite/gdb.ada/lang_switch.exp
index 7064c1e..4ab8fa3 100644
--- a/gdb/testsuite/gdb.ada/lang_switch.exp
+++ b/gdb/testsuite/gdb.ada/lang_switch.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/lang_switch/foo.c b/gdb/testsuite/gdb.ada/lang_switch/foo.c
index 7842258..512bc15 100644
--- a/gdb/testsuite/gdb.ada/lang_switch/foo.c
+++ b/gdb/testsuite/gdb.ada/lang_switch/foo.c
@@ -1,4 +1,4 @@
-/* Copyright 2008-2024 Free Software Foundation, Inc.
+/* Copyright 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.ada/lang_switch/lang_switch.adb b/gdb/testsuite/gdb.ada/lang_switch/lang_switch.adb
index b303d69..4e9b715 100644
--- a/gdb/testsuite/gdb.ada/lang_switch/lang_switch.adb
+++ b/gdb/testsuite/gdb.ada/lang_switch/lang_switch.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/lazy-string.exp b/gdb/testsuite/gdb.ada/lazy-string.exp
index 553e2b5..11c5c04 100644
--- a/gdb/testsuite/gdb.ada/lazy-string.exp
+++ b/gdb/testsuite/gdb.ada/lazy-string.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/lazy-string/main.adb b/gdb/testsuite/gdb.ada/lazy-string/main.adb
index b5ccd01..8e441a2 100644
--- a/gdb/testsuite/gdb.ada/lazy-string/main.adb
+++ b/gdb/testsuite/gdb.ada/lazy-string/main.adb
@@ -1,4 +1,4 @@
--- Copyright 2024 Free Software Foundation, Inc.
+-- Copyright 2024-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/length_cond.exp b/gdb/testsuite/gdb.ada/length_cond.exp
index f0a07a1..070179b 100644
--- a/gdb/testsuite/gdb.ada/length_cond.exp
+++ b/gdb/testsuite/gdb.ada/length_cond.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/length_cond/length_cond.adb b/gdb/testsuite/gdb.ada/length_cond/length_cond.adb
index 561dc7a..33687b0 100644
--- a/gdb/testsuite/gdb.ada/length_cond/length_cond.adb
+++ b/gdb/testsuite/gdb.ada/length_cond/length_cond.adb
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/length_cond/pck.adb b/gdb/testsuite/gdb.ada/length_cond/pck.adb
index e4c9ce3..50c6059 100644
--- a/gdb/testsuite/gdb.ada/length_cond/pck.adb
+++ b/gdb/testsuite/gdb.ada/length_cond/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/length_cond/pck.ads b/gdb/testsuite/gdb.ada/length_cond/pck.ads
index 096308c..a7eadc8 100644
--- a/gdb/testsuite/gdb.ada/length_cond/pck.ads
+++ b/gdb/testsuite/gdb.ada/length_cond/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/limited-length.exp b/gdb/testsuite/gdb.ada/limited-length.exp
index d0e912b..7172c37 100644
--- a/gdb/testsuite/gdb.ada/limited-length.exp
+++ b/gdb/testsuite/gdb.ada/limited-length.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/limited-length/foo.adb b/gdb/testsuite/gdb.ada/limited-length/foo.adb
index f90d4e2..b269ce2 100644
--- a/gdb/testsuite/gdb.ada/limited-length/foo.adb
+++ b/gdb/testsuite/gdb.ada/limited-length/foo.adb
@@ -1,6 +1,6 @@
-- This testcase is part of GDB, the GNU debugger.
--
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/limited-length/pck.adb b/gdb/testsuite/gdb.ada/limited-length/pck.adb
index 33a3e7d..d78fd5a 100644
--- a/gdb/testsuite/gdb.ada/limited-length/pck.adb
+++ b/gdb/testsuite/gdb.ada/limited-length/pck.adb
@@ -1,6 +1,6 @@
-- This testcase is part of GDB, the GNU debugger.
--
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/limited-length/pck.ads b/gdb/testsuite/gdb.ada/limited-length/pck.ads
index 8a2101e..6de0a38 100644
--- a/gdb/testsuite/gdb.ada/limited-length/pck.ads
+++ b/gdb/testsuite/gdb.ada/limited-length/pck.ads
@@ -1,6 +1,6 @@
-- This testcase is part of GDB, the GNU debugger.
--
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/literals.exp b/gdb/testsuite/gdb.ada/literals.exp
index 793ebd2..5be6829 100644
--- a/gdb/testsuite/gdb.ada/literals.exp
+++ b/gdb/testsuite/gdb.ada/literals.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/local-enum.exp b/gdb/testsuite/gdb.ada/local-enum.exp
index 82642cf..2a480da 100644
--- a/gdb/testsuite/gdb.ada/local-enum.exp
+++ b/gdb/testsuite/gdb.ada/local-enum.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -35,18 +35,19 @@ if {![runto "local.adb:$bp_location"]} {
# name of the enum, either "e1" or "e2".
proc print_three {which_enum value} {
# We don't know which in order gdb will print the constants, so
- # adapt to either.
+ # adapt to either. Accept "local." prefix for older versions of
+ # GNAT.
set menu1 [multi_line \
"Multiple matches for three" \
"\\\[0\\\] cancel" \
- "\\\[1\\\] local\\.e2'\\(three\\) \\(enumeral\\)" \
- "\\\[2\\\] local\\.e1'\\(three\\) \\(enumeral\\)" \
+ "\\\[1\\\] (local\\.)?e2'\\(three\\) \\(enumeral\\)" \
+ "\\\[2\\\] (local\\.)?e1'\\(three\\) \\(enumeral\\)" \
"> $"]
set menu2 [multi_line \
"Multiple matches for three" \
"\\\[0\\\] cancel" \
- "\\\[1\\\] local\\.e1'\\(three\\) \\(enumeral\\)" \
- "\\\[2\\\] local\\.e2'\\(three\\) \\(enumeral\\)" \
+ "\\\[1\\\] (local\\.)?e1'\\(three\\) \\(enumeral\\)" \
+ "\\\[2\\\] (local\\.)?e2'\\(three\\) \\(enumeral\\)" \
"> $"]
set index -1
diff --git a/gdb/testsuite/gdb.ada/local-enum/pck.adb b/gdb/testsuite/gdb.ada/local-enum/pck.adb
index a175b7b..d29c5da 100644
--- a/gdb/testsuite/gdb.ada/local-enum/pck.adb
+++ b/gdb/testsuite/gdb.ada/local-enum/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/local-enum/pck.ads b/gdb/testsuite/gdb.ada/local-enum/pck.ads
index 384bf08..02fc1c8 100644
--- a/gdb/testsuite/gdb.ada/local-enum/pck.ads
+++ b/gdb/testsuite/gdb.ada/local-enum/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/maint_with_ada.exp b/gdb/testsuite/gdb.ada/maint_with_ada.exp
index 063213d..d793d60 100644
--- a/gdb/testsuite/gdb.ada/maint_with_ada.exp
+++ b/gdb/testsuite/gdb.ada/maint_with_ada.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/maint_with_ada/pack.adb b/gdb/testsuite/gdb.ada/maint_with_ada/pack.adb
index 491598b..2f9114a 100644
--- a/gdb/testsuite/gdb.ada/maint_with_ada/pack.adb
+++ b/gdb/testsuite/gdb.ada/maint_with_ada/pack.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/maint_with_ada/pack.ads b/gdb/testsuite/gdb.ada/maint_with_ada/pack.ads
index b777117..2ceb071 100644
--- a/gdb/testsuite/gdb.ada/maint_with_ada/pack.ads
+++ b/gdb/testsuite/gdb.ada/maint_with_ada/pack.ads
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/maint_with_ada/var_arr_typedef.adb b/gdb/testsuite/gdb.ada/maint_with_ada/var_arr_typedef.adb
index af71387..4a7f4cb 100644
--- a/gdb/testsuite/gdb.ada/maint_with_ada/var_arr_typedef.adb
+++ b/gdb/testsuite/gdb.ada/maint_with_ada/var_arr_typedef.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_catch_assert.exp b/gdb/testsuite/gdb.ada/mi_catch_assert.exp
index cff4307..1b4609a 100644
--- a/gdb/testsuite/gdb.ada/mi_catch_assert.exp
+++ b/gdb/testsuite/gdb.ada/mi_catch_assert.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_catch_assert/bla.adb b/gdb/testsuite/gdb.ada/mi_catch_assert/bla.adb
index c0cc04b..d862b9b 100644
--- a/gdb/testsuite/gdb.ada/mi_catch_assert/bla.adb
+++ b/gdb/testsuite/gdb.ada/mi_catch_assert/bla.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_catch_assert/pck.ads b/gdb/testsuite/gdb.ada/mi_catch_assert/pck.ads
index e74feaa..62409d5 100644
--- a/gdb/testsuite/gdb.ada/mi_catch_assert/pck.ads
+++ b/gdb/testsuite/gdb.ada/mi_catch_assert/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_catch_ex.exp b/gdb/testsuite/gdb.ada/mi_catch_ex.exp
index 271f7fb..da3d340 100644
--- a/gdb/testsuite/gdb.ada/mi_catch_ex.exp
+++ b/gdb/testsuite/gdb.ada/mi_catch_ex.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_catch_ex/foo.adb b/gdb/testsuite/gdb.ada/mi_catch_ex/foo.adb
index d1ac7df..686ab4c 100644
--- a/gdb/testsuite/gdb.ada/mi_catch_ex/foo.adb
+++ b/gdb/testsuite/gdb.ada/mi_catch_ex/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_catch_ex_hand.exp b/gdb/testsuite/gdb.ada/mi_catch_ex_hand.exp
index 88b761d..00e8f6e 100644
--- a/gdb/testsuite/gdb.ada/mi_catch_ex_hand.exp
+++ b/gdb/testsuite/gdb.ada/mi_catch_ex_hand.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_catch_ex_hand/foo.adb b/gdb/testsuite/gdb.ada/mi_catch_ex_hand/foo.adb
index 849e5dc..b3af132 100644
--- a/gdb/testsuite/gdb.ada/mi_catch_ex_hand/foo.adb
+++ b/gdb/testsuite/gdb.ada/mi_catch_ex_hand/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_dyn_arr.exp b/gdb/testsuite/gdb.ada/mi_dyn_arr.exp
index c7e9818..c0e9f7f 100644
--- a/gdb/testsuite/gdb.ada/mi_dyn_arr.exp
+++ b/gdb/testsuite/gdb.ada/mi_dyn_arr.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_dyn_arr/foo.adb b/gdb/testsuite/gdb.ada/mi_dyn_arr/foo.adb
index 286a28d..f56a0d3 100644
--- a/gdb/testsuite/gdb.ada/mi_dyn_arr/foo.adb
+++ b/gdb/testsuite/gdb.ada/mi_dyn_arr/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_dyn_arr/pck.adb b/gdb/testsuite/gdb.ada/mi_dyn_arr/pck.adb
index 4dd8c58..5290d25 100644
--- a/gdb/testsuite/gdb.ada/mi_dyn_arr/pck.adb
+++ b/gdb/testsuite/gdb.ada/mi_dyn_arr/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_dyn_arr/pck.ads b/gdb/testsuite/gdb.ada/mi_dyn_arr/pck.ads
index 8935cc0..04f69f3 100644
--- a/gdb/testsuite/gdb.ada/mi_dyn_arr/pck.ads
+++ b/gdb/testsuite/gdb.ada/mi_dyn_arr/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_ex_cond.exp b/gdb/testsuite/gdb.ada/mi_ex_cond.exp
index 4f3aef3..53ace22 100644
--- a/gdb/testsuite/gdb.ada/mi_ex_cond.exp
+++ b/gdb/testsuite/gdb.ada/mi_ex_cond.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_ex_cond/foo.adb b/gdb/testsuite/gdb.ada/mi_ex_cond/foo.adb
index 9f7d220..dd4236a 100644
--- a/gdb/testsuite/gdb.ada/mi_ex_cond/foo.adb
+++ b/gdb/testsuite/gdb.ada/mi_ex_cond/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_ex_cond/pck.ads b/gdb/testsuite/gdb.ada/mi_ex_cond/pck.ads
index cb34498..99d4bb7 100644
--- a/gdb/testsuite/gdb.ada/mi_ex_cond/pck.ads
+++ b/gdb/testsuite/gdb.ada/mi_ex_cond/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_exc_info.exp b/gdb/testsuite/gdb.ada/mi_exc_info.exp
index f35fb76..b9d0072 100644
--- a/gdb/testsuite/gdb.ada/mi_exc_info.exp
+++ b/gdb/testsuite/gdb.ada/mi_exc_info.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_exc_info/const.ads b/gdb/testsuite/gdb.ada/mi_exc_info/const.ads
index 9f525d6..1f48e87 100644
--- a/gdb/testsuite/gdb.ada/mi_exc_info/const.ads
+++ b/gdb/testsuite/gdb.ada/mi_exc_info/const.ads
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_exc_info/foo.adb b/gdb/testsuite/gdb.ada/mi_exc_info/foo.adb
index 7dca0f1..f24cdcf 100644
--- a/gdb/testsuite/gdb.ada/mi_exc_info/foo.adb
+++ b/gdb/testsuite/gdb.ada/mi_exc_info/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_interface.exp b/gdb/testsuite/gdb.ada/mi_interface.exp
index ff4f769..630353d 100644
--- a/gdb/testsuite/gdb.ada/mi_interface.exp
+++ b/gdb/testsuite/gdb.ada/mi_interface.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_interface/foo.adb b/gdb/testsuite/gdb.ada/mi_interface/foo.adb
index 352535d..1204eed 100644
--- a/gdb/testsuite/gdb.ada/mi_interface/foo.adb
+++ b/gdb/testsuite/gdb.ada/mi_interface/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_interface/pck.adb b/gdb/testsuite/gdb.ada/mi_interface/pck.adb
index a175b7b..d29c5da 100644
--- a/gdb/testsuite/gdb.ada/mi_interface/pck.adb
+++ b/gdb/testsuite/gdb.ada/mi_interface/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_interface/pck.ads b/gdb/testsuite/gdb.ada/mi_interface/pck.ads
index e3d72c2..53a0db2 100644
--- a/gdb/testsuite/gdb.ada/mi_interface/pck.ads
+++ b/gdb/testsuite/gdb.ada/mi_interface/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_prot.exp b/gdb/testsuite/gdb.ada/mi_prot.exp
index 8525c1f..7f68ca8 100644
--- a/gdb/testsuite/gdb.ada/mi_prot.exp
+++ b/gdb/testsuite/gdb.ada/mi_prot.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_prot/pkg.adb b/gdb/testsuite/gdb.ada/mi_prot/pkg.adb
index 770f1c1..052236e 100644
--- a/gdb/testsuite/gdb.ada/mi_prot/pkg.adb
+++ b/gdb/testsuite/gdb.ada/mi_prot/pkg.adb
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_prot/pkg.ads b/gdb/testsuite/gdb.ada/mi_prot/pkg.ads
index 58effdd..570cd6e 100644
--- a/gdb/testsuite/gdb.ada/mi_prot/pkg.ads
+++ b/gdb/testsuite/gdb.ada/mi_prot/pkg.ads
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_prot/prot.adb b/gdb/testsuite/gdb.ada/mi_prot/prot.adb
index 6e35bf4..2a843c9 100644
--- a/gdb/testsuite/gdb.ada/mi_prot/prot.adb
+++ b/gdb/testsuite/gdb.ada/mi_prot/prot.adb
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_ref_changeable.exp b/gdb/testsuite/gdb.ada/mi_ref_changeable.exp
index 6b0f235..315e2b3 100644
--- a/gdb/testsuite/gdb.ada/mi_ref_changeable.exp
+++ b/gdb/testsuite/gdb.ada/mi_ref_changeable.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_ref_changeable/foo_rb20_056.adb b/gdb/testsuite/gdb.ada/mi_ref_changeable/foo_rb20_056.adb
index f19f51f..402b922 100644
--- a/gdb/testsuite/gdb.ada/mi_ref_changeable/foo_rb20_056.adb
+++ b/gdb/testsuite/gdb.ada/mi_ref_changeable/foo_rb20_056.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_ref_changeable/pck.adb b/gdb/testsuite/gdb.ada/mi_ref_changeable/pck.adb
index 1d3bb7b..9e137b1 100644
--- a/gdb/testsuite/gdb.ada/mi_ref_changeable/pck.adb
+++ b/gdb/testsuite/gdb.ada/mi_ref_changeable/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_ref_changeable/pck.ads b/gdb/testsuite/gdb.ada/mi_ref_changeable/pck.ads
index d3bcfd2..9cbfdef 100644
--- a/gdb/testsuite/gdb.ada/mi_ref_changeable/pck.ads
+++ b/gdb/testsuite/gdb.ada/mi_ref_changeable/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_string_access.exp b/gdb/testsuite/gdb.ada/mi_string_access.exp
index 8fd116b..25c0490 100644
--- a/gdb/testsuite/gdb.ada/mi_string_access.exp
+++ b/gdb/testsuite/gdb.ada/mi_string_access.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -44,8 +44,9 @@ foreach_gnat_encoding scenario flags {all minimal} {
"\\^done,name=\"var1\",numchild=\"2\",.*" \
"Create var1 varobj"
+ # Accept "bar." prefix for older versions of GNAT.
mi_gdb_test "-var-list-children 1 var1" \
- "\\^done,numchild=\"2\",children=\\\[child={name=\"var1.1\",exp=\"1\",numchild=\"1\",value=\"$hex\",type=\"bar.string_access\",thread-id=\"$decimal\"},child={name=\"var1.2\",exp=\"2\",numchild=\"1\",value=\"$hex\",type=\"bar.string_access\",thread-id=\"$decimal\"}\\\],has_more=\"0\"" \
+ "\\^done,numchild=\"2\",children=\\\[child={name=\"var1.1\",exp=\"1\",numchild=\"1\",value=\"$hex\",type=\"(bar.)?string_access\",thread-id=\"$decimal\"},child={name=\"var1.2\",exp=\"2\",numchild=\"1\",value=\"$hex\",type=\"(bar.)?string_access\",thread-id=\"$decimal\"}\\\],has_more=\"0\"" \
"list var1's children"
mi_gdb_test "-var-evaluate-expression var1" \
diff --git a/gdb/testsuite/gdb.ada/mi_string_access/bar.adb b/gdb/testsuite/gdb.ada/mi_string_access/bar.adb
index c3608f0..128bbee 100644
--- a/gdb/testsuite/gdb.ada/mi_string_access/bar.adb
+++ b/gdb/testsuite/gdb.ada/mi_string_access/bar.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_string_access/pck.adb b/gdb/testsuite/gdb.ada/mi_string_access/pck.adb
index 7b68d2a..3ced0c2 100644
--- a/gdb/testsuite/gdb.ada/mi_string_access/pck.adb
+++ b/gdb/testsuite/gdb.ada/mi_string_access/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_string_access/pck.ads b/gdb/testsuite/gdb.ada/mi_string_access/pck.ads
index f39ba81..4e6f44f 100644
--- a/gdb/testsuite/gdb.ada/mi_string_access/pck.ads
+++ b/gdb/testsuite/gdb.ada/mi_string_access/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_task_arg.exp b/gdb/testsuite/gdb.ada/mi_task_arg.exp
index b4b7b49..018e3bc 100644
--- a/gdb/testsuite/gdb.ada/mi_task_arg.exp
+++ b/gdb/testsuite/gdb.ada/mi_task_arg.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_task_arg/task_switch.adb b/gdb/testsuite/gdb.ada/mi_task_arg/task_switch.adb
index e59c2b8..dd8328b 100644
--- a/gdb/testsuite/gdb.ada/mi_task_arg/task_switch.adb
+++ b/gdb/testsuite/gdb.ada/mi_task_arg/task_switch.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_task_info.exp b/gdb/testsuite/gdb.ada/mi_task_info.exp
index 7cf5a7e..aa05a02 100644
--- a/gdb/testsuite/gdb.ada/mi_task_info.exp
+++ b/gdb/testsuite/gdb.ada/mi_task_info.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_task_info/task_switch.adb b/gdb/testsuite/gdb.ada/mi_task_info/task_switch.adb
index e59c2b8..dd8328b 100644
--- a/gdb/testsuite/gdb.ada/mi_task_info/task_switch.adb
+++ b/gdb/testsuite/gdb.ada/mi_task_info/task_switch.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_var_access.exp b/gdb/testsuite/gdb.ada/mi_var_access.exp
index 15419bb..9bfaeff 100644
--- a/gdb/testsuite/gdb.ada/mi_var_access.exp
+++ b/gdb/testsuite/gdb.ada/mi_var_access.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -52,11 +52,18 @@ mi_continue_to_line \
"mi_access.adb:$bp_location" \
"stop at stop 2"
+# A helper to quote some expected output, then arrange for the package
+# component to be optional.
+proc optional_quote {out} {
+ set out [string_to_regexp $out]
+ return [regsub -all "pck\\\\." $out "(pck\\.)?"]
+}
+
# If the VAROBJ_UPDATE_RESULT.TYPE is true, the new_type and new_num_children
# strings and values will be printed. This currently happens on PowerPC but
# not X86-64.
set re_default [string_to_regexp {^done,changelist=[{name="A_String_Access",in_scope="true",type_changed="false",has_more="0"}]}]
-set re_varobj_update_result_type [string_to_regexp {^done,changelist=[{name="A_String_Access",in_scope="true",type_changed="true",new_type="pck.string_access",new_num_children="1",has_more="0"}]}]
+set re_varobj_update_result_type [optional_quote {^done,changelist=[{name="A_String_Access",in_scope="true",type_changed="true",new_type="pck.string_access",new_num_children="1",has_more="0"}]}]
mi_gdb_test "-var-update A_String_Access" \
"($re_default|$re_varobj_update_result_type)" \
"update at stop 2"
@@ -71,5 +78,5 @@ mi_continue_to_line \
"stop at stop 3"
mi_gdb_test "-var-update A_String_Access" \
- [string_to_regexp {^done,changelist=[{name="A_String_Access",in_scope="true",type_changed="true",new_type="pck.string_access",new_num_children="0",has_more="0"}]}] \
+ [optional_quote {^done,changelist=[{name="A_String_Access",in_scope="true",type_changed="true",new_type="pck.string_access",new_num_children="0",has_more="0"}]}] \
"update at stop 3"
diff --git a/gdb/testsuite/gdb.ada/mi_var_access/mi_access.adb b/gdb/testsuite/gdb.ada/mi_var_access/mi_access.adb
index cee7f3f..3860a0a 100644
--- a/gdb/testsuite/gdb.ada/mi_var_access/mi_access.adb
+++ b/gdb/testsuite/gdb.ada/mi_var_access/mi_access.adb
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_var_access/pck.adb b/gdb/testsuite/gdb.ada/mi_var_access/pck.adb
index 91dff60..4e4dda4 100644
--- a/gdb/testsuite/gdb.ada/mi_var_access/pck.adb
+++ b/gdb/testsuite/gdb.ada/mi_var_access/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_var_access/pck.ads b/gdb/testsuite/gdb.ada/mi_var_access/pck.ads
index b3f2ecb..da43b7a 100644
--- a/gdb/testsuite/gdb.ada/mi_var_access/pck.ads
+++ b/gdb/testsuite/gdb.ada/mi_var_access/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_var_array.exp b/gdb/testsuite/gdb.ada/mi_var_array.exp
index dd770a1..a04673c 100644
--- a/gdb/testsuite/gdb.ada/mi_var_array.exp
+++ b/gdb/testsuite/gdb.ada/mi_var_array.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_var_array/bar.adb b/gdb/testsuite/gdb.ada/mi_var_array/bar.adb
index a71934b..a010167 100644
--- a/gdb/testsuite/gdb.ada/mi_var_array/bar.adb
+++ b/gdb/testsuite/gdb.ada/mi_var_array/bar.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_var_array/pck.adb b/gdb/testsuite/gdb.ada/mi_var_array/pck.adb
index 7cdfe48..f62d089 100644
--- a/gdb/testsuite/gdb.ada/mi_var_array/pck.adb
+++ b/gdb/testsuite/gdb.ada/mi_var_array/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_var_array/pck.ads b/gdb/testsuite/gdb.ada/mi_var_array/pck.ads
index ecbc456..e1104fa 100644
--- a/gdb/testsuite/gdb.ada/mi_var_array/pck.ads
+++ b/gdb/testsuite/gdb.ada/mi_var_array/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_var_union.exp b/gdb/testsuite/gdb.ada/mi_var_union.exp
index 64bfe33..99882cf 100644
--- a/gdb/testsuite/gdb.ada/mi_var_union.exp
+++ b/gdb/testsuite/gdb.ada/mi_var_union.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_var_union/bar.adb b/gdb/testsuite/gdb.ada/mi_var_union/bar.adb
index c6dafc3..a334bff 100644
--- a/gdb/testsuite/gdb.ada/mi_var_union/bar.adb
+++ b/gdb/testsuite/gdb.ada/mi_var_union/bar.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_var_union/pck.adb b/gdb/testsuite/gdb.ada/mi_var_union/pck.adb
index 7b68d2a..3ced0c2 100644
--- a/gdb/testsuite/gdb.ada/mi_var_union/pck.adb
+++ b/gdb/testsuite/gdb.ada/mi_var_union/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_var_union/pck.ads b/gdb/testsuite/gdb.ada/mi_var_union/pck.ads
index f39ba81..4e6f44f 100644
--- a/gdb/testsuite/gdb.ada/mi_var_union/pck.ads
+++ b/gdb/testsuite/gdb.ada/mi_var_union/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_variant.exp b/gdb/testsuite/gdb.ada/mi_variant.exp
index f4be5a0..4c71f16 100644
--- a/gdb/testsuite/gdb.ada/mi_variant.exp
+++ b/gdb/testsuite/gdb.ada/mi_variant.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_variant/pck.ads b/gdb/testsuite/gdb.ada/mi_variant/pck.ads
index 25cc8d4..e01f731 100644
--- a/gdb/testsuite/gdb.ada/mi_variant/pck.ads
+++ b/gdb/testsuite/gdb.ada/mi_variant/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mi_variant/pkg.adb b/gdb/testsuite/gdb.ada/mi_variant/pkg.adb
index 1c3a6b2..4d2a828 100644
--- a/gdb/testsuite/gdb.ada/mi_variant/pkg.adb
+++ b/gdb/testsuite/gdb.ada/mi_variant/pkg.adb
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/minsyms.exp b/gdb/testsuite/gdb.ada/minsyms.exp
index 3e2c50d..355204b 100644
--- a/gdb/testsuite/gdb.ada/minsyms.exp
+++ b/gdb/testsuite/gdb.ada/minsyms.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/minsyms/foo_qb07_057.adb b/gdb/testsuite/gdb.ada/minsyms/foo_qb07_057.adb
index e7e5ff8..3608b46 100644
--- a/gdb/testsuite/gdb.ada/minsyms/foo_qb07_057.adb
+++ b/gdb/testsuite/gdb.ada/minsyms/foo_qb07_057.adb
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/minsyms/pck.adb b/gdb/testsuite/gdb.ada/minsyms/pck.adb
index 3db7a19..a6d3bba 100644
--- a/gdb/testsuite/gdb.ada/minsyms/pck.adb
+++ b/gdb/testsuite/gdb.ada/minsyms/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/minsyms/pck.ads b/gdb/testsuite/gdb.ada/minsyms/pck.ads
index 0151436..6c08a19 100644
--- a/gdb/testsuite/gdb.ada/minsyms/pck.ads
+++ b/gdb/testsuite/gdb.ada/minsyms/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mod_from_name.exp b/gdb/testsuite/gdb.ada/mod_from_name.exp
index 99effb0..6384f39 100644
--- a/gdb/testsuite/gdb.ada/mod_from_name.exp
+++ b/gdb/testsuite/gdb.ada/mod_from_name.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/mod_from_name/foo.adb b/gdb/testsuite/gdb.ada/mod_from_name/foo.adb
index b339404..a8d70d3 100644
--- a/gdb/testsuite/gdb.ada/mod_from_name/foo.adb
+++ b/gdb/testsuite/gdb.ada/mod_from_name/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2009-2024 Free Software Foundation, Inc.
+-- Copyright 2009-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/multiarray.exp b/gdb/testsuite/gdb.ada/multiarray.exp
index 91ba1ec..9e8eedb 100644
--- a/gdb/testsuite/gdb.ada/multiarray.exp
+++ b/gdb/testsuite/gdb.ada/multiarray.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/multiarray/p.adb b/gdb/testsuite/gdb.ada/multiarray/p.adb
index ca568be..7c13221 100644
--- a/gdb/testsuite/gdb.ada/multiarray/p.adb
+++ b/gdb/testsuite/gdb.ada/multiarray/p.adb
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/multiarray/pack.adb b/gdb/testsuite/gdb.ada/multiarray/pack.adb
index 767221f..7bf8395 100644
--- a/gdb/testsuite/gdb.ada/multiarray/pack.adb
+++ b/gdb/testsuite/gdb.ada/multiarray/pack.adb
@@ -1,4 +1,4 @@
--- Copyright 2024 Free Software Foundation, Inc.
+-- Copyright 2024-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/multiarray/pack.ads b/gdb/testsuite/gdb.ada/multiarray/pack.ads
index f6f0ca1..d74eaf1 100644
--- a/gdb/testsuite/gdb.ada/multiarray/pack.ads
+++ b/gdb/testsuite/gdb.ada/multiarray/pack.ads
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/n_arr_bound.exp b/gdb/testsuite/gdb.ada/n_arr_bound.exp
index 4b4a6db..4629279 100644
--- a/gdb/testsuite/gdb.ada/n_arr_bound.exp
+++ b/gdb/testsuite/gdb.ada/n_arr_bound.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/n_arr_bound/foo.adb b/gdb/testsuite/gdb.ada/n_arr_bound/foo.adb
index 892a93a..7dd68c4 100644
--- a/gdb/testsuite/gdb.ada/n_arr_bound/foo.adb
+++ b/gdb/testsuite/gdb.ada/n_arr_bound/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/n_arr_bound/pck.adb b/gdb/testsuite/gdb.ada/n_arr_bound/pck.adb
index a175b7b..d29c5da 100644
--- a/gdb/testsuite/gdb.ada/n_arr_bound/pck.adb
+++ b/gdb/testsuite/gdb.ada/n_arr_bound/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/n_arr_bound/pck.ads b/gdb/testsuite/gdb.ada/n_arr_bound/pck.ads
index 384bf08..02fc1c8 100644
--- a/gdb/testsuite/gdb.ada/n_arr_bound/pck.ads
+++ b/gdb/testsuite/gdb.ada/n_arr_bound/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/negative-bit-offset.exp b/gdb/testsuite/gdb.ada/negative-bit-offset.exp
new file mode 100644
index 0000000..c5fcae1
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/negative-bit-offset.exp
@@ -0,0 +1,36 @@
+# Copyright 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Test negative DW_AT_bit_offset.
+
+load_lib "ada.exp"
+
+require allow_ada_tests
+
+standard_ada_testfile prog
+
+# This particular output is only generated with -gdwarf-4.
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable \
+ {debug additional_flags=-gdwarf-4}] != ""} {
+ return
+}
+
+clean_restart ${testfile}
+
+set bp_location [gdb_get_line_number "STOP" ${testdir}/prog.adb]
+runto "prog.adb:$bp_location"
+
+gdb_test "print xp" \
+ [string_to_regexp "(x => 21, y => (-1, -2, -3, -4, -5, -6, -7, -8, -9, -10))"]
diff --git a/gdb/testsuite/gdb.ada/negative-bit-offset/prog.adb b/gdb/testsuite/gdb.ada/negative-bit-offset/prog.adb
new file mode 100644
index 0000000..e3c1775
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/negative-bit-offset/prog.adb
@@ -0,0 +1,36 @@
+-- Copyright 2025 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- 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, see <http://www.gnu.org/licenses/>.
+
+procedure Prog is
+
+ type Small is range -32 .. 31;
+ for Small'Size use 6;
+
+ type SomeArray is array (POSITIVE range <>) of Small;
+
+ type SomePackedArray is array (POSITIVE range <>) of Small;
+ pragma Pack (SomePackedArray);
+
+ type SomePackedRecord is record
+ X: Small;
+ Y: SomePackedArray (1 .. 10);
+ end record;
+ pragma Pack (SomePackedRecord);
+
+ XP: SomePackedRecord := (21, (-1, -2, -3, -4, -5, -6, -7, -8, -9, -10));
+
+begin
+ null; -- STOP
+end;
diff --git a/gdb/testsuite/gdb.ada/nested.exp b/gdb/testsuite/gdb.ada/nested.exp
index 9f5cfc4..48aebe7 100644
--- a/gdb/testsuite/gdb.ada/nested.exp
+++ b/gdb/testsuite/gdb.ada/nested.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/nested/hello.adb b/gdb/testsuite/gdb.ada/nested/hello.adb
index 437d948..eb6d9a4 100644
--- a/gdb/testsuite/gdb.ada/nested/hello.adb
+++ b/gdb/testsuite/gdb.ada/nested/hello.adb
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/non-ascii-latin-1.exp b/gdb/testsuite/gdb.ada/non-ascii-latin-1.exp
index cc5b506..caf22a5 100644
--- a/gdb/testsuite/gdb.ada/non-ascii-latin-1.exp
+++ b/gdb/testsuite/gdb.ada/non-ascii-latin-1.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/non-ascii-latin-1/pack.adb b/gdb/testsuite/gdb.ada/non-ascii-latin-1/pack.adb
index 63f69ef..603d4ae 100644
--- a/gdb/testsuite/gdb.ada/non-ascii-latin-1/pack.adb
+++ b/gdb/testsuite/gdb.ada/non-ascii-latin-1/pack.adb
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc. -*- coding: iso-latin-1 -*-
+-- Copyright 2022-2025 Free Software Foundation, Inc. -*- coding: iso-latin-1 -*-
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/non-ascii-latin-1/pack.ads b/gdb/testsuite/gdb.ada/non-ascii-latin-1/pack.ads
index fc5f440..6ce993d 100644
--- a/gdb/testsuite/gdb.ada/non-ascii-latin-1/pack.ads
+++ b/gdb/testsuite/gdb.ada/non-ascii-latin-1/pack.ads
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc. -*- coding: iso-latin-1 -*-
+-- Copyright 2022-2025 Free Software Foundation, Inc. -*- coding: iso-latin-1 -*-
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/non-ascii-latin-1/prog.adb b/gdb/testsuite/gdb.ada/non-ascii-latin-1/prog.adb
index 32bcc75..bb01577 100644
--- a/gdb/testsuite/gdb.ada/non-ascii-latin-1/prog.adb
+++ b/gdb/testsuite/gdb.ada/non-ascii-latin-1/prog.adb
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc. -*- coding: iso-latin-1 -*-
+-- Copyright 2022-2025 Free Software Foundation, Inc. -*- coding: iso-latin-1 -*-
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/non-ascii-latin-3.exp b/gdb/testsuite/gdb.ada/non-ascii-latin-3.exp
index c7a3835..873cd68 100644
--- a/gdb/testsuite/gdb.ada/non-ascii-latin-3.exp
+++ b/gdb/testsuite/gdb.ada/non-ascii-latin-3.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/non-ascii-latin-3/pack.adb b/gdb/testsuite/gdb.ada/non-ascii-latin-3/pack.adb
index bd3ec58..3c92ac5 100644
--- a/gdb/testsuite/gdb.ada/non-ascii-latin-3/pack.adb
+++ b/gdb/testsuite/gdb.ada/non-ascii-latin-3/pack.adb
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc. -*- coding: iso-latin-3 -*-
+-- Copyright 2022-2025 Free Software Foundation, Inc. -*- coding: iso-latin-3 -*-
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/non-ascii-latin-3/pack.ads b/gdb/testsuite/gdb.ada/non-ascii-latin-3/pack.ads
index 6282575..bfc0211 100644
--- a/gdb/testsuite/gdb.ada/non-ascii-latin-3/pack.ads
+++ b/gdb/testsuite/gdb.ada/non-ascii-latin-3/pack.ads
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc. -*- coding: iso-latin-3 -*-
+-- Copyright 2022-2025 Free Software Foundation, Inc. -*- coding: iso-latin-3 -*-
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/non-ascii-latin-3/prog.adb b/gdb/testsuite/gdb.ada/non-ascii-latin-3/prog.adb
index 3fced83..fa766a8 100644
--- a/gdb/testsuite/gdb.ada/non-ascii-latin-3/prog.adb
+++ b/gdb/testsuite/gdb.ada/non-ascii-latin-3/prog.adb
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc. -*- coding: iso-latin-3 -*-
+-- Copyright 2022-2025 Free Software Foundation, Inc. -*- coding: iso-latin-3 -*-
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/non-ascii-utf-8.exp b/gdb/testsuite/gdb.ada/non-ascii-utf-8.exp
index e0ac8f9..6e42f53 100644
--- a/gdb/testsuite/gdb.ada/non-ascii-utf-8.exp
+++ b/gdb/testsuite/gdb.ada/non-ascii-utf-8.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/non-ascii-utf-8/pack.adb b/gdb/testsuite/gdb.ada/non-ascii-utf-8/pack.adb
index 9b3b116..ffe6ef7 100644
--- a/gdb/testsuite/gdb.ada/non-ascii-utf-8/pack.adb
+++ b/gdb/testsuite/gdb.ada/non-ascii-utf-8/pack.adb
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/non-ascii-utf-8/pack.ads b/gdb/testsuite/gdb.ada/non-ascii-utf-8/pack.ads
index 2941618..9fabc45 100644
--- a/gdb/testsuite/gdb.ada/non-ascii-utf-8/pack.ads
+++ b/gdb/testsuite/gdb.ada/non-ascii-utf-8/pack.ads
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/non-ascii-utf-8/prog.adb b/gdb/testsuite/gdb.ada/non-ascii-utf-8/prog.adb
index 2a0f550..f81de8c 100644
--- a/gdb/testsuite/gdb.ada/non-ascii-utf-8/prog.adb
+++ b/gdb/testsuite/gdb.ada/non-ascii-utf-8/prog.adb
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/notcplusplus.exp b/gdb/testsuite/gdb.ada/notcplusplus.exp
index c65d5f8..1774e49 100644
--- a/gdb/testsuite/gdb.ada/notcplusplus.exp
+++ b/gdb/testsuite/gdb.ada/notcplusplus.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/notcplusplus/foo.adb b/gdb/testsuite/gdb.ada/notcplusplus/foo.adb
index 8c639ce..5c2353e 100644
--- a/gdb/testsuite/gdb.ada/notcplusplus/foo.adb
+++ b/gdb/testsuite/gdb.ada/notcplusplus/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/notcplusplus/pck.adb b/gdb/testsuite/gdb.ada/notcplusplus/pck.adb
index 7b68d2a..3ced0c2 100644
--- a/gdb/testsuite/gdb.ada/notcplusplus/pck.adb
+++ b/gdb/testsuite/gdb.ada/notcplusplus/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/notcplusplus/pck.ads b/gdb/testsuite/gdb.ada/notcplusplus/pck.ads
index f39ba81..4e6f44f 100644
--- a/gdb/testsuite/gdb.ada/notcplusplus/pck.ads
+++ b/gdb/testsuite/gdb.ada/notcplusplus/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/notcplusplus/ver.ads b/gdb/testsuite/gdb.ada/notcplusplus/ver.ads
index 19dd27b..befda97 100644
--- a/gdb/testsuite/gdb.ada/notcplusplus/ver.ads
+++ b/gdb/testsuite/gdb.ada/notcplusplus/ver.ads
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/null_array.exp b/gdb/testsuite/gdb.ada/null_array.exp
index b4e218f..82c1923 100644
--- a/gdb/testsuite/gdb.ada/null_array.exp
+++ b/gdb/testsuite/gdb.ada/null_array.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/null_array/foo.adb b/gdb/testsuite/gdb.ada/null_array/foo.adb
index f678efb..9f85c38 100644
--- a/gdb/testsuite/gdb.ada/null_array/foo.adb
+++ b/gdb/testsuite/gdb.ada/null_array/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/null_array/pck.adb b/gdb/testsuite/gdb.ada/null_array/pck.adb
index 9e5cd5f..646a0d4 100644
--- a/gdb/testsuite/gdb.ada/null_array/pck.adb
+++ b/gdb/testsuite/gdb.ada/null_array/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/null_array/pck.ads b/gdb/testsuite/gdb.ada/null_array/pck.ads
index 28e14ed..db8532a 100644
--- a/gdb/testsuite/gdb.ada/null_array/pck.ads
+++ b/gdb/testsuite/gdb.ada/null_array/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/null_overload.exp b/gdb/testsuite/gdb.ada/null_overload.exp
index 434366f..46d4530 100644
--- a/gdb/testsuite/gdb.ada/null_overload.exp
+++ b/gdb/testsuite/gdb.ada/null_overload.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -34,4 +34,5 @@ gdb_test "print f(0)" " = false"
gdb_test "print null" " = null"
gdb_test "print/d null" " = 0"
-gdb_test "print U_Ptr" " = \\\(access foo\\.u_0\\\) 0x0"
+# Accept "foo." prefix for older versions of GNAT.
+gdb_test "print U_Ptr" " = \\\(access (foo\\.)?u_0\\\) 0x0"
diff --git a/gdb/testsuite/gdb.ada/null_overload/foo.adb b/gdb/testsuite/gdb.ada/null_overload/foo.adb
index c29316c..55d3fd6 100644
--- a/gdb/testsuite/gdb.ada/null_overload/foo.adb
+++ b/gdb/testsuite/gdb.ada/null_overload/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
@@ -13,6 +13,8 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+with pck; use pck;
+
procedure Foo is
type R_Type is null record;
@@ -38,5 +40,5 @@ procedure Foo is
U_Ptr : U_P_T := null;
begin
- null; -- START
+ Do_Nothing (U_Ptr'Address); -- START
end Foo;
diff --git a/gdb/testsuite/gdb.ada/null_overload/pck.adb b/gdb/testsuite/gdb.ada/null_overload/pck.adb
new file mode 100644
index 0000000..95bd90a
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/null_overload/pck.adb
@@ -0,0 +1,23 @@
+-- Copyright 2020-2025 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- 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, see <http://www.gnu.org/licenses/>.
+
+package body Pck is
+
+ procedure Do_Nothing (A : System.Address) is
+ begin
+ null;
+ end Do_Nothing;
+
+end Pck;
diff --git a/gdb/testsuite/gdb.ada/null_overload/pck.ads b/gdb/testsuite/gdb.ada/null_overload/pck.ads
new file mode 100644
index 0000000..114aee0
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/null_overload/pck.ads
@@ -0,0 +1,22 @@
+-- Copyright 2020-2025 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- 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, see <http://www.gnu.org/licenses/>.
+
+with System;
+
+package Pck is
+
+ procedure Do_Nothing (A : System.Address);
+
+end Pck;
diff --git a/gdb/testsuite/gdb.ada/null_record.exp b/gdb/testsuite/gdb.ada/null_record.exp
index 4aee479..092d972 100644
--- a/gdb/testsuite/gdb.ada/null_record.exp
+++ b/gdb/testsuite/gdb.ada/null_record.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/null_record/bar.adb b/gdb/testsuite/gdb.ada/null_record/bar.adb
index 8ad3f1b..897a9ab 100644
--- a/gdb/testsuite/gdb.ada/null_record/bar.adb
+++ b/gdb/testsuite/gdb.ada/null_record/bar.adb
@@ -1,4 +1,4 @@
--- Copyright 2004-2024 Free Software Foundation, Inc.
+-- Copyright 2004-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/null_record/bar.ads b/gdb/testsuite/gdb.ada/null_record/bar.ads
index 49a0e64..c16f71a 100644
--- a/gdb/testsuite/gdb.ada/null_record/bar.ads
+++ b/gdb/testsuite/gdb.ada/null_record/bar.ads
@@ -1,4 +1,4 @@
--- Copyright 2004-2024 Free Software Foundation, Inc.
+-- Copyright 2004-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/null_record/null_record.adb b/gdb/testsuite/gdb.ada/null_record/null_record.adb
index 2dbc113..07bf4d9 100644
--- a/gdb/testsuite/gdb.ada/null_record/null_record.adb
+++ b/gdb/testsuite/gdb.ada/null_record/null_record.adb
@@ -1,4 +1,4 @@
--- Copyright 2004-2024 Free Software Foundation, Inc.
+-- Copyright 2004-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/operator_bp.exp b/gdb/testsuite/gdb.ada/operator_bp.exp
index 2335d49..630d901 100644
--- a/gdb/testsuite/gdb.ada/operator_bp.exp
+++ b/gdb/testsuite/gdb.ada/operator_bp.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/operator_bp/ops.adb b/gdb/testsuite/gdb.ada/operator_bp/ops.adb
index 3296d97..412824f 100644
--- a/gdb/testsuite/gdb.ada/operator_bp/ops.adb
+++ b/gdb/testsuite/gdb.ada/operator_bp/ops.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/operator_bp/ops.ads b/gdb/testsuite/gdb.ada/operator_bp/ops.ads
index 1deb02d..a5ca7eb 100644
--- a/gdb/testsuite/gdb.ada/operator_bp/ops.ads
+++ b/gdb/testsuite/gdb.ada/operator_bp/ops.ads
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/operator_bp/ops_test.adb b/gdb/testsuite/gdb.ada/operator_bp/ops_test.adb
index 9875f70..f65ea0b 100644
--- a/gdb/testsuite/gdb.ada/operator_bp/ops_test.adb
+++ b/gdb/testsuite/gdb.ada/operator_bp/ops_test.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/operator_call.exp b/gdb/testsuite/gdb.ada/operator_call.exp
index c1df212..e96107b 100644
--- a/gdb/testsuite/gdb.ada/operator_call.exp
+++ b/gdb/testsuite/gdb.ada/operator_call.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/operator_call/opcall.adb b/gdb/testsuite/gdb.ada/operator_call/opcall.adb
index 77c0d11..19fc625 100644
--- a/gdb/testsuite/gdb.ada/operator_call/opcall.adb
+++ b/gdb/testsuite/gdb.ada/operator_call/opcall.adb
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/operator_call/twovecs.adb b/gdb/testsuite/gdb.ada/operator_call/twovecs.adb
index 120df82..2621267 100644
--- a/gdb/testsuite/gdb.ada/operator_call/twovecs.adb
+++ b/gdb/testsuite/gdb.ada/operator_call/twovecs.adb
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/operator_call/twovecs.ads b/gdb/testsuite/gdb.ada/operator_call/twovecs.ads
index 160cd25..96b6968 100644
--- a/gdb/testsuite/gdb.ada/operator_call/twovecs.ads
+++ b/gdb/testsuite/gdb.ada/operator_call/twovecs.ads
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/optim_drec.exp b/gdb/testsuite/gdb.ada/optim_drec.exp
index faf44a7..3f50879 100644
--- a/gdb/testsuite/gdb.ada/optim_drec.exp
+++ b/gdb/testsuite/gdb.ada/optim_drec.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/optim_drec/foo.adb b/gdb/testsuite/gdb.ada/optim_drec/foo.adb
index 80e51df..3a158fc 100644
--- a/gdb/testsuite/gdb.ada/optim_drec/foo.adb
+++ b/gdb/testsuite/gdb.ada/optim_drec/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/out_of_line_in_inlined.exp b/gdb/testsuite/gdb.ada/out_of_line_in_inlined.exp
index 2adef97..c15b127 100644
--- a/gdb/testsuite/gdb.ada/out_of_line_in_inlined.exp
+++ b/gdb/testsuite/gdb.ada/out_of_line_in_inlined.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.adb b/gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.adb
index 2246620..53f5290 100644
--- a/gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.adb
+++ b/gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.ads b/gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.ads
index 7faee6f..c489232 100644
--- a/gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.ads
+++ b/gdb/testsuite/gdb.ada/out_of_line_in_inlined/bar.ads
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/out_of_line_in_inlined/foo_o224_021.adb b/gdb/testsuite/gdb.ada/out_of_line_in_inlined/foo_o224_021.adb
index 5c3fc86..5802c43 100644
--- a/gdb/testsuite/gdb.ada/out_of_line_in_inlined/foo_o224_021.adb
+++ b/gdb/testsuite/gdb.ada/out_of_line_in_inlined/foo_o224_021.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/overload_menu_crash.exp b/gdb/testsuite/gdb.ada/overload_menu_crash.exp
index ea9841e..6e8e74e 100644
--- a/gdb/testsuite/gdb.ada/overload_menu_crash.exp
+++ b/gdb/testsuite/gdb.ada/overload_menu_crash.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/overload_menu_crash/main.adb b/gdb/testsuite/gdb.ada/overload_menu_crash/main.adb
index f69c37f..69c2296 100644
--- a/gdb/testsuite/gdb.ada/overload_menu_crash/main.adb
+++ b/gdb/testsuite/gdb.ada/overload_menu_crash/main.adb
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/overload_menu_crash/pck.adb b/gdb/testsuite/gdb.ada/overload_menu_crash/pck.adb
index be0994f..fc922ea 100644
--- a/gdb/testsuite/gdb.ada/overload_menu_crash/pck.adb
+++ b/gdb/testsuite/gdb.ada/overload_menu_crash/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/overload_menu_crash/pck.ads b/gdb/testsuite/gdb.ada/overload_menu_crash/pck.ads
index ecb0fdd..0d4542c 100644
--- a/gdb/testsuite/gdb.ada/overload_menu_crash/pck.ads
+++ b/gdb/testsuite/gdb.ada/overload_menu_crash/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/overloads.exp b/gdb/testsuite/gdb.ada/overloads.exp
index 529b72d..b11020f 100644
--- a/gdb/testsuite/gdb.ada/overloads.exp
+++ b/gdb/testsuite/gdb.ada/overloads.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/overloads/overloads.adb b/gdb/testsuite/gdb.ada/overloads/overloads.adb
index 734214d..4005a99 100644
--- a/gdb/testsuite/gdb.ada/overloads/overloads.adb
+++ b/gdb/testsuite/gdb.ada/overloads/overloads.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/p-bounds/pck.adb b/gdb/testsuite/gdb.ada/p-bounds/pck.adb
index a175b7b..d29c5da 100644
--- a/gdb/testsuite/gdb.ada/p-bounds/pck.adb
+++ b/gdb/testsuite/gdb.ada/p-bounds/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/p-bounds/pck.ads b/gdb/testsuite/gdb.ada/p-bounds/pck.ads
index 5668577..d9c82ba 100644
--- a/gdb/testsuite/gdb.ada/p-bounds/pck.ads
+++ b/gdb/testsuite/gdb.ada/p-bounds/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/packed_array.exp b/gdb/testsuite/gdb.ada/packed_array.exp
index 85bc59d..7a561bf 100644
--- a/gdb/testsuite/gdb.ada/packed_array.exp
+++ b/gdb/testsuite/gdb.ada/packed_array.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -40,8 +40,9 @@ foreach_gnat_encoding scenario flags {all minimal} {
gdb_test "ptype &var" \
"type = access array \\(4 \\.\\. 8\\) of boolean <packed: 1-bit elements>"
+ # Accept "pa." prefix for older versions of GNAT.
gdb_test "print &var" \
- "= \\(access pa.packed_array\\) 0x.*"
+ "= \\(access (pa.)?packed_array\\) 0x.*"
# Print the value of U_Var, an unconstrainted packed array.
diff --git a/gdb/testsuite/gdb.ada/packed_array/pa.adb b/gdb/testsuite/gdb.ada/packed_array/pa.adb
index 997912a..657d752 100644
--- a/gdb/testsuite/gdb.ada/packed_array/pa.adb
+++ b/gdb/testsuite/gdb.ada/packed_array/pa.adb
@@ -1,4 +1,4 @@
--- Copyright 2005-2024 Free Software Foundation, Inc.
+-- Copyright 2005-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/packed_array/pck.adb b/gdb/testsuite/gdb.ada/packed_array/pck.adb
index c2c055a..5c0e482 100644
--- a/gdb/testsuite/gdb.ada/packed_array/pck.adb
+++ b/gdb/testsuite/gdb.ada/packed_array/pck.adb
@@ -1,4 +1,4 @@
--- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+-- Copyright (C) 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/packed_array/pck.ads b/gdb/testsuite/gdb.ada/packed_array/pck.ads
index 9475443..cfb8117 100644
--- a/gdb/testsuite/gdb.ada/packed_array/pck.ads
+++ b/gdb/testsuite/gdb.ada/packed_array/pck.ads
@@ -1,4 +1,4 @@
--- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+-- Copyright (C) 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/packed_array_assign.exp b/gdb/testsuite/gdb.ada/packed_array_assign.exp
index 0b7d106..3093d0b 100644
--- a/gdb/testsuite/gdb.ada/packed_array_assign.exp
+++ b/gdb/testsuite/gdb.ada/packed_array_assign.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/packed_array_assign/aggregates.adb b/gdb/testsuite/gdb.ada/packed_array_assign/aggregates.adb
index cb09fe2..93d9050 100644
--- a/gdb/testsuite/gdb.ada/packed_array_assign/aggregates.adb
+++ b/gdb/testsuite/gdb.ada/packed_array_assign/aggregates.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/packed_array_assign/aggregates.ads b/gdb/testsuite/gdb.ada/packed_array_assign/aggregates.ads
index 053218b..588709a 100644
--- a/gdb/testsuite/gdb.ada/packed_array_assign/aggregates.ads
+++ b/gdb/testsuite/gdb.ada/packed_array_assign/aggregates.ads
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/packed_array_assign/pck.adb b/gdb/testsuite/gdb.ada/packed_array_assign/pck.adb
index 5a77a03..b73846c 100644
--- a/gdb/testsuite/gdb.ada/packed_array_assign/pck.adb
+++ b/gdb/testsuite/gdb.ada/packed_array_assign/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/packed_array_assign/pck.ads b/gdb/testsuite/gdb.ada/packed_array_assign/pck.ads
index f482d88..daa880e 100644
--- a/gdb/testsuite/gdb.ada/packed_array_assign/pck.ads
+++ b/gdb/testsuite/gdb.ada/packed_array_assign/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/packed_array_assign/tester.adb b/gdb/testsuite/gdb.ada/packed_array_assign/tester.adb
index 56809be..6b48c43 100644
--- a/gdb/testsuite/gdb.ada/packed_array_assign/tester.adb
+++ b/gdb/testsuite/gdb.ada/packed_array_assign/tester.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/packed_record.exp b/gdb/testsuite/gdb.ada/packed_record.exp
index 043c940..ad371f9 100644
--- a/gdb/testsuite/gdb.ada/packed_record.exp
+++ b/gdb/testsuite/gdb.ada/packed_record.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/packed_record/pck.adb b/gdb/testsuite/gdb.ada/packed_record/pck.adb
index a175b7b..d29c5da 100644
--- a/gdb/testsuite/gdb.ada/packed_record/pck.adb
+++ b/gdb/testsuite/gdb.ada/packed_record/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/packed_record/pck.ads b/gdb/testsuite/gdb.ada/packed_record/pck.ads
index 384bf08..02fc1c8 100644
--- a/gdb/testsuite/gdb.ada/packed_record/pck.ads
+++ b/gdb/testsuite/gdb.ada/packed_record/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/packed_record/pr.adb b/gdb/testsuite/gdb.ada/packed_record/pr.adb
index 621ee1e..f3205a6 100644
--- a/gdb/testsuite/gdb.ada/packed_record/pr.adb
+++ b/gdb/testsuite/gdb.ada/packed_record/pr.adb
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/packed_record_2.exp b/gdb/testsuite/gdb.ada/packed_record_2.exp
new file mode 100644
index 0000000..d0bcdbd
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/packed_record_2.exp
@@ -0,0 +1,61 @@
+# Copyright 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+load_lib "ada.exp"
+
+require allow_ada_tests
+
+standard_ada_testfile exam
+
+set flags {debug}
+if {[ada_minimal_encodings]} {
+ lappend flags additional_flags=-fgnat-encodings=minimal
+}
+
+if {[gdb_compile_ada "${srcfile}" "${binfile}" executable $flags] != ""} {
+ return -1
+}
+
+clean_restart ${testfile}
+
+set bp_location [gdb_get_line_number "STOP" ${testdir}/exam.adb]
+runto "exam.adb:$bp_location"
+
+set spr_contents "discr => 3, field => -4, array_field => \\(-5, -6, -7\\)"
+
+gdb_test "print spr" " = \\($spr_contents\\)"
+
+gdb_test "print spr.discr" " = 3"
+
+# See PR ada/32880 -- gdb should probably print array (1 .. 3) here,
+# but instead shows array (<>). However as this isn't totally
+# relevant to this test, we just accept it.
+gdb_test "ptype spr" \
+ [multi_line \
+ "type = tagged record" \
+ " discr: range 1 .. 8;" \
+ " field: range -7 .. -4;" \
+ " array_field: array \\(<>\\) of exam.small <packed: 2-bit elements>;" \
+ "end record"]
+
+gdb_test_multiple "print sc" "" {
+ -re " \\($spr_contents, outer => 2, another_array => \\(-7, -6\\)\\)" {
+ pass $gdb_test_name
+ }
+ -re " \\($spr_contents, outer => $decimal, another_array => \\(.*\\)\\)" {
+ # Other output is a known GCC bug.
+ xfail $gdb_test_name
+ }
+}
diff --git a/gdb/testsuite/gdb.ada/packed_record_2/exam.adb b/gdb/testsuite/gdb.ada/packed_record_2/exam.adb
new file mode 100644
index 0000000..e528ecf
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/packed_record_2/exam.adb
@@ -0,0 +1,51 @@
+-- Copyright 2025 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- 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, see <http://www.gnu.org/licenses/>.
+
+procedure Exam is
+ type Small is range -7 .. -4;
+ for Small'Size use 2;
+
+ type Range_Int is range 1 .. 8;
+ for Range_Int'Size use 3;
+
+ type Packed_Array is array (Range_Int range <>) of Small;
+ pragma pack (Packed_Array);
+
+ type Some_Packed_Record (Discr : Range_Int) is tagged record
+ Field: Small;
+ Array_Field : Packed_Array (1 .. Discr);
+ end record;
+ pragma Pack (Some_Packed_Record);
+
+ type Sub_Class (Inner, Outer : Range_Int)
+ is new Some_Packed_Record (Inner) with
+ record
+ Another_Array : Packed_Array (1 .. Outer);
+ end record;
+ pragma Pack (Sub_Class);
+
+ SPR : Some_Packed_Record := (Discr => 3,
+ Field => -4,
+ Array_Field => (-5, -6, -7));
+
+ SC : Sub_Class := (Inner => 3,
+ Outer => 2,
+ Field => -4,
+ Array_Field => (-5, -6, -7),
+ Another_Array => (-7, -6));
+
+begin
+ null; -- STOP
+end Exam;
diff --git a/gdb/testsuite/gdb.ada/packed_tagged.exp b/gdb/testsuite/gdb.ada/packed_tagged.exp
index 1c9e5a0..2a48037 100644
--- a/gdb/testsuite/gdb.ada/packed_tagged.exp
+++ b/gdb/testsuite/gdb.ada/packed_tagged.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/packed_tagged/comp_bug.adb b/gdb/testsuite/gdb.ada/packed_tagged/comp_bug.adb
index e7f1689..87a6a20 100644
--- a/gdb/testsuite/gdb.ada/packed_tagged/comp_bug.adb
+++ b/gdb/testsuite/gdb.ada/packed_tagged/comp_bug.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/pckd_arr_ren.exp b/gdb/testsuite/gdb.ada/pckd_arr_ren.exp
index 694cc23..8a58cc3 100644
--- a/gdb/testsuite/gdb.ada/pckd_arr_ren.exp
+++ b/gdb/testsuite/gdb.ada/pckd_arr_ren.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/pckd_arr_ren/foo.adb b/gdb/testsuite/gdb.ada/pckd_arr_ren/foo.adb
index 2e1cc1d..3d5aaa2 100644
--- a/gdb/testsuite/gdb.ada/pckd_arr_ren/foo.adb
+++ b/gdb/testsuite/gdb.ada/pckd_arr_ren/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/pckd_arr_ren/pck.adb b/gdb/testsuite/gdb.ada/pckd_arr_ren/pck.adb
index 60a07e7..d1b5a2b 100644
--- a/gdb/testsuite/gdb.ada/pckd_arr_ren/pck.adb
+++ b/gdb/testsuite/gdb.ada/pckd_arr_ren/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/pckd_arr_ren/pck.ads b/gdb/testsuite/gdb.ada/pckd_arr_ren/pck.ads
index 42694d9..8107f52 100644
--- a/gdb/testsuite/gdb.ada/pckd_arr_ren/pck.ads
+++ b/gdb/testsuite/gdb.ada/pckd_arr_ren/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/pckd_neg.exp b/gdb/testsuite/gdb.ada/pckd_neg.exp
index aa02938..38b75ab 100644
--- a/gdb/testsuite/gdb.ada/pckd_neg.exp
+++ b/gdb/testsuite/gdb.ada/pckd_neg.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/pckd_neg/foo_o508_021.adb b/gdb/testsuite/gdb.ada/pckd_neg/foo_o508_021.adb
index f72fe1e..f41ceef 100644
--- a/gdb/testsuite/gdb.ada/pckd_neg/foo_o508_021.adb
+++ b/gdb/testsuite/gdb.ada/pckd_neg/foo_o508_021.adb
@@ -1,4 +1,4 @@
--- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+-- Copyright (C) 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/pckd_neg/pck.adb b/gdb/testsuite/gdb.ada/pckd_neg/pck.adb
index 1b0ab3f..ba14c7c 100644
--- a/gdb/testsuite/gdb.ada/pckd_neg/pck.adb
+++ b/gdb/testsuite/gdb.ada/pckd_neg/pck.adb
@@ -1,4 +1,4 @@
--- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+-- Copyright (C) 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/pckd_neg/pck.ads b/gdb/testsuite/gdb.ada/pckd_neg/pck.ads
index b3a8c08..59c95c2 100644
--- a/gdb/testsuite/gdb.ada/pckd_neg/pck.ads
+++ b/gdb/testsuite/gdb.ada/pckd_neg/pck.ads
@@ -1,4 +1,4 @@
--- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+-- Copyright (C) 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/pkd_arr_elem.exp b/gdb/testsuite/gdb.ada/pkd_arr_elem.exp
index 27d5fef..8454d55 100644
--- a/gdb/testsuite/gdb.ada/pkd_arr_elem.exp
+++ b/gdb/testsuite/gdb.ada/pkd_arr_elem.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/pkd_arr_elem/failure.adb b/gdb/testsuite/gdb.ada/pkd_arr_elem/failure.adb
index d966b56..8ccb94d 100644
--- a/gdb/testsuite/gdb.ada/pkd_arr_elem/failure.adb
+++ b/gdb/testsuite/gdb.ada/pkd_arr_elem/failure.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/pkd_arr_elem/pck.adb b/gdb/testsuite/gdb.ada/pkd_arr_elem/pck.adb
index a175b7b..d29c5da 100644
--- a/gdb/testsuite/gdb.ada/pkd_arr_elem/pck.adb
+++ b/gdb/testsuite/gdb.ada/pkd_arr_elem/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/pkd_arr_elem/pck.ads b/gdb/testsuite/gdb.ada/pkd_arr_elem/pck.ads
index 384bf08..02fc1c8 100644
--- a/gdb/testsuite/gdb.ada/pkd_arr_elem/pck.ads
+++ b/gdb/testsuite/gdb.ada/pkd_arr_elem/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/pp-rec-component.exp b/gdb/testsuite/gdb.ada/pp-rec-component.exp
index 6bc4d16..81848ad 100644
--- a/gdb/testsuite/gdb.ada/pp-rec-component.exp
+++ b/gdb/testsuite/gdb.ada/pp-rec-component.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/pp-rec-component.py b/gdb/testsuite/gdb.ada/pp-rec-component.py
index 3d39812..faddfb3 100644
--- a/gdb/testsuite/gdb.ada/pp-rec-component.py
+++ b/gdb/testsuite/gdb.ada/pp-rec-component.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/pp-rec-component/foo.adb b/gdb/testsuite/gdb.ada/pp-rec-component/foo.adb
index f1e5eac..597e6a0 100644
--- a/gdb/testsuite/gdb.ada/pp-rec-component/foo.adb
+++ b/gdb/testsuite/gdb.ada/pp-rec-component/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/pp-rec-component/pck.adb b/gdb/testsuite/gdb.ada/pp-rec-component/pck.adb
index a175b7b..d29c5da 100644
--- a/gdb/testsuite/gdb.ada/pp-rec-component/pck.adb
+++ b/gdb/testsuite/gdb.ada/pp-rec-component/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/pp-rec-component/pck.ads b/gdb/testsuite/gdb.ada/pp-rec-component/pck.ads
index 5187eac..730c9d7 100644
--- a/gdb/testsuite/gdb.ada/pp-rec-component/pck.ads
+++ b/gdb/testsuite/gdb.ada/pp-rec-component/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/print_chars.exp b/gdb/testsuite/gdb.ada/print_chars.exp
index d01318f..8bb4094 100644
--- a/gdb/testsuite/gdb.ada/print_chars.exp
+++ b/gdb/testsuite/gdb.ada/print_chars.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/print_chars/foo.adb b/gdb/testsuite/gdb.ada/print_chars/foo.adb
index 2467010..3b42a3a 100644
--- a/gdb/testsuite/gdb.ada/print_chars/foo.adb
+++ b/gdb/testsuite/gdb.ada/print_chars/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/print_chars/pck.adb b/gdb/testsuite/gdb.ada/print_chars/pck.adb
index d1e115d..3dc26b6 100644
--- a/gdb/testsuite/gdb.ada/print_chars/pck.adb
+++ b/gdb/testsuite/gdb.ada/print_chars/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/print_chars/pck.ads b/gdb/testsuite/gdb.ada/print_chars/pck.ads
index e877d00..02e2789 100644
--- a/gdb/testsuite/gdb.ada/print_chars/pck.ads
+++ b/gdb/testsuite/gdb.ada/print_chars/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/print_pc.exp b/gdb/testsuite/gdb.ada/print_pc.exp
index d6e8711..2bf07e4 100644
--- a/gdb/testsuite/gdb.ada/print_pc.exp
+++ b/gdb/testsuite/gdb.ada/print_pc.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ptr_typedef.exp b/gdb/testsuite/gdb.ada/ptr_typedef.exp
index 08deed9..90f6f1f 100644
--- a/gdb/testsuite/gdb.ada/ptr_typedef.exp
+++ b/gdb/testsuite/gdb.ada/ptr_typedef.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ptr_typedef/foo.adb b/gdb/testsuite/gdb.ada/ptr_typedef/foo.adb
index c730a88..f902431 100644
--- a/gdb/testsuite/gdb.ada/ptr_typedef/foo.adb
+++ b/gdb/testsuite/gdb.ada/ptr_typedef/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ptr_typedef/pck.adb b/gdb/testsuite/gdb.ada/ptr_typedef/pck.adb
index 2822e77..2bfbe8c 100644
--- a/gdb/testsuite/gdb.ada/ptr_typedef/pck.adb
+++ b/gdb/testsuite/gdb.ada/ptr_typedef/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ptr_typedef/pck.ads b/gdb/testsuite/gdb.ada/ptr_typedef/pck.ads
index 7de7794..90f3ced 100644
--- a/gdb/testsuite/gdb.ada/ptr_typedef/pck.ads
+++ b/gdb/testsuite/gdb.ada/ptr_typedef/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ptype-o.exp b/gdb/testsuite/gdb.ada/ptype-o.exp
index 5038ee1..a65a800 100644
--- a/gdb/testsuite/gdb.ada/ptype-o.exp
+++ b/gdb/testsuite/gdb.ada/ptype-o.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -43,5 +43,5 @@ foreach_gnat_encoding scenario flags {all minimal} {
# crash.
set exp ".*"
}
- gdb_test "ptype/o prog__rec" $exp
+ gdb_test "ptype/o pck__rec" $exp
}
diff --git a/gdb/testsuite/gdb.ada/ptype-o/pck.ads b/gdb/testsuite/gdb.ada/ptype-o/pck.ads
new file mode 100644
index 0000000..9b363dd
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/ptype-o/pck.ads
@@ -0,0 +1,25 @@
+-- Copyright 2023-2025 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- 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, see <http://www.gnu.org/licenses/>.
+
+package Pck is
+ type Index is range 0 .. 31;
+ type Char_Array is array ( Index range <>) of Character;
+
+ type Rec (Length : Index) is
+ record
+ TV_Description : Char_Array (1 .. Length);
+ Note : Char_Array (1 .. Length);
+ end record;
+end Pck;
diff --git a/gdb/testsuite/gdb.ada/ptype-o/prog.adb b/gdb/testsuite/gdb.ada/ptype-o/prog.adb
index f185b17..950b80c 100644
--- a/gdb/testsuite/gdb.ada/ptype-o/prog.adb
+++ b/gdb/testsuite/gdb.ada/ptype-o/prog.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
@@ -13,16 +13,9 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
-procedure Prog is
- type Index is range 0 .. 31;
- type Char_Array is array ( Index range <>) of Character;
-
- type Rec (Length : Index) is
- record
- TV_Description : Char_Array (1 .. Length);
- Note : Char_Array (1 .. Length);
- end record;
+with Pck; use Pck;
+procedure Prog is
X : Rec (7);
begin
null; -- BREAK
diff --git a/gdb/testsuite/gdb.ada/ptype_arith_binop.exp b/gdb/testsuite/gdb.ada/ptype_arith_binop.exp
index 60cd2d4..b4f6ee5 100644
--- a/gdb/testsuite/gdb.ada/ptype_arith_binop.exp
+++ b/gdb/testsuite/gdb.ada/ptype_arith_binop.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ptype_array.exp b/gdb/testsuite/gdb.ada/ptype_array.exp
index 9080ea1..34c9c7e 100644
--- a/gdb/testsuite/gdb.ada/ptype_array.exp
+++ b/gdb/testsuite/gdb.ada/ptype_array.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ptype_array/foo.adb b/gdb/testsuite/gdb.ada/ptype_array/foo.adb
index b53c1f6..0837399 100644
--- a/gdb/testsuite/gdb.ada/ptype_array/foo.adb
+++ b/gdb/testsuite/gdb.ada/ptype_array/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ptype_array/pck.adb b/gdb/testsuite/gdb.ada/ptype_array/pck.adb
index aaa72db..d44600a 100644
--- a/gdb/testsuite/gdb.ada/ptype_array/pck.adb
+++ b/gdb/testsuite/gdb.ada/ptype_array/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ptype_array/pck.ads b/gdb/testsuite/gdb.ada/ptype_array/pck.ads
index 18605f1..76ee178 100644
--- a/gdb/testsuite/gdb.ada/ptype_array/pck.ads
+++ b/gdb/testsuite/gdb.ada/ptype_array/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ptype_field.exp b/gdb/testsuite/gdb.ada/ptype_field.exp
index 84d55cb..832298e 100644
--- a/gdb/testsuite/gdb.ada/ptype_field.exp
+++ b/gdb/testsuite/gdb.ada/ptype_field.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ptype_field/foo.adb b/gdb/testsuite/gdb.ada/ptype_field/foo.adb
index 8d3af9b..9beae8d 100644
--- a/gdb/testsuite/gdb.ada/ptype_field/foo.adb
+++ b/gdb/testsuite/gdb.ada/ptype_field/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ptype_field/pck.adb b/gdb/testsuite/gdb.ada/ptype_field/pck.adb
index a15d6f2..801716a 100644
--- a/gdb/testsuite/gdb.ada/ptype_field/pck.adb
+++ b/gdb/testsuite/gdb.ada/ptype_field/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ptype_field/pck.ads b/gdb/testsuite/gdb.ada/ptype_field/pck.ads
index 3fbe09f..001d35e 100644
--- a/gdb/testsuite/gdb.ada/ptype_field/pck.ads
+++ b/gdb/testsuite/gdb.ada/ptype_field/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ptype_tagged_param.exp b/gdb/testsuite/gdb.ada/ptype_tagged_param.exp
index 49d6dc8..493a89c 100644
--- a/gdb/testsuite/gdb.ada/ptype_tagged_param.exp
+++ b/gdb/testsuite/gdb.ada/ptype_tagged_param.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ptype_tagged_param/foo.adb b/gdb/testsuite/gdb.ada/ptype_tagged_param/foo.adb
index 8448c57..5b7f84f 100644
--- a/gdb/testsuite/gdb.ada/ptype_tagged_param/foo.adb
+++ b/gdb/testsuite/gdb.ada/ptype_tagged_param/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2010-2024 Free Software Foundation, Inc.
+-- Copyright 2010-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ptype_tagged_param/pck.adb b/gdb/testsuite/gdb.ada/ptype_tagged_param/pck.adb
index 5869365..a760e04 100644
--- a/gdb/testsuite/gdb.ada/ptype_tagged_param/pck.adb
+++ b/gdb/testsuite/gdb.ada/ptype_tagged_param/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2010-2024 Free Software Foundation, Inc.
+-- Copyright 2010-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ptype_tagged_param/pck.ads b/gdb/testsuite/gdb.ada/ptype_tagged_param/pck.ads
index e96ec33..2dd627e 100644
--- a/gdb/testsuite/gdb.ada/ptype_tagged_param/pck.ads
+++ b/gdb/testsuite/gdb.ada/ptype_tagged_param/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2010-2024 Free Software Foundation, Inc.
+-- Copyright 2010-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ptype_union.c b/gdb/testsuite/gdb.ada/ptype_union.c
index 0c4d96a..d190174 100644
--- a/gdb/testsuite/gdb.ada/ptype_union.c
+++ b/gdb/testsuite/gdb.ada/ptype_union.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ptype_union.exp b/gdb/testsuite/gdb.ada/ptype_union.exp
index a1bdd96..f67793c 100644
--- a/gdb/testsuite/gdb.ada/ptype_union.exp
+++ b/gdb/testsuite/gdb.ada/ptype_union.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/py_range.exp b/gdb/testsuite/gdb.ada/py_range.exp
index f96beac..7adab65 100644
--- a/gdb/testsuite/gdb.ada/py_range.exp
+++ b/gdb/testsuite/gdb.ada/py_range.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -38,10 +38,11 @@ gdb_test "python print(int(gdb.parse_and_eval('si')))" \
gdb_test "python print(int(gdb.parse_and_eval('ir')))" \
"974"
+# Accept "foo." prefix for older versions of GNAT.
gdb_test "python print(gdb.parse_and_eval('si').type)" \
- "foo\\.small_integer" "print type"
+ "(foo\\.)?small_integer" "print type"
gdb_test "python print(gdb.parse_and_eval('si').type.name)" \
- "foo\\.small_integer" "print type name"
+ "(foo\\.)?small_integer" "print type name"
gdb_test "python print(gdb.selected_inferior().main_name)" \
"_ada_foo" \
diff --git a/gdb/testsuite/gdb.ada/py_range/foo.adb b/gdb/testsuite/gdb.ada/py_range/foo.adb
index d0e7dd6..f610d9f 100644
--- a/gdb/testsuite/gdb.ada/py_range/foo.adb
+++ b/gdb/testsuite/gdb.ada/py_range/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/py_range/pck.adb b/gdb/testsuite/gdb.ada/py_range/pck.adb
index d1e115d..3dc26b6 100644
--- a/gdb/testsuite/gdb.ada/py_range/pck.adb
+++ b/gdb/testsuite/gdb.ada/py_range/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/py_range/pck.ads b/gdb/testsuite/gdb.ada/py_range/pck.ads
index e877d00..02e2789 100644
--- a/gdb/testsuite/gdb.ada/py_range/pck.ads
+++ b/gdb/testsuite/gdb.ada/py_range/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/py_taft.exp b/gdb/testsuite/gdb.ada/py_taft.exp
index a8e2c46..bd30d20 100644
--- a/gdb/testsuite/gdb.ada/py_taft.exp
+++ b/gdb/testsuite/gdb.ada/py_taft.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/py_taft/main.adb b/gdb/testsuite/gdb.ada/py_taft/main.adb
index 0dbf308..273f637 100644
--- a/gdb/testsuite/gdb.ada/py_taft/main.adb
+++ b/gdb/testsuite/gdb.ada/py_taft/main.adb
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/py_taft/pkg.adb b/gdb/testsuite/gdb.ada/py_taft/pkg.adb
index 6d9bcb8..854df10 100644
--- a/gdb/testsuite/gdb.ada/py_taft/pkg.adb
+++ b/gdb/testsuite/gdb.ada/py_taft/pkg.adb
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/py_taft/pkg.ads b/gdb/testsuite/gdb.ada/py_taft/pkg.ads
index 7b93236..c994402 100644
--- a/gdb/testsuite/gdb.ada/py_taft/pkg.ads
+++ b/gdb/testsuite/gdb.ada/py_taft/pkg.ads
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/rdv_wait.exp b/gdb/testsuite/gdb.ada/rdv_wait.exp
index 56c19f3..bf58c58 100644
--- a/gdb/testsuite/gdb.ada/rdv_wait.exp
+++ b/gdb/testsuite/gdb.ada/rdv_wait.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/rdv_wait/foo.adb b/gdb/testsuite/gdb.ada/rdv_wait/foo.adb
index a49542a..bbf70a9 100644
--- a/gdb/testsuite/gdb.ada/rdv_wait/foo.adb
+++ b/gdb/testsuite/gdb.ada/rdv_wait/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/rdv_wait/pck.adb b/gdb/testsuite/gdb.ada/rdv_wait/pck.adb
index bdc30fd..918d3a5 100644
--- a/gdb/testsuite/gdb.ada/rdv_wait/pck.adb
+++ b/gdb/testsuite/gdb.ada/rdv_wait/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/rdv_wait/pck.ads b/gdb/testsuite/gdb.ada/rdv_wait/pck.ads
index 7260947..858f617 100644
--- a/gdb/testsuite/gdb.ada/rdv_wait/pck.ads
+++ b/gdb/testsuite/gdb.ada/rdv_wait/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/rec_comp.exp b/gdb/testsuite/gdb.ada/rec_comp.exp
index 641ebb6..140e1b5 100644
--- a/gdb/testsuite/gdb.ada/rec_comp.exp
+++ b/gdb/testsuite/gdb.ada/rec_comp.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -30,9 +30,10 @@ if {![runto "bar_o203_012.adb:$bp_location"]} {
return
}
-gdb_test "whatis r.ia" " = bar_o203_012.int_access"
+# Accept "bar_o203_012." prefix for older versions of GNAT.
+gdb_test "whatis r.ia" " = (bar_o203_012.)?int_access"
gdb_test "ptype r" \
- " = record\r\n *ia: bar_o203_012\\.int_access;\r\nend record"
+ " = record\r\n *ia: (bar_o203_012\\.)?int_access;\r\nend record"
gdb_test "ptype r.ia" " = access <$decimal-byte integer>"
diff --git a/gdb/testsuite/gdb.ada/rec_comp/bar_o203_012.adb b/gdb/testsuite/gdb.ada/rec_comp/bar_o203_012.adb
index 43e21e4..faffcf1 100644
--- a/gdb/testsuite/gdb.ada/rec_comp/bar_o203_012.adb
+++ b/gdb/testsuite/gdb.ada/rec_comp/bar_o203_012.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/rec_comp/pck.adb b/gdb/testsuite/gdb.ada/rec_comp/pck.adb
index 9edc10b..d616516 100644
--- a/gdb/testsuite/gdb.ada/rec_comp/pck.adb
+++ b/gdb/testsuite/gdb.ada/rec_comp/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/rec_comp/pck.ads b/gdb/testsuite/gdb.ada/rec_comp/pck.ads
index 9839f35..d852120 100644
--- a/gdb/testsuite/gdb.ada/rec_comp/pck.ads
+++ b/gdb/testsuite/gdb.ada/rec_comp/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/rec_ptype.exp b/gdb/testsuite/gdb.ada/rec_ptype.exp
index fc7bb8b..96380ab 100644
--- a/gdb/testsuite/gdb.ada/rec_ptype.exp
+++ b/gdb/testsuite/gdb.ada/rec_ptype.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/rec_ptype/main.adb b/gdb/testsuite/gdb.ada/rec_ptype/main.adb
index 2eb31ce..7035d41 100644
--- a/gdb/testsuite/gdb.ada/rec_ptype/main.adb
+++ b/gdb/testsuite/gdb.ada/rec_ptype/main.adb
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/rec_ptype/p.ads b/gdb/testsuite/gdb.ada/rec_ptype/p.ads
index b55b228..ea50f91 100644
--- a/gdb/testsuite/gdb.ada/rec_ptype/p.ads
+++ b/gdb/testsuite/gdb.ada/rec_ptype/p.ads
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/rec_return.exp b/gdb/testsuite/gdb.ada/rec_return.exp
index 133c35e..321ba67 100644
--- a/gdb/testsuite/gdb.ada/rec_return.exp
+++ b/gdb/testsuite/gdb.ada/rec_return.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/rec_return/foo.adb b/gdb/testsuite/gdb.ada/rec_return/foo.adb
index cb77586..df93dd5 100644
--- a/gdb/testsuite/gdb.ada/rec_return/foo.adb
+++ b/gdb/testsuite/gdb.ada/rec_return/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2010-2024 Free Software Foundation, Inc.
+-- Copyright 2010-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/rec_return/pck.adb b/gdb/testsuite/gdb.ada/rec_return/pck.adb
index 83a9d41..1bfdb6c 100644
--- a/gdb/testsuite/gdb.ada/rec_return/pck.adb
+++ b/gdb/testsuite/gdb.ada/rec_return/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2010-2024 Free Software Foundation, Inc.
+-- Copyright 2010-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/rec_return/pck.ads b/gdb/testsuite/gdb.ada/rec_return/pck.ads
index a097dac..e95fe2c 100644
--- a/gdb/testsuite/gdb.ada/rec_return/pck.ads
+++ b/gdb/testsuite/gdb.ada/rec_return/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2010-2024 Free Software Foundation, Inc.
+-- Copyright 2010-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/recursive-variant.exp b/gdb/testsuite/gdb.ada/recursive-variant.exp
index ea13f83..c2b15e4 100644
--- a/gdb/testsuite/gdb.ada/recursive-variant.exp
+++ b/gdb/testsuite/gdb.ada/recursive-variant.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/recursive-variant/main.adb b/gdb/testsuite/gdb.ada/recursive-variant/main.adb
index 93b47e5..d4c3ab6 100644
--- a/gdb/testsuite/gdb.ada/recursive-variant/main.adb
+++ b/gdb/testsuite/gdb.ada/recursive-variant/main.adb
@@ -1,4 +1,4 @@
--- Copyright 2024 Free Software Foundation, Inc.
+-- Copyright 2024-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ref_param.exp b/gdb/testsuite/gdb.ada/ref_param.exp
index 39cee89..d1d8960 100644
--- a/gdb/testsuite/gdb.ada/ref_param.exp
+++ b/gdb/testsuite/gdb.ada/ref_param.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ref_param/foo.adb b/gdb/testsuite/gdb.ada/ref_param/foo.adb
index faeb645..96a570f 100644
--- a/gdb/testsuite/gdb.ada/ref_param/foo.adb
+++ b/gdb/testsuite/gdb.ada/ref_param/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ref_param/pck.adb b/gdb/testsuite/gdb.ada/ref_param/pck.adb
index 4c6eed4..ec31f3c 100644
--- a/gdb/testsuite/gdb.ada/ref_param/pck.adb
+++ b/gdb/testsuite/gdb.ada/ref_param/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ref_param/pck.ads b/gdb/testsuite/gdb.ada/ref_param/pck.ads
index 1ce26fa..1b4aa8b 100644
--- a/gdb/testsuite/gdb.ada/ref_param/pck.ads
+++ b/gdb/testsuite/gdb.ada/ref_param/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ref_tick_size.exp b/gdb/testsuite/gdb.ada/ref_tick_size.exp
index 2c875c0..6ceb73b 100644
--- a/gdb/testsuite/gdb.ada/ref_tick_size.exp
+++ b/gdb/testsuite/gdb.ada/ref_tick_size.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ref_tick_size/p.adb b/gdb/testsuite/gdb.ada/ref_tick_size/p.adb
index 36910ca..88b1192 100644
--- a/gdb/testsuite/gdb.ada/ref_tick_size/p.adb
+++ b/gdb/testsuite/gdb.ada/ref_tick_size/p.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ref_tick_size/pck.adb b/gdb/testsuite/gdb.ada/ref_tick_size/pck.adb
index 240377d..1377ef5 100644
--- a/gdb/testsuite/gdb.ada/ref_tick_size/pck.adb
+++ b/gdb/testsuite/gdb.ada/ref_tick_size/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/ref_tick_size/pck.ads b/gdb/testsuite/gdb.ada/ref_tick_size/pck.ads
index a1523f1..58305f0 100644
--- a/gdb/testsuite/gdb.ada/ref_tick_size/pck.ads
+++ b/gdb/testsuite/gdb.ada/ref_tick_size/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/rename_subscript_param.exp b/gdb/testsuite/gdb.ada/rename_subscript_param.exp
index efb29f4..75e5098 100644
--- a/gdb/testsuite/gdb.ada/rename_subscript_param.exp
+++ b/gdb/testsuite/gdb.ada/rename_subscript_param.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/rename_subscript_param/pb30_012.adb b/gdb/testsuite/gdb.ada/rename_subscript_param/pb30_012.adb
index 6c82e28..a0795dd 100644
--- a/gdb/testsuite/gdb.ada/rename_subscript_param/pb30_012.adb
+++ b/gdb/testsuite/gdb.ada/rename_subscript_param/pb30_012.adb
@@ -1,4 +1,4 @@
--- Copyright 2016-2024 Free Software Foundation, Inc.
+-- Copyright 2016-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/rename_subscript_param/pck.adb b/gdb/testsuite/gdb.ada/rename_subscript_param/pck.adb
index c3d3f59..9a822b9 100644
--- a/gdb/testsuite/gdb.ada/rename_subscript_param/pck.adb
+++ b/gdb/testsuite/gdb.ada/rename_subscript_param/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2016-2024 Free Software Foundation, Inc.
+-- Copyright 2016-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/rename_subscript_param/pck.ads b/gdb/testsuite/gdb.ada/rename_subscript_param/pck.ads
index 30b954e..ca06650 100644
--- a/gdb/testsuite/gdb.ada/rename_subscript_param/pck.ads
+++ b/gdb/testsuite/gdb.ada/rename_subscript_param/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2016-2024 Free Software Foundation, Inc.
+-- Copyright 2016-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/rename_subscript_param/pkg.adb b/gdb/testsuite/gdb.ada/rename_subscript_param/pkg.adb
index 7f00774..8dd75c2 100644
--- a/gdb/testsuite/gdb.ada/rename_subscript_param/pkg.adb
+++ b/gdb/testsuite/gdb.ada/rename_subscript_param/pkg.adb
@@ -1,4 +1,4 @@
--- Copyright 2016-2024 Free Software Foundation, Inc.
+-- Copyright 2016-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/rename_subscript_param/pkg.ads b/gdb/testsuite/gdb.ada/rename_subscript_param/pkg.ads
index 07e5387..d1cac65 100644
--- a/gdb/testsuite/gdb.ada/rename_subscript_param/pkg.ads
+++ b/gdb/testsuite/gdb.ada/rename_subscript_param/pkg.ads
@@ -1,4 +1,4 @@
--- Copyright 2016-2024 Free Software Foundation, Inc.
+-- Copyright 2016-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/repeat_dyn.exp b/gdb/testsuite/gdb.ada/repeat_dyn.exp
index 8f0618d..7e5c7a7 100644
--- a/gdb/testsuite/gdb.ada/repeat_dyn.exp
+++ b/gdb/testsuite/gdb.ada/repeat_dyn.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/repeat_dyn/foo_oc22_002.adb b/gdb/testsuite/gdb.ada/repeat_dyn/foo_oc22_002.adb
index 5a1f1b6..5b8edf4 100644
--- a/gdb/testsuite/gdb.ada/repeat_dyn/foo_oc22_002.adb
+++ b/gdb/testsuite/gdb.ada/repeat_dyn/foo_oc22_002.adb
@@ -1,4 +1,4 @@
--- Copyright 2016-2024 Free Software Foundation, Inc.
+-- Copyright 2016-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/repeat_dyn/pck.adb b/gdb/testsuite/gdb.ada/repeat_dyn/pck.adb
index 11b0029..91dc2e9 100644
--- a/gdb/testsuite/gdb.ada/repeat_dyn/pck.adb
+++ b/gdb/testsuite/gdb.ada/repeat_dyn/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2016-2024 Free Software Foundation, Inc.
+-- Copyright 2016-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/repeat_dyn/pck.ads b/gdb/testsuite/gdb.ada/repeat_dyn/pck.ads
index 11d4a25..0f4dd5d 100644
--- a/gdb/testsuite/gdb.ada/repeat_dyn/pck.ads
+++ b/gdb/testsuite/gdb.ada/repeat_dyn/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2016-2024 Free Software Foundation, Inc.
+-- Copyright 2016-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/same_component_name.exp b/gdb/testsuite/gdb.ada/same_component_name.exp
index 84a48b4..6c7c7d5 100644
--- a/gdb/testsuite/gdb.ada/same_component_name.exp
+++ b/gdb/testsuite/gdb.ada/same_component_name.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/same_component_name/foo.adb b/gdb/testsuite/gdb.ada/same_component_name/foo.adb
index e9390ee..3b2a3c8 100644
--- a/gdb/testsuite/gdb.ada/same_component_name/foo.adb
+++ b/gdb/testsuite/gdb.ada/same_component_name/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/same_component_name/pck.adb b/gdb/testsuite/gdb.ada/same_component_name/pck.adb
index ab4801f..29381eb 100644
--- a/gdb/testsuite/gdb.ada/same_component_name/pck.adb
+++ b/gdb/testsuite/gdb.ada/same_component_name/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2010-2024 Free Software Foundation, Inc.
+-- Copyright 2010-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/same_component_name/pck.ads b/gdb/testsuite/gdb.ada/same_component_name/pck.ads
index 99a4476..429284f 100644
--- a/gdb/testsuite/gdb.ada/same_component_name/pck.ads
+++ b/gdb/testsuite/gdb.ada/same_component_name/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/same_enum.exp b/gdb/testsuite/gdb.ada/same_enum.exp
index 70ab326..5c830f6 100644
--- a/gdb/testsuite/gdb.ada/same_enum.exp
+++ b/gdb/testsuite/gdb.ada/same_enum.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/same_enum/a.adb b/gdb/testsuite/gdb.ada/same_enum/a.adb
index c76de42..427f486 100644
--- a/gdb/testsuite/gdb.ada/same_enum/a.adb
+++ b/gdb/testsuite/gdb.ada/same_enum/a.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/same_enum/pck.adb b/gdb/testsuite/gdb.ada/same_enum/pck.adb
index de1eb7e..fc67d2f 100644
--- a/gdb/testsuite/gdb.ada/same_enum/pck.adb
+++ b/gdb/testsuite/gdb.ada/same_enum/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/same_enum/pck.ads b/gdb/testsuite/gdb.ada/same_enum/pck.ads
index be8008e..efb475b 100644
--- a/gdb/testsuite/gdb.ada/same_enum/pck.ads
+++ b/gdb/testsuite/gdb.ada/same_enum/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/scalar_storage.exp b/gdb/testsuite/gdb.ada/scalar_storage.exp
index f8fc469..52a85cd 100644
--- a/gdb/testsuite/gdb.ada/scalar_storage.exp
+++ b/gdb/testsuite/gdb.ada/scalar_storage.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,8 +22,20 @@ require allow_ada_tests
standard_ada_testfile storage
-if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } {
- return -1
+# Compilation here will fail with gnat-llvm, because at the moment it
+# does not support Scalar_Storage_Order. However, if that is ever
+# implemented, we want the test to start working. So, we examine the
+# output before deciding if this is a real failure.
+set output [gdb_compile_ada_1 "${srcfile}" "${binfile}" executable debug]
+if {$output != ""} {
+ if {[regexp "error: reverse storage order .* not supported by LLVM" $output]} {
+ unsupported "scalar storage order not supported"
+ } else {
+ # Otherwise issue the fail.
+ gdb_compile_test $srcfile $output
+ }
+ # Either way we're not running this test.
+ return
}
clean_restart ${testfile}
@@ -33,10 +45,30 @@ if {![runto "storage.adb:$bp_location"]} {
return
}
-gdb_test "print V_LE" "= \\(value => 126, another_value => 12, color => green\\)"
+set re "value => 126, another_value => 12, color => green"
# This requires a compiler fix that is in GCC 14.
-if { ![gnat_version_compare >= 14] } {
- setup_kfail "DW_AT_endianity on enum types" *-*-*
+set have_xfail [expr ![gnat_version_compare >= 14]]
+set re_color "(red|green|blue|$decimal)"
+set re_xfail \
+ "value => $decimal, another_value => $decimal, color => $re_color"
+
+set re_pre [string_to_regexp " = ("]
+set re_post [string_to_regexp ")"]
+set re $re_pre$re$re_post
+set re_xfail $re_pre$re_xfail$re_post
+
+foreach var { V_LE V_BE } {
+ gdb_test_multiple "print $var" "" {
+ -re -wrap $re {
+ pass $gdb_test_name
+ }
+ -re -wrap $re_xfail {
+ if { $have_xfail } {
+ xfail $gdb_test_name
+ } else {
+ fail $gdb_test_name
+ }
+ }
+ }
}
-gdb_test "print V_BE" "= \\(value => 126, another_value => 12, color => green\\)"
diff --git a/gdb/testsuite/gdb.ada/scalar_storage/pck.adb b/gdb/testsuite/gdb.ada/scalar_storage/pck.adb
index 64f765d..34162db 100644
--- a/gdb/testsuite/gdb.ada/scalar_storage/pck.adb
+++ b/gdb/testsuite/gdb.ada/scalar_storage/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/scalar_storage/pck.ads b/gdb/testsuite/gdb.ada/scalar_storage/pck.ads
index 195acda..40563bd 100644
--- a/gdb/testsuite/gdb.ada/scalar_storage/pck.ads
+++ b/gdb/testsuite/gdb.ada/scalar_storage/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/scalar_storage/storage.adb b/gdb/testsuite/gdb.ada/scalar_storage/storage.adb
index 6c63d07..46501b1 100644
--- a/gdb/testsuite/gdb.ada/scalar_storage/storage.adb
+++ b/gdb/testsuite/gdb.ada/scalar_storage/storage.adb
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/scoped_watch.exp b/gdb/testsuite/gdb.ada/scoped_watch.exp
index 9384758..6e545a5 100644
--- a/gdb/testsuite/gdb.ada/scoped_watch.exp
+++ b/gdb/testsuite/gdb.ada/scoped_watch.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/scoped_watch/foo_p708_025.adb b/gdb/testsuite/gdb.ada/scoped_watch/foo_p708_025.adb
index e6661ac..3748596 100644
--- a/gdb/testsuite/gdb.ada/scoped_watch/foo_p708_025.adb
+++ b/gdb/testsuite/gdb.ada/scoped_watch/foo_p708_025.adb
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/scoped_watch/pck.adb b/gdb/testsuite/gdb.ada/scoped_watch/pck.adb
index 761d13f..3f27053 100644
--- a/gdb/testsuite/gdb.ada/scoped_watch/pck.adb
+++ b/gdb/testsuite/gdb.ada/scoped_watch/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/scoped_watch/pck.ads b/gdb/testsuite/gdb.ada/scoped_watch/pck.ads
index 9bbb3d2..bf129eb 100644
--- a/gdb/testsuite/gdb.ada/scoped_watch/pck.ads
+++ b/gdb/testsuite/gdb.ada/scoped_watch/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/set_pckd_arr_elt.exp b/gdb/testsuite/gdb.ada/set_pckd_arr_elt.exp
index 2979cb9..73b9242 100644
--- a/gdb/testsuite/gdb.ada/set_pckd_arr_elt.exp
+++ b/gdb/testsuite/gdb.ada/set_pckd_arr_elt.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/set_pckd_arr_elt/foo.adb b/gdb/testsuite/gdb.ada/set_pckd_arr_elt/foo.adb
index daa3f3e..ba17ba4 100644
--- a/gdb/testsuite/gdb.ada/set_pckd_arr_elt/foo.adb
+++ b/gdb/testsuite/gdb.ada/set_pckd_arr_elt/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.adb b/gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.adb
index bca8177..57c8923 100644
--- a/gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.adb
+++ b/gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.ads b/gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.ads
index 338ba25..133205b 100644
--- a/gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.ads
+++ b/gdb/testsuite/gdb.ada/set_pckd_arr_elt/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/set_wstr.exp b/gdb/testsuite/gdb.ada/set_wstr.exp
index b70027c..8b9a125 100644
--- a/gdb/testsuite/gdb.ada/set_wstr.exp
+++ b/gdb/testsuite/gdb.ada/set_wstr.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/set_wstr/a.adb b/gdb/testsuite/gdb.ada/set_wstr/a.adb
index a69b654..6b46c6a 100644
--- a/gdb/testsuite/gdb.ada/set_wstr/a.adb
+++ b/gdb/testsuite/gdb.ada/set_wstr/a.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/set_wstr/pck.adb b/gdb/testsuite/gdb.ada/set_wstr/pck.adb
index a64c5e9..54ddf5c 100644
--- a/gdb/testsuite/gdb.ada/set_wstr/pck.adb
+++ b/gdb/testsuite/gdb.ada/set_wstr/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/set_wstr/pck.ads b/gdb/testsuite/gdb.ada/set_wstr/pck.ads
index bd9fd43..db7c0a8 100644
--- a/gdb/testsuite/gdb.ada/set_wstr/pck.ads
+++ b/gdb/testsuite/gdb.ada/set_wstr/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/small_reg_param.exp b/gdb/testsuite/gdb.ada/small_reg_param.exp
index e1c6a1c..e8f9e5e 100644
--- a/gdb/testsuite/gdb.ada/small_reg_param.exp
+++ b/gdb/testsuite/gdb.ada/small_reg_param.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/small_reg_param/foo.adb b/gdb/testsuite/gdb.ada/small_reg_param/foo.adb
index 2db6918..f7291d0 100644
--- a/gdb/testsuite/gdb.ada/small_reg_param/foo.adb
+++ b/gdb/testsuite/gdb.ada/small_reg_param/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/small_reg_param/pck.adb b/gdb/testsuite/gdb.ada/small_reg_param/pck.adb
index 5ca5af2..9b94955 100644
--- a/gdb/testsuite/gdb.ada/small_reg_param/pck.adb
+++ b/gdb/testsuite/gdb.ada/small_reg_param/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/small_reg_param/pck.ads b/gdb/testsuite/gdb.ada/small_reg_param/pck.ads
index d564dac..0be2081 100644
--- a/gdb/testsuite/gdb.ada/small_reg_param/pck.ads
+++ b/gdb/testsuite/gdb.ada/small_reg_param/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/start.exp b/gdb/testsuite/gdb.ada/start.exp
index 7e78679..8bfc202 100644
--- a/gdb/testsuite/gdb.ada/start.exp
+++ b/gdb/testsuite/gdb.ada/start.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/start/dummy.adb b/gdb/testsuite/gdb.ada/start/dummy.adb
index fa287ef..5d24e69 100644
--- a/gdb/testsuite/gdb.ada/start/dummy.adb
+++ b/gdb/testsuite/gdb.ada/start/dummy.adb
@@ -1,4 +1,4 @@
--- Copyright 2005-2024 Free Software Foundation, Inc.
+-- Copyright 2005-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/static-link.exp b/gdb/testsuite/gdb.ada/static-link.exp
index cf8fad3..7af14c5 100644
--- a/gdb/testsuite/gdb.ada/static-link.exp
+++ b/gdb/testsuite/gdb.ada/static-link.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/static-link/pck.adb b/gdb/testsuite/gdb.ada/static-link/pck.adb
new file mode 100644
index 0000000..9ced74f
--- /dev/null
+++ b/gdb/testsuite/gdb.ada/static-link/pck.adb
@@ -0,0 +1,23 @@
+-- Copyright 2025 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- 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, see <http://www.gnu.org/licenses/>.
+
+package body Pck is
+
+ procedure Do_Nothing (A : System.Address) is
+ begin
+ null;
+ end Do_Nothing;
+
+end Pck;
diff --git a/gdb/testsuite/gdb.ada/static-link/pck.ads b/gdb/testsuite/gdb.ada/static-link/pck.ads
index e241408..1c52820 100644
--- a/gdb/testsuite/gdb.ada/static-link/pck.ads
+++ b/gdb/testsuite/gdb.ada/static-link/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
@@ -13,6 +13,9 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+with System;
package Pck is
Some_Value : Integer := 3;
+
+ procedure Do_Nothing (A : System.Address);
end Pck;
diff --git a/gdb/testsuite/gdb.ada/static-link/prog.adb b/gdb/testsuite/gdb.ada/static-link/prog.adb
index 75f07eb..6f97925 100644
--- a/gdb/testsuite/gdb.ada/static-link/prog.adb
+++ b/gdb/testsuite/gdb.ada/static-link/prog.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
@@ -32,4 +32,6 @@ procedure Prog is
begin
Intermediate;
+ Do_Nothing (Upper'Address);
+ Do_Nothing (Value'Address);
end Prog;
diff --git a/gdb/testsuite/gdb.ada/str_binop_equal.exp b/gdb/testsuite/gdb.ada/str_binop_equal.exp
index 943e0a6..e897db0 100644
--- a/gdb/testsuite/gdb.ada/str_binop_equal.exp
+++ b/gdb/testsuite/gdb.ada/str_binop_equal.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/str_binop_equal/foo_p211_061.adb b/gdb/testsuite/gdb.ada/str_binop_equal/foo_p211_061.adb
index db4d3aa..32a808d 100644
--- a/gdb/testsuite/gdb.ada/str_binop_equal/foo_p211_061.adb
+++ b/gdb/testsuite/gdb.ada/str_binop_equal/foo_p211_061.adb
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/str_binop_equal/pck.adb b/gdb/testsuite/gdb.ada/str_binop_equal/pck.adb
index fd94ccb..32b2b6e 100644
--- a/gdb/testsuite/gdb.ada/str_binop_equal/pck.adb
+++ b/gdb/testsuite/gdb.ada/str_binop_equal/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/str_binop_equal/pck.ads b/gdb/testsuite/gdb.ada/str_binop_equal/pck.ads
index cbe2317..55d5efc 100644
--- a/gdb/testsuite/gdb.ada/str_binop_equal/pck.ads
+++ b/gdb/testsuite/gdb.ada/str_binop_equal/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/str_chars.exp b/gdb/testsuite/gdb.ada/str_chars.exp
index f459e3c..6158509 100644
--- a/gdb/testsuite/gdb.ada/str_chars.exp
+++ b/gdb/testsuite/gdb.ada/str_chars.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/str_chars/foo.adb b/gdb/testsuite/gdb.ada/str_chars/foo.adb
index 03eade4..c8c674b 100644
--- a/gdb/testsuite/gdb.ada/str_chars/foo.adb
+++ b/gdb/testsuite/gdb.ada/str_chars/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/str_ref_cmp.exp b/gdb/testsuite/gdb.ada/str_ref_cmp.exp
index 04ec420..95fc8ee 100644
--- a/gdb/testsuite/gdb.ada/str_ref_cmp.exp
+++ b/gdb/testsuite/gdb.ada/str_ref_cmp.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/str_ref_cmp/foo.adb b/gdb/testsuite/gdb.ada/str_ref_cmp/foo.adb
index 0b22f55..7029070 100644
--- a/gdb/testsuite/gdb.ada/str_ref_cmp/foo.adb
+++ b/gdb/testsuite/gdb.ada/str_ref_cmp/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/str_ref_cmp/pck.ads b/gdb/testsuite/gdb.ada/str_ref_cmp/pck.ads
index d058eac..78152a6 100644
--- a/gdb/testsuite/gdb.ada/str_ref_cmp/pck.ads
+++ b/gdb/testsuite/gdb.ada/str_ref_cmp/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/str_uninit.exp b/gdb/testsuite/gdb.ada/str_uninit.exp
index 1c55534..ed1fabc 100644
--- a/gdb/testsuite/gdb.ada/str_uninit.exp
+++ b/gdb/testsuite/gdb.ada/str_uninit.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/str_uninit/parse.adb b/gdb/testsuite/gdb.ada/str_uninit/parse.adb
index db5bb78..883f61a 100644
--- a/gdb/testsuite/gdb.ada/str_uninit/parse.adb
+++ b/gdb/testsuite/gdb.ada/str_uninit/parse.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/str_uninit/pck.adb b/gdb/testsuite/gdb.ada/str_uninit/pck.adb
index ff61a8e..700ac43 100644
--- a/gdb/testsuite/gdb.ada/str_uninit/pck.adb
+++ b/gdb/testsuite/gdb.ada/str_uninit/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/str_uninit/pck.ads b/gdb/testsuite/gdb.ada/str_uninit/pck.ads
index 2ef2759..e011ca0 100644
--- a/gdb/testsuite/gdb.ada/str_uninit/pck.ads
+++ b/gdb/testsuite/gdb.ada/str_uninit/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/sub_variant.exp b/gdb/testsuite/gdb.ada/sub_variant.exp
index 8f3dea7..3d723ad 100644
--- a/gdb/testsuite/gdb.ada/sub_variant.exp
+++ b/gdb/testsuite/gdb.ada/sub_variant.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/sub_variant/subv.adb b/gdb/testsuite/gdb.ada/sub_variant/subv.adb
index e3dbefd..c1d4828 100644
--- a/gdb/testsuite/gdb.ada/sub_variant/subv.adb
+++ b/gdb/testsuite/gdb.ada/sub_variant/subv.adb
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/sym_print_name.exp b/gdb/testsuite/gdb.ada/sym_print_name.exp
index e2bb7b9..933f51a 100644
--- a/gdb/testsuite/gdb.ada/sym_print_name.exp
+++ b/gdb/testsuite/gdb.ada/sym_print_name.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/sym_print_name/foo.adb b/gdb/testsuite/gdb.ada/sym_print_name/foo.adb
index d0eb98e..389515e 100644
--- a/gdb/testsuite/gdb.ada/sym_print_name/foo.adb
+++ b/gdb/testsuite/gdb.ada/sym_print_name/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/sym_print_name/pck.adb b/gdb/testsuite/gdb.ada/sym_print_name/pck.adb
index ba18be9..69773e6 100644
--- a/gdb/testsuite/gdb.ada/sym_print_name/pck.adb
+++ b/gdb/testsuite/gdb.ada/sym_print_name/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/sym_print_name/pck.ads b/gdb/testsuite/gdb.ada/sym_print_name/pck.ads
index e32338f..dfb0194 100644
--- a/gdb/testsuite/gdb.ada/sym_print_name/pck.ads
+++ b/gdb/testsuite/gdb.ada/sym_print_name/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/taft_type.exp b/gdb/testsuite/gdb.ada/taft_type.exp
index b00c290..ac7b258 100644
--- a/gdb/testsuite/gdb.ada/taft_type.exp
+++ b/gdb/testsuite/gdb.ada/taft_type.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/taft_type/p.adb b/gdb/testsuite/gdb.ada/taft_type/p.adb
index 6decbd7..be35493 100644
--- a/gdb/testsuite/gdb.ada/taft_type/p.adb
+++ b/gdb/testsuite/gdb.ada/taft_type/p.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/taft_type/pck.adb b/gdb/testsuite/gdb.ada/taft_type/pck.adb
index e6f1edb..a581fc8 100644
--- a/gdb/testsuite/gdb.ada/taft_type/pck.adb
+++ b/gdb/testsuite/gdb.ada/taft_type/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/taft_type/pck.ads b/gdb/testsuite/gdb.ada/taft_type/pck.ads
index 521e100..cac3165 100644
--- a/gdb/testsuite/gdb.ada/taft_type/pck.ads
+++ b/gdb/testsuite/gdb.ada/taft_type/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tagged-lookup.exp b/gdb/testsuite/gdb.ada/tagged-lookup.exp
index f1473aa..9c225c2 100644
--- a/gdb/testsuite/gdb.ada/tagged-lookup.exp
+++ b/gdb/testsuite/gdb.ada/tagged-lookup.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tagged-lookup/foo.adb b/gdb/testsuite/gdb.ada/tagged-lookup/foo.adb
index 35e1aa3..ef8ad95 100644
--- a/gdb/testsuite/gdb.ada/tagged-lookup/foo.adb
+++ b/gdb/testsuite/gdb.ada/tagged-lookup/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tagged-lookup/pck.adb b/gdb/testsuite/gdb.ada/tagged-lookup/pck.adb
index d5f843a..10b240b 100644
--- a/gdb/testsuite/gdb.ada/tagged-lookup/pck.adb
+++ b/gdb/testsuite/gdb.ada/tagged-lookup/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tagged-lookup/pck.ads b/gdb/testsuite/gdb.ada/tagged-lookup/pck.ads
index 7731fe2..fdca197 100644
--- a/gdb/testsuite/gdb.ada/tagged-lookup/pck.ads
+++ b/gdb/testsuite/gdb.ada/tagged-lookup/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tagged-lookup/pck2.adb b/gdb/testsuite/gdb.ada/tagged-lookup/pck2.adb
index 87f77e5..c9f2364 100644
--- a/gdb/testsuite/gdb.ada/tagged-lookup/pck2.adb
+++ b/gdb/testsuite/gdb.ada/tagged-lookup/pck2.adb
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tagged-lookup/pck2.ads b/gdb/testsuite/gdb.ada/tagged-lookup/pck2.ads
index c45962b..bbaee7e 100644
--- a/gdb/testsuite/gdb.ada/tagged-lookup/pck2.ads
+++ b/gdb/testsuite/gdb.ada/tagged-lookup/pck2.ads
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tagged.exp b/gdb/testsuite/gdb.ada/tagged.exp
index eabe015..8c0aa3a 100644
--- a/gdb/testsuite/gdb.ada/tagged.exp
+++ b/gdb/testsuite/gdb.ada/tagged.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tagged/foo.adb b/gdb/testsuite/gdb.ada/tagged/foo.adb
index a190033..7177e28 100644
--- a/gdb/testsuite/gdb.ada/tagged/foo.adb
+++ b/gdb/testsuite/gdb.ada/tagged/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tagged/pck.adb b/gdb/testsuite/gdb.ada/tagged/pck.adb
index e0ec67d..7b1933a 100644
--- a/gdb/testsuite/gdb.ada/tagged/pck.adb
+++ b/gdb/testsuite/gdb.ada/tagged/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tagged/pck.ads b/gdb/testsuite/gdb.ada/tagged/pck.ads
index c9ac14b..88095c0 100644
--- a/gdb/testsuite/gdb.ada/tagged/pck.ads
+++ b/gdb/testsuite/gdb.ada/tagged/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tagged_access.exp b/gdb/testsuite/gdb.ada/tagged_access.exp
index 57f7440..212b8e9 100644
--- a/gdb/testsuite/gdb.ada/tagged_access.exp
+++ b/gdb/testsuite/gdb.ada/tagged_access.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tagged_access/p.adb b/gdb/testsuite/gdb.ada/tagged_access/p.adb
index 9a984c6..179bb50 100644
--- a/gdb/testsuite/gdb.ada/tagged_access/p.adb
+++ b/gdb/testsuite/gdb.ada/tagged_access/p.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tagged_access/pack.adb b/gdb/testsuite/gdb.ada/tagged_access/pack.adb
index 7f2197a..1b73829 100644
--- a/gdb/testsuite/gdb.ada/tagged_access/pack.adb
+++ b/gdb/testsuite/gdb.ada/tagged_access/pack.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tagged_access/pack.ads b/gdb/testsuite/gdb.ada/tagged_access/pack.ads
index 8ae4864..f7e2d85 100644
--- a/gdb/testsuite/gdb.ada/tagged_access/pack.ads
+++ b/gdb/testsuite/gdb.ada/tagged_access/pack.ads
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tagged_not_init.exp b/gdb/testsuite/gdb.ada/tagged_not_init.exp
index 7d3c462..04cca39 100644
--- a/gdb/testsuite/gdb.ada/tagged_not_init.exp
+++ b/gdb/testsuite/gdb.ada/tagged_not_init.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tagged_not_init/foo.adb b/gdb/testsuite/gdb.ada/tagged_not_init/foo.adb
index 65ae86f..8aff7ef 100644
--- a/gdb/testsuite/gdb.ada/tagged_not_init/foo.adb
+++ b/gdb/testsuite/gdb.ada/tagged_not_init/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tagged_not_init/pck.adb b/gdb/testsuite/gdb.ada/tagged_not_init/pck.adb
index 2f05856..0bffc99 100644
--- a/gdb/testsuite/gdb.ada/tagged_not_init/pck.adb
+++ b/gdb/testsuite/gdb.ada/tagged_not_init/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tagged_not_init/pck.ads b/gdb/testsuite/gdb.ada/tagged_not_init/pck.ads
index fc8c215..3faaafb 100644
--- a/gdb/testsuite/gdb.ada/tagged_not_init/pck.ads
+++ b/gdb/testsuite/gdb.ada/tagged_not_init/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/task_bp.exp b/gdb/testsuite/gdb.ada/task_bp.exp
index 4b32a3d..08c25ea 100644
--- a/gdb/testsuite/gdb.ada/task_bp.exp
+++ b/gdb/testsuite/gdb.ada/task_bp.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/task_bp/foo.adb b/gdb/testsuite/gdb.ada/task_bp/foo.adb
index e59ef5e..04188a6 100644
--- a/gdb/testsuite/gdb.ada/task_bp/foo.adb
+++ b/gdb/testsuite/gdb.ada/task_bp/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/task_bp/pck.adb b/gdb/testsuite/gdb.ada/task_bp/pck.adb
index 9a9bac6..386a23e 100644
--- a/gdb/testsuite/gdb.ada/task_bp/pck.adb
+++ b/gdb/testsuite/gdb.ada/task_bp/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/task_bp/pck.ads b/gdb/testsuite/gdb.ada/task_bp/pck.ads
index 7408e4b..0c7d590 100644
--- a/gdb/testsuite/gdb.ada/task_bp/pck.ads
+++ b/gdb/testsuite/gdb.ada/task_bp/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/task_switch_in_core.exp b/gdb/testsuite/gdb.ada/task_switch_in_core.exp
index dd63bb8..bded377 100644
--- a/gdb/testsuite/gdb.ada/task_switch_in_core.exp
+++ b/gdb/testsuite/gdb.ada/task_switch_in_core.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -15,7 +15,7 @@
load_lib "ada.exp"
-require allow_ada_tests
+require allow_ada_tests gcore_cmd_available
standard_ada_testfile crash
diff --git a/gdb/testsuite/gdb.ada/task_switch_in_core/crash.adb b/gdb/testsuite/gdb.ada/task_switch_in_core/crash.adb
index 0624a64..d7d0c88 100644
--- a/gdb/testsuite/gdb.ada/task_switch_in_core/crash.adb
+++ b/gdb/testsuite/gdb.ada/task_switch_in_core/crash.adb
@@ -1,4 +1,4 @@
--- Copyright 2017-2024 Free Software Foundation, Inc.
+-- Copyright 2017-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/task_watch.exp b/gdb/testsuite/gdb.ada/task_watch.exp
index 42ad86e..646ddaa 100644
--- a/gdb/testsuite/gdb.ada/task_watch.exp
+++ b/gdb/testsuite/gdb.ada/task_watch.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/task_watch/foo.adb b/gdb/testsuite/gdb.ada/task_watch/foo.adb
index dd3cd4a..25d836e 100644
--- a/gdb/testsuite/gdb.ada/task_watch/foo.adb
+++ b/gdb/testsuite/gdb.ada/task_watch/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2009-2024 Free Software Foundation, Inc.
+-- Copyright 2009-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tasks.exp b/gdb/testsuite/gdb.ada/tasks.exp
index ecbfbd5..6e1ed84 100644
--- a/gdb/testsuite/gdb.ada/tasks.exp
+++ b/gdb/testsuite/gdb.ada/tasks.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tasks/foo.adb b/gdb/testsuite/gdb.ada/tasks/foo.adb
index e093897..4d3a782 100644
--- a/gdb/testsuite/gdb.ada/tasks/foo.adb
+++ b/gdb/testsuite/gdb.ada/tasks/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2009-2024 Free Software Foundation, Inc.
+-- Copyright 2009-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tick_last_segv.exp b/gdb/testsuite/gdb.ada/tick_last_segv.exp
index faabb5f..cfc449c 100644
--- a/gdb/testsuite/gdb.ada/tick_last_segv.exp
+++ b/gdb/testsuite/gdb.ada/tick_last_segv.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tick_last_segv/foo.adb b/gdb/testsuite/gdb.ada/tick_last_segv/foo.adb
index 3505f17..d3df927 100644
--- a/gdb/testsuite/gdb.ada/tick_last_segv/foo.adb
+++ b/gdb/testsuite/gdb.ada/tick_last_segv/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2009-2024 Free Software Foundation, Inc.
+-- Copyright 2009-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tick_length_array_enum_idx.exp b/gdb/testsuite/gdb.ada/tick_length_array_enum_idx.exp
index 533e2e3..04dc180 100644
--- a/gdb/testsuite/gdb.ada/tick_length_array_enum_idx.exp
+++ b/gdb/testsuite/gdb.ada/tick_length_array_enum_idx.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tick_length_array_enum_idx/foo_n207_004.adb b/gdb/testsuite/gdb.ada/tick_length_array_enum_idx/foo_n207_004.adb
index 9f243ad..9e7a977 100644
--- a/gdb/testsuite/gdb.ada/tick_length_array_enum_idx/foo_n207_004.adb
+++ b/gdb/testsuite/gdb.ada/tick_length_array_enum_idx/foo_n207_004.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.adb b/gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.adb
index f60d18f..7cc5dd9 100644
--- a/gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.adb
+++ b/gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.ads b/gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.ads
index b17a2c2..7f0405e 100644
--- a/gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.ads
+++ b/gdb/testsuite/gdb.ada/tick_length_array_enum_idx/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2014-2024 Free Software Foundation, Inc.
+-- Copyright 2014-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/type-tick-size.exp b/gdb/testsuite/gdb.ada/type-tick-size.exp
index c696a31..dcfe32e 100644
--- a/gdb/testsuite/gdb.ada/type-tick-size.exp
+++ b/gdb/testsuite/gdb.ada/type-tick-size.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/type-tick-size/pck.adb b/gdb/testsuite/gdb.ada/type-tick-size/pck.adb
index ffff1b6..c5b2358 100644
--- a/gdb/testsuite/gdb.ada/type-tick-size/pck.adb
+++ b/gdb/testsuite/gdb.ada/type-tick-size/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2024 Free Software Foundation, Inc.
+-- Copyright 2024-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/type-tick-size/pck.ads b/gdb/testsuite/gdb.ada/type-tick-size/pck.ads
index a3c3cd1..a0372a9 100644
--- a/gdb/testsuite/gdb.ada/type-tick-size/pck.ads
+++ b/gdb/testsuite/gdb.ada/type-tick-size/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2024 Free Software Foundation, Inc.
+-- Copyright 2024-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/type-tick-size/prog.adb b/gdb/testsuite/gdb.ada/type-tick-size/prog.adb
index c911583..a7457fd 100644
--- a/gdb/testsuite/gdb.ada/type-tick-size/prog.adb
+++ b/gdb/testsuite/gdb.ada/type-tick-size/prog.adb
@@ -1,4 +1,4 @@
--- Copyright 2024 Free Software Foundation, Inc.
+-- Copyright 2024-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
@@ -50,6 +50,8 @@ procedure Prog is
Rec_Type_Size : Integer := Rec'Object_Size;
begin
+ Do_Nothing (Simple_Val'Address);
+ Do_Nothing (Rec_Val'Address);
Do_Nothing (Static_Blob'Address);
Do_Nothing (Dynamic_Blob'Address);
null; -- STOP
diff --git a/gdb/testsuite/gdb.ada/type-tick-size/support.adb b/gdb/testsuite/gdb.ada/type-tick-size/support.adb
index b694653..ac8bfae 100644
--- a/gdb/testsuite/gdb.ada/type-tick-size/support.adb
+++ b/gdb/testsuite/gdb.ada/type-tick-size/support.adb
@@ -1,4 +1,4 @@
--- Copyright 2024 Free Software Foundation, Inc.
+-- Copyright 2024-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/type-tick-size/support.ads b/gdb/testsuite/gdb.ada/type-tick-size/support.ads
index b86b14e..3a84ad0 100644
--- a/gdb/testsuite/gdb.ada/type-tick-size/support.ads
+++ b/gdb/testsuite/gdb.ada/type-tick-size/support.ads
@@ -1,4 +1,4 @@
--- Copyright 2024 Free Software Foundation, Inc.
+-- Copyright 2024-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/type_coercion.exp b/gdb/testsuite/gdb.ada/type_coercion.exp
index 50b1d7d..b651ee4 100644
--- a/gdb/testsuite/gdb.ada/type_coercion.exp
+++ b/gdb/testsuite/gdb.ada/type_coercion.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/type_coercion/assign.adb b/gdb/testsuite/gdb.ada/type_coercion/assign.adb
index 5edfa18..698f56f 100644
--- a/gdb/testsuite/gdb.ada/type_coercion/assign.adb
+++ b/gdb/testsuite/gdb.ada/type_coercion/assign.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/type_coercion/ident.adb b/gdb/testsuite/gdb.ada/type_coercion/ident.adb
index 8a22e2e..a53e3c4 100644
--- a/gdb/testsuite/gdb.ada/type_coercion/ident.adb
+++ b/gdb/testsuite/gdb.ada/type_coercion/ident.adb
@@ -1,4 +1,4 @@
--- Copyright 2008-2024 Free Software Foundation, Inc.
+-- Copyright 2008-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec.exp b/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec.exp
index 2bcc027..9b274fc 100644
--- a/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec.exp
+++ b/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -37,8 +37,9 @@ foreach_gnat_encoding scenario flags {all minimal} {
"= \\(n => 3, ptr => 0x0, data => \\(3, 5, 8\\)\\)" \
"print My_Object with null Ptr"
+ # Accept "foo." prefix for older versions of GNAT.
gdb_test "print my_object.ptr" \
- "= \\(foo.table_access\\) 0x0" \
+ "= \\((foo.)?table_access\\) 0x0" \
"print My_Object.Ptr when null"
# Same for My_P_Object...
@@ -48,7 +49,7 @@ foreach_gnat_encoding scenario flags {all minimal} {
"print My_P_Object with null Ptr"
gdb_test "print my_p_object.ptr" \
- "\\(foo.p_table_access\\) 0x0" \
+ "\\((foo.)?p_table_access\\) 0x0" \
"print My_P_Object.Ptr when null"
# Continue until the Ptr component of both objects get allocated.
@@ -68,7 +69,7 @@ foreach_gnat_encoding scenario flags {all minimal} {
"print my_object after setting Ptr"
gdb_test "print my_object.ptr" \
- "\\(foo.table_access\\) $hex" \
+ "\\((foo.)?table_access\\) $hex" \
"print my_object.ptr when no longer null"
gdb_test "print my_object.ptr.all" \
@@ -81,7 +82,7 @@ foreach_gnat_encoding scenario flags {all minimal} {
"print my_p_object after setting Ptr"
gdb_test "print my_p_object.ptr" \
- "= \\(foo.p_table_access\\) $hex" \
+ "= \\((foo.)?p_table_access\\) $hex" \
"print My_P_Object.Ptr when no longer null"
gdb_test "print my_p_object.ptr.all" \
diff --git a/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/foo.adb b/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/foo.adb
index 2406eca..57b771e 100644
--- a/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/foo.adb
+++ b/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.adb b/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.adb
index a64c5e9..54ddf5c 100644
--- a/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.adb
+++ b/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.ads b/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.ads
index bd9fd43..db7c0a8 100644
--- a/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.ads
+++ b/gdb/testsuite/gdb.ada/unc_arr_ptr_in_var_rec/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/unchecked_union.exp b/gdb/testsuite/gdb.ada/unchecked_union.exp
index 5d3256b..89c0593 100644
--- a/gdb/testsuite/gdb.ada/unchecked_union.exp
+++ b/gdb/testsuite/gdb.ada/unchecked_union.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/unchecked_union/pck.adb b/gdb/testsuite/gdb.ada/unchecked_union/pck.adb
index 64f765d..34162db 100644
--- a/gdb/testsuite/gdb.ada/unchecked_union/pck.adb
+++ b/gdb/testsuite/gdb.ada/unchecked_union/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/unchecked_union/pck.ads b/gdb/testsuite/gdb.ada/unchecked_union/pck.ads
index 195acda..40563bd 100644
--- a/gdb/testsuite/gdb.ada/unchecked_union/pck.ads
+++ b/gdb/testsuite/gdb.ada/unchecked_union/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/unchecked_union/unchecked_union.adb b/gdb/testsuite/gdb.ada/unchecked_union/unchecked_union.adb
index b2e97c8..9dce199 100644
--- a/gdb/testsuite/gdb.ada/unchecked_union/unchecked_union.adb
+++ b/gdb/testsuite/gdb.ada/unchecked_union/unchecked_union.adb
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/uninitialized-variable-record.exp b/gdb/testsuite/gdb.ada/uninitialized-variable-record.exp
index 7fc7239..0e198cb 100644
--- a/gdb/testsuite/gdb.ada/uninitialized-variable-record.exp
+++ b/gdb/testsuite/gdb.ada/uninitialized-variable-record.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/uninitialized-variable-record/parse.adb b/gdb/testsuite/gdb.ada/uninitialized-variable-record/parse.adb
index f00c75c..50c26a3 100644
--- a/gdb/testsuite/gdb.ada/uninitialized-variable-record/parse.adb
+++ b/gdb/testsuite/gdb.ada/uninitialized-variable-record/parse.adb
@@ -1,4 +1,4 @@
--- Copyright 2009-2024 Free Software Foundation, Inc.
+-- Copyright 2009-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/uninitialized_vars.exp b/gdb/testsuite/gdb.ada/uninitialized_vars.exp
index 4c7aa10..8d979dc 100644
--- a/gdb/testsuite/gdb.ada/uninitialized_vars.exp
+++ b/gdb/testsuite/gdb.ada/uninitialized_vars.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/uninitialized_vars/parse.adb b/gdb/testsuite/gdb.ada/uninitialized_vars/parse.adb
index 5488e1f..430466f 100644
--- a/gdb/testsuite/gdb.ada/uninitialized_vars/parse.adb
+++ b/gdb/testsuite/gdb.ada/uninitialized_vars/parse.adb
@@ -1,4 +1,4 @@
--- Copyright 2009-2024 Free Software Foundation, Inc.
+-- Copyright 2009-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/uninitialized_vars/parse_controlled.ads b/gdb/testsuite/gdb.ada/uninitialized_vars/parse_controlled.ads
index 5ae2c99..e3e69c5 100644
--- a/gdb/testsuite/gdb.ada/uninitialized_vars/parse_controlled.ads
+++ b/gdb/testsuite/gdb.ada/uninitialized_vars/parse_controlled.ads
@@ -1,4 +1,4 @@
--- Copyright 2009-2024 Free Software Foundation, Inc.
+-- Copyright 2009-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/unsigned_last.exp b/gdb/testsuite/gdb.ada/unsigned_last.exp
index 0aabf76..e8e082b 100644
--- a/gdb/testsuite/gdb.ada/unsigned_last.exp
+++ b/gdb/testsuite/gdb.ada/unsigned_last.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/unsigned_last/main.adb b/gdb/testsuite/gdb.ada/unsigned_last/main.adb
index db39e6b..07f02dd 100644
--- a/gdb/testsuite/gdb.ada/unsigned_last/main.adb
+++ b/gdb/testsuite/gdb.ada/unsigned_last/main.adb
@@ -1,4 +1,4 @@
--- Copyright 2022-2024 Free Software Foundation, Inc.
+-- Copyright 2022-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/unsigned_range.exp b/gdb/testsuite/gdb.ada/unsigned_range.exp
index 7017d3d..b18fa12 100644
--- a/gdb/testsuite/gdb.ada/unsigned_range.exp
+++ b/gdb/testsuite/gdb.ada/unsigned_range.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/unsigned_range/foo.adb b/gdb/testsuite/gdb.ada/unsigned_range/foo.adb
index 64e5f39..9613d9e 100644
--- a/gdb/testsuite/gdb.ada/unsigned_range/foo.adb
+++ b/gdb/testsuite/gdb.ada/unsigned_range/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/unsigned_range/pack.adb b/gdb/testsuite/gdb.ada/unsigned_range/pack.adb
index 691fcd1..c8ae145 100644
--- a/gdb/testsuite/gdb.ada/unsigned_range/pack.adb
+++ b/gdb/testsuite/gdb.ada/unsigned_range/pack.adb
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/unsigned_range/pack.ads b/gdb/testsuite/gdb.ada/unsigned_range/pack.ads
index 4c82471..d22b259 100644
--- a/gdb/testsuite/gdb.ada/unsigned_range/pack.ads
+++ b/gdb/testsuite/gdb.ada/unsigned_range/pack.ads
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/var_arr_attrs.exp b/gdb/testsuite/gdb.ada/var_arr_attrs.exp
index 698fe76..6672c25 100644
--- a/gdb/testsuite/gdb.ada/var_arr_attrs.exp
+++ b/gdb/testsuite/gdb.ada/var_arr_attrs.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/var_arr_attrs/foo_o115_002.adb b/gdb/testsuite/gdb.ada/var_arr_attrs/foo_o115_002.adb
index 096cbff..c07c90c 100644
--- a/gdb/testsuite/gdb.ada/var_arr_attrs/foo_o115_002.adb
+++ b/gdb/testsuite/gdb.ada/var_arr_attrs/foo_o115_002.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/var_arr_attrs/pck.adb b/gdb/testsuite/gdb.ada/var_arr_attrs/pck.adb
index 7cdfe48..f62d089 100644
--- a/gdb/testsuite/gdb.ada/var_arr_attrs/pck.adb
+++ b/gdb/testsuite/gdb.ada/var_arr_attrs/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/var_arr_attrs/pck.ads b/gdb/testsuite/gdb.ada/var_arr_attrs/pck.ads
index 6343d1d..0a6e7f6 100644
--- a/gdb/testsuite/gdb.ada/var_arr_attrs/pck.ads
+++ b/gdb/testsuite/gdb.ada/var_arr_attrs/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/var_arr_typedef.exp b/gdb/testsuite/gdb.ada/var_arr_typedef.exp
index 4b8d242..061027e 100644
--- a/gdb/testsuite/gdb.ada/var_arr_typedef.exp
+++ b/gdb/testsuite/gdb.ada/var_arr_typedef.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/var_arr_typedef/pack.adb b/gdb/testsuite/gdb.ada/var_arr_typedef/pack.adb
index 491598b..2f9114a 100644
--- a/gdb/testsuite/gdb.ada/var_arr_typedef/pack.adb
+++ b/gdb/testsuite/gdb.ada/var_arr_typedef/pack.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/var_arr_typedef/pack.ads b/gdb/testsuite/gdb.ada/var_arr_typedef/pack.ads
index b777117..2ceb071 100644
--- a/gdb/testsuite/gdb.ada/var_arr_typedef/pack.ads
+++ b/gdb/testsuite/gdb.ada/var_arr_typedef/pack.ads
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/var_arr_typedef/var_arr_typedef.adb b/gdb/testsuite/gdb.ada/var_arr_typedef/var_arr_typedef.adb
index af71387..4a7f4cb 100644
--- a/gdb/testsuite/gdb.ada/var_arr_typedef/var_arr_typedef.adb
+++ b/gdb/testsuite/gdb.ada/var_arr_typedef/var_arr_typedef.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/var_rec_arr.exp b/gdb/testsuite/gdb.ada/var_rec_arr.exp
index 20598ea..49713e2 100644
--- a/gdb/testsuite/gdb.ada/var_rec_arr.exp
+++ b/gdb/testsuite/gdb.ada/var_rec_arr.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/var_rec_arr/foo_na09_042.adb b/gdb/testsuite/gdb.ada/var_rec_arr/foo_na09_042.adb
index 21c2775..fe33f2d 100644
--- a/gdb/testsuite/gdb.ada/var_rec_arr/foo_na09_042.adb
+++ b/gdb/testsuite/gdb.ada/var_rec_arr/foo_na09_042.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/var_rec_arr/pck.adb b/gdb/testsuite/gdb.ada/var_rec_arr/pck.adb
index a4611b1..3978554 100644
--- a/gdb/testsuite/gdb.ada/var_rec_arr/pck.adb
+++ b/gdb/testsuite/gdb.ada/var_rec_arr/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/var_rec_arr/pck.ads b/gdb/testsuite/gdb.ada/var_rec_arr/pck.ads
index 567a003..779fd7e 100644
--- a/gdb/testsuite/gdb.ada/var_rec_arr/pck.ads
+++ b/gdb/testsuite/gdb.ada/var_rec_arr/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2015-2024 Free Software Foundation, Inc.
+-- Copyright 2015-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/variant-record.exp b/gdb/testsuite/gdb.ada/variant-record.exp
index 672e12e..24f105c 100644
--- a/gdb/testsuite/gdb.ada/variant-record.exp
+++ b/gdb/testsuite/gdb.ada/variant-record.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/variant-record/proc.adb b/gdb/testsuite/gdb.ada/variant-record/proc.adb
index 7919ec4..598b854 100644
--- a/gdb/testsuite/gdb.ada/variant-record/proc.adb
+++ b/gdb/testsuite/gdb.ada/variant-record/proc.adb
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/variant-record/value.adb b/gdb/testsuite/gdb.ada/variant-record/value.adb
index ba9a6cf..875fca1 100644
--- a/gdb/testsuite/gdb.ada/variant-record/value.adb
+++ b/gdb/testsuite/gdb.ada/variant-record/value.adb
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/variant-record/value.ads b/gdb/testsuite/gdb.ada/variant-record/value.ads
index f462528..87c5c21 100644
--- a/gdb/testsuite/gdb.ada/variant-record/value.ads
+++ b/gdb/testsuite/gdb.ada/variant-record/value.ads
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/variant.exp b/gdb/testsuite/gdb.ada/variant.exp
index 227331c..c52abbc 100644
--- a/gdb/testsuite/gdb.ada/variant.exp
+++ b/gdb/testsuite/gdb.ada/variant.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/variant/pck.ads b/gdb/testsuite/gdb.ada/variant/pck.ads
index 25cc8d4..e01f731 100644
--- a/gdb/testsuite/gdb.ada/variant/pck.ads
+++ b/gdb/testsuite/gdb.ada/variant/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/variant/pkg.adb b/gdb/testsuite/gdb.ada/variant/pkg.adb
index 4560176..15af844 100644
--- a/gdb/testsuite/gdb.ada/variant/pkg.adb
+++ b/gdb/testsuite/gdb.ada/variant/pkg.adb
@@ -1,4 +1,4 @@
--- Copyright 2020-2024 Free Software Foundation, Inc.
+-- Copyright 2020-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/variant_record_field.exp b/gdb/testsuite/gdb.ada/variant_record_field.exp
index f3baa25..9c7793d 100644
--- a/gdb/testsuite/gdb.ada/variant_record_field.exp
+++ b/gdb/testsuite/gdb.ada/variant_record_field.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -17,6 +17,10 @@ load_lib "ada.exp"
require allow_ada_tests
+# LLVM does not have -Og, and anyway this is a regression test for a
+# GCC bug.
+require ada_og
+
standard_ada_testfile foo
# The compiler used to emit an invalid DWARF expression for the record
diff --git a/gdb/testsuite/gdb.ada/variant_record_field/foo.adb b/gdb/testsuite/gdb.ada/variant_record_field/foo.adb
index 2526a1d..a56b296 100644
--- a/gdb/testsuite/gdb.ada/variant_record_field/foo.adb
+++ b/gdb/testsuite/gdb.ada/variant_record_field/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2024 Free Software Foundation, Inc.
+-- Copyright 2024-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/variant_record_packed_array.exp b/gdb/testsuite/gdb.ada/variant_record_packed_array.exp
index f193459..688042f 100644
--- a/gdb/testsuite/gdb.ada/variant_record_packed_array.exp
+++ b/gdb/testsuite/gdb.ada/variant_record_packed_array.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -52,7 +52,7 @@ foreach_gnat_encoding scenario flags {all minimal} {
"= \\(system\\.address\\) $hex" \
"print address"
- set test "print {foo.octal_buffer}($)"
+ set test "print {octal_buffer}($)"
gdb_test_multiple "$test" $test {
-re "= \\(size => 8, buffer => \\(1, 2, 3, 4, 5, 6, 7, 0\\), length => 8\\)\[\r\n\]+$gdb_prompt $" {
pass $test
diff --git a/gdb/testsuite/gdb.ada/variant_record_packed_array/foo.adb b/gdb/testsuite/gdb.ada/variant_record_packed_array/foo.adb
index 9c366f8..97b7d9c 100644
--- a/gdb/testsuite/gdb.ada/variant_record_packed_array/foo.adb
+++ b/gdb/testsuite/gdb.ada/variant_record_packed_array/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2009-2024 Free Software Foundation, Inc.
+-- Copyright 2009-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/variant_record_packed_array/pck.adb b/gdb/testsuite/gdb.ada/variant_record_packed_array/pck.adb
index 8164f50..75e3b15 100644
--- a/gdb/testsuite/gdb.ada/variant_record_packed_array/pck.adb
+++ b/gdb/testsuite/gdb.ada/variant_record_packed_array/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2009-2024 Free Software Foundation, Inc.
+-- Copyright 2009-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/variant_record_packed_array/pck.ads b/gdb/testsuite/gdb.ada/variant_record_packed_array/pck.ads
index 74f26a7..488db7e 100644
--- a/gdb/testsuite/gdb.ada/variant_record_packed_array/pck.ads
+++ b/gdb/testsuite/gdb.ada/variant_record_packed_array/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2009-2024 Free Software Foundation, Inc.
+-- Copyright 2009-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/varsize_limit.exp b/gdb/testsuite/gdb.ada/varsize_limit.exp
index a8920d3..9b58ccc 100644
--- a/gdb/testsuite/gdb.ada/varsize_limit.exp
+++ b/gdb/testsuite/gdb.ada/varsize_limit.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/varsize_limit/pck.adb b/gdb/testsuite/gdb.ada/varsize_limit/pck.adb
index 5f53b7c..b0ff019 100644
--- a/gdb/testsuite/gdb.ada/varsize_limit/pck.adb
+++ b/gdb/testsuite/gdb.ada/varsize_limit/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/varsize_limit/pck.ads b/gdb/testsuite/gdb.ada/varsize_limit/pck.ads
index 22b2a3a..8850aa9 100644
--- a/gdb/testsuite/gdb.ada/varsize_limit/pck.ads
+++ b/gdb/testsuite/gdb.ada/varsize_limit/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/varsize_limit/vsizelim.adb b/gdb/testsuite/gdb.ada/varsize_limit/vsizelim.adb
index 22ec41c..8773c70 100644
--- a/gdb/testsuite/gdb.ada/varsize_limit/vsizelim.adb
+++ b/gdb/testsuite/gdb.ada/varsize_limit/vsizelim.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/verylong.exp b/gdb/testsuite/gdb.ada/verylong.exp
index c8574f3..e695ddd 100644
--- a/gdb/testsuite/gdb.ada/verylong.exp
+++ b/gdb/testsuite/gdb.ada/verylong.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/verylong/prog.adb b/gdb/testsuite/gdb.ada/verylong/prog.adb
index e3b47f7..4165f3f 100644
--- a/gdb/testsuite/gdb.ada/verylong/prog.adb
+++ b/gdb/testsuite/gdb.ada/verylong/prog.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/vla.exp b/gdb/testsuite/gdb.ada/vla.exp
index 95ab603..7973cc1 100644
--- a/gdb/testsuite/gdb.ada/vla.exp
+++ b/gdb/testsuite/gdb.ada/vla.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/vla/vla.adb b/gdb/testsuite/gdb.ada/vla/vla.adb
index cdefe5d..008b58e 100644
--- a/gdb/testsuite/gdb.ada/vla/vla.adb
+++ b/gdb/testsuite/gdb.ada/vla/vla.adb
@@ -1,4 +1,4 @@
--- Copyright 2019-2024 Free Software Foundation, Inc.
+-- Copyright 2019-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/voidctx.exp b/gdb/testsuite/gdb.ada/voidctx.exp
index 014dcf9..2d7c5a1 100644
--- a/gdb/testsuite/gdb.ada/voidctx.exp
+++ b/gdb/testsuite/gdb.ada/voidctx.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/voidctx/pck.adb b/gdb/testsuite/gdb.ada/voidctx/pck.adb
index ef03728..2faacf1 100644
--- a/gdb/testsuite/gdb.ada/voidctx/pck.adb
+++ b/gdb/testsuite/gdb.ada/voidctx/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/voidctx/pck.ads b/gdb/testsuite/gdb.ada/voidctx/pck.ads
index 9ac4622..47c5e95 100644
--- a/gdb/testsuite/gdb.ada/voidctx/pck.ads
+++ b/gdb/testsuite/gdb.ada/voidctx/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/voidctx/voidctx.adb b/gdb/testsuite/gdb.ada/voidctx/voidctx.adb
index 18b67be..847bac5 100644
--- a/gdb/testsuite/gdb.ada/voidctx/voidctx.adb
+++ b/gdb/testsuite/gdb.ada/voidctx/voidctx.adb
@@ -1,4 +1,4 @@
--- Copyright 2021-2024 Free Software Foundation, Inc.
+-- Copyright 2021-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/watch_arg.exp b/gdb/testsuite/gdb.ada/watch_arg.exp
index 9df3f46..155ae2a 100644
--- a/gdb/testsuite/gdb.ada/watch_arg.exp
+++ b/gdb/testsuite/gdb.ada/watch_arg.exp
@@ -1,4 +1,4 @@
-# Copyright 2006-2024 Free Software Foundation, Inc.
+# Copyright 2006-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/watch_arg/pck.adb b/gdb/testsuite/gdb.ada/watch_arg/pck.adb
index 9edc10b..d616516 100644
--- a/gdb/testsuite/gdb.ada/watch_arg/pck.adb
+++ b/gdb/testsuite/gdb.ada/watch_arg/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/watch_arg/pck.ads b/gdb/testsuite/gdb.ada/watch_arg/pck.ads
index 7de7794..90f3ced 100644
--- a/gdb/testsuite/gdb.ada/watch_arg/pck.ads
+++ b/gdb/testsuite/gdb.ada/watch_arg/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/watch_arg/watch.adb b/gdb/testsuite/gdb.ada/watch_arg/watch.adb
index c7b312d..fa09776 100644
--- a/gdb/testsuite/gdb.ada/watch_arg/watch.adb
+++ b/gdb/testsuite/gdb.ada/watch_arg/watch.adb
@@ -1,4 +1,4 @@
--- Copyright 2006-2024 Free Software Foundation, Inc.
+-- Copyright 2006-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/watch_minus_l.exp b/gdb/testsuite/gdb.ada/watch_minus_l.exp
index 9216dcb..fb998ce 100644
--- a/gdb/testsuite/gdb.ada/watch_minus_l.exp
+++ b/gdb/testsuite/gdb.ada/watch_minus_l.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/watch_minus_l/foo_ra10_006.adb b/gdb/testsuite/gdb.ada/watch_minus_l/foo_ra10_006.adb
index e0a09c3..b466aac 100644
--- a/gdb/testsuite/gdb.ada/watch_minus_l/foo_ra10_006.adb
+++ b/gdb/testsuite/gdb.ada/watch_minus_l/foo_ra10_006.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/watch_minus_l/pck.adb b/gdb/testsuite/gdb.ada/watch_minus_l/pck.adb
index 7b68d2a..3ced0c2 100644
--- a/gdb/testsuite/gdb.ada/watch_minus_l/pck.adb
+++ b/gdb/testsuite/gdb.ada/watch_minus_l/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/watch_minus_l/pck.ads b/gdb/testsuite/gdb.ada/watch_minus_l/pck.ads
index 6132c8d..ca98cb8 100644
--- a/gdb/testsuite/gdb.ada/watch_minus_l/pck.ads
+++ b/gdb/testsuite/gdb.ada/watch_minus_l/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2018-2024 Free Software Foundation, Inc.
+-- Copyright 2018-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/whatis_array_val.exp b/gdb/testsuite/gdb.ada/whatis_array_val.exp
index 007d6ef..2ccac34 100644
--- a/gdb/testsuite/gdb.ada/whatis_array_val.exp
+++ b/gdb/testsuite/gdb.ada/whatis_array_val.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -30,12 +30,13 @@ if {![runto "foo.adb:$bp_location"]} {
return
}
+# Accept "foo." prefix for older versions of GNAT.
gdb_test "whatis full" \
- "type = foo\\.full_table"
+ "type = (foo\\.)?full_table"
gdb_test "print full" \
" = \\(144, 233, 377, 610, 987\\)"
gdb_test "whatis $" \
- "type = foo\\.full_table"
+ "type = (foo\\.)?full_table"
diff --git a/gdb/testsuite/gdb.ada/whatis_array_val/foo.adb b/gdb/testsuite/gdb.ada/whatis_array_val/foo.adb
index bd59bae..7315359 100644
--- a/gdb/testsuite/gdb.ada/whatis_array_val/foo.adb
+++ b/gdb/testsuite/gdb.ada/whatis_array_val/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2012-2024 Free Software Foundation, Inc.
+-- Copyright 2012-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/whatis_array_val/pck.adb b/gdb/testsuite/gdb.ada/whatis_array_val/pck.adb
index 9edc10b..d616516 100644
--- a/gdb/testsuite/gdb.ada/whatis_array_val/pck.adb
+++ b/gdb/testsuite/gdb.ada/whatis_array_val/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/whatis_array_val/pck.ads b/gdb/testsuite/gdb.ada/whatis_array_val/pck.ads
index 7de7794..90f3ced 100644
--- a/gdb/testsuite/gdb.ada/whatis_array_val/pck.ads
+++ b/gdb/testsuite/gdb.ada/whatis_array_val/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/widewide.exp b/gdb/testsuite/gdb.ada/widewide.exp
index f1ce084..66ce7f7 100644
--- a/gdb/testsuite/gdb.ada/widewide.exp
+++ b/gdb/testsuite/gdb.ada/widewide.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/widewide/foo.adb b/gdb/testsuite/gdb.ada/widewide/foo.adb
index 862549b..2d57eeb 100644
--- a/gdb/testsuite/gdb.ada/widewide/foo.adb
+++ b/gdb/testsuite/gdb.ada/widewide/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/widewide/pck.adb b/gdb/testsuite/gdb.ada/widewide/pck.adb
index 43d850e..d696260 100644
--- a/gdb/testsuite/gdb.ada/widewide/pck.adb
+++ b/gdb/testsuite/gdb.ada/widewide/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/widewide/pck.ads b/gdb/testsuite/gdb.ada/widewide/pck.ads
index b4ffe89..27f82d0 100644
--- a/gdb/testsuite/gdb.ada/widewide/pck.ads
+++ b/gdb/testsuite/gdb.ada/widewide/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2011-2024 Free Software Foundation, Inc.
+-- Copyright 2011-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/win_fu_syms.exp b/gdb/testsuite/gdb.ada/win_fu_syms.exp
index 527a449..800e610 100644
--- a/gdb/testsuite/gdb.ada/win_fu_syms.exp
+++ b/gdb/testsuite/gdb.ada/win_fu_syms.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,6 +16,7 @@
load_lib "ada.exp"
require allow_ada_tests
+require ada_shared_link
standard_ada_testfile foo
diff --git a/gdb/testsuite/gdb.ada/win_fu_syms/foo.adb b/gdb/testsuite/gdb.ada/win_fu_syms/foo.adb
index cbc7281..b5bf58f 100644
--- a/gdb/testsuite/gdb.ada/win_fu_syms/foo.adb
+++ b/gdb/testsuite/gdb.ada/win_fu_syms/foo.adb
@@ -1,4 +1,4 @@
--- Copyright 2013-2024 Free Software Foundation, Inc.
+-- Copyright 2013-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/win_fu_syms/pck.adb b/gdb/testsuite/gdb.ada/win_fu_syms/pck.adb
index 63709c0..53fb2bb 100644
--- a/gdb/testsuite/gdb.ada/win_fu_syms/pck.adb
+++ b/gdb/testsuite/gdb.ada/win_fu_syms/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ada/win_fu_syms/pck.ads b/gdb/testsuite/gdb.ada/win_fu_syms/pck.ads
index 8d54929..5d6f631 100644
--- a/gdb/testsuite/gdb.ada/win_fu_syms/pck.ads
+++ b/gdb/testsuite/gdb.ada/win_fu_syms/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2007-2024 Free Software Foundation, Inc.
+-- Copyright 2007-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-atomic-inst.c b/gdb/testsuite/gdb.arch/aarch64-atomic-inst.c
index 658cc06..a9444b8 100644
--- a/gdb/testsuite/gdb.arch/aarch64-atomic-inst.c
+++ b/gdb/testsuite/gdb.arch/aarch64-atomic-inst.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-atomic-inst.exp b/gdb/testsuite/gdb.arch/aarch64-atomic-inst.exp
index e7ad261..091d1f8 100644
--- a/gdb/testsuite/gdb.arch/aarch64-atomic-inst.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-atomic-inst.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-brk-patterns.c b/gdb/testsuite/gdb.arch/aarch64-brk-patterns.c
index 146a9e5..81d2403 100644
--- a/gdb/testsuite/gdb.arch/aarch64-brk-patterns.c
+++ b/gdb/testsuite/gdb.arch/aarch64-brk-patterns.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-brk-patterns.exp b/gdb/testsuite/gdb.arch/aarch64-brk-patterns.exp
index d52df43..c2d944c 100644
--- a/gdb/testsuite/gdb.arch/aarch64-brk-patterns.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-brk-patterns.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-dbreg-contents.exp b/gdb/testsuite/gdb.arch/aarch64-dbreg-contents.exp
index 07db789..7777175 100644
--- a/gdb/testsuite/gdb.arch/aarch64-dbreg-contents.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-dbreg-contents.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-fp.c b/gdb/testsuite/gdb.arch/aarch64-fp.c
index 9bde0b0..d8e62bb 100644
--- a/gdb/testsuite/gdb.arch/aarch64-fp.c
+++ b/gdb/testsuite/gdb.arch/aarch64-fp.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-fp.exp b/gdb/testsuite/gdb.arch/aarch64-fp.exp
index 6284e41..0c24939 100644
--- a/gdb/testsuite/gdb.arch/aarch64-fp.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-fp.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-mops-single-step.c b/gdb/testsuite/gdb.arch/aarch64-mops-single-step.c
index 4a27867..2780e55 100644
--- a/gdb/testsuite/gdb.arch/aarch64-mops-single-step.c
+++ b/gdb/testsuite/gdb.arch/aarch64-mops-single-step.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-mops-single-step.exp b/gdb/testsuite/gdb.arch/aarch64-mops-single-step.exp
index 2cb5fdc..4cdd985 100644
--- a/gdb/testsuite/gdb.arch/aarch64-mops-single-step.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-mops-single-step.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-mops-watchpoint.c b/gdb/testsuite/gdb.arch/aarch64-mops-watchpoint.c
index b981f03..e620533 100644
--- a/gdb/testsuite/gdb.arch/aarch64-mops-watchpoint.c
+++ b/gdb/testsuite/gdb.arch/aarch64-mops-watchpoint.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-mops-watchpoint.exp b/gdb/testsuite/gdb.arch/aarch64-mops-watchpoint.exp
index 9e21060..70a49b5 100644
--- a/gdb/testsuite/gdb.arch/aarch64-mops-watchpoint.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-mops-watchpoint.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-mte-core.c b/gdb/testsuite/gdb.arch/aarch64-mte-core.c
index 4823c7c..af93afe 100644
--- a/gdb/testsuite/gdb.arch/aarch64-mte-core.c
+++ b/gdb/testsuite/gdb.arch/aarch64-mte-core.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-mte-core.exp b/gdb/testsuite/gdb.arch/aarch64-mte-core.exp
index 395e0be..fdaa061 100644
--- a/gdb/testsuite/gdb.arch/aarch64-mte-core.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-mte-core.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-mte.c b/gdb/testsuite/gdb.arch/aarch64-mte.c
index bb04b87..ecec916c 100644
--- a/gdb/testsuite/gdb.arch/aarch64-mte.c
+++ b/gdb/testsuite/gdb.arch/aarch64-mte.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-mte.exp b/gdb/testsuite/gdb.arch/aarch64-mte.exp
index 47acb5a..8bb5814 100644
--- a/gdb/testsuite/gdb.arch/aarch64-mte.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-mte.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-non-address-bits.c b/gdb/testsuite/gdb.arch/aarch64-non-address-bits.c
index 855de36..8d65462 100644
--- a/gdb/testsuite/gdb.arch/aarch64-non-address-bits.c
+++ b/gdb/testsuite/gdb.arch/aarch64-non-address-bits.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-non-address-bits.exp b/gdb/testsuite/gdb.arch/aarch64-non-address-bits.exp
index 8b77786..0f90da8 100644
--- a/gdb/testsuite/gdb.arch/aarch64-non-address-bits.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-non-address-bits.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-pauth.c b/gdb/testsuite/gdb.arch/aarch64-pauth.c
index fb1e8a7..ea7dbc6 100644
--- a/gdb/testsuite/gdb.arch/aarch64-pauth.c
+++ b/gdb/testsuite/gdb.arch/aarch64-pauth.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-pauth.exp b/gdb/testsuite/gdb.arch/aarch64-pauth.exp
index d5b4b61..72cefa1 100644
--- a/gdb/testsuite/gdb.arch/aarch64-pauth.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-pauth.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# Copyright (C) 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-prologue.c b/gdb/testsuite/gdb.arch/aarch64-prologue.c
index 1df7dd8..58e72af 100644
--- a/gdb/testsuite/gdb.arch/aarch64-prologue.c
+++ b/gdb/testsuite/gdb.arch/aarch64-prologue.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-prologue.exp b/gdb/testsuite/gdb.arch/aarch64-prologue.exp
index 5085a23..f782daa 100644
--- a/gdb/testsuite/gdb.arch/aarch64-prologue.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-prologue.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-pseudo-unwind-asm.S b/gdb/testsuite/gdb.arch/aarch64-pseudo-unwind-asm.S
index 208f5d0..b1c2871 100644
--- a/gdb/testsuite/gdb.arch/aarch64-pseudo-unwind-asm.S
+++ b/gdb/testsuite/gdb.arch/aarch64-pseudo-unwind-asm.S
@@ -1,4 +1,4 @@
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/aarch64-pseudo-unwind.c b/gdb/testsuite/gdb.arch/aarch64-pseudo-unwind.c
index 49b0553..1646a34 100644
--- a/gdb/testsuite/gdb.arch/aarch64-pseudo-unwind.c
+++ b/gdb/testsuite/gdb.arch/aarch64-pseudo-unwind.c
@@ -1,4 +1,4 @@
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/aarch64-pseudo-unwind.exp b/gdb/testsuite/gdb.arch/aarch64-pseudo-unwind.exp
index 8b7c148..7ce1fdf 100644
--- a/gdb/testsuite/gdb.arch/aarch64-pseudo-unwind.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-pseudo-unwind.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sighandler-regs.c b/gdb/testsuite/gdb.arch/aarch64-sighandler-regs.c
index a448eed..f573ba0 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sighandler-regs.c
+++ b/gdb/testsuite/gdb.arch/aarch64-sighandler-regs.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sighandler-regs.exp b/gdb/testsuite/gdb.arch/aarch64-sighandler-regs.exp
index a2fffec..f8039d4 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sighandler-regs.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sighandler-regs.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-core-0.exp b/gdb/testsuite/gdb.arch/aarch64-sme-core-0.exp
index ad2b576..764cf16 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-core-0.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-core-0.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-core-1.exp b/gdb/testsuite/gdb.arch/aarch64-sme-core-1.exp
index 792f495..a847c7c 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-core-1.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-core-1.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-core-2.exp b/gdb/testsuite/gdb.arch/aarch64-sme-core-2.exp
index 4282c6d..4ee0d9f 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-core-2.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-core-2.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-core-3.exp b/gdb/testsuite/gdb.arch/aarch64-sme-core-3.exp
index 7ffb0c0..de143aa 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-core-3.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-core-3.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-core-4.exp b/gdb/testsuite/gdb.arch/aarch64-sme-core-4.exp
index ac979d2..6a122ea 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-core-4.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-core-4.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-core.c b/gdb/testsuite/gdb.arch/aarch64-sme-core.c
index f7014c1..df87c02 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-core.c
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-core.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-core.exp.tcl b/gdb/testsuite/gdb.arch/aarch64-sme-core.exp.tcl
index b9b83b9..44d0808 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-core.exp.tcl
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-core.exp.tcl
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-0.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-0.exp
index e3447e6..04ac477 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-0.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-0.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-1.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-1.exp
index 8808240..5926c91 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-1.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-1.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-2.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-2.exp
index 758b8a7..bef6179 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-2.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-2.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-3.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-3.exp
index 293f696..72bbca2 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-3.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-3.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-4.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-4.exp
index 67db61c..0c1ac80 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-4.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-4.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-5.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-5.exp
index 41c8477..35aba9d 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-5.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-5.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-6.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-6.exp
index 4df5812..ac8f009 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-6.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-6.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-7.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-7.exp
index 553265b..45a58e1 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-7.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-7.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-8.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-8.exp
index bebe7d9..78b24d7 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-8.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-8.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-9.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-9.exp
index 84ef5f5..5368c53 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-9.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available-9.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available.c b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available.c
index 3558007..9e11acf 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available.c
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available.exp.tcl b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available.exp.tcl
index 642b7b6..4dc106e 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-available.exp.tcl
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-available.exp.tcl
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-0.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-0.exp
index ca5df0a..c74c215 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-0.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-0.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-1.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-1.exp
index 0a3e680..d6b927e 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-1.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-1.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-2.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-2.exp
index 5c8a5ae..5f35bd5 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-2.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-2.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-3.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-3.exp
index c8fc511..114ce2a 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-3.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-3.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-4.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-4.exp
index b527252..28fa6b0 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-4.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-4.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe.c b/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe.c
index 4c991e6..6376c87 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe.c
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe.exp.tcl b/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe.exp.tcl
index c1c5269..403da75 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe.exp.tcl
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe.exp.tcl
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-0.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-0.exp
index f209586..e4c9c8c 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-0.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-0.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-1.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-1.exp
index dc66e82..87ac5da 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-1.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-1.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-2.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-2.exp
index cbaa152..45aca2d 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-2.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-2.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-3.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-3.exp
index eaa72bc..21b1d82 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-3.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-3.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-4.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-4.exp
index 840c2f5..4308716 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-4.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-4.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-5.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-5.exp
index 082a8b0..71c9367 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-5.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-5.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-6.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-6.exp
index ab4d72e..34c716c 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-6.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-6.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-7.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-7.exp
index c3a24db..c851239 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-7.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-7.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-8.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-8.exp
index 8aee577..43d69cf 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-8.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-8.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-9.exp b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-9.exp
index 90efff3..2e2b1cb 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-9.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-9.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable.c b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable.c
index 4648193..316fc8a 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable.c
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable.exp.tcl b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable.exp.tcl
index 77ff66c..ba69b76 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable.exp.tcl
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable.exp.tcl
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-sanity.c b/gdb/testsuite/gdb.arch/aarch64-sme-sanity.c
index 0a316db..4b22635 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-sanity.c
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-sanity.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sme-sanity.exp b/gdb/testsuite/gdb.arch/aarch64-sme-sanity.exp
index 913d0be..c72e578 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sme-sanity.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sme-sanity.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sve-sigunwind.c b/gdb/testsuite/gdb.arch/aarch64-sve-sigunwind.c
new file mode 100644
index 0000000..c86beaf
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/aarch64-sve-sigunwind.c
@@ -0,0 +1,205 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+/* Exercise unwinding AArch64's SVE registers from a signal frame. */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <signal.h>
+#include <sys/prctl.h>
+#include <unistd.h>
+
+static int second_vl = 0;
+
+static void
+initialize_sve_state_main ()
+{
+ __asm __volatile ("dup z0.b, -1");
+ __asm __volatile ("dup z1.b, -1");
+ __asm __volatile ("dup z2.b, -1");
+ __asm __volatile ("dup z3.b, -1");
+ __asm __volatile ("dup z4.b, -1");
+ __asm __volatile ("dup z5.b, -1");
+ __asm __volatile ("dup z6.b, -1");
+ __asm __volatile ("dup z7.b, -1");
+ __asm __volatile ("dup z8.b, -1");
+ __asm __volatile ("dup z9.b, -1");
+ __asm __volatile ("dup z10.b, -1");
+ __asm __volatile ("dup z11.b, -1");
+ __asm __volatile ("dup z12.b, -1");
+ __asm __volatile ("dup z13.b, -1");
+ __asm __volatile ("dup z14.b, -1");
+ __asm __volatile ("dup z15.b, -1");
+ __asm __volatile ("dup z16.b, -1");
+ __asm __volatile ("dup z17.b, -1");
+ __asm __volatile ("dup z18.b, -1");
+ __asm __volatile ("dup z19.b, -1");
+ __asm __volatile ("dup z20.b, -1");
+ __asm __volatile ("dup z21.b, -1");
+ __asm __volatile ("dup z22.b, -1");
+ __asm __volatile ("dup z23.b, -1");
+ __asm __volatile ("dup z24.b, -1");
+ __asm __volatile ("dup z25.b, -1");
+ __asm __volatile ("dup z26.b, -1");
+ __asm __volatile ("dup z27.b, -1");
+ __asm __volatile ("dup z28.b, -1");
+ __asm __volatile ("dup z29.b, -1");
+ __asm __volatile ("dup z30.b, -1");
+ __asm __volatile ("dup z31.b, -1");
+ __asm __volatile ("ptrue p0.d");
+ __asm __volatile ("ptrue p1.d");
+ __asm __volatile ("ptrue p2.d");
+ __asm __volatile ("ptrue p3.d");
+ __asm __volatile ("ptrue p4.d");
+ __asm __volatile ("ptrue p5.d");
+ __asm __volatile ("ptrue p6.d");
+ __asm __volatile ("ptrue p7.d");
+ __asm __volatile ("ptrue p8.d");
+ __asm __volatile ("ptrue p9.d");
+ __asm __volatile ("ptrue p10.d");
+ __asm __volatile ("ptrue p11.d");
+ __asm __volatile ("ptrue p12.d");
+ __asm __volatile ("ptrue p13.d");
+ __asm __volatile ("ptrue p14.d");
+ __asm __volatile ("ptrue p15.d");
+ __asm __volatile ("setffr");
+}
+
+static void
+initialize_sve_state_sighandler ()
+{
+ __asm __volatile ("dup z0.b, -2");
+ __asm __volatile ("dup z1.b, -2");
+ __asm __volatile ("dup z2.b, -2");
+ __asm __volatile ("dup z3.b, -2");
+ __asm __volatile ("dup z4.b, -2");
+ __asm __volatile ("dup z5.b, -2");
+ __asm __volatile ("dup z6.b, -2");
+ __asm __volatile ("dup z7.b, -2");
+ __asm __volatile ("dup z8.b, -2");
+ __asm __volatile ("dup z9.b, -2");
+ __asm __volatile ("dup z10.b, -2");
+ __asm __volatile ("dup z11.b, -2");
+ __asm __volatile ("dup z12.b, -2");
+ __asm __volatile ("dup z13.b, -2");
+ __asm __volatile ("dup z14.b, -2");
+ __asm __volatile ("dup z15.b, -2");
+ __asm __volatile ("dup z16.b, -2");
+ __asm __volatile ("dup z17.b, -2");
+ __asm __volatile ("dup z18.b, -2");
+ __asm __volatile ("dup z19.b, -2");
+ __asm __volatile ("dup z20.b, -2");
+ __asm __volatile ("dup z21.b, -2");
+ __asm __volatile ("dup z22.b, -2");
+ __asm __volatile ("dup z23.b, -2");
+ __asm __volatile ("dup z24.b, -2");
+ __asm __volatile ("dup z25.b, -2");
+ __asm __volatile ("dup z26.b, -2");
+ __asm __volatile ("dup z27.b, -2");
+ __asm __volatile ("dup z28.b, -2");
+ __asm __volatile ("dup z29.b, -2");
+ __asm __volatile ("dup z30.b, -2");
+ __asm __volatile ("dup z31.b, -2");
+ __asm __volatile ("pfalse p0.b");
+ __asm __volatile ("pfalse p1.b");
+ __asm __volatile ("pfalse p2.b");
+ __asm __volatile ("pfalse p3.b");
+ __asm __volatile ("pfalse p4.b");
+ __asm __volatile ("pfalse p5.b");
+ __asm __volatile ("pfalse p6.b");
+ __asm __volatile ("pfalse p7.b");
+ __asm __volatile ("pfalse p8.b");
+ __asm __volatile ("pfalse p9.b");
+ __asm __volatile ("pfalse p10.b");
+ __asm __volatile ("pfalse p11.b");
+ __asm __volatile ("pfalse p12.b");
+ __asm __volatile ("pfalse p13.b");
+ __asm __volatile ("pfalse p14.b");
+ __asm __volatile ("pfalse p15.b");
+ __asm __volatile ("setffr");
+}
+
+/* Set new value for the SVE vector length.
+ Return the value that was set. */
+
+static int
+set_vl (int vl)
+{
+ int rc;
+
+ rc = prctl (PR_SVE_SET_VL, vl, 0, 0, 0);
+ if (rc < 0)
+ {
+ perror ("FAILED to PR_SVE_SET_VL");
+ exit (EXIT_FAILURE);
+ }
+
+ return rc & PR_SVE_VL_LEN_MASK;
+}
+
+static void
+sighandler (int sig, siginfo_t *info, void *ucontext)
+{
+ /* Set vector length to the second value. */
+ second_vl = set_vl (second_vl);
+ initialize_sve_state_sighandler ();
+ printf ("sighandler: second_vl = %d\n", second_vl); /* Break here. */
+}
+
+int
+main (int argc, char *argv[])
+{
+ if (argc != 3)
+ {
+ fprintf (stderr, "Usage: %s <first vl> <second vl>\n", argv[0]);
+ return 1;
+ }
+
+ int first_vl = atoi (argv[1]);
+ second_vl = atoi (argv[2]);
+
+ if (first_vl == 0 || second_vl == 0)
+ {
+ fprintf (stderr, "Invalid vector length.\n");
+ return 1;
+ }
+
+ /* Set vector length to the first value. */
+ first_vl = set_vl (first_vl);
+
+ printf ("main: first_vl = %d\n", first_vl);
+
+ unsigned char buf[256];
+
+ /* Use an SVE register to make the kernel start saving the SVE bank. */
+ asm volatile ("mov z0.b, #255\n\t"
+ "str z0, %0"
+ :
+ : "m" (buf)
+ : "z0", "memory");
+
+ initialize_sve_state_main ();
+
+ struct sigaction sigact;
+ sigact.sa_sigaction = sighandler;
+ sigact.sa_flags = SA_SIGINFO;
+ sigaction (SIGUSR1, &sigact, NULL);
+
+ kill (getpid (), SIGUSR1);
+
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.arch/aarch64-sve-sigunwind.exp b/gdb/testsuite/gdb.arch/aarch64-sve-sigunwind.exp
new file mode 100644
index 0000000..32340bb
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/aarch64-sve-sigunwind.exp
@@ -0,0 +1,106 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Exercise unwinding AArch64's SVE registers from a signal frame.
+
+require allow_aarch64_sve_tests
+# Remote targets can't communicate vector length changes to GDB via the RSP.
+require !gdb_protocol_is_remote
+
+set first_vl 0
+set second_vl 0
+
+# Find two valid VL values to use in the test.
+# The minimum supported VL is 16 bytes, maximum is 256 bytes, and VL can change
+# in increments of at least 16 bytes.
+for {set i 16} {$i <= 256} {incr i 16} {
+ if {![aarch64_supports_sve_vl $i]} {
+ continue
+ }
+
+ if {$first_vl == 0} {
+ set first_vl $i
+ } elseif {$second_vl == 0} {
+ set second_vl $i
+ break
+ }
+}
+
+if {$first_vl == 0 || $second_vl == 0} {
+ untested "test needs to support at least two vector lengths"
+ return
+}
+
+standard_testfile
+if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
+ [list debug additional_flags=-march=armv9-a]] } {
+ return
+}
+
+# We want SIGUSR1 to be delivered normally.
+gdb_test "handle SIGUSR1 nostop" \
+ [multi_line {Signal Stop Print Pass to program Description} \
+ {SIGUSR1 No Yes Yes User defined signal 1}] \
+ "don't stop for SIGUSR1"
+
+set linespec ${srcfile}:[gdb_get_line_number "Break here."]
+gdb_test_no_output "set args $first_vl $second_vl"
+
+if ![runto ${linespec}] {
+ return
+}
+
+set first_vg [expr $first_vl/8]
+set second_vg [expr $second_vl/8]
+
+gdb_test "print \$vg" ". = $second_vg" "vg was changed"
+
+for {set row 0} {$row < 32} {incr row} {
+ set register_name "\$z${row}\.b\.u"
+ gdb_test "print sizeof $register_name" " = $second_vl" \
+ "size of $register_name in the signal handler"
+ gdb_test "print $register_name" ". = \\{254 <repeats $second_vl times>\\}" \
+ "$register_name contents in signal handler"
+}
+
+for {set row 0} {$row < 16} {incr row} {
+ set register_name "\$p${row}"
+ gdb_test "print $register_name" ". = \\{(0, ){[expr $second_vl/8 - 1]}0\\}" \
+ "$register_name contents in signal handler"
+}
+gdb_test "print \$ffr" ". = \\{(255, ){[expr $second_vl/8 - 1]}255\\}" \
+ "ffr contents in signal handler"
+
+gdb_test "frame function main" \
+ [multi_line "#$decimal $hex in main \[^\r\n\]+" \
+ "$decimal\[ \t\]+kill \\(getpid \\(\\), SIGUSR1\\);"]
+
+gdb_test "print \$vg" ". = $first_vg" "vg was correctly unwound"
+
+for {set row 0} {$row < 32} {incr row} {
+ set register_name "\$z${row}\.b\.u"
+ gdb_test "print sizeof $register_name" " = $first_vl" \
+ "size of $register_name was correctly unwound"
+ gdb_test "print $register_name" ". = \\{255 <repeats $first_vl times>\\}" \
+ "$register_name contents were correctly unwound"
+}
+
+for {set row 0} {$row < 16} {incr row} {
+ set register_name "\$p${row}"
+ gdb_test "print $register_name" ". = \\{(1, ){[expr $first_vl/8 - 1]}1\\}" \
+ "$register_name contents were correctly unwound"
+}
+gdb_test "print \$ffr" ". = \\{(255, ){[expr $first_vl/8 - 1]}255\\}" \
+ "ffr contents were correctly unwound"
diff --git a/gdb/testsuite/gdb.arch/aarch64-sve.c b/gdb/testsuite/gdb.arch/aarch64-sve.c
index 268922a..c8c6640 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sve.c
+++ b/gdb/testsuite/gdb.arch/aarch64-sve.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-sve.exp b/gdb/testsuite/gdb.arch/aarch64-sve.exp
index 43b5e67..34bcff2 100644
--- a/gdb/testsuite/gdb.arch/aarch64-sve.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-sve.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.c b/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.c
index 41c2677..c693bd9 100644
--- a/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.c
+++ b/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.exp b/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.exp
index c0caabd..904f92f 100644
--- a/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-tagged-pointer.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-unwind-pc.S b/gdb/testsuite/gdb.arch/aarch64-unwind-pc.S
index 059f243..722e4c1 100644
--- a/gdb/testsuite/gdb.arch/aarch64-unwind-pc.S
+++ b/gdb/testsuite/gdb.arch/aarch64-unwind-pc.S
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/aarch64-unwind-pc.exp b/gdb/testsuite/gdb.arch/aarch64-unwind-pc.exp
index d0f78dd..1bcd1b2 100644
--- a/gdb/testsuite/gdb.arch/aarch64-unwind-pc.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-unwind-pc.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-w-registers.c b/gdb/testsuite/gdb.arch/aarch64-w-registers.c
index 46e0ce8..731c6f7 100644
--- a/gdb/testsuite/gdb.arch/aarch64-w-registers.c
+++ b/gdb/testsuite/gdb.arch/aarch64-w-registers.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aarch64-w-registers.exp b/gdb/testsuite/gdb.arch/aarch64-w-registers.exp
index f8f4538..409beec 100644
--- a/gdb/testsuite/gdb.arch/aarch64-w-registers.exp
+++ b/gdb/testsuite/gdb.arch/aarch64-w-registers.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aix-sighandle.c b/gdb/testsuite/gdb.arch/aix-sighandle.c
index 2acaef9..4b6dca6 100644
--- a/gdb/testsuite/gdb.arch/aix-sighandle.c
+++ b/gdb/testsuite/gdb.arch/aix-sighandle.c
@@ -1,4 +1,4 @@
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/aix-sighandle.exp b/gdb/testsuite/gdb.arch/aix-sighandle.exp
index 9a33275..e8a2a29 100644
--- a/gdb/testsuite/gdb.arch/aix-sighandle.exp
+++ b/gdb/testsuite/gdb.arch/aix-sighandle.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/alpha-step.c b/gdb/testsuite/gdb.arch/alpha-step.c
index 9afdebe..363d4fc 100644
--- a/gdb/testsuite/gdb.arch/alpha-step.c
+++ b/gdb/testsuite/gdb.arch/alpha-step.c
@@ -1,4 +1,4 @@
-/* Copyright 2005-2024 Free Software Foundation, Inc.
+/* Copyright 2005-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/alpha-step.exp b/gdb/testsuite/gdb.arch/alpha-step.exp
index 3a6e554..e41bd97 100644
--- a/gdb/testsuite/gdb.arch/alpha-step.exp
+++ b/gdb/testsuite/gdb.arch/alpha-step.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/altivec-abi.exp b/gdb/testsuite/gdb.arch/altivec-abi.exp
index 836e16e..12f523b 100644
--- a/gdb/testsuite/gdb.arch/altivec-abi.exp
+++ b/gdb/testsuite/gdb.arch/altivec-abi.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2024 Free Software Foundation, Inc.
+# Copyright (C) 2002-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/altivec-regs.exp b/gdb/testsuite/gdb.arch/altivec-regs.exp
index 2721f59..d297f4b 100644
--- a/gdb/testsuite/gdb.arch/altivec-regs.exp
+++ b/gdb/testsuite/gdb.arch/altivec-regs.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2024 Free Software Foundation, Inc.
+# Copyright (C) 2002-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-break-on-asm-line.S b/gdb/testsuite/gdb.arch/amd64-break-on-asm-line.S
index 3bac139..5ec2d17 100644
--- a/gdb/testsuite/gdb.arch/amd64-break-on-asm-line.S
+++ b/gdb/testsuite/gdb.arch/amd64-break-on-asm-line.S
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-break-on-asm-line.exp b/gdb/testsuite/gdb.arch/amd64-break-on-asm-line.exp
index f8f7ab3..7f0a8b8 100644
--- a/gdb/testsuite/gdb.arch/amd64-break-on-asm-line.exp
+++ b/gdb/testsuite/gdb.arch/amd64-break-on-asm-line.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-byte.exp b/gdb/testsuite/gdb.arch/amd64-byte.exp
index 1349f99..ac70672 100644
--- a/gdb/testsuite/gdb.arch/amd64-byte.exp
+++ b/gdb/testsuite/gdb.arch/amd64-byte.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-disp-step-avx.S b/gdb/testsuite/gdb.arch/amd64-disp-step-avx.S
index 9b6b2b1..0ba0816 100644
--- a/gdb/testsuite/gdb.arch/amd64-disp-step-avx.S
+++ b/gdb/testsuite/gdb.arch/amd64-disp-step-avx.S
@@ -1,4 +1,4 @@
-/* Copyright 2009-2024 Free Software Foundation, Inc.
+/* Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-disp-step-avx.exp b/gdb/testsuite/gdb.arch/amd64-disp-step-avx.exp
index 4ae6461..08d73d8 100644
--- a/gdb/testsuite/gdb.arch/amd64-disp-step-avx.exp
+++ b/gdb/testsuite/gdb.arch/amd64-disp-step-avx.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-disp-step-self-call-alarm.c b/gdb/testsuite/gdb.arch/amd64-disp-step-self-call-alarm.c
index fbbfad1..03b868c 100644
--- a/gdb/testsuite/gdb.arch/amd64-disp-step-self-call-alarm.c
+++ b/gdb/testsuite/gdb.arch/amd64-disp-step-self-call-alarm.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-disp-step-self-call.S b/gdb/testsuite/gdb.arch/amd64-disp-step-self-call.S
index f585b3b..78a6859 100644
--- a/gdb/testsuite/gdb.arch/amd64-disp-step-self-call.S
+++ b/gdb/testsuite/gdb.arch/amd64-disp-step-self-call.S
@@ -1,4 +1,4 @@
-/* Copyright 2009-2024 Free Software Foundation, Inc.
+/* Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-disp-step-self-call.exp b/gdb/testsuite/gdb.arch/amd64-disp-step-self-call.exp
index 2db3ff2..61ce4be 100644
--- a/gdb/testsuite/gdb.arch/amd64-disp-step-self-call.exp
+++ b/gdb/testsuite/gdb.arch/amd64-disp-step-self-call.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-disp-step-signal.c b/gdb/testsuite/gdb.arch/amd64-disp-step-signal.c
index 66d529c..8b55289 100644
--- a/gdb/testsuite/gdb.arch/amd64-disp-step-signal.c
+++ b/gdb/testsuite/gdb.arch/amd64-disp-step-signal.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-disp-step.S b/gdb/testsuite/gdb.arch/amd64-disp-step.S
index ed805da..6037164 100644
--- a/gdb/testsuite/gdb.arch/amd64-disp-step.S
+++ b/gdb/testsuite/gdb.arch/amd64-disp-step.S
@@ -1,4 +1,4 @@
-/* Copyright 2009-2024 Free Software Foundation, Inc.
+/* Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-disp-step.exp b/gdb/testsuite/gdb.arch/amd64-disp-step.exp
index 1ec41d6..aee1d7a 100644
--- a/gdb/testsuite/gdb.arch/amd64-disp-step.exp
+++ b/gdb/testsuite/gdb.arch/amd64-disp-step.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-dword.exp b/gdb/testsuite/gdb.arch/amd64-dword.exp
index eacdee2..e8a527d 100644
--- a/gdb/testsuite/gdb.arch/amd64-dword.exp
+++ b/gdb/testsuite/gdb.arch/amd64-dword.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-inline.S b/gdb/testsuite/gdb.arch/amd64-entry-value-inline.S
index 38a3960..bb51874 100644
--- a/gdb/testsuite/gdb.arch/amd64-entry-value-inline.S
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-inline.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-inline.c b/gdb/testsuite/gdb.arch/amd64-entry-value-inline.c
index 133b1d8..b759d09 100644
--- a/gdb/testsuite/gdb.arch/amd64-entry-value-inline.c
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-inline.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-inline.exp b/gdb/testsuite/gdb.arch/amd64-entry-value-inline.exp
index b9f97ca..14946d7 100644
--- a/gdb/testsuite/gdb.arch/amd64-entry-value-inline.exp
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-inline.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.S b/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.S
index 04dcf02..2a6aee2 100644
--- a/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.S
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.c b/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.c
index 6b470aa..aa43849 100644
--- a/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.c
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.exp b/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.exp
index 5078d0c..d31c057 100644
--- a/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.exp
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-param-dwarf5.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-param.S b/gdb/testsuite/gdb.arch/amd64-entry-value-param.S
index 9bf28ca..a94c8ab 100644
--- a/gdb/testsuite/gdb.arch/amd64-entry-value-param.S
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-param.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-param.c b/gdb/testsuite/gdb.arch/amd64-entry-value-param.c
index 6b470aa..aa43849 100644
--- a/gdb/testsuite/gdb.arch/amd64-entry-value-param.c
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-param.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-param.exp b/gdb/testsuite/gdb.arch/amd64-entry-value-param.exp
index e3a85d4..0c7cd21 100644
--- a/gdb/testsuite/gdb.arch/amd64-entry-value-param.exp
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-param.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.S b/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.S
index 2d151bb..a4d98ab 100644
--- a/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.S
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.cc b/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.cc
index 8916039..99e088b 100644
--- a/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.cc
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.exp b/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.exp
index 7bd1b4e..e508a04 100644
--- a/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.exp
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value-paramref.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value.cc b/gdb/testsuite/gdb.arch/amd64-entry-value.cc
index 3649895..90b17b2 100644
--- a/gdb/testsuite/gdb.arch/amd64-entry-value.cc
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value.exp b/gdb/testsuite/gdb.arch/amd64-entry-value.exp
index 3d119d0..2bc676c 100644
--- a/gdb/testsuite/gdb.arch/amd64-entry-value.exp
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-entry-value.s b/gdb/testsuite/gdb.arch/amd64-entry-value.s
index a3143f5..d9e6a7e 100644
--- a/gdb/testsuite/gdb.arch/amd64-entry-value.s
+++ b/gdb/testsuite/gdb.arch/amd64-entry-value.s
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-eval.cc b/gdb/testsuite/gdb.arch/amd64-eval.cc
index b93c6fe..9b908c6 100644
--- a/gdb/testsuite/gdb.arch/amd64-eval.cc
+++ b/gdb/testsuite/gdb.arch/amd64-eval.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-eval.exp b/gdb/testsuite/gdb.arch/amd64-eval.exp
index 805dc73..3d798ee 100644
--- a/gdb/testsuite/gdb.arch/amd64-eval.exp
+++ b/gdb/testsuite/gdb.arch/amd64-eval.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-gs_base.c b/gdb/testsuite/gdb.arch/amd64-gs_base.c
index a577cff..41669f8 100644
--- a/gdb/testsuite/gdb.arch/amd64-gs_base.c
+++ b/gdb/testsuite/gdb.arch/amd64-gs_base.c
@@ -1,6 +1,6 @@
/* Test program for fs_base and gs_base.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/amd64-gs_base.exp b/gdb/testsuite/gdb.arch/amd64-gs_base.exp
index 6e95f78..90cbe02 100644
--- a/gdb/testsuite/gdb.arch/amd64-gs_base.exp
+++ b/gdb/testsuite/gdb.arch/amd64-gs_base.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-i386-address.S b/gdb/testsuite/gdb.arch/amd64-i386-address.S
index cd5a68c..32f7eb5 100644
--- a/gdb/testsuite/gdb.arch/amd64-i386-address.S
+++ b/gdb/testsuite/gdb.arch/amd64-i386-address.S
@@ -1,4 +1,4 @@
-/* Copyright 2009-2024 Free Software Foundation, Inc.
+/* Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-i386-address.exp b/gdb/testsuite/gdb.arch/amd64-i386-address.exp
index 2a37220..55a25db 100644
--- a/gdb/testsuite/gdb.arch/amd64-i386-address.exp
+++ b/gdb/testsuite/gdb.arch/amd64-i386-address.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-init-x87-values.S b/gdb/testsuite/gdb.arch/amd64-init-x87-values.S
index 0133b20..fe3eccc 100644
--- a/gdb/testsuite/gdb.arch/amd64-init-x87-values.S
+++ b/gdb/testsuite/gdb.arch/amd64-init-x87-values.S
@@ -1,4 +1,4 @@
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-init-x87-values.exp b/gdb/testsuite/gdb.arch/amd64-init-x87-values.exp
index f6e1204..11004fa 100644
--- a/gdb/testsuite/gdb.arch/amd64-init-x87-values.exp
+++ b/gdb/testsuite/gdb.arch/amd64-init-x87-values.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.S b/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.S
index bf9f67c..81b6b9c 100644
--- a/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.S
+++ b/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.c b/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.c
index 1e0e957..8123e70 100644
--- a/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.c
+++ b/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.exp b/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.exp
index d78c051..03ecba6 100644
--- a/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.exp
+++ b/gdb/testsuite/gdb.arch/amd64-invalid-stack-middle.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-invalid-stack-top.c b/gdb/testsuite/gdb.arch/amd64-invalid-stack-top.c
index 445673c..39b1a61 100644
--- a/gdb/testsuite/gdb.arch/amd64-invalid-stack-top.c
+++ b/gdb/testsuite/gdb.arch/amd64-invalid-stack-top.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-invalid-stack-top.exp b/gdb/testsuite/gdb.arch/amd64-invalid-stack-top.exp
index b58a75f..134dfda 100644
--- a/gdb/testsuite/gdb.arch/amd64-invalid-stack-top.exp
+++ b/gdb/testsuite/gdb.arch/amd64-invalid-stack-top.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-lam.c b/gdb/testsuite/gdb.arch/amd64-lam.c
index 0fe2bc6..f3fb30f 100755
--- a/gdb/testsuite/gdb.arch/amd64-lam.c
+++ b/gdb/testsuite/gdb.arch/amd64-lam.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-lam.exp b/gdb/testsuite/gdb.arch/amd64-lam.exp
index 0bcbb63..241a301 100644
--- a/gdb/testsuite/gdb.arch/amd64-lam.exp
+++ b/gdb/testsuite/gdb.arch/amd64-lam.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-optimout-repeat.S b/gdb/testsuite/gdb.arch/amd64-optimout-repeat.S
index aa867dd..30e7ec8 100644
--- a/gdb/testsuite/gdb.arch/amd64-optimout-repeat.S
+++ b/gdb/testsuite/gdb.arch/amd64-optimout-repeat.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-optimout-repeat.c b/gdb/testsuite/gdb.arch/amd64-optimout-repeat.c
index ea3f5fa..8a494a7 100644
--- a/gdb/testsuite/gdb.arch/amd64-optimout-repeat.c
+++ b/gdb/testsuite/gdb.arch/amd64-optimout-repeat.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-optimout-repeat.exp b/gdb/testsuite/gdb.arch/amd64-optimout-repeat.exp
index 3ff40ad..1b85e4e 100644
--- a/gdb/testsuite/gdb.arch/amd64-optimout-repeat.exp
+++ b/gdb/testsuite/gdb.arch/amd64-optimout-repeat.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-osabi.exp b/gdb/testsuite/gdb.arch/amd64-osabi.exp
index 2c1eb07..4fffdd9 100644
--- a/gdb/testsuite/gdb.arch/amd64-osabi.exp
+++ b/gdb/testsuite/gdb.arch/amd64-osabi.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-prologue-skip.S b/gdb/testsuite/gdb.arch/amd64-prologue-skip.S
index 6485503..fff8294 100644
--- a/gdb/testsuite/gdb.arch/amd64-prologue-skip.S
+++ b/gdb/testsuite/gdb.arch/amd64-prologue-skip.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-prologue-skip.exp b/gdb/testsuite/gdb.arch/amd64-prologue-skip.exp
index 4a21e04..04f3266 100644
--- a/gdb/testsuite/gdb.arch/amd64-prologue-skip.exp
+++ b/gdb/testsuite/gdb.arch/amd64-prologue-skip.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-prologue-xmm.c b/gdb/testsuite/gdb.arch/amd64-prologue-xmm.c
index 9c3974e..a6e7062 100644
--- a/gdb/testsuite/gdb.arch/amd64-prologue-xmm.c
+++ b/gdb/testsuite/gdb.arch/amd64-prologue-xmm.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-prologue-xmm.exp b/gdb/testsuite/gdb.arch/amd64-prologue-xmm.exp
index fcf9fbe..7c16238 100644
--- a/gdb/testsuite/gdb.arch/amd64-prologue-xmm.exp
+++ b/gdb/testsuite/gdb.arch/amd64-prologue-xmm.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-prologue-xmm.s b/gdb/testsuite/gdb.arch/amd64-prologue-xmm.s
index 1a2e337..bbbdb7a 100644
--- a/gdb/testsuite/gdb.arch/amd64-prologue-xmm.s
+++ b/gdb/testsuite/gdb.arch/amd64-prologue-xmm.s
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-pseudo-unwind-asm.S b/gdb/testsuite/gdb.arch/amd64-pseudo-unwind-asm.S
index 6aa1c94..5284ce0 100644
--- a/gdb/testsuite/gdb.arch/amd64-pseudo-unwind-asm.S
+++ b/gdb/testsuite/gdb.arch/amd64-pseudo-unwind-asm.S
@@ -1,4 +1,4 @@
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/amd64-pseudo-unwind.c b/gdb/testsuite/gdb.arch/amd64-pseudo-unwind.c
index 49b0553..1646a34 100644
--- a/gdb/testsuite/gdb.arch/amd64-pseudo-unwind.c
+++ b/gdb/testsuite/gdb.arch/amd64-pseudo-unwind.c
@@ -1,4 +1,4 @@
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/amd64-pseudo-unwind.exp b/gdb/testsuite/gdb.arch/amd64-pseudo-unwind.exp
index fa82bef..6333311 100644
--- a/gdb/testsuite/gdb.arch/amd64-pseudo-unwind.exp
+++ b/gdb/testsuite/gdb.arch/amd64-pseudo-unwind.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-pseudo.c b/gdb/testsuite/gdb.arch/amd64-pseudo.c
index cbf91b1..982d436 100644
--- a/gdb/testsuite/gdb.arch/amd64-pseudo.c
+++ b/gdb/testsuite/gdb.arch/amd64-pseudo.c
@@ -1,6 +1,6 @@
/* Test program for byte registers.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/amd64-stap-expressions.S b/gdb/testsuite/gdb.arch/amd64-stap-expressions.S
index 23bb4fe..5404841 100644
--- a/gdb/testsuite/gdb.arch/amd64-stap-expressions.S
+++ b/gdb/testsuite/gdb.arch/amd64-stap-expressions.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/amd64-stap-expressions.exp b/gdb/testsuite/gdb.arch/amd64-stap-expressions.exp
index e2af6cd..f14c938 100644
--- a/gdb/testsuite/gdb.arch/amd64-stap-expressions.exp
+++ b/gdb/testsuite/gdb.arch/amd64-stap-expressions.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.S b/gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.S
index c338c85..4a867cd 100644
--- a/gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.S
+++ b/gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.exp b/gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.exp
index 2ab06c3..135790a 100644
--- a/gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.exp
+++ b/gdb/testsuite/gdb.arch/amd64-stap-optional-prefix.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-stap-special-operands.exp b/gdb/testsuite/gdb.arch/amd64-stap-special-operands.exp
index d51af23..48d7b65 100644
--- a/gdb/testsuite/gdb.arch/amd64-stap-special-operands.exp
+++ b/gdb/testsuite/gdb.arch/amd64-stap-special-operands.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-stap-three-arg-disp.c b/gdb/testsuite/gdb.arch/amd64-stap-three-arg-disp.c
index 38cbc3f..3912370 100644
--- a/gdb/testsuite/gdb.arch/amd64-stap-three-arg-disp.c
+++ b/gdb/testsuite/gdb.arch/amd64-stap-three-arg-disp.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/amd64-stap-triplet.S b/gdb/testsuite/gdb.arch/amd64-stap-triplet.S
index e5532b2..5fd18af 100644
--- a/gdb/testsuite/gdb.arch/amd64-stap-triplet.S
+++ b/gdb/testsuite/gdb.arch/amd64-stap-triplet.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/amd64-stap-triplet.c b/gdb/testsuite/gdb.arch/amd64-stap-triplet.c
index a96a2cb..d9898e2 100644
--- a/gdb/testsuite/gdb.arch/amd64-stap-triplet.c
+++ b/gdb/testsuite/gdb.arch/amd64-stap-triplet.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.S b/gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.S
index d1a3697..952a685 100644
--- a/gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.S
+++ b/gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.exp b/gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.exp
index 469b31b..43816f5 100644
--- a/gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.exp
+++ b/gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-tailcall-cxx.exp b/gdb/testsuite/gdb.arch/amd64-tailcall-cxx.exp
index 24d9945..7e1df43 100644
--- a/gdb/testsuite/gdb.arch/amd64-tailcall-cxx.exp
+++ b/gdb/testsuite/gdb.arch/amd64-tailcall-cxx.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.S b/gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.S
index f4fec68..5efa0f3 100644
--- a/gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.S
+++ b/gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.cc b/gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.cc
index 869215d..17d5a68 100644
--- a/gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.cc
+++ b/gdb/testsuite/gdb.arch/amd64-tailcall-cxx1.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.S b/gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.S
index ac1aaed..9cd5305 100644
--- a/gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.S
+++ b/gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.cc b/gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.cc
index 5bfd519..969056f 100644
--- a/gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.cc
+++ b/gdb/testsuite/gdb.arch/amd64-tailcall-cxx2.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-tailcall-noret.S b/gdb/testsuite/gdb.arch/amd64-tailcall-noret.S
index 373f16e..7e87c1a9 100644
--- a/gdb/testsuite/gdb.arch/amd64-tailcall-noret.S
+++ b/gdb/testsuite/gdb.arch/amd64-tailcall-noret.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-tailcall-noret.c b/gdb/testsuite/gdb.arch/amd64-tailcall-noret.c
index 585cfb2..59c8721 100644
--- a/gdb/testsuite/gdb.arch/amd64-tailcall-noret.c
+++ b/gdb/testsuite/gdb.arch/amd64-tailcall-noret.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-tailcall-noret.exp b/gdb/testsuite/gdb.arch/amd64-tailcall-noret.exp
index 33461e5..fe65c4d 100644
--- a/gdb/testsuite/gdb.arch/amd64-tailcall-noret.exp
+++ b/gdb/testsuite/gdb.arch/amd64-tailcall-noret.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-tailcall-ret.S b/gdb/testsuite/gdb.arch/amd64-tailcall-ret.S
index 3f2449d..97624f6 100644
--- a/gdb/testsuite/gdb.arch/amd64-tailcall-ret.S
+++ b/gdb/testsuite/gdb.arch/amd64-tailcall-ret.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-tailcall-ret.c b/gdb/testsuite/gdb.arch/amd64-tailcall-ret.c
index d50894d..24a2cf1 100644
--- a/gdb/testsuite/gdb.arch/amd64-tailcall-ret.c
+++ b/gdb/testsuite/gdb.arch/amd64-tailcall-ret.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-tailcall-ret.exp b/gdb/testsuite/gdb.arch/amd64-tailcall-ret.exp
index f666e6a..51baf7b 100644
--- a/gdb/testsuite/gdb.arch/amd64-tailcall-ret.exp
+++ b/gdb/testsuite/gdb.arch/amd64-tailcall-ret.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-tailcall-self.S b/gdb/testsuite/gdb.arch/amd64-tailcall-self.S
index 26afb76..24f4e64 100644
--- a/gdb/testsuite/gdb.arch/amd64-tailcall-self.S
+++ b/gdb/testsuite/gdb.arch/amd64-tailcall-self.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-tailcall-self.c b/gdb/testsuite/gdb.arch/amd64-tailcall-self.c
index f184389..4bb692f 100644
--- a/gdb/testsuite/gdb.arch/amd64-tailcall-self.c
+++ b/gdb/testsuite/gdb.arch/amd64-tailcall-self.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-tailcall-self.exp b/gdb/testsuite/gdb.arch/amd64-tailcall-self.exp
index 18f37ab..de3c606 100644
--- a/gdb/testsuite/gdb.arch/amd64-tailcall-self.exp
+++ b/gdb/testsuite/gdb.arch/amd64-tailcall-self.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-watchpoint-downgrade.c b/gdb/testsuite/gdb.arch/amd64-watchpoint-downgrade.c
index 1140117..3707669 100644
--- a/gdb/testsuite/gdb.arch/amd64-watchpoint-downgrade.c
+++ b/gdb/testsuite/gdb.arch/amd64-watchpoint-downgrade.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/amd64-watchpoint-downgrade.exp b/gdb/testsuite/gdb.arch/amd64-watchpoint-downgrade.exp
index a8ebadb..5663b0d 100644
--- a/gdb/testsuite/gdb.arch/amd64-watchpoint-downgrade.exp
+++ b/gdb/testsuite/gdb.arch/amd64-watchpoint-downgrade.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -58,7 +58,7 @@ gdb_test "starti" \
[multi_line \
"warning: watchpoint $num downgraded to software watchpoint" \
"" \
- "Program stopped\\." \
+ "(Program|Thread \[^\r\n\]) stopped\\." \
".*"]
# Watchpoint should now have downgraded to a s/w watchpoint.
diff --git a/gdb/testsuite/gdb.arch/amd64-word.exp b/gdb/testsuite/gdb.arch/amd64-word.exp
index 3b47147..d5dfb02 100644
--- a/gdb/testsuite/gdb.arch/amd64-word.exp
+++ b/gdb/testsuite/gdb.arch/amd64-word.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arc-analyze-prologue.S b/gdb/testsuite/gdb.arch/arc-analyze-prologue.S
index 969950f..21faf09 100644
--- a/gdb/testsuite/gdb.arch/arc-analyze-prologue.S
+++ b/gdb/testsuite/gdb.arch/arc-analyze-prologue.S
@@ -1,6 +1,6 @@
; This testcase is part of GDB, the GNU debugger.
-; Copyright 2017-2024 Free Software Foundation, Inc.
+; Copyright 2017-2025 Free Software Foundation, Inc.
; This program is free software; you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arc-analyze-prologue.exp b/gdb/testsuite/gdb.arch/arc-analyze-prologue.exp
index b8d9a8f..1b084f9 100644
--- a/gdb/testsuite/gdb.arch/arc-analyze-prologue.exp
+++ b/gdb/testsuite/gdb.arch/arc-analyze-prologue.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arc-dbnz.S b/gdb/testsuite/gdb.arch/arc-dbnz.S
index 45e1dfe..142c52f 100644
--- a/gdb/testsuite/gdb.arch/arc-dbnz.S
+++ b/gdb/testsuite/gdb.arch/arc-dbnz.S
@@ -1,6 +1,6 @@
; This testcase is part of GDB, the GNU debugger.
-; Copyright 2024 Free Software Foundation, Inc.
+; Copyright 2024-2025 Free Software Foundation, Inc.
; This program is free software; you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arc-dbnz.exp b/gdb/testsuite/gdb.arch/arc-dbnz.exp
index f1fce0e..0563210 100644
--- a/gdb/testsuite/gdb.arch/arc-dbnz.exp
+++ b/gdb/testsuite/gdb.arch/arc-dbnz.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arc-decode-insn.S b/gdb/testsuite/gdb.arch/arc-decode-insn.S
index 6b37d54..512f37a 100644
--- a/gdb/testsuite/gdb.arch/arc-decode-insn.S
+++ b/gdb/testsuite/gdb.arch/arc-decode-insn.S
@@ -1,6 +1,6 @@
; This testcase is part of GDB, the GNU debugger.
-; Copyright 2017-2024 Free Software Foundation, Inc.
+; Copyright 2017-2025 Free Software Foundation, Inc.
; This program is free software; you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arc-decode-insn.exp b/gdb/testsuite/gdb.arch/arc-decode-insn.exp
index a0ae43f..5e7f3c2 100644
--- a/gdb/testsuite/gdb.arch/arc-decode-insn.exp
+++ b/gdb/testsuite/gdb.arch/arc-decode-insn.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arc-disassembler-options.exp b/gdb/testsuite/gdb.arch/arc-disassembler-options.exp
index 3a4c523..5b3527c 100644
--- a/gdb/testsuite/gdb.arch/arc-disassembler-options.exp
+++ b/gdb/testsuite/gdb.arch/arc-disassembler-options.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arc-disassembler-options.s b/gdb/testsuite/gdb.arch/arc-disassembler-options.s
index 46f93e4..11ce0bd 100644
--- a/gdb/testsuite/gdb.arch/arc-disassembler-options.s
+++ b/gdb/testsuite/gdb.arch/arc-disassembler-options.s
@@ -1,6 +1,6 @@
# This test is part of GDB, the GNU debugger.
#
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arc-tdesc-cpu.exp b/gdb/testsuite/gdb.arch/arc-tdesc-cpu.exp
index 5ff5138..35b74c8 100644
--- a/gdb/testsuite/gdb.arch/arc-tdesc-cpu.exp
+++ b/gdb/testsuite/gdb.arch/arc-tdesc-cpu.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arc-tdesc-cpu.xml b/gdb/testsuite/gdb.arch/arc-tdesc-cpu.xml
index 5f99873..d28ca05 100644
--- a/gdb/testsuite/gdb.arch/arc-tdesc-cpu.xml
+++ b/gdb/testsuite/gdb.arch/arc-tdesc-cpu.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2017-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/testsuite/gdb.arch/arm-bl-branch-dest.c b/gdb/testsuite/gdb.arch/arm-bl-branch-dest.c
index 4927a75..d56c194 100644
--- a/gdb/testsuite/gdb.arch/arm-bl-branch-dest.c
+++ b/gdb/testsuite/gdb.arch/arm-bl-branch-dest.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arm-bl-branch-dest.exp b/gdb/testsuite/gdb.arch/arm-bl-branch-dest.exp
index f7621bb..051322d 100644
--- a/gdb/testsuite/gdb.arch/arm-bl-branch-dest.exp
+++ b/gdb/testsuite/gdb.arch/arm-bl-branch-dest.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arm-cmse-sgstubs.c b/gdb/testsuite/gdb.arch/arm-cmse-sgstubs.c
index d26721c..45dc78c 100644
--- a/gdb/testsuite/gdb.arch/arm-cmse-sgstubs.c
+++ b/gdb/testsuite/gdb.arch/arm-cmse-sgstubs.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arm-cmse-sgstubs.exp b/gdb/testsuite/gdb.arch/arm-cmse-sgstubs.exp
index e73fcc5..f3aca94 100644
--- a/gdb/testsuite/gdb.arch/arm-cmse-sgstubs.exp
+++ b/gdb/testsuite/gdb.arch/arm-cmse-sgstubs.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arm-disassembler-options.exp b/gdb/testsuite/gdb.arch/arm-disassembler-options.exp
index d605bcb..d20b2a8 100644
--- a/gdb/testsuite/gdb.arch/arm-disassembler-options.exp
+++ b/gdb/testsuite/gdb.arch/arm-disassembler-options.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arm-disp-step.S b/gdb/testsuite/gdb.arch/arm-disp-step.S
index 1a145cc..bb21d3e 100644
--- a/gdb/testsuite/gdb.arch/arm-disp-step.S
+++ b/gdb/testsuite/gdb.arch/arm-disp-step.S
@@ -1,4 +1,4 @@
-/* Copyright 2010-2024 Free Software Foundation, Inc.
+/* Copyright 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/arm-disp-step.exp b/gdb/testsuite/gdb.arch/arm-disp-step.exp
index 4319deb..a6214ef 100644
--- a/gdb/testsuite/gdb.arch/arm-disp-step.exp
+++ b/gdb/testsuite/gdb.arch/arm-disp-step.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arm-neon.c b/gdb/testsuite/gdb.arch/arm-neon.c
index a8aa537..43f511a 100644
--- a/gdb/testsuite/gdb.arch/arm-neon.c
+++ b/gdb/testsuite/gdb.arch/arm-neon.c
@@ -1,4 +1,4 @@
-/* Copyright 2015-2024 Free Software Foundation, Inc.
+/* Copyright 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/arm-neon.exp b/gdb/testsuite/gdb.arch/arm-neon.exp
index cc95877..b38a685 100644
--- a/gdb/testsuite/gdb.arch/arm-neon.exp
+++ b/gdb/testsuite/gdb.arch/arm-neon.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arm-pseudo-unwind-asm.S b/gdb/testsuite/gdb.arch/arm-pseudo-unwind-asm.S
index 46cde89..92a4813 100644
--- a/gdb/testsuite/gdb.arch/arm-pseudo-unwind-asm.S
+++ b/gdb/testsuite/gdb.arch/arm-pseudo-unwind-asm.S
@@ -1,4 +1,4 @@
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy-asm.S b/gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy-asm.S
index f6b9b4e..ec08069 100644
--- a/gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy-asm.S
+++ b/gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy-asm.S
@@ -1,4 +1,4 @@
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy.c b/gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy.c
index adda4b8..e167a6e 100644
--- a/gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy.c
+++ b/gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy.c
@@ -1,4 +1,4 @@
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy.exp b/gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy.exp
index bfedff2..892cfba 100644
--- a/gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy.exp
+++ b/gdb/testsuite/gdb.arch/arm-pseudo-unwind-legacy.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arm-pseudo-unwind.c b/gdb/testsuite/gdb.arch/arm-pseudo-unwind.c
index adda4b8..e167a6e 100644
--- a/gdb/testsuite/gdb.arch/arm-pseudo-unwind.c
+++ b/gdb/testsuite/gdb.arch/arm-pseudo-unwind.c
@@ -1,4 +1,4 @@
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/arm-pseudo-unwind.exp b/gdb/testsuite/gdb.arch/arm-pseudo-unwind.exp
index 004c606..c474a99 100644
--- a/gdb/testsuite/gdb.arch/arm-pseudo-unwind.exp
+++ b/gdb/testsuite/gdb.arch/arm-pseudo-unwind.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arm-pthread_cond_timedwait-bt.c b/gdb/testsuite/gdb.arch/arm-pthread_cond_timedwait-bt.c
index 318c785..14c71e0 100644
--- a/gdb/testsuite/gdb.arch/arm-pthread_cond_timedwait-bt.c
+++ b/gdb/testsuite/gdb.arch/arm-pthread_cond_timedwait-bt.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arm-pthread_cond_timedwait-bt.exp b/gdb/testsuite/gdb.arch/arm-pthread_cond_timedwait-bt.exp
index de061da..15c4050 100644
--- a/gdb/testsuite/gdb.arch/arm-pthread_cond_timedwait-bt.exp
+++ b/gdb/testsuite/gdb.arch/arm-pthread_cond_timedwait-bt.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.c b/gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.c
index 9b5e137..4847d42 100644
--- a/gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.c
+++ b/gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.exp b/gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.exp
index 788bc86..e5246eb 100644
--- a/gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.exp
+++ b/gdb/testsuite/gdb.arch/arm-single-step-kernel-helper.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/avr-flash-qualifier.c b/gdb/testsuite/gdb.arch/avr-flash-qualifier.c
index d1ce4ab..d65db61 100644
--- a/gdb/testsuite/gdb.arch/avr-flash-qualifier.c
+++ b/gdb/testsuite/gdb.arch/avr-flash-qualifier.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/avr-flash-qualifier.exp b/gdb/testsuite/gdb.arch/avr-flash-qualifier.exp
index e392df3..cafae60 100644
--- a/gdb/testsuite/gdb.arch/avr-flash-qualifier.exp
+++ b/gdb/testsuite/gdb.arch/avr-flash-qualifier.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/core-file-pid0.exp b/gdb/testsuite/gdb.arch/core-file-pid0.exp
index b95f1e3..a172555 100644
--- a/gdb/testsuite/gdb.arch/core-file-pid0.exp
+++ b/gdb/testsuite/gdb.arch/core-file-pid0.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/disp-step-insn-reloc.exp b/gdb/testsuite/gdb.arch/disp-step-insn-reloc.exp
index 70cf81d..a7cd5f3 100644
--- a/gdb/testsuite/gdb.arch/disp-step-insn-reloc.exp
+++ b/gdb/testsuite/gdb.arch/disp-step-insn-reloc.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.arch/e500-abi.exp b/gdb/testsuite/gdb.arch/e500-abi.exp
index b2abb59..388838a 100644
--- a/gdb/testsuite/gdb.arch/e500-abi.exp
+++ b/gdb/testsuite/gdb.arch/e500-abi.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/e500-prologue.c b/gdb/testsuite/gdb.arch/e500-prologue.c
index c4b2767..b7712c4 100644
--- a/gdb/testsuite/gdb.arch/e500-prologue.c
+++ b/gdb/testsuite/gdb.arch/e500-prologue.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/e500-prologue.exp b/gdb/testsuite/gdb.arch/e500-prologue.exp
index 7732393..e8f3ebd 100644
--- a/gdb/testsuite/gdb.arch/e500-prologue.exp
+++ b/gdb/testsuite/gdb.arch/e500-prologue.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/e500-regs.exp b/gdb/testsuite/gdb.arch/e500-regs.exp
index a22ec31..543ce63 100644
--- a/gdb/testsuite/gdb.arch/e500-regs.exp
+++ b/gdb/testsuite/gdb.arch/e500-regs.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/ftrace-insn-reloc.exp b/gdb/testsuite/gdb.arch/ftrace-insn-reloc.exp
index 4ea86b4..80df6b9 100644
--- a/gdb/testsuite/gdb.arch/ftrace-insn-reloc.exp
+++ b/gdb/testsuite/gdb.arch/ftrace-insn-reloc.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.arch/gdb1291.exp b/gdb/testsuite/gdb.arch/gdb1291.exp
index 183c7c7..ad3b8f9 100644
--- a/gdb/testsuite/gdb.arch/gdb1291.exp
+++ b/gdb/testsuite/gdb.arch/gdb1291.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/gdb1291.s b/gdb/testsuite/gdb.arch/gdb1291.s
index a359191..f83db0f 100644
--- a/gdb/testsuite/gdb.arch/gdb1291.s
+++ b/gdb/testsuite/gdb.arch/gdb1291.s
@@ -1,4 +1,4 @@
-! Copyright 2004-2024 Free Software Foundation, Inc.
+! Copyright 2004-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/gdb1431.exp b/gdb/testsuite/gdb.arch/gdb1431.exp
index cbb34e8..34bc8d6 100644
--- a/gdb/testsuite/gdb.arch/gdb1431.exp
+++ b/gdb/testsuite/gdb.arch/gdb1431.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/gdb1431.s b/gdb/testsuite/gdb.arch/gdb1431.s
index 0628639..10482dc 100644
--- a/gdb/testsuite/gdb.arch/gdb1431.s
+++ b/gdb/testsuite/gdb.arch/gdb1431.s
@@ -1,4 +1,4 @@
-! Copyright 2004-2024 Free Software Foundation, Inc.
+! Copyright 2004-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/gdb1558.c b/gdb/testsuite/gdb.arch/gdb1558.c
index 3735acb..063b861 100644
--- a/gdb/testsuite/gdb.arch/gdb1558.c
+++ b/gdb/testsuite/gdb.arch/gdb1558.c
@@ -1,4 +1,4 @@
-/* Copyright 2004-2024 Free Software Foundation, Inc.
+/* Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/gdb1558.exp b/gdb/testsuite/gdb.arch/gdb1558.exp
index 8ba9476..f690468 100644
--- a/gdb/testsuite/gdb.arch/gdb1558.exp
+++ b/gdb/testsuite/gdb.arch/gdb1558.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-attach-see-vdso.c b/gdb/testsuite/gdb.arch/i386-attach-see-vdso.c
index 2eee4c4..cc8298e 100644
--- a/gdb/testsuite/gdb.arch/i386-attach-see-vdso.c
+++ b/gdb/testsuite/gdb.arch/i386-attach-see-vdso.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-attach-see-vdso.exp b/gdb/testsuite/gdb.arch/i386-attach-see-vdso.exp
index dc75774..755e329 100644
--- a/gdb/testsuite/gdb.arch/i386-attach-see-vdso.exp
+++ b/gdb/testsuite/gdb.arch/i386-attach-see-vdso.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-avx.c b/gdb/testsuite/gdb.arch/i386-avx.c
index c9d7575..b3eb4bd 100644
--- a/gdb/testsuite/gdb.arch/i386-avx.c
+++ b/gdb/testsuite/gdb.arch/i386-avx.c
@@ -1,6 +1,6 @@
/* Test program for AVX registers.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/i386-avx.exp b/gdb/testsuite/gdb.arch/i386-avx.exp
index 8523c8b..8f07a3d 100644
--- a/gdb/testsuite/gdb.arch/i386-avx.exp
+++ b/gdb/testsuite/gdb.arch/i386-avx.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-avx512.c b/gdb/testsuite/gdb.arch/i386-avx512.c
index 19b79a0..1f4ab63 100644
--- a/gdb/testsuite/gdb.arch/i386-avx512.c
+++ b/gdb/testsuite/gdb.arch/i386-avx512.c
@@ -1,6 +1,6 @@
/* Test program for AVX 512 registers.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/i386-avx512.exp b/gdb/testsuite/gdb.arch/i386-avx512.exp
index 45c7223..dcd6cc9 100644
--- a/gdb/testsuite/gdb.arch/i386-avx512.exp
+++ b/gdb/testsuite/gdb.arch/i386-avx512.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-biarch-core.exp b/gdb/testsuite/gdb.arch/i386-biarch-core.exp
index 14de337..6e83939 100644
--- a/gdb/testsuite/gdb.arch/i386-biarch-core.exp
+++ b/gdb/testsuite/gdb.arch/i386-biarch-core.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-bp_permanent.c b/gdb/testsuite/gdb.arch/i386-bp_permanent.c
index 1489712..c347152 100644
--- a/gdb/testsuite/gdb.arch/i386-bp_permanent.c
+++ b/gdb/testsuite/gdb.arch/i386-bp_permanent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/i386-bp_permanent.exp b/gdb/testsuite/gdb.arch/i386-bp_permanent.exp
index 64c1e0f..1d3713f 100644
--- a/gdb/testsuite/gdb.arch/i386-bp_permanent.exp
+++ b/gdb/testsuite/gdb.arch/i386-bp_permanent.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-byte.exp b/gdb/testsuite/gdb.arch/i386-byte.exp
index 20515fd..dcbcb40 100644
--- a/gdb/testsuite/gdb.arch/i386-byte.exp
+++ b/gdb/testsuite/gdb.arch/i386-byte.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-cfi-notcurrent.S b/gdb/testsuite/gdb.arch/i386-cfi-notcurrent.S
index d6f5fbf..a04a0c5 100644
--- a/gdb/testsuite/gdb.arch/i386-cfi-notcurrent.S
+++ b/gdb/testsuite/gdb.arch/i386-cfi-notcurrent.S
@@ -1,4 +1,4 @@
-/* Copyright 2012-2024 Free Software Foundation, Inc.
+/* Copyright 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/i386-cfi-notcurrent.exp b/gdb/testsuite/gdb.arch/i386-cfi-notcurrent.exp
index 18422ab..7291f02 100644
--- a/gdb/testsuite/gdb.arch/i386-cfi-notcurrent.exp
+++ b/gdb/testsuite/gdb.arch/i386-cfi-notcurrent.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-disp-step-self-call-alarm.c b/gdb/testsuite/gdb.arch/i386-disp-step-self-call-alarm.c
index fbbfad1..03b868c 100644
--- a/gdb/testsuite/gdb.arch/i386-disp-step-self-call-alarm.c
+++ b/gdb/testsuite/gdb.arch/i386-disp-step-self-call-alarm.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-disp-step-self-call.S b/gdb/testsuite/gdb.arch/i386-disp-step-self-call.S
index e195c1c..466e50c 100644
--- a/gdb/testsuite/gdb.arch/i386-disp-step-self-call.S
+++ b/gdb/testsuite/gdb.arch/i386-disp-step-self-call.S
@@ -1,4 +1,4 @@
-/* Copyright 2009-2024 Free Software Foundation, Inc.
+/* Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-disp-step-self-call.exp b/gdb/testsuite/gdb.arch/i386-disp-step-self-call.exp
index 5de7ebc..3e8ae1c 100644
--- a/gdb/testsuite/gdb.arch/i386-disp-step-self-call.exp
+++ b/gdb/testsuite/gdb.arch/i386-disp-step-self-call.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-disp-step.S b/gdb/testsuite/gdb.arch/i386-disp-step.S
index 1171f27..bf93523 100644
--- a/gdb/testsuite/gdb.arch/i386-disp-step.S
+++ b/gdb/testsuite/gdb.arch/i386-disp-step.S
@@ -1,4 +1,4 @@
-/* Copyright 2009-2024 Free Software Foundation, Inc.
+/* Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-disp-step.exp b/gdb/testsuite/gdb.arch/i386-disp-step.exp
index ee26cc2..43b8722 100644
--- a/gdb/testsuite/gdb.arch/i386-disp-step.exp
+++ b/gdb/testsuite/gdb.arch/i386-disp-step.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-dr3-watch.c b/gdb/testsuite/gdb.arch/i386-dr3-watch.c
index 1004403..0ae0fdf 100644
--- a/gdb/testsuite/gdb.arch/i386-dr3-watch.c
+++ b/gdb/testsuite/gdb.arch/i386-dr3-watch.c
@@ -1,4 +1,4 @@
-/* Copyright 2011-2024 Free Software Foundation, Inc.
+/* Copyright 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/i386-dr3-watch.exp b/gdb/testsuite/gdb.arch/i386-dr3-watch.exp
index 84b3806..4fe2608 100644
--- a/gdb/testsuite/gdb.arch/i386-dr3-watch.exp
+++ b/gdb/testsuite/gdb.arch/i386-dr3-watch.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-float.S b/gdb/testsuite/gdb.arch/i386-float.S
index 3a9386b..18a9437 100644
--- a/gdb/testsuite/gdb.arch/i386-float.S
+++ b/gdb/testsuite/gdb.arch/i386-float.S
@@ -1,4 +1,4 @@
-/* Copyright 2009-2024 Free Software Foundation, Inc.
+/* Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-float.exp b/gdb/testsuite/gdb.arch/i386-float.exp
index a9710a8..e86386e 100644
--- a/gdb/testsuite/gdb.arch/i386-float.exp
+++ b/gdb/testsuite/gdb.arch/i386-float.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-gnu-cfi-asm.S b/gdb/testsuite/gdb.arch/i386-gnu-cfi-asm.S
index c750c15..f628f82 100644
--- a/gdb/testsuite/gdb.arch/i386-gnu-cfi-asm.S
+++ b/gdb/testsuite/gdb.arch/i386-gnu-cfi-asm.S
@@ -1,4 +1,4 @@
-/* Copyright 2007-2024 Free Software Foundation, Inc.
+/* Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-gnu-cfi.c b/gdb/testsuite/gdb.arch/i386-gnu-cfi.c
index 57fc5ca..382a43c 100644
--- a/gdb/testsuite/gdb.arch/i386-gnu-cfi.c
+++ b/gdb/testsuite/gdb.arch/i386-gnu-cfi.c
@@ -1,6 +1,6 @@
/* Unwinding of DW_CFA_GNU_negative_offset_extended test program.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/i386-gnu-cfi.exp b/gdb/testsuite/gdb.arch/i386-gnu-cfi.exp
index 5bcac7c..b51f034 100644
--- a/gdb/testsuite/gdb.arch/i386-gnu-cfi.exp
+++ b/gdb/testsuite/gdb.arch/i386-gnu-cfi.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-permbkpt.S b/gdb/testsuite/gdb.arch/i386-permbkpt.S
index 7f0876f..e219687 100644
--- a/gdb/testsuite/gdb.arch/i386-permbkpt.S
+++ b/gdb/testsuite/gdb.arch/i386-permbkpt.S
@@ -1,4 +1,4 @@
-/* Copyright 2009-2024 Free Software Foundation, Inc.
+/* Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-permbkpt.exp b/gdb/testsuite/gdb.arch/i386-permbkpt.exp
index 6f136b3..b979d6e 100644
--- a/gdb/testsuite/gdb.arch/i386-permbkpt.exp
+++ b/gdb/testsuite/gdb.arch/i386-permbkpt.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-pkru.c b/gdb/testsuite/gdb.arch/i386-pkru.c
index 8ef9c7c..e2dae98 100644
--- a/gdb/testsuite/gdb.arch/i386-pkru.c
+++ b/gdb/testsuite/gdb.arch/i386-pkru.c
@@ -1,6 +1,6 @@
/* Test program for PKEYS registers.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/i386-pkru.exp b/gdb/testsuite/gdb.arch/i386-pkru.exp
index a8a36b7..7262b8b 100644
--- a/gdb/testsuite/gdb.arch/i386-pkru.exp
+++ b/gdb/testsuite/gdb.arch/i386-pkru.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection.c b/gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection.c
index 84192a5..b47cc38 100644
--- a/gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection.c
+++ b/gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection.exp b/gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection.exp
index 05eb027..eb93127 100644
--- a/gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection.exp
+++ b/gdb/testsuite/gdb.arch/i386-prologue-skip-cf-protection.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-prologue.c b/gdb/testsuite/gdb.arch/i386-prologue.c
index 494188c..a340259 100644
--- a/gdb/testsuite/gdb.arch/i386-prologue.c
+++ b/gdb/testsuite/gdb.arch/i386-prologue.c
@@ -1,6 +1,6 @@
/* Unwinder test program.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/i386-prologue.exp b/gdb/testsuite/gdb.arch/i386-prologue.exp
index aac9b02..72246f4 100644
--- a/gdb/testsuite/gdb.arch/i386-prologue.exp
+++ b/gdb/testsuite/gdb.arch/i386-prologue.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-pseudo.c b/gdb/testsuite/gdb.arch/i386-pseudo.c
index 777c3a0..31754dc 100644
--- a/gdb/testsuite/gdb.arch/i386-pseudo.c
+++ b/gdb/testsuite/gdb.arch/i386-pseudo.c
@@ -1,6 +1,6 @@
/* Test program for byte registers.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/i386-signal.c b/gdb/testsuite/gdb.arch/i386-signal.c
index 45e3a30..ff281d3 100644
--- a/gdb/testsuite/gdb.arch/i386-signal.c
+++ b/gdb/testsuite/gdb.arch/i386-signal.c
@@ -1,6 +1,6 @@
/* Unwinder test program for signal frames.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/i386-signal.exp b/gdb/testsuite/gdb.arch/i386-signal.exp
index c66ad5b..30f212b 100644
--- a/gdb/testsuite/gdb.arch/i386-signal.exp
+++ b/gdb/testsuite/gdb.arch/i386-signal.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This file is part of the GDB testsuite.
diff --git a/gdb/testsuite/gdb.arch/i386-size-overlap.c b/gdb/testsuite/gdb.arch/i386-size-overlap.c
index 58a9268..5b1d193 100644
--- a/gdb/testsuite/gdb.arch/i386-size-overlap.c
+++ b/gdb/testsuite/gdb.arch/i386-size-overlap.c
@@ -1,6 +1,6 @@
/* Overlapping symbol sizes test program.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/i386-size-overlap.exp b/gdb/testsuite/gdb.arch/i386-size-overlap.exp
index c10d95b..ca8383d 100644
--- a/gdb/testsuite/gdb.arch/i386-size-overlap.exp
+++ b/gdb/testsuite/gdb.arch/i386-size-overlap.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-size.c b/gdb/testsuite/gdb.arch/i386-size.c
index 0ead51c..09b2324 100644
--- a/gdb/testsuite/gdb.arch/i386-size.c
+++ b/gdb/testsuite/gdb.arch/i386-size.c
@@ -1,6 +1,6 @@
/* Symbol size test program.
- Copyright 2006-2024 Free Software Foundation, Inc.
+ Copyright 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/i386-size.exp b/gdb/testsuite/gdb.arch/i386-size.exp
index 2a2c4ac..b08182f 100644
--- a/gdb/testsuite/gdb.arch/i386-size.exp
+++ b/gdb/testsuite/gdb.arch/i386-size.exp
@@ -1,4 +1,4 @@
-# Copyright 2006-2024 Free Software Foundation, Inc.
+# Copyright 2006-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-sse-stack-align.S b/gdb/testsuite/gdb.arch/i386-sse-stack-align.S
index 89cd17c..61f9c0b 100644
--- a/gdb/testsuite/gdb.arch/i386-sse-stack-align.S
+++ b/gdb/testsuite/gdb.arch/i386-sse-stack-align.S
@@ -1,4 +1,4 @@
-/* Copyright 2012-2024 Free Software Foundation, Inc.
+/* Copyright 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/i386-sse-stack-align.c b/gdb/testsuite/gdb.arch/i386-sse-stack-align.c
index 67e0f67..bd5ce3a 100644
--- a/gdb/testsuite/gdb.arch/i386-sse-stack-align.c
+++ b/gdb/testsuite/gdb.arch/i386-sse-stack-align.c
@@ -1,4 +1,4 @@
-/* Copyright 2012-2024 Free Software Foundation, Inc.
+/* Copyright 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp b/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
index bb86ca3..af0b56d 100644
--- a/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
+++ b/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-sse.c b/gdb/testsuite/gdb.arch/i386-sse.c
index 66ff4fd..592952c 100644
--- a/gdb/testsuite/gdb.arch/i386-sse.c
+++ b/gdb/testsuite/gdb.arch/i386-sse.c
@@ -1,6 +1,6 @@
/* Test program for SSE registers.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/i386-sse.exp b/gdb/testsuite/gdb.arch/i386-sse.exp
index 42ca9f5..f0aa5ec 100644
--- a/gdb/testsuite/gdb.arch/i386-sse.exp
+++ b/gdb/testsuite/gdb.arch/i386-sse.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.S b/gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.S
index 25c6e3a..26f6bf7 100644
--- a/gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.S
+++ b/gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.c b/gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.c
index 5618700..f232a21 100644
--- a/gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.c
+++ b/gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.exp b/gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.exp
index 4e8b074..c361a2d 100644
--- a/gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.exp
+++ b/gdb/testsuite/gdb.arch/i386-stap-eval-lang-ada.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-unwind.c b/gdb/testsuite/gdb.arch/i386-unwind.c
index 2b5804a..74efc19 100644
--- a/gdb/testsuite/gdb.arch/i386-unwind.c
+++ b/gdb/testsuite/gdb.arch/i386-unwind.c
@@ -1,6 +1,6 @@
/* Unwinder test program.
- Copyright 2003-2024 Free Software Foundation, Inc.
+ Copyright 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/i386-unwind.exp b/gdb/testsuite/gdb.arch/i386-unwind.exp
index 25bbcfb..99acfe9 100644
--- a/gdb/testsuite/gdb.arch/i386-unwind.exp
+++ b/gdb/testsuite/gdb.arch/i386-unwind.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/i386-word.exp b/gdb/testsuite/gdb.arch/i386-word.exp
index d908c4f..0da49c0 100644
--- a/gdb/testsuite/gdb.arch/i386-word.exp
+++ b/gdb/testsuite/gdb.arch/i386-word.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.S b/gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.S
index eec63e5..81fdc5b 100644
--- a/gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.S
+++ b/gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.S
@@ -1,4 +1,4 @@
-/* Copyright 2009-2024 Free Software Foundation, Inc.
+/* Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.exp b/gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.exp
index 7a1e529..8e8ed9b 100644
--- a/gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.exp
+++ b/gdb/testsuite/gdb.arch/ia64-breakpoint-shadow.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/insn-reloc.c b/gdb/testsuite/gdb.arch/insn-reloc.c
index 9cd7285..32adcb5 100644
--- a/gdb/testsuite/gdb.arch/insn-reloc.c
+++ b/gdb/testsuite/gdb.arch/insn-reloc.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/iwmmxt-regs.c b/gdb/testsuite/gdb.arch/iwmmxt-regs.c
index b406a7e..a7ca49d 100644
--- a/gdb/testsuite/gdb.arch/iwmmxt-regs.c
+++ b/gdb/testsuite/gdb.arch/iwmmxt-regs.c
@@ -1,6 +1,6 @@
/* Register test program.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/iwmmxt-regs.exp b/gdb/testsuite/gdb.arch/iwmmxt-regs.exp
index 6df0960..86e9ccb 100644
--- a/gdb/testsuite/gdb.arch/iwmmxt-regs.exp
+++ b/gdb/testsuite/gdb.arch/iwmmxt-regs.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/mips-disassembler-options.exp b/gdb/testsuite/gdb.arch/mips-disassembler-options.exp
index f3862da..e2d930e 100644
--- a/gdb/testsuite/gdb.arch/mips-disassembler-options.exp
+++ b/gdb/testsuite/gdb.arch/mips-disassembler-options.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/mips-disassembler-options.s b/gdb/testsuite/gdb.arch/mips-disassembler-options.s
index 65415a9..466bf2b 100644
--- a/gdb/testsuite/gdb.arch/mips-disassembler-options.s
+++ b/gdb/testsuite/gdb.arch/mips-disassembler-options.s
@@ -1,6 +1,6 @@
# This test is part of GDB, the GNU debugger.
#
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/mips-fcr.c b/gdb/testsuite/gdb.arch/mips-fcr.c
index a3b9352..6d906ec 100644
--- a/gdb/testsuite/gdb.arch/mips-fcr.c
+++ b/gdb/testsuite/gdb.arch/mips-fcr.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/mips-fcr.exp b/gdb/testsuite/gdb.arch/mips-fcr.exp
index d7a39fb..b47c371 100644
--- a/gdb/testsuite/gdb.arch/mips-fcr.exp
+++ b/gdb/testsuite/gdb.arch/mips-fcr.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/mips-fpregset-core.c b/gdb/testsuite/gdb.arch/mips-fpregset-core.c
index f976371..09d39f0 100644
--- a/gdb/testsuite/gdb.arch/mips-fpregset-core.c
+++ b/gdb/testsuite/gdb.arch/mips-fpregset-core.c
@@ -1,6 +1,6 @@
/* This test is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/mips-fpregset-core.exp b/gdb/testsuite/gdb.arch/mips-fpregset-core.exp
index d62fa25..aa55ede 100644
--- a/gdb/testsuite/gdb.arch/mips-fpregset-core.exp
+++ b/gdb/testsuite/gdb.arch/mips-fpregset-core.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/mips-octeon-bbit.exp b/gdb/testsuite/gdb.arch/mips-octeon-bbit.exp
index 224ee76..3fb6f9c 100644
--- a/gdb/testsuite/gdb.arch/mips-octeon-bbit.exp
+++ b/gdb/testsuite/gdb.arch/mips-octeon-bbit.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/mips16-thunks-inmain.c b/gdb/testsuite/gdb.arch/mips16-thunks-inmain.c
index 4f6f211..09f85b7 100644
--- a/gdb/testsuite/gdb.arch/mips16-thunks-inmain.c
+++ b/gdb/testsuite/gdb.arch/mips16-thunks-inmain.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/mips16-thunks-main.c b/gdb/testsuite/gdb.arch/mips16-thunks-main.c
index bfcc02d..3188f35 100644
--- a/gdb/testsuite/gdb.arch/mips16-thunks-main.c
+++ b/gdb/testsuite/gdb.arch/mips16-thunks-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/mips16-thunks-sin.c b/gdb/testsuite/gdb.arch/mips16-thunks-sin.c
index 866096c..75ffc58 100644
--- a/gdb/testsuite/gdb.arch/mips16-thunks-sin.c
+++ b/gdb/testsuite/gdb.arch/mips16-thunks-sin.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/mips16-thunks-sinfrob.c b/gdb/testsuite/gdb.arch/mips16-thunks-sinfrob.c
index c0b131e..5dea0a2 100644
--- a/gdb/testsuite/gdb.arch/mips16-thunks-sinfrob.c
+++ b/gdb/testsuite/gdb.arch/mips16-thunks-sinfrob.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/mips16-thunks-sinfrob16.c b/gdb/testsuite/gdb.arch/mips16-thunks-sinfrob16.c
index a16ec48..8ae3dcf 100644
--- a/gdb/testsuite/gdb.arch/mips16-thunks-sinfrob16.c
+++ b/gdb/testsuite/gdb.arch/mips16-thunks-sinfrob16.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/mips16-thunks-sinmain.c b/gdb/testsuite/gdb.arch/mips16-thunks-sinmain.c
index 7a07622..81ea79e 100644
--- a/gdb/testsuite/gdb.arch/mips16-thunks-sinmain.c
+++ b/gdb/testsuite/gdb.arch/mips16-thunks-sinmain.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/mips16-thunks-sinmips16.c b/gdb/testsuite/gdb.arch/mips16-thunks-sinmips16.c
index 1a57957..3009080 100644
--- a/gdb/testsuite/gdb.arch/mips16-thunks-sinmips16.c
+++ b/gdb/testsuite/gdb.arch/mips16-thunks-sinmips16.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/mips16-thunks.exp b/gdb/testsuite/gdb.arch/mips16-thunks.exp
index 6a888d5..6936bf3 100644
--- a/gdb/testsuite/gdb.arch/mips16-thunks.exp
+++ b/gdb/testsuite/gdb.arch/mips16-thunks.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/pa-nullify.exp b/gdb/testsuite/gdb.arch/pa-nullify.exp
index fef7c84..87afe7a 100644
--- a/gdb/testsuite/gdb.arch/pa-nullify.exp
+++ b/gdb/testsuite/gdb.arch/pa-nullify.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-addpcis.exp b/gdb/testsuite/gdb.arch/powerpc-addpcis.exp
index 867d806..5a6d38e 100644
--- a/gdb/testsuite/gdb.arch/powerpc-addpcis.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-addpcis.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-addpcis.s b/gdb/testsuite/gdb.arch/powerpc-addpcis.s
index b0f8c2f..6cdcb98 100644
--- a/gdb/testsuite/gdb.arch/powerpc-addpcis.s
+++ b/gdb/testsuite/gdb.arch/powerpc-addpcis.s
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-aix-prologue.c b/gdb/testsuite/gdb.arch/powerpc-aix-prologue.c
index 3652bcd..4b1b1ae 100644
--- a/gdb/testsuite/gdb.arch/powerpc-aix-prologue.c
+++ b/gdb/testsuite/gdb.arch/powerpc-aix-prologue.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp b/gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp
index ed595d4..13e3fd3 100644
--- a/gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-aix-prologue.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-altivec.exp b/gdb/testsuite/gdb.arch/powerpc-altivec.exp
index fc041ee..987da07 100644
--- a/gdb/testsuite/gdb.arch/powerpc-altivec.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-altivec.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-altivec.s b/gdb/testsuite/gdb.arch/powerpc-altivec.s
index 236e878..3c5b84c 100644
--- a/gdb/testsuite/gdb.arch/powerpc-altivec.s
+++ b/gdb/testsuite/gdb.arch/powerpc-altivec.s
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-altivec2.exp b/gdb/testsuite/gdb.arch/powerpc-altivec2.exp
index 3c29c6d..3bf7c57 100644
--- a/gdb/testsuite/gdb.arch/powerpc-altivec2.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-altivec2.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-altivec2.s b/gdb/testsuite/gdb.arch/powerpc-altivec2.s
index 411bf2f..abe54b3 100644
--- a/gdb/testsuite/gdb.arch/powerpc-altivec2.s
+++ b/gdb/testsuite/gdb.arch/powerpc-altivec2.s
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-altivec3.exp b/gdb/testsuite/gdb.arch/powerpc-altivec3.exp
index 334d352..ff1d79a 100644
--- a/gdb/testsuite/gdb.arch/powerpc-altivec3.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-altivec3.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-altivec3.s b/gdb/testsuite/gdb.arch/powerpc-altivec3.s
index a752a79..b649111 100644
--- a/gdb/testsuite/gdb.arch/powerpc-altivec3.s
+++ b/gdb/testsuite/gdb.arch/powerpc-altivec3.s
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-d128-regs.c b/gdb/testsuite/gdb.arch/powerpc-d128-regs.c
index e2116ef..a5fa1c4 100644
--- a/gdb/testsuite/gdb.arch/powerpc-d128-regs.c
+++ b/gdb/testsuite/gdb.arch/powerpc-d128-regs.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp b/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp
index 9a935b7..42fc51e 100644
--- a/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-d128-regs.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-disassembler-options.exp b/gdb/testsuite/gdb.arch/powerpc-disassembler-options.exp
index 4ec2e98..4d57c87 100644
--- a/gdb/testsuite/gdb.arch/powerpc-disassembler-options.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-disassembler-options.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-fpscr-gcore.exp b/gdb/testsuite/gdb.arch/powerpc-fpscr-gcore.exp
index 74edffb..a7614fa 100644
--- a/gdb/testsuite/gdb.arch/powerpc-fpscr-gcore.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-fpscr-gcore.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-htm-regs.c b/gdb/testsuite/gdb.arch/powerpc-htm-regs.c
index a653f31..bc1c2b1 100644
--- a/gdb/testsuite/gdb.arch/powerpc-htm-regs.c
+++ b/gdb/testsuite/gdb.arch/powerpc-htm-regs.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-htm-regs.exp b/gdb/testsuite/gdb.arch/powerpc-htm-regs.exp
index 59a4d47..6fcb69f 100644
--- a/gdb/testsuite/gdb.arch/powerpc-htm-regs.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-htm-regs.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-lnia.exp b/gdb/testsuite/gdb.arch/powerpc-lnia.exp
index 7b29bf1..357ec7a 100644
--- a/gdb/testsuite/gdb.arch/powerpc-lnia.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-lnia.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-lnia.s b/gdb/testsuite/gdb.arch/powerpc-lnia.s
index 8cf0f46..bf3d800 100644
--- a/gdb/testsuite/gdb.arch/powerpc-lnia.s
+++ b/gdb/testsuite/gdb.arch/powerpc-lnia.s
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-plxv-nonrel.exp b/gdb/testsuite/gdb.arch/powerpc-plxv-nonrel.exp
index 547134c..f4a3fdb 100644
--- a/gdb/testsuite/gdb.arch/powerpc-plxv-nonrel.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-plxv-nonrel.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-plxv-nonrel.s b/gdb/testsuite/gdb.arch/powerpc-plxv-nonrel.s
index 654bc2d..7c1ee9c 100644
--- a/gdb/testsuite/gdb.arch/powerpc-plxv-nonrel.s
+++ b/gdb/testsuite/gdb.arch/powerpc-plxv-nonrel.s
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-power10.exp b/gdb/testsuite/gdb.arch/powerpc-power10.exp
index a4bfe5c..1bb7174 100644
--- a/gdb/testsuite/gdb.arch/powerpc-power10.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-power10.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-power10.s b/gdb/testsuite/gdb.arch/powerpc-power10.s
index 82f4cb8..50703b6 100644
--- a/gdb/testsuite/gdb.arch/powerpc-power10.s
+++ b/gdb/testsuite/gdb.arch/powerpc-power10.s
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-power7.exp b/gdb/testsuite/gdb.arch/powerpc-power7.exp
index 39b5312..f33405d 100644
--- a/gdb/testsuite/gdb.arch/powerpc-power7.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-power7.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-power7.s b/gdb/testsuite/gdb.arch/powerpc-power7.s
index a4bfc25..808baae 100644
--- a/gdb/testsuite/gdb.arch/powerpc-power7.s
+++ b/gdb/testsuite/gdb.arch/powerpc-power7.s
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-power8.exp b/gdb/testsuite/gdb.arch/powerpc-power8.exp
index 50d9784..ab69b0f 100644
--- a/gdb/testsuite/gdb.arch/powerpc-power8.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-power8.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-power8.s b/gdb/testsuite/gdb.arch/powerpc-power8.s
index b7e90d1..f7db1b0 100644
--- a/gdb/testsuite/gdb.arch/powerpc-power8.s
+++ b/gdb/testsuite/gdb.arch/powerpc-power8.s
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-power9.exp b/gdb/testsuite/gdb.arch/powerpc-power9.exp
index f1707fc..b1bfa9d 100644
--- a/gdb/testsuite/gdb.arch/powerpc-power9.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-power9.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-power9.s b/gdb/testsuite/gdb.arch/powerpc-power9.s
index 96c1b29..784c9be 100644
--- a/gdb/testsuite/gdb.arch/powerpc-power9.s
+++ b/gdb/testsuite/gdb.arch/powerpc-power9.s
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-ppr-dscr.c b/gdb/testsuite/gdb.arch/powerpc-ppr-dscr.c
index e464848..3a68ce0 100644
--- a/gdb/testsuite/gdb.arch/powerpc-ppr-dscr.c
+++ b/gdb/testsuite/gdb.arch/powerpc-ppr-dscr.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-ppr-dscr.exp b/gdb/testsuite/gdb.arch/powerpc-ppr-dscr.exp
index a9b0dfb..ef6bb9d 100644
--- a/gdb/testsuite/gdb.arch/powerpc-ppr-dscr.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-ppr-dscr.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-prologue-frame.S b/gdb/testsuite/gdb.arch/powerpc-prologue-frame.S
index ee36fea..d232b49 100644
--- a/gdb/testsuite/gdb.arch/powerpc-prologue-frame.S
+++ b/gdb/testsuite/gdb.arch/powerpc-prologue-frame.S
@@ -1,6 +1,6 @@
/* This test is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-prologue-frame.c b/gdb/testsuite/gdb.arch/powerpc-prologue-frame.c
index c569121..b008512 100644
--- a/gdb/testsuite/gdb.arch/powerpc-prologue-frame.c
+++ b/gdb/testsuite/gdb.arch/powerpc-prologue-frame.c
@@ -1,6 +1,6 @@
/* This test is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-prologue-frame.exp b/gdb/testsuite/gdb.arch/powerpc-prologue-frame.exp
index 9d93692..3c79039 100644
--- a/gdb/testsuite/gdb.arch/powerpc-prologue-frame.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-prologue-frame.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-prologue.c b/gdb/testsuite/gdb.arch/powerpc-prologue.c
index c933c8f..8bb45d6 100644
--- a/gdb/testsuite/gdb.arch/powerpc-prologue.c
+++ b/gdb/testsuite/gdb.arch/powerpc-prologue.c
@@ -1,6 +1,6 @@
/* Unwinder test program.
- Copyright 2006-2024 Free Software Foundation, Inc.
+ Copyright 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/powerpc-prologue.exp b/gdb/testsuite/gdb.arch/powerpc-prologue.exp
index e076ec2..4e697c1 100644
--- a/gdb/testsuite/gdb.arch/powerpc-prologue.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-prologue.exp
@@ -1,4 +1,4 @@
-# Copyright 2006-2024 Free Software Foundation, Inc.
+# Copyright 2006-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-stackless.S b/gdb/testsuite/gdb.arch/powerpc-stackless.S
index 8cba2b9..8b14cfb 100644
--- a/gdb/testsuite/gdb.arch/powerpc-stackless.S
+++ b/gdb/testsuite/gdb.arch/powerpc-stackless.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-stackless.exp b/gdb/testsuite/gdb.arch/powerpc-stackless.exp
index 289fc2a..07ad5ed 100644
--- a/gdb/testsuite/gdb.arch/powerpc-stackless.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-stackless.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-tar.c b/gdb/testsuite/gdb.arch/powerpc-tar.c
index c280d70..3b65b47 100644
--- a/gdb/testsuite/gdb.arch/powerpc-tar.c
+++ b/gdb/testsuite/gdb.arch/powerpc-tar.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-tar.exp b/gdb/testsuite/gdb.arch/powerpc-tar.exp
index 863001d..b44d554 100644
--- a/gdb/testsuite/gdb.arch/powerpc-tar.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-tar.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-trap.exp b/gdb/testsuite/gdb.arch/powerpc-trap.exp
index 32cfce4..04d76f5 100644
--- a/gdb/testsuite/gdb.arch/powerpc-trap.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-trap.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-trap.s b/gdb/testsuite/gdb.arch/powerpc-trap.s
index a7671ef..0d21a47 100644
--- a/gdb/testsuite/gdb.arch/powerpc-trap.s
+++ b/gdb/testsuite/gdb.arch/powerpc-trap.s
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-vector-regs.c b/gdb/testsuite/gdb.arch/powerpc-vector-regs.c
index 474803e..64160c5 100644
--- a/gdb/testsuite/gdb.arch/powerpc-vector-regs.c
+++ b/gdb/testsuite/gdb.arch/powerpc-vector-regs.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-vector-regs.exp b/gdb/testsuite/gdb.arch/powerpc-vector-regs.exp
index 7f3ecf6..9e9162e 100644
--- a/gdb/testsuite/gdb.arch/powerpc-vector-regs.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-vector-regs.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# Copyright (C) 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-vsx-gcore.exp b/gdb/testsuite/gdb.arch/powerpc-vsx-gcore.exp
index 51ad038..be1f93a 100644
--- a/gdb/testsuite/gdb.arch/powerpc-vsx-gcore.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-vsx-gcore.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-vsx.exp b/gdb/testsuite/gdb.arch/powerpc-vsx.exp
index 6ca48d1..a6832e6 100644
--- a/gdb/testsuite/gdb.arch/powerpc-vsx.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-vsx.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-vsx.s b/gdb/testsuite/gdb.arch/powerpc-vsx.s
index 1446dc9..167a260 100644
--- a/gdb/testsuite/gdb.arch/powerpc-vsx.s
+++ b/gdb/testsuite/gdb.arch/powerpc-vsx.s
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-vsx2.exp b/gdb/testsuite/gdb.arch/powerpc-vsx2.exp
index 6ebaddb..d5cb18e 100644
--- a/gdb/testsuite/gdb.arch/powerpc-vsx2.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-vsx2.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-vsx2.s b/gdb/testsuite/gdb.arch/powerpc-vsx2.s
index 1e6ddc4..d271d18 100644
--- a/gdb/testsuite/gdb.arch/powerpc-vsx2.s
+++ b/gdb/testsuite/gdb.arch/powerpc-vsx2.s
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-vsx3.exp b/gdb/testsuite/gdb.arch/powerpc-vsx3.exp
index 1bce934..bd54eaf 100644
--- a/gdb/testsuite/gdb.arch/powerpc-vsx3.exp
+++ b/gdb/testsuite/gdb.arch/powerpc-vsx3.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc-vsx3.s b/gdb/testsuite/gdb.arch/powerpc-vsx3.s
index 3cbe575..524d199 100644
--- a/gdb/testsuite/gdb.arch/powerpc-vsx3.s
+++ b/gdb/testsuite/gdb.arch/powerpc-vsx3.s
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc64-prologue.c b/gdb/testsuite/gdb.arch/powerpc64-prologue.c
index 9afce87..86bf7e5 100644
--- a/gdb/testsuite/gdb.arch/powerpc64-prologue.c
+++ b/gdb/testsuite/gdb.arch/powerpc64-prologue.c
@@ -1,6 +1,6 @@
/* Unwinder test program.
- Copyright 2006-2024 Free Software Foundation, Inc.
+ Copyright 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/powerpc64-prologue.exp b/gdb/testsuite/gdb.arch/powerpc64-prologue.exp
index cb53f14..a5401a3 100644
--- a/gdb/testsuite/gdb.arch/powerpc64-prologue.exp
+++ b/gdb/testsuite/gdb.arch/powerpc64-prologue.exp
@@ -1,4 +1,4 @@
-# Copyright 2006-2024 Free Software Foundation, Inc.
+# Copyright 2006-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/powerpc64-trap.s b/gdb/testsuite/gdb.arch/powerpc64-trap.s
index 76b06cc..45bf002 100644
--- a/gdb/testsuite/gdb.arch/powerpc64-trap.s
+++ b/gdb/testsuite/gdb.arch/powerpc64-trap.s
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/ppc-dfp.c b/gdb/testsuite/gdb.arch/ppc-dfp.c
index 37b2014..1b5cf6a 100644
--- a/gdb/testsuite/gdb.arch/ppc-dfp.c
+++ b/gdb/testsuite/gdb.arch/ppc-dfp.c
@@ -1,4 +1,4 @@
-/* Copyright 2008-2024 Free Software Foundation, Inc.
+/* Copyright 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/ppc-dfp.exp b/gdb/testsuite/gdb.arch/ppc-dfp.exp
index 476ac21..d7a8312 100644
--- a/gdb/testsuite/gdb.arch/ppc-dfp.exp
+++ b/gdb/testsuite/gdb.arch/ppc-dfp.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/ppc-fp.c b/gdb/testsuite/gdb.arch/ppc-fp.c
index 23fb8b5..f5fc4a3 100644
--- a/gdb/testsuite/gdb.arch/ppc-fp.c
+++ b/gdb/testsuite/gdb.arch/ppc-fp.c
@@ -1,4 +1,4 @@
-/* Copyright 2008-2024 Free Software Foundation, Inc.
+/* Copyright 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/ppc-fp.exp b/gdb/testsuite/gdb.arch/ppc-fp.exp
index 1f4e953..4733296 100644
--- a/gdb/testsuite/gdb.arch/ppc-fp.exp
+++ b/gdb/testsuite/gdb.arch/ppc-fp.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/ppc-longdouble.c b/gdb/testsuite/gdb.arch/ppc-longdouble.c
index 54ebc9c..cfcd861 100644
--- a/gdb/testsuite/gdb.arch/ppc-longdouble.c
+++ b/gdb/testsuite/gdb.arch/ppc-longdouble.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/ppc-longdouble.exp b/gdb/testsuite/gdb.arch/ppc-longdouble.exp
index f9345fe..f3603f1 100644
--- a/gdb/testsuite/gdb.arch/ppc-longdouble.exp
+++ b/gdb/testsuite/gdb.arch/ppc-longdouble.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/ppc64-atomic-inst.S b/gdb/testsuite/gdb.arch/ppc64-atomic-inst.S
index 3d07cb8..c4366aa 100644
--- a/gdb/testsuite/gdb.arch/ppc64-atomic-inst.S
+++ b/gdb/testsuite/gdb.arch/ppc64-atomic-inst.S
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/ppc64-atomic-inst.exp b/gdb/testsuite/gdb.arch/ppc64-atomic-inst.exp
index 9bd0235..a6ceb0f 100644
--- a/gdb/testsuite/gdb.arch/ppc64-atomic-inst.exp
+++ b/gdb/testsuite/gdb.arch/ppc64-atomic-inst.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/ppc64-break-on-_exit-main.c b/gdb/testsuite/gdb.arch/ppc64-break-on-_exit-main.c
index 70e40be..4c428d2 100644
--- a/gdb/testsuite/gdb.arch/ppc64-break-on-_exit-main.c
+++ b/gdb/testsuite/gdb.arch/ppc64-break-on-_exit-main.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/ppc64-break-on-_exit.c b/gdb/testsuite/gdb.arch/ppc64-break-on-_exit.c
index a4e7c0a..1863862 100644
--- a/gdb/testsuite/gdb.arch/ppc64-break-on-_exit.c
+++ b/gdb/testsuite/gdb.arch/ppc64-break-on-_exit.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/ppc64-break-on-_exit.exp b/gdb/testsuite/gdb.arch/ppc64-break-on-_exit.exp
index f91bebe..17bbdb4 100644
--- a/gdb/testsuite/gdb.arch/ppc64-break-on-_exit.exp
+++ b/gdb/testsuite/gdb.arch/ppc64-break-on-_exit.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/ppc64-break-on-_exit.s b/gdb/testsuite/gdb.arch/ppc64-break-on-_exit.s
index 4071037..5923584 100644
--- a/gdb/testsuite/gdb.arch/ppc64-break-on-_exit.s
+++ b/gdb/testsuite/gdb.arch/ppc64-break-on-_exit.s
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.S b/gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.S
index ddb7413..0c338e5 100644
--- a/gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.S
+++ b/gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.S
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.c b/gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.c
index 666e0ee..0f19080 100644
--- a/gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.c
+++ b/gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.c
@@ -1,4 +1,4 @@
-/* Copyright 2017-2024 Free Software Foundation, Inc.
+/* Copyright 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.exp b/gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.exp
index f150efc..62791ce 100644
--- a/gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.exp
+++ b/gdb/testsuite/gdb.arch/ppc64-isa207-atomic-inst.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/ppc64-symtab-cordic.exp b/gdb/testsuite/gdb.arch/ppc64-symtab-cordic.exp
index fe388fe..6fd8486 100644
--- a/gdb/testsuite/gdb.arch/ppc64-symtab-cordic.exp
+++ b/gdb/testsuite/gdb.arch/ppc64-symtab-cordic.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/pr25124.S b/gdb/testsuite/gdb.arch/pr25124.S
index 0b6f94b..a41db83 100644
--- a/gdb/testsuite/gdb.arch/pr25124.S
+++ b/gdb/testsuite/gdb.arch/pr25124.S
@@ -1,7 +1,7 @@
/* Test proper disassembling of ARM thumb instructions when reloading a symbol
file.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/pr25124.exp b/gdb/testsuite/gdb.arch/pr25124.exp
index 26cfc13..4c43716 100644
--- a/gdb/testsuite/gdb.arch/pr25124.exp
+++ b/gdb/testsuite/gdb.arch/pr25124.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv-bp-infcall.c b/gdb/testsuite/gdb.arch/riscv-bp-infcall.c
index 57d4f75..b910419 100644
--- a/gdb/testsuite/gdb.arch/riscv-bp-infcall.c
+++ b/gdb/testsuite/gdb.arch/riscv-bp-infcall.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv-bp-infcall.exp b/gdb/testsuite/gdb.arch/riscv-bp-infcall.exp
index 46b1bc8..62d4c44 100644
--- a/gdb/testsuite/gdb.arch/riscv-bp-infcall.exp
+++ b/gdb/testsuite/gdb.arch/riscv-bp-infcall.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv-default-tdesc.exp b/gdb/testsuite/gdb.arch/riscv-default-tdesc.exp
index fcffdc6..023b270 100644
--- a/gdb/testsuite/gdb.arch/riscv-default-tdesc.exp
+++ b/gdb/testsuite/gdb.arch/riscv-default-tdesc.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv-info-fcsr.c b/gdb/testsuite/gdb.arch/riscv-info-fcsr.c
index b4ccf93..39f0d62 100644
--- a/gdb/testsuite/gdb.arch/riscv-info-fcsr.c
+++ b/gdb/testsuite/gdb.arch/riscv-info-fcsr.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv-info-fcsr.exp b/gdb/testsuite/gdb.arch/riscv-info-fcsr.exp
index d270e40..4b3baae 100644
--- a/gdb/testsuite/gdb.arch/riscv-info-fcsr.exp
+++ b/gdb/testsuite/gdb.arch/riscv-info-fcsr.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv-reg-aliases.c b/gdb/testsuite/gdb.arch/riscv-reg-aliases.c
index 7ba3b41..16a0466 100644
--- a/gdb/testsuite/gdb.arch/riscv-reg-aliases.c
+++ b/gdb/testsuite/gdb.arch/riscv-reg-aliases.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv-reg-aliases.exp b/gdb/testsuite/gdb.arch/riscv-reg-aliases.exp
index b3d7c9d..c005ca9 100644
--- a/gdb/testsuite/gdb.arch/riscv-reg-aliases.exp
+++ b/gdb/testsuite/gdb.arch/riscv-reg-aliases.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv-tdesc-loading.exp b/gdb/testsuite/gdb.arch/riscv-tdesc-loading.exp
index 1cf9848..721b76e 100644
--- a/gdb/testsuite/gdb.arch/riscv-tdesc-loading.exp
+++ b/gdb/testsuite/gdb.arch/riscv-tdesc-loading.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv-tdesc-regs.c b/gdb/testsuite/gdb.arch/riscv-tdesc-regs.c
index 27a14b7..65b18bc 100644
--- a/gdb/testsuite/gdb.arch/riscv-tdesc-regs.c
+++ b/gdb/testsuite/gdb.arch/riscv-tdesc-regs.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv-tdesc-regs.exp b/gdb/testsuite/gdb.arch/riscv-tdesc-regs.exp
index 58859d1..55bb4ec 100644
--- a/gdb/testsuite/gdb.arch/riscv-tdesc-regs.exp
+++ b/gdb/testsuite/gdb.arch/riscv-tdesc-regs.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv-unwind-long-insn.S b/gdb/testsuite/gdb.arch/riscv-unwind-long-insn.S
index b8a35e8..11549eb 100644
--- a/gdb/testsuite/gdb.arch/riscv-unwind-long-insn.S
+++ b/gdb/testsuite/gdb.arch/riscv-unwind-long-insn.S
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv-unwind-long-insn.c b/gdb/testsuite/gdb.arch/riscv-unwind-long-insn.c
index 66a3e9a..fc88313 100644
--- a/gdb/testsuite/gdb.arch/riscv-unwind-long-insn.c
+++ b/gdb/testsuite/gdb.arch/riscv-unwind-long-insn.c
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv-unwind-long-insn.exp b/gdb/testsuite/gdb.arch/riscv-unwind-long-insn.exp
index e57c0ea..b0ab2b0 100644
--- a/gdb/testsuite/gdb.arch/riscv-unwind-long-insn.exp
+++ b/gdb/testsuite/gdb.arch/riscv-unwind-long-insn.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-c_li-foo.s b/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-c_li-foo.s
index b9a8bea..281b877 100644
--- a/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-c_li-foo.s
+++ b/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-c_li-foo.s
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-c_li.c b/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-c_li.c
index 0d14cef..0309d43 100644
--- a/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-c_li.c
+++ b/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-c_li.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-c_li.exp b/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-c_li.exp
index 7a18357..6be9ba9 100644
--- a/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-c_li.exp
+++ b/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-c_li.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-ld-lw-foo.s b/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-ld-lw-foo.s
index af01afd..a8b0dd3 100644
--- a/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-ld-lw-foo.s
+++ b/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-ld-lw-foo.s
@@ -1,4 +1,4 @@
-/* Copyright 2021-2024 Free Software Foundation, Inc.
+/* Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-ld-lw.c b/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-ld-lw.c
index 82f2ec5..20af541 100644
--- a/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-ld-lw.c
+++ b/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-ld-lw.c
@@ -1,4 +1,4 @@
-/* Copyright 2021-2024 Free Software Foundation, Inc.
+/* Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-ld-lw.exp b/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-ld-lw.exp
index 36762f1..219feaf 100644
--- a/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-ld-lw.exp
+++ b/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-ld-lw.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-mv.c b/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-mv.c
index f3f2217..dd8b676 100644
--- a/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-mv.c
+++ b/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-mv.c
@@ -1,4 +1,4 @@
-/* Copyright 2021-2024 Free Software Foundation, Inc.
+/* Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-mv.exp b/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-mv.exp
index 1010e3e..aa74972 100644
--- a/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-mv.exp
+++ b/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-mv.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-mv.s b/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-mv.s
index a5e2bda..b1290bd 100644
--- a/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-mv.s
+++ b/gdb/testsuite/gdb.arch/riscv64-unwind-prologue-with-mv.s
@@ -1,4 +1,4 @@
-/* Copyright 2021-2024 Free Software Foundation, Inc.
+/* Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/s390-disassembler-options.exp b/gdb/testsuite/gdb.arch/s390-disassembler-options.exp
index c75ee35..f71f114 100644
--- a/gdb/testsuite/gdb.arch/s390-disassembler-options.exp
+++ b/gdb/testsuite/gdb.arch/s390-disassembler-options.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/s390-multiarch.c b/gdb/testsuite/gdb.arch/s390-multiarch.c
index f88b307..8eaf017 100644
--- a/gdb/testsuite/gdb.arch/s390-multiarch.c
+++ b/gdb/testsuite/gdb.arch/s390-multiarch.c
@@ -1,4 +1,4 @@
-/* Copyright 2013-2024 Free Software Foundation, Inc.
+/* Copyright 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/s390-multiarch.exp b/gdb/testsuite/gdb.arch/s390-multiarch.exp
index 7483a35..1125275 100644
--- a/gdb/testsuite/gdb.arch/s390-multiarch.exp
+++ b/gdb/testsuite/gdb.arch/s390-multiarch.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/s390-stackless.S b/gdb/testsuite/gdb.arch/s390-stackless.S
index 8b23ffd..ebe8ad8 100644
--- a/gdb/testsuite/gdb.arch/s390-stackless.S
+++ b/gdb/testsuite/gdb.arch/s390-stackless.S
@@ -1,4 +1,4 @@
-/* Copyright 2015-2024 Free Software Foundation, Inc.
+/* Copyright 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/s390-stackless.exp b/gdb/testsuite/gdb.arch/s390-stackless.exp
index 247d7a4..83f5126 100644
--- a/gdb/testsuite/gdb.arch/s390-stackless.exp
+++ b/gdb/testsuite/gdb.arch/s390-stackless.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/s390-tdbregs.c b/gdb/testsuite/gdb.arch/s390-tdbregs.c
index 6b20072..9de36d4 100644
--- a/gdb/testsuite/gdb.arch/s390-tdbregs.c
+++ b/gdb/testsuite/gdb.arch/s390-tdbregs.c
@@ -1,4 +1,4 @@
-/* Copyright 2008-2024 Free Software Foundation, Inc.
+/* Copyright 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/s390-tdbregs.exp b/gdb/testsuite/gdb.arch/s390-tdbregs.exp
index 2452858..2f4d4a3 100644
--- a/gdb/testsuite/gdb.arch/s390-tdbregs.exp
+++ b/gdb/testsuite/gdb.arch/s390-tdbregs.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/s390-vregs.S b/gdb/testsuite/gdb.arch/s390-vregs.S
index 8111ded..a730aa4 100644
--- a/gdb/testsuite/gdb.arch/s390-vregs.S
+++ b/gdb/testsuite/gdb.arch/s390-vregs.S
@@ -1,4 +1,4 @@
-/* Copyright 2015-2024 Free Software Foundation, Inc.
+/* Copyright 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/s390-vregs.exp b/gdb/testsuite/gdb.arch/s390-vregs.exp
index f83b3b0..3e47cac 100644
--- a/gdb/testsuite/gdb.arch/s390-vregs.exp
+++ b/gdb/testsuite/gdb.arch/s390-vregs.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/skip-prologue.c b/gdb/testsuite/gdb.arch/skip-prologue.c
index 08ceacb..a8234d7 100644
--- a/gdb/testsuite/gdb.arch/skip-prologue.c
+++ b/gdb/testsuite/gdb.arch/skip-prologue.c
@@ -1,4 +1,4 @@
-/* Copyright 2024 Free Software Foundation, Inc.
+/* Copyright 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/skip-prologue.exp b/gdb/testsuite/gdb.arch/skip-prologue.exp
index 89d2225..ec04dad 100644
--- a/gdb/testsuite/gdb.arch/skip-prologue.exp
+++ b/gdb/testsuite/gdb.arch/skip-prologue.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/sparc-sysstep.c b/gdb/testsuite/gdb.arch/sparc-sysstep.c
index b4d15ea..4324f44 100644
--- a/gdb/testsuite/gdb.arch/sparc-sysstep.c
+++ b/gdb/testsuite/gdb.arch/sparc-sysstep.c
@@ -1,6 +1,6 @@
/* Test single-stepping system call instructions in sparc.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/sparc-sysstep.exp b/gdb/testsuite/gdb.arch/sparc-sysstep.exp
index 3f30640..40de862 100644
--- a/gdb/testsuite/gdb.arch/sparc-sysstep.exp
+++ b/gdb/testsuite/gdb.arch/sparc-sysstep.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/sparc64-adi.c b/gdb/testsuite/gdb.arch/sparc64-adi.c
index 97f6a99..b1c7eb4 100644
--- a/gdb/testsuite/gdb.arch/sparc64-adi.c
+++ b/gdb/testsuite/gdb.arch/sparc64-adi.c
@@ -1,6 +1,6 @@
/* Application Data Integrity (ADI) test in sparc64.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/sparc64-adi.exp b/gdb/testsuite/gdb.arch/sparc64-adi.exp
index 64cf6b7..25c3ce6 100644
--- a/gdb/testsuite/gdb.arch/sparc64-adi.exp
+++ b/gdb/testsuite/gdb.arch/sparc64-adi.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/sparc64-regs.S b/gdb/testsuite/gdb.arch/sparc64-regs.S
index c09cffb..b4df1cf 100644
--- a/gdb/testsuite/gdb.arch/sparc64-regs.S
+++ b/gdb/testsuite/gdb.arch/sparc64-regs.S
@@ -1,4 +1,4 @@
-/* Copyright 2017-2024 Free Software Foundation, Inc.
+/* Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/sparc64-regs.exp b/gdb/testsuite/gdb.arch/sparc64-regs.exp
index a5ef9e9..f5b7309 100644
--- a/gdb/testsuite/gdb.arch/sparc64-regs.exp
+++ b/gdb/testsuite/gdb.arch/sparc64-regs.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/thumb-bx-pc.S b/gdb/testsuite/gdb.arch/thumb-bx-pc.S
index eee1268..7052cc3 100644
--- a/gdb/testsuite/gdb.arch/thumb-bx-pc.S
+++ b/gdb/testsuite/gdb.arch/thumb-bx-pc.S
@@ -1,6 +1,6 @@
/* Test PC adjustment from Thumb-mode "bx pc" instruction.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/thumb-bx-pc.exp b/gdb/testsuite/gdb.arch/thumb-bx-pc.exp
index 71aa026..13622eb 100644
--- a/gdb/testsuite/gdb.arch/thumb-bx-pc.exp
+++ b/gdb/testsuite/gdb.arch/thumb-bx-pc.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/thumb-prologue.c b/gdb/testsuite/gdb.arch/thumb-prologue.c
index a0aa9ac..b9b3862 100644
--- a/gdb/testsuite/gdb.arch/thumb-prologue.c
+++ b/gdb/testsuite/gdb.arch/thumb-prologue.c
@@ -1,6 +1,6 @@
/* Unwinder test program.
- Copyright 2006-2024 Free Software Foundation, Inc.
+ Copyright 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/thumb-prologue.exp b/gdb/testsuite/gdb.arch/thumb-prologue.exp
index 53e6b4e..112c111 100644
--- a/gdb/testsuite/gdb.arch/thumb-prologue.exp
+++ b/gdb/testsuite/gdb.arch/thumb-prologue.exp
@@ -1,4 +1,4 @@
-# Copyright 2006-2024 Free Software Foundation, Inc.
+# Copyright 2006-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/thumb-singlestep.S b/gdb/testsuite/gdb.arch/thumb-singlestep.S
index a172273..4e4cff3 100644
--- a/gdb/testsuite/gdb.arch/thumb-singlestep.S
+++ b/gdb/testsuite/gdb.arch/thumb-singlestep.S
@@ -1,6 +1,6 @@
/* Test program with deliberately incorrect execution mode transition
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/thumb-singlestep.exp b/gdb/testsuite/gdb.arch/thumb-singlestep.exp
index d1d4a44..f4f695a 100644
--- a/gdb/testsuite/gdb.arch/thumb-singlestep.exp
+++ b/gdb/testsuite/gdb.arch/thumb-singlestep.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/thumb2-it.S b/gdb/testsuite/gdb.arch/thumb2-it.S
index 8f81b35..64a594e 100644
--- a/gdb/testsuite/gdb.arch/thumb2-it.S
+++ b/gdb/testsuite/gdb.arch/thumb2-it.S
@@ -1,6 +1,6 @@
/* Thumb-2 IT blocks test program.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/thumb2-it.exp b/gdb/testsuite/gdb.arch/thumb2-it.exp
index dadf063..49031e1 100644
--- a/gdb/testsuite/gdb.arch/thumb2-it.exp
+++ b/gdb/testsuite/gdb.arch/thumb2-it.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/vsx-regs.exp b/gdb/testsuite/gdb.arch/vsx-regs.exp
index 4e48e6e..645207f 100644
--- a/gdb/testsuite/gdb.arch/vsx-regs.exp
+++ b/gdb/testsuite/gdb.arch/vsx-regs.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/vsx-vsr-float28.c b/gdb/testsuite/gdb.arch/vsx-vsr-float28.c
index 0d7e683..f65b981 100644
--- a/gdb/testsuite/gdb.arch/vsx-vsr-float28.c
+++ b/gdb/testsuite/gdb.arch/vsx-vsr-float28.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/vsx-vsr-float28.exp b/gdb/testsuite/gdb.arch/vsx-vsr-float28.exp
index 49d4916..e40d52c 100644
--- a/gdb/testsuite/gdb.arch/vsx-vsr-float28.exp
+++ b/gdb/testsuite/gdb.arch/vsx-vsr-float28.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/x86-avx512bf16.c b/gdb/testsuite/gdb.arch/x86-avx512bf16.c
index 81a57a9..cae98fa 100644
--- a/gdb/testsuite/gdb.arch/x86-avx512bf16.c
+++ b/gdb/testsuite/gdb.arch/x86-avx512bf16.c
@@ -1,6 +1,6 @@
/* Test program for bfloat16 of AVX 512 registers.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/x86-avx512bf16.exp b/gdb/testsuite/gdb.arch/x86-avx512bf16.exp
index 6059b04..5d39cc7 100644
--- a/gdb/testsuite/gdb.arch/x86-avx512bf16.exp
+++ b/gdb/testsuite/gdb.arch/x86-avx512bf16.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/x86-avx512fp16-abi.c b/gdb/testsuite/gdb.arch/x86-avx512fp16-abi.c
index 42800d7..a96e373 100644
--- a/gdb/testsuite/gdb.arch/x86-avx512fp16-abi.c
+++ b/gdb/testsuite/gdb.arch/x86-avx512fp16-abi.c
@@ -1,6 +1,6 @@
/* Test program for _Float16 parameters and return values.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/x86-avx512fp16-abi.exp b/gdb/testsuite/gdb.arch/x86-avx512fp16-abi.exp
index 40de576..92a68a8 100644
--- a/gdb/testsuite/gdb.arch/x86-avx512fp16-abi.exp
+++ b/gdb/testsuite/gdb.arch/x86-avx512fp16-abi.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/x86-avx512fp16.c b/gdb/testsuite/gdb.arch/x86-avx512fp16.c
index 9613eca..d124ddd 100644
--- a/gdb/testsuite/gdb.arch/x86-avx512fp16.c
+++ b/gdb/testsuite/gdb.arch/x86-avx512fp16.c
@@ -1,6 +1,6 @@
/* Test program for bfloat16 of AVX 512 registers.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.arch/x86-avx512fp16.exp b/gdb/testsuite/gdb.arch/x86-avx512fp16.exp
index 89c080f..ac22086 100644
--- a/gdb/testsuite/gdb.arch/x86-avx512fp16.exp
+++ b/gdb/testsuite/gdb.arch/x86-avx512fp16.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.arch/x86-set-solib-absolute-prefix.c b/gdb/testsuite/gdb.arch/x86-set-solib-absolute-prefix.c
new file mode 100644
index 0000000..685a22e
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/x86-set-solib-absolute-prefix.c
@@ -0,0 +1,32 @@
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include <stdlib.h>
+
+/* Global var used to generate filler code. */
+volatile int global_var = 0;
+
+int
+main ()
+{
+ global_var++;
+ global_var++;
+
+ abort ();
+
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.arch/x86-set-solib-absolute-prefix.exp b/gdb/testsuite/gdb.arch/x86-set-solib-absolute-prefix.exp
new file mode 100644
index 0000000..cf74789
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/x86-set-solib-absolute-prefix.exp
@@ -0,0 +1,51 @@
+# Copyright 2012-2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+#
+# Compile a 32-bit x86 executable and then stop within a system call.
+# Change the sysroot to a non-existent directory, GDB should try (and
+# fail) to reload the currently loaded shared libraries. However, GDB
+# should retain the symbols for the vDSO library as that is not loaded
+# from the file system.
+#
+# Check the backtrace to ensure that the __kernel_vsyscall symbol is
+# still in the backtrace, this indicates GDB still has the vDSO
+# symbols available.
+
+require {is_any_target "i?86-*-linux*" "x86_64-*-linux*"}
+standard_testfile
+
+# The binary must be compiled as 32-bit so that the system call
+# `__kernel_vsyscall' originates from vDSO.
+set flags { debug }
+if { ![is_ilp32_target] } {
+ lappend flags "additional_flags=-m32"
+}
+
+if { [prepare_for_testing $testfile.exp $testfile $srcfile $flags] } {
+ return
+}
+
+if { ![runto_main] } {
+ return
+}
+
+set non_existing_directory [standard_output_file "BOGUS"]
+
+gdb_test "continue" "Program received signal SIGABRT, Aborted.*" \
+ "continue until abort"
+gdb_test "set sysroot $non_existing_directory" \
+ ".*warning: Unable to find dynamic linker breakpoint function.*" \
+ "set sysroot"
+gdb_test "bt" "__kernel_vsyscall.*" "backtrace with __kernel_vsyscall"
diff --git a/gdb/testsuite/gdb.asm/asm-source.exp b/gdb/testsuite/gdb.asm/asm-source.exp
index 80c48ea..e3655b1 100644
--- a/gdb/testsuite/gdb.asm/asm-source.exp
+++ b/gdb/testsuite/gdb.asm/asm-source.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/a2-run.exp b/gdb/testsuite/gdb.base/a2-run.exp
index f366144..4e95e56 100644
--- a/gdb/testsuite/gdb.base/a2-run.exp
+++ b/gdb/testsuite/gdb.base/a2-run.exp
@@ -1,4 +1,4 @@
-# Copyright 1988-2024 Free Software Foundation, Inc.
+# Copyright 1988-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/access-mem-running.c b/gdb/testsuite/gdb.base/access-mem-running.c
index 51f94c6..8408efb 100644
--- a/gdb/testsuite/gdb.base/access-mem-running.c
+++ b/gdb/testsuite/gdb.base/access-mem-running.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/access-mem-running.exp b/gdb/testsuite/gdb.base/access-mem-running.exp
index 821cdd0..ecff427 100644
--- a/gdb/testsuite/gdb.base/access-mem-running.exp
+++ b/gdb/testsuite/gdb.base/access-mem-running.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/add-symbol-file-attach.c b/gdb/testsuite/gdb.base/add-symbol-file-attach.c
index 3ebd468..109e712 100644
--- a/gdb/testsuite/gdb.base/add-symbol-file-attach.c
+++ b/gdb/testsuite/gdb.base/add-symbol-file-attach.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/add-symbol-file-attach.exp b/gdb/testsuite/gdb.base/add-symbol-file-attach.exp
index e39a26a..9039249 100644
--- a/gdb/testsuite/gdb.base/add-symbol-file-attach.exp
+++ b/gdb/testsuite/gdb.base/add-symbol-file-attach.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/address_space_qualifier.exp b/gdb/testsuite/gdb.base/address_space_qualifier.exp
index b067e8d..dc91162 100644
--- a/gdb/testsuite/gdb.base/address_space_qualifier.exp
+++ b/gdb/testsuite/gdb.base/address_space_qualifier.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/advance-until-multiple-locations.cc b/gdb/testsuite/gdb.base/advance-until-multiple-locations.cc
index 159377c..d092f8d 100644
--- a/gdb/testsuite/gdb.base/advance-until-multiple-locations.cc
+++ b/gdb/testsuite/gdb.base/advance-until-multiple-locations.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/advance-until-multiple-locations.exp b/gdb/testsuite/gdb.base/advance-until-multiple-locations.exp
index 88a4b0d..768500c 100644
--- a/gdb/testsuite/gdb.base/advance-until-multiple-locations.exp
+++ b/gdb/testsuite/gdb.base/advance-until-multiple-locations.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/advance.exp b/gdb/testsuite/gdb.base/advance.exp
index 040e0d9..d4e23ee 100644
--- a/gdb/testsuite/gdb.base/advance.exp
+++ b/gdb/testsuite/gdb.base/advance.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/alias.exp b/gdb/testsuite/gdb.base/alias.exp
index 23a7166..593a830 100644
--- a/gdb/testsuite/gdb.base/alias.exp
+++ b/gdb/testsuite/gdb.base/alias.exp
@@ -1,5 +1,5 @@
# Test the alias command.
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/align-c++.exp b/gdb/testsuite/gdb.base/align-c++.exp
index 48455e1..57af0be 100644
--- a/gdb/testsuite/gdb.base/align-c++.exp
+++ b/gdb/testsuite/gdb.base/align-c++.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/align-c.exp b/gdb/testsuite/gdb.base/align-c.exp
index be0a5f4..f5b779d 100644
--- a/gdb/testsuite/gdb.base/align-c.exp
+++ b/gdb/testsuite/gdb.base/align-c.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/align.exp.tcl b/gdb/testsuite/gdb.base/align.exp.tcl
index 3f08e8b..6b6ceec 100644
--- a/gdb/testsuite/gdb.base/align.exp.tcl
+++ b/gdb/testsuite/gdb.base/align.exp.tcl
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/all-architectures-0.exp b/gdb/testsuite/gdb.base/all-architectures-0.exp
index cf532a9..2ba8d22 100644
--- a/gdb/testsuite/gdb.base/all-architectures-0.exp
+++ b/gdb/testsuite/gdb.base/all-architectures-0.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/all-architectures-1.exp b/gdb/testsuite/gdb.base/all-architectures-1.exp
index eb25564..e43e652 100644
--- a/gdb/testsuite/gdb.base/all-architectures-1.exp
+++ b/gdb/testsuite/gdb.base/all-architectures-1.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/all-architectures-2.exp b/gdb/testsuite/gdb.base/all-architectures-2.exp
index fcc1069..553501d 100644
--- a/gdb/testsuite/gdb.base/all-architectures-2.exp
+++ b/gdb/testsuite/gdb.base/all-architectures-2.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/all-architectures-3.exp b/gdb/testsuite/gdb.base/all-architectures-3.exp
index 24030b3..4a81c20 100644
--- a/gdb/testsuite/gdb.base/all-architectures-3.exp
+++ b/gdb/testsuite/gdb.base/all-architectures-3.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/all-architectures-4.exp b/gdb/testsuite/gdb.base/all-architectures-4.exp
index 79b6b49..c4d45e4 100644
--- a/gdb/testsuite/gdb.base/all-architectures-4.exp
+++ b/gdb/testsuite/gdb.base/all-architectures-4.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/all-architectures-5.exp b/gdb/testsuite/gdb.base/all-architectures-5.exp
index 3a9d1d9..6a756f0 100644
--- a/gdb/testsuite/gdb.base/all-architectures-5.exp
+++ b/gdb/testsuite/gdb.base/all-architectures-5.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/all-architectures-6.exp b/gdb/testsuite/gdb.base/all-architectures-6.exp
index 2c3277a..cdf9955 100644
--- a/gdb/testsuite/gdb.base/all-architectures-6.exp
+++ b/gdb/testsuite/gdb.base/all-architectures-6.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/all-architectures-7.exp b/gdb/testsuite/gdb.base/all-architectures-7.exp
index 52405c0..01961d1 100644
--- a/gdb/testsuite/gdb.base/all-architectures-7.exp
+++ b/gdb/testsuite/gdb.base/all-architectures-7.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/all-architectures.exp.tcl b/gdb/testsuite/gdb.base/all-architectures.exp.tcl
index f97387f..767b02d 100644
--- a/gdb/testsuite/gdb.base/all-architectures.exp.tcl
+++ b/gdb/testsuite/gdb.base/all-architectures.exp.tcl
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/all-bin.exp b/gdb/testsuite/gdb.base/all-bin.exp
index af973b2..847bcb9 100644
--- a/gdb/testsuite/gdb.base/all-bin.exp
+++ b/gdb/testsuite/gdb.base/all-bin.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/annota-input-while-running.c b/gdb/testsuite/gdb.base/annota-input-while-running.c
index 25b4cab..a0d83ae 100644
--- a/gdb/testsuite/gdb.base/annota-input-while-running.c
+++ b/gdb/testsuite/gdb.base/annota-input-while-running.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/annota-input-while-running.exp b/gdb/testsuite/gdb.base/annota-input-while-running.exp
index 4625622..2b8d3b9 100644
--- a/gdb/testsuite/gdb.base/annota-input-while-running.exp
+++ b/gdb/testsuite/gdb.base/annota-input-while-running.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/annota1.exp b/gdb/testsuite/gdb.base/annota1.exp
index 927e8a7..06dbec2 100644
--- a/gdb/testsuite/gdb.base/annota1.exp
+++ b/gdb/testsuite/gdb.base/annota1.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/annota3.exp b/gdb/testsuite/gdb.base/annota3.exp
index 134a3d3..e8ac305 100644
--- a/gdb/testsuite/gdb.base/annota3.exp
+++ b/gdb/testsuite/gdb.base/annota3.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/annotate-symlink.exp b/gdb/testsuite/gdb.base/annotate-symlink.exp
index 67f5841..f7f6f18 100644
--- a/gdb/testsuite/gdb.base/annotate-symlink.exp
+++ b/gdb/testsuite/gdb.base/annotate-symlink.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# Copyright (C) 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/anon.exp b/gdb/testsuite/gdb.base/anon.exp
index a6433f5..8f9e44b 100644
--- a/gdb/testsuite/gdb.base/anon.exp
+++ b/gdb/testsuite/gdb.base/anon.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/args.exp b/gdb/testsuite/gdb.base/args.exp
index f9235f2..33952e4 100644
--- a/gdb/testsuite/gdb.base/args.exp
+++ b/gdb/testsuite/gdb.base/args.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -31,28 +31,43 @@ if {[build_executable $testfile.exp $testfile $srcfile] == -1} {
# NAME is the name to use for the tests and ARGLIST is the list of
# arguments that are passed to GDB when it is started.
+#
+# The optional RE_LIST is the list of patterns to check the arguments
+# against, these patterns should match ARGLIST. If the arguments are
+# expected to show up unmodified in the test output then RE_LIST can
+# be dropped, and this proc will reuse ARGLIST.
+
+proc args_test { name arglist {re_list {}} } {
+
+ # If RE_LIST is not supplied then we can reuse ARGLIST, this
+ # implies that the arguments will appear unmodified in the test
+ # output.
+ if {[llength $re_list] == 0} {
+ set re_list $arglist
+ }
+
+ foreach_with_prefix startup_with_shell { on off } {
+ save_vars { ::GDBFLAGS } {
+ set ::GDBFLAGS "$::GDBFLAGS --args $::binfile $arglist"
-proc args_test { name arglist } {
- save_vars { ::GDBFLAGS } {
- set ::GDBFLAGS "$::GDBFLAGS --args $::binfile $arglist"
+ clean_restart $::binfile
- clean_restart $::binfile
+ gdb_test_no_output "set startup-with-shell ${startup_with_shell}" \
+ "set startup-with-shell for $name"
- runto_main
- gdb_breakpoint [gdb_get_line_number "set breakpoint here"]
- gdb_continue_to_breakpoint "breakpoint for $name"
+ runto_main
+ gdb_breakpoint [gdb_get_line_number "set breakpoint here"]
+ gdb_continue_to_breakpoint "breakpoint for $name"
- set expected_len [expr 1 + [llength $arglist]]
- gdb_test "print argc" "\\\$$::decimal = $expected_len" "argc for $name"
+ set expected_len [expr 1 + [llength $re_list]]
+ gdb_test "print argc" "\\\$$::decimal = $expected_len" "argc for $name"
- set i 1
- foreach arg $arglist {
- if { $arg eq "\n" } {
- set arg {\\n}
+ set i 1
+ foreach arg $re_list {
+ gdb_test "print argv\[$i\]" "\\\$$::decimal = $::hex \"$arg\"" \
+ "argv\[$i\] for $name"
+ set i [expr $i + 1]
}
- gdb_test "print argv\[$i\]" "\\\$$::decimal = $::hex \"$arg\"" \
- "argv\[$i\] for $name"
- set i [expr $i + 1]
}
}
}
@@ -78,6 +93,10 @@ args_test "two empty with single quotes" {{1} {''} {''} {3}}
# Try with arguments containing literal newlines.
-args_test "one newline" {{1} "\n" {3}}
+args_test "one newline" {{1} "\n" {3}} {1 \\\\n 3}
+
+args_test "two newlines" {{1} "\n" "\n" {3}} {1 \\\\n \\\\n 3}
+
+args_test "lone single quote" {{1} \' {3}}
-args_test "two newlines" {{1} "\n" "\n" {3}}
+args_test "lone double quote" {{1} \" {3}} {1 \\\\\" 3}
diff --git a/gdb/testsuite/gdb.base/argv0-symlink.c b/gdb/testsuite/gdb.base/argv0-symlink.c
index 3fb9313..a950f3c 100644
--- a/gdb/testsuite/gdb.base/argv0-symlink.c
+++ b/gdb/testsuite/gdb.base/argv0-symlink.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/argv0-symlink.exp b/gdb/testsuite/gdb.base/argv0-symlink.exp
index 27ea8d9..daabe74 100644
--- a/gdb/testsuite/gdb.base/argv0-symlink.exp
+++ b/gdb/testsuite/gdb.base/argv0-symlink.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/arithmet.exp b/gdb/testsuite/gdb.base/arithmet.exp
index c4a7f35..9f9234b 100644
--- a/gdb/testsuite/gdb.base/arithmet.exp
+++ b/gdb/testsuite/gdb.base/arithmet.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/array-indices.exp b/gdb/testsuite/gdb.base/array-indices.exp
index 84f7191..4c16179 100644
--- a/gdb/testsuite/gdb.base/array-indices.exp
+++ b/gdb/testsuite/gdb.base/array-indices.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/array-indices.exp.tcl b/gdb/testsuite/gdb.base/array-indices.exp.tcl
index 7374753..e2a8613 100644
--- a/gdb/testsuite/gdb.base/array-indices.exp.tcl
+++ b/gdb/testsuite/gdb.base/array-indices.exp.tcl
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/array-repeat.c b/gdb/testsuite/gdb.base/array-repeat.c
index ec509f4..bf6daf5 100644
--- a/gdb/testsuite/gdb.base/array-repeat.c
+++ b/gdb/testsuite/gdb.base/array-repeat.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/array-repeat.exp b/gdb/testsuite/gdb.base/array-repeat.exp
index 1379ae7..368ab28 100644
--- a/gdb/testsuite/gdb.base/array-repeat.exp
+++ b/gdb/testsuite/gdb.base/array-repeat.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/array-repeat.exp.tcl b/gdb/testsuite/gdb.base/array-repeat.exp.tcl
index b4a656e..e2ae5a2 100644
--- a/gdb/testsuite/gdb.base/array-repeat.exp.tcl
+++ b/gdb/testsuite/gdb.base/array-repeat.exp.tcl
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/arrayidx.c b/gdb/testsuite/gdb.base/arrayidx.c
index e44256b..719087b 100644
--- a/gdb/testsuite/gdb.base/arrayidx.c
+++ b/gdb/testsuite/gdb.base/arrayidx.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2005-2024 Free Software Foundation, Inc.
+ Copyright 2005-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/arrayidx.exp b/gdb/testsuite/gdb.base/arrayidx.exp
index e279c9c..4fc221f 100644
--- a/gdb/testsuite/gdb.base/arrayidx.exp
+++ b/gdb/testsuite/gdb.base/arrayidx.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/asmlabel.c b/gdb/testsuite/gdb.base/asmlabel.c
index 1ccee4b..49a3250 100644
--- a/gdb/testsuite/gdb.base/asmlabel.c
+++ b/gdb/testsuite/gdb.base/asmlabel.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/asmlabel.exp b/gdb/testsuite/gdb.base/asmlabel.exp
index f3af063..c4a3f0c 100644
--- a/gdb/testsuite/gdb.base/asmlabel.exp
+++ b/gdb/testsuite/gdb.base/asmlabel.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/assign.exp b/gdb/testsuite/gdb.base/assign.exp
index 38c2b2e..a69655d 100644
--- a/gdb/testsuite/gdb.base/assign.exp
+++ b/gdb/testsuite/gdb.base/assign.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/async-shell.c b/gdb/testsuite/gdb.base/async-shell.c
index 3acdee0..401cb4b 100644
--- a/gdb/testsuite/gdb.base/async-shell.c
+++ b/gdb/testsuite/gdb.base/async-shell.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/async-shell.exp b/gdb/testsuite/gdb.base/async-shell.exp
index 991ab7f..228ed10 100644
--- a/gdb/testsuite/gdb.base/async-shell.exp
+++ b/gdb/testsuite/gdb.base/async-shell.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/async.exp b/gdb/testsuite/gdb.base/async.exp
index f1cd569..cae10f7 100644
--- a/gdb/testsuite/gdb.base/async.exp
+++ b/gdb/testsuite/gdb.base/async.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/attach-deleted-exec.c b/gdb/testsuite/gdb.base/attach-deleted-exec.c
index ebfae87..8b8c1be 100644
--- a/gdb/testsuite/gdb.base/attach-deleted-exec.c
+++ b/gdb/testsuite/gdb.base/attach-deleted-exec.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/attach-deleted-exec.exp b/gdb/testsuite/gdb.base/attach-deleted-exec.exp
index 1196115..82a7bb4 100644
--- a/gdb/testsuite/gdb.base/attach-deleted-exec.exp
+++ b/gdb/testsuite/gdb.base/attach-deleted-exec.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/attach-fail-twice.c b/gdb/testsuite/gdb.base/attach-fail-twice.c
index d045e35..6bc7f6b 100644
--- a/gdb/testsuite/gdb.base/attach-fail-twice.c
+++ b/gdb/testsuite/gdb.base/attach-fail-twice.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/attach-fail-twice.exp b/gdb/testsuite/gdb.base/attach-fail-twice.exp
index 5902046..529002d 100644
--- a/gdb/testsuite/gdb.base/attach-fail-twice.exp
+++ b/gdb/testsuite/gdb.base/attach-fail-twice.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/attach-non-pgrp-leader.c b/gdb/testsuite/gdb.base/attach-non-pgrp-leader.c
index 62ceef4..eee5ee4 100644
--- a/gdb/testsuite/gdb.base/attach-non-pgrp-leader.c
+++ b/gdb/testsuite/gdb.base/attach-non-pgrp-leader.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/attach-non-pgrp-leader.exp b/gdb/testsuite/gdb.base/attach-non-pgrp-leader.exp
index 7d1bfe1..2ce092d 100644
--- a/gdb/testsuite/gdb.base/attach-non-pgrp-leader.exp
+++ b/gdb/testsuite/gdb.base/attach-non-pgrp-leader.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/attach-pie-misread.c b/gdb/testsuite/gdb.base/attach-pie-misread.c
index 9fd03d9..b41c18d 100644
--- a/gdb/testsuite/gdb.base/attach-pie-misread.c
+++ b/gdb/testsuite/gdb.base/attach-pie-misread.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/attach-pie-misread.exp b/gdb/testsuite/gdb.base/attach-pie-misread.exp
index 7943170..04fe951 100644
--- a/gdb/testsuite/gdb.base/attach-pie-misread.exp
+++ b/gdb/testsuite/gdb.base/attach-pie-misread.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/attach-pie-noexec.c b/gdb/testsuite/gdb.base/attach-pie-noexec.c
index d9fab24..d1e431f 100644
--- a/gdb/testsuite/gdb.base/attach-pie-noexec.c
+++ b/gdb/testsuite/gdb.base/attach-pie-noexec.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/attach-pie-noexec.exp b/gdb/testsuite/gdb.base/attach-pie-noexec.exp
index 4e6ede1..877cb4a 100644
--- a/gdb/testsuite/gdb.base/attach-pie-noexec.exp
+++ b/gdb/testsuite/gdb.base/attach-pie-noexec.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -35,7 +35,7 @@ if ![runto_main] {
}
set test "sanity check info shared"
gdb_test_multiple "info shared" $test {
- -re "From\[ \t\]+To\[ \t\]+Syms Read\[ \t\]+Shared Object Library\r\n0x.*\r\n$gdb_prompt $" {
+ -re "From\[ \t\]+To(\\s+NS)?\[ \t\]+Syms Read\[ \t\]+Shared Object Library\r\n0x.*\r\n$gdb_prompt $" {
pass $test
}
-re "No shared libraries loaded at this time\\.\r\n$gdb_prompt $" {
@@ -62,6 +62,6 @@ if { ![gdb_attach $testpid] } {
return
}
gdb_test "set architecture $arch" "The target architecture is set to \"$arch\"\\."
-gdb_test "info shared" "From\[ \t\]+To\[ \t\]+Syms Read\[ \t\]+Shared Object Library\r\n0x.*"
+gdb_test "info shared" "From\[ \t\]+To(\\s+NS)?\[ \t\]+Syms Read\[ \t\]+Shared Object Library\r\n0x.*"
kill_wait_spawned_process $test_spawn_id
diff --git a/gdb/testsuite/gdb.base/attach-twice.c b/gdb/testsuite/gdb.base/attach-twice.c
index 7b0af35..41e808c 100644
--- a/gdb/testsuite/gdb.base/attach-twice.c
+++ b/gdb/testsuite/gdb.base/attach-twice.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/attach-twice.exp b/gdb/testsuite/gdb.base/attach-twice.exp
index 87a12dc..3d74298 100644
--- a/gdb/testsuite/gdb.base/attach-twice.exp
+++ b/gdb/testsuite/gdb.base/attach-twice.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/attach-wait-input.c b/gdb/testsuite/gdb.base/attach-wait-input.c
index 87219cd..8e88317 100644
--- a/gdb/testsuite/gdb.base/attach-wait-input.c
+++ b/gdb/testsuite/gdb.base/attach-wait-input.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/attach-wait-input.exp b/gdb/testsuite/gdb.base/attach-wait-input.exp
index bbe73d1..84c9bab 100644
--- a/gdb/testsuite/gdb.base/attach-wait-input.exp
+++ b/gdb/testsuite/gdb.base/attach-wait-input.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/attach.exp b/gdb/testsuite/gdb.base/attach.exp
index 2b655e6..0d1550a 100644
--- a/gdb/testsuite/gdb.base/attach.exp
+++ b/gdb/testsuite/gdb.base/attach.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/auto-connect-native-target.c b/gdb/testsuite/gdb.base/auto-connect-native-target.c
index f63feb6..926ccf1 100644
--- a/gdb/testsuite/gdb.base/auto-connect-native-target.c
+++ b/gdb/testsuite/gdb.base/auto-connect-native-target.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/auto-connect-native-target.exp b/gdb/testsuite/gdb.base/auto-connect-native-target.exp
index fe1ed2f..914e3ba 100644
--- a/gdb/testsuite/gdb.base/auto-connect-native-target.exp
+++ b/gdb/testsuite/gdb.base/auto-connect-native-target.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/auto-load-script b/gdb/testsuite/gdb.base/auto-load-script
index fcf3d64..6d2f1db 100644
--- a/gdb/testsuite/gdb.base/auto-load-script
+++ b/gdb/testsuite/gdb.base/auto-load-script
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/auto-load.c b/gdb/testsuite/gdb.base/auto-load.c
index c38538d..120c08d 100644
--- a/gdb/testsuite/gdb.base/auto-load.c
+++ b/gdb/testsuite/gdb.base/auto-load.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/auto-load.exp b/gdb/testsuite/gdb.base/auto-load.exp
index 1517509..2faa292 100644
--- a/gdb/testsuite/gdb.base/auto-load.exp
+++ b/gdb/testsuite/gdb.base/auto-load.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/auxv.c b/gdb/testsuite/gdb.base/auxv.c
index 7d434c7..c9a20ab 100644
--- a/gdb/testsuite/gdb.base/auxv.c
+++ b/gdb/testsuite/gdb.base/auxv.c
@@ -1,4 +1,4 @@
-/* Copyright 1992-2024 Free Software Foundation, Inc.
+/* Copyright 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/auxv.exp b/gdb/testsuite/gdb.base/auxv.exp
index 0759a4f..090d9ba 100644
--- a/gdb/testsuite/gdb.base/auxv.exp
+++ b/gdb/testsuite/gdb.base/auxv.exp
@@ -1,6 +1,6 @@
# Test `info auxv' and related functionality.
-# Copyright (C) 1992-2024 Free Software Foundation, Inc.
+# Copyright (C) 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/backtrace.c b/gdb/testsuite/gdb.base/backtrace.c
index 50995ad..33edd39 100644
--- a/gdb/testsuite/gdb.base/backtrace.c
+++ b/gdb/testsuite/gdb.base/backtrace.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/backtrace.exp b/gdb/testsuite/gdb.base/backtrace.exp
index fd6b358..35784b4 100644
--- a/gdb/testsuite/gdb.base/backtrace.exp
+++ b/gdb/testsuite/gdb.base/backtrace.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bad-file.exp b/gdb/testsuite/gdb.base/bad-file.exp
index 1a9fa35..b823eaa 100644
--- a/gdb/testsuite/gdb.base/bad-file.exp
+++ b/gdb/testsuite/gdb.base/bad-file.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bang.exp b/gdb/testsuite/gdb.base/bang.exp
index e8acda3..2848c6f 100644
--- a/gdb/testsuite/gdb.base/bang.exp
+++ b/gdb/testsuite/gdb.base/bang.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/basic-edit-cmd.c b/gdb/testsuite/gdb.base/basic-edit-cmd.c
index fb0f70d..43e1984 100644
--- a/gdb/testsuite/gdb.base/basic-edit-cmd.c
+++ b/gdb/testsuite/gdb.base/basic-edit-cmd.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/basic-edit-cmd.exp b/gdb/testsuite/gdb.base/basic-edit-cmd.exp
index aa0efb5..8a23c9b 100644
--- a/gdb/testsuite/gdb.base/basic-edit-cmd.exp
+++ b/gdb/testsuite/gdb.base/basic-edit-cmd.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/batch-exit-status.exp b/gdb/testsuite/gdb.base/batch-exit-status.exp
index 5151464..a2c3dea 100644
--- a/gdb/testsuite/gdb.base/batch-exit-status.exp
+++ b/gdb/testsuite/gdb.base/batch-exit-status.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/batch-preserve-term-settings.c b/gdb/testsuite/gdb.base/batch-preserve-term-settings.c
index cd4a9b2..7d13022 100644
--- a/gdb/testsuite/gdb.base/batch-preserve-term-settings.c
+++ b/gdb/testsuite/gdb.base/batch-preserve-term-settings.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/batch-preserve-term-settings.exp b/gdb/testsuite/gdb.base/batch-preserve-term-settings.exp
index d4ceba6..8995997 100644
--- a/gdb/testsuite/gdb.base/batch-preserve-term-settings.exp
+++ b/gdb/testsuite/gdb.base/batch-preserve-term-settings.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bfd-errors-lib.c b/gdb/testsuite/gdb.base/bfd-errors-lib.c
index 9b8f311..481622a 100644
--- a/gdb/testsuite/gdb.base/bfd-errors-lib.c
+++ b/gdb/testsuite/gdb.base/bfd-errors-lib.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/bfd-errors.exp b/gdb/testsuite/gdb.base/bfd-errors.exp
index b611c33..8e51f09 100644
--- a/gdb/testsuite/gdb.base/bfd-errors.exp
+++ b/gdb/testsuite/gdb.base/bfd-errors.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/bfp-test.c b/gdb/testsuite/gdb.base/bfp-test.c
index 9815584..927621c 100644
--- a/gdb/testsuite/gdb.base/bfp-test.c
+++ b/gdb/testsuite/gdb.base/bfp-test.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2005-2024 Free Software Foundation, Inc.
+ Copyright 2005-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bfp-test.exp b/gdb/testsuite/gdb.base/bfp-test.exp
index e633f90..7781fe1 100644
--- a/gdb/testsuite/gdb.base/bfp-test.exp
+++ b/gdb/testsuite/gdb.base/bfp-test.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bg-exec-sigint-bp-cond.c b/gdb/testsuite/gdb.base/bg-exec-sigint-bp-cond.c
index 6cbc073..ea4534e 100644
--- a/gdb/testsuite/gdb.base/bg-exec-sigint-bp-cond.c
+++ b/gdb/testsuite/gdb.base/bg-exec-sigint-bp-cond.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bg-exec-sigint-bp-cond.exp b/gdb/testsuite/gdb.base/bg-exec-sigint-bp-cond.exp
index 79e2177..18e20e0 100644
--- a/gdb/testsuite/gdb.base/bg-exec-sigint-bp-cond.exp
+++ b/gdb/testsuite/gdb.base/bg-exec-sigint-bp-cond.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bg-execution-repeat.c b/gdb/testsuite/gdb.base/bg-execution-repeat.c
index d5b48ee..3c0cc76 100644
--- a/gdb/testsuite/gdb.base/bg-execution-repeat.c
+++ b/gdb/testsuite/gdb.base/bg-execution-repeat.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -37,9 +37,9 @@ main (void)
{
alarm (60);
+ do_wait = 1;
foo ();
- do_wait = 1;
wait ();
/* do_wait set to 0 externally. */
diff --git a/gdb/testsuite/gdb.base/bg-execution-repeat.exp b/gdb/testsuite/gdb.base/bg-execution-repeat.exp
index 61f26f3..d5580fb 100644
--- a/gdb/testsuite/gdb.base/bg-execution-repeat.exp
+++ b/gdb/testsuite/gdb.base/bg-execution-repeat.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -67,6 +67,17 @@ proc test {continue_cmd} {
# enable the "set var" command with an interrupt / continue& pair.
gdb_test -no-prompt-anchor "interrupt"
+ set test "interrupt received"
+ set re [string_to_regexp "Program received signal SIGINT, Interrupt."]
+ gdb_expect {
+ -re $re {
+ pass $test
+ }
+ timeout {
+ fail "$test (timeout)"
+ }
+ }
+
# Allow the breakpoint to trigger.
gdb_test -no-prompt-anchor "set var do_wait=0"
diff --git a/gdb/testsuite/gdb.base/bigcore.c b/gdb/testsuite/gdb.base/bigcore.c
index 8acfc0b..1c12f4e 100644
--- a/gdb/testsuite/gdb.base/bigcore.c
+++ b/gdb/testsuite/gdb.base/bigcore.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bigcore.exp b/gdb/testsuite/gdb.base/bigcore.exp
index 5e09d2f..7727e48 100644
--- a/gdb/testsuite/gdb.base/bigcore.exp
+++ b/gdb/testsuite/gdb.base/bigcore.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bitfields.exp b/gdb/testsuite/gdb.base/bitfields.exp
index 6954a35..c463865 100644
--- a/gdb/testsuite/gdb.base/bitfields.exp
+++ b/gdb/testsuite/gdb.base/bitfields.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bitfields2.exp b/gdb/testsuite/gdb.base/bitfields2.exp
index 3bd2d5b..a99660a 100644
--- a/gdb/testsuite/gdb.base/bitfields2.exp
+++ b/gdb/testsuite/gdb.base/bitfields2.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bitops.exp b/gdb/testsuite/gdb.base/bitops.exp
index e0cbd87..6bd8675 100644
--- a/gdb/testsuite/gdb.base/bitops.exp
+++ b/gdb/testsuite/gdb.base/bitops.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bitshift.exp b/gdb/testsuite/gdb.base/bitshift.exp
index dccc36b..8cc2514 100644
--- a/gdb/testsuite/gdb.base/bitshift.exp
+++ b/gdb/testsuite/gdb.base/bitshift.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.c b/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.c
index 48246df..6751546 100644
--- a/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.c
+++ b/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp b/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp
index 8a1f729..4fc8f06 100644
--- a/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp
+++ b/gdb/testsuite/gdb.base/bp-cmds-continue-ctrl-c.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.c b/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.c
index ea18b9e..8deb8a9 100644
--- a/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.c
+++ b/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp b/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp
index 1d91958..e2f301c 100644
--- a/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp
+++ b/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.gdb b/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.gdb
index bc6305a..90d3e1a 100644
--- a/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.gdb
+++ b/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.gdb
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bp-cmds-run-with-ex.c b/gdb/testsuite/gdb.base/bp-cmds-run-with-ex.c
index 27a14b7..65b18bc 100644
--- a/gdb/testsuite/gdb.base/bp-cmds-run-with-ex.c
+++ b/gdb/testsuite/gdb.base/bp-cmds-run-with-ex.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bp-cmds-run-with-ex.exp b/gdb/testsuite/gdb.base/bp-cmds-run-with-ex.exp
index 62dd97a..37300f7 100644
--- a/gdb/testsuite/gdb.base/bp-cmds-run-with-ex.exp
+++ b/gdb/testsuite/gdb.base/bp-cmds-run-with-ex.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bp-cmds-run-with-ex.gdb b/gdb/testsuite/gdb.base/bp-cmds-run-with-ex.gdb
index ed93473..a83c234 100644
--- a/gdb/testsuite/gdb.base/bp-cmds-run-with-ex.gdb
+++ b/gdb/testsuite/gdb.base/bp-cmds-run-with-ex.gdb
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bp-cmds-sourced-script.c b/gdb/testsuite/gdb.base/bp-cmds-sourced-script.c
index 27a14b7..65b18bc 100644
--- a/gdb/testsuite/gdb.base/bp-cmds-sourced-script.c
+++ b/gdb/testsuite/gdb.base/bp-cmds-sourced-script.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bp-cmds-sourced-script.exp b/gdb/testsuite/gdb.base/bp-cmds-sourced-script.exp
index 08df303..6ba7d10 100644
--- a/gdb/testsuite/gdb.base/bp-cmds-sourced-script.exp
+++ b/gdb/testsuite/gdb.base/bp-cmds-sourced-script.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bp-cmds-sourced-script.gdb b/gdb/testsuite/gdb.base/bp-cmds-sourced-script.gdb
index 8debae9..e78cfed 100644
--- a/gdb/testsuite/gdb.base/bp-cmds-sourced-script.gdb
+++ b/gdb/testsuite/gdb.base/bp-cmds-sourced-script.gdb
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bp-cond-failure.c b/gdb/testsuite/gdb.base/bp-cond-failure.c
index b742139..644d7fd 100644
--- a/gdb/testsuite/gdb.base/bp-cond-failure.c
+++ b/gdb/testsuite/gdb.base/bp-cond-failure.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/bp-cond-failure.exp b/gdb/testsuite/gdb.base/bp-cond-failure.exp
index b4c046c..4d03e7b 100644
--- a/gdb/testsuite/gdb.base/bp-cond-failure.exp
+++ b/gdb/testsuite/gdb.base/bp-cond-failure.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -75,7 +75,7 @@ proc run_test { cond_eval access_type bpexpr nloc } {
"Error in testing condition for breakpoint ${bp_num}.2:" \
"Cannot access memory at address 0x0" \
"" \
- "Breakpoint ${bp_num}.2, foo \\(c=49 ...\\) at \[^\r\n\]+:\[0-9\]+" \
+ "(Thread \[^\r\n\]+ hit )?Breakpoint ${bp_num}.2, foo \\(c=49 ...\\) at \[^\r\n\]+:\[0-9\]+" \
"${::decimal}\\s+\[^\r\n\]+ breakpoint here\\. \[^\r\n\]+"]
} else {
gdb_test "continue" \
@@ -84,7 +84,7 @@ proc run_test { cond_eval access_type bpexpr nloc } {
"Error in testing condition for breakpoint ${bp_num}:" \
"Cannot access memory at address 0x0" \
"" \
- "Breakpoint ${bp_num}, bar \\(\\) at \[^\r\n\]+:\[0-9\]+" \
+ "(Thread \[^\r\n\]+ hit )?Breakpoint ${bp_num}, bar \\(\\) at \[^\r\n\]+:\[0-9\]+" \
"${::decimal}\\s+\[^\r\n\]+ breakpoint here\\. \[^\r\n\]+"]
}
}
diff --git a/gdb/testsuite/gdb.base/bp-disabled-by-cond-lib.c b/gdb/testsuite/gdb.base/bp-disabled-by-cond-lib.c
new file mode 100644
index 0000000..5a01404
--- /dev/null
+++ b/gdb/testsuite/gdb.base/bp-disabled-by-cond-lib.c
@@ -0,0 +1,24 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2024-2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+volatile int lib_global = 0;
+
+void
+lib_func (void)
+{
+ /* Nothing. */
+}
diff --git a/gdb/testsuite/gdb.base/bp-disabled-by-cond.c b/gdb/testsuite/gdb.base/bp-disabled-by-cond.c
new file mode 100644
index 0000000..8bf266c
--- /dev/null
+++ b/gdb/testsuite/gdb.base/bp-disabled-by-cond.c
@@ -0,0 +1,64 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2024-2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include <assert.h>
+#include <stdlib.h>
+
+#ifdef __WIN32__
+#include <windows.h>
+#define dlopen(name, mode) LoadLibrary (TEXT (name))
+#ifdef _WIN32_WCE
+# define dlsym(handle, func) GetProcAddress (handle, TEXT (func))
+#else
+# define dlsym(handle, func) GetProcAddress (handle, func)
+#endif
+#define dlclose(handle) FreeLibrary (handle)
+#else
+#include <dlfcn.h>
+#endif
+
+void
+breakpt ()
+{
+ /* Nothing. */
+}
+
+int
+main (void)
+{
+ int res;
+ void *handle;
+ void (*func) (void);
+
+ handle = dlopen (SHLIB_NAME, RTLD_LAZY);
+ assert (handle != NULL);
+
+ func = (void (*)(void)) dlsym (handle, "lib_func");
+ assert (func != NULL);
+
+ breakpt (); /* Conditional BP location. */
+ breakpt (); /* Other BP location. */
+
+ func ();
+
+ res = dlclose (handle);
+ assert (res == 0);
+
+ breakpt (); /* BP before exit. */
+
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.base/bp-disabled-by-cond.exp b/gdb/testsuite/gdb.base/bp-disabled-by-cond.exp
new file mode 100644
index 0000000..f0bdd16
--- /dev/null
+++ b/gdb/testsuite/gdb.base/bp-disabled-by-cond.exp
@@ -0,0 +1,206 @@
+# Copyright 2024-2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Breakpoint locations can be marked as "disabled due to their
+# condition". This test sets up a breakpoint which depends on reading
+# a variable in a shared library. We then check that the b/p is
+# correctly disabled before the shared library is loaded, becomes
+# enabled once the shared library is loaded. And becomes disabled
+# again when the shared libraries are unloaded.
+
+standard_testfile .c -lib.c
+
+set pyfile [gdb_remote_download host ${srcdir}/${subdir}/${testfile}.py]
+
+# Build the library and copy it to the target.
+set libname ${testfile}-lib
+set libfile [standard_output_file $libname]
+if { [build_executable "build shlib" $libfile $srcfile2 {debug shlib}] == -1} {
+ return
+}
+set libfile_on_target [gdb_download_shlib $libfile]
+
+# Build the executable.
+set opts [list debug shlib_load additional_flags=-DSHLIB_NAME=\"${libname}\"]
+if { [build_executable "build exec" $binfile $srcfile $opts] == -1} {
+ return
+}
+
+set other_bp_line [gdb_get_line_number "Other BP location" $srcfile]
+set cond_bp_line [gdb_get_line_number "Conditional BP location" $srcfile]
+set exit_bp_line [gdb_get_line_number "BP before exit" $srcfile]
+
+# Setup a conditional b/p, the condition of which depends on reading a
+# variable from a shared library. The b/p will initially be created
+# disabled (due to the condition).
+#
+# Continue the inferior, when the shared library is loaded GDB should
+# make the b/p enabled.
+#
+# Restart the inferior, which should unload the shared library, GDB
+# should mark the b/p as disabled due to its condition again.
+proc run_test { hit_cond } {
+ clean_restart $::binfile
+
+ if {![runto_main]} {
+ return
+ }
+
+ # Setup breakpoints.
+ gdb_breakpoint $::srcfile:$::other_bp_line
+ set other_bp_num [get_integer_valueof "\$bpnum" "*UNKNOWN*" \
+ "get number of other b/p"]
+
+ gdb_breakpoint $::srcfile:$::exit_bp_line
+ set exit_bp_num [get_integer_valueof "\$bpnum" "*UNKNOWN*" \
+ "get number of exit b/p"]
+
+ gdb_breakpoint $::srcfile:$::cond_bp_line
+ set cond_bp_num [get_integer_valueof "\$bpnum" "*UNKNOWN*" \
+ "get number of conditional b/p"]
+
+ if { $hit_cond } {
+ set lib_global_val 0
+ } else {
+ set lib_global_val 1
+ }
+
+ # Set the condition. Use 'force' as we're referencing a variable in
+ # the shared library, which hasn't been loaded yet. The breakpoint
+ # will immediately be marked as disabled_by_cond.
+ gdb_test "condition -force $cond_bp_num lib_global == $lib_global_val" \
+ [multi_line \
+ "warning: failed to validate condition at location $cond_bp_num\\.1, disabling:" \
+ " No symbol \"lib_global\" in current context\\."] \
+ "set b/p condition, it will be disabled"
+
+ # Source Python script if supported.
+ if { [allow_python_tests] } {
+ gdb_test_no_output "source $::pyfile" "import python scripts"
+ gdb_test "python print(bp_modified_list)" "\\\[\\\]" \
+ "check b/p modified observer has not yet triggered"
+ }
+
+ # Check the b/p is indeed marked as disabled (based on its condition).
+ gdb_test "info breakpoint $cond_bp_num" \
+ [multi_line \
+ "\r\n$cond_bp_num\\.1\\s+N\\*\\s+$::hex in main at \[^\r\n\]+" \
+ "\\(\\*\\): Breakpoint condition is invalid at this location\\."] \
+ "conditional breakpoint is disabled based on condition"
+
+ if { $hit_cond } {
+ # Continue the inferior. The shared library is loaded and the
+ # breakpoint condition should become valid. We should then stop at
+ # the conditional breakpoint.
+ gdb_test "continue" \
+ [multi_line \
+ "Breakpoint $cond_bp_num, main \\(\\) at \[^\r\n\]+:$::cond_bp_line" \
+ "$::cond_bp_line\\s+breakpt \\(\\);\\s+/\\* Conditional BP location\\. \\*/"] \
+ "continue until conditional b/p is hit"
+ } else {
+ # Continue the inferior. The shared library is loaded and the
+ # breakpoint condition should become valid. As the condition
+ # is going to be false GDB will stop at the other line.
+ gdb_test "continue" \
+ [multi_line \
+ "Breakpoint $other_bp_num, main \\(\\) at \[^\r\n\]+:$::other_bp_line" \
+ "$::other_bp_line\\s+breakpt \\(\\);\\s+/\\* Other BP location\\. \\*/"] \
+ "continue until conditional b/p is hit"
+ }
+
+ if { [allow_python_tests] } {
+ # We're going to look at the list of b/p that have been
+ # modified since we loaded the Python script. The first b/p
+ # modified will be the conditional b/p, this occurs when the
+ # b/p condition became valid.
+ #
+ # The second b/p will be whichever b/p we hit (the hit count
+ # increased). So figure out which b/p we are going to hit.
+ if { $hit_cond } {
+ set second_bp_num $cond_bp_num
+ } else {
+ set second_bp_num $other_bp_num
+ }
+
+ # Now check the list of modified b/p.
+ gdb_test "python print(bp_modified_list)" \
+ "\\\[$cond_bp_num, $second_bp_num\\\]" \
+ "check b/p modified observer was triggered"
+ }
+
+ if {[gdb_protocol_is_remote]} {
+ set evals_re "(?: \\(\[^) \]+ evals\\))?"
+ } else {
+ set evals_re ""
+ }
+
+ # Check the b/p is no longer marked as disabled. The output is
+ # basically the same here whether the b/p was hit or not. It's
+ # just the hit counter line that we need to append or not.
+ set re_list \
+ [list \
+ "$cond_bp_num\\s+breakpoint\\s+keep\\s+y\\s+$::hex in main at \[^\r\n\]+:$::cond_bp_line" \
+ "\\s+stop only if lib_global == $lib_global_val$evals_re"]
+ if { $hit_cond } {
+ lappend re_list "\\s+breakpoint already hit 1 time"
+ }
+ set re [multi_line {*}$re_list]
+ gdb_test "info breakpoint $cond_bp_num" $re \
+ "conditional breakpoint is now enabled"
+
+ if { $hit_cond } {
+ gdb_test "continue" \
+ [multi_line \
+ "Breakpoint $other_bp_num, main \\(\\) at \[^\r\n\]+:$::other_bp_line" \
+ "$::other_bp_line\\s+breakpt \\(\\);\\s+/\\* Other BP location\\. \\*/"] \
+ "continue to other b/p"
+ }
+
+ if {[allow_python_tests]} {
+ # Clear out the list of modified b/p. This makes the results
+ # (see below) clearer.
+ gdb_test_no_output "python bp_modified_list=\[\]" \
+ "clear bp_modified_list"
+ }
+
+ gdb_test "continue" \
+ [multi_line \
+ "Breakpoint $exit_bp_num, main \\(\\) at \[^\r\n\]+:$::exit_bp_line" \
+ "$::exit_bp_line\\s+breakpt \\(\\);\\s+/\\* BP before exit\\. \\*/"] \
+ "continue b/p before exit"
+
+ # Check the b/p is once again marked as disabled based on its
+ # condition.
+ gdb_test "info breakpoint $cond_bp_num" \
+ [multi_line \
+ "\r\n$cond_bp_num\\.1\\s+N\\*\\s+$::hex in main at \[^\r\n\]+" \
+ "\\(\\*\\): Breakpoint condition is invalid at this location\\."] \
+ "conditional breakpoint is again disabled based on condition"
+
+ if { [allow_python_tests] } {
+ # The condition breakpoint will have been modified (moved to
+ # the disabled state) when GDB unloaded the shared libraries.
+ # And the b/p in main will have been modified in that it's hit
+ # count will have gone up.
+ gdb_test "python print(bp_modified_list)" \
+ "\\\[$cond_bp_num, $exit_bp_num\\\]" \
+ "check b/p modified observer was triggered during restart"
+ }
+}
+
+# The tests.
+foreach_with_prefix hit_cond { true false } {
+ run_test $hit_cond
+}
diff --git a/gdb/contrib/common-misspellings.txt b/gdb/testsuite/gdb.base/bp-disabled-by-cond.py
index 5772f66..9a93920 100644
--- a/gdb/contrib/common-misspellings.txt
+++ b/gdb/testsuite/gdb.base/bp-disabled-by-cond.py
@@ -1,4 +1,5 @@
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
+
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
@@ -12,19 +13,11 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# This file contains additions to and overrides for
-# wikipedia-common-misspellings.txt.
+bp_modified_list = []
-# Common spelling mistakes.
-inbetween->between, in between, in-between
-sofar->so far
-doens't->doesn't
-behavour->behavior
-behaviour->behavior
-arrithemetic->arithmetic
-electricaly->electrically
+def bp_modified(bp):
+ bp_modified_list.append(bp.number)
-# Identity rules.
-thru->thru
+gdb.events.breakpoint_modified.connect(bp_modified)
diff --git a/gdb/testsuite/gdb.base/bp-permanent.c b/gdb/testsuite/gdb.base/bp-permanent.c
index 99f1c41..72e5e8a 100644
--- a/gdb/testsuite/gdb.base/bp-permanent.c
+++ b/gdb/testsuite/gdb.base/bp-permanent.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -101,7 +101,7 @@ test_signal_no_handler (void)
}
static void
-test_signal_nested_handler ()
+test_signal_nested_handler (int sig)
{
test ();
}
diff --git a/gdb/testsuite/gdb.base/bp-permanent.exp b/gdb/testsuite/gdb.base/bp-permanent.exp
index aa55442..c6c6269 100644
--- a/gdb/testsuite/gdb.base/bp-permanent.exp
+++ b/gdb/testsuite/gdb.base/bp-permanent.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -134,7 +134,7 @@ proc test {always_inserted sw_watchpoint} {
unsupported "failed to stop at permanent breakpoint"
return
}
- -re "Program received signal SIGTRAP.*$gdb_prompt $" {
+ -re "received signal SIGTRAP.*$gdb_prompt $" {
pass $test
}
}
@@ -174,7 +174,7 @@ proc test {always_inserted sw_watchpoint} {
# disabled, it should act as if we hadn't created it in the first
# place. IOW, we should get a random signal, and, the breakpoint's
# command should not run.
- gdb_test "continue" "Program received signal SIGTRAP.*" \
+ gdb_test "continue" "received signal SIGTRAP.*" \
"disabled permanent breakpoint doesn't explain stop"
gdb_test "info breakpoints" \
diff --git a/gdb/testsuite/gdb.base/branch-to-self.c b/gdb/testsuite/gdb.base/branch-to-self.c
index 9647371..fc48ac2 100644
--- a/gdb/testsuite/gdb.base/branch-to-self.c
+++ b/gdb/testsuite/gdb.base/branch-to-self.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/branch-to-self.exp b/gdb/testsuite/gdb.base/branch-to-self.exp
index 71859d7..8f8e8ad 100644
--- a/gdb/testsuite/gdb.base/branch-to-self.exp
+++ b/gdb/testsuite/gdb.base/branch-to-self.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-always.c b/gdb/testsuite/gdb.base/break-always.c
index b75febc..a4b389a 100644
--- a/gdb/testsuite/gdb.base/break-always.c
+++ b/gdb/testsuite/gdb.base/break-always.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-always.exp b/gdb/testsuite/gdb.base/break-always.exp
index 5bd0527..24d8d65 100644
--- a/gdb/testsuite/gdb.base/break-always.exp
+++ b/gdb/testsuite/gdb.base/break-always.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-caller-line.c b/gdb/testsuite/gdb.base/break-caller-line.c
index 8829a1b..f3762db 100644
--- a/gdb/testsuite/gdb.base/break-caller-line.c
+++ b/gdb/testsuite/gdb.base/break-caller-line.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-caller-line.exp b/gdb/testsuite/gdb.base/break-caller-line.exp
index 13d5e55..bc3604e 100644
--- a/gdb/testsuite/gdb.base/break-caller-line.exp
+++ b/gdb/testsuite/gdb.base/break-caller-line.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/sim/arm/sim-main.h b/gdb/testsuite/gdb.base/break-dbg.cc
index b739873..642ded0 100644
--- a/sim/arm/sim-main.h
+++ b/gdb/testsuite/gdb.base/break-dbg.cc
@@ -1,7 +1,6 @@
-/* Simulation code for the ARM processor.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* This testcase is part of GDB, the GNU debugger.
- This file is part of simulators.
+ Copyright 2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -16,10 +15,17 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef SIM_MAIN_H
-#define SIM_MAIN_H
+volatile int global_var = 0;
-#include "sim-basics.h"
-#include "sim-base.h"
+int
+foo ()
+{
+ return global_var;
+}
-#endif
+int
+main ()
+{
+ int res = foo ();
+ return res;
+}
diff --git a/gdb/testsuite/gdb.base/break-dbg.exp b/gdb/testsuite/gdb.base/break-dbg.exp
new file mode 100644
index 0000000..3652b8e
--- /dev/null
+++ b/gdb/testsuite/gdb.base/break-dbg.exp
@@ -0,0 +1,70 @@
+# Copyright 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>. */
+
+# Some basic testing of 'set debug breakpoint on'. At one point a bug
+# meant that some breakpoints would immediately trigger a segfault if
+# GDB tried to run with breakpoint debugging turned on.
+#
+# Test is compiled as C++ only so 'catch catch/throw/rethrow' have a
+# something to do. The original bug would trigger for any 'catch'
+# style breakpoint, so C++ isn't really a hard requirement.
+
+standard_testfile .cc
+
+require allow_cplus_tests
+
+if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \
+ {debug c++}] } {
+ return
+}
+
+if {![runto_main]} {
+ return
+}
+
+gdb_test "catch catch" "^Catchpoint $decimal \\(catch\\)"
+gdb_test "catch throw" "^Catchpoint $decimal \\(throw\\)"
+gdb_test "catch rethrow" "^Catchpoint $decimal \\(rethrow\\)"
+
+gdb_test "catch exec" "^Catchpoint $decimal \\(exec\\)"
+gdb_test "catch fork" "^Catchpoint $decimal \\(fork\\)"
+gdb_test "catch vfork" "^Catchpoint $decimal \\(vfork\\)"
+
+gdb_test "catch load" "^Catchpoint $decimal \\(load\\)"
+gdb_test "catch unload" "^Catchpoint $decimal \\(unload\\)"
+
+gdb_test "catch signal" "^Catchpoint $decimal \\(standard signals\\)"
+gdb_test "catch syscall" "^Catchpoint $decimal \\(any syscall\\)"
+
+gdb_test "watch -l global_var" "\[Ww]atchpoint $decimal: -location global_var"
+
+gdb_test_no_output "set debug breakpoint on"
+
+set saw_bp_debug_line false
+gdb_test_multiple "step" "" {
+ -re "^step\r\n" {
+ exp_continue
+ }
+ -re "^\\\[breakpoint\\\] \[^\r\n\]+\r\n" {
+ set saw_bp_debug_line true
+ exp_continue
+ }
+ -re "^$gdb_prompt $" {
+ gdb_assert { $saw_bp_debug_line } $gdb_test_name
+ }
+ -re "^\[^\r\n\]*\r\n" {
+ exp_continue
+ }
+}
diff --git a/gdb/testsuite/gdb.base/break-entry.exp b/gdb/testsuite/gdb.base/break-entry.exp
index 709ed1a..4ea1158 100644
--- a/gdb/testsuite/gdb.base/break-entry.exp
+++ b/gdb/testsuite/gdb.base/break-entry.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-fun-addr.exp b/gdb/testsuite/gdb.base/break-fun-addr.exp
index c57b1cd..9f5325a 100644
--- a/gdb/testsuite/gdb.base/break-fun-addr.exp
+++ b/gdb/testsuite/gdb.base/break-fun-addr.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-fun-addr1.c b/gdb/testsuite/gdb.base/break-fun-addr1.c
index a3b9352..6d906ec 100644
--- a/gdb/testsuite/gdb.base/break-fun-addr1.c
+++ b/gdb/testsuite/gdb.base/break-fun-addr1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-fun-addr2.c b/gdb/testsuite/gdb.base/break-fun-addr2.c
index 7353dc8..6e70405 100644
--- a/gdb/testsuite/gdb.base/break-fun-addr2.c
+++ b/gdb/testsuite/gdb.base/break-fun-addr2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-idempotent.c b/gdb/testsuite/gdb.base/break-idempotent.c
index b763a30..c0417fb 100644
--- a/gdb/testsuite/gdb.base/break-idempotent.c
+++ b/gdb/testsuite/gdb.base/break-idempotent.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-idempotent.exp b/gdb/testsuite/gdb.base/break-idempotent.exp
index 0903841..ed23b64 100644
--- a/gdb/testsuite/gdb.base/break-idempotent.exp
+++ b/gdb/testsuite/gdb.base/break-idempotent.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-include.c b/gdb/testsuite/gdb.base/break-include.c
index fd92386..2b0d2dd 100644
--- a/gdb/testsuite/gdb.base/break-include.c
+++ b/gdb/testsuite/gdb.base/break-include.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-include.exp b/gdb/testsuite/gdb.base/break-include.exp
index a7fde67..a374d6b 100644
--- a/gdb/testsuite/gdb.base/break-include.exp
+++ b/gdb/testsuite/gdb.base/break-include.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-include.inc b/gdb/testsuite/gdb.base/break-include.inc
index 899ff4d..245bd65 100644
--- a/gdb/testsuite/gdb.base/break-include.inc
+++ b/gdb/testsuite/gdb.base/break-include.inc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-inline.c b/gdb/testsuite/gdb.base/break-inline.c
index a3768a6..43e97f5 100644
--- a/gdb/testsuite/gdb.base/break-inline.c
+++ b/gdb/testsuite/gdb.base/break-inline.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-inline.exp b/gdb/testsuite/gdb.base/break-inline.exp
index 56603f6..5793c4e 100644
--- a/gdb/testsuite/gdb.base/break-inline.exp
+++ b/gdb/testsuite/gdb.base/break-inline.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-interp-lib.c b/gdb/testsuite/gdb.base/break-interp-lib.c
index 4cec45e..1230a5e 100644
--- a/gdb/testsuite/gdb.base/break-interp-lib.c
+++ b/gdb/testsuite/gdb.base/break-interp-lib.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-interp-main.c b/gdb/testsuite/gdb.base/break-interp-main.c
index b4c600f..b0358c2 100644
--- a/gdb/testsuite/gdb.base/break-interp-main.c
+++ b/gdb/testsuite/gdb.base/break-interp-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-interp.exp b/gdb/testsuite/gdb.base/break-interp.exp
index fd8afdd..649cc86 100644
--- a/gdb/testsuite/gdb.base/break-interp.exp
+++ b/gdb/testsuite/gdb.base/break-interp.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-main-file-remove-fail.c b/gdb/testsuite/gdb.base/break-main-file-remove-fail.c
index fa82eba..fec6526 100644
--- a/gdb/testsuite/gdb.base/break-main-file-remove-fail.c
+++ b/gdb/testsuite/gdb.base/break-main-file-remove-fail.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-main-file-remove-fail.exp b/gdb/testsuite/gdb.base/break-main-file-remove-fail.exp
index 97b662c..19b2446 100644
--- a/gdb/testsuite/gdb.base/break-main-file-remove-fail.exp
+++ b/gdb/testsuite/gdb.base/break-main-file-remove-fail.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-on-linker-gcd-function.cc b/gdb/testsuite/gdb.base/break-on-linker-gcd-function.cc
index f658595..13b74a6 100644
--- a/gdb/testsuite/gdb.base/break-on-linker-gcd-function.cc
+++ b/gdb/testsuite/gdb.base/break-on-linker-gcd-function.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-on-linker-gcd-function.exp b/gdb/testsuite/gdb.base/break-on-linker-gcd-function.exp
index cf1596a..6bd6219 100644
--- a/gdb/testsuite/gdb.base/break-on-linker-gcd-function.exp
+++ b/gdb/testsuite/gdb.base/break-on-linker-gcd-function.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-probes-solib.c b/gdb/testsuite/gdb.base/break-probes-solib.c
index 308c738..8011b9a 100644
--- a/gdb/testsuite/gdb.base/break-probes-solib.c
+++ b/gdb/testsuite/gdb.base/break-probes-solib.c
@@ -1,4 +1,4 @@
-/* Copyright 2012-2024 Free Software Foundation, Inc.
+/* Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-probes.c b/gdb/testsuite/gdb.base/break-probes.c
index ce6f1c1..61fc7fc 100644
--- a/gdb/testsuite/gdb.base/break-probes.c
+++ b/gdb/testsuite/gdb.base/break-probes.c
@@ -1,4 +1,4 @@
-/* Copyright 2012-2024 Free Software Foundation, Inc.
+/* Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-probes.exp b/gdb/testsuite/gdb.base/break-probes.exp
index 3ebd896..d377801 100644
--- a/gdb/testsuite/gdb.base/break-probes.exp
+++ b/gdb/testsuite/gdb.base/break-probes.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-unload-file.c b/gdb/testsuite/gdb.base/break-unload-file.c
index 80a65f6..07bb943 100644
--- a/gdb/testsuite/gdb.base/break-unload-file.c
+++ b/gdb/testsuite/gdb.base/break-unload-file.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break-unload-file.exp b/gdb/testsuite/gdb.base/break-unload-file.exp
index fb9874b..9eab6b9 100644
--- a/gdb/testsuite/gdb.base/break-unload-file.exp
+++ b/gdb/testsuite/gdb.base/break-unload-file.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break.c b/gdb/testsuite/gdb.base/break.c
index b1c5159..51dd654 100644
--- a/gdb/testsuite/gdb.base/break.c
+++ b/gdb/testsuite/gdb.base/break.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1992-2024 Free Software Foundation, Inc.
+ Copyright 1992-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break.exp b/gdb/testsuite/gdb.base/break.exp
index 34ac219..1eec984 100644
--- a/gdb/testsuite/gdb.base/break.exp
+++ b/gdb/testsuite/gdb.base/break.exp
@@ -1,4 +1,4 @@
-# Copyright 1988-2024 Free Software Foundation, Inc.
+# Copyright 1988-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/break1.c b/gdb/testsuite/gdb.base/break1.c
index 756e59b..26c4663 100644
--- a/gdb/testsuite/gdb.base/break1.c
+++ b/gdb/testsuite/gdb.base/break1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1992-2024 Free Software Foundation, Inc.
+ Copyright 1992-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -23,7 +23,13 @@ struct some_struct
{
int a_field;
int b_field;
- union { int z_field; };
+ union
+ {
+ struct
+ {
+ int z_field;
+ };
+ };
};
struct some_struct values[50];
diff --git a/gdb/testsuite/gdb.base/breakpoint-in-ro-region.c b/gdb/testsuite/gdb.base/breakpoint-in-ro-region.c
index 1e9e789..2b15698 100644
--- a/gdb/testsuite/gdb.base/breakpoint-in-ro-region.c
+++ b/gdb/testsuite/gdb.base/breakpoint-in-ro-region.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp b/gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp
index 21cc7ff..4b060b8 100644
--- a/gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp
+++ b/gdb/testsuite/gdb.base/breakpoint-in-ro-region.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/breakpoint-shadow.c b/gdb/testsuite/gdb.base/breakpoint-shadow.c
index 836be65..2a128d5 100644
--- a/gdb/testsuite/gdb.base/breakpoint-shadow.c
+++ b/gdb/testsuite/gdb.base/breakpoint-shadow.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/breakpoint-shadow.exp b/gdb/testsuite/gdb.base/breakpoint-shadow.exp
index 9cf88e9..a662016 100644
--- a/gdb/testsuite/gdb.base/breakpoint-shadow.exp
+++ b/gdb/testsuite/gdb.base/breakpoint-shadow.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bt-on-error-and-warning.exp b/gdb/testsuite/gdb.base/bt-on-error-and-warning.exp
index e83cc6c..8a5970a 100644
--- a/gdb/testsuite/gdb.base/bt-on-error-and-warning.exp
+++ b/gdb/testsuite/gdb.base/bt-on-error-and-warning.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bt-on-fatal-signal.c b/gdb/testsuite/gdb.base/bt-on-fatal-signal.c
index 0f0e857..2a061a8 100644
--- a/gdb/testsuite/gdb.base/bt-on-fatal-signal.c
+++ b/gdb/testsuite/gdb.base/bt-on-fatal-signal.c
@@ -1,4 +1,4 @@
-/* Copyright 2021-2024 Free Software Foundation, Inc.
+/* Copyright 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/bt-on-fatal-signal.exp b/gdb/testsuite/gdb.base/bt-on-fatal-signal.exp
index 81a634d..06402dc 100644
--- a/gdb/testsuite/gdb.base/bt-on-fatal-signal.exp
+++ b/gdb/testsuite/gdb.base/bt-on-fatal-signal.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bt-selected-frame.c b/gdb/testsuite/gdb.base/bt-selected-frame.c
index 8ac8c33..00010cf 100644
--- a/gdb/testsuite/gdb.base/bt-selected-frame.c
+++ b/gdb/testsuite/gdb.base/bt-selected-frame.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/bt-selected-frame.exp b/gdb/testsuite/gdb.base/bt-selected-frame.exp
index 123cf17..68f5ed4 100644
--- a/gdb/testsuite/gdb.base/bt-selected-frame.exp
+++ b/gdb/testsuite/gdb.base/bt-selected-frame.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/build-id-seqno.c b/gdb/testsuite/gdb.base/build-id-seqno.c
index e2119ba7..ce81e8e 100644
--- a/gdb/testsuite/gdb.base/build-id-seqno.c
+++ b/gdb/testsuite/gdb.base/build-id-seqno.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/build-id-seqno.exp b/gdb/testsuite/gdb.base/build-id-seqno.exp
index 9566933..48f883c 100644
--- a/gdb/testsuite/gdb.base/build-id-seqno.exp
+++ b/gdb/testsuite/gdb.base/build-id-seqno.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/c-linkage-name-2.c b/gdb/testsuite/gdb.base/c-linkage-name-2.c
index a3eaa93..f12dfa5 100644
--- a/gdb/testsuite/gdb.base/c-linkage-name-2.c
+++ b/gdb/testsuite/gdb.base/c-linkage-name-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/c-linkage-name.c b/gdb/testsuite/gdb.base/c-linkage-name.c
index 7c138e8..e974b7e 100644
--- a/gdb/testsuite/gdb.base/c-linkage-name.c
+++ b/gdb/testsuite/gdb.base/c-linkage-name.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/c-linkage-name.exp b/gdb/testsuite/gdb.base/c-linkage-name.exp
index 3d219bd..a373540 100644
--- a/gdb/testsuite/gdb.base/c-linkage-name.exp
+++ b/gdb/testsuite/gdb.base/c-linkage-name.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/cached-source-file.c b/gdb/testsuite/gdb.base/cached-source-file.c
index eb5319b..e352484 100644
--- a/gdb/testsuite/gdb.base/cached-source-file.c
+++ b/gdb/testsuite/gdb.base/cached-source-file.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/cached-source-file.exp b/gdb/testsuite/gdb.base/cached-source-file.exp
index b063362..73d9359 100644
--- a/gdb/testsuite/gdb.base/cached-source-file.exp
+++ b/gdb/testsuite/gdb.base/cached-source-file.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/call-ar-st.exp b/gdb/testsuite/gdb.base/call-ar-st.exp
index c0a47a7..8b27d8d 100644
--- a/gdb/testsuite/gdb.base/call-ar-st.exp
+++ b/gdb/testsuite/gdb.base/call-ar-st.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/call-rt-st.exp b/gdb/testsuite/gdb.base/call-rt-st.exp
index af5c576..244eba8 100644
--- a/gdb/testsuite/gdb.base/call-rt-st.exp
+++ b/gdb/testsuite/gdb.base/call-rt-st.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/call-sc.c b/gdb/testsuite/gdb.base/call-sc.c
index e4fd453..652d346 100644
--- a/gdb/testsuite/gdb.base/call-sc.c
+++ b/gdb/testsuite/gdb.base/call-sc.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/call-sc.exp b/gdb/testsuite/gdb.base/call-sc.exp
index 3a83d96..4d0fccc 100644
--- a/gdb/testsuite/gdb.base/call-sc.exp
+++ b/gdb/testsuite/gdb.base/call-sc.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/call-signal-resume.exp b/gdb/testsuite/gdb.base/call-signal-resume.exp
index a281a63..10a2928 100644
--- a/gdb/testsuite/gdb.base/call-signal-resume.exp
+++ b/gdb/testsuite/gdb.base/call-signal-resume.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/call-signals.c b/gdb/testsuite/gdb.base/call-signals.c
index 071e230..fff2955 100644
--- a/gdb/testsuite/gdb.base/call-signals.c
+++ b/gdb/testsuite/gdb.base/call-signals.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/call-strs.exp b/gdb/testsuite/gdb.base/call-strs.exp
index f6a9f42..43e4712 100644
--- a/gdb/testsuite/gdb.base/call-strs.exp
+++ b/gdb/testsuite/gdb.base/call-strs.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/callexit.c b/gdb/testsuite/gdb.base/callexit.c
index b1b7cd1..aecff4d 100644
--- a/gdb/testsuite/gdb.base/callexit.c
+++ b/gdb/testsuite/gdb.base/callexit.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/callexit.exp b/gdb/testsuite/gdb.base/callexit.exp
index f2b0838..c250c67 100644
--- a/gdb/testsuite/gdb.base/callexit.exp
+++ b/gdb/testsuite/gdb.base/callexit.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/callfuncs.c b/gdb/testsuite/gdb.base/callfuncs.c
index bb30c51..42ab16c 100644
--- a/gdb/testsuite/gdb.base/callfuncs.c
+++ b/gdb/testsuite/gdb.base/callfuncs.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1993-2024 Free Software Foundation, Inc.
+ Copyright 1993-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/callfuncs.exp b/gdb/testsuite/gdb.base/callfuncs.exp
index 494b6df..0e1997a 100644
--- a/gdb/testsuite/gdb.base/callfuncs.exp
+++ b/gdb/testsuite/gdb.base/callfuncs.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/cast-call.c b/gdb/testsuite/gdb.base/cast-call.c
index 41040ab..aeb3a61 100644
--- a/gdb/testsuite/gdb.base/cast-call.c
+++ b/gdb/testsuite/gdb.base/cast-call.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/cast-call.exp b/gdb/testsuite/gdb.base/cast-call.exp
index ab12334..5ecf1c9 100644
--- a/gdb/testsuite/gdb.base/cast-call.exp
+++ b/gdb/testsuite/gdb.base/cast-call.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/cast-indirection.c b/gdb/testsuite/gdb.base/cast-indirection.c
index d59c66e..5b90a49 100644
--- a/gdb/testsuite/gdb.base/cast-indirection.c
+++ b/gdb/testsuite/gdb.base/cast-indirection.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/cast-indirection.exp b/gdb/testsuite/gdb.base/cast-indirection.exp
index 7b9b5a5..ce828db 100644
--- a/gdb/testsuite/gdb.base/cast-indirection.exp
+++ b/gdb/testsuite/gdb.base/cast-indirection.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/catch-follow-exec.c b/gdb/testsuite/gdb.base/catch-follow-exec.c
index 094423b..55d2c61 100644
--- a/gdb/testsuite/gdb.base/catch-follow-exec.c
+++ b/gdb/testsuite/gdb.base/catch-follow-exec.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/catch-follow-exec.exp b/gdb/testsuite/gdb.base/catch-follow-exec.exp
index 911f0e3..1f5f865 100644
--- a/gdb/testsuite/gdb.base/catch-follow-exec.exp
+++ b/gdb/testsuite/gdb.base/catch-follow-exec.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/catch-fork-kill.c b/gdb/testsuite/gdb.base/catch-fork-kill.c
index 2ccea32..5dc0d56 100644
--- a/gdb/testsuite/gdb.base/catch-fork-kill.c
+++ b/gdb/testsuite/gdb.base/catch-fork-kill.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/catch-fork-kill.exp b/gdb/testsuite/gdb.base/catch-fork-kill.exp
index 086be29..224a8df 100644
--- a/gdb/testsuite/gdb.base/catch-fork-kill.exp
+++ b/gdb/testsuite/gdb.base/catch-fork-kill.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -32,6 +32,8 @@
standard_testfile
+require allow_fork_tests
+
# Build two programs -- one for fork, and another for vfork.
set testfile_fork "${testfile}-fork"
set testfile_vfork "${testfile}-vfork"
diff --git a/gdb/testsuite/gdb.base/catch-fork-static.exp b/gdb/testsuite/gdb.base/catch-fork-static.exp
index 5c9d18f..9d50d5d 100644
--- a/gdb/testsuite/gdb.base/catch-fork-static.exp
+++ b/gdb/testsuite/gdb.base/catch-fork-static.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -21,9 +21,7 @@
# ld.so probes before reaching main, and ptrace flags were set then. But a
# static executable would just keep running and never catch the fork.
-# Until "catch fork" is implemented on other targets...
-#
-require {is_any_target "*-*-linux*" "*-*-openbsd*"}
+require allow_fork_tests
# Reusing foll-fork.c since it's a simple forking program.
standard_testfile foll-fork.c
diff --git a/gdb/testsuite/gdb.base/catch-gdb-caused-signals.c b/gdb/testsuite/gdb.base/catch-gdb-caused-signals.c
index 7993a40..324510c 100644
--- a/gdb/testsuite/gdb.base/catch-gdb-caused-signals.c
+++ b/gdb/testsuite/gdb.base/catch-gdb-caused-signals.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/catch-gdb-caused-signals.exp b/gdb/testsuite/gdb.base/catch-gdb-caused-signals.exp
index 08cee51..aa62972 100644
--- a/gdb/testsuite/gdb.base/catch-gdb-caused-signals.exp
+++ b/gdb/testsuite/gdb.base/catch-gdb-caused-signals.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/catch-load-so.c b/gdb/testsuite/gdb.base/catch-load-so.c
index 29d77e0..d3c3ef2 100644
--- a/gdb/testsuite/gdb.base/catch-load-so.c
+++ b/gdb/testsuite/gdb.base/catch-load-so.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/catch-load.c b/gdb/testsuite/gdb.base/catch-load.c
index 21e0cb9..175084a 100644
--- a/gdb/testsuite/gdb.base/catch-load.c
+++ b/gdb/testsuite/gdb.base/catch-load.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/catch-load.exp b/gdb/testsuite/gdb.base/catch-load.exp
index 11ab49a..ee1ae89 100644
--- a/gdb/testsuite/gdb.base/catch-load.exp
+++ b/gdb/testsuite/gdb.base/catch-load.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/catch-signal-fork.c b/gdb/testsuite/gdb.base/catch-signal-fork.c
index 54cd695..62ec6c0 100644
--- a/gdb/testsuite/gdb.base/catch-signal-fork.c
+++ b/gdb/testsuite/gdb.base/catch-signal-fork.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/catch-signal-fork.exp b/gdb/testsuite/gdb.base/catch-signal-fork.exp
index 2e065df..2a33ee1 100644
--- a/gdb/testsuite/gdb.base/catch-signal-fork.exp
+++ b/gdb/testsuite/gdb.base/catch-signal-fork.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -14,6 +14,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
require {!target_info exists gdb,nosignals}
+require allow_fork_tests
standard_testfile
diff --git a/gdb/testsuite/gdb.base/catch-signal-siginfo-cond.c b/gdb/testsuite/gdb.base/catch-signal-siginfo-cond.c
index c65fb23..f3d1d1e 100644
--- a/gdb/testsuite/gdb.base/catch-signal-siginfo-cond.c
+++ b/gdb/testsuite/gdb.base/catch-signal-siginfo-cond.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/catch-signal-siginfo-cond.exp b/gdb/testsuite/gdb.base/catch-signal-siginfo-cond.exp
index 4598622..dd47b55 100644
--- a/gdb/testsuite/gdb.base/catch-signal-siginfo-cond.exp
+++ b/gdb/testsuite/gdb.base/catch-signal-siginfo-cond.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/catch-signal.c b/gdb/testsuite/gdb.base/catch-signal.c
index 85a9109..6aeb873 100644
--- a/gdb/testsuite/gdb.base/catch-signal.c
+++ b/gdb/testsuite/gdb.base/catch-signal.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/catch-signal.exp b/gdb/testsuite/gdb.base/catch-signal.exp
index 6e15da0..4ddecd6 100644
--- a/gdb/testsuite/gdb.base/catch-signal.exp
+++ b/gdb/testsuite/gdb.base/catch-signal.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/catch-syscall.exp b/gdb/testsuite/gdb.base/catch-syscall.exp
index 2e20b8f..f3ddef5 100644
--- a/gdb/testsuite/gdb.base/catch-syscall.exp
+++ b/gdb/testsuite/gdb.base/catch-syscall.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/charset-malloc.c b/gdb/testsuite/gdb.base/charset-malloc.c
index 2c614ba..3009b90 100644
--- a/gdb/testsuite/gdb.base/charset-malloc.c
+++ b/gdb/testsuite/gdb.base/charset-malloc.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
Contributed by Red Hat, originally written by Jim Blandy.
diff --git a/gdb/testsuite/gdb.base/charset.c b/gdb/testsuite/gdb.base/charset.c
index 444f9cc..c513264 100644
--- a/gdb/testsuite/gdb.base/charset.c
+++ b/gdb/testsuite/gdb.base/charset.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2001-2024 Free Software Foundation, Inc.
+ Copyright 2001-2025 Free Software Foundation, Inc.
Contributed by Red Hat, originally written by Jim Blandy.
diff --git a/gdb/testsuite/gdb.base/charset.exp b/gdb/testsuite/gdb.base/charset.exp
index 0d39d04..75fb9f09 100644
--- a/gdb/testsuite/gdb.base/charset.exp
+++ b/gdb/testsuite/gdb.base/charset.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2001-2024 Free Software Foundation, Inc.
+# Copyright 2001-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/check-psymtab.c b/gdb/testsuite/gdb.base/check-psymtab.c
index 2e251e2..8772187 100644
--- a/gdb/testsuite/gdb.base/check-psymtab.c
+++ b/gdb/testsuite/gdb.base/check-psymtab.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/check-psymtab.exp b/gdb/testsuite/gdb.base/check-psymtab.exp
index 43e232c..1dfbd7d 100644
--- a/gdb/testsuite/gdb.base/check-psymtab.exp
+++ b/gdb/testsuite/gdb.base/check-psymtab.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/checkpoint-ns.exp b/gdb/testsuite/gdb.base/checkpoint-ns.exp
index 1cc130f..5d31799 100644
--- a/gdb/testsuite/gdb.base/checkpoint-ns.exp
+++ b/gdb/testsuite/gdb.base/checkpoint-ns.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/checkpoint.c b/gdb/testsuite/gdb.base/checkpoint.c
index 0e01e2b..ec1d05a 100644
--- a/gdb/testsuite/gdb.base/checkpoint.c
+++ b/gdb/testsuite/gdb.base/checkpoint.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2005-2024 Free Software Foundation, Inc.
+ Copyright 2005-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/checkpoint.exp b/gdb/testsuite/gdb.base/checkpoint.exp
index 68bddd8..89b36f5 100644
--- a/gdb/testsuite/gdb.base/checkpoint.exp
+++ b/gdb/testsuite/gdb.base/checkpoint.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/chng-syms.exp b/gdb/testsuite/gdb.base/chng-syms.exp
index 7f5490f..a561689 100644
--- a/gdb/testsuite/gdb.base/chng-syms.exp
+++ b/gdb/testsuite/gdb.base/chng-syms.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/clear_non_user_bp.exp b/gdb/testsuite/gdb.base/clear_non_user_bp.exp
index d1d9bd7..f078b97 100644
--- a/gdb/testsuite/gdb.base/clear_non_user_bp.exp
+++ b/gdb/testsuite/gdb.base/clear_non_user_bp.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/cli-suppress-notification.c b/gdb/testsuite/gdb.base/cli-suppress-notification.c
index b364109..02e012f 100644
--- a/gdb/testsuite/gdb.base/cli-suppress-notification.c
+++ b/gdb/testsuite/gdb.base/cli-suppress-notification.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/cli-suppress-notification.exp b/gdb/testsuite/gdb.base/cli-suppress-notification.exp
index 1b06ec4..19f9c55 100644
--- a/gdb/testsuite/gdb.base/cli-suppress-notification.exp
+++ b/gdb/testsuite/gdb.base/cli-suppress-notification.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/code-expr.exp b/gdb/testsuite/gdb.base/code-expr.exp
index 33bac17..4288617 100644
--- a/gdb/testsuite/gdb.base/code-expr.exp
+++ b/gdb/testsuite/gdb.base/code-expr.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2024 Free Software Foundation, Inc.
+# Copyright (C) 2001-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/code_elim.exp b/gdb/testsuite/gdb.base/code_elim.exp
index 8ead31d..0270bc9 100644
--- a/gdb/testsuite/gdb.base/code_elim.exp
+++ b/gdb/testsuite/gdb.base/code_elim.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/code_elim1.c b/gdb/testsuite/gdb.base/code_elim1.c
index f51af97..5a3cce2 100644
--- a/gdb/testsuite/gdb.base/code_elim1.c
+++ b/gdb/testsuite/gdb.base/code_elim1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/code_elim2.c b/gdb/testsuite/gdb.base/code_elim2.c
index 0b719b4..a01aac3 100644
--- a/gdb/testsuite/gdb.base/code_elim2.c
+++ b/gdb/testsuite/gdb.base/code_elim2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/command-line-input.exp b/gdb/testsuite/gdb.base/command-line-input.exp
index 86870bf..af228dc 100644
--- a/gdb/testsuite/gdb.base/command-line-input.exp
+++ b/gdb/testsuite/gdb.base/command-line-input.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/commands.exp b/gdb/testsuite/gdb.base/commands.exp
index 6aee034..aa5ed56 100644
--- a/gdb/testsuite/gdb.base/commands.exp
+++ b/gdb/testsuite/gdb.base/commands.exp
@@ -1,4 +1,4 @@
-# Copyright 1988-2024 Free Software Foundation, Inc.
+# Copyright 1988-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/compare-sections.c b/gdb/testsuite/gdb.base/compare-sections.c
index 40acd93..40222d3 100644
--- a/gdb/testsuite/gdb.base/compare-sections.c
+++ b/gdb/testsuite/gdb.base/compare-sections.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/compare-sections.exp b/gdb/testsuite/gdb.base/compare-sections.exp
index cf43602..981fa7b 100644
--- a/gdb/testsuite/gdb.base/compare-sections.exp
+++ b/gdb/testsuite/gdb.base/compare-sections.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/complete-empty.exp b/gdb/testsuite/gdb.base/complete-empty.exp
index 2689068..5e87431 100644
--- a/gdb/testsuite/gdb.base/complete-empty.exp
+++ b/gdb/testsuite/gdb.base/complete-empty.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/completion.exp b/gdb/testsuite/gdb.base/completion.exp
index 571d714..ca37559 100644
--- a/gdb/testsuite/gdb.base/completion.exp
+++ b/gdb/testsuite/gdb.base/completion.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/complex-parts.c b/gdb/testsuite/gdb.base/complex-parts.c
index 73c2bb3..8dde5aa 100644
--- a/gdb/testsuite/gdb.base/complex-parts.c
+++ b/gdb/testsuite/gdb.base/complex-parts.c
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/complex-parts.exp b/gdb/testsuite/gdb.base/complex-parts.exp
index 40f14f4..5b81966 100644
--- a/gdb/testsuite/gdb.base/complex-parts.exp
+++ b/gdb/testsuite/gdb.base/complex-parts.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/complex.c b/gdb/testsuite/gdb.base/complex.c
index 4735ff4..2a82902 100644
--- a/gdb/testsuite/gdb.base/complex.c
+++ b/gdb/testsuite/gdb.base/complex.c
@@ -1,4 +1,4 @@
-/* Copyright 2002-2024 Free Software Foundation, Inc.
+/* Copyright 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/complex.exp b/gdb/testsuite/gdb.base/complex.exp
index 99842eb..ef17c47 100644
--- a/gdb/testsuite/gdb.base/complex.exp
+++ b/gdb/testsuite/gdb.base/complex.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/comprdebug.exp b/gdb/testsuite/gdb.base/comprdebug.exp
index c12224e..686178d 100644
--- a/gdb/testsuite/gdb.base/comprdebug.exp
+++ b/gdb/testsuite/gdb.base/comprdebug.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/cond-eval-mode.c b/gdb/testsuite/gdb.base/cond-eval-mode.c
index e958f5e..8fd797e 100644
--- a/gdb/testsuite/gdb.base/cond-eval-mode.c
+++ b/gdb/testsuite/gdb.base/cond-eval-mode.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/cond-eval-mode.exp b/gdb/testsuite/gdb.base/cond-eval-mode.exp
index 0e98b83..ea43683 100644
--- a/gdb/testsuite/gdb.base/cond-eval-mode.exp
+++ b/gdb/testsuite/gdb.base/cond-eval-mode.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/cond-expr.exp b/gdb/testsuite/gdb.base/cond-expr.exp
index 67918cf..e60fd16 100644
--- a/gdb/testsuite/gdb.base/cond-expr.exp
+++ b/gdb/testsuite/gdb.base/cond-expr.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/condbreak-bad.c b/gdb/testsuite/gdb.base/condbreak-bad.c
index 2ceac89..d13f6f4 100644
--- a/gdb/testsuite/gdb.base/condbreak-bad.c
+++ b/gdb/testsuite/gdb.base/condbreak-bad.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/condbreak-bad.exp b/gdb/testsuite/gdb.base/condbreak-bad.exp
index 4644ae7..7aff409 100644
--- a/gdb/testsuite/gdb.base/condbreak-bad.exp
+++ b/gdb/testsuite/gdb.base/condbreak-bad.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/condbreak-call-false.c b/gdb/testsuite/gdb.base/condbreak-call-false.c
index 431c3a1..0df9e84 100644
--- a/gdb/testsuite/gdb.base/condbreak-call-false.c
+++ b/gdb/testsuite/gdb.base/condbreak-call-false.c
@@ -1,4 +1,4 @@
-/* Copyright 2013-2024 Free Software Foundation, Inc.
+/* Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/condbreak-call-false.exp b/gdb/testsuite/gdb.base/condbreak-call-false.exp
index 7b68a52..d46f47f 100644
--- a/gdb/testsuite/gdb.base/condbreak-call-false.exp
+++ b/gdb/testsuite/gdb.base/condbreak-call-false.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/condbreak-multi-context.cc b/gdb/testsuite/gdb.base/condbreak-multi-context.cc
index b5628f0..fa5966e 100644
--- a/gdb/testsuite/gdb.base/condbreak-multi-context.cc
+++ b/gdb/testsuite/gdb.base/condbreak-multi-context.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -18,7 +18,7 @@
class Base
{
public:
- static const int b = 20;
+ static const int bbb = 20;
void func () {}
};
@@ -26,7 +26,7 @@ public:
class A : public Base
{
public:
- static const int a = 10;
+ static const int aaa = 10;
void func () {}
};
@@ -34,7 +34,7 @@ public:
class C : public Base
{
public:
- static const int c = 30;
+ static const int ccc = 30;
void func () {}
};
diff --git a/gdb/testsuite/gdb.base/condbreak-multi-context.exp b/gdb/testsuite/gdb.base/condbreak-multi-context.exp
index 3a4fe37..dce162b 100644
--- a/gdb/testsuite/gdb.base/condbreak-multi-context.exp
+++ b/gdb/testsuite/gdb.base/condbreak-multi-context.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@ set flags {}
lappend flags debug
lappend flags c++
-if {[prepare_for_testing "failed to prepare" ${binfile} ${srcfile} $flags]} {
+if {[build_executable "failed to prepare" ${binfile} ${srcfile} $flags]} {
return
}
@@ -41,17 +41,32 @@ set loc_index(A) 0
set loc_index(Base) 0
set loc_index(C) 0
-# Find breakpoint location contexts.
+# Find breakpoint location contexts. This is called before any of the
+# tests are run and captures the order in which GDB will create the
+# breakpoint locations.
+#
+# This whole test script does rely on GDB always creating the b/p
+# locations in the same order, but that's true right now, and doesn't
+# seem likely to change in the near future.
+
+proc find_location_contexts { } {
+ global loc_name loc_index fill
+ global decimal hex gdb_prompt binfile
+
+ clean_restart ${binfile}
+
+ if {![runto_main]} {
+ return
+ }
-proc find_location_contexts {} {
- global loc_name loc_index bpnum1 fill
- global decimal hex gdb_prompt
+ gdb_breakpoint func
+ set bpnum [get_integer_valueof "\$bpnum" "*UNKNOWN*"]
- gdb_test_multiple "info breakpoint $bpnum1" "find_location_indices" {
- -re "stop only if ${fill}\r\n" {
+ gdb_test_multiple "info breakpoint $bpnum" "find_location_indices" {
+ -re "\r\n$bpnum\\s+breakpoint\\s+keep\\s+y\\s+<MULTIPLE>\\s*\r\n" {
exp_continue
}
- -re "^${bpnum1}\.($decimal) ${fill} ${hex} in (A|Base|C)::func${fill}\r\n" {
+ -re "^${bpnum}\.($decimal) ${fill} ${hex} in (A|Base|C)::func${fill}\r\n" {
set index $expect_out(1,string)
set name $expect_out(2,string)
set loc_name($index) $name
@@ -76,7 +91,7 @@ proc find_location_contexts {} {
# B::func, and 'n' at C::func, respectively.
proc check_bp_locations {bpnum states cond {msg ""}} {
- global loc_name fill
+ global loc_name fill loc_states
# Map location names to location states.
set loc_states(A) [lindex $states 0]
@@ -107,67 +122,87 @@ proc check_bp_locations {bpnum states cond {msg ""}} {
# Scenario 1: Define breakpoints conditionally, using the "break N if
# cond" syntax. Run the program, check that we hit those locations
# only.
+#
+# When START_BEFORE is true we create the breakpoints after running to
+# main. When START_BEFORE is false we create the breakpoints after
+# starting GDB, but before running to main.
+
+proc_with_prefix scenario_1 { start_before } {
+ global warning decimal fill bkptno_num_re binfile
+
+ clean_restart ${binfile}
+
+ if { $start_before } {
+ if {![runto_main temporary]} {
+ return
+ }
+ }
-with_test_prefix "scenario 1" {
# Define the conditional breakpoints. Two locations (Base::func
# and C::func) should be disabled. We do not test location
# indices strictly at this moment, because we don't know them,
# yet. We have strict location index tests below.
- gdb_test "break func if a == 10" \
+ gdb_test "break func if aaa == 10" \
[multi_line \
"${warning} at location $decimal, disabling:" \
- " No symbol \"a\" in current context." \
+ " No symbol \"aaa\" in current context." \
"${warning} at location $decimal, disabling:" \
- " No symbol \"a\" in current context." \
+ " No symbol \"aaa\" in current context." \
"Breakpoint $decimal at $fill .3 locations."] \
- "define bp with condition a == 10"
+ "define bp with condition aaa == 10"
set bpnum1 [get_integer_valueof "\$bpnum" 0 "get bpnum1"]
- gdb_test "break func if c == 30" \
+ gdb_test "break func if ccc == 30" \
[multi_line \
".*${warning} at location $decimal, disabling:" \
- " No symbol \"c\" in current context." \
+ " No symbol \"ccc\" in current context." \
".*${warning} at location $decimal, disabling:" \
- " No symbol \"c\" in current context." \
+ " No symbol \"ccc\" in current context." \
".*Breakpoint $decimal at $fill .3 locations."] \
- "define bp with condition c == 30"
+ "define bp with condition ccc == 30"
set bpnum2 [get_integer_valueof "\$bpnum" 0 "get bpnum2"]
- find_location_contexts
-
- with_test_prefix "before run" {
- check_bp_locations $bpnum1 {y N* N*} "a == 10"
- check_bp_locations $bpnum2 {N* N* y} "c == 30"
+ with_test_prefix "after creating b/p" {
+ check_bp_locations $bpnum1 {y N* N*} "aaa == 10"
+ check_bp_locations $bpnum2 {N* N* y} "ccc == 30"
}
- # Do not use runto_main, it deletes all breakpoints.
- gdb_run_cmd
+ if { !$start_before } {
+ if {![runto_main temporary no-delete-breakpoints]} {
+ return
+ }
+ }
# Check our conditional breakpoints.
- gdb_test "" ".*Breakpoint $bkptno_num_re, A::func .*" \
+ gdb_test "continue" ".*Breakpoint $bkptno_num_re, A::func .*" \
"run until A::func"
- gdb_test "print a" " = 10"
+ gdb_test "print aaa" " = 10"
gdb_test "continue" "Continuing.*Breakpoint $bkptno_num_re, C::func .*" \
"run until C::func"
- gdb_test "print c" " = 30"
+ gdb_test "print ccc" " = 30"
# No more hits!
gdb_continue_to_end
with_test_prefix "after run" {
- check_bp_locations $bpnum1 {y N* N*} "a == 10"
- check_bp_locations $bpnum2 {N* N* y} "c == 30"
+ check_bp_locations $bpnum1 {y N* N*} "aaa == 10"
+ check_bp_locations $bpnum2 {N* N* y} "ccc == 30"
}
}
-# Start GDB with two breakpoints and define the conditions separately.
+# Assuming GDB is already started, create two breakpoints and define
+# the conditions separately.
+#
+# BPNUM1_NAME and BPNUM2_NAME contain the name of two variables in the
+# parent contents. The breakpoint numbers of the two created
+# breakpoints are placed into these variables in the parent content.
-proc setup_bps {} {
- global srcfile binfile srcfile2 decimal
- global bpnum1 bpnum2 bp_location warning loc_index
+proc setup_bps { bpnum1_name bpnum2_name } {
+ global warning loc_index
- clean_restart ${binfile}
+ upvar $bpnum1_name bpnum1
+ upvar $bpnum2_name bpnum2
# Define the breakpoints.
gdb_breakpoint "func"
@@ -176,74 +211,105 @@ proc setup_bps {} {
gdb_breakpoint "func"
set bpnum2 [get_integer_valueof "\$bpnum" 0 "get bpnum2"]
- # Defining a condition on 'a' disables 2 locations.
+ # Defining a condition on 'aaa' disables 2 locations.
set locs [lsort -integer "$loc_index(Base) $loc_index(C)"]
- gdb_test "cond $bpnum1 a == 10" \
+ gdb_test "cond $bpnum1 aaa == 10" \
[multi_line \
"$warning at location ${bpnum1}.[lindex $locs 0], disabling:" \
- " No symbol \"a\" in current context." \
+ " No symbol \"aaa\" in current context." \
"$warning at location ${bpnum1}.[lindex $locs 1], disabling:" \
- " No symbol \"a\" in current context."]
+ " No symbol \"aaa\" in current context."]
# Defining a condition on 'c' disables 2 locations.
set locs [lsort -integer "$loc_index(Base) $loc_index(A)"]
- gdb_test "cond $bpnum2 c == 30" \
+ gdb_test "cond $bpnum2 ccc == 30" \
[multi_line \
"$warning at location ${bpnum2}.[lindex $locs 0], disabling:" \
- " No symbol \"c\" in current context." \
+ " No symbol \"ccc\" in current context." \
"$warning at location ${bpnum2}.[lindex $locs 1], disabling:" \
- " No symbol \"c\" in current context."]
+ " No symbol \"ccc\" in current context."]
}
# Scenario 2: Define breakpoints unconditionally, and then define
# conditions using the "cond N <cond>" syntax. Expect that the
# locations where <cond> is not evaluatable are disabled. Run the
# program, check that we hit the enabled locations only.
+#
+# When START_BEFORE is true we create the breakpoints after running to
+# main. When START_BEFORE is false we create the breakpoints after
+# starting GDB, but before running to main.
+
+proc_with_prefix scenario_2 { start_before } {
+ global binfile bkptno_num_re
+
+ clean_restart ${binfile}
-with_test_prefix "scenario 2" {
- setup_bps
+ if { $start_before } {
+ if {![runto_main temporary]} {
+ return
+ }
+ }
+
+ setup_bps bpnum1 bpnum2
- with_test_prefix "before run" {
- check_bp_locations $bpnum1 {y N* N*} "a == 10"
- check_bp_locations $bpnum2 {N* N* y} "c == 30"
+ with_test_prefix "after creating b/p" {
+ check_bp_locations $bpnum1 {y N* N*} "aaa == 10"
+ check_bp_locations $bpnum2 {N* N* y} "ccc == 30"
}
- # Do not use runto_main, it deletes all breakpoints.
- gdb_run_cmd
+ if { !$start_before } {
+ if {![runto_main temporary no-delete-breakpoints]} {
+ return
+ }
+ }
# Check that we hit enabled locations only.
- gdb_test "" ".*Breakpoint $bkptno_num_re, A::func .*" \
+ gdb_test "continue" ".*Breakpoint $bkptno_num_re, A::func .*" \
"run until A::func"
- gdb_test "print a" " = 10"
+ gdb_test "print aaa" " = 10"
gdb_test "continue" "Continuing.*Breakpoint $bkptno_num_re, C::func .*" \
"run until C::func"
- gdb_test "print c" " = 30"
+ gdb_test "print ccc" " = 30"
# No more hits!
gdb_continue_to_end
with_test_prefix "after run" {
- check_bp_locations $bpnum1 {y N* N*} "a == 10"
- check_bp_locations $bpnum2 {N* N* y} "c == 30"
+ check_bp_locations $bpnum1 {y N* N*} "aaa == 10"
+ check_bp_locations $bpnum2 {N* N* y} "ccc == 30"
}
}
# Scenario 3: Apply misc. checks on the already-defined breakpoints.
+#
+# When START_BEFORE is true we create the breakpoints after running to
+# main. When START_BEFORE is false we create the breakpoints after
+# starting GDB, but before running to main.
+
+proc_with_prefix scenario_3 { start_before } {
+ global binfile bkptno_num_re loc_index warning
+
+ clean_restart ${binfile}
-with_test_prefix "scenario 3" {
- setup_bps
+ if { $start_before } {
+ if {![runto_main temporary]} {
+ return
+ }
+ }
+
+ setup_bps bpnum1 bpnum2
set locs [lsort -integer "$loc_index(Base) $loc_index(A)"]
- gdb_test "cond $bpnum1 c == 30" \
+ gdb_test "cond $bpnum1 ccc == 30" \
[multi_line \
"${warning} at location ${bpnum1}.[lindex $locs 0], disabling:" \
- " No symbol \"c\" in current context." \
+ " No symbol \"ccc\" in current context." \
"${warning} at location ${bpnum1}.[lindex $locs 1], disabling:" \
- " No symbol \"c\" in current context." \
+ " No symbol \"ccc\" in current context." \
"Breakpoint ${bpnum1}'s condition is now valid at location $loc_index(C), enabling."] \
"change the condition of bp 1"
- check_bp_locations $bpnum1 {N* N* y} "c == 30" "after changing the condition"
+ check_bp_locations $bpnum1 {N* N* y} "ccc == 30" "after changing the condition"
gdb_test "cond $bpnum1" \
[multi_line \
@@ -254,7 +320,7 @@ with_test_prefix "scenario 3" {
check_bp_locations $bpnum1 {y y y} "" "after resetting the condition"
gdb_test_no_output "disable ${bpnum2}.$loc_index(A)"
- check_bp_locations $bpnum2 {N* N* y} "c == 30" "after disabling loc for A"
+ check_bp_locations $bpnum2 {N* N* y} "ccc == 30" "after disabling loc for A"
gdb_test "cond $bpnum2" ".*" "reset the condition of bp 2"
check_bp_locations $bpnum2 {n y y} "" "loc for A should remain disabled"
@@ -262,17 +328,17 @@ with_test_prefix "scenario 3" {
gdb_test_no_output "disable ${bpnum2}.$loc_index(C)"
check_bp_locations $bpnum2 {n y n} "" "after disabling loc for C"
- gdb_test "cond $bpnum2 c == 30" \
+ gdb_test "cond $bpnum2 ccc == 30" \
[multi_line \
"${warning} at location ${bpnum2}.$loc_index(Base), disabling:" \
- " No symbol \"c\" in current context."] \
+ " No symbol \"ccc\" in current context."] \
"re-define a condition"
- check_bp_locations $bpnum2 {N* N* n} "c == 30" "loc for C should remain disabled"
+ check_bp_locations $bpnum2 {N* N* n} "ccc == 30" "loc for C should remain disabled"
gdb_test "enable ${bpnum2}.$loc_index(Base)" \
"Breakpoint ${bpnum2}'s condition is invalid at location $loc_index(Base), cannot enable." \
"reject enabling a location that is disabled-by-cond"
- check_bp_locations $bpnum2 {N* N* n} "c == 30" "after enable attempt"
+ check_bp_locations $bpnum2 {N* N* n} "ccc == 30" "after enable attempt"
gdb_test "cond $bpnum2 garbage" \
"No symbol \"garbage\" in current context." \
@@ -281,19 +347,34 @@ with_test_prefix "scenario 3" {
gdb_test_no_output "delete $bpnum1"
# Do not use runto_main, it deletes all breakpoints.
- gdb_breakpoint "main"
- gdb_run_cmd
- gdb_test "" ".*reakpoint .*, main .*${srcfile}.*" "start"
+ if { !$start_before } {
+ if {![runto_main temporary no-delete-breakpoints]} {
+ return
+ }
+ }
# The second BP's locations are all disabled. No more hits!
gdb_continue_to_end
}
# Scenario 4: Test the '-force'/'-force-condition' flag.
+#
+# When START_BEFORE is true we create the breakpoints after running to
+# main. When START_BEFORE is false we create the breakpoints after
+# starting GDB, but before running to main, in fact we don't even
+# bother with a run to main in this case.
+
+proc_with_prefix scenario_4 { start_before } {
+ global binfile bkptno_num_re loc_index warning
-with_test_prefix "force" {
clean_restart ${binfile}
+ if { $start_before } {
+ if {![runto_main temporary]} {
+ return
+ }
+ }
+
gdb_breakpoint "func"
# Pick a condition that is invalid at every location.
set bpnum1 [get_integer_valueof "\$bpnum" 0 "get bpnum1"]
@@ -313,3 +394,15 @@ with_test_prefix "force" {
set bpnum2 [get_integer_valueof "\$bpnum" 0 "get bpnum2"]
check_bp_locations $bpnum2 {N* N* N*} "baz" "set using the break command"
}
+
+# Some initial setup. Needed for most of the different scenarios
+# below.
+find_location_contexts
+
+# Now run all of the separate scenarios.
+foreach_with_prefix start_before { true false } {
+ scenario_1 $start_before
+ scenario_2 $start_before
+ scenario_3 $start_before
+ scenario_4 $start_before
+}
diff --git a/gdb/testsuite/gdb.base/condbreak.exp b/gdb/testsuite/gdb.base/condbreak.exp
index 1f07bb5..81b1a36 100644
--- a/gdb/testsuite/gdb.base/condbreak.exp
+++ b/gdb/testsuite/gdb.base/condbreak.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/consecutive-step-over.c b/gdb/testsuite/gdb.base/consecutive-step-over.c
index e5dab4a..747b608 100644
--- a/gdb/testsuite/gdb.base/consecutive-step-over.c
+++ b/gdb/testsuite/gdb.base/consecutive-step-over.c
@@ -1,4 +1,4 @@
-/* Copyright 2014-2024 Free Software Foundation, Inc.
+/* Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/consecutive-step-over.exp b/gdb/testsuite/gdb.base/consecutive-step-over.exp
index 9da35df..1116478 100644
--- a/gdb/testsuite/gdb.base/consecutive-step-over.exp
+++ b/gdb/testsuite/gdb.base/consecutive-step-over.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/consecutive.exp b/gdb/testsuite/gdb.base/consecutive.exp
index 5ea146c..e73b3c3 100644
--- a/gdb/testsuite/gdb.base/consecutive.exp
+++ b/gdb/testsuite/gdb.base/consecutive.exp
@@ -1,4 +1,4 @@
-# Copyright 2001-2024 Free Software Foundation, Inc.
+# Copyright 2001-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/constvars.exp b/gdb/testsuite/gdb.base/constvars.exp
index 05085b7..8f55945 100644
--- a/gdb/testsuite/gdb.base/constvars.exp
+++ b/gdb/testsuite/gdb.base/constvars.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/continue-after-aborted-step-over.c b/gdb/testsuite/gdb.base/continue-after-aborted-step-over.c
index c5b670f..0701df3 100644
--- a/gdb/testsuite/gdb.base/continue-after-aborted-step-over.c
+++ b/gdb/testsuite/gdb.base/continue-after-aborted-step-over.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/continue-after-aborted-step-over.exp b/gdb/testsuite/gdb.base/continue-after-aborted-step-over.exp
index d586135..4764d72 100644
--- a/gdb/testsuite/gdb.base/continue-after-aborted-step-over.exp
+++ b/gdb/testsuite/gdb.base/continue-after-aborted-step-over.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/continue-all-already-running.c b/gdb/testsuite/gdb.base/continue-all-already-running.c
index f6683c0..2f67835 100644
--- a/gdb/testsuite/gdb.base/continue-all-already-running.c
+++ b/gdb/testsuite/gdb.base/continue-all-already-running.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/continue-all-already-running.exp b/gdb/testsuite/gdb.base/continue-all-already-running.exp
index 993c15c..5d59f8d 100644
--- a/gdb/testsuite/gdb.base/continue-all-already-running.exp
+++ b/gdb/testsuite/gdb.base/continue-all-already-running.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/coredump-filter-build-id.exp b/gdb/testsuite/gdb.base/coredump-filter-build-id.exp
index cddacce..eb5b489 100644
--- a/gdb/testsuite/gdb.base/coredump-filter-build-id.exp
+++ b/gdb/testsuite/gdb.base/coredump-filter-build-id.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -28,7 +28,7 @@ if { ![istarget *-*-linux*] } {
untested "$testfile.exp"
return -1
}
-require is_x86_64_m64_target
+require is_x86_64_m64_target gcore_cmd_available
if { [prepare_for_testing "failed to prepare" $testfile $srcfile {debug build-id}] } {
return -1
diff --git a/gdb/testsuite/gdb.base/coredump-filter.c b/gdb/testsuite/gdb.base/coredump-filter.c
index e11a706..63a5ca0 100644
--- a/gdb/testsuite/gdb.base/coredump-filter.c
+++ b/gdb/testsuite/gdb.base/coredump-filter.c
@@ -1,4 +1,4 @@
-/* Copyright 2015-2024 Free Software Foundation, Inc.
+/* Copyright 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/coredump-filter.exp b/gdb/testsuite/gdb.base/coredump-filter.exp
index 18c3505..9d99b96 100644
--- a/gdb/testsuite/gdb.base/coredump-filter.exp
+++ b/gdb/testsuite/gdb.base/coredump-filter.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/corefile-buildid-shlib-shr.c b/gdb/testsuite/gdb.base/corefile-buildid-shlib-shr.c
index 7c46479..7ab63bd 100644
--- a/gdb/testsuite/gdb.base/corefile-buildid-shlib-shr.c
+++ b/gdb/testsuite/gdb.base/corefile-buildid-shlib-shr.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/corefile-buildid-shlib.c b/gdb/testsuite/gdb.base/corefile-buildid-shlib.c
index c01f829..e2b3af9 100644
--- a/gdb/testsuite/gdb.base/corefile-buildid-shlib.c
+++ b/gdb/testsuite/gdb.base/corefile-buildid-shlib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/corefile-buildid.c b/gdb/testsuite/gdb.base/corefile-buildid.c
index fe76957..69ccd97 100644
--- a/gdb/testsuite/gdb.base/corefile-buildid.c
+++ b/gdb/testsuite/gdb.base/corefile-buildid.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/corefile-buildid.exp b/gdb/testsuite/gdb.base/corefile-buildid.exp
index 377ae80..88d989d 100644
--- a/gdb/testsuite/gdb.base/corefile-buildid.exp
+++ b/gdb/testsuite/gdb.base/corefile-buildid.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/corefile-exec-context.c b/gdb/testsuite/gdb.base/corefile-exec-context.c
index ed4df60..6f5f29c 100644
--- a/gdb/testsuite/gdb.base/corefile-exec-context.c
+++ b/gdb/testsuite/gdb.base/corefile-exec-context.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/corefile-exec-context.exp b/gdb/testsuite/gdb.base/corefile-exec-context.exp
index d6d4c0d..7c9647c 100644
--- a/gdb/testsuite/gdb.base/corefile-exec-context.exp
+++ b/gdb/testsuite/gdb.base/corefile-exec-context.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -108,7 +108,7 @@ gdb_test_multiple "up" "move up to main" {
pass $gdb_test_name
}
- -re -wrap "#$decimal\\s+\[^\r\n\]+ in .*" {
+ -re -wrap "#$decimal\\s+\[^\r\n\]+ (in|at) .*" {
send_gdb "up\n"
exp_continue
}
diff --git a/gdb/testsuite/gdb.base/corefile-find-exec.c b/gdb/testsuite/gdb.base/corefile-find-exec.c
index ed4df60..6f5f29c 100644
--- a/gdb/testsuite/gdb.base/corefile-find-exec.c
+++ b/gdb/testsuite/gdb.base/corefile-find-exec.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/corefile-find-exec.exp b/gdb/testsuite/gdb.base/corefile-find-exec.exp
index 07e660d..0daabc8 100644
--- a/gdb/testsuite/gdb.base/corefile-find-exec.exp
+++ b/gdb/testsuite/gdb.base/corefile-find-exec.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/corefile-shmem-zero-id-lib.c b/gdb/testsuite/gdb.base/corefile-shmem-zero-id-lib.c
new file mode 100644
index 0000000..58fdec6
--- /dev/null
+++ b/gdb/testsuite/gdb.base/corefile-shmem-zero-id-lib.c
@@ -0,0 +1,522 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+/* This file contains a library that can be preloaded into GDB on Linux
+ using the LD_PRELOAD technique.
+
+ The library intercepts calls to OPEN, CLOSE, READ, and PREAD in order to
+ fake the inode number of a shared memory mapping.
+
+ When GDB creates a core file (e.g. with the 'gcore' command), then
+ shared memory mappings should be included in the generated core file.
+
+ The 'id' for the shared memory mapping shares the inode slot in the
+ /proc/PID/smaps file, which is what GDB consults to decide which
+ mappings should be included in the core file.
+
+ It is possible for a shared memory mapping to have an 'id' of zero.
+
+ At one point there was a bug in GDB where mappings with an inode of zero
+ would not be included in the generated core file. This meant that most
+ shared memory mappings would be included in the generated core file,
+ but, if a shared memory mapping happened to get an 'id' of zero, then,
+ because this would appear as a zero inode in the smaps file, this shared
+ memory mapping would be excluded from the generated core file.
+
+ This preload library spots when GDB opens a /proc/PID/smaps file and
+ immediately copies the contents of this file into an internal buffer.
+ The buffer is then scanned looking for a shared memory mapping, and, if
+ a shared memory mapping is found, its 'id' (in the inode position) is
+ changed to zero.
+
+ Calls to read/pread are intercepted, and attempts to read from the smaps
+ file are then served from the modified buffer contents.
+
+ The close calls are monitored and, when the smaps file is closed, the
+ internal buffer is released.
+
+ This works with GDB (currently) because the requirements for access to
+ the smaps file are pretty simple. GDB opens the file and grabs the
+ entire contents with a single pread call and a large buffer. There's no
+ seeking within the file or anything like that.
+
+ The intention is that this library is preloaded into a GDB session which
+ is then used to start an inferior and generate a core file. GDB will
+ then see the zero inode for the shared memory mapping and should, if the
+ bug is correctly fixed, still add the shared memory mapping to the
+ generated core file. */
+
+#define _GNU_SOURCE
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <dlfcn.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <stdarg.h>
+#include <errno.h>
+#include <ctype.h>
+#include <string.h>
+#include <stdbool.h>
+#include <assert.h>
+
+/* Logging. */
+
+static void
+log_msg (const char *fmt, ...)
+{
+#ifdef LOGGING
+ va_list ap;
+
+ va_start (ap, fmt);
+ vfprintf (stderr, fmt, ap);
+ va_end (ap);
+#endif /* LOGGING */
+}
+
+/* Error handling, message and exit. */
+
+static void
+error (const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start (ap, fmt);
+ vfprintf (stderr, fmt, ap);
+ va_end (ap);
+
+ exit (EXIT_FAILURE);
+}
+
+/* The type of the open() function. */
+typedef int (*open_func_type)(const char *pathname, int flags, ...);
+
+/* The type of the close() function. */
+typedef int (*close_func_type)(int fd);
+
+/* The type of the read() function. */
+typedef ssize_t (*read_func_type)(int fd, void *buf, size_t count);
+
+/* The type of the pread() function. */
+typedef ssize_t (*pread_func_type) (int fd, void *buf, size_t count, off_t offset);
+
+/* Structure that holds information about a /proc/PID/smaps file that has
+ been opened. */
+struct interesting_file
+{
+ /* The file descriptor for the opened file. */
+ int fd;
+
+ /* The read offset within the file. Set to zero when the file is
+ opened. Any 'read' calls will update this offset. */
+ size_t offset;
+
+ /* The size of the contents within the buffer. This is not the total
+ buffer size (which might be larger). Attempts to read beyond SIZE
+ indicate an attempt to read beyond the end of the file. */
+ size_t size;
+
+ /* The (possibly modified) contents of the file. */
+ char *content;
+};
+
+/* We only track a single interesting file. Currently, for the use case
+ we imagine, GDB will only ever open one /proc/PID/smaps file at once. */
+struct interesting_file the_file = { -1, 0, 0, NULL };
+
+/* Update the contents of the global THE_FILE buffer. It is assumed that
+ the file contents have already been loaded into THE_FILE's content
+ buffer.
+
+ Look for any lines that represent a shared memory mapping and modify
+ the inode field (which holds the shared memory id) to be zero. */
+static void
+update_file_content_buffer (void)
+{
+ assert (the_file.content != NULL);
+
+ char *start = the_file.content;
+ do
+ {
+ /* Every line, even the last one, ends with a newline. */
+ char *end = strchrnul (start, '\n');
+ assert (end != NULL);
+ assert (*end != '\0');
+
+ /* Attribute lines start with an uppercase letter. The lines we want
+ to modify should start with a lower case hex character,
+ i.e. [0-9a-f]. Also, every line that we want to consider should
+ be long enough, but just in case, check the longest possible
+ filename that we care about. */
+ if (isxdigit (*start) && (isdigit (*start) || islower (*start))
+ && (end - start) > 23)
+ {
+ /* There are two possible filenames that we look for:
+ /SYSV%08x
+ /SYSV%08x (deleted)
+ The END pointer is pointing to the first character after the
+ filename.
+
+ Setup OFFSET to be the offset from END to the start of the
+ filename. As we check the filename we set OFFSET to 0 if the
+ filename doesn't match one of the expected patterns. */
+ size_t offset;
+ if (strncmp ((end - 13), "/SYSV", 5) == 0)
+ offset = 13;
+ else if (strncmp ((end - 23), "/SYSV", 5) == 0)
+ {
+ if (strncmp ((end - 10), " (deleted)", 10) == 0)
+ offset = 23;
+ else
+ offset = 0;
+ }
+ else
+ offset = 0;
+
+ for (int i = 0; i < 8 && offset != 0; ++i)
+ {
+ if (!isdigit (*(end - offset + 5 + i)))
+ offset = 0;
+ }
+
+ /* If OFFSET is non-zero then the filename on this line looks
+ like a shared memory mapping, and OFFSET is the offset from
+ END to the first character of the filename. */
+ if (offset != 0)
+ {
+ log_msg ("[LD_PRELOAD] shared memory entry: %.*s\n",
+ offset, (end - offset));
+
+ /* Set PTR to the first character before the filename. This
+ should be a white space character. */
+ char *ptr = end - offset - 1;
+ assert (isspace (*ptr));
+
+ /* Walk backwards until we find the inode field. */
+ while (isspace (*ptr))
+ --ptr;
+
+ /* Now replace every character in the inode field, except the
+ first one, with a space character. */
+ while (!isspace (*(ptr - 1)))
+ {
+ assert (isdigit (*ptr));
+ *ptr = ' ';
+ --ptr;
+ }
+
+ /* Replace the first character with '0'. */
+ assert (isdigit (*ptr));
+ *ptr = '0';
+
+ /* This print is checked for from GDB. */
+ printf ("[LD_PRELOAD] updated a shared memory mapping\n");
+ }
+ }
+
+ /* Update START to point to the next line. The last line of the
+ file will be empty. */
+ assert (*end == '\n');
+ start = end;
+ while (*start == '\n')
+ ++start;
+ }
+ while (*start != '\0');
+}
+
+/* Return true if PATHNAME has for form "/proc/PID/smaps" (without the
+ quotes). Otherwise, return false. */
+
+static bool
+is_smaps_file (const char *pathname)
+{
+ if (strncmp (pathname, "/proc/", 6) == 0)
+ {
+ int idx = 6;
+ while (isdigit (pathname[idx]))
+ idx++;
+ if (idx > 6 && strcmp (&pathname[idx], "/smaps") == 0)
+ return true;
+ }
+
+ return false;
+}
+
+/* Return true if PATHNAME should be considered interesting. PATHNAME is
+ interesting if it has the form /proc/PID/smaps, and there is no
+ interesting file already opened. */
+
+static bool
+is_interesting_pathname (const char *pathname)
+{
+ return the_file.fd == -1 && is_smaps_file (pathname);
+}
+
+/* Read the contents of an interesting file from FD (and open file
+ descriptor) into the global THE_FILE variable, making the file FD the
+ current interesting file. There should be no already open interesting
+ file when this function is called.
+
+ The contents of the file FD are read into a memory buffer and updated so
+ that any shared memory mappings listed within FD (which will be an smaps
+ file) will have the id zero. */
+
+static void
+read_interesting_file_contents (int fd)
+{
+#define BLOCK_SIZE 1024
+ /* Slurp contents into a local buffer. */
+ size_t buffer_size = 1024;
+ size_t offset = 0;
+
+ assert (the_file.size == 0);
+ assert (the_file.content == NULL);
+ assert (the_file.fd == -1);
+ assert (the_file.offset == 0);
+
+ do
+ {
+ the_file.content = (char *) realloc (the_file.content, buffer_size);
+ if (the_file.content == NULL)
+ error ("[LD_PRELOAD] Failed allocating memory: %s\n", strerror (errno));
+
+ ssize_t bytes_read = read (fd, the_file.content + offset, BLOCK_SIZE);
+ if (bytes_read == -1)
+ error ("[LD_PRELOAD] Failed reading file: %s\n", strerror (errno));
+
+ the_file.size += bytes_read;
+
+ if (bytes_read < BLOCK_SIZE)
+ break;
+
+ offset += BLOCK_SIZE;
+ buffer_size += BLOCK_SIZE;
+ }
+ while (true);
+
+ /* Add a null terminator. This makes the update easier. We know
+ there will be space because we only break out of the loop above
+ when the last read returns less than BLOCK_SIZE bytes. This means
+ we allocated an extra BLOCK_SIZE bytes, but didn't fill them all.
+ This means there must be at least 1 byte available for the null. */
+ the_file.content[the_file.size] = '\0';
+
+ /* Reset the seek pointer. */
+ if (lseek (fd, 0, SEEK_SET) == (off_t) -1)
+ error ("[LD_PRELOAD] Failed to lseek in file: %s\n", strerror (errno));
+
+ /* Record the file descriptor, this is used in read, pread, and close
+ in order to spot when we need to intercept the call. */
+ the_file.fd = fd;
+
+ update_file_content_buffer ();
+#undef BLOCK_SIZE
+}
+
+/* Intercept calls to 'open'. If this is an attempt to open a
+ /proc/PID/smaps file then intercept it, load the file contents into a
+ buffer and update the file contents. For all other open requests, just
+ forward to the real open function. */
+int
+open (const char *pathname, int flags, ...)
+{
+ /* Pointer to the real open function. */
+ static open_func_type real_open = NULL;
+
+ /* Mode is only used if the O_CREAT flag is set in FLAGS. */
+ mode_t mode = 0;
+
+ /* Set true if this is a /proc/PID/smaps file. */
+ bool is_interesting = is_interesting_pathname (pathname);
+
+ /* Check if O_CREAT is in flags. If it is, get the mode. */
+ if (flags & O_CREAT)
+ {
+ va_list args;
+ va_start (args, flags);
+ mode = va_arg (args, mode_t);
+ va_end (args);
+ }
+
+ /* Debug. */
+ if (is_interesting)
+ log_msg ("[LD_PRELOAD] Opening file: %s\n", pathname);
+
+ /* Make sure we have a pointer to the real open() function. */
+ if (real_open == NULL)
+ {
+ /* Get the address of the real open() function. */
+ real_open = (open_func_type) dlsym (RTLD_NEXT, "open");
+ if (real_open == NULL)
+ error ("[LD_PRELOAD] dlsym() error for 'open': %s\n", dlerror ());
+ }
+
+ /* Call the original open() function with the provided arguments. */
+ int res = -1;
+ if (flags & O_CREAT)
+ res = real_open (pathname, flags, mode);
+ else
+ res = real_open (pathname, flags);
+
+ if (res != -1 && is_interesting)
+ read_interesting_file_contents (res);
+
+ return res;
+}
+
+/* Like above, but for open64. */
+
+int
+open64 (const char *pathname, int flags, ...)
+{
+ /* Pointer to the real open64 function. */
+ static open_func_type real_open64 = NULL;
+
+ /* Mode is only used if the O_CREAT flag is set in FLAGS. */
+ mode_t mode = 0;
+
+ /* Set true if this is a /proc/PID/smaps file. */
+ bool is_interesting = is_interesting_pathname (pathname);
+
+ /* Check if O_CREAT is in flags. If it is, get the mode. */
+ if (flags & O_CREAT)
+ {
+ va_list args;
+ va_start (args, flags);
+ mode = va_arg (args, mode_t);
+ va_end (args);
+ }
+
+ /* Debug. */
+ if (is_interesting)
+ log_msg ("[LD_PRELOAD] Opening file: %s\n", pathname);
+
+ /* Make sure we have a pointer to the real open64() function. */
+ if (real_open64 == NULL)
+ {
+ /* Get the address of the real open64() function. */
+ real_open64 = (open_func_type) dlsym (RTLD_NEXT, "open64");
+ if (real_open64 == NULL)
+ error ("[LD_PRELOAD] dlsym() error for 'open64': %s\n", dlerror ());
+ }
+
+ /* Call the original open64() function with the provided arguments. */
+ int res = -1;
+ if (flags & O_CREAT)
+ res = real_open64 (pathname, flags, mode);
+ else
+ res = real_open64 (pathname, flags);
+
+ if (res != -1 && is_interesting)
+ read_interesting_file_contents (res);
+
+ return res;
+}
+
+/* Intercept the 'close' function. If this is a previously opened
+ interesting file then clean up. Otherwise, forward to the normal close
+ function. */
+int
+close (int fd)
+{
+ static close_func_type real_close = NULL;
+
+ if (fd == the_file.fd)
+ {
+ the_file.fd = -1;
+ free (the_file.content);
+ the_file.content = NULL;
+ the_file.offset = 0;
+ the_file.size = 0;
+ log_msg ("[LD_PRELOAD] Closing file.\n");
+ }
+
+ /* Make sure we have a pointer to the real open() function. */
+ if (real_close == NULL)
+ {
+ /* Get the address of the real open() function. */
+ real_close = (close_func_type) dlsym (RTLD_NEXT, "close");
+ if (real_close == NULL)
+ error ("[LD_PRELOAD] dlsym() error for 'close': %s\n", dlerror ());
+ }
+
+ return real_close (fd);
+}
+
+/* Intercept 'pread' calls. If this is a pread from a previously opened
+ interesting file, then read from the in memory buffer. Otherwise,
+ forward to the real pread function. */
+ssize_t
+pread (int fd, void *buf, size_t count, off_t offset)
+{
+ static pread_func_type real_pread = NULL;
+
+ if (fd == the_file.fd)
+ {
+ size_t max;
+
+ if (offset > the_file.size)
+ max = 0;
+ else
+ max = the_file.size - offset;
+ if (count > max)
+ count = max;
+
+ memcpy (buf, the_file.content + offset, count);
+ log_msg ("[LD_PRELOAD] Read from file.\n");
+ return count;
+ }
+
+ if (real_pread == NULL)
+ {
+ /* Get the address of the real read() function. */
+ real_pread = (pread_func_type) dlsym (RTLD_NEXT, "pread");
+ if (real_pread == NULL)
+ error ("[LD_PRELOAD] dlsym() error for 'pread': %s\n", dlerror ());
+ }
+
+ return real_pread (fd, buf, count, offset);
+}
+
+/* Intercept 'read' calls. If this is a read from a previously opened
+ interesting file, then read from the in memory buffer. Otherwise,
+ forward to the real read function. */
+ssize_t
+read (int fd, void *buf, size_t count)
+{
+ static read_func_type real_read = NULL;
+
+ if (fd == the_file.fd)
+ {
+ ssize_t bytes_read = pread (fd, buf, count, the_file.offset);
+ if (bytes_read > 0)
+ the_file.offset += bytes_read;
+ return bytes_read;
+ }
+
+ if (real_read == NULL)
+ {
+ /* Get the address of the real read() function. */
+ real_read = (read_func_type) dlsym (RTLD_NEXT, "read");
+ if (real_read == NULL)
+ error ("[LD_PRELOAD] dlsym() error for 'read': %s\n", dlerror ());
+ }
+
+ return real_read (fd, buf, count);
+}
diff --git a/gdb/testsuite/gdb.base/corefile-shmem-zero-id.c b/gdb/testsuite/gdb.base/corefile-shmem-zero-id.c
new file mode 100644
index 0000000..92d2edf
--- /dev/null
+++ b/gdb/testsuite/gdb.base/corefile-shmem-zero-id.c
@@ -0,0 +1,63 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include <sys/ipc.h>
+#include <sys/shm.h>
+#include <stdio.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <assert.h>
+#include <time.h>
+
+void
+breakpt (void)
+{
+ /* Nothing. */
+}
+
+int
+main (void)
+{
+ /* Create a shared memory mapping. */
+ int sid = shmget (IPC_PRIVATE, 0x1000, IPC_CREAT | IPC_EXCL | 0777);
+ if (sid == -1)
+ {
+ perror ("shmget");
+ exit (1);
+ }
+
+ /* Attach the shared memory mapping. */
+ void *addr = shmat (sid, NULL, SHM_RND);
+ if (addr == (void *) -1L)
+ {
+ perror ("shmat");
+ exit (1);
+ }
+
+ breakpt ();
+
+ /* Mark the shared memory mapping as deleted -- once the last user
+ has finished with it. */
+ if (shmctl (sid, IPC_RMID, NULL) != 0)
+ {
+ perror ("shmctl");
+ exit (1);
+ }
+
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.base/corefile-shmem-zero-id.exp b/gdb/testsuite/gdb.base/corefile-shmem-zero-id.exp
new file mode 100644
index 0000000..57c665e
--- /dev/null
+++ b/gdb/testsuite/gdb.base/corefile-shmem-zero-id.exp
@@ -0,0 +1,228 @@
+# Copyright 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# This test script tries to check GDB's ability to create a core file
+# (e.g. with 'gcore' command) when there's a shared memory mapping
+# with the id zero.
+#
+# Testing this case is hard. Older kernels don't even seem to give
+# out the shared memory id zero. And on new kernels you still cannot
+# guarantee to grab the zero id for testing; the id might be in use by
+# some other process, or the kernel might just not give out that id
+# for some other reason.
+#
+# To figure out which mappings to include in the core file, GDB reads
+# the /proc/PID/smaps file. There is a field in this file which for
+# file backed mappings, holds the inode of the file. But for shared
+# memory mappings this field holds the shared memory id. The problem
+# was that GDB would ignore any entry in /proc/PID/smaps with an inode
+# entry of zero, which would catch the shared memory mapping with a
+# zero id.
+#
+# There was an attempt to write a test which spammed out requests for
+# shared memory mappings and tried to find the one with id zero, but
+# this was still really unreliable.
+#
+# This test takes a different approach. We compile a library which we
+# preload into the GDB process. This library intercepts calls to
+# open, close, read, and pread, and watches for an attempt to open the
+# /proc/PID/smaps file.
+#
+# When we see that file being opened, we copy the file contents into a
+# memory buffer and modify the buffer so that the inode field for any
+# shared memory mappings is set to zero. We then intercept calls to
+# read and pread and return results from that in memory buffer.
+#
+# The test executable itself create a shared memory mapping (which
+# might have any id).
+#
+# GDB, with the pre-load library in place, start the inferior and then
+# uses the 'gcore' command to dump a core file. When GDB opens the
+# smaps file and reads from it, the preload library ensures that GDB
+# sees an inode of zero.
+#
+
+# This test only works on Linux
+require isnative
+require {!is_remote host}
+require {!is_remote target}
+require {istarget *-linux*}
+require gcore_cmd_available
+
+standard_testfile .c -lib.c
+
+set libfile ${testfile}-lib
+set libobj [standard_output_file ${libfile}.so]
+
+# Compile the preload library. We only get away with this as we
+# limit this test to running when ISNATIVE is true.
+if { [build_executable "build preload lib" $libobj $srcfile2 \
+ {debug shlib libs=-ldl}] == -1 } {
+ return
+}
+
+# Now compile the inferior executable.
+if {[build_executable "build executable" $testfile $srcfile] == -1} {
+ return
+}
+
+# Spawn GDB with LIBOBJ preloaded using LD_PRELOAD.
+save_vars { env(LD_PRELOAD) env(ASAN_OPTIONS) } {
+ if { ![info exists env(LD_PRELOAD) ]
+ || $env(LD_PRELOAD) == "" } {
+ set env(LD_PRELOAD) "$libobj"
+ } else {
+ append env(LD_PRELOAD) ":$libobj"
+ }
+
+ # Prevent address sanitizer error:
+ # 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.
+ append_environment_default ASAN_OPTIONS verify_asan_link_order 0
+
+ clean_restart $binfile
+
+ # Start GDB with the modified environment, this means that, when
+ # using remote targets, gdbserver will also use the preload
+ # library.
+ if {![runto_main]} {
+ return
+ }
+}
+
+gdb_breakpoint breakpt
+gdb_continue_to_breakpoint "run to breakpt"
+
+# Check the /proc/PID/smaps file itself. The call to 'cat' should
+# inherit the preload library, so should see the modified file
+# contents. Check that the shared memory mapping line has an id of
+# zero. This confirms that the preload library is working. If the
+# preload library breaks then we'll start seeing non-zero shared
+# memory ids, which always worked, so we'd never know that this test
+# is broken!
+#
+# This check ensures the test is working as expected.
+set shmem_line_count 0
+set fixup_line_count 0
+set inf_pid [get_inferior_pid]
+gdb_test_multiple "shell cat /proc/${inf_pid}/smaps" "check smaps" {
+ -re "^\\\[LD_PRELOAD\\\] updated a shared memory mapping\r\n" {
+ incr fixup_line_count
+ exp_continue
+ }
+ -re "^\[^\r\n\]+($decimal)\\s+/SYSV\[0-9\]{8}(?: \\(deleted\\))?\r\n" {
+ set id $expect_out(1,string)
+ if { $id == 0 } {
+ incr shmem_line_count
+ }
+ exp_continue
+ }
+ -re "^$gdb_prompt $" {
+ with_test_prefix $gdb_test_name {
+ gdb_assert { $shmem_line_count == 1 } \
+ "single shared memory mapping found"
+ gdb_assert { $fixup_line_count == 1 } \
+ "single fixup line found"
+ }
+ }
+ -re "^\[^\r\n\]+\r\n" {
+ exp_continue
+ }
+}
+
+# Now generate a core file. This will use the preload library to read
+# the smaps file. The code below is copied from 'proc gdb_gcore_cmd',
+# but we don't use that as we also look for a message that is printed
+# by the LD_PRELOAD library. This is an extra level of check that the
+# preload library is triggering when needed.
+set corefile [standard_output_file ${testfile}.core]
+set saw_ld_preload_msg false
+set saw_saved_msg false
+with_timeout_factor 3 {
+ gdb_test_multiple "gcore $corefile" "save core file" {
+ -re "^\\\[LD_PRELOAD\\\] updated a shared memory mapping\r\n" {
+ # GDB actually reads the smaps file multiple times when
+ # creating a core file, so we'll see multiple of these
+ # fixup lines.
+ set saw_ld_preload_msg true
+ exp_continue
+ }
+ -re "^Saved corefile \[^\r\n\]+\r\n" {
+ set saw_saved_msg true
+ exp_continue
+ }
+ -re "^$gdb_prompt $" {
+ with_test_prefix $gdb_test_name {
+ gdb_assert { $saw_saved_msg } \
+ "saw 'Saved corefile' message"
+
+ # If we're using a remote target then the message from
+ # the preload library will go to gdbservers stdout,
+ # not GDB's, so don't check for it.
+ if { [gdb_protocol_is_native] } {
+ gdb_assert { $saw_ld_preload_msg } \
+ "saw LD_PRELOAD message from library"
+ }
+ }
+ }
+ -re "^\[^\r\n\]*\r\n" {
+ exp_continue
+ }
+ }
+}
+
+# Restart GDB. This time we are _not_ using the preload library. We
+# no longer need it as we are only analysing the core file now.
+clean_restart $binfile
+
+# Load the core file.
+gdb_test "core-file $corefile" \
+ "Program terminated with signal SIGTRAP, Trace/breakpoint trap\\..*" \
+ "load core file"
+
+# Look through the mappings. We _should_ see the shared memory
+# mapping. We _should_not_ see any of the special '[blah]' style
+# mappings, e.g. [vdso], [vstack], [vsyscalls], etc.
+set saw_special_mapping false
+set saw_shmem_mapping false
+gdb_test_multiple "info proc mappings" "" {
+ -re "\r\nStart Addr\[^\r\n\]+File\\s*\r\n" {
+ exp_continue
+ }
+
+ -re "^$hex\\s+$hex\\s+$hex\\s+$hex\\s+\\\[\\S+\\\]\\s*\r\n" {
+ set saw_special_mapping true
+ exp_continue
+ }
+
+ -re "^$hex\\s+$hex\\s+$hex\\s+$hex\\s+/SYSV\[0-9\]+ \\(deleted\\)\\s*\r\n" {
+ set saw_shmem_mapping true
+ exp_continue
+ }
+
+ -re "^$hex\\s+$hex\\s+$hex\\s+$hex\[^\r\n\]*\r\n" {
+ exp_continue
+ }
+
+ -re "^$gdb_prompt $" {
+ with_test_prefix $gdb_test_name {
+ gdb_assert { $saw_shmem_mapping } \
+ "check shared memory mapping exists"
+ gdb_assert { !$saw_special_mapping } \
+ "check no special mappings added"
+ }
+ }
+}
diff --git a/gdb/testsuite/gdb.base/corefile.exp b/gdb/testsuite/gdb.base/corefile.exp
index 83b42ab..da1fdf3 100644
--- a/gdb/testsuite/gdb.base/corefile.exp
+++ b/gdb/testsuite/gdb.base/corefile.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/corefile2.exp b/gdb/testsuite/gdb.base/corefile2.exp
index c0624f6..392705b 100644
--- a/gdb/testsuite/gdb.base/corefile2.exp
+++ b/gdb/testsuite/gdb.base/corefile2.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/corefile3.c b/gdb/testsuite/gdb.base/corefile3.c
new file mode 100644
index 0000000..16030dd
--- /dev/null
+++ b/gdb/testsuite/gdb.base/corefile3.c
@@ -0,0 +1,118 @@
+/* Copyright 1992-2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+/* This file is based on coremaker.c. */
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <fcntl.h>
+#include <sys/mman.h>
+#include <signal.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+#include <assert.h>
+#include <sys/ipc.h>
+#include <sys/shm.h>
+
+#define MAPSIZE (8 * 1024)
+
+/* Global pointers so it's easier to access them from GDB. */
+
+char *rw_mapping = NULL;
+char *malloc_buffer = NULL;
+char *anon_mapping = NULL;
+char *shm_mapping = NULL;
+
+/* Create mappings within this process. */
+
+void
+mmapdata ()
+{
+ /* Allocate and initialize a buffer that will be used to write the file
+ that is later mapped in. */
+
+ malloc_buffer = (char *) malloc (MAPSIZE);
+ for (int j = 0; j < MAPSIZE; ++j)
+ malloc_buffer[j] = j;
+
+ /* Write the file to map in. */
+
+ int fd = open ("coremmap.data", O_CREAT | O_RDWR, 0666);
+ assert (fd != -1);
+ write (fd, malloc_buffer, MAPSIZE);
+
+ /* Now map the file into our address space as RW_MAPPING. */
+
+ rw_mapping
+ = (char *) mmap (0, MAPSIZE, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
+ assert (rw_mapping != (char *) MAP_FAILED);
+
+ /* Verify that the original data and the mapped data are identical. If
+ not, we'd rather fail now than when trying to access the mapped data
+ from the core file. */
+
+ for (int j = 0; j < MAPSIZE; ++j)
+ assert (malloc_buffer[j] == rw_mapping[j]);
+
+ /* Touch RW_MAPPING so the kernel writes it out into 'core'. */
+ rw_mapping[0] = malloc_buffer[0];
+
+ /* Create yet another region which is allocated, but not written to. */
+ anon_mapping = mmap (NULL, MAPSIZE, PROT_READ | PROT_WRITE,
+ MAP_ANONYMOUS | MAP_PRIVATE, -1, 0);
+ assert (anon_mapping != MAP_FAILED);
+
+ /* Create a shared memory mapping. */
+ int sid = shmget (IPC_PRIVATE, MAPSIZE, IPC_CREAT | IPC_EXCL | 0777);
+ assert (sid != -1);
+ shm_mapping = (char *) shmat (sid, NULL, 0);
+ int res = shmctl (sid, IPC_RMID, NULL);
+ assert (res == 0);
+ assert (shm_mapping != MAP_FAILED);
+}
+
+void
+func2 ()
+{
+#ifdef SA_FULLDUMP
+ /* Force a corefile that includes the data section for AIX. */
+ {
+ struct sigaction sa;
+
+ sigaction (SIGABRT, (struct sigaction *)0, &sa);
+ sa.sa_flags |= SA_FULLDUMP;
+ sigaction (SIGABRT, &sa, (struct sigaction *)0);
+ }
+#endif
+
+ abort ();
+}
+
+void
+func1 ()
+{
+ func2 ();
+}
+
+int
+main (void)
+{
+ mmapdata ();
+ func1 ();
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.base/corefile3.exp b/gdb/testsuite/gdb.base/corefile3.exp
new file mode 100644
index 0000000..57b2300
--- /dev/null
+++ b/gdb/testsuite/gdb.base/corefile3.exp
@@ -0,0 +1,71 @@
+# Copyright 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Create a core file with some mapped file regions, but ensure that
+# the the kernel should write the regions into the core file (e.g. r/w
+# file backed mapping).
+#
+# We then delete the file that backed the mapping and load the core
+# file into GDB.
+#
+# GDB shouldn't warn about the file being missing. It doesn't matter;
+# the file contents can all be found in the core file itself.
+
+require isnative
+require {!is_remote host}
+
+standard_testfile
+
+if {[build_executable $testfile.exp $testfile $srcfile] == -1} {
+ return
+}
+
+set corefile [core_find $binfile {}]
+if {$corefile == ""} {
+ return
+}
+
+# Move the coremap.data file out of the way, so it cannot be found
+# when we later load the core file into GDB. This file was generated
+# by the inferior as it was running.
+set data_filename \
+ [standard_output_file coredir.[getpid]/coremmap.data]
+set backup_filename \
+ [standard_output_file coredir.[getpid]/coremmap.data.backup]
+remote_exec host "mv ${data_filename} ${backup_filename}"
+
+clean_restart $binfile
+
+# Load the core file. The 'coremap.data' file cannot be found by GDB,
+# but all the mappings for that file are r/w and should be present in
+# the core file, so we shouldn't get any warnings from GDB about it.
+set warnings_seen 0
+gdb_test_multiple "core-file $corefile" "core-file command" {
+ -re "^warning: Can't open file \[^\r\n\]+ during file-backed mapping note processing\r\n" {
+ incr warnings_seen
+ exp_continue
+ }
+ -re "^$gdb_prompt $" {
+ gdb_assert { $warnings_seen == 0 } $gdb_test_name
+ }
+ -re "^\[^\r\n\]*\r\n" {
+ exp_continue
+ }
+}
+
+# Check the mappings are all readable.
+foreach label { rw_mapping malloc_buffer anon_mapping shm_mapping } {
+ gdb_test "x/1wd $label" "^$hex:\\s+$decimal"
+}
diff --git a/gdb/testsuite/gdb.base/coremaker.c b/gdb/testsuite/gdb.base/coremaker.c
index 5e19766..b73e659 100644
--- a/gdb/testsuite/gdb.base/coremaker.c
+++ b/gdb/testsuite/gdb.base/coremaker.c
@@ -1,4 +1,4 @@
-/* Copyright 1992-2024 Free Software Foundation, Inc.
+/* Copyright 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/coremaker2.c b/gdb/testsuite/gdb.base/coremaker2.c
index f9a1759..8cc3eeb 100644
--- a/gdb/testsuite/gdb.base/coremaker2.c
+++ b/gdb/testsuite/gdb.base/coremaker2.c
@@ -1,4 +1,4 @@
-/* Copyright 1992-2024 Free Software Foundation, Inc.
+/* Copyright 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/ctf-constvars.c b/gdb/testsuite/gdb.base/ctf-constvars.c
index 43d68a6..e484851 100644
--- a/gdb/testsuite/gdb.base/ctf-constvars.c
+++ b/gdb/testsuite/gdb.base/ctf-constvars.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/ctf-constvars.exp b/gdb/testsuite/gdb.base/ctf-constvars.exp
index ea3cc93..f38ee53 100644
--- a/gdb/testsuite/gdb.base/ctf-constvars.exp
+++ b/gdb/testsuite/gdb.base/ctf-constvars.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/ctf-ptype.c b/gdb/testsuite/gdb.base/ctf-ptype.c
index ca34789..3984cf3 100644
--- a/gdb/testsuite/gdb.base/ctf-ptype.c
+++ b/gdb/testsuite/gdb.base/ctf-ptype.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/ctf-ptype.exp b/gdb/testsuite/gdb.base/ctf-ptype.exp
index 25e31fc..3f9023f 100644
--- a/gdb/testsuite/gdb.base/ctf-ptype.exp
+++ b/gdb/testsuite/gdb.base/ctf-ptype.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/ctxobj-f.c b/gdb/testsuite/gdb.base/ctxobj-f.c
index d258e9f..e9884c4 100644
--- a/gdb/testsuite/gdb.base/ctxobj-f.c
+++ b/gdb/testsuite/gdb.base/ctxobj-f.c
@@ -1,5 +1,5 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/ctxobj-m.c b/gdb/testsuite/gdb.base/ctxobj-m.c
index f9fbfda..10475e1 100644
--- a/gdb/testsuite/gdb.base/ctxobj-m.c
+++ b/gdb/testsuite/gdb.base/ctxobj-m.c
@@ -1,5 +1,5 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/ctxobj-v.c b/gdb/testsuite/gdb.base/ctxobj-v.c
index 6e39d8d..f9f108c 100644
--- a/gdb/testsuite/gdb.base/ctxobj-v.c
+++ b/gdb/testsuite/gdb.base/ctxobj-v.c
@@ -1,5 +1,5 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/ctxobj.exp b/gdb/testsuite/gdb.base/ctxobj.exp
index d113718..1d03e0d 100644
--- a/gdb/testsuite/gdb.base/ctxobj.exp
+++ b/gdb/testsuite/gdb.base/ctxobj.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/cursal.c b/gdb/testsuite/gdb.base/cursal.c
index bc1e46f..a400503 100644
--- a/gdb/testsuite/gdb.base/cursal.c
+++ b/gdb/testsuite/gdb.base/cursal.c
@@ -1,4 +1,4 @@
-/* Copyright 2004-2024 Free Software Foundation, Inc.
+/* Copyright 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/cursal.exp b/gdb/testsuite/gdb.base/cursal.exp
index 6c1fe38..04a41bc 100644
--- a/gdb/testsuite/gdb.base/cursal.exp
+++ b/gdb/testsuite/gdb.base/cursal.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/cvexpr.c b/gdb/testsuite/gdb.base/cvexpr.c
index 35f259a..76703cc 100644
--- a/gdb/testsuite/gdb.base/cvexpr.c
+++ b/gdb/testsuite/gdb.base/cvexpr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2001-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/cvexpr.exp b/gdb/testsuite/gdb.base/cvexpr.exp
index 439bf71..3e527db 100644
--- a/gdb/testsuite/gdb.base/cvexpr.exp
+++ b/gdb/testsuite/gdb.base/cvexpr.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2024 Free Software Foundation, Inc.
+# Copyright (C) 2001-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dcache-flush.c b/gdb/testsuite/gdb.base/dcache-flush.c
index 5161709..cd18a88 100644
--- a/gdb/testsuite/gdb.base/dcache-flush.c
+++ b/gdb/testsuite/gdb.base/dcache-flush.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dcache-flush.exp b/gdb/testsuite/gdb.base/dcache-flush.exp
index 2d4def2..8e713f5 100644
--- a/gdb/testsuite/gdb.base/dcache-flush.exp
+++ b/gdb/testsuite/gdb.base/dcache-flush.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dcache-line-read-error.c b/gdb/testsuite/gdb.base/dcache-line-read-error.c
index 6feb201..d47b9d6 100644
--- a/gdb/testsuite/gdb.base/dcache-line-read-error.c
+++ b/gdb/testsuite/gdb.base/dcache-line-read-error.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dcache-line-read-error.exp b/gdb/testsuite/gdb.base/dcache-line-read-error.exp
index d10c3a4..bc8f47e 100644
--- a/gdb/testsuite/gdb.base/dcache-line-read-error.exp
+++ b/gdb/testsuite/gdb.base/dcache-line-read-error.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/debug-expr.exp b/gdb/testsuite/gdb.base/debug-expr.exp
index 838a2a5..f22af24 100644
--- a/gdb/testsuite/gdb.base/debug-expr.exp
+++ b/gdb/testsuite/gdb.base/debug-expr.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/debug-frame-2.c b/gdb/testsuite/gdb.base/debug-frame-2.c
index 571b140..9a284ec 100644
--- a/gdb/testsuite/gdb.base/debug-frame-2.c
+++ b/gdb/testsuite/gdb.base/debug-frame-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/debug-frame.c b/gdb/testsuite/gdb.base/debug-frame.c
index 629c309..9d419f7 100644
--- a/gdb/testsuite/gdb.base/debug-frame.c
+++ b/gdb/testsuite/gdb.base/debug-frame.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/debug-frame.exp b/gdb/testsuite/gdb.base/debug-frame.exp
index f928f19..b2b944d 100644
--- a/gdb/testsuite/gdb.base/debug-frame.exp
+++ b/gdb/testsuite/gdb.base/debug-frame.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/decl-before-def-decl.c b/gdb/testsuite/gdb.base/decl-before-def-decl.c
index 3b46366..507e595 100644
--- a/gdb/testsuite/gdb.base/decl-before-def-decl.c
+++ b/gdb/testsuite/gdb.base/decl-before-def-decl.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/decl-before-def-def.c b/gdb/testsuite/gdb.base/decl-before-def-def.c
index 1dda03b..29959b4 100644
--- a/gdb/testsuite/gdb.base/decl-before-def-def.c
+++ b/gdb/testsuite/gdb.base/decl-before-def-def.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/decl-before-def.exp b/gdb/testsuite/gdb.base/decl-before-def.exp
index 62e152e..4456929 100644
--- a/gdb/testsuite/gdb.base/decl-before-def.exp
+++ b/gdb/testsuite/gdb.base/decl-before-def.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/default-args.c b/gdb/testsuite/gdb.base/default-args.c
index eccdcfd..f78eb2a 100644
--- a/gdb/testsuite/gdb.base/default-args.c
+++ b/gdb/testsuite/gdb.base/default-args.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/default-args.exp b/gdb/testsuite/gdb.base/default-args.exp
index 1ddf682..efc4205 100644
--- a/gdb/testsuite/gdb.base/default-args.exp
+++ b/gdb/testsuite/gdb.base/default-args.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/default.exp b/gdb/testsuite/gdb.base/default.exp
index 93a6733..01e3cc1 100644
--- a/gdb/testsuite/gdb.base/default.exp
+++ b/gdb/testsuite/gdb.base/default.exp
@@ -1,4 +1,4 @@
-# Copyright 1988-2024 Free Software Foundation, Inc.
+# Copyright 1988-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -253,10 +253,39 @@ gdb_test "h" "List of classes of commands:(\[^\r\n\]*\[\r\n\])+aliases -- User-d
gdb_test "help" "List of classes of commands:(\[^\r\n\]*\[\r\n\])+aliases -- User-defined aliases of other commands(\[^\r\n\]*\[\r\n\])+breakpoints -- Making program stop at certain points(\[^\r\n\]*\[\r\n\])+data -- Examining data(\[^\r\n\]*\[\r\n\])+files -- Specifying and examining files(\[^\r\n\]*\[\r\n\])+obscure -- Obscure features(\[^\r\n\]*\[\r\n\])+running -- Running the program(\[^\r\n\]*\[\r\n\])+stack -- Examining the stack(\[^\r\n\]*\[\r\n\])+status -- Status inquiries(\[^\r\n\]*\[\r\n\])+support -- Support facilities(\[^\r\n\]*\[\r\n\])+user-defined -- User-defined commands(\[^\r\n\]*\[\r\n\])+Type \"help\" followed by a class name for a list of commands in that class.(\[^\r\n\]*\[\r\n\])+Type \"help\" followed by command name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous."
#test handle
gdb_test "handle" "Argument required .signal to handle.*"
-#test info "i" abbreviation
-gdb_test "i" "List of \"info\" subcommands:(\[^\r\n\]*\[\r\n\])+Type \"help info\" followed by subcommand name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous." "info \"i\" abbreviation"
+
+proc test_info_command { command message } {
+ set saw_info_header 0
+ set saw_help_info 0
+ set saw_command_abbrev 0
+ gdb_test_multiple $command $message -lbl {
+ -re "\r\nList of \"info\" subcommands:" {
+ verbose "Info header displayed"
+ set saw_info_header 1
+ exp_continue
+ }
+ -re "Type \"help info\" followed by subcommand name for full documentation\\." {
+ verbose "Help info displayed"
+ set saw_help_info 1
+ exp_continue
+ }
+ -re "\r\nCommand name abbreviations are allowed if unambiguous\\." {
+ verbose "Command name abbreviations displayed"
+ set saw_command_abbrev 1
+ exp_continue
+ }
+ -re -wrap "" {
+ gdb_assert { $saw_info_header && $saw_help_info
+ && $saw_command_abbrev } $gdb_test_name
+ }
+ }
+}
+
+#test info "i" abbreviation
+test_info_command "i" "info \"i\" abbreviation"
#test info
-gdb_test "info" "List of \"info\" subcommands:(\[^\r\n\]*\[\r\n\])+Type \"help info\" followed by subcommand name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous."
+test_info_command "info" "info"
+
#test ignore
gdb_test "ignore" "Argument required .a breakpoint number.*"
#test info address
@@ -379,38 +408,52 @@ gdb_test "info registers" "The program has no registers now."
gdb_test "info s" "No stack." "info stack \"s\" abbreviation"
#test info stack
gdb_test "info stack" "No stack."
-#test info set
-# Test improved to check three parts:
-# 1) confirm
-# 2) prompt
-# 3) write
-# And only succeed if all three are matched.
-# This should fix an old problem on native solaris 2.8,
-# where this test fails due to this line:
+
+#test "info set" and "show" commands
+# The test needs to match the "prompt: ..." part to fix an old problem on native
+# Solaris 2.8, where this test fails due to this line:
# prompt: Gdb's prompt is "(gdb) ".^M
-set set_confirm_seen 0
-set set_prompt_seen 0
-gdb_test_multiple "info set" "info set" {
- -re "confirm: Whether to confirm potentially dangerous operations is o\[a-z\]*.(\[^\r\n\]*\[\r\n\])+history filename: The filename in which to record the command history is (\[^\r\n\]*\[\r\n\])+listsize: Number of source lines gdb will list by default is 10" {
- verbose "Confirm dislayed"
- set set_confirm_seen 1
- exp_continue
- }
- -re "Gdb's prompt is \"$gdb_prompt \"" {
- verbose "GDB prompt displayed"
- set set_prompt_seen 1
- exp_continue
- }
- -re "Writing into executable.*$gdb_prompt $" {
- verbose "write displayed"
- if { $set_prompt_seen && $set_confirm_seen } {
- pass "info set"
- } else {
- verbose "prompt $set_prompt_seen confirm $set_confirm_seen"
- fail "info set (incomplete output)"
+proc test_info_set_show { command } {
+ set set_confirm_seen 0
+ set set_history_filename_seen 0
+ set set_listsize_seen 0
+ set set_prompt_seen 0
+ set set_write_seen 0
+ gdb_test_multiple $command $command -lbl {
+ -re "\r\nconfirm: Whether to confirm potentially dangerous operations is o\[a-z\]+\\." {
+ verbose "Confirm displayed"
+ set set_confirm_seen 1
+ exp_continue
+ }
+ -re "\r\nhistory filename: The filename in which to record the command history is \[^\r\n\]+\\." {
+ verbose "History filename displayed"
+ set set_history_filename_seen 1
+ exp_continue
+ }
+ -re "\r\nlistsize: Number of source lines gdb will list by default is 10\\." {
+ verbose "Listsize displayed"
+ set set_listsize_seen 1
+ exp_continue
+ }
+ -re "\r\nprompt: Gdb's prompt is \"$::gdb_prompt \"" {
+ verbose "GDB prompt displayed"
+ set set_prompt_seen 1
+ exp_continue
+ }
+ -re "write: Writing into executable and core files is o\[a-z\]+\\." {
+ verbose "Write displayed"
+ set set_write_seen 1
+ exp_continue
+ }
+ -re -wrap "" {
+ gdb_assert { $set_confirm_seen && $set_history_filename_seen
+ && $set_listsize_seen && $set_prompt_seen
+ && $set_write_seen } $gdb_test_name
}
}
}
+test_info_set_show "info set"
+
gdb_test "info symbol" "Argument required .address.."
#test info source
gdb_test "info source" "No current source file..*"
@@ -591,12 +634,41 @@ gdb_test "set history" "List of \"set history\" subcommands:(\[^\r\n\]*\[\r\n\])
gdb_test "set language" "Requires an argument. Valid arguments are auto, local, unknown, ada, asm, c, c.., d, fortran, go, minimal, modula-2, objective-c, opencl, pascal, rust."
#test set listsize
gdb_test "set listsize" "Argument required .integer to set it to.*"
+
+proc test_set_print { command message } {
+ set saw_info_header 0
+ set saw_help_info 0
+ set saw_command_abbrev 0
+ gdb_test_multiple $command $message -lbl {
+ -re "\r\nList of \"set print\" subcommands:" {
+ verbose "Info header displayed"
+ set saw_info_header 1
+ exp_continue
+ }
+ -re "Type \"help set print\" followed by subcommand name for full documentation\\." {
+ verbose "Help info displayed"
+ set saw_help_info 1
+ exp_continue
+ }
+ -re "\r\nCommand name abbreviations are allowed if unambiguous\\." {
+ verbose "Command name abbreviations displayed"
+ set saw_command_abbrev 1
+ exp_continue
+ }
+ -re -wrap "" {
+ gdb_assert { $saw_info_header && $saw_help_info
+ && $saw_command_abbrev } $gdb_test_name
+ }
+ }
+}
+
#test set print "p" abbreviation
-gdb_test "set p" "List of \"set print\" subcommands:(\[^\r\n\]*\[\r\n\])+Type \"help set print\" followed by subcommand name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous." "set print \"p\" abbreviation"
+test_set_print "set p" "set print \"p\" abbreviation"
#test set print "pr" abbreviation
-gdb_test "set pr" "List of \"set print\" subcommands:(\[^\r\n\]*\[\r\n\])+Type \"help set print\" followed by subcommand name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous." "set print \"pr\" abbreviation"
+test_set_print "set pr" "set print \"pr\" abbreviation"
#test set print
-gdb_test "set print" "List of \"set print\" subcommands:(\[^\r\n\]*\[\r\n\])+Type \"help set print\" followed by subcommand name for full documentation.(\[^\r\n\]*\[\r\n\])+Command name abbreviations are allowed if unambiguous."
+test_set_print "set print" "set print"
+
#test set print address
gdb_test_no_output "set print address" "set print address"
#test set print array
@@ -699,6 +771,8 @@ set show_conv_list \
{$_gdb_minor = 1} \
{$_shell_exitsignal = void} \
{$_shell_exitcode = 0} \
+ {$_active_linker_namespaces = 1} \
+ {$_linker_namespace = <error: No registers.>}\
}
if [allow_python_tests] {
append show_conv_list \
@@ -739,12 +813,47 @@ gdb_test "show history" "history expansion: *History expansion on command input
gdb_test "show language" "The current source language is \"auto; currently c\"."
#test show listsize
gdb_test "show listsize" "Number of source lines gdb will list by default is 10."
+
+proc test_show_print { command } {
+ set saw_print_address 0
+ set saw_print_frame_args 0
+ set saw_print_symbol 0
+ set saw_print_vtbl 0
+ gdb_test_multiple $command $command -lbl {
+ -re "\r\nprint address: Printing of addresses is o\[a-z\]+\\." {
+ verbose "Print address displayed"
+ set saw_print_address 1
+ exp_continue
+ }
+ -re "\r\nprint frame-arguments: Printing of non-scalar frame arguments is \[^\r\n\]+\\." {
+ verbose "Print frame-arguments displayed"
+ set saw_print_frame_args 1
+ exp_continue
+ }
+ -re "\r\nprint symbol: Printing of symbols when printing pointers is o\[a-z\]+\\." {
+ verbose "Print symbol displayed"
+ set saw_print_symbol 1
+ exp_continue
+ }
+ -re "\r\nprint vtbl: Printing of C\\+\\+ virtual function tables is o\[a-z\]+\\." {
+ verbose "Print vtbl displayed"
+ set saw_print_vtbl 1
+ exp_continue
+ }
+ -re -wrap "" {
+ gdb_assert { $saw_print_address && $saw_print_frame_args
+ && $saw_print_symbol && $saw_print_vtbl } $gdb_test_name
+ }
+ }
+}
+
#test show print "p" abbreviation
-gdb_test "show p" ".*"
+test_show_print "show p"
#test show print "pr" abbreviation
-gdb_test "show pr" ".*"
+test_show_print "show pr"
#test show print
-gdb_test "show print" ".*"
+test_show_print "show print"
+
#test show paths
gdb_test "show paths" "Executable and object file path:.*"
#test show print address
@@ -790,30 +899,10 @@ gdb_test "show width" "Number of characters gdb thinks are in a line is.*"
#test show write
# This is only supported on targets which use exec.o.
gdb_test "show write" "Writing into executable and core files is o.*"
+
#test show
-set show_confirm_seen 0
-set show_prompt_seen 0
-gdb_test_multiple "show" "show" {
- -re "confirm: *Whether to confirm potentially dangerous operations is on.(\[^\r\n\]*\[\r\n\])+history filename: *The filename in which to record the command history is (\[^\r\n\]*\[\r\n\])+history save: *Saving of the history record on exit is on.(\[^\r\n\]*\[\r\n\])+history size: *The size of the command history is(\[^\r\n\]*\[\r\n\])+listsize: *Number of source lines gdb will list by default is 10(\[^\r\n]*\[\r\n\])+print elements: *Limit on string chars or array elements to print is 200." {
- verbose "Confirm displayed"
- set show_confirm_seen 1
- exp_continue
- }
- -re "Gdb's prompt is \"$gdb_prompt \"" {
- verbose "GDB prompt displayed"
- set show_prompt_seen 1
- exp_continue
- }
- -re "Writing into executable.*$gdb_prompt $" {
- verbose "write displayed"
- if { $show_prompt_seen && $show_confirm_seen } {
- pass "show"
- } else {
- verbose "prompt $show_prompt_seen confirm $show_confirm_seen"
- fail "show (incomplete output)"
- }
- }
-}
+test_info_set_show "show"
+
#history saving should stay disabled
gdb_test_no_output "set history save off" "set history save off"
#test stepi "si" abbreviation
diff --git a/gdb/testsuite/gdb.base/define-prefix.exp b/gdb/testsuite/gdb.base/define-prefix.exp
index 81d3a56..91f2211 100644
--- a/gdb/testsuite/gdb.base/define-prefix.exp
+++ b/gdb/testsuite/gdb.base/define-prefix.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/define.exp b/gdb/testsuite/gdb.base/define.exp
index 193eb7a..7dd6006 100644
--- a/gdb/testsuite/gdb.base/define.exp
+++ b/gdb/testsuite/gdb.base/define.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/del.c b/gdb/testsuite/gdb.base/del.c
index a567d94..c0ba6ac 100644
--- a/gdb/testsuite/gdb.base/del.c
+++ b/gdb/testsuite/gdb.base/del.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2006-2024 Free Software Foundation, Inc.
+ Copyright 2006-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/del.exp b/gdb/testsuite/gdb.base/del.exp
index 58937de..441e677 100644
--- a/gdb/testsuite/gdb.base/del.exp
+++ b/gdb/testsuite/gdb.base/del.exp
@@ -1,4 +1,4 @@
-# Copyright 2006-2024 Free Software Foundation, Inc.
+# Copyright 2006-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/detach-sysroot-target.c b/gdb/testsuite/gdb.base/detach-sysroot-target.c
index b1ce99c..a21818d 100644
--- a/gdb/testsuite/gdb.base/detach-sysroot-target.c
+++ b/gdb/testsuite/gdb.base/detach-sysroot-target.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/detach-sysroot-target.exp b/gdb/testsuite/gdb.base/detach-sysroot-target.exp
index d4374fa..4248c86 100644
--- a/gdb/testsuite/gdb.base/detach-sysroot-target.exp
+++ b/gdb/testsuite/gdb.base/detach-sysroot-target.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/detach-while-running.c b/gdb/testsuite/gdb.base/detach-while-running.c
index 9c038f4..5be97f4 100644
--- a/gdb/testsuite/gdb.base/detach-while-running.c
+++ b/gdb/testsuite/gdb.base/detach-while-running.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/detach-while-running.exp b/gdb/testsuite/gdb.base/detach-while-running.exp
index 4ce6c70..60943f3 100644
--- a/gdb/testsuite/gdb.base/detach-while-running.exp
+++ b/gdb/testsuite/gdb.base/detach-while-running.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/detach.exp b/gdb/testsuite/gdb.base/detach.exp
index 99c5bf1..f9f67a8 100644
--- a/gdb/testsuite/gdb.base/detach.exp
+++ b/gdb/testsuite/gdb.base/detach.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dfp-exprs.exp b/gdb/testsuite/gdb.base/dfp-exprs.exp
index 411e4ed..0a20cad 100644
--- a/gdb/testsuite/gdb.base/dfp-exprs.exp
+++ b/gdb/testsuite/gdb.base/dfp-exprs.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# Copyright (C) 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dfp-test.c b/gdb/testsuite/gdb.base/dfp-test.c
index 85a2ef9..aeb1f6b 100644
--- a/gdb/testsuite/gdb.base/dfp-test.c
+++ b/gdb/testsuite/gdb.base/dfp-test.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dfp-test.exp b/gdb/testsuite/gdb.base/dfp-test.exp
index c758e00..2a6c377 100644
--- a/gdb/testsuite/gdb.base/dfp-test.exp
+++ b/gdb/testsuite/gdb.base/dfp-test.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# Copyright (C) 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/disabled-location.c b/gdb/testsuite/gdb.base/disabled-location.c
index 0f07fe0..b89014d 100644
--- a/gdb/testsuite/gdb.base/disabled-location.c
+++ b/gdb/testsuite/gdb.base/disabled-location.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/disabled-location.exp b/gdb/testsuite/gdb.base/disabled-location.exp
index c8979df..d2b16f6 100644
--- a/gdb/testsuite/gdb.base/disabled-location.exp
+++ b/gdb/testsuite/gdb.base/disabled-location.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/disasm-end-cu-1.c b/gdb/testsuite/gdb.base/disasm-end-cu-1.c
index 7b8de8b..20c5017 100644
--- a/gdb/testsuite/gdb.base/disasm-end-cu-1.c
+++ b/gdb/testsuite/gdb.base/disasm-end-cu-1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/disasm-end-cu-2.c b/gdb/testsuite/gdb.base/disasm-end-cu-2.c
index e637d84..5857a52 100644
--- a/gdb/testsuite/gdb.base/disasm-end-cu-2.c
+++ b/gdb/testsuite/gdb.base/disasm-end-cu-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/disasm-end-cu.exp b/gdb/testsuite/gdb.base/disasm-end-cu.exp
index 6570b4c..d863e9f 100644
--- a/gdb/testsuite/gdb.base/disasm-end-cu.exp
+++ b/gdb/testsuite/gdb.base/disasm-end-cu.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/disasm-optim.S b/gdb/testsuite/gdb.base/disasm-optim.S
index caa39fe..b5202b0 100644
--- a/gdb/testsuite/gdb.base/disasm-optim.S
+++ b/gdb/testsuite/gdb.base/disasm-optim.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/disasm-optim.c b/gdb/testsuite/gdb.base/disasm-optim.c
index 68a626f..f672d97 100644
--- a/gdb/testsuite/gdb.base/disasm-optim.c
+++ b/gdb/testsuite/gdb.base/disasm-optim.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/disasm-optim.exp b/gdb/testsuite/gdb.base/disasm-optim.exp
index cded114..abb2a23 100644
--- a/gdb/testsuite/gdb.base/disasm-optim.exp
+++ b/gdb/testsuite/gdb.base/disasm-optim.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/disasm-optim.h b/gdb/testsuite/gdb.base/disasm-optim.h
index 321aa38..6009e5e 100644
--- a/gdb/testsuite/gdb.base/disasm-optim.h
+++ b/gdb/testsuite/gdb.base/disasm-optim.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/displaced-step-closure.c b/gdb/testsuite/gdb.base/displaced-step-closure.c
index 075b9ee..d45c14b 100644
--- a/gdb/testsuite/gdb.base/displaced-step-closure.c
+++ b/gdb/testsuite/gdb.base/displaced-step-closure.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/displaced-step-closure.exp b/gdb/testsuite/gdb.base/displaced-step-closure.exp
index 0929f29..0803e44 100644
--- a/gdb/testsuite/gdb.base/displaced-step-closure.exp
+++ b/gdb/testsuite/gdb.base/displaced-step-closure.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/display.exp b/gdb/testsuite/gdb.base/display.exp
index 9964c23..7aed6d5 100644
--- a/gdb/testsuite/gdb.base/display.exp
+++ b/gdb/testsuite/gdb.base/display.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dlmopen-lib-dep.c b/gdb/testsuite/gdb.base/dlmopen-lib-dep.c
index 1645f55..f981bea 100644
--- a/gdb/testsuite/gdb.base/dlmopen-lib-dep.c
+++ b/gdb/testsuite/gdb.base/dlmopen-lib-dep.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dlmopen-lib.c b/gdb/testsuite/gdb.base/dlmopen-lib.c
index 4ce9280..36ccbf02 100644
--- a/gdb/testsuite/gdb.base/dlmopen-lib.c
+++ b/gdb/testsuite/gdb.base/dlmopen-lib.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dlmopen-main.c b/gdb/testsuite/gdb.base/dlmopen-main.c
index 196d13a..cf82a69 100644
--- a/gdb/testsuite/gdb.base/dlmopen-main.c
+++ b/gdb/testsuite/gdb.base/dlmopen-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dlmopen-ns-ids-lib.c b/gdb/testsuite/gdb.base/dlmopen-ns-ids-lib.c
new file mode 100644
index 0000000..86cbb0f
--- /dev/null
+++ b/gdb/testsuite/gdb.base/dlmopen-ns-ids-lib.c
@@ -0,0 +1,28 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>.
+
+*/
+
+int gdb_dlmopen_glob = 0;
+
+__attribute__((visibility ("default")))
+int
+inc (int n)
+{
+ int amount = gdb_dlmopen_glob;
+ return n + amount; /* bp.inc. */
+}
diff --git a/gdb/testsuite/gdb.base/dlmopen-ns-ids-main.c b/gdb/testsuite/gdb.base/dlmopen-ns-ids-main.c
new file mode 100644
index 0000000..c7c038a
--- /dev/null
+++ b/gdb/testsuite/gdb.base/dlmopen-ns-ids-main.c
@@ -0,0 +1,60 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>.
+
+*/
+
+#define _GNU_SOURCE
+#include <dlfcn.h>
+#include <stddef.h>
+#include <assert.h>
+#include <unistd.h>
+#include <stdio.h>
+
+int
+main (void)
+{
+ void *handle[4];
+ int (*fun) (int);
+ Lmid_t lmid;
+ int dl;
+
+ handle[0] = dlmopen (LM_ID_NEWLM, DSO_NAME, RTLD_LAZY | RTLD_LOCAL);
+ assert (handle[0] != NULL);
+
+ handle[1] = dlmopen (LM_ID_NEWLM, DSO_NAME, RTLD_LAZY | RTLD_LOCAL);
+ assert (handle[1] != NULL);
+
+ handle[2] = dlmopen (LM_ID_NEWLM, DSO_NAME, RTLD_LAZY | RTLD_LOCAL);
+ assert (handle[2] != NULL);
+
+ for (dl = 2; dl >= 0; dl--)
+ {
+ fun = dlsym (handle[dl], "inc");
+ fun (dl);
+ }
+
+ dlclose (handle[0]); /* TAG: first dlclose */
+ dlclose (handle[1]); /* TAG: second dlclose */
+ dlclose (handle[2]); /* TAG: third dlclose */
+
+ handle[3] = dlmopen (LM_ID_NEWLM, DSO_NAME, RTLD_LAZY | RTLD_LOCAL);
+ dlinfo (handle[3], RTLD_DI_LMID, &lmid);
+
+ dlclose (handle[3]); /* TAG: fourth dlclose */
+
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.base/dlmopen-ns-ids.exp b/gdb/testsuite/gdb.base/dlmopen-ns-ids.exp
new file mode 100644
index 0000000..94b4a6e
--- /dev/null
+++ b/gdb/testsuite/gdb.base/dlmopen-ns-ids.exp
@@ -0,0 +1,247 @@
+# This testcase is part of GDB, the GNU debugger.
+#
+# Copyright 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+#
+#
+# Test several things related to handling linker namespaces:
+# * That the user-facing namespace ID is consistent;
+
+require allow_dlmopen_tests
+
+standard_testfile -main.c -lib.c
+
+set srcfile_lib $srcfile2
+set so_name dlmopen-lib.so
+set binfile_lib [standard_output_file $so_name]
+
+if { [build_executable "build shlib" $binfile_lib $srcfile_lib \
+ [list debug shlib]] == -1 } {
+ return
+}
+
+if { [build_executable "failed to build" $testfile $srcfile \
+ [list additional_flags=-DDSO_NAME=\"$binfile_lib\" \
+ shlib_load debug]] } {
+ return
+}
+
+# Run the command "info sharedlibrary" and get the first namespace
+# for the so
+proc get_first_so_ns {} {
+ set ns -1
+ set lib_regexp [string_to_regexp ${::binfile_lib}]
+ gdb_test_multiple "info sharedlibrary $::so_name" "get SO namespace" -lbl {
+ -re "\r\nFrom\\s+To\\s+\(NS\\s+\)?Syms\\s+Read\\s+Shared Object Library(?=\r\n)" {
+ exp_continue
+ }
+ -re "\r\n$::hex\\s+$::hex\\s+\\\[\\\[($::decimal)\\\]\\\]\\s+\[^\r\n]+${lib_regexp}(?=\r\n)" {
+ if {$ns == -1} {
+ set ns $expect_out(1,string)
+ }
+ exp_continue
+ }
+ -re -wrap "" {
+ }
+ }
+ return $ns
+}
+
+# Run the tests relating to the command "info sharedlibrary", to
+# verify that the namespace ID is consistent.
+proc test_info_shared {} {
+ clean_restart $::binfile
+
+ if { ![runto_main] } {
+ return
+ }
+
+ # First test that we don't print a namespace column at the start.
+ gdb_test "info sharedlibrary" \
+ "From\\s+To\\s+Syms\\s+Read\\s+Shared Object Library.*" \
+ "before loading anything"
+
+ gdb_breakpoint [gdb_get_line_number "TAG: first dlclose"]
+ gdb_continue_to_breakpoint "TAG: first dlclose"
+
+ # Next, test that we *do* print a namespace column after loading SOs.
+ gdb_test "info sharedlibrary" \
+ "From\\s+To\\s+NS\\s+Syms\\s+Read\\s+Shared Object Library.*" \
+ "after loading everything"
+
+ gdb_assert {[get_first_so_ns] == 1} "before closing any library"
+
+ gdb_test "next" ".*second dlclose.*" "close first library"
+ gdb_assert {[get_first_so_ns] == 2} "after closing one library"
+
+ gdb_test "next" ".*third dlclose.*" "close second library"
+ gdb_assert {[get_first_so_ns] == 3} "before closing two libraries"
+
+ gdb_breakpoint [gdb_get_line_number "TAG: fourth dlclose"]
+ gdb_continue_to_breakpoint "TAG: fourth dlclose"
+ # As of writing this test, glibc's LMID is just an index on an array of
+ # namespaces. After closing a namespace, requesting a new one will
+ # return the index of the lowest-closed namespace, so this will likely
+ # be namespace 1, and because of glibc's reuse of the r_debug object,
+ # GDB should be able to assign the same number.
+ gdb_assert {[get_first_so_ns] == [get_integer_valueof "lmid" "-1"]} \
+ "reopen a namespace"
+
+ gdb_test "next" ".*return 0.*" "final namespace inactive"
+ gdb_test "info sharedlibrary" \
+ "From\\s+To\\s+Syms\\s+Read\\s+Shared Object Library.*" \
+ "after unloading everything"
+}
+
+# Run all tests related to the linkage namespaces convenience
+# variables, _active_namespaces and _current_namespaces.
+proc_with_prefix test_conv_vars {} {
+ clean_restart $::binfile
+
+ gdb_test "print \$_active_linker_namespaces" "1" \
+ "1 namespace before starting inferior"
+ gdb_test "print \$_linker_namespace" "No registers." \
+ "No current namespace before starting inferior"
+
+ if { ![runto_main] } {
+ return
+ }
+
+ gdb_test "print \$_active_linker_namespaces" "1" \
+ "Before activating namespaces"
+ gdb_test "print \$_linker_namespace" ".* = 0" \
+ "Still in the default namespace"
+
+ gdb_breakpoint "inc" allow-pending
+ gdb_breakpoint [gdb_get_line_number "TAG: first dlclose"]
+
+ foreach_with_prefix dl {3 2 1} {
+ gdb_continue_to_breakpoint "inc"
+
+ gdb_test "print \$_linker_namespace" ".* = $dl" \
+ "Verify we're in namespace $dl"
+ }
+
+ # Check that we display the namespace of the selected
+ # frame, not the lowermost one.
+ gdb_test "up" "\#1.*in main.*"
+ gdb_test "print \$_linker_namespace" ".* = 0" \
+ "print namespace of selected frame"
+
+ gdb_continue_to_breakpoint "first dlclose"
+ gdb_test "print \$_active_linker_namespaces" "4" "all SOs loaded"
+
+ gdb_test "next" ".*second dlclose.*" "close one SO"
+ gdb_test "print \$_active_linker_namespaces" "3" "one SOs unloaded"
+ gdb_test "next" ".*third dlclose.*" "close another SO"
+ gdb_test "print \$_active_linker_namespaces" "2" "two SOs unloaded"
+
+ # Restarting GDB so that we can test setting a breakpoint
+ # using the convenience variable, while a proper bp syntax
+ # isn't implemented for namespaces
+ clean_restart $::binfile
+ if {![runto_main]} {
+ return
+ }
+
+ # We need to load one SO because you can't have confitional
+ # breakpoints and pending breakpoints at the same time with
+ # gdb_breakpoint.
+ gdb_test "next" ".*assert.*" "load the first SO"
+ gdb_breakpoint "inc if \$_linker_namespace == 2"
+ gdb_continue_to_breakpoint "inc"
+ gdb_continue_to_end "" continue 1
+}
+
+# Run several tests relating to the command "info namespaces".
+proc test_info_linker_namespaces {} {
+ clean_restart $::binfile
+
+ if { ![runto_main] } {
+ return
+ }
+
+ with_test_prefix "info linker-namespaces" {
+ gdb_breakpoint [gdb_get_line_number "TAG: first dlclose"]
+ gdb_continue_to_breakpoint "TAG: first dlclose"
+ }
+
+ # First, test printing a single namespace, and ensure all of
+ # them are correct, using both syntaxes.
+ set found_all_libs false
+ gdb_test_multiple "info linker-namespaces \[\[0\]\]" "print namespace 0" -lbl {
+ -re "^\r\nThere are ($::decimal) libraries loaded in linker namespace \\\[\\\[0\\\]\\\]" {
+ # Some systems may add libc and libm to every loaded namespace,
+ # others may load only one or neither, because the SO doesn't
+ # actually use either library. The best we can do is check if
+ # we found the dynamic linker, and up to 2 more libraries.
+ set libs $expect_out(1,string)
+ set found_all_libs [expr $libs - 1 <= 2]
+ exp_continue
+ }
+ -re "^\r\n$::gdb_prompt $" {
+ gdb_assert $found_all_libs "the correct number of libraries was reported"
+ }
+ -re "(^\r\n)?\[^\r\n\]+(?=\r\n)" {
+ exp_continue
+ }
+ }
+ foreach_with_prefix ns {1 2 3} {
+ set found_test_so false
+ set found_all_libs false
+ gdb_test_multiple "info linker-namespaces $ns" "print namespace $ns" -lbl {
+ -re "^\r\nThere are ($::decimal) libraries loaded in linker namespace \\\[\\\[$ns\\\]\\\]" {
+ set libs $expect_out(1,string)
+ # Some systems may add libc and libm to every loaded namespace,
+ # others may load only one or neither, because the SO doesn't
+ # actually use either library. The best we can do is check if
+ # we found the dynamic linker, the test SO, and maybe up to 2
+ # more libraries.
+ set found_all_libs [expr $libs - 2 <= 2]
+ exp_continue
+ }
+ -re "^\r\n\[^\r\n\]+${::binfile_lib}\[^\r\n\]*(?=\r\n)" {
+ set found_test_so true
+ exp_continue
+ }
+ -re "^\r\n$::gdb_prompt $" {
+ gdb_assert $found_test_so "this testfle's SO was reported"
+ gdb_assert $found_all_libs "the correct number of libraries was reported"
+ }
+ -re "(^\r\n)?\[^\r\n\]+(?=\r\n)" {
+ exp_continue
+ }
+ }
+ }
+
+ # These patterns are simpler, and purposefully glob multiple lines.
+ # The point is to ensure that we find and display all the namespaces,
+ # without worrying about the libraries printed, since that was tested
+ # above.
+ gdb_test "info linker-namespaces" \
+ [multi_line "There are 4 linker namespaces loaded" \
+ "There are $::decimal libraries loaded in linker namespace ..0.." \
+ ".*" \
+ "There are $::decimal libraries loaded in linker namespace ..1.." \
+ ".*" \
+ "There are $::decimal libraries loaded in linker namespace ..2.." \
+ ".*" \
+ "There are $::decimal libraries loaded in linker namespace ..3.." \
+ ".*" ] "print namespaces with no argument"
+}
+
+test_info_shared
+test_conv_vars
+test_info_linker_namespaces
diff --git a/gdb/testsuite/gdb.base/dlmopen.exp b/gdb/testsuite/gdb.base/dlmopen.exp
index dee046a..da17002 100644
--- a/gdb/testsuite/gdb.base/dlmopen.exp
+++ b/gdb/testsuite/gdb.base/dlmopen.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -77,15 +77,27 @@ if { [build_executable "build shlib" $binfile_lib2 $srcfile_lib \
return
}
-if { [prepare_for_testing "failed to prepare" $testfile $srcfile \
+if { [build_executable "failed to build" $testfile $srcfile \
[list additional_flags=-DDSO1_NAME=\"$binfile_lib1\" \
additional_flags=-DDSO2_NAME=\"$binfile_lib2\" \
shlib_load debug]] } {
- return -1
+ return
}
-if { ![runto_main] } {
- return -1
+# Some locations needed by the tests.
+set bp_inc [gdb_get_line_number "bp.inc" $srcfile_lib]
+set bp_main [gdb_get_line_number "bp.main" $srcfile]
+
+# Figure out the file name for the dynamic linker.
+set dyln_name [section_get $binfile .interp]
+if { $dyln_name eq "" } {
+ unsupported "couldn't find dynamic linker name"
+ return
+}
+
+# Return true if FILENAME is the dynamic linker. Otherwise return false.
+proc is_dyln { filename } {
+ return [expr {$filename eq $::dyln_name}]
}
# Check that 'info shared' show NUM occurrences of DSO.
@@ -94,7 +106,7 @@ proc check_dso_count { dso num } {
set count 0
gdb_test_multiple "info shared" "info shared" {
- -re "$hex $hex Yes \[^\r\n\]*$dso\r\n" {
+ -re "$hex $hex \(\[\[$::decimal\]\]\\s+\)\?Yes \[^\r\n\]*$dso\r\n" {
# use longer form so debug remote does not interfere
set count [expr $count + 1]
exp_continue
@@ -158,41 +170,261 @@ proc test_dlmopen {} {
}
}
-# Remove the pause. We only need it for the attach test.
-gdb_test "print wait_for_gdb = 0" "\\\$1 = 0"
+# Setup for calling 'test_dlmopen', this is the version of the test
+# that doesn't use 'attach'.
+proc test_dlmopen_no_attach {} {
+ clean_restart $::binfile
-# Break in the to-be-loaded library and at the end of main.
-set bp_inc [gdb_get_line_number "bp.inc" $srcfile_lib]
-set bp_main [gdb_get_line_number "bp.main" $srcfile]
+ if { ![runto_main] } {
+ return
+ }
+
+ # Remove the pause. We only need it for the attach test.
+ gdb_test "print wait_for_gdb = 0" "\\\$1 = 0"
-delete_breakpoints
-gdb_breakpoint $srcfile_lib:$bp_inc allow-pending
-gdb_breakpoint $srcfile:$bp_main
+ # Break in the to-be-loaded library and at the end of main.
+ delete_breakpoints
+ gdb_breakpoint $::srcfile_lib:$::bp_inc allow-pending
+ gdb_breakpoint $::srcfile:$::bp_main
-test_dlmopen
+ test_dlmopen
+}
-# Try the same again when attaching after dlmopen().
-require can_spawn_for_attach
+# Setup for calling 'test_dlmopen', this is the version of the test
+# that does use 'attach'.
+proc test_dlmopen_with_attach {} {
+ if { ![can_spawn_for_attach] } {
+ unsupported "cannot run attach tests"
+ return
+ }
-clean_restart $binfile
+ clean_restart $::binfile
-# Start the test program.
-set test_spawn_id [spawn_wait_for_attach $binfile]
-set testpid [spawn_id_get_pid $test_spawn_id]
+ # Start the test program.
+ set test_spawn_id [spawn_wait_for_attach $::binfile]
+ set testpid [spawn_id_get_pid $test_spawn_id]
-# Attach.
-if { ![gdb_attach $testpid] } {
- return
+ # Attach.
+ if { ![gdb_attach $testpid] } {
+ return
+ }
+
+ with_test_prefix "attach" {
+ # Remove the pause. We no longer need it.
+ gdb_test "print wait_for_gdb = 0" "\\\$1 = 0"
+
+ # Set the same breakpoints again. This time, however, we do not allow the
+ # breakpoint to be pending since the library has already been loaded.
+ gdb_breakpoint $::srcfile_lib:$::bp_inc
+ gdb_breakpoint $::srcfile:$::bp_main
+
+ test_dlmopen
+ }
+}
+
+# Run 'info sharedlibrary' and count the number of mappings that look
+# like they might be the dynamic linker. This will only work for
+# Linux right now.
+proc get_dyld_info {} {
+ if { ![istarget *-linux*] } {
+ return [list 0 ""]
+ }
+
+ set dyld_count 0
+ set dyld_start_addr ""
+ gdb_test_multiple "info sharedlibrary" "" {
+ -re "From\\s+To\\s+\(NS\\s+\)?Syms\\s+Read\\s+Shared Object Library\r\n" {
+ exp_continue
+ }
+ -re "^($::hex)\\s+$::hex\\s+\(\#$::decimal\\s+\)?\[^/\]+(/\[^\r\n\]+)\r\n" {
+ set addr $expect_out(1,string)
+ set lib $expect_out(3,string)
+
+ if { [is_dyln $lib] } {
+ # This looks like it might be the dynamic linker.
+ incr dyld_count
+ if { $dyld_start_addr eq "" } {
+ set dyld_start_addr $addr
+ } elseif { $dyld_start_addr ne $addr } {
+ set dyld_start_addr "MULTIPLE"
+ }
+ }
+
+ exp_continue
+ }
+ -re "\\(\\*\\): Shared library is missing debugging information\\.\r\n" {
+ exp_continue
+ }
+ -re "^$::gdb_prompt $" {
+ }
+ }
+
+ if { $dyld_start_addr eq "MULTIPLE" } {
+ set dyld_start_addr ""
+ }
+
+ return [list $dyld_count $dyld_start_addr]
+}
+
+# The inferior for this test causes the dynamic linker to be appear
+# multiple times in the inferior's shared library list, but (at least
+# with glibc), the dynamic linker is really only mapped in once. That
+# is, each of the dynamic linker instances that appear in the 'info
+# sharedlibrary' output, will have the same address range.
+#
+# This test creates a user breakpoint in the dynamic linker, and then
+# runs over the dlcose calls, which unmap all but one of the dynamic
+# linker instances.
+#
+# The expectation is that the user breakpoint in the dynamic linker
+# should still be active. Older versions of GDB had a bug where the
+# breakpoint would become pending.
+proc_with_prefix test_solib_unmap_events { } {
+
+ # This test relies on finding the dynamic linker library, and is
+ # currently written assuming Linux.
+ if { ![istarget *-linux*] } {
+ unsupport "cannot find dynamic linker library on this target"
+ return
+ }
+
+ clean_restart $::binfile
+
+ if { ![runto_main] } {
+ return
+ }
+
+ # Check that before any of our dlopen/dlmopen calls, we can find a
+ # single copy of the dynamic linker in the shared library list.
+ set dyld_info [get_dyld_info]
+ set dyld_count [lindex $dyld_info 0]
+ if { $dyld_count != 1 } {
+ unsupported "initial dyld state appears strange"
+ return
+ }
+
+ # Continue the inferior until all solib are loaded.
+ set alarm_lineno [gdb_get_line_number "alarm" $::srcfile]
+ gdb_breakpoint ${::srcfile}:${alarm_lineno}
+ gdb_continue_to_breakpoint "all solib are now loaded"
+
+ # Check that we have multiple copies of dynamic linker loaded, and
+ # that the dynamic linker is only loaded at a single address.
+ set dyld_info [get_dyld_info]
+ set dyld_count [lindex $dyld_info 0]
+ set dyld_start_addr [lindex $dyld_info 1]
+
+ # If we didn't find a suitable dynamic linker address, or we
+ # didn't find multiple copies of the dynamic linker, then
+ # something has gone wrong with the test setup.
+ if { $dyld_count < 2 } {
+ unsupported "multiple copies of the dynamic linker not found"
+ return
+ }
+ if { $dyld_start_addr eq "" } {
+ unsupported "unable to find suitable dynamic linker start address"
+ return
+ }
+
+ # Check the address we found is (likely) writable.
+ gdb_test_multiple "x/1i $dyld_start_addr" "check b/p address" {
+ -re -wrap "Cannot access memory at address \[^\r\n\]+" {
+ unsupported "dynamic linker address is not accessible"
+ return
+ }
+ -re -wrap "" {
+ }
+ }
+
+ # Create a breakpoint within the dynamic linker. It is pretty unlikely
+ # that this breakpoint will ever be hit, but just in case it is, make it
+ # conditional, with a condition that will never be true. All we really
+ # care about for this test is whether the breakpoint will be made
+ # pending or not (it should not).
+ gdb_test "break *$dyld_start_addr if (0)" \
+ "Breakpoint $::decimal at $::hex\[^\r\n\]+" \
+ "create breakpoint within dynamic linker"
+ set bpnum [get_integer_valueof "\$bpnum" INVALID "get bpnum"]
+
+ # Now continue until the 'bp.main' location, this will unload some
+ # copies, but not all copies, of the dynamic linker.
+ gdb_test "print wait_for_gdb = 0" " = 0"
+ set bp_main [gdb_get_line_number "bp.main" $::srcfile]
+
+ gdb_breakpoint $::srcfile:$bp_main
+ gdb_continue_to_breakpoint "stop at bp.main"
+
+ # At one point, GDB would incorrectly mark the breakpoints in the
+ # dynamic linker as pending when some instances of the library were
+ # unloaded, despite there really only being one copy of the dynamic
+ # linker actually loaded into the inferior's address space.
+ gdb_test_multiple "info breakpoints $bpnum" "check b/p status" {
+ -re -wrap "$bpnum\\s+breakpoint\\s+keep\\s+y\\s+<PENDING>\\s+\\*$::hex\\s*\r\n\\s+stop only if \\(0\\)" {
+ fail $gdb_test_name
+ }
+
+ -re -wrap "$bpnum\\s+breakpoint\\s+keep\\s+y\\s+$::hex\\s*\[^\r\n\]+\r\n\\s+stop only if \\(0\\)" {
+ pass $gdb_test_name
+ }
+ }
+
+ # With all the dlclose calls now complete, we should be back to a
+ # single copy of the dynamic linker.
+ set dyld_info [get_dyld_info]
+ set dyld_count [lindex $dyld_info 0]
+ gdb_assert { $dyld_count == 1 } \
+ "one dynamic linker found after dlclose calls"
}
-with_test_prefix "attach" {
+# Check that we can 'next' over the dlclose calls without GDB giving any
+# warnings or errors.
+proc_with_prefix test_next_over_dlclose {} {
+ clean_restart $::binfile
+
+ if { ![runto_main] } {
+ return
+ }
+
+ set dlclose_lineno [gdb_get_line_number "dlclose" $::srcfile]
+ gdb_breakpoint $::srcfile:$dlclose_lineno
+ gdb_breakpoint $::srcfile:$::bp_main
+
# Remove the pause. We no longer need it.
gdb_test "print wait_for_gdb = 0" "\\\$1 = 0"
- # Set the same breakpoints again. This time, however, we do not allow the
- # breakpoint to be pending since the library has already been loaded.
- gdb_breakpoint $srcfile_lib:$bp_inc
- gdb_breakpoint $srcfile:$bp_main
+ set loc_re [multi_line \
+ "\[^\r\n\]+/[string_to_regexp $::srcfile]:$dlclose_lineno" \
+ "$dlclose_lineno\\s+dlclose \[^\r\n\]+"]
+
+ # This loop mirrors the loop in dlmopen.c where the inferior performs
+ # four calls to dlclose. Here we continue to the dlclose, and then use
+ # 'next' to step over the call. As part of the 'next' GDB will insert
+ # breakpoints to catch longjmps into the multiple copies of libc which
+ # have been loaded. Each dlclose call will cause a copy of libc to be
+ # unloaded, which should disable the longjmp breakpoint that GDB
+ # previously inserted.
+ #
+ # At one point a bug in GDB meant that we failed to correctly disable
+ # the longjmp breakpoints and GDB would try to remove the breakpoint
+ # from a library after it had been unloaded, which would trigger a
+ # warning.
+ for { set i 0 } { $i < 4 } { incr i } {
+ gdb_continue_to_breakpoint "continue to dlclose $i" $loc_re
+ gdb_test "next" "^$::decimal\\s+for \\(dl = 0;\[^\r\n\]+\\)" \
+ "next over dlclose $i"
+ }
- test_dlmopen
+ # Just to confirm that we are where we think we are, continue to the
+ # final 'return' line in main. If this isn't hit then we likely went
+ # wrong earlier.
+ gdb_continue_to_breakpoint "continue to final return" \
+ [multi_line \
+ "\[^\r\n\]+/[string_to_regexp $::srcfile]:$::bp_main" \
+ "$::bp_main\\s+return 0;\[^\r\n\]+"]
}
+
+# Run the actual tests.
+test_dlmopen_no_attach
+test_dlmopen_with_attach
+test_solib_unmap_events
+test_next_over_dlclose
diff --git a/gdb/testsuite/gdb.base/dmsym.c b/gdb/testsuite/gdb.base/dmsym.c
index ad92ed2..6b13ed2 100644
--- a/gdb/testsuite/gdb.base/dmsym.c
+++ b/gdb/testsuite/gdb.base/dmsym.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dmsym.exp b/gdb/testsuite/gdb.base/dmsym.exp
index a806845..3506ca7 100644
--- a/gdb/testsuite/gdb.base/dmsym.exp
+++ b/gdb/testsuite/gdb.base/dmsym.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dmsym_main.c b/gdb/testsuite/gdb.base/dmsym_main.c
index 97ee31b..3423599 100644
--- a/gdb/testsuite/gdb.base/dmsym_main.c
+++ b/gdb/testsuite/gdb.base/dmsym_main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/document.exp b/gdb/testsuite/gdb.base/document.exp
index 8a5e7d0..1d7b9b2 100644
--- a/gdb/testsuite/gdb.base/document.exp
+++ b/gdb/testsuite/gdb.base/document.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dprintf-bp-same-addr.c b/gdb/testsuite/gdb.base/dprintf-bp-same-addr.c
index bbd8a57..be48418 100644
--- a/gdb/testsuite/gdb.base/dprintf-bp-same-addr.c
+++ b/gdb/testsuite/gdb.base/dprintf-bp-same-addr.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dprintf-bp-same-addr.exp b/gdb/testsuite/gdb.base/dprintf-bp-same-addr.exp
index b2c9557..649784b 100644
--- a/gdb/testsuite/gdb.base/dprintf-bp-same-addr.exp
+++ b/gdb/testsuite/gdb.base/dprintf-bp-same-addr.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/dprintf-detach.c b/gdb/testsuite/gdb.base/dprintf-detach.c
index 97ea4ed..15481c2 100644
--- a/gdb/testsuite/gdb.base/dprintf-detach.c
+++ b/gdb/testsuite/gdb.base/dprintf-detach.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dprintf-detach.exp b/gdb/testsuite/gdb.base/dprintf-detach.exp
index b4184d6..dc3384b 100644
--- a/gdb/testsuite/gdb.base/dprintf-detach.exp
+++ b/gdb/testsuite/gdb.base/dprintf-detach.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dprintf-execution-x-script.c b/gdb/testsuite/gdb.base/dprintf-execution-x-script.c
index f8ad58f..610e354 100644
--- a/gdb/testsuite/gdb.base/dprintf-execution-x-script.c
+++ b/gdb/testsuite/gdb.base/dprintf-execution-x-script.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dprintf-execution-x-script.exp b/gdb/testsuite/gdb.base/dprintf-execution-x-script.exp
index 12de3ae..06be468 100644
--- a/gdb/testsuite/gdb.base/dprintf-execution-x-script.exp
+++ b/gdb/testsuite/gdb.base/dprintf-execution-x-script.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dprintf-execution-x-script.gdb b/gdb/testsuite/gdb.base/dprintf-execution-x-script.gdb
index 433c0ca..cf6ed0e 100644
--- a/gdb/testsuite/gdb.base/dprintf-execution-x-script.gdb
+++ b/gdb/testsuite/gdb.base/dprintf-execution-x-script.gdb
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dprintf-next.c b/gdb/testsuite/gdb.base/dprintf-next.c
index ffcdd73..74f6c42 100644
--- a/gdb/testsuite/gdb.base/dprintf-next.c
+++ b/gdb/testsuite/gdb.base/dprintf-next.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dprintf-next.exp b/gdb/testsuite/gdb.base/dprintf-next.exp
index b276394..b28f565 100644
--- a/gdb/testsuite/gdb.base/dprintf-next.exp
+++ b/gdb/testsuite/gdb.base/dprintf-next.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/dprintf-non-stop.c b/gdb/testsuite/gdb.base/dprintf-non-stop.c
index e804977..58c785c 100644
--- a/gdb/testsuite/gdb.base/dprintf-non-stop.c
+++ b/gdb/testsuite/gdb.base/dprintf-non-stop.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dprintf-non-stop.exp b/gdb/testsuite/gdb.base/dprintf-non-stop.exp
index 7c6365a..7386ac6 100644
--- a/gdb/testsuite/gdb.base/dprintf-non-stop.exp
+++ b/gdb/testsuite/gdb.base/dprintf-non-stop.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dprintf-pending.c b/gdb/testsuite/gdb.base/dprintf-pending.c
index e246e88..2180dd2 100644
--- a/gdb/testsuite/gdb.base/dprintf-pending.c
+++ b/gdb/testsuite/gdb.base/dprintf-pending.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dprintf-pending.exp b/gdb/testsuite/gdb.base/dprintf-pending.exp
index 528dd10..9242a84 100644
--- a/gdb/testsuite/gdb.base/dprintf-pending.exp
+++ b/gdb/testsuite/gdb.base/dprintf-pending.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dprintf-pendshr.c b/gdb/testsuite/gdb.base/dprintf-pendshr.c
index 6fcbc03..89797c2 100644
--- a/gdb/testsuite/gdb.base/dprintf-pendshr.c
+++ b/gdb/testsuite/gdb.base/dprintf-pendshr.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dprintf.c b/gdb/testsuite/gdb.base/dprintf.c
index eebbfb3..f6d1e3d 100644
--- a/gdb/testsuite/gdb.base/dprintf.c
+++ b/gdb/testsuite/gdb.base/dprintf.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dprintf.exp b/gdb/testsuite/gdb.base/dprintf.exp
index 649126f..0135b86 100644
--- a/gdb/testsuite/gdb.base/dprintf.exp
+++ b/gdb/testsuite/gdb.base/dprintf.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dso2dso-dso1.c b/gdb/testsuite/gdb.base/dso2dso-dso1.c
index 8b1619d..c51d196 100644
--- a/gdb/testsuite/gdb.base/dso2dso-dso1.c
+++ b/gdb/testsuite/gdb.base/dso2dso-dso1.c
@@ -1,4 +1,4 @@
-/* Copyright 2015-2024 Free Software Foundation, Inc.
+/* Copyright 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/dso2dso-dso1.h b/gdb/testsuite/gdb.base/dso2dso-dso1.h
index 74920834..4a4144c 100644
--- a/gdb/testsuite/gdb.base/dso2dso-dso1.h
+++ b/gdb/testsuite/gdb.base/dso2dso-dso1.h
@@ -1,4 +1,4 @@
-/* Copyright 2015-2024 Free Software Foundation, Inc.
+/* Copyright 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/dso2dso-dso2.c b/gdb/testsuite/gdb.base/dso2dso-dso2.c
index 5dc6591..1b30c5c 100644
--- a/gdb/testsuite/gdb.base/dso2dso-dso2.c
+++ b/gdb/testsuite/gdb.base/dso2dso-dso2.c
@@ -1,4 +1,4 @@
-/* Copyright 2015-2024 Free Software Foundation, Inc.
+/* Copyright 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/dso2dso-dso2.h b/gdb/testsuite/gdb.base/dso2dso-dso2.h
index 394681e..d4b5744 100644
--- a/gdb/testsuite/gdb.base/dso2dso-dso2.h
+++ b/gdb/testsuite/gdb.base/dso2dso-dso2.h
@@ -1,4 +1,4 @@
-/* Copyright 2015-2024 Free Software Foundation, Inc.
+/* Copyright 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/dso2dso.c b/gdb/testsuite/gdb.base/dso2dso.c
index d4557c4..9b39bb7 100644
--- a/gdb/testsuite/gdb.base/dso2dso.c
+++ b/gdb/testsuite/gdb.base/dso2dso.c
@@ -1,4 +1,4 @@
-/* Copyright 2015-2024 Free Software Foundation, Inc.
+/* Copyright 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/dso2dso.exp b/gdb/testsuite/gdb.base/dso2dso.exp
index 9ca1bd0..24d4203 100644
--- a/gdb/testsuite/gdb.base/dso2dso.exp
+++ b/gdb/testsuite/gdb.base/dso2dso.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dtrace-probe.c b/gdb/testsuite/gdb.base/dtrace-probe.c
index 6920389..29fafbc 100644
--- a/gdb/testsuite/gdb.base/dtrace-probe.c
+++ b/gdb/testsuite/gdb.base/dtrace-probe.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dtrace-probe.d b/gdb/testsuite/gdb.base/dtrace-probe.d
index 3cda1a2..a8784de 100644
--- a/gdb/testsuite/gdb.base/dtrace-probe.d
+++ b/gdb/testsuite/gdb.base/dtrace-probe.d
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dtrace-probe.exp b/gdb/testsuite/gdb.base/dtrace-probe.exp
index a8c38f9..32a72cc 100644
--- a/gdb/testsuite/gdb.base/dtrace-probe.exp
+++ b/gdb/testsuite/gdb.base/dtrace-probe.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dump.exp b/gdb/testsuite/gdb.base/dump.exp
index 58fedb1..a55e5b0 100644
--- a/gdb/testsuite/gdb.base/dump.exp
+++ b/gdb/testsuite/gdb.base/dump.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -26,12 +26,6 @@ set endian "auto"
set formats {binary ihex srec tekhex verilog}
-if {[istarget "alpha*-*-*"]} {
- # SREC etc cannot handle 64-bit addresses. Force the test
- # program into the low 31 bits of the address space.
- lappend options "ldflags=-Wl,-taso"
-}
-
# Runs the command 'print zero_all ()'. Uses the PRINT_ZERO_ALL_COUNT
# global to ensure the test names are unique.
set print_zero_all_count 0
diff --git a/gdb/testsuite/gdb.base/dup-sect.S b/gdb/testsuite/gdb.base/dup-sect.S
index 64e9161..d640a66 100644
--- a/gdb/testsuite/gdb.base/dup-sect.S
+++ b/gdb/testsuite/gdb.base/dup-sect.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/dup-sect.exp b/gdb/testsuite/gdb.base/dup-sect.exp
index e5d185f..28cefbb 100644
--- a/gdb/testsuite/gdb.base/dup-sect.exp
+++ b/gdb/testsuite/gdb.base/dup-sect.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/duplicate-bp.c b/gdb/testsuite/gdb.base/duplicate-bp.c
index 8212b24..bb6c155 100644
--- a/gdb/testsuite/gdb.base/duplicate-bp.c
+++ b/gdb/testsuite/gdb.base/duplicate-bp.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/duplicate-bp.exp b/gdb/testsuite/gdb.base/duplicate-bp.exp
index 5ab001d..b1003f2 100644
--- a/gdb/testsuite/gdb.base/duplicate-bp.exp
+++ b/gdb/testsuite/gdb.base/duplicate-bp.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/early-init-file.c b/gdb/testsuite/gdb.base/early-init-file.c
index b1ce99c..a21818d 100644
--- a/gdb/testsuite/gdb.base/early-init-file.c
+++ b/gdb/testsuite/gdb.base/early-init-file.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/early-init-file.exp b/gdb/testsuite/gdb.base/early-init-file.exp
index 7c6e9e2..6d70c4c 100644
--- a/gdb/testsuite/gdb.base/early-init-file.exp
+++ b/gdb/testsuite/gdb.base/early-init-file.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/echo.exp b/gdb/testsuite/gdb.base/echo.exp
index 30c0ab9..bb6a343 100644
--- a/gdb/testsuite/gdb.base/echo.exp
+++ b/gdb/testsuite/gdb.base/echo.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1988-2024 Free Software Foundation, Inc.
+# Copyright (C) 1988-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/eh_return.c b/gdb/testsuite/gdb.base/eh_return.c
index 7329de6..6817d2a 100644
--- a/gdb/testsuite/gdb.base/eh_return.c
+++ b/gdb/testsuite/gdb.base/eh_return.c
@@ -2,7 +2,7 @@
It was copied from gcc repo, gcc/testsuite/gcc.target/aarch64/eh_return.c.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/eh_return.exp b/gdb/testsuite/gdb.base/eh_return.exp
index 9fefc89..5a4f524 100644
--- a/gdb/testsuite/gdb.base/eh_return.exp
+++ b/gdb/testsuite/gdb.base/eh_return.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/empty-host-env-vars.exp b/gdb/testsuite/gdb.base/empty-host-env-vars.exp
index 5fab65a..1a1b158 100644
--- a/gdb/testsuite/gdb.base/empty-host-env-vars.exp
+++ b/gdb/testsuite/gdb.base/empty-host-env-vars.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/empty_exe.exp b/gdb/testsuite/gdb.base/empty_exe.exp
index 20feb74..bc6bd39 100644
--- a/gdb/testsuite/gdb.base/empty_exe.exp
+++ b/gdb/testsuite/gdb.base/empty_exe.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/ena-dis-br.exp b/gdb/testsuite/gdb.base/ena-dis-br.exp
index 924133e..82982c4 100644
--- a/gdb/testsuite/gdb.base/ena-dis-br.exp
+++ b/gdb/testsuite/gdb.base/ena-dis-br.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/endian.c b/gdb/testsuite/gdb.base/endian.c
index 8567fdd..c135956 100644
--- a/gdb/testsuite/gdb.base/endian.c
+++ b/gdb/testsuite/gdb.base/endian.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/endian.exp b/gdb/testsuite/gdb.base/endian.exp
index 7ef288b..993617b 100644
--- a/gdb/testsuite/gdb.base/endian.exp
+++ b/gdb/testsuite/gdb.base/endian.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/endianity.c b/gdb/testsuite/gdb.base/endianity.c
index f415c4a..a8cdca8 100644
--- a/gdb/testsuite/gdb.base/endianity.c
+++ b/gdb/testsuite/gdb.base/endianity.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/endianity.exp b/gdb/testsuite/gdb.base/endianity.exp
index 789266d..44a7cbb 100644
--- a/gdb/testsuite/gdb.base/endianity.exp
+++ b/gdb/testsuite/gdb.base/endianity.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/ending-run.exp b/gdb/testsuite/gdb.base/ending-run.exp
index 90359fd..022ac28 100644
--- a/gdb/testsuite/gdb.base/ending-run.exp
+++ b/gdb/testsuite/gdb.base/ending-run.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/enum_cond.c b/gdb/testsuite/gdb.base/enum_cond.c
index 35e126a..d264200 100644
--- a/gdb/testsuite/gdb.base/enum_cond.c
+++ b/gdb/testsuite/gdb.base/enum_cond.c
@@ -1,5 +1,5 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -46,3 +46,19 @@ main (void)
return 0;
}
+void
+exit (int status)
+{
+#if HAVE_BUILTIN_TRAP
+ __builtin_trap ();
+#endif
+ while (1)
+ ;
+}
+
+void
+_start (void)
+{
+ main ();
+ exit (0);
+}
diff --git a/gdb/testsuite/gdb.base/enum_cond.exp b/gdb/testsuite/gdb.base/enum_cond.exp
index 3ee90f8..5c78ec9 100644
--- a/gdb/testsuite/gdb.base/enum_cond.exp
+++ b/gdb/testsuite/gdb.base/enum_cond.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -19,7 +19,20 @@
standard_testfile .c
-set opts [list debug additional_flags=-fshort-enums]
+set opts {}
+lappend opts debug
+lappend opts additional_flags=-fshort-enums
+# Without -nostdlib, on arm we run into:
+#
+# ld: warning: enum_cond.o uses variable-size enums yet the output is to use
+# 32-bit enums; use of enum values across objects may fail
+#
+# due to conflicting values for Tag_ABI_enum_size between enum_cond.o and
+# linked-in objects. Work around this by using -nostdlib, making sure there's
+# just one object, and no such conflict can happen.
+lappend opts additional_flags=-nostdlib
+lappend opts additional_flags=-DHAVE_BUILTIN_TRAP=[have_builtin_trap]
+
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $opts] != "" } {
untested "failed to compile"
return -1
diff --git a/gdb/testsuite/gdb.base/enumval.c b/gdb/testsuite/gdb.base/enumval.c
index c487e78..ab7496a 100644
--- a/gdb/testsuite/gdb.base/enumval.c
+++ b/gdb/testsuite/gdb.base/enumval.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/enumval.exp b/gdb/testsuite/gdb.base/enumval.exp
index 79adb46..de95745 100644
--- a/gdb/testsuite/gdb.base/enumval.exp
+++ b/gdb/testsuite/gdb.base/enumval.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/environ.exp b/gdb/testsuite/gdb.base/environ.exp
index 1bc5c71..36cc5f4 100644
--- a/gdb/testsuite/gdb.base/environ.exp
+++ b/gdb/testsuite/gdb.base/environ.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/eof-exit.exp b/gdb/testsuite/gdb.base/eof-exit.exp
index 5b9ec7b..9b6be28 100644
--- a/gdb/testsuite/gdb.base/eof-exit.exp
+++ b/gdb/testsuite/gdb.base/eof-exit.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/errno.c b/gdb/testsuite/gdb.base/errno.c
index c6835a8..a896d36 100644
--- a/gdb/testsuite/gdb.base/errno.c
+++ b/gdb/testsuite/gdb.base/errno.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/errno.exp b/gdb/testsuite/gdb.base/errno.exp
index 262176e..ff18214 100644
--- a/gdb/testsuite/gdb.base/errno.exp
+++ b/gdb/testsuite/gdb.base/errno.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/eu-strip-infcall.c b/gdb/testsuite/gdb.base/eu-strip-infcall.c
index b4b59f5..896d51c 100644
--- a/gdb/testsuite/gdb.base/eu-strip-infcall.c
+++ b/gdb/testsuite/gdb.base/eu-strip-infcall.c
@@ -1,4 +1,4 @@
-/* Copyright 2011-2024 Free Software Foundation, Inc.
+/* Copyright 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/eu-strip-infcall.exp b/gdb/testsuite/gdb.base/eu-strip-infcall.exp
index 531906f..1040f6a 100644
--- a/gdb/testsuite/gdb.base/eu-strip-infcall.exp
+++ b/gdb/testsuite/gdb.base/eu-strip-infcall.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/eval-avoid-side-effects.exp b/gdb/testsuite/gdb.base/eval-avoid-side-effects.exp
index 914f01e..f914594 100644
--- a/gdb/testsuite/gdb.base/eval-avoid-side-effects.exp
+++ b/gdb/testsuite/gdb.base/eval-avoid-side-effects.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/eval-skip.exp b/gdb/testsuite/gdb.base/eval-skip.exp
index e8f766e..82c5fe0 100644
--- a/gdb/testsuite/gdb.base/eval-skip.exp
+++ b/gdb/testsuite/gdb.base/eval-skip.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/eval.exp b/gdb/testsuite/gdb.base/eval.exp
index bcc9fb9..e471b20 100644
--- a/gdb/testsuite/gdb.base/eval.exp
+++ b/gdb/testsuite/gdb.base/eval.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/examine-backward.c b/gdb/testsuite/gdb.base/examine-backward.c
index d54e100..b986a6c 100644
--- a/gdb/testsuite/gdb.base/examine-backward.c
+++ b/gdb/testsuite/gdb.base/examine-backward.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/examine-backward.exp b/gdb/testsuite/gdb.base/examine-backward.exp
index fe3d13e..cc162ee 100644
--- a/gdb/testsuite/gdb.base/examine-backward.exp
+++ b/gdb/testsuite/gdb.base/examine-backward.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/exe-lock.exp b/gdb/testsuite/gdb.base/exe-lock.exp
index 532c7bb..40a470f 100644
--- a/gdb/testsuite/gdb.base/exe-lock.exp
+++ b/gdb/testsuite/gdb.base/exe-lock.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/exec-invalid-sysroot.exp b/gdb/testsuite/gdb.base/exec-invalid-sysroot.exp
index 30c72dc..7ab446e 100644
--- a/gdb/testsuite/gdb.base/exec-invalid-sysroot.exp
+++ b/gdb/testsuite/gdb.base/exec-invalid-sysroot.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/execl-update-breakpoints.c b/gdb/testsuite/gdb.base/execl-update-breakpoints.c
index f0dea4d..e71efd0 100644
--- a/gdb/testsuite/gdb.base/execl-update-breakpoints.c
+++ b/gdb/testsuite/gdb.base/execl-update-breakpoints.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/execl-update-breakpoints.exp b/gdb/testsuite/gdb.base/execl-update-breakpoints.exp
index 86f038a..27bd042 100644
--- a/gdb/testsuite/gdb.base/execl-update-breakpoints.exp
+++ b/gdb/testsuite/gdb.base/execl-update-breakpoints.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/execution-termios.c b/gdb/testsuite/gdb.base/execution-termios.c
index b4c13b2..f3e4f16 100644
--- a/gdb/testsuite/gdb.base/execution-termios.c
+++ b/gdb/testsuite/gdb.base/execution-termios.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/execution-termios.exp b/gdb/testsuite/gdb.base/execution-termios.exp
index c530d73..55656be 100644
--- a/gdb/testsuite/gdb.base/execution-termios.exp
+++ b/gdb/testsuite/gdb.base/execution-termios.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/exitsignal.exp b/gdb/testsuite/gdb.base/exitsignal.exp
index 2d6fc03..6606cc1 100644
--- a/gdb/testsuite/gdb.base/exitsignal.exp
+++ b/gdb/testsuite/gdb.base/exitsignal.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/expand-psymtabs.c b/gdb/testsuite/gdb.base/expand-psymtabs.c
index 8af65ba..ba0c64c 100644
--- a/gdb/testsuite/gdb.base/expand-psymtabs.c
+++ b/gdb/testsuite/gdb.base/expand-psymtabs.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/expand-psymtabs.exp b/gdb/testsuite/gdb.base/expand-psymtabs.exp
index 875b100..1315535 100644
--- a/gdb/testsuite/gdb.base/expand-psymtabs.exp
+++ b/gdb/testsuite/gdb.base/expand-psymtabs.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/exprs.exp b/gdb/testsuite/gdb.base/exprs.exp
index 375af6b..f703c18 100644
--- a/gdb/testsuite/gdb.base/exprs.exp
+++ b/gdb/testsuite/gdb.base/exprs.exp
@@ -1,4 +1,4 @@
-# Copyright 1988-2024 Free Software Foundation, Inc.
+# Copyright 1988-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -284,3 +284,21 @@ gdb_test "print v_short + " \
# Test for a syntax error in the middle of an expression.
gdb_test "print v_short =}{= 3" \
"A syntax error in expression, near `\\}\\{= 3'\\."
+
+gdb_test_no_output "set debug parse 1"
+set saw_start 0
+set saw_val 0
+gdb_test_multiple "print 23" "print with debugging" -lbl {
+ -re "\r\nStarting parse(?=\r\n)" {
+ set saw_start 1
+ exp_continue
+ }
+ -re "\r\n.$decimal = 23(?=\r\n)" {
+ set saw_val 1
+ exp_continue
+ }
+
+ -re -wrap "" {
+ gdb_assert {$saw_start && $saw_val} $gdb_test_name
+ }
+}
diff --git a/gdb/testsuite/gdb.base/fileio.exp b/gdb/testsuite/gdb.base/fileio.exp
index f31a775..6996d6d 100644
--- a/gdb/testsuite/gdb.base/fileio.exp
+++ b/gdb/testsuite/gdb.base/fileio.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/filename-completion.exp b/gdb/testsuite/gdb.base/filename-completion.exp
index 03ead59..742a182 100644
--- a/gdb/testsuite/gdb.base/filename-completion.exp
+++ b/gdb/testsuite/gdb.base/filename-completion.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -381,11 +381,15 @@ proc run_mid_line_completion_tests { root cmd } {
proc run_quoting_and_escaping_tests { root } {
# Test all the commands which allow quoting of filenames, and
# which require whitespace to be escaped in unquoted filenames.
- foreach_with_prefix cmd { file exec-file symbol-file add-symbol-file \
- remove-symbol-file \
- "target core" "target exec" "target tfile" \
- "maint print c-tdesc" "compile file" \
- "save gdb-index" "save gdb-index -dwarf-5" } {
+ set all_cmds { file exec-file symbol-file add-symbol-file \
+ remove-symbol-file \
+ "target core" "target exec" "target tfile" \
+ "maint print c-tdesc" "save gdb-index"
+ "save gdb-index -dwarf-5" "shell ls"}
+ if { [allow_compile_tests] } {
+ lappend all_cmds "compile file"
+ }
+ foreach_with_prefix cmd $all_cmds {
# Try each test placing the filename as the first argument
# then again with a quoted string immediately after the
# command. This works because the filename completer will
@@ -404,6 +408,31 @@ proc run_quoting_and_escaping_tests { root } {
run_quoting_and_escaping_tests_1 $root $cmd
}
}
+
+ # Some additional testing of shell command. Test 'shell' and '!'
+ # when there are multiple filenames on the command line. This
+ # focuses on completion of the final filename. There is also some
+ # testing of the shell command above, this tests completion within
+ # the line.
+ foreach_with_prefix shell_cmd { "shell " "!" } {
+ foreach suffix { "aaa/aa bb" "bb2/dir 1/unique file" } {
+ set dir $root/$suffix
+
+ regsub -all " " "$dir" "\\ " dir_with_backslash
+
+ with_test_prefix "suffix='$suffix'" {
+ with_test_prefix "with_backslash" {
+ run_quoting_and_escaping_tests_1 $root "${shell_cmd}ls $dir_with_backslash"
+ }
+ with_test_prefix "with double quotes" {
+ run_quoting_and_escaping_tests_1 $root "${shell_cmd}ls \"$dir\""
+ }
+ with_test_prefix "with single quotes" {
+ run_quoting_and_escaping_tests_1 $root "${shell_cmd}ls '$dir'"
+ }
+ }
+ }
+ }
}
# Helper for run_unquoted_tests. ROOT is the root directory as setup
diff --git a/gdb/testsuite/gdb.base/filesym.c b/gdb/testsuite/gdb.base/filesym.c
index 4145e37..66cb1bb 100644
--- a/gdb/testsuite/gdb.base/filesym.c
+++ b/gdb/testsuite/gdb.base/filesym.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/filesym.exp b/gdb/testsuite/gdb.base/filesym.exp
index 28f0776..4cfba92 100644
--- a/gdb/testsuite/gdb.base/filesym.exp
+++ b/gdb/testsuite/gdb.base/filesym.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/find-unmapped.c b/gdb/testsuite/gdb.base/find-unmapped.c
index c4517db..c02cea6 100644
--- a/gdb/testsuite/gdb.base/find-unmapped.c
+++ b/gdb/testsuite/gdb.base/find-unmapped.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/find-unmapped.exp b/gdb/testsuite/gdb.base/find-unmapped.exp
index cab1fe9..28c5fd8 100644
--- a/gdb/testsuite/gdb.base/find-unmapped.exp
+++ b/gdb/testsuite/gdb.base/find-unmapped.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/find.c b/gdb/testsuite/gdb.base/find.c
index ffac2c9..786b960 100644
--- a/gdb/testsuite/gdb.base/find.c
+++ b/gdb/testsuite/gdb.base/find.c
@@ -1,7 +1,7 @@
/* Testcase for the find command.
This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/find.exp b/gdb/testsuite/gdb.base/find.exp
index a46d6af..ae68686 100644
--- a/gdb/testsuite/gdb.base/find.exp
+++ b/gdb/testsuite/gdb.base/find.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/finish-pretty.c b/gdb/testsuite/gdb.base/finish-pretty.c
index 41f1118..48dbc67 100644
--- a/gdb/testsuite/gdb.base/finish-pretty.c
+++ b/gdb/testsuite/gdb.base/finish-pretty.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/finish-pretty.exp b/gdb/testsuite/gdb.base/finish-pretty.exp
index 0b6bea6..6c23cec 100644
--- a/gdb/testsuite/gdb.base/finish-pretty.exp
+++ b/gdb/testsuite/gdb.base/finish-pretty.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/finish.exp b/gdb/testsuite/gdb.base/finish.exp
index f40577c..d68863b 100644
--- a/gdb/testsuite/gdb.base/finish.exp
+++ b/gdb/testsuite/gdb.base/finish.exp
@@ -1,4 +1,4 @@
-# Copyright 2000-2024 Free Software Foundation, Inc.
+# Copyright 2000-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/fission-macro-2.c b/gdb/testsuite/gdb.base/fission-macro-2.c
index fb088c8..ecd3ab3 100644
--- a/gdb/testsuite/gdb.base/fission-macro-2.c
+++ b/gdb/testsuite/gdb.base/fission-macro-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/fission-macro.c b/gdb/testsuite/gdb.base/fission-macro.c
index 9c8cbec..03606bb 100644
--- a/gdb/testsuite/gdb.base/fission-macro.c
+++ b/gdb/testsuite/gdb.base/fission-macro.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/fission-macro.exp b/gdb/testsuite/gdb.base/fission-macro.exp
index 9e5d5c0..c86a1a4 100644
--- a/gdb/testsuite/gdb.base/fission-macro.exp
+++ b/gdb/testsuite/gdb.base/fission-macro.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/fixsection.c b/gdb/testsuite/gdb.base/fixsection.c
index d3874b3..0de02388 100644
--- a/gdb/testsuite/gdb.base/fixsection.c
+++ b/gdb/testsuite/gdb.base/fixsection.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/fixsection.exp b/gdb/testsuite/gdb.base/fixsection.exp
index 23c7475..9a5c996 100644
--- a/gdb/testsuite/gdb.base/fixsection.exp
+++ b/gdb/testsuite/gdb.base/fixsection.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/flexible-array-member.c b/gdb/testsuite/gdb.base/flexible-array-member.c
index d53bcd0..00e1313 100644
--- a/gdb/testsuite/gdb.base/flexible-array-member.c
+++ b/gdb/testsuite/gdb.base/flexible-array-member.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/flexible-array-member.exp b/gdb/testsuite/gdb.base/flexible-array-member.exp
index 7bc40de..5e8cc9a 100644
--- a/gdb/testsuite/gdb.base/flexible-array-member.exp
+++ b/gdb/testsuite/gdb.base/flexible-array-member.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/float.c b/gdb/testsuite/gdb.base/float.c
index ec0beee..52e4719 100644
--- a/gdb/testsuite/gdb.base/float.c
+++ b/gdb/testsuite/gdb.base/float.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/float.exp b/gdb/testsuite/gdb.base/float.exp
index 49dc0a3..278b3f5 100644
--- a/gdb/testsuite/gdb.base/float.exp
+++ b/gdb/testsuite/gdb.base/float.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/float128.c b/gdb/testsuite/gdb.base/float128.c
index ee6dde4..475d7f4 100644
--- a/gdb/testsuite/gdb.base/float128.c
+++ b/gdb/testsuite/gdb.base/float128.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/float128.exp b/gdb/testsuite/gdb.base/float128.exp
index a779318..95b83af 100644
--- a/gdb/testsuite/gdb.base/float128.exp
+++ b/gdb/testsuite/gdb.base/float128.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/floatn.c b/gdb/testsuite/gdb.base/floatn.c
index 5b1a741..d7c33e7 100644
--- a/gdb/testsuite/gdb.base/floatn.c
+++ b/gdb/testsuite/gdb.base/floatn.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/floatn.exp b/gdb/testsuite/gdb.base/floatn.exp
index 6cfd0fd..7138d04 100644
--- a/gdb/testsuite/gdb.base/floatn.exp
+++ b/gdb/testsuite/gdb.base/floatn.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/foll-exec-c++.exp b/gdb/testsuite/gdb.base/foll-exec-c++.exp
new file mode 100644
index 0000000..d96310b
--- /dev/null
+++ b/gdb/testsuite/gdb.base/foll-exec-c++.exp
@@ -0,0 +1,24 @@
+# Copyright 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# This file is part of the gdb testsuite
+
+# See foll-exec.exp.tcl for test details. This file runs the test
+# using the C++ compiler.
+
+require allow_cplus_tests
+set lang c++
+
+source $srcdir/$subdir/foll-exec.exp.tcl
diff --git a/gdb/testsuite/gdb.base/foll-exec-c.exp b/gdb/testsuite/gdb.base/foll-exec-c.exp
new file mode 100644
index 0000000..67f62cc
--- /dev/null
+++ b/gdb/testsuite/gdb.base/foll-exec-c.exp
@@ -0,0 +1,23 @@
+# Copyright 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# This file is part of the gdb testsuite
+
+# See foll-exec.exp.tcl for test details. This file runs the test
+# using the C compiler.
+
+set lang c
+
+source $srcdir/$subdir/foll-exec.exp.tcl
diff --git a/gdb/testsuite/gdb.base/foll-exec-mode.c b/gdb/testsuite/gdb.base/foll-exec-mode.c
index 9bd2554..be0fa80 100644
--- a/gdb/testsuite/gdb.base/foll-exec-mode.c
+++ b/gdb/testsuite/gdb.base/foll-exec-mode.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/foll-exec-mode.exp b/gdb/testsuite/gdb.base/foll-exec-mode.exp
index 56a2ffc..ec2d905 100644
--- a/gdb/testsuite/gdb.base/foll-exec-mode.exp
+++ b/gdb/testsuite/gdb.base/foll-exec-mode.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/foll-exec.c b/gdb/testsuite/gdb.base/foll-exec.c
index e3a47f0..291f803 100644
--- a/gdb/testsuite/gdb.base/foll-exec.c
+++ b/gdb/testsuite/gdb.base/foll-exec.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 1997-2024 Free Software Foundation, Inc.
+ Copyright 1997-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,25 +19,38 @@
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
-
+#include <libgen.h>
+#include <assert.h>
#include <limits.h>
int global_i = 100;
+#ifndef EXECD_PROG
+#define EXECD_PROG "execd-prog"
+#endif
+
int main (int argc, char ** argv)
{
int local_j = global_i + 1;
int local_k = local_j + 1;
char prog[PATH_MAX];
- int len;
+ size_t len = PATH_MAX - 1;
+
+ printf ("foll-exec is about to execlp(%s)...\n", EXECD_PROG);
+
+ prog [len] = '\0';
+
+ strncpy (prog, dirname (argv[0]), len);
+ len -= strlen (prog);
+ assert (len > 0);
- printf ("foll-exec is about to execlp(execd-prog)...\n");
+ strncat (prog, "/", len);
+ len -= 1;
+ assert (len > 0);
- strcpy (prog, argv[0]);
- len = strlen (prog);
- /* Replace "foll-exec" with "execd-prog". */
- memcpy (prog + len - 9, "execd-prog", 10);
- prog[len + 1] = 0;
+ strncat (prog, EXECD_PROG, len);
+ len -= strlen (EXECD_PROG);
+ assert (len > 0);
/* In the following function call, maximum line length exceed the limit 80.
This is intentional and required for clang compiler such that complete
@@ -45,7 +58,7 @@ int main (int argc, char ** argv)
multi-line. */
execlp (prog, /* tbreak-execlp */ prog, "execlp arg1 from foll-exec", (char *) 0);
- printf ("foll-exec is about to execl(execd-prog)...\n");
+ printf ("foll-exec is about to execl(%s)...\n", EXECD_PROG);
/* In the following function call, maximum line length exceed the limit 80.
This is intentional and required for clang compiler such that complete
@@ -61,7 +74,7 @@ int main (int argc, char ** argv)
argv[0] = prog;
- printf ("foll-exec is about to execv(execd-prog)...\n");
+ printf ("foll-exec is about to execv(%s)...\n", EXECD_PROG);
execv (prog, argv); /* tbreak-execv */
}
diff --git a/gdb/testsuite/gdb.base/foll-exec.exp b/gdb/testsuite/gdb.base/foll-exec.exp.tcl
index 206e713..8f96a55 100644
--- a/gdb/testsuite/gdb.base/foll-exec.exp
+++ b/gdb/testsuite/gdb.base/foll-exec.exp.tcl
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,33 +22,55 @@ require {istarget "*-linux*"}
standard_testfile foll-exec.c
-set testfile2 "execd-prog"
-set srcfile2 ${testfile2}.c
-set binfile2 [standard_output_file ${testfile2}]
+# Compile a program that performs an exec as EXECER_LANG, and a
+# program that will be exec'd as EXECEE_LANG. Either language can be
+# 'c' or 'c++'. Then run various test associated with 'catch exec'
+# using the compiled programs.
+proc do_exec_tests { execer_lang execee_lang } {
+ global srcfile testfile
+ global gdb_prompt
-set compile_options debug
+ # First compile the program to be exec'd, the execee.
+ set execee_base_filename "execd-prog"
+ set srcfile2 ${execee_base_filename}.c
+ set execee_testfile "execd-prog-${execee_lang}"
+ set execee_testfile_re [string_to_regexp $execee_testfile]
+ set execee_binfile [standard_output_file $execee_testfile]
-# build the first test case
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile2}" "${binfile2}" executable $compile_options] != "" } {
- untested "failed to compile"
- return -1
-}
+ set execee_flags debug
+ if { $execee_lang == "c++" } {
+ lappend execee_flags "c++"
+ }
-if { [is_remote target] } {
- gdb_remote_download target $binfile2
-}
+ if { [build_executable "failed to build $execee_testfile" $execee_testfile \
+ $srcfile2 $execee_flags] == -1 } {
+ return
+ }
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $compile_options] != "" } {
- untested "failed to compile"
- return -1
-}
+ if { [is_remote target] } {
+ gdb_remote_download target $execee_binfile
+ }
-proc do_exec_tests {} {
- global binfile srcfile srcfile2 testfile testfile2
- global gdb_prompt
+
+ # Now compile the program to do the exec, the execer.
+ set execer_testfile "$testfile-${execee_lang}"
+ set execer_binfile [standard_output_file $execer_testfile]
+
+ set execer_flags debug
+ if { $execer_lang == "c++" } {
+ lappend execer_flags "c++"
+ }
+ lappend execer_flags "additional_flags=-DEXECD_PROG=\"${execee_testfile}\""
+
+ if { [build_executable "failed to build $execer_testfile" $execer_testfile \
+ $srcfile $execer_flags] == -1 } {
+ return
+ }
+
+ # Now we can start running the tests.
+ clean_restart $execer_binfile
# Start the program running, and stop at main.
- #
if {![runto_main]} {
return
}
@@ -71,7 +93,7 @@ proc do_exec_tests {} {
return
}
- clean_restart $binfile
+ clean_restart $execer_binfile
# Start the program running, and stop at main.
#
@@ -120,7 +142,7 @@ proc do_exec_tests {} {
set execd_line [gdb_get_line_number "after-exec" $srcfile2]
send_gdb "next\n"
gdb_expect {
- -re ".*xecuting new program: .*${testfile2}.*${srcfile2}:${execd_line}.*int local_j = argc;.*$gdb_prompt $"\
+ -re ".*xecuting new program: .*${execee_testfile_re}.*${srcfile2}:${execd_line}.*int local_j = argc;.*$gdb_prompt $"\
{pass "step through execlp call"}
-re "$gdb_prompt $" {fail "step through execlp call"}
timeout {fail "(timeout) step through execlp call"}
@@ -160,7 +182,7 @@ proc do_exec_tests {} {
# Explicitly kill this program, or a subsequent rerun actually runs
# the exec'd program, not the original program...
- clean_restart $binfile
+ clean_restart $execer_binfile
# Start the program running, and stop at main.
#
@@ -193,7 +215,7 @@ proc do_exec_tests {} {
send_gdb "continue\n"
gdb_expect {
- -re ".*xecuting new program:.*${testfile2}.*Catchpoint .*(exec\'d .*${testfile2}).*$gdb_prompt $"\
+ -re ".*xecuting new program:.*${execee_testfile_re}.*Catchpoint .*(exec\'d .*${execee_testfile_re}).*$gdb_prompt $"\
{pass "hit catch exec"}
-re "$gdb_prompt $" {fail "hit catch exec"}
timeout {fail "(timeout) hit catch exec"}
@@ -210,7 +232,7 @@ proc do_exec_tests {} {
#
set msg "info shows catchpoint exec pathname"
gdb_test_multiple "info breakpoints" $msg {
- -re ".*catchpoint.*keep y.*exec, program \".*${testfile2}\".*$gdb_prompt $" {
+ -re ".*catchpoint.*keep y.*exec, program \".*${execee_testfile_re}\".*$gdb_prompt $" {
pass $msg
}
}
@@ -228,7 +250,7 @@ proc do_exec_tests {} {
# Explicitly kill this program, or a subsequent rerun actually runs
# the exec'd program, not the original program...
- clean_restart $binfile
+ clean_restart $execer_binfile
# Start the program running, and stop at main.
#
@@ -269,7 +291,7 @@ proc do_exec_tests {} {
#
send_gdb "next 2\n"
gdb_expect {
- -re ".*xecuting new program: .*${testfile2}.*${srcfile2}:${execd_line}.*int local_j = argc;.*$gdb_prompt $"\
+ -re ".*xecuting new program: .*${execee_testfile_re}.*${srcfile2}:${execd_line}.*int local_j = argc;.*$gdb_prompt $"\
{pass "step through execl call"}
-re "$gdb_prompt $" {fail "step through execl call"}
timeout {fail "(timeout) step through execl call"}
@@ -295,7 +317,7 @@ proc do_exec_tests {} {
# Explicitly kill this program, or a subsequent rerun actually runs
# the exec'd program, not the original program...
- clean_restart $binfile
+ clean_restart $execer_binfile
# Start the program running, and stop at main.
#
@@ -330,7 +352,7 @@ proc do_exec_tests {} {
}
send_gdb "next\n"
gdb_expect {
- -re ".*xecuting new program: .*${testfile2}.*${srcfile2}:${execd_line}.*int local_j = argc;.*$gdb_prompt $"\
+ -re ".*xecuting new program: .*${execee_testfile_re}.*${srcfile2}:${execd_line}.*int local_j = argc;.*$gdb_prompt $"\
{pass "step through execv call"}
-re "$gdb_prompt $" {fail "step through execv call"}
timeout {fail "(timeout) step through execv call"}
@@ -356,7 +378,7 @@ proc do_exec_tests {} {
# Explicitly kill this program, or a subsequent rerun actually runs
# the exec'd program, not the original program...
- clean_restart $binfile
+ clean_restart $execer_binfile
# Start the program running, and stop at main.
#
@@ -370,13 +392,13 @@ proc do_exec_tests {} {
#
send_gdb "continue\n"
gdb_expect {
- -re ".*xecuting new program: .*${testfile2}.*${srcfile2}:${execd_line}.*int local_j = argc;.*$gdb_prompt $"\
+ -re ".*xecuting new program: .*${execee_testfile_re}.*${srcfile2}:${execd_line}.*int local_j = argc;.*$gdb_prompt $"\
{pass "continue through exec"}
-re "$gdb_prompt $" {fail "continue through exec"}
timeout {fail "(timeout) continue through exec"}
}
}
-clean_restart $binfile
-
-do_exec_tests
+foreach_with_prefix execee_lang { c c++ } {
+ do_exec_tests $lang $execee_lang
+}
diff --git a/gdb/testsuite/gdb.base/foll-fork-syscall.c b/gdb/testsuite/gdb.base/foll-fork-syscall.c
new file mode 100644
index 0000000..ef695f5
--- /dev/null
+++ b/gdb/testsuite/gdb.base/foll-fork-syscall.c
@@ -0,0 +1,35 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <stdio.h>
+
+int
+main (int argc, char **argv)
+{
+ int pid, x = 0;
+
+ pid = fork ();
+ if (pid == 0) /* set breakpoint here */
+ printf ("I am the child\n");
+ else
+ printf ("I am the parent\n");
+
+ chdir (".");
+ ++x; /* set exit breakpoint here */
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.base/foll-fork-syscall.exp b/gdb/testsuite/gdb.base/foll-fork-syscall.exp
new file mode 100644
index 0000000..21ef334
--- /dev/null
+++ b/gdb/testsuite/gdb.base/foll-fork-syscall.exp
@@ -0,0 +1,143 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Test catching syscalls with all permutations of follow-fork parent/child
+# and detach-on-fork on/off.
+
+# Test relies on checking follow-fork output. Do not run if gdb debug is
+# enabled because it will be redirected to the log.
+require !gdb_debug_enabled
+require {is_any_target "i?86-*-*" "x86_64-*-*"}
+require allow_fork_tests
+
+standard_testfile
+
+if {[build_executable "failed to prepare" $testfile $srcfile debug]} {
+ return -1
+}
+
+proc setup_gdb {} {
+ global testfile
+
+ clean_restart $testfile
+
+ if {![runto_main]} {
+ return false
+ }
+
+ # Set a breakpoint after the fork is "complete."
+ if {![gdb_breakpoint [gdb_get_line_number "set breakpoint here"]]} {
+ return false
+ }
+
+ # Set exit breakpoint (to prevent inferior from exiting).
+ if {![gdb_breakpoint [gdb_get_line_number "set exit breakpoint here"]]} {
+ return false
+ }
+ return true
+}
+
+# Check that fork catchpoints are supported, as an indicator for whether
+# fork-following is supported. Return 1 if they are, else 0.
+
+proc_with_prefix check_fork_catchpoints {} {
+ global gdb_prompt
+
+ if { ![setup_gdb] } {
+ return false
+ }
+
+ # Verify that the system supports "catch fork".
+ gdb_test "catch fork" "Catchpoint \[0-9\]* \\(fork\\)" "insert first fork catchpoint"
+ set has_fork_catchpoints false
+ gdb_test_multiple "continue" "continue to first fork catchpoint" {
+ -re ".*Your system does not support this type\r\nof catchpoint.*$gdb_prompt $" {
+ unsupported "continue to first fork catchpoint"
+ }
+ -re ".*Catchpoint.*$gdb_prompt $" {
+ set has_fork_catchpoints true
+ pass "continue to first fork catchpoint"
+ }
+ }
+
+ return $has_fork_catchpoints
+}
+
+proc_with_prefix test_catch_syscall {follow-fork-mode detach-on-fork} {
+ # Start with shiny new gdb instance.
+ if {![setup_gdb]} {
+ return
+ }
+
+ # The "Detaching..." and "Attaching..." messages may be hidden by
+ # default.
+ gdb_test_no_output "set verbose"
+
+ # Setup modes to test.
+ gdb_test_no_output "set follow-fork-mode ${follow-fork-mode}"
+ gdb_test_no_output "set detach-on-fork ${detach-on-fork}"
+
+ gdb_test "catch fork" "Catchpoint . \\(fork\\)"
+ gdb_test "catch syscall chdir" "Catchpoint . \\(syscall 'chdir'.*\\)"
+
+ # Which inferior we're expecting to follow. Assuming the parent
+ # will be inferior #1, and the child will be inferior #2.
+ if {${follow-fork-mode} == "parent"} {
+ set following_inf 1
+ } else {
+ set followin_inf 2
+ }
+ # Next stop should be the fork catchpoint.
+ set expected_re ""
+ append expected_re "Catchpoint . \\(forked process.*"
+ gdb_test "continue" $expected_re "continue to fork catchpoint"
+
+ # Next stop should be the breakpoint after the fork.
+ set expected_re ".*"
+ if {${follow-fork-mode} == "child" || ${detach-on-fork} == "off"} {
+ append expected_re "\\\[New inferior.*"
+ }
+ if {${detach-on-fork} == "on"} {
+ append expected_re "\\\[Detaching after fork from "
+ if {${follow-fork-mode} == "parent"} {
+ append expected_re "child"
+ } else {
+ append expected_re "parent"
+ }
+ append expected_re " process.*"
+ }
+ append expected_re "Breakpoint .*set breakpoint here.*"
+ gdb_test "continue" $expected_re "continue to breakpoint after fork"
+
+ # Next stop should be the syscall catchpoint.
+ set expected_re ".*Catchpoint . \\(call to syscall chdir\\).*"
+ gdb_test continue $expected_re "continue to chdir syscall"
+}
+
+# Check for follow-fork support.
+if {![check_fork_catchpoints]} {
+ untested "follow-fork not supported"
+ return
+}
+
+# Test all permutations.
+foreach_with_prefix follow-fork-mode {"parent" "child"} {
+
+ # Do not run tests when not detaching from the parent.
+ # See breakpoints/13457 for discussion.
+ foreach_with_prefix detach-on-fork {"on"} {
+ test_catch_syscall ${follow-fork-mode} ${detach-on-fork}
+ }
+}
diff --git a/gdb/testsuite/gdb.base/foll-fork.exp b/gdb/testsuite/gdb.base/foll-fork.exp
index 0d801f0..12db516 100644
--- a/gdb/testsuite/gdb.base/foll-fork.exp
+++ b/gdb/testsuite/gdb.base/foll-fork.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -17,6 +17,8 @@
# enabled as it will be redirected to the log.
require !gdb_debug_enabled
+require allow_fork_tests
+
standard_testfile
if {[build_executable "failed to prepare" $testfile $srcfile debug]} {
diff --git a/gdb/testsuite/gdb.base/foll-vfork-exit.c b/gdb/testsuite/gdb.base/foll-vfork-exit.c
index 5f8871d..5085a18 100644
--- a/gdb/testsuite/gdb.base/foll-vfork-exit.c
+++ b/gdb/testsuite/gdb.base/foll-vfork-exit.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1997-2024 Free Software Foundation, Inc.
+ Copyright 1997-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/foll-vfork.c b/gdb/testsuite/gdb.base/foll-vfork.c
index 6a4d105..32a4c79 100644
--- a/gdb/testsuite/gdb.base/foll-vfork.c
+++ b/gdb/testsuite/gdb.base/foll-vfork.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1997-2024 Free Software Foundation, Inc.
+ Copyright 1997-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/foll-vfork.exp b/gdb/testsuite/gdb.base/foll-vfork.exp
index 6736303..6ca7711 100644
--- a/gdb/testsuite/gdb.base/foll-vfork.exp
+++ b/gdb/testsuite/gdb.base/foll-vfork.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -18,12 +18,7 @@
# either execs or exits --- since those events take somewhat different
# code paths in GDB, both variants are exercised.
-# Until "set follow-fork-mode" and "catch vfork" are implemented on
-# other targets...
-#
-if {![istarget "*-linux*"]} {
- continue
-}
+require allow_fork_tests
standard_testfile .c -exit.c vforked-prog.c
diff --git a/gdb/testsuite/gdb.base/fork-no-detach-follow-child-dlopen-shlib.c b/gdb/testsuite/gdb.base/fork-no-detach-follow-child-dlopen-shlib.c
index 67c8e99..26ecf57 100644
--- a/gdb/testsuite/gdb.base/fork-no-detach-follow-child-dlopen-shlib.c
+++ b/gdb/testsuite/gdb.base/fork-no-detach-follow-child-dlopen-shlib.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/fork-no-detach-follow-child-dlopen.c b/gdb/testsuite/gdb.base/fork-no-detach-follow-child-dlopen.c
index e6530af..f3921d0 100644
--- a/gdb/testsuite/gdb.base/fork-no-detach-follow-child-dlopen.c
+++ b/gdb/testsuite/gdb.base/fork-no-detach-follow-child-dlopen.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/fork-no-detach-follow-child-dlopen.exp b/gdb/testsuite/gdb.base/fork-no-detach-follow-child-dlopen.exp
index de339c5..2d47d5d 100644
--- a/gdb/testsuite/gdb.base/fork-no-detach-follow-child-dlopen.exp
+++ b/gdb/testsuite/gdb.base/fork-no-detach-follow-child-dlopen.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -23,6 +23,7 @@
# in the source of the shlib, and "list" should display the source where
# the program stopped.
+require allow_fork_tests
require allow_shlib_tests
standard_testfile .c -shlib.c
diff --git a/gdb/testsuite/gdb.base/fork-print-inferior-events.c b/gdb/testsuite/gdb.base/fork-print-inferior-events.c
index 94fb903..831f039 100644
--- a/gdb/testsuite/gdb.base/fork-print-inferior-events.c
+++ b/gdb/testsuite/gdb.base/fork-print-inferior-events.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/fork-print-inferior-events.exp b/gdb/testsuite/gdb.base/fork-print-inferior-events.exp
index 9e8c98d..19ace00 100644
--- a/gdb/testsuite/gdb.base/fork-print-inferior-events.exp
+++ b/gdb/testsuite/gdb.base/fork-print-inferior-events.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -19,6 +19,8 @@
# inferior-events [on,off]', 'set follow-fork-mode [child,parent]' and
# 'set detach-on-fork [on,off]' are the correct ones.
+require allow_fork_tests
+
# This test relies on "run", so it cannot run on target remote stubs.
require !use_gdb_stub
diff --git a/gdb/testsuite/gdb.base/fork-running-state.c b/gdb/testsuite/gdb.base/fork-running-state.c
index e1446a3..d5d34fe 100644
--- a/gdb/testsuite/gdb.base/fork-running-state.c
+++ b/gdb/testsuite/gdb.base/fork-running-state.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/fork-running-state.exp b/gdb/testsuite/gdb.base/fork-running-state.exp
index de4322e..c446800 100644
--- a/gdb/testsuite/gdb.base/fork-running-state.exp
+++ b/gdb/testsuite/gdb.base/fork-running-state.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -17,6 +17,8 @@
# in non-stop). GDB used to miss updating the parent/child running
# states after a fork.
+require allow_fork_tests
+
standard_testfile
# The test proper.
diff --git a/gdb/testsuite/gdb.base/fortran-sym-case.c b/gdb/testsuite/gdb.base/fortran-sym-case.c
index fdc2ea6..3760b91 100644
--- a/gdb/testsuite/gdb.base/fortran-sym-case.c
+++ b/gdb/testsuite/gdb.base/fortran-sym-case.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/fortran-sym-case.exp b/gdb/testsuite/gdb.base/fortran-sym-case.exp
index f4b8985..58383c9 100644
--- a/gdb/testsuite/gdb.base/fortran-sym-case.exp
+++ b/gdb/testsuite/gdb.base/fortran-sym-case.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/frame-args.c b/gdb/testsuite/gdb.base/frame-args.c
index 9123d1b..879ec60 100644
--- a/gdb/testsuite/gdb.base/frame-args.c
+++ b/gdb/testsuite/gdb.base/frame-args.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/frame-args.exp b/gdb/testsuite/gdb.base/frame-args.exp
index ddf8400..31e4d15 100644
--- a/gdb/testsuite/gdb.base/frame-args.exp
+++ b/gdb/testsuite/gdb.base/frame-args.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/frame-info-consistent.exp b/gdb/testsuite/gdb.base/frame-info-consistent.exp
index 4f48311..67bcd18 100644
--- a/gdb/testsuite/gdb.base/frame-info-consistent.exp
+++ b/gdb/testsuite/gdb.base/frame-info-consistent.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/frame-selection.c b/gdb/testsuite/gdb.base/frame-selection.c
index 237e155..7d36c75 100644
--- a/gdb/testsuite/gdb.base/frame-selection.c
+++ b/gdb/testsuite/gdb.base/frame-selection.c
@@ -1,4 +1,4 @@
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -15,6 +15,8 @@
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>
+
int
frame_2 (void)
{
@@ -40,6 +42,23 @@ recursive (int arg)
return v;
}
+/* A function that never returns. */
+void __attribute__((noreturn))
+func_that_never_returns (void)
+{
+ exit (0);
+}
+
+/* A function that tail calls. Calling a 'noreturn' function isn't
+ required for a tail call, but at low optimisation levels, gcc will apply
+ the tail call optimisation only for 'noreturn' calls. */
+
+void
+func_that_tail_calls (void)
+{
+ func_that_never_returns ();
+}
+
int
main (void)
{
@@ -48,5 +67,7 @@ main (void)
i = frame_1 ();
j = recursive (0);
+ func_that_tail_calls ();
+
return i + j;
}
diff --git a/gdb/testsuite/gdb.base/frame-selection.exp b/gdb/testsuite/gdb.base/frame-selection.exp
index e8d9c87..fd492a3 100644
--- a/gdb/testsuite/gdb.base/frame-selection.exp
+++ b/gdb/testsuite/gdb.base/frame-selection.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -186,3 +186,40 @@ with_test_prefix "second frame_2 breakpoint" {
gdb_test "frame function recursive" "#1 $hex in recursive.*" \
"select frame for function recursive, third attempt"
}
+
+# At one point using the 'function' sub-command (e.g. 'frame function
+# ...') would fail to select a frame if the frame ended with a
+# tail-call, and the address within the frame was outside the bounds
+# of the function.
+with_test_prefix "stack with tail call" {
+ gdb_breakpoint func_that_never_returns
+ gdb_continue_to_breakpoint func_that_never_returns
+
+ gdb_test "bt" \
+ [multi_line \
+ "#0 func_that_never_returns \\(\\) at \[^\r\n\]+" \
+ "#1 $hex in func_that_tail_calls \\(\\) at \[^\r\n\]+" \
+ "#2 $hex in main \\(\\) at \[^\r\n\]+"] \
+ "bt from func_that_never_returns"
+
+ # Reset the frame addresses based on the new stack.
+ gdb_test "frame 0" "#0 func_that_never_returns.*"
+ set frame_0_address [ get_frame_address "frame 0" ]
+ gdb_test "frame 1" "#1 $hex in func_that_tail_calls.*"
+ set frame_1_address [ get_frame_address "frame 1" ]
+ gdb_test "frame 2" "#2 $hex in main.*"
+ set frame_2_address [ get_frame_address "frame 2" ]
+
+ # Test 'select-frame function ...' command.
+ gdb_test_no_output "select-frame function func_that_never_returns"
+ check_frame "0" "${frame_0_address}" "func_that_never_returns"
+ gdb_test_no_output "select-frame function func_that_tail_calls"
+ check_frame "1" "${frame_1_address}" "func_that_tail_calls"
+ gdb_test_no_output "select-frame function main"
+ check_frame "2" "${frame_2_address}" "main"
+
+ # Test 'frame function ...' command.
+ gdb_test "frame function func_that_never_returns" "#0 func_that_never_returns.*"
+ gdb_test "frame function func_that_tail_calls" "#1 $hex in func_that_tail_calls.*"
+ gdb_test "frame function main" "#2 $hex in main.*"
+}
diff --git a/gdb/testsuite/gdb.base/frame-view.c b/gdb/testsuite/gdb.base/frame-view.c
index 619335e..ae00a2f 100644
--- a/gdb/testsuite/gdb.base/frame-view.c
+++ b/gdb/testsuite/gdb.base/frame-view.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/frame-view.exp b/gdb/testsuite/gdb.base/frame-view.exp
index 705a024..fa00c35 100644
--- a/gdb/testsuite/gdb.base/frame-view.exp
+++ b/gdb/testsuite/gdb.base/frame-view.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/frame-view.py b/gdb/testsuite/gdb.base/frame-view.py
index 7b341b4..832f348 100644
--- a/gdb/testsuite/gdb.base/frame-view.py
+++ b/gdb/testsuite/gdb.base/frame-view.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/frameapply.c b/gdb/testsuite/gdb.base/frameapply.c
index 388113c..0f1a32a 100644
--- a/gdb/testsuite/gdb.base/frameapply.c
+++ b/gdb/testsuite/gdb.base/frameapply.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/frameapply.exp b/gdb/testsuite/gdb.base/frameapply.exp
index 1d3eac9..589a922 100644
--- a/gdb/testsuite/gdb.base/frameapply.exp
+++ b/gdb/testsuite/gdb.base/frameapply.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/freebpcmd.c b/gdb/testsuite/gdb.base/freebpcmd.c
index 4d69c5b..cf749ee 100644
--- a/gdb/testsuite/gdb.base/freebpcmd.c
+++ b/gdb/testsuite/gdb.base/freebpcmd.c
@@ -1,5 +1,5 @@
/* Test program for GDB crashes while doing bp commands that continue inferior.
- Copyright 2003-2024 Free Software Foundation, Inc.
+ Copyright 2003-2025 Free Software Foundation, Inc.
This file is part of the gdb testsuite.
diff --git a/gdb/testsuite/gdb.base/freebpcmd.exp b/gdb/testsuite/gdb.base/freebpcmd.exp
index 3c6958b..90333f9 100644
--- a/gdb/testsuite/gdb.base/freebpcmd.exp
+++ b/gdb/testsuite/gdb.base/freebpcmd.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/fullname.c b/gdb/testsuite/gdb.base/fullname.c
index 8a08de0..0ea4053 100644
--- a/gdb/testsuite/gdb.base/fullname.c
+++ b/gdb/testsuite/gdb.base/fullname.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/fullname.exp b/gdb/testsuite/gdb.base/fullname.exp
index be7250e..430d0c4 100644
--- a/gdb/testsuite/gdb.base/fullname.exp
+++ b/gdb/testsuite/gdb.base/fullname.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/fullpath-expand-func.c b/gdb/testsuite/gdb.base/fullpath-expand-func.c
index 9024f60..c07b72c 100644
--- a/gdb/testsuite/gdb.base/fullpath-expand-func.c
+++ b/gdb/testsuite/gdb.base/fullpath-expand-func.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/fullpath-expand.c b/gdb/testsuite/gdb.base/fullpath-expand.c
index 781951f..614f06a 100644
--- a/gdb/testsuite/gdb.base/fullpath-expand.c
+++ b/gdb/testsuite/gdb.base/fullpath-expand.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/fullpath-expand.exp b/gdb/testsuite/gdb.base/fullpath-expand.exp
index c2ae85a..d18a6f4 100644
--- a/gdb/testsuite/gdb.base/fullpath-expand.exp
+++ b/gdb/testsuite/gdb.base/fullpath-expand.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/func-ptr.c b/gdb/testsuite/gdb.base/func-ptr.c
index cfb766b..d541905 100644
--- a/gdb/testsuite/gdb.base/func-ptr.c
+++ b/gdb/testsuite/gdb.base/func-ptr.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/func-ptr.exp b/gdb/testsuite/gdb.base/func-ptr.exp
index c1d79b2..4bc80ac 100644
--- a/gdb/testsuite/gdb.base/func-ptr.exp
+++ b/gdb/testsuite/gdb.base/func-ptr.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/func-ptrs.c b/gdb/testsuite/gdb.base/func-ptrs.c
index 7c05895..7eddfba 100644
--- a/gdb/testsuite/gdb.base/func-ptrs.c
+++ b/gdb/testsuite/gdb.base/func-ptrs.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/func-ptrs.exp b/gdb/testsuite/gdb.base/func-ptrs.exp
index cf6da04..5532c6c 100644
--- a/gdb/testsuite/gdb.base/func-ptrs.exp
+++ b/gdb/testsuite/gdb.base/func-ptrs.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/funcargs.exp b/gdb/testsuite/gdb.base/funcargs.exp
index ac6741d..1c1b74b 100644
--- a/gdb/testsuite/gdb.base/funcargs.exp
+++ b/gdb/testsuite/gdb.base/funcargs.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gcore-buffer-overflow.c b/gdb/testsuite/gdb.base/gcore-buffer-overflow.c
index a035686..f5aa937 100644
--- a/gdb/testsuite/gdb.base/gcore-buffer-overflow.c
+++ b/gdb/testsuite/gdb.base/gcore-buffer-overflow.c
@@ -1,4 +1,4 @@
-/* Copyright 2007-2024 Free Software Foundation, Inc.
+/* Copyright 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/gcore-buffer-overflow.exp b/gdb/testsuite/gdb.base/gcore-buffer-overflow.exp
index f084eb4..0fb79c7 100644
--- a/gdb/testsuite/gdb.base/gcore-buffer-overflow.exp
+++ b/gdb/testsuite/gdb.base/gcore-buffer-overflow.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gcore-memory-usage.c b/gdb/testsuite/gdb.base/gcore-memory-usage.c
new file mode 100644
index 0000000..a4a1972
--- /dev/null
+++ b/gdb/testsuite/gdb.base/gcore-memory-usage.c
@@ -0,0 +1,53 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+int spin = 1;
+
+int
+main (int argc, char **argv)
+{
+ /* Small quality of life thing for people re-running tests
+ manually. */
+ if (argc < 2)
+ {
+ printf("Usage: %s [Megs]", argv[0]);
+ return 1;
+ }
+ /* Use argv to calculate how many megabytes to allocate.
+ Do this to see how much gcore memory usage increases
+ based on inferior dynamic memory. */
+ int megs = atoi (argv[1]);
+ char *p = malloc (megs * 1024 * 1024);
+
+ /* Setup an alarm, in case something goes wrong with testing. */
+ alarm (300);
+
+ /* Wait a long time so GDB can attach to this.
+ We need to have the second statement inside of the loop
+ to sidestep PR breakpoints/32744. */
+ while (spin)
+ sleep (1);/* TAG: BREAK HERE */
+
+ /* Let's be nice citizens :). */
+ free (p);
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.base/gcore-memory-usage.exp b/gdb/testsuite/gdb.base/gcore-memory-usage.exp
new file mode 100644
index 0000000..bd041f2
--- /dev/null
+++ b/gdb/testsuite/gdb.base/gcore-memory-usage.exp
@@ -0,0 +1,96 @@
+# Copyright (C) 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Test that gcore doesn't end up using excessive memory.
+
+require {istarget "*-*-linux*"}
+require can_spawn_for_attach
+
+standard_testfile
+
+if {[build_executable "failed to prepare" $testfile $srcfile {debug}] == -1} {
+ return -1
+}
+
+# Read the proc_pid_status page, to find how much memory the given
+# PID is using. This is meant to be used to find the
+# memory usage for the GDB in this test.
+# Returns memory usage in Kb, or -1 if it couldn't be found.
+proc get_mem_usage {pid prefix} {
+ set fd [open "/proc/$pid/status"]
+ set memory -1
+ while {[gets $fd line] != -1} {
+ if {[regexp {VmSize:\s*([0-9]+) kB} $line full mem]} {
+ set memory $mem
+ break
+ }
+ }
+ close $fd
+
+ gdb_assert {$memory != -1} "$prefix: Managed to read the memory usage"
+
+ return $memory
+}
+
+# This proc restarts GDB, runs the inferior with the desired
+# amount of memory, then checks how much memory is necessary
+# to run the gcore command. It will return -1 if the gcore
+# command fails, 0 otherwise.
+proc run_test {megs} {
+ with_test_prefix "$megs Mb" {
+ clean_restart $::testfile
+
+ set corefile [standard_output_file "${::testfile}.core"]
+ set inferior_spawn_id [spawn_wait_for_attach [list "$::binfile $megs"]]
+ set inferior_pid [spawn_id_get_pid $inferior_spawn_id]
+ set gdb_pid [exp_pid -i [board_info host fileid]]
+
+ gdb_test "attach $inferior_pid" "Attaching to.*" attach
+ set line [gdb_get_line_number "TAG: BREAK HERE" $::testfile.c]
+ gdb_breakpoint "${::srcfile}:$line" "break at to known line"
+ gdb_continue_to_breakpoint "continue to known line"
+
+ # Get the important info.
+ set mem_before [get_mem_usage $gdb_pid before]
+ if {![gdb_gcore_cmd $corefile "create the corefile"]} {
+ return -1
+ }
+ set mem_after [get_mem_usage $gdb_pid after]
+
+ # Do the main part of the test: How much is the memory
+ # usage of GDB going to grow after using the gcore command.
+ set diff_k [expr $mem_after - $mem_before]
+ set diff [expr $diff_k/1024]
+ verbose -log "The gcore command used $diff Mb ($diff_k Kb)"
+ # The original plan was to compare to a multiple of MEGS
+ # but since the requirements don't seem to go up as the
+ # inferior allocated more memory, we instead just hardcode
+ # 2 megs, since sometimes 1 is used.
+ gdb_assert {$diff < 2} "gdb did not use too much memory"
+
+ gdb_test_no_output "set spin=0" "Allow program to exit"
+ }
+ return 0
+}
+
+# If we couldn't create the first corefile, there's no point
+# in running the second part of the test.
+if {[run_test 4] != 0} {
+ return
+}
+# Surprisingly enough, the larger inferior doesn't seem to use
+# any extra memory, it usually uses less memory. Which is good,
+# it means our memory requirements aren't growing with the inferior.
+run_test 64
diff --git a/gdb/testsuite/gdb.base/gcore-relro-lib.c b/gdb/testsuite/gdb.base/gcore-relro-lib.c
index 92d6f60..31ac8dc 100644
--- a/gdb/testsuite/gdb.base/gcore-relro-lib.c
+++ b/gdb/testsuite/gdb.base/gcore-relro-lib.c
@@ -1,4 +1,4 @@
-/* Copyright 2010-2024 Free Software Foundation, Inc.
+/* Copyright 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/gcore-relro-main.c b/gdb/testsuite/gdb.base/gcore-relro-main.c
index 99bbfd6..359f304 100644
--- a/gdb/testsuite/gdb.base/gcore-relro-main.c
+++ b/gdb/testsuite/gdb.base/gcore-relro-main.c
@@ -1,4 +1,4 @@
-/* Copyright 2010-2024 Free Software Foundation, Inc.
+/* Copyright 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/gcore-relro-pie.c b/gdb/testsuite/gdb.base/gcore-relro-pie.c
index b4865ff..0c7f1d4 100644
--- a/gdb/testsuite/gdb.base/gcore-relro-pie.c
+++ b/gdb/testsuite/gdb.base/gcore-relro-pie.c
@@ -1,4 +1,4 @@
-/* Copyright 2013-2024 Free Software Foundation, Inc.
+/* Copyright 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/gcore-relro-pie.exp b/gdb/testsuite/gdb.base/gcore-relro-pie.exp
index 1bec244..361fdb6 100644
--- a/gdb/testsuite/gdb.base/gcore-relro-pie.exp
+++ b/gdb/testsuite/gdb.base/gcore-relro-pie.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gcore-relro.exp b/gdb/testsuite/gdb.base/gcore-relro.exp
index 5f99cfb..0090c37 100644
--- a/gdb/testsuite/gdb.base/gcore-relro.exp
+++ b/gdb/testsuite/gdb.base/gcore-relro.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gcore-tls-pie.c b/gdb/testsuite/gdb.base/gcore-tls-pie.c
index 4a57a07..858921a 100644
--- a/gdb/testsuite/gdb.base/gcore-tls-pie.c
+++ b/gdb/testsuite/gdb.base/gcore-tls-pie.c
@@ -1,4 +1,4 @@
-/* Copyright 2013-2024 Free Software Foundation, Inc.
+/* Copyright 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/gcore-tls-pie.exp b/gdb/testsuite/gdb.base/gcore-tls-pie.exp
index a9c1fbd..c508b78 100644
--- a/gdb/testsuite/gdb.base/gcore-tls-pie.exp
+++ b/gdb/testsuite/gdb.base/gcore-tls-pie.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gcore.c b/gdb/testsuite/gdb.base/gcore.c
index 9a3ac08d..bc95fa4 100644
--- a/gdb/testsuite/gdb.base/gcore.c
+++ b/gdb/testsuite/gdb.base/gcore.c
@@ -1,4 +1,4 @@
-/* Copyright 2002-2024 Free Software Foundation, Inc.
+/* Copyright 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/gcore.exp b/gdb/testsuite/gdb.base/gcore.exp
index ff4e94c..0a9f099 100644
--- a/gdb/testsuite/gdb.base/gcore.exp
+++ b/gdb/testsuite/gdb.base/gcore.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,6 +16,7 @@
# This file was written by Michael Snyder (msnyder@redhat.com)
# This is a test for the gdb command "generate-core-file".
+require gcore_cmd_available
standard_testfile
diff --git a/gdb/testsuite/gdb.base/gcorebg.c b/gdb/testsuite/gdb.base/gcorebg.c
index f055454..43d97e3 100644
--- a/gdb/testsuite/gdb.base/gcorebg.c
+++ b/gdb/testsuite/gdb.base/gcorebg.c
@@ -1,4 +1,4 @@
-/* Copyright 2007-2024 Free Software Foundation, Inc.
+/* Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gcorebg.exp b/gdb/testsuite/gdb.base/gcorebg.exp
index 3761f22..3e79702 100644
--- a/gdb/testsuite/gdb.base/gcorebg.exp
+++ b/gdb/testsuite/gdb.base/gcorebg.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gdb-index-err.c b/gdb/testsuite/gdb.base/gdb-index-err.c
index cb8b860..4caa75a 100644
--- a/gdb/testsuite/gdb.base/gdb-index-err.c
+++ b/gdb/testsuite/gdb.base/gdb-index-err.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gdb-index-err.exp b/gdb/testsuite/gdb.base/gdb-index-err.exp
index 0f46b3e..973248a 100644
--- a/gdb/testsuite/gdb.base/gdb-index-err.exp
+++ b/gdb/testsuite/gdb.base/gdb-index-err.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gdb-sigterm-2.exp b/gdb/testsuite/gdb.base/gdb-sigterm-2.exp
index 3899e9b..f55c1ee 100644
--- a/gdb/testsuite/gdb.base/gdb-sigterm-2.exp
+++ b/gdb/testsuite/gdb.base/gdb-sigterm-2.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gdb-sigterm.c b/gdb/testsuite/gdb.base/gdb-sigterm.c
index 7c64555..f7e3455 100644
--- a/gdb/testsuite/gdb.base/gdb-sigterm.c
+++ b/gdb/testsuite/gdb.base/gdb-sigterm.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gdb-sigterm.exp b/gdb/testsuite/gdb.base/gdb-sigterm.exp
index 0f23d03..f0802c4 100644
--- a/gdb/testsuite/gdb.base/gdb-sigterm.exp
+++ b/gdb/testsuite/gdb.base/gdb-sigterm.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gdb1056.exp b/gdb/testsuite/gdb.base/gdb1056.exp
index 78a2f1d..0e0e4a0 100644
--- a/gdb/testsuite/gdb.base/gdb1056.exp
+++ b/gdb/testsuite/gdb.base/gdb1056.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gdb1090.c b/gdb/testsuite/gdb.base/gdb1090.c
index 602a29f..fe30e44 100644
--- a/gdb/testsuite/gdb.base/gdb1090.c
+++ b/gdb/testsuite/gdb.base/gdb1090.c
@@ -1,5 +1,5 @@
/* Test program for multi-register variable.
- Copyright 2003-2024 Free Software Foundation, Inc.
+ Copyright 2003-2025 Free Software Foundation, Inc.
This file is part of the gdb testsuite.
diff --git a/gdb/testsuite/gdb.base/gdb1090.exp b/gdb/testsuite/gdb.base/gdb1090.exp
index 447cb6f..7db8c4b 100644
--- a/gdb/testsuite/gdb.base/gdb1090.exp
+++ b/gdb/testsuite/gdb.base/gdb1090.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gdb11530.c b/gdb/testsuite/gdb.base/gdb11530.c
index 54b5b94..4d61373 100644
--- a/gdb/testsuite/gdb.base/gdb11530.c
+++ b/gdb/testsuite/gdb.base/gdb11530.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
Contributed by Pierre Muller.
diff --git a/gdb/testsuite/gdb.base/gdb11530.exp b/gdb/testsuite/gdb.base/gdb11530.exp
index 7602251..4b910ca 100644
--- a/gdb/testsuite/gdb.base/gdb11530.exp
+++ b/gdb/testsuite/gdb.base/gdb11530.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gdb11531.c b/gdb/testsuite/gdb.base/gdb11531.c
index 900f513..137e3f2 100644
--- a/gdb/testsuite/gdb.base/gdb11531.c
+++ b/gdb/testsuite/gdb.base/gdb11531.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
Contributed by Pierre Muller.
diff --git a/gdb/testsuite/gdb.base/gdb11531.exp b/gdb/testsuite/gdb.base/gdb11531.exp
index 59fc6f5..c6c5e7b 100644
--- a/gdb/testsuite/gdb.base/gdb11531.exp
+++ b/gdb/testsuite/gdb.base/gdb11531.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gdb1250.c b/gdb/testsuite/gdb.base/gdb1250.c
index c909496..f520cca 100644
--- a/gdb/testsuite/gdb.base/gdb1250.c
+++ b/gdb/testsuite/gdb.base/gdb1250.c
@@ -1,6 +1,6 @@
/* Test program for stack trace through noreturn function.
- Copyright 2003-2024 Free Software Foundation, Inc.
+ Copyright 2003-2025 Free Software Foundation, Inc.
This file is part of the gdb testsuite.
diff --git a/gdb/testsuite/gdb.base/gdb1250.exp b/gdb/testsuite/gdb.base/gdb1250.exp
index 832403a..4e83c8c 100644
--- a/gdb/testsuite/gdb.base/gdb1250.exp
+++ b/gdb/testsuite/gdb.base/gdb1250.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gdb1555-main.c b/gdb/testsuite/gdb.base/gdb1555-main.c
index 63a73bd..c1cf1ae 100644
--- a/gdb/testsuite/gdb.base/gdb1555-main.c
+++ b/gdb/testsuite/gdb.base/gdb1555-main.c
@@ -1,6 +1,6 @@
/* Test step/next in a shared library
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/gdb1555.c b/gdb/testsuite/gdb.base/gdb1555.c
index a799ab9..355dee8 100644
--- a/gdb/testsuite/gdb.base/gdb1555.c
+++ b/gdb/testsuite/gdb.base/gdb1555.c
@@ -1,6 +1,6 @@
/* Test step/next in a shared library
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/gdb1555.exp b/gdb/testsuite/gdb.base/gdb1555.exp
index a5b2760..648abd7 100644
--- a/gdb/testsuite/gdb.base/gdb1555.exp
+++ b/gdb/testsuite/gdb.base/gdb1555.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gdb1821.c b/gdb/testsuite/gdb.base/gdb1821.c
index 6ee03f0..6f48eb3 100644
--- a/gdb/testsuite/gdb.base/gdb1821.c
+++ b/gdb/testsuite/gdb.base/gdb1821.c
@@ -1,6 +1,6 @@
/* Test printing of structure member names in gdb. PR exp/1821
- Copyright 2005-2024 Free Software Foundation, Inc.
+ Copyright 2005-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/gdb1821.exp b/gdb/testsuite/gdb.base/gdb1821.exp
index e51444c..c377150 100644
--- a/gdb/testsuite/gdb.base/gdb1821.exp
+++ b/gdb/testsuite/gdb.base/gdb1821.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gdbhistsize-history.exp b/gdb/testsuite/gdb.base/gdbhistsize-history.exp
index 8a99ba9..d73996d 100644
--- a/gdb/testsuite/gdb.base/gdbhistsize-history.exp
+++ b/gdb/testsuite/gdb.base/gdbhistsize-history.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gdbindex-stabs-dwarf.c b/gdb/testsuite/gdb.base/gdbindex-stabs-dwarf.c
index 0e17dc1..b6e3ff8 100644
--- a/gdb/testsuite/gdb.base/gdbindex-stabs-dwarf.c
+++ b/gdb/testsuite/gdb.base/gdbindex-stabs-dwarf.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gdbindex-stabs.c b/gdb/testsuite/gdb.base/gdbindex-stabs.c
index 0b6f46a..5a4a649 100644
--- a/gdb/testsuite/gdb.base/gdbindex-stabs.c
+++ b/gdb/testsuite/gdb.base/gdbindex-stabs.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gdbindex-stabs.exp b/gdb/testsuite/gdb.base/gdbindex-stabs.exp
index c3fe7e5..506ad11 100644
--- a/gdb/testsuite/gdb.base/gdbindex-stabs.exp
+++ b/gdb/testsuite/gdb.base/gdbindex-stabs.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gdbinit-history.exp b/gdb/testsuite/gdb.base/gdbinit-history.exp
index ac9630d..48aae6b 100644
--- a/gdb/testsuite/gdb.base/gdbinit-history.exp
+++ b/gdb/testsuite/gdb.base/gdbinit-history.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gdbvars.exp b/gdb/testsuite/gdb.base/gdbvars.exp
index 7ec7df3..7eddcdc 100644
--- a/gdb/testsuite/gdb.base/gdbvars.exp
+++ b/gdb/testsuite/gdb.base/gdbvars.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1992-2024 Free Software Foundation, Inc.
+# Copyright (C) 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/global-var-nested-by-dso-solib1.c b/gdb/testsuite/gdb.base/global-var-nested-by-dso-solib1.c
index c467fdb..0048db6 100644
--- a/gdb/testsuite/gdb.base/global-var-nested-by-dso-solib1.c
+++ b/gdb/testsuite/gdb.base/global-var-nested-by-dso-solib1.c
@@ -1,4 +1,4 @@
-/* Copyright 2014-2024 Free Software Foundation, Inc.
+/* Copyright 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/global-var-nested-by-dso-solib2.c b/gdb/testsuite/gdb.base/global-var-nested-by-dso-solib2.c
index aedbabc..b592ae7 100644
--- a/gdb/testsuite/gdb.base/global-var-nested-by-dso-solib2.c
+++ b/gdb/testsuite/gdb.base/global-var-nested-by-dso-solib2.c
@@ -1,4 +1,4 @@
-/* Copyright 2014-2024 Free Software Foundation, Inc.
+/* Copyright 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/global-var-nested-by-dso.c b/gdb/testsuite/gdb.base/global-var-nested-by-dso.c
index c7ce3cb..247ae9f 100644
--- a/gdb/testsuite/gdb.base/global-var-nested-by-dso.c
+++ b/gdb/testsuite/gdb.base/global-var-nested-by-dso.c
@@ -1,4 +1,4 @@
-/* Copyright 2014-2024 Free Software Foundation, Inc.
+/* Copyright 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/global-var-nested-by-dso.exp b/gdb/testsuite/gdb.base/global-var-nested-by-dso.exp
index 1b79576..92d6c62 100644
--- a/gdb/testsuite/gdb.base/global-var-nested-by-dso.exp
+++ b/gdb/testsuite/gdb.base/global-var-nested-by-dso.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gnu-debugdata.c b/gdb/testsuite/gdb.base/gnu-debugdata.c
index 1b7c13e..6366cfa 100644
--- a/gdb/testsuite/gdb.base/gnu-debugdata.c
+++ b/gdb/testsuite/gdb.base/gnu-debugdata.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gnu-debugdata.exp b/gdb/testsuite/gdb.base/gnu-debugdata.exp
index e55d113..e959078 100644
--- a/gdb/testsuite/gdb.base/gnu-debugdata.exp
+++ b/gdb/testsuite/gdb.base/gnu-debugdata.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gnu-ifunc-final.c b/gdb/testsuite/gdb.base/gnu-ifunc-final.c
index f9045f8..0d4b976 100644
--- a/gdb/testsuite/gdb.base/gnu-ifunc-final.c
+++ b/gdb/testsuite/gdb.base/gnu-ifunc-final.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gnu-ifunc-lib.c b/gdb/testsuite/gdb.base/gnu-ifunc-lib.c
index 0191182..007df1a 100644
--- a/gdb/testsuite/gdb.base/gnu-ifunc-lib.c
+++ b/gdb/testsuite/gdb.base/gnu-ifunc-lib.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gnu-ifunc.c b/gdb/testsuite/gdb.base/gnu-ifunc.c
index c78bc0a..9ecfc8f 100644
--- a/gdb/testsuite/gdb.base/gnu-ifunc.c
+++ b/gdb/testsuite/gdb.base/gnu-ifunc.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gnu-ifunc.exp b/gdb/testsuite/gdb.base/gnu-ifunc.exp
index ff1d561..c7afbe5 100644
--- a/gdb/testsuite/gdb.base/gnu-ifunc.exp
+++ b/gdb/testsuite/gdb.base/gnu-ifunc.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gnu_vector.c b/gdb/testsuite/gdb.base/gnu_vector.c
index 7007d9a..f738978 100644
--- a/gdb/testsuite/gdb.base/gnu_vector.c
+++ b/gdb/testsuite/gdb.base/gnu_vector.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gnu_vector.exp b/gdb/testsuite/gdb.base/gnu_vector.exp
index cd2bb9b..ac0bff3 100644
--- a/gdb/testsuite/gdb.base/gnu_vector.exp
+++ b/gdb/testsuite/gdb.base/gnu_vector.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gold-gdb-index-2.c b/gdb/testsuite/gdb.base/gold-gdb-index-2.c
index c72c0f0..ac0a60a 100644
--- a/gdb/testsuite/gdb.base/gold-gdb-index-2.c
+++ b/gdb/testsuite/gdb.base/gold-gdb-index-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gold-gdb-index.c b/gdb/testsuite/gdb.base/gold-gdb-index.c
index 5023a66..2bcef13 100644
--- a/gdb/testsuite/gdb.base/gold-gdb-index.c
+++ b/gdb/testsuite/gdb.base/gold-gdb-index.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gold-gdb-index.exp b/gdb/testsuite/gdb.base/gold-gdb-index.exp
index 0309dd3..c91fd3a 100644
--- a/gdb/testsuite/gdb.base/gold-gdb-index.exp
+++ b/gdb/testsuite/gdb.base/gold-gdb-index.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gold-gdb-index.h b/gdb/testsuite/gdb.base/gold-gdb-index.h
index d665fdb..a26b856 100644
--- a/gdb/testsuite/gdb.base/gold-gdb-index.h
+++ b/gdb/testsuite/gdb.base/gold-gdb-index.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gstack.c b/gdb/testsuite/gdb.base/gstack.c
index a871670..aa5ce43 100644
--- a/gdb/testsuite/gdb.base/gstack.c
+++ b/gdb/testsuite/gdb.base/gstack.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/gstack.exp b/gdb/testsuite/gdb.base/gstack.exp
index f603f2b..89be676 100644
--- a/gdb/testsuite/gdb.base/gstack.exp
+++ b/gdb/testsuite/gdb.base/gstack.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -18,7 +18,7 @@ require can_spawn_for_attach
standard_testfile
-if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug}] == -1} {
+if {[build_executable "failed to prepare" $testfile $srcfile {debug}] == -1} {
return -1
}
@@ -62,8 +62,10 @@ if { ![gdb_assert { ![expr {$res < 0 || $res == ""}] } $test] } {
set test "got backtrace"
set saw_backtrace false
set no_awk false
-gdb_test_multiple "" $test {
- -i "$res" -re "#0 +(0x\[0-9a-f\]+ in )?main \(\).*\r\nGSTACK-END\r\n\$" {
+set location_re ${srcfile}:${decimal}
+
+gdb_expect {
+ -i "$res" -re "#0 +(0x\[0-9a-f\]+ in )?main \(\).*$location_re.*\r\nGSTACK-END\r\n\$" {
set saw_backtrace true
pass $test
exp_continue
diff --git a/gdb/testsuite/gdb.base/hashline1.exp b/gdb/testsuite/gdb.base/hashline1.exp
index e2f18b5..9af144b 100644
--- a/gdb/testsuite/gdb.base/hashline1.exp
+++ b/gdb/testsuite/gdb.base/hashline1.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/hashline2.exp b/gdb/testsuite/gdb.base/hashline2.exp
index 8a91a7d..740f511 100644
--- a/gdb/testsuite/gdb.base/hashline2.exp
+++ b/gdb/testsuite/gdb.base/hashline2.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/hashline3.exp b/gdb/testsuite/gdb.base/hashline3.exp
index 8686901..2575c28 100644
--- a/gdb/testsuite/gdb.base/hashline3.exp
+++ b/gdb/testsuite/gdb.base/hashline3.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported-shr.c b/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported-shr.c
index 57031ac..eb9410b 100644
--- a/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported-shr.c
+++ b/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported-shr.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.c b/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.c
index 8808e23..fff2953 100644
--- a/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.c
+++ b/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.exp b/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.exp
index e90f352..8598345 100644
--- a/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.exp
+++ b/gdb/testsuite/gdb.base/hbreak-in-shr-unsupported.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/hbreak-unmapped.c b/gdb/testsuite/gdb.base/hbreak-unmapped.c
index c38538d..120c08d 100644
--- a/gdb/testsuite/gdb.base/hbreak-unmapped.c
+++ b/gdb/testsuite/gdb.base/hbreak-unmapped.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/hbreak-unmapped.exp b/gdb/testsuite/gdb.base/hbreak-unmapped.exp
index b28af6d..80b1247 100644
--- a/gdb/testsuite/gdb.base/hbreak-unmapped.exp
+++ b/gdb/testsuite/gdb.base/hbreak-unmapped.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/hbreak.c b/gdb/testsuite/gdb.base/hbreak.c
index 86d73cf..640e1f2 100644
--- a/gdb/testsuite/gdb.base/hbreak.c
+++ b/gdb/testsuite/gdb.base/hbreak.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/hbreak.exp b/gdb/testsuite/gdb.base/hbreak.exp
index 73a3e2a..dca3bdd 100644
--- a/gdb/testsuite/gdb.base/hbreak.exp
+++ b/gdb/testsuite/gdb.base/hbreak.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/hbreak2.exp b/gdb/testsuite/gdb.base/hbreak2.exp
index 37c001a..9390e40 100644
--- a/gdb/testsuite/gdb.base/hbreak2.exp
+++ b/gdb/testsuite/gdb.base/hbreak2.exp
@@ -1,4 +1,4 @@
-# Copyright 1988-2024 Free Software Foundation, Inc.
+# Copyright 1988-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/help.exp b/gdb/testsuite/gdb.base/help.exp
index 056e352..ec41382 100644
--- a/gdb/testsuite/gdb.base/help.exp
+++ b/gdb/testsuite/gdb.base/help.exp
@@ -1,4 +1,4 @@
-# Copyright 1988-2024 Free Software Foundation, Inc.
+# Copyright 1988-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/history-duplicates.exp b/gdb/testsuite/gdb.base/history-duplicates.exp
index 5ac4a35..2f80ecc 100644
--- a/gdb/testsuite/gdb.base/history-duplicates.exp
+++ b/gdb/testsuite/gdb.base/history-duplicates.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/hook-stop.c b/gdb/testsuite/gdb.base/hook-stop.c
index 3e552f8..22d1c27 100644
--- a/gdb/testsuite/gdb.base/hook-stop.c
+++ b/gdb/testsuite/gdb.base/hook-stop.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/hook-stop.exp b/gdb/testsuite/gdb.base/hook-stop.exp
index 864e034..a7b6ccd 100644
--- a/gdb/testsuite/gdb.base/hook-stop.exp
+++ b/gdb/testsuite/gdb.base/hook-stop.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/huge.exp b/gdb/testsuite/gdb.base/huge.exp
index ecc4d2d..f75b620 100644
--- a/gdb/testsuite/gdb.base/huge.exp
+++ b/gdb/testsuite/gdb.base/huge.exp
@@ -1,4 +1,4 @@
-# Copyright 2001-2024 Free Software Foundation, Inc.
+# Copyright 2001-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/hw-sw-break-same-address.exp b/gdb/testsuite/gdb.base/hw-sw-break-same-address.exp
index 657e55c..93c8f54 100644
--- a/gdb/testsuite/gdb.base/hw-sw-break-same-address.exp
+++ b/gdb/testsuite/gdb.base/hw-sw-break-same-address.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/ifelse.exp b/gdb/testsuite/gdb.base/ifelse.exp
index d91ac98..f1dc9d2 100644
--- a/gdb/testsuite/gdb.base/ifelse.exp
+++ b/gdb/testsuite/gdb.base/ifelse.exp
@@ -1,4 +1,4 @@
-# Copyright 2006-2024 Free Software Foundation, Inc.
+# Copyright 2006-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/include-main.c b/gdb/testsuite/gdb.base/include-main.c
index 6290ae0..f54e268 100644
--- a/gdb/testsuite/gdb.base/include-main.c
+++ b/gdb/testsuite/gdb.base/include-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/include-main.exp b/gdb/testsuite/gdb.base/include-main.exp
index 7247b1c..5cded4b 100644
--- a/gdb/testsuite/gdb.base/include-main.exp
+++ b/gdb/testsuite/gdb.base/include-main.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/included.c b/gdb/testsuite/gdb.base/included.c
index 4f43e61..ab8edf4 100644
--- a/gdb/testsuite/gdb.base/included.c
+++ b/gdb/testsuite/gdb.base/included.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/included.exp b/gdb/testsuite/gdb.base/included.exp
index c33d695..e5223c9 100644
--- a/gdb/testsuite/gdb.base/included.exp
+++ b/gdb/testsuite/gdb.base/included.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/included.h b/gdb/testsuite/gdb.base/included.h
index fd8d23d..c16083a 100644
--- a/gdb/testsuite/gdb.base/included.h
+++ b/gdb/testsuite/gdb.base/included.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/index-cache-2.c b/gdb/testsuite/gdb.base/index-cache-2.c
index 27303b6..6706d5b 100644
--- a/gdb/testsuite/gdb.base/index-cache-2.c
+++ b/gdb/testsuite/gdb.base/index-cache-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/index-cache.c b/gdb/testsuite/gdb.base/index-cache.c
index 1e3b8fd..4717cfd 100644
--- a/gdb/testsuite/gdb.base/index-cache.c
+++ b/gdb/testsuite/gdb.base/index-cache.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/index-cache.exp b/gdb/testsuite/gdb.base/index-cache.exp
index e64495a..a1f64b0 100644
--- a/gdb/testsuite/gdb.base/index-cache.exp
+++ b/gdb/testsuite/gdb.base/index-cache.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/infcall-exec.c b/gdb/testsuite/gdb.base/infcall-exec.c
index e79b4f7..769192c 100644
--- a/gdb/testsuite/gdb.base/infcall-exec.c
+++ b/gdb/testsuite/gdb.base/infcall-exec.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/infcall-exec.exp b/gdb/testsuite/gdb.base/infcall-exec.exp
index 354bdbc..33cc5b6 100644
--- a/gdb/testsuite/gdb.base/infcall-exec.exp
+++ b/gdb/testsuite/gdb.base/infcall-exec.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/infcall-exec2.c b/gdb/testsuite/gdb.base/infcall-exec2.c
index 30eb2b4..9b81ef7 100644
--- a/gdb/testsuite/gdb.base/infcall-exec2.c
+++ b/gdb/testsuite/gdb.base/infcall-exec2.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/infcall-failure.c b/gdb/testsuite/gdb.base/infcall-failure.c
index f0af35d..33db345 100644
--- a/gdb/testsuite/gdb.base/infcall-failure.c
+++ b/gdb/testsuite/gdb.base/infcall-failure.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/infcall-failure.exp b/gdb/testsuite/gdb.base/infcall-failure.exp
index 8d08555..66bccd1 100644
--- a/gdb/testsuite/gdb.base/infcall-failure.exp
+++ b/gdb/testsuite/gdb.base/infcall-failure.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/infcall-input.c b/gdb/testsuite/gdb.base/infcall-input.c
index 8352d39..4cf513c 100644
--- a/gdb/testsuite/gdb.base/infcall-input.c
+++ b/gdb/testsuite/gdb.base/infcall-input.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/infcall-input.exp b/gdb/testsuite/gdb.base/infcall-input.exp
index 9f86a97..dea3b85 100644
--- a/gdb/testsuite/gdb.base/infcall-input.exp
+++ b/gdb/testsuite/gdb.base/infcall-input.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/infcall-nested-structs-c++.exp b/gdb/testsuite/gdb.base/infcall-nested-structs-c++.exp
index 4fe7505..706acc4 100644
--- a/gdb/testsuite/gdb.base/infcall-nested-structs-c++.exp
+++ b/gdb/testsuite/gdb.base/infcall-nested-structs-c++.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/infcall-nested-structs-c.exp b/gdb/testsuite/gdb.base/infcall-nested-structs-c.exp
index ce0ef4a..1f76598 100644
--- a/gdb/testsuite/gdb.base/infcall-nested-structs-c.exp
+++ b/gdb/testsuite/gdb.base/infcall-nested-structs-c.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/infcall-nested-structs.c b/gdb/testsuite/gdb.base/infcall-nested-structs.c
index 242ef78..98568a3 100644
--- a/gdb/testsuite/gdb.base/infcall-nested-structs.c
+++ b/gdb/testsuite/gdb.base/infcall-nested-structs.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/infcall-nested-structs.exp.tcl b/gdb/testsuite/gdb.base/infcall-nested-structs.exp.tcl
index 5d04f38..3a11d7f 100644
--- a/gdb/testsuite/gdb.base/infcall-nested-structs.exp.tcl
+++ b/gdb/testsuite/gdb.base/infcall-nested-structs.exp.tcl
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/infcall-timeout.c b/gdb/testsuite/gdb.base/infcall-timeout.c
index 61f64c5..934366c 100644
--- a/gdb/testsuite/gdb.base/infcall-timeout.c
+++ b/gdb/testsuite/gdb.base/infcall-timeout.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/infcall-timeout.exp b/gdb/testsuite/gdb.base/infcall-timeout.exp
index ad4dbe3..aa7dbc3 100644
--- a/gdb/testsuite/gdb.base/infcall-timeout.exp
+++ b/gdb/testsuite/gdb.base/infcall-timeout.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/inferior-args.c b/gdb/testsuite/gdb.base/inferior-args.c
index e06c393..faa3183 100644
--- a/gdb/testsuite/gdb.base/inferior-args.c
+++ b/gdb/testsuite/gdb.base/inferior-args.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/inferior-args.exp b/gdb/testsuite/gdb.base/inferior-args.exp
index b165fb8..9406c78 100644
--- a/gdb/testsuite/gdb.base/inferior-args.exp
+++ b/gdb/testsuite/gdb.base/inferior-args.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -25,16 +25,27 @@ if {[build_executable "failed to prepare" $testfile $srcfile \
return
}
-proc do_test { method } {
+# STARTUP_WITH_SHELL is either 'on' or 'off' and determines if the
+# inferior is started under a shell or not. INFERIOR_ARGS is the list
+# of inferior arguments. EXPECTED_RESULTS is the list of expected
+# results, one for each argument.
+#
+# When STUB_SUITABLE is true this test is suitable for use with
+# gdbserver, i.e. INFERIOR_ARGS can be passed through to
+# gdbserver_start via gdb_run_cmd. Some of the weird quoting used in
+# some of the tests doesn't seem to play well with gdbserver_start.
+# This is a TCL issue, not a gdbserver issue. Manually testing with
+# gdbserver shows no problems. It's just that when we try to invoke
+# gdbserver from TCL the argument quoting gets messed up. For tests
+# that are problematic, STUB_SUITABLE is false.
+proc do_test { method startup_with_shell inferior_args expected_results \
+ stub_suitable } {
global binfile hex
- # The second arg is an empty string on purpose. The last argument
- # must be the empty argument -- we once had a bug where that
- # wouldn't work!
- set inferior_args { "first arg" "" "third-arg" "'" "\"" " " "" }
-
clean_restart $binfile
+ gdb_test_no_output "set startup-with-shell $startup_with_shell"
+
if { $method == "start" } {
# The start command does not make sense for a stub.
if { [use_gdb_stub] } {
@@ -80,6 +91,10 @@ proc do_test { method } {
return -1
}
+ if { [use_gdb_stub] && !$stub_suitable } {
+ return
+ }
+
# The run command does not make sense for a stub, but GDB_RUN_CMD
# does the right thing when the target is a stub (start the stub,
# connect to it, and "continue").
@@ -110,18 +125,100 @@ proc do_test { method } {
error "invalid method $method"
}
+ set argc [expr [llength $expected_results] + 1]
+
# Now that we are stopped at main, inspect argc/argv.
- gdb_test "print argc" " = 8"
- gdb_test "print argv\[0\]" " = $hex \".*\""
- gdb_test "print argv\[1\]" " = $hex \"first arg\""
- gdb_test "print argv\[2\]" " = $hex \"\""
- gdb_test "print argv\[3\]" " = $hex \"third-arg\""
- gdb_test "print argv\[4\]" " = $hex \"'\""
- gdb_test "print argv\[5\]" " = $hex \"\\\\\"\""
- gdb_test "print argv\[6\]" " = $hex \" \""
- gdb_test "print argv\[7\]" " = $hex \"\""
+ gdb_test "print argc" " = $argc"
+ gdb_test "print argv\[0\]" " = $hex \"\[^\r\n\]+\""
+ for { set i 1 } { $i < $argc } { incr i } {
+ set idx [expr $i - 1]
+ gdb_test "print argv\[$i\]" " = [lindex $expected_results $idx]"
+ }
}
-foreach_with_prefix method { "start" "starti" "run" "set args" } {
- do_test $method
+set test_desc_list []
+
+# test one
+# --------
+#
+# The second arg is an empty string on purpose. The last argument
+# must be the empty argument -- we once had a bug where that wouldn't
+# work!
+lappend test_desc_list [list "test one" \
+ true \
+ { "first arg" "" "third-arg" "'" "\"" " " "" } \
+ [list "$hex \"first arg\"" \
+ "$hex \"\"" \
+ "$hex \"third-arg\"" \
+ "$hex \"'\"" \
+ "$hex \"\\\\\"\"" \
+ "$hex \" \"" \
+ "$hex \"\"" ]]
+
+# test two
+# --------
+#
+# The argument being passed here is '"', that is a single double quote
+# contained within single quotes.
+#
+# I build the test descriptor using this mess of code to avoid having
+# unbalanced quotes, which messes up indentation and syntax
+# highlighting within (at least) emacs. The 'format' of ascii code 34
+# gives us the double quote character. Then I have to jump through
+# the rest of this mess in order to avoid TCL escaping the quote for
+# me. It's super important that what we send to GDB is '"' not '\"'.
+set item [list "test two" false]
+set cmd [format "lappend item \{ '%c' '\\%c' \}" 34 34]
+eval $cmd
+set bs "\\\\"
+lappend item [list "$hex \"$bs\"\"" "$hex \"$bs$bs$bs\"\""]
+lappend test_desc_list $item
+
+# test three
+# ----------
+#
+# This test focuses on sending special shell characters within a
+# double quote argument, and each special character is prefixed with a
+# backslash.
+#
+# In a POSIX shell, within a double quoted argument, only $ (dollar),
+# ` (backtick), " (double quote), \ (backslash), and newline can be
+# escaped. All other backslash characters are literal backslashes.
+#
+# As with the previous test, the double quotes are lost when the
+# arguments are sent through gdbserver_start, as such, this test isn't
+# going to work when using the native-gdbserver board, hence we set
+# the second arguemnt to 'false'.
+lappend test_desc_list [list "test three" \
+ false \
+ { "\&" "\<" "\#" "\^" "\>" "\$" "\`" } \
+ [list "$hex \"\\\\\\\\&\"" \
+ "$hex \"\\\\\\\\<\"" \
+ "$hex \"\\\\\\\\#\"" \
+ "$hex \"\\\\\\\\\\^\"" \
+ "$hex \"\\\\\\\\>\"" \
+ "$hex \"\\\$\"" \
+ "$hex \"`\""]]
+
+# test four
+# ---------
+#
+# This test passes two arguments, a single and double quote, each
+# escaped with a backslash.
+lappend test_desc_list [list "test four" \
+ true \
+ { \' \" } \
+ [list "$hex \"'\"" \
+ "$hex \"\\\\\"\""]]
+
+foreach desc $test_desc_list {
+ lassign $desc name stub_suitable args re_list
+ with_test_prefix $name {
+ foreach_with_prefix set_method { "start" "starti" "run" "set args" } {
+ foreach_with_prefix startup_with_shell { on off } {
+ do_test $set_method $startup_with_shell $args $re_list \
+ $stub_suitable
+ }
+ }
+ }
}
diff --git a/gdb/testsuite/gdb.base/inferior-clone.exp b/gdb/testsuite/gdb.base/inferior-clone.exp
index 4b8b772..e356421 100644
--- a/gdb/testsuite/gdb.base/inferior-clone.exp
+++ b/gdb/testsuite/gdb.base/inferior-clone.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/inferior-died.c b/gdb/testsuite/gdb.base/inferior-died.c
index 9aa5adb..f7cb9d5 100644
--- a/gdb/testsuite/gdb.base/inferior-died.c
+++ b/gdb/testsuite/gdb.base/inferior-died.c
@@ -1,6 +1,6 @@
/* Test for fork-related gdb bug
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/inferior-died.exp b/gdb/testsuite/gdb.base/inferior-died.exp
index 9fa1c99..764a88d 100644
--- a/gdb/testsuite/gdb.base/inferior-died.exp
+++ b/gdb/testsuite/gdb.base/inferior-died.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -13,10 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Until "set follow-fork-mode" and "catch fork" are implemented on
-# other targets...
-#
-require {istarget "*-*-linux*"}
+require allow_fork_tests
require support_displaced_stepping
diff --git a/gdb/testsuite/gdb.base/inferior-noarg.c b/gdb/testsuite/gdb.base/inferior-noarg.c
index 7b7b92a..a8d19f2 100644
--- a/gdb/testsuite/gdb.base/inferior-noarg.c
+++ b/gdb/testsuite/gdb.base/inferior-noarg.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/inferior-noarg.exp b/gdb/testsuite/gdb.base/inferior-noarg.exp
index b377742..51b9b24 100644
--- a/gdb/testsuite/gdb.base/inferior-noarg.exp
+++ b/gdb/testsuite/gdb.base/inferior-noarg.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/infnan.c b/gdb/testsuite/gdb.base/infnan.c
index 3a86843..04efda7 100644
--- a/gdb/testsuite/gdb.base/infnan.c
+++ b/gdb/testsuite/gdb.base/infnan.c
@@ -1,6 +1,6 @@
/* This test file is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/infnan.exp b/gdb/testsuite/gdb.base/infnan.exp
index cef7fba..11470f1 100644
--- a/gdb/testsuite/gdb.base/infnan.exp
+++ b/gdb/testsuite/gdb.base/infnan.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-fun-solib.c b/gdb/testsuite/gdb.base/info-fun-solib.c
index 81bb12c..4f3211c 100644
--- a/gdb/testsuite/gdb.base/info-fun-solib.c
+++ b/gdb/testsuite/gdb.base/info-fun-solib.c
@@ -1,4 +1,4 @@
-/* Copyright 2012-2024 Free Software Foundation, Inc.
+/* Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-fun.c b/gdb/testsuite/gdb.base/info-fun.c
index 987e1f9..5efdd64 100644
--- a/gdb/testsuite/gdb.base/info-fun.c
+++ b/gdb/testsuite/gdb.base/info-fun.c
@@ -1,4 +1,4 @@
-/* Copyright 2012-2024 Free Software Foundation, Inc.
+/* Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-fun.exp b/gdb/testsuite/gdb.base/info-fun.exp
index 6cd7680..884496c 100644
--- a/gdb/testsuite/gdb.base/info-fun.exp
+++ b/gdb/testsuite/gdb.base/info-fun.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/info-locals-unused-static-var.c b/gdb/testsuite/gdb.base/info-locals-unused-static-var.c
index 5bb1e91..324cf20 100644
--- a/gdb/testsuite/gdb.base/info-locals-unused-static-var.c
+++ b/gdb/testsuite/gdb.base/info-locals-unused-static-var.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-locals-unused-static-var.exp b/gdb/testsuite/gdb.base/info-locals-unused-static-var.exp
index de7077b..cf6b050 100644
--- a/gdb/testsuite/gdb.base/info-locals-unused-static-var.exp
+++ b/gdb/testsuite/gdb.base/info-locals-unused-static-var.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-macros.exp b/gdb/testsuite/gdb.base/info-macros.exp
index 2ace202..2dd0fc9 100644
--- a/gdb/testsuite/gdb.base/info-macros.exp
+++ b/gdb/testsuite/gdb.base/info-macros.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-os.c b/gdb/testsuite/gdb.base/info-os.c
index 122c318..3614f3b 100644
--- a/gdb/testsuite/gdb.base/info-os.c
+++ b/gdb/testsuite/gdb.base/info-os.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-os.exp b/gdb/testsuite/gdb.base/info-os.exp
index 22e9819..20d28db 100644
--- a/gdb/testsuite/gdb.base/info-os.exp
+++ b/gdb/testsuite/gdb.base/info-os.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-proc.exp b/gdb/testsuite/gdb.base/info-proc.exp
index af7f1dcd..8dff6a5 100644
--- a/gdb/testsuite/gdb.base/info-proc.exp
+++ b/gdb/testsuite/gdb.base/info-proc.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-program.c b/gdb/testsuite/gdb.base/info-program.c
index a61bc9f..c90bbb4 100644
--- a/gdb/testsuite/gdb.base/info-program.c
+++ b/gdb/testsuite/gdb.base/info-program.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-program.exp b/gdb/testsuite/gdb.base/info-program.exp
index b31985d..5a47e1e 100644
--- a/gdb/testsuite/gdb.base/info-program.exp
+++ b/gdb/testsuite/gdb.base/info-program.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-shared-solib1.c b/gdb/testsuite/gdb.base/info-shared-solib1.c
index 584218b..d5f7478 100644
--- a/gdb/testsuite/gdb.base/info-shared-solib1.c
+++ b/gdb/testsuite/gdb.base/info-shared-solib1.c
@@ -1,4 +1,4 @@
-/* Copyright 2012-2024 Free Software Foundation, Inc.
+/* Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-shared-solib2.c b/gdb/testsuite/gdb.base/info-shared-solib2.c
index 7a0aa40c..ad4d1be 100644
--- a/gdb/testsuite/gdb.base/info-shared-solib2.c
+++ b/gdb/testsuite/gdb.base/info-shared-solib2.c
@@ -1,4 +1,4 @@
-/* Copyright 2012-2024 Free Software Foundation, Inc.
+/* Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-shared.c b/gdb/testsuite/gdb.base/info-shared.c
index 562e880..7d62e04 100644
--- a/gdb/testsuite/gdb.base/info-shared.c
+++ b/gdb/testsuite/gdb.base/info-shared.c
@@ -1,4 +1,4 @@
-/* Copyright 2012-2024 Free Software Foundation, Inc.
+/* Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-shared.exp b/gdb/testsuite/gdb.base/info-shared.exp
index a96dd3c..6f1b2d6 100644
--- a/gdb/testsuite/gdb.base/info-shared.exp
+++ b/gdb/testsuite/gdb.base/info-shared.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-target.exp b/gdb/testsuite/gdb.base/info-target.exp
index 7dfe074..f354108 100644
--- a/gdb/testsuite/gdb.base/info-target.exp
+++ b/gdb/testsuite/gdb.base/info-target.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-types-c++.exp b/gdb/testsuite/gdb.base/info-types-c++.exp
index b0a2637..c538436 100644
--- a/gdb/testsuite/gdb.base/info-types-c++.exp
+++ b/gdb/testsuite/gdb.base/info-types-c++.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-types-c.exp b/gdb/testsuite/gdb.base/info-types-c.exp
index 7e6108c..9b363a2 100644
--- a/gdb/testsuite/gdb.base/info-types-c.exp
+++ b/gdb/testsuite/gdb.base/info-types-c.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-types.c b/gdb/testsuite/gdb.base/info-types.c
index 1e1d354..eee32d4 100644
--- a/gdb/testsuite/gdb.base/info-types.c
+++ b/gdb/testsuite/gdb.base/info-types.c
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-types.exp.tcl b/gdb/testsuite/gdb.base/info-types.exp.tcl
index 0a33afe..f75bb36 100644
--- a/gdb/testsuite/gdb.base/info-types.exp.tcl
+++ b/gdb/testsuite/gdb.base/info-types.exp.tcl
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-var-f1.c b/gdb/testsuite/gdb.base/info-var-f1.c
index 1e38bda..a4c18aa 100644
--- a/gdb/testsuite/gdb.base/info-var-f1.c
+++ b/gdb/testsuite/gdb.base/info-var-f1.c
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-var-f2.c b/gdb/testsuite/gdb.base/info-var-f2.c
index 5744571..75b4393 100644
--- a/gdb/testsuite/gdb.base/info-var-f2.c
+++ b/gdb/testsuite/gdb.base/info-var-f2.c
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-var.exp b/gdb/testsuite/gdb.base/info-var.exp
index 4a8a59d..7c2d0f7 100644
--- a/gdb/testsuite/gdb.base/info-var.exp
+++ b/gdb/testsuite/gdb.base/info-var.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info-var.h b/gdb/testsuite/gdb.base/info-var.h
index 307568d..89e5fae 100644
--- a/gdb/testsuite/gdb.base/info-var.h
+++ b/gdb/testsuite/gdb.base/info-var.h
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info_minsym.c b/gdb/testsuite/gdb.base/info_minsym.c
index 859f5dc..e380c5a 100644
--- a/gdb/testsuite/gdb.base/info_minsym.c
+++ b/gdb/testsuite/gdb.base/info_minsym.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info_minsym.exp b/gdb/testsuite/gdb.base/info_minsym.exp
index 9b0fcdf..33413ed 100644
--- a/gdb/testsuite/gdb.base/info_minsym.exp
+++ b/gdb/testsuite/gdb.base/info_minsym.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info_qt.c b/gdb/testsuite/gdb.base/info_qt.c
index 5ec4b51..47c707c 100644
--- a/gdb/testsuite/gdb.base/info_qt.c
+++ b/gdb/testsuite/gdb.base/info_qt.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info_qt.exp b/gdb/testsuite/gdb.base/info_qt.exp
index f53a620..0cf5386 100644
--- a/gdb/testsuite/gdb.base/info_qt.exp
+++ b/gdb/testsuite/gdb.base/info_qt.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info_sources.c b/gdb/testsuite/gdb.base/info_sources.c
index baedf66..fb5a1cc 100644
--- a/gdb/testsuite/gdb.base/info_sources.c
+++ b/gdb/testsuite/gdb.base/info_sources.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info_sources.exp b/gdb/testsuite/gdb.base/info_sources.exp
index 6ef711f..d26362d 100644
--- a/gdb/testsuite/gdb.base/info_sources.exp
+++ b/gdb/testsuite/gdb.base/info_sources.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info_sources_2-header.h b/gdb/testsuite/gdb.base/info_sources_2-header.h
index cbf127b..cc81eb7 100644
--- a/gdb/testsuite/gdb.base/info_sources_2-header.h
+++ b/gdb/testsuite/gdb.base/info_sources_2-header.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info_sources_2-lib.c b/gdb/testsuite/gdb.base/info_sources_2-lib.c
index 832e84e..6befc8d 100644
--- a/gdb/testsuite/gdb.base/info_sources_2-lib.c
+++ b/gdb/testsuite/gdb.base/info_sources_2-lib.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info_sources_2-test.c b/gdb/testsuite/gdb.base/info_sources_2-test.c
index 4d34235..8328ae9 100644
--- a/gdb/testsuite/gdb.base/info_sources_2-test.c
+++ b/gdb/testsuite/gdb.base/info_sources_2-test.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info_sources_2.exp b/gdb/testsuite/gdb.base/info_sources_2.exp
index 90442d0..c469049 100644
--- a/gdb/testsuite/gdb.base/info_sources_2.exp
+++ b/gdb/testsuite/gdb.base/info_sources_2.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/info_sources_base.c b/gdb/testsuite/gdb.base/info_sources_base.c
index 3afe60c..9183a20 100644
--- a/gdb/testsuite/gdb.base/info_sources_base.c
+++ b/gdb/testsuite/gdb.base/info_sources_base.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.c b/gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.c
index 3615b56..f04d0eb 100644
--- a/gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.c
+++ b/gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.exp b/gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.exp
index e12244f..bc70a5d 100644
--- a/gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.exp
+++ b/gdb/testsuite/gdb.base/infoline-reloc-main-from-zero.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/infoline.c b/gdb/testsuite/gdb.base/infoline.c
index c0840fe..fb37f66 100644
--- a/gdb/testsuite/gdb.base/infoline.c
+++ b/gdb/testsuite/gdb.base/infoline.c
@@ -1,4 +1,4 @@
-/* Copyright 2011-2024 Free Software Foundation, Inc.
+/* Copyright 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/infoline.exp b/gdb/testsuite/gdb.base/infoline.exp
index 67aa6e3..48b8e32 100644
--- a/gdb/testsuite/gdb.base/infoline.exp
+++ b/gdb/testsuite/gdb.base/infoline.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/inline-frame-cycle-unwind.c b/gdb/testsuite/gdb.base/inline-frame-cycle-unwind.c
index c912663..d8326ef 100644
--- a/gdb/testsuite/gdb.base/inline-frame-cycle-unwind.c
+++ b/gdb/testsuite/gdb.base/inline-frame-cycle-unwind.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/inline-frame-cycle-unwind.exp b/gdb/testsuite/gdb.base/inline-frame-cycle-unwind.exp
index 45086f6..7fc47af 100644
--- a/gdb/testsuite/gdb.base/inline-frame-cycle-unwind.exp
+++ b/gdb/testsuite/gdb.base/inline-frame-cycle-unwind.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -72,77 +72,89 @@ gdb_continue_to_breakpoint "stop at test breakpoint"
gdb_test_no_output "source ${pyfile}"\
"import python scripts"
-# Check the unbroken stack.
-gdb_test_sequence "bt" "backtrace when the unwind is left unbroken" {
- "\\r\\n#0 \[^\r\n\]* inline_func \\(\\) at "
- "\\r\\n#1 \[^\r\n\]* normal_func \\(\\) at "
- "\\r\\n#2 \[^\r\n\]* inline_func \\(\\) at "
- "\\r\\n#3 \[^\r\n\]* normal_func \\(\\) at "
- "\\r\\n#4 \[^\r\n\]* inline_func \\(\\) at "
- "\\r\\n#5 \[^\r\n\]* normal_func \\(\\) at "
- "\\r\\n#6 \[^\r\n\]* main \\(\\) at "
-}
+# Test with and without filters.
+foreach bt_cmd { "bt" "bt -no-filters" } {
+ with_test_prefix "$bt_cmd" {
-with_test_prefix "cycle at level 5" {
- # Arrange to introduce a stack cycle at frame 5.
- gdb_test_no_output "python stop_at_level=5"
- gdb_test "maint flush register-cache" \
- "Register cache flushed\\."
- gdb_test_lines "bt" "backtrace when the unwind is broken at frame 5" \
- [multi_line \
- "#0 \[^\r\n\]* inline_func \\(\\) at \[^\r\n\]+" \
- "#1 \[^\r\n\]* normal_func \\(\\) at \[^\r\n\]+" \
- "#2 \[^\r\n\]* inline_func \\(\\) at \[^\r\n\]+" \
- "#3 \[^\r\n\]* normal_func \\(\\) at \[^\r\n\]+" \
- "#4 \[^\r\n\]* inline_func \\(\\) at \[^\r\n\]+" \
- "#5 \[^\r\n\]* normal_func \\(\\) at \[^\r\n\]+" \
- "Backtrace stopped: previous frame identical to this frame \\(corrupt stack\\?\\)"]
-}
+ # Check the unbroken stack.
+ gdb_test_sequence "$bt_cmd" "backtrace when the unwind is left unbroken" {
+ "\\r\\n#0 \[^\r\n\]* inline_func \\(\\) at "
+ "\\r\\n#1 \[^\r\n\]* normal_func \\(\\) at "
+ "\\r\\n#2 \[^\r\n\]* inline_func \\(\\) at "
+ "\\r\\n#3 \[^\r\n\]* normal_func \\(\\) at "
+ "\\r\\n#4 \[^\r\n\]* inline_func \\(\\) at "
+ "\\r\\n#5 \[^\r\n\]* normal_func \\(\\) at "
+ "\\r\\n#6 \[^\r\n\]* main \\(\\) at "
+ }
-with_test_prefix "cycle at level 3" {
- # Arrange to introduce a stack cycle at frame 3.
- gdb_test_no_output "python stop_at_level=3"
- gdb_test "maint flush register-cache" \
- "Register cache flushed\\."
- gdb_test_lines "bt" "backtrace when the unwind is broken at frame 3" \
- [multi_line \
- "#0 \[^\r\n\]* inline_func \\(\\) at \[^\r\n\]+" \
- "#1 \[^\r\n\]* normal_func \\(\\) at \[^\r\n\]+" \
- "#2 \[^\r\n\]* inline_func \\(\\) at \[^\r\n\]+" \
- "#3 \[^\r\n\]* normal_func \\(\\) at \[^\r\n\]+" \
- "Backtrace stopped: previous frame identical to this frame \\(corrupt stack\\?\\)"]
-}
+ with_test_prefix "cycle at level 5" {
+ # Arrange to introduce a stack cycle at frame 5.
+ gdb_test_no_output "python stop_at_level=5"
+ gdb_test "maint flush register-cache" \
+ "Register cache flushed\\."
+ gdb_test_lines "$bt_cmd" "backtrace when the unwind is broken at frame 5" \
+ [multi_line \
+ "#0 \[^\r\n\]* inline_func \\(\\) at \[^\r\n\]+" \
+ "#1 \[^\r\n\]* normal_func \\(\\) at \[^\r\n\]+" \
+ "#2 \[^\r\n\]* inline_func \\(\\) at \[^\r\n\]+" \
+ "#3 \[^\r\n\]* normal_func \\(\\) at \[^\r\n\]+" \
+ "#4 \[^\r\n\]* inline_func \\(\\) at \[^\r\n\]+" \
+ "#5 \[^\r\n\]* normal_func \\(\\) at \[^\r\n\]+" \
+ "Backtrace stopped: previous frame identical to this frame \\(corrupt stack\\?\\)"]
+ }
-with_test_prefix "cycle at level 1" {
- # Arrange to introduce a stack cycle at frame 1.
- gdb_test_no_output "python stop_at_level=1"
- gdb_test "maint flush register-cache" \
- "Register cache flushed\\."
- gdb_test_lines "bt" "backtrace when the unwind is broken at frame 1" \
- [multi_line \
- "#0 \[^\r\n\]* inline_func \\(\\) at \[^\r\n\]+" \
- "#1 \[^\r\n\]* normal_func \\(\\) at \[^\r\n\]+" \
- "Backtrace stopped: previous frame identical to this frame \\(corrupt stack\\?\\)"]
-}
+ with_test_prefix "cycle at level 3" {
+ # Arrange to introduce a stack cycle at frame 3.
+ gdb_test_no_output "python stop_at_level=3"
+ gdb_test "maint flush register-cache" \
+ "Register cache flushed\\."
+ gdb_test_lines "$bt_cmd" "backtrace when the unwind is broken at frame 3" \
+ [multi_line \
+ "#0 \[^\r\n\]* inline_func \\(\\) at \[^\r\n\]+" \
+ "#1 \[^\r\n\]* normal_func \\(\\) at \[^\r\n\]+" \
+ "#2 \[^\r\n\]* inline_func \\(\\) at \[^\r\n\]+" \
+ "#3 \[^\r\n\]* normal_func \\(\\) at \[^\r\n\]+" \
+ "Backtrace stopped: previous frame identical to this frame \\(corrupt stack\\?\\)"]
+ }
-# Flush the register cache (which also flushes the frame cache) so we
-# get a full backtrace again, then switch on frame debugging and try
-# to back trace. At one point this triggered an assertion.
-gdb_test "maint flush register-cache" \
- "Register cache flushed\\." ""
-gdb_test_no_output "set debug frame 1"
-set ok 1
-gdb_test_multiple "bt" "backtrace with debugging on" {
- -re "^$gdb_prompt $" {
- gdb_assert { $ok } $gdb_test_name
- }
- -re "Python Exception <class 'gdb.error'>: \[^\r\n\]*\r\n" {
- set ok 0
- exp_continue
- }
- -re "\[^\r\n\]+\r\n" {
- exp_continue
+ with_test_prefix "cycle at level 1" {
+ # Arrange to introduce a stack cycle at frame 1.
+ gdb_test_no_output "python stop_at_level=1"
+ gdb_test "maint flush register-cache" \
+ "Register cache flushed\\."
+ gdb_test_lines "$bt_cmd" "backtrace when the unwind is broken at frame 1" \
+ [multi_line \
+ "#0 \[^\r\n\]* inline_func \\(\\) at \[^\r\n\]+" \
+ "#1 \[^\r\n\]* normal_func \\(\\) at \[^\r\n\]+" \
+ "Backtrace stopped: previous frame identical to this frame \\(corrupt stack\\?\\)"]
+ }
+
+ # Flush the register cache (which also flushes the frame cache) so we
+ # get a full backtrace again, then switch on frame debugging and try
+ # to back trace. At one point this triggered an assertion.
+ gdb_test "maint flush register-cache" \
+ "Register cache flushed\\." ""
+ gdb_test_no_output "set debug frame 1"
+ set ok 1
+ gdb_test_multiple "$bt_cmd" "backtrace with debugging on" {
+ -re "^$gdb_prompt $" {
+ gdb_assert { $ok } $gdb_test_name
+ }
+ -re "Python Exception <class 'gdb.error'>: \[^\r\n\]*\r\n" {
+ set ok 0
+ exp_continue
+ }
+ -re "\[^\r\n\]+\r\n" {
+ exp_continue
+ }
+ }
+ gdb_test "p 1 + 2 + 3" " = 6" \
+ "ensure GDB is still alive"
+
+ # Prepare for the next iteration of the test loop
+ gdb_test_no_output "set debug frame 0"
+ gdb_test_no_output "python stop_at_level=None"
+ gdb_test "maint flush register-cache" \
+ "Register cache flushed\\." "maint flush register-cache at (loop end)"
}
}
-gdb_test "p 1 + 2 + 3" " = 6" \
- "ensure GDB is still alive"
diff --git a/gdb/testsuite/gdb.base/inline-frame-cycle-unwind.py b/gdb/testsuite/gdb.base/inline-frame-cycle-unwind.py
index 278fa85..bc4a673 100644
--- a/gdb/testsuite/gdb.base/inline-frame-cycle-unwind.py
+++ b/gdb/testsuite/gdb.base/inline-frame-cycle-unwind.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/interact.exp b/gdb/testsuite/gdb.base/interact.exp
index 5779efc..6cf8e18 100644
--- a/gdb/testsuite/gdb.base/interact.exp
+++ b/gdb/testsuite/gdb.base/interact.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/internal-functions-ptype.exp b/gdb/testsuite/gdb.base/internal-functions-ptype.exp
index 9c77868..7bf03d8 100644
--- a/gdb/testsuite/gdb.base/internal-functions-ptype.exp
+++ b/gdb/testsuite/gdb.base/internal-functions-ptype.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/internal-string-values.c b/gdb/testsuite/gdb.base/internal-string-values.c
index 2046b56..d4e358e 100644
--- a/gdb/testsuite/gdb.base/internal-string-values.c
+++ b/gdb/testsuite/gdb.base/internal-string-values.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/internal-string-values.exp b/gdb/testsuite/gdb.base/internal-string-values.exp
index 9ecb59e..aa68bc9 100644
--- a/gdb/testsuite/gdb.base/internal-string-values.exp
+++ b/gdb/testsuite/gdb.base/internal-string-values.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/interp.c b/gdb/testsuite/gdb.base/interp.c
index 8526473..3c41234 100644
--- a/gdb/testsuite/gdb.base/interp.c
+++ b/gdb/testsuite/gdb.base/interp.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/interp.exp b/gdb/testsuite/gdb.base/interp.exp
index 5e3488e..e6cfe77 100644
--- a/gdb/testsuite/gdb.base/interp.exp
+++ b/gdb/testsuite/gdb.base/interp.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/interpreter-exec.gdb b/gdb/testsuite/gdb.base/interpreter-exec.gdb
index 24d4bbe..5e26b6d 100644
--- a/gdb/testsuite/gdb.base/interpreter-exec.gdb
+++ b/gdb/testsuite/gdb.base/interpreter-exec.gdb
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/interrupt-a.c b/gdb/testsuite/gdb.base/interrupt-a.c
index 9b647e3..09cc014 100644
--- a/gdb/testsuite/gdb.base/interrupt-a.c
+++ b/gdb/testsuite/gdb.base/interrupt-a.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/interrupt-a.exp b/gdb/testsuite/gdb.base/interrupt-a.exp
index eabfb2b..87c856b 100644
--- a/gdb/testsuite/gdb.base/interrupt-a.exp
+++ b/gdb/testsuite/gdb.base/interrupt-a.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/interrupt-daemon-attach.c b/gdb/testsuite/gdb.base/interrupt-daemon-attach.c
index beb4089..dca6c9b 100644
--- a/gdb/testsuite/gdb.base/interrupt-daemon-attach.c
+++ b/gdb/testsuite/gdb.base/interrupt-daemon-attach.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/interrupt-daemon-attach.exp b/gdb/testsuite/gdb.base/interrupt-daemon-attach.exp
index ae81b0f..3c46f5d 100644
--- a/gdb/testsuite/gdb.base/interrupt-daemon-attach.exp
+++ b/gdb/testsuite/gdb.base/interrupt-daemon-attach.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/interrupt-daemon.c b/gdb/testsuite/gdb.base/interrupt-daemon.c
index f397f9f..4c20c34 100644
--- a/gdb/testsuite/gdb.base/interrupt-daemon.c
+++ b/gdb/testsuite/gdb.base/interrupt-daemon.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/interrupt-daemon.exp b/gdb/testsuite/gdb.base/interrupt-daemon.exp
index 8327294..8b8c61d 100644
--- a/gdb/testsuite/gdb.base/interrupt-daemon.exp
+++ b/gdb/testsuite/gdb.base/interrupt-daemon.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,6 +16,8 @@
# Make sure that we can interrupt an inferior that forks and moves to
# its own session.
+require allow_fork_tests
+
standard_testfile
if {[build_executable "failed to build" $testfile $srcfile {debug}]} {
diff --git a/gdb/testsuite/gdb.base/interrupt-noterm.c b/gdb/testsuite/gdb.base/interrupt-noterm.c
index c247c01..5d6f97e 100644
--- a/gdb/testsuite/gdb.base/interrupt-noterm.c
+++ b/gdb/testsuite/gdb.base/interrupt-noterm.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/interrupt-noterm.exp b/gdb/testsuite/gdb.base/interrupt-noterm.exp
index 399b4f6..fc50bd0 100644
--- a/gdb/testsuite/gdb.base/interrupt-noterm.exp
+++ b/gdb/testsuite/gdb.base/interrupt-noterm.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/interrupt.exp b/gdb/testsuite/gdb.base/interrupt.exp
index 417cf21..fef0bd9 100644
--- a/gdb/testsuite/gdb.base/interrupt.exp
+++ b/gdb/testsuite/gdb.base/interrupt.exp
@@ -1,4 +1,4 @@
-# Copyright 1994-2024 Free Software Foundation, Inc.
+# Copyright 1994-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jit-attach-pie.c b/gdb/testsuite/gdb.base/jit-attach-pie.c
index 27c6b32..7e9f1c4 100644
--- a/gdb/testsuite/gdb.base/jit-attach-pie.c
+++ b/gdb/testsuite/gdb.base/jit-attach-pie.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jit-attach-pie.exp b/gdb/testsuite/gdb.base/jit-attach-pie.exp
index d2dda69..ff71e86 100644
--- a/gdb/testsuite/gdb.base/jit-attach-pie.exp
+++ b/gdb/testsuite/gdb.base/jit-attach-pie.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jit-bfd-name.exp b/gdb/testsuite/gdb.base/jit-bfd-name.exp
index 36c82a1..219929b 100644
--- a/gdb/testsuite/gdb.base/jit-bfd-name.exp
+++ b/gdb/testsuite/gdb.base/jit-bfd-name.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -67,11 +67,13 @@ gdb_breakpoint [gdb_get_line_number "break here 1" $::main_srcfile]
gdb_continue_to_breakpoint "break here 1"
# Confirm that the two expected functions are available.
+set re_f1 [string_to_regexp "int jit_function_0001(void)"]
+set re_f2 [string_to_regexp "int jit_function_0002(void)"]
gdb_test "info function ^jit_function" \
[multi_line \
"File \[^\r\n\]+jit-elf-solib.c:" \
- "${decimal}:\\s+int jit_function_0001\\(\\);" \
- "${decimal}:\\s+int jit_function_0002\\(\\);"]
+ "${decimal}:\\s+$re_f1;" \
+ "${decimal}:\\s+$re_f2;"]
# Capture the addresses of each JIT symfile.
set symfile_addrs {}
diff --git a/gdb/testsuite/gdb.base/jit-elf-fork-main.c b/gdb/testsuite/gdb.base/jit-elf-fork-main.c
index fd0173d..dea21c9 100644
--- a/gdb/testsuite/gdb.base/jit-elf-fork-main.c
+++ b/gdb/testsuite/gdb.base/jit-elf-fork-main.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jit-elf-fork-solib.c b/gdb/testsuite/gdb.base/jit-elf-fork-solib.c
index f98d1d1..690d7a0 100644
--- a/gdb/testsuite/gdb.base/jit-elf-fork-solib.c
+++ b/gdb/testsuite/gdb.base/jit-elf-fork-solib.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jit-elf-fork.exp b/gdb/testsuite/gdb.base/jit-elf-fork.exp
index 3fccf17..c1fa428 100644
--- a/gdb/testsuite/gdb.base/jit-elf-fork.exp
+++ b/gdb/testsuite/gdb.base/jit-elf-fork.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -15,6 +15,7 @@
# Test fork handling of an inferior that has JIT-ed objfiles.
+require allow_fork_tests
require allow_shlib_tests
load_lib jit-elf-helpers.exp
diff --git a/gdb/testsuite/gdb.base/jit-elf-main.c b/gdb/testsuite/gdb.base/jit-elf-main.c
index 7e51705..562df7a 100644
--- a/gdb/testsuite/gdb.base/jit-elf-main.c
+++ b/gdb/testsuite/gdb.base/jit-elf-main.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jit-elf-so.exp b/gdb/testsuite/gdb.base/jit-elf-so.exp
index 2759c64..c227748 100644
--- a/gdb/testsuite/gdb.base/jit-elf-so.exp
+++ b/gdb/testsuite/gdb.base/jit-elf-so.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jit-elf-solib.c b/gdb/testsuite/gdb.base/jit-elf-solib.c
index f98d1d1..c6fcb89 100644
--- a/gdb/testsuite/gdb.base/jit-elf-solib.c
+++ b/gdb/testsuite/gdb.base/jit-elf-solib.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -22,4 +22,4 @@
#error "Must define the FUNCTION_NAME macro to set a jited function name"
#endif
-int FUNCTION_NAME() { return 42; }
+int FUNCTION_NAME(void) { return 42; }
diff --git a/gdb/testsuite/gdb.base/jit-elf-util.h b/gdb/testsuite/gdb.base/jit-elf-util.h
index 13cebeb..bde2449 100644
--- a/gdb/testsuite/gdb.base/jit-elf-util.h
+++ b/gdb/testsuite/gdb.base/jit-elf-util.h
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jit-elf.exp b/gdb/testsuite/gdb.base/jit-elf.exp
index 85874fc..a519565 100644
--- a/gdb/testsuite/gdb.base/jit-elf.exp
+++ b/gdb/testsuite/gdb.base/jit-elf.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jit-protocol.h b/gdb/testsuite/gdb.base/jit-protocol.h
index 3e85c19..fc53824 100644
--- a/gdb/testsuite/gdb.base/jit-protocol.h
+++ b/gdb/testsuite/gdb.base/jit-protocol.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/jit-reader-exec.c b/gdb/testsuite/gdb.base/jit-reader-exec.c
index 966ba13..a7ac4be 100644
--- a/gdb/testsuite/gdb.base/jit-reader-exec.c
+++ b/gdb/testsuite/gdb.base/jit-reader-exec.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jit-reader-exec.exp b/gdb/testsuite/gdb.base/jit-reader-exec.exp
index 06e2c90..ef6148b 100644
--- a/gdb/testsuite/gdb.base/jit-reader-exec.exp
+++ b/gdb/testsuite/gdb.base/jit-reader-exec.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jit-reader-execd.c b/gdb/testsuite/gdb.base/jit-reader-execd.c
index 9eccc49..34ff03a 100644
--- a/gdb/testsuite/gdb.base/jit-reader-execd.c
+++ b/gdb/testsuite/gdb.base/jit-reader-execd.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jit-reader-host.c b/gdb/testsuite/gdb.base/jit-reader-host.c
index 359935a..a106dad 100644
--- a/gdb/testsuite/gdb.base/jit-reader-host.c
+++ b/gdb/testsuite/gdb.base/jit-reader-host.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/jit-reader-host.h b/gdb/testsuite/gdb.base/jit-reader-host.h
index da15ade..62750d5 100644
--- a/gdb/testsuite/gdb.base/jit-reader-host.h
+++ b/gdb/testsuite/gdb.base/jit-reader-host.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/jit-reader-simple-dl.c b/gdb/testsuite/gdb.base/jit-reader-simple-dl.c
index df92291..b5e2a2a 100644
--- a/gdb/testsuite/gdb.base/jit-reader-simple-dl.c
+++ b/gdb/testsuite/gdb.base/jit-reader-simple-dl.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jit-reader-simple-jit.c b/gdb/testsuite/gdb.base/jit-reader-simple-jit.c
index 42b727f..56874f8 100644
--- a/gdb/testsuite/gdb.base/jit-reader-simple-jit.c
+++ b/gdb/testsuite/gdb.base/jit-reader-simple-jit.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jit-reader-simple.c b/gdb/testsuite/gdb.base/jit-reader-simple.c
index 32f322e..8968469 100644
--- a/gdb/testsuite/gdb.base/jit-reader-simple.c
+++ b/gdb/testsuite/gdb.base/jit-reader-simple.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jit-reader-simple.exp b/gdb/testsuite/gdb.base/jit-reader-simple.exp
index f3c0125..77705eb 100644
--- a/gdb/testsuite/gdb.base/jit-reader-simple.exp
+++ b/gdb/testsuite/gdb.base/jit-reader-simple.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jit-reader.c b/gdb/testsuite/gdb.base/jit-reader.c
index 78117f0..d3d007d 100644
--- a/gdb/testsuite/gdb.base/jit-reader.c
+++ b/gdb/testsuite/gdb.base/jit-reader.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/jit-reader.exp b/gdb/testsuite/gdb.base/jit-reader.exp
index 2a96207..4462ab4 100644
--- a/gdb/testsuite/gdb.base/jit-reader.exp
+++ b/gdb/testsuite/gdb.base/jit-reader.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jump-inline.c b/gdb/testsuite/gdb.base/jump-inline.c
index 8c0fcdd..a5744e5 100644
--- a/gdb/testsuite/gdb.base/jump-inline.c
+++ b/gdb/testsuite/gdb.base/jump-inline.c
@@ -1,4 +1,4 @@
-/* Copyright 2021-2024 Free Software Foundation, Inc.
+/* Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jump-inline.exp b/gdb/testsuite/gdb.base/jump-inline.exp
index ec1d2a1..7c36479 100644
--- a/gdb/testsuite/gdb.base/jump-inline.exp
+++ b/gdb/testsuite/gdb.base/jump-inline.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jump.exp b/gdb/testsuite/gdb.base/jump.exp
index 735aeeb..ee3c1c3 100644
--- a/gdb/testsuite/gdb.base/jump.exp
+++ b/gdb/testsuite/gdb.base/jump.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jump_multiple_objfiles-foo.c b/gdb/testsuite/gdb.base/jump_multiple_objfiles-foo.c
index 6f39dec..98ddb23 100755
--- a/gdb/testsuite/gdb.base/jump_multiple_objfiles-foo.c
+++ b/gdb/testsuite/gdb.base/jump_multiple_objfiles-foo.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jump_multiple_objfiles.c b/gdb/testsuite/gdb.base/jump_multiple_objfiles.c
index 7d87a28..492b415 100755
--- a/gdb/testsuite/gdb.base/jump_multiple_objfiles.c
+++ b/gdb/testsuite/gdb.base/jump_multiple_objfiles.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jump_multiple_objfiles.exp b/gdb/testsuite/gdb.base/jump_multiple_objfiles.exp
index 0c8c345..868777f 100755
--- a/gdb/testsuite/gdb.base/jump_multiple_objfiles.exp
+++ b/gdb/testsuite/gdb.base/jump_multiple_objfiles.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/jump_multiple_objfiles.h b/gdb/testsuite/gdb.base/jump_multiple_objfiles.h
index 62792df..cc82d6b 100755
--- a/gdb/testsuite/gdb.base/jump_multiple_objfiles.h
+++ b/gdb/testsuite/gdb.base/jump_multiple_objfiles.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/kill-after-signal.c b/gdb/testsuite/gdb.base/kill-after-signal.c
index 0b5ae03..50186c5 100644
--- a/gdb/testsuite/gdb.base/kill-after-signal.c
+++ b/gdb/testsuite/gdb.base/kill-after-signal.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/kill-after-signal.exp b/gdb/testsuite/gdb.base/kill-after-signal.exp
index 4293d59..9ed67f8 100644
--- a/gdb/testsuite/gdb.base/kill-after-signal.exp
+++ b/gdb/testsuite/gdb.base/kill-after-signal.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.c b/gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.c
index 3aa16f5..78b0e7b 100644
--- a/gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.c
+++ b/gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.exp b/gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.exp
index 8c4f3c0..57ec330 100644
--- a/gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.exp
+++ b/gdb/testsuite/gdb.base/kill-detach-inferiors-cmd.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -19,6 +19,7 @@
# commands.
require can_spawn_for_attach
+require allow_multi_inferior_tests
standard_testfile
set executable $testfile
diff --git a/gdb/testsuite/gdb.base/kill-during-detach.c b/gdb/testsuite/gdb.base/kill-during-detach.c
index 416150a..590bcc4 100644
--- a/gdb/testsuite/gdb.base/kill-during-detach.c
+++ b/gdb/testsuite/gdb.base/kill-during-detach.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/kill-during-detach.exp b/gdb/testsuite/gdb.base/kill-during-detach.exp
index d9ab8ee..e164234 100644
--- a/gdb/testsuite/gdb.base/kill-during-detach.exp
+++ b/gdb/testsuite/gdb.base/kill-during-detach.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/killed-outside.c b/gdb/testsuite/gdb.base/killed-outside.c
index 706746d..f8d9c77 100644
--- a/gdb/testsuite/gdb.base/killed-outside.c
+++ b/gdb/testsuite/gdb.base/killed-outside.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/killed-outside.exp b/gdb/testsuite/gdb.base/killed-outside.exp
index 88f4afe..919584d 100644
--- a/gdb/testsuite/gdb.base/killed-outside.exp
+++ b/gdb/testsuite/gdb.base/killed-outside.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/label-without-address.c b/gdb/testsuite/gdb.base/label-without-address.c
index 038d8ae..37865bf 100644
--- a/gdb/testsuite/gdb.base/label-without-address.c
+++ b/gdb/testsuite/gdb.base/label-without-address.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/label-without-address.exp b/gdb/testsuite/gdb.base/label-without-address.exp
index 9d8470f..74bebd3 100644
--- a/gdb/testsuite/gdb.base/label-without-address.exp
+++ b/gdb/testsuite/gdb.base/label-without-address.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/label.exp b/gdb/testsuite/gdb.base/label.exp
index 7325789..fff16e07 100644
--- a/gdb/testsuite/gdb.base/label.exp
+++ b/gdb/testsuite/gdb.base/label.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/langs.exp b/gdb/testsuite/gdb.base/langs.exp
index 862741b..b84b7d6 100644
--- a/gdb/testsuite/gdb.base/langs.exp
+++ b/gdb/testsuite/gdb.base/langs.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1997-2024 Free Software Foundation, Inc.
+# Copyright (C) 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/langs1.f b/gdb/testsuite/gdb.base/langs1.f
index aa290d9..b89210a 100644
--- a/gdb/testsuite/gdb.base/langs1.f
+++ b/gdb/testsuite/gdb.base/langs1.f
@@ -1,4 +1,4 @@
-c Copyright (C) 1999-2024 Free Software Foundation, Inc.
+c Copyright (C) 1999-2025 Free Software Foundation, Inc.
c This program is free software; you can redistribute it and/or modify
c it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/large-frame-1.c b/gdb/testsuite/gdb.base/large-frame-1.c
index 37967bc..2f258a1 100644
--- a/gdb/testsuite/gdb.base/large-frame-1.c
+++ b/gdb/testsuite/gdb.base/large-frame-1.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/large-frame-2.c b/gdb/testsuite/gdb.base/large-frame-2.c
index c75ef67..541b180 100644
--- a/gdb/testsuite/gdb.base/large-frame-2.c
+++ b/gdb/testsuite/gdb.base/large-frame-2.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/large-frame.exp b/gdb/testsuite/gdb.base/large-frame.exp
index 5e4a204..0418b5b 100644
--- a/gdb/testsuite/gdb.base/large-frame.exp
+++ b/gdb/testsuite/gdb.base/large-frame.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/large-frame.h b/gdb/testsuite/gdb.base/large-frame.h
index 1baa1dd..881a1e8 100644
--- a/gdb/testsuite/gdb.base/large-frame.h
+++ b/gdb/testsuite/gdb.base/large-frame.h
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/ldbl_e308.c b/gdb/testsuite/gdb.base/ldbl_e308.c
index 2ebbb40..e3329e0 100644
--- a/gdb/testsuite/gdb.base/ldbl_e308.c
+++ b/gdb/testsuite/gdb.base/ldbl_e308.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/ldbl_e308.exp b/gdb/testsuite/gdb.base/ldbl_e308.exp
index 3eb313e..c7b2bcb 100644
--- a/gdb/testsuite/gdb.base/ldbl_e308.exp
+++ b/gdb/testsuite/gdb.base/ldbl_e308.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/libsegfault.exp b/gdb/testsuite/gdb.base/libsegfault.exp
index 2c16fe8..eab12ff 100644
--- a/gdb/testsuite/gdb.base/libsegfault.exp
+++ b/gdb/testsuite/gdb.base/libsegfault.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -42,7 +42,7 @@ proc gdb_spawn_with_ld_preload {lib cmdline_opts} {
# 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.
- set_sanitizer_default ASAN_OPTIONS verify_asan_link_order 0
+ append_environment_default ASAN_OPTIONS verify_asan_link_order 0
gdb_spawn_with_cmdline_opts $cmdline_opts
}
diff --git a/gdb/testsuite/gdb.base/limited-length.c b/gdb/testsuite/gdb.base/limited-length.c
index c8ece16..28ac703 100644
--- a/gdb/testsuite/gdb.base/limited-length.c
+++ b/gdb/testsuite/gdb.base/limited-length.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/limited-length.exp b/gdb/testsuite/gdb.base/limited-length.exp
index 2d160e1..cd628b4 100644
--- a/gdb/testsuite/gdb.base/limited-length.exp
+++ b/gdb/testsuite/gdb.base/limited-length.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/line-symtabs.c b/gdb/testsuite/gdb.base/line-symtabs.c
index 8f62a1c..75b0c5b 100644
--- a/gdb/testsuite/gdb.base/line-symtabs.c
+++ b/gdb/testsuite/gdb.base/line-symtabs.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/line-symtabs.exp b/gdb/testsuite/gdb.base/line-symtabs.exp
index 9a405c3..cd3326d 100644
--- a/gdb/testsuite/gdb.base/line-symtabs.exp
+++ b/gdb/testsuite/gdb.base/line-symtabs.exp
@@ -1,5 +1,5 @@
# Test handling of line symbol tables (non-primary symtabs).
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/line-symtabs.h b/gdb/testsuite/gdb.base/line-symtabs.h
index cec5553..50e51d7 100644
--- a/gdb/testsuite/gdb.base/line-symtabs.h
+++ b/gdb/testsuite/gdb.base/line-symtabs.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/line65535.c b/gdb/testsuite/gdb.base/line65535.c
index 2cef12a..5ca8402 100644
--- a/gdb/testsuite/gdb.base/line65535.c
+++ b/gdb/testsuite/gdb.base/line65535.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/line65535.exp b/gdb/testsuite/gdb.base/line65535.exp
index e2dda0a..a9cb739 100644
--- a/gdb/testsuite/gdb.base/line65535.exp
+++ b/gdb/testsuite/gdb.base/line65535.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/lineinc.exp b/gdb/testsuite/gdb.base/lineinc.exp
index df5e967..cfd2ba7 100644
--- a/gdb/testsuite/gdb.base/lineinc.exp
+++ b/gdb/testsuite/gdb.base/lineinc.exp
@@ -1,5 +1,5 @@
# Test macro handling of #included files.
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/list-ambiguous-readnow.exp b/gdb/testsuite/gdb.base/list-ambiguous-readnow.exp
index b5b79d3..82b68cc 100644
--- a/gdb/testsuite/gdb.base/list-ambiguous-readnow.exp
+++ b/gdb/testsuite/gdb.base/list-ambiguous-readnow.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/list-ambiguous.exp b/gdb/testsuite/gdb.base/list-ambiguous.exp
index ef62697..cc1210e 100644
--- a/gdb/testsuite/gdb.base/list-ambiguous.exp
+++ b/gdb/testsuite/gdb.base/list-ambiguous.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/list-ambiguous0.c b/gdb/testsuite/gdb.base/list-ambiguous0.c
index db11702..bdd674c 100644
--- a/gdb/testsuite/gdb.base/list-ambiguous0.c
+++ b/gdb/testsuite/gdb.base/list-ambiguous0.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/list-ambiguous1.c b/gdb/testsuite/gdb.base/list-ambiguous1.c
index b7587df..ccf5c7b 100644
--- a/gdb/testsuite/gdb.base/list-ambiguous1.c
+++ b/gdb/testsuite/gdb.base/list-ambiguous1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/list-before-start.exp b/gdb/testsuite/gdb.base/list-before-start.exp
index 5499257..c047827 100644
--- a/gdb/testsuite/gdb.base/list-before-start.exp
+++ b/gdb/testsuite/gdb.base/list-before-start.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/list-dot-nodebug-extra.c b/gdb/testsuite/gdb.base/list-dot-nodebug-extra.c
index 58c1b64..77cff18 100644
--- a/gdb/testsuite/gdb.base/list-dot-nodebug-extra.c
+++ b/gdb/testsuite/gdb.base/list-dot-nodebug-extra.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/list-dot-nodebug.c b/gdb/testsuite/gdb.base/list-dot-nodebug.c
index 5d2a1a3..5be8099 100644
--- a/gdb/testsuite/gdb.base/list-dot-nodebug.c
+++ b/gdb/testsuite/gdb.base/list-dot-nodebug.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/list-dot-nodebug.exp b/gdb/testsuite/gdb.base/list-dot-nodebug.exp
index e15e2bd..a5bc313 100644
--- a/gdb/testsuite/gdb.base/list-dot-nodebug.exp
+++ b/gdb/testsuite/gdb.base/list-dot-nodebug.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/list-missing-source.exp b/gdb/testsuite/gdb.base/list-missing-source.exp
index 01155d8..7807206 100644
--- a/gdb/testsuite/gdb.base/list-missing-source.exp
+++ b/gdb/testsuite/gdb.base/list-missing-source.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/list-nodebug-2.c b/gdb/testsuite/gdb.base/list-nodebug-2.c
index 861e614..747abb2 100644
--- a/gdb/testsuite/gdb.base/list-nodebug-2.c
+++ b/gdb/testsuite/gdb.base/list-nodebug-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/list-nodebug.c b/gdb/testsuite/gdb.base/list-nodebug.c
index d4ae678..8df8f3f 100644
--- a/gdb/testsuite/gdb.base/list-nodebug.c
+++ b/gdb/testsuite/gdb.base/list-nodebug.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/list-nodebug.exp b/gdb/testsuite/gdb.base/list-nodebug.exp
index e07fa9e..d92201b 100644
--- a/gdb/testsuite/gdb.base/list-nodebug.exp
+++ b/gdb/testsuite/gdb.base/list-nodebug.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/list.exp b/gdb/testsuite/gdb.base/list.exp
index f628784..d005ceb 100644
--- a/gdb/testsuite/gdb.base/list.exp
+++ b/gdb/testsuite/gdb.base/list.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/load-command.c b/gdb/testsuite/gdb.base/load-command.c
index b52616f..8d1d628 100644
--- a/gdb/testsuite/gdb.base/load-command.c
+++ b/gdb/testsuite/gdb.base/load-command.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/load-command.exp b/gdb/testsuite/gdb.base/load-command.exp
index 2d3656e..1581873 100644
--- a/gdb/testsuite/gdb.base/load-command.exp
+++ b/gdb/testsuite/gdb.base/load-command.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/logical.exp b/gdb/testsuite/gdb.base/logical.exp
index 18352a8..31007e8 100644
--- a/gdb/testsuite/gdb.base/logical.exp
+++ b/gdb/testsuite/gdb.base/logical.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/long-inferior-output.c b/gdb/testsuite/gdb.base/long-inferior-output.c
index c032190..031cb24 100644
--- a/gdb/testsuite/gdb.base/long-inferior-output.c
+++ b/gdb/testsuite/gdb.base/long-inferior-output.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/long-inferior-output.exp b/gdb/testsuite/gdb.base/long-inferior-output.exp
index db31078..8ef7c53 100644
--- a/gdb/testsuite/gdb.base/long-inferior-output.exp
+++ b/gdb/testsuite/gdb.base/long-inferior-output.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/long_long.c b/gdb/testsuite/gdb.base/long_long.c
index e54b0e0..2775e96 100644
--- a/gdb/testsuite/gdb.base/long_long.c
+++ b/gdb/testsuite/gdb.base/long_long.c
@@ -1,6 +1,6 @@
/* This test script is part of GDB, the GNU debugger.
- Copyright 1999-2024 Free Software Foundation, Inc.
+ Copyright 1999-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/long_long.exp b/gdb/testsuite/gdb.base/long_long.exp
index 81ba543..38ba03e 100644
--- a/gdb/testsuite/gdb.base/long_long.exp
+++ b/gdb/testsuite/gdb.base/long_long.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/longest-types.c b/gdb/testsuite/gdb.base/longest-types.c
index 73fd7ab..304982b 100644
--- a/gdb/testsuite/gdb.base/longest-types.c
+++ b/gdb/testsuite/gdb.base/longest-types.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/longest-types.exp b/gdb/testsuite/gdb.base/longest-types.exp
index 4390908..5b8c16d 100644
--- a/gdb/testsuite/gdb.base/longest-types.exp
+++ b/gdb/testsuite/gdb.base/longest-types.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/longjmp-until-in-main.c b/gdb/testsuite/gdb.base/longjmp-until-in-main.c
index 2cd21aa..eb6b3f5 100644
--- a/gdb/testsuite/gdb.base/longjmp-until-in-main.c
+++ b/gdb/testsuite/gdb.base/longjmp-until-in-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/longjmp-until-in-main.exp b/gdb/testsuite/gdb.base/longjmp-until-in-main.exp
index 2e308f5..8ce647b 100644
--- a/gdb/testsuite/gdb.base/longjmp-until-in-main.exp
+++ b/gdb/testsuite/gdb.base/longjmp-until-in-main.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/longjmp.c b/gdb/testsuite/gdb.base/longjmp.c
index e3b0249..91552b4 100644
--- a/gdb/testsuite/gdb.base/longjmp.c
+++ b/gdb/testsuite/gdb.base/longjmp.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/longjmp.exp b/gdb/testsuite/gdb.base/longjmp.exp
index 00a3fcb..caf0d5c 100644
--- a/gdb/testsuite/gdb.base/longjmp.exp
+++ b/gdb/testsuite/gdb.base/longjmp.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/macro-source-path.c b/gdb/testsuite/gdb.base/macro-source-path.c
index cf440c1..b1e9eba 100644
--- a/gdb/testsuite/gdb.base/macro-source-path.c
+++ b/gdb/testsuite/gdb.base/macro-source-path.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/macro-source-path.exp b/gdb/testsuite/gdb.base/macro-source-path.exp
index 33fb40f..47ad789 100644
--- a/gdb/testsuite/gdb.base/macro-source-path.exp
+++ b/gdb/testsuite/gdb.base/macro-source-path.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/macscp.exp b/gdb/testsuite/gdb.base/macscp.exp
index 388b2fc..0b5f863 100644
--- a/gdb/testsuite/gdb.base/macscp.exp
+++ b/gdb/testsuite/gdb.base/macscp.exp
@@ -1,5 +1,5 @@
# Test macro scoping.
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/main-c.exp b/gdb/testsuite/gdb.base/main-c.exp
index 2c79f0e..413b64b 100644
--- a/gdb/testsuite/gdb.base/main-c.exp
+++ b/gdb/testsuite/gdb.base/main-c.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/main-psymtab.exp b/gdb/testsuite/gdb.base/main-psymtab.exp
index cc0ca65..24227b0 100644
--- a/gdb/testsuite/gdb.base/main-psymtab.exp
+++ b/gdb/testsuite/gdb.base/main-psymtab.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/main.c b/gdb/testsuite/gdb.base/main.c
index 7b7b92a..a8d19f2 100644
--- a/gdb/testsuite/gdb.base/main.c
+++ b/gdb/testsuite/gdb.base/main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/maint-expand-symbols-header-file.c b/gdb/testsuite/gdb.base/maint-expand-symbols-header-file.c
index 2551c40..f324d86 100644
--- a/gdb/testsuite/gdb.base/maint-expand-symbols-header-file.c
+++ b/gdb/testsuite/gdb.base/maint-expand-symbols-header-file.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/maint-expand-symbols-header-file.exp b/gdb/testsuite/gdb.base/maint-expand-symbols-header-file.exp
index 446d7a9..aaf3a8b 100644
--- a/gdb/testsuite/gdb.base/maint-expand-symbols-header-file.exp
+++ b/gdb/testsuite/gdb.base/maint-expand-symbols-header-file.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/maint-expand-symbols-header-file.h b/gdb/testsuite/gdb.base/maint-expand-symbols-header-file.h
index 957b6a4..763e51e 100644
--- a/gdb/testsuite/gdb.base/maint-expand-symbols-header-file.h
+++ b/gdb/testsuite/gdb.base/maint-expand-symbols-header-file.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/maint-info-inline-frames-and-blocks.c b/gdb/testsuite/gdb.base/maint-info-inline-frames-and-blocks.c
index 35b2064..f0034ef 100644
--- a/gdb/testsuite/gdb.base/maint-info-inline-frames-and-blocks.c
+++ b/gdb/testsuite/gdb.base/maint-info-inline-frames-and-blocks.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/maint-info-inline-frames-and-blocks.exp b/gdb/testsuite/gdb.base/maint-info-inline-frames-and-blocks.exp
index 97e5d99..80f2d01 100644
--- a/gdb/testsuite/gdb.base/maint-info-inline-frames-and-blocks.exp
+++ b/gdb/testsuite/gdb.base/maint-info-inline-frames-and-blocks.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/maint-info-sections.exp b/gdb/testsuite/gdb.base/maint-info-sections.exp
index da9cdd8..8b2a558 100644
--- a/gdb/testsuite/gdb.base/maint-info-sections.exp
+++ b/gdb/testsuite/gdb.base/maint-info-sections.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/maint-print-frame-id.c b/gdb/testsuite/gdb.base/maint-print-frame-id.c
index 63970ec..82891f1 100644
--- a/gdb/testsuite/gdb.base/maint-print-frame-id.c
+++ b/gdb/testsuite/gdb.base/maint-print-frame-id.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/maint-print-frame-id.exp b/gdb/testsuite/gdb.base/maint-print-frame-id.exp
index 257a164..6d94c72 100644
--- a/gdb/testsuite/gdb.base/maint-print-frame-id.exp
+++ b/gdb/testsuite/gdb.base/maint-print-frame-id.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/maint-target-async-off.c b/gdb/testsuite/gdb.base/maint-target-async-off.c
index fb4ffc2..f2b8dba 100644
--- a/gdb/testsuite/gdb.base/maint-target-async-off.c
+++ b/gdb/testsuite/gdb.base/maint-target-async-off.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/maint-target-async-off.exp b/gdb/testsuite/gdb.base/maint-target-async-off.exp
index 87c7116..a86a21b 100644
--- a/gdb/testsuite/gdb.base/maint-target-async-off.exp
+++ b/gdb/testsuite/gdb.base/maint-target-async-off.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/maint.exp b/gdb/testsuite/gdb.base/maint.exp
index c77612d..7936e53 100644
--- a/gdb/testsuite/gdb.base/maint.exp
+++ b/gdb/testsuite/gdb.base/maint.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -52,6 +52,40 @@ if {[prepare_for_testing "failed to prepare" $testfile \
return -1
}
+# Check "maint set per-command" warnings. We do this early so that
+# the following tests don't need to expect them, as GDB only warns
+# once.
+
+with_test_prefix "warnings" {
+ # Potential warning given by "maint set per-command time".
+ set maybe_per_command_warning \
+ "(?:warning: per-thread run time information not available on this platform)?"
+
+ # This one should not issue the "per-command time" warning.
+ with_test_prefix "per-command space" {
+ gdb_test_no_output "mt set per-command space on"
+ gdb_test_no_output "mt set per-command space off"
+ }
+
+ # These might warn. "per-command on" enables all sub commands, so
+ # might trigger the "per-command time" warning.
+ foreach cmd {"per-command" "per-command time"} {
+ with_test_prefix $cmd {
+ # GDB only warns once, so restart between commands.
+ clean_restart $binfile
+ gdb_test "mt set $cmd on" "$maybe_per_command_warning"
+ gdb_test "mt set $cmd off" "command started"
+ gdb_test_no_output "mt set $cmd on" \
+ "mt set $cmd on, again"
+ gdb_test "mt set $cmd off" "command started" \
+ "mt set $cmd off, again"
+ }
+ }
+
+ # We've already warned once above, so the following tests don't
+ # need to expect the warning.
+}
+
set readnow_p [readnow]
# The commands we test here produce many lines of output; disable "press
@@ -205,8 +239,8 @@ set re \
"( Number of \"partial\" symbols read: $decimal" \
")?( Number of psym tables \\(not yet expanded\\): $decimal" \
")?( Total memory used for psymbol cache: $decimal" \
- ")?( Number of read CUs: $decimal" \
- " Number of unread CUs: $decimal" \
+ ")?( Number of read units: $decimal" \
+ " Number of unread units: $decimal" \
")? Total memory used for objfile obstack: $decimal" \
" Total memory used for BFD obstack: $decimal" \
" Total memory used for string cache: $decimal" \
@@ -513,4 +547,9 @@ gdb_test_no_output "maint print symbols"
gdb_test_no_output "maint print msymbols"
gdb_test_no_output "maint print psymbols"
+gdb_test "maint canonicalize int short" "canonical = short"
+gdb_test "maint canonicalize fn<ty<int>>" \
+ "canonical = fn<ty<int> >"
+gdb_test "maint canonical unsigned int" "No change\\."
+
gdb_exit
diff --git a/gdb/testsuite/gdb.base/many-completions.exp b/gdb/testsuite/gdb.base/many-completions.exp
index c6215ed..340e38c 100644
--- a/gdb/testsuite/gdb.base/many-completions.exp
+++ b/gdb/testsuite/gdb.base/many-completions.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/many-headers.c b/gdb/testsuite/gdb.base/many-headers.c
index 25d21ae..5214abf 100644
--- a/gdb/testsuite/gdb.base/many-headers.c
+++ b/gdb/testsuite/gdb.base/many-headers.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/many-headers.exp b/gdb/testsuite/gdb.base/many-headers.exp
index 349b47f..f46b980 100644
--- a/gdb/testsuite/gdb.base/many-headers.exp
+++ b/gdb/testsuite/gdb.base/many-headers.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/max-depth-c++.exp b/gdb/testsuite/gdb.base/max-depth-c++.exp
index 4b31bce..2891f7f 100644
--- a/gdb/testsuite/gdb.base/max-depth-c++.exp
+++ b/gdb/testsuite/gdb.base/max-depth-c++.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/max-depth-c.exp b/gdb/testsuite/gdb.base/max-depth-c.exp
index d9018b3..36353e3 100644
--- a/gdb/testsuite/gdb.base/max-depth-c.exp
+++ b/gdb/testsuite/gdb.base/max-depth-c.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/max-depth.c b/gdb/testsuite/gdb.base/max-depth.c
index 7e46b13..4811af9 100644
--- a/gdb/testsuite/gdb.base/max-depth.c
+++ b/gdb/testsuite/gdb.base/max-depth.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/max-depth.exp.tcl b/gdb/testsuite/gdb.base/max-depth.exp.tcl
index 9c6fc61..fcec47b 100644
--- a/gdb/testsuite/gdb.base/max-depth.exp.tcl
+++ b/gdb/testsuite/gdb.base/max-depth.exp.tcl
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/max-value-size.c b/gdb/testsuite/gdb.base/max-value-size.c
index a831aca..f351de7 100644
--- a/gdb/testsuite/gdb.base/max-value-size.c
+++ b/gdb/testsuite/gdb.base/max-value-size.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/max-value-size.exp b/gdb/testsuite/gdb.base/max-value-size.exp
index e513983..09591b3 100644
--- a/gdb/testsuite/gdb.base/max-value-size.exp
+++ b/gdb/testsuite/gdb.base/max-value-size.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/memattr.c b/gdb/testsuite/gdb.base/memattr.c
index 0084ce9..49774f3 100644
--- a/gdb/testsuite/gdb.base/memattr.c
+++ b/gdb/testsuite/gdb.base/memattr.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/memattr.exp b/gdb/testsuite/gdb.base/memattr.exp
index bba00cc..b6afb4f 100644
--- a/gdb/testsuite/gdb.base/memattr.exp
+++ b/gdb/testsuite/gdb.base/memattr.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/memops-watchpoint.c b/gdb/testsuite/gdb.base/memops-watchpoint.c
index 0255cfb..3a40293 100644
--- a/gdb/testsuite/gdb.base/memops-watchpoint.c
+++ b/gdb/testsuite/gdb.base/memops-watchpoint.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/memops-watchpoint.exp b/gdb/testsuite/gdb.base/memops-watchpoint.exp
index cee2d79..eba54c1 100644
--- a/gdb/testsuite/gdb.base/memops-watchpoint.exp
+++ b/gdb/testsuite/gdb.base/memops-watchpoint.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/memtag.c b/gdb/testsuite/gdb.base/memtag.c
index 9c48b17..0e07e8d 100644
--- a/gdb/testsuite/gdb.base/memtag.c
+++ b/gdb/testsuite/gdb.base/memtag.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/memtag.exp b/gdb/testsuite/gdb.base/memtag.exp
index 11249c6..4cd593c 100644
--- a/gdb/testsuite/gdb.base/memtag.exp
+++ b/gdb/testsuite/gdb.base/memtag.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/mips_pro.exp b/gdb/testsuite/gdb.base/mips_pro.exp
index 105e118..ca46e82 100644
--- a/gdb/testsuite/gdb.base/mips_pro.exp
+++ b/gdb/testsuite/gdb.base/mips_pro.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/miscexprs.exp b/gdb/testsuite/gdb.base/miscexprs.exp
index 6dbfebe..86196fa 100644
--- a/gdb/testsuite/gdb.base/miscexprs.exp
+++ b/gdb/testsuite/gdb.base/miscexprs.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/morestack.c b/gdb/testsuite/gdb.base/morestack.c
index 102c528..fc7bf81 100644
--- a/gdb/testsuite/gdb.base/morestack.c
+++ b/gdb/testsuite/gdb.base/morestack.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/morestack.exp b/gdb/testsuite/gdb.base/morestack.exp
index 06a5aa4..d8da583 100644
--- a/gdb/testsuite/gdb.base/morestack.exp
+++ b/gdb/testsuite/gdb.base/morestack.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/moribund-step.exp b/gdb/testsuite/gdb.base/moribund-step.exp
index f0d4b37..b643f07 100644
--- a/gdb/testsuite/gdb.base/moribund-step.exp
+++ b/gdb/testsuite/gdb.base/moribund-step.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/msym-bp-2.c b/gdb/testsuite/gdb.base/msym-bp-2.c
index 4545ff5..9c2ea41 100644
--- a/gdb/testsuite/gdb.base/msym-bp-2.c
+++ b/gdb/testsuite/gdb.base/msym-bp-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/msym-bp-shl-lib.c b/gdb/testsuite/gdb.base/msym-bp-shl-lib.c
index 58e7698..66b2a83 100644
--- a/gdb/testsuite/gdb.base/msym-bp-shl-lib.c
+++ b/gdb/testsuite/gdb.base/msym-bp-shl-lib.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/msym-bp-shl-main-2.c b/gdb/testsuite/gdb.base/msym-bp-shl-main-2.c
index 727735c..f642f85 100644
--- a/gdb/testsuite/gdb.base/msym-bp-shl-main-2.c
+++ b/gdb/testsuite/gdb.base/msym-bp-shl-main-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/msym-bp-shl-main.c b/gdb/testsuite/gdb.base/msym-bp-shl-main.c
index add26b2..1da7711 100644
--- a/gdb/testsuite/gdb.base/msym-bp-shl-main.c
+++ b/gdb/testsuite/gdb.base/msym-bp-shl-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/msym-bp-shl.exp b/gdb/testsuite/gdb.base/msym-bp-shl.exp
index 31af1f9..b154ce6 100644
--- a/gdb/testsuite/gdb.base/msym-bp-shl.exp
+++ b/gdb/testsuite/gdb.base/msym-bp-shl.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/msym-bp.c b/gdb/testsuite/gdb.base/msym-bp.c
index 45f2ba3..a01800a 100644
--- a/gdb/testsuite/gdb.base/msym-bp.c
+++ b/gdb/testsuite/gdb.base/msym-bp.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/msym-bp.exp b/gdb/testsuite/gdb.base/msym-bp.exp
index 84d2902..62e8ec1 100644
--- a/gdb/testsuite/gdb.base/msym-bp.exp
+++ b/gdb/testsuite/gdb.base/msym-bp.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/msym-lang-main.c b/gdb/testsuite/gdb.base/msym-lang-main.c
index a0a1613..fb9f4ee 100644
--- a/gdb/testsuite/gdb.base/msym-lang-main.c
+++ b/gdb/testsuite/gdb.base/msym-lang-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/msym-lang.c b/gdb/testsuite/gdb.base/msym-lang.c
index 81e5027..0ef7093 100644
--- a/gdb/testsuite/gdb.base/msym-lang.c
+++ b/gdb/testsuite/gdb.base/msym-lang.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/msym-lang.exp b/gdb/testsuite/gdb.base/msym-lang.exp
index 357fdee..c86d686 100644
--- a/gdb/testsuite/gdb.base/msym-lang.exp
+++ b/gdb/testsuite/gdb.base/msym-lang.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/multi-forks.c b/gdb/testsuite/gdb.base/multi-forks.c
index 0764a50..4611167 100644
--- a/gdb/testsuite/gdb.base/multi-forks.c
+++ b/gdb/testsuite/gdb.base/multi-forks.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2005-2024 Free Software Foundation, Inc.
+ Copyright 2005-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/multi-forks.exp b/gdb/testsuite/gdb.base/multi-forks.exp
index 19b40c4..3facccb 100644
--- a/gdb/testsuite/gdb.base/multi-forks.exp
+++ b/gdb/testsuite/gdb.base/multi-forks.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -13,11 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Until "set follow-fork-mode" and "catch fork" are implemented on
-# other targets...
-#
-require {istarget "*-*-linux*"}
-
+require allow_fork_tests
standard_testfile .c
diff --git a/gdb/testsuite/gdb.base/multi-line-starts-subshell.exp b/gdb/testsuite/gdb.base/multi-line-starts-subshell.exp
index aaff39d..ba3bdb2 100644
--- a/gdb/testsuite/gdb.base/multi-line-starts-subshell.exp
+++ b/gdb/testsuite/gdb.base/multi-line-starts-subshell.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/native-target-noproc-tdesc.exp b/gdb/testsuite/gdb.base/native-target-noproc-tdesc.exp
index d7d471d..0e2841a 100644
--- a/gdb/testsuite/gdb.base/native-target-noproc-tdesc.exp
+++ b/gdb/testsuite/gdb.base/native-target-noproc-tdesc.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/nested-addr.c b/gdb/testsuite/gdb.base/nested-addr.c
index e51f350..ce5b1c8 100644
--- a/gdb/testsuite/gdb.base/nested-addr.c
+++ b/gdb/testsuite/gdb.base/nested-addr.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/nested-addr.exp b/gdb/testsuite/gdb.base/nested-addr.exp
index f0bfe6a..c4450f6 100644
--- a/gdb/testsuite/gdb.base/nested-addr.exp
+++ b/gdb/testsuite/gdb.base/nested-addr.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/nested-subp1.c b/gdb/testsuite/gdb.base/nested-subp1.c
index 04161ca..f65ea52 100644
--- a/gdb/testsuite/gdb.base/nested-subp1.c
+++ b/gdb/testsuite/gdb.base/nested-subp1.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/nested-subp1.exp b/gdb/testsuite/gdb.base/nested-subp1.exp
index f9d614d..7ea461a 100644
--- a/gdb/testsuite/gdb.base/nested-subp1.exp
+++ b/gdb/testsuite/gdb.base/nested-subp1.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/nested-subp2.c b/gdb/testsuite/gdb.base/nested-subp2.c
index 01e03e2..c08aeea 100644
--- a/gdb/testsuite/gdb.base/nested-subp2.c
+++ b/gdb/testsuite/gdb.base/nested-subp2.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/nested-subp2.exp b/gdb/testsuite/gdb.base/nested-subp2.exp
index 10449c9..d6c67a4 100644
--- a/gdb/testsuite/gdb.base/nested-subp2.exp
+++ b/gdb/testsuite/gdb.base/nested-subp2.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/nested-subp3.c b/gdb/testsuite/gdb.base/nested-subp3.c
index 754c756..28ffcdd 100644
--- a/gdb/testsuite/gdb.base/nested-subp3.c
+++ b/gdb/testsuite/gdb.base/nested-subp3.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/nested-subp3.exp b/gdb/testsuite/gdb.base/nested-subp3.exp
index 0f75a84..f5ea4ce 100644
--- a/gdb/testsuite/gdb.base/nested-subp3.exp
+++ b/gdb/testsuite/gdb.base/nested-subp3.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/new-ui-echo.c b/gdb/testsuite/gdb.base/new-ui-echo.c
index 603bd49..6c99997e 100644
--- a/gdb/testsuite/gdb.base/new-ui-echo.c
+++ b/gdb/testsuite/gdb.base/new-ui-echo.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/new-ui-echo.exp b/gdb/testsuite/gdb.base/new-ui-echo.exp
index 1ee6704..c8d39e8 100644
--- a/gdb/testsuite/gdb.base/new-ui-echo.exp
+++ b/gdb/testsuite/gdb.base/new-ui-echo.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/new-ui-pending-input.c b/gdb/testsuite/gdb.base/new-ui-pending-input.c
index 5102247..e5cd93e 100644
--- a/gdb/testsuite/gdb.base/new-ui-pending-input.c
+++ b/gdb/testsuite/gdb.base/new-ui-pending-input.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/new-ui-pending-input.exp b/gdb/testsuite/gdb.base/new-ui-pending-input.exp
index cfb7ca0..dd2f60d 100644
--- a/gdb/testsuite/gdb.base/new-ui-pending-input.exp
+++ b/gdb/testsuite/gdb.base/new-ui-pending-input.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/new-ui.c b/gdb/testsuite/gdb.base/new-ui.c
index 674ce63..7f9e00a 100644
--- a/gdb/testsuite/gdb.base/new-ui.c
+++ b/gdb/testsuite/gdb.base/new-ui.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/new-ui.exp b/gdb/testsuite/gdb.base/new-ui.exp
index a56d213..f66ddc5 100644
--- a/gdb/testsuite/gdb.base/new-ui.exp
+++ b/gdb/testsuite/gdb.base/new-ui.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/nextoverexit.c b/gdb/testsuite/gdb.base/nextoverexit.c
index 36ec6c4..7eaafe4 100644
--- a/gdb/testsuite/gdb.base/nextoverexit.c
+++ b/gdb/testsuite/gdb.base/nextoverexit.c
@@ -1,4 +1,4 @@
-/* Copyright 2012-2024 Free Software Foundation, Inc.
+/* Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/nextoverexit.exp b/gdb/testsuite/gdb.base/nextoverexit.exp
index b09fe91..3209079 100644
--- a/gdb/testsuite/gdb.base/nextoverexit.exp
+++ b/gdb/testsuite/gdb.base/nextoverexit.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/nodebug.exp b/gdb/testsuite/gdb.base/nodebug.exp
index 4c07d2e..2d0a5a9 100644
--- a/gdb/testsuite/gdb.base/nodebug.exp
+++ b/gdb/testsuite/gdb.base/nodebug.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/nofield.c b/gdb/testsuite/gdb.base/nofield.c
index 9e81510..4ff1ccc 100644
--- a/gdb/testsuite/gdb.base/nofield.c
+++ b/gdb/testsuite/gdb.base/nofield.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/nofield.exp b/gdb/testsuite/gdb.base/nofield.exp
index 0113a8c..2e88725 100644
--- a/gdb/testsuite/gdb.base/nofield.exp
+++ b/gdb/testsuite/gdb.base/nofield.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/non-executable.exp b/gdb/testsuite/gdb.base/non-executable.exp
index 0f3b81a..fcfaa1f 100644
--- a/gdb/testsuite/gdb.base/non-executable.exp
+++ b/gdb/testsuite/gdb.base/non-executable.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/non-lazy-array-index.c b/gdb/testsuite/gdb.base/non-lazy-array-index.c
index 8bf99e8..390911f 100644
--- a/gdb/testsuite/gdb.base/non-lazy-array-index.c
+++ b/gdb/testsuite/gdb.base/non-lazy-array-index.c
@@ -1,4 +1,4 @@
-/* Copyright 2021-2024 Free Software Foundation, Inc.
+/* Copyright 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/non-lazy-array-index.exp b/gdb/testsuite/gdb.base/non-lazy-array-index.exp
index be7ea06..288f159 100644
--- a/gdb/testsuite/gdb.base/non-lazy-array-index.exp
+++ b/gdb/testsuite/gdb.base/non-lazy-array-index.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/noreturn-finish.c b/gdb/testsuite/gdb.base/noreturn-finish.c
index cac0fe7..0413c05 100644
--- a/gdb/testsuite/gdb.base/noreturn-finish.c
+++ b/gdb/testsuite/gdb.base/noreturn-finish.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/noreturn-finish.exp b/gdb/testsuite/gdb.base/noreturn-finish.exp
index 7e17d28..43b2353 100644
--- a/gdb/testsuite/gdb.base/noreturn-finish.exp
+++ b/gdb/testsuite/gdb.base/noreturn-finish.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/noreturn-return.c b/gdb/testsuite/gdb.base/noreturn-return.c
index cac0fe7..0413c05 100644
--- a/gdb/testsuite/gdb.base/noreturn-return.c
+++ b/gdb/testsuite/gdb.base/noreturn-return.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/noreturn-return.exp b/gdb/testsuite/gdb.base/noreturn-return.exp
index f034be2..e653749 100644
--- a/gdb/testsuite/gdb.base/noreturn-return.exp
+++ b/gdb/testsuite/gdb.base/noreturn-return.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/normal.c b/gdb/testsuite/gdb.base/normal.c
index 3fab53d..a9a452a 100644
--- a/gdb/testsuite/gdb.base/normal.c
+++ b/gdb/testsuite/gdb.base/normal.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/nostdlib.c b/gdb/testsuite/gdb.base/nostdlib.c
index 633183a..82feace 100644
--- a/gdb/testsuite/gdb.base/nostdlib.c
+++ b/gdb/testsuite/gdb.base/nostdlib.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/nostdlib.exp b/gdb/testsuite/gdb.base/nostdlib.exp
index 906e627..ecf09a8 100644
--- a/gdb/testsuite/gdb.base/nostdlib.exp
+++ b/gdb/testsuite/gdb.base/nostdlib.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -24,33 +24,74 @@ require !use_gdb_stub
# dependent on whether the system libraries are already prelinked.
# prelink: Could not set /lib64/libm-2.11.1.so owner or mode: Operation not permitted
set compile {
- gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-nostdlib}
-}
-set board [target_info name]
-if [board_info $board exists mathlib] {
- set mathlib [board_info $dest mathlib]
- set_board_info mathlib ""
- set err [eval $compile]
- set_board_info mathlib $mathlib
-} else {
- set_board_info mathlib ""
- set err [eval $compile]
- unset_board_info mathlib
-}
-if {$err != ""} {
- untested "failed to compile"
- return -1
+ gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $opts
}
-clean_restart $binfile
+foreach_with_prefix pie { "nopie" "pie" } {
+ # OPTS and BINFILE are used by the COMPILE string (defined above)
+ # when it is evaluated below.
+ set opts [list debug additional_flags=-nostdlib $pie]
+ set binfile [standard_output_file $testfile-$pie]
+
+ set board [target_info name]
+ if [board_info $board exists mathlib] {
+ set mathlib [board_info $dest mathlib]
+ set_board_info mathlib ""
+ set err [eval $compile]
+ set_board_info mathlib $mathlib
+ } else {
+ set_board_info mathlib ""
+ set err [eval $compile]
+ unset_board_info mathlib
+ }
+ if {$err != ""} {
+ untested "failed to compile"
+ return -1
+ }
+
+ clean_restart $binfile
-gdb_breakpoint "*marker"
-gdb_breakpoint "*_start"
+ gdb_breakpoint "*marker"
-gdb_run_cmd
+ # Say we set a permanent breakpoint on *_start. When setting the
+ # breakpoint, it will resolve to _start in the exec.
+ # After starting to run, that may stay the same, and consequently
+ # execution will stop there.
+ # OTOH, after starting to run, that may change to *_start in the dynamic
+ # linker, and consequently execution will stop there.
+ # There's currently no way to enforce one or the other (PR32748).
+ #
+ # Say we run into a stop in *_start in the dynamic linker. Continuing
+ # from this situation, the dynamic linker is reported as unloaded, which
+ # makes the breakpoint resolve again to *_start in the exec, and
+ # consequently execution will stop there as well.
+ #
+ # However, we cannot rely on this behavior either. Reporting the dynamic
+ # linker as unloaded is a GLIBC bug, which may get fixed eventually.
+ #
+ # Instead of trying to cater for all these possibilities in a controlled
+ # fashion, make the breakpoint temporary, ensuring that there will just be
+ # one stop.
+ gdb_breakpoint "*_start" temporary
-# Breakpoint 2, Stopped due to shared library event
-# _start () at ./gdb.base/nostdlib.c:20
-gdb_test "" {Breakpoint [0-9]+, .*_start .*} "stop at run"
+ gdb_run_cmd
-gdb_test "continue" {Breakpoint [0-9]+, marker .*} "continue to marker"
+ # Breakpoint 2, Stopped due to shared library event
+ # _start () at ./gdb.base/nostdlib.c:20
+ gdb_test "" {Temporary breakpoint [0-9]+, .*_start .*} "stop at run"
+
+ gdb_test "continue" {Breakpoint [0-9]+, marker .*} "continue to marker"
+
+ # When compiling as PIE the executable will be a dynamic
+ # executable, the dynamic linker performs the PIE relocation.
+ # Some versions of glibc would (possibly due to a bug) report the
+ # dynamic linker as unmapped during startup, which places the
+ # 'shlib event' breakpoint(s) into the PENDING state.
+ #
+ # At one point trying to print these internal breakpoints in a
+ # PENDING state would crash GDB, so lets make sure that doesn't
+ # happen now. We don't really care about the exact output,
+ # gdb_test will spot if running this command crashes GDB, which is
+ # all we're really checking for.
+ gdb_test "maint info breakpoints" ".*"
+}
diff --git a/gdb/testsuite/gdb.base/offsets.c b/gdb/testsuite/gdb.base/offsets.c
index e9532bd..a46a072 100644
--- a/gdb/testsuite/gdb.base/offsets.c
+++ b/gdb/testsuite/gdb.base/offsets.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/offsets.exp b/gdb/testsuite/gdb.base/offsets.exp
index bf9a78c..548f2a4 100644
--- a/gdb/testsuite/gdb.base/offsets.exp
+++ b/gdb/testsuite/gdb.base/offsets.exp
@@ -1,6 +1,6 @@
# Test big offsets
-# Copyright (c) 2014-2024 Free Software Foundation, Inc.
+# Copyright (c) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/opaque.exp b/gdb/testsuite/gdb.base/opaque.exp
index d803714..9a5364a 100644
--- a/gdb/testsuite/gdb.base/opaque.exp
+++ b/gdb/testsuite/gdb.base/opaque.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/options.c b/gdb/testsuite/gdb.base/options.c
index e2442af..81c8b89 100644
--- a/gdb/testsuite/gdb.base/options.c
+++ b/gdb/testsuite/gdb.base/options.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/options.exp b/gdb/testsuite/gdb.base/options.exp
index a1ca39e..a0947e2 100644
--- a/gdb/testsuite/gdb.base/options.exp
+++ b/gdb/testsuite/gdb.base/options.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -62,8 +62,7 @@ proc check_completion_result {expected test} {
# just checking whether GDB recognizes the option and auto-appends a
# space.
proc test_completer_recognizes {res input_line} {
- set expected_re [string_to_regexp $input_line]
- test_gdb_complete_unique $input_line $expected_re
+ test_gdb_complete_unique $input_line $input_line
check_completion_result $res $input_line
}
@@ -99,21 +98,21 @@ proc make_cmd {variant} {
# operand.
proc expect_none {operand} {
return "-flag 0 -xx1 0 -xx2 0 -bool 0 -enum xxx -uint-unl 0 -pint-unl 0\
- -string '' -filename '' -- $operand"
+ -string '' -filename '' -color magenta -- $operand"
}
# Return a string for the expected result of running "maint
# test-options xxx", with -flag set. OPERAND is the expected operand.
proc expect_flag {operand} {
return "-flag 1 -xx1 0 -xx2 0 -bool 0 -enum xxx -uint-unl 0 -pint-unl 0\
- -string '' -filename '' -- $operand"
+ -string '' -filename '' -color magenta -- $operand"
}
# Return a string for the expected result of running "maint
# test-options xxx", with -bool set. OPERAND is the expected operand.
proc expect_bool {operand} {
return "-flag 0 -xx1 0 -xx2 0 -bool 1 -enum xxx -uint-unl 0 -pint-unl 0\
- -string '' -filename '' -- $operand"
+ -string '' -filename '' -color magenta -- $operand"
}
# Return a string for the expected result of running "maint
@@ -123,10 +122,10 @@ proc expect_bool {operand} {
proc expect_integer {option val operand} {
if {$option == "uinteger-unlimited"} {
return "-flag 0 -xx1 0 -xx2 0 -bool 0 -enum xxx -uint-unl $val\
- -pint-unl 0 -string '' -filename '' -- $operand"
+ -pint-unl 0 -string '' -filename '' -color magenta -- $operand"
} elseif {$option == "pinteger-unlimited"} {
return "-flag 0 -xx1 0 -xx2 0 -bool 0 -enum xxx -uint-unl 0\
- -pint-unl $val -string '' -filename '' -- $operand"
+ -pint-unl $val -string '' -filename '' -color magenta -- $operand"
} else {
error "unsupported option: $option"
}
@@ -144,7 +143,7 @@ proc expect_string {str operand} {
set str [string range $str 1 end-1]
}
return "-flag 0 -xx1 0 -xx2 0 -bool 0 -enum xxx -uint-unl 0 -pint-unl 0\
- -string '$str' -filename '' -- $operand"
+ -string '$str' -filename '' -color magenta -- $operand"
}
# Return a string for the expected result of running "maint
@@ -159,11 +158,12 @@ proc expect_filename {str operand} {
set str [string range $str 1 end-1]
}
return "-flag 0 -xx1 0 -xx2 0 -bool 0 -enum xxx -uint-unl 0 -pint-unl 0\
- -string '' -filename '$str' -- $operand"
+ -string '' -filename '$str' -color magenta -- $operand"
}
set all_options {
"-bool"
+ "-color"
"-enum"
"-filename"
"-flag"
@@ -508,12 +508,26 @@ proc_with_prefix test-thread-apply {} {
proc_with_prefix test-info-threads {} {
test_gdb_complete_multiple "info threads " "" "" {
"-gid"
+ "-running"
+ "-stopped"
"ID"
}
+ test_gdb_complete_multiple "info threads " "-" "" {
+ "-gid"
+ "-running"
+ "-stopped"
+ }
+
test_gdb_complete_unique \
- "info threads -" \
+ "info threads -g" \
"info threads -gid"
+ test_gdb_complete_unique \
+ "info threads -r" \
+ "info threads -running"
+ test_gdb_complete_unique \
+ "info threads -s" \
+ "info threads -stopped"
# "ID" isn't really something the user can type.
test_gdb_complete_none "info threads I"
@@ -628,7 +642,7 @@ proc_with_prefix test-flag {variant} {
# Extract twice the same flag, separated by one space.
gdb_test "$cmd -xx1 -xx2 -xx1 -xx2 -xx1 -- non flags args" \
"-flag 0 -xx1 1 -xx2 1 -bool 0 -enum xxx -uint-unl 0 -pint-unl 0\
- -string '' -filename '' -- non flags args"
+ -string '' -filename '' -color magenta -- non flags args"
# Extract 2 known flags in front of unknown flags.
gdb_test "$cmd -xx1 -xx2 -a -b -c -xx1 --" \
diff --git a/gdb/testsuite/gdb.base/osabi.exp b/gdb/testsuite/gdb.base/osabi.exp
index 4fd267b..ba99835 100644
--- a/gdb/testsuite/gdb.base/osabi.exp
+++ b/gdb/testsuite/gdb.base/osabi.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/overlays.exp b/gdb/testsuite/gdb.base/overlays.exp
index c8730ec..0aa94f9 100644
--- a/gdb/testsuite/gdb.base/overlays.exp
+++ b/gdb/testsuite/gdb.base/overlays.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/page-logging.exp b/gdb/testsuite/gdb.base/page-logging.exp
index 6cc9770..b07d540 100644
--- a/gdb/testsuite/gdb.base/page-logging.exp
+++ b/gdb/testsuite/gdb.base/page-logging.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/page.exp b/gdb/testsuite/gdb.base/page.exp
index c95a2bc..026356a 100644
--- a/gdb/testsuite/gdb.base/page.exp
+++ b/gdb/testsuite/gdb.base/page.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.c b/gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.c
index 726fffe..7e8a5ef 100644
--- a/gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.c
+++ b/gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.exp b/gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.exp
index 1fc7043..a831050 100644
--- a/gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.exp
+++ b/gdb/testsuite/gdb.base/paginate-after-ctrl-c-running.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/paginate-bg-execution.c b/gdb/testsuite/gdb.base/paginate-bg-execution.c
index 54e0aec..d3a4659 100644
--- a/gdb/testsuite/gdb.base/paginate-bg-execution.c
+++ b/gdb/testsuite/gdb.base/paginate-bg-execution.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/paginate-bg-execution.exp b/gdb/testsuite/gdb.base/paginate-bg-execution.exp
index 1906e58..dfd7823 100644
--- a/gdb/testsuite/gdb.base/paginate-bg-execution.exp
+++ b/gdb/testsuite/gdb.base/paginate-bg-execution.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/paginate-execution-startup.c b/gdb/testsuite/gdb.base/paginate-execution-startup.c
index 54e0aec..d3a4659 100644
--- a/gdb/testsuite/gdb.base/paginate-execution-startup.c
+++ b/gdb/testsuite/gdb.base/paginate-execution-startup.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/paginate-execution-startup.exp b/gdb/testsuite/gdb.base/paginate-execution-startup.exp
index 134cf64..430bda3 100644
--- a/gdb/testsuite/gdb.base/paginate-execution-startup.exp
+++ b/gdb/testsuite/gdb.base/paginate-execution-startup.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/paginate-inferior-exit.c b/gdb/testsuite/gdb.base/paginate-inferior-exit.c
index 54e0aec..d3a4659 100644
--- a/gdb/testsuite/gdb.base/paginate-inferior-exit.c
+++ b/gdb/testsuite/gdb.base/paginate-inferior-exit.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/paginate-inferior-exit.exp b/gdb/testsuite/gdb.base/paginate-inferior-exit.exp
index 3d99a5f..76176e2 100644
--- a/gdb/testsuite/gdb.base/paginate-inferior-exit.exp
+++ b/gdb/testsuite/gdb.base/paginate-inferior-exit.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/parse_number.exp b/gdb/testsuite/gdb.base/parse_number.exp
index 64ce14c..14ccd8e 100644
--- a/gdb/testsuite/gdb.base/parse_number.exp
+++ b/gdb/testsuite/gdb.base/parse_number.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/paste-newline.exp b/gdb/testsuite/gdb.base/paste-newline.exp
index dabceac..77e278e 100644
--- a/gdb/testsuite/gdb.base/paste-newline.exp
+++ b/gdb/testsuite/gdb.base/paste-newline.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/patch.c b/gdb/testsuite/gdb.base/patch.c
index 583116c..44abbd6 100644
--- a/gdb/testsuite/gdb.base/patch.c
+++ b/gdb/testsuite/gdb.base/patch.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/patch.exp b/gdb/testsuite/gdb.base/patch.exp
index 628ad56..69e5581 100644
--- a/gdb/testsuite/gdb.base/patch.exp
+++ b/gdb/testsuite/gdb.base/patch.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/pc-fp.exp b/gdb/testsuite/gdb.base/pc-fp.exp
index 667bc45..8e3d80c 100644
--- a/gdb/testsuite/gdb.base/pc-fp.exp
+++ b/gdb/testsuite/gdb.base/pc-fp.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/pc-not-saved.c b/gdb/testsuite/gdb.base/pc-not-saved.c
index bc6632a..f482c36 100644
--- a/gdb/testsuite/gdb.base/pc-not-saved.c
+++ b/gdb/testsuite/gdb.base/pc-not-saved.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/pc-not-saved.exp b/gdb/testsuite/gdb.base/pc-not-saved.exp
index 5f22568..16e11bc 100644
--- a/gdb/testsuite/gdb.base/pc-not-saved.exp
+++ b/gdb/testsuite/gdb.base/pc-not-saved.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/pc-not-saved.py b/gdb/testsuite/gdb.base/pc-not-saved.py
index 8090858..b8bc361 100644
--- a/gdb/testsuite/gdb.base/pc-not-saved.py
+++ b/gdb/testsuite/gdb.base/pc-not-saved.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/pending.c b/gdb/testsuite/gdb.base/pending.c
index 45b38e9..3ec15b5 100644
--- a/gdb/testsuite/gdb.base/pending.c
+++ b/gdb/testsuite/gdb.base/pending.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/pending.exp b/gdb/testsuite/gdb.base/pending.exp
index 833e084..150adbe 100644
--- a/gdb/testsuite/gdb.base/pending.exp
+++ b/gdb/testsuite/gdb.base/pending.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/pendshr.c b/gdb/testsuite/gdb.base/pendshr.c
index c56f125..fc0c066 100644
--- a/gdb/testsuite/gdb.base/pendshr.c
+++ b/gdb/testsuite/gdb.base/pendshr.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/permissions.exp b/gdb/testsuite/gdb.base/permissions.exp
index 6c3cecb..edfe5a0 100644
--- a/gdb/testsuite/gdb.base/permissions.exp
+++ b/gdb/testsuite/gdb.base/permissions.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/persistent-lang.cc b/gdb/testsuite/gdb.base/persistent-lang.cc
index 27a14b7..65b18bc 100644
--- a/gdb/testsuite/gdb.base/persistent-lang.cc
+++ b/gdb/testsuite/gdb.base/persistent-lang.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/persistent-lang.exp b/gdb/testsuite/gdb.base/persistent-lang.exp
index d3bedae..3528998 100644
--- a/gdb/testsuite/gdb.base/persistent-lang.exp
+++ b/gdb/testsuite/gdb.base/persistent-lang.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/pie-execl.c b/gdb/testsuite/gdb.base/pie-execl.c
index d468d85..e53290e 100644
--- a/gdb/testsuite/gdb.base/pie-execl.c
+++ b/gdb/testsuite/gdb.base/pie-execl.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/pie-execl.exp b/gdb/testsuite/gdb.base/pie-execl.exp
index cbcb3ac..d26aa62 100644
--- a/gdb/testsuite/gdb.base/pie-execl.exp
+++ b/gdb/testsuite/gdb.base/pie-execl.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/pie-fork.c b/gdb/testsuite/gdb.base/pie-fork.c
index 716cf36..54473f9 100644
--- a/gdb/testsuite/gdb.base/pie-fork.c
+++ b/gdb/testsuite/gdb.base/pie-fork.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/pie-fork.exp b/gdb/testsuite/gdb.base/pie-fork.exp
index 16aba1f..86407b4 100644
--- a/gdb/testsuite/gdb.base/pie-fork.exp
+++ b/gdb/testsuite/gdb.base/pie-fork.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,6 +16,8 @@
# Test that we can follow forks properly when the executable is
# position-independent.
+require allow_fork_tests
+
standard_testfile
set opts [list debug pie]
diff --git a/gdb/testsuite/gdb.base/pointers.exp b/gdb/testsuite/gdb.base/pointers.exp
index 0bf88be..ab02181 100644
--- a/gdb/testsuite/gdb.base/pointers.exp
+++ b/gdb/testsuite/gdb.base/pointers.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/pr10179.exp b/gdb/testsuite/gdb.base/pr10179.exp
index efe77aa..dfb8f9b 100644
--- a/gdb/testsuite/gdb.base/pr10179.exp
+++ b/gdb/testsuite/gdb.base/pr10179.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/pr11022.c b/gdb/testsuite/gdb.base/pr11022.c
index 1600f2a..81688ad 100644
--- a/gdb/testsuite/gdb.base/pr11022.c
+++ b/gdb/testsuite/gdb.base/pr11022.c
@@ -1,6 +1,6 @@
/* This test is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/pr11022.exp b/gdb/testsuite/gdb.base/pr11022.exp
index 59f8eff..e7bfba0 100644
--- a/gdb/testsuite/gdb.base/pr11022.exp
+++ b/gdb/testsuite/gdb.base/pr11022.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/prelink-lib.c b/gdb/testsuite/gdb.base/prelink-lib.c
index 3eac0cf..0f55968 100644
--- a/gdb/testsuite/gdb.base/prelink-lib.c
+++ b/gdb/testsuite/gdb.base/prelink-lib.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2006-2024 Free Software Foundation, Inc.
+ Copyright 2006-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/prelink.c b/gdb/testsuite/gdb.base/prelink.c
index 6bc417b..23610db 100644
--- a/gdb/testsuite/gdb.base/prelink.c
+++ b/gdb/testsuite/gdb.base/prelink.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2006-2024 Free Software Foundation, Inc.
+ Copyright 2006-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/prelink.exp b/gdb/testsuite/gdb.base/prelink.exp
index 6b4790e..5dd4cdc 100644
--- a/gdb/testsuite/gdb.base/prelink.exp
+++ b/gdb/testsuite/gdb.base/prelink.exp
@@ -1,4 +1,4 @@
-# Copyright 2006-2024 Free Software Foundation, Inc.
+# Copyright 2006-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/premature-dummy-frame-removal.c b/gdb/testsuite/gdb.base/premature-dummy-frame-removal.c
index 1e78769..bc9e92e 100644
--- a/gdb/testsuite/gdb.base/premature-dummy-frame-removal.c
+++ b/gdb/testsuite/gdb.base/premature-dummy-frame-removal.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/premature-dummy-frame-removal.exp b/gdb/testsuite/gdb.base/premature-dummy-frame-removal.exp
index c813fbe..27e8410 100644
--- a/gdb/testsuite/gdb.base/premature-dummy-frame-removal.exp
+++ b/gdb/testsuite/gdb.base/premature-dummy-frame-removal.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/premature-dummy-frame-removal.py b/gdb/testsuite/gdb.base/premature-dummy-frame-removal.py
index 2c3567d..a89e279 100644
--- a/gdb/testsuite/gdb.base/premature-dummy-frame-removal.py
+++ b/gdb/testsuite/gdb.base/premature-dummy-frame-removal.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/pretty-array.c b/gdb/testsuite/gdb.base/pretty-array.c
index d474126..585921d 100644
--- a/gdb/testsuite/gdb.base/pretty-array.c
+++ b/gdb/testsuite/gdb.base/pretty-array.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/pretty-array.exp b/gdb/testsuite/gdb.base/pretty-array.exp
index 80d515c..e512d19 100644
--- a/gdb/testsuite/gdb.base/pretty-array.exp
+++ b/gdb/testsuite/gdb.base/pretty-array.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/pretty-print.c b/gdb/testsuite/gdb.base/pretty-print.c
index 9a93f94..b2cd518 100644
--- a/gdb/testsuite/gdb.base/pretty-print.c
+++ b/gdb/testsuite/gdb.base/pretty-print.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/pretty-print.exp b/gdb/testsuite/gdb.base/pretty-print.exp
index a36f8fc..8b60d13 100644
--- a/gdb/testsuite/gdb.base/pretty-print.exp
+++ b/gdb/testsuite/gdb.base/pretty-print.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/print-file-var-lib1.c b/gdb/testsuite/gdb.base/print-file-var-lib1.c
index 7561b64..0a73ba6 100644
--- a/gdb/testsuite/gdb.base/print-file-var-lib1.c
+++ b/gdb/testsuite/gdb.base/print-file-var-lib1.c
@@ -1,5 +1,5 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/print-file-var-lib2.c b/gdb/testsuite/gdb.base/print-file-var-lib2.c
index 4c53c16..97d65ea 100644
--- a/gdb/testsuite/gdb.base/print-file-var-lib2.c
+++ b/gdb/testsuite/gdb.base/print-file-var-lib2.c
@@ -1,5 +1,5 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/print-file-var-main.c b/gdb/testsuite/gdb.base/print-file-var-main.c
index d8475c7..6c67255 100644
--- a/gdb/testsuite/gdb.base/print-file-var-main.c
+++ b/gdb/testsuite/gdb.base/print-file-var-main.c
@@ -1,5 +1,5 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/print-file-var.exp b/gdb/testsuite/gdb.base/print-file-var.exp
index 70e454d..a9d3064 100644
--- a/gdb/testsuite/gdb.base/print-file-var.exp
+++ b/gdb/testsuite/gdb.base/print-file-var.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/print-file-var.h b/gdb/testsuite/gdb.base/print-file-var.h
index bfcd8cac..7c6de34 100644
--- a/gdb/testsuite/gdb.base/print-file-var.h
+++ b/gdb/testsuite/gdb.base/print-file-var.h
@@ -1,5 +1,5 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/print-internal-string.c b/gdb/testsuite/gdb.base/print-internal-string.c
index 8ede883..b521482 100644
--- a/gdb/testsuite/gdb.base/print-internal-string.c
+++ b/gdb/testsuite/gdb.base/print-internal-string.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/print-internal-string.exp b/gdb/testsuite/gdb.base/print-internal-string.exp
index 21605f0..156fb80 100644
--- a/gdb/testsuite/gdb.base/print-internal-string.exp
+++ b/gdb/testsuite/gdb.base/print-internal-string.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/print-symbol-loading-lib.c b/gdb/testsuite/gdb.base/print-symbol-loading-lib.c
index 92d6f60..31ac8dc 100644
--- a/gdb/testsuite/gdb.base/print-symbol-loading-lib.c
+++ b/gdb/testsuite/gdb.base/print-symbol-loading-lib.c
@@ -1,4 +1,4 @@
-/* Copyright 2010-2024 Free Software Foundation, Inc.
+/* Copyright 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/print-symbol-loading-main.c b/gdb/testsuite/gdb.base/print-symbol-loading-main.c
index 99bbfd6..359f304 100644
--- a/gdb/testsuite/gdb.base/print-symbol-loading-main.c
+++ b/gdb/testsuite/gdb.base/print-symbol-loading-main.c
@@ -1,4 +1,4 @@
-/* Copyright 2010-2024 Free Software Foundation, Inc.
+/* Copyright 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/print-symbol-loading.exp b/gdb/testsuite/gdb.base/print-symbol-loading.exp
index b3520f1..c9e2480 100644
--- a/gdb/testsuite/gdb.base/print-symbol-loading.exp
+++ b/gdb/testsuite/gdb.base/print-symbol-loading.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -15,7 +15,7 @@
# Test the "print symbol-loading" option.
-require allow_shlib_tests
+require allow_shlib_tests gcore_cmd_available
standard_testfile print-symbol-loading-main.c
set libfile print-symbol-loading-lib
diff --git a/gdb/testsuite/gdb.base/printcmds.exp b/gdb/testsuite/gdb.base/printcmds.exp
index 40176c6..8634668 100644
--- a/gdb/testsuite/gdb.base/printcmds.exp
+++ b/gdb/testsuite/gdb.base/printcmds.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -744,6 +744,12 @@ proc test_print_char_arrays {} {
gdb_test_no_output "set print address off" "address off char arrays"
}
+proc test_print_arrays_negative {} {
+ # Check whether correct error messages are printed
+ gdb_test "p 1 == { }" "size of the array element must not be zero"
+ gdb_test "p 1 == { 1, 'a' }" "array elements must all be the same size"
+}
+
proc test_print_nibbles {} {
gdb_test_no_output "set print nibbles on"
foreach lang_line {
@@ -1235,6 +1241,7 @@ test_print_int_arrays
test_print_typedef_arrays
test_artificial_arrays
test_print_char_arrays
+test_print_arrays_negative
test_print_nibbles
# We used to do the runto main here.
test_print_string_constants
diff --git a/gdb/testsuite/gdb.base/printf-wchar_t.c b/gdb/testsuite/gdb.base/printf-wchar_t.c
index 00b6001..7263f87 100644
--- a/gdb/testsuite/gdb.base/printf-wchar_t.c
+++ b/gdb/testsuite/gdb.base/printf-wchar_t.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/printf-wchar_t.exp b/gdb/testsuite/gdb.base/printf-wchar_t.exp
index f4903f7..ea9d37a 100644
--- a/gdb/testsuite/gdb.base/printf-wchar_t.exp
+++ b/gdb/testsuite/gdb.base/printf-wchar_t.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/prologue-include.c b/gdb/testsuite/gdb.base/prologue-include.c
index b8dd39e..3efc0ba 100644
--- a/gdb/testsuite/gdb.base/prologue-include.c
+++ b/gdb/testsuite/gdb.base/prologue-include.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/prologue-include.exp b/gdb/testsuite/gdb.base/prologue-include.exp
index cf748df..d57a471 100644
--- a/gdb/testsuite/gdb.base/prologue-include.exp
+++ b/gdb/testsuite/gdb.base/prologue-include.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/prologue-include.h b/gdb/testsuite/gdb.base/prologue-include.h
index acdd8c0..1854502 100644
--- a/gdb/testsuite/gdb.base/prologue-include.h
+++ b/gdb/testsuite/gdb.base/prologue-include.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/prologue.c b/gdb/testsuite/gdb.base/prologue.c
index 100e3db..f60c778 100644
--- a/gdb/testsuite/gdb.base/prologue.c
+++ b/gdb/testsuite/gdb.base/prologue.c
@@ -1,6 +1,6 @@
/* This test is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/prologue.exp b/gdb/testsuite/gdb.base/prologue.exp
index a925e4f..0d3902d 100644
--- a/gdb/testsuite/gdb.base/prologue.exp
+++ b/gdb/testsuite/gdb.base/prologue.exp
@@ -1,5 +1,5 @@
# Test for prologue skipping in minimal symbols with line info.
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/psym-external-decl-2.c b/gdb/testsuite/gdb.base/psym-external-decl-2.c
index 57291f0..a30fa2b 100644
--- a/gdb/testsuite/gdb.base/psym-external-decl-2.c
+++ b/gdb/testsuite/gdb.base/psym-external-decl-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/psym-external-decl.c b/gdb/testsuite/gdb.base/psym-external-decl.c
index f651626..fe67dae 100644
--- a/gdb/testsuite/gdb.base/psym-external-decl.c
+++ b/gdb/testsuite/gdb.base/psym-external-decl.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/psym-external-decl.exp b/gdb/testsuite/gdb.base/psym-external-decl.exp
index 1e2a1d7..9798535 100644
--- a/gdb/testsuite/gdb.base/psym-external-decl.exp
+++ b/gdb/testsuite/gdb.base/psym-external-decl.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/psymtab.exp b/gdb/testsuite/gdb.base/psymtab.exp
index 8e792b5..bc80740 100644
--- a/gdb/testsuite/gdb.base/psymtab.exp
+++ b/gdb/testsuite/gdb.base/psymtab.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/ptr-typedef.c b/gdb/testsuite/gdb.base/ptr-typedef.c
index a28e24f..ccde9fb 100644
--- a/gdb/testsuite/gdb.base/ptr-typedef.c
+++ b/gdb/testsuite/gdb.base/ptr-typedef.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2005-2024 Free Software Foundation, Inc.
+ Copyright 2005-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/ptr-typedef.exp b/gdb/testsuite/gdb.base/ptr-typedef.exp
index eb70a8a..53d03cc 100644
--- a/gdb/testsuite/gdb.base/ptr-typedef.exp
+++ b/gdb/testsuite/gdb.base/ptr-typedef.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/ptype-offsets.cc b/gdb/testsuite/gdb.base/ptype-offsets.cc
index 6b1baa8..c657bec 100644
--- a/gdb/testsuite/gdb.base/ptype-offsets.cc
+++ b/gdb/testsuite/gdb.base/ptype-offsets.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/ptype-offsets.exp b/gdb/testsuite/gdb.base/ptype-offsets.exp
index 68748da..ff20ef5 100644
--- a/gdb/testsuite/gdb.base/ptype-offsets.exp
+++ b/gdb/testsuite/gdb.base/ptype-offsets.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/ptype.exp b/gdb/testsuite/gdb.base/ptype.exp
index bdec993..6971f4c 100644
--- a/gdb/testsuite/gdb.base/ptype.exp
+++ b/gdb/testsuite/gdb.base/ptype.exp
@@ -1,4 +1,4 @@
-# Copyright 1988-2024 Free Software Foundation, Inc.
+# Copyright 1988-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -544,10 +544,10 @@ proc ptype_maybe_prototyped { id prototyped plain { overprototyped "NO-MATCH" }
fail "ptype $id (compiler doesn't emit prototyped types)"
}
-re "type = $overprototyped\[\r\n\]+$gdb_prompt $" {
- if { [test_compiler_info "armcc-*"] } {
- setup_xfail "*-*-*"
- }
- fail "ptype $id (compiler doesn't emit unprototyped types)"
+ # C23 no longer supports non-prototype function declaration, in which
+ # case the overprototyped regexp is the expected one. Simply pass
+ # in all cases.
+ pass "ptype $id (overprototyped)"
}
}
}
diff --git a/gdb/testsuite/gdb.base/quit-live.c b/gdb/testsuite/gdb.base/quit-live.c
index 3d2e741..5bfaf23 100644
--- a/gdb/testsuite/gdb.base/quit-live.c
+++ b/gdb/testsuite/gdb.base/quit-live.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/quit-live.exp b/gdb/testsuite/gdb.base/quit-live.exp
index 3199d5f..a95c980 100644
--- a/gdb/testsuite/gdb.base/quit-live.exp
+++ b/gdb/testsuite/gdb.base/quit-live.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/quit.exp b/gdb/testsuite/gdb.base/quit.exp
index b9a80f8..682ce4a 100644
--- a/gdb/testsuite/gdb.base/quit.exp
+++ b/gdb/testsuite/gdb.base/quit.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/radix.exp b/gdb/testsuite/gdb.base/radix.exp
index 37eb849..0d32baa 100644
--- a/gdb/testsuite/gdb.base/radix.exp
+++ b/gdb/testsuite/gdb.base/radix.exp
@@ -1,5 +1,5 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 1993-2024 Free Software Foundation, Inc.
+# Copyright 1993-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/random-signal.c b/gdb/testsuite/gdb.base/random-signal.c
index 4b6d896..127a149 100644
--- a/gdb/testsuite/gdb.base/random-signal.c
+++ b/gdb/testsuite/gdb.base/random-signal.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/random-signal.exp b/gdb/testsuite/gdb.base/random-signal.exp
index a02d036..bb5b482 100644
--- a/gdb/testsuite/gdb.base/random-signal.exp
+++ b/gdb/testsuite/gdb.base/random-signal.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/randomize.c b/gdb/testsuite/gdb.base/randomize.c
index 199440f..193506d 100644
--- a/gdb/testsuite/gdb.base/randomize.c
+++ b/gdb/testsuite/gdb.base/randomize.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/randomize.exp b/gdb/testsuite/gdb.base/randomize.exp
index 37bf99d..63bff21 100644
--- a/gdb/testsuite/gdb.base/randomize.exp
+++ b/gdb/testsuite/gdb.base/randomize.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/range-stepping.c b/gdb/testsuite/gdb.base/range-stepping.c
index cd3ba0f..04d56cb 100644
--- a/gdb/testsuite/gdb.base/range-stepping.c
+++ b/gdb/testsuite/gdb.base/range-stepping.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/range-stepping.exp b/gdb/testsuite/gdb.base/range-stepping.exp
index bdcd598..af78a2a 100644
--- a/gdb/testsuite/gdb.base/range-stepping.exp
+++ b/gdb/testsuite/gdb.base/range-stepping.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/readline-ask.c b/gdb/testsuite/gdb.base/readline-ask.c
index 247d357..e1b3f2c 100644
--- a/gdb/testsuite/gdb.base/readline-ask.c
+++ b/gdb/testsuite/gdb.base/readline-ask.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/readline-ask.exp b/gdb/testsuite/gdb.base/readline-ask.exp
index 60a11e0..3f98e13 100644
--- a/gdb/testsuite/gdb.base/readline-ask.exp
+++ b/gdb/testsuite/gdb.base/readline-ask.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/readline-ask.inputrc b/gdb/testsuite/gdb.base/readline-ask.inputrc
index 072f1a7..6ba06f4 100644
--- a/gdb/testsuite/gdb.base/readline-ask.inputrc
+++ b/gdb/testsuite/gdb.base/readline-ask.inputrc
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/readline-commands-eof.c b/gdb/testsuite/gdb.base/readline-commands-eof.c
index 4061e6a..60003a6 100644
--- a/gdb/testsuite/gdb.base/readline-commands-eof.c
+++ b/gdb/testsuite/gdb.base/readline-commands-eof.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/readline-commands-eof.exp b/gdb/testsuite/gdb.base/readline-commands-eof.exp
index c823118..021e40f 100644
--- a/gdb/testsuite/gdb.base/readline-commands-eof.exp
+++ b/gdb/testsuite/gdb.base/readline-commands-eof.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/readline.exp b/gdb/testsuite/gdb.base/readline.exp
index 4e613d6..198d686 100644
--- a/gdb/testsuite/gdb.base/readline.exp
+++ b/gdb/testsuite/gdb.base/readline.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/readnever.c b/gdb/testsuite/gdb.base/readnever.c
index e7f755d..5028ae5 100644
--- a/gdb/testsuite/gdb.base/readnever.c
+++ b/gdb/testsuite/gdb.base/readnever.c
@@ -1,4 +1,4 @@
-/* Copyright 2016-2024 Free Software Foundation, Inc.
+/* Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/readnever.exp b/gdb/testsuite/gdb.base/readnever.exp
index 6788441..6dfd576 100644
--- a/gdb/testsuite/gdb.base/readnever.exp
+++ b/gdb/testsuite/gdb.base/readnever.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/realname-expand-real.c b/gdb/testsuite/gdb.base/realname-expand-real.c
index 9024f60..c07b72c 100644
--- a/gdb/testsuite/gdb.base/realname-expand-real.c
+++ b/gdb/testsuite/gdb.base/realname-expand-real.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/realname-expand.c b/gdb/testsuite/gdb.base/realname-expand.c
index 781951f..614f06a 100644
--- a/gdb/testsuite/gdb.base/realname-expand.c
+++ b/gdb/testsuite/gdb.base/realname-expand.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/realname-expand.exp b/gdb/testsuite/gdb.base/realname-expand.exp
index e62a4db..8753b32 100644
--- a/gdb/testsuite/gdb.base/realname-expand.exp
+++ b/gdb/testsuite/gdb.base/realname-expand.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/record-full-error.exp b/gdb/testsuite/gdb.base/record-full-error.exp
index 0ec2dab..70d858b 100644
--- a/gdb/testsuite/gdb.base/record-full-error.exp
+++ b/gdb/testsuite/gdb.base/record-full-error.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/recpar.c b/gdb/testsuite/gdb.base/recpar.c
index 87746a0..8206f2d 100644
--- a/gdb/testsuite/gdb.base/recpar.c
+++ b/gdb/testsuite/gdb.base/recpar.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/recpar.exp b/gdb/testsuite/gdb.base/recpar.exp
index b62b6aa..7e69790 100644
--- a/gdb/testsuite/gdb.base/recpar.exp
+++ b/gdb/testsuite/gdb.base/recpar.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/recurse.exp b/gdb/testsuite/gdb.base/recurse.exp
index 01ba55a..efe50db 100644
--- a/gdb/testsuite/gdb.base/recurse.exp
+++ b/gdb/testsuite/gdb.base/recurse.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/reggroups.c b/gdb/testsuite/gdb.base/reggroups.c
index cd4a9b2..7d13022 100644
--- a/gdb/testsuite/gdb.base/reggroups.c
+++ b/gdb/testsuite/gdb.base/reggroups.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/reggroups.exp b/gdb/testsuite/gdb.base/reggroups.exp
index 638601b..9e549bd 100644
--- a/gdb/testsuite/gdb.base/reggroups.exp
+++ b/gdb/testsuite/gdb.base/reggroups.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/relational.exp b/gdb/testsuite/gdb.base/relational.exp
index 76352fd..886cc4d 100644
--- a/gdb/testsuite/gdb.base/relational.exp
+++ b/gdb/testsuite/gdb.base/relational.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/relativedebug.c b/gdb/testsuite/gdb.base/relativedebug.c
index c696cce..f6b1614 100644
--- a/gdb/testsuite/gdb.base/relativedebug.c
+++ b/gdb/testsuite/gdb.base/relativedebug.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/relativedebug.exp b/gdb/testsuite/gdb.base/relativedebug.exp
index f882a5c..d713771 100644
--- a/gdb/testsuite/gdb.base/relativedebug.exp
+++ b/gdb/testsuite/gdb.base/relativedebug.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/relocate.c b/gdb/testsuite/gdb.base/relocate.c
index 0b65036..6cd946f 100644
--- a/gdb/testsuite/gdb.base/relocate.c
+++ b/gdb/testsuite/gdb.base/relocate.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/relocate.exp b/gdb/testsuite/gdb.base/relocate.exp
index e3a6a03..c1c0815 100644
--- a/gdb/testsuite/gdb.base/relocate.exp
+++ b/gdb/testsuite/gdb.base/relocate.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/remote-exec-file.exp b/gdb/testsuite/gdb.base/remote-exec-file.exp
index 2ef23f0..b735281 100644
--- a/gdb/testsuite/gdb.base/remote-exec-file.exp
+++ b/gdb/testsuite/gdb.base/remote-exec-file.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/remote.exp b/gdb/testsuite/gdb.base/remote.exp
index 52c4d27..9917faf 100644
--- a/gdb/testsuite/gdb.base/remote.exp
+++ b/gdb/testsuite/gdb.base/remote.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/remotetimeout.exp b/gdb/testsuite/gdb.base/remotetimeout.exp
index b7d8c90..0f1e167 100644
--- a/gdb/testsuite/gdb.base/remotetimeout.exp
+++ b/gdb/testsuite/gdb.base/remotetimeout.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/reread-readsym.c b/gdb/testsuite/gdb.base/reread-readsym.c
index 0c151af..145a3b4 100644
--- a/gdb/testsuite/gdb.base/reread-readsym.c
+++ b/gdb/testsuite/gdb.base/reread-readsym.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/reread-readsym.exp b/gdb/testsuite/gdb.base/reread-readsym.exp
index 8c06ff6..698662d 100644
--- a/gdb/testsuite/gdb.base/reread-readsym.exp
+++ b/gdb/testsuite/gdb.base/reread-readsym.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/reread.exp b/gdb/testsuite/gdb.base/reread.exp
index 481409b..7e7d2c8 100644
--- a/gdb/testsuite/gdb.base/reread.exp
+++ b/gdb/testsuite/gdb.base/reread.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/reset-catchpoint-cond-lib.c b/gdb/testsuite/gdb.base/reset-catchpoint-cond-lib.c
index 06f3c3d..1df2260 100644
--- a/gdb/testsuite/gdb.base/reset-catchpoint-cond-lib.c
+++ b/gdb/testsuite/gdb.base/reset-catchpoint-cond-lib.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/reset-catchpoint-cond.c b/gdb/testsuite/gdb.base/reset-catchpoint-cond.c
index 0c1d5ea..11bd74d 100644
--- a/gdb/testsuite/gdb.base/reset-catchpoint-cond.c
+++ b/gdb/testsuite/gdb.base/reset-catchpoint-cond.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/reset-catchpoint-cond.exp b/gdb/testsuite/gdb.base/reset-catchpoint-cond.exp
index d953938..062dc63 100644
--- a/gdb/testsuite/gdb.base/reset-catchpoint-cond.exp
+++ b/gdb/testsuite/gdb.base/reset-catchpoint-cond.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/reset-catchpoint-cond.py b/gdb/testsuite/gdb.base/reset-catchpoint-cond.py
index bf90ec8..9a93920 100644
--- a/gdb/testsuite/gdb.base/reset-catchpoint-cond.py
+++ b/gdb/testsuite/gdb.base/reset-catchpoint-cond.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/restore.c b/gdb/testsuite/gdb.base/restore.c
index 7b7882b..a8f8fd3 100644
--- a/gdb/testsuite/gdb.base/restore.c
+++ b/gdb/testsuite/gdb.base/restore.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1998-2024 Free Software Foundation, Inc.
+ Copyright 1998-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/restore.exp b/gdb/testsuite/gdb.base/restore.exp
index 2d50fb1..9724032 100644
--- a/gdb/testsuite/gdb.base/restore.exp
+++ b/gdb/testsuite/gdb.base/restore.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/return-nodebug.c b/gdb/testsuite/gdb.base/return-nodebug.c
index d8e08ed..d0724f7 100644
--- a/gdb/testsuite/gdb.base/return-nodebug.c
+++ b/gdb/testsuite/gdb.base/return-nodebug.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/return-nodebug.exp b/gdb/testsuite/gdb.base/return-nodebug.exp
index d44967b..32b31c6 100644
--- a/gdb/testsuite/gdb.base/return-nodebug.exp
+++ b/gdb/testsuite/gdb.base/return-nodebug.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/return-nodebug1.c b/gdb/testsuite/gdb.base/return-nodebug1.c
index d733d06..c129b44 100644
--- a/gdb/testsuite/gdb.base/return-nodebug1.c
+++ b/gdb/testsuite/gdb.base/return-nodebug1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/return.c b/gdb/testsuite/gdb.base/return.c
index 6520663..c17470d 100644
--- a/gdb/testsuite/gdb.base/return.c
+++ b/gdb/testsuite/gdb.base/return.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1992-2024 Free Software Foundation, Inc.
+ Copyright 1992-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/return.exp b/gdb/testsuite/gdb.base/return.exp
index 23016f8..f39eebd 100644
--- a/gdb/testsuite/gdb.base/return.exp
+++ b/gdb/testsuite/gdb.base/return.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1992-2024 Free Software Foundation, Inc.
+# Copyright (C) 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/return2.exp b/gdb/testsuite/gdb.base/return2.exp
index a9b0b98..b657c11 100644
--- a/gdb/testsuite/gdb.base/return2.exp
+++ b/gdb/testsuite/gdb.base/return2.exp
@@ -1,4 +1,4 @@
-# Copyright 2000-2024 Free Software Foundation, Inc.
+# Copyright 2000-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/retval-large-struct.c b/gdb/testsuite/gdb.base/retval-large-struct.c
index 52ac178..839b1fb 100644
--- a/gdb/testsuite/gdb.base/retval-large-struct.c
+++ b/gdb/testsuite/gdb.base/retval-large-struct.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/retval-large-struct.exp b/gdb/testsuite/gdb.base/retval-large-struct.exp
index a8f6ff6..4414f6f 100644
--- a/gdb/testsuite/gdb.base/retval-large-struct.exp
+++ b/gdb/testsuite/gdb.base/retval-large-struct.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/reverse-init-functions.exp b/gdb/testsuite/gdb.base/reverse-init-functions.exp
index 5558d28..74201e9 100644
--- a/gdb/testsuite/gdb.base/reverse-init-functions.exp
+++ b/gdb/testsuite/gdb.base/reverse-init-functions.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/rtld-step-main.c b/gdb/testsuite/gdb.base/rtld-step-main.c
index 5677680..91b7727 100644
--- a/gdb/testsuite/gdb.base/rtld-step-main.c
+++ b/gdb/testsuite/gdb.base/rtld-step-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/rtld-step-nodebugsym.c b/gdb/testsuite/gdb.base/rtld-step-nodebugsym.c
index 029a504..4e3f807 100644
--- a/gdb/testsuite/gdb.base/rtld-step-nodebugsym.c
+++ b/gdb/testsuite/gdb.base/rtld-step-nodebugsym.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/rtld-step-nodebugsym.exp b/gdb/testsuite/gdb.base/rtld-step-nodebugsym.exp
index b64c8fe..7c617f2 100644
--- a/gdb/testsuite/gdb.base/rtld-step-nodebugsym.exp
+++ b/gdb/testsuite/gdb.base/rtld-step-nodebugsym.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/rtld-step-rtld.c b/gdb/testsuite/gdb.base/rtld-step-rtld.c
index 8d88a5a..31d008f 100644
--- a/gdb/testsuite/gdb.base/rtld-step-rtld.c
+++ b/gdb/testsuite/gdb.base/rtld-step-rtld.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/rtld-step.exp b/gdb/testsuite/gdb.base/rtld-step.exp
index 1985428..242cd47 100644
--- a/gdb/testsuite/gdb.base/rtld-step.exp
+++ b/gdb/testsuite/gdb.base/rtld-step.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/run-after-attach.c b/gdb/testsuite/gdb.base/run-after-attach.c
index 3aa16f5..78b0e7b 100644
--- a/gdb/testsuite/gdb.base/run-after-attach.c
+++ b/gdb/testsuite/gdb.base/run-after-attach.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/run-after-attach.exp b/gdb/testsuite/gdb.base/run-after-attach.exp
index 7e9211b..fde3854 100644
--- a/gdb/testsuite/gdb.base/run-after-attach.exp
+++ b/gdb/testsuite/gdb.base/run-after-attach.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/run-attach-while-running.c b/gdb/testsuite/gdb.base/run-attach-while-running.c
index a736c7e..35b5df3 100644
--- a/gdb/testsuite/gdb.base/run-attach-while-running.c
+++ b/gdb/testsuite/gdb.base/run-attach-while-running.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/run-attach-while-running.exp b/gdb/testsuite/gdb.base/run-attach-while-running.exp
index 7bf73fdb..ae1388d 100644
--- a/gdb/testsuite/gdb.base/run-attach-while-running.exp
+++ b/gdb/testsuite/gdb.base/run-attach-while-running.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/run-control-while-bg-execution.c b/gdb/testsuite/gdb.base/run-control-while-bg-execution.c
index 1fd36ee..329b0b1 100644
--- a/gdb/testsuite/gdb.base/run-control-while-bg-execution.c
+++ b/gdb/testsuite/gdb.base/run-control-while-bg-execution.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/run-control-while-bg-execution.exp b/gdb/testsuite/gdb.base/run-control-while-bg-execution.exp
index 380047a..eaee010 100644
--- a/gdb/testsuite/gdb.base/run-control-while-bg-execution.exp
+++ b/gdb/testsuite/gdb.base/run-control-while-bg-execution.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -49,6 +49,11 @@ if {[build_executable "failed to prepare" $testfile $srcfile]} {
# - run: use the run command
# - attach: start a process outside of GDB and attach it
proc do_test { action1 action2 } {
+
+ if {$action1 == "add" && ![allow_multi_inferior_tests]} {
+ return
+ }
+
save_vars { ::GDBFLAGS } {
append ::GDBFLAGS " -ex \"maintenance set target-non-stop on\""
clean_restart $::binfile
diff --git a/gdb/testsuite/gdb.base/run-fail-twice.c b/gdb/testsuite/gdb.base/run-fail-twice.c
index fddf841..2bbb585 100644
--- a/gdb/testsuite/gdb.base/run-fail-twice.c
+++ b/gdb/testsuite/gdb.base/run-fail-twice.c
@@ -1,4 +1,4 @@
-/* Copyright 2024 Free Software Foundation, Inc.
+/* Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/run-fail-twice.exp b/gdb/testsuite/gdb.base/run-fail-twice.exp
index 676fc48..af8c61b 100644
--- a/gdb/testsuite/gdb.base/run-fail-twice.exp
+++ b/gdb/testsuite/gdb.base/run-fail-twice.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/save-bp.c b/gdb/testsuite/gdb.base/save-bp.c
index 8936894..103b092 100644
--- a/gdb/testsuite/gdb.base/save-bp.c
+++ b/gdb/testsuite/gdb.base/save-bp.c
@@ -1,4 +1,4 @@
-/* Copyright 2011-2024 Free Software Foundation, Inc.
+/* Copyright 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/save-bp.exp b/gdb/testsuite/gdb.base/save-bp.exp
index 2872d7b..8a696cd 100644
--- a/gdb/testsuite/gdb.base/save-bp.exp
+++ b/gdb/testsuite/gdb.base/save-bp.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/savedregs.c b/gdb/testsuite/gdb.base/savedregs.c
index dffdc87..a916cab 100644
--- a/gdb/testsuite/gdb.base/savedregs.c
+++ b/gdb/testsuite/gdb.base/savedregs.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/savedregs.exp b/gdb/testsuite/gdb.base/savedregs.exp
index f20fd7c..2c44566 100644
--- a/gdb/testsuite/gdb.base/savedregs.exp
+++ b/gdb/testsuite/gdb.base/savedregs.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/scope-hw-watch-disable.c b/gdb/testsuite/gdb.base/scope-hw-watch-disable.c
index df5baad..6453766 100644
--- a/gdb/testsuite/gdb.base/scope-hw-watch-disable.c
+++ b/gdb/testsuite/gdb.base/scope-hw-watch-disable.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/scope-hw-watch-disable.exp b/gdb/testsuite/gdb.base/scope-hw-watch-disable.exp
index 29eb682..6ddb2f6 100644
--- a/gdb/testsuite/gdb.base/scope-hw-watch-disable.exp
+++ b/gdb/testsuite/gdb.base/scope-hw-watch-disable.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/scope.exp b/gdb/testsuite/gdb.base/scope.exp
index a3b11f6..bb902a1 100644
--- a/gdb/testsuite/gdb.base/scope.exp
+++ b/gdb/testsuite/gdb.base/scope.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sect-cmd.exp b/gdb/testsuite/gdb.base/sect-cmd.exp
index 49a94cd..e8d1404 100644
--- a/gdb/testsuite/gdb.base/sect-cmd.exp
+++ b/gdb/testsuite/gdb.base/sect-cmd.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/segv.c b/gdb/testsuite/gdb.base/segv.c
index 53aef97..b730e7a 100644
--- a/gdb/testsuite/gdb.base/segv.c
+++ b/gdb/testsuite/gdb.base/segv.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sep-proc.c b/gdb/testsuite/gdb.base/sep-proc.c
index 8466e2e..a72c7d2 100644
--- a/gdb/testsuite/gdb.base/sep-proc.c
+++ b/gdb/testsuite/gdb.base/sep-proc.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sep.c b/gdb/testsuite/gdb.base/sep.c
index 0df02e8..5cd4223 100644
--- a/gdb/testsuite/gdb.base/sep.c
+++ b/gdb/testsuite/gdb.base/sep.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sep.exp b/gdb/testsuite/gdb.base/sep.exp
index eb36dd0..5a1e077 100644
--- a/gdb/testsuite/gdb.base/sep.exp
+++ b/gdb/testsuite/gdb.base/sep.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sepdebug.c b/gdb/testsuite/gdb.base/sepdebug.c
index d6ecadd..47111cb 100644
--- a/gdb/testsuite/gdb.base/sepdebug.c
+++ b/gdb/testsuite/gdb.base/sepdebug.c
@@ -1,4 +1,4 @@
-/* Copyright 1994-2024 Free Software Foundation, Inc.
+/* Copyright 1994-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sepdebug.exp b/gdb/testsuite/gdb.base/sepdebug.exp
index eb3515b..71cc0eb 100644
--- a/gdb/testsuite/gdb.base/sepdebug.exp
+++ b/gdb/testsuite/gdb.base/sepdebug.exp
@@ -1,4 +1,4 @@
-# Copyright 1988-2024 Free Software Foundation, Inc.
+# Copyright 1988-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sepdebug2.c b/gdb/testsuite/gdb.base/sepdebug2.c
index e816f41..490b4d8 100644
--- a/gdb/testsuite/gdb.base/sepdebug2.c
+++ b/gdb/testsuite/gdb.base/sepdebug2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sepsymtab.c b/gdb/testsuite/gdb.base/sepsymtab.c
index 995d195..1876b5c 100644
--- a/gdb/testsuite/gdb.base/sepsymtab.c
+++ b/gdb/testsuite/gdb.base/sepsymtab.c
@@ -1,4 +1,4 @@
-/* Copyright 2006-2024 Free Software Foundation, Inc.
+/* Copyright 2006-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sepsymtab.exp b/gdb/testsuite/gdb.base/sepsymtab.exp
index c94ca9f..f5e8705 100644
--- a/gdb/testsuite/gdb.base/sepsymtab.exp
+++ b/gdb/testsuite/gdb.base/sepsymtab.exp
@@ -1,4 +1,4 @@
-# Copyright 2006-2024 Free Software Foundation, Inc.
+# Copyright 2006-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/server-del-break.c b/gdb/testsuite/gdb.base/server-del-break.c
index 0c151af..145a3b4 100644
--- a/gdb/testsuite/gdb.base/server-del-break.c
+++ b/gdb/testsuite/gdb.base/server-del-break.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/server-del-break.exp b/gdb/testsuite/gdb.base/server-del-break.exp
index db59878..adf5035 100644
--- a/gdb/testsuite/gdb.base/server-del-break.exp
+++ b/gdb/testsuite/gdb.base/server-del-break.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/set-cwd.c b/gdb/testsuite/gdb.base/set-cwd.c
index f27e398..eaf8a9b 100644
--- a/gdb/testsuite/gdb.base/set-cwd.c
+++ b/gdb/testsuite/gdb.base/set-cwd.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/set-cwd.exp b/gdb/testsuite/gdb.base/set-cwd.exp
index 41446f8..72a2632 100644
--- a/gdb/testsuite/gdb.base/set-cwd.exp
+++ b/gdb/testsuite/gdb.base/set-cwd.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/set-inferior-tty.c b/gdb/testsuite/gdb.base/set-inferior-tty.c
index 26a4197..3207aa9 100644
--- a/gdb/testsuite/gdb.base/set-inferior-tty.c
+++ b/gdb/testsuite/gdb.base/set-inferior-tty.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/set-inferior-tty.exp b/gdb/testsuite/gdb.base/set-inferior-tty.exp
index 47a1f4d..64ec57b 100644
--- a/gdb/testsuite/gdb.base/set-inferior-tty.exp
+++ b/gdb/testsuite/gdb.base/set-inferior-tty.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/set-lang-auto.exp b/gdb/testsuite/gdb.base/set-lang-auto.exp
index 9958e43..e6f961b 100644
--- a/gdb/testsuite/gdb.base/set-lang-auto.exp
+++ b/gdb/testsuite/gdb.base/set-lang-auto.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/set-noassign.exp b/gdb/testsuite/gdb.base/set-noassign.exp
index f59860d..be0c2bc 100644
--- a/gdb/testsuite/gdb.base/set-noassign.exp
+++ b/gdb/testsuite/gdb.base/set-noassign.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/setshow.exp b/gdb/testsuite/gdb.base/setshow.exp
index 9380331..79ff913 100644
--- a/gdb/testsuite/gdb.base/setshow.exp
+++ b/gdb/testsuite/gdb.base/setshow.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/settings.c b/gdb/testsuite/gdb.base/settings.c
index b6a97f1..5333d9d 100644
--- a/gdb/testsuite/gdb.base/settings.c
+++ b/gdb/testsuite/gdb.base/settings.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/settings.exp b/gdb/testsuite/gdb.base/settings.exp
index 3dafbae..5e7cc24 100644
--- a/gdb/testsuite/gdb.base/settings.exp
+++ b/gdb/testsuite/gdb.base/settings.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/setvar.exp b/gdb/testsuite/gdb.base/setvar.exp
index 416dcc6..0bce620 100644
--- a/gdb/testsuite/gdb.base/setvar.exp
+++ b/gdb/testsuite/gdb.base/setvar.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 1988-2024 Free Software Foundation, Inc.
+# Copyright 1988-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/share-env-with-gdbserver.c b/gdb/testsuite/gdb.base/share-env-with-gdbserver.c
index cdb86d6..3183c33 100644
--- a/gdb/testsuite/gdb.base/share-env-with-gdbserver.c
+++ b/gdb/testsuite/gdb.base/share-env-with-gdbserver.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/share-env-with-gdbserver.exp b/gdb/testsuite/gdb.base/share-env-with-gdbserver.exp
index 79cee83..920f435 100644
--- a/gdb/testsuite/gdb.base/share-env-with-gdbserver.exp
+++ b/gdb/testsuite/gdb.base/share-env-with-gdbserver.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/share-psymtabs-bt-2.c b/gdb/testsuite/gdb.base/share-psymtabs-bt-2.c
index afdf84b..c1d7d2e 100644
--- a/gdb/testsuite/gdb.base/share-psymtabs-bt-2.c
+++ b/gdb/testsuite/gdb.base/share-psymtabs-bt-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/share-psymtabs-bt.c b/gdb/testsuite/gdb.base/share-psymtabs-bt.c
index 406ad54..78c24ed 100644
--- a/gdb/testsuite/gdb.base/share-psymtabs-bt.c
+++ b/gdb/testsuite/gdb.base/share-psymtabs-bt.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/share-psymtabs-bt.exp b/gdb/testsuite/gdb.base/share-psymtabs-bt.exp
index 6c13e5e..62c8dc5 100644
--- a/gdb/testsuite/gdb.base/share-psymtabs-bt.exp
+++ b/gdb/testsuite/gdb.base/share-psymtabs-bt.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/shell.exp b/gdb/testsuite/gdb.base/shell.exp
index e92270c..62052a1 100644
--- a/gdb/testsuite/gdb.base/shell.exp
+++ b/gdb/testsuite/gdb.base/shell.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/shlib-call.exp b/gdb/testsuite/gdb.base/shlib-call.exp
index 4a963ed..6a5f6d8 100644
--- a/gdb/testsuite/gdb.base/shlib-call.exp
+++ b/gdb/testsuite/gdb.base/shlib-call.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/sim/arm/arm-sim.h b/gdb/testsuite/gdb.base/shlib-unload-lib.c
index ae6bbf5c..11d7099 100644
--- a/sim/arm/arm-sim.h
+++ b/gdb/testsuite/gdb.base/shlib-unload-lib.c
@@ -1,7 +1,6 @@
-/* Simulation code for the ARM processor.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+/* This testcase is part of GDB, the GNU debugger.
- This file is part of the GNU simulators.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -16,11 +15,16 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef ARM_SIM_H
-#define ARM_SIM_H
+#include "shlib-unload.h"
-#include "armdefs.h"
+int
+foo (void)
+{
+ return inline_func ();
+}
-extern struct ARMul_State *state;
-
-#endif
+int
+bar (void)
+{
+ return inline_func ();
+}
diff --git a/gdb/testsuite/gdb.base/shlib-unload.c b/gdb/testsuite/gdb.base/shlib-unload.c
new file mode 100644
index 0000000..4af719a
--- /dev/null
+++ b/gdb/testsuite/gdb.base/shlib-unload.c
@@ -0,0 +1,63 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2024-2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include <stdlib.h>
+
+#ifdef __WIN32__
+#include <windows.h>
+#define dlopen(name, mode) LoadLibrary (TEXT (name))
+#ifdef _WIN32_WCE
+# define dlsym(handle, func) GetProcAddress (handle, TEXT (func))
+#else
+# define dlsym(handle, func) GetProcAddress (handle, func)
+#endif
+#define dlclose(handle) FreeLibrary (handle)
+#else
+#include <dlfcn.h>
+#endif
+
+#include <assert.h>
+
+#include "shlib-unload.h"
+
+int
+main (void)
+{
+ int res;
+ void *handle;
+ int (*func) (void);
+
+ int val = inline_func ();
+
+ handle = dlopen (SHLIB_NAME, RTLD_LAZY);
+ assert (handle != NULL);
+
+ func = (int (*)(void)) dlsym (handle, "foo");
+ assert (func != NULL);
+
+ val += func ();
+
+ func = (int (*)(void)) dlsym (handle, "bar");
+ assert (func != NULL);
+
+ val += func ();
+
+ res = dlclose (handle); /* Break here. */
+ assert (res == 0);
+
+ return val;
+}
diff --git a/gdb/testsuite/gdb.base/shlib-unload.exp b/gdb/testsuite/gdb.base/shlib-unload.exp
new file mode 100644
index 0000000..9d47416
--- /dev/null
+++ b/gdb/testsuite/gdb.base/shlib-unload.exp
@@ -0,0 +1,299 @@
+# Copyright 2024-2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Tests for GDB's handling of a shared library being unloaded via a
+# call to dlclose. See the individual test_* procs for a description
+# of each test.
+
+standard_testfile .c -lib.c
+
+# One of the tests uses this Python file. The test_* proc checks that
+# GDB supports Python tests. Some of the other procs don't use this
+# Python file.
+set pyfile [gdb_remote_download host ${srcdir}/${subdir}/${testfile}.py]
+
+# Build the library and copy it to the target.
+set libname ${testfile}-lib
+set libfile [standard_output_file $libname]
+if { [build_executable "build shlib" $libfile $srcfile2 {debug shlib}] == -1} {
+ return
+}
+set libfile_on_target [gdb_download_shlib $libfile]
+
+# Build the executable.
+set opts [list debug shlib_load additional_flags=-DSHLIB_NAME=\"${libname}\"]
+if { [build_executable "build exec" $binfile $srcfile $opts] == -1} {
+ return
+}
+
+# The line number of the dlclose call.
+set bp_line [gdb_get_line_number "Break here" $srcfile]
+
+# If the target is remote, then the library name in the bp_disabled_re
+# below will have a 'target:' prefix.
+if {[is_remote target]} {
+ set target_prefix_re "target:"
+} else {
+ set target_prefix_re ""
+}
+
+# The line emitted when GDB disables breakpoints after unloading a
+# shared library.
+set bp_disabled_re "warning: Temporarily disabling breakpoints for unloaded shared library \"$target_prefix_re[string_to_regexp $::libfile_on_target]\""
+
+# The complete regexp for when GDB stops on the line after BP_LINE,
+# assuming that GDB has disabled some breakpoints.
+set stop_after_bp_re [multi_line \
+ "^$::bp_disabled_re" \
+ "[expr $::bp_line + 1]\\s+assert \\(res == 0\\);"]
+
+# Checking that a breakpoint with multiple locations in a shared
+# library only triggers a single breakpoint modified event from
+# disable_breakpoints_in_unloaded_shlib when the shared library is
+# unloaded.
+proc_with_prefix test_bp_modified_events {} {
+ if { ![allow_python_tests] } {
+ unsupported "python support needed"
+ return
+ }
+
+ clean_restart $::binfile
+
+ if {![runto_main]} {
+ return
+ }
+
+ # If the debug information doesn't allow GDB to identify inline
+ # functions then this test isn't going to work.
+ get_debug_format
+ if { [skip_inline_frame_tests] } {
+ unsupported "skipping inline frame tests"
+ return
+ }
+
+ gdb_breakpoint $::srcfile:$::bp_line
+ gdb_continue_to_breakpoint "stop before dlclose"
+
+ gdb_breakpoint inline_func
+ set bp_num [get_integer_valueof "\$bpnum" "*UNKNOWN*" \
+ "get b/p number"]
+
+ gdb_test_no_output "source $::pyfile" "import python scripts"
+
+ gdb_test "next" $::stop_after_bp_re
+
+ # The breakpoint should have been modified once when some of its
+ # locations are made pending after the shared library is unloaded.
+ gdb_test_multiple "python print(bp_modified_counts\[$bp_num\])" "" {
+ -re -wrap "^1" {
+ pass $gdb_test_name
+ }
+ -re -wrap "^2" {
+ # A second event occurs when the pending breakpoint is
+ # incorrectly deleted.
+ kfail gdb/32404 $gdb_test_name
+ }
+ -re -wrap "^$::decimal" {
+ fail $gdb_test_name
+ }
+ }
+}
+
+# Check that GDB disables dprintf breakpoints within a shared library
+# when the shared library is unloaded.
+proc_with_prefix test_dprintf_after_unload {} {
+ clean_restart $::binfile
+
+ if {![runto_main]} {
+ return
+ }
+
+ gdb_breakpoint $::srcfile:$::bp_line
+ gdb_continue_to_breakpoint "stop before dlclose"
+
+ # Setup a dprintf within the shared library.
+ gdb_test "dprintf foo,\"In foo\""
+ set bp_num [get_integer_valueof "\$bpnum" "*UNKNOWN*" \
+ "get b/p number"]
+
+ # Unload the shared library, GDB should disable our b/p.
+ gdb_test "next" $::stop_after_bp_re
+
+ # Check that our b/p is now showing as disabled.
+ gdb_test "info breakpoints $bp_num" \
+ [multi_line \
+ "^Num\\s+Type\\s+Disp\\s+Enb\\s+Address\\s+What" \
+ "$bp_num\\s+dprintf\\s+keep\\s+y\\s+<PENDING>\\s+foo" \
+ "\\s+printf \"In foo\""]
+}
+
+# Create a dprintf breakpoint in a shared library. Restart the
+# inferior. We should not get an error about re-setting the dprintf
+# breakpoint.
+proc_with_prefix test_dprintf_with_rerun {} {
+ clean_restart $::binfile
+
+ if {![runto_main]} {
+ return
+ }
+
+ gdb_breakpoint $::srcfile:$::bp_line
+ gdb_continue_to_breakpoint "stop before dlclose"
+
+ # Setup a dprintf within the shared library.
+ gdb_test "dprintf foo,\"In foo\""
+ set bp_num [get_integer_valueof "\$bpnum" "*UNKNOWN*" \
+ "get b/p number"]
+
+ # Check that the dprintf b/p is initially not pending.
+ gdb_test "info breakpoints $bp_num" \
+ [multi_line \
+ "^Num\\s+Type\\s+Disp\\s+Enb\\s+Address\\s+What" \
+ "$bp_num\\s+dprintf\\s+keep\\s+y\\s+$::hex\\s+in foo at \[^\r\n\]+" \
+ "\\s+printf \"In foo\""] \
+ "dprintf is non-pending before restart"
+
+ # Restart the inferior.
+ gdb_run_cmd
+
+ # The inferior will stop at the initial 'main' breakpoint. This
+ # is at a location before any of the shlibs have been loaded.
+ set saw_bp_reset_error false
+ set saw_bp_disable_warning false
+ gdb_test_multiple "" "stop before shlib are reloaded" {
+ -re "warning: Temporarily disabling breakpoints for unloaded shared library \"\[^\r\n\]+/$::libname\"\r\n" {
+ set saw_bp_disable_warning true
+ exp_continue
+ }
+
+ -re "Error in re-setting breakpoint $bp_num: \[^\r\n\]+" {
+ set saw_bp_reset_error true
+ exp_continue
+ }
+
+ -re "Breakpoint $::decimal, main \\(\\) at \[^\r\n\]+\r\n$::decimal\\s+\[^\r\n\]+\r\n$::gdb_prompt $" {
+ gdb_assert { !$saw_bp_reset_error && !$saw_bp_disable_warning } $gdb_test_name
+ }
+ }
+
+ # Check that the dprintf b/p is still enabled, but marked pending
+ # before the shlib are loaded.
+ gdb_test "info breakpoints $bp_num" \
+ [multi_line \
+ "^Num\\s+Type\\s+Disp\\s+Enb\\s+Address\\s+What" \
+ "$bp_num\\s+dprintf\\s+keep\\s+y\\s+<PENDING>\\s+foo" \
+ "\\s+printf \"In foo\""] \
+ "dprintf is pending before shlib reload"
+
+ set saw_in_foo_output false
+ gdb_test_multiple "continue" "stop after libraries are reloaded" {
+ -re "^continue\r\n" {
+ exp_continue
+ }
+ -re "^Continuing\\.\r\n" {
+ exp_continue
+ }
+ -re "^In foo\r\n" {
+ set saw_in_foo_output true
+ exp_continue
+ }
+ -re "^Breakpoint $::decimal, main \\(\\) at .* Break here\\. \\*/\r\n$::gdb_prompt $" {
+ gdb_assert { $saw_in_foo_output } $gdb_test_name
+ }
+ }
+
+ # Check that the dprintf b/p is still enabled, but is now, no
+ # longer pending.
+ gdb_test "info breakpoints $bp_num" \
+ [multi_line \
+ "^Num\\s+Type\\s+Disp\\s+Enb\\s+Address\\s+What" \
+ "$bp_num\\s+dprintf\\s+keep\\s+y\\s+$::hex\\s+in foo at \[^\r\n\]+" \
+ "\\s+breakpoint already hit 1 time" \
+ "\\s+printf \"In foo\""] \
+ "dprintf is non-pending after restart"
+}
+
+# Check that we see breakpoint modified events (where appropriate)
+# when the 'nosharedlibrary' command is used to unload all shared
+# libraries.
+#
+# Also check that the 'nosharedlibrary' doesn't trigger a warning
+# about shared library breakpoints being disabled.
+proc_with_prefix test_silent_nosharedlib {} {
+ if { ![allow_python_tests] } {
+ unsupported "python support needed"
+ return
+ }
+
+ foreach_with_prefix type { breakpoint dprintf } {
+ clean_restart $::binfile
+
+ if {![runto_main]} {
+ return
+ }
+
+ gdb_breakpoint $::srcfile:$::bp_line
+ gdb_continue_to_breakpoint "stop before dlclose"
+
+ # Setup a dprintf or breakpoint in the shared library.
+ if { $type eq "breakpoint" } {
+ gdb_test "break foo"
+ } else {
+ gdb_test "dprintf foo,\"In foo\""
+ }
+
+ # Record the number of the b/p (or dprintf) we just inserted.
+ set bp_num [get_integer_valueof "\$bpnum" "*UNKNOWN*" \
+ "get b/p number"]
+
+ # Load Python library to track b/p modifications.
+ gdb_test_no_output "source $::pyfile" "import python scripts"
+
+ # Initialise the b/p modified hash. Currently dprintf style
+ # breakpoints are not visible from Python, so the modification
+ # count will remain unchanged in that case.
+ gdb_test_no_output "python bp_modified_counts\[$bp_num\] = 0"
+
+ # Discard symbols from all loaded shared libraries.
+ gdb_test_no_output "nosharedlibrary"
+
+ # Check that our b/p is now showing as disabled.
+ if { $type eq "breakpoint" } {
+ set re \
+ [list "$bp_num\\s+breakpoint\\s+keep\\s+y\\s+<PENDING>\\s+foo"]
+ set count 1
+ } else {
+ set re \
+ [list \
+ "$bp_num\\s+dprintf\\s+keep\\s+y\\s+<PENDING>\\s+foo" \
+ "\\s+printf \"In foo\""]
+ set count 0
+ }
+
+ gdb_test "info breakpoints $bp_num" \
+ [multi_line "^Num\\s+Type\\s+Disp\\s+Enb\\s+Address\\s+What" \
+ {*}$re]
+
+ # Check we've seen the expected number of breakpoint modified
+ # events. Currently dprintf breakpoints are not visible from
+ # Python, so we will not see an event in that case.
+ gdb_test "python print(bp_modified_counts\[$bp_num\])" "^$count"
+ }
+}
+
+test_bp_modified_events
+test_dprintf_after_unload
+test_dprintf_with_rerun
+test_silent_nosharedlib
diff --git a/gdb/testsuite/gdb.base/shlib-unload.h b/gdb/testsuite/gdb.base/shlib-unload.h
new file mode 100644
index 0000000..e75a2ba
--- /dev/null
+++ b/gdb/testsuite/gdb.base/shlib-unload.h
@@ -0,0 +1,26 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2024-2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+static inline int __attribute__((__always_inline__))
+inline_func ()
+{
+ return 0;
+}
+
+/* Two library functions. */
+extern int foo (void);
+extern int bar (void);
diff --git a/gdb/testsuite/gdb.base/shlib-unload.py b/gdb/testsuite/gdb.base/shlib-unload.py
new file mode 100644
index 0000000..ec62caf
--- /dev/null
+++ b/gdb/testsuite/gdb.base/shlib-unload.py
@@ -0,0 +1,33 @@
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Breakpoint modification events will be recorded in this dictionary.
+# The keys are the b/p numbers, and the values are the number of
+# modification events seen.
+bp_modified_counts = {}
+
+
+# Record breakpoint modification events into the global
+# bp_modified_counts dictionary.
+def bp_modified(bp):
+ global bp_modified_counts
+ if bp.number not in bp_modified_counts:
+ bp_modified_counts[bp.number] = 1
+ else:
+ bp_modified_counts[bp.number] += 1
+
+
+# Register the event handler.
+gdb.events.breakpoint_modified.connect(bp_modified)
diff --git a/gdb/testsuite/gdb.base/show-user-completion.exp b/gdb/testsuite/gdb.base/show-user-completion.exp
index 8194915..88f6122 100644
--- a/gdb/testsuite/gdb.base/show-user-completion.exp
+++ b/gdb/testsuite/gdb.base/show-user-completion.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/shreloc.exp b/gdb/testsuite/gdb.base/shreloc.exp
index 82e6ec6..8ab64a8 100644
--- a/gdb/testsuite/gdb.base/shreloc.exp
+++ b/gdb/testsuite/gdb.base/shreloc.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sigall.exp b/gdb/testsuite/gdb.base/sigall.exp
index 94d58ae..461a92b 100644
--- a/gdb/testsuite/gdb.base/sigall.exp
+++ b/gdb/testsuite/gdb.base/sigall.exp
@@ -1,4 +1,4 @@
-# Copyright 1995-2024 Free Software Foundation, Inc.
+# Copyright 1995-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -41,13 +41,14 @@ proc test_one_sig {nextsig} {
setup_xfail "i*86-pc-linuxoldld-gnu" "i*86-pc-linuxaout-gnu"
}
# On Linux SPARC64 systems SIGLOST==SIGPWR and gdb identifies
- # the raised signal as PWR.
- if {$thissig == "LOST" && [istarget "sparc64-*-linux*"]} {
+ # the raised signal as PWR. Same for Cygwin.
+ if {$thissig == "LOST"
+ && ([istarget "sparc64-*-linux*"] || [istarget "*-*-cygwin*"])} {
set esig "PWR"
}
gdb_test "continue" \
- "Continuing.*Program received signal SIG$esig.*" \
+ "Continuing.* received signal SIG$esig.*" \
"get signal $esig"
}
@@ -177,7 +178,7 @@ gdb_test "handle SIGTERM stop print" \
"SIGTERM\[ \t\]*Yes\[ \t\]*Yes\[ \t\]*Yes.*"
gdb_test "b handle_TERM" "Breakpoint \[0-9\]+ .*"
gdb_test "continue" \
- "Continuing.*Program received signal SIGTERM.*" \
+ "Continuing.* received signal SIGTERM.*" \
"get signal TERM"
gdb_test "continue" "Breakpoint.*handle_TERM.*" "send signal TERM"
gdb_continue_to_end "continue to sigall exit"
diff --git a/gdb/testsuite/gdb.base/sigaltstack.c b/gdb/testsuite/gdb.base/sigaltstack.c
index 24bb4a7..4515745 100644
--- a/gdb/testsuite/gdb.base/sigaltstack.c
+++ b/gdb/testsuite/gdb.base/sigaltstack.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sigaltstack.exp b/gdb/testsuite/gdb.base/sigaltstack.exp
index fea4e7c..978ddeb 100644
--- a/gdb/testsuite/gdb.base/sigaltstack.exp
+++ b/gdb/testsuite/gdb.base/sigaltstack.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sigbpt.c b/gdb/testsuite/gdb.base/sigbpt.c
index 8660d8b..66238eb 100644
--- a/gdb/testsuite/gdb.base/sigbpt.c
+++ b/gdb/testsuite/gdb.base/sigbpt.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sigbpt.exp b/gdb/testsuite/gdb.base/sigbpt.exp
index 6808db2..a9da0f5 100644
--- a/gdb/testsuite/gdb.base/sigbpt.exp
+++ b/gdb/testsuite/gdb.base/sigbpt.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sigchld.c b/gdb/testsuite/gdb.base/sigchld.c
index d5d9d7b..b642f33 100644
--- a/gdb/testsuite/gdb.base/sigchld.c
+++ b/gdb/testsuite/gdb.base/sigchld.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sigchld.exp b/gdb/testsuite/gdb.base/sigchld.exp
index b69b8f8..51d41c3 100644
--- a/gdb/testsuite/gdb.base/sigchld.exp
+++ b/gdb/testsuite/gdb.base/sigchld.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/siginfo-addr.c b/gdb/testsuite/gdb.base/siginfo-addr.c
index a7bf13c..7cba3e3 100644
--- a/gdb/testsuite/gdb.base/siginfo-addr.c
+++ b/gdb/testsuite/gdb.base/siginfo-addr.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/siginfo-addr.exp b/gdb/testsuite/gdb.base/siginfo-addr.exp
index 81b319f..4352503 100644
--- a/gdb/testsuite/gdb.base/siginfo-addr.exp
+++ b/gdb/testsuite/gdb.base/siginfo-addr.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/siginfo-infcall.c b/gdb/testsuite/gdb.base/siginfo-infcall.c
index ea0ca9e..372ff0a 100644
--- a/gdb/testsuite/gdb.base/siginfo-infcall.c
+++ b/gdb/testsuite/gdb.base/siginfo-infcall.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/siginfo-infcall.exp b/gdb/testsuite/gdb.base/siginfo-infcall.exp
index 731c3b7..e60270c 100644
--- a/gdb/testsuite/gdb.base/siginfo-infcall.exp
+++ b/gdb/testsuite/gdb.base/siginfo-infcall.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/siginfo-obj.c b/gdb/testsuite/gdb.base/siginfo-obj.c
index c06b5a1..3aa7d48 100644
--- a/gdb/testsuite/gdb.base/siginfo-obj.c
+++ b/gdb/testsuite/gdb.base/siginfo-obj.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/siginfo-obj.exp b/gdb/testsuite/gdb.base/siginfo-obj.exp
index 38065c0..d63febb 100644
--- a/gdb/testsuite/gdb.base/siginfo-obj.exp
+++ b/gdb/testsuite/gdb.base/siginfo-obj.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/siginfo-thread.c b/gdb/testsuite/gdb.base/siginfo-thread.c
index bb9cff6..7ca527c 100644
--- a/gdb/testsuite/gdb.base/siginfo-thread.c
+++ b/gdb/testsuite/gdb.base/siginfo-thread.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/siginfo-thread.exp b/gdb/testsuite/gdb.base/siginfo-thread.exp
index 384eb8b..bf0d58c 100644
--- a/gdb/testsuite/gdb.base/siginfo-thread.exp
+++ b/gdb/testsuite/gdb.base/siginfo-thread.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/siginfo.c b/gdb/testsuite/gdb.base/siginfo.c
index 39e15ba..77d94da 100644
--- a/gdb/testsuite/gdb.base/siginfo.c
+++ b/gdb/testsuite/gdb.base/siginfo.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/siginfo.exp b/gdb/testsuite/gdb.base/siginfo.exp
index d703250..a8571b9 100644
--- a/gdb/testsuite/gdb.base/siginfo.exp
+++ b/gdb/testsuite/gdb.base/siginfo.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/signals-state-child.c b/gdb/testsuite/gdb.base/signals-state-child.c
index 31d40e9..69267ed 100644
--- a/gdb/testsuite/gdb.base/signals-state-child.c
+++ b/gdb/testsuite/gdb.base/signals-state-child.c
@@ -1,4 +1,4 @@
-/* Copyright 2016-2024 Free Software Foundation, Inc.
+/* Copyright 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/signals-state-child.exp b/gdb/testsuite/gdb.base/signals-state-child.exp
index 8c5965b..608951f 100644
--- a/gdb/testsuite/gdb.base/signals-state-child.exp
+++ b/gdb/testsuite/gdb.base/signals-state-child.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/signals.exp b/gdb/testsuite/gdb.base/signals.exp
index e6bd35a..d311361 100644
--- a/gdb/testsuite/gdb.base/signals.exp
+++ b/gdb/testsuite/gdb.base/signals.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/signed-builtin-types-lib.c b/gdb/testsuite/gdb.base/signed-builtin-types-lib.c
index 26b28aa..3b78dad 100644
--- a/gdb/testsuite/gdb.base/signed-builtin-types-lib.c
+++ b/gdb/testsuite/gdb.base/signed-builtin-types-lib.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/signed-builtin-types.c b/gdb/testsuite/gdb.base/signed-builtin-types.c
index 4eec62f..460e048 100644
--- a/gdb/testsuite/gdb.base/signed-builtin-types.c
+++ b/gdb/testsuite/gdb.base/signed-builtin-types.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/signed-builtin-types.exp b/gdb/testsuite/gdb.base/signed-builtin-types.exp
index 4cc324b..7750d98 100644
--- a/gdb/testsuite/gdb.base/signed-builtin-types.exp
+++ b/gdb/testsuite/gdb.base/signed-builtin-types.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/signest.c b/gdb/testsuite/gdb.base/signest.c
index 37bb8b9..54245f8 100644
--- a/gdb/testsuite/gdb.base/signest.c
+++ b/gdb/testsuite/gdb.base/signest.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/signest.exp b/gdb/testsuite/gdb.base/signest.exp
index b66f066..0e62f0b 100644
--- a/gdb/testsuite/gdb.base/signest.exp
+++ b/gdb/testsuite/gdb.base/signest.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/signull.c b/gdb/testsuite/gdb.base/signull.c
index 17529b4..d93d884 100644
--- a/gdb/testsuite/gdb.base/signull.c
+++ b/gdb/testsuite/gdb.base/signull.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1996-2024 Free Software Foundation, Inc.
+ Copyright 1996-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/signull.exp b/gdb/testsuite/gdb.base/signull.exp
index 6d72cd5..478e471 100644
--- a/gdb/testsuite/gdb.base/signull.exp
+++ b/gdb/testsuite/gdb.base/signull.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sigrepeat.c b/gdb/testsuite/gdb.base/sigrepeat.c
index 79fe648..c65f07f 100644
--- a/gdb/testsuite/gdb.base/sigrepeat.c
+++ b/gdb/testsuite/gdb.base/sigrepeat.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sigrepeat.exp b/gdb/testsuite/gdb.base/sigrepeat.exp
index dd65d92..9afa346 100644
--- a/gdb/testsuite/gdb.base/sigrepeat.exp
+++ b/gdb/testsuite/gdb.base/sigrepeat.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sigstep.c b/gdb/testsuite/gdb.base/sigstep.c
index 6e96ad2..e0f4604 100644
--- a/gdb/testsuite/gdb.base/sigstep.c
+++ b/gdb/testsuite/gdb.base/sigstep.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sigstep.exp b/gdb/testsuite/gdb.base/sigstep.exp
index d08a34e..b49105c 100644
--- a/gdb/testsuite/gdb.base/sigstep.exp
+++ b/gdb/testsuite/gdb.base/sigstep.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sigwinch-notty.exp b/gdb/testsuite/gdb.base/sigwinch-notty.exp
index cef21c0..0459ce9 100644
--- a/gdb/testsuite/gdb.base/sigwinch-notty.exp
+++ b/gdb/testsuite/gdb.base/sigwinch-notty.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sizeof.exp b/gdb/testsuite/gdb.base/sizeof.exp
index 5706a6f..1152e13 100644
--- a/gdb/testsuite/gdb.base/sizeof.exp
+++ b/gdb/testsuite/gdb.base/sizeof.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2000-2024 Free Software Foundation, Inc.
+# Copyright 2000-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/skip-inline.c b/gdb/testsuite/gdb.base/skip-inline.c
index 207e8d6..4ac203b 100644
--- a/gdb/testsuite/gdb.base/skip-inline.c
+++ b/gdb/testsuite/gdb.base/skip-inline.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/skip-inline.exp b/gdb/testsuite/gdb.base/skip-inline.exp
index 3c01234..33a3951 100644
--- a/gdb/testsuite/gdb.base/skip-inline.exp
+++ b/gdb/testsuite/gdb.base/skip-inline.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/skip-solib.exp b/gdb/testsuite/gdb.base/skip-solib.exp
index 9df0983..d96d1ac 100644
--- a/gdb/testsuite/gdb.base/skip-solib.exp
+++ b/gdb/testsuite/gdb.base/skip-solib.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/skip.c b/gdb/testsuite/gdb.base/skip.c
index 138b087..fc6319c 100644
--- a/gdb/testsuite/gdb.base/skip.c
+++ b/gdb/testsuite/gdb.base/skip.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/skip.exp b/gdb/testsuite/gdb.base/skip.exp
index ccc7ca3..016e5eb 100644
--- a/gdb/testsuite/gdb.base/skip.exp
+++ b/gdb/testsuite/gdb.base/skip.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/skip1.c b/gdb/testsuite/gdb.base/skip1.c
index a68b96b..3888ac0 100644
--- a/gdb/testsuite/gdb.base/skip1.c
+++ b/gdb/testsuite/gdb.base/skip1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/skipcxx.cc b/gdb/testsuite/gdb.base/skipcxx.cc
index 677d8d8..65ba99a 100644
--- a/gdb/testsuite/gdb.base/skipcxx.cc
+++ b/gdb/testsuite/gdb.base/skipcxx.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/skipcxx.exp b/gdb/testsuite/gdb.base/skipcxx.exp
index 73beed8..ec440ab 100644
--- a/gdb/testsuite/gdb.base/skipcxx.exp
+++ b/gdb/testsuite/gdb.base/skipcxx.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/so-disc-shr.c b/gdb/testsuite/gdb.base/so-disc-shr.c
index d6cf36c..ab2f0b5 100644
--- a/gdb/testsuite/gdb.base/so-disc-shr.c
+++ b/gdb/testsuite/gdb.base/so-disc-shr.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/so-impl-ld.exp b/gdb/testsuite/gdb.base/so-impl-ld.exp
index 04d4e47..d5c4143 100644
--- a/gdb/testsuite/gdb.base/so-impl-ld.exp
+++ b/gdb/testsuite/gdb.base/so-impl-ld.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-abort-lib.c b/gdb/testsuite/gdb.base/solib-abort-lib.c
index 39797ab..a224b26 100644
--- a/gdb/testsuite/gdb.base/solib-abort-lib.c
+++ b/gdb/testsuite/gdb.base/solib-abort-lib.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-abort.c b/gdb/testsuite/gdb.base/solib-abort.c
index 1e2d78f..5148ffb 100644
--- a/gdb/testsuite/gdb.base/solib-abort.c
+++ b/gdb/testsuite/gdb.base/solib-abort.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-abort.exp b/gdb/testsuite/gdb.base/solib-abort.exp
index c0cfef0..2f6d636 100644
--- a/gdb/testsuite/gdb.base/solib-abort.exp
+++ b/gdb/testsuite/gdb.base/solib-abort.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-corrupted.exp b/gdb/testsuite/gdb.base/solib-corrupted.exp
index aff8b85..a9cc59d 100644
--- a/gdb/testsuite/gdb.base/solib-corrupted.exp
+++ b/gdb/testsuite/gdb.base/solib-corrupted.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-disc.c b/gdb/testsuite/gdb.base/solib-disc.c
index 9894174..f97fae1 100644
--- a/gdb/testsuite/gdb.base/solib-disc.c
+++ b/gdb/testsuite/gdb.base/solib-disc.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-disc.exp b/gdb/testsuite/gdb.base/solib-disc.exp
index 280e8de..ba7dcce 100644
--- a/gdb/testsuite/gdb.base/solib-disc.exp
+++ b/gdb/testsuite/gdb.base/solib-disc.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-display-lib.c b/gdb/testsuite/gdb.base/solib-display-lib.c
index e43a88c..4e025b8 100644
--- a/gdb/testsuite/gdb.base/solib-display-lib.c
+++ b/gdb/testsuite/gdb.base/solib-display-lib.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-display-main.c b/gdb/testsuite/gdb.base/solib-display-main.c
index d9ac66b..593ee33 100644
--- a/gdb/testsuite/gdb.base/solib-display-main.c
+++ b/gdb/testsuite/gdb.base/solib-display-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-display.exp b/gdb/testsuite/gdb.base/solib-display.exp
index c9c66f6..f79ed54 100644
--- a/gdb/testsuite/gdb.base/solib-display.exp
+++ b/gdb/testsuite/gdb.base/solib-display.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/solib-nodir.exp b/gdb/testsuite/gdb.base/solib-nodir.exp
index fe34396..510164c 100644
--- a/gdb/testsuite/gdb.base/solib-nodir.exp
+++ b/gdb/testsuite/gdb.base/solib-nodir.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-overlap-lib.c b/gdb/testsuite/gdb.base/solib-overlap-lib.c
index 47eedda..dc2a7aa 100644
--- a/gdb/testsuite/gdb.base/solib-overlap-lib.c
+++ b/gdb/testsuite/gdb.base/solib-overlap-lib.c
@@ -1,4 +1,4 @@
-/* Copyright 2009-2024 Free Software Foundation, Inc.
+/* Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/solib-overlap-main.c b/gdb/testsuite/gdb.base/solib-overlap-main.c
index dfa2c03..0fa9ea1 100644
--- a/gdb/testsuite/gdb.base/solib-overlap-main.c
+++ b/gdb/testsuite/gdb.base/solib-overlap-main.c
@@ -1,4 +1,4 @@
-/* Copyright 2009-2024 Free Software Foundation, Inc.
+/* Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/solib-overlap.exp b/gdb/testsuite/gdb.base/solib-overlap.exp
index 593f51d..ce18607 100644
--- a/gdb/testsuite/gdb.base/solib-overlap.exp
+++ b/gdb/testsuite/gdb.base/solib-overlap.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/solib-probes-nosharedlibrary.c b/gdb/testsuite/gdb.base/solib-probes-nosharedlibrary.c
index e6a98eb..e851b7e 100644
--- a/gdb/testsuite/gdb.base/solib-probes-nosharedlibrary.c
+++ b/gdb/testsuite/gdb.base/solib-probes-nosharedlibrary.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-probes-nosharedlibrary.exp b/gdb/testsuite/gdb.base/solib-probes-nosharedlibrary.exp
index d66d68a..1fe909c 100644
--- a/gdb/testsuite/gdb.base/solib-probes-nosharedlibrary.exp
+++ b/gdb/testsuite/gdb.base/solib-probes-nosharedlibrary.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-search-lib1.c b/gdb/testsuite/gdb.base/solib-search-lib1.c
index 535cfce..44062a8 100644
--- a/gdb/testsuite/gdb.base/solib-search-lib1.c
+++ b/gdb/testsuite/gdb.base/solib-search-lib1.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-search-lib2.c b/gdb/testsuite/gdb.base/solib-search-lib2.c
index 4bb467d..d9322dc 100644
--- a/gdb/testsuite/gdb.base/solib-search-lib2.c
+++ b/gdb/testsuite/gdb.base/solib-search-lib2.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-search.c b/gdb/testsuite/gdb.base/solib-search.c
index 775bf21..d8426c6 100644
--- a/gdb/testsuite/gdb.base/solib-search.c
+++ b/gdb/testsuite/gdb.base/solib-search.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-search.exp b/gdb/testsuite/gdb.base/solib-search.exp
index bf021c8..35b0314 100644
--- a/gdb/testsuite/gdb.base/solib-search.exp
+++ b/gdb/testsuite/gdb.base/solib-search.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,7 +16,7 @@
# Test solib-search-path, and in the case of solib-svr4.c whether l_addr_p
# is properly reset when the path is changed.
-require allow_shlib_tests
+require allow_shlib_tests gcore_cmd_available
require {!is_remote target}
# Build "wrong" and "right" versions of the libraries in separate directories.
diff --git a/gdb/testsuite/gdb.base/solib-search.h b/gdb/testsuite/gdb.base/solib-search.h
index 89f385c..f917e88 100644
--- a/gdb/testsuite/gdb.base/solib-search.h
+++ b/gdb/testsuite/gdb.base/solib-search.h
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-symbol-lib.c b/gdb/testsuite/gdb.base/solib-symbol-lib.c
index 9f1e6b4..49fb67b 100644
--- a/gdb/testsuite/gdb.base/solib-symbol-lib.c
+++ b/gdb/testsuite/gdb.base/solib-symbol-lib.c
@@ -1,4 +1,4 @@
-/* Copyright 2007-2024 Free Software Foundation, Inc.
+/* Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/solib-symbol-main.c b/gdb/testsuite/gdb.base/solib-symbol-main.c
index a6186cd..34c099b 100644
--- a/gdb/testsuite/gdb.base/solib-symbol-main.c
+++ b/gdb/testsuite/gdb.base/solib-symbol-main.c
@@ -1,4 +1,4 @@
-/* Copyright 2007-2024 Free Software Foundation, Inc.
+/* Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/solib-symbol.exp b/gdb/testsuite/gdb.base/solib-symbol.exp
index 1ec3867..f3ca612 100644
--- a/gdb/testsuite/gdb.base/solib-symbol.exp
+++ b/gdb/testsuite/gdb.base/solib-symbol.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/solib-vanish-lib1.c b/gdb/testsuite/gdb.base/solib-vanish-lib1.c
index f15b4dc..565e651 100644
--- a/gdb/testsuite/gdb.base/solib-vanish-lib1.c
+++ b/gdb/testsuite/gdb.base/solib-vanish-lib1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-vanish-lib2.c b/gdb/testsuite/gdb.base/solib-vanish-lib2.c
index ba673e6..e3d94ed 100644
--- a/gdb/testsuite/gdb.base/solib-vanish-lib2.c
+++ b/gdb/testsuite/gdb.base/solib-vanish-lib2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-vanish-main.c b/gdb/testsuite/gdb.base/solib-vanish-main.c
index 4ef78dc..5615854 100644
--- a/gdb/testsuite/gdb.base/solib-vanish-main.c
+++ b/gdb/testsuite/gdb.base/solib-vanish-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-vanish.exp b/gdb/testsuite/gdb.base/solib-vanish.exp
index 9c7c372..d85e06a 100644
--- a/gdb/testsuite/gdb.base/solib-vanish.exp
+++ b/gdb/testsuite/gdb.base/solib-vanish.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-weak.c b/gdb/testsuite/gdb.base/solib-weak.c
index 4199721..0a693ba 100644
--- a/gdb/testsuite/gdb.base/solib-weak.c
+++ b/gdb/testsuite/gdb.base/solib-weak.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2006-2024 Free Software Foundation, Inc.
+ Copyright 2006-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/solib-weak.exp b/gdb/testsuite/gdb.base/solib-weak.exp
index 1ed552c..2d75a91 100644
--- a/gdb/testsuite/gdb.base/solib-weak.exp
+++ b/gdb/testsuite/gdb.base/solib-weak.exp
@@ -1,4 +1,4 @@
-# Copyright 2006-2024 Free Software Foundation, Inc.
+# Copyright 2006-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/source-dir.c b/gdb/testsuite/gdb.base/source-dir.c
index e6a98eb..e851b7e 100644
--- a/gdb/testsuite/gdb.base/source-dir.c
+++ b/gdb/testsuite/gdb.base/source-dir.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/source-dir.exp b/gdb/testsuite/gdb.base/source-dir.exp
index 96b6446..b2bf78c 100644
--- a/gdb/testsuite/gdb.base/source-dir.exp
+++ b/gdb/testsuite/gdb.base/source-dir.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/source-error-1.gdb b/gdb/testsuite/gdb.base/source-error-1.gdb
index 8528fd8..05f9029 100644
--- a/gdb/testsuite/gdb.base/source-error-1.gdb
+++ b/gdb/testsuite/gdb.base/source-error-1.gdb
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/source-error.gdb b/gdb/testsuite/gdb.base/source-error.gdb
index d5b9983..a531253 100644
--- a/gdb/testsuite/gdb.base/source-error.gdb
+++ b/gdb/testsuite/gdb.base/source-error.gdb
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/source-execution.c b/gdb/testsuite/gdb.base/source-execution.c
index 46d9299..9f64585 100644
--- a/gdb/testsuite/gdb.base/source-execution.c
+++ b/gdb/testsuite/gdb.base/source-execution.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/source-execution.exp b/gdb/testsuite/gdb.base/source-execution.exp
index 7fc60d5..c0a54f2 100644
--- a/gdb/testsuite/gdb.base/source-execution.exp
+++ b/gdb/testsuite/gdb.base/source-execution.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/source-execution.gdb b/gdb/testsuite/gdb.base/source-execution.gdb
index 8fb9194c..55d9be8 100644
--- a/gdb/testsuite/gdb.base/source-execution.gdb
+++ b/gdb/testsuite/gdb.base/source-execution.gdb
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/source-nofile.gdb b/gdb/testsuite/gdb.base/source-nofile.gdb
index 0255445..f3461b6 100644
--- a/gdb/testsuite/gdb.base/source-nofile.gdb
+++ b/gdb/testsuite/gdb.base/source-nofile.gdb
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/source-open.c b/gdb/testsuite/gdb.base/source-open.c
index afaa14e..bd8a16d 100644
--- a/gdb/testsuite/gdb.base/source-open.c
+++ b/gdb/testsuite/gdb.base/source-open.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/source-open.exp b/gdb/testsuite/gdb.base/source-open.exp
index df9a9f9..016fde4 100644
--- a/gdb/testsuite/gdb.base/source-open.exp
+++ b/gdb/testsuite/gdb.base/source-open.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/source-test.gdb b/gdb/testsuite/gdb.base/source-test.gdb
index f23b549..cd1dfcc 100644
--- a/gdb/testsuite/gdb.base/source-test.gdb
+++ b/gdb/testsuite/gdb.base/source-test.gdb
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/source.exp b/gdb/testsuite/gdb.base/source.exp
index 26e4d26..d8b814f 100644
--- a/gdb/testsuite/gdb.base/source.exp
+++ b/gdb/testsuite/gdb.base/source.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.c b/gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.c
index d22cf67..4a91280 100644
--- a/gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.c
+++ b/gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp b/gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp
index 226a756..15c0fda 100644
--- a/gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp
+++ b/gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sss-bp-on-user-bp.c b/gdb/testsuite/gdb.base/sss-bp-on-user-bp.c
index 5a5a68e..c34e7b7 100644
--- a/gdb/testsuite/gdb.base/sss-bp-on-user-bp.c
+++ b/gdb/testsuite/gdb.base/sss-bp-on-user-bp.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sss-bp-on-user-bp.exp b/gdb/testsuite/gdb.base/sss-bp-on-user-bp.exp
index a3cbe1d..4aabe19 100644
--- a/gdb/testsuite/gdb.base/sss-bp-on-user-bp.exp
+++ b/gdb/testsuite/gdb.base/sss-bp-on-user-bp.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/stack-checking.c b/gdb/testsuite/gdb.base/stack-checking.c
index 2439edc..bec4815 100644
--- a/gdb/testsuite/gdb.base/stack-checking.c
+++ b/gdb/testsuite/gdb.base/stack-checking.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/stack-checking.exp b/gdb/testsuite/gdb.base/stack-checking.exp
index 41fd7e8..5e55b43 100644
--- a/gdb/testsuite/gdb.base/stack-checking.exp
+++ b/gdb/testsuite/gdb.base/stack-checking.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/stack-protector.c b/gdb/testsuite/gdb.base/stack-protector.c
index 3967857..738383f 100644
--- a/gdb/testsuite/gdb.base/stack-protector.c
+++ b/gdb/testsuite/gdb.base/stack-protector.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/stack-protector.exp b/gdb/testsuite/gdb.base/stack-protector.exp
index 6b6043e..c56c5f5 100644
--- a/gdb/testsuite/gdb.base/stack-protector.exp
+++ b/gdb/testsuite/gdb.base/stack-protector.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# Copyright (C) 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/stale-infcall.c b/gdb/testsuite/gdb.base/stale-infcall.c
index 07def7f..f66d12d 100644
--- a/gdb/testsuite/gdb.base/stale-infcall.c
+++ b/gdb/testsuite/gdb.base/stale-infcall.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/stale-infcall.exp b/gdb/testsuite/gdb.base/stale-infcall.exp
index e0c71de..158f3f7 100644
--- a/gdb/testsuite/gdb.base/stale-infcall.exp
+++ b/gdb/testsuite/gdb.base/stale-infcall.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/stap-probe.c b/gdb/testsuite/gdb.base/stap-probe.c
index 2bc010d..0162875 100644
--- a/gdb/testsuite/gdb.base/stap-probe.c
+++ b/gdb/testsuite/gdb.base/stap-probe.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/stap-probe.exp b/gdb/testsuite/gdb.base/stap-probe.exp
index 40e8c5e..c487a9f 100644
--- a/gdb/testsuite/gdb.base/stap-probe.exp
+++ b/gdb/testsuite/gdb.base/stap-probe.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/start-cpp.cc b/gdb/testsuite/gdb.base/start-cpp.cc
index 6a800d8..1f788ed 100644
--- a/gdb/testsuite/gdb.base/start-cpp.cc
+++ b/gdb/testsuite/gdb.base/start-cpp.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/start-cpp.exp b/gdb/testsuite/gdb.base/start-cpp.exp
index 330c6ea..ea8972f 100644
--- a/gdb/testsuite/gdb.base/start-cpp.exp
+++ b/gdb/testsuite/gdb.base/start-cpp.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/start.c b/gdb/testsuite/gdb.base/start.c
index 4587679..f06fe58 100644
--- a/gdb/testsuite/gdb.base/start.c
+++ b/gdb/testsuite/gdb.base/start.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2005-2024 Free Software Foundation, Inc.
+ Copyright 2005-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/start.exp b/gdb/testsuite/gdb.base/start.exp
index 64b04c2..02e238a 100644
--- a/gdb/testsuite/gdb.base/start.exp
+++ b/gdb/testsuite/gdb.base/start.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/starti.c b/gdb/testsuite/gdb.base/starti.c
index 35f995c..7e5555f 100644
--- a/gdb/testsuite/gdb.base/starti.c
+++ b/gdb/testsuite/gdb.base/starti.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/starti.exp b/gdb/testsuite/gdb.base/starti.exp
index 5fe98dc..c123519 100644
--- a/gdb/testsuite/gdb.base/starti.exp
+++ b/gdb/testsuite/gdb.base/starti.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/startup-with-shell.c b/gdb/testsuite/gdb.base/startup-with-shell.c
index ca7a809..423cd17 100644
--- a/gdb/testsuite/gdb.base/startup-with-shell.c
+++ b/gdb/testsuite/gdb.base/startup-with-shell.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/startup-with-shell.exp b/gdb/testsuite/gdb.base/startup-with-shell.exp
index 87a7559..80dfdf3 100644
--- a/gdb/testsuite/gdb.base/startup-with-shell.exp
+++ b/gdb/testsuite/gdb.base/startup-with-shell.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -43,55 +43,121 @@ proc initial_setup_simple { startup_with_shell run_args } {
clean_restart $binfile
gdb_test_no_output "set startup-with-shell $startup_with_shell"
+ gdb_test_no_output "set print characters unlimited"
gdb_test_no_output "set args $run_args" \
"set args \$run_args"
- set test "inferior started"
- if { [runto_main] } {
- pass $test
- } else {
- fail $test
+ return [runto_main]
+}
+
+# Start GDB, set the inferior arguments to ARGS, and then run to main.
+# Once at main, read the first argument from the inferior and compare
+# it to ON_RE if startup-with-shell is on, otherwise compare to
+# OFF_RE.
+#
+# If PROBLEMATIC_ON is true then when startup-with-shell is on we
+# expect the comparison to fail, so setup an xfail.
+#
+# TESTNAME is a string used in the test names.
+proc run_test { args on_re off_re testname { problematic_on false } } {
+ foreach startup_with_shell { "on" "off" } {
+ with_test_prefix "$testname, startup_with_shell: ${startup_with_shell}" {
+ if {![initial_setup_simple $startup_with_shell $args]} {
+ return -1
+ }
+
+ if { $startup_with_shell } {
+ set re $on_re
+ set problematic $problematic_on
+ } else {
+ set re $off_re
+ set problematic false
+ }
+
+ if { $problematic } {
+ setup_xfail "*-*-*" gdb/28392
+ }
+
+ gdb_test "print argv\[1\]" "\\\$$::decimal = $::hex $re" $testname
+ }
}
}
+# This is like the run_test proc except that RE is used as the
+# expected argument regexp when startup-with-shell is both on and off.
+# For the other arguments, see run_test.
+proc run_test_same { args re testname } {
+ run_test $args $re $re $testname
+}
+
+# The regexp to match a single '\' character.
+set bs "\\\\"
+
# Are we using 'remote' or 'extended-remote' protocol?
set is_remote_p [gdb_protocol_is_remote]
## Run the actual tests
-with_test_prefix "startup_with_shell = on; run_args = *.unique-extension" {
- initial_setup_simple "on" "$unique_file_dir/*.unique-extension"
- gdb_test_no_output "set print characters unlimited"
- if { $is_remote_p } {
- setup_xfail "*-*-*" gdb/28392
- }
- gdb_test "print argv\[1\]" "\\\$$decimal = $hex \"$unique_file\"" \
- "first argument expanded"
-}
+run_test "$unique_file_dir/*.unique-extension" \
+ "\"$unique_file\"" \
+ "\"$unique_file_dir/\\\*\.unique-extension\"" \
+ "arg is glob" \
+ $is_remote_p
-with_test_prefix "startup_with_shell = off; run_args = *.unique-extension" {
- initial_setup_simple "off" "$unique_file_dir/*.unique-extension"
- gdb_test_no_output "set print characters unlimited"
- gdb_test "print argv\[1\]" "\\\$$decimal = $hex \"$unique_file_dir/\\\*\.unique-extension\"" \
- "first argument not expanded"
-}
+run_test_same "$unique_file_dir/\\*.unique-extension" \
+ "\"$unique_file_dir/\\\*\.unique-extension\"" \
+ "arg is escaped glob"
-with_test_prefix "startup_with_shell = on; run_args = \$TEST" {
+save_vars { env(TEST) } {
set env(TEST) "1234"
- initial_setup_simple "on" "\$TEST"
- if { $is_remote_p } {
- setup_xfail "*-*-*" gdb/28392
- }
- gdb_test "print argv\[1\]" "\\\$$decimal = $hex \"1234\"" \
- "testing first argument"
- unset env(TEST)
+ run_test "\$TEST" \
+ "\"1234\"" \
+ "\"\\\$TEST\"" \
+ "arg is shell variable" \
+ $is_remote_p
+
+ run_test_same "\\\$TEST" \
+ "\"\\\$TEST\"" \
+ "arg is escaped shell variable"
}
-with_test_prefix "startup_with_shell = off; run_args = \$TEST" {
- set env(TEST) "1234"
- initial_setup_simple "off" "\$TEST"
- gdb_test "print argv\[1\]" "\\\$$decimal = $hex \"\\\$TEST\"" \
- "testing first argument"
- unset env(TEST)
-}
+run_test_same "\"\\a\"" \
+ "\"${bs}${bs}a\"" \
+ "retain backslash in double quote arg"
+
+run_test_same "'\\a'" \
+ "\"${bs}${bs}a\"" \
+ "retain backslash in single quote arg"
+
+run_test_same "\"\\\$\"" \
+ "\"\\\$\"" \
+ "'\$' can be escaped in double quote arg"
+
+run_test_same "'\\\$'" \
+ "\"${bs}${bs}\\\$\"" \
+ "'\$' is not escaped in single quote arg"
+
+run_test_same "\"\\`\"" \
+ "\"\\`\"" \
+ "'`' can be escaped in double quote arg"
+
+run_test_same "'\\`'" \
+ "\"${bs}${bs}`\"" \
+ "'`' is not escaped in single quote arg"
+
+run_test_same "\"\\\"\"" \
+ "\"${bs}\"\"" \
+ "'\"' can be escaped in double quote arg"
+
+run_test_same "'\\\"'" \
+ "\"${bs}${bs}${bs}\"\"" \
+ "'\"' is not escaped in single quote arg"
+
+run_test_same "\"\\\\\"" \
+ "\"${bs}${bs}\"" \
+ "'\\' can be escaped in double quote arg"
+
+run_test_same "'\\\\'" \
+ "\"${bs}${bs}${bs}${bs}\"" \
+ "'\\' is not escaped in single quote arg"
diff --git a/gdb/testsuite/gdb.base/statistics.exp b/gdb/testsuite/gdb.base/statistics.exp
index a333f99..1dacc4d 100644
--- a/gdb/testsuite/gdb.base/statistics.exp
+++ b/gdb/testsuite/gdb.base/statistics.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-break.c b/gdb/testsuite/gdb.base/step-break.c
index 8cd4df7..1934f60 100644
--- a/gdb/testsuite/gdb.base/step-break.c
+++ b/gdb/testsuite/gdb.base/step-break.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-break.exp b/gdb/testsuite/gdb.base/step-break.exp
index 7dc0492..e565185 100644
--- a/gdb/testsuite/gdb.base/step-break.exp
+++ b/gdb/testsuite/gdb.base/step-break.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-bt.c b/gdb/testsuite/gdb.base/step-bt.c
index 9b3c718..49f42ad 100644
--- a/gdb/testsuite/gdb.base/step-bt.c
+++ b/gdb/testsuite/gdb.base/step-bt.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2006-2024 Free Software Foundation, Inc.
+ Copyright 2006-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-bt.exp b/gdb/testsuite/gdb.base/step-bt.exp
index f872daf..f213a2f 100644
--- a/gdb/testsuite/gdb.base/step-bt.exp
+++ b/gdb/testsuite/gdb.base/step-bt.exp
@@ -1,4 +1,4 @@
-# Copyright 2006-2024 Free Software Foundation, Inc.
+# Copyright 2006-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-indirect-call-thunk.c b/gdb/testsuite/gdb.base/step-indirect-call-thunk.c
index 277653c..3266305 100644
--- a/gdb/testsuite/gdb.base/step-indirect-call-thunk.c
+++ b/gdb/testsuite/gdb.base/step-indirect-call-thunk.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-indirect-call-thunk.exp b/gdb/testsuite/gdb.base/step-indirect-call-thunk.exp
index 36d3933..146a0e0 100644
--- a/gdb/testsuite/gdb.base/step-indirect-call-thunk.exp
+++ b/gdb/testsuite/gdb.base/step-indirect-call-thunk.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-into-other-file.c b/gdb/testsuite/gdb.base/step-into-other-file.c
index 5ec7c33..5023755 100644
--- a/gdb/testsuite/gdb.base/step-into-other-file.c
+++ b/gdb/testsuite/gdb.base/step-into-other-file.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-into-other-file.exp b/gdb/testsuite/gdb.base/step-into-other-file.exp
index f0e8c3f..64403a1 100644
--- a/gdb/testsuite/gdb.base/step-into-other-file.exp
+++ b/gdb/testsuite/gdb.base/step-into-other-file.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-into-other-file.h b/gdb/testsuite/gdb.base/step-into-other-file.h
index 60b4816..0617011 100644
--- a/gdb/testsuite/gdb.base/step-into-other-file.h
+++ b/gdb/testsuite/gdb.base/step-into-other-file.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-line.c b/gdb/testsuite/gdb.base/step-line.c
index 24b8bfb..ac7a7bb 100644
--- a/gdb/testsuite/gdb.base/step-line.c
+++ b/gdb/testsuite/gdb.base/step-line.c
@@ -1,6 +1,6 @@
/* Test step/next in presence of #line directives.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/step-line.exp b/gdb/testsuite/gdb.base/step-line.exp
index 6629eb8..068adf5 100644
--- a/gdb/testsuite/gdb.base/step-line.exp
+++ b/gdb/testsuite/gdb.base/step-line.exp
@@ -1,4 +1,4 @@
-# Copyright 2001-2024 Free Software Foundation, Inc.
+# Copyright 2001-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-line.inp b/gdb/testsuite/gdb.base/step-line.inp
index 744b2f0..7f49e97 100644
--- a/gdb/testsuite/gdb.base/step-line.inp
+++ b/gdb/testsuite/gdb.base/step-line.inp
@@ -1,6 +1,6 @@
# Test step/next in presence of #line directives
-# Copyright (C) 2001-2024 Free Software Foundation, Inc.
+# Copyright (C) 2001-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-over-clone.c b/gdb/testsuite/gdb.base/step-over-clone.c
index 920de86..f254882 100644
--- a/gdb/testsuite/gdb.base/step-over-clone.c
+++ b/gdb/testsuite/gdb.base/step-over-clone.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-over-exit.c b/gdb/testsuite/gdb.base/step-over-exit.c
index 5c34547..6c3db60 100644
--- a/gdb/testsuite/gdb.base/step-over-exit.c
+++ b/gdb/testsuite/gdb.base/step-over-exit.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-over-exit.exp b/gdb/testsuite/gdb.base/step-over-exit.exp
index d373b1a..6dfa7bb 100644
--- a/gdb/testsuite/gdb.base/step-over-exit.exp
+++ b/gdb/testsuite/gdb.base/step-over-exit.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -13,11 +13,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/>.
-standard_testfile
-
# Test a thread is doing step-over a syscall instruction which is exit,
# and GDBserver should cleanup its state of step-over properly.
+# The testcase relies on follow-fork-mode child.
+require allow_fork_tests
+
+standard_testfile
+
set syscall_insn ""
# Define the syscall instruction for each target.
diff --git a/gdb/testsuite/gdb.base/step-over-fork.c b/gdb/testsuite/gdb.base/step-over-fork.c
index 3b46f44..365e080 100644
--- a/gdb/testsuite/gdb.base/step-over-fork.c
+++ b/gdb/testsuite/gdb.base/step-over-fork.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-over-no-symbols.exp b/gdb/testsuite/gdb.base/step-over-no-symbols.exp
index 98158e1..2eb8efe 100644
--- a/gdb/testsuite/gdb.base/step-over-no-symbols.exp
+++ b/gdb/testsuite/gdb.base/step-over-no-symbols.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-over-syscall.exp b/gdb/testsuite/gdb.base/step-over-syscall.exp
index c40b20f..9df716d 100644
--- a/gdb/testsuite/gdb.base/step-over-syscall.exp
+++ b/gdb/testsuite/gdb.base/step-over-syscall.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -62,14 +62,18 @@ proc_with_prefix check_pc_after_cross_syscall { displaced syscall syscall_insn_n
# Verify the syscall number is the correct one.
proc syscall_number_matches { syscall } {
- global syscall_register syscall_number
+ global syscall_register syscall_number
- if {[gdb_test "p \$$syscall_register" ".*= $syscall_number($syscall)" \
- "syscall number matches"] != 0} {
- return 0
- }
+ set res 0
+ gdb_test_multiple "p \$$syscall_register" "syscall number matches" {
+ -re -wrap ".*= $syscall_number($syscall)" {
+ set res 1
+ }
+ -re -wrap "" {
+ }
+ }
- return 1
+ return $res
}
# Restart GDB and set up the test. Return a list in which the first one
@@ -139,7 +143,13 @@ proc setup { syscall } {
if {[syscall_number_matches $syscall]} {
pass $gdb_test_name
} else {
- exp_continue
+ incr steps
+ if {$steps == $max_steps} {
+ fail $gdb_test_name
+ } else {
+ send_gdb "stepi\n"
+ exp_continue
+ }
}
}
-re "x/i .*=>.*\r\n$gdb_prompt $" {
@@ -176,7 +186,7 @@ proc setup { syscall } {
# 0xf7fd5159 <__kernel_vsyscall+9>: pop %ebp
# then a stepi at sysenter will step over the int insn, so make sure
# next_insn_addr points after the int insn.
- if { $actual_syscall_insn == "sysenter" } {
+ if { $actual_syscall_insn == "sysenter" || $actual_syscall_insn == "syscall" } {
set test "pc after sysenter instruction"
set re_int_insn "\[ \t\]*int\[ \t\]\[^\r\n\]*"
set re [multi_line \
diff --git a/gdb/testsuite/gdb.base/step-over-vfork.c b/gdb/testsuite/gdb.base/step-over-vfork.c
index 0ce8d65..704c0d8 100644
--- a/gdb/testsuite/gdb.base/step-over-vfork.c
+++ b/gdb/testsuite/gdb.base/step-over-vfork.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-resume-infcall.c b/gdb/testsuite/gdb.base/step-resume-infcall.c
index a5baf1a..f2e9047 100644
--- a/gdb/testsuite/gdb.base/step-resume-infcall.c
+++ b/gdb/testsuite/gdb.base/step-resume-infcall.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2005-2024 Free Software Foundation, Inc.
+ Copyright 2005-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-resume-infcall.exp b/gdb/testsuite/gdb.base/step-resume-infcall.exp
index 5646e7c..4010c76 100644
--- a/gdb/testsuite/gdb.base/step-resume-infcall.exp
+++ b/gdb/testsuite/gdb.base/step-resume-infcall.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.c b/gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.c
index c4baeac..438ed7a 100644
--- a/gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.c
+++ b/gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp b/gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp
index 4577b8f..2dc67ea 100644
--- a/gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp
+++ b/gdb/testsuite/gdb.base/step-sw-breakpoint-adjust-pc.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-symless.c b/gdb/testsuite/gdb.base/step-symless.c
index 19c72f8..e39216e 100644
--- a/gdb/testsuite/gdb.base/step-symless.c
+++ b/gdb/testsuite/gdb.base/step-symless.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-symless.exp b/gdb/testsuite/gdb.base/step-symless.exp
index b01b9f6..07df253 100644
--- a/gdb/testsuite/gdb.base/step-symless.exp
+++ b/gdb/testsuite/gdb.base/step-symless.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-test.exp b/gdb/testsuite/gdb.base/step-test.exp
index 6e6f89b..28eccf7 100644
--- a/gdb/testsuite/gdb.base/step-test.exp
+++ b/gdb/testsuite/gdb.base/step-test.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-through-epilogue.c b/gdb/testsuite/gdb.base/step-through-epilogue.c
index c545cb1..d96f0ae 100644
--- a/gdb/testsuite/gdb.base/step-through-epilogue.c
+++ b/gdb/testsuite/gdb.base/step-through-epilogue.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1992-2024 Free Software Foundation, Inc.
+ Copyright 1992-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/step-through-epilogue.exp b/gdb/testsuite/gdb.base/step-through-epilogue.exp
index 8416e13..e024433 100644
--- a/gdb/testsuite/gdb.base/step-through-epilogue.exp
+++ b/gdb/testsuite/gdb.base/step-through-epilogue.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/store.exp b/gdb/testsuite/gdb.base/store.exp
index 2271156..21f4422 100644
--- a/gdb/testsuite/gdb.base/store.exp
+++ b/gdb/testsuite/gdb.base/store.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/structs.c b/gdb/testsuite/gdb.base/structs.c
index dd85e5e..34ade49 100644
--- a/gdb/testsuite/gdb.base/structs.c
+++ b/gdb/testsuite/gdb.base/structs.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1996-2024 Free Software Foundation, Inc.
+ Copyright 1996-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/structs.exp b/gdb/testsuite/gdb.base/structs.exp
index 99b6aa9..31a45b5 100644
--- a/gdb/testsuite/gdb.base/structs.exp
+++ b/gdb/testsuite/gdb.base/structs.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 1996-2024 Free Software Foundation, Inc.
+# Copyright 1996-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/structs2.exp b/gdb/testsuite/gdb.base/structs2.exp
index 938d931..8ccd50d 100644
--- a/gdb/testsuite/gdb.base/structs2.exp
+++ b/gdb/testsuite/gdb.base/structs2.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/structs3.c b/gdb/testsuite/gdb.base/structs3.c
index 7b6808f..2fd26d0 100644
--- a/gdb/testsuite/gdb.base/structs3.c
+++ b/gdb/testsuite/gdb.base/structs3.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/structs3.exp b/gdb/testsuite/gdb.base/structs3.exp
index 15ba8f3..6ac450f 100644
--- a/gdb/testsuite/gdb.base/structs3.exp
+++ b/gdb/testsuite/gdb.base/structs3.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/style-interp-exec-mi.c b/gdb/testsuite/gdb.base/style-interp-exec-mi.c
index fb4ffc2..f2b8dba 100644
--- a/gdb/testsuite/gdb.base/style-interp-exec-mi.c
+++ b/gdb/testsuite/gdb.base/style-interp-exec-mi.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/style-interp-exec-mi.exp b/gdb/testsuite/gdb.base/style-interp-exec-mi.exp
index 6c704ba..3c738c3 100644
--- a/gdb/testsuite/gdb.base/style-interp-exec-mi.exp
+++ b/gdb/testsuite/gdb.base/style-interp-exec-mi.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/style-logging.exp b/gdb/testsuite/gdb.base/style-logging.exp
index d866d36..10b4636 100644
--- a/gdb/testsuite/gdb.base/style-logging.exp
+++ b/gdb/testsuite/gdb.base/style-logging.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/style.c b/gdb/testsuite/gdb.base/style.c
index e72c2ee..fb705eb 100644
--- a/gdb/testsuite/gdb.base/style.c
+++ b/gdb/testsuite/gdb.base/style.c
@@ -2,7 +2,7 @@
/* The leading newlines here are intentional, do not remove. They are used to
test that the source highlighter doesn't strip them. */
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/style.exp b/gdb/testsuite/gdb.base/style.exp
index b027ab7..c10be3b 100644
--- a/gdb/testsuite/gdb.base/style.exp
+++ b/gdb/testsuite/gdb.base/style.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -329,6 +329,18 @@ proc run_style_tests { } {
"The \033\\\[38;2;254;210;16;48;5;255;22;27m.*\".*version.*\".*style.*\033\\\[m foreground color is: #FED210" \
"Version's TrueColor foreground style"
}
+
+ gdb_test_no_output "set host-charset UTF-8"
+ # Chosen since it will print an error.
+ gdb_test "maint translate-address" \
+ "âŒï¸ requires argument.*" \
+ "emoji output"
+
+ gdb_test_no_output "set style error-prefix abcd:" \
+ "set the error prefix"
+ gdb_test "maint translate-address" \
+ "abcd:requires argument.*" \
+ "error prefix"
}
}
@@ -431,7 +443,13 @@ proc test_disable_disassembler_styling { } {
# disassembled instruction part.
proc get_single_disassembled_insn {} {
set disasm_line [capture_command_output "x/1i *main" ""]
- regexp "^\[^:\]+:\\s*(.*)$" $disasm_line whole_match insn
+ set ret [regexp "^\[^:\]+:\\s*(.*)$" $disasm_line whole_match insn]
+
+ if { $ret == 0 } {
+ fail "failed to disassemble main"
+ return ""
+ }
+
return $insn
}
@@ -463,7 +481,10 @@ proc test_disassembler_error_handling { } {
# Disassemble a single instruction and ensure that the output
# has styling markers in it.
- set insn_before [get_single_disassembled_insn]
+ with_test_prefix "before" {
+ set insn_before [get_single_disassembled_insn]
+ }
+
gdb_assert { [regexp "\033" $insn_before] } \
"have style markers when Pygments is working fine"
@@ -481,7 +502,10 @@ proc test_disassembler_error_handling { } {
"setup replacement colorize_disasm function" \
true
- set insn_after [get_single_disassembled_insn]
+ with_test_prefix "after" {
+ set insn_after [get_single_disassembled_insn]
+ }
+
gdb_assert { ![regexp "\033" $insn_after] } \
"have no style markers when Pygments is broken"
}
@@ -678,6 +702,55 @@ proc test_colorsupport_truecolor_only { } {
}
}
+# Check that styling is auto-disabled when using a "dumb" terminal,
+# and/or when NO_COLOR is set.
+#
+# Also check that the user gets a warning if they enable styling in a
+# "dumb" terminal, but don't get a warning if they are in an "ansi"
+# terminal and NO_COLOR is set.
+proc test_enable_styling_warning { } {
+ save_vars { env(TERM) env(NO_COLOR) } {
+ foreach_with_prefix no_color { set unset } {
+ if { $no_color eq "set" } {
+ setenv NO_COLOR "xxx"
+ } else {
+ unset -nocomplain ::env(NO_COLOR)
+ }
+
+ foreach_with_prefix term_type { dumb unset ansi } {
+ if { $term_type eq "dumb" } {
+ setenv TERM dumb
+ } elseif { $term_type eq "unset" } {
+ unset -nocomplain ::env(TERM)
+ } elseif { $term_type eq "ansi" } {
+ setenv TERM ansi
+ }
+
+ set styling_on_re "CLI output styling is enabled\\."
+ set styling_off_re "CLI output styling is disabled\\."
+
+ if { $term_type eq "ansi" } {
+ if { $no_color eq "unset" } {
+ set init_re $styling_on_re
+ } else {
+ set init_re $styling_off_re
+ }
+ set enable_re ""
+ } else {
+ set init_re $styling_off_re
+ set enable_re \
+ "warning: The current terminal doesn't support styling\\. Styled output might not appear as expected\\."
+ }
+
+
+ clean_restart
+ gdb_test "show style enabled" $init_re
+ gdb_test "set style enabled on" $enable_re
+ }
+ }
+ }
+}
+
# Check to see if the Python styling of disassembler output is
# expected or not, this styling requires Python support in GDB, and
# the Python pygments module to be available.
@@ -718,3 +791,5 @@ test_colorsupport_8color
test_colorsupport_256color
test_colorsupport_truecolor
test_colorsupport_truecolor_only
+
+test_enable_styling_warning
diff --git a/gdb/testsuite/gdb.base/subst.exp b/gdb/testsuite/gdb.base/subst.exp
index b1e352d..27c82c0 100644
--- a/gdb/testsuite/gdb.base/subst.exp
+++ b/gdb/testsuite/gdb.base/subst.exp
@@ -1,4 +1,4 @@
-# Copyright 2006-2024 Free Software Foundation, Inc.
+# Copyright 2006-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sym-file-lib.c b/gdb/testsuite/gdb.base/sym-file-lib.c
index 9a4af81..c9ae329 100644
--- a/gdb/testsuite/gdb.base/sym-file-lib.c
+++ b/gdb/testsuite/gdb.base/sym-file-lib.c
@@ -1,4 +1,4 @@
-/* Copyright 2013-2024 Free Software Foundation, Inc.
+/* Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/sym-file-loader.c b/gdb/testsuite/gdb.base/sym-file-loader.c
index 1c70536..f782a37 100644
--- a/gdb/testsuite/gdb.base/sym-file-loader.c
+++ b/gdb/testsuite/gdb.base/sym-file-loader.c
@@ -1,4 +1,4 @@
-/* Copyright 2013-2024 Free Software Foundation, Inc.
+/* Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/sym-file-loader.h b/gdb/testsuite/gdb.base/sym-file-loader.h
index 69c7402..a626899 100644
--- a/gdb/testsuite/gdb.base/sym-file-loader.h
+++ b/gdb/testsuite/gdb.base/sym-file-loader.h
@@ -1,4 +1,4 @@
-/* Copyright 2013-2024 Free Software Foundation, Inc.
+/* Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/sym-file-main.c b/gdb/testsuite/gdb.base/sym-file-main.c
index 31b2da1..e941af8 100644
--- a/gdb/testsuite/gdb.base/sym-file-main.c
+++ b/gdb/testsuite/gdb.base/sym-file-main.c
@@ -1,4 +1,4 @@
-/* Copyright 2013-2024 Free Software Foundation, Inc.
+/* Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.base/sym-file.exp b/gdb/testsuite/gdb.base/sym-file.exp
index 17650cb..8197c0e 100644
--- a/gdb/testsuite/gdb.base/sym-file.exp
+++ b/gdb/testsuite/gdb.base/sym-file.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/symbol-alias.c b/gdb/testsuite/gdb.base/symbol-alias.c
index 790ba39..8db973f 100644
--- a/gdb/testsuite/gdb.base/symbol-alias.c
+++ b/gdb/testsuite/gdb.base/symbol-alias.c
@@ -1,6 +1,6 @@
/* This test is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/symbol-alias.exp b/gdb/testsuite/gdb.base/symbol-alias.exp
index 30599c7..c3deaf6 100644
--- a/gdb/testsuite/gdb.base/symbol-alias.exp
+++ b/gdb/testsuite/gdb.base/symbol-alias.exp
@@ -1,5 +1,5 @@
# Test for printing alias symbols.
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/symbol-alias2.c b/gdb/testsuite/gdb.base/symbol-alias2.c
index 09e2660..0da57dd 100644
--- a/gdb/testsuite/gdb.base/symbol-alias2.c
+++ b/gdb/testsuite/gdb.base/symbol-alias2.c
@@ -1,6 +1,6 @@
/* This test is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/symbol-without-target_section.c b/gdb/testsuite/gdb.base/symbol-without-target_section.c
index e99cc78..64e7e3e 100644
--- a/gdb/testsuite/gdb.base/symbol-without-target_section.c
+++ b/gdb/testsuite/gdb.base/symbol-without-target_section.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/symbol-without-target_section.exp b/gdb/testsuite/gdb.base/symbol-without-target_section.exp
index 56cbd18..cf4d262 100644
--- a/gdb/testsuite/gdb.base/symbol-without-target_section.exp
+++ b/gdb/testsuite/gdb.base/symbol-without-target_section.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/symfile-warn.c b/gdb/testsuite/gdb.base/symfile-warn.c
index aa148a9..ddcee2b 100644
--- a/gdb/testsuite/gdb.base/symfile-warn.c
+++ b/gdb/testsuite/gdb.base/symfile-warn.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/symfile-warn.exp b/gdb/testsuite/gdb.base/symfile-warn.exp
index b34de70..485c449 100644
--- a/gdb/testsuite/gdb.base/symfile-warn.exp
+++ b/gdb/testsuite/gdb.base/symfile-warn.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/symlink-sourcefile.c b/gdb/testsuite/gdb.base/symlink-sourcefile.c
index 55df002..0f46d42 100644
--- a/gdb/testsuite/gdb.base/symlink-sourcefile.c
+++ b/gdb/testsuite/gdb.base/symlink-sourcefile.c
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/symlink-sourcefile.exp b/gdb/testsuite/gdb.base/symlink-sourcefile.exp
index 1a02eec..cf1e9a8 100644
--- a/gdb/testsuite/gdb.base/symlink-sourcefile.exp
+++ b/gdb/testsuite/gdb.base/symlink-sourcefile.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/symtab-search-order-1.c b/gdb/testsuite/gdb.base/symtab-search-order-1.c
index fa0c4cf..2fc201f 100644
--- a/gdb/testsuite/gdb.base/symtab-search-order-1.c
+++ b/gdb/testsuite/gdb.base/symtab-search-order-1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/symtab-search-order-shlib-1.c b/gdb/testsuite/gdb.base/symtab-search-order-shlib-1.c
index 5f6ece5..955004a 100644
--- a/gdb/testsuite/gdb.base/symtab-search-order-shlib-1.c
+++ b/gdb/testsuite/gdb.base/symtab-search-order-shlib-1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/symtab-search-order.c b/gdb/testsuite/gdb.base/symtab-search-order.c
index 64f742b..96cb94a 100644
--- a/gdb/testsuite/gdb.base/symtab-search-order.c
+++ b/gdb/testsuite/gdb.base/symtab-search-order.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/symtab-search-order.exp b/gdb/testsuite/gdb.base/symtab-search-order.exp
index d34b0af..cf0d507 100644
--- a/gdb/testsuite/gdb.base/symtab-search-order.exp
+++ b/gdb/testsuite/gdb.base/symtab-search-order.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/sysroot-debug-lookup.exp b/gdb/testsuite/gdb.base/sysroot-debug-lookup.exp
index 80cad95..74c1708 100644
--- a/gdb/testsuite/gdb.base/sysroot-debug-lookup.exp
+++ b/gdb/testsuite/gdb.base/sysroot-debug-lookup.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/template.c b/gdb/testsuite/gdb.base/template.c
index 002dcb8..371e20b 100644
--- a/gdb/testsuite/gdb.base/template.c
+++ b/gdb/testsuite/gdb.base/template.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/template.exp b/gdb/testsuite/gdb.base/template.exp
index 8a68a2f..09c3e3d 100644
--- a/gdb/testsuite/gdb.base/template.exp
+++ b/gdb/testsuite/gdb.base/template.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/term.c b/gdb/testsuite/gdb.base/term.c
index fd667d8..6f45b2d 100644
--- a/gdb/testsuite/gdb.base/term.c
+++ b/gdb/testsuite/gdb.base/term.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/term.exp b/gdb/testsuite/gdb.base/term.exp
index d113cee..76bc004 100644
--- a/gdb/testsuite/gdb.base/term.exp
+++ b/gdb/testsuite/gdb.base/term.exp
@@ -1,4 +1,4 @@
-# Copyright 1988-2024 Free Software Foundation, Inc.
+# Copyright 1988-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/testenv.c b/gdb/testsuite/gdb.base/testenv.c
index 5a98cba..7dc35fc 100644
--- a/gdb/testsuite/gdb.base/testenv.c
+++ b/gdb/testsuite/gdb.base/testenv.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/testenv.exp b/gdb/testsuite/gdb.base/testenv.exp
index 908918a..beb59d2 100644
--- a/gdb/testsuite/gdb.base/testenv.exp
+++ b/gdb/testsuite/gdb.base/testenv.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/thread-bp-multi-loc.c b/gdb/testsuite/gdb.base/thread-bp-multi-loc.c
index 5950b0f..881ff85 100644
--- a/gdb/testsuite/gdb.base/thread-bp-multi-loc.c
+++ b/gdb/testsuite/gdb.base/thread-bp-multi-loc.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/thread-bp-multi-loc.exp b/gdb/testsuite/gdb.base/thread-bp-multi-loc.exp
index bdb51bf..1f0b2a7 100644
--- a/gdb/testsuite/gdb.base/thread-bp-multi-loc.exp
+++ b/gdb/testsuite/gdb.base/thread-bp-multi-loc.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/timestamp.exp b/gdb/testsuite/gdb.base/timestamp.exp
index 4bcdcad..80ea66e 100644
--- a/gdb/testsuite/gdb.base/timestamp.exp
+++ b/gdb/testsuite/gdb.base/timestamp.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/tls-common.exp.tcl b/gdb/testsuite/gdb.base/tls-common.exp.tcl
new file mode 100644
index 0000000..7aa7f46
--- /dev/null
+++ b/gdb/testsuite/gdb.base/tls-common.exp.tcl
@@ -0,0 +1,50 @@
+# Copyright 2024 Free Software Foundation, Inc.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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.
+
+# Require statement, variables and procs used by tls-nothreads.exp,
+# tls-multiobj.exp, and tls-dlobj.exp.
+
+# The tests listed above are known to work for the targets listed on
+# the 'require' line, below.
+#
+# At the moment, only the Linux target is listed, but, ideally, these
+# tests should be run on other targets too. E.g, testing on FreeBSD
+# shows many failures which should be addressed in some fashion before
+# enabling it for that target.
+
+require {is_any_target "*-*-linux*"}
+
+# These are the targets which have support for internal TLS lookup:
+
+set internal_tls_linux_targets {"x86_64-*-linux*" "aarch64-*-linux*"
+ "riscv*-*-linux*" "powerpc64*-*-linux*"
+ "s390x*-*-linux*"}
+
+# The "maint set force-internal-tls-address-lookup" command is only
+# available for certain Linux architectures. Don't attempt to force
+# use of internal TLS support for architectures which don't support
+# it.
+
+if [is_any_target {*}$internal_tls_linux_targets] {
+ set internal_tls_iters { false true }
+} else {
+ set internal_tls_iters { false }
+}
+
+# Set up a kfail with message KFAIL_MSG when KFAIL_COND holds, then
+# issue gdb_test with command CMD and regular expression RE.
+
+proc gdb_test_with_kfail {cmd re kfail_cond kfail_msg} {
+ if [uplevel 1 [list expr $kfail_cond]] {
+ setup_kfail $kfail_msg *-*-*
+ }
+ gdb_test $cmd $re
+}
diff --git a/gdb/testsuite/gdb.base/tls-dlobj-lib.c b/gdb/testsuite/gdb.base/tls-dlobj-lib.c
new file mode 100644
index 0000000..c69bab7
--- /dev/null
+++ b/gdb/testsuite/gdb.base/tls-dlobj-lib.c
@@ -0,0 +1,87 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2024 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+/* This program needs to be compiled with preprocessor symbol set to
+ a small integer, e.g. "gcc -DN=1 ..." With N defined, the CONCAT2
+ and CONCAT3 macros will construct suitable names for the global
+ variables and functions. */
+
+#define CONCAT2(a,b) CONCAT2_(a,b)
+#define CONCAT2_(a,b) a ## b
+
+#define CONCAT3(a,b,c) CONCAT3_(a,b,c)
+#define CONCAT3_(a,b,c) a ## b ## c
+
+/* For N=1, this ends up being...
+ __thread int tls_lib1_tbss_1;
+ __thread int tls_lib1_tbss_2;
+ __thread int tls_lib1_tdata_1 = 196;
+ __thread int tls_lib1_tdata_2 = 197; */
+
+__thread int CONCAT3(tls_lib, N, _tbss_1);
+__thread int CONCAT3(tls_lib, N, _tbss_2);
+__thread int CONCAT3(tls_lib, N, _tdata_1) = CONCAT2(N, 96);
+__thread int CONCAT3(tls_lib, N, _tdata_2) = CONCAT2(N, 97);
+
+/* Substituting for N, define function:
+
+ int get_tls_libN_var (int which) . */
+
+int
+CONCAT3(get_tls_lib, N, _var) (int which)
+{
+ switch (which)
+ {
+ case 0:
+ return -1;
+ case 1:
+ return CONCAT3(tls_lib, N, _tbss_1);
+ case 2:
+ return CONCAT3(tls_lib, N, _tbss_2);
+ case 3:
+ return CONCAT3(tls_lib, N, _tdata_1);
+ case 4:
+ return CONCAT3(tls_lib, N, _tdata_2);
+ }
+ return -1;
+}
+
+/* Substituting for N, define function:
+
+ void set_tls_libN_var (int which, int val) . */
+
+void
+CONCAT3(set_tls_lib, N, _var) (int which, int val)
+{
+ switch (which)
+ {
+ case 0:
+ break;
+ case 1:
+ CONCAT3(tls_lib, N, _tbss_1) = val;
+ break;
+ case 2:
+ CONCAT3(tls_lib, N, _tbss_2) = val;
+ break;
+ case 3:
+ CONCAT3(tls_lib, N, _tdata_1) = val;
+ break;
+ case 4:
+ CONCAT3(tls_lib, N, _tdata_2) = val;
+ break;
+ }
+}
diff --git a/gdb/testsuite/gdb.base/tls-dlobj.c b/gdb/testsuite/gdb.base/tls-dlobj.c
new file mode 100644
index 0000000..322bdda
--- /dev/null
+++ b/gdb/testsuite/gdb.base/tls-dlobj.c
@@ -0,0 +1,311 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2024 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include <dlfcn.h>
+#include <assert.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+typedef void (*setter_ftype) (int which, int val);
+
+__thread int tls_main_tbss_1;
+__thread int tls_main_tbss_2;
+__thread int tls_main_tdata_1 = 96;
+__thread int tls_main_tdata_2 = 97;
+
+extern void set_tls_lib10_var (int which, int val);
+extern void set_tls_lib11_var (int which, int val);
+
+volatile int data;
+
+static void
+set_tls_main_var (int which, int val)
+{
+ switch (which)
+ {
+ case 1:
+ tls_main_tbss_1 = val;
+ break;
+ case 2:
+ tls_main_tbss_2 = val;
+ break;
+ case 3:
+ tls_main_tdata_1 = val;
+ break;
+ case 4:
+ tls_main_tdata_2 = val;
+ break;
+ }
+}
+
+void
+use_it (int a)
+{
+ data = a;
+}
+
+static void *
+load_dso (char *dso_name, int n, setter_ftype *setterp)
+{
+ char buf[80];
+ void *sym;
+ void *handle = dlopen (dso_name, RTLD_NOW | RTLD_GLOBAL);
+ if (handle == NULL)
+ {
+ fprintf (stderr, "dlopen of DSO '%s' failed: %s\n", dso_name, dlerror ());
+ exit (1);
+ }
+ sprintf (buf, "set_tls_lib%d_var", n);
+ sym = dlsym (handle, buf);
+ assert (sym != NULL);
+ *setterp = sym;
+
+ /* Some libc implementations (for some architectures) refuse to
+ initialize TLS data structures (specifically, the DTV) without
+ first calling dlsym on one of the TLS symbols. */
+ sprintf (buf, "tls_lib%d_tdata_1", n);
+ assert (dlsym (handle, buf) != NULL);
+
+ return handle;
+}
+
+int
+main (int argc, char **argv)
+{
+ int i, status;
+ setter_ftype s0, s1, s2, s3, s4, s10, s11;
+ void *h1 = load_dso (OBJ1, 1, &s1);
+ void *h2 = load_dso (OBJ2, 2, &s2);
+ void *h3 = load_dso (OBJ3, 3, &s3);
+ void *h4 = load_dso (OBJ4, 4, &s4);
+ s0 = set_tls_main_var;
+ s10 = set_tls_lib10_var;
+ s11 = set_tls_lib11_var;
+
+ use_it (0); /* main-breakpoint-1 */
+
+ /* Set TLS variables in main program and all libraries. */
+ for (i = 1; i <= 4; i++)
+ s0 (i, 10 + i);
+ for (i = 1; i <= 4; i++)
+ s1 (i, 110 + i);
+ for (i = 1; i <= 4; i++)
+ s2 (i, 210 + i);
+ for (i = 1; i <= 4; i++)
+ s3 (i, 310 + i);
+ for (i = 1; i <= 4; i++)
+ s4 (i, 410 + i);
+ for (i = 1; i <= 4; i++)
+ s10 (i, 1010 + i);
+ for (i = 1; i <= 4; i++)
+ s11 (i, 1110 + i);
+
+ use_it (0); /* main-breakpoint-2 */
+
+ /* Unload lib2 and lib3. */
+ status = dlclose (h2);
+ assert (status == 0);
+ status = dlclose (h3);
+ assert (status == 0);
+
+ /* Set TLS variables in main program and in libraries which are still
+ loaded. */
+ for (i = 1; i <= 4; i++)
+ s0 (i, 20 + i);
+ for (i = 1; i <= 4; i++)
+ s1 (i, 120 + i);
+ for (i = 1; i <= 4; i++)
+ s4 (i, 420 + i);
+ for (i = 1; i <= 4; i++)
+ s10 (i, 1020 + i);
+ for (i = 1; i <= 4; i++)
+ s11 (i, 1120 + i);
+
+ use_it (0); /* main-breakpoint-3 */
+
+ /* Load lib3. */
+ h3 = load_dso (OBJ3, 3, &s3);
+
+ /* Set TLS vars again; currently, only lib2 is not loaded. */
+ for (i = 1; i <= 4; i++)
+ s0 (i, 30 + i);
+ for (i = 1; i <= 4; i++)
+ s1 (i, 130 + i);
+ for (i = 1; i <= 4; i++)
+ s3 (i, 330 + i);
+ for (i = 1; i <= 4; i++)
+ s4 (i, 430 + i);
+ for (i = 1; i <= 4; i++)
+ s10 (i, 1030 + i);
+ for (i = 1; i <= 4; i++)
+ s11 (i, 1130 + i);
+
+ use_it (0); /* main-breakpoint-4 */
+
+ /* Unload lib1 and lib4; load lib2. */
+ status = dlclose (h1);
+ assert (status == 0);
+ status = dlclose (h4);
+ assert (status == 0);
+ h2 = load_dso (OBJ2, 2, &s2);
+
+ /* Set TLS vars; currently, lib2 and lib3 are loaded,
+ lib1 and lib4 are not. */
+ for (i = 1; i <= 4; i++)
+ s0 (i, 40 + i);
+ for (i = 1; i <= 4; i++)
+ s2 (i, 240 + i);
+ for (i = 1; i <= 4; i++)
+ s3 (i, 340 + i);
+ for (i = 1; i <= 4; i++)
+ s10 (i, 1040 + i);
+ for (i = 1; i <= 4; i++)
+ s11 (i, 1140 + i);
+
+ use_it (0); /* main-breakpoint-5 */
+
+ /* Load lib4 and lib1. Unload lib2. */
+ h4 = load_dso (OBJ4, 4, &s4);
+ h1 = load_dso (OBJ1, 1, &s1);
+ status = dlclose (h2);
+ assert (status == 0);
+
+ /* Set TLS vars; currently, lib1, lib3, and lib4 are loaded;
+ lib2 is not loaded. */
+ for (i = 1; i <= 4; i++)
+ s0 (i, 50 + i);
+ for (i = 1; i <= 4; i++)
+ s1 (i, 150 + i);
+ for (i = 1; i <= 4; i++)
+ s3 (i, 350 + i);
+ for (i = 1; i <= 4; i++)
+ s4 (i, 450 + i);
+ for (i = 1; i <= 4; i++)
+ s10 (i, 1050 + i);
+ for (i = 1; i <= 4; i++)
+ s11 (i, 1150 + i);
+
+ use_it (0); /* main-breakpoint-6 */
+
+ /* Load lib2, unload lib1, lib3, and lib4; then load lib3 again. */
+ h2 = load_dso (OBJ2, 2, &s2);
+ status = dlclose (h1);
+ assert (status == 0);
+ status = dlclose (h3);
+ assert (status == 0);
+ status = dlclose (h4);
+ assert (status == 0);
+ h3 = load_dso (OBJ3, 3, &s3);
+
+ /* Set TLS vars; currently, lib2 and lib3 are loaded;
+ lib1 and lib4 are not loaded. */
+ for (i = 1; i <= 4; i++)
+ s0 (i, 60 + i);
+ for (i = 1; i <= 4; i++)
+ s2 (i, 260 + i);
+ for (i = 1; i <= 4; i++)
+ s3 (i, 360 + i);
+ for (i = 1; i <= 4; i++)
+ s10 (i, 1060 + i);
+ for (i = 1; i <= 4; i++)
+ s11 (i, 1160 + i);
+
+ use_it (0); /* main-breakpoint-7 */
+
+ /* Unload lib3 and lib2, then (re)load lib4, lib3, lib2, and lib1,
+ in that order. */
+ status = dlclose (h3);
+ assert (status == 0);
+ status = dlclose (h2);
+ assert (status == 0);
+ h4 = load_dso (OBJ4, 4, &s4);
+ h3 = load_dso (OBJ3, 3, &s3);
+ h2 = load_dso (OBJ2, 2, &s2);
+ h1 = load_dso (OBJ1, 1, &s1);
+
+ /* Set TLS vars; currently, lib1, lib2, lib3, and lib4 are all
+ loaded. */
+ for (i = 1; i <= 4; i++)
+ s0 (i, 70 + i);
+ for (i = 1; i <= 4; i++)
+ s1 (i, 170 + i);
+ for (i = 1; i <= 4; i++)
+ s2 (i, 270 + i);
+ for (i = 1; i <= 4; i++)
+ s3 (i, 370 + i);
+ for (i = 1; i <= 4; i++)
+ s4 (i, 470 + i);
+ for (i = 1; i <= 4; i++)
+ s10 (i, 1070 + i);
+ for (i = 1; i <= 4; i++)
+ s11 (i, 1170 + i);
+
+ use_it (0); /* main-breakpoint-8 */
+
+ /* Unload lib3, lib1, and lib4. */
+ status = dlclose (h3);
+ assert (status == 0);
+ status = dlclose (h1);
+ assert (status == 0);
+ status = dlclose (h4);
+ assert (status == 0);
+
+ /* Set TLS vars; currently, lib2 is loaded; lib1, lib3, and lib4 are
+ not. */
+ for (i = 1; i <= 4; i++)
+ s0 (i, 80 + i);
+ for (i = 1; i <= 4; i++)
+ s2 (i, 280 + i);
+ for (i = 1; i <= 4; i++)
+ s10 (i, 1080 + i);
+ for (i = 1; i <= 4; i++)
+ s11 (i, 1180 + i);
+
+ use_it (0); /* main-breakpoint-9 */
+
+ /* Load lib3, unload lib2, load lib4. */
+ h3 = load_dso (OBJ3, 3, &s3);
+ status = dlclose (h2);
+ assert (status == 0);
+ h4 = load_dso (OBJ4, 4, &s4);
+
+ /* Set TLS vars; currently, lib3 and lib4 are loaded; lib1 and lib2
+ are not. */
+ for (i = 1; i <= 4; i++)
+ s0 (i, 90 + i);
+ for (i = 1; i <= 4; i++)
+ s3 (i, 390 + i);
+ for (i = 1; i <= 4; i++)
+ s4 (i, 490 + i);
+ for (i = 1; i <= 4; i++)
+ s10 (i, 1090 + i);
+ for (i = 1; i <= 4; i++)
+ s11 (i, 1190 + i);
+
+ use_it (0); /* main-breakpoint-10 */
+
+ /* Attempt to keep variables in the main program from being optimized
+ away. */
+ use_it (tls_main_tbss_1);
+ use_it (tls_main_tbss_2);
+ use_it (tls_main_tdata_1);
+ use_it (tls_main_tdata_2);
+
+ use_it (100); /* main-breakpoint-last */
+
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.base/tls-dlobj.exp b/gdb/testsuite/gdb.base/tls-dlobj.exp
new file mode 100644
index 0000000..02f2ff8
--- /dev/null
+++ b/gdb/testsuite/gdb.base/tls-dlobj.exp
@@ -0,0 +1,378 @@
+# Copyright 2024 Free Software Foundation, Inc.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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.
+
+# Test that the GDB-internal TLS link map to module id mapping code
+# works correctly when debugging a program which is linked against
+# shared objects and which also loads and unloads other shared objects
+# in different orders. For targets which have GDB-internal TLS
+# support, it'll check both GDB-internal TLS support as well as that
+# provided by a helper library such as libthread_db.
+
+source $srcdir/$subdir/tls-common.exp.tcl
+
+require allow_shlib_tests
+
+standard_testfile
+
+set libsrc "${srcdir}/${subdir}/${testfile}-lib.c"
+
+# These will be dlopen'd:
+set lib1obj [standard_output_file "${testfile}1-lib.so"]
+set lib2obj [standard_output_file "${testfile}2-lib.so"]
+set lib3obj [standard_output_file "${testfile}3-lib.so"]
+set lib4obj [standard_output_file "${testfile}4-lib.so"]
+
+# These will be dynamically linked with the main program:
+set lib10obj [standard_output_file "${testfile}10-lib.so"]
+set lib11obj [standard_output_file "${testfile}11-lib.so"]
+
+# Due to problems with some versions of glibc, we expect some tests to
+# fail due to TLS storage not being allocated/initialized. Test
+# command CMD using regular expression RE, and use XFAIL instead of
+# FAIL when the relevant RE is matched and COND is true when evaluated
+# in the upper level.
+
+proc gdb_test_with_xfail { cmd re cond} {
+ gdb_test_multiple $cmd $cmd {
+ -re -wrap $re {
+ pass $gdb_test_name
+ }
+ -re -wrap "The inferior has not yet allocated storage for thread-local variables.*" {
+ if [ uplevel 1 [list expr $cond]] {
+ xfail $gdb_test_name
+ } else {
+ fail $gdb_test_name
+ }
+ }
+ }
+}
+
+proc do_tests {force_internal_tls} {
+ clean_restart $::binfile
+ if ![runto_main] {
+ return
+ }
+
+ if $force_internal_tls {
+ gdb_test_no_output "maint set force-internal-tls-address-lookup on"
+ }
+
+ gdb_breakpoint [gdb_get_line_number "main-breakpoint-1"]
+ gdb_continue_to_breakpoint "main-breakpoint-1"
+
+ with_test_prefix "before assignments" {
+ gdb_test "print tls_main_tbss_1" ".* = 0"
+ gdb_test "print tls_main_tbss_2" ".* = 0"
+ gdb_test "print tls_main_tdata_1" ".* = 96"
+ gdb_test "print tls_main_tdata_2" ".* = 97"
+
+ # For these tests, where we're attempting to access TLS vars
+ # in a dlopen'd library, but before assignment to any of the
+ # vars, so it could happen that storage hasn't been allocated
+ # yet. But it might also work. (When testing against MUSL,
+ # things just work; GLIBC ends to produce the TLS error.) So
+ # accept either the right answer or a TLS error message.
+
+ set tlserr "The inferior has not yet allocated storage for thread-local variables.*"
+ foreach n {1 2 3 4} {
+ gdb_test "print tls_lib${n}_tbss_1" \
+ "0|${tlserr}"
+ gdb_test "print tls_lib${n}_tbss_2" \
+ "0|${tlserr}"
+ gdb_test "print tls_lib${n}_tdata_1" \
+ "96|${tlserr}"
+ gdb_test "print tls_lib${n}_tdata_2" \
+ "97|${tlserr}"
+ }
+ foreach n {10 11} {
+ gdb_test "print tls_lib${n}_tbss_1" ".* = 0"
+ gdb_test "print tls_lib${n}_tbss_2" ".* = 0"
+ gdb_test "print tls_lib${n}_tdata_1" ".* = ${n}96"
+ gdb_test "print tls_lib${n}_tdata_2" ".* = ${n}97"
+ }
+ }
+
+ gdb_breakpoint [gdb_get_line_number "main-breakpoint-2"]
+ gdb_continue_to_breakpoint "main-breakpoint-2"
+
+ with_test_prefix "at main-breakpoint-2" {
+ gdb_test "print tls_main_tbss_1" ".* = 11"
+ gdb_test "print tls_main_tbss_2" ".* = 12"
+ gdb_test "print tls_main_tdata_1" ".* = 13"
+ gdb_test "print tls_main_tdata_2" ".* = 14"
+
+ foreach n {1 2 3 4 10 11} {
+ gdb_test "print tls_lib${n}_tbss_1" ".* = ${n}11"
+ gdb_test "print tls_lib${n}_tbss_2" ".* = ${n}12"
+ gdb_test "print tls_lib${n}_tdata_1" ".* = ${n}13"
+ gdb_test "print tls_lib${n}_tdata_2" ".* = ${n}14"
+ }
+ }
+
+ gdb_breakpoint [gdb_get_line_number "main-breakpoint-3"]
+ gdb_continue_to_breakpoint "main-breakpoint-3"
+
+ # At this point lib2 and lib3 have been unloaded. Also, TLS vars
+ # in remaining libraries have been changed.
+
+ with_test_prefix "at main-breakpoint-3" {
+ gdb_test "print tls_main_tbss_1" ".* = 21"
+ gdb_test "print tls_main_tbss_2" ".* = 22"
+ gdb_test "print tls_main_tdata_1" ".* = 23"
+ gdb_test "print tls_main_tdata_2" ".* = 24"
+
+ foreach n {1 4 10 11} {
+ gdb_test "print tls_lib${n}_tbss_1" ".* = ${n}21"
+ gdb_test "print tls_lib${n}_tbss_2" ".* = ${n}22"
+ gdb_test "print tls_lib${n}_tdata_1" ".* = ${n}23"
+ gdb_test "print tls_lib${n}_tdata_2" ".* = ${n}24"
+ }
+ }
+
+ gdb_breakpoint [gdb_get_line_number "main-breakpoint-4"]
+ gdb_continue_to_breakpoint "main-breakpoint-4"
+
+ # lib3 has been loaded again; lib2 is the only one not loaded.
+
+ with_test_prefix "at main-breakpoint-4" {
+ gdb_test "print tls_main_tbss_1" ".* = 31"
+ gdb_test "print tls_main_tbss_2" ".* = 32"
+ gdb_test "print tls_main_tdata_1" ".* = 33"
+ gdb_test "print tls_main_tdata_2" ".* = 34"
+
+ set cond { $n == 3 }
+ foreach n {1 3 4 10 11} {
+ gdb_test_with_xfail "print tls_lib${n}_tbss_1" ".* = ${n}31" $cond
+ gdb_test_with_xfail "print tls_lib${n}_tbss_2" ".* = ${n}32" $cond
+ gdb_test_with_xfail "print tls_lib${n}_tdata_1" ".* = ${n}33" $cond
+ gdb_test_with_xfail "print tls_lib${n}_tdata_2" ".* = ${n}34" $cond
+ }
+ }
+
+ gdb_breakpoint [gdb_get_line_number "main-breakpoint-5"]
+ gdb_continue_to_breakpoint "main-breakpoint-5"
+
+ # lib2 and lib3 are loaded; lib1 and lib4 are not.
+
+ with_test_prefix "at main-breakpoint-5" {
+ gdb_test "print tls_main_tbss_1" ".* = 41"
+ gdb_test "print tls_main_tbss_2" ".* = 42"
+ gdb_test "print tls_main_tdata_1" ".* = 43"
+ gdb_test "print tls_main_tdata_2" ".* = 44"
+
+ set cond { $n == 2 || $n == 3 }
+ foreach n {2 3 10 11} {
+ gdb_test_with_xfail "print tls_lib${n}_tbss_1" ".* = ${n}41" $cond
+ gdb_test_with_xfail "print tls_lib${n}_tbss_2" ".* = ${n}42" $cond
+ gdb_test_with_xfail "print tls_lib${n}_tdata_1" ".* = ${n}43" $cond
+ gdb_test_with_xfail "print tls_lib${n}_tdata_2" ".* = ${n}44" $cond
+ }
+ }
+
+ gdb_breakpoint [gdb_get_line_number "main-breakpoint-6"]
+ gdb_continue_to_breakpoint "main-breakpoint-6"
+
+ # lib1, lib3 and lib4 are loaded; lib2 is not loaded.
+
+ with_test_prefix "at main-breakpoint-6" {
+ gdb_test "print tls_main_tbss_1" ".* = 51"
+ gdb_test "print tls_main_tbss_2" ".* = 52"
+ gdb_test "print tls_main_tdata_1" ".* = 53"
+ gdb_test "print tls_main_tdata_2" ".* = 54"
+
+ set cond { $n == 1 || $n == 3 || $n == 4}
+ foreach n {1 3 4 10 11} {
+ gdb_test_with_xfail "print tls_lib${n}_tbss_1" ".* = ${n}51" $cond
+ gdb_test_with_xfail "print tls_lib${n}_tbss_2" ".* = ${n}52" $cond
+ gdb_test_with_xfail "print tls_lib${n}_tdata_1" ".* = ${n}53" $cond
+ gdb_test_with_xfail "print tls_lib${n}_tdata_2" ".* = ${n}54" $cond
+ }
+ }
+
+ gdb_breakpoint [gdb_get_line_number "main-breakpoint-7"]
+ gdb_continue_to_breakpoint "main-breakpoint-7"
+
+ # lib2 and lib3 are loaded; lib1 and lib4 are not.
+
+ with_test_prefix "at main-breakpoint-7" {
+ gdb_test "print tls_main_tbss_1" ".* = 61"
+ gdb_test "print tls_main_tbss_2" ".* = 62"
+ gdb_test "print tls_main_tdata_1" ".* = 63"
+ gdb_test "print tls_main_tdata_2" ".* = 64"
+
+ set cond { $n == 2 || $n == 3 }
+ foreach n {2 3 10 11} {
+ gdb_test_with_xfail "print tls_lib${n}_tbss_1" ".* = ${n}61" $cond
+ gdb_test_with_xfail "print tls_lib${n}_tbss_2" ".* = ${n}62" $cond
+ gdb_test_with_xfail "print tls_lib${n}_tdata_1" ".* = ${n}63" $cond
+ gdb_test_with_xfail "print tls_lib${n}_tdata_2" ".* = ${n}64" $cond
+ }
+ }
+
+ gdb_breakpoint [gdb_get_line_number "main-breakpoint-8"]
+ gdb_continue_to_breakpoint "main-breakpoint-8"
+
+ # lib1, lib2, lib3, and lib4 are all loaded.
+
+ with_test_prefix "at main-breakpoint-8" {
+ gdb_test "print tls_main_tbss_1" ".* = 71"
+ gdb_test "print tls_main_tbss_2" ".* = 72"
+ gdb_test "print tls_main_tdata_1" ".* = 73"
+ gdb_test "print tls_main_tdata_2" ".* = 74"
+
+ foreach n {1 2 3 4 10 11} {
+ gdb_test "print tls_lib${n}_tbss_1" ".* = ${n}71"
+ gdb_test "print tls_lib${n}_tbss_2" ".* = ${n}72"
+ gdb_test "print tls_lib${n}_tdata_1" ".* = ${n}73"
+ gdb_test "print tls_lib${n}_tdata_2" ".* = ${n}74"
+ }
+ }
+
+ gdb_breakpoint [gdb_get_line_number "main-breakpoint-9"]
+ gdb_continue_to_breakpoint "main-breakpoint-9"
+
+ # lib2 is loaded; lib1, lib3, and lib4 are not.
+
+ with_test_prefix "at main-breakpoint-9" {
+ gdb_test "print tls_main_tbss_1" ".* = 81"
+ gdb_test "print tls_main_tbss_2" ".* = 82"
+ gdb_test "print tls_main_tdata_1" ".* = 83"
+ gdb_test "print tls_main_tdata_2" ".* = 84"
+
+ foreach n {2 10 11} {
+ gdb_test "print tls_lib${n}_tbss_1" ".* = ${n}81"
+ gdb_test "print tls_lib${n}_tbss_2" ".* = ${n}82"
+ gdb_test "print tls_lib${n}_tdata_1" ".* = ${n}83"
+ gdb_test "print tls_lib${n}_tdata_2" ".* = ${n}84"
+ }
+ }
+
+ gdb_breakpoint [gdb_get_line_number "main-breakpoint-10"]
+ gdb_continue_to_breakpoint "main-breakpoint-10"
+
+ # lib3 and lib4 are loaded; lib1 and lib2 are not.
+
+ with_test_prefix "at main-breakpoint-10" {
+ gdb_test "print tls_main_tbss_1" ".* = 91"
+ gdb_test "print tls_main_tbss_2" ".* = 92"
+ gdb_test "print tls_main_tdata_1" ".* = 93"
+ gdb_test "print tls_main_tdata_2" ".* = 94"
+
+ set cond { $n == 3 || $n == 4 }
+ foreach n {3 4 10 11} {
+ gdb_test_with_xfail "print tls_lib${n}_tbss_1" ".* = ${n}91" $cond
+ gdb_test_with_xfail "print tls_lib${n}_tbss_2" ".* = ${n}92" $cond
+ gdb_test_with_xfail "print tls_lib${n}_tdata_1" ".* = ${n}93" $cond
+ gdb_test_with_xfail "print tls_lib${n}_tdata_2" ".* = ${n}94" $cond
+ }
+ }
+
+ # gdb_interact
+
+ set corefile ${::binfile}.core
+ set core_supported 0
+ if { ![is_remote host] } {
+ set core_supported [gdb_gcore_cmd $corefile "save corefile"]
+ }
+
+ # Finish test early if no core file was made.
+ if !$core_supported {
+ return
+ }
+
+ clean_restart $::binfile
+
+ set core_loaded [gdb_core_cmd $corefile "load corefile"]
+ if { $core_loaded == -1 } {
+ return
+ }
+
+ with_test_prefix "core file" {
+ if $force_internal_tls {
+ gdb_test_no_output "maint set force-internal-tls-address-lookup on"
+ }
+
+ gdb_test "print tls_main_tbss_1" ".* = 91"
+ gdb_test "print tls_main_tbss_2" ".* = 92"
+ gdb_test "print tls_main_tdata_1" ".* = 93"
+ gdb_test "print tls_main_tdata_2" ".* = 94"
+
+ set cond { $n == 3 || $n == 4 }
+ foreach n {3 4 10 11} {
+ gdb_test_with_xfail "print tls_lib${n}_tbss_1" ".* = ${n}91" $cond
+ gdb_test_with_xfail "print tls_lib${n}_tbss_2" ".* = ${n}92" $cond
+ gdb_test_with_xfail "print tls_lib${n}_tdata_1" ".* = ${n}93" $cond
+ gdb_test_with_xfail "print tls_lib${n}_tdata_2" ".* = ${n}94" $cond
+ }
+ }
+}
+
+# Build shared objects for dlopen:
+if { [gdb_compile_shlib $libsrc $lib1obj [list debug additional_flags=-DN=1]] != "" } {
+ untested "failed to compile shared object"
+ return -1
+}
+if { [gdb_compile_shlib $libsrc $lib2obj [list debug additional_flags=-DN=2]] != "" } {
+ untested "failed to compile shared object"
+ return -1
+}
+if { [gdb_compile_shlib $libsrc $lib3obj [list debug additional_flags=-DN=3]] != "" } {
+ untested "failed to compile shared object"
+ return -1
+}
+if { [gdb_compile_shlib $libsrc $lib4obj [list debug additional_flags=-DN=4]] != "" } {
+ untested "failed to compile shared object"
+ return -1
+}
+
+# Build shared objects to link against main program:
+if { [gdb_compile_shlib $libsrc $lib10obj [list debug additional_flags=-DN=10]] != "" } {
+ untested "failed to compile shared object"
+ return -1
+}
+if { [gdb_compile_shlib $libsrc $lib11obj [list debug additional_flags=-DN=11]] != "" } {
+ untested "failed to compile shared object"
+ return -1
+}
+
+# Use gdb_compile_pthreads to build and link the main program for
+# testing. It's also possible to run the tests using plain old
+# gdb_compile, but this adds complexity with setting up additional
+# KFAILs. (When run using GLIBC versions earlier than 2.34, a program
+# that's not dynamically linked against libpthread will lack a working
+# libthread_db, and, therefore, won't be able to access thread local
+# storage without GDB-internal TLS support. Additional complications
+# arise from when testing on x86_64 with -m32, which tends to work
+# okay on GLIBC 2.34 and newer, but not older versions. It gets messy
+# to properly sort out all of these cases.)
+#
+# This test was originally written to do it both ways, i.e. with both
+# both gdb_compile and gdb_compile_pthreads, but the point of this
+# test is to check that the link map address to TLS module id mapping
+# code works correctly in programs which use lots of dlopen and
+# dlclose calls in various orders - and that can be done using just
+# gdb_compile_pthreads.
+
+if { [gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable \
+ [list debug shlib_load \
+ shlib=${lib10obj} \
+ shlib=${lib11obj} \
+ additional_flags=-DOBJ1=\"${lib1obj}\" \
+ additional_flags=-DOBJ2=\"${lib2obj}\" \
+ additional_flags=-DOBJ3=\"${lib3obj}\" \
+ additional_flags=-DOBJ4=\"${lib4obj}\" \
+ ]] != "" } {
+ untested "failed to compile"
+} else {
+ foreach_with_prefix force_internal_tls $internal_tls_iters {
+ do_tests $force_internal_tls
+ }
+}
diff --git a/gdb/testsuite/gdb.base/tls-multiobj.c b/gdb/testsuite/gdb.base/tls-multiobj.c
new file mode 100644
index 0000000..10e67da
--- /dev/null
+++ b/gdb/testsuite/gdb.base/tls-multiobj.c
@@ -0,0 +1,89 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2024 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+__thread int tls_main_tbss_1;
+__thread int tls_main_tbss_2;
+__thread int tls_main_tdata_1 = 96;
+__thread int tls_main_tdata_2 = 97;
+
+extern __thread int tls_lib1_tbss_1;
+extern __thread int tls_lib1_tbss_2;
+extern __thread int tls_lib1_tdata_1;
+extern __thread int tls_lib1_tdata_2;
+
+extern __thread int tls_lib2_tbss_1;
+extern __thread int tls_lib2_tbss_2;
+extern __thread int tls_lib2_tdata_1;
+extern __thread int tls_lib2_tdata_2;
+
+extern __thread int tls_lib3_tbss_1;
+extern __thread int tls_lib3_tbss_2;
+extern __thread int tls_lib3_tdata_1;
+extern __thread int tls_lib3_tdata_2;
+
+extern void lib1_func ();
+extern void lib2_func ();
+extern void lib3_func ();
+
+volatile int data;
+
+void
+use_it (int a)
+{
+ data = a;
+}
+
+int
+main (int argc, char **argv)
+{
+ use_it (-1);
+
+ tls_main_tbss_1 = 51; /* main-breakpoint-1 */
+ tls_main_tbss_2 = 52;
+ tls_main_tdata_1 = 53;
+ tls_main_tdata_2 = 54;
+
+ tls_lib1_tbss_1 = 151;
+ tls_lib1_tbss_2 = 152;
+ tls_lib1_tdata_1 = 153;
+ tls_lib1_tdata_2 = 154;
+
+ tls_lib2_tbss_1 = 251;
+ tls_lib2_tbss_2 = 252;
+ tls_lib2_tdata_1 = 253;
+ tls_lib2_tdata_2 = 254;
+
+ tls_lib3_tbss_1 = 351;
+ tls_lib3_tbss_2 = 352;
+ tls_lib3_tdata_1 = 353;
+ tls_lib3_tdata_2 = 354;
+
+ lib1_func ();
+ lib2_func ();
+ lib3_func ();
+
+ /* Attempt to keep variables in the main program from being optimized
+ away. */
+ use_it (tls_main_tbss_1);
+ use_it (tls_main_tbss_2);
+ use_it (tls_main_tdata_1);
+ use_it (tls_main_tdata_2);
+
+ use_it (100); /* main-breakpoint-2 */
+
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.base/tls-multiobj.exp b/gdb/testsuite/gdb.base/tls-multiobj.exp
new file mode 100644
index 0000000..97acb33
--- /dev/null
+++ b/gdb/testsuite/gdb.base/tls-multiobj.exp
@@ -0,0 +1,230 @@
+# Copyright 2024 Free Software Foundation, Inc.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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.
+
+# Using different compilation/linking scenarios, attempt to access
+# thread-local variables in a non-threaded program using multiple
+# shared objects.
+
+source $srcdir/$subdir/tls-common.exp.tcl
+
+standard_testfile
+
+set lib1src "${srcdir}/${subdir}/${testfile}1.c"
+set lib2src "${srcdir}/${subdir}/${testfile}2.c"
+set lib3src "${srcdir}/${subdir}/${testfile}3.c"
+
+set lib1obj [standard_output_file "${testfile}1-lib.so"]
+set lib2obj [standard_output_file "${testfile}2-lib.so"]
+set lib3obj [standard_output_file "${testfile}3-lib.so"]
+
+proc do_tests {force_internal_tls {do_kfail_tls_access 0}} {
+ clean_restart $::binfile
+ if ![runto_main] {
+ return
+ }
+
+ if $force_internal_tls {
+ gdb_test_no_output "maint set force-internal-tls-address-lookup on"
+ }
+
+ if { $do_kfail_tls_access && [istarget "*-*-linux*"] } {
+ # Turn off do_kfail_tls_access when libthread_db is loaded.
+ # This can happen for the default case when testing x86_64
+ # w/ -m32 using glibc versions 2.34 or newer.
+ gdb_test_multiple "maint check libthread-db" "Check for loaded libthread_db" {
+ -re -wrap "libthread_db integrity checks passed." {
+ set do_kfail_tls_access 0
+ pass $gdb_test_name
+ }
+ -re -wrap "No libthread_db loaded" {
+ pass $gdb_test_name
+ }
+ }
+ # Also turn off do_kfail_tls_access when connected to a
+ # gdbserver and we observe that accessing a TLS variable
+ # works.
+ if [target_is_gdbserver] {
+ gdb_test_multiple "print tls_main_tbss_1" \
+ "Check TLS accessibility when connected to a gdbserver" {
+ -re -wrap "= 0" {
+ set do_kfail_tls_access 0
+ pass $gdb_test_name
+ }
+ -re -wrap "Remote target failed to process qGetTLSAddr request" {
+ pass $gdb_test_name
+ }
+ }
+ }
+ }
+
+ gdb_breakpoint [gdb_get_line_number "main-breakpoint-1"]
+ gdb_continue_to_breakpoint "main-breakpoint-1"
+
+ set t $do_kfail_tls_access
+ set m "tls not available"
+ with_test_prefix "before assignments" {
+ gdb_test_with_kfail "print tls_main_tbss_1" ".* = 0" $t $m
+ gdb_test_with_kfail "print tls_main_tbss_2" ".* = 0" $t $m
+ gdb_test_with_kfail "print tls_main_tdata_1" ".* = 96" $t $m
+ gdb_test_with_kfail "print tls_main_tdata_2" ".* = 97" $t $m
+
+ gdb_test_with_kfail "print tls_lib1_tbss_1" ".* = 0" $t $m
+ gdb_test_with_kfail "print tls_lib1_tbss_2" ".* = 0" $t $m
+ gdb_test_with_kfail "print tls_lib1_tdata_1" ".* = 196" $t $m
+ gdb_test_with_kfail "print tls_lib1_tdata_2" ".* = 197" $t $m
+
+ gdb_test_with_kfail "print tls_lib2_tbss_1" ".* = 0" $t $m
+ gdb_test_with_kfail "print tls_lib2_tbss_2" ".* = 0" $t $m
+ gdb_test_with_kfail "print tls_lib2_tdata_1" ".* = 296" $t $m
+ gdb_test_with_kfail "print tls_lib2_tdata_2" ".* = 297" $t $m
+
+ gdb_test_with_kfail "print tls_lib3_tbss_1" ".* = 0" $t $m
+ gdb_test_with_kfail "print tls_lib3_tbss_2" ".* = 0" $t $m
+ gdb_test_with_kfail "print tls_lib3_tdata_1" ".* = 396" $t $m
+ gdb_test_with_kfail "print tls_lib3_tdata_2" ".* = 397" $t $m
+ }
+
+ gdb_breakpoint [gdb_get_line_number "main-breakpoint-2"]
+ gdb_continue_to_breakpoint "main-breakpoint-2"
+
+ with_test_prefix "after assignments" {
+ gdb_test_with_kfail "print tls_main_tbss_1" ".* = 51" $t $m
+ gdb_test_with_kfail "print tls_main_tbss_2" ".* = 52" $t $m
+ gdb_test_with_kfail "print tls_main_tdata_1" ".* = 53" $t $m
+ gdb_test_with_kfail "print tls_main_tdata_2" ".* = 54" $t $m
+
+ gdb_test_with_kfail "print tls_lib1_tbss_1" ".* = 151" $t $m
+ gdb_test_with_kfail "print tls_lib1_tbss_2" ".* = 152" $t $m
+ gdb_test_with_kfail "print tls_lib1_tdata_1" ".* = 153" $t $m
+ gdb_test_with_kfail "print tls_lib1_tdata_2" ".* = 154" $t $m
+
+ gdb_test_with_kfail "print tls_lib2_tbss_1" ".* = 251" $t $m
+ gdb_test_with_kfail "print tls_lib2_tbss_2" ".* = 252" $t $m
+ gdb_test_with_kfail "print tls_lib2_tdata_1" ".* = 253" $t $m
+ gdb_test_with_kfail "print tls_lib2_tdata_2" ".* = 254" $t $m
+
+ gdb_test_with_kfail "print tls_lib3_tbss_1" ".* = 351" $t $m
+ gdb_test_with_kfail "print tls_lib3_tbss_2" ".* = 352" $t $m
+ gdb_test_with_kfail "print tls_lib3_tdata_1" ".* = 353" $t $m
+ gdb_test_with_kfail "print tls_lib3_tdata_2" ".* = 354" $t $m
+ }
+
+ set corefile ${::binfile}.core
+ set core_supported 0
+ if { ![is_remote host] } {
+ set core_supported [gdb_gcore_cmd $corefile "save corefile"]
+ }
+
+ # Finish test early if no core file was made.
+ if !$core_supported {
+ return
+ }
+
+ clean_restart $::binfile
+
+ set core_loaded [gdb_core_cmd $corefile "load corefile"]
+ if { $core_loaded == -1 } {
+ return
+ }
+
+ with_test_prefix "core file" {
+ if $force_internal_tls {
+ gdb_test_no_output "maint set force-internal-tls-address-lookup on"
+ }
+
+ gdb_test_with_kfail "print tls_main_tbss_1" ".* = 51" $t $m
+ gdb_test_with_kfail "print tls_main_tbss_2" ".* = 52" $t $m
+ gdb_test_with_kfail "print tls_main_tdata_1" ".* = 53" $t $m
+ gdb_test_with_kfail "print tls_main_tdata_2" ".* = 54" $t $m
+
+ gdb_test_with_kfail "print tls_lib1_tbss_1" ".* = 151" $t $m
+ gdb_test_with_kfail "print tls_lib1_tbss_2" ".* = 152" $t $m
+ gdb_test_with_kfail "print tls_lib1_tdata_1" ".* = 153" $t $m
+ gdb_test_with_kfail "print tls_lib1_tdata_2" ".* = 154" $t $m
+
+ gdb_test_with_kfail "print tls_lib2_tbss_1" ".* = 251" $t $m
+ gdb_test_with_kfail "print tls_lib2_tbss_2" ".* = 252" $t $m
+ gdb_test_with_kfail "print tls_lib2_tdata_1" ".* = 253" $t $m
+ gdb_test_with_kfail "print tls_lib2_tdata_2" ".* = 254" $t $m
+
+ gdb_test_with_kfail "print tls_lib3_tbss_1" ".* = 351" $t $m
+ gdb_test_with_kfail "print tls_lib3_tbss_2" ".* = 352" $t $m
+ gdb_test_with_kfail "print tls_lib3_tdata_1" ".* = 353" $t $m
+ gdb_test_with_kfail "print tls_lib3_tdata_2" ".* = 354" $t $m
+ }
+}
+
+if { [gdb_compile_shlib $lib1src $lib1obj {debug}] != "" } {
+ untested "failed to compile shared object"
+ return -1
+}
+if { [gdb_compile_shlib $lib2src $lib2obj {debug}] != "" } {
+ untested "failed to compile shared object"
+ return -1
+}
+if { [gdb_compile_shlib $lib3src $lib3obj {debug}] != "" } {
+ untested "failed to compile shared object"
+ return -1
+}
+
+# Certain linux target architectures implement support for internal
+# TLS lookup which is used when thread stratum support (via
+# libthread_db) is missing or when the linux-only GDB maintenance
+# setting 'force-internal-tls-address-lookup' is 'on'. Thus for some
+# of the testing scenarios, such as statically linked executables,
+# this internal support will be used. Set 'do_kfail_tls_access' to 1
+# for those architectures which don't implement internal tls support.
+if {[istarget *-*-linux*]
+ && ![is_any_target {*}$internal_tls_linux_targets]} {
+ set do_kfail_tls_access 1
+} elseif {[istarget *-*-linux*] && [is_x86_like_target]} {
+ # This covers the case of x86_64 with -m32:
+ set do_kfail_tls_access 1
+} else {
+ set do_kfail_tls_access 0
+}
+
+set binprefix $binfile
+
+with_test_prefix "default" {
+ set binfile $binprefix-default
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable \
+ [list debug shlib=${lib1obj} \
+ shlib=${lib2obj} \
+ shlib=${lib3obj}]] != "" } {
+ untested "failed to compile"
+ } else {
+ foreach_with_prefix force_internal_tls $internal_tls_iters {
+ # Depending on glibc version, it might not be appropriate
+ # for do_kfail_tls_access to be set here. That will be
+ # handled in 'do_tests', disabling it if necessary.
+ #
+ # Specifically, glibc versions 2.34 and later have the
+ # thread library (and libthread_db availability) in
+ # programs not linked against libpthread.so
+ do_tests $force_internal_tls $do_kfail_tls_access
+ }
+ }
+}
+
+with_test_prefix "pthreads" {
+ set binfile $binprefix-pthreads
+ if { [gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable \
+ [list debug shlib=${lib1obj} \
+ shlib=${lib2obj} \
+ shlib=${lib3obj}]] != "" } {
+ untested "failed to compile"
+ } else {
+ foreach_with_prefix force_internal_tls $internal_tls_iters {
+ do_tests $force_internal_tls
+ }
+ }
+}
diff --git a/gdb/testsuite/gdb.base/tls-multiobj1.c b/gdb/testsuite/gdb.base/tls-multiobj1.c
new file mode 100644
index 0000000..86e7222
--- /dev/null
+++ b/gdb/testsuite/gdb.base/tls-multiobj1.c
@@ -0,0 +1,26 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2024 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+__thread int tls_lib1_tbss_1;
+__thread int tls_lib1_tbss_2;
+__thread int tls_lib1_tdata_1 = 196;
+__thread int tls_lib1_tdata_2 = 197;
+
+void
+lib1_func ()
+{
+}
diff --git a/gdb/testsuite/gdb.base/tls-multiobj2.c b/gdb/testsuite/gdb.base/tls-multiobj2.c
new file mode 100644
index 0000000..cea0709
--- /dev/null
+++ b/gdb/testsuite/gdb.base/tls-multiobj2.c
@@ -0,0 +1,26 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2024 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+__thread int tls_lib2_tbss_1;
+__thread int tls_lib2_tbss_2;
+__thread int tls_lib2_tdata_1 = 296;
+__thread int tls_lib2_tdata_2 = 297;
+
+void
+lib2_func ()
+{
+}
diff --git a/gdb/testsuite/gdb.base/tls-multiobj3.c b/gdb/testsuite/gdb.base/tls-multiobj3.c
new file mode 100644
index 0000000..bb0f239
--- /dev/null
+++ b/gdb/testsuite/gdb.base/tls-multiobj3.c
@@ -0,0 +1,26 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2024 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+__thread int tls_lib3_tbss_1;
+__thread int tls_lib3_tbss_2;
+__thread int tls_lib3_tdata_1 = 396;
+__thread int tls_lib3_tdata_2 = 397;
+
+void
+lib3_func ()
+{
+}
diff --git a/gdb/testsuite/gdb.base/tls-nothreads.c b/gdb/testsuite/gdb.base/tls-nothreads.c
new file mode 100644
index 0000000..b3aaa33
--- /dev/null
+++ b/gdb/testsuite/gdb.base/tls-nothreads.c
@@ -0,0 +1,57 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2024 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+__thread int tls_tbss_1;
+__thread int tls_tbss_2;
+__thread int tls_tbss_3;
+
+__thread int tls_tdata_1 = 21;
+__thread int tls_tdata_2 = 22;
+__thread int tls_tdata_3 = 23;
+
+volatile int data;
+
+void
+use_it (int a)
+{
+ data = a;
+}
+
+int
+main (int argc, char **argv)
+{
+ use_it (-1);
+
+ tls_tbss_1 = 24; /* main-breakpoint-1 */
+ tls_tbss_2 = 25;
+ tls_tbss_3 = 26;
+
+ tls_tdata_1 = 42;
+ tls_tdata_2 = 43;
+ tls_tdata_3 = 44;
+
+ use_it (tls_tbss_1);
+ use_it (tls_tbss_2);
+ use_it (tls_tbss_3);
+ use_it (tls_tdata_1);
+ use_it (tls_tdata_2);
+ use_it (tls_tdata_3);
+
+ use_it (100); /* main-breakpoint-2 */
+
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.base/tls-nothreads.exp b/gdb/testsuite/gdb.base/tls-nothreads.exp
new file mode 100644
index 0000000..92a5cd9
--- /dev/null
+++ b/gdb/testsuite/gdb.base/tls-nothreads.exp
@@ -0,0 +1,248 @@
+# Copyright 2024 Free Software Foundation, Inc.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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.
+
+# Using different compilation/linking scenarios, attempt to access
+# thread-local variables in a non-threaded program. Also test that
+# GDB internal TLS lookup works correctly.
+
+source $srcdir/$subdir/tls-common.exp.tcl
+
+standard_testfile
+
+proc do_tests {force_internal_tls {do_kfail_tls_access 0}} {
+ clean_restart $::binfile
+ if ![runto_main] {
+ return
+ }
+
+ if $force_internal_tls {
+ gdb_test_no_output "maint set force-internal-tls-address-lookup on"
+ }
+
+ if { $do_kfail_tls_access && [istarget "*-*-linux*"] } {
+ # Turn off do_kfail_tls_access when libthread_db is loaded.
+ # This can happen for the default case when testing x86_64
+ # w/ -m32 using glibc versions 2.34 or newer.
+ gdb_test_multiple "maint check libthread-db" "Check for loaded libthread_db" {
+ -re -wrap "libthread_db integrity checks passed." {
+ set do_kfail_tls_access 0
+ pass $gdb_test_name
+ }
+ -re -wrap "No libthread_db loaded" {
+ pass $gdb_test_name
+ }
+ }
+ # Also turn off do_kfail_tls_access when connected to a
+ # gdbserver and we observe that accessing a TLS variable
+ # works.
+ if [target_is_gdbserver] {
+ gdb_test_multiple "print tls_tbss_1" "Check TLS accessibility when connected to a gdbserver" {
+ -re -wrap "= 0" {
+ set do_kfail_tls_access 0
+ pass $gdb_test_name
+ }
+ -re -wrap "Remote target failed to process qGetTLSAddr request" {
+ pass $gdb_test_name
+ }
+ }
+ }
+ }
+
+ gdb_breakpoint [gdb_get_line_number "main-breakpoint-1"]
+ gdb_continue_to_breakpoint "main-breakpoint-1"
+
+ set t $do_kfail_tls_access
+ set m "tls not available"
+ with_test_prefix "before assignments" {
+ gdb_test_with_kfail "print tls_tbss_1" ".* = 0" $t $m
+ gdb_test_with_kfail "print tls_tbss_2" ".* = 0" $t $m
+ gdb_test_with_kfail "print tls_tbss_3" ".* = 0" $t $m
+
+ gdb_test_with_kfail "print tls_tdata_1" ".* = 21" $t $m
+ gdb_test_with_kfail "print tls_tdata_2" ".* = 22" $t $m
+ gdb_test_with_kfail "print tls_tdata_3" ".* = 23" $t $m
+ }
+
+ gdb_breakpoint [gdb_get_line_number "main-breakpoint-2"]
+ gdb_continue_to_breakpoint "main-breakpoint-2"
+
+ with_test_prefix "after assignments" {
+ gdb_test_with_kfail "print tls_tbss_1" ".* = 24" $t $m
+ gdb_test_with_kfail "print tls_tbss_2" ".* = 25" $t $m
+ gdb_test_with_kfail "print tls_tbss_3" ".* = 26" $t $m
+
+ gdb_test_with_kfail "print tls_tdata_1" ".* = 42" $t $m
+ gdb_test_with_kfail "print tls_tdata_2" ".* = 43" $t $m
+ gdb_test_with_kfail "print tls_tdata_3" ".* = 44" $t $m
+ }
+
+ # Make a core file now, but save testing using it until the end
+ # in case core files are not supported.
+ set corefile ${::binfile}.core
+ set core_supported 0
+ if { ![is_remote host] } {
+ set core_supported [gdb_gcore_cmd $corefile "save corefile"]
+ }
+
+ # Now continue to end and see what happens when attempting to
+ # access a TLS variable when the program is no longer running.
+ gdb_continue_to_end
+ with_test_prefix "after exit" {
+ gdb_test "print tls_tbss_1" \
+ "Cannot (?:read|find address of TLS symbol) `tls_tbss_1' without registers"
+ }
+
+ with_test_prefix "stripped" {
+ set binfile_stripped "${::binfile}.stripped"
+ set objcopy [gdb_find_objcopy]
+ set cmd "$objcopy --strip-debug ${::binfile} $binfile_stripped"
+ if ![catch "exec $cmd" cmd_output] {
+ clean_restart $binfile_stripped
+ if ![runto_main] {
+ return
+ }
+
+ if $force_internal_tls {
+ gdb_test_no_output "maint set force-internal-tls-address-lookup on"
+ }
+
+ # While there are no debug (e.g. DWARF) symbols, there
+ # are minimal symbols, so we should be able to place a
+ # breakpoint in use_it and continue to it. Continuing
+ # twice should put us past the assignments, at which point
+ # we can see if the TLS variables are still accessible.
+ gdb_test "break use_it" "Breakpoint 2 at $::hex"
+ gdb_test "continue" "Breakpoint 2, $::hex in use_it.*"
+ gdb_test "continue" "Breakpoint 2, $::hex in use_it.*" "continue 2"
+
+ # Note that a cast has been added in order to avoid the
+ # "...has unknown type; cast it to its declared type"
+ # problem.
+ gdb_test_with_kfail "print (int) tls_tbss_1" ".* = 24" $t $m
+ gdb_test_with_kfail "print (int) tls_tbss_2" ".* = 25" $t $m
+ gdb_test_with_kfail "print (int) tls_tbss_3" ".* = 26" $t $m
+
+ gdb_test_with_kfail "print (int) tls_tdata_1" ".* = 42" $t $m
+ gdb_test_with_kfail "print (int) tls_tdata_2" ".* = 43" $t $m
+ gdb_test_with_kfail "print (int) tls_tdata_3" ".* = 44" $t $m
+
+ # Get rid of the "use_it" breakpoint
+ gdb_test_no_output "del 2"
+
+ # Continue to program exit
+ gdb_continue_to_end
+
+ # TLS variables should not be accessible after program exit
+ # (This case initially caused GDB to crash during development
+ # of GDB-internal TLS lookup support.)
+ with_test_prefix "after exit" {
+ gdb_test "print (int) tls_tbss_1" \
+ "Cannot find address of TLS symbol `tls_tbss_1' without registers"
+ }
+ }
+ }
+
+ # Finish test early if no core file was made.
+ if !$core_supported {
+ return
+ }
+
+ clean_restart $::binfile
+
+ set core_loaded [gdb_core_cmd $corefile "load corefile"]
+ if { $core_loaded == -1 } {
+ return
+ }
+
+ with_test_prefix "core file" {
+ if $force_internal_tls {
+ gdb_test_no_output "maint set force-internal-tls-address-lookup on"
+ }
+
+ gdb_test_with_kfail "print tls_tbss_1" ".* = 24" $t $m
+ gdb_test_with_kfail "print tls_tbss_2" ".* = 25" $t $m
+ gdb_test_with_kfail "print tls_tbss_3" ".* = 26" $t $m
+
+ gdb_test_with_kfail "print tls_tdata_1" ".* = 42" $t $m
+ gdb_test_with_kfail "print tls_tdata_2" ".* = 43" $t $m
+ gdb_test_with_kfail "print tls_tdata_3" ".* = 44" $t $m
+ }
+}
+
+# Certain linux target architectures implement support for internal
+# TLS lookup which is used when thread stratum support (via
+# libthread_db) is missing or when the linux-only GDB maintenance
+# setting 'force-internal-tls-address-lookup' is 'on'. Thus for some
+# of the testing scenarios, such as statically linked executables,
+# this internal support will be used. Set 'do_kfail_tls_access' to 1
+# for those architectures which don't implement internal TLS support.
+if {[istarget *-*-linux*]
+ && ![is_any_target {*}$internal_tls_linux_targets]} {
+ set do_kfail_tls_access 1
+} elseif {[istarget *-*-linux*] && [is_x86_like_target]} {
+ # This covers the case of x86_64 with -m32:
+ set do_kfail_tls_access 1
+} else {
+ set do_kfail_tls_access 0
+}
+
+set binprefix $binfile
+
+with_test_prefix "default" {
+ set binfile $binprefix-default
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+ untested "failed to compile"
+ } else {
+ foreach_with_prefix force_internal_tls $internal_tls_iters {
+ # Depending on glibc version, it might not be appropriate
+ # for do_kfail_tls_access to be set here. That will be
+ # handled in 'do_tests', disabling it if necessary.
+ #
+ # Specifically, glibc versions 2.34 and later have the
+ # thread library (and libthread_db availability) in
+ # programs not linked against libpthread.so
+ do_tests $force_internal_tls $do_kfail_tls_access
+ }
+ }
+}
+
+with_test_prefix "static" {
+ set binfile $binprefix-static
+ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug "additional_flags=-static"}] != "" } {
+ untested "failed to compile"
+ } else {
+ foreach_with_prefix force_internal_tls $internal_tls_iters {
+ do_tests $force_internal_tls $do_kfail_tls_access
+ }
+ }
+}
+
+with_test_prefix "pthreads" {
+ set binfile $binprefix-pthreads
+ if { [gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+ untested "failed to compile"
+ } else {
+ foreach_with_prefix force_internal_tls $internal_tls_iters {
+ do_tests $force_internal_tls
+ }
+ }
+}
+
+with_test_prefix "pthreads-static" {
+ set binfile $binprefix-pthreads-static
+ if { [gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug "additional_flags=-static"}] != "" } {
+ untested "failed to compile"
+ } else {
+ foreach_with_prefix force_internal_tls $internal_tls_iters {
+ do_tests $force_internal_tls $do_kfail_tls_access
+ }
+ }
+}
diff --git a/gdb/testsuite/gdb.base/trace-commands.exp b/gdb/testsuite/gdb.base/trace-commands.exp
index 1cabb20..d6732a3 100644
--- a/gdb/testsuite/gdb.base/trace-commands.exp
+++ b/gdb/testsuite/gdb.base/trace-commands.exp
@@ -1,4 +1,4 @@
-# Copyright 2006-2024 Free Software Foundation, Inc.
+# Copyright 2006-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/traced-thread.c b/gdb/testsuite/gdb.base/traced-thread.c
index c06b0b2..d056d50 100644
--- a/gdb/testsuite/gdb.base/traced-thread.c
+++ b/gdb/testsuite/gdb.base/traced-thread.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/traced-thread.exp b/gdb/testsuite/gdb.base/traced-thread.exp
index 9b5c67a..b27549d 100644
--- a/gdb/testsuite/gdb.base/traced-thread.exp
+++ b/gdb/testsuite/gdb.base/traced-thread.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/twice.exp b/gdb/testsuite/gdb.base/twice.exp
index 46093fd..6f49c46 100644
--- a/gdb/testsuite/gdb.base/twice.exp
+++ b/gdb/testsuite/gdb.base/twice.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/type-opaque-lib.c b/gdb/testsuite/gdb.base/type-opaque-lib.c
index 70626cb..a3c363d 100644
--- a/gdb/testsuite/gdb.base/type-opaque-lib.c
+++ b/gdb/testsuite/gdb.base/type-opaque-lib.c
@@ -1,6 +1,6 @@
/* Test resolving of an opaque type from the loaded shared library.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/type-opaque-main.c b/gdb/testsuite/gdb.base/type-opaque-main.c
index 4b67d14..375ed70 100644
--- a/gdb/testsuite/gdb.base/type-opaque-main.c
+++ b/gdb/testsuite/gdb.base/type-opaque-main.c
@@ -1,6 +1,6 @@
/* Test resolving of an opaque type from the loaded shared library.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/type-opaque.exp b/gdb/testsuite/gdb.base/type-opaque.exp
index 01ed4a0..da060b9 100644
--- a/gdb/testsuite/gdb.base/type-opaque.exp
+++ b/gdb/testsuite/gdb.base/type-opaque.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/ui-redirect.exp b/gdb/testsuite/gdb.base/ui-redirect.exp
index ed10916..24742b8 100644
--- a/gdb/testsuite/gdb.base/ui-redirect.exp
+++ b/gdb/testsuite/gdb.base/ui-redirect.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/unload.c b/gdb/testsuite/gdb.base/unload.c
index 7173de8..28b744d 100644
--- a/gdb/testsuite/gdb.base/unload.c
+++ b/gdb/testsuite/gdb.base/unload.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/unload.exp b/gdb/testsuite/gdb.base/unload.exp
index 8f129c7..0761f27 100644
--- a/gdb/testsuite/gdb.base/unload.exp
+++ b/gdb/testsuite/gdb.base/unload.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/unloadshr.c b/gdb/testsuite/gdb.base/unloadshr.c
index 708e9bc..e48de39 100644
--- a/gdb/testsuite/gdb.base/unloadshr.c
+++ b/gdb/testsuite/gdb.base/unloadshr.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/unloadshr2.c b/gdb/testsuite/gdb.base/unloadshr2.c
index f35a196..1bc6abd 100644
--- a/gdb/testsuite/gdb.base/unloadshr2.c
+++ b/gdb/testsuite/gdb.base/unloadshr2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/until-nodebug.exp b/gdb/testsuite/gdb.base/until-nodebug.exp
index 6445a6c..9d8d097 100644
--- a/gdb/testsuite/gdb.base/until-nodebug.exp
+++ b/gdb/testsuite/gdb.base/until-nodebug.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/until-trailing-insns.c b/gdb/testsuite/gdb.base/until-trailing-insns.c
index 4ddcf39..3f6d416 100644
--- a/gdb/testsuite/gdb.base/until-trailing-insns.c
+++ b/gdb/testsuite/gdb.base/until-trailing-insns.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/until-trailing-insns.exp b/gdb/testsuite/gdb.base/until-trailing-insns.exp
index ffd5df8..a3701f2 100644
--- a/gdb/testsuite/gdb.base/until-trailing-insns.exp
+++ b/gdb/testsuite/gdb.base/until-trailing-insns.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/until.exp b/gdb/testsuite/gdb.base/until.exp
index 046ccdb..a4e626e 100644
--- a/gdb/testsuite/gdb.base/until.exp
+++ b/gdb/testsuite/gdb.base/until.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/unwind-on-each-insn-amd64-2.exp b/gdb/testsuite/gdb.base/unwind-on-each-insn-amd64-2.exp
index b187b56..51601f9 100644
--- a/gdb/testsuite/gdb.base/unwind-on-each-insn-amd64-2.exp
+++ b/gdb/testsuite/gdb.base/unwind-on-each-insn-amd64-2.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/unwind-on-each-insn-amd64.exp b/gdb/testsuite/gdb.base/unwind-on-each-insn-amd64.exp
index 0a2cd95..c874930 100644
--- a/gdb/testsuite/gdb.base/unwind-on-each-insn-amd64.exp
+++ b/gdb/testsuite/gdb.base/unwind-on-each-insn-amd64.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/unwind-on-each-insn-foo.c b/gdb/testsuite/gdb.base/unwind-on-each-insn-foo.c
index 5591eea..5798a69 100644
--- a/gdb/testsuite/gdb.base/unwind-on-each-insn-foo.c
+++ b/gdb/testsuite/gdb.base/unwind-on-each-insn-foo.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/unwind-on-each-insn-i386.exp b/gdb/testsuite/gdb.base/unwind-on-each-insn-i386.exp
index 7d00a1e..ad3b702 100644
--- a/gdb/testsuite/gdb.base/unwind-on-each-insn-i386.exp
+++ b/gdb/testsuite/gdb.base/unwind-on-each-insn-i386.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/unwind-on-each-insn.c b/gdb/testsuite/gdb.base/unwind-on-each-insn.c
index dd1d367..16fca03 100644
--- a/gdb/testsuite/gdb.base/unwind-on-each-insn.c
+++ b/gdb/testsuite/gdb.base/unwind-on-each-insn.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/unwind-on-each-insn.exp b/gdb/testsuite/gdb.base/unwind-on-each-insn.exp
index 5f1a045..b826fa9 100644
--- a/gdb/testsuite/gdb.base/unwind-on-each-insn.exp
+++ b/gdb/testsuite/gdb.base/unwind-on-each-insn.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/unwind-on-each-insn.exp.tcl b/gdb/testsuite/gdb.base/unwind-on-each-insn.exp.tcl
index ceedfea..9318d59 100644
--- a/gdb/testsuite/gdb.base/unwind-on-each-insn.exp.tcl
+++ b/gdb/testsuite/gdb.base/unwind-on-each-insn.exp.tcl
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/unwindonsignal.c b/gdb/testsuite/gdb.base/unwindonsignal.c
index 4de1bde..3addb44 100644
--- a/gdb/testsuite/gdb.base/unwindonsignal.c
+++ b/gdb/testsuite/gdb.base/unwindonsignal.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/unwindonsignal.exp b/gdb/testsuite/gdb.base/unwindonsignal.exp
index 3179355..2d402fe 100644
--- a/gdb/testsuite/gdb.base/unwindonsignal.exp
+++ b/gdb/testsuite/gdb.base/unwindonsignal.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/utf8-identifiers.c b/gdb/testsuite/gdb.base/utf8-identifiers.c
index f887459..e0c3fd3 100644
--- a/gdb/testsuite/gdb.base/utf8-identifiers.c
+++ b/gdb/testsuite/gdb.base/utf8-identifiers.c
@@ -2,7 +2,7 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/utf8-identifiers.exp b/gdb/testsuite/gdb.base/utf8-identifiers.exp
index 0f9c6a3..fe868e5 100644
--- a/gdb/testsuite/gdb.base/utf8-identifiers.exp
+++ b/gdb/testsuite/gdb.base/utf8-identifiers.exp
@@ -2,7 +2,7 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/valgrind-bt.c b/gdb/testsuite/gdb.base/valgrind-bt.c
index cd03723..b0aea95 100644
--- a/gdb/testsuite/gdb.base/valgrind-bt.c
+++ b/gdb/testsuite/gdb.base/valgrind-bt.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/valgrind-bt.exp b/gdb/testsuite/gdb.base/valgrind-bt.exp
index b3f3c09..f885419 100644
--- a/gdb/testsuite/gdb.base/valgrind-bt.exp
+++ b/gdb/testsuite/gdb.base/valgrind-bt.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/valgrind-disp-step.c b/gdb/testsuite/gdb.base/valgrind-disp-step.c
index b95b5f4..6350ec6 100644
--- a/gdb/testsuite/gdb.base/valgrind-disp-step.c
+++ b/gdb/testsuite/gdb.base/valgrind-disp-step.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/valgrind-disp-step.exp b/gdb/testsuite/gdb.base/valgrind-disp-step.exp
index 00918d6..d76c3b4 100644
--- a/gdb/testsuite/gdb.base/valgrind-disp-step.exp
+++ b/gdb/testsuite/gdb.base/valgrind-disp-step.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/valgrind-infcall-2.c b/gdb/testsuite/gdb.base/valgrind-infcall-2.c
index cb77aca..89f18e8 100644
--- a/gdb/testsuite/gdb.base/valgrind-infcall-2.c
+++ b/gdb/testsuite/gdb.base/valgrind-infcall-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/valgrind-infcall-2.exp b/gdb/testsuite/gdb.base/valgrind-infcall-2.exp
index 857e434..bc8a4bd 100644
--- a/gdb/testsuite/gdb.base/valgrind-infcall-2.exp
+++ b/gdb/testsuite/gdb.base/valgrind-infcall-2.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/valgrind-infcall.c b/gdb/testsuite/gdb.base/valgrind-infcall.c
index 1903941..c3e025a 100644
--- a/gdb/testsuite/gdb.base/valgrind-infcall.c
+++ b/gdb/testsuite/gdb.base/valgrind-infcall.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/valgrind-infcall.exp b/gdb/testsuite/gdb.base/valgrind-infcall.exp
index 229425e..11cd49d 100644
--- a/gdb/testsuite/gdb.base/valgrind-infcall.exp
+++ b/gdb/testsuite/gdb.base/valgrind-infcall.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/value-double-free.c b/gdb/testsuite/gdb.base/value-double-free.c
index ebf4726..0332f8d 100644
--- a/gdb/testsuite/gdb.base/value-double-free.c
+++ b/gdb/testsuite/gdb.base/value-double-free.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/value-double-free.exp b/gdb/testsuite/gdb.base/value-double-free.exp
index e577152..c3fbbb6 100644
--- a/gdb/testsuite/gdb.base/value-double-free.exp
+++ b/gdb/testsuite/gdb.base/value-double-free.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/value-history-unavailable.c b/gdb/testsuite/gdb.base/value-history-unavailable.c
index b11498e..5ee20e4 100644
--- a/gdb/testsuite/gdb.base/value-history-unavailable.c
+++ b/gdb/testsuite/gdb.base/value-history-unavailable.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/value-history-unavailable.exp b/gdb/testsuite/gdb.base/value-history-unavailable.exp
index 8dc25db..b17764e 100644
--- a/gdb/testsuite/gdb.base/value-history-unavailable.exp
+++ b/gdb/testsuite/gdb.base/value-history-unavailable.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/varargs.exp b/gdb/testsuite/gdb.base/varargs.exp
index 6923ca8..a34a578 100644
--- a/gdb/testsuite/gdb.base/varargs.exp
+++ b/gdb/testsuite/gdb.base/varargs.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/vdso-warning.c b/gdb/testsuite/gdb.base/vdso-warning.c
index c38538d..120c08d 100644
--- a/gdb/testsuite/gdb.base/vdso-warning.c
+++ b/gdb/testsuite/gdb.base/vdso-warning.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/vdso-warning.exp b/gdb/testsuite/gdb.base/vdso-warning.exp
index cf7fe9b..ea5f492 100644
--- a/gdb/testsuite/gdb.base/vdso-warning.exp
+++ b/gdb/testsuite/gdb.base/vdso-warning.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/vfork-follow-parent.c b/gdb/testsuite/gdb.base/vfork-follow-parent.c
index ca0f07a..6889ebf 100644
--- a/gdb/testsuite/gdb.base/vfork-follow-parent.c
+++ b/gdb/testsuite/gdb.base/vfork-follow-parent.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/vfork-follow-parent.exp b/gdb/testsuite/gdb.base/vfork-follow-parent.exp
index d9fa88b..8cb785d 100644
--- a/gdb/testsuite/gdb.base/vfork-follow-parent.exp
+++ b/gdb/testsuite/gdb.base/vfork-follow-parent.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -19,6 +19,8 @@
# schedule-multiple on" or "set detach-on-fork on". Test these two resolution
# methods.
+require allow_fork_tests
+
standard_testfile .c vforked-prog.c
set binfile ${testfile}-exit
diff --git a/gdb/testsuite/gdb.base/vforked-prog.c b/gdb/testsuite/gdb.base/vforked-prog.c
index 02dd9a2..6222b14 100644
--- a/gdb/testsuite/gdb.base/vforked-prog.c
+++ b/gdb/testsuite/gdb.base/vforked-prog.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1997-2024 Free Software Foundation, Inc.
+ Copyright 1997-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/vla-datatypes.c b/gdb/testsuite/gdb.base/vla-datatypes.c
index 6241e7e..859929a 100644
--- a/gdb/testsuite/gdb.base/vla-datatypes.c
+++ b/gdb/testsuite/gdb.base/vla-datatypes.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/vla-datatypes.exp b/gdb/testsuite/gdb.base/vla-datatypes.exp
index b46340a..4a08de3 100644
--- a/gdb/testsuite/gdb.base/vla-datatypes.exp
+++ b/gdb/testsuite/gdb.base/vla-datatypes.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/vla-optimized-out.c b/gdb/testsuite/gdb.base/vla-optimized-out.c
index b83b2bf..24ec103 100644
--- a/gdb/testsuite/gdb.base/vla-optimized-out.c
+++ b/gdb/testsuite/gdb.base/vla-optimized-out.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/vla-optimized-out.exp b/gdb/testsuite/gdb.base/vla-optimized-out.exp
index b57e474..3119097 100644
--- a/gdb/testsuite/gdb.base/vla-optimized-out.exp
+++ b/gdb/testsuite/gdb.base/vla-optimized-out.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/vla-ptr.c b/gdb/testsuite/gdb.base/vla-ptr.c
index 31bca8d..58823df 100644
--- a/gdb/testsuite/gdb.base/vla-ptr.c
+++ b/gdb/testsuite/gdb.base/vla-ptr.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/vla-ptr.exp b/gdb/testsuite/gdb.base/vla-ptr.exp
index df1b8f0..6db0b9a 100644
--- a/gdb/testsuite/gdb.base/vla-ptr.exp
+++ b/gdb/testsuite/gdb.base/vla-ptr.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/vla-sideeffect.c b/gdb/testsuite/gdb.base/vla-sideeffect.c
index 15cf5c3..11367aa 100644
--- a/gdb/testsuite/gdb.base/vla-sideeffect.c
+++ b/gdb/testsuite/gdb.base/vla-sideeffect.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/vla-sideeffect.exp b/gdb/testsuite/gdb.base/vla-sideeffect.exp
index 8215ec2..942d111 100644
--- a/gdb/testsuite/gdb.base/vla-sideeffect.exp
+++ b/gdb/testsuite/gdb.base/vla-sideeffect.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/vla-struct-fields.c b/gdb/testsuite/gdb.base/vla-struct-fields.c
index bbd0197..62716ea 100644
--- a/gdb/testsuite/gdb.base/vla-struct-fields.c
+++ b/gdb/testsuite/gdb.base/vla-struct-fields.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/vla-struct-fields.exp b/gdb/testsuite/gdb.base/vla-struct-fields.exp
index deb66fa..68f9269 100644
--- a/gdb/testsuite/gdb.base/vla-struct-fields.exp
+++ b/gdb/testsuite/gdb.base/vla-struct-fields.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/vla-stub-define.c b/gdb/testsuite/gdb.base/vla-stub-define.c
index 2cc6f09..14b83ba 100644
--- a/gdb/testsuite/gdb.base/vla-stub-define.c
+++ b/gdb/testsuite/gdb.base/vla-stub-define.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/vla-stub.c b/gdb/testsuite/gdb.base/vla-stub.c
index 169469d..babab1d 100644
--- a/gdb/testsuite/gdb.base/vla-stub.c
+++ b/gdb/testsuite/gdb.base/vla-stub.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/vla-stub.exp b/gdb/testsuite/gdb.base/vla-stub.exp
index 11b4b48..274f821 100644
--- a/gdb/testsuite/gdb.base/vla-stub.exp
+++ b/gdb/testsuite/gdb.base/vla-stub.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/volatile.exp b/gdb/testsuite/gdb.base/volatile.exp
index ef9a615..35aa1cf 100644
--- a/gdb/testsuite/gdb.base/volatile.exp
+++ b/gdb/testsuite/gdb.base/volatile.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/warning.exp b/gdb/testsuite/gdb.base/warning.exp
index 4d0878e..65b42e7 100644
--- a/gdb/testsuite/gdb.base/warning.exp
+++ b/gdb/testsuite/gdb.base/warning.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watch-before-fork.c b/gdb/testsuite/gdb.base/watch-before-fork.c
index 34a5553..d2108d5 100644
--- a/gdb/testsuite/gdb.base/watch-before-fork.c
+++ b/gdb/testsuite/gdb.base/watch-before-fork.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watch-before-fork.exp b/gdb/testsuite/gdb.base/watch-before-fork.exp
index 6cf06df..509561e 100644
--- a/gdb/testsuite/gdb.base/watch-before-fork.exp
+++ b/gdb/testsuite/gdb.base/watch-before-fork.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@
# This test uses "awatch".
require allow_hw_watchpoint_access_tests
+require allow_fork_tests
+
standard_testfile
if {[build_executable "failed to prepare" $testfile $srcfile debug]} {
diff --git a/gdb/testsuite/gdb.base/watch-bitfields.c b/gdb/testsuite/gdb.base/watch-bitfields.c
index 6e62b27..cc967a5 100644
--- a/gdb/testsuite/gdb.base/watch-bitfields.c
+++ b/gdb/testsuite/gdb.base/watch-bitfields.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watch-bitfields.exp b/gdb/testsuite/gdb.base/watch-bitfields.exp
index 1c0d808..b53f343 100644
--- a/gdb/testsuite/gdb.base/watch-bitfields.exp
+++ b/gdb/testsuite/gdb.base/watch-bitfields.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watch-cond-infcall.c b/gdb/testsuite/gdb.base/watch-cond-infcall.c
index 8ea0d6c..feaef8b 100644
--- a/gdb/testsuite/gdb.base/watch-cond-infcall.c
+++ b/gdb/testsuite/gdb.base/watch-cond-infcall.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watch-cond-infcall.exp b/gdb/testsuite/gdb.base/watch-cond-infcall.exp
index 874f6d2..301fd6c 100644
--- a/gdb/testsuite/gdb.base/watch-cond-infcall.exp
+++ b/gdb/testsuite/gdb.base/watch-cond-infcall.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watch-cond.c b/gdb/testsuite/gdb.base/watch-cond.c
index e934151..4cde9cc 100644
--- a/gdb/testsuite/gdb.base/watch-cond.c
+++ b/gdb/testsuite/gdb.base/watch-cond.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watch-cond.exp b/gdb/testsuite/gdb.base/watch-cond.exp
index 6a6deac..0990f53 100644
--- a/gdb/testsuite/gdb.base/watch-cond.exp
+++ b/gdb/testsuite/gdb.base/watch-cond.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watch-non-mem.c b/gdb/testsuite/gdb.base/watch-non-mem.c
index 82ac976..37efe19 100644
--- a/gdb/testsuite/gdb.base/watch-non-mem.c
+++ b/gdb/testsuite/gdb.base/watch-non-mem.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watch-non-mem.exp b/gdb/testsuite/gdb.base/watch-non-mem.exp
index 98c2085..5915e7f 100644
--- a/gdb/testsuite/gdb.base/watch-non-mem.exp
+++ b/gdb/testsuite/gdb.base/watch-non-mem.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watch-read.c b/gdb/testsuite/gdb.base/watch-read.c
index 694cf67..e66e0f9 100644
--- a/gdb/testsuite/gdb.base/watch-read.c
+++ b/gdb/testsuite/gdb.base/watch-read.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watch-read.exp b/gdb/testsuite/gdb.base/watch-read.exp
index f56d84d..8e4d8ba 100644
--- a/gdb/testsuite/gdb.base/watch-read.exp
+++ b/gdb/testsuite/gdb.base/watch-read.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watch-vfork.c b/gdb/testsuite/gdb.base/watch-vfork.c
index 03747be..ef9771a 100644
--- a/gdb/testsuite/gdb.base/watch-vfork.c
+++ b/gdb/testsuite/gdb.base/watch-vfork.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watch-vfork.exp b/gdb/testsuite/gdb.base/watch-vfork.exp
index f7e268f..503727d 100644
--- a/gdb/testsuite/gdb.base/watch-vfork.exp
+++ b/gdb/testsuite/gdb.base/watch-vfork.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -17,6 +17,8 @@
standard_testfile .c
+require allow_fork_tests
+
if { [build_executable ${testfile}.exp ${testfile} $srcfile {debug}] } {
untested "failed to compile"
return -1
diff --git a/gdb/testsuite/gdb.base/watch_thread_num.c b/gdb/testsuite/gdb.base/watch_thread_num.c
index 9413881..87230cf 100644
--- a/gdb/testsuite/gdb.base/watch_thread_num.c
+++ b/gdb/testsuite/gdb.base/watch_thread_num.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Copyright 1992, 1993, 1994, 1995, 1999, 2002, 2003, 2007, 2008, 2009
Free Software Foundation, Inc.
diff --git a/gdb/testsuite/gdb.base/watch_thread_num.exp b/gdb/testsuite/gdb.base/watch_thread_num.exp
index 577059b..4a5c1c2 100644
--- a/gdb/testsuite/gdb.base/watch_thread_num.exp
+++ b/gdb/testsuite/gdb.base/watch_thread_num.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-cond-gone-stripped.c b/gdb/testsuite/gdb.base/watchpoint-cond-gone-stripped.c
index a33f99a..ca88d76 100644
--- a/gdb/testsuite/gdb.base/watchpoint-cond-gone-stripped.c
+++ b/gdb/testsuite/gdb.base/watchpoint-cond-gone-stripped.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-cond-gone.c b/gdb/testsuite/gdb.base/watchpoint-cond-gone.c
index 2679ddd..4c51a80 100644
--- a/gdb/testsuite/gdb.base/watchpoint-cond-gone.c
+++ b/gdb/testsuite/gdb.base/watchpoint-cond-gone.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-cond-gone.exp b/gdb/testsuite/gdb.base/watchpoint-cond-gone.exp
index 3d8bb5b..21b60fc 100644
--- a/gdb/testsuite/gdb.base/watchpoint-cond-gone.exp
+++ b/gdb/testsuite/gdb.base/watchpoint-cond-gone.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-delete.c b/gdb/testsuite/gdb.base/watchpoint-delete.c
index 706d8b3..a95bb10 100644
--- a/gdb/testsuite/gdb.base/watchpoint-delete.c
+++ b/gdb/testsuite/gdb.base/watchpoint-delete.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-delete.exp b/gdb/testsuite/gdb.base/watchpoint-delete.exp
index c15133b..3013b70 100644
--- a/gdb/testsuite/gdb.base/watchpoint-delete.exp
+++ b/gdb/testsuite/gdb.base/watchpoint-delete.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-hw-attach.c b/gdb/testsuite/gdb.base/watchpoint-hw-attach.c
index 765c2f0..0eed7b3 100644
--- a/gdb/testsuite/gdb.base/watchpoint-hw-attach.c
+++ b/gdb/testsuite/gdb.base/watchpoint-hw-attach.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-hw-attach.exp b/gdb/testsuite/gdb.base/watchpoint-hw-attach.exp
index ff3585a..fa63edb 100644
--- a/gdb/testsuite/gdb.base/watchpoint-hw-attach.exp
+++ b/gdb/testsuite/gdb.base/watchpoint-hw-attach.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -26,29 +26,18 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug]} {
return -1
}
-if ![runto_main] {
- return -1
-}
+set test_spawn_id [spawn_wait_for_attach $binfile]
+set testpid [spawn_id_get_pid $test_spawn_id]
-# Run to the point where mypid in the test program has been
-# populated.
-gdb_breakpoint [gdb_get_line_number "pidacquired"]
-gdb_continue_to_breakpoint "pidacquired"
-
-# Get the PID of the test process.
-set testpid [get_integer_valueof "mypid" 0]
+gdb_test "attach $testpid" "Attaching to program: .*, process $testpid.*" "attach once"
gdb_test "detach" "Detaching from program: .*, process $testpid\r\n\\\[Inferior $decimal \\(process $testpid\\) detached\\\]"
-if {$testpid == ""} {
- return -1
-}
-
# A clean restart is needed to force the hardware watchpoint setup
# logic to run post attach rather than post inferior launch.
clean_restart $binfile
-gdb_test "attach $testpid" "Attaching to program: .*, process $testpid.*" "attach"
+gdb_test "attach $testpid" "Attaching to program: .*, process $testpid.*" "attach twice"
# Ensure the test program is in the top frame so the required
# variables are in scope.
@@ -62,3 +51,5 @@ gdb_test "watch watched_variable" \
gdb_test "continue" \
"continue.*Continuing.*\.Hardware watchpoint $decimal: watched_variable.*Old value = 0.*New value = 4.*watched_variable\\);"
+
+kill_wait_spawned_process $test_spawn_id
diff --git a/gdb/testsuite/gdb.base/watchpoint-hw-hit-once.c b/gdb/testsuite/gdb.base/watchpoint-hw-hit-once.c
index 8fabd51..3d88b10 100644
--- a/gdb/testsuite/gdb.base/watchpoint-hw-hit-once.c
+++ b/gdb/testsuite/gdb.base/watchpoint-hw-hit-once.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-hw-hit-once.exp b/gdb/testsuite/gdb.base/watchpoint-hw-hit-once.exp
index 2948c90..ba60c90 100644
--- a/gdb/testsuite/gdb.base/watchpoint-hw-hit-once.exp
+++ b/gdb/testsuite/gdb.base/watchpoint-hw-hit-once.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-hw.c b/gdb/testsuite/gdb.base/watchpoint-hw.c
index 13d395d..0288b91 100644
--- a/gdb/testsuite/gdb.base/watchpoint-hw.c
+++ b/gdb/testsuite/gdb.base/watchpoint-hw.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-hw.exp b/gdb/testsuite/gdb.base/watchpoint-hw.exp
index 0755c2e..820a6db 100644
--- a/gdb/testsuite/gdb.base/watchpoint-hw.exp
+++ b/gdb/testsuite/gdb.base/watchpoint-hw.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-reuse-slot.c b/gdb/testsuite/gdb.base/watchpoint-reuse-slot.c
index 2838785..4b04765 100644
--- a/gdb/testsuite/gdb.base/watchpoint-reuse-slot.c
+++ b/gdb/testsuite/gdb.base/watchpoint-reuse-slot.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-reuse-slot.exp b/gdb/testsuite/gdb.base/watchpoint-reuse-slot.exp
index 6409279..994228f 100644
--- a/gdb/testsuite/gdb.base/watchpoint-reuse-slot.exp
+++ b/gdb/testsuite/gdb.base/watchpoint-reuse-slot.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-running.c b/gdb/testsuite/gdb.base/watchpoint-running.c
index 3ba1cb2..8cd7c44 100644
--- a/gdb/testsuite/gdb.base/watchpoint-running.c
+++ b/gdb/testsuite/gdb.base/watchpoint-running.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-running.exp b/gdb/testsuite/gdb.base/watchpoint-running.exp
index abba43f..1a5f9c3 100644
--- a/gdb/testsuite/gdb.base/watchpoint-running.exp
+++ b/gdb/testsuite/gdb.base/watchpoint-running.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-solib-shr.c b/gdb/testsuite/gdb.base/watchpoint-solib-shr.c
index 373bf92..d573569 100644
--- a/gdb/testsuite/gdb.base/watchpoint-solib-shr.c
+++ b/gdb/testsuite/gdb.base/watchpoint-solib-shr.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-solib.c b/gdb/testsuite/gdb.base/watchpoint-solib.c
index 1a50256..25114ed 100644
--- a/gdb/testsuite/gdb.base/watchpoint-solib.c
+++ b/gdb/testsuite/gdb.base/watchpoint-solib.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-solib.exp b/gdb/testsuite/gdb.base/watchpoint-solib.exp
index bafc759..28b8d08 100644
--- a/gdb/testsuite/gdb.base/watchpoint-solib.exp
+++ b/gdb/testsuite/gdb.base/watchpoint-solib.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.c b/gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.c
index 66208f5..83a2508 100644
--- a/gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.c
+++ b/gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.exp b/gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.exp
index 154514f..2bedcaa 100644
--- a/gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.exp
+++ b/gdb/testsuite/gdb.base/watchpoint-stops-at-right-insn.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-unaligned.c b/gdb/testsuite/gdb.base/watchpoint-unaligned.c
index 6f70925..d3c1349 100644
--- a/gdb/testsuite/gdb.base/watchpoint-unaligned.c
+++ b/gdb/testsuite/gdb.base/watchpoint-unaligned.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint-unaligned.exp b/gdb/testsuite/gdb.base/watchpoint-unaligned.exp
index 999dd3a..9220402 100644
--- a/gdb/testsuite/gdb.base/watchpoint-unaligned.exp
+++ b/gdb/testsuite/gdb.base/watchpoint-unaligned.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoint.exp b/gdb/testsuite/gdb.base/watchpoint.exp
index 2449663..fba8ac6 100644
--- a/gdb/testsuite/gdb.base/watchpoint.exp
+++ b/gdb/testsuite/gdb.base/watchpoint.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoints.c b/gdb/testsuite/gdb.base/watchpoints.c
index b72f8ab..d2232e1 100644
--- a/gdb/testsuite/gdb.base/watchpoints.c
+++ b/gdb/testsuite/gdb.base/watchpoints.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/watchpoints.exp b/gdb/testsuite/gdb.base/watchpoints.exp
index ae05fb6..37baa5e 100644
--- a/gdb/testsuite/gdb.base/watchpoints.exp
+++ b/gdb/testsuite/gdb.base/watchpoints.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/wchar.c b/gdb/testsuite/gdb.base/wchar.c
index 24e0a6f..3863614 100644
--- a/gdb/testsuite/gdb.base/wchar.c
+++ b/gdb/testsuite/gdb.base/wchar.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/wchar.exp b/gdb/testsuite/gdb.base/wchar.exp
index 0fc97cf..70f738c 100644
--- a/gdb/testsuite/gdb.base/wchar.exp
+++ b/gdb/testsuite/gdb.base/wchar.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/weaklib1.c b/gdb/testsuite/gdb.base/weaklib1.c
index 9d64f67..b5f9491 100644
--- a/gdb/testsuite/gdb.base/weaklib1.c
+++ b/gdb/testsuite/gdb.base/weaklib1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2006-2024 Free Software Foundation, Inc.
+ Copyright 2006-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/weaklib2.c b/gdb/testsuite/gdb.base/weaklib2.c
index b40a0f9..2987454 100644
--- a/gdb/testsuite/gdb.base/weaklib2.c
+++ b/gdb/testsuite/gdb.base/weaklib2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2006-2024 Free Software Foundation, Inc.
+ Copyright 2006-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/whatis-exp.exp b/gdb/testsuite/gdb.base/whatis-exp.exp
index 1f8522f..7b2ff0e 100644
--- a/gdb/testsuite/gdb.base/whatis-exp.exp
+++ b/gdb/testsuite/gdb.base/whatis-exp.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/whatis-ptype-typedefs.c b/gdb/testsuite/gdb.base/whatis-ptype-typedefs.c
index fb11ca2..1e87907 100644
--- a/gdb/testsuite/gdb.base/whatis-ptype-typedefs.c
+++ b/gdb/testsuite/gdb.base/whatis-ptype-typedefs.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/whatis-ptype-typedefs.exp b/gdb/testsuite/gdb.base/whatis-ptype-typedefs.exp
index 7088299..3709cff 100644
--- a/gdb/testsuite/gdb.base/whatis-ptype-typedefs.exp
+++ b/gdb/testsuite/gdb.base/whatis-ptype-typedefs.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/whatis.c b/gdb/testsuite/gdb.base/whatis.c
index 53a4879..9c115ae 100644
--- a/gdb/testsuite/gdb.base/whatis.c
+++ b/gdb/testsuite/gdb.base/whatis.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 1992-2024 Free Software Foundation, Inc.
+ Copyright 1992-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/whatis.exp b/gdb/testsuite/gdb.base/whatis.exp
index 7111983..10f5320 100644
--- a/gdb/testsuite/gdb.base/whatis.exp
+++ b/gdb/testsuite/gdb.base/whatis.exp
@@ -1,4 +1,4 @@
-# Copyright 1988-2024 Free Software Foundation, Inc.
+# Copyright 1988-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/with-mf-inc.c b/gdb/testsuite/gdb.base/with-mf-inc.c
index eeef8b3..c1443d7 100644
--- a/gdb/testsuite/gdb.base/with-mf-inc.c
+++ b/gdb/testsuite/gdb.base/with-mf-inc.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/with-mf-main.c b/gdb/testsuite/gdb.base/with-mf-main.c
index 2de1205..dde2e1e 100644
--- a/gdb/testsuite/gdb.base/with-mf-main.c
+++ b/gdb/testsuite/gdb.base/with-mf-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/with-mf.exp b/gdb/testsuite/gdb.base/with-mf.exp
index 6f2a1d8..564d5d7 100644
--- a/gdb/testsuite/gdb.base/with-mf.exp
+++ b/gdb/testsuite/gdb.base/with-mf.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/with.c b/gdb/testsuite/gdb.base/with.c
index 67028e3..c7d9850 100644
--- a/gdb/testsuite/gdb.base/with.c
+++ b/gdb/testsuite/gdb.base/with.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/with.exp b/gdb/testsuite/gdb.base/with.exp
index 2e54825..a9b4a6c 100644
--- a/gdb/testsuite/gdb.base/with.exp
+++ b/gdb/testsuite/gdb.base/with.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/wrap-line.exp b/gdb/testsuite/gdb.base/wrap-line.exp
index d5001bf..2ba2123 100644
--- a/gdb/testsuite/gdb.base/wrap-line.exp
+++ b/gdb/testsuite/gdb.base/wrap-line.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/write_mem.c b/gdb/testsuite/gdb.base/write_mem.c
index 33d0419..3de5bf9 100644
--- a/gdb/testsuite/gdb.base/write_mem.c
+++ b/gdb/testsuite/gdb.base/write_mem.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/write_mem.exp b/gdb/testsuite/gdb.base/write_mem.exp
index 3f2380c..3a07813 100644
--- a/gdb/testsuite/gdb.base/write_mem.exp
+++ b/gdb/testsuite/gdb.base/write_mem.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.base/wrong_frame_bt_full-main.c b/gdb/testsuite/gdb.base/wrong_frame_bt_full-main.c
index f960b47..eef098a 100644
--- a/gdb/testsuite/gdb.base/wrong_frame_bt_full-main.c
+++ b/gdb/testsuite/gdb.base/wrong_frame_bt_full-main.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/wrong_frame_bt_full-opaque.c b/gdb/testsuite/gdb.base/wrong_frame_bt_full-opaque.c
index 0c519c5..d7daaf5 100644
--- a/gdb/testsuite/gdb.base/wrong_frame_bt_full-opaque.c
+++ b/gdb/testsuite/gdb.base/wrong_frame_bt_full-opaque.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.base/wrong_frame_bt_full.exp b/gdb/testsuite/gdb.base/wrong_frame_bt_full.exp
index ddc34d4..fc4e9d5 100644
--- a/gdb/testsuite/gdb.base/wrong_frame_bt_full.exp
+++ b/gdb/testsuite/gdb.base/wrong_frame_bt_full.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/buffer-size.exp b/gdb/testsuite/gdb.btrace/buffer-size.exp
index 1008fa8..3a54baa 100644
--- a/gdb/testsuite/gdb.btrace/buffer-size.exp
+++ b/gdb/testsuite/gdb.btrace/buffer-size.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <markus.t.metzger@intel.com>
#
diff --git a/gdb/testsuite/gdb.btrace/cpu.exp b/gdb/testsuite/gdb.btrace/cpu.exp
index 26ffa09..b93882f 100644
--- a/gdb/testsuite/gdb.btrace/cpu.exp
+++ b/gdb/testsuite/gdb.btrace/cpu.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/data.c b/gdb/testsuite/gdb.btrace/data.c
index 352031a..4916290 100644
--- a/gdb/testsuite/gdb.btrace/data.c
+++ b/gdb/testsuite/gdb.btrace/data.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>
diff --git a/gdb/testsuite/gdb.btrace/data.exp b/gdb/testsuite/gdb.btrace/data.exp
index 30a946c..d42d017 100644
--- a/gdb/testsuite/gdb.btrace/data.exp
+++ b/gdb/testsuite/gdb.btrace/data.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <markus.t.metzger@intel.com>
#
diff --git a/gdb/testsuite/gdb.btrace/delta.exp b/gdb/testsuite/gdb.btrace/delta.exp
index 4e4d06a..0807c58 100644
--- a/gdb/testsuite/gdb.btrace/delta.exp
+++ b/gdb/testsuite/gdb.btrace/delta.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <markus.t.metzger@intel.com>
#
diff --git a/gdb/testsuite/gdb.btrace/dlopen-dso.c b/gdb/testsuite/gdb.btrace/dlopen-dso.c
index faf2d2f..a4abc0b 100644
--- a/gdb/testsuite/gdb.btrace/dlopen-dso.c
+++ b/gdb/testsuite/gdb.btrace/dlopen-dso.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/dlopen.c b/gdb/testsuite/gdb.btrace/dlopen.c
index 469fed8..e9f8109 100644
--- a/gdb/testsuite/gdb.btrace/dlopen.c
+++ b/gdb/testsuite/gdb.btrace/dlopen.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/dlopen.exp b/gdb/testsuite/gdb.btrace/dlopen.exp
index d0e5a65..092f4b0 100644
--- a/gdb/testsuite/gdb.btrace/dlopen.exp
+++ b/gdb/testsuite/gdb.btrace/dlopen.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/enable-new-thread.c b/gdb/testsuite/gdb.btrace/enable-new-thread.c
index 52be9a3..598dd74 100644
--- a/gdb/testsuite/gdb.btrace/enable-new-thread.c
+++ b/gdb/testsuite/gdb.btrace/enable-new-thread.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/enable-new-thread.exp b/gdb/testsuite/gdb.btrace/enable-new-thread.exp
index dbbe6a7..ee7c023 100644
--- a/gdb/testsuite/gdb.btrace/enable-new-thread.exp
+++ b/gdb/testsuite/gdb.btrace/enable-new-thread.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/enable-running.c b/gdb/testsuite/gdb.btrace/enable-running.c
index ce1f8f6..f25641e 100644
--- a/gdb/testsuite/gdb.btrace/enable-running.c
+++ b/gdb/testsuite/gdb.btrace/enable-running.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/enable-running.exp b/gdb/testsuite/gdb.btrace/enable-running.exp
index 0d3555a..1daa005 100644
--- a/gdb/testsuite/gdb.btrace/enable-running.exp
+++ b/gdb/testsuite/gdb.btrace/enable-running.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/enable.c b/gdb/testsuite/gdb.btrace/enable.c
index fb7f0ea..a2a2559 100644
--- a/gdb/testsuite/gdb.btrace/enable.c
+++ b/gdb/testsuite/gdb.btrace/enable.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <christian.himpel@intel.com>
diff --git a/gdb/testsuite/gdb.btrace/enable.exp b/gdb/testsuite/gdb.btrace/enable.exp
index 4e39c07..ad62733 100644
--- a/gdb/testsuite/gdb.btrace/enable.exp
+++ b/gdb/testsuite/gdb.btrace/enable.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <christian.himpel@intel.com>
#
diff --git a/gdb/testsuite/gdb.btrace/event-tracing-gap.c b/gdb/testsuite/gdb.btrace/event-tracing-gap.c
index b04f74d..fb30fdd 100644
--- a/gdb/testsuite/gdb.btrace/event-tracing-gap.c
+++ b/gdb/testsuite/gdb.btrace/event-tracing-gap.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/event-tracing-gap.exp b/gdb/testsuite/gdb.btrace/event-tracing-gap.exp
index d33e8e8..4ada8bb 100644
--- a/gdb/testsuite/gdb.btrace/event-tracing-gap.exp
+++ b/gdb/testsuite/gdb.btrace/event-tracing-gap.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/event-tracing.exp b/gdb/testsuite/gdb.btrace/event-tracing.exp
index 1a5eee0..3bd4db5 100644
--- a/gdb/testsuite/gdb.btrace/event-tracing.exp
+++ b/gdb/testsuite/gdb.btrace/event-tracing.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/exception.cc b/gdb/testsuite/gdb.btrace/exception.cc
index 855218f..9a621bd 100644
--- a/gdb/testsuite/gdb.btrace/exception.cc
+++ b/gdb/testsuite/gdb.btrace/exception.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>
diff --git a/gdb/testsuite/gdb.btrace/exception.exp b/gdb/testsuite/gdb.btrace/exception.exp
index 6ffdd2b..67e9fbd 100755
--- a/gdb/testsuite/gdb.btrace/exception.exp
+++ b/gdb/testsuite/gdb.btrace/exception.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <markus.t.metzger@intel.com>
#
diff --git a/gdb/testsuite/gdb.btrace/function_call_history.c b/gdb/testsuite/gdb.btrace/function_call_history.c
index a6a6bec..f078530 100644
--- a/gdb/testsuite/gdb.btrace/function_call_history.c
+++ b/gdb/testsuite/gdb.btrace/function_call_history.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <christian.himpel@intel.com>
diff --git a/gdb/testsuite/gdb.btrace/function_call_history.exp b/gdb/testsuite/gdb.btrace/function_call_history.exp
index ce3d1a0..e233936 100644
--- a/gdb/testsuite/gdb.btrace/function_call_history.exp
+++ b/gdb/testsuite/gdb.btrace/function_call_history.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <christian.himpel@intel.com>
#
diff --git a/gdb/testsuite/gdb.btrace/gcore.exp b/gdb/testsuite/gdb.btrace/gcore.exp
index ff607b5..b9e96d4 100644
--- a/gdb/testsuite/gdb.btrace/gcore.exp
+++ b/gdb/testsuite/gdb.btrace/gcore.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <markus.t.metzger@intel.com>
#
diff --git a/gdb/testsuite/gdb.btrace/i386-ptwrite.S b/gdb/testsuite/gdb.btrace/i386-ptwrite.S
index 5c649cf..f0b6fa9 100644
--- a/gdb/testsuite/gdb.btrace/i386-ptwrite.S
+++ b/gdb/testsuite/gdb.btrace/i386-ptwrite.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/i686-record_goto.S b/gdb/testsuite/gdb.btrace/i686-record_goto.S
index c19fcdf..e02615f 100644
--- a/gdb/testsuite/gdb.btrace/i686-record_goto.S
+++ b/gdb/testsuite/gdb.btrace/i686-record_goto.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>
diff --git a/gdb/testsuite/gdb.btrace/i686-tailcall-only.S b/gdb/testsuite/gdb.btrace/i686-tailcall-only.S
index 753fe56..295c9e6 100644
--- a/gdb/testsuite/gdb.btrace/i686-tailcall-only.S
+++ b/gdb/testsuite/gdb.btrace/i686-tailcall-only.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/i686-tailcall.S b/gdb/testsuite/gdb.btrace/i686-tailcall.S
index 29cbf57..b60136d 100644
--- a/gdb/testsuite/gdb.btrace/i686-tailcall.S
+++ b/gdb/testsuite/gdb.btrace/i686-tailcall.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>
diff --git a/gdb/testsuite/gdb.btrace/instruction_history.S b/gdb/testsuite/gdb.btrace/instruction_history.S
index c7fa78a..9f969a6 100644
--- a/gdb/testsuite/gdb.btrace/instruction_history.S
+++ b/gdb/testsuite/gdb.btrace/instruction_history.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <christian.himpel@intel.com>
diff --git a/gdb/testsuite/gdb.btrace/instruction_history.c b/gdb/testsuite/gdb.btrace/instruction_history.c
index 7304e42..ea3a16b 100644
--- a/gdb/testsuite/gdb.btrace/instruction_history.c
+++ b/gdb/testsuite/gdb.btrace/instruction_history.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <christian.himpel@intel.com>
diff --git a/gdb/testsuite/gdb.btrace/instruction_history.exp b/gdb/testsuite/gdb.btrace/instruction_history.exp
index d3ff313..4e20194 100644
--- a/gdb/testsuite/gdb.btrace/instruction_history.exp
+++ b/gdb/testsuite/gdb.btrace/instruction_history.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <christian.himpel@intel.com>
#
diff --git a/gdb/testsuite/gdb.btrace/multi-inferior.c b/gdb/testsuite/gdb.btrace/multi-inferior.c
index fb4ffc2..f2b8dba 100644
--- a/gdb/testsuite/gdb.btrace/multi-inferior.c
+++ b/gdb/testsuite/gdb.btrace/multi-inferior.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/multi-inferior.exp b/gdb/testsuite/gdb.btrace/multi-inferior.exp
index 6996b18..d87a941 100644
--- a/gdb/testsuite/gdb.btrace/multi-inferior.exp
+++ b/gdb/testsuite/gdb.btrace/multi-inferior.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -24,6 +24,8 @@
require allow_btrace_tests
+require allow_multi_inferior_tests
+
require !use_gdb_stub
standard_testfile
diff --git a/gdb/testsuite/gdb.btrace/multi-thread-step.c b/gdb/testsuite/gdb.btrace/multi-thread-step.c
index 18ade27..1a72a41 100644
--- a/gdb/testsuite/gdb.btrace/multi-thread-step.c
+++ b/gdb/testsuite/gdb.btrace/multi-thread-step.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>
diff --git a/gdb/testsuite/gdb.btrace/multi-thread-step.exp b/gdb/testsuite/gdb.btrace/multi-thread-step.exp
index cd20e8a..9f4c6c0 100644
--- a/gdb/testsuite/gdb.btrace/multi-thread-step.exp
+++ b/gdb/testsuite/gdb.btrace/multi-thread-step.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <markus.t.metzger@intel.com>
#
diff --git a/gdb/testsuite/gdb.btrace/nohist.exp b/gdb/testsuite/gdb.btrace/nohist.exp
index ac6a41c..f573ed3 100644
--- a/gdb/testsuite/gdb.btrace/nohist.exp
+++ b/gdb/testsuite/gdb.btrace/nohist.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <markus.t.metzger@intel.com>
#
diff --git a/gdb/testsuite/gdb.btrace/non-stop.c b/gdb/testsuite/gdb.btrace/non-stop.c
index 852ef05..6748da0 100644
--- a/gdb/testsuite/gdb.btrace/non-stop.c
+++ b/gdb/testsuite/gdb.btrace/non-stop.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/non-stop.exp b/gdb/testsuite/gdb.btrace/non-stop.exp
index 8397c20..856985c 100644
--- a/gdb/testsuite/gdb.btrace/non-stop.exp
+++ b/gdb/testsuite/gdb.btrace/non-stop.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/null-deref.c b/gdb/testsuite/gdb.btrace/null-deref.c
index f0de31f..1ad1b81 100644
--- a/gdb/testsuite/gdb.btrace/null-deref.c
+++ b/gdb/testsuite/gdb.btrace/null-deref.c
@@ -1,4 +1,4 @@
-/* Copyright 2024 Free Software Foundation, Inc.
+/* Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/ptwrite.c b/gdb/testsuite/gdb.btrace/ptwrite.c
index e10b885..3fb5cd2 100644
--- a/gdb/testsuite/gdb.btrace/ptwrite.c
+++ b/gdb/testsuite/gdb.btrace/ptwrite.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/ptwrite.exp b/gdb/testsuite/gdb.btrace/ptwrite.exp
index 7f1adad..0c2bb7c 100644
--- a/gdb/testsuite/gdb.btrace/ptwrite.exp
+++ b/gdb/testsuite/gdb.btrace/ptwrite.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/reconnect.c b/gdb/testsuite/gdb.btrace/reconnect.c
index 0f64a8e..ad1f6e5 100644
--- a/gdb/testsuite/gdb.btrace/reconnect.c
+++ b/gdb/testsuite/gdb.btrace/reconnect.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <tim.wiederhake@intel.com>
diff --git a/gdb/testsuite/gdb.btrace/reconnect.exp b/gdb/testsuite/gdb.btrace/reconnect.exp
index 41f702a..15a0bca 100644
--- a/gdb/testsuite/gdb.btrace/reconnect.exp
+++ b/gdb/testsuite/gdb.btrace/reconnect.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <tim.wiederhake@intel.com>
#
diff --git a/gdb/testsuite/gdb.btrace/record_goto-step.exp b/gdb/testsuite/gdb.btrace/record_goto-step.exp
index e7adc62..10307a7 100644
--- a/gdb/testsuite/gdb.btrace/record_goto-step.exp
+++ b/gdb/testsuite/gdb.btrace/record_goto-step.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <markus.t.metzger@intel.com>
#
diff --git a/gdb/testsuite/gdb.btrace/record_goto.c b/gdb/testsuite/gdb.btrace/record_goto.c
index 4f18f9c..624a8fd 100644
--- a/gdb/testsuite/gdb.btrace/record_goto.c
+++ b/gdb/testsuite/gdb.btrace/record_goto.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>
diff --git a/gdb/testsuite/gdb.btrace/record_goto.exp b/gdb/testsuite/gdb.btrace/record_goto.exp
index cd6ab38..b1b3c09 100644
--- a/gdb/testsuite/gdb.btrace/record_goto.exp
+++ b/gdb/testsuite/gdb.btrace/record_goto.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <markus.t.metzger@intel.com>
#
diff --git a/gdb/testsuite/gdb.btrace/rn-dl-bind.c b/gdb/testsuite/gdb.btrace/rn-dl-bind.c
index 3d216a2..da784cd 100644
--- a/gdb/testsuite/gdb.btrace/rn-dl-bind.c
+++ b/gdb/testsuite/gdb.btrace/rn-dl-bind.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>
diff --git a/gdb/testsuite/gdb.btrace/rn-dl-bind.exp b/gdb/testsuite/gdb.btrace/rn-dl-bind.exp
index 756be2f..6592b74c 100644
--- a/gdb/testsuite/gdb.btrace/rn-dl-bind.exp
+++ b/gdb/testsuite/gdb.btrace/rn-dl-bind.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <markus.t.metzger@intel.com>
#
diff --git a/gdb/testsuite/gdb.btrace/segv.c b/gdb/testsuite/gdb.btrace/segv.c
index 742eec1..414afd2 100644
--- a/gdb/testsuite/gdb.btrace/segv.c
+++ b/gdb/testsuite/gdb.btrace/segv.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>
diff --git a/gdb/testsuite/gdb.btrace/segv.exp b/gdb/testsuite/gdb.btrace/segv.exp
index 9804b93..628c155 100644
--- a/gdb/testsuite/gdb.btrace/segv.exp
+++ b/gdb/testsuite/gdb.btrace/segv.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <markus.t.metzger@intel.com>
#
diff --git a/gdb/testsuite/gdb.btrace/step.exp b/gdb/testsuite/gdb.btrace/step.exp
index 0adc18b..7852d65 100644
--- a/gdb/testsuite/gdb.btrace/step.exp
+++ b/gdb/testsuite/gdb.btrace/step.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <markus.t.metzger@intel.com>
#
diff --git a/gdb/testsuite/gdb.btrace/stepi.exp b/gdb/testsuite/gdb.btrace/stepi.exp
index 689bc79..3684bef 100644
--- a/gdb/testsuite/gdb.btrace/stepi.exp
+++ b/gdb/testsuite/gdb.btrace/stepi.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <markus.t.metzger@intel.com>
#
diff --git a/gdb/testsuite/gdb.btrace/tailcall-only.c b/gdb/testsuite/gdb.btrace/tailcall-only.c
index 726cf11..02b517a 100644
--- a/gdb/testsuite/gdb.btrace/tailcall-only.c
+++ b/gdb/testsuite/gdb.btrace/tailcall-only.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>
diff --git a/gdb/testsuite/gdb.btrace/tailcall-only.exp b/gdb/testsuite/gdb.btrace/tailcall-only.exp
index ae3b04e..c4f032a 100644
--- a/gdb/testsuite/gdb.btrace/tailcall-only.exp
+++ b/gdb/testsuite/gdb.btrace/tailcall-only.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/tailcall.c b/gdb/testsuite/gdb.btrace/tailcall.c
index 1f08e5a..40f16b1 100644
--- a/gdb/testsuite/gdb.btrace/tailcall.c
+++ b/gdb/testsuite/gdb.btrace/tailcall.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>
diff --git a/gdb/testsuite/gdb.btrace/tailcall.exp b/gdb/testsuite/gdb.btrace/tailcall.exp
index 198cfa9..50d0a8b 100644
--- a/gdb/testsuite/gdb.btrace/tailcall.exp
+++ b/gdb/testsuite/gdb.btrace/tailcall.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <markus.t.metzger@intel.com>
#
diff --git a/gdb/testsuite/gdb.btrace/tsx.c b/gdb/testsuite/gdb.btrace/tsx.c
index 49a87c2..f27eb14 100644
--- a/gdb/testsuite/gdb.btrace/tsx.c
+++ b/gdb/testsuite/gdb.btrace/tsx.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/tsx.exp b/gdb/testsuite/gdb.btrace/tsx.exp
index d312b15..168319b 100644
--- a/gdb/testsuite/gdb.btrace/tsx.exp
+++ b/gdb/testsuite/gdb.btrace/tsx.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/unknown_functions.c b/gdb/testsuite/gdb.btrace/unknown_functions.c
index 0172fc9..217f87c 100644
--- a/gdb/testsuite/gdb.btrace/unknown_functions.c
+++ b/gdb/testsuite/gdb.btrace/unknown_functions.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>
diff --git a/gdb/testsuite/gdb.btrace/unknown_functions.exp b/gdb/testsuite/gdb.btrace/unknown_functions.exp
index b335e74..61aed6f 100644
--- a/gdb/testsuite/gdb.btrace/unknown_functions.exp
+++ b/gdb/testsuite/gdb.btrace/unknown_functions.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <markus.t.metzger@intel.com>
#
diff --git a/gdb/testsuite/gdb.btrace/vdso.c b/gdb/testsuite/gdb.btrace/vdso.c
index 2f518b16..b3d1b11 100644
--- a/gdb/testsuite/gdb.btrace/vdso.c
+++ b/gdb/testsuite/gdb.btrace/vdso.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>
diff --git a/gdb/testsuite/gdb.btrace/vdso.exp b/gdb/testsuite/gdb.btrace/vdso.exp
index edbb222..1e19f99 100644
--- a/gdb/testsuite/gdb.btrace/vdso.exp
+++ b/gdb/testsuite/gdb.btrace/vdso.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <markus.t.metzger@intel.com>
#
diff --git a/gdb/testsuite/gdb.btrace/x86-tsx.S b/gdb/testsuite/gdb.btrace/x86-tsx.S
index 754db8a..6335e3d 100644
--- a/gdb/testsuite/gdb.btrace/x86-tsx.S
+++ b/gdb/testsuite/gdb.btrace/x86-tsx.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/x86_64-ptwrite.S b/gdb/testsuite/gdb.btrace/x86_64-ptwrite.S
index be4d204..bdd9e39 100644
--- a/gdb/testsuite/gdb.btrace/x86_64-ptwrite.S
+++ b/gdb/testsuite/gdb.btrace/x86_64-ptwrite.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/x86_64-record_goto.S b/gdb/testsuite/gdb.btrace/x86_64-record_goto.S
index f1e3d4e..c8ac53d 100644
--- a/gdb/testsuite/gdb.btrace/x86_64-record_goto.S
+++ b/gdb/testsuite/gdb.btrace/x86_64-record_goto.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>
diff --git a/gdb/testsuite/gdb.btrace/x86_64-tailcall-only.S b/gdb/testsuite/gdb.btrace/x86_64-tailcall-only.S
index 6c41e44..ec73635 100644
--- a/gdb/testsuite/gdb.btrace/x86_64-tailcall-only.S
+++ b/gdb/testsuite/gdb.btrace/x86_64-tailcall-only.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.btrace/x86_64-tailcall.S b/gdb/testsuite/gdb.btrace/x86_64-tailcall.S
index e3679cc..8b96fad 100644
--- a/gdb/testsuite/gdb.btrace/x86_64-tailcall.S
+++ b/gdb/testsuite/gdb.btrace/x86_64-tailcall.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>
diff --git a/gdb/testsuite/gdb.compile/compile-constvar.S b/gdb/testsuite/gdb.compile/compile-constvar.S
index 85532a8..61f688a 100644
--- a/gdb/testsuite/gdb.compile/compile-constvar.S
+++ b/gdb/testsuite/gdb.compile/compile-constvar.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-constvar.c b/gdb/testsuite/gdb.compile/compile-constvar.c
index e45b7cb..a230d4d 100644
--- a/gdb/testsuite/gdb.compile/compile-constvar.c
+++ b/gdb/testsuite/gdb.compile/compile-constvar.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-cplus-anonymous.cc b/gdb/testsuite/gdb.compile/compile-cplus-anonymous.cc
index d327564..266884d 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus-anonymous.cc
+++ b/gdb/testsuite/gdb.compile/compile-cplus-anonymous.cc
@@ -1,4 +1,4 @@
-/* Copyright 2015-2024 Free Software Foundation, Inc.
+/* Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-cplus-anonymous.exp b/gdb/testsuite/gdb.compile/compile-cplus-anonymous.exp
index 3e76d38..184aa94 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus-anonymous.exp
+++ b/gdb/testsuite/gdb.compile/compile-cplus-anonymous.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -23,6 +23,8 @@ require allow_cplus_tests
require is_c_compiler_gcc
+require allow_compile_tests
+
if {[prepare_for_testing $testfile $testfile $srcfile \
{debug nowarnings c++}]} {
return -1
diff --git a/gdb/testsuite/gdb.compile/compile-cplus-array-decay.cc b/gdb/testsuite/gdb.compile/compile-cplus-array-decay.cc
index 6cac7f4..3acd1bb 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus-array-decay.cc
+++ b/gdb/testsuite/gdb.compile/compile-cplus-array-decay.cc
@@ -1,4 +1,4 @@
-/* Copyright 2017-2024 Free Software Foundation, Inc.
+/* Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-cplus-array-decay.exp b/gdb/testsuite/gdb.compile/compile-cplus-array-decay.exp
index 505a4e1..82238af 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus-array-decay.exp
+++ b/gdb/testsuite/gdb.compile/compile-cplus-array-decay.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -23,6 +23,8 @@ require allow_cplus_tests
require is_c_compiler_gcc
+require allow_compile_tests
+
if {[prepare_for_testing $testfile $testfile $srcfile \
{debug nowarnings c++ additional_flags=-std=c++11}]} {
return -1
diff --git a/gdb/testsuite/gdb.compile/compile-cplus-inherit.cc b/gdb/testsuite/gdb.compile/compile-cplus-inherit.cc
index 2955835..01b1995 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus-inherit.cc
+++ b/gdb/testsuite/gdb.compile/compile-cplus-inherit.cc
@@ -1,4 +1,4 @@
-/* Copyright 2015-2024 Free Software Foundation, Inc.
+/* Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-cplus-inherit.exp b/gdb/testsuite/gdb.compile/compile-cplus-inherit.exp
index 1a5f60a..5ad3114 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus-inherit.exp
+++ b/gdb/testsuite/gdb.compile/compile-cplus-inherit.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -23,6 +23,8 @@ require allow_cplus_tests
require is_c_compiler_gcc
+require allow_compile_tests
+
if {[prepare_for_testing $testfile $testfile $srcfile \
{debug nowarnings c++}]} {
return -1
diff --git a/gdb/testsuite/gdb.compile/compile-cplus-member.cc b/gdb/testsuite/gdb.compile/compile-cplus-member.cc
index 4131f17..9c10c27 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus-member.cc
+++ b/gdb/testsuite/gdb.compile/compile-cplus-member.cc
@@ -1,4 +1,4 @@
-/* Copyright 2015-2024 Free Software Foundation, Inc.
+/* Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-cplus-member.exp b/gdb/testsuite/gdb.compile/compile-cplus-member.exp
index 5ffbb30..605a087 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus-member.exp
+++ b/gdb/testsuite/gdb.compile/compile-cplus-member.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -23,6 +23,8 @@ require allow_cplus_tests
require is_c_compiler_gcc
+require allow_compile_tests
+
if {[prepare_for_testing $testfile $testfile $srcfile \
{debug nowarnings c++}]} {
return -1
diff --git a/gdb/testsuite/gdb.compile/compile-cplus-method.cc b/gdb/testsuite/gdb.compile/compile-cplus-method.cc
index 5f057c4..61cfca1 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus-method.cc
+++ b/gdb/testsuite/gdb.compile/compile-cplus-method.cc
@@ -1,4 +1,4 @@
-/* Copyright 2015-2024 Free Software Foundation, Inc.
+/* Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-cplus-method.exp b/gdb/testsuite/gdb.compile/compile-cplus-method.exp
index 0a0e0fa..616acc5 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus-method.exp
+++ b/gdb/testsuite/gdb.compile/compile-cplus-method.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -23,6 +23,8 @@ require allow_cplus_tests
require is_c_compiler_gcc
+require allow_compile_tests
+
if {[prepare_for_testing $testfile $testfile $srcfile \
{debug nowarnings c++}]} {
return -1
diff --git a/gdb/testsuite/gdb.compile/compile-cplus-mod.c b/gdb/testsuite/gdb.compile/compile-cplus-mod.c
index 2df0437..c578f326 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus-mod.c
+++ b/gdb/testsuite/gdb.compile/compile-cplus-mod.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-cplus-namespace.cc b/gdb/testsuite/gdb.compile/compile-cplus-namespace.cc
index e3f61f2..abfd07a 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus-namespace.cc
+++ b/gdb/testsuite/gdb.compile/compile-cplus-namespace.cc
@@ -1,4 +1,4 @@
-/* Copyright 2015-2024 Free Software Foundation, Inc.
+/* Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-cplus-namespace.exp b/gdb/testsuite/gdb.compile/compile-cplus-namespace.exp
index 3ab8ece..e556806 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus-namespace.exp
+++ b/gdb/testsuite/gdb.compile/compile-cplus-namespace.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -23,6 +23,8 @@ require allow_cplus_tests
require is_c_compiler_gcc
+require allow_compile_tests
+
if {[prepare_for_testing $testfile $testfile $srcfile \
{debug nowarnings c++}]} {
return -1
diff --git a/gdb/testsuite/gdb.compile/compile-cplus-nested.cc b/gdb/testsuite/gdb.compile/compile-cplus-nested.cc
index 2c8f669..c32537b 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus-nested.cc
+++ b/gdb/testsuite/gdb.compile/compile-cplus-nested.cc
@@ -1,4 +1,4 @@
-/* Copyright 2015-2024 Free Software Foundation, Inc.
+/* Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-cplus-nested.exp b/gdb/testsuite/gdb.compile/compile-cplus-nested.exp
index 19efd4f..dd99a17 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus-nested.exp
+++ b/gdb/testsuite/gdb.compile/compile-cplus-nested.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -23,6 +23,8 @@ require allow_cplus_tests
require is_c_compiler_gcc
+require allow_compile_tests
+
if {[prepare_for_testing $testfile $testfile $srcfile \
{debug nowarnings c++}]} {
return -1
diff --git a/gdb/testsuite/gdb.compile/compile-cplus-print.c b/gdb/testsuite/gdb.compile/compile-cplus-print.c
index 130d822..57c6245 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus-print.c
+++ b/gdb/testsuite/gdb.compile/compile-cplus-print.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-cplus-print.exp b/gdb/testsuite/gdb.compile/compile-cplus-print.exp
index 594f94a..d89bf61 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus-print.exp
+++ b/gdb/testsuite/gdb.compile/compile-cplus-print.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -19,6 +19,8 @@ standard_testfile
require is_c_compiler_gcc
+require allow_compile_tests
+
set options {}
if [test_compiler_info gcc*] {
lappend options additional_flags=-g3
diff --git a/gdb/testsuite/gdb.compile/compile-cplus-virtual.cc b/gdb/testsuite/gdb.compile/compile-cplus-virtual.cc
index 031309a..a64ad98 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus-virtual.cc
+++ b/gdb/testsuite/gdb.compile/compile-cplus-virtual.cc
@@ -1,4 +1,4 @@
-/* Copyright 2015-2024 Free Software Foundation, Inc.
+/* Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-cplus-virtual.exp b/gdb/testsuite/gdb.compile/compile-cplus-virtual.exp
index 8761df5..7bbe028 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus-virtual.exp
+++ b/gdb/testsuite/gdb.compile/compile-cplus-virtual.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -23,6 +23,8 @@ require allow_cplus_tests
require is_c_compiler_gcc
+require allow_compile_tests
+
if {[prepare_for_testing $testfile $testfile $srcfile \
{debug nowarnings c++}]} {
return -1
diff --git a/gdb/testsuite/gdb.compile/compile-cplus.c b/gdb/testsuite/gdb.compile/compile-cplus.c
index 26979c1..83a3a64 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus.c
+++ b/gdb/testsuite/gdb.compile/compile-cplus.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-cplus.exp b/gdb/testsuite/gdb.compile/compile-cplus.exp
index 711f299..a0f5cf0 100644
--- a/gdb/testsuite/gdb.compile/compile-cplus.exp
+++ b/gdb/testsuite/gdb.compile/compile-cplus.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -19,6 +19,8 @@ standard_testfile .c compile-shlib.c compile-constvar.S compile-nodebug.c
require is_c_compiler_gcc
+require allow_compile_tests
+
set options {}
if { [test_compiler_info gcc*] || [test_compiler_info clang*] } {
lappend options additional_flags=-g3
diff --git a/gdb/testsuite/gdb.compile/compile-ifunc.c b/gdb/testsuite/gdb.compile/compile-ifunc.c
index dc5b251..791ad9c 100644
--- a/gdb/testsuite/gdb.compile/compile-ifunc.c
+++ b/gdb/testsuite/gdb.compile/compile-ifunc.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-ifunc.exp b/gdb/testsuite/gdb.compile/compile-ifunc.exp
index b004bd7..068dce5 100644
--- a/gdb/testsuite/gdb.compile/compile-ifunc.exp
+++ b/gdb/testsuite/gdb.compile/compile-ifunc.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -17,6 +17,8 @@ load_lib compile-support.exp
require allow_ifunc_tests
+require allow_compile_tests
+
standard_testfile
require is_c_compiler_gcc
diff --git a/gdb/testsuite/gdb.compile/compile-mod.c b/gdb/testsuite/gdb.compile/compile-mod.c
index 4e65aa3..f86a779 100644
--- a/gdb/testsuite/gdb.compile/compile-mod.c
+++ b/gdb/testsuite/gdb.compile/compile-mod.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-nodebug.c b/gdb/testsuite/gdb.compile/compile-nodebug.c
index e068aae..0c5641d 100644
--- a/gdb/testsuite/gdb.compile/compile-nodebug.c
+++ b/gdb/testsuite/gdb.compile/compile-nodebug.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-ops.c b/gdb/testsuite/gdb.compile/compile-ops.c
index 7c6b483..2c6ab46 100644
--- a/gdb/testsuite/gdb.compile/compile-ops.c
+++ b/gdb/testsuite/gdb.compile/compile-ops.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-ops.exp b/gdb/testsuite/gdb.compile/compile-ops.exp
index f75e02c..410d5a4 100644
--- a/gdb/testsuite/gdb.compile/compile-ops.exp
+++ b/gdb/testsuite/gdb.compile/compile-ops.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,6 +22,8 @@ load_lib dwarf.exp
# This test can only be run on targets which support DWARF-2 and use gas.
require dwarf2_support
+require allow_compile_tests
+
require is_c_compiler_gcc
standard_testfile .c -dbg.S
diff --git a/gdb/testsuite/gdb.compile/compile-print.c b/gdb/testsuite/gdb.compile/compile-print.c
index a8267ac..d0f98f9 100644
--- a/gdb/testsuite/gdb.compile/compile-print.c
+++ b/gdb/testsuite/gdb.compile/compile-print.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-print.exp b/gdb/testsuite/gdb.compile/compile-print.exp
index f8f2297..4c90a71 100644
--- a/gdb/testsuite/gdb.compile/compile-print.exp
+++ b/gdb/testsuite/gdb.compile/compile-print.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -19,6 +19,8 @@ standard_testfile
require is_c_compiler_gcc
+require allow_compile_tests
+
if { [prepare_for_testing "failed to prepare" "$testfile"] } {
return -1
}
diff --git a/gdb/testsuite/gdb.compile/compile-setjmp-mod.c b/gdb/testsuite/gdb.compile/compile-setjmp-mod.c
index afa8963..f61ca25 100644
--- a/gdb/testsuite/gdb.compile/compile-setjmp-mod.c
+++ b/gdb/testsuite/gdb.compile/compile-setjmp-mod.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-setjmp.c b/gdb/testsuite/gdb.compile/compile-setjmp.c
index 44dfd50..f869314 100644
--- a/gdb/testsuite/gdb.compile/compile-setjmp.c
+++ b/gdb/testsuite/gdb.compile/compile-setjmp.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-setjmp.exp b/gdb/testsuite/gdb.compile/compile-setjmp.exp
index f387a05..73f6b8b 100644
--- a/gdb/testsuite/gdb.compile/compile-setjmp.exp
+++ b/gdb/testsuite/gdb.compile/compile-setjmp.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -19,6 +19,8 @@ standard_testfile .c compile-setjmp-mod.c
require is_c_compiler_gcc
+require allow_compile_tests
+
if { [prepare_for_testing "failed to prepare" $testfile] } {
return -1
}
diff --git a/gdb/testsuite/gdb.compile/compile-shlib.c b/gdb/testsuite/gdb.compile/compile-shlib.c
index a2833af..039527e 100644
--- a/gdb/testsuite/gdb.compile/compile-shlib.c
+++ b/gdb/testsuite/gdb.compile/compile-shlib.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-tls.c b/gdb/testsuite/gdb.compile/compile-tls.c
index c67b2ce..df24896 100644
--- a/gdb/testsuite/gdb.compile/compile-tls.c
+++ b/gdb/testsuite/gdb.compile/compile-tls.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile-tls.exp b/gdb/testsuite/gdb.compile/compile-tls.exp
index 2f8dc5a..aaa8e03 100644
--- a/gdb/testsuite/gdb.compile/compile-tls.exp
+++ b/gdb/testsuite/gdb.compile/compile-tls.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -19,6 +19,8 @@ standard_testfile .c
require is_c_compiler_gcc
+require allow_compile_tests
+
if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
executable {debug}] != "" } {
return -1
diff --git a/gdb/testsuite/gdb.compile/compile.c b/gdb/testsuite/gdb.compile/compile.c
index 04beae8..0943ea5 100644
--- a/gdb/testsuite/gdb.compile/compile.c
+++ b/gdb/testsuite/gdb.compile/compile.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.compile/compile.exp b/gdb/testsuite/gdb.compile/compile.exp
index 2c2e321..ff20b2e 100644
--- a/gdb/testsuite/gdb.compile/compile.exp
+++ b/gdb/testsuite/gdb.compile/compile.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -15,6 +15,8 @@
load_lib compile-support.exp
+require allow_compile_tests
+
standard_testfile .c compile-shlib.c compile-constvar.S compile-nodebug.c
require is_c_compiler_gcc
diff --git a/gdb/testsuite/gdb.cp/abstract-origin.cc b/gdb/testsuite/gdb.cp/abstract-origin.cc
index 44377b2..96fdc85 100644
--- a/gdb/testsuite/gdb.cp/abstract-origin.cc
+++ b/gdb/testsuite/gdb.cp/abstract-origin.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/abstract-origin.exp b/gdb/testsuite/gdb.cp/abstract-origin.exp
index c6c1b8c..c9d4194 100644
--- a/gdb/testsuite/gdb.cp/abstract-origin.exp
+++ b/gdb/testsuite/gdb.cp/abstract-origin.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/align.exp b/gdb/testsuite/gdb.cp/align.exp
index 56e00d9..b28454d 100644
--- a/gdb/testsuite/gdb.cp/align.exp
+++ b/gdb/testsuite/gdb.cp/align.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/ambiguous.exp b/gdb/testsuite/gdb.cp/ambiguous.exp
index 10fb6e0..0cd986f 100644
--- a/gdb/testsuite/gdb.cp/ambiguous.exp
+++ b/gdb/testsuite/gdb.cp/ambiguous.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/annota2.exp b/gdb/testsuite/gdb.cp/annota2.exp
index 1b1c26b..14fe8ef 100644
--- a/gdb/testsuite/gdb.cp/annota2.exp
+++ b/gdb/testsuite/gdb.cp/annota2.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/annota3.exp b/gdb/testsuite/gdb.cp/annota3.exp
index e5da031..c1f96ac 100644
--- a/gdb/testsuite/gdb.cp/annota3.exp
+++ b/gdb/testsuite/gdb.cp/annota3.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/anon-ns.cc b/gdb/testsuite/gdb.cp/anon-ns.cc
index 0a75458..16212db 100644
--- a/gdb/testsuite/gdb.cp/anon-ns.cc
+++ b/gdb/testsuite/gdb.cp/anon-ns.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/anon-ns.exp b/gdb/testsuite/gdb.cp/anon-ns.exp
index 2b2376d..a5bfe7b 100644
--- a/gdb/testsuite/gdb.cp/anon-ns.exp
+++ b/gdb/testsuite/gdb.cp/anon-ns.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# Contributed by Red Hat, originally written by Keith Seitz.
#
diff --git a/gdb/testsuite/gdb.cp/anon-ns2.cc b/gdb/testsuite/gdb.cp/anon-ns2.cc
index 326e8df..6413751 100644
--- a/gdb/testsuite/gdb.cp/anon-ns2.cc
+++ b/gdb/testsuite/gdb.cp/anon-ns2.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/anon-struct.cc b/gdb/testsuite/gdb.cp/anon-struct.cc
index 9523cb3..04a6d53 100644
--- a/gdb/testsuite/gdb.cp/anon-struct.cc
+++ b/gdb/testsuite/gdb.cp/anon-struct.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/anon-struct.exp b/gdb/testsuite/gdb.cp/anon-struct.exp
index ae2e444..0ecb9ab9 100644
--- a/gdb/testsuite/gdb.cp/anon-struct.exp
+++ b/gdb/testsuite/gdb.cp/anon-struct.exp
@@ -1,5 +1,5 @@
# Tests for anonymous union support.
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/anon-union.exp b/gdb/testsuite/gdb.cp/anon-union.exp
index 398fa53..ae19f3b 100644
--- a/gdb/testsuite/gdb.cp/anon-union.exp
+++ b/gdb/testsuite/gdb.cp/anon-union.exp
@@ -1,5 +1,5 @@
# Tests for anonymous union support.
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/arg-reference.cc b/gdb/testsuite/gdb.cp/arg-reference.cc
index c519b9b..d74675f 100644
--- a/gdb/testsuite/gdb.cp/arg-reference.cc
+++ b/gdb/testsuite/gdb.cp/arg-reference.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.cp/arg-reference.exp b/gdb/testsuite/gdb.cp/arg-reference.exp
index b0c7e2f..36696c4 100644
--- a/gdb/testsuite/gdb.cp/arg-reference.exp
+++ b/gdb/testsuite/gdb.cp/arg-reference.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# Copyright (C) 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/array-indices.exp b/gdb/testsuite/gdb.cp/array-indices.exp
index db1a16d..b0f5293 100644
--- a/gdb/testsuite/gdb.cp/array-indices.exp
+++ b/gdb/testsuite/gdb.cp/array-indices.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/array-repeat.exp b/gdb/testsuite/gdb.cp/array-repeat.exp
index 95150f9..649e47d 100644
--- a/gdb/testsuite/gdb.cp/array-repeat.exp
+++ b/gdb/testsuite/gdb.cp/array-repeat.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/baseenum.cc b/gdb/testsuite/gdb.cp/baseenum.cc
index 9dee774..aef8a7e 100644
--- a/gdb/testsuite/gdb.cp/baseenum.cc
+++ b/gdb/testsuite/gdb.cp/baseenum.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2003-2024 Free Software Foundation, Inc.
+ Copyright 2003-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/baseenum.exp b/gdb/testsuite/gdb.cp/baseenum.exp
index f719ea9..0e01122 100644
--- a/gdb/testsuite/gdb.cp/baseenum.exp
+++ b/gdb/testsuite/gdb.cp/baseenum.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/bool.cc b/gdb/testsuite/gdb.cp/bool.cc
index 246c820..603e049 100644
--- a/gdb/testsuite/gdb.cp/bool.cc
+++ b/gdb/testsuite/gdb.cp/bool.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.cp/bool.exp b/gdb/testsuite/gdb.cp/bool.exp
index 1e824a2..fc61801 100644
--- a/gdb/testsuite/gdb.cp/bool.exp
+++ b/gdb/testsuite/gdb.cp/bool.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2024 Free Software Foundation, Inc.
+# Copyright (C) 2006-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/break-f-std-string.cc b/gdb/testsuite/gdb.cp/break-f-std-string.cc
index 03cbe37..dc8b2a1 100644
--- a/gdb/testsuite/gdb.cp/break-f-std-string.cc
+++ b/gdb/testsuite/gdb.cp/break-f-std-string.cc
@@ -1,6 +1,6 @@
/* This test file is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/break-f-std-string.exp b/gdb/testsuite/gdb.cp/break-f-std-string.exp
index c03e546..b0417d9 100644
--- a/gdb/testsuite/gdb.cp/break-f-std-string.exp
+++ b/gdb/testsuite/gdb.cp/break-f-std-string.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/break-template-cast.cc b/gdb/testsuite/gdb.cp/break-template-cast.cc
index bb232cb..2e43edf 100644
--- a/gdb/testsuite/gdb.cp/break-template-cast.cc
+++ b/gdb/testsuite/gdb.cp/break-template-cast.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/break-template-cast.exp b/gdb/testsuite/gdb.cp/break-template-cast.exp
index 30e4229..4e86b2e 100644
--- a/gdb/testsuite/gdb.cp/break-template-cast.exp
+++ b/gdb/testsuite/gdb.cp/break-template-cast.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/breakpoint-locs-2.cc b/gdb/testsuite/gdb.cp/breakpoint-locs-2.cc
index b81de99..52d99d3 100644
--- a/gdb/testsuite/gdb.cp/breakpoint-locs-2.cc
+++ b/gdb/testsuite/gdb.cp/breakpoint-locs-2.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/breakpoint-locs.cc b/gdb/testsuite/gdb.cp/breakpoint-locs.cc
index e1198e9..562bbe4 100644
--- a/gdb/testsuite/gdb.cp/breakpoint-locs.cc
+++ b/gdb/testsuite/gdb.cp/breakpoint-locs.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/breakpoint-locs.exp b/gdb/testsuite/gdb.cp/breakpoint-locs.exp
index 088a766..284d127 100644
--- a/gdb/testsuite/gdb.cp/breakpoint-locs.exp
+++ b/gdb/testsuite/gdb.cp/breakpoint-locs.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/breakpoint-locs.h b/gdb/testsuite/gdb.cp/breakpoint-locs.h
index 7f58fcf..93a2554 100644
--- a/gdb/testsuite/gdb.cp/breakpoint-locs.h
+++ b/gdb/testsuite/gdb.cp/breakpoint-locs.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/breakpoint-shlib-func-lib.cc b/gdb/testsuite/gdb.cp/breakpoint-shlib-func-lib.cc
index baa66d3..c498a26 100644
--- a/gdb/testsuite/gdb.cp/breakpoint-shlib-func-lib.cc
+++ b/gdb/testsuite/gdb.cp/breakpoint-shlib-func-lib.cc
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.cp/breakpoint-shlib-func.cc b/gdb/testsuite/gdb.cp/breakpoint-shlib-func.cc
index 42a9b34..ae83293 100644
--- a/gdb/testsuite/gdb.cp/breakpoint-shlib-func.cc
+++ b/gdb/testsuite/gdb.cp/breakpoint-shlib-func.cc
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.cp/breakpoint-shlib-func.exp b/gdb/testsuite/gdb.cp/breakpoint-shlib-func.exp
index 085020f..dc4759c 100644
--- a/gdb/testsuite/gdb.cp/breakpoint-shlib-func.exp
+++ b/gdb/testsuite/gdb.cp/breakpoint-shlib-func.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.cp/breakpoint.cc b/gdb/testsuite/gdb.cp/breakpoint.cc
index 5b75705..1a64512 100644
--- a/gdb/testsuite/gdb.cp/breakpoint.cc
+++ b/gdb/testsuite/gdb.cp/breakpoint.cc
@@ -1,6 +1,6 @@
/* Code to go along with tests in breakpoint.exp.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.cp/breakpoint.exp b/gdb/testsuite/gdb.cp/breakpoint.exp
index b5cd2eb..ba9e49c 100644
--- a/gdb/testsuite/gdb.cp/breakpoint.exp
+++ b/gdb/testsuite/gdb.cp/breakpoint.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/bs15503.cc b/gdb/testsuite/gdb.cp/bs15503.cc
index 95ca324..66d68bf 100644
--- a/gdb/testsuite/gdb.cp/bs15503.cc
+++ b/gdb/testsuite/gdb.cp/bs15503.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1992-2024 Free Software Foundation, Inc.
+ Copyright 1992-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/bs15503.exp b/gdb/testsuite/gdb.cp/bs15503.exp
index 1c509c4..7cb73b2 100644
--- a/gdb/testsuite/gdb.cp/bs15503.exp
+++ b/gdb/testsuite/gdb.cp/bs15503.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/call-c-1.c b/gdb/testsuite/gdb.cp/call-c-1.c
index c041ffa..0582c8e 100644
--- a/gdb/testsuite/gdb.cp/call-c-1.c
+++ b/gdb/testsuite/gdb.cp/call-c-1.c
@@ -1,6 +1,6 @@
/* This test script is part of GDB, the GNU debugger.
- Copyright 2006-2024 Free Software Foundation, Inc.
+ Copyright 2006-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/call-c.cc b/gdb/testsuite/gdb.cp/call-c.cc
index 05e0383..fb73e3a 100644
--- a/gdb/testsuite/gdb.cp/call-c.cc
+++ b/gdb/testsuite/gdb.cp/call-c.cc
@@ -1,6 +1,6 @@
/* This test script is part of GDB, the GNU debugger.
- Copyright 2006-2024 Free Software Foundation, Inc.
+ Copyright 2006-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/call-c.exp b/gdb/testsuite/gdb.cp/call-c.exp
index 090cb3d..f99d171 100644
--- a/gdb/testsuite/gdb.cp/call-c.exp
+++ b/gdb/testsuite/gdb.cp/call-c.exp
@@ -1,4 +1,4 @@
-# Copyright 2006-2024 Free Software Foundation, Inc.
+# Copyright 2006-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/call-method-register.cc b/gdb/testsuite/gdb.cp/call-method-register.cc
index 6271878..d9cc322 100644
--- a/gdb/testsuite/gdb.cp/call-method-register.cc
+++ b/gdb/testsuite/gdb.cp/call-method-register.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/call-method-register.exp b/gdb/testsuite/gdb.cp/call-method-register.exp
index b06620f..dfd3ce0 100644
--- a/gdb/testsuite/gdb.cp/call-method-register.exp
+++ b/gdb/testsuite/gdb.cp/call-method-register.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/casts.exp b/gdb/testsuite/gdb.cp/casts.exp
index 9f7638c..42c5d1f 100644
--- a/gdb/testsuite/gdb.cp/casts.exp
+++ b/gdb/testsuite/gdb.cp/casts.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/casts03.cc b/gdb/testsuite/gdb.cp/casts03.cc
index a77fd5e..ec1934e 100644
--- a/gdb/testsuite/gdb.cp/casts03.cc
+++ b/gdb/testsuite/gdb.cp/casts03.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/chained-calls.cc b/gdb/testsuite/gdb.cp/chained-calls.cc
index 49b5682..9358c71 100644
--- a/gdb/testsuite/gdb.cp/chained-calls.cc
+++ b/gdb/testsuite/gdb.cp/chained-calls.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -23,6 +23,8 @@ public:
S operator+ (const S &s);
+ int get ();
+
int a;
};
@@ -41,6 +43,12 @@ S::operator+ (const S &s)
return res;
}
+int
+S::get ()
+{
+ return a;
+}
+
S
f (int i)
{
@@ -162,6 +170,8 @@ public:
U (type t);
type get_type ();
+ int get ();
+
int a;
char c;
type tp[2];
@@ -191,6 +201,12 @@ U::get_type ()
}
int
+U::get ()
+{
+ return a;
+}
+
+int
main ()
{
int i = g(f(0));
@@ -198,6 +214,7 @@ main ()
B b = makeb ();
C c;
+ int z = f (42).get ();
return i + getb(b, 0); /* Break here */
}
diff --git a/gdb/testsuite/gdb.cp/chained-calls.exp b/gdb/testsuite/gdb.cp/chained-calls.exp
index 989f012..d34162c 100644
--- a/gdb/testsuite/gdb.cp/chained-calls.exp
+++ b/gdb/testsuite/gdb.cp/chained-calls.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -42,3 +42,6 @@ gdb_test "p *c" ".* = {a = 5678}" "*c"
gdb_test "p *c + *c" ".* = {a = 11356}" "*c + *c"
gdb_test "p q(*c + *c)" ".* = {a = 11356}" "q(*c + *c)"
gdb_test "p make_int().get_type ()" ".* = INT" "make_int().get_type ()"
+gdb_test "p f(42).get()" " = 42" "f().get()"
+gdb_test "ptype f(42).get()" "type = int" "ptype f().get()"
+gdb_test "ptype make_int().get()" "type = int" "make_int().get()"
diff --git a/gdb/testsuite/gdb.cp/class2.cc b/gdb/testsuite/gdb.cp/class2.cc
index c083695..fd95c1d 100644
--- a/gdb/testsuite/gdb.cp/class2.cc
+++ b/gdb/testsuite/gdb.cp/class2.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2003-2024 Free Software Foundation, Inc.
+ Copyright 2003-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/class2.exp b/gdb/testsuite/gdb.cp/class2.exp
index abea147..9c110cf 100644
--- a/gdb/testsuite/gdb.cp/class2.exp
+++ b/gdb/testsuite/gdb.cp/class2.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/classes.cc b/gdb/testsuite/gdb.cp/classes.cc
index 70b6ddf..d41ddce 100644
--- a/gdb/testsuite/gdb.cp/classes.cc
+++ b/gdb/testsuite/gdb.cp/classes.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1993-2024 Free Software Foundation, Inc.
+ Copyright 1993-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/classes.exp b/gdb/testsuite/gdb.cp/classes.exp
index 4d29bf5..cb6a862 100644
--- a/gdb/testsuite/gdb.cp/classes.exp
+++ b/gdb/testsuite/gdb.cp/classes.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/cmpd-minsyms.cc b/gdb/testsuite/gdb.cp/cmpd-minsyms.cc
index ccd1f09..a1f4455 100644
--- a/gdb/testsuite/gdb.cp/cmpd-minsyms.cc
+++ b/gdb/testsuite/gdb.cp/cmpd-minsyms.cc
@@ -1,6 +1,6 @@
/* This test case is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/cmpd-minsyms.exp b/gdb/testsuite/gdb.cp/cmpd-minsyms.exp
index 9f2d9ae..62952bd 100644
--- a/gdb/testsuite/gdb.cp/cmpd-minsyms.exp
+++ b/gdb/testsuite/gdb.cp/cmpd-minsyms.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# Contributed by Red Hat, originally written by Keith Seitz.
#
diff --git a/gdb/testsuite/gdb.cp/cold-clone.cc b/gdb/testsuite/gdb.cp/cold-clone.cc
index cd7eefa..07d1cdb 100644
--- a/gdb/testsuite/gdb.cp/cold-clone.cc
+++ b/gdb/testsuite/gdb.cp/cold-clone.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/cold-clone.exp b/gdb/testsuite/gdb.cp/cold-clone.exp
index 2874d33..50bdbaa 100644
--- a/gdb/testsuite/gdb.cp/cold-clone.exp
+++ b/gdb/testsuite/gdb.cp/cold-clone.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/constexpr-field.cc b/gdb/testsuite/gdb.cp/constexpr-field.cc
index 37f0d39..1322adf 100644
--- a/gdb/testsuite/gdb.cp/constexpr-field.cc
+++ b/gdb/testsuite/gdb.cp/constexpr-field.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/constexpr-field.exp b/gdb/testsuite/gdb.cp/constexpr-field.exp
index 14787c0..d1013cd 100644
--- a/gdb/testsuite/gdb.cp/constexpr-field.exp
+++ b/gdb/testsuite/gdb.cp/constexpr-field.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/converts.exp b/gdb/testsuite/gdb.cp/converts.exp
index 6ea21fe..e350d72 100644
--- a/gdb/testsuite/gdb.cp/converts.exp
+++ b/gdb/testsuite/gdb.cp/converts.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/cp-relocate.cc b/gdb/testsuite/gdb.cp/cp-relocate.cc
index b38da25..a4987fb 100644
--- a/gdb/testsuite/gdb.cp/cp-relocate.cc
+++ b/gdb/testsuite/gdb.cp/cp-relocate.cc
@@ -1,6 +1,6 @@
/* This test file is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/cp-relocate.exp b/gdb/testsuite/gdb.cp/cp-relocate.exp
index 14ce9f5..836f5fb 100644
--- a/gdb/testsuite/gdb.cp/cp-relocate.exp
+++ b/gdb/testsuite/gdb.cp/cp-relocate.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/cpcompletion.exp b/gdb/testsuite/gdb.cp/cpcompletion.exp
index 7b93253..1fb9a6b 100644
--- a/gdb/testsuite/gdb.cp/cpcompletion.exp
+++ b/gdb/testsuite/gdb.cp/cpcompletion.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/cpexprs-debug-types.exp b/gdb/testsuite/gdb.cp/cpexprs-debug-types.exp
index de90e38..6789701 100644
--- a/gdb/testsuite/gdb.cp/cpexprs-debug-types.exp
+++ b/gdb/testsuite/gdb.cp/cpexprs-debug-types.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/cpexprs.cc b/gdb/testsuite/gdb.cp/cpexprs.cc
index fbc3680..7d31503 100644
--- a/gdb/testsuite/gdb.cp/cpexprs.cc
+++ b/gdb/testsuite/gdb.cp/cpexprs.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
Contributed by Red Hat, originally written by Keith Seitz.
diff --git a/gdb/testsuite/gdb.cp/cpexprs.exp b/gdb/testsuite/gdb.cp/cpexprs.exp
index 36026ab..2610183 100644
--- a/gdb/testsuite/gdb.cp/cpexprs.exp
+++ b/gdb/testsuite/gdb.cp/cpexprs.exp
@@ -1,6 +1,6 @@
# cpexprs.exp - C++ expressions tests
#
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# Contributed by Red Hat, originally written by Keith Seitz.
#
diff --git a/gdb/testsuite/gdb.cp/cpexprs.exp.tcl b/gdb/testsuite/gdb.cp/cpexprs.exp.tcl
index cf84f5d..5c3dfd6 100644
--- a/gdb/testsuite/gdb.cp/cpexprs.exp.tcl
+++ b/gdb/testsuite/gdb.cp/cpexprs.exp.tcl
@@ -1,6 +1,6 @@
# cpexprs.exp - C++ expressions tests
#
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# Contributed by Red Hat, originally written by Keith Seitz.
#
@@ -28,17 +28,33 @@ proc test_breakpoint {func} {
delete_breakpoints
if { ! [gdb_breakpoint test_function] } {
fail "set test_function breakpoint for $func"
- } elseif { [gdb_test "continue" \
- "Continuing.\r\n\r\nBreakpoint $DEC+,.*test_function.*" \
- "continue to test_function for $func"] != 0 } {
- } else {
- gdb_breakpoint "$func"
- set i [expr {[string last : $func] + 1}]
- set efunc [string_to_regexp [string range $func $i end]]
- gdb_test "continue" \
- "Continuing.\r\n\r\nBreakpoint $DEC+,.*$efunc.*" \
- "continue to $func"
+ return
+ }
+
+ # Accept any input between "Continuing" and the breakpoint hit, as
+ # on Cygwin, we may see a "New Thread" notification. This is the
+ # Cygwin runtime spawning its own internal threads.
+ if { [gdb_test "continue" \
+ "Continuing.\r\n.*Breakpoint $DEC+,.*test_function.*" \
+ "continue to test_function for $func"] != 0 } {
+ return
}
+
+ # On some systems, the in-charge and not-in-charge dtors of a
+ # class may end up with the same address, so setting a breakpoint
+ # at a dtor like base::~base only finds one location. On other
+ # systems (e.g. Cygwin), the two dtors for the same class may have
+ # different addresses, so we find two locations for the
+ # breakpoint. Thus, expect that the breakpoint hit may or may not
+ # report a location number.
+ set bp_re "$DEC+(\.$DEC+)?"
+
+ gdb_breakpoint "$func"
+ set i [expr {[string last : $func] + 1}]
+ set efunc [string_to_regexp [string range $func $i end]]
+ gdb_test "continue" \
+ "Continuing.\r\n.*Breakpoint $bp_re,.*$efunc.*" \
+ "continue to $func"
}
# Add a function to the list of tested functions
diff --git a/gdb/testsuite/gdb.cp/cplabel.cc b/gdb/testsuite/gdb.cp/cplabel.cc
index 844e543..6b99b1d 100644
--- a/gdb/testsuite/gdb.cp/cplabel.cc
+++ b/gdb/testsuite/gdb.cp/cplabel.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/cplabel.exp b/gdb/testsuite/gdb.cp/cplabel.exp
index 5865352..0f2a947 100644
--- a/gdb/testsuite/gdb.cp/cplabel.exp
+++ b/gdb/testsuite/gdb.cp/cplabel.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/cplusfuncs.exp b/gdb/testsuite/gdb.cp/cplusfuncs.exp
index d789a1d..e785909 100644
--- a/gdb/testsuite/gdb.cp/cplusfuncs.exp
+++ b/gdb/testsuite/gdb.cp/cplusfuncs.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -579,7 +579,8 @@ proc do_tests {} {
gdb_test_no_output "set width 0"
- runto_main
+ # Don't run to main, to avoid loading and expanding debug info for
+ # libstdc++.
gdb_test_no_output "set language c++"
probe_demangler
diff --git a/gdb/testsuite/gdb.cp/cpsizeof.cc b/gdb/testsuite/gdb.cp/cpsizeof.cc
index a168fc3..9d34163 100644
--- a/gdb/testsuite/gdb.cp/cpsizeof.cc
+++ b/gdb/testsuite/gdb.cp/cpsizeof.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/cpsizeof.exp b/gdb/testsuite/gdb.cp/cpsizeof.exp
index 99861cb..ccaa95f 100644
--- a/gdb/testsuite/gdb.cp/cpsizeof.exp
+++ b/gdb/testsuite/gdb.cp/cpsizeof.exp
@@ -1,5 +1,5 @@
# sizeof() tests [c++/16675]
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/ctti.exp b/gdb/testsuite/gdb.cp/ctti.exp
index 493e565..06b4eeb 100644
--- a/gdb/testsuite/gdb.cp/ctti.exp
+++ b/gdb/testsuite/gdb.cp/ctti.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/cttiadd.cc b/gdb/testsuite/gdb.cp/cttiadd.cc
index d433006..e0f6395 100644
--- a/gdb/testsuite/gdb.cp/cttiadd.cc
+++ b/gdb/testsuite/gdb.cp/cttiadd.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1998-2024 Free Software Foundation, Inc.
+ Copyright 1998-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/cttiadd1.cc b/gdb/testsuite/gdb.cp/cttiadd1.cc
index d397139..2bd6f99 100644
--- a/gdb/testsuite/gdb.cp/cttiadd1.cc
+++ b/gdb/testsuite/gdb.cp/cttiadd1.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1998-2024 Free Software Foundation, Inc.
+ Copyright 1998-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/cttiadd2.cc b/gdb/testsuite/gdb.cp/cttiadd2.cc
index 3a6bb6d..ee55572 100644
--- a/gdb/testsuite/gdb.cp/cttiadd2.cc
+++ b/gdb/testsuite/gdb.cp/cttiadd2.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1998-2024 Free Software Foundation, Inc.
+ Copyright 1998-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/cttiadd3.cc b/gdb/testsuite/gdb.cp/cttiadd3.cc
index 1b2025a..39f120e 100644
--- a/gdb/testsuite/gdb.cp/cttiadd3.cc
+++ b/gdb/testsuite/gdb.cp/cttiadd3.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1998-2024 Free Software Foundation, Inc.
+ Copyright 1998-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/debug-expr.exp b/gdb/testsuite/gdb.cp/debug-expr.exp
index 2c8fd7f..86d6a29 100644
--- a/gdb/testsuite/gdb.cp/debug-expr.exp
+++ b/gdb/testsuite/gdb.cp/debug-expr.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/demangle.exp b/gdb/testsuite/gdb.cp/demangle.exp
index f181188..8da4377 100644
--- a/gdb/testsuite/gdb.cp/demangle.exp
+++ b/gdb/testsuite/gdb.cp/demangle.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1992-2024 Free Software Foundation, Inc.
+# Copyright (C) 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/derivation.cc b/gdb/testsuite/gdb.cp/derivation.cc
index 7229257..1a1f829 100644
--- a/gdb/testsuite/gdb.cp/derivation.cc
+++ b/gdb/testsuite/gdb.cp/derivation.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2003-2024 Free Software Foundation, Inc.
+ Copyright 2003-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/derivation.exp b/gdb/testsuite/gdb.cp/derivation.exp
index cd5bc8a..f61e35c 100644
--- a/gdb/testsuite/gdb.cp/derivation.exp
+++ b/gdb/testsuite/gdb.cp/derivation.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/derivation2.cc b/gdb/testsuite/gdb.cp/derivation2.cc
index 0ca7687..233580a 100644
--- a/gdb/testsuite/gdb.cp/derivation2.cc
+++ b/gdb/testsuite/gdb.cp/derivation2.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/destrprint.exp b/gdb/testsuite/gdb.cp/destrprint.exp
index e4d7ace..10f66b6 100644
--- a/gdb/testsuite/gdb.cp/destrprint.exp
+++ b/gdb/testsuite/gdb.cp/destrprint.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/disasm-func-name.cc b/gdb/testsuite/gdb.cp/disasm-func-name.cc
index d3af061..2b2b56e 100644
--- a/gdb/testsuite/gdb.cp/disasm-func-name.cc
+++ b/gdb/testsuite/gdb.cp/disasm-func-name.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/disasm-func-name.exp b/gdb/testsuite/gdb.cp/disasm-func-name.exp
index 0b5dd15..b7f7804 100644
--- a/gdb/testsuite/gdb.cp/disasm-func-name.exp
+++ b/gdb/testsuite/gdb.cp/disasm-func-name.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/dispcxx.cc b/gdb/testsuite/gdb.cp/dispcxx.cc
index 3e0bdc2..07b5dfb 100644
--- a/gdb/testsuite/gdb.cp/dispcxx.cc
+++ b/gdb/testsuite/gdb.cp/dispcxx.cc
@@ -1,6 +1,6 @@
/* Test for displays in C++.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/dispcxx.exp b/gdb/testsuite/gdb.cp/dispcxx.exp
index b0be98c..3d4703f 100644
--- a/gdb/testsuite/gdb.cp/dispcxx.exp
+++ b/gdb/testsuite/gdb.cp/dispcxx.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/empty-enum.cc b/gdb/testsuite/gdb.cp/empty-enum.cc
index 5d2b17d..d8d7d23 100644
--- a/gdb/testsuite/gdb.cp/empty-enum.cc
+++ b/gdb/testsuite/gdb.cp/empty-enum.cc
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.cp/empty-enum.exp b/gdb/testsuite/gdb.cp/empty-enum.exp
index 5fce487..f640e34 100644
--- a/gdb/testsuite/gdb.cp/empty-enum.exp
+++ b/gdb/testsuite/gdb.cp/empty-enum.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.cp/ena-dis-br-range.cc b/gdb/testsuite/gdb.cp/ena-dis-br-range.cc
index 94b381c..8292fb9 100644
--- a/gdb/testsuite/gdb.cp/ena-dis-br-range.cc
+++ b/gdb/testsuite/gdb.cp/ena-dis-br-range.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/ena-dis-br-range.exp b/gdb/testsuite/gdb.cp/ena-dis-br-range.exp
index 103d38b..d50685e 100644
--- a/gdb/testsuite/gdb.cp/ena-dis-br-range.exp
+++ b/gdb/testsuite/gdb.cp/ena-dis-br-range.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/enum-class.cc b/gdb/testsuite/gdb.cp/enum-class.cc
index e7accb2..64e2ee7 100644
--- a/gdb/testsuite/gdb.cp/enum-class.cc
+++ b/gdb/testsuite/gdb.cp/enum-class.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/enum-class.exp b/gdb/testsuite/gdb.cp/enum-class.exp
index 03537b3..dead0c5 100644
--- a/gdb/testsuite/gdb.cp/enum-class.exp
+++ b/gdb/testsuite/gdb.cp/enum-class.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/except-multi-location-lib.cc b/gdb/testsuite/gdb.cp/except-multi-location-lib.cc
index 380cbab..f990730 100644
--- a/gdb/testsuite/gdb.cp/except-multi-location-lib.cc
+++ b/gdb/testsuite/gdb.cp/except-multi-location-lib.cc
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.cp/except-multi-location-main.cc b/gdb/testsuite/gdb.cp/except-multi-location-main.cc
index 1bdce84..a0515f8 100644
--- a/gdb/testsuite/gdb.cp/except-multi-location-main.cc
+++ b/gdb/testsuite/gdb.cp/except-multi-location-main.cc
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.cp/except-multi-location.exp b/gdb/testsuite/gdb.cp/except-multi-location.exp
index 02e999f..3780447 100644
--- a/gdb/testsuite/gdb.cp/except-multi-location.exp
+++ b/gdb/testsuite/gdb.cp/except-multi-location.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.cp/exception.cc b/gdb/testsuite/gdb.cp/exception.cc
index 6f0e090..ed22d96 100644
--- a/gdb/testsuite/gdb.cp/exception.cc
+++ b/gdb/testsuite/gdb.cp/exception.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1997-2024 Free Software Foundation, Inc.
+ Copyright 1997-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/exception.exp b/gdb/testsuite/gdb.cp/exception.exp
index 5489d0c..cb20f17 100644
--- a/gdb/testsuite/gdb.cp/exception.exp
+++ b/gdb/testsuite/gdb.cp/exception.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/exceptprint.cc b/gdb/testsuite/gdb.cp/exceptprint.cc
index 84a98c4..8e06c72 100644
--- a/gdb/testsuite/gdb.cp/exceptprint.cc
+++ b/gdb/testsuite/gdb.cp/exceptprint.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/exceptprint.exp b/gdb/testsuite/gdb.cp/exceptprint.exp
index 02ec3ff..09e35fd 100644
--- a/gdb/testsuite/gdb.cp/exceptprint.exp
+++ b/gdb/testsuite/gdb.cp/exceptprint.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/expand-psymtabs-cxx.cc b/gdb/testsuite/gdb.cp/expand-psymtabs-cxx.cc
index 98e2fe0..f3c3626 100644
--- a/gdb/testsuite/gdb.cp/expand-psymtabs-cxx.cc
+++ b/gdb/testsuite/gdb.cp/expand-psymtabs-cxx.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/expand-psymtabs-cxx.exp b/gdb/testsuite/gdb.cp/expand-psymtabs-cxx.exp
index 42984e6..182b5d7 100644
--- a/gdb/testsuite/gdb.cp/expand-psymtabs-cxx.exp
+++ b/gdb/testsuite/gdb.cp/expand-psymtabs-cxx.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/expand-sals.cc b/gdb/testsuite/gdb.cp/expand-sals.cc
index bda5a38..8fd47d7 100644
--- a/gdb/testsuite/gdb.cp/expand-sals.cc
+++ b/gdb/testsuite/gdb.cp/expand-sals.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.cp/expand-sals.exp b/gdb/testsuite/gdb.cp/expand-sals.exp
index 84ec345..8d54247 100644
--- a/gdb/testsuite/gdb.cp/expand-sals.exp
+++ b/gdb/testsuite/gdb.cp/expand-sals.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/extern-c.cc b/gdb/testsuite/gdb.cp/extern-c.cc
index 9ba5607..a095a28 100644
--- a/gdb/testsuite/gdb.cp/extern-c.cc
+++ b/gdb/testsuite/gdb.cp/extern-c.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/extern-c.exp b/gdb/testsuite/gdb.cp/extern-c.exp
index 94fc65b..d3db955 100644
--- a/gdb/testsuite/gdb.cp/extern-c.exp
+++ b/gdb/testsuite/gdb.cp/extern-c.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/filename.cc b/gdb/testsuite/gdb.cp/filename.cc
index 8e888f6..fe428df 100644
--- a/gdb/testsuite/gdb.cp/filename.cc
+++ b/gdb/testsuite/gdb.cp/filename.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/filename.exp b/gdb/testsuite/gdb.cp/filename.exp
index 20f6a1c..b1f7ec6 100644
--- a/gdb/testsuite/gdb.cp/filename.exp
+++ b/gdb/testsuite/gdb.cp/filename.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/formatted-ref.cc b/gdb/testsuite/gdb.cp/formatted-ref.cc
index 4e38e33..8a10760 100644
--- a/gdb/testsuite/gdb.cp/formatted-ref.cc
+++ b/gdb/testsuite/gdb.cp/formatted-ref.cc
@@ -1,4 +1,4 @@
-/* Copyright 2007-2024 Free Software Foundation, Inc.
+/* Copyright 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.cp/formatted-ref.exp b/gdb/testsuite/gdb.cp/formatted-ref.exp
index 97c0198..0c974ad 100644
--- a/gdb/testsuite/gdb.cp/formatted-ref.exp
+++ b/gdb/testsuite/gdb.cp/formatted-ref.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/fpointer.exp b/gdb/testsuite/gdb.cp/fpointer.exp
index 4130be8..4287452 100644
--- a/gdb/testsuite/gdb.cp/fpointer.exp
+++ b/gdb/testsuite/gdb.cp/fpointer.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/gdb1355.exp b/gdb/testsuite/gdb.cp/gdb1355.exp
index 17e7b35..3120b1f 100644
--- a/gdb/testsuite/gdb.cp/gdb1355.exp
+++ b/gdb/testsuite/gdb.cp/gdb1355.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/gdb2384-base.cc b/gdb/testsuite/gdb.cp/gdb2384-base.cc
index aeb6fd9..1d09817 100644
--- a/gdb/testsuite/gdb.cp/gdb2384-base.cc
+++ b/gdb/testsuite/gdb.cp/gdb2384-base.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/gdb2384-base.h b/gdb/testsuite/gdb.cp/gdb2384-base.h
index 483a37f..07a61d2 100644
--- a/gdb/testsuite/gdb.cp/gdb2384-base.h
+++ b/gdb/testsuite/gdb.cp/gdb2384-base.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/gdb2384.cc b/gdb/testsuite/gdb.cp/gdb2384.cc
index 83f3405..440deba 100644
--- a/gdb/testsuite/gdb.cp/gdb2384.cc
+++ b/gdb/testsuite/gdb.cp/gdb2384.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/gdb2384.exp b/gdb/testsuite/gdb.cp/gdb2384.exp
index b378692..204bdeb 100644
--- a/gdb/testsuite/gdb.cp/gdb2384.exp
+++ b/gdb/testsuite/gdb.cp/gdb2384.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/gdb2495.cc b/gdb/testsuite/gdb.cp/gdb2495.cc
index 4667e3c..ca70dc7 100644
--- a/gdb/testsuite/gdb.cp/gdb2495.cc
+++ b/gdb/testsuite/gdb.cp/gdb2495.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/gdb2495.exp b/gdb/testsuite/gdb.cp/gdb2495.exp
index 86ee7f9..d5fdace 100644
--- a/gdb/testsuite/gdb.cp/gdb2495.exp
+++ b/gdb/testsuite/gdb.cp/gdb2495.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/hang.exp b/gdb/testsuite/gdb.cp/hang.exp
index 86eab15..7279e01 100644
--- a/gdb/testsuite/gdb.cp/hang.exp
+++ b/gdb/testsuite/gdb.cp/hang.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/impl-this.cc b/gdb/testsuite/gdb.cp/impl-this.cc
index ba2fd02..c6a775e 100644
--- a/gdb/testsuite/gdb.cp/impl-this.cc
+++ b/gdb/testsuite/gdb.cp/impl-this.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/impl-this.exp b/gdb/testsuite/gdb.cp/impl-this.exp
index 6d6449c..e17809a 100644
--- a/gdb/testsuite/gdb.cp/impl-this.exp
+++ b/gdb/testsuite/gdb.cp/impl-this.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/includefile b/gdb/testsuite/gdb.cp/includefile
index 52841f4..70d0452 100644
--- a/gdb/testsuite/gdb.cp/includefile
+++ b/gdb/testsuite/gdb.cp/includefile
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/incomplete-type-overload.cc b/gdb/testsuite/gdb.cp/incomplete-type-overload.cc
index e03a4d3..b62807a 100644
--- a/gdb/testsuite/gdb.cp/incomplete-type-overload.cc
+++ b/gdb/testsuite/gdb.cp/incomplete-type-overload.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/incomplete-type-overload.exp b/gdb/testsuite/gdb.cp/incomplete-type-overload.exp
index 83f0928..aa51fd9 100644
--- a/gdb/testsuite/gdb.cp/incomplete-type-overload.exp
+++ b/gdb/testsuite/gdb.cp/incomplete-type-overload.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/infcall-dlopen-lib.cc b/gdb/testsuite/gdb.cp/infcall-dlopen-lib.cc
index 0d33595..f6afa97 100644
--- a/gdb/testsuite/gdb.cp/infcall-dlopen-lib.cc
+++ b/gdb/testsuite/gdb.cp/infcall-dlopen-lib.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/infcall-dlopen.cc b/gdb/testsuite/gdb.cp/infcall-dlopen.cc
index ec8be2d..52bfde4 100644
--- a/gdb/testsuite/gdb.cp/infcall-dlopen.cc
+++ b/gdb/testsuite/gdb.cp/infcall-dlopen.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/infcall-dlopen.exp b/gdb/testsuite/gdb.cp/infcall-dlopen.exp
index eb073af..4662e0f 100644
--- a/gdb/testsuite/gdb.cp/infcall-dlopen.exp
+++ b/gdb/testsuite/gdb.cp/infcall-dlopen.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/infcall-nodebug-c++-d0.exp b/gdb/testsuite/gdb.cp/infcall-nodebug-c++-d0.exp
index 75b0d8c..05fa8bf 100644
--- a/gdb/testsuite/gdb.cp/infcall-nodebug-c++-d0.exp
+++ b/gdb/testsuite/gdb.cp/infcall-nodebug-c++-d0.exp
@@ -1,5 +1,5 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/infcall-nodebug-c++-d1.exp b/gdb/testsuite/gdb.cp/infcall-nodebug-c++-d1.exp
index df8a5bd..c47eb59 100644
--- a/gdb/testsuite/gdb.cp/infcall-nodebug-c++-d1.exp
+++ b/gdb/testsuite/gdb.cp/infcall-nodebug-c++-d1.exp
@@ -1,5 +1,5 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/infcall-nodebug-c-d0.exp b/gdb/testsuite/gdb.cp/infcall-nodebug-c-d0.exp
index 8233c75..9f6b786 100644
--- a/gdb/testsuite/gdb.cp/infcall-nodebug-c-d0.exp
+++ b/gdb/testsuite/gdb.cp/infcall-nodebug-c-d0.exp
@@ -1,5 +1,5 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/infcall-nodebug-c-d1.exp b/gdb/testsuite/gdb.cp/infcall-nodebug-c-d1.exp
index 2216e54..5d2bc87 100644
--- a/gdb/testsuite/gdb.cp/infcall-nodebug-c-d1.exp
+++ b/gdb/testsuite/gdb.cp/infcall-nodebug-c-d1.exp
@@ -1,5 +1,5 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/infcall-nodebug-lib.c b/gdb/testsuite/gdb.cp/infcall-nodebug-lib.c
index 6d94fad..9ca9294 100644
--- a/gdb/testsuite/gdb.cp/infcall-nodebug-lib.c
+++ b/gdb/testsuite/gdb.cp/infcall-nodebug-lib.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/infcall-nodebug-main.c b/gdb/testsuite/gdb.cp/infcall-nodebug-main.c
index 0bb498b..83c27e7 100644
--- a/gdb/testsuite/gdb.cp/infcall-nodebug-main.c
+++ b/gdb/testsuite/gdb.cp/infcall-nodebug-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/infcall-nodebug.exp.tcl b/gdb/testsuite/gdb.cp/infcall-nodebug.exp.tcl
index ff0e8f4..0a7bc76 100644
--- a/gdb/testsuite/gdb.cp/infcall-nodebug.exp.tcl
+++ b/gdb/testsuite/gdb.cp/infcall-nodebug.exp.tcl
@@ -1,5 +1,5 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/inherit.exp b/gdb/testsuite/gdb.cp/inherit.exp
index 929c898..25a7e78 100644
--- a/gdb/testsuite/gdb.cp/inherit.exp
+++ b/gdb/testsuite/gdb.cp/inherit.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/iostream.cc b/gdb/testsuite/gdb.cp/iostream.cc
index 887e88a..9a8bab3 100644
--- a/gdb/testsuite/gdb.cp/iostream.cc
+++ b/gdb/testsuite/gdb.cp/iostream.cc
@@ -1,6 +1,6 @@
/* Code to go along with tests in rtti.exp.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.cp/iostream.exp b/gdb/testsuite/gdb.cp/iostream.exp
index c9f8592..8d96a9f 100644
--- a/gdb/testsuite/gdb.cp/iostream.exp
+++ b/gdb/testsuite/gdb.cp/iostream.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/koenig.exp b/gdb/testsuite/gdb.cp/koenig.exp
index 7e0b4f7..377057e 100644
--- a/gdb/testsuite/gdb.cp/koenig.exp
+++ b/gdb/testsuite/gdb.cp/koenig.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/local-static.c b/gdb/testsuite/gdb.cp/local-static.c
index 0b190e4..85b452a 100644
--- a/gdb/testsuite/gdb.cp/local-static.c
+++ b/gdb/testsuite/gdb.cp/local-static.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/local-static.exp b/gdb/testsuite/gdb.cp/local-static.exp
index 1acf7d6..c80c621 100644
--- a/gdb/testsuite/gdb.cp/local-static.exp
+++ b/gdb/testsuite/gdb.cp/local-static.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/local.exp b/gdb/testsuite/gdb.cp/local.exp
index 43db4a4..621f2f6 100644
--- a/gdb/testsuite/gdb.cp/local.exp
+++ b/gdb/testsuite/gdb.cp/local.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/m-data.exp b/gdb/testsuite/gdb.cp/m-data.exp
index eb75a1c..05865e5 100644
--- a/gdb/testsuite/gdb.cp/m-data.exp
+++ b/gdb/testsuite/gdb.cp/m-data.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/m-static.exp b/gdb/testsuite/gdb.cp/m-static.exp
index 3d59a48..6b10804 100644
--- a/gdb/testsuite/gdb.cp/m-static.exp
+++ b/gdb/testsuite/gdb.cp/m-static.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/main-cp.exp b/gdb/testsuite/gdb.cp/main-cp.exp
index 98024bf..f859226 100644
--- a/gdb/testsuite/gdb.cp/main-cp.exp
+++ b/gdb/testsuite/gdb.cp/main-cp.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/main.cc b/gdb/testsuite/gdb.cp/main.cc
index 75dd353..b6c34a2 100644
--- a/gdb/testsuite/gdb.cp/main.cc
+++ b/gdb/testsuite/gdb.cp/main.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/maint.exp b/gdb/testsuite/gdb.cp/maint.exp
index abd5931..68576d5 100644
--- a/gdb/testsuite/gdb.cp/maint.exp
+++ b/gdb/testsuite/gdb.cp/maint.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/many-args.cc b/gdb/testsuite/gdb.cp/many-args.cc
index f801c27..bf249ac 100644
--- a/gdb/testsuite/gdb.cp/many-args.cc
+++ b/gdb/testsuite/gdb.cp/many-args.cc
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.cp/many-args.exp b/gdb/testsuite/gdb.cp/many-args.exp
index 7e76ce1..b7e5a8e 100644
--- a/gdb/testsuite/gdb.cp/many-args.exp
+++ b/gdb/testsuite/gdb.cp/many-args.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/mb-ctor.exp b/gdb/testsuite/gdb.cp/mb-ctor.exp
index 1a84b79..db1da69 100644
--- a/gdb/testsuite/gdb.cp/mb-ctor.exp
+++ b/gdb/testsuite/gdb.cp/mb-ctor.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/mb-inline.exp b/gdb/testsuite/gdb.cp/mb-inline.exp
index db80bb4..d6b30b8 100644
--- a/gdb/testsuite/gdb.cp/mb-inline.exp
+++ b/gdb/testsuite/gdb.cp/mb-inline.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/mb-inline.h b/gdb/testsuite/gdb.cp/mb-inline.h
index 8983545..c5bc2ef 100644
--- a/gdb/testsuite/gdb.cp/mb-inline.h
+++ b/gdb/testsuite/gdb.cp/mb-inline.h
@@ -4,7 +4,7 @@
This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/mb-inline1.cc b/gdb/testsuite/gdb.cp/mb-inline1.cc
index 1dfc7bf..0c82905 100644
--- a/gdb/testsuite/gdb.cp/mb-inline1.cc
+++ b/gdb/testsuite/gdb.cp/mb-inline1.cc
@@ -2,7 +2,7 @@
This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/mb-inline2.cc b/gdb/testsuite/gdb.cp/mb-inline2.cc
index 545bf20..8e6b9e6 100644
--- a/gdb/testsuite/gdb.cp/mb-inline2.cc
+++ b/gdb/testsuite/gdb.cp/mb-inline2.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/mb-templates.exp b/gdb/testsuite/gdb.cp/mb-templates.exp
index 2df88a3..0354a5a 100644
--- a/gdb/testsuite/gdb.cp/mb-templates.exp
+++ b/gdb/testsuite/gdb.cp/mb-templates.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/member-name.cc b/gdb/testsuite/gdb.cp/member-name.cc
index f9ae875..1f1db76 100644
--- a/gdb/testsuite/gdb.cp/member-name.cc
+++ b/gdb/testsuite/gdb.cp/member-name.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2003-2024 Free Software Foundation, Inc.
+ Copyright 2003-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/member-name.exp b/gdb/testsuite/gdb.cp/member-name.exp
index 70806b5..069d5b2 100644
--- a/gdb/testsuite/gdb.cp/member-name.exp
+++ b/gdb/testsuite/gdb.cp/member-name.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/member-ptr.cc b/gdb/testsuite/gdb.cp/member-ptr.cc
index 7fb2a91..6fb373b 100644
--- a/gdb/testsuite/gdb.cp/member-ptr.cc
+++ b/gdb/testsuite/gdb.cp/member-ptr.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1998-2024 Free Software Foundation, Inc.
+ Copyright 1998-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/member-ptr.exp b/gdb/testsuite/gdb.cp/member-ptr.exp
index d02a1ea..83640e6 100644
--- a/gdb/testsuite/gdb.cp/member-ptr.exp
+++ b/gdb/testsuite/gdb.cp/member-ptr.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This file is part of the gdb testsuite
diff --git a/gdb/testsuite/gdb.cp/meth-typedefs.cc b/gdb/testsuite/gdb.cp/meth-typedefs.cc
index 48ac17d..9842288 100644
--- a/gdb/testsuite/gdb.cp/meth-typedefs.cc
+++ b/gdb/testsuite/gdb.cp/meth-typedefs.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/meth-typedefs.exp b/gdb/testsuite/gdb.cp/meth-typedefs.exp
index 149f44c..0438b2e 100644
--- a/gdb/testsuite/gdb.cp/meth-typedefs.exp
+++ b/gdb/testsuite/gdb.cp/meth-typedefs.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# Contributed by Red Hat, originally written by Keith Seitz.
#
diff --git a/gdb/testsuite/gdb.cp/method-call-in-c.cc b/gdb/testsuite/gdb.cp/method-call-in-c.cc
index 87820ab..065dcec 100644
--- a/gdb/testsuite/gdb.cp/method-call-in-c.cc
+++ b/gdb/testsuite/gdb.cp/method-call-in-c.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/method-call-in-c.exp b/gdb/testsuite/gdb.cp/method-call-in-c.exp
index 1c2b432..6cbdda0 100644
--- a/gdb/testsuite/gdb.cp/method-call-in-c.exp
+++ b/gdb/testsuite/gdb.cp/method-call-in-c.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/method.exp b/gdb/testsuite/gdb.cp/method.exp
index 9383816..2e0f412 100644
--- a/gdb/testsuite/gdb.cp/method.exp
+++ b/gdb/testsuite/gdb.cp/method.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/method2.exp b/gdb/testsuite/gdb.cp/method2.exp
index 0a07ff3..71cf0f0 100644
--- a/gdb/testsuite/gdb.cp/method2.exp
+++ b/gdb/testsuite/gdb.cp/method2.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/minsym-fallback-main.cc b/gdb/testsuite/gdb.cp/minsym-fallback-main.cc
index 5c7a617..f16a4ca 100644
--- a/gdb/testsuite/gdb.cp/minsym-fallback-main.cc
+++ b/gdb/testsuite/gdb.cp/minsym-fallback-main.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/minsym-fallback.cc b/gdb/testsuite/gdb.cp/minsym-fallback.cc
index 2ceb062..68de64b 100644
--- a/gdb/testsuite/gdb.cp/minsym-fallback.cc
+++ b/gdb/testsuite/gdb.cp/minsym-fallback.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/minsym-fallback.exp b/gdb/testsuite/gdb.cp/minsym-fallback.exp
index 6d8fd48..2464290 100644
--- a/gdb/testsuite/gdb.cp/minsym-fallback.exp
+++ b/gdb/testsuite/gdb.cp/minsym-fallback.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/minsym-fallback.h b/gdb/testsuite/gdb.cp/minsym-fallback.h
index d4c03ff..d1beb6f 100644
--- a/gdb/testsuite/gdb.cp/minsym-fallback.h
+++ b/gdb/testsuite/gdb.cp/minsym-fallback.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/misc.cc b/gdb/testsuite/gdb.cp/misc.cc
index 9819e21..5db4619 100644
--- a/gdb/testsuite/gdb.cp/misc.cc
+++ b/gdb/testsuite/gdb.cp/misc.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1993-2024 Free Software Foundation, Inc.
+ Copyright 1993-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/misc.exp b/gdb/testsuite/gdb.cp/misc.exp
index 3f5532e..6d3e000 100644
--- a/gdb/testsuite/gdb.cp/misc.exp
+++ b/gdb/testsuite/gdb.cp/misc.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/namelessclass.S b/gdb/testsuite/gdb.cp/namelessclass.S
index 5d4d7c1..9f1cbb3 100644
--- a/gdb/testsuite/gdb.cp/namelessclass.S
+++ b/gdb/testsuite/gdb.cp/namelessclass.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/namelessclass.cc b/gdb/testsuite/gdb.cp/namelessclass.cc
index ff13486..344fbec 100644
--- a/gdb/testsuite/gdb.cp/namelessclass.cc
+++ b/gdb/testsuite/gdb.cp/namelessclass.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/namelessclass.exp b/gdb/testsuite/gdb.cp/namelessclass.exp
index fc592ce..c1d3685 100644
--- a/gdb/testsuite/gdb.cp/namelessclass.exp
+++ b/gdb/testsuite/gdb.cp/namelessclass.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/namespace-enum.exp b/gdb/testsuite/gdb.cp/namespace-enum.exp
index 77c7daa..575ad3a 100644
--- a/gdb/testsuite/gdb.cp/namespace-enum.exp
+++ b/gdb/testsuite/gdb.cp/namespace-enum.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/namespace-nested-import.exp b/gdb/testsuite/gdb.cp/namespace-nested-import.exp
index 8bf0982..1d15c20 100644
--- a/gdb/testsuite/gdb.cp/namespace-nested-import.exp
+++ b/gdb/testsuite/gdb.cp/namespace-nested-import.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/namespace.exp b/gdb/testsuite/gdb.cp/namespace.exp
index 504359d..0ba8387 100644
--- a/gdb/testsuite/gdb.cp/namespace.exp
+++ b/gdb/testsuite/gdb.cp/namespace.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/namespace1.cc b/gdb/testsuite/gdb.cp/namespace1.cc
index 933321c..608e314 100644
--- a/gdb/testsuite/gdb.cp/namespace1.cc
+++ b/gdb/testsuite/gdb.cp/namespace1.cc
@@ -1,4 +1,4 @@
-/* Copyright 2003-2024 Free Software Foundation, Inc.
+/* Copyright 2003-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/nested-class-func-class.cc b/gdb/testsuite/gdb.cp/nested-class-func-class.cc
index 0661796..05b0fb0 100644
--- a/gdb/testsuite/gdb.cp/nested-class-func-class.cc
+++ b/gdb/testsuite/gdb.cp/nested-class-func-class.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/nested-class-func-class.exp b/gdb/testsuite/gdb.cp/nested-class-func-class.exp
index 04993e3..4824fdd 100644
--- a/gdb/testsuite/gdb.cp/nested-class-func-class.exp
+++ b/gdb/testsuite/gdb.cp/nested-class-func-class.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/nested-types.cc b/gdb/testsuite/gdb.cp/nested-types.cc
index 0201ca3..9db0dee 100644
--- a/gdb/testsuite/gdb.cp/nested-types.cc
+++ b/gdb/testsuite/gdb.cp/nested-types.cc
@@ -3,7 +3,7 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/nested-types.exp b/gdb/testsuite/gdb.cp/nested-types.exp
index 294358c..620b4f2 100644
--- a/gdb/testsuite/gdb.cp/nested-types.exp
+++ b/gdb/testsuite/gdb.cp/nested-types.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/nextoverthrow.cc b/gdb/testsuite/gdb.cp/nextoverthrow.cc
index 2f06cd2..a1ad63a 100644
--- a/gdb/testsuite/gdb.cp/nextoverthrow.cc
+++ b/gdb/testsuite/gdb.cp/nextoverthrow.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/nextoverthrow.exp b/gdb/testsuite/gdb.cp/nextoverthrow.exp
index 61854a9..2548305 100644
--- a/gdb/testsuite/gdb.cp/nextoverthrow.exp
+++ b/gdb/testsuite/gdb.cp/nextoverthrow.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/no-libstdcxx-probe.exp b/gdb/testsuite/gdb.cp/no-libstdcxx-probe.exp
index 5332575..4f84480 100644
--- a/gdb/testsuite/gdb.cp/no-libstdcxx-probe.exp
+++ b/gdb/testsuite/gdb.cp/no-libstdcxx-probe.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/non-trivial-retval.cc b/gdb/testsuite/gdb.cp/non-trivial-retval.cc
index 4e81251..0861a63 100644
--- a/gdb/testsuite/gdb.cp/non-trivial-retval.cc
+++ b/gdb/testsuite/gdb.cp/non-trivial-retval.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/non-trivial-retval.exp b/gdb/testsuite/gdb.cp/non-trivial-retval.exp
index 64c0867..9f54e4d 100644
--- a/gdb/testsuite/gdb.cp/non-trivial-retval.exp
+++ b/gdb/testsuite/gdb.cp/non-trivial-retval.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/noparam.cc b/gdb/testsuite/gdb.cp/noparam.cc
index d404565..e9671f0 100644
--- a/gdb/testsuite/gdb.cp/noparam.cc
+++ b/gdb/testsuite/gdb.cp/noparam.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/noparam.exp b/gdb/testsuite/gdb.cp/noparam.exp
index 9a2b6c1..6f8e7bf 100644
--- a/gdb/testsuite/gdb.cp/noparam.exp
+++ b/gdb/testsuite/gdb.cp/noparam.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/nsalias.cc b/gdb/testsuite/gdb.cp/nsalias.cc
index a69d42f..c1ed9bf 100644
--- a/gdb/testsuite/gdb.cp/nsalias.cc
+++ b/gdb/testsuite/gdb.cp/nsalias.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/nsalias.exp b/gdb/testsuite/gdb.cp/nsalias.exp
index 0c29e6f..a145410 100644
--- a/gdb/testsuite/gdb.cp/nsalias.exp
+++ b/gdb/testsuite/gdb.cp/nsalias.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/nsdecl.exp b/gdb/testsuite/gdb.cp/nsdecl.exp
index bb8e956..40030ed 100644
--- a/gdb/testsuite/gdb.cp/nsdecl.exp
+++ b/gdb/testsuite/gdb.cp/nsdecl.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/nsimport.exp b/gdb/testsuite/gdb.cp/nsimport.exp
index 8d82b16..0060ed5 100644
--- a/gdb/testsuite/gdb.cp/nsimport.exp
+++ b/gdb/testsuite/gdb.cp/nsimport.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/nsnested.exp b/gdb/testsuite/gdb.cp/nsnested.exp
index 61f6175..fa3e03a 100644
--- a/gdb/testsuite/gdb.cp/nsnested.exp
+++ b/gdb/testsuite/gdb.cp/nsnested.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/nsnoimports.exp b/gdb/testsuite/gdb.cp/nsnoimports.exp
index 9d8cace..39a3480 100644
--- a/gdb/testsuite/gdb.cp/nsnoimports.exp
+++ b/gdb/testsuite/gdb.cp/nsnoimports.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/nsrecurs.exp b/gdb/testsuite/gdb.cp/nsrecurs.exp
index 01a3965..cb6689a 100644
--- a/gdb/testsuite/gdb.cp/nsrecurs.exp
+++ b/gdb/testsuite/gdb.cp/nsrecurs.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/nsstress.exp b/gdb/testsuite/gdb.cp/nsstress.exp
index 8cba69a..085dc75 100644
--- a/gdb/testsuite/gdb.cp/nsstress.exp
+++ b/gdb/testsuite/gdb.cp/nsstress.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/nsusing.exp b/gdb/testsuite/gdb.cp/nsusing.exp
index 6a4e837..988bf2f 100644
--- a/gdb/testsuite/gdb.cp/nsusing.exp
+++ b/gdb/testsuite/gdb.cp/nsusing.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/operator.exp b/gdb/testsuite/gdb.cp/operator.exp
index 504001d..c3788b6 100644
--- a/gdb/testsuite/gdb.cp/operator.exp
+++ b/gdb/testsuite/gdb.cp/operator.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/oranking.exp b/gdb/testsuite/gdb.cp/oranking.exp
index c682c7b..9bb7269 100644
--- a/gdb/testsuite/gdb.cp/oranking.exp
+++ b/gdb/testsuite/gdb.cp/oranking.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/overload-const.cc b/gdb/testsuite/gdb.cp/overload-const.cc
index c3c42f6..f320f0d 100644
--- a/gdb/testsuite/gdb.cp/overload-const.cc
+++ b/gdb/testsuite/gdb.cp/overload-const.cc
@@ -1,6 +1,6 @@
/* This test case is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/overload-const.exp b/gdb/testsuite/gdb.cp/overload-const.exp
index 888de78..75176b9 100644
--- a/gdb/testsuite/gdb.cp/overload-const.exp
+++ b/gdb/testsuite/gdb.cp/overload-const.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/overload.exp b/gdb/testsuite/gdb.cp/overload.exp
index da9deef..af5b23b 100644
--- a/gdb/testsuite/gdb.cp/overload.exp
+++ b/gdb/testsuite/gdb.cp/overload.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/ovldbreak.exp b/gdb/testsuite/gdb.cp/ovldbreak.exp
index 99d0a38..fd9fb94 100644
--- a/gdb/testsuite/gdb.cp/ovldbreak.exp
+++ b/gdb/testsuite/gdb.cp/ovldbreak.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2024 Free Software Foundation, Inc.
+# Copyright (C) 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/ovsrch.exp b/gdb/testsuite/gdb.cp/ovsrch.exp
index 31d5f90..e54f2e4 100644
--- a/gdb/testsuite/gdb.cp/ovsrch.exp
+++ b/gdb/testsuite/gdb.cp/ovsrch.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# Contributed by Red Hat, originally written by Keith Seitz.
#
diff --git a/gdb/testsuite/gdb.cp/ovsrch.h b/gdb/testsuite/gdb.cp/ovsrch.h
index 5d6796b..c7feea3 100644
--- a/gdb/testsuite/gdb.cp/ovsrch.h
+++ b/gdb/testsuite/gdb.cp/ovsrch.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/ovsrch1.cc b/gdb/testsuite/gdb.cp/ovsrch1.cc
index 979f9a7..6ed1758 100644
--- a/gdb/testsuite/gdb.cp/ovsrch1.cc
+++ b/gdb/testsuite/gdb.cp/ovsrch1.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/ovsrch2.cc b/gdb/testsuite/gdb.cp/ovsrch2.cc
index 38d4665..ebcbd6b 100644
--- a/gdb/testsuite/gdb.cp/ovsrch2.cc
+++ b/gdb/testsuite/gdb.cp/ovsrch2.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/ovsrch3.cc b/gdb/testsuite/gdb.cp/ovsrch3.cc
index 68de854..39ac386 100644
--- a/gdb/testsuite/gdb.cp/ovsrch3.cc
+++ b/gdb/testsuite/gdb.cp/ovsrch3.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/ovsrch4.cc b/gdb/testsuite/gdb.cp/ovsrch4.cc
index 606f9a1..e4b856e 100644
--- a/gdb/testsuite/gdb.cp/ovsrch4.cc
+++ b/gdb/testsuite/gdb.cp/ovsrch4.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/paramless.cc b/gdb/testsuite/gdb.cp/paramless.cc
index 4fa54fb..e7158d0 100644
--- a/gdb/testsuite/gdb.cp/paramless.cc
+++ b/gdb/testsuite/gdb.cp/paramless.cc
@@ -1,6 +1,6 @@
/* Test case for template breakpoint test.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.cp/paramless.exp b/gdb/testsuite/gdb.cp/paramless.exp
index fe7c0b3..ea9f5da 100644
--- a/gdb/testsuite/gdb.cp/paramless.exp
+++ b/gdb/testsuite/gdb.cp/paramless.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -30,17 +30,12 @@ if {[prepare_for_testing "failed to prepare" $testfile $srcfile $opts]} {
return -1
}
-gdb_breakpoint "outer<int>::fn" message
-delete_breakpoints
-
-gdb_breakpoint "outer<char>::fn<short>" message
-delete_breakpoints
+foreach ordinary {"outer<int>::fn" "outer<char>::fn<short>" "toplev<char>"} {
+ gdb_breakpoint $ordinary message
+ clean_restart $testfile
+}
gdb_test "break outer::fn" "Breakpoint $decimal at .*2 locations."
-delete_breakpoints
+clean_restart $testfile
gdb_test "break toplev" "Breakpoint $decimal at .*2 locations."
-delete_breakpoints
-
-gdb_breakpoint "toplev<char>" message
-delete_breakpoints
diff --git a/gdb/testsuite/gdb.cp/paren-type.cc b/gdb/testsuite/gdb.cp/paren-type.cc
index 3041ec3..60432ec 100644
--- a/gdb/testsuite/gdb.cp/paren-type.cc
+++ b/gdb/testsuite/gdb.cp/paren-type.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/paren-type.exp b/gdb/testsuite/gdb.cp/paren-type.exp
index a95e049..2de6436 100644
--- a/gdb/testsuite/gdb.cp/paren-type.exp
+++ b/gdb/testsuite/gdb.cp/paren-type.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/parse-lang.cc b/gdb/testsuite/gdb.cp/parse-lang.cc
index b9993a9..37777d9 100644
--- a/gdb/testsuite/gdb.cp/parse-lang.cc
+++ b/gdb/testsuite/gdb.cp/parse-lang.cc
@@ -1,4 +1,4 @@
-/* Copyright 2013-2024 Free Software Foundation, Inc.
+/* Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/parse-lang.exp b/gdb/testsuite/gdb.cp/parse-lang.exp
index 2b72ba0..257b479d9 100644
--- a/gdb/testsuite/gdb.cp/parse-lang.exp
+++ b/gdb/testsuite/gdb.cp/parse-lang.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/pass-by-ref-2.cc b/gdb/testsuite/gdb.cp/pass-by-ref-2.cc
index f575d57..cf0a6ed 100644
--- a/gdb/testsuite/gdb.cp/pass-by-ref-2.cc
+++ b/gdb/testsuite/gdb.cp/pass-by-ref-2.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/pass-by-ref-2.exp b/gdb/testsuite/gdb.cp/pass-by-ref-2.exp
index 00141d8..21df064 100644
--- a/gdb/testsuite/gdb.cp/pass-by-ref-2.exp
+++ b/gdb/testsuite/gdb.cp/pass-by-ref-2.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/pass-by-ref.exp b/gdb/testsuite/gdb.cp/pass-by-ref.exp
index a1f1df4..75b5257 100644
--- a/gdb/testsuite/gdb.cp/pass-by-ref.exp
+++ b/gdb/testsuite/gdb.cp/pass-by-ref.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/pointer-to-member.cc b/gdb/testsuite/gdb.cp/pointer-to-member.cc
index 549032b..ab51bfa 100644
--- a/gdb/testsuite/gdb.cp/pointer-to-member.cc
+++ b/gdb/testsuite/gdb.cp/pointer-to-member.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/pointer-to-member.exp b/gdb/testsuite/gdb.cp/pointer-to-member.exp
index 1d7925b..6dc5090 100644
--- a/gdb/testsuite/gdb.cp/pointer-to-member.exp
+++ b/gdb/testsuite/gdb.cp/pointer-to-member.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/pr-1023.exp b/gdb/testsuite/gdb.cp/pr-1023.exp
index d39deec..f731b1f 100644
--- a/gdb/testsuite/gdb.cp/pr-1023.exp
+++ b/gdb/testsuite/gdb.cp/pr-1023.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/pr-1210.exp b/gdb/testsuite/gdb.cp/pr-1210.exp
index 770a160..295ca2b 100644
--- a/gdb/testsuite/gdb.cp/pr-1210.exp
+++ b/gdb/testsuite/gdb.cp/pr-1210.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/pr-574.cc b/gdb/testsuite/gdb.cp/pr-574.cc
index d0a59ba..35eb1b5 100644
--- a/gdb/testsuite/gdb.cp/pr-574.cc
+++ b/gdb/testsuite/gdb.cp/pr-574.cc
@@ -1,6 +1,6 @@
/* This test script is part of GDB, the GNU debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/pr-574.exp b/gdb/testsuite/gdb.cp/pr-574.exp
index d48a497..cadded9 100644
--- a/gdb/testsuite/gdb.cp/pr-574.exp
+++ b/gdb/testsuite/gdb.cp/pr-574.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/pr10687.exp b/gdb/testsuite/gdb.cp/pr10687.exp
index dfbb170..9ae840a 100644
--- a/gdb/testsuite/gdb.cp/pr10687.exp
+++ b/gdb/testsuite/gdb.cp/pr10687.exp
@@ -1,4 +1,4 @@
-#Copyright 2010-2024 Free Software Foundation, Inc.
+#Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/pr10728.exp b/gdb/testsuite/gdb.cp/pr10728.exp
index c9f46f6..0525ac1 100644
--- a/gdb/testsuite/gdb.cp/pr10728.exp
+++ b/gdb/testsuite/gdb.cp/pr10728.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/pr12028.exp b/gdb/testsuite/gdb.cp/pr12028.exp
index 55cf104..b2dd6f2 100644
--- a/gdb/testsuite/gdb.cp/pr12028.exp
+++ b/gdb/testsuite/gdb.cp/pr12028.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/pr17132.cc b/gdb/testsuite/gdb.cp/pr17132.cc
index 6b22370..d0f3cd6 100644
--- a/gdb/testsuite/gdb.cp/pr17132.cc
+++ b/gdb/testsuite/gdb.cp/pr17132.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/pr17132.exp b/gdb/testsuite/gdb.cp/pr17132.exp
index 864c199..07caaaf 100644
--- a/gdb/testsuite/gdb.cp/pr17132.exp
+++ b/gdb/testsuite/gdb.cp/pr17132.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/pr17494.cc b/gdb/testsuite/gdb.cp/pr17494.cc
index eceeb27..48a96db 100644
--- a/gdb/testsuite/gdb.cp/pr17494.cc
+++ b/gdb/testsuite/gdb.cp/pr17494.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/pr17494.exp b/gdb/testsuite/gdb.cp/pr17494.exp
index 3df1051..5986a28 100644
--- a/gdb/testsuite/gdb.cp/pr17494.exp
+++ b/gdb/testsuite/gdb.cp/pr17494.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/pr9067.exp b/gdb/testsuite/gdb.cp/pr9067.exp
index 3eec246..fcb197d 100644
--- a/gdb/testsuite/gdb.cp/pr9067.exp
+++ b/gdb/testsuite/gdb.cp/pr9067.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/pr9167.exp b/gdb/testsuite/gdb.cp/pr9167.exp
index 72c70bc..0931266 100644
--- a/gdb/testsuite/gdb.cp/pr9167.exp
+++ b/gdb/testsuite/gdb.cp/pr9167.exp
@@ -1,4 +1,4 @@
-#Copyright 2010-2024 Free Software Foundation, Inc.
+#Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/pr9631.cc b/gdb/testsuite/gdb.cp/pr9631.cc
index 8081a88..7f66895 100644
--- a/gdb/testsuite/gdb.cp/pr9631.cc
+++ b/gdb/testsuite/gdb.cp/pr9631.cc
@@ -1,6 +1,6 @@
/* This test script is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/pr9631.exp b/gdb/testsuite/gdb.cp/pr9631.exp
index 3415a0f..3b2cbec 100644
--- a/gdb/testsuite/gdb.cp/pr9631.exp
+++ b/gdb/testsuite/gdb.cp/pr9631.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/print-demangle.exp b/gdb/testsuite/gdb.cp/print-demangle.exp
index 2e1c310..22f9a2e 100644
--- a/gdb/testsuite/gdb.cp/print-demangle.exp
+++ b/gdb/testsuite/gdb.cp/print-demangle.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/print-global-stub.cc b/gdb/testsuite/gdb.cp/print-global-stub.cc
index a06b787..c4cc7e9 100644
--- a/gdb/testsuite/gdb.cp/print-global-stub.cc
+++ b/gdb/testsuite/gdb.cp/print-global-stub.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/print-global-stub.exp b/gdb/testsuite/gdb.cp/print-global-stub.exp
index 9a49bda..139e8b1 100644
--- a/gdb/testsuite/gdb.cp/print-global-stub.exp
+++ b/gdb/testsuite/gdb.cp/print-global-stub.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/print-method-args.cc b/gdb/testsuite/gdb.cp/print-method-args.cc
index 9a90ee1..803e07c 100644
--- a/gdb/testsuite/gdb.cp/print-method-args.cc
+++ b/gdb/testsuite/gdb.cp/print-method-args.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.cp/print-method-args.exp b/gdb/testsuite/gdb.cp/print-method-args.exp
index f122f3b..f14b9e8 100644
--- a/gdb/testsuite/gdb.cp/print-method-args.exp
+++ b/gdb/testsuite/gdb.cp/print-method-args.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/printmethod.cc b/gdb/testsuite/gdb.cp/printmethod.cc
index c9742e9..34e4390 100644
--- a/gdb/testsuite/gdb.cp/printmethod.cc
+++ b/gdb/testsuite/gdb.cp/printmethod.cc
@@ -1,6 +1,6 @@
/* This test script is part of GDB, the GNU debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/printmethod.exp b/gdb/testsuite/gdb.cp/printmethod.exp
index cd896dc..d2140d4 100644
--- a/gdb/testsuite/gdb.cp/printmethod.exp
+++ b/gdb/testsuite/gdb.cp/printmethod.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/psmang.exp b/gdb/testsuite/gdb.cp/psmang.exp
index 416d8a7..acc7b3b 100644
--- a/gdb/testsuite/gdb.cp/psmang.exp
+++ b/gdb/testsuite/gdb.cp/psmang.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/psmang1.cc b/gdb/testsuite/gdb.cp/psmang1.cc
index 8bd1a2b..b79f24d 100644
--- a/gdb/testsuite/gdb.cp/psmang1.cc
+++ b/gdb/testsuite/gdb.cp/psmang1.cc
@@ -1,6 +1,6 @@
/* This test script is part of GDB, the GNU debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/psmang2.cc b/gdb/testsuite/gdb.cp/psmang2.cc
index aa0cbf1..102c430 100644
--- a/gdb/testsuite/gdb.cp/psmang2.cc
+++ b/gdb/testsuite/gdb.cp/psmang2.cc
@@ -1,6 +1,6 @@
/* This test script is part of GDB, the GNU debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/psymtab-parameter.cc b/gdb/testsuite/gdb.cp/psymtab-parameter.cc
index e1ed8f9..e79edac 100644
--- a/gdb/testsuite/gdb.cp/psymtab-parameter.cc
+++ b/gdb/testsuite/gdb.cp/psymtab-parameter.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/psymtab-parameter.exp b/gdb/testsuite/gdb.cp/psymtab-parameter.exp
index 735a33c..cbe51a5 100644
--- a/gdb/testsuite/gdb.cp/psymtab-parameter.exp
+++ b/gdb/testsuite/gdb.cp/psymtab-parameter.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/ptype-cv-cp.cc b/gdb/testsuite/gdb.cp/ptype-cv-cp.cc
index 2acf0f7..34fa7b8 100644
--- a/gdb/testsuite/gdb.cp/ptype-cv-cp.cc
+++ b/gdb/testsuite/gdb.cp/ptype-cv-cp.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/ptype-cv-cp.exp b/gdb/testsuite/gdb.cp/ptype-cv-cp.exp
index 2471077..daada9f 100644
--- a/gdb/testsuite/gdb.cp/ptype-cv-cp.exp
+++ b/gdb/testsuite/gdb.cp/ptype-cv-cp.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/ptype-flags.cc b/gdb/testsuite/gdb.cp/ptype-flags.cc
index 40c58af..6ba1f91 100644
--- a/gdb/testsuite/gdb.cp/ptype-flags.cc
+++ b/gdb/testsuite/gdb.cp/ptype-flags.cc
@@ -1,4 +1,4 @@
-/* Copyright 2012-2024 Free Software Foundation, Inc.
+/* Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/ptype-flags.exp b/gdb/testsuite/gdb.cp/ptype-flags.exp
index 476c075..00c2f6c 100644
--- a/gdb/testsuite/gdb.cp/ptype-flags.exp
+++ b/gdb/testsuite/gdb.cp/ptype-flags.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/punctuator.exp b/gdb/testsuite/gdb.cp/punctuator.exp
index 5b8c247..c568916 100644
--- a/gdb/testsuite/gdb.cp/punctuator.exp
+++ b/gdb/testsuite/gdb.cp/punctuator.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/re-set-overloaded.cc b/gdb/testsuite/gdb.cp/re-set-overloaded.cc
index d4cf145..1343ff7 100644
--- a/gdb/testsuite/gdb.cp/re-set-overloaded.cc
+++ b/gdb/testsuite/gdb.cp/re-set-overloaded.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/re-set-overloaded.exp b/gdb/testsuite/gdb.cp/re-set-overloaded.exp
index 392ca9a..393baa8 100644
--- a/gdb/testsuite/gdb.cp/re-set-overloaded.exp
+++ b/gdb/testsuite/gdb.cp/re-set-overloaded.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/readnow-language.cc b/gdb/testsuite/gdb.cp/readnow-language.cc
index c4ade1f..96139cf 100644
--- a/gdb/testsuite/gdb.cp/readnow-language.cc
+++ b/gdb/testsuite/gdb.cp/readnow-language.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/readnow-language.exp b/gdb/testsuite/gdb.cp/readnow-language.exp
index a9cd645..a97db09 100644
--- a/gdb/testsuite/gdb.cp/readnow-language.exp
+++ b/gdb/testsuite/gdb.cp/readnow-language.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/ref-params.cc b/gdb/testsuite/gdb.cp/ref-params.cc
index 3ef2868..cd53adb 100644
--- a/gdb/testsuite/gdb.cp/ref-params.cc
+++ b/gdb/testsuite/gdb.cp/ref-params.cc
@@ -1,6 +1,6 @@
/* This test script is part of GDB, the GNU debugger.
- Copyright 2006-2024 Free Software Foundation, Inc.
+ Copyright 2006-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/ref-params.exp b/gdb/testsuite/gdb.cp/ref-params.exp
index e5c28e6..97a56ab 100644
--- a/gdb/testsuite/gdb.cp/ref-params.exp
+++ b/gdb/testsuite/gdb.cp/ref-params.exp
@@ -1,5 +1,5 @@
# Tests for reference parameters of types and their subtypes in GDB.
-# Copyright 2006-2024 Free Software Foundation, Inc.
+# Copyright 2006-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/ref-types.cc b/gdb/testsuite/gdb.cp/ref-types.cc
index 538eac2..7dfa627 100644
--- a/gdb/testsuite/gdb.cp/ref-types.cc
+++ b/gdb/testsuite/gdb.cp/ref-types.cc
@@ -1,6 +1,6 @@
/* This test script is part of GDB, the GNU debugger.
- Copyright 1999-2024 Free Software Foundation, Inc.
+ Copyright 1999-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/ref-types.exp b/gdb/testsuite/gdb.cp/ref-types.exp
index b962b6b..c7bad49 100644
--- a/gdb/testsuite/gdb.cp/ref-types.exp
+++ b/gdb/testsuite/gdb.cp/ref-types.exp
@@ -1,5 +1,5 @@
# Tests for reference types with short type variables in GDB.
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/rtti.exp b/gdb/testsuite/gdb.cp/rtti.exp
index 5caf4d1..b7f7039 100644
--- a/gdb/testsuite/gdb.cp/rtti.exp
+++ b/gdb/testsuite/gdb.cp/rtti.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/rtti.h b/gdb/testsuite/gdb.cp/rtti.h
index 04d94f6b..feb3158 100644
--- a/gdb/testsuite/gdb.cp/rtti.h
+++ b/gdb/testsuite/gdb.cp/rtti.h
@@ -1,6 +1,6 @@
/* Code to go along with tests in rtti.exp.
- Copyright 2003-2024 Free Software Foundation, Inc.
+ Copyright 2003-2025 Free Software Foundation, Inc.
Contributed by David Carlton <carlton@bactrian.org> and by Kealia,
Inc.
diff --git a/gdb/testsuite/gdb.cp/rtti1.cc b/gdb/testsuite/gdb.cp/rtti1.cc
index 527e31c..174b5a7 100644
--- a/gdb/testsuite/gdb.cp/rtti1.cc
+++ b/gdb/testsuite/gdb.cp/rtti1.cc
@@ -1,6 +1,6 @@
/* Code to go along with tests in rtti.exp.
- Copyright 2003-2024 Free Software Foundation, Inc.
+ Copyright 2003-2025 Free Software Foundation, Inc.
Contributed by David Carlton <carlton@bactrian.org> and by Kealia,
Inc.
diff --git a/gdb/testsuite/gdb.cp/rtti2.cc b/gdb/testsuite/gdb.cp/rtti2.cc
index d67c689..2666774 100644
--- a/gdb/testsuite/gdb.cp/rtti2.cc
+++ b/gdb/testsuite/gdb.cp/rtti2.cc
@@ -1,6 +1,6 @@
/* Code to go along with tests in rtti.exp.
- Copyright 2003-2024 Free Software Foundation, Inc.
+ Copyright 2003-2025 Free Software Foundation, Inc.
Contributed by David Carlton <carlton@bactrian.org> and by Kealia,
Inc.
diff --git a/gdb/testsuite/gdb.cp/rvalue-ref-casts.cc b/gdb/testsuite/gdb.cp/rvalue-ref-casts.cc
index 86c2a02..7208f32 100644
--- a/gdb/testsuite/gdb.cp/rvalue-ref-casts.cc
+++ b/gdb/testsuite/gdb.cp/rvalue-ref-casts.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/rvalue-ref-casts.exp b/gdb/testsuite/gdb.cp/rvalue-ref-casts.exp
index 59157ed..2f54877 100644
--- a/gdb/testsuite/gdb.cp/rvalue-ref-casts.exp
+++ b/gdb/testsuite/gdb.cp/rvalue-ref-casts.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/rvalue-ref-overload.cc b/gdb/testsuite/gdb.cp/rvalue-ref-overload.cc
index f1ac8f4..9ac21f2 100644
--- a/gdb/testsuite/gdb.cp/rvalue-ref-overload.cc
+++ b/gdb/testsuite/gdb.cp/rvalue-ref-overload.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1998-2024 Free Software Foundation, Inc.
+ Copyright 1998-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/rvalue-ref-overload.exp b/gdb/testsuite/gdb.cp/rvalue-ref-overload.exp
index e589616..f4d55be 100644
--- a/gdb/testsuite/gdb.cp/rvalue-ref-overload.exp
+++ b/gdb/testsuite/gdb.cp/rvalue-ref-overload.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/rvalue-ref-params.cc b/gdb/testsuite/gdb.cp/rvalue-ref-params.cc
index 02c2afb..5b48d50 100644
--- a/gdb/testsuite/gdb.cp/rvalue-ref-params.cc
+++ b/gdb/testsuite/gdb.cp/rvalue-ref-params.cc
@@ -1,6 +1,6 @@
/* This test script is part of GDB, the GNU debugger.
- Copyright 2006-2024 Free Software Foundation, Inc.
+ Copyright 2006-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/rvalue-ref-params.exp b/gdb/testsuite/gdb.cp/rvalue-ref-params.exp
index faf40f6..8a5e66f 100644
--- a/gdb/testsuite/gdb.cp/rvalue-ref-params.exp
+++ b/gdb/testsuite/gdb.cp/rvalue-ref-params.exp
@@ -1,4 +1,4 @@
-# Copyright 2006-2024 Free Software Foundation, Inc.
+# Copyright 2006-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/rvalue-ref-sizeof.cc b/gdb/testsuite/gdb.cp/rvalue-ref-sizeof.cc
index 23e5050..49cb2d1 100644
--- a/gdb/testsuite/gdb.cp/rvalue-ref-sizeof.cc
+++ b/gdb/testsuite/gdb.cp/rvalue-ref-sizeof.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/rvalue-ref-sizeof.exp b/gdb/testsuite/gdb.cp/rvalue-ref-sizeof.exp
index 4d01e64..ea4d447 100644
--- a/gdb/testsuite/gdb.cp/rvalue-ref-sizeof.exp
+++ b/gdb/testsuite/gdb.cp/rvalue-ref-sizeof.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/rvalue-ref-types.cc b/gdb/testsuite/gdb.cp/rvalue-ref-types.cc
index 7de05a6..e0e731e 100644
--- a/gdb/testsuite/gdb.cp/rvalue-ref-types.cc
+++ b/gdb/testsuite/gdb.cp/rvalue-ref-types.cc
@@ -1,6 +1,6 @@
/* This test script is part of GDB, the GNU debugger.
- Copyright 1999-2024 Free Software Foundation, Inc.
+ Copyright 1999-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/rvalue-ref-types.exp b/gdb/testsuite/gdb.cp/rvalue-ref-types.exp
index 3e6f640..571ab81 100644
--- a/gdb/testsuite/gdb.cp/rvalue-ref-types.exp
+++ b/gdb/testsuite/gdb.cp/rvalue-ref-types.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/save-bp-qualified.cc b/gdb/testsuite/gdb.cp/save-bp-qualified.cc
index 509e525..4738984 100644
--- a/gdb/testsuite/gdb.cp/save-bp-qualified.cc
+++ b/gdb/testsuite/gdb.cp/save-bp-qualified.cc
@@ -1,4 +1,4 @@
-/* Copyright 2017-2024 Free Software Foundation, Inc.
+/* Copyright 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.cp/save-bp-qualified.exp b/gdb/testsuite/gdb.cp/save-bp-qualified.exp
index 3f6ee0f..f59be3b 100644
--- a/gdb/testsuite/gdb.cp/save-bp-qualified.exp
+++ b/gdb/testsuite/gdb.cp/save-bp-qualified.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/scope-err.cc b/gdb/testsuite/gdb.cp/scope-err.cc
index 232743c..65b584b 100644
--- a/gdb/testsuite/gdb.cp/scope-err.cc
+++ b/gdb/testsuite/gdb.cp/scope-err.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/scope-err.exp b/gdb/testsuite/gdb.cp/scope-err.exp
index 6a0eae6e..cee804e 100644
--- a/gdb/testsuite/gdb.cp/scope-err.exp
+++ b/gdb/testsuite/gdb.cp/scope-err.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/shadow.exp b/gdb/testsuite/gdb.cp/shadow.exp
index 6d9a13b..515c173 100644
--- a/gdb/testsuite/gdb.cp/shadow.exp
+++ b/gdb/testsuite/gdb.cp/shadow.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/smartp.cc b/gdb/testsuite/gdb.cp/smartp.cc
index 5255f63..7141089 100644
--- a/gdb/testsuite/gdb.cp/smartp.cc
+++ b/gdb/testsuite/gdb.cp/smartp.cc
@@ -1,6 +1,6 @@
/* This test script is part of GDB, the GNU debugger.
- Copyright 1999-2024 Free Software Foundation, Inc.
+ Copyright 1999-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/smartp.exp b/gdb/testsuite/gdb.cp/smartp.exp
index 279d85c..cc60aed 100644
--- a/gdb/testsuite/gdb.cp/smartp.exp
+++ b/gdb/testsuite/gdb.cp/smartp.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/static-method.cc b/gdb/testsuite/gdb.cp/static-method.cc
index a72b391..c55ab4c 100644
--- a/gdb/testsuite/gdb.cp/static-method.cc
+++ b/gdb/testsuite/gdb.cp/static-method.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/static-method.exp b/gdb/testsuite/gdb.cp/static-method.exp
index eb99edd..b58bf71 100644
--- a/gdb/testsuite/gdb.cp/static-method.exp
+++ b/gdb/testsuite/gdb.cp/static-method.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# Contributed by Red Hat, originally written by Keith Seitz.
#
diff --git a/gdb/testsuite/gdb.cp/static-print-quit.cc b/gdb/testsuite/gdb.cp/static-print-quit.cc
index 8cabd47..fb80fed 100644
--- a/gdb/testsuite/gdb.cp/static-print-quit.cc
+++ b/gdb/testsuite/gdb.cp/static-print-quit.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/static-print-quit.exp b/gdb/testsuite/gdb.cp/static-print-quit.exp
index 7236439..8e0b61d 100644
--- a/gdb/testsuite/gdb.cp/static-print-quit.exp
+++ b/gdb/testsuite/gdb.cp/static-print-quit.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/static-typedef-print.cc b/gdb/testsuite/gdb.cp/static-typedef-print.cc
index 6c6263f..d0500d1 100644
--- a/gdb/testsuite/gdb.cp/static-typedef-print.cc
+++ b/gdb/testsuite/gdb.cp/static-typedef-print.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/static-typedef-print.exp b/gdb/testsuite/gdb.cp/static-typedef-print.exp
index 5de7a09..1f0387f 100644
--- a/gdb/testsuite/gdb.cp/static-typedef-print.exp
+++ b/gdb/testsuite/gdb.cp/static-typedef-print.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/step-and-next-inline.cc b/gdb/testsuite/gdb.cp/step-and-next-inline.cc
index ac92206..1d67180 100644
--- a/gdb/testsuite/gdb.cp/step-and-next-inline.cc
+++ b/gdb/testsuite/gdb.cp/step-and-next-inline.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/step-and-next-inline.exp b/gdb/testsuite/gdb.cp/step-and-next-inline.exp
index e16c2cc..492a46f 100644
--- a/gdb/testsuite/gdb.cp/step-and-next-inline.exp
+++ b/gdb/testsuite/gdb.cp/step-and-next-inline.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/step-and-next-inline.h b/gdb/testsuite/gdb.cp/step-and-next-inline.h
index 94e6689..abfaf07 100644
--- a/gdb/testsuite/gdb.cp/step-and-next-inline.h
+++ b/gdb/testsuite/gdb.cp/step-and-next-inline.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/stub-array-size.cc b/gdb/testsuite/gdb.cp/stub-array-size.cc
index 453a3f7..ce1866f 100644
--- a/gdb/testsuite/gdb.cp/stub-array-size.cc
+++ b/gdb/testsuite/gdb.cp/stub-array-size.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/stub-array-size.exp b/gdb/testsuite/gdb.cp/stub-array-size.exp
index da0ffcf..4cf2e42 100644
--- a/gdb/testsuite/gdb.cp/stub-array-size.exp
+++ b/gdb/testsuite/gdb.cp/stub-array-size.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/stub-array-size.h b/gdb/testsuite/gdb.cp/stub-array-size.h
index 5a527e7..6537b51 100644
--- a/gdb/testsuite/gdb.cp/stub-array-size.h
+++ b/gdb/testsuite/gdb.cp/stub-array-size.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/stub-array-size2.cc b/gdb/testsuite/gdb.cp/stub-array-size2.cc
index 4d2ac9b..8711951 100644
--- a/gdb/testsuite/gdb.cp/stub-array-size2.cc
+++ b/gdb/testsuite/gdb.cp/stub-array-size2.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/subtypes-2.cc b/gdb/testsuite/gdb.cp/subtypes-2.cc
index 02b179e..c8430ab 100644
--- a/gdb/testsuite/gdb.cp/subtypes-2.cc
+++ b/gdb/testsuite/gdb.cp/subtypes-2.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/subtypes.cc b/gdb/testsuite/gdb.cp/subtypes.cc
index a7d8ec2..286a3bf 100644
--- a/gdb/testsuite/gdb.cp/subtypes.cc
+++ b/gdb/testsuite/gdb.cp/subtypes.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/subtypes.exp b/gdb/testsuite/gdb.cp/subtypes.exp
index 871bd7c..e3b8de0 100644
--- a/gdb/testsuite/gdb.cp/subtypes.exp
+++ b/gdb/testsuite/gdb.cp/subtypes.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/subtypes.h b/gdb/testsuite/gdb.cp/subtypes.h
index 38421d8..6b504a8 100644
--- a/gdb/testsuite/gdb.cp/subtypes.h
+++ b/gdb/testsuite/gdb.cp/subtypes.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/temargs.cc b/gdb/testsuite/gdb.cp/temargs.cc
index 2f5d2a7..175c315 100644
--- a/gdb/testsuite/gdb.cp/temargs.cc
+++ b/gdb/testsuite/gdb.cp/temargs.cc
@@ -1,6 +1,6 @@
/* Template argument tests.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/temargs.exp b/gdb/testsuite/gdb.cp/temargs.exp
index e715f2b..d2f70fa 100644
--- a/gdb/testsuite/gdb.cp/temargs.exp
+++ b/gdb/testsuite/gdb.cp/temargs.exp
@@ -1,6 +1,6 @@
# temargs.exp - Template argument tests
#
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/templates.exp b/gdb/testsuite/gdb.cp/templates.exp
index 8dd0cdc..52d0229 100644
--- a/gdb/testsuite/gdb.cp/templates.exp
+++ b/gdb/testsuite/gdb.cp/templates.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -58,9 +58,9 @@ proc test_ptype_of_templates {} {
xfail "ptype T5<int> (obsolescent gcc or gdb)"
}
-re "type = class T5<int> \{${ws}public:${ws}static int X;${ws}int x;${ws}int val;${ws}void T5\\(int\\);${ws}void T5\\((T5<int> const|const T5<int>) ?&\\);${ws}~T5\\(\\);${ws}static void \\* operator new\\((size_t|unsigned( int| long|))\\);${ws}static void operator delete\\(void ?\\*\\);${ws}int value\\((void|)\\);${ws}\}\r\n$gdb_prompt $" {
- # This also triggers gdb/1113...
- kfail "gdb/1111" "ptype T5<int>"
- # Add here a PASS case when PR gdb/1111 gets fixed.
+ # This also triggers gdb/8218...
+ kfail "gdb/8216" "ptype T5<int>"
+ # Add here a PASS case when PR gdb/8216 gets fixed.
# These are really:
# http://sourceware.org/bugzilla/show_bug.cgi?id=8216
# http://sourceware.org/bugzilla/show_bug.cgi?id=8218
@@ -98,9 +98,9 @@ proc test_ptype_of_templates {} {
xfail "ptype t5i (obsolescent gcc or gdb) -- without size_t"
}
-re "type = class T5<int> \{${ws}public:${ws}static int X;${ws}int x;${ws}int val;${ws}void T5\\(int\\);${ws}void T5\\((T5<int> const|const T5<int>) ?&\\);${ws}~T5\\(\\);${ws}static void \\* operator new\\((size_t|unsigned( int| long|))\\);${ws}static void operator delete\\(void ?\\*\\);${ws}int value\\((void|)\\);${ws}\}\r\n$gdb_prompt $" {
- # This also triggers gdb/1113...
- kfail "gdb/1111" "ptype t5i"
- # Add here a PASS case when PR gdb/1111 gets fixed.
+ # This also triggers gdb/8218...
+ kfail "gdb/8216" "ptype t5i"
+ # Add here a PASS case when PR gdb/8216 gets fixed.
# These are really:
# http://sourceware.org/bugzilla/show_bug.cgi?id=8216
# http://sourceware.org/bugzilla/show_bug.cgi?id=8218
@@ -132,7 +132,7 @@ proc test_template_breakpoints {} {
"constructor breakpoint"
}
-re "0. cancel.*\[\r\n\]*.1. all.*\[\r\n\]*.2. T5 at .*\[\r\n\]*.3. T5 at .*\[\r\n\]*> $" {
- setup_kfail "gdb/1062" "*-*-*"
+ setup_kfail "gdb/8167" "*-*-*"
gdb_test "0" \
"nonsense intended to insure that this test fails" \
"constructor breakpoint"
@@ -151,7 +151,7 @@ proc test_template_breakpoints {} {
}
-re "the class `T5<int>' does not have destructor defined\r\nHint: try 'T5<int>::~T5<TAB> or 'T5<int>::~T5<ESC-\\?>\r\n\\(Note leading single quote.\\)\r\n$gdb_prompt $"
{
- kfail "gdb/1112" "destructor breakpoint"
+ kfail "gdb/8217" "destructor breakpoint"
}
}
@@ -307,7 +307,7 @@ gdb_test_multiple "ptype/r Foo" "ptype Foo" {
}
-re "type = class Foo<int> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int foo\\(int, int\\);\r\n\\}\r\n$gdb_prompt $" {
# GCC 3.1, DWARF-2 output.
- kfail "gdb/57" "ptype Foo"
+ kfail "gdb/7162" "ptype Foo"
}
-re "No symbol \"Foo\" in current context.\r\n$gdb_prompt $" {
# GCC 2.95.3, stabs+ output.
@@ -342,28 +342,25 @@ gdb_test_multiple "ptype/r fchar" "ptype fchar" {
# ptype Foo<volatile char *>
gdb_test_multiple "ptype/r fvpchar" "ptype fvpchar" {
- -re "type = (class |)Foo<volatile char ?\\*> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*.*char.*\\*t;\r\n\r\n\[ \t\]*.*char \\* foo\\(int,.*char.*\\*\\);\r\n\\}\r\n$gdb_prompt $" {
- pass "ptype fvpchar"
- }
- -re "type = (class |)Foo<volatile char ?\\*> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*.*char.*\\*t;\r\n\r\n\[ \t\]*.*char \\* foo\\(int,.*char.*\\*\\);.*\r\n\\}\r\n$gdb_prompt $" {
+ -re "type = class Foo<char volatile\\*> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*volatile char \\*t;\r\n\r\n\[ \t\]*volatile char \\* foo\\(int, volatile char \\*\\);.*\r\n\\}\r\n$gdb_prompt $" {
pass "ptype fvpchar"
}
-re "type = (class |)Foo<char volatile ?\\*> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*.*char.*\\*t;\r\n\r\n\[ \t\]*.*char \\* foo\\(int,.*char.*\\*\\);\r\n\\}\r\n$gdb_prompt $" {
- kfail "gdb/1512" "ptype fvpchar"
+ kfail "gdb/8617" "ptype fvpchar"
}
}
# print a function from Foo<volatile char *>
# This test is sensitive to whitespace matching, so we'll do it twice,
-# varying the spacing, because of PR gdb/33.
+# varying the spacing, because of PR gdb/7138.
gdb_test_multiple "print Foo<volatile char *>::foo" "print Foo<volatile char *>::foo" {
-re "\\$\[0-9\]* = \\{.*char \\*\\((class |)Foo<(volatile char|char volatile) ?\\*> \\*(| const), int, .*char \\*\\)\\} $hex <Foo<.*char.*\\*>::foo\\(int, .*char.*\\*\\)>\r\n$gdb_prompt $" {
pass "print Foo<volatile char *>::foo"
}
-re "No symbol \"Foo<volatile char \\*>\" in current context.\r\n$gdb_prompt $" {
- # This used to be a kfail gdb/33 and then kfail gdb/931.
+ # This used to be a kfail gdb/7138 and then kfail gdb/8036.
fail "print Foo<volatile char *>::foo"
}
}
@@ -373,7 +370,7 @@ gdb_test_multiple "print Foo<volatile char*>::foo" "print Foo<volatile char*>::f
pass "print Foo<volatile char*>::foo"
}
-re "No symbol \"Foo<volatile char\\*>\" in current context.\r\n$gdb_prompt $" {
- # This used to be a kfail gdb/33 and then kfail gdb/931.
+ # This used to be a kfail gdb/7138 and then kfail gdb/8036.
fail "print Foo<volatile char*>::foo"
}
}
@@ -390,7 +387,7 @@ gdb_test_multiple "ptype/r Bar" "ptype Bar" {
}
-re "ptype Bar\r\ntype = class Bar<int, ?33> {\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int bar\\(int, int\\);\r\n}\r\n$gdb_prompt $" {
# GCC 3.1, DWARF-2 output.
- kfail "gdb/57" "ptype Bar"
+ kfail "gdb/7162" "ptype Bar"
}
-re "No symbol \"Bar\" in current context.\r\n$gdb_prompt $" {
# GCC 2.95.3, stabs+ output.
@@ -433,11 +430,11 @@ gdb_test_multiple "ptype/r Baz" "ptype Baz" {
}
-re "type = class Baz<int, ?'s'> {\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int baz\\(int, int\\);\r\n}\r\n$gdb_prompt $" {
# GCC 3.1, DWARF-2 output.
- kfail "gdb/57" "ptype Baz"
+ kfail "gdb/7162" "ptype Baz"
}
-re "type = class Baz<int, ?(\\(char\\))?115> {\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int baz\\(int, int\\);\r\n}\r\n$gdb_prompt $" {
- # GCC 3.x, DWARF-2 output, running into gdb/57 and gdb/1512.
- kfail "gdb/57" "ptype Baz"
+ # GCC 3.x, DWARF-2 output, running into gdb/7162 and gdb/8617.
+ kfail "gdb/7162" "ptype Baz"
}
-re "No symbol \"Baz\" in current context.\r\n$gdb_prompt $" {
# GCC 2.95.3, stabs+ output.
@@ -479,11 +476,11 @@ gdb_test_multiple "ptype/r Qux" "ptype Qux" {
}
-re "type = class Qux<char, ?&string> {\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*char t;\r\n\r\n\[ \t\]*char qux\\(int, char\\);\r\n}\r\n$gdb_prompt $" {
# GCC 3.1, DWARF-2 output.
- kfail "gdb/57" "ptype Qux"
+ kfail "gdb/7162" "ptype Qux"
}
-re "type = class Qux<char, ?&\\(string\\)> {\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*char t;\r\n\r\n\[ \t\]*char qux\\(int, char\\);\r\n}\r\n$gdb_prompt $" {
- # GCC 3.x, DWARF-2 output; gdb/57 + gdb/1512.
- kfail "gdb/57" "ptype Qux"
+ # GCC 3.x, DWARF-2 output; gdb/7162 + gdb/8617.
+ kfail "gdb/7162" "ptype Qux"
}
-re "No symbol \"Qux\" in current context.\r\n$gdb_prompt $" {
# GCC 2.95.3, stabs+ output.
@@ -507,7 +504,7 @@ gdb_test_multiple "ptype/r quxint" "ptype quxint" {
pass "ptype quxint"
}
-re "type = class Qux<int, ?& ?\\(string\\)> \\{\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\[ \t\]*int t;\r\n\r\n\[ \t\]*int qux\\(int, int\\);.*\r\n\\}\r\n$gdb_prompt $" {
- kfail "gdb/1512" "ptype quxint"
+ kfail "gdb/8617" "ptype quxint"
}
}
@@ -524,7 +521,7 @@ gdb_test_multiple "ptype/r Spec" "ptype Spec" {
}
-re "type = class Spec<int, ?char> {\r\n\[ \t\]*public:\r\n\[ \t\]*int x;\r\n\r\n\[ \t\]*int spec\\(char\\);\r\n}\r\n$gdb_prompt $" {
# GCC 3.1, DWARF-2 output.
- kfail "gdb/57" "ptype Spec"
+ kfail "gdb/7162" "ptype Spec"
}
-re "No symbol \"Spec\" in current context.\r\n$gdb_prompt $" {
# GCC 2.95.3, stabs+ output.
diff --git a/gdb/testsuite/gdb.cp/try_catch.cc b/gdb/testsuite/gdb.cp/try_catch.cc
index 82cb847..1c04238 100644
--- a/gdb/testsuite/gdb.cp/try_catch.cc
+++ b/gdb/testsuite/gdb.cp/try_catch.cc
@@ -1,6 +1,6 @@
/* This test script is part of GDB, the GNU debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/try_catch.exp b/gdb/testsuite/gdb.cp/try_catch.exp
index e5e78c7..50a3ea6 100644
--- a/gdb/testsuite/gdb.cp/try_catch.exp
+++ b/gdb/testsuite/gdb.cp/try_catch.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/typed-enum.cc b/gdb/testsuite/gdb.cp/typed-enum.cc
index 77067b1..ef3c420 100644
--- a/gdb/testsuite/gdb.cp/typed-enum.cc
+++ b/gdb/testsuite/gdb.cp/typed-enum.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/typed-enum.exp b/gdb/testsuite/gdb.cp/typed-enum.exp
index 8af8a80..208c311 100644
--- a/gdb/testsuite/gdb.cp/typed-enum.exp
+++ b/gdb/testsuite/gdb.cp/typed-enum.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/typedef-base.cc b/gdb/testsuite/gdb.cp/typedef-base.cc
index 8d78be0..1c0e4c0 100644
--- a/gdb/testsuite/gdb.cp/typedef-base.cc
+++ b/gdb/testsuite/gdb.cp/typedef-base.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/typedef-base.exp b/gdb/testsuite/gdb.cp/typedef-base.exp
index 198897f..2421b59 100644
--- a/gdb/testsuite/gdb.cp/typedef-base.exp
+++ b/gdb/testsuite/gdb.cp/typedef-base.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/typedef-operator.cc b/gdb/testsuite/gdb.cp/typedef-operator.cc
index 2c53878..34a1e70 100644
--- a/gdb/testsuite/gdb.cp/typedef-operator.cc
+++ b/gdb/testsuite/gdb.cp/typedef-operator.cc
@@ -1,6 +1,6 @@
/* This test case is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/typedef-operator.exp b/gdb/testsuite/gdb.cp/typedef-operator.exp
index 35bae27..94232d7 100644
--- a/gdb/testsuite/gdb.cp/typedef-operator.exp
+++ b/gdb/testsuite/gdb.cp/typedef-operator.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/typeid.cc b/gdb/testsuite/gdb.cp/typeid.cc
index 5e34c77..531833a 100644
--- a/gdb/testsuite/gdb.cp/typeid.cc
+++ b/gdb/testsuite/gdb.cp/typeid.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/typeid.exp b/gdb/testsuite/gdb.cp/typeid.exp
index 3ba82f6..e45239a 100644
--- a/gdb/testsuite/gdb.cp/typeid.exp
+++ b/gdb/testsuite/gdb.cp/typeid.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/userdef.cc b/gdb/testsuite/gdb.cp/userdef.cc
index 7e045e4..871f8ea 100644
--- a/gdb/testsuite/gdb.cp/userdef.cc
+++ b/gdb/testsuite/gdb.cp/userdef.cc
@@ -1,6 +1,6 @@
/* This test script is part of GDB, the GNU debugger.
- Copyright 1999-2024 Free Software Foundation, Inc.
+ Copyright 1999-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/userdef.exp b/gdb/testsuite/gdb.cp/userdef.exp
index 869f4bc..27f981d 100644
--- a/gdb/testsuite/gdb.cp/userdef.exp
+++ b/gdb/testsuite/gdb.cp/userdef.exp
@@ -1,5 +1,5 @@
# Tests of overloaded operators resolution.
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/using-crash.cc b/gdb/testsuite/gdb.cp/using-crash.cc
index 38e4434..d9e11c5 100644
--- a/gdb/testsuite/gdb.cp/using-crash.cc
+++ b/gdb/testsuite/gdb.cp/using-crash.cc
@@ -1,4 +1,4 @@
-/* Copyright 2012-2024 Free Software Foundation, Inc.
+/* Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.cp/using-crash.exp b/gdb/testsuite/gdb.cp/using-crash.exp
index 3d22e8a..a080b54 100644
--- a/gdb/testsuite/gdb.cp/using-crash.exp
+++ b/gdb/testsuite/gdb.cp/using-crash.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.cp/var-tag-2.cc b/gdb/testsuite/gdb.cp/var-tag-2.cc
index 1b6e36d..2bbbc54 100644
--- a/gdb/testsuite/gdb.cp/var-tag-2.cc
+++ b/gdb/testsuite/gdb.cp/var-tag-2.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/var-tag-3.cc b/gdb/testsuite/gdb.cp/var-tag-3.cc
index a77eb11..a6f63e4 100644
--- a/gdb/testsuite/gdb.cp/var-tag-3.cc
+++ b/gdb/testsuite/gdb.cp/var-tag-3.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/var-tag-4.cc b/gdb/testsuite/gdb.cp/var-tag-4.cc
index c9c6862..2ff1ae1 100644
--- a/gdb/testsuite/gdb.cp/var-tag-4.cc
+++ b/gdb/testsuite/gdb.cp/var-tag-4.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/var-tag.cc b/gdb/testsuite/gdb.cp/var-tag.cc
index b4584ec..042a24b 100644
--- a/gdb/testsuite/gdb.cp/var-tag.cc
+++ b/gdb/testsuite/gdb.cp/var-tag.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/var-tag.exp b/gdb/testsuite/gdb.cp/var-tag.exp
index d879328..5b56790 100644
--- a/gdb/testsuite/gdb.cp/var-tag.exp
+++ b/gdb/testsuite/gdb.cp/var-tag.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/virtbase.exp b/gdb/testsuite/gdb.cp/virtbase.exp
index 53f84a4..991df52 100644
--- a/gdb/testsuite/gdb.cp/virtbase.exp
+++ b/gdb/testsuite/gdb.cp/virtbase.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/virtbase2.cc b/gdb/testsuite/gdb.cp/virtbase2.cc
index 3ab8880..792135b 100644
--- a/gdb/testsuite/gdb.cp/virtbase2.cc
+++ b/gdb/testsuite/gdb.cp/virtbase2.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/virtbase2.exp b/gdb/testsuite/gdb.cp/virtbase2.exp
index 6e7336d..4b6abd0 100644
--- a/gdb/testsuite/gdb.cp/virtbase2.exp
+++ b/gdb/testsuite/gdb.cp/virtbase2.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/virtfunc.cc b/gdb/testsuite/gdb.cp/virtfunc.cc
index 6c894c5..a1dffa9 100644
--- a/gdb/testsuite/gdb.cp/virtfunc.cc
+++ b/gdb/testsuite/gdb.cp/virtfunc.cc
@@ -1,6 +1,6 @@
/* This test script is part of GDB, the GNU debugger.
- Copyright 1993-2024 Free Software Foundation, Inc.
+ Copyright 1993-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/virtfunc.exp b/gdb/testsuite/gdb.cp/virtfunc.exp
index 636497e..391844d 100644
--- a/gdb/testsuite/gdb.cp/virtfunc.exp
+++ b/gdb/testsuite/gdb.cp/virtfunc.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/virtfunc2.cc b/gdb/testsuite/gdb.cp/virtfunc2.cc
index 78436ed..9bac676 100644
--- a/gdb/testsuite/gdb.cp/virtfunc2.cc
+++ b/gdb/testsuite/gdb.cp/virtfunc2.cc
@@ -1,6 +1,6 @@
/* This test script is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/virtfunc2.exp b/gdb/testsuite/gdb.cp/virtfunc2.exp
index b2b1094..d05e501 100644
--- a/gdb/testsuite/gdb.cp/virtfunc2.exp
+++ b/gdb/testsuite/gdb.cp/virtfunc2.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/vla-cxx.cc b/gdb/testsuite/gdb.cp/vla-cxx.cc
index 7603b4b..8178536 100644
--- a/gdb/testsuite/gdb.cp/vla-cxx.cc
+++ b/gdb/testsuite/gdb.cp/vla-cxx.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/vla-cxx.exp b/gdb/testsuite/gdb.cp/vla-cxx.exp
index 4303383..8f19552 100644
--- a/gdb/testsuite/gdb.cp/vla-cxx.exp
+++ b/gdb/testsuite/gdb.cp/vla-cxx.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/watch-cp.cc b/gdb/testsuite/gdb.cp/watch-cp.cc
index 5cf999b..de42cd2 100644
--- a/gdb/testsuite/gdb.cp/watch-cp.cc
+++ b/gdb/testsuite/gdb.cp/watch-cp.cc
@@ -1,4 +1,4 @@
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/watch-cp.exp b/gdb/testsuite/gdb.cp/watch-cp.exp
index 4852851..8cb1d9c 100644
--- a/gdb/testsuite/gdb.cp/watch-cp.exp
+++ b/gdb/testsuite/gdb.cp/watch-cp.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/wide_char_types.c b/gdb/testsuite/gdb.cp/wide_char_types.c
index 49c60ca..cfbfb38 100644
--- a/gdb/testsuite/gdb.cp/wide_char_types.c
+++ b/gdb/testsuite/gdb.cp/wide_char_types.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.cp/wide_char_types.exp b/gdb/testsuite/gdb.cp/wide_char_types.exp
index 45c296e..4961d7a 100644
--- a/gdb/testsuite/gdb.cp/wide_char_types.exp
+++ b/gdb/testsuite/gdb.cp/wide_char_types.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ctf/cross-tu-cyclic.exp b/gdb/testsuite/gdb.ctf/cross-tu-cyclic.exp
index 7c6cb0d..922729f 100644
--- a/gdb/testsuite/gdb.ctf/cross-tu-cyclic.exp
+++ b/gdb/testsuite/gdb.ctf/cross-tu-cyclic.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ctf/ctf-a.c b/gdb/testsuite/gdb.ctf/ctf-a.c
index 1b7ff49..ef52397 100644
--- a/gdb/testsuite/gdb.ctf/ctf-a.c
+++ b/gdb/testsuite/gdb.ctf/ctf-a.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ctf/ctf-a.h b/gdb/testsuite/gdb.ctf/ctf-a.h
index e8616e6..9bb6556 100644
--- a/gdb/testsuite/gdb.ctf/ctf-a.h
+++ b/gdb/testsuite/gdb.ctf/ctf-a.h
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ctf/ctf-b.c b/gdb/testsuite/gdb.ctf/ctf-b.c
index 61ae0e4..ae60e39 100644
--- a/gdb/testsuite/gdb.ctf/ctf-b.c
+++ b/gdb/testsuite/gdb.ctf/ctf-b.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ctf/ctf-b.h b/gdb/testsuite/gdb.ctf/ctf-b.h
index 76a5827..59f7315 100644
--- a/gdb/testsuite/gdb.ctf/ctf-b.h
+++ b/gdb/testsuite/gdb.ctf/ctf-b.h
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ctf/ctf-c.c b/gdb/testsuite/gdb.ctf/ctf-c.c
index e646dfa..f5f3233 100644
--- a/gdb/testsuite/gdb.ctf/ctf-c.c
+++ b/gdb/testsuite/gdb.ctf/ctf-c.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ctf/ctf-c.h b/gdb/testsuite/gdb.ctf/ctf-c.h
index 87e3e7f..cdf83ee 100644
--- a/gdb/testsuite/gdb.ctf/ctf-c.h
+++ b/gdb/testsuite/gdb.ctf/ctf-c.h
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ctf/dwarf2-and-ctf-2.c b/gdb/testsuite/gdb.ctf/dwarf2-and-ctf-2.c
index 2f00f88..2a07bfd 100644
--- a/gdb/testsuite/gdb.ctf/dwarf2-and-ctf-2.c
+++ b/gdb/testsuite/gdb.ctf/dwarf2-and-ctf-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ctf/dwarf2-and-ctf.c b/gdb/testsuite/gdb.ctf/dwarf2-and-ctf.c
index eacdf8d..b786fd7 100644
--- a/gdb/testsuite/gdb.ctf/dwarf2-and-ctf.c
+++ b/gdb/testsuite/gdb.ctf/dwarf2-and-ctf.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ctf/dwarf2-and-ctf.exp b/gdb/testsuite/gdb.ctf/dwarf2-and-ctf.exp
index 64350b4..68630ec 100644
--- a/gdb/testsuite/gdb.ctf/dwarf2-and-ctf.exp
+++ b/gdb/testsuite/gdb.ctf/dwarf2-and-ctf.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ctf/funcreturn.exp b/gdb/testsuite/gdb.ctf/funcreturn.exp
index 4b5298e..4d13531 100644
--- a/gdb/testsuite/gdb.ctf/funcreturn.exp
+++ b/gdb/testsuite/gdb.ctf/funcreturn.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ctf/multi.exp b/gdb/testsuite/gdb.ctf/multi.exp
index 5215ff2..73b1b1e 100644
--- a/gdb/testsuite/gdb.ctf/multi.exp
+++ b/gdb/testsuite/gdb.ctf/multi.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.ctf/whatis.c b/gdb/testsuite/gdb.ctf/whatis.c
index ec722fb..c722cf2 100644
--- a/gdb/testsuite/gdb.ctf/whatis.c
+++ b/gdb/testsuite/gdb.ctf/whatis.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 1992-2024 Free Software Foundation, Inc.
+ Copyright 1992-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/ada-arrays.exp b/gdb/testsuite/gdb.dap/ada-arrays.exp
index 64c6eb2..8912a19 100644
--- a/gdb/testsuite/gdb.dap/ada-arrays.exp
+++ b/gdb/testsuite/gdb.dap/ada-arrays.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/ada-arrays/cstuff.c b/gdb/testsuite/gdb.dap/ada-arrays/cstuff.c
index a3de217..3a7c8a0 100644
--- a/gdb/testsuite/gdb.dap/ada-arrays/cstuff.c
+++ b/gdb/testsuite/gdb.dap/ada-arrays/cstuff.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dap/ada-arrays/main.adb b/gdb/testsuite/gdb.dap/ada-arrays/main.adb
index 6ffff4f..6b5e896 100644
--- a/gdb/testsuite/gdb.dap/ada-arrays/main.adb
+++ b/gdb/testsuite/gdb.dap/ada-arrays/main.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/ada-arrays/pck.adb b/gdb/testsuite/gdb.dap/ada-arrays/pck.adb
index db15657..c370c51 100644
--- a/gdb/testsuite/gdb.dap/ada-arrays/pck.adb
+++ b/gdb/testsuite/gdb.dap/ada-arrays/pck.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/ada-arrays/pck.ads b/gdb/testsuite/gdb.dap/ada-arrays/pck.ads
index 1043836..d6a2117 100644
--- a/gdb/testsuite/gdb.dap/ada-arrays/pck.ads
+++ b/gdb/testsuite/gdb.dap/ada-arrays/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/ada-nested.exp b/gdb/testsuite/gdb.dap/ada-nested.exp
index 7f28d27..c8ed30e 100644
--- a/gdb/testsuite/gdb.dap/ada-nested.exp
+++ b/gdb/testsuite/gdb.dap/ada-nested.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/ada-nested/prog.adb b/gdb/testsuite/gdb.dap/ada-nested/prog.adb
index f20b17e..119bb75 100644
--- a/gdb/testsuite/gdb.dap/ada-nested/prog.adb
+++ b/gdb/testsuite/gdb.dap/ada-nested/prog.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/ada-scopes.exp b/gdb/testsuite/gdb.dap/ada-scopes.exp
index ef1302e..1c787e3 100644
--- a/gdb/testsuite/gdb.dap/ada-scopes.exp
+++ b/gdb/testsuite/gdb.dap/ada-scopes.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/ada-scopes/pack.adb b/gdb/testsuite/gdb.dap/ada-scopes/pack.adb
index 22c4d44..7b6f0ca 100644
--- a/gdb/testsuite/gdb.dap/ada-scopes/pack.adb
+++ b/gdb/testsuite/gdb.dap/ada-scopes/pack.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/ada-scopes/pack.ads b/gdb/testsuite/gdb.dap/ada-scopes/pack.ads
index 845b35b..b4e8640 100644
--- a/gdb/testsuite/gdb.dap/ada-scopes/pack.ads
+++ b/gdb/testsuite/gdb.dap/ada-scopes/pack.ads
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/ada-scopes/prog.adb b/gdb/testsuite/gdb.dap/ada-scopes/prog.adb
index 17511f7..5bdbb8c 100644
--- a/gdb/testsuite/gdb.dap/ada-scopes/prog.adb
+++ b/gdb/testsuite/gdb.dap/ada-scopes/prog.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/args-env.c b/gdb/testsuite/gdb.dap/args-env.c
index 945a082..bf7553d 100644
--- a/gdb/testsuite/gdb.dap/args-env.c
+++ b/gdb/testsuite/gdb.dap/args-env.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/args-env.exp b/gdb/testsuite/gdb.dap/args-env.exp
index 5f02b00..d7961f9 100644
--- a/gdb/testsuite/gdb.dap/args-env.exp
+++ b/gdb/testsuite/gdb.dap/args-env.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/assign.c b/gdb/testsuite/gdb.dap/assign.c
index 91b0427..2c2a22b 100644
--- a/gdb/testsuite/gdb.dap/assign.c
+++ b/gdb/testsuite/gdb.dap/assign.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dap/assign.exp b/gdb/testsuite/gdb.dap/assign.exp
index 6665b6a..f5a5363 100644
--- a/gdb/testsuite/gdb.dap/assign.exp
+++ b/gdb/testsuite/gdb.dap/assign.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/assign.py b/gdb/testsuite/gdb.dap/assign.py
index 1c63259..1a965f1 100644
--- a/gdb/testsuite/gdb.dap/assign.py
+++ b/gdb/testsuite/gdb.dap/assign.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/attach.c b/gdb/testsuite/gdb.dap/attach.c
index bf17c15..6ff0938 100644
--- a/gdb/testsuite/gdb.dap/attach.c
+++ b/gdb/testsuite/gdb.dap/attach.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/attach.exp b/gdb/testsuite/gdb.dap/attach.exp
index e0cd57b..5e1f634 100644
--- a/gdb/testsuite/gdb.dap/attach.exp
+++ b/gdb/testsuite/gdb.dap/attach.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -33,11 +33,11 @@ set attach_id [dap_attach $testpid $binfile]
dap_check_request_and_response "configurationDone" configurationDone
+dap_check_response "attach response" attach $attach_id
+
dap_wait_for_event_and_check "stopped" stopped \
"body reason" attach
-dap_check_response "attach response" attach $attach_id
-
dap_shutdown true
kill_wait_spawned_process $test_spawn_id
diff --git a/gdb/testsuite/gdb.dap/basic-dap.c b/gdb/testsuite/gdb.dap/basic-dap.c
index 67e5486..a35dbfe 100644
--- a/gdb/testsuite/gdb.dap/basic-dap.c
+++ b/gdb/testsuite/gdb.dap/basic-dap.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dap/basic-dap.exp b/gdb/testsuite/gdb.dap/basic-dap.exp
index dd785ef..fc30268 100644
--- a/gdb/testsuite/gdb.dap/basic-dap.exp
+++ b/gdb/testsuite/gdb.dap/basic-dap.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/bt-inner.c b/gdb/testsuite/gdb.dap/bt-inner.c
index e0f579a2..6aaa3e4 100644
--- a/gdb/testsuite/gdb.dap/bt-inner.c
+++ b/gdb/testsuite/gdb.dap/bt-inner.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dap/bt-main.c b/gdb/testsuite/gdb.dap/bt-main.c
index bfdfb4b..18928fe 100644
--- a/gdb/testsuite/gdb.dap/bt-main.c
+++ b/gdb/testsuite/gdb.dap/bt-main.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dap/bt-nodebug.exp b/gdb/testsuite/gdb.dap/bt-nodebug.exp
index 319dcf0..3053f8c 100644
--- a/gdb/testsuite/gdb.dap/bt-nodebug.exp
+++ b/gdb/testsuite/gdb.dap/bt-nodebug.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/cancel-launch.exp b/gdb/testsuite/gdb.dap/cancel-launch.exp
index 7ef18d1..acb7ee2 100644
--- a/gdb/testsuite/gdb.dap/cancel-launch.exp
+++ b/gdb/testsuite/gdb.dap/cancel-launch.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/catch-exception.exp b/gdb/testsuite/gdb.dap/catch-exception.exp
index 9793746..ced2cc5 100644
--- a/gdb/testsuite/gdb.dap/catch-exception.exp
+++ b/gdb/testsuite/gdb.dap/catch-exception.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/catch-exception/pck.ads b/gdb/testsuite/gdb.dap/catch-exception/pck.ads
index c6610f8..1fb5abb 100644
--- a/gdb/testsuite/gdb.dap/catch-exception/pck.ads
+++ b/gdb/testsuite/gdb.dap/catch-exception/pck.ads
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/catch-exception/prog.adb b/gdb/testsuite/gdb.dap/catch-exception/prog.adb
index ffcc88d..ed60272 100644
--- a/gdb/testsuite/gdb.dap/catch-exception/prog.adb
+++ b/gdb/testsuite/gdb.dap/catch-exception/prog.adb
@@ -1,4 +1,4 @@
--- Copyright 2023-2024 Free Software Foundation, Inc.
+-- Copyright 2023-2025 Free Software Foundation, Inc.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/children.exp b/gdb/testsuite/gdb.dap/children.exp
index 783fff9..1e96a70 100644
--- a/gdb/testsuite/gdb.dap/children.exp
+++ b/gdb/testsuite/gdb.dap/children.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/children.py b/gdb/testsuite/gdb.dap/children.py
index b4eb074..53bcdce 100644
--- a/gdb/testsuite/gdb.dap/children.py
+++ b/gdb/testsuite/gdb.dap/children.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/cond-bp.c b/gdb/testsuite/gdb.dap/cond-bp.c
index 9d0f70c..3923a61 100644
--- a/gdb/testsuite/gdb.dap/cond-bp.c
+++ b/gdb/testsuite/gdb.dap/cond-bp.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dap/cond-bp.exp b/gdb/testsuite/gdb.dap/cond-bp.exp
index 28d4b8e..2b862e9 100644
--- a/gdb/testsuite/gdb.dap/cond-bp.exp
+++ b/gdb/testsuite/gdb.dap/cond-bp.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/cwd.exp b/gdb/testsuite/gdb.dap/cwd.exp
index b3c9f9c..6460a5d 100644
--- a/gdb/testsuite/gdb.dap/cwd.exp
+++ b/gdb/testsuite/gdb.dap/cwd.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/cxx-exception.cc b/gdb/testsuite/gdb.dap/cxx-exception.cc
index 6cccb13f..31f1ccc 100644
--- a/gdb/testsuite/gdb.dap/cxx-exception.cc
+++ b/gdb/testsuite/gdb.dap/cxx-exception.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/cxx-exception.exp b/gdb/testsuite/gdb.dap/cxx-exception.exp
index c79c5db..2b33a4f 100644
--- a/gdb/testsuite/gdb.dap/cxx-exception.exp
+++ b/gdb/testsuite/gdb.dap/cxx-exception.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/disassem.c b/gdb/testsuite/gdb.dap/disassem.c
index c0f5128..c77718f 100644
--- a/gdb/testsuite/gdb.dap/disassem.c
+++ b/gdb/testsuite/gdb.dap/disassem.c
@@ -1,4 +1,4 @@
-/* Copyright 2024 Free Software Foundation, Inc.
+/* Copyright 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dap/disassem.exp b/gdb/testsuite/gdb.dap/disassem.exp
index 6fdfc63..1fd511c 100644
--- a/gdb/testsuite/gdb.dap/disassem.exp
+++ b/gdb/testsuite/gdb.dap/disassem.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/eof.exp b/gdb/testsuite/gdb.dap/eof.exp
index 05048f2..4752347 100644
--- a/gdb/testsuite/gdb.dap/eof.exp
+++ b/gdb/testsuite/gdb.dap/eof.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/frameless.c b/gdb/testsuite/gdb.dap/frameless.c
index 3c39a60..6c2c670 100644
--- a/gdb/testsuite/gdb.dap/frameless.c
+++ b/gdb/testsuite/gdb.dap/frameless.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dap/frameless.exp b/gdb/testsuite/gdb.dap/frameless.exp
index 6963eed..7fe4da4 100644
--- a/gdb/testsuite/gdb.dap/frameless.exp
+++ b/gdb/testsuite/gdb.dap/frameless.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/global.c b/gdb/testsuite/gdb.dap/global.c
index d3b7085..b15bab1 100644
--- a/gdb/testsuite/gdb.dap/global.c
+++ b/gdb/testsuite/gdb.dap/global.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/global.exp b/gdb/testsuite/gdb.dap/global.exp
index 2704f46..cc4f26d 100644
--- a/gdb/testsuite/gdb.dap/global.exp
+++ b/gdb/testsuite/gdb.dap/global.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/hover.c b/gdb/testsuite/gdb.dap/hover.c
index 13a6dd9..1d5d47f 100644
--- a/gdb/testsuite/gdb.dap/hover.c
+++ b/gdb/testsuite/gdb.dap/hover.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dap/hover.exp b/gdb/testsuite/gdb.dap/hover.exp
index f637c4a..cd31b53 100644
--- a/gdb/testsuite/gdb.dap/hover.exp
+++ b/gdb/testsuite/gdb.dap/hover.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/insn-bp.exp b/gdb/testsuite/gdb.dap/insn-bp.exp
index 6542262..568a6ad 100644
--- a/gdb/testsuite/gdb.dap/insn-bp.exp
+++ b/gdb/testsuite/gdb.dap/insn-bp.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/lazy-string.c b/gdb/testsuite/gdb.dap/lazy-string.c
index 36faa60..6a4a27b 100644
--- a/gdb/testsuite/gdb.dap/lazy-string.c
+++ b/gdb/testsuite/gdb.dap/lazy-string.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dap/lazy-string.exp b/gdb/testsuite/gdb.dap/lazy-string.exp
index d070347..35de3b8 100644
--- a/gdb/testsuite/gdb.dap/lazy-string.exp
+++ b/gdb/testsuite/gdb.dap/lazy-string.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/lazy-string.py b/gdb/testsuite/gdb.dap/lazy-string.py
index ef886d7..da71ea1 100644
--- a/gdb/testsuite/gdb.dap/lazy-string.py
+++ b/gdb/testsuite/gdb.dap/lazy-string.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/line-zero.exp b/gdb/testsuite/gdb.dap/line-zero.exp
index e6309dc..cf3e693 100644
--- a/gdb/testsuite/gdb.dap/line-zero.exp
+++ b/gdb/testsuite/gdb.dap/line-zero.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/log-message.c b/gdb/testsuite/gdb.dap/log-message.c
index 9797ce5..3abf0f0 100644
--- a/gdb/testsuite/gdb.dap/log-message.c
+++ b/gdb/testsuite/gdb.dap/log-message.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dap/log-message.exp b/gdb/testsuite/gdb.dap/log-message.exp
index a0070af..421df14 100644
--- a/gdb/testsuite/gdb.dap/log-message.exp
+++ b/gdb/testsuite/gdb.dap/log-message.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/max-size.c b/gdb/testsuite/gdb.dap/max-size.c
index 6bc2e36..f83279f 100644
--- a/gdb/testsuite/gdb.dap/max-size.c
+++ b/gdb/testsuite/gdb.dap/max-size.c
@@ -1,4 +1,4 @@
-/* Copyright 2024 Free Software Foundation, Inc.
+/* Copyright 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dap/max-size.exp b/gdb/testsuite/gdb.dap/max-size.exp
index 05da97c..95a4fce 100644
--- a/gdb/testsuite/gdb.dap/max-size.exp
+++ b/gdb/testsuite/gdb.dap/max-size.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/memory.c b/gdb/testsuite/gdb.dap/memory.c
index d5e536b..e8cb8f6 100644
--- a/gdb/testsuite/gdb.dap/memory.c
+++ b/gdb/testsuite/gdb.dap/memory.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dap/memory.exp b/gdb/testsuite/gdb.dap/memory.exp
index 89ae8bb..e62679c 100644
--- a/gdb/testsuite/gdb.dap/memory.exp
+++ b/gdb/testsuite/gdb.dap/memory.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -29,8 +29,8 @@ save_vars { env(ASAN_OPTIONS) env(TSAN_OPTIONS) } {
# The request readMemory with count 18446744073709551615 triggers address
# sanitizer. Suppress the error, leaving us with just this warning:
# WARNING: AddressSanitizer failed to allocate 0xffffffffffffffff bytes
- set_sanitizer ASAN_OPTIONS allocator_may_return_null 1
- set_sanitizer TSAN_OPTIONS allocator_may_return_null 1
+ append_environment ASAN_OPTIONS allocator_may_return_null 1
+ append_environment TSAN_OPTIONS allocator_may_return_null 1
if {[dap_initialize] == ""} {
return
diff --git a/gdb/testsuite/gdb.dap/modules-solib.c b/gdb/testsuite/gdb.dap/modules-solib.c
index 8db4088..99f2e31 100644
--- a/gdb/testsuite/gdb.dap/modules-solib.c
+++ b/gdb/testsuite/gdb.dap/modules-solib.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/modules.c b/gdb/testsuite/gdb.dap/modules.c
index 02b2517..b14c26c 100644
--- a/gdb/testsuite/gdb.dap/modules.c
+++ b/gdb/testsuite/gdb.dap/modules.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/modules.exp b/gdb/testsuite/gdb.dap/modules.exp
index 2e41679..b38c306 100644
--- a/gdb/testsuite/gdb.dap/modules.exp
+++ b/gdb/testsuite/gdb.dap/modules.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/pause.c b/gdb/testsuite/gdb.dap/pause.c
index 387245a..0ef0b82 100644
--- a/gdb/testsuite/gdb.dap/pause.c
+++ b/gdb/testsuite/gdb.dap/pause.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/pause.exp b/gdb/testsuite/gdb.dap/pause.exp
index c74fea3..813999b 100644
--- a/gdb/testsuite/gdb.dap/pause.exp
+++ b/gdb/testsuite/gdb.dap/pause.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/ptrref.cc b/gdb/testsuite/gdb.dap/ptrref.cc
index 98a0ef7..da4f127 100644
--- a/gdb/testsuite/gdb.dap/ptrref.cc
+++ b/gdb/testsuite/gdb.dap/ptrref.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/ptrref.exp b/gdb/testsuite/gdb.dap/ptrref.exp
index 2a972ac..08423ed 100644
--- a/gdb/testsuite/gdb.dap/ptrref.exp
+++ b/gdb/testsuite/gdb.dap/ptrref.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/remote-dap.exp b/gdb/testsuite/gdb.dap/remote-dap.exp
index bca66dd..c590877 100644
--- a/gdb/testsuite/gdb.dap/remote-dap.exp
+++ b/gdb/testsuite/gdb.dap/remote-dap.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/rust-slices.exp b/gdb/testsuite/gdb.dap/rust-slices.exp
index 1ed640a..c3c5630 100644
--- a/gdb/testsuite/gdb.dap/rust-slices.exp
+++ b/gdb/testsuite/gdb.dap/rust-slices.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/rust-slices.rs b/gdb/testsuite/gdb.dap/rust-slices.rs
index 9ac1d07..f8fa16e 100644
--- a/gdb/testsuite/gdb.dap/rust-slices.rs
+++ b/gdb/testsuite/gdb.dap/rust-slices.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2023-2024 Free Software Foundation, Inc.
+// Copyright (C) 2023-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/scopes.c b/gdb/testsuite/gdb.dap/scopes.c
index 8e95c28..d8929f1 100644
--- a/gdb/testsuite/gdb.dap/scopes.c
+++ b/gdb/testsuite/gdb.dap/scopes.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dap/scopes.exp b/gdb/testsuite/gdb.dap/scopes.exp
index e0c7786..59d344b 100644
--- a/gdb/testsuite/gdb.dap/scopes.exp
+++ b/gdb/testsuite/gdb.dap/scopes.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/sources.c b/gdb/testsuite/gdb.dap/sources.c
index b607705..8e366ad 100644
--- a/gdb/testsuite/gdb.dap/sources.c
+++ b/gdb/testsuite/gdb.dap/sources.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dap/sources.exp b/gdb/testsuite/gdb.dap/sources.exp
index 305a27c..0bb2dc5 100644
--- a/gdb/testsuite/gdb.dap/sources.exp
+++ b/gdb/testsuite/gdb.dap/sources.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/stack-format.c b/gdb/testsuite/gdb.dap/stack-format.c
index 583cfa8..f509d36 100644
--- a/gdb/testsuite/gdb.dap/stack-format.c
+++ b/gdb/testsuite/gdb.dap/stack-format.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dap/stack-format.exp b/gdb/testsuite/gdb.dap/stack-format.exp
index 4056e1f..7c795c3 100644
--- a/gdb/testsuite/gdb.dap/stack-format.exp
+++ b/gdb/testsuite/gdb.dap/stack-format.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/stack-format.py b/gdb/testsuite/gdb.dap/stack-format.py
index b7799f4..a20f689 100644
--- a/gdb/testsuite/gdb.dap/stack-format.py
+++ b/gdb/testsuite/gdb.dap/stack-format.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/step-out.c b/gdb/testsuite/gdb.dap/step-out.c
index 8c7e694..32d15bc 100644
--- a/gdb/testsuite/gdb.dap/step-out.c
+++ b/gdb/testsuite/gdb.dap/step-out.c
@@ -1,4 +1,4 @@
-/* Copyright 2024 Free Software Foundation, Inc.
+/* Copyright 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dap/step-out.exp b/gdb/testsuite/gdb.dap/step-out.exp
index e9d7a25..3cf8335 100644
--- a/gdb/testsuite/gdb.dap/step-out.exp
+++ b/gdb/testsuite/gdb.dap/step-out.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/stop-at-main.exp b/gdb/testsuite/gdb.dap/stop-at-main.exp
index 52b94f4..3523b5f 100644
--- a/gdb/testsuite/gdb.dap/stop-at-main.exp
+++ b/gdb/testsuite/gdb.dap/stop-at-main.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/terminate.exp b/gdb/testsuite/gdb.dap/terminate.exp
index 9872351..b0ea4b2 100644
--- a/gdb/testsuite/gdb.dap/terminate.exp
+++ b/gdb/testsuite/gdb.dap/terminate.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/type_check.exp b/gdb/testsuite/gdb.dap/type_check.exp
index e6c9d73..8c7b55a 100644
--- a/gdb/testsuite/gdb.dap/type_check.exp
+++ b/gdb/testsuite/gdb.dap/type_check.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dap/type_check.py b/gdb/testsuite/gdb.dap/type_check.py
index 81b106a..bd57bc1 100644
--- a/gdb/testsuite/gdb.dap/type_check.py
+++ b/gdb/testsuite/gdb.dap/type_check.py
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.debuginfod/build-id-no-debug-warning.c b/gdb/testsuite/gdb.debuginfod/build-id-no-debug-warning.c
index ba26e91..e2f6a43 100644
--- a/gdb/testsuite/gdb.debuginfod/build-id-no-debug-warning.c
+++ b/gdb/testsuite/gdb.debuginfod/build-id-no-debug-warning.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.debuginfod/build-id-no-debug-warning.exp b/gdb/testsuite/gdb.debuginfod/build-id-no-debug-warning.exp
index 8d7581f..35bb401 100644
--- a/gdb/testsuite/gdb.debuginfod/build-id-no-debug-warning.exp
+++ b/gdb/testsuite/gdb.debuginfod/build-id-no-debug-warning.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -46,7 +46,7 @@ set build_id_debug_file \
[standard_output_file [build_id_debug_filename_get $binfile]]
# Get the BINFILE.debug filename. This is the file we should be
-# moving to the BUILD_ID_DEBUG_FILE location, but we wont, we're going
+# moving to the BUILD_ID_DEBUG_FILE location, but we won't, we're going
# to move something else there instead.
set debugfile [standard_output_file "${binfile}.debug"]
diff --git a/gdb/testsuite/gdb.debuginfod/corefile-mapped-file-1.c b/gdb/testsuite/gdb.debuginfod/corefile-mapped-file-1.c
index dd6b3f1..dda7eff 100644
--- a/gdb/testsuite/gdb.debuginfod/corefile-mapped-file-1.c
+++ b/gdb/testsuite/gdb.debuginfod/corefile-mapped-file-1.c
@@ -1,4 +1,4 @@
-/* Copyright 2024 Free Software Foundation, Inc.
+/* Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.debuginfod/corefile-mapped-file-2.c b/gdb/testsuite/gdb.debuginfod/corefile-mapped-file-2.c
index ccf35b7..991eff5 100644
--- a/gdb/testsuite/gdb.debuginfod/corefile-mapped-file-2.c
+++ b/gdb/testsuite/gdb.debuginfod/corefile-mapped-file-2.c
@@ -1,4 +1,4 @@
-/* Copyright 2024 Free Software Foundation, Inc.
+/* Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.debuginfod/corefile-mapped-file-3.c b/gdb/testsuite/gdb.debuginfod/corefile-mapped-file-3.c
index e060866..d6786ff 100644
--- a/gdb/testsuite/gdb.debuginfod/corefile-mapped-file-3.c
+++ b/gdb/testsuite/gdb.debuginfod/corefile-mapped-file-3.c
@@ -1,4 +1,4 @@
-/* Copyright 2024 Free Software Foundation, Inc.
+/* Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.debuginfod/corefile-mapped-file.exp b/gdb/testsuite/gdb.debuginfod/corefile-mapped-file.exp
index f02876e..dac4e6c 100644
--- a/gdb/testsuite/gdb.debuginfod/corefile-mapped-file.exp
+++ b/gdb/testsuite/gdb.debuginfod/corefile-mapped-file.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -49,7 +49,7 @@
#
# This obviously needs fixing, but is a separate problem from the one being
# tested here, so this test deliberately checks the mapping using a file that
-# is mmaped rather than loaded as a shared library, as such the file is in the
+# is mmapped rather than loaded as a shared library, as such the file is in the
# core-files list of mapped files, but is not in the shared library list.
#
# Despite this test living in the gdb.debuginfod/ directory, only the last
@@ -260,7 +260,7 @@ proc load_core_file { testname { line_re "" } } {
# We expect RES to be 2 (TCL_RETURN) or 1 (TCL_ERROR). If we get
# here then somehow the 'catch' above finished without hitting
# either of those cases, which is .... weird.
- perror "unexepcted return value, code = $res, value = $string"
+ perror "unexpected return value, code = $res, value = $string"
return -1
}
}
diff --git a/gdb/testsuite/gdb.debuginfod/crc_mismatch-2.c b/gdb/testsuite/gdb.debuginfod/crc_mismatch-2.c
index 5677680..91b7727 100644
--- a/gdb/testsuite/gdb.debuginfod/crc_mismatch-2.c
+++ b/gdb/testsuite/gdb.debuginfod/crc_mismatch-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.debuginfod/crc_mismatch.c b/gdb/testsuite/gdb.debuginfod/crc_mismatch.c
index c19ca0f..6d5c897 100644
--- a/gdb/testsuite/gdb.debuginfod/crc_mismatch.c
+++ b/gdb/testsuite/gdb.debuginfod/crc_mismatch.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.debuginfod/crc_mismatch.exp b/gdb/testsuite/gdb.debuginfod/crc_mismatch.exp
index 017ef13..e44748f 100644
--- a/gdb/testsuite/gdb.debuginfod/crc_mismatch.exp
+++ b/gdb/testsuite/gdb.debuginfod/crc_mismatch.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.c b/gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.c
index 61cd7c6..61f562b 100644
--- a/gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.c
+++ b/gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.exp b/gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.exp
index 450d890..4b3894e 100644
--- a/gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.exp
+++ b/gdb/testsuite/gdb.debuginfod/fetch_src_and_symbols.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -152,7 +152,7 @@ proc_with_prefix no_url { } {
# Test that GDB cannot find dwz without debuginfod.
clean_restart
gdb_test "file ${binfile}_alt.o" \
- ".*could not find '.gnu_debugaltlink'.*" \
+ ".*could not find supplementary DWARF file .*" \
"file [file tail ${binfile}_alt.o]"
# Generate a core file and test that GDB cannot find the
diff --git a/gdb/testsuite/gdb.debuginfod/solib-with-soname-1.c b/gdb/testsuite/gdb.debuginfod/solib-with-soname-1.c
index 30e9267..9d25165 100644
--- a/gdb/testsuite/gdb.debuginfod/solib-with-soname-1.c
+++ b/gdb/testsuite/gdb.debuginfod/solib-with-soname-1.c
@@ -1,4 +1,4 @@
-/* Copyright 2024 Free Software Foundation, Inc.
+/* Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.debuginfod/solib-with-soname-2.c b/gdb/testsuite/gdb.debuginfod/solib-with-soname-2.c
index a51d48e..5c91084 100644
--- a/gdb/testsuite/gdb.debuginfod/solib-with-soname-2.c
+++ b/gdb/testsuite/gdb.debuginfod/solib-with-soname-2.c
@@ -1,4 +1,4 @@
-/* Copyright 2024 Free Software Foundation, Inc.
+/* Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.debuginfod/solib-with-soname.exp b/gdb/testsuite/gdb.debuginfod/solib-with-soname.exp
index 98c4535..1008e46 100644
--- a/gdb/testsuite/gdb.debuginfod/solib-with-soname.exp
+++ b/gdb/testsuite/gdb.debuginfod/solib-with-soname.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -89,7 +89,7 @@ if {[lindex $status 0] != 0} {
}
# Build the executable. This links against libfoo.so, which is
-# poining at libfoo_1.so. Just to confuse things even more, this
+# pointing at libfoo_1.so. Just to confuse things even more, this
# executable uses dlopen to load libfoo_2.so. Weird!
if { [build_executable "build executable" ${binfile} ${srcfile2} \
[list debug shlib=${library_filename} shlib_load]] == -1 } {
diff --git a/gdb/testsuite/gdb.disasm/am33.exp b/gdb/testsuite/gdb.disasm/am33.exp
index 6950de9..b5ae981 100644
--- a/gdb/testsuite/gdb.disasm/am33.exp
+++ b/gdb/testsuite/gdb.disasm/am33.exp
@@ -1,5 +1,5 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.disasm/basics.c b/gdb/testsuite/gdb.disasm/basics.c
index 8204f90..f1eed70 100644
--- a/gdb/testsuite/gdb.disasm/basics.c
+++ b/gdb/testsuite/gdb.disasm/basics.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.disasm/basics.exp b/gdb/testsuite/gdb.disasm/basics.exp
index 771fdb9..e54dced 100644
--- a/gdb/testsuite/gdb.disasm/basics.exp
+++ b/gdb/testsuite/gdb.disasm/basics.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.disasm/disassembler-options.exp b/gdb/testsuite/gdb.disasm/disassembler-options.exp
index 048c302..ac05e80 100644
--- a/gdb/testsuite/gdb.disasm/disassembler-options.exp
+++ b/gdb/testsuite/gdb.disasm/disassembler-options.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.disasm/h8300s.exp b/gdb/testsuite/gdb.disasm/h8300s.exp
index 7560c67..13eaa99 100644
--- a/gdb/testsuite/gdb.disasm/h8300s.exp
+++ b/gdb/testsuite/gdb.disasm/h8300s.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2000-2024 Free Software Foundation, Inc.
+# Copyright (C) 2000-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.disasm/hppa.exp b/gdb/testsuite/gdb.disasm/hppa.exp
index 592172b..e330809 100644
--- a/gdb/testsuite/gdb.disasm/hppa.exp
+++ b/gdb/testsuite/gdb.disasm/hppa.exp
@@ -1,5 +1,5 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.disasm/mn10300.exp b/gdb/testsuite/gdb.disasm/mn10300.exp
index 33bac9f..55ce96c 100644
--- a/gdb/testsuite/gdb.disasm/mn10300.exp
+++ b/gdb/testsuite/gdb.disasm/mn10300.exp
@@ -1,5 +1,5 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.disasm/sh3.exp b/gdb/testsuite/gdb.disasm/sh3.exp
index 1cbc8dc..09b27a0 100644
--- a/gdb/testsuite/gdb.disasm/sh3.exp
+++ b/gdb/testsuite/gdb.disasm/sh3.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1992-2024 Free Software Foundation, Inc.
+# Copyright (C) 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.disasm/t01_mov.exp b/gdb/testsuite/gdb.disasm/t01_mov.exp
index afab42c..944a0a8 100644
--- a/gdb/testsuite/gdb.disasm/t01_mov.exp
+++ b/gdb/testsuite/gdb.disasm/t01_mov.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.disasm/t02_mova.exp b/gdb/testsuite/gdb.disasm/t02_mova.exp
index c147eec..9507df4 100644
--- a/gdb/testsuite/gdb.disasm/t02_mova.exp
+++ b/gdb/testsuite/gdb.disasm/t02_mova.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.disasm/t03_add.exp b/gdb/testsuite/gdb.disasm/t03_add.exp
index 6874ded5..222f004 100644
--- a/gdb/testsuite/gdb.disasm/t03_add.exp
+++ b/gdb/testsuite/gdb.disasm/t03_add.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.disasm/t04_sub.exp b/gdb/testsuite/gdb.disasm/t04_sub.exp
index 80cf613..c7280f0 100644
--- a/gdb/testsuite/gdb.disasm/t04_sub.exp
+++ b/gdb/testsuite/gdb.disasm/t04_sub.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.disasm/t05_cmp.exp b/gdb/testsuite/gdb.disasm/t05_cmp.exp
index 7c7edb7..6163337 100644
--- a/gdb/testsuite/gdb.disasm/t05_cmp.exp
+++ b/gdb/testsuite/gdb.disasm/t05_cmp.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.disasm/t06_ari2.exp b/gdb/testsuite/gdb.disasm/t06_ari2.exp
index 9394064..eb60047 100644
--- a/gdb/testsuite/gdb.disasm/t06_ari2.exp
+++ b/gdb/testsuite/gdb.disasm/t06_ari2.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.disasm/t07_ari3.exp b/gdb/testsuite/gdb.disasm/t07_ari3.exp
index dbec4e7..49df1e1 100644
--- a/gdb/testsuite/gdb.disasm/t07_ari3.exp
+++ b/gdb/testsuite/gdb.disasm/t07_ari3.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.disasm/t08_or.exp b/gdb/testsuite/gdb.disasm/t08_or.exp
index add3e39..94cef31 100644
--- a/gdb/testsuite/gdb.disasm/t08_or.exp
+++ b/gdb/testsuite/gdb.disasm/t08_or.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.disasm/t09_xor.exp b/gdb/testsuite/gdb.disasm/t09_xor.exp
index 8f8ec9b..4a8c34c 100644
--- a/gdb/testsuite/gdb.disasm/t09_xor.exp
+++ b/gdb/testsuite/gdb.disasm/t09_xor.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.disasm/t10_and.exp b/gdb/testsuite/gdb.disasm/t10_and.exp
index 6d24c9a..daa2777 100644
--- a/gdb/testsuite/gdb.disasm/t10_and.exp
+++ b/gdb/testsuite/gdb.disasm/t10_and.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.disasm/t11_logs.exp b/gdb/testsuite/gdb.disasm/t11_logs.exp
index ebc2b43..d2077de 100644
--- a/gdb/testsuite/gdb.disasm/t11_logs.exp
+++ b/gdb/testsuite/gdb.disasm/t11_logs.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.disasm/t12_bit.exp b/gdb/testsuite/gdb.disasm/t12_bit.exp
index 1c6de0f..7d8ea17 100644
--- a/gdb/testsuite/gdb.disasm/t12_bit.exp
+++ b/gdb/testsuite/gdb.disasm/t12_bit.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.disasm/t13_otr.exp b/gdb/testsuite/gdb.disasm/t13_otr.exp
index aa97188..29fd695 100644
--- a/gdb/testsuite/gdb.disasm/t13_otr.exp
+++ b/gdb/testsuite/gdb.disasm/t13_otr.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dlang/circular.c b/gdb/testsuite/gdb.dlang/circular.c
index 7a3aed5..d0ca685 100644
--- a/gdb/testsuite/gdb.dlang/circular.c
+++ b/gdb/testsuite/gdb.dlang/circular.c
@@ -1,4 +1,4 @@
-/* Copyright 2016-2024 Free Software Foundation, Inc.
+/* Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dlang/circular.exp b/gdb/testsuite/gdb.dlang/circular.exp
index e6d78d0..e318945 100644
--- a/gdb/testsuite/gdb.dlang/circular.exp
+++ b/gdb/testsuite/gdb.dlang/circular.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dlang/debug-expr.exp b/gdb/testsuite/gdb.dlang/debug-expr.exp
index 88f6ddd..8465e47 100644
--- a/gdb/testsuite/gdb.dlang/debug-expr.exp
+++ b/gdb/testsuite/gdb.dlang/debug-expr.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dlang/demangle.exp b/gdb/testsuite/gdb.dlang/demangle.exp
index f1a1c7f..75c2f79 100644
--- a/gdb/testsuite/gdb.dlang/demangle.exp
+++ b/gdb/testsuite/gdb.dlang/demangle.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dlang/dlang-start-2.exp b/gdb/testsuite/gdb.dlang/dlang-start-2.exp
index 284f841..403dcfd 100644
--- a/gdb/testsuite/gdb.dlang/dlang-start-2.exp
+++ b/gdb/testsuite/gdb.dlang/dlang-start-2.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dlang/dlang-start.exp b/gdb/testsuite/gdb.dlang/dlang-start.exp
index 03afeb5..1e4176b 100644
--- a/gdb/testsuite/gdb.dlang/dlang-start.exp
+++ b/gdb/testsuite/gdb.dlang/dlang-start.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dlang/dmain.c b/gdb/testsuite/gdb.dlang/dmain.c
index f2bac4f..c784e50 100644
--- a/gdb/testsuite/gdb.dlang/dmain.c
+++ b/gdb/testsuite/gdb.dlang/dmain.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dlang/expression.exp b/gdb/testsuite/gdb.dlang/expression.exp
index c3b8bd2..0d22cee 100644
--- a/gdb/testsuite/gdb.dlang/expression.exp
+++ b/gdb/testsuite/gdb.dlang/expression.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dlang/primitive-types.exp b/gdb/testsuite/gdb.dlang/primitive-types.exp
index 8c7f910..8e74520 100644
--- a/gdb/testsuite/gdb.dlang/primitive-types.exp
+++ b/gdb/testsuite/gdb.dlang/primitive-types.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dlang/properties.exp b/gdb/testsuite/gdb.dlang/properties.exp
index f210fa7..0fe18a5 100644
--- a/gdb/testsuite/gdb.dlang/properties.exp
+++ b/gdb/testsuite/gdb.dlang/properties.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dlang/simple.d b/gdb/testsuite/gdb.dlang/simple.d
index 9994227..d99a034 100644
--- a/gdb/testsuite/gdb.dlang/simple.d
+++ b/gdb/testsuite/gdb.dlang/simple.d
@@ -1,4 +1,4 @@
-// Copyright (C) 2023-2024 Free Software Foundation, Inc.
+// Copyright (C) 2023-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dlang/watch-loc.c b/gdb/testsuite/gdb.dlang/watch-loc.c
index 078840e..b7a277f 100644
--- a/gdb/testsuite/gdb.dlang/watch-loc.c
+++ b/gdb/testsuite/gdb.dlang/watch-loc.c
@@ -1,4 +1,4 @@
-/* Copyright 2017-2024 Free Software Foundation, Inc.
+/* Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dlang/watch-loc.exp b/gdb/testsuite/gdb.dlang/watch-loc.exp
index a03f524..ec50e91 100644
--- a/gdb/testsuite/gdb.dlang/watch-loc.exp
+++ b/gdb/testsuite/gdb.dlang/watch-loc.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/DW_OP_piece_with_DW_OP_GNU_uninit.exp b/gdb/testsuite/gdb.dwarf2/DW_OP_piece_with_DW_OP_GNU_uninit.exp
index 4a0eb8a..6735207 100644
--- a/gdb/testsuite/gdb.dwarf2/DW_OP_piece_with_DW_OP_GNU_uninit.exp
+++ b/gdb/testsuite/gdb.dwarf2/DW_OP_piece_with_DW_OP_GNU_uninit.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/_start.c b/gdb/testsuite/gdb.dwarf2/_start.c
index 5ec5b9e..9800ec0 100644
--- a/gdb/testsuite/gdb.dwarf2/_start.c
+++ b/gdb/testsuite/gdb.dwarf2/_start.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/ada-array-bound.c b/gdb/testsuite/gdb.dwarf2/ada-array-bound.c
new file mode 100644
index 0000000..5a7d397
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/ada-array-bound.c
@@ -0,0 +1,29 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+/* The data used for the structure. */
+
+unsigned char our_data[] = { 3, 7, 11, 13 };
+
+/* Dummy main function. */
+
+int
+main()
+{
+ asm ("main_label: .globl main_label");
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.dwarf2/ada-array-bound.exp b/gdb/testsuite/gdb.dwarf2/ada-array-bound.exp
new file mode 100644
index 0000000..f48df7b
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/ada-array-bound.exp
@@ -0,0 +1,89 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Test handling of an array type whose bound comes from the field of a
+# structure.
+
+load_lib dwarf.exp
+
+# This test can only be run on targets which support DWARF-2 and use gas.
+require dwarf2_support
+
+standard_testfile .c -debug.S
+
+# Set up the DWARF for the test.
+
+set asm_file [standard_output_file $srcfile2]
+Dwarf::assemble $asm_file {
+ global srcdir subdir srcfile
+
+ cu {} {
+ DW_TAG_compile_unit {
+ {DW_AT_language @DW_LANG_Ada95}
+ {DW_AT_name $srcfile}
+ } {
+ declare_labels byte array disc struct
+
+ byte: DW_TAG_base_type {
+ {DW_AT_byte_size 1 DW_FORM_sdata}
+ {DW_AT_encoding @DW_ATE_unsigned}
+ {DW_AT_name byte}
+ }
+
+ array: DW_TAG_array_type {
+ {DW_AT_name array_type}
+ {DW_AT_type :$byte}
+ } {
+ DW_TAG_subrange_type {
+ {DW_AT_type :$byte}
+ {DW_AT_upper_bound :$disc}
+ }
+ }
+
+ struct: DW_TAG_structure_type {
+ {DW_AT_name discriminated}
+ {DW_AT_byte_size 4 DW_FORM_sdata}
+ } {
+ disc: DW_TAG_member {
+ {DW_AT_name disc}
+ {DW_AT_type :$byte}
+ {DW_AT_data_member_location 0 DW_FORM_sdata}
+ }
+ DW_TAG_member {
+ {DW_AT_name nums}
+ {DW_AT_type :$array}
+ {DW_AT_data_member_location 1 DW_FORM_sdata}
+ }
+ }
+
+ DW_TAG_variable {
+ {DW_AT_name "value"}
+ {DW_AT_type :$struct}
+ {DW_AT_external 1 DW_FORM_flag}
+ {DW_AT_location {DW_OP_addr [gdb_target_symbol "our_data"]}
+ SPECIAL_expr}
+ }
+ }
+ }
+}
+
+if { [prepare_for_testing "failed to prepare" ${testfile} \
+ [list $srcfile $asm_file] {nodebug}] } {
+ return -1
+}
+
+gdb_test_no_output "set language ada"
+gdb_test "print value" \
+ [string_to_regexp " = (disc => 3, nums => (7, 11, 13))"]
diff --git a/gdb/testsuite/gdb.dwarf2/ada-cold-name.exp b/gdb/testsuite/gdb.dwarf2/ada-cold-name.exp
index 08d8758..c5758c2 100644
--- a/gdb/testsuite/gdb.dwarf2/ada-cold-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/ada-cold-name.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/ada-linkage-name.c b/gdb/testsuite/gdb.dwarf2/ada-linkage-name.c
index 67aa968..cef9ff0 100644
--- a/gdb/testsuite/gdb.dwarf2/ada-linkage-name.c
+++ b/gdb/testsuite/gdb.dwarf2/ada-linkage-name.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/ada-linkage-name.exp b/gdb/testsuite/gdb.dwarf2/ada-linkage-name.exp
index 516dc48..9f2061c 100644
--- a/gdb/testsuite/gdb.dwarf2/ada-linkage-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/ada-linkage-name.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/ada-thick-pointer.exp b/gdb/testsuite/gdb.dwarf2/ada-thick-pointer.exp
index d2b74ab..5032252 100644
--- a/gdb/testsuite/gdb.dwarf2/ada-thick-pointer.exp
+++ b/gdb/testsuite/gdb.dwarf2/ada-thick-pointer.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/ada-valprint-error.c b/gdb/testsuite/gdb.dwarf2/ada-valprint-error.c
index 4b21120..19dc4b6 100644
--- a/gdb/testsuite/gdb.dwarf2/ada-valprint-error.c
+++ b/gdb/testsuite/gdb.dwarf2/ada-valprint-error.c
@@ -1,4 +1,4 @@
-/* Copyright 2017-2024 Free Software Foundation, Inc.
+/* Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/ada-valprint-error.exp b/gdb/testsuite/gdb.dwarf2/ada-valprint-error.exp
index 6784b7f..e1a76bf 100644
--- a/gdb/testsuite/gdb.dwarf2/ada-valprint-error.exp
+++ b/gdb/testsuite/gdb.dwarf2/ada-valprint-error.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/anon-ns-fn.cc b/gdb/testsuite/gdb.dwarf2/anon-ns-fn.cc
index d908667..7a00880 100644
--- a/gdb/testsuite/gdb.dwarf2/anon-ns-fn.cc
+++ b/gdb/testsuite/gdb.dwarf2/anon-ns-fn.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/anon-ns-fn.exp b/gdb/testsuite/gdb.dwarf2/anon-ns-fn.exp
index 5a3b40b..4f6701f 100644
--- a/gdb/testsuite/gdb.dwarf2/anon-ns-fn.exp
+++ b/gdb/testsuite/gdb.dwarf2/anon-ns-fn.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/arr-opt-out.c b/gdb/testsuite/gdb.dwarf2/arr-opt-out.c
index 5397911..ca413ec 100644
--- a/gdb/testsuite/gdb.dwarf2/arr-opt-out.c
+++ b/gdb/testsuite/gdb.dwarf2/arr-opt-out.c
@@ -1,4 +1,4 @@
-/* Copyright 2023 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/arr-opt-out.exp b/gdb/testsuite/gdb.dwarf2/arr-opt-out.exp
index 387ac0c..6bbfef2 100644
--- a/gdb/testsuite/gdb.dwarf2/arr-opt-out.exp
+++ b/gdb/testsuite/gdb.dwarf2/arr-opt-out.exp
@@ -1,4 +1,4 @@
-# Copyright 2023 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/arr-stride.exp b/gdb/testsuite/gdb.dwarf2/arr-stride.exp
index c83cd53..be0fdf3 100644
--- a/gdb/testsuite/gdb.dwarf2/arr-stride.exp
+++ b/gdb/testsuite/gdb.dwarf2/arr-stride.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/arr-subrange.exp b/gdb/testsuite/gdb.dwarf2/arr-subrange.exp
index ceb8edf..05fe778 100644
--- a/gdb/testsuite/gdb.dwarf2/arr-subrange.exp
+++ b/gdb/testsuite/gdb.dwarf2/arr-subrange.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/assign-variable-value-to-register.exp b/gdb/testsuite/gdb.dwarf2/assign-variable-value-to-register.exp
index 101ba94..64a86ec 100644
--- a/gdb/testsuite/gdb.dwarf2/assign-variable-value-to-register.exp
+++ b/gdb/testsuite/gdb.dwarf2/assign-variable-value-to-register.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/atomic-type.c b/gdb/testsuite/gdb.dwarf2/atomic-type.c
index 6f74f59..0edf605 100644
--- a/gdb/testsuite/gdb.dwarf2/atomic-type.c
+++ b/gdb/testsuite/gdb.dwarf2/atomic-type.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/atomic-type.exp b/gdb/testsuite/gdb.dwarf2/atomic-type.exp
index 8039fc9..2e6d903 100644
--- a/gdb/testsuite/gdb.dwarf2/atomic-type.exp
+++ b/gdb/testsuite/gdb.dwarf2/atomic-type.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/backward-spec-inter-cu.exp b/gdb/testsuite/gdb.dwarf2/backward-spec-inter-cu.exp
index 2f41db9..b62f928 100644
--- a/gdb/testsuite/gdb.dwarf2/backward-spec-inter-cu.exp
+++ b/gdb/testsuite/gdb.dwarf2/backward-spec-inter-cu.exp
@@ -1,4 +1,4 @@
-# Copyright 2023 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/bad-regnum.exp b/gdb/testsuite/gdb.dwarf2/bad-regnum.exp
index 3b8236c..b443f82 100644
--- a/gdb/testsuite/gdb.dwarf2/bad-regnum.exp
+++ b/gdb/testsuite/gdb.dwarf2/bad-regnum.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp b/gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp
index a6101e0..d2eb9bf 100644
--- a/gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp
+++ b/gdb/testsuite/gdb.dwarf2/bitfield-parent-optimized-out.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/break-inline-psymtab-2.c b/gdb/testsuite/gdb.dwarf2/break-inline-psymtab-2.c
index 6f7933c..e22076d 100644
--- a/gdb/testsuite/gdb.dwarf2/break-inline-psymtab-2.c
+++ b/gdb/testsuite/gdb.dwarf2/break-inline-psymtab-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/break-inline-psymtab.c b/gdb/testsuite/gdb.dwarf2/break-inline-psymtab.c
index 3088451..1742f6a 100644
--- a/gdb/testsuite/gdb.dwarf2/break-inline-psymtab.c
+++ b/gdb/testsuite/gdb.dwarf2/break-inline-psymtab.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/break-inline-psymtab.exp b/gdb/testsuite/gdb.dwarf2/break-inline-psymtab.exp
index 750aa0f..a9eddc3 100644
--- a/gdb/testsuite/gdb.dwarf2/break-inline-psymtab.exp
+++ b/gdb/testsuite/gdb.dwarf2/break-inline-psymtab.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/callframecfa.S b/gdb/testsuite/gdb.dwarf2/callframecfa.S
index 9f884b6..3c7a495 100644
--- a/gdb/testsuite/gdb.dwarf2/callframecfa.S
+++ b/gdb/testsuite/gdb.dwarf2/callframecfa.S
@@ -1,5 +1,5 @@
/*
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/callframecfa.exp b/gdb/testsuite/gdb.dwarf2/callframecfa.exp
index 924b842..712e51e 100644
--- a/gdb/testsuite/gdb.dwarf2/callframecfa.exp
+++ b/gdb/testsuite/gdb.dwarf2/callframecfa.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/calling-convention.c b/gdb/testsuite/gdb.dwarf2/calling-convention.c
index 86af28a..3331656 100644
--- a/gdb/testsuite/gdb.dwarf2/calling-convention.c
+++ b/gdb/testsuite/gdb.dwarf2/calling-convention.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/calling-convention.exp b/gdb/testsuite/gdb.dwarf2/calling-convention.exp
index 5905585..3cced7d 100644
--- a/gdb/testsuite/gdb.dwarf2/calling-convention.exp
+++ b/gdb/testsuite/gdb.dwarf2/calling-convention.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/clang-cli-macro.c b/gdb/testsuite/gdb.dwarf2/clang-cli-macro.c
index 5bc5580..97766a9 100644
--- a/gdb/testsuite/gdb.dwarf2/clang-cli-macro.c
+++ b/gdb/testsuite/gdb.dwarf2/clang-cli-macro.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/clang-cli-macro.exp b/gdb/testsuite/gdb.dwarf2/clang-cli-macro.exp
index eafb75a..b856c5b 100644
--- a/gdb/testsuite/gdb.dwarf2/clang-cli-macro.exp
+++ b/gdb/testsuite/gdb.dwarf2/clang-cli-macro.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/clztest.S b/gdb/testsuite/gdb.dwarf2/clztest.S
index 011ce7c..1528eac 100644
--- a/gdb/testsuite/gdb.dwarf2/clztest.S
+++ b/gdb/testsuite/gdb.dwarf2/clztest.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/clztest.exp b/gdb/testsuite/gdb.dwarf2/clztest.exp
index b1293b0..7a74e02 100644
--- a/gdb/testsuite/gdb.dwarf2/clztest.exp
+++ b/gdb/testsuite/gdb.dwarf2/clztest.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/comp-unit-lang.c b/gdb/testsuite/gdb.dwarf2/comp-unit-lang.c
index d45e60f..4f7f672 100644
--- a/gdb/testsuite/gdb.dwarf2/comp-unit-lang.c
+++ b/gdb/testsuite/gdb.dwarf2/comp-unit-lang.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/comp-unit-lang.exp b/gdb/testsuite/gdb.dwarf2/comp-unit-lang.exp
index 9856797..9b18d9a 100644
--- a/gdb/testsuite/gdb.dwarf2/comp-unit-lang.exp
+++ b/gdb/testsuite/gdb.dwarf2/comp-unit-lang.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/corrupt.exp b/gdb/testsuite/gdb.dwarf2/corrupt.exp
index 4bcd79a..b9f242c 100644
--- a/gdb/testsuite/gdb.dwarf2/corrupt.exp
+++ b/gdb/testsuite/gdb.dwarf2/corrupt.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/count.exp b/gdb/testsuite/gdb.dwarf2/count.exp
index 096e093..a8b216d 100644
--- a/gdb/testsuite/gdb.dwarf2/count.exp
+++ b/gdb/testsuite/gdb.dwarf2/count.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/cpp-linkage-name.c b/gdb/testsuite/gdb.dwarf2/cpp-linkage-name.c
index 4b7f515..3e14bc2 100644
--- a/gdb/testsuite/gdb.dwarf2/cpp-linkage-name.c
+++ b/gdb/testsuite/gdb.dwarf2/cpp-linkage-name.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/cpp-linkage-name.exp b/gdb/testsuite/gdb.dwarf2/cpp-linkage-name.exp
index a126fea..7442399 100644
--- a/gdb/testsuite/gdb.dwarf2/cpp-linkage-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/cpp-linkage-name.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/cu-empty-name.c b/gdb/testsuite/gdb.dwarf2/cu-empty-name.c
index 2b72fe1..d1fead6 100644
--- a/gdb/testsuite/gdb.dwarf2/cu-empty-name.c
+++ b/gdb/testsuite/gdb.dwarf2/cu-empty-name.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2024 Free Software Foundation, Inc.
+/* Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/cu-empty-name.exp b/gdb/testsuite/gdb.dwarf2/cu-empty-name.exp
index a890962..6bed9e5 100644
--- a/gdb/testsuite/gdb.dwarf2/cu-empty-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/cu-empty-name.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/cu-no-addrs.exp b/gdb/testsuite/gdb.dwarf2/cu-no-addrs.exp
index 6fd9fc1..7f36878 100644
--- a/gdb/testsuite/gdb.dwarf2/cu-no-addrs.exp
+++ b/gdb/testsuite/gdb.dwarf2/cu-no-addrs.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/data-loc.c b/gdb/testsuite/gdb.dwarf2/data-loc.c
index bb1fcee..d25e7fb 100644
--- a/gdb/testsuite/gdb.dwarf2/data-loc.c
+++ b/gdb/testsuite/gdb.dwarf2/data-loc.c
@@ -1,4 +1,4 @@
-/* Copyright 2014-2024 Free Software Foundation, Inc.
+/* Copyright 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/data-loc.exp b/gdb/testsuite/gdb.dwarf2/data-loc.exp
index c409f1e..20500cb 100644
--- a/gdb/testsuite/gdb.dwarf2/data-loc.exp
+++ b/gdb/testsuite/gdb.dwarf2/data-loc.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/debug-aranges-duplicate-offset-warning.c b/gdb/testsuite/gdb.dwarf2/debug-aranges-duplicate-offset-warning.c
index 86a5978..fcbd6d8 100644
--- a/gdb/testsuite/gdb.dwarf2/debug-aranges-duplicate-offset-warning.c
+++ b/gdb/testsuite/gdb.dwarf2/debug-aranges-duplicate-offset-warning.c
@@ -1,5 +1,5 @@
/*
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/debug-aranges-duplicate-offset-warning.exp b/gdb/testsuite/gdb.dwarf2/debug-aranges-duplicate-offset-warning.exp
index 5c45b7a..ac9c774 100644
--- a/gdb/testsuite/gdb.dwarf2/debug-aranges-duplicate-offset-warning.exp
+++ b/gdb/testsuite/gdb.dwarf2/debug-aranges-duplicate-offset-warning.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/debug-names-bad-cu-index.exp b/gdb/testsuite/gdb.dwarf2/debug-names-bad-cu-index.exp
index c3ef2e2..c758db7 100644
--- a/gdb/testsuite/gdb.dwarf2/debug-names-bad-cu-index.exp
+++ b/gdb/testsuite/gdb.dwarf2/debug-names-bad-cu-index.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/debug-names-duplicate-cu.exp b/gdb/testsuite/gdb.dwarf2/debug-names-duplicate-cu.exp
index 4d9ad56..44d623b 100644
--- a/gdb/testsuite/gdb.dwarf2/debug-names-duplicate-cu.exp
+++ b/gdb/testsuite/gdb.dwarf2/debug-names-duplicate-cu.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/debug-names-missing-cu.exp b/gdb/testsuite/gdb.dwarf2/debug-names-missing-cu.exp
index a8c9ab6..d7d4fb8 100644
--- a/gdb/testsuite/gdb.dwarf2/debug-names-missing-cu.exp
+++ b/gdb/testsuite/gdb.dwarf2/debug-names-missing-cu.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/debug-names-non-ascending-cu.exp b/gdb/testsuite/gdb.dwarf2/debug-names-non-ascending-cu.exp
index 305d812..d86b5c4 100644
--- a/gdb/testsuite/gdb.dwarf2/debug-names-non-ascending-cu.exp
+++ b/gdb/testsuite/gdb.dwarf2/debug-names-non-ascending-cu.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/debug-names-tu-dwarf5.exp b/gdb/testsuite/gdb.dwarf2/debug-names-tu-dwarf5.exp
index ec82e68..b5f9517 100644
--- a/gdb/testsuite/gdb.dwarf2/debug-names-tu-dwarf5.exp
+++ b/gdb/testsuite/gdb.dwarf2/debug-names-tu-dwarf5.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/debug-names-tu.exp b/gdb/testsuite/gdb.dwarf2/debug-names-tu.exp
index 6c8f6c8..f3844c6 100644
--- a/gdb/testsuite/gdb.dwarf2/debug-names-tu.exp
+++ b/gdb/testsuite/gdb.dwarf2/debug-names-tu.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/debug-names-tu.exp.tcl b/gdb/testsuite/gdb.dwarf2/debug-names-tu.exp.tcl
index b7ed935..60d1d0d 100644
--- a/gdb/testsuite/gdb.dwarf2/debug-names-tu.exp.tcl
+++ b/gdb/testsuite/gdb.dwarf2/debug-names-tu.exp.tcl
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -46,7 +46,7 @@ Dwarf::assemble {
}
tu { label tu_label version $dwarf_version } 0x8ece66f4224fddb3 "" {
- type_unit {} {
+ type_unit {{language @DW_LANG_C}} {
declare_labels int_type
structure_type {
@@ -70,7 +70,8 @@ Dwarf::assemble {
cu cu_label
tu tu_label
name _start subprogram cu_label 0xEDDB6232
- name struct_with_int_member structure_type tu_label 0x53A2AE86
+ name struct_with_int_member structure_type tu_label 0x53A2AE86 \
+ {DW_LANG_C}
}
}
diff --git a/gdb/testsuite/gdb.dwarf2/debug-names.exp b/gdb/testsuite/gdb.dwarf2/debug-names.exp
index 74c9192..67a4f49 100644
--- a/gdb/testsuite/gdb.dwarf2/debug-names.exp
+++ b/gdb/testsuite/gdb.dwarf2/debug-names.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dup-psym.S b/gdb/testsuite/gdb.dwarf2/dup-psym.S
index d137707..9a08eda 100644
--- a/gdb/testsuite/gdb.dwarf2/dup-psym.S
+++ b/gdb/testsuite/gdb.dwarf2/dup-psym.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2005-2024 Free Software Foundation, Inc.
+ Copyright 2005-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dup-psym.exp b/gdb/testsuite/gdb.dwarf2/dup-psym.exp
index 655948c..ce16c93 100644
--- a/gdb/testsuite/gdb.dwarf2/dup-psym.exp
+++ b/gdb/testsuite/gdb.dwarf2/dup-psym.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw-form-strx-out-of-bounds.exp b/gdb/testsuite/gdb.dwarf2/dw-form-strx-out-of-bounds.exp
new file mode 100644
index 0000000..cb24b19
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/dw-form-strx-out-of-bounds.exp
@@ -0,0 +1,41 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Check that an out-of-bounds DW_FORM_strx attribute triggers a DWARF error.
+
+# Out of bounds index.
+set int_str_idx 1
+
+# With readnow, the dwarf error is printed during the file command, so skip
+# the test.
+require !readnow
+
+set prepare_for_testing_done 0
+source $srcdir/$subdir/dw-form-strx.exp.tcl
+require {expr $prepare_for_testing_done == 1}
+
+set re_dwarf_error \
+ [string_list_to_regexp \
+ "DWARF Error: Offset from DW_FORM_GNU_str_index or DW_FORM_strx" \
+ " pointing outside of .debug_str_offsets section in CU at offset"\
+ " "]$hex
+set re_in_module \
+ {in module [^\r\n]+}
+set re_in_module [string_to_regexp {[}]$re_in_module[string_to_regexp {]}]
+set re_no_symbol [string_to_regexp {No symbol "global_var" in current context.}]
+gdb_test "ptype global_var" \
+ [multi_line \
+ "$re_dwarf_error $re_in_module"\
+ $re_no_symbol]
diff --git a/gdb/testsuite/gdb.dwarf2/dw-form-strx.exp b/gdb/testsuite/gdb.dwarf2/dw-form-strx.exp
new file mode 100644
index 0000000..3f739c4
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/dw-form-strx.exp
@@ -0,0 +1,25 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Check that DW_FORM_strx works.
+
+# Correct index.
+set int_str_idx 0
+
+set prepare_for_testing_done 0
+source $srcdir/$subdir/dw-form-strx.exp.tcl
+require {expr $prepare_for_testing_done == 1}
+
+gdb_test "ptype global_var" "type = int"
diff --git a/gdb/testsuite/gdb.dwarf2/dw-form-strx.exp.tcl b/gdb/testsuite/gdb.dwarf2/dw-form-strx.exp.tcl
new file mode 100644
index 0000000..bc5a654
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/dw-form-strx.exp.tcl
@@ -0,0 +1,64 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+load_lib dwarf.exp
+
+# This test can only be run on targets which support DWARF-2 and use gas.
+require dwarf2_support
+
+standard_testfile main.c -dw.S
+
+set asm_file [standard_output_file $srcfile2]
+
+# Debug info in the main file.
+Dwarf::assemble $asm_file {
+ declare_labels base_offset_cu1
+
+ debug_str_offsets { base_offset base_offset_cu1 } int
+
+ cu {
+ version 5
+ } {
+ DW_TAG_compile_unit {
+ {DW_AT_str_offsets_base $base_offset_cu1 sec_offset}
+ } {
+ declare_labels int4_type
+
+ int4_type: DW_TAG_base_type {
+ {DW_AT_byte_size 4 DW_FORM_sdata}
+ {DW_AT_encoding @DW_ATE_signed}
+ {DW_AT_name $::int_str_idx DW_FORM_strx_id}
+ }
+
+ DW_TAG_variable {
+ {DW_AT_name global_var}
+ {DW_AT_type :$int4_type}
+ {DW_AT_location {
+ DW_OP_const1u 12
+ DW_OP_stack_value
+ } SPECIAL_expr}
+ }
+ }
+ }
+}
+
+if { [prepare_for_testing "failed to prepare" ${testfile} \
+ [list $srcfile $asm_file] {nodebug}] } {
+ return
+}
+
+# Let includers know prepare_for_testing was done, without having to check
+# source return status.
+set prepare_for_testing_done 1
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello-dbg.S b/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello-dbg.S
index 745e534..ff64e1e 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello-dbg.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello-dbg.S
@@ -1,4 +1,4 @@
-/* Copyright 2014-2024 Free Software Foundation, Inc.
+/* Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello.c b/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello.c
index 8452f46..a4cf760 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-hello.c
@@ -1,4 +1,4 @@
-/* Copyright 2014-2024 Free Software Foundation, Inc.
+/* Copyright 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world-dbg.S b/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world-dbg.S
index 15f2cf3..d5ae9c7 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world-dbg.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world-dbg.S
@@ -1,4 +1,4 @@
-/* Copyright 2014-2024 Free Software Foundation, Inc.
+/* Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world.c b/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world.c
index 030d231..d89c2c5 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc-world.c
@@ -1,4 +1,4 @@
-/* Copyright 2014-2024 Free Software Foundation, Inc.
+/* Copyright 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.c b/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.c
index 1072c71..95338e5 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.c
@@ -1,4 +1,4 @@
-/* Copyright 2014-2024 Free Software Foundation, Inc.
+/* Copyright 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.exp b/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.exp
index e93d2fa..50cb8d8 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-abs-hi-pc.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.S b/gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.S
index 13ac525..aef8386 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.S
@@ -1,4 +1,4 @@
-/* Copyright 2010-2024 Free Software Foundation, Inc.
+/* Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.exp b/gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.exp
index 3f8fd78..457742e 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ada-ffffffff.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-align.exp b/gdb/testsuite/gdb.dwarf2/dw2-align.exp
index ecf9655..4d43816 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-align.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-align.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.S b/gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.S
index cd4582e..185e662 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.exp b/gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.exp
index fa98e41..b6a2525 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-anon-mptr.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.S b/gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.S
index e0ffecf..d15db8a 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.exp b/gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.exp
index 3dcc785..ff740d7 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-anonymous-func.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-aranges.c b/gdb/testsuite/gdb.dwarf2/dw2-aranges.c
index 2802518..fe2a1a2 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-aranges.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-aranges.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp b/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp
index 1ba5bad..8d941ba 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-aranges.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bad-abstract-origin.c b/gdb/testsuite/gdb.dwarf2/dw2-bad-abstract-origin.c
index 96014af..426a228 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-bad-abstract-origin.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-bad-abstract-origin.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bad-abstract-origin.exp b/gdb/testsuite/gdb.dwarf2/dw2-bad-abstract-origin.exp
index 5e7d8cc..9c1f424 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-bad-abstract-origin.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-bad-abstract-origin.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bad-elf-other.S b/gdb/testsuite/gdb.dwarf2/dw2-bad-elf-other.S
index 0e353f5..d645172 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-bad-elf-other.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-bad-elf-other.S
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bad-elf.exp b/gdb/testsuite/gdb.dwarf2/dw2-bad-elf.exp
index c678c20..fa9d000 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-bad-elf.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-bad-elf.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.c b/gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.c
index 28c09ec..6f7f1ff 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.exp b/gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.exp
index e67eb99..f2534cb 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-bad-mips-linkage-name.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.S b/gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.S
index cc7a806..41f692b 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.S
@@ -1,4 +1,4 @@
-/* Copyright 2010-2024 Free Software Foundation, Inc.
+/* Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.exp b/gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.exp
index d6b8d2e..8af85b3 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-bad-parameter-type.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.c b/gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.c
index 4e4e178..f2e7685 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.exp b/gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.exp
index 3d4f993..fd2c899 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-bad-unresolved.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-basic.S b/gdb/testsuite/gdb.dwarf2/dw2-basic.S
index 20bc309..e8ae42d 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-basic.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-basic.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-basic.exp b/gdb/testsuite/gdb.dwarf2/dw2-basic.exp
index ba1132b..803d183 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-basic.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-basic.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bfloat16.c b/gdb/testsuite/gdb.dwarf2/dw2-bfloat16.c
index 490b760..3204dca 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-bfloat16.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-bfloat16.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-bfloat16.exp b/gdb/testsuite/gdb.dwarf2/dw2-bfloat16.exp
index d98f830..c611ad2 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-bfloat16.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-bfloat16.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.S b/gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.S
index 3b3dc36..b8723c7 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.S
@@ -1,4 +1,4 @@
-/* Copyright 2012-2024 Free Software Foundation, Inc.
+/* Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.exp b/gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.exp
index 2bf592e..73567ad 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-canonicalize-type.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive-debug.S b/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive-debug.S
index c892296..44beac4 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive-debug.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive-debug.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.c b/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.c
index 83ee4c6..6ccce95 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp b/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp
index e31df6b..afe23a6 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-case-insensitive.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-common-block.S b/gdb/testsuite/gdb.dwarf2/dw2-common-block.S
index 64c6712..c9cd7cf 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-common-block.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-common-block.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-common-block.exp b/gdb/testsuite/gdb.dwarf2/dw2-common-block.exp
index 7430b53..0340b3d 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-common-block.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-common-block.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.S b/gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.S
index 7e03cfa..598190f 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.exp b/gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.exp
index e686e5b..5161e67 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-compdir-oldgcc.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-complex-parts.exp b/gdb/testsuite/gdb.dwarf2/dw2-complex-parts.exp
index 281e87d..34746f2 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-complex-parts.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-complex-parts.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-compressed.S b/gdb/testsuite/gdb.dwarf2/dw2-compressed.S
index 4b5bb5f..e14ffc7 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-compressed.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-compressed.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-compressed.exp b/gdb/testsuite/gdb.dwarf2/dw2-compressed.exp
index 2265985..a4bc0c0 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-compressed.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-compressed.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-const.S b/gdb/testsuite/gdb.dwarf2/dw2-const.S
index bcf996f..f9d96aa 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-const.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-const.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-const.exp b/gdb/testsuite/gdb.dwarf2/dw2-const.exp
index 8f4a7ed..b9e607a 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-const.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-const.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static-main.c b/gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static-main.c
index 01dda94..5d4ed5e 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static-main.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.S b/gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.S
index e87136c..449dbb0 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.exp b/gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.exp
index e35d308..5fab31d 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-cp-infcall-ref-static.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-cu-size.S b/gdb/testsuite/gdb.dwarf2/dw2-cu-size.S
index 99c9df1..f5a5229 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-cu-size.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-cu-size.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-cu-size.exp b/gdb/testsuite/gdb.dwarf2/dw2-cu-size.exp
index 340de7f..df33178 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-cu-size.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-cu-size.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c b/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c
index 9d8041d..b06c683 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp b/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp
index 65cb05f..696ccfa 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -212,7 +212,7 @@ proc out_line { name cu_dir cu_name line_dir line_name } {
}
# IFSOME can be optionally _same or _different if >= 2 absolute directories are
-# provided. Then in the _different case the overriden directories have invalid
+# provided. Then in the _different case the overridden directories have invalid
# XDIR value.
proc out_unit { func compdir ldir file ifsame } {
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-disasm-over-non-stmt.exp b/gdb/testsuite/gdb.dwarf2/dw2-disasm-over-non-stmt.exp
index aa84a20..cec1017 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-disasm-over-non-stmt.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-disasm-over-non-stmt.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-dos-drive.S b/gdb/testsuite/gdb.dwarf2/dw2-dos-drive.S
index f56dd3c..7e5f8f1 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-dos-drive.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-dos-drive.S
@@ -1,4 +1,4 @@
-/* Copyright 2013-2024 Free Software Foundation, Inc.
+/* Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-dos-drive.exp b/gdb/testsuite/gdb.dwarf2/dw2-dos-drive.exp
index f21f6bf..66368ca 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-dos-drive.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-dos-drive.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.S b/gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.S
index 6d473af..6baefed 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.exp b/gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.exp
index 2891994..4cd32af 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-double-set-die-type.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.S b/gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.S
index 6412883..b53307b 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.S
@@ -1,4 +1,4 @@
-/* Copyright 2015-2024 Free Software Foundation, Inc.
+/* Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.exp b/gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.exp
index 1c3be81..1ce55d5 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-dummy-cu.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-dup-frame.S b/gdb/testsuite/gdb.dwarf2/dw2-dup-frame.S
index 715f261..d988e13 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-dup-frame.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-dup-frame.S
@@ -1,5 +1,5 @@
/*
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-dup-frame.c b/gdb/testsuite/gdb.dwarf2/dw2-dup-frame.c
index fc91805..dbe14b8 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-dup-frame.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-dup-frame.c
@@ -1,5 +1,5 @@
/*
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-dup-frame.exp b/gdb/testsuite/gdb.dwarf2/dw2-dup-frame.exp
index c932abd..b1980e8 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-dup-frame.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-dup-frame.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-empty-file-name.exp b/gdb/testsuite/gdb.dwarf2/dw2-empty-file-name.exp
index 536cba9..85b6f8b 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-empty-file-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-empty-file-name.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.S b/gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.S
index ce66259..8e33c84 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.exp b/gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.exp
index 364c354..b087fd6 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-empty-namespace.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.S b/gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.S
index 248df7b..aa460a1 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.S
@@ -1,4 +1,4 @@
-/* Copyright 2011-2024 Free Software Foundation, Inc.
+/* Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.exp b/gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.exp
index 01bc477..fd9890b 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-empty-pc-range.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-entry-pc.c b/gdb/testsuite/gdb.dwarf2/dw2-entry-pc.c
index 363781d..4e6012a 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-entry-pc.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-entry-pc.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-entry-pc.exp b/gdb/testsuite/gdb.dwarf2/dw2-entry-pc.exp
index eb4d7cd..e795040 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-entry-pc.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-entry-pc.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-entry-points.c b/gdb/testsuite/gdb.dwarf2/dw2-entry-points.c
index fb76ded..ccfb150 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-entry-points.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-entry-points.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-entry-points.exp b/gdb/testsuite/gdb.dwarf2/dw2-entry-points.exp
index 632a311..bd22560 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-entry-points.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-entry-points.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-entry-value-2.c b/gdb/testsuite/gdb.dwarf2/dw2-entry-value-2.c
new file mode 100644
index 0000000..57025e0
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/dw2-entry-value-2.c
@@ -0,0 +1,32 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+int var = 2;
+
+static
+void bar (int *p)
+{
+ asm ("bar_label: .globl bar_label");
+}
+
+int
+main()
+{
+ asm ("main_label: .globl main_label");
+ bar (&var);
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-entry-value-2.exp b/gdb/testsuite/gdb.dwarf2/dw2-entry-value-2.exp
new file mode 100644
index 0000000..55ecf9c
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/dw2-entry-value-2.exp
@@ -0,0 +1,125 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Check that we can get DW_OP_entry_value at function entry.
+
+load_lib dwarf.exp
+
+# This test can only be run on targets which support DWARF-2 and use gas.
+require dwarf2_support
+
+standard_testfile .c -debug.S
+
+set test "get dwarf regnum for first argument register"
+if { [is_x86_64_m64_target] } {
+ set dwarf_regnum 5
+} elseif { [istarget riscv64*] } {
+ set dwarf_regnum 10
+} else {
+ set reason "architecture-specific setting missing"
+ unsupported "$test ($reason)"
+ return
+}
+pass $test
+
+# Set up the DWARF for the test.
+
+set asm_file [standard_output_file $srcfile2]
+Dwarf::assemble $asm_file {
+ global srcdir subdir srcfile
+
+ get_func_info main
+ get_func_info bar
+
+ cu {} {
+ DW_TAG_compile_unit {
+ {DW_AT_name $srcfile}
+ } {
+ declare_labels integer
+
+ integer: DW_TAG_base_type {
+ {DW_AT_byte_size 8 DW_FORM_sdata}
+ {DW_AT_encoding @DW_ATE_signed}
+ {DW_AT_name integer}
+ }
+
+ DW_TAG_subprogram {
+ { DW_AT_name main }
+ { DW_AT_low_pc $main_start DW_FORM_addr }
+ { DW_AT_high_pc $main_end DW_FORM_addr }
+ } {
+ DW_TAG_variable {
+ { DW_AT_name argc }
+ { DW_AT_type :$integer }
+ { DW_AT_location {
+ DW_OP_entry_value {
+ DW_OP_regx $::dwarf_regnum
+ }
+ } SPECIAL_expr }
+ }
+ }
+
+ DW_TAG_subprogram {
+ { DW_AT_name bar }
+ { DW_AT_low_pc $bar_start DW_FORM_addr }
+ { DW_AT_high_pc $bar_end DW_FORM_addr }
+ } {
+ DW_TAG_variable {
+ { DW_AT_name foo }
+ { DW_AT_type :$integer }
+ { DW_AT_location {
+ DW_OP_entry_value {
+ DW_OP_bregx $::dwarf_regnum 0
+ DW_OP_deref_size 4
+ }
+ DW_OP_stack_value
+ } SPECIAL_expr }
+ }
+ }
+ }
+ }
+}
+
+if { [prepare_for_testing "failed to prepare" $testfile \
+ [list $srcfile $asm_file] {nodebug}] } {
+ return -1
+}
+
+if { ![runto *main] } {
+ return
+}
+
+with_test_prefix "at main+0" {
+ gdb_test "p argc" " = 1"
+
+ gdb_test "stepi"
+}
+
+with_test_prefix "at main+1" {
+ gdb_test "p argc" " = <optimized out>"
+}
+
+gdb_breakpoint "*bar"
+gdb_continue_to_breakpoint "bar"
+
+with_test_prefix "at bar+0" {
+ gdb_test "p foo" " = 2"
+
+ gdb_test "stepi"
+}
+
+with_test_prefix "at bar+1" {
+ gdb_test "p foo" " = <optimized out>"
+}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-entry-value-main.c b/gdb/testsuite/gdb.dwarf2/dw2-entry-value-main.c
index 3b547f6..43b55b4 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-entry-value-main.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-entry-value-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-entry-value.S b/gdb/testsuite/gdb.dwarf2/dw2-entry-value.S
index cab4279..2bc5ca2 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-entry-value.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-entry-value.S
@@ -1,4 +1,4 @@
-/* Copyright 2011-2024 Free Software Foundation, Inc.
+/* Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-entry-value.exp b/gdb/testsuite/gdb.dwarf2/dw2-entry-value.exp
index 913ca28..e0f208c 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-entry-value.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-entry-value.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin-2.exp b/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin-2.exp
index 6302ef1..3781ade 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin-2.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin-2.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.c b/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.c
index 4ff445c..92640d4 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.c.inc b/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.c.inc
index 4ff445c..92640d4 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.c.inc
+++ b/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.c.inc
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.exp b/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.exp
index 9b9d6c7..e1ee3be 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.exp.tcl b/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.exp.tcl
index 155916b..954a252 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.exp.tcl
+++ b/gdb/testsuite/gdb.dwarf2/dw2-epilogue-begin.exp.tcl
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-error.S b/gdb/testsuite/gdb.dwarf2/dw2-error.S
index 17d3117..12cedf8 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-error.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-error.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-error.c b/gdb/testsuite/gdb.dwarf2/dw2-error.c
index 445b206..c20cbe3 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-error.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-error.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-error.exp b/gdb/testsuite/gdb.dwarf2/dw2-error.exp
index 526b394..0701ec6 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-error.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-error.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -37,7 +37,7 @@ set host_binfile [gdb_remote_download host $binfile]
# First test that reading symbols fails.
gdb_test "file $host_binfile" \
- {Reading symbols.*DWARF Error: wrong version in compilation unit header \(is 153, should be 2, 3, 4 or 5\).*} \
+ {Reading symbols.*DWARF Error: wrong version in unit header \(is 153, should be 2, 3, 4 or 5\).*} \
"file $testfile"
# We can't use proc readnow, because the PR makes it return 0.
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-filename.S b/gdb/testsuite/gdb.dwarf2/dw2-filename.S
index 861c035..0fa5769 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-filename.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-filename.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-filename.exp b/gdb/testsuite/gdb.dwarf2/dw2-filename.exp
index 4ed151f..0b41a8c 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-filename.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-filename.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-fixed-point.c b/gdb/testsuite/gdb.dwarf2/dw2-fixed-point.c
index 2789e6a..145cdaf 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-fixed-point.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-fixed-point.c
@@ -1,4 +1,4 @@
-/* Copyright 2016-2024 Free Software Foundation, Inc.
+/* Copyright 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-fixed-point.exp b/gdb/testsuite/gdb.dwarf2/dw2-fixed-point.exp
index bcb5eec..a8ade90 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-fixed-point.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-fixed-point.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-gas-workaround.exp b/gdb/testsuite/gdb.dwarf2/dw2-gas-workaround.exp
index 5d6e13a..25a73a6 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-gas-workaround.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-gas-workaround.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.S b/gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.S
index ef627d9..1720da6 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.exp b/gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.exp
index e1df8bf..780fc17 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-icc-opaque.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-icycle.S b/gdb/testsuite/gdb.dwarf2/dw2-icycle.S
index b5bed5a..1b908ab 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-icycle.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-icycle.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-icycle.exp b/gdb/testsuite/gdb.dwarf2/dw2-icycle.exp
index 2675f70..106e14f 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-icycle.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-icycle.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c b/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c
index 643f85f..bfed504 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp b/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp
index e05727b..309f9d8 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ifort-parameter.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inheritance.S b/gdb/testsuite/gdb.dwarf2/dw2-inheritance.S
index a6ee159..a84fe38 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inheritance.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inheritance.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inheritance.exp b/gdb/testsuite/gdb.dwarf2/dw2-inheritance.exp
index ed3162c..84b3db0 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inheritance.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inheritance.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-break.S b/gdb/testsuite/gdb.dwarf2/dw2-inline-break.S
index 056c5e1..1fec5db 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-break.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-break.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-break.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-break.exp
index 2e6f711..de7cd2b 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-break.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-break.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-header-1.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-header-1.exp
index 1f30c5c..2781cf3 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-header-1.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-header-1.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-header-2.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-header-2.exp
index 4fd4c5a..2004dfb 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-header-2.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-header-2.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-header-3.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-header-3.exp
index 1b8d136..f7d220c 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-header-3.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-header-3.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-header-lbls.c b/gdb/testsuite/gdb.dwarf2/dw2-inline-header-lbls.c
index 17e93c5..2190e78 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-header-lbls.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-header-lbls.c
@@ -1,4 +1,4 @@
-/* Copyright 2020-2024 Free Software Foundation, Inc.
+/* Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-header.c b/gdb/testsuite/gdb.dwarf2/dw2-inline-header.c
index 1615f4d..0b73fa2 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-header.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-header.c
@@ -1,4 +1,4 @@
-/* Copyright 2020-2024 Free Software Foundation, Inc.
+/* Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-header.h b/gdb/testsuite/gdb.dwarf2/dw2-inline-header.h
index 7a6f0b9..c957777 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-header.h
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-header.h
@@ -1,4 +1,4 @@
-/* Copyright 2020-2024 Free Software Foundation, Inc.
+/* Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.c b/gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.c
index af74b68..93cfb7c 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.c
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.exp
index cffe594..795f1e0 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-many-frames.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-param-main.c b/gdb/testsuite/gdb.dwarf2/dw2-inline-param-main.c
index 424e53a..2f646fb 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-param-main.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-param-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-param.S b/gdb/testsuite/gdb.dwarf2/dw2-inline-param.S
index 52221fc..7f49db3 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-param.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-param.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp
index 0f829c7..938f16d 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-param.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func-lbls.c b/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func-lbls.c
index 9621b52..e3e1fc4 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func-lbls.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func-lbls.c
@@ -1,4 +1,4 @@
-/* Copyright 2020-2024 Free Software Foundation, Inc.
+/* Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.c b/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.c
index b65630e..b9309a8 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.c
@@ -1,4 +1,4 @@
-/* Copyright 2020-2024 Free Software Foundation, Inc.
+/* Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.exp
index ed71669..12812dd 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.h b/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.h
index 2bfce4e..a40a021 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.h
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-small-func.h
@@ -1,4 +1,4 @@
-/* Copyright 2020-2024 Free Software Foundation, Inc.
+/* Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.c b/gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.c
index 109a372..3efec3c 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.c
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.exp
index daf1893..840d813 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-stepping.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-with-lexical-scope.c b/gdb/testsuite/gdb.dwarf2/dw2-inline-with-lexical-scope.c
index c1446ec..cc52104 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-with-lexical-scope.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-with-lexical-scope.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-with-lexical-scope.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-with-lexical-scope.exp
index 20836e0..320aa34 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-with-lexical-scope.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-with-lexical-scope.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-error-2.exp b/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-error-2.exp
index 25daae8..e65d1b9 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-error-2.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-error-2.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-error.exp b/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-error.exp
index 5de2790..bfdd1a7 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-error.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-error.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-forth-and-back.exp b/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-forth-and-back.exp
index 62674bd..3e91a51 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-forth-and-back.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-forth-and-back.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-symbol.exp b/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-symbol.exp
index 13a6993..dba8b83 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-symbol.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inter-cu-symbol.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-intercu.S b/gdb/testsuite/gdb.dwarf2/dw2-intercu.S
index 36e6031..879b4b0 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-intercu.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-intercu.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-intercu.exp b/gdb/testsuite/gdb.dwarf2/dw2-intercu.exp
index b81cb3e..f7ed241 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-intercu.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-intercu.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-intermix.S b/gdb/testsuite/gdb.dwarf2/dw2-intermix.S
index 1dd1071..04be4b6 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-intermix.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-intermix.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2005-2024 Free Software Foundation, Inc.
+ Copyright 2005-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-intermix.exp b/gdb/testsuite/gdb.dwarf2/dw2-intermix.exp
index 6fde81c..43b0028 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-intermix.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-intermix.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-is-stmt-2.c b/gdb/testsuite/gdb.dwarf2/dw2-is-stmt-2.c
index 1c106d3..ce22120 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-is-stmt-2.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-is-stmt-2.c
@@ -1,4 +1,4 @@
-/* Copyright 2020-2024 Free Software Foundation, Inc.
+/* Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-is-stmt-2.exp b/gdb/testsuite/gdb.dwarf2/dw2-is-stmt-2.exp
index 6842013..49091f7 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-is-stmt-2.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-is-stmt-2.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-is-stmt.c b/gdb/testsuite/gdb.dwarf2/dw2-is-stmt.c
index 97cda50..3e7c41f 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-is-stmt.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-is-stmt.c
@@ -1,4 +1,4 @@
-/* Copyright 2020-2024 Free Software Foundation, Inc.
+/* Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-is-stmt.exp b/gdb/testsuite/gdb.dwarf2/dw2-is-stmt.exp
index c13ed2a..65d9559 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-is-stmt.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-is-stmt.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-lexical-block-bare.exp b/gdb/testsuite/gdb.dwarf2/dw2-lexical-block-bare.exp
index c6399fe..ae7f97e 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-lexical-block-bare.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-lexical-block-bare.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-line-number-zero.c b/gdb/testsuite/gdb.dwarf2/dw2-line-number-zero.c
index 35290d0..2a260ec 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-line-number-zero.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-line-number-zero.c
@@ -1,5 +1,5 @@
/*
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-line-number-zero.exp b/gdb/testsuite/gdb.dwarf2/dw2-line-number-zero.exp
index 9124aff..d46f003 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-line-number-zero.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-line-number-zero.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-lines.c b/gdb/testsuite/gdb.dwarf2/dw2-lines.c
index 221d7b9..1ad9879 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-lines.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-lines.c
@@ -1,5 +1,5 @@
/*
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-lines.exp b/gdb/testsuite/gdb.dwarf2/dw2-lines.exp
index 4814f49..16ca54e7 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-lines.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-lines.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust-main.cc b/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust-main.cc
index 189e60b..e4a89b1 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust-main.cc
+++ b/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust-main.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.S b/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.S
index 56b6f6b..c1f1e6f 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.exp b/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.exp
index 5c5ffea..01eab48 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-linkage-name-trust.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-main-no-line-number.exp b/gdb/testsuite/gdb.dwarf2/dw2-main-no-line-number.exp
index dbbe610..309875a 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-main-no-line-number.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-main-no-line-number.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.S b/gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.S
index 57307fb..8c87e3b 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.exp b/gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.exp
index 8fc83bc..cec3f15 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-minsym-in-cu.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.c b/gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.c
index e27c5f4..518dba4 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.exp b/gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.exp
index 6206fb3..44b1726 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-missing-cu-tag.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.S b/gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.S
index 3d63384..c09c6db 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.S
@@ -1,4 +1,4 @@
-/* Copyright 2010-2024 Free Software Foundation, Inc.
+/* Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.exp b/gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.exp
index 8f44e8a..14bd200 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-modula2-self-type.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-multiple-debug-info.c b/gdb/testsuite/gdb.dwarf2/dw2-multiple-debug-info.c
index 5370a43..5371255 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-multiple-debug-info.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-multiple-debug-info.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-multiple-debug-info.exp b/gdb/testsuite/gdb.dwarf2/dw2-multiple-debug-info.exp
index 957f41f..a8fa524 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-multiple-debug-info.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-multiple-debug-info.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.c b/gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.c
index b3eb5e5..c284bef 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.exp b/gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.exp
index 448af13..d930801 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-namespaceless-anonymous.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-no-code-cu.c b/gdb/testsuite/gdb.dwarf2/dw2-no-code-cu.c
index 337735e..adc5b82 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-no-code-cu.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-no-code-cu.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-no-code-cu.exp b/gdb/testsuite/gdb.dwarf2/dw2-no-code-cu.exp
index 6a1ac57..6153def 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-no-code-cu.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-no-code-cu.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-noloc.c b/gdb/testsuite/gdb.dwarf2/dw2-noloc.c
index 4233224..c0b24f4 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-noloc.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-noloc.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2023 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-noloc.exp b/gdb/testsuite/gdb.dwarf2/dw2-noloc.exp
index bd74760..86ea143 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-noloc.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-noloc.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-inner.S b/gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-inner.S
index 70376f7..6535681 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-inner.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-inner.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-outer.S b/gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-outer.S
index 6241dad..6ae68f9 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-outer.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap-outer.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap.exp b/gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap.exp
index ffe424f..90941b2 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-objfile-overlap.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-op-call.S b/gdb/testsuite/gdb.dwarf2/dw2-op-call.S
index 8c37fa7..dcb7bc7 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-op-call.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-op-call.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-op-call.exp b/gdb/testsuite/gdb.dwarf2/dw2-op-call.exp
index 36e35be..5c412f4 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-op-call.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-op-call.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-op-out-param.S b/gdb/testsuite/gdb.dwarf2/dw2-op-out-param.S
index a271dbc..d054fc5 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-op-out-param.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-op-out-param.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-op-out-param.exp b/gdb/testsuite/gdb.dwarf2/dw2-op-out-param.exp
index 8d436b7..14d5ab1 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-op-out-param.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-op-out-param.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.S b/gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.S
index cec2f86..825e9ad 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.exp b/gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.exp
index 3c66131..dce2079 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-op-stack-value.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.c b/gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.c
index 670aaa6..e7b2a1e 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.c
@@ -1,4 +1,4 @@
-/* Copyright 2016-2024 Free Software Foundation, Inc.
+/* Copyright 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.exp b/gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.exp
index d73f4a8..486a4e8 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-opt-structptr.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp b/gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp
index 060b5b6..79c03c7 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-out-of-range-end-of-seq.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-param-error-main.c b/gdb/testsuite/gdb.dwarf2/dw2-param-error-main.c
index 3b547f6..43b55b4 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-param-error-main.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-param-error-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-param-error.S b/gdb/testsuite/gdb.dwarf2/dw2-param-error.S
index 8e7216f..8aa4453 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-param-error.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-param-error.S
@@ -1,4 +1,4 @@
-/* Copyright 2011-2024 Free Software Foundation, Inc.
+/* Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-param-error.exp b/gdb/testsuite/gdb.dwarf2/dw2-param-error.exp
index b303d6f..57ef6d0 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-param-error.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-param-error.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-producer.S b/gdb/testsuite/gdb.dwarf2/dw2-producer.S
index 73b293b..fd3d1a5 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-producer.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-producer.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-producer.exp b/gdb/testsuite/gdb.dwarf2/dw2-producer.exp
index a98ebb5..27899cb 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-producer.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-producer.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-prologue-end-2.c b/gdb/testsuite/gdb.dwarf2/dw2-prologue-end-2.c
index d254703..08771d2 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-prologue-end-2.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-prologue-end-2.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-prologue-end-2.exp b/gdb/testsuite/gdb.dwarf2/dw2-prologue-end-2.exp
index ef9dde8..eea17b0 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-prologue-end-2.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-prologue-end-2.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-prologue-end.c b/gdb/testsuite/gdb.dwarf2/dw2-prologue-end.c
index a71b183..41de0f6 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-prologue-end.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-prologue-end.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-prologue-end.exp b/gdb/testsuite/gdb.dwarf2/dw2-prologue-end.exp
index caa4086..23d8c26 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-prologue-end.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-prologue-end.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-2.c b/gdb/testsuite/gdb.dwarf2/dw2-ranges-2.c
index 5b6e130..746441f 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-2.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-2.c
@@ -1,5 +1,5 @@
/*
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-3.c b/gdb/testsuite/gdb.dwarf2/dw2-ranges-3.c
index b284411..46eeaba 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-3.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-3.c
@@ -1,5 +1,5 @@
/*
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.c b/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.c
index ae413d3..0f3a83e 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.c
@@ -1,5 +1,5 @@
/*
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
index 2be211f..e63bbc3 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-base.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-func-hi-cold.c b/gdb/testsuite/gdb.dwarf2/dw2-ranges-func-hi-cold.c
index 666c438..e0afaed 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-func-hi-cold.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-func-hi-cold.c
@@ -1,4 +1,4 @@
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-func-lo-cold.c b/gdb/testsuite/gdb.dwarf2/dw2-ranges-func-lo-cold.c
index 68d9ca5..8b9eff1 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-func-lo-cold.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-func-lo-cold.c
@@ -1,4 +1,4 @@
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-func.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges-func.exp
index c952e82..9fea8a8 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-func.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-func.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.c b/gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.c
index 20e97a3..1f595a1 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.c
@@ -1,5 +1,5 @@
/*
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.exp
index 338e29d..8e7d51e 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-overlap.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym-warning-main.c b/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym-warning-main.c
index ed610b1..e039ab5 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym-warning-main.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym-warning-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym-warning.c b/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym-warning.c
index 4c44801..de0dcd2 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym-warning.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym-warning.c
@@ -1,4 +1,4 @@
-/* Copyright 2021-2024 Free Software Foundation, Inc.
+/* Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym-warning.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym-warning.exp
index e62e4b2..6120878 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym-warning.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym-warning.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -117,7 +117,7 @@ if ![runto_main] {
# the hole is there in the symbol table, but not the partial symbol table,
# we run into:
# (gdb) bt
-# warning: (Internal error: pc 0x555555554619 in read in psymtab, \
+# warning: (Internal error: pc 0x555555554619 in read in psymtab,
# but not in symtab.)
# ...
# (gdb)
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.c b/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.c
index 66f4743..324335e 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.c
@@ -1,4 +1,4 @@
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp
index bb0b5db..e8c9890 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges-psym.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges.c b/gdb/testsuite/gdb.dwarf2/dw2-ranges.c
index 51c4e79..28094d4 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges.c
@@ -1,5 +1,5 @@
/*
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges.exp b/gdb/testsuite/gdb.dwarf2/dw2-ranges.exp
index e9a11f3..c494474 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ranges.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ranges.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-func.c b/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-func.c
index f3d09b9..47d39a8 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-func.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-func.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-main.c b/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-main.c
index ed85e1e..413e993 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-main.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.S b/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.S
index 982b572..789bc1c 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.exp b/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.exp
index 7a40193..ad35573 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-ref-missing-frame.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.S b/gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.S
index a53d04a..ab956c7 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.S
@@ -1,5 +1,5 @@
/*
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.c b/gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.c
index 7aacd1d..311fd2f 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.c
@@ -1,5 +1,5 @@
/*
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.exp b/gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.exp
index e32194a..87e27d6 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-reg-undefined.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp b/gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp
index 6532aa2..5f3c324 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-regno-invalid.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-restore.S b/gdb/testsuite/gdb.dwarf2/dw2-restore.S
index 71f80bd..50f7b37 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-restore.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-restore.S
@@ -1,5 +1,5 @@
/*
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-restore.exp b/gdb/testsuite/gdb.dwarf2/dw2-restore.exp
index ef09661..d1243dd 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-restore.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-restore.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-restrict.S b/gdb/testsuite/gdb.dwarf2/dw2-restrict.S
index f360b3f..cf86e6e 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-restrict.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-restrict.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-restrict.c b/gdb/testsuite/gdb.dwarf2/dw2-restrict.c
index ee2edd4..c9f97c6 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-restrict.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-restrict.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-restrict.exp b/gdb/testsuite/gdb.dwarf2/dw2-restrict.exp
index db80aa6..6afdb8c 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-restrict.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-restrict.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.S b/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.S
index cd14654..cd999f4 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.exp b/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.exp
index 426908e..7543099 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.S b/gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.S
index 052a1ed..2eb39ae 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.c b/gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.c
index bc65cd4..41e5bf5 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.exp b/gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.exp
index 7b07ec2..05de3c3 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-single-line-discriminators.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.S b/gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.S
index eef8b2f..ffa88d6 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.c b/gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.c
index dd34134..8bb86d9 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.exp b/gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.exp
index 78ac574..2fe63c6 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-skip-prologue.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-skipped-line-entries.c b/gdb/testsuite/gdb.dwarf2/dw2-skipped-line-entries.c
new file mode 100644
index 0000000..d99d873
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/dw2-skipped-line-entries.c
@@ -0,0 +1,50 @@
+/* Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+/* Used to insert labels with which we can build a fake line table. */
+#define LL(N) asm ("line_label_" #N ": .globl line_label_" #N)
+
+volatile int var;
+volatile int bar;
+
+/* Generate some code to take up some space. */
+#define FILLER do { \
+ var = 99; \
+} while (0)
+
+int
+main ()
+{
+ asm ("main_label: .globl main_label");
+ LL (1);
+ FILLER;
+ LL (2);
+ FILLER;
+ LL (3);
+ FILLER;
+ LL (4);
+ FILLER;
+ LL (5);
+ FILLER;
+ LL (6);
+ FILLER;
+ LL (7);
+ FILLER;
+ LL (8);
+ FILLER;
+ LL (9);
+ FILLER;
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-skipped-line-entries.exp b/gdb/testsuite/gdb.dwarf2/dw2-skipped-line-entries.exp
new file mode 100644
index 0000000..2c2b5ff
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/dw2-skipped-line-entries.exp
@@ -0,0 +1,211 @@
+# Copyright 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Check that END markers are placed into the correct symtabs line
+# table. Of particular interest is the case where we switch symtabs
+# in order to add a line, but then decide that we shouldn't actually
+# record the new line because the new line is a non-statement line at
+# the same address as a previous statement line in a different symtab.
+#
+# If we then switch symtabs again we used to add the END marker to the
+# wrong symtab.
+#
+# For a (possibly) better explanation, see the comment on the line
+# table in the DWARF assembler block below.
+
+load_lib dwarf.exp
+
+# This test can only be run on targets which support DWARF-2 and use gas.
+require dwarf2_support
+
+# The -1.c, -2.c, and -3.c source files don't actually exist. We just
+# want the filenames so we can use them in the generated DWARF.
+standard_testfile .c -dw.S -1.c -2.c -3.c
+
+set asm_file [standard_output_file $srcfile2]
+Dwarf::assemble $asm_file {
+ declare_labels lines_label
+
+ cu {} {
+ compile_unit {
+ {language @DW_LANG_C}
+ {name $::srcfile}
+ {low_pc 0 addr}
+ {stmt_list ${lines_label} DW_FORM_sec_offset}
+ } {
+ subprogram {
+ {external 1 flag}
+ {MACRO_AT_func {main}}
+ }
+ }
+ }
+
+ lines {version 2 default_is_stmt 1} lines_label {
+ include_dir "${::srcdir}/${::subdir}"
+ file_name "$::srcfile3" 1
+ file_name "$::srcfile4" 1
+ file_name "$::srcfile5" 1
+
+ # Generate the following line table:
+ #
+ # Index | Address | Symtab | Line | Statment
+ # ------|---------|--------|------------
+ # 0 | A1 | F1 | 101 | X
+ # 1 | A2 | F2 | 201 | X
+ # 2 | A3 | F3 | 301 | X
+ # 3 | A4 | F1 | 102 | X
+ # 4 | A4 | F1 | 103 | X
+ # 5 | A4 | F1 | 104 | X
+ # 6 | A4 | F2 | 211 |
+ # 7 | A5 | F3 | 311 |
+ # 8 | A6 | F1 | 104 |
+ # 9 | A7 | F1 | 105 | X
+ # 10 | A8 | F1 | END |
+ #
+ # GDB switches from F1 to F2 in order to add the entry at
+ # index 6, however the entry at index 6 is a non-statement
+ # line at the same address as entries 3, 4, and 5.
+ #
+ # If GDB then added an END marker in F1 at A4 in order to add
+ # entry 6 in F2, then END marker in F1 would effectively
+ # prevent the use of entries 3, 4, and 5.
+ #
+ # To avoid this, GDB discards entry 6.
+ #
+ # When GDB then switches to F3 to add entry 7, which is at a
+ # different address, GDB finally gets to add an END marker to
+ # the previous symtab's line table.
+ #
+ # This END marker should go into F1, that is, after all, the
+ # last symtab that had line table entries added too it.
+ #
+ # At one point, a bug in GDB meant that we added the END
+ # marker into F2, but we never actually added any entries to
+ # F2, so the END marker was redundant.
+
+ program {
+ DW_LNE_set_address line_label_1
+ DW_LNS_advance_line 100
+ DW_LNS_copy
+
+ DW_LNS_set_file 2
+ DW_LNE_set_address line_label_2
+ DW_LNS_advance_line 100
+ DW_LNS_copy
+
+ DW_LNS_set_file 3
+ DW_LNE_set_address line_label_3
+ DW_LNS_advance_line 100
+ DW_LNS_copy
+
+ DW_LNS_set_file 1
+ DW_LNE_set_address line_label_4
+ DW_LNS_advance_line -199
+ DW_LNS_copy
+
+ DW_LNE_set_address line_label_4
+ DW_LNS_advance_line 1
+ DW_LNS_copy
+
+ DW_LNE_set_address line_label_4
+ DW_LNS_advance_line 1
+ DW_LNS_copy
+
+ DW_LNS_set_file 2
+ DW_LNE_set_address line_label_4
+ DW_LNS_advance_line 107
+ DW_LNS_negate_stmt
+ DW_LNS_copy
+
+ DW_LNS_set_file 3
+ DW_LNE_set_address line_label_5
+ DW_LNS_advance_line 100
+ DW_LNS_copy
+
+ DW_LNS_set_file 1
+ DW_LNE_set_address line_label_6
+ DW_LNS_advance_line -207
+ DW_LNS_copy
+
+ DW_LNE_set_address line_label_7
+ DW_LNS_advance_line 1
+ DW_LNS_negate_stmt
+ DW_LNS_copy
+
+ DW_LNE_set_address line_label_8
+ DW_LNE_end_sequence
+ }
+ }
+}
+
+if { [prepare_for_testing "failed to prepare" ${testfile} \
+ [list $srcfile $asm_file] {nodebug}] } {
+ return -1
+}
+
+if { ![runto_main] } {
+ return -1
+}
+
+# Check the END markers using 'maint info line-table'.
+# EXPECTED_SYMTAB is the basename of the source file being checked.
+# TEST_SPEC is a list of lists. Each inner list if a pair made of a
+# line table index number and a string, the name of a variable in the
+# parent scope that holds the address we expect the END marker to
+# appear at.
+proc check_end_markers { expected_symtab test_spec } {
+ foreach spec $test_spec {
+ set index [lindex $spec 0]
+ set varname [lindex $spec 1]
+
+ upvar 1 $varname upvar_addr
+ set addr [string range $upvar_addr 2 end]
+
+ verbose -log "APB: index: $index, addr: $addr"
+
+ set symtab ""
+ set saw_line false
+ gdb_test_multiple "maint info line-table" \
+ "check END marker at index $index in $expected_symtab" {
+ -re "^symtab: \[^\r\n\]+/($::testfile-$::decimal.c) \\(\\(\[^\r\n\]+\r\n" {
+ set symtab $expect_out(1,string)
+ exp_continue
+ }
+ -re "^${index}\\s+END\\s+0x0*$addr\\s+$::hex\\s+Y\\s*\r\n" {
+ if { $symtab eq $expected_symtab } {
+ set saw_line true
+ }
+ exp_continue
+ }
+ -re "^$::gdb_prompt $" {
+ gdb_assert $saw_line $gdb_test_name
+ }
+ -re "^\[^\r\n\]*\r\n" {
+ exp_continue
+ }
+ }
+ }
+}
+
+set addr_2 [get_hexadecimal_valueof "&line_label_2" "UNKNOWN"]
+set addr_3 [get_hexadecimal_valueof "&line_label_3" "UNKNOWN"]
+set addr_4 [get_hexadecimal_valueof "&line_label_4" "UNKNOWN"]
+set addr_5 [get_hexadecimal_valueof "&line_label_5" "UNKNOWN"]
+set addr_6 [get_hexadecimal_valueof "&line_label_6" "UNKNOWN"]
+set addr_8 [get_hexadecimal_valueof "&line_label_8" "UNKNOWN"]
+
+check_end_markers "$testfile-1.c" { { 1 addr_2 } { 5 addr_5} { 8 addr_8 } }
+check_end_markers "$testfile-2.c" { { 1 addr_3 } }
+check_end_markers "$testfile-3.c" { { 1 addr_4 } { 3 addr_6} }
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.S b/gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.S
index 7f51fc6..4681bca 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.S
@@ -1,4 +1,4 @@
-/* Copyright 2010-2024 Free Software Foundation, Inc.
+/* Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.exp b/gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.exp
index d4762db..9d35631 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-stack-boundary.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-step-between-different-inline-functions.c b/gdb/testsuite/gdb.dwarf2/dw2-step-between-different-inline-functions.c
index 5e4fe47..8cec66c 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-step-between-different-inline-functions.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-step-between-different-inline-functions.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-step-between-different-inline-functions.exp b/gdb/testsuite/gdb.dwarf2/dw2-step-between-different-inline-functions.exp
index 7e7c4ad..a2f36cf 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-step-between-different-inline-functions.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-step-between-different-inline-functions.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-step-between-inline-func-blocks.c b/gdb/testsuite/gdb.dwarf2/dw2-step-between-inline-func-blocks.c
index 7fdf1bb..0e0370e 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-step-between-inline-func-blocks.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-step-between-inline-func-blocks.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-step-between-inline-func-blocks.exp b/gdb/testsuite/gdb.dwarf2/dw2-step-between-inline-func-blocks.exp
index 9128f87..ea8c7d3 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-step-between-inline-func-blocks.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-step-between-inline-func-blocks.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-step-out-of-function-no-stmt.c b/gdb/testsuite/gdb.dwarf2/dw2-step-out-of-function-no-stmt.c
index 9a31859..fbaf193 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-step-out-of-function-no-stmt.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-step-out-of-function-no-stmt.c
@@ -1,5 +1,5 @@
/*
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-step-out-of-function-no-stmt.exp b/gdb/testsuite/gdb.dwarf2/dw2-step-out-of-function-no-stmt.exp
index 55f4373..a2d197b 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-step-out-of-function-no-stmt.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-step-out-of-function-no-stmt.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-strp.S b/gdb/testsuite/gdb.dwarf2/dw2-strp.S
index 26adaee..c7ede95 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-strp.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-strp.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-strp.exp b/gdb/testsuite/gdb.dwarf2/dw2-strp.exp
index a2247a9..43a0eff 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-strp.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-strp.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-symtab-includes-lookup.exp b/gdb/testsuite/gdb.dwarf2/dw2-symtab-includes-lookup.exp
index 96a5284..aaa32ae 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-symtab-includes-lookup.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-symtab-includes-lookup.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-symtab-includes.exp b/gdb/testsuite/gdb.dwarf2/dw2-symtab-includes.exp
index dc4a788..fce4346 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-symtab-includes.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-symtab-includes.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-tu-dwarf-4-5-2.c b/gdb/testsuite/gdb.dwarf2/dw2-tu-dwarf-4-5-2.c
index 8f22096..e9b2d46 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-tu-dwarf-4-5-2.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-tu-dwarf-4-5-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-tu-dwarf-4-5.c b/gdb/testsuite/gdb.dwarf2/dw2-tu-dwarf-4-5.c
index d723d73..a76efac 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-tu-dwarf-4-5.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-tu-dwarf-4-5.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-tu-dwarf-4-5.exp b/gdb/testsuite/gdb.dwarf2/dw2-tu-dwarf-4-5.exp
index 03c26e6..725d6c7 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-tu-dwarf-4-5.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-tu-dwarf-4-5.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.S b/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.S
index 23bc7ad..e07e6f2 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.S
@@ -1,5 +1,5 @@
/*
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.c b/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.c
index a0cdcfc..df96a4c 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.c
@@ -1,5 +1,5 @@
/*
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.exp b/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.exp
index c2b95c8..cad64ef 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-undefined-ret-addr.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-unexpected-entry-pc.c b/gdb/testsuite/gdb.dwarf2/dw2-unexpected-entry-pc.c
index cf43727..9f1c900 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-unexpected-entry-pc.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-unexpected-entry-pc.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-unexpected-entry-pc.exp b/gdb/testsuite/gdb.dwarf2/dw2-unexpected-entry-pc.exp
index 69e1ce6..d8b738d 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-unexpected-entry-pc.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-unexpected-entry-pc.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-unresolved-main.c b/gdb/testsuite/gdb.dwarf2/dw2-unresolved-main.c
index 36cc797..614262a 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-unresolved-main.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-unresolved-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-unresolved.S b/gdb/testsuite/gdb.dwarf2/dw2-unresolved.S
index 0ebfd64..ae9e712 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-unresolved.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-unresolved.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-unresolved.exp b/gdb/testsuite/gdb.dwarf2/dw2-unresolved.exp
index 1e5127b..9eff15e 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-unresolved.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-unresolved.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-unspecified-type-foo.c b/gdb/testsuite/gdb.dwarf2/dw2-unspecified-type-foo.c
index 76b8b15..6194df4 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-unspecified-type-foo.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-unspecified-type-foo.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-unspecified-type.c b/gdb/testsuite/gdb.dwarf2/dw2-unspecified-type.c
index 7f3add0..bed9fd8 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-unspecified-type.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-unspecified-type.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-unspecified-type.exp b/gdb/testsuite/gdb.dwarf2/dw2-unspecified-type.exp
index 82b5bf8..0822c98 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-unspecified-type.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-unspecified-type.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-unusual-field-names.c b/gdb/testsuite/gdb.dwarf2/dw2-unusual-field-names.c
index 43952e5..cb62f95 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-unusual-field-names.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-unusual-field-names.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-unusual-field-names.exp b/gdb/testsuite/gdb.dwarf2/dw2-unusual-field-names.exp
index df5896c..0a306dd 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-unusual-field-names.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-unusual-field-names.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-using-debug-str.c b/gdb/testsuite/gdb.dwarf2/dw2-using-debug-str.c
index 47fd822..ba0ac43 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-using-debug-str.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-using-debug-str.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-using-debug-str.exp b/gdb/testsuite/gdb.dwarf2/dw2-using-debug-str.exp
index c45d631..e46cbe5 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-using-debug-str.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-using-debug-str.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.S b/gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.S
index 9af14fc..aa76403 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.S
+++ b/gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp b/gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp
index 9b89b8c..f021f42 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-vendor-extended-opcode.c b/gdb/testsuite/gdb.dwarf2/dw2-vendor-extended-opcode.c
index ca76236..20cbe2c 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-vendor-extended-opcode.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-vendor-extended-opcode.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-vendor-extended-opcode.exp b/gdb/testsuite/gdb.dwarf2/dw2-vendor-extended-opcode.exp
index 5a0705f..3e4ffc4 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-vendor-extended-opcode.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-vendor-extended-opcode.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-weird-type-len.c b/gdb/testsuite/gdb.dwarf2/dw2-weird-type-len.c
index f3bd9c2..8372761 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-weird-type-len.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-weird-type-len.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-weird-type-len.exp b/gdb/testsuite/gdb.dwarf2/dw2-weird-type-len.exp
index fdda0e1..0c76c87 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-weird-type-len.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-weird-type-len.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-wrong-mangled-name.c b/gdb/testsuite/gdb.dwarf2/dw2-wrong-mangled-name.c
index d93ce3f..e4dac47 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-wrong-mangled-name.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-wrong-mangled-name.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-wrong-mangled-name.exp b/gdb/testsuite/gdb.dwarf2/dw2-wrong-mangled-name.exp
index 1b81276..33b1515 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-wrong-mangled-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-wrong-mangled-name.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-zero-range-shlib.c b/gdb/testsuite/gdb.dwarf2/dw2-zero-range-shlib.c
index d998435..5fe66a8 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-zero-range-shlib.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-zero-range-shlib.c
@@ -1,5 +1,5 @@
/*
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-zero-range.c b/gdb/testsuite/gdb.dwarf2/dw2-zero-range.c
index d2ed4a7..cd9f674 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-zero-range.c
+++ b/gdb/testsuite/gdb.dwarf2/dw2-zero-range.c
@@ -1,5 +1,5 @@
/*
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-zero-range.exp b/gdb/testsuite/gdb.dwarf2/dw2-zero-range.exp
index e2e4f24..221bf7b 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-zero-range.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-zero-range.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.S b/gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.S
index c5c0a1d..567e22b 100644
--- a/gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.S
+++ b/gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.S
@@ -1,4 +1,4 @@
-/* Copyright 2011-2024 Free Software Foundation, Inc.
+/* Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.exp b/gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.exp
index 24dc132..256d13c 100644
--- a/gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw4-sig-types.exp b/gdb/testsuite/gdb.dwarf2/dw4-sig-types.exp
index fd0b43f..99bb4cc 100644
--- a/gdb/testsuite/gdb.dwarf2/dw4-sig-types.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw4-sig-types.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw4-toplevel-types.cc b/gdb/testsuite/gdb.dwarf2/dw4-toplevel-types.cc
index 5c596d1..cbc70ef 100644
--- a/gdb/testsuite/gdb.dwarf2/dw4-toplevel-types.cc
+++ b/gdb/testsuite/gdb.dwarf2/dw4-toplevel-types.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw4-toplevel-types.exp b/gdb/testsuite/gdb.dwarf2/dw4-toplevel-types.exp
index 3ef756d..166ce6a 100644
--- a/gdb/testsuite/gdb.dwarf2/dw4-toplevel-types.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw4-toplevel-types.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw5-rnglist-test.cc b/gdb/testsuite/gdb.dwarf2/dw5-rnglist-test.cc
index 7408b8d..1df0da2 100644
--- a/gdb/testsuite/gdb.dwarf2/dw5-rnglist-test.cc
+++ b/gdb/testsuite/gdb.dwarf2/dw5-rnglist-test.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dw5-rnglist-test.exp b/gdb/testsuite/gdb.dwarf2/dw5-rnglist-test.exp
index a7ca334..badb9c0 100644
--- a/gdb/testsuite/gdb.dwarf2/dw5-rnglist-test.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw5-rnglist-test.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dwp-sepdebug.c b/gdb/testsuite/gdb.dwarf2/dwp-sepdebug.c
index b1c4cae..17885d5 100644
--- a/gdb/testsuite/gdb.dwarf2/dwp-sepdebug.c
+++ b/gdb/testsuite/gdb.dwarf2/dwp-sepdebug.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dwp-sepdebug.exp b/gdb/testsuite/gdb.dwarf2/dwp-sepdebug.exp
index d7e49ca..81b8354 100644
--- a/gdb/testsuite/gdb.dwarf2/dwp-sepdebug.exp
+++ b/gdb/testsuite/gdb.dwarf2/dwp-sepdebug.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dwp-symlink.c b/gdb/testsuite/gdb.dwarf2/dwp-symlink.c
index 95852ba..711fad8 100644
--- a/gdb/testsuite/gdb.dwarf2/dwp-symlink.c
+++ b/gdb/testsuite/gdb.dwarf2/dwp-symlink.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dwp-symlink.exp b/gdb/testsuite/gdb.dwarf2/dwp-symlink.exp
index cdf1968..3846870 100644
--- a/gdb/testsuite/gdb.dwarf2/dwp-symlink.exp
+++ b/gdb/testsuite/gdb.dwarf2/dwp-symlink.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dwz-unused-pu.exp b/gdb/testsuite/gdb.dwarf2/dwz-unused-pu.exp
index 1dd91ee..b7dc275 100644
--- a/gdb/testsuite/gdb.dwarf2/dwz-unused-pu.exp
+++ b/gdb/testsuite/gdb.dwarf2/dwz-unused-pu.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dwz.exp b/gdb/testsuite/gdb.dwarf2/dwz.exp
index c44c572..1d214c1 100644
--- a/gdb/testsuite/gdb.dwarf2/dwz.exp
+++ b/gdb/testsuite/gdb.dwarf2/dwz.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dwzbuildid.exp b/gdb/testsuite/gdb.dwarf2/dwzbuildid.exp
index e54508a..080e999 100644
--- a/gdb/testsuite/gdb.dwarf2/dwzbuildid.exp
+++ b/gdb/testsuite/gdb.dwarf2/dwzbuildid.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -13,160 +13,5 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-load_lib dwarf.exp
-
-# This test can only be run on targets which support DWARF-2 and use gas.
-require dwarf2_support
-
-# No remote host testing either.
-require {!is_remote host}
-
-
-# Lots of source files since we test a few cases and make new files
-# for each.
-# The tests are:
-# ok - the main file refers to a dwz and the buildids match
-# mismatch - the buildids do not match
-# fallback - the buildids do not match but a match is found via buildid
-standard_testfile main.c \
- dwzbuildid-ok-base.S dwzbuildid-ok-sep.S \
- dwzbuildid-mismatch-base.S dwzbuildid-mismatch-sep.S \
- dwzbuildid-fallback-base.S dwzbuildid-fallback-sep.S \
- dwzbuildid-fallback-ok.S
-
-# Write some assembly that just has a .gnu_debugaltlink section.
-proc write_just_debugaltlink {filename dwzname buildid} {
- set asm_file [standard_output_file $filename]
-
- Dwarf::assemble $asm_file {
- upvar dwzname dwzname
- upvar buildid buildid
-
- gnu_debugaltlink $dwzname $buildid
-
- # Only the DWARF reader checks .gnu_debugaltlink, so make sure
- # there is a bit of DWARF in here.
- cu { label cu_start } {
- compile_unit {{language @DW_LANG_C}} {
- }
- }
- aranges {} cu_start {
- arange {} 0 0
- }
- }
-}
-
-# Write some DWARF that also sets the buildid.
-proc write_dwarf_file {filename buildid {value 99}} {
- set asm_file [standard_output_file $filename]
-
- Dwarf::assemble $asm_file {
- declare_labels int_label int_label2
-
- upvar buildid buildid
- upvar value value
-
- build_id $buildid
-
- cu { label cu_start } {
- compile_unit {{language @DW_LANG_C}} {
- int_label2: base_type {
- {name int}
- {byte_size 4 sdata}
- {encoding @DW_ATE_signed}
- }
-
- constant {
- {name the_int}
- {type :$int_label2}
- {const_value $value data1}
- }
- }
- }
-
- aranges {} cu_start {
- arange {} 0 0
- }
- }
-}
-
-if { [gdb_compile ${srcdir}/${subdir}/${srcfile} ${binfile}1.o \
- object {nodebug}] != "" } {
- return -1
-}
-
-# The values don't really matter, just whether they are equal.
-set ok_prefix 01
-set ok_suffix 02030405060708091011121314151617181920
-set ok_suffix2 020304050607080910111213141516171819ff
-set ok_buildid ${ok_prefix}${ok_suffix}
-set ok_buildid2 ${ok_prefix}${ok_suffix2}
-set bad_buildid [string repeat ff 20]
-
-set debugdir [standard_output_file {}]
-set basedir $debugdir/.build-id
-file mkdir $basedir $basedir/$ok_prefix
-
-# Test where the separate debuginfo's buildid matches.
-write_just_debugaltlink $srcfile2 ${binfile}3.o $ok_buildid
-write_dwarf_file $srcfile3 $ok_buildid
-
-# Test where the separate debuginfo's buildid does not match.
-write_just_debugaltlink $srcfile4 ${binfile}5.o $ok_buildid
-write_dwarf_file $srcfile5 $bad_buildid
-
-# Test where the separate debuginfo's buildid does not match, but then
-# we find a match in the .build-id directory.
-write_just_debugaltlink $srcfile6 ${binfile}7.o $ok_buildid2
-# Use 77 as the value so that if we load the bad debuginfo, we will
-# see the wrong result.
-write_dwarf_file $srcfile7 $bad_buildid 77
-write_dwarf_file $srcfile8 $ok_buildid2
-
-# Compile everything.
-for {set i 2} {$i <= 8} {incr i} {
- if {[gdb_compile [standard_output_file [set srcfile$i]] \
- ${binfile}$i.o object nodebug] != ""} {
- return -1
- }
-}
-
-# Copy a file into the .build-id place for the "fallback" test.
-file copy -force -- ${binfile}8.o $basedir/$ok_prefix/$ok_suffix2.debug
-
-proc do_test {} {
- clean_restart
-
- gdb_test_no_output "set debug-file-directory $::debugdir" \
- "set debug-file-directory"
-
- gdb_load ${::binfile}-${::testname}
-
- if {![runto_main]} {
- return
- }
-
- if {$::testname == "mismatch"} {
- gdb_test "print the_int" \
- "(No symbol table is loaded|No symbol \"the_int\" in current context).*"
- } else {
- gdb_test "print the_int" " = 99"
- }
-}
-
-foreach_with_prefix testname { ok mismatch fallback } {
- if { $testname == "ok" } {
- set objs [list ${binfile}1.o ${binfile}2.o]
- } elseif { $testname == "mismatch" } {
- set objs [list ${binfile}1.o ${binfile}4.o]
- } elseif { $testname == "fallback" } {
- set objs [list ${binfile}1.o ${binfile}6.o]
- }
-
- if {[gdb_compile $objs ${binfile}-$testname executable {quiet}] != ""} {
- unsupported "compilation failed"
- continue
- }
-
- do_test
-}
+set scenario gnu
+source $srcdir/$subdir/dwzbuildid.tcl
diff --git a/gdb/testsuite/gdb.dwarf2/dwzbuildid.tcl b/gdb/testsuite/gdb.dwarf2/dwzbuildid.tcl
new file mode 100644
index 0000000..a9077eb
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/dwzbuildid.tcl
@@ -0,0 +1,184 @@
+# Copyright 2013-2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+load_lib dwarf.exp
+
+# This test can only be run on targets which support DWARF-2 and use gas.
+require dwarf2_support
+
+# No remote host testing either.
+require {!is_remote host}
+
+
+# Lots of source files since we test a few cases and make new files
+# for each.
+# The tests are:
+# ok - the main file refers to a dwz and the buildids match
+# mismatch - the buildids do not match
+# fallback - the buildids do not match but a match is found via buildid
+standard_testfile main.c \
+ dwzbuildid-ok-base.S dwzbuildid-ok-sep.S \
+ dwzbuildid-mismatch-base.S dwzbuildid-mismatch-sep.S \
+ dwzbuildid-fallback-base.S dwzbuildid-fallback-sep.S \
+ dwzbuildid-fallback-ok.S
+
+# Write some assembly that just has a .gnu_debugaltlink section.
+proc write_just_debugaltlink {filename dwzname buildid} {
+ set asm_file [standard_output_file $filename]
+
+ Dwarf::assemble $asm_file {
+ upvar dwzname dwzname
+ upvar buildid buildid
+
+ if {$::scenario == "gnu"} {
+ gnu_debugaltlink $dwzname $buildid
+ } else {
+ debug_sup 0 $dwzname $buildid
+ }
+
+ # Only the DWARF reader checks .gnu_debugaltlink, so make sure
+ # there is a bit of DWARF in here.
+ cu { label cu_start } {
+ compile_unit {{language @DW_LANG_C}} {
+ }
+ }
+ aranges {} cu_start {
+ arange {} 0 0
+ }
+ }
+}
+
+# Write some DWARF that also sets the buildid.
+proc write_dwarf_file {filename buildid {value 99}} {
+ set asm_file [standard_output_file $filename]
+
+ Dwarf::assemble $asm_file {
+ declare_labels int_label int_label2
+
+ upvar buildid buildid
+ upvar value value
+
+ if {$::scenario == "gnu"} {
+ build_id $buildid
+ } else {
+ debug_sup 1 "" $buildid
+ }
+
+ cu { label cu_start } {
+ compile_unit {{language @DW_LANG_C}} {
+ int_label2: base_type {
+ {name int}
+ {byte_size 4 sdata}
+ {encoding @DW_ATE_signed}
+ }
+
+ constant {
+ {name the_int}
+ {type :$int_label2}
+ {const_value $value data1}
+ }
+ }
+ }
+
+ aranges {} cu_start {
+ arange {} 0 0
+ }
+ }
+}
+
+if { [gdb_compile ${srcdir}/${subdir}/${srcfile} ${binfile}1.o \
+ object {nodebug}] != "" } {
+ return -1
+}
+
+# The values don't really matter, just whether they are equal.
+set ok_prefix 01
+set ok_suffix 02030405060708091011121314151617181920
+set ok_suffix2 020304050607080910111213141516171819ff
+set ok_buildid ${ok_prefix}${ok_suffix}
+set ok_buildid2 ${ok_prefix}${ok_suffix2}
+set bad_buildid [string repeat ff 20]
+
+set debugdir [standard_output_file {}]
+set basedir $debugdir/.build-id
+file mkdir $basedir $basedir/$ok_prefix
+
+# Test where the separate debuginfo's buildid matches.
+write_just_debugaltlink $srcfile2 ${binfile}3.o $ok_buildid
+write_dwarf_file $srcfile3 $ok_buildid
+
+# Test where the separate debuginfo's buildid does not match.
+write_just_debugaltlink $srcfile4 ${binfile}5.o $ok_buildid
+write_dwarf_file $srcfile5 $bad_buildid
+
+# Test where the separate debuginfo's buildid does not match, but then
+# we find a match in the .build-id directory.
+write_just_debugaltlink $srcfile6 ${binfile}7.o $ok_buildid2
+# Use 77 as the value so that if we load the bad debuginfo, we will
+# see the wrong result.
+write_dwarf_file $srcfile7 $bad_buildid 77
+write_dwarf_file $srcfile8 $ok_buildid2
+
+# Compile everything.
+for {set i 2} {$i <= 8} {incr i} {
+ if {[gdb_compile [standard_output_file [set srcfile$i]] \
+ ${binfile}$i.o object nodebug] != ""} {
+ return -1
+ }
+}
+
+# Copy a file into the .build-id place for the "fallback" test.
+file copy -force -- ${binfile}8.o $basedir/$ok_prefix/$ok_suffix2.debug
+
+proc do_test {} {
+ clean_restart
+
+ gdb_test_no_output "set debug-file-directory $::debugdir" \
+ "set debug-file-directory"
+
+ gdb_load ${::binfile}-${::testname}
+
+ if {![runto_main]} {
+ return
+ }
+
+ if {$::testname == "mismatch"} {
+ gdb_test "print the_int" \
+ "(No symbol table is loaded|No symbol \"the_int\" in current context).*"
+ } else {
+ gdb_test "print the_int" " = 99"
+ }
+}
+
+set tests {ok mismatch}
+if {$scenario == "gnu"} {
+ lappend tests fallback
+}
+foreach_with_prefix testname $tests {
+ if { $testname == "ok" } {
+ set objs [list ${binfile}1.o ${binfile}2.o]
+ } elseif { $testname == "mismatch" } {
+ set objs [list ${binfile}1.o ${binfile}4.o]
+ } elseif { $testname == "fallback" } {
+ set objs [list ${binfile}1.o ${binfile}6.o]
+ }
+
+ if {[gdb_compile $objs ${binfile}-$testname executable {quiet}] != ""} {
+ unsupported "compilation failed"
+ continue
+ }
+
+ do_test
+}
diff --git a/gdb/testsuite/gdb.dwarf2/dwzbuildid5.exp b/gdb/testsuite/gdb.dwarf2/dwzbuildid5.exp
new file mode 100644
index 0000000..047626c
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/dwzbuildid5.exp
@@ -0,0 +1,17 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+set scenario dwarf5
+source $srcdir/$subdir/dwzbuildid.tcl
diff --git a/gdb/testsuite/gdb.dwarf2/dwznolink.exp b/gdb/testsuite/gdb.dwarf2/dwznolink.exp
index cbabe8f..0c486ea 100644
--- a/gdb/testsuite/gdb.dwarf2/dwznolink.exp
+++ b/gdb/testsuite/gdb.dwarf2/dwznolink.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -49,5 +49,5 @@ if {[build_executable $testfile.exp $testfile \
clean_restart
gdb_test "file -readnow $binfile" \
- "could not read '.gnu_debugaltlink' section" \
+ "could not find supplementary DWARF file" \
"file $testfile"
diff --git a/gdb/testsuite/gdb.dwarf2/dyn-type-unallocated.c b/gdb/testsuite/gdb.dwarf2/dyn-type-unallocated.c
index b9fd4bd..84f13b9 100644
--- a/gdb/testsuite/gdb.dwarf2/dyn-type-unallocated.c
+++ b/gdb/testsuite/gdb.dwarf2/dyn-type-unallocated.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dyn-type-unallocated.exp b/gdb/testsuite/gdb.dwarf2/dyn-type-unallocated.exp
index 9de0261..09af96c 100644
--- a/gdb/testsuite/gdb.dwarf2/dyn-type-unallocated.exp
+++ b/gdb/testsuite/gdb.dwarf2/dyn-type-unallocated.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/dynamic-bit-offset.exp b/gdb/testsuite/gdb.dwarf2/dynamic-bit-offset.exp
new file mode 100644
index 0000000..f4e02da
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/dynamic-bit-offset.exp
@@ -0,0 +1,95 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Test DW_AT_data_bit_offset with an expression. This is a DWARF
+# extension, but expected to be in DWARF 6. See
+# https://dwarfstd.org/issues/250501.1.html
+
+load_lib dwarf.exp
+
+# This test can only be run on targets which support DWARF-2 and use gas.
+require dwarf2_support
+
+standard_testfile ada-array-bound.c -debug.S
+
+# Set up the DWARF for the test.
+
+set asm_file [standard_output_file $srcfile2]
+Dwarf::assemble $asm_file {
+ global srcdir subdir srcfile
+
+ cu {} {
+ DW_TAG_compile_unit {
+ {DW_AT_language @DW_LANG_Ada95}
+ {DW_AT_name $srcfile}
+ } {
+ declare_labels byte array struct
+
+ byte: DW_TAG_base_type {
+ {DW_AT_byte_size 1 DW_FORM_sdata}
+ {DW_AT_encoding @DW_ATE_unsigned}
+ {DW_AT_name byte}
+ }
+
+ array: DW_TAG_array_type {
+ {DW_AT_name array_type}
+ {DW_AT_type :$byte}
+ } {
+ DW_TAG_subrange_type {
+ {DW_AT_type :$byte}
+ {DW_AT_upper_bound 3 DW_FORM_sdata}
+ }
+ }
+
+ struct: DW_TAG_structure_type {
+ {DW_AT_name discriminated}
+ {DW_AT_byte_size 4 DW_FORM_sdata}
+ } {
+ DW_TAG_member {
+ {DW_AT_name disc}
+ {DW_AT_type :$byte}
+ {DW_AT_data_member_location 0 DW_FORM_sdata}
+ }
+
+ # We know this is always at offset 1 but use an
+ # expression just to test this code path. This is a
+ # DWARF extension. See
+ # https://dwarfstd.org/issues/250501.1.html.
+ DW_TAG_member {
+ {DW_AT_name nums}
+ {DW_AT_type :$array}
+ {DW_AT_data_bit_offset {DW_OP_lit8} SPECIAL_expr}
+ }
+ }
+
+ DW_TAG_variable {
+ {DW_AT_name "value"}
+ {DW_AT_type :$struct}
+ {DW_AT_external 1 DW_FORM_flag}
+ {DW_AT_location {DW_OP_addr [gdb_target_symbol "our_data"]}
+ SPECIAL_expr}
+ }
+ }
+ }
+}
+
+if {[prepare_for_testing "failed to prepare" ${testfile} \
+ [list $srcfile $asm_file] {nodebug}]} {
+ return -1
+}
+
+gdb_test_no_output "set language ada"
+gdb_test "print value" \
+ [string_to_regexp " = (disc => 3, nums => (7, 11, 13))"]
diff --git a/gdb/testsuite/gdb.dwarf2/dynarr-ptr.c b/gdb/testsuite/gdb.dwarf2/dynarr-ptr.c
index 6cb9c6b..29e01d1 100644
--- a/gdb/testsuite/gdb.dwarf2/dynarr-ptr.c
+++ b/gdb/testsuite/gdb.dwarf2/dynarr-ptr.c
@@ -1,4 +1,4 @@
-/* Copyright 2014-2024 Free Software Foundation, Inc.
+/* Copyright 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/dynarr-ptr.exp b/gdb/testsuite/gdb.dwarf2/dynarr-ptr.exp
index 3b7fb72..1e06212 100644
--- a/gdb/testsuite/gdb.dwarf2/dynarr-ptr.exp
+++ b/gdb/testsuite/gdb.dwarf2/dynarr-ptr.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp b/gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp
index e4e0288..621b2e7 100644
--- a/gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp
+++ b/gdb/testsuite/gdb.dwarf2/enqueued-cu-base-addr.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/entry-value-typedef-aarch64.S b/gdb/testsuite/gdb.dwarf2/entry-value-typedef-aarch64.S
index 062925f..73898e6 100644
--- a/gdb/testsuite/gdb.dwarf2/entry-value-typedef-aarch64.S
+++ b/gdb/testsuite/gdb.dwarf2/entry-value-typedef-aarch64.S
@@ -1,5 +1,5 @@
/*
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/entry-value-typedef-amd64.S b/gdb/testsuite/gdb.dwarf2/entry-value-typedef-amd64.S
index f56147a..9b661cb 100644
--- a/gdb/testsuite/gdb.dwarf2/entry-value-typedef-amd64.S
+++ b/gdb/testsuite/gdb.dwarf2/entry-value-typedef-amd64.S
@@ -1,5 +1,5 @@
/*
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/entry-value-typedef.cpp b/gdb/testsuite/gdb.dwarf2/entry-value-typedef.cpp
index a7d0174..3d07635 100644
--- a/gdb/testsuite/gdb.dwarf2/entry-value-typedef.cpp
+++ b/gdb/testsuite/gdb.dwarf2/entry-value-typedef.cpp
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/entry-value-typedef.exp b/gdb/testsuite/gdb.dwarf2/entry-value-typedef.exp
index 1c185c0..44d58a8 100644
--- a/gdb/testsuite/gdb.dwarf2/entry-value-typedef.exp
+++ b/gdb/testsuite/gdb.dwarf2/entry-value-typedef.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/enum-type-c++.cc b/gdb/testsuite/gdb.dwarf2/enum-type-c++.cc
index 691c7fc..126ad2b 100644
--- a/gdb/testsuite/gdb.dwarf2/enum-type-c++.cc
+++ b/gdb/testsuite/gdb.dwarf2/enum-type-c++.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/enum-type-c++.exp b/gdb/testsuite/gdb.dwarf2/enum-type-c++.exp
index 4f9610c..0febe62 100644
--- a/gdb/testsuite/gdb.dwarf2/enum-type-c++.exp
+++ b/gdb/testsuite/gdb.dwarf2/enum-type-c++.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/enum-type.exp b/gdb/testsuite/gdb.dwarf2/enum-type.exp
index ec12db5..121a350 100644
--- a/gdb/testsuite/gdb.dwarf2/enum-type.exp
+++ b/gdb/testsuite/gdb.dwarf2/enum-type.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fission-absolute-dwo.c b/gdb/testsuite/gdb.dwarf2/fission-absolute-dwo.c
index 47fd822..ba0ac43 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-absolute-dwo.c
+++ b/gdb/testsuite/gdb.dwarf2/fission-absolute-dwo.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fission-absolute-dwo.exp b/gdb/testsuite/gdb.dwarf2/fission-absolute-dwo.exp
index 0bbe84e..4f354cd 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-absolute-dwo.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-absolute-dwo.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fission-base.S b/gdb/testsuite/gdb.dwarf2/fission-base.S
index e009cef..b242197 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-base.S
+++ b/gdb/testsuite/gdb.dwarf2/fission-base.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fission-base.c b/gdb/testsuite/gdb.dwarf2/fission-base.c
index 79dce8d..231e1b7 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-base.c
+++ b/gdb/testsuite/gdb.dwarf2/fission-base.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fission-base.exp b/gdb/testsuite/gdb.dwarf2/fission-base.exp
index d4038cc..4d18ea0 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-base.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-base.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fission-dw-form-strx.exp b/gdb/testsuite/gdb.dwarf2/fission-dw-form-strx.exp
new file mode 100644
index 0000000..4f5867c
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/fission-dw-form-strx.exp
@@ -0,0 +1,88 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Check support for a DW_FORM_strx attribute in a dwo file.
+
+load_lib dwarf.exp
+
+# This test can only be run on targets which support DWARF-2 and use gas.
+require dwarf2_support
+
+standard_testfile main.c -dw.S -dwo.S
+
+set main_asm_file [standard_output_file $srcfile2]
+set dwo_asm_file [standard_output_file $srcfile3]
+
+# Debug info in the main file.
+Dwarf::assemble $main_asm_file {
+ cu {
+ version 5
+ dwo_id 0xF00D
+ } {
+ compile_unit {
+ {DW_AT_dwo_name ${::gdb_test_file_name}.dwo DW_FORM_strp}
+ } {}
+ }
+}
+
+# Debug info in the DWO file.
+Dwarf::assemble $dwo_asm_file {
+ debug_str_offsets { dwo 1 } int
+
+ cu {
+ fission 1
+ version 5
+ dwo_id 0xF00D
+ } {
+ compile_unit {} {
+ declare_labels int4_type
+
+ int4_type: DW_TAG_base_type {
+ {DW_AT_byte_size 4 DW_FORM_sdata}
+ {DW_AT_encoding @DW_ATE_signed}
+ {DW_AT_name 0 DW_FORM_strx_id}
+ }
+
+ DW_TAG_variable {
+ {DW_AT_name global_var}
+ {DW_AT_type :$int4_type}
+ {DW_AT_location {
+ DW_OP_const1u 12
+ DW_OP_stack_value
+ } SPECIAL_expr}
+ }
+ }
+ }
+}
+
+# Build main file.
+if { [build_executable "${testfile}.exp" $binfile \
+ [list ${srcfile} ${main_asm_file}] {nodebug}] } {
+ return
+}
+
+# Build DWO file.
+set dwo_file [standard_output_file ${testfile}.dwo]
+if { [gdb_compile_shlib $dwo_asm_file $dwo_file nodebug] != "" } {
+ return
+}
+
+if { [is_remote host] } {
+ gdb_remote_download host $dwo_file
+}
+
+clean_restart $binfile
+
+gdb_test "ptype global_var" "type = int"
diff --git a/gdb/testsuite/gdb.dwarf2/fission-loclists-pie.S b/gdb/testsuite/gdb.dwarf2/fission-loclists-pie.S
index ac1d796..3748907 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-loclists-pie.S
+++ b/gdb/testsuite/gdb.dwarf2/fission-loclists-pie.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fission-loclists-pie.exp b/gdb/testsuite/gdb.dwarf2/fission-loclists-pie.exp
index 44c98a6..5be2e8e 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-loclists-pie.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-loclists-pie.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fission-loclists.S b/gdb/testsuite/gdb.dwarf2/fission-loclists.S
index 9a5bf23..daa6945 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-loclists.S
+++ b/gdb/testsuite/gdb.dwarf2/fission-loclists.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fission-loclists.exp b/gdb/testsuite/gdb.dwarf2/fission-loclists.exp
index e7e395b..95c1fac 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-loclists.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-loclists.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fission-mix-2.c b/gdb/testsuite/gdb.dwarf2/fission-mix-2.c
index d557070..1702ed5 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-mix-2.c
+++ b/gdb/testsuite/gdb.dwarf2/fission-mix-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fission-mix.c b/gdb/testsuite/gdb.dwarf2/fission-mix.c
index e4d4a70..d7e000c 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-mix.c
+++ b/gdb/testsuite/gdb.dwarf2/fission-mix.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fission-mix.exp b/gdb/testsuite/gdb.dwarf2/fission-mix.exp
index 2079802..e4741c3 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-mix.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-mix.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fission-mix.h b/gdb/testsuite/gdb.dwarf2/fission-mix.h
index 653ea50..d99497a 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-mix.h
+++ b/gdb/testsuite/gdb.dwarf2/fission-mix.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fission-multi-cu.c b/gdb/testsuite/gdb.dwarf2/fission-multi-cu.c
index d546924..c1a2079 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-multi-cu.c
+++ b/gdb/testsuite/gdb.dwarf2/fission-multi-cu.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fission-multi-cu.exp b/gdb/testsuite/gdb.dwarf2/fission-multi-cu.exp
index 567049a..44e72d6 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-multi-cu.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-multi-cu.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fission-relative-dwo.c b/gdb/testsuite/gdb.dwarf2/fission-relative-dwo.c
index 47fd822..ba0ac43 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-relative-dwo.c
+++ b/gdb/testsuite/gdb.dwarf2/fission-relative-dwo.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fission-relative-dwo.exp b/gdb/testsuite/gdb.dwarf2/fission-relative-dwo.exp
index 28cfa64..5590156 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-relative-dwo.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-relative-dwo.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fission-reread.S b/gdb/testsuite/gdb.dwarf2/fission-reread.S
index 279f6f3..18f4fa4 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-reread.S
+++ b/gdb/testsuite/gdb.dwarf2/fission-reread.S
@@ -1,4 +1,4 @@
-/* Copyright 2012-2024 Free Software Foundation, Inc.
+/* Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fission-reread.exp b/gdb/testsuite/gdb.dwarf2/fission-reread.exp
index 1604594..6821747 100644
--- a/gdb/testsuite/gdb.dwarf2/fission-reread.exp
+++ b/gdb/testsuite/gdb.dwarf2/fission-reread.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fission-with-type-unit.c b/gdb/testsuite/gdb.dwarf2/fission-with-type-unit.c
new file mode 100644
index 0000000..42009be
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/fission-with-type-unit.c
@@ -0,0 +1,23 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see
+ <http://www.gnu.org/licenses/>. */
+
+int
+main (int argc, char **argv)
+{
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.dwarf2/fission-with-type-unit.exp b/gdb/testsuite/gdb.dwarf2/fission-with-type-unit.exp
new file mode 100644
index 0000000..0a02f7c
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/fission-with-type-unit.exp
@@ -0,0 +1,109 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# This test is meant to reproduce a bug where having a DWO file with a type unit
+# as the first unit would cause an internal error on CU expansion.
+
+load_lib dwarf.exp
+
+# This test can only be run on targets which support DWARF-2 and use gas.
+require dwarf2_support
+
+standard_testfile .c -dw.S -dwo.S
+
+set main_asm_file [standard_output_file $srcfile2]
+set dwo_asm_file [standard_output_file $srcfile3]
+
+# Debug info in the main file.
+Dwarf::assemble $main_asm_file {
+ cu {
+ version 5
+ dwo_id 0xF00D
+ } {
+ compile_unit {
+ {DW_AT_dwo_name ${::gdb_test_file_name}.dwo DW_FORM_strp}
+ } {}
+ }
+}
+
+# Debug info in the DWO file.
+Dwarf::assemble $dwo_asm_file {
+ tu {
+ fission 1
+ version 5
+ } 0xCAFE "the_type" {
+ type_unit {} {
+ the_type: base_type {
+ {DW_AT_byte_size 4 DW_FORM_sdata}
+ {DW_AT_encoding @DW_ATE_signed}
+ {DW_AT_name int}
+ }
+ }
+ }
+
+ cu {
+ fission 1
+ version 5
+ dwo_id 0xF00D
+ } {
+ compile_unit {} {
+ declare_labels int4_type
+
+ int4_type: DW_TAG_base_type {
+ {DW_AT_byte_size 4 DW_FORM_sdata}
+ {DW_AT_encoding @DW_ATE_signed}
+ {DW_AT_name int}
+ }
+
+ DW_TAG_variable {
+ {DW_AT_name global_var}
+ {DW_AT_type :$int4_type}
+ {DW_AT_location {
+ DW_OP_const1u 12
+ DW_OP_stack_value
+ } SPECIAL_expr}
+ }
+ }
+ }
+}
+
+# Build main file.
+if { [build_executable "${testfile}.exp" $binfile \
+ [list ${srcfile} ${main_asm_file}] {nodebug}] } {
+ return
+}
+
+# Build DWO file.
+set dwo_file [standard_output_file ${testfile}.dwo]
+if { [gdb_compile_shlib $dwo_asm_file $dwo_file nodebug] != "" } {
+ return
+}
+
+if { [is_remote host] } {
+ gdb_remote_download host $dwo_file
+}
+
+clean_restart ${testfile}
+
+# This would cause an internal error.
+gdb_test_no_output "maint expand-symtabs"
+
+# Sanity check that the CU was correctly loaded.
+gdb_test "print global_var" " = 12"
+
+# Test again just to see if the symbol can be found without having expanded the
+# symtab first.
+clean_restart ${testfile}
+gdb_test "print global_var" " = 12" "print global_var without symtab expansion"
diff --git a/gdb/testsuite/gdb.dwarf2/formdata16.exp b/gdb/testsuite/gdb.dwarf2/formdata16.exp
index ad1bcf8..70c7cc4 100644
--- a/gdb/testsuite/gdb.dwarf2/formdata16.exp
+++ b/gdb/testsuite/gdb.dwarf2/formdata16.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fortran-var-string.c b/gdb/testsuite/gdb.dwarf2/fortran-var-string.c
index 327371c..8eb264a 100644
--- a/gdb/testsuite/gdb.dwarf2/fortran-var-string.c
+++ b/gdb/testsuite/gdb.dwarf2/fortran-var-string.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/fortran-var-string.exp b/gdb/testsuite/gdb.dwarf2/fortran-var-string.exp
index 98c727a..e4a1270 100644
--- a/gdb/testsuite/gdb.dwarf2/fortran-var-string.exp
+++ b/gdb/testsuite/gdb.dwarf2/fortran-var-string.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/forward-spec-inter-cu.exp b/gdb/testsuite/gdb.dwarf2/forward-spec-inter-cu.exp
index b734c30..e92e582 100644
--- a/gdb/testsuite/gdb.dwarf2/forward-spec-inter-cu.exp
+++ b/gdb/testsuite/gdb.dwarf2/forward-spec-inter-cu.exp
@@ -1,4 +1,4 @@
-# Copyright 2023 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/forward-spec.exp b/gdb/testsuite/gdb.dwarf2/forward-spec.exp
index 5d41f87..6c38be8 100644
--- a/gdb/testsuite/gdb.dwarf2/forward-spec.exp
+++ b/gdb/testsuite/gdb.dwarf2/forward-spec.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/frame-inlined-in-outer-frame.S b/gdb/testsuite/gdb.dwarf2/frame-inlined-in-outer-frame.S
index 2d87d78..1909122 100644
--- a/gdb/testsuite/gdb.dwarf2/frame-inlined-in-outer-frame.S
+++ b/gdb/testsuite/gdb.dwarf2/frame-inlined-in-outer-frame.S
@@ -1,4 +1,4 @@
-/* Copyright 2020-2024 Free Software Foundation, Inc.
+/* Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/frame-inlined-in-outer-frame.exp b/gdb/testsuite/gdb.dwarf2/frame-inlined-in-outer-frame.exp
index c3ac38a..ef7cf92 100644
--- a/gdb/testsuite/gdb.dwarf2/frame-inlined-in-outer-frame.exp
+++ b/gdb/testsuite/gdb.dwarf2/frame-inlined-in-outer-frame.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/gdb-add-index-symlink.exp b/gdb/testsuite/gdb.dwarf2/gdb-add-index-symlink.exp
index c0e0c66..cd05925 100644
--- a/gdb/testsuite/gdb.dwarf2/gdb-add-index-symlink.exp
+++ b/gdb/testsuite/gdb.dwarf2/gdb-add-index-symlink.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/gdb-add-index.exp b/gdb/testsuite/gdb.dwarf2/gdb-add-index.exp
index cc95ba9..3285d1c 100644
--- a/gdb/testsuite/gdb.dwarf2/gdb-add-index.exp
+++ b/gdb/testsuite/gdb.dwarf2/gdb-add-index.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/gdb-index-cxx.exp b/gdb/testsuite/gdb.dwarf2/gdb-index-cxx.exp
index 7083ab7..f0100b8 100644
--- a/gdb/testsuite/gdb.dwarf2/gdb-index-cxx.exp
+++ b/gdb/testsuite/gdb.dwarf2/gdb-index-cxx.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/gdb-index-nodebug.exp b/gdb/testsuite/gdb.dwarf2/gdb-index-nodebug.exp
index cbe456f..4e8199c 100644
--- a/gdb/testsuite/gdb.dwarf2/gdb-index-nodebug.exp
+++ b/gdb/testsuite/gdb.dwarf2/gdb-index-nodebug.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/gdb-index-tilde.exp b/gdb/testsuite/gdb.dwarf2/gdb-index-tilde.exp
index 54051c1..c0d5225 100644
--- a/gdb/testsuite/gdb.dwarf2/gdb-index-tilde.exp
+++ b/gdb/testsuite/gdb.dwarf2/gdb-index-tilde.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/gdb-index-types-dwarf5.c b/gdb/testsuite/gdb.dwarf2/gdb-index-types-dwarf5.c
index 1035ac9..cd2fa1b 100644
--- a/gdb/testsuite/gdb.dwarf2/gdb-index-types-dwarf5.c
+++ b/gdb/testsuite/gdb.dwarf2/gdb-index-types-dwarf5.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/gdb-index-types-dwarf5.exp b/gdb/testsuite/gdb.dwarf2/gdb-index-types-dwarf5.exp
index b97b554..d6f5e48 100644
--- a/gdb/testsuite/gdb.dwarf2/gdb-index-types-dwarf5.exp
+++ b/gdb/testsuite/gdb.dwarf2/gdb-index-types-dwarf5.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/gdb-index.exp b/gdb/testsuite/gdb.dwarf2/gdb-index.exp
index 23d60da..ebeb62b 100644
--- a/gdb/testsuite/gdb.dwarf2/gdb-index.exp
+++ b/gdb/testsuite/gdb.dwarf2/gdb-index.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/implptr-64bit.exp b/gdb/testsuite/gdb.dwarf2/implptr-64bit.exp
index 41e64b1..c4496f1 100644
--- a/gdb/testsuite/gdb.dwarf2/implptr-64bit.exp
+++ b/gdb/testsuite/gdb.dwarf2/implptr-64bit.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp b/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp
index 46022ce..79fcf61 100644
--- a/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp
+++ b/gdb/testsuite/gdb.dwarf2/implptr-optimized-out.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/implptr.c b/gdb/testsuite/gdb.dwarf2/implptr.c
index a6bfc22..14315e6 100644
--- a/gdb/testsuite/gdb.dwarf2/implptr.c
+++ b/gdb/testsuite/gdb.dwarf2/implptr.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/implptr.exp b/gdb/testsuite/gdb.dwarf2/implptr.exp
index fa1b68e..78d5f4f 100644
--- a/gdb/testsuite/gdb.dwarf2/implptr.exp
+++ b/gdb/testsuite/gdb.dwarf2/implptr.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/implptrconst.exp b/gdb/testsuite/gdb.dwarf2/implptrconst.exp
index 541331c..f3d47a2 100644
--- a/gdb/testsuite/gdb.dwarf2/implptrconst.exp
+++ b/gdb/testsuite/gdb.dwarf2/implptrconst.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/implptrpiece.exp b/gdb/testsuite/gdb.dwarf2/implptrpiece.exp
index 867789f..9654483 100644
--- a/gdb/testsuite/gdb.dwarf2/implptrpiece.exp
+++ b/gdb/testsuite/gdb.dwarf2/implptrpiece.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/implref-array.c b/gdb/testsuite/gdb.dwarf2/implref-array.c
index ad1f0ef..18130f2 100644
--- a/gdb/testsuite/gdb.dwarf2/implref-array.c
+++ b/gdb/testsuite/gdb.dwarf2/implref-array.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/implref-array.exp b/gdb/testsuite/gdb.dwarf2/implref-array.exp
index 7d6692b..4f7bb4b 100644
--- a/gdb/testsuite/gdb.dwarf2/implref-array.exp
+++ b/gdb/testsuite/gdb.dwarf2/implref-array.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/implref-const.exp b/gdb/testsuite/gdb.dwarf2/implref-const.exp
index 0dfb3bd..57ccfcd 100644
--- a/gdb/testsuite/gdb.dwarf2/implref-const.exp
+++ b/gdb/testsuite/gdb.dwarf2/implref-const.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/implref-global.c b/gdb/testsuite/gdb.dwarf2/implref-global.c
index 3f38b46..13c5648 100644
--- a/gdb/testsuite/gdb.dwarf2/implref-global.c
+++ b/gdb/testsuite/gdb.dwarf2/implref-global.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/implref-global.exp b/gdb/testsuite/gdb.dwarf2/implref-global.exp
index 1cb0359..5d9e679 100644
--- a/gdb/testsuite/gdb.dwarf2/implref-global.exp
+++ b/gdb/testsuite/gdb.dwarf2/implref-global.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/implref-struct.c b/gdb/testsuite/gdb.dwarf2/implref-struct.c
index bc54a87..3888b32 100644
--- a/gdb/testsuite/gdb.dwarf2/implref-struct.c
+++ b/gdb/testsuite/gdb.dwarf2/implref-struct.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/implref-struct.exp b/gdb/testsuite/gdb.dwarf2/implref-struct.exp
index 69e1507..1add485 100644
--- a/gdb/testsuite/gdb.dwarf2/implref-struct.exp
+++ b/gdb/testsuite/gdb.dwarf2/implref-struct.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/imported-unit-abstract-const-value.exp b/gdb/testsuite/gdb.dwarf2/imported-unit-abstract-const-value.exp
index a5202ea..2517a2a 100644
--- a/gdb/testsuite/gdb.dwarf2/imported-unit-abstract-const-value.exp
+++ b/gdb/testsuite/gdb.dwarf2/imported-unit-abstract-const-value.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/imported-unit-bp-alt.c b/gdb/testsuite/gdb.dwarf2/imported-unit-bp-alt.c
index 19d9adc..0f5cbb3 100644
--- a/gdb/testsuite/gdb.dwarf2/imported-unit-bp-alt.c
+++ b/gdb/testsuite/gdb.dwarf2/imported-unit-bp-alt.c
@@ -1,4 +1,4 @@
-/* Copyright 2020-2024 Free Software Foundation, Inc.
+/* Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/imported-unit-bp-c++.exp b/gdb/testsuite/gdb.dwarf2/imported-unit-bp-c++.exp
index f9a685a..3bf0f00 100644
--- a/gdb/testsuite/gdb.dwarf2/imported-unit-bp-c++.exp
+++ b/gdb/testsuite/gdb.dwarf2/imported-unit-bp-c++.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/imported-unit-bp-c.exp b/gdb/testsuite/gdb.dwarf2/imported-unit-bp-c.exp
index 037ae04..ef68ada 100644
--- a/gdb/testsuite/gdb.dwarf2/imported-unit-bp-c.exp
+++ b/gdb/testsuite/gdb.dwarf2/imported-unit-bp-c.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/imported-unit-bp-main.c b/gdb/testsuite/gdb.dwarf2/imported-unit-bp-main.c
index 204728c..0aa4639 100644
--- a/gdb/testsuite/gdb.dwarf2/imported-unit-bp-main.c
+++ b/gdb/testsuite/gdb.dwarf2/imported-unit-bp-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/imported-unit-bp.exp.tcl b/gdb/testsuite/gdb.dwarf2/imported-unit-bp.exp.tcl
index 4a103fb..65c3466 100644
--- a/gdb/testsuite/gdb.dwarf2/imported-unit-bp.exp.tcl
+++ b/gdb/testsuite/gdb.dwarf2/imported-unit-bp.exp.tcl
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/imported-unit-runto-main.exp b/gdb/testsuite/gdb.dwarf2/imported-unit-runto-main.exp
index 7150326..c4bacb1 100644
--- a/gdb/testsuite/gdb.dwarf2/imported-unit-runto-main.exp
+++ b/gdb/testsuite/gdb.dwarf2/imported-unit-runto-main.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/imported-unit.c b/gdb/testsuite/gdb.dwarf2/imported-unit.c
index 60bb33e..5d49a7e 100644
--- a/gdb/testsuite/gdb.dwarf2/imported-unit.c
+++ b/gdb/testsuite/gdb.dwarf2/imported-unit.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/imported-unit.exp b/gdb/testsuite/gdb.dwarf2/imported-unit.exp
index d97d64b..e5df67e 100644
--- a/gdb/testsuite/gdb.dwarf2/imported-unit.exp
+++ b/gdb/testsuite/gdb.dwarf2/imported-unit.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/index.cc b/gdb/testsuite/gdb.dwarf2/index.cc
index 264ca79..e37e60b 100644
--- a/gdb/testsuite/gdb.dwarf2/index.cc
+++ b/gdb/testsuite/gdb.dwarf2/index.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.exp b/gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.exp
index f338fd4..76e20b6 100644
--- a/gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.exp
+++ b/gdb/testsuite/gdb.dwarf2/info-locals-optimized-out.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/inline.c b/gdb/testsuite/gdb.dwarf2/inline.c
index 70013dc..a5b0d14 100644
--- a/gdb/testsuite/gdb.dwarf2/inline.c
+++ b/gdb/testsuite/gdb.dwarf2/inline.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/inline.exp b/gdb/testsuite/gdb.dwarf2/inline.exp
index 576229a..a36110e 100644
--- a/gdb/testsuite/gdb.dwarf2/inline.exp
+++ b/gdb/testsuite/gdb.dwarf2/inline.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/inlined_subroutine-inheritance.exp b/gdb/testsuite/gdb.dwarf2/inlined_subroutine-inheritance.exp
index 88de108..b26650c 100644
--- a/gdb/testsuite/gdb.dwarf2/inlined_subroutine-inheritance.exp
+++ b/gdb/testsuite/gdb.dwarf2/inlined_subroutine-inheritance.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/intbits.c b/gdb/testsuite/gdb.dwarf2/intbits.c
index b203d2a..909d283 100644
--- a/gdb/testsuite/gdb.dwarf2/intbits.c
+++ b/gdb/testsuite/gdb.dwarf2/intbits.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -41,6 +41,9 @@ unsigned char be30_1_off[4] = { 0x80, 0, 0, 2 };
here, to catch any situation where gdb tries to use the memory. */
unsigned char u32_0[4] = { 0xff, 0xff, 0xff, 0xff };
+/* An 8 bit slot holding a 3 bit value. */
+unsigned char just_bit_0 = 5;
+
int
main (void)
{
diff --git a/gdb/testsuite/gdb.dwarf2/intbits.exp b/gdb/testsuite/gdb.dwarf2/intbits.exp
index 9f9cea1..ff1d69a 100644
--- a/gdb/testsuite/gdb.dwarf2/intbits.exp
+++ b/gdb/testsuite/gdb.dwarf2/intbits.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -36,7 +36,7 @@ Dwarf::assemble ${asm_file} {
{DW_AT_language @DW_LANG_C_plus_plus}
} {
declare_labels i7_type u1_type u17_type u31_type \
- u31_1_type u32_0_type u0_0_type be30_1_type
+ u31_1_type u32_0_type u0_0_type be30_1_type just_bit_type
i7_type: DW_TAG_base_type {
{DW_AT_encoding @DW_ATE_signed}
@@ -167,6 +167,20 @@ Dwarf::assemble ${asm_file} {
{DW_AT_location {DW_OP_addr [gdb_target_symbol "u32_0"]}
SPECIAL_expr}
}
+
+ just_bit_type: DW_TAG_base_type {
+ {DW_AT_encoding @DW_ATE_unsigned}
+ {DW_AT_name "just_bit_type"}
+ {DW_AT_bit_size 3 DW_FORM_udata}
+ }
+
+ DW_TAG_variable {
+ {DW_AT_name "v_just_bit"}
+ {DW_AT_type :${just_bit_type}}
+ {DW_AT_external 1 DW_FORM_flag}
+ {DW_AT_location {DW_OP_addr [gdb_target_symbol "just_bit_0"]}
+ SPECIAL_expr}
+ }
}
}
}
@@ -197,3 +211,6 @@ gdb_test "x/4xb &v_u32_1_off" ":\t0x0e\t0x00\t0x00\t0x00"
gdb_test "print v_be30_1_off" "= 1"
gdb_test "print v_be30_1_off = 7" " = 7"
gdb_test "x/4xb &v_be30_1_off" ":\t0x00\t0x00\t0x00\t0x0e"
+
+gdb_test "print/x v_just_bit" " = 0x5"
+gdb_test "print/x (just_bit_type) 5" " = 0x5"
diff --git a/gdb/testsuite/gdb.dwarf2/loc-sec-offset.c b/gdb/testsuite/gdb.dwarf2/loc-sec-offset.c
index 2a03b79..a1ddb56 100644
--- a/gdb/testsuite/gdb.dwarf2/loc-sec-offset.c
+++ b/gdb/testsuite/gdb.dwarf2/loc-sec-offset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/loc-sec-offset.exp b/gdb/testsuite/gdb.dwarf2/loc-sec-offset.exp
index 52ec70d..6e10b6c 100644
--- a/gdb/testsuite/gdb.dwarf2/loc-sec-offset.exp
+++ b/gdb/testsuite/gdb.dwarf2/loc-sec-offset.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/local-var.exp b/gdb/testsuite/gdb.dwarf2/local-var.exp
index 6c53305..f0d68b6 100644
--- a/gdb/testsuite/gdb.dwarf2/local-var.exp
+++ b/gdb/testsuite/gdb.dwarf2/local-var.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/local-var.f90 b/gdb/testsuite/gdb.dwarf2/local-var.f90
index eea0b13..b0102a5 100644
--- a/gdb/testsuite/gdb.dwarf2/local-var.f90
+++ b/gdb/testsuite/gdb.dwarf2/local-var.f90
@@ -1,4 +1,4 @@
-! Copyright 2024 Free Software Foundation, Inc.
+! Copyright 2024-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/locexpr-data-member-location-lib.c b/gdb/testsuite/gdb.dwarf2/locexpr-data-member-location-lib.c
index dc0da8f..ce4ed5e 100644
--- a/gdb/testsuite/gdb.dwarf2/locexpr-data-member-location-lib.c
+++ b/gdb/testsuite/gdb.dwarf2/locexpr-data-member-location-lib.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/locexpr-data-member-location-main.c b/gdb/testsuite/gdb.dwarf2/locexpr-data-member-location-main.c
index f36d44d..3c07a3e 100644
--- a/gdb/testsuite/gdb.dwarf2/locexpr-data-member-location-main.c
+++ b/gdb/testsuite/gdb.dwarf2/locexpr-data-member-location-main.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/locexpr-data-member-location.exp b/gdb/testsuite/gdb.dwarf2/locexpr-data-member-location.exp
index 2001b28..ea871d6 100644
--- a/gdb/testsuite/gdb.dwarf2/locexpr-data-member-location.exp
+++ b/gdb/testsuite/gdb.dwarf2/locexpr-data-member-location.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/locexpr-data-member-location.h b/gdb/testsuite/gdb.dwarf2/locexpr-data-member-location.h
index b1a1d75..68b2c60 100644
--- a/gdb/testsuite/gdb.dwarf2/locexpr-data-member-location.h
+++ b/gdb/testsuite/gdb.dwarf2/locexpr-data-member-location.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/loclists-multiple-cus.c b/gdb/testsuite/gdb.dwarf2/loclists-multiple-cus.c
index 2a03b79..a1ddb56 100644
--- a/gdb/testsuite/gdb.dwarf2/loclists-multiple-cus.c
+++ b/gdb/testsuite/gdb.dwarf2/loclists-multiple-cus.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/loclists-multiple-cus.exp b/gdb/testsuite/gdb.dwarf2/loclists-multiple-cus.exp
index cb64d5b..b0c9d7d 100644
--- a/gdb/testsuite/gdb.dwarf2/loclists-multiple-cus.exp
+++ b/gdb/testsuite/gdb.dwarf2/loclists-multiple-cus.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/loclists-sec-offset.c b/gdb/testsuite/gdb.dwarf2/loclists-sec-offset.c
index 86dd740..e47cc5d 100644
--- a/gdb/testsuite/gdb.dwarf2/loclists-sec-offset.c
+++ b/gdb/testsuite/gdb.dwarf2/loclists-sec-offset.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/loclists-sec-offset.exp b/gdb/testsuite/gdb.dwarf2/loclists-sec-offset.exp
index ff55e24..38512cd 100644
--- a/gdb/testsuite/gdb.dwarf2/loclists-sec-offset.exp
+++ b/gdb/testsuite/gdb.dwarf2/loclists-sec-offset.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/loclists-start-end.c b/gdb/testsuite/gdb.dwarf2/loclists-start-end.c
index 2a03b79..a1ddb56 100644
--- a/gdb/testsuite/gdb.dwarf2/loclists-start-end.c
+++ b/gdb/testsuite/gdb.dwarf2/loclists-start-end.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/loclists-start-end.exp b/gdb/testsuite/gdb.dwarf2/loclists-start-end.exp
index 9d4804c..2569896 100644
--- a/gdb/testsuite/gdb.dwarf2/loclists-start-end.exp
+++ b/gdb/testsuite/gdb.dwarf2/loclists-start-end.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/mac-fileno.S b/gdb/testsuite/gdb.dwarf2/mac-fileno.S
index e4c16ed..1a66895 100644
--- a/gdb/testsuite/gdb.dwarf2/mac-fileno.S
+++ b/gdb/testsuite/gdb.dwarf2/mac-fileno.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2005-2024 Free Software Foundation, Inc.
+ Copyright 2005-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/mac-fileno.exp b/gdb/testsuite/gdb.dwarf2/mac-fileno.exp
index 4a68c1a..94efd24 100644
--- a/gdb/testsuite/gdb.dwarf2/mac-fileno.exp
+++ b/gdb/testsuite/gdb.dwarf2/mac-fileno.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/macro-complaints.exp b/gdb/testsuite/gdb.dwarf2/macro-complaints.exp
index 01060b8..7b0b27a 100644
--- a/gdb/testsuite/gdb.dwarf2/macro-complaints.exp
+++ b/gdb/testsuite/gdb.dwarf2/macro-complaints.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/macro-source-path-clang14-dw4.exp b/gdb/testsuite/gdb.dwarf2/macro-source-path-clang14-dw4.exp
new file mode 100644
index 0000000..c0c2635
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/macro-source-path-clang14-dw4.exp
@@ -0,0 +1,71 @@
+# This testcase is part of GDB, the GNU debugger.
+
+# Copyright 2022-2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Generate binaries imitating different ways source file paths can be passed to
+# compilers. Test printing macros from those binaries.
+
+# The do_test proc comes from macro-source-path.exp.tcl.
+source $srcdir/$subdir/macro-source-path.exp.tcl
+
+# When adding a test here, please consider adding an equivalent case to
+# `gdb.base/macro-source-path.exp`.
+
+# The following tests are based on the output of `clang-14 -gdwarf-4
+# -fdebug-macro -g3 <file>` (using its built-in assembler). With -gdwarf-4,
+# clang produces a .debug_macinfo section, not a .debug_macro section. But
+# this test still creates a .debug_macro section, that's good enough for what
+# we want to test.
+
+## test.c
+do_test filename 4 "test.c" 1 {
+} {
+ {"test.c" 0}
+}
+
+## ./test.c
+do_test dot-filename 4 "test.c" 1 {
+ "."
+} {
+ {"test.c" 1}
+}
+
+## ../cwd/test.c
+do_test dot-dot-cwd 4 "../cwd/test.c" 1 {
+ "../cwd"
+} {
+ {"test.c" 1}
+}
+
+## /tmp/cwd/test.c
+do_test absolute-cwd 4 "/tmp/cwd/test.c" 1 {
+} {
+ {"test.c" 0}
+}
+
+## ../other/test.c
+do_test dot-dot-other 4 "../other/test.c" 1 {
+ "../other"
+} {
+ {"test.c" 1}
+}
+
+## /tmp/other/test.c
+do_test absolute-other 4 "/tmp/other/test.c" 1 {
+ "/tmp"
+} {
+ {"other/test.c" 1}
+}
diff --git a/gdb/testsuite/gdb.dwarf2/macro-source-path-clang14-dw5.exp b/gdb/testsuite/gdb.dwarf2/macro-source-path-clang14-dw5.exp
new file mode 100644
index 0000000..0b3239e
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/macro-source-path-clang14-dw5.exp
@@ -0,0 +1,75 @@
+# This testcase is part of GDB, the GNU debugger.
+
+# Copyright 2022-2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Generate binaries imitating different ways source file paths can be passed to
+# compilers. Test printing macros from those binaries.
+
+# The do_test proc comes from macro-source-path.exp.tcl.
+source $srcdir/$subdir/macro-source-path.exp.tcl
+
+# When adding a test here, please consider adding an equivalent case to
+# `gdb.base/macro-source-path.exp`.
+
+# The following tests are based on the output of `clang-14 -gdwarf-5
+# -fdebug-macro -g3 <file>` (using its built-in assembler)
+
+## test.c
+do_test filename 5 "test.c" 0 {
+ "/tmp/cwd"
+} {
+ {"test.c" 0}
+}
+
+## ./test.c
+do_test dot-filename 5 "test.c" 1 {
+ "/tmp/cwd"
+ "."
+} {
+ {"test.c" 0}
+ {"test.c" 1}
+}
+
+## ../cwd/test.c
+do_test dot-dot-cwd 5 "../cwd/test.c" 0 {
+ "/tmp/cwd"
+} {
+ {"../cwd/test.c" 0}
+}
+
+## /tmp/cwd/test.c
+do_test absolute-cwd 5 "/tmp/cwd/test.c" 1 {
+ "/tmp/cwd"
+} {
+ {"/tmp/cwd/test.c" 0}
+ {"test.c" 0}
+}
+
+## ../other/test.c
+do_test dot-dot-other 5 "../other/test.c" 0 {
+ "/tmp/cwd"
+} {
+ {"../other/test.c" 0}
+}
+
+## /tmp/other/test.c
+do_test absolute-other 5 "/tmp/other/test.c" 1 {
+ "/tmp/cwd"
+ "/tmp"
+} {
+ {"/tmp/other/test.c" 0}
+ {"other/test.c" 1}
+}
diff --git a/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld234-dw5.exp b/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld234-dw5.exp
new file mode 100644
index 0000000..940f997
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld234-dw5.exp
@@ -0,0 +1,70 @@
+# This testcase is part of GDB, the GNU debugger.
+
+# Copyright 2022-2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Generate binaries imitating different ways source file paths can be passed to
+# compilers. Test printing macros from those binaries.
+
+# The do_test proc comes from macro-source-path.exp.tcl.
+source $srcdir/$subdir/macro-source-path.exp.tcl
+
+# When adding a test here, please consider adding an equivalent case to
+# `gdb.base/macro-source-path.exp`.
+
+# The following tests are based on the output of `gcc -gdwarf-5 -g3 <file>`,
+# gcc 11 paired with gas from binutils 2.34 (Ubuntu 20.04). It generates a v5
+# .debug_macro section, but a v3 .debug_line section.
+
+## test.c
+do_test filename 3 "test.c" 1 {
+} {
+ {"test.c" 0}
+}
+
+## ./test.c
+do_test dot-filename 3 "./test.c" 1 {
+ "."
+} {
+ {"test.c" 1}
+}
+
+## ../cwd/test.c
+do_test dot-dot-cwd 3 "../cwd/test.c" 1 {
+ "../cwd"
+} {
+ {"test.c" 1}
+}
+
+## /tmp/cwd/test.c
+do_test absolute-cwd 3 "/tmp/cwd/test.c" 1 {
+ "/tmp/cwd"
+} {
+ {"test.c" 1}
+}
+
+## ../other/test.c
+do_test dot-dot-other 3 "../other/test.c" 1 {
+ "../other"
+} {
+ {"test.c" 1}
+}
+
+## /tmp/other/test.c
+do_test absolute-other 3 "/tmp/other/test.c" 1 {
+ "/tmp/other"
+} {
+ {"test.c" 1}
+}
diff --git a/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld238-dw4.exp b/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld238-dw4.exp
new file mode 100644
index 0000000..dea0308
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld238-dw4.exp
@@ -0,0 +1,70 @@
+# This testcase is part of GDB, the GNU debugger.
+
+# Copyright 2022-2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Generate binaries imitating different ways source file paths can be passed to
+# compilers. Test printing macros from those binaries.
+
+# The do_test proc comes from macro-source-path.exp.tcl.
+source $srcdir/$subdir/macro-source-path.exp.tcl
+
+# When adding a test here, please consider adding an equivalent case to
+# `gdb.base/macro-source-path.exp`.
+
+# The following tests are based on the output of `gcc -gdwarf-4 -g3 <file>`,
+# gcc 11 paired with gas from binutils 2.38. With -gdwarf-4, gcc generates a
+# v4 (pre-standard) .debug_macro section.
+
+## test.c
+do_test filename 4 "test.c" 1 {
+} {
+ {"test.c" 0}
+}
+
+## ./test.c
+do_test dot-filename 4 "./test.c" 1 {
+ "."
+} {
+ {"test.c" 1}
+}
+
+## ../cwd/test.c
+do_test dot-dot-cwd 4 "../cwd/test.c" 1 {
+ "../cwd"
+} {
+ {"test.c" 1}
+}
+
+## /tmp/cwd/test.c
+do_test absolute-cwd 4 "/tmp/cwd/test.c" 1 {
+ "/tmp/cwd"
+} {
+ {"test.c" 1}
+}
+
+## ../other/test.c
+do_test dot-dot-other 4 "../other/test.c" 1 {
+ "../other"
+} {
+ {"test.c" 1}
+}
+
+## /tmp/other/test.c
+do_test absolute-other 4 "/tmp/other/test.c" 1 {
+ "/tmp/other"
+} {
+ {"test.c" 1}
+}
diff --git a/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld238-dw5.exp b/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld238-dw5.exp
new file mode 100644
index 0000000..98a278e
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/macro-source-path-gcc11-ld238-dw5.exp
@@ -0,0 +1,81 @@
+# This testcase is part of GDB, the GNU debugger.
+
+# Copyright 2022-2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Generate binaries imitating different ways source file paths can be passed to
+# compilers. Test printing macros from those binaries.
+
+# The do_test proc comes from macro-source-path.exp.tcl.
+source $srcdir/$subdir/macro-source-path.exp.tcl
+
+# When adding a test here, please consider adding an equivalent case to
+# `gdb.base/macro-source-path.exp`.
+
+# The following tests are based on the output of `gcc -gdwarf-5 -g3 <file>`,
+# gcc 11 paired with gas from binutils 2.38.
+
+## test.c
+do_test filename 5 "test.c" 1 {
+ "/tmp/cwd"
+} {
+ {"test.c" 0}
+ {"test.c" 0}
+}
+
+## ./test.c
+do_test dot-filename 5 "./test.c" 1 {
+ "/tmp/cwd"
+ "."
+} {
+ {"test.c" 1}
+ {"test.c" 1}
+}
+
+## ../cwd/test.c
+do_test dot-dot-cwd 5 "../cwd/test.c" 1 {
+ "/tmp/cwd"
+ "../cwd"
+} {
+ {"test.c" 1}
+ {"test.c" 1}
+}
+
+## /tmp/cwd/test.c
+do_test absolute-cwd 5 "/tmp/cwd/test.c" 1 {
+ "/tmp/cwd"
+ "/tmp/cwd"
+} {
+ {"test.c" 1}
+ {"test.c" 0}
+}
+
+## ../other/test.c
+do_test dot-dot-other 5 "../other/test.c" 1 {
+ "/tmp/cwd"
+ "../other"
+} {
+ {"test.c" 1}
+ {"test.c" 1}
+}
+
+## /tmp/other/test.c
+do_test absolute-other 5 "/tmp/other/test.c" 1 {
+ "/tmp/cwd"
+ "/tmp/other"
+} {
+ {"test.c" 1}
+ {"test.c" 1}
+}
diff --git a/gdb/testsuite/gdb.dwarf2/macro-source-path.c b/gdb/testsuite/gdb.dwarf2/macro-source-path.c
index 5bc5580..97766a9 100644
--- a/gdb/testsuite/gdb.dwarf2/macro-source-path.c
+++ b/gdb/testsuite/gdb.dwarf2/macro-source-path.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/macro-source-path.exp b/gdb/testsuite/gdb.dwarf2/macro-source-path.exp.tcl
index fccfabd..ecaf685 100644
--- a/gdb/testsuite/gdb.dwarf2/macro-source-path.exp
+++ b/gdb/testsuite/gdb.dwarf2/macro-source-path.exp.tcl
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -17,12 +17,15 @@
# Generate binaries imitating different ways source file paths can be passed to
# compilers. Test printing macros from those binaries.
+#
+# The entry points for this test are in the various
+# gdb.dwarf2/macro-source-path-*.exp files.
load_lib dwarf.exp
require dwarf2_support
-standard_testfile .c
+standard_testfile macro-source-path.c
lassign [function_range main $srcdir/$subdir/$srcfile] \
main_start main_len
@@ -160,248 +163,3 @@ proc do_test { test_name lines_version DW_AT_name main_file_idx directories
}
}
}
-
-# When adding a test here, please consider adding an equivalent case to the test
-# of the same name in gdb.base.
-
-# The following tests are based on the output of `gcc -gdwarf-5 -g3 <file>`,
-# gcc 11 paired with gas from binutils 2.38.
-
-## test.c
-do_test gcc11-ld238-dw5-filename 5 "test.c" 1 {
- "/tmp/cwd"
-} {
- {"test.c" 0}
- {"test.c" 0}
-}
-
-## ./test.c
-do_test gcc11-ld238-dw5-dot-filename 5 "./test.c" 1 {
- "/tmp/cwd"
- "."
-} {
- {"test.c" 1}
- {"test.c" 1}
-}
-
-## ../cwd/test.c
-do_test gcc11-ld238-dw5-dot-dot-cwd 5 "../cwd/test.c" 1 {
- "/tmp/cwd"
- "../cwd"
-} {
- {"test.c" 1}
- {"test.c" 1}
-}
-
-## /tmp/cwd/test.c
-do_test gcc11-ld238-dw5-absolute-cwd 5 "/tmp/cwd/test.c" 1 {
- "/tmp/cwd"
- "/tmp/cwd"
-} {
- {"test.c" 1}
- {"test.c" 0}
-}
-
-## ../other/test.c
-do_test gcc11-ld238-dw5-dot-dot-other 5 "../other/test.c" 1 {
- "/tmp/cwd"
- "../other"
-} {
- {"test.c" 1}
- {"test.c" 1}
-}
-
-## /tmp/other/test.c
-do_test gcc11-ld238-dw5-absolute-other 5 "/tmp/other/test.c" 1 {
- "/tmp/cwd"
- "/tmp/other"
-} {
- {"test.c" 1}
- {"test.c" 1}
-}
-
-# The following tests are based on the output of `gcc -gdwarf-4 -g3 <file>`,
-# gcc 11 paired with gas from binutils 2.38. With -gdwarf-4, gcc generates a
-# v4 (pre-standard) .debug_macro section.
-
-## test.c
-do_test gcc11-ld238-dw4-filename 4 "test.c" 1 {
-} {
- {"test.c" 0}
-}
-
-## ./test.c
-do_test gcc11-ld238-dw4-dot-filename 4 "./test.c" 1 {
- "."
-} {
- {"test.c" 1}
-}
-
-## ../cwd/test.c
-do_test gcc11-ld238-dw4-dot-dot-cwd 4 "../cwd/test.c" 1 {
- "../cwd"
-} {
- {"test.c" 1}
-}
-
-## /tmp/cwd/test.c
-do_test gcc11-ld238-dw4-absolute-cwd 4 "/tmp/cwd/test.c" 1 {
- "/tmp/cwd"
-} {
- {"test.c" 1}
-}
-
-## ../other/test.c
-do_test gcc11-ld238-dw4-dot-dot-other 4 "../other/test.c" 1 {
- "../other"
-} {
- {"test.c" 1}
-}
-
-## /tmp/other/test.c
-do_test gcc11-ld238-dw4-absolute-other 4 "/tmp/other/test.c" 1 {
- "/tmp/other"
-} {
- {"test.c" 1}
-}
-
-# The following tests are based on the output of `clang-14 -gdwarf-5
-# -fdebug-macro -g3 <file>` (using its built-in assembler)
-
-## test.c
-do_test clang14-dw5-filename 5 "test.c" 0 {
- "/tmp/cwd"
-} {
- {"test.c" 0}
-}
-
-## ./test.c
-do_test clang14-dw5-dot-filename 5 "test.c" 1 {
- "/tmp/cwd"
- "."
-} {
- {"test.c" 0}
- {"test.c" 1}
-}
-
-## ../cwd/test.c
-do_test clang14-dw5-dot-dot-cwd 5 "../cwd/test.c" 0 {
- "/tmp/cwd"
-} {
- {"../cwd/test.c" 0}
-}
-
-## /tmp/cwd/test.c
-do_test clang14-dw5-absolute-cwd 5 "/tmp/cwd/test.c" 1 {
- "/tmp/cwd"
-} {
- {"/tmp/cwd/test.c" 0}
- {"test.c" 0}
-}
-
-## ../other/test.c
-do_test clang14-dw5-dot-dot-other 5 "../other/test.c" 0 {
- "/tmp/cwd"
-} {
- {"../other/test.c" 0}
-}
-
-## /tmp/other/test.c
-do_test clang14-dw5-absolute-other 5 "/tmp/other/test.c" 1 {
- "/tmp/cwd"
- "/tmp"
-} {
- {"/tmp/other/test.c" 0}
- {"other/test.c" 1}
-}
-
-# The following tests are based on the output of `clang-14 -gdwarf-4
-# -fdebug-macro -g3 <file>` (using its built-in assembler). With -gdwarf-4,
-# clang produces a .debug_macinfo section, not a .debug_macro section. But
-# this test still creates a .debug_macro section, that's good enough for what
-# we want to test.
-
-## test.c
-do_test clang14-dw4-filename 4 "test.c" 1 {
-} {
- {"test.c" 0}
-}
-
-## ./test.c
-do_test clang14-dw4-dot-filename 4 "test.c" 1 {
- "."
-} {
- {"test.c" 1}
-}
-
-## ../cwd/test.c
-do_test clang14-dw4-dot-dot-cwd 4 "../cwd/test.c" 1 {
- "../cwd"
-} {
- {"test.c" 1}
-}
-
-## /tmp/cwd/test.c
-do_test clang14-dw4-absolute-cwd 4 "/tmp/cwd/test.c" 1 {
-} {
- {"test.c" 0}
-}
-
-## ../other/test.c
-do_test clang14-dw4-dot-dot-other 4 "../other/test.c" 1 {
- "../other"
-} {
- {"test.c" 1}
-}
-
-## /tmp/other/test.c
-do_test clang14-dw4-absolute-other 4 "/tmp/other/test.c" 1 {
- "/tmp"
-} {
- {"other/test.c" 1}
-}
-
-# The following tests are based on the output of `gcc -gdwarf-5 -g3 <file>`,
-# gcc 11 paired with gas from binutils 2.34 (Ubuntu 20.04). It generates a v5
-# .debug_macro section, but a v3 .debug_line section.
-
-## test.c
-do_test gcc11-ld234-dw5-filename 3 "test.c" 1 {
-} {
- {"test.c" 0}
-}
-
-## ./test.c
-do_test gcc11-ld234-dw5-dot-filename 3 "./test.c" 1 {
- "."
-} {
- {"test.c" 1}
-}
-
-## ../cwd/test.c
-do_test gcc11-ld234-dw5-dot-dot-cwd 3 "../cwd/test.c" 1 {
- "../cwd"
-} {
- {"test.c" 1}
-}
-
-## /tmp/cwd/test.c
-do_test gcc11-ld234-dw5-absolute-cwd 3 "/tmp/cwd/test.c" 1 {
- "/tmp/cwd"
-} {
- {"test.c" 1}
-}
-
-## ../other/test.c
-do_test gcc11-ld234-dw5-dot-dot-other 3 "../other/test.c" 1 {
- "../other"
-} {
- {"test.c" 1}
-}
-
-## /tmp/other/test.c
-do_test gcc11-ld234-dw5-absolute-other 3 "/tmp/other/test.c" 1 {
- "/tmp/other"
-} {
- {"test.c" 1}
-}
diff --git a/gdb/testsuite/gdb.dwarf2/main-foo.c b/gdb/testsuite/gdb.dwarf2/main-foo.c
index 17ebbfe..43d185c 100644
--- a/gdb/testsuite/gdb.dwarf2/main-foo.c
+++ b/gdb/testsuite/gdb.dwarf2/main-foo.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/main-subprogram.c b/gdb/testsuite/gdb.dwarf2/main-subprogram.c
index 63a52b2..23a95d5 100644
--- a/gdb/testsuite/gdb.dwarf2/main-subprogram.c
+++ b/gdb/testsuite/gdb.dwarf2/main-subprogram.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/main-subprogram.exp b/gdb/testsuite/gdb.dwarf2/main-subprogram.exp
index bc4ce7f..467cf20 100644
--- a/gdb/testsuite/gdb.dwarf2/main-subprogram.exp
+++ b/gdb/testsuite/gdb.dwarf2/main-subprogram.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/main.c b/gdb/testsuite/gdb.dwarf2/main.c
index 70399d4..b138220 100644
--- a/gdb/testsuite/gdb.dwarf2/main.c
+++ b/gdb/testsuite/gdb.dwarf2/main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/mega-enum.exp b/gdb/testsuite/gdb.dwarf2/mega-enum.exp
index 828987b..7482edb 100644
--- a/gdb/testsuite/gdb.dwarf2/mega-enum.exp
+++ b/gdb/testsuite/gdb.dwarf2/mega-enum.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.S b/gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.S
index 2a1a295..2db922d 100644
--- a/gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.S
+++ b/gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.exp b/gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.exp
index 21ad111..1bb36ea 100644
--- a/gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.exp
+++ b/gdb/testsuite/gdb.dwarf2/member-ptr-forwardref.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/method-ptr.cc b/gdb/testsuite/gdb.dwarf2/method-ptr.cc
index eb032dd..fe2fba8 100644
--- a/gdb/testsuite/gdb.dwarf2/method-ptr.cc
+++ b/gdb/testsuite/gdb.dwarf2/method-ptr.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/method-ptr.exp b/gdb/testsuite/gdb.dwarf2/method-ptr.exp
index 9bb4776..867527c 100644
--- a/gdb/testsuite/gdb.dwarf2/method-ptr.exp
+++ b/gdb/testsuite/gdb.dwarf2/method-ptr.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/missing-line-table.c b/gdb/testsuite/gdb.dwarf2/missing-line-table.c
index 1835057..f023288 100644
--- a/gdb/testsuite/gdb.dwarf2/missing-line-table.c
+++ b/gdb/testsuite/gdb.dwarf2/missing-line-table.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/missing-line-table.exp b/gdb/testsuite/gdb.dwarf2/missing-line-table.exp
index 77618de..835686e 100644
--- a/gdb/testsuite/gdb.dwarf2/missing-line-table.exp
+++ b/gdb/testsuite/gdb.dwarf2/missing-line-table.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/missing-sig-type.exp b/gdb/testsuite/gdb.dwarf2/missing-sig-type.exp
index c1544eb..947f024 100644
--- a/gdb/testsuite/gdb.dwarf2/missing-sig-type.exp
+++ b/gdb/testsuite/gdb.dwarf2/missing-sig-type.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/missing-type-name-for-templates.cc b/gdb/testsuite/gdb.dwarf2/missing-type-name-for-templates.cc
index a1a0a11..3901849 100644
--- a/gdb/testsuite/gdb.dwarf2/missing-type-name-for-templates.cc
+++ b/gdb/testsuite/gdb.dwarf2/missing-type-name-for-templates.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/missing-type-name-for-templates.exp b/gdb/testsuite/gdb.dwarf2/missing-type-name-for-templates.exp
index 869b29f..108c9c7 100644
--- a/gdb/testsuite/gdb.dwarf2/missing-type-name-for-templates.exp
+++ b/gdb/testsuite/gdb.dwarf2/missing-type-name-for-templates.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/missing-type-name.exp b/gdb/testsuite/gdb.dwarf2/missing-type-name.exp
index 8789fbe..91997f7 100644
--- a/gdb/testsuite/gdb.dwarf2/missing-type-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/missing-type-name.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/multidictionary.exp b/gdb/testsuite/gdb.dwarf2/multidictionary.exp
index 4c7dc0e..3458f7c 100644
--- a/gdb/testsuite/gdb.dwarf2/multidictionary.exp
+++ b/gdb/testsuite/gdb.dwarf2/multidictionary.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/negative-data-member-location.c b/gdb/testsuite/gdb.dwarf2/negative-data-member-location.c
index 0a63995..f785630 100644
--- a/gdb/testsuite/gdb.dwarf2/negative-data-member-location.c
+++ b/gdb/testsuite/gdb.dwarf2/negative-data-member-location.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/negative-data-member-location.exp b/gdb/testsuite/gdb.dwarf2/negative-data-member-location.exp
index fdc681e..365204f 100644
--- a/gdb/testsuite/gdb.dwarf2/negative-data-member-location.exp
+++ b/gdb/testsuite/gdb.dwarf2/negative-data-member-location.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/no-expand-mixed-case.exp b/gdb/testsuite/gdb.dwarf2/no-expand-mixed-case.exp
new file mode 100644
index 0000000..7359eea
--- /dev/null
+++ b/gdb/testsuite/gdb.dwarf2/no-expand-mixed-case.exp
@@ -0,0 +1,42 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Searching for "INT" should not cause CU expansion in a C program.
+# PR symtab/31010.
+
+require !readnow
+
+standard_testfile main.c
+
+if {[prepare_for_testing "failed to prepare" $testfile \
+ $srcfile {debug}]} {
+ return
+}
+
+# Check that no CUs have been expanded yet.
+gdb_test_no_output "maint info symtabs" \
+ "no symtabs before lookup"
+
+# The bug was that this caused CU expansion even though the type does
+# not exist.
+gdb_test "whatis INT" "No symbol \"INT\" in current context."
+
+# Check that no CUs were expanded by the lookup. This fails with
+# .gdb_index.
+if {[have_index $binfile] == "gdb_index"} {
+ setup_kfail symtab/31363 *-*-*
+}
+gdb_test_no_output "maint info symtabs" \
+ "no symtabs after lookup"
diff --git a/gdb/testsuite/gdb.dwarf2/no-gnu-debuglink.exp b/gdb/testsuite/gdb.dwarf2/no-gnu-debuglink.exp
index 54cd199..05e625f 100644
--- a/gdb/testsuite/gdb.dwarf2/no-gnu-debuglink.exp
+++ b/gdb/testsuite/gdb.dwarf2/no-gnu-debuglink.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -38,7 +38,7 @@ if { [build_executable $testfile.exp $testfile [list $srcfile $asm_file]] } {
clean_restart
gdb_test_no_output "maint set dwarf synchronous on"
-set msg "\r\nwarning: could not find '\.gnu_debugaltlink' file for \[^\r\n\]*"
+set msg "\r\nwarning: could not find supplementary DWARF file \[^\r\n\]*"
gdb_test "file $binfile" "$msg" "file command"
set question "Load new symbol table from .*\? .y or n. "
diff --git a/gdb/testsuite/gdb.dwarf2/nonvar-access.exp b/gdb/testsuite/gdb.dwarf2/nonvar-access.exp
index 25078c6..4aef19a 100644
--- a/gdb/testsuite/gdb.dwarf2/nonvar-access.exp
+++ b/gdb/testsuite/gdb.dwarf2/nonvar-access.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/nostaticblock.exp b/gdb/testsuite/gdb.dwarf2/nostaticblock.exp
index e8d41f04..2cc8338 100644
--- a/gdb/testsuite/gdb.dwarf2/nostaticblock.exp
+++ b/gdb/testsuite/gdb.dwarf2/nostaticblock.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/nullptr_t.cc b/gdb/testsuite/gdb.dwarf2/nullptr_t.cc
index 6cd08eb..4220b0c 100644
--- a/gdb/testsuite/gdb.dwarf2/nullptr_t.cc
+++ b/gdb/testsuite/gdb.dwarf2/nullptr_t.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/nullptr_t.exp b/gdb/testsuite/gdb.dwarf2/nullptr_t.exp
index d6c2422..ab73554 100644
--- a/gdb/testsuite/gdb.dwarf2/nullptr_t.exp
+++ b/gdb/testsuite/gdb.dwarf2/nullptr_t.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/opaque-type-lookup-2.c b/gdb/testsuite/gdb.dwarf2/opaque-type-lookup-2.c
index 3d993d2..81991b9 100644
--- a/gdb/testsuite/gdb.dwarf2/opaque-type-lookup-2.c
+++ b/gdb/testsuite/gdb.dwarf2/opaque-type-lookup-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/opaque-type-lookup.exp b/gdb/testsuite/gdb.dwarf2/opaque-type-lookup.exp
index 0d0cc14..757212b 100644
--- a/gdb/testsuite/gdb.dwarf2/opaque-type-lookup.exp
+++ b/gdb/testsuite/gdb.dwarf2/opaque-type-lookup.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/opt-out-not-implptr.exp b/gdb/testsuite/gdb.dwarf2/opt-out-not-implptr.exp
index 30bd91c..e5334f2 100644
--- a/gdb/testsuite/gdb.dwarf2/opt-out-not-implptr.exp
+++ b/gdb/testsuite/gdb.dwarf2/opt-out-not-implptr.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/per-bfd-sharing.c b/gdb/testsuite/gdb.dwarf2/per-bfd-sharing.c
index 6d3e8c8..059dda1 100644
--- a/gdb/testsuite/gdb.dwarf2/per-bfd-sharing.c
+++ b/gdb/testsuite/gdb.dwarf2/per-bfd-sharing.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/per-bfd-sharing.exp b/gdb/testsuite/gdb.dwarf2/per-bfd-sharing.exp
index 7df68a9..85f19c7 100644
--- a/gdb/testsuite/gdb.dwarf2/per-bfd-sharing.exp
+++ b/gdb/testsuite/gdb.dwarf2/per-bfd-sharing.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/pieces-optimized-out.S b/gdb/testsuite/gdb.dwarf2/pieces-optimized-out.S
index 7829dac..1c635ad 100644
--- a/gdb/testsuite/gdb.dwarf2/pieces-optimized-out.S
+++ b/gdb/testsuite/gdb.dwarf2/pieces-optimized-out.S
@@ -1,5 +1,5 @@
/*
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/pieces-optimized-out.c b/gdb/testsuite/gdb.dwarf2/pieces-optimized-out.c
index 0e7feaccc..a22efc7 100644
--- a/gdb/testsuite/gdb.dwarf2/pieces-optimized-out.c
+++ b/gdb/testsuite/gdb.dwarf2/pieces-optimized-out.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/pieces-optimized-out.exp b/gdb/testsuite/gdb.dwarf2/pieces-optimized-out.exp
index db9f7b2..65f5fad 100644
--- a/gdb/testsuite/gdb.dwarf2/pieces-optimized-out.exp
+++ b/gdb/testsuite/gdb.dwarf2/pieces-optimized-out.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/pieces.S b/gdb/testsuite/gdb.dwarf2/pieces.S
index 4f953f4..6f14e4d 100644
--- a/gdb/testsuite/gdb.dwarf2/pieces.S
+++ b/gdb/testsuite/gdb.dwarf2/pieces.S
@@ -1,5 +1,5 @@
/*
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/pieces.c b/gdb/testsuite/gdb.dwarf2/pieces.c
index b456693..8a7fb17 100644
--- a/gdb/testsuite/gdb.dwarf2/pieces.c
+++ b/gdb/testsuite/gdb.dwarf2/pieces.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2010-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/pieces.exp b/gdb/testsuite/gdb.dwarf2/pieces.exp
index d52ee5f..5641d16 100644
--- a/gdb/testsuite/gdb.dwarf2/pieces.exp
+++ b/gdb/testsuite/gdb.dwarf2/pieces.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/pr10770.exp b/gdb/testsuite/gdb.dwarf2/pr10770.exp
index 07559b3..a822b7f 100644
--- a/gdb/testsuite/gdb.dwarf2/pr10770.exp
+++ b/gdb/testsuite/gdb.dwarf2/pr10770.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/pr11465.S b/gdb/testsuite/gdb.dwarf2/pr11465.S
index 1b7d48b..fed98bc 100644
--- a/gdb/testsuite/gdb.dwarf2/pr11465.S
+++ b/gdb/testsuite/gdb.dwarf2/pr11465.S
@@ -1,4 +1,4 @@
-/* Copyright 2010-2024 Free Software Foundation, Inc.
+/* Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/pr11465.exp b/gdb/testsuite/gdb.dwarf2/pr11465.exp
index 5573c71..cf99fa0 100644
--- a/gdb/testsuite/gdb.dwarf2/pr11465.exp
+++ b/gdb/testsuite/gdb.dwarf2/pr11465.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/pr13961.S b/gdb/testsuite/gdb.dwarf2/pr13961.S
index 2423ee9..46088ba 100644
--- a/gdb/testsuite/gdb.dwarf2/pr13961.S
+++ b/gdb/testsuite/gdb.dwarf2/pr13961.S
@@ -1,4 +1,4 @@
-/* Copyright 2012-2024 Free Software Foundation, Inc.
+/* Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/pr13961.exp b/gdb/testsuite/gdb.dwarf2/pr13961.exp
index e4ea9d0..991ec65 100644
--- a/gdb/testsuite/gdb.dwarf2/pr13961.exp
+++ b/gdb/testsuite/gdb.dwarf2/pr13961.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/rnglists-multiple-cus.exp b/gdb/testsuite/gdb.dwarf2/rnglists-multiple-cus.exp
index 21161eb..0545b35 100644
--- a/gdb/testsuite/gdb.dwarf2/rnglists-multiple-cus.exp
+++ b/gdb/testsuite/gdb.dwarf2/rnglists-multiple-cus.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/rnglists-sec-offset.exp b/gdb/testsuite/gdb.dwarf2/rnglists-sec-offset.exp
index 41c0397..7c65dcd 100644
--- a/gdb/testsuite/gdb.dwarf2/rnglists-sec-offset.exp
+++ b/gdb/testsuite/gdb.dwarf2/rnglists-sec-offset.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/rust-enum.exp b/gdb/testsuite/gdb.dwarf2/rust-enum.exp
index 3bd892c..89d4a16 100644
--- a/gdb/testsuite/gdb.dwarf2/rust-enum.exp
+++ b/gdb/testsuite/gdb.dwarf2/rust-enum.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/self-spec.exp b/gdb/testsuite/gdb.dwarf2/self-spec.exp
index 6ed3cf3..2136623 100644
--- a/gdb/testsuite/gdb.dwarf2/self-spec.exp
+++ b/gdb/testsuite/gdb.dwarf2/self-spec.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/short-build-id.exp b/gdb/testsuite/gdb.dwarf2/short-build-id.exp
index f40d5e4..51c6cef 100644
--- a/gdb/testsuite/gdb.dwarf2/short-build-id.exp
+++ b/gdb/testsuite/gdb.dwarf2/short-build-id.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/shortpiece.exp b/gdb/testsuite/gdb.dwarf2/shortpiece.exp
index 4fcdfca..c9bf490 100644
--- a/gdb/testsuite/gdb.dwarf2/shortpiece.exp
+++ b/gdb/testsuite/gdb.dwarf2/shortpiece.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/static-optimized-out.exp b/gdb/testsuite/gdb.dwarf2/static-optimized-out.exp
index 00fbfa2..6be8283 100644
--- a/gdb/testsuite/gdb.dwarf2/static-optimized-out.exp
+++ b/gdb/testsuite/gdb.dwarf2/static-optimized-out.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/staticvirtual.exp b/gdb/testsuite/gdb.dwarf2/staticvirtual.exp
index 6757bb3..e04c500 100644
--- a/gdb/testsuite/gdb.dwarf2/staticvirtual.exp
+++ b/gdb/testsuite/gdb.dwarf2/staticvirtual.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/struct-decl.exp b/gdb/testsuite/gdb.dwarf2/struct-decl.exp
index 912a3c8..e389216 100644
--- a/gdb/testsuite/gdb.dwarf2/struct-decl.exp
+++ b/gdb/testsuite/gdb.dwarf2/struct-decl.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/struct-with-sig-2.exp b/gdb/testsuite/gdb.dwarf2/struct-with-sig-2.exp
index 00af725..02a492d 100644
--- a/gdb/testsuite/gdb.dwarf2/struct-with-sig-2.exp
+++ b/gdb/testsuite/gdb.dwarf2/struct-with-sig-2.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/struct-with-sig.exp b/gdb/testsuite/gdb.dwarf2/struct-with-sig.exp
index 57a2c2f..9861327 100644
--- a/gdb/testsuite/gdb.dwarf2/struct-with-sig.exp
+++ b/gdb/testsuite/gdb.dwarf2/struct-with-sig.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/subrange-enum.exp b/gdb/testsuite/gdb.dwarf2/subrange-enum.exp
index 416c87a..9df5774 100644
--- a/gdb/testsuite/gdb.dwarf2/subrange-enum.exp
+++ b/gdb/testsuite/gdb.dwarf2/subrange-enum.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/subrange.exp b/gdb/testsuite/gdb.dwarf2/subrange.exp
index d384fb6..2cc7472 100644
--- a/gdb/testsuite/gdb.dwarf2/subrange.exp
+++ b/gdb/testsuite/gdb.dwarf2/subrange.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/symbol_needs_eval.c b/gdb/testsuite/gdb.dwarf2/symbol_needs_eval.c
index 0d64305..f22418c 100644
--- a/gdb/testsuite/gdb.dwarf2/symbol_needs_eval.c
+++ b/gdb/testsuite/gdb.dwarf2/symbol_needs_eval.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/symbol_needs_eval_fail.exp b/gdb/testsuite/gdb.dwarf2/symbol_needs_eval_fail.exp
index f7aed74..e69d9b4 100644
--- a/gdb/testsuite/gdb.dwarf2/symbol_needs_eval_fail.exp
+++ b/gdb/testsuite/gdb.dwarf2/symbol_needs_eval_fail.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/symbol_needs_eval_timeout.exp b/gdb/testsuite/gdb.dwarf2/symbol_needs_eval_timeout.exp
index d8a27b6..a6773d5 100644
--- a/gdb/testsuite/gdb.dwarf2/symbol_needs_eval_timeout.exp
+++ b/gdb/testsuite/gdb.dwarf2/symbol_needs_eval_timeout.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/symtab-producer.exp b/gdb/testsuite/gdb.dwarf2/symtab-producer.exp
index ac16c95..1734a77 100644
--- a/gdb/testsuite/gdb.dwarf2/symtab-producer.exp
+++ b/gdb/testsuite/gdb.dwarf2/symtab-producer.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/template-specification-full-name.exp b/gdb/testsuite/gdb.dwarf2/template-specification-full-name.exp
index c1656fe..60b49a5 100644
--- a/gdb/testsuite/gdb.dwarf2/template-specification-full-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/template-specification-full-name.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/trace-crash.exp b/gdb/testsuite/gdb.dwarf2/trace-crash.exp
index 0aa098b..4f6a944 100644
--- a/gdb/testsuite/gdb.dwarf2/trace-crash.exp
+++ b/gdb/testsuite/gdb.dwarf2/trace-crash.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/typeddwarf-amd64.S b/gdb/testsuite/gdb.dwarf2/typeddwarf-amd64.S
index d088c03..0743827 100644
--- a/gdb/testsuite/gdb.dwarf2/typeddwarf-amd64.S
+++ b/gdb/testsuite/gdb.dwarf2/typeddwarf-amd64.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/typeddwarf.S b/gdb/testsuite/gdb.dwarf2/typeddwarf.S
index 98a9107..7f440cd 100644
--- a/gdb/testsuite/gdb.dwarf2/typeddwarf.S
+++ b/gdb/testsuite/gdb.dwarf2/typeddwarf.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/typeddwarf.exp b/gdb/testsuite/gdb.dwarf2/typeddwarf.exp
index 73088c9..1135709 100644
--- a/gdb/testsuite/gdb.dwarf2/typeddwarf.exp
+++ b/gdb/testsuite/gdb.dwarf2/typeddwarf.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/typedef-void-finish.exp b/gdb/testsuite/gdb.dwarf2/typedef-void-finish.exp
index 019c10a..e59286d 100644
--- a/gdb/testsuite/gdb.dwarf2/typedef-void-finish.exp
+++ b/gdb/testsuite/gdb.dwarf2/typedef-void-finish.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/utf-rust.exp b/gdb/testsuite/gdb.dwarf2/utf-rust.exp
index 61ae4272..3380f8d 100644
--- a/gdb/testsuite/gdb.dwarf2/utf-rust.exp
+++ b/gdb/testsuite/gdb.dwarf2/utf-rust.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/valop.S b/gdb/testsuite/gdb.dwarf2/valop.S
index e9d4d47..37cdd49 100644
--- a/gdb/testsuite/gdb.dwarf2/valop.S
+++ b/gdb/testsuite/gdb.dwarf2/valop.S
@@ -1,5 +1,5 @@
/*
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/valop.exp b/gdb/testsuite/gdb.dwarf2/valop.exp
index 6632769..5de7f4e 100644
--- a/gdb/testsuite/gdb.dwarf2/valop.exp
+++ b/gdb/testsuite/gdb.dwarf2/valop.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/var-access.c b/gdb/testsuite/gdb.dwarf2/var-access.c
index f557726..7058703 100644
--- a/gdb/testsuite/gdb.dwarf2/var-access.c
+++ b/gdb/testsuite/gdb.dwarf2/var-access.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/var-access.exp b/gdb/testsuite/gdb.dwarf2/var-access.exp
index 3a7bd70..347d276 100644
--- a/gdb/testsuite/gdb.dwarf2/var-access.exp
+++ b/gdb/testsuite/gdb.dwarf2/var-access.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/variant.c b/gdb/testsuite/gdb.dwarf2/variant.c
index 33a8a82..3ebfb17 100644
--- a/gdb/testsuite/gdb.dwarf2/variant.c
+++ b/gdb/testsuite/gdb.dwarf2/variant.c
@@ -1,4 +1,4 @@
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/variant.exp b/gdb/testsuite/gdb.dwarf2/variant.exp
index cf6bc53..ce504f2 100644
--- a/gdb/testsuite/gdb.dwarf2/variant.exp
+++ b/gdb/testsuite/gdb.dwarf2/variant.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/varval.c b/gdb/testsuite/gdb.dwarf2/varval.c
index f42e917..8e0050b 100644
--- a/gdb/testsuite/gdb.dwarf2/varval.c
+++ b/gdb/testsuite/gdb.dwarf2/varval.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/varval.exp b/gdb/testsuite/gdb.dwarf2/varval.exp
index 5c4af78..0693f43 100644
--- a/gdb/testsuite/gdb.dwarf2/varval.exp
+++ b/gdb/testsuite/gdb.dwarf2/varval.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/void-type.c b/gdb/testsuite/gdb.dwarf2/void-type.c
index 4b4241e..7c6a793 100644
--- a/gdb/testsuite/gdb.dwarf2/void-type.c
+++ b/gdb/testsuite/gdb.dwarf2/void-type.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.dwarf2/void-type.exp b/gdb/testsuite/gdb.dwarf2/void-type.exp
index c0adcc4..64bebe1 100644
--- a/gdb/testsuite/gdb.dwarf2/void-type.exp
+++ b/gdb/testsuite/gdb.dwarf2/void-type.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/watch-notconst.c b/gdb/testsuite/gdb.dwarf2/watch-notconst.c
index a174073..e1a5799 100644
--- a/gdb/testsuite/gdb.dwarf2/watch-notconst.c
+++ b/gdb/testsuite/gdb.dwarf2/watch-notconst.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/watch-notconst.exp b/gdb/testsuite/gdb.dwarf2/watch-notconst.exp
index e836858..e1ec87c 100644
--- a/gdb/testsuite/gdb.dwarf2/watch-notconst.exp
+++ b/gdb/testsuite/gdb.dwarf2/watch-notconst.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/watch-notconst2.S b/gdb/testsuite/gdb.dwarf2/watch-notconst2.S
index 3bb84b0..ca41de5 100644
--- a/gdb/testsuite/gdb.dwarf2/watch-notconst2.S
+++ b/gdb/testsuite/gdb.dwarf2/watch-notconst2.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.dwarf2/watch-notconst2.c b/gdb/testsuite/gdb.dwarf2/watch-notconst2.c
index 6541ddd..3c3b01e 100644
--- a/gdb/testsuite/gdb.dwarf2/watch-notconst2.c
+++ b/gdb/testsuite/gdb.dwarf2/watch-notconst2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/allocated.exp b/gdb/testsuite/gdb.fortran/allocated.exp
index 1d87bf7..a000b6e 100644
--- a/gdb/testsuite/gdb.fortran/allocated.exp
+++ b/gdb/testsuite/gdb.fortran/allocated.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/allocated.f90 b/gdb/testsuite/gdb.fortran/allocated.f90
index 5340970..537ad07 100644
--- a/gdb/testsuite/gdb.fortran/allocated.f90
+++ b/gdb/testsuite/gdb.fortran/allocated.f90
@@ -1,4 +1,4 @@
-! Copyright 2021-2024 Free Software Foundation, Inc.
+! Copyright 2021-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/array-bounds-high.exp b/gdb/testsuite/gdb.fortran/array-bounds-high.exp
index 7e9c43b..6f9e7dc 100644
--- a/gdb/testsuite/gdb.fortran/array-bounds-high.exp
+++ b/gdb/testsuite/gdb.fortran/array-bounds-high.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/array-bounds-high.f90 b/gdb/testsuite/gdb.fortran/array-bounds-high.f90
index 4d327a4..655eacc 100644
--- a/gdb/testsuite/gdb.fortran/array-bounds-high.f90
+++ b/gdb/testsuite/gdb.fortran/array-bounds-high.f90
@@ -1,4 +1,4 @@
-! Copyright 2020-2024 Free Software Foundation, Inc.
+! Copyright 2020-2025 Free Software Foundation, Inc.
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/array-bounds.exp b/gdb/testsuite/gdb.fortran/array-bounds.exp
index 46ee614..fb8ee86 100644
--- a/gdb/testsuite/gdb.fortran/array-bounds.exp
+++ b/gdb/testsuite/gdb.fortran/array-bounds.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/array-bounds.f90 b/gdb/testsuite/gdb.fortran/array-bounds.f90
index 74b2f56..ad38998 100644
--- a/gdb/testsuite/gdb.fortran/array-bounds.f90
+++ b/gdb/testsuite/gdb.fortran/array-bounds.f90
@@ -1,4 +1,4 @@
-! Copyright 2012-2024 Free Software Foundation, Inc.
+! Copyright 2012-2025 Free Software Foundation, Inc.
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/array-element.exp b/gdb/testsuite/gdb.fortran/array-element.exp
index 65499aa..7a57955 100644
--- a/gdb/testsuite/gdb.fortran/array-element.exp
+++ b/gdb/testsuite/gdb.fortran/array-element.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/array-element.f b/gdb/testsuite/gdb.fortran/array-element.f
index 909e472..bb19975 100644
--- a/gdb/testsuite/gdb.fortran/array-element.f
+++ b/gdb/testsuite/gdb.fortran/array-element.f
@@ -1,4 +1,4 @@
-c Copyright 2005-2024 Free Software Foundation, Inc.
+c Copyright 2005-2025 Free Software Foundation, Inc.
c This program is free software; you can redistribute it and/or modify
c it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/array-indices.exp b/gdb/testsuite/gdb.fortran/array-indices.exp
index 0fb0080..66e5316 100644
--- a/gdb/testsuite/gdb.fortran/array-indices.exp
+++ b/gdb/testsuite/gdb.fortran/array-indices.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/array-no-bounds.exp b/gdb/testsuite/gdb.fortran/array-no-bounds.exp
index 09db081..778d555 100644
--- a/gdb/testsuite/gdb.fortran/array-no-bounds.exp
+++ b/gdb/testsuite/gdb.fortran/array-no-bounds.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/array-no-bounds.f90 b/gdb/testsuite/gdb.fortran/array-no-bounds.f90
index 6b253ce..bd791a3 100644
--- a/gdb/testsuite/gdb.fortran/array-no-bounds.f90
+++ b/gdb/testsuite/gdb.fortran/array-no-bounds.f90
@@ -1,4 +1,4 @@
-! Copyright 2021-2024 Free Software Foundation, Inc.
+! Copyright 2021-2025 Free Software Foundation, Inc.
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/array-repeat.exp b/gdb/testsuite/gdb.fortran/array-repeat.exp
index 1a7c013..6c34847 100644
--- a/gdb/testsuite/gdb.fortran/array-repeat.exp
+++ b/gdb/testsuite/gdb.fortran/array-repeat.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/array-repeat.f90 b/gdb/testsuite/gdb.fortran/array-repeat.f90
index a655b19..b5551ac 100644
--- a/gdb/testsuite/gdb.fortran/array-repeat.f90
+++ b/gdb/testsuite/gdb.fortran/array-repeat.f90
@@ -1,4 +1,4 @@
-! Copyright 2022-2024 Free Software Foundation, Inc.
+! Copyright 2022-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/array-slices-bad.exp b/gdb/testsuite/gdb.fortran/array-slices-bad.exp
index ac4a77d..c3c6766 100644
--- a/gdb/testsuite/gdb.fortran/array-slices-bad.exp
+++ b/gdb/testsuite/gdb.fortran/array-slices-bad.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/array-slices-bad.f90 b/gdb/testsuite/gdb.fortran/array-slices-bad.f90
index 49d054c..a32140b 100644
--- a/gdb/testsuite/gdb.fortran/array-slices-bad.f90
+++ b/gdb/testsuite/gdb.fortran/array-slices-bad.f90
@@ -1,4 +1,4 @@
-! Copyright 2020-2024 Free Software Foundation, Inc.
+! Copyright 2020-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/array-slices-repeat.f90 b/gdb/testsuite/gdb.fortran/array-slices-repeat.f90
index 3f8d77a..8274dec 100644
--- a/gdb/testsuite/gdb.fortran/array-slices-repeat.f90
+++ b/gdb/testsuite/gdb.fortran/array-slices-repeat.f90
@@ -1,4 +1,4 @@
-! Copyright 2022-2024 Free Software Foundation, Inc.
+! Copyright 2022-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/array-slices-sub-slices.exp b/gdb/testsuite/gdb.fortran/array-slices-sub-slices.exp
index 5a0f040..8c19c85 100644
--- a/gdb/testsuite/gdb.fortran/array-slices-sub-slices.exp
+++ b/gdb/testsuite/gdb.fortran/array-slices-sub-slices.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/array-slices-sub-slices.f90 b/gdb/testsuite/gdb.fortran/array-slices-sub-slices.f90
index 6642346..e26eb7d 100644
--- a/gdb/testsuite/gdb.fortran/array-slices-sub-slices.f90
+++ b/gdb/testsuite/gdb.fortran/array-slices-sub-slices.f90
@@ -1,4 +1,4 @@
-! Copyright 2020-2024 Free Software Foundation, Inc.
+! Copyright 2020-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/array-slices.exp b/gdb/testsuite/gdb.fortran/array-slices.exp
index 1fa6a5d..b1e3dad 100644
--- a/gdb/testsuite/gdb.fortran/array-slices.exp
+++ b/gdb/testsuite/gdb.fortran/array-slices.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/array-slices.f90 b/gdb/testsuite/gdb.fortran/array-slices.f90
index 93a3a8e..7b84376 100644
--- a/gdb/testsuite/gdb.fortran/array-slices.f90
+++ b/gdb/testsuite/gdb.fortran/array-slices.f90
@@ -1,4 +1,4 @@
-! Copyright 2019-2024 Free Software Foundation, Inc.
+! Copyright 2019-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/associated.exp b/gdb/testsuite/gdb.fortran/associated.exp
index d401912..c900ce7 100644
--- a/gdb/testsuite/gdb.fortran/associated.exp
+++ b/gdb/testsuite/gdb.fortran/associated.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/associated.f90 b/gdb/testsuite/gdb.fortran/associated.f90
index 1c5a168..d13ac40 100644
--- a/gdb/testsuite/gdb.fortran/associated.f90
+++ b/gdb/testsuite/gdb.fortran/associated.f90
@@ -1,4 +1,4 @@
-! Copyright 2021-2024 Free Software Foundation, Inc.
+! Copyright 2021-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/assumedrank.exp b/gdb/testsuite/gdb.fortran/assumedrank.exp
index 32fd9d2..159608f 100644
--- a/gdb/testsuite/gdb.fortran/assumedrank.exp
+++ b/gdb/testsuite/gdb.fortran/assumedrank.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/assumedrank.f90 b/gdb/testsuite/gdb.fortran/assumedrank.f90
index dc656ef..a27b137 100644
--- a/gdb/testsuite/gdb.fortran/assumedrank.f90
+++ b/gdb/testsuite/gdb.fortran/assumedrank.f90
@@ -1,4 +1,4 @@
-! Copyright 2021-2024 Free Software Foundation, Inc.
+! Copyright 2021-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/backtrace.exp b/gdb/testsuite/gdb.fortran/backtrace.exp
index 5679b61..51f11db 100644
--- a/gdb/testsuite/gdb.fortran/backtrace.exp
+++ b/gdb/testsuite/gdb.fortran/backtrace.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/backtrace.f90 b/gdb/testsuite/gdb.fortran/backtrace.f90
index 0265c04..ff09b00 100644
--- a/gdb/testsuite/gdb.fortran/backtrace.f90
+++ b/gdb/testsuite/gdb.fortran/backtrace.f90
@@ -1,4 +1,4 @@
-! Copyright 2023-2024 Free Software Foundation, Inc.
+! Copyright 2023-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/block-data.exp b/gdb/testsuite/gdb.fortran/block-data.exp
index dcec475..4aae8c4 100644
--- a/gdb/testsuite/gdb.fortran/block-data.exp
+++ b/gdb/testsuite/gdb.fortran/block-data.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/block-data.f b/gdb/testsuite/gdb.fortran/block-data.f
index da383dc..5952f56 100644
--- a/gdb/testsuite/gdb.fortran/block-data.f
+++ b/gdb/testsuite/gdb.fortran/block-data.f
@@ -1,4 +1,4 @@
-! Copyright 2016-2024 Free Software Foundation, Inc.
+! Copyright 2016-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/call-no-debug-func.f90 b/gdb/testsuite/gdb.fortran/call-no-debug-func.f90
index 6098ab3..2f276b4 100644
--- a/gdb/testsuite/gdb.fortran/call-no-debug-func.f90
+++ b/gdb/testsuite/gdb.fortran/call-no-debug-func.f90
@@ -1,4 +1,4 @@
-! Copyright 2020-2024 Free Software Foundation, Inc.
+! Copyright 2020-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/call-no-debug-prog.f90 b/gdb/testsuite/gdb.fortran/call-no-debug-prog.f90
index 5fb08ed..a1d9328 100644
--- a/gdb/testsuite/gdb.fortran/call-no-debug-prog.f90
+++ b/gdb/testsuite/gdb.fortran/call-no-debug-prog.f90
@@ -1,4 +1,4 @@
-! Copyright 2020-2024 Free Software Foundation, Inc.
+! Copyright 2020-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/call-no-debug.exp b/gdb/testsuite/gdb.fortran/call-no-debug.exp
index 5707444..1b158c4 100644
--- a/gdb/testsuite/gdb.fortran/call-no-debug.exp
+++ b/gdb/testsuite/gdb.fortran/call-no-debug.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/charset.exp b/gdb/testsuite/gdb.fortran/charset.exp
index b0cb711..0f5ee3d 100644
--- a/gdb/testsuite/gdb.fortran/charset.exp
+++ b/gdb/testsuite/gdb.fortran/charset.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/class-allocatable-array.exp b/gdb/testsuite/gdb.fortran/class-allocatable-array.exp
index 1a2f78d..241cc83 100644
--- a/gdb/testsuite/gdb.fortran/class-allocatable-array.exp
+++ b/gdb/testsuite/gdb.fortran/class-allocatable-array.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/class-allocatable-array.f90 b/gdb/testsuite/gdb.fortran/class-allocatable-array.f90
index f08296e..3cdbde0 100644
--- a/gdb/testsuite/gdb.fortran/class-allocatable-array.f90
+++ b/gdb/testsuite/gdb.fortran/class-allocatable-array.f90
@@ -1,4 +1,4 @@
-! Copyright 2020-2024 Free Software Foundation, Inc.
+! Copyright 2020-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/common-block.exp b/gdb/testsuite/gdb.fortran/common-block.exp
index 889f730..6f3e55d 100644
--- a/gdb/testsuite/gdb.fortran/common-block.exp
+++ b/gdb/testsuite/gdb.fortran/common-block.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/common-block.f90 b/gdb/testsuite/gdb.fortran/common-block.f90
index 8296d76..2335870 100644
--- a/gdb/testsuite/gdb.fortran/common-block.f90
+++ b/gdb/testsuite/gdb.fortran/common-block.f90
@@ -1,4 +1,4 @@
-! Copyright 2008-2024 Free Software Foundation, Inc.
+! Copyright 2008-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/completion.exp b/gdb/testsuite/gdb.fortran/completion.exp
index fabcc54..0961207 100644
--- a/gdb/testsuite/gdb.fortran/completion.exp
+++ b/gdb/testsuite/gdb.fortran/completion.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/completion.f90 b/gdb/testsuite/gdb.fortran/completion.f90
index 2bfda3a..596adf2 100644
--- a/gdb/testsuite/gdb.fortran/completion.f90
+++ b/gdb/testsuite/gdb.fortran/completion.f90
@@ -1,4 +1,4 @@
-! Copyright 2020-2024 Free Software Foundation, Inc.
+! Copyright 2020-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/complex.exp b/gdb/testsuite/gdb.fortran/complex.exp
index 33f88aa..5f416bf 100644
--- a/gdb/testsuite/gdb.fortran/complex.exp
+++ b/gdb/testsuite/gdb.fortran/complex.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/complex.f90 b/gdb/testsuite/gdb.fortran/complex.f90
index 4a33ef6..a154137 100644
--- a/gdb/testsuite/gdb.fortran/complex.f90
+++ b/gdb/testsuite/gdb.fortran/complex.f90
@@ -1,4 +1,4 @@
-! Copyright 2007-2024 Free Software Foundation, Inc.
+! Copyright 2007-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/debug-expr.exp b/gdb/testsuite/gdb.fortran/debug-expr.exp
index cd32819..6e84b24 100644
--- a/gdb/testsuite/gdb.fortran/debug-expr.exp
+++ b/gdb/testsuite/gdb.fortran/debug-expr.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/debug-expr.f90 b/gdb/testsuite/gdb.fortran/debug-expr.f90
index 1de872b..5b6feb3 100644
--- a/gdb/testsuite/gdb.fortran/debug-expr.f90
+++ b/gdb/testsuite/gdb.fortran/debug-expr.f90
@@ -1,4 +1,4 @@
-! Copyright 2020-2024 Free Software Foundation, Inc.
+! Copyright 2020-2025 Free Software Foundation, Inc.
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/derived-type-function.exp b/gdb/testsuite/gdb.fortran/derived-type-function.exp
index 9f09c98..0ead0dc 100644
--- a/gdb/testsuite/gdb.fortran/derived-type-function.exp
+++ b/gdb/testsuite/gdb.fortran/derived-type-function.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/derived-type-function.f90 b/gdb/testsuite/gdb.fortran/derived-type-function.f90
index bb5c57d..d5c8d29 100644
--- a/gdb/testsuite/gdb.fortran/derived-type-function.f90
+++ b/gdb/testsuite/gdb.fortran/derived-type-function.f90
@@ -1,4 +1,4 @@
-! Copyright 2016-2024 Free Software Foundation, Inc.
+! Copyright 2016-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/derived-type-striding.exp b/gdb/testsuite/gdb.fortran/derived-type-striding.exp
index 8354af1..86220b3 100644
--- a/gdb/testsuite/gdb.fortran/derived-type-striding.exp
+++ b/gdb/testsuite/gdb.fortran/derived-type-striding.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/derived-type-striding.f90 b/gdb/testsuite/gdb.fortran/derived-type-striding.f90
index 7dfe1fa..c869cb5 100644
--- a/gdb/testsuite/gdb.fortran/derived-type-striding.f90
+++ b/gdb/testsuite/gdb.fortran/derived-type-striding.f90
@@ -1,4 +1,4 @@
-! Copyright 2019-2024 Free Software Foundation, Inc.
+! Copyright 2019-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/derived-type.exp b/gdb/testsuite/gdb.fortran/derived-type.exp
index bd7c3ae..619c0e4 100644
--- a/gdb/testsuite/gdb.fortran/derived-type.exp
+++ b/gdb/testsuite/gdb.fortran/derived-type.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/derived-type.f90 b/gdb/testsuite/gdb.fortran/derived-type.f90
index 97fbc5c..6bcbaa8 100644
--- a/gdb/testsuite/gdb.fortran/derived-type.f90
+++ b/gdb/testsuite/gdb.fortran/derived-type.f90
@@ -1,4 +1,4 @@
-! Copyright 2006-2024 Free Software Foundation, Inc.
+! Copyright 2006-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/dot-ops.exp b/gdb/testsuite/gdb.fortran/dot-ops.exp
index 8b37843..83f47f1 100644
--- a/gdb/testsuite/gdb.fortran/dot-ops.exp
+++ b/gdb/testsuite/gdb.fortran/dot-ops.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/dynamic-ptype-whatis.exp b/gdb/testsuite/gdb.fortran/dynamic-ptype-whatis.exp
index e5fefe0..0bd0c26 100644
--- a/gdb/testsuite/gdb.fortran/dynamic-ptype-whatis.exp
+++ b/gdb/testsuite/gdb.fortran/dynamic-ptype-whatis.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/dynamic-ptype-whatis.f90 b/gdb/testsuite/gdb.fortran/dynamic-ptype-whatis.f90
index 00835ea..4d7cd09 100644
--- a/gdb/testsuite/gdb.fortran/dynamic-ptype-whatis.f90
+++ b/gdb/testsuite/gdb.fortran/dynamic-ptype-whatis.f90
@@ -1,4 +1,4 @@
-! Copyright 2021-2024 Free Software Foundation, Inc.
+! Copyright 2021-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/empty-string.exp b/gdb/testsuite/gdb.fortran/empty-string.exp
index a428eab..531af45 100644
--- a/gdb/testsuite/gdb.fortran/empty-string.exp
+++ b/gdb/testsuite/gdb.fortran/empty-string.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/empty-string.f90 b/gdb/testsuite/gdb.fortran/empty-string.f90
index 1037cc9..e907378 100644
--- a/gdb/testsuite/gdb.fortran/empty-string.f90
+++ b/gdb/testsuite/gdb.fortran/empty-string.f90
@@ -1,4 +1,4 @@
-! Copyright 2022-2024 Free Software Foundation, Inc.
+! Copyright 2022-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/entry-point.exp b/gdb/testsuite/gdb.fortran/entry-point.exp
index 51550ad..650b9ef 100644
--- a/gdb/testsuite/gdb.fortran/entry-point.exp
+++ b/gdb/testsuite/gdb.fortran/entry-point.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/entry-point.f90 b/gdb/testsuite/gdb.fortran/entry-point.f90
index 1b5e5cd..6d85910 100644
--- a/gdb/testsuite/gdb.fortran/entry-point.f90
+++ b/gdb/testsuite/gdb.fortran/entry-point.f90
@@ -1,4 +1,4 @@
-! Copyright 2023-2024 Free Software Foundation, Inc.
+! Copyright 2023-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/exprs.exp b/gdb/testsuite/gdb.fortran/exprs.exp
index 6447530..72efb56 100644
--- a/gdb/testsuite/gdb.fortran/exprs.exp
+++ b/gdb/testsuite/gdb.fortran/exprs.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1994-2024 Free Software Foundation, Inc.
+# Copyright (C) 1994-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/function-calls.exp b/gdb/testsuite/gdb.fortran/function-calls.exp
index e0b35d6..405a1a1 100644
--- a/gdb/testsuite/gdb.fortran/function-calls.exp
+++ b/gdb/testsuite/gdb.fortran/function-calls.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/function-calls.f90 b/gdb/testsuite/gdb.fortran/function-calls.f90
index 050ad6b..16d6f6a 100644
--- a/gdb/testsuite/gdb.fortran/function-calls.f90
+++ b/gdb/testsuite/gdb.fortran/function-calls.f90
@@ -1,4 +1,4 @@
-! Copyright 2019-2024 Free Software Foundation, Inc.
+! Copyright 2019-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/huge.F90 b/gdb/testsuite/gdb.fortran/huge.F90
index 3fb7577..2d36f2b 100644
--- a/gdb/testsuite/gdb.fortran/huge.F90
+++ b/gdb/testsuite/gdb.fortran/huge.F90
@@ -1,4 +1,4 @@
-! Copyright 2023-2024 Free Software Foundation, Inc.
+! Copyright 2023-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/huge.exp b/gdb/testsuite/gdb.fortran/huge.exp
index 78c1d52..35bc6c8 100644
--- a/gdb/testsuite/gdb.fortran/huge.exp
+++ b/gdb/testsuite/gdb.fortran/huge.exp
@@ -1,4 +1,4 @@
-# Copyright 2001-2024 Free Software Foundation, Inc.
+# Copyright 2001-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/info-main.exp b/gdb/testsuite/gdb.fortran/info-main.exp
index 7d11235b..4178886 100644
--- a/gdb/testsuite/gdb.fortran/info-main.exp
+++ b/gdb/testsuite/gdb.fortran/info-main.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/info-main.f90 b/gdb/testsuite/gdb.fortran/info-main.f90
index 46f6af3..5243c9e 100644
--- a/gdb/testsuite/gdb.fortran/info-main.f90
+++ b/gdb/testsuite/gdb.fortran/info-main.f90
@@ -1,4 +1,4 @@
-! Copyright 2023-2024 Free Software Foundation, Inc.
+! Copyright 2023-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/info-modules.exp b/gdb/testsuite/gdb.fortran/info-modules.exp
index c8ae736..5fc86b9 100644
--- a/gdb/testsuite/gdb.fortran/info-modules.exp
+++ b/gdb/testsuite/gdb.fortran/info-modules.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/info-types-2.f90 b/gdb/testsuite/gdb.fortran/info-types-2.f90
index fb9438b..67d0f18 100644
--- a/gdb/testsuite/gdb.fortran/info-types-2.f90
+++ b/gdb/testsuite/gdb.fortran/info-types-2.f90
@@ -1,4 +1,4 @@
-! Copyright 2019-2024 Free Software Foundation, Inc.
+! Copyright 2019-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/info-types.exp b/gdb/testsuite/gdb.fortran/info-types.exp
index ad2c988..dc3d35a 100644
--- a/gdb/testsuite/gdb.fortran/info-types.exp
+++ b/gdb/testsuite/gdb.fortran/info-types.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/info-types.f90 b/gdb/testsuite/gdb.fortran/info-types.f90
index 3f6cba8..448bc09 100644
--- a/gdb/testsuite/gdb.fortran/info-types.f90
+++ b/gdb/testsuite/gdb.fortran/info-types.f90
@@ -1,4 +1,4 @@
-! Copyright 2019-2024 Free Software Foundation, Inc.
+! Copyright 2019-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/intrinsic-precedence.c b/gdb/testsuite/gdb.fortran/intrinsic-precedence.c
index 6a839c7..6664e8f 100644
--- a/gdb/testsuite/gdb.fortran/intrinsic-precedence.c
+++ b/gdb/testsuite/gdb.fortran/intrinsic-precedence.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/intrinsic-precedence.exp b/gdb/testsuite/gdb.fortran/intrinsic-precedence.exp
index cb37a9a..02f5ff3 100644
--- a/gdb/testsuite/gdb.fortran/intrinsic-precedence.exp
+++ b/gdb/testsuite/gdb.fortran/intrinsic-precedence.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/intrinsic-precedence.f90 b/gdb/testsuite/gdb.fortran/intrinsic-precedence.f90
index c43853c..c4f1052 100644
--- a/gdb/testsuite/gdb.fortran/intrinsic-precedence.f90
+++ b/gdb/testsuite/gdb.fortran/intrinsic-precedence.f90
@@ -1,4 +1,4 @@
-! Copyright 2023-2024 Free Software Foundation, Inc.
+! Copyright 2023-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/intrinsics.exp b/gdb/testsuite/gdb.fortran/intrinsics.exp
index 060bb53..a195256 100644
--- a/gdb/testsuite/gdb.fortran/intrinsics.exp
+++ b/gdb/testsuite/gdb.fortran/intrinsics.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/intrinsics.f90 b/gdb/testsuite/gdb.fortran/intrinsics.f90
index 4c4b4c9..8a810d2 100644
--- a/gdb/testsuite/gdb.fortran/intrinsics.f90
+++ b/gdb/testsuite/gdb.fortran/intrinsics.f90
@@ -1,4 +1,4 @@
-! Copyright 2019-2024 Free Software Foundation, Inc.
+! Copyright 2019-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/intvar-array.exp b/gdb/testsuite/gdb.fortran/intvar-array.exp
index 2e2f7f9..68b674c 100644
--- a/gdb/testsuite/gdb.fortran/intvar-array.exp
+++ b/gdb/testsuite/gdb.fortran/intvar-array.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/intvar-array.f90 b/gdb/testsuite/gdb.fortran/intvar-array.f90
index 9734655..3877833 100644
--- a/gdb/testsuite/gdb.fortran/intvar-array.f90
+++ b/gdb/testsuite/gdb.fortran/intvar-array.f90
@@ -1,4 +1,4 @@
-! Copyright 2021-2024 Free Software Foundation, Inc.
+! Copyright 2021-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/intvar-dynamic-types.exp b/gdb/testsuite/gdb.fortran/intvar-dynamic-types.exp
index e56e24e..b28bf5c 100644
--- a/gdb/testsuite/gdb.fortran/intvar-dynamic-types.exp
+++ b/gdb/testsuite/gdb.fortran/intvar-dynamic-types.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/intvar-dynamic-types.f90 b/gdb/testsuite/gdb.fortran/intvar-dynamic-types.f90
index 1511e57..b96dfc6 100644
--- a/gdb/testsuite/gdb.fortran/intvar-dynamic-types.f90
+++ b/gdb/testsuite/gdb.fortran/intvar-dynamic-types.f90
@@ -1,4 +1,4 @@
-! Copyright 2020-2024 Free Software Foundation, Inc.
+! Copyright 2020-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/lbound-ubound.F90 b/gdb/testsuite/gdb.fortran/lbound-ubound.F90
index 3b93031..cd11b43 100644
--- a/gdb/testsuite/gdb.fortran/lbound-ubound.F90
+++ b/gdb/testsuite/gdb.fortran/lbound-ubound.F90
@@ -1,4 +1,4 @@
-! Copyright 2021-2024 Free Software Foundation, Inc.
+! Copyright 2021-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/lbound-ubound.exp b/gdb/testsuite/gdb.fortran/lbound-ubound.exp
index 781d361..f8e256c 100644
--- a/gdb/testsuite/gdb.fortran/lbound-ubound.exp
+++ b/gdb/testsuite/gdb.fortran/lbound-ubound.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/library-module-lib.f90 b/gdb/testsuite/gdb.fortran/library-module-lib.f90
index 6bfb521..e50df77 100644
--- a/gdb/testsuite/gdb.fortran/library-module-lib.f90
+++ b/gdb/testsuite/gdb.fortran/library-module-lib.f90
@@ -1,4 +1,4 @@
-! Copyright 2010-2024 Free Software Foundation, Inc.
+! Copyright 2010-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/library-module-main.f90 b/gdb/testsuite/gdb.fortran/library-module-main.f90
index 0a61aca..c7d8b84 100644
--- a/gdb/testsuite/gdb.fortran/library-module-main.f90
+++ b/gdb/testsuite/gdb.fortran/library-module-main.f90
@@ -1,4 +1,4 @@
-! Copyright 2010-2024 Free Software Foundation, Inc.
+! Copyright 2010-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/library-module.exp b/gdb/testsuite/gdb.fortran/library-module.exp
index 647bcef..ec35ef1 100644
--- a/gdb/testsuite/gdb.fortran/library-module.exp
+++ b/gdb/testsuite/gdb.fortran/library-module.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/limited-length.exp b/gdb/testsuite/gdb.fortran/limited-length.exp
index 942344b..38c5286 100644
--- a/gdb/testsuite/gdb.fortran/limited-length.exp
+++ b/gdb/testsuite/gdb.fortran/limited-length.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/limited-length.f90 b/gdb/testsuite/gdb.fortran/limited-length.f90
index 5feb86a..0b30bf9 100644
--- a/gdb/testsuite/gdb.fortran/limited-length.f90
+++ b/gdb/testsuite/gdb.fortran/limited-length.f90
@@ -1,6 +1,6 @@
! This testcase is part of GDB, the GNU debugger.
!
-! Copyright 2023-2024 Free Software Foundation, Inc.
+! Copyright 2023-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/logical.exp b/gdb/testsuite/gdb.fortran/logical.exp
index 19992b6..6a9cf14 100644
--- a/gdb/testsuite/gdb.fortran/logical.exp
+++ b/gdb/testsuite/gdb.fortran/logical.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/logical.f90 b/gdb/testsuite/gdb.fortran/logical.f90
index c86e6b0..16735bd 100644
--- a/gdb/testsuite/gdb.fortran/logical.f90
+++ b/gdb/testsuite/gdb.fortran/logical.f90
@@ -1,4 +1,4 @@
-! Copyright 2010-2024 Free Software Foundation, Inc.
+! Copyright 2010-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/max-depth.exp b/gdb/testsuite/gdb.fortran/max-depth.exp
index 02541ba..8d96aa2 100644
--- a/gdb/testsuite/gdb.fortran/max-depth.exp
+++ b/gdb/testsuite/gdb.fortran/max-depth.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/max-depth.f90 b/gdb/testsuite/gdb.fortran/max-depth.f90
index 41df598..9cf2f51 100644
--- a/gdb/testsuite/gdb.fortran/max-depth.f90
+++ b/gdb/testsuite/gdb.fortran/max-depth.f90
@@ -1,4 +1,4 @@
-! Copyright 2019-2024 Free Software Foundation, Inc.
+! Copyright 2019-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/mixed-lang-stack.c b/gdb/testsuite/gdb.fortran/mixed-lang-stack.c
index af3898e..25d859b 100644
--- a/gdb/testsuite/gdb.fortran/mixed-lang-stack.c
+++ b/gdb/testsuite/gdb.fortran/mixed-lang-stack.c
@@ -1,4 +1,4 @@
-/* Copyright 2020-2024 Free Software Foundation, Inc.
+/* Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/mixed-lang-stack.cpp b/gdb/testsuite/gdb.fortran/mixed-lang-stack.cpp
index 10a2753..2b2c5de 100644
--- a/gdb/testsuite/gdb.fortran/mixed-lang-stack.cpp
+++ b/gdb/testsuite/gdb.fortran/mixed-lang-stack.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2020-2024 Free Software Foundation, Inc.
+/* Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/mixed-lang-stack.exp b/gdb/testsuite/gdb.fortran/mixed-lang-stack.exp
index eef84da..ac8f742 100644
--- a/gdb/testsuite/gdb.fortran/mixed-lang-stack.exp
+++ b/gdb/testsuite/gdb.fortran/mixed-lang-stack.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/mixed-lang-stack.f90 b/gdb/testsuite/gdb.fortran/mixed-lang-stack.f90
index 5577e5e..dd33a37 100644
--- a/gdb/testsuite/gdb.fortran/mixed-lang-stack.f90
+++ b/gdb/testsuite/gdb.fortran/mixed-lang-stack.f90
@@ -1,4 +1,4 @@
-! Copyright 2020-2024 Free Software Foundation, Inc.
+! Copyright 2020-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/module.exp b/gdb/testsuite/gdb.fortran/module.exp
index df7ee3b..30988a2 100644
--- a/gdb/testsuite/gdb.fortran/module.exp
+++ b/gdb/testsuite/gdb.fortran/module.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/module.f90 b/gdb/testsuite/gdb.fortran/module.f90
index 33a252b..186bd1c 100644
--- a/gdb/testsuite/gdb.fortran/module.f90
+++ b/gdb/testsuite/gdb.fortran/module.f90
@@ -1,4 +1,4 @@
-! Copyright 2009-2024 Free Software Foundation, Inc.
+! Copyright 2009-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/multi-dim.exp b/gdb/testsuite/gdb.fortran/multi-dim.exp
index eda2d6a..efd225a 100644
--- a/gdb/testsuite/gdb.fortran/multi-dim.exp
+++ b/gdb/testsuite/gdb.fortran/multi-dim.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/multi-dim.f90 b/gdb/testsuite/gdb.fortran/multi-dim.f90
index b3bcb59..1e5e298 100644
--- a/gdb/testsuite/gdb.fortran/multi-dim.f90
+++ b/gdb/testsuite/gdb.fortran/multi-dim.f90
@@ -1,4 +1,4 @@
-! Copyright 2011-2024 Free Software Foundation, Inc.
+! Copyright 2011-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/namelist.exp b/gdb/testsuite/gdb.fortran/namelist.exp
index c3e4f3b..10846cf 100644
--- a/gdb/testsuite/gdb.fortran/namelist.exp
+++ b/gdb/testsuite/gdb.fortran/namelist.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/namelist.f90 b/gdb/testsuite/gdb.fortran/namelist.f90
index eda7a65..7e90231 100644
--- a/gdb/testsuite/gdb.fortran/namelist.f90
+++ b/gdb/testsuite/gdb.fortran/namelist.f90
@@ -1,4 +1,4 @@
-! Copyright (C) 2021-2024 Free Software Foundation, Inc.
+! Copyright (C) 2021-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/nested-funcs-2.exp b/gdb/testsuite/gdb.fortran/nested-funcs-2.exp
index 72d87bc..a350e62 100644
--- a/gdb/testsuite/gdb.fortran/nested-funcs-2.exp
+++ b/gdb/testsuite/gdb.fortran/nested-funcs-2.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/nested-funcs-2.f90 b/gdb/testsuite/gdb.fortran/nested-funcs-2.f90
index c1f0a3f..af9e228 100644
--- a/gdb/testsuite/gdb.fortran/nested-funcs-2.f90
+++ b/gdb/testsuite/gdb.fortran/nested-funcs-2.f90
@@ -1,4 +1,4 @@
-! Copyright 2019-2024 Free Software Foundation, Inc.
+! Copyright 2019-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/nested-funcs.exp b/gdb/testsuite/gdb.fortran/nested-funcs.exp
index e08a40a..63917c5 100755
--- a/gdb/testsuite/gdb.fortran/nested-funcs.exp
+++ b/gdb/testsuite/gdb.fortran/nested-funcs.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/nested-funcs.f90 b/gdb/testsuite/gdb.fortran/nested-funcs.f90
index f052b32..0d17041 100755
--- a/gdb/testsuite/gdb.fortran/nested-funcs.f90
+++ b/gdb/testsuite/gdb.fortran/nested-funcs.f90
@@ -1,4 +1,4 @@
-! Copyright 2016-2024 Free Software Foundation, Inc.
+! Copyright 2016-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/oop_extend_type.exp b/gdb/testsuite/gdb.fortran/oop_extend_type.exp
index 7e87674..f2e64e9 100755
--- a/gdb/testsuite/gdb.fortran/oop_extend_type.exp
+++ b/gdb/testsuite/gdb.fortran/oop_extend_type.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/oop_extend_type.f90 b/gdb/testsuite/gdb.fortran/oop_extend_type.f90
index d626ce1..94eb233 100755
--- a/gdb/testsuite/gdb.fortran/oop_extend_type.f90
+++ b/gdb/testsuite/gdb.fortran/oop_extend_type.f90
@@ -1,4 +1,4 @@
-! Copyright 2022-2024 Free Software Foundation, Inc.
+! Copyright 2022-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/pointer-to-pointer.exp b/gdb/testsuite/gdb.fortran/pointer-to-pointer.exp
index dfff519..9920616 100644
--- a/gdb/testsuite/gdb.fortran/pointer-to-pointer.exp
+++ b/gdb/testsuite/gdb.fortran/pointer-to-pointer.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/pointer-to-pointer.f90 b/gdb/testsuite/gdb.fortran/pointer-to-pointer.f90
index 5451dc3..212dca7 100644
--- a/gdb/testsuite/gdb.fortran/pointer-to-pointer.f90
+++ b/gdb/testsuite/gdb.fortran/pointer-to-pointer.f90
@@ -1,4 +1,4 @@
-! Copyright 2020-2024 Free Software Foundation, Inc.
+! Copyright 2020-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/pointers.exp b/gdb/testsuite/gdb.fortran/pointers.exp
index dafea39..3f39bd9 100644
--- a/gdb/testsuite/gdb.fortran/pointers.exp
+++ b/gdb/testsuite/gdb.fortran/pointers.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/pointers.f90 b/gdb/testsuite/gdb.fortran/pointers.f90
index 2b55c6a..7706509 100644
--- a/gdb/testsuite/gdb.fortran/pointers.f90
+++ b/gdb/testsuite/gdb.fortran/pointers.f90
@@ -1,4 +1,4 @@
-! Copyright 2019-2024 Free Software Foundation, Inc.
+! Copyright 2019-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/print-formatted.exp b/gdb/testsuite/gdb.fortran/print-formatted.exp
index 32506c5..7d11a3c 100644
--- a/gdb/testsuite/gdb.fortran/print-formatted.exp
+++ b/gdb/testsuite/gdb.fortran/print-formatted.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/print-formatted.f90 b/gdb/testsuite/gdb.fortran/print-formatted.f90
index 18b161d..fc57ffc 100644
--- a/gdb/testsuite/gdb.fortran/print-formatted.f90
+++ b/gdb/testsuite/gdb.fortran/print-formatted.f90
@@ -1,4 +1,4 @@
-! Copyright 2014-2024 Free Software Foundation, Inc.
+! Copyright 2014-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/print_type.exp b/gdb/testsuite/gdb.fortran/print_type.exp
index eeb8c3b..c08f501 100755
--- a/gdb/testsuite/gdb.fortran/print_type.exp
+++ b/gdb/testsuite/gdb.fortran/print_type.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/printing-types.exp b/gdb/testsuite/gdb.fortran/printing-types.exp
index 54843c9..f4072f8 100644
--- a/gdb/testsuite/gdb.fortran/printing-types.exp
+++ b/gdb/testsuite/gdb.fortran/printing-types.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/printing-types.f90 b/gdb/testsuite/gdb.fortran/printing-types.f90
index 83f60a6..b101077 100644
--- a/gdb/testsuite/gdb.fortran/printing-types.f90
+++ b/gdb/testsuite/gdb.fortran/printing-types.f90
@@ -1,4 +1,4 @@
-! Copyright 2017-2024 Free Software Foundation, Inc.
+! Copyright 2017-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/ptr-indentation.exp b/gdb/testsuite/gdb.fortran/ptr-indentation.exp
index 66c1761..1671627 100644
--- a/gdb/testsuite/gdb.fortran/ptr-indentation.exp
+++ b/gdb/testsuite/gdb.fortran/ptr-indentation.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/ptr-indentation.f90 b/gdb/testsuite/gdb.fortran/ptr-indentation.f90
index fdd3a51..82502f8 100644
--- a/gdb/testsuite/gdb.fortran/ptr-indentation.f90
+++ b/gdb/testsuite/gdb.fortran/ptr-indentation.f90
@@ -1,4 +1,4 @@
-! Copyright 2017-2024 Free Software Foundation, Inc.
+! Copyright 2017-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/ptype-on-functions.exp b/gdb/testsuite/gdb.fortran/ptype-on-functions.exp
index ed11c61..cb63c5f 100644
--- a/gdb/testsuite/gdb.fortran/ptype-on-functions.exp
+++ b/gdb/testsuite/gdb.fortran/ptype-on-functions.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/ptype-on-functions.f90 b/gdb/testsuite/gdb.fortran/ptype-on-functions.f90
index b25d1f8..6563dd0 100644
--- a/gdb/testsuite/gdb.fortran/ptype-on-functions.f90
+++ b/gdb/testsuite/gdb.fortran/ptype-on-functions.f90
@@ -1,4 +1,4 @@
-! Copyright 2019-2024 Free Software Foundation, Inc.
+! Copyright 2019-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/rank.exp b/gdb/testsuite/gdb.fortran/rank.exp
index 57e3154..c61ae98 100644
--- a/gdb/testsuite/gdb.fortran/rank.exp
+++ b/gdb/testsuite/gdb.fortran/rank.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/rank.f90 b/gdb/testsuite/gdb.fortran/rank.f90
index 6762fa2..3e5c5db 100644
--- a/gdb/testsuite/gdb.fortran/rank.f90
+++ b/gdb/testsuite/gdb.fortran/rank.f90
@@ -1,4 +1,4 @@
-! Copyright 2021-2024 Free Software Foundation, Inc.
+! Copyright 2021-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/shape.exp b/gdb/testsuite/gdb.fortran/shape.exp
index ccc68f3..e525bf7 100644
--- a/gdb/testsuite/gdb.fortran/shape.exp
+++ b/gdb/testsuite/gdb.fortran/shape.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/shape.f90 b/gdb/testsuite/gdb.fortran/shape.f90
index 8bfd345..0d3c807 100644
--- a/gdb/testsuite/gdb.fortran/shape.f90
+++ b/gdb/testsuite/gdb.fortran/shape.f90
@@ -1,4 +1,4 @@
-! Copyright 2021-2024 Free Software Foundation, Inc.
+! Copyright 2021-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/short-circuit-argument-list.exp b/gdb/testsuite/gdb.fortran/short-circuit-argument-list.exp
index ef7db8b..bca971d 100644
--- a/gdb/testsuite/gdb.fortran/short-circuit-argument-list.exp
+++ b/gdb/testsuite/gdb.fortran/short-circuit-argument-list.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/short-circuit-argument-list.f90 b/gdb/testsuite/gdb.fortran/short-circuit-argument-list.f90
index 143d1e6..72ec2e2 100644
--- a/gdb/testsuite/gdb.fortran/short-circuit-argument-list.f90
+++ b/gdb/testsuite/gdb.fortran/short-circuit-argument-list.f90
@@ -1,4 +1,4 @@
-! Copyright 2018-2024 Free Software Foundation, Inc.
+! Copyright 2018-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/size.exp b/gdb/testsuite/gdb.fortran/size.exp
index 925aeed..dd6340f 100644
--- a/gdb/testsuite/gdb.fortran/size.exp
+++ b/gdb/testsuite/gdb.fortran/size.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/size.f90 b/gdb/testsuite/gdb.fortran/size.f90
index ec707a3..b7a2c61 100644
--- a/gdb/testsuite/gdb.fortran/size.f90
+++ b/gdb/testsuite/gdb.fortran/size.f90
@@ -1,4 +1,4 @@
-! Copyright 2021-2024 Free Software Foundation, Inc.
+! Copyright 2021-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/sizeof.exp b/gdb/testsuite/gdb.fortran/sizeof.exp
index be59a37..aa22107 100644
--- a/gdb/testsuite/gdb.fortran/sizeof.exp
+++ b/gdb/testsuite/gdb.fortran/sizeof.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/sizeof.f90 b/gdb/testsuite/gdb.fortran/sizeof.f90
index b8490a1..8b7a6c0 100644
--- a/gdb/testsuite/gdb.fortran/sizeof.f90
+++ b/gdb/testsuite/gdb.fortran/sizeof.f90
@@ -1,4 +1,4 @@
-! Copyright 2024 Free Software Foundation, Inc.
+! Copyright 2024-2025 Free Software Foundation, Inc.
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/string-types.exp b/gdb/testsuite/gdb.fortran/string-types.exp
index 35b8654..b8a15ff 100644
--- a/gdb/testsuite/gdb.fortran/string-types.exp
+++ b/gdb/testsuite/gdb.fortran/string-types.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/string-types.f90 b/gdb/testsuite/gdb.fortran/string-types.f90
index fd94949..9f91d28 100644
--- a/gdb/testsuite/gdb.fortran/string-types.f90
+++ b/gdb/testsuite/gdb.fortran/string-types.f90
@@ -1,4 +1,4 @@
-! Copyright 2022-2024 Free Software Foundation, Inc.
+! Copyright 2022-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/subarray.exp b/gdb/testsuite/gdb.fortran/subarray.exp
index 70a7a23..cfa9d7a 100644
--- a/gdb/testsuite/gdb.fortran/subarray.exp
+++ b/gdb/testsuite/gdb.fortran/subarray.exp
@@ -1,4 +1,4 @@
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/subarray.f b/gdb/testsuite/gdb.fortran/subarray.f
index 14ba3bc..2ced37c 100644
--- a/gdb/testsuite/gdb.fortran/subarray.f
+++ b/gdb/testsuite/gdb.fortran/subarray.f
@@ -1,4 +1,4 @@
-c Copyright 2005-2024 Free Software Foundation, Inc.
+c Copyright 2005-2025 Free Software Foundation, Inc.
c This program is free software; you can redistribute it and/or modify
c it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/type-kinds.exp b/gdb/testsuite/gdb.fortran/type-kinds.exp
index a6f2aa4..7c98e7d 100644
--- a/gdb/testsuite/gdb.fortran/type-kinds.exp
+++ b/gdb/testsuite/gdb.fortran/type-kinds.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/type.f90 b/gdb/testsuite/gdb.fortran/type.f90
index 1b0e89c..00d8a7b 100644
--- a/gdb/testsuite/gdb.fortran/type.f90
+++ b/gdb/testsuite/gdb.fortran/type.f90
@@ -1,4 +1,4 @@
-! Copyright 2013-2024 Free Software Foundation, Inc.
+! Copyright 2013-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/types.exp b/gdb/testsuite/gdb.fortran/types.exp
index 494ed1e..c444228 100644
--- a/gdb/testsuite/gdb.fortran/types.exp
+++ b/gdb/testsuite/gdb.fortran/types.exp
@@ -1,4 +1,4 @@
-# Copyright 1994-2024 Free Software Foundation, Inc.
+# Copyright 1994-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp b/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp
index 01717b0..8d9fc25 100644
--- a/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp
+++ b/gdb/testsuite/gdb.fortran/vla-alloc-assoc.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/vla-array.exp b/gdb/testsuite/gdb.fortran/vla-array.exp
index 4ed2de7..092a19a 100644
--- a/gdb/testsuite/gdb.fortran/vla-array.exp
+++ b/gdb/testsuite/gdb.fortran/vla-array.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/vla-array.f90 b/gdb/testsuite/gdb.fortran/vla-array.f90
index 56dd85b..8f62f22 100644
--- a/gdb/testsuite/gdb.fortran/vla-array.f90
+++ b/gdb/testsuite/gdb.fortran/vla-array.f90
@@ -1,4 +1,4 @@
-! Copyright 2024 Free Software Foundation, Inc.
+! Copyright 2024-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/vla-datatypes.exp b/gdb/testsuite/gdb.fortran/vla-datatypes.exp
index 8227f23..a4ea89d 100644
--- a/gdb/testsuite/gdb.fortran/vla-datatypes.exp
+++ b/gdb/testsuite/gdb.fortran/vla-datatypes.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/vla-datatypes.f90 b/gdb/testsuite/gdb.fortran/vla-datatypes.f90
index 776d4df..eff3f2c 100644
--- a/gdb/testsuite/gdb.fortran/vla-datatypes.f90
+++ b/gdb/testsuite/gdb.fortran/vla-datatypes.f90
@@ -1,4 +1,4 @@
-! Copyright 2015-2024 Free Software Foundation, Inc.
+! Copyright 2015-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/vla-history.exp b/gdb/testsuite/gdb.fortran/vla-history.exp
index 28bbba1..d51ded4 100644
--- a/gdb/testsuite/gdb.fortran/vla-history.exp
+++ b/gdb/testsuite/gdb.fortran/vla-history.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/vla-ptr-info.exp b/gdb/testsuite/gdb.fortran/vla-ptr-info.exp
index 6f25560..1a4efc7 100644
--- a/gdb/testsuite/gdb.fortran/vla-ptr-info.exp
+++ b/gdb/testsuite/gdb.fortran/vla-ptr-info.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp b/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp
index 78b711b..7d95787 100644
--- a/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp
+++ b/gdb/testsuite/gdb.fortran/vla-ptype-sub.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/vla-ptype.exp b/gdb/testsuite/gdb.fortran/vla-ptype.exp
index 446ef72..ca75afc 100644
--- a/gdb/testsuite/gdb.fortran/vla-ptype.exp
+++ b/gdb/testsuite/gdb.fortran/vla-ptype.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/vla-sizeof.exp b/gdb/testsuite/gdb.fortran/vla-sizeof.exp
index b8ee9bd..da9eaa1 100644
--- a/gdb/testsuite/gdb.fortran/vla-sizeof.exp
+++ b/gdb/testsuite/gdb.fortran/vla-sizeof.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/vla-sub.f90 b/gdb/testsuite/gdb.fortran/vla-sub.f90
index 04ed77a..f283e9a 100644
--- a/gdb/testsuite/gdb.fortran/vla-sub.f90
+++ b/gdb/testsuite/gdb.fortran/vla-sub.f90
@@ -1,4 +1,4 @@
-! Copyright 2015-2024 Free Software Foundation, Inc.
+! Copyright 2015-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/vla-type.exp b/gdb/testsuite/gdb.fortran/vla-type.exp
index d531205..b560d46 100755
--- a/gdb/testsuite/gdb.fortran/vla-type.exp
+++ b/gdb/testsuite/gdb.fortran/vla-type.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/vla-type.f90 b/gdb/testsuite/gdb.fortran/vla-type.f90
index c821bf8..1dbea6b 100755
--- a/gdb/testsuite/gdb.fortran/vla-type.f90
+++ b/gdb/testsuite/gdb.fortran/vla-type.f90
@@ -1,4 +1,4 @@
-! Copyright 2016-2024 Free Software Foundation, Inc.
+! Copyright 2016-2025 Free Software Foundation, Inc.
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp b/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp
index 64e86ac..f33231a 100644
--- a/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp
+++ b/gdb/testsuite/gdb.fortran/vla-value-sub-arbitrary.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp b/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp
index a717a45..01d717e 100644
--- a/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp
+++ b/gdb/testsuite/gdb.fortran/vla-value-sub-finish.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/vla-value-sub.exp b/gdb/testsuite/gdb.fortran/vla-value-sub.exp
index 23ee539..e3103bd 100644
--- a/gdb/testsuite/gdb.fortran/vla-value-sub.exp
+++ b/gdb/testsuite/gdb.fortran/vla-value-sub.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/vla-value.exp b/gdb/testsuite/gdb.fortran/vla-value.exp
index a3f50d1..fc2864b 100644
--- a/gdb/testsuite/gdb.fortran/vla-value.exp
+++ b/gdb/testsuite/gdb.fortran/vla-value.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/vla.f90 b/gdb/testsuite/gdb.fortran/vla.f90
index 8348814..3257c74 100644
--- a/gdb/testsuite/gdb.fortran/vla.f90
+++ b/gdb/testsuite/gdb.fortran/vla.f90
@@ -1,4 +1,4 @@
-! Copyright 2015-2024 Free Software Foundation, Inc.
+! Copyright 2015-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.fortran/whatis_type.exp b/gdb/testsuite/gdb.fortran/whatis_type.exp
index a3c5584..8cbddc1 100644
--- a/gdb/testsuite/gdb.fortran/whatis_type.exp
+++ b/gdb/testsuite/gdb.fortran/whatis_type.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.gdb/index-file.exp b/gdb/testsuite/gdb.gdb/index-file.exp
index c30f417..2252b79 100644
--- a/gdb/testsuite/gdb.gdb/index-file.exp
+++ b/gdb/testsuite/gdb.gdb/index-file.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.gdb/python-helper.cc b/gdb/testsuite/gdb.gdb/python-helper.cc
index 7f4a147..06f706c 100644
--- a/gdb/testsuite/gdb.gdb/python-helper.cc
+++ b/gdb/testsuite/gdb.gdb/python-helper.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.gdb/python-helper.exp b/gdb/testsuite/gdb.gdb/python-helper.exp
index d136d68..4b9adb0 100644
--- a/gdb/testsuite/gdb.gdb/python-helper.exp
+++ b/gdb/testsuite/gdb.gdb/python-helper.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.gdb/selftest.exp b/gdb/testsuite/gdb.gdb/selftest.exp
index 1984f47..1cf9265 100644
--- a/gdb/testsuite/gdb.gdb/selftest.exp
+++ b/gdb/testsuite/gdb.gdb/selftest.exp
@@ -1,4 +1,4 @@
-# Copyright 1988-2024 Free Software Foundation, Inc.
+# Copyright 1988-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.gdb/unittest.c b/gdb/testsuite/gdb.gdb/unittest.c
index b1ce99c..a21818d 100644
--- a/gdb/testsuite/gdb.gdb/unittest.c
+++ b/gdb/testsuite/gdb.gdb/unittest.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.gdb/unittest.exp b/gdb/testsuite/gdb.gdb/unittest.exp
index e154c04..795a32b 100644
--- a/gdb/testsuite/gdb.gdb/unittest.exp
+++ b/gdb/testsuite/gdb.gdb/unittest.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.go/basic-types.exp b/gdb/testsuite/gdb.go/basic-types.exp
index 1ba84fa..3d4bfd5 100644
--- a/gdb/testsuite/gdb.go/basic-types.exp
+++ b/gdb/testsuite/gdb.go/basic-types.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.go/chan.exp b/gdb/testsuite/gdb.go/chan.exp
index 0e5a2b8..7fb4cbe 100644
--- a/gdb/testsuite/gdb.go/chan.exp
+++ b/gdb/testsuite/gdb.go/chan.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.go/global-local-var-shadow.exp b/gdb/testsuite/gdb.go/global-local-var-shadow.exp
index 328cc24..1d3189e 100644
--- a/gdb/testsuite/gdb.go/global-local-var-shadow.exp
+++ b/gdb/testsuite/gdb.go/global-local-var-shadow.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.go/handcall.exp b/gdb/testsuite/gdb.go/handcall.exp
index 9bee367..0857fcd 100644
--- a/gdb/testsuite/gdb.go/handcall.exp
+++ b/gdb/testsuite/gdb.go/handcall.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.go/hello.exp b/gdb/testsuite/gdb.go/hello.exp
index c1eb87e..f90b846 100644
--- a/gdb/testsuite/gdb.go/hello.exp
+++ b/gdb/testsuite/gdb.go/hello.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.go/integers.exp b/gdb/testsuite/gdb.go/integers.exp
index 7837542..d58c771 100644
--- a/gdb/testsuite/gdb.go/integers.exp
+++ b/gdb/testsuite/gdb.go/integers.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.go/max-depth.exp b/gdb/testsuite/gdb.go/max-depth.exp
index df136e3..e981959 100644
--- a/gdb/testsuite/gdb.go/max-depth.exp
+++ b/gdb/testsuite/gdb.go/max-depth.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.go/max-depth.go b/gdb/testsuite/gdb.go/max-depth.go
index f917cb5..50ed686 100644
--- a/gdb/testsuite/gdb.go/max-depth.go
+++ b/gdb/testsuite/gdb.go/max-depth.go
@@ -1,4 +1,4 @@
-// Copyright 2019-2024 Free Software Foundation, Inc.
+// Copyright 2019-2025 Free Software Foundation, Inc.
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.go/methods.exp b/gdb/testsuite/gdb.go/methods.exp
index 6a42d34..6049440 100644
--- a/gdb/testsuite/gdb.go/methods.exp
+++ b/gdb/testsuite/gdb.go/methods.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.go/no-package.exp b/gdb/testsuite/gdb.go/no-package.exp
index 6737092..50a9ea2 100644
--- a/gdb/testsuite/gdb.go/no-package.exp
+++ b/gdb/testsuite/gdb.go/no-package.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.go/package.exp b/gdb/testsuite/gdb.go/package.exp
index f1640a8..c30b8c0 100644
--- a/gdb/testsuite/gdb.go/package.exp
+++ b/gdb/testsuite/gdb.go/package.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.go/print.exp b/gdb/testsuite/gdb.go/print.exp
index 20ab041..85cb6a1 100644
--- a/gdb/testsuite/gdb.go/print.exp
+++ b/gdb/testsuite/gdb.go/print.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.go/strings.exp b/gdb/testsuite/gdb.go/strings.exp
index 50e68c8..0aa6807 100644
--- a/gdb/testsuite/gdb.go/strings.exp
+++ b/gdb/testsuite/gdb.go/strings.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.go/types.exp b/gdb/testsuite/gdb.go/types.exp
index cc0c9ca..7a9dddd 100644
--- a/gdb/testsuite/gdb.go/types.exp
+++ b/gdb/testsuite/gdb.go/types.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.go/unsafe.exp b/gdb/testsuite/gdb.go/unsafe.exp
index 04f2141..74cf3be 100644
--- a/gdb/testsuite/gdb.go/unsafe.exp
+++ b/gdb/testsuite/gdb.go/unsafe.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/guile.exp b/gdb/testsuite/gdb.guile/guile.exp
index 7c8fb18..bd25d5f 100644
--- a/gdb/testsuite/gdb.guile/guile.exp
+++ b/gdb/testsuite/gdb.guile/guile.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-arch.c b/gdb/testsuite/gdb.guile/scm-arch.c
index 5b58959..f2a876d 100644
--- a/gdb/testsuite/gdb.guile/scm-arch.c
+++ b/gdb/testsuite/gdb.guile/scm-arch.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-arch.exp b/gdb/testsuite/gdb.guile/scm-arch.exp
index 2008683..bd64c4b 100644
--- a/gdb/testsuite/gdb.guile/scm-arch.exp
+++ b/gdb/testsuite/gdb.guile/scm-arch.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-block.c b/gdb/testsuite/gdb.guile/scm-block.c
index 03830c6..412a08a 100644
--- a/gdb/testsuite/gdb.guile/scm-block.c
+++ b/gdb/testsuite/gdb.guile/scm-block.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-block.exp b/gdb/testsuite/gdb.guile/scm-block.exp
index dcd0de6..266e714 100644
--- a/gdb/testsuite/gdb.guile/scm-block.exp
+++ b/gdb/testsuite/gdb.guile/scm-block.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-breakpoint.c b/gdb/testsuite/gdb.guile/scm-breakpoint.c
index e5b7700..8ad3cd2 100644
--- a/gdb/testsuite/gdb.guile/scm-breakpoint.c
+++ b/gdb/testsuite/gdb.guile/scm-breakpoint.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-breakpoint.exp b/gdb/testsuite/gdb.guile/scm-breakpoint.exp
index 73e2413..8694530 100644
--- a/gdb/testsuite/gdb.guile/scm-breakpoint.exp
+++ b/gdb/testsuite/gdb.guile/scm-breakpoint.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-cmd.c b/gdb/testsuite/gdb.guile/scm-cmd.c
index c18c92a..6c4357c 100644
--- a/gdb/testsuite/gdb.guile/scm-cmd.c
+++ b/gdb/testsuite/gdb.guile/scm-cmd.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-cmd.exp b/gdb/testsuite/gdb.guile/scm-cmd.exp
index f019397..3709cb1 100644
--- a/gdb/testsuite/gdb.guile/scm-cmd.exp
+++ b/gdb/testsuite/gdb.guile/scm-cmd.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -71,6 +71,65 @@ gdb_test_multiline "input subcommand" \
gdb_test "prefix-cmd subcmd ugh" "subcmd output, arg = ugh" "call subcmd"
+# Create a sub-command using a partial, but still unique, prefix.
+
+gdb_test_multiline "sub-command using partial prefix" \
+ "guile" "" \
+ "(register-command! (make-command \"prefix subcmd2\"" "" \
+ " #:command-class COMMAND_OBSCURE" "" \
+ " #:invoke (lambda (self arg from-tty)" "" \
+ " (display (format #f \"subcmd2 output, arg = ~a\\n\" arg)))))" "" \
+ "end" ""
+
+gdb_test "prefix-cmd subcmd2 ugh" "subcmd2 output, arg = ugh" "call subcmd2"
+
+# Now create a second prefix, similar to the first.
+
+gdb_test_multiline "create prefix-xxx prefix command" \
+ "guile" "" \
+ "(register-command! (make-command \"prefix-xxx\"" "" \
+ " #:command-class COMMAND_OBSCURE" "" \
+ " #:completer-class COMPLETE_NONE" "" \
+ " #:prefix? #t))" "" \
+ "end" ""
+
+# Now create a sub-command using an ambiguous prefix.
+
+gdb_test_multiline "sub-command using ambiguous partial prefix" \
+ "guile" "" \
+ "(register-command! (make-command \"prefix subcmd3\"" "" \
+ " #:command-class COMMAND_OBSCURE" "" \
+ " #:invoke (lambda (self arg from-tty)" "" \
+ " (display (format #f \"subcmd3 output, arg = ~a\\n\" arg)))))" "" \
+ "end" \
+ [multi_line \
+ "Out of range: could not find command prefix 'prefix' in position 1: \"prefix subcmd3\"" \
+ "Error while executing Scheme code\\."]
+
+# Check for errors when creating a command with an unknown prefix.
+
+gdb_test_multiline "try to create 'unknown-prefix subcmd'" \
+ "guile" "" \
+ "(register-command! (make-command \"unknown-prefix subcmd\"" "" \
+ " #:command-class COMMAND_OBSCURE" "" \
+ " #:invoke (lambda (self arg from-tty)" "" \
+ " (display \"called unknown-prefix subcmd\"))))" "" \
+ "end" \
+ [multi_line \
+ "Out of range: could not find command prefix 'unknown-prefix' in position 1: \"unknown-prefix subcmd\"" \
+ "Error while executing Scheme code\\."]
+
+gdb_test_multiline "try to create 'prefix-cmd unknown-prefix subcmd'" \
+ "guile" "" \
+ "(register-command! (make-command \"prefix-cmd unknown-prefix subcmd\"" "" \
+ " #:command-class COMMAND_OBSCURE" "" \
+ " #:invoke (lambda (self arg from-tty)" "" \
+ " (display \"called prefix-cmd unknown-prefix subcmd\"))))" "" \
+ "end" \
+ [multi_line \
+ "Out of range: could not find command prefix 'prefix-cmd unknown-prefix' in position 1: \"prefix-cmd unknown-prefix subcmd\"" \
+ "Error while executing Scheme code\\."]
+
# Test a subcommand in an existing GDB prefix.
gdb_test_multiline "input new subcommand" \
diff --git a/gdb/testsuite/gdb.guile/scm-color.exp b/gdb/testsuite/gdb.guile/scm-color.exp
index 9fd7f38..578f712 100644
--- a/gdb/testsuite/gdb.guile/scm-color.exp
+++ b/gdb/testsuite/gdb.guile/scm-color.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -20,7 +20,10 @@ load_lib gdb-guile.exp
require allow_guile_tests
-clean_restart
+# Start GDB with styling support.
+with_ansi_styling_terminal {
+ clean_restart
+}
gdb_install_guile_utils
gdb_install_guile_module
@@ -108,3 +111,8 @@ gdb_test [concat "guile " \
"\033\\\[31m\033\\\[42mred on green\033\\\[49m red on default\033\\\[39m" \
"escape sequences"
+# Ensure that turning styling off means no escape sequences.
+gdb_test_no_output "set style enabled off"
+gdb_test_no_output "guile (display (color-escape-sequence c_red #t))"
+gdb_test_no_output "guile (display (color-escape-sequence c_red #f))"
+gdb_test_no_output "set style enabled on"
diff --git a/gdb/testsuite/gdb.guile/scm-disasm.c b/gdb/testsuite/gdb.guile/scm-disasm.c
index 5b58959..f2a876d 100644
--- a/gdb/testsuite/gdb.guile/scm-disasm.c
+++ b/gdb/testsuite/gdb.guile/scm-disasm.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-disasm.exp b/gdb/testsuite/gdb.guile/scm-disasm.exp
index 68c1911..5541a60 100644
--- a/gdb/testsuite/gdb.guile/scm-disasm.exp
+++ b/gdb/testsuite/gdb.guile/scm-disasm.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-equal.c b/gdb/testsuite/gdb.guile/scm-equal.c
index 468d757..7101960 100644
--- a/gdb/testsuite/gdb.guile/scm-equal.c
+++ b/gdb/testsuite/gdb.guile/scm-equal.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-equal.exp b/gdb/testsuite/gdb.guile/scm-equal.exp
index 24ad1d0..0450d62 100644
--- a/gdb/testsuite/gdb.guile/scm-equal.exp
+++ b/gdb/testsuite/gdb.guile/scm-equal.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-error-1.scm b/gdb/testsuite/gdb.guile/scm-error-1.scm
index 9c484de..16a8956 100644
--- a/gdb/testsuite/gdb.guile/scm-error-1.scm
+++ b/gdb/testsuite/gdb.guile/scm-error-1.scm
@@ -1,4 +1,4 @@
-;; Copyright (C) 2014-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2025 Free Software Foundation, Inc.
;;
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-error-2.scm b/gdb/testsuite/gdb.guile/scm-error-2.scm
index 79c343b..a02add5 100644
--- a/gdb/testsuite/gdb.guile/scm-error-2.scm
+++ b/gdb/testsuite/gdb.guile/scm-error-2.scm
@@ -1,4 +1,4 @@
-;; Copyright (C) 2014-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2025 Free Software Foundation, Inc.
;;
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-error.exp b/gdb/testsuite/gdb.guile/scm-error.exp
index fad7d50..824700a 100644
--- a/gdb/testsuite/gdb.guile/scm-error.exp
+++ b/gdb/testsuite/gdb.guile/scm-error.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-frame-args.c b/gdb/testsuite/gdb.guile/scm-frame-args.c
index f67fe6a..057f99f 100644
--- a/gdb/testsuite/gdb.guile/scm-frame-args.c
+++ b/gdb/testsuite/gdb.guile/scm-frame-args.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-frame-args.exp b/gdb/testsuite/gdb.guile/scm-frame-args.exp
index f4753f3..c519087 100644
--- a/gdb/testsuite/gdb.guile/scm-frame-args.exp
+++ b/gdb/testsuite/gdb.guile/scm-frame-args.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-frame-args.scm b/gdb/testsuite/gdb.guile/scm-frame-args.scm
index 08d0462..1de4fcb 100644
--- a/gdb/testsuite/gdb.guile/scm-frame-args.scm
+++ b/gdb/testsuite/gdb.guile/scm-frame-args.scm
@@ -1,4 +1,4 @@
-;; Copyright (C) 2014-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2014-2025 Free Software Foundation, Inc.
;;
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-frame-inline.c b/gdb/testsuite/gdb.guile/scm-frame-inline.c
index 64e845f..7b9cd05 100644
--- a/gdb/testsuite/gdb.guile/scm-frame-inline.c
+++ b/gdb/testsuite/gdb.guile/scm-frame-inline.c
@@ -1,6 +1,6 @@
/* This test is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-frame-inline.exp b/gdb/testsuite/gdb.guile/scm-frame-inline.exp
index f01af22..a2fe11d 100644
--- a/gdb/testsuite/gdb.guile/scm-frame-inline.exp
+++ b/gdb/testsuite/gdb.guile/scm-frame-inline.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-frame.exp b/gdb/testsuite/gdb.guile/scm-frame.exp
index bd54e63..9a27c42 100644
--- a/gdb/testsuite/gdb.guile/scm-frame.exp
+++ b/gdb/testsuite/gdb.guile/scm-frame.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -52,7 +52,7 @@ gdb_test "guile (print (frame-read-var bf1 \"b\"))" \
"\"bar\"" "test b"
# Test the read-var function in another block other than the current
-# block (in this case, the super block). Test thar read-var is reading
+# block (in this case, the super block). Test that read-var is reading
# the correct variables of i and f but they are the correct value and type.
gdb_scm_test_silent_cmd "guile (define sb (block-superblock (frame-block bf1)))" \
"get superblock"
diff --git a/gdb/testsuite/gdb.guile/scm-gsmob.exp b/gdb/testsuite/gdb.guile/scm-gsmob.exp
index c0b3eb5..6d9e384 100644
--- a/gdb/testsuite/gdb.guile/scm-gsmob.exp
+++ b/gdb/testsuite/gdb.guile/scm-gsmob.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-iterator.c b/gdb/testsuite/gdb.guile/scm-iterator.c
index 88b7d80..eec6145 100644
--- a/gdb/testsuite/gdb.guile/scm-iterator.c
+++ b/gdb/testsuite/gdb.guile/scm-iterator.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-iterator.exp b/gdb/testsuite/gdb.guile/scm-iterator.exp
index d82cb9b..43d776b 100644
--- a/gdb/testsuite/gdb.guile/scm-iterator.exp
+++ b/gdb/testsuite/gdb.guile/scm-iterator.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-lazy-string.c b/gdb/testsuite/gdb.guile/scm-lazy-string.c
index 4eadb68..26f8a2f 100644
--- a/gdb/testsuite/gdb.guile/scm-lazy-string.c
+++ b/gdb/testsuite/gdb.guile/scm-lazy-string.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-lazy-string.exp b/gdb/testsuite/gdb.guile/scm-lazy-string.exp
index 7ce7eae..c5d09ae 100644
--- a/gdb/testsuite/gdb.guile/scm-lazy-string.exp
+++ b/gdb/testsuite/gdb.guile/scm-lazy-string.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-math.c b/gdb/testsuite/gdb.guile/scm-math.c
index 76f046e..4ff67a0 100644
--- a/gdb/testsuite/gdb.guile/scm-math.c
+++ b/gdb/testsuite/gdb.guile/scm-math.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-math.exp b/gdb/testsuite/gdb.guile/scm-math.exp
index 942ecf5..8b21909 100644
--- a/gdb/testsuite/gdb.guile/scm-math.exp
+++ b/gdb/testsuite/gdb.guile/scm-math.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-objfile-script-gdb.in b/gdb/testsuite/gdb.guile/scm-objfile-script-gdb.in
index da37176..cb71fb6 100644
--- a/gdb/testsuite/gdb.guile/scm-objfile-script-gdb.in
+++ b/gdb/testsuite/gdb.guile/scm-objfile-script-gdb.in
@@ -1,4 +1,4 @@
-;; Copyright (C) 2011-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2025 Free Software Foundation, Inc.
;;
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-objfile-script.c b/gdb/testsuite/gdb.guile/scm-objfile-script.c
index ad9e421..1ce505d 100644
--- a/gdb/testsuite/gdb.guile/scm-objfile-script.c
+++ b/gdb/testsuite/gdb.guile/scm-objfile-script.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-objfile-script.exp b/gdb/testsuite/gdb.guile/scm-objfile-script.exp
index e4f5fbd..b6d9369 100644
--- a/gdb/testsuite/gdb.guile/scm-objfile-script.exp
+++ b/gdb/testsuite/gdb.guile/scm-objfile-script.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-objfile.c b/gdb/testsuite/gdb.guile/scm-objfile.c
index e25c1cf..2fd2935 100644
--- a/gdb/testsuite/gdb.guile/scm-objfile.c
+++ b/gdb/testsuite/gdb.guile/scm-objfile.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-objfile.exp b/gdb/testsuite/gdb.guile/scm-objfile.exp
index e483acb..e0018c4 100644
--- a/gdb/testsuite/gdb.guile/scm-objfile.exp
+++ b/gdb/testsuite/gdb.guile/scm-objfile.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-parameter.exp b/gdb/testsuite/gdb.guile/scm-parameter.exp
index eabd179..e35428a 100644
--- a/gdb/testsuite/gdb.guile/scm-parameter.exp
+++ b/gdb/testsuite/gdb.guile/scm-parameter.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -67,9 +67,19 @@ with_test_prefix "test-param" {
gdb_test_no_output "set print test-param off"
gdb_test "show print test-param" "The state of the Test Parameter is off." "show parameter off"
gdb_test "guile (print (parameter-value test-param))" "= #f" "parameter value, false"
- gdb_test "help show print test-param" "Show the state of the boolean test-param.*" "show help"
- gdb_test "help set print test-param" "Set the state of the boolean test-param.*" "set help"
- gdb_test "help set print" "set print test-param -- Set the state of the boolean test-param.*" "general help"
+ gdb_test "help show print test-param" \
+ [multi_line \
+ "^Show the state of the boolean test-param\\." \
+ "When enabled, test param does something useful\\. When disabled, does nothing\\."] \
+ "show help"
+ gdb_test "help set print test-param" \
+ [multi_line \
+ "^Set the state of the boolean test-param\\." \
+ "When enabled, test param does something useful\\. When disabled, does nothing\\."] \
+ "set help"
+ gdb_test "help set print" \
+ "set print test-param -- Set the state of the boolean test-param.*" \
+ "general help"
gdb_test "guile (print (parameter? test-param))" "= #t"
gdb_test "guile (print (parameter? 42))" "= #f"
@@ -314,9 +324,17 @@ with_test_prefix "test-undocumented-param" {
gdb_test "show print test-undoc-param" "The state of the Test Parameter is on." "show parameter on"
gdb_test_no_output "set print test-undoc-param off"
gdb_test "show print test-undoc-param" "The state of the Test Parameter is off." "show parameter off"
- gdb_test "help show print test-undoc-param" "This command is not documented." "show help"
- gdb_test "help set print test-undoc-param" "This command is not documented." "set help"
- gdb_test "help set print" "set print test-undoc-param -- This command is not documented.*" "general help"
+ gdb_test "help show print test-undoc-param" \
+ [multi_line \
+ "^Show the current value of 'print test-undoc-param'\\." \
+ "This command is not documented\\."] \
+ "show help"
+ gdb_test "help set print test-undoc-param" \
+ [multi_line \
+ "Set the current value of 'print test-undoc-param'\\." \
+ "This command is not documented\\."] \
+ "set help"
+ gdb_test "help set print" "set print test-undoc-param -- Set the current value of 'print test-undoc-param'\\..*" "general help"
}
# Test a parameter with a restricted range, where we need to notify the user
@@ -379,13 +397,168 @@ gdb_test_no_output "guile (register-parameter! prev-ambig)"
with_test_prefix "previously-ambiguous" {
gdb_test "guile (print (parameter-value prev-ambig))" "= #f" "parameter value, false"
- gdb_test "show print s" "Command is not documented is off." "show parameter off"
+ gdb_test "show print s" \
+ "The current value of 'print s' is off\\." "show parameter off"
gdb_test_no_output "set print s on"
- gdb_test "show print s" "Command is not documented is on." "show parameter on"
+ gdb_test "show print s" \
+ "The current value of 'print s' is on\\." "show parameter on"
gdb_test "guile (print (parameter-value prev-ambig))" "= #t" "parameter value, true"
- gdb_test "help show print s" "This command is not documented." "show help"
- gdb_test "help set print s" "This command is not documented." "set help"
- gdb_test "help set print" "set print s -- This command is not documented.*" "general help"
+ gdb_test "help show print s" \
+ [multi_line \
+ "^Show the current value of 'print s'\\." \
+ "This command is not documented\\."] \
+ "show help"
+ gdb_test "help set print s" \
+ [multi_line \
+ "Set the current value of 'print s'\\." \
+ "This command is not documented\\."] \
+ "set help"
+ gdb_test "help set print" \
+ "set print s -- Set the current value of 'print s'\\..*" \
+ "general help"
+}
+
+gdb_test_multiline "create set/show foo1 prefix commands" \
+ "guile" "" \
+ "(register-command! (make-command \"set foo1\"" "" \
+ " #:command-class COMMAND_OBSCURE" "" \
+ " #:prefix? #t))" "" \
+ "(register-command! (make-command \"show foo1\"" "" \
+ " #:command-class COMMAND_OBSCURE" "" \
+ " #:prefix? #t))" "" \
+ "end"
+
+gdb_test_multiline "create set/show foo1 baz1 prefix commands" \
+ "guile" "" \
+ "(register-command! (make-command \"set foo1 baz1\"" "" \
+ " #:command-class COMMAND_OBSCURE" "" \
+ " #:prefix? #t))" "" \
+ "(register-command! (make-command \"show foo1 baz1\"" "" \
+ " #:command-class COMMAND_OBSCURE" "" \
+ " #:prefix? #t))" "" \
+ "end"
+
+gdb_test_multiline "create 'foo bar' parameter" \
+ "guile" "" \
+ "(register-parameter! (make-parameter \"foo bar\"" "" \
+ " #:command-class COMMAND_OBSCURE" "" \
+ " #:parameter-type PARAM_BOOLEAN" "" \
+ " #:show-func (lambda (self value)" "" \
+ " (format #f \"The state of 'foo bar' is ~a.\" value))" "" \
+ " #:initial-value #t))" "" \
+ "end"
+
+gdb_test "show foo1 bar" "^The state of 'foo bar' is on\\." "show parameter 'foo bar'"
+
+gdb_test_multiline "create set/show foo2 prefix commands" \
+ "guile" "" \
+ "(register-command! (make-command \"set foo2\"" "" \
+ " #:command-class COMMAND_OBSCURE" "" \
+ " #:prefix? #t))" "" \
+ "(register-command! (make-command \"show foo2\"" "" \
+ " #:command-class COMMAND_OBSCURE" "" \
+ " #:prefix? #t))" "" \
+ "end" ""
+
+gdb_test_multiline "create ambiguous 'foo baz' parameter" \
+ "guile" "" \
+ "(register-parameter! (make-parameter \"foo baz\"" "" \
+ " #:command-class COMMAND_OBSCURE" "" \
+ " #:parameter-type PARAM_BOOLEAN" "" \
+ " #:show-func (lambda (self value)" "" \
+ " (format #f \"The state of 'foo baz' is ~a.\" value))" "" \
+ " #:initial-value #t))" "" \
+ "end" \
+ [multi_line \
+ "Out of range: could not find command prefix 'foo' in position 1: \"foo baz\"" \
+ "Error while executing Scheme code."]
+
+with_test_prefix "empty doc string" {
+ gdb_test_multiline "empty doc string parameter" \
+ "guile" "" \
+ "(register-parameter! (make-parameter \"empty-doc-string\"" "" \
+ " #:command-class COMMAND_NONE" "" \
+ " #:parameter-type PARAM_ZINTEGER" "" \
+ " #:doc \"\"" "" \
+ " #:set-doc \"Set doc string.\"" "" \
+ " #:show-doc \"Show doc string.\"))" "" \
+ "end"
+
+ gdb_test "help set empty-doc-string" "^Set doc string\\."
+ gdb_test "help show empty-doc-string" "^Show doc string\\."
+}
+
+with_test_prefix "set/show parameter" {
+ # This first set/show prefix command doesn't have an invoke
+ # method. As such, GDB installs the default invoke behaviour; set
+ # prints the full list of sub-commands, and show prints all the
+ # sub-command values.
+ gdb_test_multiline "Setup set/show parameter prefix with no invoke" \
+ "guile" "" \
+ "(register-command! (make-command \"set test-prefix\"" "" \
+ " #:prefix? #t" "" \
+ " #:command-class COMMAND_NONE))" ""\
+ "(register-command! (make-command \"show test-prefix\"" "" \
+ " #:prefix? #t" "" \
+ " #:command-class COMMAND_NONE))" ""\
+ "(register-parameter! (make-parameter \"test-prefix param-1\"" "" \
+ " #:command-class COMMAND_NONE" "" \
+ " #:parameter-type PARAM_BOOLEAN))" "" \
+ "(register-parameter! (make-parameter \"test-prefix param-2\"" "" \
+ " #:command-class COMMAND_NONE" "" \
+ " #:parameter-type PARAM_UINTEGER))" "" \
+ "(register-parameter! (make-parameter \"test-prefix param-3\"" "" \
+ " #:command-class COMMAND_NONE" "" \
+ " #:parameter-type PARAM_STRING))" "" \
+ "end" ""
+
+ gdb_test "set test-prefix" \
+ [multi_line \
+ "List of \"set test-prefix\" subcommands:" \
+ "" \
+ "set test-prefix param-1 -- Set the current value of 'test-prefix param-1'." \
+ "set test-prefix param-2 -- Set the current value of 'test-prefix param-2'." \
+ "set test-prefix param-3 -- Set the current value of 'test-prefix param-3'." \
+ "" \
+ "Type \"help set test-prefix\" followed by subcommand name for full documentation\\." \
+ "Type \"apropos word\" to search for commands related to \"word\"\\." \
+ "Type \"apropos -v word\" for full documentation of commands related to \"word\"\\." \
+ "Command name abbreviations are allowed if unambiguous\\."]
+
+ gdb_test "show test-prefix" \
+ [multi_line \
+ "test-prefix param-1: The current value of 'test-prefix param-1' is off\\." \
+ "test-prefix param-2: The current value of 'test-prefix param-2' is 0\\." \
+ "test-prefix param-3: The current value of 'test-prefix param-3' is \"\"\\."]
+
+ # This next set/show prefix has an invoke method, which will be
+ # called instead of the default behaviour tested above.
+ gdb_test_multiline "Setup set/show parameter prefix with invoke" \
+ "guile" "" \
+ "(register-command! (make-command \"set test-prefix-2\"" "" \
+ " #:prefix? #t" "" \
+ " #:command-class COMMAND_NONE" ""\
+ " #:invoke (lambda (self arg from-tty)" "" \
+ " (display \"invoke -- set\\n\"))))" "" \
+ "(register-command! (make-command \"show test-prefix-2\"" "" \
+ " #:prefix? #t" "" \
+ " #:command-class COMMAND_NONE" ""\
+ " #:invoke (lambda (self arg from-tty)" "" \
+ " (display \"invoke -- show\\n\"))))" "" \
+ "(register-parameter! (make-parameter \"test-prefix-2 param-1\"" "" \
+ " #:command-class COMMAND_NONE" "" \
+ " #:parameter-type PARAM_BOOLEAN))" "" \
+ "(register-parameter! (make-parameter \"test-prefix-2 param-2\"" "" \
+ " #:command-class COMMAND_NONE" "" \
+ " #:parameter-type PARAM_UINTEGER))" "" \
+ "(register-parameter! (make-parameter \"test-prefix-2 param-3\"" "" \
+ " #:command-class COMMAND_NONE" "" \
+ " #:parameter-type PARAM_STRING))" "" \
+ "end" ""
+
+ gdb_test "set test-prefix-2" "^invoke -- set"
+
+ gdb_test "show test-prefix-2" "^invoke -- show"
}
rename scm_param_test_maybe_no_output ""
diff --git a/gdb/testsuite/gdb.guile/scm-ports.c b/gdb/testsuite/gdb.guile/scm-ports.c
index 59fd2bf..829419c 100644
--- a/gdb/testsuite/gdb.guile/scm-ports.c
+++ b/gdb/testsuite/gdb.guile/scm-ports.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-ports.exp b/gdb/testsuite/gdb.guile/scm-ports.exp
index 2f186dd..c67ebd2 100644
--- a/gdb/testsuite/gdb.guile/scm-ports.exp
+++ b/gdb/testsuite/gdb.guile/scm-ports.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-pretty-print.c b/gdb/testsuite/gdb.guile/scm-pretty-print.c
index d59fbb6..cada6b7 100644
--- a/gdb/testsuite/gdb.guile/scm-pretty-print.c
+++ b/gdb/testsuite/gdb.guile/scm-pretty-print.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-pretty-print.exp b/gdb/testsuite/gdb.guile/scm-pretty-print.exp
index d782da5..09717a9 100644
--- a/gdb/testsuite/gdb.guile/scm-pretty-print.exp
+++ b/gdb/testsuite/gdb.guile/scm-pretty-print.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-pretty-print.scm b/gdb/testsuite/gdb.guile/scm-pretty-print.scm
index 432d61f..9388bca 100644
--- a/gdb/testsuite/gdb.guile/scm-pretty-print.scm
+++ b/gdb/testsuite/gdb.guile/scm-pretty-print.scm
@@ -1,4 +1,4 @@
-;; Copyright (C) 2008-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2025 Free Software Foundation, Inc.
;;
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-progspace.c b/gdb/testsuite/gdb.guile/scm-progspace.c
index 80fcda0..170249b 100644
--- a/gdb/testsuite/gdb.guile/scm-progspace.c
+++ b/gdb/testsuite/gdb.guile/scm-progspace.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-progspace.exp b/gdb/testsuite/gdb.guile/scm-progspace.exp
index 2ca61dd..fbc5b73 100644
--- a/gdb/testsuite/gdb.guile/scm-progspace.exp
+++ b/gdb/testsuite/gdb.guile/scm-progspace.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-section-script.c b/gdb/testsuite/gdb.guile/scm-section-script.c
index c42d7c0..0a8654f 100644
--- a/gdb/testsuite/gdb.guile/scm-section-script.c
+++ b/gdb/testsuite/gdb.guile/scm-section-script.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-section-script.exp b/gdb/testsuite/gdb.guile/scm-section-script.exp
index fb46ad7..4c0238d 100644
--- a/gdb/testsuite/gdb.guile/scm-section-script.exp
+++ b/gdb/testsuite/gdb.guile/scm-section-script.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-section-script.scm b/gdb/testsuite/gdb.guile/scm-section-script.scm
index 205673b..a9a7c9e 100644
--- a/gdb/testsuite/gdb.guile/scm-section-script.scm
+++ b/gdb/testsuite/gdb.guile/scm-section-script.scm
@@ -1,4 +1,4 @@
-;; Copyright (C) 2010-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2025 Free Software Foundation, Inc.
;;
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-symbol.c b/gdb/testsuite/gdb.guile/scm-symbol.c
index 69b831a..23dcf82 100644
--- a/gdb/testsuite/gdb.guile/scm-symbol.c
+++ b/gdb/testsuite/gdb.guile/scm-symbol.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-symbol.exp b/gdb/testsuite/gdb.guile/scm-symbol.exp
index ad22a8b..b6ebffd 100644
--- a/gdb/testsuite/gdb.guile/scm-symbol.exp
+++ b/gdb/testsuite/gdb.guile/scm-symbol.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-symtab-2.c b/gdb/testsuite/gdb.guile/scm-symtab-2.c
index 464bb09..ba1c165 100644
--- a/gdb/testsuite/gdb.guile/scm-symtab-2.c
+++ b/gdb/testsuite/gdb.guile/scm-symtab-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-symtab.c b/gdb/testsuite/gdb.guile/scm-symtab.c
index 379af6b..b7dc369 100644
--- a/gdb/testsuite/gdb.guile/scm-symtab.c
+++ b/gdb/testsuite/gdb.guile/scm-symtab.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-symtab.exp b/gdb/testsuite/gdb.guile/scm-symtab.exp
index 91b5cb7..621bbbe 100644
--- a/gdb/testsuite/gdb.guile/scm-symtab.exp
+++ b/gdb/testsuite/gdb.guile/scm-symtab.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-type.c b/gdb/testsuite/gdb.guile/scm-type.c
index 2fa824c..cab4c71 100644
--- a/gdb/testsuite/gdb.guile/scm-type.c
+++ b/gdb/testsuite/gdb.guile/scm-type.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-type.exp b/gdb/testsuite/gdb.guile/scm-type.exp
index 3a4f2d0..1167dd1 100644
--- a/gdb/testsuite/gdb.guile/scm-type.exp
+++ b/gdb/testsuite/gdb.guile/scm-type.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-value-cc.cc b/gdb/testsuite/gdb.guile/scm-value-cc.cc
index 3c8ee23..2d7b389 100644
--- a/gdb/testsuite/gdb.guile/scm-value-cc.cc
+++ b/gdb/testsuite/gdb.guile/scm-value-cc.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-value-cc.exp b/gdb/testsuite/gdb.guile/scm-value-cc.exp
index 60e846f..202f01e 100644
--- a/gdb/testsuite/gdb.guile/scm-value-cc.exp
+++ b/gdb/testsuite/gdb.guile/scm-value-cc.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-value.c b/gdb/testsuite/gdb.guile/scm-value.c
index abcb53f..c95b2a5 100644
--- a/gdb/testsuite/gdb.guile/scm-value.c
+++ b/gdb/testsuite/gdb.guile/scm-value.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/scm-value.exp b/gdb/testsuite/gdb.guile/scm-value.exp
index b743149..1567b13 100644
--- a/gdb/testsuite/gdb.guile/scm-value.exp
+++ b/gdb/testsuite/gdb.guile/scm-value.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/source2.scm b/gdb/testsuite/gdb.guile/source2.scm
index 39a863b..0d02625 100644
--- a/gdb/testsuite/gdb.guile/source2.scm
+++ b/gdb/testsuite/gdb.guile/source2.scm
@@ -1,6 +1,6 @@
;; This testcase is part of GDB, the GNU debugger.
;;
-;; Copyright 2008-2024 Free Software Foundation, Inc.
+;; Copyright 2008-2025 Free Software Foundation, Inc.
;;
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/types-module.cc b/gdb/testsuite/gdb.guile/types-module.cc
index f3992c0..36e2866 100644
--- a/gdb/testsuite/gdb.guile/types-module.cc
+++ b/gdb/testsuite/gdb.guile/types-module.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.guile/types-module.exp b/gdb/testsuite/gdb.guile/types-module.exp
index dfd9422..c9d7067 100644
--- a/gdb/testsuite/gdb.guile/types-module.exp
+++ b/gdb/testsuite/gdb.guile/types-module.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/3explicit.c b/gdb/testsuite/gdb.linespec/3explicit.c
index 5c4f242..58f7a98 100644
--- a/gdb/testsuite/gdb.linespec/3explicit.c
+++ b/gdb/testsuite/gdb.linespec/3explicit.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/base/one/header.h b/gdb/testsuite/gdb.linespec/base/one/header.h
index 55ce779..9877795 100644
--- a/gdb/testsuite/gdb.linespec/base/one/header.h
+++ b/gdb/testsuite/gdb.linespec/base/one/header.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/base/two/header.h b/gdb/testsuite/gdb.linespec/base/two/header.h
index 6fe8cae..0fc1f4f 100644
--- a/gdb/testsuite/gdb.linespec/base/two/header.h
+++ b/gdb/testsuite/gdb.linespec/base/two/header.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/break-ask.exp b/gdb/testsuite/gdb.linespec/break-ask.exp
index 2f786f2..c852c91 100644
--- a/gdb/testsuite/gdb.linespec/break-ask.exp
+++ b/gdb/testsuite/gdb.linespec/break-ask.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/break-asm-file.c b/gdb/testsuite/gdb.linespec/break-asm-file.c
index 7aff7cc..4b4157d 100644
--- a/gdb/testsuite/gdb.linespec/break-asm-file.c
+++ b/gdb/testsuite/gdb.linespec/break-asm-file.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/break-asm-file.exp b/gdb/testsuite/gdb.linespec/break-asm-file.exp
index 1044fc7..989b1a5 100644
--- a/gdb/testsuite/gdb.linespec/break-asm-file.exp
+++ b/gdb/testsuite/gdb.linespec/break-asm-file.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/break-asm-file0.S b/gdb/testsuite/gdb.linespec/break-asm-file0.S
index 507b270..05af2af 100644
--- a/gdb/testsuite/gdb.linespec/break-asm-file0.S
+++ b/gdb/testsuite/gdb.linespec/break-asm-file0.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/break-asm-file1.S b/gdb/testsuite/gdb.linespec/break-asm-file1.S
index 3056871..4523205 100644
--- a/gdb/testsuite/gdb.linespec/break-asm-file1.S
+++ b/gdb/testsuite/gdb.linespec/break-asm-file1.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/cp-completion-aliases.cc b/gdb/testsuite/gdb.linespec/cp-completion-aliases.cc
index 945a1e6..bf9dc0b 100644
--- a/gdb/testsuite/gdb.linespec/cp-completion-aliases.cc
+++ b/gdb/testsuite/gdb.linespec/cp-completion-aliases.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/cp-completion-aliases.exp b/gdb/testsuite/gdb.linespec/cp-completion-aliases.exp
index d8fbcfa..bc3f79c 100644
--- a/gdb/testsuite/gdb.linespec/cp-completion-aliases.exp
+++ b/gdb/testsuite/gdb.linespec/cp-completion-aliases.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/cp-replace-typedefs-ns-template.cc b/gdb/testsuite/gdb.linespec/cp-replace-typedefs-ns-template.cc
index 2ec402b..7dac71e 100644
--- a/gdb/testsuite/gdb.linespec/cp-replace-typedefs-ns-template.cc
+++ b/gdb/testsuite/gdb.linespec/cp-replace-typedefs-ns-template.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -70,9 +70,9 @@ int_Templ1_t_func (int_Templ1_t *)
{
}
-} // namespace NS2
+} /* namespace NS2 */
-} // namespace NS1
+} /* namespace NS1 */
/* These typedefs have the same name as some of the components within
NS1 that they alias to, on purpose, to try to confuse GDB and cause
diff --git a/gdb/testsuite/gdb.linespec/cp-replace-typedefs-ns-template.exp b/gdb/testsuite/gdb.linespec/cp-replace-typedefs-ns-template.exp
index 214242f..77757fc 100644
--- a/gdb/testsuite/gdb.linespec/cp-replace-typedefs-ns-template.exp
+++ b/gdb/testsuite/gdb.linespec/cp-replace-typedefs-ns-template.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/cpcompletion.cc b/gdb/testsuite/gdb.linespec/cpcompletion.cc
index 5b050d3..b2eabd2 100644
--- a/gdb/testsuite/gdb.linespec/cpcompletion.cc
+++ b/gdb/testsuite/gdb.linespec/cpcompletion.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/cpcompletion.exp b/gdb/testsuite/gdb.linespec/cpcompletion.exp
index b5fc5eb..6c1c551 100644
--- a/gdb/testsuite/gdb.linespec/cpcompletion.exp
+++ b/gdb/testsuite/gdb.linespec/cpcompletion.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/cpexplicit.cc b/gdb/testsuite/gdb.linespec/cpexplicit.cc
index 08c03d4..3f49086 100644
--- a/gdb/testsuite/gdb.linespec/cpexplicit.cc
+++ b/gdb/testsuite/gdb.linespec/cpexplicit.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/cpexplicit.exp b/gdb/testsuite/gdb.linespec/cpexplicit.exp
index 62033d5..bd414a4 100644
--- a/gdb/testsuite/gdb.linespec/cpexplicit.exp
+++ b/gdb/testsuite/gdb.linespec/cpexplicit.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/cpls-abi-tag.cc b/gdb/testsuite/gdb.linespec/cpls-abi-tag.cc
index 9cdd227..93cdb65 100644
--- a/gdb/testsuite/gdb.linespec/cpls-abi-tag.cc
+++ b/gdb/testsuite/gdb.linespec/cpls-abi-tag.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/cpls-abi-tag.exp b/gdb/testsuite/gdb.linespec/cpls-abi-tag.exp
index ccc7723..c207925 100644
--- a/gdb/testsuite/gdb.linespec/cpls-abi-tag.exp
+++ b/gdb/testsuite/gdb.linespec/cpls-abi-tag.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/cpls-hyphen.cc b/gdb/testsuite/gdb.linespec/cpls-hyphen.cc
index 0668f70..92fa8a2 100644
--- a/gdb/testsuite/gdb.linespec/cpls-hyphen.cc
+++ b/gdb/testsuite/gdb.linespec/cpls-hyphen.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/cpls-ops.cc b/gdb/testsuite/gdb.linespec/cpls-ops.cc
index 2efc42e..bf6da47 100644
--- a/gdb/testsuite/gdb.linespec/cpls-ops.cc
+++ b/gdb/testsuite/gdb.linespec/cpls-ops.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/cpls-ops.exp b/gdb/testsuite/gdb.linespec/cpls-ops.exp
index 7ffcc5c..7a004d7 100644
--- a/gdb/testsuite/gdb.linespec/cpls-ops.exp
+++ b/gdb/testsuite/gdb.linespec/cpls-ops.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/cpls.cc b/gdb/testsuite/gdb.linespec/cpls.cc
index 0ab7ad3..08f3fc4 100644
--- a/gdb/testsuite/gdb.linespec/cpls.cc
+++ b/gdb/testsuite/gdb.linespec/cpls.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/cpls2.cc b/gdb/testsuite/gdb.linespec/cpls2.cc
index ef7979f..96a42d0 100644
--- a/gdb/testsuite/gdb.linespec/cpls2.cc
+++ b/gdb/testsuite/gdb.linespec/cpls2.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/errors.exp b/gdb/testsuite/gdb.linespec/errors.exp
index 573bb56..d9fd9cf 100644
--- a/gdb/testsuite/gdb.linespec/errors.exp
+++ b/gdb/testsuite/gdb.linespec/errors.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/explicit.c b/gdb/testsuite/gdb.linespec/explicit.c
index 957de50..98748bb 100644
--- a/gdb/testsuite/gdb.linespec/explicit.c
+++ b/gdb/testsuite/gdb.linespec/explicit.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/explicit.exp b/gdb/testsuite/gdb.linespec/explicit.exp
index b257a98..12eaa51 100644
--- a/gdb/testsuite/gdb.linespec/explicit.exp
+++ b/gdb/testsuite/gdb.linespec/explicit.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/explicit2.c b/gdb/testsuite/gdb.linespec/explicit2.c
index 9591b8c..cd500d4 100644
--- a/gdb/testsuite/gdb.linespec/explicit2.c
+++ b/gdb/testsuite/gdb.linespec/explicit2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/keywords.c b/gdb/testsuite/gdb.linespec/keywords.c
index 3a6074f..b5abe6e 100644
--- a/gdb/testsuite/gdb.linespec/keywords.c
+++ b/gdb/testsuite/gdb.linespec/keywords.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/keywords.exp b/gdb/testsuite/gdb.linespec/keywords.exp
index d2596d2..42a9228 100644
--- a/gdb/testsuite/gdb.linespec/keywords.exp
+++ b/gdb/testsuite/gdb.linespec/keywords.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/line-breakpoint-outside-function.c b/gdb/testsuite/gdb.linespec/line-breakpoint-outside-function.c
index 93c4383..a1b48fe 100644
--- a/gdb/testsuite/gdb.linespec/line-breakpoint-outside-function.c
+++ b/gdb/testsuite/gdb.linespec/line-breakpoint-outside-function.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/line-breakpoint-outside-function.exp b/gdb/testsuite/gdb.linespec/line-breakpoint-outside-function.exp
index 946304a..012be6b 100644
--- a/gdb/testsuite/gdb.linespec/line-breakpoint-outside-function.exp
+++ b/gdb/testsuite/gdb.linespec/line-breakpoint-outside-function.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/linespec.exp b/gdb/testsuite/gdb.linespec/linespec.exp
index 576d788..86b55bb 100644
--- a/gdb/testsuite/gdb.linespec/linespec.exp
+++ b/gdb/testsuite/gdb.linespec/linespec.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -194,6 +194,12 @@ gdb_test "break lspec.h:$line" \
"Breakpoint \[0-9\]+ at $hex: file .*lspec.h, line $line." \
"set breakpoint in f1"
+# This should only have a single location -- in no_multi_locs.
+set line [gdb_get_line_number no_multi_locs]
+gdb_test "break $line" \
+ "Breakpoint \[0-9\]+ at $hex: file .*$srcfile, line $line." \
+ "set breakpoint at no_multi_locs"
+
#
# Multi-inferior tests.
#
diff --git a/gdb/testsuite/gdb.linespec/ls-dollar.cc b/gdb/testsuite/gdb.linespec/ls-dollar.cc
index 8fd8a4a..093910e 100644
--- a/gdb/testsuite/gdb.linespec/ls-dollar.cc
+++ b/gdb/testsuite/gdb.linespec/ls-dollar.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/ls-dollar.exp b/gdb/testsuite/gdb.linespec/ls-dollar.exp
index 15952d7..e0d1795 100644
--- a/gdb/testsuite/gdb.linespec/ls-dollar.exp
+++ b/gdb/testsuite/gdb.linespec/ls-dollar.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/ls-errs.c b/gdb/testsuite/gdb.linespec/ls-errs.c
index 1dfccab..9c48c53 100644
--- a/gdb/testsuite/gdb.linespec/ls-errs.c
+++ b/gdb/testsuite/gdb.linespec/ls-errs.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/ls-errs.exp b/gdb/testsuite/gdb.linespec/ls-errs.exp
index 58125f3..303fd9f 100644
--- a/gdb/testsuite/gdb.linespec/ls-errs.exp
+++ b/gdb/testsuite/gdb.linespec/ls-errs.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/lspec.cc b/gdb/testsuite/gdb.linespec/lspec.cc
index bb660fb..ab0a193 100644
--- a/gdb/testsuite/gdb.linespec/lspec.cc
+++ b/gdb/testsuite/gdb.linespec/lspec.cc
@@ -13,6 +13,8 @@ int body_elsewhere()
#include "body.h"
}
+void no_multi_locs () { {int var = 0;} }
+
int main()
{
return dupname(0) + m(0) + n(0) + f1() + f2() + body_elsewhere();
diff --git a/gdb/testsuite/gdb.linespec/macro-relative.c b/gdb/testsuite/gdb.linespec/macro-relative.c
index f0e18fe..6536157 100644
--- a/gdb/testsuite/gdb.linespec/macro-relative.c
+++ b/gdb/testsuite/gdb.linespec/macro-relative.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/macro-relative.exp b/gdb/testsuite/gdb.linespec/macro-relative.exp
index eafb7fe..94ab16a 100644
--- a/gdb/testsuite/gdb.linespec/macro-relative.exp
+++ b/gdb/testsuite/gdb.linespec/macro-relative.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/skip-two.exp b/gdb/testsuite/gdb.linespec/skip-two.exp
index 180a7ce..6e3ab30 100644
--- a/gdb/testsuite/gdb.linespec/skip-two.exp
+++ b/gdb/testsuite/gdb.linespec/skip-two.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/thread.c b/gdb/testsuite/gdb.linespec/thread.c
index 3f3d202..140f8e0 100644
--- a/gdb/testsuite/gdb.linespec/thread.c
+++ b/gdb/testsuite/gdb.linespec/thread.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.linespec/thread.exp b/gdb/testsuite/gdb.linespec/thread.exp
index 07df7fc..d2f7b25 100644
--- a/gdb/testsuite/gdb.linespec/thread.exp
+++ b/gdb/testsuite/gdb.linespec/thread.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/array.f90 b/gdb/testsuite/gdb.mi/array.f90
index 5bfb910..f687b0d 100644
--- a/gdb/testsuite/gdb.mi/array.f90
+++ b/gdb/testsuite/gdb.mi/array.f90
@@ -1,4 +1,4 @@
-! Copyright 2006-2024 Free Software Foundation, Inc.
+! Copyright 2006-2025 Free Software Foundation, Inc.
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/basics.c b/gdb/testsuite/gdb.mi/basics.c
index 12e1203..31ddc4a 100644
--- a/gdb/testsuite/gdb.mi/basics.c
+++ b/gdb/testsuite/gdb.mi/basics.c
@@ -1,4 +1,4 @@
-/* Copyright 1999-2024 Free Software Foundation, Inc.
+/* Copyright 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/dw2-ref-missing-frame-func.c b/gdb/testsuite/gdb.mi/dw2-ref-missing-frame-func.c
index a37307c..1f7930f 100644
--- a/gdb/testsuite/gdb.mi/dw2-ref-missing-frame-func.c
+++ b/gdb/testsuite/gdb.mi/dw2-ref-missing-frame-func.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/dw2-ref-missing-frame-main.c b/gdb/testsuite/gdb.mi/dw2-ref-missing-frame-main.c
index 59b8b00..2b89666 100644
--- a/gdb/testsuite/gdb.mi/dw2-ref-missing-frame-main.c
+++ b/gdb/testsuite/gdb.mi/dw2-ref-missing-frame-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/dw2-ref-missing-frame.S b/gdb/testsuite/gdb.mi/dw2-ref-missing-frame.S
index 8842696..8b68213 100644
--- a/gdb/testsuite/gdb.mi/dw2-ref-missing-frame.S
+++ b/gdb/testsuite/gdb.mi/dw2-ref-missing-frame.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp b/gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp
index b91f915..3fd9b81 100644
--- a/gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp
+++ b/gdb/testsuite/gdb.mi/dw2-ref-missing-frame.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/gdb2549.exp b/gdb/testsuite/gdb.mi/gdb2549.exp
index fb3fbf7..796c1fa 100644
--- a/gdb/testsuite/gdb.mi/gdb2549.exp
+++ b/gdb/testsuite/gdb.mi/gdb2549.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/gdb669.exp b/gdb/testsuite/gdb.mi/gdb669.exp
index 645780a..086d3c1 100644
--- a/gdb/testsuite/gdb.mi/gdb669.exp
+++ b/gdb/testsuite/gdb.mi/gdb669.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/gdb680.exp b/gdb/testsuite/gdb.mi/gdb680.exp
index 162ebcc..6eb8928 100644
--- a/gdb/testsuite/gdb.mi/gdb680.exp
+++ b/gdb/testsuite/gdb.mi/gdb680.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/gdb701.exp b/gdb/testsuite/gdb.mi/gdb701.exp
index fe6ad04..587481c 100644
--- a/gdb/testsuite/gdb.mi/gdb701.exp
+++ b/gdb/testsuite/gdb.mi/gdb701.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/gdb792.exp b/gdb/testsuite/gdb.mi/gdb792.exp
index b11934b..f894eea 100644
--- a/gdb/testsuite/gdb.mi/gdb792.exp
+++ b/gdb/testsuite/gdb.mi/gdb792.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/interrupt-thread-group.c b/gdb/testsuite/gdb.mi/interrupt-thread-group.c
index 3fbb113..a8392c7 100644
--- a/gdb/testsuite/gdb.mi/interrupt-thread-group.c
+++ b/gdb/testsuite/gdb.mi/interrupt-thread-group.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/interrupt-thread-group.exp b/gdb/testsuite/gdb.mi/interrupt-thread-group.exp
index ee71831..869fb1c 100644
--- a/gdb/testsuite/gdb.mi/interrupt-thread-group.exp
+++ b/gdb/testsuite/gdb.mi/interrupt-thread-group.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -54,7 +54,7 @@ mi_send_resuming_command "exec-continue --thread-group i1" \
# We can't run a second inferior on stub targets. We can still test with one
# inferior and ensure that the command has the desired effect.
-set use_second_inferior [expr {![use_gdb_stub]}]
+set use_second_inferior [expr {![use_gdb_stub] && [allow_multi_inferior_tests]}]
if { $use_second_inferior } {
mi_gdb_test "-add-inferior" \
diff --git a/gdb/testsuite/gdb.mi/list-thread-groups-available.c b/gdb/testsuite/gdb.mi/list-thread-groups-available.c
index 77b2cc1..00b6974 100644
--- a/gdb/testsuite/gdb.mi/list-thread-groups-available.c
+++ b/gdb/testsuite/gdb.mi/list-thread-groups-available.c
@@ -1,4 +1,4 @@
-/* Copyright 2017-2024 Free Software Foundation, Inc.
+/* Copyright 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/list-thread-groups-available.exp b/gdb/testsuite/gdb.mi/list-thread-groups-available.exp
index 7f6ff2a..b41c768 100644
--- a/gdb/testsuite/gdb.mi/list-thread-groups-available.exp
+++ b/gdb/testsuite/gdb.mi/list-thread-groups-available.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/list-thread-groups-no-inferior.exp b/gdb/testsuite/gdb.mi/list-thread-groups-no-inferior.exp
index f27895f..867eb26 100644
--- a/gdb/testsuite/gdb.mi/list-thread-groups-no-inferior.exp
+++ b/gdb/testsuite/gdb.mi/list-thread-groups-no-inferior.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-add-inferior.exp b/gdb/testsuite/gdb.mi/mi-add-inferior.exp
index ebb669f..d110e68 100644
--- a/gdb/testsuite/gdb.mi/mi-add-inferior.exp
+++ b/gdb/testsuite/gdb.mi/mi-add-inferior.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-async-run.c b/gdb/testsuite/gdb.mi/mi-async-run.c
index 16c9887..a5bedaa 100644
--- a/gdb/testsuite/gdb.mi/mi-async-run.c
+++ b/gdb/testsuite/gdb.mi/mi-async-run.c
@@ -1,4 +1,4 @@
-/* Copyright 2016-2024 Free Software Foundation, Inc.
+/* Copyright 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/mi-async-run.exp b/gdb/testsuite/gdb.mi/mi-async-run.exp
index 033768f..8352803 100644
--- a/gdb/testsuite/gdb.mi/mi-async-run.exp
+++ b/gdb/testsuite/gdb.mi/mi-async-run.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-async.exp b/gdb/testsuite/gdb.mi/mi-async.exp
index 74aff56..09db7f9 100644
--- a/gdb/testsuite/gdb.mi/mi-async.exp
+++ b/gdb/testsuite/gdb.mi/mi-async.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-basics.exp b/gdb/testsuite/gdb.mi/mi-basics.exp
index d712188..2add9db 100644
--- a/gdb/testsuite/gdb.mi/mi-basics.exp
+++ b/gdb/testsuite/gdb.mi/mi-basics.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-break-qualified.cc b/gdb/testsuite/gdb.mi/mi-break-qualified.cc
index c34fe1f..7c3a495 100644
--- a/gdb/testsuite/gdb.mi/mi-break-qualified.cc
+++ b/gdb/testsuite/gdb.mi/mi-break-qualified.cc
@@ -1,4 +1,4 @@
-/* Copyright 2020-2024 Free Software Foundation, Inc.
+/* Copyright 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/mi-break-qualified.exp b/gdb/testsuite/gdb.mi/mi-break-qualified.exp
index 20e2bb8..b5e5e78 100644
--- a/gdb/testsuite/gdb.mi/mi-break-qualified.exp
+++ b/gdb/testsuite/gdb.mi/mi-break-qualified.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-break.exp b/gdb/testsuite/gdb.mi/mi-break.exp
index 86e7b57..bb982c3 100644
--- a/gdb/testsuite/gdb.mi/mi-break.exp
+++ b/gdb/testsuite/gdb.mi/mi-break.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -417,6 +417,10 @@ proc test_break {mi_mode} {
test_explicit_breakpoints
test_forced_conditions
+
+ # mi_clean_restart and gdb_finish call gdb_exit, which doesn't work for
+ # separate-mi-tty. Use mi_gdb_exit instead.
+ mi_gdb_exit
}
foreach_mi_ui_mode mi-mode {
diff --git a/gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp b/gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp
index 305c061..9cb91de 100644
--- a/gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp
+++ b/gdb/testsuite/gdb.mi/mi-breakpoint-changed.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-breakpoint-multiple-locations.cc b/gdb/testsuite/gdb.mi/mi-breakpoint-multiple-locations.cc
index f5d45d6..e572f08 100644
--- a/gdb/testsuite/gdb.mi/mi-breakpoint-multiple-locations.cc
+++ b/gdb/testsuite/gdb.mi/mi-breakpoint-multiple-locations.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-breakpoint-multiple-locations.exp b/gdb/testsuite/gdb.mi/mi-breakpoint-multiple-locations.exp
index 93ddad8..cbf9f57 100644
--- a/gdb/testsuite/gdb.mi/mi-breakpoint-multiple-locations.exp
+++ b/gdb/testsuite/gdb.mi/mi-breakpoint-multiple-locations.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-breakpoint-script.c b/gdb/testsuite/gdb.mi/mi-breakpoint-script.c
index 5677680..91b7727 100644
--- a/gdb/testsuite/gdb.mi/mi-breakpoint-script.c
+++ b/gdb/testsuite/gdb.mi/mi-breakpoint-script.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-breakpoint-script.exp b/gdb/testsuite/gdb.mi/mi-breakpoint-script.exp
index e8c06c4..af514e8 100644
--- a/gdb/testsuite/gdb.mi/mi-breakpoint-script.exp
+++ b/gdb/testsuite/gdb.mi/mi-breakpoint-script.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.cc b/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.cc
index d41b55d..7fefcfc 100644
--- a/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.cc
+++ b/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.cc
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp b/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp
index 2205eed..9053b18 100644
--- a/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp
+++ b/gdb/testsuite/gdb.mi/mi-catch-cpp-exceptions.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-catch-load-so.c b/gdb/testsuite/gdb.mi/mi-catch-load-so.c
index 217586e..8e7df6d 100644
--- a/gdb/testsuite/gdb.mi/mi-catch-load-so.c
+++ b/gdb/testsuite/gdb.mi/mi-catch-load-so.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-catch-load.c b/gdb/testsuite/gdb.mi/mi-catch-load.c
index 88ade39..d8c91a3 100644
--- a/gdb/testsuite/gdb.mi/mi-catch-load.c
+++ b/gdb/testsuite/gdb.mi/mi-catch-load.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-catch-load.exp b/gdb/testsuite/gdb.mi/mi-catch-load.exp
index a969b3f..a9a5fdc 100644
--- a/gdb/testsuite/gdb.mi/mi-catch-load.exp
+++ b/gdb/testsuite/gdb.mi/mi-catch-load.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.mi/mi-cli.exp b/gdb/testsuite/gdb.mi/mi-cli.exp
index e8e80e9..a3ff7eb 100644
--- a/gdb/testsuite/gdb.mi/mi-cli.exp
+++ b/gdb/testsuite/gdb.mi/mi-cli.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-cmd-error.exp b/gdb/testsuite/gdb.mi/mi-cmd-error.exp
index a4ef95c..195bced 100644
--- a/gdb/testsuite/gdb.mi/mi-cmd-error.exp
+++ b/gdb/testsuite/gdb.mi/mi-cmd-error.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp b/gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp
index d0d219f..5587b76 100644
--- a/gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp
+++ b/gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-cmd-user-context.c b/gdb/testsuite/gdb.mi/mi-cmd-user-context.c
index d74e161..dfc23b2 100644
--- a/gdb/testsuite/gdb.mi/mi-cmd-user-context.c
+++ b/gdb/testsuite/gdb.mi/mi-cmd-user-context.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-cmd-user-context.exp b/gdb/testsuite/gdb.mi/mi-cmd-user-context.exp
index 9224986..806ed4c 100644
--- a/gdb/testsuite/gdb.mi/mi-cmd-user-context.exp
+++ b/gdb/testsuite/gdb.mi/mi-cmd-user-context.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-complete.cc b/gdb/testsuite/gdb.mi/mi-complete.cc
index 5f5aee5..89ddc21 100644
--- a/gdb/testsuite/gdb.mi/mi-complete.cc
+++ b/gdb/testsuite/gdb.mi/mi-complete.cc
@@ -1,4 +1,4 @@
-/* Copyright 2018-2024 Free Software Foundation, Inc.
+/* Copyright 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/mi-complete.exp b/gdb/testsuite/gdb.mi/mi-complete.exp
index 7fccaa2..22acda3 100644
--- a/gdb/testsuite/gdb.mi/mi-complete.exp
+++ b/gdb/testsuite/gdb.mi/mi-complete.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-mt.c b/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-mt.c
index a794834..6018fd3 100644
--- a/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-mt.c
+++ b/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-mt.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-st.c b/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-st.c
index 04e9a58..abe4e15 100644
--- a/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-st.c
+++ b/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state-st.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.c b/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.c
index c862651..5a4a829 100644
--- a/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.c
+++ b/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.exp b/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.exp
index 98086af..02d02b2 100644
--- a/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.exp
+++ b/gdb/testsuite/gdb.mi/mi-condbreak-call-thr-state.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-condbreak-fail.c b/gdb/testsuite/gdb.mi/mi-condbreak-fail.c
index 9c21ae5..330fe96 100644
--- a/gdb/testsuite/gdb.mi/mi-condbreak-fail.c
+++ b/gdb/testsuite/gdb.mi/mi-condbreak-fail.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/mi-condbreak-fail.exp b/gdb/testsuite/gdb.mi/mi-condbreak-fail.exp
index fdcfa9b..43b1e2f 100644
--- a/gdb/testsuite/gdb.mi/mi-condbreak-fail.exp
+++ b/gdb/testsuite/gdb.mi/mi-condbreak-fail.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-condbreak-throw.cc b/gdb/testsuite/gdb.mi/mi-condbreak-throw.cc
index c7aa232..afee5f6 100644
--- a/gdb/testsuite/gdb.mi/mi-condbreak-throw.cc
+++ b/gdb/testsuite/gdb.mi/mi-condbreak-throw.cc
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/mi-condbreak-throw.exp b/gdb/testsuite/gdb.mi/mi-condbreak-throw.exp
index 2d2392d..0a89a8a 100644
--- a/gdb/testsuite/gdb.mi/mi-condbreak-throw.exp
+++ b/gdb/testsuite/gdb.mi/mi-condbreak-throw.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,7 +16,7 @@
# Check that when GDB fails to evaluate the condition of a conditional
# breakpoint we only get one *stopped notification. In this test case
# the breakpoint condition fails due to throwing an uncaught C++
-# excpetion.
+# exception.
require allow_cplus_tests
diff --git a/gdb/testsuite/gdb.mi/mi-console.exp b/gdb/testsuite/gdb.mi/mi-console.exp
index 7d24328..efb1ea9 100644
--- a/gdb/testsuite/gdb.mi/mi-console.exp
+++ b/gdb/testsuite/gdb.mi/mi-console.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-corefile.c b/gdb/testsuite/gdb.mi/mi-corefile.c
index 9807c24..0e9a64e 100644
--- a/gdb/testsuite/gdb.mi/mi-corefile.c
+++ b/gdb/testsuite/gdb.mi/mi-corefile.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/mi-corefile.exp b/gdb/testsuite/gdb.mi/mi-corefile.exp
index 573f0ac..3f0e720 100644
--- a/gdb/testsuite/gdb.mi/mi-corefile.exp
+++ b/gdb/testsuite/gdb.mi/mi-corefile.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-detach.exp b/gdb/testsuite/gdb.mi/mi-detach.exp
index 8f33e2a..ff983c1 100644
--- a/gdb/testsuite/gdb.mi/mi-detach.exp
+++ b/gdb/testsuite/gdb.mi/mi-detach.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-disassemble.exp b/gdb/testsuite/gdb.mi/mi-disassemble.exp
index 1b4e919..15ead33 100644
--- a/gdb/testsuite/gdb.mi/mi-disassemble.exp
+++ b/gdb/testsuite/gdb.mi/mi-disassemble.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-dlmopen-lib-dep.c b/gdb/testsuite/gdb.mi/mi-dlmopen-lib-dep.c
new file mode 100644
index 0000000..f981bea
--- /dev/null
+++ b/gdb/testsuite/gdb.mi/mi-dlmopen-lib-dep.c
@@ -0,0 +1,21 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2021-2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>.
+
+*/
+
+__attribute__((visibility ("default")))
+int gdb_dlmopen_glob = 1;
diff --git a/gdb/testsuite/gdb.mi/mi-dlmopen-lib.c b/gdb/testsuite/gdb.mi/mi-dlmopen-lib.c
new file mode 100644
index 0000000..36ccbf02
--- /dev/null
+++ b/gdb/testsuite/gdb.mi/mi-dlmopen-lib.c
@@ -0,0 +1,28 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2021-2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>.
+
+*/
+
+extern int gdb_dlmopen_glob;
+
+__attribute__((visibility ("default")))
+int
+inc (int n)
+{
+ int amount = gdb_dlmopen_glob;
+ return n + amount; /* bp.inc. */
+}
diff --git a/gdb/testsuite/gdb.mi/mi-dlmopen.c b/gdb/testsuite/gdb.mi/mi-dlmopen.c
new file mode 100644
index 0000000..3cdee68
--- /dev/null
+++ b/gdb/testsuite/gdb.mi/mi-dlmopen.c
@@ -0,0 +1,59 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2021-2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>.
+
+*/
+
+#define _GNU_SOURCE
+#include <dlfcn.h>
+#include <stddef.h>
+#include <assert.h>
+#include <unistd.h>
+
+int
+main (void)
+{
+ void *handle[4];
+ int (*fun) (int);
+ Lmid_t lmid;
+ int dl;
+
+ handle[0] = dlmopen (LM_ID_NEWLM, DSO1_NAME, RTLD_LAZY | RTLD_LOCAL);
+ assert (handle[0] != NULL);
+
+ dlinfo (handle[0], RTLD_DI_LMID, &lmid);
+
+ handle[1] = dlopen (DSO1_NAME, RTLD_LAZY | RTLD_LOCAL);
+ assert (handle[1] != NULL);
+
+ handle[2] = dlmopen (LM_ID_NEWLM, DSO1_NAME, RTLD_LAZY | RTLD_LOCAL);
+ assert (handle[2] != NULL);
+
+ handle[3] = dlmopen (lmid, DSO2_NAME, RTLD_LAZY | RTLD_LOCAL);
+ assert (handle[3] != NULL); /* bp.loaded */
+
+ for (dl = 0; dl < 4; ++dl)
+ {
+ fun = dlsym (handle[dl], "inc");
+ assert (fun != NULL);
+
+ fun (42);
+
+ dlclose (handle[dl]);
+ }
+
+ return 0; /* bp.main */
+}
diff --git a/gdb/testsuite/gdb.mi/mi-dlmopen.exp b/gdb/testsuite/gdb.mi/mi-dlmopen.exp
new file mode 100644
index 0000000..c0208eb
--- /dev/null
+++ b/gdb/testsuite/gdb.mi/mi-dlmopen.exp
@@ -0,0 +1,222 @@
+# This testcase is part of GDB, the GNU debugger.
+#
+# Copyright 2024-2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# MI tests related to loading shared libraries into different namespaces
+# with dlmopen(). The source files for this test are copied (almost)
+# verbatim from the gdb.base/dlmopen.exp test.
+
+load_lib "mi-support.exp"
+
+require allow_dlmopen_tests
+
+standard_testfile .c -lib.c -lib-dep.c
+
+set basename_lib dlmopen-lib
+set srcfile_lib $srcfile2
+set binfile_lib1 [standard_output_file $basename_lib.1.so]
+set binfile_lib2 [standard_output_file $basename_lib.2.so]
+set srcfile_lib_dep $srcfile3
+set binfile_lib_dep [standard_output_file $basename_lib-dep.so]
+
+if { [build_executable "build shlib dep" $binfile_lib_dep $srcfile_lib_dep \
+ {debug shlib}] == -1 } {
+ return
+}
+
+if { [build_executable "build shlib" $binfile_lib1 $srcfile_lib \
+ [list debug shlib_load shlib libs=$binfile_lib_dep]] == -1 } {
+ return
+}
+
+if { [build_executable "build shlib" $binfile_lib2 $srcfile_lib \
+ [list debug shlib_load shlib libs=$binfile_lib_dep]] == -1 } {
+ return
+}
+
+if { [build_executable "failed to build" $testfile $srcfile \
+ [list additional_flags=-DDSO1_NAME=\"$binfile_lib1\" \
+ additional_flags=-DDSO2_NAME=\"$binfile_lib2\" \
+ shlib_load debug]] } {
+ return
+}
+
+# Figure out the file name for the dynamic linker.
+set dyln_name [section_get $binfile .interp]
+if { $dyln_name eq "" } {
+ unsupported "couldn't find dynamic linker name"
+ return
+}
+
+# Some source locations needed by the tests.
+set bp_main [gdb_get_line_number "bp.main" $srcfile]
+set bp_loaded [gdb_get_line_number "bp.loaded" $srcfile]
+
+# Return true if FILENAME is the dynamic linker. Otherwise return false.
+proc is_dyln { filename } {
+ return [expr {$filename eq $::dyln_name}]
+}
+
+# Run 'info sharedlibrary' and count the number of mappings that look
+# like they might be the dynamic linker. This will only work for
+# Linux right now.
+proc get_dyld_info {} {
+ if { ![istarget *-linux*] } {
+ return [list 0 ""]
+ }
+
+ set dyld_count 0
+ set dyld_start_addr ""
+ gdb_test_multiple "info sharedlibrary" "" {
+ -re "~\"From\\s+To(\\s+NS)?\\s+Syms\\s+Read\\s+Shared Object Library\\\\n\"\r\n" {
+ exp_continue
+ }
+ -re "^~\"($::hex)\\s+${::hex}(\\s+$::decimal)?\\s+\[^/\]+(/\[^\r\n\]+)\\\\n\"\r\n" {
+ set addr $expect_out(1,string)
+ set lib $expect_out(3,string)
+
+ if { [is_dyln $lib] } {
+ # This looks like it might be the dynamic linker.
+ incr dyld_count
+ if { $dyld_start_addr eq "" } {
+ set dyld_start_addr $addr
+ } elseif { $dyld_start_addr ne $addr } {
+ set dyld_start_addr "MULTIPLE"
+ }
+ }
+
+ exp_continue
+ }
+ -re "~\"\\(\\*\\): Shared library is missing debugging information\\.\\\\n\"\r\n" {
+ exp_continue
+ }
+ -re "^\\^done\r\n" {
+ exp_continue
+ }
+ -re "^$::mi_gdb_prompt$" {
+ }
+ }
+
+ if { $dyld_start_addr eq "MULTIPLE" } {
+ set dyld_start_addr ""
+ }
+
+ return [list $dyld_count $dyld_start_addr]
+}
+
+# Run the inferior over all the 'dlclose' calls and capture the
+# resulting library-unloaded events. Check that we see the expected
+# number of unload events for the libraries created for this test, and
+# additionally, check for dynamic linker unload events.
+proc check_solib_unload_events {} {
+ mi_clean_restart $::binfile
+
+ if {[mi_runto_main] == -1} {
+ return
+ }
+
+ # After starting we expect the dynamic linker to be loaded exactly
+ # once. If it is not then we'll not be able to check the dynamic
+ # linker unloaded events later in this script.
+ set dyld_info [get_dyld_info]
+ set dyld_count [lindex $dyld_info 0]
+ if { $dyld_count != 1 } {
+ unsupported "dynamic linker doesn't appear to be loaded"
+ return
+ }
+
+ # Create breakpoints.
+ mi_create_breakpoint "$::srcfile:$::bp_loaded" \
+ "create b/p once libraries are loaded" \
+ -disp keep -func main -file ".*$::srcfile" -line $::bp_loaded
+ mi_create_breakpoint "$::srcfile:$::bp_main" "create b/p at dlclose" \
+ -disp keep -func main -file ".*$::srcfile" -line $::bp_main
+
+ # Run past all the dlopen and dlmopen calls.
+ mi_execute_to "exec-continue" "breakpoint-hit" main "" ".*" $::bp_loaded \
+ {"" "disp=\"keep\""} "continue until all libraries are loaded"
+
+ # Check that the dynamic linker has now been loaded multiple times.
+ set dyld_info [get_dyld_info]
+ set dyld_count [lindex $dyld_info 0]
+ if { $dyld_count < 2 } {
+ unsupported "not enough instances of the dynamic linker are mapped in"
+ return
+ }
+
+ # Continue. This will run until the end of 'main', and will pass
+ # over all the dlclose calls.
+ if {[mi_send_resuming_command "exec-continue" "exec-next"] == -1} {
+ return
+ }
+
+ # As a result of all the dlclose calls we should see some library
+ # unload events. Process them now.
+ set dyld_unload_count 0
+ array set unload_counts {}
+ set still_in_use_fields_correct true
+ gdb_test_multiple "" "" -prompt $::mi_gdb_prompt {
+ -re "=library-unloaded,id=\"(\[^\"\]+)\",\[^\r\n\]+,ranges=\\\[\\{from=\"$::hex\",to=\"$::hex\"\\}\\\],still-in-use=\"(true|false)\"\r\n" {
+ set lib $expect_out(1,string)
+ set in_use $expect_out(2,string)
+ if {[is_dyln $lib]} {
+ # This is the dynamic linker being unloaded.
+ incr dyld_unload_count
+ set expected_in_use "true"
+ } else {
+ set expected_in_use "false"
+ }
+
+ if { $in_use ne $expected_in_use } {
+ set still_in_use_fields_correct false
+ }
+
+ set filename [file tail $lib]
+ incr unload_counts($filename)
+ exp_continue
+ }
+ -re "\\*stopped,reason=\"breakpoint-hit\",\[^\r\n\]+\r\n$::mi_gdb_prompt" {
+ }
+ }
+
+ # Check we saw the dynamic linker being unloaded the expected number of
+ # times.
+ gdb_assert { $dyld_unload_count == $dyld_count - 1 } \
+ "expected number of dynamic linker unloads"
+
+ gdb_assert { $still_in_use_fields_correct } \
+ "still-in-use fields were all correct"
+
+ # Check that we saw the expected number of library-unloaded events for
+ # each library. Each DESC is a list of two elements, a filename for a
+ # library, and the number of times it should have been unloaded.
+ foreach desc [list [list $::binfile_lib1 3] \
+ [list $::binfile_lib_dep 3] \
+ [list $::binfile_lib2 1]] {
+ set filename [file tail [lindex $desc 0]]
+ set count [lindex $desc 1]
+ gdb_assert { $unload_counts($filename) == $count } \
+ "check unload count for $filename"
+ }
+
+ # Check that the dynamic linker still shows as loaded exactly once.
+ set dyld_info [get_dyld_info]
+ set dyld_count [lindex $dyld_info 0]
+ gdb_assert { $dyld_count == 1 } \
+ "dynamic linker is mapped once at final b/p"
+}
+
+check_solib_unload_events
diff --git a/sim/arm/armemu32.c b/gdb/testsuite/gdb.mi/mi-dprintf-modified-lib.c
index 92dacde..70fc328 100644
--- a/sim/arm/armemu32.c
+++ b/gdb/testsuite/gdb.mi/mi-dprintf-modified-lib.c
@@ -1,5 +1,6 @@
-/* Build armemu.c with ARM32 support.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -12,7 +13,10 @@
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, see <https://www.gnu.org/licenses/>. */
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#define MODE32
-#include "armemu.c"
+int
+foo (void)
+{
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.mi/mi-dprintf-modified.c b/gdb/testsuite/gdb.mi/mi-dprintf-modified.c
new file mode 100644
index 0000000..7a41adbac
--- /dev/null
+++ b/gdb/testsuite/gdb.mi/mi-dprintf-modified.c
@@ -0,0 +1,55 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include <stdlib.h>
+
+#ifdef __WIN32__
+#include <windows.h>
+#define dlopen(name, mode) LoadLibrary (TEXT (name))
+#ifdef _WIN32_WCE
+# define dlsym(handle, func) GetProcAddress (handle, TEXT (func))
+#else
+# define dlsym(handle, func) GetProcAddress (handle, func)
+#endif
+#define dlclose(handle) FreeLibrary (handle)
+#else
+#include <dlfcn.h>
+#endif
+
+#include <assert.h>
+
+int
+main (void)
+{
+ int res;
+ void *handle;
+ int (*func) (void);
+ int val = 0;
+
+ handle = dlopen (SHLIB_NAME, RTLD_LAZY); /* Break here. */
+ assert (handle != NULL);
+
+ func = (int (*)(void)) dlsym (handle, "foo");
+ assert (func != NULL);
+
+ val += func ();
+
+ res = dlclose (handle);
+ assert (res == 0);
+
+ return val;
+}
diff --git a/gdb/testsuite/gdb.mi/mi-dprintf-modified.exp b/gdb/testsuite/gdb.mi/mi-dprintf-modified.exp
new file mode 100644
index 0000000..c3e1bdf
--- /dev/null
+++ b/gdb/testsuite/gdb.mi/mi-dprintf-modified.exp
@@ -0,0 +1,119 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Check that GDB doesn't emit a 'breakpoint-modified' notification for
+# dprintf breakpoints when the dprintf commands haven't changed.
+#
+# GDB use to emit a 'breakpoint-modified' dprintf breakpoints each
+# time the dprintf_breakpoint::re_set function was called as this
+# would re-cacluate the dprintf command string, even though in most
+# cases the calculated string was no different from the previous
+# value.
+#
+# Then GDB got smarter and could recognise that the string had not
+# changed, and so would skip the 'breakpoint-modified' notification.
+#
+# This test stops at a dlopen() call in the inferior and creates a
+# dprintf breakpoint. Then we 'next' over the dlopen() which triggers
+# a call to the ::re_set() functions. We check that there is no
+# 'breakpoint-modified' event emitted for the dprintf breakpoint.
+
+load_lib mi-support.exp
+set MIFLAGS "-i=mi"
+
+standard_testfile .c -lib.c
+
+# Build the library.
+set libname ${testfile}-lib
+set libfile [standard_output_file $libname]
+if { [build_executable "build shlib" $libfile $srcfile2 {debug shlib}] == -1} {
+ return
+}
+
+# Build the executable.
+set opts [list debug shlib_load additional_flags=-DSHLIB_NAME=\"${libname}\"]
+if { [build_executable "build exec" $binfile $srcfile $opts] == -1} {
+ return
+}
+
+# The line number of the dlopen() call.
+set bp_line [gdb_get_line_number "Break here" $srcfile]
+
+# Start the inferior.
+mi_clean_restart $binfile
+mi_runto_main
+
+# Place a breakpoint at the dlopen() line.
+mi_create_breakpoint $srcfile:$bp_line "set breakpoint at dlopen call" \
+ -disp keep -func main -file "\[^\r\n\]+/$srcfile" -line $bp_line
+
+# And run to the breakpoint.
+mi_execute_to "exec-continue" "breakpoint-hit" main "" ".*/$srcfile" \
+ $bp_line { "" "disp=\"keep\"" } "run to breakpoint"
+
+# Cleanup breakpoints.
+mi_delete_breakpoints
+
+# Setup a dprintf breakpoint.
+mi_gdb_test "-dprintf-insert --function main \"in main\"" \
+ "\\^done,bkpt={.*}" "dprintf at main"
+
+set bpnum [mi_get_valueof "/d" "\$bpnum" "INVALID" \
+ "get number for dprintf breakpoint"]
+
+# Use 'next' to step over loading the shared library.
+mi_gdb_test "220-exec-next" ".*" "next over dlopen"
+
+# Now wait for the 'stopped' notification. While we wait we should
+# see a 'library-loaded' notification for the loading of the shared
+# library.
+#
+# In older versions of GDB we would also see a 'breakpoint-modified'
+# notification for the dprintf breakpoint, but newer versions of GDB
+# are smart enough to not emit this unnecessary notification.
+set bp_re [mi_make_breakpoint -number $bpnum \
+ -type dprintf -disp keep -enabled y -func main]
+set saw_bp_modified false
+set saw_lib_load false
+set saw_stopped false
+gdb_test_multiple "" "wait for 'next' to complete" {
+ -re "^=library-loaded,id=\[^\r\n\]+\r\n" {
+ set saw_lib_load true
+ exp_continue
+ }
+
+ -re "^=breakpoint-modified,$bp_re\r\n" {
+ set saw_bp_modified true
+ exp_continue
+ }
+
+ -re "^\\*stopped,reason=\"end-stepping-range\",\[^\r\n\]+\r\n" {
+ set saw_stopped true
+ exp_continue
+ }
+
+ -re "^$mi_gdb_prompt$" {
+ gdb_assert { $saw_lib_load } \
+ "$gdb_test_name, library was loaded"
+ gdb_assert { $saw_stopped } \
+ "$gdb_test_name, saw stopped message"
+ gdb_assert { !$saw_bp_modified } \
+ "$gdb_test_name, no breakpoint-modified"
+ }
+
+ -re "^\[^\r\n\]+\r\n" {
+ exp_continue
+ }
+}
diff --git a/gdb/testsuite/gdb.mi/mi-dprintf-pending.c b/gdb/testsuite/gdb.mi/mi-dprintf-pending.c
index 62a79f8..64011a0 100644
--- a/gdb/testsuite/gdb.mi/mi-dprintf-pending.c
+++ b/gdb/testsuite/gdb.mi/mi-dprintf-pending.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-dprintf-pending.exp b/gdb/testsuite/gdb.mi/mi-dprintf-pending.exp
index 4cf6dec..2df9ad4 100644
--- a/gdb/testsuite/gdb.mi/mi-dprintf-pending.exp
+++ b/gdb/testsuite/gdb.mi/mi-dprintf-pending.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-dprintf-pendshr.c b/gdb/testsuite/gdb.mi/mi-dprintf-pendshr.c
index 7e8bcb9..66a2c3c 100644
--- a/gdb/testsuite/gdb.mi/mi-dprintf-pendshr.c
+++ b/gdb/testsuite/gdb.mi/mi-dprintf-pendshr.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-dprintf.c b/gdb/testsuite/gdb.mi/mi-dprintf.c
index ff81018..85ad8cd 100644
--- a/gdb/testsuite/gdb.mi/mi-dprintf.c
+++ b/gdb/testsuite/gdb.mi/mi-dprintf.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
Contributed by Hui Zhu <hui@codesourcery.com>
This program is free software; you can redistribute it and/or modify
diff --git a/gdb/testsuite/gdb.mi/mi-dprintf.exp b/gdb/testsuite/gdb.mi/mi-dprintf.exp
index 8d523bc..5d448e4 100644
--- a/gdb/testsuite/gdb.mi/mi-dprintf.exp
+++ b/gdb/testsuite/gdb.mi/mi-dprintf.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# Contributed by Hui Zhu <hui@codesourcery.com>
# This program is free software; you can redistribute it and/or modify
diff --git a/gdb/testsuite/gdb.mi/mi-editing.exp b/gdb/testsuite/gdb.mi/mi-editing.exp
index fc27e4f..015069c 100644
--- a/gdb/testsuite/gdb.mi/mi-editing.exp
+++ b/gdb/testsuite/gdb.mi/mi-editing.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-eval.exp b/gdb/testsuite/gdb.mi/mi-eval.exp
index ad4211213..27c27f5 100644
--- a/gdb/testsuite/gdb.mi/mi-eval.exp
+++ b/gdb/testsuite/gdb.mi/mi-eval.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-exec-run.exp b/gdb/testsuite/gdb.mi/mi-exec-run.exp
index 6b01254..a7a61b8 100644
--- a/gdb/testsuite/gdb.mi/mi-exec-run.exp
+++ b/gdb/testsuite/gdb.mi/mi-exec-run.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-exit-code.c b/gdb/testsuite/gdb.mi/mi-exit-code.c
index a6c239b..3463e0d 100644
--- a/gdb/testsuite/gdb.mi/mi-exit-code.c
+++ b/gdb/testsuite/gdb.mi/mi-exit-code.c
@@ -1,4 +1,4 @@
-/* Copyright 1999-2024 Free Software Foundation, Inc.
+/* Copyright 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/mi-exit-code.exp b/gdb/testsuite/gdb.mi/mi-exit-code.exp
index d5e7c85..344d565 100644
--- a/gdb/testsuite/gdb.mi/mi-exit-code.exp
+++ b/gdb/testsuite/gdb.mi/mi-exit-code.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-file-transfer.exp b/gdb/testsuite/gdb.mi/mi-file-transfer.exp
index 6efc53d..51ecfce 100644
--- a/gdb/testsuite/gdb.mi/mi-file-transfer.exp
+++ b/gdb/testsuite/gdb.mi/mi-file-transfer.exp
@@ -1,5 +1,5 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-file.exp b/gdb/testsuite/gdb.mi/mi-file.exp
index 00d2888..68c9e34 100644
--- a/gdb/testsuite/gdb.mi/mi-file.exp
+++ b/gdb/testsuite/gdb.mi/mi-file.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-fill-memory.exp b/gdb/testsuite/gdb.mi/mi-fill-memory.exp
index cb803f0..0afc258 100644
--- a/gdb/testsuite/gdb.mi/mi-fill-memory.exp
+++ b/gdb/testsuite/gdb.mi/mi-fill-memory.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90 b/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90
index ed1c304..57b1c95 100644
--- a/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90
+++ b/gdb/testsuite/gdb.mi/mi-fortran-modules-2.f90
@@ -1,4 +1,4 @@
-! Copyright 2009-2024 Free Software Foundation, Inc.
+! Copyright 2009-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-fortran-modules.exp b/gdb/testsuite/gdb.mi/mi-fortran-modules.exp
index 5441d8f..8886702 100644
--- a/gdb/testsuite/gdb.mi/mi-fortran-modules.exp
+++ b/gdb/testsuite/gdb.mi/mi-fortran-modules.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-fortran-modules.f90 b/gdb/testsuite/gdb.mi/mi-fortran-modules.f90
index 02067e3..d35e885 100644
--- a/gdb/testsuite/gdb.mi/mi-fortran-modules.f90
+++ b/gdb/testsuite/gdb.mi/mi-fortran-modules.f90
@@ -1,4 +1,4 @@
-! Copyright 2009-2024 Free Software Foundation, Inc.
+! Copyright 2009-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-frame-regs.exp b/gdb/testsuite/gdb.mi/mi-frame-regs.exp
index 0374ec0..f31e4a1 100644
--- a/gdb/testsuite/gdb.mi/mi-frame-regs.exp
+++ b/gdb/testsuite/gdb.mi/mi-frame-regs.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-fullname-deleted.exp b/gdb/testsuite/gdb.mi/mi-fullname-deleted.exp
index d8bb490..130b5bf 100644
--- a/gdb/testsuite/gdb.mi/mi-fullname-deleted.exp
+++ b/gdb/testsuite/gdb.mi/mi-fullname-deleted.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-hack-cli.exp b/gdb/testsuite/gdb.mi/mi-hack-cli.exp
index c084290..d71b95e 100644
--- a/gdb/testsuite/gdb.mi/mi-hack-cli.exp
+++ b/gdb/testsuite/gdb.mi/mi-hack-cli.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-i-cmd.exp b/gdb/testsuite/gdb.mi/mi-i-cmd.exp
index 89d188f..be7d184 100644
--- a/gdb/testsuite/gdb.mi/mi-i-cmd.exp
+++ b/gdb/testsuite/gdb.mi/mi-i-cmd.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-info-os.exp b/gdb/testsuite/gdb.mi/mi-info-os.exp
index 21d70e8..5d8d3ff 100644
--- a/gdb/testsuite/gdb.mi/mi-info-os.exp
+++ b/gdb/testsuite/gdb.mi/mi-info-os.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-info-sources-base.c b/gdb/testsuite/gdb.mi/mi-info-sources-base.c
index 8541b16..2a00b47 100644
--- a/gdb/testsuite/gdb.mi/mi-info-sources-base.c
+++ b/gdb/testsuite/gdb.mi/mi-info-sources-base.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-info-sources.c b/gdb/testsuite/gdb.mi/mi-info-sources.c
index 230641a..0ab1196 100644
--- a/gdb/testsuite/gdb.mi/mi-info-sources.c
+++ b/gdb/testsuite/gdb.mi/mi-info-sources.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-info-sources.exp b/gdb/testsuite/gdb.mi/mi-info-sources.exp
index ca85f8e..f44fc29 100644
--- a/gdb/testsuite/gdb.mi/mi-info-sources.exp
+++ b/gdb/testsuite/gdb.mi/mi-info-sources.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-inheritance-syntax-error.exp b/gdb/testsuite/gdb.mi/mi-inheritance-syntax-error.exp
index a3c97cc..0ab2de2 100644
--- a/gdb/testsuite/gdb.mi/mi-inheritance-syntax-error.exp
+++ b/gdb/testsuite/gdb.mi/mi-inheritance-syntax-error.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-language.exp b/gdb/testsuite/gdb.mi/mi-language.exp
index 7200213..2d64fa4 100644
--- a/gdb/testsuite/gdb.mi/mi-language.exp
+++ b/gdb/testsuite/gdb.mi/mi-language.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-linespec-err-cp.cc b/gdb/testsuite/gdb.mi/mi-linespec-err-cp.cc
index 232743c..65b584b 100644
--- a/gdb/testsuite/gdb.mi/mi-linespec-err-cp.cc
+++ b/gdb/testsuite/gdb.mi/mi-linespec-err-cp.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp b/gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp
index 824596a..3314d5f 100644
--- a/gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp
+++ b/gdb/testsuite/gdb.mi/mi-linespec-err-cp.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-logging.exp b/gdb/testsuite/gdb.mi/mi-logging.exp
index 5cc3a97..de76e02 100644
--- a/gdb/testsuite/gdb.mi/mi-logging.exp
+++ b/gdb/testsuite/gdb.mi/mi-logging.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-memory-changed.exp b/gdb/testsuite/gdb.mi/mi-memory-changed.exp
index 6d9e504..bc2b6c3 100644
--- a/gdb/testsuite/gdb.mi/mi-memory-changed.exp
+++ b/gdb/testsuite/gdb.mi/mi-memory-changed.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-multi-commands.exp b/gdb/testsuite/gdb.mi/mi-multi-commands.exp
index 028e187..3bc63eb 100644
--- a/gdb/testsuite/gdb.mi/mi-multi-commands.exp
+++ b/gdb/testsuite/gdb.mi/mi-multi-commands.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -90,7 +90,7 @@ proc run_test { args } {
# looking for. However, due to the unpredictable
# intermingling, it's much easier if we drop the ^ anchor.
# However, with this gone dejagnu would sometimes match the
- # second comand output before the first commands output.
+ # second command output before the first commands output.
#
# This approach just looks for the first command output, then,
# once that has been found, we start looking for the second
@@ -123,6 +123,10 @@ proc run_test { args } {
break
}
}
+
+ # mi_clean_restart and gdb_finish call gdb_exit, which doesn't work for
+ # separate-mi-tty. Use mi_gdb_exit instead.
+ mi_gdb_exit
}
foreach_with_prefix args { "" "separate-mi-tty" } {
diff --git a/gdb/testsuite/gdb.mi/mi-nonstop-exit.exp b/gdb/testsuite/gdb.mi/mi-nonstop-exit.exp
index 35e37b4..599e460 100644
--- a/gdb/testsuite/gdb.mi/mi-nonstop-exit.exp
+++ b/gdb/testsuite/gdb.mi/mi-nonstop-exit.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-nonstop.exp b/gdb/testsuite/gdb.mi/mi-nonstop.exp
index 609fbec..b8efef7 100644
--- a/gdb/testsuite/gdb.mi/mi-nonstop.exp
+++ b/gdb/testsuite/gdb.mi/mi-nonstop.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-ns-stale-regcache.exp b/gdb/testsuite/gdb.mi/mi-ns-stale-regcache.exp
index a83ae00..20d9e45 100644
--- a/gdb/testsuite/gdb.mi/mi-ns-stale-regcache.exp
+++ b/gdb/testsuite/gdb.mi/mi-ns-stale-regcache.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-nsintrall.exp b/gdb/testsuite/gdb.mi/mi-nsintrall.exp
index a02c8f9..983c0fe 100644
--- a/gdb/testsuite/gdb.mi/mi-nsintrall.exp
+++ b/gdb/testsuite/gdb.mi/mi-nsintrall.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-nsmoribund.exp b/gdb/testsuite/gdb.mi/mi-nsmoribund.exp
index 270dbc1..da43a93 100644
--- a/gdb/testsuite/gdb.mi/mi-nsmoribund.exp
+++ b/gdb/testsuite/gdb.mi/mi-nsmoribund.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-nsthrexec.exp b/gdb/testsuite/gdb.mi/mi-nsthrexec.exp
index dba7847..fd8aa54 100644
--- a/gdb/testsuite/gdb.mi/mi-nsthrexec.exp
+++ b/gdb/testsuite/gdb.mi/mi-nsthrexec.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-pending.c b/gdb/testsuite/gdb.mi/mi-pending.c
index 3e645ab..9bb1537 100644
--- a/gdb/testsuite/gdb.mi/mi-pending.c
+++ b/gdb/testsuite/gdb.mi/mi-pending.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-pending.exp b/gdb/testsuite/gdb.mi/mi-pending.exp
index 4358c18..49839cb 100644
--- a/gdb/testsuite/gdb.mi/mi-pending.exp
+++ b/gdb/testsuite/gdb.mi/mi-pending.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-pendshr.c b/gdb/testsuite/gdb.mi/mi-pendshr.c
index c5c3315..1958260 100644
--- a/gdb/testsuite/gdb.mi/mi-pendshr.c
+++ b/gdb/testsuite/gdb.mi/mi-pendshr.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-pendshr2.c b/gdb/testsuite/gdb.mi/mi-pendshr2.c
index b58504b..7019286 100644
--- a/gdb/testsuite/gdb.mi/mi-pendshr2.c
+++ b/gdb/testsuite/gdb.mi/mi-pendshr2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-pthreads.exp b/gdb/testsuite/gdb.mi/mi-pthreads.exp
index c151d43..93f0344 100644
--- a/gdb/testsuite/gdb.mi/mi-pthreads.exp
+++ b/gdb/testsuite/gdb.mi/mi-pthreads.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-py-modify-bp.c b/gdb/testsuite/gdb.mi/mi-py-modify-bp.c
index e399d51..0b7ccc5 100644
--- a/gdb/testsuite/gdb.mi/mi-py-modify-bp.c
+++ b/gdb/testsuite/gdb.mi/mi-py-modify-bp.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-py-modify-bp.exp b/gdb/testsuite/gdb.mi/mi-py-modify-bp.exp
index 79fcf9f..4193757 100644
--- a/gdb/testsuite/gdb.mi/mi-py-modify-bp.exp
+++ b/gdb/testsuite/gdb.mi/mi-py-modify-bp.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-py-modify-bp.py b/gdb/testsuite/gdb.mi/mi-py-modify-bp.py
index 242d94c..cbca71a 100644
--- a/gdb/testsuite/gdb.mi/mi-py-modify-bp.py
+++ b/gdb/testsuite/gdb.mi/mi-py-modify-bp.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-read-memory.exp b/gdb/testsuite/gdb.mi/mi-read-memory.exp
index f5466f9..8de8728 100644
--- a/gdb/testsuite/gdb.mi/mi-read-memory.exp
+++ b/gdb/testsuite/gdb.mi/mi-read-memory.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-record-changed.exp b/gdb/testsuite/gdb.mi/mi-record-changed.exp
index ce119f8..e37540b 100644
--- a/gdb/testsuite/gdb.mi/mi-record-changed.exp
+++ b/gdb/testsuite/gdb.mi/mi-record-changed.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-reg-undefined.S b/gdb/testsuite/gdb.mi/mi-reg-undefined.S
index 20c3a2b..4595570 100644
--- a/gdb/testsuite/gdb.mi/mi-reg-undefined.S
+++ b/gdb/testsuite/gdb.mi/mi-reg-undefined.S
@@ -1,4 +1,4 @@
-/* Copyright 2013-2024 Free Software Foundation, Inc.
+/* Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-reg-undefined.c b/gdb/testsuite/gdb.mi/mi-reg-undefined.c
index da93f2a..fbada64 100644
--- a/gdb/testsuite/gdb.mi/mi-reg-undefined.c
+++ b/gdb/testsuite/gdb.mi/mi-reg-undefined.c
@@ -1,4 +1,4 @@
-/* Copyright 2013-2024 Free Software Foundation, Inc.
+/* Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-reg-undefined.exp b/gdb/testsuite/gdb.mi/mi-reg-undefined.exp
index c43743d..c7e0564 100644
--- a/gdb/testsuite/gdb.mi/mi-reg-undefined.exp
+++ b/gdb/testsuite/gdb.mi/mi-reg-undefined.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-regs.exp b/gdb/testsuite/gdb.mi/mi-regs.exp
index 7ec63e2..0bb305b 100644
--- a/gdb/testsuite/gdb.mi/mi-regs.exp
+++ b/gdb/testsuite/gdb.mi/mi-regs.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-return.exp b/gdb/testsuite/gdb.mi/mi-return.exp
index dafa150..ba296d5 100644
--- a/gdb/testsuite/gdb.mi/mi-return.exp
+++ b/gdb/testsuite/gdb.mi/mi-return.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-reverse.exp b/gdb/testsuite/gdb.mi/mi-reverse.exp
index 0a1f684..d039240 100644
--- a/gdb/testsuite/gdb.mi/mi-reverse.exp
+++ b/gdb/testsuite/gdb.mi/mi-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-simplerun.exp b/gdb/testsuite/gdb.mi/mi-simplerun.exp
index 6071031..e390f14 100644
--- a/gdb/testsuite/gdb.mi/mi-simplerun.exp
+++ b/gdb/testsuite/gdb.mi/mi-simplerun.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-solib.exp b/gdb/testsuite/gdb.mi/mi-solib.exp
index 737fc96..c66d4b0 100644
--- a/gdb/testsuite/gdb.mi/mi-solib.exp
+++ b/gdb/testsuite/gdb.mi/mi-solib.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-stack.c b/gdb/testsuite/gdb.mi/mi-stack.c
index 97701a9..ecf670e 100644
--- a/gdb/testsuite/gdb.mi/mi-stack.c
+++ b/gdb/testsuite/gdb.mi/mi-stack.c
@@ -1,4 +1,4 @@
-/* Copyright 1999-2024 Free Software Foundation, Inc.
+/* Copyright 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/mi-stack.exp b/gdb/testsuite/gdb.mi/mi-stack.exp
index 6127d83..a91b76e 100644
--- a/gdb/testsuite/gdb.mi/mi-stack.exp
+++ b/gdb/testsuite/gdb.mi/mi-stack.exp
@@ -1,4 +1,4 @@
-# Copyright 2000-2024 Free Software Foundation, Inc.
+# Copyright 2000-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-start.c b/gdb/testsuite/gdb.mi/mi-start.c
index 0cc6678..e7ce0a6 100644
--- a/gdb/testsuite/gdb.mi/mi-start.c
+++ b/gdb/testsuite/gdb.mi/mi-start.c
@@ -1,4 +1,4 @@
-/* Copyright 2013-2024 Free Software Foundation, Inc.
+/* Copyright 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/mi-start.exp b/gdb/testsuite/gdb.mi/mi-start.exp
index 7792078..745e5c9 100644
--- a/gdb/testsuite/gdb.mi/mi-start.exp
+++ b/gdb/testsuite/gdb.mi/mi-start.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-stepi.exp b/gdb/testsuite/gdb.mi/mi-stepi.exp
index 28aa293..8ba6399 100644
--- a/gdb/testsuite/gdb.mi/mi-stepi.exp
+++ b/gdb/testsuite/gdb.mi/mi-stepi.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-stepn.c b/gdb/testsuite/gdb.mi/mi-stepn.c
index c52db0e..0029146 100644
--- a/gdb/testsuite/gdb.mi/mi-stepn.c
+++ b/gdb/testsuite/gdb.mi/mi-stepn.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-stepn.exp b/gdb/testsuite/gdb.mi/mi-stepn.exp
index c01fb22..489564a 100644
--- a/gdb/testsuite/gdb.mi/mi-stepn.exp
+++ b/gdb/testsuite/gdb.mi/mi-stepn.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-sym-info-1.c b/gdb/testsuite/gdb.mi/mi-sym-info-1.c
index fb1697d..42b5840 100644
--- a/gdb/testsuite/gdb.mi/mi-sym-info-1.c
+++ b/gdb/testsuite/gdb.mi/mi-sym-info-1.c
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/mi-sym-info-2.c b/gdb/testsuite/gdb.mi/mi-sym-info-2.c
index 05f0c80..ebf021f 100644
--- a/gdb/testsuite/gdb.mi/mi-sym-info-2.c
+++ b/gdb/testsuite/gdb.mi/mi-sym-info-2.c
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/mi-sym-info.exp b/gdb/testsuite/gdb.mi/mi-sym-info.exp
index b8db2af..ef8dd86 100644
--- a/gdb/testsuite/gdb.mi/mi-sym-info.exp
+++ b/gdb/testsuite/gdb.mi/mi-sym-info.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -245,22 +245,34 @@ mi_gdb_test "120-symbol-info-types --name _int_" \
"120\\^done,symbols=\{debug=\\\[\{filename=\"\[^\"\]*$srcfile\",fullname=\"\[^\"\]+$srcfile\",symbols=\\\[$my_int_re\\\]\},\{filename=\"\[^\"\]*$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[$another_int_re\\\]\}\\\]\}" \
"List all types matching _int_"
+# Return the number of matched symbols in the last match.
+
+proc count_symbol_matches { } {
+ # `0,string`, `1,string` and `2,string` respectively contain the
+ # command + result, command and result. The symbols match is at
+ # `3,string`.
+ return [regexp -all $::fun_re $::expect_out(3,string)]
+}
+
# Test the --max-results parameter.
mi_gdb_test "121-symbol-info-functions --max-results 0" \
"121\\^done,symbols=\{\}" \
"-symbol-info-functions --max-results 0"
mi_gdb_test "122-symbol-info-functions --max-results 1 --name ^\[^_\]" \
- "122\\^done,symbols=\{debug=\\\[\{filename=\"\[^\"\]*$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[(?:$f2_re|$f3_re)\\\]\}\\\]\}" \
+ "122\\^done,($debug_only_syms)" \
"-symbol-info-functions --max-results 1"
+gdb_assert {[count_symbol_matches] == 1} "-symbol-info-functions --max-results 1, result count"
mi_gdb_test "123-symbol-info-functions --max-results 2 --name ^\[^_\]" \
- "123\\^done,symbols=\{debug=\\\[\{filename=\"\[^\"\]*$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[$f2_re,$f3_re\\\]\}\\\]\}" \
+ "123\\^done,($debug_only_syms)" \
"-symbol-info-functions --max-results 2"
+gdb_assert {[count_symbol_matches] == 2} "-symbol-info-functions --max-results 2, result count"
mi_gdb_test "124-symbol-info-variables --max-results 3 --name ^\[^_\]" \
- "124\\^done,symbols=\{debug=\\\[\{filename=\"\[^\"\]*$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[$global_f2_re,$global_i2_re,(?:$global_i1_re|$global_f1_s2_re)\\\]\}\\\]\}" \
- "-symbol-info-types --max-results 3"
+ "124\\^done,($debug_only_syms)" \
+ "-symbol-info-variables --max-results 3"
+gdb_assert {[count_symbol_matches] == 3} "-symbol-info-variables --max-results 3, result count"
mi_gdb_test "125-symbol-info-types --max-results 4 --name another_" \
"125\\^done,symbols=\{debug=\\\[\{filename=\"\[^\"\]*$srcfile2\",fullname=\"\[^\"\]+$srcfile2\",symbols=\\\[$another_char_re,$another_float_re,$another_int_re,$another_short_re\\\]\}\\\]\}" \
diff --git a/gdb/testsuite/gdb.mi/mi-syn-frame.exp b/gdb/testsuite/gdb.mi/mi-syn-frame.exp
index b059d12..633f317 100644
--- a/gdb/testsuite/gdb.mi/mi-syn-frame.exp
+++ b/gdb/testsuite/gdb.mi/mi-syn-frame.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-thread-bp-deleted.c b/gdb/testsuite/gdb.mi/mi-thread-bp-deleted.c
index 8efcec0..f1aee80 100644
--- a/gdb/testsuite/gdb.mi/mi-thread-bp-deleted.c
+++ b/gdb/testsuite/gdb.mi/mi-thread-bp-deleted.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/mi-thread-bp-deleted.exp b/gdb/testsuite/gdb.mi/mi-thread-bp-deleted.exp
index 08c7218..2a734c8 100644
--- a/gdb/testsuite/gdb.mi/mi-thread-bp-deleted.exp
+++ b/gdb/testsuite/gdb.mi/mi-thread-bp-deleted.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -36,8 +36,6 @@ if { [build_executable "failed to prepare" $testfile $srcfile \
}
foreach_mi_ui_mode mode {
- mi_gdb_exit
-
if {$mode eq "separate"} {
set start_ops "separate-mi-tty"
} else {
@@ -279,4 +277,8 @@ foreach_mi_ui_mode mode {
"set do_spin variable in inferior, inferior should now finish"
mi_expect_stop "breakpoint-hit" "breakpt" ".*" ".*" "$::decimal" \
{"" "disp=\"keep\""} "stop in breakpt at the end of the test"
+
+ # mi_clean_restart and gdb_finish call gdb_exit, which doesn't work for
+ # separate-mi-tty. Use mi_gdb_exit instead.
+ mi_gdb_exit
}
diff --git a/gdb/testsuite/gdb.mi/mi-thread-specific-bp.c b/gdb/testsuite/gdb.mi/mi-thread-specific-bp.c
index 8ee1339..c42f063 100644
--- a/gdb/testsuite/gdb.mi/mi-thread-specific-bp.c
+++ b/gdb/testsuite/gdb.mi/mi-thread-specific-bp.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-thread-specific-bp.exp b/gdb/testsuite/gdb.mi/mi-thread-specific-bp.exp
index 715e0f7..86d050a 100644
--- a/gdb/testsuite/gdb.mi/mi-thread-specific-bp.exp
+++ b/gdb/testsuite/gdb.mi/mi-thread-specific-bp.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -33,17 +33,7 @@ proc make_loc {num} {
return [mi_make_breakpoint_loc -thread "1" -number "$::decimal\\.$num"]
}
-foreach_mi_ui_mode mode {
-
- if {$mode == "separate"} {
- set start_ops "separate-mi-tty"
- } else {
- set start_ops ""
- }
-
- if {[mi_clean_restart $binfile $start_ops]} {
- return -1
- }
+proc do_test { mode } {
# Ensure we get an error when placing a b/p for thread 1 at a point
# where thread 1 doesn't exist.
@@ -55,7 +45,7 @@ foreach_mi_ui_mode mode {
# would succeed, and then 'info breakpoint' on the CLI would
# trigger an assertion.
if {$mode eq "separate"} {
- with_spawn_id $gdb_main_spawn_id {
+ with_spawn_id $::gdb_main_spawn_id {
gdb_test "info breakpoints" "No breakpoints, watchpoints, tracepoints, or catchpoints\\." \
"check CLI 'info breakpoints' when there are no breakpoints"
}
@@ -83,9 +73,34 @@ foreach_mi_ui_mode mode {
# Check that 'info breakpoints' on the CLI succeeds.
if {$mode eq "separate"} {
- with_spawn_id $gdb_main_spawn_id {
+ with_spawn_id $::gdb_main_spawn_id {
gdb_test "info breakpoints" ".*" \
"check CLI 'info breakpoints' when there are some breakpoints"
}
}
+
+ return 1
+}
+
+foreach_mi_ui_mode mode {
+
+ if {$mode == "separate"} {
+ set start_ops "separate-mi-tty"
+ } else {
+ set start_ops ""
+ }
+
+ if {[mi_clean_restart $binfile $start_ops]} {
+ break
+ }
+
+ set res [do_test $mode]
+
+ # mi_clean_restart and gdb_finish call gdb_exit, which doesn't work for
+ # separate-mi-tty. Use mi_gdb_exit instead.
+ mi_gdb_exit
+
+ if { $res == -1 } {
+ break
+ }
}
diff --git a/gdb/testsuite/gdb.mi/mi-threads-interrupt.c b/gdb/testsuite/gdb.mi/mi-threads-interrupt.c
index 7d0feb1..19cfe07 100644
--- a/gdb/testsuite/gdb.mi/mi-threads-interrupt.c
+++ b/gdb/testsuite/gdb.mi/mi-threads-interrupt.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-threads-interrupt.exp b/gdb/testsuite/gdb.mi/mi-threads-interrupt.exp
index 69eb55b..ff74e7b 100644
--- a/gdb/testsuite/gdb.mi/mi-threads-interrupt.exp
+++ b/gdb/testsuite/gdb.mi/mi-threads-interrupt.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-undefined-cmd.exp b/gdb/testsuite/gdb.mi/mi-undefined-cmd.exp
index a3a57af..be90e36 100644
--- a/gdb/testsuite/gdb.mi/mi-undefined-cmd.exp
+++ b/gdb/testsuite/gdb.mi/mi-undefined-cmd.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-until.exp b/gdb/testsuite/gdb.mi/mi-until.exp
index 0ce5abc..ee50c4f 100644
--- a/gdb/testsuite/gdb.mi/mi-until.exp
+++ b/gdb/testsuite/gdb.mi/mi-until.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-var-block.exp b/gdb/testsuite/gdb.mi/mi-var-block.exp
index de10188..bdba639 100644
--- a/gdb/testsuite/gdb.mi/mi-var-block.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-block.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-var-child-f.exp b/gdb/testsuite/gdb.mi/mi-var-child-f.exp
index 441c3a0..c424490 100644
--- a/gdb/testsuite/gdb.mi/mi-var-child-f.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-child-f.exp
@@ -1,4 +1,4 @@
-# Copyright 2006-2024 Free Software Foundation, Inc.
+# Copyright 2006-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-var-child.c b/gdb/testsuite/gdb.mi/mi-var-child.c
index f438315..692f9f5 100644
--- a/gdb/testsuite/gdb.mi/mi-var-child.c
+++ b/gdb/testsuite/gdb.mi/mi-var-child.c
@@ -1,4 +1,4 @@
-/* Copyright 1999-2024 Free Software Foundation, Inc.
+/* Copyright 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/mi-var-child.exp b/gdb/testsuite/gdb.mi/mi-var-child.exp
index 9a23335..89ce9dd 100644
--- a/gdb/testsuite/gdb.mi/mi-var-child.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-child.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-var-cmd.exp b/gdb/testsuite/gdb.mi/mi-var-cmd.exp
index 1f97200..8c8c306 100644
--- a/gdb/testsuite/gdb.mi/mi-var-cmd.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-cmd.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-var-cp.cc b/gdb/testsuite/gdb.mi/mi-var-cp.cc
index c40bdcf..5c4320e 100644
--- a/gdb/testsuite/gdb.mi/mi-var-cp.cc
+++ b/gdb/testsuite/gdb.mi/mi-var-cp.cc
@@ -1,4 +1,4 @@
-/* Copyright 2006-2024 Free Software Foundation, Inc.
+/* Copyright 2006-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-var-cp.exp b/gdb/testsuite/gdb.mi/mi-var-cp.exp
index b0c711c..c1d70f1 100644
--- a/gdb/testsuite/gdb.mi/mi-var-cp.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-cp.exp
@@ -1,4 +1,4 @@
-# Copyright 2006-2024 Free Software Foundation, Inc.
+# Copyright 2006-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-var-create-rtti.c b/gdb/testsuite/gdb.mi/mi-var-create-rtti.c
index a6f3025..2f11362 100644
--- a/gdb/testsuite/gdb.mi/mi-var-create-rtti.c
+++ b/gdb/testsuite/gdb.mi/mi-var-create-rtti.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-var-create-rtti.exp b/gdb/testsuite/gdb.mi/mi-var-create-rtti.exp
index b5b0256..ad6ce5c 100644
--- a/gdb/testsuite/gdb.mi/mi-var-create-rtti.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-create-rtti.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-var-display.exp b/gdb/testsuite/gdb.mi/mi-var-display.exp
index b420d12..5535368 100644
--- a/gdb/testsuite/gdb.mi/mi-var-display.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-display.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -96,7 +96,7 @@ mi_gdb_test "-var-evaluate-expression bar" \
# Desc: change value of bar
mi_gdb_test "-var-assign bar 3" \
"\\^done,value=\"0x3\"" \
- "assing to variable bar"
+ "assign to variable bar"
mi_gdb_test "-var-set-format bar decimal" \
"\\^done,format=\"decimal\",value=\"3\"" \
@@ -152,7 +152,7 @@ mi_gdb_test "-var-evaluate-expression foo" \
# Desc: change value of foo
mi_gdb_test "-var-assign foo 3" \
"\\^done,value=\"03\"" \
- "assing to variable foo"
+ "assign to variable foo"
mi_gdb_test "-var-set-format foo decimal" \
"\\^done,format=\"decimal\",value=\"3\"" \
diff --git a/gdb/testsuite/gdb.mi/mi-var-invalidate-shlib-lib.c b/gdb/testsuite/gdb.mi/mi-var-invalidate-shlib-lib.c
index f24b2d2..9ba19bb 100644
--- a/gdb/testsuite/gdb.mi/mi-var-invalidate-shlib-lib.c
+++ b/gdb/testsuite/gdb.mi/mi-var-invalidate-shlib-lib.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/mi-var-invalidate-shlib.c b/gdb/testsuite/gdb.mi/mi-var-invalidate-shlib.c
index 10daab6..a3ff6d8 100644
--- a/gdb/testsuite/gdb.mi/mi-var-invalidate-shlib.c
+++ b/gdb/testsuite/gdb.mi/mi-var-invalidate-shlib.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/mi-var-invalidate-shlib.exp b/gdb/testsuite/gdb.mi/mi-var-invalidate-shlib.exp
index 69e21db..7408db5 100644
--- a/gdb/testsuite/gdb.mi/mi-var-invalidate-shlib.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-invalidate-shlib.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-var-invalidate.exp b/gdb/testsuite/gdb.mi/mi-var-invalidate.exp
index 60e29a9..c1c52f2 100644
--- a/gdb/testsuite/gdb.mi/mi-var-invalidate.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-invalidate.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.c b/gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.c
index 4ca8723..ae60aaf 100644
--- a/gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.c
+++ b/gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp b/gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp
index b832fc3..0f20c50f 100644
--- a/gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-list-children-invalid-grandchild.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-var-rtti.cc b/gdb/testsuite/gdb.mi/mi-var-rtti.cc
index a9b3ee1..8e44c24 100644
--- a/gdb/testsuite/gdb.mi/mi-var-rtti.cc
+++ b/gdb/testsuite/gdb.mi/mi-var-rtti.cc
@@ -1,4 +1,4 @@
-/* Copyright 2012-2024 Free Software Foundation, Inc.
+/* Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-var-rtti.exp b/gdb/testsuite/gdb.mi/mi-var-rtti.exp
index 5060303..fcf8404 100644
--- a/gdb/testsuite/gdb.mi/mi-var-rtti.exp
+++ b/gdb/testsuite/gdb.mi/mi-var-rtti.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-vla-c99.exp b/gdb/testsuite/gdb.mi/mi-vla-c99.exp
index a8a77ac..ec12e6f 100644
--- a/gdb/testsuite/gdb.mi/mi-vla-c99.exp
+++ b/gdb/testsuite/gdb.mi/mi-vla-c99.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# Contributed by Intel Corp. <keven.boell@intel.com>
#
diff --git a/gdb/testsuite/gdb.mi/mi-vla-fortran.exp b/gdb/testsuite/gdb.mi/mi-vla-fortran.exp
index d0b4a22..5077089 100644
--- a/gdb/testsuite/gdb.mi/mi-vla-fortran.exp
+++ b/gdb/testsuite/gdb.mi/mi-vla-fortran.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-watch-nonstop.exp b/gdb/testsuite/gdb.mi/mi-watch-nonstop.exp
index b502798..f9237c0 100644
--- a/gdb/testsuite/gdb.mi/mi-watch-nonstop.exp
+++ b/gdb/testsuite/gdb.mi/mi-watch-nonstop.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi-watch.exp b/gdb/testsuite/gdb.mi/mi-watch.exp
index a5a442e..e318a2b 100644
--- a/gdb/testsuite/gdb.mi/mi-watch.exp
+++ b/gdb/testsuite/gdb.mi/mi-watch.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -173,6 +173,10 @@ proc test_watchpoint_all {mi_mode type} {
#test_rwatch_creation_and_listing
#test_awatch_creation_and_listing
test_watchpoint_triggering
+
+ # mi_clean_restart and gdb_finish call gdb_exit, which doesn't work for
+ # separate-mi-tty. Use mi_gdb_exit instead.
+ mi_gdb_exit
}
# Run the tests twice, once using software watchpoints, and another
diff --git a/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.c b/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.c
index 562236f..4ba8301 100644
--- a/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.c
+++ b/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp b/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp
index 8883f40..c7e21e9 100644
--- a/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp
+++ b/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.s b/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.s
index cc5b809..bcc7775 100644
--- a/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.s
+++ b/gdb/testsuite/gdb.mi/mi2-amd64-entry-value.s
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi2-cli-display.c b/gdb/testsuite/gdb.mi/mi2-cli-display.c
index b1019a0..a153b5c 100644
--- a/gdb/testsuite/gdb.mi/mi2-cli-display.c
+++ b/gdb/testsuite/gdb.mi/mi2-cli-display.c
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/mi2-cli-display.exp b/gdb/testsuite/gdb.mi/mi2-cli-display.exp
index 8c09397..656c93e 100644
--- a/gdb/testsuite/gdb.mi/mi2-cli-display.exp
+++ b/gdb/testsuite/gdb.mi/mi2-cli-display.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi2-prompt.exp b/gdb/testsuite/gdb.mi/mi2-prompt.exp
index 36f4b65..4c35074 100644
--- a/gdb/testsuite/gdb.mi/mi2-prompt.exp
+++ b/gdb/testsuite/gdb.mi/mi2-prompt.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/mi2-var-child.exp b/gdb/testsuite/gdb.mi/mi2-var-child.exp
index 0ca44ed..9bd9054 100644
--- a/gdb/testsuite/gdb.mi/mi2-var-child.exp
+++ b/gdb/testsuite/gdb.mi/mi2-var-child.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/new-ui-bp-deleted.c b/gdb/testsuite/gdb.mi/new-ui-bp-deleted.c
index f41338d..4bcb21c 100644
--- a/gdb/testsuite/gdb.mi/new-ui-bp-deleted.c
+++ b/gdb/testsuite/gdb.mi/new-ui-bp-deleted.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/new-ui-bp-deleted.exp b/gdb/testsuite/gdb.mi/new-ui-bp-deleted.exp
index 938e6de..aa18668 100644
--- a/gdb/testsuite/gdb.mi/new-ui-bp-deleted.exp
+++ b/gdb/testsuite/gdb.mi/new-ui-bp-deleted.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -45,8 +45,6 @@ proc make_bp_loc { num } {
}
foreach_mi_ui_mode mode {
- mi_gdb_exit
-
if {$mode eq "separate"} {
set start_ops "separate-mi-tty"
} else {
@@ -109,4 +107,8 @@ foreach_mi_ui_mode mode {
"=breakpoint-deleted,id=\"$bpnum\"" \
"\\^done"]
}
+
+ # mi_clean_restart and gdb_finish call gdb_exit, which doesn't work for
+ # separate-mi-tty. Use mi_gdb_exit instead.
+ mi_gdb_exit
}
diff --git a/gdb/testsuite/gdb.mi/new-ui-mi-sync.c b/gdb/testsuite/gdb.mi/new-ui-mi-sync.c
index c7f5ce7..2fb09b7 100644
--- a/gdb/testsuite/gdb.mi/new-ui-mi-sync.c
+++ b/gdb/testsuite/gdb.mi/new-ui-mi-sync.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/new-ui-mi-sync.exp b/gdb/testsuite/gdb.mi/new-ui-mi-sync.exp
index 28a42dc..cb83329 100644
--- a/gdb/testsuite/gdb.mi/new-ui-mi-sync.exp
+++ b/gdb/testsuite/gdb.mi/new-ui-mi-sync.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -40,27 +40,22 @@ proc do_test {sync_command} {
global gdb_spawn_id gdb_main_spawn_id mi_spawn_id inferior_spawn_id
global gdb_prompt mi_gdb_prompt
- if {[mi_clean_restart $binfile "separate-mi-tty"] != 0} {
- fail "could not start gdb"
- return
- }
-
# Start a synchronous run/continue on the MI UI.
set test "send synchronous execution command"
if {$sync_command == "run"} {
if {[mi_run_cmd] >= 0} {
pass $test
} else {
- return
+ return -1
}
} else {
if {[mi_runto_main] < 0} {
- return
+ return -1
}
if {[mi_send_resuming_command_raw "123-exec-continue" $test] >= 0} {
pass $test
} else {
- return
+ return -1
}
}
@@ -107,5 +102,18 @@ proc do_test {sync_command} {
}
foreach_with_prefix sync-command {"run" "continue"} {
- do_test ${sync-command}
+ if {[mi_clean_restart $binfile "separate-mi-tty"] != 0} {
+ fail "could not start gdb"
+ break
+ }
+
+ set res [do_test ${sync-command}]
+
+ # mi_clean_restart and gdb_finish call gdb_exit, which doesn't work for
+ # separate-mi-tty. Use mi_gdb_exit instead.
+ mi_gdb_exit
+
+ if { $res == -1 } {
+ break
+ }
}
diff --git a/gdb/testsuite/gdb.mi/non-stop-exit.c b/gdb/testsuite/gdb.mi/non-stop-exit.c
index f001da1..d9ef970 100644
--- a/gdb/testsuite/gdb.mi/non-stop-exit.c
+++ b/gdb/testsuite/gdb.mi/non-stop-exit.c
@@ -1,5 +1,5 @@
/* Test program exit in non-stop mode.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/non-stop.c b/gdb/testsuite/gdb.mi/non-stop.c
index 75b2d60..03192c0 100644
--- a/gdb/testsuite/gdb.mi/non-stop.c
+++ b/gdb/testsuite/gdb.mi/non-stop.c
@@ -1,5 +1,5 @@
/* Test program for non-stop debugging.
- Copyright 1996-2024 Free Software Foundation, Inc.
+ Copyright 1996-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/ns-stale-regcache.c b/gdb/testsuite/gdb.mi/ns-stale-regcache.c
index eda7474..d573cb5 100644
--- a/gdb/testsuite/gdb.mi/ns-stale-regcache.c
+++ b/gdb/testsuite/gdb.mi/ns-stale-regcache.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/nsintrall.c b/gdb/testsuite/gdb.mi/nsintrall.c
index f362bda..36bef7e 100644
--- a/gdb/testsuite/gdb.mi/nsintrall.c
+++ b/gdb/testsuite/gdb.mi/nsintrall.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/nsmoribund.c b/gdb/testsuite/gdb.mi/nsmoribund.c
index 3a8c296..2acbffc 100644
--- a/gdb/testsuite/gdb.mi/nsmoribund.c
+++ b/gdb/testsuite/gdb.mi/nsmoribund.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/nsthrexec.c b/gdb/testsuite/gdb.mi/nsthrexec.c
index c6c288c..403aa31 100644
--- a/gdb/testsuite/gdb.mi/nsthrexec.c
+++ b/gdb/testsuite/gdb.mi/nsthrexec.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/pending.c b/gdb/testsuite/gdb.mi/pending.c
index addcd0f..d3a3f5a 100644
--- a/gdb/testsuite/gdb.mi/pending.c
+++ b/gdb/testsuite/gdb.mi/pending.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/pendshr1.c b/gdb/testsuite/gdb.mi/pendshr1.c
index 6628823..fcc568e 100644
--- a/gdb/testsuite/gdb.mi/pendshr1.c
+++ b/gdb/testsuite/gdb.mi/pendshr1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/pendshr2.c b/gdb/testsuite/gdb.mi/pendshr2.c
index e151399..518d194 100644
--- a/gdb/testsuite/gdb.mi/pendshr2.c
+++ b/gdb/testsuite/gdb.mi/pendshr2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/pr11022.c b/gdb/testsuite/gdb.mi/pr11022.c
index 1600f2a..81688ad 100644
--- a/gdb/testsuite/gdb.mi/pr11022.c
+++ b/gdb/testsuite/gdb.mi/pr11022.c
@@ -1,6 +1,6 @@
/* This test is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/pr11022.exp b/gdb/testsuite/gdb.mi/pr11022.exp
index cce58c0..ad8e3b2 100644
--- a/gdb/testsuite/gdb.mi/pr11022.exp
+++ b/gdb/testsuite/gdb.mi/pr11022.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/print-simple-values.cc b/gdb/testsuite/gdb.mi/print-simple-values.cc
index 00f7fec..cccdba9 100644
--- a/gdb/testsuite/gdb.mi/print-simple-values.cc
+++ b/gdb/testsuite/gdb.mi/print-simple-values.cc
@@ -1,6 +1,6 @@
/* This test case is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/print-simple-values.exp b/gdb/testsuite/gdb.mi/print-simple-values.exp
index 149838a..1c56d68 100644
--- a/gdb/testsuite/gdb.mi/print-simple-values.exp
+++ b/gdb/testsuite/gdb.mi/print-simple-values.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/pthreads.c b/gdb/testsuite/gdb.mi/pthreads.c
index 47f32cf..8a6c5e8 100644
--- a/gdb/testsuite/gdb.mi/pthreads.c
+++ b/gdb/testsuite/gdb.mi/pthreads.c
@@ -1,5 +1,5 @@
/* Pthreads test program.
- Copyright 1996-2024 Free Software Foundation, Inc.
+ Copyright 1996-2025 Free Software Foundation, Inc.
Written by Keith Seitz of Red Hat.
Copied from gdb.threads/pthreads.c.
diff --git a/gdb/testsuite/gdb.mi/run-with-two-mi-uis.exp b/gdb/testsuite/gdb.mi/run-with-two-mi-uis.exp
index 5981bc1..df370c9 100644
--- a/gdb/testsuite/gdb.mi/run-with-two-mi-uis.exp
+++ b/gdb/testsuite/gdb.mi/run-with-two-mi-uis.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -59,6 +59,10 @@ proc do_test { ui_to_run } {
# the expected ^running record.
mi_runto_main
}
+
+ # mi_clean_restart and gdb_finish call gdb_exit, which doesn't work for
+ # separate-mi-tty. Use mi_gdb_exit instead.
+ mi_gdb_exit
}
foreach_with_prefix ui_to_run {first second} {
diff --git a/gdb/testsuite/gdb.mi/solib-lib.c b/gdb/testsuite/gdb.mi/solib-lib.c
index 31ae6d3..66437ca 100644
--- a/gdb/testsuite/gdb.mi/solib-lib.c
+++ b/gdb/testsuite/gdb.mi/solib-lib.c
@@ -1,4 +1,4 @@
-/* Copyright 2011-2024 Free Software Foundation, Inc.
+/* Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/solib-main.c b/gdb/testsuite/gdb.mi/solib-main.c
index 1476fca..8aa9367 100644
--- a/gdb/testsuite/gdb.mi/solib-main.c
+++ b/gdb/testsuite/gdb.mi/solib-main.c
@@ -1,4 +1,4 @@
-/* Copyright 2011-2024 Free Software Foundation, Inc.
+/* Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/user-selected-context-sync.c b/gdb/testsuite/gdb.mi/user-selected-context-sync.c
index fc3cb15..843c54e 100644
--- a/gdb/testsuite/gdb.mi/user-selected-context-sync.c
+++ b/gdb/testsuite/gdb.mi/user-selected-context-sync.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/user-selected-context-sync.exp b/gdb/testsuite/gdb.mi/user-selected-context-sync.exp
index e168a5e..f85e108 100644
--- a/gdb/testsuite/gdb.mi/user-selected-context-sync.exp
+++ b/gdb/testsuite/gdb.mi/user-selected-context-sync.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -40,6 +40,8 @@ standard_testfile
# gdbserver modes are supported.
require !use_gdb_stub
+require allow_multi_inferior_tests
+
set compile_options "debug pthreads"
if {[build_executable $testfile.exp $testfile ${srcfile} ${compile_options}] == -1} {
untested "failed to compile"
@@ -385,21 +387,10 @@ proc_with_prefix test_setup { mode } {
global mi_spawn_id
global decimal
global binfile
- global GDBFLAGS
global async
set any "\[^\r\n\]*"
- save_vars { GDBFLAGS } {
- if { $mode == "non-stop" } {
- set GDBFLAGS [concat $GDBFLAGS " -ex \"set non-stop 1\""]
- }
-
- if { [mi_clean_restart $binfile "separate-mi-tty"] != 0 } {
- return -1
- }
- }
-
if { [mi_runto_main] < 0 } {
return -1
}
@@ -996,7 +987,7 @@ proc_with_prefix test_mi_stack_select_frame { mode } {
# Now use the '-stack-select-frame' command with the --frame
# option, this verifies that even when the frame GDB would
- # swith to is the same as the frame specified with --frame, an
+ # switch to is the same as the frame specified with --frame, an
# event is still sent to the CLI.
set cli_re [make_cli_re $mode -1 -1 0]
@@ -1300,7 +1291,7 @@ proc_with_prefix test_cli_in_mi_frame { mode cli_in_mi_mode } {
}
}
-foreach_with_prefix mode { "all-stop" "non-stop" } {
+proc do_test { mode } {
set test "setup done"
if { [test_setup $mode] == -1 } {
fail $test
@@ -1331,3 +1322,25 @@ foreach_with_prefix mode { "all-stop" "non-stop" } {
test_cli_in_mi_frame $mode $exec_mode
}
}
+
+foreach_with_prefix mode { "all-stop" "non-stop" } {
+ save_vars { GDBFLAGS } {
+ if { $mode == "non-stop" } {
+ set GDBFLAGS [concat $GDBFLAGS " -ex \"set non-stop 1\""]
+ }
+
+ if { [mi_clean_restart $binfile "separate-mi-tty"] != 0 } {
+ break
+ }
+ }
+
+ set res [do_test $mode]
+
+ # mi_clean_restart and gdb_finish call gdb_exit, which doesn't work for
+ # separate-mi-tty. Use mi_gdb_exit instead.
+ mi_gdb_exit
+
+ if { $res == -1 } {
+ break
+ }
+}
diff --git a/gdb/testsuite/gdb.mi/var-cmd.c b/gdb/testsuite/gdb.mi/var-cmd.c
index 3aa5126..5171ae7 100644
--- a/gdb/testsuite/gdb.mi/var-cmd.c
+++ b/gdb/testsuite/gdb.mi/var-cmd.c
@@ -1,4 +1,4 @@
-/* Copyright 1999-2024 Free Software Foundation, Inc.
+/* Copyright 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.mi/vla.c b/gdb/testsuite/gdb.mi/vla.c
index ba7edac..3c9e087 100644
--- a/gdb/testsuite/gdb.mi/vla.c
+++ b/gdb/testsuite/gdb.mi/vla.c
@@ -2,7 +2,7 @@
Contributed by Intel Corp. <keven.boell@intel.com>
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/vla.f90 b/gdb/testsuite/gdb.mi/vla.f90
index 3420eb3..edd3bb5 100644
--- a/gdb/testsuite/gdb.mi/vla.f90
+++ b/gdb/testsuite/gdb.mi/vla.f90
@@ -1,4 +1,4 @@
-! Copyright 2015-2024 Free Software Foundation, Inc.
+! Copyright 2015-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.mi/watch-nonstop.c b/gdb/testsuite/gdb.mi/watch-nonstop.c
index 6562f88..eacc40d 100644
--- a/gdb/testsuite/gdb.mi/watch-nonstop.c
+++ b/gdb/testsuite/gdb.mi/watch-nonstop.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.modula2/builtin-procedure-adr.exp b/gdb/testsuite/gdb.modula2/builtin-procedure-adr.exp
index 6588020..884ac37 100644
--- a/gdb/testsuite/gdb.modula2/builtin-procedure-adr.exp
+++ b/gdb/testsuite/gdb.modula2/builtin-procedure-adr.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.modula2/max-depth.c b/gdb/testsuite/gdb.modula2/max-depth.c
index 153c277..a6e7b5e 100644
--- a/gdb/testsuite/gdb.modula2/max-depth.c
+++ b/gdb/testsuite/gdb.modula2/max-depth.c
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.modula2/max-depth.exp b/gdb/testsuite/gdb.modula2/max-depth.exp
index 63f5bdd..28f348f 100644
--- a/gdb/testsuite/gdb.modula2/max-depth.exp
+++ b/gdb/testsuite/gdb.modula2/max-depth.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.modula2/multidim.c b/gdb/testsuite/gdb.modula2/multidim.c
index 4595e01..9632007 100644
--- a/gdb/testsuite/gdb.modula2/multidim.c
+++ b/gdb/testsuite/gdb.modula2/multidim.c
@@ -1,6 +1,6 @@
/* This test script is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.modula2/multidim.exp b/gdb/testsuite/gdb.modula2/multidim.exp
index 0a04f2c..3301412 100644
--- a/gdb/testsuite/gdb.modula2/multidim.exp
+++ b/gdb/testsuite/gdb.modula2/multidim.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.modula2/unbounded-array.exp b/gdb/testsuite/gdb.modula2/unbounded-array.exp
index a0eb23e..f11951b 100644
--- a/gdb/testsuite/gdb.modula2/unbounded-array.exp
+++ b/gdb/testsuite/gdb.modula2/unbounded-array.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.modula2/unbounded1.c b/gdb/testsuite/gdb.modula2/unbounded1.c
index 629fcc3..1629d0e 100644
--- a/gdb/testsuite/gdb.modula2/unbounded1.c
+++ b/gdb/testsuite/gdb.modula2/unbounded1.c
@@ -1,6 +1,6 @@
/* This test script is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/attach-no-multi-process.c b/gdb/testsuite/gdb.multi/attach-no-multi-process.c
index 4f3f9c5..819d234 100644
--- a/gdb/testsuite/gdb.multi/attach-no-multi-process.c
+++ b/gdb/testsuite/gdb.multi/attach-no-multi-process.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/attach-no-multi-process.exp b/gdb/testsuite/gdb.multi/attach-no-multi-process.exp
index daa6d70..502f309 100644
--- a/gdb/testsuite/gdb.multi/attach-no-multi-process.exp
+++ b/gdb/testsuite/gdb.multi/attach-no-multi-process.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -59,7 +59,10 @@ proc test {target_non_stop} {
"switch to inferior 2"
set res [gdbserver_start "--multi" ""]
set gdbserver_gdbport [lindex $res 1]
- gdb_target_cmd "extended-remote" $gdbserver_gdbport
+ if { [gdb_target_cmd_ext "extended-remote" $gdbserver_gdbport] == 2 } {
+ unsupported "non-stop RSP"
+ return
+ }
# Start a program, then attach to it.
set spawn_id_list [spawn_wait_for_attach [list $binfile]]
diff --git a/gdb/testsuite/gdb.multi/attach-while-running.c b/gdb/testsuite/gdb.multi/attach-while-running.c
index 14e4a65..26f5eae 100644
--- a/gdb/testsuite/gdb.multi/attach-while-running.c
+++ b/gdb/testsuite/gdb.multi/attach-while-running.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/attach-while-running.exp b/gdb/testsuite/gdb.multi/attach-while-running.exp
index ca4fa63..723ebb2 100644
--- a/gdb/testsuite/gdb.multi/attach-while-running.exp
+++ b/gdb/testsuite/gdb.multi/attach-while-running.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -37,6 +37,7 @@
standard_testfile
require can_spawn_for_attach
+require allow_multi_inferior_tests
if { [build_executable "failed to prepare" ${testfile} ${srcfile}] } {
return
@@ -49,7 +50,7 @@ proc do_test {} {
}
gdb_test -no-prompt-anchor "run &"
- gdb_test "add-inferior" "Added inferior 2 on connection 1 .*"
+ gdb_test -no-prompt-anchor "add-inferior" "Added inferior 2 on connection 1 .*"
gdb_test "inferior 2" "Switching to inferior 2 .*"
set spawn_id [spawn_wait_for_attach $::binfile]
diff --git a/gdb/testsuite/gdb.multi/base.exp b/gdb/testsuite/gdb.multi/base.exp
index 834d961..4268149 100644
--- a/gdb/testsuite/gdb.multi/base.exp
+++ b/gdb/testsuite/gdb.multi/base.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/bkpt-multi-exec.exp b/gdb/testsuite/gdb.multi/bkpt-multi-exec.exp
index 44a45a1..b2b4319 100644
--- a/gdb/testsuite/gdb.multi/bkpt-multi-exec.exp
+++ b/gdb/testsuite/gdb.multi/bkpt-multi-exec.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/bp-thread-specific.c b/gdb/testsuite/gdb.multi/bp-thread-specific.c
index c7516ad..f144500 100644
--- a/gdb/testsuite/gdb.multi/bp-thread-specific.c
+++ b/gdb/testsuite/gdb.multi/bp-thread-specific.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/bp-thread-specific.exp b/gdb/testsuite/gdb.multi/bp-thread-specific.exp
index 11dc248..3fe4c20 100644
--- a/gdb/testsuite/gdb.multi/bp-thread-specific.exp
+++ b/gdb/testsuite/gdb.multi/bp-thread-specific.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -19,6 +19,8 @@
# Also check that the correct thread-ids are used in the saved
# breakpoints file.
+require allow_multi_inferior_tests
+
# The plain remote target can't do multiple inferiors.
require !use_gdb_stub
diff --git a/gdb/testsuite/gdb.multi/checkpoint-multi.exp b/gdb/testsuite/gdb.multi/checkpoint-multi.exp
index e401e5e..8439b8d 100644
--- a/gdb/testsuite/gdb.multi/checkpoint-multi.exp
+++ b/gdb/testsuite/gdb.multi/checkpoint-multi.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/dummy-frame-restore.c b/gdb/testsuite/gdb.multi/dummy-frame-restore.c
index 6db0d30..1fc28eb 100644
--- a/gdb/testsuite/gdb.multi/dummy-frame-restore.c
+++ b/gdb/testsuite/gdb.multi/dummy-frame-restore.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/dummy-frame-restore.exp b/gdb/testsuite/gdb.multi/dummy-frame-restore.exp
index 0bc5e6a..4119e3f 100644
--- a/gdb/testsuite/gdb.multi/dummy-frame-restore.exp
+++ b/gdb/testsuite/gdb.multi/dummy-frame-restore.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -19,6 +19,8 @@ set executable ${testfile}
# The plain remote target can't do multiple inferiors.
require !use_gdb_stub
+require allow_multi_inferior_tests
+
if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug}]} {
return -1
}
diff --git a/gdb/testsuite/gdb.multi/gdb-settings.c b/gdb/testsuite/gdb.multi/gdb-settings.c
index cb8b860..4caa75a 100644
--- a/gdb/testsuite/gdb.multi/gdb-settings.c
+++ b/gdb/testsuite/gdb.multi/gdb-settings.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/gdb-settings.exp b/gdb/testsuite/gdb.multi/gdb-settings.exp
index ec708dd..b1acca0 100644
--- a/gdb/testsuite/gdb.multi/gdb-settings.exp
+++ b/gdb/testsuite/gdb.multi/gdb-settings.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/goodbye.c b/gdb/testsuite/gdb.multi/goodbye.c
index 6d0328b..8d4ff0c 100644
--- a/gdb/testsuite/gdb.multi/goodbye.c
+++ b/gdb/testsuite/gdb.multi/goodbye.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/hangout.c b/gdb/testsuite/gdb.multi/hangout.c
index 192e118..93c7fac 100644
--- a/gdb/testsuite/gdb.multi/hangout.c
+++ b/gdb/testsuite/gdb.multi/hangout.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/hello.c b/gdb/testsuite/gdb.multi/hello.c
index adb1b9d..9e95789 100644
--- a/gdb/testsuite/gdb.multi/hello.c
+++ b/gdb/testsuite/gdb.multi/hello.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/inferior-specific-bp-1.c b/gdb/testsuite/gdb.multi/inferior-specific-bp-1.c
index 16db062..5f906db 100644
--- a/gdb/testsuite/gdb.multi/inferior-specific-bp-1.c
+++ b/gdb/testsuite/gdb.multi/inferior-specific-bp-1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/inferior-specific-bp-2.c b/gdb/testsuite/gdb.multi/inferior-specific-bp-2.c
index 3a45c21..e67b4c8 100644
--- a/gdb/testsuite/gdb.multi/inferior-specific-bp-2.c
+++ b/gdb/testsuite/gdb.multi/inferior-specific-bp-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/inferior-specific-bp.exp b/gdb/testsuite/gdb.multi/inferior-specific-bp.exp
index 82cc924..db09095 100644
--- a/gdb/testsuite/gdb.multi/inferior-specific-bp.exp
+++ b/gdb/testsuite/gdb.multi/inferior-specific-bp.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/info-threads.exp b/gdb/testsuite/gdb.multi/info-threads.exp
index 3b00948..ec2a140 100644
--- a/gdb/testsuite/gdb.multi/info-threads.exp
+++ b/gdb/testsuite/gdb.multi/info-threads.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/multi-arch-exec.c b/gdb/testsuite/gdb.multi/multi-arch-exec.c
index bf8cfd4..98f6b15 100644
--- a/gdb/testsuite/gdb.multi/multi-arch-exec.c
+++ b/gdb/testsuite/gdb.multi/multi-arch-exec.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/multi-arch-exec.exp b/gdb/testsuite/gdb.multi/multi-arch-exec.exp
index a69e122..69c6b13 100644
--- a/gdb/testsuite/gdb.multi/multi-arch-exec.exp
+++ b/gdb/testsuite/gdb.multi/multi-arch-exec.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/multi-arch.exp b/gdb/testsuite/gdb.multi/multi-arch.exp
index 559bd7b..1d41ba5 100644
--- a/gdb/testsuite/gdb.multi/multi-arch.exp
+++ b/gdb/testsuite/gdb.multi/multi-arch.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -18,6 +18,8 @@
set testfile "multi-arch"
+require allow_multi_inferior_tests
+
# The plain remote target can't do multiple inferiors.
require !use_gdb_stub
diff --git a/gdb/testsuite/gdb.multi/multi-attach.c b/gdb/testsuite/gdb.multi/multi-attach.c
index 23160b6..3e1fd40 100644
--- a/gdb/testsuite/gdb.multi/multi-attach.c
+++ b/gdb/testsuite/gdb.multi/multi-attach.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/multi-attach.exp b/gdb/testsuite/gdb.multi/multi-attach.exp
index 4312636..210c8ca 100644
--- a/gdb/testsuite/gdb.multi/multi-attach.exp
+++ b/gdb/testsuite/gdb.multi/multi-attach.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -17,6 +17,8 @@
# Test attaching to multiple threaded programs.
+require allow_multi_inferior_tests
+
standard_testfile
require can_spawn_for_attach
diff --git a/gdb/testsuite/gdb.multi/multi-exit.c b/gdb/testsuite/gdb.multi/multi-exit.c
index 27a14b7..65b18bc 100644
--- a/gdb/testsuite/gdb.multi/multi-exit.c
+++ b/gdb/testsuite/gdb.multi/multi-exit.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/multi-exit.exp b/gdb/testsuite/gdb.multi/multi-exit.exp
index 6ffbe5e..8393067 100644
--- a/gdb/testsuite/gdb.multi/multi-exit.exp
+++ b/gdb/testsuite/gdb.multi/multi-exit.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -24,6 +24,8 @@
standard_testfile
+require allow_multi_inferior_tests
+
require !use_gdb_stub
if {[build_executable "failed to prepare" $testfile $srcfile]} {
diff --git a/gdb/testsuite/gdb.multi/multi-kill.c b/gdb/testsuite/gdb.multi/multi-kill.c
index f097eab..cf601cd 100644
--- a/gdb/testsuite/gdb.multi/multi-kill.c
+++ b/gdb/testsuite/gdb.multi/multi-kill.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/multi-kill.exp b/gdb/testsuite/gdb.multi/multi-kill.exp
index aa39712..7d66ab0 100644
--- a/gdb/testsuite/gdb.multi/multi-kill.exp
+++ b/gdb/testsuite/gdb.multi/multi-kill.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -24,6 +24,8 @@
standard_testfile
+require allow_multi_inferior_tests
+
require !use_gdb_stub
if {[build_executable "failed to prepare" $testfile $srcfile {debug}]} {
diff --git a/gdb/testsuite/gdb.multi/multi-re-run-1.c b/gdb/testsuite/gdb.multi/multi-re-run-1.c
index f10b0da..2cba30a 100644
--- a/gdb/testsuite/gdb.multi/multi-re-run-1.c
+++ b/gdb/testsuite/gdb.multi/multi-re-run-1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/multi-re-run-2.c b/gdb/testsuite/gdb.multi/multi-re-run-2.c
index d72162f..6a5d8d8 100644
--- a/gdb/testsuite/gdb.multi/multi-re-run-2.c
+++ b/gdb/testsuite/gdb.multi/multi-re-run-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/multi-re-run.exp b/gdb/testsuite/gdb.multi/multi-re-run.exp
index bf9a72c..4caadea 100644
--- a/gdb/testsuite/gdb.multi/multi-re-run.exp
+++ b/gdb/testsuite/gdb.multi/multi-re-run.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@
# misbehave, including failing to load libthread_db.so. See PR
# gdb/25410.
+require allow_multi_inferior_tests
+
# Build two executables, with different symbols.
set exec1 "multi-re-run-1"
diff --git a/gdb/testsuite/gdb.multi/multi-target-continue.exp b/gdb/testsuite/gdb.multi/multi-target-continue.exp
index d4b2fc2..ed67ef6 100644
--- a/gdb/testsuite/gdb.multi/multi-target-continue.exp
+++ b/gdb/testsuite/gdb.multi/multi-target-continue.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/multi-target-info-inferiors.exp b/gdb/testsuite/gdb.multi/multi-target-info-inferiors.exp
index d69042d..e03dc60 100644
--- a/gdb/testsuite/gdb.multi/multi-target-info-inferiors.exp
+++ b/gdb/testsuite/gdb.multi/multi-target-info-inferiors.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/multi-target-info-inferiors.py b/gdb/testsuite/gdb.multi/multi-target-info-inferiors.py
index 3fe7ea8..59557ae 100644
--- a/gdb/testsuite/gdb.multi/multi-target-info-inferiors.py
+++ b/gdb/testsuite/gdb.multi/multi-target-info-inferiors.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/multi-target-interrupt.exp b/gdb/testsuite/gdb.multi/multi-target-interrupt.exp
index ce844d0..eda606f 100644
--- a/gdb/testsuite/gdb.multi/multi-target-interrupt.exp
+++ b/gdb/testsuite/gdb.multi/multi-target-interrupt.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/multi-target-no-resumed.exp b/gdb/testsuite/gdb.multi/multi-target-no-resumed.exp
index b1203bd..4f93080 100644
--- a/gdb/testsuite/gdb.multi/multi-target-no-resumed.exp
+++ b/gdb/testsuite/gdb.multi/multi-target-no-resumed.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/multi-target-ping-pong-next.exp b/gdb/testsuite/gdb.multi/multi-target-ping-pong-next.exp
index 36f9d24..b7d1529 100644
--- a/gdb/testsuite/gdb.multi/multi-target-ping-pong-next.exp
+++ b/gdb/testsuite/gdb.multi/multi-target-ping-pong-next.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/multi-target-thread-find.exp b/gdb/testsuite/gdb.multi/multi-target-thread-find.exp
index 24d19d5..ba1ea95 100644
--- a/gdb/testsuite/gdb.multi/multi-target-thread-find.exp
+++ b/gdb/testsuite/gdb.multi/multi-target-thread-find.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/multi-target.c b/gdb/testsuite/gdb.multi/multi-target.c
index aae53c0..e3c365d 100644
--- a/gdb/testsuite/gdb.multi/multi-target.c
+++ b/gdb/testsuite/gdb.multi/multi-target.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/multi-target.exp.tcl b/gdb/testsuite/gdb.multi/multi-target.exp.tcl
index 4f29de8..dc88ca4 100644
--- a/gdb/testsuite/gdb.multi/multi-target.exp.tcl
+++ b/gdb/testsuite/gdb.multi/multi-target.exp.tcl
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -175,6 +175,10 @@ proc multi_target_prepare {} {
return 0
}
+ if {![allow_multi_inferior_tests]} {
+ return 0
+ }
+
# The plain remote target can't do multiple inferiors.
if {[target_info gdb_protocol] != ""} {
return 0
diff --git a/gdb/testsuite/gdb.multi/multi-term-settings.c b/gdb/testsuite/gdb.multi/multi-term-settings.c
index e9e7e95..9079f76 100644
--- a/gdb/testsuite/gdb.multi/multi-term-settings.c
+++ b/gdb/testsuite/gdb.multi/multi-term-settings.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/multi-term-settings.exp b/gdb/testsuite/gdb.multi/multi-term-settings.exp
index 0aeba1f..38322be 100644
--- a/gdb/testsuite/gdb.multi/multi-term-settings.exp
+++ b/gdb/testsuite/gdb.multi/multi-term-settings.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -25,6 +25,8 @@
standard_testfile
+require allow_multi_inferior_tests
+
require can_spawn_for_attach
if [build_executable "failed to prepare" $testfile $srcfile {debug}] {
diff --git a/gdb/testsuite/gdb.multi/pending-bp-del-inferior.c b/gdb/testsuite/gdb.multi/pending-bp-del-inferior.c
index 1d03000..53dc9b2 100644
--- a/gdb/testsuite/gdb.multi/pending-bp-del-inferior.c
+++ b/gdb/testsuite/gdb.multi/pending-bp-del-inferior.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/pending-bp-del-inferior.exp b/gdb/testsuite/gdb.multi/pending-bp-del-inferior.exp
index 12c0a84..a7055d7 100644
--- a/gdb/testsuite/gdb.multi/pending-bp-del-inferior.exp
+++ b/gdb/testsuite/gdb.multi/pending-bp-del-inferior.exp
@@ -1,4 +1,4 @@
-# Copyright 2023 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/pending-bp-lib.c b/gdb/testsuite/gdb.multi/pending-bp-lib.c
index c48e7f2..d34a103 100644
--- a/gdb/testsuite/gdb.multi/pending-bp-lib.c
+++ b/gdb/testsuite/gdb.multi/pending-bp-lib.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/pending-bp.c b/gdb/testsuite/gdb.multi/pending-bp.c
index 17d9181..c7e00ce 100644
--- a/gdb/testsuite/gdb.multi/pending-bp.c
+++ b/gdb/testsuite/gdb.multi/pending-bp.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/pending-bp.exp b/gdb/testsuite/gdb.multi/pending-bp.exp
index 2a0644b..1cd1cfb 100644
--- a/gdb/testsuite/gdb.multi/pending-bp.exp
+++ b/gdb/testsuite/gdb.multi/pending-bp.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/remove-inferiors.c b/gdb/testsuite/gdb.multi/remove-inferiors.c
index 1fc584b..4c037df 100644
--- a/gdb/testsuite/gdb.multi/remove-inferiors.c
+++ b/gdb/testsuite/gdb.multi/remove-inferiors.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/remove-inferiors.exp b/gdb/testsuite/gdb.multi/remove-inferiors.exp
index 0e81c80..586d958 100644
--- a/gdb/testsuite/gdb.multi/remove-inferiors.exp
+++ b/gdb/testsuite/gdb.multi/remove-inferiors.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/run-only-second-inf.c b/gdb/testsuite/gdb.multi/run-only-second-inf.c
index 27a14b7..65b18bc 100644
--- a/gdb/testsuite/gdb.multi/run-only-second-inf.c
+++ b/gdb/testsuite/gdb.multi/run-only-second-inf.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/run-only-second-inf.exp b/gdb/testsuite/gdb.multi/run-only-second-inf.exp
index be1d0df..7b6532c 100644
--- a/gdb/testsuite/gdb.multi/run-only-second-inf.exp
+++ b/gdb/testsuite/gdb.multi/run-only-second-inf.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/start-inferior-specific-other.c b/gdb/testsuite/gdb.multi/start-inferior-specific-other.c
index 2e907be..355fbb0 100644
--- a/gdb/testsuite/gdb.multi/start-inferior-specific-other.c
+++ b/gdb/testsuite/gdb.multi/start-inferior-specific-other.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/start-inferior-specific.c b/gdb/testsuite/gdb.multi/start-inferior-specific.c
index 91f7abc..0a47e0e 100644
--- a/gdb/testsuite/gdb.multi/start-inferior-specific.c
+++ b/gdb/testsuite/gdb.multi/start-inferior-specific.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/start-inferior-specific.exp b/gdb/testsuite/gdb.multi/start-inferior-specific.exp
index c2a8bdb..74f984c 100644
--- a/gdb/testsuite/gdb.multi/start-inferior-specific.exp
+++ b/gdb/testsuite/gdb.multi/start-inferior-specific.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -25,6 +25,8 @@
standard_testfile .c -other.c
+require allow_multi_inferior_tests
+
require !use_gdb_stub
set srcfile_other ${srcfile2}
diff --git a/gdb/testsuite/gdb.multi/stop-all-on-exit.c b/gdb/testsuite/gdb.multi/stop-all-on-exit.c
index 56df916..d672b07 100644
--- a/gdb/testsuite/gdb.multi/stop-all-on-exit.c
+++ b/gdb/testsuite/gdb.multi/stop-all-on-exit.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/stop-all-on-exit.exp b/gdb/testsuite/gdb.multi/stop-all-on-exit.exp
index 1ac5388c..47071f3 100644
--- a/gdb/testsuite/gdb.multi/stop-all-on-exit.exp
+++ b/gdb/testsuite/gdb.multi/stop-all-on-exit.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -18,6 +18,8 @@
# Test that in all-stop mode with multiple inferiors, GDB stops all
# threads upon receiving an exit event from one of the inferiors.
+require allow_multi_inferior_tests
+
# This is a test specific for a native target, where we use the
# "-exec" argument to "add-inferior" and we explicitly don't do
# "maint set target-non-stop on".
diff --git a/gdb/testsuite/gdb.multi/tids-gid-reset.c b/gdb/testsuite/gdb.multi/tids-gid-reset.c
index c894e30..68e3308 100644
--- a/gdb/testsuite/gdb.multi/tids-gid-reset.c
+++ b/gdb/testsuite/gdb.multi/tids-gid-reset.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/tids-gid-reset.exp b/gdb/testsuite/gdb.multi/tids-gid-reset.exp
index a366a35..1785ac2 100644
--- a/gdb/testsuite/gdb.multi/tids-gid-reset.exp
+++ b/gdb/testsuite/gdb.multi/tids-gid-reset.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -54,6 +54,8 @@ with_test_prefix "single-inferior" {
# non-extended gdbserver is not supported.
require !use_gdb_stub
+require allow_multi_inferior_tests
+
# Test with multiple inferiors. This time, since we restart inferior
# 1 while inferior 2 still has threads, then the new thread 1.1 should
# end up with GID == 3, since we won't be able to reset the global
diff --git a/gdb/testsuite/gdb.multi/tids.c b/gdb/testsuite/gdb.multi/tids.c
index 67f1074..811d803 100644
--- a/gdb/testsuite/gdb.multi/tids.c
+++ b/gdb/testsuite/gdb.multi/tids.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/tids.exp b/gdb/testsuite/gdb.multi/tids.exp
index 4f78884..436a38a 100644
--- a/gdb/testsuite/gdb.multi/tids.exp
+++ b/gdb/testsuite/gdb.multi/tids.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -124,6 +124,9 @@ with_test_prefix "single inferior" {
gdb_test "print \$_inferior_thread_count" " = 1"
}
+# The rest of the tests require running multiple inferiors.
+require allow_multi_inferior_tests
+
# "info threads" while there are multiple inferiors should show
# qualified thread IDs.
with_test_prefix "two inferiors" {
@@ -290,7 +293,7 @@ with_test_prefix "two inferiors" {
# Try both the convenience variable and the literal number.
foreach thr {"\$thr" "20" "1.20" "\$inf.1" "30.1" } {
set expected [string_to_regexp $thr]
- gdb_test "info threads $thr" "No threads match '${expected}'."
+ gdb_test "info threads $thr" "No threads matched\\."
# "info threads" works like a filter. If there's any other
# valid thread in the list, there's no error.
info_threads "$thr 1.1" "1.1"
@@ -412,7 +415,7 @@ with_test_prefix "two inferiors" {
# Check that we do parse the inferior number and don't confuse it.
gdb_test "info threads 3.1" \
- "No threads match '3.1'\."
+ "No threads matched\\."
}
if { [allow_python_tests] } {
diff --git a/gdb/testsuite/gdb.multi/watchpoint-multi-exit.c b/gdb/testsuite/gdb.multi/watchpoint-multi-exit.c
index 5bdbf89..4574dab 100644
--- a/gdb/testsuite/gdb.multi/watchpoint-multi-exit.c
+++ b/gdb/testsuite/gdb.multi/watchpoint-multi-exit.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/watchpoint-multi-exit.exp b/gdb/testsuite/gdb.multi/watchpoint-multi-exit.exp
index 688b145..3446296 100644
--- a/gdb/testsuite/gdb.multi/watchpoint-multi-exit.exp
+++ b/gdb/testsuite/gdb.multi/watchpoint-multi-exit.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -17,6 +17,8 @@
# watchpoints don't end up with stale locations, preventing resumption
# of other inferiors.
+require allow_fork_tests
+
standard_testfile
if {[build_executable "failed to build" $testfile $srcfile {debug}]} {
diff --git a/gdb/testsuite/gdb.multi/watchpoint-multi.c b/gdb/testsuite/gdb.multi/watchpoint-multi.c
index 0c54144..4dd5bde 100644
--- a/gdb/testsuite/gdb.multi/watchpoint-multi.c
+++ b/gdb/testsuite/gdb.multi/watchpoint-multi.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.multi/watchpoint-multi.exp b/gdb/testsuite/gdb.multi/watchpoint-multi.exp
index 91e42d8..b0c8731 100644
--- a/gdb/testsuite/gdb.multi/watchpoint-multi.exp
+++ b/gdb/testsuite/gdb.multi/watchpoint-multi.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,6 +16,8 @@
standard_testfile
set executable ${testfile}
+require allow_multi_inferior_tests
+
# Multiple inferiors are needed, therefore both native and extended gdbserver
# modes are supported. Only non-extended gdbserver is not supported.
require !use_gdb_stub
diff --git a/gdb/testsuite/gdb.objc/basicclass.exp b/gdb/testsuite/gdb.objc/basicclass.exp
index f4410b4..7f29aff 100644
--- a/gdb/testsuite/gdb.objc/basicclass.exp
+++ b/gdb/testsuite/gdb.objc/basicclass.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.objc/nondebug.exp b/gdb/testsuite/gdb.objc/nondebug.exp
index c7565b8..dfdd9bc 100644
--- a/gdb/testsuite/gdb.objc/nondebug.exp
+++ b/gdb/testsuite/gdb.objc/nondebug.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.objc/objcdecode.exp b/gdb/testsuite/gdb.objc/objcdecode.exp
index 6582d08..b7c38db 100644
--- a/gdb/testsuite/gdb.objc/objcdecode.exp
+++ b/gdb/testsuite/gdb.objc/objcdecode.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.objc/print.exp b/gdb/testsuite/gdb.objc/print.exp
index 0d67cef..c18bf29 100644
--- a/gdb/testsuite/gdb.objc/print.exp
+++ b/gdb/testsuite/gdb.objc/print.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opencl/callfuncs.cl b/gdb/testsuite/gdb.opencl/callfuncs.cl
index bace910..c048aa9 100644
--- a/gdb/testsuite/gdb.opencl/callfuncs.cl
+++ b/gdb/testsuite/gdb.opencl/callfuncs.cl
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opencl/callfuncs.exp b/gdb/testsuite/gdb.opencl/callfuncs.exp
index e5f0aa5..8ab8db7 100644
--- a/gdb/testsuite/gdb.opencl/callfuncs.exp
+++ b/gdb/testsuite/gdb.opencl/callfuncs.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opencl/convs_casts.cl b/gdb/testsuite/gdb.opencl/convs_casts.cl
index da4ddf2..087d596 100644
--- a/gdb/testsuite/gdb.opencl/convs_casts.cl
+++ b/gdb/testsuite/gdb.opencl/convs_casts.cl
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opencl/convs_casts.exp b/gdb/testsuite/gdb.opencl/convs_casts.exp
index b267cbc..23a18d7 100644
--- a/gdb/testsuite/gdb.opencl/convs_casts.exp
+++ b/gdb/testsuite/gdb.opencl/convs_casts.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opencl/datatypes.cl b/gdb/testsuite/gdb.opencl/datatypes.cl
index 999defa..75845fa 100644
--- a/gdb/testsuite/gdb.opencl/datatypes.cl
+++ b/gdb/testsuite/gdb.opencl/datatypes.cl
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opencl/datatypes.exp b/gdb/testsuite/gdb.opencl/datatypes.exp
index 16243ad..78762da 100644
--- a/gdb/testsuite/gdb.opencl/datatypes.exp
+++ b/gdb/testsuite/gdb.opencl/datatypes.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opencl/operators.cl b/gdb/testsuite/gdb.opencl/operators.cl
index 19d509a..66e8870 100644
--- a/gdb/testsuite/gdb.opencl/operators.cl
+++ b/gdb/testsuite/gdb.opencl/operators.cl
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opencl/operators.exp b/gdb/testsuite/gdb.opencl/operators.exp
index 7890d80..bbf663d 100644
--- a/gdb/testsuite/gdb.opencl/operators.exp
+++ b/gdb/testsuite/gdb.opencl/operators.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opencl/vec_comps.cl b/gdb/testsuite/gdb.opencl/vec_comps.cl
index 6ba1c04..eb4f55d 100644
--- a/gdb/testsuite/gdb.opencl/vec_comps.cl
+++ b/gdb/testsuite/gdb.opencl/vec_comps.cl
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opencl/vec_comps.exp b/gdb/testsuite/gdb.opencl/vec_comps.exp
index c3d6d58..3485a34 100644
--- a/gdb/testsuite/gdb.opencl/vec_comps.exp
+++ b/gdb/testsuite/gdb.opencl/vec_comps.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/break-on-_exit.c b/gdb/testsuite/gdb.opt/break-on-_exit.c
index 688311e..e138556 100644
--- a/gdb/testsuite/gdb.opt/break-on-_exit.c
+++ b/gdb/testsuite/gdb.opt/break-on-_exit.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/break-on-_exit.exp b/gdb/testsuite/gdb.opt/break-on-_exit.exp
index 59fecaa..9295fea 100644
--- a/gdb/testsuite/gdb.opt/break-on-_exit.exp
+++ b/gdb/testsuite/gdb.opt/break-on-_exit.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -25,7 +25,7 @@
# for libc, then the breakpoint is set on the exec-local _exit@plt instead,
# and that functionality will also not be used.
#
-# We may get the required setup in case of a libc with misssing separate
+# We may get the required setup in case of a libc with missing separate
# debuginfo, but we want the same effect if that debuginfo is installed.
#
# So, we use -readnever to read minimal symbols, but not non-miminal symbols.
diff --git a/gdb/testsuite/gdb.opt/clobbered-registers-O2-2.c b/gdb/testsuite/gdb.opt/clobbered-registers-O2-2.c
index e0675cb..7ba817c 100644
--- a/gdb/testsuite/gdb.opt/clobbered-registers-O2-2.c
+++ b/gdb/testsuite/gdb.opt/clobbered-registers-O2-2.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/clobbered-registers-O2-3.c b/gdb/testsuite/gdb.opt/clobbered-registers-O2-3.c
index b55a613..803fc94 100644
--- a/gdb/testsuite/gdb.opt/clobbered-registers-O2-3.c
+++ b/gdb/testsuite/gdb.opt/clobbered-registers-O2-3.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/clobbered-registers-O2.c b/gdb/testsuite/gdb.opt/clobbered-registers-O2.c
index 5f5d7a1..713267b 100644
--- a/gdb/testsuite/gdb.opt/clobbered-registers-O2.c
+++ b/gdb/testsuite/gdb.opt/clobbered-registers-O2.c
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/clobbered-registers-O2.exp b/gdb/testsuite/gdb.opt/clobbered-registers-O2.exp
index 326dce7..c6457c7 100644
--- a/gdb/testsuite/gdb.opt/clobbered-registers-O2.exp
+++ b/gdb/testsuite/gdb.opt/clobbered-registers-O2.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/fortran-string.exp b/gdb/testsuite/gdb.opt/fortran-string.exp
index 87f42d8..bad25cd 100644
--- a/gdb/testsuite/gdb.opt/fortran-string.exp
+++ b/gdb/testsuite/gdb.opt/fortran-string.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/fortran-string.f90 b/gdb/testsuite/gdb.opt/fortran-string.f90
index 4e7d5c8..4aeb95c 100644
--- a/gdb/testsuite/gdb.opt/fortran-string.f90
+++ b/gdb/testsuite/gdb.opt/fortran-string.f90
@@ -1,4 +1,4 @@
-! Copyright 2009-2024 Free Software Foundation, Inc.
+! Copyright 2009-2025 Free Software Foundation, Inc.
!
! This program is free software; you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/inline-break.c b/gdb/testsuite/gdb.opt/inline-break.c
index 9e31bd9..ed79a95 100644
--- a/gdb/testsuite/gdb.opt/inline-break.c
+++ b/gdb/testsuite/gdb.opt/inline-break.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/inline-break.exp b/gdb/testsuite/gdb.opt/inline-break.exp
index 9c57d22..d83ff75 100644
--- a/gdb/testsuite/gdb.opt/inline-break.exp
+++ b/gdb/testsuite/gdb.opt/inline-break.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/inline-bt.c b/gdb/testsuite/gdb.opt/inline-bt.c
index 3999104..a020bd7 100644
--- a/gdb/testsuite/gdb.opt/inline-bt.c
+++ b/gdb/testsuite/gdb.opt/inline-bt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/inline-bt.exp b/gdb/testsuite/gdb.opt/inline-bt.exp
index 9e1fb19..79c48e8 100644
--- a/gdb/testsuite/gdb.opt/inline-bt.exp
+++ b/gdb/testsuite/gdb.opt/inline-bt.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/inline-cmds.c b/gdb/testsuite/gdb.opt/inline-cmds.c
index dac8e8b..f9c7d24 100644
--- a/gdb/testsuite/gdb.opt/inline-cmds.c
+++ b/gdb/testsuite/gdb.opt/inline-cmds.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/inline-cmds.exp b/gdb/testsuite/gdb.opt/inline-cmds.exp
index 7a9f2e0..eca897c 100644
--- a/gdb/testsuite/gdb.opt/inline-cmds.exp
+++ b/gdb/testsuite/gdb.opt/inline-cmds.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/inline-entry.c b/gdb/testsuite/gdb.opt/inline-entry.c
index 891b22a..e9e2ebd 100644
--- a/gdb/testsuite/gdb.opt/inline-entry.c
+++ b/gdb/testsuite/gdb.opt/inline-entry.c
@@ -1,4 +1,4 @@
-/* Copyright 2024 Free Software Foundation, Inc.
+/* Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/inline-entry.exp b/gdb/testsuite/gdb.opt/inline-entry.exp
index 16443c6..f185f10 100644
--- a/gdb/testsuite/gdb.opt/inline-entry.exp
+++ b/gdb/testsuite/gdb.opt/inline-entry.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/inline-locals.c b/gdb/testsuite/gdb.opt/inline-locals.c
index a673098..f78bea4 100644
--- a/gdb/testsuite/gdb.opt/inline-locals.c
+++ b/gdb/testsuite/gdb.opt/inline-locals.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/inline-locals.exp b/gdb/testsuite/gdb.opt/inline-locals.exp
index 358a8d2..6561cc3 100644
--- a/gdb/testsuite/gdb.opt/inline-locals.exp
+++ b/gdb/testsuite/gdb.opt/inline-locals.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/inline-markers.c b/gdb/testsuite/gdb.opt/inline-markers.c
index 02fd5df..764b0aa 100644
--- a/gdb/testsuite/gdb.opt/inline-markers.c
+++ b/gdb/testsuite/gdb.opt/inline-markers.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/inline-small-func.c b/gdb/testsuite/gdb.opt/inline-small-func.c
index 036f7ef..6f86b44 100644
--- a/gdb/testsuite/gdb.opt/inline-small-func.c
+++ b/gdb/testsuite/gdb.opt/inline-small-func.c
@@ -1,4 +1,4 @@
-/* Copyright 2020-2024 Free Software Foundation, Inc.
+/* Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/inline-small-func.exp b/gdb/testsuite/gdb.opt/inline-small-func.exp
index 9090e23..d77a10e 100644
--- a/gdb/testsuite/gdb.opt/inline-small-func.exp
+++ b/gdb/testsuite/gdb.opt/inline-small-func.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/inline-small-func.h b/gdb/testsuite/gdb.opt/inline-small-func.h
index 135a08a..10373fc 100644
--- a/gdb/testsuite/gdb.opt/inline-small-func.h
+++ b/gdb/testsuite/gdb.opt/inline-small-func.h
@@ -1,4 +1,4 @@
-/* Copyright 2020-2024 Free Software Foundation, Inc.
+/* Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/main.c b/gdb/testsuite/gdb.opt/main.c
index 75dd353..b6c34a2 100644
--- a/gdb/testsuite/gdb.opt/main.c
+++ b/gdb/testsuite/gdb.opt/main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/solib-intra-step-lib.c b/gdb/testsuite/gdb.opt/solib-intra-step-lib.c
index 928491b..688fa09 100644
--- a/gdb/testsuite/gdb.opt/solib-intra-step-lib.c
+++ b/gdb/testsuite/gdb.opt/solib-intra-step-lib.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/solib-intra-step-main.c b/gdb/testsuite/gdb.opt/solib-intra-step-main.c
index d90f820..784c17d 100644
--- a/gdb/testsuite/gdb.opt/solib-intra-step-main.c
+++ b/gdb/testsuite/gdb.opt/solib-intra-step-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/solib-intra-step.exp b/gdb/testsuite/gdb.opt/solib-intra-step.exp
index 67f894c..4b7ab3a 100644
--- a/gdb/testsuite/gdb.opt/solib-intra-step.exp
+++ b/gdb/testsuite/gdb.opt/solib-intra-step.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/static-optimized-out.c b/gdb/testsuite/gdb.opt/static-optimized-out.c
index 2a50228..daeaf67 100644
--- a/gdb/testsuite/gdb.opt/static-optimized-out.c
+++ b/gdb/testsuite/gdb.opt/static-optimized-out.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.opt/static-optimized-out.exp b/gdb/testsuite/gdb.opt/static-optimized-out.exp
index bbf27c0..f9925e8 100644
--- a/gdb/testsuite/gdb.opt/static-optimized-out.exp
+++ b/gdb/testsuite/gdb.opt/static-optimized-out.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.pascal/case-insensitive-symbols.exp b/gdb/testsuite/gdb.pascal/case-insensitive-symbols.exp
index b80f597..9a50d64 100644
--- a/gdb/testsuite/gdb.pascal/case-insensitive-symbols.exp
+++ b/gdb/testsuite/gdb.pascal/case-insensitive-symbols.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.pascal/case-insensitive-symbols.pas b/gdb/testsuite/gdb.pascal/case-insensitive-symbols.pas
index df3f068..cb6755d 100644
--- a/gdb/testsuite/gdb.pascal/case-insensitive-symbols.pas
+++ b/gdb/testsuite/gdb.pascal/case-insensitive-symbols.pas
@@ -1,5 +1,5 @@
{
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.pascal/floats.exp b/gdb/testsuite/gdb.pascal/floats.exp
index d96fb9b..a0c37ad 100644
--- a/gdb/testsuite/gdb.pascal/floats.exp
+++ b/gdb/testsuite/gdb.pascal/floats.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.pascal/floats.pas b/gdb/testsuite/gdb.pascal/floats.pas
index 7bfe9e9..d8d96f1 100644
--- a/gdb/testsuite/gdb.pascal/floats.pas
+++ b/gdb/testsuite/gdb.pascal/floats.pas
@@ -1,5 +1,5 @@
{
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.pascal/gdb11492.exp b/gdb/testsuite/gdb.pascal/gdb11492.exp
index fdc62f5..e39f522 100644
--- a/gdb/testsuite/gdb.pascal/gdb11492.exp
+++ b/gdb/testsuite/gdb.pascal/gdb11492.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.pascal/gdb11492.pas b/gdb/testsuite/gdb.pascal/gdb11492.pas
index 47206cd..ffaa52e 100644
--- a/gdb/testsuite/gdb.pascal/gdb11492.pas
+++ b/gdb/testsuite/gdb.pascal/gdb11492.pas
@@ -1,5 +1,5 @@
{
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.pascal/hello.exp b/gdb/testsuite/gdb.pascal/hello.exp
index 72eb8d6..904f2a9 100644
--- a/gdb/testsuite/gdb.pascal/hello.exp
+++ b/gdb/testsuite/gdb.pascal/hello.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.pascal/integers.exp b/gdb/testsuite/gdb.pascal/integers.exp
index 974de6f..c9974a1 100644
--- a/gdb/testsuite/gdb.pascal/integers.exp
+++ b/gdb/testsuite/gdb.pascal/integers.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -59,7 +59,7 @@ gdb_test "next" "l := k;" "next to 'l := k' line"
gdb_test "print j" " = 2"
# k should be equal to 3
gdb_test "print k" " = 3"
-# But l shoud still be zero
+# But l should still be zero
if { $pascal_compiler_is_gpc } {
setup_xfail *-*-*
}
diff --git a/gdb/testsuite/gdb.pascal/integers.pas b/gdb/testsuite/gdb.pascal/integers.pas
index 33ce3b7..2f0f8e6 100644
--- a/gdb/testsuite/gdb.pascal/integers.pas
+++ b/gdb/testsuite/gdb.pascal/integers.pas
@@ -1,5 +1,5 @@
{
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.pascal/print.exp b/gdb/testsuite/gdb.pascal/print.exp
index 41671b9..98b0879 100644
--- a/gdb/testsuite/gdb.pascal/print.exp
+++ b/gdb/testsuite/gdb.pascal/print.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.pascal/str-chars.exp b/gdb/testsuite/gdb.pascal/str-chars.exp
index 1e41b31..6cda9b6 100644
--- a/gdb/testsuite/gdb.pascal/str-chars.exp
+++ b/gdb/testsuite/gdb.pascal/str-chars.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.pascal/str-chars.pas b/gdb/testsuite/gdb.pascal/str-chars.pas
index 33f90bf..3d857cf 100644
--- a/gdb/testsuite/gdb.pascal/str-chars.pas
+++ b/gdb/testsuite/gdb.pascal/str-chars.pas
@@ -1,5 +1,5 @@
{
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.pascal/stub-method.exp b/gdb/testsuite/gdb.pascal/stub-method.exp
index 8b77d1e..4712eda 100644
--- a/gdb/testsuite/gdb.pascal/stub-method.exp
+++ b/gdb/testsuite/gdb.pascal/stub-method.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.pascal/stub-method.pas b/gdb/testsuite/gdb.pascal/stub-method.pas
index e5bd2a2..c1f168b 100644
--- a/gdb/testsuite/gdb.pascal/stub-method.pas
+++ b/gdb/testsuite/gdb.pascal/stub-method.pas
@@ -1,5 +1,5 @@
{
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.pascal/types.exp b/gdb/testsuite/gdb.pascal/types.exp
index 262045e..c234c28 100644
--- a/gdb/testsuite/gdb.pascal/types.exp
+++ b/gdb/testsuite/gdb.pascal/types.exp
@@ -1,4 +1,4 @@
-# Copyright 1994-2024 Free Software Foundation, Inc.
+# Copyright 1994-2025 Free Software Foundation, Inc.
# Copyright 2007 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
diff --git a/gdb/testsuite/gdb.perf/backtrace.c b/gdb/testsuite/gdb.perf/backtrace.c
index f2416af..8ed87f0 100644
--- a/gdb/testsuite/gdb.perf/backtrace.c
+++ b/gdb/testsuite/gdb.perf/backtrace.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/backtrace.exp b/gdb/testsuite/gdb.perf/backtrace.exp
index a6b9b32..9ec099f 100644
--- a/gdb/testsuite/gdb.perf/backtrace.exp
+++ b/gdb/testsuite/gdb.perf/backtrace.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/backtrace.py b/gdb/testsuite/gdb.perf/backtrace.py
index cb4c0ca..12f297a 100644
--- a/gdb/testsuite/gdb.perf/backtrace.py
+++ b/gdb/testsuite/gdb.perf/backtrace.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/disassemble.exp b/gdb/testsuite/gdb.perf/disassemble.exp
index 740ffe3..09978db 100644
--- a/gdb/testsuite/gdb.perf/disassemble.exp
+++ b/gdb/testsuite/gdb.perf/disassemble.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/disassemble.py b/gdb/testsuite/gdb.perf/disassemble.py
index 7baa44f..49050c1 100644
--- a/gdb/testsuite/gdb.perf/disassemble.py
+++ b/gdb/testsuite/gdb.perf/disassemble.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gm-hello.cc b/gdb/testsuite/gdb.perf/gm-hello.cc
index 954454b..cce3215 100644
--- a/gdb/testsuite/gdb.perf/gm-hello.cc
+++ b/gdb/testsuite/gdb.perf/gm-hello.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gm-pervasive-typedef.cc b/gdb/testsuite/gdb.perf/gm-pervasive-typedef.cc
index eb3c0f2..f2c579d 100644
--- a/gdb/testsuite/gdb.perf/gm-pervasive-typedef.cc
+++ b/gdb/testsuite/gdb.perf/gm-pervasive-typedef.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gm-pervasive-typedef.h b/gdb/testsuite/gdb.perf/gm-pervasive-typedef.h
index dd31601..663b919 100644
--- a/gdb/testsuite/gdb.perf/gm-pervasive-typedef.h
+++ b/gdb/testsuite/gdb.perf/gm-pervasive-typedef.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gm-std.cc b/gdb/testsuite/gdb.perf/gm-std.cc
index 0d0d106..e84dcba 100644
--- a/gdb/testsuite/gdb.perf/gm-std.cc
+++ b/gdb/testsuite/gdb.perf/gm-std.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gm-std.h b/gdb/testsuite/gdb.perf/gm-std.h
index f286688..f53d5b6 100644
--- a/gdb/testsuite/gdb.perf/gm-std.h
+++ b/gdb/testsuite/gdb.perf/gm-std.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gm-use-cerr.cc b/gdb/testsuite/gdb.perf/gm-use-cerr.cc
index c86efa0..e651864 100644
--- a/gdb/testsuite/gdb.perf/gm-use-cerr.cc
+++ b/gdb/testsuite/gdb.perf/gm-use-cerr.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gm-utils.h b/gdb/testsuite/gdb.perf/gm-utils.h
index fe0bb35..50342a5 100644
--- a/gdb/testsuite/gdb.perf/gm-utils.h
+++ b/gdb/testsuite/gdb.perf/gm-utils.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster-null-lookup.py b/gdb/testsuite/gdb.perf/gmonster-null-lookup.py
index 0d5ba76..a4dafaa 100644
--- a/gdb/testsuite/gdb.perf/gmonster-null-lookup.py
+++ b/gdb/testsuite/gdb.perf/gmonster-null-lookup.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster-pervasive-typedef.py b/gdb/testsuite/gdb.perf/gmonster-pervasive-typedef.py
index 3e239f5..dc1fef5 100644
--- a/gdb/testsuite/gdb.perf/gmonster-pervasive-typedef.py
+++ b/gdb/testsuite/gdb.perf/gmonster-pervasive-typedef.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster-print-cerr.py b/gdb/testsuite/gdb.perf/gmonster-print-cerr.py
index 4f57b86..be4109c 100644
--- a/gdb/testsuite/gdb.perf/gmonster-print-cerr.py
+++ b/gdb/testsuite/gdb.perf/gmonster-print-cerr.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster-ptype-string.py b/gdb/testsuite/gdb.perf/gmonster-ptype-string.py
index 0c000ef..d4077b5 100644
--- a/gdb/testsuite/gdb.perf/gmonster-ptype-string.py
+++ b/gdb/testsuite/gdb.perf/gmonster-ptype-string.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster-runto-main.py b/gdb/testsuite/gdb.perf/gmonster-runto-main.py
index a183d68..0c1349b 100644
--- a/gdb/testsuite/gdb.perf/gmonster-runto-main.py
+++ b/gdb/testsuite/gdb.perf/gmonster-runto-main.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster-select-file.py b/gdb/testsuite/gdb.perf/gmonster-select-file.py
index 4708458..a03c2ec 100644
--- a/gdb/testsuite/gdb.perf/gmonster-select-file.py
+++ b/gdb/testsuite/gdb.perf/gmonster-select-file.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster1-null-lookup.exp b/gdb/testsuite/gdb.perf/gmonster1-null-lookup.exp
index 7d97dea..4d4029c 100644
--- a/gdb/testsuite/gdb.perf/gmonster1-null-lookup.exp
+++ b/gdb/testsuite/gdb.perf/gmonster1-null-lookup.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster1-pervasive-typedef.exp b/gdb/testsuite/gdb.perf/gmonster1-pervasive-typedef.exp
index 06e2989..ed38425 100644
--- a/gdb/testsuite/gdb.perf/gmonster1-pervasive-typedef.exp
+++ b/gdb/testsuite/gdb.perf/gmonster1-pervasive-typedef.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster1-print-cerr.exp b/gdb/testsuite/gdb.perf/gmonster1-print-cerr.exp
index dfda8a3..34c48b2 100644
--- a/gdb/testsuite/gdb.perf/gmonster1-print-cerr.exp
+++ b/gdb/testsuite/gdb.perf/gmonster1-print-cerr.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster1-ptype-string.exp b/gdb/testsuite/gdb.perf/gmonster1-ptype-string.exp
index 1a92a5e..44ec4ed 100644
--- a/gdb/testsuite/gdb.perf/gmonster1-ptype-string.exp
+++ b/gdb/testsuite/gdb.perf/gmonster1-ptype-string.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster1-runto-main.exp b/gdb/testsuite/gdb.perf/gmonster1-runto-main.exp
index 746e19d..e4fa51e 100644
--- a/gdb/testsuite/gdb.perf/gmonster1-runto-main.exp
+++ b/gdb/testsuite/gdb.perf/gmonster1-runto-main.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster1-select-file.exp b/gdb/testsuite/gdb.perf/gmonster1-select-file.exp
index 016ed52..f963cae 100644
--- a/gdb/testsuite/gdb.perf/gmonster1-select-file.exp
+++ b/gdb/testsuite/gdb.perf/gmonster1-select-file.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster1.cc b/gdb/testsuite/gdb.perf/gmonster1.cc
index d2b56f9..a714591 100644
--- a/gdb/testsuite/gdb.perf/gmonster1.cc
+++ b/gdb/testsuite/gdb.perf/gmonster1.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster1.exp b/gdb/testsuite/gdb.perf/gmonster1.exp
index 3af97d1..f752062 100644
--- a/gdb/testsuite/gdb.perf/gmonster1.exp
+++ b/gdb/testsuite/gdb.perf/gmonster1.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster2-null-lookup.exp b/gdb/testsuite/gdb.perf/gmonster2-null-lookup.exp
index 6ab450a..4e587cb 100644
--- a/gdb/testsuite/gdb.perf/gmonster2-null-lookup.exp
+++ b/gdb/testsuite/gdb.perf/gmonster2-null-lookup.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster2-pervasive-typedef.exp b/gdb/testsuite/gdb.perf/gmonster2-pervasive-typedef.exp
index 12293c4..12b50de 100644
--- a/gdb/testsuite/gdb.perf/gmonster2-pervasive-typedef.exp
+++ b/gdb/testsuite/gdb.perf/gmonster2-pervasive-typedef.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster2-print-cerr.exp b/gdb/testsuite/gdb.perf/gmonster2-print-cerr.exp
index cc462e7..48a43fa 100644
--- a/gdb/testsuite/gdb.perf/gmonster2-print-cerr.exp
+++ b/gdb/testsuite/gdb.perf/gmonster2-print-cerr.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster2-ptype-string.exp b/gdb/testsuite/gdb.perf/gmonster2-ptype-string.exp
index 97caef4..0d828e0 100644
--- a/gdb/testsuite/gdb.perf/gmonster2-ptype-string.exp
+++ b/gdb/testsuite/gdb.perf/gmonster2-ptype-string.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster2-runto-main.exp b/gdb/testsuite/gdb.perf/gmonster2-runto-main.exp
index 19d51d3..aacdac5 100644
--- a/gdb/testsuite/gdb.perf/gmonster2-runto-main.exp
+++ b/gdb/testsuite/gdb.perf/gmonster2-runto-main.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster2-select-file.exp b/gdb/testsuite/gdb.perf/gmonster2-select-file.exp
index 9778fa4..896aeba 100644
--- a/gdb/testsuite/gdb.perf/gmonster2-select-file.exp
+++ b/gdb/testsuite/gdb.perf/gmonster2-select-file.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster2.cc b/gdb/testsuite/gdb.perf/gmonster2.cc
index d2b56f9..a714591 100644
--- a/gdb/testsuite/gdb.perf/gmonster2.cc
+++ b/gdb/testsuite/gdb.perf/gmonster2.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/gmonster2.exp b/gdb/testsuite/gdb.perf/gmonster2.exp
index 367e413..ba4e46b 100644
--- a/gdb/testsuite/gdb.perf/gmonster2.exp
+++ b/gdb/testsuite/gdb.perf/gmonster2.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/lib/perftest/__init__.py b/gdb/testsuite/gdb.perf/lib/perftest/__init__.py
index d621e96..a02b558 100644
--- a/gdb/testsuite/gdb.perf/lib/perftest/__init__.py
+++ b/gdb/testsuite/gdb.perf/lib/perftest/__init__.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/lib/perftest/measure.py b/gdb/testsuite/gdb.perf/lib/perftest/measure.py
index 00a1a9a..0e06cad 100644
--- a/gdb/testsuite/gdb.perf/lib/perftest/measure.py
+++ b/gdb/testsuite/gdb.perf/lib/perftest/measure.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/lib/perftest/perftest.py b/gdb/testsuite/gdb.perf/lib/perftest/perftest.py
index 40ed9cc..6bcd81d 100644
--- a/gdb/testsuite/gdb.perf/lib/perftest/perftest.py
+++ b/gdb/testsuite/gdb.perf/lib/perftest/perftest.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/lib/perftest/reporter.py b/gdb/testsuite/gdb.perf/lib/perftest/reporter.py
index e04b2f6..3af6d17 100644
--- a/gdb/testsuite/gdb.perf/lib/perftest/reporter.py
+++ b/gdb/testsuite/gdb.perf/lib/perftest/reporter.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/lib/perftest/testresult.py b/gdb/testsuite/gdb.perf/lib/perftest/testresult.py
index 348cf8e..16f39fc 100644
--- a/gdb/testsuite/gdb.perf/lib/perftest/testresult.py
+++ b/gdb/testsuite/gdb.perf/lib/perftest/testresult.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/lib/perftest/utils.py b/gdb/testsuite/gdb.perf/lib/perftest/utils.py
index 9cff5f1..7544e67 100644
--- a/gdb/testsuite/gdb.perf/lib/perftest/utils.py
+++ b/gdb/testsuite/gdb.perf/lib/perftest/utils.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/single-step.c b/gdb/testsuite/gdb.perf/single-step.c
index 937d920..886477d 100644
--- a/gdb/testsuite/gdb.perf/single-step.c
+++ b/gdb/testsuite/gdb.perf/single-step.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/single-step.exp b/gdb/testsuite/gdb.perf/single-step.exp
index fae3ba4..920cf9d 100644
--- a/gdb/testsuite/gdb.perf/single-step.exp
+++ b/gdb/testsuite/gdb.perf/single-step.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/single-step.py b/gdb/testsuite/gdb.perf/single-step.py
index 70f4e76..c6b1443 100644
--- a/gdb/testsuite/gdb.perf/single-step.py
+++ b/gdb/testsuite/gdb.perf/single-step.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/skip-command.cc b/gdb/testsuite/gdb.perf/skip-command.cc
index e0d4bff..5df1e8e 100644
--- a/gdb/testsuite/gdb.perf/skip-command.cc
+++ b/gdb/testsuite/gdb.perf/skip-command.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/skip-command.exp b/gdb/testsuite/gdb.perf/skip-command.exp
index 3eac9c9..b82d318 100644
--- a/gdb/testsuite/gdb.perf/skip-command.exp
+++ b/gdb/testsuite/gdb.perf/skip-command.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/skip-command.py b/gdb/testsuite/gdb.perf/skip-command.py
index 33df7f6..f0baf60 100644
--- a/gdb/testsuite/gdb.perf/skip-command.py
+++ b/gdb/testsuite/gdb.perf/skip-command.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/skip-prologue.c b/gdb/testsuite/gdb.perf/skip-prologue.c
index e45371e..d5b3730 100644
--- a/gdb/testsuite/gdb.perf/skip-prologue.c
+++ b/gdb/testsuite/gdb.perf/skip-prologue.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/skip-prologue.exp b/gdb/testsuite/gdb.perf/skip-prologue.exp
index 516e3d2..50df93a 100644
--- a/gdb/testsuite/gdb.perf/skip-prologue.exp
+++ b/gdb/testsuite/gdb.perf/skip-prologue.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/skip-prologue.py b/gdb/testsuite/gdb.perf/skip-prologue.py
index 8572a25..a41b7a7 100644
--- a/gdb/testsuite/gdb.perf/skip-prologue.py
+++ b/gdb/testsuite/gdb.perf/skip-prologue.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/solib.c b/gdb/testsuite/gdb.perf/solib.c
index 3ee6279..f7c6f4e 100644
--- a/gdb/testsuite/gdb.perf/solib.c
+++ b/gdb/testsuite/gdb.perf/solib.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/solib.exp b/gdb/testsuite/gdb.perf/solib.exp
index 6ddb567..45f9330 100644
--- a/gdb/testsuite/gdb.perf/solib.exp
+++ b/gdb/testsuite/gdb.perf/solib.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/solib.py b/gdb/testsuite/gdb.perf/solib.py
index 4700096..501eb69 100644
--- a/gdb/testsuite/gdb.perf/solib.py
+++ b/gdb/testsuite/gdb.perf/solib.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/template-breakpoints.cc b/gdb/testsuite/gdb.perf/template-breakpoints.cc
index a65e145..4ae389c 100644
--- a/gdb/testsuite/gdb.perf/template-breakpoints.cc
+++ b/gdb/testsuite/gdb.perf/template-breakpoints.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/template-breakpoints.exp b/gdb/testsuite/gdb.perf/template-breakpoints.exp
index 125dd69..7d66e0f 100644
--- a/gdb/testsuite/gdb.perf/template-breakpoints.exp
+++ b/gdb/testsuite/gdb.perf/template-breakpoints.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.perf/template-breakpoints.py b/gdb/testsuite/gdb.perf/template-breakpoints.py
index 1975856..494d571 100644
--- a/gdb/testsuite/gdb.perf/template-breakpoints.py
+++ b/gdb/testsuite/gdb.perf/template-breakpoints.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/amd64-py-framefilter-invalidarg.S b/gdb/testsuite/gdb.python/amd64-py-framefilter-invalidarg.S
index e24b85d..0280591 100644
--- a/gdb/testsuite/gdb.python/amd64-py-framefilter-invalidarg.S
+++ b/gdb/testsuite/gdb.python/amd64-py-framefilter-invalidarg.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/compare-enum-type-a.c b/gdb/testsuite/gdb.python/compare-enum-type-a.c
index 237552a..cf02a15 100644
--- a/gdb/testsuite/gdb.python/compare-enum-type-a.c
+++ b/gdb/testsuite/gdb.python/compare-enum-type-a.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/compare-enum-type-b.c b/gdb/testsuite/gdb.python/compare-enum-type-b.c
index 07c7fb8..4576dbb 100644
--- a/gdb/testsuite/gdb.python/compare-enum-type-b.c
+++ b/gdb/testsuite/gdb.python/compare-enum-type-b.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/compare-enum-type.exp b/gdb/testsuite/gdb.python/compare-enum-type.exp
index 7d6ac9d..5dd6a3d 100644
--- a/gdb/testsuite/gdb.python/compare-enum-type.exp
+++ b/gdb/testsuite/gdb.python/compare-enum-type.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/compare-enum-type.h b/gdb/testsuite/gdb.python/compare-enum-type.h
index 674ccb8..506e0c5 100644
--- a/gdb/testsuite/gdb.python/compare-enum-type.h
+++ b/gdb/testsuite/gdb.python/compare-enum-type.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/flexible-array-member.c b/gdb/testsuite/gdb.python/flexible-array-member.c
index d53bcd0..00e1313 100644
--- a/gdb/testsuite/gdb.python/flexible-array-member.c
+++ b/gdb/testsuite/gdb.python/flexible-array-member.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/flexible-array-member.exp b/gdb/testsuite/gdb.python/flexible-array-member.exp
index f684e68..3468ec8 100644
--- a/gdb/testsuite/gdb.python/flexible-array-member.exp
+++ b/gdb/testsuite/gdb.python/flexible-array-member.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/gdb_leak_detector.py b/gdb/testsuite/gdb.python/gdb_leak_detector.py
new file mode 100644
index 0000000..8f74b67
--- /dev/null
+++ b/gdb/testsuite/gdb.python/gdb_leak_detector.py
@@ -0,0 +1,121 @@
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Defines a base class, which can be sub-classed, in order to run
+# memory leak tests on some aspects of GDB's Python API. See the
+# comments on the gdb_leak_detector class for more details.
+
+import os
+import tracemalloc
+
+import gdb
+
+
+# This class must be sub-classed to create a memory leak test. The
+# sub-classes __init__ method should call the parent classes __init__
+# method, and the sub-class should override allocate() and
+# deallocate(). See the comments on the various methods below for
+# more details of required arguments and expected usage.
+class gdb_leak_detector:
+
+ # Class initialisation. FILENAME is the file in which the
+ # sub-class is defined, usually passed as just '__file__'. This
+ # is used when looking for memory allocations; only allocations in
+ # FILENAME are considered.
+ def __init__(self, filename):
+ self.filters = [tracemalloc.Filter(True, "*" + os.path.basename(filename))]
+
+ # Internal helper function to actually run the test. Calls the
+ # allocate() method to allocate an object from GDB's Python API.
+ # When CLEAR is True the object will then be deallocated by
+ # calling deallocate(), otherwise, deallocate() is not called.
+ #
+ # Finally, this function checks for any memory allocatios
+ # originating from 'self.filename' that have not been freed, and
+ # returns the total (in bytes) of the memory that has been
+ # allocated, but not freed.
+ def _do_test(self, clear):
+ # Start tracing, and take a snapshot of the current allocations.
+ tracemalloc.start()
+ snapshot1 = tracemalloc.take_snapshot()
+
+ # Generate the GDB Python API object by calling the allocate
+ # method.
+ self.allocate()
+
+ # Possibly clear the reference to the allocated object.
+ if clear:
+ self.deallocate()
+
+ # Now grab a second snapshot of memory allocations, and stop
+ # tracing memory allocations.
+ snapshot2 = tracemalloc.take_snapshot()
+ tracemalloc.stop()
+
+ # Filter the snapshots; we only care about allocations originating
+ # from this file.
+ snapshot1 = snapshot1.filter_traces(self.filters)
+ snapshot2 = snapshot2.filter_traces(self.filters)
+
+ # Compare the snapshots, this leaves only things that were
+ # allocated, but not deallocated since the first snapshot.
+ stats = snapshot2.compare_to(snapshot1, "traceback")
+
+ # Total up all the allocated things.
+ total = 0
+ for stat in stats:
+ total += stat.size_diff
+ return total
+
+ # Run the memory leak test. Prints 'PASS' if successful,
+ # otherwise, raises an exception (of type GdbError).
+ def run(self):
+ # The first time we run this some global state will be allocated which
+ # shows up as memory that is allocated, but not released. So, run the
+ # test once and discard the result.
+ self._do_test(True)
+
+ # Now run the test twice, the first time we clear our global reference
+ # to the allocated object, which should allow Python to deallocate the
+ # object. The second time we hold onto the global reference, preventing
+ # Python from performing the deallocation.
+ bytes_with_clear = self._do_test(True)
+ bytes_without_clear = self._do_test(False)
+
+ # If there are any allocations left over when we cleared the reference
+ # (and expected deallocation) then this indicates a leak.
+ if bytes_with_clear > 0:
+ raise gdb.GdbError("memory leak when object reference was released")
+
+ # If there are no allocations showing when we hold onto a reference,
+ # then this likely indicates that the testing infrastructure is broken,
+ # and we're no longer spotting the allocations at all.
+ if bytes_without_clear == 0:
+ raise gdb.GdbError("object is unexpectedly not showing as allocated")
+
+ # Print a PASS message that the TCL script can see.
+ print("PASS")
+
+ # Sub-classes must override this method. Allocate an object (or
+ # multiple objects) from GDB's Python API. Store references to
+ # these objects within SELF.
+ def allocate(self):
+ raise NotImplementedError("allocate() not implemented")
+
+ # Sub-classes must override this method. Deallocate the object(s)
+ # allocated by the allocate() method. All that is required is for
+ # the references created in allocate() to be set to None.
+ def deallocate(self):
+ raise NotImplementedError("allocate() not implemented")
diff --git a/gdb/testsuite/gdb.python/lib-types.cc b/gdb/testsuite/gdb.python/lib-types.cc
index c221693..3901a0b 100644
--- a/gdb/testsuite/gdb.python/lib-types.cc
+++ b/gdb/testsuite/gdb.python/lib-types.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/lib-types.exp b/gdb/testsuite/gdb.python/lib-types.exp
index de24517..168f497 100644
--- a/gdb/testsuite/gdb.python/lib-types.exp
+++ b/gdb/testsuite/gdb.python/lib-types.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/libpy-autoloaded-pretty-printers-in-newobjfile-event.so-gdb.py b/gdb/testsuite/gdb.python/libpy-autoloaded-pretty-printers-in-newobjfile-event.so-gdb.py
index 5b3a1b7..18407e2 100644
--- a/gdb/testsuite/gdb.python/libpy-autoloaded-pretty-printers-in-newobjfile-event.so-gdb.py
+++ b/gdb/testsuite/gdb.python/libpy-autoloaded-pretty-printers-in-newobjfile-event.so-gdb.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/lotsa-lines.exp b/gdb/testsuite/gdb.python/lotsa-lines.exp
index b3e980a..537e6f8 100644
--- a/gdb/testsuite/gdb.python/lotsa-lines.exp
+++ b/gdb/testsuite/gdb.python/lotsa-lines.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/pretty-print-call-by-hand.c b/gdb/testsuite/gdb.python/pretty-print-call-by-hand.c
index 94121f5..88700a1 100644
--- a/gdb/testsuite/gdb.python/pretty-print-call-by-hand.c
+++ b/gdb/testsuite/gdb.python/pretty-print-call-by-hand.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/pretty-print-call-by-hand.exp b/gdb/testsuite/gdb.python/pretty-print-call-by-hand.exp
index e633e55..dd6cb59 100644
--- a/gdb/testsuite/gdb.python/pretty-print-call-by-hand.exp
+++ b/gdb/testsuite/gdb.python/pretty-print-call-by-hand.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/pretty-print-call-by-hand.py b/gdb/testsuite/gdb.python/pretty-print-call-by-hand.py
index f9289ef..3620354 100644
--- a/gdb/testsuite/gdb.python/pretty-print-call-by-hand.py
+++ b/gdb/testsuite/gdb.python/pretty-print-call-by-hand.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-arch-reg-groups.exp b/gdb/testsuite/gdb.python/py-arch-reg-groups.exp
index 3475bbc..855af27 100644
--- a/gdb/testsuite/gdb.python/py-arch-reg-groups.exp
+++ b/gdb/testsuite/gdb.python/py-arch-reg-groups.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-arch-reg-names.exp b/gdb/testsuite/gdb.python/py-arch-reg-names.exp
index 7c08168..7093674 100644
--- a/gdb/testsuite/gdb.python/py-arch-reg-names.exp
+++ b/gdb/testsuite/gdb.python/py-arch-reg-names.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-arch.c b/gdb/testsuite/gdb.python/py-arch.c
index ec6874b..a630de4 100644
--- a/gdb/testsuite/gdb.python/py-arch.c
+++ b/gdb/testsuite/gdb.python/py-arch.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-arch.exp b/gdb/testsuite/gdb.python/py-arch.exp
index c76fc778..79e5939 100644
--- a/gdb/testsuite/gdb.python/py-arch.exp
+++ b/gdb/testsuite/gdb.python/py-arch.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -108,6 +108,11 @@ gdb_test "python print(arch.void_type())" \
"void" \
"get void type"
+# Test type identity
+gdb_test "python print(arch.integer_type(32) is arch.integer_type(32))" \
+ "True" \
+ "arch.integer_type(32) always return the same Python object"
+
# Test for gdb.architecture_names(). First we're going to grab the
# complete list of architecture names using the 'complete' command.
set arch_names []
diff --git a/gdb/testsuite/gdb.python/py-as-string.c b/gdb/testsuite/gdb.python/py-as-string.c
index ec05206..1997300 100644
--- a/gdb/testsuite/gdb.python/py-as-string.c
+++ b/gdb/testsuite/gdb.python/py-as-string.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-as-string.exp b/gdb/testsuite/gdb.python/py-as-string.exp
index 1a38d4b..05d55df 100644
--- a/gdb/testsuite/gdb.python/py-as-string.exp
+++ b/gdb/testsuite/gdb.python/py-as-string.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-auto-load-chaining-f1.c b/gdb/testsuite/gdb.python/py-auto-load-chaining-f1.c
index 7fb1c5f..10baa8e 100644
--- a/gdb/testsuite/gdb.python/py-auto-load-chaining-f1.c
+++ b/gdb/testsuite/gdb.python/py-auto-load-chaining-f1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-auto-load-chaining-f1.o-gdb.py b/gdb/testsuite/gdb.python/py-auto-load-chaining-f1.o-gdb.py
index 0740de3..9641a86 100644
--- a/gdb/testsuite/gdb.python/py-auto-load-chaining-f1.o-gdb.py
+++ b/gdb/testsuite/gdb.python/py-auto-load-chaining-f1.o-gdb.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-auto-load-chaining-f2.c b/gdb/testsuite/gdb.python/py-auto-load-chaining-f2.c
index f2f3506..ef6c4a4 100644
--- a/gdb/testsuite/gdb.python/py-auto-load-chaining-f2.c
+++ b/gdb/testsuite/gdb.python/py-auto-load-chaining-f2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-auto-load-chaining-f2.o-gdb.py b/gdb/testsuite/gdb.python/py-auto-load-chaining-f2.o-gdb.py
index 2be5cb1..f1abc2c 100644
--- a/gdb/testsuite/gdb.python/py-auto-load-chaining-f2.o-gdb.py
+++ b/gdb/testsuite/gdb.python/py-auto-load-chaining-f2.o-gdb.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-auto-load-chaining.c b/gdb/testsuite/gdb.python/py-auto-load-chaining.c
index 50236c2..74ec04f 100644
--- a/gdb/testsuite/gdb.python/py-auto-load-chaining.c
+++ b/gdb/testsuite/gdb.python/py-auto-load-chaining.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-auto-load-chaining.exp b/gdb/testsuite/gdb.python/py-auto-load-chaining.exp
index b5aabd3..451dca6 100644
--- a/gdb/testsuite/gdb.python/py-auto-load-chaining.exp
+++ b/gdb/testsuite/gdb.python/py-auto-load-chaining.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event-lib.cc b/gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event-lib.cc
index 95312ca..c8eb2e6 100644
--- a/gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event-lib.cc
+++ b/gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event-lib.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event-lib.h b/gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event-lib.h
index 4252d48..9e2bf4f 100644
--- a/gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event-lib.h
+++ b/gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event-lib.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event-main.cc b/gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event-main.cc
index 717daf2..0beb0af 100644
--- a/gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event-main.cc
+++ b/gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event-main.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event.exp b/gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event.exp
index 73f66f4..3bd0494 100644
--- a/gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event.exp
+++ b/gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event.py b/gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event.py
index d63c087..7bbb860 100644
--- a/gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event.py
+++ b/gdb/testsuite/gdb.python/py-autoloaded-pretty-printers-in-newobjfile-event.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-bad-printers.c b/gdb/testsuite/gdb.python/py-bad-printers.c
index 17fe779..d10fde6 100644
--- a/gdb/testsuite/gdb.python/py-bad-printers.c
+++ b/gdb/testsuite/gdb.python/py-bad-printers.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-bad-printers.exp b/gdb/testsuite/gdb.python/py-bad-printers.exp
index cc51a6f..ab1a9ba 100644
--- a/gdb/testsuite/gdb.python/py-bad-printers.exp
+++ b/gdb/testsuite/gdb.python/py-bad-printers.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-bad-printers.py b/gdb/testsuite/gdb.python/py-bad-printers.py
index ac9c35e..c93923c 100644
--- a/gdb/testsuite/gdb.python/py-bad-printers.py
+++ b/gdb/testsuite/gdb.python/py-bad-printers.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-block.c b/gdb/testsuite/gdb.python/py-block.c
index d180d9b..3417e2d 100644
--- a/gdb/testsuite/gdb.python/py-block.c
+++ b/gdb/testsuite/gdb.python/py-block.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-bp-locations.c b/gdb/testsuite/gdb.python/py-bp-locations.c
index 98b9380..a261f26 100644
--- a/gdb/testsuite/gdb.python/py-bp-locations.c
+++ b/gdb/testsuite/gdb.python/py-bp-locations.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-bp-locations.exp b/gdb/testsuite/gdb.python/py-bp-locations.exp
index 4892947..61e4e38 100644
--- a/gdb/testsuite/gdb.python/py-bp-locations.exp
+++ b/gdb/testsuite/gdb.python/py-bp-locations.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-breakpoint-create-fail.c b/gdb/testsuite/gdb.python/py-breakpoint-create-fail.c
index bbb4ec2..a1a964c 100644
--- a/gdb/testsuite/gdb.python/py-breakpoint-create-fail.c
+++ b/gdb/testsuite/gdb.python/py-breakpoint-create-fail.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-breakpoint-create-fail.exp b/gdb/testsuite/gdb.python/py-breakpoint-create-fail.exp
index 7840dba..391744e 100644
--- a/gdb/testsuite/gdb.python/py-breakpoint-create-fail.exp
+++ b/gdb/testsuite/gdb.python/py-breakpoint-create-fail.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-breakpoint-create-fail.py b/gdb/testsuite/gdb.python/py-breakpoint-create-fail.py
index f85de0f..470eaea 100644
--- a/gdb/testsuite/gdb.python/py-breakpoint-create-fail.py
+++ b/gdb/testsuite/gdb.python/py-breakpoint-create-fail.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-breakpoint.c b/gdb/testsuite/gdb.python/py-breakpoint.c
index 9fe21ab..4e61d0e 100644
--- a/gdb/testsuite/gdb.python/py-breakpoint.c
+++ b/gdb/testsuite/gdb.python/py-breakpoint.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-breakpoint.exp b/gdb/testsuite/gdb.python/py-breakpoint.exp
index 6f9245c..9a901a3 100644
--- a/gdb/testsuite/gdb.python/py-breakpoint.exp
+++ b/gdb/testsuite/gdb.python/py-breakpoint.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -707,7 +707,7 @@ proc_with_prefix test_bkpt_explicit_loc {} {
delete_breakpoints
gdb_test "python bp1 = gdb.Breakpoint (line=bp1)" \
- "RuntimeError.*: Line keyword should be an integer or a string.*" \
+ "RuntimeError.*: Line keyword should be an integer or a string\\.\r\n.*" \
"set explicit breakpoint by invalid line type"
delete_breakpoints
diff --git a/gdb/testsuite/gdb.python/py-caller-is.c b/gdb/testsuite/gdb.python/py-caller-is.c
index f7c36c1..b6fd8d5 100644
--- a/gdb/testsuite/gdb.python/py-caller-is.c
+++ b/gdb/testsuite/gdb.python/py-caller-is.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-caller-is.exp b/gdb/testsuite/gdb.python/py-caller-is.exp
index 301dd1b..8e54c3b 100644
--- a/gdb/testsuite/gdb.python/py-caller-is.exp
+++ b/gdb/testsuite/gdb.python/py-caller-is.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-charset.exp b/gdb/testsuite/gdb.python/py-charset.exp
index c7c4d02..0e98e07 100644
--- a/gdb/testsuite/gdb.python/py-charset.exp
+++ b/gdb/testsuite/gdb.python/py-charset.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-cmd-exception.c b/gdb/testsuite/gdb.python/py-cmd-exception.c
index 6cb2c2c..aa5ec04 100644
--- a/gdb/testsuite/gdb.python/py-cmd-exception.c
+++ b/gdb/testsuite/gdb.python/py-cmd-exception.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-cmd-exception.exp b/gdb/testsuite/gdb.python/py-cmd-exception.exp
index 0bfa13e..0333d13 100644
--- a/gdb/testsuite/gdb.python/py-cmd-exception.exp
+++ b/gdb/testsuite/gdb.python/py-cmd-exception.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-cmd-exception.py b/gdb/testsuite/gdb.python/py-cmd-exception.py
index d37257d..5a72b81 100644
--- a/gdb/testsuite/gdb.python/py-cmd-exception.py
+++ b/gdb/testsuite/gdb.python/py-cmd-exception.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-cmd-prompt.c b/gdb/testsuite/gdb.python/py-cmd-prompt.c
index 304503c..5f785f0 100644
--- a/gdb/testsuite/gdb.python/py-cmd-prompt.c
+++ b/gdb/testsuite/gdb.python/py-cmd-prompt.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-cmd-prompt.exp b/gdb/testsuite/gdb.python/py-cmd-prompt.exp
index ccb695f..3f392d1 100644
--- a/gdb/testsuite/gdb.python/py-cmd-prompt.exp
+++ b/gdb/testsuite/gdb.python/py-cmd-prompt.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-cmd-prompt.py b/gdb/testsuite/gdb.python/py-cmd-prompt.py
index b80a0c9..1be9f3f 100644
--- a/gdb/testsuite/gdb.python/py-cmd-prompt.py
+++ b/gdb/testsuite/gdb.python/py-cmd-prompt.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-cmd.c b/gdb/testsuite/gdb.python/py-cmd.c
index c18c92a..6c4357c 100644
--- a/gdb/testsuite/gdb.python/py-cmd.c
+++ b/gdb/testsuite/gdb.python/py-cmd.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-cmd.exp b/gdb/testsuite/gdb.python/py-cmd.exp
index b083a80..5ac5712 100644
--- a/gdb/testsuite/gdb.python/py-cmd.exp
+++ b/gdb/testsuite/gdb.python/py-cmd.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -328,4 +328,89 @@ proc_with_prefix test_command_redefining_itself {} {
"call command redefining itself 2"
}
+# Try to create commands using unknown prefixes and check GDB gives an
+# error. There's also a test in here for an ambiguous prefix, which
+# gives the same error.
+proc_with_prefix test_unknown_prefix {} {
+ clean_restart
+
+ gdb_test_no_output "python gdb.Command('foo1', gdb.COMMAND_NONE, prefix=True)"
+ gdb_test_no_output "python gdb.Command('foo cmd', gdb.COMMAND_NONE)"
+
+ foreach prefix { "xxx" "foo xxx" "foo1 xxx" } {
+ gdb_test "python gdb.Command('$prefix cmd', gdb.COMMAND_NONE)" \
+ [multi_line \
+ "Python Exception <class 'RuntimeError'>: Could not find command prefix $prefix\\." \
+ "Error occurred in Python: Could not find command prefix $prefix\\."]
+ }
+
+ gdb_test_no_output "python gdb.Command('foo2', gdb.COMMAND_NONE, prefix=True)"
+
+ foreach prefix { "foo" "foo xxx" "foo1 xxx" "foo2 xxx" } {
+ gdb_test "python gdb.Command('$prefix cmd2', gdb.COMMAND_NONE)" \
+ [multi_line \
+ "Python Exception <class 'RuntimeError'>: Could not find command prefix $prefix\\." \
+ "Error occurred in Python: Could not find command prefix $prefix\\."]
+ }
+}
+
+# Check what happens if a command object is called without an 'invoke'
+# method.
+proc_with_prefix test_deleting_invoke_methods {} {
+ clean_restart
+
+ gdb_test_multiline "create 'foo' prefix command" \
+ "python" "" \
+ "class test_prefix(gdb.Command):" "" \
+ " def __init__ (self):" "" \
+ " super().__init__ (\"foo\", gdb.COMMAND_USER, prefix=True)" "" \
+ " def invoke (self, arg, from_tty):" "" \
+ " print(\"In 'foo' invoke: %s\" % arg)" "" \
+ "foo = test_prefix()" "" \
+ "end" ""
+
+ gdb_test_multiline "create 'foo bar' command" \
+ "python" "" \
+ "class test_cmd(gdb.Command):" "" \
+ " def __init__ (self):" "" \
+ " super().__init__ (\"foo bar\", gdb.COMMAND_USER)" "" \
+ " def invoke (self, arg, from_tty):" "" \
+ " print(\"In 'foo bar' invoke: %s\" % arg)" "" \
+ "foo_bar = test_cmd()" "" \
+ "end" ""
+
+ gdb_test "foo def" "In 'foo' invoke: def" \
+ "call 'foo' with an unknown sub-command"
+
+ gdb_test "foo bar def" "In 'foo bar' invoke: def" \
+ "call 'foo bar' with arguments"
+
+ gdb_test_no_output "python del(foo_bar.__class__.invoke)" \
+ "delete invoke from test_cmd class"
+
+ with_test_prefix "after deleting test_cmd.invoke" {
+ gdb_test "foo def" "In 'foo' invoke: def" \
+ "call 'foo' with an unknown sub-command"
+
+ gdb_test "foo bar def" \
+ "^Python command object missing 'invoke' method\\." \
+ "call 'foo bar' with arguments"
+ }
+
+ gdb_test_no_output "python del(foo.__class__.invoke)" \
+ "delete invoke from test_prefix class"
+
+ with_test_prefix "after deleting test_prefix.invoke" {
+ gdb_test "foo def" \
+ "^Python command object missing 'invoke' method\\." \
+ "call 'foo' with an unknown sub-command"
+
+ gdb_test "foo bar def" \
+ "^Python command object missing 'invoke' method\\." \
+ "call 'foo bar' with arguments"
+ }
+}
+
test_command_redefining_itself
+test_unknown_prefix
+test_deleting_invoke_methods
diff --git a/gdb/testsuite/gdb.python/py-color-leak.exp b/gdb/testsuite/gdb.python/py-color-leak.exp
new file mode 100644
index 0000000..6d7fa7c
--- /dev/null
+++ b/gdb/testsuite/gdb.python/py-color-leak.exp
@@ -0,0 +1,28 @@
+# Copyright (C) 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# This file is part of the GDB testsuite. It checks for memory leaks
+# associated with allocating gdb.Color objects.
+
+load_lib gdb-python.exp
+
+require allow_python_tests
+
+standard_testfile
+
+clean_restart
+
+gdb_py_run_memory_leak_test ${srcdir}/${subdir}/${testfile}.py \
+ "gdb.Color object deallocates correctly"
diff --git a/gdb/testsuite/gdb.python/py-color-leak.py b/gdb/testsuite/gdb.python/py-color-leak.py
new file mode 100644
index 0000000..28afd59
--- /dev/null
+++ b/gdb/testsuite/gdb.python/py-color-leak.py
@@ -0,0 +1,37 @@
+# Copyright (C) 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+import sys
+
+# Avoid generating
+# src/gdb/testsuite/gdb.python/__pycache__/gdb_leak_detector.cpython-<n>.pyc.
+sys.dont_write_bytecode = True
+
+import gdb_leak_detector
+
+
+class color_leak_detector(gdb_leak_detector.gdb_leak_detector):
+ def __init__(self):
+ super().__init__(__file__)
+ self.color = None
+
+ def allocate(self):
+ self.color = gdb.Color("red")
+
+ def deallocate(self):
+ self.color = None
+
+
+color_leak_detector().run()
diff --git a/gdb/testsuite/gdb.python/py-color.exp b/gdb/testsuite/gdb.python/py-color.exp
index eb62d7f..2601cf3 100644
--- a/gdb/testsuite/gdb.python/py-color.exp
+++ b/gdb/testsuite/gdb.python/py-color.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -13,17 +13,21 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# This file is part of the GDB testsuite.
-# It tests gdb.parameter and gdb.Parameter.
+# This file is part of the GDB testsuite. It tests gdb.Color.
load_lib gdb-python.exp
require allow_python_tests
-# Start with a fresh gdb.
-clean_restart
+# Start with a fresh GDB, but enable color support.
+with_ansi_styling_terminal {
+ clean_restart
+}
-gdb_test_no_output "python print_color_attrs = lambda c: print (c, c.colorspace, c.is_none, c.is_indexed, c.is_direct)" \
+gdb_test_no_output "python get_color_attrs = lambda c: \"%s %s %s %s %s\" % (str(c), c.colorspace, c.is_none, c.is_indexed, c.is_direct)" \
+ "get_color_attrs helper"
+
+gdb_test_no_output "python print_color_attrs = lambda c: print (get_color_attrs (c))" \
"print_color_attrs helper"
gdb_test_no_output "python c = gdb.Color ()" \
@@ -59,6 +63,15 @@ gdb_test "python print_color_attrs (c)" "green 1 False True False" \
gdb_test "python print (c.index)" "2" \
"print index of a basic color with ansi colorspace"
+# Create a color using keyword arguments, and check it matches the
+# non-keyword color.
+gdb_test_no_output "python c2 = gdb.Color (color_space = gdb.COLORSPACE_ANSI_8COLOR, value = 2)" \
+ "create color from basic index and ansi colorspace using keywords"
+gdb_test "python print(get_color_attrs (c) == get_color_attrs (c2))" "True" \
+ "check attributes match"
+gdb_test "python print(c.index == c2.index)" "True" \
+ "check index matches"
+
gdb_test_no_output "python c = gdb.Color (2, gdb.COLORSPACE_XTERM_256COLOR)" \
"create color from basic index and xterm256 colorspace"
gdb_test "python print_color_attrs (c)" "2 3 False True False" \
@@ -97,4 +110,54 @@ gdb_test [concat "python print (c_red.escape_sequence (True) + " \
"c_none.escape_sequence (True))"] \
"\033\\\[31m\033\\\[42mred on green\033\\\[49m red on default\033\\\[39m" \
"escape sequences"
-
+gdb_test [concat "python print (c_red.escape_sequence (is_foreground = True) + " \
+ "c_green.escape_sequence (is_foreground = False) + 'red on green' + " \
+ "c_none.escape_sequence (is_foreground = False) + ' red on default' + " \
+ "c_none.escape_sequence (is_foreground = True))"] \
+ "\033\\\[31m\033\\\[42mred on green\033\\\[49m red on default\033\\\[39m" \
+ "escape sequences using keyword arguments"
+
+# Ensure that turning styling off means no escape sequences.
+gdb_test_no_output "set style enabled off"
+gdb_test_no_output "python print (c_red.escape_sequence (True), end='')"
+gdb_test_no_output "python print (c_red.escape_sequence (False), end='')"
+gdb_test_no_output "set style enabled on"
+
+gdb_test_multiline "Try to sub-class gdb.Color" \
+ "python" "" \
+ "class my_color(gdb.Color):" "" \
+ " def __init__(self):" "" \
+ " super().__init__('red')" "" \
+ "end" \
+ [multi_line \
+ "Python Exception <class 'TypeError'>: type 'gdb\\.Color' is not an acceptable base type" \
+ "Error occurred in Python: type 'gdb\\.Color' is not an acceptable base type"]
+
+gdb_test_multiline "Setup a color parameter and non gdb.Color object" \
+ "python" "" \
+ "class my_param(gdb.Parameter):" "" \
+ " def __init__(self):" "" \
+ " super().__init__('color-param', gdb.COMMAND_NONE, gdb.PARAM_COLOR)" "" \
+ " self.value = gdb.Color('red')" "" \
+ "color_param = my_param()" "" \
+ " " "" \
+ "class bad_type:" "" \
+ " @property" "" \
+ " def __class__(self):" "" \
+ " raise RuntimeError('__class__ error for bad_type')" "" \
+ "bad_obj = bad_type()" "" \
+ "end" ""
+
+gdb_test_no_output "python color_param.value = gdb.Color('blue')" \
+ "set color parameter to blue"
+
+gdb_test "python color_param.value = bad_obj" \
+ [multi_line \
+ "Python Exception <class 'RuntimeError'>: color argument must be a gdb\\.Color object\\." \
+ "Error occurred in Python: color argument must be a gdb\\.Color object\\."] \
+ "set color parameter to a non-color type"
+
+gdb_test "python c_none.escape_sequence(c_red)" \
+ [multi_line \
+ "Python Exception <class 'TypeError'>: argument 1 must be bool, not gdb.Color" \
+ "Error occurred in Python: argument 1 must be bool, not gdb.Color"]
diff --git a/gdb/testsuite/gdb.python/py-completion.exp b/gdb/testsuite/gdb.python/py-completion.exp
index 9abe407..4c08db4 100644
--- a/gdb/testsuite/gdb.python/py-completion.exp
+++ b/gdb/testsuite/gdb.python/py-completion.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-completion.py b/gdb/testsuite/gdb.python/py-completion.py
index 1a39f6c..906b31e 100644
--- a/gdb/testsuite/gdb.python/py-completion.py
+++ b/gdb/testsuite/gdb.python/py-completion.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-connection-removed.exp b/gdb/testsuite/gdb.python/py-connection-removed.exp
index 28c71da..d60ebb0 100644
--- a/gdb/testsuite/gdb.python/py-connection-removed.exp
+++ b/gdb/testsuite/gdb.python/py-connection-removed.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-connection.c b/gdb/testsuite/gdb.python/py-connection.c
index a5530dd..a6e5093 100644
--- a/gdb/testsuite/gdb.python/py-connection.c
+++ b/gdb/testsuite/gdb.python/py-connection.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-connection.exp b/gdb/testsuite/gdb.python/py-connection.exp
index ca78b37..dbfe20f 100644
--- a/gdb/testsuite/gdb.python/py-connection.exp
+++ b/gdb/testsuite/gdb.python/py-connection.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-disasm-exec.exp b/gdb/testsuite/gdb.python/py-disasm-exec.exp
index 546c4b8..a8dceec 100644
--- a/gdb/testsuite/gdb.python/py-disasm-exec.exp
+++ b/gdb/testsuite/gdb.python/py-disasm-exec.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-disasm-obj.exp b/gdb/testsuite/gdb.python/py-disasm-obj.exp
index 37ff965..55374ad 100644
--- a/gdb/testsuite/gdb.python/py-disasm-obj.exp
+++ b/gdb/testsuite/gdb.python/py-disasm-obj.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-disasm.c b/gdb/testsuite/gdb.python/py-disasm.c
index f267dbd..95c2d11 100644
--- a/gdb/testsuite/gdb.python/py-disasm.c
+++ b/gdb/testsuite/gdb.python/py-disasm.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-disasm.exp.tcl b/gdb/testsuite/gdb.python/py-disasm.exp.tcl
index 8ed634e..c5099ba 100644
--- a/gdb/testsuite/gdb.python/py-disasm.exp.tcl
+++ b/gdb/testsuite/gdb.python/py-disasm.exp.tcl
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -152,7 +152,10 @@ set test_plans \
"Buffer returned from read_memory is sized $decimal instead of the expected $decimal"]] \
[list "ResultOfWrongType" \
[make_exception_pattern "TypeError" \
- "Result is not a DisassemblerResult."]] \
+ "Result from Disassembler must be gdb.DisassemblerResult, not Blah."]] \
+ [list "ResultOfVeryWrongType" \
+ [make_exception_pattern "TypeError" \
+ "Result from Disassembler must be gdb.DisassemblerResult, not Blah."]] \
[list "ErrorCreatingTextPart_NoArgs" \
[make_exception_pattern "TypeError" \
[missing_arg_pattern "style" 1]]] \
diff --git a/gdb/testsuite/gdb.python/py-disasm.py b/gdb/testsuite/gdb.python/py-disasm.py
index f105657..9761337 100644
--- a/gdb/testsuite/gdb.python/py-disasm.py
+++ b/gdb/testsuite/gdb.python/py-disasm.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -294,6 +294,24 @@ class ResultOfWrongType(TestDisassembler):
return self.Blah(1, "ABC")
+class ResultOfVeryWrongType(TestDisassembler):
+ """Return something that is not a DisassemblerResult from disassemble
+ method. The thing returned will raise an exception if used in an
+ isinstance() call, or in PyObject_IsInstance from C++.
+ """
+
+ class Blah:
+ def __init__(self):
+ pass
+
+ @property
+ def __class__(self):
+ raise RuntimeError("error from __class__ in Blah")
+
+ def disassemble(self, info):
+ return self.Blah()
+
+
class TaggingDisassembler(TestDisassembler):
"""A simple disassembler that just tags the output."""
diff --git a/gdb/testsuite/gdb.python/py-doc-reformat.exp b/gdb/testsuite/gdb.python/py-doc-reformat.exp
index 01671ed..519a314 100644
--- a/gdb/testsuite/gdb.python/py-doc-reformat.exp
+++ b/gdb/testsuite/gdb.python/py-doc-reformat.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-error.exp b/gdb/testsuite/gdb.python/py-error.exp
index 6eb9cc3..1e920c2 100644
--- a/gdb/testsuite/gdb.python/py-error.exp
+++ b/gdb/testsuite/gdb.python/py-error.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-error.py b/gdb/testsuite/gdb.python/py-error.py
index f63e3e7..b128707 100644
--- a/gdb/testsuite/gdb.python/py-error.py
+++ b/gdb/testsuite/gdb.python/py-error.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-event-load.c b/gdb/testsuite/gdb.python/py-event-load.c
index 1616ff7..10b65fb 100644
--- a/gdb/testsuite/gdb.python/py-event-load.c
+++ b/gdb/testsuite/gdb.python/py-event-load.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-event-load.exp b/gdb/testsuite/gdb.python/py-event-load.exp
index c3e10f6..a09a946 100644
--- a/gdb/testsuite/gdb.python/py-event-load.exp
+++ b/gdb/testsuite/gdb.python/py-event-load.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-event-load.py b/gdb/testsuite/gdb.python/py-event-load.py
index cffd5c0..ac7c533 100644
--- a/gdb/testsuite/gdb.python/py-event-load.py
+++ b/gdb/testsuite/gdb.python/py-event-load.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-events-shlib.c b/gdb/testsuite/gdb.python/py-events-shlib.c
index 335bcdc..d77517a 100644
--- a/gdb/testsuite/gdb.python/py-events-shlib.c
+++ b/gdb/testsuite/gdb.python/py-events-shlib.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-events.c b/gdb/testsuite/gdb.python/py-events.c
index 747d7a8..9ecdeb7 100644
--- a/gdb/testsuite/gdb.python/py-events.c
+++ b/gdb/testsuite/gdb.python/py-events.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-events.exp b/gdb/testsuite/gdb.python/py-events.exp
index 85b55ae..b440ac4 100644
--- a/gdb/testsuite/gdb.python/py-events.exp
+++ b/gdb/testsuite/gdb.python/py-events.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-events.py b/gdb/testsuite/gdb.python/py-events.py
index ebc59df..0573b16 100644
--- a/gdb/testsuite/gdb.python/py-events.py
+++ b/gdb/testsuite/gdb.python/py-events.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-evsignal.exp b/gdb/testsuite/gdb.python/py-evsignal.exp
index 83b351f..22b13af 100644
--- a/gdb/testsuite/gdb.python/py-evsignal.exp
+++ b/gdb/testsuite/gdb.python/py-evsignal.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-evthreads.c b/gdb/testsuite/gdb.python/py-evthreads.c
index 5605d03..321a9b7 100644
--- a/gdb/testsuite/gdb.python/py-evthreads.c
+++ b/gdb/testsuite/gdb.python/py-evthreads.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-evthreads.exp b/gdb/testsuite/gdb.python/py-evthreads.exp
index c2310a1..0e9cd97 100644
--- a/gdb/testsuite/gdb.python/py-evthreads.exp
+++ b/gdb/testsuite/gdb.python/py-evthreads.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-exec-file.c b/gdb/testsuite/gdb.python/py-exec-file.c
index ca3e5ab..df3db4d 100644
--- a/gdb/testsuite/gdb.python/py-exec-file.c
+++ b/gdb/testsuite/gdb.python/py-exec-file.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-exec-file.exp b/gdb/testsuite/gdb.python/py-exec-file.exp
index f735757..b3418a5 100644
--- a/gdb/testsuite/gdb.python/py-exec-file.exp
+++ b/gdb/testsuite/gdb.python/py-exec-file.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-exec-mi.exp b/gdb/testsuite/gdb.python/py-exec-mi.exp
index 6b81644..96ee481 100644
--- a/gdb/testsuite/gdb.python/py-exec-mi.exp
+++ b/gdb/testsuite/gdb.python/py-exec-mi.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.python/py-explore-cc.exp b/gdb/testsuite/gdb.python/py-explore-cc.exp
index 94fae13..0be7019 100644
--- a/gdb/testsuite/gdb.python/py-explore-cc.exp
+++ b/gdb/testsuite/gdb.python/py-explore-cc.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-explore.c b/gdb/testsuite/gdb.python/py-explore.c
index 8f48ecb..5546eaf 100644
--- a/gdb/testsuite/gdb.python/py-explore.c
+++ b/gdb/testsuite/gdb.python/py-explore.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-explore.cc b/gdb/testsuite/gdb.python/py-explore.cc
index ea50ade..658979e 100644
--- a/gdb/testsuite/gdb.python/py-explore.cc
+++ b/gdb/testsuite/gdb.python/py-explore.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-explore.exp b/gdb/testsuite/gdb.python/py-explore.exp
index 93be521..a68c110 100644
--- a/gdb/testsuite/gdb.python/py-explore.exp
+++ b/gdb/testsuite/gdb.python/py-explore.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-failed-init.exp b/gdb/testsuite/gdb.python/py-failed-init.exp
index 1e0c10d..ee3dc7a 100644
--- a/gdb/testsuite/gdb.python/py-failed-init.exp
+++ b/gdb/testsuite/gdb.python/py-failed-init.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-finish-breakpoint-deletion.c b/gdb/testsuite/gdb.python/py-finish-breakpoint-deletion.c
index 8f0e6bb..6bc7cb6 100644
--- a/gdb/testsuite/gdb.python/py-finish-breakpoint-deletion.c
+++ b/gdb/testsuite/gdb.python/py-finish-breakpoint-deletion.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-finish-breakpoint-deletion.exp b/gdb/testsuite/gdb.python/py-finish-breakpoint-deletion.exp
index 4aed5c5..42aa572 100644
--- a/gdb/testsuite/gdb.python/py-finish-breakpoint-deletion.exp
+++ b/gdb/testsuite/gdb.python/py-finish-breakpoint-deletion.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-finish-breakpoint-deletion.py b/gdb/testsuite/gdb.python/py-finish-breakpoint-deletion.py
index c6d6df6..8d8ca53 100644
--- a/gdb/testsuite/gdb.python/py-finish-breakpoint-deletion.py
+++ b/gdb/testsuite/gdb.python/py-finish-breakpoint-deletion.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-finish-breakpoint.c b/gdb/testsuite/gdb.python/py-finish-breakpoint.c
index 45dcc98..237a152 100644
--- a/gdb/testsuite/gdb.python/py-finish-breakpoint.c
+++ b/gdb/testsuite/gdb.python/py-finish-breakpoint.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-finish-breakpoint.exp b/gdb/testsuite/gdb.python/py-finish-breakpoint.exp
index 0316bc7..c7d31f0 100644
--- a/gdb/testsuite/gdb.python/py-finish-breakpoint.exp
+++ b/gdb/testsuite/gdb.python/py-finish-breakpoint.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-finish-breakpoint.py b/gdb/testsuite/gdb.python/py-finish-breakpoint.py
index dba0431..413489f 100644
--- a/gdb/testsuite/gdb.python/py-finish-breakpoint.py
+++ b/gdb/testsuite/gdb.python/py-finish-breakpoint.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-finish-breakpoint2.cc b/gdb/testsuite/gdb.python/py-finish-breakpoint2.cc
index 3c4f143..af8801f 100644
--- a/gdb/testsuite/gdb.python/py-finish-breakpoint2.cc
+++ b/gdb/testsuite/gdb.python/py-finish-breakpoint2.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-finish-breakpoint2.exp b/gdb/testsuite/gdb.python/py-finish-breakpoint2.exp
index b837bb3..922426f 100644
--- a/gdb/testsuite/gdb.python/py-finish-breakpoint2.exp
+++ b/gdb/testsuite/gdb.python/py-finish-breakpoint2.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-finish-breakpoint2.py b/gdb/testsuite/gdb.python/py-finish-breakpoint2.py
index 47bb2dd..ae75e51 100644
--- a/gdb/testsuite/gdb.python/py-finish-breakpoint2.py
+++ b/gdb/testsuite/gdb.python/py-finish-breakpoint2.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-format-address.c b/gdb/testsuite/gdb.python/py-format-address.c
index 2a0e916..f8eced6 100644
--- a/gdb/testsuite/gdb.python/py-format-address.c
+++ b/gdb/testsuite/gdb.python/py-format-address.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-format-address.exp b/gdb/testsuite/gdb.python/py-format-address.exp
index ab8022c..173297c 100644
--- a/gdb/testsuite/gdb.python/py-format-address.exp
+++ b/gdb/testsuite/gdb.python/py-format-address.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-format-string.c b/gdb/testsuite/gdb.python/py-format-string.c
index c1f59eb..eed356f 100644
--- a/gdb/testsuite/gdb.python/py-format-string.c
+++ b/gdb/testsuite/gdb.python/py-format-string.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-format-string.exp b/gdb/testsuite/gdb.python/py-format-string.exp
index 9102391..114a606 100644
--- a/gdb/testsuite/gdb.python/py-format-string.exp
+++ b/gdb/testsuite/gdb.python/py-format-string.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-format-string.py b/gdb/testsuite/gdb.python/py-format-string.py
index e4f88b1..34b0124 100644
--- a/gdb/testsuite/gdb.python/py-format-string.py
+++ b/gdb/testsuite/gdb.python/py-format-string.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-frame-args.c b/gdb/testsuite/gdb.python/py-frame-args.c
index cbf89c7..4a7b089 100644
--- a/gdb/testsuite/gdb.python/py-frame-args.c
+++ b/gdb/testsuite/gdb.python/py-frame-args.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-frame-args.exp b/gdb/testsuite/gdb.python/py-frame-args.exp
index 4fc8f0a..1dbd30e 100644
--- a/gdb/testsuite/gdb.python/py-frame-args.exp
+++ b/gdb/testsuite/gdb.python/py-frame-args.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-frame-args.py b/gdb/testsuite/gdb.python/py-frame-args.py
index 04ab1ac..45476b1 100644
--- a/gdb/testsuite/gdb.python/py-frame-args.py
+++ b/gdb/testsuite/gdb.python/py-frame-args.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-frame-inline.c b/gdb/testsuite/gdb.python/py-frame-inline.c
index 691ade5..c02ddf3 100644
--- a/gdb/testsuite/gdb.python/py-frame-inline.c
+++ b/gdb/testsuite/gdb.python/py-frame-inline.c
@@ -1,6 +1,6 @@
/* This test is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-frame-inline.exp b/gdb/testsuite/gdb.python/py-frame-inline.exp
index ce3d309..d4a74a1 100644
--- a/gdb/testsuite/gdb.python/py-frame-inline.exp
+++ b/gdb/testsuite/gdb.python/py-frame-inline.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-frame.exp b/gdb/testsuite/gdb.python/py-frame.exp
index 0f1528e..c1e3e33 100644
--- a/gdb/testsuite/gdb.python/py-frame.exp
+++ b/gdb/testsuite/gdb.python/py-frame.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -188,6 +188,21 @@ gdb_test "python print(gdb.selected_frame().read_register(list()))" \
".*Invalid type for register.*" \
"test Frame.read_register with list"
+gdb_test_multiline "setup a bad object" \
+ "python" "" \
+ "class bad_type:" "" \
+ " def __init__ (self):" "" \
+ " pass" "" \
+ " @property" "" \
+ " def __class__(self):" "" \
+ " raise RuntimeError('error from __class in bad_type')" "" \
+ "bad_object = bad_type()" "" \
+ "end" ""
+
+gdb_test "python print(gdb.selected_frame().read_register(bad_object))" \
+ ".*Invalid type for register.*" \
+ "test Frame.read_register with bad_type object"
+
# Compile again without debug info.
gdb_exit
if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile} {}] } {
diff --git a/gdb/testsuite/gdb.python/py-framefilter-addr.c b/gdb/testsuite/gdb.python/py-framefilter-addr.c
index 6872c96..e356768 100644
--- a/gdb/testsuite/gdb.python/py-framefilter-addr.c
+++ b/gdb/testsuite/gdb.python/py-framefilter-addr.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-framefilter-addr.exp b/gdb/testsuite/gdb.python/py-framefilter-addr.exp
index dbc3250..14eebc2 100644
--- a/gdb/testsuite/gdb.python/py-framefilter-addr.exp
+++ b/gdb/testsuite/gdb.python/py-framefilter-addr.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-framefilter-addr.py b/gdb/testsuite/gdb.python/py-framefilter-addr.py
index c22d91c..513bf6f 100644
--- a/gdb/testsuite/gdb.python/py-framefilter-addr.py
+++ b/gdb/testsuite/gdb.python/py-framefilter-addr.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-framefilter-gdb.py b/gdb/testsuite/gdb.python/py-framefilter-gdb.py
index ada7ad7..a725dce 100644
--- a/gdb/testsuite/gdb.python/py-framefilter-gdb.py
+++ b/gdb/testsuite/gdb.python/py-framefilter-gdb.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py b/gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py
index fbe0c0d..51922fc 100644
--- a/gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py
+++ b/gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-framefilter-invalidarg.exp b/gdb/testsuite/gdb.python/py-framefilter-invalidarg.exp
index 0e78f8d..c58dd01 100644
--- a/gdb/testsuite/gdb.python/py-framefilter-invalidarg.exp
+++ b/gdb/testsuite/gdb.python/py-framefilter-invalidarg.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-framefilter-invalidarg.py b/gdb/testsuite/gdb.python/py-framefilter-invalidarg.py
index cb25cd9..b262968 100644
--- a/gdb/testsuite/gdb.python/py-framefilter-invalidarg.py
+++ b/gdb/testsuite/gdb.python/py-framefilter-invalidarg.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-framefilter-mi.c b/gdb/testsuite/gdb.python/py-framefilter-mi.c
index 35f21b2..cba2b65 100644
--- a/gdb/testsuite/gdb.python/py-framefilter-mi.c
+++ b/gdb/testsuite/gdb.python/py-framefilter-mi.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-framefilter-mi.exp b/gdb/testsuite/gdb.python/py-framefilter-mi.exp
index c6644e5..de04236 100644
--- a/gdb/testsuite/gdb.python/py-framefilter-mi.exp
+++ b/gdb/testsuite/gdb.python/py-framefilter-mi.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-framefilter.c b/gdb/testsuite/gdb.python/py-framefilter.c
index 135ead9..1b3d862 100644
--- a/gdb/testsuite/gdb.python/py-framefilter.c
+++ b/gdb/testsuite/gdb.python/py-framefilter.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-framefilter.exp b/gdb/testsuite/gdb.python/py-framefilter.exp
index 3a325bd..7cc8b01 100644
--- a/gdb/testsuite/gdb.python/py-framefilter.exp
+++ b/gdb/testsuite/gdb.python/py-framefilter.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-framefilter.py b/gdb/testsuite/gdb.python/py-framefilter.py
index fb679f1..5c3790d 100644
--- a/gdb/testsuite/gdb.python/py-framefilter.py
+++ b/gdb/testsuite/gdb.python/py-framefilter.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-function.exp b/gdb/testsuite/gdb.python/py-function.exp
index 6de3b34..e618a13 100644
--- a/gdb/testsuite/gdb.python/py-function.exp
+++ b/gdb/testsuite/gdb.python/py-function.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-inferior-leak.c b/gdb/testsuite/gdb.python/py-inferior-leak.c
index 7b7b92a..a8d19f2 100644
--- a/gdb/testsuite/gdb.python/py-inferior-leak.c
+++ b/gdb/testsuite/gdb.python/py-inferior-leak.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-inferior-leak.exp b/gdb/testsuite/gdb.python/py-inferior-leak.exp
index a068ebb..15216ee 100644
--- a/gdb/testsuite/gdb.python/py-inferior-leak.exp
+++ b/gdb/testsuite/gdb.python/py-inferior-leak.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -24,15 +24,5 @@ standard_testfile
clean_restart
-# Skip this test if the tracemalloc module is not available.
-if { ![gdb_py_module_available "tracemalloc"] } {
- unsupported "tracemalloc module not available"
- return
-}
-
-set pyfile [gdb_remote_download host ${srcdir}/${subdir}/${testfile}.py]
-
-# Source the Python script, this runs the test (which is written
-# completely in Python), and either prints PASS, or throws an
-# exception.
-gdb_test "source ${pyfile}" "PASS" "source python script"
+gdb_py_run_memory_leak_test ${srcdir}/${subdir}/${testfile}.py \
+ "gdb.Inferior object deallocates correctly"
diff --git a/gdb/testsuite/gdb.python/py-inferior-leak.py b/gdb/testsuite/gdb.python/py-inferior-leak.py
index ae3629a..bf61668 100644
--- a/gdb/testsuite/gdb.python/py-inferior-leak.py
+++ b/gdb/testsuite/gdb.python/py-inferior-leak.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -13,100 +13,39 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-import re
-import tracemalloc
-
-import gdb
-
-# A global variable in which we store a reference to the gdb.Inferior
-# object sent to us in the new_inferior event.
-inf = None
-
-
-# Register the new_inferior event handler.
-def new_inferior_handler(event):
- global inf
- inf = event.inferior
-
-
-gdb.events.new_inferior.connect(new_inferior_handler)
+import sys
-# A global filters list, we only care about memory allocations
-# originating from this script.
-filters = [tracemalloc.Filter(True, "*py-inferior-leak.py")]
+# Avoid generating
+# src/gdb/testsuite/gdb.python/__pycache__/gdb_leak_detector.cpython-<n>.pyc.
+sys.dont_write_bytecode = True
+import re
-# Add a new inferior, and return the number of the new inferior.
-def add_inferior():
- output = gdb.execute("add-inferior", False, True)
- m = re.search(r"Added inferior (\d+)", output)
- if m:
- num = int(m.group(1))
- else:
- raise RuntimeError("no match")
- return num
-
-
-# Run the test. When CLEAR is True we clear the global INF variable
-# before comparing the before and after memory allocation traces.
-# When CLEAR is False we leave INF set to reference the gdb.Inferior
-# object, thus preventing the gdb.Inferior from being deallocated.
-def test(clear):
- global filters, inf
-
- # Start tracing, and take a snapshot of the current allocations.
- tracemalloc.start()
- snapshot1 = tracemalloc.take_snapshot()
-
- # Create an inferior, this triggers the new_inferior event, which
- # in turn holds a reference to the new gdb.Inferior object in the
- # global INF variable.
- num = add_inferior()
- gdb.execute("remove-inferiors %s" % num)
-
- # Possibly clear the global INF variable.
- if clear:
- inf = None
-
- # Now grab a second snapshot of memory allocations, and stop
- # tracing memory allocations.
- snapshot2 = tracemalloc.take_snapshot()
- tracemalloc.stop()
+import gdb_leak_detector
- # Filter the snapshots; we only care about allocations originating
- # from this file.
- snapshot1 = snapshot1.filter_traces(filters)
- snapshot2 = snapshot2.filter_traces(filters)
- # Compare the snapshots, this leaves only things that were
- # allocated, but not deallocated since the first snapshot.
- stats = snapshot2.compare_to(snapshot1, "traceback")
+class inferior_leak_detector(gdb_leak_detector.gdb_leak_detector):
+ def __init__(self):
+ super().__init__(__file__)
+ self.inferior = None
+ self.__handler = lambda event: setattr(self, "inferior", event.inferior)
+ gdb.events.new_inferior.connect(self.__handler)
- # Total up all the deallocated things.
- total = 0
- for stat in stats:
- total += stat.size_diff
- return total
+ def __del__(self):
+ gdb.events.new_inferior.disconnect(self.__handler)
+ def allocate(self):
+ output = gdb.execute("add-inferior", False, True)
+ m = re.search(r"Added inferior (\d+)", output)
+ if m:
+ num = int(m.group(1))
+ else:
+ raise RuntimeError("no match")
-# The first time we run this some global state will be allocated which
-# shows up as memory that is allocated, but not released. So, run the
-# test once and discard the result.
-test(True)
+ gdb.execute("remove-inferiors %s" % num)
-# Now run the test twice, the first time we clear our global reference
-# to the gdb.Inferior object, which should allow Python to deallocate
-# the object. The second time we hold onto the global reference,
-# preventing Python from performing the deallocation.
-bytes_with_clear = test(True)
-bytes_without_clear = test(False)
+ def deallocate(self):
+ self.inferior = None
-# The bug that used to exist in GDB was that even when we released the
-# global reference the gdb.Inferior object would not be deallocated.
-if bytes_with_clear > 0:
- raise gdb.GdbError("memory leak when gdb.Inferior should be released")
-if bytes_without_clear == 0:
- raise gdb.GdbError("gdb.Inferior object is no longer allocated")
-# Print a PASS message that the test script can see.
-print("PASS")
+inferior_leak_detector().run()
diff --git a/gdb/testsuite/gdb.python/py-inferior.exp b/gdb/testsuite/gdb.python/py-inferior.exp
index 58475bd..62af1a4 100644
--- a/gdb/testsuite/gdb.python/py-inferior.exp
+++ b/gdb/testsuite/gdb.python/py-inferior.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -32,8 +32,8 @@ save_vars { env(ASAN_OPTIONS) env(TSAN_OPTIONS) } {
# triggers address sanitizer. Suppress the error, leaving us with just
# this warning:
# WARNING: AddressSanitizer failed to allocate 0xffffffffffffffff bytes
- set_sanitizer ASAN_OPTIONS allocator_may_return_null 1
- set_sanitizer TSAN_OPTIONS allocator_may_return_null 1
+ append_environment ASAN_OPTIONS allocator_may_return_null 1
+ append_environment TSAN_OPTIONS allocator_may_return_null 1
clean_restart ${testfile}
}
diff --git a/gdb/testsuite/gdb.python/py-infthread.exp b/gdb/testsuite/gdb.python/py-infthread.exp
index 9b05165..40c90b4 100644
--- a/gdb/testsuite/gdb.python/py-infthread.exp
+++ b/gdb/testsuite/gdb.python/py-infthread.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-label-symbol-value.c b/gdb/testsuite/gdb.python/py-label-symbol-value.c
index 8f6258e..0e92d58 100644
--- a/gdb/testsuite/gdb.python/py-label-symbol-value.c
+++ b/gdb/testsuite/gdb.python/py-label-symbol-value.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-label-symbol-value.exp b/gdb/testsuite/gdb.python/py-label-symbol-value.exp
index a8360e6..ca534d4 100644
--- a/gdb/testsuite/gdb.python/py-label-symbol-value.exp
+++ b/gdb/testsuite/gdb.python/py-label-symbol-value.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-lazy-string.c b/gdb/testsuite/gdb.python/py-lazy-string.c
index 805ba92..7eaf7fd 100644
--- a/gdb/testsuite/gdb.python/py-lazy-string.c
+++ b/gdb/testsuite/gdb.python/py-lazy-string.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-lazy-string.exp b/gdb/testsuite/gdb.python/py-lazy-string.exp
index d212e61..7e7272e 100644
--- a/gdb/testsuite/gdb.python/py-lazy-string.exp
+++ b/gdb/testsuite/gdb.python/py-lazy-string.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-linetable-empty.c b/gdb/testsuite/gdb.python/py-linetable-empty.c
index 85e5588..0e6da2d 100644
--- a/gdb/testsuite/gdb.python/py-linetable-empty.c
+++ b/gdb/testsuite/gdb.python/py-linetable-empty.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-linetable-empty.exp b/gdb/testsuite/gdb.python/py-linetable-empty.exp
index 2b7f8be..1e737e1 100644
--- a/gdb/testsuite/gdb.python/py-linetable-empty.exp
+++ b/gdb/testsuite/gdb.python/py-linetable-empty.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-linetable.S b/gdb/testsuite/gdb.python/py-linetable.S
index 5400bc0..f17faa7 100644
--- a/gdb/testsuite/gdb.python/py-linetable.S
+++ b/gdb/testsuite/gdb.python/py-linetable.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.python/py-linetable.c b/gdb/testsuite/gdb.python/py-linetable.c
index 68f3226..d44ffb5 100644
--- a/gdb/testsuite/gdb.python/py-linetable.c
+++ b/gdb/testsuite/gdb.python/py-linetable.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-linetable.exp b/gdb/testsuite/gdb.python/py-linetable.exp
index 5caa7c4..d27d16e 100644
--- a/gdb/testsuite/gdb.python/py-linetable.exp
+++ b/gdb/testsuite/gdb.python/py-linetable.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-lookup-type.exp b/gdb/testsuite/gdb.python/py-lookup-type.exp
index 0b2f334..8673d56 100644
--- a/gdb/testsuite/gdb.python/py-lookup-type.exp
+++ b/gdb/testsuite/gdb.python/py-lookup-type.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-mi-cmd.exp b/gdb/testsuite/gdb.python/py-mi-cmd.exp
index db017c6..7c630f6 100644
--- a/gdb/testsuite/gdb.python/py-mi-cmd.exp
+++ b/gdb/testsuite/gdb.python/py-mi-cmd.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# Copyright (C) 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.python/py-mi-cmd.py b/gdb/testsuite/gdb.python/py-mi-cmd.py
index ad75c3b..7bfe188 100644
--- a/gdb/testsuite/gdb.python/py-mi-cmd.py
+++ b/gdb/testsuite/gdb.python/py-mi-cmd.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# Copyright (C) 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.python/py-mi-events-gdb.py b/gdb/testsuite/gdb.python/py-mi-events-gdb.py
index 94ecddb..ea5f470 100644
--- a/gdb/testsuite/gdb.python/py-mi-events-gdb.py
+++ b/gdb/testsuite/gdb.python/py-mi-events-gdb.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-mi-events.c b/gdb/testsuite/gdb.python/py-mi-events.c
index d3b727e..d5df385 100644
--- a/gdb/testsuite/gdb.python/py-mi-events.c
+++ b/gdb/testsuite/gdb.python/py-mi-events.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-mi-events.exp b/gdb/testsuite/gdb.python/py-mi-events.exp
index d5de247..ecdb74a 100644
--- a/gdb/testsuite/gdb.python/py-mi-events.exp
+++ b/gdb/testsuite/gdb.python/py-mi-events.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-mi-notify.exp b/gdb/testsuite/gdb.python/py-mi-notify.exp
index 7776976..e7b1521 100644
--- a/gdb/testsuite/gdb.python/py-mi-notify.exp
+++ b/gdb/testsuite/gdb.python/py-mi-notify.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.python/py-mi-objfile-gdb.py b/gdb/testsuite/gdb.python/py-mi-objfile-gdb.py
index f5a032e..0ae75b0 100644
--- a/gdb/testsuite/gdb.python/py-mi-objfile-gdb.py
+++ b/gdb/testsuite/gdb.python/py-mi-objfile-gdb.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-mi-objfile.c b/gdb/testsuite/gdb.python/py-mi-objfile.c
index 59fd2bf..829419c 100644
--- a/gdb/testsuite/gdb.python/py-mi-objfile.c
+++ b/gdb/testsuite/gdb.python/py-mi-objfile.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-mi-objfile.exp b/gdb/testsuite/gdb.python/py-mi-objfile.exp
index 28b4589..58ecbc5 100644
--- a/gdb/testsuite/gdb.python/py-mi-objfile.exp
+++ b/gdb/testsuite/gdb.python/py-mi-objfile.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-mi-var-info-path-expression.c b/gdb/testsuite/gdb.python/py-mi-var-info-path-expression.c
index 5e46442..6bd4b65 100644
--- a/gdb/testsuite/gdb.python/py-mi-var-info-path-expression.c
+++ b/gdb/testsuite/gdb.python/py-mi-var-info-path-expression.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-mi-var-info-path-expression.exp b/gdb/testsuite/gdb.python/py-mi-var-info-path-expression.exp
index f7e072e..07cd40f 100644
--- a/gdb/testsuite/gdb.python/py-mi-var-info-path-expression.exp
+++ b/gdb/testsuite/gdb.python/py-mi-var-info-path-expression.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.python/py-mi-var-info-path-expression.py b/gdb/testsuite/gdb.python/py-mi-var-info-path-expression.py
index 889188f..e7638db 100644
--- a/gdb/testsuite/gdb.python/py-mi-var-info-path-expression.py
+++ b/gdb/testsuite/gdb.python/py-mi-var-info-path-expression.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-mi.exp b/gdb/testsuite/gdb.python/py-mi.exp
index dad909a..7f1dffc 100644
--- a/gdb/testsuite/gdb.python/py-mi.exp
+++ b/gdb/testsuite/gdb.python/py-mi.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-missing-debug.c b/gdb/testsuite/gdb.python/py-missing-debug.c
index ca3e5ab..df3db4d 100644
--- a/gdb/testsuite/gdb.python/py-missing-debug.c
+++ b/gdb/testsuite/gdb.python/py-missing-debug.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-missing-debug.exp b/gdb/testsuite/gdb.python/py-missing-debug.exp
index dfc0a46..f028711 100644
--- a/gdb/testsuite/gdb.python/py-missing-debug.exp
+++ b/gdb/testsuite/gdb.python/py-missing-debug.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-missing-debug.py b/gdb/testsuite/gdb.python/py-missing-debug.py
index c1bafdd..c018d4d 100644
--- a/gdb/testsuite/gdb.python/py-missing-debug.py
+++ b/gdb/testsuite/gdb.python/py-missing-debug.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-missing-objfile-lib.c b/gdb/testsuite/gdb.python/py-missing-objfile-lib.c
index 8d740b4..179c329 100644
--- a/gdb/testsuite/gdb.python/py-missing-objfile-lib.c
+++ b/gdb/testsuite/gdb.python/py-missing-objfile-lib.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-missing-objfile.c b/gdb/testsuite/gdb.python/py-missing-objfile.c
index 953e1c0..c5e8a63 100644
--- a/gdb/testsuite/gdb.python/py-missing-objfile.c
+++ b/gdb/testsuite/gdb.python/py-missing-objfile.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-missing-objfile.exp b/gdb/testsuite/gdb.python/py-missing-objfile.exp
index 8afd547..29bc555 100644
--- a/gdb/testsuite/gdb.python/py-missing-objfile.exp
+++ b/gdb/testsuite/gdb.python/py-missing-objfile.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -79,6 +79,16 @@ proc setup_debugdir { dirname files } {
# executable (when EXEC_LOADED is true) and/or the library (when LIB_LOADED
# is true).
proc check_loaded_debug { exec_loaded lib_loaded } {
+ set re_warn \
+ [string_to_regexp \
+ "Warning: the current language does not match this frame."]
+ set cmd "set lang c"
+ gdb_test_multiple $cmd "" {
+ -re -wrap "${cmd}(\r\n$re_warn)?" {
+ pass $gdb_test_name
+ }
+ }
+
if { $exec_loaded } {
gdb_test "whatis global_exec_var" "^type = volatile struct exec_type"
diff --git a/gdb/testsuite/gdb.python/py-missing-objfile.py b/gdb/testsuite/gdb.python/py-missing-objfile.py
index 5bb8179..5efc36a 100644
--- a/gdb/testsuite/gdb.python/py-missing-objfile.py
+++ b/gdb/testsuite/gdb.python/py-missing-objfile.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-nested-maps.c b/gdb/testsuite/gdb.python/py-nested-maps.c
index 6cd78f7..a9480a3 100644
--- a/gdb/testsuite/gdb.python/py-nested-maps.c
+++ b/gdb/testsuite/gdb.python/py-nested-maps.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-nested-maps.exp b/gdb/testsuite/gdb.python/py-nested-maps.exp
index 752b3a3..884b259 100644
--- a/gdb/testsuite/gdb.python/py-nested-maps.exp
+++ b/gdb/testsuite/gdb.python/py-nested-maps.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# Copyright (C) 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-nested-maps.py b/gdb/testsuite/gdb.python/py-nested-maps.py
index ac04bbf..8d65fd8 100644
--- a/gdb/testsuite/gdb.python/py-nested-maps.py
+++ b/gdb/testsuite/gdb.python/py-nested-maps.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# Copyright (C) 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-objfile-script-gdb.py b/gdb/testsuite/gdb.python/py-objfile-script-gdb.py
index 17a4217..8666074 100644
--- a/gdb/testsuite/gdb.python/py-objfile-script-gdb.py
+++ b/gdb/testsuite/gdb.python/py-objfile-script-gdb.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-objfile-script.c b/gdb/testsuite/gdb.python/py-objfile-script.c
index ad9e421..1ce505d 100644
--- a/gdb/testsuite/gdb.python/py-objfile-script.c
+++ b/gdb/testsuite/gdb.python/py-objfile-script.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-objfile-script.exp b/gdb/testsuite/gdb.python/py-objfile-script.exp
index c8cd6ee..1a3d394 100644
--- a/gdb/testsuite/gdb.python/py-objfile-script.exp
+++ b/gdb/testsuite/gdb.python/py-objfile-script.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-objfile.c b/gdb/testsuite/gdb.python/py-objfile.c
index 1c38ff9..d721e0c 100644
--- a/gdb/testsuite/gdb.python/py-objfile.c
+++ b/gdb/testsuite/gdb.python/py-objfile.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -19,7 +19,7 @@ int global_var = 42;
static int __attribute__ ((used)) static_var = 50;
int
-main ()
+main (void)
{
int some_var = 0;
return 0;
diff --git a/gdb/testsuite/gdb.python/py-objfile.exp b/gdb/testsuite/gdb.python/py-objfile.exp
index 2f5b775..8d11028 100644
--- a/gdb/testsuite/gdb.python/py-objfile.exp
+++ b/gdb/testsuite/gdb.python/py-objfile.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -144,7 +144,8 @@ gdb_test "python print (sep_objfile.owner.filename)" "${testfile}2" \
gdb_test "python print (sep_objfile.owner.username)" "${testfile}2" \
"Test user-name of owner of separate debug file"
-gdb_test "p main" "= {int \\(\\)} $hex <main>" \
+set re_prototype [string_to_regexp "int (void)"]
+gdb_test "p main" "= {$re_prototype} $hex <main>" \
"print main with debug info"
# Separate debug files are not findable.
diff --git a/gdb/testsuite/gdb.python/py-parameter-prefix.exp b/gdb/testsuite/gdb.python/py-parameter-prefix.exp
new file mode 100644
index 0000000..eb09fe7
--- /dev/null
+++ b/gdb/testsuite/gdb.python/py-parameter-prefix.exp
@@ -0,0 +1,382 @@
+# Copyright (C) 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# This file is part of the GDB testsuite. It tests
+# gdb.ParameterPrefix. See each of the test procs for a full
+# description of what is being tested.
+
+load_lib gdb-python.exp
+
+require allow_python_tests
+
+clean_restart
+
+# Helper proc to generate the output of 'show PREFIX' commands for the
+# case where the prefix command doesn't handle unknown sub-commands.
+# In this case GDB will list the value of every sub-command under
+# PREFIX.
+proc make_show_prefix_re { prefix } {
+ return "$prefix param-1:\\s+The current value of '$prefix param-1' is \"off\"\\."
+}
+
+# Helper proc to generate the help text that describes all of the sub
+# commands under PREFIX. The MODE is either 'set' or 'show'. This
+# output will appear for 'help MODE PREFIX' and also for 'set PREFIX'.
+proc make_sub_cmd_help_re { mode prefix } {
+ if { $mode == "set" } {
+ set word "Set"
+ } else {
+ set word "Show"
+ }
+
+ return \
+ [multi_line \
+ "List of \"$mode $prefix\" subcommands:" \
+ "" \
+ "$mode $prefix param-1 -- $word the current value of '$prefix param-1'\\." \
+ "" \
+ "Type \"help $mode $prefix\" followed by subcommand name for full documentation\\." \
+ "Type \"apropos word\" to search for commands related to \"word\"\\." \
+ "Type \"apropos -v word\" for full documentation of commands related to \"word\"\\." \
+ "Command name abbreviations are allowed if unambiguous\\."]
+}
+
+# Helper proc to generate the output of 'help MODE PREFIX', where MODE
+# will be either 'set' or 'show'. The HELP_TEXT is the expected help
+# text for this prefix command, this should not be a regexp, as this
+# proc converts the text to a regexp.
+#
+# Return a single regexp which should match the output.
+proc make_help_re { mode prefix help_text } {
+ set help_re [string_to_regexp $help_text]
+
+ return \
+ [multi_line \
+ "$help_re" \
+ "" \
+ [make_sub_cmd_help_re $mode $prefix]]
+}
+
+# Create gdb.ParameterPrefix without using a sub-class, both with, and
+# without a doc string. For the doc string case, test single line,
+# and multi-line doc strings.
+proc_with_prefix test_basic_usage {} {
+ gdb_test_multiline "some basic ParameterPrefix usage" \
+ "python" "" \
+ "gdb.ParameterPrefix('prefix-1', gdb.COMMAND_NONE)" "" \
+ "gdb.Parameter('prefix-1 param-1', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ "gdb.Parameter('prefix-1 param-1', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ "gdb.ParameterPrefix('prefix-2', gdb.COMMAND_NONE," "" \
+ " \"\"\"This is prefix-2 help string.\"\"\")" "" \
+ "gdb.Parameter('prefix-2 param-1', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ "gdb.ParameterPrefix('prefix-3', gdb.COMMAND_NONE," "" \
+ " \"\"\"This is prefix-3 help string." "" \
+ " " "" \
+ " This help text spans multiple lines.\"\"\")" "" \
+ "gdb.Parameter('prefix-3 param-1', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ "end"
+
+ foreach mode { "set" "show" } {
+ gdb_test "help $mode prefix-1" \
+ [make_help_re $mode "prefix-1" \
+ "This command is not documented."]
+
+ gdb_test "help $mode prefix-2" \
+ [make_help_re $mode "prefix-2" \
+ "This is prefix-2 help string."]
+
+ gdb_test "help $mode prefix-3" \
+ [make_help_re $mode "prefix-3" \
+ [multi_line \
+ "This is prefix-3 help string." \
+ "" \
+ "This help text spans multiple lines."]]
+
+ foreach prefix { prefix-1 prefix-2 prefix-3 } {
+ gdb_test "$mode $prefix xxx" \
+ "^Undefined $mode $prefix command: \"xxx\"\\. Try \"help $mode $prefix\"\\."
+ }
+ }
+
+ foreach prefix { prefix-1 prefix-2 prefix-3 } {
+ gdb_test "set $prefix" \
+ [make_sub_cmd_help_re "set" $prefix]
+
+ gdb_test "show $prefix" \
+ [make_show_prefix_re $prefix]
+ }
+}
+
+# Create a sub-class of gdb.ParameterPrefix, but don't do anything
+# particularly interesting. Again test the with and without
+# documentation string cases.
+proc_with_prefix test_simple_sub_class {} {
+ gdb_test_multiline "some basic ParameterPrefix usage" \
+ "python" "" \
+ "class BasicParamPrefix(gdb.ParameterPrefix):" "" \
+ " def __init__(self, name):" "" \
+ " super().__init__(name, gdb.COMMAND_NONE)" "" \
+ "BasicParamPrefix('prefix-4')" "" \
+ "gdb.Parameter('prefix-4 param-1', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ "class BasicParamPrefixWithSingleLineDoc(gdb.ParameterPrefix):" "" \
+ " \"\"\"This is a single line doc string.\"\"\"" "" \
+ " def __init__(self, name):" "" \
+ " super().__init__(name, gdb.COMMAND_NONE)" "" \
+ "BasicParamPrefixWithSingleLineDoc('prefix-5')" "" \
+ "gdb.Parameter('prefix-5 param-1', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ "class BasicParamPrefixWithMultiLineDoc(gdb.ParameterPrefix):" "" \
+ " \"\"\"This is a multi line doc string." "" \
+ " " "" \
+ " The rest of the doc string is here.\"\"\"" "" \
+ " def __init__(self, name):" "" \
+ " super().__init__(name, gdb.COMMAND_NONE)" "" \
+ "BasicParamPrefixWithMultiLineDoc('prefix-6')" "" \
+ "gdb.Parameter('prefix-6 param-1', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ "class BasicParamPrefixWithDocParameter(gdb.ParameterPrefix):" "" \
+ " \"\"\"This is an unsused doc string.\"\"\"" "" \
+ " def __init__(self, name, doc):" "" \
+ " super().__init__(name, gdb.COMMAND_NONE, doc)" "" \
+ "BasicParamPrefixWithDocParameter('prefix-7'," "" \
+ " \"\"\"The doc string text is here.\"\"\")" "" \
+ "gdb.Parameter('prefix-7 param-1', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ "end"
+
+ foreach mode { "set" "show" } {
+ gdb_test "help $mode prefix-4" \
+ [make_help_re $mode "prefix-4" \
+ "This command is not documented."]
+
+ gdb_test "help $mode prefix-5" \
+ [make_help_re $mode "prefix-5" \
+ "This is a single line doc string."]
+
+ gdb_test "help $mode prefix-6" \
+ [make_help_re $mode "prefix-6" \
+ [multi_line \
+ "This is a multi line doc string." \
+ "" \
+ "The rest of the doc string is here."]]
+
+ gdb_test "help $mode prefix-7" \
+ [make_help_re $mode "prefix-7" \
+ "The doc string text is here."]
+
+ foreach prefix { prefix-4 prefix-5 prefix-6 prefix-7 } {
+ gdb_test "$mode $prefix xxx" \
+ "^Undefined $mode $prefix command: \"xxx\"\\. Try \"help $mode $prefix\"\\."
+ }
+ }
+
+ foreach prefix { prefix-4 prefix-5 prefix-6 prefix-7 } {
+ gdb_test "set $prefix" \
+ [make_sub_cmd_help_re "set" $prefix]
+
+ gdb_test "show $prefix" \
+ [make_show_prefix_re $prefix]
+ }
+}
+
+# Create a sub-class of gdb.ParameterPrefix, and make use of
+# 'invoke_set' and 'invoke_show'. Test that the invoke method is
+# executed when expected, and that, by default, these invoke methods
+# repeat when the user issues an empty command.
+proc_with_prefix test_prefix_with_invoke {} {
+ gdb_test_multiline "ParameterPrefix with invoke_set" \
+ "python" "" \
+ "class PrefixWithInvokeSet(gdb.ParameterPrefix):" "" \
+ " def __init__(self, name):" "" \
+ " super().__init__(name, gdb.COMMAND_NONE)" "" \
+ " def invoke_set(self, args, from_tty):" "" \
+ " print(f\"invoke_set (a): \\\"{args}\\\" {from_tty}\")" "" \
+ "PrefixWithInvokeSet('prefix-8')" "" \
+ "gdb.Parameter('prefix-8 param-1', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ "class PrefixWithInvokeShow(gdb.ParameterPrefix):" "" \
+ " def __init__(self, name):" "" \
+ " super().__init__(name, gdb.COMMAND_NONE)" "" \
+ " def invoke_show(self, args, from_tty):" "" \
+ " print(f\"invoke_show (b): \\\"{args}\\\" {from_tty}\")" "" \
+ "PrefixWithInvokeShow('prefix-9')" "" \
+ "gdb.Parameter('prefix-9 param-1', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ "class PrefixWithBothInvoke(gdb.ParameterPrefix):" "" \
+ " def __init__(self, name):" "" \
+ " super().__init__(name, gdb.COMMAND_NONE)" "" \
+ " def invoke_set(self, args, from_tty):" "" \
+ " print(f\"invoke_set (c): \\\"{args}\\\" {from_tty}\")" "" \
+ " def invoke_show(self, args, from_tty):" "" \
+ " print(f\"invoke_show (d): \\\"{args}\\\" {from_tty}\")" "" \
+ "PrefixWithBothInvoke('prefix-10')" "" \
+ "gdb.Parameter('prefix-10 param-1', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ "end"
+
+ gdb_test "set prefix-8 xxx yyy" \
+ "^invoke_set \\(a\\): \"xxx yyy\" True"
+
+ send_gdb "\n"
+ gdb_test "" "^\r\ninvoke_set \\(a\\): \"xxx yyy\" True" \
+ "repeat set prefix-8 xxx yyy"
+
+ gdb_test "show prefix-8 xxx yyy" \
+ "^Undefined show prefix-8 command: \"xxx yyy\"\\. Try \"help show prefix-8\"\\."
+
+ gdb_test "set prefix-9 xxx yyy" \
+ "^Undefined set prefix-9 command: \"xxx yyy\"\\. Try \"help set prefix-9\"\\."
+
+ gdb_test "show prefix-9 xxx yyy" \
+ "^invoke_show \\(b\\): \"xxx yyy\" True"
+
+ send_gdb "\n"
+ gdb_test "" "^\r\ninvoke_show \\(b\\): \"xxx yyy\" True" \
+ "repeat show prefix-9 xxx yyy"
+
+ gdb_test "set prefix-10 xxx yyy" \
+ "^invoke_set \\(c\\): \"xxx yyy\" True"
+
+ send_gdb "\n"
+ gdb_test "" "^\r\ninvoke_set \\(c\\): \"xxx yyy\" True" \
+ "repeat set prefix-10 xxx yyy"
+
+ gdb_test "show prefix-10 xxx yyy" \
+ "^invoke_show \\(d\\): \"xxx yyy\" True"
+
+ send_gdb "\n"
+ gdb_test "" "^\r\ninvoke_show \\(d\\): \"xxx yyy\" True" \
+ "repeat show prefix-10 xxx yyy"
+
+ gdb_test "set prefix-8" \
+ "^invoke_set \\(a\\): \"\" True"
+
+ gdb_test "show prefix-8" \
+ [make_show_prefix_re "prefix-8"]
+
+ gdb_test "set prefix-9" \
+ [make_sub_cmd_help_re "set" "prefix-9"]
+
+ gdb_test "show prefix-9" \
+ "^invoke_show \\(b\\): \"\" True"
+
+ gdb_test "set prefix-10" \
+ "^invoke_set \\(c\\): \"\" True"
+
+ gdb_test "show prefix-10" \
+ "^invoke_show \\(d\\): \"\" True"
+}
+
+# Create ParameterPrefix sub-classes that make use of the
+# dont_repeat() method. Check that the relevant set/show invoke
+# callback doesn't repeat when an empty command is used.
+proc_with_prefix test_dont_repeat {} {
+ gdb_test_multiline "ParameterPrefix with invoke_set and dont_repeat" \
+ "python" "" \
+ "class PrefixWithInvokeAndDoNotRepeatSet(gdb.ParameterPrefix):" "" \
+ " def __init__(self, name):" "" \
+ " super().__init__(name, gdb.COMMAND_NONE)" "" \
+ " def invoke_set(self, args, from_tty):" "" \
+ " self.dont_repeat()" "" \
+ " print(f\"invoke_set: \\\"{args}\\\" {from_tty}\")" "" \
+ " def invoke_show(self, args, from_tty):" "" \
+ " print(f\"invoke_show: \\\"{args}\\\" {from_tty}\")" "" \
+ "PrefixWithInvokeAndDoNotRepeatSet('prefix-11')" "" \
+ "gdb.Parameter('prefix-11 param-1', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ "class PrefixWithInvokeAndDoNotRepeatShow(gdb.ParameterPrefix):" "" \
+ " def __init__(self, name):" "" \
+ " super().__init__(name, gdb.COMMAND_NONE)" "" \
+ " def invoke_set(self, args, from_tty):" "" \
+ " print(f\"invoke_set: \\\"{args}\\\" {from_tty}\")" "" \
+ " def invoke_show(self, args, from_tty):" "" \
+ " self.dont_repeat()" "" \
+ " print(f\"invoke_show: \\\"{args}\\\" {from_tty}\")" "" \
+ "PrefixWithInvokeAndDoNotRepeatShow('prefix-12')" "" \
+ "gdb.Parameter('prefix-12 param-1', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ "end"
+
+ gdb_test "set prefix-11 xxx yyy" \
+ "^invoke_set: \"xxx yyy\" True"
+
+ send_gdb "\n"
+ gdb_test "" "^" \
+ "repeat set prefix-11 xxx yyy"
+
+ gdb_test "show prefix-11 xxx yyy" \
+ "^invoke_show: \"xxx yyy\" True"
+
+ send_gdb "\n"
+ gdb_test "" "invoke_show: \"xxx yyy\" True" \
+ "repeat show prefix-11 xxx yyy"
+
+ gdb_test "set prefix-12 xxx yyy" \
+ "^invoke_set: \"xxx yyy\" True"
+
+ send_gdb "\n"
+ gdb_test "" "^\r\ninvoke_set: \"xxx yyy\" True" \
+ "repeat set prefix-12 xxx yyy"
+
+ gdb_test "show prefix-12 xxx yyy" \
+ "^invoke_show: \"xxx yyy\" True"
+
+ send_gdb "\n"
+ gdb_test "" "^" \
+ "repeat show prefix-12 xxx yyy"
+}
+
+# Create a parameter prefixm, and immediately add another prefix under
+# the first. The important thing here is that the second prefix is
+# created into an otherwise empty prefix as this triggered a bug at
+# one point.
+proc_with_prefix test_nested {} {
+ gdb_test_multiline "Create nested parameter prefixes" \
+ "python" "" \
+ "gdb.ParameterPrefix('prefix-13', gdb.COMMAND_NONE)" "" \
+ "gdb.ParameterPrefix('prefix-13 prefix-14', gdb.COMMAND_NONE)" "" \
+ "gdb.Parameter('prefix-13 param-1', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ "gdb.Parameter('prefix-13 param-2', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ "gdb.Parameter('prefix-13 prefix-14 param-3', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ "gdb.Parameter('prefix-13 prefix-14 param-4', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ "end" ""
+
+ gdb_test "show prefix-13 prefix-14" \
+ [multi_line \
+ "^prefix-13 prefix-14 param-3: The current value of 'prefix-13 prefix-14 param-3' is \"off\"\\." \
+ "prefix-13 prefix-14 param-4: The current value of 'prefix-13 prefix-14 param-4' is \"off\"\\."]
+
+ gdb_test "show prefix-13" \
+ [multi_line \
+ "^prefix-13 param-1: The current value of 'prefix-13 param-1' is \"off\"\\." \
+ "prefix-13 param-2: The current value of 'prefix-13 param-2' is \"off\"\\." \
+ "prefix-13 prefix-14 param-3: The current value of 'prefix-13 prefix-14 param-3' is \"off\"\\." \
+ "prefix-13 prefix-14 param-4: The current value of 'prefix-13 prefix-14 param-4' is \"off\"\\."]
+
+ gdb_test "set prefix-13 prefix-14" \
+ [multi_line \
+ "" \
+ "set prefix-13 prefix-14 param-3 -- Set the current value of 'prefix-13 prefix-14 param-3'\\." \
+ "set prefix-13 prefix-14 param-4 -- Set the current value of 'prefix-13 prefix-14 param-4'\\." \
+ "" \
+ ".*"]
+
+ gdb_test "set prefix-13" \
+ [multi_line \
+ "" \
+ "set prefix-13 param-1 -- Set the current value of 'prefix-13 param-1'\\." \
+ "set prefix-13 param-2 -- Set the current value of 'prefix-13 param-2'\\." \
+ "set prefix-13 prefix-14 -- This command is not documented\\." \
+ "" \
+ ".*"]
+}
+
+test_basic_usage
+test_simple_sub_class
+test_prefix_with_invoke
+test_dont_repeat
+test_nested
diff --git a/gdb/testsuite/gdb.python/py-parameter.exp b/gdb/testsuite/gdb.python/py-parameter.exp
index 74e4178..214c570 100644
--- a/gdb/testsuite/gdb.python/py-parameter.exp
+++ b/gdb/testsuite/gdb.python/py-parameter.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -346,6 +346,91 @@ proc_with_prefix test_really_undocumented_parameter { } {
"test general help"
}
+# Test a parameter in which the __doc__ string is empty or None.
+proc_with_prefix test_empty_doc_parameter {} {
+ gdb_test_multiline "empty __doc__ parameter" \
+ "python" "" \
+ "class EmptyDocParam(gdb.Parameter):" "" \
+ " __doc__ = \"\"" "" \
+ " def __init__(self, name):" "" \
+ " super ().__init__(name, gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ " self.value = True" "" \
+ "test_empty_doc_param = EmptyDocParam('print test-empty-doc-param')" ""\
+ "end"
+
+ # Setting the __doc__ string to empty means GDB will completely
+ # elide it from the output.
+ gdb_test "help set print test-empty-doc-param" \
+ "^Set the current value of 'print test-empty-doc-param'\\."
+
+ gdb_test_multiline "None __doc__ parameter" \
+ "python" "" \
+ "class NoneDocParam(gdb.Parameter):" "" \
+ " __doc__ = None" "" \
+ " def __init__(self, name):" "" \
+ " super ().__init__(name, gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ " self.value = True" "" \
+ "test_none_doc_param = NoneDocParam('print test-none-doc-param')" ""\
+ "end"
+
+ # Setting the __doc__ string to None, or anything else that isn't
+ # a string, causes GDB to use a default string instead.
+ gdb_test "help set print test-none-doc-param" \
+ [multi_line \
+ "^Set the current value of 'print test-none-doc-param'\\." \
+ "This command is not documented\\."]
+}
+
+# Test a parameter in which the set_doc/show_doc strings are either
+# empty, or None.
+proc_with_prefix test_empty_set_show_doc_parameter {} {
+ gdb_test_multiline "empty set/show doc parameter" \
+ "python" "" \
+ "class EmptySetShowParam(gdb.Parameter):" "" \
+ " set_doc = \"\"" "" \
+ " show_doc = \"\"" "" \
+ " def __init__(self, name):" "" \
+ " super ().__init__(name, gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ " self.value = True" "" \
+ "test_empty_set_show_param = EmptySetShowParam('print test-empty-set-show-param')" ""\
+ "end"
+
+ # Setting the set_doc/show_doc string to empty means GDB will use
+ # a suitable default string.
+ gdb_test "help set print test-empty-set-show-param" \
+ [multi_line \
+ "^Set the current value of 'print test-empty-set-show-param'\\." \
+ "This command is not documented\\."]
+
+ gdb_test "help show print test-empty-set-show-param" \
+ [multi_line \
+ "^Show the current value of 'print test-empty-set-show-param'\\." \
+ "This command is not documented\\."]
+
+ gdb_test_multiline "None set/show doc parameter" \
+ "python" "" \
+ "class NoneSetShowParam(gdb.Parameter):" "" \
+ " set_doc = None" "" \
+ " show_doc = None" "" \
+ " def __init__(self, name):" "" \
+ " super ().__init__(name, gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ " self.value = True" "" \
+ "test_none_set_show_param = NoneSetShowParam('print test-none-set-show-param')" ""\
+ "end"
+
+ # Setting the set_doc/show_doc string to None (or any non-string
+ # value) means GDB will use a suitable default string.
+ gdb_test "help set print test-none-set-show-param" \
+ [multi_line \
+ "^Set the current value of 'print test-none-set-show-param'\\." \
+ "This command is not documented\\."]
+
+ gdb_test "help show print test-none-set-show-param" \
+ [multi_line \
+ "^Show the current value of 'print test-none-set-show-param'\\." \
+ "This command is not documented\\."]
+}
+
# Test deprecated API. Do not use in your own implementations.
proc_with_prefix test_deprecated_api_parameter { } {
clean_restart
@@ -669,6 +754,104 @@ proc_with_prefix test_ambiguous_parameter {} {
"Parameter .* is ambiguous.*Error occurred in Python.*"
gdb_test "python print(gdb.parameter('test-ambiguous-value-1a'))" \
"Could not find parameter.*Error occurred in Python.*"
+
+ # Create command prefixs 'set foo1' and 'show foo1'.
+ gdb_test_no_output "python gdb.Command('set foo1', gdb.COMMAND_NONE, prefix=True)"
+ gdb_test_no_output "python gdb.Command('show foo1', gdb.COMMAND_NONE, prefix=True)"
+
+ # Create a parameter under 'foo1', but use a truncated prefix. At
+ # this point though, the prefix is not ambiguous.
+ gdb_test_no_output "python gdb.Parameter('foo bar', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)"
+ gdb_test "python print(gdb.parameter('foo1 bar'))" "False"
+
+ # Create another prefix command, similar in name to the first.
+ gdb_test_no_output "python gdb.Command('set foo2', gdb.COMMAND_NONE, prefix=True)"
+ gdb_test_no_output "python gdb.Command('show foo2', gdb.COMMAND_NONE, prefix=True)"
+
+ # An attempt to create a parameter using an ambiguous prefix will give an error.
+ gdb_test "python gdb.Parameter('foo baz', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" \
+ [multi_line \
+ "Python Exception <class 'RuntimeError'>: Could not find command prefix foo\\." \
+ "Error occurred in Python: Could not find command prefix foo\\."]
+}
+
+# Check that creating a gdb.Parameter with an unknown command prefix results in an error.
+proc_with_prefix test_unknown_prefix {} {
+ gdb_test_multiline "create parameter" \
+ "python" "" \
+ "class UnknownPrefixParam(gdb.Parameter):" "" \
+ " def __init__ (self, name):" "" \
+ " super().__init__ (name, gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ " self.value = True" "" \
+ "end"
+
+ foreach prefix { "unknown-prefix" "style unknown-prefix" "style disassembler unknown-prefix"} {
+ gdb_test "python UnknownPrefixParam('$prefix new-param')" \
+ [multi_line \
+ "Python Exception <class 'RuntimeError'>: Could not find command prefix $prefix\\." \
+ "Error occurred in Python: Could not find command prefix $prefix\\."]
+ }
+}
+
+# Test the default behaviour of a set/show parameter prefix command.
+proc_with_prefix test_set_show_parameters {} {
+ # This first set/show prefix command doesn't have an invoke
+ # method. As such, GDB installs the default invoke behaviour; set
+ # prints the full list of sub-commands, and show prints all the
+ # sub-command values.
+ gdb_test_multiline "Setup set/show parameter prefix with no invoke" \
+ "python" "" \
+ "class TestParamPrefix(gdb.Command):" "" \
+ " \"\"\"TestParamPrefix documentation string.\"\"\"" "" \
+ " def __init__(self, name):" "" \
+ " super().__init__(name, gdb.COMMAND_NONE, prefix = True)" "" \
+ "TestParamPrefix('set test-prefix')" "" \
+ "TestParamPrefix('show test-prefix')" "" \
+ "gdb.Parameter('test-prefix param-1', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ "gdb.Parameter('test-prefix param-2', gdb.COMMAND_NONE, gdb.PARAM_INTEGER)" "" \
+ "gdb.Parameter('test-prefix param-3', gdb.COMMAND_NONE, gdb.PARAM_STRING)" "" \
+ "end"
+
+ gdb_test "set test-prefix" \
+ [multi_line \
+ "List of \"set test-prefix\" subcommands:" \
+ "" \
+ "set test-prefix param-1 -- Set the current value of 'test-prefix param-1'." \
+ "set test-prefix param-2 -- Set the current value of 'test-prefix param-2'." \
+ "set test-prefix param-3 -- Set the current value of 'test-prefix param-3'." \
+ "" \
+ "Type \"help set test-prefix\" followed by subcommand name for full documentation\\." \
+ "Type \"apropos word\" to search for commands related to \"word\"\\." \
+ "Type \"apropos -v word\" for full documentation of commands related to \"word\"\\." \
+ "Command name abbreviations are allowed if unambiguous\\."]
+
+ gdb_test "show test-prefix" \
+ [multi_line \
+ "test-prefix param-1: The current value of 'test-prefix param-1' is \"off\"\\." \
+ "test-prefix param-2: The current value of 'test-prefix param-2' is \"0\"\\." \
+ "test-prefix param-3: The current value of 'test-prefix param-3' is \"\"\\."]
+
+ # This next set/show prefix has an invoke method, which will be
+ # called instead of the default behaviour tested above.
+ gdb_test_multiline "Setup set/show parameter prefix with invoke" \
+ "python" "" \
+ "class TestParamPrefix(gdb.Command):" "" \
+ " \"\"\"TestParamPrefix documentation string.\"\"\"" "" \
+ " def __init__(self, name, mode):" "" \
+ " self._mode = mode" "" \
+ " super().__init__(self._mode + ' ' + name, gdb.COMMAND_NONE, prefix = True)" "" \
+ " def invoke(self, args, from_tty):" "" \
+ " print('invoke -- ' + self._mode)" "" \
+ "TestParamPrefix('test-prefix-2', 'set')" "" \
+ "TestParamPrefix('test-prefix-2', 'show')" "" \
+ "gdb.Parameter('test-prefix-2 param-1', gdb.COMMAND_NONE, gdb.PARAM_BOOLEAN)" "" \
+ "gdb.Parameter('test-prefix-2 param-2', gdb.COMMAND_NONE, gdb.PARAM_INTEGER)" "" \
+ "gdb.Parameter('test-prefix-2 param-3', gdb.COMMAND_NONE, gdb.PARAM_STRING)" "" \
+ "end"
+
+ gdb_test "set test-prefix-2" "^invoke -- set"
+
+ gdb_test "show test-prefix-2" "^invoke -- show"
}
test_directories
@@ -679,11 +862,15 @@ test_color_parameter
test_file_parameter
test_undocumented_parameter
test_really_undocumented_parameter
+test_empty_doc_parameter
+test_empty_set_show_doc_parameter
test_deprecated_api_parameter
test_gdb_parameter
test_integer_parameter
test_throwing_parameter
test_language
test_ambiguous_parameter
+test_unknown_prefix
+test_set_show_parameters
rename py_param_test_maybe_no_output ""
diff --git a/gdb/testsuite/gdb.python/py-pending-frame-level.c b/gdb/testsuite/gdb.python/py-pending-frame-level.c
index dba64b8..56734ad 100644
--- a/gdb/testsuite/gdb.python/py-pending-frame-level.c
+++ b/gdb/testsuite/gdb.python/py-pending-frame-level.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-pending-frame-level.exp b/gdb/testsuite/gdb.python/py-pending-frame-level.exp
index dcefdce..4eb82c5 100644
--- a/gdb/testsuite/gdb.python/py-pending-frame-level.exp
+++ b/gdb/testsuite/gdb.python/py-pending-frame-level.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-pending-frame-level.py b/gdb/testsuite/gdb.python/py-pending-frame-level.py
index 7742fda..8a9783b 100644
--- a/gdb/testsuite/gdb.python/py-pending-frame-level.py
+++ b/gdb/testsuite/gdb.python/py-pending-frame-level.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-pp-cast.c b/gdb/testsuite/gdb.python/py-pp-cast.c
index be665bb..dcd4619 100644
--- a/gdb/testsuite/gdb.python/py-pp-cast.c
+++ b/gdb/testsuite/gdb.python/py-pp-cast.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-pp-cast.exp b/gdb/testsuite/gdb.python/py-pp-cast.exp
index 61c2fba..7e20756 100644
--- a/gdb/testsuite/gdb.python/py-pp-cast.exp
+++ b/gdb/testsuite/gdb.python/py-pp-cast.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-pp-cast.py b/gdb/testsuite/gdb.python/py-pp-cast.py
index c071920..515aa77 100644
--- a/gdb/testsuite/gdb.python/py-pp-cast.py
+++ b/gdb/testsuite/gdb.python/py-pp-cast.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-pp-integral.c b/gdb/testsuite/gdb.python/py-pp-integral.c
index 1e13fc1..2c3afa1 100644
--- a/gdb/testsuite/gdb.python/py-pp-integral.c
+++ b/gdb/testsuite/gdb.python/py-pp-integral.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-pp-integral.exp b/gdb/testsuite/gdb.python/py-pp-integral.exp
index 0635e05..8111d75 100644
--- a/gdb/testsuite/gdb.python/py-pp-integral.exp
+++ b/gdb/testsuite/gdb.python/py-pp-integral.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-pp-integral.py b/gdb/testsuite/gdb.python/py-pp-integral.py
index 089ca5b..a87736c 100644
--- a/gdb/testsuite/gdb.python/py-pp-integral.py
+++ b/gdb/testsuite/gdb.python/py-pp-integral.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-pp-maint.c b/gdb/testsuite/gdb.python/py-pp-maint.c
index 3ef4f10..f40bbe5 100644
--- a/gdb/testsuite/gdb.python/py-pp-maint.c
+++ b/gdb/testsuite/gdb.python/py-pp-maint.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-pp-maint.exp b/gdb/testsuite/gdb.python/py-pp-maint.exp
index 1ee206c..74d8e76 100644
--- a/gdb/testsuite/gdb.python/py-pp-maint.exp
+++ b/gdb/testsuite/gdb.python/py-pp-maint.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-pp-maint.py b/gdb/testsuite/gdb.python/py-pp-maint.py
index 91c193f..8b96cc0 100644
--- a/gdb/testsuite/gdb.python/py-pp-maint.py
+++ b/gdb/testsuite/gdb.python/py-pp-maint.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-pp-re-notag.c b/gdb/testsuite/gdb.python/py-pp-re-notag.c
index 1e13fc1..2c3afa1 100644
--- a/gdb/testsuite/gdb.python/py-pp-re-notag.c
+++ b/gdb/testsuite/gdb.python/py-pp-re-notag.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-pp-re-notag.exp b/gdb/testsuite/gdb.python/py-pp-re-notag.exp
index 0635e05..8111d75 100644
--- a/gdb/testsuite/gdb.python/py-pp-re-notag.exp
+++ b/gdb/testsuite/gdb.python/py-pp-re-notag.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-pp-re-notag.py b/gdb/testsuite/gdb.python/py-pp-re-notag.py
index 00bc5c7..32ea2c9 100644
--- a/gdb/testsuite/gdb.python/py-pp-re-notag.py
+++ b/gdb/testsuite/gdb.python/py-pp-re-notag.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-pp-registration.c b/gdb/testsuite/gdb.python/py-pp-registration.c
index b597f14..5a95917 100644
--- a/gdb/testsuite/gdb.python/py-pp-registration.c
+++ b/gdb/testsuite/gdb.python/py-pp-registration.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-pp-registration.exp b/gdb/testsuite/gdb.python/py-pp-registration.exp
index 4bfdf5e..c5e7f9a 100644
--- a/gdb/testsuite/gdb.python/py-pp-registration.exp
+++ b/gdb/testsuite/gdb.python/py-pp-registration.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-pp-registration.py b/gdb/testsuite/gdb.python/py-pp-registration.py
index 1b7eff8..e9f3dfb 100644
--- a/gdb/testsuite/gdb.python/py-pp-registration.py
+++ b/gdb/testsuite/gdb.python/py-pp-registration.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-prettyprint-stub-2.cc b/gdb/testsuite/gdb.python/py-prettyprint-stub-2.cc
index 1988cc0..592200b 100644
--- a/gdb/testsuite/gdb.python/py-prettyprint-stub-2.cc
+++ b/gdb/testsuite/gdb.python/py-prettyprint-stub-2.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-prettyprint-stub.cc b/gdb/testsuite/gdb.python/py-prettyprint-stub.cc
index fc453d9..156532f 100644
--- a/gdb/testsuite/gdb.python/py-prettyprint-stub.cc
+++ b/gdb/testsuite/gdb.python/py-prettyprint-stub.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-prettyprint-stub.exp b/gdb/testsuite/gdb.python/py-prettyprint-stub.exp
index 2dab863..1c1d010 100644
--- a/gdb/testsuite/gdb.python/py-prettyprint-stub.exp
+++ b/gdb/testsuite/gdb.python/py-prettyprint-stub.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-prettyprint-stub.h b/gdb/testsuite/gdb.python/py-prettyprint-stub.h
index fa18165..cb17cb5 100644
--- a/gdb/testsuite/gdb.python/py-prettyprint-stub.h
+++ b/gdb/testsuite/gdb.python/py-prettyprint-stub.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-prettyprint-stub.py b/gdb/testsuite/gdb.python/py-prettyprint-stub.py
index 2378f55..b66086c 100644
--- a/gdb/testsuite/gdb.python/py-prettyprint-stub.py
+++ b/gdb/testsuite/gdb.python/py-prettyprint-stub.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-prettyprint.c b/gdb/testsuite/gdb.python/py-prettyprint.c
index 312420b..56c19ad 100644
--- a/gdb/testsuite/gdb.python/py-prettyprint.c
+++ b/gdb/testsuite/gdb.python/py-prettyprint.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-prettyprint.exp b/gdb/testsuite/gdb.python/py-prettyprint.exp
index ec2bdc9..0b5ca9a 100644
--- a/gdb/testsuite/gdb.python/py-prettyprint.exp
+++ b/gdb/testsuite/gdb.python/py-prettyprint.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-prettyprint.py b/gdb/testsuite/gdb.python/py-prettyprint.py
index e4ac3e1..21c2569 100644
--- a/gdb/testsuite/gdb.python/py-prettyprint.py
+++ b/gdb/testsuite/gdb.python/py-prettyprint.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-progspace-events.c b/gdb/testsuite/gdb.python/py-progspace-events.c
index f8b2909..5c4dd4d 100644
--- a/gdb/testsuite/gdb.python/py-progspace-events.c
+++ b/gdb/testsuite/gdb.python/py-progspace-events.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-progspace-events.exp b/gdb/testsuite/gdb.python/py-progspace-events.exp
index 9dfc757..5ee9977 100644
--- a/gdb/testsuite/gdb.python/py-progspace-events.exp
+++ b/gdb/testsuite/gdb.python/py-progspace-events.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-progspace-events.py b/gdb/testsuite/gdb.python/py-progspace-events.py
index 23c6fc5..3a53fb16 100644
--- a/gdb/testsuite/gdb.python/py-progspace-events.py
+++ b/gdb/testsuite/gdb.python/py-progspace-events.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-progspace.c b/gdb/testsuite/gdb.python/py-progspace.c
index 80fcda0..170249b 100644
--- a/gdb/testsuite/gdb.python/py-progspace.c
+++ b/gdb/testsuite/gdb.python/py-progspace.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-progspace.exp b/gdb/testsuite/gdb.python/py-progspace.exp
index fe46537..1d271d4 100644
--- a/gdb/testsuite/gdb.python/py-progspace.exp
+++ b/gdb/testsuite/gdb.python/py-progspace.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-prompt.c b/gdb/testsuite/gdb.python/py-prompt.c
index c7657d7..6718bb1 100644
--- a/gdb/testsuite/gdb.python/py-prompt.c
+++ b/gdb/testsuite/gdb.python/py-prompt.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-prompt.exp b/gdb/testsuite/gdb.python/py-prompt.exp
index 614fe9d..01176a3 100644
--- a/gdb/testsuite/gdb.python/py-prompt.exp
+++ b/gdb/testsuite/gdb.python/py-prompt.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-rbreak-func2.c b/gdb/testsuite/gdb.python/py-rbreak-func2.c
index fdcece6..085d869 100644
--- a/gdb/testsuite/gdb.python/py-rbreak-func2.c
+++ b/gdb/testsuite/gdb.python/py-rbreak-func2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-rbreak.c b/gdb/testsuite/gdb.python/py-rbreak.c
index 1cc4561..4da4de4 100644
--- a/gdb/testsuite/gdb.python/py-rbreak.c
+++ b/gdb/testsuite/gdb.python/py-rbreak.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-rbreak.exp b/gdb/testsuite/gdb.python/py-rbreak.exp
index dca8731..fe1e0fc 100644
--- a/gdb/testsuite/gdb.python/py-rbreak.exp
+++ b/gdb/testsuite/gdb.python/py-rbreak.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-read-memory-leak.c b/gdb/testsuite/gdb.python/py-read-memory-leak.c
index 75035cd..0319268 100644
--- a/gdb/testsuite/gdb.python/py-read-memory-leak.c
+++ b/gdb/testsuite/gdb.python/py-read-memory-leak.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-read-memory-leak.exp b/gdb/testsuite/gdb.python/py-read-memory-leak.exp
index 52b072f..9ae5eb8 100644
--- a/gdb/testsuite/gdb.python/py-read-memory-leak.exp
+++ b/gdb/testsuite/gdb.python/py-read-memory-leak.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -30,15 +30,5 @@ if ![runto_main] {
return -1
}
-# Skip this test if the tracemalloc module is not available.
-if { ![gdb_py_module_available "tracemalloc"] } {
- unsupported "tracemalloc module not available"
- return
-}
-
-set pyfile [gdb_remote_download host ${srcdir}/${subdir}/${testfile}.py]
-
-# Source the Python script, this runs the test (which is written
-# completely in Python), and either prints PASS, or throws an
-# exception.
-gdb_test "source ${pyfile}" "PASS" "source python script"
+gdb_py_run_memory_leak_test ${srcdir}/${subdir}/${testfile}.py \
+ "buffers returned by read_memory() deallocates correctly"
diff --git a/gdb/testsuite/gdb.python/py-read-memory-leak.py b/gdb/testsuite/gdb.python/py-read-memory-leak.py
index 430c5c2..89647cf 100644
--- a/gdb/testsuite/gdb.python/py-read-memory-leak.py
+++ b/gdb/testsuite/gdb.python/py-read-memory-leak.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -13,81 +13,27 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-import os
-import tracemalloc
+import sys
-import gdb
+# Avoid generating
+# src/gdb/testsuite/gdb.python/__pycache__/gdb_leak_detector.cpython-<n>.pyc.
+sys.dont_write_bytecode = True
-# A global variable in which we store a reference to the memory buffer
-# returned from gdb.Inferior.read_memory().
-mem_buf = None
+import gdb_leak_detector
-# A global filters list, we only care about memory allocations
-# originating from this script.
-filters = [tracemalloc.Filter(True, "*" + os.path.basename(__file__))]
+class read_leak_detector(gdb_leak_detector.gdb_leak_detector):
+ def __init__(self):
+ super().__init__(__file__)
+ self.mem_buf = None
+ self.addr = gdb.parse_and_eval("px")
+ self.inf = gdb.inferiors()[0]
+ def allocate(self):
+ self.mem_buf = self.inf.read_memory(self.addr, 4096)
-# Run the test. When CLEAR is True we clear the global INF variable
-# before comparing the before and after memory allocation traces.
-# When CLEAR is False we leave INF set to reference the gdb.Inferior
-# object, thus preventing the gdb.Inferior from being deallocated.
-def test(clear):
- global filters, mem_buf
+ def deallocate(self):
+ self.mem_buf = None
- addr = gdb.parse_and_eval("px")
- inf = gdb.inferiors()[0]
- # Start tracing, and take a snapshot of the current allocations.
- tracemalloc.start()
- snapshot1 = tracemalloc.take_snapshot()
-
- # Read from the inferior, this allocate a memory buffer object.
- mem_buf = inf.read_memory(addr, 4096)
-
- # Possibly clear the global INF variable.
- if clear:
- mem_buf = None
-
- # Now grab a second snapshot of memory allocations, and stop
- # tracing memory allocations.
- snapshot2 = tracemalloc.take_snapshot()
- tracemalloc.stop()
-
- # Filter the snapshots; we only care about allocations originating
- # from this file.
- snapshot1 = snapshot1.filter_traces(filters)
- snapshot2 = snapshot2.filter_traces(filters)
-
- # Compare the snapshots, this leaves only things that were
- # allocated, but not deallocated since the first snapshot.
- stats = snapshot2.compare_to(snapshot1, "traceback")
-
- # Total up all the allocated things.
- total = 0
- for stat in stats:
- total += stat.size_diff
- return total
-
-
-# The first time we run this some global state will be allocated which
-# shows up as memory that is allocated, but not released. So, run the
-# test once and discard the result.
-test(True)
-
-# Now run the test twice, the first time we clear our global reference
-# to the memory buffer object, which should allow Python to deallocate
-# the object. The second time we hold onto the global reference,
-# preventing Python from performing the deallocation.
-bytes_with_clear = test(True)
-bytes_without_clear = test(False)
-
-# The bug that used to exist in GDB was that even when we released the
-# global reference the gdb.Inferior object would not be deallocated.
-if bytes_with_clear > 0:
- raise gdb.GdbError("memory leak when memory buffer should be released")
-if bytes_without_clear == 0:
- raise gdb.GdbError("memory buffer object is no longer allocated")
-
-# Print a PASS message that the test script can see.
-print("PASS")
+read_leak_detector().run()
diff --git a/gdb/testsuite/gdb.python/py-record-btrace-threads.c b/gdb/testsuite/gdb.python/py-record-btrace-threads.c
index 2c2ef32..5058ce1 100644
--- a/gdb/testsuite/gdb.python/py-record-btrace-threads.c
+++ b/gdb/testsuite/gdb.python/py-record-btrace-threads.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-record-btrace-threads.exp b/gdb/testsuite/gdb.python/py-record-btrace-threads.exp
index d723879..4a3b59fb 100644
--- a/gdb/testsuite/gdb.python/py-record-btrace-threads.exp
+++ b/gdb/testsuite/gdb.python/py-record-btrace-threads.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-record-btrace.c b/gdb/testsuite/gdb.python/py-record-btrace.c
index abc0dcf..10c0d41 100644
--- a/gdb/testsuite/gdb.python/py-record-btrace.c
+++ b/gdb/testsuite/gdb.python/py-record-btrace.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-record-btrace.exp b/gdb/testsuite/gdb.python/py-record-btrace.exp
index b035e14..aff7c6c 100644
--- a/gdb/testsuite/gdb.python/py-record-btrace.exp
+++ b/gdb/testsuite/gdb.python/py-record-btrace.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-record-full.c b/gdb/testsuite/gdb.python/py-record-full.c
index abc0dcf..10c0d41 100644
--- a/gdb/testsuite/gdb.python/py-record-full.c
+++ b/gdb/testsuite/gdb.python/py-record-full.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-record-full.exp b/gdb/testsuite/gdb.python/py-record-full.exp
index da38d1c..97d21ce 100644
--- a/gdb/testsuite/gdb.python/py-record-full.exp
+++ b/gdb/testsuite/gdb.python/py-record-full.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-recurse-unwind.c b/gdb/testsuite/gdb.python/py-recurse-unwind.c
index 1ecdaa2..573ee3c 100644
--- a/gdb/testsuite/gdb.python/py-recurse-unwind.c
+++ b/gdb/testsuite/gdb.python/py-recurse-unwind.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-recurse-unwind.exp b/gdb/testsuite/gdb.python/py-recurse-unwind.exp
index 1c22dc2..a1d1462 100644
--- a/gdb/testsuite/gdb.python/py-recurse-unwind.exp
+++ b/gdb/testsuite/gdb.python/py-recurse-unwind.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-recurse-unwind.py b/gdb/testsuite/gdb.python/py-recurse-unwind.py
index 0b0004b..244c693 100644
--- a/gdb/testsuite/gdb.python/py-recurse-unwind.py
+++ b/gdb/testsuite/gdb.python/py-recurse-unwind.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.cc b/gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.cc
index 3403797..e3f71d0 100644
--- a/gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.cc
+++ b/gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.exp b/gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.exp
index 7e6f0d0..2e92756 100644
--- a/gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.exp
+++ b/gdb/testsuite/gdb.python/py-rvalue-ref-value-cc.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-section-script.c b/gdb/testsuite/gdb.python/py-section-script.c
index 2d465c2..2d08cbc 100644
--- a/gdb/testsuite/gdb.python/py-section-script.c
+++ b/gdb/testsuite/gdb.python/py-section-script.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-section-script.exp b/gdb/testsuite/gdb.python/py-section-script.exp
index 206b8c6..cc4425c 100644
--- a/gdb/testsuite/gdb.python/py-section-script.exp
+++ b/gdb/testsuite/gdb.python/py-section-script.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-section-script.py b/gdb/testsuite/gdb.python/py-section-script.py
index 73230c9..d85221e 100644
--- a/gdb/testsuite/gdb.python/py-section-script.py
+++ b/gdb/testsuite/gdb.python/py-section-script.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-send-packet.c b/gdb/testsuite/gdb.python/py-send-packet.c
index 1c97790..abdb71b 100644
--- a/gdb/testsuite/gdb.python/py-send-packet.c
+++ b/gdb/testsuite/gdb.python/py-send-packet.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-send-packet.exp b/gdb/testsuite/gdb.python/py-send-packet.exp
index bbee5ac..6c2984f 100644
--- a/gdb/testsuite/gdb.python/py-send-packet.exp
+++ b/gdb/testsuite/gdb.python/py-send-packet.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-send-packet.py b/gdb/testsuite/gdb.python/py-send-packet.py
index 402b039..0a0b359 100644
--- a/gdb/testsuite/gdb.python/py-send-packet.py
+++ b/gdb/testsuite/gdb.python/py-send-packet.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-shared-sl.c b/gdb/testsuite/gdb.python/py-shared-sl.c
index be736c2..49032ad 100644
--- a/gdb/testsuite/gdb.python/py-shared-sl.c
+++ b/gdb/testsuite/gdb.python/py-shared-sl.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-shared.c b/gdb/testsuite/gdb.python/py-shared.c
index 4b23980..dc28f32 100644
--- a/gdb/testsuite/gdb.python/py-shared.c
+++ b/gdb/testsuite/gdb.python/py-shared.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-shared.exp b/gdb/testsuite/gdb.python/py-shared.exp
index 9be5aa4..d80e139 100644
--- a/gdb/testsuite/gdb.python/py-shared.exp
+++ b/gdb/testsuite/gdb.python/py-shared.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-source-styling-2.c b/gdb/testsuite/gdb.python/py-source-styling-2.c
new file mode 100644
index 0000000..aaa3d69
--- /dev/null
+++ b/gdb/testsuite/gdb.python/py-source-styling-2.c
@@ -0,0 +1,26 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+int
+main ()
+{ /* List this line. */
+ try
+ {}
+ catch (...)
+ {}
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.python/py-source-styling-2.exp b/gdb/testsuite/gdb.python/py-source-styling-2.exp
new file mode 100644
index 0000000..ebf7f32
--- /dev/null
+++ b/gdb/testsuite/gdb.python/py-source-styling-2.exp
@@ -0,0 +1,55 @@
+# Copyright (C) 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Compile a c++ file using a .c extension, and check that pygments uses c++
+# highlighting instead of c highlighting.
+
+require allow_python_tests
+
+load_lib gdb-python.exp
+
+standard_testfile py-source-styling-2.c
+
+set line_number [gdb_get_line_number "List this line."]
+
+set opts {}
+lappend opts debug
+lappend opts c++
+
+if { [build_executable "failed to build" $testfile $srcfile $opts] == -1 } {
+ return
+}
+
+with_ansi_styling_terminal {
+ clean_restart
+}
+
+gdb_test_no_output "maint set gnu-source-highlight enabled off"
+
+gdb_load $binfile
+
+require {gdb_py_module_available pygments}
+
+gdb_test_no_output "set style enabled on"
+
+gdb_test_multiple "list $line_number" "Styling of c++ keyword try" {
+ -re -wrap " try\r\n.*" {
+ # Unstyled.
+ fail $gdb_test_name
+ }
+ -re -wrap "" {
+ pass $gdb_test_name
+ }
+}
diff --git a/gdb/testsuite/gdb.python/py-source-styling.c b/gdb/testsuite/gdb.python/py-source-styling.c
index eda87a7..308da9c 100644
--- a/gdb/testsuite/gdb.python/py-source-styling.c
+++ b/gdb/testsuite/gdb.python/py-source-styling.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-source-styling.exp b/gdb/testsuite/gdb.python/py-source-styling.exp
index 7b5c1b0..308053c 100644
--- a/gdb/testsuite/gdb.python/py-source-styling.exp
+++ b/gdb/testsuite/gdb.python/py-source-styling.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -13,27 +13,66 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# This file is part of the GDB testsuite. It checks for memory leaks
-# associated with allocating and deallocation gdb.Inferior objects.
+# Test related to source code highlighting and Python. Includes a
+# test for using the Pygments module as a fall back to GNU source
+# highlight.
+#
+# This script also includes tests for handling a non-uft-8 character
+# with both Pygments highlighting, and with gdb.execute (when using
+# the list command).
+
+require allow_python_tests
load_lib gdb-python.exp
standard_testfile
-with_ansi_styling_terminal {
- # We need an ANSI-capable terminal to get the output, additionally
- # we need to set LC_ALL so GDB knows the terminal is UTF-8
- # capable, otherwise we'll get a UnicodeEncodeError trying to
- # encode the output.
- if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
- return -1
+if { [build_executable "failed to build" ${testfile} ${srcfile}] == -1 } {
+ return
+}
+
+set line_number [gdb_get_line_number "List this line."]
+
+# Helper proc. Run CMD, which should produce a source listing, and
+# check if the source code is styled or not. EXPECT_STYLED indicates
+# if we expect the source listing to be styled or not.
+proc check_source_listing_styling { cmd expect_styled { testname "" } } {
+ if { $testname eq "" } {
+ set testname $cmd
+ }
+
+ set seen_style_escape false
+ gdb_test_multiple $cmd $testname {
+ -re -wrap "Python Exception.*" {
+ fail $gdb_test_name
+ return
+ }
+ -re "\033" {
+ set seen_style_escape true
+ exp_continue
+ }
+ -re "$::gdb_prompt $" {
+ gdb_assert { $seen_style_escape == $expect_styled } \
+ $gdb_test_name
+ }
}
+}
- if { ![allow_python_tests] } { continue }
+# Check that the Python pygments module can be used for source
+# highlighting when GNU source highlight is not available (or is
+# disabled, as is done in this test).
+proc test_pygments_styling {} {
+ clean_restart $::binfile
+
+ # Remote host boards disable styling via GDB's command line. Turn
+ # it back on now.
+ if {[is_remote host]} {
+ gdb_test "set style enabled on"
+ }
if { ![gdb_py_module_available "pygments"] } {
unsupported "pygments module not available"
- return -1
+ return
}
if ![runto_main] {
@@ -44,19 +83,102 @@ with_ansi_styling_terminal {
gdb_test "maint flush source-cache" "Source cache flushed\\."
- set seen_style_escape false
- set line_number [gdb_get_line_number "List this line."]
- gdb_test_multiple "list ${line_number}" "" {
- -re "Python Exception.*" {
- fail $gdb_test_name
- }
- -re "\033" {
- set seen_style_escape true
- exp_continue
- }
- -re "$gdb_prompt $" {
- gdb_assert { $seen_style_escape }
- pass $gdb_test_name
- }
+ check_source_listing_styling "list $::line_number" true
+}
+
+# Use gdb.execute to list source code containing non-utf-8 character.
+# Check that initially GDB fails to convert the source code to a
+# string, then set the correct host encoding, and try again. This
+# time the conversion should succeed.
+proc test_gdb_execute_non_utf8_source {} {
+ clean_restart $::binfile
+
+ # The default host charset is utf-8, the source code contains a
+ # non-utf-8 character, so this will fail.
+ gdb_test \
+ "python source = gdb.execute('list $::line_number', True, True)" \
+ [multi_line \
+ "Python Exception <class 'UnicodeDecodeError'>: 'ascii' codec can't decode byte 0xc0 in position 250: ordinal not in range\\(128\\)" \
+ "Error occurred in Python: 'ascii' codec can't decode byte 0xc0 in position 250: ordinal not in range\\(128\\)"] \
+ "gdb.execute fails to convert result to string"
+
+ # Set the correct host charset, and try the conversion again.
+ gdb_test_no_output "set host-charset ISO-8859-1"
+ gdb_test_no_output \
+ "python source = gdb.execute('list $::line_number', True, True)" \
+ "gdb.execute does convert result to string"
+
+ # Check that we captured something that looks like the expected source.
+ gdb_test "python print(source)" ".*List this line.*"
+}
+
+# Use gdb.execute() to list source code. Alternate between asking for
+# styled, and unstyled source code. In some cases we ask for the
+# output to be returned via a string, and in other cases we ask for
+# the output to be sent straight to stdout.
+proc_with_prefix test_source_cache_style_tracking {} {
+ clean_restart $::binfile
+
+ # Remote host boards disable styling via GDB's command line. Turn
+ # it back on now.
+ if {[is_remote host]} {
+ gdb_test "set style enabled on"
+ }
+
+ gdb_test_no_output "set host-charset ISO-8859-1"
+
+ # Commands which return styled, and non-styled source code mixed
+ # together. This ensures that the source cache will need to keep
+ # discarding the entry with the wrong styling mode. All of these
+ # gdb.execute calls send their output via a string.
+ check_source_listing_styling \
+ "python print(gdb.execute('list $::line_number', to_string=True), end='')" \
+ false
+ check_source_listing_styling \
+ "python print(gdb.execute('list $::line_number', to_string=True, styling=True), end='')" \
+ true
+ foreach from_tty { True False } {
+ check_source_listing_styling \
+ "python print(gdb.execute('list $::line_number', $from_tty, True), end='')" \
+ false
+ check_source_listing_styling \
+ "python print(gdb.execute('list $::line_number', $from_tty, True, True), end='')" \
+ true
+ check_source_listing_styling \
+ "python print(gdb.execute('list $::line_number', $from_tty, True, False), end='')" \
+ false
}
+
+ # The same again, but this time the output is sent directly to
+ # stdout.
+ check_source_listing_styling \
+ "python gdb.execute('list $::line_number')" \
+ true
+ check_source_listing_styling \
+ "python gdb.execute('list $::line_number', to_string=False, styling=False)" \
+ false
+ check_source_listing_styling \
+ "python gdb.execute('list $::line_number', to_string=False, styling=True)" \
+ true
+ foreach from_tty { True False } {
+ check_source_listing_styling \
+ "python gdb.execute('list $::line_number', $from_tty, False, False)" \
+ false
+ check_source_listing_styling \
+ "python gdb.execute('list $::line_number', $from_tty, False, True)" \
+ true
+ check_source_listing_styling \
+ "python gdb.execute('list $::line_number', $from_tty, False)" \
+ true
+ }
+}
+
+# We need an ANSI-capable terminal to get the output, additionally we
+# need to set LC_ALL so GDB knows the terminal is UTF-8 capable,
+# otherwise we'll get a UnicodeEncodeError trying to encode the
+# output.
+with_ansi_styling_terminal {
+ test_pygments_styling
+ test_gdb_execute_non_utf8_source
+ test_source_cache_style_tracking
}
diff --git a/gdb/testsuite/gdb.python/py-startup-opt.exp b/gdb/testsuite/gdb.python/py-startup-opt.exp
index 038814a..7410706 100644
--- a/gdb/testsuite/gdb.python/py-startup-opt.exp
+++ b/gdb/testsuite/gdb.python/py-startup-opt.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-strfns.c b/gdb/testsuite/gdb.python/py-strfns.c
index 21988fe..c3b846d 100644
--- a/gdb/testsuite/gdb.python/py-strfns.c
+++ b/gdb/testsuite/gdb.python/py-strfns.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-strfns.exp b/gdb/testsuite/gdb.python/py-strfns.exp
index e8180ac..2b5dff19 100644
--- a/gdb/testsuite/gdb.python/py-strfns.exp
+++ b/gdb/testsuite/gdb.python/py-strfns.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-styled-execute.exp b/gdb/testsuite/gdb.python/py-styled-execute.exp
new file mode 100644
index 0000000..0b27c63
--- /dev/null
+++ b/gdb/testsuite/gdb.python/py-styled-execute.exp
@@ -0,0 +1,109 @@
+# Copyright (C) 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Check the the output of gdb.execute can be styled or not depending
+# on the value of the third argument passed to gdb.execute.
+
+require allow_python_tests
+
+load_lib gdb-python.exp
+
+# Use gdb.execute() to run CMD passing different argument values. The
+# output should match either STYLED_RE or UNSTYLED_RE depending on
+# whether the 'styling' argument is True or False.
+proc do_gdb_execute { cmd styled_re unstyled_re } {
+ gdb_test "python gdb.execute('$cmd')" $styled_re
+
+ foreach from_tty { True False } {
+ gdb_test \
+ "python gdb.execute('$cmd', $from_tty)" \
+ $styled_re
+ gdb_test \
+ "python gdb.execute('$cmd', $from_tty, False)" \
+ $styled_re
+ gdb_test \
+ "python gdb.execute('$cmd', $from_tty, False, True)" \
+ $styled_re
+ gdb_test \
+ "python gdb.execute('$cmd', $from_tty, False, False)" \
+ $unstyled_re
+ gdb_test \
+ "python print(gdb.execute('$cmd', $from_tty, True), end='')" \
+ $unstyled_re
+ gdb_test \
+ "python print(gdb.execute('$cmd', $from_tty, True, False), end='')" \
+ $unstyled_re
+ gdb_test \
+ "python print(gdb.execute('$cmd', $from_tty, True, True), end='')" \
+ $styled_re
+ }
+}
+
+# Test that the output from gdb.execute is styled or not based on the
+# arguments passed in.
+proc test_gdb_execute_styling {} {
+ clean_restart
+
+ # Two possible outputs, BASIC_RE, the unstyled output text, or
+ # STYLED_RE, the same things, but with styling applied.
+ set text "\"version\" style"
+ set styled_text \
+ [style "\"" version][style "version" version][style "\" style" version]
+ set basic_re "The $text foreground color is: \[^\r\n\]+"
+ set styled_re "The $styled_text foreground color is: \[^\r\n\]+"
+
+ # The command we'll run. It's output matches the above regexp.
+ set show_style_version_cmd "show style version foreground"
+
+ # Another command we'll run. The output of this command is never
+ # styled, but we run this to check that the output doesn't change
+ # even when gdb.execute() asks for styled, or unstyled output.
+ set show_style_enabled_cmd "show style enabled"
+
+ with_test_prefix "with style enabled on" {
+ do_gdb_execute $show_style_version_cmd $styled_re $basic_re
+
+ # This time, print the value of 'show style enabled'. This
+ # output is unstyled, so there's only one regexp. The
+ # interesting thing here is that we don't expect the output to
+ # change, even when gdb.execute() is printing unstyled output.
+ # The "styling=False" argument to gdb.execute() is separate to
+ # the 'set style enabled on|off' setting.
+ set re "CLI output styling is enabled\\."
+ do_gdb_execute $show_style_enabled_cmd $re $re
+ }
+
+ gdb_test_no_output "set style enabled off"
+
+ with_test_prefix "with style enabled off" {
+ # With 'set style enabled off' in use, even a request to
+ # gdb.execute() to produce styled output should produce
+ # unstyled output. The assumption is that 'set style enabled
+ # off' is done by the user, while the gdb.execute() is likely
+ # from some Python extension. The users request for no
+ # styling overrules the extensions request for styled output.
+ do_gdb_execute $show_style_version_cmd $basic_re $basic_re
+
+ # Now check that even when we request styled output, the 'show
+ # style enabled' value is always reported as disabled.
+ set re "CLI output styling is disabled\\."
+ do_gdb_execute $show_style_enabled_cmd $re $re
+ }
+}
+
+# Run the tests.
+with_ansi_styling_terminal {
+ test_gdb_execute_styling
+}
diff --git a/gdb/testsuite/gdb.python/py-sym-artificial.exp b/gdb/testsuite/gdb.python/py-sym-artificial.exp
index 3ae516c..e26e9d2 100644
--- a/gdb/testsuite/gdb.python/py-sym-artificial.exp
+++ b/gdb/testsuite/gdb.python/py-sym-artificial.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-symbol-2.c b/gdb/testsuite/gdb.python/py-symbol-2.c
index c895159..806bcca 100644
--- a/gdb/testsuite/gdb.python/py-symbol-2.c
+++ b/gdb/testsuite/gdb.python/py-symbol-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-symbol-3.c b/gdb/testsuite/gdb.python/py-symbol-3.c
index 6a95193..181c3fc 100644
--- a/gdb/testsuite/gdb.python/py-symbol-3.c
+++ b/gdb/testsuite/gdb.python/py-symbol-3.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-symbol.c b/gdb/testsuite/gdb.python/py-symbol.c
index b6b2cd6..41cc60d 100644
--- a/gdb/testsuite/gdb.python/py-symbol.c
+++ b/gdb/testsuite/gdb.python/py-symbol.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-symbol.exp b/gdb/testsuite/gdb.python/py-symbol.exp
index 40f9038..55cdebe 100644
--- a/gdb/testsuite/gdb.python/py-symbol.exp
+++ b/gdb/testsuite/gdb.python/py-symbol.exp
@@ -149,10 +149,12 @@ gdb_breakpoint "function_in_other_file"
gdb_continue_to_breakpoint "function_in_other_file"
gdb_test "python print (gdb.lookup_static_symbol ('rr').value ())" "99" \
"print value of rr from other file"
-gdb_test "python print (gdb.lookup_static_symbols ('rr')\[0\].value ())" "99" \
- "print value of gdb.lookup_static_symbols ('rr')\[0\], from the other file"
-gdb_test "python print (gdb.lookup_static_symbols ('rr')\[1\].value ())" "42" \
- "print value of gdb.lookup_static_symbols ('rr')\[1\], from the other file"
+# GDB doesn't really guarantee the order of these, so sort the values.
+gdb_test_no_output "python rrs = gdb.lookup_static_symbols ('rr')" \
+ "fetch all rr symbols, from the other file"
+gdb_test "python print (sorted(\[int(x.value()) for x in rrs\]))" \
+ "\\\[42, 99\\\]" \
+ "print values of all 'rr' symbols, from the other file"
# Now continue back to the first source file.
set linenum [gdb_get_line_number "Break at end."]
@@ -164,10 +166,12 @@ gdb_py_test_silent_cmd "python frame = gdb.selected_frame()" "Get Frame" 0
# static symbol from the second source file.
gdb_test "python print (gdb.lookup_static_symbol ('rr').value ())" "42" \
"print value of rr from main file"
-gdb_test "python print (gdb.lookup_static_symbols ('rr')\[0\].value ())" "99" \
- "print value of gdb.lookup_static_symbols ('rr')\[0\], from the main file"
-gdb_test "python print (gdb.lookup_static_symbols ('rr')\[1\].value ())" "42" \
- "print value of gdb.lookup_static_symbols ('rr')\[1\], from the main file"
+# This should be consistent with the first file.
+gdb_test_no_output "python rrs = gdb.lookup_static_symbols ('rr')" \
+ "fetch all rr symbols, from the main file"
+gdb_test "python print (sorted(\[int(x.value()) for x in rrs\]))" \
+ "\\\[42, 99\\\]" \
+ "print values of all 'rr' symbols, from the main file"
# Test is_variable attribute.
gdb_py_test_silent_cmd "python a = gdb.lookup_symbol(\'a\')" "Get variable a" 0
diff --git a/gdb/testsuite/gdb.python/py-symtab.exp b/gdb/testsuite/gdb.python/py-symtab.exp
index 4765ef5..a4891f3 100644
--- a/gdb/testsuite/gdb.python/py-symtab.exp
+++ b/gdb/testsuite/gdb.python/py-symtab.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -90,6 +90,34 @@ gdb_test_multiple "python print (\"simple_struct\" in static_symbols)" \
}
}
+# Test symtab identity
+gdb_test "python print (symtab is symtab)"\
+ "True" \
+ "test symtab identity 1"
+gdb_test "python print (symtab is gdb.selected_frame().find_sal().symtab)"\
+ "True" \
+ "test symtab identity 2"
+gdb_test "python print (sal.symtab is gdb.selected_frame().find_sal().symtab)"\
+ "True" \
+ "test symtab identity 3"
+gdb_test "python print (symtab is not \"xxx\")"\
+ "True" \
+ "test symtab non-identity with non-symtab"
+
+# Test symtab equality
+gdb_test "python print (symtab == symtab)"\
+ "True" \
+ "test symtab equality 1"
+gdb_test "python print (symtab == gdb.selected_frame().find_sal().symtab)"\
+ "True" \
+ "test symtab equality 2"
+gdb_test "python print (sal.symtab == gdb.selected_frame().find_sal().symtab)"\
+ "True" \
+ "test symtab equality 3"
+gdb_test "python print (symtab != \"xxx\")"\
+ "True" \
+ "test symtab non-equality with non-symtab"
+
# Test is_valid when the objfile is unloaded. This must be the last
# test as it unloads the object file in GDB.
gdb_unload
diff --git a/gdb/testsuite/gdb.python/py-sync-interp.c b/gdb/testsuite/gdb.python/py-sync-interp.c
index 9dabd28..f5fef95 100644
--- a/gdb/testsuite/gdb.python/py-sync-interp.c
+++ b/gdb/testsuite/gdb.python/py-sync-interp.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-sync-interp.exp b/gdb/testsuite/gdb.python/py-sync-interp.exp
index 9db7853..ea91cb2 100644
--- a/gdb/testsuite/gdb.python/py-sync-interp.exp
+++ b/gdb/testsuite/gdb.python/py-sync-interp.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-template.cc b/gdb/testsuite/gdb.python/py-template.cc
index 73b4982..4c306ac 100644
--- a/gdb/testsuite/gdb.python/py-template.cc
+++ b/gdb/testsuite/gdb.python/py-template.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-template.exp b/gdb/testsuite/gdb.python/py-template.exp
index bba80e3..a0f9d80 100644
--- a/gdb/testsuite/gdb.python/py-template.exp
+++ b/gdb/testsuite/gdb.python/py-template.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-thread-exited.c b/gdb/testsuite/gdb.python/py-thread-exited.c
index 3af93f9..dd859ce 100644
--- a/gdb/testsuite/gdb.python/py-thread-exited.c
+++ b/gdb/testsuite/gdb.python/py-thread-exited.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-thread-exited.exp b/gdb/testsuite/gdb.python/py-thread-exited.exp
index dda8470..dcacb11 100644
--- a/gdb/testsuite/gdb.python/py-thread-exited.exp
+++ b/gdb/testsuite/gdb.python/py-thread-exited.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-thread-exited.py b/gdb/testsuite/gdb.python/py-thread-exited.py
index f813271..ef5a244 100644
--- a/gdb/testsuite/gdb.python/py-thread-exited.py
+++ b/gdb/testsuite/gdb.python/py-thread-exited.py
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-thrhandle.c b/gdb/testsuite/gdb.python/py-thrhandle.c
index f6dd6d2..69c0aaf 100644
--- a/gdb/testsuite/gdb.python/py-thrhandle.c
+++ b/gdb/testsuite/gdb.python/py-thrhandle.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-thrhandle.exp b/gdb/testsuite/gdb.python/py-thrhandle.exp
index 702a3a5..343bf4b 100644
--- a/gdb/testsuite/gdb.python/py-thrhandle.exp
+++ b/gdb/testsuite/gdb.python/py-thrhandle.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-type.c b/gdb/testsuite/gdb.python/py-type.c
index 7a0df8a..cc5fcb2 100644
--- a/gdb/testsuite/gdb.python/py-type.c
+++ b/gdb/testsuite/gdb.python/py-type.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-type.exp b/gdb/testsuite/gdb.python/py-type.exp
index 7e469c9..0bc4556 100644
--- a/gdb/testsuite/gdb.python/py-type.exp
+++ b/gdb/testsuite/gdb.python/py-type.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -324,6 +324,19 @@ proc test_type_equality {} {
}
}
+# Test type identity
+proc test_type_identity {} {
+ gdb_test_no_output "python v1 = gdb.parse_and_eval('global_unsigned_int')"
+ gdb_test_no_output "python v2 = gdb.parse_and_eval('global_unsigned_int')"
+
+ gdb_test "python print(v1.type is v2.type)" "True"
+
+ gdb_test_no_output "python t1 = gdb.lookup_type ('char')"
+ gdb_test_no_output "python t2 = gdb.lookup_type ('char')"
+
+ gdb_test "python print(t1 is t2)" "True"
+}
+
# Test the gdb.Type.is_scalar property.
proc test_is_scalar { lang } {
if {$lang == "c++"} {
@@ -376,6 +389,7 @@ if { [build_inferior "${binfile}" "c"] == 0 } {
test_is_scalar "c"
test_is_signed "c"
test_type_equality
+ test_type_identity
}
}
@@ -392,6 +406,7 @@ if { [build_inferior "${binfile}-cxx" "c++"] == 0 } {
test_is_scalar "c++"
test_is_signed "c++"
test_type_equality
+ test_type_identity
}
}
diff --git a/gdb/testsuite/gdb.python/py-typeprint.cc b/gdb/testsuite/gdb.python/py-typeprint.cc
index af06b54..b77bd8a 100644
--- a/gdb/testsuite/gdb.python/py-typeprint.cc
+++ b/gdb/testsuite/gdb.python/py-typeprint.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-typeprint.exp b/gdb/testsuite/gdb.python/py-typeprint.exp
index 5fafe26..74d755f 100644
--- a/gdb/testsuite/gdb.python/py-typeprint.exp
+++ b/gdb/testsuite/gdb.python/py-typeprint.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-typeprint.py b/gdb/testsuite/gdb.python/py-typeprint.py
index 0fd2f0e..dc13210 100644
--- a/gdb/testsuite/gdb.python/py-typeprint.py
+++ b/gdb/testsuite/gdb.python/py-typeprint.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-unwind-inline.c b/gdb/testsuite/gdb.python/py-unwind-inline.c
index 6511a6b..1143e52 100644
--- a/gdb/testsuite/gdb.python/py-unwind-inline.c
+++ b/gdb/testsuite/gdb.python/py-unwind-inline.c
@@ -1,4 +1,4 @@
-/* Copyright 2019-2024 Free Software Foundation, Inc.
+/* Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-unwind-inline.exp b/gdb/testsuite/gdb.python/py-unwind-inline.exp
index 1ba1c14..74d4ead 100644
--- a/gdb/testsuite/gdb.python/py-unwind-inline.exp
+++ b/gdb/testsuite/gdb.python/py-unwind-inline.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-unwind-inline.py b/gdb/testsuite/gdb.python/py-unwind-inline.py
index b0a8083..ca6b16e 100644
--- a/gdb/testsuite/gdb.python/py-unwind-inline.py
+++ b/gdb/testsuite/gdb.python/py-unwind-inline.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-unwind-maint.c b/gdb/testsuite/gdb.python/py-unwind-maint.c
index 80dc9d9..1b99849 100644
--- a/gdb/testsuite/gdb.python/py-unwind-maint.c
+++ b/gdb/testsuite/gdb.python/py-unwind-maint.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-unwind-maint.exp b/gdb/testsuite/gdb.python/py-unwind-maint.exp
index 9e525f6..d9450ef 100644
--- a/gdb/testsuite/gdb.python/py-unwind-maint.exp
+++ b/gdb/testsuite/gdb.python/py-unwind-maint.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-unwind-maint.py b/gdb/testsuite/gdb.python/py-unwind-maint.py
index 1d049a9..4a109d5 100644
--- a/gdb/testsuite/gdb.python/py-unwind-maint.py
+++ b/gdb/testsuite/gdb.python/py-unwind-maint.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-unwind-user-regs.c b/gdb/testsuite/gdb.python/py-unwind-user-regs.c
index be7b2fd..edd9284 100644
--- a/gdb/testsuite/gdb.python/py-unwind-user-regs.c
+++ b/gdb/testsuite/gdb.python/py-unwind-user-regs.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-unwind-user-regs.exp b/gdb/testsuite/gdb.python/py-unwind-user-regs.exp
index b27e038..1a464f0 100644
--- a/gdb/testsuite/gdb.python/py-unwind-user-regs.exp
+++ b/gdb/testsuite/gdb.python/py-unwind-user-regs.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-unwind-user-regs.py b/gdb/testsuite/gdb.python/py-unwind-user-regs.py
index 7e331a8..c6a56b8 100644
--- a/gdb/testsuite/gdb.python/py-unwind-user-regs.py
+++ b/gdb/testsuite/gdb.python/py-unwind-user-regs.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-unwind.c b/gdb/testsuite/gdb.python/py-unwind.c
index 81132f4..f785c5e 100644
--- a/gdb/testsuite/gdb.python/py-unwind.c
+++ b/gdb/testsuite/gdb.python/py-unwind.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-unwind.exp b/gdb/testsuite/gdb.python/py-unwind.exp
index d5efc02..b416c2f 100644
--- a/gdb/testsuite/gdb.python/py-unwind.exp
+++ b/gdb/testsuite/gdb.python/py-unwind.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -245,6 +245,13 @@ with_test_prefix "frame-id 'pc' is invalid" {
"Python Exception <class 'ValueError'>: invalid literal for int\\(\\) with base 10: 'xyz'\r\n.*"
}
+with_test_prefix "bad object unwinder" {
+ gdb_test_no_output "python obj = bad_object_unwinder(\"bad-object\")"
+ gdb_test_no_output "python gdb.unwinder.register_unwinder(None, obj, replace=True)"
+ gdb_test "backtrace" \
+ "Python Exception <class 'gdb.error'>: an Unwinder should return gdb.UnwindInfo, not Blah\\.\r\n.*"
+}
+
# Gather information about every frame.
gdb_test_no_output "python capture_all_frame_information()"
gdb_test_no_output "python gdb.newest_frame().select()"
diff --git a/gdb/testsuite/gdb.python/py-unwind.py b/gdb/testsuite/gdb.python/py-unwind.py
index 62bfb09..0faccf2 100644
--- a/gdb/testsuite/gdb.python/py-unwind.py
+++ b/gdb/testsuite/gdb.python/py-unwind.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -267,4 +267,24 @@ class validating_unwinder(Unwinder):
return None
+class bad_object_unwinder(Unwinder):
+ def __init__(self, name):
+ super().__init__(name)
+
+ def __call__(self, pending_frame):
+
+ if pending_frame.level() != 1:
+ return None
+
+ class Blah:
+ def __init__(self):
+ pass
+
+ @property
+ def __class__(self):
+ raise RuntimeError("error in Blah.__class__")
+
+ return Blah()
+
+
print("Python script imported")
diff --git a/gdb/testsuite/gdb.python/py-value-cc.cc b/gdb/testsuite/gdb.python/py-value-cc.cc
index 08b9915..1a70943 100644
--- a/gdb/testsuite/gdb.python/py-value-cc.cc
+++ b/gdb/testsuite/gdb.python/py-value-cc.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-value-cc.exp b/gdb/testsuite/gdb.python/py-value-cc.exp
index b096c75..3d371bc 100644
--- a/gdb/testsuite/gdb.python/py-value-cc.exp
+++ b/gdb/testsuite/gdb.python/py-value-cc.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-value.c b/gdb/testsuite/gdb.python/py-value.c
index c9da6c2..a822346 100644
--- a/gdb/testsuite/gdb.python/py-value.c
+++ b/gdb/testsuite/gdb.python/py-value.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-value.exp b/gdb/testsuite/gdb.python/py-value.exp
index 8ab867a..93985a9 100644
--- a/gdb/testsuite/gdb.python/py-value.exp
+++ b/gdb/testsuite/gdb.python/py-value.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-varobj.c b/gdb/testsuite/gdb.python/py-varobj.c
index da72f9a..6117b35 100644
--- a/gdb/testsuite/gdb.python/py-varobj.c
+++ b/gdb/testsuite/gdb.python/py-varobj.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-varobj.exp b/gdb/testsuite/gdb.python/py-varobj.exp
index 4e0e64e..7fb45f9 100644
--- a/gdb/testsuite/gdb.python/py-varobj.exp
+++ b/gdb/testsuite/gdb.python/py-varobj.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.python/py-varobj.py b/gdb/testsuite/gdb.python/py-varobj.py
index 9401514..3699bdf 100644
--- a/gdb/testsuite/gdb.python/py-varobj.py
+++ b/gdb/testsuite/gdb.python/py-varobj.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.python/py-warning.exp b/gdb/testsuite/gdb.python/py-warning.exp
new file mode 100644
index 0000000..b0256fa
--- /dev/null
+++ b/gdb/testsuite/gdb.python/py-warning.exp
@@ -0,0 +1,46 @@
+# Copyright (C) 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Test the gdb.warning() function.
+
+load_lib gdb-python.exp
+
+require allow_python_tests
+
+clean_restart
+
+# Basic usage.
+gdb_test "python gdb.warning(\"some text\")" \
+ "warning: some text"
+
+# Basic usage with named argument.
+gdb_test "python gdb.warning(text=\"a warning message\")" \
+ "warning: a warning message"
+
+# Make sure GDB prints format specifiers correctly.
+gdb_test "python gdb.warning(\"%s %d %p\")" \
+ "warning: %s %d %p"
+
+# Empty string gives an error.
+gdb_test "python gdb.warning(\"\")" \
+ [multi_line \
+ "Python Exception <class 'ValueError'>: Empty text string passed to gdb\\.warning" \
+ "Error occurred in Python: Empty text string passed to gdb\\.warning"]
+
+# Missing argument gives an error.
+gdb_test "python gdb.warning()" \
+ [multi_line \
+ "Python Exception <class 'TypeError'>: function missing required argument 'text' \\(pos 1\\)" \
+ "Error occurred in Python: function missing required argument 'text' \\(pos 1\\)"]
diff --git a/gdb/testsuite/gdb.python/py-watchpoint.c b/gdb/testsuite/gdb.python/py-watchpoint.c
index 05748b0..9b05601 100644
--- a/gdb/testsuite/gdb.python/py-watchpoint.c
+++ b/gdb/testsuite/gdb.python/py-watchpoint.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-watchpoint.exp b/gdb/testsuite/gdb.python/py-watchpoint.exp
index 9361956..ea21020 100644
--- a/gdb/testsuite/gdb.python/py-watchpoint.exp
+++ b/gdb/testsuite/gdb.python/py-watchpoint.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-watchpoint.py b/gdb/testsuite/gdb.python/py-watchpoint.py
index dbb2bfe..d25826f 100644
--- a/gdb/testsuite/gdb.python/py-watchpoint.py
+++ b/gdb/testsuite/gdb.python/py-watchpoint.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-xmethods.cc b/gdb/testsuite/gdb.python/py-xmethods.cc
index 52fa2ff..336762e 100644
--- a/gdb/testsuite/gdb.python/py-xmethods.cc
+++ b/gdb/testsuite/gdb.python/py-xmethods.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -137,7 +137,7 @@ G<T>::mul (const T1 t1)
return t1 * t;
}
-} // namespace dop
+} /* namespace dop */
using namespace dop;
diff --git a/gdb/testsuite/gdb.python/py-xmethods.exp b/gdb/testsuite/gdb.python/py-xmethods.exp
index 55ec66c..3dafe0e 100644
--- a/gdb/testsuite/gdb.python/py-xmethods.exp
+++ b/gdb/testsuite/gdb.python/py-xmethods.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/py-xmethods.py b/gdb/testsuite/gdb.python/py-xmethods.py
index a2b8d57..33bc41a 100644
--- a/gdb/testsuite/gdb.python/py-xmethods.py
+++ b/gdb/testsuite/gdb.python/py-xmethods.py
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/python-1.c b/gdb/testsuite/gdb.python/python-1.c
index be736c2..49032ad 100644
--- a/gdb/testsuite/gdb.python/python-1.c
+++ b/gdb/testsuite/gdb.python/python-1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/python.c b/gdb/testsuite/gdb.python/python.c
index fda271e..501b25f 100644
--- a/gdb/testsuite/gdb.python/python.c
+++ b/gdb/testsuite/gdb.python/python.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/python.exp b/gdb/testsuite/gdb.python/python.exp
index 19c8958..6b2f671 100644
--- a/gdb/testsuite/gdb.python/python.exp
+++ b/gdb/testsuite/gdb.python/python.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/source1 b/gdb/testsuite/gdb.python/source1
index 6d457b5..b704d92 100644
--- a/gdb/testsuite/gdb.python/source1
+++ b/gdb/testsuite/gdb.python/source1
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/source2.py b/gdb/testsuite/gdb.python/source2.py
index 79dc1c2..7ca0bb2 100644
--- a/gdb/testsuite/gdb.python/source2.py
+++ b/gdb/testsuite/gdb.python/source2.py
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/sys-exit.exp b/gdb/testsuite/gdb.python/sys-exit.exp
index 3396b8d..878cf93 100644
--- a/gdb/testsuite/gdb.python/sys-exit.exp
+++ b/gdb/testsuite/gdb.python/sys-exit.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/tui-window-disabled.c b/gdb/testsuite/gdb.python/tui-window-disabled.c
index 538c9e8..ed650ca 100644
--- a/gdb/testsuite/gdb.python/tui-window-disabled.c
+++ b/gdb/testsuite/gdb.python/tui-window-disabled.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/tui-window-disabled.exp b/gdb/testsuite/gdb.python/tui-window-disabled.exp
index 750520c..afc9570 100644
--- a/gdb/testsuite/gdb.python/tui-window-disabled.exp
+++ b/gdb/testsuite/gdb.python/tui-window-disabled.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/tui-window-disabled.py b/gdb/testsuite/gdb.python/tui-window-disabled.py
index aef6f2a..8d140c4 100644
--- a/gdb/testsuite/gdb.python/tui-window-disabled.py
+++ b/gdb/testsuite/gdb.python/tui-window-disabled.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/tui-window-factory.exp b/gdb/testsuite/gdb.python/tui-window-factory.exp
index 5d8189d..4780fe4 100644
--- a/gdb/testsuite/gdb.python/tui-window-factory.exp
+++ b/gdb/testsuite/gdb.python/tui-window-factory.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/tui-window-factory.py b/gdb/testsuite/gdb.python/tui-window-factory.py
index edd39a4..7593214 100644
--- a/gdb/testsuite/gdb.python/tui-window-factory.py
+++ b/gdb/testsuite/gdb.python/tui-window-factory.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/tui-window-names.exp b/gdb/testsuite/gdb.python/tui-window-names.exp
index 8236fc9..2a8db69 100644
--- a/gdb/testsuite/gdb.python/tui-window-names.exp
+++ b/gdb/testsuite/gdb.python/tui-window-names.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/tui-window.exp b/gdb/testsuite/gdb.python/tui-window.exp
index c521dcc..744a09a 100644
--- a/gdb/testsuite/gdb.python/tui-window.exp
+++ b/gdb/testsuite/gdb.python/tui-window.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.python/tui-window.py b/gdb/testsuite/gdb.python/tui-window.py
index 0661acc..d03a8ce 100644
--- a/gdb/testsuite/gdb.python/tui-window.py
+++ b/gdb/testsuite/gdb.python/tui-window.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.replay/connect.exp b/gdb/testsuite/gdb.replay/connect.exp
index 5790d38..26b7aa3 100644
--- a/gdb/testsuite/gdb.replay/connect.exp
+++ b/gdb/testsuite/gdb.replay/connect.exp
@@ -13,7 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. */
#
-# Starts a communication with gdbsever setting the remotelog file.
+# Starts a communication with gdbserver setting the remotelog file.
# Modifies the remotelog with update_log proc, injects an error message
# instead of the expected replay to the vMustReplyEmpty packet in order
# to test GDB reacts to the error response properly. After the remotelog
diff --git a/gdb/testsuite/gdb.reverse/aarch64-mops.c b/gdb/testsuite/gdb.reverse/aarch64-mops.c
index 95318fe..2a07e37 100644
--- a/gdb/testsuite/gdb.reverse/aarch64-mops.c
+++ b/gdb/testsuite/gdb.reverse/aarch64-mops.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/aarch64-mops.exp b/gdb/testsuite/gdb.reverse/aarch64-mops.exp
index 05a991d..0f447a6 100644
--- a/gdb/testsuite/gdb.reverse/aarch64-mops.exp
+++ b/gdb/testsuite/gdb.reverse/aarch64-mops.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.S b/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.S
index 0362feb..72c3691 100644
--- a/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.S
+++ b/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.c b/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.c
index ed982eb..7412669 100644
--- a/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.c
+++ b/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.exp b/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.exp
index 9775c99..56ebb92 100644
--- a/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/amd64-tailcall-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/break-precsave.exp b/gdb/testsuite/gdb.reverse/break-precsave.exp
index 6d9b312..c04f4ac 100644
--- a/gdb/testsuite/gdb.reverse/break-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/break-precsave.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/break-reverse.c b/gdb/testsuite/gdb.reverse/break-reverse.c
index 1c27c72..dfe0593 100644
--- a/gdb/testsuite/gdb.reverse/break-reverse.c
+++ b/gdb/testsuite/gdb.reverse/break-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/break-reverse.exp b/gdb/testsuite/gdb.reverse/break-reverse.exp
index 66e9712..02c38ac 100644
--- a/gdb/testsuite/gdb.reverse/break-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/break-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/consecutive-precsave.exp b/gdb/testsuite/gdb.reverse/consecutive-precsave.exp
index 134d85b..2cb139d 100644
--- a/gdb/testsuite/gdb.reverse/consecutive-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/consecutive-precsave.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/consecutive-reverse.c b/gdb/testsuite/gdb.reverse/consecutive-reverse.c
index 778b311..1d01d16 100644
--- a/gdb/testsuite/gdb.reverse/consecutive-reverse.c
+++ b/gdb/testsuite/gdb.reverse/consecutive-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/consecutive-reverse.exp b/gdb/testsuite/gdb.reverse/consecutive-reverse.exp
index f5cbe06..27f2b72 100644
--- a/gdb/testsuite/gdb.reverse/consecutive-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/consecutive-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/finish-precsave.exp b/gdb/testsuite/gdb.reverse/finish-precsave.exp
index fe77e36..596b40d 100644
--- a/gdb/testsuite/gdb.reverse/finish-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/finish-precsave.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/finish-reverse-bkpt.c b/gdb/testsuite/gdb.reverse/finish-reverse-bkpt.c
index f7a1bbf..f52f983 100644
--- a/gdb/testsuite/gdb.reverse/finish-reverse-bkpt.c
+++ b/gdb/testsuite/gdb.reverse/finish-reverse-bkpt.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp b/gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp
index e1137f6..1e92252 100644
--- a/gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp
+++ b/gdb/testsuite/gdb.reverse/finish-reverse-bkpt.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/finish-reverse-next.c b/gdb/testsuite/gdb.reverse/finish-reverse-next.c
index 6072409..5a46210 100644
--- a/gdb/testsuite/gdb.reverse/finish-reverse-next.c
+++ b/gdb/testsuite/gdb.reverse/finish-reverse-next.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/finish-reverse-next.exp b/gdb/testsuite/gdb.reverse/finish-reverse-next.exp
index 73a4124..f744e9c 100644
--- a/gdb/testsuite/gdb.reverse/finish-reverse-next.exp
+++ b/gdb/testsuite/gdb.reverse/finish-reverse-next.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/finish-reverse.c b/gdb/testsuite/gdb.reverse/finish-reverse.c
index 82a7911..f4487df 100644
--- a/gdb/testsuite/gdb.reverse/finish-reverse.c
+++ b/gdb/testsuite/gdb.reverse/finish-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/finish-reverse.exp b/gdb/testsuite/gdb.reverse/finish-reverse.exp
index 470a58d..f90a79f 100644
--- a/gdb/testsuite/gdb.reverse/finish-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/finish-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/fstatat-reverse.c b/gdb/testsuite/gdb.reverse/fstatat-reverse.c
index bd8c4e3..d46fe91 100644
--- a/gdb/testsuite/gdb.reverse/fstatat-reverse.c
+++ b/gdb/testsuite/gdb.reverse/fstatat-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/fstatat-reverse.exp b/gdb/testsuite/gdb.reverse/fstatat-reverse.exp
index 396d40e..76bd8a2 100644
--- a/gdb/testsuite/gdb.reverse/fstatat-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/fstatat-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/func-map-to-same-line.c b/gdb/testsuite/gdb.reverse/func-map-to-same-line.c
index c88ad70..61b1efc 100644
--- a/gdb/testsuite/gdb.reverse/func-map-to-same-line.c
+++ b/gdb/testsuite/gdb.reverse/func-map-to-same-line.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/func-map-to-same-line.exp b/gdb/testsuite/gdb.reverse/func-map-to-same-line.exp
index 8f933eb..6c32d86 100644
--- a/gdb/testsuite/gdb.reverse/func-map-to-same-line.exp
+++ b/gdb/testsuite/gdb.reverse/func-map-to-same-line.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/getrandom.c b/gdb/testsuite/gdb.reverse/getrandom.c
index 532b549..e266c01 100644
--- a/gdb/testsuite/gdb.reverse/getrandom.c
+++ b/gdb/testsuite/gdb.reverse/getrandom.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/getrandom.exp b/gdb/testsuite/gdb.reverse/getrandom.exp
index 572356b..62640af 100644
--- a/gdb/testsuite/gdb.reverse/getrandom.exp
+++ b/gdb/testsuite/gdb.reverse/getrandom.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/getresuid-reverse.c b/gdb/testsuite/gdb.reverse/getresuid-reverse.c
index 6f4b8f8..f73947b 100644
--- a/gdb/testsuite/gdb.reverse/getresuid-reverse.c
+++ b/gdb/testsuite/gdb.reverse/getresuid-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/getresuid-reverse.exp b/gdb/testsuite/gdb.reverse/getresuid-reverse.exp
index 50d327a..5ff0f2b 100644
--- a/gdb/testsuite/gdb.reverse/getresuid-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/getresuid-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/i386-avx-reverse.c b/gdb/testsuite/gdb.reverse/i386-avx-reverse.c
index 8156575..a37b65a 100644
--- a/gdb/testsuite/gdb.reverse/i386-avx-reverse.c
+++ b/gdb/testsuite/gdb.reverse/i386-avx-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp b/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp
index f927960..00f58f8 100644
--- a/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2023 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -397,7 +397,7 @@ gdb_test_no_output "set \$ymm15.v2_int128 = {0x0, 0xcafeface}" "set ymm15 for vp
if {[record_full_function "vzeroupper"] == true} {
# Since vzeroupper needs to save 8 or 16 registers, let's check what was
# actually recorded, instead of just undoing an instruction. Only
- # really check the values of egisters 0, 1, 2 and 15 because those are
+ # really check the values of registers 0, 1, 2 and 15 because those are
# the only ones we're setting.
gdb_test "maint print record-instruction" \
[multi_line "Register ymm0h changed: 74565" \
diff --git a/gdb/testsuite/gdb.reverse/i386-precsave.exp b/gdb/testsuite/gdb.reverse/i386-precsave.exp
index 3b204fb..c9a3a7e 100644
--- a/gdb/testsuite/gdb.reverse/i386-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/i386-precsave.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/i386-reverse.c b/gdb/testsuite/gdb.reverse/i386-reverse.c
index 0af9ab9..3dd89d9 100644
--- a/gdb/testsuite/gdb.reverse/i386-reverse.c
+++ b/gdb/testsuite/gdb.reverse/i386-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/i386-reverse.exp b/gdb/testsuite/gdb.reverse/i386-reverse.exp
index 868e259..8c22363 100644
--- a/gdb/testsuite/gdb.reverse/i386-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/i386-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/i386-sse-reverse.c b/gdb/testsuite/gdb.reverse/i386-sse-reverse.c
index 63230f4..86219eb 100644
--- a/gdb/testsuite/gdb.reverse/i386-sse-reverse.c
+++ b/gdb/testsuite/gdb.reverse/i386-sse-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/i386-sse-reverse.exp b/gdb/testsuite/gdb.reverse/i386-sse-reverse.exp
index 8306a3f..0c99480 100644
--- a/gdb/testsuite/gdb.reverse/i386-sse-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/i386-sse-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/i387-env-reverse.exp b/gdb/testsuite/gdb.reverse/i387-env-reverse.exp
index db004d2..4b6a3f7 100644
--- a/gdb/testsuite/gdb.reverse/i387-env-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/i387-env-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/i387-stack-reverse.exp b/gdb/testsuite/gdb.reverse/i387-stack-reverse.exp
index 0813229..05be297 100644
--- a/gdb/testsuite/gdb.reverse/i387-stack-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/i387-stack-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/insn-reverse-aarch64.c b/gdb/testsuite/gdb.reverse/insn-reverse-aarch64.c
index 098ebef..8110215 100644
--- a/gdb/testsuite/gdb.reverse/insn-reverse-aarch64.c
+++ b/gdb/testsuite/gdb.reverse/insn-reverse-aarch64.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/insn-reverse-arm.c b/gdb/testsuite/gdb.reverse/insn-reverse-arm.c
index cd56260..10266b0 100644
--- a/gdb/testsuite/gdb.reverse/insn-reverse-arm.c
+++ b/gdb/testsuite/gdb.reverse/insn-reverse-arm.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/insn-reverse-x86.c b/gdb/testsuite/gdb.reverse/insn-reverse-x86.c
index 4213e40..2f13093 100644
--- a/gdb/testsuite/gdb.reverse/insn-reverse-x86.c
+++ b/gdb/testsuite/gdb.reverse/insn-reverse-x86.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/insn-reverse.c b/gdb/testsuite/gdb.reverse/insn-reverse.c
index b1fc5d4..9d3a725 100644
--- a/gdb/testsuite/gdb.reverse/insn-reverse.c
+++ b/gdb/testsuite/gdb.reverse/insn-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/insn-reverse.exp b/gdb/testsuite/gdb.reverse/insn-reverse.exp
index 6a2aafb..5b3a2cd 100644
--- a/gdb/testsuite/gdb.reverse/insn-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/insn-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/machinestate-precsave.exp b/gdb/testsuite/gdb.reverse/machinestate-precsave.exp
index cedca0f..53b958d 100644
--- a/gdb/testsuite/gdb.reverse/machinestate-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/machinestate-precsave.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/machinestate.c b/gdb/testsuite/gdb.reverse/machinestate.c
index 6635769..bf4d95b 100644
--- a/gdb/testsuite/gdb.reverse/machinestate.c
+++ b/gdb/testsuite/gdb.reverse/machinestate.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/machinestate.exp b/gdb/testsuite/gdb.reverse/machinestate.exp
index b4edfa0..9177029 100644
--- a/gdb/testsuite/gdb.reverse/machinestate.exp
+++ b/gdb/testsuite/gdb.reverse/machinestate.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/maint-print-instruction.c b/gdb/testsuite/gdb.reverse/maint-print-instruction.c
index 6e6a062..f64d27d 100644
--- a/gdb/testsuite/gdb.reverse/maint-print-instruction.c
+++ b/gdb/testsuite/gdb.reverse/maint-print-instruction.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/maint-print-instruction.exp b/gdb/testsuite/gdb.reverse/maint-print-instruction.exp
index edee300..6599345 100644
--- a/gdb/testsuite/gdb.reverse/maint-print-instruction.exp
+++ b/gdb/testsuite/gdb.reverse/maint-print-instruction.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/map-to-same-line.c b/gdb/testsuite/gdb.reverse/map-to-same-line.c
index 7185955..4823776 100644
--- a/gdb/testsuite/gdb.reverse/map-to-same-line.c
+++ b/gdb/testsuite/gdb.reverse/map-to-same-line.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/map-to-same-line.exp b/gdb/testsuite/gdb.reverse/map-to-same-line.exp
index 067fe01..410394c 100644
--- a/gdb/testsuite/gdb.reverse/map-to-same-line.exp
+++ b/gdb/testsuite/gdb.reverse/map-to-same-line.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/ms1.c b/gdb/testsuite/gdb.reverse/ms1.c
index 957b41b..4c4dda5 100644
--- a/gdb/testsuite/gdb.reverse/ms1.c
+++ b/gdb/testsuite/gdb.reverse/ms1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.c b/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.c
index ce36a15..3619547 100644
--- a/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.c
+++ b/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp b/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp
index 98cf530..454808d 100644
--- a/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp
+++ b/gdb/testsuite/gdb.reverse/next-reverse-bkpt-over-sr.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/pipe-reverse.c b/gdb/testsuite/gdb.reverse/pipe-reverse.c
index e7ea0f6..a4f04a2 100644
--- a/gdb/testsuite/gdb.reverse/pipe-reverse.c
+++ b/gdb/testsuite/gdb.reverse/pipe-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/pipe-reverse.exp b/gdb/testsuite/gdb.reverse/pipe-reverse.exp
index ccf5481..eb4f8eb 100644
--- a/gdb/testsuite/gdb.reverse/pipe-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/pipe-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/ppc_record_test_isa_2_06.c b/gdb/testsuite/gdb.reverse/ppc_record_test_isa_2_06.c
index ee3d488..41baaf4 100644
--- a/gdb/testsuite/gdb.reverse/ppc_record_test_isa_2_06.c
+++ b/gdb/testsuite/gdb.reverse/ppc_record_test_isa_2_06.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/ppc_record_test_isa_2_06.exp b/gdb/testsuite/gdb.reverse/ppc_record_test_isa_2_06.exp
index 9da61d6..773388d 100644
--- a/gdb/testsuite/gdb.reverse/ppc_record_test_isa_2_06.exp
+++ b/gdb/testsuite/gdb.reverse/ppc_record_test_isa_2_06.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/ppc_record_test_isa_3_1.c b/gdb/testsuite/gdb.reverse/ppc_record_test_isa_3_1.c
index 2c0be65..511bc41 100644
--- a/gdb/testsuite/gdb.reverse/ppc_record_test_isa_3_1.c
+++ b/gdb/testsuite/gdb.reverse/ppc_record_test_isa_3_1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/ppc_record_test_isa_3_1.exp b/gdb/testsuite/gdb.reverse/ppc_record_test_isa_3_1.exp
index 06257f9..21dba82 100644
--- a/gdb/testsuite/gdb.reverse/ppc_record_test_isa_3_1.exp
+++ b/gdb/testsuite/gdb.reverse/ppc_record_test_isa_3_1.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/readv-reverse.c b/gdb/testsuite/gdb.reverse/readv-reverse.c
index 6104414..9b311ea 100644
--- a/gdb/testsuite/gdb.reverse/readv-reverse.c
+++ b/gdb/testsuite/gdb.reverse/readv-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/readv-reverse.exp b/gdb/testsuite/gdb.reverse/readv-reverse.exp
index 35d0d2e..47149f2 100644
--- a/gdb/testsuite/gdb.reverse/readv-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/readv-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/recursion.c b/gdb/testsuite/gdb.reverse/recursion.c
index 38a02e3..fb73522 100644
--- a/gdb/testsuite/gdb.reverse/recursion.c
+++ b/gdb/testsuite/gdb.reverse/recursion.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/recursion.exp b/gdb/testsuite/gdb.reverse/recursion.exp
index 6d7e6d1..bfe1770 100644
--- a/gdb/testsuite/gdb.reverse/recursion.exp
+++ b/gdb/testsuite/gdb.reverse/recursion.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/recvmsg-reverse.c b/gdb/testsuite/gdb.reverse/recvmsg-reverse.c
index a5d7341..44a7041 100644
--- a/gdb/testsuite/gdb.reverse/recvmsg-reverse.c
+++ b/gdb/testsuite/gdb.reverse/recvmsg-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/recvmsg-reverse.exp b/gdb/testsuite/gdb.reverse/recvmsg-reverse.exp
index 95d1165..89cac87 100644
--- a/gdb/testsuite/gdb.reverse/recvmsg-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/recvmsg-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/rerun-prec.c b/gdb/testsuite/gdb.reverse/rerun-prec.c
index fae4768..803aea2 100644
--- a/gdb/testsuite/gdb.reverse/rerun-prec.c
+++ b/gdb/testsuite/gdb.reverse/rerun-prec.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/rerun-prec.exp b/gdb/testsuite/gdb.reverse/rerun-prec.exp
index af70d85..fd5efb2 100644
--- a/gdb/testsuite/gdb.reverse/rerun-prec.exp
+++ b/gdb/testsuite/gdb.reverse/rerun-prec.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/s390-mvcle.c b/gdb/testsuite/gdb.reverse/s390-mvcle.c
index e85e825..1c087b5 100644
--- a/gdb/testsuite/gdb.reverse/s390-mvcle.c
+++ b/gdb/testsuite/gdb.reverse/s390-mvcle.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/s390-mvcle.exp b/gdb/testsuite/gdb.reverse/s390-mvcle.exp
index 033d459..36cd611 100644
--- a/gdb/testsuite/gdb.reverse/s390-mvcle.exp
+++ b/gdb/testsuite/gdb.reverse/s390-mvcle.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/shr.h b/gdb/testsuite/gdb.reverse/shr.h
index 640b4f5..6263314 100644
--- a/gdb/testsuite/gdb.reverse/shr.h
+++ b/gdb/testsuite/gdb.reverse/shr.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/shr1.c b/gdb/testsuite/gdb.reverse/shr1.c
index 4451a7e..417d2a5 100644
--- a/gdb/testsuite/gdb.reverse/shr1.c
+++ b/gdb/testsuite/gdb.reverse/shr1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/shr2.c b/gdb/testsuite/gdb.reverse/shr2.c
index 761ef24..986df48 100644
--- a/gdb/testsuite/gdb.reverse/shr2.c
+++ b/gdb/testsuite/gdb.reverse/shr2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/sigall-precsave.exp b/gdb/testsuite/gdb.reverse/sigall-precsave.exp
index 902772a..64869c5 100644
--- a/gdb/testsuite/gdb.reverse/sigall-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/sigall-precsave.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/sigall-reverse.c b/gdb/testsuite/gdb.reverse/sigall-reverse.c
index 55e9e0e..7053600 100644
--- a/gdb/testsuite/gdb.reverse/sigall-reverse.c
+++ b/gdb/testsuite/gdb.reverse/sigall-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/sigall-reverse.exp b/gdb/testsuite/gdb.reverse/sigall-reverse.exp
index 884b178..b72e098 100644
--- a/gdb/testsuite/gdb.reverse/sigall-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/sigall-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.S b/gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.S
index 3e5bcf9..d0f89d1 100644
--- a/gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.S
+++ b/gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.c b/gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.c
index 8290f40..0867a5e 100644
--- a/gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.c
+++ b/gdb/testsuite/gdb.reverse/singlejmp-reverse-nodebug.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/singlejmp-reverse.S b/gdb/testsuite/gdb.reverse/singlejmp-reverse.S
index c4c1d6a..6641025 100644
--- a/gdb/testsuite/gdb.reverse/singlejmp-reverse.S
+++ b/gdb/testsuite/gdb.reverse/singlejmp-reverse.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/singlejmp-reverse.c b/gdb/testsuite/gdb.reverse/singlejmp-reverse.c
index c96662b..18b4032 100644
--- a/gdb/testsuite/gdb.reverse/singlejmp-reverse.c
+++ b/gdb/testsuite/gdb.reverse/singlejmp-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/singlejmp-reverse.exp b/gdb/testsuite/gdb.reverse/singlejmp-reverse.exp
index 7392356..7c1cf0b 100644
--- a/gdb/testsuite/gdb.reverse/singlejmp-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/singlejmp-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/solib-precsave.exp b/gdb/testsuite/gdb.reverse/solib-precsave.exp
index c972e89..82b08cd 100644
--- a/gdb/testsuite/gdb.reverse/solib-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/solib-precsave.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -140,7 +140,7 @@ gdb_test_multiple "reverse-step" "reverse-step into solib function one" {
pass $gdb_test_name
}
}
-# Depending on wether the closing } has a line associated, we might have
+# Depending on whether the closing } has a line associated, we might have
# different acceptable results here
gdb_test_multiple "reverse-step" "reverse-step within solib function one" {
-re -wrap "return y;.*" {
diff --git a/gdb/testsuite/gdb.reverse/solib-reverse.c b/gdb/testsuite/gdb.reverse/solib-reverse.c
index c1db8b8..a8fce2a 100644
--- a/gdb/testsuite/gdb.reverse/solib-reverse.c
+++ b/gdb/testsuite/gdb.reverse/solib-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/solib-reverse.exp b/gdb/testsuite/gdb.reverse/solib-reverse.exp
index 5ab418a..b2ef9b0 100644
--- a/gdb/testsuite/gdb.reverse/solib-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/solib-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -116,7 +116,7 @@ gdb_test_multiple "reverse-step" "reverse-step into solib function one" {
pass $gdb_test_name
}
}
-# Depending on wether the closing } has a line associated, we might have
+# Depending on whether the closing } has a line associated, we might have
# different acceptable results here
gdb_test_multiple "reverse-step" "reverse-step within solib function one" {
-re -wrap "return y;.*" {
diff --git a/gdb/testsuite/gdb.reverse/step-indirect-call-thunk.c b/gdb/testsuite/gdb.reverse/step-indirect-call-thunk.c
index f6bb70b..a183b8d 100644
--- a/gdb/testsuite/gdb.reverse/step-indirect-call-thunk.c
+++ b/gdb/testsuite/gdb.reverse/step-indirect-call-thunk.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/step-indirect-call-thunk.exp b/gdb/testsuite/gdb.reverse/step-indirect-call-thunk.exp
index e978e6e..21140c1 100644
--- a/gdb/testsuite/gdb.reverse/step-indirect-call-thunk.exp
+++ b/gdb/testsuite/gdb.reverse/step-indirect-call-thunk.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/step-precsave.exp b/gdb/testsuite/gdb.reverse/step-precsave.exp
index 0488008..b49c21b 100644
--- a/gdb/testsuite/gdb.reverse/step-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/step-precsave.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/step-reverse.c b/gdb/testsuite/gdb.reverse/step-reverse.c
index 307c0c3..980fe4a 100644
--- a/gdb/testsuite/gdb.reverse/step-reverse.c
+++ b/gdb/testsuite/gdb.reverse/step-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/step-reverse.exp b/gdb/testsuite/gdb.reverse/step-reverse.exp
index 4bfe289..6ecf1cd 100644
--- a/gdb/testsuite/gdb.reverse/step-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/step-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/test_ioctl_TCSETSW.c b/gdb/testsuite/gdb.reverse/test_ioctl_TCSETSW.c
index 250abb8..c56763c 100644
--- a/gdb/testsuite/gdb.reverse/test_ioctl_TCSETSW.c
+++ b/gdb/testsuite/gdb.reverse/test_ioctl_TCSETSW.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/test_ioctl_TCSETSW.exp b/gdb/testsuite/gdb.reverse/test_ioctl_TCSETSW.exp
index 6d54683..c0b468a 100644
--- a/gdb/testsuite/gdb.reverse/test_ioctl_TCSETSW.exp
+++ b/gdb/testsuite/gdb.reverse/test_ioctl_TCSETSW.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/time-reverse.c b/gdb/testsuite/gdb.reverse/time-reverse.c
index c4ce128..0e2a474 100644
--- a/gdb/testsuite/gdb.reverse/time-reverse.c
+++ b/gdb/testsuite/gdb.reverse/time-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/time-reverse.exp b/gdb/testsuite/gdb.reverse/time-reverse.exp
index 35415a0..58dcdde 100644
--- a/gdb/testsuite/gdb.reverse/time-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/time-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -20,6 +20,7 @@
#
require supports_reverse
+require supports_process_record
standard_testfile
@@ -38,23 +39,49 @@ proc test {mode} {
return
}
- runto marker1
-
- if [supports_process_record] {
- # Activate process record/replay
- gdb_test_no_output "record" "turn on process record"
+ if { ![runto marker1] } {
+ return
}
+ # Activate process record/replay
+ gdb_test_no_output "record" "turn on process record"
+ gdb_test_no_output "set record full stop-at-limit on"
+ gdb_test_no_output "set record full insn-number-max 2000"
+
+ set re_srcfile [string_to_regexp $::srcfile]
+
gdb_test "break marker2" \
- "Breakpoint $::decimal at $::hex: file .*$::srcfile, line $::decimal.*" \
+ "Breakpoint $::decimal at $::hex: file .*$re_srcfile, line $::decimal.*" \
"set breakpoint at marker2"
- gdb_continue_to_breakpoint "marker2" ".*$::srcfile:.*"
+ set re_question \
+ [string_list_to_regexp \
+ "Do you want to auto delete previous execution log entries when" \
+ " record/replay buffer becomes full" \
+ { (record full stop-at-limit)?([y] or n)}]
+ set re_program_stopped \
+ [multi_line \
+ [string_to_regexp "Process record: stopped by user."] \
+ "" \
+ [string_to_regexp "Program stopped."]]
+ set re_marker2 [string_to_regexp "marker2 ()"]
+ gdb_test_multiple "continue" "continue to breakpoint: marker2" {
+ -re "$re_question " {
+ send_gdb "n\n"
+ exp_continue
+ }
+ -re -wrap "Breakpoint $::decimal, $re_marker2 .*" {
+ pass $gdb_test_name
+ }
+ -re -wrap "\r\n$re_program_stopped\r\n.*" {
+ unsupported $gdb_test_name
+ }
+ }
# Show how many instructions we've recorded.
gdb_test "info record" "Active record target: .*"
- gdb_test "reverse-continue" ".*$::srcfile:$::decimal.*" "reverse to marker1"
+ gdb_test "reverse-continue" ".*$re_srcfile:$::decimal.*" "reverse to marker1"
# If the variable was recorded properly, the old contents (-1)
# will be remembered. If not, new contents (current time) will be
diff --git a/gdb/testsuite/gdb.reverse/until-precsave.exp b/gdb/testsuite/gdb.reverse/until-precsave.exp
index 508dfa9..1f25a3a 100644
--- a/gdb/testsuite/gdb.reverse/until-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/until-precsave.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/until-reverse.c b/gdb/testsuite/gdb.reverse/until-reverse.c
index 62d99c2..f4b96be 100644
--- a/gdb/testsuite/gdb.reverse/until-reverse.c
+++ b/gdb/testsuite/gdb.reverse/until-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/until-reverse.exp b/gdb/testsuite/gdb.reverse/until-reverse.exp
index db6dc69..240f6da 100644
--- a/gdb/testsuite/gdb.reverse/until-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/until-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/ur1.c b/gdb/testsuite/gdb.reverse/ur1.c
index 7ac56b6..3b1bb5f 100644
--- a/gdb/testsuite/gdb.reverse/ur1.c
+++ b/gdb/testsuite/gdb.reverse/ur1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1992-2024 Free Software Foundation, Inc.
+ Copyright 1992-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/waitpid-reverse.c b/gdb/testsuite/gdb.reverse/waitpid-reverse.c
index eab51b6..3877d8a 100644
--- a/gdb/testsuite/gdb.reverse/waitpid-reverse.c
+++ b/gdb/testsuite/gdb.reverse/waitpid-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/waitpid-reverse.exp b/gdb/testsuite/gdb.reverse/waitpid-reverse.exp
index 7b667d9..c1cb402 100644
--- a/gdb/testsuite/gdb.reverse/waitpid-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/waitpid-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/watch-precsave.exp b/gdb/testsuite/gdb.reverse/watch-precsave.exp
index 98f406f..75ab4b1 100644
--- a/gdb/testsuite/gdb.reverse/watch-precsave.exp
+++ b/gdb/testsuite/gdb.reverse/watch-precsave.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/watch-reverse.c b/gdb/testsuite/gdb.reverse/watch-reverse.c
index c3a5ebd..b178a8b 100644
--- a/gdb/testsuite/gdb.reverse/watch-reverse.c
+++ b/gdb/testsuite/gdb.reverse/watch-reverse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.reverse/watch-reverse.exp b/gdb/testsuite/gdb.reverse/watch-reverse.exp
index fb783e9..6a694be 100644
--- a/gdb/testsuite/gdb.reverse/watch-reverse.exp
+++ b/gdb/testsuite/gdb.reverse/watch-reverse.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rocm/code-object-load-while-breakpoint-hit.cpp b/gdb/testsuite/gdb.rocm/code-object-load-while-breakpoint-hit.cpp
new file mode 100644
index 0000000..d75bc76
--- /dev/null
+++ b/gdb/testsuite/gdb.rocm/code-object-load-while-breakpoint-hit.cpp
@@ -0,0 +1,86 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#ifdef DEVICE
+
+#include <hip/hip_runtime.h>
+
+constexpr unsigned int NUM_BREAKPOINT_HITS = 5;
+
+static __device__ void
+break_here ()
+{
+}
+
+extern "C" __global__ void
+kernel ()
+{
+ for (int n = 0; n < NUM_BREAKPOINT_HITS; ++n)
+ break_here ();
+}
+
+#else
+
+#include <hip/hip_runtime.h>
+#include <unistd.h>
+
+constexpr unsigned int NUM_ITEMS_PER_BLOCK = 256;
+constexpr unsigned int NUM_BLOCKS = 128;
+constexpr unsigned int NUM_ITEMS = NUM_ITEMS_PER_BLOCK * NUM_BLOCKS;
+constexpr unsigned int NUM_LOAD_UNLOADS = 5;
+
+#define CHECK(cmd) \
+ { \
+ hipError_t error = cmd; \
+ if (error != hipSuccess) \
+ { \
+ fprintf (stderr, "error: '%s'(%d) at %s:%d\n", \
+ hipGetErrorString (error), error, __FILE__, __LINE__); \
+ exit (EXIT_FAILURE); \
+ } \
+ }
+
+int
+main (int argc, const char **argv)
+{
+ if (argc != 2)
+ {
+ fprintf (stderr, "Usage: %s <hip_module_path>\n", argv[0]);
+ return 1;
+ }
+
+ const auto module_path = argv[1];
+ hipModule_t module;
+ CHECK (hipModuleLoad (&module, module_path));
+
+ /* Launch the kernel. */
+ hipFunction_t function;
+ CHECK (hipModuleGetFunction (&function, module, "kernel"));
+ CHECK (hipModuleLaunchKernel (function, NUM_BLOCKS, 1, 1,
+ NUM_ITEMS_PER_BLOCK, 1, 1, 0, nullptr, nullptr,
+ nullptr));
+
+ /* Load and unload the module many times. */
+ for (int i = 0; i < NUM_LOAD_UNLOADS; ++i)
+ {
+ hipModule_t dummy_module;
+ CHECK (hipModuleLoad (&dummy_module, module_path));
+ CHECK (hipModuleUnload (dummy_module));
+ }
+}
+
+#endif
diff --git a/gdb/testsuite/gdb.rocm/code-object-load-while-breakpoint-hit.exp b/gdb/testsuite/gdb.rocm/code-object-load-while-breakpoint-hit.exp
new file mode 100644
index 0000000..3fe6a95
--- /dev/null
+++ b/gdb/testsuite/gdb.rocm/code-object-load-while-breakpoint-hit.exp
@@ -0,0 +1,68 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This file is part of GDB.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# 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, see <http://www.gnu.org/licenses/>.
+
+# This test verifies what happens when a code object list update happens at the
+# same time as some wave stop events are reported. It was added following a
+# performance bug fix, where forward progress requirement disabled when
+# pulling events from amd-dbgapi in amd_dbgapi_target_breakpoint::check_status.
+#
+# The test launches a kernel that hits a breakpoint with an always false
+# condition a certain number of times. Meanwhile, the host loads and unloads
+# a code object in a loop, causing check_status to be called. The hope is that
+# check_status, when calling process_event_queue, will pull many WAVE_STOP
+# events from the kernel hitting the breakpoint.
+#
+# Without the appropriate fix (of disabling forward progress requirement in
+# check_status), GDB would hit the newly-added assert in process_event_queue,
+# which verifies that forward progress requirement is disabled. Even without
+# this assert, the test would likely time out (depending on the actual timeout
+# value).
+
+load_lib rocm.exp
+standard_testfile .cpp
+require allow_hipcc_tests
+
+# Build the host executable.
+if { [build_executable "failed to prepare" \
+ $testfile $srcfile {debug hip}] == -1 } {
+ return -1
+}
+
+set hipmodule_path [standard_output_file ${testfile}.co]
+
+# Build the kernel object file.
+if { [gdb_compile $srcdir/$subdir/$srcfile \
+ $hipmodule_path object \
+ { debug hip additional_flags=--genco additional_flags=-DDEVICE } ] != "" } {
+ return -1
+}
+
+proc do_test { } {
+ with_rocm_gpu_lock {
+ clean_restart $::binfile
+ gdb_test_no_output "set args $::hipmodule_path" "set args"
+
+ if { ![runto_main] } {
+ return
+ }
+
+ gdb_test "with breakpoint pending on -- break break_here if 0"
+ gdb_continue_to_end "continue to end" "continue" 1
+ }
+}
+
+do_test
diff --git a/gdb/testsuite/gdb.rocm/displaced-stepping.cpp b/gdb/testsuite/gdb.rocm/displaced-stepping.cpp
new file mode 100644
index 0000000..7adb646
--- /dev/null
+++ b/gdb/testsuite/gdb.rocm/displaced-stepping.cpp
@@ -0,0 +1,48 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2022-2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#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;
+}
diff --git a/gdb/testsuite/gdb.rocm/displaced-stepping.exp b/gdb/testsuite/gdb.rocm/displaced-stepping.exp
new file mode 100644
index 0000000..cd50fec
--- /dev/null
+++ b/gdb/testsuite/gdb.rocm/displaced-stepping.exp
@@ -0,0 +1,53 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Test displaced stepping on AMD GPUs.
+
+load_lib rocm.exp
+
+standard_testfile .cpp
+
+require allow_hipcc_tests
+
+# Since GDB doesn't yet understand DWARF expressions generated by the HIP
+# compiler, purposefully generate the binary without debug info.
+if {[build_executable "failed to prepare" $testfile $srcfile {hip}]} {
+ return
+}
+
+proc do_test {} {
+ clean_restart $::binfile
+
+ with_rocm_gpu_lock {
+ if ![runto_main] {
+ return
+ }
+
+ gdb_test "with breakpoint pending on -- break do_an_addition" \
+ "Breakpoint $::decimal \\(do_an_addition\\) pending."
+
+ gdb_test "continue" \
+ "Thread $::decimal hit Breakpoint $::decimal, $::hex in do_an_addition.*"
+
+ gdb_test "with debug displaced on -- stepi" \
+ "displaced_step_prepare_throw: prepared successfully.*$::hex in do_an_addition.*"
+
+ gdb_test "continue" \
+ "Inferior 1 .* exited normally.*" \
+ "continue to end"
+ }
+}
+
+do_test
diff --git a/gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu-execee.cpp b/gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu-execee.cpp
index 06a7589..6fbf55f 100644
--- a/gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu-execee.cpp
+++ b/gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu-execee.cpp
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu-execer.cpp b/gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu-execer.cpp
index 09a4983..48267e3 100644
--- a/gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu-execer.cpp
+++ b/gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu-execer.cpp
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu.exp b/gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu.exp
index 3e122f5..22d4b75 100644
--- a/gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu.exp
+++ b/gdb/testsuite/gdb.rocm/fork-exec-gpu-to-non-gpu.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This file is part of GDB.
@@ -21,6 +21,7 @@
load_lib rocm.exp
require allow_hipcc_tests
+require allow_fork_tests
standard_testfile -execer.cpp -execee.cpp
diff --git a/gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu-execee.cpp b/gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu-execee.cpp
index fb1df66..116c3c9 100644
--- a/gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu-execee.cpp
+++ b/gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu-execee.cpp
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu-execer.cpp b/gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu-execer.cpp
index f0e273b..2c8e743 100644
--- a/gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu-execer.cpp
+++ b/gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu-execer.cpp
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu.exp b/gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu.exp
index 50efb4f..1386099 100644
--- a/gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu.exp
+++ b/gdb/testsuite/gdb.rocm/fork-exec-non-gpu-to-gpu.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This file is part of GDB.
@@ -20,6 +20,7 @@
load_lib rocm.exp
require allow_hipcc_tests
+require allow_fork_tests
standard_testfile -execer.cpp -execee.cpp
diff --git a/gdb/testsuite/gdb.rocm/mi-attach.cpp b/gdb/testsuite/gdb.rocm/mi-attach.cpp
new file mode 100644
index 0000000..da7659d
--- /dev/null
+++ b/gdb/testsuite/gdb.rocm/mi-attach.cpp
@@ -0,0 +1,38 @@
+/* Copyright 2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <hip/hip_runtime.h>
+
+__global__ void
+kern ()
+{
+ while (true)
+ __builtin_amdgcn_s_sleep (8);
+}
+
+int
+main ()
+{
+ /* This program will run outside of GDB, make sure that if anything goes
+ wrong it eventually gets killed. */
+ alarm (30);
+
+ kern<<<1, 1>>> ();
+ return hipDeviceSynchronize () != hipSuccess;
+}
+
diff --git a/gdb/testsuite/gdb.rocm/mi-attach.exp b/gdb/testsuite/gdb.rocm/mi-attach.exp
new file mode 100644
index 0000000..37ce92a
--- /dev/null
+++ b/gdb/testsuite/gdb.rocm/mi-attach.exp
@@ -0,0 +1,33 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+load_lib rocm.exp
+load_lib mi-support.exp
+set MIFLAGS "-i=mi"
+
+require can_spawn_for_attach allow_hipcc_tests
+
+standard_testfile .cpp
+
+if {[build_executable "failed to prepare" $testfile $srcfile {debug hip}]} {
+ return
+}
+
+set spawn_id [spawn_wait_for_attach $::binfile]
+set prog_pid [spawn_id_get_pid $spawn_id]
+
+mi_clean_restart
+
+mi_gdb_test "-target-attach $prog_pid" ".*\\^done.*" "attach \$PROG_PID"
diff --git a/gdb/testsuite/gdb.rocm/multi-inferior-gpu.cpp b/gdb/testsuite/gdb.rocm/multi-inferior-gpu.cpp
index e6be857..8952308 100644
--- a/gdb/testsuite/gdb.rocm/multi-inferior-gpu.cpp
+++ b/gdb/testsuite/gdb.rocm/multi-inferior-gpu.cpp
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rocm/multi-inferior-gpu.exp b/gdb/testsuite/gdb.rocm/multi-inferior-gpu.exp
index 4c5e459..4f55432 100644
--- a/gdb/testsuite/gdb.rocm/multi-inferior-gpu.exp
+++ b/gdb/testsuite/gdb.rocm/multi-inferior-gpu.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rocm/precise-memory-exec.c b/gdb/testsuite/gdb.rocm/precise-memory-exec.c
index fb41846..a208f13 100644
--- a/gdb/testsuite/gdb.rocm/precise-memory-exec.c
+++ b/gdb/testsuite/gdb.rocm/precise-memory-exec.c
@@ -1,4 +1,4 @@
-/* Copyright 2021-2024 Free Software Foundation, Inc.
+/* Copyright 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.rocm/precise-memory-exec.exp b/gdb/testsuite/gdb.rocm/precise-memory-exec.exp
index 3a0301b..506488c 100644
--- a/gdb/testsuite/gdb.rocm/precise-memory-exec.exp
+++ b/gdb/testsuite/gdb.rocm/precise-memory-exec.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This file is part of GDB.
diff --git a/gdb/testsuite/gdb.rocm/precise-memory-fork.c b/gdb/testsuite/gdb.rocm/precise-memory-fork.c
index 3db6c2f..2c3ca61 100644
--- a/gdb/testsuite/gdb.rocm/precise-memory-fork.c
+++ b/gdb/testsuite/gdb.rocm/precise-memory-fork.c
@@ -1,4 +1,4 @@
-/* Copyright 2021-2024 Free Software Foundation, Inc.
+/* Copyright 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.rocm/precise-memory-fork.exp b/gdb/testsuite/gdb.rocm/precise-memory-fork.exp
index f6a658a..23c1ebe 100644
--- a/gdb/testsuite/gdb.rocm/precise-memory-fork.exp
+++ b/gdb/testsuite/gdb.rocm/precise-memory-fork.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This file is part of GDB.
@@ -21,6 +21,7 @@
load_lib rocm.exp
require allow_hipcc_tests
+require allow_fork_tests
standard_testfile .c
diff --git a/gdb/testsuite/gdb.rocm/precise-memory-multi-inferiors.exp b/gdb/testsuite/gdb.rocm/precise-memory-multi-inferiors.exp
index de86eb2..c7a78b8 100644
--- a/gdb/testsuite/gdb.rocm/precise-memory-multi-inferiors.exp
+++ b/gdb/testsuite/gdb.rocm/precise-memory-multi-inferiors.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This file is part of GDB.
diff --git a/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.cpp b/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.cpp
index ccb1e52..54ce6a3 100644
--- a/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.cpp
+++ b/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2021-2024 Free Software Foundation, Inc.
+/* Copyright 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.exp b/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.exp
index d9b016e..f855719 100644
--- a/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.exp
+++ b/gdb/testsuite/gdb.rocm/precise-memory-warning-sigsegv.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This file is part of GDB.
diff --git a/gdb/testsuite/gdb.rocm/precise-memory.cpp b/gdb/testsuite/gdb.rocm/precise-memory.cpp
index 769b58a..a42c0ba 100644
--- a/gdb/testsuite/gdb.rocm/precise-memory.cpp
+++ b/gdb/testsuite/gdb.rocm/precise-memory.cpp
@@ -1,4 +1,4 @@
-/* Copyright 2021-2024 Free Software Foundation, Inc.
+/* Copyright 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -31,7 +31,17 @@
__global__ void
kernel ()
{
- __builtin_amdgcn_s_sleep (1);
+
+ /* Simple kernel which loads from address 0 to trigger a pagefault.
+ When precise memory is not enabled, it is expected that the memory fault
+ is reported after the s_nop instruction. With precise-memory, the
+ exception should be reported on the s_nop. */
+ asm volatile ("s_mov_b64 [s10, s11], 0\n"
+ "s_load_dword s12, [s10, s11]\n"
+ "s_nop 0"
+ :
+ :
+ : "s10", "s11", "s12");
}
int
diff --git a/gdb/testsuite/gdb.rocm/precise-memory.exp b/gdb/testsuite/gdb.rocm/precise-memory.exp
index f423a11..6711d80 100644
--- a/gdb/testsuite/gdb.rocm/precise-memory.exp
+++ b/gdb/testsuite/gdb.rocm/precise-memory.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This file is part of GDB.
@@ -39,18 +39,40 @@ proc do_test { } {
"AMDGPU precise memory access reporting is off \\(currently disabled\\)." \
"show precise-memory setting in CLI before"
- if {[hip_devices_support_precise_memory]} {
- gdb_test_no_output "set amdgpu precise-memory on"
- set cli_effective_value "enabled"
- } else {
- gdb_test "set amdgpu precise-memory on" \
- "warning: AMDGPU precise memory access reporting could not be enabled."
- set cli_effective_value "disabled"
+ # Assume precise-memory is available, unless GDB reports otherwise.
+ gdb_test_multiple "set amdgpu precise-memory on" "" {
+ -re -wrap "warning: AMDGPU precise memory access reporting could not be enabled\\." {
+ set cli_effective_value "disabled"
+ pass $gdb_test_name
+ }
+ -re -wrap "^" {
+ set cli_effective_value "enabled"
+ pass $gdb_test_name
+ }
}
gdb_test "show amdgpu precise-memory" \
- "AMDGPU precise memory access reporting is on \\(currently ${cli_effective_value}\\)." \
+ "AMDGPU precise memory access reporting is on \\(currently ${cli_effective_value}\\)\\." \
"show precise-memory setting in CLI after"
+
+ if { $cli_effective_value eq "disabled" } {
+ return
+ }
+
+ # Get to the beginning of the GPU kernel without precise memory enabled.
+ with_test_prefix "goto gpu code" {
+ gdb_test_no_output "set amdgpu precise-memory off"
+ gdb_breakpoint "kernel" allow-pending
+ gdb_test "continue" "Thread ${::decimal}.* hit Breakpoint .*"
+ gdb_test_no_output "set amdgpu precise-memory on"
+ }
+
+ # If precise-memory is available, run until a SIGSEGV is reported. At
+ # that point, the PC should point to the s_nop instruction (the one
+ # following the one which caused the memory violation).
+ gdb_test "continue" "Thread ${::decimal}\[^\r\n\]* received signal SIGSEGV, Segmentation fault.*"
+
+ gdb_test "x/i \$pc" "=> ${::hex} <_Z6kernelv\\+${::decimal}>:\[ \t\]+s_nop\[ \t\]+0"
}
}
diff --git a/gdb/testsuite/gdb.rocm/simple.cpp b/gdb/testsuite/gdb.rocm/simple.cpp
index b94e8ab..7adb646 100644
--- a/gdb/testsuite/gdb.rocm/simple.cpp
+++ b/gdb/testsuite/gdb.rocm/simple.cpp
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rocm/simple.exp b/gdb/testsuite/gdb.rocm/simple.exp
index 11ba2a3..bc90a0a 100644
--- a/gdb/testsuite/gdb.rocm/simple.exp
+++ b/gdb/testsuite/gdb.rocm/simple.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/completion.exp b/gdb/testsuite/gdb.rust/completion.exp
index 1b0638a..eac5a43 100644
--- a/gdb/testsuite/gdb.rust/completion.exp
+++ b/gdb/testsuite/gdb.rust/completion.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/completion.rs b/gdb/testsuite/gdb.rust/completion.rs
index 1a9d805..70506ba 100644
--- a/gdb/testsuite/gdb.rust/completion.rs
+++ b/gdb/testsuite/gdb.rust/completion.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2023-2024 Free Software Foundation, Inc.
+// Copyright (C) 2023-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/dwindex.exp b/gdb/testsuite/gdb.rust/dwindex.exp
index de39c3a..a9e10e1 100644
--- a/gdb/testsuite/gdb.rust/dwindex.exp
+++ b/gdb/testsuite/gdb.rust/dwindex.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/dwindex.rs b/gdb/testsuite/gdb.rust/dwindex.rs
index 8f08dae..aa61846 100644
--- a/gdb/testsuite/gdb.rust/dwindex.rs
+++ b/gdb/testsuite/gdb.rust/dwindex.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2021-2024 Free Software Foundation, Inc.
+// Copyright (C) 2021-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/expr.exp b/gdb/testsuite/gdb.rust/expr.exp
index 97db748a..a1b8286 100644
--- a/gdb/testsuite/gdb.rust/expr.exp
+++ b/gdb/testsuite/gdb.rust/expr.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -115,6 +115,10 @@ gdb_test "print \[1,2 3" "',' or ']' expected"
gdb_test "print \[1 2" "',', ';', or ']' expected"
gdb_test "print \[23\]" " = \\\[23\\\]"
+gdb_test "print \[0;0\]" " = \\\[\\\]"
+gdb_test "print \[1;0\]" " = \\\[\\\]"
+gdb_test "print \[0;1\]" " = \\\[0\\\]"
+
gdb_test "print b\"hi rust\"" " = b\"hi rust\""
# This isn't rusty syntax yet, but that's another bug -- this is just
# testing that byte escapes work properly.
diff --git a/gdb/testsuite/gdb.rust/finish.exp b/gdb/testsuite/gdb.rust/finish.exp
index 1d52d5b..96545fb 100644
--- a/gdb/testsuite/gdb.rust/finish.exp
+++ b/gdb/testsuite/gdb.rust/finish.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/finish.rs b/gdb/testsuite/gdb.rust/finish.rs
index c0d7743..2f8095e 100644
--- a/gdb/testsuite/gdb.rust/finish.rs
+++ b/gdb/testsuite/gdb.rust/finish.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2023-2024 Free Software Foundation, Inc.
+// Copyright (C) 2023-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/fnfield.exp b/gdb/testsuite/gdb.rust/fnfield.exp
index f05b275..a45ae94 100644
--- a/gdb/testsuite/gdb.rust/fnfield.exp
+++ b/gdb/testsuite/gdb.rust/fnfield.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/fnfield.rs b/gdb/testsuite/gdb.rust/fnfield.rs
index ea15492..0520b35 100644
--- a/gdb/testsuite/gdb.rust/fnfield.rs
+++ b/gdb/testsuite/gdb.rust/fnfield.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2022-2024 Free Software Foundation, Inc.
+// Copyright (C) 2022-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/generics.exp b/gdb/testsuite/gdb.rust/generics.exp
index e5b6d13..d7a34bf 100644
--- a/gdb/testsuite/gdb.rust/generics.exp
+++ b/gdb/testsuite/gdb.rust/generics.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/generics.rs b/gdb/testsuite/gdb.rust/generics.rs
index da26999..38c1917 100644
--- a/gdb/testsuite/gdb.rust/generics.rs
+++ b/gdb/testsuite/gdb.rust/generics.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2016-2024 Free Software Foundation, Inc.
+// Copyright (C) 2016-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/main-crash.exp b/gdb/testsuite/gdb.rust/main-crash.exp
index 9efaf96..1d246ee 100644
--- a/gdb/testsuite/gdb.rust/main-crash.exp
+++ b/gdb/testsuite/gdb.rust/main-crash.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/main.rs b/gdb/testsuite/gdb.rust/main.rs
index 042b036..756dffb 100644
--- a/gdb/testsuite/gdb.rust/main.rs
+++ b/gdb/testsuite/gdb.rust/main.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2016-2024 Free Software Foundation, Inc.
+// Copyright (C) 2016-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/methods.exp b/gdb/testsuite/gdb.rust/methods.exp
index a14bbb6..0061b46 100644
--- a/gdb/testsuite/gdb.rust/methods.exp
+++ b/gdb/testsuite/gdb.rust/methods.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/methods.rs b/gdb/testsuite/gdb.rust/methods.rs
index eaeb5ef..e822bfd 100644
--- a/gdb/testsuite/gdb.rust/methods.rs
+++ b/gdb/testsuite/gdb.rust/methods.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2016-2024 Free Software Foundation, Inc.
+// Copyright (C) 2016-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/modules.exp b/gdb/testsuite/gdb.rust/modules.exp
index 25828ea..5b2e998 100644
--- a/gdb/testsuite/gdb.rust/modules.exp
+++ b/gdb/testsuite/gdb.rust/modules.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/modules.rs b/gdb/testsuite/gdb.rust/modules.rs
index a2d7cbe..e5c3d03 100644
--- a/gdb/testsuite/gdb.rust/modules.rs
+++ b/gdb/testsuite/gdb.rust/modules.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2016-2024 Free Software Foundation, Inc.
+// Copyright (C) 2016-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/onetwoeight.exp b/gdb/testsuite/gdb.rust/onetwoeight.exp
index 8b73f16..8ae9d54 100644
--- a/gdb/testsuite/gdb.rust/onetwoeight.exp
+++ b/gdb/testsuite/gdb.rust/onetwoeight.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/onetwoeight.rs b/gdb/testsuite/gdb.rust/onetwoeight.rs
index 8135974..2b2e6ee 100644
--- a/gdb/testsuite/gdb.rust/onetwoeight.rs
+++ b/gdb/testsuite/gdb.rust/onetwoeight.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2023-2024 Free Software Foundation, Inc.
+// Copyright (C) 2023-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/pp.exp b/gdb/testsuite/gdb.rust/pp.exp
index f0468e3..aa989c0 100644
--- a/gdb/testsuite/gdb.rust/pp.exp
+++ b/gdb/testsuite/gdb.rust/pp.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/pp.py b/gdb/testsuite/gdb.rust/pp.py
index fbc0868..e29240d 100644
--- a/gdb/testsuite/gdb.rust/pp.py
+++ b/gdb/testsuite/gdb.rust/pp.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/pp.rs b/gdb/testsuite/gdb.rust/pp.rs
index 879bb6e..77313e8 100644
--- a/gdb/testsuite/gdb.rust/pp.rs
+++ b/gdb/testsuite/gdb.rust/pp.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2021-2024 Free Software Foundation, Inc.
+// Copyright (C) 2021-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/rawids.exp b/gdb/testsuite/gdb.rust/rawids.exp
index e86d054..9029e2f 100644
--- a/gdb/testsuite/gdb.rust/rawids.exp
+++ b/gdb/testsuite/gdb.rust/rawids.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/rawids.rs b/gdb/testsuite/gdb.rust/rawids.rs
index e94c578..98373da 100644
--- a/gdb/testsuite/gdb.rust/rawids.rs
+++ b/gdb/testsuite/gdb.rust/rawids.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2021-2024 Free Software Foundation, Inc.
+// Copyright (C) 2021-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/rust-start.exp b/gdb/testsuite/gdb.rust/rust-start.exp
index c5c7e24..1287d83 100644
--- a/gdb/testsuite/gdb.rust/rust-start.exp
+++ b/gdb/testsuite/gdb.rust/rust-start.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/rust-style.exp b/gdb/testsuite/gdb.rust/rust-style.exp
index 418f636..ae01ad6 100644
--- a/gdb/testsuite/gdb.rust/rust-style.exp
+++ b/gdb/testsuite/gdb.rust/rust-style.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/rust-style.rs b/gdb/testsuite/gdb.rust/rust-style.rs
index bb9873f..b4a36bd 100644
--- a/gdb/testsuite/gdb.rust/rust-style.rs
+++ b/gdb/testsuite/gdb.rust/rust-style.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2024 Free Software Foundation, Inc.
+// Copyright (C) 2020-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/simple.exp b/gdb/testsuite/gdb.rust/simple.exp
index e269e41..a236a30 100644
--- a/gdb/testsuite/gdb.rust/simple.exp
+++ b/gdb/testsuite/gdb.rust/simple.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/simple.rs b/gdb/testsuite/gdb.rust/simple.rs
index d9d6b32..cf51715 100644
--- a/gdb/testsuite/gdb.rust/simple.rs
+++ b/gdb/testsuite/gdb.rust/simple.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2016-2024 Free Software Foundation, Inc.
+// Copyright (C) 2016-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/traits.exp b/gdb/testsuite/gdb.rust/traits.exp
index a732536..e5ef015 100644
--- a/gdb/testsuite/gdb.rust/traits.exp
+++ b/gdb/testsuite/gdb.rust/traits.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/traits.rs b/gdb/testsuite/gdb.rust/traits.rs
index 64ab0be..14202c4 100644
--- a/gdb/testsuite/gdb.rust/traits.rs
+++ b/gdb/testsuite/gdb.rust/traits.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2024 Free Software Foundation, Inc.
+// Copyright (C) 2017-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/unicode.exp b/gdb/testsuite/gdb.rust/unicode.exp
index 0ad6001..a86e59f 100644
--- a/gdb/testsuite/gdb.rust/unicode.exp
+++ b/gdb/testsuite/gdb.rust/unicode.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/unicode.rs b/gdb/testsuite/gdb.rust/unicode.rs
index dd0791c..54a9dc5 100644
--- a/gdb/testsuite/gdb.rust/unicode.rs
+++ b/gdb/testsuite/gdb.rust/unicode.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2022-2024 Free Software Foundation, Inc.
+// Copyright (C) 2022-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/union.exp b/gdb/testsuite/gdb.rust/union.exp
index d229c59..55fe6db 100644
--- a/gdb/testsuite/gdb.rust/union.exp
+++ b/gdb/testsuite/gdb.rust/union.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/union.rs b/gdb/testsuite/gdb.rust/union.rs
index c4c854a..c0872a5 100644
--- a/gdb/testsuite/gdb.rust/union.rs
+++ b/gdb/testsuite/gdb.rust/union.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2020-2024 Free Software Foundation, Inc.
+// Copyright (C) 2020-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/unsized.exp b/gdb/testsuite/gdb.rust/unsized.exp
index ea5f281..f916145 100644
--- a/gdb/testsuite/gdb.rust/unsized.exp
+++ b/gdb/testsuite/gdb.rust/unsized.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/unsized.rs b/gdb/testsuite/gdb.rust/unsized.rs
index 6bbf199..d8d9082 100644
--- a/gdb/testsuite/gdb.rust/unsized.rs
+++ b/gdb/testsuite/gdb.rust/unsized.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2024 Free Software Foundation, Inc.
+// Copyright (C) 2017-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/unsized2.exp b/gdb/testsuite/gdb.rust/unsized2.exp
index 5b7be45..d4d5ea1 100644
--- a/gdb/testsuite/gdb.rust/unsized2.exp
+++ b/gdb/testsuite/gdb.rust/unsized2.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/unsized2.rs b/gdb/testsuite/gdb.rust/unsized2.rs
index 980a5fe..ee5eaee 100644
--- a/gdb/testsuite/gdb.rust/unsized2.rs
+++ b/gdb/testsuite/gdb.rust/unsized2.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2024 Free Software Foundation, Inc.
+// Copyright (C) 2024-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/watch.exp b/gdb/testsuite/gdb.rust/watch.exp
index e4fa6f9..a90abd7 100644
--- a/gdb/testsuite/gdb.rust/watch.exp
+++ b/gdb/testsuite/gdb.rust/watch.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.rust/watch.rs b/gdb/testsuite/gdb.rust/watch.rs
index 5301e44..bf2f95b 100644
--- a/gdb/testsuite/gdb.rust/watch.rs
+++ b/gdb/testsuite/gdb.rust/watch.rs
@@ -1,4 +1,4 @@
-// Copyright (C) 2017-2024 Free Software Foundation, Inc.
+// Copyright (C) 2017-2025 Free Software Foundation, Inc.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/abspath.exp b/gdb/testsuite/gdb.server/abspath.exp
index 83e4ad2..23d5d63 100644
--- a/gdb/testsuite/gdb.server/abspath.exp
+++ b/gdb/testsuite/gdb.server/abspath.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/attach-flag.exp b/gdb/testsuite/gdb.server/attach-flag.exp
index a3704de..2b3e345 100644
--- a/gdb/testsuite/gdb.server/attach-flag.exp
+++ b/gdb/testsuite/gdb.server/attach-flag.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/bkpt-other-inferior.exp b/gdb/testsuite/gdb.server/bkpt-other-inferior.exp
index 46c07d1..893bd72 100644
--- a/gdb/testsuite/gdb.server/bkpt-other-inferior.exp
+++ b/gdb/testsuite/gdb.server/bkpt-other-inferior.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/build-id-seqno.c b/gdb/testsuite/gdb.server/build-id-seqno.c
index e2119ba7..ce81e8e 100644
--- a/gdb/testsuite/gdb.server/build-id-seqno.c
+++ b/gdb/testsuite/gdb.server/build-id-seqno.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/build-id-seqno.exp b/gdb/testsuite/gdb.server/build-id-seqno.exp
index 7db1f11..8475ccc 100644
--- a/gdb/testsuite/gdb.server/build-id-seqno.exp
+++ b/gdb/testsuite/gdb.server/build-id-seqno.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -90,13 +90,13 @@ proc load_binfile_check_debug_is_found { debuginfo_file testname } {
with_test_prefix "$testname" {
with_timeout_factor 5 {
# Probing for .build-id based debug files on remote
- # targets uses the vFile:stat packet by default, though
+ # targets uses the vFile:lstat packet by default, though
# there is a work around that avoids this which can be
# used if GDB is connected to an older gdbserver without
# 'stat' support.
#
# Check the work around works by disabling use of the
- # vFile:stat packet.
+ # vFile:lstat packet.
foreach_with_prefix stat_pkt {auto off} {
clean_restart
@@ -105,7 +105,7 @@ proc load_binfile_check_debug_is_found { debuginfo_file testname } {
gdb_test_no_output "set sysroot target:"
- gdb_test "set remote hostio-stat-packet $stat_pkt"
+ gdb_test "set remote hostio-lstat-packet $stat_pkt"
# Make sure we're disconnected, in case we're testing with an
# extended-remote board, therefore already connected.
diff --git a/gdb/testsuite/gdb.server/connect-stopped-target.c b/gdb/testsuite/gdb.server/connect-stopped-target.c
index cd4a9b2..7d13022 100644
--- a/gdb/testsuite/gdb.server/connect-stopped-target.c
+++ b/gdb/testsuite/gdb.server/connect-stopped-target.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/connect-stopped-target.exp b/gdb/testsuite/gdb.server/connect-stopped-target.exp
index 5e15a50..021f063 100644
--- a/gdb/testsuite/gdb.server/connect-stopped-target.exp
+++ b/gdb/testsuite/gdb.server/connect-stopped-target.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/connect-with-no-symbol-file.c b/gdb/testsuite/gdb.server/connect-with-no-symbol-file.c
index b1c4cae..17885d5 100644
--- a/gdb/testsuite/gdb.server/connect-with-no-symbol-file.c
+++ b/gdb/testsuite/gdb.server/connect-with-no-symbol-file.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/connect-with-no-symbol-file.exp b/gdb/testsuite/gdb.server/connect-with-no-symbol-file.exp
index becd94d..4e5ee98 100644
--- a/gdb/testsuite/gdb.server/connect-with-no-symbol-file.exp
+++ b/gdb/testsuite/gdb.server/connect-with-no-symbol-file.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/connect-without-multi-process.c b/gdb/testsuite/gdb.server/connect-without-multi-process.c
index cd4a9b2..7d13022 100644
--- a/gdb/testsuite/gdb.server/connect-without-multi-process.c
+++ b/gdb/testsuite/gdb.server/connect-without-multi-process.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/connect-without-multi-process.exp b/gdb/testsuite/gdb.server/connect-without-multi-process.exp
index 872c8c9..1a7246c 100644
--- a/gdb/testsuite/gdb.server/connect-without-multi-process.exp
+++ b/gdb/testsuite/gdb.server/connect-without-multi-process.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/exit-multiple-threads.c b/gdb/testsuite/gdb.server/exit-multiple-threads.c
index 5bf0fc8..9427e53 100644
--- a/gdb/testsuite/gdb.server/exit-multiple-threads.c
+++ b/gdb/testsuite/gdb.server/exit-multiple-threads.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/exit-multiple-threads.exp b/gdb/testsuite/gdb.server/exit-multiple-threads.exp
index 79ff176..73e4c32 100644
--- a/gdb/testsuite/gdb.server/exit-multiple-threads.exp
+++ b/gdb/testsuite/gdb.server/exit-multiple-threads.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/ext-attach.c b/gdb/testsuite/gdb.server/ext-attach.c
index c7657d7..6718bb1 100644
--- a/gdb/testsuite/gdb.server/ext-attach.c
+++ b/gdb/testsuite/gdb.server/ext-attach.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/ext-attach.exp b/gdb/testsuite/gdb.server/ext-attach.exp
index 83589aa..bda3ae9 100644
--- a/gdb/testsuite/gdb.server/ext-attach.exp
+++ b/gdb/testsuite/gdb.server/ext-attach.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/ext-restart.exp b/gdb/testsuite/gdb.server/ext-restart.exp
index 4516ade..1d8d3a1 100644
--- a/gdb/testsuite/gdb.server/ext-restart.exp
+++ b/gdb/testsuite/gdb.server/ext-restart.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/ext-run.exp b/gdb/testsuite/gdb.server/ext-run.exp
index 296af98..2286454 100644
--- a/gdb/testsuite/gdb.server/ext-run.exp
+++ b/gdb/testsuite/gdb.server/ext-run.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/ext-wrapper.exp b/gdb/testsuite/gdb.server/ext-wrapper.exp
index c86acd2..8e3b8c5 100644
--- a/gdb/testsuite/gdb.server/ext-wrapper.exp
+++ b/gdb/testsuite/gdb.server/ext-wrapper.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/extended-remote-restart.c b/gdb/testsuite/gdb.server/extended-remote-restart.c
index a677436..8667b4f 100644
--- a/gdb/testsuite/gdb.server/extended-remote-restart.c
+++ b/gdb/testsuite/gdb.server/extended-remote-restart.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/extended-remote-restart.exp b/gdb/testsuite/gdb.server/extended-remote-restart.exp
index 0cfb383..df722a1 100644
--- a/gdb/testsuite/gdb.server/extended-remote-restart.exp
+++ b/gdb/testsuite/gdb.server/extended-remote-restart.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/file-transfer.exp b/gdb/testsuite/gdb.server/file-transfer.exp
index 0a80277..e56247f 100644
--- a/gdb/testsuite/gdb.server/file-transfer.exp
+++ b/gdb/testsuite/gdb.server/file-transfer.exp
@@ -1,5 +1,5 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/fileio-packets.exp b/gdb/testsuite/gdb.server/fileio-packets.exp
new file mode 100644
index 0000000..9435efd
--- /dev/null
+++ b/gdb/testsuite/gdb.server/fileio-packets.exp
@@ -0,0 +1,66 @@
+# Copyright 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Test some remote file I/O. The associated Python script uses the
+# Python API to create and send vFile:* packets to gdbserver to
+# perform actions like 'stat'. The same action is then performed
+# directly from Python (e.g. a 'stat' is performed), and the results,
+# from gdbserver, and from the local syscall, are compared.
+
+load_lib gdb-python.exp
+load_lib gdbserver-support.exp
+
+require allow_python_tests
+require allow_gdbserver_tests
+require {!is_remote host}
+require {!is_remote target}
+
+standard_testfile
+
+clean_restart
+
+# Make sure we're disconnected, in case we're testing with an
+# extended-remote board, therefore already connected.
+gdb_test "disconnect" ".*"
+
+set pyfile [gdb_remote_download host ${srcdir}/${subdir}/${testfile}.py]
+gdb_test_no_output "source $pyfile" "source the script"
+
+# Start gdbserver, but always in extended-remote mode, and then
+# connect to it from GDB.
+set res [gdbserver_start "--multi --once" ""]
+set gdbserver_protocol "extended-remote"
+set gdbserver_gdbport [lindex $res 1]
+gdb_target_cmd $gdbserver_protocol $gdbserver_gdbport
+
+gdb_test_no_output "set python print-stack full"
+
+set test_file_1 [standard_output_file "test_file_1"]
+remote_exec host "touch $test_file_1"
+
+set test_file_2 [standard_output_file "test_file_2"]
+remote_exec host "ln -s $test_file_1 $test_file_2"
+
+gdb_test "python check_lstat(\"$test_file_1\")" "PASS" \
+ "check remote lstat works on a normal file"
+
+gdb_test "python check_lstat(\"$test_file_2\")" "PASS" \
+ "check remote lstat works on a symbolic link"
+
+gdb_test "python check_stat(\"$test_file_1\")" "PASS" \
+ "check remote stat works on a normal file"
+
+gdb_test "python check_stat(\"$test_file_2\")" "PASS" \
+ "check remote stat works on a symbolic link"
diff --git a/gdb/testsuite/gdb.server/fileio-packets.py b/gdb/testsuite/gdb.server/fileio-packets.py
new file mode 100644
index 0000000..f132e91
--- /dev/null
+++ b/gdb/testsuite/gdb.server/fileio-packets.py
@@ -0,0 +1,208 @@
+# Copyright (C) 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+import os
+import stat
+
+
+# Hex encode INPUT_STRING in the same way that GDB does. Each
+# character in INPUT_STRING is expanded to its two digit hex
+# representation in the returned string.
+#
+# Only ASCII characters may appear in INPUT_STRING, this is more
+# restrictive than GDB, but is good enough for testing.
+def hex_encode(input_string):
+ byte_string = input_string.encode("ascii")
+ hex_string = byte_string.hex()
+ return hex_string
+
+
+# Binary remote data packets can contain some escaped bytes. Decode
+# the packet now.
+def unescape_remote_data(buf):
+ escaped = False
+ res = bytearray()
+ for b in buf:
+ if escaped:
+ res.append(b ^ 0x20)
+ escaped = False
+ elif b == ord("}"):
+ escaped = True
+ else:
+ res.append(b)
+ res = bytes(res)
+ return res
+
+
+# Decode the results of a remote stat like command from BUF. Returns
+# None if BUF is not a valid stat result (e.g. if it indicates an
+# error, or the buffer is too short). If BUF is valid then the fields
+# are decoded according to the GDB remote protocol and placed into a
+# dictionary, this dictionary is then returned.
+def decode_stat_reply(buf, byteorder="big"):
+
+ buf = unescape_remote_data(buf)
+
+ if (
+ buf[0] != ord("F")
+ or buf[1] != ord("4")
+ or buf[2] != ord("0")
+ or buf[3] != ord(";")
+ or len(buf) != 68
+ ):
+ l = len(buf)
+ print(f"decode_stat_reply failed: {buf}\t(length = {l})")
+ return None
+
+ # Discard the 'F40;' prefix. The rest is the 64 bytes of data to
+ # be decoded.
+ buf = buf[4:]
+
+ st_dev = int.from_bytes(buf[0:4], byteorder=byteorder)
+ st_ino = int.from_bytes(buf[4:8], byteorder=byteorder)
+ st_mode = int.from_bytes(buf[8:12], byteorder=byteorder)
+ st_nlink = int.from_bytes(buf[12:16], byteorder=byteorder)
+ st_uid = int.from_bytes(buf[16:20], byteorder=byteorder)
+ st_gid = int.from_bytes(buf[20:24], byteorder=byteorder)
+ st_rdev = int.from_bytes(buf[24:28], byteorder=byteorder)
+ st_size = int.from_bytes(buf[28:36], byteorder=byteorder)
+ st_blksize = int.from_bytes(buf[36:44], byteorder=byteorder)
+ st_blocks = int.from_bytes(buf[44:52], byteorder=byteorder)
+ st_atime = int.from_bytes(buf[52:56], byteorder=byteorder)
+ st_mtime = int.from_bytes(buf[56:60], byteorder=byteorder)
+ st_ctime = int.from_bytes(buf[60:64], byteorder=byteorder)
+
+ return {
+ "st_dev": st_dev,
+ "st_ino": st_ino,
+ "st_mode": st_mode,
+ "st_nlink": st_nlink,
+ "st_uid": st_uid,
+ "st_gid": st_gid,
+ "st_rdev": st_rdev,
+ "st_size": st_size,
+ "st_blksize": st_blksize,
+ "st_blocks": st_blocks,
+ "st_atime": st_atime,
+ "st_mtime": st_mtime,
+ "st_ctime": st_ctime,
+ }
+
+
+# Perform an lstat of remote file FILENAME, and create a dictionary of
+# the results, the keys are the fields of the stat structure.
+def remote_lstat(filename):
+ conn = gdb.selected_inferior().connection
+ if not isinstance(conn, gdb.RemoteTargetConnection):
+ raise gdb.GdbError("connection is the wrong type")
+
+ filename_hex = hex_encode(filename)
+ reply = conn.send_packet("vFile:lstat:%s" % filename_hex)
+
+ stat = decode_stat_reply(reply)
+ return stat
+
+
+# Perform a stat of remote file FILENAME, and create a dictionary of
+# the results, the keys are the fields of the stat structure.
+def remote_stat(filename):
+ conn = gdb.selected_inferior().connection
+ if not isinstance(conn, gdb.RemoteTargetConnection):
+ raise gdb.GdbError("connection is the wrong type")
+
+ filename_hex = hex_encode(filename)
+ reply = conn.send_packet("vFile:stat:%s" % filename_hex)
+
+ stat = decode_stat_reply(reply)
+ return stat
+
+
+# Convert a stat_result object to a dictionary that should match the
+# dictionary built from the remote protocol reply.
+def stat_result_to_dict(res):
+ # GDB doesn't support the S_IFLNK flag for the remote protocol, so
+ # clear that flag in the local results.
+ if stat.S_ISLNK(res.st_mode):
+ st_mode = stat.S_IMODE(res.st_mode)
+ else:
+ st_mode = res.st_mode
+
+ # GDB returns an integer for these fields, while Python returns a
+ # floating point value. Convert back to an integer to match GDB.
+ st_atime = int(res.st_atime)
+ st_mtime = int(res.st_mtime)
+ st_ctime = int(res.st_ctime)
+
+ return {
+ "st_dev": res.st_dev,
+ "st_ino": res.st_ino,
+ "st_mode": st_mode,
+ "st_nlink": res.st_nlink,
+ "st_uid": res.st_uid,
+ "st_gid": res.st_gid,
+ "st_rdev": res.st_rdev,
+ "st_size": res.st_size,
+ "st_blksize": res.st_blksize,
+ "st_blocks": res.st_blocks,
+ "st_atime": st_atime,
+ "st_mtime": st_mtime,
+ "st_ctime": st_ctime,
+ }
+
+
+# Perform an lstat of local file FILENAME, and create a dictionary of
+# the results, the keys are the fields of the stat structure.
+def local_lstat(filename):
+ res = os.lstat(filename)
+ return stat_result_to_dict(res)
+
+
+# Perform an lstat of local file FILENAME, and create a dictionary of
+# the results, the keys are the fields of the stat structure.
+def local_stat(filename):
+ res = os.stat(filename)
+ return stat_result_to_dict(res)
+
+
+# Perform a remote lstat using GDB, and a local lstat using os.lstat.
+# Compare the results to check they are the same.
+#
+# For this test to work correctly, gdbserver, and GDB (where this
+# Python script is running), must see the same filesystem.
+def check_lstat(filename):
+ s1 = remote_lstat(filename)
+ s2 = local_lstat(filename)
+
+ print(f"remote = {s1}")
+ print(f"local = {s2}")
+
+ assert s1 == s2
+ print("PASS")
+
+
+# Perform a remote stat using GDB, and a local stat using os.stat.
+# Compare the results to check they are the same.
+#
+# For this test to work correctly, gdbserver, and GDB (where this
+# Python script is running), must see the same filesystem.
+def check_stat(filename):
+ s1 = remote_stat(filename)
+ s2 = local_stat(filename)
+
+ print(f"remote = {s1}")
+ print(f"local = {s2}")
+
+ assert s1 == s2
+ print("PASS")
diff --git a/gdb/testsuite/gdb.server/monitor-exit-quit.exp b/gdb/testsuite/gdb.server/monitor-exit-quit.exp
index a2fb1db..ce63560 100644
--- a/gdb/testsuite/gdb.server/monitor-exit-quit.exp
+++ b/gdb/testsuite/gdb.server/monitor-exit-quit.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/multi-ui-errors.c b/gdb/testsuite/gdb.server/multi-ui-errors.c
index a29f830..d058eef 100644
--- a/gdb/testsuite/gdb.server/multi-ui-errors.c
+++ b/gdb/testsuite/gdb.server/multi-ui-errors.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/multi-ui-errors.exp b/gdb/testsuite/gdb.server/multi-ui-errors.exp
index d6c9cf1..2cdf631 100644
--- a/gdb/testsuite/gdb.server/multi-ui-errors.exp
+++ b/gdb/testsuite/gdb.server/multi-ui-errors.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/no-thread-db.c b/gdb/testsuite/gdb.server/no-thread-db.c
index 032321a..be7d24f 100644
--- a/gdb/testsuite/gdb.server/no-thread-db.c
+++ b/gdb/testsuite/gdb.server/no-thread-db.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
Contributed by Intel Corporation.
diff --git a/gdb/testsuite/gdb.server/no-thread-db.exp b/gdb/testsuite/gdb.server/no-thread-db.exp
index 656fad1..9fd2090 100644
--- a/gdb/testsuite/gdb.server/no-thread-db.exp
+++ b/gdb/testsuite/gdb.server/no-thread-db.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corporation.
#
@@ -57,6 +57,8 @@ gdb_breakpoint ${srcfile}:[gdb_get_line_number "after tls assignment"]
gdb_continue_to_breakpoint "after tls assignment"
# Printing a tls variable should fail gracefully without a libthread_db.
+# Alternately, the correct answer might be printed due GDB's internal
+# TLS support for some targets.
set re_exec "\[^\r\n\]*[file tail $binfile]"
gdb_test "print foo" \
- "Cannot find thread-local storage for Thread \[^,\]+, executable file $re_exec:\[\r\n\]+Remote target failed to process qGetTLSAddr request"
+ "= 1|(?:Cannot find thread-local storage for Thread \[^,\]+, executable file $re_exec:\[\r\n\]+Remote target failed to process qGetTLSAddr request)"
diff --git a/gdb/testsuite/gdb.server/non-existing-program.exp b/gdb/testsuite/gdb.server/non-existing-program.exp
index 71b29c2..7119723 100644
--- a/gdb/testsuite/gdb.server/non-existing-program.exp
+++ b/gdb/testsuite/gdb.server/non-existing-program.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/normal.c b/gdb/testsuite/gdb.server/normal.c
index 3fab53d..a9a452a 100644
--- a/gdb/testsuite/gdb.server/normal.c
+++ b/gdb/testsuite/gdb.server/normal.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/pread-offset-size.S b/gdb/testsuite/gdb.server/pread-offset-size.S
new file mode 100644
index 0000000..6ca8cf0
--- /dev/null
+++ b/gdb/testsuite/gdb.server/pread-offset-size.S
@@ -0,0 +1,29 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+/* Here we are trying to create a large binary (> 2 GB),
+ 3742415472 bytes is about 3.5 gigabytes. */
+
+ .text
+ .globl _start
+_start:
+ .skip 3742415472
+ ret
+ .globl f
+ .type f, @function
+f:
+ ret
diff --git a/gdb/testsuite/gdb.server/pread-offset-size.exp b/gdb/testsuite/gdb.server/pread-offset-size.exp
new file mode 100644
index 0000000..54e67c5
--- /dev/null
+++ b/gdb/testsuite/gdb.server/pread-offset-size.exp
@@ -0,0 +1,49 @@
+# Copyright (C) 2025 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+#
+# Check that GDBserver's vFile::pread implementation is able to access
+# large files (> 2GB).
+
+load_lib gdbserver-support.exp
+
+require allow_gdbserver_tests
+
+standard_testfile .S
+
+if { [prepare_for_testing ${testfile}.exp $testfile \
+ $srcfile {debug additional_flags=-nostdlib} ] } {
+ return -1
+}
+
+clean_restart
+
+gdb_test_no_output "set remote exec-file $binfile" \
+ "set remote exec-file"
+
+# Make sure we're disconnected, in case we're testing with an
+# extended-remote board, therefore already connected.
+gdb_test "disconnect" ".*"
+
+set res [gdbserver_spawn ""]
+set gdbserver_protocol [lindex $res 0]
+set gdbserver_gdbport [lindex $res 1]
+
+gdb_test "target $gdbserver_protocol $gdbserver_gdbport" \
+ "Remote debugging using .*" \
+ "target $gdbserver_protocol"
+
+# If loading the large binary was successful, we should be able to
+# place a breakpoint on f.
+gdb_test "break f" "Breakpoint 1.*"
diff --git a/gdb/testsuite/gdb.server/reconnect-ctrl-c.c b/gdb/testsuite/gdb.server/reconnect-ctrl-c.c
index 695b55d..af8ed9b 100644
--- a/gdb/testsuite/gdb.server/reconnect-ctrl-c.c
+++ b/gdb/testsuite/gdb.server/reconnect-ctrl-c.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/reconnect-ctrl-c.exp b/gdb/testsuite/gdb.server/reconnect-ctrl-c.exp
index 4cf0bb5..83869a3 100644
--- a/gdb/testsuite/gdb.server/reconnect-ctrl-c.exp
+++ b/gdb/testsuite/gdb.server/reconnect-ctrl-c.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/remote-read-msgs.c b/gdb/testsuite/gdb.server/remote-read-msgs.c
index bbcfb01..9369dd4 100644
--- a/gdb/testsuite/gdb.server/remote-read-msgs.c
+++ b/gdb/testsuite/gdb.server/remote-read-msgs.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/remote-read-msgs.exp b/gdb/testsuite/gdb.server/remote-read-msgs.exp
index e204655..6c6db21 100644
--- a/gdb/testsuite/gdb.server/remote-read-msgs.exp
+++ b/gdb/testsuite/gdb.server/remote-read-msgs.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/run-without-local-binary.exp b/gdb/testsuite/gdb.server/run-without-local-binary.exp
index 58548ff..0a5c538 100644
--- a/gdb/testsuite/gdb.server/run-without-local-binary.exp
+++ b/gdb/testsuite/gdb.server/run-without-local-binary.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/server-connect.exp b/gdb/testsuite/gdb.server/server-connect.exp
index 7617da6..8b53f61 100644
--- a/gdb/testsuite/gdb.server/server-connect.exp
+++ b/gdb/testsuite/gdb.server/server-connect.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/server-exec-info.exp b/gdb/testsuite/gdb.server/server-exec-info.exp
index 6bfc3b7b..fccf075 100644
--- a/gdb/testsuite/gdb.server/server-exec-info.exp
+++ b/gdb/testsuite/gdb.server/server-exec-info.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/server-kill-python.exp b/gdb/testsuite/gdb.server/server-kill-python.exp
index a771e6f..a9027b7 100644
--- a/gdb/testsuite/gdb.server/server-kill-python.exp
+++ b/gdb/testsuite/gdb.server/server-kill-python.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/server-kill.c b/gdb/testsuite/gdb.server/server-kill.c
index cccc871..3f3c17e 100644
--- a/gdb/testsuite/gdb.server/server-kill.c
+++ b/gdb/testsuite/gdb.server/server-kill.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/server-kill.exp b/gdb/testsuite/gdb.server/server-kill.exp
index 4fc2509..0a759ae 100644
--- a/gdb/testsuite/gdb.server/server-kill.exp
+++ b/gdb/testsuite/gdb.server/server-kill.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/server-mon.exp b/gdb/testsuite/gdb.server/server-mon.exp
index 80e34a0..c46b37b 100644
--- a/gdb/testsuite/gdb.server/server-mon.exp
+++ b/gdb/testsuite/gdb.server/server-mon.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/server-pipe.exp b/gdb/testsuite/gdb.server/server-pipe.exp
index 3d73c2e..d786946 100644
--- a/gdb/testsuite/gdb.server/server-pipe.exp
+++ b/gdb/testsuite/gdb.server/server-pipe.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/server-run.exp b/gdb/testsuite/gdb.server/server-run.exp
index e81384f..6c9db98 100644
--- a/gdb/testsuite/gdb.server/server-run.exp
+++ b/gdb/testsuite/gdb.server/server-run.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2005-2024 Free Software Foundation, Inc.
+# Copyright 2005-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/server.c b/gdb/testsuite/gdb.server/server.c
index 40cee26..422e000 100644
--- a/gdb/testsuite/gdb.server/server.c
+++ b/gdb/testsuite/gdb.server/server.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2005-2024 Free Software Foundation, Inc.
+ Copyright 2005-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/solib-list-lib.c b/gdb/testsuite/gdb.server/solib-list-lib.c
index 5217995..04a1997 100644
--- a/gdb/testsuite/gdb.server/solib-list-lib.c
+++ b/gdb/testsuite/gdb.server/solib-list-lib.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/solib-list-main.c b/gdb/testsuite/gdb.server/solib-list-main.c
index e9f1629..9eac9cf 100644
--- a/gdb/testsuite/gdb.server/solib-list-main.c
+++ b/gdb/testsuite/gdb.server/solib-list-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/solib-list.exp b/gdb/testsuite/gdb.server/solib-list.exp
index bbc5df4..4729967 100644
--- a/gdb/testsuite/gdb.server/solib-list.exp
+++ b/gdb/testsuite/gdb.server/solib-list.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/stop-reply-no-thread-multi.c b/gdb/testsuite/gdb.server/stop-reply-no-thread-multi.c
index be70716..36c754c 100644
--- a/gdb/testsuite/gdb.server/stop-reply-no-thread-multi.c
+++ b/gdb/testsuite/gdb.server/stop-reply-no-thread-multi.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/stop-reply-no-thread-multi.exp b/gdb/testsuite/gdb.server/stop-reply-no-thread-multi.exp
index 9d121c5f..42608c4 100644
--- a/gdb/testsuite/gdb.server/stop-reply-no-thread-multi.exp
+++ b/gdb/testsuite/gdb.server/stop-reply-no-thread-multi.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/stop-reply-no-thread.c b/gdb/testsuite/gdb.server/stop-reply-no-thread.c
index 71d4209..117c438 100644
--- a/gdb/testsuite/gdb.server/stop-reply-no-thread.c
+++ b/gdb/testsuite/gdb.server/stop-reply-no-thread.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/stop-reply-no-thread.exp b/gdb/testsuite/gdb.server/stop-reply-no-thread.exp
index b30defc..38402e8 100644
--- a/gdb/testsuite/gdb.server/stop-reply-no-thread.exp
+++ b/gdb/testsuite/gdb.server/stop-reply-no-thread.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/sysroot.c b/gdb/testsuite/gdb.server/sysroot.c
index 294fb7c..481beaf 100644
--- a/gdb/testsuite/gdb.server/sysroot.c
+++ b/gdb/testsuite/gdb.server/sysroot.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/sysroot.exp b/gdb/testsuite/gdb.server/sysroot.exp
index 7f5597d..ec6201c 100644
--- a/gdb/testsuite/gdb.server/sysroot.exp
+++ b/gdb/testsuite/gdb.server/sysroot.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/target-exec-file.c b/gdb/testsuite/gdb.server/target-exec-file.c
index cb8b860..4caa75a 100644
--- a/gdb/testsuite/gdb.server/target-exec-file.c
+++ b/gdb/testsuite/gdb.server/target-exec-file.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/target-exec-file.exp b/gdb/testsuite/gdb.server/target-exec-file.exp
index 9a24b7a..8705217 100644
--- a/gdb/testsuite/gdb.server/target-exec-file.exp
+++ b/gdb/testsuite/gdb.server/target-exec-file.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/twice-connect.c b/gdb/testsuite/gdb.server/twice-connect.c
index 5677680..91b7727 100644
--- a/gdb/testsuite/gdb.server/twice-connect.c
+++ b/gdb/testsuite/gdb.server/twice-connect.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/twice-connect.exp b/gdb/testsuite/gdb.server/twice-connect.exp
index 95a3599..3124137 100644
--- a/gdb/testsuite/gdb.server/twice-connect.exp
+++ b/gdb/testsuite/gdb.server/twice-connect.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/unittest.exp b/gdb/testsuite/gdb.server/unittest.exp
index 6272d21..367cecf 100644
--- a/gdb/testsuite/gdb.server/unittest.exp
+++ b/gdb/testsuite/gdb.server/unittest.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/wrapper.c b/gdb/testsuite/gdb.server/wrapper.c
index 885b653..a70f3f9 100644
--- a/gdb/testsuite/gdb.server/wrapper.c
+++ b/gdb/testsuite/gdb.server/wrapper.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.server/wrapper.exp b/gdb/testsuite/gdb.server/wrapper.exp
index 1ca19bf..0180338 100644
--- a/gdb/testsuite/gdb.server/wrapper.exp
+++ b/gdb/testsuite/gdb.server/wrapper.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.stabs/exclfwd.exp b/gdb/testsuite/gdb.stabs/exclfwd.exp
index 0359bbe..b2adbf8 100644
--- a/gdb/testsuite/gdb.stabs/exclfwd.exp
+++ b/gdb/testsuite/gdb.stabs/exclfwd.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.stabs/exclfwd.h b/gdb/testsuite/gdb.stabs/exclfwd.h
index 4d093f2..d9ce9ff 100644
--- a/gdb/testsuite/gdb.stabs/exclfwd.h
+++ b/gdb/testsuite/gdb.stabs/exclfwd.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.stabs/exclfwd1.c b/gdb/testsuite/gdb.stabs/exclfwd1.c
index d026e45..45fbd65 100644
--- a/gdb/testsuite/gdb.stabs/exclfwd1.c
+++ b/gdb/testsuite/gdb.stabs/exclfwd1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.stabs/exclfwd2.c b/gdb/testsuite/gdb.stabs/exclfwd2.c
index 5149269..9bd4a70 100644
--- a/gdb/testsuite/gdb.stabs/exclfwd2.c
+++ b/gdb/testsuite/gdb.stabs/exclfwd2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.stabs/gdb11479.c b/gdb/testsuite/gdb.stabs/gdb11479.c
index cd6d9ae..d094899 100644
--- a/gdb/testsuite/gdb.stabs/gdb11479.c
+++ b/gdb/testsuite/gdb.stabs/gdb11479.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
Contributed by Pierre Muller.
diff --git a/gdb/testsuite/gdb.stabs/gdb11479.exp b/gdb/testsuite/gdb.stabs/gdb11479.exp
index 12f60ee..2318c0f 100644
--- a/gdb/testsuite/gdb.stabs/gdb11479.exp
+++ b/gdb/testsuite/gdb.stabs/gdb11479.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.stabs/weird.def b/gdb/testsuite/gdb.stabs/weird.def
index 179b126..f809963 100644
--- a/gdb/testsuite/gdb.stabs/weird.def
+++ b/gdb/testsuite/gdb.stabs/weird.def
@@ -294,7 +294,7 @@ attr69:
# Using double quotes requires an escaping, as the stabs string
# is a double quote delimited string.
.stabs "constString2:c=s\"Double quote String2\"", N_LSYM,0,0, 0
-# Escaping sinlge quote with is easy
+# Escaping single quote with is easy
.stabs "constString3:c=s'String3 with embedded quote \' in the middle'", N_LSYM,0,0, 0
# Esaping double quotes is less clear...
.stabs "constString4:c=s\"String4 with embedded quote \\" in the middle\"", N_LSYM,0,0, 0
diff --git a/gdb/testsuite/gdb.stabs/weird.exp b/gdb/testsuite/gdb.stabs/weird.exp
index 70fffb2..3bc6e0d 100644
--- a/gdb/testsuite/gdb.stabs/weird.exp
+++ b/gdb/testsuite/gdb.stabs/weird.exp
@@ -1,4 +1,4 @@
-# Copyright 1997-2024 Free Software Foundation, Inc.
+# Copyright 1997-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -293,7 +293,7 @@ gdb_expect 60 {
send_gdb "y\n"
exp_continue
}
- -re "^Reading symbols from .*$binfile_re\\.\\.\\.(|\r\nUsing host libthread_db library .*libthread_db.so.*\\.)\r\n$gdb_prompt $" {
+ -re "^Reading symbols from .*$binfile_re\\.\\.\\.(|\r\nUsing host libthread_db library .*libthread_db.so.*\\.)\r\n(\[^\\n\]*\n)?$gdb_prompt $" {
pass "weirdx.o read without error"
}
-re ".*$gdb_prompt $" {
diff --git a/gdb/testsuite/gdb.testsuite/board-sanity.exp b/gdb/testsuite/gdb.testsuite/board-sanity.exp
index acf37df..9c80282 100644
--- a/gdb/testsuite/gdb.testsuite/board-sanity.exp
+++ b/gdb/testsuite/gdb.testsuite/board-sanity.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.testsuite/capture-command-output.exp b/gdb/testsuite/gdb.testsuite/capture-command-output.exp
index 6828291..67d7b18 100644
--- a/gdb/testsuite/gdb.testsuite/capture-command-output.exp
+++ b/gdb/testsuite/gdb.testsuite/capture-command-output.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.testsuite/cond-wrap.exp b/gdb/testsuite/gdb.testsuite/cond-wrap.exp
index 3005b36..bc29c5a 100644
--- a/gdb/testsuite/gdb.testsuite/cond-wrap.exp
+++ b/gdb/testsuite/gdb.testsuite/cond-wrap.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.testsuite/dump-system-info.exp b/gdb/testsuite/gdb.testsuite/dump-system-info.exp
index 353f366..143f363 100644
--- a/gdb/testsuite/gdb.testsuite/dump-system-info.exp
+++ b/gdb/testsuite/gdb.testsuite/dump-system-info.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.testsuite/foreach_with_prefix.exp b/gdb/testsuite/gdb.testsuite/foreach_with_prefix.exp
index 2944273..03a2f68 100644
--- a/gdb/testsuite/gdb.testsuite/foreach_with_prefix.exp
+++ b/gdb/testsuite/gdb.testsuite/foreach_with_prefix.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.testsuite/gdb-caching-proc-consistency.exp b/gdb/testsuite/gdb.testsuite/gdb-caching-proc-consistency.exp
index 572ffb5..0957dbd 100644
--- a/gdb/testsuite/gdb.testsuite/gdb-caching-proc-consistency.exp
+++ b/gdb/testsuite/gdb.testsuite/gdb-caching-proc-consistency.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.testsuite/gdb-caching-proc.exp b/gdb/testsuite/gdb.testsuite/gdb-caching-proc.exp
index 0b7cfae..f9610af 100644
--- a/gdb/testsuite/gdb.testsuite/gdb-caching-proc.exp
+++ b/gdb/testsuite/gdb.testsuite/gdb-caching-proc.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.testsuite/gdb-test.exp b/gdb/testsuite/gdb.testsuite/gdb-test.exp
index a8aa53c..95555f8 100644
--- a/gdb/testsuite/gdb.testsuite/gdb-test.exp
+++ b/gdb/testsuite/gdb.testsuite/gdb-test.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.testsuite/gdb_test_multiple-lbl.exp b/gdb/testsuite/gdb.testsuite/gdb_test_multiple-lbl.exp
new file mode 100644
index 0000000..a05ce61
--- /dev/null
+++ b/gdb/testsuite/gdb.testsuite/gdb_test_multiple-lbl.exp
@@ -0,0 +1,84 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Test gdb_test_multiple -lbl, particularly with patterns that share a
+# common prefix.
+
+standard_testfile
+
+clean_restart
+
+gdb_test_no_output "source ${srcdir}/${subdir}/$testfile.gdb" \
+ "source gdb test script"
+
+set saw_prompt 0
+set saw_prefix 0
+set saw_command 0
+set saw_prefix_foo 0
+set saw_prefix_bar 0
+
+# #1 - We need anchors so that the "prefix foo" pattern below does not
+# match when the expect output buffer contains:
+#
+# "\r\nprefix xxx\r\n\prefix foo\r\n"
+#
+# #2 - We need an anchor on the prompt match as otherwise the prompt
+# regexp would match:
+#
+# "\r\nmeant-to-be-matched-by-lbl-2\r\nprefix xxx\r\n(gdb) "
+#
+# This test would fail if -lbl did not force the built-in prompt match
+# regexp to have an anchor as well, as without it, the built-in prompt
+# regexp would have the exact same issue as #2 above.
+
+gdb_test_multiple "command" "" -lbl {
+ -re "^command(?=\r\n)" {
+ verbose -log <COMMAND>
+ incr saw_command
+ exp_continue
+ }
+ -re "^\r\nprefix foo(?=\r\n)" {
+ verbose -log <PREFIX-FOO>
+ incr saw_prefix_foo
+ exp_continue
+ }
+ -re "^\r\nprefix bar(?=\r\n)" {
+ verbose -log <PREFIX-BAR>
+ incr saw_prefix_bar
+ exp_continue
+ }
+ -re "^\r\nprefix \[^\r\n\]*(?=\r\n)" {
+ verbose -log <PREFIX>
+ incr saw_prefix
+ exp_continue
+ }
+ -re "^\r\n$gdb_prompt $" {
+ verbose -log <PROMPT>
+ incr saw_prompt
+ pass $gdb_test_name
+ }
+}
+
+verbose -log "saw_command: $saw_command"
+verbose -log "saw_prefix_foo: $saw_prefix_foo"
+verbose -log "saw_prefix_bar: $saw_prefix_bar"
+verbose -log "saw_prefix: $saw_prefix"
+verbose -log "saw_prompt: $saw_prompt"
+
+gdb_assert {$saw_command == 1}
+gdb_assert {$saw_prefix_foo == 1}
+gdb_assert {$saw_prefix_bar == 1}
+gdb_assert {$saw_prefix == 3}
+gdb_assert {$saw_prompt == 1}
diff --git a/gdb/testsuite/gdb.testsuite/gdb_test_multiple-lbl.gdb b/gdb/testsuite/gdb.testsuite/gdb_test_multiple-lbl.gdb
new file mode 100755
index 0000000..8c94dfa
--- /dev/null
+++ b/gdb/testsuite/gdb.testsuite/gdb_test_multiple-lbl.gdb
@@ -0,0 +1,25 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+define command
+ echo prefix xxx\n
+ echo meant-to-be-matched-by-lbl-1\n
+ echo prefix foo\n
+ echo prefix bar\n
+ echo meant-to-be-matched-by-lbl-2\n
+ echo prefix xxx\n
+ echo prefix xxx\n
+ echo meant-to-be-matched-by-lbl-3\n
+end
diff --git a/gdb/testsuite/gdb.testsuite/lmap.exp b/gdb/testsuite/gdb.testsuite/lmap.exp
index 736f670..da03722 100644
--- a/gdb/testsuite/gdb.testsuite/lmap.exp
+++ b/gdb/testsuite/gdb.testsuite/lmap.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.testsuite/parse_options_args.exp b/gdb/testsuite/gdb.testsuite/parse_options_args.exp
index 7239ef7..22a54a7 100644
--- a/gdb/testsuite/gdb.testsuite/parse_options_args.exp
+++ b/gdb/testsuite/gdb.testsuite/parse_options_args.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.testsuite/string-cat.exp b/gdb/testsuite/gdb.testsuite/string-cat.exp
index 057aeb2..94136e3 100644
--- a/gdb/testsuite/gdb.testsuite/string-cat.exp
+++ b/gdb/testsuite/gdb.testsuite/string-cat.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.testsuite/string_to_regexp.exp b/gdb/testsuite/gdb.testsuite/string_to_regexp.exp
index 4cafce3..0cb5296 100644
--- a/gdb/testsuite/gdb.testsuite/string_to_regexp.exp
+++ b/gdb/testsuite/gdb.testsuite/string_to_regexp.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.testsuite/version-compare.exp b/gdb/testsuite/gdb.testsuite/version-compare.exp
new file mode 100644
index 0000000..8f2573e
--- /dev/null
+++ b/gdb/testsuite/gdb.testsuite/version-compare.exp
@@ -0,0 +1,74 @@
+# Copyright 2025 Free Software Foundation, Inc.
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Check version_compare proc.
+
+proc eq { a b } {
+ with_test_prefix "$a == $b" {
+ gdb_assert { [version_compare $a == $b] }
+ gdb_assert { [version_compare $a <= $b] }
+ gdb_assert { [version_compare $a >= $b] }
+ gdb_assert { ![version_compare $a < $b] }
+ gdb_assert { ![version_compare $a > $b] }
+ }
+}
+
+proc lt { a b } {
+ with_test_prefix "$a < $b" {
+ gdb_assert { [version_compare $a < $b] }
+ gdb_assert { [version_compare $a <= $b] }
+ gdb_assert { [version_compare $b > $a] }
+ gdb_assert { [version_compare $b >= $a] }
+ gdb_assert { ![version_compare $a == $b] }
+ gdb_assert { ![version_compare $b == $a] }
+ gdb_assert { ![version_compare $a > $b] }
+ gdb_assert { ![version_compare $a >= $b] }
+ gdb_assert { ![version_compare $b < $a] }
+ gdb_assert { ![version_compare $b <= $a] }
+ }
+}
+
+# Equal, same length.
+eq {1 0} {1 0}
+
+# Smaller than, same length.
+lt {1 0} {1 1}
+lt {1 1} {2 0}
+
+# Smaller than, different length.
+lt {1 3} {2}
+lt {1} {2 0}
+
+# The question how v1 and v1.0 relate to each other is not a trivial one.
+#
+# For instance, Python considers v1 == v1.0:
+# $ test.py
+# #!/usr/bin/python3
+# from packaging.version import parse
+# v1_0 = parse("1.0")
+# v1 = parse("1")
+# print (v1 == v1_0)
+# $ ./test.py
+# True
+#
+# OTOH, version sort from coreutils considers v1 < v1.0:
+# $ cat bla.txt
+# 1.0
+# 1
+# $ sort -V bla.txt
+# 1
+# 1.0
+#
+# Proc version_compare seems to have taken the latter approach.
+lt {1} {1 0}
diff --git a/gdb/testsuite/gdb.testsuite/with-override.exp b/gdb/testsuite/gdb.testsuite/with-override.exp
index a0a4962..9180150 100644
--- a/gdb/testsuite/gdb.testsuite/with-override.exp
+++ b/gdb/testsuite/gdb.testsuite/with-override.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.threads/access-mem-running-thread-exit.c b/gdb/testsuite/gdb.threads/access-mem-running-thread-exit.c
index af05b13..d4cde31 100644
--- a/gdb/testsuite/gdb.threads/access-mem-running-thread-exit.c
+++ b/gdb/testsuite/gdb.threads/access-mem-running-thread-exit.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -97,6 +97,11 @@ thread_fn (void *arg)
return NULL;
}
+static void
+setup_done (void)
+{
+}
+
int
main (void)
{
@@ -104,6 +109,8 @@ main (void)
global_var++;
+ setup_done ();
+
for (i = 0; i < 4; i++)
{
struct thread_arg *p;
diff --git a/gdb/testsuite/gdb.threads/access-mem-running-thread-exit.exp b/gdb/testsuite/gdb.threads/access-mem-running-thread-exit.exp
index 784f17f..fec31c3 100644
--- a/gdb/testsuite/gdb.threads/access-mem-running-thread-exit.exp
+++ b/gdb/testsuite/gdb.threads/access-mem-running-thread-exit.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -54,7 +54,7 @@ proc test { non_stop } {
clean_restart ${binfile}
}
- if ![runto_main] {
+ if ![runto setup_done] {
return -1
}
@@ -74,42 +74,45 @@ proc test { non_stop } {
delete_breakpoints
# Start the second inferior.
- with_test_prefix "second inferior" {
- # With stub targets that do reload on run, if we let the new
- # inferior share inferior 1's connection, runto_main would
- # fail because GDB is already connected to something, like
- # e.g. with --target_board=native-gdbserver:
- #
- # (gdb) kill
- # ...
- # (gdb) target remote localhost:2348
- # Already connected to a remote target. Disconnect? (y or n)
- #
- # Instead, start the inferior with no connection, and let
- # gdb_load/runto_main spawn a new remote connection/gdbserver.
- #
- # OTOH, with extended-remote, we must let the new inferior
- # reuse the current connection, so that runto_main below can
- # issue the "run" command, and have the inferior run on the
- # remote target. If we forced no connection, then "run" would
- # either fail if "set auto-connect-native-target" is on, like
- # the native-extended-gdbserver board enforces, or it would
- # run the inferior on the native target, which isn't what is
- # being tested.
- #
- # Since it's reload_on_run targets that need special care, we
- # default to reusing the connection on most targets.
- if [target_info exists gdb,do_reload_on_run] {
- gdb_test "add-inferior -no-connection" "New inferior 2.*"
- } else {
- gdb_test "add-inferior" "New inferior 2.*"
- }
- gdb_test "inferior 2" "Switching to inferior 2 .*"
-
- gdb_load $binfile
-
- if ![runto_main] {
- return -1
+ if {[allow_multi_inferior_tests]} {
+ with_test_prefix "second inferior" {
+ # With stub targets that do reload on run, if we let the
+ # new inferior share inferior 1's connection, runto would
+ # fail because GDB is already connected to something, like
+ # e.g. with --target_board=native-gdbserver:
+ #
+ # (gdb) kill
+ # ...
+ # (gdb) target remote localhost:2348
+ # Already connected to a remote target. Disconnect? (y or n)
+ #
+ # Instead, start the inferior with no connection, and let
+ # gdb_load/runto spawn a new remote connection/gdbserver.
+ #
+ # OTOH, with extended-remote, we must let the new inferior
+ # reuse the current connection, so that runto below can
+ # issue the "run" command, and have the inferior run on
+ # the remote target. If we forced no connection, then
+ # "run" would either fail if "set
+ # auto-connect-native-target" is on, like the
+ # native-extended-gdbserver board enforces, or it would
+ # run the inferior on the native target, which isn't what
+ # is being tested.
+ #
+ # Since it's reload_on_run targets that need special care,
+ # we default to reusing the connection on most targets.
+ if [target_info exists gdb,do_reload_on_run] {
+ gdb_test "add-inferior -no-connection" "New inferior 2.*"
+ } else {
+ gdb_test "add-inferior" "New inferior 2.*"
+ }
+ gdb_test "inferior 2" "Switching to inferior 2 .*"
+
+ gdb_load $binfile
+
+ if ![runto setup_done] {
+ return -1
+ }
}
}
@@ -158,13 +161,15 @@ proc test { non_stop } {
verbose -log "xxxxx: iteration $iter"
gdb_test -nopass "info threads"
- if {$inf == 1} {
- set inf 2
- } else {
- set inf 1
- }
+ if {[allow_multi_inferior_tests]} {
+ if {$inf == 1} {
+ set inf 2
+ } else {
+ set inf 1
+ }
- my_gdb_test "inferior $inf" ".*" "inferior $inf"
+ my_gdb_test "inferior $inf" ".*" "inferior $inf"
+ }
my_gdb_test "print global_var = 555" " = 555" \
"write to global_var"
diff --git a/gdb/testsuite/gdb.threads/async.c b/gdb/testsuite/gdb.threads/async.c
index b27b9b4..3f97c75 100644
--- a/gdb/testsuite/gdb.threads/async.c
+++ b/gdb/testsuite/gdb.threads/async.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/async.exp b/gdb/testsuite/gdb.threads/async.exp
index ba0377a..b1e562a 100644
--- a/gdb/testsuite/gdb.threads/async.exp
+++ b/gdb/testsuite/gdb.threads/async.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# Copyright (C) 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/attach-into-signal.c b/gdb/testsuite/gdb.threads/attach-into-signal.c
index d998bb1..7299477 100644
--- a/gdb/testsuite/gdb.threads/attach-into-signal.c
+++ b/gdb/testsuite/gdb.threads/attach-into-signal.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/attach-into-signal.exp b/gdb/testsuite/gdb.threads/attach-into-signal.exp
index 91da960..0629736 100644
--- a/gdb/testsuite/gdb.threads/attach-into-signal.exp
+++ b/gdb/testsuite/gdb.threads/attach-into-signal.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.c b/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.c
index 74a71c5..378853b 100644
--- a/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.c
+++ b/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp b/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp
index 8883485..1b10d7e 100644
--- a/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp
+++ b/gdb/testsuite/gdb.threads/attach-many-short-lived-threads.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/attach-non-stop.c b/gdb/testsuite/gdb.threads/attach-non-stop.c
index f189954..6e3423b 100644
--- a/gdb/testsuite/gdb.threads/attach-non-stop.c
+++ b/gdb/testsuite/gdb.threads/attach-non-stop.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/attach-non-stop.exp b/gdb/testsuite/gdb.threads/attach-non-stop.exp
index eb12e6b..9404edd 100644
--- a/gdb/testsuite/gdb.threads/attach-non-stop.exp
+++ b/gdb/testsuite/gdb.threads/attach-non-stop.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/attach-slow-waitpid.c b/gdb/testsuite/gdb.threads/attach-slow-waitpid.c
index 9cb9047..81bf13d 100644
--- a/gdb/testsuite/gdb.threads/attach-slow-waitpid.c
+++ b/gdb/testsuite/gdb.threads/attach-slow-waitpid.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/attach-slow-waitpid.exp b/gdb/testsuite/gdb.threads/attach-slow-waitpid.exp
index 28d70da..a22187a 100644
--- a/gdb/testsuite/gdb.threads/attach-slow-waitpid.exp
+++ b/gdb/testsuite/gdb.threads/attach-slow-waitpid.exp
@@ -1,4 +1,4 @@
-# Copyright 2018-2024 Free Software Foundation, Inc.
+# Copyright 2018-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -83,7 +83,7 @@ proc gdb_spawn_with_ld_preload {lib} {
# 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.
- set_sanitizer_default ASAN_OPTIONS verify_asan_link_order 0
+ append_environment_default ASAN_OPTIONS verify_asan_link_order 0
gdb_start
}
diff --git a/gdb/testsuite/gdb.threads/attach-stopped.c b/gdb/testsuite/gdb.threads/attach-stopped.c
index 5a83af5..04ffc58 100644
--- a/gdb/testsuite/gdb.threads/attach-stopped.c
+++ b/gdb/testsuite/gdb.threads/attach-stopped.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/attach-stopped.exp b/gdb/testsuite/gdb.threads/attach-stopped.exp
index 0421ffc..e628adf 100644
--- a/gdb/testsuite/gdb.threads/attach-stopped.exp
+++ b/gdb/testsuite/gdb.threads/attach-stopped.exp
@@ -1,4 +1,4 @@
-# Copyright 2008-2024 Free Software Foundation, Inc.
+# Copyright 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/bp_in_thread.c b/gdb/testsuite/gdb.threads/bp_in_thread.c
index 0c5746d..9244efe 100644
--- a/gdb/testsuite/gdb.threads/bp_in_thread.c
+++ b/gdb/testsuite/gdb.threads/bp_in_thread.c
@@ -1,6 +1,6 @@
/* A small multi-threaded test case.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.threads/bp_in_thread.exp b/gdb/testsuite/gdb.threads/bp_in_thread.exp
index f31c5cd..c63f179 100644
--- a/gdb/testsuite/gdb.threads/bp_in_thread.exp
+++ b/gdb/testsuite/gdb.threads/bp_in_thread.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2024 Free Software Foundation, Inc.
+# Copyright (C) 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/break-while-running.c b/gdb/testsuite/gdb.threads/break-while-running.c
index 1483880..ad64f89 100644
--- a/gdb/testsuite/gdb.threads/break-while-running.c
+++ b/gdb/testsuite/gdb.threads/break-while-running.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/break-while-running.exp b/gdb/testsuite/gdb.threads/break-while-running.exp
index 4bec753..fbc2b59 100644
--- a/gdb/testsuite/gdb.threads/break-while-running.exp
+++ b/gdb/testsuite/gdb.threads/break-while-running.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/check-libthread-db.c b/gdb/testsuite/gdb.threads/check-libthread-db.c
index 608b21c..1a353c4 100644
--- a/gdb/testsuite/gdb.threads/check-libthread-db.c
+++ b/gdb/testsuite/gdb.threads/check-libthread-db.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/check-libthread-db.exp b/gdb/testsuite/gdb.threads/check-libthread-db.exp
index 6976fe6..b97ab49 100644
--- a/gdb/testsuite/gdb.threads/check-libthread-db.exp
+++ b/gdb/testsuite/gdb.threads/check-libthread-db.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/clone-attach-detach.c b/gdb/testsuite/gdb.threads/clone-attach-detach.c
index b07f096..22af4c7 100644
--- a/gdb/testsuite/gdb.threads/clone-attach-detach.c
+++ b/gdb/testsuite/gdb.threads/clone-attach-detach.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/clone-attach-detach.exp b/gdb/testsuite/gdb.threads/clone-attach-detach.exp
index de1f6a4..3da2c3e 100644
--- a/gdb/testsuite/gdb.threads/clone-attach-detach.exp
+++ b/gdb/testsuite/gdb.threads/clone-attach-detach.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -74,7 +74,7 @@ set attempts 3
for {set attempt 1} {$attempt <= $attempts} {incr attempt} {
with_test_prefix "bg attach $attempt" {
- gdb_test "attach $testpid &" \
+ gdb_test -no-prompt-anchor "attach $testpid &" \
"Attaching to program.*process $testpid.*" \
"attach"
diff --git a/gdb/testsuite/gdb.threads/clone-new-thread-event.c b/gdb/testsuite/gdb.threads/clone-new-thread-event.c
index d2cc90b..53c1b24 100644
--- a/gdb/testsuite/gdb.threads/clone-new-thread-event.c
+++ b/gdb/testsuite/gdb.threads/clone-new-thread-event.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/clone-new-thread-event.exp b/gdb/testsuite/gdb.threads/clone-new-thread-event.exp
index 55538c6..6b6b0a2 100644
--- a/gdb/testsuite/gdb.threads/clone-new-thread-event.exp
+++ b/gdb/testsuite/gdb.threads/clone-new-thread-event.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/clone-thread_db.c b/gdb/testsuite/gdb.threads/clone-thread_db.c
index 50843de..1118554 100644
--- a/gdb/testsuite/gdb.threads/clone-thread_db.c
+++ b/gdb/testsuite/gdb.threads/clone-thread_db.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/clone-thread_db.exp b/gdb/testsuite/gdb.threads/clone-thread_db.exp
index 24b744f..7ee233d 100644
--- a/gdb/testsuite/gdb.threads/clone-thread_db.exp
+++ b/gdb/testsuite/gdb.threads/clone-thread_db.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/continue-pending-after-query.c b/gdb/testsuite/gdb.threads/continue-pending-after-query.c
index 41ec499..2bd09f6 100644
--- a/gdb/testsuite/gdb.threads/continue-pending-after-query.c
+++ b/gdb/testsuite/gdb.threads/continue-pending-after-query.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/continue-pending-after-query.exp b/gdb/testsuite/gdb.threads/continue-pending-after-query.exp
index 7f2a60a..5069cd2 100644
--- a/gdb/testsuite/gdb.threads/continue-pending-after-query.exp
+++ b/gdb/testsuite/gdb.threads/continue-pending-after-query.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/continue-pending-status.c b/gdb/testsuite/gdb.threads/continue-pending-status.c
index cd35826..00f0a94 100644
--- a/gdb/testsuite/gdb.threads/continue-pending-status.c
+++ b/gdb/testsuite/gdb.threads/continue-pending-status.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/continue-pending-status.exp b/gdb/testsuite/gdb.threads/continue-pending-status.exp
index 32da7ec..9cde85a 100644
--- a/gdb/testsuite/gdb.threads/continue-pending-status.exp
+++ b/gdb/testsuite/gdb.threads/continue-pending-status.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/corethreads.c b/gdb/testsuite/gdb.threads/corethreads.c
index ef9946f..cb576bc 100644
--- a/gdb/testsuite/gdb.threads/corethreads.c
+++ b/gdb/testsuite/gdb.threads/corethreads.c
@@ -1,4 +1,4 @@
-/* Copyright 2011-2024 Free Software Foundation, Inc.
+/* Copyright 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.threads/corethreads.exp b/gdb/testsuite/gdb.threads/corethreads.exp
index 4175948..3b50ae3 100644
--- a/gdb/testsuite/gdb.threads/corethreads.exp
+++ b/gdb/testsuite/gdb.threads/corethreads.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/create-fail.c b/gdb/testsuite/gdb.threads/create-fail.c
index e4cd27e..e7976b1 100644
--- a/gdb/testsuite/gdb.threads/create-fail.c
+++ b/gdb/testsuite/gdb.threads/create-fail.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/create-fail.exp b/gdb/testsuite/gdb.threads/create-fail.exp
index 908f095..14f3f4b 100644
--- a/gdb/testsuite/gdb.threads/create-fail.exp
+++ b/gdb/testsuite/gdb.threads/create-fail.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2024 Free Software Foundation, Inc.
+# Copyright (C) 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/current-lwp-dead.c b/gdb/testsuite/gdb.threads/current-lwp-dead.c
index 4aa15a2..e2d149d 100644
--- a/gdb/testsuite/gdb.threads/current-lwp-dead.c
+++ b/gdb/testsuite/gdb.threads/current-lwp-dead.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/current-lwp-dead.exp b/gdb/testsuite/gdb.threads/current-lwp-dead.exp
index 9951994..c8364df 100644
--- a/gdb/testsuite/gdb.threads/current-lwp-dead.exp
+++ b/gdb/testsuite/gdb.threads/current-lwp-dead.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -47,6 +47,6 @@ gdb_breakpoint $line
gdb_continue_to_breakpoint "fn_return" ".*at-fn_return.*"
# Confirm thread 2 is really gone.
-gdb_test "info threads 2" "No threads match '2'\\."
+gdb_test "info threads 2" "No threads matched\\."
gdb_continue_to_end "" continue 1
diff --git a/gdb/testsuite/gdb.threads/del-pending-thread-bp-lib.c b/gdb/testsuite/gdb.threads/del-pending-thread-bp-lib.c
index 15d1b98..d34a103 100644
--- a/gdb/testsuite/gdb.threads/del-pending-thread-bp-lib.c
+++ b/gdb/testsuite/gdb.threads/del-pending-thread-bp-lib.c
@@ -1,4 +1,4 @@
-/* Copyright 2023 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/del-pending-thread-bp.c b/gdb/testsuite/gdb.threads/del-pending-thread-bp.c
index 6fc76db..85b3db5 100644
--- a/gdb/testsuite/gdb.threads/del-pending-thread-bp.c
+++ b/gdb/testsuite/gdb.threads/del-pending-thread-bp.c
@@ -1,4 +1,4 @@
-/* Copyright 2023 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/del-pending-thread-bp.exp b/gdb/testsuite/gdb.threads/del-pending-thread-bp.exp
index 14a91a4..1fbfc40 100644
--- a/gdb/testsuite/gdb.threads/del-pending-thread-bp.exp
+++ b/gdb/testsuite/gdb.threads/del-pending-thread-bp.exp
@@ -1,4 +1,4 @@
-# Copyright 2023 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/detach-step-over.c b/gdb/testsuite/gdb.threads/detach-step-over.c
index 17fcd50..5559ce1 100644
--- a/gdb/testsuite/gdb.threads/detach-step-over.c
+++ b/gdb/testsuite/gdb.threads/detach-step-over.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/detach-step-over.exp b/gdb/testsuite/gdb.threads/detach-step-over.exp
index ddaad34..8a1cb29 100644
--- a/gdb/testsuite/gdb.threads/detach-step-over.exp
+++ b/gdb/testsuite/gdb.threads/detach-step-over.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -50,6 +50,8 @@
require can_spawn_for_attach
+require allow_multi_inferior_tests
+
standard_testfile
set bp_lineno [gdb_get_line_number "Set breakpoint here"]
diff --git a/gdb/testsuite/gdb.threads/dlopen-libpthread-lib.c b/gdb/testsuite/gdb.threads/dlopen-libpthread-lib.c
index be6f18e..c17a152 100644
--- a/gdb/testsuite/gdb.threads/dlopen-libpthread-lib.c
+++ b/gdb/testsuite/gdb.threads/dlopen-libpthread-lib.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/dlopen-libpthread.c b/gdb/testsuite/gdb.threads/dlopen-libpthread.c
index 0475ac7..aa724e7 100644
--- a/gdb/testsuite/gdb.threads/dlopen-libpthread.c
+++ b/gdb/testsuite/gdb.threads/dlopen-libpthread.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/dlopen-libpthread.exp b/gdb/testsuite/gdb.threads/dlopen-libpthread.exp
index 0343f7e..13a2532 100644
--- a/gdb/testsuite/gdb.threads/dlopen-libpthread.exp
+++ b/gdb/testsuite/gdb.threads/dlopen-libpthread.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/execl.c b/gdb/testsuite/gdb.threads/execl.c
index 7880041..86a065c 100644
--- a/gdb/testsuite/gdb.threads/execl.c
+++ b/gdb/testsuite/gdb.threads/execl.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/execl.exp b/gdb/testsuite/gdb.threads/execl.exp
index 194438b..502d387 100644
--- a/gdb/testsuite/gdb.threads/execl.exp
+++ b/gdb/testsuite/gdb.threads/execl.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/execl1.c b/gdb/testsuite/gdb.threads/execl1.c
index 553923b..5177ac0 100644
--- a/gdb/testsuite/gdb.threads/execl1.c
+++ b/gdb/testsuite/gdb.threads/execl1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/foll-fork-other-thread.c b/gdb/testsuite/gdb.threads/foll-fork-other-thread.c
index bd8617a..6213cd8 100644
--- a/gdb/testsuite/gdb.threads/foll-fork-other-thread.c
+++ b/gdb/testsuite/gdb.threads/foll-fork-other-thread.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/foll-fork-other-thread.exp b/gdb/testsuite/gdb.threads/foll-fork-other-thread.exp
index 3c6a056..8ab540c 100644
--- a/gdb/testsuite/gdb.threads/foll-fork-other-thread.exp
+++ b/gdb/testsuite/gdb.threads/foll-fork-other-thread.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -17,6 +17,8 @@
# another thread, in different combinations of "set follow-fork
# parent/child", and other execution modes.
+require allow_fork_tests
+
standard_testfile
# Line where to stop the main thread.
diff --git a/gdb/testsuite/gdb.threads/fork-child-threads.c b/gdb/testsuite/gdb.threads/fork-child-threads.c
index 7e55e9c..209ba7f 100644
--- a/gdb/testsuite/gdb.threads/fork-child-threads.c
+++ b/gdb/testsuite/gdb.threads/fork-child-threads.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/fork-child-threads.exp b/gdb/testsuite/gdb.threads/fork-child-threads.exp
index 8f13970..ba9dfc2 100644
--- a/gdb/testsuite/gdb.threads/fork-child-threads.exp
+++ b/gdb/testsuite/gdb.threads/fork-child-threads.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -13,10 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Only GNU/Linux is known to support `set follow-fork-mode child'.
-if { ! [istarget "*-*-linux*"] } {
- return 0
-}
+require allow_fork_tests
standard_testfile
diff --git a/gdb/testsuite/gdb.threads/fork-plus-threads.c b/gdb/testsuite/gdb.threads/fork-plus-threads.c
index 4e3e9d4..f12c936 100644
--- a/gdb/testsuite/gdb.threads/fork-plus-threads.c
+++ b/gdb/testsuite/gdb.threads/fork-plus-threads.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/fork-plus-threads.exp b/gdb/testsuite/gdb.threads/fork-plus-threads.exp
index c08b4c1..4ce88d3 100644
--- a/gdb/testsuite/gdb.threads/fork-plus-threads.exp
+++ b/gdb/testsuite/gdb.threads/fork-plus-threads.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@
#
# See https://sourceware.org/bugzilla/show_bug.cgi?id=18600
+require allow_fork_tests
+
# In remote mode, we cannot continue debugging after all
# inferiors have terminated, and this test requires that.
if { [target_info exists gdb_protocol]
diff --git a/gdb/testsuite/gdb.threads/fork-thread-pending.c b/gdb/testsuite/gdb.threads/fork-thread-pending.c
index a9b557a..99bd821 100644
--- a/gdb/testsuite/gdb.threads/fork-thread-pending.c
+++ b/gdb/testsuite/gdb.threads/fork-thread-pending.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/fork-thread-pending.exp b/gdb/testsuite/gdb.threads/fork-thread-pending.exp
index d31a347..538e1ca 100644
--- a/gdb/testsuite/gdb.threads/fork-thread-pending.exp
+++ b/gdb/testsuite/gdb.threads/fork-thread-pending.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -13,11 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Only GNU/Linux is known to support `set follow-fork-mode child'.
-#
-if { ! [istarget "*-*-linux*"] } {
- return 0
-}
+require allow_fork_tests
standard_testfile
diff --git a/gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.c b/gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.c
index aaee143..9926b6f 100644
--- a/gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.c
+++ b/gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.exp b/gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.exp
index 66311fe..c668a65 100644
--- a/gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.exp
+++ b/gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,6 +16,8 @@
# This test verifies that several threads forking while another thread
# is constantly stepping over a breakpoint is properly handled.
+require allow_fork_tests
+
standard_testfile
set linenum [gdb_get_line_number "set break here"]
diff --git a/gdb/testsuite/gdb.threads/gcore-stale-thread.c b/gdb/testsuite/gdb.threads/gcore-stale-thread.c
index ca5538c..39b23c7 100644
--- a/gdb/testsuite/gdb.threads/gcore-stale-thread.c
+++ b/gdb/testsuite/gdb.threads/gcore-stale-thread.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/gcore-stale-thread.exp b/gdb/testsuite/gdb.threads/gcore-stale-thread.exp
index 2f41982..396ea29 100644
--- a/gdb/testsuite/gdb.threads/gcore-stale-thread.exp
+++ b/gdb/testsuite/gdb.threads/gcore-stale-thread.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/gcore-thread.exp b/gdb/testsuite/gdb.threads/gcore-thread.exp
index f4572c4..4e00f80 100644
--- a/gdb/testsuite/gdb.threads/gcore-thread.exp
+++ b/gdb/testsuite/gdb.threads/gcore-thread.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/hand-call-in-threads.c b/gdb/testsuite/gdb.threads/hand-call-in-threads.c
index 777e4fb..2b98964 100644
--- a/gdb/testsuite/gdb.threads/hand-call-in-threads.c
+++ b/gdb/testsuite/gdb.threads/hand-call-in-threads.c
@@ -1,6 +1,6 @@
/* Test case for hand function calls in multi-threaded program.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.threads/hand-call-in-threads.exp b/gdb/testsuite/gdb.threads/hand-call-in-threads.exp
index cde2b2d..d1be1d0 100644
--- a/gdb/testsuite/gdb.threads/hand-call-in-threads.exp
+++ b/gdb/testsuite/gdb.threads/hand-call-in-threads.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2024 Free Software Foundation, Inc.
+# Copyright (C) 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/hand-call-new-thread.c b/gdb/testsuite/gdb.threads/hand-call-new-thread.c
index e475b9b..ed2d7ef 100644
--- a/gdb/testsuite/gdb.threads/hand-call-new-thread.c
+++ b/gdb/testsuite/gdb.threads/hand-call-new-thread.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/hand-call-new-thread.exp b/gdb/testsuite/gdb.threads/hand-call-new-thread.exp
index 89492f4..6b859ff 100644
--- a/gdb/testsuite/gdb.threads/hand-call-new-thread.exp
+++ b/gdb/testsuite/gdb.threads/hand-call-new-thread.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/ia64-sigill.c b/gdb/testsuite/gdb.threads/ia64-sigill.c
index 183f376..366e0fd 100644
--- a/gdb/testsuite/gdb.threads/ia64-sigill.c
+++ b/gdb/testsuite/gdb.threads/ia64-sigill.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/ia64-sigill.exp b/gdb/testsuite/gdb.threads/ia64-sigill.exp
index 79233ee..ac6ff20 100644
--- a/gdb/testsuite/gdb.threads/ia64-sigill.exp
+++ b/gdb/testsuite/gdb.threads/ia64-sigill.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/inf-thr-count.c b/gdb/testsuite/gdb.threads/inf-thr-count.c
index 055ad7e..e3abea3 100644
--- a/gdb/testsuite/gdb.threads/inf-thr-count.c
+++ b/gdb/testsuite/gdb.threads/inf-thr-count.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/inf-thr-count.exp b/gdb/testsuite/gdb.threads/inf-thr-count.exp
index 1c85c95..61533ab 100644
--- a/gdb/testsuite/gdb.threads/inf-thr-count.exp
+++ b/gdb/testsuite/gdb.threads/inf-thr-count.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -43,7 +43,7 @@ if {[build_executable "failed to prepare" $testfile $srcfile \
# Start GDB. Ensure we are in non-stop mode as we need to read from
# the inferior while it is running.
save_vars {GDBFLAGS} {
- append GDBFLAGS " -ex \"set non-stop on\""
+ append GDBFLAGS { -ex "set non-stop on"}
clean_restart $binfile
}
@@ -54,22 +54,20 @@ if ![runto_main] {
gdb_breakpoint breakpt
gdb_continue_to_breakpoint "first breakpt call"
+set re_var [string_to_regexp "$"]$decimal
+
# Check we can see a single thread to begin with.
-gdb_test "p \$_inferior_thread_count" \
- "^\\\$$::decimal = 1" \
- "only one thread in \$_inferior_thread_count"
+gdb_test {p $_inferior_thread_count} \
+ "^$re_var = 1" \
+ {only one thread in $_inferior_thread_count}
# We don't want thread events, it makes it harder to match GDB's
# output.
gdb_test_no_output "set print thread-events off"
# Continue the program in the background.
-set test "continue&"
-gdb_test_multiple "continue&" $test {
- -re "Continuing\\.\r\n$gdb_prompt " {
- pass $test
- }
-}
+gdb_test -no-prompt-anchor "continue&" \
+ [string_to_regexp "Continuing."]
# Read the 'stage' flag from the inferior. This is initially 0, but
# will be set to 1 once the extra thread has been created, and then 2
@@ -88,8 +86,17 @@ proc wait_for_stage { num } {
set failure_count 0
set cmd "print /d stage"
set stage_flag 0
+
+ set re_int -?$::decimal
+
+ set re_msg \
+ [multi_line \
+ "Cannot execute this command while the target is running" \
+ {Use the "interrupt" command to stop the target} \
+ [string_to_regexp "and then try again."]]
+
gdb_test_multiple "$cmd" "wait for 'stage' flag to be $num" {
- -re -wrap "^Cannot execute this command while the target is running\\.\r\nUse the \"interrupt\" command to stop the target\r\nand then try again\\." {
+ -re -wrap ^$re_msg {
fail "$gdb_test_name (can't read asynchronously)"
gdb_test_no_output "interrupt"
@@ -101,7 +108,7 @@ proc wait_for_stage { num } {
}
}
- -re -wrap "^\\$\[0-9\]* = (\[-\]*\[0-9\]*).*" {
+ -re -wrap "^$::re_var = ($re_int).*" {
set stage_flag $expect_out(1,string)
if {$stage_flag != $num} {
set stage_flag 0
@@ -131,8 +138,8 @@ if {![wait_for_stage 1]} {
if {[target_info exists gdb_protocol]
&& ([target_info gdb_protocol] == "remote"
|| [target_info gdb_protocol] == "extended-remote")} {
- set new_thread_re "\\\[New Thread \[^\r\n\]+\\\]\r\n"
- set exit_thread_re "\\\[Thread \[^\r\n\]+ exited\\\]\r\n"
+ set new_thread_re {\[New Thread [^\r\n]+\]\r\n}
+ set exit_thread_re {\[Thread [^\r\n]+ exited\]\r\n}
} else {
set new_thread_re ""
set exit_thread_re ""
@@ -141,9 +148,9 @@ if {[target_info exists gdb_protocol]
# This is the test we actually care about. Check that the
# $_inferior_thread_count convenience variable shows the correct
# thread count; the new thread should be visible.
-gdb_test "with print thread-events on -- p \$_inferior_thread_count" \
- "^${new_thread_re}\\\$$::decimal = 2" \
- "second thread visible in \$_inferior_thread_count"
+gdb_test {with print thread-events on -- p $_inferior_thread_count} \
+ "^${new_thread_re}$re_var = 2" \
+ {second thread visible in $_inferior_thread_count}
# Set a variable in the inferior, this will cause the second thread to
# exit.
@@ -157,19 +164,25 @@ if {![wait_for_stage 2]} {
}
# Check that the second thread has gone away.
-gdb_test "with print thread-events on -- p \$_inferior_thread_count" \
- "^${exit_thread_re}\\\$$::decimal = 1" \
- "back to one thread visible in \$_inferior_thread_count"
+gdb_test {with print thread-events on -- p $_inferior_thread_count} \
+ "^${exit_thread_re}$re_var = 1" \
+ {back to one thread visible in $_inferior_thread_count}
# Set a variable in the inferior, this will cause the second thread to
# exit.
-gdb_test_no_output "set variable spin = 0" \
+gdb_test_no_output -no-prompt-anchor "set variable spin = 0" \
"set 'spin' flag to allow main thread to exit"
# When the second thread exits, the main thread joins with it, and
# then proceeds to hit the breakpt function again.
+set re_breakpt [string_to_regexp "breakpt ()"]
+set re \
+ [multi_line \
+ "Thread 1 \[^\r\n\]+ hit Breakpoint $decimal, $re_breakpt\[^\r\n\]+" \
+ "\[^\r\n\]+" \
+ ""]
gdb_test_multiple "" "wait for main thread to stop" {
- -re "Thread 1 \[^\r\n\]+ hit Breakpoint $decimal, breakpt \\(\\)\[^\r\n\]+\r\n\[^\r\n\]+\r\n" {
+ -re $re {
pass $gdb_test_name
}
}
diff --git a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-other-thread-event.c b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-other-thread-event.c
index 38a5bc2..d954fa2 100644
--- a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-other-thread-event.c
+++ b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-other-thread-event.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-other-thread-event.exp b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-other-thread-event.exp
index b5c0d84..62a183c 100644
--- a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-other-thread-event.exp
+++ b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-other-thread-event.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.c b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.c
index 2e23f12..52921cd 100644
--- a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.c
+++ b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -43,6 +43,7 @@ function_that_segfaults ()
{
int *p = 0;
*p = 1; /* Segfault happens here. */
+ return 0;
}
int
@@ -55,6 +56,7 @@ void *
worker_func (void *arg)
{
int a = 42; /* Breakpoint here. */
+ return NULL;
}
void
diff --git a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.exp b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.exp
index c9508c9..0f068c6 100644
--- a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.exp
+++ b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-simple.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -79,7 +79,7 @@ proc run_condition_test { message n_expected_hits condition \
gdb_breakpoint \
"${::srcfile}:${::cond_bp_line} if ((++\$n_cond_eval) && (${condition}))"
- # And a breakpoint that we hit when the test is over, this one is
+ # Add a breakpoint that we hit when the test is over, this one is
# not conditional. Only the main thread gets here once all the
# other threads have finished.
gdb_breakpoint "${::srcfile}:${::stop_bp_line}"
@@ -114,7 +114,7 @@ proc run_condition_test { message n_expected_hits condition \
# includes an inferior call), it is still possible to kill the running
# inferior, and then restart the inferior.
#
-# At once point doing this would result in GDB giving an assertion error.
+# At one point doing this would result in GDB giving an assertion error.
proc_with_prefix run_kill_and_restart_test { target_async target_non_stop } {
# This test relies on the 'start' command, which is not possible with
# the plain 'remote' target.
@@ -141,6 +141,8 @@ proc_with_prefix run_kill_and_restart_test { target_async target_non_stop } {
gdb_start_cmd
}
+set re_thread_exited {\[Thread [^\r\n]+ exited\]}
+
# Create a conditional breakpoint which includes a call to a function that
# segfaults. Run GDB and check what happens when the inferior segfaults
# during the inferior call.
@@ -176,7 +178,8 @@ proc_with_prefix run_bp_cond_segfaults { target_async target_non_stop } {
"To change this behavior use \"set unwind-on-signal on\"\\." \
"Evaluation of the expression containing the function" \
"\\(function_that_segfaults\\) will be abandoned\\." \
- "When the function is done executing, GDB will silently stop\\."]
+ "When the function is done executing, GDB will silently stop\\.(" \
+ "$::re_thread_exited)?"]
}
# Create a conditional breakpoint which includes a call to a function that
@@ -210,7 +213,8 @@ proc_with_prefix run_bp_cond_hits_breakpoint { target_async target_non_stop } {
"The program being debugged stopped while in a function called from GDB\\." \
"Evaluation of the expression containing the function" \
"\\(function_with_breakpoint\\) will be abandoned\\." \
- "When the function is done executing, GDB will silently stop\\."]
+ "When the function is done executing, GDB will silently stop\\.(" \
+ "$::re_thread_exited)?"]
}
foreach_with_prefix target_async { "on" "off" } {
diff --git a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-single.c b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-single.c
index 0b045f8..b26a63d 100644
--- a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-single.c
+++ b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-single.c
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-single.exp b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-single.exp
index 2c3623e..c404a7d 100644
--- a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-single.exp
+++ b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-single.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.c b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.c
index 415eaea..a5fb3c2 100644
--- a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.c
+++ b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.exp b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.exp
index 8f17f13..9dbaa4f 100644
--- a/gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.exp
+++ b/gdb/testsuite/gdb.threads/infcall-from-bp-cond-timeout.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/infcall-thread-announce.c b/gdb/testsuite/gdb.threads/infcall-thread-announce.c
index 90bf95e..ca39cf0 100644
--- a/gdb/testsuite/gdb.threads/infcall-thread-announce.c
+++ b/gdb/testsuite/gdb.threads/infcall-thread-announce.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/infcall-thread-announce.exp b/gdb/testsuite/gdb.threads/infcall-thread-announce.exp
index e22245e..68fd7b7 100644
--- a/gdb/testsuite/gdb.threads/infcall-thread-announce.exp
+++ b/gdb/testsuite/gdb.threads/infcall-thread-announce.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/info-threads-cur-sal-2.c b/gdb/testsuite/gdb.threads/info-threads-cur-sal-2.c
index 20b0f45..1306a05 100644
--- a/gdb/testsuite/gdb.threads/info-threads-cur-sal-2.c
+++ b/gdb/testsuite/gdb.threads/info-threads-cur-sal-2.c
@@ -1,4 +1,4 @@
-/* Copyright 2013-2024 Free Software Foundation, Inc.
+/* Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/info-threads-cur-sal.c b/gdb/testsuite/gdb.threads/info-threads-cur-sal.c
index 787fb53..cb75325 100644
--- a/gdb/testsuite/gdb.threads/info-threads-cur-sal.c
+++ b/gdb/testsuite/gdb.threads/info-threads-cur-sal.c
@@ -1,4 +1,4 @@
-/* Copyright 2007-2024 Free Software Foundation, Inc.
+/* Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/info-threads-cur-sal.exp b/gdb/testsuite/gdb.threads/info-threads-cur-sal.exp
index 664c962..2d57136 100644
--- a/gdb/testsuite/gdb.threads/info-threads-cur-sal.exp
+++ b/gdb/testsuite/gdb.threads/info-threads-cur-sal.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/info-threads-options.c b/gdb/testsuite/gdb.threads/info-threads-options.c
new file mode 100644
index 0000000..2c4cd85
--- /dev/null
+++ b/gdb/testsuite/gdb.threads/info-threads-options.c
@@ -0,0 +1,77 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2022-2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <pthread.h>
+
+#define NUM 4
+
+static pthread_barrier_t threads_started_barrier;
+
+static void
+stop_here ()
+{
+}
+
+static void
+spin ()
+{
+ while (1)
+ usleep (1);
+}
+
+static void *
+work (void *arg)
+{
+ int id = *(int *) arg;
+
+ pthread_barrier_wait (&threads_started_barrier);
+
+ if (id % 2 == 0)
+ stop_here ();
+ else
+ spin ();
+
+ pthread_exit (NULL);
+}
+
+int
+main ()
+{
+ /* Ensure we stop if GDB crashes and DejaGNU fails to kill us. */
+ alarm (10);
+
+ pthread_t threads[NUM];
+ int ids[NUM];
+
+ pthread_barrier_init (&threads_started_barrier, NULL, NUM + 1);
+
+ for (int i = 0; i < NUM; i++)
+ {
+ ids[i] = i;
+ pthread_create (&threads[i], NULL, work, &ids[i]);
+ }
+
+ /* Wait until all threads are seen running. */
+ pthread_barrier_wait (&threads_started_barrier);
+
+ stop_here ();
+
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.threads/info-threads-options.exp b/gdb/testsuite/gdb.threads/info-threads-options.exp
new file mode 100644
index 0000000..38e4e67
--- /dev/null
+++ b/gdb/testsuite/gdb.threads/info-threads-options.exp
@@ -0,0 +1,131 @@
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Test the filter flags of the "info threads" command.
+
+standard_testfile
+
+if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" \
+ executable debug] != "" } {
+ return -1
+}
+
+save_vars { GDBFLAGS } {
+ append GDBFLAGS " -ex \"set non-stop on\""
+ clean_restart $binfile
+}
+
+if ![runto_main] {
+ return -1
+}
+
+gdb_breakpoint "stop_here"
+gdb_test_multiple "continue -a&" "" {
+ -re "Continuing.\r\n$gdb_prompt " {
+ pass $gdb_test_name
+ }
+}
+
+set expected_hits 3
+set fill "\[^\r\n\]+"
+set num_hits 0
+gdb_test_multiple "" "hit the breakpoint" -lbl {
+ -re "\r\nThread ${fill} hit Breakpoint ${decimal}," {
+ incr num_hits
+ if {$num_hits < $expected_hits} {
+ exp_continue
+ }
+ }
+}
+gdb_assert {$num_hits == $expected_hits} "expected threads hit the bp"
+
+# Count the number of running/stopped threads reported
+# by the "info threads" command. We also capture thread ids
+# for additional tests.
+set running_tid "invalid"
+set stopped_tid "invalid"
+
+set eol "(?=\r\n)"
+
+foreach_with_prefix flag {"" "-running" "-stopped" "-running -stopped"} {
+ set num_running 0
+ set num_stopped 0
+ gdb_test_multiple "info threads $flag" "info threads $flag" -lbl {
+ -re "Id${fill}Target Id${fill}Frame${fill}${eol}" {
+ exp_continue
+ }
+ -re "^\r\n. (${decimal})${fill}Thread ${fill}.running.${eol}" {
+ incr num_running
+ set running_tid $expect_out(1,string)
+ exp_continue
+ }
+ -re "^\r\n. (${decimal})${fill}Thread ${fill}stop_here ${fill}${eol}" {
+ incr num_stopped
+ set stopped_tid $expect_out(1,string)
+ exp_continue
+ }
+ -re "^\r\n$gdb_prompt $" {
+ pass $gdb_test_name
+ }
+ }
+
+ if {$flag eq "-running"} {
+ gdb_assert {$num_running == 2} "num running"
+ gdb_assert {$num_stopped == 0} "num stopped"
+ } elseif {$flag eq "-stopped"} {
+ gdb_assert {$num_running == 0} "num running"
+ gdb_assert {$num_stopped == 3} "num stopped"
+ } else {
+ gdb_assert {$num_running == 2} "num running"
+ gdb_assert {$num_stopped == 3} "num stopped"
+ }
+}
+
+verbose -log "running_tid=$running_tid, stopped_tid=$stopped_tid"
+
+# Test specifying thread ids.
+gdb_test "info threads -running $stopped_tid" \
+ "No threads matched\\." \
+ "info thread -running for a stopped thread"
+gdb_test "info threads -stopped $running_tid" \
+ "No threads matched\\." \
+ "info thread -stopped for a running thread"
+
+set ws "\[ \t\]+"
+foreach tid "\"$running_tid\" \"$running_tid $stopped_tid\"" {
+ gdb_test "info threads -running $tid" \
+ [multi_line \
+ "${ws}Id${ws}Target Id${ws}Frame${ws}" \
+ "${ws}${running_tid}${ws}Thread ${fill}.running."] \
+ "info thread -running with [llength $tid] thread ids"
+}
+
+foreach tid "\"$stopped_tid\" \"$stopped_tid $running_tid\"" {
+ gdb_test "info threads -stopped $tid" \
+ [multi_line \
+ "${ws}Id${ws}Target Id${ws}Frame${ws}" \
+ "${ws}${stopped_tid}${ws}Thread ${fill} stop_here ${fill}"] \
+ "info thread -stopped with [llength $tid] thread ids"
+}
+
+gdb_test_multiple "info threads -stopped -running $stopped_tid $running_tid" \
+ "filter flags and tids combined" {
+ -re -wrap ".*stop_here.*running.*" {
+ pass $gdb_test_name
+ }
+ -re -wrap ".*running.*stop_here.*" {
+ pass $gdb_test_name
+ }
+}
diff --git a/gdb/testsuite/gdb.threads/interrupt-while-step-over.c b/gdb/testsuite/gdb.threads/interrupt-while-step-over.c
index 172a95b..c89e84e 100644
--- a/gdb/testsuite/gdb.threads/interrupt-while-step-over.c
+++ b/gdb/testsuite/gdb.threads/interrupt-while-step-over.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/interrupt-while-step-over.exp b/gdb/testsuite/gdb.threads/interrupt-while-step-over.exp
index 89c1d06..05587eb 100644
--- a/gdb/testsuite/gdb.threads/interrupt-while-step-over.exp
+++ b/gdb/testsuite/gdb.threads/interrupt-while-step-over.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/interrupted-hand-call.c b/gdb/testsuite/gdb.threads/interrupted-hand-call.c
index e6eae5e..fb6d140 100644
--- a/gdb/testsuite/gdb.threads/interrupted-hand-call.c
+++ b/gdb/testsuite/gdb.threads/interrupted-hand-call.c
@@ -1,6 +1,6 @@
/* Test case for hand function calls interrupted by a signal in another thread.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.threads/interrupted-hand-call.exp b/gdb/testsuite/gdb.threads/interrupted-hand-call.exp
index 81221b4..3a2bc63 100644
--- a/gdb/testsuite/gdb.threads/interrupted-hand-call.exp
+++ b/gdb/testsuite/gdb.threads/interrupted-hand-call.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2024 Free Software Foundation, Inc.
+# Copyright (C) 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/kill.c b/gdb/testsuite/gdb.threads/kill.c
index 4003d81..5b60f14 100644
--- a/gdb/testsuite/gdb.threads/kill.c
+++ b/gdb/testsuite/gdb.threads/kill.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/kill.exp b/gdb/testsuite/gdb.threads/kill.exp
index fa87ddc..3e6aa8b 100644
--- a/gdb/testsuite/gdb.threads/kill.exp
+++ b/gdb/testsuite/gdb.threads/kill.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/killed-outside.c b/gdb/testsuite/gdb.threads/killed-outside.c
index 1ae88ff..6e5c2d4 100644
--- a/gdb/testsuite/gdb.threads/killed-outside.c
+++ b/gdb/testsuite/gdb.threads/killed-outside.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/killed-outside.exp b/gdb/testsuite/gdb.threads/killed-outside.exp
index 35f7dc1..9edb8d2 100644
--- a/gdb/testsuite/gdb.threads/killed-outside.exp
+++ b/gdb/testsuite/gdb.threads/killed-outside.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/killed.c b/gdb/testsuite/gdb.threads/killed.c
index 928a7d4..5476a1d 100644
--- a/gdb/testsuite/gdb.threads/killed.c
+++ b/gdb/testsuite/gdb.threads/killed.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/killed.exp b/gdb/testsuite/gdb.threads/killed.exp
index 0b89552..b1cec80b0 100644
--- a/gdb/testsuite/gdb.threads/killed.exp
+++ b/gdb/testsuite/gdb.threads/killed.exp
@@ -1,4 +1,4 @@
-# Copyright 2002-2024 Free Software Foundation, Inc.
+# Copyright 2002-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/leader-exit-attach.exp b/gdb/testsuite/gdb.threads/leader-exit-attach.exp
index 5334de2..641d6b5 100644
--- a/gdb/testsuite/gdb.threads/leader-exit-attach.exp
+++ b/gdb/testsuite/gdb.threads/leader-exit-attach.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2024 Free Software Foundation, Inc.
+# Copyright (C) 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/leader-exit.c b/gdb/testsuite/gdb.threads/leader-exit.c
index 333c53c..dbbb719 100644
--- a/gdb/testsuite/gdb.threads/leader-exit.c
+++ b/gdb/testsuite/gdb.threads/leader-exit.c
@@ -1,6 +1,6 @@
/* Clean exit of the thread group leader should not break GDB.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/leader-exit.exp b/gdb/testsuite/gdb.threads/leader-exit.exp
index daddc15..1bc017b 100644
--- a/gdb/testsuite/gdb.threads/leader-exit.exp
+++ b/gdb/testsuite/gdb.threads/leader-exit.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# Copyright (C) 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/linux-dp.exp b/gdb/testsuite/gdb.threads/linux-dp.exp
index de44ea5..1652f78 100644
--- a/gdb/testsuite/gdb.threads/linux-dp.exp
+++ b/gdb/testsuite/gdb.threads/linux-dp.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/local-watch-wrong-thread.c b/gdb/testsuite/gdb.threads/local-watch-wrong-thread.c
index 73bf88b..e623ec2 100644
--- a/gdb/testsuite/gdb.threads/local-watch-wrong-thread.c
+++ b/gdb/testsuite/gdb.threads/local-watch-wrong-thread.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/local-watch-wrong-thread.exp b/gdb/testsuite/gdb.threads/local-watch-wrong-thread.exp
index fcefb2b..3006b83 100644
--- a/gdb/testsuite/gdb.threads/local-watch-wrong-thread.exp
+++ b/gdb/testsuite/gdb.threads/local-watch-wrong-thread.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/main-thread-exit-during-detach.c b/gdb/testsuite/gdb.threads/main-thread-exit-during-detach.c
index 50849d9..5981470 100644
--- a/gdb/testsuite/gdb.threads/main-thread-exit-during-detach.c
+++ b/gdb/testsuite/gdb.threads/main-thread-exit-during-detach.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/main-thread-exit-during-detach.exp b/gdb/testsuite/gdb.threads/main-thread-exit-during-detach.exp
index 2a9320a..20e7bc4 100644
--- a/gdb/testsuite/gdb.threads/main-thread-exit-during-detach.exp
+++ b/gdb/testsuite/gdb.threads/main-thread-exit-during-detach.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.threads/manythreads.c b/gdb/testsuite/gdb.threads/manythreads.c
index dd3c8a4..97a91de 100644
--- a/gdb/testsuite/gdb.threads/manythreads.c
+++ b/gdb/testsuite/gdb.threads/manythreads.c
@@ -1,5 +1,5 @@
/* Manythreads test program.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
Written by Jeff Johnston <jjohnstn@redhat.com>
Contributed by Red Hat
diff --git a/gdb/testsuite/gdb.threads/manythreads.exp b/gdb/testsuite/gdb.threads/manythreads.exp
index e660506..ae51c5a 100644
--- a/gdb/testsuite/gdb.threads/manythreads.exp
+++ b/gdb/testsuite/gdb.threads/manythreads.exp
@@ -1,5 +1,5 @@
# manythreads.exp -- Expect script to test stopping many threads
-# Copyright (C) 2004-2024 Free Software Foundation, Inc.
+# Copyright (C) 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/multi-create-ns-info-thr.exp b/gdb/testsuite/gdb.threads/multi-create-ns-info-thr.exp
index 1c1eb89..1c3231c 100644
--- a/gdb/testsuite/gdb.threads/multi-create-ns-info-thr.exp
+++ b/gdb/testsuite/gdb.threads/multi-create-ns-info-thr.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# Copyright (C) 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/multi-create.c b/gdb/testsuite/gdb.threads/multi-create.c
index 42fae3f..2706f37 100644
--- a/gdb/testsuite/gdb.threads/multi-create.c
+++ b/gdb/testsuite/gdb.threads/multi-create.c
@@ -1,5 +1,5 @@
/* Create threads from multiple threads in parallel.
- Copyright 2007-2024 Free Software Foundation, Inc.
+ Copyright 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.threads/multi-create.exp b/gdb/testsuite/gdb.threads/multi-create.exp
index 49aa3a6..966d44d 100644
--- a/gdb/testsuite/gdb.threads/multi-create.exp
+++ b/gdb/testsuite/gdb.threads/multi-create.exp
@@ -1,5 +1,5 @@
# multi-create.exp -- Test creating many threads in parallel
-# Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# Copyright (C) 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/multiple-step-overs.c b/gdb/testsuite/gdb.threads/multiple-step-overs.c
index 424696a..694dd97 100644
--- a/gdb/testsuite/gdb.threads/multiple-step-overs.c
+++ b/gdb/testsuite/gdb.threads/multiple-step-overs.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/multiple-step-overs.exp b/gdb/testsuite/gdb.threads/multiple-step-overs.exp
index dde874d..84eef1a 100644
--- a/gdb/testsuite/gdb.threads/multiple-step-overs.exp
+++ b/gdb/testsuite/gdb.threads/multiple-step-overs.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/multiple-successive-infcall.c b/gdb/testsuite/gdb.threads/multiple-successive-infcall.c
index 7ba702a..38e1931 100644
--- a/gdb/testsuite/gdb.threads/multiple-successive-infcall.c
+++ b/gdb/testsuite/gdb.threads/multiple-successive-infcall.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/multiple-successive-infcall.exp b/gdb/testsuite/gdb.threads/multiple-successive-infcall.exp
index 4a97179..1aa9253 100644
--- a/gdb/testsuite/gdb.threads/multiple-successive-infcall.exp
+++ b/gdb/testsuite/gdb.threads/multiple-successive-infcall.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/names.c b/gdb/testsuite/gdb.threads/names.c
index 55a99ef..6a26709 100644
--- a/gdb/testsuite/gdb.threads/names.c
+++ b/gdb/testsuite/gdb.threads/names.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/names.exp b/gdb/testsuite/gdb.threads/names.exp
index cf94e42..6f38c4e 100644
--- a/gdb/testsuite/gdb.threads/names.exp
+++ b/gdb/testsuite/gdb.threads/names.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/next-bp-other-thread.c b/gdb/testsuite/gdb.threads/next-bp-other-thread.c
index cf313cb..0268578 100644
--- a/gdb/testsuite/gdb.threads/next-bp-other-thread.c
+++ b/gdb/testsuite/gdb.threads/next-bp-other-thread.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/next-bp-other-thread.exp b/gdb/testsuite/gdb.threads/next-bp-other-thread.exp
index 8e79150..cf8d687 100644
--- a/gdb/testsuite/gdb.threads/next-bp-other-thread.exp
+++ b/gdb/testsuite/gdb.threads/next-bp-other-thread.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/next-fork-exec-other-thread.c b/gdb/testsuite/gdb.threads/next-fork-exec-other-thread.c
index 7694a89..968affa 100644
--- a/gdb/testsuite/gdb.threads/next-fork-exec-other-thread.c
+++ b/gdb/testsuite/gdb.threads/next-fork-exec-other-thread.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/next-fork-exec-other-thread.exp b/gdb/testsuite/gdb.threads/next-fork-exec-other-thread.exp
index 3413605..3a97127 100644
--- a/gdb/testsuite/gdb.threads/next-fork-exec-other-thread.exp
+++ b/gdb/testsuite/gdb.threads/next-fork-exec-other-thread.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -25,6 +25,8 @@
# 20.04.5 LTS with 32-bit kernel + 32-bit userland. It was NOT reproducible
# using a circa 2023 Raspberry Pi OS w/ 64-bit kernel and 32-bit userland.
+require allow_fork_tests
+
standard_testfile
# Line where to stop the main thread.
diff --git a/gdb/testsuite/gdb.threads/next-fork-other-thread.c b/gdb/testsuite/gdb.threads/next-fork-other-thread.c
index fec874c..7bf3b14 100644
--- a/gdb/testsuite/gdb.threads/next-fork-other-thread.c
+++ b/gdb/testsuite/gdb.threads/next-fork-other-thread.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/next-fork-other-thread.exp b/gdb/testsuite/gdb.threads/next-fork-other-thread.exp
index 5526f4e..1cd6685 100644
--- a/gdb/testsuite/gdb.threads/next-fork-other-thread.exp
+++ b/gdb/testsuite/gdb.threads/next-fork-other-thread.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,6 +16,8 @@
# Test doing a "next" on a thread during which forks or vforks happen in other
# threads.
+require allow_fork_tests
+
standard_testfile
# Line where to stop the main thread.
diff --git a/gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.c b/gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.c
index b170cb7..26ae6ca 100644
--- a/gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.c
+++ b/gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.exp b/gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.exp
index 2b77cfd..fd4aebb 100644
--- a/gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.exp
+++ b/gdb/testsuite/gdb.threads/next-while-other-thread-longjmps.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/no-unwaited-for-left.c b/gdb/testsuite/gdb.threads/no-unwaited-for-left.c
index 2e86479..2539cde 100644
--- a/gdb/testsuite/gdb.threads/no-unwaited-for-left.c
+++ b/gdb/testsuite/gdb.threads/no-unwaited-for-left.c
@@ -1,4 +1,4 @@
-/* Copyright 2007-2024 Free Software Foundation, Inc.
+/* Copyright 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/no-unwaited-for-left.exp b/gdb/testsuite/gdb.threads/no-unwaited-for-left.exp
index e04cd6b..edeabaf 100644
--- a/gdb/testsuite/gdb.threads/no-unwaited-for-left.exp
+++ b/gdb/testsuite/gdb.threads/no-unwaited-for-left.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# Copyright (C) 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/non-ldr-exc-1.c b/gdb/testsuite/gdb.threads/non-ldr-exc-1.c
index 005808a..4cac632 100644
--- a/gdb/testsuite/gdb.threads/non-ldr-exc-1.c
+++ b/gdb/testsuite/gdb.threads/non-ldr-exc-1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/non-ldr-exc-1.exp b/gdb/testsuite/gdb.threads/non-ldr-exc-1.exp
index df0bf16..846fe89 100644
--- a/gdb/testsuite/gdb.threads/non-ldr-exc-1.exp
+++ b/gdb/testsuite/gdb.threads/non-ldr-exc-1.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/non-ldr-exc-2.c b/gdb/testsuite/gdb.threads/non-ldr-exc-2.c
index 4026a74..a1b4dc2 100644
--- a/gdb/testsuite/gdb.threads/non-ldr-exc-2.c
+++ b/gdb/testsuite/gdb.threads/non-ldr-exc-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/non-ldr-exc-2.exp b/gdb/testsuite/gdb.threads/non-ldr-exc-2.exp
index de63df3..860b6b5 100644
--- a/gdb/testsuite/gdb.threads/non-ldr-exc-2.exp
+++ b/gdb/testsuite/gdb.threads/non-ldr-exc-2.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/non-ldr-exc-3.c b/gdb/testsuite/gdb.threads/non-ldr-exc-3.c
index 7b4d0c6..68b9ae3 100644
--- a/gdb/testsuite/gdb.threads/non-ldr-exc-3.c
+++ b/gdb/testsuite/gdb.threads/non-ldr-exc-3.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/non-ldr-exc-3.exp b/gdb/testsuite/gdb.threads/non-ldr-exc-3.exp
index a91d667..b50bfac 100644
--- a/gdb/testsuite/gdb.threads/non-ldr-exc-3.exp
+++ b/gdb/testsuite/gdb.threads/non-ldr-exc-3.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/non-ldr-exc-4.c b/gdb/testsuite/gdb.threads/non-ldr-exc-4.c
index 62dc86e..3719190 100644
--- a/gdb/testsuite/gdb.threads/non-ldr-exc-4.c
+++ b/gdb/testsuite/gdb.threads/non-ldr-exc-4.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/non-ldr-exc-4.exp b/gdb/testsuite/gdb.threads/non-ldr-exc-4.exp
index b9d2eaa..9892d83 100644
--- a/gdb/testsuite/gdb.threads/non-ldr-exc-4.exp
+++ b/gdb/testsuite/gdb.threads/non-ldr-exc-4.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/non-ldr-exit.c b/gdb/testsuite/gdb.threads/non-ldr-exit.c
index e644b81..9536b4a 100644
--- a/gdb/testsuite/gdb.threads/non-ldr-exit.c
+++ b/gdb/testsuite/gdb.threads/non-ldr-exit.c
@@ -1,6 +1,6 @@
/* Clean exit of the thread group leader should not break GDB.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/non-ldr-exit.exp b/gdb/testsuite/gdb.threads/non-ldr-exit.exp
index bb8b56b..b09a37e 100644
--- a/gdb/testsuite/gdb.threads/non-ldr-exit.exp
+++ b/gdb/testsuite/gdb.threads/non-ldr-exit.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/non-stop-fair-events.c b/gdb/testsuite/gdb.threads/non-stop-fair-events.c
index 96adecd..3e7441d 100644
--- a/gdb/testsuite/gdb.threads/non-stop-fair-events.c
+++ b/gdb/testsuite/gdb.threads/non-stop-fair-events.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/non-stop-fair-events.exp b/gdb/testsuite/gdb.threads/non-stop-fair-events.exp
index 1ebb886..5def610 100644
--- a/gdb/testsuite/gdb.threads/non-stop-fair-events.exp
+++ b/gdb/testsuite/gdb.threads/non-stop-fair-events.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/omp-par-scope.c b/gdb/testsuite/gdb.threads/omp-par-scope.c
index 5f061f0..626ca16 100644
--- a/gdb/testsuite/gdb.threads/omp-par-scope.c
+++ b/gdb/testsuite/gdb.threads/omp-par-scope.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/omp-par-scope.exp b/gdb/testsuite/gdb.threads/omp-par-scope.exp
index 48f81d3..27dbaf0 100644
--- a/gdb/testsuite/gdb.threads/omp-par-scope.exp
+++ b/gdb/testsuite/gdb.threads/omp-par-scope.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/omp-task.c b/gdb/testsuite/gdb.threads/omp-task.c
index 515e4a1..bc0ab90 100644
--- a/gdb/testsuite/gdb.threads/omp-task.c
+++ b/gdb/testsuite/gdb.threads/omp-task.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/omp-task.exp b/gdb/testsuite/gdb.threads/omp-task.exp
index 3e8e170..a889c84 100644
--- a/gdb/testsuite/gdb.threads/omp-task.exp
+++ b/gdb/testsuite/gdb.threads/omp-task.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/pending-fork-event-detach-ns.c b/gdb/testsuite/gdb.threads/pending-fork-event-detach-ns.c
index f7fdd42..af15b9f 100644
--- a/gdb/testsuite/gdb.threads/pending-fork-event-detach-ns.c
+++ b/gdb/testsuite/gdb.threads/pending-fork-event-detach-ns.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/pending-fork-event-detach-ns.exp b/gdb/testsuite/gdb.threads/pending-fork-event-detach-ns.exp
index e3cb4ae..29a011e 100644
--- a/gdb/testsuite/gdb.threads/pending-fork-event-detach-ns.exp
+++ b/gdb/testsuite/gdb.threads/pending-fork-event-detach-ns.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -29,6 +29,8 @@
# parent thread from waitpid'ing it, preventing the main thread from joining
# it, prevent it from writing the flag file, failing the test.
+require allow_fork_tests
+
standard_testfile
if { [is_remote target] } {
diff --git a/gdb/testsuite/gdb.threads/pending-fork-event-detach-touch-file.c b/gdb/testsuite/gdb.threads/pending-fork-event-detach-touch-file.c
index 84a505c..fdce1cb 100644
--- a/gdb/testsuite/gdb.threads/pending-fork-event-detach-touch-file.c
+++ b/gdb/testsuite/gdb.threads/pending-fork-event-detach-touch-file.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/pending-fork-event-detach.c b/gdb/testsuite/gdb.threads/pending-fork-event-detach.c
index 1c0a07d..4ce4abd 100644
--- a/gdb/testsuite/gdb.threads/pending-fork-event-detach.c
+++ b/gdb/testsuite/gdb.threads/pending-fork-event-detach.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/pending-fork-event-detach.exp b/gdb/testsuite/gdb.threads/pending-fork-event-detach.exp
index 4b16eaa..e627241 100644
--- a/gdb/testsuite/gdb.threads/pending-fork-event-detach.exp
+++ b/gdb/testsuite/gdb.threads/pending-fork-event-detach.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -34,6 +34,8 @@
# event, and erroneously create a new inferior for it. Once fixed, the child
# process' thread is hidden by whoever holds the pending fork event.
+require allow_fork_tests
+
standard_testfile .c -touch-file.c
set touch_file_bin $binfile-touch-file
diff --git a/gdb/testsuite/gdb.threads/pending-step.c b/gdb/testsuite/gdb.threads/pending-step.c
index 795e8f5..3bd091c 100644
--- a/gdb/testsuite/gdb.threads/pending-step.c
+++ b/gdb/testsuite/gdb.threads/pending-step.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/pending-step.exp b/gdb/testsuite/gdb.threads/pending-step.exp
index 64b421b..1c2422e 100644
--- a/gdb/testsuite/gdb.threads/pending-step.exp
+++ b/gdb/testsuite/gdb.threads/pending-step.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/print-threads.exp b/gdb/testsuite/gdb.threads/print-threads.exp
index 6fae36a..51a14b2 100644
--- a/gdb/testsuite/gdb.threads/print-threads.exp
+++ b/gdb/testsuite/gdb.threads/print-threads.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2024 Free Software Foundation, Inc.
+# Copyright (C) 1996-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/process-dies-while-detaching.c b/gdb/testsuite/gdb.threads/process-dies-while-detaching.c
index f9acc1f..2de535b 100644
--- a/gdb/testsuite/gdb.threads/process-dies-while-detaching.c
+++ b/gdb/testsuite/gdb.threads/process-dies-while-detaching.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/process-dies-while-detaching.exp b/gdb/testsuite/gdb.threads/process-dies-while-detaching.exp
index 5c54a36..776c08e 100644
--- a/gdb/testsuite/gdb.threads/process-dies-while-detaching.exp
+++ b/gdb/testsuite/gdb.threads/process-dies-while-detaching.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.threads/process-dies-while-handling-bp.c b/gdb/testsuite/gdb.threads/process-dies-while-handling-bp.c
index 738f150..887956c 100644
--- a/gdb/testsuite/gdb.threads/process-dies-while-handling-bp.c
+++ b/gdb/testsuite/gdb.threads/process-dies-while-handling-bp.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp b/gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp
index 4ff68a6..26dc8cc 100644
--- a/gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp
+++ b/gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/process-exit-status-is-leader-exit-status.c b/gdb/testsuite/gdb.threads/process-exit-status-is-leader-exit-status.c
index bd998f9..e3a4153 100644
--- a/gdb/testsuite/gdb.threads/process-exit-status-is-leader-exit-status.c
+++ b/gdb/testsuite/gdb.threads/process-exit-status-is-leader-exit-status.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/process-exit-status-is-leader-exit-status.exp b/gdb/testsuite/gdb.threads/process-exit-status-is-leader-exit-status.exp
index 6b509f3..ec4dbd8 100644
--- a/gdb/testsuite/gdb.threads/process-exit-status-is-leader-exit-status.exp
+++ b/gdb/testsuite/gdb.threads/process-exit-status-is-leader-exit-status.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/pthread_cond_wait.c b/gdb/testsuite/gdb.threads/pthread_cond_wait.c
index a131981..e1e513e 100644
--- a/gdb/testsuite/gdb.threads/pthread_cond_wait.c
+++ b/gdb/testsuite/gdb.threads/pthread_cond_wait.c
@@ -1,6 +1,6 @@
/* A small multi-threaded test case.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.threads/pthread_cond_wait.exp b/gdb/testsuite/gdb.threads/pthread_cond_wait.exp
index 03c5a58..c1be1cd 100644
--- a/gdb/testsuite/gdb.threads/pthread_cond_wait.exp
+++ b/gdb/testsuite/gdb.threads/pthread_cond_wait.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2024 Free Software Foundation, Inc.
+# Copyright (C) 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/pthreads.c b/gdb/testsuite/gdb.threads/pthreads.c
index 74d37cf..f84f273 100644
--- a/gdb/testsuite/gdb.threads/pthreads.c
+++ b/gdb/testsuite/gdb.threads/pthreads.c
@@ -1,5 +1,5 @@
/* Pthreads test program.
- Copyright 1996-2024 Free Software Foundation, Inc.
+ Copyright 1996-2025 Free Software Foundation, Inc.
Written by Fred Fish of Cygnus Support
Contributed by Cygnus Support
diff --git a/gdb/testsuite/gdb.threads/pthreads.exp b/gdb/testsuite/gdb.threads/pthreads.exp
index 4a63a53..0437e74 100644
--- a/gdb/testsuite/gdb.threads/pthreads.exp
+++ b/gdb/testsuite/gdb.threads/pthreads.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2024 Free Software Foundation, Inc.
+# Copyright (C) 1996-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/queue-signal.c b/gdb/testsuite/gdb.threads/queue-signal.c
index 9351248..7caf5f7 100644
--- a/gdb/testsuite/gdb.threads/queue-signal.c
+++ b/gdb/testsuite/gdb.threads/queue-signal.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/queue-signal.exp b/gdb/testsuite/gdb.threads/queue-signal.exp
index 536cf97..f791ffa 100644
--- a/gdb/testsuite/gdb.threads/queue-signal.exp
+++ b/gdb/testsuite/gdb.threads/queue-signal.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/reconnect-signal.c b/gdb/testsuite/gdb.threads/reconnect-signal.c
index 14d95a5..3be516e 100644
--- a/gdb/testsuite/gdb.threads/reconnect-signal.c
+++ b/gdb/testsuite/gdb.threads/reconnect-signal.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/reconnect-signal.exp b/gdb/testsuite/gdb.threads/reconnect-signal.exp
index ccaf082..ce64610 100644
--- a/gdb/testsuite/gdb.threads/reconnect-signal.exp
+++ b/gdb/testsuite/gdb.threads/reconnect-signal.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/schedlock-new-thread.c b/gdb/testsuite/gdb.threads/schedlock-new-thread.c
index cd4a2a5..06af905 100644
--- a/gdb/testsuite/gdb.threads/schedlock-new-thread.c
+++ b/gdb/testsuite/gdb.threads/schedlock-new-thread.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/schedlock-new-thread.exp b/gdb/testsuite/gdb.threads/schedlock-new-thread.exp
index 665838d..c398137 100644
--- a/gdb/testsuite/gdb.threads/schedlock-new-thread.exp
+++ b/gdb/testsuite/gdb.threads/schedlock-new-thread.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/schedlock-thread-exit.c b/gdb/testsuite/gdb.threads/schedlock-thread-exit.c
index ae5bde7..9aa452d 100644
--- a/gdb/testsuite/gdb.threads/schedlock-thread-exit.c
+++ b/gdb/testsuite/gdb.threads/schedlock-thread-exit.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/schedlock-thread-exit.exp b/gdb/testsuite/gdb.threads/schedlock-thread-exit.exp
index e894387..434b058 100644
--- a/gdb/testsuite/gdb.threads/schedlock-thread-exit.exp
+++ b/gdb/testsuite/gdb.threads/schedlock-thread-exit.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/schedlock.c b/gdb/testsuite/gdb.threads/schedlock.c
index 2ca7a1a..2a25558 100644
--- a/gdb/testsuite/gdb.threads/schedlock.c
+++ b/gdb/testsuite/gdb.threads/schedlock.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/schedlock.exp b/gdb/testsuite/gdb.threads/schedlock.exp
index 4e99961..4e2b835 100644
--- a/gdb/testsuite/gdb.threads/schedlock.exp
+++ b/gdb/testsuite/gdb.threads/schedlock.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2024 Free Software Foundation, Inc.
+# Copyright (C) 1996-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/siginfo-threads.c b/gdb/testsuite/gdb.threads/siginfo-threads.c
index 22c6038..ed1afb7 100644
--- a/gdb/testsuite/gdb.threads/siginfo-threads.c
+++ b/gdb/testsuite/gdb.threads/siginfo-threads.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/siginfo-threads.exp b/gdb/testsuite/gdb.threads/siginfo-threads.exp
index cf43a83..ecc372d 100644
--- a/gdb/testsuite/gdb.threads/siginfo-threads.exp
+++ b/gdb/testsuite/gdb.threads/siginfo-threads.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/signal-command-handle-nopass.c b/gdb/testsuite/gdb.threads/signal-command-handle-nopass.c
index 548d0d3..fec4176 100644
--- a/gdb/testsuite/gdb.threads/signal-command-handle-nopass.c
+++ b/gdb/testsuite/gdb.threads/signal-command-handle-nopass.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/signal-command-handle-nopass.exp b/gdb/testsuite/gdb.threads/signal-command-handle-nopass.exp
index 808006a..2586800 100644
--- a/gdb/testsuite/gdb.threads/signal-command-handle-nopass.exp
+++ b/gdb/testsuite/gdb.threads/signal-command-handle-nopass.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.c b/gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.c
index 3c49cf5..1d3004a 100644
--- a/gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.c
+++ b/gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp b/gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp
index 5f47d75..73f88c1 100644
--- a/gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp
+++ b/gdb/testsuite/gdb.threads/signal-command-multiple-signals-pending.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/signal-delivered-right-thread.c b/gdb/testsuite/gdb.threads/signal-delivered-right-thread.c
index 2c10e57..55e68a2 100644
--- a/gdb/testsuite/gdb.threads/signal-delivered-right-thread.c
+++ b/gdb/testsuite/gdb.threads/signal-delivered-right-thread.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/signal-delivered-right-thread.exp b/gdb/testsuite/gdb.threads/signal-delivered-right-thread.exp
index 71a8598..7445cad 100644
--- a/gdb/testsuite/gdb.threads/signal-delivered-right-thread.exp
+++ b/gdb/testsuite/gdb.threads/signal-delivered-right-thread.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/signal-sigtrap.c b/gdb/testsuite/gdb.threads/signal-sigtrap.c
index 7c903a1..7547f4a 100644
--- a/gdb/testsuite/gdb.threads/signal-sigtrap.c
+++ b/gdb/testsuite/gdb.threads/signal-sigtrap.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/signal-sigtrap.exp b/gdb/testsuite/gdb.threads/signal-sigtrap.exp
index 8058a5b..8154ddf 100644
--- a/gdb/testsuite/gdb.threads/signal-sigtrap.exp
+++ b/gdb/testsuite/gdb.threads/signal-sigtrap.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.c b/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.c
index 74da73e..f103258 100644
--- a/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.c
+++ b/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp b/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp
index 3b1e4b7..e2f7581 100644
--- a/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp
+++ b/gdb/testsuite/gdb.threads/signal-while-stepping-over-bp-other-thread.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/sigstep-threads.c b/gdb/testsuite/gdb.threads/sigstep-threads.c
index e6e63cc..3210bae 100644
--- a/gdb/testsuite/gdb.threads/sigstep-threads.c
+++ b/gdb/testsuite/gdb.threads/sigstep-threads.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/sigstep-threads.exp b/gdb/testsuite/gdb.threads/sigstep-threads.exp
index d0032b3..0580cd0 100644
--- a/gdb/testsuite/gdb.threads/sigstep-threads.exp
+++ b/gdb/testsuite/gdb.threads/sigstep-threads.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/sigthread.exp b/gdb/testsuite/gdb.threads/sigthread.exp
index 024fc08..9d2f9b5 100644
--- a/gdb/testsuite/gdb.threads/sigthread.exp
+++ b/gdb/testsuite/gdb.threads/sigthread.exp
@@ -1,5 +1,5 @@
# sigthread.exp -- Expect script to test thread and signal interaction
-# Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# Copyright (C) 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/slow-waitpid.c b/gdb/testsuite/gdb.threads/slow-waitpid.c
index 280b109..f98b798 100644
--- a/gdb/testsuite/gdb.threads/slow-waitpid.c
+++ b/gdb/testsuite/gdb.threads/slow-waitpid.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2018-2024 Free Software Foundation, Inc.
+ Copyright 2018-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/staticthreads.c b/gdb/testsuite/gdb.threads/staticthreads.c
index 1a38716..579f59d 100644
--- a/gdb/testsuite/gdb.threads/staticthreads.c
+++ b/gdb/testsuite/gdb.threads/staticthreads.c
@@ -1,6 +1,6 @@
/* This test program is part of GDB, The GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
Originally written by Jeff Johnston <jjohnstn@redhat.com>,
contributed by Red Hat
diff --git a/gdb/testsuite/gdb.threads/staticthreads.exp b/gdb/testsuite/gdb.threads/staticthreads.exp
index 320bbbb..0374666 100644
--- a/gdb/testsuite/gdb.threads/staticthreads.exp
+++ b/gdb/testsuite/gdb.threads/staticthreads.exp
@@ -1,6 +1,6 @@
# static.exp -- test script, for GDB, the GNU debugger.
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/step-N-all-progress.c b/gdb/testsuite/gdb.threads/step-N-all-progress.c
index 9f7b6a1..10a0e24 100644
--- a/gdb/testsuite/gdb.threads/step-N-all-progress.c
+++ b/gdb/testsuite/gdb.threads/step-N-all-progress.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/step-N-all-progress.exp b/gdb/testsuite/gdb.threads/step-N-all-progress.exp
index 2ef7c0b..c874d79 100644
--- a/gdb/testsuite/gdb.threads/step-N-all-progress.exp
+++ b/gdb/testsuite/gdb.threads/step-N-all-progress.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.c b/gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.c
index 71cbdc0..8950250 100644
--- a/gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.c
+++ b/gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp b/gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp
index 7726c7f..309c826 100644
--- a/gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp
+++ b/gdb/testsuite/gdb.threads/step-bg-decr-pc-switch-thread.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/step-over-exec-execd.c b/gdb/testsuite/gdb.threads/step-over-exec-execd.c
index dc40255..bbb929e 100644
--- a/gdb/testsuite/gdb.threads/step-over-exec-execd.c
+++ b/gdb/testsuite/gdb.threads/step-over-exec-execd.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/step-over-exec.c b/gdb/testsuite/gdb.threads/step-over-exec.c
index 3b1b265..14ea203 100644
--- a/gdb/testsuite/gdb.threads/step-over-exec.c
+++ b/gdb/testsuite/gdb.threads/step-over-exec.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/step-over-exec.exp b/gdb/testsuite/gdb.threads/step-over-exec.exp
index e5cab9e..7c553f2 100644
--- a/gdb/testsuite/gdb.threads/step-over-exec.exp
+++ b/gdb/testsuite/gdb.threads/step-over-exec.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.c b/gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.c
index c467e51..37b4f32 100644
--- a/gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.c
+++ b/gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.exp b/gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.exp
index 88a6f15..65aa2f1 100644
--- a/gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.exp
+++ b/gdb/testsuite/gdb.threads/step-over-lands-on-breakpoint.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/step-over-thread-exit-while-stop-all-threads.c b/gdb/testsuite/gdb.threads/step-over-thread-exit-while-stop-all-threads.c
index c456bc0..144def6 100644
--- a/gdb/testsuite/gdb.threads/step-over-thread-exit-while-stop-all-threads.c
+++ b/gdb/testsuite/gdb.threads/step-over-thread-exit-while-stop-all-threads.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/step-over-thread-exit-while-stop-all-threads.exp b/gdb/testsuite/gdb.threads/step-over-thread-exit-while-stop-all-threads.exp
index d37c44f..cf10bdc 100644
--- a/gdb/testsuite/gdb.threads/step-over-thread-exit-while-stop-all-threads.exp
+++ b/gdb/testsuite/gdb.threads/step-over-thread-exit-while-stop-all-threads.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/step-over-thread-exit.c b/gdb/testsuite/gdb.threads/step-over-thread-exit.c
index df64724..c6a8ff0 100644
--- a/gdb/testsuite/gdb.threads/step-over-thread-exit.c
+++ b/gdb/testsuite/gdb.threads/step-over-thread-exit.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/step-over-thread-exit.exp b/gdb/testsuite/gdb.threads/step-over-thread-exit.exp
index 98cc94e..31037a7 100644
--- a/gdb/testsuite/gdb.threads/step-over-thread-exit.exp
+++ b/gdb/testsuite/gdb.threads/step-over-thread-exit.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.c b/gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.c
index 1266530..f17ce67 100644
--- a/gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.c
+++ b/gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2014-2024 Free Software Foundation, Inc.
+ Copyright 2014-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.exp b/gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.exp
index 38444365..9a028fe 100644
--- a/gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.exp
+++ b/gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/stepi-over-clone.c b/gdb/testsuite/gdb.threads/stepi-over-clone.c
index f188853..e2aa2e5 100644
--- a/gdb/testsuite/gdb.threads/stepi-over-clone.c
+++ b/gdb/testsuite/gdb.threads/stepi-over-clone.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/stepi-over-clone.exp b/gdb/testsuite/gdb.threads/stepi-over-clone.exp
index b93cfe6..5da123e 100644
--- a/gdb/testsuite/gdb.threads/stepi-over-clone.exp
+++ b/gdb/testsuite/gdb.threads/stepi-over-clone.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/stepi-random-signal.c b/gdb/testsuite/gdb.threads/stepi-random-signal.c
index f113cc5..bea43ce 100644
--- a/gdb/testsuite/gdb.threads/stepi-random-signal.c
+++ b/gdb/testsuite/gdb.threads/stepi-random-signal.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/stepi-random-signal.exp b/gdb/testsuite/gdb.threads/stepi-random-signal.exp
index 5c5229d..8ac81e8 100644
--- a/gdb/testsuite/gdb.threads/stepi-random-signal.exp
+++ b/gdb/testsuite/gdb.threads/stepi-random-signal.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/stop-with-handle.c b/gdb/testsuite/gdb.threads/stop-with-handle.c
index bee985d..34fbabc 100644
--- a/gdb/testsuite/gdb.threads/stop-with-handle.c
+++ b/gdb/testsuite/gdb.threads/stop-with-handle.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/stop-with-handle.exp b/gdb/testsuite/gdb.threads/stop-with-handle.exp
index 3b34ae2..2980449 100644
--- a/gdb/testsuite/gdb.threads/stop-with-handle.exp
+++ b/gdb/testsuite/gdb.threads/stop-with-handle.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/switch-threads.c b/gdb/testsuite/gdb.threads/switch-threads.c
index 71001b6..cfc6703 100644
--- a/gdb/testsuite/gdb.threads/switch-threads.c
+++ b/gdb/testsuite/gdb.threads/switch-threads.c
@@ -1,6 +1,6 @@
/* A minimal multi-threaded test case.
- Copyright 2003-2024 Free Software Foundation, Inc.
+ Copyright 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.threads/switch-threads.exp b/gdb/testsuite/gdb.threads/switch-threads.exp
index 9cb3435..d43603c 100644
--- a/gdb/testsuite/gdb.threads/switch-threads.exp
+++ b/gdb/testsuite/gdb.threads/switch-threads.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2003-2024 Free Software Foundation, Inc.
+# Copyright (C) 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/thread-bp-deleted.c b/gdb/testsuite/gdb.threads/thread-bp-deleted.c
index 8efcec0..f1aee80 100644
--- a/gdb/testsuite/gdb.threads/thread-bp-deleted.c
+++ b/gdb/testsuite/gdb.threads/thread-bp-deleted.c
@@ -1,4 +1,4 @@
-/* Copyright 2023-2024 Free Software Foundation, Inc.
+/* Copyright 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.threads/thread-bp-deleted.exp b/gdb/testsuite/gdb.threads/thread-bp-deleted.exp
index 3851f8f..8cabb70 100644
--- a/gdb/testsuite/gdb.threads/thread-bp-deleted.exp
+++ b/gdb/testsuite/gdb.threads/thread-bp-deleted.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -147,7 +147,7 @@ if {$is_remote} {
exp_continue
}
- -re "No threads match '99'\\.\r\n$gdb_prompt $" {
+ -re "No threads matched\\.\r\n$gdb_prompt $" {
if {!$saw_thread_exited && !$saw_bp_deleted && $attempt_count > 0} {
sleep 1
incr attempt_count -1
diff --git a/gdb/testsuite/gdb.threads/thread-execl.c b/gdb/testsuite/gdb.threads/thread-execl.c
index c6c288c..2d312d4 100644
--- a/gdb/testsuite/gdb.threads/thread-execl.c
+++ b/gdb/testsuite/gdb.threads/thread-execl.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -25,8 +25,9 @@ static const char *image;
void *
thread_execler (void *arg)
{
- /* Exec ourselves again. */
- if (execl (image, image, NULL) == -1)
+ /* Exec ourselves again. Pass an extra argument so that the
+ post-exec image knows to not re-exec yet again. */
+ if (execl (image, image, "1", NULL) == -1)
{
perror ("execl");
abort ();
@@ -40,6 +41,11 @@ main (int argc, char **argv)
{
pthread_t thread;
+ /* An extra argument means we're in the post-exec image, so we're
+ done. Don't re-exec again. */
+ if (argc > 1)
+ exit (0);
+
image = argv[0];
pthread_create (&thread, NULL, thread_execler, NULL);
diff --git a/gdb/testsuite/gdb.threads/thread-execl.exp b/gdb/testsuite/gdb.threads/thread-execl.exp
index 32c4fcf..04ba518 100644
--- a/gdb/testsuite/gdb.threads/thread-execl.exp
+++ b/gdb/testsuite/gdb.threads/thread-execl.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/thread-find.exp b/gdb/testsuite/gdb.threads/thread-find.exp
index 6bc26bf..456f7d3 100644
--- a/gdb/testsuite/gdb.threads/thread-find.exp
+++ b/gdb/testsuite/gdb.threads/thread-find.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/thread-specific-bp.c b/gdb/testsuite/gdb.threads/thread-specific-bp.c
index 66105af..425eb5a 100644
--- a/gdb/testsuite/gdb.threads/thread-specific-bp.c
+++ b/gdb/testsuite/gdb.threads/thread-specific-bp.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/thread-specific-bp.exp b/gdb/testsuite/gdb.threads/thread-specific-bp.exp
index e7641d2..c4858f2 100644
--- a/gdb/testsuite/gdb.threads/thread-specific-bp.exp
+++ b/gdb/testsuite/gdb.threads/thread-specific-bp.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/thread-specific.c b/gdb/testsuite/gdb.threads/thread-specific.c
index 179f6f7..e680251 100644
--- a/gdb/testsuite/gdb.threads/thread-specific.c
+++ b/gdb/testsuite/gdb.threads/thread-specific.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2004-2024 Free Software Foundation, Inc.
+ Copyright 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/thread-specific.exp b/gdb/testsuite/gdb.threads/thread-specific.exp
index 26bba8b..bf9c63b 100644
--- a/gdb/testsuite/gdb.threads/thread-specific.exp
+++ b/gdb/testsuite/gdb.threads/thread-specific.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/thread-unwindonsignal.exp b/gdb/testsuite/gdb.threads/thread-unwindonsignal.exp
index 11d9fb2..5f4ac1f 100644
--- a/gdb/testsuite/gdb.threads/thread-unwindonsignal.exp
+++ b/gdb/testsuite/gdb.threads/thread-unwindonsignal.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2008-2024 Free Software Foundation, Inc.
+# Copyright (C) 2008-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/thread_check.c b/gdb/testsuite/gdb.threads/thread_check.c
index 1958410..2863f0a 100644
--- a/gdb/testsuite/gdb.threads/thread_check.c
+++ b/gdb/testsuite/gdb.threads/thread_check.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2004-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2004-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/thread_check.exp b/gdb/testsuite/gdb.threads/thread_check.exp
index 658f15e..ee5f35a 100644
--- a/gdb/testsuite/gdb.threads/thread_check.exp
+++ b/gdb/testsuite/gdb.threads/thread_check.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2004-2024 Free Software Foundation, Inc.
+# Copyright (C) 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/thread_events.c b/gdb/testsuite/gdb.threads/thread_events.c
index 598633b..d7a6c09 100644
--- a/gdb/testsuite/gdb.threads/thread_events.c
+++ b/gdb/testsuite/gdb.threads/thread_events.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/thread_events.exp b/gdb/testsuite/gdb.threads/thread_events.exp
index ca51abe..91539e0 100644
--- a/gdb/testsuite/gdb.threads/thread_events.exp
+++ b/gdb/testsuite/gdb.threads/thread_events.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2024 Free Software Foundation, Inc.
+# Copyright (C) 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/threadapply.c b/gdb/testsuite/gdb.threads/threadapply.c
index d21974d..5dccaa4 100644
--- a/gdb/testsuite/gdb.threads/threadapply.c
+++ b/gdb/testsuite/gdb.threads/threadapply.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/threadapply.exp b/gdb/testsuite/gdb.threads/threadapply.exp
index df72909..9110617 100644
--- a/gdb/testsuite/gdb.threads/threadapply.exp
+++ b/gdb/testsuite/gdb.threads/threadapply.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -224,6 +224,8 @@ proc kill_and_remove_inferior {thread_set} {
# Test both "all" and a thread list, because those are implemented as
# different commands in GDB.
-foreach_with_prefix thread_set {"all" "1.1"} {
- kill_and_remove_inferior $thread_set
+if {[allow_multi_inferior_tests]} {
+ foreach_with_prefix thread_set {"all" "1.1"} {
+ kill_and_remove_inferior $thread_set
+ }
}
diff --git a/gdb/testsuite/gdb.threads/threadcrash.c b/gdb/testsuite/gdb.threads/threadcrash.c
index e476ae7..4109340 100644
--- a/gdb/testsuite/gdb.threads/threadcrash.c
+++ b/gdb/testsuite/gdb.threads/threadcrash.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/threadcrash.exp b/gdb/testsuite/gdb.threads/threadcrash.exp
index 6da7073..15d2a20 100644
--- a/gdb/testsuite/gdb.threads/threadcrash.exp
+++ b/gdb/testsuite/gdb.threads/threadcrash.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2023 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/threads-after-exec.c b/gdb/testsuite/gdb.threads/threads-after-exec.c
index 1278e48..feb44d3 100644
--- a/gdb/testsuite/gdb.threads/threads-after-exec.c
+++ b/gdb/testsuite/gdb.threads/threads-after-exec.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/threads-after-exec.exp b/gdb/testsuite/gdb.threads/threads-after-exec.exp
index 32aec6b..db26315 100644
--- a/gdb/testsuite/gdb.threads/threads-after-exec.exp
+++ b/gdb/testsuite/gdb.threads/threads-after-exec.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/threxit-hop-specific.c b/gdb/testsuite/gdb.threads/threxit-hop-specific.c
index 1cbb1d2..afc887a 100644
--- a/gdb/testsuite/gdb.threads/threxit-hop-specific.c
+++ b/gdb/testsuite/gdb.threads/threxit-hop-specific.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/threxit-hop-specific.exp b/gdb/testsuite/gdb.threads/threxit-hop-specific.exp
index fc6a787..ce2df7c 100644
--- a/gdb/testsuite/gdb.threads/threxit-hop-specific.exp
+++ b/gdb/testsuite/gdb.threads/threxit-hop-specific.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2009-2024 Free Software Foundation, Inc.
+# Copyright (C) 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/tid-reuse.c b/gdb/testsuite/gdb.threads/tid-reuse.c
index e8fb778..041a285 100644
--- a/gdb/testsuite/gdb.threads/tid-reuse.c
+++ b/gdb/testsuite/gdb.threads/tid-reuse.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/tid-reuse.exp b/gdb/testsuite/gdb.threads/tid-reuse.exp
index f89185c..6762127 100644
--- a/gdb/testsuite/gdb.threads/tid-reuse.exp
+++ b/gdb/testsuite/gdb.threads/tid-reuse.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/tls-core.c b/gdb/testsuite/gdb.threads/tls-core.c
index a645575..b748369 100644
--- a/gdb/testsuite/gdb.threads/tls-core.c
+++ b/gdb/testsuite/gdb.threads/tls-core.c
@@ -1,6 +1,6 @@
/* This test is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/tls-core.exp b/gdb/testsuite/gdb.threads/tls-core.exp
index 32433f5..96b1c6a 100644
--- a/gdb/testsuite/gdb.threads/tls-core.exp
+++ b/gdb/testsuite/gdb.threads/tls-core.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/tls-nodebug-pie.c b/gdb/testsuite/gdb.threads/tls-nodebug-pie.c
index 4dac62e..c86a95a 100644
--- a/gdb/testsuite/gdb.threads/tls-nodebug-pie.c
+++ b/gdb/testsuite/gdb.threads/tls-nodebug-pie.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/tls-nodebug-pie.exp b/gdb/testsuite/gdb.threads/tls-nodebug-pie.exp
index c5a7f66..01abcfa 100644
--- a/gdb/testsuite/gdb.threads/tls-nodebug-pie.exp
+++ b/gdb/testsuite/gdb.threads/tls-nodebug-pie.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/tls-nodebug.exp b/gdb/testsuite/gdb.threads/tls-nodebug.exp
index c78623d..ebfa752 100644
--- a/gdb/testsuite/gdb.threads/tls-nodebug.exp
+++ b/gdb/testsuite/gdb.threads/tls-nodebug.exp
@@ -1,5 +1,5 @@
# tls.exp -- Expect script to test thread-local storage without debuginfo
-# Copyright (C) 2006-2024 Free Software Foundation, Inc.
+# Copyright (C) 2006-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/tls-sepdebug-main.c b/gdb/testsuite/gdb.threads/tls-sepdebug-main.c
index c48923f..9287f16 100644
--- a/gdb/testsuite/gdb.threads/tls-sepdebug-main.c
+++ b/gdb/testsuite/gdb.threads/tls-sepdebug-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2006-2024 Free Software Foundation, Inc.
+ Copyright 2006-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c b/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c
index 8178f5c..201697b 100644
--- a/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c
+++ b/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2006-2024 Free Software Foundation, Inc.
+ Copyright 2006-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/tls-sepdebug.exp b/gdb/testsuite/gdb.threads/tls-sepdebug.exp
index 4a322e0..6f3c711 100644
--- a/gdb/testsuite/gdb.threads/tls-sepdebug.exp
+++ b/gdb/testsuite/gdb.threads/tls-sepdebug.exp
@@ -1,4 +1,4 @@
-# Copyright 2006-2024 Free Software Foundation, Inc.
+# Copyright 2006-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/tls-shared.exp b/gdb/testsuite/gdb.threads/tls-shared.exp
index 9d39686..35596bc 100644
--- a/gdb/testsuite/gdb.threads/tls-shared.exp
+++ b/gdb/testsuite/gdb.threads/tls-shared.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/tls-so_extern.c b/gdb/testsuite/gdb.threads/tls-so_extern.c
index be1cf59..cc7af64 100644
--- a/gdb/testsuite/gdb.threads/tls-so_extern.c
+++ b/gdb/testsuite/gdb.threads/tls-so_extern.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/tls-so_extern.exp b/gdb/testsuite/gdb.threads/tls-so_extern.exp
index 6bc5572..3cef672 100644
--- a/gdb/testsuite/gdb.threads/tls-so_extern.exp
+++ b/gdb/testsuite/gdb.threads/tls-so_extern.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/tls-so_extern_main.c b/gdb/testsuite/gdb.threads/tls-so_extern_main.c
index 3dc806f..9829d7a 100644
--- a/gdb/testsuite/gdb.threads/tls-so_extern_main.c
+++ b/gdb/testsuite/gdb.threads/tls-so_extern_main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/tls-var-main.c b/gdb/testsuite/gdb.threads/tls-var-main.c
index ef744b7..9b8f057 100644
--- a/gdb/testsuite/gdb.threads/tls-var-main.c
+++ b/gdb/testsuite/gdb.threads/tls-var-main.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/tls-var.c b/gdb/testsuite/gdb.threads/tls-var.c
index 448135e..5be9be9 100644
--- a/gdb/testsuite/gdb.threads/tls-var.c
+++ b/gdb/testsuite/gdb.threads/tls-var.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/tls-var.exp b/gdb/testsuite/gdb.threads/tls-var.exp
index cd56dcd..de74bd9 100644
--- a/gdb/testsuite/gdb.threads/tls-var.exp
+++ b/gdb/testsuite/gdb.threads/tls-var.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/tls.exp b/gdb/testsuite/gdb.threads/tls.exp
index c6fdb6f..73fada7 100644
--- a/gdb/testsuite/gdb.threads/tls.exp
+++ b/gdb/testsuite/gdb.threads/tls.exp
@@ -1,5 +1,5 @@
# tls.exp -- Expect script to test thread-local storage
-# Copyright (C) 1992-2024 Free Software Foundation, Inc.
+# Copyright (C) 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -159,7 +159,7 @@ gdb_test_multiple "print a_thread_local" "" {
-re -wrap "Cannot find thread-local variables on this target" {
kfail "gdb/25807" $gdb_test_name
}
- -re -wrap "Cannot read .a_thread_local. without registers" {
+ -re -wrap "Cannot (?:read|find address of TLS symbol) .a_thread_local. without registers" {
pass $gdb_test_name
}
}
diff --git a/gdb/testsuite/gdb.threads/tls2.c b/gdb/testsuite/gdb.threads/tls2.c
index f4d7177..4d1b685 100644
--- a/gdb/testsuite/gdb.threads/tls2.c
+++ b/gdb/testsuite/gdb.threads/tls2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2008-2024 Free Software Foundation, Inc.
+ Copyright 2008-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/vfork-follow-child-exec.c b/gdb/testsuite/gdb.threads/vfork-follow-child-exec.c
index 7340073..9bad522 100644
--- a/gdb/testsuite/gdb.threads/vfork-follow-child-exec.c
+++ b/gdb/testsuite/gdb.threads/vfork-follow-child-exec.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/vfork-follow-child-exec.exp b/gdb/testsuite/gdb.threads/vfork-follow-child-exec.exp
index 9c47308..0b95a75 100644
--- a/gdb/testsuite/gdb.threads/vfork-follow-child-exec.exp
+++ b/gdb/testsuite/gdb.threads/vfork-follow-child-exec.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# Copyright (C) 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,6 +16,8 @@
# Test following a vfork child that execs, when the vfork parent is a
# threaded program, and it's a non-main thread that vforks.
+require allow_fork_tests
+
standard_testfile
if {[build_executable "failed to prepare" $testfile $srcfile {debug pthreads}]} {
diff --git a/gdb/testsuite/gdb.threads/vfork-follow-child-exit.c b/gdb/testsuite/gdb.threads/vfork-follow-child-exit.c
index fce9b92..ad972a1 100644
--- a/gdb/testsuite/gdb.threads/vfork-follow-child-exit.c
+++ b/gdb/testsuite/gdb.threads/vfork-follow-child-exit.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2019-2024 Free Software Foundation, Inc.
+ Copyright 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/vfork-follow-child-exit.exp b/gdb/testsuite/gdb.threads/vfork-follow-child-exit.exp
index e593b6c..ced52df 100644
--- a/gdb/testsuite/gdb.threads/vfork-follow-child-exit.exp
+++ b/gdb/testsuite/gdb.threads/vfork-follow-child-exit.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# Copyright (C) 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,6 +16,8 @@
# Test following a vfork child that exits, when the vfork parent is a
# threaded program, and it's a non-main thread that vforks.
+require allow_fork_tests
+
standard_testfile
if {[build_executable "failed to prepare" $testfile $srcfile {debug pthreads}]} {
diff --git a/gdb/testsuite/gdb.threads/vfork-multi-inferior-sleep.c b/gdb/testsuite/gdb.threads/vfork-multi-inferior-sleep.c
index c416e99..58e5c3f 100644
--- a/gdb/testsuite/gdb.threads/vfork-multi-inferior-sleep.c
+++ b/gdb/testsuite/gdb.threads/vfork-multi-inferior-sleep.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/vfork-multi-inferior.c b/gdb/testsuite/gdb.threads/vfork-multi-inferior.c
index ae0aab0..e62f1ec 100644
--- a/gdb/testsuite/gdb.threads/vfork-multi-inferior.c
+++ b/gdb/testsuite/gdb.threads/vfork-multi-inferior.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/vfork-multi-inferior.exp b/gdb/testsuite/gdb.threads/vfork-multi-inferior.exp
index 4b45ee8..1f87427 100644
--- a/gdb/testsuite/gdb.threads/vfork-multi-inferior.exp
+++ b/gdb/testsuite/gdb.threads/vfork-multi-inferior.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -25,6 +25,10 @@
# To catch the bug, this test verifies that we can hit a breakpoint after a
# vfork call, while a second inferior runs in the background.
+require allow_fork_tests
+
+require allow_multi_inferior_tests
+
require !use_gdb_stub
standard_testfile .c -sleep.c
diff --git a/gdb/testsuite/gdb.threads/vfork-multi-thread.c b/gdb/testsuite/gdb.threads/vfork-multi-thread.c
index 0818868..0bc8575 100644
--- a/gdb/testsuite/gdb.threads/vfork-multi-thread.c
+++ b/gdb/testsuite/gdb.threads/vfork-multi-thread.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2022-2024 Free Software Foundation, Inc.
+ Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/vfork-multi-thread.exp b/gdb/testsuite/gdb.threads/vfork-multi-thread.exp
index 59e0298..61811ae 100644
--- a/gdb/testsuite/gdb.threads/vfork-multi-thread.exp
+++ b/gdb/testsuite/gdb.threads/vfork-multi-thread.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -30,6 +30,8 @@
# breakpoints are removed, so the main thread would miss the breakpoint and run
# until exit.
+require allow_fork_tests
+
standard_testfile
if { [build_executable "failed to prepare" ${testfile} ${srcfile} {debug pthreads}] } {
diff --git a/gdb/testsuite/gdb.threads/watchpoint-fork-child.c b/gdb/testsuite/gdb.threads/watchpoint-fork-child.c
index 8562b42..0fa3686 100644
--- a/gdb/testsuite/gdb.threads/watchpoint-fork-child.c
+++ b/gdb/testsuite/gdb.threads/watchpoint-fork-child.c
@@ -1,6 +1,6 @@
/* Test case for forgotten hw-watchpoints after fork()-off of a process.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.threads/watchpoint-fork-mt.c b/gdb/testsuite/gdb.threads/watchpoint-fork-mt.c
index eb65d45..0919b95 100644
--- a/gdb/testsuite/gdb.threads/watchpoint-fork-mt.c
+++ b/gdb/testsuite/gdb.threads/watchpoint-fork-mt.c
@@ -1,6 +1,6 @@
/* Test case for forgotten hw-watchpoints after fork()-off of a process.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.threads/watchpoint-fork-parent.c b/gdb/testsuite/gdb.threads/watchpoint-fork-parent.c
index 02c2c11..229d775 100644
--- a/gdb/testsuite/gdb.threads/watchpoint-fork-parent.c
+++ b/gdb/testsuite/gdb.threads/watchpoint-fork-parent.c
@@ -1,6 +1,6 @@
/* Test case for forgotten hw-watchpoints after fork()-off of a process.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.threads/watchpoint-fork-st.c b/gdb/testsuite/gdb.threads/watchpoint-fork-st.c
index 42d2192..5438503 100644
--- a/gdb/testsuite/gdb.threads/watchpoint-fork-st.c
+++ b/gdb/testsuite/gdb.threads/watchpoint-fork-st.c
@@ -1,6 +1,6 @@
/* Test case for forgotten hw-watchpoints after fork()-off of a process.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.threads/watchpoint-fork.exp b/gdb/testsuite/gdb.threads/watchpoint-fork.exp
index b9f21b5..8e9b1c3 100644
--- a/gdb/testsuite/gdb.threads/watchpoint-fork.exp
+++ b/gdb/testsuite/gdb.threads/watchpoint-fork.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -21,6 +21,8 @@
# must be done before starting the test so as to not disrupt the execution
# of the actual test.
+require allow_fork_tests
+
set allow_hw_watchpoint_tests_p [allow_hw_watchpoint_tests]
set testfile watchpoint-fork
diff --git a/gdb/testsuite/gdb.threads/watchpoint-fork.h b/gdb/testsuite/gdb.threads/watchpoint-fork.h
index b46db7f..50cf36c 100644
--- a/gdb/testsuite/gdb.threads/watchpoint-fork.h
+++ b/gdb/testsuite/gdb.threads/watchpoint-fork.h
@@ -1,6 +1,6 @@
/* Test case for forgotten hw-watchpoints after fork()-off of a process.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/gdb.threads/watchthreads-reorder.c b/gdb/testsuite/gdb.threads/watchthreads-reorder.c
index 056d38e..82ab14d 100644
--- a/gdb/testsuite/gdb.threads/watchthreads-reorder.c
+++ b/gdb/testsuite/gdb.threads/watchthreads-reorder.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/watchthreads-reorder.exp b/gdb/testsuite/gdb.threads/watchthreads-reorder.exp
index 00e532b..5d98913 100644
--- a/gdb/testsuite/gdb.threads/watchthreads-reorder.exp
+++ b/gdb/testsuite/gdb.threads/watchthreads-reorder.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/watchthreads.c b/gdb/testsuite/gdb.threads/watchthreads.c
index 2b0bdbc..0c2877d 100644
--- a/gdb/testsuite/gdb.threads/watchthreads.c
+++ b/gdb/testsuite/gdb.threads/watchthreads.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/watchthreads.exp b/gdb/testsuite/gdb.threads/watchthreads.exp
index 3adec13..49fc762 100644
--- a/gdb/testsuite/gdb.threads/watchthreads.exp
+++ b/gdb/testsuite/gdb.threads/watchthreads.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/watchthreads2.c b/gdb/testsuite/gdb.threads/watchthreads2.c
index dddad19..ee67566 100644
--- a/gdb/testsuite/gdb.threads/watchthreads2.c
+++ b/gdb/testsuite/gdb.threads/watchthreads2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/watchthreads2.exp b/gdb/testsuite/gdb.threads/watchthreads2.exp
index ee97bfe..2426be4 100644
--- a/gdb/testsuite/gdb.threads/watchthreads2.exp
+++ b/gdb/testsuite/gdb.threads/watchthreads2.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/wp-replication.c b/gdb/testsuite/gdb.threads/wp-replication.c
index 0629a7e..d37d3e0 100644
--- a/gdb/testsuite/gdb.threads/wp-replication.c
+++ b/gdb/testsuite/gdb.threads/wp-replication.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.threads/wp-replication.exp b/gdb/testsuite/gdb.threads/wp-replication.exp
index b73c6c5..68f5eb0 100644
--- a/gdb/testsuite/gdb.threads/wp-replication.exp
+++ b/gdb/testsuite/gdb.threads/wp-replication.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/actions-changed.c b/gdb/testsuite/gdb.trace/actions-changed.c
index aafecc0..2d9c5b9 100644
--- a/gdb/testsuite/gdb.trace/actions-changed.c
+++ b/gdb/testsuite/gdb.trace/actions-changed.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/actions-changed.exp b/gdb/testsuite/gdb.trace/actions-changed.exp
index b636f59..556dab5 100644
--- a/gdb/testsuite/gdb.trace/actions-changed.exp
+++ b/gdb/testsuite/gdb.trace/actions-changed.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/actions.c b/gdb/testsuite/gdb.trace/actions.c
index 56906b6..0ecae59 100644
--- a/gdb/testsuite/gdb.trace/actions.c
+++ b/gdb/testsuite/gdb.trace/actions.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1998-2024 Free Software Foundation, Inc.
+ Copyright 1998-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/actions.exp b/gdb/testsuite/gdb.trace/actions.exp
index 9455103..9bb38e1 100644
--- a/gdb/testsuite/gdb.trace/actions.exp
+++ b/gdb/testsuite/gdb.trace/actions.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/ax.exp b/gdb/testsuite/gdb.trace/ax.exp
index 24f4fcd..3380cdf 100644
--- a/gdb/testsuite/gdb.trace/ax.exp
+++ b/gdb/testsuite/gdb.trace/ax.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/backtrace.exp b/gdb/testsuite/gdb.trace/backtrace.exp
index 4f1b856..57073bd 100644
--- a/gdb/testsuite/gdb.trace/backtrace.exp
+++ b/gdb/testsuite/gdb.trace/backtrace.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/basic-libipa.c b/gdb/testsuite/gdb.trace/basic-libipa.c
index bbcfb01..9369dd4 100644
--- a/gdb/testsuite/gdb.trace/basic-libipa.c
+++ b/gdb/testsuite/gdb.trace/basic-libipa.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2024 Free Software Foundation, Inc.
+ Copyright 2024-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/basic-libipa.exp b/gdb/testsuite/gdb.trace/basic-libipa.exp
index dcde297..e7612ac 100644
--- a/gdb/testsuite/gdb.trace/basic-libipa.exp
+++ b/gdb/testsuite/gdb.trace/basic-libipa.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
@@ -40,7 +40,7 @@ save_vars { env(ASAN_OPTIONS) } {
# 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.
- set_sanitizer_default ASAN_OPTIONS verify_asan_link_order 0
+ append_environment_default ASAN_OPTIONS verify_asan_link_order 0
clean_restart $binfile
}
diff --git a/gdb/testsuite/gdb.trace/change-loc-1.c b/gdb/testsuite/gdb.trace/change-loc-1.c
index 06f9cde..2d69173 100644
--- a/gdb/testsuite/gdb.trace/change-loc-1.c
+++ b/gdb/testsuite/gdb.trace/change-loc-1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/change-loc-2.c b/gdb/testsuite/gdb.trace/change-loc-2.c
index 3f88978..ea6a79f 100644
--- a/gdb/testsuite/gdb.trace/change-loc-2.c
+++ b/gdb/testsuite/gdb.trace/change-loc-2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/change-loc.c b/gdb/testsuite/gdb.trace/change-loc.c
index 0598000..92bdc2d 100644
--- a/gdb/testsuite/gdb.trace/change-loc.c
+++ b/gdb/testsuite/gdb.trace/change-loc.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/change-loc.exp b/gdb/testsuite/gdb.trace/change-loc.exp
index 1316d92..67ac476 100644
--- a/gdb/testsuite/gdb.trace/change-loc.exp
+++ b/gdb/testsuite/gdb.trace/change-loc.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
@@ -149,6 +149,7 @@ proc tracepoint_change_loc_1 { trace_type } {
(4\.\[1-3].* in func4.*\tinstalled on target.*){2}" \
"tracepoint with two locations - installed (unload)"
+ setup_kfail gdb/32404 "*-*-*"
gdb_test "info trace" \
"Num Type\[ \]+Disp Enb Address\[ \]+What.*
\[0-9\]+\[\t \]+\(|fast \)tracepoint\[ \]+keep y.*\<MULTIPLE\>.*
@@ -263,6 +264,7 @@ proc tracepoint_change_loc_2 { trace_type } {
(1\.\[1-3].* in func4.*\tinstalled on target.*){2}" \
"tracepoint with two locations - installed (unload)"
+ setup_kfail gdb/32404 "*-*-*"
gdb_test "info trace" \
"Num Type\[ \]+Disp Enb Address\[ \]+What.*
\[0-9\]+\[\t \]+\(|fast \)tracepoint\[ \]+keep y.*\<MULTIPLE\>.*
diff --git a/gdb/testsuite/gdb.trace/change-loc.h b/gdb/testsuite/gdb.trace/change-loc.h
index 956dca9..1f6ce07 100644
--- a/gdb/testsuite/gdb.trace/change-loc.h
+++ b/gdb/testsuite/gdb.trace/change-loc.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/circ.c b/gdb/testsuite/gdb.trace/circ.c
index fab1b83..45ae869 100644
--- a/gdb/testsuite/gdb.trace/circ.c
+++ b/gdb/testsuite/gdb.trace/circ.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1998-2024 Free Software Foundation, Inc.
+ Copyright 1998-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/circ.exp b/gdb/testsuite/gdb.trace/circ.exp
index 41d4c81..3354c0f 100644
--- a/gdb/testsuite/gdb.trace/circ.exp
+++ b/gdb/testsuite/gdb.trace/circ.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/collection.c b/gdb/testsuite/gdb.trace/collection.c
index 8379b7d..660d7c8 100644
--- a/gdb/testsuite/gdb.trace/collection.c
+++ b/gdb/testsuite/gdb.trace/collection.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 1998-2024 Free Software Foundation, Inc.
+ Copyright 1998-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/collection.exp b/gdb/testsuite/gdb.trace/collection.exp
index 9c6d3f5..f0946ee 100644
--- a/gdb/testsuite/gdb.trace/collection.exp
+++ b/gdb/testsuite/gdb.trace/collection.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/deltrace.exp b/gdb/testsuite/gdb.trace/deltrace.exp
index 94ab663..d05fe64 100644
--- a/gdb/testsuite/gdb.trace/deltrace.exp
+++ b/gdb/testsuite/gdb.trace/deltrace.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/disconnected-tracing.c b/gdb/testsuite/gdb.trace/disconnected-tracing.c
index 27b5281..b712139 100644
--- a/gdb/testsuite/gdb.trace/disconnected-tracing.c
+++ b/gdb/testsuite/gdb.trace/disconnected-tracing.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/disconnected-tracing.exp b/gdb/testsuite/gdb.trace/disconnected-tracing.exp
index 3c26f15..5a4e882 100644
--- a/gdb/testsuite/gdb.trace/disconnected-tracing.exp
+++ b/gdb/testsuite/gdb.trace/disconnected-tracing.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/entry-values.c b/gdb/testsuite/gdb.trace/entry-values.c
index 3f0111c..a7d40f7 100644
--- a/gdb/testsuite/gdb.trace/entry-values.c
+++ b/gdb/testsuite/gdb.trace/entry-values.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/entry-values.exp b/gdb/testsuite/gdb.trace/entry-values.exp
index 82ae5a8..f6bcf66 100644
--- a/gdb/testsuite/gdb.trace/entry-values.exp
+++ b/gdb/testsuite/gdb.trace/entry-values.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/ftrace-lock.c b/gdb/testsuite/gdb.trace/ftrace-lock.c
index 0d401c6..04b73d8 100644
--- a/gdb/testsuite/gdb.trace/ftrace-lock.c
+++ b/gdb/testsuite/gdb.trace/ftrace-lock.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/ftrace-lock.exp b/gdb/testsuite/gdb.trace/ftrace-lock.exp
index 637d5eb..36a7566 100644
--- a/gdb/testsuite/gdb.trace/ftrace-lock.exp
+++ b/gdb/testsuite/gdb.trace/ftrace-lock.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.trace/ftrace.c b/gdb/testsuite/gdb.trace/ftrace.c
index f0175e3..30a988f 100644
--- a/gdb/testsuite/gdb.trace/ftrace.c
+++ b/gdb/testsuite/gdb.trace/ftrace.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/ftrace.exp b/gdb/testsuite/gdb.trace/ftrace.exp
index 408cd37..ac6e473 100644
--- a/gdb/testsuite/gdb.trace/ftrace.exp
+++ b/gdb/testsuite/gdb.trace/ftrace.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.trace/infotrace.exp b/gdb/testsuite/gdb.trace/infotrace.exp
index f1c9cdf..7ba4ed3 100644
--- a/gdb/testsuite/gdb.trace/infotrace.exp
+++ b/gdb/testsuite/gdb.trace/infotrace.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/mi-trace-frame-collected.exp b/gdb/testsuite/gdb.trace/mi-trace-frame-collected.exp
index 88f00c2..dd0d785 100644
--- a/gdb/testsuite/gdb.trace/mi-trace-frame-collected.exp
+++ b/gdb/testsuite/gdb.trace/mi-trace-frame-collected.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/mi-trace-save.exp b/gdb/testsuite/gdb.trace/mi-trace-save.exp
index 9548082..c95d0cd 100644
--- a/gdb/testsuite/gdb.trace/mi-trace-save.exp
+++ b/gdb/testsuite/gdb.trace/mi-trace-save.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/mi-trace-unavailable.exp b/gdb/testsuite/gdb.trace/mi-trace-unavailable.exp
index 7e56958..dde6d8b 100644
--- a/gdb/testsuite/gdb.trace/mi-trace-unavailable.exp
+++ b/gdb/testsuite/gdb.trace/mi-trace-unavailable.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/mi-traceframe-changed.exp b/gdb/testsuite/gdb.trace/mi-traceframe-changed.exp
index 2ce514f..05c10ed 100644
--- a/gdb/testsuite/gdb.trace/mi-traceframe-changed.exp
+++ b/gdb/testsuite/gdb.trace/mi-traceframe-changed.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp b/gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp
index dee7142..90654c0 100644
--- a/gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp
+++ b/gdb/testsuite/gdb.trace/mi-tracepoint-changed.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/mi-tsv-changed.exp b/gdb/testsuite/gdb.trace/mi-tsv-changed.exp
index 50d325a..f90d9a4 100644
--- a/gdb/testsuite/gdb.trace/mi-tsv-changed.exp
+++ b/gdb/testsuite/gdb.trace/mi-tsv-changed.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/no-attach-trace.c b/gdb/testsuite/gdb.trace/no-attach-trace.c
index 23e7fdc..f48ff23 100644
--- a/gdb/testsuite/gdb.trace/no-attach-trace.c
+++ b/gdb/testsuite/gdb.trace/no-attach-trace.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2015-2024 Free Software Foundation, Inc.
+ Copyright 2015-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/no-attach-trace.exp b/gdb/testsuite/gdb.trace/no-attach-trace.exp
index c993844..e1decfc 100644
--- a/gdb/testsuite/gdb.trace/no-attach-trace.exp
+++ b/gdb/testsuite/gdb.trace/no-attach-trace.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/packetlen.exp b/gdb/testsuite/gdb.trace/packetlen.exp
index 1110b31..cf9fcc4 100644
--- a/gdb/testsuite/gdb.trace/packetlen.exp
+++ b/gdb/testsuite/gdb.trace/packetlen.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/passc-dyn.exp b/gdb/testsuite/gdb.trace/passc-dyn.exp
index a5f55d9..0a67df1 100644
--- a/gdb/testsuite/gdb.trace/passc-dyn.exp
+++ b/gdb/testsuite/gdb.trace/passc-dyn.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/passcount.exp b/gdb/testsuite/gdb.trace/passcount.exp
index 1408c19c..f1b4e9e 100644
--- a/gdb/testsuite/gdb.trace/passcount.exp
+++ b/gdb/testsuite/gdb.trace/passcount.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/pending.c b/gdb/testsuite/gdb.trace/pending.c
index c638794..dedf35d 100644
--- a/gdb/testsuite/gdb.trace/pending.c
+++ b/gdb/testsuite/gdb.trace/pending.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/pending.exp b/gdb/testsuite/gdb.trace/pending.exp
index 66209ad..39e3abb 100644
--- a/gdb/testsuite/gdb.trace/pending.exp
+++ b/gdb/testsuite/gdb.trace/pending.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.trace/pendshr1.c b/gdb/testsuite/gdb.trace/pendshr1.c
index f6d32b8..dbd4093 100644
--- a/gdb/testsuite/gdb.trace/pendshr1.c
+++ b/gdb/testsuite/gdb.trace/pendshr1.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/pendshr2.c b/gdb/testsuite/gdb.trace/pendshr2.c
index c838e38..3556cc6 100644
--- a/gdb/testsuite/gdb.trace/pendshr2.c
+++ b/gdb/testsuite/gdb.trace/pendshr2.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/pr16508.exp b/gdb/testsuite/gdb.trace/pr16508.exp
index ed55e9d..2284ab2 100644
--- a/gdb/testsuite/gdb.trace/pr16508.exp
+++ b/gdb/testsuite/gdb.trace/pr16508.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.trace/qtro.c b/gdb/testsuite/gdb.trace/qtro.c
index 8c5348a..882d0b6 100644
--- a/gdb/testsuite/gdb.trace/qtro.c
+++ b/gdb/testsuite/gdb.trace/qtro.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/qtro.exp b/gdb/testsuite/gdb.trace/qtro.exp
index 60f73d7..78170ac 100644
--- a/gdb/testsuite/gdb.trace/qtro.exp
+++ b/gdb/testsuite/gdb.trace/qtro.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/range-stepping.c b/gdb/testsuite/gdb.trace/range-stepping.c
index 9ffce73..0ba1c38 100644
--- a/gdb/testsuite/gdb.trace/range-stepping.c
+++ b/gdb/testsuite/gdb.trace/range-stepping.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/range-stepping.exp b/gdb/testsuite/gdb.trace/range-stepping.exp
index 373a0bf..396ed02 100644
--- a/gdb/testsuite/gdb.trace/range-stepping.exp
+++ b/gdb/testsuite/gdb.trace/range-stepping.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/read-memory.c b/gdb/testsuite/gdb.trace/read-memory.c
index be0fe6d..481c4d2 100644
--- a/gdb/testsuite/gdb.trace/read-memory.c
+++ b/gdb/testsuite/gdb.trace/read-memory.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/read-memory.exp b/gdb/testsuite/gdb.trace/read-memory.exp
index c42bac0..558c0ea 100644
--- a/gdb/testsuite/gdb.trace/read-memory.exp
+++ b/gdb/testsuite/gdb.trace/read-memory.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/report.exp b/gdb/testsuite/gdb.trace/report.exp
index 7146599..45857a1 100644
--- a/gdb/testsuite/gdb.trace/report.exp
+++ b/gdb/testsuite/gdb.trace/report.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/save-trace.exp b/gdb/testsuite/gdb.trace/save-trace.exp
index f30b5b5..b018dc6 100644
--- a/gdb/testsuite/gdb.trace/save-trace.exp
+++ b/gdb/testsuite/gdb.trace/save-trace.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/signal.c b/gdb/testsuite/gdb.trace/signal.c
index f0e526c..183b3bb 100644
--- a/gdb/testsuite/gdb.trace/signal.c
+++ b/gdb/testsuite/gdb.trace/signal.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/signal.exp b/gdb/testsuite/gdb.trace/signal.exp
index 6f0e520..9c63770 100644
--- a/gdb/testsuite/gdb.trace/signal.exp
+++ b/gdb/testsuite/gdb.trace/signal.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/stap-trace.c b/gdb/testsuite/gdb.trace/stap-trace.c
index 5274828..e816fa6 100644
--- a/gdb/testsuite/gdb.trace/stap-trace.c
+++ b/gdb/testsuite/gdb.trace/stap-trace.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/stap-trace.exp b/gdb/testsuite/gdb.trace/stap-trace.exp
index c1e4b6e..37e2e4b 100644
--- a/gdb/testsuite/gdb.trace/stap-trace.exp
+++ b/gdb/testsuite/gdb.trace/stap-trace.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/status-stop.c b/gdb/testsuite/gdb.trace/status-stop.c
index 8a5d478..35fa43a 100644
--- a/gdb/testsuite/gdb.trace/status-stop.c
+++ b/gdb/testsuite/gdb.trace/status-stop.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/status-stop.exp b/gdb/testsuite/gdb.trace/status-stop.exp
index a980b69..1762d30 100644
--- a/gdb/testsuite/gdb.trace/status-stop.exp
+++ b/gdb/testsuite/gdb.trace/status-stop.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.trace/strace.c b/gdb/testsuite/gdb.trace/strace.c
index 9430a2c..6c6a785 100644
--- a/gdb/testsuite/gdb.trace/strace.c
+++ b/gdb/testsuite/gdb.trace/strace.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/strace.exp b/gdb/testsuite/gdb.trace/strace.exp
index ef243a4..90923c1 100644
--- a/gdb/testsuite/gdb.trace/strace.exp
+++ b/gdb/testsuite/gdb.trace/strace.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.trace/tfile.c b/gdb/testsuite/gdb.trace/tfile.c
index 5ec5248..76ed462 100644
--- a/gdb/testsuite/gdb.trace/tfile.c
+++ b/gdb/testsuite/gdb.trace/tfile.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/tfile.exp b/gdb/testsuite/gdb.trace/tfile.exp
index 36ceaea..020f4d4 100644
--- a/gdb/testsuite/gdb.trace/tfile.exp
+++ b/gdb/testsuite/gdb.trace/tfile.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/tfind.exp b/gdb/testsuite/gdb.trace/tfind.exp
index 5dba88b..ae73206 100644
--- a/gdb/testsuite/gdb.trace/tfind.exp
+++ b/gdb/testsuite/gdb.trace/tfind.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/trace-break.c b/gdb/testsuite/gdb.trace/trace-break.c
index d36a60f..466c41e 100644
--- a/gdb/testsuite/gdb.trace/trace-break.c
+++ b/gdb/testsuite/gdb.trace/trace-break.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/trace-break.exp b/gdb/testsuite/gdb.trace/trace-break.exp
index 635155c..659267f 100644
--- a/gdb/testsuite/gdb.trace/trace-break.exp
+++ b/gdb/testsuite/gdb.trace/trace-break.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.trace/trace-buffer-size.c b/gdb/testsuite/gdb.trace/trace-buffer-size.c
index fbce4f4..44753b1 100644
--- a/gdb/testsuite/gdb.trace/trace-buffer-size.c
+++ b/gdb/testsuite/gdb.trace/trace-buffer-size.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/trace-buffer-size.exp b/gdb/testsuite/gdb.trace/trace-buffer-size.exp
index 880ffc6..7fe814e 100644
--- a/gdb/testsuite/gdb.trace/trace-buffer-size.exp
+++ b/gdb/testsuite/gdb.trace/trace-buffer-size.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/trace-common.h b/gdb/testsuite/gdb.trace/trace-common.h
index 47471d3..427a289 100644
--- a/gdb/testsuite/gdb.trace/trace-common.h
+++ b/gdb/testsuite/gdb.trace/trace-common.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/trace-condition.c b/gdb/testsuite/gdb.trace/trace-condition.c
index b702ec4..4290f9b 100644
--- a/gdb/testsuite/gdb.trace/trace-condition.c
+++ b/gdb/testsuite/gdb.trace/trace-condition.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/trace-condition.exp b/gdb/testsuite/gdb.trace/trace-condition.exp
index 17acda8..8251345 100644
--- a/gdb/testsuite/gdb.trace/trace-condition.exp
+++ b/gdb/testsuite/gdb.trace/trace-condition.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.trace/trace-enable-disable.c b/gdb/testsuite/gdb.trace/trace-enable-disable.c
index b6f5254..a03b8e8 100644
--- a/gdb/testsuite/gdb.trace/trace-enable-disable.c
+++ b/gdb/testsuite/gdb.trace/trace-enable-disable.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/trace-enable-disable.exp b/gdb/testsuite/gdb.trace/trace-enable-disable.exp
index c2c8381..c009cff 100644
--- a/gdb/testsuite/gdb.trace/trace-enable-disable.exp
+++ b/gdb/testsuite/gdb.trace/trace-enable-disable.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.trace/trace-mt.c b/gdb/testsuite/gdb.trace/trace-mt.c
index 8296051..668e91b 100644
--- a/gdb/testsuite/gdb.trace/trace-mt.c
+++ b/gdb/testsuite/gdb.trace/trace-mt.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2012-2024 Free Software Foundation, Inc.
+ Copyright 2012-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/trace-mt.exp b/gdb/testsuite/gdb.trace/trace-mt.exp
index 7246ddc..0c6e4e5 100644
--- a/gdb/testsuite/gdb.trace/trace-mt.exp
+++ b/gdb/testsuite/gdb.trace/trace-mt.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.trace/trace-unavailable.c b/gdb/testsuite/gdb.trace/trace-unavailable.c
index a56ca39..e298083 100644
--- a/gdb/testsuite/gdb.trace/trace-unavailable.c
+++ b/gdb/testsuite/gdb.trace/trace-unavailable.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/tracecmd.exp b/gdb/testsuite/gdb.trace/tracecmd.exp
index 688980c..6e67de1 100644
--- a/gdb/testsuite/gdb.trace/tracecmd.exp
+++ b/gdb/testsuite/gdb.trace/tracecmd.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/tracefile-pseudo-reg.c b/gdb/testsuite/gdb.trace/tracefile-pseudo-reg.c
index 5eda8e4..a61021f 100644
--- a/gdb/testsuite/gdb.trace/tracefile-pseudo-reg.c
+++ b/gdb/testsuite/gdb.trace/tracefile-pseudo-reg.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/tracefile-pseudo-reg.exp b/gdb/testsuite/gdb.trace/tracefile-pseudo-reg.exp
index 3eeb5bb..f61115e 100644
--- a/gdb/testsuite/gdb.trace/tracefile-pseudo-reg.exp
+++ b/gdb/testsuite/gdb.trace/tracefile-pseudo-reg.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.trace/tspeed.c b/gdb/testsuite/gdb.trace/tspeed.c
index 35782aa..edd9052 100644
--- a/gdb/testsuite/gdb.trace/tspeed.c
+++ b/gdb/testsuite/gdb.trace/tspeed.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/tspeed.exp b/gdb/testsuite/gdb.trace/tspeed.exp
index c74680b..be7f37e 100644
--- a/gdb/testsuite/gdb.trace/tspeed.exp
+++ b/gdb/testsuite/gdb.trace/tspeed.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -17,7 +17,7 @@ load_lib "trace-support.exp"
require allow_shlib_tests
-# Do not run if gdbsever debug is enabled - the output file is many Gb.
+# Do not run if gdbserver debug is enabled - the output file is many Gb.
if [gdbserver_debug_enabled] {
return 0
}
diff --git a/gdb/testsuite/gdb.trace/tstatus.exp b/gdb/testsuite/gdb.trace/tstatus.exp
index af0985f..f5547aa 100644
--- a/gdb/testsuite/gdb.trace/tstatus.exp
+++ b/gdb/testsuite/gdb.trace/tstatus.exp
@@ -1,4 +1,4 @@
-# Copyright 2011-2024 Free Software Foundation, Inc.
+# Copyright 2011-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/testsuite/gdb.trace/tsv.exp b/gdb/testsuite/gdb.trace/tsv.exp
index 7a605c4..96c7c35 100644
--- a/gdb/testsuite/gdb.trace/tsv.exp
+++ b/gdb/testsuite/gdb.trace/tsv.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/unavailable-dwarf-piece.c b/gdb/testsuite/gdb.trace/unavailable-dwarf-piece.c
index 83fc376..0bb28d9 100644
--- a/gdb/testsuite/gdb.trace/unavailable-dwarf-piece.c
+++ b/gdb/testsuite/gdb.trace/unavailable-dwarf-piece.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2013-2024 Free Software Foundation, Inc.
+ Copyright 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp b/gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp
index ce0165c..98207f0 100644
--- a/gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp
+++ b/gdb/testsuite/gdb.trace/unavailable-dwarf-piece.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/unavailable.cc b/gdb/testsuite/gdb.trace/unavailable.cc
index 2ea548e..f4bd6ac 100644
--- a/gdb/testsuite/gdb.trace/unavailable.cc
+++ b/gdb/testsuite/gdb.trace/unavailable.cc
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/unavailable.exp b/gdb/testsuite/gdb.trace/unavailable.exp
index 83a327b..51532c9 100644
--- a/gdb/testsuite/gdb.trace/unavailable.exp
+++ b/gdb/testsuite/gdb.trace/unavailable.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/while-dyn.exp b/gdb/testsuite/gdb.trace/while-dyn.exp
index 05e546a..53a8e54 100644
--- a/gdb/testsuite/gdb.trace/while-dyn.exp
+++ b/gdb/testsuite/gdb.trace/while-dyn.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.trace/while-stepping.exp b/gdb/testsuite/gdb.trace/while-stepping.exp
index 81069d0..0dbff18 100644
--- a/gdb/testsuite/gdb.trace/while-stepping.exp
+++ b/gdb/testsuite/gdb.trace/while-stepping.exp
@@ -1,4 +1,4 @@
-# Copyright 1998-2024 Free Software Foundation, Inc.
+# Copyright 1998-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/basic.exp b/gdb/testsuite/gdb.tui/basic.exp
index ecb91de..35c99bd 100644
--- a/gdb/testsuite/gdb.tui/basic.exp
+++ b/gdb/testsuite/gdb.tui/basic.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/break.exp b/gdb/testsuite/gdb.tui/break.exp
index 274d292..77b2695 100644
--- a/gdb/testsuite/gdb.tui/break.exp
+++ b/gdb/testsuite/gdb.tui/break.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/color-prompt.exp b/gdb/testsuite/gdb.tui/color-prompt.exp
index 9ed8c47..a95b24a 100644
--- a/gdb/testsuite/gdb.tui/color-prompt.exp
+++ b/gdb/testsuite/gdb.tui/color-prompt.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/compact-source.exp b/gdb/testsuite/gdb.tui/compact-source.exp
index 79c8c85..b050159 100644
--- a/gdb/testsuite/gdb.tui/compact-source.exp
+++ b/gdb/testsuite/gdb.tui/compact-source.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/completion.exp b/gdb/testsuite/gdb.tui/completion.exp
index e79c468..7d126e0 100644
--- a/gdb/testsuite/gdb.tui/completion.exp
+++ b/gdb/testsuite/gdb.tui/completion.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/corefile-run.exp b/gdb/testsuite/gdb.tui/corefile-run.exp
index f96ead9..657fc83 100644
--- a/gdb/testsuite/gdb.tui/corefile-run.exp
+++ b/gdb/testsuite/gdb.tui/corefile-run.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -18,6 +18,8 @@
#
# Ref.: https://bugzilla.redhat.com/show_bug.cgi?id=1765117
+require gcore_cmd_available
+
tuiterm_env
standard_testfile tui-layout.c
diff --git a/gdb/testsuite/gdb.tui/empty.exp b/gdb/testsuite/gdb.tui/empty.exp
index 1adf30b..33710ff 100644
--- a/gdb/testsuite/gdb.tui/empty.exp
+++ b/gdb/testsuite/gdb.tui/empty.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/flush-after-run.c b/gdb/testsuite/gdb.tui/flush-after-run.c
new file mode 100644
index 0000000..f2dfded
--- /dev/null
+++ b/gdb/testsuite/gdb.tui/flush-after-run.c
@@ -0,0 +1,54 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <sys/stat.h>
+#include <errno.h>
+#include <stdio.h>
+
+int
+main (int argc, char *argv[])
+{
+ /* Don't let this test stay alive forever. */
+ alarm (300);
+
+ if (argc != 2)
+ abort ();
+
+ /* Check the file doesn't already exist. */
+ const char *filename = argv[1];
+ struct stat buf;
+ if (stat (filename, &buf) == 0 || errno != ENOENT)
+ abort ();
+
+ /* Create the file, and write something into it. */
+ FILE *out = fopen (filename, "w");
+ if (out == NULL)
+ abort ();
+
+ fprintf (out, "Hello World\n");
+
+ if (fclose (out) != 0)
+ abort ();
+
+ /* Spin until the marker file is deleted. */
+ while (stat (filename, &buf) == 0)
+ sleep (1);
+
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.tui/flush-after-run.exp b/gdb/testsuite/gdb.tui/flush-after-run.exp
new file mode 100644
index 0000000..c222b19
--- /dev/null
+++ b/gdb/testsuite/gdb.tui/flush-after-run.exp
@@ -0,0 +1,66 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Check that the 'Starting program' message is correctly flushed to
+# the TUI terminal as soon as it is available.
+
+require allow_tui_tests
+require target_can_use_run_cmd
+
+tuiterm_env
+
+standard_testfile
+
+if {[build_executable "failed to prepare" ${testfile} ${srcfile}] == -1} {
+ return -1
+}
+
+Term::clean_restart 24 80 $testfile
+
+if {![Term::enter_tui]} {
+ unsupported "TUI not supported"
+ return
+}
+
+# Pick a name for a marker file, and ensure it doesn't exist.
+set marker_file [standard_output_file "marker"]
+file delete $marker_file
+
+# Run the inferior, which will create MARKER_FILE.
+send_gdb "run \"$marker_file\"\n"
+
+# Spin until MARKER_FILE appears.
+while { ! [file exists $marker_file] } {
+ sleep 1
+}
+
+# We now know that the inferior has started, and that the 'Starting
+# program: ' string should have been printed to the terminal. Don't
+# use Term::wait_for here as there will be no prompt after the
+# 'Starting program' message.
+gdb_assert {[Term::wait_for_region_contents 0 16 80 7 "Starting program: "]} \
+ "starting program message has appeared"
+
+# Delete MARKER_FILE. This will cause the inferior to exit.
+file delete $marker_file
+
+# Now wait for the prompt, and check that the inferior exited message
+# appeared.
+gdb_assert {[Term::wait_for ""]} \
+ "wait for prompt after inferior exits"
+Term::check_region_contents \
+ "check for inferior exited message" \
+ 0 16 80 8 \
+ "\\\[Inferior $decimal \[^\r\n\]+ exited normally\\\]"
diff --git a/gdb/testsuite/gdb.tui/info-win.exp b/gdb/testsuite/gdb.tui/info-win.exp
index 4d71f04..fd880b3 100644
--- a/gdb/testsuite/gdb.tui/info-win.exp
+++ b/gdb/testsuite/gdb.tui/info-win.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/list-before.exp b/gdb/testsuite/gdb.tui/list-before.exp
index 2474365..3323c85 100644
--- a/gdb/testsuite/gdb.tui/list-before.exp
+++ b/gdb/testsuite/gdb.tui/list-before.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/list.exp b/gdb/testsuite/gdb.tui/list.exp
index 74b2c51..d24479f 100644
--- a/gdb/testsuite/gdb.tui/list.exp
+++ b/gdb/testsuite/gdb.tui/list.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/long-prompt.exp b/gdb/testsuite/gdb.tui/long-prompt.exp
index 1116b57..c4cb2c3 100644
--- a/gdb/testsuite/gdb.tui/long-prompt.exp
+++ b/gdb/testsuite/gdb.tui/long-prompt.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/main-2.exp b/gdb/testsuite/gdb.tui/main-2.exp
index 1dcb3cf..2b0fb6b 100644
--- a/gdb/testsuite/gdb.tui/main-2.exp
+++ b/gdb/testsuite/gdb.tui/main-2.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/main-one-line.c b/gdb/testsuite/gdb.tui/main-one-line.c
index 60744a9..442865c 100644
--- a/gdb/testsuite/gdb.tui/main-one-line.c
+++ b/gdb/testsuite/gdb.tui/main-one-line.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/main.exp b/gdb/testsuite/gdb.tui/main.exp
index 4213035..d6960c7 100644
--- a/gdb/testsuite/gdb.tui/main.exp
+++ b/gdb/testsuite/gdb.tui/main.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/narrow.exp b/gdb/testsuite/gdb.tui/narrow.exp
index 2efa440..b721475 100644
--- a/gdb/testsuite/gdb.tui/narrow.exp
+++ b/gdb/testsuite/gdb.tui/narrow.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/new-layout.exp b/gdb/testsuite/gdb.tui/new-layout.exp
index f838814..f517997 100644
--- a/gdb/testsuite/gdb.tui/new-layout.exp
+++ b/gdb/testsuite/gdb.tui/new-layout.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/pr30056.exp b/gdb/testsuite/gdb.tui/pr30056.exp
index 11e198d..3403033 100644
--- a/gdb/testsuite/gdb.tui/pr30056.exp
+++ b/gdb/testsuite/gdb.tui/pr30056.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -76,12 +76,12 @@ save_vars { env(LC_ALL) } {
# open about this.
kfail cli/30498 $test
- # At this point we don't have a reponsive prompt. Send ^G to abort
+ # At this point we don't have a responsive prompt. Send ^G to abort
# the i-search.
send_gdb "\007"
}
- # We need a reponsive prompt here, to deal with the "monitor exit"
+ # We need a responsive prompt here, to deal with the "monitor exit"
# that native-extended-gdbserver will send. Check that we have a
# responsive prompt.
Term::command "echo \\n"
diff --git a/gdb/testsuite/gdb.tui/regs.exp b/gdb/testsuite/gdb.tui/regs.exp
index 183c2ea..fbc93fd 100644
--- a/gdb/testsuite/gdb.tui/regs.exp
+++ b/gdb/testsuite/gdb.tui/regs.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/reread.exp b/gdb/testsuite/gdb.tui/reread.exp
index 9f16bee..c8b0beb 100644
--- a/gdb/testsuite/gdb.tui/reread.exp
+++ b/gdb/testsuite/gdb.tui/reread.exp
@@ -1,4 +1,4 @@
-# Copyright 2024 Free Software Foundation, Inc.
+# Copyright 2024-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/resize-2.exp b/gdb/testsuite/gdb.tui/resize-2.exp
index 729e1ee..4262dc9 100644
--- a/gdb/testsuite/gdb.tui/resize-2.exp
+++ b/gdb/testsuite/gdb.tui/resize-2.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/resize-3-foo.c b/gdb/testsuite/gdb.tui/resize-3-foo.c
new file mode 100644
index 0000000..653b24b
--- /dev/null
+++ b/gdb/testsuite/gdb.tui/resize-3-foo.c
@@ -0,0 +1,24 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+extern int foo (void);
+
+int
+foo (void)
+{
+ return 0;
+}
diff --git a/gdb/testsuite/gdb.tui/resize-3-main.c b/gdb/testsuite/gdb.tui/resize-3-main.c
new file mode 100644
index 0000000..95fdd3b
--- /dev/null
+++ b/gdb/testsuite/gdb.tui/resize-3-main.c
@@ -0,0 +1,24 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+extern int foo (void);
+
+int
+main (void)
+{
+ return foo ();
+}
diff --git a/gdb/testsuite/gdb.tui/resize-3.exp b/gdb/testsuite/gdb.tui/resize-3.exp
new file mode 100644
index 0000000..fcda407c
--- /dev/null
+++ b/gdb/testsuite/gdb.tui/resize-3.exp
@@ -0,0 +1,73 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Test TUI resizing while showing "No Source Available".
+
+require allow_tui_tests
+
+standard_testfile -main.c -foo.c
+
+if { [build_executable_from_specs "failed to prepare" \
+ $testfile {debug} \
+ $srcfile {debug} \
+ $srcfile2 {nodebug}] == -1 } {
+ return -1
+}
+
+tuiterm_env
+
+Term::clean_restart 24 80 $testfile
+
+# It would be simpler to run directly to foo and then enter TUI, but that
+# fails to trigger PR32614. So instead, we first run to main, enter TUI and
+# then run to foo.
+if {![runto_main]} {
+ perror "test suppressed"
+ return
+}
+
+# Set a breakpoint on foo, easier to do before entering TUI.
+gdb_breakpoint foo
+
+if {![Term::enter_tui]} {
+ unsupported "TUI not supported"
+ return
+}
+
+# Continue to foo.
+Term::command continue
+
+with_test_prefix "before resize" {
+ Term::check_contents "Source window empty" \
+ "No Source Available"
+}
+
+Term::resize 40 90
+
+with_test_prefix "after resize" {
+ # Regression test for PR32614.
+ Term::check_contents "Source window empty" \
+ "No Source Available"
+
+ Term::command "layout asm"
+
+ # Check that, when we switch to the assembler window, the
+ # disassembly is still shown.
+ Term::check_contents_not \
+ "No Assembly message is not displayed" \
+ "No Assembly Available"
+ Term::check_contents "Assembler for foo is shown" \
+ "$hex\\s+<foo"
+}
diff --git a/gdb/testsuite/gdb.tui/resize-one-line.exp b/gdb/testsuite/gdb.tui/resize-one-line.exp
index bdb7e01..bd89c17 100644
--- a/gdb/testsuite/gdb.tui/resize-one-line.exp
+++ b/gdb/testsuite/gdb.tui/resize-one-line.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/resize.exp b/gdb/testsuite/gdb.tui/resize.exp
index 1fa86f5..e13b269 100644
--- a/gdb/testsuite/gdb.tui/resize.exp
+++ b/gdb/testsuite/gdb.tui/resize.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/scroll.exp b/gdb/testsuite/gdb.tui/scroll.exp
index 6fba0e1..3c17e71 100644
--- a/gdb/testsuite/gdb.tui/scroll.exp
+++ b/gdb/testsuite/gdb.tui/scroll.exp
@@ -1,4 +1,4 @@
-# Copyright 2021-2024 Free Software Foundation, Inc.
+# Copyright 2021-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/secondary-prompt.exp b/gdb/testsuite/gdb.tui/secondary-prompt.exp
index 63e62db..d92bb78 100644
--- a/gdb/testsuite/gdb.tui/secondary-prompt.exp
+++ b/gdb/testsuite/gdb.tui/secondary-prompt.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/single-key-2.exp b/gdb/testsuite/gdb.tui/single-key-2.exp
index efaaf03..33a8b14 100644
--- a/gdb/testsuite/gdb.tui/single-key-2.exp
+++ b/gdb/testsuite/gdb.tui/single-key-2.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/single-key.exp b/gdb/testsuite/gdb.tui/single-key.exp
index f821941..a3887e0 100644
--- a/gdb/testsuite/gdb.tui/single-key.exp
+++ b/gdb/testsuite/gdb.tui/single-key.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/small-term.exp b/gdb/testsuite/gdb.tui/small-term.exp
index 9ed150e..0ff8027 100644
--- a/gdb/testsuite/gdb.tui/small-term.exp
+++ b/gdb/testsuite/gdb.tui/small-term.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/tui-disasm-long-lines.c b/gdb/testsuite/gdb.tui/tui-disasm-long-lines.c
index 514abf5..74b03eb 100644
--- a/gdb/testsuite/gdb.tui/tui-disasm-long-lines.c
+++ b/gdb/testsuite/gdb.tui/tui-disasm-long-lines.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2016-2024 Free Software Foundation, Inc.
+ Copyright 2016-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp b/gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp
index e0ed682..35f990d 100644
--- a/gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp
+++ b/gdb/testsuite/gdb.tui/tui-disasm-long-lines.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/tui-disasm-styling.exp b/gdb/testsuite/gdb.tui/tui-disasm-styling.exp
new file mode 100644
index 0000000..513d787
--- /dev/null
+++ b/gdb/testsuite/gdb.tui/tui-disasm-styling.exp
@@ -0,0 +1,65 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# Test that disassembler styling can be switched off.
+
+require allow_tui_tests
+
+tuiterm_env
+
+standard_testfile tui-layout.c
+
+if {[build_executable "failed to build" ${testfile} ${srcfile}] == -1} {
+ return
+}
+
+# Grab the contents of the asm box and check for styling. If
+# EXPECT_STYLED is true then expect styling in the asm box, otherwise,
+# don't expect styling.
+
+proc check_asm_output { expect_styled testname } {
+ set asm_output [Term::get_region 1 1 78 13 "\n" true]
+ set has_styling [regexp -- "<fg:" $asm_output]
+ # The !! converts the booleans to a canonical form for comparison.
+ gdb_assert { [expr !!$has_styling == !!$expect_styled] } \
+ $testname
+}
+
+Term::clean_restart 24 80 $binfile
+if {![Term::enter_tui]} {
+ unsupported "TUI not supported"
+ return
+}
+
+Term::command "layout asm"
+Term::check_box "asm box" 0 0 80 15
+
+check_asm_output true "asm output is styled by default"
+
+Term::command "set style disassembler enabled off"
+check_asm_output false \
+ "asm output is not styled when disassembler styling is off"
+
+Term::command "set style disassembler enabled on"
+check_asm_output true "asm output is styled again"
+
+Term::command "set style enabled off"
+check_asm_output false "asm output is not styled when global switch is off"
+
+Term::command "set style enabled on"
+check_asm_output true "asm output is styled once again"
+
+Term::command "set style sources off"
+check_asm_output true "asm output is styled when source styling is off"
diff --git a/gdb/testsuite/gdb.tui/tui-focus.c b/gdb/testsuite/gdb.tui/tui-focus.c
index cb8b860..4caa75a 100644
--- a/gdb/testsuite/gdb.tui/tui-focus.c
+++ b/gdb/testsuite/gdb.tui/tui-focus.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/tui-focus.exp b/gdb/testsuite/gdb.tui/tui-focus.exp
index 2377ce2..26e5060 100644
--- a/gdb/testsuite/gdb.tui/tui-focus.exp
+++ b/gdb/testsuite/gdb.tui/tui-focus.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -73,7 +73,7 @@ foreach spec {{src true} {cmd true} {status true} {regs false} \
}
}
-# Use the Python TUI API to exercise some of the ambigous window name
+# Use the Python TUI API to exercise some of the ambiguous window name
# handling parts of the 'focus' command.
Term::clean_restart 24 80 $binfile
if {[allow_python_tests]} {
diff --git a/gdb/testsuite/gdb.tui/tui-init-source.c b/gdb/testsuite/gdb.tui/tui-init-source.c
new file mode 100644
index 0000000..43f56b3
--- /dev/null
+++ b/gdb/testsuite/gdb.tui/tui-init-source.c
@@ -0,0 +1,47 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+/* These numbered comments are to ensure the TUI source window will be
+ filled with content, and give us something to match against. */
+
+/* 01 */
+/* 02 */
+/* 03 */
+/* 04 */
+/* 05 */
+/* 06 */
+/* 07 */
+/* 08 */
+/* 09 */
+/* 10 */
+
+int
+main (void)
+{
+ return 0;
+}
+
+/* 11 */
+/* 12 */
+/* 13 */
+/* 14 */
+/* 15 */
+/* 16 */
+/* 17 */
+/* 18 */
+/* 19 */
+/* 20 */
diff --git a/gdb/testsuite/gdb.tui/tui-init-source.exp b/gdb/testsuite/gdb.tui/tui-init-source.exp
new file mode 100644
index 0000000..274b334
--- /dev/null
+++ b/gdb/testsuite/gdb.tui/tui-init-source.exp
@@ -0,0 +1,41 @@
+# Copyright 2025 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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, see <http://www.gnu.org/licenses/>.
+
+# When enabling TUI prior to starting the inferior, check that the
+# default source code location is centred within the window.
+
+require allow_tui_tests
+
+tuiterm_env
+
+standard_testfile
+
+if {[build_executable "failed to prepare" ${testfile} ${srcfile}] == -1} {
+ return -1
+}
+
+Term::clean_restart 24 80 $testfile
+
+if {![Term::enter_tui]} {
+ unsupported "TUI not supported"
+ return
+}
+
+# Check the source code box displays at least one line before main,
+# the type and name of the main function, and one line after main.
+Term::check_region_contents \
+ "check source is reasonably centred" \
+ 1 1 78 13 \
+ "/\\* 10 \\*/.*int.*main \\(void\\).*/\\* 11 \\*/"
diff --git a/gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.S b/gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.S
index bbca380..9d69236 100644
--- a/gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.S
+++ b/gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.exp b/gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.exp
index 09afa5c..51623e8 100644
--- a/gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.exp
+++ b/gdb/testsuite/gdb.tui/tui-layout-asm-short-prog.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/tui-layout-asm.exp b/gdb/testsuite/gdb.tui/tui-layout-asm.exp
index 91566ca..333276e 100644
--- a/gdb/testsuite/gdb.tui/tui-layout-asm.exp
+++ b/gdb/testsuite/gdb.tui/tui-layout-asm.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -24,7 +24,9 @@ if {[build_executable "failed to prepare" ${testfile} ${srcfile}] == -1} {
return -1
}
-# PPC currently needs a minimum window width of 90 to work correctly.
+# The wider the window is, the less line truncation happens, so matching
+# pre-scroll to post-scroll lines is more accurate. But 100% accurate line
+# matching isn't a goal of the test-case.
set tui_asm_window_width 90
Term::clean_restart 24 ${tui_asm_window_width} $testfile
@@ -33,15 +35,41 @@ if {![Term::prepare_for_tui]} {
return
}
-# Helper proc, returns a count of the ' ' characters in STRING.
-proc count_whitespace { string } {
- return [expr {[llength [split $string { }]] - 1}]
-}
-
# This puts us into TUI mode, and should display the ASM window.
Term::command_no_prompt_prefix "layout asm"
Term::check_box_contents "check asm box contents" 0 0 ${tui_asm_window_width} 15 "<main>"
+set re_border [string_to_regexp "|"]
+
+proc drop_borders { line } {
+ # Drop left border.
+ set line [regsub -- ^$::re_border $line {}]
+ # Drop right border.
+ set line [regsub -- $::re_border$ $line {}]
+
+ return $line
+}
+
+proc lines_match { line1 line2 } {
+ set line1 [drop_borders $line1]
+ set line2 [drop_borders $line2]
+
+ foreach line [list $line1 $line2] re [list $line2 $line1] {
+ # Convert to regexp.
+ set re [string_to_regexp $re]
+
+ # Ignore whitespace mismatches.
+ regsub -all {\s+} $re {\s+} re
+
+ # Allow a substring match.
+ if { [regexp -- $re $line] } {
+ return 1
+ }
+ }
+
+ return 0
+}
+
# Scroll the ASM window down using the down arrow key. In an ideal
# world we'd like to use PageDown here, but currently our terminal
# library doesn't support such advanced things.
@@ -58,51 +86,55 @@ while (1) {
# below will just timeout. So for now we avoid testing the edge
# case.
if {[regexp -- "^\\| +\\|$" $line]} {
- # Second line is blank, we're at the end of the assembler.
- pass $testname
+ # Second line is blank, we're at the end of the assembly.
+ pass "$testname (end of assembly reached)"
break
}
# Send the down key to GDB.
send_gdb "\033\[B"
incr down_count
- set re_line [string_to_regexp $line]
- # Ignore whitespace mismatches.
- regsub -all {\s+} $re_line {\s+} re_line
+
+ # Get address from the line.
+ regexp \
+ [join \
+ [list \
+ ^ \
+ $re_border \
+ {\s+} \
+ ($hex) \
+ {\s+}] \
+ ""] \
+ $line \
+ match \
+ address
+
+ # Regexp to match line containing address.
+ set re_line \
+ [join \
+ [list \
+ ^ \
+ $re_border \
+ {\s+} \
+ $address \
+ {\s+} \
+ {[^\r\n]+} \
+ $re_border \
+ $] \
+ ""]
+
if {[Term::wait_for $re_line] \
- && [regexp $re_line [Term::get_line 1]]} {
+ && [lines_match $line [Term::get_line 1]]} {
# We scrolled successfully.
} else {
- if {[count_whitespace ${line}] != \
- [count_whitespace [Term::get_line 1]]} {
- # GDB's TUI assembler display will widen columns based on
- # the longest item that appears in a column on any line.
- # As we have just scrolled, and so revealed a new line, it
- # is possible that the width of some columns has changed.
- #
- # As a result it is possible that part of the line we were
- # expected to see in the output is now off the screen. And
- # this test will fail.
- #
- # This is unfortunate, but, right now, there's no easy way
- # to "lock" the format of the TUI assembler window. The
- # only option appears to be making the window width wider,
- # this can be done by adjusting TUI_ASM_WINDOW_WIDTH.
- verbose -log "WARNING: The following failure is probably due to the TUI window"
- verbose -log " width. See the comments in the test script for more"
- verbose -log " details."
- }
-
fail "$testname (scroll failed)"
Term::dump_screen
break
}
- if { $down_count > 250 } {
- # Maybe we should accept this as a pass in case a target
- # really does have loads of assembler to scroll through.
- fail "$testname (too much assembler)"
- Term::dump_screen
+ if { $down_count > 25 } {
+ # We've scrolled enough, we're done.
+ pass "$testname (scroll limit reached)"
break
}
}
diff --git a/gdb/testsuite/gdb.tui/tui-layout.c b/gdb/testsuite/gdb.tui/tui-layout.c
index 83d59d7..c69fe32 100644
--- a/gdb/testsuite/gdb.tui/tui-layout.c
+++ b/gdb/testsuite/gdb.tui/tui-layout.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2017-2024 Free Software Foundation, Inc.
+ Copyright 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/tui-layout.exp b/gdb/testsuite/gdb.tui/tui-layout.exp
index 1c682b9..7bb0ea1 100644
--- a/gdb/testsuite/gdb.tui/tui-layout.exp
+++ b/gdb/testsuite/gdb.tui/tui-layout.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/tui-missing-src.exp b/gdb/testsuite/gdb.tui/tui-missing-src.exp
index 2310c1d..f29ec8c 100644
--- a/gdb/testsuite/gdb.tui/tui-missing-src.exp
+++ b/gdb/testsuite/gdb.tui/tui-missing-src.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/tui-nl-filtered-output.exp b/gdb/testsuite/gdb.tui/tui-nl-filtered-output.exp
index 52aa7ac..db11f60 100644
--- a/gdb/testsuite/gdb.tui/tui-nl-filtered-output.exp
+++ b/gdb/testsuite/gdb.tui/tui-nl-filtered-output.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/tuiterm-2.exp b/gdb/testsuite/gdb.tui/tuiterm-2.exp
index bf82958..5992271 100644
--- a/gdb/testsuite/gdb.tui/tuiterm-2.exp
+++ b/gdb/testsuite/gdb.tui/tuiterm-2.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/tuiterm.exp b/gdb/testsuite/gdb.tui/tuiterm.exp
index cf87ee2..9dc2402 100644
--- a/gdb/testsuite/gdb.tui/tuiterm.exp
+++ b/gdb/testsuite/gdb.tui/tuiterm.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/winheight.exp b/gdb/testsuite/gdb.tui/winheight.exp
index e06a934..9b36c98 100644
--- a/gdb/testsuite/gdb.tui/winheight.exp
+++ b/gdb/testsuite/gdb.tui/winheight.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/winwidth.exp b/gdb/testsuite/gdb.tui/winwidth.exp
index 525e7ad..d9170d8 100644
--- a/gdb/testsuite/gdb.tui/winwidth.exp
+++ b/gdb/testsuite/gdb.tui/winwidth.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.tui/wrap-line.exp b/gdb/testsuite/gdb.tui/wrap-line.exp
index d3020bf..aa2b1c6 100644
--- a/gdb/testsuite/gdb.tui/wrap-line.exp
+++ b/gdb/testsuite/gdb.tui/wrap-line.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.xml/bad-include.xml b/gdb/testsuite/gdb.xml/bad-include.xml
index f7a2b72..cd9cce3 100644
--- a/gdb/testsuite/gdb.xml/bad-include.xml
+++ b/gdb/testsuite/gdb.xml/bad-include.xml
@@ -1 +1 @@
-<xi:include href="nonexistant.xml"/>
+<xi:include href="nonexistent.xml"/>
diff --git a/gdb/testsuite/gdb.xml/maint-xml-dump.exp b/gdb/testsuite/gdb.xml/maint-xml-dump.exp
index 7ba2753..d7fa51d 100644
--- a/gdb/testsuite/gdb.xml/maint-xml-dump.exp
+++ b/gdb/testsuite/gdb.xml/maint-xml-dump.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.xml/maint_print_struct.exp b/gdb/testsuite/gdb.xml/maint_print_struct.exp
index ffc1f61..011c685 100644
--- a/gdb/testsuite/gdb.xml/maint_print_struct.exp
+++ b/gdb/testsuite/gdb.xml/maint_print_struct.exp
@@ -1,6 +1,6 @@
# This testcase is part of GDB, the GNU debugger.
#
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
#
# Contributed by Intel Corp. <walfred.tedeschi@intel.com>
#
diff --git a/gdb/testsuite/gdb.xml/maint_print_struct.xml b/gdb/testsuite/gdb.xml/maint_print_struct.xml
index 6a4a7c4..ccf6cf7 100644
--- a/gdb/testsuite/gdb.xml/maint_print_struct.xml
+++ b/gdb/testsuite/gdb.xml/maint_print_struct.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<!-- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+<!-- Copyright (C) 2010-2025 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
diff --git a/gdb/testsuite/gdb.xml/tdesc-arch.exp b/gdb/testsuite/gdb.xml/tdesc-arch.exp
index 6c8c592..21784e7 100644
--- a/gdb/testsuite/gdb.xml/tdesc-arch.exp
+++ b/gdb/testsuite/gdb.xml/tdesc-arch.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.xml/tdesc-errors.exp b/gdb/testsuite/gdb.xml/tdesc-errors.exp
index 265bb05..cf5129f 100644
--- a/gdb/testsuite/gdb.xml/tdesc-errors.exp
+++ b/gdb/testsuite/gdb.xml/tdesc-errors.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.xml/tdesc-regs.exp b/gdb/testsuite/gdb.xml/tdesc-regs.exp
index 61efb96..e091721 100644
--- a/gdb/testsuite/gdb.xml/tdesc-regs.exp
+++ b/gdb/testsuite/gdb.xml/tdesc-regs.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.xml/tdesc-reload.c b/gdb/testsuite/gdb.xml/tdesc-reload.c
index 27a14b7..65b18bc 100644
--- a/gdb/testsuite/gdb.xml/tdesc-reload.c
+++ b/gdb/testsuite/gdb.xml/tdesc-reload.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.xml/tdesc-reload.exp b/gdb/testsuite/gdb.xml/tdesc-reload.exp
index fe0ce94..7500f7f 100644
--- a/gdb/testsuite/gdb.xml/tdesc-reload.exp
+++ b/gdb/testsuite/gdb.xml/tdesc-reload.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/gdb.xml/tdesc-xinclude.exp b/gdb/testsuite/gdb.xml/tdesc-xinclude.exp
index aabc6d9..b934c80 100644
--- a/gdb/testsuite/gdb.xml/tdesc-xinclude.exp
+++ b/gdb/testsuite/gdb.xml/tdesc-xinclude.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -43,7 +43,7 @@ set_arch "includes.xml" \
# This file contains a missing include. We should warn the user about
# it.
set_arch "bad-include.xml" \
- "warning:.*Could not load XML document \"nonexistant.xml\"$common_warn"
+ "warning:.*Could not load XML document \"nonexistent.xml\"$common_warn"
# Make sure we detect infinite loops, eventually.
set_arch "loop.xml" \
diff --git a/gdb/testsuite/lib/aarch64-scalable.exp b/gdb/testsuite/lib/aarch64-scalable.exp
index 2ba7d15..c9f2463 100644
--- a/gdb/testsuite/lib/aarch64-scalable.exp
+++ b/gdb/testsuite/lib/aarch64-scalable.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/aarch64-test-sme.c b/gdb/testsuite/lib/aarch64-test-sme.c
index 2925b48..c5d7a8a 100644
--- a/gdb/testsuite/lib/aarch64-test-sme.c
+++ b/gdb/testsuite/lib/aarch64-test-sme.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/aarch64-test-sve.c b/gdb/testsuite/lib/aarch64-test-sve.c
index d558a40..3eed754 100644
--- a/gdb/testsuite/lib/aarch64-test-sve.c
+++ b/gdb/testsuite/lib/aarch64-test-sve.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2023-2024 Free Software Foundation, Inc.
+ Copyright 2023-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/aarch64.exp b/gdb/testsuite/lib/aarch64.exp
index 602120a..ef64489 100644
--- a/gdb/testsuite/lib/aarch64.exp
+++ b/gdb/testsuite/lib/aarch64.exp
@@ -1,4 +1,4 @@
-# Copyright 2023-2024 Free Software Foundation, Inc.
+# Copyright 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/ada.exp b/gdb/testsuite/lib/ada.exp
index 83b419a..37bed85 100644
--- a/gdb/testsuite/lib/ada.exp
+++ b/gdb/testsuite/lib/ada.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -21,11 +21,21 @@
# to run, and BODY is what actually does the work.
proc foreach_gnat_encoding {scenario_arg flags_arg list body} {
+ # gnat-llvm does not understand -fgnat-encodings at all. However,
+ # some tests examine the precise setting of the scenario -- so
+ # pretend we support minimal. What is going on here is that for
+ # gnat-llvm, there are no "GNAT encodings", only minimal
+ # encodings, aka, real DWARF.
+ set has_flag [ada_minimal_encodings]
+ if {!$has_flag} {
+ set list minimal
+ }
+
upvar 1 $scenario_arg scenario
upvar 1 $flags_arg flags
foreach_with_prefix scenario $list {
set flags {}
- if {$scenario != "none"} {
+ if {$scenario != "none" && $has_flag} {
lappend flags additional_flags=-fgnat-encodings=$scenario
}
uplevel 1 $body
@@ -171,12 +181,16 @@ proc find_ada_tool {tool} {
# compiler does not appear to be GCC, this will always return false.
proc gnat_version_compare {op l2} {
- set gccvers [gcc_major_version]
- if {$gccvers == -1} {
+ set gnatmake [find_gnatmake]
+ set gnatmake [lindex [split $gnatmake] 0]
+ if {[catch {exec $gnatmake --version} output]} {
+ return 0
+ }
+ if {![regexp {GNATMAKE ([0-9]+(\.[0-9]+)*)} $output match version]} {
return 0
}
- return [version_compare [split $gccvers .] $op $l2]
+ return [version_compare [split $version .] $op $l2]
}
# Return 1 if the GNAT runtime appears to have debug info.
@@ -241,3 +255,50 @@ gdb_caching_proc gnat_runtime_has_debug_info {} {
gdb_caching_proc shared_gnat_runtime_has_debug_info {} {
return [gnat_runtime_has_debug_info_1 1]
}
+
+# A helper that writes an Ada source file, then tries to compile it
+# with the given compiler options (a list like one accepted by
+# gdb_compile_ada). Returns 1 if the flags are supported, 0
+# otherwise.
+proc ada_simple_compile {name options} {
+ set src [standard_temp_file $name.adb]
+ set dest [standard_temp_file $name.x]
+ set f [open $src w]
+ puts $f "procedure $name is"
+ puts $f "begin"
+ puts $f " null;"
+ puts $f "end $name;"
+ close $f
+
+ # Note that we create an executable here. For -fvar-tracking, at
+ # least, the option is supported and ignored by llvm-gnatmake --
+ # but then is passed to clang during further compilation, and this
+ # fails. So to detect it we can't just stop with a .o file.
+ set output [gdb_compile_ada_1 $src $dest executable $options]
+ return [expr {[gdb_compile_test_nofail $output] == 1}]
+}
+
+# Return 1 if GNAT supports -fvar-tracking.
+gdb_caching_proc ada_fvar_tracking {} {
+ return [ada_simple_compile fvar_tracking additional_flags=-fvar-tracking]
+}
+
+# Return 1 if GNAT supports the minimal encodings option.
+gdb_caching_proc ada_minimal_encodings {} {
+ return [ada_simple_compile minimal_encodings \
+ additional_flags=-fgnat-encodings=minimal]
+}
+
+# Return 1 if GNAT supports -Og.
+gdb_caching_proc ada_og {} {
+ return [ada_simple_compile gnat_og additional_flags=-Og]
+}
+
+# Return 1 if GNAT can link with -shared.
+gdb_caching_proc ada_shared_link {} {
+ return [ada_simple_compile ada_shared_link {
+ additional_flags=-bargs
+ additional_flags=-shared
+ additional_flags=-margs
+ }]
+}
diff --git a/gdb/testsuite/lib/append_gdb_boards_dir.exp b/gdb/testsuite/lib/append_gdb_boards_dir.exp
index 4aedba9..fadb372 100644
--- a/gdb/testsuite/lib/append_gdb_boards_dir.exp
+++ b/gdb/testsuite/lib/append_gdb_boards_dir.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/attributes.h b/gdb/testsuite/lib/attributes.h
index 5dabd03..626c226 100644
--- a/gdb/testsuite/lib/attributes.h
+++ b/gdb/testsuite/lib/attributes.h
@@ -1,6 +1,6 @@
/* This file is part of GDB, the GNU debugger.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/build-piece.exp b/gdb/testsuite/lib/build-piece.exp
index 879fbf3..7de1f51 100644
--- a/gdb/testsuite/lib/build-piece.exp
+++ b/gdb/testsuite/lib/build-piece.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/cache.exp b/gdb/testsuite/lib/cache.exp
index ca3dca2..6ca3f18 100644
--- a/gdb/testsuite/lib/cache.exp
+++ b/gdb/testsuite/lib/cache.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/check-test-names.exp b/gdb/testsuite/lib/check-test-names.exp
index 11aed63..049addd 100644
--- a/gdb/testsuite/lib/check-test-names.exp
+++ b/gdb/testsuite/lib/check-test-names.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/cl_util.c b/gdb/testsuite/lib/cl_util.c
index 048346b..e5eb369 100644
--- a/gdb/testsuite/lib/cl_util.c
+++ b/gdb/testsuite/lib/cl_util.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/cl_util.h b/gdb/testsuite/lib/cl_util.h
index 3d03c84..6034518 100644
--- a/gdb/testsuite/lib/cl_util.h
+++ b/gdb/testsuite/lib/cl_util.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/compile-support.exp b/gdb/testsuite/lib/compile-support.exp
index aa8aaf3..dd0b9a9 100644
--- a/gdb/testsuite/lib/compile-support.exp
+++ b/gdb/testsuite/lib/compile-support.exp
@@ -1,4 +1,4 @@
-# Copyright 2015-2024 Free Software Foundation, Inc.
+# Copyright 2015-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -45,6 +45,9 @@ proc _do_check_compile {expr} {
# This appears to be a bug in the compiler plugin.
set result "apparent compiler plugin bug"
}
+ -re "This command is not supported." {
+ set result "compiler disabled at configure time"
+ }
-re "\r\n$gdb_prompt $" {
}
}
diff --git a/gdb/testsuite/lib/compiler.F90 b/gdb/testsuite/lib/compiler.F90
index 07f9852..b92b9c6 100644
--- a/gdb/testsuite/lib/compiler.F90
+++ b/gdb/testsuite/lib/compiler.F90
@@ -1,4 +1,4 @@
-/* Copyright 2022-2024 Free Software Foundation, Inc.
+/* Copyright 2022-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/compiler.c b/gdb/testsuite/lib/compiler.c
index 0749435..e457fba 100644
--- a/gdb/testsuite/lib/compiler.c
+++ b/gdb/testsuite/lib/compiler.c
@@ -1,6 +1,6 @@
/* This test file is part of GDB, the GNU debugger.
- Copyright 1995-2024 Free Software Foundation, Inc.
+ Copyright 1995-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/compiler.cc b/gdb/testsuite/lib/compiler.cc
index aa46228..ee2280f 100755
--- a/gdb/testsuite/lib/compiler.cc
+++ b/gdb/testsuite/lib/compiler.cc
@@ -1,6 +1,6 @@
/* This test file is part of GDB, the GNU debugger.
- Copyright 1995-2024 Free Software Foundation, Inc.
+ Copyright 1995-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/completion-support.exp b/gdb/testsuite/lib/completion-support.exp
index 5f0f619..15f59e6 100644
--- a/gdb/testsuite/lib/completion-support.exp
+++ b/gdb/testsuite/lib/completion-support.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/cp-support.exp b/gdb/testsuite/lib/cp-support.exp
index d883309..40351c6 100644
--- a/gdb/testsuite/lib/cp-support.exp
+++ b/gdb/testsuite/lib/cp-support.exp
@@ -1,6 +1,6 @@
# This test code is part of GDB, the GNU debugger.
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/d-support.exp b/gdb/testsuite/lib/d-support.exp
index 3edb664..717d88b 100644
--- a/gdb/testsuite/lib/d-support.exp
+++ b/gdb/testsuite/lib/d-support.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/dap-support.exp b/gdb/testsuite/lib/dap-support.exp
index 5c192e5..d61b1c4 100644
--- a/gdb/testsuite/lib/dap-support.exp
+++ b/gdb/testsuite/lib/dap-support.exp
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Free Software Foundation, Inc.
+# Copyright 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/data-structures.exp b/gdb/testsuite/lib/data-structures.exp
index 461a11c..ccf7e81 100644
--- a/gdb/testsuite/lib/data-structures.exp
+++ b/gdb/testsuite/lib/data-structures.exp
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/debuginfod-support.exp b/gdb/testsuite/lib/debuginfod-support.exp
index 0096448..674888a 100644
--- a/gdb/testsuite/lib/debuginfod-support.exp
+++ b/gdb/testsuite/lib/debuginfod-support.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/dg-add-core-file-count.sh b/gdb/testsuite/lib/dg-add-core-file-count.sh
index b4cb6b9..115cf51 100755
--- a/gdb/testsuite/lib/dg-add-core-file-count.sh
+++ b/gdb/testsuite/lib/dg-add-core-file-count.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This file is part of GDB.
diff --git a/gdb/testsuite/lib/dtrace.exp b/gdb/testsuite/lib/dtrace.exp
index fb6204f..d558aba 100644
--- a/gdb/testsuite/lib/dtrace.exp
+++ b/gdb/testsuite/lib/dtrace.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/dwarf.exp b/gdb/testsuite/lib/dwarf.exp
index bcf3d73..4d224cd 100644
--- a/gdb/testsuite/lib/dwarf.exp
+++ b/gdb/testsuite/lib/dwarf.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -678,6 +678,11 @@ namespace eval Dwarf {
}
}
close $fd
+
+ variable _constants
+
+ # Add DW_FORM_strx_id as alias of DW_FORM_strx.
+ _process_one_constant DW_FORM_strx_id $_constants(DW_FORM_strx)
}
proc _quote {string} {
@@ -823,6 +828,12 @@ namespace eval Dwarf {
DW_FORM_indirect -
DW_FORM_exprloc -
+ # Generate a DW_FORM_str index, but assume generation of .debug_str and
+ # .debug_str_offsets is taken care of elsewhere.
+ DW_FORM_strx_id {
+ _op .uleb128 $value
+ }
+
DW_FORM_strx -
DW_FORM_strx1 -
DW_FORM_strx2 -
@@ -1244,7 +1255,6 @@ namespace eval Dwarf {
# used, as indicated in the header of the section where the location
# description is found.
#
- # (FIXME should use 'info complete' here.)
# Each list's first element is the opcode, either short or long
# forms are accepted.
# FIXME argument handling
@@ -1252,9 +1262,18 @@ namespace eval Dwarf {
proc _location { body dwarf_version addr_size offset_size } {
variable _constants
+ set collected_lines ""
foreach line [split $body \n] {
# Ignore blank lines, and allow embedded comments.
- if {[lindex $line 0] == "" || [regexp -- {^[ \t]*#} $line]} {
+ if { [regexp -- {^[ \t]*$} $line] || [regexp -- {^[ \t]*#} $line] } {
+ continue
+ }
+ if { $collected_lines != "" } {
+ set line "$collected_lines\n$line"
+ set collected_lines ""
+ }
+ if { ! [info complete $line] } {
+ set collected_lines $line
continue
}
set opcode [_map_name [lindex $line 0] _OP]
@@ -1340,6 +1359,17 @@ namespace eval Dwarf {
_op .2byte $argvec(label)
}
+ DW_OP_entry_value {
+ _get_args $line $opcode body
+ set l1 [new_label "expr_start"]
+ set l2 [new_label "expr_end"]
+ _op .uleb128 "$l2 - $l1" "expression"
+ define_label $l1
+ _location $argvec(body) $dwarf_version $addr_size \
+ $offset_size
+ define_label $l2
+ }
+
DW_OP_implicit_value {
set l1 [new_label "value_start"]
set l2 [new_label "value_end"]
@@ -1441,6 +1471,17 @@ namespace eval Dwarf {
# default = default
# fission 0|1 - boolean indicating if generating Fission debug info
# default = 0
+ # dwo_id - The value to use as the dwo_id field of skeleton and
+ # split_compile unit headers. May only be used with DWARF
+ # version 5.
+ #
+ # If a dwo_id value is specified (is non-zero), this unit is
+ # assumed to be part of a skeleton/split_unit pair. The unit
+ # type will be chosen according to the `fission` value.
+ #
+ # When using DWARF version 5 and fission is non-zero, it is
+ # mandatory to provide a non-zero dwo_id value.
+ # default = 0
# label <label>
# - string indicating label to be defined at the start
# of the CU header.
@@ -1463,6 +1504,7 @@ namespace eval Dwarf {
set _cu_version 4
set _cu_addr_size default
set _cu_is_fission 0
+ set dwo_id 0
set section ".debug_info"
set _abbrev_section ".debug_abbrev"
set label ""
@@ -1474,6 +1516,7 @@ namespace eval Dwarf {
version { set _cu_version $value }
addr_size { set _cu_addr_size $value }
fission { set _cu_is_fission $value }
+ dwo_id { set dwo_id $value }
label { set label $value }
default { error "unknown option $name" }
}
@@ -1524,12 +1567,42 @@ namespace eval Dwarf {
# The CU header for DWARF 4 and 5 are slightly different.
if { $_cu_version == 5 } {
- _op .byte 0x1 "DW_UT_compile"
+ # The presence of a DWO_ID indicates that we generate a skeleton
+ # or split_compile unit.
+ if { $dwo_id != 0 } {
+ if { $_cu_is_fission } {
+ set unit_type_name "DW_UT_split_compile"
+ } else {
+ set unit_type_name "DW_UT_skeleton"
+ }
+ } else {
+ set unit_type_name "DW_UT_compile"
+ }
+
+ _op .byte $_constants($unit_type_name) $unit_type_name
_op .byte $_cu_addr_size "Pointer size"
_op_offset $_cu_offset_size $my_abbrevs Abbrevs
+
+ # Output DWO ID, if specified.
+ if { $dwo_id != 0 } {
+ _op .8byte $dwo_id "DWO_ID"
+ } else {
+ # To help catch user errors: if the caller asked to put this
+ # unit in the DWO file but didn't provide a DWO ID, it is likely
+ # an error.
+ if { $_cu_is_fission } {
+ error "DWO ID not specified for DWARF 5 split compile"
+ }
+ }
} else {
_op_offset $_cu_offset_size $my_abbrevs Abbrevs
_op .byte $_cu_addr_size "Pointer size"
+
+ # For DWARF versions < 5, the DWO ID is not in the unit header,
+ # so it makes not sense to specify one.
+ if { $dwo_id != 0 } {
+ error "DWO ID specified for DWARF < 5 unit"
+ }
}
_defer_output $_abbrev_section {
@@ -1606,7 +1679,7 @@ namespace eval Dwarf {
}
if { $_cu_is_fission } {
set section "$section.dwo"
- set _abbrev_section "$section.dwo"
+ set _abbrev_section "$_abbrev_section.dwo"
}
_section $section
@@ -3006,6 +3079,24 @@ namespace eval Dwarf {
}
}
+ # Emit a .debug_sup section with the given file name and build-id.
+ # The buildid should be represented as a hexadecimal string, like
+ # "ffeeddcc".
+ proc debug_sup {is_sup filename buildid} {
+ _defer_output .debug_sup {
+ # The version.
+ _op .2byte 0x5
+ # Supplementary marker.
+ _op .byte $is_sup
+ _op .ascii [_quote $filename]
+ set len [expr {[string length $buildid] / 2}]
+ _op .uleb128 $len
+ foreach {a b} [split $buildid {}] {
+ _op .byte 0x$a$b
+ }
+ }
+ }
+
proc _note {type name hexdata} {
set namelen [expr [string length $name] + 1]
set datalen [expr [string length $hexdata] / 2]
@@ -3130,10 +3221,11 @@ namespace eval Dwarf {
}
variable _debug_names
set _debug_names []
- proc _debug_names_name { name tag cu hash } {
+ proc _debug_names_name { name tag cu hash {extra {}} } {
variable _debug_names
declare_labels entry_pool_offset
- lappend _debug_names [list $name $tag $cu $hash $entry_pool_offset]
+ lappend _debug_names [list $name $tag $cu $hash $extra \
+ $entry_pool_offset]
}
with_override Dwarf::cu Dwarf::_debug_names_cu {
with_override Dwarf::tu Dwarf::_debug_names_tu {
@@ -3196,14 +3288,13 @@ namespace eval Dwarf {
# Hash Lookup Table - array of hashes.
foreach idx $_debug_names {
- set name [lindex $idx 0]
- set hash [lindex $idx 3]
+ lassign $idx name tag cu hash extra label
_op .4byte $hash "hash: $name"
}
# Name Table - array of string offsets.
foreach idx $_debug_names {
- set name [lindex $idx 0]
+ lassign $idx name tag cu hash extra label
variable _strings
if {![info exists _strings($name)]} {
@@ -3220,8 +3311,7 @@ namespace eval Dwarf {
# Name Table - array of entry offsets.
set base_label ""
foreach idx $_debug_names {
- set name [lindex $idx 0]
- set label [lindex $idx 4]
+ lassign $idx name tag cu hash extra label
if { [string equal $base_label ""]} {
set base_label $label
}
@@ -3234,31 +3324,42 @@ namespace eval Dwarf {
set abbrev 1
variable _constants
foreach idx $_debug_names {
- set name [lindex $idx 0]
- set tag [lindex $idx 1]
- set cu [lindex $idx 2]
+ lassign $idx name tag cu hash extra label
if { [regexp "^CU-($decimal)$" $cu dummy cu_index] } {
- set attr_name compile_unit
- set attr_val 1
+ set attr_name DW_IDX_compile_unit
} elseif { [regexp "^TU-($decimal)$" $cu dummy cu_index] } {
- set attr_name type_unit
- set attr_val 2
+ set attr_name DW_IDX_type_unit
} else {
set cu_index [lsearch -exact $_debug_names_cus $cu]
if { $cu_index == -1 } {
- set attr_name type_unit
- set attr_val 2
+ set attr_name DW_IDX_type_unit
} else {
- set attr_name compile_unit
- set attr_val 1
+ set attr_name DW_IDX_compile_unit
}
}
- _op .byte $abbrev "abbrev $abbrev"
+ _op .uleb128 $abbrev "abbrev $abbrev"
_op .uleb128 $_constants(DW_TAG_$tag) "DW_TAG_$tag"
- _op .byte $attr_val "DW_IDX_$attr_name (attribute)"
- _op .byte 0x0f "DW_FORM_udata (form)"
+ _op .uleb128 $_constants($attr_name) \
+ "$attr_name (attribute)"
+ _op .uleb128 0x0f "DW_FORM_udata (form)"
+ foreach word $extra {
+ if {$word == "static"} {
+ _op .uleb128 $_constants(DW_IDX_GNU_internal) \
+ "DW_IDX_GNU_internal"
+ _op .uleb128 $_constants(DW_FORM_flag_present) \
+ "DW_FORM_flag_present"
+ } elseif {[string match DW_LANG_* $word]} {
+ _op .uleb128 $_constants(DW_IDX_GNU_language) \
+ "DW_IDX_GNU_language"
+ _op .uleb128 $_constants(DW_FORM_implicit_const) \
+ "DW_FORM_flag_present"
+ _op .sleb128 $_constants($word) $word
+ } else {
+ error "unrecognized extra keyword $word"
+ }
+ }
_op .byte 0 "abbrev terminator (attribute)"
_op .byte 0 "abbrev terminator (form)"
incr abbrev
@@ -3269,9 +3370,7 @@ namespace eval Dwarf {
# Entry Pool
set abbrev 1
foreach idx $_debug_names {
- set name [lindex $idx 0]
- set cu [lindex $idx 2]
- set label [lindex $idx 4]
+ lassign $idx name tag cu hash extra label
if { [regexp "^CU-($decimal)$" $cu dummy cu_index] } {
set comment "$name: CU index"
@@ -3297,6 +3396,58 @@ namespace eval Dwarf {
debug_names_end:
}
+ # Add the strings in ARGS to the .debug_str section, and create a
+ # .debug_str_offsets section pointing to those strings.
+ # Current options are:
+ # dwo 0|1 - boolean indicating if the sections have the dwo suffix.
+ # default = 0 (no .dwo suffix)
+ # base_offset label
+ # - generate label, to be used in DW_AT_str_offsets_base.
+ # default = "" (don't generate a label).
+ proc debug_str_offsets { options args } {
+ parse_options {
+ { dwo 0 }
+ { base_offset "" }
+ }
+
+ if { $dwo } {
+ _section .debug_str.dwo
+ } else {
+ _section .debug_str
+ }
+
+ set num 0
+ foreach arg $args {
+ set str_label [_compute_label "str_${num}"]
+ define_label $str_label
+ _op .asciz \"$arg\" ".debug_str_offsets string $num"
+ incr num
+ }
+
+ declare_labels debug_str_offsets_start debug_str_offsets_end
+ set initial_length "$debug_str_offsets_end - $debug_str_offsets_start"
+
+ if { $dwo } {
+ _section .debug_str_offsets.dwo
+ } else {
+ _section .debug_str_offsets
+ }
+ _op .4byte $initial_length "Initial_length"
+ debug_str_offsets_start:
+ _op .2byte 0x5 "version"
+ _op .2byte 0x0 "padding"
+ if { $base_offset != "" } {
+ $base_offset:
+ }
+ set num 0
+ foreach arg $args {
+ set str_label [_compute_label "str_${num}"]
+ _op .4byte $str_label "string $num"
+ incr num
+ }
+ debug_str_offsets_end:
+ }
+
# The top-level interface to the DWARF assembler.
# OPTIONS is a list with an even number of elements containing
# option-name and option-value pairs.
diff --git a/gdb/testsuite/lib/fortran.exp b/gdb/testsuite/lib/fortran.exp
index cddcc3a..6f2bbd8 100644
--- a/gdb/testsuite/lib/fortran.exp
+++ b/gdb/testsuite/lib/fortran.exp
@@ -1,6 +1,6 @@
# This test code is part of GDB, the GNU debugger.
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/future.exp b/gdb/testsuite/lib/future.exp
index 62913cb..161c31c 100644
--- a/gdb/testsuite/lib/future.exp
+++ b/gdb/testsuite/lib/future.exp
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Free Software Foundation, Inc.
+# Copyright 2004-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/gdb-guile.exp b/gdb/testsuite/lib/gdb-guile.exp
index 412dd56..776dbc6 100644
--- a/gdb/testsuite/lib/gdb-guile.exp
+++ b/gdb/testsuite/lib/gdb-guile.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/gdb-python.exp b/gdb/testsuite/lib/gdb-python.exp
index a820c87..e026c1b 100644
--- a/gdb/testsuite/lib/gdb-python.exp
+++ b/gdb/testsuite/lib/gdb-python.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -77,3 +77,24 @@ proc gdb_py_module_available { name } {
return ${available}
}
+
+# Run a memory leak test within the Python script FILENAME. This proc
+# checks that the required Python modules are available, sets up the
+# syspath so that the helper module can be found (in the same
+# directory as FILENAME), then loads FILENAME to run the test.
+proc gdb_py_run_memory_leak_test { filename testname } {
+ if { ![gdb_py_module_available "tracemalloc"] } {
+ unsupported "$testname (tracemalloc module not available)"
+ }
+
+ gdb_test_no_output -nopass "python import sys"
+ gdb_test_no_output -nopass \
+ "python sys.path.insert(0, \"[file dirname $filename]\")" \
+ "setup sys.path"
+
+ set pyfile [gdb_remote_download host ${filename}]
+
+ # Source the Python script, this runs the test, and either prints
+ # PASS, or throws an exception.
+ gdb_test "source ${pyfile}" "^PASS" $testname
+}
diff --git a/gdb/testsuite/lib/gdb-utils.exp b/gdb/testsuite/lib/gdb-utils.exp
index b8ab30a..fe2cfca 100644
--- a/gdb/testsuite/lib/gdb-utils.exp
+++ b/gdb/testsuite/lib/gdb-utils.exp
@@ -1,4 +1,4 @@
-# Copyright 2014-2024 Free Software Foundation, Inc.
+# Copyright 2014-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -117,7 +117,10 @@ proc gdb_get_bp_addr { num } {
# Compare the version numbers in L1 to those in L2 using OP, and
# return 1 if the comparison is true. OP can be "<", "<=", ">", ">=",
-# or "==". It is ok if the lengths of the lists differ.
+# or "==".
+# It is ok if the lengths of the lists differ, but note that we have
+# "{1} < {1 0}" instead of "{1} == {1 0}". See also
+# gdb.testsuite/version-compare.exp.
proc version_compare { l1 op l2 } {
switch -exact $op {
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 56dc835..3f1cd55 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -1,4 +1,4 @@
-# Copyright 1992-2024 Free Software Foundation, Inc.
+# Copyright 1992-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -45,9 +45,9 @@ proc cond_wrap { cond wrap body } {
}
}
-# Helper function for set_sanitizer/set_sanitizer_default.
+# Helper function for append_environment/append_environment_default.
-proc set_sanitizer_1 { env_var var_id val default} {
+proc append_environment_1 { env_var var_id val default} {
global env
if { ![info exists env($env_var) ]
@@ -70,17 +70,17 @@ proc set_sanitizer_1 { env_var var_id val default} {
# Add VAR_ID=VAL to ENV_VAR.
-proc set_sanitizer { env_var var_id val } {
- set_sanitizer_1 $env_var $var_id $val 0
+proc append_environment { env_var var_id val } {
+ append_environment_1 $env_var $var_id $val 0
}
# Add VAR_ID=VAL to ENV_VAR, unless ENV_VAR already contains a VAR_ID setting.
-proc set_sanitizer_default { env_var var_id val } {
- set_sanitizer_1 $env_var $var_id $val 1
+proc append_environment_default { env_var var_id val } {
+ append_environment_1 $env_var $var_id $val 1
}
-set_sanitizer_default TSAN_OPTIONS suppressions \
+append_environment_default TSAN_OPTIONS suppressions \
$srcdir/../tsan-suppressions.txt
# When using ThreadSanitizer we may run into the case that a race is detected,
@@ -89,14 +89,14 @@ set_sanitizer_default TSAN_OPTIONS suppressions \
# Try to prevent this by setting history_size to the maximum (7) by default.
# See also the ThreadSanitizer docs (
# https://github.com/google/sanitizers/wiki/ThreadSanitizerFlags ).
-set_sanitizer_default TSAN_OPTIONS history_size 7
+append_environment_default TSAN_OPTIONS history_size 7
# If GDB is built with ASAN (and because there are leaks), it will output a
# leak report when exiting as well as exit with a non-zero (failure) status.
# This can affect tests that are sensitive to what GDB prints on stderr or its
# exit status. Add `detect_leaks=0` to the ASAN_OPTIONS environment variable
# (which will affect any spawned sub-process) to avoid this.
-set_sanitizer_default ASAN_OPTIONS detect_leaks 0
+append_environment_default ASAN_OPTIONS detect_leaks 0
# List of procs to run in gdb_finish.
set gdb_finish_hooks [list]
@@ -269,6 +269,9 @@ if ![info exists INTERNAL_GDBFLAGS] {
}
set INTERNAL_GDBFLAGS [append_gdb_data_directory_option $INTERNAL_GDBFLAGS]
+
+ # Handle the case that "interactive-mode auto" reports off.
+ append INTERNAL_GDBFLAGS { -iex "set interactive-mode on"}
}
# The variable gdb_prompt is a regexp which matches the gdb prompt.
@@ -1026,7 +1029,10 @@ proc command_to_message { command } {
# should not be anchored at the end of the buffer. This means that the
# pattern can match even if there is stuff output after the prompt. Does not
# have any effect if -prompt is specified.
-# -lbl specifies that line-by-line matching will be used.
+# -lbl specifies that line-by-line matching will be used. This means
+# that lines from GDB not matched by any pattern will be consumed from
+# the output buffer. This helps avoid buffer overflows and timeouts
+# when testing verbose commands.
# EXPECT_ARGUMENTS will be fed to expect in addition to the standard
# patterns. Pattern elements will be evaluated in the caller's
# context; action elements will be executed in the caller's context.
@@ -1124,6 +1130,7 @@ proc gdb_test_multiple { command message args } {
global any_spawn_id
set line_by_line 0
+ set lbl_anchor_re ""
set prompt_regexp ""
set prompt_anchor 1
for {set i 0} {$i < [llength $args]} {incr i} {
@@ -1133,6 +1140,7 @@ proc gdb_test_multiple { command message args } {
set prompt_regexp [lindex $args $i]
} elseif { $arg == "-lbl" } {
set line_by_line 1
+ set lbl_anchor_re "^"
} elseif { $arg == "-no-prompt-anchor" } {
set prompt_anchor 0
} else {
@@ -1391,7 +1399,7 @@ proc gdb_test_multiple { command message args } {
fail "$errmsg"
set result -1
}
- -re "\r\n$prompt_regexp" {
+ -re "${lbl_anchor_re}\r\n$prompt_regexp" {
if {![string match "" $message]} {
fail "$message"
}
@@ -2301,7 +2309,8 @@ proc default_gdb_exit {} {
}
}
- if { [is_remote host] && [board_info host exists fileid] } {
+ if { ([is_remote host] && [board_info host exists fileid])
+ || [istarget *-*-mingw*] } {
send_gdb "quit\n"
gdb_expect 10 {
-re "y or n" {
@@ -2314,7 +2323,9 @@ proc default_gdb_exit {} {
}
if ![is_remote host] {
- remote_close host
+ if {[catch { remote_close host } message]} {
+ warning "closing gdb failed with: $message"
+ }
}
unset gdb_spawn_id
unset ::gdb_tty_name
@@ -2491,7 +2502,7 @@ proc default_gdb_spawn { } {
global INTERNAL_GDBFLAGS GDBFLAGS
global gdb_spawn_id
- # Set the default value, it may be overriden later by specific testfile.
+ # Set the default value, it may be overridden later by specific testfile.
#
# Use `set_board_info use_gdb_stub' for the board file to flag the inferior
# is already started after connecting and run/attach are not supported.
@@ -2577,6 +2588,17 @@ proc default_gdb_start { } {
# Output with -q, and bracketed paste mode enabled, see above.
verbose "GDB initialized."
}
+ -re "^\033\\\[6n$gdb_prompt $" {
+ # With MSYS2 and TERM={xterm,ansi}, I get:
+ #
+ # builtin_spawn gdb -q ...
+ # ^[[6n(gdb)
+ #
+ # We set TERM to dumb by default to avoid this, but some
+ # test-cases set TERM to xterm or ansi, in which case we get this
+ # output.
+ verbose "GDB initialized."
+ }
-re "$gdb_prompt $" {
perror "GDB never initialized."
unset gdb_spawn_id
@@ -2641,35 +2663,58 @@ proc gdb_interact { } {
# Examine the output of compilation to determine whether compilation
# failed or not. If it failed determine whether it is due to missing
+# compiler or due to compiler error. Return 1 for pass, 0 for fail,
+# -1 for unsupported (missing compiler), and -2 for unsupported (bad
+# option) -- but do not issue a pass/fail directly.
+
+proc gdb_compile_test_nofail {output} {
+ if { $output == "" } {
+ return 1
+ }
+
+ if { [regexp {^[a-zA-Z_0-9]+: Can't find [^ ]+\.$} $output]
+ || [regexp {.*: command not found[\r|\n]*$} $output]
+ || [regexp {.*: [^\r\n]*compiler not installed[^\r\n]*[\r|\n]*$} $output] } {
+ return -1
+ }
+
+ set gcc_re ".*: error: unrecognized command line option "
+ set clang_re ".*: error: unsupported option "
+ if { [regexp "(?:$gcc_re|$clang_re)(\[^ \t;\r\n\]*)" $output dummy option]
+ && $option != "" } {
+ return -2
+ }
+
+ # Unclassified compilation failure, be more verbose.
+ verbose -log "compilation failed: $output" 2
+ return 0
+}
+
+# Examine the output of compilation to determine whether compilation
+# failed or not. If it failed determine whether it is due to missing
# compiler or due to compiler error. Report pass, fail or unsupported
# as appropriate.
proc gdb_compile_test {src output} {
set msg "compilation [file tail $src]"
- if { $output == "" } {
+ set result [gdb_compile_test_nofail $output]
+ if {$result == 1} {
pass $msg
return
}
- if { [regexp {^[a-zA-Z_0-9]+: Can't find [^ ]+\.$} $output]
- || [regexp {.*: command not found[\r|\n]*$} $output]
- || [regexp {.*: [^\r\n]*compiler not installed[^\r\n]*[\r|\n]*$} $output] } {
+ if {$result == -1} {
unsupported "$msg (missing compiler)"
return
}
- set gcc_re ".*: error: unrecognized command line option "
- set clang_re ".*: error: unsupported option "
- if { [regexp "(?:$gcc_re|$clang_re)(\[^ \t;\r\n\]*)" $output dummy option]
- && $option != "" } {
+ if {$result == -2} {
unsupported "$msg (unsupported option $option)"
return
}
- # Unclassified compilation failure, be more verbose.
- verbose -log "compilation failed: $output" 2
- fail "$msg"
+ fail $msg
}
# Return a 1 for configurations for which we want to try to test C++.
@@ -2776,6 +2821,12 @@ gdb_caching_proc allow_python_tests {} {
return [expr {[string first "--with-python" $output] != -1}]
}
+# Return a 1 if GDB was configured to support compile commands.
+gdb_caching_proc allow_compile_tests {} {
+ set output [remote_exec host $::GDB "$::INTERNAL_GDBFLAGS -ex \"compile int x = 1\" -batch"]
+ return [expr {[string first "The program must be running" $output] != -1}]
+}
+
# Return a 1 for configurations that use system readline rather than the
# in-repo copy.
@@ -3729,7 +3780,8 @@ proc supports_reverse {} {
|| [istarget "aarch64*-*-linux*"]
|| [istarget "loongarch*-*-linux*"]
|| [istarget "powerpc*-*-linux*"]
- || [istarget "s390*-*-linux*"] } {
+ || [istarget "s390*-*-linux*"]
+ || [istarget "riscv*-*-*"] } {
return 1
}
@@ -3908,13 +3960,16 @@ gdb_caching_proc is_aarch32_target {} {
return 0
}
- set list {}
- foreach reg \
- {r0 r1 r2 r3} {
- lappend list "\tmov $reg, $reg"
- }
+ return [gdb_can_simple_compile aarch32 {
+ int main (void) {
+ asm ("\tmov r0, r0");
+ asm ("\tmov r1, r1");
+ asm ("\tmov r2, r2");
+ asm ("\tmov r3, r3");
- return [gdb_can_simple_compile aarch32 [join $list \n]]
+ return 0;
+ }
+ }]
}
# Return 1 if this target is an aarch64, either lp64 or ilp32.
@@ -5054,6 +5109,40 @@ proc skip_inline_var_tests {} {
return 0
}
+# Return whether we allow running fork-related testcases. Targets
+# that don't even have any concept of fork will just fail to compile
+# the testcases and skip the tests that way if this returns true for
+# them. Unix targets that do have a fork system call, but don't
+# support intercepting forks will want to return false here, otherwise
+# the testcases that exercise fork may hit a number of long cascading
+# time out sequences.
+
+proc allow_fork_tests {} {
+ if {[istarget "*-*-cygwin*"] || [istarget "*-*-mingw*"]} {
+ return 0
+ }
+
+ return 1
+}
+
+# Return whether we allow running testcases that want to debug
+# multiple inferiors with the same target. Not all targets support
+# this. Note that some tests add a second inferior but never start
+# it. Those tests should not be skipped due to this proc returning
+# false.
+
+proc allow_multi_inferior_tests {} {
+ if {[istarget "*-*-cygwin*"] || [istarget "*-*-mingw*"]} {
+ return 0
+ }
+
+ if {[use_gdb_stub]} {
+ return 0
+ }
+
+ return 1
+}
+
# Return a 1 if we should run tests that require hardware breakpoints
proc allow_hw_breakpoint_tests {} {
@@ -5241,7 +5330,7 @@ proc is_any_target {args} {
#
# This is the preferred way of checking use_gdb_stub, since it allows to check
# the value before the gdb has been spawned and it will return the correct value
-# even when it was overriden by the test.
+# even when it was overridden by the test.
#
# Note that stub targets are not able to spawn new inferiors. Use this
# check for skipping respective tests.
@@ -5917,6 +6006,23 @@ proc gdb_compile {source dest type options} {
}
}
+ # On AIX systems, until GCC 12 (maybe later), stabs was the default
+ # debug option, but we'd like to have dwarf instead.
+ # If we're running on one of those systems and debug was requested,
+ # but no explicit -g<format> option was given, use -gdwarf to force
+ # that as the debug info for the inferior.
+ # This list should be exhaustive:
+ set debug_format "btf|ctf|stabs|vms|coff|xcoff"
+ # Since additional_flags is a comma separated list, identify if there
+ # are other (optional) flags in the list.
+ set other_options "-\[a-zA-Z0-9\]*,"
+ set full_regexp "^additional_flags=\($other_options\)*-g\($debug_format\)"
+ if { [istarget *-*-aix*]
+ && [lsearch -exact $options debug] != -1
+ && [lsearch -regexp $options $full_regexp] == -1} {
+ lappend new_options "additional_flags=-gdwarf"
+ }
+
set shlib_found 0
set shlib_load 0
foreach opt $options {
@@ -6870,7 +6976,7 @@ proc kill_wait_spawned_process { proc_spawn_id } {
proc spawn_id_get_pid { spawn_id } {
set testpid [exp_pid -i $spawn_id]
- if { [istarget "*-*-cygwin*"] } {
+ if { [istarget "*-*-cygwin*"] || [istarget "*-*-mingw*"] } {
# testpid is the Cygwin PID, GDB uses the Windows PID, which
# might be different due to the way fork/exec works.
set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
@@ -6957,6 +7063,24 @@ proc gdb_load_cmd { args } {
return -1
}
+# Return non-zero if 'gcore' command is available.
+gdb_caching_proc gcore_cmd_available { } {
+ gdb_exit
+ gdb_start
+
+ # Does this gdb support gcore?
+ gdb_test_multiple "help gcore" "" {
+ -re -wrap "Undefined command: .*" {
+ return 0
+ }
+ -re -wrap "Save a core file .*" {
+ return 1
+ }
+ }
+
+ return 0
+}
+
# Invoke "gcore". CORE is the name of the core file to write. TEST
# is the name of the test case. This will return 1 if the core file
# was created, 0 otherwise. If this fails to make a core file because
@@ -7421,6 +7545,22 @@ proc default_gdb_init { test_file_name } {
setenv LC_CTYPE C
setenv LANG C
+ # With MSYS2 and TERM={xterm,ansi}, I get:
+ #
+ # builtin_spawn gdb -q ...
+ # ^[[6n(gdb)
+ #
+ # While we're addressing this in default_gdb_start, this is not specific
+ # to gdb, other tools produce the same CSI sequence, and consequently we
+ # run into trouble in other places (like get_compiler_info).
+ #
+ # Set TERM to dumb to prevent the '^[[6n' from occurring.
+ #
+ # We could do this only for ishost *-*-mingw*, but that introduces
+ # inconsistency between platforms, with test-cases passing on one platform
+ # but failing on the other. So, we do this for all platforms.
+ setenv TERM dumb
+
# Don't let a .inputrc file or an existing setting of INPUTRC mess
# up the test results. Certain tests (style tests and TUI tests)
# want to set the terminal to a non-"dumb" value, and for those we
@@ -9236,7 +9376,12 @@ proc core_find {binfile {deletefiles {}} {arg ""}} {
file mkdir $coredir
catch "system \"(cd ${coredir}; ulimit -c unlimited; ${binfile} ${arg}; true) >/dev/null 2>&1\""
# remote_exec host "${binfile}"
- foreach i "${coredir}/core ${coredir}/core.coremaker.c ${binfile}.core" {
+ set binfile_basename [file tail $binfile]
+ foreach i [list \
+ ${coredir}/core \
+ ${coredir}/core.coremaker.c \
+ ${coredir}/${binfile_basename}.core \
+ ${coredir}/${binfile_basename}.exe.core] {
if [remote_file build exists $i] {
remote_exec build "mv $i $destcore"
set found 1
@@ -11016,5 +11161,50 @@ gdb_caching_proc root_user {} {
return [expr $uid == 0]
}
+# Return nul-terminated string read from section SECTION of EXEC. Return ""
+# if no such section or nul-terminated string was found. Function is useful
+# for sections ".interp" or ".gnu_debuglink".
+
+proc section_get {exec section} {
+ global subdir
+ set tmp [standard_output_file section_get.tmp]
+ set objcopy_program [gdb_find_objcopy]
+
+ set command "exec $objcopy_program -O binary --set-section-flags $section=A --change-section-address $section=0 -j $section $exec $tmp"
+ verbose -log "command is $command"
+ set result [catch $command output]
+ verbose -log "result is $result"
+ verbose -log "output is $output"
+ if {$result == 1} {
+ return ""
+ }
+ set fi [open $tmp]
+ fconfigure $fi -translation binary
+ set data [read $fi]
+ close $fi
+ file delete $tmp
+ # .interp has size $len + 1 but .gnu_debuglink contains garbage after \000.
+ set len [string first \000 $data]
+ if {$len < 0} {
+ verbose -log "section $section not found"
+ return ""
+ }
+ set retval [string range $data 0 [expr $len - 1]]
+ verbose -log "section $section is <$retval>"
+ return $retval
+}
+
+# Return 1 if the compiler supports __builtin_trap, else return 0.
+
+gdb_caching_proc have_builtin_trap {} {
+
+ return [gdb_can_simple_compile builtin_trap {
+ int main() {
+ __builtin_trap ();
+ return 0;
+ }
+ } executable]
+}
+
# Always load compatibility stuff.
load_lib future.exp
diff --git a/gdb/testsuite/lib/gdbserver-support.exp b/gdb/testsuite/lib/gdbserver-support.exp
index 346c9b9..2389206 100644
--- a/gdb/testsuite/lib/gdbserver-support.exp
+++ b/gdb/testsuite/lib/gdbserver-support.exp
@@ -1,4 +1,4 @@
-# Copyright 2000-2024 Free Software Foundation, Inc.
+# Copyright 2000-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -69,7 +69,7 @@ proc gdb_target_cmd_ext { targetname serialport {additional_text ""} } {
}
-re "Non-stop mode requested, but remote does not support non-stop.*$gdb_prompt $" {
verbose "remote does not support non-stop"
- return 1
+ return 2
}
-re "Remote MIPS debugging.*$additional_text.*$gdb_prompt" {
verbose "Set target to $targetname"
diff --git a/gdb/testsuite/lib/gen-perf-test.exp b/gdb/testsuite/lib/gen-perf-test.exp
index a4debf8..dbdc79b 100644
--- a/gdb/testsuite/lib/gen-perf-test.exp
+++ b/gdb/testsuite/lib/gen-perf-test.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/gnat_debug_info_test.adb b/gdb/testsuite/lib/gnat_debug_info_test.adb
index b8f0b03..b195cb8 100644
--- a/gdb/testsuite/lib/gnat_debug_info_test.adb
+++ b/gdb/testsuite/lib/gnat_debug_info_test.adb
@@ -1,3 +1,18 @@
+-- Copyright 2019-2025 Free Software Foundation, Inc.
+--
+-- This program is free software; you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as published by
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- 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, see <http://www.gnu.org/licenses/>.
+
with Ada.Text_IO;
procedure GNAT_Debug_Info_Test is
diff --git a/gdb/testsuite/lib/go.exp b/gdb/testsuite/lib/go.exp
index 4525d77..5f668e2 100644
--- a/gdb/testsuite/lib/go.exp
+++ b/gdb/testsuite/lib/go.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/jit-elf-helpers.exp b/gdb/testsuite/lib/jit-elf-helpers.exp
index 4d9c055..e5c328e 100644
--- a/gdb/testsuite/lib/jit-elf-helpers.exp
+++ b/gdb/testsuite/lib/jit-elf-helpers.exp
@@ -1,4 +1,4 @@
-# Copyright 2020-2024 Free Software Foundation, Inc.
+# Copyright 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/memory.exp b/gdb/testsuite/lib/memory.exp
index 6675641..b8aadb6 100644
--- a/gdb/testsuite/lib/memory.exp
+++ b/gdb/testsuite/lib/memory.exp
@@ -1,4 +1,4 @@
-# Copyright 2012-2024 Free Software Foundation, Inc.
+# Copyright 2012-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/mi-support.exp b/gdb/testsuite/lib/mi-support.exp
index 3832137..aba13a2 100644
--- a/gdb/testsuite/lib/mi-support.exp
+++ b/gdb/testsuite/lib/mi-support.exp
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Free Software Foundation, Inc.
+# Copyright 1999-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -131,7 +131,7 @@ proc mi_create_inferior_pty {} {
}
}
-# Create a new pty, and reate a new MI UI (using the new-ui command) on it.
+# Create a new pty, and create a new MI UI (using the new-ui command) on it.
#
# Return a list with the spawn id for that pty and the pty file name.
@@ -247,7 +247,7 @@ proc default_mi_gdb_start { { flags {} } } {
return [mi_gdb_start_separate_mi_tty $flags]
}
- # Set the default value, it may be overriden later by specific testfile.
+ # Set the default value, it may be overridden later by specific testfile.
set use_gdb_stub [target_info exists use_gdb_stub]
# Start SID.
@@ -1953,40 +1953,41 @@ proc mi_run_inline_test { testcase } {
}
proc get_mi_thread_list {name} {
- global expect_out
-
- # MI will return a list of thread ids:
- #
- # -thread-list-ids
- # ^done,thread-ids=[thread-id="1",thread-id="2",...],number-of-threads="N"
- # (gdb)
- mi_gdb_test "-thread-list-ids" \
- {.*\^done,thread-ids={(thread-id="[0-9]+"(,)?)+},current-thread-id="[0-9]+",number-of-threads="[0-9]+"} \
- "-thread_list_ids ($name)"
-
- set output {}
- if {[info exists expect_out(buffer)]} {
- set output $expect_out(buffer)
- }
-
- set thread_list {}
- if {![regexp {thread-ids=\{(thread-id="[0-9]+"(,)?)*\}} $output threads]} {
- fail "finding threads in MI output ($name)"
- } else {
- pass "finding threads in MI output ($name)"
-
- # Make list of console threads
- set start [expr {[string first \{ $threads] + 1}]
- set end [expr {[string first \} $threads] - 1}]
- set threads [string range $threads $start $end]
- foreach thread [split $threads ,] {
- if {[scan $thread {thread-id="%d"} num]} {
- lappend thread_list $num
- }
+ # MI will return a list of thread ids:
+ #
+ # -thread-list-ids
+ # ^done,thread-ids={thread-id="1",thread-id="2",...},number-of-threads="N"
+ # (gdb)
+ #
+ # In case there are too many threads, the expect buffer would
+ # become full. Process the buffer contents in small chunks.
+ set thread_list {}
+ set num_threads "unknown"
+ set test "$name: get MI thread list"
+ gdb_test_multiple "-thread-list-ids" $test -prompt "$::mi_gdb_prompt" {
+ -re "done,thread-ids=\{" {
+ exp_continue
+ }
+ -re "^thread-id=\"($::decimal)\"(,|\})" {
+ lappend thread_list $expect_out(1,string)
+ exp_continue
+ }
+ -re "^,current-thread-id=\"$::decimal\"" {
+ exp_continue
+ }
+ -re "^,number-of-threads=\"($::decimal)\"" {
+ set num_threads $expect_out(1,string)
+ exp_continue
+ }
+ -re "^\r\n$::mi_gdb_prompt" {
+ pass $gdb_test_name
+ }
}
- }
- return $thread_list
+ gdb_assert {[llength $thread_list] == $num_threads} \
+ "$name: found thread ids in MI output"
+
+ return $thread_list
}
# Helper function for check_mi_and_console_threads.
diff --git a/gdb/testsuite/lib/my-syscalls.S b/gdb/testsuite/lib/my-syscalls.S
index 19df0ca..c514b32 100644
--- a/gdb/testsuite/lib/my-syscalls.S
+++ b/gdb/testsuite/lib/my-syscalls.S
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/my-syscalls.h b/gdb/testsuite/lib/my-syscalls.h
index 8de28ae..03c6f7e 100644
--- a/gdb/testsuite/lib/my-syscalls.h
+++ b/gdb/testsuite/lib/my-syscalls.h
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/notty-wrap b/gdb/testsuite/lib/notty-wrap
index 93b81fb..3011753 100755
--- a/gdb/testsuite/lib/notty-wrap
+++ b/gdb/testsuite/lib/notty-wrap
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright (C) 2021-2024 Free Software Foundation, Inc.
+# Copyright (C) 2021-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
diff --git a/gdb/testsuite/lib/objc.exp b/gdb/testsuite/lib/objc.exp
index 1378f56..cf1fed9 100644
--- a/gdb/testsuite/lib/objc.exp
+++ b/gdb/testsuite/lib/objc.exp
@@ -1,6 +1,6 @@
# This test code is part of GDB, the GNU debugger.
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/opencl.exp b/gdb/testsuite/lib/opencl.exp
index caa0e1e..2a5300e 100644
--- a/gdb/testsuite/lib/opencl.exp
+++ b/gdb/testsuite/lib/opencl.exp
@@ -1,4 +1,4 @@
-# Copyright 2010-2024 Free Software Foundation, Inc.
+# Copyright 2010-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/opencl_hostapp.c b/gdb/testsuite/lib/opencl_hostapp.c
index 7637a0f..c39995f 100644
--- a/gdb/testsuite/lib/opencl_hostapp.c
+++ b/gdb/testsuite/lib/opencl_hostapp.c
@@ -1,6 +1,6 @@
/* This testcase is part of GDB, the GNU debugger.
- Copyright 2010-2024 Free Software Foundation, Inc.
+ Copyright 2010-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/pascal.exp b/gdb/testsuite/lib/pascal.exp
index 236eca1..d76cdca 100644
--- a/gdb/testsuite/lib/pascal.exp
+++ b/gdb/testsuite/lib/pascal.exp
@@ -1,4 +1,4 @@
-# Copyright 2007-2024 Free Software Foundation, Inc.
+# Copyright 2007-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/pdtrace.in b/gdb/testsuite/lib/pdtrace.in
index 08b9efa..a629ff6 100755
--- a/gdb/testsuite/lib/pdtrace.in
+++ b/gdb/testsuite/lib/pdtrace.in
@@ -2,7 +2,7 @@
# A Poor (but Free) Man's dtrace
#
-# Copyright (C) 2014-2024 Free Software Foundation, Inc.
+# Copyright (C) 2014-2025 Free Software Foundation, Inc.
#
# Contributed by Oracle, Inc.
#
diff --git a/gdb/testsuite/lib/perftest.exp b/gdb/testsuite/lib/perftest.exp
index b4c997a..cca0ede 100644
--- a/gdb/testsuite/lib/perftest.exp
+++ b/gdb/testsuite/lib/perftest.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/precise-aligned-alloc.c b/gdb/testsuite/lib/precise-aligned-alloc.c
index 4f55ffd..b914afe 100644
--- a/gdb/testsuite/lib/precise-aligned-alloc.c
+++ b/gdb/testsuite/lib/precise-aligned-alloc.c
@@ -1,6 +1,6 @@
/* This test file is part of GDB, the GNU debugger.
- Copyright 2021-2024 Free Software Foundation, Inc.
+ Copyright 2021-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/prelink-support.exp b/gdb/testsuite/lib/prelink-support.exp
index 894af39..a712a7a 100644
--- a/gdb/testsuite/lib/prelink-support.exp
+++ b/gdb/testsuite/lib/prelink-support.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2010-2024 Free Software Foundation, Inc.
+# Copyright (C) 2010-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -13,39 +13,6 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-# Return nul-terminated string read from section SECTION of EXEC. Return ""
-# if no such section or nul-terminated string was found. Function is useful
-# for sections ".interp" or ".gnu_debuglink".
-
-proc section_get {exec section} {
- global subdir
- set tmp [standard_output_file section_get.tmp]
- set objcopy_program [gdb_find_objcopy]
-
- set command "exec $objcopy_program -O binary --set-section-flags $section=A --change-section-address $section=0 -j $section $exec $tmp"
- verbose -log "command is $command"
- set result [catch $command output]
- verbose -log "result is $result"
- verbose -log "output is $output"
- if {$result == 1} {
- return ""
- }
- set fi [open $tmp]
- fconfigure $fi -translation binary
- set data [read $fi]
- close $fi
- file delete $tmp
- # .interp has size $len + 1 but .gnu_debuglink contains garbage after \000.
- set len [string first \000 $data]
- if {$len < 0} {
- verbose -log "section $section not found"
- return ""
- }
- set retval [string range $data 0 [expr $len - 1]]
- verbose -log "section $section is <$retval>"
- return $retval
-}
-
# Resolve symlinks.
proc symlink_resolve {file} {
diff --git a/gdb/testsuite/lib/prompt.exp b/gdb/testsuite/lib/prompt.exp
index a19a057..7fa131b 100644
--- a/gdb/testsuite/lib/prompt.exp
+++ b/gdb/testsuite/lib/prompt.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -32,7 +32,7 @@ proc default_prompt_gdb_start { } {
global timeout
global gdb_spawn_id
- # Set the default value, it may be overriden later by specific testfile.
+ # Set the default value, it may be overridden later by specific testfile.
#
# Use `set_board_info use_gdb_stub' for the board file to flag the inferior
# is already started after connecting and run/attach are not supported.
diff --git a/gdb/testsuite/lib/range-stepping-support.exp b/gdb/testsuite/lib/range-stepping-support.exp
index 1f1f9d7..27587e5 100644
--- a/gdb/testsuite/lib/range-stepping-support.exp
+++ b/gdb/testsuite/lib/range-stepping-support.exp
@@ -1,4 +1,4 @@
-# Copyright 2013-2024 Free Software Foundation, Inc.
+# Copyright 2013-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/read1.c b/gdb/testsuite/lib/read1.c
index 29570c9..c4c9ee2 100644
--- a/gdb/testsuite/lib/read1.c
+++ b/gdb/testsuite/lib/read1.c
@@ -1,6 +1,6 @@
/* This is part of GDB, the GNU debugger.
- Copyright 2011-2024 Free Software Foundation, Inc.
+ Copyright 2011-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/rocm.exp b/gdb/testsuite/lib/rocm.exp
index b2db0d5..d3f201c 100644
--- a/gdb/testsuite/lib/rocm.exp
+++ b/gdb/testsuite/lib/rocm.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# Copyright (C) 2019-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -15,48 +15,83 @@
#
# Support library for testing ROCm (AMD GPU) GDB features.
-# Get the list of gpu targets to compile for.
-#
-# If HCC_AMDGPU_TARGET is set in the environment, use it. Otherwise,
-# try reading it from the system using the rocm_agent_enumerator
-# utility.
+# ROCM_PATH is used by hipcc as well.
+if {[info exists ::env(ROCM_PATH)]} {
+ set rocm_path $::env(ROCM_PATH)
+} else {
+ set rocm_path "/opt/rocm"
+}
-proc hcc_amdgpu_targets {} {
- # Look for HCC_AMDGPU_TARGET (same env var hipcc uses). If
- # that fails, try using rocm_agent_enumerator (again, same as
- # hipcc does).
- if {[info exists ::env(HCC_AMDGPU_TARGET)]} {
- return [split $::env(HCC_AMDGPU_TARGET) ","]
+# Act as a drop-in replacement for "remote_exec host"
+# that logs the failures.
+
+proc log_host_exec { cmd } {
+ set result [remote_exec host "$cmd"]
+ set exit_status [lindex $result 0]
+ if {$exit_status != 0} {
+ # -1 indicates that $cmd could not be executed at all.
+ if {$exit_status == -1} {
+ verbose -log "Cannot execute $cmd."
+ } else {
+ verbose -log "$cmd returned an error."
+ }
}
- set rocm_agent_enumerator "rocm_agent_enumerator"
+ return $result
+}
- # If available, use ROCM_PATH to locate rocm_agent_enumerator.
- if { [info exists ::env(ROCM_PATH)] } {
- set rocm_agent_enumerator \
- "$::env(ROCM_PATH)/bin/rocm_agent_enumerator"
+# Detect available AMDGPU devices.
+#
+# Return a list of GPU devices that do exist on the system.
+# The list will be empty when there's no GPU or the execution
+# of rocm_agent_enumerator does not succeed. It is up to the
+# caller of this procedure that what should happen when an empty
+# list is returned.
+
+gdb_caching_proc find_amdgpu_devices {} {
+ global rocm_path
+ set hip_gpu_devices [list]
+ set enumerator "rocm_agent_enumerator"
+ set targets ""
+
+ # Try the PATH first
+ set result [log_host_exec "$enumerator"]
+ if {[lindex $result 0] == 0} {
+ set targets [lindex $result 1]
+ } else {
+ # Now try the ROCM_PATH
+ set result [log_host_exec "$rocm_path/bin/$enumerator"]
+ if {[lindex $result 0] == 0} {
+ set targets [lindex $result 1]
+ }
}
- # If we fail to locate the rocm_agent_enumerator, just return an empty
- # list of targets and let the caller decide if this should be an error.
- if { [which $rocm_agent_enumerator] == 0 } {
- return [list]
+ if {$targets != ""} {
+ foreach dev $targets {
+ # Ignore the 'gfx000' device which identifies the host.
+ if {$dev != "gfx000"} {
+ lappend hip_gpu_devices $dev
+ }
+ }
}
- set result [remote_exec host $rocm_agent_enumerator]
- if { [lindex $result 0] != 0 } {
- error "rocm_agent_enumerator failed"
- }
+ return $hip_gpu_devices
+}
- set targets [list]
- foreach target [lindex $result 1] {
- # Ignore gfx000 which is the host CPU.
- if { $target ne "gfx000" } {
- lappend targets $target
- }
+# Get the list of GPU targets to compile for.
+#
+# If HCC_AMDGPU_TARGET is set in the environment, use it.
+# Otherwise, consider the devices available on the system.
+
+proc hcc_amdgpu_targets {} {
+ # First, look for HCC_AMDGPU_TARGET (same env var hipcc uses).
+ if {[info exists ::env(HCC_AMDGPU_TARGET)]} {
+ # We don't verify the contents of HCC_AMDGPU_TARGET.
+ # That's the toolchain's job.
+ return [split $::env(HCC_AMDGPU_TARGET) ","]
}
- return $targets
+ return [find_amdgpu_devices]
}
gdb_caching_proc allow_hipcc_tests {} {
@@ -77,12 +112,15 @@ gdb_caching_proc allow_hipcc_tests {} {
return {0 "amd-dbgapi not supported"}
}
- # Check we have a working hipcc compiler available.
- set targets [hcc_amdgpu_targets]
- if { [llength $targets] == 0} {
+ # Check if there's any GPU device to run the tests on.
+ set devices [find_amdgpu_devices]
+ if {[llength $devices] == 0} {
return {0 "no suitable amdgpu targets found"}
}
+ # Check if we have a working hipcc compiler available.
+ # TARGETS won't be empty, because there's at least one GPU device.
+ set targets [hcc_amdgpu_targets]
set flags [list hip additional_flags=--offload-arch=[join $targets ","]]
if {![gdb_simple_compile hipprobe {
#include <hip/hip_runtime.h>
@@ -126,26 +164,7 @@ proc hip_devices_support_debug_multi_process {} {
set unsupported_targets \
{gfx900 gfx906 gfx908 gfx1010 gfx1011 gfx1012 gfx1030 gfx1031 gfx1032}
- set targets [hcc_amdgpu_targets]
- if { [llength $targets] == 0 } {
- return 0
- }
-
- foreach target $targets {
- if { [lsearch -exact $unsupported_targets $target] != -1 } {
- return 0
- }
- }
- return 1
-}
-
-# Return true if all the devices on the host support precise memory.
-
-proc hip_devices_support_precise_memory {} {
- set unsupported_targets \
- {gfx900 gfx906 gfx908 gfx1010 gfx1011 gfx1012 gfx1030 gfx1031 gfx1032}
-
- set targets [hcc_amdgpu_targets]
+ set targets [find_amdgpu_devices]
if { [llength $targets] == 0 } {
return 0
}
diff --git a/gdb/testsuite/lib/rust-support.exp b/gdb/testsuite/lib/rust-support.exp
index 971a4a6..94888e9 100644
--- a/gdb/testsuite/lib/rust-support.exp
+++ b/gdb/testsuite/lib/rust-support.exp
@@ -1,4 +1,4 @@
-# Copyright 2016-2024 Free Software Foundation, Inc.
+# Copyright 2016-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/selftest-support.exp b/gdb/testsuite/lib/selftest-support.exp
index 0d76e2f..e037664 100644
--- a/gdb/testsuite/lib/selftest-support.exp
+++ b/gdb/testsuite/lib/selftest-support.exp
@@ -1,4 +1,4 @@
-# Copyright 2003-2024 Free Software Foundation, Inc.
+# Copyright 2003-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/set_unbuffered_mode.c b/gdb/testsuite/lib/set_unbuffered_mode.c
index 0c92d55..f0604a0 100644
--- a/gdb/testsuite/lib/set_unbuffered_mode.c
+++ b/gdb/testsuite/lib/set_unbuffered_mode.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/lib/sym-info-cmds.exp b/gdb/testsuite/lib/sym-info-cmds.exp
index 9714529..c94b06f 100644
--- a/gdb/testsuite/lib/sym-info-cmds.exp
+++ b/gdb/testsuite/lib/sym-info-cmds.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/trace-support.exp b/gdb/testsuite/lib/trace-support.exp
index 770a930..a8d0699 100644
--- a/gdb/testsuite/lib/trace-support.exp
+++ b/gdb/testsuite/lib/trace-support.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2024 Free Software Foundation, Inc.
+# Copyright (C) 1998-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/lib/tuiterm.exp b/gdb/testsuite/lib/tuiterm.exp
index 0c4e3d1..a0cd199 100644
--- a/gdb/testsuite/lib/tuiterm.exp
+++ b/gdb/testsuite/lib/tuiterm.exp
@@ -1,4 +1,4 @@
-# Copyright 2019-2024 Free Software Foundation, Inc.
+# Copyright 2019-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -1133,11 +1133,16 @@ namespace eval Term {
gdb_assert {![regexp -- $regexp $contents]} $test_name
}
- # Get the region of the screen described by X, Y, WIDTH,
- # and HEIGHT, and separate the lines using SEP.
- proc get_region { x y width height sep } {
+ # Get the region of the screen described by X, Y, WIDTH, and
+ # HEIGHT, and separate the lines using SEP. If ATTRS is true then
+ # include attribute information in the output.
+ proc get_region { x y width height sep { attrs false } } {
variable _chars
+ if { $attrs } {
+ _reset_attrs region_attrs
+ }
+
# Grab the contents of the box, join each line together
# using $sep.
set result ""
@@ -1148,9 +1153,19 @@ namespace eval Term {
append result $sep
}
for {set xx $x} {$xx < [expr {$x + $width}]} {incr xx} {
- append result [lindex $_chars($xx,$yy) 0]
+ if { $attrs } {
+ set char_attrs [lindex $_chars($xx,$yy) 1]
+ append result [apply_attrs region_attrs $char_attrs]
+ }
+
+ append result [get_char $xx $yy]
}
}
+ if { $attrs } {
+ _reset_attrs zero_attrs
+ set char_attrs [array get zero_attrs]
+ append result [apply_attrs region_attrs $char_attrs]
+ }
return $result
}
diff --git a/gdb/testsuite/lib/unbuffer_output.c b/gdb/testsuite/lib/unbuffer_output.c
index a286e3f..cdaa227 100644
--- a/gdb/testsuite/lib/unbuffer_output.c
+++ b/gdb/testsuite/lib/unbuffer_output.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/testsuite/lib/valgrind.exp b/gdb/testsuite/lib/valgrind.exp
index c952e92..aad0a3b 100644
--- a/gdb/testsuite/lib/valgrind.exp
+++ b/gdb/testsuite/lib/valgrind.exp
@@ -1,4 +1,4 @@
-# Copyright 2009-2024 Free Software Foundation, Inc.
+# Copyright 2009-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gdb/testsuite/make-check-all.sh b/gdb/testsuite/make-check-all.sh
index 28a89b6..c2fbadb 100755
--- a/gdb/testsuite/make-check-all.sh
+++ b/gdb/testsuite/make-check-all.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
@@ -74,6 +74,7 @@ target_boards=(
cc-with-gnu-debuglink
debug-types
dwarf4-gdb-index
+ dwarf5-fission-debug-types
dwarf64
fission
fission-dwp
diff --git a/gdb/testsuite/print-ts.py b/gdb/testsuite/print-ts.py
index 0a832ba..67a5bfd 100755
--- a/gdb/testsuite/print-ts.py
+++ b/gdb/testsuite/print-ts.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
-# Copyright (C) 2018-2024 Free Software Foundation, Inc.
+# Copyright (C) 2018-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
diff --git a/gdb/thread-fsm.h b/gdb/thread-fsm.h
index 36efee7..e8da890 100644
--- a/gdb/thread-fsm.h
+++ b/gdb/thread-fsm.h
@@ -1,5 +1,5 @@
/* Thread command's finish-state machine, for GDB, the GNU debugger.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/thread-iter.c b/gdb/thread-iter.c
index 601d23c..ca6720a 100644
--- a/gdb/thread-iter.c
+++ b/gdb/thread-iter.c
@@ -1,6 +1,6 @@
/* Thread iterators and ranges for GDB, the GNU debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/thread-iter.h b/gdb/thread-iter.h
index 8953721..abd7daf 100644
--- a/gdb/thread-iter.h
+++ b/gdb/thread-iter.h
@@ -1,5 +1,5 @@
/* Thread iterators and ranges for GDB, the GNU debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/thread.c b/gdb/thread.c
index 5892b15..0228027 100644
--- a/gdb/thread.c
+++ b/gdb/thread.c
@@ -1,6 +1,6 @@
/* Multi-process/thread control for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
Contributed by Lynx Real-Time Systems, Inc. Los Gatos, CA.
@@ -602,11 +602,10 @@ find_thread_by_handle (gdb::array_view<const gdb_byte> handle,
*/
struct thread_info *
-iterate_over_threads (int (*callback) (struct thread_info *, void *),
- void *data)
+iterate_over_threads (gdb::function_view<bool (struct thread_info *)> callback)
{
for (thread_info *tp : all_threads_safe ())
- if ((*callback) (tp, data))
+ if (callback (tp))
return tp;
return NULL;
@@ -1039,6 +1038,37 @@ pc_in_thread_step_range (CORE_ADDR pc, struct thread_info *thread)
&& pc < thread->control.step_range_end);
}
+/* The options for the "info threads" command. */
+
+struct info_threads_opts
+{
+ /* For "-gid". */
+ bool show_global_ids = false;
+ /* For "-running". */
+ bool show_running_threads = false;
+ /* For "-stopped". */
+ bool show_stopped_threads = false;
+};
+
+static const gdb::option::option_def info_threads_option_defs[] = {
+
+ gdb::option::flag_option_def<info_threads_opts> {
+ "gid",
+ [] (info_threads_opts *opts) { return &opts->show_global_ids; },
+ N_("Show global thread IDs."),
+ },
+ gdb::option::flag_option_def<info_threads_opts> {
+ "running",
+ [] (info_threads_opts *opts) { return &opts->show_running_threads; },
+ N_("Show running threads only."),
+ },
+ gdb::option::flag_option_def<info_threads_opts> {
+ "stopped",
+ [] (info_threads_opts *opts) { return &opts->show_stopped_threads; },
+ N_("Show stopped threads only."),
+ },
+};
+
/* Helper for print_thread_info. Returns true if THR should be
printed. If REQUESTED_THREADS, a list of GDB ids/ranges, is not
NULL, only print THR if its ID is included in the list. GLOBAL_IDS
@@ -1047,11 +1077,13 @@ pc_in_thread_step_range (CORE_ADDR pc, struct thread_info *thread)
is a thread from the process PID. Otherwise, threads from all
attached PIDs are printed. If both REQUESTED_THREADS is not NULL
and PID is not -1, then the thread is printed if it belongs to the
- specified process. Otherwise, an error is raised. */
+ specified process. Otherwise, an error is raised. OPTS is the
+ options of the "info threads" command. */
static bool
-should_print_thread (const char *requested_threads, int default_inf_num,
- int global_ids, int pid, struct thread_info *thr)
+should_print_thread (const char *requested_threads,
+ const info_threads_opts &opts, int default_inf_num,
+ int global_ids, int pid, thread_info *thr)
{
if (requested_threads != NULL && *requested_threads != '\0')
{
@@ -1076,7 +1108,17 @@ should_print_thread (const char *requested_threads, int default_inf_num,
if (thr->state == THREAD_EXITED)
return false;
- return true;
+ bool is_stopped = (thr->state == THREAD_STOPPED);
+ if (opts.show_stopped_threads && is_stopped)
+ return true;
+
+ bool is_running = (thr->state == THREAD_RUNNING);
+ if (opts.show_running_threads && is_running)
+ return true;
+
+ /* If the user did not pass a filter flag, show the thread. */
+ return (!opts.show_stopped_threads
+ && !opts.show_running_threads);
}
/* Return the string to display in "info threads"'s "Target Id"
@@ -1105,8 +1147,8 @@ thread_target_id_str (thread_info *tp)
static void
do_print_thread (ui_out *uiout, const char *requested_threads,
- int global_ids, int pid, int show_global_ids,
- int default_inf_num, thread_info *tp,
+ const info_threads_opts &opts, int global_ids,
+ int pid, int default_inf_num, thread_info *tp,
thread_info *current_thread)
{
int core;
@@ -1115,7 +1157,7 @@ do_print_thread (ui_out *uiout, const char *requested_threads,
if (current_thread != nullptr)
switch_to_thread (current_thread);
- if (!should_print_thread (requested_threads, default_inf_num,
+ if (!should_print_thread (requested_threads, opts, default_inf_num,
global_ids, pid, tp))
return;
@@ -1131,7 +1173,7 @@ do_print_thread (ui_out *uiout, const char *requested_threads,
uiout->field_string ("id-in-tg", print_thread_id (tp));
}
- if (show_global_ids || uiout->is_mi_like_p ())
+ if (opts.show_global_ids || uiout->is_mi_like_p ())
uiout->field_signed ("id", tp->global_num);
/* Switch to the thread (and inferior / target). */
@@ -1192,23 +1234,22 @@ do_print_thread (ui_out *uiout, const char *requested_threads,
static void
print_thread (ui_out *uiout, const char *requested_threads,
- int global_ids, int pid, int show_global_ids,
+ const info_threads_opts &opts, int global_ids, int pid,
int default_inf_num, thread_info *tp, thread_info *current_thread)
{
do_with_buffered_output (do_print_thread, uiout, requested_threads,
- global_ids, pid, show_global_ids,
- default_inf_num, tp, current_thread);
+ opts, global_ids, pid, default_inf_num, tp,
+ current_thread);
}
/* Like print_thread_info, but in addition, GLOBAL_IDS indicates
whether REQUESTED_THREADS is a list of global or per-inferior
- thread ids. */
+ thread ids. OPTS is the options of the "info threads" command. */
static void
print_thread_info_1 (struct ui_out *uiout, const char *requested_threads,
- int global_ids, int pid,
- int show_global_ids)
+ const info_threads_opts &opts, int global_ids, int pid)
{
int default_inf_num = current_inferior ()->num;
@@ -1236,19 +1277,21 @@ print_thread_info_1 (struct ui_out *uiout, const char *requested_threads,
list_emitter.emplace (uiout, "threads");
else
{
- int n_threads = 0;
+ int n_matching_threads = 0;
/* The width of the "Target Id" column. Grown below to
accommodate the largest entry. */
size_t target_id_col_width = 17;
for (thread_info *tp : all_threads ())
{
+ any_thread = true;
+
/* In case REQUESTED_THREADS contains $_thread. */
if (current_thread != nullptr)
switch_to_thread (current_thread);
- if (!should_print_thread (requested_threads, default_inf_num,
- global_ids, pid, tp))
+ if (!should_print_thread (requested_threads, opts,
+ default_inf_num, global_ids, pid, tp))
continue;
/* Switch inferiors so we're looking at the right
@@ -1259,25 +1302,24 @@ print_thread_info_1 (struct ui_out *uiout, const char *requested_threads,
= std::max (target_id_col_width,
thread_target_id_str (tp).size ());
- ++n_threads;
+ ++n_matching_threads;
}
- if (n_threads == 0)
+ if (n_matching_threads == 0)
{
- if (requested_threads == NULL || *requested_threads == '\0')
+ if (!any_thread)
uiout->message (_("No threads.\n"));
else
- uiout->message (_("No threads match '%s'.\n"),
- requested_threads);
+ uiout->message (_("No threads matched.\n"));
return;
}
- table_emitter.emplace (uiout, show_global_ids ? 5 : 4,
- n_threads, "threads");
+ table_emitter.emplace (uiout, opts.show_global_ids ? 5 : 4,
+ n_matching_threads, "threads");
uiout->table_header (1, ui_left, "current", "");
uiout->table_header (4, ui_left, "id-in-tg", "Id");
- if (show_global_ids)
+ if (opts.show_global_ids)
uiout->table_header (4, ui_left, "id", "GId");
uiout->table_header (target_id_col_width, ui_left,
"target-id", "Target Id");
@@ -1288,13 +1330,11 @@ print_thread_info_1 (struct ui_out *uiout, const char *requested_threads,
for (inferior *inf : all_inferiors ())
for (thread_info *tp : inf->threads ())
{
- any_thread = true;
-
if (tp == current_thread && tp->state == THREAD_EXITED)
current_exited = true;
- print_thread (uiout, requested_threads, global_ids, pid,
- show_global_ids, default_inf_num, tp, current_thread);
+ print_thread (uiout, requested_threads, opts, global_ids, pid,
+ default_inf_num, tp, current_thread);
}
/* This end scope restores the current thread and the frame
@@ -1323,27 +1363,10 @@ void
print_thread_info (struct ui_out *uiout, const char *requested_threads,
int pid)
{
- print_thread_info_1 (uiout, requested_threads, 1, pid, 0);
+ info_threads_opts opts;
+ print_thread_info_1 (uiout, requested_threads, opts, 1, pid);
}
-/* The options for the "info threads" command. */
-
-struct info_threads_opts
-{
- /* For "-gid". */
- bool show_global_ids = false;
-};
-
-static const gdb::option::option_def info_threads_option_defs[] = {
-
- gdb::option::flag_option_def<info_threads_opts> {
- "gid",
- [] (info_threads_opts *opts) { return &opts->show_global_ids; },
- N_("Show global thread IDs."),
- },
-
-};
-
/* Create an option_def_group for the "info threads" options, with
IT_OPTS as context. */
@@ -1368,7 +1391,7 @@ info_threads_command (const char *arg, int from_tty)
gdb::option::process_options
(&arg, gdb::option::PROCESS_OPTIONS_UNKNOWN_IS_ERROR, grp);
- print_thread_info_1 (current_uiout, arg, 0, -1, it_opts.show_global_ids);
+ print_thread_info_1 (current_uiout, arg, it_opts, 0, -1);
}
/* Completer for the "info threads" command. */
diff --git a/gdb/tic6x-linux-tdep.c b/gdb/tic6x-linux-tdep.c
index c214178..280d46d 100644
--- a/gdb/tic6x-linux-tdep.c
+++ b/gdb/tic6x-linux-tdep.c
@@ -1,5 +1,5 @@
/* GNU/Linux on TI C6x target support.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
Contributed by Yao Qi <yao@codesourcery.com>
This file is part of GDB.
diff --git a/gdb/tic6x-tdep.c b/gdb/tic6x-tdep.c
index c7e42b1..062a974 100644
--- a/gdb/tic6x-tdep.c
+++ b/gdb/tic6x-tdep.c
@@ -1,6 +1,6 @@
/* Target dependent code for GDB on TI C6x systems.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Andrew Jenner <andrew@codesourcery.com>
Contributed by Yao Qi <yao@codesourcery.com>
diff --git a/gdb/tic6x-tdep.h b/gdb/tic6x-tdep.h
index 03a8a3e..35e36a6 100644
--- a/gdb/tic6x-tdep.h
+++ b/gdb/tic6x-tdep.h
@@ -1,5 +1,5 @@
/* GNU/Linux on TI C6x target support.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
Contributed by Yao Qi <yao@codesourcery.com>
This file is part of GDB.
diff --git a/gdb/tid-parse.c b/gdb/tid-parse.c
index 442d5b3..4e45798 100644
--- a/gdb/tid-parse.c
+++ b/gdb/tid-parse.c
@@ -1,6 +1,6 @@
/* TID parsing for GDB, the GNU debugger.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/tid-parse.h b/gdb/tid-parse.h
index f971f91..752bf6b 100644
--- a/gdb/tid-parse.h
+++ b/gdb/tid-parse.h
@@ -1,6 +1,6 @@
/* TID parsing for GDB, the GNU debugger.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/tilegx-linux-nat.c b/gdb/tilegx-linux-nat.c
index 5755e70..bd077b2 100644
--- a/gdb/tilegx-linux-nat.c
+++ b/gdb/tilegx-linux-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux TILE-Gx.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/tilegx-linux-tdep.c b/gdb/tilegx-linux-tdep.c
index cec2be2..a0e6954 100644
--- a/gdb/tilegx-linux-tdep.c
+++ b/gdb/tilegx-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux on Tilera TILE-Gx processors.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/tilegx-tdep.c b/gdb/tilegx-tdep.c
index e2247d7..4922fff 100644
--- a/gdb/tilegx-tdep.c
+++ b/gdb/tilegx-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the Tilera TILE-Gx processor.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/tilegx-tdep.h b/gdb/tilegx-tdep.h
index 5430281..012b2e5 100644
--- a/gdb/tilegx-tdep.h
+++ b/gdb/tilegx-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for the Tilera TILE-Gx processor.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/top.c b/gdb/top.c
index b2575bc..25a2afe 100644
--- a/gdb/top.c
+++ b/gdb/top.c
@@ -1,6 +1,6 @@
/* Top level stuff for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -381,7 +381,7 @@ check_frame_language_change (void)
/* Warn the user if the working language does not match the language
of the current frame. Only warn the user if we are actually
running the program, i.e. there is a stack. */
- /* FIXME: This should be cacheing the frame and only running when
+ /* FIXME: This should be caching the frame and only running when
the frame changes. */
if (warn_frame_lang_mismatch && has_stack_frames ())
@@ -415,7 +415,7 @@ wait_sync_command_done (void)
point. */
scoped_enable_commit_resumed enable ("sync wait");
- while (gdb_do_one_event () >= 0)
+ while (current_interpreter ()->do_one_event () >= 0)
if (ui->prompt_state != PROMPT_BLOCKED)
break;
}
@@ -1031,7 +1031,7 @@ gdb_readline_wrapper (const char *prompt)
(*after_char_processing_hook) ();
gdb_assert (after_char_processing_hook == NULL);
- while (gdb_do_one_event () >= 0)
+ while (current_interpreter ()->do_one_event () >= 0)
if (gdb_readline_wrapper_done)
break;
diff --git a/gdb/top.h b/gdb/top.h
index 166845e..41af51a 100644
--- a/gdb/top.h
+++ b/gdb/top.h
@@ -1,6 +1,6 @@
/* Top level stuff for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/tracectf.c b/gdb/tracectf.c
index b4997f8..1650e67 100644
--- a/gdb/tracectf.c
+++ b/gdb/tracectf.c
@@ -1,6 +1,6 @@
/* CTF format support.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by Hui Zhu <hui_zhu@mentor.com>
Contributed by Yao Qi <yao@codesourcery.com>
diff --git a/gdb/tracectf.h b/gdb/tracectf.h
index 9f821c5..0d08ed7 100644
--- a/gdb/tracectf.h
+++ b/gdb/tracectf.h
@@ -1,6 +1,6 @@
/* CTF format support.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/tracefile-tfile.c b/gdb/tracefile-tfile.c
index b59b5c7..5f8b338 100644
--- a/gdb/tracefile-tfile.c
+++ b/gdb/tracefile-tfile.c
@@ -1,6 +1,6 @@
/* Trace file TFILE format support in GDB.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -194,12 +194,12 @@ tfile_write_status (struct trace_file_writer *self,
if (ts->start_time)
{
fprintf (writer->fp, ";starttime:%s",
- phex_nz (ts->start_time, sizeof (ts->start_time)));
+ phex_nz (ts->start_time));
}
if (ts->stop_time)
{
fprintf (writer->fp, ";stoptime:%s",
- phex_nz (ts->stop_time, sizeof (ts->stop_time)));
+ phex_nz (ts->stop_time));
}
if (ts->notes != NULL)
{
@@ -254,7 +254,7 @@ tfile_write_uploaded_tp (struct trace_file_writer *self,
char buf[MAX_TRACE_UPLOAD];
fprintf (writer->fp, "tp T%x:%s:%c:%x:%x",
- utp->number, phex_nz (utp->addr, sizeof (utp->addr)),
+ utp->number, phex_nz (utp->addr),
(utp->enabled ? 'E' : 'D'), utp->step, utp->pass);
if (utp->type == bp_fast_tracepoint)
fprintf (writer->fp, ":F%x", utp->orig_size);
@@ -265,10 +265,10 @@ tfile_write_uploaded_tp (struct trace_file_writer *self,
fprintf (writer->fp, "\n");
for (const auto &act : utp->actions)
fprintf (writer->fp, "tp A%x:%s:%s\n",
- utp->number, phex_nz (utp->addr, sizeof (utp->addr)), act.get ());
+ utp->number, phex_nz (utp->addr), act.get ());
for (const auto &act : utp->step_actions)
fprintf (writer->fp, "tp S%x:%s:%s\n",
- utp->number, phex_nz (utp->addr, sizeof (utp->addr)), act.get ());
+ utp->number, phex_nz (utp->addr), act.get ());
if (utp->at_string)
{
encode_source_string (utp->number, utp->addr,
@@ -290,7 +290,7 @@ tfile_write_uploaded_tp (struct trace_file_writer *self,
fprintf (writer->fp, "tp Z%s\n", buf);
}
fprintf (writer->fp, "tp V%x:%s:%x:%s\n",
- utp->number, phex_nz (utp->addr, sizeof (utp->addr)),
+ utp->number, phex_nz (utp->addr),
utp->hit_count,
phex_nz (utp->traceframe_usage,
sizeof (utp->traceframe_usage)));
diff --git a/gdb/tracefile.c b/gdb/tracefile.c
index 2d89ab7..dac2eb7 100644
--- a/gdb/tracefile.c
+++ b/gdb/tracefile.c
@@ -1,6 +1,6 @@
/* Trace file support in GDB.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/tracefile.h b/gdb/tracefile.h
index 028f70d..de7f8ea 100644
--- a/gdb/tracefile.h
+++ b/gdb/tracefile.h
@@ -1,5 +1,5 @@
/* Tracefile declarations
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/tracepoint.c b/gdb/tracepoint.c
index ca6f616..b431468 100644
--- a/gdb/tracepoint.c
+++ b/gdb/tracepoint.c
@@ -1,6 +1,6 @@
/* Tracing functionality for remote targets in custom GDB protocol
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -2818,7 +2818,7 @@ encode_source_string (int tpnum, ULONGEST addr,
if (80 + strlen (srctype) > buf_size)
error (_("Buffer too small for source encoding"));
sprintf (buf, "%x:%s:%s:%x:%x:",
- tpnum, phex_nz (addr, sizeof (addr)),
+ tpnum, phex_nz (addr),
srctype, 0, (int) strlen (src));
if (strlen (buf) + strlen (src) * 2 >= buf_size)
error (_("Source string too long for buffer"));
diff --git a/gdb/tracepoint.h b/gdb/tracepoint.h
index 029813b..94a7105 100644
--- a/gdb/tracepoint.h
+++ b/gdb/tracepoint.h
@@ -1,5 +1,5 @@
/* Data structures associated with tracepoints in GDB.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/trad-frame.c b/gdb/trad-frame.c
index 35bf02e..470f31d 100644
--- a/gdb/trad-frame.c
+++ b/gdb/trad-frame.c
@@ -1,6 +1,6 @@
/* Traditional frame unwind support, for GDB the GNU Debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/trad-frame.h b/gdb/trad-frame.h
index abbc631..9039e8b 100644
--- a/gdb/trad-frame.h
+++ b/gdb/trad-frame.h
@@ -1,6 +1,6 @@
/* Traditional frame unwind support, for GDB the GNU Debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/tramp-frame.c b/gdb/tramp-frame.c
index 9353cf6..0e31ad3 100644
--- a/gdb/tramp-frame.c
+++ b/gdb/tramp-frame.c
@@ -1,6 +1,6 @@
/* Signal trampoline unwinder, for GDB the GNU Debugger.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/tramp-frame.h b/gdb/tramp-frame.h
index a7288c1..2044441 100644
--- a/gdb/tramp-frame.h
+++ b/gdb/tramp-frame.h
@@ -1,6 +1,6 @@
/* Signal trampoline unwinder.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/transform.m4 b/gdb/transform.m4
index ef2c41c..d7ee188 100644
--- a/gdb/transform.m4
+++ b/gdb/transform.m4
@@ -1,4 +1,4 @@
-# Copyright (C) 2015-2024 Free Software Foundation, Inc.
+# Copyright (C) 2015-2025 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
diff --git a/gdb/tsan-suppressions.txt b/gdb/tsan-suppressions.txt
index fb654c4..ae221ed 100644
--- a/gdb/tsan-suppressions.txt
+++ b/gdb/tsan-suppressions.txt
@@ -1,4 +1,4 @@
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
diff --git a/gdb/tui/tui-command.c b/gdb/tui/tui-command.c
index 677721d..9bd33e2 100644
--- a/gdb/tui/tui-command.c
+++ b/gdb/tui/tui-command.c
@@ -1,6 +1,6 @@
/* Specific command window processing.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
diff --git a/gdb/tui/tui-command.h b/gdb/tui/tui-command.h
index 61f8cf3..2f82291 100644
--- a/gdb/tui/tui-command.h
+++ b/gdb/tui/tui-command.h
@@ -1,6 +1,6 @@
/* Specific command window processing.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
diff --git a/gdb/tui/tui-data.c b/gdb/tui/tui-data.c
index 962dbc5..7d1d055 100644
--- a/gdb/tui/tui-data.c
+++ b/gdb/tui/tui-data.c
@@ -1,6 +1,6 @@
/* TUI data manipulation routines.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
diff --git a/gdb/tui/tui-data.h b/gdb/tui/tui-data.h
index 6f2087b..dd33a59 100644
--- a/gdb/tui/tui-data.h
+++ b/gdb/tui/tui-data.h
@@ -1,6 +1,6 @@
/* TUI data manipulation routines.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
diff --git a/gdb/tui/tui-disasm.c b/gdb/tui/tui-disasm.c
index cd82853..5488760 100644
--- a/gdb/tui/tui-disasm.c
+++ b/gdb/tui/tui-disasm.c
@@ -1,6 +1,6 @@
/* Disassembly display.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
@@ -98,7 +98,7 @@ tui_disassemble (struct gdbarch *gdbarch,
CORE_ADDR pc, int count,
size_t *addr_size = nullptr)
{
- bool term_out = source_styling && gdb_stdout->can_emit_style_escape ();
+ bool term_out = disassembler_styling && gdb_stdout->can_emit_style_escape ();
string_file gdb_dis_out (term_out);
/* Must start with an empty list. */
@@ -485,12 +485,10 @@ tui_disasm_window::addr_is_displayed (CORE_ADDR addr) const
}
void
-tui_disasm_window::maybe_update (const frame_info_ptr &fi, symtab_and_line sal)
+tui_disasm_window::maybe_update (struct gdbarch *gdbarch, symtab_and_line sal)
{
CORE_ADDR low;
- struct gdbarch *frame_arch = get_frame_arch (fi);
-
if (find_pc_partial_function (sal.pc, NULL, &low, NULL) == 0)
{
/* There is no symbol available for current PC. There is no
@@ -498,7 +496,7 @@ tui_disasm_window::maybe_update (const frame_info_ptr &fi, symtab_and_line sal)
low = sal.pc;
}
else
- low = tui_get_low_disassembly_address (frame_arch, low, sal.pc);
+ low = tui_get_low_disassembly_address (gdbarch, low, sal.pc);
struct tui_line_or_address a;
@@ -507,7 +505,7 @@ tui_disasm_window::maybe_update (const frame_info_ptr &fi, symtab_and_line sal)
if (!addr_is_displayed (sal.pc))
{
sal.pc = low;
- update_source_window (frame_arch, sal);
+ update_source_window (gdbarch, sal);
}
else
{
diff --git a/gdb/tui/tui-disasm.h b/gdb/tui/tui-disasm.h
index a49719a..173cc8b 100644
--- a/gdb/tui/tui-disasm.h
+++ b/gdb/tui/tui-disasm.h
@@ -1,6 +1,6 @@
/* Disassembly display.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
@@ -42,7 +42,7 @@ struct tui_disasm_window : public tui_source_window_base
bool location_matches_p (struct bp_location *loc, int line_no) override;
- void maybe_update (const frame_info_ptr &fi, symtab_and_line sal) override;
+ void maybe_update (struct gdbarch *gdbarch, symtab_and_line sal) override;
void erase_source_content () override
{
diff --git a/gdb/tui/tui-file.c b/gdb/tui/tui-file.c
index 17ac138..39aee9f 100644
--- a/gdb/tui/tui-file.c
+++ b/gdb/tui/tui-file.c
@@ -1,5 +1,5 @@
/* UI_FILE - a generic STDIO like output stream.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/tui/tui-file.h b/gdb/tui/tui-file.h
index 6178a90..dbd6fa9 100644
--- a/gdb/tui/tui-file.h
+++ b/gdb/tui/tui-file.h
@@ -1,5 +1,5 @@
/* TUI_FILE - a STDIO-like output stream for the TUI.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/tui/tui-hooks.c b/gdb/tui/tui-hooks.c
index 25358d0..814ddac 100644
--- a/gdb/tui/tui-hooks.c
+++ b/gdb/tui/tui-hooks.c
@@ -1,6 +1,6 @@
/* GDB hooks for TUI.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -35,6 +35,7 @@
#include "tui/tui-regs.h"
#include "tui/tui-status.h"
#include "tui/tui-winsource.h"
+#include "tui/tui-wingeneral.h"
static void
tui_new_objfile_hook (struct objfile* objfile)
@@ -106,6 +107,8 @@ tui_refresh_frame_and_register_information ()
target_terminal::scoped_restore_terminal_state term_state;
target_terminal::ours_for_output ();
+ tui_batch_rendering defer;
+
if (from_stack)
{
frame_info_ptr fi;
@@ -150,6 +153,8 @@ tui_dummy_print_frame_info_listing_hook (struct symtab *s,
static void
tui_inferior_exit (struct inferior *inf)
{
+ tui_batch_rendering defer;
+
/* Leave the SingleKey mode to make sure the gdb prompt is visible. */
tui_set_key_mode (TUI_COMMAND_MODE);
tui_show_frame_info (0);
diff --git a/gdb/tui/tui-hooks.h b/gdb/tui/tui-hooks.h
index 21ba169..6fee785 100644
--- a/gdb/tui/tui-hooks.h
+++ b/gdb/tui/tui-hooks.h
@@ -1,6 +1,6 @@
/* External/Public TUI hools header file, for GDB the GNU debugger.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/tui/tui-interp.c b/gdb/tui/tui-interp.c
index 25761be..53acf82 100644
--- a/gdb/tui/tui-interp.c
+++ b/gdb/tui/tui-interp.c
@@ -1,6 +1,6 @@
/* TUI Interpreter definitions for GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/tui/tui-io.c b/gdb/tui/tui-io.c
index e64f0dd..1b4cc82 100644
--- a/gdb/tui/tui-io.c
+++ b/gdb/tui/tui-io.c
@@ -1,6 +1,6 @@
/* TUI support I/O functions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
@@ -42,12 +42,12 @@
#include "gdbsupport/filestuff.h"
#include "completer.h"
#include "gdb_curses.h"
-#include <map>
+#include "gdbsupport/unordered_map.h"
#include "pager.h"
#include "gdbsupport/gdb-checked-static-cast.h"
/* This redefines CTRL if it is not already defined, so it must come
- after terminal state releated include files like <term.h> and
+ after terminal state related include files like <term.h> and
"gdb_curses.h". */
#include "readline/readline.h"
@@ -178,9 +178,19 @@ tui_putc (char c)
update_cmdwin_start_line ();
}
+/* Hasher for colors. */
+
+struct color_hash
+{
+ size_t operator() (const ui_file_style::color &color) const noexcept
+ {
+ return color.hash ();
+ }
+};
+
/* This maps colors to their corresponding color index. */
-static std::map<ui_file_style::color, int> color_map;
+static gdb::unordered_map<ui_file_style::color, int, color_hash> color_map;
/* This holds a pair of colors and is used to track the mapping
between a color pair index and the actual colors. */
@@ -190,16 +200,27 @@ struct color_pair
int fg;
int bg;
- bool operator< (const color_pair &o) const
+ bool operator== (const color_pair &other) const noexcept
+ {
+ return fg == other.fg && bg == other.bg;
+ }
+};
+
+struct color_pair_hash
+{
+ using is_avalanching = void;
+
+ size_t operator() (const color_pair &val) const noexcept
{
- return fg < o.fg || (fg == o.fg && bg < o.bg);
+ static_assert (std::has_unique_object_representations_v<color_pair>);
+ return ankerl::unordered_dense::detail::wyhash::hash (&val, sizeof (val));
}
};
/* This maps pairs of colors to their corresponding color pair
index. */
-static std::map<color_pair, int> color_pair_map;
+static gdb::unordered_map<color_pair, int, color_pair_hash> color_pair_map;
/* This is indexed by ANSI color offset from the base color, and holds
the corresponding curses color constant. */
diff --git a/gdb/tui/tui-io.h b/gdb/tui/tui-io.h
index 66b3b90..aa931f8 100644
--- a/gdb/tui/tui-io.h
+++ b/gdb/tui/tui-io.h
@@ -1,6 +1,6 @@
/* TUI support I/O functions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c
index 79b7289..73ba0c6 100644
--- a/gdb/tui/tui-layout.c
+++ b/gdb/tui/tui-layout.c
@@ -1,6 +1,6 @@
/* TUI layout window management.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
@@ -24,7 +24,7 @@
#include "frame.h"
#include "cli/cli-decode.h"
#include "cli/cli-utils.h"
-#include <unordered_set>
+#include "gdbsupport/unordered_set.h"
#include "tui/tui.h"
#include "tui/tui-command.h"
@@ -1221,7 +1221,7 @@ tui_new_layout_command (const char *spec, int from_tty)
std::vector<std::unique_ptr<tui_layout_split>> splits;
splits.emplace_back (new tui_layout_split (is_vertical));
- std::unordered_set<std::string> seen_windows;
+ gdb::unordered_set<std::string> seen_windows;
while (true)
{
spec = skip_spaces (spec);
diff --git a/gdb/tui/tui-layout.h b/gdb/tui/tui-layout.h
index 22d7c72..6046bb6 100644
--- a/gdb/tui/tui-layout.h
+++ b/gdb/tui/tui-layout.h
@@ -1,6 +1,6 @@
/* TUI layout window management.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
@@ -27,8 +27,7 @@
#include "tui/tui.h"
#include "tui/tui-data.h"
#include "gdbsupport/iterator-range.h"
-
-#include <unordered_map>
+#include "gdbsupport/unordered_map.h"
/* Values that can be returned when handling a request to adjust a
window's size. */
@@ -368,7 +367,7 @@ typedef std::function<tui_win_info * (const char *name)> window_factory;
/* The type for a data structure that maps a window name to that window's
factory function. */
-typedef std::unordered_map<std::string, window_factory> window_types_map;
+typedef gdb::unordered_map<std::string, window_factory> window_types_map;
/* Register a new TUI window type. NAME is the name of the window
type. FACTORY is a function that can be called to instantiate the
diff --git a/gdb/tui/tui-location.c b/gdb/tui/tui-location.c
index 8e63d4f..24a14fb 100644
--- a/gdb/tui/tui-location.c
+++ b/gdb/tui/tui-location.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/tui/tui-location.h b/gdb/tui/tui-location.h
index 5eda4bd..eecefbc 100644
--- a/gdb/tui/tui-location.h
+++ b/gdb/tui/tui-location.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/tui/tui-regs.c b/gdb/tui/tui-regs.c
index 5158c06..0b8cb85 100644
--- a/gdb/tui/tui-regs.c
+++ b/gdb/tui/tui-regs.c
@@ -1,6 +1,6 @@
/* TUI display registers in window.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
diff --git a/gdb/tui/tui-regs.h b/gdb/tui/tui-regs.h
index 48f6aa0..5f7afa6 100644
--- a/gdb/tui/tui-regs.h
+++ b/gdb/tui/tui-regs.h
@@ -1,6 +1,6 @@
/* TUI display registers in window.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
diff --git a/gdb/tui/tui-source.c b/gdb/tui/tui-source.c
index 9a0a041..e2dff84 100644
--- a/gdb/tui/tui-source.c
+++ b/gdb/tui/tui-source.c
@@ -1,6 +1,6 @@
/* TUI display source window.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
@@ -207,7 +207,7 @@ tui_source_window::line_is_displayed (int line) const
}
void
-tui_source_window::maybe_update (const frame_info_ptr &fi, symtab_and_line sal)
+tui_source_window::maybe_update (struct gdbarch *gdbarch, symtab_and_line sal)
{
int start_line = (sal.line - ((height - box_size ()) / 2)) + 1;
if (start_line <= 0)
@@ -219,7 +219,7 @@ tui_source_window::maybe_update (const frame_info_ptr &fi, symtab_and_line sal)
if (!(source_already_displayed && line_is_displayed (sal.line)))
{
sal.line = start_line;
- update_source_window (get_frame_arch (fi), sal);
+ update_source_window (gdbarch, sal);
}
else
{
diff --git a/gdb/tui/tui-source.h b/gdb/tui/tui-source.h
index 9cad4ff..626ac40 100644
--- a/gdb/tui/tui-source.h
+++ b/gdb/tui/tui-source.h
@@ -1,6 +1,6 @@
/* TUI display source window.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
@@ -46,7 +46,7 @@ struct tui_source_window : public tui_source_window_base
bool showing_source_p (const char *filename) const;
- void maybe_update (const frame_info_ptr &fi, symtab_and_line sal) override;
+ void maybe_update (struct gdbarch *gdbarch, symtab_and_line sal) override;
void erase_source_content () override
{
diff --git a/gdb/tui/tui-status.c b/gdb/tui/tui-status.c
index 5239415..484f4e5 100644
--- a/gdb/tui/tui-status.c
+++ b/gdb/tui/tui-status.c
@@ -1,6 +1,6 @@
/* TUI status line.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
@@ -253,8 +253,8 @@ tui_status_window::rerender ()
waddstr (handle.get (), string.c_str ());
wclrtoeol (handle.get ());
(void) wstandend (handle.get ());
+
refresh_window ();
- wmove (handle.get (), 0, 0);
}
/* Function to print the frame information for the TUI. The windows
@@ -278,8 +278,9 @@ tui_show_frame_info (const frame_info_ptr &fi)
else
func_name = _("<unavailable>");
+ struct gdbarch *gdbarch = get_frame_arch (fi);
status_changed_p
- = tui_location.set_location (get_frame_arch (fi), sal, func_name);
+ = tui_location.set_location (gdbarch, sal, func_name);
/* If the status information has not changed, then frame information has
not changed. If frame information has not changed, then the windows'
@@ -289,7 +290,7 @@ tui_show_frame_info (const frame_info_ptr &fi)
for (struct tui_source_window_base *win_info : tui_source_windows ())
{
- win_info->maybe_update (fi, sal);
+ win_info->maybe_update (gdbarch, sal);
win_info->update_exec_info ();
}
}
diff --git a/gdb/tui/tui-status.h b/gdb/tui/tui-status.h
index 8b507fd..2a84732 100644
--- a/gdb/tui/tui-status.h
+++ b/gdb/tui/tui-status.h
@@ -1,6 +1,6 @@
/* TUI status line.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
diff --git a/gdb/tui/tui-win.c b/gdb/tui/tui-win.c
index 33b24d8..f44600d 100644
--- a/gdb/tui/tui-win.c
+++ b/gdb/tui/tui-win.c
@@ -1,6 +1,6 @@
/* TUI window generic functions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
@@ -969,6 +969,8 @@ tui_set_win_size (const char *arg, bool set_width_p)
new_size = curr_size + input_no;
}
+ tui_batch_rendering defer;
+
/* Now change the window's height, and adjust
all other windows around it. */
if (set_width_p)
diff --git a/gdb/tui/tui-win.h b/gdb/tui/tui-win.h
index 1521993..64153cf 100644
--- a/gdb/tui/tui-win.h
+++ b/gdb/tui/tui-win.h
@@ -1,6 +1,6 @@
/* TUI window generic functions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
diff --git a/gdb/tui/tui-wingeneral.c b/gdb/tui/tui-wingeneral.c
index 369d152..de4ef52 100644
--- a/gdb/tui/tui-wingeneral.c
+++ b/gdb/tui/tui-wingeneral.c
@@ -1,6 +1,6 @@
/* General window behavior.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
@@ -56,7 +56,12 @@ void
tui_win_info::refresh_window ()
{
if (handle != NULL)
- wnoutrefresh (handle.get ());
+ {
+ if (suppress_output)
+ wnoutrefresh (handle.get ());
+ else
+ wrefresh (handle.get ());
+ }
}
/* Draw a border around the window. */
@@ -75,7 +80,7 @@ box_win (struct tui_win_info *win_info,
/* tui_apply_style resets the style entirely, so be sure to call it
before applying ATTRS. */
- if (cli_styling)
+ if (term_cli_styling ())
tui_apply_style (win, (highlight_flag
? tui_active_border_style.style ()
: tui_border_style.style ()));
diff --git a/gdb/tui/tui-wingeneral.h b/gdb/tui/tui-wingeneral.h
index b037e79..0e0e5fe 100644
--- a/gdb/tui/tui-wingeneral.h
+++ b/gdb/tui/tui-wingeneral.h
@@ -1,6 +1,6 @@
/* General window behavior.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c
index 83d9fc0..a545c48 100644
--- a/gdb/tui/tui-winsource.c
+++ b/gdb/tui/tui-winsource.c
@@ -1,6 +1,6 @@
/* TUI display source/assembly window.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
@@ -37,6 +37,7 @@
#include "tui/tui-source.h"
#include "tui/tui-disasm.h"
#include "tui/tui-location.h"
+#include "tui/tui-wingeneral.h"
#include "gdb_curses.h"
/* Function to display the "main" routine. */
@@ -52,10 +53,10 @@ tui_display_main ()
tui_get_begin_asm_address (&gdbarch, &addr);
if (addr != (CORE_ADDR) 0)
{
- struct symtab *s;
+ tui_batch_rendering defer;
tui_update_source_windows_with_addr (gdbarch, addr);
- s = find_pc_line_symtab (addr);
+ struct symtab *s = find_pc_line_symtab (addr);
tui_location.set_location (s);
}
}
@@ -184,7 +185,7 @@ tui_source_window_base::update_source_window_with_addr (struct gdbarch *gdbarch,
if (addr != 0)
sal = find_pc_line (addr, 0);
- update_source_window (gdbarch, sal);
+ maybe_update (gdbarch, sal);
}
/* Function to ensure that the source and/or disassembly windows
@@ -455,25 +456,15 @@ tui_source_window_base::rerender ()
}
else if (deprecated_safe_get_selected_frame () != NULL)
{
- symtab_and_line cursal
- = get_current_source_symtab_and_line (current_program_space);
frame_info_ptr frame = deprecated_safe_get_selected_frame ();
- struct gdbarch *gdbarch = get_frame_arch (frame);
-
- struct symtab *s = find_pc_line_symtab (get_frame_pc (frame));
- if (this != tui_src_win ())
- find_line_pc (s, cursal.line, &cursal.pc);
-
- /* This centering code is copied from tui_source_window::maybe_update.
- It would be nice to do centering more often, and do it in just one
- location. But since this is a regression fix, handle this
- conservatively for now. */
- int start_line = (cursal.line - ((height - box_size ()) / 2)) + 1;
- if (start_line <= 0)
- start_line = 1;
- cursal.line = start_line;
-
- update_source_window (gdbarch, cursal);
+ symtab_and_line sal = find_frame_sal (frame);
+
+ /* find_frame_sal does not always set SAL.PC, but we want to ensure
+ that it is available in the SAL before updating the window. */
+ get_frame_pc_if_available (frame, &sal.pc);
+
+ maybe_update (get_frame_arch (frame), sal);
+ update_exec_info (false);
}
else
{
@@ -607,6 +598,8 @@ tui_source_window_base::set_is_exec_point_at (struct tui_line_or_address l)
void
tui_update_all_breakpoint_info (struct breakpoint *being_deleted)
{
+ tui_batch_rendering defer;
+
for (tui_source_window_base *win : tui_source_windows ())
{
if (win->update_breakpoint_info (being_deleted, false))
diff --git a/gdb/tui/tui-winsource.h b/gdb/tui/tui-winsource.h
index 2883ec9..b531f0e 100644
--- a/gdb/tui/tui-winsource.h
+++ b/gdb/tui/tui-winsource.h
@@ -1,6 +1,6 @@
/* TUI display source/assembly window.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
@@ -160,7 +160,7 @@ public:
/* Update the window to display the given location. Does nothing if
the location is already displayed. */
- virtual void maybe_update (const frame_info_ptr &fi, symtab_and_line sal) = 0;
+ virtual void maybe_update (struct gdbarch *gdbarch, symtab_and_line sal) = 0;
void update_source_window_as_is (struct gdbarch *gdbarch,
const struct symtab_and_line &sal);
diff --git a/gdb/tui/tui.c b/gdb/tui/tui.c
index 59aa1bc..2c7a6a0 100644
--- a/gdb/tui/tui.c
+++ b/gdb/tui/tui.c
@@ -1,6 +1,6 @@
/* General functions for the WDB TUI.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
@@ -61,13 +61,18 @@ show_tui_debug (struct ui_file *file, int from_tty,
}
/* This redefines CTRL if it is not already defined, so it must come
- after terminal state releated include files like <term.h> and
+ after terminal state related include files like <term.h> and
"gdb_curses.h". */
#include "readline/readline.h"
/* Tells whether the TUI is active or not. */
bool tui_active = false;
-static bool tui_finish_init = true;
+
+/* Tells whether the TUI should do deferred curses initialization.
+ If TRIBOOL_TRUE, then yes. If TRIBOOL_FALSE. then no (because
+ initialization is already done). If TRIBOOL_UNKNOWN, then no (because
+ initialization failed). */
+static tribool tui_finish_init = TRIBOOL_TRUE;
enum tui_key_mode tui_current_key_mode = TUI_COMMAND_MODE;
@@ -387,10 +392,18 @@ tui_enable (void)
if (tui_active)
return;
+ tui_batch_rendering defer;
+
/* To avoid to initialize curses when gdb starts, there is a deferred
curses initialization. This initialization is made only once
and the first time the curses mode is entered. */
- if (tui_finish_init)
+ if (tui_finish_init == TRIBOOL_UNKNOWN)
+ {
+ /* Initialization failed before, just throw a generic error, don't try
+ again. */
+ error (_("Cannot enable the TUI"));
+ }
+ else if (tui_finish_init == TRIBOOL_TRUE)
{
WINDOW *w;
SCREEN *s;
@@ -410,6 +423,9 @@ tui_enable (void)
if (!gdb_stderr->isatty ())
error (_("Cannot enable the TUI when output is not a terminal"));
+ /* Don't try initialization again. */
+ tui_finish_init = TRIBOOL_UNKNOWN;
+
s = newterm (NULL, stdout, stdin);
#ifdef __MINGW32__
/* The MinGW port of ncurses requires $TERM to be unset in order
@@ -468,7 +484,7 @@ tui_enable (void)
tui_set_win_focus_to (tui_src_win ());
keypad (tui_cmd_win ()->handle.get (), TRUE);
wrefresh (tui_cmd_win ()->handle.get ());
- tui_finish_init = false;
+ tui_finish_init = TRIBOOL_FALSE;
}
else
{
diff --git a/gdb/tui/tui.h b/gdb/tui/tui.h
index 319bd2e..3a9d955 100644
--- a/gdb/tui/tui.h
+++ b/gdb/tui/tui.h
@@ -1,6 +1,6 @@
/* External/Public TUI Header File.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Hewlett-Packard Company.
diff --git a/gdb/type-codes.def b/gdb/type-codes.def
index 50af1ae..e52650d 100644
--- a/gdb/type-codes.def
+++ b/gdb/type-codes.def
@@ -1,6 +1,6 @@
/* Type codes for GDB.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/type-stack.c b/gdb/type-stack.c
index 09348df..fc12e5e 100644
--- a/gdb/type-stack.c
+++ b/gdb/type-stack.c
@@ -1,6 +1,6 @@
/* Type stack for GDB parser.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/type-stack.h b/gdb/type-stack.h
index 87c0fe2..af5a89d 100644
--- a/gdb/type-stack.h
+++ b/gdb/type-stack.h
@@ -1,6 +1,6 @@
/* Type stack for GDB parser.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/typeprint.c b/gdb/typeprint.c
index 6494103..4bc5947 100644
--- a/gdb/typeprint.c
+++ b/gdb/typeprint.c
@@ -1,6 +1,6 @@
/* Language independent support for printing types for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/typeprint.h b/gdb/typeprint.h
index 7f1fbf4..21931e7 100644
--- a/gdb/typeprint.h
+++ b/gdb/typeprint.h
@@ -1,5 +1,5 @@
/* Language independent support for printing types for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ui-file.c b/gdb/ui-file.c
index dd15ea4..f86b6b1 100644
--- a/gdb/ui-file.c
+++ b/gdb/ui-file.c
@@ -1,6 +1,6 @@
/* UI_FILE - a generic STDIO like output stream.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -88,18 +88,6 @@ ui_file::emit_style_escape (const ui_file_style &style)
/* See ui-file.h. */
void
-ui_file::reset_style ()
-{
- if (can_emit_style_escape ())
- {
- m_applied_style = ui_file_style ();
- this->puts (m_applied_style.to_ansi ().c_str ());
- }
-}
-
-/* See ui-file.h. */
-
-void
ui_file::printchar (int c, int quoter, bool async_safe)
{
char buf[4];
@@ -180,32 +168,6 @@ null_file::write_async_safe (const char *buf, long sizeof_buf)
-/* true if the gdb terminal supports styling, and styling is enabled. */
-
-static bool
-term_cli_styling ()
-{
- if (!cli_styling)
- return false;
-
- const char *term = getenv ("TERM");
- /* Windows doesn't by default define $TERM, but can support styles
- regardless. */
-#ifndef _WIN32
- if (term == nullptr || !strcmp (term, "dumb"))
- return false;
-#else
- /* But if they do define $TERM, let us behave the same as on Posix
- platforms, for the benefit of programs which invoke GDB as their
- back-end. */
- if (term && !strcmp (term, "dumb"))
- return false;
-#endif
- return true;
-}
-
-
-
string_file::~string_file ()
{}
diff --git a/gdb/ui-file.h b/gdb/ui-file.h
index 5379bb3..3919e52 100644
--- a/gdb/ui-file.h
+++ b/gdb/ui-file.h
@@ -1,5 +1,5 @@
/* UI_FILE - a generic STDIO like output stream.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -123,9 +123,6 @@ public:
/* Emit an ANSI style escape for STYLE. */
virtual void emit_style_escape (const ui_file_style &style);
- /* Rest the current output style to the empty style. */
- virtual void reset_style ();
-
/* Print STR, bypassing any paging that might be done by this
ui_file. Note that nearly no code should call this -- it's
intended for use by gdb_printf, but nothing else. */
@@ -353,12 +350,6 @@ public:
m_two->emit_style_escape (style);
}
- void reset_style () override
- {
- m_one->reset_style ();
- m_two->reset_style ();
- }
-
void puts_unfiltered (const char *str) override
{
m_one->puts_unfiltered (str);
@@ -389,10 +380,6 @@ public:
void emit_style_escape (const ui_file_style &style) override
{
}
-
- void reset_style () override
- {
- }
};
/* A base class for ui_file types that wrap another ui_file. */
@@ -419,10 +406,6 @@ public:
void emit_style_escape (const ui_file_style &style) override
{ m_stream->emit_style_escape (style); }
- /* Rest the current output style to the empty style. */
- void reset_style () override
- { m_stream->reset_style (); }
-
int fd () const override
{ return m_stream->fd (); }
diff --git a/gdb/ui-out.c b/gdb/ui-out.c
index 41ce6ef..106a896 100644
--- a/gdb/ui-out.c
+++ b/gdb/ui-out.c
@@ -1,6 +1,6 @@
/* Output generating routines for GDB.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
Written by Fernando Nasser for Cygnus.
diff --git a/gdb/ui-out.h b/gdb/ui-out.h
index 5d03281..1796e9c 100644
--- a/gdb/ui-out.h
+++ b/gdb/ui-out.h
@@ -1,6 +1,6 @@
/* Output generating routines for GDB.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
Written by Fernando Nasser for Cygnus.
diff --git a/gdb/ui-style.c b/gdb/ui-style.c
index f0a8e81..b8d73ab 100644
--- a/gdb/ui-style.c
+++ b/gdb/ui-style.c
@@ -1,5 +1,5 @@
/* Styling for ui_file
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -45,7 +45,8 @@ static const char ansi_regex_text[] =
/* The compiled form of ansi_regex_text. */
-static regex_t ansi_regex;
+static compiled_regex ansi_regex (ansi_regex_text, REG_EXTENDED,
+ _("Error in ANSI terminal escape sequences regex"));
/* This maps 8-color palette to RGB triples. The values come from
plain linux terminal. */
@@ -364,7 +365,7 @@ ui_file_style::parse (const char *buf, size_t *n_read)
{
regmatch_t subexps[NUM_SUBEXPRESSIONS];
- int match = regexec (&ansi_regex, buf, ARRAY_SIZE (subexps), subexps, 0);
+ int match = ansi_regex.exec (buf, ARRAY_SIZE (subexps), subexps, 0);
if (match == REG_NOMATCH)
{
*n_read = 0;
@@ -531,7 +532,7 @@ skip_ansi_escape (const char *buf, int *n_read)
{
regmatch_t subexps[NUM_SUBEXPRESSIONS];
- int match = regexec (&ansi_regex, buf, ARRAY_SIZE (subexps), subexps, 0);
+ int match = ansi_regex.exec (buf, ARRAY_SIZE (subexps), subexps, 0);
if (match == REG_NOMATCH || buf[subexps[FINAL_SUBEXP].rm_so] != 'm')
return false;
@@ -539,16 +540,6 @@ skip_ansi_escape (const char *buf, int *n_read)
return true;
}
-void _initialize_ui_style ();
-void
-_initialize_ui_style ()
-{
- int code = regcomp (&ansi_regex, ansi_regex_text, REG_EXTENDED);
- /* If the regular expression was incorrect, it was a programming
- error. */
- gdb_assert (code == 0);
-}
-
/* See ui-style.h. */
const std::vector<color_space> &
diff --git a/gdb/ui-style.h b/gdb/ui-style.h
index d814588..77a175d 100644
--- a/gdb/ui-style.h
+++ b/gdb/ui-style.h
@@ -1,5 +1,5 @@
/* Styling for ui_file
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -151,22 +151,12 @@ struct ui_file_style
return ! (*this == other);
}
- bool operator< (const color &other) const
+ /* Compute a simple hash code for this object. */
+ size_t hash () const
{
- if (m_color_space != other.m_color_space)
- return m_color_space < other.m_color_space;
if (is_simple ())
- return m_value < other.m_value;
- if (m_red < other.m_red)
- return true;
- if (m_red == other.m_red)
- {
- if (m_green < other.m_green)
- return true;
- if (m_green == other.m_green)
- return m_blue < other.m_blue;
- }
- return false;
+ return m_value;
+ return (m_red << 16) + (m_green << 8) + m_red;
}
color_space colorspace () const
diff --git a/gdb/ui.c b/gdb/ui.c
index 88a3a14..d67ab2c 100644
--- a/gdb/ui.c
+++ b/gdb/ui.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/ui.h b/gdb/ui.h
index 3380bf2..4192757 100644
--- a/gdb/ui.h
+++ b/gdb/ui.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2023-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/array-view-selftests.c b/gdb/unittests/array-view-selftests.c
index c07b572..fa96d3b 100644
--- a/gdb/unittests/array-view-selftests.c
+++ b/gdb/unittests/array-view-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for array_view for GDB, the GNU debugger.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -554,6 +554,19 @@ run_tests ()
SELF_CHECK (view[i] == data[i]);
}
+ /* gdb::make_array_view with an array. */
+ {
+ const gdb_byte data[] = {0x55, 0x66, 0x77, 0x88};
+ const auto len = sizeof (data) / sizeof (data[0]);
+ const auto view = gdb::make_array_view (data);
+
+ SELF_CHECK (view.data () == data);
+ SELF_CHECK (view.size () == len);
+
+ for (std::size_t i = 0; i < len; ++i)
+ SELF_CHECK (view[i] == data[i]);
+ }
+
/* Test slicing. */
{
gdb_byte data[] = {0x55, 0x66, 0x77, 0x88, 0x99};
diff --git a/gdb/unittests/child-path-selftests.c b/gdb/unittests/child-path-selftests.c
index 4c4014d..0f29f7d 100644
--- a/gdb/unittests/child-path-selftests.c
+++ b/gdb/unittests/child-path-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for child_path for GDB, the GNU debugger.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/cli-utils-selftests.c b/gdb/unittests/cli-utils-selftests.c
index 6ade3af..e6c64a9 100644
--- a/gdb/unittests/cli-utils-selftests.c
+++ b/gdb/unittests/cli-utils-selftests.c
@@ -1,6 +1,6 @@
/* Unit tests for the cli-utils.c file.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/command-def-selftests.c b/gdb/unittests/command-def-selftests.c
index cf51f0d..6f169f5 100644
--- a/gdb/unittests/command-def-selftests.c
+++ b/gdb/unittests/command-def-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for GDB command definitions for GDB, the GNU debugger.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -20,8 +20,7 @@
#include "cli/cli-cmds.h"
#include "cli/cli-decode.h"
#include "gdbsupport/selftest.h"
-
-#include <map>
+#include "gdbsupport/unordered_map.h"
namespace selftests {
@@ -134,7 +133,7 @@ static unsigned int nr_invalid_prefixcmd = 0;
/* A map associating a list with the prefix leading to it. */
-static std::map<cmd_list_element **, const char *> lists;
+static gdb::unordered_map<cmd_list_element **, const char *> lists;
/* Store each command list in lists, associated with the prefix to reach it. A
list must only be found once.
diff --git a/gdb/unittests/common-utils-selftests.c b/gdb/unittests/common-utils-selftests.c
index e66e380..fab9cd1 100644
--- a/gdb/unittests/common-utils-selftests.c
+++ b/gdb/unittests/common-utils-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for general utility routines for GDB, the GNU debugger.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/copy_bitwise-selftests.c b/gdb/unittests/copy_bitwise-selftests.c
index c9f61b0..8798cbd 100644
--- a/gdb/unittests/copy_bitwise-selftests.c
+++ b/gdb/unittests/copy_bitwise-selftests.c
@@ -1,6 +1,6 @@
/* Self tests of the copy_bitwise routine for GDB, the GNU debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/enum-flags-selftests.c b/gdb/unittests/enum-flags-selftests.c
index f192da3..bb55019 100644
--- a/gdb/unittests/enum-flags-selftests.c
+++ b/gdb/unittests/enum-flags-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for enum-flags for GDB, the GNU debugger.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/environ-selftests.c b/gdb/unittests/environ-selftests.c
index 9bd7360..79bffed 100644
--- a/gdb/unittests/environ-selftests.c
+++ b/gdb/unittests/environ-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for gdb_environ for GDB, the GNU debugger.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/filtered_iterator-selftests.c b/gdb/unittests/filtered_iterator-selftests.c
index dc76fe0..b3ec70b 100644
--- a/gdb/unittests/filtered_iterator-selftests.c
+++ b/gdb/unittests/filtered_iterator-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for the filtered_iterator class.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/format_pieces-selftests.c b/gdb/unittests/format_pieces-selftests.c
index a01f248..473d690 100644
--- a/gdb/unittests/format_pieces-selftests.c
+++ b/gdb/unittests/format_pieces-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for format_pieces for GDB, the GNU debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/frame_info_ptr-selftests.c b/gdb/unittests/frame_info_ptr-selftests.c
index ec83024..c9eb4f4 100644
--- a/gdb/unittests/frame_info_ptr-selftests.c
+++ b/gdb/unittests/frame_info_ptr-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for frame_info_ptr.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/function-view-selftests.c b/gdb/unittests/function-view-selftests.c
index dc1a630..036c7f9 100644
--- a/gdb/unittests/function-view-selftests.c
+++ b/gdb/unittests/function-view-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for function_view for GDB, the GNU debugger.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/gdb_tilde_expand-selftests.c b/gdb/unittests/gdb_tilde_expand-selftests.c
index 165885f..b0b7027 100644
--- a/gdb/unittests/gdb_tilde_expand-selftests.c
+++ b/gdb/unittests/gdb_tilde_expand-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for gdb_tilde_expand
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/gmp-utils-selftests.c b/gdb/unittests/gmp-utils-selftests.c
index f8f9781..495947af 100644
--- a/gdb/unittests/gmp-utils-selftests.c
+++ b/gdb/unittests/gmp-utils-selftests.c
@@ -1,6 +1,6 @@
/* Self tests of the gmp-utils API.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -155,7 +155,7 @@ gdb_mpz_as_integer_out_of_range ()
to provide a bit more information about the kind of values
that were used when the check failed. This makes the writing
of the tests a little more verbose, but the debugging in case
- of problems should hopefuly be easier. */
+ of problems should hopefully be easier. */
template<typename T>
void
@@ -287,7 +287,7 @@ gdb_mpz_read_min_max ()
to provide a bit more information about the kind of values
that were used when the check failed. This makes the writing
of the tests a little more verbose, but the debugging in case
- of problems should hopefuly be easier. */
+ of problems should hopefully be easier. */
template<typename T>
T
@@ -384,7 +384,7 @@ gdb_mpz_write_min_max ()
to provide a bit more information about the kind of values
that were used when the check failed. This makes the writing
of the tests a little more verbose, but the debugging in case
- of problems should hopefuly be easier. */
+ of problems should hopefully be easier. */
static void
read_fp_test (int unscaled, const gdb_mpq &scaling_factor,
diff --git a/gdb/unittests/intrusive_list-selftests.c b/gdb/unittests/intrusive_list-selftests.c
index fbd89ed..eaffbba 100644
--- a/gdb/unittests/intrusive_list-selftests.c
+++ b/gdb/unittests/intrusive_list-selftests.c
@@ -1,5 +1,5 @@
-/* Tests fpr intrusive double linked list for GDB, the GNU debugger.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+/* Tests for intrusive double linked list for GDB, the GNU debugger.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -20,7 +20,7 @@
#include "gdbsupport/intrusive_list.h"
#include "gdbsupport/owning_intrusive_list.h"
#include "gdbsupport/selftest.h"
-#include <unordered_set>
+#include "gdbsupport/unordered_set.h"
/* Count of how many item_with_base or item_with_member objects are
currently alive. */
@@ -717,7 +717,7 @@ struct intrusive_list_test
item_type a ("a"), b ("b"), c ("c");
ListType list;
std::vector<const item_type *> expected;
- std::unordered_set<const item_type *> disposer_seen;
+ gdb::unordered_set<const item_type *> disposer_seen;
int disposer_calls = 0;
list.push_back (a);
diff --git a/gdb/unittests/lookup_name_info-selftests.c b/gdb/unittests/lookup_name_info-selftests.c
index fe87bed..3e8440b 100644
--- a/gdb/unittests/lookup_name_info-selftests.c
+++ b/gdb/unittests/lookup_name_info-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for lookup_name_info for GDB, the GNU debugger.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -96,11 +96,14 @@ run_tests ()
CHECK (language_cplus, "A::B::C()", "A::B::C");
CHECK (language_cplus, "A::B::C", "A::B::C");
+ CHECK (language_cplus, "Foozle<int>::fogey<Empty<int>> (Empty<int>)",
+ "Foozle<int>::fogey<Empty<int> >");
+
#undef CHECK
#undef CHECK_INCOMPL
}
-}} // namespace selftests::lookup_name
+}} /* namespace selftests::lookup_name */
void _initialize_lookup_name_info_selftests ();
void
diff --git a/gdb/unittests/main-thread-selftests.c b/gdb/unittests/main-thread-selftests.c
index 1ba3505..5f3d790 100644
--- a/gdb/unittests/main-thread-selftests.c
+++ b/gdb/unittests/main-thread-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for run_on_main_thread
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/memory-map-selftests.c b/gdb/unittests/memory-map-selftests.c
index 55d66fd..6872d5a 100644
--- a/gdb/unittests/memory-map-selftests.c
+++ b/gdb/unittests/memory-map-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for memory-map for GDB, the GNU debugger.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/memrange-selftests.c b/gdb/unittests/memrange-selftests.c
index df02b6a..1433105 100644
--- a/gdb/unittests/memrange-selftests.c
+++ b/gdb/unittests/memrange-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for mem ranges for GDB, the GNU debugger.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/mkdir-recursive-selftests.c b/gdb/unittests/mkdir-recursive-selftests.c
index a96874d..764fe1a 100644
--- a/gdb/unittests/mkdir-recursive-selftests.c
+++ b/gdb/unittests/mkdir-recursive-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for scoped_fd for GDB, the GNU debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/observable-selftests.c b/gdb/unittests/observable-selftests.c
index 2640f68..90d7392 100644
--- a/gdb/unittests/observable-selftests.c
+++ b/gdb/unittests/observable-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for gdb::observers, GDB notifications to observers.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/offset-type-selftests.c b/gdb/unittests/offset-type-selftests.c
index 95cc4f8..1623f0d 100644
--- a/gdb/unittests/offset-type-selftests.c
+++ b/gdb/unittests/offset-type-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for offset types for GDB, the GNU debugger.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/packed-selftests.c b/gdb/unittests/packed-selftests.c
index 060c87c..daa8036 100644
--- a/gdb/unittests/packed-selftests.c
+++ b/gdb/unittests/packed-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for packed for GDB, the GNU debugger.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/parallel-for-selftests.c b/gdb/unittests/parallel-for-selftests.c
index 0261948..f3d85a8 100644
--- a/gdb/unittests/parallel-for-selftests.c
+++ b/gdb/unittests/parallel-for-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for parallel_for_each
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -17,13 +17,6 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-/* This file is divided in two parts:
- - FOR_EACH-undefined, and
- - FOR_EACH-defined.
- The former includes the latter, more than once, with different values for
- FOR_EACH. The FOR_EACH-defined part reads like a regular function. */
-#ifndef FOR_EACH
-
#include "gdbsupport/selftest.h"
#include "gdbsupport/parallel-for.h"
@@ -49,37 +42,70 @@ struct save_restore_n_threads
int n_threads;
};
-/* Define test_par using TEST in the FOR_EACH-defined part. */
-#define TEST test_par
-#define FOR_EACH gdb::parallel_for_each
-#include "parallel-for-selftests.c"
-#undef FOR_EACH
-#undef TEST
-
-/* Define test_seq using TEST in the FOR_EACH-defined part. */
-#define TEST test_seq
-#define FOR_EACH gdb::sequential_for_each
-#include "parallel-for-selftests.c"
-#undef FOR_EACH
-#undef TEST
+using foreach_callback_t = gdb::function_view<void (int first, int last)>;
+using do_foreach_t = gdb::function_view<void (int first, int last,
+ foreach_callback_t)>;
static void
-test (int n_threads)
+test_one (int n_threads, do_foreach_t do_foreach)
{
- test_par (n_threads);
- test_seq (n_threads);
+ save_restore_n_threads saver;
+ gdb::thread_pool::g_thread_pool->set_thread_count (n_threads);
+
+ {
+ constexpr int upper_bound = 1000;
+ std::atomic<int> counter (0);
+ do_foreach (0, upper_bound,
+ [&] (int start, int end) { counter += end - start; });
+ SELF_CHECK (counter == upper_bound);
+ }
+
+ {
+ std::atomic<int> counter (0);
+ do_foreach (0, 0, [&] (int start, int end) { counter += end - start; });
+ SELF_CHECK (counter == 0);
+ }
+
+ {
+ /* Check that if there are fewer tasks than threads, then we won't
+ end up with a null result. */
+ std::vector<std::unique_ptr<int>> intresults;
+ std::atomic<bool> any_empty_tasks (false);
+
+ do_foreach (0, 1,
+ [&] (int start, int end)
+ {
+ if (start == end)
+ any_empty_tasks = true;
+
+ return std::make_unique<int> (end - start);
+ });
+
+ SELF_CHECK (!any_empty_tasks);
+ SELF_CHECK (std::all_of (intresults.begin (), intresults.end (),
+ [] (const std::unique_ptr<int> &entry)
+ { return entry != nullptr; }));
+ }
}
static void
-test_n_threads ()
+test_parallel_for_each ()
{
- test (0);
- test (1);
- test (3);
+ const std::vector<do_foreach_t> for_each_functions
+ {
+ [] (int start, int end, foreach_callback_t callback)
+ { gdb::parallel_for_each<1> (start, end, callback); },
+ [] (int start, int end, foreach_callback_t callback)
+ { gdb::sequential_for_each (start, end, callback);}
+ };
+
+ for (int n_threads : { 0, 1, 3 })
+ for (const auto &for_each_function : for_each_functions)
+ test_one (n_threads, for_each_function);
}
-}
-}
+} /* namespace parallel_for */
+} /* namespace selftests */
#endif /* CXX_STD_THREAD */
@@ -89,57 +115,6 @@ _initialize_parallel_for_selftests ()
{
#ifdef CXX_STD_THREAD
selftests::register_test ("parallel_for",
- selftests::parallel_for::test_n_threads);
+ selftests::parallel_for::test_parallel_for_each);
#endif /* CXX_STD_THREAD */
}
-
-#else /* FOR_EACH */
-
-static void
-TEST (int n_threads)
-{
- save_restore_n_threads saver;
- gdb::thread_pool::g_thread_pool->set_thread_count (n_threads);
-
-#define NUMBER 10000
-
- std::atomic<int> counter (0);
- FOR_EACH (1, 0, NUMBER,
- [&] (int start, int end)
- {
- counter += end - start;
- });
- SELF_CHECK (counter == NUMBER);
-
- counter = 0;
- FOR_EACH (1, 0, 0,
- [&] (int start, int end)
- {
- counter += end - start;
- });
- SELF_CHECK (counter == 0);
-
-#undef NUMBER
-
- /* Check that if there are fewer tasks than threads, then we won't
- end up with a null result. */
- std::vector<std::unique_ptr<int>> intresults;
- std::atomic<bool> any_empty_tasks (false);
-
- FOR_EACH (1, 0, 1,
- [&] (int start, int end)
- {
- if (start == end)
- any_empty_tasks = true;
- return std::make_unique<int> (end - start);
- });
- SELF_CHECK (!any_empty_tasks);
- SELF_CHECK (std::all_of (intresults.begin (),
- intresults.end (),
- [] (const std::unique_ptr<int> &entry)
- {
- return entry != nullptr;
- }));
-}
-
-#endif /* FOR_EACH */
diff --git a/gdb/unittests/parse-connection-spec-selftests.c b/gdb/unittests/parse-connection-spec-selftests.c
index 55a7c13..7104272 100644
--- a/gdb/unittests/parse-connection-spec-selftests.c
+++ b/gdb/unittests/parse-connection-spec-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for parsing connection specs for GDB, the GNU debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/path-join-selftests.c b/gdb/unittests/path-join-selftests.c
index 08fad63..a4003f0 100644
--- a/gdb/unittests/path-join-selftests.c
+++ b/gdb/unittests/path-join-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for path_join for GDB, the GNU debugger.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/ptid-selftests.c b/gdb/unittests/ptid-selftests.c
index 6fc04c1..a9bb26b 100644
--- a/gdb/unittests/ptid-selftests.c
+++ b/gdb/unittests/ptid-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for ptid_t for GDB, the GNU debugger.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/remote-arg-selftests.c b/gdb/unittests/remote-arg-selftests.c
new file mode 100644
index 0000000..70f8a39
--- /dev/null
+++ b/gdb/unittests/remote-arg-selftests.c
@@ -0,0 +1,166 @@
+/* Self tests for GDB's argument splitting and merging.
+
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include "defs.h"
+#include "gdbsupport/selftest.h"
+#include "gdbsupport/buildargv.h"
+#include "gdbsupport/common-inferior.h"
+#include "gdbsupport/remote-args.h"
+#include "gdbsupport/gdb_argv_vec.h"
+
+namespace selftests {
+namespace remote_args_tests {
+
+/* The data needed to perform a single remote argument test. */
+struct arg_test_desc
+{
+ /* The original inferior argument string. */
+ std::string input;
+
+ /* The individual arguments once they have been split. */
+ std::vector<std::string> split;
+
+ /* The new inferior argument string, created by joining SPLIT. */
+ std::string joined;
+};
+
+/* The list of tests. */
+arg_test_desc desc[] = {
+ { "abc", { "abc" }, "abc" },
+ { "a b c", { "a", "b", "c" }, "a b c" },
+ { "\"a b\" 'c d'", { "a b", "c d" }, "a\\ b c\\ d" },
+ { "\\' \\\"", { "'", "\"" }, "\\' \\\"" },
+ { "'\\'", { "\\" }, "\\\\" },
+ { "\"\\\\\" \"\\\\\\\"\"", { "\\", "\\\"" }, "\\\\ \\\\\\\"" },
+ { "\\ \" \" ' '", { " ", " ", " "}, "\\ \\ \\ " },
+ { "\"'\"", { "'" }, "\\'" },
+ { "'\"' '\\\"'", { "\"", "\\\"" } , "\\\" \\\\\\\""},
+ { "\"first arg\" \"\" \"third-arg\" \"'\" \"\\\"\" \"\\\\\\\"\" \" \" \"\"",
+ { "first arg", "", "third-arg", "'", "\"", "\\\""," ", "" },
+ "first\\ arg '' third-arg \\' \\\" \\\\\\\" \\ ''"},
+ { "\"\\a\" \"\\&\" \"\\#\" \"\\<\" \"\\^\"",
+ { "\\a", "\\&", "\\#" , "\\<" , "\\^"},
+ "\\\\a \\\\\\& \\\\\\# \\\\\\< \\\\\\^" },
+ { "1 '\n' 3", { "1", "\n", "3" }, "1 '\n' 3" },
+};
+
+/* Run the remote argument passing self tests. */
+
+static void
+self_test ()
+{
+ int failure_count = 0;
+ for (const auto &d : desc)
+ {
+ if (run_verbose ())
+ {
+ if (&d != &desc[0])
+ debug_printf ("------------------------------\n");
+ debug_printf ("Input (%s)\n", d.input.c_str ());
+ }
+
+ /* Split argument string into individual arguments. */
+ std::vector<std::string> split_args = gdb::remote_args::split (d.input);
+
+ if (run_verbose ())
+ {
+ debug_printf ("Split:\n");
+
+ size_t len = std::max (split_args.size (), d.split.size ());
+ for (size_t i = 0; i < len; ++i)
+ {
+ const char *got = "N/A";
+ const char *expected = got;
+
+ if (i < split_args.size ())
+ got = split_args[i].c_str ();
+
+ if (i < d.split.size ())
+ expected = d.split[i].c_str ();
+
+ debug_printf (" got (%s), expected (%s)\n", got, expected);
+ }
+ }
+
+ if (split_args != d.split)
+ {
+ ++failure_count;
+ if (run_verbose ())
+ debug_printf ("FAIL\n");
+ continue;
+ }
+
+ /* Now join the arguments. */
+ gdb::argv_vec split_args_c_str;
+ for (const std::string &s : split_args)
+ split_args_c_str.push_back (xstrdup (s.c_str ()));
+ std::string joined_args
+ = gdb::remote_args::join (split_args_c_str.get ());
+
+ if (run_verbose ())
+ debug_printf ("Joined (%s), expected (%s)\n",
+ joined_args.c_str (), d.joined.c_str ());
+
+ if (joined_args != d.joined)
+ {
+ ++failure_count;
+ if (run_verbose ())
+ debug_printf ("FAIL\n");
+ continue;
+ }
+
+ /* The contents of JOINED_ARGS will not be identical to D.INPUT.
+ There are multiple ways that an argument can be escaped, and our
+ join function just picks one. However, if we split JOINED_ARGS
+ again then each individual argument should be the same as those in
+ SPLIT_ARGS. So test that next. */
+ std::vector<std::string> split_args_v2
+ = gdb::remote_args::split (joined_args);
+
+ if (split_args_v2 != split_args)
+ {
+ ++failure_count;
+ if (run_verbose ())
+ {
+ debug_printf ("Re-split:\n");
+ for (const auto &a : split_args_v2)
+ debug_printf (" got (%s)\n", a.c_str ());
+ debug_printf ("FAIL\n");
+ }
+ continue;
+ }
+
+ if (run_verbose ())
+ debug_printf ("PASS\n");
+ }
+
+ SELF_CHECK (failure_count == 0);
+}
+
+} /* namespace remote_args_tests */
+} /* namespace selftests */
+
+void _initialize_remote_arg_selftests ();
+
+void
+_initialize_remote_arg_selftests ()
+{
+ selftests::register_test ("remote-args",
+ selftests::remote_args_tests::self_test);
+}
diff --git a/gdb/unittests/rsp-low-selftests.c b/gdb/unittests/rsp-low-selftests.c
index 7a17871..7a1b2de 100644
--- a/gdb/unittests/rsp-low-selftests.c
+++ b/gdb/unittests/rsp-low-selftests.c
@@ -1,6 +1,6 @@
/* Unit tests for the rsp-low.c file.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -51,7 +51,7 @@ static void test_hex2str ()
{
SELF_CHECK (hex2str ("666f6f") == "foo");
SELF_CHECK (hex2str ("666f6fa") == "foo");
- SELF_CHECK (hex2str ("666f6f", 2) == "fo");
+ SELF_CHECK (hex2str ("666f6f", 2) == "fo"); /* codespell:ignore */
SELF_CHECK (hex2str ("666", 2) == "f");
SELF_CHECK (hex2str ("666", 6) == "f");
SELF_CHECK (hex2str ("") == "");
diff --git a/gdb/unittests/scoped_fd-selftests.c b/gdb/unittests/scoped_fd-selftests.c
index 1413c50..7abbbd8 100644
--- a/gdb/unittests/scoped_fd-selftests.c
+++ b/gdb/unittests/scoped_fd-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for scoped_fd for GDB, the GNU debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/scoped_ignore_signal-selftests.c b/gdb/unittests/scoped_ignore_signal-selftests.c
index 361928c..fdfaca3 100644
--- a/gdb/unittests/scoped_ignore_signal-selftests.c
+++ b/gdb/unittests/scoped_ignore_signal-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for scoped_ignored_signal for GDB, the GNU debugger.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/scoped_mmap-selftests.c b/gdb/unittests/scoped_mmap-selftests.c
index 09a94ed..695ed1e 100644
--- a/gdb/unittests/scoped_mmap-selftests.c
+++ b/gdb/unittests/scoped_mmap-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for scoped_mmap for GDB, the GNU debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/scoped_restore-selftests.c b/gdb/unittests/scoped_restore-selftests.c
index 1fd5118..18d898b 100644
--- a/gdb/unittests/scoped_restore-selftests.c
+++ b/gdb/unittests/scoped_restore-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for scoped_restore for GDB, the GNU debugger.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/search-memory-selftests.c b/gdb/unittests/search-memory-selftests.c
index 1124633..0e82d6c 100644
--- a/gdb/unittests/search-memory-selftests.c
+++ b/gdb/unittests/search-memory-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for simple_search_memory for GDB, the GNU debugger.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/style-selftests.c b/gdb/unittests/style-selftests.c
index 72bc878..2cbe194 100644
--- a/gdb/unittests/style-selftests.c
+++ b/gdb/unittests/style-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for ui_file_style
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/tracepoint-selftests.c b/gdb/unittests/tracepoint-selftests.c
index 0270028..235dd1e 100644
--- a/gdb/unittests/tracepoint-selftests.c
+++ b/gdb/unittests/tracepoint-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for tracepoint-related code for GDB, the GNU debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/tui-selftests.c b/gdb/unittests/tui-selftests.c
index 6847207..e61b0db 100644
--- a/gdb/unittests/tui-selftests.c
+++ b/gdb/unittests/tui-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for the TUI
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/ui-file-selftests.c b/gdb/unittests/ui-file-selftests.c
index 589254f..b62fd4f 100644
--- a/gdb/unittests/ui-file-selftests.c
+++ b/gdb/unittests/ui-file-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for ui_file
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/unique_xmalloc_ptr_char.c b/gdb/unittests/unique_xmalloc_ptr_char.c
index b7fd5b6..984f692 100644
--- a/gdb/unittests/unique_xmalloc_ptr_char.c
+++ b/gdb/unittests/unique_xmalloc_ptr_char.c
@@ -1,6 +1,6 @@
/* Self tests for gdb::unique_xmalloc_ptr<char>.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/unpack-selftests.c b/gdb/unittests/unpack-selftests.c
index 35f4eee..54af777 100644
--- a/gdb/unittests/unpack-selftests.c
+++ b/gdb/unittests/unpack-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for unpack_field_as_long
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/utils-selftests.c b/gdb/unittests/utils-selftests.c
deleted file mode 100644
index 6748dc2..0000000
--- a/gdb/unittests/utils-selftests.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Unit tests for the utils.c file.
-
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
-
- This file is part of GDB.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 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, see <http://www.gnu.org/licenses/>. */
-
-#include "utils.h"
-#include "gdbsupport/selftest.h"
-
-namespace selftests {
-namespace utils {
-
-static void
-test_substitute_path_component ()
-{
- auto test = [] (std::string s, const char *from, const char *to,
- const char *expected)
- {
- char *temp = xstrdup (s.c_str ());
- substitute_path_component (&temp, from, to);
- SELF_CHECK (strcmp (temp, expected) == 0);
- xfree (temp);
- };
-
- test ("/abc/$def/g", "abc", "xyz", "/xyz/$def/g");
- test ("abc/$def/g", "abc", "xyz", "xyz/$def/g");
- test ("/abc/$def/g", "$def", "xyz", "/abc/xyz/g");
- test ("/abc/$def/g", "g", "xyz", "/abc/$def/xyz");
- test ("/abc/$def/g", "ab", "xyz", "/abc/$def/g");
- test ("/abc/$def/g", "def", "xyz", "/abc/$def/g");
- test ("/abc/$def/g", "abc", "abc", "/abc/$def/g");
- test ("/abc/$def/g", "abc", "", "//$def/g");
- test ("/abc/$def/g", "abc/$def", "xyz", "/xyz/g");
- test ("/abc/$def/abc", "abc", "xyz", "/xyz/$def/xyz");
-}
-
-}
-}
-
-void _initialize_utils_selftests ();
-void
-_initialize_utils_selftests ()
-{
- selftests::register_test ("substitute_path_component",
- selftests::utils::test_substitute_path_component);
-}
diff --git a/gdb/unittests/vec-utils-selftests.c b/gdb/unittests/vec-utils-selftests.c
index da3bcf0..4be0b86 100644
--- a/gdb/unittests/vec-utils-selftests.c
+++ b/gdb/unittests/vec-utils-selftests.c
@@ -1,6 +1,6 @@
/* Self tests for vector utility routines for GDB, the GNU debugger.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unittests/xml-utils-selftests.c b/gdb/unittests/xml-utils-selftests.c
index 627d5d8..5884faa 100644
--- a/gdb/unittests/xml-utils-selftests.c
+++ b/gdb/unittests/xml-utils-selftests.c
@@ -1,6 +1,6 @@
/* Unit tests for the xml-utils.c file.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/unwind_stop_reasons.def b/gdb/unwind_stop_reasons.def
index 9db9f7c..432064f 100644
--- a/gdb/unwind_stop_reasons.def
+++ b/gdb/unwind_stop_reasons.def
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/user-regs.c b/gdb/user-regs.c
index 2ace46e..5860d7d 100644
--- a/gdb/user-regs.c
+++ b/gdb/user-regs.c
@@ -1,6 +1,6 @@
/* User visible, per-frame registers, for GDB, the GNU debugger.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
diff --git a/gdb/user-regs.h b/gdb/user-regs.h
index 67a28dd..298ce3c 100644
--- a/gdb/user-regs.h
+++ b/gdb/user-regs.h
@@ -1,6 +1,6 @@
/* Per-frame user registers, for GDB, the GNU debugger.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
diff --git a/gdb/utils.c b/gdb/utils.c
index 4027d4f..4f48e15 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -1,6 +1,6 @@
/* General utility routines for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -54,7 +54,6 @@
#include "top.h"
#include "ui.h"
#include "main.h"
-#include "solist.h"
#include "inferior.h"
@@ -119,7 +118,7 @@ show_sevenbit_strings (struct ui_file *file, int from_tty,
/* String to be printed before warning messages, if any. */
-const char *warning_pre_print = "\nwarning: ";
+const char *warning_pre_print = "\n";
bool pagination_enabled = true;
static void
@@ -176,8 +175,9 @@ vwarning (const char *string, va_list args)
term_state.emplace ();
target_terminal::ours_for_output ();
}
- if (warning_pre_print)
- gdb_puts (warning_pre_print, gdb_stderr);
+ gdb_puts (warning_pre_print, gdb_stderr);
+ print_warning_prefix (gdb_stderr);
+ gdb_puts (_("warning: "), gdb_stderr);
gdb_vprintf (gdb_stderr, string, args);
gdb_printf (gdb_stderr, "\n");
}
@@ -382,7 +382,7 @@ internal_vproblem (struct internal_problem *problem,
#endif
/* Create a string containing the full error/warning message. Need
- to call query with this full string, as otherwize the reason
+ to call query with this full string, as otherwise the reason
(error/warning) and question become separated. Format using a
style similar to a compiler error message. Include extra detail
so that the user knows that they are living on the edge. */
@@ -1407,18 +1407,6 @@ pager_file::emit_style_escape (const ui_file_style &style)
}
}
-/* See pager.h. */
-
-void
-pager_file::reset_style ()
-{
- if (can_emit_style_escape ())
- {
- m_applied_style = ui_file_style ();
- m_wrap_buffer.append (m_applied_style.to_ansi ());
- }
-}
-
/* Wait, so the user can read what's on the screen. Prompt the user
to continue by pressing RETURN. 'q' is also provided because
telling users what to do in the prompt is more user-friendly than
@@ -1636,10 +1624,7 @@ begin_line (void)
void
pager_file::puts (const char *linebuffer)
{
- const char *lineptr;
-
- if (linebuffer == 0)
- return;
+ gdb_assert (linebuffer != nullptr);
/* Don't do any filtering or wrapping if both are disabled. */
if (batch_flag
@@ -1670,8 +1655,7 @@ pager_file::puts (const char *linebuffer)
when this is necessary; prompt user for new page when this is
necessary. */
- lineptr = linebuffer;
- while (*lineptr)
+ while (*linebuffer != '\0')
{
/* Possible new page. Note that PAGINATION_DISABLED_FOR_COMMAND
might be set during this loop, so we must continue to check
@@ -1681,39 +1665,39 @@ pager_file::puts (const char *linebuffer)
&& lines_printed >= lines_allowed)
prompt_for_continue ();
- while (*lineptr && *lineptr != '\n')
+ while (*linebuffer != '\0' && *linebuffer != '\n')
{
int skip_bytes;
/* Print a single line. */
- if (*lineptr == '\t')
+ if (*linebuffer == '\t')
{
m_wrap_buffer.push_back ('\t');
/* Shifting right by 3 produces the number of tab stops
we have already passed, and then adding one and
shifting left 3 advances to the next tab stop. */
chars_printed = ((chars_printed >> 3) + 1) << 3;
- lineptr++;
+ linebuffer++;
}
- else if (*lineptr == '\033'
- && skip_ansi_escape (lineptr, &skip_bytes))
+ else if (*linebuffer == '\033'
+ && skip_ansi_escape (linebuffer, &skip_bytes))
{
- m_wrap_buffer.append (lineptr, skip_bytes);
+ m_wrap_buffer.append (linebuffer, skip_bytes);
/* Note that we don't consider this a character, so we
don't increment chars_printed here. */
- lineptr += skip_bytes;
+ linebuffer += skip_bytes;
}
- else if (*lineptr == '\r')
+ else if (*linebuffer == '\r')
{
- m_wrap_buffer.push_back (*lineptr);
+ m_wrap_buffer.push_back (*linebuffer);
chars_printed = 0;
- lineptr++;
+ linebuffer++;
}
else
{
- m_wrap_buffer.push_back (*lineptr);
+ m_wrap_buffer.push_back (*linebuffer);
chars_printed++;
- lineptr++;
+ linebuffer++;
}
if (chars_printed >= chars_per_line)
@@ -1787,13 +1771,13 @@ pager_file::puts (const char *linebuffer)
}
}
- if (*lineptr == '\n')
+ if (*linebuffer == '\n')
{
chars_printed = 0;
wrap_here (0); /* Spit out chars, cancel further wraps. */
lines_printed++;
m_stream->puts ("\n");
- lineptr++;
+ linebuffer++;
}
}
@@ -3348,7 +3332,7 @@ gdb_argv_as_array_view_test ()
argument. */
std::string
-ldirname (const char *filename)
+gdb_ldirname (const char *filename)
{
std::string dirname;
const char *base = lbasename (filename);
@@ -3390,51 +3374,6 @@ parse_pid_to_attach (const char *args)
return pid;
}
-/* Substitute all occurrences of string FROM by string TO in *STRINGP. *STRINGP
- must come from xrealloc-compatible allocator and it may be updated. FROM
- needs to be delimited by IS_DIR_SEPARATOR or DIRNAME_SEPARATOR (or be
- located at the start or end of *STRINGP. */
-
-void
-substitute_path_component (char **stringp, const char *from, const char *to)
-{
- char *string = *stringp, *s;
- const size_t from_len = strlen (from);
- const size_t to_len = strlen (to);
-
- for (s = string;;)
- {
- s = strstr (s, from);
- if (s == NULL)
- break;
-
- if ((s == string || IS_DIR_SEPARATOR (s[-1])
- || s[-1] == DIRNAME_SEPARATOR)
- && (s[from_len] == '\0' || IS_DIR_SEPARATOR (s[from_len])
- || s[from_len] == DIRNAME_SEPARATOR))
- {
- char *string_new;
-
- string_new
- = (char *) xrealloc (string, (strlen (string) + to_len + 1));
-
- /* Relocate the current S pointer. */
- s = s - string + string_new;
- string = string_new;
-
- /* Replace from by to. */
- memmove (&s[to_len], &s[from_len], strlen (&s[from_len]) + 1);
- memcpy (s, to, to_len);
-
- s += to_len;
- }
- else
- s++;
- }
-
- *stringp = string;
-}
-
#ifdef HAVE_WAITPID
#ifdef SIGALRM
diff --git a/gdb/utils.h b/gdb/utils.h
index b9044e6..b37e8f7 100644
--- a/gdb/utils.h
+++ b/gdb/utils.h
@@ -1,5 +1,5 @@
/* I/O, string, cleanup, and other random utilities for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -133,10 +133,7 @@ private:
extern int gdb_filename_fnmatch (const char *pattern, const char *string,
int flags);
-extern void substitute_path_component (char **stringp, const char *from,
- const char *to);
-
-std::string ldirname (const char *filename);
+std::string gdb_ldirname (const char *filename);
extern int count_path_elements (const char *path);
diff --git a/gdb/v850-tdep.c b/gdb/v850-tdep.c
index 59a2930..e9ec858 100644
--- a/gdb/v850-tdep.c
+++ b/gdb/v850-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the NEC V850 for GDB, the GNU debugger.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/valarith.c b/gdb/valarith.c
index a95d108..582fe6c 100644
--- a/gdb/valarith.c
+++ b/gdb/valarith.c
@@ -1,6 +1,6 @@
/* Perform arithmetic and other operations on values, for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/valops.c b/gdb/valops.c
index 88a42d3..94f908d 100644
--- a/gdb/valops.c
+++ b/gdb/valops.c
@@ -1,6 +1,6 @@
/* Perform non-arithmetic operations on values, for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -1695,6 +1695,9 @@ value_array (int lowbound, gdb::array_view<struct value *> elemvec)
/* Validate that the bounds are reasonable and that each of the
elements have the same size. */
+ if (elemvec.empty ())
+ error (_("size of the array element must not be zero"));
+
typelength = type_length_units (elemvec[0]->enclosing_type ());
for (struct value *other : elemvec.slice (1))
{
@@ -2417,47 +2420,42 @@ value_struct_elt (struct value **argp,
return v;
}
-/* Given *ARGP, a value of type structure or union, or a pointer/reference
+/* Given VAL, a value of type structure or union, or a pointer/reference
to a structure or union, extract and return its component (field) of
type FTYPE at the specified BITPOS.
Throw an exception on error. */
struct value *
-value_struct_elt_bitpos (struct value **argp, int bitpos, struct type *ftype,
- const char *err)
+value_struct_elt_bitpos (struct value *val, int bitpos, struct type *ftype)
{
struct type *t;
int i;
- *argp = coerce_array (*argp);
+ val = coerce_array (val);
- t = check_typedef ((*argp)->type ());
+ t = check_typedef (val->type ());
while (t->is_pointer_or_reference ())
{
- *argp = value_ind (*argp);
- if (check_typedef ((*argp)->type ())->code () != TYPE_CODE_FUNC)
- *argp = coerce_array (*argp);
- t = check_typedef ((*argp)->type ());
+ val = value_ind (val);
+ if (check_typedef (val->type ())->code () != TYPE_CODE_FUNC)
+ val = coerce_array (val);
+ t = check_typedef (val->type ());
}
if (t->code () != TYPE_CODE_STRUCT
&& t->code () != TYPE_CODE_UNION)
- error (_("Attempt to extract a component of a value that is not a %s."),
- err);
+ error (_("Attempt to extract a component of non-aggregate value."));
for (i = TYPE_N_BASECLASSES (t); i < t->num_fields (); i++)
{
if (!t->field (i).is_static ()
&& bitpos == t->field (i).loc_bitpos ()
&& types_equal (ftype, t->field (i).type ()))
- return (*argp)->primitive_field (0, i, t);
+ return val->primitive_field (0, i, t);
}
error (_("No field with matching bitpos and type."));
-
- /* Never hit. */
- return NULL;
}
/* Search through the methods of an object (and its bases) to find a
diff --git a/gdb/valprint.c b/gdb/valprint.c
index ce1ac75..ed03f6d 100644
--- a/gdb/valprint.c
+++ b/gdb/valprint.c
@@ -1,6 +1,6 @@
/* Print values for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/valprint.h b/gdb/valprint.h
index 834e9d9..dd35586 100644
--- a/gdb/valprint.h
+++ b/gdb/valprint.h
@@ -1,6 +1,6 @@
/* Declarations for value printing routines for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/value.c b/gdb/value.c
index e498632..41dce77 100644
--- a/gdb/value.c
+++ b/gdb/value.c
@@ -1,6 +1,6 @@
/* Low level packing and unpacking of values for GDB, the GNU Debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -55,10 +55,17 @@
/* Definition of a user function. */
struct internal_function
{
+ internal_function (std::string name, internal_function_fn_noside handler,
+ void *cookie)
+ : name (std::move (name)),
+ handler (handler),
+ cookie (cookie)
+ {}
+
/* The name of the function. It is a bit odd to have this in the
function itself -- the user might use a differently-named
convenience variable to hold the function. */
- char *name;
+ std::string name;
/* The handler. */
internal_function_fn_noside handler;
@@ -67,6 +74,8 @@ struct internal_function
void *cookie;
};
+using internal_function_up = std::unique_ptr<internal_function>;
+
/* Returns true if the ranges defined by [offset1, offset1+len1) and
[offset2, offset2+len2) overlap. */
@@ -98,7 +107,7 @@ ranges_contain (const std::vector<range> &ranges, LONGEST offset,
range, we can do a binary search for the position the given range
would be inserted if we only considered the starting OFFSET of
ranges. We call that position I. Since we also have LENGTH to
- care for (this is a range afterall), we need to check if the
+ care for (this is a range after all), we need to check if the
_previous_ range overlaps the I range. E.g.,
R
@@ -258,7 +267,7 @@ insert_into_bit_range_vector (std::vector<range> *vectorp,
/* Do a binary search for the position the given range would be
inserted if we only considered the starting OFFSET of ranges.
Call that position I. Since we also have LENGTH to care for
- (this is a range afterall), we need to check if the _previous_
+ (this is a range after all), we need to check if the _previous_
range overlaps the I range. E.g., calling R the new range:
#1 - overlaps with previous
@@ -1865,6 +1874,19 @@ struct internalvar
: name (std::move (name))
{}
+ internalvar (internalvar &&other)
+ : name (std::move(other.name)),
+ kind (other.kind),
+ u (other.u)
+ {
+ other.kind = INTERNALVAR_VOID;
+ }
+
+ ~internalvar ()
+ {
+ clear_internalvar (this);
+ }
+
std::string name;
/* We support various different kinds of content of an internal variable.
@@ -2277,13 +2299,13 @@ set_internalvar_string (struct internalvar *var, const char *string)
}
static void
-set_internalvar_function (struct internalvar *var, struct internal_function *f)
+set_internalvar_function (internalvar *var, internal_function_up f)
{
/* Clean up old contents. */
clear_internalvar (var);
var->kind = INTERNALVAR_FUNCTION;
- var->u.fn.function = f;
+ var->u.fn.function = f.release ();
var->u.fn.canonical = 1;
/* Variables installed here are always the canonical version. */
}
@@ -2302,6 +2324,10 @@ clear_internalvar (struct internalvar *var)
xfree (var->u.string);
break;
+ case INTERNALVAR_FUNCTION:
+ delete var->u.fn.function;
+ break;
+
default:
break;
}
@@ -2316,18 +2342,6 @@ internalvar_name (const struct internalvar *var)
return var->name.c_str ();
}
-static struct internal_function *
-create_internal_function (const char *name,
- internal_function_fn_noside handler, void *cookie)
-{
- struct internal_function *ifn = new (struct internal_function);
-
- ifn->name = xstrdup (name);
- ifn->handler = handler;
- ifn->cookie = cookie;
- return ifn;
-}
-
const char *
value_internal_function_name (struct value *val)
{
@@ -2338,7 +2352,7 @@ value_internal_function_name (struct value *val)
result = get_internalvar_function (VALUE_INTERNALVAR (val), &ifn);
gdb_assert (result);
- return ifn->name;
+ return ifn->name.c_str ();
}
struct value *
@@ -2373,11 +2387,9 @@ static struct cmd_list_element *
do_add_internal_function (const char *name, const char *doc,
internal_function_fn_noside handler, void *cookie)
{
- struct internal_function *ifn;
- struct internalvar *var = lookup_internalvar (name);
-
- ifn = create_internal_function (name, handler, cookie);
- set_internalvar_function (var, ifn);
+ set_internalvar_function (lookup_internalvar (name),
+ std::make_unique<internal_function> (name, handler,
+ cookie));
return add_cmd (name, no_class, function_command, doc, &functionlist);
}
@@ -2821,7 +2833,7 @@ value_as_address (struct value *val)
#endif
}
-/* Unpack raw data (copied from debugee, target byte order) at VALADDR
+/* Unpack raw data (copied from debuggee, target byte order) at VALADDR
as a long, or as a double, assuming the raw data is described
by type TYPE. Knows how to convert different sizes of values
and can convert between fixed and floating point. We don't assume
@@ -2912,7 +2924,7 @@ unpack_long (struct type *type, const gdb_byte *valaddr)
}
}
-/* Unpack raw data (copied from debugee, target byte order) at VALADDR
+/* Unpack raw data (copied from debuggee, target byte order) at VALADDR
as a CORE_ADDR, assuming the raw data is described by type TYPE.
We don't assume any alignment for the raw data. Return value is in
host byte order.
@@ -3254,6 +3266,9 @@ unpack_bits_as_long (struct type *field_type, const gdb_byte *valaddr,
}
}
+ if (field_type->code () == TYPE_CODE_RANGE)
+ val += field_type->bounds ()->bias;
+
return val;
}
@@ -3284,21 +3299,28 @@ unpack_value_field_as_long (struct type *type, const gdb_byte *valaddr,
return 1;
}
-/* Unpack a field FIELDNO of the specified TYPE, from the anonymous
- object at VALADDR. See unpack_bits_as_long for more details. */
+/* See value.h. */
LONGEST
-unpack_field_as_long (struct type *type, const gdb_byte *valaddr, int fieldno)
+unpack_field_as_long (const gdb_byte *valaddr, struct field *field)
{
- int bitpos = type->field (fieldno).loc_bitpos ();
- int bitsize = type->field (fieldno).bitsize ();
- struct type *field_type = type->field (fieldno).type ();
+ int bitpos = field->loc_bitpos ();
+ int bitsize = field->bitsize ();
+ struct type *field_type = field->type ();
return unpack_bits_as_long (field_type, valaddr, bitpos, bitsize);
}
/* See value.h. */
+LONGEST
+unpack_field_as_long (struct type *type, const gdb_byte *valaddr, int fieldno)
+{
+ return unpack_field_as_long (valaddr, &type->field (fieldno));
+}
+
+/* See value.h. */
+
void
value::unpack_bitfield (struct value *dest_val,
LONGEST bitpos, LONGEST bitsize,
diff --git a/gdb/value.h b/gdb/value.h
index 8e5fd54..0c7c785 100644
--- a/gdb/value.h
+++ b/gdb/value.h
@@ -1,6 +1,6 @@
/* Definitions for values of C expressions, for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -961,7 +961,7 @@ struct lval_funcs
This may simply return the same closure, if VALUE's is
reference-counted or statically allocated.
- This may be NULL, in which case VALUE's closure is re-used in the
+ This may be NULL, in which case VALUE's closure is reused in the
new value. */
void *(*copy_closure) (const struct value *v);
@@ -1058,10 +1058,19 @@ extern gdb_mpz value_as_mpz (struct value *val);
extern LONGEST unpack_long (struct type *type, const gdb_byte *valaddr);
extern CORE_ADDR unpack_pointer (struct type *type, const gdb_byte *valaddr);
+/* Unpack a field FIELDNO of the specified TYPE, from the anonymous
+ object at VALADDR. See unpack_bits_as_long for more details. */
+
extern LONGEST unpack_field_as_long (struct type *type,
const gdb_byte *valaddr,
int fieldno);
+/* Unpack a field, FIELD, from the anonymous object at VALADDR. See
+ unpack_bits_as_long for more details. */
+
+extern LONGEST unpack_field_as_long (const gdb_byte *valaddr,
+ struct field *field);
+
/* Unpack a bitfield of the specified FIELD_TYPE, from the object at
VALADDR, and store the result in *RESULT.
The bitfield starts at BITPOS bits and contains BITSIZE bits; if
@@ -1297,10 +1306,9 @@ extern struct value *value_struct_elt (struct value **argp,
const char *name, int *static_memfuncp,
const char *err);
-extern struct value *value_struct_elt_bitpos (struct value **argp,
+extern struct value *value_struct_elt_bitpos (struct value *val,
int bitpos,
- struct type *field_type,
- const char *err);
+ struct type *field_type);
extern struct value *value_aggregate_elt (struct type *curtype,
const char *name,
diff --git a/gdb/varobj-iter.h b/gdb/varobj-iter.h
index 46e25e7..f19ebda 100644
--- a/gdb/varobj-iter.h
+++ b/gdb/varobj-iter.h
@@ -1,5 +1,5 @@
/* Iterator of varobj.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/varobj.c b/gdb/varobj.c
index dcadce1..8dc7a30 100644
--- a/gdb/varobj.c
+++ b/gdb/varobj.c
@@ -1,6 +1,6 @@
/* Implementation of the GDB variable objects API.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -1309,7 +1309,7 @@ install_new_value (struct varobj *var, struct value *value, bool initial)
{
/* For values that are not changeable, we don't compare the values.
However, we want to notice if a value was not NULL and now is NULL,
- or vise versa, so that we report when top-level varobjs come in scope
+ or vice versa, so that we report when top-level varobjs come in scope
and leave the scope. */
changed = (var->value != NULL) != (value != NULL);
}
diff --git a/gdb/varobj.h b/gdb/varobj.h
index 9d19f53..00e776f 100644
--- a/gdb/varobj.h
+++ b/gdb/varobj.h
@@ -1,5 +1,5 @@
/* GDB variable objects API.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdb/vax-bsd-nat.c b/gdb/vax-bsd-nat.c
index 2a4db3a..6d8bb54 100644
--- a/gdb/vax-bsd-nat.c
+++ b/gdb/vax-bsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for modern VAX BSD's.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/vax-netbsd-tdep.c b/gdb/vax-netbsd-tdep.c
index fa528ae..34a9150 100644
--- a/gdb/vax-netbsd-tdep.c
+++ b/gdb/vax-netbsd-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for NetBSD/vax.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/vax-tdep.c b/gdb/vax-tdep.c
index 4660979..94dc308 100644
--- a/gdb/vax-tdep.c
+++ b/gdb/vax-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the VAX.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -438,7 +438,7 @@ vax_frame_num_args (const frame_info_ptr &frame)
-/* Initialize the current architecture based on INFO. If possible, re-use an
+/* Initialize the current architecture based on INFO. If possible, reuse an
architecture from ARCHES, which is a list of architectures already created
during this debugging session.
diff --git a/gdb/vax-tdep.h b/gdb/vax-tdep.h
index fbc35d9..dadad62 100644
--- a/gdb/vax-tdep.h
+++ b/gdb/vax-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for the VAX.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c
index 2fd943e..939c581 100644
--- a/gdb/windows-nat.c
+++ b/gdb/windows-nat.c
@@ -1,6 +1,6 @@
/* Target-vector operations for controlling windows child processes, for GDB.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions, A Red Hat Company.
@@ -56,7 +56,6 @@
#include "cli/cli-style.h"
#include <unistd.h>
#include "exec.h"
-#include "solist.h"
#include "solib.h"
#include "xml-support.h"
#include "inttypes.h"
@@ -433,7 +432,12 @@ wait_for_single (HANDLE handle, DWORD howlong)
{
while (true)
{
- DWORD r = WaitForSingleObject (handle, howlong);
+ /* Using an INFINITE argument to WaitForSingleObject may cause a system
+ deadlock. Avoid it by waiting for a bit in a loop instead. */
+ DWORD milliseconds = howlong == INFINITE ? 100 : howlong;
+ DWORD r = WaitForSingleObject (handle, milliseconds);
+ if (howlong == INFINITE && r == WAIT_TIMEOUT)
+ continue;
if (r == WAIT_OBJECT_0)
return;
if (r == WAIT_FAILED)
@@ -1789,7 +1793,6 @@ windows_nat_target::do_initial_windows_stuff (DWORD pid, bool attaching)
inf = current_inferior ();
if (!inf->target_is_pushed (this))
inf->push_target (this);
- disable_breakpoints_in_shlibs (current_program_space);
windows_clear_solib ();
clear_proceed_status (0);
init_wait_for_inferior ();
diff --git a/gdb/windows-nat.h b/gdb/windows-nat.h
index b36e7f4..ef86f3b 100644
--- a/gdb/windows-nat.h
+++ b/gdb/windows-nat.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -25,14 +25,14 @@ typedef int (segment_register_p_ftype) (int regnum);
/* segment_register_p_ftype implementation for x86. */
int i386_windows_segment_register_p (int regnum);
-/* context register offests for x86. */
+/* context register offsets for x86. */
extern const int i386_mappings[];
#ifdef __x86_64__
/* segment_register_p_ftype implementation for amd64. */
int amd64_windows_segment_register_p (int regnum);
-/* context register offests for amd64. */
+/* context register offsets for amd64. */
extern const int amd64_mappings[];
#endif
diff --git a/gdb/windows-tdep.c b/gdb/windows-tdep.c
index a5243dc..d8858a7 100644
--- a/gdb/windows-tdep.c
+++ b/gdb/windows-tdep.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -36,7 +36,6 @@
#include "gdbcore.h"
#include "coff/internal.h"
#include "libcoff.h"
-#include "solist.h"
#define CYGWIN_DLL_NAME "cygwin1.dll"
@@ -478,7 +477,7 @@ display_one_tib (ptid_t ptid)
tib = (gdb_byte *) alloca (tib_size);
- if (target_get_tib_address (ptid, &thread_local_base) == 0)
+ if (!target_get_tib_address (ptid, &thread_local_base))
{
gdb_printf (_("Unable to get thread local base for %s\n"),
target_pid_to_str (ptid).c_str ());
diff --git a/gdb/windows-tdep.h b/gdb/windows-tdep.h
index 4427b25..87a618e 100644
--- a/gdb/windows-tdep.h
+++ b/gdb/windows-tdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2008-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2008-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/x86-bsd-nat.c b/gdb/x86-bsd-nat.c
index 2bdd385..0c9ddfd 100644
--- a/gdb/x86-bsd-nat.c
+++ b/gdb/x86-bsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for X86 BSD's.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/x86-bsd-nat.h b/gdb/x86-bsd-nat.h
index b174544..95ae46c 100644
--- a/gdb/x86-bsd-nat.h
+++ b/gdb/x86-bsd-nat.h
@@ -1,6 +1,6 @@
/* Native-dependent code for x86 BSD's.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/x86-fbsd-nat.c b/gdb/x86-fbsd-nat.c
index bfd15bf..99a1be4 100644
--- a/gdb/x86-fbsd-nat.c
+++ b/gdb/x86-fbsd-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for FreeBSD x86.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/x86-fbsd-nat.h b/gdb/x86-fbsd-nat.h
index 66f2b2f..9dee8b8 100644
--- a/gdb/x86-fbsd-nat.h
+++ b/gdb/x86-fbsd-nat.h
@@ -1,6 +1,6 @@
/* Native-dependent code for FreeBSD x86.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/i386-gnu-nat.c b/gdb/x86-gnu-nat.c
index 52d4a4b..b9ba95b 100644
--- a/gdb/i386-gnu-nat.c
+++ b/gdb/x86-gnu-nat.c
@@ -1,6 +1,6 @@
/* Low level interface to i386 running the GNU Hurd.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -34,7 +34,13 @@ extern "C"
#include "floatformat.h"
#include "regcache.h"
+
+#ifdef __x86_64__
+#include "amd64-tdep.h"
+#include "amd64-nat.h"
+#else
#include "i386-tdep.h"
+#endif
#include "inf-child.h"
#include "i387-tdep.h"
@@ -42,21 +48,82 @@ extern "C"
/* Offset to the thread_state_t location where REG is stored. */
#define REG_OFFSET(reg) offsetof (struct i386_thread_state, reg)
+#ifdef __x86_64__
+
/* At REG_OFFSET[N] is the offset to the thread_state_t location where
the GDB register N is stored. */
-static int reg_offset[] =
+static int amd64_gnu_thread_state_reg_offset[] =
{
- REG_OFFSET (eax), REG_OFFSET (ecx), REG_OFFSET (edx), REG_OFFSET (ebx),
- REG_OFFSET (uesp), REG_OFFSET (ebp), REG_OFFSET (esi), REG_OFFSET (edi),
- REG_OFFSET (eip), REG_OFFSET (efl), REG_OFFSET (cs), REG_OFFSET (ss),
- REG_OFFSET (ds), REG_OFFSET (es), REG_OFFSET (fs), REG_OFFSET (gs)
+ REG_OFFSET (rax), /* %rax */
+ REG_OFFSET (rbx), /* %rbx */
+ REG_OFFSET (rcx), /* %rcx */
+ REG_OFFSET (rdx), /* %rdx */
+ REG_OFFSET (rsi), /* %rsi */
+ REG_OFFSET (rdi), /* %rdi */
+ REG_OFFSET (rbp), /* %rbp */
+ REG_OFFSET (ursp), /* %rsp */
+ REG_OFFSET (r8), /* %r8 ... */
+ REG_OFFSET (r9),
+ REG_OFFSET (r10),
+ REG_OFFSET (r11),
+ REG_OFFSET (r12),
+ REG_OFFSET (r13),
+ REG_OFFSET (r14),
+ REG_OFFSET (r15), /* ... %r15 */
+ REG_OFFSET (rip), /* %rip */
+ REG_OFFSET (rfl), /* %rflags */
+ REG_OFFSET (cs) /* %cs */
};
-#define REG_ADDR(state, regnum) ((char *)(state) + reg_offset[regnum])
+static const int amd64_gnu_thread_state_num_regs =
+ ARRAY_SIZE (amd64_gnu_thread_state_reg_offset);
+
+#define REG_ADDR(state, regnum) \
+ ((char *)(state) + amd64_gnu_thread_state_reg_offset[regnum])
+#define VALID_REGISTER(regnum) \
+ ((regnum) >= 0 && (regnum) < amd64_gnu_thread_state_num_regs)
+#define NUM_GREGS amd64_gnu_thread_state_num_regs
+#define FLAGS_REGISTER rfl
+
+#else
+
+/* At REG_OFFSET[N] is the offset to the thread_state_t location where
+ the GDB register N is stored. */
+static int i386_gnu_thread_state_reg_offset[] =
+{
+ REG_OFFSET (eax), /* %eax */
+ REG_OFFSET (ecx), /* %ecx */
+ REG_OFFSET (edx), /* %edx */
+ REG_OFFSET (ebx), /* %ebx */
+ REG_OFFSET (uesp), /* %esp */
+ REG_OFFSET (ebp), /* %ebp */
+ REG_OFFSET (esi), /* %esi */
+ REG_OFFSET (edi), /* %edi */
+ REG_OFFSET (eip), /* %eip */
+ REG_OFFSET (efl), /* %efl */
+ REG_OFFSET (cs), /* %cs */
+ REG_OFFSET (ss), /* %ss */
+ REG_OFFSET (ds), /* %ds */
+ REG_OFFSET (es), /* %es */
+ REG_OFFSET (fs), /* %fs */
+ REG_OFFSET (gs) /* gs */
+};
+
+static const int i386_gnu_thread_state_num_regs =
+ ARRAY_SIZE (i386_gnu_thread_state_reg_offset);
+
+#define REG_ADDR(state, regnum) \
+ ((char *)(state) + i386_gnu_thread_state_reg_offset[regnum])
+#define VALID_REGISTER(regnum) \
+ ((regnum) >= 0 && (regnum) < i386_gnu_thread_state_num_regs)
+#define NUM_GREGS i386_gnu_thread_state_num_regs
+#define FLAGS_REGISTER efl
+
+#endif /* __x86_64__ */
-/* The i386 GNU Hurd target. */
+/* The x86 GNU Hurd target. */
#ifdef i386_DEBUG_STATE
using gnu_base_target = x86_nat_target<gnu_nat_target>;
@@ -64,13 +131,13 @@ using gnu_base_target = x86_nat_target<gnu_nat_target>;
using gnu_base_target = gnu_nat_target;
#endif
-struct i386_gnu_nat_target final : public gnu_base_target
+struct x86_gnu_nat_target final : public gnu_base_target
{
void fetch_registers (struct regcache *, int) override;
void store_registers (struct regcache *, int) override;
};
-static i386_gnu_nat_target the_i386_gnu_nat_target;
+static x86_gnu_nat_target the_x86_gnu_nat_target;
/* Get the whole floating-point state of THREAD and record the values
of the corresponding (pseudo) registers. */
@@ -105,7 +172,7 @@ fetch_fpregs (struct regcache *regcache, struct proc *thread)
/* Fetch register REGNO, or all regs if REGNO is -1. */
void
-i386_gnu_nat_target::fetch_registers (struct regcache *regcache, int regno)
+x86_gnu_nat_target::fetch_registers (struct regcache *regcache, int regno)
{
struct proc *thread;
ptid_t ptid = regcache->ptid ();
@@ -118,7 +185,7 @@ i386_gnu_nat_target::fetch_registers (struct regcache *regcache, int regno)
error (_("Can't fetch registers from thread %s: No such thread"),
target_pid_to_str (ptid).c_str ());
- if (regno < I386_NUM_GREGS || regno == -1)
+ if (VALID_REGISTER (regno) || regno == -1)
{
thread_state_t state;
@@ -137,7 +204,7 @@ i386_gnu_nat_target::fetch_registers (struct regcache *regcache, int regno)
proc_debug (thread, "fetching all register");
- for (i = 0; i < I386_NUM_GREGS; i++)
+ for (i = 0; i < NUM_GREGS; i++)
regcache->raw_supply (i, REG_ADDR (state, i));
thread->fetched_regs = ~0;
}
@@ -152,7 +219,7 @@ i386_gnu_nat_target::fetch_registers (struct regcache *regcache, int regno)
}
}
- if (regno >= I386_NUM_GREGS || regno == -1)
+ if (!VALID_REGISTER(regno) || regno == -1)
{
proc_debug (thread, "fetching floating-point registers");
@@ -195,7 +262,7 @@ store_fpregs (const struct regcache *regcache, struct proc *thread, int regno)
/* Store at least register REGNO, or all regs if REGNO == -1. */
void
-i386_gnu_nat_target::store_registers (struct regcache *regcache, int regno)
+x86_gnu_nat_target::store_registers (struct regcache *regcache, int regno)
{
struct proc *thread;
struct gdbarch *gdbarch = regcache->arch ();
@@ -209,7 +276,7 @@ i386_gnu_nat_target::store_registers (struct regcache *regcache, int regno)
error (_("Couldn't store registers into thread %s: No such thread"),
target_pid_to_str (ptid).c_str ());
- if (regno < I386_NUM_GREGS || regno == -1)
+ if (VALID_REGISTER (regno) || regno == -1)
{
thread_state_t state;
thread_state_data_t old_state;
@@ -230,14 +297,14 @@ i386_gnu_nat_target::store_registers (struct regcache *regcache, int regno)
/* Save the T bit. We might try to restore the %eflags register
below, but changing the T bit would seriously confuse GDB. */
- trace = ((struct i386_thread_state *)state)->efl & 0x100;
+ trace = ((struct i386_thread_state *)state)->FLAGS_REGISTER & 0x100;
if (!was_aborted && was_valid)
/* See which registers have changed after aborting the thread. */
{
int check_regno;
- for (check_regno = 0; check_regno < I386_NUM_GREGS; check_regno++)
+ for (check_regno = 0; check_regno < NUM_GREGS; check_regno++)
if ((thread->fetched_regs & (1 << check_regno))
&& memcpy (REG_ADDR (&old_state, check_regno),
REG_ADDR (state, check_regno),
@@ -262,7 +329,7 @@ i386_gnu_nat_target::store_registers (struct regcache *regcache, int regno)
proc_debug (thread, "storing all registers");
- for (i = 0; i < I386_NUM_GREGS; i++)
+ for (i = 0; i < NUM_GREGS; i++)
if (REG_VALID == regcache->get_register_status (i))
regcache->raw_collect (i, REG_ADDR (state, i));
}
@@ -276,11 +343,11 @@ i386_gnu_nat_target::store_registers (struct regcache *regcache, int regno)
}
/* Restore the T bit. */
- ((struct i386_thread_state *)state)->efl &= ~0x100;
- ((struct i386_thread_state *)state)->efl |= trace;
+ ((struct i386_thread_state *)state)->FLAGS_REGISTER &= ~0x100;
+ ((struct i386_thread_state *)state)->FLAGS_REGISTER |= trace;
}
- if (regno >= I386_NUM_GREGS || regno == -1)
+ if (!VALID_REGISTER (regno) || regno == -1)
{
proc_debug (thread, "storing floating-point registers");
@@ -295,7 +362,7 @@ i386_gnu_nat_target::store_registers (struct regcache *regcache, int regno)
/* Get debug registers for thread THREAD. */
static void
-i386_gnu_dr_get (struct i386_debug_state *regs, struct proc *thread)
+x86_gnu_dr_get (struct i386_debug_state *regs, struct proc *thread)
{
mach_msg_type_number_t count = i386_DEBUG_STATE_COUNT;
kern_return_t err;
@@ -310,7 +377,7 @@ i386_gnu_dr_get (struct i386_debug_state *regs, struct proc *thread)
/* Set debug registers for thread THREAD. */
static void
-i386_gnu_dr_set (const struct i386_debug_state *regs, struct proc *thread)
+x86_gnu_dr_set (const struct i386_debug_state *regs, struct proc *thread)
{
kern_return_t err;
@@ -324,23 +391,23 @@ i386_gnu_dr_set (const struct i386_debug_state *regs, struct proc *thread)
/* Set DR_CONTROL in THREAD. */
static void
-i386_gnu_dr_set_control_one (struct proc *thread, void *arg)
+x86_gnu_dr_set_control_one (struct proc *thread, void *arg)
{
unsigned long *control = (unsigned long *) arg;
struct i386_debug_state regs;
- i386_gnu_dr_get (&regs, thread);
+ x86_gnu_dr_get (&regs, thread);
regs.dr[DR_CONTROL] = *control;
- i386_gnu_dr_set (&regs, thread);
+ x86_gnu_dr_set (&regs, thread);
}
/* Set DR_CONTROL to CONTROL in all threads. */
static void
-i386_gnu_dr_set_control (unsigned long control)
+x86_gnu_dr_set_control (unsigned long control)
{
inf_update_procs (gnu_current_inf);
- inf_threads (gnu_current_inf, i386_gnu_dr_set_control_one, &control);
+ inf_threads (gnu_current_inf, x86_gnu_dr_set_control_one, &control);
}
/* Parameters to set a debugging address. */
@@ -354,20 +421,20 @@ struct reg_addr
/* Set address REGNUM (zero based) to ADDR in THREAD. */
static void
-i386_gnu_dr_set_addr_one (struct proc *thread, void *arg)
+x86_gnu_dr_set_addr_one (struct proc *thread, void *arg)
{
struct reg_addr *reg_addr = (struct reg_addr *) arg;
struct i386_debug_state regs;
- i386_gnu_dr_get (&regs, thread);
+ x86_gnu_dr_get (&regs, thread);
regs.dr[reg_addr->regnum] = reg_addr->addr;
- i386_gnu_dr_set (&regs, thread);
+ x86_gnu_dr_set (&regs, thread);
}
/* Set address REGNUM (zero based) to ADDR in all threads. */
static void
-i386_gnu_dr_set_addr (int regnum, CORE_ADDR addr)
+x86_gnu_dr_set_addr (int regnum, CORE_ADDR addr)
{
struct reg_addr reg_addr;
@@ -377,13 +444,13 @@ i386_gnu_dr_set_addr (int regnum, CORE_ADDR addr)
reg_addr.addr = addr;
inf_update_procs (gnu_current_inf);
- inf_threads (gnu_current_inf, i386_gnu_dr_set_addr_one, &reg_addr);
+ inf_threads (gnu_current_inf, x86_gnu_dr_set_addr_one, &reg_addr);
}
/* Get debug register REGNUM value from only the one LWP of PTID. */
static unsigned long
-i386_gnu_dr_get_reg (ptid_t ptid, int regnum)
+x86_gnu_dr_get_reg (ptid_t ptid, int regnum)
{
struct i386_debug_state regs;
struct proc *thread;
@@ -392,7 +459,7 @@ i386_gnu_dr_get_reg (ptid_t ptid, int regnum)
inf_update_procs (gnu_current_inf);
thread = inf_tid_to_thread (gnu_current_inf, ptid.lwp ());
- i386_gnu_dr_get (&regs, thread);
+ x86_gnu_dr_get (&regs, thread);
return regs.dr[regnum];
}
@@ -400,46 +467,50 @@ i386_gnu_dr_get_reg (ptid_t ptid, int regnum)
/* Return the inferior's debug register REGNUM. */
static CORE_ADDR
-i386_gnu_dr_get_addr (int regnum)
+x86_gnu_dr_get_addr (int regnum)
{
gdb_assert (DR_FIRSTADDR <= regnum && regnum <= DR_LASTADDR);
- return i386_gnu_dr_get_reg (inferior_ptid, regnum);
+ return x86_gnu_dr_get_reg (inferior_ptid, regnum);
}
/* Get DR_STATUS from only the one thread of INFERIOR_PTID. */
static unsigned long
-i386_gnu_dr_get_status (void)
+x86_gnu_dr_get_status (void)
{
- return i386_gnu_dr_get_reg (inferior_ptid, DR_STATUS);
+ return x86_gnu_dr_get_reg (inferior_ptid, DR_STATUS);
}
/* Return the inferior's DR7 debug control register. */
static unsigned long
-i386_gnu_dr_get_control (void)
+x86_gnu_dr_get_control (void)
{
- return i386_gnu_dr_get_reg (inferior_ptid, DR_CONTROL);
+ return x86_gnu_dr_get_reg (inferior_ptid, DR_CONTROL);
}
#endif /* i386_DEBUG_STATE */
-void _initialize_i386gnu_nat ();
+void _initialize_x86_gnu_nat ();
void
-_initialize_i386gnu_nat ()
+_initialize_x86_gnu_nat ()
{
#ifdef i386_DEBUG_STATE
- x86_dr_low.set_control = i386_gnu_dr_set_control;
+ x86_dr_low.set_control = x86_gnu_dr_set_control;
gdb_assert (DR_FIRSTADDR == 0 && DR_LASTADDR < i386_DEBUG_STATE_COUNT);
- x86_dr_low.set_addr = i386_gnu_dr_set_addr;
- x86_dr_low.get_addr = i386_gnu_dr_get_addr;
- x86_dr_low.get_status = i386_gnu_dr_get_status;
- x86_dr_low.get_control = i386_gnu_dr_get_control;
+ x86_dr_low.set_addr = x86_gnu_dr_set_addr;
+ x86_dr_low.get_addr = x86_gnu_dr_get_addr;
+ x86_dr_low.get_status = x86_gnu_dr_get_status;
+ x86_dr_low.get_control = x86_gnu_dr_get_control;
+#ifdef __x86_64__
+ x86_set_debug_register_length (8);
+#else
x86_set_debug_register_length (4);
+#endif
#endif /* i386_DEBUG_STATE */
- gnu_target = &the_i386_gnu_nat_target;
+ gnu_target = &the_x86_gnu_nat_target;
/* Register the target. */
- add_inf_child_target (&the_i386_gnu_nat_target);
+ add_inf_child_target (&the_x86_gnu_nat_target);
}
diff --git a/gdb/x86-linux-nat.c b/gdb/x86-linux-nat.c
index 2afa04f..fc7c5f6 100644
--- a/gdb/x86-linux-nat.c
+++ b/gdb/x86-linux-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux x86 (i386 and x86-64).
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/x86-linux-nat.h b/gdb/x86-linux-nat.h
index 3c2241b..a62cc4d 100644
--- a/gdb/x86-linux-nat.h
+++ b/gdb/x86-linux-nat.h
@@ -1,6 +1,6 @@
/* Native-dependent code for GNU/Linux x86 (i386 and x86-64).
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/x86-nat.c b/gdb/x86-nat.c
index 84c835f..eb44dd5 100644
--- a/gdb/x86-nat.c
+++ b/gdb/x86-nat.c
@@ -1,6 +1,6 @@
/* Native-dependent code for x86 (i386 and x86-64).
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/x86-nat.h b/gdb/x86-nat.h
index 1b8fdd3..6197218 100644
--- a/gdb/x86-nat.h
+++ b/gdb/x86-nat.h
@@ -3,7 +3,7 @@
Low level functions to implement Operating System specific
code to manipulate x86 debug registers.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/x86-tdep.c b/gdb/x86-tdep.c
index e50b5fb..6646b11 100644
--- a/gdb/x86-tdep.c
+++ b/gdb/x86-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for X86-based targets.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/x86-tdep.h b/gdb/x86-tdep.h
index 2b5853a..35e3905 100644
--- a/gdb/x86-tdep.h
+++ b/gdb/x86-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for X86-based targets.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/xcoffread.c b/gdb/xcoffread.c
index 639dd5b..e91c64c 100644
--- a/gdb/xcoffread.c
+++ b/gdb/xcoffread.c
@@ -1,5 +1,5 @@
/* Read AIX xcoff symbol tables and convert to internal format, for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
Derived from coffread.c, dbxread.c, and a lot of hacking.
Contributed by IBM Corporation.
@@ -970,7 +970,7 @@ read_xcoff_symtab (struct objfile *objfile, legacy_psymtab *pst)
while (symnum < max_symnum)
{
- QUIT; /* make this command interruptable. */
+ QUIT; /* make this command interruptible. */
/* READ_ONE_SYMBOL (symbol, cs, symname_alloced); */
/* read one symbol into `cs' structure. After processing the
@@ -1371,7 +1371,7 @@ read_xcoff_symtab (struct objfile *objfile, legacy_psymtab *pst)
case C_BINCL:
/* beginning of include file */
/* In xlc output, C_BINCL/C_EINCL pair doesn't show up in sorted
- order. Thus, when wee see them, we might not know enough info
+ order. Thus, when we see them, we might not know enough info
to process them. Thus, we'll be saving them into a table
(inclTable) and postpone their processing. */
@@ -2807,6 +2807,7 @@ xcoff_initial_scan (struct objfile *objfile, symfile_add_flags symfile_flags)
if (num_symbols > 0)
{
+ stabs_deprecated_warning ();
/* Read the string table. */
init_stringtab (abfd, stringtab_offset, objfile);
diff --git a/gdb/xcoffread.h b/gdb/xcoffread.h
index 7528dec..41cceaf 100644
--- a/gdb/xcoffread.h
+++ b/gdb/xcoffread.h
@@ -1,5 +1,5 @@
/* Read AIX xcoff symbol tables and convert to internal format, for GDB.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/xml-builtin.h b/gdb/xml-builtin.h
index 463e0fb..d78b686 100644
--- a/gdb/xml-builtin.h
+++ b/gdb/xml-builtin.h
@@ -1,6 +1,6 @@
/* Header file for builtin XML files.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/xml-support.c b/gdb/xml-support.c
index 33c8e41..fb8b612 100644
--- a/gdb/xml-support.c
+++ b/gdb/xml-support.c
@@ -1,6 +1,6 @@
/* Helper routines for parsing XML using Expat.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/xml-support.h b/gdb/xml-support.h
index f467d7f..f699269 100644
--- a/gdb/xml-support.h
+++ b/gdb/xml-support.h
@@ -1,6 +1,6 @@
/* Helper routines for parsing XML using Expat.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/xml-syscall.c b/gdb/xml-syscall.c
index 2373d0f..b58fe5d0 100644
--- a/gdb/xml-syscall.c
+++ b/gdb/xml-syscall.c
@@ -1,7 +1,7 @@
/* Functions that provide the mechanism to parse a syscall XML file
and get its values.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -319,7 +319,7 @@ xml_init_syscalls_info (const char *filename)
if (!full_file)
return NULL;
- const std::string dirname = ldirname (filename);
+ const std::string dirname = gdb_ldirname (filename);
auto fetch_another = [&dirname] (const char *name)
{
return xml_fetch_content_from_file (name, dirname.c_str ());
diff --git a/gdb/xml-syscall.h b/gdb/xml-syscall.h
index 579805d..77ff928 100644
--- a/gdb/xml-syscall.h
+++ b/gdb/xml-syscall.h
@@ -1,7 +1,7 @@
/* Functions that provide the mechanism to parse a syscall XML file
and get its values.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/xml-tdesc.c b/gdb/xml-tdesc.c
index 436c493..2f213dc 100644
--- a/gdb/xml-tdesc.c
+++ b/gdb/xml-tdesc.c
@@ -1,6 +1,6 @@
/* XML target description support for GDB.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
Contributed by CodeSourcery.
@@ -25,7 +25,7 @@
#include "xml-tdesc.h"
#include "osabi.h"
#include "filenames.h"
-#include <unordered_map>
+#include "gdbsupport/unordered_map.h"
#include <string>
/* Maximum sizes.
@@ -64,7 +64,7 @@ tdesc_parse_xml (const char *document, xml_fetch_another fetcher)
then we will create unnecessary duplicate gdbarches. See
gdbarch_list_lookup_by_info. */
-static std::unordered_map<std::string, target_desc_up> xml_cache;
+static gdb::unordered_map<std::string, target_desc_up> xml_cache;
/* Callback data for target description parsing. */
@@ -670,7 +670,7 @@ file_read_description_xml (const char *filename)
return NULL;
}
- const std::string dirname = ldirname (filename);
+ const std::string dirname = gdb_ldirname (filename);
auto fetch_another = [&dirname] (const char *name)
{
return xml_fetch_content_from_file (name, dirname.c_str ());
diff --git a/gdb/xml-tdesc.h b/gdb/xml-tdesc.h
index ec71c68..75c6e02 100644
--- a/gdb/xml-tdesc.h
+++ b/gdb/xml-tdesc.h
@@ -1,6 +1,6 @@
/* XML target description support for GDB.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
Contributed by CodeSourcery.
diff --git a/gdb/xstormy16-tdep.c b/gdb/xstormy16-tdep.c
index e7f4e6f..8482461 100644
--- a/gdb/xstormy16-tdep.c
+++ b/gdb/xstormy16-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the Sanyo Xstormy16a (LC590000) processor.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -435,7 +435,7 @@ xstormy16_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
return sal.end;
}
}
- /* No useable line symbol. Use result of prologue parsing method. */
+ /* No usable line symbol. Use result of prologue parsing method. */
return plg_end;
}
diff --git a/gdb/xtensa-config.c b/gdb/xtensa-config.c
index 77eb922..b9d388b 100644
--- a/gdb/xtensa-config.c
+++ b/gdb/xtensa-config.c
@@ -1,6 +1,6 @@
/* Configuration for the Xtensa architecture for GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/xtensa-linux-nat.c b/gdb/xtensa-linux-nat.c
index f8509b0..11fbf55 100644
--- a/gdb/xtensa-linux-nat.c
+++ b/gdb/xtensa-linux-nat.c
@@ -1,6 +1,6 @@
/* Xtensa GNU/Linux native support.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/xtensa-linux-tdep.c b/gdb/xtensa-linux-tdep.c
index 7c215e3..b72d683 100644
--- a/gdb/xtensa-linux-tdep.c
+++ b/gdb/xtensa-linux-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for GNU/Linux on Xtensa processors.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c
index c87940c..a4bbffb 100644
--- a/gdb/xtensa-tdep.c
+++ b/gdb/xtensa-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the Xtensa port of GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -1767,7 +1767,7 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch,
arg_type = builtin_type (gdbarch)->builtin_long;
arg = value_cast (arg_type, arg);
}
- /* Aligment is equal to the type length for the basic types. */
+ /* Alignment is equal to the type length for the basic types. */
info->align = arg_type->length ();
break;
diff --git a/gdb/xtensa-tdep.h b/gdb/xtensa-tdep.h
index 832b4fb..2e7e19b 100644
--- a/gdb/xtensa-tdep.h
+++ b/gdb/xtensa-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for the Xtensa port of GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/xtensa-xtregs.c b/gdb/xtensa-xtregs.c
index bd2c1a3..d86b5fd 100644
--- a/gdb/xtensa-xtregs.c
+++ b/gdb/xtensa-xtregs.c
@@ -1,5 +1,5 @@
/* Table mapping between kernel xtregset and GDB register cache.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/yy-remap.h b/gdb/yy-remap.h
index af74961..bb6cef0 100644
--- a/gdb/yy-remap.h
+++ b/gdb/yy-remap.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1986-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdb/z80-tdep.c b/gdb/z80-tdep.c
index c75b6ff..5fc71fa 100644
--- a/gdb/z80-tdep.c
+++ b/gdb/z80-tdep.c
@@ -1,6 +1,6 @@
/* Target-dependent code for the Z80.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -1331,14 +1331,14 @@ ez80_ddfd_insn_table[] =
{ 0007, 0307, 2, insn_default }, //"ld rr,(ii+d)"
{ 0061, 0377, 2, insn_default }, //"ld ii,(ii+d)"
/* common instructions */
- { 0011, 0367, 2, insn_default }, //"add ii,rr"
+ { 0011, 0317, 1, insn_default }, //"add ii,rr"
{ 0041, 0377, 3, insn_default }, //"ld ii,nn"
{ 0042, 0367, 3, insn_default }, //"ld (nn),ii", "ld ii,(nn)"
{ 0043, 0367, 1, insn_default }, //"inc ii", "dec ii"
{ 0044, 0366, 1, insn_default }, //"inc/dec iih/iil"
{ 0046, 0367, 2, insn_default }, //"ld iih,n", "ld iil,n"
{ 0064, 0376, 2, insn_default }, //"inc (ii+d)", "dec (ii+d)"
- { 0066, 0377, 2, insn_default }, //"ld (ii+d),n"
+ { 0066, 0377, 3, insn_default }, //"ld (ii+d),n"
{ 0166, 0377, 0, insn_default }, //not an instruction
{ 0160, 0370, 2, insn_default }, //"ld (ii+d),r"
{ 0104, 0306, 1, insn_default }, //"ld r,iih", "ld r,iil"
@@ -1360,7 +1360,7 @@ ez80_adl_ddfd_insn_table[] =
{
{ 0007, 0307, 2, insn_default }, //"ld rr,(ii+d)"
{ 0061, 0377, 2, insn_default }, //"ld ii,(ii+d)"
- { 0011, 0367, 1, insn_default }, //"add ii,rr"
+ { 0011, 0317, 1, insn_default }, //"add ii,rr"
{ 0041, 0377, 4, insn_default }, //"ld ii,nn"
{ 0042, 0367, 4, insn_default }, //"ld (nn),ii", "ld ii,(nn)"
{ 0043, 0367, 1, insn_default }, //"inc ii", "dec ii"
diff --git a/gdb/z80-tdep.h b/gdb/z80-tdep.h
index 19a7d04..b893fa7 100644
--- a/gdb/z80-tdep.h
+++ b/gdb/z80-tdep.h
@@ -1,6 +1,6 @@
/* Target-dependent code for the Z80.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/.dir-locals.el b/gdbserver/.dir-locals.el
index eb4edba..8228d2b 100644
--- a/gdbserver/.dir-locals.el
+++ b/gdbserver/.dir-locals.el
@@ -1,5 +1,5 @@
;; Emacs settings.
-;; Copyright (C) 2012-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2025 Free Software Foundation, Inc.
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
diff --git a/gdbserver/Makefile.in b/gdbserver/Makefile.in
index 491882e..dbcc18a 100644
--- a/gdbserver/Makefile.in
+++ b/gdbserver/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 1989-2024 Free Software Foundation, Inc.
+# Copyright (C) 1989-2025 Free Software Foundation, Inc.
# This file is part of GDB.
@@ -194,6 +194,7 @@ SFILES = \
$(srcdir)/linux-loongarch-low.cc \
$(srcdir)/linux-low.cc \
$(srcdir)/linux-m68k-low.cc \
+ $(srcdir)/linux-microblaze-low.cc \
$(srcdir)/linux-mips-low.cc \
$(srcdir)/linux-or1k-low.cc \
$(srcdir)/linux-ppc-low.cc \
diff --git a/gdbserver/ax-result-types.def b/gdbserver/ax-result-types.def
index 67188a7..a5cd933 100644
--- a/gdbserver/ax-result-types.def
+++ b/gdbserver/ax-result-types.def
@@ -1,6 +1,6 @@
/* Agent expression result types.
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/ax.cc b/gdbserver/ax.cc
index ff42795..567ef7f 100644
--- a/gdbserver/ax.cc
+++ b/gdbserver/ax.cc
@@ -1,5 +1,5 @@
/* Agent expression code for remote server.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/ax.h b/gdbserver/ax.h
index 12f9569..ff8a1f5 100644
--- a/gdbserver/ax.h
+++ b/gdbserver/ax.h
@@ -1,5 +1,5 @@
/* Data structures and functions associated with agent expressions in GDB.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/configure b/gdbserver/configure
index 7ff1124..b45b55f 100755
--- a/gdbserver/configure
+++ b/gdbserver/configure
@@ -13671,22 +13671,36 @@ if test "${ERROR_ON_WARNING}" = yes ; then
fi
# The options we'll try to enable.
-build_warnings="-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 \
--Wno-error=deprecated-register \
--Wsuggest-override \
--Wimplicit-fallthrough=5 \
--Wduplicated-cond \
--Wshadow=local \
+build_warnings=" \
+-Wall \
-Wdeprecated-copy \
-Wdeprecated-copy-dtor \
--Wredundant-move \
+-Wduplicated-cond \
+-Wempty-body \
+-Wimplicit-fallthrough=5 \
-Wmissing-declarations \
+-Wno-char-subscripts \
+-Wno-error=deprecated-register \
+-Wno-mismatched-tags \
+-Wno-sign-compare -Wno-error=maybe-uninitialized \
+-Wno-switch \
+-Wno-unused \
+-Wpointer-arith \
+-Wredundant-move \
+-Wshadow=local \
-Wstrict-null-sentinel \
+-Wsuggest-override \
+-Wunused-but-set-parameter \
+-Wunused-but-set-variable \
+-Wunused-const-variable=1 \
+-Wunused-function \
+-Wunused-label \
+-Wunused-lambda-capture \
+-Wunused-local-typedefs \
+-Wunused-member-function \
+-Wunused-private-field \
+-Wunused-value \
+-Wunused-variable \
-Wvla \
"
@@ -14083,7 +14097,7 @@ case "${target}" in
# Starting with NDK version 9, <elf.h> actually includes definitions
# of Elf32_auxv_t and Elf64_auxv_t. But sadly, <elf.h> includes
# <sys/exec_elf.h> which defines some of the ELF types incorrectly,
- # leading to conflicts with the defintions from <linux/elf.h>.
+ # leading to conflicts with the definitions from <linux/elf.h>.
# This makes it impossible for us to include both <elf.h> and
# <linux/elf.h>, which means that, in practice, we do not have
# access to Elf32_auxv_t and Elf64_auxv_t on this platform.
diff --git a/gdbserver/configure.ac b/gdbserver/configure.ac
index 7a15b8f..bd2cac8 100644
--- a/gdbserver/configure.ac
+++ b/gdbserver/configure.ac
@@ -1,5 +1,5 @@
dnl Autoconf configure script for GDB server.
-dnl Copyright (C) 2000-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 2000-2025 Free Software Foundation, Inc.
dnl
dnl This file is part of GDB.
dnl
@@ -138,7 +138,7 @@ case "${target}" in
# Starting with NDK version 9, <elf.h> actually includes definitions
# of Elf32_auxv_t and Elf64_auxv_t. But sadly, <elf.h> includes
# <sys/exec_elf.h> which defines some of the ELF types incorrectly,
- # leading to conflicts with the defintions from <linux/elf.h>.
+ # leading to conflicts with the definitions from <linux/elf.h>.
# This makes it impossible for us to include both <elf.h> and
# <linux/elf.h>, which means that, in practice, we do not have
# access to Elf32_auxv_t and Elf64_auxv_t on this platform.
diff --git a/gdbserver/configure.srv b/gdbserver/configure.srv
index e8dc8ef..6281cda 100644
--- a/gdbserver/configure.srv
+++ b/gdbserver/configure.srv
@@ -169,6 +169,13 @@ case "${gdbserver_host}" in
srv_linux_regsets=yes
srv_linux_thread_db=yes
;;
+ microblaze*-*-linux*) srv_regobj="microblaze-linux.o"
+ srv_tgtobj="$srv_linux_obj linux-microblaze-low.o"
+ srv_xmlfiles="microblaze-linux.xml"
+ srv_xmlfiles="${srv_xmlfiles} microblaze-core.xml"
+ srv_linux_usrregs=yes
+ srv_linux_thread_db=yes
+ ;;
mips*-*-linux*) srv_regobj="mips-linux.o"
srv_regobj="${srv_regobj} mips-dsp-linux.o"
srv_regobj="${srv_regobj} mips64-linux.o"
diff --git a/gdbserver/debug.cc b/gdbserver/debug.cc
index 3d05a76..0370608 100644
--- a/gdbserver/debug.cc
+++ b/gdbserver/debug.cc
@@ -1,5 +1,5 @@
/* Debugging routines for the remote server for GDB.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/debug.h b/gdbserver/debug.h
index eb6f695..eec87eb 100644
--- a/gdbserver/debug.h
+++ b/gdbserver/debug.h
@@ -1,5 +1,5 @@
/* Debugging routines for the remote server for GDB.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/dll.cc b/gdbserver/dll.cc
index f49aa56..5ce8b2b 100644
--- a/gdbserver/dll.cc
+++ b/gdbserver/dll.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2002-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/dll.h b/gdbserver/dll.h
index e603df4..b5d9c39 100644
--- a/gdbserver/dll.h
+++ b/gdbserver/dll.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/fork-child.cc b/gdbserver/fork-child.cc
index 7e4c69b..2e960a9 100644
--- a/gdbserver/fork-child.cc
+++ b/gdbserver/fork-child.cc
@@ -1,5 +1,5 @@
/* Fork a Unix child process, and set up to debug it, for GDBserver.
- Copyright (C) 1989-2024 Free Software Foundation, Inc.
+ Copyright (C) 1989-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/gdb_proc_service.h b/gdbserver/gdb_proc_service.h
index fdddd1b..9a1e45c 100644
--- a/gdbserver/gdb_proc_service.h
+++ b/gdbserver/gdb_proc_service.h
@@ -1,5 +1,5 @@
/* <proc_service.h> replacement for systems that don't have it.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/gdbreplay.cc b/gdbserver/gdbreplay.cc
index 58e584b..44aa2fb 100644
--- a/gdbserver/gdbreplay.cc
+++ b/gdbserver/gdbreplay.cc
@@ -1,5 +1,5 @@
/* Replay a remote debug session logfile for GDB.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Written by Fred Fish (fnf@cygnus.com) from pieces of gdbserver.
This file is part of GDB.
@@ -441,7 +441,7 @@ play (FILE *fp)
}
/* Packet starts with '+$' or '$', we don't want to calculate those
- to the checksum, substract the offset to adjust the line length.
+ to the checksum, subtract the offset to adjust the line length.
If the line starts with '$', the offset remains set to 1. */
if (line[0] == '+')
offset = 2;
diff --git a/gdbserver/gdbthread.h b/gdbserver/gdbthread.h
index d6e90b1..5e61301 100644
--- a/gdbserver/gdbthread.h
+++ b/gdbserver/gdbthread.h
@@ -1,5 +1,5 @@
/* Multi-thread control defs for remote server for GDB.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/hostio.cc b/gdbserver/hostio.cc
index cc47d68..69729a8 100644
--- a/gdbserver/hostio.cc
+++ b/gdbserver/hostio.cc
@@ -1,5 +1,5 @@
/* Host file transfer support for gdbserver.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
Contributed by CodeSourcery.
@@ -89,12 +89,18 @@ require_filename (char **pp, char *filename)
return 0;
}
+template <typename T>
static int
-require_int (char **pp, int *value)
+require_int (char **pp, T *value)
{
+ constexpr bool is_signed = std::is_signed<T>::value;
+
char *p;
int count, firstdigit;
+ /* Max count of hexadecimal digits in T (1 hex digit is 4 bits). */
+ int max_count = sizeof (T) * CHAR_BIT / 4;
+
p = *pp;
*value = 0;
count = 0;
@@ -111,7 +117,8 @@ require_int (char **pp, int *value)
firstdigit = nib;
/* Don't allow overflow. */
- if (count >= 8 || (count == 7 && firstdigit >= 0x8))
+ if (count >= max_count
+ || (is_signed && count == (max_count - 1) && firstdigit >= 0x8))
return -1;
*value = *value * 16 + nib;
@@ -343,7 +350,8 @@ handle_open (char *own_buf)
static void
handle_pread (char *own_buf, int *new_packet_len)
{
- int fd, ret, len, offset, bytes_sent;
+ int fd, ret, len, bytes_sent;
+ off_t offset;
char *p, *data;
static int max_reply_size = -1;
@@ -410,7 +418,8 @@ handle_pread (char *own_buf, int *new_packet_len)
static void
handle_pwrite (char *own_buf, int packet_len)
{
- int fd, ret, len, offset;
+ int fd, ret, len;
+ off_t offset;
char *p, *data;
p = own_buf + strlen ("vFile:pwrite:");
@@ -504,7 +513,48 @@ handle_stat (char *own_buf, int *new_packet_len)
return;
}
- if (lstat (filename, &st) == -1)
+ if (stat (filename, &st) == -1)
+ {
+ hostio_error (own_buf);
+ return;
+ }
+
+ host_to_fileio_stat (&st, &fst);
+
+ bytes_sent = hostio_reply_with_data (own_buf,
+ (char *) &fst, sizeof (fst),
+ new_packet_len);
+
+ /* If the response does not fit into a single packet, do not attempt
+ to return a partial response, but simply fail. */
+ if (bytes_sent < sizeof (fst))
+ write_enn (own_buf);
+}
+
+static void
+handle_lstat (char *own_buf, int *new_packet_len)
+{
+ int ret, bytes_sent;
+ char *p;
+ struct stat st;
+ struct fio_stat fst;
+ char filename[HOSTIO_PATH_MAX];
+
+ p = own_buf + strlen ("vFile:lstat:");
+
+ if (require_filename (&p, filename)
+ || require_end (p))
+ {
+ hostio_packet_error (own_buf);
+ return;
+ }
+
+ if (hostio_fs_pid != 0)
+ ret = the_target->multifs_lstat (hostio_fs_pid, filename, &st);
+ else
+ ret = lstat (filename, &st);
+
+ if (ret == -1)
{
hostio_error (own_buf);
return;
@@ -641,6 +691,8 @@ handle_vFile (char *own_buf, int packet_len, int *new_packet_len)
handle_fstat (own_buf, new_packet_len);
else if (startswith (own_buf, "vFile:stat:"))
handle_stat (own_buf, new_packet_len);
+ else if (startswith (own_buf, "vFile:lstat:"))
+ handle_lstat (own_buf, new_packet_len);
else if (startswith (own_buf, "vFile:close:"))
handle_close (own_buf);
else if (startswith (own_buf, "vFile:unlink:"))
diff --git a/gdbserver/hostio.h b/gdbserver/hostio.h
index ae406ea..e8852f5 100644
--- a/gdbserver/hostio.h
+++ b/gdbserver/hostio.h
@@ -1,5 +1,5 @@
/* Host file transfer support for gdbserver.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/i387-fp.cc b/gdbserver/i387-fp.cc
index 0bf57a3..4be0083 100644
--- a/gdbserver/i387-fp.cc
+++ b/gdbserver/i387-fp.cc
@@ -1,5 +1,5 @@
/* i387-specific utility functions, for the remote server for GDB.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -230,7 +230,7 @@ i387_cache_to_fxsave (struct regcache *regcache, void *buf)
fp->fctrl = regcache_raw_get_unsigned_by_name (regcache, "fctrl");
fp->fstat = regcache_raw_get_unsigned_by_name (regcache, "fstat");
- /* Convert to the simplifed tag form stored in fxsave data. */
+ /* Convert to the simplified tag form stored in fxsave data. */
val = regcache_raw_get_unsigned_by_name (regcache, "ftag");
val2 = 0;
for (i = 7; i >= 0; i--)
@@ -505,7 +505,7 @@ i387_cache_to_xsave (struct regcache *regcache, void *buf)
fp->fstat = val;
}
- /* Convert to the simplifed tag form stored in fxsave data. */
+ /* Convert to the simplified tag form stored in fxsave data. */
val = regcache_raw_get_unsigned_by_name (regcache, "ftag");
val2 = 0;
for (i = 7; i >= 0; i--)
diff --git a/gdbserver/i387-fp.h b/gdbserver/i387-fp.h
index 4ee21da..96fb66c 100644
--- a/gdbserver/i387-fp.h
+++ b/gdbserver/i387-fp.h
@@ -1,5 +1,5 @@
/* i387-specific utility functions, for the remote server for GDB.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/inferiors.cc b/gdbserver/inferiors.cc
index 14556d3..f13c784 100644
--- a/gdbserver/inferiors.cc
+++ b/gdbserver/inferiors.cc
@@ -1,5 +1,5 @@
/* Inferior process information for the remote server for GDB.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by MontaVista Software.
diff --git a/gdbserver/inferiors.h b/gdbserver/inferiors.h
index c3fea8d..0578acd 100644
--- a/gdbserver/inferiors.h
+++ b/gdbserver/inferiors.h
@@ -1,5 +1,5 @@
/* Inferior process information for the remote server for GDB.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -20,11 +20,10 @@
#define GDBSERVER_INFERIORS_H
#include "gdbsupport/owning_intrusive_list.h"
+#include "gdbsupport/unordered_map.h"
#include "dll.h"
-#include <unordered_map>
-
struct thread_info;
struct regcache;
struct target_desc;
@@ -121,7 +120,7 @@ private:
/* A map of ptid_t to thread_info*, for average O(1) ptid_t lookup.
Exited threads do not appear in the map. */
- std::unordered_map<ptid_t, thread_info *> m_ptid_thread_map;
+ gdb::unordered_map<ptid_t, thread_info *> m_ptid_thread_map;
};
/* Return a pointer to the current process. Note that the current
diff --git a/gdbserver/linux-aarch32-low.cc b/gdbserver/linux-aarch32-low.cc
index a70cc4a..3dbb7fe 100644
--- a/gdbserver/linux-aarch32-low.cc
+++ b/gdbserver/linux-aarch32-low.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-aarch32-low.h b/gdbserver/linux-aarch32-low.h
index b684a5d..2cd1c04 100644
--- a/gdbserver/linux-aarch32-low.h
+++ b/gdbserver/linux-aarch32-low.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-aarch32-tdesc.cc b/gdbserver/linux-aarch32-tdesc.cc
index 441fe66..675eb58 100644
--- a/gdbserver/linux-aarch32-tdesc.cc
+++ b/gdbserver/linux-aarch32-tdesc.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-aarch32-tdesc.h b/gdbserver/linux-aarch32-tdesc.h
index 173eac2..2aa74f1 100644
--- a/gdbserver/linux-aarch32-tdesc.h
+++ b/gdbserver/linux-aarch32-tdesc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-aarch64-ipa.cc b/gdbserver/linux-aarch64-ipa.cc
index 99b7700..4a700b1 100644
--- a/gdbserver/linux-aarch64-ipa.cc
+++ b/gdbserver/linux-aarch64-ipa.cc
@@ -1,7 +1,7 @@
/* GNU/Linux/AArch64 specific low level interface, for the in-process
agent library for GDB.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-aarch64-low.cc b/gdbserver/linux-aarch64-low.cc
index 7dabd57..2eb3af6 100644
--- a/gdbserver/linux-aarch64-low.cc
+++ b/gdbserver/linux-aarch64-low.cc
@@ -1,7 +1,7 @@
/* GNU/Linux/AArch64 specific low level interface, for the remote server for
GDB.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
Contributed by ARM Ltd.
This file is part of GDB.
diff --git a/gdbserver/linux-aarch64-tdesc.cc b/gdbserver/linux-aarch64-tdesc.cc
index 39d5bcc..cbd049d 100644
--- a/gdbserver/linux-aarch64-tdesc.cc
+++ b/gdbserver/linux-aarch64-tdesc.cc
@@ -1,6 +1,6 @@
/* GNU/Linux/aarch64 specific target description, for the remote server
for GDB.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -24,7 +24,7 @@
#include "arch/aarch64.h"
#include "linux-aarch32-low.h"
#include <inttypes.h>
-#include <unordered_map>
+#include "gdbsupport/unordered_map.h"
/* Create the aarch64 target description. */
@@ -35,7 +35,7 @@ aarch64_linux_read_description (const aarch64_features &features)
this function as the in-process-agent calls this function from a
constructor function, when globals might not yet have been
initialised. */
- static std::unordered_map<aarch64_features, target_desc *> tdesc_aarch64_map;
+ static gdb::unordered_map<aarch64_features, target_desc *> tdesc_aarch64_map;
if (features.vq > AARCH64_MAX_SVE_VQ)
error (_("VQ is %" PRIu64 ", maximum supported value is %d"), features.vq,
diff --git a/gdbserver/linux-aarch64-tdesc.h b/gdbserver/linux-aarch64-tdesc.h
index 4076720..5a86082 100644
--- a/gdbserver/linux-aarch64-tdesc.h
+++ b/gdbserver/linux-aarch64-tdesc.h
@@ -1,6 +1,6 @@
/* Low level support for aarch64, shared between gdbserver and IPA.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-amd64-ipa.cc b/gdbserver/linux-amd64-ipa.cc
index 0466368..af4eb03 100644
--- a/gdbserver/linux-amd64-ipa.cc
+++ b/gdbserver/linux-amd64-ipa.cc
@@ -1,7 +1,7 @@
/* GNU/Linux/x86-64 specific low level interface, for the in-process
agent library for GDB.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-arc-low.cc b/gdbserver/linux-arc-low.cc
index 16d8d58..7d27a5b 100644
--- a/gdbserver/linux-arc-low.cc
+++ b/gdbserver/linux-arc-low.cc
@@ -1,6 +1,6 @@
/* Target dependent code for the remote server for GNU/Linux ARC.
- Copyright 2020-2024 Free Software Foundation, Inc.
+ Copyright 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -218,7 +218,7 @@ arc_fill_gregset (struct regcache *regcache, void *buf)
collect_register_by_name (regcache, "pc", &(regbuf->scratch.ret));
/* Currently ARC Linux ptrace doesn't allow writes to status32 because
- some of its bits are kernel mode-only and shoudn't be writable from
+ some of its bits are kernel mode-only and shouldn't be writable from
user-space. Writing status32 from debugger could be useful, though,
so ability to write non-privileged bits will be added to kernel
sooner or later. */
diff --git a/gdbserver/linux-arm-low.cc b/gdbserver/linux-arm-low.cc
index 7688691..f4870ee 100644
--- a/gdbserver/linux-arm-low.cc
+++ b/gdbserver/linux-arm-low.cc
@@ -1,5 +1,5 @@
/* GNU/Linux/ARM specific low level interface, for the remote server for GDB.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-arm-tdesc.cc b/gdbserver/linux-arm-tdesc.cc
index fff2e94..2671f12 100644
--- a/gdbserver/linux-arm-tdesc.cc
+++ b/gdbserver/linux-arm-tdesc.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-arm-tdesc.h b/gdbserver/linux-arm-tdesc.h
index bf12c8f..3793947 100644
--- a/gdbserver/linux-arm-tdesc.h
+++ b/gdbserver/linux-arm-tdesc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-csky-low.cc b/gdbserver/linux-csky-low.cc
index 18a0d15..e9de986 100644
--- a/gdbserver/linux-csky-low.cc
+++ b/gdbserver/linux-csky-low.cc
@@ -1,5 +1,5 @@
/* GNU/Linux/MIPS specific low level interface, for the remote server for GDB.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-i386-ipa.cc b/gdbserver/linux-i386-ipa.cc
index 6dadaaf..17af6eb 100644
--- a/gdbserver/linux-i386-ipa.cc
+++ b/gdbserver/linux-i386-ipa.cc
@@ -1,7 +1,7 @@
/* GNU/Linux/x86 specific low level interface, for the in-process
agent library for GDB.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-ia64-low.cc b/gdbserver/linux-ia64-low.cc
index b7c3c64..48c5cc8 100644
--- a/gdbserver/linux-ia64-low.cc
+++ b/gdbserver/linux-ia64-low.cc
@@ -1,5 +1,5 @@
/* GNU/Linux/IA64 specific low level interface, for the remote server for GDB.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-loongarch-low.cc b/gdbserver/linux-loongarch-low.cc
index 795b6f5..62592a5 100644
--- a/gdbserver/linux-loongarch-low.cc
+++ b/gdbserver/linux-loongarch-low.cc
@@ -1,6 +1,6 @@
/* GNU/Linux/LoongArch specific low level interface, for the remote server
for GDB.
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-low.cc b/gdbserver/linux-low.cc
index 65268a6..e507558 100644
--- a/gdbserver/linux-low.cc
+++ b/gdbserver/linux-low.cc
@@ -1,5 +1,5 @@
/* Low level interface to ptrace, for the remote server for GDB.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -6050,6 +6050,12 @@ linux_process_target::multifs_open (int pid, const char *filename,
}
int
+linux_process_target::multifs_lstat (int pid, const char *filename, struct stat *sb)
+{
+ return linux_mntns_lstat (pid, filename, sb);
+}
+
+int
linux_process_target::multifs_unlink (int pid, const char *filename)
{
return linux_mntns_unlink (pid, filename);
diff --git a/gdbserver/linux-low.h b/gdbserver/linux-low.h
index 75af38d..e1c88ee 100644
--- a/gdbserver/linux-low.h
+++ b/gdbserver/linux-low.h
@@ -1,5 +1,5 @@
/* Internal interfaces for the GNU/Linux specific target code for gdbserver.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -304,6 +304,8 @@ public:
int multifs_open (int pid, const char *filename, int flags,
mode_t mode) override;
+ int multifs_lstat (int pid, const char *filename, struct stat *st) override;
+
int multifs_unlink (int pid, const char *filename) override;
ssize_t multifs_readlink (int pid, const char *filename, char *buf,
diff --git a/gdbserver/linux-m68k-low.cc b/gdbserver/linux-m68k-low.cc
index 8020e49..776e843 100644
--- a/gdbserver/linux-m68k-low.cc
+++ b/gdbserver/linux-m68k-low.cc
@@ -1,5 +1,5 @@
/* GNU/Linux/m68k specific low level interface, for the remote server for GDB.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-microblaze-low.cc b/gdbserver/linux-microblaze-low.cc
new file mode 100644
index 0000000..2d97eef
--- /dev/null
+++ b/gdbserver/linux-microblaze-low.cc
@@ -0,0 +1,245 @@
+/* GNU/Linux/Microblaze specific low level interface, for the remote server for
+ GDB.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include "server.h"
+#include "linux-low.h"
+
+#include "elf/common.h"
+#include "nat/gdb_ptrace.h"
+#include <endian.h>
+
+#include <asm/ptrace.h>
+#include <sys/procfs.h>
+#include <sys/ptrace.h>
+
+#include "gdb_proc_service.h"
+
+
+static int microblaze_regmap[] =
+ {PT_GPR(0), PT_GPR(1), PT_GPR(2), PT_GPR(3),
+ PT_GPR(4), PT_GPR(5), PT_GPR(6), PT_GPR(7),
+ PT_GPR(8), PT_GPR(9), PT_GPR(10), PT_GPR(11),
+ PT_GPR(12), PT_GPR(13), PT_GPR(14), PT_GPR(15),
+ PT_GPR(16), PT_GPR(17), PT_GPR(18), PT_GPR(19),
+ PT_GPR(20), PT_GPR(21), PT_GPR(22), PT_GPR(23),
+ PT_GPR(24), PT_GPR(25), PT_GPR(26), PT_GPR(27),
+ PT_GPR(28), PT_GPR(29), PT_GPR(30), PT_GPR(31),
+ PT_PC, PT_MSR, PT_EAR, PT_ESR,
+ PT_FSR
+ };
+
+
+
+class microblaze_target : public linux_process_target
+{
+public:
+
+ const regs_info *get_regs_info () override;
+
+ const gdb_byte *sw_breakpoint_from_kind (int kind, int *size) override;
+
+protected:
+
+ void low_arch_setup () override;
+
+ bool low_cannot_fetch_register (int regno) override;
+
+ bool low_cannot_store_register (int regno) override;
+
+ bool low_supports_breakpoints () override;
+
+ CORE_ADDR low_get_pc (regcache *regcache) override;
+
+ void low_set_pc (regcache *regcache, CORE_ADDR newpc) override;
+
+ bool low_breakpoint_at (CORE_ADDR pc) override;
+};
+
+/* The singleton target ops object. */
+
+static microblaze_target the_microblaze_target;
+
+constexpr auto microblaze_num_regs
+ = sizeof (microblaze_regmap) / sizeof (microblaze_regmap[0]);
+
+/* Defined in auto-generated file microblaze-linux-generated.c. */
+void init_registers_microblaze_linux ();
+extern const target_desc *tdesc_microblaze_linux;
+
+bool
+microblaze_target::low_supports_breakpoints ()
+{
+ return true;
+}
+
+bool
+microblaze_target::low_cannot_store_register (int regno)
+{
+ if (microblaze_regmap[regno] == -1 || regno == 0)
+ return 1;
+
+ return 0;
+}
+
+bool
+microblaze_target::low_cannot_fetch_register (int regno)
+{
+ return 0;
+}
+
+CORE_ADDR
+microblaze_target::low_get_pc (regcache *regcache)
+{
+ unsigned long pc;
+
+ collect_register_by_name (regcache, "rpc", &pc);
+ return pc;
+}
+
+void
+microblaze_target::low_set_pc (regcache *regcache, CORE_ADDR pc)
+{
+ unsigned long newpc = pc;
+
+ supply_register_by_name (regcache, "rpc", &newpc);
+}
+
+/* dbtrap insn */
+/* brki r16, 0x18; */
+static const uint32_t microblaze_breakpoint = 0xba0c0018;
+#define microblaze_breakpoint_len 4
+
+const gdb_byte *
+microblaze_target::sw_breakpoint_from_kind (int kind, int *size)
+{
+ *size = microblaze_breakpoint_len;
+ return reinterpret_cast<const gdb_byte *> (&microblaze_breakpoint);
+}
+
+bool
+microblaze_target::low_breakpoint_at (CORE_ADDR where)
+{
+ uint32_t insn;
+
+ read_memory (where, (unsigned char *) &insn, 4);
+ /* If necessary, recognize more trap instructions here. GDB only uses the
+ one. */
+ return insn == microblaze_breakpoint;
+}
+
+#ifdef HAVE_PTRACE_GETREGS
+
+static void
+microblaze_collect_ptrace_register (struct regcache *regcache, int regno,
+ char *buf)
+{
+ memset (buf, 0, sizeof (long));
+
+ if (__BYTE_ORDER == __LITTLE_ENDIAN)
+ {
+ collect_register (regcache, regno, buf);
+ }
+ else if (__BYTE_ORDER == __BIG_ENDIAN)
+ {
+ int size = register_size (regcache->tdesc, regno);
+
+ if (size < sizeof (long))
+ collect_register (regcache, regno, buf + sizeof (long) - size);
+ else
+ collect_register (regcache, regno, buf);
+ }
+}
+
+/* Collect GPRs from REGCACHE into BUF. */
+
+static void microblaze_fill_gregset (struct regcache *regcache, void *buf)
+{
+ int i;
+
+ for (i = 0; i < microblaze_num_regs; i++)
+ microblaze_collect_ptrace_register (regcache, i,
+ (char *) buf + microblaze_regmap[i]);
+}
+
+/* Supply GPRs from BUF into REGCACHE. */
+
+static void
+microblaze_store_gregset (struct regcache *regcache, const void *buf)
+{
+ int i;
+
+ for (i = 0; i < microblaze_num_regs; i++)
+ supply_register (regcache, i, (char *) buf + microblaze_regmap[i]);
+}
+
+static struct regset_info microblaze_regsets[] = {
+ { PTRACE_GETREGS, PTRACE_SETREGS, NT_PRSTATUS,
+ sizeof (elf_gregset_t), GENERAL_REGS,
+ microblaze_fill_gregset, microblaze_store_gregset
+ },
+ NULL_REGSET
+};
+#endif /* HAVE_PTRACE_GETREGS */
+
+static struct usrregs_info microblaze_usrregs_info =
+ {
+ microblaze_num_regs,
+ microblaze_regmap,
+ };
+
+#ifdef HAVE_PTRACE_GETREGS
+static struct regsets_info microblaze_regsets_info =
+ {
+ microblaze_regsets, /* regsets */
+ 0, /* num_regsets */
+ nullptr /* disabled_regsets */
+ };
+#endif /* HAVE_PTRACE_GETREGS */
+
+static struct regs_info microblaze_regs_info =
+ {
+ nullptr, /* regset_bitmap */
+ &microblaze_usrregs_info,
+#ifdef HAVE_PTRACE_GETREGS
+ &microblaze_regsets_info
+#endif /* HAVE_PTRACE_GETREGS */
+ };
+
+const regs_info *
+microblaze_target::get_regs_info ()
+{
+ return &microblaze_regs_info;
+}
+
+void
+microblaze_target::low_arch_setup ()
+{
+ current_process ()->tdesc = tdesc_microblaze_linux;
+}
+
+linux_process_target *the_linux_target = &the_microblaze_target;
+
+void
+initialize_low_arch ()
+{
+ init_registers_microblaze_linux ();
+#ifdef HAVE_PTRACE_GETREGS
+ initialize_regsets_info (&microblaze_regsets_info);
+#endif /* HAVE_PTRACE_GETREGS */
+}
diff --git a/gdbserver/linux-mips-low.cc b/gdbserver/linux-mips-low.cc
index fafcdef..295eb87 100644
--- a/gdbserver/linux-mips-low.cc
+++ b/gdbserver/linux-mips-low.cc
@@ -1,5 +1,5 @@
/* GNU/Linux/MIPS specific low level interface, for the remote server for GDB.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-or1k-low.cc b/gdbserver/linux-or1k-low.cc
index 1e0fa39..a527913 100644
--- a/gdbserver/linux-or1k-low.cc
+++ b/gdbserver/linux-or1k-low.cc
@@ -1,5 +1,5 @@
/* GNU/Linux/OR1K specific low level interface for the GDB server.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-ppc-ipa.cc b/gdbserver/linux-ppc-ipa.cc
index cbbfcfa..66e3940 100644
--- a/gdbserver/linux-ppc-ipa.cc
+++ b/gdbserver/linux-ppc-ipa.cc
@@ -1,7 +1,7 @@
/* GNU/Linux/PowerPC specific low level interface, for the in-process
agent library for GDB.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-ppc-low.cc b/gdbserver/linux-ppc-low.cc
index 3ce978f..dc8a48b 100644
--- a/gdbserver/linux-ppc-low.cc
+++ b/gdbserver/linux-ppc-low.cc
@@ -1,6 +1,6 @@
/* GNU/Linux/PowerPC specific low level interface, for the remote server for
GDB.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -1131,7 +1131,7 @@ gen_ds_form (uint32_t *buf, int opcd, int rst, int ra, int ds, int xo)
return 1;
}
-/* Followings are frequently used ds-form instructions. */
+/* Following are frequently used ds-form instructions. */
#define GEN_STD(buf, rs, ra, offset) gen_ds_form (buf, 62, rs, ra, offset, 0)
#define GEN_STDU(buf, rs, ra, offset) gen_ds_form (buf, 62, rs, ra, offset, 1)
@@ -1157,7 +1157,7 @@ gen_d_form (uint32_t *buf, int opcd, int rst, int ra, int si)
return 1;
}
-/* Followings are frequently used d-form instructions. */
+/* Following are frequently used d-form instructions. */
#define GEN_ADDI(buf, rt, ra, si) gen_d_form (buf, 14, rt, ra, si)
#define GEN_ADDIS(buf, rt, ra, si) gen_d_form (buf, 15, rt, ra, si)
@@ -1190,7 +1190,7 @@ gen_xfx_form (uint32_t *buf, int opcd, int rst, int ri, int xo)
return 1;
}
-/* Followings are frequently used xfx-form instructions. */
+/* Following are frequently used xfx-form instructions. */
#define GEN_MFSPR(buf, rt, spr) gen_xfx_form (buf, 31, rt, spr, 339)
#define GEN_MTSPR(buf, rt, spr) gen_xfx_form (buf, 31, rt, spr, 467)
@@ -1223,7 +1223,7 @@ gen_x_form (uint32_t *buf, int opcd, int rst, int ra, int rb, int xo, int rc)
return 1;
}
-/* Followings are frequently used x-form instructions. */
+/* Following are frequently used x-form instructions. */
#define GEN_OR(buf, ra, rs, rb) gen_x_form (buf, 31, rs, ra, rb, 444, 0)
#define GEN_MR(buf, ra, rs) GEN_OR (buf, ra, rs, rs)
diff --git a/gdbserver/linux-ppc-tdesc-init.h b/gdbserver/linux-ppc-tdesc-init.h
index b64423b..1c18b2a 100644
--- a/gdbserver/linux-ppc-tdesc-init.h
+++ b/gdbserver/linux-ppc-tdesc-init.h
@@ -1,6 +1,6 @@
/* Low level support for ppc, shared between gdbserver and IPA.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-riscv-low.cc b/gdbserver/linux-riscv-low.cc
index 44c805bb..8c742f4 100644
--- a/gdbserver/linux-riscv-low.cc
+++ b/gdbserver/linux-riscv-low.cc
@@ -1,6 +1,6 @@
/* GNU/Linux/RISC-V specific low level interface, for the remote server
for GDB.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-s390-ipa.cc b/gdbserver/linux-s390-ipa.cc
index 55ce4a4..c547490 100644
--- a/gdbserver/linux-s390-ipa.cc
+++ b/gdbserver/linux-s390-ipa.cc
@@ -1,7 +1,7 @@
/* GNU/Linux S/390 specific low level interface, for the in-process
agent library for GDB.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-s390-low.cc b/gdbserver/linux-s390-low.cc
index cd874f6..29bdf58 100644
--- a/gdbserver/linux-s390-low.cc
+++ b/gdbserver/linux-s390-low.cc
@@ -1,6 +1,6 @@
/* GNU/Linux S/390 specific low level interface, for the remote server
for GDB.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-s390-tdesc.h b/gdbserver/linux-s390-tdesc.h
index b996e80..24fe550 100644
--- a/gdbserver/linux-s390-tdesc.h
+++ b/gdbserver/linux-s390-tdesc.h
@@ -1,6 +1,6 @@
/* Low level support for s390, shared between gdbserver and IPA.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-sh-low.cc b/gdbserver/linux-sh-low.cc
index 64e6de3..f3f65df 100644
--- a/gdbserver/linux-sh-low.cc
+++ b/gdbserver/linux-sh-low.cc
@@ -1,5 +1,5 @@
/* GNU/Linux/SH specific low level interface, for the remote server for GDB.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-sparc-low.cc b/gdbserver/linux-sparc-low.cc
index 4192bd3..be42788 100644
--- a/gdbserver/linux-sparc-low.cc
+++ b/gdbserver/linux-sparc-low.cc
@@ -1,5 +1,5 @@
/* Low level interface to ptrace, for the remote server for GDB.
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -109,7 +109,7 @@ static int sparc_regmap[] = {
17 *8, /* pc */
18 *8, /* npc */
16 *8, /* state */
- /* FSR offset also corresponds to GET/SETFPREGSET, ans is placed
+ /* FSR offset also corresponds to GET/SETFPREGSET, and is placed
next to f62. */
32 *8, /* fsr */
-1, /* fprs */
diff --git a/gdbserver/linux-tic6x-low.cc b/gdbserver/linux-tic6x-low.cc
index 707be2e..4400ede 100644
--- a/gdbserver/linux-tic6x-low.cc
+++ b/gdbserver/linux-tic6x-low.cc
@@ -1,6 +1,6 @@
/* Target dependent code for GDB on TI C6x systems.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Andrew Jenner <andrew@codesourcery.com>
Contributed by Yao Qi <yao@codesourcery.com>
diff --git a/gdbserver/linux-x86-low.cc b/gdbserver/linux-x86-low.cc
index 6c2688d..918630d 100644
--- a/gdbserver/linux-x86-low.cc
+++ b/gdbserver/linux-x86-low.cc
@@ -1,6 +1,6 @@
/* GNU/Linux/x86-64 specific low level interface, for the remote server
for GDB.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-x86-tdesc.cc b/gdbserver/linux-x86-tdesc.cc
index 6aa5c4a..4cb0664 100644
--- a/gdbserver/linux-x86-tdesc.cc
+++ b/gdbserver/linux-x86-tdesc.cc
@@ -1,6 +1,6 @@
/* GNU/Linux/x86-64 specific target description, for the remote server
for GDB.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/linux-xtensa-low.cc b/gdbserver/linux-xtensa-low.cc
index b20b62e..27a5ed8 100644
--- a/gdbserver/linux-xtensa-low.cc
+++ b/gdbserver/linux-xtensa-low.cc
@@ -1,5 +1,5 @@
/* GNU/Linux/Xtensa specific low level interface, for the remote server for GDB.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/mem-break.cc b/gdbserver/mem-break.cc
index 134e243..1a212ec 100644
--- a/gdbserver/mem-break.cc
+++ b/gdbserver/mem-break.cc
@@ -1,5 +1,5 @@
/* Memory breakpoint operations for the remote server for GDB.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by MontaVista Software.
diff --git a/gdbserver/mem-break.h b/gdbserver/mem-break.h
index 12ad19a..0d3009c 100644
--- a/gdbserver/mem-break.h
+++ b/gdbserver/mem-break.h
@@ -1,5 +1,5 @@
/* Memory breakpoint interfaces for the remote server for GDB.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by MontaVista Software.
diff --git a/gdbserver/netbsd-aarch64-low.cc b/gdbserver/netbsd-aarch64-low.cc
index 8834e0a..90f136d 100644
--- a/gdbserver/netbsd-aarch64-low.cc
+++ b/gdbserver/netbsd-aarch64-low.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/netbsd-amd64-low.cc b/gdbserver/netbsd-amd64-low.cc
index ad7cb43..c99393a 100644
--- a/gdbserver/netbsd-amd64-low.cc
+++ b/gdbserver/netbsd-amd64-low.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/netbsd-i386-low.cc b/gdbserver/netbsd-i386-low.cc
index ea6fce4..d9e2ef7 100644
--- a/gdbserver/netbsd-i386-low.cc
+++ b/gdbserver/netbsd-i386-low.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/netbsd-low.cc b/gdbserver/netbsd-low.cc
index 9e7314b..2984b5b 100644
--- a/gdbserver/netbsd-low.cc
+++ b/gdbserver/netbsd-low.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -453,7 +453,10 @@ netbsd_process_target::detach (process_info *process)
void
netbsd_process_target::mourn (struct process_info *proc)
{
- proc->for_each_thread (remove_thread);
+ proc->for_each_thread ([proc] (thread_info *thread)
+ {
+ proc->remove_thread (thread);
+ });
remove_process (proc);
}
diff --git a/gdbserver/netbsd-low.h b/gdbserver/netbsd-low.h
index aef1ce4..a503afd 100644
--- a/gdbserver/netbsd-low.h
+++ b/gdbserver/netbsd-low.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/notif.cc b/gdbserver/notif.cc
index dac3c3b..0c787fb 100644
--- a/gdbserver/notif.cc
+++ b/gdbserver/notif.cc
@@ -1,5 +1,5 @@
/* Notification to GDB.
- Copyright (C) 1989-2024 Free Software Foundation, Inc.
+ Copyright (C) 1989-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -32,14 +32,14 @@
1. At any time, when something interesting FOO happens, a object
of 'struct notif_event' or its sub-class EVENT is created for FOO.
- 2. Enque EVENT to the 'queue' field of 'struct notif_server' for
+ 2. Enqueue EVENT to the 'queue' field of 'struct notif_server' for
FOO and send corresponding notification packet to GDB if EVENT is
the first one.
#1 and #2 are done by function 'notif_push'.
3. EVENT is not deque'ed until the ack of FOO from GDB arrives.
Before ack of FOO arrives, FOO happens again, a new object of
- EVENT is created and enque EVENT silently.
+ EVENT is created and enqueue EVENT silently.
Once GDB has a chance to ack to FOO, it sends an ack to GDBserver,
and GDBserver repeatedly sends events to GDB and gets ack of FOO,
until queue is empty. Then, GDBserver sends 'OK' to GDB that all
diff --git a/gdbserver/notif.h b/gdbserver/notif.h
index 33b7882..50be0b8 100644
--- a/gdbserver/notif.h
+++ b/gdbserver/notif.h
@@ -1,5 +1,5 @@
/* Notification to GDB.
- Copyright (C) 1989-2024 Free Software Foundation, Inc.
+ Copyright (C) 1989-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/proc-service.cc b/gdbserver/proc-service.cc
index 198a6f2..9575302 100644
--- a/gdbserver/proc-service.cc
+++ b/gdbserver/proc-service.cc
@@ -1,5 +1,5 @@
/* libthread_db helper functions for the remote server for GDB.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by MontaVista Software.
diff --git a/gdbserver/proc-service.list b/gdbserver/proc-service.list
index 1eed6e0..c6320c8 100644
--- a/gdbserver/proc-service.list
+++ b/gdbserver/proc-service.list
@@ -1,6 +1,6 @@
/* -Wl,--dynamic-list symbols exported for libthread_db.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/regcache.cc b/gdbserver/regcache.cc
index ee0c1b3..a937a34 100644
--- a/gdbserver/regcache.cc
+++ b/gdbserver/regcache.cc
@@ -1,5 +1,5 @@
/* Register support routines for the remote server for GDB.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -353,8 +353,7 @@ supply_register_by_name_zeroed (struct regcache *regcache,
#endif
/* Supply the whole register set whose contents are stored in BUF, to
- REGCACHE. If BUF is NULL, all the registers' values are recorded
- as unavailable. */
+ REGCACHE. */
void
supply_regblock (struct regcache *regcache, const void *buf)
@@ -503,7 +502,7 @@ regcache::raw_compare (int regnum, const void *buf, int offset) const
gdb_assert (buf != NULL);
gdb::array_view<const gdb_byte> regbuf = register_data (this, regnum);
- gdb_assert (offset < regbuf.size ());
+ gdb_assert (offset <= regbuf.size ());
regbuf = regbuf.slice (offset);
return memcmp (buf, regbuf.data (), regbuf.size ()) == 0;
diff --git a/gdbserver/regcache.h b/gdbserver/regcache.h
index 96d2a4d..89e801f 100644
--- a/gdbserver/regcache.h
+++ b/gdbserver/regcache.h
@@ -1,5 +1,5 @@
/* Register support routines for the remote server for GDB.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/remote-utils.cc b/gdbserver/remote-utils.cc
index 67225c5..15f073d 100644
--- a/gdbserver/remote-utils.cc
+++ b/gdbserver/remote-utils.cc
@@ -1,5 +1,5 @@
/* Remote utility routines for the remote server for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/remote-utils.h b/gdbserver/remote-utils.h
index 65ce604..b7a33bc 100644
--- a/gdbserver/remote-utils.h
+++ b/gdbserver/remote-utils.h
@@ -1,5 +1,5 @@
/* Remote utility routines for the remote server for GDB.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/server.cc b/gdbserver/server.cc
index fb1a3f8..ab69400 100644
--- a/gdbserver/server.cc
+++ b/gdbserver/server.cc
@@ -1,5 +1,5 @@
/* Main code for remote server for GDB.
- Copyright (C) 1989-2024 Free Software Foundation, Inc.
+ Copyright (C) 1989-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -35,7 +35,7 @@
#include "dll.h"
#include "hostio.h"
#include <vector>
-#include <unordered_map>
+#include "gdbsupport/unordered_map.h"
#include "gdbsupport/common-inferior.h"
#include "gdbsupport/job-control.h"
#include "gdbsupport/environ.h"
@@ -51,6 +51,7 @@
#include "gdbsupport/scoped_restore.h"
#include "gdbsupport/search.h"
#include "gdbsupport/gdb_argv_vec.h"
+#include "gdbsupport/remote-args.h"
/* PBUFSIZ must also be at least as big as IPA_CMD_BUF_SIZE, because
the client state data is passed directly to some agent
@@ -952,7 +953,7 @@ handle_general_set (char *own_buf)
It's nicer if we only print the final options for each TID,
and if we only print about it if the options changed compared
to the options that were previously set on the thread. */
- std::unordered_map<thread_info *, gdb_thread_options> set_options;
+ gdb::unordered_map<thread_info *, gdb_thread_options> set_options;
while (*p != '\0')
{
@@ -1981,6 +1982,7 @@ handle_qxfer_threads_worker (thread_info *thread, std::string *buffer)
int core = target_core_of_thread (ptid);
char core_s[21];
const char *name = target_thread_name (ptid);
+ std::string id_str = target_thread_id_str (thread);
int handle_len;
gdb_byte *handle;
bool handle_status = target_thread_handle (ptid, &handle, &handle_len);
@@ -2005,6 +2007,9 @@ handle_qxfer_threads_worker (thread_info *thread, std::string *buffer)
if (name != NULL)
string_xml_appendf (*buffer, " name=\"%s\"", name);
+ if (!id_str.empty ())
+ string_xml_appendf (*buffer, " id_str=\"%s\"", id_str.c_str ());
+
if (handle_status)
{
char *handle_s = (char *) alloca (handle_len * 2 + 1);
@@ -2859,7 +2864,7 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p)
{
char *end_buf = own_buf + strlen (own_buf);
sprintf (end_buf, ";QThreadOptions=%s",
- phex_nz (supported_options, sizeof (supported_options)));
+ phex_nz (supported_options));
}
strcat (own_buf, ";QThreadEvents+");
@@ -3461,7 +3466,7 @@ handle_v_run (char *own_buf)
else
program_path.set (new_program_name.get ());
- program_args = construct_inferior_arguments (new_argv.get ());
+ program_args = gdb::remote_args::join (new_argv.get ());
try
{
@@ -4067,7 +4072,34 @@ test_memory_tagging_functions (void)
&& tags.size () == 5);
}
-} // namespace selftests
+/* Exercise the behavior of doing a 0-length comparison for a register in a
+ register buffer, which should return true. */
+
+static void test_registers_raw_compare_zero_length ()
+{
+ /* Start off with a dummy target description. */
+ target_desc dummy_tdesc;
+
+ /* Make it 8 bytes long. */
+ dummy_tdesc.registers_size = 8;
+
+ /* Add a couple dummy 32-bit registers. */
+ dummy_tdesc.reg_defs.emplace_back ("r0", 0, 32);
+ dummy_tdesc.reg_defs.emplace_back ("r1", 32, 32);
+
+ /* Create our dummy register cache so we can invoke the raw_compare method
+ we want to validate. */
+ regcache dummy_regcache (&dummy_tdesc);
+
+ /* Create a dummy byte buffer we can pass to the raw_compare method. */
+ gdb_byte dummy_buffer[8];
+
+ /* Validate the 0-length comparison (due to the comparison offset being
+ equal to the length of the register) returns true. */
+ SELF_CHECK (dummy_regcache.raw_compare (0, dummy_buffer, 4));
+}
+
+} /* namespace selftests */
#endif /* GDB_SELF_TEST */
/* Main function. This is called by the real "main" function,
@@ -4090,6 +4122,8 @@ captured_main (int argc, char *argv[])
selftests::register_test ("remote_memory_tagging",
selftests::test_memory_tagging_functions);
+ selftests::register_test ("test_registers_raw_compare_zero_length",
+ selftests::test_registers_raw_compare_zero_length);
#endif
current_directory = getcwd (NULL, 0);
@@ -4351,7 +4385,7 @@ captured_main (int argc, char *argv[])
int n = argc - (next_arg - argv);
program_args
- = construct_inferior_arguments ({&next_arg[1], &next_arg[n]});
+ = construct_inferior_arguments ({&next_arg[1], &next_arg[n]}, true);
/* Wait till we are at first instruction in program. */
target_create_inferior (program_path.get (), program_args);
@@ -5117,5 +5151,5 @@ void
reset ()
{}
-} // namespace selftests
+} /* namespace selftests */
#endif /* GDB_SELF_TEST */
diff --git a/gdbserver/server.h b/gdbserver/server.h
index e1297d4..5609584 100644
--- a/gdbserver/server.h
+++ b/gdbserver/server.h
@@ -1,5 +1,5 @@
/* Common definitions for remote server for GDB.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/symbol.cc b/gdbserver/symbol.cc
index 435acc7..2807a20 100644
--- a/gdbserver/symbol.cc
+++ b/gdbserver/symbol.cc
@@ -1,6 +1,6 @@
/* Symbol manipulating routines for the remote server for GDB.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/target.cc b/gdbserver/target.cc
index 6db32da..c400174c 100644
--- a/gdbserver/target.cc
+++ b/gdbserver/target.cc
@@ -1,5 +1,5 @@
/* Target operations for the remote server for GDB.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by MontaVista Software.
@@ -258,7 +258,7 @@ target_pid_to_str (ptid_t ptid)
else if (ptid.tid () != 0)
return string_printf("Thread %d.0x%s",
ptid.pid (),
- phex_nz (ptid.tid (), sizeof (ULONGEST)));
+ phex_nz (ptid.tid ()));
else if (ptid.lwp () != 0)
return string_printf("LWP %d.%ld",
ptid.pid (), ptid.lwp ());
@@ -773,6 +773,13 @@ process_stratum_target::multifs_open (int pid, const char *filename,
}
int
+process_stratum_target::multifs_lstat (int pid, const char *filename,
+ struct stat *sb)
+{
+ return lstat (filename, sb);
+}
+
+int
process_stratum_target::multifs_unlink (int pid, const char *filename)
{
return unlink (filename);
@@ -807,6 +814,12 @@ process_stratum_target::thread_name (ptid_t thread)
return nullptr;
}
+std::string
+process_stratum_target::thread_id_str (thread_info *thread)
+{
+ return "";
+}
+
bool
process_stratum_target::thread_handle (ptid_t ptid, gdb_byte **handle,
int *handle_len)
diff --git a/gdbserver/target.h b/gdbserver/target.h
index 1a013bb..4d3f80f 100644
--- a/gdbserver/target.h
+++ b/gdbserver/target.h
@@ -1,5 +1,5 @@
/* Target operations for the remote server for GDB.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by MontaVista Software.
@@ -441,6 +441,12 @@ public:
virtual int multifs_open (int pid, const char *filename,
int flags, mode_t mode);
+ /* Multiple-filesystem-aware lstat. Like lstat(2), but operating in
+ the filesystem as it appears to process PID. Systems where all
+ processes share a common filesystem should not override this.
+ The default behavior is to use lstat(2). */
+ virtual int multifs_lstat (int pid, const char *filename, struct stat *sb);
+
/* Multiple-filesystem-aware unlink. Like unlink(2), but operates
in the filesystem as it appears to process PID. Systems where
all processes share a common filesystem should not override this.
@@ -475,6 +481,13 @@ public:
caller. */
virtual const char *thread_name (ptid_t thread);
+ /* Return the string translation for THREAD's id. This gives the
+ target a chance to completely re-interpret the thread id and
+ present a target-specific description for displaying to the user.
+ Return empty if the target is fine with how an id is displayed
+ by default. */
+ virtual std::string thread_id_str (thread_info *thread);
+
/* Thread ID to (numeric) thread handle: Return true on success and
false for failure. Return pointer to thread handle via HANDLE
and the handle's length via HANDLE_LEN. */
@@ -735,4 +748,10 @@ bool set_desired_process ();
std::string target_pid_to_str (ptid_t);
+static inline std::string
+target_thread_id_str (thread_info *thread)
+{
+ return the_target->thread_id_str (thread);
+}
+
#endif /* GDBSERVER_TARGET_H */
diff --git a/gdbserver/tdesc.cc b/gdbserver/tdesc.cc
index da1287a..54c105c 100644
--- a/gdbserver/tdesc.cc
+++ b/gdbserver/tdesc.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/tdesc.h b/gdbserver/tdesc.h
index 9264786..58b2395 100644
--- a/gdbserver/tdesc.h
+++ b/gdbserver/tdesc.h
@@ -1,5 +1,5 @@
/* Target description definitions for remote server for GDB.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/thread-db.cc b/gdbserver/thread-db.cc
index 430504d..20e1dcc 100644
--- a/gdbserver/thread-db.cc
+++ b/gdbserver/thread-db.cc
@@ -1,5 +1,5 @@
/* Thread management interface, for the remote server for GDB.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by MontaVista Software.
diff --git a/gdbserver/tracepoint.cc b/gdbserver/tracepoint.cc
index 5e3792e..b308c82 100644
--- a/gdbserver/tracepoint.cc
+++ b/gdbserver/tracepoint.cc
@@ -1,5 +1,5 @@
/* Tracepoint code for remote server for GDB.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -948,7 +948,7 @@ struct ipa_trace_buffer_control
who wrote last to the buffer control structure. We need to freeze
any inferior writing to the buffer while GDBserver touches memory,
so that the inferior can correctly detect that GDBserver had been
- there, otherwise, it could mistakingly think its commit was
+ there, otherwise, it could mistakenly think its commit was
successful; that's implemented by simply having GDBserver set a
breakpoint the inferior hits if it is the critical region.
@@ -3461,8 +3461,8 @@ cmd_qtstatus (char *packet)
free_space (), phex_nz (trace_buffer_hi - trace_buffer_lo, 0),
circular_trace_buffer,
disconnected_tracing,
- phex_nz (tracing_start_time, sizeof (tracing_start_time)),
- phex_nz (tracing_stop_time, sizeof (tracing_stop_time)),
+ phex_nz (tracing_start_time),
+ phex_nz (tracing_stop_time),
buf1, buf2);
}
@@ -4990,7 +4990,7 @@ build_traceframe_info_xml (char blocktype, unsigned char *dataptr, void *data)
dataptr += sizeof (mlen);
string_xml_appendf (*buffer,
"<memory start=\"0x%s\" length=\"0x%s\"/>\n",
- paddress (maddr), phex_nz (mlen, sizeof (mlen)));
+ paddress (maddr), phex_nz (mlen));
break;
}
case 'V':
diff --git a/gdbserver/tracepoint.h b/gdbserver/tracepoint.h
index b2e410f..602f103 100644
--- a/gdbserver/tracepoint.h
+++ b/gdbserver/tracepoint.h
@@ -1,5 +1,5 @@
/* Tracepoint code for remote server for GDB.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/utils.cc b/gdbserver/utils.cc
index 57fceb1..a86405e 100644
--- a/gdbserver/utils.cc
+++ b/gdbserver/utils.cc
@@ -1,5 +1,5 @@
/* General utility routines for the remote server for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -102,5 +102,5 @@ internal_vwarning (const char *file, int line, const char *fmt, va_list args)
const char *
paddress (CORE_ADDR addr)
{
- return phex_nz (addr, sizeof (CORE_ADDR));
+ return phex_nz (addr);
}
diff --git a/gdbserver/utils.h b/gdbserver/utils.h
index ad1f82c..bebe74a 100644
--- a/gdbserver/utils.h
+++ b/gdbserver/utils.h
@@ -1,5 +1,5 @@
/* General utility routines for the remote server for GDB.
- Copyright (C) 1993-2024 Free Software Foundation, Inc.
+ Copyright (C) 1993-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/win32-i386-low.cc b/gdbserver/win32-i386-low.cc
index b3e6878..26de2ec 100644
--- a/gdbserver/win32-i386-low.cc
+++ b/gdbserver/win32-i386-low.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2007-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/win32-low.cc b/gdbserver/win32-low.cc
index 3cfae74..89831de 100644
--- a/gdbserver/win32-low.cc
+++ b/gdbserver/win32-low.cc
@@ -1,5 +1,5 @@
/* Low level interface to Windows debugging, for gdbserver.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
Contributed by Leo Zayas. Based on "win32-nat.c" from GDB.
diff --git a/gdbserver/win32-low.h b/gdbserver/win32-low.h
index e9dd6ad..a76ed9f 100644
--- a/gdbserver/win32-low.h
+++ b/gdbserver/win32-low.h
@@ -1,5 +1,5 @@
/* Internal interfaces for the Win32 specific target code for gdbserver.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/x86-low.cc b/gdbserver/x86-low.cc
index c59b31b..14cb012 100644
--- a/gdbserver/x86-low.cc
+++ b/gdbserver/x86-low.cc
@@ -1,6 +1,6 @@
/* Low level support for x86 (i386 and x86-64).
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/x86-low.h b/gdbserver/x86-low.h
index 89941c5..fcc18f5 100644
--- a/gdbserver/x86-low.h
+++ b/gdbserver/x86-low.h
@@ -1,6 +1,6 @@
/* Low level support for x86 (i386 and x86-64).
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/x86-tdesc.h b/gdbserver/x86-tdesc.h
index b98d8cf..be903ba 100644
--- a/gdbserver/x86-tdesc.h
+++ b/gdbserver/x86-tdesc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2018-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbserver/xtensa-xtregs.cc b/gdbserver/xtensa-xtregs.cc
index e7b3122..7e1faca 100644
--- a/gdbserver/xtensa-xtregs.cc
+++ b/gdbserver/xtensa-xtregs.cc
@@ -1,5 +1,5 @@
/* Table mapping between kernel xtregset and GDB register cache.
- Copyright (C) 2007-2024 Free Software Foundation, Inc.
+ Copyright (C) 2007-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -31,7 +31,23 @@ typedef struct {
#define XTENSA_ELF_XTREG_SIZE 4
const xtensa_regtable_t xtensa_regmap_table[] = {
- /* gnum,gofs,cpofs,ofs,siz,cp, dbnum, name */
- { 44, 176, 0, 0, 4, -1, 0x020c, "scompare1" },
+ {
+ /* gdb_regnum */
+ 44,
+ /* gdb_offset */
+ 176,
+ /* ptrace_cp_offset */
+ 0,
+ /* ptrace_offset */
+ 0,
+ /* size */
+ 4,
+ /* coproc */
+ -1,
+ /* dbnum */
+ 0x020c,
+ /* name */
+ "scompare1"
+ },
{ 0 }
};
diff --git a/gdbsupport/.dir-locals.el b/gdbsupport/.dir-locals.el
index eb4edba..8228d2b 100644
--- a/gdbsupport/.dir-locals.el
+++ b/gdbsupport/.dir-locals.el
@@ -1,5 +1,5 @@
;; Emacs settings.
-;; Copyright (C) 2012-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2012-2025 Free Software Foundation, Inc.
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
diff --git a/gdbsupport/Makefile.am b/gdbsupport/Makefile.am
index e772987..20122e4 100644
--- a/gdbsupport/Makefile.am
+++ b/gdbsupport/Makefile.am
@@ -1,6 +1,6 @@
## Process this file with automake to generate Makefile.in
#
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
#
# 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
@@ -80,6 +80,7 @@ libgdbsupport_a_SOURCES = \
pathstuff.cc \
print-utils.cc \
ptid.cc \
+ remote-args.cc \
rsp-low.cc \
run-time-clock.cc \
safe-strerror.cc \
diff --git a/gdbsupport/Makefile.in b/gdbsupport/Makefile.in
index db3d6f6..66b8891 100644
--- a/gdbsupport/Makefile.in
+++ b/gdbsupport/Makefile.in
@@ -15,7 +15,7 @@
@SET_MAKE@
#
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
#
# 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
@@ -163,12 +163,12 @@ am_libgdbsupport_a_OBJECTS = agent.$(OBJEXT) btrace-common.$(OBJEXT) \
gdb_tilde_expand.$(OBJEXT) gdb_wait.$(OBJEXT) \
gdb_vecs.$(OBJEXT) job-control.$(OBJEXT) netstuff.$(OBJEXT) \
new-op.$(OBJEXT) osabi.$(OBJEXT) pathstuff.$(OBJEXT) \
- print-utils.$(OBJEXT) ptid.$(OBJEXT) rsp-low.$(OBJEXT) \
- run-time-clock.$(OBJEXT) safe-strerror.$(OBJEXT) \
- scoped_mmap.$(OBJEXT) search.$(OBJEXT) signals.$(OBJEXT) \
- signals-state-save-restore.$(OBJEXT) task-group.$(OBJEXT) \
- tdesc.$(OBJEXT) thread-pool.$(OBJEXT) xml-utils.$(OBJEXT) \
- $(am__objects_1) $(am__objects_2)
+ print-utils.$(OBJEXT) ptid.$(OBJEXT) remote-args.$(OBJEXT) \
+ rsp-low.$(OBJEXT) run-time-clock.$(OBJEXT) \
+ safe-strerror.$(OBJEXT) scoped_mmap.$(OBJEXT) search.$(OBJEXT) \
+ signals.$(OBJEXT) signals-state-save-restore.$(OBJEXT) \
+ task-group.$(OBJEXT) tdesc.$(OBJEXT) thread-pool.$(OBJEXT) \
+ xml-utils.$(OBJEXT) $(am__objects_1) $(am__objects_2)
libgdbsupport_a_OBJECTS = $(am_libgdbsupport_a_OBJECTS)
AM_V_P = $(am__v_P_@AM_V@)
am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
@@ -438,6 +438,7 @@ libgdbsupport_a_SOURCES = \
pathstuff.cc \
print-utils.cc \
ptid.cc \
+ remote-args.cc \
rsp-low.cc \
run-time-clock.cc \
safe-strerror.cc \
@@ -548,6 +549,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pathstuff.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/print-utils.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ptid.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remote-args.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rsp-low.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/run-time-clock.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/safe-strerror.Po@am__quote@
diff --git a/gdbsupport/agent.cc b/gdbsupport/agent.cc
index c70b59a..52233f3 100644
--- a/gdbsupport/agent.cc
+++ b/gdbsupport/agent.cc
@@ -1,6 +1,6 @@
/* Shared utility routines for GDB to interact with agent.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/agent.h b/gdbsupport/agent.h
index 305ed70..8827e03 100644
--- a/gdbsupport/agent.h
+++ b/gdbsupport/agent.h
@@ -1,6 +1,6 @@
/* Shared utility routines for GDB to interact with agent.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/alt-stack.h b/gdbsupport/alt-stack.h
index e8ec41c..0517d19 100644
--- a/gdbsupport/alt-stack.h
+++ b/gdbsupport/alt-stack.h
@@ -1,6 +1,6 @@
/* Temporarily install an alternate signal stack
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/array-view.h b/gdbsupport/array-view.h
index 5054d70..38e65d6 100644
--- a/gdbsupport/array-view.h
+++ b/gdbsupport/array-view.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -294,6 +294,15 @@ make_array_view (U *array, size_t size) noexcept
return {array, size};
}
+/* Create an array view from an array. */
+
+template <typename U, std::size_t Size>
+constexpr inline array_view<U>
+make_array_view (U (&array)[Size])
+{
+ return {array};
+}
+
} /* namespace gdb */
#endif /* GDBSUPPORT_ARRAY_VIEW_H */
diff --git a/gdbsupport/ax.def b/gdbsupport/ax.def
index 2f0dafb..9dbb4d6 100644
--- a/gdbsupport/ax.def
+++ b/gdbsupport/ax.def
@@ -1,5 +1,5 @@
/* Definition of agent opcode values. -*- c -*-
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/block-signals.h b/gdbsupport/block-signals.h
index e3416f8..f3313f3 100644
--- a/gdbsupport/block-signals.h
+++ b/gdbsupport/block-signals.h
@@ -1,6 +1,6 @@
/* Block signals used by gdb
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/break-common.h b/gdbsupport/break-common.h
index 1202231..b51a1e1 100644
--- a/gdbsupport/break-common.h
+++ b/gdbsupport/break-common.h
@@ -1,6 +1,6 @@
/* Data structures associated with breakpoints shared in both GDB and
GDBserver.
- Copyright (C) 1992-2024 Free Software Foundation, Inc.
+ Copyright (C) 1992-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/btrace-common.cc b/gdbsupport/btrace-common.cc
index b7f9493..7c1ef39 100644
--- a/gdbsupport/btrace-common.cc
+++ b/gdbsupport/btrace-common.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2014-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2014-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>
diff --git a/gdbsupport/btrace-common.h b/gdbsupport/btrace-common.h
index 6278fa3..5f63aa9 100644
--- a/gdbsupport/btrace-common.h
+++ b/gdbsupport/btrace-common.h
@@ -1,6 +1,6 @@
/* Branch trace support for GDB, the GNU debugger.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
Contributed by Intel Corp. <markus.t.metzger@intel.com>.
diff --git a/gdbsupport/buildargv.h b/gdbsupport/buildargv.h
index 8fdd085..e2cc543 100644
--- a/gdbsupport/buildargv.h
+++ b/gdbsupport/buildargv.h
@@ -1,6 +1,6 @@
/* RAII wrapper for buildargv
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/byte-vector.h b/gdbsupport/byte-vector.h
index 0586d40..dca7dfa 100644
--- a/gdbsupport/byte-vector.h
+++ b/gdbsupport/byte-vector.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/check-defines.el b/gdbsupport/check-defines.el
index b7cf61b..7c5d6cc 100644
--- a/gdbsupport/check-defines.el
+++ b/gdbsupport/check-defines.el
@@ -1,6 +1,6 @@
;; Verify that preprocessor symbols are defined in config.in.
-;; Copyright (C) 2020-2024 Free Software Foundation, Inc.
+;; Copyright (C) 2020-2025 Free Software Foundation, Inc.
;;
;; This file is part of GDB.
;;
diff --git a/gdbsupport/cleanups.cc b/gdbsupport/cleanups.cc
index 6362ea2..b0c4e01 100644
--- a/gdbsupport/cleanups.cc
+++ b/gdbsupport/cleanups.cc
@@ -1,6 +1,6 @@
/* Cleanup routines for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/cleanups.h b/gdbsupport/cleanups.h
index 12b7774..7d9d1d3 100644
--- a/gdbsupport/cleanups.h
+++ b/gdbsupport/cleanups.h
@@ -1,5 +1,5 @@
/* Cleanups.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/common-debug.cc b/gdbsupport/common-debug.cc
index c4d9528..a78f268 100644
--- a/gdbsupport/common-debug.cc
+++ b/gdbsupport/common-debug.cc
@@ -1,6 +1,6 @@
/* Debug printing functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/common-debug.h b/gdbsupport/common-debug.h
index 6c793dc..5886e3d 100644
--- a/gdbsupport/common-debug.h
+++ b/gdbsupport/common-debug.h
@@ -1,6 +1,6 @@
/* Declarations for debug printing functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -106,7 +106,7 @@ struct scoped_debug_start_end
If the FMT format string is non-nullptr, then a `: ` is appended to the
messages, followed by the rendering of that format string with ARGS.
- The format string is rendered during construction and is re-used as is
+ The format string is rendered during construction and is reused as is
for the message on exit. */
scoped_debug_start_end (PT &debug_enabled, const char *module,
@@ -215,7 +215,7 @@ private:
bool m_disabled = false;
};
-/* Implementation of is_debug_enabled when PT is an invokable type. */
+/* Implementation of is_debug_enabled when PT is an invocable type. */
template<typename PT>
inline bool
diff --git a/gdbsupport/common-defs.h b/gdbsupport/common-defs.h
index 2cb71e2..07caf3b 100644
--- a/gdbsupport/common-defs.h
+++ b/gdbsupport/common-defs.h
@@ -1,6 +1,6 @@
/* Common definitions.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -153,7 +153,7 @@
and builds with -O2, and ... the assert doesn't trigger, because it's
optimized away by gcc.
- There's no suppported recipe to prevent the assertion from being optimized
+ There's no supported recipe to prevent the assertion from being optimized
away (other than: build with -O0, or remove the nonnull attribute). Note
that -fno-delete-null-pointer-checks does not help. A patch was submitted
to improve gcc documentation to point this out more clearly (
diff --git a/gdbsupport/common-exceptions.cc b/gdbsupport/common-exceptions.cc
index 8301fb5..07991fb 100644
--- a/gdbsupport/common-exceptions.cc
+++ b/gdbsupport/common-exceptions.cc
@@ -1,6 +1,6 @@
/* Exception (throw catch) mechanism, for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/common-exceptions.h b/gdbsupport/common-exceptions.h
index ff0059a..ed94f85 100644
--- a/gdbsupport/common-exceptions.h
+++ b/gdbsupport/common-exceptions.h
@@ -1,6 +1,6 @@
/* Exception (throw catch) mechanism, for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/common-gdbthread.h b/gdbsupport/common-gdbthread.h
index 289cc8f..b6edf6f 100644
--- a/gdbsupport/common-gdbthread.h
+++ b/gdbsupport/common-gdbthread.h
@@ -1,5 +1,5 @@
/* Common multi-process/thread control defs for GDB and gdbserver.
- Copyright (C) 1987-2024 Free Software Foundation, Inc.
+ Copyright (C) 1987-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/common-inferior.cc b/gdbsupport/common-inferior.cc
index 4211e04..a07b556 100644
--- a/gdbsupport/common-inferior.cc
+++ b/gdbsupport/common-inferior.cc
@@ -1,7 +1,7 @@
/* Functions to deal with the inferior being executed on GDB or
GDBserver.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -24,100 +24,131 @@
bool startup_with_shell = true;
-/* See common-inferior.h. */
+/* Escape characters in ARG and return an updated string. The string
+ SPECIAL contains the set of characters that must be escaped. SPECIAL
+ must not be nullptr, and it is assumed that SPECIAL contains the newline
+ '\n' character. It is assumed that ARG is not nullptr, but ARG can
+ be the empty string. */
-std::string
-construct_inferior_arguments (gdb::array_view<char * const> argv)
+static std::string
+escape_characters (const char *arg, const char *special)
{
+ gdb_assert (special != nullptr);
+ gdb_assert (arg != nullptr);
+
std::string result;
- if (startup_with_shell)
- {
#ifdef __MINGW32__
- /* This holds all the characters considered special to the
- Windows shells. */
- static const char special[] = "\"!&*|[]{}<>?`~^=;, \t\n";
- static const char quote = '"';
+ static const char quote = '"';
#else
- /* This holds all the characters considered special to the
- typical Unix shells. We include `^' because the SunOS
- /bin/sh treats it as a synonym for `|'. */
- static const char special[] = "\"!#$&*()\\|[]{}<>?'`~^; \t\n";
- static const char quote = '\'';
+ static const char quote = '\'';
#endif
- for (int i = 0; i < argv.size (); ++i)
- {
- if (i > 0)
- result += ' ';
- /* Need to handle empty arguments specially. */
- if (argv[i][0] == '\0')
+ /* Need to handle empty arguments specially. */
+ if (arg[0] == '\0')
+ {
+ result += quote;
+ result += quote;
+ }
+ /* The special character handling code here assumes that if SPECIAL is
+ not nullptr, then SPECIAL will contain '\n'. This is true for all our
+ current usages, but if this ever changes in the future the following
+ might need reworking. */
+ else
+ {
+#ifdef __MINGW32__
+ bool quoted = false;
+
+ if (strpbrk (arg, special) != nullptr)
+ {
+ quoted = true;
+ result += quote;
+ }
+#endif
+ for (const char *cp = arg; *cp; ++cp)
+ {
+ if (*cp == '\n')
{
+ /* A newline cannot be quoted with a backslash (it just
+ disappears), only by putting it inside quotes. */
result += quote;
+ result += '\n';
result += quote;
}
else
{
#ifdef __MINGW32__
- bool quoted = false;
-
- if (strpbrk (argv[i], special))
- {
- quoted = true;
- result += quote;
- }
+ if (*cp == quote)
+#else
+ if (strchr (special, *cp) != nullptr)
#endif
- for (char *cp = argv[i]; *cp; ++cp)
- {
- if (*cp == '\n')
- {
- /* A newline cannot be quoted with a backslash (it
- just disappears), only by putting it inside
- quotes. */
- result += quote;
- result += '\n';
- result += quote;
- }
- else
- {
+ result += '\\';
+ result += *cp;
+ }
+ }
+#ifdef __MINGW32__
+ if (quoted)
+ result += quote;
+#endif
+ }
+
+ return result;
+}
+
+/* Return a version of ARG that has special shell characters escaped. */
+
+static std::string
+escape_shell_characters (const char *arg)
+{
#ifdef __MINGW32__
- if (*cp == quote)
+ /* This holds all the characters considered special to the
+ Windows shells. */
+ static const char special[] = "\"!&*|[]{}<>?`~^=;, \t\n";
#else
- if (strchr (special, *cp) != NULL)
+ /* This holds all the characters considered special to the
+ typical Unix shells. We include `^' because the SunOS
+ /bin/sh treats it as a synonym for `|'. */
+ static const char special[] = "\"!#$&*()\\|[]{}<>?'`~^; \t\n";
#endif
- result += '\\';
- result += *cp;
- }
- }
+
+ return escape_characters (arg, special);
+}
+
+/* Return a version of ARG that has quote characters and white space
+ characters escaped. These are the characters that GDB sees as special
+ when splitting a string into separate arguments. */
+
+static std::string
+escape_gdb_characters (const char * arg)
+{
#ifdef __MINGW32__
- if (quoted)
- result += quote;
+ static const char special[] = "\" \t\n";
+#else
+ static const char special[] = "\"' \t\n";
#endif
- }
- }
- }
- else
+
+ return escape_characters (arg, special);
+}
+
+/* See common-inferior.h. */
+
+std::string
+construct_inferior_arguments (gdb::array_view<char * const> argv,
+ bool escape_shell_char)
+{
+ /* Select the desired escape function. */
+ const auto escape_func = (escape_shell_char
+ ? escape_shell_characters
+ : escape_gdb_characters);
+
+ std::string result;
+
+ for (const char *a : argv)
{
- /* In this case we can't handle arguments that contain spaces,
- tabs, or newlines -- see breakup_args(). */
- for (char *arg : argv)
- {
- char *cp = strchr (arg, ' ');
- if (cp == NULL)
- cp = strchr (arg, '\t');
- if (cp == NULL)
- cp = strchr (arg, '\n');
- if (cp != NULL)
- error (_("can't handle command-line "
- "argument containing whitespace"));
- }
+ if (!result.empty ())
+ result += " ";
- for (int i = 0; i < argv.size (); ++i)
- {
- if (i > 0)
- result += " ";
- result += argv[i];
- }
+ result += escape_func (a);
}
return result;
diff --git a/gdbsupport/common-inferior.h b/gdbsupport/common-inferior.h
index ef99815..200c629 100644
--- a/gdbsupport/common-inferior.h
+++ b/gdbsupport/common-inferior.h
@@ -1,7 +1,7 @@
/* Functions to deal with the inferior being executed on GDB or
GDBserver.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -52,9 +52,13 @@ extern const std::string &get_inferior_cwd ();
the target is started up with a shell. */
extern bool startup_with_shell;
-/* Compute command-line string given argument vector. This does the
- same shell processing as fork_inferior. */
+/* Combine elements of ARGV into a single string, placing a single
+ whitespace character between each element. When ESCAPE_SHELL_CHAR is
+ true then any special shell characters in elements of ARGV will be
+ escaped. When ESCAPE_SHELL_CHAR is false only the characters that GDB
+ sees as special (quotes and whitespace) are escaped. */
extern std::string
-construct_inferior_arguments (gdb::array_view<char * const>);
+construct_inferior_arguments (gdb::array_view<char * const> argv,
+ bool escape_shell_char);
#endif /* GDBSUPPORT_COMMON_INFERIOR_H */
diff --git a/gdbsupport/common-regcache.cc b/gdbsupport/common-regcache.cc
index 525bb5c..22c0f32 100644
--- a/gdbsupport/common-regcache.cc
+++ b/gdbsupport/common-regcache.cc
@@ -1,6 +1,6 @@
/* Cache and manage the values of registers for GDB, the GNU debugger.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/common-regcache.h b/gdbsupport/common-regcache.h
index c637163..2350f4f 100644
--- a/gdbsupport/common-regcache.h
+++ b/gdbsupport/common-regcache.h
@@ -1,6 +1,6 @@
/* Cache and manage the values of registers
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/common-types.h b/gdbsupport/common-types.h
index 10d5f38..210e09b 100644
--- a/gdbsupport/common-types.h
+++ b/gdbsupport/common-types.h
@@ -1,6 +1,6 @@
/* Declarations for common types.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/common-utils.cc b/gdbsupport/common-utils.cc
index af25bf0..266d836 100644
--- a/gdbsupport/common-utils.cc
+++ b/gdbsupport/common-utils.cc
@@ -1,6 +1,6 @@
/* Shared general utility routines for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/common-utils.h b/gdbsupport/common-utils.h
index 114342d..10bf9f4 100644
--- a/gdbsupport/common-utils.h
+++ b/gdbsupport/common-utils.h
@@ -1,6 +1,6 @@
/* Shared general utility routines for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -196,6 +196,16 @@ in_inclusive_range (T value, T low, T high)
extern ULONGEST align_up (ULONGEST v, int n);
extern ULONGEST align_down (ULONGEST v, int n);
+/* Sign-extend the value V, using N as the number of valid bits. That
+ is, bit N-1 is the sign bit. The higher-order bits (those outside
+ 0..N-1) must be zero. */
+static inline ULONGEST
+sign_extend (ULONGEST v, int n)
+{
+ ULONGEST mask = (ULONGEST) 1 << (n - 1);
+ return (v ^ mask) - mask;
+}
+
/* Convert hex digit A to a number, or throw an exception. */
extern int fromhex (int a);
diff --git a/gdbsupport/common.m4 b/gdbsupport/common.m4
index 54290cc..f265af9 100644
--- a/gdbsupport/common.m4
+++ b/gdbsupport/common.m4
@@ -1,5 +1,5 @@
dnl Autoconf configure snippets for common.
-dnl Copyright (C) 1995-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1995-2025 Free Software Foundation, Inc.
dnl
dnl This file is part of GDB.
dnl
@@ -292,7 +292,7 @@ AC_CHECK_HEADERS([ \
])
dnl Check that the provided value ($1) is either "yes" or "no". If not,
-dnl emit an error message mentionning the configure option $2, and abort
+dnl emit an error message mentioning the configure option $2, and abort
dnl the script.
AC_DEFUN([GDB_CHECK_YES_NO_VAL],
[
@@ -306,7 +306,7 @@ AC_DEFUN([GDB_CHECK_YES_NO_VAL],
])
dnl Check that the provided value ($1) is either "yes", "no" or "auto". If not,
-dnl emit an error message mentionning the configure option $2, and abort
+dnl emit an error message mentioning the configure option $2, and abort
dnl the script.
AC_DEFUN([GDB_CHECK_YES_NO_AUTO_VAL],
[
diff --git a/gdbsupport/compiler-type.m4 b/gdbsupport/compiler-type.m4
index d09e0ee..5de502c 100644
--- a/gdbsupport/compiler-type.m4
+++ b/gdbsupport/compiler-type.m4
@@ -1,5 +1,5 @@
dnl Autoconf configure script for GDB, the GNU debugger.
-dnl Copyright (C) 2022-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 2022-2025 Free Software Foundation, Inc.
dnl
dnl This file is part of GDB.
dnl
diff --git a/gdbsupport/configure b/gdbsupport/configure
index 67a48c4..bcfae34 100755
--- a/gdbsupport/configure
+++ b/gdbsupport/configure
@@ -14233,22 +14233,36 @@ if test "${ERROR_ON_WARNING}" = yes ; then
fi
# The options we'll try to enable.
-build_warnings="-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 \
--Wno-error=deprecated-register \
--Wsuggest-override \
--Wimplicit-fallthrough=5 \
--Wduplicated-cond \
--Wshadow=local \
+build_warnings=" \
+-Wall \
-Wdeprecated-copy \
-Wdeprecated-copy-dtor \
--Wredundant-move \
+-Wduplicated-cond \
+-Wempty-body \
+-Wimplicit-fallthrough=5 \
-Wmissing-declarations \
+-Wno-char-subscripts \
+-Wno-error=deprecated-register \
+-Wno-mismatched-tags \
+-Wno-sign-compare -Wno-error=maybe-uninitialized \
+-Wno-switch \
+-Wno-unused \
+-Wpointer-arith \
+-Wredundant-move \
+-Wshadow=local \
-Wstrict-null-sentinel \
+-Wsuggest-override \
+-Wunused-but-set-parameter \
+-Wunused-but-set-variable \
+-Wunused-const-variable=1 \
+-Wunused-function \
+-Wunused-label \
+-Wunused-lambda-capture \
+-Wunused-local-typedefs \
+-Wunused-member-function \
+-Wunused-private-field \
+-Wunused-value \
+-Wunused-variable \
-Wvla \
"
diff --git a/gdbsupport/configure.ac b/gdbsupport/configure.ac
index 92e2a85..b7ccfab 100644
--- a/gdbsupport/configure.ac
+++ b/gdbsupport/configure.ac
@@ -1,5 +1,5 @@
dnl Autoconf configure script for GDB support library
-dnl Copyright (C) 2020-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 2020-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/gdbsupport/create-version.sh b/gdbsupport/create-version.sh
index 540c3dc..1c0836d 100755
--- a/gdbsupport/create-version.sh
+++ b/gdbsupport/create-version.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright (C) 1989-2024 Free Software Foundation, Inc.
+# Copyright (C) 1989-2025 Free Software Foundation, Inc.
# This file is part of GDB.
diff --git a/gdbsupport/def-vector.h b/gdbsupport/def-vector.h
index 3db6a2f..2e8e409 100644
--- a/gdbsupport/def-vector.h
+++ b/gdbsupport/def-vector.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/default-init-alloc.h b/gdbsupport/default-init-alloc.h
index 1cb1dcf..0702b77 100644
--- a/gdbsupport/default-init-alloc.h
+++ b/gdbsupport/default-init-alloc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/eintr.h b/gdbsupport/eintr.h
index 4cab8f9..04f86c8 100644
--- a/gdbsupport/eintr.h
+++ b/gdbsupport/eintr.h
@@ -1,6 +1,6 @@
/* Utility for handling interrupted syscalls by signals.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/enum-flags.h b/gdbsupport/enum-flags.h
index 71109bb..3f61610 100644
--- a/gdbsupport/enum-flags.h
+++ b/gdbsupport/enum-flags.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/environ.cc b/gdbsupport/environ.cc
index 1b6ca61..28d0721 100644
--- a/gdbsupport/environ.cc
+++ b/gdbsupport/environ.cc
@@ -1,6 +1,6 @@
/* environ.c -- library for manipulating environments for GNU.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdbsupport/environ.h b/gdbsupport/environ.h
index 6ac9f75..a33ffce 100644
--- a/gdbsupport/environ.h
+++ b/gdbsupport/environ.h
@@ -1,5 +1,5 @@
/* Header for environment manipulation library.
- Copyright (C) 1989-2024 Free Software Foundation, Inc.
+ Copyright (C) 1989-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/gdbsupport/errors.cc b/gdbsupport/errors.cc
index c11229a..b64c944 100644
--- a/gdbsupport/errors.cc
+++ b/gdbsupport/errors.cc
@@ -1,6 +1,6 @@
/* Error reporting facilities.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/errors.h b/gdbsupport/errors.h
index 6e56e90..a47f588 100644
--- a/gdbsupport/errors.h
+++ b/gdbsupport/errors.h
@@ -1,6 +1,6 @@
/* Declarations for error-reporting facilities.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/event-loop.cc b/gdbsupport/event-loop.cc
index 4f7ad36..e7b21e7 100644
--- a/gdbsupport/event-loop.cc
+++ b/gdbsupport/event-loop.cc
@@ -1,5 +1,5 @@
/* Event loop machinery for GDB, the GNU debugger.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Elena Zannoni <ezannoni@cygnus.com> of Cygnus Solutions.
This file is part of GDB.
@@ -81,7 +81,7 @@ struct file_handler
#ifdef HAVE_POLL
/* Do we use poll or select? Some systems have poll, but then it's
- not useable with all kinds of files. We probe that whenever a new
+ not usable with all kinds of files. We probe that whenever a new
file handler is added. */
static bool use_poll = true;
#endif
@@ -827,7 +827,8 @@ update_wait_timeout (void)
/* Update the timeout for select/ poll. */
#ifdef HAVE_POLL
if (use_poll)
- gdb_notifier.poll_timeout = timeout.tv_sec * 1000;
+ gdb_notifier.poll_timeout = (timeout.tv_sec * 1000 +
+ (timeout.tv_usec + 1000 - 1) / 1000);
else
#endif /* HAVE_POLL */
{
diff --git a/gdbsupport/event-loop.h b/gdbsupport/event-loop.h
index 80f4710..375f85e 100644
--- a/gdbsupport/event-loop.h
+++ b/gdbsupport/event-loop.h
@@ -1,5 +1,5 @@
/* Definitions used by the GDB event loop.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Elena Zannoni <ezannoni@cygnus.com> of Cygnus Solutions.
This file is part of GDB.
diff --git a/gdbsupport/event-pipe.cc b/gdbsupport/event-pipe.cc
index 120edd1..e3f2a30 100644
--- a/gdbsupport/event-pipe.cc
+++ b/gdbsupport/event-pipe.cc
@@ -1,6 +1,6 @@
/* Event pipe for GDB, the GNU debugger.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/event-pipe.h b/gdbsupport/event-pipe.h
index 7262403..f95b828 100644
--- a/gdbsupport/event-pipe.h
+++ b/gdbsupport/event-pipe.h
@@ -1,6 +1,6 @@
/* Event pipe for GDB, the GNU debugger.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/fileio.cc b/gdbsupport/fileio.cc
index b115e33b..6a79aed 100644
--- a/gdbsupport/fileio.cc
+++ b/gdbsupport/fileio.cc
@@ -1,6 +1,6 @@
/* File-I/O functions for GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/fileio.h b/gdbsupport/fileio.h
index 7e4c361..48243b8 100644
--- a/gdbsupport/fileio.h
+++ b/gdbsupport/fileio.h
@@ -1,6 +1,6 @@
/* File-I/O functions for GDB, the GNU debugger.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/filestuff.cc b/gdbsupport/filestuff.cc
index 9e07af2..5c1817e 100644
--- a/gdbsupport/filestuff.cc
+++ b/gdbsupport/filestuff.cc
@@ -1,5 +1,5 @@
/* Low-level file-handling.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -465,6 +465,13 @@ mkdir_recursive (const char *dir)
char *component_start = start;
char *component_end = start;
+#ifdef WIN32
+ /* If we're making an absolute path on windows, need to skip the drive
+ letter, which is the form 'C:/'. */
+ if (dir[0] != '\0' && dir[1] == ':' && dir[2] == '/')
+ component_start += 3;
+#endif
+
while (1)
{
/* Find the beginning of the next component. */
diff --git a/gdbsupport/filestuff.h b/gdbsupport/filestuff.h
index 549987b..89044b1 100644
--- a/gdbsupport/filestuff.h
+++ b/gdbsupport/filestuff.h
@@ -1,5 +1,5 @@
/* Low-level file-handling.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/filtered-iterator.h b/gdbsupport/filtered-iterator.h
index f801f96..e824d61 100644
--- a/gdbsupport/filtered-iterator.h
+++ b/gdbsupport/filtered-iterator.h
@@ -1,5 +1,5 @@
/* A forward filtered iterator for GDB, the GNU debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/format.cc b/gdbsupport/format.cc
index 12173ee..be3d821 100644
--- a/gdbsupport/format.cc
+++ b/gdbsupport/format.cc
@@ -1,6 +1,6 @@
/* Parse a printf-style format string.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/format.h b/gdbsupport/format.h
index b1f0c46..118b947 100644
--- a/gdbsupport/format.h
+++ b/gdbsupport/format.h
@@ -1,6 +1,6 @@
/* Parse a printf-style format string.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/forward-scope-exit.h b/gdbsupport/forward-scope-exit.h
index d4a3fc0..040a161 100644
--- a/gdbsupport/forward-scope-exit.h
+++ b/gdbsupport/forward-scope-exit.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/function-view.h b/gdbsupport/function-view.h
index f826206..2bd8225 100644
--- a/gdbsupport/function-view.h
+++ b/gdbsupport/function-view.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb-checked-static-cast.h b/gdbsupport/gdb-checked-static-cast.h
index e8909b9..66cb4e2 100644
--- a/gdbsupport/gdb-checked-static-cast.h
+++ b/gdbsupport/gdb-checked-static-cast.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb-dlfcn.cc b/gdbsupport/gdb-dlfcn.cc
index 1a8289a..609bf71 100644
--- a/gdbsupport/gdb-dlfcn.cc
+++ b/gdbsupport/gdb-dlfcn.cc
@@ -1,6 +1,6 @@
/* Platform independent shared object routines for GDB.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb-dlfcn.h b/gdbsupport/gdb-dlfcn.h
index 654db79..c8a1a2c 100644
--- a/gdbsupport/gdb-dlfcn.h
+++ b/gdbsupport/gdb-dlfcn.h
@@ -1,6 +1,6 @@
/* Platform independent shared object routines for GDB.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb-hashtab.h b/gdbsupport/gdb-hashtab.h
index 05465f9..dff3217 100644
--- a/gdbsupport/gdb-hashtab.h
+++ b/gdbsupport/gdb-hashtab.h
@@ -1,5 +1,5 @@
/* Hash table wrappers for gdb.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb-safe-ctype.h b/gdbsupport/gdb-safe-ctype.h
index f8968ef..36b78f5 100644
--- a/gdbsupport/gdb-safe-ctype.h
+++ b/gdbsupport/gdb-safe-ctype.h
@@ -1,6 +1,6 @@
/* Wrapper around libiberty's safe-ctype.h for GDB, the GNU debugger.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb-sigmask.h b/gdbsupport/gdb-sigmask.h
index 45a0412..f272b15 100644
--- a/gdbsupport/gdb-sigmask.h
+++ b/gdbsupport/gdb-sigmask.h
@@ -1,6 +1,6 @@
/* sigprocmask wrapper for gdb
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb-xfree.h b/gdbsupport/gdb-xfree.h
index 09c7539..14cfae5 100644
--- a/gdbsupport/gdb-xfree.h
+++ b/gdbsupport/gdb-xfree.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1986-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_assert.h b/gdbsupport/gdb_assert.h
index dd0e1e2..82c4077 100644
--- a/gdbsupport/gdb_assert.h
+++ b/gdbsupport/gdb_assert.h
@@ -1,5 +1,5 @@
/* GDB-friendly replacement for <assert.h>.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_binary_search.h b/gdbsupport/gdb_binary_search.h
index c7b9824..1f48c15 100644
--- a/gdbsupport/gdb_binary_search.h
+++ b/gdbsupport/gdb_binary_search.h
@@ -1,6 +1,6 @@
/* C++ implementation of a binary search.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_file.h b/gdbsupport/gdb_file.h
index 41bbbbc..aee54ab 100644
--- a/gdbsupport/gdb_file.h
+++ b/gdbsupport/gdb_file.h
@@ -1,5 +1,5 @@
/* gdb_file_up, an RAII wrapper around FILE.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_locale.h b/gdbsupport/gdb_locale.h
index dcdb064..1cc3af7 100644
--- a/gdbsupport/gdb_locale.h
+++ b/gdbsupport/gdb_locale.h
@@ -1,5 +1,5 @@
/* GDB-friendly replacement for <locale.h>.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_obstack.cc b/gdbsupport/gdb_obstack.cc
index f24b4fc..30d348e 100644
--- a/gdbsupport/gdb_obstack.cc
+++ b/gdbsupport/gdb_obstack.cc
@@ -1,6 +1,6 @@
/* Obstack wrapper for GDB.
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_obstack.h b/gdbsupport/gdb_obstack.h
index d401824..755b907 100644
--- a/gdbsupport/gdb_obstack.h
+++ b/gdbsupport/gdb_obstack.h
@@ -1,6 +1,6 @@
/* Obstack wrapper for GDB.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_proc_service.h b/gdbsupport/gdb_proc_service.h
index 0009702..19c2533 100644
--- a/gdbsupport/gdb_proc_service.h
+++ b/gdbsupport/gdb_proc_service.h
@@ -1,5 +1,5 @@
/* <proc_service.h> replacement for systems that don't have it.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_ref_ptr.h b/gdbsupport/gdb_ref_ptr.h
index df2b3d8..0c30125 100644
--- a/gdbsupport/gdb_ref_ptr.h
+++ b/gdbsupport/gdb_ref_ptr.h
@@ -1,6 +1,6 @@
/* Reference-counted smart pointer class
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_regex.cc b/gdbsupport/gdb_regex.cc
index 5570a14..4ba7b1c 100644
--- a/gdbsupport/gdb_regex.cc
+++ b/gdbsupport/gdb_regex.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2011-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2011-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_regex.h b/gdbsupport/gdb_regex.h
index 76264e5..802cf56 100644
--- a/gdbsupport/gdb_regex.h
+++ b/gdbsupport/gdb_regex.h
@@ -1,5 +1,5 @@
/* Portable <regex.h>.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_select.h b/gdbsupport/gdb_select.h
index b229a25..b87b75a 100644
--- a/gdbsupport/gdb_select.h
+++ b/gdbsupport/gdb_select.h
@@ -1,6 +1,6 @@
/* Slightly more portable version of <sys/select.h>.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_setjmp.h b/gdbsupport/gdb_setjmp.h
index 2482990..fbfa8f6 100644
--- a/gdbsupport/gdb_setjmp.h
+++ b/gdbsupport/gdb_setjmp.h
@@ -1,5 +1,5 @@
/* Portability wrappers for setjmp and longjmp.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_signals.h b/gdbsupport/gdb_signals.h
index b2dbcbb..ef11df7 100644
--- a/gdbsupport/gdb_signals.h
+++ b/gdbsupport/gdb_signals.h
@@ -1,5 +1,5 @@
/* Target signal translation functions for GDB.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB.
diff --git a/gdbsupport/gdb_splay_tree.h b/gdbsupport/gdb_splay_tree.h
index 05be2f1..543d618 100644
--- a/gdbsupport/gdb_splay_tree.h
+++ b/gdbsupport/gdb_splay_tree.h
@@ -1,6 +1,6 @@
/* GDB wrapper for splay trees.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_sys_time.h b/gdbsupport/gdb_sys_time.h
index ca93fc8..b6a35f6 100644
--- a/gdbsupport/gdb_sys_time.h
+++ b/gdbsupport/gdb_sys_time.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2015-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2015-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_tilde_expand.cc b/gdbsupport/gdb_tilde_expand.cc
index 4a0a573..6ede0c4 100644
--- a/gdbsupport/gdb_tilde_expand.cc
+++ b/gdbsupport/gdb_tilde_expand.cc
@@ -1,6 +1,6 @@
/* Perform tilde expansion on paths for GDB and gdbserver.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -51,7 +51,7 @@ public:
}
/* Return the GL_PATHC component of M_GLOB. */
- int pathc () const
+ int pathc () const /* codespell:ignore */
{
return m_glob.gl_pathc;
}
@@ -96,6 +96,6 @@ gdb_tilde_expand (const char *dir)
const gdb_glob glob (to_expand.c_str (), GLOB_TILDE_CHECK, nullptr);
- gdb_assert (glob.pathc () == 1);
+ gdb_assert (glob.pathc () == 1); /* codespell:ignore */
return std::string (glob.pathv ()[0]) + remainder;
}
diff --git a/gdbsupport/gdb_tilde_expand.h b/gdbsupport/gdb_tilde_expand.h
index 9618a0c..6cfc4bb 100644
--- a/gdbsupport/gdb_tilde_expand.h
+++ b/gdbsupport/gdb_tilde_expand.h
@@ -1,6 +1,6 @@
/* Perform tilde expansion on paths for GDB and gdbserver.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_unique_ptr.h b/gdbsupport/gdb_unique_ptr.h
index a40e1b1..6e35e83 100644
--- a/gdbsupport/gdb_unique_ptr.h
+++ b/gdbsupport/gdb_unique_ptr.h
@@ -1,6 +1,6 @@
/* std::unique_ptr specializations for GDB.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_unlinker.h b/gdbsupport/gdb_unlinker.h
index 2b90442..76e5603 100644
--- a/gdbsupport/gdb_unlinker.h
+++ b/gdbsupport/gdb_unlinker.h
@@ -1,6 +1,6 @@
/* Unlinking class
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_vecs.cc b/gdbsupport/gdb_vecs.cc
index 71c7308..f74b1dd 100644
--- a/gdbsupport/gdb_vecs.cc
+++ b/gdbsupport/gdb_vecs.cc
@@ -1,6 +1,6 @@
/* Some commonly-used VEC types.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_vecs.h b/gdbsupport/gdb_vecs.h
index 22c165c..822c80d 100644
--- a/gdbsupport/gdb_vecs.h
+++ b/gdbsupport/gdb_vecs.h
@@ -1,6 +1,6 @@
/* Some commonly-used VEC types.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_wait.cc b/gdbsupport/gdb_wait.cc
index 476861d..61f5a06 100644
--- a/gdbsupport/gdb_wait.cc
+++ b/gdbsupport/gdb_wait.cc
@@ -1,6 +1,6 @@
/* Support code for standard wait macros in gdb_wait.h.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/gdb_wait.h b/gdbsupport/gdb_wait.h
index 590dcea..76670d2 100644
--- a/gdbsupport/gdb_wait.h
+++ b/gdbsupport/gdb_wait.h
@@ -1,5 +1,5 @@
/* Standard wait macros.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/host-defs.h b/gdbsupport/host-defs.h
index 5298089..c2a7475 100644
--- a/gdbsupport/host-defs.h
+++ b/gdbsupport/host-defs.h
@@ -1,5 +1,5 @@
/* Basic host-specific definitions for GDB.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/intrusive_list.h b/gdbsupport/intrusive_list.h
index 345fd7d..de5802f 100644
--- a/gdbsupport/intrusive_list.h
+++ b/gdbsupport/intrusive_list.h
@@ -1,5 +1,5 @@
/* Intrusive double linked list for GDB, the GNU debugger.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/iterator-range.h b/gdbsupport/iterator-range.h
index 4b4c767..a8cacfb 100644
--- a/gdbsupport/iterator-range.h
+++ b/gdbsupport/iterator-range.h
@@ -1,5 +1,5 @@
/* A range adapter that wraps begin / end iterators.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/job-control.cc b/gdbsupport/job-control.cc
index eff196d..83f284d 100644
--- a/gdbsupport/job-control.cc
+++ b/gdbsupport/job-control.cc
@@ -1,7 +1,7 @@
/* Job control and terminal related functions, for GDB and gdbserver
when running under Unix.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/job-control.h b/gdbsupport/job-control.h
index 2b99d69..fe42194 100644
--- a/gdbsupport/job-control.h
+++ b/gdbsupport/job-control.h
@@ -1,7 +1,7 @@
/* Job control and terminal related functions, for GDB and gdbserver
when running under Unix.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/libiberty.m4 b/gdbsupport/libiberty.m4
index df22538..9f7936d 100644
--- a/gdbsupport/libiberty.m4
+++ b/gdbsupport/libiberty.m4
@@ -1,6 +1,6 @@
dnl Bits libiberty clients must do on their autoconf step.
dnl
-dnl Copyright (C) 2012-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2025 Free Software Foundation, Inc.
dnl
dnl This file is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/gdbsupport/netstuff.cc b/gdbsupport/netstuff.cc
index 73f1d3b..7e25fd2 100644
--- a/gdbsupport/netstuff.cc
+++ b/gdbsupport/netstuff.cc
@@ -1,5 +1,5 @@
/* Operations on network stuff.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/netstuff.h b/gdbsupport/netstuff.h
index ae8f9bb..e6a53c1 100644
--- a/gdbsupport/netstuff.h
+++ b/gdbsupport/netstuff.h
@@ -1,5 +1,5 @@
/* Operations on network stuff.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/new-op.cc b/gdbsupport/new-op.cc
index 23ab0bb..08bb8b4 100644
--- a/gdbsupport/new-op.cc
+++ b/gdbsupport/new-op.cc
@@ -1,6 +1,6 @@
/* Replace operator new/new[], for GDB, the GNU debugger.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/next-iterator.h b/gdbsupport/next-iterator.h
index 6bacb58..0140833 100644
--- a/gdbsupport/next-iterator.h
+++ b/gdbsupport/next-iterator.h
@@ -1,5 +1,5 @@
/* A "next" iterator for GDB, the GNU debugger.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/observable.h b/gdbsupport/observable.h
index b386bbc..f7b4d06 100644
--- a/gdbsupport/observable.h
+++ b/gdbsupport/observable.h
@@ -1,6 +1,6 @@
/* Observers
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/offset-type.h b/gdbsupport/offset-type.h
index 5e005a5..e42ec11 100644
--- a/gdbsupport/offset-type.h
+++ b/gdbsupport/offset-type.h
@@ -1,6 +1,6 @@
/* Offset types for GDB.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/osabi.cc b/gdbsupport/osabi.cc
index 1e41b5f..ac667b5 100644
--- a/gdbsupport/osabi.cc
+++ b/gdbsupport/osabi.cc
@@ -1,6 +1,6 @@
/* OS ABI variant handling for GDB and gdbserver.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/osabi.def b/gdbsupport/osabi.def
index 637da26..2e98e32 100644
--- a/gdbsupport/osabi.def
+++ b/gdbsupport/osabi.def
@@ -1,6 +1,6 @@
/* OS ABI variant definitions for GDB and gdbserver.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/osabi.h b/gdbsupport/osabi.h
index 5d0fb1c..6e0b739 100644
--- a/gdbsupport/osabi.h
+++ b/gdbsupport/osabi.h
@@ -1,6 +1,6 @@
/* OS ABI variant handling for GDB and gdbserver.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/owning_intrusive_list.h b/gdbsupport/owning_intrusive_list.h
index 4c72d9b..6f449a0 100644
--- a/gdbsupport/owning_intrusive_list.h
+++ b/gdbsupport/owning_intrusive_list.h
@@ -1,5 +1,5 @@
/* Owning version of intrusive_list for GDB, the GNU debugger.
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/packed.h b/gdbsupport/packed.h
index 37f02d2..200a418 100644
--- a/gdbsupport/packed.h
+++ b/gdbsupport/packed.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2022-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -75,7 +75,7 @@ public:
m_val = val;
#endif
- /* Ensure size and aligment are what we expect. */
+ /* Ensure size and alignment are what we expect. */
static_assert (sizeof (packed) == Bytes);
static_assert (alignof (packed) == 1);
diff --git a/gdbsupport/parallel-for.h b/gdbsupport/parallel-for.h
index 406c440..b74c806 100644
--- a/gdbsupport/parallel-for.h
+++ b/gdbsupport/parallel-for.h
@@ -1,6 +1,6 @@
/* Parallel for loops
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -40,10 +40,9 @@ namespace gdb
at least N elements processed per thread. Setting N to 0 is not
allowed. */
-template<class RandomIt, class RangeFunction>
+template<std::size_t n, class RandomIt, class RangeFunction>
void
-parallel_for_each (unsigned n, RandomIt first, RandomIt last,
- RangeFunction callback)
+parallel_for_each (RandomIt first, RandomIt last, RangeFunction callback)
{
/* If enabled, print debug info about how the work is distributed across
the threads. */
@@ -73,7 +72,7 @@ parallel_for_each (unsigned n, RandomIt first, RandomIt last,
if (parallel_for_each_debug)
{
debug_printf (_("Parallel for: n_elements: %zu\n"), n_elements);
- debug_printf (_("Parallel for: minimum elements per thread: %u\n"), n);
+ debug_printf (_("Parallel for: minimum elements per thread: %zu\n"), n);
debug_printf (_("Parallel for: elts_per_thread: %zu\n"), elts_per_thread);
}
@@ -141,8 +140,7 @@ parallel_for_each (unsigned n, RandomIt first, RandomIt last,
template<class RandomIt, class RangeFunction>
void
-sequential_for_each (unsigned n, RandomIt first, RandomIt last,
- RangeFunction callback)
+sequential_for_each (RandomIt first, RandomIt last, RangeFunction callback)
{
callback (first, last);
}
diff --git a/gdbsupport/pathstuff.cc b/gdbsupport/pathstuff.cc
index faed79b..ce01c95 100644
--- a/gdbsupport/pathstuff.cc
+++ b/gdbsupport/pathstuff.cc
@@ -1,6 +1,6 @@
/* Path manipulation routines for GDB and gdbserver.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/pathstuff.h b/gdbsupport/pathstuff.h
index 15e407f..2c1367e 100644
--- a/gdbsupport/pathstuff.h
+++ b/gdbsupport/pathstuff.h
@@ -1,6 +1,6 @@
/* Path manipulation routines for GDB and gdbserver.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/poison.h b/gdbsupport/poison.h
index 66f0fcf..a91ee5d 100644
--- a/gdbsupport/poison.h
+++ b/gdbsupport/poison.h
@@ -1,6 +1,6 @@
/* Poison symbols at compile time.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -183,7 +183,7 @@ xnewvar (size_t s)
{
static_assert (IsMallocable<T>::value, "Trying to use XNEWVAR with a \
non-POD data type.");
- return XNEWVAR (T, s);;
+ return XNEWVAR (T, s);
}
#undef XNEWVAR
diff --git a/gdbsupport/preprocessor.h b/gdbsupport/preprocessor.h
index 23177d5..498b348 100644
--- a/gdbsupport/preprocessor.h
+++ b/gdbsupport/preprocessor.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/print-utils.cc b/gdbsupport/print-utils.cc
index a2e4357..8514720 100644
--- a/gdbsupport/print-utils.cc
+++ b/gdbsupport/print-utils.cc
@@ -1,6 +1,6 @@
/* Cell-based print utility routines for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -145,7 +145,7 @@ static int thirty_two = 32;
/* See print-utils.h. */
const char *
-phex (ULONGEST l, int sizeof_l)
+phex_ulongest (ULONGEST l, int sizeof_l)
{
char *str;
@@ -170,7 +170,7 @@ phex (ULONGEST l, int sizeof_l)
xsnprintf (str, PRINT_CELL_SIZE, "%02x", (unsigned short) (l & 0xff));
break;
default:
- return phex (l, sizeof (l));
+ return phex (l);
break;
}
@@ -180,7 +180,7 @@ phex (ULONGEST l, int sizeof_l)
/* See print-utils.h. */
const char *
-phex_nz (ULONGEST l, int sizeof_l)
+phex_nz_ulongest (ULONGEST l, int sizeof_l)
{
char *str;
@@ -212,7 +212,7 @@ phex_nz (ULONGEST l, int sizeof_l)
xsnprintf (str, PRINT_CELL_SIZE, "%x", (unsigned short) (l & 0xff));
break;
default:
- return phex_nz (l, sizeof (l));
+ return phex_nz (l);
break;
}
@@ -226,7 +226,7 @@ hex_string (LONGEST num)
{
char *result = get_print_cell ();
- xsnprintf (result, PRINT_CELL_SIZE, "0x%s", phex_nz (num, sizeof (num)));
+ xsnprintf (result, PRINT_CELL_SIZE, "0x%s", phex_nz (num));
return result;
}
@@ -237,7 +237,7 @@ hex_string_custom (LONGEST num, int width)
{
char *result = get_print_cell ();
char *result_end = result + PRINT_CELL_SIZE - 1;
- const char *hex = phex_nz (num, sizeof (num));
+ const char *hex = phex_nz (num);
int hex_len = strlen (hex);
if (hex_len > width)
@@ -304,8 +304,7 @@ core_addr_to_string (const CORE_ADDR addr)
{
char *str = get_print_cell ();
- strcpy (str, "0x");
- strcat (str, phex (addr, sizeof (addr)));
+ xsnprintf (str, PRINT_CELL_SIZE, "0x%s", phex (addr));
return str;
}
@@ -316,8 +315,7 @@ core_addr_to_string_nz (const CORE_ADDR addr)
{
char *str = get_print_cell ();
- strcpy (str, "0x");
- strcat (str, phex_nz (addr, sizeof (addr)));
+ xsnprintf (str, PRINT_CELL_SIZE, "0x%s", phex_nz (addr));
return str;
}
diff --git a/gdbsupport/print-utils.h b/gdbsupport/print-utils.h
index dcc6804..dc5011c 100644
--- a/gdbsupport/print-utils.h
+++ b/gdbsupport/print-utils.h
@@ -1,6 +1,6 @@
/* Cell-based print utility routines for GDB, the GNU debugger.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -34,15 +34,35 @@ extern const char *pulongest (ULONGEST u);
extern const char *plongest (LONGEST l);
-/* Convert a ULONGEST into a HEX string, like %lx, with leading zeros.
+/* Convert L (of type ULONGEST) into a hex string, like %lx, with leading
+ zeros. The result is stored in a circular static buffer, NUMCELLS
+ deep. */
+
+extern const char *phex_ulongest (ULONGEST l, int sizeof_l);
+
+/* Convert L into a HEX string, like %lx, with leading zeros.
The result is stored in a circular static buffer, NUMCELLS deep. */
-extern const char *phex (ULONGEST l, int sizeof_l);
+template<typename T>
+const char *phex (T l, int sizeof_l = sizeof (T))
+{
+ return phex_ulongest (l, sizeof_l);
+}
+
+/* Convert L (of type ULONGEST) into a hex string, like %lx, without leading
+ zeros. The result is stored in a circular static buffer, NUMCELLS
+ deep. */
-/* Convert a ULONGEST into a HEX string, like %lx, without leading zeros.
- The result is stored in a circular static buffer, NUMCELLS deep. */
+extern const char *phex_nz_ulongest (ULONGEST l, int sizeof_l);
+
+/* Convert L into a hex string, like %lx, without leading zeros.
+ The result is stored in a circular static buffer, NUMCELLS deep. */
-extern const char *phex_nz (ULONGEST l, int sizeof_l);
+template<typename T>
+const char *phex_nz (T l, int sizeof_l = sizeof (T))
+{
+ return phex_nz_ulongest (l, sizeof_l);
+}
/* Converts a LONGEST to a C-format hexadecimal literal and stores it
in a static string. Returns a pointer to this string. */
diff --git a/gdbsupport/ptid.cc b/gdbsupport/ptid.cc
index 56daf92..62efc3d 100644
--- a/gdbsupport/ptid.cc
+++ b/gdbsupport/ptid.cc
@@ -1,6 +1,6 @@
/* The ptid_t type and common functions operating on it.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/ptid.h b/gdbsupport/ptid.h
index f502efe..db6c9a8 100644
--- a/gdbsupport/ptid.h
+++ b/gdbsupport/ptid.h
@@ -1,6 +1,6 @@
/* The ptid_t type and common functions operating on it.
- Copyright (C) 1986-2024 Free Software Foundation, Inc.
+ Copyright (C) 1986-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/ptrace.m4 b/gdbsupport/ptrace.m4
index 4153064..1d2397f 100644
--- a/gdbsupport/ptrace.m4
+++ b/gdbsupport/ptrace.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 2012-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 2012-2025 Free Software Foundation, Inc.
dnl
dnl This file is part of GDB.
dnl
diff --git a/gdbsupport/range-chain.h b/gdbsupport/range-chain.h
index b6b711b..d00490b 100644
--- a/gdbsupport/range-chain.h
+++ b/gdbsupport/range-chain.h
@@ -1,5 +1,5 @@
/* A range adapter that wraps multiple ranges
- Copyright (C) 2022-2024 Free Software Foundation, Inc.
+ Copyright (C) 2022-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/refcounted-object.h b/gdbsupport/refcounted-object.h
index 42bf71a..0a33898 100644
--- a/gdbsupport/refcounted-object.h
+++ b/gdbsupport/refcounted-object.h
@@ -1,5 +1,5 @@
/* Base class of intrusively reference-counted objects.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/reference-to-pointer-iterator.h b/gdbsupport/reference-to-pointer-iterator.h
index 6f21595..af58e38 100644
--- a/gdbsupport/reference-to-pointer-iterator.h
+++ b/gdbsupport/reference-to-pointer-iterator.h
@@ -1,5 +1,5 @@
/* An iterator wrapper that yields pointers instead of references.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/remote-args.cc b/gdbsupport/remote-args.cc
new file mode 100644
index 0000000..2493433
--- /dev/null
+++ b/gdbsupport/remote-args.cc
@@ -0,0 +1,43 @@
+/* Copyright (C) 2023-2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#include "gdbsupport/common-defs.h"
+#include "gdbsupport/remote-args.h"
+#include "gdbsupport/common-inferior.h"
+#include "gdbsupport/buildargv.h"
+
+/* See remote-args.h. */
+
+std::vector<std::string>
+gdb::remote_args::split (const std::string &args)
+{
+ std::vector<std::string> results;
+
+ gdb_argv argv (args.c_str ());
+ for (int i = 0; argv[i] != nullptr; i++)
+ results.emplace_back (argv[i]);
+
+ return results;
+}
+
+/* See remote-args.h. */
+
+std::string
+gdb::remote_args::join (const std::vector<char *> &args)
+{
+ return construct_inferior_arguments (args, true);
+}
diff --git a/gdbsupport/remote-args.h b/gdbsupport/remote-args.h
new file mode 100644
index 0000000..0533da6
--- /dev/null
+++ b/gdbsupport/remote-args.h
@@ -0,0 +1,60 @@
+/* Functions to help when passing arguments between GDB and gdbserver.
+
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#ifndef GDBSUPPORT_REMOTE_ARGS_H
+#define GDBSUPPORT_REMOTE_ARGS_H
+
+/* The functions declared here are used when passing inferior arguments
+ from GDB to gdbserver.
+
+ The remote protocol requires that arguments are passed as a vector of
+ separate argument while GDB stores the arguments as a single string, and
+ gdbserver also requires the arguments be a single string.
+
+ These functions then provide a mechanism to split up an argument string
+ and recombine it within gdbserver while preserving escaping of special
+ characters within the argument string. */
+
+namespace gdb
+{
+
+namespace remote_args
+{
+
+/* ARGS is an inferior argument string. This function splits ARGS into
+ individual arguments and returns a vector containing each argument. */
+
+extern std::vector<std::string> split (const std::string &args);
+
+/* Join together the separate arguments in ARGS and build a single
+ inferior argument string. The string returned by this function will be
+ equivalent, but not necessarily identical to the string passed to
+ ::split, for example passing the string '"a b"' (without the single
+ quotes, but including the double quotes) to ::split, will return an
+ argument of 'a b' (without the single quotes). When this argument is
+ passed through ::join we will get back the string 'a\ b' (without the
+ single quotes), that is, we choose to escape the white space, rather
+ than wrap the argument in quotes. */
+extern std::string join (const std::vector<char *> &args);
+
+} /* namespace remote_args */
+
+} /* namespace gdb */
+
+#endif /* GDBSUPPORT_REMOTE_ARGS_H */
diff --git a/gdbsupport/rsp-low.cc b/gdbsupport/rsp-low.cc
index 20f249f..4272410 100644
--- a/gdbsupport/rsp-low.cc
+++ b/gdbsupport/rsp-low.cc
@@ -1,6 +1,6 @@
/* Low-level RSP routines for GDB, the GNU debugger.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/rsp-low.h b/gdbsupport/rsp-low.h
index e91c79e..8e8171d 100644
--- a/gdbsupport/rsp-low.h
+++ b/gdbsupport/rsp-low.h
@@ -1,6 +1,6 @@
/* Low-level RSP routines for GDB, the GNU debugger.
- Copyright (C) 1988-2024 Free Software Foundation, Inc.
+ Copyright (C) 1988-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/run-time-clock.cc b/gdbsupport/run-time-clock.cc
index f754b03..cda60b0 100644
--- a/gdbsupport/run-time-clock.cc
+++ b/gdbsupport/run-time-clock.cc
@@ -1,5 +1,5 @@
/* User/system CPU time clocks that follow the std::chrono interface.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -37,14 +37,51 @@ timeval_to_microseconds (struct timeval *tv)
}
#endif
+/* See run-time-clock.h. */
+
+bool
+get_run_time_thread_scope_available ()
+{
+#if defined HAVE_GETRUSAGE && defined RUSAGE_THREAD
+ return true;
+#else
+ return false;
+#endif
+}
+
void
-run_time_clock::now (user_cpu_time_clock::time_point &user,
- system_cpu_time_clock::time_point &system) noexcept
+get_run_time (user_cpu_time_clock::time_point &user,
+ system_cpu_time_clock::time_point &system,
+ run_time_scope scope) noexcept
{
#ifdef HAVE_GETRUSAGE
+
+ /* If we can't provide thread scope run time usage, fallback to
+ process scope. This will at least be right if GDB is built
+ without threading support in the first place (or is set to use
+ zero worker threads). */
+# ifndef RUSAGE_THREAD
+# define RUSAGE_THREAD RUSAGE_SELF
+# endif
+
struct rusage rusage;
+ int who;
+
+ switch (scope)
+ {
+ case run_time_scope::thread:
+ who = RUSAGE_THREAD;
+ break;
+
+ case run_time_scope::process:
+ who = RUSAGE_SELF;
+ break;
+
+ default:
+ gdb_assert_not_reached ("invalid run_time_scope value");
+ }
- getrusage (RUSAGE_SELF, &rusage);
+ getrusage (who, &rusage);
microseconds utime = timeval_to_microseconds (&rusage.ru_utime);
microseconds stime = timeval_to_microseconds (&rusage.ru_stime);
diff --git a/gdbsupport/run-time-clock.h b/gdbsupport/run-time-clock.h
index f432854..2743514 100644
--- a/gdbsupport/run-time-clock.h
+++ b/gdbsupport/run-time-clock.h
@@ -1,5 +1,5 @@
/* User/system CPU time clocks that follow the std::chrono interface.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -51,6 +51,33 @@ struct system_cpu_time_clock
static time_point now () noexcept = delete;
};
+/* Whether to measure time run time for the whole process or just one
+ thread. */
+
+enum class run_time_scope
+{
+ process,
+ thread,
+};
+
+/* Return the user/system time as separate time points, if
+ supported. If not supported, then the combined user+kernel time
+ is returned in USER and SYSTEM is set to zero.
+
+ SCOPE indicates whether to return the run time for the whole
+ process or just for the calling thread. If the latter isn't
+ supported, then returns the run time for the whole process even if
+ run_time_scope::thread is requested. */
+
+void get_run_time (user_cpu_time_clock::time_point &user,
+ system_cpu_time_clock::time_point &system,
+ run_time_scope scope) noexcept;
+
+/* Returns true if is it possible for get_run_time above to return the
+ run time for just the calling thread. */
+
+bool get_run_time_thread_scope_available ();
+
/* Count the total amount of time spent executing in userspace+kernel
mode. */
@@ -64,12 +91,6 @@ struct run_time_clock
static constexpr bool is_steady = true;
static time_point now () noexcept;
-
- /* Return the user/system time as separate time points, if
- supported. If not supported, then the combined user+kernel time
- is returned in USER and SYSTEM is set to zero. */
- static void now (user_cpu_time_clock::time_point &user,
- system_cpu_time_clock::time_point &system) noexcept;
};
#endif /* GDBSUPPORT_RUN_TIME_CLOCK_H */
diff --git a/gdbsupport/safe-iterator.h b/gdbsupport/safe-iterator.h
index f31f92f..5388160 100644
--- a/gdbsupport/safe-iterator.h
+++ b/gdbsupport/safe-iterator.h
@@ -1,5 +1,5 @@
/* A safe iterator for GDB, the GNU debugger.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/safe-strerror.cc b/gdbsupport/safe-strerror.cc
index 54b3b85..88795d7 100644
--- a/gdbsupport/safe-strerror.cc
+++ b/gdbsupport/safe-strerror.cc
@@ -1,6 +1,6 @@
/* Safe version of strerror for GDB, the GNU debugger.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/scope-exit.h b/gdbsupport/scope-exit.h
index c0aadd9..6a550c5 100644
--- a/gdbsupport/scope-exit.h
+++ b/gdbsupport/scope-exit.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2019-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/scoped_fd.h b/gdbsupport/scoped_fd.h
index 240685a..2831e4f 100644
--- a/gdbsupport/scoped_fd.h
+++ b/gdbsupport/scoped_fd.h
@@ -1,6 +1,6 @@
/* scoped_fd, automatically close a file descriptor
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/scoped_ignore_signal.h b/gdbsupport/scoped_ignore_signal.h
index 2fecd58..9894704 100644
--- a/gdbsupport/scoped_ignore_signal.h
+++ b/gdbsupport/scoped_ignore_signal.h
@@ -1,6 +1,6 @@
/* Support for ignoring signals.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/scoped_ignore_sigttou.h b/gdbsupport/scoped_ignore_sigttou.h
index bb4e86d..e1c9a72 100644
--- a/gdbsupport/scoped_ignore_sigttou.h
+++ b/gdbsupport/scoped_ignore_sigttou.h
@@ -1,6 +1,6 @@
/* Support for ignoring SIGTTOU.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/scoped_mmap.cc b/gdbsupport/scoped_mmap.cc
index c5c527b..8321f36 100644
--- a/gdbsupport/scoped_mmap.cc
+++ b/gdbsupport/scoped_mmap.cc
@@ -1,6 +1,6 @@
/* scoped_mmap, automatically unmap files
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/scoped_mmap.h b/gdbsupport/scoped_mmap.h
index ea2f4fd..dbe472a 100644
--- a/gdbsupport/scoped_mmap.h
+++ b/gdbsupport/scoped_mmap.h
@@ -1,6 +1,6 @@
/* scoped_mmap, automatically unmap files
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/scoped_restore.h b/gdbsupport/scoped_restore.h
index 5833b92..672e8b1 100644
--- a/gdbsupport/scoped_restore.h
+++ b/gdbsupport/scoped_restore.h
@@ -1,6 +1,6 @@
/* scoped_restore, a simple class for saving and restoring a value
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/scoped_signal_handler.h b/gdbsupport/scoped_signal_handler.h
index 3dffd79..e470595 100644
--- a/gdbsupport/scoped_signal_handler.h
+++ b/gdbsupport/scoped_signal_handler.h
@@ -1,6 +1,6 @@
/* RAII class to install a separate handler for a given signal
- Copyright (C) 2024 Free Software Foundation, Inc.
+ Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -17,8 +17,8 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
-#ifndef SCOPED_SIGNAL_HANDLER_H
-#define SCOPED_SIGNAL_HANDLER_H
+#ifndef GDBSUPPORT_SCOPED_SIGNAL_HANDLER_H
+#define GDBSUPPORT_SCOPED_SIGNAL_HANDLER_H
#include <signal.h>
@@ -70,4 +70,4 @@ private:
#endif
};
-#endif /* SCOPED_SIGNAL_HANDLER_H */
+#endif /* GDBSUPPORT_SCOPED_SIGNAL_HANDLER_H */
diff --git a/gdbsupport/search.cc b/gdbsupport/search.cc
index 6c52643..230d2a8 100644
--- a/gdbsupport/search.cc
+++ b/gdbsupport/search.cc
@@ -1,6 +1,6 @@
/* Target memory searching
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/search.h b/gdbsupport/search.h
index f8c003b..9ee2fb0 100644
--- a/gdbsupport/search.h
+++ b/gdbsupport/search.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2020-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/selftest.cc b/gdbsupport/selftest.cc
index d3bed68..0874807 100644
--- a/gdbsupport/selftest.cc
+++ b/gdbsupport/selftest.cc
@@ -1,5 +1,5 @@
/* GDB self-testing.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
@@ -138,4 +138,4 @@ all_selftests ()
return selftests_range (tests.cbegin (), tests.cend ());
}
-} // namespace selftests
+} /* namespace selftests */
diff --git a/gdbsupport/selftest.h b/gdbsupport/selftest.h
index cbbdd01..1bc7475 100644
--- a/gdbsupport/selftest.h
+++ b/gdbsupport/selftest.h
@@ -1,5 +1,5 @@
/* GDB self-testing.
- Copyright (C) 2016-2024 Free Software Foundation, Inc.
+ Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/selftest.m4 b/gdbsupport/selftest.m4
index 2e7cae1..df1a759 100644
--- a/gdbsupport/selftest.m4
+++ b/gdbsupport/selftest.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 2018-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 2018-2025 Free Software Foundation, Inc.
dnl
dnl This file is part of GDB.
dnl
diff --git a/gdbsupport/signals-state-save-restore.cc b/gdbsupport/signals-state-save-restore.cc
index 60724f9..8247434 100644
--- a/gdbsupport/signals-state-save-restore.cc
+++ b/gdbsupport/signals-state-save-restore.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/signals-state-save-restore.h b/gdbsupport/signals-state-save-restore.h
index e01ac36..26e0203 100644
--- a/gdbsupport/signals-state-save-restore.h
+++ b/gdbsupport/signals-state-save-restore.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2016-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2016-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/signals.cc b/gdbsupport/signals.cc
index 2cf641b..f4065cc 100644
--- a/gdbsupport/signals.cc
+++ b/gdbsupport/signals.cc
@@ -1,5 +1,5 @@
/* Target signal translation functions for GDB.
- Copyright (C) 1990-2024 Free Software Foundation, Inc.
+ Copyright (C) 1990-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB.
diff --git a/gdbsupport/string-set.h b/gdbsupport/string-set.h
new file mode 100644
index 0000000..c9078fc
--- /dev/null
+++ b/gdbsupport/string-set.h
@@ -0,0 +1,129 @@
+/* String-interning set
+
+ Copyright (C) 2025 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ 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, see <http://www.gnu.org/licenses/>. */
+
+#ifndef GDBSUPPORT_STRING_SET_H
+#define GDBSUPPORT_STRING_SET_H
+
+#include "gdbsupport/unordered_set.h"
+#include <string_view>
+
+namespace gdb
+{
+
+/* This is a string-interning set. It manages storage for strings,
+ ensuring that just a single copy of a given string is kept. The
+ underlying C string will remain valid for the lifetime of this
+ object. */
+
+class string_set
+{
+public:
+
+ /* Insert STR into this set. Returns a pointer to the interned
+ string. */
+ const char *insert (const char *str)
+ {
+ /* We need to take the length to hash the string anyway, so it's
+ convenient to just wrap it here. */
+ return insert (std::string_view (str));
+ }
+
+ /* An overload accepting a string view. */
+ const char *insert (std::string_view str)
+ {
+ return m_set.insert (str).first->get ();
+ }
+
+ /* An overload that takes ownership of the string. */
+ const char *insert (gdb::unique_xmalloc_ptr<char> str)
+ {
+ return m_set.insert (local_string (std::move (str))).first->get ();
+ }
+
+private:
+
+ /* The type of string we store. Note that we do not store
+ std::string here to avoid the small-string optimization
+ invalidating a pointer on rehash. */
+ struct local_string
+ {
+ explicit local_string (std::string_view str)
+ : contents (xstrndup (str.data (), str.size ())),
+ len (str.size ())
+ { }
+
+ explicit local_string (gdb::unique_xmalloc_ptr<char> str)
+ : contents (std::move (str)),
+ len (strlen (contents.get ()))
+ { }
+
+ const char *get () const
+ { return contents.get (); }
+
+ std::string_view as_view () const
+ { return std::string_view (contents.get (), len); }
+
+ /* \0-terminated string contents. */
+ gdb::unique_xmalloc_ptr<char> contents;
+ /* Length of the string. */
+ size_t len;
+ };
+
+ /* Equality object for the set. */
+ struct str_eq
+ {
+ using is_transparent = void;
+
+ bool operator() (std::string_view lhs, const local_string &rhs)
+ const noexcept
+ {
+ return lhs == rhs.as_view ();
+ }
+
+ bool operator() (const local_string &lhs, const local_string &rhs)
+ const noexcept
+ {
+ return (*this) (lhs.as_view (), rhs);
+ }
+ };
+
+ /* Hash object for the set. */
+ struct str_hash
+ {
+ using is_transparent = void;
+ using is_avalanching = void;
+
+ uint64_t operator() (const local_string &rhs) const noexcept
+ {
+ return (*this) (rhs.as_view ());
+ }
+
+ uint64_t operator() (std::string_view rhs) const noexcept
+ {
+ return ankerl::unordered_dense::hash<std::string_view> () (rhs);
+ }
+ };
+
+ /* The strings. */
+ gdb::unordered_set<local_string, str_hash, str_eq> m_set;
+};
+
+}
+
+#endif /* GDBSUPPORT_STRING_SET_H */
diff --git a/gdbsupport/symbol.h b/gdbsupport/symbol.h
index de439c0..cbb58e4 100644
--- a/gdbsupport/symbol.h
+++ b/gdbsupport/symbol.h
@@ -1,6 +1,6 @@
/* Declarations of common symbol functions.
- Copyright (C) 2014-2024 Free Software Foundation, Inc.
+ Copyright (C) 2014-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/task-group.cc b/gdbsupport/task-group.cc
index e29ed25..61ccfb0 100644
--- a/gdbsupport/task-group.cc
+++ b/gdbsupport/task-group.cc
@@ -1,6 +1,6 @@
/* Task group
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/task-group.h b/gdbsupport/task-group.h
index b1d287a..4c78297 100644
--- a/gdbsupport/task-group.h
+++ b/gdbsupport/task-group.h
@@ -1,6 +1,6 @@
/* Task group
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/tdesc.cc b/gdbsupport/tdesc.cc
index 080d39c..ed92c86 100644
--- a/gdbsupport/tdesc.cc
+++ b/gdbsupport/tdesc.cc
@@ -1,6 +1,6 @@
/* Target description support for GDB.
- Copyright (C) 2018-2024 Free Software Foundation, Inc.
+ Copyright (C) 2018-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/tdesc.h b/gdbsupport/tdesc.h
index eafa95d..6bf66ad 100644
--- a/gdbsupport/tdesc.h
+++ b/gdbsupport/tdesc.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2006-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/thread-pool.cc b/gdbsupport/thread-pool.cc
index 04a2034..d70df82 100644
--- a/gdbsupport/thread-pool.cc
+++ b/gdbsupport/thread-pool.cc
@@ -1,6 +1,6 @@
/* Thread pool
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/thread-pool.h b/gdbsupport/thread-pool.h
index 85f2348..f3ac94b 100644
--- a/gdbsupport/thread-pool.h
+++ b/gdbsupport/thread-pool.h
@@ -1,6 +1,6 @@
/* Thread pool
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/traits.h b/gdbsupport/traits.h
index 62e6de7..4f8f857 100644
--- a/gdbsupport/traits.h
+++ b/gdbsupport/traits.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/underlying.h b/gdbsupport/underlying.h
index a3e7e3f..8880b16 100644
--- a/gdbsupport/underlying.h
+++ b/gdbsupport/underlying.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2017-2024 Free Software Foundation, Inc.
+/* Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/unordered_dense.h b/gdbsupport/unordered_dense.h
index 2aaacd6..73dc9ac 100644
--- a/gdbsupport/unordered_dense.h
+++ b/gdbsupport/unordered_dense.h
@@ -267,7 +267,7 @@ inline void mum(uint64_t* a, uint64_t* b) {
return detail::wyhash::mix(x, UINT64_C(0x9E3779B97F4A7C15));
}
-} // namespace detail::wyhash
+} /* namespace detail::wyhash */
ANKERL_UNORDERED_DENSE_EXPORT template <typename T, typename Enable = void>
struct hash {
@@ -431,7 +431,7 @@ ANKERL_UNORDERED_DENSE_PACK(struct big {
size_t m_value_idx; // index into the m_values vector.
});
-} // namespace bucket_type
+} /* namespace bucket_type */
namespace detail {
@@ -492,7 +492,7 @@ struct base_table_type_map {
// base type for set doesn't have mapped_type
struct base_table_type_set {};
-} // namespace detail
+} /* namespace detail */
// Very much like std::deque, but faster for indexing (in most cases). As of now this doesn't implement the full std::vector
// API, but merely what's necessary to work as an underlying container for ankerl::unordered_dense::{map, set}.
@@ -1918,7 +1918,7 @@ public:
}
};
-} // namespace detail
+} /* namespace detail */
ANKERL_UNORDERED_DENSE_EXPORT template <class Key,
class T,
@@ -1983,7 +1983,7 @@ ANKERL_UNORDERED_DENSE_EXPORT template <class Key,
using segmented_set =
detail::table<Key, void, Hash, KeyEqual, ANKERL_UNORDERED_DENSE_PMR::polymorphic_allocator<Key>, Bucket, true>;
-} // namespace pmr
+} /* namespace pmr */
# endif
@@ -1992,8 +1992,8 @@ using segmented_set =
// deduction guides for alias templates are only possible since C++20
// see https://en.cppreference.com/w/cpp/language/class_template_argument_deduction
-} // namespace ANKERL_UNORDERED_DENSE_NAMESPACE
-} // namespace ankerl::unordered_dense
+} /* namespace ANKERL_UNORDERED_DENSE_NAMESPACE */
+} /* namespace ankerl::unordered_dense */
// std extensions /////////////////////////////////////////////////////////////
@@ -2026,7 +2026,7 @@ auto erase_if(ankerl::unordered_dense::detail::table<Key, T, Hash, KeyEqual, All
return old_size - map.size();
}
-} // namespace std
+} /* namespace std */
#endif
#endif
diff --git a/gdbsupport/unordered_map.h b/gdbsupport/unordered_map.h
index 96407b5..10c0c51 100644
--- a/gdbsupport/unordered_map.h
+++ b/gdbsupport/unordered_map.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2024 Free Software Foundation, Inc.
+/* Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/unordered_set.h b/gdbsupport/unordered_set.h
index 73a4fa4..aaa4579 100644
--- a/gdbsupport/unordered_set.h
+++ b/gdbsupport/unordered_set.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2024 Free Software Foundation, Inc.
+/* Copyright (C) 2024-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/valid-expr.h b/gdbsupport/valid-expr.h
index ef51958..48dce25 100644
--- a/gdbsupport/valid-expr.h
+++ b/gdbsupport/valid-expr.h
@@ -1,6 +1,6 @@
/* Compile-time valid expression checker for GDB, the GNU debugger.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/version.h b/gdbsupport/version.h
index 052d613..0f4c379 100644
--- a/gdbsupport/version.h
+++ b/gdbsupport/version.h
@@ -1,5 +1,5 @@
/* Version information for GDB.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/warning.m4 b/gdbsupport/warning.m4
index 2dadd7f..fe1d279 100644
--- a/gdbsupport/warning.m4
+++ b/gdbsupport/warning.m4
@@ -1,5 +1,5 @@
dnl Autoconf configure script for GDB, the GNU debugger.
-dnl Copyright (C) 1995-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1995-2025 Free Software Foundation, Inc.
dnl
dnl This file is part of GDB.
dnl
@@ -36,22 +36,36 @@ if test "${ERROR_ON_WARNING}" = yes ; then
fi
# The options we'll try to enable.
-build_warnings="-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 \
--Wno-error=deprecated-register \
--Wsuggest-override \
--Wimplicit-fallthrough=5 \
--Wduplicated-cond \
--Wshadow=local \
+build_warnings=" \
+-Wall \
-Wdeprecated-copy \
-Wdeprecated-copy-dtor \
--Wredundant-move \
+-Wduplicated-cond \
+-Wempty-body \
+-Wimplicit-fallthrough=5 \
-Wmissing-declarations \
+-Wno-char-subscripts \
+-Wno-error=deprecated-register \
+-Wno-mismatched-tags \
+-Wno-sign-compare -Wno-error=maybe-uninitialized \
+-Wno-switch \
+-Wno-unused \
+-Wpointer-arith \
+-Wredundant-move \
+-Wshadow=local \
-Wstrict-null-sentinel \
+-Wsuggest-override \
+-Wunused-but-set-parameter \
+-Wunused-but-set-variable \
+-Wunused-const-variable=1 \
+-Wunused-function \
+-Wunused-label \
+-Wunused-lambda-capture \
+-Wunused-local-typedefs \
+-Wunused-member-function \
+-Wunused-private-field \
+-Wunused-value \
+-Wunused-variable \
-Wvla \
"
diff --git a/gdbsupport/x86-xstate.h b/gdbsupport/x86-xstate.h
index 45300b2..5d563ff 100644
--- a/gdbsupport/x86-xstate.h
+++ b/gdbsupport/x86-xstate.h
@@ -1,6 +1,6 @@
/* Common code for x86 XSAVE extended state.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/xml-utils.cc b/gdbsupport/xml-utils.cc
index b89204c..a4cca8b 100644
--- a/gdbsupport/xml-utils.cc
+++ b/gdbsupport/xml-utils.cc
@@ -1,6 +1,6 @@
/* Shared helper routines for manipulating XML.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gdbsupport/xml-utils.h b/gdbsupport/xml-utils.h
index d68f4c9..c6b0e49 100644
--- a/gdbsupport/xml-utils.h
+++ b/gdbsupport/xml-utils.h
@@ -1,6 +1,6 @@
/* Shared helper routines for manipulating XML.
- Copyright (C) 2006-2024 Free Software Foundation, Inc.
+ Copyright (C) 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/gnulib/Makefile.am b/gnulib/Makefile.am
index 2deec5b..6d934b6 100644
--- a/gnulib/Makefile.am
+++ b/gnulib/Makefile.am
@@ -1,4 +1,4 @@
-# Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# Copyright (C) 2019-2025 Free Software Foundation, Inc.
# This file is part of GDB.
diff --git a/gnulib/Makefile.gnulib.inc.in b/gnulib/Makefile.gnulib.inc.in
index e82cbe5..0fb599b 100644
--- a/gnulib/Makefile.gnulib.inc.in
+++ b/gnulib/Makefile.gnulib.inc.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/gnulib/Makefile.in b/gnulib/Makefile.in
index 49c803b..90ca4f6 100644
--- a/gnulib/Makefile.in
+++ b/gnulib/Makefile.in
@@ -14,7 +14,7 @@
@SET_MAKE@
-# Copyright (C) 2019-2024 Free Software Foundation, Inc.
+# Copyright (C) 2019-2025 Free Software Foundation, Inc.
# This file is part of GDB.
diff --git a/gnulib/configure.ac b/gnulib/configure.ac
index 8ee8689..c13465c 100644
--- a/gnulib/configure.ac
+++ b/gnulib/configure.ac
@@ -1,5 +1,5 @@
dnl Autoconf configure script for GDB, the GNU debugger.
-dnl Copyright (C) 1995-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1995-2025 Free Software Foundation, Inc.
dnl
dnl This file is part of GDB.
dnl
diff --git a/gnulib/update-gnulib.sh b/gnulib/update-gnulib.sh
index 38175ce..18bb5eb 100755
--- a/gnulib/update-gnulib.sh
+++ b/gnulib/update-gnulib.sh
@@ -1,6 +1,6 @@
#! /bin/sh
-# Copyright (C) 2011-2024 Free Software Foundation, Inc.
+# Copyright (C) 2011-2025 Free Software Foundation, Inc.
#
# This file is part of GDB.
#
diff --git a/gold/po/sr.po b/gold/po/sr.po
index e5ee8b6..755e850 100644
--- a/gold/po/sr.po
+++ b/gold/po/sr.po
@@ -1,14 +1,14 @@
# Serbian translation of gold.
# Copyright © 2020 Free Software Foundation, Inc.
# This file is distributed under the same license as the binutils package.
-# МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>, 2020-2024.
+# МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>, 2020-2025.
#
msgid ""
msgstr ""
-"Project-Id-Version: gold-2.41.90\n"
+"Project-Id-Version: gold-2.43.90\n"
"Report-Msgid-Bugs-To: https://sourceware.org/bugzilla/\n"
-"POT-Creation-Date: 2024-01-15 14:59+0000\n"
-"PO-Revision-Date: 2024-01-21 08:31+0100\n"
+"POT-Creation-Date: 2025-01-19 12:20+0000\n"
+"PO-Revision-Date: 2025-02-02 11:53+0100\n"
"Last-Translator: МироÑлав Ðиколић <miroslavnikolic@rocketmail.com>\n"
"Language-Team: Serbian <(nothing)>\n"
"Language: sr\n"
@@ -17,6 +17,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Poedit 3.5\n"
#: aarch64-reloc-property.cc:173 arm-reloc-property.cc:303
#, c-format
@@ -82,7 +83,7 @@ msgstr "Окрајак је предалеко, пробајте мању вре
#: aarch64.cc:6017 arm.cc:8477 i386.cc:1772 mips.cc:12507 powerpc.cc:7848
#: s390.cc:2185 s390.cc:2633 sparc.cc:2134 tilegx.cc:3137 tilegx.cc:3589
-#: x86_64.cc:3027 x86_64.cc:3497
+#: x86_64.cc:3034 x86_64.cc:3506
#, c-format
msgid "%s: unsupported reloc %u against local symbol"
msgstr "%s: неподржан премештај „%u“ наÑпрам локалног Ñимбола"
@@ -108,7 +109,7 @@ msgstr "%s: неподржан „TLSLE“ премештај „%u“ у дељ
#: aarch64.cc:6374 arm.cc:8885 i386.cc:2127 mips.cc:12520 powerpc.cc:8788
#: s390.cc:3064 s390.cc:3081 sparc.cc:2572 tilegx.cc:3605 tilegx.cc:4144
-#: x86_64.cc:3513 x86_64.cc:4038
+#: x86_64.cc:3522 x86_64.cc:4050
#, c-format
msgid "%s: unsupported reloc %u against global symbol %s"
msgstr "%s: неподржан премештај „%u“ наÑпрам општег Ñимбола „%s“"
@@ -124,7 +125,7 @@ msgid "%s: unsupported reloc type in global scan"
msgstr "%s: неподржана врÑта премештаја у општем Ñкенирању"
#: aarch64.cc:6909 powerpc.cc:9925 s390.cc:4014 sparc.cc:3164 tilegx.cc:4211
-#: x86_64.cc:4103
+#: x86_64.cc:4115
#, c-format
msgid "%s: unsupported REL reloc section"
msgstr "%s: неподжан „REL“ одељак премештаја"
@@ -135,7 +136,7 @@ msgid "cannot relocate %s in object file"
msgstr "не могу да премеÑтим „%s“ у објектној датотеци"
#: aarch64.cc:7345 i386.cc:2987 i386.cc:3753 mips.cc:10114 powerpc.cc:12282
-#: s390.cc:3465 sparc.cc:3695 tilegx.cc:4726 x86_64.cc:4597
+#: s390.cc:3465 sparc.cc:3695 tilegx.cc:4726 x86_64.cc:4609
#, c-format
msgid "unexpected reloc %u in object file"
msgstr "неочекиван премештај „%u“ у објектној датотеци"
@@ -384,12 +385,12 @@ msgid "requires unsupported dynamic reloc %s; recompile with -fPIC"
msgstr "захтева неподржан динамички премештај „%s“; поново преведите Ñа „-fPIC“"
#: arm.cc:8547 i386.cc:1786 s390.cc:2276 sparc.cc:2247 tilegx.cc:3223
-#: x86_64.cc:3133
+#: x86_64.cc:3140
#, c-format
msgid "%s: unsupported TLS reloc %u for IFUNC symbol"
msgstr "%s: неподржан „TLS“ премештај „%u“ за „IFUNC“ Ñимбол"
-#: arm.cc:8643 i386.cc:1862 powerpc.cc:8257 s390.cc:2369 x86_64.cc:3233
+#: arm.cc:8643 i386.cc:1862 powerpc.cc:8257 s390.cc:2369 x86_64.cc:3240
#, c-format
msgid "section symbol %u has bad shndx %u"
msgstr "Ñимбол одељка „%u“ има лош „shndx %u“"
@@ -398,13 +399,13 @@ msgstr "Ñимбол одељка „%u“ има лош „shndx %u“"
#. dynamic linker, and should never be seen here.
#: arm.cc:8752 arm.cc:9233 i386.cc:1950 i386.cc:2436 mips.cc:11296 s390.cc:2468
#: s390.cc:2902 sparc.cc:2553 sparc.cc:3033 tilegx.cc:3584 tilegx.cc:4139
-#: x86_64.cc:3358 x86_64.cc:3898
+#: x86_64.cc:3365 x86_64.cc:3907
#, c-format
msgid "%s: unexpected reloc %u in object file"
msgstr "%s: неочекивани премештај „%u“ у објектној датотеци"
#: arm.cc:8784 i386.cc:1984 mips.cc:10745 s390.cc:2512 sparc.cc:2452
-#: tilegx.cc:3488 x86_64.cc:3399
+#: tilegx.cc:3488 x86_64.cc:3407
#, c-format
msgid "local symbol %u has bad shndx %u"
msgstr "локални Ñимбол „%u“ има лош „shndx %u“"
@@ -421,8 +422,8 @@ msgstr "не могу да обезбедим међурадну поправкÑ
#: arm.cc:10247 i386.cc:3019 i386.cc:3101 i386.cc:3166 i386.cc:3202
#: i386.cc:3274 mips.cc:12342 powerpc.cc:12396 s390.cc:3471 s390.cc:3542
#: s390.cc:3579 s390.cc:3601 s390.cc:3626 sparc.cc:3701 sparc.cc:3892
-#: sparc.cc:3953 sparc.cc:4060 tilegx.cc:4732 x86_64.cc:4620 x86_64.cc:4748
-#: x86_64.cc:4823 x86_64.cc:4857
+#: sparc.cc:3953 sparc.cc:4060 tilegx.cc:4732 x86_64.cc:4633 x86_64.cc:4761
+#: x86_64.cc:4836 x86_64.cc:4870
#, c-format
msgid "unsupported reloc %u"
msgstr "неподржан премештај „%u“"
@@ -912,38 +913,38 @@ msgstr "не могу да нађем „%s“"
msgid "cannot open %s: %s"
msgstr "не могу да отворим „%s“: %s"
-#: gdb-index.cc:378
+#: gdb-index.cc:395
#, c-format
msgid "%s: --gdb-index currently supports only C and C++ languages"
msgstr "%s: „--gdb-index“ тренутно подржава Ñамо C и C++ језике"
#. The top level DIE should be one of the above.
-#: gdb-index.cc:392
+#: gdb-index.cc:409
#, c-format
msgid "%s: top level DIE is not DW_TAG_compile_unit or DW_TAG_type_unit"
msgstr "%s: „DIE“ највишег нивоа није „DW_TAG_compile_unit„ или „DW_TAG_type_unit“"
-#: gdb-index.cc:845
+#: gdb-index.cc:862
#, c-format
msgid "%s: DWARF info may be corrupt; low_pc and high_pc are in different sections"
msgstr "%s: „DWARF“ подаци Ñу можда оштећени; „low_pc“ и „high_pc“ Ñу у различитим одељцима"
-#: gdb-index.cc:971
+#: gdb-index.cc:988
#, c-format
msgid "%s: DWARF CUs: %u\n"
msgstr "%s: „DWARF CU“-ови: %u\n"
-#: gdb-index.cc:973
+#: gdb-index.cc:990
#, c-format
msgid "%s: DWARF CUs without pubnames/pubtypes: %u\n"
msgstr "%s: „DWARF CU“-ови без пуб_назива/пуб_врÑта: %u\n"
-#: gdb-index.cc:975
+#: gdb-index.cc:992
#, c-format
msgid "%s: DWARF TUs: %u\n"
msgstr "%s: „DWARF TU“-ови: %u\n"
-#: gdb-index.cc:977
+#: gdb-index.cc:994
#, c-format
msgid "%s: DWARF TUs without pubnames/pubtypes: %u\n"
msgstr "%s: „DWARF TU“-ови без пуб_назива/пуб_врÑта: %u\n"
@@ -1060,7 +1061,7 @@ msgstr "не могу да помешам „split-stack“ „%s“ и „non-s
#. FIXME: This needs to specify the location somehow.
#: i386.cc:639 i386.cc:2800 sparc.cc:324 sparc.cc:3296 x86_64.cc:962
-#: x86_64.cc:4297
+#: x86_64.cc:4309
msgid "missing expected TLS relocation"
msgstr "недоÑтаје очекиван „TLS“ премештај"
@@ -1098,7 +1099,7 @@ msgstr "„TLS“ премештаји и SUN и GNU модела"
msgid "unsupported reloc %u in object file"
msgstr "неподржан премештај „%u“ у објектној датотеци"
-#: i386.cc:4036 powerpc.cc:9879 s390.cc:4886 x86_64.cc:5743
+#: i386.cc:4036 powerpc.cc:9879 s390.cc:4886 x86_64.cc:5782
#, c-format
msgid "failed to match split-stack sequence at section %u offset %0zx"
msgstr "ниÑам уÑпе да упоредим „split-stack“ низ на одељку „%u“ померај %0zx"
@@ -1690,7 +1691,7 @@ msgstr "%s: „ICF“ одељак завијања „%s“ у датотеци
msgid "size of symbols is not multiple of symbol size"
msgstr "величина Ñимбола није производ величине Ñимбола"
-#: object.cc:2142 symtab.cc:1217
+#: object.cc:2142 symtab.cc:1280
#, c-format
msgid "%s: plugin needed to handle lto object"
msgstr "%s: потребан је прикључак за руковање „lto“ објектом"
@@ -3684,64 +3685,64 @@ msgstr "неиÑправан „STB_LOCAL“ Ñимбол у Ñпољним Ñи
msgid "unsupported symbol binding %d"
msgstr "неподржано увезивање Ñимбола %d"
-#: resolve.cc:288
+#: resolve.cc:274
#, c-format
msgid "STT_COMMON symbol '%s' in %s is not in a common section"
msgstr "„STT_COMMON“ Ñимбол „%s“ у „%s“ није у општем одељку"
-#: resolve.cc:443
+#: resolve.cc:429
#, c-format
msgid "common of '%s' overriding smaller common"
msgstr "опште „%s“ превазилази мање опште"
-#: resolve.cc:448
+#: resolve.cc:434
#, c-format
msgid "common of '%s' overidden by larger common"
msgstr "опште „%s“ је превазиђено већим општим"
-#: resolve.cc:453
+#: resolve.cc:439
#, c-format
msgid "multiple common of '%s'"
msgstr "више општих „%s“"
-#: resolve.cc:492
+#: resolve.cc:478
#, c-format
msgid "symbol '%s' used as both __thread and non-__thread"
msgstr "Ñимбол „%s“ је коришћен и као „__thread“ и као „non-__thread“"
-#: resolve.cc:535
+#: resolve.cc:521
#, c-format
msgid "multiple definition of '%s'"
msgstr "више дефиниција „%s“"
-#: resolve.cc:574
+#: resolve.cc:560
#, c-format
msgid "definition of '%s' overriding common"
msgstr "дефиниција „%s“ превазилази опште"
-#: resolve.cc:609
+#: resolve.cc:595
#, c-format
msgid "definition of '%s' overriding dynamic common definition"
msgstr "дефиниција „%s“ превазилази динамичку дефиницију општег"
-#: resolve.cc:785
+#: resolve.cc:771
#, c-format
msgid "common '%s' overridden by previous definition"
msgstr "опште „%s“ је превазиђено претходном дефиницијом"
-#: resolve.cc:920
+#: resolve.cc:906
msgid "COPY reloc"
msgstr "„COPY“ премештај"
-#: resolve.cc:924 resolve.cc:947
+#: resolve.cc:910 resolve.cc:933
msgid "command line"
msgstr "линија наредби"
-#: resolve.cc:927
+#: resolve.cc:913
msgid "linker script"
msgstr "Ñкрипта повезивача"
-#: resolve.cc:931
+#: resolve.cc:917
msgid "linker defined"
msgstr "повезивач је дефиниÑан"
@@ -3758,7 +3759,7 @@ msgstr "нема више проÑтора закрпе (PLT); поново по
msgid "relocation overflow"
msgstr "прекорачење премештаја"
-#: s390.cc:3677 s390.cc:3733 x86_64.cc:4946
+#: s390.cc:3677 s390.cc:3733 x86_64.cc:4960
#, c-format
msgid "unsupported reloc type %u"
msgstr "неподржана врÑта премештаја %u"
@@ -4071,75 +4072,75 @@ msgstr "%s: „%s“ Ñтруктуре података ниÑке: %zu\n"
msgid "Cannot export local symbol '%s'"
msgstr "Ðе могу да извезем локални Ñимбол „%s“"
-#: symtab.cc:948
+#: symtab.cc:957
#, c-format
msgid "%s: reference to %s"
msgstr "%s: упута ка „%s“"
-#: symtab.cc:950
+#: symtab.cc:959
#, c-format
msgid "%s: definition of %s"
msgstr "%s: дефиниција за „%s“"
-#: symtab.cc:1060
+#: symtab.cc:1123
#, c-format
msgid "%s: conflicting default version definition for %s@@%s"
msgstr "%s: Ñукобљавајућа дефиниција оÑновног издања за „%s@@%s“"
-#: symtab.cc:1064
+#: symtab.cc:1127
#, c-format
msgid "%s: %s: previous definition of %s@@%s here"
msgstr "%s: %s: претходна дефиниција „%s@@%s“ овде"
-#: symtab.cc:1206
+#: symtab.cc:1269
#, c-format
msgid "bad global symbol name offset %u at %zu"
msgstr "лош померај назива општег Ñимбола „%u“ на %zu"
-#: symtab.cc:1473
+#: symtab.cc:1536
msgid "--just-symbols does not make sense with a shared object"
msgstr "„--just-symbols“ нема ÑмиÑла Ñа дељеним објектом"
-#: symtab.cc:1484
+#: symtab.cc:1547
msgid "too few symbol versions"
msgstr "премало издања Ñимбола"
-#: symtab.cc:1539
+#: symtab.cc:1602
#, c-format
msgid "bad symbol name offset %u at %zu"
msgstr "лош померај назива Ñимбола „%u“ на %zu"
-#: symtab.cc:1602
+#: symtab.cc:1665
#, c-format
msgid "versym for symbol %zu out of range: %u"
msgstr "Ñимбол издања за Ñимбол „%zu“ је ван опÑега: %u"
-#: symtab.cc:1610
+#: symtab.cc:1673
#, c-format
msgid "versym for symbol %zu has no name: %u"
msgstr "Ñимбол издања за Ñимбол „%zu“ нема назив: %u"
-#: symtab.cc:2633
+#: symtab.cc:2696
#, c-format
msgid "discarding version information for %s@%s, defined in unused shared library %s (linked with --as-needed)"
msgstr "одбацујем податке издања за „%s@%s“, дефиниÑане у некоришћеној дељеној библиотеци „%s“ (повезане Ñа „--as-needed“)"
-#: symtab.cc:2995 symtab.cc:3141
+#: symtab.cc:3058 symtab.cc:3204
#, c-format
msgid "%s: unsupported symbol section 0x%x"
msgstr "%s: неподржан одељак Ñимбола „0×%x“"
-#: symtab.cc:3473
+#: symtab.cc:3536
#, c-format
msgid "%s: symbol table entries: %zu; buckets: %zu\n"
msgstr "%s: уноÑи табеле Ñимбола: %zu; ведра: %zu\n"
-#: symtab.cc:3476
+#: symtab.cc:3539
#, c-format
msgid "%s: symbol table entries: %zu\n"
msgstr "%s: уноÑи табеле Ñимбола: %zu\n"
-#: symtab.cc:3633
+#: symtab.cc:3696
#, c-format
msgid "while linking %s: symbol '%s' defined in multiple places (possible ODR violation):"
msgstr "приликом повезивања „%s“: Ñимбол „%s“ је дефиниÑан на више меÑта (могућ „ODR“ преÑтуп):"
@@ -4148,7 +4149,7 @@ msgstr "приликом повезивања „%s“: Ñимбол „%s“ ј
#. which may not be the location we expect to intersect
#. with another definition. We could print the whole
#. set of locations, but that seems too verbose.
-#: symtab.cc:3640 symtab.cc:3643
+#: symtab.cc:3703 symtab.cc:3706
#, c-format
msgid " %s from %s\n"
msgstr " „%s“ из „%s“\n"
@@ -4208,7 +4209,7 @@ msgstr "„TLS_DESC“ није још подржано за повећавајÑ
msgid "TLS_DESC not yet supported for TILEGX"
msgstr "„TLS_DESC“ није још подржано за „TILEGX“"
-#: tilegx.cc:3202 x86_64.cc:3111
+#: tilegx.cc:3202 x86_64.cc:3118
#, c-format
msgid "requires unsupported dynamic reloc %u; recompile with -fPIC"
msgstr "захтева неподржан динамички премештај „%u“; поново преведите Ñа „-fPIC“"
@@ -4224,8 +4225,8 @@ msgstr "„TLS“ премештај наÑпрам неиÑправног упÑ
#. This output is intended to follow the GNU standards.
#: version.cc:65
#, c-format
-msgid "Copyright (C) 2024 Free Software Foundation, Inc.\n"
-msgstr "ÐуторÑка права © 2024. Фондација Ñлободног Ñофтвера, Инк.\n"
+msgid "Copyright (C) 2025 Free Software Foundation, Inc.\n"
+msgstr "ÐуторÑка права © 2025. Фондација Ñлободног Ñофтвера, Инк.\n"
#: version.cc:66
#, c-format
@@ -4263,26 +4264,26 @@ msgstr "Прекорачење „PC“-одноÑног помераја у „
msgid "PC-relative offset overflow in APLT entry %d"
msgstr "Прекорачење „PC“-одноÑног помераја у „APLT“ уноÑу %d"
-#: x86_64.cc:3079
+#: x86_64.cc:3086
msgid "requires dynamic R_X86_64_32 reloc which may overflow at runtime; recompile with -fPIC"
msgstr "захтева динамички „R_X86_64_32“ премештај који може да прекорачи у време извршавања; поново преведите Ñа „-fPIC“"
-#: x86_64.cc:3096
+#: x86_64.cc:3103
#, c-format
msgid "requires dynamic %s reloc against '%s' which may overflow at runtime; recompile with -fPIC"
msgstr "захтева динамички „%s“ премештај наÑпрам „%s“ који може да прекорачи у време извршавања; поново преведите Ñа „-fPIC“"
-#: x86_64.cc:4631
+#: x86_64.cc:4644
#, c-format
msgid "relocation overflow: reference to local symbol %u in %s"
msgstr "прекорачење премештаја: упућује на локални Ñимбол %u у „%s“"
-#: x86_64.cc:4638
+#: x86_64.cc:4651
#, c-format
msgid "relocation overflow: reference to '%s' defined in %s"
msgstr "прекорачење премештаја: упућује на „%s“ дефиниÑано у „%s“"
-#: x86_64.cc:4646
+#: x86_64.cc:4659
#, c-format
msgid "relocation overflow: reference to '%s'"
msgstr "прекорачење премештаја: упућује на „%s“"
diff --git a/gprof/Makefile.am b/gprof/Makefile.am
index dd71a51..8662e62 100644
--- a/gprof/Makefile.am
+++ b/gprof/Makefile.am
@@ -23,7 +23,7 @@ TEXINFO_TEX = ../texinfo/texinfo.tex
SUFFIXES = .c .m
-SUBDIRS = po
+SUBDIRS = po testsuite
BASEDIR = $(srcdir)/..
BFDDIR = $(BASEDIR)/bfd
diff --git a/gprof/Makefile.in b/gprof/Makefile.in
index 93fb378..719e181 100644
--- a/gprof/Makefile.in
+++ b/gprof/Makefile.in
@@ -453,7 +453,7 @@ AUTOMAKE_OPTIONS = foreign no-dist no-texinfo.tex info-in-builddir
ACLOCAL_AMFLAGS = -I .. -I ../config -I ../bfd
TEXINFO_TEX = ../texinfo/texinfo.tex
SUFFIXES = .c .m
-SUBDIRS = po
+SUBDIRS = po testsuite
BASEDIR = $(srcdir)/..
BFDDIR = $(BASEDIR)/bfd
INCDIR = $(BASEDIR)/include
diff --git a/gprof/aarch64.c b/gprof/aarch64.c
index 3ab6067..0365930 100644
--- a/gprof/aarch64.c
+++ b/gprof/aarch64.c
@@ -50,6 +50,7 @@ aarch64_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
bfd_vma pc, dest_pc, offset;
unsigned int insn;
Sym *child;
+ Sym_Table *symtab = get_symtab ();
DBG (CALLDEBUG, printf ("[find_call] %s: 0x%lx to 0x%lx\n",
parent->name, (unsigned long) p_lowpc,
@@ -75,7 +76,7 @@ aarch64_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
if (hist_check_address (dest_pc))
{
- child = sym_lookup (&symtab, dest_pc);
+ child = sym_lookup (symtab, dest_pc);
if (child)
{
diff --git a/gprof/alpha.c b/gprof/alpha.c
index df714be..b7740d8 100644
--- a/gprof/alpha.c
+++ b/gprof/alpha.c
@@ -95,6 +95,7 @@ alpha_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
bfd_vma pc, dest_pc;
unsigned int insn;
Sym *child;
+ Sym_Table *symtab = get_symtab ();
if (indirect_child.name == NULL)
{
@@ -149,7 +150,7 @@ alpha_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
^ 0x100000) - 0x100000);
if (hist_check_address (dest_pc))
{
- child = sym_lookup (&symtab, dest_pc);
+ child = sym_lookup (symtab, dest_pc);
if (child)
{
DBG (CALLDEBUG,
diff --git a/gprof/basic_blocks.c b/gprof/basic_blocks.c
index bca6862..d865938 100644
--- a/gprof/basic_blocks.c
+++ b/gprof/basic_blocks.c
@@ -20,7 +20,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
-
+
#include "gprof.h"
#include "libiberty.h"
#include "filenames.h"
@@ -122,6 +122,7 @@ bb_read_rec (FILE *ifp, const char *filename)
unsigned int nblocks, b;
bfd_vma addr, ncalls;
Sym *sym;
+ Sym_Table *symtab;
if (gmon_io_read_32 (ifp, &nblocks))
{
@@ -130,6 +131,8 @@ bb_read_rec (FILE *ifp, const char *filename)
done (1);
}
+ symtab = get_symtab ();
+
nblocks = bfd_get_32 (core_bfd, (bfd_byte *) & nblocks);
if (gmon_file_version == 0)
fskip_string (ifp);
@@ -163,7 +166,7 @@ bb_read_rec (FILE *ifp, const char *filename)
profiling at the line-by-line level: */
if (line_granularity)
{
- sym = sym_lookup (&symtab, addr);
+ sym = sym_lookup (symtab, addr);
if (sym)
{
@@ -210,9 +213,10 @@ bb_write_blocks (FILE *ofp, const char *filename)
unsigned int nblocks = 0;
Sym *sym;
int i;
+ Sym_Table *symtab = get_symtab ();
/* Count how many non-zero blocks with have: */
- for (sym = symtab.base; sym < symtab.limit; ++sym)
+ for (sym = symtab->base; sym < symtab->limit; ++sym)
{
for (i = 0; i < NBBS && sym->bb_addr[i]; i++)
;
@@ -228,7 +232,7 @@ bb_write_blocks (FILE *ofp, const char *filename)
}
/* Write counts: */
- for (sym = symtab.base; sym < symtab.limit; ++sym)
+ for (sym = symtab->base; sym < symtab->limit; ++sym)
{
for (i = 0; i < NBBS && sym->bb_addr[i]; i++)
{
@@ -252,6 +256,7 @@ print_exec_counts (void)
{
Sym **sorted_bbs, *sym;
unsigned int i, j, len;
+ Sym_Table *symtab = get_symtab ();
if (first_output)
first_output = false;
@@ -259,10 +264,10 @@ print_exec_counts (void)
printf ("\f\n");
/* Sort basic-blocks according to function name and line number: */
- sorted_bbs = (Sym **) xmalloc (symtab.len * sizeof (sorted_bbs[0]));
+ sorted_bbs = (Sym **) xmalloc (symtab->len * sizeof (sorted_bbs[0]));
len = 0;
- for (sym = symtab.base; sym < symtab.limit; ++sym)
+ for (sym = symtab->base; sym < symtab->limit; ++sym)
{
/* Accept symbol if it's in the INCL_EXEC table
or there is no INCL_EXEC table
@@ -461,10 +466,11 @@ print_annotated_source (void)
Source_File *sf;
int i, table_len;
FILE *ofp;
+ Sym_Table *symtab = get_symtab ();
/* Find maximum line number for each source file that user is
interested in: */
- for (sym = symtab.base; sym < symtab.limit; ++sym)
+ for (sym = symtab->base; sym < symtab->limit; ++sym)
{
/* Accept symbol if it's file is known, its line number is
bigger than anything we have seen for that file so far and
@@ -490,7 +496,7 @@ print_annotated_source (void)
}
/* Count executions per line: */
- for (sym = symtab.base; sym < symtab.limit; ++sym)
+ for (sym = symtab->base; sym < symtab->limit; ++sym)
{
if (sym->file && sym->file->num_lines
&& (sym_lookup (&syms[INCL_ANNO], sym->addr)
diff --git a/gprof/basic_blocks.h b/gprof/basic_blocks.h
index 9baa89b..a7a2a18 100644
--- a/gprof/basic_blocks.h
+++ b/gprof/basic_blocks.h
@@ -17,7 +17,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-
+
#ifndef basic_blocks_h
#define basic_blocks_h
diff --git a/gprof/bb_exit_func.c b/gprof/bb_exit_func.c
index a13cbf2..8cb6673 100644
--- a/gprof/bb_exit_func.c
+++ b/gprof/bb_exit_func.c
@@ -23,7 +23,7 @@
This code was contributed by:
David Mosberger-Tang <David.Mosberger@acm.org> */
-
+
#include <stdio.h>
#include <strings.h>
#include "bfd.h"
diff --git a/gprof/call_graph.c b/gprof/call_graph.c
index 647163f..b76a8ad 100644
--- a/gprof/call_graph.c
+++ b/gprof/call_graph.c
@@ -18,7 +18,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
-
+
#include "gprof.h"
#include "search_list.h"
#include "source.h"
@@ -35,9 +35,10 @@ cg_tally (bfd_vma from_pc, bfd_vma self_pc, unsigned long count)
{
Sym *parent;
Sym *child;
+ Sym_Table *symtab = get_symtab ();
- parent = sym_lookup (&symtab, from_pc);
- child = sym_lookup (&symtab, self_pc);
+ parent = sym_lookup (symtab, from_pc);
+ child = sym_lookup (symtab, self_pc);
if (child == NULL || parent == NULL)
return;
@@ -51,10 +52,10 @@ cg_tally (bfd_vma from_pc, bfd_vma self_pc, unsigned long count)
For normal profiling, is_func will be set on all symbols, so this
code will do nothing. */
- while (child >= symtab.base && ! child->is_func)
+ while (child >= symtab->base && ! child->is_func)
--child;
- if (child < symtab.base)
+ if (child < symtab->base)
return;
/* Keep arc if it is on INCL_ARCS table or if the INCL_ARCS table
@@ -108,8 +109,9 @@ cg_write_arcs (FILE *ofp, const char *filename)
{
Arc *arc;
Sym *sym;
+ Sym_Table *symtab = get_symtab ();
- for (sym = symtab.base; sym < symtab.limit; sym++)
+ for (sym = symtab->base; sym < symtab->limit; sym++)
{
for (arc = sym->cg.children; arc; arc = arc->next_child)
{
diff --git a/gprof/call_graph.h b/gprof/call_graph.h
index c36bd64..efc3447 100644
--- a/gprof/call_graph.h
+++ b/gprof/call_graph.h
@@ -18,7 +18,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-
+
#ifndef call_graph_h
#define call_graph_h
diff --git a/gprof/cg_arcs.c b/gprof/cg_arcs.c
index cfffb09..9085be0 100644
--- a/gprof/cg_arcs.c
+++ b/gprof/cg_arcs.c
@@ -89,7 +89,7 @@ void
arc_add (Sym *parent, Sym *child, unsigned long count)
{
static unsigned int maxarcs = 0;
- Arc *arc, **newarcs;
+ Arc *arc;
DBG (TALLYDEBUG, printf ("[arc_add] %lu arcs from %s to %s\n",
count, parent->name, child->name));
@@ -124,17 +124,7 @@ arc_add (Sym *parent, Sym *child, unsigned long count)
maxarcs = 1;
maxarcs *= 2;
- /* Allocate the new array. */
- newarcs = (Arc **)xmalloc(sizeof (Arc *) * maxarcs);
-
- /* Copy the old array's contents into the new array. */
- memcpy (newarcs, arcs, numarcs * sizeof (Arc *));
-
- /* Free up the old array. */
- free (arcs);
-
- /* And make the new array be the current array. */
- arcs = newarcs;
+ arcs = xrealloc (arcs, sizeof (*arcs) * maxarcs);
}
/* Place this arc in the arc array. */
@@ -275,11 +265,12 @@ cycle_link (void)
Sym *sym, *cyc, *member;
Arc *arc;
int num;
+ Sym_Table *symtab = get_symtab ();
/* count the number of cycles, and initialize the cycle lists: */
num_cycles = 0;
- for (sym = symtab.base; sym < symtab.limit; ++sym)
+ for (sym = symtab->base; sym < symtab->limit; ++sym)
{
/* this is how you find unattached cycles: */
if (sym->cg.cyc.head == sym && sym->cg.cyc.next)
@@ -300,7 +291,7 @@ cycle_link (void)
*/
num = 0;
cyc = cycle_header;
- for (sym = symtab.base; sym < symtab.limit; ++sym)
+ for (sym = symtab->base; sym < symtab->limit; ++sym)
{
if (!(sym->cg.cyc.head == sym && sym->cg.cyc.next != 0))
{
@@ -440,9 +431,10 @@ propagate_flags (Sym **symbols)
{
int sym_index;
Sym *old_head, *child;
+ Sym_Table *symtab = get_symtab ();
old_head = 0;
- for (sym_index = symtab.len - 1; sym_index >= 0; --sym_index)
+ for (sym_index = symtab->len - 1; sym_index >= 0; --sym_index)
{
child = symbols[sym_index];
/*
@@ -597,12 +589,13 @@ cg_assemble (void)
Sym *parent, **time_sorted_syms, **top_sorted_syms;
unsigned int sym_index;
Arc *arc;
+ Sym_Table *symtab = get_symtab ();
/* Initialize various things:
Zero out child times.
Count self-recursive calls.
Indicate that nothing is on cycles. */
- for (parent = symtab.base; parent < symtab.limit; parent++)
+ for (parent = symtab->base; parent < symtab->limit; parent++)
{
parent->cg.child_time = 0.0;
arc = arc_lookup (parent, parent);
@@ -633,7 +626,7 @@ cg_assemble (void)
/* Topologically order things. If any node is unnumbered, number
it and any of its descendents. */
- for (parent = symtab.base; parent < symtab.limit; parent++)
+ for (parent = symtab->base; parent < symtab->limit; parent++)
{
if (parent->cg.top_order == DFN_NAN)
cg_dfn (parent);
@@ -643,14 +636,14 @@ cg_assemble (void)
cycle_link ();
/* Sort the symbol table in reverse topological order. */
- top_sorted_syms = (Sym **) xmalloc (symtab.len * sizeof (Sym *));
- for (sym_index = 0; sym_index < symtab.len; ++sym_index)
- top_sorted_syms[sym_index] = &symtab.base[sym_index];
+ top_sorted_syms = (Sym **) xmalloc (symtab->len * sizeof (Sym *));
+ for (sym_index = 0; sym_index < symtab->len; ++sym_index)
+ top_sorted_syms[sym_index] = &symtab->base[sym_index];
- qsort (top_sorted_syms, symtab.len, sizeof (Sym *), cmp_topo);
+ qsort (top_sorted_syms, symtab->len, sizeof (Sym *), cmp_topo);
DBG (DFNDEBUG,
printf ("[cg_assemble] topological sort listing\n");
- for (sym_index = 0; sym_index < symtab.len; ++sym_index)
+ for (sym_index = 0; sym_index < symtab->len; ++sym_index)
{
printf ("[cg_assemble] ");
printf ("%d:", top_sorted_syms[sym_index]->cg.top_order);
@@ -668,24 +661,24 @@ cg_assemble (void)
/* Starting from the topological bottom, propagate children times
up to parents. */
cycle_time ();
- for (sym_index = 0; sym_index < symtab.len; ++sym_index)
+ for (sym_index = 0; sym_index < symtab->len; ++sym_index)
propagate_time (top_sorted_syms[sym_index]);
free (top_sorted_syms);
/* Now, sort by CG.PROP.SELF + CG.PROP.CHILD. Sorting both the regular
function names and cycle headers. */
- time_sorted_syms = (Sym **) xmalloc ((symtab.len + num_cycles) * sizeof (Sym *));
- for (sym_index = 0; sym_index < symtab.len; sym_index++)
- time_sorted_syms[sym_index] = &symtab.base[sym_index];
+ time_sorted_syms = (Sym **) xmalloc ((symtab->len + num_cycles) * sizeof (Sym *));
+ for (sym_index = 0; sym_index < symtab->len; sym_index++)
+ time_sorted_syms[sym_index] = &symtab->base[sym_index];
for (sym_index = 1; sym_index <= num_cycles; sym_index++)
- time_sorted_syms[symtab.len + sym_index - 1] = &cycle_header[sym_index];
+ time_sorted_syms[symtab->len + sym_index - 1] = &cycle_header[sym_index];
- qsort (time_sorted_syms, symtab.len + num_cycles, sizeof (Sym *),
+ qsort (time_sorted_syms, symtab->len + num_cycles, sizeof (Sym *),
cmp_total);
- for (sym_index = 0; sym_index < symtab.len + num_cycles; sym_index++)
+ for (sym_index = 0; sym_index < symtab->len + num_cycles; sym_index++)
time_sorted_syms[sym_index]->cg.index = sym_index + 1;
return time_sorted_syms;
diff --git a/gprof/cg_arcs.h b/gprof/cg_arcs.h
index 4635541..06d9495 100644
--- a/gprof/cg_arcs.h
+++ b/gprof/cg_arcs.h
@@ -16,7 +16,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-
+
#ifndef cg_arcs_h
#define cg_arcs_h
diff --git a/gprof/cg_dfn.h b/gprof/cg_dfn.h
index 979fa8e..b6d0898 100644
--- a/gprof/cg_dfn.h
+++ b/gprof/cg_dfn.h
@@ -16,7 +16,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-
+
#ifndef cg_dfn_h
#define cg_dfn_h
diff --git a/gprof/cg_print.c b/gprof/cg_print.c
index f6bfffc..c8e80d9 100644
--- a/gprof/cg_print.c
+++ b/gprof/cg_print.c
@@ -18,7 +18,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
-
+
#include "gprof.h"
#include "libiberty.h"
#include "filenames.h"
@@ -504,13 +504,14 @@ cg_print (Sym ** timesortsym)
{
unsigned int sym_index;
Sym *parent;
+ Sym_Table *symtab = get_symtab ();
if (print_descriptions && bsd_style_output)
bsd_callg_blurb (stdout);
print_header ();
- for (sym_index = 0; sym_index < symtab.len + num_cycles; ++sym_index)
+ for (sym_index = 0; sym_index < symtab->len + num_cycles; ++sym_index)
{
parent = timesortsym[sym_index];
@@ -570,18 +571,19 @@ cg_print_index (void)
const char *filename;
char buf[20];
int column_width = (output_width - 1) / 3; /* Don't write in last col! */
+ Sym_Table *symtab = get_symtab ();
/* Now, sort regular function name
alphabetically to create an index. */
- name_sorted_syms = (Sym **) xmalloc ((symtab.len + num_cycles) * sizeof (Sym *));
+ name_sorted_syms = (Sym **) xmalloc ((symtab->len + num_cycles) * sizeof (Sym *));
- for (sym_index = 0, nnames = 0; sym_index < symtab.len; sym_index++)
+ for (sym_index = 0, nnames = 0; sym_index < symtab->len; sym_index++)
{
- if (ignore_zeros && symtab.base[sym_index].ncalls == 0
- && symtab.base[sym_index].hist.time == 0)
+ if (ignore_zeros && symtab->base[sym_index].ncalls == 0
+ && symtab->base[sym_index].hist.time == 0)
continue;
- name_sorted_syms[nnames++] = &symtab.base[sym_index];
+ name_sorted_syms[nnames++] = &symtab->base[sym_index];
}
qsort (name_sorted_syms, nnames, sizeof (Sym *), cmp_name);
@@ -787,6 +789,7 @@ cg_print_function_ordering (void)
#endif
Sym **unused_syms, **used_syms, **scratch_syms;
Arc **unplaced_arcs, **high_arcs, **scratch_arcs;
+ Sym_Table *symtab = get_symtab ();
sym_index = 0;
used = 0;
@@ -797,29 +800,29 @@ cg_print_function_ordering (void)
scratch_arc_count = 0;
/* First group all the unused functions together. */
- unused_syms = (Sym **) xmalloc (symtab.len * sizeof (Sym *));
- used_syms = (Sym **) xmalloc (symtab.len * sizeof (Sym *));
- scratch_syms = (Sym **) xmalloc (symtab.len * sizeof (Sym *));
+ unused_syms = (Sym **) xmalloc (symtab->len * sizeof (Sym *));
+ used_syms = (Sym **) xmalloc (symtab->len * sizeof (Sym *));
+ scratch_syms = (Sym **) xmalloc (symtab->len * sizeof (Sym *));
high_arcs = (Arc **) xmalloc (numarcs * sizeof (Arc *));
scratch_arcs = (Arc **) xmalloc (numarcs * sizeof (Arc *));
unplaced_arcs = (Arc **) xmalloc (numarcs * sizeof (Arc *));
/* Walk through all the functions; mark those which are never
called as placed (we'll emit them as a group later). */
- for (sym_index = 0, used = 0, unused = 0; sym_index < symtab.len; sym_index++)
+ for (sym_index = 0, used = 0, unused = 0; sym_index < symtab->len; sym_index++)
{
- if (symtab.base[sym_index].ncalls == 0)
+ if (symtab->base[sym_index].ncalls == 0)
{
- unused_syms[unused++] = &symtab.base[sym_index];
- symtab.base[sym_index].has_been_placed = 1;
+ unused_syms[unused++] = &symtab->base[sym_index];
+ symtab->base[sym_index].has_been_placed = 1;
}
else
{
- used_syms[used++] = &symtab.base[sym_index];
- symtab.base[sym_index].has_been_placed = 0;
- symtab.base[sym_index].next = 0;
- symtab.base[sym_index].prev = 0;
- symtab.base[sym_index].nuses = 0;
+ used_syms[used++] = &symtab->base[sym_index];
+ symtab->base[sym_index].has_been_placed = 0;
+ symtab->base[sym_index].next = 0;
+ symtab->base[sym_index].prev = 0;
+ symtab->base[sym_index].nuses = 0;
}
}
@@ -961,9 +964,9 @@ cg_print_function_ordering (void)
for (sym_index = 0; sym_index < unused; sym_index++)
printf("%s\n", unused_syms[sym_index]->name);
- unused_syms = (Sym **) xmalloc (symtab.len * sizeof (Sym *));
- used_syms = (Sym **) xmalloc (symtab.len * sizeof (Sym *));
- scratch_syms = (Sym **) xmalloc (symtab.len * sizeof (Sym *));
+ unused_syms = (Sym **) xmalloc (symtab->len * sizeof (Sym *));
+ used_syms = (Sym **) xmalloc (symtab->len * sizeof (Sym *));
+ scratch_syms = (Sym **) xmalloc (symtab->len * sizeof (Sym *));
high_arcs = (Arc **) xmalloc (numarcs * sizeof (Arc *));
scratch_arcs = (Arc **) xmalloc (numarcs * sizeof (Arc *));
unplaced_arcs = (Arc **) xmalloc (numarcs * sizeof (Arc *));
@@ -1236,6 +1239,7 @@ cg_print_file_ordering (void)
unsigned long sym_index;
Arc **scratch_arcs;
char *last;
+ Sym_Table *symtab = get_symtab ();
scratch_arc_count = 0;
@@ -1251,11 +1255,11 @@ cg_print_file_ordering (void)
scratch_arcs, &scratch_arc_count);
/* Output .o's not handled by the main placement algorithm. */
- for (sym_index = 0; sym_index < symtab.len; sym_index++)
+ for (sym_index = 0; sym_index < symtab->len; sym_index++)
{
- if (symtab.base[sym_index].mapped
- && ! symtab.base[sym_index].has_been_placed)
- printf ("%s\n", symtab.base[sym_index].name);
+ if (symtab->base[sym_index].mapped
+ && ! symtab->base[sym_index].has_been_placed)
+ printf ("%s\n", symtab->base[sym_index].name);
}
qsort (symbol_map, symbol_map_count, sizeof (struct function_map), cmp_symbol_map);
@@ -1271,19 +1275,19 @@ cg_print_file_ordering (void)
if (last && !filename_cmp (last, symbol_map[sym_index].file_name))
continue;
- for (index2 = 0; index2 < symtab.len; index2++)
+ for (index2 = 0; index2 < symtab->len; index2++)
{
- if (! symtab.base[index2].mapped)
+ if (! symtab->base[index2].mapped)
continue;
- if (!filename_cmp (symtab.base[index2].name,
+ if (!filename_cmp (symtab->base[index2].name,
symbol_map[sym_index].file_name))
break;
}
/* If we didn't find it in the symbol table, then it must
be a .o with no text symbols. Output it last. */
- if (index2 == symtab.len)
+ if (index2 == symtab->len)
printf ("%s\n", symbol_map[sym_index].file_name);
last = symbol_map[sym_index].file_name;
}
diff --git a/gprof/cg_print.h b/gprof/cg_print.h
index 57c529c..4ff1dbb 100644
--- a/gprof/cg_print.h
+++ b/gprof/cg_print.h
@@ -18,7 +18,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-
+
#ifndef cg_print_h
#define cg_print_h
diff --git a/gprof/configure b/gprof/configure
index ea36941..2acae7b 100755
--- a/gprof/configure
+++ b/gprof/configure
@@ -634,6 +634,8 @@ ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
LIBOBJS
+NATIVE_FALSE
+NATIVE_TRUE
WARN_WRITE_STRINGS
NO_WERROR
WARN_CFLAGS_FOR_BUILD
@@ -10653,7 +10655,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10656 "configure"
+#line 10658 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -10759,7 +10761,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 10762 "configure"
+#line 10764 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -13963,7 +13965,34 @@ fi
-ac_config_files="$ac_config_files Makefile po/Makefile.in:po/Make-in"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gprof tests can run" >&5
+$as_echo_n "checking whether gprof tests can run... " >&6; }
+if ${gprof_cv_sys_native+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gprof_cv_sys_native=no
+ if test x"${host}" = x"${target}" \
+ && ${CC-cc} -O2 -fno-omit-frame-pointer -pg -o tst-gmon $srcdir/testsuite/tst-gmon.c; then
+ rm -f gmon.out
+ ./tst-gmon
+ if test -s gmon.out; then
+ gprof_cv_sys_native=yes
+ fi
+ rm -f tst-gmon gmon.out
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gprof_cv_sys_native" >&5
+$as_echo "$gprof_cv_sys_native" >&6; }
+ if test "$gprof_cv_sys_native" = "yes"; then
+ NATIVE_TRUE=
+ NATIVE_FALSE='#'
+else
+ NATIVE_TRUE='#'
+ NATIVE_FALSE=
+fi
+
+
+ac_config_files="$ac_config_files Makefile testsuite/Makefile po/Makefile.in:po/Make-in"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
@@ -14106,6 +14135,10 @@ if test -z "${GENINSRC_NEVER_TRUE}" && test -z "${GENINSRC_NEVER_FALSE}"; then
as_fn_error $? "conditional \"GENINSRC_NEVER\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${NATIVE_TRUE}" && test -z "${NATIVE_FALSE}"; then
+ as_fn_error $? "conditional \"NATIVE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
: "${CONFIG_STATUS=./config.status}"
ac_write_fail=0
@@ -14978,6 +15011,7 @@ do
"default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
"default-2") CONFIG_COMMANDS="$CONFIG_COMMANDS default-2" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "testsuite/Makefile") CONFIG_FILES="$CONFIG_FILES testsuite/Makefile" ;;
"po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in:po/Make-in" ;;
*) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
diff --git a/gprof/configure.ac b/gprof/configure.ac
index 61b0af5..166e16c 100644
--- a/gprof/configure.ac
+++ b/gprof/configure.ac
@@ -73,7 +73,20 @@ AC_SUBST(docdir)
AC_SUBST(htmldir)
AC_SUBST(pdfdir)
-AC_CONFIG_FILES([Makefile po/Makefile.in:po/Make-in])
-AC_OUTPUT
+AC_CACHE_CHECK([whether gprof tests can run],
+ [gprof_cv_sys_native], [dnl
+ gprof_cv_sys_native=no
+ if test x"${host}" = x"${target}" \
+ && ${CC-cc} -O2 -fno-omit-frame-pointer -pg -o tst-gmon $srcdir/testsuite/tst-gmon.c; then
+ rm -f gmon.out
+ ./tst-gmon
+ if test -s gmon.out; then
+ gprof_cv_sys_native=yes
+ fi
+ rm -f tst-gmon gmon.out
+ fi])
+AM_CONDITIONAL(NATIVE, test "$gprof_cv_sys_native" = "yes")
+
+AC_OUTPUT(Makefile testsuite/Makefile po/Makefile.in:po/Make-in)
GNU_MAKE_JOBSERVER
diff --git a/gprof/corefile.c b/gprof/corefile.c
index 5f749b4..74dbfb5 100644
--- a/gprof/corefile.c
+++ b/gprof/corefile.c
@@ -18,7 +18,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
-
+
#include "gprof.h"
#include "libiberty.h"
#include "filenames.h"
@@ -27,6 +27,7 @@
#include "symtab.h"
#include "hist.h"
#include "corefile.h"
+#include "gmon_io.h"
#include "safe-ctype.h"
#include <limits.h> /* For UINT_MAX. */
@@ -36,7 +37,8 @@ static asymbol **core_syms;
asection *core_text_sect;
void * core_text_space;
-static int min_insn_size;
+/* Greatest common divisor of instruction sizes and alignments. */
+static int insn_boundary;
int offset_to_code;
/* For mapping symbols to specific .o files during file ordering. */
@@ -245,7 +247,7 @@ core_init (const char * aout_name)
*symp = 0;
}
- min_insn_size = 1;
+ insn_boundary = 1;
offset_to_code = 0;
switch (bfd_get_arch (core_bfd))
@@ -254,8 +256,15 @@ core_init (const char * aout_name)
offset_to_code = 2;
break;
+ case bfd_arch_mips:/* and microMIPS */
+ case bfd_arch_powerpc:/* and VLE */
+ case bfd_arch_riscv:/* and RVC */
+ case bfd_arch_sh:
+ insn_boundary = 2;
+ break;
+
case bfd_arch_alpha:
- min_insn_size = 4;
+ insn_boundary = 4;
break;
default:
@@ -514,9 +523,8 @@ void
core_create_syms_from (const char * sym_table_file)
{
char type;
- bfd_vma min_vma = ~(bfd_vma) 0;
- bfd_vma max_vma = 0;
FILE * f;
+ Sym_Table *symtab;
f = fopen (sym_table_file, "r");
if (!f)
@@ -525,25 +533,27 @@ core_create_syms_from (const char * sym_table_file)
done (1);
}
+ symtab = get_symtab_direct ();
+
/* Pass 1 - determine upper bound on number of function names. */
- symtab.len = num_of_syms_in (f);
+ symtab->len = num_of_syms_in (f);
- if (symtab.len == 0)
+ if (symtab->len == 0)
{
fprintf (stderr, _("%s: file `%s' has no symbols\n"), whoami, sym_table_file);
done (1);
}
- else if (symtab.len == -1U)
+ else if (symtab->len == -1U)
{
fprintf (stderr, _("%s: file `%s' has too many symbols\n"),
whoami, sym_table_file);
done (1);
}
- symtab.base = (Sym *) xmalloc (symtab.len * sizeof (Sym));
+ symtab->base = (Sym *) xmalloc (symtab->len * sizeof (Sym));
/* Pass 2 - create symbols. */
- symtab.limit = symtab.base;
+ symtab->limit = symtab->base;
if (fseek (f, 0, SEEK_SET) != 0)
{
@@ -558,27 +568,25 @@ core_create_syms_from (const char * sym_table_file)
if (type != 't' && type != 'T')
continue;
- sym_init (symtab.limit);
+ sym_init (symtab->limit);
uint64_t addr;
sscanf (address, "%" SCNx64, &addr);
- symtab.limit->addr = addr;
-
- symtab.limit->name = (char *) xmalloc (strlen (name) + 1);
- strcpy ((char *) symtab.limit->name, name);
- symtab.limit->mapped = 0;
- symtab.limit->is_func = true;
- symtab.limit->is_bb_head = true;
- symtab.limit->is_static = (type == 't');
- min_vma = MIN (symtab.limit->addr, min_vma);
- max_vma = MAX (symtab.limit->addr, max_vma);
-
- ++symtab.limit;
+ symtab->limit->addr = addr;
+
+ symtab->limit->name = (char *) xmalloc (strlen (name) + 1);
+ strcpy ((char *) symtab->limit->name, name);
+ symtab->limit->mapped = 0;
+ symtab->limit->is_func = true;
+ symtab->limit->is_bb_head = true;
+ symtab->limit->is_static = (type == 't');
+
+ ++symtab->limit;
}
fclose (f);
- symtab.len = symtab.limit - symtab.base;
- symtab_finalize (&symtab);
+ symtab->len = symtab->limit - symtab->base;
+ symtab_finalize (symtab);
}
static int
@@ -593,12 +601,11 @@ search_mapped_symbol (const void * l, const void * r)
void
core_create_function_syms (void)
{
- bfd_vma min_vma = ~ (bfd_vma) 0;
- bfd_vma max_vma = 0;
int cxxclass;
long i;
struct function_map * found = NULL;
int core_has_func_syms = 0;
+ Sym_Table *symtab = get_symtab_direct ();
switch (core_bfd->xvec->flavour)
{
@@ -613,7 +620,7 @@ core_create_function_syms (void)
}
/* Pass 1 - determine upper bound on number of function names. */
- symtab.len = 0;
+ symtab->len = 0;
for (i = 0; i < core_num_syms; ++i)
{
@@ -632,19 +639,19 @@ core_create_function_syms (void)
sizeof (struct function_map), search_mapped_symbol);
}
if (found == NULL || found->is_first)
- ++symtab.len;
+ ++symtab->len;
}
- if (symtab.len == 0)
+ if (symtab->len == 0)
{
fprintf (stderr, _("%s: file `%s' has no symbols\n"), whoami, a_out_name);
done (1);
}
- symtab.base = (Sym *) xmalloc (symtab.len * sizeof (Sym));
+ symtab->base = (Sym *) xmalloc (symtab->len * sizeof (Sym));
/* Pass 2 - create symbols. */
- symtab.limit = symtab.base;
+ symtab->limit = symtab->base;
for (i = 0; i < core_num_syms; ++i)
{
@@ -672,23 +679,23 @@ core_create_function_syms (void)
if (found && ! found->is_first)
continue;
- sym_init (symtab.limit);
+ sym_init (symtab->limit);
/* Symbol offsets are always section-relative. */
sym_sec = core_syms[i]->section;
- symtab.limit->addr = core_syms[i]->value;
+ symtab->limit->addr = core_syms[i]->value;
if (sym_sec)
- symtab.limit->addr += bfd_section_vma (sym_sec);
+ symtab->limit->addr += bfd_section_vma (sym_sec);
if (found)
{
- symtab.limit->name = found->file_name;
- symtab.limit->mapped = 1;
+ symtab->limit->name = found->file_name;
+ symtab->limit->mapped = 1;
}
else
{
- symtab.limit->name = core_syms[i]->name;
- symtab.limit->mapped = 0;
+ symtab->limit->name = core_syms[i]->name;
+ symtab->limit->mapped = 0;
}
/* Lookup filename and line number, if we can. */
@@ -696,10 +703,10 @@ core_create_function_syms (void)
const char * filename;
const char * func_name;
- if (get_src_info (symtab.limit->addr, & filename, & func_name,
- & symtab.limit->line_num))
+ if (get_src_info (symtab->limit->addr, & filename, & func_name,
+ & symtab->limit->line_num))
{
- symtab.limit->file = source_file_lookup_path (filename);
+ symtab->limit->file = source_file_lookup_path (filename);
/* FIXME: Checking __osf__ here does not work with a cross
gprof. */
@@ -711,47 +718,36 @@ core_create_function_syms (void)
labels do not appear in the symbol table info, so this isn't
necessary. */
- if (strcmp (symtab.limit->name, func_name) != 0)
+ if (strcmp (symtab->limit->name, func_name) != 0)
{
/* The symbol's address maps to a different name, so
it can't be a function-entry point. This happens
for labels, for example. */
DBG (AOUTDEBUG,
printf ("[core_create_function_syms: rej %s (maps to %s)\n",
- symtab.limit->name, func_name));
+ symtab->limit->name, func_name));
continue;
}
#endif
}
}
- symtab.limit->is_func = (!core_has_func_syms
+ symtab->limit->is_func = (!core_has_func_syms
|| (core_syms[i]->flags & BSF_FUNCTION) != 0);
- symtab.limit->is_bb_head = true;
+ symtab->limit->is_bb_head = true;
if (cxxclass == 't')
- symtab.limit->is_static = true;
-
- /* Keep track of the minimum and maximum vma addresses used by all
- symbols. When computing the max_vma, use the ending address of the
- section containing the symbol, if available. */
- min_vma = MIN (symtab.limit->addr, min_vma);
- if (sym_sec)
- max_vma = MAX (bfd_section_vma (sym_sec)
- + bfd_section_size (sym_sec) - 1,
- max_vma);
- else
- max_vma = MAX (symtab.limit->addr, max_vma);
+ symtab->limit->is_static = true;
DBG (AOUTDEBUG, printf ("[core_create_function_syms] %ld %s 0x%lx\n",
- (long) (symtab.limit - symtab.base),
- symtab.limit->name,
- (unsigned long) symtab.limit->addr));
- ++symtab.limit;
+ (long) (symtab->limit - symtab->base),
+ symtab->limit->name,
+ (unsigned long) symtab->limit->addr));
+ ++symtab->limit;
}
- symtab.len = symtab.limit - symtab.base;
- symtab_finalize (&symtab);
+ symtab->len = symtab->limit - symtab->base;
+ symtab_finalize (symtab);
}
/* Read in symbol table from core.
@@ -760,85 +756,25 @@ core_create_function_syms (void)
void
core_create_line_syms (void)
{
- char *prev_name, *prev_filename;
- unsigned int prev_name_len, prev_filename_len;
- bfd_vma vma, min_vma = ~(bfd_vma) 0, max_vma = 0;
- Sym *prev, dummy, *sym;
+ bfd_vma vma;
+ Sym prev, *sym;
const char *filename;
- int prev_line_num;
Sym_Table ltab;
- bfd_vma vma_high;
+ size_t ltab_reserved;
+ Sym_Table *symtab = get_symtab_direct ();
+ bfd_vma bfd_vma_low = core_text_sect->vma;
+ bfd_vma bfd_vma_high = bfd_vma_low + bfd_section_size (core_text_sect);
/* Create symbols for functions as usual. This is necessary in
cases where parts of a program were not compiled with -g. For
those parts we still want to get info at the function level. */
core_create_function_syms ();
- /* Pass 1: count the number of symbols. */
-
- /* To find all line information, walk through all possible
- text-space addresses (one by one!) and get the debugging
- info for each address. When the debugging info changes,
- it is time to create a new symbol.
-
- Of course, this is rather slow and it would be better if
- BFD would provide an iterator for enumerating all line infos. */
- prev_name_len = 1024;
- prev_filename_len = 1024;
- prev_name = (char *) xmalloc (prev_name_len);
- prev_filename = (char *) xmalloc (prev_filename_len);
+ ltab_reserved = 1024;
ltab.len = 0;
- prev_line_num = 0;
-
- vma_high = core_text_sect->vma + bfd_section_size (core_text_sect);
- for (vma = core_text_sect->vma; vma < vma_high; vma += min_insn_size)
- {
- unsigned int len;
-
- if (!get_src_info (vma, &filename, &dummy.name, &dummy.line_num)
- || (prev_line_num == dummy.line_num
- && prev_name != NULL
- && strcmp (prev_name, dummy.name) == 0
- && filename_cmp (prev_filename, filename) == 0))
- continue;
-
- ++ltab.len;
- prev_line_num = dummy.line_num;
-
- len = strlen (dummy.name);
- if (len >= prev_name_len)
- {
- prev_name_len = len + 1024;
- free (prev_name);
- prev_name = (char *) xmalloc (prev_name_len);
- }
-
- strcpy (prev_name, dummy.name);
- len = strlen (filename);
-
- if (len >= prev_filename_len)
- {
- prev_filename_len = len + 1024;
- free (prev_filename);
- prev_filename = (char *) xmalloc (prev_filename_len);
- }
-
- strcpy (prev_filename, filename);
-
- min_vma = MIN (vma, min_vma);
- max_vma = MAX (vma, max_vma);
- }
-
- free (prev_name);
- free (prev_filename);
-
- /* Make room for function symbols, too. */
- ltab.len += symtab.len;
- ltab.base = (Sym *) xmalloc (ltab.len * sizeof (Sym));
+ ltab.base = xmalloc (ltab_reserved * sizeof (Sym));
ltab.limit = ltab.base;
- /* Pass 2 - create symbols. */
-
/* We now set is_static as we go along, rather than by running
through the symbol table at the end.
@@ -855,62 +791,132 @@ core_create_line_syms (void)
Perhaps symtab_finalize should be modified to make this
distinction as well, but the current fix works and the code is a
lot cleaner now. */
- prev = 0;
+ memset (&prev, 0, sizeof (prev));
+
+ /* The profile information in the profile data file includes histogram
+ records, which capture low PC and high PC of program execution. If
+ all histogram records come in the profile data file before any
+ call-graph records and basic-block records, we can look up only the
+ line numbers within low PC and high PC in histogram records. */
+ if (gmon_histograms_first)
+ for (size_t i = 0; i < num_histograms; ++i)
+ {
+ bfd_vma hist_vma_high = histograms[i].highpc;
+ bfd_vma vma_low = MAX (histograms[i].lowpc, bfd_vma_low);
+ bfd_vma vma_high = MIN (bfd_vma_high, hist_vma_high);
+ for (vma = vma_low; vma < vma_high; vma += insn_boundary)
+ {
+ if (ltab.len >= ltab_reserved)
+ {
+ /* Reserve more space for line symbols. */
+ ltab_reserved *= 2;
+ ltab.base = xrealloc (ltab.base,
+ ltab_reserved * sizeof (Sym));
+ ltab.limit = ltab.base + ltab.len;
+ }
+ sym_init (ltab.limit);
+
+ if (!get_src_info (vma, &filename, &ltab.limit->name,
+ &ltab.limit->line_num)
+ || (prev.name && prev.line_num == ltab.limit->line_num
+ && strcmp (prev.name, ltab.limit->name) == 0
+ && filename_cmp (prev.file->name, filename) == 0))
+ continue;
+
+ /* Make name pointer a malloc'ed string. */
+ ltab.limit->name = xstrdup (ltab.limit->name);
+ ltab.limit->file = source_file_lookup_path (filename);
+
+ ltab.limit->addr = vma;
+
+ /* Set is_static based on the enclosing function, using either:
+ 1) the previous symbol, if it's from the same function, or
+ 2) a symtab lookup. */
+ if (prev.name && ltab.limit->file == prev.file
+ && strcmp (ltab.limit->name, prev.name) == 0)
+ {
+ ltab.limit->is_static = prev.is_static;
+ }
+ else
+ {
+ sym = sym_lookup (symtab, ltab.limit->addr);
+ if (sym)
+ ltab.limit->is_static = sym->is_static;
+ }
- for (vma = core_text_sect->vma; vma < vma_high; vma += min_insn_size)
- {
- sym_init (ltab.limit);
+ prev = *ltab.limit;
- if (!get_src_info (vma, &filename, &ltab.limit->name, &ltab.limit->line_num)
- || (prev && prev->line_num == ltab.limit->line_num
- && strcmp (prev->name, ltab.limit->name) == 0
- && filename_cmp (prev->file->name, filename) == 0))
- continue;
+ DBG (AOUTDEBUG, printf ("[core_create_line_syms] %lu %s 0x%lx\n",
+ (unsigned long) (ltab.limit - ltab.base),
+ ltab.limit->name,
+ (unsigned long) ltab.limit->addr));
+ ++ltab.limit;
+ ++ltab.len;
+ }
+ }
+ else
+ for (vma = bfd_vma_low; vma < bfd_vma_high; vma += insn_boundary)
+ {
+ if (ltab.len >= ltab_reserved)
+ {
+ /* Reserve more space for line symbols. */
+ ltab_reserved *= 2;
+ ltab.base = (Sym *) xrealloc (ltab.base,
+ ltab_reserved * sizeof (Sym));
+ ltab.limit = ltab.base + ltab.len;
+ }
+ sym_init (ltab.limit);
- /* Make name pointer a malloc'ed string. */
- ltab.limit->name = xstrdup (ltab.limit->name);
- ltab.limit->file = source_file_lookup_path (filename);
+ if (!get_src_info (vma, &filename, &ltab.limit->name,
+ &ltab.limit->line_num)
+ || (prev.name && prev.line_num == ltab.limit->line_num
+ && strcmp (prev.name, ltab.limit->name) == 0
+ && filename_cmp (prev.file->name, filename) == 0))
+ continue;
- ltab.limit->addr = vma;
+ /* Make name pointer a malloc'ed string. */
+ ltab.limit->name = xstrdup (ltab.limit->name);
+ ltab.limit->file = source_file_lookup_path (filename);
- /* Set is_static based on the enclosing function, using either:
- 1) the previous symbol, if it's from the same function, or
- 2) a symtab lookup. */
- if (prev && ltab.limit->file == prev->file &&
- strcmp (ltab.limit->name, prev->name) == 0)
- {
- ltab.limit->is_static = prev->is_static;
- }
- else
- {
- sym = sym_lookup(&symtab, ltab.limit->addr);
- if (sym)
- ltab.limit->is_static = sym->is_static;
- }
+ ltab.limit->addr = vma;
+
+ /* Set is_static based on the enclosing function, using either:
+ 1) the previous symbol, if it's from the same function, or
+ 2) a symtab lookup. */
+ if (ltab.limit->file == prev.file
+ && strcmp (ltab.limit->name, prev.name) == 0)
+ {
+ ltab.limit->is_static = prev.is_static;
+ }
+ else
+ {
+ sym = sym_lookup (symtab, ltab.limit->addr);
+ if (sym)
+ ltab.limit->is_static = sym->is_static;
+ }
- prev = ltab.limit;
+ prev = *ltab.limit;
- DBG (AOUTDEBUG, printf ("[core_create_line_syms] %lu %s 0x%lx\n",
- (unsigned long) (ltab.limit - ltab.base),
- ltab.limit->name,
- (unsigned long) ltab.limit->addr));
- ++ltab.limit;
- }
+ DBG (AOUTDEBUG, printf ("[core_create_line_syms] %lu %s 0x%lx\n",
+ (unsigned long) (ltab.limit - ltab.base),
+ ltab.limit->name,
+ (unsigned long) ltab.limit->addr));
+ ++ltab.limit;
+ ++ltab.len;
+ }
- /* Copy in function symbols. */
- memcpy (ltab.limit, symtab.base, symtab.len * sizeof (Sym));
- ltab.limit += symtab.len;
+ /* Reserve space for function symbols and/or trim excess space. */
+ ltab_reserved = ltab.len + symtab->len;
+ ltab.base = xrealloc (ltab.base, ltab_reserved * sizeof (Sym));
+ ltab.limit = ltab.base + ltab.len;
- if ((unsigned int) (ltab.limit - ltab.base) != ltab.len)
- {
- fprintf (stderr,
- _("%s: somebody miscounted: ltab.len=%d instead of %ld\n"),
- whoami, ltab.len, (long) (ltab.limit - ltab.base));
- done (1);
- }
+ /* Copy in function symbols. */
+ memcpy (ltab.limit, symtab->base, symtab->len * sizeof (Sym));
+ ltab.limit += symtab->len;
+ ltab.len += symtab->len;
/* Finalize ltab and make it symbol table. */
symtab_finalize (&ltab);
- free (symtab.base);
- symtab = ltab;
+ free (symtab->base);
+ set_symtab (&ltab);
}
diff --git a/gprof/corefile.h b/gprof/corefile.h
index 54c3691..fe4e44c 100644
--- a/gprof/corefile.h
+++ b/gprof/corefile.h
@@ -18,7 +18,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-
+
#ifndef corefile_h
#define corefile_h
diff --git a/gprof/gmon_io.c b/gprof/gmon_io.c
index 12e8ded..36ba798 100644
--- a/gprof/gmon_io.c
+++ b/gprof/gmon_io.c
@@ -18,7 +18,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
-
+
#include "gprof.h"
#include "binary-io.h"
#include "search_list.h"
@@ -58,6 +58,10 @@ static int gmon_write_raw_arc
int gmon_input = 0;
int gmon_file_version = 0; /* 0 == old (non-versioned) file format. */
+/* True if all histogram records come before any call-graph records and
+ basic-block records. */
+bool gmon_histograms_first = false;
+
static enum gmon_ptr_size
gmon_get_ptr_size (void)
{
@@ -327,6 +331,10 @@ gmon_out_read (const char *filename)
switch (tag)
{
case GMON_TAG_TIME_HIST:
+ if (narcs || nbbs)
+ gmon_histograms_first = false;
+ else
+ gmon_histograms_first = true;
++nhist;
gmon_input |= INPUT_HISTOGRAM;
hist_read_rec (ifp, filename);
@@ -576,6 +584,7 @@ gmon_out_write (const char *filename)
{
FILE *ofp;
struct gmon_hdr ghdr;
+ Sym_Table *symtab;
ofp = fopen (filename, FOPEN_WB);
if (!ofp)
@@ -584,6 +593,8 @@ gmon_out_write (const char *filename)
done (1);
}
+ symtab = get_symtab ();
+
if (file_format == FF_AUTO || file_format == FF_MAGIC)
{
/* Write gmon header. */
@@ -704,7 +715,7 @@ gmon_out_write (const char *filename)
}
/* Dump the normalized raw arc information. */
- for (sym = symtab.base; sym < symtab.limit; ++sym)
+ for (sym = symtab->base; sym < symtab->limit; ++sym)
{
for (arc = sym->cg.children; arc; arc = arc->next_child)
{
diff --git a/gprof/gmon_io.h b/gprof/gmon_io.h
index 31a3b3f..43c1869 100644
--- a/gprof/gmon_io.h
+++ b/gprof/gmon_io.h
@@ -18,7 +18,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-
+
#ifndef gmon_io_h
#define gmon_io_h
@@ -28,6 +28,7 @@
extern int gmon_input; /* What input did we see? */
extern int gmon_file_version; /* File version are we dealing with. */
+extern bool gmon_histograms_first;
extern int gmon_io_read_vma (FILE *ifp, bfd_vma *valp);
extern int gmon_io_read_32 (FILE *ifp, unsigned int *valp);
diff --git a/gprof/gmon_out.h b/gprof/gmon_out.h
index a84be49..95cedf8 100644
--- a/gprof/gmon_out.h
+++ b/gprof/gmon_out.h
@@ -18,7 +18,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-
+
/* A gmon.out file consists of a header (defined by gmon_hdr) followed
by a sequence of records. Each record starts with a one-byte tag
identifying the type of records, followed by records specific data. */
diff --git a/gprof/gprof.c b/gprof/gprof.c
index 9392575..cea269b 100644
--- a/gprof/gprof.c
+++ b/gprof/gprof.c
@@ -527,17 +527,6 @@ This program is free software. This program has absolutely no warranty.\n"));
if (ignore_direct_calls)
core_get_text_space (core_bfd);
- /* Create symbols from core image. */
- if (external_symbol_table)
- core_create_syms_from (external_symbol_table);
- else if (line_granularity)
- core_create_line_syms ();
- else
- core_create_function_syms ();
-
- /* Translate sym specs into syms. */
- sym_id_parse ();
-
if (file_format == FF_PROF)
{
fprintf (stderr,
@@ -644,6 +633,23 @@ This program is free software. This program has absolutely no warranty.\n"));
return 0;
}
+/* Initialize the symbol table. */
+
+void
+symtab_init (void)
+{
+ /* Create symbols from core image. */
+ if (external_symbol_table)
+ core_create_syms_from (external_symbol_table);
+ else if (line_granularity)
+ core_create_line_syms ();
+ else
+ core_create_function_syms ();
+
+ /* Translate sym specs into syms. */
+ sym_id_parse ();
+}
+
void
done (int status)
{
diff --git a/gprof/gprof.h b/gprof/gprof.h
index 1d8d896..4222731 100644
--- a/gprof/gprof.h
+++ b/gprof/gprof.h
@@ -132,4 +132,6 @@ extern bool first_output; /* no output so far? */
extern void done (int status) ATTRIBUTE_NORETURN;
+extern void symtab_init (void);
+
#endif /* gprof_h */
diff --git a/gprof/hertz.h b/gprof/hertz.h
index 995488c..207e4e5 100644
--- a/gprof/hertz.h
+++ b/gprof/hertz.h
@@ -16,7 +16,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-
+
#ifndef hertz_h
#define hertz_h
diff --git a/gprof/hist.c b/gprof/hist.c
index a8413d4..ef47565 100644
--- a/gprof/hist.c
+++ b/gprof/hist.c
@@ -18,7 +18,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
-
+
#include "gprof.h"
#include "libiberty.h"
#include "search_list.h"
@@ -109,12 +109,12 @@ read_histogram_header (histogram *record,
done (1);
}
- n_hist_scale = (double)((record->highpc - record->lowpc) / sizeof (UNIT))
+ n_hist_scale = (double)(record->highpc - record->lowpc) / sizeof (UNIT)
/ record->num_bins;
if (first)
{
- /* We don't try to veryfy profrate is the same for all histogram
+ /* We don't try to verify profrate is the same for all histogram
records. If we have two histogram records for the same
address range and profiling samples is done as often
as possible as opposed on timer, then the actual profrate will
@@ -155,8 +155,8 @@ read_histogram_header (histogram *record,
if (fabs (hist_scale - n_hist_scale) > 0.000001)
{
fprintf (stderr,
- _("%s: different scales in histogram records"),
- whoami);
+ _("%s: different scales in histogram records: %f != %f\n"),
+ whoami, hist_scale, n_hist_scale);
done (1);
}
}
@@ -294,8 +294,9 @@ scale_and_align_entries (void)
Sym *sym;
bfd_vma bin_of_entry;
bfd_vma bin_of_code;
+ Sym_Table *symtab = get_symtab ();
- for (sym = symtab.base; sym < symtab.limit; sym++)
+ for (sym = symtab->base; sym < symtab->limit; sym++)
{
histogram *r = find_histogram_for_pc (sym->addr);
@@ -366,6 +367,7 @@ hist_assign_samples_1 (histogram *r)
unsigned int bin_count;
unsigned int i, j, k;
double count_time, credit;
+ Sym_Table *symtab = get_symtab ();
bfd_vma lowpc = r->lowpc / sizeof (UNIT);
@@ -392,10 +394,10 @@ hist_assign_samples_1 (histogram *r)
PR gprof/13325: Make sure that K does not get decremented
and J will never be less than 0. */
- for (j = k - 1; j < symtab.len; k = ++j)
+ for (j = k - 1; j < symtab->len; k = ++j)
{
- sym_low_pc = symtab.base[j].hist.scaled_addr;
- sym_high_pc = symtab.base[j + 1].hist.scaled_addr;
+ sym_low_pc = symtab->base[j].hist.scaled_addr;
+ sym_high_pc = symtab->base[j + 1].hist.scaled_addr;
/* If high end of bin is below entry address,
go for next bin. */
@@ -414,12 +416,12 @@ hist_assign_samples_1 (histogram *r)
DBG (SAMPLEDEBUG,
printf (
"[assign_samples] [0x%lx,0x%lx) %s gets %f ticks %ld overlap\n",
- (unsigned long) symtab.base[j].addr,
+ (unsigned long) symtab->base[j].addr,
(unsigned long) (sizeof (UNIT) * sym_high_pc),
- symtab.base[j].name, overlap * count_time / hist_scale,
+ symtab->base[j].name, overlap * count_time / hist_scale,
(long) overlap));
- addr = symtab.base[j].addr;
+ addr = symtab->base[j].addr;
credit = overlap * count_time / hist_scale;
/* Credit symbol if it appears in INCL_FLAT or that
@@ -429,7 +431,7 @@ hist_assign_samples_1 (histogram *r)
|| (syms[INCL_FLAT].len == 0
&& !sym_lookup (&syms[EXCL_FLAT], addr)))
{
- symtab.base[j].hist.time += credit;
+ symtab->base[j].hist.time += credit;
}
else
{
@@ -443,7 +445,7 @@ hist_assign_samples_1 (histogram *r)
total_time));
}
-/* Calls 'hist_assign_sampes_1' for all histogram records read so far. */
+/* Calls 'hist_assign_samples_1' for all histogram records read so far. */
void
hist_assign_samples (void)
{
@@ -569,6 +571,7 @@ hist_print (void)
unsigned log_scale;
double top_time;
bfd_vma addr;
+ Sym_Table *symtab = get_symtab ();
if (first_output)
first_output = false;
@@ -592,12 +595,12 @@ hist_print (void)
/* Sort the symbol table by time (call-count and name as secondary
and tertiary keys). */
- time_sorted_syms = (Sym **) xmalloc (symtab.len * sizeof (Sym *));
+ time_sorted_syms = (Sym **) xmalloc (symtab->len * sizeof (Sym *));
- for (sym_index = 0; sym_index < symtab.len; ++sym_index)
- time_sorted_syms[sym_index] = &symtab.base[sym_index];
+ for (sym_index = 0; sym_index < symtab->len; ++sym_index)
+ time_sorted_syms[sym_index] = &symtab->base[sym_index];
- qsort (time_sorted_syms, symtab.len, sizeof (Sym *), cmp_time);
+ qsort (time_sorted_syms, symtab->len, sizeof (Sym *), cmp_time);
if (bsd_style_output)
{
@@ -611,7 +614,7 @@ hist_print (void)
top_dog = 0;
top_time = 0.0;
- for (sym_index = 0; sym_index < symtab.len; ++sym_index)
+ for (sym_index = 0; sym_index < symtab->len; ++sym_index)
{
sym = time_sorted_syms[sym_index];
@@ -648,7 +651,7 @@ hist_print (void)
I-cache misses etc.). */
print_header (SItab[log_scale].prefix);
- for (sym_index = 0; sym_index < symtab.len; ++sym_index)
+ for (sym_index = 0; sym_index < symtab->len; ++sym_index)
{
addr = time_sorted_syms[sym_index]->addr;
@@ -724,7 +727,7 @@ hist_clip_symbol_address (bfd_vma *p_lowpc, bfd_vma *p_highpc)
*p_highpc = *p_lowpc;
}
-/* Find and return exising histogram record having the same lowpc and
+/* Find and return existing histogram record having the same lowpc and
highpc as passed via the parameters. Return NULL if nothing is found.
The return value is valid until any new histogram is read. */
static histogram *
diff --git a/gprof/hist.h b/gprof/hist.h
index e585662..cf16a35 100644
--- a/gprof/hist.h
+++ b/gprof/hist.h
@@ -18,7 +18,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-
+
#ifndef hist_h
#define hist_h
diff --git a/gprof/i386.c b/gprof/i386.c
index 62f6f96..350dcb2 100644
--- a/gprof/i386.c
+++ b/gprof/i386.c
@@ -52,6 +52,7 @@ i386_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
unsigned char *instructp;
Sym *child;
bfd_vma pc, destpc;
+ Sym_Table *symtab = get_symtab ();
DBG (CALLDEBUG, printf ("[findcall] %s: 0x%lx to 0x%lx\n",
parent->name, (unsigned long) p_lowpc,
@@ -76,7 +77,7 @@ i386_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
destpc = bfd_get_32 (core_bfd, instructp + 1) + pc + 5;
if (hist_check_address (destpc))
{
- child = sym_lookup (&symtab, destpc);
+ child = sym_lookup (symtab, destpc);
if (child && child->addr == destpc)
{
/*
diff --git a/gprof/mips.c b/gprof/mips.c
index 0ccd17d..873403c 100644
--- a/gprof/mips.c
+++ b/gprof/mips.c
@@ -46,6 +46,7 @@ mips_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
int offset;
Sym *child;
static bool inited = false;
+ Sym_Table *symtab = get_symtab ();
if (!inited)
{
@@ -75,7 +76,7 @@ mips_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
dest_pc = (pc & ~(bfd_vma) 0xfffffff) | offset;
if (hist_check_address (dest_pc))
{
- child = sym_lookup (&symtab, dest_pc);
+ child = sym_lookup (symtab, dest_pc);
if (child)
{
DBG (CALLDEBUG,
diff --git a/gprof/search_list.c b/gprof/search_list.c
index fd66a00..2648438 100644
--- a/gprof/search_list.c
+++ b/gprof/search_list.c
@@ -18,7 +18,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
-
+
#include "gprof.h"
#include "libiberty.h"
#include "search_list.h"
diff --git a/gprof/search_list.h b/gprof/search_list.h
index 062fe38..78889e8 100644
--- a/gprof/search_list.h
+++ b/gprof/search_list.h
@@ -18,7 +18,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-
+
#ifndef search_list_h
#define search_list_h
diff --git a/gprof/source.c b/gprof/source.c
index a240b03..7ed84a5 100644
--- a/gprof/source.c
+++ b/gprof/source.c
@@ -18,7 +18,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
-
+
#include "gprof.h"
#include "libiberty.h"
#include "filenames.h"
diff --git a/gprof/source.h b/gprof/source.h
index f729aa7..3dba958 100644
--- a/gprof/source.h
+++ b/gprof/source.h
@@ -18,7 +18,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-
+
#ifndef source_h
#define source_h
diff --git a/gprof/sparc.c b/gprof/sparc.c
index 019e58b..ac0975e 100644
--- a/gprof/sparc.c
+++ b/gprof/sparc.c
@@ -47,6 +47,7 @@ sparc_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
bfd_vma pc, dest_pc;
unsigned int insn;
Sym *child;
+ Sym_Table *symtab = get_symtab ();
DBG (CALLDEBUG, printf ("[find_call] %s: 0x%lx to 0x%lx\n",
parent->name, (unsigned long) p_lowpc,
@@ -69,7 +70,7 @@ sparc_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
^ 0x20000000) - 0x20000000);
if (hist_check_address (dest_pc))
{
- child = sym_lookup (&symtab, dest_pc);
+ child = sym_lookup (symtab, dest_pc);
if (child)
{
DBG (CALLDEBUG,
diff --git a/gprof/sym_ids.c b/gprof/sym_ids.c
index 01491a1..81be06c 100644
--- a/gprof/sym_ids.c
+++ b/gprof/sym_ids.c
@@ -18,7 +18,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
-
+
#include "gprof.h"
#include "libiberty.h"
#include "safe-ctype.h"
@@ -278,13 +278,14 @@ sym_id_parse (void)
Sym *sym, *left, *right;
struct sym_id *id;
Sym_Table *tab;
+ Sym_Table *symtab = get_symtab_direct ();
/* Convert symbol ids into Syms, so we can deal with them more easily. */
for (id = id_list; id; id = id->next)
parse_id (id);
/* First determine size of each table. */
- for (sym = symtab.base; sym < symtab.limit; ++sym)
+ for (sym = symtab->base; sym < symtab->limit; ++sym)
{
for (id = id_list; id; id = id->next)
{
@@ -315,7 +316,7 @@ sym_id_parse (void)
}
/* Make a second pass through symtab, creating syms as necessary. */
- for (sym = symtab.base; sym < symtab.limit; ++sym)
+ for (sym = symtab->base; sym < symtab->limit; ++sym)
{
for (id = id_list; id; id = id->next)
{
diff --git a/gprof/sym_ids.h b/gprof/sym_ids.h
index fd13415..9c280ef 100644
--- a/gprof/sym_ids.h
+++ b/gprof/sym_ids.h
@@ -18,7 +18,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-
+
#ifndef sym_ids_h
#define sym_ids_h
diff --git a/gprof/symtab.c b/gprof/symtab.c
index 95f02b1..e8b0b34 100644
--- a/gprof/symtab.c
+++ b/gprof/symtab.c
@@ -18,7 +18,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
02110-1301, USA. */
-
+
#include "gprof.h"
#include "search_list.h"
#include "source.h"
@@ -28,8 +28,40 @@
static int cmp_addr (const void *, const void *);
-Sym_Table symtab;
+/* The symbol table. */
+static Sym_Table symtab;
+
+/* Return the pointer to the symbol table. */
+
+Sym_Table *
+get_symtab_direct (void)
+{
+ return &symtab;
+}
+
+/* Return the pointer to the symbol table and initialize it if it isn't
+ initialized yet. */
+
+Sym_Table *
+get_symtab (void)
+{
+ static Sym_Table *symtab_p;
+ if (!symtab_p)
+ {
+ symtab_init ();
+
+ symtab_p = &symtab;
+ }
+ return symtab_p;
+}
+
+/* Set the symbol table to *LTAB. */
+void
+set_symtab (Sym_Table *ltab)
+{
+ symtab = *ltab;
+}
/* Initialize a symbol (so it's empty). */
diff --git a/gprof/symtab.h b/gprof/symtab.h
index b8fe55a..19031b9 100644
--- a/gprof/symtab.h
+++ b/gprof/symtab.h
@@ -18,7 +18,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-
+
#ifndef symtab_h
#define symtab_h
@@ -110,7 +110,9 @@ typedef struct
}
Sym_Table;
-extern Sym_Table symtab; /* The symbol table. */
+extern Sym_Table *get_symtab (void);
+extern Sym_Table *get_symtab_direct (void);
+extern void set_symtab (Sym_Table *);
extern void sym_init (Sym *);
extern void symtab_finalize (Sym_Table *);
diff --git a/gprof/testsuite/Makefile.am b/gprof/testsuite/Makefile.am
new file mode 100644
index 0000000..0c80b12
--- /dev/null
+++ b/gprof/testsuite/Makefile.am
@@ -0,0 +1,43 @@
+# Process this file with automake to generate Makefile.in
+
+AUTOMAKE_OPTIONS = foreign
+
+GPROF = ../gprof$(EXEEXT)
+
+# NB: -O2 -fno-omit-frame-pointer is needed for expected call graph. See
+# https://sourceware.org/bugzilla/show_bug.cgi?id=32768
+# -g is needed for line number info checked by tst-gmon-gprof-l.sh. See
+# https://sourceware.org/bugzilla/show_bug.cgi?id=32779
+GPROF_FLAGS = -O2 -fno-omit-frame-pointer -pg -g
+
+COMPILE = $(CC) $(AM_CFLAGS) $(GPROF_FLAGS)
+LINK = $(CC) $(AM_CFLAGS) $(GPROF_FLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+
+# We will add to these later, for each individual test. Note
+# that we add each test under check_SCRIPTS;
+# the TESTS variable is automatically populated from these.
+check_SCRIPTS =
+check_DATA =
+MOSTLYCLEANFILES =
+
+TESTS = $(check_SCRIPTS)
+
+if NATIVE
+
+check_SCRIPTS += tst-gmon-gprof.sh
+
+check_DATA += tst-gmon-gprof.out
+MOSTLYCLEANFILES += tst-gmon.$(OBJEXT) tst-gmon$(EXEEXT) gmon.out
+tst-gmon.$(OBJEXT): tst-gmon.c
+ $(COMPILE) -c -o $@ $<
+tst-gmon: tst-gmon.$(OBJEXT)
+ $(LINK) tst-gmon.$(OBJEXT)
+tst-gmon-gprof.out: tst-gmon$(EXEEXT) $(GPROF)
+ $(srcdir)/tst-gmon-gprof.sh $(GPROF) tst-gmon$(EXEEXT)
+
+check_SCRIPTS += tst-gmon-gprof-l.sh
+check_DATA += tst-gmon-gprof-l.out
+tst-gmon-gprof-l.out: tst-gmon$(EXEEXT) $(GPROF)
+ $(srcdir)/tst-gmon-gprof-l.sh $(GPROF) tst-gmon$(EXEEXT)
+
+endif NATIVE
diff --git a/gprof/testsuite/Makefile.in b/gprof/testsuite/Makefile.in
new file mode 100644
index 0000000..2ac5f24
--- /dev/null
+++ b/gprof/testsuite/Makefile.in
@@ -0,0 +1,892 @@
+# Makefile.in generated by automake 1.15.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2017 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# Process this file with automake to generate Makefile.in
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+@NATIVE_TRUE@am__append_1 = tst-gmon-gprof.sh tst-gmon-gprof-l.sh
+@NATIVE_TRUE@am__append_2 = tst-gmon-gprof.out tst-gmon-gprof-l.out
+@NATIVE_TRUE@am__append_3 = tst-gmon.$(OBJEXT) tst-gmon$(EXEEXT) gmon.out
+subdir = testsuite
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/../bfd/warning.m4 \
+ $(top_srcdir)/../config/depstand.m4 \
+ $(top_srcdir)/../config/gettext-sister.m4 \
+ $(top_srcdir)/../config/gettext.m4 \
+ $(top_srcdir)/../config/iconv.m4 \
+ $(top_srcdir)/../config/intlmacosx.m4 \
+ $(top_srcdir)/../config/jobserver.m4 \
+ $(top_srcdir)/../config/largefile.m4 \
+ $(top_srcdir)/../config/lead-dot.m4 \
+ $(top_srcdir)/../config/lib-ld.m4 \
+ $(top_srcdir)/../config/lib-link.m4 \
+ $(top_srcdir)/../config/lib-prefix.m4 \
+ $(top_srcdir)/../config/nls.m4 \
+ $(top_srcdir)/../config/override.m4 \
+ $(top_srcdir)/../config/plugins.m4 \
+ $(top_srcdir)/../config/po.m4 \
+ $(top_srcdir)/../config/progtest.m4 \
+ $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
+ $(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
+ $(top_srcdir)/../lt~obsolete.m4 \
+ $(top_srcdir)/../bfd/version.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/gconfig.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__tty_colors_dummy = \
+ mgn= red= grn= lgn= blu= brg= std=; \
+ am__color_tests=no
+am__tty_colors = { \
+ $(am__tty_colors_dummy); \
+ if test "X$(AM_COLOR_TESTS)" = Xno; then \
+ am__color_tests=no; \
+ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+ am__color_tests=yes; \
+ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+ am__color_tests=yes; \
+ fi; \
+ if test $$am__color_tests = yes; then \
+ red=''; \
+ grn=''; \
+ lgn=''; \
+ blu=''; \
+ mgn=''; \
+ brg=''; \
+ std=''; \
+ fi; \
+}
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__recheck_rx = ^[ ]*:recheck:[ ]*
+am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
+am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+ recheck = 1; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ { \
+ if ((getline line2 < ($$0 ".log")) < 0) \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+ { \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+ { \
+ break; \
+ } \
+ }; \
+ if (recheck) \
+ print $$0; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+ print "fatal: making $@: " msg | "cat >&2"; \
+ exit 1; \
+} \
+function rst_section(header) \
+{ \
+ print header; \
+ len = length(header); \
+ for (i = 1; i <= len; i = i + 1) \
+ printf "="; \
+ printf "\n\n"; \
+} \
+{ \
+ copy_in_global_log = 1; \
+ global_test_result = "RUN"; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".trs"); \
+ if (line ~ /$(am__global_test_result_rx)/) \
+ { \
+ sub("$(am__global_test_result_rx)", "", line); \
+ sub("[ ]*$$", "", line); \
+ global_test_result = line; \
+ } \
+ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+ copy_in_global_log = 0; \
+ }; \
+ if (copy_in_global_log) \
+ { \
+ rst_section(global_test_result ": " $$0); \
+ while ((rc = (getline line < ($$0 ".log"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".log"); \
+ print line; \
+ }; \
+ printf "\n"; \
+ }; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+ --color-tests "$$am__color_tests" \
+ --enable-hard-errors "$$am__enable_hard_errors" \
+ --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test. Creates the
+# directory for the log if needed. Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log. Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup); \
+$(am__vpath_adj_setup) $(am__vpath_adj) \
+$(am__tty_colors); \
+srcdir=$(srcdir); export srcdir; \
+case "$@" in \
+ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
+ *) am__odir=.;; \
+esac; \
+test "x$$am__odir" = x"." || test -d "$$am__odir" \
+ || $(MKDIR_P) "$$am__odir" || exit $$?; \
+if test -f "./$$f"; then dir=./; \
+elif test -f "$$f"; then dir=; \
+else dir="$(srcdir)/"; fi; \
+tst=$$dir$$f; log='$@'; \
+if test -n '$(DISABLE_HARD_ERRORS)'; then \
+ am__enable_hard_errors=no; \
+else \
+ am__enable_hard_errors=yes; \
+fi; \
+case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
+ am__expect_failure=yes;; \
+ *) \
+ am__expect_failure=no;; \
+esac; \
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed). The result is saved in the shell variable
+# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+ bases='$(TEST_LOGS)'; \
+ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+ bases=`echo $$bases`
+RECHECK_LOGS = $(TEST_LOGS)
+AM_RECURSIVE_TARGETS = check recheck
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/../test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+ case '$@' in \
+ */*) \
+ case '$*' in \
+ */*) b='$*';; \
+ *) b=`echo '$@' | sed 's/\.log$$//'`; \
+ esac;; \
+ *) \
+ b='$*';; \
+ esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/../test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+ $(TEST_LOG_FLAGS)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/../mkinstalldirs \
+ $(top_srcdir)/../test-driver
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GENCAT = @GENCAT@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+INCINTL = @INCINTL@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+LARGEFILE_CPPFLAGS = @LARGEFILE_CPPFLAGS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBINTL_DEP = @LIBINTL_DEP@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NO_WERROR = @NO_WERROR@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POSUB = @POSUB@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+WARN_CFLAGS = @WARN_CFLAGS@
+WARN_CFLAGS_FOR_BUILD = @WARN_CFLAGS_FOR_BUILD@
+WARN_WRITE_STRINGS = @WARN_WRITE_STRINGS@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+AUTOMAKE_OPTIONS = foreign
+GPROF = ../gprof$(EXEEXT)
+
+# NB: -O2 -fno-omit-frame-pointer is needed for expected call graph. See
+# https://sourceware.org/bugzilla/show_bug.cgi?id=32768
+# -g is needed for line number info checked by tst-gmon-gprof-l.sh. See
+# https://sourceware.org/bugzilla/show_bug.cgi?id=32779
+GPROF_FLAGS = -O2 -fno-omit-frame-pointer -pg -g
+COMPILE = $(CC) $(AM_CFLAGS) $(GPROF_FLAGS)
+LINK = $(CC) $(AM_CFLAGS) $(GPROF_FLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+
+# We will add to these later, for each individual test. Note
+# that we add each test under check_SCRIPTS;
+# the TESTS variable is automatically populated from these.
+check_SCRIPTS = $(am__append_1)
+check_DATA = $(am__append_2)
+MOSTLYCLEANFILES = $(am__append_3)
+TESTS = $(check_SCRIPTS)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .log .test .test$(EXEEXT) .trs
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign testsuite/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign testsuite/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+ rm -f $< $@
+ $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+ @:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+ @$(am__set_TESTS_bases); \
+ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+ redo_bases=`for i in $$bases; do \
+ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+ done`; \
+ if test -n "$$redo_bases"; then \
+ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+ if $(am__make_dryrun); then :; else \
+ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
+ fi; \
+ fi; \
+ if test -n "$$am__remaking_logs"; then \
+ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+ "recursion detected" >&2; \
+ elif test -n "$$redo_logs"; then \
+ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+ fi; \
+ if $(am__make_dryrun); then :; else \
+ st=0; \
+ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+ for i in $$redo_bases; do \
+ test -f $$i.trs && test -r $$i.trs \
+ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+ test -f $$i.log && test -r $$i.log \
+ || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+ done; \
+ test $$st -eq 0 || exit 1; \
+ fi
+ @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+ ws='[ ]'; \
+ results=`for b in $$bases; do echo $$b.trs; done`; \
+ test -n "$$results" || results=/dev/null; \
+ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
+ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
+ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
+ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
+ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+ if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+ success=true; \
+ else \
+ success=false; \
+ fi; \
+ br='==================='; br=$$br$$br$$br$$br; \
+ result_count () \
+ { \
+ if test x"$$1" = x"--maybe-color"; then \
+ maybe_colorize=yes; \
+ elif test x"$$1" = x"--no-color"; then \
+ maybe_colorize=no; \
+ else \
+ echo "$@: invalid 'result_count' usage" >&2; exit 4; \
+ fi; \
+ shift; \
+ desc=$$1 count=$$2; \
+ if test $$maybe_colorize = yes && test $$count -gt 0; then \
+ color_start=$$3 color_end=$$std; \
+ else \
+ color_start= color_end=; \
+ fi; \
+ echo "$${color_start}# $$desc $$count$${color_end}"; \
+ }; \
+ create_testsuite_report () \
+ { \
+ result_count $$1 "TOTAL:" $$all "$$brg"; \
+ result_count $$1 "PASS: " $$pass "$$grn"; \
+ result_count $$1 "SKIP: " $$skip "$$blu"; \
+ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+ result_count $$1 "FAIL: " $$fail "$$red"; \
+ result_count $$1 "XPASS:" $$xpass "$$red"; \
+ result_count $$1 "ERROR:" $$error "$$mgn"; \
+ }; \
+ { \
+ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
+ $(am__rst_title); \
+ create_testsuite_report --no-color; \
+ echo; \
+ echo ".. contents:: :depth: 2"; \
+ echo; \
+ for b in $$bases; do echo $$b; done \
+ | $(am__create_global_log); \
+ } >$(TEST_SUITE_LOG).tmp || exit 1; \
+ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
+ if $$success; then \
+ col="$$grn"; \
+ else \
+ col="$$red"; \
+ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
+ fi; \
+ echo "$${col}$$br$${std}"; \
+ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \
+ echo "$${col}$$br$${std}"; \
+ create_testsuite_report --maybe-color; \
+ echo "$$col$$br$$std"; \
+ if $$success; then :; else \
+ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
+ if test -n "$(PACKAGE_BUGREPORT)"; then \
+ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
+ fi; \
+ echo "$$col$$br$$std"; \
+ fi; \
+ $$success || exit 1
+
+check-TESTS:
+ @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
+ @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+ exit $$?;
+recheck: all $(check_SCRIPTS) $(check_DATA)
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ bases=`for i in $$bases; do echo $$i; done \
+ | $(am__list_recheck_tests)` || exit 1; \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ log_list=`echo $$log_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+ am__force_recheck=am--force-recheck \
+ TEST_LOGS="$$log_list"; \
+ exit $$?
+tst-gmon-gprof.sh.log: tst-gmon-gprof.sh
+ @p='tst-gmon-gprof.sh'; \
+ b='tst-gmon-gprof.sh'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+tst-gmon-gprof-l.sh.log: tst-gmon-gprof-l.sh
+ @p='tst-gmon-gprof-l.sh'; \
+ b='tst-gmon-gprof-l.sh'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+ @p='$<'; \
+ $(am__set_b); \
+ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@ @p='$<'; \
+@am__EXEEXT_TRUE@ $(am__set_b); \
+@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_SCRIPTS) $(check_DATA)
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+ -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+ -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+ -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+ -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: all all-am check check-TESTS check-am clean clean-generic \
+ clean-libtool cscopelist-am ctags-am distclean \
+ distclean-generic distclean-libtool distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am recheck tags-am \
+ uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+@NATIVE_TRUE@tst-gmon.$(OBJEXT): tst-gmon.c
+@NATIVE_TRUE@ $(COMPILE) -c -o $@ $<
+@NATIVE_TRUE@tst-gmon: tst-gmon.$(OBJEXT)
+@NATIVE_TRUE@ $(LINK) tst-gmon.$(OBJEXT)
+@NATIVE_TRUE@tst-gmon-gprof.out: tst-gmon$(EXEEXT) $(GPROF)
+@NATIVE_TRUE@ $(srcdir)/tst-gmon-gprof.sh $(GPROF) tst-gmon$(EXEEXT)
+@NATIVE_TRUE@tst-gmon-gprof-l.out: tst-gmon$(EXEEXT) $(GPROF)
+@NATIVE_TRUE@ $(srcdir)/tst-gmon-gprof-l.sh $(GPROF) tst-gmon$(EXEEXT)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/gprof/testsuite/tst-gmon-gprof-l.sh b/gprof/testsuite/tst-gmon-gprof-l.sh
new file mode 100755
index 0000000..530d022
--- /dev/null
+++ b/gprof/testsuite/tst-gmon-gprof-l.sh
@@ -0,0 +1,74 @@
+#!/bin/sh
+# Check the output of gprof against a carfully crafted binary.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# The GNU C Library 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
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, see
+# <https://www.gnu.org/licenses/>.
+
+GPROF="$1"
+if test -z "$GPROF"; then
+ # Exit 0 for automake test script run.
+ exit 0
+fi
+
+program="$2"
+# Generate gmon.out
+data=gmon.out
+rm -f $data
+./$program
+if test ! -s $data; then
+ echo "FAIL"
+ exit 1
+fi
+
+LC_ALL=C
+export LC_ALL
+set -e
+exec 2>&1
+
+actual=${program}.actual-l
+expected=${program}.expected-l
+expected_dot=${program}.expected_dot-l
+cleanup () {
+ rm -f "$actual"
+ rm -f "$expected"
+ rm -f "$expected_dot"
+}
+trap cleanup 0
+
+cat > "$expected" <<EOF
+25 f1 2000
+31 f2 1000
+40 f3 1
+EOF
+
+# Special version for powerpc with function descriptors.
+cat > "$expected_dot" <<EOF
+25 .f1 2000
+31 .f2 1000
+40 .f3 1
+EOF
+
+"$GPROF" -l -C "$program" "$data" \
+ | awk -F '[(): ]' '/executions/{print $2, $5, $8}' \
+ | sort > "$actual"
+
+if cmp -s "$actual" "$expected_dot" \
+ || diff -u --label expected "$expected" --label actual "$actual" ; then
+ echo "PASS"
+else
+ echo "FAIL"
+ exit 1
+fi
diff --git a/gprof/testsuite/tst-gmon-gprof.sh b/gprof/testsuite/tst-gmon-gprof.sh
new file mode 100755
index 0000000..deaa802
--- /dev/null
+++ b/gprof/testsuite/tst-gmon-gprof.sh
@@ -0,0 +1,74 @@
+#!/bin/sh
+# Check the output of gprof against a carfully crafted binary.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
+# This file is part of the GNU C Library.
+
+# The GNU C Library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+
+# The GNU C Library 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
+# Lesser General Public License for more details.
+
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, see
+# <https://www.gnu.org/licenses/>.
+
+GPROF="$1"
+if test -z "$GPROF"; then
+ # Exit 0 for automake test script run.
+ exit 0
+fi
+
+program="$2"
+# Generate gmon.out
+data=gmon.out
+rm -f $data
+./$program
+if test ! -s $data; then
+ echo "FAIL"
+ exit 1
+fi
+
+LC_ALL=C
+export LC_ALL
+set -e
+exec 2>&1
+
+actual=${program}.actual
+expected=${program}.expected
+expected_dot=${program}.expected_dot
+cleanup () {
+ rm -f "$actual"
+ rm -f "$expected"
+ rm -f "$expected_dot"
+}
+trap cleanup 0
+
+cat > "$expected" <<EOF
+f1 2000
+f2 1000
+f3 1
+EOF
+
+# Special version for powerpc with function descriptors.
+cat > "$expected_dot" <<EOF
+.f1 2000
+.f2 1000
+.f3 1
+EOF
+
+"$GPROF" -C "$program" "$data" \
+ | awk -F '[(): ]' '/executions/{print $5, $8}' \
+ | sort > "$actual"
+
+if cmp -s "$actual" "$expected_dot" \
+ || diff -u --label expected "$expected" --label actual "$actual" ; then
+ echo "PASS"
+else
+ echo "FAIL"
+ exit 1
+fi
diff --git a/gprof/testsuite/tst-gmon.c b/gprof/testsuite/tst-gmon.c
new file mode 100644
index 0000000..917f5e6
--- /dev/null
+++ b/gprof/testsuite/tst-gmon.c
@@ -0,0 +1,53 @@
+/* Test program for profiling information collection (_mcount/gprof).
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* This program does not use the test harness because we want tight
+ control over the call graph. */
+
+__attribute__ ((weak))
+void
+f1 (void)
+{
+}
+
+__attribute__ ((weak))
+void
+f2 (void)
+{
+ f1 ();
+ /* Prevent tail call. */
+ asm volatile ("");
+}
+
+__attribute__ ((weak))
+void
+f3 (int count)
+{
+ for (int i = 0; i < count; ++i)
+ {
+ f1 ();
+ f2 ();
+ }
+}
+
+int
+main (void)
+{
+ f3 (1000);
+ return 0;
+}
diff --git a/gprof/utils.h b/gprof/utils.h
index c7212df..403fe2a 100644
--- a/gprof/utils.h
+++ b/gprof/utils.h
@@ -16,7 +16,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-
+
#ifndef utils_h
#define utils_h
diff --git a/gprof/vax.c b/gprof/vax.c
index fafe2b1..47cbe13 100644
--- a/gprof/vax.c
+++ b/gprof/vax.c
@@ -238,6 +238,7 @@ vax_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
operandenum firstmode;
bfd_vma pc, destpc;
static bool inited = false;
+ Sym_Table *symtab = get_symtab ();
if (!inited)
{
@@ -321,7 +322,7 @@ vax_find_call (Sym *parent, bfd_vma p_lowpc, bfd_vma p_highpc)
destpc = pc + vax_offset (operand);
if (hist_check_address (destpc))
{
- child = sym_lookup (&symtab, destpc);
+ child = sym_lookup (symtab, destpc);
if (child)
{
DBG (CALLDEBUG,
diff --git a/gprofng/common/core_pcbe.c b/gprofng/common/core_pcbe.c
index 107a994..14080ab 100644
--- a/gprofng/common/core_pcbe.c
+++ b/gprofng/common/core_pcbe.c
@@ -2759,7 +2759,7 @@ core_pcbe_init (void)
return -1;
}
-#if defined(__i386__) || defined(__x86_64)
+#if defined(__i386__) || defined(__x86_64__)
/* No Architectural Performance Monitoring Leaf returned by CPUID */
if (get_cpuid_info ()->cpi_maxeax < 0xa)
return (-1);
@@ -2918,7 +2918,7 @@ core_pcbe_cpuref (void)
{
#if defined(__aarch64__) || defined(__riscv)
return "";
-#elif defined(__i386__) || defined(__x86_64)
+#elif defined(__i386__) || defined(__x86_64__)
switch (cpuid_getmodel ())
{
case 60: /* Haswell */
diff --git a/gprofng/common/cpu_frequency.h b/gprofng/common/cpu_frequency.h
index 2371863..c6979c4 100644
--- a/gprofng/common/cpu_frequency.h
+++ b/gprofng/common/cpu_frequency.h
@@ -41,7 +41,7 @@ extern "C"
#define COL_CPUFREQ_SCALING 0x0001
#define COL_CPUFREQ_TURBO 0x0002
-#if defined(__i386__) || defined(__x86_64)
+#if defined(__i386__) || defined(__x86_64__)
// XXXX This is a rough table to estimate frequency increment due to intel turbo boost.
// CPU with different stepping and different core number have different turbo increment.
// It is used internally here, and is not implemented on SPARC
@@ -129,7 +129,7 @@ extern "C"
{
char temp[1024];
int cpu = -1;
-#if defined(__i386__) || defined(__x86_64)
+#if defined(__i386__) || defined(__x86_64__)
int model = -1;
int family = -1;
#endif
@@ -140,7 +140,7 @@ extern "C"
char *val = strchr (temp, ':');
cpu = val ? atoi (val + 1) : -1;
}
-#if defined(__i386__) || defined(__x86_64)
+#if defined(__i386__) || defined(__x86_64__)
else if (strncmp (temp, "model", strlen ("model")) == 0
&& strstr (temp, "name") == 0)
{
@@ -241,7 +241,7 @@ extern "C"
frequency_scaling = 1;
if (tmpmhz > 1000)
{
-#if defined(__i386__) || defined(__x86_64)
+#if defined(__i386__) || defined(__x86_64__)
if (family == 6)
{
// test turbo mode
diff --git a/gprofng/common/cpuid.c b/gprofng/common/cpuid.c
index 9e45233..e40404c 100644
--- a/gprofng/common/cpuid.c
+++ b/gprofng/common/cpuid.c
@@ -18,7 +18,7 @@
Foundation, 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-#if defined(__i386__) || defined(__x86_64)
+#if defined(__i386__) || defined(__x86_64__)
#include <cpuid.h> /* GCC-provided */
#elif defined(__aarch64__)
#if !defined(ATTRIBUTE_UNUSED)
@@ -91,7 +91,7 @@ typedef struct
} cpuid_info_t;
-#if defined(__i386__) || defined(__x86_64)
+#if defined(__i386__) || defined(__x86_64__)
static uint_t
cpuid_vendorstr_to_vendorcode (char *vendorstr)
{
@@ -151,7 +151,7 @@ get_cpuid_info ()
Tprintf (DBG_LT0, "cpuid.c:%d read_cpuid_id() MIDR_EL1==0x%016x cpi_vendor=%d cpi_model=%d\n",
__LINE__, (unsigned int) reg, cpi->cpi_vendor, cpi->cpi_model);
-#elif defined(__i386__) || defined(__x86_64)
+#elif defined(__i386__) || defined(__x86_64__)
cpuid_regs_t regs;
my_cpuid (0, &regs);
cpi->cpi_maxeax = regs.eax;
diff --git a/gprofng/common/gp-defs.h b/gprofng/common/gp-defs.h
index d6c9445..4b5d6fa 100644
--- a/gprofng/common/gp-defs.h
+++ b/gprofng/common/gp-defs.h
@@ -42,7 +42,7 @@
#if defined(sparc) || defined(__sparcv9)
#define ARCH_SPARC 1
-#elif defined(__i386__) || defined(__x86_64)
+#elif defined(__i386__) || defined(__x86_64__)
#define ARCH_Intel 1
#elif defined(__aarch64__)
#define ARCH_Aarch64 1
@@ -52,7 +52,7 @@
#error "Undefined platform"
#endif
-#if defined(__sparcv9) || defined(__x86_64) || defined(__aarch64__) || defined(__riscv)
+#if defined(__sparcv9) || defined(__x86_64__) || defined(__aarch64__) || defined(__riscv)
#define WSIZE_64 1
#else
#define WSIZE_32 1
diff --git a/gprofng/common/gp-experiment.h b/gprofng/common/gp-experiment.h
index fab08f1..7abccdf 100644
--- a/gprofng/common/gp-experiment.h
+++ b/gprofng/common/gp-experiment.h
@@ -39,6 +39,23 @@
#define IS_DESC_EXPT(exptname) (strstr(exptname,DESCENDANT_EXPT_KEY) != NULL)
#define IS_FNDR_EXPT(exptname) (strstr(exptname,DESCENDANT_EXPT_KEY) == NULL)
+// environment variables that must be forwarded to libcollector
+#define SP_COLLECTOR_PARAMS "SP_COLLECTOR_PARAMS"
+#define SP_COLLECTOR_EXPNAME "SP_COLLECTOR_EXPNAME"
+#define SP_COLLECTOR_FOLLOW_SPEC "SP_COLLECTOR_FOLLOW_SPEC"
+#define SP_COLLECTOR_FOUNDER "SP_COLLECTOR_FOUNDER"
+#define SP_PRELOAD_STRINGS "SP_COLLECTOR_PRELOAD"
+#define LD_PRELOAD_STRINGS "LD_PRELOAD"
+#define SP_LIBPATH_STRINGS "SP_COLLECTOR_LIBRARY_PATH"
+#define LD_LIBPATH_STRINGS "LD_LIBRARY_PATH"
+#define JAVA_TOOL_OPTIONS "JAVA_TOOL_OPTIONS"
+#define COLLECTOR_JVMTI_OPTION "-agentlib:gp-collector"
+#define LIBGP_COLLECTOR "libgp-collector.so"
+#define GPROFNG_PRELOAD_LIBDIRS "GPROFNG_PRELOAD_LIBDIRS"
+#define SP_COLLECTOR_ORIGIN_COLLECT "SP_COLLECTOR_ORIGIN_COLLECT"
+#define SP_COLLECTOR_DEBUG "SP_COLLECTOR_DEBUG"
+#define SP_COLLECTOR_TRACELEVEL "SP_COLLECTOR_TRACELEVEL"
+
/* File name definitions */
#define SP_ARCHIVES_DIR "archives"
#define SP_ARCHIVE_LOG_FILE "archive.log"
@@ -86,70 +103,31 @@
/* records for log and loadobjects files */
/* note that these are in alphabetical order */
-#define SP_JCMD_ARCH "architecture"
#define SP_JCMD_ARCHIVE "archive_run"
-#define SP_JCMD_ARGLIST "arglist"
#define SP_JCMD_BLKSZ "blksz"
#define SP_JCMD_CERROR "cerror"
-#define SP_JCMD_CLASS_LOAD "class_load"
-#define SP_JCMD_CLASS_UNLOAD "class_unload"
#define SP_JCMD_COLLENV "collenv"
#define SP_JCMD_COMMENT "comment"
-#define SP_JCMD_CPUID "cpuid"
#define SP_JCMD_CWARN "cwarn"
-#define SP_JCMD_CWD "cwd"
-#define SP_JCMD_CVERSION "cversion"
-#define SP_JCMD_DATARACE "datarace"
-#define SP_JCMD_DEADLOCK "deadlock"
#define SP_JCMD_DELAYSTART "delay_start"
#define SP_JCMD_DESC_START "desc_start"
#define SP_JCMD_DESC_STARTED "desc_started"
-#define SP_JCMD_DVERSION "dversion"
#define SP_JCMD_EXEC_START "exec_start"
#define SP_JCMD_EXEC_ERROR "exec_error"
#define SP_JCMD_EXIT "exit"
-#define SP_JCMD_EXPT_DURATION "exp_duration"
#define SP_JCMD_FAKETIME "faketime"
-#define SP_JCMD_FN_LOAD "fn_load"
-#define SP_JCMD_FN_UNLOAD "fn_unload"
-#define SP_JCMD_FUN_MAP "fun_map"
-#define SP_JCMD_FUN_UNMAP "fun_unmap"
#define SP_JCMD_HEAPTRACE "heaptrace"
-#define SP_JCMD_HOSTNAME "hostname"
#define SP_JCMD_HWC_DEFAULT "hwc_default"
#define SP_JCMD_HW_COUNTER "hwcounter"
-#define SP_JCMD_HW_SIM_CTR "hwsimctr"
#define SP_JCMD_IOTRACE "iotrace"
-#define SP_JCMD_JCM_LOAD "jcm_load"
-#define SP_JCMD_JCM_UNLOAD "jcm_unload"
-#define SP_JCMD_JCM_MAP "jcm_map"
-#define SP_JCMD_JCM_UNMAP "jcm_unmap"
#define SP_JCMD_JTHREND "jthread_end"
#define SP_JCMD_JTHRSTART "jthread_start"
#define SP_JCMD_GCEND "gc_end"
#define SP_JCMD_GCSTART "gc_start"
#define SP_JCMD_JVERSION "jversion"
-//#define SP_JCMD_KPROFILE "kprofile" /* TBR */
#define SP_JCMD_LIMIT "limit"
#define SP_JCMD_LINETRACE "linetrace"
-#define SP_JCMD_LO_OPEN "lo_open"
-#define SP_JCMD_LO_CLOSE "lo_close"
-#define SP_JCMD_MOD_OPEN "mod_open"
-#define SP_JCMD_MPIEXP "MPIexperiment"
-#define SP_JCMD_MPI_NO_TRACE "MPI_no_trace"
-#define SP_JCMD_MPIOMPVER "mpi_openmpi_version"
-#define SP_JCMD_MPITRACEVER "mpi_trace_version"
-#define SP_JCMD_MPIPP "mpipp"
-#define SP_JCMD_MPIPPERR "mpipp_err"
-#define SP_JCMD_MPIPPWARN "mpipp_warn"
-#define SP_JCMD_MPISTATE "mpistate"
-#define SP_JCMD_MPITRACE "mpitrace" /* backwards compat only */
-#define SP_JCMD_MPVIEW "mpview"
-#define SP_JCMD_MSGTRACE "msgtrace"
#define SP_JCMD_NOIDLE "noidle"
-#define SP_JCMD_OMPTRACE "omptrace"
-#define SP_JCMD_OS "os"
-#define SP_JCMD_PAGESIZE "pagesize"
#define SP_JCMD_PAUSE "pause"
#define SP_JCMD_PAUSE_SIG "pause_signal"
#define SP_JCMD_PROFILE "profile"
@@ -158,21 +136,15 @@
#define SP_JCMD_SAMPLE "sample"
#define SP_JCMD_SAMPLE_PERIOD "sample_period"
#define SP_JCMD_SAMPLE_SIG "sample_signal"
-#define SP_JCMD_SEGMENT_MAP "seg_map"
-#define SP_JCMD_SEGMENT_UNMAP "seg_unmap"
#define SP_JCMD_SRCHPATH "search_path"
#define SP_JCMD_STACKBASE "stackbase"
-#define SP_JCMD_SUNPERF "sunperf"
#define SP_JCMD_SYNCTRACE "synctrace"
#define SP_JCMD_TERMINATE "terminate"
#define SP_JCMD_THREAD_PAUSE "thread_pause"
#define SP_JCMD_THREAD_RESUME "thread_resume"
-#define SP_JCMD_USERNAME "username"
#define SP_JCMD_VERSION "version"
-#define SP_JCMD_WSIZE "wsize"
/* strings naming memory-segments */
-#define SP_MAP_ANON "Anon"
#define SP_MAP_HEAP "Heap"
#define SP_MAP_STACK "Stack"
#define SP_MAP_SHMEM "SHMid"
diff --git a/gprofng/common/hwctable.c b/gprofng/common/hwctable.c
index 4b6f2a9..1ce365a 100644
--- a/gprofng/common/hwctable.c
+++ b/gprofng/common/hwctable.c
@@ -243,7 +243,7 @@ static Hwcentry papi_generic_list[] = {
{NULL, NULL, 0, NULL, 0, 0, 0, 0, ABST_NONE}
};
-#if defined(__i386__) || defined(__x86_64)
+#if defined(__i386__) || defined(__x86_64__)
/* Kernel profiling pseudo-chip, OBSOLETE (To support 12.3 and earlier, TBR) */
static Hwcentry kproflist[] = {
{"kcycles", "kcycles", 0, STXT ("KCPU Cycles"), PRELOADS_5, 1, ABST_NONE},
@@ -1216,7 +1216,7 @@ static Hwcentry amd_15h[] = {
{"insts1", "EX_retired_instr_w_excp_intr", 1, NULL, PRELOADS_8, 0, ABST_NONE},
{NULL, NULL, 0, NULL, 0, 0, 0, 0, ABST_NONE}
};
-#endif /* __i386__ or __x86_64 */
+#endif /* __i386__ or __x86_64__ */
#define INIT_HWC(nm, mtr, cfg, ty) .name = (nm), .metric = (mtr), \
.config = (cfg), .type = ty, .use_perf_event_type = 1, \
@@ -1303,7 +1303,7 @@ static Hwcentry generic_list[] = {
{NULL, NULL, 0, NULL, 0, 0, 0, 0, ABST_NONE}
};
-#if defined(__i386__) || defined(__x86_64)
+#if defined(__i386__) || defined(__x86_64__)
#include "hwc_amd_zen3.h"
#include "hwc_amd_zen4.h"
#include "hwc_intel_icelake.h"
@@ -1332,7 +1332,7 @@ typedef struct
* If the string is not formatted that way, -h hi and -h lo will fail
*/
static cpu_list_t cputabs[] = {
-#if defined(__i386__) || defined(__x86_64)
+#if defined(__i386__) || defined(__x86_64__)
{CPC_PENTIUM_PRO_MMX, pentiumIIlist, {"insts", 0}},
{CPC_PENTIUM_PRO, pentiumIIIlist, {"insts", 0}},
{CPC_PENTIUM_4, pentium4, {"insts", 0}},
diff --git a/gprofng/doc/gprofng_ug.texi b/gprofng/doc/gprofng_ug.texi
index 7147090..f23f7b3 100644
--- a/gprofng/doc/gprofng_ug.texi
+++ b/gprofng/doc/gprofng_ug.texi
@@ -310,9 +310,8 @@ Since there is no need to recompile, existing executables can be used
and the profile measures the behaviour of exactly the same executable that is
used in production runs.
-With sampling, one inherently profiles a different executable, because
-the calls to the instrumentation library may affect the compiler optimizations
-and run time behaviour.
+With tracing, one inherently profiles a different executable, because
+the calls to the instrumentation library may affect runtime behaviour.
@item
With sampling, there are very few restrictions on what can be profiled and
diff --git a/gprofng/libcollector/collector.c b/gprofng/libcollector/collector.c
index 8d978a6..c5fa3cb 100644
--- a/gprofng/libcollector/collector.c
+++ b/gprofng/libcollector/collector.c
@@ -182,11 +182,12 @@ static void
init_tracelevel ()
{
#if DEBUG
- char *s = CALL_UTIL (getenv)("SP_COLLECTOR_TRACELEVEL");
+ char *s = CALL_UTIL (getenv)(SP_COLLECTOR_TRACELEVEL);
if (s != NULL)
__collector_tracelevel = CALL_UTIL (atoi)(s);
- TprintfT (DBG_LT0, "collector: SP_COLLECTOR_TRACELEVEL=%d\n", __collector_tracelevel);
- s = CALL_UTIL (getenv)("SP_COLLECTOR_DEBUG");
+ TprintfT (DBG_LT0, "collector: %s=%d\n", SP_COLLECTOR_TRACELEVEL,
+ __collector_tracelevel);
+ s = CALL_UTIL (getenv)(SP_COLLECTOR_DEBUG);
if (s != NULL)
collector_debug_opt = CALL_UTIL (atoi)(s) & ~(SP_DUMP_TIME | SP_DUMP_FLAG);
#endif
@@ -239,21 +240,24 @@ collector_init ()
collector_module_init (get_collector_interface ());
/* determine experiment name */
- char *exp = CALL_UTIL (getenv)("SP_COLLECTOR_EXPNAME");
+ char *exp = CALL_UTIL (getenv)(SP_COLLECTOR_EXPNAME);
if ((exp == NULL) || (CALL_UTIL (strlen)(exp) == 0))
{
- TprintfT (DBG_LT0, "collector_init: SP_COLLECTOR_EXPNAME undefined - no experiment to start\n");
+ TprintfT (DBG_LT0, "collector_init: %s undefined. no experiment to start\n",
+ SP_COLLECTOR_EXPNAME);
/* not set -- no experiment to run */
return;
}
else
- TprintfT (DBG_LT1, "collector_init: found SP_COLLECTOR_EXPNAME = %s\n", exp);
+ TprintfT (DBG_LT1, "collector_init: found %s = %s\n",
+ SP_COLLECTOR_EXPNAME, exp);
/* determine the data descriptor for the experiment */
- char *params = CALL_UTIL (getenv)("SP_COLLECTOR_PARAMS");
+ char *params = CALL_UTIL (getenv)(SP_COLLECTOR_PARAMS);
if (params == NULL)
{
- TprintfT (0, "collector_init: SP_COLLECTOR_PARAMS undefined - no experiment to start\n");
+ TprintfT (0, "collector_init: %s undefined - no experiment to start\n",
+ SP_COLLECTOR_EXPNAME);
return;
}
@@ -494,7 +498,8 @@ __collector_open_experiment (const char *exp, const char *params, sp_origin_t or
return COL_ERROR_EXPOPEN;
}
__collector_start_time = collector_interface.getHiResTime ();
- TprintfT (DBG_LT1, "\n\t\t__collector_open_experiment(SP_COLLECTOR_EXPNAME=%s, params=%s, origin=%d); setting start_time\n",
+ TprintfT (DBG_LT1, "\n\t\t__collector_open_experiment(%s=%s, params=%s, "
+ "origin=%d); setting start_time\n", SP_COLLECTOR_EXPNAME,
exp, params, origin);
if (environ)
__collector_env_printall ("__collector_open_experiment", environ);
@@ -548,23 +553,20 @@ __collector_open_experiment (const char *exp, const char *params, sp_origin_t or
is_founder = getpid ();
if (origin != SP_ORIGIN_DBX_ATTACH)
{
- envar = CALL_UTIL (getenv)("SP_COLLECTOR_FOUNDER");
+ envar = CALL_UTIL (getenv)(SP_COLLECTOR_FOUNDER);
if (envar)
is_founder = CALL_UTIL (atoi)(envar);
if (is_founder != 0)
{
if (is_founder != getpid ())
{
- TprintfT (0, "__collector_open_experiment SP_COLLECTOR_FOUNDER=%d != pid(%d)\n",
- is_founder, getpid ());
- //CALL_UTIL(fprintf)(stderr, "__collector_open_experiment SP_COLLECTOR_FOUNDER=%d != pid(%d); not recording experiment\n",
- //is_founder, getpid() );
- //return COL_ERROR_UNEXP_FOUNDER;
+ TprintfT (0, "__collector_open_experiment %s=%d != pid(%d)\n",
+ SP_COLLECTOR_FOUNDER, is_founder, getpid ());
is_founder = 0; // Special case (CR 22917352)
}
/* clear FOUNDER for descendant experiments */
- TprintfT (0, "__collector_open_experiment setting SP_COLLECTOR_FOUNDER=0\n");
- CALL_UTIL (strlcpy)(buffer, "SP_COLLECTOR_FOUNDER=0", sizeof (buffer));
+ TprintfT (0, "__collector_open_experiment setting %s=0\n", SP_COLLECTOR_FOUNDER);
+ CALL_UTIL (snprintf)(buffer, sizeof (buffer), "%s=0", SP_COLLECTOR_FOUNDER);
CALL_UTIL (putenv)(buffer);
}
}
@@ -617,8 +619,10 @@ __collector_open_experiment (const char *exp, const char *params, sp_origin_t or
return COL_ERROR_BADDIR;
}
static char exp_name_env[MAXPATHLEN + 1];
- TprintfT (DBG_LT1, "collector_open_experiment: setting SP_COLLECTOR_EXPNAME to %s\n", __collector_exp_dir_name);
- CALL_UTIL (snprintf)(exp_name_env, sizeof (exp_name_env), "SP_COLLECTOR_EXPNAME=%s", __collector_exp_dir_name);
+ TprintfT (DBG_LT1, "collector_open_experiment: setting %s to %s\n",
+ SP_COLLECTOR_EXPNAME, __collector_exp_dir_name);
+ CALL_UTIL (snprintf)(exp_name_env, sizeof (exp_name_env), "%s=%s",
+ SP_COLLECTOR_EXPNAME, __collector_exp_dir_name);
CALL_UTIL (putenv)(exp_name_env);
}
/* Check that the name is that of a directory (new structure) */
@@ -1049,8 +1053,10 @@ collector_tail_init (const char *parent_exp_name)
if (collector_exp_dir_append_x (linenum, parent_exp_name) != 0)
return COL_ERROR_BADDIR;
static char exp_name_env[MAXPATHLEN + 1];
- CALL_UTIL (snprintf)(exp_name_env, sizeof (exp_name_env), "SP_COLLECTOR_EXPNAME=%s", __collector_exp_dir_name);
- TprintfT (DBG_LT1, "collector_tail_init: setting SP_COLLECTOR_EXPNAME to %s\n", __collector_exp_dir_name);
+ CALL_UTIL (snprintf)(exp_name_env, sizeof (exp_name_env), "%s=%s",
+ SP_COLLECTOR_EXPNAME, __collector_exp_dir_name);
+ TprintfT (DBG_LT1, "collector_tail_init: setting %s to %s\n",
+ SP_COLLECTOR_EXPNAME, __collector_exp_dir_name);
CALL_UTIL (putenv)(exp_name_env);
}
/* initialize the segments map and mmap interposition */
diff --git a/gprofng/libcollector/descendants.h b/gprofng/libcollector/descendants.h
index 0148410..7d594b3 100644
--- a/gprofng/libcollector/descendants.h
+++ b/gprofng/libcollector/descendants.h
@@ -44,7 +44,6 @@ typedef enum
LM_TRACK_LINEAGE = 1, /* env vars preserved, recording */
} line_mode_t;
-extern line_mode_t line_mode;
extern int user_follow_mode;
extern int java_mode;
extern int dbg_current_mode; /* for debug only */
@@ -56,19 +55,6 @@ extern char **sp_env_backup;
#define PUSH_REENTRANCE(x) ((*(x))++)
#define POP_REENTRANCE(x) ((*(x))--)
-/* environment variables that must be forwarded to descendents */
-#define SP_COLLECTOR_PARAMS "SP_COLLECTOR_PARAMS"
-#define SP_COLLECTOR_EXPNAME "SP_COLLECTOR_EXPNAME"
-#define SP_COLLECTOR_FOLLOW_SPEC "SP_COLLECTOR_FOLLOW_SPEC"
-#define SP_COLLECTOR_FOUNDER "SP_COLLECTOR_FOUNDER"
-#define SP_PRELOAD_STRINGS "SP_COLLECTOR_PRELOAD"
-#define LD_PRELOAD_STRINGS "LD_PRELOAD"
-#define SP_LIBPATH_STRINGS "SP_COLLECTOR_LIBRARY_PATH"
-#define LD_LIBPATH_STRINGS "LD_LIBRARY_PATH"
-#define JAVA_TOOL_OPTIONS "JAVA_TOOL_OPTIONS"
-#define COLLECTOR_JVMTI_OPTION "-agentlib:gp-collector"
-
-extern int __collector_linetrace_shutdown_hwcs_6830763_XXXX;
extern void __collector_env_unset (char *envp[]);
extern void __collector_env_save_preloads ();
extern char ** __collector_env_backup ();
diff --git a/gprofng/libcollector/envmgmt.c b/gprofng/libcollector/envmgmt.c
index 0c3bea1..0a2add9 100644
--- a/gprofng/libcollector/envmgmt.c
+++ b/gprofng/libcollector/envmgmt.c
@@ -285,9 +285,6 @@ env_ld_preload_strip (char *envv)
for (int v = 0; SP_PRELOAD[v]; v++)
if (env_strip (envv, sp_preloads[v]))
return 0;
- if (line_mode != LM_CLOSED)
- TprintfT (DBG_LT2, "env_ld_preload_strip(): WARNING - could not strip SP_PRELOADS from '%s'\n",
- envv);
return -2;
}
diff --git a/gprofng/libcollector/libcol-i386-dis.c b/gprofng/libcollector/libcol-i386-dis.c
index 81ca366..15c91f7 100644
--- a/gprofng/libcollector/libcol-i386-dis.c
+++ b/gprofng/libcollector/libcol-i386-dis.c
@@ -18,7 +18,7 @@
Foundation, 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
-#if defined(__i386__) || defined(__x86_64)
+#if defined(__i386__) || defined(__x86_64__)
#include "opcodes/i386-dis.c"
#undef _
diff --git a/gprofng/libcollector/libcol_util.h b/gprofng/libcollector/libcol_util.h
index afe75f8..08e34a1 100644
--- a/gprofng/libcollector/libcol_util.h
+++ b/gprofng/libcollector/libcol_util.h
@@ -183,7 +183,7 @@ static __attribute__ ((always_inline)) inline void *
__collector_getpc ()
{
void *r;
-#if defined(__x86_64)
+#if defined(__x86_64__)
__asm__ __volatile__("lea (%%rip), %0" : "=r" (r));
#else
__asm__ __volatile__("call 1f \n"
diff --git a/gprofng/libcollector/linetrace.c b/gprofng/libcollector/linetrace.c
index 86d9955..0e3e7cd 100644
--- a/gprofng/libcollector/linetrace.c
+++ b/gprofng/libcollector/linetrace.c
@@ -37,10 +37,10 @@
#define LT_MAXNAMELEN 1024
#define LT_MAXPATHLEN 1024
-int __collector_linetrace_shutdown_hwcs_6830763_XXXX = 0;
+static int __collector_linetrace_shutdown_hwcs_6830763_XXXX = 0;
int dbg_current_mode = FOLLOW_NONE; /* for debug only */
unsigned line_key = COLLECTOR_TSD_INVALID_KEY;
-line_mode_t line_mode = LM_DORMANT;
+static line_mode_t line_mode = LM_DORMANT;
int user_follow_mode = FOLLOW_ON;
int java_mode = 0;
diff --git a/gprofng/src/CallStack.cc b/gprofng/src/CallStack.cc
index 6df4112..9a3a15d 100644
--- a/gprofng/src/CallStack.cc
+++ b/gprofng/src/CallStack.cc
@@ -527,14 +527,10 @@ CallStackP::add_stack (DataDescriptor *dDscr, long idx, FramePacket *frp,
Vaddr va = frp->getFromStack (index);
DbeInstr *cur_instr = experiment->map_Vaddr_to_PC (va, tstamp);
-#if ARCH(Intel)// TBR? FIXUP_XXX_SPARC_LINUX: switch should be on experiment ARCH, not dbe ARCH
// We need to adjust return addresses on intel
- // in order to attribute inclusive metrics to
- // proper call instructions.
- if (experiment->exp_maj_version <= 9)
- if (!leaf && cur_instr->addr != 0)
- cur_instr = cur_instr->func->find_dbeinstr (0, cur_instr->addr - 1);
-#endif
+ // in order to attribute inclusive metrics to proper instructions.
+ if (experiment->platform == Intel && cur_instr->addr != 0)
+ cur_instr = cur_instr->func->find_dbeinstr (0, cur_instr->addr - 1);
// Skip PC's from PLT, update leaf and state accordingly
if ((cur_instr->func->flags & FUNC_FLAG_PLT)
diff --git a/gprofng/src/Dwarf.cc b/gprofng/src/Dwarf.cc
index a613c63..85891099 100644
--- a/gprofng/src/Dwarf.cc
+++ b/gprofng/src/Dwarf.cc
@@ -29,6 +29,7 @@
#include "LoadObject.h"
#include "Module.h"
#include "DefaultMap.h"
+#include "Symbol.h"
static int
datatypeCmp (const void *a, const void *b)
@@ -46,7 +47,6 @@ targetOffsetCmp (const void *a, const void *b)
return o1 == o2 ? 0 : (o1 < o2 ? -1 : 1);
}
-
//////////////////////////////////////////////////////////
// class Dwr_type
class Dwr_type
@@ -390,6 +390,7 @@ Dwarf::Dwarf (Stabs *_stabs)
debug_lineSec = dwrGetSec (NTXT (".debug_line"));
debug_rangesSec = dwrGetSec (NTXT (".debug_ranges"));
debug_line_strSec = dwrGetSec (".debug_line_str");
+ debug_rnglists = NULL;
if ((debug_infoSec == NULL) || (debug_abbrevSec == NULL) || (debug_lineSec == NULL))
{
@@ -441,7 +442,12 @@ DwrCU::get_linkage_name ()
nm = Dwarf_string (DW_AT_SUN_link_name);
if (nm != NULL)
return nm;
- return Dwarf_string (DW_AT_MIPS_linkage_name);
+ if (nm != NULL)
+ return nm;
+ nm = Dwarf_string (DW_AT_MIPS_linkage_name);
+ if (nm != NULL)
+ return nm;
+ return Dwarf_string (DW_AT_name);
}
void
@@ -454,7 +460,7 @@ DwrCU::parseChild (Dwarf_cnt *ctx)
Dwarf_Die next_die;
if (read_ref_attr (DW_AT_sibling, &next_die) == DW_DLV_OK)
{
- next_die_offset = next_die + cu_offset;
+ next_die_offset = next_die;
if (next_die_offset <= debug_infoSec->offset)
{
Dprintf (DEBUG_ERR_MSG, NTXT ("DwrCU::parseChild: next_die(0x%llx) <= debug_infoSec->offset(%llx)\n"),
@@ -490,8 +496,25 @@ DwrCU::parseChild (Dwarf_cnt *ctx)
}
break;
case DW_TAG_subprogram:
- if (dwrTag.get_attr (DW_AT_abstract_origin))
- break;
+ {
+ Symbol *sym = NULL;
+ Vector<Symbol *> *syms = NULL;
+ Dwr_Attr *dwrAttr = dwrTag.get_attr (DW_AT_abstract_origin);
+ if (dwrAttr)
+ {
+ // Set up functions from DW_AT_{ranges,low_pc,linkage_name}
+ set_up_funcs (dwrAttr->u.offset);
+ break;
+ }
+
+ dwrAttr = dwrTag.get_attr (DW_AT_specification);
+ if (dwrAttr)
+ {
+ // Set up functions from DW_AT_{ranges,low_pc,linkage_name}
+ set_up_funcs (dwrAttr->u.offset);
+ break;
+ }
+
if (dwrTag.get_attr (DW_AT_declaration))
{
// Only declaration
@@ -499,26 +522,39 @@ DwrCU::parseChild (Dwarf_cnt *ctx)
{
char *link_name = Dwarf_string (DW_AT_name);
if (link_name && streq (link_name, NTXT ("MAIN")))
- ctx->fortranMAIN = Stabs::find_func (NTXT ("MAIN"), ctx->module->functions, true, true);
+ ctx->fortranMAIN = Stabs::find_func (NTXT ("MAIN"),
+ ctx->module->functions, true, true);
}
+ sym = Symbol::get_symbol (symbols_sorted_by_name,
+ get_linkage_name ());
+ if (sym != NULL)
+ func = append_Function (sym, ctx->name);
break;
}
- func = append_Function (ctx);
- if (func)
+
+ func = NULL;
+ syms = get_symbols (tmp_syms);
+ for (int i = 0, sz = VecSize (syms); i < sz; i++)
{
+ sym = syms->get (i);
+ func = append_Function (sym, ctx->name);
if (Stabs::is_fortran (ctx->module->lang_code) &&
- streq (func->get_match_name (), NTXT ("MAIN")))
+ streq (func->get_match_name (), "MAIN"))
ctx->fortranMAIN = func;
- old_name = ctx->name;
- Function *old_func = ctx->func;
- ctx->name = func->get_match_name ();
- ctx->func = func;
- parseChild (ctx);
- hasChild = 0;
- ctx->name = old_name;
- ctx->func = old_func;
}
+ if (func == NULL)
+ break;
+
+ old_name = ctx->name;
+ Function *old_func = ctx->func;
+ ctx->name = func->get_match_name ();
+ ctx->func = func;
+ parseChild (ctx);
+ hasChild = 0;
+ ctx->name = old_name;
+ ctx->func = old_func;
break;
+ }
case DW_TAG_module:
old_name = ctx->name;
ctx->name = Dwarf_string (DW_AT_SUN_link_name);
@@ -631,6 +667,21 @@ Dwarf::archive_Dwarf (LoadObject *lo)
STR (lo_name), STR (mod->get_name ()));
dwrCU->dwrInlinedSubrs->dump (msg);
}
+ for (int i = 0, sz = VecSize (dwrCU->symbols); i < sz; i++)
+ {
+ Symbol *sp = dwrCU->symbols->get (i);
+ Function *f = sp->func;
+ if (f == NULL)
+ {
+ f = sp->createFunction (mod);
+ if (sp->alias && sp->alias->func)
+ {
+ Function *func = sp->alias->func;
+ f->setLineFirst (func->line_first);
+ f->setDefSrc (func->def_source);
+ }
+ }
+ }
}
}
return true;
@@ -645,6 +696,29 @@ Dwarf::srcline_Dwarf (Module *module)
dwrCU->map_dwarf_lines (module);
}
+Vector<Range *> *
+Dwarf::get_ranges (uint64_t offset)
+{
+ if (debug_rangesSec == NULL)
+ return NULL;
+ if (offset >= debug_rangesSec->size)
+ {
+ Dprintf (DUMP_DWARFLIB, "ERROR: Dwarf::get_ranges(0x%llx). size=0x%llx\n",
+ (long long) offset, (long long) debug_rangesSec->size);
+ return NULL;
+ }
+ Vector<Range*> *ranges = new Vector<Range*>();
+ debug_rangesSec->offset = offset;
+ for (;;)
+ {
+ uint64_t low_pc = debug_rangesSec->GetADDR ();
+ uint64_t high_pc = debug_rangesSec->GetADDR ();
+ if (low_pc == 0 || low_pc > high_pc)
+ break;
+ ranges->append (new Range (low_pc, high_pc));
+ }
+ return ranges;
+}
// parse hwcprof info for given module in loadobject
@@ -723,7 +797,7 @@ DwrCU::read_hwcprof_info (Dwarf_cnt *ctx)
Dwarf_Die next_die;
if (read_ref_attr (DW_AT_sibling, &next_die) == DW_DLV_OK)
{
- next_die_offset = next_die + cu_offset;
+ next_die_offset = next_die;
if (next_die_offset <= debug_infoSec->offset)
next_die_offset = 0;
else if (debug_infoSec->size > next_die_offset)
@@ -797,11 +871,17 @@ DwrCU::read_hwcprof_info (Dwarf_cnt *ctx)
case DW_TAG_subprogram:
{
Function *old_func = ctx->func;
- if (dwrTag.get_attr (DW_AT_abstract_origin)
- || dwrTag.get_attr (DW_AT_declaration))
- ctx->func = NULL;
- else
- ctx->func = append_Function (ctx);
+ ctx->func = NULL;
+ if (dwrTag.get_attr (DW_AT_abstract_origin) == NULL
+ && dwrTag.get_attr (DW_AT_declaration) == NULL)
+ {
+ Symbol *sym = Symbol::get_symbol (symbols_sorted_by_name,
+ get_linkage_name ());
+ if (sym == NULL)
+ sym = Symbol::get_symbol (symbols, get_low_pc ());
+ if (sym != NULL)
+ ctx->func = sym->func;
+ }
read_hwcprof_info (ctx);
ctx->func = old_func;
break;
@@ -955,49 +1035,31 @@ DwrCU::read_hwcprof_info (Dwarf_cnt *ctx)
// Append function to module
Function *
-DwrCU::append_Function (Dwarf_cnt *ctx)
+DwrCU::append_Function (Symbol *sym, const char *outerName)
{
- char *outerName = ctx->name, *name, tmpname[2048];
- Function *func;
+ if (sym->func != NULL)
+ return sym->func;
+ Function *func = sym->createFunction (module);
+
char *fname = Dwarf_string (DW_AT_name);
- if (fname && outerName && !strchr (fname, '.'))
+ if (fname)
{
- size_t outerlen = strlen (outerName);
- if (outerlen > 0 && outerName[outerlen - 1] == '_')
+ if (outerName && !strchr (fname, '.'))
{
- outerlen--;
- snprintf (tmpname, sizeof (tmpname), NTXT ("%s"), outerName);
- snprintf (tmpname + outerlen, sizeof (tmpname) - outerlen, NTXT (".%s_"), fname);
+ char *tmpname;
+ int outerlen = (int) strlen (outerName);
+ if (outerlen > 0 && outerName[outerlen - 1] == '_')
+ tmpname = dbe_sprintf ("%.*s.%s_", outerlen - 1, outerName, fname);
+ else
+ tmpname = dbe_sprintf ("%s.%s", outerName, fname);
+ func->set_match_name (tmpname);
+ Dprintf (DUMP_DWARFLIB, "Generated innerfunc name %s\n", tmpname);
+ free(tmpname);
}
else
- snprintf (tmpname, sizeof (tmpname), NTXT ("%s.%s"), outerName, fname);
- name = tmpname;
- Dprintf (DUMP_DWARFLIB, NTXT ("Generated innerfunc name %s\n"), name);
- }
- else
- name = fname;
-
- char *link_name = get_linkage_name ();
- if (link_name == NULL)
- link_name = name;
-
- uint64_t pc = get_low_pc ();
- func = dwarf->stabs->append_Function (module, link_name, pc);
- if (func != NULL)
- {
- int lineno = (int) Dwarf_data (DW_AT_decl_line);
- func->set_match_name (name);
- if (lineno > 0)
- {
- func->setLineFirst (lineno);
- int fileno = ((int) Dwarf_data (DW_AT_decl_file));
- SourceFile *sf = ((fileno >= 0) && (fileno < VecSize (srcFiles))) ? srcFiles->get (fileno)
- : module->getMainSrc ();
- func->setDefSrc (sf);
- func->pushSrcFile (func->def_source, 0);
- func->popSrcFile ();
- }
+ func->set_match_name (fname);
}
+ set_source (func);
return func;
}
@@ -1040,3 +1102,94 @@ DwrCU::Dwarf_lang ()
return Sp_lang_unknown;
}
}
+
+Vector <Dwr_rng_entry *> *
+Dwarf::get_debug_rnglists ()
+{
+ if (debug_rnglists != NULL)
+ return debug_rnglists;
+ debug_rnglists = new Vector <Dwr_rng_entry *> ();
+
+ DwrSec *debug_rnglistsSec = dwrGetSec (".debug_rnglists");
+ if (debug_rnglistsSec == NULL)
+ {
+ Dprintf (1, "No section .debug_rnglists\n");
+ return debug_rnglists;
+ }
+ while (debug_rnglistsSec->offset < debug_rnglistsSec->sizeSec)
+ {
+ uint64_t base_address = 0;
+ uint64_t length = debug_rnglistsSec->ReadLength ();
+ Dwr_rng_entry *rng = new Dwr_rng_entry ();
+ debug_rnglists->append (rng);
+ rng->offset = debug_rnglistsSec->offset;
+ rng->length = length;
+ rng->fmt64 = debug_rnglistsSec->fmt64;
+ rng->version = debug_rnglistsSec->Get_16 ();
+ rng->address_size = debug_rnglistsSec->Get_8 ();
+ rng->segment_selector_size = debug_rnglistsSec->Get_8 ();
+ rng->offset_entry_count = debug_rnglistsSec->Get_32 ();
+ while (debug_rnglistsSec->offset < debug_rnglistsSec->size)
+ {
+ uint64_t off = debug_rnglistsSec->offset;
+ uint64_t low_pc;
+ uint64_t high_pc;
+ int re = debug_rnglistsSec->Get_8 ();
+ switch (re)
+ {
+ case DW_RLE_end_of_list:
+ low_pc = 0;
+ high_pc = 0;
+ break;
+ case DW_RLE_base_address:
+ base_address = debug_rnglistsSec->GetADDR ();
+ low_pc = base_address;
+ high_pc = 0;
+ continue;
+ case DW_RLE_start_length:
+ low_pc = debug_rnglistsSec->GetADDR ();
+ high_pc = low_pc + debug_rnglistsSec->GetULEB128 ();
+ break;
+ case DW_RLE_offset_pair:
+ low_pc = base_address + debug_rnglistsSec->GetULEB128 ();
+ high_pc = base_address + debug_rnglistsSec->GetULEB128 ();
+ break;
+ case DW_RLE_start_end:
+ low_pc = debug_rnglistsSec->GetADDR ();
+ high_pc = debug_rnglistsSec->GetADDR ();
+ break;
+ case DW_RLE_base_addressx:
+ base_address = debug_rnglistsSec->GetULEB128 ();
+ low_pc = base_address;
+ high_pc = 0;
+ continue;
+
+ // TODO x-variants need .debug_addr support used for split-dwarf
+ case DW_RLE_startx_endx:
+ low_pc = debug_rnglistsSec->GetRef ();
+ high_pc = debug_rnglistsSec->GetRef ();
+ Dprintf (1, "DW_RLE_startx_endx is not implemented\n");
+ continue;
+ case DW_RLE_startx_length:
+ low_pc = debug_rnglistsSec->GetRef ();
+ high_pc = low_pc + debug_rnglistsSec->GetULEB128 ();
+ Dprintf (1, "DW_RLE_startx_length is not implemented\n");
+ continue;
+ default:
+ Dprintf (1, "Unknown tag DW_RLE: %d, offset=0x%llx\n", re,
+ (long long) off);
+ debug_rnglistsSec->offset = debug_rnglistsSec->size;
+ continue;
+ }
+ Dprintf (DUMP_DWARFLIB, "0x%08llx %d-%-20s [0x%08llx - 0x%08llx)\n",
+ (long long) off, re, Dwr_rng_entry::rng_entry2str (re),
+ (long long) low_pc, (long long) high_pc);
+ rng->ranges->append (new ExtRange (off, low_pc, high_pc));
+ }
+ debug_rnglistsSec->size = debug_rnglistsSec->sizeSec;
+ debug_rnglistsSec->offset = length;
+ }
+ delete debug_rnglistsSec;
+ debug_rnglists->dump ("Dwarf::get_debug_rnglists");
+ return debug_rnglists;
+}
diff --git a/gprofng/src/Dwarf.h b/gprofng/src/Dwarf.h
index 8e3ee7a..bf8ffb4 100644
--- a/gprofng/src/Dwarf.h
+++ b/gprofng/src/Dwarf.h
@@ -60,6 +60,7 @@ class LoadObject;
class Module;
class DwrCU;
class DwrSec;
+class Range;
class Dwarf
{
@@ -69,6 +70,8 @@ public:
bool archive_Dwarf (LoadObject *lo);
void srcline_Dwarf (Module *module);
void read_hwcprof_info (Module *module);
+ Vector<Range *> *get_ranges (uint64_t offset);
+ Vector <Dwr_rng_entry *> *get_debug_rnglists ();
Stabs::Stab_status status;
Vector<DwrCU *> *dwrCUs;
@@ -82,6 +85,7 @@ public:
Stabs *stabs;
private:
+ Vector <Dwr_rng_entry *> *debug_rnglists;
DwrSec *dwrGetSec (const char *sec_name);
};
diff --git a/gprofng/src/DwarfLib.cc b/gprofng/src/DwarfLib.cc
index 9b40401..79be8cf 100644
--- a/gprofng/src/DwarfLib.cc
+++ b/gprofng/src/DwarfLib.cc
@@ -27,9 +27,9 @@
#include "Elf.h"
#include "Function.h"
#include "Module.h"
-#include "StringBuilder.h"
#include "DbeArray.h"
#include "DbeSession.h"
+#include "Symbol.h"
#define NO_STMT_LIST ((uint64_t) -1)
#define CASE_S(x) case x: s = (char *) #x; break
@@ -204,12 +204,6 @@ ElfReloc::dump_rela_debug_sec (int sec)
if (ScnSize == 0 || EntSize == 0)
return;
- Elf_Internal_Shdr *shdr_sym = elf->get_shdr (shdr->sh_link);
- if (shdr_sym == NULL)
- return;
- Elf_Data *data_sym = elf->elf_getdata (shdr->sh_link);
- Elf_Data *data_str = elf->elf_getdata (shdr_sym->sh_link);
- char *Strtab = data_str ? (char*) data_str->d_buf : NULL;
Elf_Internal_Rela rela;
int n, cnt = (int) (ScnSize / EntSize);
@@ -233,7 +227,8 @@ ElfReloc::dump_rela_debug_sec (int sec)
int ndx = (int) GELF_R_SYM (rela.r_info);
Elf_Internal_Shdr *secHdr;
Elf_Internal_Sym sym;
- elf->elf_getsym (data_sym, ndx, &sym);
+ asymbol *asym;
+ asym = elf->elf_getsym (ndx, &sym, false);
Dprintf (DUMP_RELA_SEC, NTXT ("%3d:%5d |%11lld |0x%016llx | %-15s|"),
n, (int) rela.r_addend,
(long long) rela.r_offset, (long long) rela.r_info,
@@ -243,12 +238,9 @@ ElfReloc::dump_rela_debug_sec (int sec)
case STT_FUNC:
case STT_OBJECT:
case STT_NOTYPE:
- secHdr = elf->get_shdr (sym.st_shndx);
- if (secHdr)
- Dprintf (DUMP_RELA_SEC, NTXT (" img_offset=0x%llx"),
- (long long) (sym.st_value + secHdr->sh_offset));
- if (Strtab && sym.st_name)
- Dprintf (DUMP_RELA_SEC, NTXT (" %s"), Strtab + sym.st_name);
+ Dprintf (DUMP_RELA_SEC, NTXT (" img_offset=0x%llx"),
+ (long long) (bfd_asymbol_value (asym)));
+ Dprintf (DUMP_RELA_SEC, NTXT (" %s"), bfd_asymbol_name (asym));
break;
case STT_SECTION:
secHdr = elf->get_shdr (sym.st_shndx);
@@ -311,10 +303,6 @@ ElfReloc::get_elf_reloc (Elf *elfp, char *sec_name, ElfReloc *rlc)
return rlc;
int cnt = (int) (data->d_size / shdr->sh_entsize);
- Elf_Internal_Shdr *shdr_sym = elfp->get_shdr (shdr->sh_link);
- if (shdr_sym == NULL)
- return rlc;
- Elf_Data *data_sym = elfp->elf_getdata (shdr->sh_link);
Vector<Sreloc *> *vp = NULL;
for (int n = 0; n < cnt; n++)
@@ -331,7 +319,7 @@ ElfReloc::get_elf_reloc (Elf *elfp, char *sec_name, ElfReloc *rlc)
}
int ndx = (int) GELF_R_SYM (rela.r_info);
Elf_Internal_Sym sym;
- elfp->elf_getsym (data_sym, ndx, &sym);
+ elfp->elf_getsym (ndx, &sym, false);
srlc = new Sreloc;
srlc->offset = rela.r_offset;
@@ -1010,7 +998,6 @@ Dwr_Tag::dump ()
case DW_FORM_strx2:
case DW_FORM_strx3:
case DW_FORM_strx4:
- case DW_FORM_implicit_const:
Dprintf (DUMP_DWARFLIB, " \"%s\"", atrp->u.str ? atrp->u.str : "<NULL>");
break;
case DW_FORM_block:
@@ -1049,6 +1036,7 @@ Dwr_Tag::dump ()
case DW_FORM_exprloc:
case DW_FORM_ref_sig8:
case DW_FORM_flag_present:
+ case DW_FORM_implicit_const:
Dprintf (DUMP_DWARFLIB, " 0x%llx (%lld)", (long long) atrp->u.val,
(long long) atrp->u.val);
break;
@@ -1107,6 +1095,7 @@ DwrSec::bounds_violation (uint64_t sz)
{
Dprintf (DEBUG_ERR_MSG, "DwrSec::bounds_violation: offset=%lld + sz=%lld > size=%lld\n",
(long long) offset, (long long) sz, (long long) size);
+ offset = size;
return true;
}
return false;
@@ -1807,6 +1796,12 @@ DwrLineRegs::getPath (int fn)
DwrCU::DwrCU (Dwarf *_dwarf)
{
dwarf = _dwarf;
+ tmp_syms = new Vector<Symbol*>();
+ rng_list = NULL;
+ rng_list_inited = false;
+ base_address = 0;
+ symbols = NULL;
+ symbols_sorted_by_name = NULL;
cu_offset = dwarf->debug_infoSec->offset;
debug_infoSec = new DwrSec (dwarf->debug_infoSec, cu_offset);
next_cu_offset = debug_infoSec->ReadLength ();
@@ -1859,7 +1854,7 @@ DwrCU::DwrCU (Dwarf *_dwarf)
(long long) cu_offset, (long long) cu_offset,
(long long) next_cu_offset, (long long) next_cu_offset,
(long long) debug_abbrev_offset, (long long) debug_abbrev_offset,
- (long long) (next_cu_offset - cu_offset),
+ (long long) (next_cu_offset),
(int) version, (int) address_size,
debug_infoSec->fmt64 ? "true" : "false",
debug_infoSec->need_swap_endian ? "true" : "false",
@@ -1895,6 +1890,9 @@ DwrCU::~DwrCU ()
Destroy (dwrInlinedSubrs);
delete srcFiles;
delete dwrLineReg;
+ delete symbols;
+ delete symbols_sorted_by_name;
+ delete tmp_syms;
free (comp_dir);
}
@@ -1937,7 +1935,7 @@ DwrCU::build_abbrevTable (DwrSec *_debug_abbrevSec, uint64_t _offset)
switch (atf.at_form)
{
case DW_FORM_implicit_const:
- atf.len = debug_abbrevSec->GetSLEB128 ();
+ atf.u.val = debug_abbrevSec->GetSLEB128 ();
break;
}
abbrevAtForm->append (atf);
@@ -1957,7 +1955,7 @@ DwrCU::set_die (Dwarf_Die die)
|| debug_infoSec->offset >= debug_infoSec->size)
return DW_DLV_ERROR;
dwrTag.offset = debug_infoSec->offset;
- dwrTag.die = debug_infoSec->offset - cu_offset;
+ dwrTag.die = debug_infoSec->offset;
dwrTag.num = debug_infoSec->GetULEB128_32 ();
if (dwrTag.num == 0)
return DW_DLV_NO_ENTRY;
@@ -2006,19 +2004,19 @@ DwrCU::set_die (Dwarf_Die die)
atf->u.str = debug_infoSec->GetData (atf->len);
break;
case DW_FORM_ref1:
- atf->u.offset = debug_infoSec->Get_8 ();
+ atf->u.offset = debug_infoSec->Get_8 () + cu_offset;
break;
case DW_FORM_ref2:
- atf->u.offset = debug_infoSec->Get_16 ();
+ atf->u.offset = debug_infoSec->Get_16 () + cu_offset;
break;
case DW_FORM_ref4:
- atf->u.offset = debug_infoSec->Get_32 ();
+ atf->u.offset = debug_infoSec->Get_32 () + cu_offset;
break;
case DW_FORM_ref8:
- atf->u.offset = debug_infoSec->Get_64 ();
+ atf->u.offset = debug_infoSec->Get_64 () + cu_offset;
break;
case DW_FORM_ref_udata:
- atf->u.offset = debug_infoSec->GetULEB128 ();
+ atf->u.offset = debug_infoSec->GetULEB128 () + cu_offset;
break;
case DW_FORM_data1:
atf->u.offset = debug_infoSec->Get_8 ();
@@ -2121,7 +2119,7 @@ DwrCU::set_die (Dwarf_Die die)
atf->len = 0;
break;
case DW_FORM_implicit_const:
- atf->u.str = NULL;
+ // atf->u.val is already set
break;
default:
DEBUG_CODE
@@ -2199,9 +2197,241 @@ DwrCU::parse_cu_header (LoadObject *lo)
else
path = dbe_strdup (dwarf->stabs->path);
module->set_name (path);
+
+ // create a list of functions in this CU
+ base_address = get_low_pc ();
+ Vector <Range *> *ranges = get_ranges ();
+ if (ranges)
+ {
+ Vector <Symbol *> *syms = dwarf->stabs->get_symbols ();
+ symbols = Symbol::find_symbols (syms, ranges, new Vector <Symbol *> ());
+ symbols_sorted_by_name = Symbol::sort_by_name (symbols);
+ if (DUMP_ELF_SYM)
+ symbols->dump ("DwrCU::parse_cu_header: symbols");
+ Destroy (ranges);
+ }
return module;
}
+
+static int
+cmp_ExtRange (const void *a, const void *b)
+{
+ uint64_t a1 = *((uint64_t *) a);
+ ExtRange *rng = *((ExtRange **) b);
+ uint64_t b1 = rng->offset;
+ return a1 < b1 ? -1 : (a1 == b1 ? 0 : 1);
+}
+
+static int
+cmp_offset (const void *a, const void *b)
+{
+ uint64_t off = *((uint64_t *) a);
+ Dwr_rng_entry *rng = *((Dwr_rng_entry **) b);
+ return off < rng->offset ? -1 : (off < rng->length ? 0 : 1);
+}
+
+static int
+rangeCmp (const void *a, const void *b)
+{
+ Range *item1 = *((Range **) a);
+ Range *item2 = *((Range **) b);
+ return item1->low < item2->low ? -1 : (item1->low == item2->low ? 0 : 1);
+}
+
+Vector <Range *> *
+DwrCU::get_ranges ()
+{
+ Vector <Range *> *ranges = NULL;
+ Dwr_Attr *dwrAttr = dwrTag.get_attr (DW_AT_ranges);
+ if (dwrAttr)
+ {
+ uint64_t offset = dwrAttr->u.offset;
+ Dprintf (DUMP_DWARFLIB, "DwrCU::get_ranges: 0x%llx\n", (long long) offset);
+ if (version < 5)
+ ranges = dwarf->get_ranges (offset);
+ else
+ {
+ if (rng_list == NULL && !rng_list_inited)
+ {
+ rng_list_inited = true;
+ // Find the corresponding section in .debug_rnglists
+ Vector <Dwr_rng_entry *> *rng_entrys = dwarf->get_debug_rnglists ();
+ if (rng_entrys == NULL)
+ return NULL;
+ int ind = rng_entrys->bisearch (0, -1, &offset, cmp_offset);
+ if (ind != -1)
+ rng_list = rng_entrys->get (ind);
+ else
+ {
+ Dprintf (1, "Cannot find rnglist. DW_AT_ranges=0x%llx\n",
+ (long long) offset);
+ return NULL;
+ }
+ }
+ if (rng_list == NULL)
+ return NULL;
+ int ind = rng_list->ranges->bisearch (0, -1, &offset, cmp_ExtRange);
+ if (ind == -1)
+ {
+ Dprintf (1, "Cannot find rnglist. DW_AT_ranges=0x%llx\n",
+ (long long) offset);
+ return NULL;
+ }
+ ranges = new Vector <Range *> ();
+ for (long i = ind, sz = VecSize (rng_list->ranges); i < sz; i++)
+ {
+ ExtRange *r = rng_list->ranges->get (i);
+ if (r->high == 0)
+ break;
+ ranges->append (new Range (r->low + base_address,
+ r->high + base_address));
+ }
+ }
+ }
+ else
+ {
+ uint64_t low_pc = Dwarf_addr (DW_AT_low_pc);
+ if (low_pc > 0)
+ {
+ uint64_t high_pc = get_high_pc (low_pc);
+ ranges = new Vector <Range *> (1);
+ ranges->append (new Range (low_pc, high_pc));
+ Dprintf (DUMP_DWARFLIB, "DwrCU::get_ranges: pc=0x%llx\n",
+ (long long) low_pc);
+ }
+ }
+ if (ranges)
+ {
+ ranges->sort (rangeCmp);
+ if (DUMP_DWARFLIB)
+ ranges->dump ("DwrCU::get_ranges:");
+ }
+ return ranges;
+}
+
+Vector<Symbol *> *
+DwrCU::get_symbols (Vector<Symbol *> *syms)
+{
+ if (syms)
+ syms->reset ();
+ Vector <Range *> *ranges = get_ranges ();
+ if (ranges)
+ {
+ syms = Symbol::find_symbols (symbols, ranges, syms);
+ Destroy (ranges);
+ }
+ if (syms)
+ {
+ Symbol *sym = Symbol::get_symbol (symbols_sorted_by_name,
+ get_linkage_name ());
+ if (sym)
+ syms->append (sym);
+ }
+ if (syms && DUMP_ELF_SYM)
+ syms->dump ("DwrCU::get_symbols:");
+ return syms;
+}
+
+void
+DwrCU::set_source (Function *func)
+{
+ int lineno = (int) Dwarf_data (DW_AT_decl_line);
+ func->setLineFirst (lineno);
+
+ int fileno = (int) Dwarf_data (DW_AT_decl_file);
+ func->setDefSrc (get_source (fileno));
+}
+
+SourceFile *
+DwrCU::get_source (int fileno)
+{
+ if (fileno > 0 && fileno < VecSize (srcFiles))
+ return srcFiles->get (fileno);
+ return NULL;
+}
+
+void
+DwrCU::inherit_prop (int64_t offset, source_t *src)
+{
+ if (src->lineno == 0)
+ src->lineno = (int) Dwarf_data (DW_AT_decl_line);
+ if (src->sf == NULL)
+ src->sf = get_source ((int) Dwarf_data (DW_AT_decl_file));
+
+ int64_t old_offset = dwrTag.offset;
+ if (set_die (offset) == DW_DLV_OK)
+ {
+ if (src->lineno == 0)
+ src->lineno = (int) Dwarf_data (DW_AT_decl_line);
+ if (src->sf == NULL)
+ src->sf = get_source ((int) Dwarf_data (DW_AT_decl_file));
+
+ Dwr_Attr *dwrAttr = dwrTag.get_attr (DW_AT_specification);
+ if (dwrAttr)
+ inherit_prop (dwrAttr->u.offset, src);
+ else
+ {
+ Symbol *sym = Symbol::get_symbol (symbols_sorted_by_name,
+ get_linkage_name ());
+ if (sym)
+ update_source (sym, src);
+ }
+ }
+ set_die (old_offset);
+}
+
+void
+DwrCU::set_up_funcs (int64_t offset)
+{
+ // get symbols from DW_AT_ranges, DW_AT_low_pc, DW_AT_linkage_name
+ Vector<Symbol *> *syms = get_symbols (tmp_syms);
+ if (VecSize (syms) == 0)
+ return;
+
+ // Find previous declaration to inherit settings.
+ source_t src = {.lineno = 0, .sf = NULL};
+ inherit_prop (offset, &src);
+
+ for (int i = 0, sz = VecSize (syms); i < sz; i++)
+ {
+ Symbol *sym = syms->get (i);
+ update_source (sym, &src);
+ if (sym->alias)
+ update_source (sym->alias, &src);
+ }
+}
+
+/* Create a function if necessary.
+ * Update the source information */
+void
+DwrCU::update_source (Symbol *sym, source_t *src)
+{
+ Function *f = sym->createFunction (module);
+ f->setLineFirst (src->lineno);
+ f->setDefSrc (src->sf);
+}
+
+Symbol *
+DwrCU::find_declaration (int64_t offset, source_t *src)
+{
+ int64_t old_offset = dwrTag.offset;
+ Symbol *sym = NULL;
+ if (set_die (offset) == DW_DLV_OK)
+ {
+ if (src->lineno == 0)
+ src->lineno = (int) Dwarf_data (DW_AT_decl_line);
+ if (src->sf == NULL)
+ src->sf = get_source ((int) Dwarf_data (DW_AT_decl_file));
+
+ sym = Symbol::get_symbol (symbols_sorted_by_name, get_linkage_name ());
+ if (sym && sym->func == NULL)
+ update_source (sym, src);
+ }
+ set_die (old_offset);
+ return sym;
+}
+
Dwr_Attr *
Dwr_Tag::get_attr (Dwarf_Half attr)
{
@@ -2281,6 +2511,7 @@ DwrCU::read_data_attr (Dwarf_Half attr, int64_t *retVal)
case DW_FORM_data16:
case DW_FORM_udata:
case DW_FORM_sec_offset:
+ case DW_FORM_implicit_const:
*retVal = dwrAttr->u.val;
return DW_DLV_OK;
@@ -2369,7 +2600,7 @@ DwrCU::map_dwarf_lines (Module *mod)
InlinedSubr *p = func->inlinedSubr + func->inlinedSubrCnt;
func->inlinedSubrCnt++;
int fileno = inlinedSubr->file - 1;
- SourceFile *sf = ((fileno >= 0) && (fileno < VecSize (srcFiles))) ?
+ SourceFile *sf = ((fileno > 0) && (fileno < VecSize (srcFiles))) ?
srcFiles->get (fileno) : dbeSession->get_Unknown_Source ();
p->dbeLine = sf->find_dbeline (inlinedSubr->line);
p->high_pc = inlinedSubr->high_pc - low_pc;
@@ -2514,3 +2745,69 @@ DwrInlinedSubr::dump ()
(int) level, (long long) abstract_origin, (long long) low_pc,
(long long) high_pc, (int) file, (int) line);
}
+
+
+//////////////////////////////////////////////////////////
+// class Dwr_rng_entry
+Dwr_rng_entry::Dwr_rng_entry ()
+{
+ ranges = new Vector <ExtRange *>();
+}
+
+Dwr_rng_entry::~Dwr_rng_entry ()
+{
+ delete ranges;
+}
+
+void
+Dwr_rng_entry::dump ()
+{
+ Dprintf (DUMP_DWARFLIB, "offset=0x%08llx length=0x%08llx fmt=%d version=%d "
+ "addr_size=%d seg_size=%d offset_entry_count=0x%llx\n",
+ (long long) offset, (long long) (length - offset), fmt64 ? 64 : 32,
+ (int) version, (int) address_size, (int) segment_selector_size,
+ (long long) offset_entry_count);
+ for (long i = 0, sz = VecSize (ranges); i < sz; i++)
+ {
+ ExtRange *p = ranges->get (i);
+ Dprintf (DUMP_DWARFLIB, " %8ld: 0x%08llx 0x%08llx-0x%08llx [%lld-%lld)\n",
+ i, (long long) p->offset, (long long) p->low, (long long) p->high,
+ (long long) p->low, (long long) p->high);
+ }
+}
+
+char *
+Dwr_rng_entry::rng_entry2str (int val)
+{
+ char *s;
+ switch (val)
+ {
+ CASE_S (DW_RLE_end_of_list);
+ CASE_S (DW_RLE_base_address);
+ CASE_S (DW_RLE_start_length);
+ CASE_S (DW_RLE_offset_pair);
+ CASE_S (DW_RLE_start_end);
+ CASE_S (DW_RLE_base_addressx);
+ CASE_S (DW_RLE_startx_endx);
+ CASE_S (DW_RLE_startx_length);
+ default: s = (char *) "???";
+ break;
+ }
+ return s;
+}
+
+template<> void Vector<Dwr_rng_entry *>::dump (const char *msg)
+{
+ if (!DUMP_DWARFLIB)
+ return;
+ if (msg == NULL)
+ msg = "#";
+ Dprintf (1, NTXT ("\n%s Vector<Dwr_rng_entry *> [%lld]\n"), msg, (long long) size ());
+ for (long i = 0, sz = size (); i < sz; i++)
+ {
+ Dwr_rng_entry *p = get (i);
+ Dprintf (1, " %3ld ", i);
+ p->dump ();
+ }
+}
+
diff --git a/gprofng/src/DwarfLib.h b/gprofng/src/DwarfLib.h
index 178801d..06b19b8 100644
--- a/gprofng/src/DwarfLib.h
+++ b/gprofng/src/DwarfLib.h
@@ -25,7 +25,10 @@
class ElfReloc;
class Dwr_type;
+class Function;
+class Range;
class SourceFile;
+class Symbol;
template <class ITEM> class Vector;
template <class ITEM> class DbeArray;
@@ -73,12 +76,6 @@ public:
return (uint32_t) GetULEB128 ();
}
- bool
- inRange (uint64_t left, uint64_t right)
- {
- return (offset >= left) && (offset < right);
- };
-
ElfReloc *reloc;
uint64_t sizeSec;
uint64_t size;
@@ -260,6 +257,45 @@ public:
Dwr_type *put_dwr_type (Dwr_Tag *dwrTag);
};
+class ExtRange
+{
+public:
+ ExtRange (uint64_t _off, uint64_t _low, uint64_t _high)
+ {
+ offset = _off;
+ low = _low;
+ high = _high;
+ };
+
+ uint64_t offset;
+ uint64_t low;
+ uint64_t high;
+};
+
+class Dwr_rng_entry
+{
+public:
+ Dwr_rng_entry ();
+ ~Dwr_rng_entry ();
+ void dump();
+ static char *rng_entry2str(int val);
+
+ Dwarf_Half version;
+ Dwarf_Small address_size;
+ Dwarf_Small segment_selector_size;
+ int offset_entry_count;
+ uint64_t length;
+ uint64_t offset;
+ bool fmt64;
+ Vector <ExtRange *> *ranges;
+};
+
+typedef struct Source
+{
+ int lineno;
+ SourceFile *sf;
+} source_t;
+
class DwrCU
{
public:
@@ -280,6 +316,8 @@ public:
uint64_t cu_header_offset;
uint64_t cu_offset;
uint64_t next_cu_offset;
+ Vector<Symbol*> *symbols; // all symbols in this CU are sorted by pc
+ Vector<Symbol*> *symbols_sorted_by_name;
Vector<DwrInlinedSubr*> *dwrInlinedSubrs;
Vector<SourceFile *> *srcFiles;
bool isMemop;
@@ -287,7 +325,15 @@ public:
private:
void build_abbrevTable (DwrSec *debug_abbrevSec, uint64_t stmt_list_offset);
- Function *append_Function (Dwarf_cnt *ctx);
+ Function *append_Function (Symbol *sym, const char *outerName);
+ void set_up_funcs (int64_t offset);
+ void inherit_prop (int64_t offset, source_t *src);
+ void update_source (Symbol *sym, source_t *prop);
+ Symbol *find_declaration (int64_t offset, source_t *prop);
+ SourceFile *get_source (int fileno);
+ Vector<Symbol *> *get_symbols (Vector<Symbol *> *syms = NULL);
+ Vector <Range *> *get_ranges();
+ void set_source (Function *func);
void parse_inlined_subroutine (Dwarf_cnt *ctx);
uint64_t get_low_pc ();
uint64_t get_high_pc (uint64_t low_pc);
@@ -316,6 +362,10 @@ private:
DwrLineRegs *dwrLineReg;
DbeArray<DwrAbbrevTable> *abbrevTable;
DbeArray<Dwr_Attr> *abbrevAtForm;
+ Vector<Symbol*> *tmp_syms; // reused vector for get_symbols()
+ Dwr_rng_entry *rng_list; // entry in the .debug_rnglists section
+ bool rng_list_inited;
+ uint64_t base_address; // low_pc in compile_unit
};
#endif /* _DWARFLIB_H_ */
diff --git a/gprofng/src/Elf.cc b/gprofng/src/Elf.cc
index b9da240..f0fd121 100644
--- a/gprofng/src/Elf.cc
+++ b/gprofng/src/Elf.cc
@@ -533,42 +533,43 @@ Elf::elf_strptr (unsigned int sec, uint64_t off)
return NULL;
}
-Elf_Internal_Sym *
-Elf::elf_getsym (Elf_Data *edta, unsigned int ndx, Elf_Internal_Sym *dst)
+long
+Elf::elf_getSymCount (bool is_dynamic)
{
- if (dst == NULL || edta == NULL)
- return NULL;
- if (elf_getclass () == ELFCLASS32)
- {
- if (edta->d_size <= ndx * sizeof (Elf32_Sym))
- return NULL;
- Elf32_Sym *hdr = (Elf32_Sym*) bind (edta->d_off + ndx * sizeof (Elf32_Sym), sizeof (Elf32_Sym));
- if (hdr == NULL)
- return NULL;
- dst->st_name = decode (hdr->st_name);
- dst->st_value = decode (hdr->st_value);
- dst->st_size = decode (hdr->st_size);
- dst->st_info = ELF64_ST_INFO (ELF32_ST_BIND (decode (hdr->st_info)),
- ELF32_ST_TYPE (decode (hdr->st_info)));
- dst->st_other = decode (hdr->st_other);
- dst->st_shndx = decode (hdr->st_shndx);
- }
+ if (bfd_dynsym == NULL && bfd_sym == NULL)
+ get_bfd_symbols ();
+ if (is_dynamic)
+ return bfd_dynsymcnt;
+ return bfd_symcnt;
+}
+
+/* Returns an ASYMBOL on index NDX if it exists. If DST is defined,
+ the internal elf symbol at intex NDX is copied into it. IS_DYNAMIC
+ selects the type of the symbol. */
+
+asymbol *
+Elf::elf_getsym (unsigned int ndx, Elf_Internal_Sym *dst, bool is_dynamic)
+{
+ asymbol *asym;
+
+ if (bfd_dynsym == NULL && bfd_sym == NULL)
+ get_bfd_symbols ();
+
+ if (is_dynamic)
+ if (ndx < bfd_dynsymcnt)
+ asym = bfd_dynsym[ndx];
+ else
+ return NULL;
else
- {
- if (edta->d_size <= ndx * sizeof (Elf64_Sym))
- return NULL;
- Elf64_Sym *hdr = (Elf64_Sym*) bind (edta->d_off + ndx * sizeof (Elf64_Sym),
- sizeof (Elf64_Sym));
- if (hdr == NULL)
- return NULL;
- dst->st_name = decode (hdr->st_name);
- dst->st_value = decode (hdr->st_value);
- dst->st_size = decode (hdr->st_size);
- dst->st_info = decode (hdr->st_info);
- dst->st_other = decode (hdr->st_other);
- dst->st_shndx = decode (hdr->st_shndx);
- }
- return dst;
+ if (ndx < bfd_symcnt)
+ asym = bfd_sym[ndx];
+ else
+ return NULL;
+
+ if (dst != NULL)
+ *dst = ((elf_symbol_type *) asym)->internal_elf_sym;
+
+ return asym;
}
Elf_Internal_Rela *
diff --git a/gprofng/src/Elf.h b/gprofng/src/Elf.h
index 7c32dfe..b324c39 100644
--- a/gprofng/src/Elf.h
+++ b/gprofng/src/Elf.h
@@ -92,7 +92,8 @@ public:
int64_t elf_checksum ();
uint64_t get_baseAddr();
char *elf_strptr (unsigned int sec, uint64_t off);
- Elf_Internal_Sym *elf_getsym (Elf_Data *edta, unsigned int ndx, Elf_Internal_Sym *dst);
+ long elf_getSymCount (bool is_dynamic);
+ asymbol *elf_getsym (unsigned int ndx, Elf_Internal_Sym *dst, bool is_dynamic);
Elf_Internal_Rela *elf_getrel (Elf_Data *edta, unsigned int ndx, Elf_Internal_Rela *dst);
Elf_Internal_Rela *elf_getrela (Elf_Data *edta, unsigned int ndx, Elf_Internal_Rela *dst);
Elf64_Ancillary *elf_getancillary (Elf_Data *edta, unsigned int ndx, Elf64_Ancillary *dst);
diff --git a/gprofng/src/LoadObject.cc b/gprofng/src/LoadObject.cc
index 1ca6ab6..3cdeb9d 100644
--- a/gprofng/src/LoadObject.cc
+++ b/gprofng/src/LoadObject.cc
@@ -20,6 +20,7 @@
#include "config.h"
#include <errno.h>
+#include <libgen.h>
#include "util.h"
#include "StringBuilder.h"
@@ -298,18 +299,21 @@ LoadObject::dump_functions (FILE *out)
if (fitem->alias && fitem->alias != fitem)
fprintf (out, "id %6llu, @0x%llx - %s == alias of '%s'\n",
(ull_t) fitem->id, (ull_t) fitem->img_offset,
- fitem->get_name (), fitem->alias->get_name ());
+ fitem->get_mangled_name (), fitem->alias->get_mangled_name ());
else
{
mname = fitem->module ? fitem->module->file_name : noname->file_name;
sname = fitem->getDefSrcName ();
- fprintf (out,
- "id %6llu, @0x%llx - 0x%llx [save 0x%llx] o-%lld sz-%lld %s (module = %s)",
- (ull_t) fitem->id, (ull_t) fitem->img_offset,
- (ull_t) (fitem->img_offset + fitem->size),
- (ull_t) fitem->save_addr, (ull_t) fitem->img_offset,
- (ll_t) fitem->size, fitem->get_name (), mname);
- if (sname && !streq (sname, mname))
+ fprintf (out, "id %6llu, @0x%llx-0x%llx sz-%lld", (ull_t) fitem->id,
+ (ull_t) fitem->img_offset,
+ (ull_t) (fitem->img_offset + fitem->size),
+ (ll_t) fitem->size);
+ if (fitem->save_addr != 0)
+ fprintf (out, " [save 0x%llx]", (ull_t) fitem->save_addr);
+ if (strcmp (fitem->get_mangled_name (), fitem->get_name ()) != 0)
+ fprintf (out, " [%s]", fitem->get_mangled_name ());
+ fprintf (out, " %s (module = %s)", fitem->get_name (), mname);
+ if (sname && strcmp (basename (sname), basename (mname)) != 0)
fprintf (out, " (Source = %s)", sname);
fprintf (out, "\n");
}
diff --git a/gprofng/src/Makefile.am b/gprofng/src/Makefile.am
index a132a9d..f6d3f5d 100644
--- a/gprofng/src/Makefile.am
+++ b/gprofng/src/Makefile.am
@@ -78,6 +78,7 @@ CCSOURCES = \
Stabs.cc \
Stats_data.cc \
StringBuilder.cc \
+ Symbol.cc \
Table.cc \
QLParser.tab.cc \
dbe_collctrl.cc \
@@ -179,10 +180,8 @@ $(srcdir)/DbeSession.cc: QLParser.tab.hh
.PHONY: install-exec-local
install-exec-local:
$(mkinstalldirs) $(DESTDIR)$(bindir)
- rm -f $(DESTDIR)$(bindir)/gp-{archive,collect-app,display-html,display-src,display-text}
- ln -s gprofng-archive $(DESTDIR)$(bindir)/gp-archive
- ln -s gprofng-collect-app $(DESTDIR)$(bindir)/gp-collect-app
- ln -s gprofng-display-html $(DESTDIR)$(bindir)/gp-display-html
- ln -s gprofng-display-src $(DESTDIR)$(bindir)/gp-display-src
- ln -s gprofng-display-text $(DESTDIR)$(bindir)/gp-display-text
-
+ for i in gp-{archive,collect-app,display-html,display-src,display-text}; do \
+ oldname=`echo $$i | sed '$(transform)'`; \
+ rm -f $(DESTDIR)$(bindir)/$$oldname ; \
+ ln -s `echo $$oldname | sed 's&gp-&gprofng-&'` $(DESTDIR)$(bindir)/$$oldname; \
+ done
diff --git a/gprofng/src/Makefile.in b/gprofng/src/Makefile.in
index d0dec12..0cdd444 100644
--- a/gprofng/src/Makefile.in
+++ b/gprofng/src/Makefile.in
@@ -174,7 +174,7 @@ am__objects_1 = Application.lo BaseMetric.lo BaseMetricTreeNode.lo \
MemorySpace.lo Metric.lo MetricList.lo Module.lo Ovw_data.lo \
PRBTree.lo PathTree.lo PreviewExp.lo Print.lo \
SAXParserFactory.lo Sample.lo Settings.lo SourceFile.lo \
- Stabs.lo Stats_data.lo StringBuilder.lo Table.lo \
+ Stabs.lo Stats_data.lo StringBuilder.lo Symbol.lo Table.lo \
QLParser.tab.lo dbe_collctrl.lo i18n.lo parse.lo UserLabel.lo \
util.lo Dbe.lo
am__objects_2 = dbe_hwcdrv.lo dbe_hwcfuncs.lo dbe_hwctable.lo \
@@ -505,6 +505,7 @@ CCSOURCES = \
Stabs.cc \
Stats_data.cc \
StringBuilder.cc \
+ Symbol.cc \
Table.cc \
QLParser.tab.cc \
dbe_collctrl.cc \
@@ -777,6 +778,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Stabs.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Stats_data.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/StringBuilder.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Symbol.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Table.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/UserLabel.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/checks.Po@am__quote@
@@ -1119,12 +1121,11 @@ $(srcdir)/DbeSession.cc: QLParser.tab.hh
.PHONY: install-exec-local
install-exec-local:
$(mkinstalldirs) $(DESTDIR)$(bindir)
- rm -f $(DESTDIR)$(bindir)/gp-{archive,collect-app,display-html,display-src,display-text}
- ln -s gprofng-archive $(DESTDIR)$(bindir)/gp-archive
- ln -s gprofng-collect-app $(DESTDIR)$(bindir)/gp-collect-app
- ln -s gprofng-display-html $(DESTDIR)$(bindir)/gp-display-html
- ln -s gprofng-display-src $(DESTDIR)$(bindir)/gp-display-src
- ln -s gprofng-display-text $(DESTDIR)$(bindir)/gp-display-text
+ for i in gp-{archive,collect-app,display-html,display-src,display-text}; do \
+ oldname=`echo $$i | sed '$(transform)'`; \
+ rm -f $(DESTDIR)$(bindir)/$$oldname ; \
+ ln -s `echo $$oldname | sed 's&gp-&gprofng-&'` $(DESTDIR)$(bindir)/$$oldname; \
+ done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gprofng/src/Stabs.cc b/gprofng/src/Stabs.cc
index 2120319..c6d6473 100644
--- a/gprofng/src/Stabs.cc
+++ b/gprofng/src/Stabs.cc
@@ -35,10 +35,7 @@
#include "StringBuilder.h"
#include "DbeFile.h"
#include "StringMap.h"
-
-#define DISASM_REL_NONE 0 /* symtab search only */
-#define DISASM_REL_ONLY 1 /* relocation search only */
-#define DISASM_REL_TARG 2 /* relocatoin then symtab */
+#include "Symbol.h"
///////////////////////////////////////////////////////////////////////////////
// class StabReader
@@ -62,105 +59,6 @@ private:
int StabEntSize;
};
-///////////////////////////////////////////////////////////////////////////////
-// class Symbol
-
-class Symbol
-{
-public:
- Symbol (Vector<Symbol*> *vec = NULL);
-
- ~Symbol ()
- {
- free (name);
- }
-
- inline Symbol *
- cardinal ()
- {
- return alias ? alias : this;
- }
-
- static void dump (Vector<Symbol*> *vec, char*msg);
-
- Function *func;
- Sp_lang_code lang_code;
- uint64_t value; // st_value used in sym_name()
- uint64_t save;
- int64_t size;
- uint64_t img_offset; // image offset in the ELF file
- char *name;
- Symbol *alias;
- int local_ind;
- int flags;
- bool defined;
-};
-
-Symbol::Symbol (Vector<Symbol*> *vec)
-{
- func = NULL;
- lang_code = Sp_lang_unknown;
- value = 0;
- save = 0;
- size = 0;
- img_offset = 0;
- name = NULL;
- alias = NULL;
- local_ind = -1;
- flags = 0;
- defined = false;
- if (vec)
- vec->append (this);
-}
-
-void
-Symbol::dump (Vector<Symbol*> *vec, char*msg)
-{
- if (!DUMP_ELF_SYM || vec == NULL || vec->size () == 0)
- return;
- printf (NTXT ("======= Symbol::dump: %s =========\n"
- " value | img_offset | flags|local_ind|\n"), msg);
- for (int i = 0; i < vec->size (); i++)
- {
- Symbol *sp = vec->fetch (i);
- printf (NTXT (" %3d %8lld |0x%016llx |%5d |%8d |%s\n"),
- i, (long long) sp->value, (long long) sp->img_offset, sp->flags,
- sp->local_ind, sp->name ? sp->name : NTXT ("NULL"));
- }
- printf (NTXT ("\n===== END of Symbol::dump: %s =========\n\n"), msg);
-}
-
-// end of class Symbol
-///////////////////////////////////////////////////////////////////////////////
-
-///////////////////////////////////////////////////////////////////////////////
-// class Reloc
-class Reloc
-{
-public:
- Reloc ();
- ~Reloc ();
- uint64_t type;
- uint64_t value;
- uint64_t addend;
- char *name;
-};
-
-Reloc::Reloc ()
-{
- type = 0;
- value = 0;
- addend = 0;
- name = NULL;
-}
-
-Reloc::~Reloc ()
-{
- free (name);
-}
-// end of class Reloc
-///////////////////////////////////////////////////////////////////////////////
-
enum
{
SYM_PLT = 1 << 0,
@@ -232,13 +130,37 @@ SymImgOffsetCmp (const void *a, const void *b)
(item1->img_offset == item2->img_offset) ? SymNameCmp (a, b) : -1;
}
-static int
-RelValueCmp (const void *a, const void *b)
+/* Remove all duplicate symbols which can be in SymLst. The
+ duplication is due to processing of both static and dynamic
+ symbols. This function is called before computing symbol
+ aliases. */
+
+void
+Stabs::removeDupSyms ()
{
- Reloc *item1 = *((Reloc **) a);
- Reloc *item2 = *((Reloc **) b);
- return (item1->value > item2->value) ? 1 :
- (item1->value == item2->value) ? 0 : -1;
+ long ind, i, last;
+ Symbol *symA, *symB;
+ SymLst->sort (SymImgOffsetCmp);
+
+ last = 0;
+ ind = SymLst->size ();
+ for (i = 0; i < ind; i++)
+ {
+ symA = SymLst->fetch (i);
+ if (symA->img_offset == 0) // Ignore this bad symbol
+ continue;
+
+ SymLst->put (last++, symA);
+ for (long k = i + 1; k < ind; k++, i++)
+ {
+ symB = SymLst->fetch (k);
+ if (symA->img_offset != symB->img_offset)
+ break;
+ if (strcmp (symA->name, symB->name) != 0)
+ break;
+ }
+ }
+ SymLst->truncate (last);
}
Stabs *
@@ -260,8 +182,6 @@ Stabs::Stabs (char *_path, char *_lo_name)
SymLstByName = NULL;
pltSym = NULL;
SymLst = new Vector<Symbol*>;
- RelLst = new Vector<Reloc*>;
- RelPLTLst = new Vector<Reloc*>;
LocalLst = new Vector<Symbol*>;
LocalFile = new Vector<char*>;
LocalFileIdx = new Vector<int>;
@@ -272,7 +192,7 @@ Stabs::Stabs (char *_path, char *_lo_name)
stabsModules = NULL;
textsz = 0;
wsize = Wnone;
- st_check_symtab = st_check_relocs = false;
+ st_check_symtab = false;
status = DBGD_ERR_NONE;
if (openElf (false) == NULL)
@@ -307,8 +227,6 @@ Stabs::~Stabs ()
{
delete SymLstByName;
Destroy (SymLst);
- Destroy (RelLst);
- Destroy (RelPLTLst);
Destroy (LocalFile);
delete elfDis;
delete dwarf;
@@ -412,7 +330,6 @@ Stabs::read_symbols (Vector<Function*> *functions)
if (openElf (true) == NULL)
return false;
check_Symtab ();
- check_Relocs ();
if (functions)
{
Function *fp;
@@ -425,42 +342,6 @@ Stabs::read_symbols (Vector<Function*> *functions)
return true;
}
-char *
-Stabs::sym_name (uint64_t target, uint64_t instr, int flag)
-{
- long index;
- if (flag == DISASM_REL_ONLY || flag == DISASM_REL_TARG)
- {
- Reloc *relptr = new Reloc;
- relptr->value = instr;
- index = RelLst->bisearch (0, -1, &relptr, RelValueCmp);
- if (index >= 0)
- {
- delete relptr;
- return RelLst->fetch (index)->name;
- }
- if (!is_relocatable ())
- {
- relptr->value = target;
- index = RelPLTLst->bisearch (0, -1, &relptr, RelValueCmp);
- if (index >= 0)
- {
- delete relptr;
- return RelPLTLst->fetch (index)->name;
- }
- }
- delete relptr;
- }
- if (flag == DISASM_REL_NONE || flag == DISASM_REL_TARG || !is_relocatable ())
- {
- Symbol *sptr;
- sptr = map_PC_to_sym (target);
- if (sptr && sptr->value == target)
- return sptr->name;
- }
- return NULL;
-}
-
Symbol *
Stabs::map_PC_to_sym (uint64_t pc)
{
@@ -1673,7 +1554,8 @@ Stabs::fixSymtabAlias ()
for (; i < k; i++)
{
sym = SymLst->fetch (i);
- sym->alias = bestAlias;
+ if (sym != bestAlias)
+ sym->alias = bestAlias;
sym->size = maxSize;
}
i--;
@@ -1703,47 +1585,37 @@ Stabs::check_Symtab ()
pltSym->flags |= SYM_PLT;
}
}
- if (elf->symtab)
- readSymSec (elf->symtab, elf);
- else
- {
- readSymSec (elf->SUNW_ldynsym, elf);
- readSymSec (elf->dynsym, elf);
- }
+
+ // Read first static symbols
+ readSymSec (elf, false);
+
+ // Read dynamic symbols
+ readSymSec (elf, true);
}
void
-Stabs::readSymSec (unsigned int sec, Elf *elf)
+Stabs::readSymSec (Elf *elf, bool is_dynamic)
{
Symbol *sitem;
Sp_lang_code local_lcode;
- if (sec == 0)
- return;
- // Get ELF data
- Elf_Data *data = elf->elf_getdata (sec);
- if (data == NULL)
- return;
- uint64_t SymtabSize = data->d_size;
- Elf_Internal_Shdr *shdr = elf->get_shdr (sec);
-
- if ((SymtabSize == 0) || (shdr->sh_entsize == 0))
- return;
- Elf_Data *data_str = elf->elf_getdata (shdr->sh_link);
- if (data_str == NULL)
- return;
- char *Strtab = (char *) data_str->d_buf;
+ unsigned int tot = elf->elf_getSymCount (is_dynamic);
// read func symbolic table
- for (unsigned int n = 0, tot = SymtabSize / shdr->sh_entsize; n < tot; n++)
+ for (unsigned int n = 0; n < tot; n++)
{
Elf_Internal_Sym Sym;
- elf->elf_getsym (data, n, &Sym);
- const char *st_name = Sym.st_name < data_str->d_size ?
- (Strtab + Sym.st_name) : NTXT ("no_name");
+ asymbol *asym;
+ asym = elf->elf_getsym (n, &Sym, is_dynamic);
+ // TBD: convert this check to an assert
+ if (asym == NULL)
+ break;
+ const char *st_name = bfd_asymbol_name (asym);
+ if (st_name == NULL)
+ continue;
switch (GELF_ST_TYPE (Sym.st_info))
{
case STT_FUNC:
- if (Sym.st_size == 0)
+ if (Sym.st_size == 0 || ELF_ST_BIND (Sym.st_info) == STB_WEAK)
break;
if (Sym.st_shndx == 0)
{
@@ -1814,147 +1686,11 @@ Stabs::readSymSec (unsigned int sec, Elf *elf)
}
}
}
+ removeDupSyms ();
fixSymtabAlias ();
SymLst->sort (SymValueCmp);
get_save_addr (elf->need_swap_endian);
- dump ();
-}//check_Symtab
-
-void
-Stabs::check_Relocs ()
-{
- // We may have many relocation tables to process: .rela.text%foo,
- // rela.text%bar, etc. On Intel, compilers generate .rel.text sections
- // which have to be processed as well. A lot of rework is needed here.
- Symbol *sptr = NULL;
- if (st_check_relocs)
- return;
- st_check_relocs = true;
-
- Elf *elf = openElf (false);
- if (elf == NULL)
- return;
- for (unsigned int sec = 1; sec < elf->elf_getehdr ()->e_shnum; sec++)
- {
- bool use_rela, use_PLT;
- char *name = elf->get_sec_name (sec);
- if (name == NULL)
- continue;
- if (strncmp (name, NTXT (".rela.text"), 10) == 0)
- {
- use_rela = true;
- use_PLT = false;
- }
- else if (streq (name, NTXT (".rela.plt")))
- {
- use_rela = true;
- use_PLT = true;
- }
- else if (strncmp (name, NTXT (".rel.text"), 9) == 0)
- {
- use_rela = false;
- use_PLT = false;
- }
- else if (streq (name, NTXT (".rel.plt")))
- {
- use_rela = false;
- use_PLT = true;
- }
- else
- continue;
-
- Elf_Internal_Shdr *shdr = elf->get_shdr (sec);
- if (shdr == NULL)
- continue;
-
- // Get ELF data
- Elf_Data *data = elf->elf_getdata (sec);
- if (data == NULL)
- continue;
- uint64_t ScnSize = data->d_size;
- uint64_t EntSize = shdr->sh_entsize;
- if ((ScnSize == 0) || (EntSize == 0))
- continue;
- int tot = (int) (ScnSize / EntSize);
-
- // Get corresponding text section
- Elf_Internal_Shdr *shdr_txt = elf->get_shdr (shdr->sh_info);
- if (shdr_txt == NULL)
- continue;
- if (!(shdr_txt->sh_flags & SHF_EXECINSTR))
- continue;
-
- // Get corresponding symbol table section
- Elf_Internal_Shdr *shdr_sym = elf->get_shdr (shdr->sh_link);
- if (shdr_sym == NULL)
- continue;
- Elf_Data *data_sym = elf->elf_getdata (shdr->sh_link);
-
- // Get corresponding string table section
- Elf_Data *data_str = elf->elf_getdata (shdr_sym->sh_link);
- if (data_str == NULL)
- continue;
- char *Strtab = (char*) data_str->d_buf;
- for (int n = 0; n < tot; n++)
- {
- Elf_Internal_Sym sym;
- Elf_Internal_Rela rela;
- char *symName;
- if (use_rela)
- elf->elf_getrela (data, n, &rela);
- else
- {
- // GElf_Rela is extended GElf_Rel
- elf->elf_getrel (data, n, &rela);
- rela.r_addend = 0;
- }
-
- int ndx = (int) GELF_R_SYM (rela.r_info);
- elf->elf_getsym (data_sym, ndx, &sym);
- switch (GELF_ST_TYPE (sym.st_info))
- {
- case STT_FUNC:
- case STT_OBJECT:
- case STT_NOTYPE:
- if (sym.st_name == 0 || sym.st_name >= data_str->d_size)
- continue;
- symName = Strtab + sym.st_name;
- break;
- case STT_SECTION:
- {
- Elf_Internal_Shdr *secHdr = elf->get_shdr (sym.st_shndx);
- if (secHdr == NULL)
- continue;
- if (sptr == NULL)
- sptr = new Symbol;
- sptr->value = secHdr->sh_offset + rela.r_addend;
- long index = SymLst->bisearch (0, -1, &sptr, SymFindCmp);
- if (index == -1)
- continue;
- Symbol *sp = SymLst->fetch (index);
- if (sptr->value != sp->value)
- continue;
- symName = sp->name;
- break;
- }
- default:
- continue;
- }
- Reloc *reloc = new Reloc;
- reloc->name = dbe_strdup (symName);
- reloc->type = GELF_R_TYPE (rela.r_info);
- reloc->value = use_PLT ? rela.r_offset
- : rela.r_offset + shdr_txt->sh_offset;
- reloc->addend = rela.r_addend;
- if (use_PLT)
- RelPLTLst->append (reloc);
- else
- RelLst->append (reloc);
- }
- }
- delete sptr;
- RelLst->sort (RelValueCmp);
-} //check_Relocs
+}
void
Stabs::get_save_addr (bool need_swap_endian)
@@ -2453,6 +2189,7 @@ Stabs::openDwarf ()
{
dwarf = new Dwarf (this);
check_Symtab ();
+ dump();
}
return dwarf;
}
@@ -2477,8 +2214,8 @@ Stabs::dump ()
printf (" %3d: %5d '%s'\n", i, LocalFileIdx->fetch (i),
LocalFile->fetch (i));
}
- Symbol::dump (SymLst, NTXT ("SymLst"));
- Symbol::dump (LocalLst, NTXT ("LocalLst"));
+ SymLst->dump ("SymLst");
+ LocalLst->dump ("LocalLst");
printf (NTXT ("\n===== END of Stabs::dump: %s =========\n\n"),
path ? path : NTXT ("NULL"));
}
diff --git a/gprofng/src/Stabs.h b/gprofng/src/Stabs.h
index 42aa6fb..c8da278 100644
--- a/gprofng/src/Stabs.h
+++ b/gprofng/src/Stabs.h
@@ -40,7 +40,6 @@ class ComC;
class Elf;
class Dwarf;
class Symbol;
-class Reloc;
struct cpf_stabs_t;
class SourceFile;
template <typename Key_t, typename Value_t> class Map;
@@ -86,12 +85,12 @@ class Stabs {
Platform_t get_platform() { return platform; }
WSize_t get_class() { return wsize;}
Stab_status get_status() { return status;}
+ Vector<Symbol *> *get_symbols() { return SymLst; }
Stab_status read_stabs(ino64_t srcInode, Module *module, Vector<ComC*> *comComs, bool readDwarf = false);
Stab_status read_archive(LoadObject *lo);
bool read_symbols(Vector<Function*> *functions);
uint64_t mapOffsetToAddress(uint64_t img_offset);
- char *sym_name(uint64_t target, uint64_t instr, int flag);
Elf *openElf (bool dbg_info = false);
void read_hwcprof_info(Module *module);
void dump();
@@ -129,15 +128,12 @@ class Stabs {
// Interface with Elf Symbol Table
void check_Symtab();
- void readSymSec(unsigned int sec, Elf *elf);
- void check_Relocs();
+ void readSymSec (Elf *elf, bool is_dynamic);
void get_save_addr(bool need_swap_endian);
Symbol *map_PC_to_sym(uint64_t pc);
Symbol *pltSym;
Vector<Symbol*> *SymLst; // list of func symbols
Vector<Symbol*> *SymLstByName; // list of func symbols sorted by Name
- Vector<Reloc*> *RelLst; // list of text relocations
- Vector<Reloc*> *RelPLTLst; // list of PLT relocations
Vector<Symbol*> *LocalLst; // list of local func symbols
Vector<char*> *LocalFile; // list of local files
Vector<int> *LocalFileIdx; // start index in LocalLst
@@ -146,9 +142,10 @@ class Stabs {
Map<const char*, Symbol*> *get_elf_symbols();
Dwarf *dwarf;
- bool st_check_symtab, st_check_relocs;
+ bool st_check_symtab;
Function *createFunction(LoadObject *lo, Module *module, Symbol *sym);
void fixSymtabAlias();
+ void removeDupSyms ();
// Interface with dwarf
Dwarf *openDwarf();
diff --git a/gprofng/src/Symbol.cc b/gprofng/src/Symbol.cc
new file mode 100644
index 0000000..8cc578f
--- /dev/null
+++ b/gprofng/src/Symbol.cc
@@ -0,0 +1,218 @@
+/* Copyright (C) 2025 Free Software Foundation, Inc.
+ Contributed by Oracle.
+
+ This file is part of GNU Binutils.
+
+ This program is free software; you can redistribute it and/or modify
+ it 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.
+
+ 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, 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#include "config.h"
+
+#include "DbeSession.h"
+#include "Function.h"
+#include "LoadObject.h"
+#include "Module.h"
+#include "Symbol.h"
+
+
+template<> void Vector<Symbol *>::dump (const char *msg)
+{
+ if (msg == NULL)
+ msg = "#";
+ Dprintf (1, NTXT ("\n%s Vector<Symbol *> [%lld]\n"), msg, (long long) size ());
+ if (size () > 0)
+ Dprintf (1, " value | img_offset | size | flags|local_ind|\n");
+ for (long i = 0, sz = size (); i < sz; i++)
+ {
+ Symbol *sp = get (i);
+ Dprintf (1, " %3ld ", i);
+ sp->dump ();
+ }
+ if (size () > 0)
+ Dprintf (1, "===== END of Symbol::dump: %s =========\n\n", msg);
+}
+
+void
+Symbol::dump (const char *msg)
+{
+ if (msg)
+ Dprintf (1, "%s\n", msg);
+ Dprintf (1, "%8lld |%11lld |%6d |%5d |%8d |%s\n", (long long) value,
+ (long long) img_offset, (int) size, flags, local_ind,
+ name ? name : "NULL");
+}
+
+Symbol::Symbol (Vector<Symbol*> *vec)
+{
+ func = NULL;
+ lang_code = Sp_lang_unknown;
+ value = 0;
+ save = 0;
+ size = 0;
+ img_offset = 0;
+ name = NULL;
+ alias = NULL;
+ local_ind = -1;
+ flags = 0;
+ defined = false;
+ if (vec)
+ vec->append (this);
+}
+
+Symbol::~Symbol ()
+{
+ free (name);
+}
+
+static int
+cmpSym (const void *a, const void *b)
+{
+ Symbol *item1 = *((Symbol **) a);
+ Symbol *item2 = *((Symbol **) b);
+ return (item1->value > item2->value) ? 1 :
+ (item1->value == item2->value) ? 0 : -1;
+}
+
+static int
+cmpSymName (const void *a, const void *b)
+{
+ Symbol *item1 = *((Symbol **) a);
+ Symbol *item2 = *((Symbol **) b);
+ return strcmp (item1->name, item2->name);
+}
+
+Symbol *
+Symbol::get_symbol (Vector<Symbol*> *syms, uint64_t pc)
+{
+ if (syms != NULL && pc != 0)
+ {
+ Symbol *sp = new Symbol;
+ sp->value = pc;
+ long i = syms->bisearch (0, -1, &sp, cmpSym);
+ delete sp;
+ if (i != -1)
+ return syms->get (i)->cardinal ();
+ }
+ return NULL;
+}
+
+Symbol *
+Symbol::get_symbol (Vector<Symbol*> *syms, char *linker_name)
+{
+ if (syms != NULL && linker_name != NULL)
+ {
+ Symbol *sp = new Symbol;
+ sp->name = linker_name;
+ long i = syms->bisearch (0, -1, &sp, cmpSymName);
+ sp->name = NULL;
+ delete sp;
+ if (i != -1)
+ return syms->get (i)->cardinal ();
+ }
+ return NULL;
+}
+
+Vector<Symbol *> *
+Symbol::sort_by_name (Vector<Symbol *> *syms)
+{
+ if (VecSize (syms) == 0)
+ return NULL;
+ Vector<Symbol *> *symbols = syms->copy ();
+ symbols->sort (cmpSymName);
+ return symbols;
+}
+
+Vector<Symbol *> *
+Symbol::find_symbols (Vector<Symbol*> *syms, Vector<Range *> *ranges,
+ Vector<Symbol *> *symbols)
+{
+ // 'syms' and 'ranges' must already be sorted.
+ // return symbols matched by 'ranges'
+ if (VecSize (syms) == 0 || VecSize (ranges) == 0)
+ return NULL;
+
+ // Use binary search to find a suitable index in 'syms'
+ int ind = 0;
+ uint64_t addr = ranges->get (0)->low;
+ for (int lo = 0, hi = syms->size (); lo < hi;)
+ {
+ int mid = (hi + lo) >> 1;
+ Symbol *sym = syms->get (mid);
+ if (sym->value == addr)
+ {
+ ind = mid;
+ break;
+ }
+ else if (sym->value > addr)
+ hi = mid - 1;
+ else
+ {
+ ind = mid;
+ lo = mid + 1;
+ }
+ }
+
+ for (int i = 0, r_sz = ranges->size (), sz = syms->size (); ind < sz; ind++)
+ {
+ Symbol *sym = syms->get (ind);
+ while (i < r_sz)
+ {
+ Range *r = ranges->get (i);
+ if (sym->value < r->low)
+ break;
+ if (sym->value <= r->high)
+ {
+ symbols->append (sym);
+ break;
+ }
+ i++;
+ }
+ if (i >= r_sz)
+ break;
+ }
+ return symbols;
+}
+
+/* Create and append a new function to the 'module'.
+ * Copy attributes (size, name, etc) from Simbol, */
+Function *
+Symbol::createFunction (Module *module)
+{
+ if (func)
+ return func;
+ func = dbeSession->createFunction ();
+ func->img_fname = module->file_name;
+ func->img_offset = img_offset;
+ func->save_addr = save;
+ func->size = size;
+ func->module = module;
+ func->set_name (name);
+ module->functions->append (func);
+ module->loadobject->functions->append (func);
+ return func;
+}
+
+template<> void Vector<Range *>::dump (const char *msg)
+{
+ Dprintf (1, NTXT ("%s Vector<Range *> [%lld]\n"),
+ msg ? msg : "#", (long long) size ());
+ for (long i = 0, sz = size (); i < sz; i++)
+ {
+ Range *p = get (i);
+ Dprintf (1, "%3ld 0x%08llx 0x%08llx (%lld - %lld)\n", i,
+ (long long) p->low, (long long) p->high,
+ (long long) p->low, (long long) p->high);
+ }
+} \ No newline at end of file
diff --git a/gprofng/src/Symbol.h b/gprofng/src/Symbol.h
new file mode 100644
index 0000000..e9e0060
--- /dev/null
+++ b/gprofng/src/Symbol.h
@@ -0,0 +1,84 @@
+/* Copyright (C) 2025 Free Software Foundation, Inc.
+ Contributed by Oracle.
+
+ This file is part of GNU Binutils.
+
+ This program is free software; you can redistribute it and/or modify
+ it 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.
+
+ 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, 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+#ifndef _Symbol_h_
+#define _Symbol_h_
+
+class Function;
+class Module;
+
+class Range
+{
+public:
+ Range (uint64_t _low, uint64_t _high)
+ {
+ low = _low;
+ high = _high;
+ }
+
+ inline bool
+ inside (uint64_t val)
+ {
+ return val >= low && val < high;
+ };
+
+ uint64_t low;
+ uint64_t high;
+};
+
+class Symbol
+{
+public:
+ Symbol (Vector<Symbol *> *vec = NULL);
+ ~Symbol ();
+
+ Symbol *
+ cardinal ()
+ {
+ return alias ? alias : this;
+ }
+
+ // Find symbols in 'syms' matched by 'ranges'.
+ static Vector<Symbol *> *find_symbols (Vector<Symbol *> *syms,
+ Vector<Range *> *ranges, Vector<Symbol *> *symbols = NULL);
+ static Vector<Symbol *> *sort_by_name (Vector<Symbol *> *syms);
+
+ // Find symbol in CU corresponding to pc or linker_name.
+ static Symbol *get_symbol (Vector<Symbol *> *syms, uint64_t pc);
+ static Symbol *get_symbol (Vector<Symbol *> *syms, char *linker_name);
+
+ // Create and append a new function to the 'module'.
+ // Copy attributes (size, name, etc) from Symbol,
+ Function *createFunction(Module *module);
+ void dump (const char *msg = NULL);
+
+ Function *func;
+ Sp_lang_code lang_code;
+ uint64_t value;
+ uint64_t save;
+ int64_t size;
+ uint64_t img_offset; // image offset in the ELF file
+ char *name;
+ Symbol *alias;
+ int local_ind;
+ int flags;
+ bool defined;
+};
+#endif
diff --git a/gprofng/src/collect.h b/gprofng/src/collect.h
index 18ab564..3ce6b28 100644
--- a/gprofng/src/collect.h
+++ b/gprofng/src/collect.h
@@ -32,7 +32,6 @@ class Coll_Ctrl;
class Elf;
#define MAXLABELS 10 /* maximum number of -C arguments */
-#define STDEBUFSIZE 24000
enum { MAX_LD_PRELOAD_TYPES = 3 };
diff --git a/gprofng/src/envsets.cc b/gprofng/src/envsets.cc
index 30803aa..e92c017 100644
--- a/gprofng/src/envsets.cc
+++ b/gprofng/src/envsets.cc
@@ -31,16 +31,6 @@
#include "StringBuilder.h"
#include "Settings.h"
-#define STDEBUFSIZE 24000
-
-#define LIBGP_COLLECTOR "libgp-collector.so"
-#define GPROFNG_PRELOAD_LIBDIRS "GPROFNG_PRELOAD_LIBDIRS"
-#define SP_COLLECTOR_EXPNAME "SP_COLLECTOR_EXPNAME"
-#define SP_COLLECTOR_FOLLOW_SPEC "SP_COLLECTOR_FOLLOW_SPEC"
-#define SP_COLLECTOR_PARAMS "SP_COLLECTOR_PARAMS"
-#define SP_COLLECTOR_FOUNDER "SP_COLLECTOR_FOUNDER"
-#define SP_COLLECTOR_ORIGIN_COLLECT "SP_COLLECTOR_ORIGIN_COLLECT"
-
static const char *LD_AUDIT[] = {
// "LD_AUDIT", Do not set LD_AUDIT on Linux
NULL
diff --git a/gprofng/src/gp-archive.cc b/gprofng/src/gp-archive.cc
index 4e68336..ee9f917 100644
--- a/gprofng/src/gp-archive.cc
+++ b/gprofng/src/gp-archive.cc
@@ -140,7 +140,8 @@ er_archive::usage ()
"See also:\n"
"\n"
"gprofng(1), gprofng-collect-app(1), gprofng-display-html(1), "
- "gprofng-display-src(1), gprofng-display-text(1)\n"));
+ "gprofng-display-src(1), gprofng-display-text(1)\n"
+ "\nReport bugs to <https://sourceware.org/bugzilla/>\n"));
exit (1);
}
diff --git a/gprofng/src/gp-collect-app.cc b/gprofng/src/gp-collect-app.cc
index bf146d9..695c4af 100644
--- a/gprofng/src/gp-collect-app.cc
+++ b/gprofng/src/gp-collect-app.cc
@@ -44,8 +44,6 @@
#include "collect.h"
#include "StringBuilder.h"
-#define SP_COLLECTOR_FOUNDER "SP_COLLECTOR_FOUNDER"
-
extern char **environ;
static volatile int interrupt = 0;
@@ -1481,7 +1479,8 @@ collect::usage ()
"See also:\n"
"\n"
"gprofng(1), gprofng-archive(1), gprofng-display-html(1), "
- "gpgprofng-display-src(1), gprofng-display-text(1)\n"));
+ "gpgprofng-display-src(1), gprofng-display-text(1)\n"
+ "\nReport bugs to <https://sourceware.org/bugzilla/>\n"));
}
void
diff --git a/gprofng/src/gp-display-src.cc b/gprofng/src/gp-display-src.cc
index 7eb6b33..5475f27 100644
--- a/gprofng/src/gp-display-src.cc
+++ b/gprofng/src/gp-display-src.cc
@@ -172,7 +172,8 @@ er_src::usage ()
"See also:\n"
"\n"
"gprofng(1), gprofng-archive(1), gprofng-collect-app(1), "
- "gprofng-display-html(1), gprofng-display-text(1)\n"));
+ "gprofng-display-html(1), gprofng-display-text(1)\n"
+ "\nReport bugs to <https://sourceware.org/bugzilla/>\n"));
/*
printf (GTXT ("Usage: %s [OPTION] a.out/.so/.o/.class\n\n"), whoami);
printf (GTXT (" -func List all the functions from the given object\n"
diff --git a/gprofng/src/gp-display-text.cc b/gprofng/src/gp-display-text.cc
index 4fcd639..32bda49 100644
--- a/gprofng/src/gp-display-text.cc
+++ b/gprofng/src/gp-display-text.cc
@@ -254,7 +254,8 @@ er_print::usage ()
"See also:\n"
"\n"
"gprofng(1), gprofng-archive(1), gprofng-collect-app(1), "
- "gprofng-display-html(1), gprofng-display-src(1)\n"));
+ "gprofng-display-html(1), gprofng-display-src(1)\n"
+ "\nReport bugs to <https://sourceware.org/bugzilla/>\n"));
}
int // returns count of experiments read
diff --git a/gprofng/src/gprofng.cc b/gprofng/src/gprofng.cc
index 99f904a..4364d97 100644
--- a/gprofng/src/gprofng.cc
+++ b/gprofng/src/gprofng.cc
@@ -155,7 +155,8 @@ Gprofng::usage ()
"See also:\n"
"\n"
"gprofng-archive(1), gprofng-collect-app(1), gprofng-display-html(1), "
- "gprofng-display-src(1), gprofng-display-text(1)\n"));
+ "gprofng-display-src(1), gprofng-display-text(1)\n"
+ "\nReport bugs to <https://sourceware.org/bugzilla/>\n"));
/*
printf ( GTXT (
diff --git a/gprofng/src/ipcio.cc b/gprofng/src/ipcio.cc
index 36d2ba5..2890c6a 100644
--- a/gprofng/src/ipcio.cc
+++ b/gprofng/src/ipcio.cc
@@ -23,10 +23,7 @@
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
-#include <iostream>
-#include <iomanip>
-#include <sstream>
-#include <queue>
+
#include "vec.h"
#include "util.h"
#include "ipcio.h"
diff --git a/gprofng/src/vec.h b/gprofng/src/vec.h
index 04cce4e..a768a02 100644
--- a/gprofng/src/vec.h
+++ b/gprofng/src/vec.h
@@ -112,6 +112,13 @@ public:
return data[index];
}
+ void
+ truncate (long ncount)
+ {
+ if (count > ncount && ncount >= 0)
+ count = ncount;
+ }
+
// Return the first index in "this" that equals "item".
// Return -1 if "item" is not found.
long find (const ITEM item);
diff --git a/include/bfdlink.h b/include/bfdlink.h
index ae45107..3d4d71b 100644
--- a/include/bfdlink.h
+++ b/include/bfdlink.h
@@ -877,6 +877,9 @@ struct bfd_link_callbacks
(struct bfd_link_info *, struct bfd_link_hash_entry *h,
struct bfd_link_hash_entry *inh,
bfd *abfd, asection *section, bfd_vma address, flagword flags);
+ /* Fatal error. */
+ void (*fatal)
+ (const char *fmt, ...) ATTRIBUTE_NORETURN;
/* Error or warning link info message. */
void (*einfo)
(const char *fmt, ...);
diff --git a/include/bout.h b/include/bout.h
deleted file mode 100644
index 01b2c23..0000000
--- a/include/bout.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/* This file is a modified version of 'a.out.h'. It is to be used in all
- GNU tools modified to support the i80960 (or tools that operate on
- object files created by such tools).
-
- Copyright (C) 2001-2025 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 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. */
-
-/* All i80960 development is done in a CROSS-DEVELOPMENT environment. I.e.,
- object code is generated on, and executed under the direction of a symbolic
- debugger running on, a host system. We do not want to be subject to the
- vagaries of which host it is or whether it supports COFF or a.out format,
- or anything else. We DO want to:
-
- o always generate the same format object files, regardless of host.
-
- o have an 'a.out' header that we can modify for our own purposes
- (the 80960 is typically an embedded processor and may require
- enhanced linker support that the normal a.out.h header can't
- accommodate).
-
- As for byte-ordering, the following rules apply:
-
- o Text and data that is actually downloaded to the target is always
- in i80960 (little-endian) order.
-
- o All other numbers (in the header, symbols, relocation directives)
- are in host byte-order: object files CANNOT be lifted from a
- little-end host and used on a big-endian (or vice versa) without
- modification.
- ==> THIS IS NO LONGER TRUE USING BFD. WE CAN GENERATE ANY BYTE ORDER
- FOR THE HEADER, AND READ ANY BYTE ORDER. PREFERENCE WOULD BE TO
- USE LITTLE-ENDIAN BYTE ORDER THROUGHOUT, REGARDLESS OF HOST. <==
-
- o The downloader ('comm960') takes care to generate a pseudo-header
- with correct (i80960) byte-ordering before shipping text and data
- off to the NINDY monitor in the target systems. Symbols and
- relocation info are never sent to the target. */
-
-#define BMAGIC 0415
-/* We don't accept the following (see N_BADMAG macro).
- They're just here so GNU code will compile. */
-#define OMAGIC 0407 /* old impure format */
-#define NMAGIC 0410 /* read-only text */
-#define ZMAGIC 0413 /* demand load format */
-
-/* FILE HEADER
- All 'lengths' are given as a number of bytes.
- All 'alignments' are for relinkable files only; an alignment of
- 'n' indicates the corresponding segment must begin at an
- address that is a multiple of (2**n). */
-struct external_exec
- {
- /* Standard stuff */
- unsigned char e_info[4]; /* Identifies this as a b.out file */
- unsigned char e_text[4]; /* Length of text */
- unsigned char e_data[4]; /* Length of data */
- unsigned char e_bss[4]; /* Length of uninitialized data area */
- unsigned char e_syms[4]; /* Length of symbol table */
- unsigned char e_entry[4]; /* Runtime start address */
- unsigned char e_trsize[4]; /* Length of text relocation info */
- unsigned char e_drsize[4]; /* Length of data relocation info */
-
- /* Added for i960 */
- unsigned char e_tload[4]; /* Text runtime load address */
- unsigned char e_dload[4]; /* Data runtime load address */
- unsigned char e_talign[1]; /* Alignment of text segment */
- unsigned char e_dalign[1]; /* Alignment of data segment */
- unsigned char e_balign[1]; /* Alignment of bss segment */
- unsigned char e_relaxable[1];/* Assembled with enough info to allow linker to relax */
- };
-
-#define EXEC_BYTES_SIZE (sizeof (struct external_exec))
-
-/* These macros use the a_xxx field names, since they operate on the exec
- structure after it's been byte-swapped and realigned on the host machine. */
-#define N_BADMAG(x) (((x)->a_info)!=BMAGIC)
-#define N_TXTOFF(x) EXEC_BYTES_SIZE
-#define N_DATOFF(x) ( N_TXTOFF(x) + (x)->a_text )
-#define N_TROFF(x) ( N_DATOFF(x) + (x)->a_data )
-#define N_TRELOFF N_TROFF
-#define N_DROFF(x) ( N_TROFF(x) + (x)->a_trsize )
-#define N_DRELOFF N_DROFF
-#define N_SYMOFF(x) ( N_DROFF(x) + (x)->a_drsize )
-#define N_STROFF(x) ( N_SYMOFF(x) + (x)->a_syms )
-#define N_DATADDR(x) ( (x)->a_dload )
-
-/* Address of text segment in memory after it is loaded. */
-#if !defined (N_TXTADDR)
-#define N_TXTADDR(x) 0
-#endif
-
-/* A single entry in the symbol table. */
-struct nlist
- {
- union
- {
- char* n_name;
- struct nlist * n_next;
- long n_strx; /* Index into string table */
- } n_un;
-
- unsigned char n_type; /* See below */
- char n_other; /* Used in i80960 support -- see below */
- short n_desc;
- unsigned long n_value;
- };
-
-
-/* Legal values of n_type. */
-#define N_UNDF 0 /* Undefined symbol */
-#define N_ABS 2 /* Absolute symbol */
-#define N_TEXT 4 /* Text symbol */
-#define N_DATA 6 /* Data symbol */
-#define N_BSS 8 /* BSS symbol */
-#define N_FN 31 /* Filename symbol */
-
-#define N_EXT 1 /* External symbol (OR'd in with one of above) */
-#define N_TYPE 036 /* Mask for all the type bits */
-#define N_STAB 0340 /* Mask for all bits used for SDB entries */
-
-/* MEANING OF 'n_other'
-
- If non-zero, the 'n_other' fields indicates either a leaf procedure or
- a system procedure, as follows:
-
- 1 <= n_other <= 32 :
- The symbol is the entry point to a system procedure.
- 'n_value' is the address of the entry, as for any other
- procedure. The system procedure number (which can be used in
- a 'calls' instruction) is (n_other-1). These entries come from
- '.sysproc' directives.
-
- n_other == N_CALLNAME
- the symbol is the 'call' entry point to a leaf procedure.
- The *next* symbol in the symbol table must be the corresponding
- 'bal' entry point to the procedure (see following). These
- entries come from '.leafproc' directives in which two different
- symbols are specified (the first one is represented here).
-
-
- n_other == N_BALNAME
- the symbol is the 'bal' entry point to a leaf procedure.
- These entries result from '.leafproc' directives in which only
- one symbol is specified, or in which the same symbol is
- specified twice.
-
- Note that an N_CALLNAME entry *must* have a corresponding N_BALNAME entry,
- but not every N_BALNAME entry must have an N_CALLNAME entry. */
-#define N_CALLNAME ((char)-1)
-#define N_BALNAME ((char)-2)
-#define IS_CALLNAME(x) (N_CALLNAME == (x))
-#define IS_BALNAME(x) (N_BALNAME == (x))
-#define IS_OTHER(x) ((x)>0 && (x) <=32)
-
-#define b_out_relocation_info relocation_info
-struct relocation_info
- {
- int r_address; /* File address of item to be relocated. */
- unsigned
-#define r_index r_symbolnum
- r_symbolnum:24, /* Index of symbol on which relocation is based,
- if r_extern is set. Otherwise set to
- either N_TEXT, N_DATA, or N_BSS to
- indicate section on which relocation is
- based. */
- r_pcrel:1, /* 1 => relocate PC-relative; else absolute
- On i960, pc-relative implies 24-bit
- address, absolute implies 32-bit. */
- r_length:2, /* Number of bytes to relocate:
- 0 => 1 byte
- 1 => 2 bytes -- used for 13 bit pcrel
- 2 => 4 bytes. */
- r_extern:1,
- r_bsr:1, /* Something for the GNU NS32K assembler. */
- r_disp:1, /* Something for the GNU NS32K assembler. */
- r_callj:1, /* 1 if relocation target is an i960 'callj'. */
- r_relaxable:1; /* 1 if enough info is left to relax the data. */
-};
diff --git a/include/coff/xcoff.h b/include/coff/xcoff.h
index 8688742..cae0029 100644
--- a/include/coff/xcoff.h
+++ b/include/coff/xcoff.h
@@ -204,30 +204,30 @@ struct internal_ldhdr
/* The version number:
1 : 32 bit
2 : 64 bit */
- unsigned long l_version;
+ unsigned int l_version;
/* The number of symbol table entries. */
- bfd_size_type l_nsyms;
+ size_t l_nsyms;
/* The number of relocation table entries. */
- bfd_size_type l_nreloc;
+ size_t l_nreloc;
/* The length of the import file string table. */
- bfd_size_type l_istlen;
+ size_t l_istlen;
/* The number of import files. */
- bfd_size_type l_nimpid;
+ size_t l_nimpid;
+
+ /* The length of the string table. */
+ size_t l_stlen;
/* The offset from the start of the .loader section to the first
entry in the import file table. */
- bfd_size_type l_impoff;
-
- /* The length of the string table. */
- bfd_size_type l_stlen;
+ bfd_vma l_impoff;
/* The offset from the start of the .loader section to the first
entry in the string table. */
- bfd_size_type l_stoff;
+ bfd_vma l_stoff;
/* The offset to start of the symbol table, only in XCOFF64 */
bfd_vma l_symoff;
@@ -248,11 +248,11 @@ struct internal_ldsym
struct
{
/* Zero if the symbol name is more than SYMNMLEN characters. */
- long _l_zeroes;
+ uint32_t _l_zeroes;
/* The offset in the string table if the symbol name is more
than SYMNMLEN characters. */
- long _l_offset;
+ uint32_t _l_offset;
}
_l_l;
}
diff --git a/include/elf/aarch64.h b/include/elf/aarch64.h
index d7904bb..e218e07 100644
--- a/include/elf/aarch64.h
+++ b/include/elf/aarch64.h
@@ -30,6 +30,8 @@
/* MTE memory tag segment type. */
#define PT_AARCH64_MEMTAG_MTE (PT_LOPROC + 0x2)
+/* Name of the ELF section holding the attributes. */
+#define SEC_AARCH64_ATTRIBUTES ".ARM.attributes"
/* Additional section types. */
/* Section holds attributes. */
#define SHT_AARCH64_ATTRIBUTES (SHT_LOPROC + 3)
diff --git a/include/libiberty.h b/include/libiberty.h
index e39f187..b88eb64 100644
--- a/include/libiberty.h
+++ b/include/libiberty.h
@@ -133,6 +133,18 @@ extern const char *dos_lbasename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIB
extern const char *unix_lbasename (const char *) ATTRIBUTE_RETURNS_NONNULL ATTRIBUTE_NONNULL(1);
+/* A dirname () that is always compiled in. */
+
+extern char *ldirname (const char *) ATTRIBUTE_NONNULL(1);
+
+/* Same, but assumes DOS semantics regardless of host. */
+
+extern char *dos_ldirname (const char *) ATTRIBUTE_NONNULL(1);
+
+/* Same, but assumes Unix semantics regardless of host. */
+
+extern char *unix_ldirname (const char *) ATTRIBUTE_NONNULL(1);
+
/* A well-defined realpath () that is always compiled in. */
extern char *lrealpath (const char *);
@@ -199,6 +211,16 @@ extern int fdmatch (int fd1, int fd2);
extern int ffs(int);
#endif
+#if defined (HAVE_DECL_MKSTEMPS) && !HAVE_DECL_MKSTEMPS
+extern int mkstemps(char *, int);
+#endif
+
+/* Make memrchr available on systems that do not have it. */
+#if !defined (__GNU_LIBRARY__ ) && !defined (__linux__) && \
+ !defined (HAVE_MEMRCHR)
+extern void *memrchr(const void *, int, size_t);
+#endif
+
/* Get the working directory. The result is cached, so don't call
chdir() between calls to getpwd(). */
diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h
index dfe3f05..2dc2f7d 100644
--- a/include/opcode/aarch64.h
+++ b/include/opcode/aarch64.h
@@ -79,6 +79,8 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_CRC,
/* LSE instructions. */
AARCH64_FEATURE_LSE,
+ /* LSFE instructions. */
+ AARCH64_FEATURE_LSFE,
/* PAN instructions. */
AARCH64_FEATURE_PAN,
/* LOR instructions. */
@@ -135,8 +137,12 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_ID_PFR2,
/* SSBS mechanism enabled. */
AARCH64_FEATURE_SSBS,
+ /* Compare and branch instructions. */
+ AARCH64_FEATURE_CMPBR,
/* Memory Tagging Extension. */
AARCH64_FEATURE_MEMTAG,
+ /* Outer Cacheable Cache Maintenance Operation. */
+ AARCH64_FEATURE_OCCMO,
/* Transactional Memory Extension. */
AARCH64_FEATURE_TME,
/* XS memory attribute. */
@@ -210,7 +216,7 @@ enum aarch64_feature_bit {
/* Instrumentation Extension. */
AARCH64_FEATURE_ITE,
/* 128-bit page table descriptor, system registers
- and isntructions. */
+ and instructions. */
AARCH64_FEATURE_D128,
/* Armv8.9-A/Armv9.4-A architecture Debug extension. */
AARCH64_FEATURE_DEBUGv8p9,
@@ -230,6 +236,12 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_SME2p1,
/* SVE2.1 instructions. */
AARCH64_FEATURE_SVE2p1,
+ /* SVE_F16F32MM instructions. */
+ AARCH64_FEATURE_SVE_F16F32MM,
+ /* F8F32MM instructions. */
+ AARCH64_FEATURE_F8F32MM,
+ /* F8F16MM instructions. */
+ AARCH64_FEATURE_F8F16MM,
/* RCPC3 instructions. */
AARCH64_FEATURE_RCPC3,
/* Enhanced Software Step Extension. */
@@ -264,12 +276,24 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_SME_F8F16,
/* Non-widening half-precision FP16 to FP16 arithmetic for SME2. */
AARCH64_FEATURE_SME_F16F16,
+ /* FEAT_SVE_BFSCALE. */
+ AARCH64_FEATURE_SVE_BFSCALE,
/* SVE Z-targeting non-widening BFloat16 instructions. */
AARCH64_FEATURE_SVE_B16B16,
/* SME non-widening BFloat16 instructions. */
AARCH64_FEATURE_SME_B16B16,
+ /* Armv9.1-A processors. */
+ AARCH64_FEATURE_V9_1A,
+ /* Armv9.2-A processors. */
+ AARCH64_FEATURE_V9_2A,
+ /* Armv9.3-A processors. */
+ AARCH64_FEATURE_V9_3A,
+ /* Armv9.4-A processors. */
+ AARCH64_FEATURE_V9_4A,
/* Armv9.5-A processors. */
AARCH64_FEATURE_V9_5A,
+ /* FPRCVT instructions. */
+ AARCH64_FEATURE_FPRCVT,
/* Virtual features. These are used to gate instructions that are enabled
by either of two (or more) sets of command line flags. */
@@ -281,6 +305,8 @@ enum aarch64_feature_bit {
AARCH64_FEATURE_FP8DOT2_SVE,
/* +sme-f16f16 or +sme-f8f16 */
AARCH64_FEATURE_SME_F16F16_F8F16,
+ /* +sve2 or +sme2 */
+ AARCH64_FEATURE_SVE2_SME2,
/* +sve2p1 or +sme */
AARCH64_FEATURE_SVE2p1_SME,
/* +sve2p1 or +sme2 */
@@ -290,13 +316,49 @@ enum aarch64_feature_bit {
AARCH64_NUM_FEATURES
};
+typedef uint64_t aarch64_feature_word;
+#define AARCH64_BITS_PER_FEATURE_WORD 64
+
+#define AA64_REPLICATE(SEP, BODY, ...) \
+ BODY (0, __VA_ARGS__) SEP \
+ BODY (1, __VA_ARGS__) SEP \
+ BODY (2, __VA_ARGS__)
+
+/* Some useful SEP operators for use with replication. */
+#define REP_COMMA ,
+#define REP_SEMICOLON ;
+#define REP_OR_OR ||
+#define REP_AND_AND &&
+#define REP_PLUS +
+
+/* Not currently needed, but if an empty SEP is required define:
+ #define REP_NO_SEP
+ Then use REP_NO_SEP in the SEP field. */
+
+/* Used to generate one instance of VAL for each value of ELT (ELT is
+ not otherwise used). */
+#define AA64_REPVAL(ELT, VAL) VAL
+
+/* static_assert requires C11 (or C++11) or later. Support older
+ versions by disabling this check since compilers without this are
+ pretty uncommon these days. */
+#if ((defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L) \
+ || (defined __cplusplus && __cplusplus >= 201103L))
+static_assert ((AA64_REPLICATE (REP_PLUS, AA64_REPVAL,
+ AARCH64_BITS_PER_FEATURE_WORD))
+ >= AARCH64_NUM_FEATURES,
+ "Insufficient repetitions in AA64_REPLICATE()");
+#endif
+
/* These macros take an initial argument X that gives the index into
an aarch64_feature_set. The macros then return the bitmask for
that array index. */
/* A mask in which feature bit BIT is set and all other bits are clear. */
-#define AARCH64_UINT64_BIT(X, BIT) \
- ((X) == (BIT) / 64 ? 1ULL << (BIT) % 64 : 0)
+#define AARCH64_UINT64_BIT(X, BIT) \
+ ((X) == (BIT) / AARCH64_BITS_PER_FEATURE_WORD \
+ ? 1ULL << (BIT) % AARCH64_BITS_PER_FEATURE_WORD \
+ : 0)
/* A mask that includes only AARCH64_FEATURE_<NAME>. */
#define AARCH64_FEATBIT(X, NAME) \
@@ -374,10 +436,14 @@ enum aarch64_feature_bit {
| AARCH64_FEATBIT (X, F16) \
| AARCH64_FEATBIT (X, SVE) \
| AARCH64_FEATBIT (X, SVE2))
-#define AARCH64_ARCH_V9_1A_FEATURES(X) AARCH64_ARCH_V8_6A_FEATURES (X)
-#define AARCH64_ARCH_V9_2A_FEATURES(X) AARCH64_ARCH_V8_7A_FEATURES (X)
-#define AARCH64_ARCH_V9_3A_FEATURES(X) AARCH64_ARCH_V8_8A_FEATURES (X)
-#define AARCH64_ARCH_V9_4A_FEATURES(X) (AARCH64_ARCH_V8_9A_FEATURES (X) \
+#define AARCH64_ARCH_V9_1A_FEATURES(X) (AARCH64_FEATBIT (X, V9_1A) \
+ | AARCH64_ARCH_V8_6A_FEATURES (X))
+#define AARCH64_ARCH_V9_2A_FEATURES(X) (AARCH64_FEATBIT (X, V9_2A) \
+ | AARCH64_ARCH_V8_7A_FEATURES (X))
+#define AARCH64_ARCH_V9_3A_FEATURES(X) (AARCH64_FEATBIT (X, V9_3A) \
+ | AARCH64_ARCH_V8_8A_FEATURES (X))
+#define AARCH64_ARCH_V9_4A_FEATURES(X) (AARCH64_FEATBIT (X, V9_4A) \
+ | AARCH64_ARCH_V8_9A_FEATURES (X) \
| AARCH64_FEATBIT (X, SVE2p1))
#define AARCH64_ARCH_V9_5A_FEATURES(X) (AARCH64_FEATBIT (X, V9_5A) \
| AARCH64_FEATBIT (X, CPA) \
@@ -431,60 +497,74 @@ enum aarch64_feature_bit {
/* CPU-specific features. */
typedef struct {
- uint64_t flags[(AARCH64_NUM_FEATURES + 63) / 64];
+ aarch64_feature_word flags[AA64_REPLICATE (REP_PLUS, AA64_REPVAL, 1)];
} aarch64_feature_set;
-#define AARCH64_CPU_HAS_FEATURE(CPU,FEAT) \
- ((~(CPU).flags[0] & AARCH64_FEATBIT (0, FEAT)) == 0 \
- && (~(CPU).flags[1] & AARCH64_FEATBIT (1, FEAT)) == 0)
+#define AARCH64_CPU_HAS_FEATURE_BODY(ELT, CPU, FEAT) \
+ ((~(CPU).flags[ELT] & AARCH64_FEATBIT (ELT, FEAT)) == 0)
+#define AARCH64_CPU_HAS_FEATURE(CPU, FEAT) \
+ (AA64_REPLICATE (REP_AND_AND, AARCH64_CPU_HAS_FEATURE_BODY, CPU, FEAT))
-#define AARCH64_CPU_HAS_ALL_FEATURES(CPU,FEAT) \
- ((~(CPU).flags[0] & (FEAT).flags[0]) == 0 \
- && (~(CPU).flags[1] & (FEAT).flags[1]) == 0)
+#define AARCH64_CPU_HAS_ALL_FEATURES_BODY(ELT, CPU, FEAT) \
+ ((~(CPU).flags[ELT] & (FEAT).flags[ELT]) == 0)
+#define AARCH64_CPU_HAS_ALL_FEATURES(CPU, FEAT) \
+ (AA64_REPLICATE (REP_AND_AND, AARCH64_CPU_HAS_ALL_FEATURES_BODY, CPU, FEAT))
+#define AARCH64_CPU_HAS_ANY_FEATURES_BODY(ELT, CPU, FEAT) \
+ (((CPU).flags[ELT] & (FEAT).flags[ELT]) != 0)
#define AARCH64_CPU_HAS_ANY_FEATURES(CPU,FEAT) \
- (((CPU).flags[0] & (FEAT).flags[0]) != 0 \
- || ((CPU).flags[1] & (FEAT).flags[1]) != 0)
+ (AA64_REPLICATE (REP_OR_OR, AARCH64_CPU_HAS_ANY_FEATURES_BODY, CPU, FEAT))
+#define AARCH64_SET_FEATURE_BODY(ELT, DEST, FEAT) \
+ (DEST).flags[ELT] = FEAT (ELT)
#define AARCH64_SET_FEATURE(DEST, FEAT) \
- ((DEST).flags[0] = FEAT (0), \
- (DEST).flags[1] = FEAT (1))
+ (AA64_REPLICATE (REP_COMMA, AARCH64_SET_FEATURE_BODY, DEST, FEAT))
+#define AARCH64_CLEAR_FEATURE_BODY(ELT, DEST, SRC, FEAT) \
+ (DEST).flags[ELT] = ((SRC).flags[ELT] \
+ & ~AARCH64_FEATBIT (ELT, FEAT))
#define AARCH64_CLEAR_FEATURE(DEST, SRC, FEAT) \
- ((DEST).flags[0] = (SRC).flags[0] & ~AARCH64_FEATBIT (0, FEAT), \
- (DEST).flags[1] = (SRC).flags[1] & ~AARCH64_FEATBIT (1, FEAT))
-
-#define AARCH64_MERGE_FEATURE_SETS(TARG,F1,F2) \
- do \
- { \
- (TARG).flags[0] = (F1).flags[0] | (F2).flags[0]; \
- (TARG).flags[1] = (F1).flags[1] | (F2).flags[1]; \
- } \
+ (AA64_REPLICATE (REP_COMMA, AARCH64_CLEAR_FEATURE_BODY, DEST, SRC, FEAT))
+
+#define AARCH64_MERGE_FEATURE_SETS_BODY(ELT, TARG, F1, F2) \
+ (TARG).flags[ELT] = (F1).flags[ELT] | (F2).flags[ELT];
+#define AARCH64_MERGE_FEATURE_SETS(TARG, F1, F2) \
+ do \
+ { \
+ AA64_REPLICATE (REP_SEMICOLON, \
+ AARCH64_MERGE_FEATURE_SETS_BODY, TARG, F1, F2); \
+ } \
while (0)
-#define AARCH64_CLEAR_FEATURES(TARG,F1,F2) \
- do \
- { \
- (TARG).flags[0] = (F1).flags[0] &~ (F2).flags[0]; \
- (TARG).flags[1] = (F1).flags[1] &~ (F2).flags[1]; \
- } \
+#define AARCH64_CLEAR_FEATURES_BODY(ELT, TARG, F1, F2) \
+ (TARG).flags[ELT] = (F1).flags[ELT] &~ (F2).flags[ELT];
+#define AARCH64_CLEAR_FEATURES(TARG,F1,F2) \
+ do \
+ { \
+ AA64_REPLICATE (REP_SEMICOLON, \
+ AARCH64_CLEAR_FEATURES_BODY, TARG, F1, F2); \
+ } \
while (0)
/* aarch64_feature_set initializers for no features and all features,
respectively. */
-#define AARCH64_NO_FEATURES { { 0, 0 } }
-#define AARCH64_ALL_FEATURES { { -1, -1 } }
+#define AARCH64_NO_FEATURES { { AA64_REPLICATE (REP_COMMA, AA64_REPVAL, 0) } }
+#define AARCH64_ALL_FEATURES { { AA64_REPLICATE (REP_COMMA, AA64_REPVAL, -1) } }
/* An aarch64_feature_set initializer for a single feature,
AARCH64_FEATURE_<FEAT>. */
-#define AARCH64_FEATURE(FEAT) \
- { { AARCH64_FEATBIT (0, FEAT), AARCH64_FEATBIT (1, FEAT) } }
+#define AARCH64_FEATURE_BODY(ELT, FEAT) \
+ AARCH64_FEATBIT (ELT, FEAT)
+#define AARCH64_FEATURE(FEAT) \
+ { { AA64_REPLICATE (REP_COMMA, AARCH64_FEATURE_BODY, FEAT) } }
/* An aarch64_feature_set initializer for a specific architecture version,
including all the features that are enabled by default for that architecture
version. */
-#define AARCH64_ARCH_FEATURES(ARCH) \
- { { AARCH64_ARCH_##ARCH (0), AARCH64_ARCH_##ARCH (1) } }
+#define AARCH64_ARCH_FEATURES_BODY(ELT, ARCH) \
+ AARCH64_ARCH_##ARCH (ELT)
+#define AARCH64_ARCH_FEATURES(ARCH) \
+ { { AA64_REPLICATE (REP_COMMA, AARCH64_ARCH_FEATURES_BODY, ARCH) } }
/* Used by AARCH64_CPU_FEATURES. */
#define AARCH64_OR_FEATURES_1(X, ARCH, F1) \
@@ -508,9 +588,11 @@ typedef struct {
/* An aarch64_feature_set initializer for a CPU that implements architecture
version ARCH, and additionally provides the N features listed in "...". */
+#define AARCH64_CPU_FEATURES_BODY(ELT, ARCH, N, ...) \
+ AARCH64_OR_FEATURES_##N (ELT, ARCH, __VA_ARGS__)
#define AARCH64_CPU_FEATURES(ARCH, N, ...) \
- { { AARCH64_OR_FEATURES_##N (0, ARCH, __VA_ARGS__), \
- AARCH64_OR_FEATURES_##N (1, ARCH, __VA_ARGS__) } }
+ { { AA64_REPLICATE (REP_COMMA, AARCH64_CPU_FEATURES_BODY, \
+ ARCH, N, __VA_ARGS__) } }
/* An aarch64_feature_set initializer for the N features listed in "...". */
#define AARCH64_FEATURES(N, ...) \
@@ -618,6 +700,8 @@ enum aarch64_opnd
AARCH64_OPND_WIDTH, /* Immediate #<width> in e.g. BFI. */
AARCH64_OPND_IMM, /* Immediate. */
AARCH64_OPND_IMM_2, /* Immediate. */
+ AARCH64_OPND_IMMP1_2, /* Immediate plus 1. */
+ AARCH64_OPND_IMMS1_2, /* Immediate minus 1. */
AARCH64_OPND_UIMM3_OP1,/* Unsigned 3-bit immediate in the op1 field. */
AARCH64_OPND_UIMM3_OP2,/* Unsigned 3-bit immediate in the op2 field. */
AARCH64_OPND_UIMM4, /* Unsigned 4-bit immediate in the CRm field. */
@@ -645,6 +729,7 @@ enum aarch64_opnd
AARCH64_OPND_COND1, /* Same as the above, but excluding AL and NV. */
AARCH64_OPND_ADDR_ADRP, /* Memory address for ADRP */
+ AARCH64_OPND_ADDR_PCREL9, /* 9-bit PC-relative address for e.g. CB<cc>. */
AARCH64_OPND_ADDR_PCREL14, /* 14-bit PC-relative address for e.g. TBZ. */
AARCH64_OPND_ADDR_PCREL19, /* 19-bit PC-relative address for e.g. LDR. */
AARCH64_OPND_ADDR_PCREL21, /* 21-bit PC-relative address for e.g. ADR. */
@@ -704,12 +789,16 @@ enum aarch64_opnd
AARCH64_OPND_SVE_ADDR_RI_U6x2, /* SVE [<Xn|SP>, #<uimm6>*2]. */
AARCH64_OPND_SVE_ADDR_RI_U6x4, /* SVE [<Xn|SP>, #<uimm6>*4]. */
AARCH64_OPND_SVE_ADDR_RI_U6x8, /* SVE [<Xn|SP>, #<uimm6>*8]. */
- AARCH64_OPND_SVE_ADDR_R, /* SVE [<Xn|SP>]. */
- AARCH64_OPND_SVE_ADDR_RR, /* SVE [<Xn|SP>, <Xm|XZR>]. */
- AARCH64_OPND_SVE_ADDR_RR_LSL1, /* SVE [<Xn|SP>, <Xm|XZR>, LSL #1]. */
- AARCH64_OPND_SVE_ADDR_RR_LSL2, /* SVE [<Xn|SP>, <Xm|XZR>, LSL #2]. */
- AARCH64_OPND_SVE_ADDR_RR_LSL3, /* SVE [<Xn|SP>, <Xm|XZR>, LSL #3]. */
- AARCH64_OPND_SVE_ADDR_RR_LSL4, /* SVE [<Xn|SP>, <Xm|XZR>, LSL #4]. */
+ AARCH64_OPND_SVE_ADDR_RR, /* SVE [<Xn|SP>{, <Xm|XZR>}]. */
+ AARCH64_OPND_SVE_ADDR_RR_LSL1, /* SVE [<Xn|SP>{, <Xm|XZR>, LSL #1}]. */
+ AARCH64_OPND_SVE_ADDR_RR_LSL2, /* SVE [<Xn|SP>{, <Xm|XZR>, LSL #2}]. */
+ AARCH64_OPND_SVE_ADDR_RR_LSL3, /* SVE [<Xn|SP>{, <Xm|XZR>, LSL #3}]. */
+ AARCH64_OPND_SVE_ADDR_RR_LSL4, /* SVE [<Xn|SP>{, <Xm|XZR>, LSL #4}]. */
+ AARCH64_OPND_SVE_ADDR_RM, /* SVE [<Xn|SP>, <Xm|XZR>]. */
+ AARCH64_OPND_SVE_ADDR_RM_LSL1, /* SVE [<Xn|SP>, <Xm|XZR>, LSL #1]. */
+ AARCH64_OPND_SVE_ADDR_RM_LSL2, /* SVE [<Xn|SP>, <Xm|XZR>, LSL #2]. */
+ AARCH64_OPND_SVE_ADDR_RM_LSL3, /* SVE [<Xn|SP>, <Xm|XZR>, LSL #3]. */
+ AARCH64_OPND_SVE_ADDR_RM_LSL4, /* SVE [<Xn|SP>, <Xm|XZR>, LSL #4]. */
AARCH64_OPND_SVE_ADDR_RX, /* SVE [<Xn|SP>, <Xm>]. */
AARCH64_OPND_SVE_ADDR_RX_LSL1, /* SVE [<Xn|SP>, <Xm>, LSL #1]. */
AARCH64_OPND_SVE_ADDR_RX_LSL2, /* SVE [<Xn|SP>, <Xm>, LSL #2]. */
@@ -824,6 +913,7 @@ enum aarch64_opnd
AARCH64_OPND_SME_Zdnx2, /* SVE vector register list from [4:1]*2. */
AARCH64_OPND_SME_Zdnx4, /* SVE vector register list from [4:2]*4. */
AARCH64_OPND_SME_Zm, /* SVE vector register list in 4-bit Zm. */
+ AARCH64_OPND_SME_Zm_17, /* SVE vector register list in [20:17]. */
AARCH64_OPND_SME_Zmx2, /* SVE vector register list from [20:17]*2. */
AARCH64_OPND_SME_Zmx4, /* SVE vector register list from [20:18]*4. */
AARCH64_OPND_SME_Znx2, /* SVE vector register list from [9:6]*2. */
@@ -1051,6 +1141,8 @@ enum aarch64_insn_class
floatdp3,
floatimm,
floatsel,
+ fprcvtfloat2int,
+ fprcvtint2float,
ldst_immpost,
ldst_immpre,
ldst_imm9, /* immpost or immpre */
@@ -1391,7 +1483,7 @@ extern const aarch64_opcode aarch64_opcode_table[];
#define F_OPD_PAIR_OPT (1ULL << 32)
/* This instruction does not allow the full range of values that the
width of fields in the assembler instruction would theoretically
- allow. This impacts the constraintts on assembly but yelds no
+ allow. This impacts the constraints on assembly but yields no
impact on disassembly. */
#define F_OPD_NARROW (1ULL << 33)
/* For the instruction with size[22:23] field. */
@@ -1421,7 +1513,10 @@ extern const aarch64_opcode aarch64_opcode_table[];
#define F_DP_TAG_ONLY (1ULL << 37)
#define F_SUBCLASS_OTHER (F_SUBCLASS)
-/* Next bit is 41. */
+
+/* For LSFE instructions with size[30:31] field. */
+#define F_LSFE_SZ (1ULL << 41)
+/* Next bit is 42. */
/* Instruction constraints. */
/* This instruction has a predication constraint on the instruction at PC+4. */
@@ -1505,7 +1600,7 @@ opcode_has_special_coder (const aarch64_opcode *opcode)
{
return (opcode->flags & (F_SF | F_LSE_SZ | F_SIZEQ | F_FPTYPE | F_SSIZE | F_T
| F_GPRSIZE_IN_Q | F_LDS_SIZE | F_MISC | F_N | F_COND
- | F_OPD_SIZE | F_RCPC3_SIZE)) != 0;
+ | F_OPD_SIZE | F_RCPC3_SIZE | F_LSFE_SZ )) != 0;
}
struct aarch64_name_value_pair
@@ -1757,7 +1852,7 @@ struct aarch64_inst
/* Corresponding opcode entry. */
const aarch64_opcode *opcode;
- /* Condition for a truly conditional-executed instrutions, e.g. b.cond. */
+ /* Condition for a truly conditional-executed instruction, e.g. b.cond. */
const aarch64_cond *cond;
/* Operands information. */
@@ -1857,7 +1952,7 @@ struct aarch64_inst
yet still accept a wider range of registers.
AARCH64_OPDE_RECOVERABLE, AARCH64_OPDE_SYNTAX_ERROR and
- AARCH64_OPDE_FATAL_SYNTAX_ERROR are only deteced by GAS while the
+ AARCH64_OPDE_FATAL_SYNTAX_ERROR are only detected by GAS while the
AARCH64_OPDE_INVALID_VARIANT error can only be spotted by libopcodes as
only libopcodes has the information about the valid variants of each
instruction.
diff --git a/include/opcode/kvx.h b/include/opcode/kvx.h
index aa51903..9a3c39c 100644
--- a/include/opcode/kvx.h
+++ b/include/opcode/kvx.h
@@ -140,13 +140,13 @@ struct kvx_pseudo_relocs
struct kvx_reloc *kreloc;
};
-typedef struct symbol symbolS;
+struct symbol;
struct pseudo_func
{
const char *name;
- symbolS *sym;
+ struct symbol *sym;
struct kvx_pseudo_relocs pseudo_relocs;
};
diff --git a/include/opcode/riscv-opc.h b/include/opcode/riscv-opc.h
index 71ad7ff..1c64962 100644
--- a/include/opcode/riscv-opc.h
+++ b/include/opcode/riscv-opc.h
@@ -2311,6 +2311,9 @@
/* Smctr/Ssctr instruction. */
#define MATCH_SCTRCLR 0x10400073
#define MASK_SCTRCLR 0xffffffff
+/* Smrnmi instruction. */
+#define MATCH_MNRET 0x70200073
+#define MASK_MNRET 0xffffffff
/* Svinval instruction. */
#define MATCH_SINVAL_VMA 0x16000073
#define MASK_SINVAL_VMA 0xfe007fff
@@ -3699,6 +3702,21 @@
#define MASK_TH_VFMVFS 0xfe0ff07f
#define MATCH_TH_VFMVSF 0x36005057
#define MASK_TH_VFMVSF 0xfff0707f
+/* Vendor-specific (T-Head) XTheadVdot instructions. */
+#define MATCH_TH_VMAQA_VV 0x8000600b
+#define MASK_TH_VMAQA_VV 0xfc00707f
+#define MATCH_TH_VMAQA_VX 0x8400600b
+#define MASK_TH_VMAQA_VX 0xfc00707f
+#define MATCH_TH_VMAQAU_VV 0x8800600b
+#define MASK_TH_VMAQAU_VV 0xfc00707f
+#define MATCH_TH_VMAQAU_VX 0x8c00600b
+#define MASK_TH_VMAQAU_VX 0xfc00707f
+#define MATCH_TH_VMAQASU_VV 0x9000600b
+#define MASK_TH_VMAQASU_VV 0xfc00707f
+#define MATCH_TH_VMAQASU_VX 0x9400600b
+#define MASK_TH_VMAQASU_VX 0xfc00707f
+#define MATCH_TH_VMAQAUS_VX 0x9c00600b
+#define MASK_TH_VMAQAUS_VX 0xfc00707f
/* Vendor-specific (Ventana Microsystems) XVentanaCondOps instructions */
#define MATCH_VT_MASKC 0x607b
#define MASK_VT_MASKC 0xfe00707f
@@ -3786,6 +3804,25 @@
#define MASK_SFVFNRCLIPXUFQF 0xfe00707f
#define MATCH_SFVFNRCLIPXFQF 0x8e00505b
#define MASK_SFVFNRCLIPXFQF 0xfe00707f
+/* MIPS custom instruction. */
+#define MATCH_MIPS_CCMOV 0x600300b
+#define MASK_MIPS_CCMOV 0x600707f
+#define MATCH_MIPS_LWP 0x0010400b
+#define MASK_MIPS_LWP 0x0030707f
+#define MATCH_MIPS_LDP 0x0000400b
+#define MASK_MIPS_LDP 0x0070707f
+#define MATCH_MIPS_SWP 0x0000508b
+#define MASK_MIPS_SWP 0x000071ff
+#define MATCH_MIPS_SDP 0x0000500b
+#define MASK_MIPS_SDP 0x000073ff
+#define MATCH_MIPS_EHB 0x00301013
+#define MASK_MIPS_EHB 0xffffffff
+#define MATCH_MIPS_IHB 0x00101013
+#define MASK_MIPS_IHB 0xffffffff
+#define MATCH_MIPS_PAUSE 0x00501013
+#define MASK_MIPS_PAUSE 0xffffffff
+#define MATCH_MIPS_PREF 0x0000000b
+#define MASK_MIPS_PREF 0xe000707f
/* Unprivileged Counter/Timers CSR addresses. */
#define CSR_CYCLE 0xc00
#define CSR_TIME 0xc01
@@ -3877,6 +3914,7 @@
#define CSR_MTVEC 0x305
#define CSR_MCOUNTEREN 0x306
#define CSR_MSTATUSH 0x310
+#define CSR_MEDELEGH 0x312
#define CSR_MSCRATCH 0x340
#define CSR_MEPC 0x341
#define CSR_MCAUSE 0x342
@@ -4067,6 +4105,7 @@
#define CSR_HIE 0x604
#define CSR_HCOUNTEREN 0x606
#define CSR_HGEIE 0x607
+#define CSR_HEDELEGH 0x612
#define CSR_HTVAL 0x643
#define CSR_HIP 0x644
#define CSR_HVIP 0x645
@@ -4168,6 +4207,8 @@
#define CSR_HVIPRIO2H 0x657
#define CSR_VSIEH 0x214
#define CSR_VSIPH 0x254
+/* Ssccfg CSR address. */
+#define CSR_SCOUNTINHIBIT 0x120
/* Sscsrind extension */
#define CSR_SIREG2 0x152
#define CSR_SIREG3 0x153
@@ -4254,6 +4295,8 @@
#define CSR_VL 0xc20
#define CSR_VTYPE 0xc21
#define CSR_VLENB 0xc22
+/* Ssqosid CSR addresses. */
+#define CSR_SRMCFG 0x181
#endif /* RISCV_ENCODING_H */
#ifdef DECLARE_INSN
DECLARE_INSN(slli_rv32, MATCH_SLLI_RV32, MASK_SLLI_RV32)
@@ -4791,6 +4834,8 @@ DECLARE_INSN(cm_jt, MATCH_CM_JT, MASK_CM_JT)
DECLARE_INSN(cm_jalt, MATCH_CM_JALT, MASK_CM_JALT)
/* Smctr/Ssctr instruction. */
DECLARE_INSN(sctrclr, MATCH_SCTRCLR, MASK_SCTRCLR)
+/* Smrnmi instruction */
+DECLARE_INSN(mnret, MATCH_MNRET, MASK_MNRET)
/* Vendor-specific (T-Head) XTheadBa instructions. */
DECLARE_INSN(th_addsl, MATCH_TH_ADDSL, MASK_TH_ADDSL)
/* Vendor-specific (T-Head) XTheadBb instructions. */
@@ -4923,6 +4968,16 @@ DECLARE_INSN(ssamoswap_w, MATCH_SSAMOSWAP_W, MASK_SSAMOSWAP_W)
DECLARE_INSN(ssamoswap_d, MATCH_SSAMOSWAP_D, MASK_SSAMOSWAP_D)
/* Zicfilp instructions. */
DECLARE_INSN(lpad, MATCH_LPAD, MASK_LPAD)
+/* MIPS custom instructions. */
+DECLARE_INSN(mips_ccmov, MATCH_MIPS_CCMOV, MASK_MIPS_CCMOV)
+DECLARE_INSN(mips_lwp, MATCH_MIPS_LWP, MASK_MIPS_LWP)
+DECLARE_INSN(mips_ldp, MATCH_MIPS_LDP, MASK_MIPS_LDP)
+DECLARE_INSN(mips_swp, MATCH_MIPS_SWP, MASK_MIPS_SWP)
+DECLARE_INSN(mips_sdp, MATCH_MIPS_SDP, MASK_MIPS_SDP)
+DECLARE_INSN(mips_ehb, MATCH_MIPS_EHB, MASK_MIPS_EHB)
+DECLARE_INSN(mips_ihb, MATCH_MIPS_IHB, MASK_MIPS_IHB)
+DECLARE_INSN(mips_pause, MATCH_MIPS_PAUSE, MASK_MIPS_PAUSE)
+DECLARE_INSN(mips_pref, MATCH_MIPS_PREF, MASK_MIPS_PREF)
#endif /* DECLARE_INSN */
#ifdef DECLARE_CSR
/* Unprivileged Counter/Timers CSRs. */
@@ -5011,6 +5066,7 @@ DECLARE_CSR(mconfigptr, CSR_MCONFIGPTR, CSR_CLASS_I, PRIV_SPEC_CLASS_1P12, PRIV_
DECLARE_CSR(mstatus, CSR_MSTATUS, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
DECLARE_CSR(misa, CSR_MISA, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
DECLARE_CSR(medeleg, CSR_MEDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
+DECLARE_CSR(medelegh, CSR_MEDELEGH, CSR_CLASS_I_32, PRIV_SPEC_CLASS_1P13, PRIV_SPEC_CLASS_DRAFT)
DECLARE_CSR(mideleg, CSR_MIDELEG, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
DECLARE_CSR(mie, CSR_MIE, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
DECLARE_CSR(mtvec, CSR_MTVEC, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRIV_SPEC_CLASS_DRAFT)
@@ -5202,6 +5258,7 @@ DECLARE_CSR(mhpmevent31, CSR_MHPMEVENT31, CSR_CLASS_I, PRIV_SPEC_CLASS_1P10, PRI
/* Privileged Hypervisor CSRs. */
DECLARE_CSR(hstatus, CSR_HSTATUS, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(hedeleg, CSR_HEDELEG, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+DECLARE_CSR(hedelegh, CSR_HEDELEGH, CSR_CLASS_H_32, PRIV_SPEC_CLASS_1P13, PRIV_SPEC_CLASS_DRAFT)
DECLARE_CSR(hideleg, CSR_HIDELEG, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(hie, CSR_HIE, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(hcounteren, CSR_HCOUNTEREN, CSR_CLASS_H, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
@@ -5296,6 +5353,8 @@ DECLARE_CSR(hviprio1h, CSR_HVIPRIO1H, CSR_CLASS_SSAIA_AND_H_32, PRIV_SPEC_CLASS_
DECLARE_CSR(hviprio2h, CSR_HVIPRIO2H, CSR_CLASS_SSAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(vsieh, CSR_VSIEH, CSR_CLASS_SSAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(vsiph, CSR_VSIPH, CSR_CLASS_SSAIA_AND_H_32, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+/* Ssccfg CSR. */
+DECLARE_CSR(scountinhibit, CSR_SCOUNTINHIBIT, CSR_CLASS_SSCCFG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
/* Sscsrind extension */
DECLARE_CSR(sireg2, CSR_SIREG2, CSR_CLASS_SSCSRIND, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(sireg3, CSR_SIREG3, CSR_CLASS_SSCSRIND, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
@@ -5393,6 +5452,8 @@ DECLARE_CSR(vcsr, CSR_VCSR, CSR_CLASS_V, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_N
DECLARE_CSR(vl, CSR_VL, CSR_CLASS_V, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(vtype, CSR_VTYPE, CSR_CLASS_V, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
DECLARE_CSR(vlenb, CSR_VLENB, CSR_CLASS_V, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
+/* Ssqosid CSR. */
+DECLARE_CSR(srmcfg, CSR_SRMCFG, CSR_CLASS_SSQOSID, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
#endif /* DECLARE_CSR */
#ifdef DECLARE_CSR_ALIAS
DECLARE_CSR_ALIAS(dscratch, CSR_DSCRATCH0, CSR_CLASS_DEBUG, PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
diff --git a/include/opcode/riscv.h b/include/opcode/riscv.h
index 6bcea63..7fca806 100644
--- a/include/opcode/riscv.h
+++ b/include/opcode/riscv.h
@@ -132,6 +132,15 @@ static inline unsigned int riscv_insn_length (insn_t insn)
((RV_X(x, 25, 1)) | (RV_X(x, 20, 5) << 1) | (RV_IMM_SIGN_N(x, 20, 5) << 5))
#define EXTRACT_CV_SIMD_UIMM6(x) \
((RV_X(x, 25, 1)) | (RV_X(x, 20, 5) << 1))
+/* Vendor-specific (MIPS) extract macros. */
+#define EXTRACT_MIPS_LWP_IMM(x) \
+ (RV_X(x, 22, 5) << 2)
+#define EXTRACT_MIPS_LDP_IMM(x) \
+ (RV_X(x, 23, 4) << 3)
+#define EXTRACT_MIPS_SWP_IMM(x) \
+ ((RV_X(x, 25, 2) << 5) | (RV_X(x, 9, 3) << 2))
+#define EXTRACT_MIPS_SDP_IMM(x) \
+ ((RV_X(x, 25, 2) << 5) | (RV_X(x, 10, 2) << 3))
#define ENCODE_ITYPE_IMM(x) \
(RV_X(x, 0, 12) << 20)
@@ -200,6 +209,15 @@ static inline unsigned int riscv_insn_length (insn_t insn)
((RV_X(x, 0, 1) << 25) | (RV_X(x, 1, 5) << 20))
#define ENCODE_CV_SIMD_UIMM6(x) \
((RV_X(x, 0, 1) << 25) | (RV_X(x, 1, 5) << 20))
+/* Vendor-specific (MIPS) encode macros. */
+#define ENCODE_MIPS_LWP_IMM(x) \
+ (RV_X(x, 2, 5) << 22)
+#define ENCODE_MIPS_LDP_IMM(x) \
+ (RV_X(x, 3, 4) << 23)
+#define ENCODE_MIPS_SWP_IMM(x) \
+ ((RV_X(x, 5, 2) << 25) | (RV_X(x, 2, 3) << 9))
+#define ENCODE_MIPS_SDP_IMM(x) \
+ ((RV_X(x, 5, 2) << 25) | (RV_X(x, 3, 2) << 10))
#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))
@@ -383,6 +401,24 @@ static inline unsigned int riscv_insn_length (insn_t insn)
#define OP_MASK_XSO1 0x1
#define OP_SH_XSO1 26
+/* MIPS fields. */
+#define OP_MASK_MIPS_IMM9 0x1ff
+#define OP_SH_MIPS_IMM9 20
+#define OP_MASK_MIPS_HINT 0x1f
+#define OP_SH_MIPS_HINT 7
+#define OP_MASK_MIPS_LWP_OFFSET 0x1f
+#define OP_SH_MIPS_LWP_OFFSET 22
+#define OP_MASK_MIPS_LDP_OFFSET 0xf
+#define OP_SH_MIPS_LDP_OFFSET 23
+#define OP_MASK_MIPS_SWP_OFFSET9 0x7
+#define OP_SH_MIPS_SWP_OFFSET9 9
+#define OP_MASK_MIPS_SWP_OFFSET25 0x3
+#define OP_SH_MIPS_SWP_OFFSET25 25
+#define OP_MASK_MIPS_SDP_OFFSET10 0x3
+#define OP_SH_MIPS_SDP_OFFSET10 10
+#define OP_MASK_MIPS_SDP_OFFSET25 0x3
+#define OP_SH_MIPS_SDP_OFFSET25 25
+
/* ABI names for selected x-registers. */
#define X_RA 1
@@ -526,6 +562,9 @@ enum riscv_insn_class
INSN_CLASS_ZCMP,
INSN_CLASS_ZCMT,
INSN_CLASS_SMCTR_OR_SSCTR,
+ INSN_CLASS_ZILSD,
+ INSN_CLASS_ZCLSD,
+ INSN_CLASS_SMRNMI,
INSN_CLASS_SVINVAL,
INSN_CLASS_ZICBOM,
INSN_CLASS_ZICBOP,
@@ -554,6 +593,7 @@ enum riscv_insn_class
INSN_CLASS_XTHEADMEMPAIR,
INSN_CLASS_XTHEADSYNC,
INSN_CLASS_XTHEADVECTOR,
+ INSN_CLASS_XTHEADVDOT,
INSN_CLASS_XTHEADZVAMO,
INSN_CLASS_XVENTANACONDOPS,
INSN_CLASS_XSFVCP,
@@ -561,6 +601,10 @@ enum riscv_insn_class
INSN_CLASS_XSFVQMACCQOQ,
INSN_CLASS_XSFVQMACCDOD,
INSN_CLASS_XSFVFNRCLIPXFQF,
+ INSN_CLASS_XMIPSCBOP,
+ INSN_CLASS_XMIPSCMOV,
+ INSN_CLASS_XMIPSEXECTL,
+ INSN_CLASS_XMIPSLSP,
};
/* This structure holds information for a particular instruction. */
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 7b47a4d..69dad59 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2025-02-08 Alexandre Oliva <oliva@adacore.com>
+
+ * testsuite/ld-sparc/got-def.s: New test.
+ * testsuite/ld-sparc/sparc.exp: Add it.
+
2025-01-19 Nick Clifton <nickc@redhat.com>
* 2.44 Branch point.
diff --git a/ld/NEWS b/ld/NEWS
index acb3263..209f764 100644
--- a/ld/NEWS
+++ b/ld/NEWS
@@ -1,5 +1,22 @@
-*- text -*-
+* The linker's --stats option can take an optional argument which if used is
+ interpreted as a filename into which resource usage information should be
+ stored. As an alternative mechanism the LD_STATS environment variable can
+ also be used to achieve the same results. Resource usage information for
+ various phases of the linking operation is now included in the report.
+ If a map file is being produced then the information is also included there.
+ The --no-stats option can be used to disable stat reporting, should it have
+ been enabled.
+
+* Remove the linker -taso option for Alpha target, as Linux/Alpha kernel
+ support for 32-bit pointers has been removed.
+
+* On avr, the default linker scripts now assert that the .progmem sections
+ don't extend past 0xffff since they are accessed by means of LPM.
+ For data in program memory that may be located past 0xffff, a .progmemx
+ section should be used.
+
* On s390, generate ".eh_frame" unwind information for the linker generated
.plt section. Enabled by default. Can be disabled using linker option
--no-ld-generated-unwind-info.
diff --git a/ld/config.in b/ld/config.in
index 2d7b640..3781224 100644
--- a/ld/config.in
+++ b/ld/config.in
@@ -122,6 +122,9 @@
/* Define to 1 if you have the `getpagesize' function. */
#undef HAVE_GETPAGESIZE
+/* Define to 1 if you have the `getrusage' function. */
+#undef HAVE_GETRUSAGE
+
/* Define if the GNU gettext() function is already present or preinstalled. */
#undef HAVE_GETTEXT
@@ -231,9 +234,6 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
-/* The size of `void *', as computed by sizeof. */
-#undef SIZEOF_VOID_P
-
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
diff --git a/ld/configure b/ld/configure
index b7af25d..64b42f1 100755
--- a/ld/configure
+++ b/ld/configure
@@ -696,8 +696,6 @@ install_as_default
TARGET_SYSTEM_ROOT_DEFINE
TARGET_SYSTEM_ROOT
use_sysroot
-ENABLE_BFD_64_BIT_FALSE
-ENABLE_BFD_64_BIT_TRUE
LARGEFILE_CPPFLAGS
CXXCPP
OTOOL64
@@ -842,7 +840,6 @@ enable_largefile
enable_checking
with_lib_path
enable_targets
-enable_64_bit_bfd
with_sysroot
enable_gold
enable_got
@@ -1536,7 +1533,6 @@ Optional Features:
--disable-largefile omit support for large files
--enable-checking enable run-time checks
--enable-targets alternative target configurations
- --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)
--enable-gold[=ARG] build gold [ARG={default,yes,no}]
--enable-got=<type> GOT handling scheme (target, single, negative,
multigot)
@@ -2177,189 +2173,6 @@ fi
} # ac_fn_cxx_try_link
-# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
-# --------------------------------------------
-# Tries to find the compile-time value of EXPR in a program that includes
-# INCLUDES, setting VAR accordingly. Returns whether the value could be
-# computed
-ac_fn_c_compute_int ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if test "$cross_compiling" = yes; then
- # Depending upon the size, compute the lo and hi bounds.
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) >= 0)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_lo=0 ac_mid=0
- while :; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_hi=$ac_mid; break
-else
- as_fn_arith $ac_mid + 1 && ac_lo=$as_val
- if test $ac_lo -le $ac_mid; then
- ac_lo= ac_hi=
- break
- fi
- as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) < 0)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_hi=-1 ac_mid=-1
- while :; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) >= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_lo=$ac_mid; break
-else
- as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
- if test $ac_mid -le $ac_hi; then
- ac_lo= ac_hi=
- break
- fi
- as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- ac_lo= ac_hi=
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
- as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_hi=$ac_mid
-else
- as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in #((
-?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
-'') ac_retval=1 ;;
-esac
- else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-static long int longval () { return $2; }
-static unsigned long int ulongval () { return $2; }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
- FILE *f = fopen ("conftest.val", "w");
- if (! f)
- return 1;
- if (($2) < 0)
- {
- long int i = longval ();
- if (i != ($2))
- return 1;
- fprintf (f, "%ld", i);
- }
- else
- {
- unsigned long int i = ulongval ();
- if (i != ($2))
- return 1;
- fprintf (f, "%lu", i);
- }
- /* Do not output a trailing newline, as this causes \r\n confusion
- on some platforms. */
- return ferror (f) || fclose (f) != 0;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- echo >>conftest.val; read $3 <conftest.val; ac_retval=0
-else
- ac_retval=1
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-rm -f conftest.val
-
- fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_compute_int
-
# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
# ---------------------------------------------
# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
@@ -11688,7 +11501,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11691 "configure"
+#line 11504 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11794,7 +11607,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11797 "configure"
+#line 11610 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -15462,70 +15275,40 @@ if test "${enable_targets+set}" = set; then :
esac
fi
-# Check whether --enable-64-bit-bfd was given.
-if test "${enable_64_bit_bfd+set}" = set; then :
- enableval=$enable_64_bit_bfd; case $enableval in #(
- yes|no) :
- ;; #(
- *) :
- as_fn_error $? "bad value ${enableval} for 64-bit-bfd option" "$LINENO" 5 ;; #(
- *) :
- ;;
-esac
-else
- enable_64_bit_bfd=no
-fi
-
-
-if test "x$enable_64_bit_bfd" = "xno"; then :
- # The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5
-$as_echo_n "checking size of void *... " >&6; }
-if ${ac_cv_sizeof_void_p+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then :
-
-else
- if test "$ac_cv_type_void_p" = yes; then
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (void *)
-See \`config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_void_p=0
- fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5
-$as_echo "$ac_cv_sizeof_void_p" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
+# See whether 64-bit bfd lib has been enabled.
+OLD_CPPFLAGS=$CPPFLAGS
+# Put the old CPPFLAGS last, in case the user's CPPFLAGS point somewhere
+# with bfd, with -I/foo/include. We always want our bfd.
+CPPFLAGS="-I${srcdir}/../include -I../bfd -I${srcdir}/../bfd $CPPFLAGS"
+# Note we cannot cache the result of this check because BFD64 may change
+# when a secondary target has been added or removed and we have no access
+# to this information here.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether BFD is 64-bit" >&5
+$as_echo_n "checking whether BFD is 64-bit... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include "bfd.h"
+int
+main ()
+{
+#ifdef BFD64
+HAVE_BFD64
+#endif
+ ;
+ return 0;
+}
_ACEOF
-
-
- if test "x$ac_cv_sizeof_void_p" = "x8"; then :
- enable_64_bit_bfd=yes
-fi
-
-fi
-
- if test "x$enable_64_bit_bfd" = "xyes"; then
- ENABLE_BFD_64_BIT_TRUE=
- ENABLE_BFD_64_BIT_FALSE='#'
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "HAVE_BFD64" >/dev/null 2>&1; then :
+ have_64_bit_bfd=yes
else
- ENABLE_BFD_64_BIT_TRUE='#'
- ENABLE_BFD_64_BIT_FALSE=
+ have_64_bit_bfd=no
fi
+rm -f conftest*
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_64_bit_bfd" >&5
+$as_echo "$have_64_bit_bfd" >&6; }
+CPPFLAGS=$OLD_CPPFLAGS
# Check whether --with-sysroot was given.
@@ -18753,7 +18536,7 @@ fi
done
-for ac_func in close glob lseek mkstemp open realpath waitpid
+for ac_func in close getrusage glob lseek mkstemp open realpath waitpid
do :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -19306,11 +19089,11 @@ do
EMUL=$targ_emul
fi
- if test x${enable_64_bit_bfd} = xno; then
+ if test x${have_64_bit_bfd} = xno; then
. ${srcdir}/../bfd/config.bfd
fi
- if test x${enable_64_bit_bfd} = xyes; then
+ if test x${have_64_bit_bfd} = xyes; then
targ_extra_emuls="$targ_extra_emuls $targ64_extra_emuls"
targ_extra_libpath="$targ_extra_libpath $targ64_extra_libpath"
fi
@@ -19534,7 +19317,7 @@ _ACEOF
if test x${all_targets} = xtrue; then
- if test x${enable_64_bit_bfd} = xyes; then
+ if test x${have_64_bit_bfd} = xyes; then
EMULATION_OFILES='$(ALL_EMULATIONS) $(ALL_64_EMULATIONS)'
EMUL_EXTRA_OFILES='$(ALL_EMUL_EXTRA_OFILES) $(ALL_64_EMUL_EXTRA_OFILES)'
else
@@ -19737,10 +19520,6 @@ if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${ENABLE_BFD_64_BIT_TRUE}" && test -z "${ENABLE_BFD_64_BIT_FALSE}"; then
- as_fn_error $? "conditional \"ENABLE_BFD_64_BIT\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
if test -z "${ENABLE_LIBCTF_TRUE}" && test -z "${ENABLE_LIBCTF_FALSE}"; then
as_fn_error $? "conditional \"ENABLE_LIBCTF\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
diff --git a/ld/configure.ac b/ld/configure.ac
index 228f2ee..e5f56dd 100644
--- a/ld/configure.ac
+++ b/ld/configure.ac
@@ -414,7 +414,7 @@ AC_SUBST(NATIVE_LIB_DIRS)
AC_CHECK_HEADERS(fcntl.h elf-hints.h limits.h inttypes.h stdint.h \
sys/file.h sys/mman.h sys/param.h sys/stat.h sys/time.h \
sys/types.h unistd.h)
-AC_CHECK_FUNCS(close glob lseek mkstemp open realpath waitpid)
+AC_CHECK_FUNCS(close getrusage glob lseek mkstemp open realpath waitpid)
BFD_BINARY_FOPEN
@@ -495,11 +495,11 @@ do
EMUL=$targ_emul
fi
- if test x${enable_64_bit_bfd} = xno; then
+ if test x${have_64_bit_bfd} = xno; then
. ${srcdir}/../bfd/config.bfd
fi
- if test x${enable_64_bit_bfd} = xyes; then
+ if test x${have_64_bit_bfd} = xyes; then
targ_extra_emuls="$targ_extra_emuls $targ64_extra_emuls"
targ_extra_libpath="$targ_extra_libpath $targ64_extra_libpath"
fi
@@ -686,7 +686,7 @@ AC_SUBST(TDIRS)
AM_SUBST_NOTMAKE(TDIRS)
if test x${all_targets} = xtrue; then
- if test x${enable_64_bit_bfd} = xyes; then
+ if test x${have_64_bit_bfd} = xyes; then
EMULATION_OFILES='$(ALL_EMULATIONS) $(ALL_64_EMULATIONS)'
EMUL_EXTRA_OFILES='$(ALL_EMUL_EXTRA_OFILES) $(ALL_64_EMUL_EXTRA_OFILES)'
else
diff --git a/ld/emulparams/aarch64elf.sh b/ld/emulparams/aarch64elf.sh
index 72616b5..aa051c7 100644
--- a/ld/emulparams/aarch64elf.sh
+++ b/ld/emulparams/aarch64elf.sh
@@ -18,6 +18,7 @@ GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
+COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
ENTRY=_start
EMBEDDED=yes
diff --git a/ld/emulparams/aarch64elf32.sh b/ld/emulparams/aarch64elf32.sh
index 45bf31a..0565b7a 100644
--- a/ld/emulparams/aarch64elf32.sh
+++ b/ld/emulparams/aarch64elf32.sh
@@ -18,6 +18,7 @@ GENERATE_SHLIB_SCRIPT=yes
GENERATE_PIE_SCRIPT=yes
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
+COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
ENTRY=_start
EMBEDDED=yes
diff --git a/ld/emultempl/alphaelf.em b/ld/emultempl/alphaelf.em
index 5ae2587..995d7f0 100644
--- a/ld/emultempl/alphaelf.em
+++ b/ld/emultempl/alphaelf.em
@@ -28,14 +28,8 @@ fragment <<EOF
#include "elf/alpha.h"
#include "elf-bfd.h"
-static bool limit_32bit;
-
extern bool elf64_alpha_use_secureplt;
-
-/* Set the start address as in the Tru64 ld. */
-#define ALPHA_TEXT_START_32BIT 0x12000000
-
static void
alpha_after_open (void)
{
@@ -73,14 +67,6 @@ static void
alpha_after_parse (void)
{
link_info.relax_pass = 2;
- if (limit_32bit
- && !bfd_link_pic (&link_info)
- && !bfd_link_relocatable (&link_info))
- lang_section_start (".interp",
- exp_binop ('+',
- exp_intop (ALPHA_TEXT_START_32BIT),
- exp_nameop (SIZEOF_HEADERS, NULL)),
- NULL);
ldelf_after_parse ();
}
@@ -97,40 +83,24 @@ alpha_before_allocation (void)
&& ! RELAXATION_DISABLED_BY_USER)
ENABLE_RELAXATION;
}
-
-static void
-alpha_finish (void)
-{
- if (limit_32bit)
- elf_elfheader (link_info.output_bfd)->e_flags |= EF_ALPHA_32BIT;
-
- ldelf_finish ();
-}
EOF
# Define some shell vars to insert bits of code into the standard elf
# parse_args and list_options functions.
#
PARSE_AND_LIST_LONGOPTS='
- { "taso", no_argument, NULL, OPTION_TASO },
{ "secureplt", no_argument, NULL, OPTION_SECUREPLT },
{ "no-secureplt", no_argument, NULL, OPTION_NO_SECUREPLT },
'
PARSE_AND_LIST_OPTIONS='
fprintf (file, _("\
- --taso Load executable in the lower 31-bit addressable\n\
- virtual address range\n"));
- fprintf (file, _("\
--secureplt Force PLT in text segment\n"));
fprintf (file, _("\
--no-secureplt Force PLT in data segment\n"));
'
PARSE_AND_LIST_ARGS_CASES='
- case OPTION_TASO:
- limit_32bit = 1;
- break;
case OPTION_SECUREPLT:
elf64_alpha_use_secureplt = true;
break;
@@ -144,4 +114,3 @@ PARSE_AND_LIST_ARGS_CASES='
LDEMUL_AFTER_OPEN=alpha_after_open
LDEMUL_AFTER_PARSE=alpha_after_parse
LDEMUL_BEFORE_ALLOCATION=alpha_before_allocation
-LDEMUL_FINISH=alpha_finish
diff --git a/ld/emultempl/emulation.em b/ld/emultempl/emulation.em
index 7fe821a..8ff71d6 100644
--- a/ld/emultempl/emulation.em
+++ b/ld/emultempl/emulation.em
@@ -36,6 +36,7 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
${LDEMUL_EMIT_CTF_EARLY-NULL},
${LDEMUL_ACQUIRE_STRINGS_FOR_CTF-NULL},
${LDEMUL_NEW_DYNSYM_FOR_CTF-NULL},
- ${LDEMUL_PRINT_SYMBOL-NULL}
+ ${LDEMUL_PRINT_SYMBOL-NULL},
+ ${LDEMUL_FIND_START_SYMBOL-NULL}
};
EOF
diff --git a/ld/emultempl/kvxelf.em b/ld/emultempl/kvxelf.em
index 186f148..c9a83f7 100644
--- a/ld/emultempl/kvxelf.em
+++ b/ld/emultempl/kvxelf.em
@@ -173,7 +173,7 @@ elf${ELFSIZE}_kvx_add_stub_section (const char *stub_sec_name,
return stub_sec;
err_ret:
- einfo ("%X%P: can not make stub section: %E\n");
+ einfo (_("%X%P: can not make stub section: %E\n"));
return NULL;
}
@@ -216,7 +216,7 @@ gld${EMULATION_NAME}_after_allocation (void)
ret = bfd_elf_discard_info (link_info.output_bfd, & link_info);
if (ret < 0)
{
- einfo ("%X%P: .eh_frame/.stab edit: %E\n");
+ einfo (_("%X%P: .eh_frame/.stab edit: %E\n"));
return;
}
else if (ret > 0)
@@ -232,7 +232,7 @@ gld${EMULATION_NAME}_after_allocation (void)
{
if (ret < 0)
{
- einfo ("%X%P: could not compute sections lists for stub generation: %E\n");
+ einfo (_("%X%P: could not compute sections lists for stub generation: %E\n"));
return;
}
@@ -246,7 +246,7 @@ gld${EMULATION_NAME}_after_allocation (void)
& elf${ELFSIZE}_kvx_add_stub_section,
& gldkvx_layout_sections_again))
{
- einfo ("%X%P: cannot size stub section: %E\n");
+ einfo (_("%X%P: cannot size stub section: %E\n"));
return;
}
}
@@ -266,7 +266,7 @@ gld${EMULATION_NAME}_finish (void)
&& stub_file->the_bfd->sections != NULL)
{
if (! elf${ELFSIZE}_kvx_build_stubs (& link_info))
- einfo ("%X%P: can not build stubs: %E\n");
+ einfo (_("%X%P: can not build stubs: %E\n"));
}
}
@@ -291,7 +291,7 @@ kvx_elf_create_output_section_statements (void)
bfd_get_arch (link_info.output_bfd),
bfd_get_mach (link_info.output_bfd)))
{
- einfo ("%X%P: can not create BFD %E\n");
+ fatal (_("%P: can not create BFD %E\n"));
return;
}
@@ -299,7 +299,7 @@ kvx_elf_create_output_section_statements (void)
ldlang_add_file (stub_file);
if (!kvx_elf${ELFSIZE}_init_stub_bfd (&link_info, stub_file->the_bfd))
- einfo ("%P: can not init BFD: %E\n");
+ fatal (_("%P: can not init BFD: %E\n"));
}
diff --git a/ld/emultempl/pe.em b/ld/emultempl/pe.em
index 9a2b576..b522687 100644
--- a/ld/emultempl/pe.em
+++ b/ld/emultempl/pe.em
@@ -7,11 +7,11 @@ else
fi
case ${target} in
- *-*-cygwin*)
- cygwin_behavior=1
+ *-*-mingw*)
+ mingw_behavior=1
;;
*)
- cygwin_behavior=0;
+ mingw_behavior=0
;;
esac
@@ -126,9 +126,10 @@ fragment <<EOF
#define DEFAULT_PSEUDO_RELOC_VERSION 1
#endif
-#define DEFAULT_DLL_CHARACTERISTICS (${cygwin_behavior} ? 0 : \
- IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE \
- | IMAGE_DLL_CHARACTERISTICS_NX_COMPAT)
+#define DEFAULT_DLL_CHARACTERISTICS (${mingw_behavior} \
+ ? IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE \
+ | IMAGE_DLL_CHARACTERISTICS_NX_COMPAT \
+ : 0)
#if defined(TARGET_IS_i386pe) || ! defined(DLL_SUPPORT)
#define PE_DEF_SUBSYSTEM IMAGE_SUBSYSTEM_WINDOWS_CUI
@@ -2447,6 +2448,55 @@ gld${EMULATION_NAME}_find_potential_libraries
{
return ldfile_open_file_search (name, entry, "", ".lib");
}
+
+static struct bfd_link_hash_entry *
+gld${EMULATION_NAME}_find_alt_start_symbol
+ (struct bfd_sym_chain *entry)
+{
+#if defined (TARGET_IS_i386pe)
+ bool entry_has_stdcall_suffix;
+#endif
+ struct bfd_link_hash_entry *h;
+ size_t entry_name_len;
+ char *symbol_name;
+ const char *prefix;
+ const char *suffix;
+
+ entry_name_len = strlen (entry->name);
+
+ if (is_underscoring ())
+ prefix = "_";
+ else
+ prefix = "";
+
+#if defined (TARGET_IS_i386pe)
+ if ((entry_name_len > 2 && entry->name[entry_name_len-2] == '@' && ISDIGIT (entry->name[entry_name_len-1]))
+ || (entry_name_len > 3 && entry->name[entry_name_len-3] == '@' && ISDIGIT (entry->name[entry_name_len-2]) && ISDIGIT (entry->name[entry_name_len-1]))
+ || (entry_name_len > 4 && entry->name[entry_name_len-4] == '@' && ISDIGIT (entry->name[entry_name_len-3]) && ISDIGIT (entry->name[entry_name_len-2]) && ISDIGIT (entry->name[entry_name_len-1])))
+ entry_has_stdcall_suffix = true;
+ else
+ entry_has_stdcall_suffix = false;
+
+ if (!entry_has_stdcall_suffix && (bfd_link_dll (&link_info) || dll))
+ suffix = "@12";
+ else if (!entry_has_stdcall_suffix && pe_subsystem == 1 /* NT kernel driver */)
+ suffix = "@8";
+ else
+#endif
+ suffix = "";
+
+ if (*prefix == '\0' && *suffix == '\0')
+ return NULL;
+
+ symbol_name = xmalloc (entry_name_len + 5);
+ strcpy (symbol_name, prefix);
+ strcat (symbol_name, entry->name);
+ strcat (symbol_name, suffix);
+
+ h = bfd_link_hash_lookup (link_info.hash, symbol_name, false, false, true);
+ free (symbol_name);
+ return h;
+}
static char *
gld${EMULATION_NAME}_get_script (int *isfile)
@@ -2525,5 +2575,6 @@ LDEMUL_UNRECOGNIZED_FILE=gld${EMULATION_NAME}_unrecognized_file
LDEMUL_LIST_OPTIONS=gld${EMULATION_NAME}_list_options
LDEMUL_RECOGNIZED_FILE=gld${EMULATION_NAME}_recognized_file
LDEMUL_FIND_POTENTIAL_LIBRARIES=gld${EMULATION_NAME}_find_potential_libraries
+LDEMUL_FIND_START_SYMBOL=gld${EMULATION_NAME}_find_alt_start_symbol
source_em ${srcdir}/emultempl/emulation.em
diff --git a/ld/emultempl/pep.em b/ld/emultempl/pep.em
index 440c0bf..60a8339 100644
--- a/ld/emultempl/pep.em
+++ b/ld/emultempl/pep.em
@@ -9,11 +9,15 @@ fi
case ${target} in
*-*-cygwin*)
move_default_addr_high=1
- cygwin_behavior=1
+ mingw_behavior=0
+ ;;
+ *-*-mingw*)
+ move_default_addr_high=0
+ mingw_behavior=1
;;
*)
- move_default_addr_high=0;
- cygwin_behavior=0;
+ move_default_addr_high=0
+ mingw_behavior=0
;;
esac
@@ -126,10 +130,11 @@ fragment <<EOF
#define DLL_SUPPORT
#endif
-#define DEFAULT_DLL_CHARACTERISTICS (${cygwin_behavior} ? 0 : \
- IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE \
- | IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA \
- | IMAGE_DLL_CHARACTERISTICS_NX_COMPAT)
+#define DEFAULT_DLL_CHARACTERISTICS (${mingw_behavior} \
+ ? IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE \
+ | IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA \
+ | IMAGE_DLL_CHARACTERISTICS_NX_COMPAT \
+ : 0)
#if defined(TARGET_IS_i386pep) || defined(COFF_WITH_peAArch64) || ! defined(DLL_SUPPORT)
#define PE_DEF_SUBSYSTEM IMAGE_SUBSYSTEM_WINDOWS_CUI
diff --git a/ld/emultempl/ppc64elf.em b/ld/emultempl/ppc64elf.em
index f7a8f1e..857cf54 100644
--- a/ld/emultempl/ppc64elf.em
+++ b/ld/emultempl/ppc64elf.em
@@ -606,14 +606,15 @@ gld${EMULATION_NAME}_finish (void)
einfo (_("%X%P: can not build stubs: %E\n"));
fflush (stdout);
+ FILE * out = config.stats_file ? config.stats_file : stderr;
for (line = msg; line != NULL; line = endline)
{
endline = strchr (line, '\n');
if (endline != NULL)
*endline++ = '\0';
- fprintf (stderr, "%s: %s\n", program_name, line);
+ fprintf (out, "%s: %s\n", program_name, line);
}
- fflush (stderr);
+ fflush (out);
free (msg);
ldelf_finish ();
diff --git a/ld/emultempl/solaris2.em b/ld/emultempl/solaris2.em
index a002b9f..6198a82 100644
--- a/ld/emultempl/solaris2.em
+++ b/ld/emultempl/solaris2.em
@@ -135,7 +135,7 @@ elf_solaris2_before_allocation (void)
basever->vernum = 0;
}
- gld${EMULATION_NAME}_before_allocation ();
+ ${LDEMUL_BEFORE_ALLOCATION-gld${EMULATION_NAME}_before_allocation} ();
}
EOF
diff --git a/ld/ld.h b/ld/ld.h
index 254f0a0..c868815 100644
--- a/ld/ld.h
+++ b/ld/ld.h
@@ -295,6 +295,10 @@ typedef struct
char *map_filename;
FILE *map_file;
+ char *stats_filename;
+ /* If non-NULL then resource use information should be written to this file. */
+ FILE *stats_file;
+
char *dependency_file;
unsigned int split_by_reloc;
@@ -330,6 +334,39 @@ typedef struct
enum compressed_debug_section_type compress_debug;
} ld_config_type;
+/* An enumeration of the linker phases for which resource usage information
+ is recorded. PHASE_ALL is special as it covers the entire link process.
+
+ Instructions for adding a new phase:
+ 1. Add an entry to this enumeration.
+ 2. Add an entry for the phase to the phase_data[] structure in ldmain.c.
+ 3. Add calls to ld_start_phase(PHASE_xxx) and ld_stop_phase(PHASE_xxx)
+ at the appropriate place(s) in the code. It does not matter if the
+ new phase overlaps with or is contained by any other phase.
+
+ Instructions for adding a new resource:
+ 1. If necessary add a new field to the phase_data structure defined in
+ ldmain.c.
+ 2. Add code to initialise the field in ld_main.c:ld_start_phase().
+ 3. Add code to finalise the field in ld_main.c:ld_stop_phase().
+ 4. Add code to report the field in ld_main.c:report_phases(). */
+typedef enum
+{
+ PHASE_ALL = 0,
+ PHASE_CTF,
+ PHASE_MERGE,
+ PHASE_PARSE,
+ PHASE_PLUGINS,
+ PHASE_PROCESS,
+ PHASE_WRITE,
+
+ NUM_PHASES /* This must be the last entry. */
+}
+ld_phase;
+
+extern void ld_start_phase (ld_phase);
+extern void ld_stop_phase (ld_phase);
+
extern ld_config_type config;
extern FILE * saved_script_handle;
diff --git a/ld/ld.texi b/ld/ld.texi
index 6d51ccb..afcc3fe 100644
--- a/ld/ld.texi
+++ b/ld/ld.texi
@@ -531,7 +531,9 @@ named @var{entry}, the linker will try to parse @var{entry} as a number,
and use that as the entry address (the number will be interpreted in
base 10; you may use a leading @samp{0x} for base 16, or a leading
@samp{0} for base 8). @xref{Entry Point}, for a discussion of defaults
-and other ways of specifying the entry point.
+and other ways of specifying the entry point. For i386 PE, @var{entry}
+can be also the original function name (without the leading underscore
+and/or the trailing stdcall @samp{@@number} when applicable).
@kindex --exclude-libs
@item --exclude-libs @var{lib},@var{lib},...
@@ -1022,7 +1024,7 @@ Write a @dfn{dependency file} to @var{depfile}. This file contains a rule
suitable for @code{make} describing the output file and all the input files
that were read to produce it. The output is similar to the compiler's
output with @samp{-M -MP} (@pxref{Preprocessor Options,, Options
-Controlling the Preprocessor, gcc.info, Using the GNU Compiler
+Controlling the Preprocessor, gcc, Using the GNU Compiler
Collection}). Note that there is no option like the compiler's @samp{-MM},
to exclude ``system files'' (which is not a well-specified concept in the
linker, unlike ``system headers'' in the compiler). So the output from
@@ -2184,6 +2186,9 @@ Memory region Used Size Region Size %age Used
RAM: 32 B 2 GB 0.00%
@end smallexample
+Note: if you want to find out about the memory usage of the linker
+itself, then the @option{--stats} option will do this.
+
@cindex help
@cindex usage
@kindex --help
@@ -2706,10 +2711,76 @@ more than @var{count} relocations one output section will contain that
many relocations. @var{count} defaults to a value of 32768.
@kindex --stats
-@item --stats
+@item --stats[=@var{filename}]
Compute and display statistics about the operation of the linker, such
as execution time and memory usage.
+If the optional @var{filename} argument is not supplied then only
+basic information is reported, and it is sent to the standard error
+output stream. If the @var{filename} argument is supplied then
+extended information is written to the named file. If @var{filename}
+is set to just the @var{-} symbol, then the extended information is
+sent to the standard output stream. If the @var{filename} starts with
+@var{+} then the file is opened in append mode rather than overwrite
+mode.
+
+If the @option{-Map} option has been enabled then the information is
+also recorded in the map file as well. Note: if both the
+@option{--stats} option and the @option{-Map} options have been given
+@var{filename} arguments and they match, then the information will
+only be written out once not twice.
+
+If the @code{LD_STATS} environment variable is defined then this
+behaves likes the @option{--stats} option. If the variable's value is
+a string then this will used as the name of a file into which the
+information should be recorded. Otherwise the information
+will be sent to the standard output stream. Using the environment
+variable allows stats to be recorded without having to alter the
+linker's command line. Note: if both the environment variable and the
+@option{--stats} option are used then the @option{--stats} option
+takes precedence.
+
+The extended information reported includes the cpu time used and, if
+the @var{getrusage()} system library call is available then memory use
+is recorded as well. This information is reported for individual
+parts of the linking process which are referred to as @emph{phases}.
+In addition the information is also reported for a special phase
+called @emph{ALL} which covers the entire linking process. Note that
+individual phases can contain or overlap with each other so it should
+not be assumed that the overall resources used by the linker is the
+sum of the resources used by the individual phases.
+
+In addition when extended information is being reported the linker
+version, command line arguments and linker start time are also
+included. This makes it easier to handle the situation where multiple
+links are being invoked by a build system and to indentify exactly
+which arguments were responsible for producing the statistics that are
+reported.
+
+The extended output looks something like this:
+
+@smallexample
+Stats: linker version: (GNU Binutils) 2.44.50.20250401
+Stats: linker started: Wed Apr 2 09:36:41 2025
+Stats: args: ld -z norelro -z nomemory-seal -z no-separate-code -o a.out [...]
+
+Stats: phase cpu time memory user time system time
+Stats: name (microsec) (KiB) (seconds) (seconds)
+Stats: ALL 390082 217740 0 0
+Stats: ctf processing 12 0 0 0
+Stats: string merge 1324 0 0 0
+Stats: parsing 349 288 0 0
+Stats: plugins 1 0 0 0
+Stats: processing files 259616 214524 0 0
+Stats: write 116493 0 0 0
+@end smallexample
+
+@kindex --no-stats
+@item --no-stats
+Disables the reporting of usage statistics, should it have been
+enabled via the @option{--stats} command line option or the
+@var{LD_STATS} environment variable.
+
@kindex --sysroot=@var{directory}
@item --sysroot=@var{directory}
Use @var{directory} as the location of the sysroot, overriding the
@@ -3712,7 +3783,8 @@ of the PE file header:
@item --high-entropy-va
@itemx --disable-high-entropy-va
Image is compatible with 64-bit address space layout randomization
-(ASLR). This option is enabled by default for 64-bit PE images.
+(ASLR). This option is enabled by default for 64-bit PE images in
+MinGW targets.
This option also implies @option{--dynamicbase} and
@option{--enable-reloc-section}.
@@ -3722,9 +3794,9 @@ This option also implies @option{--dynamicbase} and
@itemx --disable-dynamicbase
The image base address may be relocated using address space layout
randomization (ASLR). This feature was introduced with MS Windows
-Vista for i386 PE targets. This option is enabled by default but
-can be disabled via the @option{--disable-dynamicbase} option.
-This option also implies @option{--enable-reloc-section}.
+Vista for i386 PE targets. This option is enabled by default for MinGW
+targets but can be disabled via the @option{--disable-dynamicbase}
+option. This option also implies @option{--enable-reloc-section}.
@kindex --forceinteg
@item --forceinteg
@@ -3737,7 +3809,7 @@ default.
@item --disable-nxcompat
The image is compatible with the Data Execution Prevention.
This feature was introduced with MS Windows XP SP2 for i386 PE
-targets. The option is enabled by default.
+targets. The option is enabled by default for MinGW targets.
@kindex --no-isolation
@item --no-isolation
@@ -4078,6 +4150,15 @@ If the PE/COFF specific @option{--insert-timestamp} is active and the
timestamp value in this variable will be inserted into the COFF header
instead of the current time.
+@kindex LD_STATS
+@cindex LD_STATS
+If the @code{LD_STATS} environment variable is defined then linker
+resource use information will be recorded, just as if the
+@option{--stats} option had been used. If the @code{LD_STATS}
+variable has a string value then this will used as the name of a file
+into which the information should be stored. Otherwise the information
+will be sent to the standard output stream.
+
@c man end
@end ifset
@@ -5965,7 +6046,13 @@ parentheses. The following types are defined:
@item NOLOAD
The section should be marked as not loadable, so that it will not be
-loaded into memory when the program is run.
+loaded into memory when the program is run. When generating an ELF
+output file, the memory space is allocated for the section at run-time,
+except for SHT_NOTE sections. For other output files, no memory space
+is allocated at run-time.
+
+Note - the ELF behaviour is a bug that may change to be consistent
+with non-ELF targets.
@item READONLY
The section should be marked as read-only.
@@ -9599,7 +9686,7 @@ format can be supported simply by creating a new BFD back end and adding
it to the library. To conserve runtime memory, however, the linker and
associated tools are usually configured to support only a subset of the
object file formats available. You can use @code{objdump -i}
-(@pxref{objdump,,objdump,binutils.info,The GNU Binary Utilities}) to
+(@pxref{objdump,,objdump,binutils,The GNU Binary Utilities}) to
list all the formats available for your configuration.
@cindex BFD requirements
diff --git a/ld/ldemul.c b/ld/ldemul.c
index dce0d38..35f91a2 100644
--- a/ld/ldemul.c
+++ b/ld/ldemul.c
@@ -35,6 +35,14 @@
static ld_emulation_xfer_type *ld_emulation;
+struct bfd_link_hash_entry *
+ldemul_find_alt_start_symbol (struct bfd_sym_chain *entry)
+{
+ if (ld_emulation->find_alt_start_symbol)
+ return ld_emulation->find_alt_start_symbol (entry);
+ return NULL;
+}
+
void
ldemul_hll (char *name)
{
diff --git a/ld/ldemul.h b/ld/ldemul.h
index aa014ae..c58d4c2 100644
--- a/ld/ldemul.h
+++ b/ld/ldemul.h
@@ -115,9 +115,10 @@ extern void ldemul_acquire_strings_for_ctf
(struct ctf_dict *, struct elf_strtab_hash *);
extern void ldemul_new_dynsym_for_ctf
(struct ctf_dict *, int symidx, struct elf_internal_sym *);
-
extern bool ldemul_print_symbol
(struct bfd_link_hash_entry *hash_entry, void *ptr);
+extern struct bfd_link_hash_entry * ldemul_find_alt_start_symbol
+ (struct bfd_sym_chain *);
typedef struct ld_emulation_xfer_struct {
/* Run before parsing the command line and script file.
@@ -259,6 +260,11 @@ typedef struct ld_emulation_xfer_struct {
bool (*print_symbol)
(struct bfd_link_hash_entry *hash_entry, void *ptr);
+ /* Called when ENTRY->name cannot be found by a direct lookup in INFO->hash.
+ Allows emulations to try variations of the name. */
+ struct bfd_link_hash_entry * (*find_alt_start_symbol)
+ (struct bfd_sym_chain *entry);
+
} ld_emulation_xfer_type;
typedef enum {
diff --git a/ld/ldlang.c b/ld/ldlang.c
index d2c9b96..32e6e7a 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -322,7 +322,7 @@ spec_match (const struct wildcard_spec *spec, const char *name)
}
static char *
-ldirname (const char *name)
+stat_ldirname (const char *name)
{
const char *base = lbasename (name);
@@ -1266,7 +1266,7 @@ new_afile (const char *name,
/* If name is a relative path, search the directory of the current linker
script first. */
if (from_filename && !IS_ABSOLUTE_PATH (name))
- p->extra_search_path = ldirname (from_filename);
+ p->extra_search_path = stat_ldirname (from_filename);
p->flags.real = true;
p->flags.search_dirs = true;
break;
@@ -2486,11 +2486,18 @@ lang_map (void)
}
static bool
+is_defined (struct bfd_link_hash_entry *h)
+{
+ return h != NULL
+ && (h->type == bfd_link_hash_defined
+ || h->type == bfd_link_hash_defweak);
+}
+
+static bool
sort_def_symbol (struct bfd_link_hash_entry *hash_entry,
void *info ATTRIBUTE_UNUSED)
{
- if ((hash_entry->type == bfd_link_hash_defined
- || hash_entry->type == bfd_link_hash_defweak)
+ if (is_defined (hash_entry)
&& hash_entry->u.def.section->owner != link_info.output_bfd
&& hash_entry->u.def.section->owner != NULL)
{
@@ -2827,8 +2834,10 @@ lang_add_section (lang_statement_list_type *ptr,
/* Unfortunately GNU ld has managed to evolve two different
meanings to NOLOAD in scripts. ELF gets a .bss style noload,
alloc, no contents section. All others get a noload, noalloc
- section. */
- if (bfd_get_flavour (link_info.output_bfd) == bfd_target_elf_flavour)
+ section. Unlike a .bss style section, if a note section is
+ marked as NOLOAD, also clear SEC_ALLOC. */
+ if (bfd_get_flavour (link_info.output_bfd) == bfd_target_elf_flavour
+ && elf_section_type (section) != SHT_NOTE)
flags &= ~SEC_HAS_CONTENTS;
else
flags &= ~SEC_ALLOC;
@@ -3805,6 +3814,8 @@ ldlang_open_ctf (void)
int any_ctf = 0;
int err;
+ ld_start_phase (PHASE_CTF);
+
LANG_FOR_EACH_INPUT_STATEMENT (file)
{
asection *sect;
@@ -3842,17 +3853,23 @@ ldlang_open_ctf (void)
if (!any_ctf)
{
ctf_output = NULL;
+ ld_stop_phase (PHASE_CTF);
return;
}
if ((ctf_output = ctf_create (&err)) != NULL)
- return;
+ {
+ ld_stop_phase (PHASE_CTF);
+ return;
+ }
einfo (_("%P: warning: CTF output not created: `%s'\n"),
ctf_errmsg (err));
LANG_FOR_EACH_INPUT_STATEMENT (errfile)
ctf_close (errfile->the_ctf);
+
+ ld_stop_phase (PHASE_CTF);
}
/* Merge together CTF sections. After this, only the symtab-dependent
@@ -3867,6 +3884,8 @@ lang_merge_ctf (void)
if (!ctf_output)
return;
+ ld_start_phase (PHASE_CTF);
+
output_sect = bfd_get_section_by_name (link_info.output_bfd, ".ctf");
/* If the section was discarded, don't waste time merging. */
@@ -3880,6 +3899,8 @@ lang_merge_ctf (void)
ctf_close (file->the_ctf);
file->the_ctf = NULL;
}
+
+ ld_stop_phase (PHASE_CTF);
return;
}
@@ -3922,6 +3943,8 @@ lang_merge_ctf (void)
}
/* Output any lingering errors that didn't come from ctf_link. */
lang_ctf_errs_warnings (ctf_output);
+
+ ld_stop_phase (PHASE_CTF);
}
/* Let the emulation acquire strings from the dynamic strtab to help it optimize
@@ -3930,7 +3953,9 @@ lang_merge_ctf (void)
void
ldlang_ctf_acquire_strings (struct elf_strtab_hash *dynstrtab)
{
+ ld_start_phase (PHASE_CTF);
ldemul_acquire_strings_for_ctf (ctf_output, dynstrtab);
+ ld_stop_phase (PHASE_CTF);
}
/* Inform the emulation about the addition of a new dynamic symbol, in BFD
@@ -3952,16 +3977,24 @@ lang_write_ctf (int late)
if (!ctf_output)
return;
+ ld_start_phase (PHASE_CTF);
+
if (late)
{
/* Emit CTF late if this emulation says it can do so. */
if (ldemul_emit_ctf_early ())
- return;
+ {
+ ld_stop_phase (PHASE_CTF);
+ return;
+ }
}
else
{
if (!ldemul_emit_ctf_early ())
- return;
+ {
+ ld_stop_phase (PHASE_CTF);
+ return;
+ }
}
/* Inform the emulation that all the symbols that will be received have
@@ -3996,6 +4029,8 @@ lang_write_ctf (int late)
LANG_FOR_EACH_INPUT_STATEMENT (file)
file->the_ctf = NULL;
+
+ ld_stop_phase (PHASE_CTF);
}
/* Write out the CTF section late, if the emulation needs that. */
@@ -4156,9 +4191,7 @@ ldlang_check_require_defined_symbols (void)
h = bfd_link_hash_lookup (link_info.hash, ptr->name,
false, false, true);
- if (h == NULL
- || (h->type != bfd_link_hash_defined
- && h->type != bfd_link_hash_defweak))
+ if (! is_defined (h))
einfo(_("%X%P: required symbol `%s' not defined\n"), ptr->name);
}
}
@@ -4864,9 +4897,7 @@ print_assignment (lang_assignment_statement_type *assignment,
h = bfd_link_hash_lookup (link_info.hash, assignment->exp->assign.dst,
false, false, true);
- if (h != NULL
- && (h->type == bfd_link_hash_defined
- || h->type == bfd_link_hash_defweak))
+ if (is_defined (h))
{
value = h->u.def.value;
value += h->u.def.section->output_section->vma;
@@ -4911,8 +4942,7 @@ print_one_symbol (struct bfd_link_hash_entry *hash_entry, void *ptr)
{
asection *sec = (asection *) ptr;
- if ((hash_entry->type == bfd_link_hash_defined
- || hash_entry->type == bfd_link_hash_defweak)
+ if (is_defined (hash_entry)
&& sec == hash_entry->u.def.section)
{
print_spaces (SECTION_NAME_MAP_LENGTH);
@@ -5034,7 +5064,8 @@ print_input_section (asection *i, bool is_discarded)
}
print_spaces (SECTION_NAME_MAP_LENGTH - len);
- if (i->output_section != NULL
+ if ((i->flags & SEC_EXCLUDE) == 0
+ && i->output_section != NULL
&& i->output_section->owner == link_info.output_bfd)
addr = i->output_section->vma + i->output_offset;
else
@@ -7205,9 +7236,7 @@ lang_end (void)
{
h = bfd_link_hash_lookup (link_info.hash, sym->name,
false, false, false);
- if (h != NULL
- && (h->type == bfd_link_hash_defined
- || h->type == bfd_link_hash_defweak)
+ if (is_defined (h)
&& !bfd_is_const_section (h->u.def.section))
break;
}
@@ -7226,9 +7255,11 @@ lang_end (void)
h = bfd_link_hash_lookup (link_info.hash, entry_symbol.name,
false, false, true);
- if (h != NULL
- && (h->type == bfd_link_hash_defined
- || h->type == bfd_link_hash_defweak)
+
+ if (! is_defined (h) || h->u.def.section->output_section == NULL)
+ h = ldemul_find_alt_start_symbol (&entry_symbol);
+
+ if (is_defined (h)
&& h->u.def.section->output_section != NULL)
{
bfd_vma val;
@@ -8545,6 +8576,8 @@ lang_process (void)
{
asection *found;
+ ld_start_phase (PHASE_MERGE);
+
/* Merge SEC_MERGE sections. This has to be done after GC of
sections, so that GCed sections are not merged, but before
assigning dynamic symbols, since removing whole input sections
@@ -8552,6 +8585,8 @@ lang_process (void)
if (!bfd_merge_sections (link_info.output_bfd, &link_info))
fatal (_("%P: bfd_merge_sections failed: %E\n"));
+ ld_stop_phase (PHASE_MERGE);
+
/* Look for a text section and set the readonly attribute in it. */
found = bfd_get_section_by_name (link_info.output_bfd, ".text");
@@ -8689,6 +8724,7 @@ lang_add_wild (struct wildcard_spec *filespec,
new_stmt = new_stat (lang_wild_statement, stat_ptr);
new_stmt->filename = NULL;
new_stmt->filenames_sorted = false;
+ new_stmt->filenames_reversed = false;
new_stmt->any_specs_sorted = any_specs_sorted;
new_stmt->section_flag_list = NULL;
new_stmt->exclude_name_list = NULL;
@@ -8696,9 +8732,9 @@ lang_add_wild (struct wildcard_spec *filespec,
{
new_stmt->filename = filespec->name;
new_stmt->filenames_sorted = (filespec->sorted == by_name || filespec->reversed);
+ new_stmt->filenames_reversed = filespec->reversed;
new_stmt->section_flag_list = filespec->section_flag_list;
new_stmt->exclude_name_list = filespec->exclude_name_list;
- new_stmt->filenames_reversed = filespec->reversed;
}
new_stmt->section_list = section_list;
new_stmt->keep_sections = keep_sections;
diff --git a/ld/ldlex.h b/ld/ldlex.h
index b8b7d6b..815da76 100644
--- a/ld/ldlex.h
+++ b/ld/ldlex.h
@@ -46,6 +46,7 @@ enum option_values
OPTION_MAP,
OPTION_NO_DEMANGLE,
OPTION_NO_KEEP_MEMORY,
+ OPTION_NO_STATS,
OPTION_NO_WARN_MISMATCH,
OPTION_NO_WARN_SEARCH_MISMATCH,
OPTION_NOINHIBIT_EXEC,
@@ -246,7 +247,6 @@ enum option_values
OPTION_LIBPATH,
OPTION_NOLIBPATH,
/* Used by emultempl/alphaelf.em. */
- OPTION_TASO,
OPTION_SECUREPLT,
OPTION_NO_SECUREPLT,
/* Used by emultempl/armelf.em. */
diff --git a/ld/ldmain.c b/ld/ldmain.c
index cb5e58d..67c60c3 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -21,6 +21,7 @@
#include "sysdep.h"
#include "bfd.h"
+#include "bfdver.h"
#include "safe-ctype.h"
#include "libiberty.h"
#include "bfdlink.h"
@@ -51,6 +52,10 @@
#include <string.h>
+#if defined (HAVE_GETRUSAGE)
+#include <sys/resource.h>
+#endif
+
#ifndef TARGET_SYSTEM_ROOT
#define TARGET_SYSTEM_ROOT ""
#endif
@@ -148,6 +153,7 @@ static struct bfd_link_callbacks link_callbacks =
reloc_dangerous,
unattached_reloc,
notice,
+ fatal,
einfo,
info_msg,
minfo,
@@ -223,6 +229,10 @@ ld_cleanup (void)
bfd_close_all_done (ibfd);
}
#if BFD_SUPPORTS_PLUGINS
+ /* Note - we do not call ld_plugin_start (PHASE_PLUGINS) here as this
+ function is only called when the linker is exiting - ie after any
+ stats may have been reported, and potentially in the middle of a
+ phase where we have already started recording plugin stats. */
plugin_call_cleanup ();
#endif
if (output_filename && delete_output_file_on_failure)
@@ -269,11 +279,305 @@ display_external_script (void)
free (buf);
}
+struct ld_phase_data
+{
+ const char * name;
+
+ unsigned long start;
+ unsigned long duration;
+
+ bool started;
+ bool broken;
+
+#if defined (HAVE_GETRUSAGE)
+ struct rusage begin;
+ struct rusage use;
+#endif
+};
+
+static struct ld_phase_data phase_data [NUM_PHASES] =
+{
+ [PHASE_ALL] = { .name = "ALL" },
+ [PHASE_CTF] = { .name = "ctf processing" },
+ [PHASE_MERGE] = { .name = "string merge" },
+ [PHASE_PARSE] = { .name = "parsing" },
+ [PHASE_PLUGINS] = { .name = "plugins" },
+ [PHASE_PROCESS] = { .name = "processing files" },
+ [PHASE_WRITE] = { .name = "write" },
+};
+
+void
+ld_start_phase (ld_phase phase)
+{
+ struct ld_phase_data * pd = phase_data + phase;
+
+ /* We record data even if config.stats_file is NULL. This allows
+ us to record data about phases that start before the command line
+ arguments have been parsed. ie PHASE_ALL and PHASE_PARSE. */
+
+ /* Do not overwrite the fields if we have already started recording. */
+ if (pd->started)
+ {
+ /* Since we do not queue phase starts and stops, if a phase is started
+ multiple times there is a likelyhood that it will be stopped multiple
+ times as well. This is problematic as we will only record the data
+ for the first time the phase stops and ignore all of the other stops.
+
+ So let the user know. Ideally real users will never actually see
+ this message, and instead only developers who are adding new phase
+ tracking code will ever encounter it. */
+ einfo ("%P: --stats: phase %s started twice - data may be unreliable\n",
+ pd->name);
+ return;
+ }
+
+ /* It is OK if other phases are also active at this point.
+ It just means that the phases overlap or that one phase is a sub-task
+ of another. Since we record resources on a per-phase basis, this
+ should not matter. */
+
+ pd->started = true;
+ pd->start = get_run_time ();
+
+#if defined (HAVE_GETRUSAGE)
+ /* Record the resource usage at the start of the phase. */
+ struct rusage usage;
+
+ if (getrusage (RUSAGE_SELF, & usage) != 0)
+ /* FIXME: Complain ? */
+ return;
+
+ memcpy (& pd->begin, & usage, sizeof usage);
+#endif
+}
+
+void
+ld_stop_phase (ld_phase phase)
+{
+ struct ld_phase_data * pd = phase_data + phase;
+
+ if (!pd->started)
+ {
+ /* We set the broken flag to indicate that the data
+ recorded for this phase is inconsistent. */
+ pd->broken = true;
+ return;
+ }
+
+ pd->duration += get_run_time () - pd->start;
+ pd->started = false;
+
+#if defined (HAVE_GETRUSAGE)
+ struct rusage usage;
+
+ if (getrusage (RUSAGE_SELF, & usage) != 0)
+ /* FIXME: Complain ? */
+ return;
+
+ if (phase == PHASE_ALL)
+ memcpy (& pd->use, & usage, sizeof usage);
+ else
+ {
+ struct timeval t;
+
+ /* For sub-phases we record the increase in specific fields. */
+ /* FIXME: Most rusage{} fields appear to be irrelevent to when considering
+ linker resource usage. Currently we record maxrss and user and system
+ cpu times. Are there any other fields that might be useful ? */
+
+#ifndef timeradd /* Macros copied from <sys/time.h>. */
+#define timeradd(a, b, result) \
+ do \
+ { \
+ (result)->tv_sec = (a)->tv_sec + (b)->tv_sec; \
+ (result)->tv_usec = (a)->tv_usec + (b)->tv_usec; \
+ if ((result)->tv_usec >= 1000000) \
+ { \
+ ++(result)->tv_sec; \
+ (result)->tv_usec -= 1000000; \
+ } \
+ } \
+ while (0)
+#endif
+
+#ifndef timersub
+#define timersub(a, b, result) \
+ do \
+ { \
+ (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \
+ (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
+ if ((result)->tv_usec < 0) \
+ { \
+ --(result)->tv_sec; \
+ (result)->tv_usec += 1000000; \
+ } \
+ } \
+ while (0)
+#endif
+
+ timersub (& usage.ru_utime, & pd->begin.ru_utime, & t);
+ timeradd (& pd->use.ru_utime, &t, & pd->use.ru_utime);
+
+ timersub (& usage.ru_stime, & pd->begin.ru_stime, & t);
+ timeradd (& pd->use.ru_stime, &t, & pd->use.ru_stime);
+
+ if (pd->begin.ru_maxrss < usage.ru_maxrss)
+ pd->use.ru_maxrss += usage.ru_maxrss - pd->begin.ru_maxrss;
+ }
+#endif
+}
+
+static void
+report_phases (FILE * file, time_t * start, char ** argv)
+{
+ unsigned long i;
+
+ if (file == NULL)
+ return;
+
+ /* We might be writing to stdout, so make sure
+ that we do not have any pending error output. */
+ fflush (stderr);
+
+ /* We do not translate "Stats" as we provide this as a key
+ word that can be searched for by grep and the like. */
+#define STATS_PREFIX "Stats: "
+
+ fprintf (file, STATS_PREFIX "linker version: %s\n", BFD_VERSION_STRING);
+
+ /* No \n at the end of the string as ctime() provides its own. */
+ fprintf (file, STATS_PREFIX "linker started: %s", ctime (start));
+
+ /* We include the linker command line arguments since
+ they can be hard to track down by other means. */
+ if (argv != NULL)
+ {
+ fprintf (file, STATS_PREFIX "args: ");
+ for (i = 0; argv[i] != NULL; i++)
+ fprintf (file, "%s ", argv[i]);
+ fprintf (file, "\n\n"); /* Blank line to separate the args from the stats. */
+ }
+
+ /* All of this song and dance with the column_info struct and printf
+ formatting is so that we can have a nicely formated table with regular
+ column spacing, whilst allowing for the column headers to be translated,
+ and coping nicely with extra long strings or numbers. */
+ struct column_info
+ {
+ const char * header;
+ const char * sub_header;
+ int width;
+ int pad;
+ } columns[] =
+#define COLUMNS_FIELD(HEADER,SUBHEADER) \
+ { .header = N_( HEADER ), .sub_header = N_( SUBHEADER ) },
+ {
+ COLUMNS_FIELD ("phase", "name")
+ COLUMNS_FIELD ("cpu time", "(microsec)")
+#if defined (HAVE_GETRUSAGE)
+ /* Note: keep these columns in sync with the
+ information recorded in ld_stop_phase(). */
+ COLUMNS_FIELD ("memory", "(KiB)")
+ COLUMNS_FIELD ("user time", "(seconds)")
+ COLUMNS_FIELD ("system time", "(seconds)")
+#endif
+ };
+
+#ifndef max
+#define max(A,B) ((A) < (B) ? (B) : (A))
+#endif
+
+ size_t maxwidth = 1;
+ for (i = 0; i < NUM_PHASES; i++)
+ maxwidth = max (maxwidth, strlen (phase_data[i].name));
+
+ fprintf (file, "%s", STATS_PREFIX);
+
+ for (i = 0; i < ARRAY_SIZE (columns); i++)
+ {
+ int padding;
+
+ if (i == 0)
+ columns[i].width = fprintf (file, "%-*s", (int) maxwidth, columns[i].header);
+ else
+ columns[i].width = fprintf (file, "%s", columns[i].header);
+ padding = columns[i].width % 8;
+ if (padding < 4)
+ padding = 4;
+ columns[i].pad = fprintf (file, "%*c", padding, ' ');
+ }
+
+ fprintf (file, "\n");
+
+ int bias = 0;
+#define COLUMN_ENTRY(VAL, FORMAT, N) \
+ do \
+ { \
+ int l; \
+ \
+ if (N == 0) \
+ l = fprintf (file, "%-*" FORMAT, columns[N].width, VAL); \
+ else \
+ l = fprintf (file, "%*" FORMAT, columns[N].width - bias, VAL); \
+ bias = 0; \
+ if (l < columns[N].width) \
+ l = columns[N].pad; \
+ else if (l < columns[N].width + columns[N].pad) \
+ l = columns[N].pad - (l - columns[N].width); \
+ else \
+ { \
+ bias = l - (columns[N].width + columns[N].pad); \
+ l = 0; \
+ } \
+ if (l) \
+ fprintf (file, "%*c", l, ' '); \
+ } \
+ while (0)
+
+ fprintf (file, "%s", STATS_PREFIX);
+
+ for (i = 0; i < ARRAY_SIZE (columns); i++)
+ COLUMN_ENTRY (columns[i].sub_header, "s", i);
+
+ fprintf (file, "\n");
+
+ for (i = 0; i < NUM_PHASES; i++)
+ {
+ struct ld_phase_data * pd = phase_data + i;
+ /* This should not be needed... */
+ const char * name = pd->name ? pd->name : "<unnamed>";
+
+ if (pd->broken)
+ {
+ fprintf (file, "%s %s: %s",
+ STATS_PREFIX, name, _("WARNING: Data is unreliable!\n"));
+ continue;
+ }
+
+ fprintf (file, "%s", STATS_PREFIX);
+
+ /* Care must be taken to keep the lines below in sync with
+ entries in the columns_info array.
+ FIXME: There ought to be a better way to do this... */
+ COLUMN_ENTRY (name, "s", 0);
+ COLUMN_ENTRY (pd->duration, "ld", 1);
+#if defined (HAVE_GETRUSAGE)
+ COLUMN_ENTRY (pd->use.ru_maxrss, "ld", 2);
+ COLUMN_ENTRY ((int64_t) pd->use.ru_utime.tv_sec, PRId64, 3);
+ COLUMN_ENTRY ((int64_t) pd->use.ru_stime.tv_sec, PRId64, 4);
+#endif
+ fprintf (file, "\n");
+ }
+
+ fflush (file);
+}
+
int
main (int argc, char **argv)
{
char *emulation;
long start_time = get_run_time ();
+ time_t start_seconds = time (NULL);
#ifdef HAVE_LC_MESSAGES
setlocale (LC_MESSAGES, "");
@@ -285,7 +589,23 @@ main (int argc, char **argv)
program_name = argv[0];
xmalloc_set_program_name (program_name);
+ /* Check the LD_STATS environment variable before parsing the command line
+ so that the --stats option, if used, can override the environment variable. */
+ char * stats_filename;
+ if ((stats_filename = getenv ("LD_STATS")) != NULL)
+ {
+ if (ISPRINT (stats_filename[0]))
+ config.stats_filename = stats_filename;
+ else
+ config.stats_filename = "-";
+ config.stats = true;
+ }
+
+ ld_start_phase (PHASE_ALL);
+ ld_start_phase (PHASE_PARSE);
+
expandargv (&argc, &argv);
+ char ** saved_argv = dupargv (argv);
if (bfd_init () != BFD_INIT_MAGIC)
fatal (_("%P: fatal error: libbfd ABI mismatch\n"));
@@ -403,11 +723,17 @@ main (int argc, char **argv)
if (config.hash_table_size != 0)
bfd_hash_set_default_size (config.hash_table_size);
+ ld_stop_phase (PHASE_PARSE);
+
#if BFD_SUPPORTS_PLUGINS
+ ld_start_phase (PHASE_PLUGINS);
/* Now all the plugin arguments have been gathered, we can load them. */
plugin_load_plugins ();
+ ld_stop_phase (PHASE_PLUGINS);
#endif /* BFD_SUPPORTS_PLUGINS */
+ ld_start_phase (PHASE_PARSE);
+
ldemul_set_symbols ();
/* If we have not already opened and parsed a linker script,
@@ -530,7 +856,31 @@ main (int argc, char **argv)
link_info.has_map_file = true;
}
+ if (config.stats_filename != NULL)
+ {
+ if (config.map_filename != NULL
+ && strcmp (config.stats_filename, config.map_filename) == 0)
+ config.stats_file = NULL;
+ else if (strcmp (config.stats_filename, "-") == 0)
+ config.stats_file = stdout;
+ else
+ {
+ if (config.stats_filename[0] == '+')
+ config.stats_file = fopen (config.stats_filename + 1, "a");
+ else
+ config.stats_file = fopen (config.stats_filename, "w");
+
+ if (config.stats_file == NULL)
+ einfo ("%P: Warning: failed to open resource record file: %s\n",
+ config.stats_filename);
+ }
+ }
+
+ ld_stop_phase (PHASE_PARSE);
+
+ ld_start_phase (PHASE_PROCESS);
lang_process ();
+ ld_stop_phase (PHASE_PROCESS);
/* Print error messages for any missing symbols, for any warning
symbols, and possibly multiple definitions. */
@@ -557,7 +907,11 @@ main (int argc, char **argv)
link_info.output_bfd->flags
|= flags & bfd_applicable_file_flags (link_info.output_bfd);
+
+ ld_start_phase (PHASE_WRITE);
ldwrite ();
+ ld_stop_phase (PHASE_WRITE);
+
if (config.map_file != NULL)
lang_map ();
@@ -652,19 +1006,38 @@ main (int argc, char **argv)
if (config.emit_gnu_object_only)
cmdline_emit_object_only_section ();
+ ld_stop_phase (PHASE_ALL);
+
if (config.stats)
{
- long run_time = get_run_time () - start_time;
+ report_phases (config.map_file, & start_seconds, saved_argv);
+
+ if (config.stats_filename)
+ {
+ report_phases (config.stats_file, & start_seconds, saved_argv);
+
+ if (config.stats_file != stdout && config.stats_file != stderr)
+ {
+ fclose (config.stats_file);
+ config.stats_file = NULL;
+ }
+ }
+ else /* This is for backwards compatibility. */
+ {
+ long run_time = get_run_time () - start_time;
- fflush (stdout);
- fprintf (stderr, _("%s: total time in link: %ld.%06ld\n"),
- program_name, run_time / 1000000, run_time % 1000000);
- fflush (stderr);
+ fflush (stdout);
+ fprintf (stderr, _("%s: total time in link: %ld.%06ld\n"),
+ program_name, run_time / 1000000, run_time % 1000000);
+ fflush (stderr);
+ }
}
/* Prevent ld_cleanup from deleting the output file. */
output_filename = NULL;
+ freeargv (saved_argv);
+
xexit (0);
return 0;
}
@@ -941,8 +1314,11 @@ add_archive_element (struct bfd_link_info *info,
&& (!no_more_claiming
|| bfd_get_lto_type (abfd) != lto_fat_ir_object))
{
+ ld_start_phase (PHASE_PLUGINS);
/* We must offer this archive member to the plugins to claim. */
plugin_maybe_claim (input);
+ ld_stop_phase (PHASE_PLUGINS);
+
if (input->flags.claimed)
{
if (no_more_claiming)
diff --git a/ld/ldmisc.c b/ld/ldmisc.c
index 9ee0781..3f305fa 100644
--- a/ld/ldmisc.c
+++ b/ld/ldmisc.c
@@ -42,7 +42,6 @@
%C clever filename:linenumber with function
%D like %C, but no function name
%E current bfd error or errno
- %F error is fatal
%G like %D, but only function name
%H like %C but in addition emit section+offset
%P print program name
@@ -70,7 +69,6 @@
void
vfinfo (FILE *fp, const char *fmt, va_list ap, bool is_warning)
{
- bool isfatal = false;
const char *scan;
int arg_type;
unsigned int arg_count = 0;
@@ -280,11 +278,6 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bool is_warning)
}
break;
- case 'F':
- /* Error is fatal. */
- isfatal = true;
- break;
-
case 'P':
/* Print program name. */
fprintf (fp, "%s", program_name);
@@ -586,9 +579,6 @@ vfinfo (FILE *fp, const char *fmt, va_list ap, bool is_warning)
if (is_warning && config.fatal_warnings)
config.make_executable = false;
-
- if (isfatal)
- xexit (1);
}
/* Format info message and print on stdout. */
diff --git a/ld/lexsup.c b/ld/lexsup.c
index 7de6e25..bde2046 100644
--- a/ld/lexsup.c
+++ b/ld/lexsup.c
@@ -499,8 +499,10 @@ static const struct ld_option ld_options[] =
{ {"split-by-reloc", optional_argument, NULL, OPTION_SPLIT_BY_RELOC},
'\0', N_("[=COUNT]"), N_("Split output sections every COUNT relocs"),
TWO_DASHES },
- { {"stats", no_argument, NULL, OPTION_STATS},
- '\0', NULL, N_("Print memory usage statistics"), TWO_DASHES },
+ { {"stats", optional_argument, NULL, OPTION_STATS},
+ '\0', NULL, N_("Print resource usage statistics"), TWO_DASHES },
+ { {"no-stats", optional_argument, NULL, OPTION_NO_STATS},
+ '\0', NULL, N_("Do not print resource usage statistics"), TWO_DASHES },
{ {"target-help", no_argument, NULL, OPTION_TARGET_HELP},
'\0', NULL, N_("Display target specific options"), TWO_DASHES },
{ {"task-link", required_argument, NULL, OPTION_TASK_LINK},
@@ -1412,6 +1414,17 @@ parse_args (unsigned argc, char **argv)
break;
case OPTION_STATS:
config.stats = true;
+ if (optarg)
+ config.stats_filename = optarg;
+ else
+ {
+ config.stats_filename = NULL;
+ config.stats_file = stderr;
+ }
+ break;
+ case OPTION_NO_STATS:
+ config.stats = false;
+ config.stats_filename = NULL;
break;
case OPTION_NO_SYMBOLIC:
opt_symbolic = symbolic_unset;
diff --git a/ld/pe-dll.c b/ld/pe-dll.c
index 4e72f1b..210b77e 100644
--- a/ld/pe-dll.c
+++ b/ld/pe-dll.c
@@ -381,6 +381,7 @@ static const autofilter_entry_type autofilter_liblist[] =
{ STRING_COMMA_LEN ("libmsvcrt") },
{ STRING_COMMA_LEN ("libmsvcrt-os") },
{ STRING_COMMA_LEN ("libucrt") },
+ { STRING_COMMA_LEN ("libucrtapp") },
{ STRING_COMMA_LEN ("libucrtbase") },
{ STRING_COMMA_LEN ("libpthread") },
{ STRING_COMMA_LEN ("libwinpthread") },
@@ -1619,10 +1620,11 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info)
printf ("rel: %s\n", sym->name);
}
if (!relocs[i]->howto->pc_relative
- && relocs[i]->howto->type != pe_details->imagebase_reloc
- && (relocs[i]->howto->type < pe_details->secrel_reloc_lo
- || relocs[i]->howto->type > pe_details->secrel_reloc_hi)
- && relocs[i]->howto->type != pe_details->section_reloc)
+ && (bfd_get_flavour (b) != bfd_target_coff_flavour
+ || (relocs[i]->howto->type != pe_details->imagebase_reloc
+ && (relocs[i]->howto->type < pe_details->secrel_reloc_lo
+ || relocs[i]->howto->type > pe_details->secrel_reloc_hi)
+ && relocs[i]->howto->type != pe_details->section_reloc)))
{
struct bfd_symbol *sym = *relocs[i]->sym_ptr_ptr;
const struct bfd_link_hash_entry *blhe
@@ -2638,9 +2640,9 @@ make_import_fixup_mark (arelent *rel, char *name)
memcpy (fixup_name, buf, prefix_len);
bh = NULL;
- bfd_coff_link_add_one_symbol (&link_info, abfd, fixup_name, BSF_GLOBAL,
- current_sec, /* sym->section, */
- rel->address, NULL, true, false, &bh);
+ _bfd_generic_link_add_one_symbol (&link_info, abfd, fixup_name, BSF_GLOBAL,
+ current_sec, /* sym->section, */
+ rel->address, NULL, true, false, &bh);
return bh->root.string;
}
diff --git a/ld/scripttempl/avr.sc b/ld/scripttempl/avr.sc
index 8479ec3..4d9af7f 100644
--- a/ld/scripttempl/avr.sc
+++ b/ld/scripttempl/avr.sc
@@ -189,11 +189,16 @@ SECTIONS
${RELOCATING+*(.vectors)
KEEP(*(.vectors))
- /* For data that needs to reside in the lower 64k of progmem. */
- *(.progmem.gcc*)
+ /* For data that needs to reside in the lower 64k of progmem.
+ For data accessed with ELPM use .progmemx.* instead
+ so that no lower 64k .progmem addresses are wasted. */
+ __progmem_start = . ;
+ *(.progmem)
+ *(.progmem.*)
+ __progmem_end = . ;
+ ASSERT (__progmem_start == __progmem_end || __progmem_end <= 0x10000,
+ \".progmem section exceeds 0x10000\");
- /* PR 13812: Placing the trampolines here gives a better chance
- that they will be in range of the code that uses them. */
. = ALIGN(2);
__trampolines_start = . ;
/* The jump trampolines for the 16-bit limited relocs will reside here. */
@@ -201,12 +206,6 @@ SECTIONS
*(.trampolines*)
__trampolines_end = . ;
- /* avr-libc expects these data to reside in lower 64K. */
- *libprintf_flt.a:*(.progmem.data)
- *libc.a:*(.progmem.data)
-
- *(.progmem.*)
-
. = ALIGN(2);
/* For code that needs to reside in the lower 128k progmem. */
@@ -273,6 +272,7 @@ SECTIONS
*(.hightext)
*(.hightext*)
+ *(.progmemx)
*(.progmemx.*)
. = ALIGN(2);
diff --git a/ld/scripttempl/pe.sc b/ld/scripttempl/pe.sc
index 96a4751..8fb98b2 100644
--- a/ld/scripttempl/pe.sc
+++ b/ld/scripttempl/pe.sc
@@ -14,7 +14,7 @@ fi
# substitution, so we do this instead.
# Sorting of the .foo$* sections is required by the definition of
# grouped sections in PE.
-# Sorting of the file names in R_IDATA is required by the
+# Sorting of the file names in R_IDATA and R_DIDAT is required by the
# current implementation of dlltool (this could probably be changed to
# use grouped sections instead).
if test "${RELOCATING}"; then
@@ -39,6 +39,18 @@ if test "${RELOCATING}"; then
R_IDATA67='
KEEP (SORT(*)(.idata$6))
KEEP (SORT(*)(.idata$7))'
+ R_DIDAT234='
+ __DELAY_IMPORT_DIRECTORY_start__ = .;
+ KEEP (SORT(*)(.didat$2))
+ KEEP (SORT(*)(.didat$3))
+ __DELAY_IMPORT_DIRECTORY_end__ = .;
+ /* These zeroes mark the end of the import list. */
+ . += (__DELAY_IMPORT_DIRECTORY_end__ - __DELAY_IMPORT_DIRECTORY_start__) ? 8*4 : 0;
+ KEEP (SORT(*)(.didat$4))'
+ R_DIDAT5='KEEP (SORT(*)(.didat$5))'
+ R_DIDAT67='
+ KEEP (SORT(*)(.didat$6))
+ KEEP (SORT(*)(.didat$7))'
R_CRT_XC='KEEP (*(SORT(.CRT$XC*))) /* C initialization */'
R_CRT_XI='KEEP (*(SORT(.CRT$XI*))) /* C++ initialization */'
R_CRT_XL='KEEP (*(SORT(.CRT$XL*))) /* TLS callbacks */'
@@ -61,6 +73,9 @@ else
R_IDATA234=
R_IDATA5=
R_IDATA67=
+ R_DIDAT234=
+ R_DIDAT5=
+ R_DIDAT67=
R_CRT_XC=
R_CRT_XI=
R_CRT_XL=
@@ -131,6 +146,11 @@ SECTIONS
${RELOCATING+__rt_psrelocs_start = .;}
${RELOCATING+KEEP(*(.rdata_runtime_pseudo_reloc))}
${RELOCATING+__rt_psrelocs_end = .;}
+ /* read-only parts of .didat */
+ /* This cannot currently be handled with grouped sections.
+ See pe.em:sort_sections. */
+ ${R_DIDAT234}
+ ${R_DIDAT67}
/* .ctors & .dtors */
${CONSTRUCTING+
@@ -244,6 +264,13 @@ SECTIONS
${R_IDATA67}
}
+ .didat ${RELOCATING+BLOCK(__section_alignment__)} :
+ {
+ /* This cannot currently be handled with grouped sections.
+ See pe.em:sort_sections. */
+ ${R_DIDAT5}
+ }
+
/* Windows TLS expects .tls\$AAA to be at the start and .tls\$ZZZ to be
at the end of section. This is important because _tls_start MUST
be at the beginning of the section to enable SECREL32 relocations with TLS
diff --git a/ld/scripttempl/pep.sc b/ld/scripttempl/pep.sc
index e2c6c2c..841ee35 100644
--- a/ld/scripttempl/pep.sc
+++ b/ld/scripttempl/pep.sc
@@ -14,7 +14,7 @@ fi
# substitution, so we do this instead.
# Sorting of the .foo$* sections is required by the definition of
# grouped sections in PE.
-# Sorting of the file names in R_IDATA is required by the
+# Sorting of the file names in R_IDATA and R_DIDAT is required by the
# current implementation of dlltool (this could probably be changed to
# use grouped sections instead).
if test "${RELOCATING}"; then
@@ -40,6 +40,19 @@ if test "${RELOCATING}"; then
R_IDATA67='
KEEP (SORT(*)(.idata$6))
KEEP (SORT(*)(.idata$7))'
+ R_DIDAT234='
+ __DELAY_IMPORT_DIRECTORY_start__ = .;
+ KEEP (SORT(*)(.didat$2))
+ KEEP (SORT(*)(.didat$3))
+ __DELAY_IMPORT_DIRECTORY_end__ = .;
+ /* These zeroes mark the end of the import list. */
+ . += (__DELAY_IMPORT_DIRECTORY_end__ - __DELAY_IMPORT_DIRECTORY_start__) ? 8*4 : 0;
+ . = ALIGN(8);
+ KEEP (SORT(*)(.didat$4))'
+ R_DIDAT5='SORT(*)(.didat$5)'
+ R_DIDAT67='
+ KEEP (SORT(*)(.didat$6))
+ KEEP (SORT(*)(.didat$7))'
R_CRT_XC='KEEP (*(SORT(.CRT$XC*))) /* C initialization */'
R_CRT_XI='KEEP (*(SORT(.CRT$XI*))) /* C++ initialization */'
R_CRT_XL='KEEP (*(SORT(.CRT$XL*))) /* TLS callbacks */'
@@ -62,6 +75,9 @@ else
R_IDATA234=
R_IDATA5=
R_IDATA67=
+ R_DIDAT234=
+ R_DIDAT5=
+ R_DIDAT67=
R_CRT_XC=
R_CRT_XI=
R_CRT_XL=
@@ -132,6 +148,12 @@ SECTIONS
${RELOCATING+__rt_psrelocs_start = .;}
${RELOCATING+KEEP(*(.rdata_runtime_pseudo_reloc))}
${RELOCATING+__rt_psrelocs_end = .;}
+ /* read-only parts of .didat */
+ /* This cannot currently be handled with grouped sections.
+ See pe.em:sort_sections. */
+ ${RELOCATING+. = ALIGN(8);}
+ ${R_DIDAT234}
+ ${R_DIDAT67}
/* .ctors & .dtors */
${CONSTRUCTING+. = ALIGN(8);}
@@ -251,6 +273,13 @@ SECTIONS
${R_IDATA67}
}
+ .didat ${RELOCATING+BLOCK(__section_alignment__)} :
+ {
+ /* This cannot currently be handled with grouped sections.
+ See pep.em:sort_sections. */
+ ${R_DIDAT5}
+ }
+
/* Windows TLS expects .tls\$AAA to be at the start and .tls\$ZZZ to be
at the end of the .tls section. This is important because _tls_start MUST
be at the beginning of the section to enable SECREL32 relocations with TLS
diff --git a/ld/scripttempl/v850.sc b/ld/scripttempl/v850.sc
index d005818..c7f7921 100644
--- a/ld/scripttempl/v850.sc
+++ b/ld/scripttempl/v850.sc
@@ -26,7 +26,7 @@ SECTIONS
/* This saves a little space in the ELF file, since the zda starts
at a higher location that the ELF headers take up. */
- .zdata ${ZDATA_START_ADDR} :
+ .zdata ${RELOCATING+${ZDATA_START_ADDR}} :
{
*(.zdata)
${RELOCATING+*(.zbss)
@@ -40,7 +40,7 @@ SECTIONS
section. Specifically it prevents the zdata
section from being marked READONLY. */
- .rozdata ${ROZDATA_START_ADDR} :
+ .rozdata ${RELOCATING+${ROZDATA_START_ADDR}} :
{
*(.rozdata)
${RELOCATING+*(romzdata)
@@ -48,7 +48,7 @@ SECTIONS
}
/* Read-only sections, merged into text segment. */
- . = ${TEXT_START_ADDR};
+ ${RELOCATING+. = ${TEXT_START_ADDR};}
.interp : { *(.interp) }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
@@ -95,7 +95,7 @@ SECTIONS
It contains a small lookup table at the start followed by the
code pointed to by entries in the lookup table. */
- .call_table_data ${CALL_TABLE_START_ADDR} :
+ .call_table_data ${RELOCATING+${CALL_TABLE_START_ADDR}} :
{
${RELOCATING+PROVIDE(__ctbp = .);}
*(.call_table_data)
@@ -144,7 +144,7 @@ SECTIONS
.got : {${RELOCATING+ *(.got.plt)} *(.got) }
.dynamic : { *(.dynamic) }
- .tdata ${TDATA_START_ADDR} :
+ .tdata ${RELOCATING+${TDATA_START_ADDR}} :
{
${RELOCATING+PROVIDE (__ep = .);
*(.tbyte)
@@ -158,14 +158,14 @@ SECTIONS
can access them all, and initialized data all before uninitialized, so
we can shorten the on-disk segment size. */
- .sdata ${SDATA_START_ADDR} :
+ .sdata ${RELOCATING+${SDATA_START_ADDR}} :
{
${RELOCATING+PROVIDE (__gp = . + 0x8000);}
*(.sdata)
}
/* See comment about .rozdata. */
- .rosdata ${ROSDATA_START_ADDR} :
+ .rosdata ${RELOCATING+${ROSDATA_START_ADDR}} :
{
*(.rosdata)
}
diff --git a/ld/scripttempl/v850_rh850.sc b/ld/scripttempl/v850_rh850.sc
index cfe25d2..ad27769 100644
--- a/ld/scripttempl/v850_rh850.sc
+++ b/ld/scripttempl/v850_rh850.sc
@@ -26,7 +26,7 @@ SECTIONS
/* This saves a little space in the ELF file, since the zda starts
at a higher location that the ELF headers take up. */
- .zdata ${ZDATA_START_ADDR} :
+ .zdata ${RELOCATING+${ZDATA_START_ADDR}} :
{
*(.zdata)
${RELOCATING+*(.zdata23)
@@ -42,7 +42,7 @@ SECTIONS
section. Specifically it prevents the zdata
section from being marked READONLY. */
- .rozdata ${ROZDATA_START_ADDR} :
+ .rozdata ${RELOCATING+${ROZDATA_START_ADDR}} :
{
*(.rozdata)
${RELOCATING+*(romzdata)
@@ -52,7 +52,7 @@ SECTIONS
}
/* Read-only sections, merged into text segment. */
- . = ${TEXT_START_ADDR};
+ ${RELOCATING+. = ${TEXT_START_ADDR};}
.interp : { *(.interp) }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
@@ -99,7 +99,7 @@ SECTIONS
It contains a small lookup table at the start followed by the
code pointed to by entries in the lookup table. */
- .call_table_data ${CALL_TABLE_START_ADDR} :
+ .call_table_data ${RELOCATING+${CALL_TABLE_START_ADDR}} :
{
${RELOCATING+PROVIDE(__ctbp = .);}
*(.call_table_data)
@@ -154,7 +154,7 @@ SECTIONS
.got : {${RELOCATING+ *(.got.plt)} *(.got) }
.dynamic : { *(.dynamic) }
- .tdata ${TDATA_START_ADDR} :
+ .tdata ${RELOCATING+${TDATA_START_ADDR}} :
{
${RELOCATING+PROVIDE (__ep = .);
*(.edata)
@@ -174,7 +174,7 @@ SECTIONS
can access them all, and initialized data all before uninitialized, so
we can shorten the on-disk segment size. */
- .sdata ${SDATA_START_ADDR} :
+ .sdata ${RELOCATING+${SDATA_START_ADDR}} :
{
${RELOCATING+PROVIDE (__gp = . + 0x8000);}
*(.sdata)
@@ -182,7 +182,7 @@ SECTIONS
}
/* See comment about .rozdata. */
- .rosdata ${ROSDATA_START_ADDR} :
+ .rosdata ${RELOCATING+${ROSDATA_START_ADDR}} :
{
*(.rosdata)
${RELOCATING+*(.sconst)
diff --git a/ld/testsuite/config/default.exp b/ld/testsuite/config/default.exp
index 66721ff..1d69681 100644
--- a/ld/testsuite/config/default.exp
+++ b/ld/testsuite/config/default.exp
@@ -538,10 +538,11 @@ if { [check_compiler_available] } {
}
}
-if {[file exists .libs/libdep.so]} {
- set dep_plug_opt "--plugin .libs/libdep.so"
-} elseif {[file exists .libs/libdep.dll]} {
- set dep_plug_opt "--plugin .libs/libdep.dll"
-} else {
- set dep_plug_opt ""
+set dep_plug_opt ""
+if [check_plugin_api_available] {
+ if {[file exists .libs/libdep.so]} {
+ set dep_plug_opt "--plugin .libs/libdep.so"
+ } elseif {[file exists .libs/libdep.dll]} {
+ set dep_plug_opt "--plugin .libs/libdep.dll"
+ }
}
diff --git a/ld/testsuite/ld-aarch64/aarch64.ld b/ld/testsuite/ld-aarch64/aarch64.ld
index 75ee3b5..765ddf5 100644
--- a/ld/testsuite/ld-aarch64/aarch64.ld
+++ b/ld/testsuite/ld-aarch64/aarch64.ld
@@ -3,17 +3,23 @@ OUTPUT_ARCH(aarch64)
ENTRY(_start)
SECTIONS
{
- /* Read-only sections, merged into text segment: */
- PROVIDE (__executable_start = 0x8000); . = 0x8000;
- .text :
+ PROVIDE (__executable_start = 0x8000);
+ . = SEGMENT_START("text-segment", 0x8000) + SIZEOF_HEADERS;
+ /* Start of the executable code region. */
+ . = 0x9000;
+ .plt : ALIGN(16) { *(.plt) *(.iplt) }
+ . = 0x10000;
+ .text :
{
*(.before)
*(.text)
*(.after)
} =0
- . = 0x9000;
- .got : { *(.got) *(.got.plt)}
. = 0x12340000;
- .far : { *(.far) }
- .ARM.attributes 0 : { *(.ARM.atttributes) }
+ .far : { *(.far) }
+ /* Start of the Read Write Data region. */
+ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1));
+ .got : { *(.got) *(.got.plt)}
+ /* Start of the metadata region. */
+ .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) }
}
diff --git a/ld/testsuite/ld-aarch64/gc-got-relocs.d b/ld/testsuite/ld-aarch64/gc-got-relocs.d
index 6525d10..a1821c3 100644
--- a/ld/testsuite/ld-aarch64/gc-got-relocs.d
+++ b/ld/testsuite/ld-aarch64/gc-got-relocs.d
@@ -12,15 +12,14 @@
.*: file format elf64-(little|big)aarch64
SYMBOL TABLE:
-0+8000 l d \.text 0+ \.text
-0+0000 l df \*ABS\* 0+ .*
-0+8000 g \.text 0+ _start
+0+10000 l d \.text 0+ \.text
+0+00000 l df \*ABS\* 0+ .*
+0+10000 g \.text 0+ _start
Contents of section .text:
- 8000 1f2003d5 .*
+ 10000 1f2003d5 .*
-Disassembly of section .text:
-
-0+8000 \<_start>:
- 8000: d503201f nop
+Disassembly of section \.text:
+0+10000 \<_start>:
+ 10000: d503201f nop
diff --git a/ld/testsuite/ld-aarch64/gc-plt-relocs.d b/ld/testsuite/ld-aarch64/gc-plt-relocs.d
index 5c9b5fe..ac455f8 100644
--- a/ld/testsuite/ld-aarch64/gc-plt-relocs.d
+++ b/ld/testsuite/ld-aarch64/gc-plt-relocs.d
@@ -13,36 +13,36 @@
.*: file format elf64-(little|big)aarch64
DYNAMIC SYMBOL TABLE:
-0+8000 g DF \.text 0+4 _start
-0+0000 D \*UND\* 0+ foo
-0+8008 g DF \.text 0+ bar
+0+10000 g DF \.text 0+4 _start
+0+00000 D \*UND\* 0+ foo
+0+10008 g DF \.text 0+ bar
+
+Disassembly of section \.plt:
+
+0+9000 \<\.plt\>:
+ 9000: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
+ 9004: f00919b0 adrp x16, 12340000 \<_GLOBAL_OFFSET_TABLE_\>
+ 9008: f9400e11 ldr x17, \[x16, #24\]
+ 900c: 91006210 add x16, x16, #0x18
+ 9010: d61f0220 br x17
+ 9014: d503201f nop
+ 9018: d503201f nop
+ 901c: d503201f nop
+ 9020: f00919b0 adrp x16, 12340000 \<_GLOBAL_OFFSET_TABLE_\>
+ 9024: f9401211 ldr x17, \[x16, #32\]
+ 9028: 91008210 add x16, x16, #0x20
+ 902c: d61f0220 br x17
Disassembly of section .text:
-0+8000 \<_start\>:
- 8000: 9400000c bl 8030 \<.*>
-
-0+8004 \<hidfn\>:
- 8004: 8a000000 and x0, x0, x0
-
-0+8008 \<bar\>:
- 8008: 14000001 b 800c \<foo\>
-
-0+800c \<foo\>:
- 800c: 97fffffe bl 8004 \<hidfn\>
-
-Disassembly of section .plt:
-
-0+8010 \<\.plt\>:
- 8010: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
- 8014: b0000010 adrp x16, 9000 .*
- 8018: f9400e11 ldr x17, \[x16, #24\]
- 801c: 91006210 add x16, x16, #0x18
- 8020: d61f0220 br x17
- 8024: d503201f nop
- 8028: d503201f nop
- 802c: d503201f nop
- 8030: b0000010 adrp x16, 9000 .*
- 8034: f9401211 ldr x17, \[x16, #32\]
- 8038: 91008210 add x16, x16, #0x20
- 803c: d61f0220 br x17
+0+10000 \<_start\>:
+ 10000: 97ffe408 bl 9020 \<\.plt\+0x20>
+
+0+10004 \<hidfn\>:
+ 10004: 8a000000 and x0, x0, x0
+
+0+10008 \<bar\>:
+ 10008: 14000001 b 1000c \<foo\>
+
+0+1000c \<foo\>:
+ 1000c: 97fffffe bl 10004 \<hidfn\>
diff --git a/ld/testsuite/ld-aarch64/gc-relocs-257-dyn.d b/ld/testsuite/ld-aarch64/gc-relocs-257-dyn.d
index 56fcfa4..2e5e4c6 100644
--- a/ld/testsuite/ld-aarch64/gc-relocs-257-dyn.d
+++ b/ld/testsuite/ld-aarch64/gc-relocs-257-dyn.d
@@ -13,5 +13,5 @@
Disassembly of section .text:
-0+8000 \<_start\>:
- 8000: d503201f nop
+0+10000 \<_start\>:
+ 10000: d503201f nop
diff --git a/ld/testsuite/ld-aarch64/gc-relocs-257.d b/ld/testsuite/ld-aarch64/gc-relocs-257.d
index ffa7571..022b407 100644
--- a/ld/testsuite/ld-aarch64/gc-relocs-257.d
+++ b/ld/testsuite/ld-aarch64/gc-relocs-257.d
@@ -12,5 +12,5 @@
Disassembly of section .text:
-0+8000 \<_start\>:
- 8000: d503201f nop
+0+10000 \<_start\>:
+ 10000: d503201f nop
diff --git a/ld/testsuite/ld-aarch64/gc-tls-relocs.d b/ld/testsuite/ld-aarch64/gc-tls-relocs.d
index 38637dc..2f2210c 100644
--- a/ld/testsuite/ld-aarch64/gc-tls-relocs.d
+++ b/ld/testsuite/ld-aarch64/gc-tls-relocs.d
@@ -13,15 +13,15 @@
.*: file format elf64-(little|big)aarch64
SYMBOL TABLE:
-0+8000 l d \.text 0+ \.text
-0+0000 l df \*ABS\* 0+ .*
-0+8000 g \.text 0+ _start
+0+10000 l d \.text 0+ \.text
+0+00000 l df \*ABS\* 0+ .*
+0+10000 g \.text 0+ _start
Contents of section .text:
- 8000 1f2003d5 .*
+ 10000 1f2003d5 .*
-Disassembly of section .text:
+Disassembly of section \.text:
-0+8000 \<_start>:
- 8000: d503201f nop
+0+10000 \<_start>:
+ 10000: d503201f nop
diff --git a/ld/testsuite/ld-aarch64/nto-stack-note-1.d b/ld/testsuite/ld-aarch64/nto-stack-note-1.d
index d85dbca..e5f4742 100644
--- a/ld/testsuite/ld-aarch64/nto-stack-note-1.d
+++ b/ld/testsuite/ld-aarch64/nto-stack-note-1.d
@@ -4,6 +4,11 @@
#ld: -z stack-size=0x10000
#readelf: -n
+Displaying notes found in: .note.gnu.property
+.*
+.*
+.*
+
Displaying notes found in: .note
[ ]+Owner[ ]+Data size[ ]+Description
QNX 0x0000000c QNX stack
diff --git a/ld/testsuite/ld-aarch64/nto-stack-note-2.d b/ld/testsuite/ld-aarch64/nto-stack-note-2.d
index 9e446cc..4c5bc25 100644
--- a/ld/testsuite/ld-aarch64/nto-stack-note-2.d
+++ b/ld/testsuite/ld-aarch64/nto-stack-note-2.d
@@ -4,6 +4,11 @@
#ld: -z stack-size=0x10000 --lazy-stack -z execstack
#readelf: -n
+Displaying notes found in: .note.gnu.property
+.*
+.*
+.*
+
Displaying notes found in: .note
[ ]+Owner[ ]+Data size[ ]+Description
QNX 0x0000000c QNX stack
diff --git a/ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-a.d b/ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-a.d
new file mode 100644
index 0000000..7409525
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-a.d
@@ -0,0 +1,45 @@
+#name: No '-z force-bti' with '-z memory-seal' with feature properties (BTI) forces the generation of BTI PLT (shared)
+#source: bti-plt-1.s
+#source: bti-plt-2.s
+#target: [check_shared_lib_support]
+#as: -mabi=lp64 -defsym __property_bti__=1
+#ld: -shared -z memory-seal -T bti-plt.ld -L./tmpdir -lbti-plt-so
+#objdump: -dr -j .plt
+
+[^:]*: *file format elf64-.*aarch64
+
+Disassembly of section \.plt:
+
+[0-9]+ <\.plt>:
+.*: d503245f bti c
+.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
+.*: f9400e11 ldr x17, \[x16, #24\]
+.*: 91006210 add x16, x16, #0x18
+.*: d61f0220 br x17
+.*: d503201f nop
+.*: d503201f nop
+
+[0-9]+ <.*>:
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
+.*: f9401211 ldr x17, \[x16, #32\]
+.*: 91008210 add x16, x16, #0x20
+.*: d61f0220 br x17
+
+[0-9]+ <.*>:
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
+.*: f9401611 ldr x17, \[x16, #40\]
+.*: 9100a210 add x16, x16, #0x28
+.*: d61f0220 br x17
+
+[0-9]+ <.*>:
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
+.*: f9401a11 ldr x17, \[x16, #48\]
+.*: 9100c210 add x16, x16, #0x30
+.*: d61f0220 br x17
+
+[0-9]+ <.*>:
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
+.*: f9401e11 ldr x17, \[x16, #56\]
+.*: 9100e210 add x16, x16, #0x38
+.*: d61f0220 br x17
diff --git a/ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-b.d b/ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-b.d
new file mode 100644
index 0000000..0dadcc9
--- /dev/null
+++ b/ld/testsuite/ld-aarch64/protections/bti-and-memory-seal-plt-1-b.d
@@ -0,0 +1,14 @@
+#name: No '-z force-bti' with '-z memory-seal' all input objects have BTI emits BTI feature (shared)
+#source: bti-plt-1.s
+#source: bti-plt-2.s
+#target: [check_shared_lib_support]
+#as: -mabi=lp64 -defsym __property_bti__=1
+#ld: -z memory-seal -shared -T bti-plt.ld
+#readelf: -n
+
+Displaying notes found in: .note.gnu.property
+[ ]+Owner[ ]+Data size[ ]+Description
+ GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
+ Properties: memory seal\s
+\s+AArch64 feature: BTI
+#pass
diff --git a/ld/testsuite/ld-aarch64/protections/bti-far-1.d b/ld/testsuite/ld-aarch64/protections/bti-far-1.d
index 63fbb43..eb295cf 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-far-1.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-far-1.d
@@ -13,7 +13,7 @@ Disassembly of section \.plt:
0000000000018000 <\.plt>:
18000: d503245f bti c
18004: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
- 18008: 900000d0 adrp x16, 30000 <_GLOBAL_OFFSET_TABLE_>
+ 18008: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
1800c: f9400e11 ldr x17, \[x16, #24\]
18010: 91006210 add x16, x16, #0x18
18014: d61f0220 br x17
@@ -21,7 +21,7 @@ Disassembly of section \.plt:
1801c: d503201f nop
0000000000018020 <foo@plt>:
- 18020: 900000d0 adrp x16, 30000 <_GLOBAL_OFFSET_TABLE_>
+ 18020: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
18024: f9401211 ldr x17, \[x16, #32\]
18028: 91008210 add x16, x16, #0x20
1802c: d61f0220 br x17
diff --git a/ld/testsuite/ld-aarch64/protections/bti-far-opt.d b/ld/testsuite/ld-aarch64/protections/bti-far-opt.d
index cb293b6..f5038c0 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-far-opt.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-far-opt.d
@@ -13,7 +13,7 @@ Disassembly of section \.plt:
0000000000018000 <\.plt>:
18000: d503245f bti c
18004: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
- 18008: 900000d0 adrp x16, 30000 <_GLOBAL_OFFSET_TABLE_>
+ 18008: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
1800c: f9400e11 ldr x17, \[x16, #24\]
18010: 91006210 add x16, x16, #0x18
18014: d61f0220 br x17
@@ -21,7 +21,7 @@ Disassembly of section \.plt:
1801c: d503201f nop
0000000000018020 <foo@plt>:
- 18020: 900000d0 adrp x16, 30000 <_GLOBAL_OFFSET_TABLE_>
+ 18020: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
18024: f9401211 ldr x17, \[x16, #32\]
18028: 91008210 add x16, x16, #0x20
1802c: d61f0220 br x17
diff --git a/ld/testsuite/ld-aarch64/protections/bti-far.ld b/ld/testsuite/ld-aarch64/protections/bti-far.ld
index 214b8cb..1568f18 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-far.ld
+++ b/ld/testsuite/ld-aarch64/protections/bti-far.ld
@@ -2,14 +2,28 @@ OUTPUT_ARCH(aarch64)
ENTRY(_start)
SECTIONS
{
+ PROVIDE(__executable_start = 0x8000);
+ . = SEGMENT_START("text-segment", 0x8000) + SIZEOF_HEADERS;
+ /* Start of the executable code region. */
+ .hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
+ .dynsym : { *(.dynsym) }
+ .dynstr : { *(.dynstr) }
. = 0x10000;
- .rela.plt : { *(.rela.plt) *(.rela.iplt) }
+ .rela.dyn : { *(.rela.ifunc) }
+ .rela.plt : { *(.rela.plt) *(.rela.iplt) }
. = 0x18000;
- .plt : { *(.plt) *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
. = 0x20000;
- .text : { *(.text) }
- . = 0x30000;
- .got : { *(.got) *(.got.plt) }
+ .text : { *(.text) }
. = 0x12340000;
- .far : { *(.far) }
+ .far : { *(.far) }
+ /* Start of the Read Only Data region. */
+ .note.gnu-property : { *(.note.gnu-property) }
+
+ /* Start of the Read Write Data region. */
+ . = ALIGN (CONSTANT (MAXPAGESIZE));
+ .got : { *(.got) *(.got.plt) }
+ /* Start of the metadata region. */
+ .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) }
}
diff --git a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-1-a.d b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-1-a.d
index 96268d3..4ab1ca8 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-1-a.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-1-a.d
@@ -11,7 +11,7 @@ Disassembly of section \.plt:
[0-9a-f]+ <\.plt>:
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -20,13 +20,13 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9a-f]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d61f0220 br x17
[0-9a-f]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d61f0220 br x17
diff --git a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-1-b.d b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-1-b.d
index 041bf22..ef744e1 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-1-b.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-1-b.d
@@ -16,7 +16,7 @@ Disassembly of section \.plt:
[0-9a-f]+ <\.plt>:
.*: d503245f bti c
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -24,13 +24,13 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9a-f]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d61f0220 br x17
[0-9a-f]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d61f0220 br x17
diff --git a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-2-a.d b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-2-a.d
index f1ae3cd..0e87bcc 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-2-a.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-2-a.d
@@ -12,7 +12,7 @@ Disassembly of section \.plt:
[0-9a-f]+ <\.plt>:
.*: d503245f bti c
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -20,7 +20,7 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9a-f]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d503219f autia1716
@@ -28,7 +28,7 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9a-f]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d503219f autia1716
diff --git a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-2-b.d b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-2-b.d
index 69ccaab..199585c 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-2-b.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-2-b.d
@@ -12,7 +12,7 @@ Disassembly of section \.plt:
[0-9]+ <\.plt>:
.*: d503245f bti c
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -21,7 +21,7 @@ Disassembly of section \.plt:
[0-9]+ <.*>:
.*: d503245f bti c
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d503219f autia1716
@@ -29,7 +29,7 @@ Disassembly of section \.plt:
[0-9]+ <.*>:
.*: d503245f bti c
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d503219f autia1716
diff --git a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-3-a.d b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-3-a.d
index c0c0bdb..1789a98 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-3-a.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-3-a.d
@@ -12,7 +12,7 @@ Disassembly of section \.plt:
[0-9a-f]+ <\.plt>:
.*: d503245f bti c
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -20,7 +20,7 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9a-f]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d503219f autia1716
@@ -28,7 +28,7 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9a-f]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d503219f autia1716
diff --git a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-3-b.d b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-3-b.d
index 89a08ae..a0643ab 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-pac-plt-3-b.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-pac-plt-3-b.d
@@ -12,7 +12,7 @@ Disassembly of section \.plt:
[0-9]+ <\.plt>:
.*: d503245f bti c
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -21,7 +21,7 @@ Disassembly of section \.plt:
[0-9]+ <.*>:
.*: d503245f bti c
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d503219f autia1716
@@ -29,7 +29,7 @@ Disassembly of section \.plt:
[0-9]+ <.*>:
.*: d503245f bti c
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d503219f autia1716
diff --git a/ld/testsuite/ld-aarch64/protections/bti-plt-1-a.d b/ld/testsuite/ld-aarch64/protections/bti-plt-1-a.d
index 2dc3864..89c0abc 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-plt-1-a.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-plt-1-a.d
@@ -12,7 +12,7 @@ Disassembly of section \.plt:
[0-9]+ <\.plt>:
.*: d503245f bti c
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -20,13 +20,13 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d61f0220 br x17
[0-9]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d61f0220 br x17
diff --git a/ld/testsuite/ld-aarch64/protections/bti-plt-1-b.d b/ld/testsuite/ld-aarch64/protections/bti-plt-1-b.d
index 1bf956c..c889c1c 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-plt-1-b.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-plt-1-b.d
@@ -2,7 +2,7 @@
#source: bti-plt-1.s
#target: [check_shared_lib_support]
#as: -mabi=lp64 -defsym __property_bti__=1
-#ld: -shared -z force-bti -T bti-plt.ld -L./tmpdir -lbti-plt-so
+#ld: -shared -T bti-plt.ld -L./tmpdir -lbti-plt-so
#objdump: -dr -j .plt
[^:]*: *file format elf64-.*aarch64
@@ -12,7 +12,7 @@ Disassembly of section \.plt:
[0-9]+ <\.plt>:
.*: d503245f bti c
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -20,13 +20,13 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d61f0220 br x17
[0-9]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d61f0220 br x17
diff --git a/ld/testsuite/ld-aarch64/protections/bti-plt-1-c.d b/ld/testsuite/ld-aarch64/protections/bti-plt-1-c.d
index 2fd0dea..c200b0c 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-plt-1-c.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-plt-1-c.d
@@ -13,7 +13,7 @@ Disassembly of section \.plt:
[0-9]+ <\.plt>:
.*: d503245f bti c
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -21,13 +21,13 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d61f0220 br x17
[0-9]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d61f0220 br x17
diff --git a/ld/testsuite/ld-aarch64/protections/bti-plt-3.d b/ld/testsuite/ld-aarch64/protections/bti-plt-3.d
index e457bab..48db434 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-plt-3.d
+++ b/ld/testsuite/ld-aarch64/protections/bti-plt-3.d
@@ -12,7 +12,7 @@ Disassembly of section \.plt:
[0-9]+ <\.plt>:
.*: d503245f bti c
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -21,7 +21,7 @@ Disassembly of section \.plt:
[0-9]+ <.*>:
.*: d503245f bti c
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d61f0220 br x17
@@ -29,7 +29,7 @@ Disassembly of section \.plt:
[0-9]+ <.*>:
.*: d503245f bti c
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d61f0220 br x17
diff --git a/ld/testsuite/ld-aarch64/protections/bti-plt.ld b/ld/testsuite/ld-aarch64/protections/bti-plt.ld
index 8682623..c930fc8 100644
--- a/ld/testsuite/ld-aarch64/protections/bti-plt.ld
+++ b/ld/testsuite/ld-aarch64/protections/bti-plt.ld
@@ -2,13 +2,26 @@ OUTPUT_ARCH(aarch64)
ENTRY(_start)
SECTIONS
{
+ PROVIDE(__executable_start = 0x8000);
+ . = SEGMENT_START("text-segment", 0x8000) + SIZEOF_HEADERS;
+ /* Start of the executable code region. */
+ .hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
+ .dynsym : { *(.dynsym) }
+ .dynstr : { *(.dynstr) }
. = 0x10000;
- .rela.plt : { *(.rela.plt) *(.rela.iplt) }
+ .rela.dyn : { *(.rela.ifunc) }
+ .rela.plt : { *(.rela.plt) *(.rela.iplt) }
. = 0x18000;
- .plt : { *(.plt) *(.iplt) }
+ .plt : { *(.plt) *(.iplt) }
. = 0x20000;
- .text : { *(.text) }
- . = 0x28000;
- .got : { *(.got) *(.got.plt) }
- .ARM.attributes 0 : { *(.ARM.atttributes) }
+ .text : { *(.text) }
+ /* Start of the Read Only Data region. */
+ .note.gnu-property : { *(.note.gnu-property) }
+
+ /* Start of the Read Write Data region. */
+ . = ALIGN (CONSTANT (MAXPAGESIZE));
+ .got : { *(.got) *(.got.plt) }
+ /* Start of the metadata region. */
+ .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) }
}
diff --git a/ld/testsuite/ld-aarch64/protections/pac-plt-1-a.d b/ld/testsuite/ld-aarch64/protections/pac-plt-1-a.d
index fc10ec7..203cb12 100644
--- a/ld/testsuite/ld-aarch64/protections/pac-plt-1-a.d
+++ b/ld/testsuite/ld-aarch64/protections/pac-plt-1-a.d
@@ -11,7 +11,7 @@ Disassembly of section \.plt:
[0-9]+ <.*>:
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -20,7 +20,7 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d503219f autia1716
@@ -28,7 +28,7 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d503219f autia1716
diff --git a/ld/testsuite/ld-aarch64/protections/pac-plt-1-b.d b/ld/testsuite/ld-aarch64/protections/pac-plt-1-b.d
index 7a0fd59..6592689 100644
--- a/ld/testsuite/ld-aarch64/protections/pac-plt-1-b.d
+++ b/ld/testsuite/ld-aarch64/protections/pac-plt-1-b.d
@@ -15,7 +15,7 @@ Disassembly of section \.plt:
[0-9a-f]+ <\.plt>:
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9400e11 ldr x17, \[x16, #24\]
.*: 91006210 add x16, x16, #0x18
.*: d61f0220 br x17
@@ -24,13 +24,13 @@ Disassembly of section \.plt:
.*: d503201f nop
[0-9a-f]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401211 ldr x17, \[x16, #32\]
.*: 91008210 add x16, x16, #0x20
.*: d61f0220 br x17
[0-9a-f]+ <.*>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401611 ldr x17, \[x16, #40\]
.*: 9100a210 add x16, x16, #0x28
.*: d61f0220 br x17
diff --git a/ld/testsuite/ld-aarch64/protections/pac-plt-2.d b/ld/testsuite/ld-aarch64/protections/pac-plt-2.d
index 1c3d7f4..6795645 100644
--- a/ld/testsuite/ld-aarch64/protections/pac-plt-2.d
+++ b/ld/testsuite/ld-aarch64/protections/pac-plt-2.d
@@ -9,7 +9,7 @@ Disassembly of section \.plt:
.* \<.plt\>:
.*: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401a11 ldr x17, \[x16, #48\]
.*: 9100c210 add x16, x16, #0x30
.*: d61f0220 br x17
@@ -19,7 +19,7 @@ Disassembly of section \.plt:
.* \<__tls_get_addr@plt\>:
-.*: 90000090 adrp x16, 28000 <_GLOBAL_OFFSET_TABLE_>
+.*: [[:xdigit:]]{8} adrp x16, [[:xdigit:]]+ <_GLOBAL_OFFSET_TABLE_>
.*: f9401e11 ldr x17, \[x16, #56\]
.*: 9100e210 add x16, x16, #0x38
.*: d503219f autia1716
diff --git a/ld/testsuite/ld-aarch64/relocs-ilp32.ld b/ld/testsuite/ld-aarch64/relocs-ilp32.ld
index 4ddba91..3958ad8 100644
--- a/ld/testsuite/ld-aarch64/relocs-ilp32.ld
+++ b/ld/testsuite/ld-aarch64/relocs-ilp32.ld
@@ -15,7 +15,7 @@ SECTIONS
.got : { *(.got) *(.got.plt)}
. = 0x12340000;
.far : { *(.far) }
- .ARM.attributes 0 : { *(.ARM.atttributes) }
+ .ARM.attributes 0 : { *(.ARM.attributes) }
/* Providing a .data section triggers a non-executable segment to be
generated, which gives somewhere else for the linker to put the TLS
segment without creating a RWX permissioned one. */
diff --git a/ld/testsuite/ld-aarch64/relocs.ld b/ld/testsuite/ld-aarch64/relocs.ld
index 77adac8..b0e75e0 100644
--- a/ld/testsuite/ld-aarch64/relocs.ld
+++ b/ld/testsuite/ld-aarch64/relocs.ld
@@ -15,7 +15,7 @@ SECTIONS
.got : { *(.got) *(.got.plt)}
. = 0x12340000;
.far : { *(.far) }
- .ARM.attributes 0 : { *(.ARM.atttributes) }
+ .ARM.attributes 0 : { *(.ARM.attributes) }
/* Providing a .data section triggers a non-executable segment to be
generated, which gives somewhere else for the linker to put the TLS
segment without creating a RWX permissioned one. */
diff --git a/ld/testsuite/ld-aarch64/variant_pcs-now.d b/ld/testsuite/ld-aarch64/variant_pcs-now.d
index 5007632..1add2bb 100644
--- a/ld/testsuite/ld-aarch64/variant_pcs-now.d
+++ b/ld/testsuite/ld-aarch64/variant_pcs-now.d
@@ -4,65 +4,65 @@
#ld: -shared --hash-style=sysv -T variant_pcs.ld -z now
#readelf: -rsW
-Relocation section '\.rela\.plt' at offset 0x11000 contains 12 entries:
+Relocation section '\.rela\.plt' at offset 0x[[:xdigit:]]+ contains 12 entries:
Offset Info Type Symbol's Value Symbol's Name \+ Addend
-0000000000009020 0000000100000402 R_AARCH64_JUMP_SLOT 0000000000000000 f_base_global_default_undef \+ 0
-0000000000009028 0000000200000402 R_AARCH64_JUMP_SLOT 0000000000000000 f_spec_global_default_undef \+ 0
-0000000000009030 0000000400000402 R_AARCH64_JUMP_SLOT 0000000000008000 f_base_global_default_def \+ 0
-0000000000009038 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000008000 f_spec_global_default_def \+ 0
-0000000000009040 0000000000000408 R_AARCH64_IRELATIVE 8000
-0000000000009048 0000000300000402 R_AARCH64_JUMP_SLOT f_spec_global_default_ifunc\(\) f_spec_global_default_ifunc \+ 0
-0000000000009050 0000000000000408 R_AARCH64_IRELATIVE 8000
-0000000000009058 0000000600000402 R_AARCH64_JUMP_SLOT f_base_global_default_ifunc\(\) f_base_global_default_ifunc \+ 0
-0000000000009060 0000000000000408 R_AARCH64_IRELATIVE 8038
-0000000000009068 0000000000000408 R_AARCH64_IRELATIVE 8000
-0000000000009070 0000000000000408 R_AARCH64_IRELATIVE 8000
-0000000000009078 0000000000000408 R_AARCH64_IRELATIVE 8038
+00000000000[[:xdigit:]]{2}020 0000000100000402 R_AARCH64_JUMP_SLOT 0000000000000000 f_base_global_default_undef \+ 0
+00000000000[[:xdigit:]]{2}028 0000000200000402 R_AARCH64_JUMP_SLOT 0000000000000000 f_spec_global_default_undef \+ 0
+00000000000[[:xdigit:]]{2}030 0000000400000402 R_AARCH64_JUMP_SLOT 0000000000011000 f_base_global_default_def \+ 0
+00000000000[[:xdigit:]]{2}038 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000011000 f_spec_global_default_def \+ 0
+00000000000[[:xdigit:]]{2}040 0000000000000408 R_AARCH64_IRELATIVE 11000
+00000000000[[:xdigit:]]{2}048 0000000300000402 R_AARCH64_JUMP_SLOT f_spec_global_default_ifunc\(\) f_spec_global_default_ifunc \+ 0
+00000000000[[:xdigit:]]{2}050 0000000000000408 R_AARCH64_IRELATIVE 11000
+00000000000[[:xdigit:]]{2}058 0000000600000402 R_AARCH64_JUMP_SLOT f_base_global_default_ifunc\(\) f_base_global_default_ifunc \+ 0
+00000000000[[:xdigit:]]{2}060 0000000000000408 R_AARCH64_IRELATIVE 11038
+00000000000[[:xdigit:]]{2}068 0000000000000408 R_AARCH64_IRELATIVE 11000
+00000000000[[:xdigit:]]{2}070 0000000000000408 R_AARCH64_IRELATIVE 11000
+00000000000[[:xdigit:]]{2}078 0000000000000408 R_AARCH64_IRELATIVE 11038
Symbol table '\.dynsym' contains 7 entries:
Num: Value Size Type Bind Vis Ndx Name
- 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
+ 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND\s
1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef
2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef
- 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc
- 4: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def
- 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def
- 6: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc
+ 3: 0000000000011000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_default_ifunc
+ 4: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 6 f_base_global_default_def
+ 5: 0000000000011000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_default_def
+ 6: 0000000000011000 0 IFUNC GLOBAL DEFAULT 6 f_base_global_default_ifunc
Symbol table '\.symtab' contains 35 entries:
Num: Value Size Type Bind Vis Ndx Name
- 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
- 1: 0000000000008000 0 SECTION LOCAL DEFAULT 1.*
- 2: 0000000000008070 0 SECTION LOCAL DEFAULT 2.*
- 3: 0000000000009000 0 SECTION LOCAL DEFAULT 3.*
- 4: 0000000000009080 0 SECTION LOCAL DEFAULT 4.*
- 5: 0000000000011000 0 SECTION LOCAL DEFAULT 5.*
- 6: 0000000000011120 0 SECTION LOCAL DEFAULT 6.*
- 7: 00000000000111c8 0 SECTION LOCAL DEFAULT 7.*
- 8: 0000000000011270 0 SECTION LOCAL DEFAULT 8.*
+ 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND\s
+ 1: 00000000000080e8 0 SECTION LOCAL DEFAULT 1 \.hash
+ 2: 0000000000008118 0 SECTION LOCAL DEFAULT 2 \.dynsym
+ 3: 00000000000081c0 0 SECTION LOCAL DEFAULT 3 \.dynstr
+ 4: 0000000000009000 0 SECTION LOCAL DEFAULT 4 \.rela\.plt
+ 5: 0000000000010000 0 SECTION LOCAL DEFAULT 5 \.plt
+ 6: 0000000000011000 0 SECTION LOCAL DEFAULT 6 \.text
+ 7: 0000000000020000 0 SECTION LOCAL DEFAULT 7 \.dynamic
+ 8: 0000000000021000 0 SECTION LOCAL DEFAULT 8 \.got
9: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o
- 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local
- 11: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc
- 12: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_local_ifunc
- 13: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_local
- 14: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 \$x
+ 10: 0000000000011000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_local
+ 11: 0000000000011000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_local_ifunc
+ 12: 0000000000011000 0 IFUNC LOCAL DEFAULT 6 f_base_local_ifunc
+ 13: 0000000000011000 0 NOTYPE LOCAL DEFAULT 6 f_base_local
+ 14: 0000000000011000 0 NOTYPE LOCAL DEFAULT 6 \$x
15: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-2\.o
- 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2
- 17: 0000000000008038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2_ifunc
- 18: 0000000000008038 0 IFUNC LOCAL DEFAULT 1 f_base_local2_ifunc
- 19: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 f_base_local2
- 20: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 \$x
- 21: 0000000000000000 0 FILE LOCAL DEFAULT ABS
- 22: 0000000000009080 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
- 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_def
- 24: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_global_hidden_ifunc
- 25: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_global_hidden_def
- 26: 0000000000009000 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
- 27: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_ifunc
- 28: 0000000000008070 0 NOTYPE LOCAL DEFAULT 2 \$x
+ 16: 0000000000011038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_local2
+ 17: 0000000000011038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_local2_ifunc
+ 18: 0000000000011038 0 IFUNC LOCAL DEFAULT 6 f_base_local2_ifunc
+ 19: 0000000000011038 0 NOTYPE LOCAL DEFAULT 6 f_base_local2
+ 20: 0000000000011038 0 NOTYPE LOCAL DEFAULT 6 \$x
+ 21: 0000000000000000 0 FILE LOCAL DEFAULT ABS\s
+ 22: 0000000000020000 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
+ 23: 0000000000011000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_hidden_def
+ 24: 0000000000011000 0 IFUNC LOCAL DEFAULT 6 f_base_global_hidden_ifunc
+ 25: 0000000000011000 0 NOTYPE LOCAL DEFAULT 6 f_base_global_hidden_def
+ 26: 0000000000021000 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+ 27: 0000000000011000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_hidden_ifunc
+ 28: 0000000000010000 0 NOTYPE LOCAL DEFAULT 5 \$x
29: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef
30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef
- 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc
- 32: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def
- 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def
- 34: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc
+ 31: 0000000000011000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_default_ifunc
+ 32: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 6 f_base_global_default_def
+ 33: 0000000000011000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_default_def
+ 34: 0000000000011000 0 IFUNC GLOBAL DEFAULT 6 f_base_global_default_ifunc
diff --git a/ld/testsuite/ld-aarch64/variant_pcs-r.d b/ld/testsuite/ld-aarch64/variant_pcs-r.d
index 2651a68..65849e1 100644
--- a/ld/testsuite/ld-aarch64/variant_pcs-r.d
+++ b/ld/testsuite/ld-aarch64/variant_pcs-r.d
@@ -3,7 +3,7 @@
#ld: -r
#readelf: -rsW
-Relocation section '\.rela\.text' at offset .* contains 24 entries:
+Relocation section '\.rela\.text' at offset 0x[[:xdigit:]]+ contains 24 entries:
Offset Info Type Symbol's Value Symbol's Name \+ Addend
0000000000000000 000000180000011b R_AARCH64_CALL26 0000000000000000 f_spec_global_default_def \+ 0
0000000000000004 000000110000011b R_AARCH64_CALL26 0000000000000000 f_spec_global_default_undef \+ 0
@@ -32,10 +32,10 @@ Relocation section '\.rela\.text' at offset .* contains 24 entries:
Symbol table '\.symtab' contains 26 entries:
Num: Value Size Type Bind Vis Ndx Name
- 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
- 1: 0000000000000000 0 SECTION LOCAL DEFAULT 1.*
- 2: 0000000000000000 0 SECTION LOCAL DEFAULT 3.*
- 3: 0000000000000000 0 SECTION LOCAL DEFAULT 4.*
+ 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND\s
+ 1: 0000000000000000 0 SECTION LOCAL DEFAULT 1 \.text
+ 2: 0000000000000000 0 SECTION LOCAL DEFAULT 3 \.data
+ 3: 0000000000000000 0 SECTION LOCAL DEFAULT 4 \.bss
4: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o
5: 0000000000000000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local
6: 0000000000000000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc
diff --git a/ld/testsuite/ld-aarch64/variant_pcs-shared.d b/ld/testsuite/ld-aarch64/variant_pcs-shared.d
index e021799..3a39d8c 100644
--- a/ld/testsuite/ld-aarch64/variant_pcs-shared.d
+++ b/ld/testsuite/ld-aarch64/variant_pcs-shared.d
@@ -4,65 +4,65 @@
#ld: -shared --hash-style=sysv -T variant_pcs.ld
#readelf: -rsW
-Relocation section '\.rela\.plt' at offset 0x11000 contains 12 entries:
+Relocation section '\.rela\.plt' at offset 0x[[:xdigit:]]+ contains 12 entries:
Offset Info Type Symbol's Value Symbol's Name \+ Addend
-0000000000009020 0000000100000402 R_AARCH64_JUMP_SLOT 0000000000000000 f_base_global_default_undef \+ 0
-0000000000009028 0000000200000402 R_AARCH64_JUMP_SLOT 0000000000000000 f_spec_global_default_undef \+ 0
-0000000000009030 0000000400000402 R_AARCH64_JUMP_SLOT 0000000000008000 f_base_global_default_def \+ 0
-0000000000009038 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000008000 f_spec_global_default_def \+ 0
-0000000000009040 0000000000000408 R_AARCH64_IRELATIVE 8000
-0000000000009048 0000000300000402 R_AARCH64_JUMP_SLOT f_spec_global_default_ifunc\(\) f_spec_global_default_ifunc \+ 0
-0000000000009050 0000000000000408 R_AARCH64_IRELATIVE 8000
-0000000000009058 0000000600000402 R_AARCH64_JUMP_SLOT f_base_global_default_ifunc\(\) f_base_global_default_ifunc \+ 0
-0000000000009060 0000000000000408 R_AARCH64_IRELATIVE 8038
-0000000000009068 0000000000000408 R_AARCH64_IRELATIVE 8000
-0000000000009070 0000000000000408 R_AARCH64_IRELATIVE 8000
-0000000000009078 0000000000000408 R_AARCH64_IRELATIVE 8038
+00000000000[[:xdigit:]]{2}020 0000000100000402 R_AARCH64_JUMP_SLOT 0000000000000000 f_base_global_default_undef \+ 0
+00000000000[[:xdigit:]]{2}028 0000000200000402 R_AARCH64_JUMP_SLOT 0000000000000000 f_spec_global_default_undef \+ 0
+00000000000[[:xdigit:]]{2}030 0000000400000402 R_AARCH64_JUMP_SLOT 0000000000011000 f_base_global_default_def \+ 0
+00000000000[[:xdigit:]]{2}038 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000011000 f_spec_global_default_def \+ 0
+00000000000[[:xdigit:]]{2}040 0000000000000408 R_AARCH64_IRELATIVE 11000
+00000000000[[:xdigit:]]{2}048 0000000300000402 R_AARCH64_JUMP_SLOT f_spec_global_default_ifunc\(\) f_spec_global_default_ifunc \+ 0
+00000000000[[:xdigit:]]{2}050 0000000000000408 R_AARCH64_IRELATIVE 11000
+00000000000[[:xdigit:]]{2}058 0000000600000402 R_AARCH64_JUMP_SLOT f_base_global_default_ifunc\(\) f_base_global_default_ifunc \+ 0
+00000000000[[:xdigit:]]{2}060 0000000000000408 R_AARCH64_IRELATIVE 11038
+00000000000[[:xdigit:]]{2}068 0000000000000408 R_AARCH64_IRELATIVE 11000
+00000000000[[:xdigit:]]{2}070 0000000000000408 R_AARCH64_IRELATIVE 11000
+00000000000[[:xdigit:]]{2}078 0000000000000408 R_AARCH64_IRELATIVE 11038
Symbol table '\.dynsym' contains 7 entries:
Num: Value Size Type Bind Vis Ndx Name
- 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
+ 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND\s
1: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef
2: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef
- 3: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc
- 4: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def
- 5: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def
- 6: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc
+ 3: 0000000000011000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_default_ifunc
+ 4: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 6 f_base_global_default_def
+ 5: 0000000000011000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_default_def
+ 6: 0000000000011000 0 IFUNC GLOBAL DEFAULT 6 f_base_global_default_ifunc
Symbol table '\.symtab' contains 35 entries:
Num: Value Size Type Bind Vis Ndx Name
- 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
- 1: 0000000000008000 0 SECTION LOCAL DEFAULT 1.*
- 2: 0000000000008070 0 SECTION LOCAL DEFAULT 2.*
- 3: 0000000000009000 0 SECTION LOCAL DEFAULT 3.*
- 4: 0000000000009080 0 SECTION LOCAL DEFAULT 4.*
- 5: 0000000000011000 0 SECTION LOCAL DEFAULT 5.*
- 6: 0000000000011120 0 SECTION LOCAL DEFAULT 6.*
- 7: 00000000000111c8 0 SECTION LOCAL DEFAULT 7.*
- 8: 0000000000011270 0 SECTION LOCAL DEFAULT 8.*
+ 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND\s
+ 1: 00000000000080e8 0 SECTION LOCAL DEFAULT 1 \.hash
+ 2: 0000000000008118 0 SECTION LOCAL DEFAULT 2 \.dynsym
+ 3: 00000000000081c0 0 SECTION LOCAL DEFAULT 3 \.dynstr
+ 4: 0000000000009000 0 SECTION LOCAL DEFAULT 4 \.rela\.plt
+ 5: 0000000000010000 0 SECTION LOCAL DEFAULT 5 \.plt
+ 6: 0000000000011000 0 SECTION LOCAL DEFAULT 6 \.text
+ 7: 0000000000020000 0 SECTION LOCAL DEFAULT 7 \.dynamic
+ 8: 0000000000021000 0 SECTION LOCAL DEFAULT 8 \.got
9: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-1\.o
- 10: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local
- 11: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local_ifunc
- 12: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_local_ifunc
- 13: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_local
- 14: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 \$x
+ 10: 0000000000011000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_local
+ 11: 0000000000011000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_local_ifunc
+ 12: 0000000000011000 0 IFUNC LOCAL DEFAULT 6 f_base_local_ifunc
+ 13: 0000000000011000 0 NOTYPE LOCAL DEFAULT 6 f_base_local
+ 14: 0000000000011000 0 NOTYPE LOCAL DEFAULT 6 \$x
15: 0000000000000000 0 FILE LOCAL DEFAULT ABS .*variant_pcs-2\.o
- 16: 0000000000008038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2
- 17: 0000000000008038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_local2_ifunc
- 18: 0000000000008038 0 IFUNC LOCAL DEFAULT 1 f_base_local2_ifunc
- 19: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 f_base_local2
- 20: 0000000000008038 0 NOTYPE LOCAL DEFAULT 1 \$x
- 21: 0000000000000000 0 FILE LOCAL DEFAULT ABS
- 22: 0000000000009080 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
- 23: 0000000000008000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_def
- 24: 0000000000008000 0 IFUNC LOCAL DEFAULT 1 f_base_global_hidden_ifunc
- 25: 0000000000008000 0 NOTYPE LOCAL DEFAULT 1 f_base_global_hidden_def
- 26: 0000000000009000 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
- 27: 0000000000008000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_hidden_ifunc
- 28: 0000000000008070 0 NOTYPE LOCAL DEFAULT 2 \$x
+ 16: 0000000000011038 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_local2
+ 17: 0000000000011038 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_local2_ifunc
+ 18: 0000000000011038 0 IFUNC LOCAL DEFAULT 6 f_base_local2_ifunc
+ 19: 0000000000011038 0 NOTYPE LOCAL DEFAULT 6 f_base_local2
+ 20: 0000000000011038 0 NOTYPE LOCAL DEFAULT 6 \$x
+ 21: 0000000000000000 0 FILE LOCAL DEFAULT ABS\s
+ 22: 0000000000020000 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC
+ 23: 0000000000011000 0 NOTYPE LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_hidden_def
+ 24: 0000000000011000 0 IFUNC LOCAL DEFAULT 6 f_base_global_hidden_ifunc
+ 25: 0000000000011000 0 NOTYPE LOCAL DEFAULT 6 f_base_global_hidden_def
+ 26: 0000000000021000 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_
+ 27: 0000000000011000 0 IFUNC LOCAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_hidden_ifunc
+ 28: 0000000000010000 0 NOTYPE LOCAL DEFAULT 5 \$x
29: 0000000000000000 0 NOTYPE GLOBAL DEFAULT UND f_base_global_default_undef
30: 0000000000000000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] UND f_spec_global_default_undef
- 31: 0000000000008000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_ifunc
- 32: 0000000000008000 0 NOTYPE GLOBAL DEFAULT 1 f_base_global_default_def
- 33: 0000000000008000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 1 f_spec_global_default_def
- 34: 0000000000008000 0 IFUNC GLOBAL DEFAULT 1 f_base_global_default_ifunc
+ 31: 0000000000011000 0 IFUNC GLOBAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_default_ifunc
+ 32: 0000000000011000 0 NOTYPE GLOBAL DEFAULT 6 f_base_global_default_def
+ 33: 0000000000011000 0 NOTYPE GLOBAL DEFAULT \[VARIANT_PCS\] 6 f_spec_global_default_def
+ 34: 0000000000011000 0 IFUNC GLOBAL DEFAULT 6 f_base_global_default_ifunc
diff --git a/ld/testsuite/ld-aarch64/variant_pcs.ld b/ld/testsuite/ld-aarch64/variant_pcs.ld
index a66a934..cadecd8 100644
--- a/ld/testsuite/ld-aarch64/variant_pcs.ld
+++ b/ld/testsuite/ld-aarch64/variant_pcs.ld
@@ -3,21 +3,31 @@ OUTPUT_ARCH(aarch64)
ENTRY(_start)
SECTIONS
{
- /* Read-only sections, merged into text segment: */
- PROVIDE (__executable_start = 0x8000); . = 0x8000;
+ PROVIDE(__executable_start = 0x8000);
+ . = SEGMENT_START("text-segment", 0x8000) + SIZEOF_HEADERS;
+ /* Start of the executable code region. */
+ .hash : { *(.hash) }
+ .gnu.hash : { *(.gnu.hash) }
+ .dynsym : { *(.dynsym) }
+ .dynstr : { *(.dynstr) }
+ . = 0x9000;
+ .rela.plt : { *(.rela.plt) *(.rela.iplt) }
+ . = 0x10000;
+ .plt : { *(.plt) }
+ . = 0x11000;
.text :
{
*(.before)
*(.text)
*(.after)
- } =0
- . = 0x9000;
+ }
+
+ /* Start of the Read Write Data region. */
+ . = ALIGN (CONSTANT (MAXPAGESIZE));
+ .dynamic : { *(.dynamic) }
+ . = ALIGN(4K);
.got : { *(.got) *(.got.plt)}
- . = 0x10000;
- .rela.dyn : { *(.rela.ifunc) }
- . = 0x11000;
- .rela.plt : { *(.rela.plt) *(.rela.iplt) }
- . = 0x12340000;
- .far : { *(.far) }
- .ARM.attributes 0 : { *(.ARM.atttributes) }
+
+ /* Start of the metadata region. */
+ .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) }
}
diff --git a/ld/testsuite/ld-arm/arm.ld b/ld/testsuite/ld-arm/arm.ld
index 8e3fac2..4b596ce 100644
--- a/ld/testsuite/ld-arm/arm.ld
+++ b/ld/testsuite/ld-arm/arm.ld
@@ -19,5 +19,5 @@ SECTIONS
.got : { *(.got) *(.got.plt)}
. = 0x12340000;
.far : { *(.far) }
- .ARM.attribues 0 : { *(.ARM.atttributes) }
+ .ARM.attributes 0 : { *(.ARM.attributes) }
}
diff --git a/ld/testsuite/ld-arm/arm_purecode.ld b/ld/testsuite/ld-arm/arm_purecode.ld
index 195aca1..488e3dd 100644
--- a/ld/testsuite/ld-arm/arm_purecode.ld
+++ b/ld/testsuite/ld-arm/arm_purecode.ld
@@ -28,5 +28,5 @@ SECTIONS
.got : { *(.got) *(.got.plt)}
. = 0x12340000;
.far : { *(.far) }
- .ARM.attribues 0 : { *(.ARM.atttributes) }
+ .ARM.attributes 0 : { *(.ARM.attributes) }
}
diff --git a/ld/testsuite/ld-arm/discard-unwind.ld b/ld/testsuite/ld-arm/discard-unwind.ld
index d8f6524..54418f7 100644
--- a/ld/testsuite/ld-arm/discard-unwind.ld
+++ b/ld/testsuite/ld-arm/discard-unwind.ld
@@ -15,5 +15,5 @@ SECTIONS
*(.v4_bx)
} =0
/DISCARD/ : { *(.ARM.exidx*) }
- .ARM.attribues 0 : { *(.ARM.atttributes) }
+ .ARM.attributes 0 : { *(.ARM.attributes) }
}
diff --git a/ld/testsuite/ld-arm/script-type.ld b/ld/testsuite/ld-arm/script-type.ld
index 01995eb..af34697 100644
--- a/ld/testsuite/ld-arm/script-type.ld
+++ b/ld/testsuite/ld-arm/script-type.ld
@@ -3,7 +3,7 @@ SECTIONS {
foo_a = bar_a;
foo_t = bar_t;
foo_o = bar_o;
- *(.text)
+ *(.text)
}
- .ARM.attribues 0 : { *(.ARM.attributes) }
+ .ARM.attributes 0 : { *(.ARM.attributes) }
}
diff --git a/ld/testsuite/ld-arm/unwind-1.d b/ld/testsuite/ld-arm/unwind-1.d
index add5cb7..073d6a5 100644
--- a/ld/testsuite/ld-arm/unwind-1.d
+++ b/ld/testsuite/ld-arm/unwind-1.d
@@ -1,10 +1,7 @@
#ld: -T arm.ld
-#objdump: -s
+#objdump: -s -j .ARM.exidx
.*: file format.*
-#...
-Contents of section .ARM.exidx:
- 8008 (f8ffff7f b0b0a880 f4ffff7f 01000000|7ffffff8 80a8b0b0 7ffffff4 00000001) .*
-Contents of section .far:
-#...
+Contents of section \.ARM\.exidx:
+ 8008 (f8ffff7f b0b0a880 f4ffff7f 01000000|7ffffff8 80a8b0b0 7ffffff4 00000001) \.+
diff --git a/ld/testsuite/ld-arm/unwind-2.d b/ld/testsuite/ld-arm/unwind-2.d
index a096c9b..c9cd433 100644
--- a/ld/testsuite/ld-arm/unwind-2.d
+++ b/ld/testsuite/ld-arm/unwind-2.d
@@ -1,10 +1,7 @@
#ld: -T arm.ld
-#objdump: -s
+#objdump: -s -j .ARM.exidx
.*: file format.*
-#...
-Contents of section .ARM.exidx:
- 8004 (fcffff7f b0b0a880 f8ffff7f 01000000|7ffffffc 80a8b0b0 7ffffff8 00000001) .*
-Contents of section .far:
-#...
+Contents of section \.ARM\.exidx:
+ 8004 (fcffff7f b0b0a880 f8ffff7f 01000000|7ffffffc 80a8b0b0 7ffffff8 00000001) \.+
diff --git a/ld/testsuite/ld-arm/unwind-3.d b/ld/testsuite/ld-arm/unwind-3.d
index 0b8e85e..9da1484 100644
--- a/ld/testsuite/ld-arm/unwind-3.d
+++ b/ld/testsuite/ld-arm/unwind-3.d
@@ -1,11 +1,8 @@
#ld: -T arm.ld
-#objdump: -s
+#objdump: -s -j .ARM.exidx
.*: file format.*
-#...
-Contents of section .ARM.exidx:
- 800c (f4ffff7f b0b0a880 f0ffff7f 01000000|7ffffff4 80a8b0b0 7ffffff0 00000001) .*
- 801c (ecffff7f b0b0a880 e8ffff7f 01000000|7fffffec 80a8b0b0 7fffffe8 00000001) .*
-Contents of section .far:
-#...
+Contents of section \.ARM\.exidx:
+ 800c (f4ffff7f b0b0a880 f0ffff7f 01000000|7ffffff4 80a8b0b0 7ffffff0 00000001) \.+
+ 801c (ecffff7f b0b0a880 e8ffff7f 01000000|7fffffec 80a8b0b0 7fffffe8 00000001) \.+
diff --git a/ld/testsuite/ld-arm/unwind-4.d b/ld/testsuite/ld-arm/unwind-4.d
index ffc8725..7b71de88 100644
--- a/ld/testsuite/ld-arm/unwind-4.d
+++ b/ld/testsuite/ld-arm/unwind-4.d
@@ -1,9 +1,8 @@
#ld: -q -T arm.ld
-#objdump: -sr
+#objdump: -sr -j .ARM.exidx
.*: file format.*
-#...
RELOCATION RECORDS FOR \[\.ARM\.exidx\]:
OFFSET +TYPE +VALUE
00000000 R_ARM_PREL31 \.text
@@ -17,11 +16,6 @@ OFFSET +TYPE +VALUE
00000010 R_ARM_NONE __aeabi_unwind_cpp_pr0
00000018 R_ARM_PREL31 \.text
-
-Contents of section .text:
-#...
-Contents of section .ARM.exidx:
- 8020 (e0ffff7f b0b0a880 dcffff7f e8ffff7f|7fffffe0 80a8b0b0 7fffffdc 7fffffe8) .*
- 8030 (d8ffff7f b0b0a880 d8ffff7f 01000000|7fffffd8 80a8b0b0 7fffffd8 00000001) .*
-Contents of section .far:
-#...
+Contents of section \.ARM\.exidx:
+ 8020 (e0ffff7f b0b0a880 dcffff7f e8ffff7f|7fffffe0 80a8b0b0 7fffffdc 7fffffe8) \.+
+ 8030 (d8ffff7f b0b0a880 d8ffff7f 01000000|7fffffd8 80a8b0b0 7fffffd8 00000001) \.+
diff --git a/ld/testsuite/ld-elf/elf.exp b/ld/testsuite/ld-elf/elf.exp
index 914be90..7e69940 100644
--- a/ld/testsuite/ld-elf/elf.exp
+++ b/ld/testsuite/ld-elf/elf.exp
@@ -199,15 +199,17 @@ proc target_defaults_to_execstack {} {
# If the linker has been configured with --enable-default-execstack=no then
# this proc should always return 0.
- if { [file exists $base_dir/config.status] } {
- set status [remote_exec host grep "enable-default-execstack=no" $base_dir/config.status]
+ set f $base_dir/config.h
+ set s {DEFAULT_LD_EXECSTACK\ 0}
+ if { [file exists $f] } {
+ set status [remote_exec host grep $s $f]
if { [lindex $status 0] == 0 } {
return 0
} else {
- verbose -log "$base_dir/config.status does not contain enable-default-execstack=no"
+ verbose -log "$f does not contain $s"
}
} else {
- verbose -log "there is no file $base_dir/config.status"
+ verbose -log "there is no file $f"
}
if { [istarget "aarch64*-*-*"]
@@ -497,6 +499,17 @@ if { [istarget *-*-linux*]
]
}
+ run_cc_link_tests [list \
+ [list \
+ "Build pr32690.so" \
+ "-shared" \
+ "-O2 -fPIC" \
+ { pr32690b.c } \
+ {} \
+ "pr32690.so" \
+ ] \
+ ]
+
run_ld_link_exec_tests [list \
[list \
"Run mbind2a" \
@@ -516,6 +529,18 @@ if { [istarget *-*-linux*]
"pass.out" \
"-O2 -I../bfd" \
] \
+ [list \
+ "Run pr32690" \
+ "-pie -Wl,-z,now" \
+ "" \
+ { pr32690a.c } \
+ "pr32690" \
+ "pass.out" \
+ "-O2 -fPIE" \
+ "C" \
+ {} \
+ "-Wl,-R,tmpdir tmpdir/pr32690.so" \
+ ] \
]
}
diff --git a/ld/testsuite/ld-elf/pr32690.h b/ld/testsuite/ld-elf/pr32690.h
new file mode 100644
index 0000000..dff2d7d
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr32690.h
@@ -0,0 +1,17 @@
+struct data1
+{
+ char c[0x1000];
+} __attribute__ ((aligned (128)));
+
+struct data2
+{
+ char c[872];
+};
+
+extern const struct data1 d1[];
+extern const struct data2 d2;
+extern const char c1[];
+
+extern const int var0;
+extern const int var1;
+extern const int var2;
diff --git a/ld/testsuite/ld-elf/pr32690a.c b/ld/testsuite/ld-elf/pr32690a.c
new file mode 100644
index 0000000..e7150d4
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr32690a.c
@@ -0,0 +1,1297 @@
+#include <stdio.h>
+#include <string.h>
+#include "pr32690.h"
+
+static const char * const phdr_types[] =
+{
+ "PT_NULL", "PT_LOAD", "PT_DYNAMIC", "PT_PHDR"
+};
+
+int
+main (int argc, char **argv)
+{
+ unsigned int i = 0, j;
+ i += d1[0].c[0] + c1[0];
+ i += d2.c[0];
+
+ extern void func0 (void);
+ func0 ();
+
+ extern void func1 (void);
+ func1 ();
+
+ extern void func2 (void);
+ func2 ();
+
+ extern void func3 (void);
+ func3 ();
+
+ extern void func4 (void);
+ func4 ();
+
+ extern void func5 (void);
+ func5 ();
+
+ extern void func6 (void);
+ func6 ();
+
+ extern void func7 (void);
+ func7 ();
+
+ extern void func8 (void);
+ func8 ();
+
+ extern void func9 (void);
+ func9 ();
+
+ extern void func10 (void);
+ func10 ();
+
+ extern void func11 (void);
+ func11 ();
+
+ extern void func12 (void);
+ func12 ();
+
+ extern void func13 (void);
+ func13 ();
+
+ extern void func14 (void);
+ func14 ();
+
+ extern void func15 (void);
+ func15 ();
+
+ extern void func16 (void);
+ func16 ();
+
+ extern void func17 (void);
+ func17 ();
+
+ extern void func18 (void);
+ func18 ();
+
+ extern void func19 (void);
+ func19 ();
+
+ extern void func20 (void);
+ func20 ();
+
+ extern void func21 (void);
+ func21 ();
+
+ extern void func22 (void);
+ func22 ();
+
+ extern void func23 (void);
+ func23 ();
+
+ extern void func24 (void);
+ func24 ();
+
+ extern void func25 (void);
+ func25 ();
+
+ extern void func26 (void);
+ func26 ();
+
+ extern void func27 (void);
+ func27 ();
+
+ extern void func28 (void);
+ func28 ();
+
+ extern void func29 (void);
+ func29 ();
+
+ extern void func30 (void);
+ func30 ();
+
+ extern void func31 (void);
+ func31 ();
+
+ extern void func32 (void);
+ func32 ();
+
+ extern void func33 (void);
+ func33 ();
+
+ extern void func34 (void);
+ func34 ();
+
+ extern void func35 (void);
+ func35 ();
+
+ extern void func36 (void);
+ func36 ();
+
+ extern void func37 (void);
+ func37 ();
+
+ extern void func38 (void);
+ func38 ();
+
+ extern void func39 (void);
+ func39 ();
+
+ extern void func40 (void);
+ func40 ();
+
+ extern void func41 (void);
+ func41 ();
+
+ extern void func42 (void);
+ func42 ();
+
+ extern void func43 (void);
+ func43 ();
+
+ extern void func44 (void);
+ func44 ();
+
+ extern void func45 (void);
+ func45 ();
+
+ extern void func46 (void);
+ func46 ();
+
+ extern void func47 (void);
+ func47 ();
+
+ extern void func48 (void);
+ func48 ();
+
+ extern void func49 (void);
+ func49 ();
+
+ extern void func50 (void);
+ func50 ();
+
+ extern void func51 (void);
+ func51 ();
+
+ extern void func52 (void);
+ func52 ();
+
+ extern void func53 (void);
+ func53 ();
+
+ extern void func54 (void);
+ func54 ();
+
+ extern void func55 (void);
+ func55 ();
+
+ extern void func56 (void);
+ func56 ();
+
+ extern void func57 (void);
+ func57 ();
+
+ extern void func58 (void);
+ func58 ();
+
+ extern void func59 (void);
+ func59 ();
+
+ extern void func60 (void);
+ func60 ();
+
+ extern void func61 (void);
+ func61 ();
+
+ extern void func62 (void);
+ func62 ();
+
+ extern void func63 (void);
+ func63 ();
+
+ extern void func64 (void);
+ func64 ();
+
+ extern void func65 (void);
+ func65 ();
+
+ extern void func66 (void);
+ func66 ();
+
+ extern void func67 (void);
+ func67 ();
+
+ extern void func68 (void);
+ func68 ();
+
+ extern void func69 (void);
+ func69 ();
+
+ extern void func70 (void);
+ func70 ();
+
+ extern void func71 (void);
+ func71 ();
+
+ extern void func72 (void);
+ func72 ();
+
+ extern void func73 (void);
+ func73 ();
+
+ extern void func74 (void);
+ func74 ();
+
+ extern void func75 (void);
+ func75 ();
+
+ extern void func76 (void);
+ func76 ();
+
+ extern void func77 (void);
+ func77 ();
+
+ extern void func78 (void);
+ func78 ();
+
+ extern void func79 (void);
+ func79 ();
+
+ extern void func80 (void);
+ func80 ();
+
+ extern void func81 (void);
+ func81 ();
+
+ extern void func82 (void);
+ func82 ();
+
+ extern void func83 (void);
+ func83 ();
+
+ extern void func84 (void);
+ func84 ();
+
+ extern void func85 (void);
+ func85 ();
+
+ extern void func86 (void);
+ func86 ();
+
+ extern void func87 (void);
+ func87 ();
+
+ extern void func88 (void);
+ func88 ();
+
+ extern void func89 (void);
+ func89 ();
+
+ extern void func90 (void);
+ func90 ();
+
+ extern void func91 (void);
+ func91 ();
+
+ extern void func92 (void);
+ func92 ();
+
+ extern void func93 (void);
+ func93 ();
+
+ extern void func94 (void);
+ func94 ();
+
+ extern void func95 (void);
+ func95 ();
+
+ extern void func96 (void);
+ func96 ();
+
+ extern void func97 (void);
+ func97 ();
+
+ extern void func98 (void);
+ func98 ();
+
+ extern void func99 (void);
+ func99 ();
+
+ extern void func100 (void);
+ func100 ();
+
+ extern void func101 (void);
+ func101 ();
+
+ extern void func102 (void);
+ func102 ();
+
+ extern void func103 (void);
+ func103 ();
+
+ extern void func104 (void);
+ func104 ();
+
+ extern void func105 (void);
+ func105 ();
+
+ extern void func106 (void);
+ func106 ();
+
+ extern void func107 (void);
+ func107 ();
+
+ extern void func108 (void);
+ func108 ();
+
+ extern void func109 (void);
+ func109 ();
+
+ extern void func110 (void);
+ func110 ();
+
+ extern void func111 (void);
+ func111 ();
+
+ extern void func112 (void);
+ func112 ();
+
+ extern void func113 (void);
+ func113 ();
+
+ extern void func114 (void);
+ func114 ();
+
+ extern void func115 (void);
+ func115 ();
+
+ extern void func116 (void);
+ func116 ();
+
+ extern void func117 (void);
+ func117 ();
+
+ extern void func118 (void);
+ func118 ();
+
+ extern void func119 (void);
+ func119 ();
+
+ extern void func120 (void);
+ func120 ();
+
+ extern void func121 (void);
+ func121 ();
+
+ extern void func122 (void);
+ func122 ();
+
+ extern void func123 (void);
+ func123 ();
+
+ extern void func124 (void);
+ func124 ();
+
+ extern void func125 (void);
+ func125 ();
+
+ extern void func126 (void);
+ func126 ();
+
+ extern void func127 (void);
+ func127 ();
+
+ extern void func128 (void);
+ func128 ();
+
+ extern void func129 (void);
+ func129 ();
+
+ extern void func130 (void);
+ func130 ();
+
+ extern void func131 (void);
+ func131 ();
+
+ extern void func132 (void);
+ func132 ();
+
+ extern void func133 (void);
+ func133 ();
+
+ extern void func134 (void);
+ func134 ();
+
+ extern void func135 (void);
+ func135 ();
+
+ extern void func136 (void);
+ func136 ();
+
+ extern void func137 (void);
+ func137 ();
+
+ extern void func138 (void);
+ func138 ();
+
+ extern void func139 (void);
+ func139 ();
+
+ extern void func140 (void);
+ func140 ();
+
+ extern void func141 (void);
+ func141 ();
+
+ extern void func142 (void);
+ func142 ();
+
+ extern void func143 (void);
+ func143 ();
+
+ extern void func144 (void);
+ func144 ();
+
+ extern void func145 (void);
+ func145 ();
+
+ extern void func146 (void);
+ func146 ();
+
+ extern void func147 (void);
+ func147 ();
+
+ extern void func148 (void);
+ func148 ();
+
+ extern void func149 (void);
+ func149 ();
+
+ extern void func150 (void);
+ func150 ();
+
+ extern void func151 (void);
+ func151 ();
+
+ extern void func152 (void);
+ func152 ();
+
+ extern void func153 (void);
+ func153 ();
+
+ extern void func154 (void);
+ func154 ();
+
+ extern void func155 (void);
+ func155 ();
+
+ extern void func156 (void);
+ func156 ();
+
+ extern void func157 (void);
+ func157 ();
+
+ extern void func158 (void);
+ func158 ();
+
+ extern void func159 (void);
+ func159 ();
+
+ extern void func160 (void);
+ func160 ();
+
+ extern void func161 (void);
+ func161 ();
+
+ extern void func162 (void);
+ func162 ();
+
+ extern void func163 (void);
+ func163 ();
+
+ extern void func164 (void);
+ func164 ();
+
+ extern void func165 (void);
+ func165 ();
+
+ extern void func166 (void);
+ func166 ();
+
+ extern void func167 (void);
+ func167 ();
+
+ extern void func168 (void);
+ func168 ();
+
+ extern void func169 (void);
+ func169 ();
+
+ extern void func170 (void);
+ func170 ();
+
+ extern void func171 (void);
+ func171 ();
+
+ extern void func172 (void);
+ func172 ();
+
+ extern void func173 (void);
+ func173 ();
+
+ extern void func174 (void);
+ func174 ();
+
+ extern void func175 (void);
+ func175 ();
+
+ extern void func176 (void);
+ func176 ();
+
+ extern void func177 (void);
+ func177 ();
+
+ extern void func178 (void);
+ func178 ();
+
+ extern void func179 (void);
+ func179 ();
+
+ extern void func180 (void);
+ func180 ();
+
+ extern void func181 (void);
+ func181 ();
+
+ extern void func182 (void);
+ func182 ();
+
+ extern void func183 (void);
+ func183 ();
+
+ extern void func184 (void);
+ func184 ();
+
+ extern void func185 (void);
+ func185 ();
+
+ extern void func186 (void);
+ func186 ();
+
+ extern void func187 (void);
+ func187 ();
+
+ extern void func188 (void);
+ func188 ();
+
+ extern void func189 (void);
+ func189 ();
+
+ extern void func190 (void);
+ func190 ();
+
+ extern void func191 (void);
+ func191 ();
+
+ extern void func192 (void);
+ func192 ();
+
+ extern void func193 (void);
+ func193 ();
+
+ extern void func194 (void);
+ func194 ();
+
+ extern void func195 (void);
+ func195 ();
+
+ extern void func196 (void);
+ func196 ();
+
+ extern void func197 (void);
+ func197 ();
+
+ extern void func198 (void);
+ func198 ();
+
+ extern void func199 (void);
+ func199 ();
+
+ extern void func200 (void);
+ func200 ();
+
+ extern void func201 (void);
+ func201 ();
+
+ extern void func202 (void);
+ func202 ();
+
+ extern void func203 (void);
+ func203 ();
+
+ extern void func204 (void);
+ func204 ();
+
+ extern void func205 (void);
+ func205 ();
+
+ extern void func206 (void);
+ func206 ();
+
+ extern void func207 (void);
+ func207 ();
+
+ extern void func208 (void);
+ func208 ();
+
+ extern void func209 (void);
+ func209 ();
+
+ extern void func210 (void);
+ func210 ();
+
+ extern void func211 (void);
+ func211 ();
+
+ extern void func212 (void);
+ func212 ();
+
+ extern void func213 (void);
+ func213 ();
+
+ extern void func214 (void);
+ func214 ();
+
+ extern void func215 (void);
+ func215 ();
+
+ extern void func216 (void);
+ func216 ();
+
+ extern void func217 (void);
+ func217 ();
+
+ extern void func218 (void);
+ func218 ();
+
+ extern void func219 (void);
+ func219 ();
+
+ extern void func220 (void);
+ func220 ();
+
+ extern void func221 (void);
+ func221 ();
+
+ extern void func222 (void);
+ func222 ();
+
+ extern void func223 (void);
+ func223 ();
+
+ extern void func224 (void);
+ func224 ();
+
+ extern void func225 (void);
+ func225 ();
+
+ extern void func226 (void);
+ func226 ();
+
+ extern void func227 (void);
+ func227 ();
+
+ extern void func228 (void);
+ func228 ();
+
+ extern void func229 (void);
+ func229 ();
+
+ extern void func230 (void);
+ func230 ();
+
+ extern void func231 (void);
+ func231 ();
+
+ extern void func232 (void);
+ func232 ();
+
+ extern void func233 (void);
+ func233 ();
+
+ extern void func234 (void);
+ func234 ();
+
+ extern void func235 (void);
+ func235 ();
+
+ extern void func236 (void);
+ func236 ();
+
+ extern void func237 (void);
+ func237 ();
+
+ extern void func238 (void);
+ func238 ();
+
+ extern void func239 (void);
+ func239 ();
+
+ extern void func240 (void);
+ func240 ();
+
+ extern void func241 (void);
+ func241 ();
+
+ extern void func242 (void);
+ func242 ();
+
+ extern void func243 (void);
+ func243 ();
+
+ extern void func244 (void);
+ func244 ();
+
+ extern void func245 (void);
+ func245 ();
+
+ extern void func246 (void);
+ func246 ();
+
+ extern void func247 (void);
+ func247 ();
+
+ extern void func248 (void);
+ func248 ();
+
+ extern void func249 (void);
+ func249 ();
+
+ extern void func250 (void);
+ func250 ();
+
+ extern void func251 (void);
+ func251 ();
+
+ extern void func252 (void);
+ func252 ();
+
+ extern void func253 (void);
+ func253 ();
+
+ extern void func254 (void);
+ func254 ();
+
+ extern void func255 (void);
+ func255 ();
+
+ extern void func256 (void);
+ func256 ();
+
+ extern void func257 (void);
+ func257 ();
+
+ extern void func258 (void);
+ func258 ();
+
+ extern void func259 (void);
+ func259 ();
+
+ extern void func260 (void);
+ func260 ();
+
+ extern void func261 (void);
+ func261 ();
+
+ extern void func262 (void);
+ func262 ();
+
+ extern void func263 (void);
+ func263 ();
+
+ extern void func264 (void);
+ func264 ();
+
+ extern void func265 (void);
+ func265 ();
+
+ extern void func266 (void);
+ func266 ();
+
+ extern void func267 (void);
+ func267 ();
+
+ extern void func268 (void);
+ func268 ();
+
+ extern void func269 (void);
+ func269 ();
+
+ extern void func270 (void);
+ func270 ();
+
+ extern void func271 (void);
+ func271 ();
+
+ extern void func272 (void);
+ func272 ();
+
+ extern void func273 (void);
+ func273 ();
+
+ extern void func274 (void);
+ func274 ();
+
+ extern void func275 (void);
+ func275 ();
+
+ extern void func276 (void);
+ func276 ();
+
+ extern void func277 (void);
+ func277 ();
+
+ extern void func278 (void);
+ func278 ();
+
+ extern void func279 (void);
+ func279 ();
+
+ extern void func280 (void);
+ func280 ();
+
+ extern void func281 (void);
+ func281 ();
+
+ extern void func282 (void);
+ func282 ();
+
+ extern void func283 (void);
+ func283 ();
+
+ extern void func284 (void);
+ func284 ();
+
+ extern void func285 (void);
+ func285 ();
+
+ extern void func286 (void);
+ func286 ();
+
+ extern void func287 (void);
+ func287 ();
+
+ extern void func288 (void);
+ func288 ();
+
+ extern void func289 (void);
+ func289 ();
+
+ extern void func290 (void);
+ func290 ();
+
+ extern void func291 (void);
+ func291 ();
+
+ extern void func292 (void);
+ func292 ();
+
+ extern void func293 (void);
+ func293 ();
+
+ extern void func294 (void);
+ func294 ();
+
+ extern void func295 (void);
+ func295 ();
+
+ extern void func296 (void);
+ func296 ();
+
+ extern void func297 (void);
+ func297 ();
+
+ extern void func298 (void);
+ func298 ();
+
+ extern void func299 (void);
+ func299 ();
+
+ extern void func300 (void);
+ func300 ();
+
+ extern void func301 (void);
+ func301 ();
+
+ extern void func302 (void);
+ func302 ();
+
+ extern void func303 (void);
+ func303 ();
+
+ extern void func304 (void);
+ func304 ();
+
+ extern void func305 (void);
+ func305 ();
+
+ extern void func306 (void);
+ func306 ();
+
+ extern void func307 (void);
+ func307 ();
+
+ extern void func308 (void);
+ func308 ();
+
+ extern void func309 (void);
+ func309 ();
+
+ extern void func310 (void);
+ func310 ();
+
+ extern void func311 (void);
+ func311 ();
+
+ extern void func312 (void);
+ func312 ();
+
+ extern void func313 (void);
+ func313 ();
+
+ extern void func314 (void);
+ func314 ();
+
+ extern void func315 (void);
+ func315 ();
+
+ extern void func316 (void);
+ func316 ();
+
+ extern void func317 (void);
+ func317 ();
+
+ extern void func318 (void);
+ func318 ();
+
+ extern void func319 (void);
+ func319 ();
+
+ extern void func320 (void);
+ func320 ();
+
+ extern void func321 (void);
+ func321 ();
+
+ extern void func322 (void);
+ func322 ();
+
+ extern void func323 (void);
+ func323 ();
+
+ extern void func324 (void);
+ func324 ();
+
+ extern void func325 (void);
+ func325 ();
+
+ extern void func326 (void);
+ func326 ();
+
+ extern void func327 (void);
+ func327 ();
+
+ extern void func328 (void);
+ func328 ();
+
+ extern void func329 (void);
+ func329 ();
+
+ extern void func330 (void);
+ func330 ();
+
+ extern void func331 (void);
+ func331 ();
+
+ extern void func332 (void);
+ func332 ();
+
+ extern void func333 (void);
+ func333 ();
+
+ extern void func334 (void);
+ func334 ();
+
+ extern void func335 (void);
+ func335 ();
+
+ extern void func336 (void);
+ func336 ();
+
+ extern void func337 (void);
+ func337 ();
+
+ extern void func338 (void);
+ func338 ();
+
+ extern void func339 (void);
+ func339 ();
+
+ extern void func340 (void);
+ func340 ();
+
+ extern void func341 (void);
+ func341 ();
+
+ extern void func342 (void);
+ func342 ();
+
+ extern void func343 (void);
+ func343 ();
+
+ extern void func344 (void);
+ func344 ();
+
+ extern void func345 (void);
+ func345 ();
+
+ extern void func346 (void);
+ func346 ();
+
+ extern void func347 (void);
+ func347 ();
+
+ extern void func348 (void);
+ func348 ();
+
+ extern void func349 (void);
+ func349 ();
+
+ extern void func350 (void);
+ func350 ();
+
+ extern void func351 (void);
+ func351 ();
+
+ extern void func352 (void);
+ func352 ();
+
+ extern void func353 (void);
+ func353 ();
+
+ extern void func354 (void);
+ func354 ();
+
+ extern void func355 (void);
+ func355 ();
+
+ extern void func356 (void);
+ func356 ();
+
+ extern void func357 (void);
+ func357 ();
+
+ extern void func358 (void);
+ func358 ();
+
+ extern void func359 (void);
+ func359 ();
+
+ extern void func360 (void);
+ func360 ();
+
+ extern void func361 (void);
+ func361 ();
+
+ extern void func362 (void);
+ func362 ();
+
+ extern void func363 (void);
+ func363 ();
+
+ extern void func364 (void);
+ func364 ();
+
+ extern void func365 (void);
+ func365 ();
+
+ extern void func366 (void);
+ func366 ();
+
+ extern void func367 (void);
+ func367 ();
+
+ extern void func368 (void);
+ func368 ();
+
+ extern void func369 (void);
+ func369 ();
+
+ extern void func370 (void);
+ func370 ();
+
+ extern void func371 (void);
+ func371 ();
+
+ extern void func372 (void);
+ func372 ();
+
+ extern void func373 (void);
+ func373 ();
+
+ extern void func374 (void);
+ func374 ();
+
+ extern void func375 (void);
+ func375 ();
+
+ extern void func376 (void);
+ func376 ();
+
+ extern void func377 (void);
+ func377 ();
+
+ extern void func378 (void);
+ func378 ();
+
+ extern void func379 (void);
+ func379 ();
+
+ extern void func380 (void);
+ func380 ();
+
+ extern void func381 (void);
+ func381 ();
+
+ extern void func382 (void);
+ func382 ();
+
+ extern void func383 (void);
+ func383 ();
+
+ extern void func384 (void);
+ func384 ();
+
+ extern void func385 (void);
+ func385 ();
+
+ extern void func386 (void);
+ func386 ();
+
+ extern void func387 (void);
+ func387 ();
+
+ extern void func388 (void);
+ func388 ();
+
+ extern void func389 (void);
+ func389 ();
+
+ extern void func390 (void);
+ func390 ();
+
+ extern void func391 (void);
+ func391 ();
+
+ extern void func392 (void);
+ func392 ();
+
+ extern void func393 (void);
+ func393 ();
+
+ extern void func394 (void);
+ func394 ();
+
+ extern void func395 (void);
+ func395 ();
+
+ extern void func396 (void);
+ func396 ();
+
+ extern void func397 (void);
+ func397 ();
+
+ extern void func398 (void);
+ func398 ();
+
+ extern void func399 (void);
+ func399 ();
+
+ extern void func400 (void);
+ func400 ();
+
+ extern void func401 (void);
+ func401 ();
+
+ extern void func402 (void);
+ func402 ();
+
+ extern void func403 (void);
+ func403 ();
+
+ extern void func404 (void);
+ func404 ();
+
+ extern void func405 (void);
+ func405 ();
+
+ extern void func406 (void);
+ func406 ();
+
+ extern void func407 (void);
+ func407 ();
+
+ extern void func408 (void);
+ func408 ();
+
+ extern void func409 (void);
+ func409 ();
+
+ extern void func410 (void);
+ func410 ();
+
+ extern void func411 (void);
+ func411 ();
+
+ extern void func412 (void);
+ func412 ();
+
+ extern void func413 (void);
+ func413 ();
+
+ extern void func414 (void);
+ func414 ();
+
+ extern void func415 (void);
+ func415 ();
+
+ extern void func416 (void);
+ func416 ();
+
+ extern void func417 (void);
+ func417 ();
+
+ extern void func418 (void);
+ func418 ();
+
+ extern void func419 (void);
+ func419 ();
+
+ extern void func420 (void);
+ func420 ();
+
+ extern void func421 (void);
+ func421 ();
+
+ i += var0;
+ i += var1;
+ i += var2;
+
+ for (j = 0;
+ j < sizeof phdr_types / sizeof phdr_types[0];
+ j++)
+ if (strcmp (argv[0], phdr_types[j]) == 0)
+ i++;
+
+ if (i == 3)
+ printf ("PASS\n");
+
+ return 0;
+}
diff --git a/ld/testsuite/ld-elf/pr32690b.c b/ld/testsuite/ld-elf/pr32690b.c
new file mode 100644
index 0000000..5c0dab8
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr32690b.c
@@ -0,0 +1,2119 @@
+#include "pr32690.h"
+
+const struct data1 d1[44];
+const char c1[2748];
+
+const int var0 = 1;
+const int var1 = 1;
+const int var2 = 1;
+const struct data2 d2;
+
+void
+func0 (void)
+{
+}
+
+void
+func1 (void)
+{
+}
+
+void
+func2 (void)
+{
+}
+
+void
+func3 (void)
+{
+}
+
+void
+func4 (void)
+{
+}
+
+void
+func5 (void)
+{
+}
+
+void
+func6 (void)
+{
+}
+
+void
+func7 (void)
+{
+}
+
+void
+func8 (void)
+{
+}
+
+void
+func9 (void)
+{
+}
+
+void
+func10 (void)
+{
+}
+
+void
+func11 (void)
+{
+}
+
+void
+func12 (void)
+{
+}
+
+void
+func13 (void)
+{
+}
+
+void
+func14 (void)
+{
+}
+
+void
+func15 (void)
+{
+}
+
+void
+func16 (void)
+{
+}
+
+void
+func17 (void)
+{
+}
+
+void
+func18 (void)
+{
+}
+
+void
+func19 (void)
+{
+}
+
+void
+func20 (void)
+{
+}
+
+void
+func21 (void)
+{
+}
+
+void
+func22 (void)
+{
+}
+
+void
+func23 (void)
+{
+}
+
+void
+func24 (void)
+{
+}
+
+void
+func25 (void)
+{
+}
+
+void
+func26 (void)
+{
+}
+
+void
+func27 (void)
+{
+}
+
+void
+func28 (void)
+{
+}
+
+void
+func29 (void)
+{
+}
+
+void
+func30 (void)
+{
+}
+
+void
+func31 (void)
+{
+}
+
+void
+func32 (void)
+{
+}
+
+void
+func33 (void)
+{
+}
+
+void
+func34 (void)
+{
+}
+
+void
+func35 (void)
+{
+}
+
+void
+func36 (void)
+{
+}
+
+void
+func37 (void)
+{
+}
+
+void
+func38 (void)
+{
+}
+
+void
+func39 (void)
+{
+}
+
+void
+func40 (void)
+{
+}
+
+void
+func41 (void)
+{
+}
+
+void
+func42 (void)
+{
+}
+
+void
+func43 (void)
+{
+}
+
+void
+func44 (void)
+{
+}
+
+void
+func45 (void)
+{
+}
+
+void
+func46 (void)
+{
+}
+
+void
+func47 (void)
+{
+}
+
+void
+func48 (void)
+{
+}
+
+void
+func49 (void)
+{
+}
+
+void
+func50 (void)
+{
+}
+
+void
+func51 (void)
+{
+}
+
+void
+func52 (void)
+{
+}
+
+void
+func53 (void)
+{
+}
+
+void
+func54 (void)
+{
+}
+
+void
+func55 (void)
+{
+}
+
+void
+func56 (void)
+{
+}
+
+void
+func57 (void)
+{
+}
+
+void
+func58 (void)
+{
+}
+
+void
+func59 (void)
+{
+}
+
+void
+func60 (void)
+{
+}
+
+void
+func61 (void)
+{
+}
+
+void
+func62 (void)
+{
+}
+
+void
+func63 (void)
+{
+}
+
+void
+func64 (void)
+{
+}
+
+void
+func65 (void)
+{
+}
+
+void
+func66 (void)
+{
+}
+
+void
+func67 (void)
+{
+}
+
+void
+func68 (void)
+{
+}
+
+void
+func69 (void)
+{
+}
+
+void
+func70 (void)
+{
+}
+
+void
+func71 (void)
+{
+}
+
+void
+func72 (void)
+{
+}
+
+void
+func73 (void)
+{
+}
+
+void
+func74 (void)
+{
+}
+
+void
+func75 (void)
+{
+}
+
+void
+func76 (void)
+{
+}
+
+void
+func77 (void)
+{
+}
+
+void
+func78 (void)
+{
+}
+
+void
+func79 (void)
+{
+}
+
+void
+func80 (void)
+{
+}
+
+void
+func81 (void)
+{
+}
+
+void
+func82 (void)
+{
+}
+
+void
+func83 (void)
+{
+}
+
+void
+func84 (void)
+{
+}
+
+void
+func85 (void)
+{
+}
+
+void
+func86 (void)
+{
+}
+
+void
+func87 (void)
+{
+}
+
+void
+func88 (void)
+{
+}
+
+void
+func89 (void)
+{
+}
+
+void
+func90 (void)
+{
+}
+
+void
+func91 (void)
+{
+}
+
+void
+func92 (void)
+{
+}
+
+void
+func93 (void)
+{
+}
+
+void
+func94 (void)
+{
+}
+
+void
+func95 (void)
+{
+}
+
+void
+func96 (void)
+{
+}
+
+void
+func97 (void)
+{
+}
+
+void
+func98 (void)
+{
+}
+
+void
+func99 (void)
+{
+}
+
+void
+func100 (void)
+{
+}
+
+void
+func101 (void)
+{
+}
+
+void
+func102 (void)
+{
+}
+
+void
+func103 (void)
+{
+}
+
+void
+func104 (void)
+{
+}
+
+void
+func105 (void)
+{
+}
+
+void
+func106 (void)
+{
+}
+
+void
+func107 (void)
+{
+}
+
+void
+func108 (void)
+{
+}
+
+void
+func109 (void)
+{
+}
+
+void
+func110 (void)
+{
+}
+
+void
+func111 (void)
+{
+}
+
+void
+func112 (void)
+{
+}
+
+void
+func113 (void)
+{
+}
+
+void
+func114 (void)
+{
+}
+
+void
+func115 (void)
+{
+}
+
+void
+func116 (void)
+{
+}
+
+void
+func117 (void)
+{
+}
+
+void
+func118 (void)
+{
+}
+
+void
+func119 (void)
+{
+}
+
+void
+func120 (void)
+{
+}
+
+void
+func121 (void)
+{
+}
+
+void
+func122 (void)
+{
+}
+
+void
+func123 (void)
+{
+}
+
+void
+func124 (void)
+{
+}
+
+void
+func125 (void)
+{
+}
+
+void
+func126 (void)
+{
+}
+
+void
+func127 (void)
+{
+}
+
+void
+func128 (void)
+{
+}
+
+void
+func129 (void)
+{
+}
+
+void
+func130 (void)
+{
+}
+
+void
+func131 (void)
+{
+}
+
+void
+func132 (void)
+{
+}
+
+void
+func133 (void)
+{
+}
+
+void
+func134 (void)
+{
+}
+
+void
+func135 (void)
+{
+}
+
+void
+func136 (void)
+{
+}
+
+void
+func137 (void)
+{
+}
+
+void
+func138 (void)
+{
+}
+
+void
+func139 (void)
+{
+}
+
+void
+func140 (void)
+{
+}
+
+void
+func141 (void)
+{
+}
+
+void
+func142 (void)
+{
+}
+
+void
+func143 (void)
+{
+}
+
+void
+func144 (void)
+{
+}
+
+void
+func145 (void)
+{
+}
+
+void
+func146 (void)
+{
+}
+
+void
+func147 (void)
+{
+}
+
+void
+func148 (void)
+{
+}
+
+void
+func149 (void)
+{
+}
+
+void
+func150 (void)
+{
+}
+
+void
+func151 (void)
+{
+}
+
+void
+func152 (void)
+{
+}
+
+void
+func153 (void)
+{
+}
+
+void
+func154 (void)
+{
+}
+
+void
+func155 (void)
+{
+}
+
+void
+func156 (void)
+{
+}
+
+void
+func157 (void)
+{
+}
+
+void
+func158 (void)
+{
+}
+
+void
+func159 (void)
+{
+}
+
+void
+func160 (void)
+{
+}
+
+void
+func161 (void)
+{
+}
+
+void
+func162 (void)
+{
+}
+
+void
+func163 (void)
+{
+}
+
+void
+func164 (void)
+{
+}
+
+void
+func165 (void)
+{
+}
+
+void
+func166 (void)
+{
+}
+
+void
+func167 (void)
+{
+}
+
+void
+func168 (void)
+{
+}
+
+void
+func169 (void)
+{
+}
+
+void
+func170 (void)
+{
+}
+
+void
+func171 (void)
+{
+}
+
+void
+func172 (void)
+{
+}
+
+void
+func173 (void)
+{
+}
+
+void
+func174 (void)
+{
+}
+
+void
+func175 (void)
+{
+}
+
+void
+func176 (void)
+{
+}
+
+void
+func177 (void)
+{
+}
+
+void
+func178 (void)
+{
+}
+
+void
+func179 (void)
+{
+}
+
+void
+func180 (void)
+{
+}
+
+void
+func181 (void)
+{
+}
+
+void
+func182 (void)
+{
+}
+
+void
+func183 (void)
+{
+}
+
+void
+func184 (void)
+{
+}
+
+void
+func185 (void)
+{
+}
+
+void
+func186 (void)
+{
+}
+
+void
+func187 (void)
+{
+}
+
+void
+func188 (void)
+{
+}
+
+void
+func189 (void)
+{
+}
+
+void
+func190 (void)
+{
+}
+
+void
+func191 (void)
+{
+}
+
+void
+func192 (void)
+{
+}
+
+void
+func193 (void)
+{
+}
+
+void
+func194 (void)
+{
+}
+
+void
+func195 (void)
+{
+}
+
+void
+func196 (void)
+{
+}
+
+void
+func197 (void)
+{
+}
+
+void
+func198 (void)
+{
+}
+
+void
+func199 (void)
+{
+}
+
+void
+func200 (void)
+{
+}
+
+void
+func201 (void)
+{
+}
+
+void
+func202 (void)
+{
+}
+
+void
+func203 (void)
+{
+}
+
+void
+func204 (void)
+{
+}
+
+void
+func205 (void)
+{
+}
+
+void
+func206 (void)
+{
+}
+
+void
+func207 (void)
+{
+}
+
+void
+func208 (void)
+{
+}
+
+void
+func209 (void)
+{
+}
+
+void
+func210 (void)
+{
+}
+
+void
+func211 (void)
+{
+}
+
+void
+func212 (void)
+{
+}
+
+void
+func213 (void)
+{
+}
+
+void
+func214 (void)
+{
+}
+
+void
+func215 (void)
+{
+}
+
+void
+func216 (void)
+{
+}
+
+void
+func217 (void)
+{
+}
+
+void
+func218 (void)
+{
+}
+
+void
+func219 (void)
+{
+}
+
+void
+func220 (void)
+{
+}
+
+void
+func221 (void)
+{
+}
+
+void
+func222 (void)
+{
+}
+
+void
+func223 (void)
+{
+}
+
+void
+func224 (void)
+{
+}
+
+void
+func225 (void)
+{
+}
+
+void
+func226 (void)
+{
+}
+
+void
+func227 (void)
+{
+}
+
+void
+func228 (void)
+{
+}
+
+void
+func229 (void)
+{
+}
+
+void
+func230 (void)
+{
+}
+
+void
+func231 (void)
+{
+}
+
+void
+func232 (void)
+{
+}
+
+void
+func233 (void)
+{
+}
+
+void
+func234 (void)
+{
+}
+
+void
+func235 (void)
+{
+}
+
+void
+func236 (void)
+{
+}
+
+void
+func237 (void)
+{
+}
+
+void
+func238 (void)
+{
+}
+
+void
+func239 (void)
+{
+}
+
+void
+func240 (void)
+{
+}
+
+void
+func241 (void)
+{
+}
+
+void
+func242 (void)
+{
+}
+
+void
+func243 (void)
+{
+}
+
+void
+func244 (void)
+{
+}
+
+void
+func245 (void)
+{
+}
+
+void
+func246 (void)
+{
+}
+
+void
+func247 (void)
+{
+}
+
+void
+func248 (void)
+{
+}
+
+void
+func249 (void)
+{
+}
+
+void
+func250 (void)
+{
+}
+
+void
+func251 (void)
+{
+}
+
+void
+func252 (void)
+{
+}
+
+void
+func253 (void)
+{
+}
+
+void
+func254 (void)
+{
+}
+
+void
+func255 (void)
+{
+}
+
+void
+func256 (void)
+{
+}
+
+void
+func257 (void)
+{
+}
+
+void
+func258 (void)
+{
+}
+
+void
+func259 (void)
+{
+}
+
+void
+func260 (void)
+{
+}
+
+void
+func261 (void)
+{
+}
+
+void
+func262 (void)
+{
+}
+
+void
+func263 (void)
+{
+}
+
+void
+func264 (void)
+{
+}
+
+void
+func265 (void)
+{
+}
+
+void
+func266 (void)
+{
+}
+
+void
+func267 (void)
+{
+}
+
+void
+func268 (void)
+{
+}
+
+void
+func269 (void)
+{
+}
+
+void
+func270 (void)
+{
+}
+
+void
+func271 (void)
+{
+}
+
+void
+func272 (void)
+{
+}
+
+void
+func273 (void)
+{
+}
+
+void
+func274 (void)
+{
+}
+
+void
+func275 (void)
+{
+}
+
+void
+func276 (void)
+{
+}
+
+void
+func277 (void)
+{
+}
+
+void
+func278 (void)
+{
+}
+
+void
+func279 (void)
+{
+}
+
+void
+func280 (void)
+{
+}
+
+void
+func281 (void)
+{
+}
+
+void
+func282 (void)
+{
+}
+
+void
+func283 (void)
+{
+}
+
+void
+func284 (void)
+{
+}
+
+void
+func285 (void)
+{
+}
+
+void
+func286 (void)
+{
+}
+
+void
+func287 (void)
+{
+}
+
+void
+func288 (void)
+{
+}
+
+void
+func289 (void)
+{
+}
+
+void
+func290 (void)
+{
+}
+
+void
+func291 (void)
+{
+}
+
+void
+func292 (void)
+{
+}
+
+void
+func293 (void)
+{
+}
+
+void
+func294 (void)
+{
+}
+
+void
+func295 (void)
+{
+}
+
+void
+func296 (void)
+{
+}
+
+void
+func297 (void)
+{
+}
+
+void
+func298 (void)
+{
+}
+
+void
+func299 (void)
+{
+}
+
+void
+func300 (void)
+{
+}
+
+void
+func301 (void)
+{
+}
+
+void
+func302 (void)
+{
+}
+
+void
+func303 (void)
+{
+}
+
+void
+func304 (void)
+{
+}
+
+void
+func305 (void)
+{
+}
+
+void
+func306 (void)
+{
+}
+
+void
+func307 (void)
+{
+}
+
+void
+func308 (void)
+{
+}
+
+void
+func309 (void)
+{
+}
+
+void
+func310 (void)
+{
+}
+
+void
+func311 (void)
+{
+}
+
+void
+func312 (void)
+{
+}
+
+void
+func313 (void)
+{
+}
+
+void
+func314 (void)
+{
+}
+
+void
+func315 (void)
+{
+}
+
+void
+func316 (void)
+{
+}
+
+void
+func317 (void)
+{
+}
+
+void
+func318 (void)
+{
+}
+
+void
+func319 (void)
+{
+}
+
+void
+func320 (void)
+{
+}
+
+void
+func321 (void)
+{
+}
+
+void
+func322 (void)
+{
+}
+
+void
+func323 (void)
+{
+}
+
+void
+func324 (void)
+{
+}
+
+void
+func325 (void)
+{
+}
+
+void
+func326 (void)
+{
+}
+
+void
+func327 (void)
+{
+}
+
+void
+func328 (void)
+{
+}
+
+void
+func329 (void)
+{
+}
+
+void
+func330 (void)
+{
+}
+
+void
+func331 (void)
+{
+}
+
+void
+func332 (void)
+{
+}
+
+void
+func333 (void)
+{
+}
+
+void
+func334 (void)
+{
+}
+
+void
+func335 (void)
+{
+}
+
+void
+func336 (void)
+{
+}
+
+void
+func337 (void)
+{
+}
+
+void
+func338 (void)
+{
+}
+
+void
+func339 (void)
+{
+}
+
+void
+func340 (void)
+{
+}
+
+void
+func341 (void)
+{
+}
+
+void
+func342 (void)
+{
+}
+
+void
+func343 (void)
+{
+}
+
+void
+func344 (void)
+{
+}
+
+void
+func345 (void)
+{
+}
+
+void
+func346 (void)
+{
+}
+
+void
+func347 (void)
+{
+}
+
+void
+func348 (void)
+{
+}
+
+void
+func349 (void)
+{
+}
+
+void
+func350 (void)
+{
+}
+
+void
+func351 (void)
+{
+}
+
+void
+func352 (void)
+{
+}
+
+void
+func353 (void)
+{
+}
+
+void
+func354 (void)
+{
+}
+
+void
+func355 (void)
+{
+}
+
+void
+func356 (void)
+{
+}
+
+void
+func357 (void)
+{
+}
+
+void
+func358 (void)
+{
+}
+
+void
+func359 (void)
+{
+}
+
+void
+func360 (void)
+{
+}
+
+void
+func361 (void)
+{
+}
+
+void
+func362 (void)
+{
+}
+
+void
+func363 (void)
+{
+}
+
+void
+func364 (void)
+{
+}
+
+void
+func365 (void)
+{
+}
+
+void
+func366 (void)
+{
+}
+
+void
+func367 (void)
+{
+}
+
+void
+func368 (void)
+{
+}
+
+void
+func369 (void)
+{
+}
+
+void
+func370 (void)
+{
+}
+
+void
+func371 (void)
+{
+}
+
+void
+func372 (void)
+{
+}
+
+void
+func373 (void)
+{
+}
+
+void
+func374 (void)
+{
+}
+
+void
+func375 (void)
+{
+}
+
+void
+func376 (void)
+{
+}
+
+void
+func377 (void)
+{
+}
+
+void
+func378 (void)
+{
+}
+
+void
+func379 (void)
+{
+}
+
+void
+func380 (void)
+{
+}
+
+void
+func381 (void)
+{
+}
+
+void
+func382 (void)
+{
+}
+
+void
+func383 (void)
+{
+}
+
+void
+func384 (void)
+{
+}
+
+void
+func385 (void)
+{
+}
+
+void
+func386 (void)
+{
+}
+
+void
+func387 (void)
+{
+}
+
+void
+func388 (void)
+{
+}
+
+void
+func389 (void)
+{
+}
+
+void
+func390 (void)
+{
+}
+
+void
+func391 (void)
+{
+}
+
+void
+func392 (void)
+{
+}
+
+void
+func393 (void)
+{
+}
+
+void
+func394 (void)
+{
+}
+
+void
+func395 (void)
+{
+}
+
+void
+func396 (void)
+{
+}
+
+void
+func397 (void)
+{
+}
+
+void
+func398 (void)
+{
+}
+
+void
+func399 (void)
+{
+}
+
+void
+func400 (void)
+{
+}
+
+void
+func401 (void)
+{
+}
+
+void
+func402 (void)
+{
+}
+
+void
+func403 (void)
+{
+}
+
+void
+func404 (void)
+{
+}
+
+void
+func405 (void)
+{
+}
+
+void
+func406 (void)
+{
+}
+
+void
+func407 (void)
+{
+}
+
+void
+func408 (void)
+{
+}
+
+void
+func409 (void)
+{
+}
+
+void
+func410 (void)
+{
+}
+
+void
+func411 (void)
+{
+}
+
+void
+func412 (void)
+{
+}
+
+void
+func413 (void)
+{
+}
+
+void
+func414 (void)
+{
+}
+
+void
+func415 (void)
+{
+}
+
+void
+func416 (void)
+{
+}
+
+void
+func417 (void)
+{
+}
+
+void
+func418 (void)
+{
+}
+
+void
+func419 (void)
+{
+}
+
+void
+func420 (void)
+{
+}
+
+void
+func421 (void)
+{
+}
diff --git a/ld/testsuite/ld-elf/pr32787.d b/ld/testsuite/ld-elf/pr32787.d
new file mode 100644
index 0000000..8d07b8d
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr32787.d
@@ -0,0 +1,9 @@
+#source: start.s
+#ld: --build-id -T pr32787.t
+#nm: -n
+# The following targets don't support --build-id.
+#xfail: [uses_genelf]
+
+#...
+.* start
+#pass
diff --git a/ld/testsuite/ld-elf/pr32787.t b/ld/testsuite/ld-elf/pr32787.t
new file mode 100644
index 0000000..cf5aeb1
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr32787.t
@@ -0,0 +1,12 @@
+SECTIONS {
+ . = SIZEOF_HEADERS;
+ .text : {
+ *(.text)
+ }
+ .data : {
+ _data_start = .;
+ *(.data)
+ }
+ .note.gnu.build-id (NOLOAD) : { *(.note.gnu.build-id) }
+ /DISCARD/ : { *(*) }
+}
diff --git a/ld/testsuite/ld-elf/sec64k.exp b/ld/testsuite/ld-elf/sec64k.exp
index 8dcb021..deb46d3 100644
--- a/ld/testsuite/ld-elf/sec64k.exp
+++ b/ld/testsuite/ld-elf/sec64k.exp
@@ -168,9 +168,9 @@ if [catch { set ofd [open "tmpdir/$test2.d" w] } x] {
return
}
-# too big for avr, d10v and msp
-# lack of fancy orphan section handling causes overlap on fr30 and iq2000
-# bfin and lm32 complain about relocations in read-only sections
+# Too big for avr, d10v and msp.
+# Lack of fancy orphan section handling causes overlap on fr30 and iq2000.
+# bfin and lm32 complain about relocations in read-only sections.
if { ![istarget "d10v-*-*"]
&& ![istarget "avr-*-*"]
&& ![istarget "msp*-*-*"]
@@ -179,7 +179,13 @@ if { ![istarget "d10v-*-*"]
&& ![istarget "bfin-*-linux*"]
&& ![istarget "lm32-*-linux*"]
&& ![istarget "pru-*-*"] } {
+
+ # Create a 64ksec.d test control file...
+
+ # List the input files.
foreach sfile $sfiles { puts $ofd "#source: $sfile" }
+
+ # Add any needed linker command line options.
if { [istarget spu*-*-*] } {
puts $ofd "#ld: --local-store 0:0"
} elseif { [istarget "i?86-*-linux*"] || [istarget "x86_64-*-linux*"] } {
@@ -187,10 +193,20 @@ if { ![istarget "d10v-*-*"]
} else {
puts $ofd "#ld:"
}
- #force z80 target to compile for eZ80 in ADL mode
+
+ # Enable the accumulation of internal linker statistics in a separate file.
+ # Enabled this way as you cannot have multiple #ld: options in a .d file.
+ # The + character causes the file to opened in append mode, so that multiple
+ # runs of this test will accumulate data over time. Thus allowing regular
+ # testers to see changes in the performance of the linker.
+ puts $ofd "#ld_after_inputfiles: --stats=+tmpdir/$test2.stats"
+
+ # Force z80 target to compile for eZ80 in ADL mode.
if { [istarget "z80-*-*"] } then {
puts $ofd "#as: -ez80-adl"
}
+
+ # Add a test of the linked binary.
puts $ofd "#readelf: -W -wN -Ss"
puts $ofd "There are 660.. section headers.*:"
puts $ofd "#..."
@@ -199,6 +215,7 @@ if { ![istarget "d10v-*-*"]
puts $ofd " \\\[65279\\\] \\.foo\\.\[0-9\]+ .*"
puts $ofd " \\\[65280\\\] \\.foo\\.\[0-9\]+ .*"
puts $ofd "#..."
+
if { [is_elf_unused_section_symbols ] } {
puts $ofd " 660..: \[0-9a-f\]+\[ \]+0\[ \]+SECTION\[ \]+LOCAL\[ \]+DEFAULT\[ \]+660...*"
puts $ofd "#..."
@@ -209,6 +226,7 @@ if { ![istarget "d10v-*-*"]
puts $ofd " 66...: \[0-9a-f\]+\[ \]+0\[ \]+NOTYPE\[ \]+LOCAL\[ \]+DEFAULT\[ \]+660.. bar_66000$"
}
puts $ofd "#..."
+
# Global symbols are not in "alphanumeric" order, so we just check
# that the first and the last are present in any order (assuming no
# duplicates).
@@ -217,9 +235,14 @@ if { ![istarget "d10v-*-*"]
puts $ofd ".* (\[0-9\] foo_1|66... foo_66000)$"
puts $ofd "#pass"
close $ofd
+
+ # Now run the constructed test file.
run_dump_test "tmpdir/$test2"
+
+ # Leave the test file around in case the user wants to examine it.
}
+# Tidy up.
for { set i 1 } { $i < $max_sec / $secs_per_file } { incr i } {
catch "exec rm -f tmpdir/dump$i.o" status
}
diff --git a/ld/testsuite/ld-elf/shared.exp b/ld/testsuite/ld-elf/shared.exp
index bf8952a..09669b5 100644
--- a/ld/testsuite/ld-elf/shared.exp
+++ b/ld/testsuite/ld-elf/shared.exp
@@ -1618,12 +1618,12 @@ if { [istarget *-*-linux*]
] \
[list \
"Run pr21964-4" \
- "" \
+ "$NOPIE_LDFLAGS" \
"" \
{pr21964-4.c} \
"pr21964-4" \
"pass.out" \
- "" \
+ "$NOPIE_CFLAGS" \
"" \
"" \
"-ldl" \
@@ -1664,7 +1664,7 @@ proc mix_pic_and_non_pic {xfails cflags ldflags exe} {
run_ld_link_exec_tests [list \
[list \
- "Run $exe fun defined" \
+ "Run $exe fun undefined" \
"-Wl,--no-as-needed,-rpath,tmpdir $ldflags tmpdir/libpr19719b.o tmpdir/libpr19719.so" \
"" \
{ pr19719a.c pr19719c.c } \
@@ -1682,19 +1682,19 @@ proc mix_pic_and_non_pic {xfails cflags ldflags exe} {
}
if ![isnative] {
- unsupported "Run $exe fun undefined"
+ unsupported "Run $exe fun defined"
return
}
set exec_output [run_host_cmd "tmpdir/$exe" ""]
if {![string match "PASS\n" $exec_output]} {
- fail "Run $exe fun undefined"
+ fail "Run $exe fun defined"
} else {
- pass "Run $exe fun undefined"
+ pass "Run $exe fun defined"
}
}
-mix_pic_and_non_pic [list "arm*-*-*"] "" "" "pr19719"
+mix_pic_and_non_pic [list "arm*-*-*"] "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS" "pr19719"
mix_pic_and_non_pic [] "-fPIE" "-pie" "pr19719pie"
set AFLAGS_PIE ""
diff --git a/ld/testsuite/ld-elf/tbss4.d b/ld/testsuite/ld-elf/tbss4.d
new file mode 100644
index 0000000..336ed8f
--- /dev/null
+++ b/ld/testsuite/ld-elf/tbss4.d
@@ -0,0 +1,13 @@
+#ld: -e _start -Ttext=0x1000 -z max-page-size=0x1000 -z common-page-size=0x1000 -z noseparate-code
+#readelf: -lSW
+#target: *-linux* *-gnu*
+#notarget: hppa64-*-* ia64-*-*
+
+#...
+.* \.tbss +NOBITS +0+1014 +0+1014 +0+4 +0+ +WAT +0 +0 +4
+
+#...
+ +TLS +0x0*1014 +0x0+1014 +0x0+1014 +0x0+ +0x0+4 R +0x4
+#...
+.* \.tbss
+#pass
diff --git a/ld/testsuite/ld-elf/tbss4.s b/ld/testsuite/ld-elf/tbss4.s
new file mode 100644
index 0000000..f49491e
--- /dev/null
+++ b/ld/testsuite/ld-elf/tbss4.s
@@ -0,0 +1,25 @@
+# Writeable gcc_except_table is required in order to put this section after
+# the DATA_SEGMENT_ALIGN directive in the default linker script (and hence
+# in the same PT_LOAD as the PT_TLS segment, and hence so that the
+# gcc_except_table can affect the .tbss section location).
+ .section .gcc_except_table,"aw",%progbits
+# Alignment is needed -- otherwise gcc_except_table start position seems to
+# be adjusted so that the tbss section is fully aligned.
+ .balign 4
+ .ascii "Odd number of chars"
+
+ .section .tbss,"awT",%nobits
+ .balign 4
+ .type xyz, %object
+ .size xyz, 4
+xyz:
+ .zero 4
+
+ .data
+dataval:
+ .balign 4
+ .ascii "x"
+
+ .text
+ .global _start
+_start:
diff --git a/ld/testsuite/ld-elfvers/vers7.c b/ld/testsuite/ld-elfvers/vers7.c
index 54316c9..a4fb254 100644
--- a/ld/testsuite/ld-elfvers/vers7.c
+++ b/ld/testsuite/ld-elfvers/vers7.c
@@ -2,8 +2,8 @@
* Test program that goes with test7.so
*/
-extern int hide_a();
-extern int show_b();
+extern int hide_a(int e);
+extern int show_b(int e);
int
main()
diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp
index 16b9fb8..6366457 100644
--- a/ld/testsuite/ld-i386/i386.exp
+++ b/ld/testsuite/ld-i386/i386.exp
@@ -369,10 +369,15 @@ run_dump_test "load2"
run_dump_test "load3"
run_dump_test "load4a"
run_dump_test "load4b"
+run_dump_test "load4c"
run_dump_test "load5a"
run_dump_test "load5b"
+run_dump_test "load5c"
run_dump_test "load6"
run_dump_test "load7"
+run_dump_test "load8"
+run_dump_test "load9a"
+run_dump_test "load9b"
run_dump_test "pr19175"
run_dump_test "pr19615"
run_dump_test "pr19636-1a"
@@ -1233,7 +1238,7 @@ if { [isnative]
] \
[list \
"Build ifunc-1a with PIE -z ibtplt" \
- "-Wl,-z,ibtplt -pie tmpdir/ifunc-1a.o \
+ "-Wl,-z,ibtplt -Wl,-z,lazy -pie tmpdir/ifunc-1a.o \
tmpdir/ifunc-1b.o tmpdir/ifunc-1c.o tmpdir/ifunc-1d.o" \
"-Wa,-mx86-used-note=yes" \
{ dummy.c } \
diff --git a/ld/testsuite/ld-i386/load4c.d b/ld/testsuite/ld-i386/load4c.d
new file mode 100644
index 0000000..8257333
--- /dev/null
+++ b/ld/testsuite/ld-i386/load4c.d
@@ -0,0 +1,4 @@
+#source: load4.s
+#as: --32 -mshared -mrelax-relocations=yes
+#ld: -Bsymbolic -shared -melf_i386
+#error: direct GOT relocation R_386_GOT32 against `foo' without base register can not be used when making a shared object
diff --git a/ld/testsuite/ld-i386/load5c.d b/ld/testsuite/ld-i386/load5c.d
new file mode 100644
index 0000000..3e78721
--- /dev/null
+++ b/ld/testsuite/ld-i386/load5c.d
@@ -0,0 +1,4 @@
+#source: load5.s
+#as: --32 -mshared -mrelax-relocations=yes
+#ld: -Bsymbolic -shared -melf_i386
+#error: direct GOT relocation R_386_GOT32 against `foo' without base register can not be used when making a shared object
diff --git a/ld/testsuite/ld-i386/load8.d b/ld/testsuite/ld-i386/load8.d
new file mode 100644
index 0000000..c114721
--- /dev/null
+++ b/ld/testsuite/ld-i386/load8.d
@@ -0,0 +1,14 @@
+#as: --32 -mrelax-relocations=yes
+#ld: -melf_i386 -z noseparate-code
+#objdump: -dw
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+8048074 <_start>:
+[ ]*[a-f0-9]+: 12 05 90 90 04 08 adc 0x8049090,%al
+[ ]*[a-f0-9]+: 6b 05 90 90 04 08 01 imul \$(0x)?1,0x8049090,%eax
+[ ]*[a-f0-9]+: 84 35 90 90 04 08 test %dh,0x8049090
+[ ]*[a-f0-9]+: 87 05 90 90 04 08 xchg %eax,0x8049090
+#pass
diff --git a/ld/testsuite/ld-i386/load8.s b/ld/testsuite/ld-i386/load8.s
new file mode 100644
index 0000000..87131f9
--- /dev/null
+++ b/ld/testsuite/ld-i386/load8.s
@@ -0,0 +1,21 @@
+ .data
+ .type bar, @object
+bar:
+ .byte 1
+ .size bar, .-bar
+
+ .text
+ .globl _start
+ .type _start, @function
+_start:
+ # Other insns must not be accidentally transformed.
+ adc 0, %al
+ .reloc .-4, R_386_GOT32X, bar
+ imul $1, 0, %eax
+ .reloc .-5, R_386_GOT32X, bar
+ test %dh, 0
+ .reloc .-4, R_386_GOT32X, bar
+ xchg 0, %eax
+ .reloc .-4, R_386_GOT32X, bar
+
+ .size _start, .-_start
diff --git a/ld/testsuite/ld-i386/load9.s b/ld/testsuite/ld-i386/load9.s
new file mode 100644
index 0000000..0f42268
--- /dev/null
+++ b/ld/testsuite/ld-i386/load9.s
@@ -0,0 +1,20 @@
+ .data
+ .type bar, @object
+bar:
+ .byte 1
+ .size bar, .-bar
+ .globl foo
+ .type foo, @object
+foo:
+ .byte 1
+ .size foo, .-foo
+ .text
+ .globl _start
+ .type _start, @function
+_start:
+ push bar@GOT(%ecx)
+ push foo@GOT(%edx)
+ .ifndef PIC
+ push foo@GOT
+ .endif
+ .size _start, .-_start
diff --git a/ld/testsuite/ld-i386/load9a.d b/ld/testsuite/ld-i386/load9a.d
new file mode 100644
index 0000000..77a27b4
--- /dev/null
+++ b/ld/testsuite/ld-i386/load9a.d
@@ -0,0 +1,14 @@
+#source: load9.s
+#as: --32 -mrelax-relocations=yes
+#ld: -melf_i386 -z noseparate-code
+#objdump: -dw
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+8048074 <_start>:
+[ ]*[a-f0-9]+: 2e 68 86 90 04 08 cs push \$0x8049086
+[ ]*[a-f0-9]+: 2e 68 87 90 04 08 cs push \$0x8049087
+[ ]*[a-f0-9]+: 2e 68 87 90 04 08 cs push \$0x8049087
+#pass
diff --git a/ld/testsuite/ld-i386/load9b.d b/ld/testsuite/ld-i386/load9b.d
new file mode 100644
index 0000000..f3b1c71
--- /dev/null
+++ b/ld/testsuite/ld-i386/load9b.d
@@ -0,0 +1,13 @@
+#source: load9.s
+#as: --32 -mshared -mrelax-relocations=yes --defsym PIC=1
+#ld: -melf_i386 -shared -z noseparate-code
+#objdump: -dw
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+[0-9a-f]+ <_start>:
+[ ]*[0-9a-f]+: ff b1 f8 ff ff ff push -0x8\(%ecx\)
+[ ]*[0-9a-f]+: ff b2 fc ff ff ff push -0x4\(%edx\)
+#pass
diff --git a/ld/testsuite/ld-i386/no-plt.exp b/ld/testsuite/ld-i386/no-plt.exp
index c586960..e0b00ba 100644
--- a/ld/testsuite/ld-i386/no-plt.exp
+++ b/ld/testsuite/ld-i386/no-plt.exp
@@ -64,7 +64,7 @@ run_cc_link_tests [list \
] \
[list \
"Build libno-plt-1b.so" \
- "-shared tmpdir/no-plt-extern1a.o" \
+ "-shared -Wl,-z,lazy tmpdir/no-plt-extern1a.o" \
"-Wa,-mx86-used-note=yes" \
{dummy.s} \
{{readelf -Wr libno-plt-1b.rd} \
@@ -74,7 +74,7 @@ run_cc_link_tests [list \
[list \
"No PLT (dynamic 1a)" \
"$NOPIE_LDFLAGS tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
- tmpdir/no-plt-func1.o tmpdir/no-plt-extern1a.o" \
+ tmpdir/no-plt-func1.o tmpdir/no-plt-extern1a.o -Wl,-z,lazy" \
"-Wa,-mx86-used-note=yes" \
{dummy.s} \
{{readelf -Wr no-plt-1a.rd} {objdump -dwrj.text no-plt-1a.dd}} \
@@ -82,7 +82,7 @@ run_cc_link_tests [list \
] \
[list \
"No PLT (dynamic 1b)" \
- "tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
+ "-Wl,-z,lazy tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
tmpdir/libno-plt-1a.so tmpdir/libno-plt-1b.so" \
"-Wa,-mx86-used-note=yes" \
{dummy.s} \
@@ -92,7 +92,7 @@ run_cc_link_tests [list \
[list \
"No PLT (dynamic 1c)" \
"$NOPIE_LDFLAGS tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
- tmpdir/no-plt-func1.o tmpdir/libno-plt-1b.so" \
+ tmpdir/no-plt-func1.o tmpdir/libno-plt-1b.so -Wl,-z,lazy" \
"-Wa,-mx86-used-note=yes" \
{dummy.s} \
{{readelf -Wr no-plt-1c.rd} {objdump -dwrj.text no-plt-1c.dd}} \
@@ -109,7 +109,7 @@ run_cc_link_tests [list \
] \
[list \
"No PLT (PIE 1e)" \
- "-pie tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
+ "-pie -Wl,-z,lazy tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/no-plt-extern1a.o" \
"-Wa,-mx86-used-note=yes" \
{dummy.s} \
@@ -118,7 +118,7 @@ run_cc_link_tests [list \
] \
[list \
"No PLT (PIE 1f)" \
- "-pie tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
+ "-pie -Wl,-z,lazy tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
tmpdir/libno-plt-1a.so tmpdir/libno-plt-1b.so" \
"-Wa,-mx86-used-note=yes" \
{ dummy.s } \
@@ -127,7 +127,7 @@ run_cc_link_tests [list \
] \
[list \
"No PLT (PIE 1g)" \
- "-pie tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
+ "-pie -Wl,-z,lazy tmpdir/no-plt-check1a.o tmpdir/no-plt-main1.o \
tmpdir/no-plt-func1.o tmpdir/libno-plt-1b.so" \
"-Wa,-mx86-used-note=yes" \
{ dummy.s } \
diff --git a/ld/testsuite/ld-loongarch-elf/32_pcrel.s b/ld/testsuite/ld-loongarch-elf/32_pcrel.s
new file mode 100644
index 0000000..3ef16de
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/32_pcrel.s
@@ -0,0 +1,6 @@
+ .section sx,"a"
+x:
+ nop
+
+ .section sy,"a"
+ .4byte x-.
diff --git a/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp b/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp
index 0295be8..2f09a69 100644
--- a/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp
+++ b/ld/testsuite/ld-loongarch-elf/ld-loongarch-elf.exp
@@ -200,6 +200,8 @@ if [istarget "loongarch64-*-*"] {
run_dump_test "bad_pcrel20_s2_global"
run_dump_test "bad_pcrel20_s2_weak"
run_dump_test "weak-undef-hidden-shared"
+ run_dump_test "overflow_32_pcrel"
+ run_dump_test "underflow_32_pcrel"
}
if [check_pie_support] {
diff --git a/ld/testsuite/ld-loongarch-elf/overflow_32_pcrel.d b/ld/testsuite/ld-loongarch-elf/overflow_32_pcrel.d
new file mode 100644
index 0000000..154dac9
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/overflow_32_pcrel.d
@@ -0,0 +1,4 @@
+#source: 32_pcrel.s
+#as: -mthin-add-sub
+#ld: -shared --section-start=sx=0x80001000 --section-start=sy=0x1000
+#error: .*relocation truncated to fit: R_LARCH_32_PCREL against `x'
diff --git a/ld/testsuite/ld-loongarch-elf/underflow_32_pcrel.d b/ld/testsuite/ld-loongarch-elf/underflow_32_pcrel.d
new file mode 100644
index 0000000..a5396bc
--- /dev/null
+++ b/ld/testsuite/ld-loongarch-elf/underflow_32_pcrel.d
@@ -0,0 +1,4 @@
+#source: 32_pcrel.s
+#as: -mthin-add-sub
+#ld: -shared --section-start=sx=0x1000 --section-start=sy=0x80001001
+#error: .*relocation truncated to fit: R_LARCH_32_PCREL against `x'
diff --git a/ld/testsuite/ld-pe/secidx.d b/ld/testsuite/ld-pe/secidx.d
index 184cc9f..d0e52c9 100644
--- a/ld/testsuite/ld-pe/secidx.d
+++ b/ld/testsuite/ld-pe/secidx.d
@@ -1,11 +1,11 @@
tmpdir/secidx\.x: +file format pei-.*
-Contents of section .text:
+Contents of section \.text:
.*1000 3e3e3e3e 3c3c3c3c 3e3e3e3e 3e3c3c3c >>>><<<<>>>>><<<
.*1010 3e3e3e3e 3e3e3c3c 3e3e3e3e 3e3e3e3c >>>>>><<>>>>>>><
.*1020 3c3c3c3c 3e3e3e3e 3e909090 <<<<>>>>>...
-Contents of section .data:
+Contents of section \.data:
.*2000 3e3e3e3e 3c3c3c3c 3e3e3e3e 3e3c3c3c >>>><<<<>>>>><<<
.*2010 3e3e3e3e 3e3e3c3c 3e3e3e3e 3e3e3e3c >>>>>><<>>>>>>><
.*2020 3e3e3e3e 01001101 00110100 11010011 >>>>............
@@ -15,13 +15,13 @@ Contents of section .data:
.*2060 3c3c3c3c 3c3c3c3c 3e3e3e3e 01001102 <<<<<<<<>>>>....
.*2070 00110300 113c3c3c 3c3c3c3c 3c000000 .....<<<<<<<<...
.*2080 3c3c3c3e 3e3e3e3e 3e000000 <<<>>>>>>...
-Contents of section .rdata:
+Contents of section \.rdata:
.*3000 3e3e3e3e 3c3c3c3c 3e3e3e3e 3e3c3c3c >>>><<<<>>>>><<<
.*3010 3e3e3e3e 3e3e3c3c 3e3e3e3e 3e3e3e3c >>>>>><<>>>>>>><
.*3020 3e3e3e3e 00000000 00000000 00000000 >>>>............
.*3030 3c3c3c3e 3e3e3e3e 3e000000 ffffffff <<<>>>>>>.......
.*3040 00000000 ffffffff 00000000 ............
-Contents of section .idata:
+Contents of section \.idata:
.*4000 00000000 00000000 00000000 00000000 ................
.*4010 00000000 ....
#...
diff --git a/ld/testsuite/ld-plugin/lto-20.ver b/ld/testsuite/ld-plugin/lto-20.ver
new file mode 100644
index 0000000..ac906ac
--- /dev/null
+++ b/ld/testsuite/ld-plugin/lto-20.ver
@@ -0,0 +1 @@
+FOO { global: foo; };
diff --git a/ld/testsuite/ld-plugin/lto-20a.c b/ld/testsuite/ld-plugin/lto-20a.c
new file mode 100644
index 0000000..3d6dac9
--- /dev/null
+++ b/ld/testsuite/ld-plugin/lto-20a.c
@@ -0,0 +1,2 @@
+extern int foo ();
+int main () { return foo (); }
diff --git a/ld/testsuite/ld-plugin/lto-20b.c b/ld/testsuite/ld-plugin/lto-20b.c
new file mode 100644
index 0000000..ba123cb
--- /dev/null
+++ b/ld/testsuite/ld-plugin/lto-20b.c
@@ -0,0 +1,11 @@
+extern int printf (const char *, ...);
+int foo ()
+{
+#ifdef SHARED
+ printf ("PASS\n");
+ return 0;
+#else
+ printf ("FAIL\n");
+ return 1;
+#endif
+}
diff --git a/ld/testsuite/ld-plugin/lto-binutils.exp b/ld/testsuite/ld-plugin/lto-binutils.exp
new file mode 100644
index 0000000..5b4e0a1
--- /dev/null
+++ b/ld/testsuite/ld-plugin/lto-binutils.exp
@@ -0,0 +1,358 @@
+# Expect script for binutils tests with LTO
+# Copyright (C) 2025 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# 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.
+#
+
+# Make sure that binutils can correctly handle LTO IR in ELF.
+
+if { !([istarget *-*-linux*]
+ || [istarget arm*-*-uclinuxfdpiceabi]
+ || [istarget *-*-nacl*]
+ || [istarget *-*-gnu*]) || [istarget *ecoff] } then {
+ return
+}
+
+# Check to see if the C and C++ compilers work
+if { ![check_compiler_available] || [which $CXX_FOR_TARGET] == 0 } {
+ return
+}
+
+# These tests require plugin and LTO.
+if { ![check_plugin_api_available]
+ || ![check_lto_available] } {
+ return
+}
+
+set lto_fat ""
+set lto_no_fat ""
+if { [check_lto_fat_available] } {
+ set lto_fat "-ffat-lto-objects"
+ set lto_no_fat "-fno-fat-lto-objects"
+ set no_lto "-fno-lto"
+}
+
+# List contains test-items:
+# 0:program name
+# 1:program options
+# 2:input file
+# 3:output file
+# 4:action list (optional)
+#
+proc run_lto_binutils_test { lto_tests } {
+ global srcdir
+ global subdir
+ global nm
+ global objcopy
+ global objdump
+ global READELF
+ global strip
+ global plug_opt
+
+ foreach testitem $lto_tests {
+ set prog_name [lindex $testitem 0]
+ set prog_options [lindex $testitem 1]
+ set input tmpdir/[lindex $testitem 2]
+ set output tmpdir/[lindex $testitem 3]
+ set actions [lindex $testitem 4]
+ set objfiles {}
+ set is_unresolved 0
+ set failed 0
+
+# eval set prog \$$prog_name
+ switch -- $prog_name {
+ objcopy
+ {
+ set prog $objcopy
+ set prog_output "$output"
+ }
+ strip
+ {
+ set prog $strip
+ set prog_output "-o $output"
+ }
+ default
+ {
+ perror "Unrecognized action $action"
+ set is_unresolved 1
+ break
+ }
+ }
+
+ # Don't leave previous output around
+ if { $output ne "tmpdir/" } {
+ remote_file host delete $output
+ }
+
+ append prog_options " $plug_opt"
+
+ set cmd_options "$prog_options $prog_output $input"
+ set test_name "$prog_name $cmd_options"
+
+ set cmd "$prog $cmd_options"
+ send_log "$cmd\n"
+ set got [remote_exec host "$cmd"]
+ if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then {
+ send_log "$got\n"
+ fail "$test_name"
+ continue
+ }
+
+ if { $failed == 0 } {
+ foreach actionlist $actions {
+ set action [lindex $actionlist 0]
+ set progopts [lindex $actionlist 1]
+
+ # There are actions where we run regexp_diff on the
+ # output, and there are other actions (presumably).
+ # Handling of the former look the same.
+ set dump_prog ""
+ switch -- $action {
+ objdump
+ { set dump_prog $objdump }
+ nm
+ { set dump_prog $nm }
+ readelf
+ { set dump_prog $READELF }
+ default
+ {
+ perror "Unrecognized action $action"
+ set is_unresolved 1
+ break
+ }
+ }
+
+ if { $dump_prog != "" } {
+ set dumpfile [lindex $actionlist 2]
+ set binary $dump_prog
+
+ # Ensure consistent sorting of symbols
+ if {[info exists env(LC_ALL)]} {
+ set old_lc_all $env(LC_ALL)
+ }
+ set env(LC_ALL) "C"
+ set cmd "$binary $progopts $output > tmpdir/dump.out"
+ send_log "$cmd\n"
+ catch "exec $cmd" comp_output
+ if {[info exists old_lc_all]} {
+ set env(LC_ALL) $old_lc_all
+ } else {
+ unset env(LC_ALL)
+ }
+ set comp_output [prune_warnings $comp_output]
+
+ if ![string match "" $comp_output] then {
+ send_log "$comp_output\n"
+ set failed 1
+ break
+ }
+
+ if { [regexp_diff "tmpdir/dump.out" "$srcdir/$subdir/$dumpfile"] } then {
+ verbose -log "output is [file_contents "tmpdir/dump.out"]" 2
+ set failed 1
+ break
+ }
+ }
+ }
+ }
+
+ if { $failed } {
+ fail $test_name
+ } elseif { $is_unresolved } {
+ unresolved $test_name
+ } else {
+ pass $test_name
+ }
+ }
+}
+
+run_cc_link_tests [list \
+ [list \
+ "Build strip-1a.o" \
+ "" \
+ "-O2 -flto $lto_no_fat" \
+ { strip-1a.c } \
+ ] \
+ [list \
+ "Build libstrip-1a.a" \
+ "$plug_opt" \
+ "-O2 -flto $lto_no_fat" \
+ { strip-1a.c } \
+ {} \
+ "libstrip-1a.a" \
+ ] \
+ [list \
+ "Build strip-1a-fat.o" \
+ "" \
+ "-O2 -flto $lto_fat" \
+ { strip-1a-fat.c } \
+ ] \
+ [list \
+ "Build libstrip-1a-fat.a" \
+ "$plug_opt" \
+ "-O2 -flto $lto_fat" \
+ { strip-1a-fat.c } \
+ {} \
+ "libstrip-1a-fat.a" \
+ ] \
+]
+
+run_lto_binutils_test [list \
+ [list \
+ "strip" \
+ "--strip-unneeded" \
+ "libstrip-1a.a" \
+ "libstrip-1a-s.a" \
+ ] \
+ [list \
+ "strip" \
+ "--strip-unneeded" \
+ "strip-1a.o" \
+ "strip-1a-s.o" \
+ ] \
+ [list \
+ "strip" \
+ "--strip-unneeded -R .gnu.*lto_* -N __gnu_lto_v1" \
+ "libstrip-1a-fat.a" \
+ "libstrip-1a-fat-s.a" \
+ {{readelf -SW strip-1a-fat.rd}} \
+ ] \
+ [list \
+ "strip" \
+ "--strip-unneeded -R .gnu.*lto_* -N __gnu_lto_v1" \
+ "strip-1a-fat.o" \
+ "strip-1a-fat-s.o" \
+ {{readelf -SW strip-1a-fat.rd}} \
+ ] \
+ [list \
+ "strip" \
+ "--strip-unneeded -R .gnu.debuglto_*" \
+ "libstrip-1a-fat.a" \
+ "libstrip-1b-fat-s.a" \
+ {{readelf -SW strip-1b-fat.rd}} \
+ ] \
+ [list \
+ "strip" \
+ "--strip-unneeded -R .gnu.debuglto_*" \
+ "strip-1a-fat.o" \
+ "strip-1b-fat-s.o" \
+ {{readelf -SW strip-1b-fat.rd}} \
+ ] \
+]
+
+if { [check_lto_fat_available] } {
+ run_lto_binutils_test [list \
+ [list \
+ "strip" \
+ "-R .gnu.*lto_* -N __gnu_lto_v1" \
+ "strip-1a.o" \
+ "strip-1a-s-all.o" \
+ {{nm -n strip-1a-s-all.nd}} \
+ ] \
+ [list \
+ "strip" \
+ "-R .gnu.*lto_* -N __gnu_lto_v1" \
+ "libstrip-1a.a" \
+ "libstrip-1a-s-all.a" \
+ {{nm -n strip-1a-s-all.nd}} \
+ ] \
+ ]
+}
+
+run_cc_link_tests [list \
+ [list \
+ "Build strip-1a (strip-1a.o)" \
+ "" \
+ "-O2 -flto $lto_no_fat" \
+ { strip-1b.c } \
+ {} \
+ "libstrip-1a" \
+ "C" \
+ "tmpdir/strip-1a.o" \
+ ] \
+ [list \
+ "Build strip-1b (strip-1a-s.o)" \
+ "" \
+ "-O2 -flto $lto_no_fat" \
+ { strip-1b.c } \
+ {} \
+ "libstrip-1b" \
+ "C" \
+ "tmpdir/strip-1a-s.o" \
+ ] \
+ [list \
+ "Build strip-1c (libstrip-1a.a)" \
+ "" \
+ "-O2 -flto $lto_no_fat" \
+ { strip-1b.c } \
+ {} \
+ "libstrip-1c" \
+ "C" \
+ "tmpdir/libstrip-1a.a" \
+ ] \
+ [list \
+ "Build strip-1d (libstrip-1a-s.a)" \
+ "" \
+ "-O2 -flto $lto_no_fat" \
+ { strip-1b.c } \
+ {} \
+ "libstrip-1d" \
+ "C" \
+ "tmpdir/libstrip-1a-s.a" \
+ ] \
+ [list \
+ "Build strip-1e (strip-1a-fat-s.o)" \
+ "" \
+ "-O2 -flto $lto_fat" \
+ { strip-1b-fat.c } \
+ {} \
+ "libstrip-1e" \
+ "C" \
+ "tmpdir/strip-1a-fat-s.o" \
+ ] \
+ [list \
+ "Build strip-1f (libstrip-1a-fat-s.a)" \
+ "" \
+ "-O2 -flto $lto_fat" \
+ { strip-1b-fat.c } \
+ {} \
+ "libstrip-1f" \
+ "C" \
+ "tmpdir/libstrip-1a-fat-s.a" \
+ ] \
+ [list \
+ "Build strip-1g (strip-1b-fat-s.o)" \
+ "" \
+ "-O2 -flto $lto_fat" \
+ { strip-1b-fat.c } \
+ {} \
+ "libstrip-1g" \
+ "C" \
+ "tmpdir/strip-1b-fat-s.o" \
+ ] \
+ [list \
+ "Build strip-1h (libstrip-1b-fat-s.a)" \
+ "" \
+ "-O2 -flto $lto_fat" \
+ { strip-1b-fat.c } \
+ {} \
+ "libstrip-1h" \
+ "C" \
+ "tmpdir/libstrip-1b-fat-s.a" \
+ ] \
+]
diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp
index 556bbe9..f0d0954 100644
--- a/ld/testsuite/ld-plugin/lto.exp
+++ b/ld/testsuite/ld-plugin/lto.exp
@@ -477,6 +477,12 @@ set lto_link_elf_tests [list \
[list {liblto-19.so} \
{-shared tmpdir/lto-19b.o tmpdir/liblto-19.a} {-O2 -fPIC} \
{dummy.c} {} {liblto-19.so}] \
+ [list {liblto-20_static.a} \
+ {} {-fPIC} \
+ {lto-20b.c} {} {liblto-20_static.a}] \
+ [list {liblto-20.so} \
+ {-shared -Wl,--version-script=lto-20.ver} {-DSHARED -fPIC} \
+ {lto-20b.c} {} {liblto-20.so}] \
[list {pr26806.so} \
{-shared} {-fpic -O2 -flto} \
{pr26806.c} {{nm {-D} pr26806.d}} {pr26806.so}] \
@@ -880,6 +886,10 @@ set lto_run_elf_shared_tests [list \
{-Wl,--as-needed,-R,tmpdir} {} \
{lto-19c.c} {lto-19.exe} {pass.out} {-flto -O2} {c} {} \
{tmpdir/liblto-19.so tmpdir/liblto-19.a}] \
+ [list {lto-20} \
+ {-Wl,--as-needed,-R,tmpdir} {} \
+ {lto-20a.c} {lto-20.exe} {pass.out} {-flto} {c} {} \
+ {tmpdir/liblto-20.so tmpdir/liblto-20_static.a -Wl,--no-as-needed}] \
[list {pr31482a} \
{-Wl,--no-as-needed,-R,tmpdir} {} \
{pr31482a.c} {pr31482a.exe} {pass.out} {-flto} {c} {} \
@@ -1148,9 +1158,8 @@ remote_exec host "mv" "tmpdir/dump tmpdir/lto-5.o"
run_dump_test "lto-10r"
remote_exec host "mv" "tmpdir/dump tmpdir/lto-10.o"
set testname "nm mixed object"
-set lto_plugin [string trim [run_host_cmd "$CC_FOR_TARGET" "-print-prog-name=liblto_plugin.so"]]
-if { [ regexp "liblto_plugin.so" $lto_plugin ] } {
- set exec_output [run_host_cmd "$NM" "--plugin $lto_plugin tmpdir/lto-10.o"]
+if { $plug_opt != "" } {
+ set exec_output [run_host_cmd "$NM" "$plug_opt tmpdir/lto-10.o"]
if { [ regexp "(D|T) main" $exec_output ] } {
pass $testname
} else {
@@ -1202,6 +1211,38 @@ if { [is_elf_format] } {
if { [is_elf_format] && [check_lto_shared_available] } {
run_ld_link_exec_tests $lto_run_elf_shared_tests
+ if { [check_lto_fat_available] } {
+ run_cc_link_tests [list \
+ [list \
+ "Build libpr32846a.a" \
+ "$plug_opt" "-fPIC -O2 -flto $lto_no_fat" \
+ {pr32846a.c pr32846b.c} {} "libpr32846a.a" \
+ ] \
+ [list \
+ "Build libpr32846b.a" \
+ "$plug_opt" "-fPIC -O2 -flto $lto_no_fat" \
+ {pr32846a.c pr32846b.c pr32846c.c} {} "libpr32846b.a" \
+ ] \
+ [list \
+ "Build pr32846d.o" \
+ "$plug_opt" "-fPIC -O2 -flto $lto_no_fat" \
+ {pr32846d.c} {} \
+ ] \
+ [list \
+ "Build pr32846e.o" \
+ "$plug_opt" "-fPIC -O2 -flto $lto_no_fat" \
+ {pr32846e.c} {} \
+ ] \
+ [list \
+ "Build pr32846" \
+ "-shared -fPIC -O2 -flto $lto_no_fat -Wl,--no-undefined \
+ tmpdir/pr32846d.o tmpdir/libpr32846a.a \
+ tmpdir/libpr32846b.a tmpdir/pr32846e.o" \
+ "-O2 -fPIC -flto $lto_no_fat" \
+ {dummy.c} {} "pr32846" \
+ ] \
+ ] \
+ }
}
proc pr20103 {cflags libs} {
diff --git a/ld/testsuite/ld-plugin/pr25618a.h b/ld/testsuite/ld-plugin/pr25618a.h
index 9bf857c..04be194 100644
--- a/ld/testsuite/ld-plugin/pr25618a.h
+++ b/ld/testsuite/ld-plugin/pr25618a.h
@@ -1,2 +1 @@
-#pragma once
__attribute__((visibility("default"))) int bar();
diff --git a/ld/testsuite/ld-plugin/pr25618b.h b/ld/testsuite/ld-plugin/pr25618b.h
index cd80074..65e72a0 100644
--- a/ld/testsuite/ld-plugin/pr25618b.h
+++ b/ld/testsuite/ld-plugin/pr25618b.h
@@ -1,2 +1 @@
-#pragma once
__attribute__((visibility("default"))) int foo();
diff --git a/ld/testsuite/ld-plugin/pr32846a.c b/ld/testsuite/ld-plugin/pr32846a.c
new file mode 100644
index 0000000..8c16171
--- /dev/null
+++ b/ld/testsuite/ld-plugin/pr32846a.c
@@ -0,0 +1,6 @@
+extern void mkdir_p (void);
+void
+mkdir_parents (void)
+{
+ mkdir_p ();
+}
diff --git a/ld/testsuite/ld-plugin/pr32846b.c b/ld/testsuite/ld-plugin/pr32846b.c
new file mode 100644
index 0000000..9776a37
--- /dev/null
+++ b/ld/testsuite/ld-plugin/pr32846b.c
@@ -0,0 +1,4 @@
+void
+hash_new (void)
+{
+}
diff --git a/ld/testsuite/ld-plugin/pr32846c.c b/ld/testsuite/ld-plugin/pr32846c.c
new file mode 100644
index 0000000..f87cffb
--- /dev/null
+++ b/ld/testsuite/ld-plugin/pr32846c.c
@@ -0,0 +1,6 @@
+extern void hash_new (void);
+void
+kmod_new (void)
+{
+ hash_new();
+}
diff --git a/ld/testsuite/ld-plugin/pr32846d.c b/ld/testsuite/ld-plugin/pr32846d.c
new file mode 100644
index 0000000..c6f4102
--- /dev/null
+++ b/ld/testsuite/ld-plugin/pr32846d.c
@@ -0,0 +1,12 @@
+extern void kmod_new (void);
+extern void mkdir_parents (void);
+void
+do_lsmod (void)
+{
+ kmod_new ();
+}
+void
+do_static_nodes (void)
+{
+ mkdir_parents();
+}
diff --git a/ld/testsuite/ld-plugin/pr32846e.c b/ld/testsuite/ld-plugin/pr32846e.c
new file mode 100644
index 0000000..c4e5e56
--- /dev/null
+++ b/ld/testsuite/ld-plugin/pr32846e.c
@@ -0,0 +1,4 @@
+void
+mkdir_p (void)
+{
+}
diff --git a/ld/testsuite/ld-plugin/strip-1a-fat.c b/ld/testsuite/ld-plugin/strip-1a-fat.c
new file mode 100644
index 0000000..03b2a5c
--- /dev/null
+++ b/ld/testsuite/ld-plugin/strip-1a-fat.c
@@ -0,0 +1 @@
+#include "strip-1a.c"
diff --git a/ld/testsuite/ld-plugin/strip-1a-fat.rd b/ld/testsuite/ld-plugin/strip-1a-fat.rd
new file mode 100644
index 0000000..aefe1c5
--- /dev/null
+++ b/ld/testsuite/ld-plugin/strip-1a-fat.rd
@@ -0,0 +1,6 @@
+#failif
+#...
+Section Headers:
+#...
+ \[[ 0-9]+\] \.gnu.lto_.*
+#...
diff --git a/ld/testsuite/ld-plugin/strip-1a-s-all.nd b/ld/testsuite/ld-plugin/strip-1a-s-all.nd
new file mode 100644
index 0000000..612ba6a
--- /dev/null
+++ b/ld/testsuite/ld-plugin/strip-1a-s-all.nd
@@ -0,0 +1,3 @@
+#...
+[0-9a-f]* C _?__gnu_lto_slim
+#pass
diff --git a/ld/testsuite/ld-plugin/strip-1a.c b/ld/testsuite/ld-plugin/strip-1a.c
new file mode 100644
index 0000000..d84af20
--- /dev/null
+++ b/ld/testsuite/ld-plugin/strip-1a.c
@@ -0,0 +1,4 @@
+extern void foo2(void);
+extern void foo3(void);
+void foo1(void) { foo3(); }
+int main(void) { foo2(); }
diff --git a/ld/testsuite/ld-plugin/strip-1b-fat.c b/ld/testsuite/ld-plugin/strip-1b-fat.c
new file mode 100644
index 0000000..1a2e4d2
--- /dev/null
+++ b/ld/testsuite/ld-plugin/strip-1b-fat.c
@@ -0,0 +1 @@
+#include "strip-1b.c"
diff --git a/ld/testsuite/ld-plugin/strip-1b-fat.rd b/ld/testsuite/ld-plugin/strip-1b-fat.rd
new file mode 100644
index 0000000..e3a266f
--- /dev/null
+++ b/ld/testsuite/ld-plugin/strip-1b-fat.rd
@@ -0,0 +1,5 @@
+#...
+Section Headers:
+#...
+ \[[ 0-9]+\] \.gnu.lto_.*
+#pass
diff --git a/ld/testsuite/ld-plugin/strip-1b.c b/ld/testsuite/ld-plugin/strip-1b.c
new file mode 100644
index 0000000..967872a
--- /dev/null
+++ b/ld/testsuite/ld-plugin/strip-1b.c
@@ -0,0 +1,3 @@
+extern void foo1(void);
+void foo2(void) { foo1(); }
+void foo3(void) {}
diff --git a/ld/testsuite/ld-s390/pr32969_64-1.dd b/ld/testsuite/ld-s390/pr32969_64-1.dd
new file mode 100644
index 0000000..fce262f
--- /dev/null
+++ b/ld/testsuite/ld-s390/pr32969_64-1.dd
@@ -0,0 +1,15 @@
+tmpdir/pr32969_64-1: file format elf64-s390
+
+Disassembly of section .text:
+
+.* <_start>:
+.*: c0 10 00 00 00 0e [ ]*larl %r1,10000cc <foo>
+.*: c4 18 00 00 08 1d [ ]*lgrl %r1,10010f0 <_GLOBAL_OFFSET_TABLE_\+0x20>
+
+.* <b>:
+.*: c4 18 00 00 08 1a [ ]*lgrl %r1,10010f0 <_GLOBAL_OFFSET_TABLE_\+0x20>
+#?.* 07 07 [ ]*nopr %r7
+
+.* <c>:
+.* c4 18 00 00 08 16 [ ]*lgrl %r1,10010f0 <_GLOBAL_OFFSET_TABLE_\+0x20>
+#?.* 07 07 [ ]*nopr %r7
diff --git a/ld/testsuite/ld-s390/pr32969_64-2.dd b/ld/testsuite/ld-s390/pr32969_64-2.dd
new file mode 100644
index 0000000..88c770e
--- /dev/null
+++ b/ld/testsuite/ld-s390/pr32969_64-2.dd
@@ -0,0 +1,15 @@
+tmpdir/pr32969_64-2: file format elf64-s390
+
+Disassembly of section .text:
+
+.* <_start>:
+.*: c0 10 00 00 00 0e [ ]*larl %r1,10000cc <foo>
+.*: c0 10 00 00 00 0c [ ]*larl %r1,10000ce <bar>
+
+.* <c>:
+.*: c0 10 00 00 00 09 [ ]*larl %r1,10000ce <bar>
+#?.* 07 07 [ ]*nopr %r7
+
+.* <b>:
+.* c0 10 00 00 00 05 [ ]*larl %r1,10000ce <bar>
+#?.* 07 07 [ ]*nopr %r7
diff --git a/ld/testsuite/ld-s390/pr32969a.s b/ld/testsuite/ld-s390/pr32969a.s
new file mode 100644
index 0000000..baee6ca
--- /dev/null
+++ b/ld/testsuite/ld-s390/pr32969a.s
@@ -0,0 +1,14 @@
+ .text
+ .globl _start
+ .type _start,@function
+_start:
+ lgrl %r1,foo@GOTENT
+ lgrl %r1,bar@GOTENT
+
+ .section .rodata,"a",@progbits
+ .align 1
+ .globl foo
+ .type foo,@object
+foo:
+ .byte 0xa
+ .size foo, .-foo
diff --git a/ld/testsuite/ld-s390/pr32969b.s b/ld/testsuite/ld-s390/pr32969b.s
new file mode 100644
index 0000000..54ee369
--- /dev/null
+++ b/ld/testsuite/ld-s390/pr32969b.s
@@ -0,0 +1,10 @@
+b:
+ lgrl %r1,bar@GOTENT
+
+ .section .rodata,"aG",@progbits,bar_group,comdat
+ .align 1
+ .globl bar
+ .type bar,@object
+bar:
+ .byte 0xb
+ .size bar, .-bar
diff --git a/ld/testsuite/ld-s390/pr32969c.s b/ld/testsuite/ld-s390/pr32969c.s
new file mode 100644
index 0000000..02cf584
--- /dev/null
+++ b/ld/testsuite/ld-s390/pr32969c.s
@@ -0,0 +1,10 @@
+c:
+ lgrl %r1,bar@GOTENT
+
+ .section .rodata,"aG",@progbits,bar_group,comdat
+ .align 2
+ .globl bar
+ .type bar,@object
+bar:
+ .byte 0xc
+ .size bar, .-bar
diff --git a/ld/testsuite/ld-s390/s390.exp b/ld/testsuite/ld-s390/s390.exp
index d91eeac..aaba88d 100644
--- a/ld/testsuite/ld-s390/s390.exp
+++ b/ld/testsuite/ld-s390/s390.exp
@@ -125,6 +125,14 @@ set s390xtests {
"-m elf64_s390 tmpdir/libpltlib_64.so" "" "-m64" {plt_64-1.s}
{{objdump "-dzrj.plt" plt_64-1.pd} {readelf "-wf" plt_64-1_eh.wf}}
"plt_64-1_eh"}
+ {"PR32969-1: do not rewrite load of misaligned COMDAT symbol address"
+ "-m elf64_s390" "" "-m64" {pr32969a.s pr32969b.s pr32969c.s}
+ {{objdump "-dzrj.text" pr32969_64-1.dd}}
+ "pr32969_64-1"}
+ {"PR32969-2: rewrite load of aligned COMDAT symbol address"
+ "-m elf64_s390" "" "-m64" {pr32969a.s pr32969c.s pr32969b.s}
+ {{objdump "-dzrj.text" pr32969_64-2.dd}}
+ "pr32969_64-2"}
}
if [istarget "s390-*-*"] {
diff --git a/ld/testsuite/ld-scripts/map-address.exp b/ld/testsuite/ld-scripts/map-address.exp
index 2291302..776fed4 100644
--- a/ld/testsuite/ld-scripts/map-address.exp
+++ b/ld/testsuite/ld-scripts/map-address.exp
@@ -130,19 +130,38 @@ if { [is_elf_format] } {
$IMAGE_BASE tmpdir/map-address.o \
-Map=tmpdir/map-locals.map --print-map-locals"]} {
fail $testname
- return
- }
- if [is_remote host] then {
- remote_upload host "tmpdir/map-locals.map"
- }
+ } else {
- # Some ELF targets do not preserve their local symbols.
- setup_xfail "d30v-*-*" "dlx-*-*" "pj-*-*" "s12z-*-*" "xgate-*-*"
+ if [is_remote host] then {
+ remote_upload host "tmpdir/map-locals.map"
+ }
+
+ # Some ELF targets do not preserve their local symbols.
+ setup_xfail "d30v-*-*" "dlx-*-*" "pj-*-*" "s12z-*-*" "xgate-*-*"
+ if {[regexp_diff \
+ "tmpdir/map-locals.map" \
+ "$srcdir/$subdir/map-locals.d"]} {
+ fail $testname
+ } else {
+ pass $testname
+ }
+ }
+}
+
+set testname "map with resource usage"
+
+if {![ld_link $ld tmpdir/map-address \
+ "$LDFLAGS -T $srcdir/$subdir/map-address.t \
+ $IMAGE_BASE tmpdir/map-address.o \
+ -Map=tmpdir/map-locals.map \
+ --stats=tmpdir/map-stats.map"]} {
+ fail $testname
+} else {
if {[regexp_diff \
- "tmpdir/map-locals.map" \
- "$srcdir/$subdir/map-locals.d"]} {
+ "tmpdir/map-stats.map" \
+ "$srcdir/$subdir/map-stats.d"]} {
fail $testname
} else {
pass $testname
diff --git a/ld/testsuite/ld-scripts/map-stats.d b/ld/testsuite/ld-scripts/map-stats.d
new file mode 100644
index 0000000..ba9adf8
--- /dev/null
+++ b/ld/testsuite/ld-scripts/map-stats.d
@@ -0,0 +1,5 @@
+#...
+Stats: phase.*
+Stats: name.*
+Stats: ALL.*
+#pass
diff --git a/ld/testsuite/ld-shared/shared.exp b/ld/testsuite/ld-shared/shared.exp
index bdbe9a9..a8ddac2 100644
--- a/ld/testsuite/ld-shared/shared.exp
+++ b/ld/testsuite/ld-shared/shared.exp
@@ -121,6 +121,7 @@ proc shared_test { progname testname main sh1 sh2 dat args } {
global tmpdir
if [llength $args] { set shldflags [lindex $args 0] } else { set shldflags "" }
+ if { [llength $args] >= 2 } { set ldflags [lindex $args 1] } else { set ldflags "" }
# Build the shared library.
set shared -shared
@@ -146,7 +147,7 @@ proc shared_test { progname testname main sh1 sh2 dat args } {
set rpath /lib:$tmpdir
set exportflag " -Wl,-bexpall"
}
- if ![ld_link $CC_FOR_TARGET $tmpdir/$progname "-Wl,-rpath,$rpath $tmpdir/$main $tmpdir/$progname.so $exportflag"] {
+ if ![ld_link $CC_FOR_TARGET $tmpdir/$progname "-Wl,-rpath,$rpath $ldflags $tmpdir/$main $tmpdir/$progname.so $exportflag"] {
fail "$testname"
return
}
@@ -205,7 +206,9 @@ if { [istarget mips*-*-*] && ! [at_least_gcc_version 4 3] } then {
verbose "Using $picflag to compile PIC code"
# Compile the main program.
-if ![ld_compile "$CC_FOR_TARGET $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o] {
+global PLT_CFLAGS NOPIE_CFLAGS NOPIE_LDFLAGS
+verbose "Using $NOPIE_CFLAGS to compile and $NOPIE_LDFLAGS to link non PIC code"
+if ![ld_compile "$CC_FOR_TARGET $NOPIE_CFLAGS $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o] {
unsupported "shared (non PIC)"
unsupported "shared"
} else {
@@ -215,12 +218,11 @@ if ![ld_compile "$CC_FOR_TARGET $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.
# will need to do more relocation work. However, note that not
# using -fpic will cause some of the tests to return different
# results. Make sure that PLT is used since PLT is expected.
- global PLT_CFLAGS NOPIE_CFLAGS
if { ![ld_compile "$CC_FOR_TARGET $PLT_CFLAGS $NOPIE_CFLAGS $SHCFLAG" $srcdir/$subdir/sh1.c $tmpdir/sh1np.o]
- || ![ld_compile "$CC_FOR_TARGET $PLT_CFLAGS $SHCFLAG" $srcdir/$subdir/sh2.c $tmpdir/sh2np.o] } {
+ || ![ld_compile "$CC_FOR_TARGET $PLT_CFLAGS $NOPIE_CFLAGS $SHCFLAG" $srcdir/$subdir/sh2.c $tmpdir/sh2np.o] } {
unsupported "shared (non PIC)"
} else { if { [is_xcoff_format] } {
- shared_test shnp "shared (nonPIC)" mainnp.o sh1np.o sh2np.o xcoff
+ shared_test shnp "shared (non PIC)" mainnp.o sh1np.o sh2np.o xcoff "" $NOPIE_LDFLAGS
} else {
# Solaris defaults to -z text.
setup_xfail "*-*-solaris2*"
@@ -243,7 +245,7 @@ if ![ld_compile "$CC_FOR_TARGET $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.
setup_xfail "arm*-*-linux*"
}
setup_xfail "aarch64*-*-linux*"
- shared_test shnp "shared (non PIC)" mainnp.o sh1np.o sh2np.o shared
+ shared_test shnp "shared (non PIC)" mainnp.o sh1np.o sh2np.o shared "" $NOPIE_LDFLAGS
# Test ELF shared library relocations with a non-zero load
# address for the library. Near as I can tell, the R_*_RELATIVE
@@ -273,7 +275,7 @@ if ![ld_compile "$CC_FOR_TARGET $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.
setup_xfail "*-*-solaris2*"
shared_test shnp "shared (non PIC, load offset)" \
mainnp.o sh1np.o sh2np.o shared \
- "-Wl,-T,$srcdir/$subdir/elf-offset.ld,--hash-style=sysv"
+ "-Wl,-T,$srcdir/$subdir/elf-offset.ld,--hash-style=sysv" $NOPIE_LDFLAGS
} }
# Now compile the code using -fpic.
@@ -283,13 +285,13 @@ if ![ld_compile "$CC_FOR_TARGET $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.
unsupported "shared"
} else {
if { [is_xcoff_format] } {
- shared_test shp "shared" mainnp.o sh1p.o sh2p.o xcoff
+ shared_test shp "shared" mainnp.o sh1p.o sh2p.o xcoff "" $NOPIE_LDFLAGS
} else {
- shared_test shp "shared" mainnp.o sh1p.o sh2p.o shared
- ld_compile "$CC_FOR_TARGET -DSYMBOLIC_TEST $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o
+ shared_test shp "shared" mainnp.o sh1p.o sh2p.o shared "" $NOPIE_LDFLAGS
+ ld_compile "$CC_FOR_TARGET $NOPIE_CFLAGS -DSYMBOLIC_TEST $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o
ld_compile "$CC_FOR_TARGET -DSYMBOLIC_TEST $SHCFLAG $picflag" $srcdir/$subdir/sh1.c $tmpdir/sh1p.o
- shared_test shp "shared -Bsymbolic" mainnp.o sh1p.o sh2p.o symbolic "-Bsymbolic"
- ld_compile "$CC_FOR_TARGET $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o
+ shared_test shp "shared -Bsymbolic" mainnp.o sh1p.o sh2p.o symbolic "-Bsymbolic" $NOPIE_LDFLAGS
+ ld_compile "$CC_FOR_TARGET $NOPIE_CFLAGS $SHCFLAG" $srcdir/$subdir/main.c $tmpdir/mainnp.o
ld_compile "$CC_FOR_TARGET $SHCFLAG $picflag" $srcdir/$subdir/sh1.c $tmpdir/sh1p.o
}
}
@@ -302,7 +304,7 @@ if ![ld_compile "$CC_FOR_TARGET $SHCFLAG $picflag" $srcdir/$subdir/main.c $tmpdi
} else {
if { [file exists $tmpdir/sh1np.o ] && [ file exists $tmpdir/sh2np.o ] } {
if { [is_xcoff_format] } {
- shared_test shmpnp "shared (PIC main, non PIC so)" mainp.o sh1np.o sh2np.o xcoff
+ shared_test shmpnp "shared (PIC main, non PIC so)" mainp.o sh1np.o sh2np.o xcoff "" $NOPIE_LDFLAGS
} else {
# Solaris defaults to -z text.
setup_xfail "*-*-solaris2*"
@@ -325,7 +327,7 @@ if ![ld_compile "$CC_FOR_TARGET $SHCFLAG $picflag" $srcdir/$subdir/main.c $tmpdi
setup_xfail "arm*-*-linux*"
}
setup_xfail "aarch64*-*-linux*"
- shared_test shmpnp "shared (PIC main, non PIC so)" mainp.o sh1np.o sh2np.o shared
+ shared_test shmpnp "shared (PIC main, non PIC so)" mainp.o sh1np.o sh2np.o shared "" $NOPIE_LDFLAGS
}
} else {
unsupported "shared (PIC main, non PIC so)"
@@ -333,9 +335,9 @@ if ![ld_compile "$CC_FOR_TARGET $SHCFLAG $picflag" $srcdir/$subdir/main.c $tmpdi
if { [file exists $tmpdir/sh1p.o ] && [ file exists $tmpdir/sh2p.o ] } {
if { [is_xcoff_format] } {
- shared_test shmpp "shared (PIC main)" mainp.o sh1p.o sh2p.o xcoff
+ shared_test shmpp "shared (PIC main)" mainp.o sh1p.o sh2p.o xcoff "" $NOPIE_LDFLAGS
} else {
- shared_test shmpp "shared (PIC main)" mainp.o sh1p.o sh2p.o shared
+ shared_test shmpp "shared (PIC main)" mainp.o sh1p.o sh2p.o shared "" $NOPIE_LDFLAGS
}
} else {
unsupported "shared (PIC main)"
diff --git a/ld/testsuite/ld-sparc/got-def.s b/ld/testsuite/ld-sparc/got-def.s
new file mode 100644
index 0000000..efca910
--- /dev/null
+++ b/ld/testsuite/ld-sparc/got-def.s
@@ -0,0 +1,15 @@
+ .text
+.LLGETPC0:
+ retl
+ add %o7, %l7, %l7
+ .global got
+ .type got, #function
+ .proc 04
+got:
+ save %sp, -160, %sp
+ sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %l7
+ call .LLGETPC0
+ add %l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7
+ mov %l7, %o0
+ ret
+ restore
diff --git a/ld/testsuite/ld-sparc/sparc.exp b/ld/testsuite/ld-sparc/sparc.exp
index 9d68489..3e21ed7 100644
--- a/ld/testsuite/ld-sparc/sparc.exp
+++ b/ld/testsuite/ld-sparc/sparc.exp
@@ -94,6 +94,10 @@ set sparctests {
{"32-bit: TLS -fpie" "-melf32_sparc -pie tmpdir/libtlslib32.so" ""
"--32 -K PIC" {tlspie32.s}
{{objdump -drj.text tlspie32.dd}} "tlspie32"}
+ {"32-bit: GOT definition"
+ "-melf32_sparc" ""
+ "--32 -K PIC" {got-def.s}
+ {} "got-def"}
{"32-bit: GOTDATA relocations"
"-shared -melf32_sparc --hash-style=sysv" ""
"--32 -K PIC" {gotop32.s}
@@ -134,6 +138,10 @@ set sparc64tests {
"-melf64_sparc -pie -Ttext-segment=0x100000 tmpdir/libtlslib64.so" ""
"--64 -Av9 -K PIC" {tlspie64.s}
{{objdump -drj.text tlspie64.dd}} "tlspie64"}
+ {"64-bit: GOT definition"
+ "-melf64_sparc" ""
+ "--64 -Av9 -K PIC" {got-def.s}
+ {} "got-def"}
{"64-bit: GOTDATA relocations"
"-shared -melf64_sparc --hash-style=sysv" ""
"--64 -Av9 -K PIC" {gotop64.s}
diff --git a/ld/testsuite/ld-tic6x/discard-unwind.ld b/ld/testsuite/ld-tic6x/discard-unwind.ld
index 00582c1..172e2a8 100644
--- a/ld/testsuite/ld-tic6x/discard-unwind.ld
+++ b/ld/testsuite/ld-tic6x/discard-unwind.ld
@@ -11,5 +11,5 @@ SECTIONS
*(.c6xabi.extab*)
} =0
/DISCARD/ : { *(.c6xabi.exidx*) }
- .c6xabi.attribues 0 : { *(.c6xabi.atttributes) }
+ .c6xabi.attributes 0 : { *(.c6xabi.attributes) }
}
diff --git a/ld/testsuite/ld-tic6x/unwind.ld b/ld/testsuite/ld-tic6x/unwind.ld
index a4f8722..01ba9b6 100644
--- a/ld/testsuite/ld-tic6x/unwind.ld
+++ b/ld/testsuite/ld-tic6x/unwind.ld
@@ -16,5 +16,5 @@ SECTIONS
.got : { *(.got) *(.got.plt)}
. = 0x12340000;
.far : { *(.far) }
- .c6xabi.attribues 0 : { *(.c6xabi.atttributes) }
+ .c6xabi.attributes 0 : { *(.c6xabi.attributes) }
}
diff --git a/ld/testsuite/ld-vsb/vsb.exp b/ld/testsuite/ld-vsb/vsb.exp
index 9a61e9d..e44ac39 100644
--- a/ld/testsuite/ld-vsb/vsb.exp
+++ b/ld/testsuite/ld-vsb/vsb.exp
@@ -134,6 +134,7 @@ proc visibility_test { visibility progname testname main sh1 sh2 dat args } {
global tmpdir
if [llength $args] { set shldflags [lindex $args 0] } else { set shldflags "" }
+ if { [llength $args] >= 2 } { set ldflags [lindex $args 1] } else { set ldflags "" }
# Build the shared library.
set shared -shared
@@ -169,7 +170,7 @@ proc visibility_test { visibility progname testname main sh1 sh2 dat args } {
set rpath /lib:$tmpdir
set exportflag " -Wl,-bexpall"
}
- if ![ld_link $CC_FOR_TARGET $tmpdir/$progname "-Wl,-rpath,$rpath $tmpdir/$main $tmpdir/$progname.so $exportflag"] {
+ if ![ld_link $CC_FOR_TARGET $tmpdir/$progname "-Wl,-rpath,$rpath $ldflags $tmpdir/$main $tmpdir/$progname.so $exportflag"] {
if { [ string match $visibility "hidden" ]
&& [regexp "undefined reference to \`\.?visibility\'" $link_output]
&& [regexp "undefined reference to \`visibility_var\'" $link_output] } {
@@ -235,6 +236,7 @@ proc visibility_run {visibility} {
global shared_needs_pic
global PLT_CFLAGS
global NOPIE_CFLAGS
+ global NOPIE_LDFLAGS
global COMPRESS_LDFLAG
global NOSANITIZE_CFLAGS
global NOLTO_CFLAGS
@@ -284,7 +286,7 @@ proc visibility_run {visibility} {
} else {
# Compile the main program. Make sure that PLT is used since PLT
# is expected.
- if ![ld_compile "$CC_FOR_TARGET -g $PLT_CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" $srcdir/$subdir/main.c $tmpdir/mainnp.o] {
+ if ![ld_compile "$CC_FOR_TARGET -g $NOPIE_CFLAGS $PLT_CFLAGS $SHCFLAG $VSBCFLAG $NOSANITIZE_CFLAGS $NOLTO_CFLAGS" $srcdir/$subdir/main.c $tmpdir/mainnp.o] {
unsupported "visibility ($visibility) (non PIC)"
unsupported "visibility ($visibility)"
} else {
@@ -343,7 +345,7 @@ proc visibility_run {visibility} {
setup_xfail "*-*-beos*"
}
- visibility_test $visibility vnp "visibility ($visibility) (non PIC)" mainnp.o sh1np.o sh2np.o $datfile
+ visibility_test $visibility vnp "visibility ($visibility) (non PIC)" mainnp.o sh1np.o sh2np.o $datfile "" $NOPIE_LDFLAGS
# Test ELF shared library relocations with a non-zero load
# address for the library. Near as I can tell, the R_*_RELATIVE
@@ -395,7 +397,7 @@ proc visibility_run {visibility} {
if { ![is_xcoff_format] } {
visibility_test $visibility vnp "visibility ($visibility) (non PIC, load offset)" \
mainnp.o sh1np.o sh2np.o $datfile \
- "-Wl,-T,$srcdir/$subdir/elf-offset.ld,--hash-style=sysv"
+ "-Wl,-T,$srcdir/$subdir/elf-offset.ld,--hash-style=sysv" $NOPIE_LDFLAGS
}
}
@@ -411,7 +413,7 @@ proc visibility_run {visibility} {
setup_xfail $target_triplet
}
}
- visibility_test $visibility vp "visibility ($visibility)" mainnp.o sh1p.o sh2p.o $datfile $COMPRESS_LDFLAG
+ visibility_test $visibility vp "visibility ($visibility)" mainnp.o sh1p.o sh2p.o $datfile $COMPRESS_LDFLAG $NOPIE_LDFLAGS
}
}}
@@ -466,7 +468,7 @@ proc visibility_run {visibility} {
setup_xfail "*-*-beos*"
}
- visibility_test $visibility vmpnp "visibility ($visibility) (PIC main, non PIC so)" mainp.o sh1np.o sh2np.o $datfile
+ visibility_test $visibility vmpnp "visibility ($visibility) (PIC main, non PIC so)" mainp.o sh1np.o sh2np.o $datfile "" $NOPIE_LDFLAGS
} else {
unsupported "visibility (PIC main, non PIC so)"
}
@@ -488,7 +490,7 @@ proc visibility_run {visibility} {
setup_xfail "*-*-beos*"
}
- visibility_test $visibility vmpp "visibility ($visibility) (PIC main)" mainp.o sh1p.o sh2p.o $datfile
+ visibility_test $visibility vmpp "visibility ($visibility) (PIC main)" mainp.o sh1p.o sh2p.o $datfile "" $NOPIE_LDFLAGS
} else {
unsupported "visibility ($visibility) (PIC main)"
}
diff --git a/ld/testsuite/ld-x86-64/apx-load1.s b/ld/testsuite/ld-x86-64/apx-load1.s
index 7cd39f6..5877702 100644
--- a/ld/testsuite/ld-x86-64/apx-load1.s
+++ b/ld/testsuite/ld-x86-64/apx-load1.s
@@ -118,5 +118,11 @@ _start:
sub %rbp, bar@GOTPCREL(%rip), %r21
xor %rsi, bar@GOTPCREL(%rip), %r22
+ imul bar@GOTPCREL(%rip), %r17
+ {nf} imul bar@GOTPCREL(%rip), %r17
+ imul bar@GOTPCREL(%rip), %r17, %rdx
+ imul bar@GOTPCREL(%rip), %rcx, %r18
+ {rex2} pushq bar@GOTPCREL(%rip)
+
.size _start, .-_start
.p2align 12, 0x90
diff --git a/ld/testsuite/ld-x86-64/apx-load1a.d b/ld/testsuite/ld-x86-64/apx-load1a.d
index 83d4cd2..87ec931 100644
--- a/ld/testsuite/ld-x86-64/apx-load1a.d
+++ b/ld/testsuite/ld-x86-64/apx-load1a.d
@@ -115,4 +115,9 @@ Disassembly of section .text:
+[a-f0-9]+: 62 f4 dc 10 19 25 74 0c 20 00 sbb %rsp,0x200c74\(%rip\),%r20 # 602000 <.*>
+[a-f0-9]+: 62 f4 d4 10 29 2d 6a 0c 20 00 sub %rbp,0x200c6a\(%rip\),%r21 # 602000 <.*>
+[a-f0-9]+: 62 f4 cc 10 81 f6 20 20 60 00 xor \$0x602020,%rsi,%r22
+ +[a-f0-9]+: d5 58 69 c9 20 20 60 00 imul \$0x602020,%r17,%r17
+ +[a-f0-9]+: 62 ec fc 0c 69 c9 20 20 60 00 \{nf\} imul \$0x602020,%r17,%r17
+ +[a-f0-9]+: 62 fc fc 08 69 d1 20 20 60 00 imul \$0x602020,%r17,%rdx
+ +[a-f0-9]+: 62 e4 fc 08 69 d1 20 20 60 00 imul \$0x602020,%rcx,%r18
+ +[a-f0-9]+: 2e d5 00 68 20 20 60 00 cs \{rex2 0x0\} push \$0x602020
#pass
diff --git a/ld/testsuite/ld-x86-64/apx-load1c.d b/ld/testsuite/ld-x86-64/apx-load1c.d
index 2f80337..68cda54 100644
--- a/ld/testsuite/ld-x86-64/apx-load1c.d
+++ b/ld/testsuite/ld-x86-64/apx-load1c.d
@@ -108,4 +108,9 @@ Disassembly of section .text:
+[a-f0-9]+: 62 f4 dc 10 19 25 54 0d 20 00 sbb %rsp,0x200d54\(%rip\),%r20 # 2020e0 <.*>
+[a-f0-9]+: 62 f4 d4 10 29 2d 4a 0d 20 00 sub %rbp,0x200d4a\(%rip\),%r21 # 2020e0 <.*>
+[a-f0-9]+: 62 f4 cc 10 31 35 40 0d 20 00 xor %rsi,0x200d40\(%rip\),%r22 # 2020e0 <.*>
+ +[a-f0-9]+: d5 c8 af 0d 38 0d 20 00 imul 0x200d38\(%rip\),%r17 # 2020e0 <.*>
+ +[a-f0-9]+: 62 e4 fc 0c af 0d 2e 0d 20 00 \{nf\} imul 0x200d2e\(%rip\),%r17 # 2020e0 <.*>
+ +[a-f0-9]+: 62 e4 ec 18 af 0d 24 0d 20 00 imul 0x200d24\(%rip\),%r17,%rdx # 2020e0 <.*>
+ +[a-f0-9]+: 62 f4 ec 10 af 0d 1a 0d 20 00 imul 0x200d1a\(%rip\),%rcx,%r18 # 2020e0 <.*>
+ +[a-f0-9]+: d5 00 ff 35 12 0d 20 00 \{rex2 0x0\} push 0x200d12\(%rip\) # 2020e0 <.*>
#pass
diff --git a/ld/testsuite/ld-x86-64/apx-load1d.d b/ld/testsuite/ld-x86-64/apx-load1d.d
index 648368f..cc0cf92 100644
--- a/ld/testsuite/ld-x86-64/apx-load1d.d
+++ b/ld/testsuite/ld-x86-64/apx-load1d.d
@@ -108,4 +108,9 @@ Disassembly of section .text:
+[a-f0-9]+: 62 f4 dc 10 19 25 e4 0c 20 00 sbb %rsp,0x200ce4\(%rip\),%r20 # 202070 <.*>
+[a-f0-9]+: 62 f4 d4 10 29 2d da 0c 20 00 sub %rbp,0x200cda\(%rip\),%r21 # 202070 <.*>
+[a-f0-9]+: 62 f4 cc 10 31 35 d0 0c 20 00 xor %rsi,0x200cd0\(%rip\),%r22 # 202070 <.*>
+ +[a-f0-9]+: d5 c8 af 0d c8 0c 20 00 imul 0x200cc8\(%rip\),%r17 # 202070 <.*>
+ +[a-f0-9]+: 62 e4 fc 0c af 0d be 0c 20 00 \{nf\} imul 0x200cbe\(%rip\),%r17 # 202070 <.*>
+ +[a-f0-9]+: 62 e4 ec 18 af 0d b4 0c 20 00 imul 0x200cb4\(%rip\),%r17,%rdx # 202070 <.*>
+ +[a-f0-9]+: 62 f4 ec 10 af 0d aa 0c 20 00 imul 0x200caa\(%rip\),%rcx,%r18 # 202070 <.*>
+ +[a-f0-9]+: d5 00 ff 35 a2 0c 20 00 \{rex2 0x0\} push 0x200ca2\(%rip\) # 202070 <.*>
#pass
diff --git a/ld/testsuite/ld-x86-64/dwarf4.s b/ld/testsuite/ld-x86-64/dwarf4.s
new file mode 100644
index 0000000..7f1a90d
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/dwarf4.s
@@ -0,0 +1,346 @@
+/* Assembly outputs of
+
+extern void bar();
+
+void foo(int p) {
+ int local = p;
+ bar();
+ local = 123;
+ bar();
+ local = 456;
+}
+
+compiled by GCC 14.2.1 with -O2 -g -dA -gdwarf-4. */
+
+ .file "dwarf4.c"
+ .text
+.Ltext0:
+ .file 1 "dwarf4.c"
+ .p2align 4
+ .globl foo
+ .type foo, @function
+foo:
+.LVL0:
+ # DEBUG p => di
+.LFB0:
+ # dwarf4.c:3:17
+ .loc 1 3 17 view -0
+ .cfi_startproc
+# BLOCK 2, count:1073741824 (estimated locally) seq:0
+# PRED: ENTRY [always] count:1073741824 (estimated locally, freq 1.0000) (FALLTHRU)
+ # dwarf4.c:4:3
+ .loc 1 4 3 view .LVU1
+ # DEBUG local => di
+ # dwarf4.c:5:3
+ .loc 1 5 3 view .LVU2
+ # dwarf4.c:3:17
+ .loc 1 3 17 is_stmt 0 view .LVU3
+ subq $8, %rsp
+ .cfi_def_cfa_offset 16
+ # dwarf4.c:5:3
+ .loc 1 5 3 view .LVU4
+ xorl %eax, %eax
+ call bar
+.LVL1:
+ # DEBUG local => entry_value#0
+ # DEBUG p => entry_value#0
+ # dwarf4.c:6:3
+ .loc 1 6 3 is_stmt 1 view .LVU5
+ # DEBUG local => 0x7b
+ # dwarf4.c:7:3
+ .loc 1 7 3 view .LVU6
+ xorl %eax, %eax
+ # dwarf4.c:9:1
+ .loc 1 9 1 is_stmt 0 view .LVU7
+ addq $8, %rsp
+ .cfi_def_cfa_offset 8
+# SUCC: EXIT [always] count:1073741824 (estimated locally, freq 1.0000) (ABNORMAL,SIBCALL)
+ # dwarf4.c:7:3
+ .loc 1 7 3 view .LVU8
+ jmp bar
+.LVL2:
+ .cfi_endproc
+.LFE0:
+ .size foo, .-foo
+.Letext0:
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .long 0x9e # Length of Compilation Unit Info
+ .value 0x4 # DWARF version number
+ .long .Ldebug_abbrev0 # Offset Into Abbrev. Section
+ .byte 0x8 # Pointer Size (in bytes)
+ .uleb128 0x1 # (DIE (0xb) DW_TAG_compile_unit)
+ .long .LASF0 # DW_AT_producer: "GNU C17 14.2.1 20240906 [releases/gcc-14 r14-10649-gaedf6f810ee] -mtune=generic -march=x86-64 -g -gdwarf-4 -O2"
+ .byte 0xc # DW_AT_language
+ .long .LASF1 # DW_AT_name: "dwarf4.c"
+ .long .LASF2 # DW_AT_comp_dir: "."
+ .quad .Ltext0 # DW_AT_low_pc
+ .quad .Letext0-.Ltext0 # DW_AT_high_pc
+ .long .Ldebug_line0 # DW_AT_stmt_list
+ .uleb128 0x2 # (DIE (0x2d) DW_TAG_subprogram)
+ # DW_AT_external
+ .ascii "bar\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (dwarf4.c)
+ .byte 0x1 # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ # DW_AT_declaration
+ .long 0x3b # DW_AT_sibling
+ .uleb128 0x3 # (DIE (0x39) DW_TAG_unspecified_parameters)
+ .byte 0 # end of children of DIE 0x2d
+ .uleb128 0x4 # (DIE (0x3b) DW_TAG_subprogram)
+ # DW_AT_external
+ .ascii "foo\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (dwarf4.c)
+ .byte 0x3 # DW_AT_decl_line
+ .byte 0x6 # DW_AT_decl_column
+ # DW_AT_prototyped
+ .quad .LFB0 # DW_AT_low_pc
+ .quad .LFE0-.LFB0 # DW_AT_high_pc
+ .uleb128 0x1 # DW_AT_frame_base
+ .byte 0x9c # DW_OP_call_frame_cfa
+ # DW_AT_GNU_all_call_sites
+ .long 0x9a # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x59) DW_TAG_formal_parameter)
+ .ascii "p\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (dwarf4.c)
+ .byte 0x3 # DW_AT_decl_line
+ .byte 0xe # DW_AT_decl_column
+ .long 0x9a # DW_AT_type
+ .long .LLST0 # DW_AT_location
+ .long .LVUS0 # DW_AT_GNU_locviews
+ .uleb128 0x6 # (DIE (0x6b) DW_TAG_variable)
+ .long .LASF3 # DW_AT_name: "local"
+ .byte 0x1 # DW_AT_decl_file (dwarf4.c)
+ .byte 0x4 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x9a # DW_AT_type
+ .long .LLST1 # DW_AT_location
+ .long .LVUS1 # DW_AT_GNU_locviews
+ .uleb128 0x7 # (DIE (0x7f) DW_TAG_GNU_call_site)
+ .quad .LVL1 # DW_AT_low_pc
+ .long 0x2d # DW_AT_abstract_origin
+ .uleb128 0x8 # (DIE (0x8c) DW_TAG_GNU_call_site)
+ .quad .LVL2 # DW_AT_low_pc
+ # DW_AT_GNU_tail_call
+ .long 0x2d # DW_AT_abstract_origin
+ .byte 0 # end of children of DIE 0x3b
+ .uleb128 0x9 # (DIE (0x9a) DW_TAG_base_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .ascii "int\0" # DW_AT_name
+ .byte 0 # end of children of DIE 0xb
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .uleb128 0x1 # (abbrev code)
+ .uleb128 0x11 # (TAG: DW_TAG_compile_unit)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x25 # (DW_AT_producer)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x13 # (DW_AT_language)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x1b # (DW_AT_comp_dir)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x10 # (DW_AT_stmt_list)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0x2 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x3 # (abbrev code)
+ .uleb128 0x18 # (TAG: DW_TAG_unspecified_parameters)
+ .byte 0 # DW_children_no
+ .byte 0
+ .byte 0
+ .uleb128 0x4 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x27 # (DW_AT_prototyped)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x40 # (DW_AT_frame_base)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x5 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x2137 # (DW_AT_GNU_locviews)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0x6 # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x2137 # (DW_AT_GNU_locviews)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0x7 # (abbrev code)
+ .uleb128 0x4109 # (TAG: DW_TAG_GNU_call_site)
+ .byte 0 # DW_children_no
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x8 # (abbrev code)
+ .uleb128 0x4109 # (TAG: DW_TAG_GNU_call_site)
+ .byte 0 # DW_children_no
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x2115 # (DW_AT_GNU_tail_call)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x31 # (DW_AT_abstract_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x9 # (abbrev code)
+ .uleb128 0x24 # (TAG: DW_TAG_base_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3e # (DW_AT_encoding)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_loc,"",@progbits
+.Ldebug_loc0:
+.LVUS0:
+ .uleb128 0 # View list begin (*.LVUS0)
+ .uleb128 .LVU5 # View list end (*.LVUS0)
+ .uleb128 .LVU5 # View list begin (*.LVUS0)
+ .uleb128 0 # View list end (*.LVUS0)
+.LLST0:
+ .quad .LVL0-.Ltext0 # Location list begin address (*.LLST0)
+ .quad .LVL1-1-.Ltext0 # Location list end address (*.LLST0)
+ .value 0x1 # Location expression size
+ .byte 0x55 # DW_OP_reg5
+ .quad .LVL1-1-.Ltext0 # Location list begin address (*.LLST0)
+ .quad .LFE0-.Ltext0 # Location list end address (*.LLST0)
+ .value 0x4 # Location expression size
+ .byte 0xf3 # DW_OP_GNU_entry_value
+ .uleb128 0x1
+ .byte 0x55 # DW_OP_reg5
+ .byte 0x9f # DW_OP_stack_value
+ .quad 0 # Location list terminator begin (*.LLST0)
+ .quad 0 # Location list terminator end (*.LLST0)
+.LVUS1:
+ .uleb128 .LVU2 # View list begin (*.LVUS1)
+ .uleb128 .LVU5 # View list end (*.LVUS1)
+ .uleb128 .LVU5 # View list begin (*.LVUS1)
+ .uleb128 .LVU6 # View list end (*.LVUS1)
+ .uleb128 .LVU6 # View list begin (*.LVUS1)
+ .uleb128 0 # View list end (*.LVUS1)
+.LLST1:
+ .quad .LVL0-.Ltext0 # Location list begin address (*.LLST1)
+ .quad .LVL1-1-.Ltext0 # Location list end address (*.LLST1)
+ .value 0x1 # Location expression size
+ .byte 0x55 # DW_OP_reg5
+ .quad .LVL1-1-.Ltext0 # Location list begin address (*.LLST1)
+ .quad .LVL1-.Ltext0 # Location list end address (*.LLST1)
+ .value 0x4 # Location expression size
+ .byte 0xf3 # DW_OP_GNU_entry_value
+ .uleb128 0x1
+ .byte 0x55 # DW_OP_reg5
+ .byte 0x9f # DW_OP_stack_value
+ .quad .LVL1-.Ltext0 # Location list begin address (*.LLST1)
+ .quad .LFE0-.Ltext0 # Location list end address (*.LLST1)
+ .value 0x3 # Location expression size
+ .byte 0x8 # DW_OP_const1u
+ .byte 0x7b
+ .byte 0x9f # DW_OP_stack_value
+ .quad 0 # Location list terminator begin (*.LLST1)
+ .quad 0 # Location list terminator end (*.LLST1)
+ .section .debug_aranges,"",@progbits
+ .long 0x2c # Length of Address Ranges Info
+ .value 0x2 # DWARF aranges version
+ .long .Ldebug_info0 # Offset of Compilation Unit Info
+ .byte 0x8 # Size of Address
+ .byte 0 # Size of Segment Descriptor
+ .value 0 # Pad to 16 byte boundary
+ .value 0
+ .quad .Ltext0 # Address
+ .quad .Letext0-.Ltext0 # Length
+ .quad 0
+ .quad 0
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF0:
+ .string "GNU C17 14.2.1 20240906 [releases/gcc-14 r14-10649-gaedf6f810ee] -mtune=generic -march=x86-64 -g -gdwarf-4 -O2"
+.LASF1:
+ .string "dwarf4.c"
+.LASF3:
+ .string "local"
+.LASF2:
+ .string "."
+ .ident "GCC: (GNU) 14.2.1 20240906 [releases/gcc-14 r14-10649-gaedf6f810ee]"
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/dwarf5a.s b/ld/testsuite/ld-x86-64/dwarf5a.s
new file mode 100644
index 0000000..eefaaf4
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/dwarf5a.s
@@ -0,0 +1,400 @@
+/* Assembly outputs of
+
+extern void foo(int);
+
+int global;
+
+int main() {
+ int local = global;
+ foo(1);
+ local = 123;
+ foo(2);
+ local = 456;
+ return 0;
+}
+
+compiled by GCC 14.2.1 with -O2 -g -dA -gdwarf-5. */
+
+ .file "dwarf5a.c"
+ .text
+.Ltext0:
+ .file 0 "." "dwarf5a.c"
+ .section .text.startup,"ax",@progbits
+ .p2align 4
+ .globl main
+ .type main, @function
+main:
+.LFB0:
+ .file 1 "dwarf5a.c"
+ # dwarf5a.c:5:12
+ .loc 1 5 12 view -0
+ .cfi_startproc
+# BLOCK 2, count:1073741824 (estimated locally) seq:0
+# PRED: ENTRY [always] count:1073741824 (estimated locally, freq 1.0000) (FALLTHRU)
+ # dwarf5a.c:6:3
+ .loc 1 6 3 view .LVU1
+.LVL0:
+ # DEBUG local => [`global']
+ # dwarf5a.c:7:3
+ .loc 1 7 3 view .LVU2
+ # dwarf5a.c:5:12
+ .loc 1 5 12 is_stmt 0 view .LVU3
+ subq $8, %rsp
+ .cfi_def_cfa_offset 16
+ # dwarf5a.c:7:3
+ .loc 1 7 3 view .LVU4
+ movl $1, %edi
+ call foo
+.LVL1:
+ # DEBUG local RESET
+ # dwarf5a.c:8:3
+ .loc 1 8 3 is_stmt 1 view .LVU5
+ # DEBUG local => 0x7b
+ # dwarf5a.c:9:3
+ .loc 1 9 3 view .LVU6
+ movl $2, %edi
+ call foo
+.LVL2:
+ # dwarf5a.c:10:3
+ .loc 1 10 3 view .LVU7
+ # DEBUG local => 0x1c8
+ # dwarf5a.c:11:3
+ .loc 1 11 3 view .LVU8
+ # dwarf5a.c:12:1
+ .loc 1 12 1 is_stmt 0 view .LVU9
+ xorl %eax, %eax
+ addq $8, %rsp
+ .cfi_def_cfa_offset 8
+# SUCC: EXIT [always] count:1073741824 (estimated locally, freq 1.0000)
+ ret
+ .cfi_endproc
+.LFE0:
+ .size main, .-main
+ .globl global
+ .bss
+ .align 4
+ .type global, @object
+ .size global, 4
+global:
+ .zero 4
+ .text
+.Letext0:
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .long 0xb3 # Length of Compilation Unit Info
+ .value 0x5 # DWARF version number
+ .byte 0x1 # DW_UT_compile
+ .byte 0x8 # Pointer Size (in bytes)
+ .long .Ldebug_abbrev0 # Offset Into Abbrev. Section
+ .uleb128 0x2 # (DIE (0xc) DW_TAG_compile_unit)
+ .long .LASF4 # DW_AT_producer: "GNU C17 14.2.1 20240906 [releases/gcc-14 r14-10649-gaedf6f810ee] -mtune=generic -march=x86-64 -g -gdwarf-5 -O2"
+ .byte 0x1d # DW_AT_language
+ .long .LASF0 # DW_AT_name: "dwarf5a.c"
+ .long .LASF1 # DW_AT_comp_dir: "."
+ .long .LLRL1 # DW_AT_ranges
+ .quad 0 # DW_AT_low_pc
+ .long .Ldebug_line0 # DW_AT_stmt_list
+ .uleb128 0x3 # (DIE (0x2a) DW_TAG_variable)
+ .long .LASF2 # DW_AT_name: "global"
+ .byte 0x1 # DW_AT_decl_file (dwarf5a.c)
+ .byte 0x3 # DW_AT_decl_line
+ .byte 0x5 # DW_AT_decl_column
+ .long 0x40 # DW_AT_type
+ # DW_AT_external
+ .uleb128 0x9 # DW_AT_location
+ .byte 0x3 # DW_OP_addr
+ .quad global
+ .uleb128 0x4 # (DIE (0x40) DW_TAG_base_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .ascii "int\0" # DW_AT_name
+ .uleb128 0x5 # (DIE (0x47) DW_TAG_subprogram)
+ # DW_AT_external
+ .ascii "foo\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (dwarf5a.c)
+ .byte 0x1 # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ # DW_AT_prototyped
+ # DW_AT_declaration
+ .long 0x59 # DW_AT_sibling
+ .uleb128 0x6 # (DIE (0x53) DW_TAG_formal_parameter)
+ .long 0x40 # DW_AT_type
+ .byte 0 # end of children of DIE 0x47
+ .uleb128 0x7 # (DIE (0x59) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF5 # DW_AT_name: "main"
+ .byte 0x1 # DW_AT_decl_file (dwarf5a.c)
+ .byte 0x5 # DW_AT_decl_line
+ .byte 0x5 # DW_AT_decl_column
+ .long 0x40 # DW_AT_type
+ .quad .LFB0 # DW_AT_low_pc
+ .quad .LFE0-.LFB0 # DW_AT_high_pc
+ .uleb128 0x1 # DW_AT_frame_base
+ .byte 0x9c # DW_OP_call_frame_cfa
+ # DW_AT_call_all_calls
+ .uleb128 0x8 # (DIE (0x77) DW_TAG_variable)
+ .long .LASF3 # DW_AT_name: "local"
+ .byte 0x1 # DW_AT_decl_file (dwarf5a.c)
+ .byte 0x6 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x40 # DW_AT_type
+ .long .LLST0 # DW_AT_location
+ .long .LVUS0 # DW_AT_GNU_locviews
+ .uleb128 0x9 # (DIE (0x8b) DW_TAG_call_site)
+ .quad .LVL1 # DW_AT_call_return_pc
+ .long 0x47 # DW_AT_call_origin
+ .long 0xa2 # DW_AT_sibling
+ .uleb128 0x1 # (DIE (0x9c) DW_TAG_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x1 # DW_AT_call_value
+ .byte 0x31 # DW_OP_lit1
+ .byte 0 # end of children of DIE 0x8b
+ .uleb128 0xa # (DIE (0xa2) DW_TAG_call_site)
+ .quad .LVL2 # DW_AT_call_return_pc
+ .long 0x47 # DW_AT_call_origin
+ .uleb128 0x1 # (DIE (0xaf) DW_TAG_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x1 # DW_AT_call_value
+ .byte 0x32 # DW_OP_lit2
+ .byte 0 # end of children of DIE 0xa2
+ .byte 0 # end of children of DIE 0x59
+ .byte 0 # end of children of DIE 0xc
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .uleb128 0x1 # (abbrev code)
+ .uleb128 0x49 # (TAG: DW_TAG_call_site_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .uleb128 0x7e # (DW_AT_call_value)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .byte 0
+ .byte 0
+ .uleb128 0x2 # (abbrev code)
+ .uleb128 0x11 # (TAG: DW_TAG_compile_unit)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x25 # (DW_AT_producer)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x13 # (DW_AT_language)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x1f # (DW_FORM_line_strp)
+ .uleb128 0x1b # (DW_AT_comp_dir)
+ .uleb128 0x1f # (DW_FORM_line_strp)
+ .uleb128 0x55 # (DW_AT_ranges)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x10 # (DW_AT_stmt_list)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0x3 # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .byte 0
+ .byte 0
+ .uleb128 0x4 # (abbrev code)
+ .uleb128 0x24 # (TAG: DW_TAG_base_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3e # (DW_AT_encoding)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .byte 0
+ .byte 0
+ .uleb128 0x5 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x27 # (DW_AT_prototyped)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x6 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x7 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x40 # (DW_AT_frame_base)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .uleb128 0x7a # (DW_AT_call_all_calls)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x8 # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x2137 # (DW_AT_GNU_locviews)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0x9 # (abbrev code)
+ .uleb128 0x48 # (TAG: DW_TAG_call_site)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x7d # (DW_AT_call_return_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x7f # (DW_AT_call_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0xa # (abbrev code)
+ .uleb128 0x48 # (TAG: DW_TAG_call_site)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x7d # (DW_AT_call_return_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x7f # (DW_AT_call_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_loclists,"",@progbits
+ .long .Ldebug_loc3-.Ldebug_loc2 # Length of Location Lists
+.Ldebug_loc2:
+ .value 0x5 # DWARF version number
+ .byte 0x8 # Address Size
+ .byte 0 # Segment Size
+ .long 0 # Offset Entry Count
+.Ldebug_loc0:
+.LVUS0:
+ .uleb128 .LVU2 # View list begin (*.LVUS0)
+ .uleb128 .LVU5 # View list end (*.LVUS0)
+ .uleb128 .LVU6 # View list begin (*.LVUS0)
+ .uleb128 .LVU8 # View list end (*.LVUS0)
+ .uleb128 .LVU8 # View list begin (*.LVUS0)
+ .uleb128 0 # View list end (*.LVUS0)
+.LLST0:
+ .byte 0x6 # DW_LLE_base_address (*.LLST0)
+ .quad .LVL0 # Base address (*.LLST0)
+ .byte 0x4 # DW_LLE_offset_pair (*.LLST0)
+ .uleb128 .LVL0-.LVL0 # Location list begin address (*.LLST0)
+ .uleb128 .LVL1-1-.LVL0 # Location list end address (*.LLST0)
+ .uleb128 0x9 # Location expression size
+ .byte 0x3 # DW_OP_addr
+ .quad global
+ .byte 0x4 # DW_LLE_offset_pair (*.LLST0)
+ .uleb128 .LVL1-.LVL0 # Location list begin address (*.LLST0)
+ .uleb128 .LVL2-.LVL0 # Location list end address (*.LLST0)
+ .uleb128 0x3 # Location expression size
+ .byte 0x8 # DW_OP_const1u
+ .byte 0x7b
+ .byte 0x9f # DW_OP_stack_value
+ .byte 0x4 # DW_LLE_offset_pair (*.LLST0)
+ .uleb128 .LVL2-.LVL0 # Location list begin address (*.LLST0)
+ .uleb128 .LFE0-.LVL0 # Location list end address (*.LLST0)
+ .uleb128 0x4 # Location expression size
+ .byte 0xa # DW_OP_const2u
+ .value 0x1c8
+ .byte 0x9f # DW_OP_stack_value
+ .byte 0 # DW_LLE_end_of_list (*.LLST0)
+.Ldebug_loc3:
+ .section .debug_aranges,"",@progbits
+ .long 0x2c # Length of Address Ranges Info
+ .value 0x2 # DWARF aranges version
+ .long .Ldebug_info0 # Offset of Compilation Unit Info
+ .byte 0x8 # Size of Address
+ .byte 0 # Size of Segment Descriptor
+ .value 0 # Pad to 16 byte boundary
+ .value 0
+ .quad .LFB0 # Address
+ .quad .LFE0-.LFB0 # Length
+ .quad 0
+ .quad 0
+ .section .debug_rnglists,"",@progbits
+.Ldebug_ranges0:
+ .long .Ldebug_ranges3-.Ldebug_ranges2 # Length of Range Lists
+.Ldebug_ranges2:
+ .value 0x5 # DWARF version number
+ .byte 0x8 # Address Size
+ .byte 0 # Segment Size
+ .long 0 # Offset Entry Count
+.LLRL1:
+ .byte 0x7 # DW_RLE_start_length (*.LLRL1)
+ .quad .LFB0 # Range begin address (*.LLRL1)
+ .uleb128 .LFE0-.LFB0 # Range length (*.LLRL1)
+ .byte 0 # DW_RLE_end_of_list (*.LLRL1)
+.Ldebug_ranges3:
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF3:
+ .string "local"
+.LASF4:
+ .string "GNU C17 14.2.1 20240906 [releases/gcc-14 r14-10649-gaedf6f810ee] -mtune=generic -march=x86-64 -g -gdwarf-5 -O2"
+.LASF2:
+ .string "global"
+.LASF5:
+ .string "main"
+ .section .debug_line_str,"MS",@progbits,1
+.LASF0:
+ .string "dwarf5a.c"
+.LASF1:
+ .string "."
+ .ident "GCC: (GNU) 14.2.1 20240906 [releases/gcc-14 r14-10649-gaedf6f810ee]"
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/dwarf5b.s b/ld/testsuite/ld-x86-64/dwarf5b.s
new file mode 100644
index 0000000..4d34469
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/dwarf5b.s
@@ -0,0 +1,345 @@
+/* Assembly outputs of
+
+extern void foo(int);
+
+extern int global;
+
+void
+bar (void)
+{
+ int local = global;
+ foo(local);
+ local = 123;
+ foo(local);
+ local = 456;
+}
+
+compiled by GCC 14.2.1 with -O2 -g -dA -gdwarf-5. */
+
+ .file "dwarf5b.c"
+ .text
+.Ltext0:
+ .file 0 "." "dwarf5b.c"
+ .p2align 4
+ .globl bar
+ .type bar, @function
+bar:
+.LFB0:
+ .file 1 "dwarf5b.c"
+ # dwarf5b.c:7:1
+ .loc 1 7 1 view -0
+ .cfi_startproc
+# BLOCK 2, count:1073741824 (estimated locally) seq:0
+# PRED: ENTRY [always] count:1073741824 (estimated locally, freq 1.0000) (FALLTHRU)
+ # dwarf5b.c:8:3
+ .loc 1 8 3 view .LVU1
+.LVL0:
+ # DEBUG local => [`global']
+ # dwarf5b.c:9:3
+ .loc 1 9 3 view .LVU2
+ # dwarf5b.c:7:1
+ .loc 1 7 1 is_stmt 0 view .LVU3
+ subq $8, %rsp
+ .cfi_def_cfa_offset 16
+ # dwarf5b.c:9:3
+ .loc 1 9 3 view .LVU4
+ movl global(%rip), %edi
+ call foo
+.LVL1:
+ # DEBUG local RESET
+ # dwarf5b.c:10:3
+ .loc 1 10 3 is_stmt 1 view .LVU5
+ # DEBUG local => 0x7b
+ # dwarf5b.c:11:3
+ .loc 1 11 3 view .LVU6
+ movl $123, %edi
+ # dwarf5b.c:13:1
+ .loc 1 13 1 is_stmt 0 view .LVU7
+ addq $8, %rsp
+ .cfi_def_cfa_offset 8
+# SUCC: EXIT [always] count:1073741824 (estimated locally, freq 1.0000) (ABNORMAL,SIBCALL)
+ # dwarf5b.c:11:3
+ .loc 1 11 3 view .LVU8
+ jmp foo
+.LVL2:
+ .cfi_endproc
+.LFE0:
+ .size bar, .-bar
+.Letext0:
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .long 0xa0 # Length of Compilation Unit Info
+ .value 0x5 # DWARF version number
+ .byte 0x1 # DW_UT_compile
+ .byte 0x8 # Pointer Size (in bytes)
+ .long .Ldebug_abbrev0 # Offset Into Abbrev. Section
+ .uleb128 0x1 # (DIE (0xc) DW_TAG_compile_unit)
+ .long .LASF4 # DW_AT_producer: "GNU C17 14.2.1 20240906 [releases/gcc-14 r14-10649-gaedf6f810ee] -mtune=generic -march=x86-64 -g -gdwarf-5 -O2"
+ .byte 0x1d # DW_AT_language
+ .long .LASF0 # DW_AT_name: "dwarf5b.c"
+ .long .LASF1 # DW_AT_comp_dir: "."
+ .quad .Ltext0 # DW_AT_low_pc
+ .quad .Letext0-.Ltext0 # DW_AT_high_pc
+ .long .Ldebug_line0 # DW_AT_stmt_list
+ .uleb128 0x2 # (DIE (0x2e) DW_TAG_variable)
+ .long .LASF2 # DW_AT_name: "global"
+ .byte 0x1 # DW_AT_decl_file (dwarf5b.c)
+ .byte 0x3 # DW_AT_decl_line
+ .byte 0xc # DW_AT_decl_column
+ .long 0x3a # DW_AT_type
+ # DW_AT_external
+ # DW_AT_declaration
+ .uleb128 0x3 # (DIE (0x3a) DW_TAG_base_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .ascii "int\0" # DW_AT_name
+ .uleb128 0x4 # (DIE (0x41) DW_TAG_subprogram)
+ # DW_AT_external
+ .ascii "foo\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (dwarf5b.c)
+ .byte 0x1 # DW_AT_decl_line
+ .byte 0xd # DW_AT_decl_column
+ # DW_AT_prototyped
+ # DW_AT_declaration
+ .long 0x53 # DW_AT_sibling
+ .uleb128 0x5 # (DIE (0x4d) DW_TAG_formal_parameter)
+ .long 0x3a # DW_AT_type
+ .byte 0 # end of children of DIE 0x41
+ .uleb128 0x6 # (DIE (0x53) DW_TAG_subprogram)
+ # DW_AT_external
+ .ascii "bar\0" # DW_AT_name
+ .byte 0x1 # DW_AT_decl_file (dwarf5b.c)
+ .byte 0x6 # DW_AT_decl_line
+ .byte 0x1 # DW_AT_decl_column
+ # DW_AT_prototyped
+ .quad .LFB0 # DW_AT_low_pc
+ .quad .LFE0-.LFB0 # DW_AT_high_pc
+ .uleb128 0x1 # DW_AT_frame_base
+ .byte 0x9c # DW_OP_call_frame_cfa
+ # DW_AT_call_all_calls
+ .uleb128 0x7 # (DIE (0x6d) DW_TAG_variable)
+ .long .LASF3 # DW_AT_name: "local"
+ .byte 0x1 # DW_AT_decl_file (dwarf5b.c)
+ .byte 0x8 # DW_AT_decl_line
+ .byte 0x7 # DW_AT_decl_column
+ .long 0x3a # DW_AT_type
+ .long .LLST0 # DW_AT_location
+ .long .LVUS0 # DW_AT_GNU_locviews
+ .uleb128 0x8 # (DIE (0x81) DW_TAG_call_site)
+ .quad .LVL1 # DW_AT_call_return_pc
+ .long 0x41 # DW_AT_call_origin
+ .uleb128 0x9 # (DIE (0x8e) DW_TAG_call_site)
+ .quad .LVL2 # DW_AT_call_return_pc
+ # DW_AT_call_tail_call
+ .long 0x41 # DW_AT_call_origin
+ .uleb128 0xa # (DIE (0x9b) DW_TAG_call_site_parameter)
+ .uleb128 0x1 # DW_AT_location
+ .byte 0x55 # DW_OP_reg5
+ .uleb128 0x2 # DW_AT_call_value
+ .byte 0x8 # DW_OP_const1u
+ .byte 0x7b
+ .byte 0 # end of children of DIE 0x8e
+ .byte 0 # end of children of DIE 0x53
+ .byte 0 # end of children of DIE 0xc
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .uleb128 0x1 # (abbrev code)
+ .uleb128 0x11 # (TAG: DW_TAG_compile_unit)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x25 # (DW_AT_producer)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x13 # (DW_AT_language)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x1f # (DW_FORM_line_strp)
+ .uleb128 0x1b # (DW_AT_comp_dir)
+ .uleb128 0x1f # (DW_FORM_line_strp)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x10 # (DW_AT_stmt_list)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0x2 # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x3 # (abbrev code)
+ .uleb128 0x24 # (TAG: DW_TAG_base_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3e # (DW_AT_encoding)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .byte 0
+ .byte 0
+ .uleb128 0x4 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x27 # (DW_AT_prototyped)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3c # (DW_AT_declaration)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x1 # (DW_AT_sibling)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x5 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x6 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x27 # (DW_AT_prototyped)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x40 # (DW_AT_frame_base)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .uleb128 0x7a # (DW_AT_call_all_calls)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x7 # (abbrev code)
+ .uleb128 0x34 # (TAG: DW_TAG_variable)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x39 # (DW_AT_decl_column)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .uleb128 0x2137 # (DW_AT_GNU_locviews)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0x8 # (abbrev code)
+ .uleb128 0x48 # (TAG: DW_TAG_call_site)
+ .byte 0 # DW_children_no
+ .uleb128 0x7d # (DW_AT_call_return_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x7f # (DW_AT_call_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x9 # (abbrev code)
+ .uleb128 0x48 # (TAG: DW_TAG_call_site)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x7d # (DW_AT_call_return_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x82 # (DW_AT_call_tail_call)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x7f # (DW_AT_call_origin)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0xa # (abbrev code)
+ .uleb128 0x49 # (TAG: DW_TAG_call_site_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .uleb128 0x7e # (DW_AT_call_value)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_loclists,"",@progbits
+ .long .Ldebug_loc3-.Ldebug_loc2 # Length of Location Lists
+.Ldebug_loc2:
+ .value 0x5 # DWARF version number
+ .byte 0x8 # Address Size
+ .byte 0 # Segment Size
+ .long 0 # Offset Entry Count
+.Ldebug_loc0:
+.LVUS0:
+ .uleb128 .LVU6 # View list begin (*.LVUS0)
+ .uleb128 0 # View list end (*.LVUS0)
+.LLST0:
+ .byte 0x4 # DW_LLE_offset_pair (*.LLST0)
+ .uleb128 .LVL1-.Ltext0 # Location list begin address (*.LLST0)
+ .uleb128 .LFE0-.Ltext0 # Location list end address (*.LLST0)
+ .uleb128 0x3 # Location expression size
+ .byte 0x8 # DW_OP_const1u
+ .byte 0x7b
+ .byte 0x9f # DW_OP_stack_value
+ .byte 0 # DW_LLE_end_of_list (*.LLST0)
+.Ldebug_loc3:
+ .section .debug_aranges,"",@progbits
+ .long 0x2c # Length of Address Ranges Info
+ .value 0x2 # DWARF aranges version
+ .long .Ldebug_info0 # Offset of Compilation Unit Info
+ .byte 0x8 # Size of Address
+ .byte 0 # Size of Segment Descriptor
+ .value 0 # Pad to 16 byte boundary
+ .value 0
+ .quad .Ltext0 # Address
+ .quad .Letext0-.Ltext0 # Length
+ .quad 0
+ .quad 0
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF3:
+ .string "local"
+.LASF4:
+ .string "GNU C17 14.2.1 20240906 [releases/gcc-14 r14-10649-gaedf6f810ee] -mtune=generic -march=x86-64 -g -gdwarf-5 -O2"
+.LASF2:
+ .string "global"
+ .section .debug_line_str,"MS",@progbits,1
+.LASF1:
+ .string "."
+.LASF0:
+ .string "dwarf5b.c"
+ .ident "GCC: (GNU) 14.2.1 20240906 [releases/gcc-14 r14-10649-gaedf6f810ee]"
+ .section .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-x86-64/load3a.d b/ld/testsuite/ld-x86-64/load3a.d
index 0feee16..e932359 100644
--- a/ld/testsuite/ld-x86-64/load3a.d
+++ b/ld/testsuite/ld-x86-64/load3a.d
@@ -10,12 +10,12 @@ Disassembly of section .text:
#...
[a-f0-9]+ <_start>:
-[ ]*[a-f0-9]+: 26 26 c7 c0 ([0-9a-f]{2} ){4} * (es ){2}mov \$0x[a-f0-9]+,%eax
-[ ]*[a-f0-9]+: 26 26 41 c7 c3 ([0-9a-f]{2} ){4} * (es ){2}mov \$0x[a-f0-9]+,%r11d
-[ ]*[a-f0-9]+: 26 26 d5 10 c7 c5 ([0-9a-f]{2} ){4} * (es ){2}mov \$0x[a-f0-9]+,%r21d
-[ ]*[a-f0-9]+: 26 26 48 c7 c0 ([0-9a-f]{2} ){4} * (es ){2}mov \$0x[a-f0-9]+,%rax
-[ ]*[a-f0-9]+: 26 26 49 c7 c3 ([0-9a-f]{2} ){4} * (es ){2}mov \$0x[a-f0-9]+,%r11
-[ ]*[a-f0-9]+: 26 26 d5 18 c7 c5 ([0-9a-f]{2} ){4} * (es ){2}mov \$0x[a-f0-9]+,%r21
-[ ]*[a-f0-9]+: 26 26 48 c7 c0 ([0-9a-f]{2} ){4} * (es ){2}mov \$0x[a-f0-9]+,%rax
-[ ]*[a-f0-9]+: 26 26 49 c7 c3 ([0-9a-f]{2} ){4} * (es ){2}mov \$0x[a-f0-9]+,%r11
+[ ]*[a-f0-9]+: 2e 2e c7 c0 ([0-9a-f]{2} ){4} * (cs ){2}mov \$0x[a-f0-9]+,%eax
+[ ]*[a-f0-9]+: 2e 2e 41 c7 c3 ([0-9a-f]{2} ){4} * (cs ){2}mov \$0x[a-f0-9]+,%r11d
+[ ]*[a-f0-9]+: 2e 2e d5 10 c7 c5 ([0-9a-f]{2} ){4} * (cs ){2}mov \$0x[a-f0-9]+,%r21d
+[ ]*[a-f0-9]+: 2e 2e 48 c7 c0 ([0-9a-f]{2} ){4} * (cs ){2}mov \$0x[a-f0-9]+,%rax
+[ ]*[a-f0-9]+: 2e 2e 49 c7 c3 ([0-9a-f]{2} ){4} * (cs ){2}mov \$0x[a-f0-9]+,%r11
+[ ]*[a-f0-9]+: 2e 2e d5 18 c7 c5 ([0-9a-f]{2} ){4} * (cs ){2}mov \$0x[a-f0-9]+,%r21
+[ ]*[a-f0-9]+: 2e 2e 48 c7 c0 ([0-9a-f]{2} ){4} * (cs ){2}mov \$0x[a-f0-9]+,%rax
+[ ]*[a-f0-9]+: 2e 2e 49 c7 c3 ([0-9a-f]{2} ){4} * (cs ){2}mov \$0x[a-f0-9]+,%r11
#pass
diff --git a/ld/testsuite/ld-x86-64/load3b.d b/ld/testsuite/ld-x86-64/load3b.d
index f555fcb..d38f9e2 100644
--- a/ld/testsuite/ld-x86-64/load3b.d
+++ b/ld/testsuite/ld-x86-64/load3b.d
@@ -10,12 +10,12 @@ Disassembly of section .text:
#...
[a-f0-9]+ <_start>:
-[ ]*[a-f0-9]+: 26 26 8d 05 ([0-9a-f]{2} ){4} * (es ){2}lea -0x[a-f0-9]+\(%rip\),%eax # [a-f0-9]+ <foo>
-[ ]*[a-f0-9]+: 26 26 44 8d 1d ([0-9a-f]{2} ){4} * (es ){2}lea 0x[a-f0-9]+\(%rip\),%r11d # [a-f0-9]+ <bar>
-[ ]*[a-f0-9]+: 26 26 d5 40 8d 2d ([0-9a-f]{2} ){4} * (es ){2}lea 0x[a-f0-9]+\(%rip\),%r21d # [a-f0-9]+ <bar>
-[ ]*[a-f0-9]+: 26 26 48 8d 05 ([0-9a-f]{2} ){4} * (es ){2}lea -0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <foo>
-[ ]*[a-f0-9]+: 26 26 4c 8d 1d ([0-9a-f]{2} ){4} * (es ){2}lea 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <bar>
-[ ]*[a-f0-9]+: 26 26 d5 48 8d 2d ([0-9a-f]{2} ){4} * (es ){2}lea 0x[a-f0-9]+\(%rip\),%r21 # [a-f0-9]+ <bar>
-[ ]*[a-f0-9]+: 26 26 48 8d 05 ([0-9a-f]{2} ){4} * (es ){2}lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <__start_my_section>
-[ ]*[a-f0-9]+: 26 26 4c 8d 1d ([0-9a-f]{2} ){4} * (es ){2}lea 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <(__stop_my_section|pad)>
+[ ]*[a-f0-9]+: 2e 2e 8d 05 ([0-9a-f]{2} ){4} * (cs ){2}lea -0x[a-f0-9]+\(%rip\),%eax # [a-f0-9]+ <foo>
+[ ]*[a-f0-9]+: 2e 2e 44 8d 1d ([0-9a-f]{2} ){4} * (cs ){2}lea 0x[a-f0-9]+\(%rip\),%r11d # [a-f0-9]+ <bar>
+[ ]*[a-f0-9]+: 2e 2e d5 40 8d 2d ([0-9a-f]{2} ){4} * (cs ){2}lea 0x[a-f0-9]+\(%rip\),%r21d # [a-f0-9]+ <bar>
+[ ]*[a-f0-9]+: 2e 2e 48 8d 05 ([0-9a-f]{2} ){4} * (cs ){2}lea -0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <foo>
+[ ]*[a-f0-9]+: 2e 2e 4c 8d 1d ([0-9a-f]{2} ){4} * (cs ){2}lea 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <bar>
+[ ]*[a-f0-9]+: 2e 2e d5 48 8d 2d ([0-9a-f]{2} ){4} * (cs ){2}lea 0x[a-f0-9]+\(%rip\),%r21 # [a-f0-9]+ <bar>
+[ ]*[a-f0-9]+: 2e 2e 48 8d 05 ([0-9a-f]{2} ){4} * (cs ){2}lea 0x[a-f0-9]+\(%rip\),%rax # [a-f0-9]+ <__start_my_section>
+[ ]*[a-f0-9]+: 2e 2e 4c 8d 1d ([0-9a-f]{2} ){4} * (cs ){2}lea 0x[a-f0-9]+\(%rip\),%r11 # [a-f0-9]+ <(__stop_my_section|pad)>
#pass
diff --git a/ld/testsuite/ld-x86-64/load4.d b/ld/testsuite/ld-x86-64/load4.d
index 190205e..fc9c0c6 100644
--- a/ld/testsuite/ld-x86-64/load4.d
+++ b/ld/testsuite/ld-x86-64/load4.d
@@ -7,7 +7,10 @@
Disassembly of section .text:
0+4000b0 <_start>:
-[ ]*[a-f0-9]+: 12 05 ([0-9a-f]{2} ){4} * adc 0x[a-f0-9]+\(%rip\),%al # 6000c8 <.*>
-[ ]*[a-f0-9]+: 44 84 3d ([0-9a-f]{2} ){4} * test %r15b,0x[a-f0-9]+\(%rip\) # 6000c8 <.*>
-[ ]*[a-f0-9]+: 48 87 05 ([0-9a-f]{2} ){4} * xchg %rax,0x[a-f0-9]+\(%rip\) # 6000c8 <.*>
+[ ]*[a-f0-9]+: 12 05 ([0-9a-f]{2} ){4} * adc 0x[a-f0-9]+\(%rip\),%al # 6000e0 <.*>
+[ ]*[a-f0-9]+: 44 84 3d ([0-9a-f]{2} ){4} * test %r15b,0x[a-f0-9]+\(%rip\) # 6000e0 <.*>
+[ ]*[a-f0-9]+: 48 87 05 ([0-9a-f]{2} ){4} * xchg %rax,0x[a-f0-9]+\(%rip\) # 6000e0 <.*>
+[ ]*[a-f0-9]+: d5 c0 03 05 ([0-9a-f]{2} ){4} * lsl 0x[a-f0-9]+\(%rip\),%r16d # 6000e0 <.*>
+[ ]*[a-f0-9]+: d5 80 13 05 ([0-9a-f]{2} ){4} * \{rex2 0x80\} movlps %xmm0,0x[a-f0-9]+\(%rip\) # 6000e0 <.*>
+[ ]*[a-f0-9]+: d5 80 2b 05 ([0-9a-f]{2} ){4} * \{rex2 0x80\} movntps %xmm0,0x[a-f0-9]+\(%rip\) # 6000e0 <.*>
#pass
diff --git a/ld/testsuite/ld-x86-64/load4.s b/ld/testsuite/ld-x86-64/load4.s
index f3fa1b1..ab6f668 100644
--- a/ld/testsuite/ld-x86-64/load4.s
+++ b/ld/testsuite/ld-x86-64/load4.s
@@ -19,5 +19,11 @@ _start:
1: .reloc .-4, R_X86_64_REX_GOTPCRELX, bar-4
xchg 1f(%rip), %rax
1: .reloc .-4, R_X86_64_REX_GOTPCRELX, bar-4
+ lsl 1f(%rip), %r16d
+1: .reloc .-4, R_X86_64_CODE_4_GOTPCRELX, bar-4
+ {rex2} movlps %xmm0, 1f(%rip)
+1: .reloc .-4, R_X86_64_CODE_4_GOTPCRELX, bar-4
+ {rex2} movntps %xmm0, 1f(%rip)
+1: .reloc .-4, R_X86_64_CODE_4_GOTPCRELX, bar-4
.size _start, .-_start
diff --git a/ld/testsuite/ld-x86-64/load5.s b/ld/testsuite/ld-x86-64/load5.s
new file mode 100644
index 0000000..61f06e9
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/load5.s
@@ -0,0 +1,17 @@
+ .data
+ .type bar, @object
+bar:
+ .byte 1
+ .size bar, .-bar
+ .globl foo
+ .type foo, @object
+foo:
+ .byte 1
+ .size foo, .-foo
+ .text
+ .globl _start
+ .type _start, @function
+_start:
+ pushq bar@GOTPCREL(%rip)
+ {rex} pushq foo@GOTPCREL(%rip)
+ .size _start, .-_start
diff --git a/ld/testsuite/ld-x86-64/load5a.d b/ld/testsuite/ld-x86-64/load5a.d
new file mode 100644
index 0000000..ae58af7
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/load5a.d
@@ -0,0 +1,15 @@
+#source: load5.s
+#as: --64 -mrelax-relocations=yes
+#ld: -melf_x86_64
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+#...
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: 2e 68 ([0-9a-f]{2} ){4} * cs push \$0x[a-f0-9]+
+[ ]*[a-f0-9]+: 2e 40 68 ([0-9a-f]{2} ){4} * cs rex push \$0x[a-f0-9]+
+#pass
diff --git a/ld/testsuite/ld-x86-64/load5b.d b/ld/testsuite/ld-x86-64/load5b.d
new file mode 100644
index 0000000..3dd2d75
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/load5b.d
@@ -0,0 +1,15 @@
+#source: load5.s
+#as: --64 -mrelax-relocations=yes
+#ld: -shared -melf_x86_64
+#objdump: -dw
+
+.*: +file format .*
+
+
+Disassembly of section .text:
+
+#...
+[a-f0-9]+ <_start>:
+[ ]*[a-f0-9]+: ff 35 ([0-9a-f]{2} ){4} * push +0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*>
+[ ]*[a-f0-9]+: 40 ff 35 ([0-9a-f]{2} ){4} * rex push 0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.*>
+#pass
diff --git a/ld/testsuite/ld-x86-64/mark-plt-1a-x32.d b/ld/testsuite/ld-x86-64/mark-plt-1a-x32.d
index 4bef117..bcff5a1 100644
--- a/ld/testsuite/ld-x86-64/mark-plt-1a-x32.d
+++ b/ld/testsuite/ld-x86-64/mark-plt-1a-x32.d
@@ -1,6 +1,6 @@
#source: mark-plt-1.s
#as: --x32
-#ld: -melf32_x86_64 -shared -z mark-plt --no-rosegment
+#ld: -melf32_x86_64 -shared -z mark-plt -z separate-code --no-rosegment
#readelf: -drW
#...
diff --git a/ld/testsuite/ld-x86-64/mark-plt-1a.d b/ld/testsuite/ld-x86-64/mark-plt-1a.d
index f6b246e..f2feb06 100644
--- a/ld/testsuite/ld-x86-64/mark-plt-1a.d
+++ b/ld/testsuite/ld-x86-64/mark-plt-1a.d
@@ -1,6 +1,6 @@
#source: mark-plt-1.s
#as: --64
-#ld: -melf_x86_64 -shared -z mark-plt --no-rosegment
+#ld: -melf_x86_64 -shared -z mark-plt -z separate-code --no-rosegment
#readelf: -drW
#...
diff --git a/ld/testsuite/ld-x86-64/mark-plt-1b-x32.d b/ld/testsuite/ld-x86-64/mark-plt-1b-x32.d
index d105768..7031024 100644
--- a/ld/testsuite/ld-x86-64/mark-plt-1b-x32.d
+++ b/ld/testsuite/ld-x86-64/mark-plt-1b-x32.d
@@ -1,6 +1,6 @@
#source: mark-plt-1.s
#as: --x32
-#ld: -melf32_x86_64 -shared -z mark-plt --hash-style=both --no-rosegment
+#ld: -melf32_x86_64 -shared -z mark-plt -z separate-code --hash-style=both --no-rosegment
#objdump: -dw
#...
diff --git a/ld/testsuite/ld-x86-64/mark-plt-1b.d b/ld/testsuite/ld-x86-64/mark-plt-1b.d
index 9af69fd..721b83a 100644
--- a/ld/testsuite/ld-x86-64/mark-plt-1b.d
+++ b/ld/testsuite/ld-x86-64/mark-plt-1b.d
@@ -1,6 +1,6 @@
#source: mark-plt-1.s
#as: --64
-#ld: -melf_x86_64 -shared -z mark-plt --hash-style=both --no-rosegment
+#ld: -melf_x86_64 -shared -z mark-plt -z separate-code --hash-style=both --no-rosegment
#objdump: -dw
#...
diff --git a/ld/testsuite/ld-x86-64/mark-plt-1c-x32.d b/ld/testsuite/ld-x86-64/mark-plt-1c-x32.d
index 6ea71a1..7a8453e 100644
--- a/ld/testsuite/ld-x86-64/mark-plt-1c-x32.d
+++ b/ld/testsuite/ld-x86-64/mark-plt-1c-x32.d
@@ -1,6 +1,6 @@
#source: mark-plt-1.s
#as: --x32
-#ld: -melf32_x86_64 -shared -z mark-plt -z ibtplt --no-rosegment
+#ld: -melf32_x86_64 -shared -z mark-plt -z separate-code -z ibtplt --no-rosegment
#readelf: -drW
#...
diff --git a/ld/testsuite/ld-x86-64/mark-plt-1c.d b/ld/testsuite/ld-x86-64/mark-plt-1c.d
index 1713c88..9172140 100644
--- a/ld/testsuite/ld-x86-64/mark-plt-1c.d
+++ b/ld/testsuite/ld-x86-64/mark-plt-1c.d
@@ -1,6 +1,6 @@
#source: mark-plt-1.s
#as: --64
-#ld: -melf_x86_64 -shared -z mark-plt -z ibtplt --no-rosegment
+#ld: -melf_x86_64 -shared -z mark-plt -z separate-code -z ibtplt --no-rosegment
#readelf: -drW
#...
diff --git a/ld/testsuite/ld-x86-64/mark-plt-1d-x32.d b/ld/testsuite/ld-x86-64/mark-plt-1d-x32.d
index 0e709d6..8264205 100644
--- a/ld/testsuite/ld-x86-64/mark-plt-1d-x32.d
+++ b/ld/testsuite/ld-x86-64/mark-plt-1d-x32.d
@@ -1,6 +1,6 @@
#source: mark-plt-1.s
#as: --x32
-#ld: -melf32_x86_64 -shared -z mark-plt -z ibtplt --hash-style=both --no-rosegment
+#ld: -melf32_x86_64 -shared -z mark-plt -z separate-code -z ibtplt --hash-style=both --no-rosegment
#objdump: -dw
#...
diff --git a/ld/testsuite/ld-x86-64/mark-plt-1d.d b/ld/testsuite/ld-x86-64/mark-plt-1d.d
index 1ec9a9c..a4155b2 100644
--- a/ld/testsuite/ld-x86-64/mark-plt-1d.d
+++ b/ld/testsuite/ld-x86-64/mark-plt-1d.d
@@ -1,6 +1,6 @@
#source: mark-plt-1.s
#as: --64
-#ld: -melf_x86_64 -shared -z mark-plt -z ibtplt --hash-style=both --no-rosegment
+#ld: -melf_x86_64 -shared -z mark-plt -z separate-code -z ibtplt --hash-style=both --no-rosegment
#objdump: -dw
#...
diff --git a/ld/testsuite/ld-x86-64/pr19636-3d.d b/ld/testsuite/ld-x86-64/pr19636-3d.d
deleted file mode 100644
index 3d9a6d7..0000000
--- a/ld/testsuite/ld-x86-64/pr19636-3d.d
+++ /dev/null
@@ -1,10 +0,0 @@
-#source: pr19636-3.s
-#as: --64
-#ld: -E --defsym foobar=0x100 -m elf_x86_64
-#readelf : --dyn-syms --wide
-
-Symbol table '\.dynsym' contains [0-9]+ entries:
- +Num: +Value +Size Type +Bind +Vis +Ndx Name
-#...
- +[0-9]+: +0+100 +0 +NOTYPE +GLOBAL +DEFAULT +ABS +foobar
-#pass
diff --git a/ld/testsuite/ld-x86-64/pr32665.err b/ld/testsuite/ld-x86-64/pr32665.err
new file mode 100644
index 0000000..f539eb0
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr32665.err
@@ -0,0 +1,3 @@
+#...
+.*tmpdir/pr32665.o: bad reloc offset \(0xf2ffffff01bc > 0x574\) for section `.text'
+#...
diff --git a/ld/testsuite/ld-x86-64/pr32665.o.bz2 b/ld/testsuite/ld-x86-64/pr32665.o.bz2
new file mode 100644
index 0000000..42695cb
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr32665.o.bz2
Binary files differ
diff --git a/ld/testsuite/ld-x86-64/pr32809.d b/ld/testsuite/ld-x86-64/pr32809.d
new file mode 100644
index 0000000..3affc23
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/pr32809.d
@@ -0,0 +1,71 @@
+#source: dwarf5a.s
+#source: dwarf4.s
+#source: dwarf5b.s
+#as: --64
+#ld: -r -m elf_x86_64
+#readelf: --wide --debug-dump=loc
+
+Contents of the .*ebug_loc section:
+
+ Offset Begin End Expression
+
+ 00000000 v000000000000000 v000000000000000 location view pair
+ 00000002 v000000000000000 v000000000000000 location view pair
+
+ 00000004 v000000000000000 v000000000000000 views at 00000000 for:
+ 0000000000000000 000000000000000a \(DW_OP_reg5 \(rdi\)\)
+ 00000017 v000000000000000 v000000000000000 views at 00000002 for:
+ 000000000000000a 0000000000000016 \(DW_OP_GNU_entry_value: \(DW_OP_reg5 \(rdi\)\); DW_OP_stack_value\)
+ 0000002d <End of list>
+
+ 0000003d v000000000000002 v000000000000000 location view pair
+ 0000003f v000000000000000 v000000000000001 location view pair
+ 00000041 v000000000000001 v000000000000000 location view pair
+
+ 00000043 v000000000000002 v000000000000000 views at 0000003d for:
+ 0000000000000000 000000000000000a \(DW_OP_reg5 \(rdi\)\)
+ 00000056 v000000000000000 v000000000000001 views at 0000003f for:
+ 000000000000000a 000000000000000b \(DW_OP_GNU_entry_value: \(DW_OP_reg5 \(rdi\)\); DW_OP_stack_value\)
+ 0000006c v000000000000001 v000000000000000 views at 00000041 for:
+ 000000000000000b 0000000000000016 \(DW_OP_const1u: 123; DW_OP_stack_value\)
+ 00000081 <End of list>
+
+Contents of the .*ebug_loclists section:
+
+Table at Offset 0
+ Length: 0x34
+ DWARF version: 5
+ Address size: 8
+ Segment size: 0
+ Offset entries: 0
+
+ Offset Begin End Expression
+
+ 0000000c v000000000000002 v000000000000000 location view pair
+ 0000000e v000000000000001 v000000000000001 location view pair
+ 00000010 v000000000000001 v000000000000000 location view pair
+
+ 00000012 0000000000000000 \(base address\)
+ 0000001b v000000000000002 v000000000000000 views at 0000000c for:
+ 0000000000000000 000000000000000d \(DW_OP_addr: 0\)
+ 00000028 v000000000000001 v000000000000001 views at 0000000e for:
+ 000000000000000e 0000000000000018 \(DW_OP_const1u: 123; DW_OP_stack_value\)
+ 0000002f v000000000000001 v000000000000000 views at 00000010 for:
+ 0000000000000018 000000000000001f \(DW_OP_const2u: 456; DW_OP_stack_value\)
+ 00000037 <End of list>
+Table at Offset 0x38
+ Length: 0x12
+ DWARF version: 5
+ Address size: 8
+ Segment size: 0
+ Offset entries: 0
+
+ Offset Begin End Expression
+
+ 00000044 v000000000000001 v000000000000000 location view pair
+
+ 00000046 v000000000000001 v000000000000000 views at 00000044 for:
+ 000000000000002f 000000000000003d \(DW_OP_const1u: 123; DW_OP_stack_value\)
+ 0000004d <End of list>
+
+#pass
diff --git a/ld/testsuite/ld-x86-64/sframe-ibt-plt-1.d b/ld/testsuite/ld-x86-64/sframe-ibt-plt-1.d
index 26be4df..f868242 100644
--- a/ld/testsuite/ld-x86-64/sframe-ibt-plt-1.d
+++ b/ld/testsuite/ld-x86-64/sframe-ibt-plt-1.d
@@ -1,7 +1,7 @@
#as: --gsframe
#source: ibt-plt-3.s
#objdump: --sframe=.sframe
-#ld: -shared -z ibtplt --no-rosegment
+#ld: -shared -z ibtplt --no-rosegment -z separate-code
#name: SFrame for IBT PLT .plt.sec
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/sframe-plt-1.d b/ld/testsuite/ld-x86-64/sframe-plt-1.d
index 52bca18..2918ccb 100644
--- a/ld/testsuite/ld-x86-64/sframe-plt-1.d
+++ b/ld/testsuite/ld-x86-64/sframe-plt-1.d
@@ -2,7 +2,7 @@
#source: sframe-foo.s
#source: sframe-bar.s
#objdump: --sframe=.sframe
-#ld: -shared --no-rosegment
+#ld: -shared --no-rosegment -z separate-code
#name: SFrame for plt0 and pltN
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/sframe-pltgot-1.d b/ld/testsuite/ld-x86-64/sframe-pltgot-1.d
index 23ff5d5..6c47770 100644
--- a/ld/testsuite/ld-x86-64/sframe-pltgot-1.d
+++ b/ld/testsuite/ld-x86-64/sframe-pltgot-1.d
@@ -1,7 +1,7 @@
#as: --gsframe
#source: sframe-pltgot-1.s
#objdump: --sframe=.sframe
-#ld: -shared -z ibtplt --no-rosegment
+#ld: -shared -z ibtplt --no-rosegment -z separate-code
#name: SFrame for IBT .plt.got
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/sframe-pltgot-2.d b/ld/testsuite/ld-x86-64/sframe-pltgot-2.d
index 7a99d12..141be29 100644
--- a/ld/testsuite/ld-x86-64/sframe-pltgot-2.d
+++ b/ld/testsuite/ld-x86-64/sframe-pltgot-2.d
@@ -1,7 +1,7 @@
#as: --gsframe
#source: sframe-pltgot-1.s
#objdump: --sframe=.sframe
-#ld: -shared --no-rosegment
+#ld: -shared --no-rosegment -z separate-code
#name: SFrame for .plt.got
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/sframe-simple-1.d b/ld/testsuite/ld-x86-64/sframe-simple-1.d
index 7d88419..3effdbf 100644
--- a/ld/testsuite/ld-x86-64/sframe-simple-1.d
+++ b/ld/testsuite/ld-x86-64/sframe-simple-1.d
@@ -2,7 +2,7 @@
#source: sframe-foo.s
#source: sframe-bar.s
#objdump: --sframe=.sframe
-#ld: -shared --no-rosegment
+#ld: -shared --no-rosegment -z separate-code
#name: SFrame simple link
.*: +file format .*
diff --git a/ld/testsuite/ld-x86-64/tlsbindesc.dd b/ld/testsuite/ld-x86-64/tlsbindesc.dd
index ae10e8f..72757ba 100644
--- a/ld/testsuite/ld-x86-64/tlsbindesc.dd
+++ b/ld/testsuite/ld-x86-64/tlsbindesc.dd
@@ -256,18 +256,18 @@ Disassembly of section .text:
+[0-9a-f]+: d5 18 c7 c5 90 ff ff[ ]+mov \$0xf+90,%r21
# sl5
+[0-9a-f]+: ff *
- +[0-9a-f]+: 26 26 49 c7 c3 90 ff[ ]+(es ){2}mov \$0xf+90,%r11
+ +[0-9a-f]+: 2e 2e 49 c7 c3 90 ff[ ]+(cs ){2}mov \$0xf+90,%r11
# sl5
+[0-9a-f]+: ff ff *
- +[0-9a-f]+: 26 26 d5 18 c7 c5 90[ ]+(es ){2}mov \$0xf+90,%r21
+ +[0-9a-f]+: 2e 2e d5 18 c7 c5 90[ ]+(cs ){2}mov \$0xf+90,%r21
# sl5
+[0-9a-f]+: ff ff ff *
# IE->LE against hidden var
+[0-9a-f]+: d5 18 c7 c6 b0 ff ff[ ]+mov \$0xf+b0,%r22
+[0-9a-f]+: ff *
- +[0-9a-f]+: 26 26 49 c7 c4 b0 ff[ ]+(es ){2}mov \$0xf+b0,%r12
+ +[0-9a-f]+: 2e 2e 49 c7 c4 b0 ff[ ]+(cs ){2}mov \$0xf+b0,%r12
+[0-9a-f]+: ff ff *
- +[0-9a-f]+: 26 26 d5 18 c7 c6 b0[ ]+(es ){2}mov \$0xf+b0,%r22
+ +[0-9a-f]+: 2e 2e d5 18 c7 c6 b0[ ]+(cs ){2}mov \$0xf+b0,%r22
+[0-9a-f]+: ff ff ff *
# GD -> IE because variable is not defined in executable
+[0-9a-f]+: d5 48 8b 05 ([0-9a-f]{2} ){3}[ ]+mov 0x[0-9a-f]+\(%rip\),%r16 +# [0-9a-f]+ <sG1>
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
index bcec5c1..3bb88ff 100644
--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp
@@ -216,6 +216,11 @@ set x86_64tests {
{"Build textrel-1" "-no-pie -melf_x86_64 -z nocopyreloc --warn-textrel"
"tmpdir/textrel-1.so"
"--64" { textrel-1b.s } {{ld "textrel-1.err"}} "textrel-1"}
+ {"Build pr32665"
+ "-melf_x86_64"
+ "" ""
+ { pr32665.o.bz2 }
+ {{ld "pr32665.err"}} "pr32665"}
}
run_ld_link_tests $x86_64tests
@@ -558,6 +563,7 @@ run_dump_test "pr32591-3"
run_dump_test "pr32591-3-x32"
run_dump_test "pr32591-4"
run_dump_test "pr32591-4-x32"
+run_dump_test "pr32809"
if { ![skip_sframe_tests] } {
run_dump_test "sframe-simple-1"
@@ -668,6 +674,8 @@ run_dump_test "load2"
run_dump_test "load3a"
run_dump_test "load3b"
run_dump_test "load4"
+run_dump_test "load5a"
+run_dump_test "load5b"
run_dump_test "call1a"
run_dump_test "call1b"
run_dump_test "call1c"
@@ -2161,9 +2169,9 @@ if { [isnative] && [check_compiler_available] } {
}
undefined_weak "$NOPIE_CFLAGS" "$NOPIE_LDFLAGS"
- undefined_weak "-fPIE" ""
+ undefined_weak "-fPIE" "$NOPIE_LDFLAGS"
undefined_weak "-fPIE" "-pie"
- undefined_weak "-fPIE" "-Wl,-z,nodynamic-undefined-weak"
+ undefined_weak "-fPIE" "$NOPIE_LDFLAGS -Wl,-z,nodynamic-undefined-weak"
undefined_weak "-fPIE" "-pie -Wl,-z,nodynamic-undefined-weak"
}
diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
index 9615271..119410b 100644
--- a/ld/testsuite/lib/ld-lib.exp
+++ b/ld/testsuite/lib/ld-lib.exp
@@ -860,14 +860,15 @@ proc run_ld_link_exec_tests { ldtests args } {
}
# List contains test-items with 3 items followed by 2 lists, one item and
-# one optional item:
+# 2 optional items:
# 0:name
-# 1:ld or ar options
+# 1:leading ld or ar options
# 2:compile options
# 3:filenames of source files
# 4:action and options.
# 5:name of output file
# 6:language (optional)
+# 7:trailing ld options (optional), placed after object files
#
# Actions:
# objdump: Apply objdump options on result. Compare with regex (last arg).
@@ -899,6 +900,7 @@ proc run_cc_link_tests { ldtests } {
set actions [lindex $testitem 4]
set binfile tmpdir/[lindex $testitem 5]
set lang [lindex $testitem 6]
+ set trailing_ldflags [lindex $testitem 7]
set objfiles {}
set is_unresolved 0
set failed 0
@@ -927,6 +929,7 @@ proc run_cc_link_tests { ldtests } {
#verbose -log "actions is $actions"
#verbose -log "binfile is $binfile"
#verbose -log "lang is $lang"
+ #verbose -log "trailing_ldflags is $trailing_ldflags"
foreach actionlist $actions {
set action [lindex $actionlist 0]
@@ -1006,7 +1009,7 @@ proc run_cc_link_tests { ldtests } {
untested $testname
continue
}
- ld_link $cc_cmd $binfile "-L$srcdir/$subdir $ldflags $objfiles"
+ ld_link $cc_cmd $binfile "-L$srcdir/$subdir $ldflags $objfiles $trailing_ldflags"
set ld_output "$exec_output"
if { $check_ld(source) == "regexp" } then {
diff --git a/libctf/ctf-archive.c b/libctf/ctf-archive.c
index dc01e2e..6c4595f 100644
--- a/libctf/ctf-archive.c
+++ b/libctf/ctf-archive.c
@@ -485,6 +485,10 @@ ctf_arc_open_internal (const char *filename, int *errp)
is private.) */
arc->ctfa_magic = s.st_size;
close (fd);
+
+ if (errp)
+ *errp = 0;
+
return arc;
err_unmap:
@@ -588,6 +592,9 @@ ctf_dict_open_sections (const ctf_archive_t *arc,
const char *name,
int *errp)
{
+ if (errp)
+ *errp = 0;
+
if (arc->ctfi_is_archive)
{
ctf_dict_t *ret;
@@ -761,7 +768,7 @@ ctf_arc_import_parent (const ctf_archive_t *arc, ctf_dict_t *fp, int *errp)
{
if ((fp->ctf_flags & LCTF_CHILD) && fp->ctf_parname && !fp->ctf_parent)
{
- int err;
+ int err = 0;
ctf_dict_t *parent = ctf_dict_open_cached ((ctf_archive_t *) arc,
fp->ctf_parname, &err);
if (errp)
diff --git a/libctf/ctf-create.c b/libctf/ctf-create.c
index a4d8e7c..25dd44d 100644
--- a/libctf/ctf-create.c
+++ b/libctf/ctf-create.c
@@ -18,7 +18,6 @@
<http://www.gnu.org/licenses/>. */
#include <ctf-impl.h>
-#include <sys/param.h>
#include <string.h>
#include <unistd.h>
@@ -1045,7 +1044,7 @@ ctf_add_enumerator (ctf_dict_t *fp, ctf_id_t enid, const char *name,
int value)
{
ctf_dict_t *ofp = fp;
- ctf_dtdef_t *dtd = ctf_dtd_lookup (fp, enid);
+ ctf_dtdef_t *dtd;
unsigned char *old_vlen;
ctf_enum_t *en;
@@ -1054,6 +1053,10 @@ ctf_add_enumerator (ctf_dict_t *fp, ctf_id_t enid, const char *name,
if (name == NULL)
return (ctf_set_errno (fp, EINVAL));
+ if ((enid = ctf_type_resolve_unsliced (fp, enid)) == CTF_ERR)
+ return -1; /* errno is set for us. */
+
+ dtd = ctf_dtd_lookup (fp, enid);
if ((fp->ctf_flags & LCTF_CHILD) && LCTF_TYPE_ISPARENT (fp, enid))
fp = fp->ctf_parent;
diff --git a/libctf/ctf-dedup.c b/libctf/ctf-dedup.c
index 174f353..c7c2edd 100644
--- a/libctf/ctf-dedup.c
+++ b/libctf/ctf-dedup.c
@@ -96,9 +96,9 @@
value: it is also stashed in the *output mapping*, a mapping from hash value
to the set of GIDs corresponding to that type in all inputs. We also keep
track of the GID of the first appearance of the type in any input (in
- cd_output_first_gid), and the GID of structs, unions, and forwards that only
- appear in one TU (in cd_struct_origin). See below for where these things are
- used.
+ cd_output_first_gid), the GID of structs, unions, and forwards that only
+ appear in one TU (in cd_struct_origin), and an indication of whether this
+ type is root-visible or not. See below for where these things are used.
Everything in this phase is time-critical, because it is operating over
non-deduplicated types and so may have hundreds or thousands of times the
@@ -492,6 +492,7 @@ ctf_dedup_hash_type (ctf_dict_t *fp, ctf_dict_t *input,
ctf_dict_t **inputs,
int input_num,
ctf_id_t type,
+ int isroot,
void *id,
const char *decorated_name,
const char *hash));
@@ -560,6 +561,7 @@ ctf_dedup_rhash_type (ctf_dict_t *fp, ctf_dict_t *input, ctf_dict_t **inputs,
ctf_dict_t **inputs,
int input_num,
ctf_id_t type,
+ int isroot,
void *id,
const char *decorated_name,
const char *hash))
@@ -666,7 +668,11 @@ ctf_dedup_rhash_type (ctf_dict_t *fp, ctf_dict_t *input, ctf_dict_t **inputs,
possible. Equally, we do not want to hash in the isroot flag: both the
compiler and the deduplicator set the nonroot flag to indicate clashes with
*other types in the same TU* with the same name: so two types can easily
- have distinct nonroot flags, yet be exactly the same type.*/
+ have distinct nonroot flags, yet be exactly the same type. This means we
+ can never use the non-root-visible flag from the input for anything,
+ because if there are several distinct values the one chosen is basically
+ random. We unify non-root-visible flags separately: see the uses of
+ cd_nonroot_consistency. */
ctf_sha1_init (&hash);
if (name)
@@ -1015,6 +1021,7 @@ ctf_dedup_hash_type (ctf_dict_t *fp, ctf_dict_t *input,
ctf_dict_t **inputs,
int input_num,
ctf_id_t type,
+ int isroot,
void *id,
const char *decorated_name,
const char *hash))
@@ -1027,6 +1034,7 @@ ctf_dedup_hash_type (ctf_dict_t *fp, ctf_dict_t *input,
const char *whaterr;
const char *decorated = NULL;
uint32_t kind, fwdkind;
+ int isroot;
depth++;
@@ -1056,6 +1064,7 @@ ctf_dedup_hash_type (ctf_dict_t *fp, ctf_dict_t *input,
kind = LCTF_INFO_KIND (input, tp->ctt_info);
name = ctf_strraw (input, tp->ctt_name);
+ isroot = LCTF_INFO_ISROOT (input, tp->ctt_info);
if (tp->ctt_name == 0 || !name || name[0] == '\0')
name = NULL;
@@ -1086,7 +1095,7 @@ ctf_dedup_hash_type (ctf_dict_t *fp, ctf_dict_t *input,
ctf_dprintf ("%lu: Known hash for ID %i/%lx: %s\n", depth, input_num,
type, hval);
#endif
- populate_fun (fp, input, inputs, input_num, type, type_id,
+ populate_fun (fp, input, inputs, input_num, type, isroot, type_id,
decorated, hval);
return hval;
@@ -1121,7 +1130,7 @@ ctf_dedup_hash_type (ctf_dict_t *fp, ctf_dict_t *input,
goto oom;
}
- if (populate_fun (fp, input, inputs, input_num, type, type_id,
+ if (populate_fun (fp, input, inputs, input_num, type, isroot, type_id,
decorated, hval) < 0)
{
whaterr = N_("error calling population function");
@@ -1150,19 +1159,20 @@ ctf_dedup_count_name (ctf_dict_t *fp, const char *name, void *id);
/* Populate a number of useful mappings not directly used by the hashing
machinery: the output mapping, the cd_name_counts mapping from name -> hash
- -> count of hashval deduplication state for a given hashed type, and the
- cd_output_first_tu mapping. */
+ -> count of hashval deduplication state for a given hashed type; the
+ cd_output_first_gid mapping; and the cd_nonroot_consistency mapping. */
static int
ctf_dedup_populate_mappings (ctf_dict_t *fp, ctf_dict_t *input _libctf_unused_,
ctf_dict_t **inputs _libctf_unused_,
int input_num _libctf_unused_,
- ctf_id_t type _libctf_unused_, void *id,
- const char *decorated_name,
+ ctf_id_t type _libctf_unused_, int isroot,
+ void *id, const char *decorated_name,
const char *hval)
{
ctf_dedup_t *d = &fp->ctf_dedup;
ctf_dynset_t *type_ids;
+ void *root_visible;
#ifdef ENABLE_LIBCTF_HASH_DEBUGGING
ctf_dprintf ("Hash %s, %s, into output mapping for %i/%lx @ %s\n",
@@ -1249,6 +1259,32 @@ ctf_dedup_populate_mappings (ctf_dict_t *fp, ctf_dict_t *input _libctf_unused_,
}
#endif
+ /* Track the consistency of the non-root flag for this type.
+ 0: all root-visible; 1: all non-root-visible; 2: inconsistent. */
+
+ if (!ctf_dynhash_lookup_kv (d->cd_nonroot_consistency, hval, NULL,
+ &root_visible))
+ {
+ if (isroot)
+ root_visible = (void *) 0;
+ else
+ root_visible = (void *) 1;
+
+ if (ctf_dynhash_cinsert (d->cd_nonroot_consistency, hval, root_visible) < 0)
+ return ctf_set_errno (fp, errno);
+ }
+ else
+ {
+ if (((uintptr_t) root_visible == 0 && !isroot)
+ || ((uintptr_t) root_visible == 1 && isroot))
+ {
+ root_visible = (void *) 2;
+
+ if (ctf_dynhash_cinsert (d->cd_nonroot_consistency, hval, root_visible) < 0)
+ return ctf_set_errno (fp, errno);
+ }
+ }
+
/* This function will be repeatedly called for the same types many times:
don't waste time reinserting the same keys in that case. */
if (!ctf_dynset_exists (type_ids, id, NULL)
@@ -1282,6 +1318,33 @@ ctf_dedup_populate_mappings (ctf_dict_t *fp, ctf_dict_t *input _libctf_unused_,
return 0;
}
+/* Clean up things no longer needed after hashing is over. */
+static int
+ctf_dedup_hash_type_fini (ctf_dict_t *fp)
+{
+ ctf_next_t *i = NULL;
+ int err;
+ void *hval, *root_visible;
+
+ /* Clean up cd_nonroot_consistency. We only care now about types we are sure
+ are non-root-visible everywhere: root-visible types and types that are
+ sometimes root-visible and sometimes not are treated as root-visible. */
+
+ while ((err = ctf_dynhash_next (fp->ctf_dedup.cd_nonroot_consistency, &i,
+ &hval, &root_visible)) == 0)
+ {
+ if ((uintptr_t) root_visible != 1)
+ ctf_dynhash_next_remove (&i);
+ }
+ if (err != ECTF_NEXT_END)
+ {
+ ctf_err_warn (fp, 0, err, _("iteration failure cleaning up type hashes"));
+ return ctf_set_errno (fp, err);
+ }
+
+ return 0;
+}
+
static int
ctf_dedup_count_name (ctf_dict_t *fp, const char *name, void *id)
{
@@ -1678,6 +1741,12 @@ ctf_dedup_init (ctf_dict_t *fp)
NULL, NULL)) == NULL)
goto oom;
+ if ((d->cd_nonroot_consistency
+ = ctf_dynhash_create (ctf_hash_string,
+ ctf_hash_eq_string,
+ NULL, NULL)) == NULL)
+ goto oom;
+
#ifdef ENABLE_LIBCTF_HASH_DEBUGGING
if ((d->cd_output_mapping_guard
= ctf_dynhash_create (ctf_hash_integer,
@@ -1730,6 +1799,7 @@ ctf_dedup_fini (ctf_dict_t *fp, ctf_dict_t **outputs, uint32_t noutputs)
ctf_dynhash_destroy (d->cd_citers);
ctf_dynhash_destroy (d->cd_output_mapping);
ctf_dynhash_destroy (d->cd_output_first_gid);
+ ctf_dynhash_destroy (d->cd_nonroot_consistency);
#ifdef ENABLE_LIBCTF_HASH_DEBUGGING
ctf_dynhash_destroy (d->cd_output_mapping_guard);
#endif
@@ -1912,15 +1982,15 @@ ctf_dedup_conflictify_unshared (ctf_dict_t *output, ctf_dict_t **inputs)
OUTPUT is the top-level output: INPUTS is the array of input dicts; NINPUTS is the
size of that array.
- If CU_MAPPED is set, this is a first pass for a link with a non-empty CU
- mapping: only one output will result.
+ If CU_MAPPING_PHASE is nonzero, this is a link with a non-empty CU mapping:
+ in phase 1, only one output will result.
Only deduplicates: does not emit the types into the output. Call
ctf_dedup_emit afterwards to do that. */
int
ctf_dedup (ctf_dict_t *output, ctf_dict_t **inputs, uint32_t ninputs,
- int cu_mapped)
+ int cu_mapping_phase)
{
ctf_dedup_t *d = &output->ctf_dedup;
size_t i;
@@ -1942,12 +2012,13 @@ ctf_dedup (ctf_dict_t *output, ctf_dict_t **inputs, uint32_t ninputs,
}
}
- /* Some flags do not apply when CU-mapping: this is not a duplicated link,
- because there is only one output and we really don't want to end up marking
- all nonconflicting but appears-only-once types as conflicting (which in the
- CU-mapped link means we'd mark them all as non-root-visible!). */
+ /* Some flags do not apply in the first phase of CU-mapped links: this is not
+ a share-duplicated link, because there is only one output and we really
+ don't want to end up marking all nonconflicting but appears-only-once types
+ as conflicting. */
+
d->cd_link_flags = output->ctf_link_flags;
- if (cu_mapped)
+ if (cu_mapping_phase == 1)
d->cd_link_flags &= ~(CTF_LINK_SHARE_DUPLICATED);
/* Compute hash values for all types, recursively, treating child structures
@@ -1979,6 +2050,10 @@ ctf_dedup (ctf_dict_t *output, ctf_dict_t **inputs, uint32_t ninputs,
}
}
+ /* Drop state no longer needed after hashing is over. */
+
+ ctf_dedup_hash_type_fini (output);
+
/* Go through the cd_name_counts name->hash->count mapping for all CTF
namespaces: any name with many hashes associated with it at this stage is
necessarily ambiguous. Mark all the hashes except the most common as
@@ -2638,8 +2713,8 @@ ctf_dedup_emit_type (const char *hval, ctf_dict_t *output, ctf_dict_t **inputs,
const ctf_type_t *tp;
int input_num = CTF_DEDUP_GID_TO_INPUT (id);
int output_num = (uint32_t) -1; /* 'shared' */
- int cu_mapped = *(int *)arg;
- int isroot;
+ int cu_mapping_phase = *(int *)arg;
+ int isroot = 1;
int is_conflicting;
ctf_next_t *i = NULL;
@@ -2663,7 +2738,7 @@ ctf_dedup_emit_type (const char *hval, ctf_dict_t *output, ctf_dict_t **inputs,
ctf_link_outputs dict of the output that is its parent. */
is_conflicting = ctf_dynset_exists (d->cd_conflicting_types, hval, NULL);
- if (is_conflicting && !cu_mapped)
+ if (is_conflicting && cu_mapping_phase != 1)
{
ctf_dprintf ("%i: Type %s in %i/%lx is conflicted: "
"inserting into per-CU target.\n",
@@ -2698,6 +2773,34 @@ ctf_dedup_emit_type (const char *hval, ctf_dict_t *output, ctf_dict_t **inputs,
output_num = input_num;
}
+ if (!target->ctf_dedup.cd_output_emission_hashes)
+ if ((target->ctf_dedup.cd_output_emission_hashes
+ = ctf_dynhash_create (ctf_hash_string, ctf_hash_eq_string,
+ NULL, NULL)) == NULL)
+ goto oom_hash;
+
+ if (!target->ctf_dedup.cd_output_emission_conflicted_forwards)
+ if ((target->ctf_dedup.cd_output_emission_conflicted_forwards
+ = ctf_dynhash_create (ctf_hash_string, ctf_hash_eq_string,
+ NULL, NULL)) == NULL)
+ goto oom_hash;
+
+ /* When cu-mapping mode is turned on, we merge types derived from multiple CUs
+ into one target dict: in phase 1, by merging them according to the mapping;
+ in phase 2, as a consequence of taking the merged results from phase 1.
+ Any given type appears only once in the type mapping, but in
+ ctf_dedup_rwalk_output_mapping we loop inserting conflicting types into a
+ child dict corresponding to every input dict they came from. This means
+ that if those dicts are mapped together, in phase 1 we can attempt to
+ insert them *multiple times* into the same dict, which then causes them to
+ be duplicated in phase 2 as well. Avoid this by making sure this hval
+ isn't already present in the emission hash in phase 1: if it is, we in
+ effect already visited this type, and can return as we did above. */
+
+ if (cu_mapping_phase == 1
+ && ctf_dynhash_lookup (target->ctf_dedup.cd_output_emission_hashes, hval))
+ return 0;
+
real_input = input;
if ((tp = ctf_lookup_by_id (&real_input, type)) == NULL)
{
@@ -2708,35 +2811,64 @@ ctf_dedup_emit_type (const char *hval, ctf_dict_t *output, ctf_dict_t **inputs,
}
name = ctf_strraw (real_input, tp->ctt_name);
- isroot = LCTF_INFO_ISROOT (real_input, tp->ctt_info);
- /* Hide conflicting types, if we were asked to: also hide if a type with this
- name already exists and is not a forward, or if this type is hidden on the
- input. */
- if (cu_mapped && is_conflicting)
- isroot = 0;
- else if (name
- && (maybe_dup = ctf_lookup_by_rawname (target, kind, name)) != 0)
+ /* cu_mapped links at phase 1 get absolutely *everything* marked non-root,
+ named or not. Such links, when we are merging multiple child CUs into one,
+ are the only point at which we can ever put conflicting and nonconflicting
+ instances of the same type into the same dict, and which one comes first is
+ arbitrary. Rather than having to figure out when we insert a type whether
+ another one is coming that might conflict with it without being so marked,
+ just mark everything as non-root: we'll disregard it in the next phase of
+ cu-mapped linking anyway.
+
+ In phase 2 (the final dedup phase) of cu-mapped links, we have to deal with
+ the fallout of this, in that single inputs have 100% non-root types (so the
+ non-root bit isn't really meaningful) but some subset of them may be
+ genuinely clashing, conflicting, but already in child dicts (a thing that
+ is impossible in non-CU-mapped links, when child dicts correspond to single
+ CUs).
+
+ So in phase 2, we hide conflicting types, if this type is conflicting and a
+ type with this name already exists in the target and is not a forward.
+
+ Note that enums also get their enumerands checked, below.
+
+ Otherwise, in "phase 0" (i.e. normal links), we can respect the non-root
+ flag the user passed in and simply propagate it directly to the output.
+ If the user provided a mix of root-visible and non-root-visible flags,
+ we treat it as non-root-visible: see ctf_dedup_hash_type_fini. */
+
+ switch (cu_mapping_phase)
{
- if (ctf_type_kind (target, maybe_dup) != CTF_K_FORWARD)
+ case 0: /* Normal link. Root-visibility explicitly tracked. */
+ if (ctf_dynhash_lookup (d->cd_nonroot_consistency, hval))
isroot = 0;
+ break;
+ case 1: /* cu-mapped link. Never root-visible. */
+ isroot = 0;
+ break;
+ case 2: /* Final phase of cu-mapped link. Non-root if already present. */
+ if (is_conflicting && name
+ && ((maybe_dup = ctf_lookup_by_rawname (target, kind, name)) != 0))
+ {
+ if (ctf_type_kind (target, maybe_dup) != CTF_K_FORWARD)
+ {
+ ctf_dprintf ("%s, kind %i, hval %s: conflicting type marked as "
+ "non-root because of pre-existing type %s/%lx, "
+ "kind %i.\n", name, kind, hval, ctf_cuname (target),
+ maybe_dup, ctf_type_kind (target, maybe_dup));
+ isroot = 0;
+ }
+ }
+ break;
+ default:
+ if (!ctf_assert (output, cu_mapping_phase >= 0 && cu_mapping_phase <= 2))
+ return -1; /* errno is set for us. */
}
ctf_dprintf ("%i: Emitting type with hash %s (%s), into target %i/%p\n",
depth, hval, name ? name : "", input_num, (void *) target);
- if (!target->ctf_dedup.cd_output_emission_hashes)
- if ((target->ctf_dedup.cd_output_emission_hashes
- = ctf_dynhash_create (ctf_hash_string, ctf_hash_eq_string,
- NULL, NULL)) == NULL)
- goto oom_hash;
-
- if (!target->ctf_dedup.cd_output_emission_conflicted_forwards)
- if ((target->ctf_dedup.cd_output_emission_conflicted_forwards
- = ctf_dynhash_create (ctf_hash_string, ctf_hash_eq_string,
- NULL, NULL)) == NULL)
- goto oom_hash;
-
switch (kind)
{
case CTF_K_UNKNOWN:
@@ -2771,6 +2903,28 @@ ctf_dedup_emit_type (const char *hval, ctf_dict_t *output, ctf_dict_t **inputs,
{
int val;
errtype = _("enum");
+
+ /* Check enumerands for duplication and nonrootify if clashing: this is
+ an extension of the isroot check above. */
+
+ if (isroot && cu_mapping_phase == 2)
+ {
+ const char *enumerand;
+ while ((enumerand = ctf_enum_next (input, type, &i, &val)) != NULL)
+ {
+ if (is_conflicting && name
+ && ctf_dynhash_lookup (target->ctf_names, enumerand) != NULL)
+ {
+ ctf_dprintf ("%s, kind %i, hval %s: conflicting type marked "
+ "as non-root because of pre-existing enumerand "
+ "%s.\n", name, kind, hval, enumerand);
+ isroot = 0;
+ }
+ }
+ if (ctf_errno (input) != ECTF_NEXT_END)
+ goto err_input;
+ }
+
if ((new_type = ctf_add_enum (target, isroot, name)) == CTF_ERR)
goto err_input; /* errno is set for us. */
@@ -3086,12 +3240,12 @@ ctf_dedup_emit_struct_members (ctf_dict_t *output, ctf_dict_t **inputs,
Return an array of fps with content emitted into them (starting with OUTPUT,
which is the parent of all others, then all the newly-generated outputs).
- If CU_MAPPED is set, this is a first pass for a link with a non-empty CU
- mapping: only one output will result. */
+ If CU_MAPPING_PHASE is set to 1, this is a first pass for a link with a
+ non-empty CU mapping: only one output will result. */
ctf_dict_t **
ctf_dedup_emit (ctf_dict_t *output, ctf_dict_t **inputs, uint32_t ninputs,
- uint32_t *parents, uint32_t *noutputs, int cu_mapped)
+ uint32_t *parents, uint32_t *noutputs, int cu_mapping_phase)
{
size_t num_outputs = 1; /* Always at least one output: us. */
ctf_dict_t **outputs;
@@ -3100,7 +3254,7 @@ ctf_dedup_emit (ctf_dict_t *output, ctf_dict_t **inputs, uint32_t ninputs,
ctf_dprintf ("Triggering emission.\n");
if (ctf_dedup_walk_output_mapping (output, inputs, ninputs, parents,
- ctf_dedup_emit_type, &cu_mapped) < 0)
+ ctf_dedup_emit_type, &cu_mapping_phase) < 0)
return NULL; /* errno is set for us. */
ctf_dprintf ("Populating struct members.\n");
@@ -3113,7 +3267,8 @@ ctf_dedup_emit (ctf_dict_t *output, ctf_dict_t **inputs, uint32_t ninputs,
num_outputs++;
}
- if (!ctf_assert (output, !cu_mapped || (cu_mapped && num_outputs == 1)))
+ if (!ctf_assert (output, (cu_mapping_phase != 1
+ || (cu_mapping_phase == 1 && num_outputs == 1))))
return NULL;
if ((outputs = calloc (num_outputs, sizeof (ctf_dict_t *))) == NULL)
diff --git a/libctf/ctf-hash.c b/libctf/ctf-hash.c
index a11d11e..abd0140 100644
--- a/libctf/ctf-hash.c
+++ b/libctf/ctf-hash.c
@@ -406,8 +406,9 @@ ctf_dynhash_iter_remove (ctf_dynhash_t *hp, ctf_hash_iter_remove_f fun,
/* Traverse a dynhash in arbitrary order, in _next iterator form.
- Mutating the dynhash while iterating is not supported (just as it isn't for
- htab_traverse).
+ Adding entries to the dynhash while iterating is not supported (just as it
+ isn't for htab_traverse). Deleting is fine (see ctf_dynhash_next_remove,
+ below).
Note: unusually, this returns zero on success and a *positive* value on
error, because it does not take an fp, taking an error pointer would be
@@ -479,6 +480,30 @@ ctf_dynhash_next (ctf_dynhash_t *h, ctf_next_t **it, void **key, void **value)
return ECTF_NEXT_END;
}
+/* Remove the entry most recently returned by ctf_dynhash_next.
+
+ Returns ECTF_NEXT_END if this is impossible (already removed, iterator not
+ initialized, iterator off the end). */
+
+int
+ctf_dynhash_next_remove (ctf_next_t * const *it)
+{
+ ctf_next_t *i = *it;
+
+ if ((void (*) (void)) ctf_dynhash_next != i->ctn_iter_fun)
+ return ECTF_NEXT_WRONGFUN;
+
+ if (!i)
+ return ECTF_NEXT_END;
+
+ if (i->ctn_n == 0)
+ return ECTF_NEXT_END;
+
+ htab_clear_slot (i->cu.ctn_h->htab, i->u.ctn_hash_slot - 1);
+
+ return 0;
+}
+
int
ctf_dynhash_sort_by_name (const ctf_next_hkv_t *one, const ctf_next_hkv_t *two,
void *unused _libctf_unused_)
diff --git a/libctf/ctf-impl.h b/libctf/ctf-impl.h
index b40c867..3217f92 100644
--- a/libctf/ctf-impl.h
+++ b/libctf/ctf-impl.h
@@ -22,7 +22,6 @@
#include "config.h"
#include <errno.h>
-#include <sys/param.h>
#include "ctf-decls.h"
#include <ctf-api.h>
#include "ctf-sha1.h"
@@ -67,8 +66,13 @@ extern "C"
macros glibc may introduce, which have names of the pattern
__attribute_blah__. */
+#if defined (__clang__)
#define _libctf_printflike_(string_index,first_to_check) \
__attribute__ ((__format__ (__printf__, (string_index), (first_to_check))))
+#else
+#define _libctf_printflike_(string_index,first_to_check) \
+ __attribute__ ((__format__ (__gnu_printf__, (string_index), (first_to_check))))
+#endif
#define _libctf_unlikely_(x) __builtin_expect ((x), 0)
#define _libctf_unused_ __attribute__ ((__unused__))
#define _libctf_malloc_ __attribute__((__malloc__))
@@ -332,6 +336,11 @@ typedef struct ctf_dedup
hash. */
ctf_dynhash_t *cd_output_mapping_guard;
+ /* Maps from type hash values to an indication of their nonroot flag. 0 means
+ all root-visible; 1 means non-root-visible; 2 means a mixture. All values
+ other than 1 are deleted after hashing. */
+ ctf_dynhash_t *cd_nonroot_consistency;
+
/* Maps the global type IDs of structures in input TUs whose members still
need emission to the global type ID of the already-emitted target type
(which has no members yet) in the appropriate target. Uniquely, the latter
@@ -672,6 +681,7 @@ extern int ctf_dynhash_next (ctf_dynhash_t *, ctf_next_t **,
extern int ctf_dynhash_next_sorted (ctf_dynhash_t *, ctf_next_t **,
void **key, void **value, ctf_hash_sort_f,
void *);
+extern int ctf_dynhash_next_remove (ctf_next_t * const *);
extern ctf_dynset_t *ctf_dynset_create (htab_hash, htab_eq, ctf_hash_free_fun);
extern int ctf_dynset_insert (ctf_dynset_t *, void *);
@@ -718,10 +728,10 @@ extern int ctf_track_enumerator (ctf_dict_t *, ctf_id_t, const char *);
extern int ctf_dedup_atoms_init (ctf_dict_t *);
extern int ctf_dedup (ctf_dict_t *, ctf_dict_t **, uint32_t ninputs,
- int cu_mapped);
+ int cu_mapped_phase);
extern ctf_dict_t **ctf_dedup_emit (ctf_dict_t *, ctf_dict_t **,
uint32_t ninputs, uint32_t *parents,
- uint32_t *noutputs, int cu_mapped);
+ uint32_t *noutputs, int cu_mapped_phase);
extern void ctf_dedup_fini (ctf_dict_t *, ctf_dict_t **, uint32_t);
extern ctf_id_t ctf_dedup_type_mapping (ctf_dict_t *fp, ctf_dict_t *src_fp,
ctf_id_t src_type);
diff --git a/libctf/ctf-link.c b/libctf/ctf-link.c
index 2019c11..2d4401d 100644
--- a/libctf/ctf-link.c
+++ b/libctf/ctf-link.c
@@ -1385,6 +1385,7 @@ ctf_link_deduplicating (ctf_dict_t *fp)
ssize_t ninputs;
uint32_t noutputs;
uint32_t *parents;
+ int cu_phase = 0;
if (ctf_dedup_atoms_init (fp) < 0)
{
@@ -1392,9 +1393,20 @@ ctf_link_deduplicating (ctf_dict_t *fp)
return; /* Errno is set for us. */
}
- if (fp->ctf_link_out_cu_mapping
- && (ctf_link_deduplicating_per_cu (fp) < 0))
- return; /* Errno is set for us. */
+ /* Trigger a CU-mapped link if need be: one pass of dedups squashing inputs into
+ single child dicts corresponding to each CU mapping, and one pass that
+ treats those as if they are ordinary inputs and links them together.
+
+ This latter pass does need to act very slightly differently from normal, so we
+ keep track of the "CU phase", with 0 being a normal link, 1 being the
+ squash-together phase, and 2 being the final act-as-if-it-were-normal pass. */
+
+ if (fp->ctf_link_out_cu_mapping)
+ {
+ if (ctf_link_deduplicating_per_cu (fp) < 0)
+ return; /* Errno is set for us. */
+ cu_phase = 2;
+ }
if ((ninputs = ctf_link_deduplicating_count_inputs (fp, NULL, NULL)) < 0)
return; /* Errno is set for us. */
@@ -1406,7 +1418,7 @@ ctf_link_deduplicating (ctf_dict_t *fp)
if (ninputs == 1 && ctf_cuname (inputs[0]) != NULL)
ctf_cuname_set (fp, ctf_cuname (inputs[0]));
- if (ctf_dedup (fp, inputs, ninputs, 0) < 0)
+ if (ctf_dedup (fp, inputs, ninputs, cu_phase) < 0)
{
ctf_err_warn (fp, 0, 0, _("deduplication failed for %s"),
ctf_link_input_name (fp));
@@ -1414,7 +1426,7 @@ ctf_link_deduplicating (ctf_dict_t *fp)
}
if ((outputs = ctf_dedup_emit (fp, inputs, ninputs, parents, &noutputs,
- 0)) == NULL)
+ cu_phase)) == NULL)
{
ctf_err_warn (fp, 0, 0, _("deduplicating link type emission failed "
"for %s"), ctf_link_input_name (fp));
diff --git a/libctf/ctf-open.c b/libctf/ctf-open.c
index 449728f..8c08667 100644
--- a/libctf/ctf-open.c
+++ b/libctf/ctf-open.c
@@ -1426,6 +1426,8 @@ ctf_bufopen (const ctf_sect_t *ctfsect, const ctf_sect_t *symsect,
libctf_init_debug();
+ ctf_set_open_errno (errp, 0);
+
if ((ctfsect == NULL) || ((symsect != NULL) && (strsect == NULL)))
return (ctf_set_open_errno (errp, EINVAL));
diff --git a/libctf/ctf-types.c b/libctf/ctf-types.c
index 45200b7..044a185 100644
--- a/libctf/ctf-types.c
+++ b/libctf/ctf-types.c
@@ -187,10 +187,21 @@ ctf_member_next (ctf_dict_t *fp, ctf_id_t type, ctf_next_t **it,
*membtype = memb.ctlm_type;
offset = (unsigned long) CTF_LMEM_OFFSET (&memb);
- if (membname[0] == 0
- && (ctf_type_kind (fp, memb.ctlm_type) == CTF_K_STRUCT
- || ctf_type_kind (fp, memb.ctlm_type) == CTF_K_UNION))
- i->ctn_type = memb.ctlm_type;
+ if (membname[0] == 0)
+ {
+ ctf_id_t resolved;
+
+ if ((resolved = ctf_type_resolve (fp, memb.ctlm_type)) == CTF_ERR)
+ {
+ if (ctf_errno (fp) != ECTF_NONREPRESENTABLE)
+ return -1; /* errno is set for us. */
+ resolved = memb.ctlm_type;
+ }
+
+ if (ctf_type_kind (fp, resolved) == CTF_K_STRUCT
+ || ctf_type_kind (fp, resolved) == CTF_K_UNION)
+ i->ctn_type = resolved;
+ }
i->ctn_n++;
/* The callers might want automatic recursive sub-struct traversal. */
@@ -594,21 +605,31 @@ ctf_type_resolve_unsliced (ctf_dict_t *fp, ctf_id_t type)
{
ctf_dict_t *ofp = fp;
const ctf_type_t *tp;
+ ctf_id_t resolved_type;
if ((type = ctf_type_resolve (fp, type)) == CTF_ERR)
return CTF_ERR;
if ((tp = ctf_lookup_by_id (&fp, type)) == NULL)
return CTF_ERR; /* errno is set for us. */
+ resolved_type = type;
- if ((LCTF_INFO_KIND (fp, tp->ctt_info)) == CTF_K_SLICE)
+ do
{
- ctf_id_t ret;
+ type = resolved_type;
- if ((ret = ctf_type_reference (fp, type)) == CTF_ERR)
- return (ctf_set_typed_errno (ofp, ctf_errno (fp)));
- return ret;
+ if ((LCTF_INFO_KIND (fp, tp->ctt_info)) == CTF_K_SLICE)
+ if ((type = ctf_type_reference (fp, type)) == CTF_ERR)
+ return (ctf_set_typed_errno (ofp, ctf_errno (fp)));
+
+ if ((resolved_type = ctf_type_resolve (fp, type)) == CTF_ERR)
+ return CTF_ERR;
+
+ if ((tp = ctf_lookup_by_id (&fp, resolved_type)) == NULL)
+ return CTF_ERR; /* errno is set for us. */
}
+ while (LCTF_INFO_KIND (fp, tp->ctt_info) == CTF_K_SLICE);
+
return type;
}
@@ -1396,16 +1417,24 @@ ctf_member_info (ctf_dict_t *fp, ctf_id_t type, const char *name,
{
ctf_lmember_t memb;
const char *membname;
+ ctf_id_t resolved;
if (ctf_struct_member (fp, &memb, tp, vlen, vbytes, i) < 0)
return (ctf_set_errno (ofp, ctf_errno (fp)));
membname = ctf_strptr (fp, memb.ctlm_name);
+ if ((resolved = ctf_type_resolve (fp, memb.ctlm_type)) == CTF_ERR)
+ {
+ if (ctf_errno (fp) != ECTF_NONREPRESENTABLE)
+ return (ctf_set_errno (ofp, ctf_errno (fp)));
+ resolved = memb.ctlm_type;
+ }
+
if (membname[0] == 0
- && (ctf_type_kind (fp, memb.ctlm_type) == CTF_K_STRUCT
- || ctf_type_kind (fp, memb.ctlm_type) == CTF_K_UNION)
- && (ctf_member_info (fp, memb.ctlm_type, name, mip) == 0))
+ && (ctf_type_kind (fp, resolved) == CTF_K_STRUCT
+ || ctf_type_kind (fp, resolved) == CTF_K_UNION)
+ && (ctf_member_info (fp, resolved, name, mip) == 0))
{
mip->ctm_offset += (unsigned long) CTF_LMEM_OFFSET (&memb);
return 0;
diff --git a/libctf/doc/ctf-spec.texi b/libctf/doc/ctf-spec.texi
index a79ee5e..5b2b881 100644
--- a/libctf/doc/ctf-spec.texi
+++ b/libctf/doc/ctf-spec.texi
@@ -806,7 +806,7 @@ just very frequently @emph{referenced}.)
Here's the set of kinds so far. Each kind has a @code{#define} associated with
it, also given here.
-@multitable {Kind} {@code{CTF_K_VOLATILE}} {Indicates a type that cannot be represented in CTF, or that} {@xref{Pointers typedefs and cvr-quals}}
+@multitable {Kind} {@code{CTF_K_VOLATILE}} {Indicates a type that cannot be represented in CTF, or that}
@headitem Kind @tab Macro @tab Purpose
@item 0
@tab @code{CTF_K_UNKNOWN}
diff --git a/libctf/testsuite/libctf-lookup/add-to-opened.c b/libctf/testsuite/libctf-lookup/add-to-opened.c
index 96629af..700257e 100644
--- a/libctf/testsuite/libctf-lookup/add-to-opened.c
+++ b/libctf/testsuite/libctf-lookup/add-to-opened.c
@@ -15,7 +15,7 @@ main (int argc, char *argv[])
ctf_encoding_t en = { CTF_INT_SIGNED, 0, sizeof (int) };
unsigned char *ctf_written;
size_t size;
- int err;
+ int err = 666;
if (argc != 2)
{
@@ -25,9 +25,18 @@ main (int argc, char *argv[])
if ((ctf = ctf_open (argv[1], NULL, &err)) == NULL)
goto open_err;
+
+ /* The error int should be reset on success as well as on error. */
+ if (err != 0)
+ goto err_err;
+
+ err = 666;
if ((fp = ctf_dict_open (ctf, NULL, &err)) == NULL)
goto open_err;
+ if (err != 0)
+ goto err_err;
+
/* Check that various modifications to already-written types
are prohibited. */
@@ -145,4 +154,8 @@ main (int argc, char *argv[])
open_err:
fprintf (stderr, "%s: cannot open: %s\n", argv[0], ctf_errmsg (err));
return 1;
+
+ err_err:
+ fprintf (stderr, "%s: open error not set to success on success\n", argv[0]);
+ return 1;
}
diff --git a/libctf/testsuite/libctf-lookup/struct-iteration-ctf.c b/libctf/testsuite/libctf-lookup/struct-iteration-ctf.c
index 7df67ad..0a50d2c 100644
--- a/libctf/testsuite/libctf-lookup/struct-iteration-ctf.c
+++ b/libctf/testsuite/libctf-lookup/struct-iteration-ctf.c
@@ -6,12 +6,12 @@ struct foo_t
size_t bar;
const char *baz;
struct foo_t *self;
- union
+ const volatile union
{
double should_not_appear;
char *nor_should_this;
} named;
- struct
+ volatile const struct
{
long unnamed_sub_member;
union
@@ -19,6 +19,9 @@ struct foo_t
double one_more_level;
long yes_really_one_more;
};
+ struct {
+ int and_finally;
+ };
};
struct {}; /* Empty ones */
union {};
diff --git a/libctf/testsuite/libctf-lookup/struct-iteration.c b/libctf/testsuite/libctf-lookup/struct-iteration.c
index b240864..fd89ca7 100644
--- a/libctf/testsuite/libctf-lookup/struct-iteration.c
+++ b/libctf/testsuite/libctf-lookup/struct-iteration.c
@@ -51,11 +51,29 @@ main (int argc, char *argv[])
while ((offset = ctf_member_next (fp, type, &i, &name, &membtype,
CTF_MN_RECURSE)) >= 0)
{
+ ctf_membinfo_t memb;
char *type_name = ctf_type_aname (fp, membtype);
printf ("next test: %s, offset %zx, has type %lx/%s\n",
name, offset, membtype, type_name);
free (type_name);
+
+ /* Check that we can get the same member via ctf_member_info too. */
+ if (name[0] != '\0')
+ {
+ if (ctf_member_info (fp, type, name, &memb) != 0)
+ {
+ fprintf (stderr, "Cannot get member info for %s: %s\n",
+ name, ctf_errmsg (ctf_errno (fp)));
+ exit (1);
+ }
+ if (memb.ctm_offset != offset || memb.ctm_type != membtype)
+ {
+ fprintf (stderr, "ctf_member_info versus iteration comparison "
+ "failure: types %lx/%lx, offsets %zx/%lx\n",
+ membtype, memb.ctm_type, offset, memb.ctm_offset);
+ }
+ }
}
if (ctf_errno (fp) != ECTF_NEXT_END)
goto nerr;
diff --git a/libctf/testsuite/libctf-lookup/struct-iteration.lk b/libctf/testsuite/libctf-lookup/struct-iteration.lk
index fd64454..aecffd4 100644
--- a/libctf/testsuite/libctf-lookup/struct-iteration.lk
+++ b/libctf/testsuite/libctf-lookup/struct-iteration.lk
@@ -4,8 +4,8 @@ iter test: foo, offset [0-9a-f]*, has type [0-9a-f]*/int
iter test: bar, offset [0-9a-f]*, has type [0-9a-f]*/size_t
iter test: baz, offset [0-9a-f]*, has type [0-9a-f]*/const char \*
iter test: self, offset [0-9a-f]*, has type [0-9a-f]*/struct foo_t \*
-iter test: named, offset [0-9a-f]*, has type [0-9a-f]*/union
-iter test: , offset [0-9a-f]*, has type [0-9a-f]*/struct
+iter test: named, offset [0-9a-f]*, has type [0-9a-f]*/volatile const union
+iter test: , offset [0-9a-f]*, has type [0-9a-f]*/volatile const struct
iter test: , offset [0-9a-f]*, has type [0-9a-f]*/struct
iter test: , offset [0-9a-f]*, has type [0-9a-f]*/union
iter test: after_the_end, offset [0-9a-f]*, has type [0-9a-f]*/int
@@ -13,12 +13,14 @@ next test: foo, offset [0-9a-f]*, has type [0-9a-f]*/int
next test: bar, offset [0-9a-f]*, has type [0-9a-f]*/size_t
next test: baz, offset [0-9a-f]*, has type [0-9a-f]*/const char \*
next test: self, offset [0-9a-f]*, has type [0-9a-f]*/struct foo_t \*
-next test: named, offset [0-9a-f]*, has type [0-9a-f]*/union
-next test: , offset [0-9a-f]*, has type [0-9a-f]*/struct
+next test: named, offset [0-9a-f]*, has type [0-9a-f]*/volatile const union
+next test: , offset [0-9a-f]*, has type [0-9a-f]*/volatile const struct
next test: unnamed_sub_member, offset [0-9a-f]*, has type [0-9a-f]*/long int
next test: , offset [0-9a-f]*, has type [0-9a-f]*/union
next test: one_more_level, offset [0-9a-f]*, has type [0-9a-f]*/double
next test: yes_really_one_more, offset [0-9a-f]*, has type [0-9a-f]*/long int
next test: , offset [0-9a-f]*, has type [0-9a-f]*/struct
+next test: and_finally, offset [0-9a-f]*, has type [0-9a-f]*/int
+next test: , offset [0-9a-f]*, has type [0-9a-f]*/struct
next test: , offset [0-9a-f]*, has type [0-9a-f]*/union
next test: after_the_end, offset [0-9a-f]*, has type [0-9a-f]*/int
diff --git a/libctf/testsuite/libctf-writable/ctf-compressed.c b/libctf/testsuite/libctf-writable/ctf-compressed.c
index 4769cdb..646b603 100644
--- a/libctf/testsuite/libctf-writable/ctf-compressed.c
+++ b/libctf/testsuite/libctf-writable/ctf-compressed.c
@@ -119,10 +119,14 @@ main (int argc, char *argv[])
/* Dump the header of each archive member, and search for CTF_F_COMPRESS in
the resulting dump. */
+ err = 666;
while ((dump_fp = ctf_archive_next (final_arc, &i, NULL, 0, &err)) != NULL)
{
char *dumpstr;
+ if (err != 0)
+ fprintf (stderr, "err not set to success on success\n");
+
while ((dumpstr = ctf_dump (dump_fp, &dump_state, CTF_SECT_HEADER,
NULL, NULL)) != NULL)
{
diff --git a/libctf/testsuite/libctf-writable/ctf-nonroot-linking.c b/libctf/testsuite/libctf-writable/ctf-nonroot-linking.c
index 6edd189..67b85eb 100644
--- a/libctf/testsuite/libctf-writable/ctf-nonroot-linking.c
+++ b/libctf/testsuite/libctf-writable/ctf-nonroot-linking.c
@@ -24,16 +24,6 @@ main (int argc, char *argv[])
ctf_next_t *i = NULL;
int err;
- /* Linking does not currently work on mingw because of an unreliable tmpfile
- implementation on that platform (see
- https://github.com/msys2/MINGW-packages/issues/18878). Simply skip for
- now. */
-
-#ifdef __MINGW32__
- printf ("UNSUPPORTED: platform bug breaks ctf_link\n");
- return 0;
-#else
-
if ((fp = ctf_create (&err)) == NULL)
goto create_err;
@@ -123,5 +113,4 @@ main (int argc, char *argv[])
link_err:
fprintf (stderr, "Cannot link: %s\n", ctf_errmsg (ctf_errno (fp)));
return 1;
-#endif
}
diff --git a/libctf/testsuite/libctf-writable/slice-of-slice.c b/libctf/testsuite/libctf-writable/slice-of-slice.c
new file mode 100644
index 0000000..9bacfe2
--- /dev/null
+++ b/libctf/testsuite/libctf-writable/slice-of-slice.c
@@ -0,0 +1,77 @@
+/* Make sure that slices of slices are properly resolved. If they're not, both
+ population and lookup will fail. */
+
+#include <ctf-api.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+int main (void)
+{
+ ctf_dict_t *fp;
+ ctf_id_t base;
+ ctf_id_t slice;
+ ctf_id_t slice2;
+ ctf_encoding_t long_encoding = { CTF_INT_SIGNED, 0, sizeof (long) };
+ ctf_encoding_t foo;
+ int val;
+ int err;
+
+ if ((fp = ctf_create (&err)) == NULL)
+ {
+ fprintf (stderr, "Cannot create: %s\n", ctf_errmsg (err));
+ return 1;
+ }
+
+ if ((base = ctf_add_enum_encoded (fp, CTF_ADD_ROOT, "enom", &long_encoding))
+ == CTF_ERR)
+ goto err;
+
+ if (ctf_add_enumerator (fp, base, "a", 1) < 0 ||
+ ctf_add_enumerator (fp, base, "b", 0) < 0)
+ goto err;
+
+ foo.cte_format = 0;
+ foo.cte_bits = 4;
+ foo.cte_offset = 4;
+ if ((slice = ctf_add_slice (fp, CTF_ADD_ROOT, base, &foo)) == CTF_ERR)
+ goto err;
+
+ foo.cte_bits = 6;
+ foo.cte_offset = 2;
+ if ((slice2 = ctf_add_slice (fp, CTF_ADD_ROOT, slice, &foo)) == CTF_ERR)
+ goto err;
+
+ if (ctf_add_variable (fp, "foo", slice) < 0)
+ goto err;
+
+ if (ctf_enum_value (fp, slice, "a", &val) < 0)
+ {
+ fprintf (stderr, "Cannot look up value of sliced enum: %s\n", ctf_errmsg (ctf_errno (fp)));
+ return 1;
+ }
+ if (val != 1)
+ {
+ fprintf (stderr, "sliced enum value is wrong\n");
+ return 1;
+ }
+
+ if (ctf_enum_value (fp, slice2, "b", &val) < 0)
+ {
+ fprintf (stderr, "Cannot look up value of sliced sliced enum: %s\n", ctf_errmsg (ctf_errno (fp)));
+ return 1;
+ }
+ if (val != 0)
+ {
+ fprintf (stderr, "sliced sliced enum value is wrong\n");
+ return 1;
+ }
+
+ ctf_dict_close (fp);
+ fprintf (stderr, "All done.\n");
+ return 0;
+
+ err:
+ fprintf (stderr, "cannot populate: %s\n", ctf_errmsg (ctf_errno (fp)));
+ return 1;
+}
diff --git a/libctf/testsuite/libctf-writable/slice-of-slice.lk b/libctf/testsuite/libctf-writable/slice-of-slice.lk
new file mode 100644
index 0000000..b944f73
--- /dev/null
+++ b/libctf/testsuite/libctf-writable/slice-of-slice.lk
@@ -0,0 +1 @@
+All done.
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 83e9120..2ae5626 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,44 @@
+2025-05-13 Andreas Schwab <schwab@suse.de>
+
+ * regex.c (regex_compile): Don't write beyond array bounds when
+ collecting range expression.
+
+2025-03-29 Iain Sandoe <iain@sandoe.co.uk>
+
+ PR cobol/119283
+ * Makefile.in: Add memrchr build rules.
+ * config.in: Regenerate.
+ * configure: Regenerate.
+ * configure.ac: Check for memrchr.
+ * functions.texi: Document memrchr.
+ * memrchr.c: New file.
+
+2025-03-25 Iain Sandoe <iain@sandoe.co.uk>
+
+ PR other/119218
+ * config.in: Regenerate.
+ * configure: Regenerate.
+ * configure.ac: Append <libgen.h> to AC_INCLUDES_DEFAULT
+ when checking for the 'basename' decl.
+
+2025-03-18 Jose E. Marchesi <jose.marchesi@oracle.com>
+
+ * ldirname.c: New file.
+ * Makefile.in (CFILES): Add ldirname.c.
+ (REQUIRED_OFILES): Add ldirname.$(objext).
+ (./ldirname.$(objext)): New rule.
+ * makefile.vms (OBJS): Add ldirname.obj.
+ * configure.com (FILES): Add ldirname.
+
+2024-12-11 Matthieu Longo <matthieu.longo@arm.com>
+
+ * configure: Regenerate.
+ * configure.ac: Fix autoupdate warnings.
+
+2024-12-11 Sangamesh Mallayya <swamy.sangamesh@gmail.com>
+
+ * getopt.c: Remove _NO_PROTO block
+
2024-11-19 Evgeny Karpov <evgeny.karpov@microsoft.com>
* simple-object-coff.c: Add aarch64.
diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
index b11df75..387975d 100644
--- a/libiberty/Makefile.in
+++ b/libiberty/Makefile.in
@@ -136,10 +136,11 @@ CFILES = alloca.c argv.c asprintf.c atexit.c \
hashtab.c hex.c \
index.c insque.c \
lbasename.c \
+ ldirname.c \
lrealpath.c \
make-relative-prefix.c \
- make-temp-file.c md5.c memchr.c memcmp.c memcpy.c memmem.c \
- memmove.c mempcpy.c memset.c mkstemps.c \
+ make-temp-file.c md5.c memchr.c memrchr.c memcmp.c memcpy.c \
+ memmem.c memmove.c mempcpy.c memset.c mkstemps.c \
objalloc.c obstack.c \
partition.c pexecute.c \
pex-common.c pex-djgpp.c pex-msdos.c pex-one.c \
@@ -179,7 +180,7 @@ REQUIRED_OFILES = \
./fnmatch.$(objext) ./fopen_unlocked.$(objext) \
./getopt.$(objext) ./getopt1.$(objext) ./getpwd.$(objext) \
./getruntime.$(objext) ./hashtab.$(objext) ./hex.$(objext) \
- ./lbasename.$(objext) ./lrealpath.$(objext) \
+ ./lbasename.$(objext) ./ldirname.$(objext) ./lrealpath.$(objext)\
./make-relative-prefix.$(objext) ./make-temp-file.$(objext) \
./objalloc.$(objext) \
./obstack.$(objext) \
@@ -212,8 +213,8 @@ CONFIGURED_OFILES = ./asprintf.$(objext) ./atexit.$(objext) \
./getcwd.$(objext) ./getpagesize.$(objext) \
./gettimeofday.$(objext) \
./index.$(objext) ./insque.$(objext) \
- ./memchr.$(objext) ./memcmp.$(objext) ./memcpy.$(objext) \
- ./memmem.$(objext) ./memmove.$(objext) \
+ ./memchr.$(objext) ./memrchr.$(objext) ./memcmp.$(objext) \
+ ./memcpy.$(objext) ./memmem.$(objext) ./memmove.$(objext) \
./mempcpy.$(objext) ./memset.$(objext) ./mkstemps.$(objext) \
./pex-djgpp.$(objext) ./pex-msdos.$(objext) \
./pex-unix.$(objext) ./pex-win32.$(objext) \
@@ -966,6 +967,17 @@ $(CONFIGURED_OFILES): stamp-picdir stamp-noasandir
else true; fi
$(COMPILE.c) $(srcdir)/lbasename.c $(OUTPUT_OPTION)
+./ldirname.$(objext): $(srcdir)/ldirname.c config.h $(INCDIR)/ansidecl.h \
+ $(INCDIR)/filenames.h $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h \
+ $(INCDIR)/safe-ctype.h
+ if [ x"$(PICFLAG)" != x ]; then \
+ $(COMPILE.c) $(PICFLAG) $(srcdir)/ldirname.c -o pic/$@; \
+ else true; fi
+ if [ x"$(NOASANFLAG)" != x ]; then \
+ $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/ldirname.c -o noasan/$@; \
+ else true; fi
+ $(COMPILE.c) $(srcdir)/ldirname.c $(OUTPUT_OPTION)
+
./lrealpath.$(objext): $(srcdir)/lrealpath.c config.h $(INCDIR)/ansidecl.h \
$(INCDIR)/libiberty.h
if [ x"$(PICFLAG)" != x ]; then \
@@ -1014,6 +1026,15 @@ $(CONFIGURED_OFILES): stamp-picdir stamp-noasandir
else true; fi
$(COMPILE.c) $(srcdir)/memchr.c $(OUTPUT_OPTION)
+./memrchr.$(objext): $(srcdir)/memrchr.c $(INCDIR)/ansidecl.h
+ if [ x"$(PICFLAG)" != x ]; then \
+ $(COMPILE.c) $(PICFLAG) $(srcdir)/memrchr.c -o pic/$@; \
+ else true; fi
+ if [ x"$(NOASANFLAG)" != x ]; then \
+ $(COMPILE.c) $(PICFLAG) $(NOASANFLAG) $(srcdir)/memrchr.c -o noasan/$@; \
+ else true; fi
+ $(COMPILE.c) $(srcdir)/memrchr.c $(OUTPUT_OPTION)
+
./memcmp.$(objext): $(srcdir)/memcmp.c $(INCDIR)/ansidecl.h
if [ x"$(PICFLAG)" != x ]; then \
$(COMPILE.c) $(PICFLAG) $(srcdir)/memcmp.c -o pic/$@; \
diff --git a/libiberty/config.in b/libiberty/config.in
index 1b1f2b0..3b87165 100644
--- a/libiberty/config.in
+++ b/libiberty/config.in
@@ -153,6 +153,9 @@
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
+/* Define to 1 if you have the <libgen.h> header file. */
+#undef HAVE_LIBGEN_H
+
/* Define to 1 if you have the <limits.h> header file. */
#undef HAVE_LIMITS_H
@@ -183,6 +186,9 @@
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
+/* Define to 1 if you have the `memrchr' function. */
+#undef HAVE_MEMRCHR
+
/* Define to 1 if you have the `memset' function. */
#undef HAVE_MEMSET
diff --git a/libiberty/configure b/libiberty/configure
index f83b42f..f0309ff 100755
--- a/libiberty/configure
+++ b/libiberty/configure
@@ -5745,7 +5745,7 @@ host_makefile_frag=${frag}
# It's OK to check for header files. Although the compiler may not be
# able to link anything, it had better be able to at least compile
# something.
-for ac_header in sys/file.h sys/param.h limits.h stdlib.h malloc.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h sys/pstat.h sys/sysmp.h sys/sysinfo.h machine/hal_sysinfo.h sys/table.h sys/sysctl.h sys/systemcfg.h stdint.h stdio_ext.h process.h sys/prctl.h spawn.h
+for ac_header in sys/file.h sys/param.h limits.h stdlib.h malloc.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h sys/pstat.h sys/sysmp.h sys/sysinfo.h machine/hal_sysinfo.h sys/table.h sys/sysctl.h sys/systemcfg.h stdint.h stdio_ext.h process.h sys/prctl.h spawn.h libgen.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_preproc "$LINENO" "$ac_header" "$as_ac_Header"
@@ -6210,6 +6210,7 @@ funcs="$funcs gettimeofday"
funcs="$funcs index"
funcs="$funcs insque"
funcs="$funcs memchr"
+funcs="$funcs memrchr"
funcs="$funcs memcmp"
funcs="$funcs memcpy"
funcs="$funcs memmem"
@@ -6276,7 +6277,7 @@ if test "x" = "y"; then
ffs __fsetlocking \
getcwd getpagesize getrlimit getrusage getsysinfo gettimeofday \
index insque \
- memchr memcmp memcpy memmem memmove memset mkstemps \
+ memchr memrchr memcmp memcpy memmem memmove memset mkstemps \
on_exit \
pipe2 posix_spawn posix_spawnp psignal \
pstat_getdynamic pstat_getstatic putenv \
@@ -6691,7 +6692,7 @@ esac
for f in atexit basename bcmp bcopy bsearch bzero calloc clock ffs \
getcwd getpagesize getrusage gettimeofday \
- index insque memchr memcmp memcpy memmove memset psignal \
+ index insque memchr memrchr memcmp memcpy memmove memset psignal \
putenv random rename rindex sbrk setenv stpcpy strcasecmp \
strchr strdup strerror strncasecmp strrchr strstr strtod \
strtol strtoul sysconf times tmpnam vfprintf vprintf \
@@ -7389,7 +7390,12 @@ fi
done
as_ac_Symbol=`$as_echo "ac_cv_have_decl_basename(char *)" | $as_tr_sh`
-ac_fn_c_check_decl "$LINENO" "basename(char *)" "$as_ac_Symbol" "$ac_includes_default"
+ac_fn_c_check_decl "$LINENO" "basename(char *)" "$as_ac_Symbol" "
+$ac_includes_default
+#ifdef HAVE_LIBGEN_H
+# include <libgen.h>
+#endif
+"
if eval test \"x\$"$as_ac_Symbol"\" = x"yes"; then :
ac_have_decl=1
else
@@ -7399,7 +7405,8 @@ fi
cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_BASENAME $ac_have_decl
_ACEOF
-ac_fn_c_check_decl "$LINENO" "ffs" "ac_cv_have_decl_ffs" "$ac_includes_default"
+
+ ac_fn_c_check_decl "$LINENO" "ffs" "ac_cv_have_decl_ffs" "$ac_includes_default"
if test "x$ac_cv_have_decl_ffs" = xyes; then :
ac_have_decl=1
else
diff --git a/libiberty/configure.ac b/libiberty/configure.ac
index c27e08e..3de5eca 100644
--- a/libiberty/configure.ac
+++ b/libiberty/configure.ac
@@ -291,7 +291,7 @@ AC_SUBST_FILE(host_makefile_frag)
# It's OK to check for header files. Although the compiler may not be
# able to link anything, it had better be able to at least compile
# something.
-AC_CHECK_HEADERS(sys/file.h sys/param.h limits.h stdlib.h malloc.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h sys/pstat.h sys/sysmp.h sys/sysinfo.h machine/hal_sysinfo.h sys/table.h sys/sysctl.h sys/systemcfg.h stdint.h stdio_ext.h process.h sys/prctl.h spawn.h)
+AC_CHECK_HEADERS(sys/file.h sys/param.h limits.h stdlib.h malloc.h string.h unistd.h strings.h sys/time.h time.h sys/resource.h sys/stat.h sys/mman.h fcntl.h alloca.h sys/pstat.h sys/sysmp.h sys/sysinfo.h machine/hal_sysinfo.h sys/table.h sys/sysctl.h sys/systemcfg.h stdint.h stdio_ext.h process.h sys/prctl.h spawn.h libgen.h)
AC_HEADER_SYS_WAIT
AC_HEADER_TIME
@@ -370,6 +370,7 @@ funcs="$funcs gettimeofday"
funcs="$funcs index"
funcs="$funcs insque"
funcs="$funcs memchr"
+funcs="$funcs memrchr"
funcs="$funcs memcmp"
funcs="$funcs memcpy"
funcs="$funcs memmem"
@@ -436,7 +437,7 @@ if test "x" = "y"; then
ffs __fsetlocking \
getcwd getpagesize getrlimit getrusage getsysinfo gettimeofday \
index insque \
- memchr memcmp memcpy memmem memmove memset mkstemps \
+ memchr memrchr memcmp memcpy memmem memmove memset mkstemps \
on_exit \
pipe2 posix_spawn posix_spawnp psignal \
pstat_getdynamic pstat_getstatic putenv \
@@ -555,7 +556,7 @@ if test -n "${with_target_subdir}"; then
for f in atexit basename bcmp bcopy bsearch bzero calloc clock ffs \
getcwd getpagesize getrusage gettimeofday \
- index insque memchr memcmp memcpy memmove memset psignal \
+ index insque memchr memrchr memcmp memcpy memmove memset psignal \
putenv random rename rindex sbrk setenv stpcpy strcasecmp \
strchr strdup strerror strncasecmp strrchr strstr strtod \
strtol strtoul sysconf times tmpnam vfprintf vprintf \
@@ -723,7 +724,12 @@ if test -z "${setobjs}"; then
[AC_MSG_RESULT([no])])
AC_CHECK_FUNCS($checkfuncs)
- AC_CHECK_DECLS([basename(char *), ffs, asprintf, vasprintf, snprintf, vsnprintf])
+ AC_CHECK_DECLS([basename(char *)], [], [], [
+AC_INCLUDES_DEFAULT
+#ifdef HAVE_LIBGEN_H
+# include <libgen.h>
+#endif])
+ AC_CHECK_DECLS([ffs, asprintf, vasprintf, snprintf, vsnprintf])
AC_CHECK_DECLS([calloc, getenv, getopt, malloc, realloc])
case "${host}" in
*-*-darwin*) ;; # Darwin's sbrk implementation is deprecated.
diff --git a/libiberty/configure.com b/libiberty/configure.com
index 03018291..55aee2f 100644
--- a/libiberty/configure.com
+++ b/libiberty/configure.com
@@ -17,7 +17,7 @@ $DECK
$ FILES="getopt,obstack,xexit,xmalloc,hex,getopt1,cplus-dem,cp-demangle,"+-
"cp-demint,asprintf,vasprintf,mkstemps,concat,getruntime,getpagesize,"+-
"getpwd,xstrerror,xmemdup,xstrdup,xatexit,choose-temp,fnmatch,objalloc,"+-
- "safe-ctype,hashtab,lbasename,argv,lrealpath,make-temp-file,"+-
+ "safe-ctype,hashtab,lbasename,ldirname,argv,lrealpath,make-temp-file,"+-
"stpcpy,unlink-if-ordinary"
$ OPT="/noopt/debug/warnings=disable=(missingreturn)"
$ CFLAGS=OPT + "/include=([],[-.include])/name=(as_is,shortened)" +-
diff --git a/libiberty/functions.texi b/libiberty/functions.texi
index b56b02e..7c7da1b 100644
--- a/libiberty/functions.texi
+++ b/libiberty/functions.texi
@@ -749,6 +749,20 @@ returned.
@end deftypefn
+@c memrchr.c:3
+@deftypefn Supplemental void* memrchr (const void *@var{s}, int @var{c}, @
+ size_t @var{n})
+
+This function searches memory for the character @var{c} in reverse order,
+starting at @code{*@var{s}+@var{n}-1} . The search only ends with
+the first occurrence of @var{c}, or when the start us reached; in particular,
+a null character does not terminate the search. If the character @var{c} is
+found within @var{length} characters of @code{*@var{s}}, a pointer
+to the character is returned. If @var{c} is not found, then @code{NULL} is
+returned.
+
+@end deftypefn
+
@c memcmp.c:6
@deftypefn Supplemental int memcmp (const void *@var{x}, const void *@var{y}, @
size_t @var{count})
diff --git a/libiberty/ldirname.c b/libiberty/ldirname.c
new file mode 100644
index 0000000..e3cd5c8
--- /dev/null
+++ b/libiberty/ldirname.c
@@ -0,0 +1,94 @@
+/* Libiberty dirname. Like dirname, but is not overridden by the
+ system C library.
+ Copyright (C) 2025 Free Software Foundation, Inc.
+
+This file is part of the libiberty library.
+Libiberty is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public
+License as published by the Free Software Foundation; either
+version 2 of the License, or (at your option) any later version.
+
+Libiberty 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
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with libiberty; see the file COPYING.LIB. If
+not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
+Boston, MA 02110-1301, USA. */
+
+/*
+
+@deftypefn Replacement {char*} ldirname (const char *@var{name})
+
+Given a pointer to a string containing a typical pathname
+(@samp{/usr/src/cmd/ls/ls.c} for example), returns a string containing the
+passed string up to, but not including, the final directory separator.
+
+If the given pathname doesn't contain a directory separator then this funtion
+returns the empty string; this includes an empty given pathname. @code{NULL}
+is returned on memory allocation error.
+
+@end deftypefn
+
+*/
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include "ansidecl.h"
+#include "libiberty.h"
+#include "safe-ctype.h"
+#include "filenames.h"
+
+/* For malloc. */
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+/* For memcpy. */
+# if HAVE_STRING_H
+# include <string.h>
+# else
+# if HAVE_STRINGS_H
+# include <strings.h>
+# endif
+# endif
+
+#define LDIRNAME(FPREFIX,DIRSEP) \
+ char *FPREFIX##_ldirname (const char *name) \
+ { \
+ /* Note that lbasename guarantees that the returned */ \
+ /* pointer lies within the passed string. */ \
+ const char *basename = FPREFIX##_lbasename (name); \
+ size_t size = basename - name; \
+ char *res = NULL; \
+ \
+ res = (char*) malloc (size + 1); \
+ if (res != NULL) \
+ { \
+ if (size > 0) \
+ { \
+ if (IS_DIR_SEPARATOR_1 ((DIRSEP),name[size - 1])) \
+ size -= 1; \
+ memcpy (res, name, size); \
+ } \
+ res[size] = '\0'; \
+ } \
+ \
+ return res; \
+ }
+
+LDIRNAME(dos,1)
+LDIRNAME(unix,0)
+
+char *
+ldirname (const char *name)
+{
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+ return dos_ldirname (name);
+#else
+ return unix_ldirname (name);
+#endif
+}
diff --git a/libiberty/makefile.vms b/libiberty/makefile.vms
index 15a7d0a..4cfcc98 100644
--- a/libiberty/makefile.vms
+++ b/libiberty/makefile.vms
@@ -12,7 +12,7 @@ OBJS=getopt.obj,obstack.obj,xexit.obj,xmalloc.obj,hex.obj,\
asprintf.obj vasprintf.obj,mkstemps.obj,filename_cmp.obj,\
concat.obj,getruntime.obj,getpagesize.obj,getpwd.obj,xstrerror.obj,\
xmemdup.obj,xstrdup.obj,xatexit.obj,choose-temp.obj,fnmatch.obj,\
- objalloc.obj,safe-ctype.obj,hashtab.obj,lbasename.obj,argv.obj,\
+ objalloc.obj,safe-ctype.obj,hashtab.obj,lbasename.obj,ldirname.obj,argv.obj,\
lrealpath.obj,make-temp-file.obj,stpcpy.obj,unlink-if-ordinary.obj,\
dwarfnames.obj
diff --git a/libiberty/memrchr.c b/libiberty/memrchr.c
new file mode 100644
index 0000000..fe7713e
--- /dev/null
+++ b/libiberty/memrchr.c
@@ -0,0 +1,33 @@
+/*
+
+@deftypefn Supplemental void* memrchr (const void *@var{s}, int @var{c}, @
+ size_t @var{n})
+
+This function searches memory for the character @var{c} in reverse order,
+starting at @code{*@var{s}+@var{n}-1} . The search only ends with
+the first occurrence of @var{c}, or when the start us reached; in particular,
+a null character does not terminate the search. If the character @var{c} is
+found within @var{length} characters of @code{*@var{s}}, a pointer
+to the character is returned. If @var{c} is not found, then @code{NULL} is
+returned.
+
+@end deftypefn
+
+*/
+
+#include <ansidecl.h>
+#include <stddef.h>
+
+void *
+memrchr (const void *src_void, int c, size_t length)
+{
+ if (length == 0)
+ return NULL;
+
+ const unsigned char *p = (const unsigned char*)src_void;
+ p += length;
+ while (*--p != (unsigned char)c)
+ if (src_void == p)
+ return NULL;
+ return (void *)p;
+}
diff --git a/libiberty/regex.c b/libiberty/regex.c
index bc36f43..8337dea 100644
--- a/libiberty/regex.c
+++ b/libiberty/regex.c
@@ -3468,7 +3468,7 @@ PREFIX(regex_compile) (const char *ARG_PREFIX(pattern),
PATFETCH (c);
if ((c == '.' && *p == ']') || p == pend)
break;
- if (c1 < sizeof (str))
+ if (c1 < sizeof (str) - 1)
str[c1++] = c;
else
/* This is in any case an invalid class name. */
diff --git a/libsframe/doc/sframe-spec.texi b/libsframe/doc/sframe-spec.texi
index ae11570..6b8dfa8 100644
--- a/libsframe/doc/sframe-spec.texi
+++ b/libsframe/doc/sframe-spec.texi
@@ -21,6 +21,8 @@ License''.
@titlepage
@title The SFrame Format
@subtitle Version 2
+@sp 15
+@center @today{}
@author Indu Bhagat
@page
diff --git a/libsframe/sframe.c b/libsframe/sframe.c
index c2693b9..d38a61d 100644
--- a/libsframe/sframe.c
+++ b/libsframe/sframe.c
@@ -369,43 +369,34 @@ sframe_decoder_get_funcdesc_at_index (sframe_decoder_ctx *ctx,
static bool
sframe_fre_check_range_p (sframe_func_desc_entry *fdep,
- int32_t start_ip_offset, int32_t end_ip_offset,
+ uint32_t start_ip_offset, uint32_t end_ip_offset,
int32_t pc)
{
- int32_t start_ip, end_ip;
int32_t func_start_addr;
uint8_t rep_block_size;
uint32_t fde_type;
- int32_t masked_pc;
+ uint32_t pc_offset;
bool mask_p;
- bool ret;
-
- ret = false;
if (!fdep)
- return ret;
+ return false;
func_start_addr = fdep->sfde_func_start_address;
fde_type = sframe_get_fde_type (fdep);
mask_p = (fde_type == SFRAME_FDE_TYPE_PCMASK);
rep_block_size = fdep->sfde_func_rep_size;
- if (!mask_p)
- {
- start_ip = start_ip_offset + func_start_addr;
- end_ip = end_ip_offset + func_start_addr;
- ret = ((start_ip <= pc) && (end_ip >= pc));
- }
- else
- {
- /* For FDEs for repetitive pattern of insns, we need to return the FRE
- where pc % rep_block_size is between start_ip_offset and
- end_ip_offset. */
- masked_pc = pc % rep_block_size;
- ret = ((start_ip_offset <= masked_pc) && (end_ip_offset >= masked_pc));
- }
+ if (func_start_addr > pc)
+ return false;
+
+ /* Given func_start_addr <= pc, pc - func_start_addr must be positive. */
+ pc_offset = pc - func_start_addr;
+ /* For SFrame FDEs encoding information for repetitive pattern of insns,
+ masking with the rep_block_size is necessary to find the matching FRE. */
+ if (mask_p)
+ pc_offset = pc_offset % rep_block_size;
- return ret;
+ return (start_ip_offset <= pc_offset) && (end_ip_offset >= pc_offset);
}
static int
@@ -1036,7 +1027,7 @@ sframe_get_funcdesc_with_addr_internal (sframe_decoder_ctx *ctx, int32_t addr,
{
sframe_header *dhp;
sframe_func_desc_entry *fdp;
- int low, high, cnt;
+ int low, high;
if (ctx == NULL)
return sframe_ret_set_errno (errp, SFRAME_ERR_INVAL);
@@ -1053,23 +1044,20 @@ sframe_get_funcdesc_with_addr_internal (sframe_decoder_ctx *ctx, int32_t addr,
/* Do the binary search. */
fdp = (sframe_func_desc_entry *) ctx->sfd_funcdesc;
low = 0;
- high = dhp->sfh_num_fdes;
- cnt = high;
+ high = dhp->sfh_num_fdes - 1;
while (low <= high)
{
int mid = low + (high - low) / 2;
- if (fdp[mid].sfde_func_start_address == addr)
+ /* Given sfde_func_start_address <= addr,
+ addr - sfde_func_start_address must be positive. */
+ if (fdp[mid].sfde_func_start_address <= addr
+ && ((uint32_t)(addr - fdp[mid].sfde_func_start_address)
+ < fdp[mid].sfde_func_size))
return fdp + mid;
if (fdp[mid].sfde_func_start_address < addr)
- {
- if (mid == (cnt - 1)) /* Check if it's the last one. */
- return fdp + (cnt - 1);
- else if (fdp[mid+1].sfde_func_start_address > addr)
- return fdp + mid;
- low = mid + 1;
- }
+ low = mid + 1;
else
high = mid - 1;
}
@@ -1112,14 +1100,12 @@ sframe_find_fre (sframe_decoder_ctx *ctx, int32_t pc,
{
sframe_frame_row_entry cur_fre;
sframe_func_desc_entry *fdep;
- uint32_t fre_type, fde_type, i;
- int32_t start_ip_offset;
+ uint32_t fre_type, i;
int32_t func_start_addr;
- int32_t end_ip_offset;
+ uint32_t start_ip_offset, end_ip_offset;
const char *fres;
size_t size = 0;
int err = 0;
- bool mask_p;
if ((ctx == NULL) || (frep == NULL))
return sframe_set_errno (&err, SFRAME_ERR_INVAL);
@@ -1130,8 +1116,6 @@ sframe_find_fre (sframe_decoder_ctx *ctx, int32_t pc,
return sframe_set_errno (&err, SFRAME_ERR_DCTX_INVAL);
fre_type = sframe_get_fre_type (fdep);
- fde_type = sframe_get_fde_type (fdep);
- mask_p = (fde_type == SFRAME_FDE_TYPE_PCMASK);
fres = ctx->sfd_fres + fdep->sfde_func_start_fre_off;
func_start_addr = fdep->sfde_func_start_address;
@@ -1145,8 +1129,9 @@ sframe_find_fre (sframe_decoder_ctx *ctx, int32_t pc,
start_ip_offset = cur_fre.fre_start_addr;
end_ip_offset = sframe_fre_get_end_ip_offset (fdep, i, fres + size);
- /* First FRE's start_ip must be more than pc for regular SFrame FDEs. */
- if (i == 0 && !mask_p && (start_ip_offset + func_start_addr) > pc)
+ /* Stop search if FRE's start_ip is greater than pc. Given
+ func_start_addr <= pc, pc - func_start_addr must be positive. */
+ if (start_ip_offset > (uint32_t)(pc - func_start_addr))
return sframe_set_errno (&err, SFRAME_ERR_FRE_INVAL);
if (sframe_fre_check_range_p (fdep, start_ip_offset, end_ip_offset, pc))
diff --git a/libsframe/testsuite/libsframe.find/findfre-1.c b/libsframe/testsuite/libsframe.find/findfre-1.c
index 5b1da05..94fe2e9 100644
--- a/libsframe/testsuite/libsframe.find/findfre-1.c
+++ b/libsframe/testsuite/libsframe.find/findfre-1.c
@@ -28,64 +28,82 @@
#include <dejagnu.h>
static int
-add_fde1 (sframe_encoder_ctx *encode, int idx)
+add_fde1 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
+ uint32_t sframe_vaddr, int idx, uint32_t *func_size)
{
- int i, err;
/* A contiguous block containing 4 FREs. */
- sframe_frame_row_entry fres[]
+#define FDE1_NUM_FRES 4
+ sframe_frame_row_entry fres[FDE1_NUM_FRES]
= { {0x0, {0x1, 0, 0}, 0x3},
{0x1, {0x2, 0xf0, 0}, 0x5},
{0x10, {0x3, 0xf0, 0}, 0x4},
{0x38, {0x8, 0xf0, 0}, 0x5}
};
+ /* Function size in bytes. P.S. Must be a value greater than the
+ fre_start_addr of the last FRE above (0x38). */
+ *func_size = 0x40;
+ int32_t func1_start_addr = start_pc_vaddr - sframe_vaddr;
unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1,
SFRAME_FDE_TYPE_PCINC);
- err = sframe_encoder_add_funcdesc (encode, 0xfffff03e, 0x40, finfo, 4);
+ int err = sframe_encoder_add_funcdesc (encode, func1_start_addr, *func_size,
+ finfo, FDE1_NUM_FRES);
if (err == -1)
return err;
- for (i = 0; i < 4; i++)
- if (sframe_encoder_add_fre (encode, idx,fres+i) == SFRAME_ERR)
+ for (unsigned int i = 0; i < FDE1_NUM_FRES; i++)
+ if (sframe_encoder_add_fre (encode, idx, fres + i) == SFRAME_ERR)
return -1;
return 0;
}
static int
-add_fde2 (sframe_encoder_ctx *encode, int idx)
+add_fde2 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
+ uint32_t sframe_vaddr, int idx, uint32_t *func_size)
{
- int i, err;
/* A contiguous block containing 4 FREs. */
- sframe_frame_row_entry fres[]
+#define FDE2_NUM_FRES 4
+ sframe_frame_row_entry fres[FDE2_NUM_FRES]
= { {0x0, {0x10, 0, 0}, 0x3},
{0x10, {0x12, 0xf0, 0}, 0x5},
{0x14, {0x14, 0xf0, 0}, 0x4},
{0x20, {0x15, 0xf0, 0}, 0x5}
};
+ /* Function size in bytes. P.S. Must be a value greater than the
+ fre_start_addr of the last FRE above (0x20). */
+ *func_size = 0x60;
+ int32_t func2_start_addr = start_pc_vaddr - sframe_vaddr;
unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1,
SFRAME_FDE_TYPE_PCINC);
- err = sframe_encoder_add_funcdesc (encode, 0xfffff08e, 0x60, finfo, 4);
+ int err = sframe_encoder_add_funcdesc (encode, func2_start_addr, *func_size,
+ finfo, FDE2_NUM_FRES);
if (err == -1)
return err;
- for (i = 0; i < 4; i++)
- if (sframe_encoder_add_fre (encode, idx, fres+i) == SFRAME_ERR)
+ for (unsigned int i = 0; i < FDE2_NUM_FRES; i++)
+ if (sframe_encoder_add_fre (encode, idx, fres + i) == SFRAME_ERR)
return -1;
return 0;
}
-int main (void)
+static
+void test_text_findfre (uint32_t text_vaddr, uint32_t sframe_vaddr)
{
sframe_encoder_ctx *encode;
sframe_decoder_ctx *dctx;
sframe_frame_row_entry frep;
+ uint32_t func1_start_vaddr;
+ uint32_t func2_start_vaddr;
+ uint32_t func1_size = 0;
+ uint32_t func2_size = 0;
+ uint32_t fde_cnt = 0;
+ int32_t lookup_pc;
char *sframe_buf;
size_t sf_size;
int err = 0;
- unsigned int fde_cnt = 0;
#define TEST(name, cond) \
do \
@@ -103,10 +121,13 @@ int main (void)
-8, /* Fixed RA offset for AMD64. */
&err);
- err = add_fde1 (encode, 0);
+ func1_start_vaddr = text_vaddr;
+ err = add_fde1 (encode, func1_start_vaddr, sframe_vaddr, 0, &func1_size);
TEST ("findfre-1: Adding FDE1", err == 0);
- err = add_fde2 (encode, 1);
+ /* Function 2 is placed after 0x10 bytes from the end of Function 1. */
+ func2_start_vaddr = func1_start_vaddr + func1_size + 0x10;
+ err = add_fde2 (encode, func2_start_vaddr, sframe_vaddr, 1, &func2_size);
TEST ("findfre-1: Adding FDE2", err == 0);
fde_cnt = sframe_encoder_get_num_fidx (encode);
@@ -116,40 +137,58 @@ int main (void)
TEST ("findfre-1: Encoder write", err == 0);
dctx = sframe_decode (sframe_buf, sf_size, &err);
- TEST("findfre-1: Decoder setup", dctx != NULL);
+ TEST ("findfre-1: Decoder setup", dctx != NULL);
/* Find the third FRE in first FDE. */
- err = sframe_find_fre (dctx, (0xfffff03e + 0x15), &frep);
- TEST("findfre-1: Find third FRE",
- ((err == 0) && (sframe_fre_get_cfa_offset(dctx, &frep, &err) == 0x3)));
+ lookup_pc = func1_start_vaddr + 0x15 - sframe_vaddr;
+ err = sframe_find_fre (dctx, lookup_pc, &frep);
+ TEST ("findfre-1: Find third FRE",
+ (err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x3));
/* Find an FRE for PC at the end of range covered by FRE. */
- err = sframe_find_fre (dctx, (0xfffff03e + 0x9), &frep);
- TEST("findfre-1: Find FRE for last PC covered by FRE",
- ((err == 0) && (sframe_fre_get_cfa_offset(dctx, &frep, &err) == 0x2)));
+ lookup_pc = func1_start_vaddr + 0x9 - sframe_vaddr;
+ err = sframe_find_fre (dctx, lookup_pc, &frep);
+ TEST ("findfre-1: Find FRE for last PC covered by FRE",
+ (err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x2));
/* Find the last FRE in first FDE. */
- err = sframe_find_fre (dctx, (0xfffff03e + 0x39), &frep);
- TEST("findfre-1: Find last FRE",
- ((err == 0) && (sframe_fre_get_cfa_offset(dctx, &frep, &err) == 0x8)));
+ lookup_pc = func1_start_vaddr + 0x39 - sframe_vaddr;
+ err = sframe_find_fre (dctx, lookup_pc, &frep);
+ TEST ("findfre-1: Find last FRE",
+ (err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x8));
/* Find the second FRE in second FDE. */
- err = sframe_find_fre (dctx, (0xfffff08e + 0x11), &frep);
- TEST("findfre-1: Find second FRE",
- ((err == 0) && (sframe_fre_get_cfa_offset(dctx, &frep, &err) == 0x12)));
+ lookup_pc = func2_start_vaddr + 0x11 - sframe_vaddr;
+ err = sframe_find_fre (dctx, lookup_pc, &frep);
+ TEST ("findfre-1: Find second FRE",
+ (err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x12));
/* Find the first FRE in second FDE. */
- err = sframe_find_fre (dctx, (0xfffff08e + 0x0), &frep);
- TEST("findfre-1: Find first FRE",
- ((err == 0) && (sframe_fre_get_cfa_offset(dctx, &frep, &err) == 0x10)));
+ lookup_pc = func2_start_vaddr + 0x0 - sframe_vaddr;
+ err = sframe_find_fre (dctx, lookup_pc, &frep);
+ TEST ("findfre-1: Find first FRE",
+ (err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x10));
/* Find FRE for PC out of range. Expect error code. */
- err = sframe_find_fre (dctx, (0xfffff03e + 0x40), &frep);
- TEST("findfre-1: Find FRE for out of range PC",
- (err == SFRAME_ERR));
+ lookup_pc = func1_start_vaddr + func1_size - sframe_vaddr;
+ err = sframe_find_fre (dctx, lookup_pc, &frep);
+ TEST ("findfre-1: Find FRE for out of range PC", err == SFRAME_ERR);
sframe_encoder_free (&encode);
sframe_decoder_free (&dctx);
+}
- return 0;
+int main (void)
+{
+ uint32_t sframe_vaddr = 0x402220;
+ uint32_t text_vaddr = 0x401020;
+ printf ("Testing with text_vaddr = %#x; sframe_vaddr = %#x\n", text_vaddr,
+ sframe_vaddr);
+ test_text_findfre (text_vaddr, sframe_vaddr);
+
+ sframe_vaddr = 0x401020;
+ text_vaddr = 0x402220;
+ printf ("Testing with text_vaddr = %#x; sframe_vaddr = %#x\n", text_vaddr,
+ sframe_vaddr);
+ test_text_findfre (text_vaddr, sframe_vaddr);
}
diff --git a/libsframe/testsuite/libsframe.find/findfunc-1.c b/libsframe/testsuite/libsframe.find/findfunc-1.c
index 8671f5d..3cdcdb6 100644
--- a/libsframe/testsuite/libsframe.find/findfunc-1.c
+++ b/libsframe/testsuite/libsframe.find/findfunc-1.c
@@ -35,89 +35,115 @@
#include <dejagnu.h>
static int
-add_fde1 (sframe_encoder_ctx *encode, int idx)
+add_fde1 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
+ uint32_t sframe_vaddr, int idx, uint32_t *func_size)
{
- int i, err;
/* A contiguous block containing 4 FREs. */
- sframe_frame_row_entry fres[]
+#define FDE1_NUM_FRES 4
+ sframe_frame_row_entry fres[FDE1_NUM_FRES]
= { {0x0, {0x1, 0, 0}, 0x3},
{0x1, {0x2, 0xf0, 0}, 0x5},
{0x10, {0x3, 0xf0, 0}, 0x4},
{0x38, {0x8, 0xf0, 0}, 0x5}
};
+ /* Function size in bytes. P.S. Must be a value greater than the
+ fre_start_addr of the last FRE above (0x38). */
+ *func_size = 0x40;
+ int32_t func1_start_addr = start_pc_vaddr - sframe_vaddr;
unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1,
SFRAME_FDE_TYPE_PCINC);
- err = sframe_encoder_add_funcdesc (encode, 0xfffff03e, 0x40, finfo, 4);
+ int err = sframe_encoder_add_funcdesc (encode, func1_start_addr, *func_size,
+ finfo, FDE1_NUM_FRES);
if (err == -1)
return err;
- for (i = 0; i < 4; i++)
- if (sframe_encoder_add_fre (encode, idx,fres+i) == SFRAME_ERR)
+ for (unsigned int i = 0; i < FDE1_NUM_FRES; i++)
+ if (sframe_encoder_add_fre (encode, idx, fres + i) == SFRAME_ERR)
return -1;
return 0;
}
static int
-add_fde2 (sframe_encoder_ctx *encode, int idx)
+add_fde2 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
+ uint32_t sframe_vaddr, int idx, uint32_t *func_size)
{
- int i, err;
/* A contiguous block containing 4 FREs. */
- sframe_frame_row_entry fres[]
+#define FDE2_NUM_FRES 4
+ sframe_frame_row_entry fres[FDE2_NUM_FRES]
= { {0x0, {0x10, 0, 0}, 0x3},
{0x10, {0x12, 0xf0, 0}, 0x5},
{0x14, {0x14, 0xf0, 0}, 0x4},
{0x20, {0x15, 0xf0, 0}, 0x5}
};
+ /* Function size in bytes. P.S. Must be a value greater than the
+ fre_start_addr of the last FRE above (0x20). */
+ *func_size = 0x60;
+ int32_t func2_start_addr = start_pc_vaddr - sframe_vaddr;
unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1,
SFRAME_FDE_TYPE_PCINC);
- err = sframe_encoder_add_funcdesc (encode, 0xfffff08e, 0x60, finfo, 4);
+ int err = sframe_encoder_add_funcdesc (encode, func2_start_addr, *func_size,
+ finfo, FDE2_NUM_FRES);
if (err == -1)
return err;
- for (i = 0; i < 4; i++)
- if (sframe_encoder_add_fre (encode, idx, fres+i) == SFRAME_ERR)
+ for (unsigned int i = 0; i < FDE2_NUM_FRES; i++)
+ if (sframe_encoder_add_fre (encode, idx, fres + i) == SFRAME_ERR)
return -1;
return 0;
}
static int
-add_fde3 (sframe_encoder_ctx *encode, int idx)
+add_fde3 (sframe_encoder_ctx *encode, uint32_t start_pc_vaddr,
+ uint32_t sframe_vaddr, int idx, uint32_t *func_size)
{
- int i, err;
/* A contiguous block containing 4 FREs. */
- sframe_frame_row_entry fres[]
+#define FDE3_NUM_FRES 4
+ sframe_frame_row_entry fres[FDE3_NUM_FRES]
= { {0x0, {0x16, 0, 0}, 0x3},
{0x1, {0x17, 0xf0, 0}, 0x5},
{0x10, {0x18, 0xf0, 0}, 0x4},
{0x38, {0x19, 0xf0, 0}, 0x5}
};
+ /* Function size in bytes. P.S. Must be a value greater than the
+ fre_start_addr of the last FRE above (0x38). */
+ *func_size = 0x40;
+ int32_t func3_start_addr = start_pc_vaddr - sframe_vaddr;
unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1,
SFRAME_FDE_TYPE_PCINC);
- err = sframe_encoder_add_funcdesc (encode, 0xfffff10e, 0x40, finfo, 4);
+ int err = sframe_encoder_add_funcdesc (encode, func3_start_addr, *func_size,
+ finfo, FDE3_NUM_FRES);
if (err == -1)
return err;
- for (i = 0; i < 4; i++)
- if (sframe_encoder_add_fre (encode, idx,fres+i) == SFRAME_ERR)
+ for (unsigned int i = 0; i < FDE3_NUM_FRES; i++)
+ if (sframe_encoder_add_fre (encode, idx, fres + i) == SFRAME_ERR)
return -1;
return 0;
}
-int main (void)
+static
+void test_text_findfre (uint32_t text_vaddr, uint32_t sframe_vaddr)
{
sframe_encoder_ctx *encode;
sframe_decoder_ctx *dctx;
sframe_frame_row_entry frep;
+ uint32_t func1_start_vaddr;
+ uint32_t func2_start_vaddr;
+ uint32_t func3_start_vaddr;
+ uint32_t func1_size = 0;
+ uint32_t func2_size = 0;
+ uint32_t func3_size = 0;
+ uint32_t fde_cnt = 0;
+ int32_t lookup_pc = 0;
char *sframe_buf;
size_t sf_size;
int err = 0;
- unsigned int fde_cnt = 0;
#define TEST(name, cond) \
do \
@@ -136,15 +162,18 @@ int main (void)
&err);
/* Add FDE at index 0. */
- err = add_fde1 (encode, 0);
+ func1_start_vaddr = text_vaddr;
+ err = add_fde1 (encode, func1_start_vaddr, sframe_vaddr, 0, &func1_size);
TEST ("findfunc-1: Adding FDE1", err == 0);
/* Add FDE at index 1. */
- err = add_fde2 (encode, 1);
+ func2_start_vaddr = func1_start_vaddr + func1_size + 0x10;
+ err = add_fde2 (encode, func2_start_vaddr, sframe_vaddr, 1, &func2_size);
TEST ("findfunc-1: Adding FDE2", err == 0);
/* Add FDE at index 2. */
- err = add_fde3 (encode, 2);
+ func3_start_vaddr = func2_start_vaddr + func2_size + 0x10;
+ err = add_fde3 (encode, func3_start_vaddr, sframe_vaddr, 2, &func3_size);
TEST ("findfunc-1: Adding FDE3", err == 0);
fde_cnt = sframe_encoder_get_num_fidx (encode);
@@ -154,51 +183,71 @@ int main (void)
TEST ("findfunc-1: Encoder write", err == 0);
dctx = sframe_decode (sframe_buf, sf_size, &err);
- TEST("findfunc-1: Decoder setup", dctx != NULL);
+ TEST ("findfunc-1: Decoder setup", dctx != NULL);
/* Following negative tests check that libsframe APIs
(sframe_get_funcdesc_with_addr, sframe_find_fre) work
well for PCs not covered by the FDEs. */
/* Search with PC less than the first FDE's start addr. */
- err = sframe_find_fre (dctx, (0xfffff03e - 0x15), &frep);
- TEST("findfunc-1: test-1: Find FRE for PC not in range",
- (err == SFRAME_ERR));
+ lookup_pc = func1_start_vaddr - 0x15 - sframe_vaddr;
+ err = sframe_find_fre (dctx, lookup_pc, &frep);
+ TEST ("findfunc-1: test-1: Find FRE for PC not in range",
+ err == SFRAME_ERR);
/* Search with a PC between func1's last PC and func2's first PC. */
- err = sframe_find_fre (dctx, (0xfffff03e + 0x40 + 0x1), &frep);
- TEST("findfunc-1: test-2: Find FRE for PC not in range",
- (err == SFRAME_ERR));
+ lookup_pc = func1_start_vaddr + func1_size + 0x1 - sframe_vaddr,
+ err = sframe_find_fre (dctx, lookup_pc, &frep);
+ TEST ("findfunc-1: test-2: Find FRE for PC not in range",
+ err == SFRAME_ERR);
/* Search for a PC between func2's last PC and func3's first PC. */
- err = sframe_find_fre (dctx, (0xfffff08e + 0x60 + 0x3), &frep);
- TEST("findfunc-1: test-3: Find FRE for PC not in range",
- (err == SFRAME_ERR));
+ lookup_pc = func2_start_vaddr + func2_size + 0x3 - sframe_vaddr;
+ err = sframe_find_fre (dctx, lookup_pc, &frep);
+ TEST ("findfunc-1: test-3: Find FRE for PC not in range",
+ err == SFRAME_ERR);
/* Search for a PC beyond the last func, i.e., > func3's last PC. */
- err = sframe_find_fre (dctx, (0xfffff10e + 0x40 + 0x10), &frep);
- TEST("findfunc-1: test-4: Find FRE for PC not in range",
- (err == SFRAME_ERR));
+ lookup_pc = func3_start_vaddr + func3_size + 0x10 - sframe_vaddr;
+ err = sframe_find_fre (dctx, lookup_pc, &frep);
+ TEST ("findfunc-1: test-4: Find FRE for PC not in range",
+ err == SFRAME_ERR);
/* And some positive tests... */
/* Find an FRE for PC in FDE1. */
- err = sframe_find_fre (dctx, (0xfffff03e + 0x9), &frep);
- TEST("findfunc-1: Find FRE in FDE1",
- ((err == 0) && (sframe_fre_get_cfa_offset(dctx, &frep, &err) == 0x2)));
+ lookup_pc = func1_start_vaddr + 0x9 - sframe_vaddr;
+ err = sframe_find_fre (dctx, lookup_pc, &frep);
+ TEST ("findfunc-1: Find FRE in FDE1",
+ (err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x2));
/* Find an FRE for PC in FDE2. */
- err = sframe_find_fre (dctx, (0xfffff08e + 0x11), &frep);
- TEST("findfunc-1: Find FRE in FDE2",
- ((err == 0) && (sframe_fre_get_cfa_offset(dctx, &frep, &err) == 0x12)));
+ lookup_pc = func2_start_vaddr + 0x11 - sframe_vaddr;
+ err = sframe_find_fre (dctx, lookup_pc, &frep);
+ TEST ("findfunc-1: Find FRE in FDE2",
+ (err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x12));
/* Find an FRE for PC in FDE3. */
- err = sframe_find_fre (dctx, (0xfffff10e + 0x10), &frep);
- TEST("findfunc-1: Find FRE in FDE3",
- ((err == 0) && (sframe_fre_get_cfa_offset(dctx, &frep, &err) == 0x18)));
+ lookup_pc = func3_start_vaddr + 0x10 - sframe_vaddr;
+ err = sframe_find_fre (dctx, lookup_pc, &frep);
+ TEST ("findfunc-1: Find FRE in FDE3",
+ (err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x18));
sframe_encoder_free (&encode);
sframe_decoder_free (&dctx);
+}
- return 0;
+int main (void)
+{
+ uint32_t sframe_vaddr = 0x4b5620;
+ uint32_t text_vaddr = 0x4038b0;
+ printf ("Testing with text_vaddr = %#x; sframe_vaddr = %#x\n", text_vaddr,
+ sframe_vaddr);
+ test_text_findfre (text_vaddr, sframe_vaddr);
+
+ sframe_vaddr = 0x4038b0;
+ text_vaddr = 0x4b5620;
+ printf ("Testing with text_vaddr = %#x; sframe_vaddr = %#x\n", text_vaddr,
+ sframe_vaddr);
+ test_text_findfre (text_vaddr, sframe_vaddr);
}
diff --git a/libsframe/testsuite/libsframe.find/plt-findfre-1.c b/libsframe/testsuite/libsframe.find/plt-findfre-1.c
index c84b46f..89ca466 100644
--- a/libsframe/testsuite/libsframe.find/plt-findfre-1.c
+++ b/libsframe/testsuite/libsframe.find/plt-findfre-1.c
@@ -28,12 +28,13 @@
#include <dejagnu.h>
static int
-add_plt_fde1 (sframe_encoder_ctx *ectx, int idx)
+add_plt_fde1 (sframe_encoder_ctx *ectx, uint32_t plt_vaddr,
+ uint32_t sframe_vaddr, int idx)
{
- int i, err;
/* A contiguous block containing 3 FREs. The start_ip_offset must remain
less than 16 bytes. */
- sframe_frame_row_entry fres[]
+#define PLT1_NUM_FRES 3
+ sframe_frame_row_entry fres[PLT1_NUM_FRES]
= { {0x0, {0x1, 0, 0}, 0x3},
{0x6, {0x2, 0xf0, 0}, 0x5},
{0xc, {0x3, 0xf0, 0}, 0x4}
@@ -41,19 +42,26 @@ add_plt_fde1 (sframe_encoder_ctx *ectx, int idx)
unsigned char finfo = sframe_fde_create_func_info (SFRAME_FRE_TYPE_ADDR1,
SFRAME_FDE_TYPE_PCMASK);
+ int32_t func_start_addr = plt_vaddr - sframe_vaddr;
+
/* 5 pltN entries of 16 bytes each. */
- err = sframe_encoder_add_funcdesc_v2 (ectx, 0x1000, 16*5, finfo, 16, 3);
+ int err = sframe_encoder_add_funcdesc_v2 (ectx, func_start_addr,
+ 16 * 5 /* func size in bytes. */,
+ finfo,
+ 16 /* rep block size in bytes. */,
+ PLT1_NUM_FRES);
if (err == -1)
return err;
- for (i = 0; i < 3; i++)
- if (sframe_encoder_add_fre (ectx, idx, fres+i) == SFRAME_ERR)
+ for (unsigned i = 0; i < PLT1_NUM_FRES; i++)
+ if (sframe_encoder_add_fre (ectx, idx, fres + i) == SFRAME_ERR)
return -1;
return 0;
}
-int main (void)
+static
+void test_plt_findfre (uint32_t plt_vaddr, uint32_t sframe_vaddr)
{
sframe_encoder_ctx *ectx;
sframe_decoder_ctx *dctx;
@@ -61,7 +69,7 @@ int main (void)
char *sframe_buf;
size_t sf_size;
int err = 0;
- unsigned int fde_cnt = 0;
+ uint32_t fde_cnt = 0;
#define TEST(name, cond) \
do \
@@ -78,7 +86,7 @@ int main (void)
-8, /* Fixed RA offset for AMD64. */
&err);
- err = add_plt_fde1 (ectx, 0);
+ err = add_plt_fde1 (ectx, plt_vaddr, sframe_vaddr, 0);
TEST ("plt-findfre-1: Adding FDE1 for plt", err == 0);
fde_cnt = sframe_encoder_get_num_fidx (ectx);
@@ -88,40 +96,57 @@ int main (void)
TEST ("plt-findfre-1: Encoder write", err == 0);
dctx = sframe_decode (sframe_buf, sf_size, &err);
- TEST("plt-findfre-1: Decoder setup", dctx != NULL);
+ TEST ("plt-findfre-1: Decoder setup", dctx != NULL);
/* Find the first FRE in PLT1. */
- err = sframe_find_fre (dctx, (0x1000 + 0x0), &frep);
- TEST("plt-findfre-1: Find first FRE in PLT1",
- ((err == 0) && (sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x1)));
+ err = sframe_find_fre (dctx, (plt_vaddr + 0x0 - sframe_vaddr), &frep);
+ TEST ("plt-findfre-1: Find first FRE in PLT1",
+ (err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x1));
/* Find the second FRE. */
- err = sframe_find_fre (dctx, (0x1000 + 0x6), &frep);
- TEST("plt-findfre-1: Find second FRE in PLT1",
- ((err == 0) && (sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x2)));
+ err = sframe_find_fre (dctx, (plt_vaddr + 0x6 - sframe_vaddr), &frep);
+ TEST ("plt-findfre-1: Find second FRE in PLT1",
+ (err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x2));
/* Find the last FRE. */
- err = sframe_find_fre (dctx, (0x1000 + 0xc), &frep);
- TEST("plt-findfre-1: Find last FRE in PLT1",
- ((err == 0) && (sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x3)));
+ err = sframe_find_fre (dctx, (plt_vaddr + 0xc - sframe_vaddr), &frep);
+ TEST ("plt-findfre-1: Find last FRE in PLT1",
+ (err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x3));
/* Find the first FRE in PLT4. */
- err = sframe_find_fre (dctx, (0x1000 + 16*3 + 0x0), &frep);
- TEST("plt-findfre-1: Find first FRE in PLT4",
- ((err == 0) && (sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x1)));
+ err = sframe_find_fre (dctx, (plt_vaddr + 16*3 + 0x0 - sframe_vaddr), &frep);
+ TEST ("plt-findfre-1: Find first FRE in PLT4",
+ (err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x1));
/* Find the second FRE in PLT4. */
- err = sframe_find_fre (dctx, (0x1000 + 16*3 + 0x6), &frep);
- TEST("plt-findfre-1: Find second FRE in PLT4",
- ((err == 0) && (sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x2)));
+ err = sframe_find_fre (dctx, (plt_vaddr + 16*3 + 0x6 - sframe_vaddr), &frep);
+ TEST ("plt-findfre-1: Find second FRE in PLT4",
+ (err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x2));
/* Find the last FRE in PLT4. */
- err = sframe_find_fre (dctx, (0x1000 + 16*3 + 0xc), &frep);
- TEST("plt-findfre-1: Find last FRE in PLT4",
- ((err == 0) && (sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x3)));
+ err = sframe_find_fre (dctx, (plt_vaddr + 16*3 + 0xc - sframe_vaddr), &frep);
+ TEST ("plt-findfre-1: Find last FRE in PLT4",
+ (err == 0 && sframe_fre_get_cfa_offset (dctx, &frep, &err) == 0x3));
+
+ /* Find no FRE for out of range PLT6. */
+ err = sframe_find_fre (dctx, (plt_vaddr + 16*5 + 0x0 - sframe_vaddr), &frep);
+ TEST ("plt-findfre-1: Find no FRE for out of range PLT6", err != 0);
sframe_encoder_free (&ectx);
sframe_decoder_free (&dctx);
+}
- return 0;
+int main (void)
+{
+ uint32_t sframe_vaddr = 0x402220;
+ uint32_t plt_vaddr = 0x401020;
+ printf ("Testing with plt_vaddr = %#x; sframe_vaddr = %#x\n", plt_vaddr,
+ sframe_vaddr);
+ test_plt_findfre (plt_vaddr, sframe_vaddr);
+
+ sframe_vaddr = 0x401020;
+ plt_vaddr = 0x402220;
+ printf ("Testing with plt_vaddr = %#x; sframe_vaddr = %#x\n", plt_vaddr,
+ sframe_vaddr);
+ test_plt_findfre (plt_vaddr, sframe_vaddr);
}
diff --git a/opcodes/aarch64-asm-2.c b/opcodes/aarch64-asm-2.c
index 799825c..9630c04 100644
--- a/opcodes/aarch64-asm-2.c
+++ b/opcodes/aarch64-asm-2.c
@@ -135,478 +135,599 @@ aarch64_find_real_opcode (const aarch64_opcode *opcode)
case 629: /* ubfm */
value = 629; /* --> ubfm. */
break;
- case 665: /* cset */
- case 664: /* cinc */
- case 663: /* csinc */
- value = 663; /* --> csinc. */
- break;
- case 668: /* csetm */
- case 667: /* cinv */
- case 666: /* csinv */
- value = 666; /* --> csinv. */
- break;
- case 670: /* cneg */
- case 669: /* csneg */
- value = 669; /* --> csneg. */
- break;
- case 688: /* rev */
- case 689: /* rev64 */
- value = 688; /* --> rev. */
- break;
- case 714: /* lsl */
- case 713: /* lslv */
- value = 713; /* --> lslv. */
- break;
- case 716: /* lsr */
- case 715: /* lsrv */
- value = 715; /* --> lsrv. */
- break;
- case 718: /* asr */
- case 717: /* asrv */
- value = 717; /* --> asrv. */
- break;
- case 720: /* ror */
- case 719: /* rorv */
- value = 719; /* --> rorv. */
- break;
- case 723: /* cmpp */
- case 722: /* subps */
- value = 722; /* --> subps. */
- break;
- case 736: /* mul */
- case 735: /* madd */
- value = 735; /* --> madd. */
- break;
- case 738: /* mneg */
- case 737: /* msub */
- value = 737; /* --> msub. */
- break;
- case 740: /* smull */
- case 739: /* smaddl */
- value = 739; /* --> smaddl. */
- break;
- case 742: /* smnegl */
- case 741: /* smsubl */
- value = 741; /* --> smsubl. */
- break;
- case 745: /* umull */
- case 744: /* umaddl */
- value = 744; /* --> umaddl. */
- break;
- case 747: /* umnegl */
- case 746: /* umsubl */
- value = 746; /* --> umsubl. */
- break;
- case 759: /* ror */
- case 758: /* extr */
- value = 758; /* --> extr. */
- break;
- case 996: /* bic */
- case 995: /* and */
- value = 995; /* --> and. */
- break;
- case 998: /* mov */
- case 997: /* orr */
- value = 997; /* --> orr. */
- break;
- case 1001: /* tst */
- case 1000: /* ands */
- value = 1000; /* --> ands. */
- break;
- case 1006: /* uxtw */
- case 1005: /* mov */
- case 1004: /* orr */
- value = 1004; /* --> orr. */
+ case 659: /* cblt */
+ case 658: /* cbgt */
+ value = 658; /* --> cbgt. */
+ break;
+ case 661: /* cble */
+ case 660: /* cbge */
+ value = 660; /* --> cbge. */
+ break;
+ case 663: /* cblo */
+ case 662: /* cbhi */
+ value = 662; /* --> cbhi. */
+ break;
+ case 665: /* cbls */
+ case 664: /* cbhs */
+ value = 664; /* --> cbhs. */
+ break;
+ case 669: /* cbge */
+ case 668: /* cbgt */
+ value = 668; /* --> cbgt. */
+ break;
+ case 671: /* cble */
+ case 670: /* cblt */
+ value = 670; /* --> cblt. */
+ break;
+ case 673: /* cbhs */
+ case 672: /* cbhi */
+ value = 672; /* --> cbhi. */
+ break;
+ case 675: /* cbls */
+ case 674: /* cblo */
+ value = 674; /* --> cblo. */
+ break;
+ case 679: /* cbblt */
+ case 678: /* cbbgt */
+ value = 678; /* --> cbbgt. */
+ break;
+ case 681: /* cbble */
+ case 680: /* cbbge */
+ value = 680; /* --> cbbge. */
+ break;
+ case 683: /* cbblo */
+ case 682: /* cbbhi */
+ value = 682; /* --> cbbhi. */
+ break;
+ case 685: /* cbbls */
+ case 684: /* cbbhs */
+ value = 684; /* --> cbbhs. */
+ break;
+ case 689: /* cbhlt */
+ case 688: /* cbhgt */
+ value = 688; /* --> cbhgt. */
+ break;
+ case 691: /* cbhle */
+ case 690: /* cbhge */
+ value = 690; /* --> cbhge. */
+ break;
+ case 693: /* cbhlo */
+ case 692: /* cbhhi */
+ value = 692; /* --> cbhhi. */
+ break;
+ case 695: /* cbhls */
+ case 694: /* cbhhs */
+ value = 694; /* --> cbhhs. */
+ break;
+ case 705: /* cset */
+ case 704: /* cinc */
+ case 703: /* csinc */
+ value = 703; /* --> csinc. */
+ break;
+ case 708: /* csetm */
+ case 707: /* cinv */
+ case 706: /* csinv */
+ value = 706; /* --> csinv. */
+ break;
+ case 710: /* cneg */
+ case 709: /* csneg */
+ value = 709; /* --> csneg. */
+ break;
+ case 729: /* rev64 */
+ case 728: /* rev */
+ value = 728; /* --> rev. */
+ break;
+ case 754: /* lsl */
+ case 753: /* lslv */
+ value = 753; /* --> lslv. */
+ break;
+ case 756: /* lsr */
+ case 755: /* lsrv */
+ value = 755; /* --> lsrv. */
+ break;
+ case 758: /* asr */
+ case 757: /* asrv */
+ value = 757; /* --> asrv. */
+ break;
+ case 760: /* ror */
+ case 759: /* rorv */
+ value = 759; /* --> rorv. */
+ break;
+ case 763: /* cmpp */
+ case 762: /* subps */
+ value = 762; /* --> subps. */
+ break;
+ case 776: /* mul */
+ case 775: /* madd */
+ value = 775; /* --> madd. */
+ break;
+ case 778: /* mneg */
+ case 777: /* msub */
+ value = 777; /* --> msub. */
+ break;
+ case 780: /* smull */
+ case 779: /* smaddl */
+ value = 779; /* --> smaddl. */
+ break;
+ case 782: /* smnegl */
+ case 781: /* smsubl */
+ value = 781; /* --> smsubl. */
+ break;
+ case 785: /* umull */
+ case 784: /* umaddl */
+ value = 784; /* --> umaddl. */
+ break;
+ case 787: /* umnegl */
+ case 786: /* umsubl */
+ value = 786; /* --> umsubl. */
+ break;
+ case 799: /* ror */
+ case 798: /* extr */
+ value = 798; /* --> extr. */
+ break;
+ case 1048: /* bic */
+ case 1047: /* and */
+ value = 1047; /* --> and. */
+ break;
+ case 1050: /* mov */
+ case 1049: /* orr */
+ value = 1049; /* --> orr. */
+ break;
+ case 1053: /* tst */
+ case 1052: /* ands */
+ value = 1052; /* --> ands. */
+ break;
+ case 1058: /* uxtw */
+ case 1057: /* mov */
+ case 1056: /* orr */
+ value = 1056; /* --> orr. */
break;
- case 1008: /* mvn */
- case 1007: /* orn */
- value = 1007; /* --> orn. */
+ case 1060: /* mvn */
+ case 1059: /* orn */
+ value = 1059; /* --> orn. */
break;
- case 1012: /* tst */
- case 1011: /* ands */
- value = 1011; /* --> ands. */
+ case 1064: /* tst */
+ case 1063: /* ands */
+ value = 1063; /* --> ands. */
break;
- case 1138: /* staddb */
- case 1042: /* ldaddb */
- value = 1042; /* --> ldaddb. */
+ case 1190: /* staddb */
+ case 1094: /* ldaddb */
+ value = 1094; /* --> ldaddb. */
break;
- case 1139: /* staddh */
- case 1043: /* ldaddh */
- value = 1043; /* --> ldaddh. */
+ case 1191: /* staddh */
+ case 1095: /* ldaddh */
+ value = 1095; /* --> ldaddh. */
break;
- case 1140: /* stadd */
- case 1044: /* ldadd */
- value = 1044; /* --> ldadd. */
+ case 1192: /* stadd */
+ case 1096: /* ldadd */
+ value = 1096; /* --> ldadd. */
break;
- case 1141: /* staddlb */
- case 1046: /* ldaddlb */
- value = 1046; /* --> ldaddlb. */
+ case 1193: /* staddlb */
+ case 1098: /* ldaddlb */
+ value = 1098; /* --> ldaddlb. */
break;
- case 1142: /* staddlh */
- case 1049: /* ldaddlh */
- value = 1049; /* --> ldaddlh. */
+ case 1194: /* staddlh */
+ case 1101: /* ldaddlh */
+ value = 1101; /* --> ldaddlh. */
break;
- case 1143: /* staddl */
- case 1052: /* ldaddl */
- value = 1052; /* --> ldaddl. */
+ case 1195: /* staddl */
+ case 1104: /* ldaddl */
+ value = 1104; /* --> ldaddl. */
break;
- case 1144: /* stclrb */
- case 1054: /* ldclrb */
- value = 1054; /* --> ldclrb. */
+ case 1196: /* stclrb */
+ case 1106: /* ldclrb */
+ value = 1106; /* --> ldclrb. */
break;
- case 1145: /* stclrh */
- case 1055: /* ldclrh */
- value = 1055; /* --> ldclrh. */
+ case 1197: /* stclrh */
+ case 1107: /* ldclrh */
+ value = 1107; /* --> ldclrh. */
break;
- case 1146: /* stclr */
- case 1056: /* ldclr */
- value = 1056; /* --> ldclr. */
+ case 1198: /* stclr */
+ case 1108: /* ldclr */
+ value = 1108; /* --> ldclr. */
break;
- case 1147: /* stclrlb */
- case 1058: /* ldclrlb */
- value = 1058; /* --> ldclrlb. */
+ case 1199: /* stclrlb */
+ case 1110: /* ldclrlb */
+ value = 1110; /* --> ldclrlb. */
break;
- case 1148: /* stclrlh */
- case 1061: /* ldclrlh */
- value = 1061; /* --> ldclrlh. */
+ case 1200: /* stclrlh */
+ case 1113: /* ldclrlh */
+ value = 1113; /* --> ldclrlh. */
break;
- case 1149: /* stclrl */
- case 1064: /* ldclrl */
- value = 1064; /* --> ldclrl. */
+ case 1201: /* stclrl */
+ case 1116: /* ldclrl */
+ value = 1116; /* --> ldclrl. */
break;
- case 1150: /* steorb */
- case 1066: /* ldeorb */
- value = 1066; /* --> ldeorb. */
+ case 1202: /* steorb */
+ case 1118: /* ldeorb */
+ value = 1118; /* --> ldeorb. */
break;
- case 1151: /* steorh */
- case 1067: /* ldeorh */
- value = 1067; /* --> ldeorh. */
+ case 1203: /* steorh */
+ case 1119: /* ldeorh */
+ value = 1119; /* --> ldeorh. */
break;
- case 1152: /* steor */
- case 1068: /* ldeor */
- value = 1068; /* --> ldeor. */
+ case 1204: /* steor */
+ case 1120: /* ldeor */
+ value = 1120; /* --> ldeor. */
break;
- case 1153: /* steorlb */
- case 1070: /* ldeorlb */
- value = 1070; /* --> ldeorlb. */
+ case 1205: /* steorlb */
+ case 1122: /* ldeorlb */
+ value = 1122; /* --> ldeorlb. */
break;
- case 1154: /* steorlh */
- case 1073: /* ldeorlh */
- value = 1073; /* --> ldeorlh. */
+ case 1206: /* steorlh */
+ case 1125: /* ldeorlh */
+ value = 1125; /* --> ldeorlh. */
break;
- case 1155: /* steorl */
- case 1076: /* ldeorl */
- value = 1076; /* --> ldeorl. */
+ case 1207: /* steorl */
+ case 1128: /* ldeorl */
+ value = 1128; /* --> ldeorl. */
break;
- case 1156: /* stsetb */
- case 1078: /* ldsetb */
- value = 1078; /* --> ldsetb. */
+ case 1208: /* stsetb */
+ case 1130: /* ldsetb */
+ value = 1130; /* --> ldsetb. */
break;
- case 1157: /* stseth */
- case 1079: /* ldseth */
- value = 1079; /* --> ldseth. */
+ case 1209: /* stseth */
+ case 1131: /* ldseth */
+ value = 1131; /* --> ldseth. */
break;
- case 1158: /* stset */
- case 1080: /* ldset */
- value = 1080; /* --> ldset. */
+ case 1210: /* stset */
+ case 1132: /* ldset */
+ value = 1132; /* --> ldset. */
break;
- case 1159: /* stsetlb */
- case 1082: /* ldsetlb */
- value = 1082; /* --> ldsetlb. */
+ case 1211: /* stsetlb */
+ case 1134: /* ldsetlb */
+ value = 1134; /* --> ldsetlb. */
break;
- case 1160: /* stsetlh */
- case 1085: /* ldsetlh */
- value = 1085; /* --> ldsetlh. */
+ case 1212: /* stsetlh */
+ case 1137: /* ldsetlh */
+ value = 1137; /* --> ldsetlh. */
break;
- case 1161: /* stsetl */
- case 1088: /* ldsetl */
- value = 1088; /* --> ldsetl. */
+ case 1213: /* stsetl */
+ case 1140: /* ldsetl */
+ value = 1140; /* --> ldsetl. */
break;
- case 1162: /* stsmaxb */
- case 1090: /* ldsmaxb */
- value = 1090; /* --> ldsmaxb. */
+ case 1214: /* stsmaxb */
+ case 1142: /* ldsmaxb */
+ value = 1142; /* --> ldsmaxb. */
break;
- case 1163: /* stsmaxh */
- case 1091: /* ldsmaxh */
- value = 1091; /* --> ldsmaxh. */
+ case 1215: /* stsmaxh */
+ case 1143: /* ldsmaxh */
+ value = 1143; /* --> ldsmaxh. */
break;
- case 1164: /* stsmax */
- case 1092: /* ldsmax */
- value = 1092; /* --> ldsmax. */
- break;
- case 1165: /* stsmaxlb */
- case 1094: /* ldsmaxlb */
- value = 1094; /* --> ldsmaxlb. */
- break;
- case 1166: /* stsmaxlh */
- case 1097: /* ldsmaxlh */
- value = 1097; /* --> ldsmaxlh. */
- break;
- case 1167: /* stsmaxl */
- case 1100: /* ldsmaxl */
- value = 1100; /* --> ldsmaxl. */
- break;
- case 1168: /* stsminb */
- case 1102: /* ldsminb */
- value = 1102; /* --> ldsminb. */
- break;
- case 1169: /* stsminh */
- case 1103: /* ldsminh */
- value = 1103; /* --> ldsminh. */
- break;
- case 1170: /* stsmin */
- case 1104: /* ldsmin */
- value = 1104; /* --> ldsmin. */
- break;
- case 1171: /* stsminlb */
- case 1106: /* ldsminlb */
- value = 1106; /* --> ldsminlb. */
- break;
- case 1172: /* stsminlh */
- case 1109: /* ldsminlh */
- value = 1109; /* --> ldsminlh. */
- break;
- case 1173: /* stsminl */
- case 1112: /* ldsminl */
- value = 1112; /* --> ldsminl. */
- break;
- case 1174: /* stumaxb */
- case 1114: /* ldumaxb */
- value = 1114; /* --> ldumaxb. */
- break;
- case 1175: /* stumaxh */
- case 1115: /* ldumaxh */
- value = 1115; /* --> ldumaxh. */
- break;
- case 1176: /* stumax */
- case 1116: /* ldumax */
- value = 1116; /* --> ldumax. */
- break;
- case 1177: /* stumaxlb */
- case 1118: /* ldumaxlb */
- value = 1118; /* --> ldumaxlb. */
- break;
- case 1178: /* stumaxlh */
- case 1121: /* ldumaxlh */
- value = 1121; /* --> ldumaxlh. */
- break;
- case 1179: /* stumaxl */
- case 1124: /* ldumaxl */
- value = 1124; /* --> ldumaxl. */
- break;
- case 1180: /* stuminb */
- case 1126: /* lduminb */
- value = 1126; /* --> lduminb. */
- break;
- case 1181: /* stuminh */
- case 1127: /* lduminh */
- value = 1127; /* --> lduminh. */
- break;
- case 1182: /* stumin */
- case 1128: /* ldumin */
- value = 1128; /* --> ldumin. */
- break;
- case 1183: /* stuminlb */
- case 1130: /* lduminlb */
- value = 1130; /* --> lduminlb. */
- break;
- case 1184: /* stuminlh */
- case 1133: /* lduminlh */
- value = 1133; /* --> lduminlh. */
- break;
- case 1185: /* stuminl */
- case 1136: /* lduminl */
- value = 1136; /* --> lduminl. */
- break;
- case 1217: /* mov */
- case 1216: /* movn */
- value = 1216; /* --> movn. */
- break;
- case 1219: /* mov */
- case 1218: /* movz */
- value = 1218; /* --> movz. */
- break;
- case 3216: /* clrbhb */
- case 1299: /* autibsp */
- case 1298: /* autibz */
- case 1297: /* autiasp */
- case 1296: /* autiaz */
- case 1295: /* pacibsp */
- case 1294: /* pacibz */
- case 1293: /* paciasp */
- case 1292: /* paciaz */
- case 1271: /* gcsb */
- case 1251: /* clearbhb */
- case 1250: /* tsb */
- case 1249: /* psb */
- case 1248: /* esb */
- case 1247: /* autib1716 */
- case 1246: /* autia1716 */
- case 1245: /* pacib1716 */
- case 1244: /* pacia1716 */
- case 1243: /* xpaclri */
- case 1241: /* sevl */
- case 1240: /* sev */
- case 1239: /* wfi */
- case 1238: /* wfe */
- case 1237: /* yield */
- case 1236: /* bti */
- case 1235: /* csdb */
- case 1234: /* nop */
- case 1233: /* hint */
- value = 1233; /* --> hint. */
- break;
- case 1257: /* pssbb */
- case 1256: /* ssbb */
- case 1255: /* dfb */
- case 1253: /* dsb */
- value = 1253; /* --> dsb. */
- break;
- case 1254: /* dsb */
- value = 1254; /* --> dsb. */
- break;
- case 3217: /* trcit */
- case 1285: /* brb */
- case 1284: /* cosp */
- case 1283: /* cpp */
- case 1282: /* dvp */
- case 1281: /* cfp */
- case 1277: /* tlbi */
- case 1276: /* ic */
- case 1275: /* dc */
- case 1274: /* at */
- case 1272: /* sys */
- value = 1272; /* --> sys. */
- break;
- case 1278: /* tlbip */
- case 1273: /* sysp */
- value = 1273; /* --> sysp. */
- break;
- case 1279: /* wfet */
- value = 1279; /* --> wfet. */
- break;
- case 1280: /* wfit */
- value = 1280; /* --> wfit. */
- break;
- case 2101: /* bic */
- case 1348: /* and */
- value = 1348; /* --> and. */
- break;
- case 1331: /* mov */
- case 1350: /* and */
- value = 1350; /* --> and. */
- break;
- case 1335: /* movs */
- case 1351: /* ands */
- value = 1351; /* --> ands. */
- break;
- case 2102: /* cmple */
- case 1386: /* cmpge */
- value = 1386; /* --> cmpge. */
- break;
- case 2105: /* cmplt */
- case 1389: /* cmpgt */
- value = 1389; /* --> cmpgt. */
- break;
- case 2103: /* cmplo */
- case 1391: /* cmphi */
- value = 1391; /* --> cmphi. */
- break;
- case 2104: /* cmpls */
- case 1394: /* cmphs */
- value = 1394; /* --> cmphs. */
- break;
- case 1328: /* mov */
- case 1416: /* cpy */
- value = 1416; /* --> cpy. */
- break;
- case 1330: /* mov */
- case 1417: /* cpy */
- value = 1417; /* --> cpy. */
- break;
- case 2112: /* fmov */
- case 1333: /* mov */
- case 1418: /* cpy */
- value = 1418; /* --> cpy. */
- break;
- case 1322: /* mov */
- case 1430: /* dup */
- value = 1430; /* --> dup. */
- break;
- case 1325: /* mov */
- case 1321: /* mov */
- case 1431: /* dup */
- value = 1431; /* --> dup. */
- break;
- case 2111: /* fmov */
- case 1327: /* mov */
- case 1432: /* dup */
- value = 1432; /* --> dup. */
- break;
- case 1326: /* mov */
- case 1433: /* dupm */
- value = 1433; /* --> dupm. */
- break;
- case 2106: /* eon */
- case 1435: /* eor */
- value = 1435; /* --> eor. */
- break;
- case 1336: /* not */
- case 1437: /* eor */
- value = 1437; /* --> eor. */
- break;
- case 1337: /* nots */
- case 1438: /* eors */
- value = 1438; /* --> eors. */
- break;
- case 2107: /* facle */
- case 1443: /* facge */
- value = 1443; /* --> facge. */
- break;
- case 2108: /* faclt */
- case 1444: /* facgt */
- value = 1444; /* --> facgt. */
- break;
- case 2109: /* fcmle */
- case 1457: /* fcmge */
- value = 1457; /* --> fcmge. */
- break;
- case 2110: /* fcmlt */
- case 1459: /* fcmgt */
- value = 1459; /* --> fcmgt. */
+ case 1216: /* stsmax */
+ case 1144: /* ldsmax */
+ value = 1144; /* --> ldsmax. */
+ break;
+ case 1217: /* stsmaxlb */
+ case 1146: /* ldsmaxlb */
+ value = 1146; /* --> ldsmaxlb. */
+ break;
+ case 1218: /* stsmaxlh */
+ case 1149: /* ldsmaxlh */
+ value = 1149; /* --> ldsmaxlh. */
+ break;
+ case 1219: /* stsmaxl */
+ case 1152: /* ldsmaxl */
+ value = 1152; /* --> ldsmaxl. */
+ break;
+ case 1220: /* stsminb */
+ case 1154: /* ldsminb */
+ value = 1154; /* --> ldsminb. */
+ break;
+ case 1221: /* stsminh */
+ case 1155: /* ldsminh */
+ value = 1155; /* --> ldsminh. */
+ break;
+ case 1222: /* stsmin */
+ case 1156: /* ldsmin */
+ value = 1156; /* --> ldsmin. */
+ break;
+ case 1223: /* stsminlb */
+ case 1158: /* ldsminlb */
+ value = 1158; /* --> ldsminlb. */
+ break;
+ case 1224: /* stsminlh */
+ case 1161: /* ldsminlh */
+ value = 1161; /* --> ldsminlh. */
+ break;
+ case 1225: /* stsminl */
+ case 1164: /* ldsminl */
+ value = 1164; /* --> ldsminl. */
+ break;
+ case 1226: /* stumaxb */
+ case 1166: /* ldumaxb */
+ value = 1166; /* --> ldumaxb. */
+ break;
+ case 1227: /* stumaxh */
+ case 1167: /* ldumaxh */
+ value = 1167; /* --> ldumaxh. */
+ break;
+ case 1228: /* stumax */
+ case 1168: /* ldumax */
+ value = 1168; /* --> ldumax. */
+ break;
+ case 1229: /* stumaxlb */
+ case 1170: /* ldumaxlb */
+ value = 1170; /* --> ldumaxlb. */
+ break;
+ case 1230: /* stumaxlh */
+ case 1173: /* ldumaxlh */
+ value = 1173; /* --> ldumaxlh. */
+ break;
+ case 1231: /* stumaxl */
+ case 1176: /* ldumaxl */
+ value = 1176; /* --> ldumaxl. */
+ break;
+ case 1232: /* stuminb */
+ case 1178: /* lduminb */
+ value = 1178; /* --> lduminb. */
+ break;
+ case 1233: /* stuminh */
+ case 1179: /* lduminh */
+ value = 1179; /* --> lduminh. */
+ break;
+ case 1234: /* stumin */
+ case 1180: /* ldumin */
+ value = 1180; /* --> ldumin. */
+ break;
+ case 1235: /* stuminlb */
+ case 1182: /* lduminlb */
+ value = 1182; /* --> lduminlb. */
+ break;
+ case 1236: /* stuminlh */
+ case 1185: /* lduminlh */
+ value = 1185; /* --> lduminlh. */
+ break;
+ case 1237: /* stuminl */
+ case 1188: /* lduminl */
+ value = 1188; /* --> lduminl. */
+ break;
+ case 1269: /* mov */
+ case 1268: /* movn */
+ value = 1268; /* --> movn. */
+ break;
+ case 1271: /* mov */
+ case 1270: /* movz */
+ value = 1270; /* --> movz. */
+ break;
+ case 3316: /* clrbhb */
+ case 1351: /* autibsp */
+ case 1350: /* autibz */
+ case 1349: /* autiasp */
+ case 1348: /* autiaz */
+ case 1347: /* pacibsp */
+ case 1346: /* pacibz */
+ case 1345: /* paciasp */
+ case 1344: /* paciaz */
+ case 1323: /* gcsb */
+ case 1303: /* clearbhb */
+ case 1302: /* tsb */
+ case 1301: /* psb */
+ case 1300: /* esb */
+ case 1299: /* autib1716 */
+ case 1298: /* autia1716 */
+ case 1297: /* pacib1716 */
+ case 1296: /* pacia1716 */
+ case 1295: /* xpaclri */
+ case 1294: /* dgh */
+ case 1293: /* sevl */
+ case 1292: /* sev */
+ case 1291: /* wfi */
+ case 1290: /* wfe */
+ case 1289: /* yield */
+ case 1288: /* bti */
+ case 1287: /* csdb */
+ case 1286: /* nop */
+ case 1285: /* hint */
+ value = 1285; /* --> hint. */
+ break;
+ case 1309: /* pssbb */
+ case 1308: /* ssbb */
+ case 1307: /* dfb */
+ case 1305: /* dsb */
+ value = 1305; /* --> dsb. */
+ break;
+ case 1306: /* dsb */
+ value = 1306; /* --> dsb. */
+ break;
+ case 3317: /* trcit */
+ case 1337: /* brb */
+ case 1336: /* cosp */
+ case 1335: /* cpp */
+ case 1334: /* dvp */
+ case 1333: /* cfp */
+ case 1329: /* tlbi */
+ case 1328: /* ic */
+ case 1327: /* dc */
+ case 1326: /* at */
+ case 1324: /* sys */
+ value = 1324; /* --> sys. */
+ break;
+ case 1330: /* tlbip */
+ case 1325: /* sysp */
+ value = 1325; /* --> sysp. */
+ break;
+ case 1331: /* wfet */
+ value = 1331; /* --> wfet. */
+ break;
+ case 1332: /* wfit */
+ value = 1332; /* --> wfit. */
+ break;
+ case 2137: /* bic */
+ case 1400: /* and */
+ value = 1400; /* --> and. */
+ break;
+ case 1383: /* mov */
+ case 1402: /* and */
+ value = 1402; /* --> and. */
+ break;
+ case 1387: /* movs */
+ case 1403: /* ands */
+ value = 1403; /* --> ands. */
+ break;
+ case 2138: /* cmple */
+ case 1438: /* cmpge */
+ value = 1438; /* --> cmpge. */
+ break;
+ case 2141: /* cmplt */
+ case 1441: /* cmpgt */
+ value = 1441; /* --> cmpgt. */
+ break;
+ case 2139: /* cmplo */
+ case 1443: /* cmphi */
+ value = 1443; /* --> cmphi. */
+ break;
+ case 2140: /* cmpls */
+ case 1446: /* cmphs */
+ value = 1446; /* --> cmphs. */
+ break;
+ case 1380: /* mov */
+ case 1468: /* cpy */
+ value = 1468; /* --> cpy. */
+ break;
+ case 1382: /* mov */
+ case 1469: /* cpy */
+ value = 1469; /* --> cpy. */
+ break;
+ case 2148: /* fmov */
+ case 1385: /* mov */
+ case 1470: /* cpy */
+ value = 1470; /* --> cpy. */
+ break;
+ case 1374: /* mov */
+ case 1482: /* dup */
+ value = 1482; /* --> dup. */
+ break;
+ case 1377: /* mov */
+ case 1373: /* mov */
+ case 1483: /* dup */
+ value = 1483; /* --> dup. */
+ break;
+ case 2147: /* fmov */
+ case 1379: /* mov */
+ case 1484: /* dup */
+ value = 1484; /* --> dup. */
+ break;
+ case 1378: /* mov */
+ case 1485: /* dupm */
+ value = 1485; /* --> dupm. */
+ break;
+ case 2142: /* eon */
+ case 1487: /* eor */
+ value = 1487; /* --> eor. */
+ break;
+ case 1388: /* not */
+ case 1489: /* eor */
+ value = 1489; /* --> eor. */
+ break;
+ case 1389: /* nots */
+ case 1490: /* eors */
+ value = 1490; /* --> eors. */
+ break;
+ case 2143: /* facle */
+ case 1495: /* facge */
+ value = 1495; /* --> facge. */
+ break;
+ case 2144: /* faclt */
+ case 1496: /* facgt */
+ value = 1496; /* --> facgt. */
+ break;
+ case 2145: /* fcmle */
+ case 1509: /* fcmge */
+ value = 1509; /* --> fcmge. */
+ break;
+ case 2146: /* fcmlt */
+ case 1511: /* fcmgt */
+ value = 1511; /* --> fcmgt. */
break;
- case 1319: /* fmov */
- case 1465: /* fcpy */
- value = 1465; /* --> fcpy. */
+ case 1371: /* fmov */
+ case 1517: /* fcpy */
+ value = 1517; /* --> fcpy. */
break;
- case 1318: /* fmov */
- case 1488: /* fdup */
- value = 1488; /* --> fdup. */
+ case 1370: /* fmov */
+ case 1540: /* fdup */
+ value = 1540; /* --> fdup. */
break;
- case 1320: /* mov */
- case 1820: /* orr */
- value = 1820; /* --> orr. */
+ case 1826: /* ldr */
+ case 1825: /* ldr */
+ value = 1825; /* --> ldr. */
break;
- case 2113: /* orn */
- case 1821: /* orr */
- value = 1821; /* --> orr. */
+ case 1372: /* mov */
+ case 1856: /* orr */
+ value = 1856; /* --> orr. */
break;
- case 1324: /* mov */
- case 1323: /* mov */
- case 1823: /* orr */
- value = 1823; /* --> orr. */
+ case 2149: /* orn */
+ case 1857: /* orr */
+ value = 1857; /* --> orr. */
break;
- case 1334: /* movs */
- case 1824: /* orrs */
- value = 1824; /* --> orrs. */
+ case 1376: /* mov */
+ case 1375: /* mov */
+ case 1859: /* orr */
+ value = 1859; /* --> orr. */
break;
- case 1329: /* mov */
- case 1887: /* sel */
- value = 1887; /* --> sel. */
+ case 1386: /* movs */
+ case 1860: /* orrs */
+ value = 1860; /* --> orrs. */
break;
- case 1332: /* mov */
- case 1888: /* sel */
- value = 1888; /* --> sel. */
+ case 1863: /* pfalse */
+ case 1862: /* pfalse */
+ value = 1862; /* --> pfalse. */
+ break;
+ case 1381: /* mov */
+ case 1923: /* sel */
+ value = 1923; /* --> sel. */
+ break;
+ case 1384: /* mov */
+ case 1924: /* sel */
+ value = 1924; /* --> sel. */
+ break;
+ case 2045: /* str */
+ case 2044: /* str */
+ value = 2044; /* --> str. */
+ break;
+ case 2472: /* mov */
+ case 2474: /* mova */
+ value = 2474; /* --> mova. */
+ break;
+ case 2473: /* mov */
+ case 2475: /* mova */
+ value = 2475; /* --> mova. */
+ break;
+ case 2493: /* psel */
+ case 2492: /* psel */
+ value = 2492; /* --> psel. */
+ break;
+ case 2698: /* mov */
+ case 2706: /* mova */
+ value = 2706; /* --> mova. */
+ break;
+ case 2699: /* mov */
+ case 2707: /* mova */
+ value = 2707; /* --> mova. */
+ break;
+ case 2700: /* mov */
+ case 2708: /* mova */
+ value = 2708; /* --> mova. */
+ break;
+ case 2701: /* mov */
+ case 2709: /* mova */
+ value = 2709; /* --> mova. */
+ break;
+ case 2702: /* mov */
+ case 2710: /* mova */
+ value = 2710; /* --> mova. */
+ break;
+ case 2703: /* mov */
+ case 2711: /* mova */
+ value = 2711; /* --> mova. */
+ break;
+ case 2704: /* mov */
+ case 2712: /* mova */
+ value = 2712; /* --> mova. */
+ break;
+ case 2705: /* mov */
+ case 2713: /* mova */
+ value = 2713; /* --> mova. */
break;
default: return NULL;
}
@@ -651,16 +772,9 @@ aarch64_insert_operand (const aarch64_operand *self,
case 32:
case 33:
case 34:
- case 123:
- case 124:
- case 125:
- case 184:
- case 185:
- case 186:
- case 187:
- case 188:
- case 189:
- case 190:
+ case 126:
+ case 127:
+ case 128:
case 191:
case 192:
case 193:
@@ -668,33 +782,41 @@ aarch64_insert_operand (const aarch64_operand *self,
case 195:
case 196:
case 197:
- case 213:
- case 214:
- case 215:
- case 216:
- case 226:
- case 227:
- case 228:
- case 229:
- case 230:
- case 241:
- case 245:
- case 249:
+ case 198:
+ case 199:
+ case 200:
+ case 201:
+ case 202:
+ case 203:
+ case 204:
+ case 220:
+ case 221:
+ case 222:
+ case 223:
+ case 233:
+ case 234:
+ case 235:
+ case 236:
+ case 237:
+ case 248:
+ case 252:
+ case 256:
case 257:
- case 258:
- case 259:
+ case 265:
case 266:
case 267:
- case 268:
- case 269:
- case 303:
- case 307:
+ case 274:
+ case 275:
+ case 276:
+ case 277:
+ case 311:
+ case 315:
return aarch64_ins_regno (self, info, code, inst, errors);
case 6:
- case 119:
- case 120:
- case 313:
- case 316:
+ case 122:
+ case 123:
+ case 321:
+ case 324:
return aarch64_ins_none (self, info, code, inst, errors);
case 17:
return aarch64_ins_reg_extended (self, info, code, inst, errors);
@@ -709,24 +831,16 @@ aarch64_insert_operand (const aarch64_operand *self,
case 37:
case 38:
case 39:
- case 318:
+ case 326:
return aarch64_ins_reglane (self, info, code, inst, errors);
case 40:
case 41:
case 42:
- case 231:
- case 232:
- case 235:
- case 270:
- case 271:
- case 286:
- case 287:
- case 288:
- case 289:
- case 290:
- case 291:
- case 292:
- case 293:
+ case 238:
+ case 239:
+ case 242:
+ case 278:
+ case 279:
case 294:
case 295:
case 296:
@@ -736,12 +850,20 @@ aarch64_insert_operand (const aarch64_operand *self,
case 300:
case 301:
case 302:
+ case 303:
case 304:
case 305:
case 306:
+ case 307:
case 308:
case 309:
case 310:
+ case 312:
+ case 313:
+ case 314:
+ case 316:
+ case 317:
+ case 318:
return aarch64_ins_simple_index (self, info, code, inst, errors);
case 43:
return aarch64_ins_reglist (self, info, code, inst, errors);
@@ -774,31 +896,34 @@ aarch64_insert_operand (const aarch64_operand *self,
case 75:
case 76:
case 77:
- case 89:
- case 90:
+ case 78:
+ case 79:
case 91:
case 92:
- case 118:
- case 122:
- case 181:
- case 183:
- case 204:
- case 205:
- case 206:
- case 207:
- case 208:
- case 209:
- case 210:
+ case 93:
+ case 94:
+ case 95:
+ case 121:
+ case 125:
+ case 188:
+ case 190:
case 211:
case 212:
- case 272:
- case 311:
- case 312:
- case 314:
- case 315:
- case 317:
+ case 213:
+ case 214:
+ case 215:
+ case 216:
+ case 217:
+ case 218:
+ case 219:
+ case 280:
+ case 319:
+ case 320:
case 322:
case 323:
+ case 325:
+ case 330:
+ case 331:
return aarch64_ins_imm (self, info, code, inst, errors);
case 52:
case 53:
@@ -808,88 +933,85 @@ aarch64_insert_operand (const aarch64_operand *self,
case 56:
return aarch64_ins_advsimd_imm_modified (self, info, code, inst, errors);
case 60:
- case 171:
+ case 178:
return aarch64_ins_fpimm (self, info, code, inst, errors);
- case 78:
- case 179:
+ case 80:
+ case 186:
return aarch64_ins_limm (self, info, code, inst, errors);
- case 79:
+ case 81:
return aarch64_ins_aimm (self, info, code, inst, errors);
- case 80:
+ case 82:
return aarch64_ins_imm_half (self, info, code, inst, errors);
- case 81:
- return aarch64_ins_fbits (self, info, code, inst, errors);
case 83:
- case 84:
- case 176:
- return aarch64_ins_imm_rotate2 (self, info, code, inst, errors);
+ return aarch64_ins_fbits (self, info, code, inst, errors);
case 85:
- case 175:
- case 177:
- return aarch64_ins_imm_rotate1 (self, info, code, inst, errors);
case 86:
+ case 183:
+ return aarch64_ins_imm_rotate2 (self, info, code, inst, errors);
case 87:
+ case 182:
+ case 184:
+ return aarch64_ins_imm_rotate1 (self, info, code, inst, errors);
+ case 88:
+ case 89:
return aarch64_ins_cond (self, info, code, inst, errors);
- case 93:
- case 102:
- return aarch64_ins_addr_simple (self, info, code, inst, errors);
- case 94:
- return aarch64_ins_addr_regoff (self, info, code, inst, errors);
- case 95:
case 96:
+ case 105:
+ return aarch64_ins_addr_simple (self, info, code, inst, errors);
case 97:
+ return aarch64_ins_addr_regoff (self, info, code, inst, errors);
+ case 98:
case 99:
- case 101:
+ case 100:
+ case 102:
+ case 104:
return aarch64_ins_addr_simm (self, info, code, inst, errors);
- case 98:
+ case 101:
return aarch64_ins_addr_simm10 (self, info, code, inst, errors);
- case 100:
- return aarch64_ins_addr_uimm12 (self, info, code, inst, errors);
case 103:
- return aarch64_ins_addr_offset (self, info, code, inst, errors);
- case 104:
- return aarch64_ins_simd_addr_post (self, info, code, inst, errors);
- case 105:
+ return aarch64_ins_addr_uimm12 (self, info, code, inst, errors);
case 106:
- return aarch64_ins_sysreg (self, info, code, inst, errors);
+ return aarch64_ins_addr_offset (self, info, code, inst, errors);
case 107:
- return aarch64_ins_pstatefield (self, info, code, inst, errors);
+ return aarch64_ins_simd_addr_post (self, info, code, inst, errors);
case 108:
case 109:
+ return aarch64_ins_sysreg (self, info, code, inst, errors);
case 110:
+ return aarch64_ins_pstatefield (self, info, code, inst, errors);
case 111:
case 112:
case 113:
- return aarch64_ins_sysins_op (self, info, code, inst, errors);
case 114:
+ case 115:
case 116:
+ return aarch64_ins_sysins_op (self, info, code, inst, errors);
+ case 117:
+ case 119:
return aarch64_ins_barrier (self, info, code, inst, errors);
- case 115:
+ case 118:
return aarch64_ins_barrier_dsb_nxs (self, info, code, inst, errors);
- case 117:
+ case 120:
return aarch64_ins_prfop (self, info, code, inst, errors);
- case 121:
+ case 124:
return aarch64_ins_hint (self, info, code, inst, errors);
- case 126:
- case 127:
- return aarch64_ins_sve_addr_ri_s4 (self, info, code, inst, errors);
- case 128:
case 129:
case 130:
+ return aarch64_ins_sve_addr_ri_s4 (self, info, code, inst, errors);
case 131:
- return aarch64_ins_sve_addr_ri_s4xvl (self, info, code, inst, errors);
case 132:
- return aarch64_ins_sve_addr_ri_s6xvl (self, info, code, inst, errors);
case 133:
- return aarch64_ins_sve_addr_ri_s9xvl (self, info, code, inst, errors);
case 134:
+ return aarch64_ins_sve_addr_ri_s4xvl (self, info, code, inst, errors);
case 135:
+ return aarch64_ins_sve_addr_ri_s6xvl (self, info, code, inst, errors);
case 136:
+ return aarch64_ins_sve_addr_ri_s9xvl (self, info, code, inst, errors);
case 137:
- return aarch64_ins_sve_addr_ri_u6 (self, info, code, inst, errors);
case 138:
case 139:
case 140:
+ return aarch64_ins_sve_addr_ri_u6 (self, info, code, inst, errors);
case 141:
case 142:
case 143:
@@ -903,7 +1025,6 @@ aarch64_insert_operand (const aarch64_operand *self,
case 151:
case 152:
case 153:
- return aarch64_ins_sve_addr_rr_lsl (self, info, code, inst, errors);
case 154:
case 155:
case 156:
@@ -911,116 +1032,124 @@ aarch64_insert_operand (const aarch64_operand *self,
case 158:
case 159:
case 160:
+ return aarch64_ins_sve_addr_rr_lsl (self, info, code, inst, errors);
case 161:
- return aarch64_ins_sve_addr_rz_xtw (self, info, code, inst, errors);
case 162:
case 163:
case 164:
case 165:
- return aarch64_ins_sve_addr_zi_u5 (self, info, code, inst, errors);
case 166:
- return aarch64_ins_sve_addr_zz_lsl (self, info, code, inst, errors);
case 167:
- return aarch64_ins_sve_addr_zz_sxtw (self, info, code, inst, errors);
case 168:
- return aarch64_ins_sve_addr_zz_uxtw (self, info, code, inst, errors);
+ return aarch64_ins_sve_addr_rz_xtw (self, info, code, inst, errors);
case 169:
- return aarch64_ins_sve_aimm (self, info, code, inst, errors);
case 170:
- return aarch64_ins_sve_asimm (self, info, code, inst, errors);
+ case 171:
case 172:
- return aarch64_ins_sve_float_half_one (self, info, code, inst, errors);
+ return aarch64_ins_sve_addr_zi_u5 (self, info, code, inst, errors);
case 173:
- return aarch64_ins_sve_float_half_two (self, info, code, inst, errors);
+ return aarch64_ins_sve_addr_zz_lsl (self, info, code, inst, errors);
case 174:
+ return aarch64_ins_sve_addr_zz_sxtw (self, info, code, inst, errors);
+ case 175:
+ return aarch64_ins_sve_addr_zz_uxtw (self, info, code, inst, errors);
+ case 176:
+ return aarch64_ins_sve_aimm (self, info, code, inst, errors);
+ case 177:
+ return aarch64_ins_sve_asimm (self, info, code, inst, errors);
+ case 179:
+ return aarch64_ins_sve_float_half_one (self, info, code, inst, errors);
+ case 180:
+ return aarch64_ins_sve_float_half_two (self, info, code, inst, errors);
+ case 181:
return aarch64_ins_sve_float_zero_one (self, info, code, inst, errors);
- case 178:
+ case 185:
return aarch64_ins_inv_limm (self, info, code, inst, errors);
- case 180:
+ case 187:
return aarch64_ins_sve_limm_mov (self, info, code, inst, errors);
- case 182:
+ case 189:
return aarch64_ins_sve_scale (self, info, code, inst, errors);
- case 198:
- case 199:
- case 200:
+ case 205:
+ case 206:
+ case 207:
return aarch64_ins_sve_shlimm (self, info, code, inst, errors);
- case 201:
- case 202:
- case 203:
- case 285:
+ case 208:
+ case 209:
+ case 210:
+ case 293:
return aarch64_ins_sve_shrimm (self, info, code, inst, errors);
- case 217:
- case 218:
- case 219:
- case 220:
- return aarch64_ins_sme_za_vrs1 (self, info, code, inst, errors);
- case 221:
- case 222:
- case 223:
case 224:
- return aarch64_ins_sme_za_vrs2 (self, info, code, inst, errors);
case 225:
+ case 226:
+ case 227:
+ return aarch64_ins_sme_za_vrs1 (self, info, code, inst, errors);
+ case 228:
+ case 229:
+ case 230:
+ case 231:
+ return aarch64_ins_sme_za_vrs2 (self, info, code, inst, errors);
+ case 232:
return aarch64_ins_sme_za_tile_to_vec (self, info, code, inst, errors);
- case 233:
- case 234:
- case 236:
- case 237:
- case 238:
- case 239:
case 240:
- return aarch64_ins_sve_quad_index (self, info, code, inst, errors);
- case 242:
+ case 241:
case 243:
- return aarch64_ins_sve_index (self, info, code, inst, errors);
case 244:
+ case 245:
case 246:
- case 265:
- return aarch64_ins_sve_reglist (self, info, code, inst, errors);
case 247:
- case 248:
+ return aarch64_ins_sve_quad_index (self, info, code, inst, errors);
+ case 249:
case 250:
+ return aarch64_ins_sve_index (self, info, code, inst, errors);
case 251:
- case 252:
case 253:
+ case 273:
+ return aarch64_ins_sve_reglist (self, info, code, inst, errors);
case 254:
- case 264:
- return aarch64_ins_sve_aligned_reglist (self, info, code, inst, errors);
case 255:
- case 256:
- return aarch64_ins_sve_strided_reglist (self, info, code, inst, errors);
+ case 258:
+ case 259:
case 260:
- case 262:
- case 273:
- return aarch64_ins_sme_za_hv_tiles (self, info, code, inst, errors);
case 261:
+ case 262:
+ case 272:
+ return aarch64_ins_sve_aligned_reglist (self, info, code, inst, errors);
case 263:
+ case 264:
+ return aarch64_ins_sve_strided_reglist (self, info, code, inst, errors);
+ case 268:
+ case 270:
+ case 281:
+ return aarch64_ins_sme_za_hv_tiles (self, info, code, inst, errors);
+ case 269:
+ case 271:
return aarch64_ins_sme_za_hv_tiles_range (self, info, code, inst, errors);
- case 274:
- case 275:
- case 276:
- case 277:
- case 278:
- case 279:
- case 280:
+ case 282:
+ case 283:
+ case 284:
+ case 285:
+ case 286:
+ case 287:
+ case 288:
return aarch64_ins_sme_za_array (self, info, code, inst, errors);
- case 281:
+ case 289:
return aarch64_ins_sme_addr_ri_u4xvl (self, info, code, inst, errors);
- case 282:
+ case 290:
return aarch64_ins_sme_sm_za (self, info, code, inst, errors);
- case 283:
+ case 291:
return aarch64_ins_sme_pred_reg_with_index (self, info, code, inst, errors);
- case 284:
+ case 292:
return aarch64_ins_plain_shrimm (self, info, code, inst, errors);
- case 319:
- case 320:
- case 321:
- return aarch64_ins_x0_to_x30 (self, info, code, inst, errors);
- case 324:
- case 325:
- case 326:
case 327:
- return aarch64_ins_rcpc3_addr_opt_offset (self, info, code, inst, errors);
case 328:
+ case 329:
+ return aarch64_ins_x0_to_x30 (self, info, code, inst, errors);
+ case 332:
+ case 333:
+ case 334:
+ case 335:
+ return aarch64_ins_rcpc3_addr_opt_offset (self, info, code, inst, errors);
+ case 336:
return aarch64_ins_rcpc3_addr_offset (self, info, code, inst, errors);
default: assert (0); abort ();
}
diff --git a/opcodes/aarch64-asm.c b/opcodes/aarch64-asm.c
index f20bdf6..00ac4ae 100644
--- a/opcodes/aarch64-asm.c
+++ b/opcodes/aarch64-asm.c
@@ -2033,7 +2033,8 @@ do_special_encoding (struct aarch64_inst *inst)
{
idx = select_operand_for_sf_field_coding (inst->opcode);
value = (inst->operands[idx].qualifier == AARCH64_OPND_QLF_X
- || inst->operands[idx].qualifier == AARCH64_OPND_QLF_SP)
+ || inst->operands[idx].qualifier == AARCH64_OPND_QLF_SP
+ || inst->operands[idx].qualifier == AARCH64_OPND_QLF_S_D)
? 1 : 0;
insert_field (FLD_sf, &inst->value, value, 0);
if (inst->opcode->flags & F_N)
@@ -2063,6 +2064,13 @@ do_special_encoding (struct aarch64_inst *inst)
insert_field (FLD_rcpc3_size, &inst->value, value, 0);
}
+ if (inst->opcode->flags & F_LSFE_SZ)
+ {
+ value = aarch64_get_qualifier_standard_value (inst->operands[0].qualifier);
+ insert_field (FLD_ldst_size, &inst->value, value, 0);
+ return;
+ }
+
if (inst->opcode->flags & F_SIZEQ)
encode_sizeq (inst);
if (inst->opcode->flags & F_FPTYPE)
diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c
index eb14113..02e9852 100644
--- a/opcodes/aarch64-dis-2.c
+++ b/opcodes/aarch64-dis-2.c
@@ -50,7 +50,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0000000000xxxxxxxxxxxxxxxxxxxxx
udf. */
- return 754;
+ return 794;
}
else
{
@@ -62,7 +62,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0000000100xxxxxxxxxxxxxxxx00xxx
fmopa. */
- return 2413;
+ return 2449;
}
else
{
@@ -70,7 +70,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0000000100xxxxxxxxxxxxxxxx10xxx
fmops. */
- return 2416;
+ return 2452;
}
}
else
@@ -81,7 +81,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0000000100xxxxxxxxxxxxxxxx01xxx
bmopa. */
- return 2527;
+ return 2553;
}
else
{
@@ -89,7 +89,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0000000100xxxxxxxxxxxxxxxx11xxx
bmops. */
- return 2528;
+ return 2554;
}
}
}
@@ -102,7 +102,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0000000x10xxxxxxxxxxxxxxxx0xxxx
fmopa. */
- return 2414;
+ return 2450;
}
else
{
@@ -110,7 +110,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0000000x10xxxxxxxxxxxxxxxx1xxxx
fmops. */
- return 2417;
+ return 2453;
}
}
}
@@ -127,8 +127,8 @@ aarch64_opcode_lookup_1 (uint32_t word)
/* 33222222222211111111110000000000
10987654321098765432109876543210
x1000000xx00000xxxxxxxxxxxxxxxxx
- mov. */
- return 2437;
+ mova. */
+ return 2475;
}
else
{
@@ -140,7 +140,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000x0010000xxxxxxxxxxxxxxxx
addha. */
- return 2405;
+ return 2441;
}
else
{
@@ -148,7 +148,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000x1010000xxxxxxxxxxxxxxxx
addha. */
- return 2406;
+ return 2442;
}
}
else
@@ -159,7 +159,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000x0010001xxxxxxxxxxxxxxxx
addva. */
- return 2409;
+ return 2445;
}
else
{
@@ -167,7 +167,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000x1010001xxxxxxxxxxxxxxxx
addva. */
- return 2410;
+ return 2446;
}
}
}
@@ -180,7 +180,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000x00x100xxxxxxxxxxxxxxxxx
zero. */
- return 2440;
+ return 2476;
}
else
{
@@ -188,7 +188,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000x10x100xxxxxxxxxxxxxxxxx
zero. */
- return 2957;
+ return 2983;
}
}
}
@@ -201,8 +201,8 @@ aarch64_opcode_lookup_1 (uint32_t word)
/* 33222222222211111111110000000000
10987654321098765432109876543210
x1000000xx0x001xxxxxxx0xxxxxxxxx
- mov. */
- return 2436;
+ mova. */
+ return 2474;
}
else
{
@@ -216,7 +216,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000000x0010xxxxxx1xxxxxxxxx
movaz. */
- return 3348;
+ return 3448;
}
else
{
@@ -224,7 +224,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000100x0010xxxxxx1xxxxxxxxx
movaz. */
- return 3350;
+ return 3450;
}
}
else
@@ -235,7 +235,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000010x0010xxxxxx1xxxxxxxxx
movaz. */
- return 3349;
+ return 3449;
}
else
{
@@ -243,7 +243,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000110x0010xxxxxx1xxxxxxxxx
movaz. */
- return 3351;
+ return 3451;
}
}
}
@@ -253,7 +253,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000xx0x0011xxxxxx1xxxxxxxxx
movaz. */
- return 3352;
+ return 3452;
}
}
}
@@ -271,7 +271,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000x000101x00xxxxxxxxxxxxxx
luti4. */
- return 3488;
+ return 3588;
}
else
{
@@ -279,7 +279,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000x000101x10xxxxxxxxxxxxxx
luti4. */
- return 2671;
+ return 2697;
}
}
else
@@ -288,7 +288,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000x000101xx1xxxxxxxxxxxxxx
luti4. */
- return 2670;
+ return 2696;
}
}
else
@@ -297,7 +297,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000x100101xxxxxxxxxxxxxxxxx
luti4. */
- return 2669;
+ return 2695;
}
}
else
@@ -310,7 +310,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000xx01101x00xxxxxxxxxxxxxx
luti4. */
- return 3489;
+ return 3589;
}
else
{
@@ -318,7 +318,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000xx01101x10xxxxxxxxxxxxxx
luti4. */
- return 3345;
+ return 3445;
}
}
else
@@ -327,7 +327,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000xx01101xx1xxxxxxxxxxxxxx
luti4. */
- return 3344;
+ return 3444;
}
}
}
@@ -346,8 +346,8 @@ aarch64_opcode_lookup_1 (uint32_t word)
/* 33222222222211111111110000000000
10987654321098765432109876543210
x1000000xx0x010xxxxx00xxxxxxxxxx
- mov. */
- return 2678;
+ mova. */
+ return 2712;
}
else
{
@@ -356,8 +356,8 @@ aarch64_opcode_lookup_1 (uint32_t word)
/* 33222222222211111111110000000000
10987654321098765432109876543210
x1000000xx0x011xxxxx000xxxxxxxxx
- mov. */
- return 2674;
+ mova. */
+ return 2708;
}
else
{
@@ -369,7 +369,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000000x011xxxxx001xxxxxxxxx
movaz. */
- return 3338;
+ return 3438;
}
else
{
@@ -377,7 +377,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000100x011xxxxx001xxxxxxxxx
movaz. */
- return 3340;
+ return 3440;
}
}
else
@@ -388,7 +388,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000010x011xxxxx001xxxxxxxxx
movaz. */
- return 3339;
+ return 3439;
}
else
{
@@ -396,7 +396,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000110x011xxxxx001xxxxxxxxx
movaz. */
- return 3341;
+ return 3441;
}
}
}
@@ -420,7 +420,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000000011000xxx00xxxxxxxxxx
zero. */
- return 3353;
+ return 3453;
}
else
{
@@ -428,7 +428,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000000011100xxx00xxxxxxxxxx
zero. */
- return 3354;
+ return 3454;
}
}
else
@@ -439,7 +439,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000000011010xxx00xxxxxxxxxx
zero. */
- return 3356;
+ return 3456;
}
else
{
@@ -447,7 +447,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000000011110xxx00xxxxxxxxxx
zero. */
- return 3359;
+ return 3459;
}
}
}
@@ -461,7 +461,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000000011001xxx00xxxxxxxxxx
zero. */
- return 3355;
+ return 3455;
}
else
{
@@ -469,7 +469,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000000011101xxx00xxxxxxxxxx
zero. */
- return 3358;
+ return 3458;
}
}
else
@@ -480,7 +480,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000000011011xxx00xxxxxxxxxx
zero. */
- return 3357;
+ return 3457;
}
else
{
@@ -488,7 +488,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000000011111xxx00xxxxxxxxxx
zero. */
- return 3360;
+ return 3460;
}
}
}
@@ -501,7 +501,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000100011xxx0xx00xxxxxxxxxx
luti2. */
- return 2668;
+ return 2694;
}
else
{
@@ -509,7 +509,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000100011xxx1xx00xxxxxxxxxx
luti2. */
- return 2667;
+ return 2693;
}
}
}
@@ -525,7 +525,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x100000001001100xxxx00xxxxxxxxxx
movt. */
- return 2689;
+ return 2715;
}
else
{
@@ -533,7 +533,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x100000001001110xxxx00xxxxxxxxxx
movt. */
- return 2688;
+ return 2714;
}
}
else
@@ -542,7 +542,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000010011x1xxxx00xxxxxxxxxx
movt. */
- return 3490;
+ return 3590;
}
}
else
@@ -551,7 +551,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000110011xxxxxx00xxxxxxxxxx
luti2. */
- return 2666;
+ return 2692;
}
}
}
@@ -563,7 +563,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000xx0111xxx0xx00xxxxxxxxxx
luti2. */
- return 3343;
+ return 3443;
}
else
{
@@ -571,7 +571,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000xx0111xxx1xx00xxxxxxxxxx
luti2. */
- return 3342;
+ return 3442;
}
}
}
@@ -583,8 +583,8 @@ aarch64_opcode_lookup_1 (uint32_t word)
/* 33222222222211111111110000000000
10987654321098765432109876543210
x1000000xx0xx10xxxxx10xxxxxxxxxx
- mov. */
- return 2676;
+ mova. */
+ return 2710;
}
else
{
@@ -593,8 +593,8 @@ aarch64_opcode_lookup_1 (uint32_t word)
/* 33222222222211111111110000000000
10987654321098765432109876543210
x1000000xx0xx11xxxxx100xxxxxxxxx
- mov. */
- return 2672;
+ mova. */
+ return 2706;
}
else
{
@@ -602,7 +602,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000xx0xx11xxxxx101xxxxxxxxx
movaz. */
- return 3346;
+ return 3446;
}
}
}
@@ -616,8 +616,8 @@ aarch64_opcode_lookup_1 (uint32_t word)
/* 33222222222211111111110000000000
10987654321098765432109876543210
x1000000xx0xx10xxxxx01xxxxxxxxxx
- mov. */
- return 2679;
+ mova. */
+ return 2713;
}
else
{
@@ -626,8 +626,8 @@ aarch64_opcode_lookup_1 (uint32_t word)
/* 33222222222211111111110000000000
10987654321098765432109876543210
x1000000xx0xx11xxxxx010xxxxxxxxx
- mov. */
- return 2675;
+ mova. */
+ return 2709;
}
else
{
@@ -639,7 +639,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000000xx11xxxxx011xxxxxxxxx
movaz. */
- return 3334;
+ return 3434;
}
else
{
@@ -647,7 +647,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000100xx11xxxxx011xxxxxxxxx
movaz. */
- return 3336;
+ return 3436;
}
}
else
@@ -658,7 +658,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000010xx11xxxxx011xxxxxxxxx
movaz. */
- return 3335;
+ return 3435;
}
else
{
@@ -666,7 +666,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000110xx11xxxxx011xxxxxxxxx
movaz. */
- return 3337;
+ return 3437;
}
}
}
@@ -679,8 +679,8 @@ aarch64_opcode_lookup_1 (uint32_t word)
/* 33222222222211111111110000000000
10987654321098765432109876543210
x1000000xx0xx10xxxxx11xxxxxxxxxx
- mov. */
- return 2677;
+ mova. */
+ return 2711;
}
else
{
@@ -689,8 +689,8 @@ aarch64_opcode_lookup_1 (uint32_t word)
/* 33222222222211111111110000000000
10987654321098765432109876543210
x1000000xx0xx11xxxxx110xxxxxxxxx
- mov. */
- return 2673;
+ mova. */
+ return 2707;
}
else
{
@@ -698,7 +698,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000000xx0xx11xxxxx111xxxxxxxxx
movaz. */
- return 3347;
+ return 3447;
}
}
}
@@ -726,7 +726,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000000xxxxx000xxxxxxxxxxxx0
ld1b. */
- return 2605;
+ return 2631;
}
else
{
@@ -734,7 +734,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000000xxxxx100xxxxxxxxxxxx0
ld1b. */
- return 2606;
+ return 2632;
}
}
else
@@ -745,7 +745,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000000xxxxx010xxxxxxxxxxxx0
ld1w. */
- return 2629;
+ return 2655;
}
else
{
@@ -753,7 +753,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000000xxxxx110xxxxxxxxxxxx0
ld1w. */
- return 2630;
+ return 2656;
}
}
}
@@ -767,7 +767,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000000xxxxx001xxxxxxxxxxxx0
ld1h. */
- return 2621;
+ return 2647;
}
else
{
@@ -775,7 +775,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000000xxxxx101xxxxxxxxxxxx0
ld1h. */
- return 2622;
+ return 2648;
}
}
else
@@ -786,7 +786,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000000xxxxx011xxxxxxxxxxxx0
ld1d. */
- return 2613;
+ return 2639;
}
else
{
@@ -794,7 +794,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000000xxxxx111xxxxxxxxxxxx0
ld1d. */
- return 2614;
+ return 2640;
}
}
}
@@ -811,7 +811,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000000xxxxx000xxxxxxxxxxxx1
ldnt1b. */
- return 2637;
+ return 2663;
}
else
{
@@ -819,7 +819,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000000xxxxx100xxxxxxxxxxxx1
ldnt1b. */
- return 2638;
+ return 2664;
}
}
else
@@ -830,7 +830,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000000xxxxx010xxxxxxxxxxxx1
ldnt1w. */
- return 2661;
+ return 2687;
}
else
{
@@ -838,7 +838,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000000xxxxx110xxxxxxxxxxxx1
ldnt1w. */
- return 2662;
+ return 2688;
}
}
}
@@ -852,7 +852,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000000xxxxx001xxxxxxxxxxxx1
ldnt1h. */
- return 2653;
+ return 2679;
}
else
{
@@ -860,7 +860,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000000xxxxx101xxxxxxxxxxxx1
ldnt1h. */
- return 2654;
+ return 2680;
}
}
else
@@ -871,7 +871,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000000xxxxx011xxxxxxxxxxxx1
ldnt1d. */
- return 2645;
+ return 2671;
}
else
{
@@ -879,7 +879,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000000xxxxx111xxxxxxxxxxxx1
ldnt1d. */
- return 2646;
+ return 2672;
}
}
}
@@ -891,7 +891,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1100000000xxxxxxxxxxxxxxxxxxxxx
ld1b. */
- return 2441;
+ return 2477;
}
}
else
@@ -906,7 +906,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000100xxxxxxxxxxxxxxxx00xxx
smopa. */
- return 2420;
+ return 2456;
}
else
{
@@ -914,7 +914,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000100xxxxxxxxxxxxxxxx01xxx
smopa. */
- return 2751;
+ return 2777;
}
}
else
@@ -923,7 +923,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1100000100xxxxxxxxxxxxxxxx0xxxx
ld1w. */
- return 2443;
+ return 2479;
}
}
else
@@ -934,7 +934,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100000100xxxxxxxxxxxxxxxx10xxx
smops. */
- return 2422;
+ return 2458;
}
else
{
@@ -942,7 +942,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100000100xxxxxxxxxxxxxxxx11xxx
smops. */
- return 2752;
+ return 2778;
}
}
}
@@ -965,7 +965,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000010xxxxx000xxxxxxxxxxxx0
ld1b. */
- return 2601;
+ return 2627;
}
else
{
@@ -973,7 +973,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000010xxxxx100xxxxxxxxxxxx0
ld1b. */
- return 2602;
+ return 2628;
}
}
else
@@ -984,7 +984,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000010xxxxx010xxxxxxxxxxxx0
ld1w. */
- return 2625;
+ return 2651;
}
else
{
@@ -992,7 +992,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000010xxxxx110xxxxxxxxxxxx0
ld1w. */
- return 2626;
+ return 2652;
}
}
}
@@ -1006,7 +1006,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000010xxxxx001xxxxxxxxxxxx0
ld1h. */
- return 2617;
+ return 2643;
}
else
{
@@ -1014,7 +1014,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000010xxxxx101xxxxxxxxxxxx0
ld1h. */
- return 2618;
+ return 2644;
}
}
else
@@ -1025,7 +1025,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000010xxxxx011xxxxxxxxxxxx0
ld1d. */
- return 2609;
+ return 2635;
}
else
{
@@ -1033,7 +1033,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000010xxxxx111xxxxxxxxxxxx0
ld1d. */
- return 2610;
+ return 2636;
}
}
}
@@ -1050,7 +1050,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000010xxxxx000xxxxxxxxxxxx1
ldnt1b. */
- return 2633;
+ return 2659;
}
else
{
@@ -1058,7 +1058,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000010xxxxx100xxxxxxxxxxxx1
ldnt1b. */
- return 2634;
+ return 2660;
}
}
else
@@ -1069,7 +1069,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000010xxxxx010xxxxxxxxxxxx1
ldnt1w. */
- return 2657;
+ return 2683;
}
else
{
@@ -1077,7 +1077,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000010xxxxx110xxxxxxxxxxxx1
ldnt1w. */
- return 2658;
+ return 2684;
}
}
}
@@ -1091,7 +1091,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000010xxxxx001xxxxxxxxxxxx1
ldnt1h. */
- return 2649;
+ return 2675;
}
else
{
@@ -1099,7 +1099,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000010xxxxx101xxxxxxxxxxxx1
ldnt1h. */
- return 2650;
+ return 2676;
}
}
else
@@ -1110,7 +1110,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000010xxxxx011xxxxxxxxxxxx1
ldnt1d. */
- return 2641;
+ return 2667;
}
else
{
@@ -1118,7 +1118,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000010xxxxx111xxxxxxxxxxxx1
ldnt1d. */
- return 2642;
+ return 2668;
}
}
}
@@ -1130,7 +1130,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1100000010xxxxxxxxxxxxxxxxxxxxx
ld1h. */
- return 2442;
+ return 2478;
}
}
else
@@ -1143,7 +1143,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000110xxxxxxxxxxxxxxxx0xxxx
smopa. */
- return 2421;
+ return 2457;
}
else
{
@@ -1151,7 +1151,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1100000110xxxxxxxxxxxxxxxx0xxxx
ld1d. */
- return 2444;
+ return 2480;
}
}
else
@@ -1160,7 +1160,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100000110xxxxxxxxxxxxxxxx1xxxx
smops. */
- return 2423;
+ return 2459;
}
}
}
@@ -1186,7 +1186,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000001xxxxx000xxxxxxxxxxxx0
st1b. */
- return 2777;
+ return 2803;
}
else
{
@@ -1194,7 +1194,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000001xxxxx100xxxxxxxxxxxx0
st1b. */
- return 2778;
+ return 2804;
}
}
else
@@ -1205,7 +1205,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000001xxxxx010xxxxxxxxxxxx0
st1w. */
- return 2801;
+ return 2827;
}
else
{
@@ -1213,7 +1213,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000001xxxxx110xxxxxxxxxxxx0
st1w. */
- return 2802;
+ return 2828;
}
}
}
@@ -1227,7 +1227,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000001xxxxx001xxxxxxxxxxxx0
st1h. */
- return 2793;
+ return 2819;
}
else
{
@@ -1235,7 +1235,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000001xxxxx101xxxxxxxxxxxx0
st1h. */
- return 2794;
+ return 2820;
}
}
else
@@ -1246,7 +1246,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000001xxxxx011xxxxxxxxxxxx0
st1d. */
- return 2785;
+ return 2811;
}
else
{
@@ -1254,7 +1254,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000001xxxxx111xxxxxxxxxxxx0
st1d. */
- return 2786;
+ return 2812;
}
}
}
@@ -1271,7 +1271,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000001xxxxx000xxxxxxxxxxxx1
stnt1b. */
- return 2809;
+ return 2835;
}
else
{
@@ -1279,7 +1279,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000001xxxxx100xxxxxxxxxxxx1
stnt1b. */
- return 2810;
+ return 2836;
}
}
else
@@ -1290,7 +1290,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000001xxxxx010xxxxxxxxxxxx1
stnt1w. */
- return 2833;
+ return 2859;
}
else
{
@@ -1298,7 +1298,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000001xxxxx110xxxxxxxxxxxx1
stnt1w. */
- return 2834;
+ return 2860;
}
}
}
@@ -1312,7 +1312,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000001xxxxx001xxxxxxxxxxxx1
stnt1h. */
- return 2825;
+ return 2851;
}
else
{
@@ -1320,7 +1320,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000001xxxxx101xxxxxxxxxxxx1
stnt1h. */
- return 2826;
+ return 2852;
}
}
else
@@ -1331,7 +1331,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000001xxxxx011xxxxxxxxxxxx1
stnt1d. */
- return 2817;
+ return 2843;
}
else
{
@@ -1339,7 +1339,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000001xxxxx111xxxxxxxxxxxx1
stnt1d. */
- return 2818;
+ return 2844;
}
}
}
@@ -1351,7 +1351,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x00000001xxxxxxxxxxxxxxxxxxxxx
st1b. */
- return 2451;
+ return 2482;
}
}
else
@@ -1366,7 +1366,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000000101xxxxxxxxxxxxxxxx00xxx
fmopa. */
- return 3556;
+ return 3656;
}
else
{
@@ -1374,7 +1374,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000000101xxxxxxxxxxxxxxxx01xxx
fmopa. */
- return 3555;
+ return 3655;
}
}
else
@@ -1385,7 +1385,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100000101xxxxxxxxxxxxxxxx0xxxx
sumopa. */
- return 2424;
+ return 2460;
}
else
{
@@ -1393,7 +1393,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1100000101xxxxxxxxxxxxxxxx0xxxx
st1w. */
- return 2453;
+ return 2484;
}
}
}
@@ -1403,7 +1403,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx00000101xxxxxxxxxxxxxxxx1xxxx
sumops. */
- return 2426;
+ return 2462;
}
}
}
@@ -1425,7 +1425,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000011xxxxx000xxxxxxxxxxxx0
st1b. */
- return 2773;
+ return 2799;
}
else
{
@@ -1433,7 +1433,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000011xxxxx100xxxxxxxxxxxx0
st1b. */
- return 2774;
+ return 2800;
}
}
else
@@ -1444,7 +1444,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000011xxxxx010xxxxxxxxxxxx0
st1w. */
- return 2797;
+ return 2823;
}
else
{
@@ -1452,7 +1452,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000011xxxxx110xxxxxxxxxxxx0
st1w. */
- return 2798;
+ return 2824;
}
}
}
@@ -1466,7 +1466,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000011xxxxx001xxxxxxxxxxxx0
st1h. */
- return 2789;
+ return 2815;
}
else
{
@@ -1474,7 +1474,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000011xxxxx101xxxxxxxxxxxx0
st1h. */
- return 2790;
+ return 2816;
}
}
else
@@ -1485,7 +1485,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000011xxxxx011xxxxxxxxxxxx0
st1d. */
- return 2781;
+ return 2807;
}
else
{
@@ -1493,7 +1493,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000011xxxxx111xxxxxxxxxxxx0
st1d. */
- return 2782;
+ return 2808;
}
}
}
@@ -1510,7 +1510,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000011xxxxx000xxxxxxxxxxxx1
stnt1b. */
- return 2805;
+ return 2831;
}
else
{
@@ -1518,7 +1518,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000011xxxxx100xxxxxxxxxxxx1
stnt1b. */
- return 2806;
+ return 2832;
}
}
else
@@ -1529,7 +1529,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000011xxxxx010xxxxxxxxxxxx1
stnt1w. */
- return 2829;
+ return 2855;
}
else
{
@@ -1537,7 +1537,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000011xxxxx110xxxxxxxxxxxx1
stnt1w. */
- return 2830;
+ return 2856;
}
}
}
@@ -1551,7 +1551,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000011xxxxx001xxxxxxxxxxxx1
stnt1h. */
- return 2821;
+ return 2847;
}
else
{
@@ -1559,7 +1559,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000011xxxxx101xxxxxxxxxxxx1
stnt1h. */
- return 2822;
+ return 2848;
}
}
else
@@ -1570,7 +1570,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000011xxxxx011xxxxxxxxxxxx1
stnt1d. */
- return 2813;
+ return 2839;
}
else
{
@@ -1578,7 +1578,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000011xxxxx111xxxxxxxxxxxx1
stnt1d. */
- return 2814;
+ return 2840;
}
}
}
@@ -1590,7 +1590,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x00000011xxxxxxxxxxxxxxxxxxxxx
st1h. */
- return 2452;
+ return 2483;
}
}
else
@@ -1603,7 +1603,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x00000111xxxxxxxxxxxxxxxx0xxxx
sumopa. */
- return 2425;
+ return 2461;
}
else
{
@@ -1611,7 +1611,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x00000111xxxxxxxxxxxxxxxx0xxxx
st1d. */
- return 2454;
+ return 2485;
}
}
else
@@ -1620,7 +1620,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx00000111xxxxxxxxxxxxxxxx1xxxx
sumops. */
- return 2427;
+ return 2463;
}
}
}
@@ -1634,7 +1634,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0xx10000xxxxxxxxxxxxxxxxxxxxxxxx
adr. */
- return 1221;
+ return 1273;
}
else
{
@@ -1642,7 +1642,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1xx10000xxxxxxxxxxxxxxxxxxxxxxxx
adrp. */
- return 1222;
+ return 1274;
}
}
}
@@ -1670,7 +1670,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010000xxxxxxxxxxxxxxx000xx
smlall. */
- return 2727;
+ return 2753;
}
else
{
@@ -1678,7 +1678,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010000xxxxxxxxxxxxxxx010xx
smlsll. */
- return 2743;
+ return 2769;
}
}
else
@@ -1687,7 +1687,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010000xxxxxxxxxxxxxxx0x1xx
usmlall. */
- return 2932;
+ return 2958;
}
}
else
@@ -1704,7 +1704,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx0xx0xxxxxx000xxx
smlall. */
- return 2728;
+ return 2754;
}
else
{
@@ -1714,7 +1714,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx1xx0xxxxx0000xxx
smlall. */
- return 2729;
+ return 2755;
}
else
{
@@ -1722,7 +1722,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx1xx0xxxxx1000xxx
fmlall. */
- return 3549;
+ return 3649;
}
}
}
@@ -1734,7 +1734,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx0xx0xxxxxx001xxx
smlsll. */
- return 2744;
+ return 2770;
}
else
{
@@ -1742,7 +1742,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx1xx0xxxxxx001xxx
smlsll. */
- return 2745;
+ return 2771;
}
}
}
@@ -1754,7 +1754,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx0xx1xxxxxx00xxxx
fmla. */
- return 3363;
+ return 3463;
}
else
{
@@ -1764,7 +1764,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx1xx1xxxxx000xxxx
fmla. */
- return 3364;
+ return 3464;
}
else
{
@@ -1772,7 +1772,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx1xx1xxxxx100xxxx
fdot. */
- return 3534;
+ return 3634;
}
}
}
@@ -1787,7 +1787,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx0xx0xxxxxx10xxxx
usmlall. */
- return 2933;
+ return 2959;
}
else
{
@@ -1795,7 +1795,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx1xx0xxxxxx10xxxx
usmlall. */
- return 2934;
+ return 2960;
}
}
else
@@ -1806,7 +1806,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx0xx1xxxxxx10xxxx
bfmla. */
- return 3320;
+ return 3420;
}
else
{
@@ -1814,7 +1814,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx1xx1xxxxxx10xxxx
bfmla. */
- return 3321;
+ return 3421;
}
}
}
@@ -1832,7 +1832,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010000xxxxxxxxxxxxxxx100xx
umlall. */
- return 2890;
+ return 2916;
}
else
{
@@ -1840,7 +1840,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010000xxxxxxxxxxxxxxx110xx
umlsll. */
- return 2906;
+ return 2932;
}
}
else
@@ -1849,7 +1849,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010000xxxxxxxxxxxxxxx1x1xx
sumlall. */
- return 2848;
+ return 2874;
}
}
else
@@ -1866,7 +1866,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx0xx0xxxxxx010xxx
umlall. */
- return 2891;
+ return 2917;
}
else
{
@@ -1874,7 +1874,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx1xx0xxxxxx010xxx
umlall. */
- return 2892;
+ return 2918;
}
}
else
@@ -1885,7 +1885,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx0xx0xxxxxx011xxx
umlsll. */
- return 2907;
+ return 2933;
}
else
{
@@ -1893,7 +1893,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx1xx0xxxxxx011xxx
umlsll. */
- return 2908;
+ return 2934;
}
}
}
@@ -1905,7 +1905,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx0xx1xxxxxx01xxxx
fmls. */
- return 3369;
+ return 3469;
}
else
{
@@ -1913,7 +1913,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx1xx1xxxxxx01xxxx
fmls. */
- return 3370;
+ return 3470;
}
}
}
@@ -1927,7 +1927,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx0xx0xxxxxx11xxxx
sumlall. */
- return 2849;
+ return 2875;
}
else
{
@@ -1935,7 +1935,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx1xx0xxxxxx11xxxx
sumlall. */
- return 2850;
+ return 2876;
}
}
else
@@ -1946,7 +1946,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx0xx1xxxxxx11xxxx
bfmls. */
- return 3326;
+ return 3426;
}
else
{
@@ -1954,7 +1954,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010001xxxx1xx1xxxxxx11xxxx
bfmls. */
- return 3327;
+ return 3427;
}
}
}
@@ -1977,7 +1977,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100001000xxxxx000xxxxxxxxx0xxx
ld1b. */
- return 2607;
+ return 2633;
}
else
{
@@ -1985,7 +1985,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100001000xxxxx010xxxxxxxxx0xxx
ld1w. */
- return 2631;
+ return 2657;
}
}
else
@@ -1996,7 +1996,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100001000xxxxx001xxxxxxxxx0xxx
ld1h. */
- return 2623;
+ return 2649;
}
else
{
@@ -2004,7 +2004,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100001000xxxxx011xxxxxxxxx0xxx
ld1d. */
- return 2615;
+ return 2641;
}
}
}
@@ -2018,7 +2018,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100001000xxxxx000xxxxxxxxx1xxx
ldnt1b. */
- return 2639;
+ return 2665;
}
else
{
@@ -2026,7 +2026,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100001000xxxxx010xxxxxxxxx1xxx
ldnt1w. */
- return 2663;
+ return 2689;
}
}
else
@@ -2037,7 +2037,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100001000xxxxx001xxxxxxxxx1xxx
ldnt1h. */
- return 2655;
+ return 2681;
}
else
{
@@ -2045,7 +2045,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100001000xxxxx011xxxxxxxxx1xxx
ldnt1d. */
- return 2647;
+ return 2673;
}
}
}
@@ -2056,7 +2056,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1100001000xxxxx0xxxxxxxxxxxxxxx
ldr. */
- return 2461;
+ return 2487;
}
}
else
@@ -2073,7 +2073,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100001000xxxxx100xxxxxxxxx0xxx
ld1b. */
- return 2608;
+ return 2634;
}
else
{
@@ -2081,7 +2081,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1100001000xxxxx100xxxxxxxxx0xxx
ldr. */
- return 2665;
+ return 2691;
}
}
else
@@ -2090,7 +2090,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001000xxxxx110xxxxxxxxx0xxx
ld1w. */
- return 2632;
+ return 2658;
}
}
else
@@ -2101,7 +2101,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001000xxxxx101xxxxxxxxx0xxx
ld1h. */
- return 2624;
+ return 2650;
}
else
{
@@ -2109,7 +2109,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001000xxxxx111xxxxxxxxx0xxx
ld1d. */
- return 2616;
+ return 2642;
}
}
}
@@ -2123,7 +2123,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001000xxxxx100xxxxxxxxx1xxx
ldnt1b. */
- return 2640;
+ return 2666;
}
else
{
@@ -2131,7 +2131,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001000xxxxx110xxxxxxxxx1xxx
ldnt1w. */
- return 2664;
+ return 2690;
}
}
else
@@ -2142,7 +2142,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001000xxxxx101xxxxxxxxx1xxx
ldnt1h. */
- return 2656;
+ return 2682;
}
else
{
@@ -2150,7 +2150,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001000xxxxx111xxxxxxxxx1xxx
ldnt1d. */
- return 2648;
+ return 2674;
}
}
}
@@ -2171,7 +2171,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0000001100xxxxxxxxxxxxxxxx00xxx
bfmopa. */
- return 2411;
+ return 2447;
}
else
{
@@ -2179,7 +2179,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0000001100xxxxxxxxxxxxxxxx01xxx
fmopa. */
- return 3361;
+ return 3461;
}
}
else
@@ -2194,7 +2194,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011000xxxxxxx0xxxxxxx00xxx
smlall. */
- return 2964;
+ return 2990;
}
else
{
@@ -2206,7 +2206,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxx0xx0xxxxxx000xxx
smlall. */
- return 2965;
+ return 2991;
}
else
{
@@ -2214,7 +2214,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxx1xx0xxxxxx000xxx
smlall. */
- return 2966;
+ return 2992;
}
}
else
@@ -2223,7 +2223,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxxxxx0xxxxxx100xxx
fmlall. */
- return 3548;
+ return 3648;
}
}
}
@@ -2235,7 +2235,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011000xxxxxxx0xxxxxxx01xxx
smlsll. */
- return 2967;
+ return 2993;
}
else
{
@@ -2245,7 +2245,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxx0xx0xxxxxxx01xxx
smlsll. */
- return 2968;
+ return 2994;
}
else
{
@@ -2253,7 +2253,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxx1xx0xxxxxxx01xxx
smlsll. */
- return 2969;
+ return 2995;
}
}
}
@@ -2268,7 +2268,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011000xxxxxxx1xxxxxxx00xxx
fmlal. */
- return 2568;
+ return 2594;
}
else
{
@@ -2276,7 +2276,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011000xxxxxxx1xxxxxxx01xxx
fmlsl. */
- return 2582;
+ return 2608;
}
}
else
@@ -2291,7 +2291,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxx0xx1xxxxxx000xxx
fmlal. */
- return 2569;
+ return 2595;
}
else
{
@@ -2299,7 +2299,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxx1xx1xxxxxx000xxx
fmlal. */
- return 2570;
+ return 2596;
}
}
else
@@ -2310,7 +2310,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxx0xx1xxxxxx001xxx
fmlsl. */
- return 2583;
+ return 2609;
}
else
{
@@ -2318,7 +2318,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxx1xx1xxxxxx001xxx
fmlsl. */
- return 2584;
+ return 2610;
}
}
}
@@ -2328,7 +2328,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxxxxx1xxxxxx10xxxx
fmlal. */
- return 3541;
+ return 3641;
}
}
}
@@ -2342,7 +2342,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001100xxxxxxxxxxxxxxxx00xxx
usmopa. */
- return 2432;
+ return 2468;
}
else
{
@@ -2350,7 +2350,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001100xxxxxxxxxxxxxxxx01xxx
umopa. */
- return 2914;
+ return 2940;
}
}
}
@@ -2366,7 +2366,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0000001100xxxxxxxxxxxxxxxx10xxx
bfmops. */
- return 2412;
+ return 2448;
}
else
{
@@ -2374,7 +2374,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0000001100xxxxxxxxxxxxxxxx11xxx
fmops. */
- return 3362;
+ return 3462;
}
}
else
@@ -2389,7 +2389,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011000xxxxxxx0xxxxxxx10xxx
umlall. */
- return 2973;
+ return 2999;
}
else
{
@@ -2399,7 +2399,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxx0xx0xxxxxxx10xxx
umlall. */
- return 2974;
+ return 3000;
}
else
{
@@ -2407,7 +2407,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxx1xx0xxxxxxx10xxx
umlall. */
- return 2975;
+ return 3001;
}
}
}
@@ -2419,7 +2419,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011000xxxxxxx0xxxxxxx11xxx
umlsll. */
- return 2976;
+ return 3002;
}
else
{
@@ -2429,7 +2429,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxx0xx0xxxxxxx11xxx
umlsll. */
- return 2977;
+ return 3003;
}
else
{
@@ -2437,7 +2437,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxx1xx0xxxxxxx11xxx
umlsll. */
- return 2978;
+ return 3004;
}
}
}
@@ -2452,7 +2452,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011000xxxxxxx1xxxxxxx10xxx
bfmlal. */
- return 2510;
+ return 2536;
}
else
{
@@ -2460,7 +2460,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011000xxxxxxx1xxxxxxx11xxx
bfmlsl. */
- return 2518;
+ return 2544;
}
}
else
@@ -2475,7 +2475,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxx0xx1xxxxxx010xxx
bfmlal. */
- return 2511;
+ return 2537;
}
else
{
@@ -2483,7 +2483,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxx1xx1xxxxxx010xxx
bfmlal. */
- return 2512;
+ return 2538;
}
}
else
@@ -2494,7 +2494,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxx0xx1xxxxxx011xxx
bfmlsl. */
- return 2519;
+ return 2545;
}
else
{
@@ -2502,7 +2502,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxx1xx1xxxxxx011xxx
bfmlsl. */
- return 2520;
+ return 2546;
}
}
}
@@ -2512,7 +2512,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011001xxxxxxx1xxxxxx11xxxx
fmlal. */
- return 3540;
+ return 3640;
}
}
}
@@ -2526,7 +2526,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001100xxxxxxxxxxxxxxxx10xxx
usmops. */
- return 2434;
+ return 2470;
}
else
{
@@ -2534,7 +2534,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001100xxxxxxxxxxxxxxxx11xxx
umops. */
- return 2915;
+ return 2941;
}
}
}
@@ -2554,7 +2554,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000010100xxxxxxxxxxxxxxxx0xxx
fmlall. */
- return 3547;
+ return 3647;
}
else
{
@@ -2568,7 +2568,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx1000010100xxxx000xxxxxxxxx0xxx
ld1b. */
- return 2603;
+ return 2629;
}
else
{
@@ -2576,7 +2576,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx1000010100xxxx100xxxxxxxxx0xxx
ld1b. */
- return 2604;
+ return 2630;
}
}
else
@@ -2587,7 +2587,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx1000010100xxxx010xxxxxxxxx0xxx
ld1w. */
- return 2627;
+ return 2653;
}
else
{
@@ -2595,7 +2595,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx1000010100xxxx110xxxxxxxxx0xxx
ld1w. */
- return 2628;
+ return 2654;
}
}
}
@@ -2609,7 +2609,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx1000010100xxxx001xxxxxxxxx0xxx
ld1h. */
- return 2619;
+ return 2645;
}
else
{
@@ -2617,7 +2617,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx1000010100xxxx101xxxxxxxxx0xxx
ld1h. */
- return 2620;
+ return 2646;
}
}
else
@@ -2628,7 +2628,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx1000010100xxxx011xxxxxxxxx0xxx
ld1d. */
- return 2611;
+ return 2637;
}
else
{
@@ -2636,7 +2636,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx1000010100xxxx111xxxxxxxxx0xxx
ld1d. */
- return 2612;
+ return 2638;
}
}
}
@@ -2656,7 +2656,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xx0xxxxxx000xxx
fmla. */
- return 2562;
+ return 2588;
}
else
{
@@ -2664,7 +2664,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx0xxxxxx000xxx
fmla. */
- return 2563;
+ return 2589;
}
}
else
@@ -2675,7 +2675,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xx1xxxxxx000xxx
sdot. */
- return 2697;
+ return 2723;
}
else
{
@@ -2683,7 +2683,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx1xxxxxx000xxx
sdot. */
- return 2698;
+ return 2724;
}
}
}
@@ -2697,7 +2697,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xx0xxxxxx100xxx
svdot. */
- return 2856;
+ return 2882;
}
else
{
@@ -2705,7 +2705,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx0xxxxxx100xxx
svdot. */
- return 2857;
+ return 2883;
}
}
else
@@ -2716,7 +2716,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xx1xxxxxx100xxx
sdot. */
- return 2703;
+ return 2729;
}
else
{
@@ -2724,7 +2724,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx1xxxxxx100xxx
sdot. */
- return 2704;
+ return 2730;
}
}
}
@@ -2741,7 +2741,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xx0xxxxxx010xxx
fmls. */
- return 2576;
+ return 2602;
}
else
{
@@ -2749,7 +2749,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx0xxxxxx010xxx
fmls. */
- return 2577;
+ return 2603;
}
}
else
@@ -2760,7 +2760,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xx1xxxxxx010xxx
udot. */
- return 2862;
+ return 2888;
}
else
{
@@ -2768,7 +2768,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx1xxxxxx010xxx
udot. */
- return 2863;
+ return 2889;
}
}
}
@@ -2782,7 +2782,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xx0xxxxxx110xxx
uvdot. */
- return 2943;
+ return 2969;
}
else
{
@@ -2790,7 +2790,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx0xxxxxx110xxx
uvdot. */
- return 2944;
+ return 2970;
}
}
else
@@ -2801,7 +2801,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xx1xxxxxx110xxx
udot. */
- return 2868;
+ return 2894;
}
else
{
@@ -2809,7 +2809,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx1xxxxxx110xxx
udot. */
- return 2869;
+ return 2895;
}
}
}
@@ -2830,7 +2830,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010100xxxx000xxxxxxxxx1xxx
ldnt1b. */
- return 2635;
+ return 2661;
}
else
{
@@ -2838,7 +2838,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010100xxxx010xxxxxxxxx1xxx
ldnt1w. */
- return 2659;
+ return 2685;
}
}
else
@@ -2849,7 +2849,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010100xxxx001xxxxxxxxx1xxx
ldnt1h. */
- return 2651;
+ return 2677;
}
else
{
@@ -2857,7 +2857,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010100xxxx011xxxxxxxxx1xxx
ldnt1d. */
- return 2643;
+ return 2669;
}
}
}
@@ -2873,7 +2873,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xx0xxxxxx001xxx
fvdot. */
- return 2600;
+ return 2626;
}
else
{
@@ -2881,7 +2881,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xx1xxxxxx001xxx
fdot. */
- return 2540;
+ return 2566;
}
}
else
@@ -2890,7 +2890,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xxxxxxxxx101xxx
usdot. */
- return 2926;
+ return 2952;
}
}
else
@@ -2903,7 +2903,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xx0xxxxxx011xxx
bfvdot. */
- return 2526;
+ return 2552;
}
else
{
@@ -2911,7 +2911,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xx1xxxxxx011xxx
bfdot. */
- return 2504;
+ return 2530;
}
}
else
@@ -2922,7 +2922,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xx0xxxxxx111xxx
fdot. */
- return 3527;
+ return 3627;
}
else
{
@@ -2930,7 +2930,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx0xx1xxxxxx111xxx
sudot. */
- return 2844;
+ return 2870;
}
}
}
@@ -2948,7 +2948,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010100xxxx100xxxxxxxxx1xxx
ldnt1b. */
- return 2636;
+ return 2662;
}
else
{
@@ -2956,7 +2956,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010100xxxx110xxxxxxxxx1xxx
ldnt1w. */
- return 2660;
+ return 2686;
}
}
else
@@ -2967,7 +2967,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010100xxxx101xxxxxxxxx1xxx
ldnt1h. */
- return 2652;
+ return 2678;
}
else
{
@@ -2975,7 +2975,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010100xxxx111xxxxxxxxx1xxx
ldnt1d. */
- return 2644;
+ return 2670;
}
}
}
@@ -2991,7 +2991,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx0xxxxxx001xxx
fdot. */
- return 3528;
+ return 3628;
}
else
{
@@ -2999,7 +2999,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx1xxxxxx001xxx
fdot. */
- return 2541;
+ return 2567;
}
}
else
@@ -3010,7 +3010,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx0xxxxxx101xxx
usvdot. */
- return 2940;
+ return 2966;
}
else
{
@@ -3018,7 +3018,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx1xxxxxx101xxx
usdot. */
- return 2927;
+ return 2953;
}
}
}
@@ -3030,7 +3030,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xxxxxxxxx011xxx
bfdot. */
- return 2505;
+ return 2531;
}
else
{
@@ -3040,7 +3040,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx0xxxxxx111xxx
suvdot. */
- return 2855;
+ return 2881;
}
else
{
@@ -3048,7 +3048,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx000010101xxxx1xx1xxxxxx111xxx
sudot. */
- return 2845;
+ return 2871;
}
}
}
@@ -3070,7 +3070,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011100xxxxxxx0xxxxxxx0xxxx
fmlal. */
- return 3539;
+ return 3639;
}
else
{
@@ -3086,7 +3086,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxx0xx00xxxxx000xxx
fmla. */
- return 2980;
+ return 3006;
}
else
{
@@ -3094,7 +3094,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxx1xx00xxxxx000xxx
fmla. */
- return 2981;
+ return 3007;
}
}
else
@@ -3105,7 +3105,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxx0xx00xxxxx001xxx
sdot. */
- return 2962;
+ return 2988;
}
else
{
@@ -3113,7 +3113,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxx1xx00xxxxx001xxx
sdot. */
- return 2963;
+ return 2989;
}
}
}
@@ -3125,7 +3125,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxx0xx01xxxxx00xxxx
fvdotb. */
- return 3558;
+ return 3658;
}
else
{
@@ -3133,7 +3133,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxx1xx01xxxxx00xxxx
svdot. */
- return 2970;
+ return 2996;
}
}
}
@@ -3143,7 +3143,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxxxxx0xxxxxx10xxxx
fdot. */
- return 3533;
+ return 3633;
}
}
}
@@ -3157,7 +3157,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011100xxxxxxx1xxxxxxx00xxx
smlal. */
- return 2719;
+ return 2745;
}
else
{
@@ -3165,7 +3165,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011100xxxxxxx1xxxxxxx01xxx
smlsl. */
- return 2735;
+ return 2761;
}
}
else
@@ -3180,7 +3180,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxx0xx1xxxxxx000xxx
smlal. */
- return 2720;
+ return 2746;
}
else
{
@@ -3188,7 +3188,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxx1xx1xxxxxx000xxx
smlal. */
- return 2721;
+ return 2747;
}
}
else
@@ -3199,7 +3199,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxx0xx1xxxxxx001xxx
smlsl. */
- return 2736;
+ return 2762;
}
else
{
@@ -3207,7 +3207,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxx1xx1xxxxxx001xxx
smlsl. */
- return 2737;
+ return 2763;
}
}
}
@@ -3217,7 +3217,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxxxxx1xxxxxx10xxxx
fvdot. */
- return 3557;
+ return 3657;
}
}
}
@@ -3230,7 +3230,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100001110xxxxxxxxxxxxxxxx0xxxx
usmopa. */
- return 2433;
+ return 2469;
}
else
{
@@ -3238,7 +3238,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1100001110xxxxxxxxxxxxxxxx0xxxx
ld1q. */
- return 2445;
+ return 2481;
}
}
}
@@ -3258,7 +3258,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000001110xxxxx0xx00xxxxxx10xxx
fmls. */
- return 2982;
+ return 3008;
}
else
{
@@ -3266,7 +3266,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000001110xxxxx1xx00xxxxxx10xxx
fmls. */
- return 2983;
+ return 3009;
}
}
else
@@ -3277,7 +3277,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000001110xxxxx0xx00xxxxxx11xxx
udot. */
- return 2971;
+ return 2997;
}
else
{
@@ -3285,7 +3285,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000001110xxxxx1xx00xxxxxx11xxx
udot. */
- return 2972;
+ return 2998;
}
}
}
@@ -3297,7 +3297,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000001110xxxxx0xx01xxxxxx1xxxx
fvdott. */
- return 3559;
+ return 3659;
}
else
{
@@ -3305,7 +3305,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx000001110xxxxx1xx01xxxxxx1xxxx
uvdot. */
- return 2979;
+ return 3005;
}
}
}
@@ -3319,7 +3319,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011100xxxxxxx1xxxxxxx10xxx
umlal. */
- return 2882;
+ return 2908;
}
else
{
@@ -3329,7 +3329,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxx0xx1xxxxxxx10xxx
umlal. */
- return 2883;
+ return 2909;
}
else
{
@@ -3337,7 +3337,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxx1xx1xxxxxxx10xxx
umlal. */
- return 2884;
+ return 2910;
}
}
}
@@ -3349,7 +3349,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011100xxxxxxx1xxxxxxx11xxx
umlsl. */
- return 2898;
+ return 2924;
}
else
{
@@ -3359,7 +3359,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxx0xx1xxxxxxx11xxx
umlsl. */
- return 2899;
+ return 2925;
}
else
{
@@ -3367,7 +3367,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0000011101xxxx1xx1xxxxxxx11xxx
umlsl. */
- return 2900;
+ return 2926;
}
}
}
@@ -3379,7 +3379,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001110xxxxxxxxxxxxxxxx1xxxx
usmops. */
- return 2435;
+ return 2471;
}
}
}
@@ -3399,7 +3399,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0000001xx1xxxxxxxxxxxxxxxx00xxx
fmopa. */
- return 2415;
+ return 2451;
}
else
{
@@ -3407,7 +3407,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0000001xx1xxxxxxxxxxxxxxxx10xxx
fmops. */
- return 2418;
+ return 2454;
}
}
else
@@ -3418,7 +3418,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0000001xx1xxxxxxxxxxxxxxxx01xxx
bfmopa. */
- return 3332;
+ return 3432;
}
else
{
@@ -3426,7 +3426,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0000001xx1xxxxxxxxxxxxxxxx11xxx
bfmops. */
- return 3333;
+ return 3433;
}
}
}
@@ -3456,7 +3456,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x10xxxx0xx000xxxxx0000x
smlall. */
- return 2731;
+ return 2757;
}
else
{
@@ -3464,7 +3464,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x11xxxx0xx000xxxxx0000x
smlall. */
- return 2732;
+ return 2758;
}
}
else
@@ -3477,7 +3477,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx000xxxx00000x
smlall. */
- return 2733;
+ return 2759;
}
else
{
@@ -3485,7 +3485,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx000xxxx00000x
smlall. */
- return 2734;
+ return 2760;
}
}
else
@@ -3496,7 +3496,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx000xxxx10000x
fmlall. */
- return 3553;
+ return 3653;
}
else
{
@@ -3504,7 +3504,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx000xxxx10000x
fmlall. */
- return 3554;
+ return 3654;
}
}
}
@@ -3519,7 +3519,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x10xxxx0xx000xxxxx0010x
usmlall. */
- return 2936;
+ return 2962;
}
else
{
@@ -3527,7 +3527,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x11xxxx0xx000xxxxx0010x
usmlall. */
- return 2937;
+ return 2963;
}
}
else
@@ -3538,7 +3538,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx000xxxxx0010x
usmlall. */
- return 2938;
+ return 2964;
}
else
{
@@ -3546,7 +3546,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx000xxxxx0010x
usmlall. */
- return 2939;
+ return 2965;
}
}
}
@@ -3559,7 +3559,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx10xxxx0xx000xxxxx00x1x
fmlall. */
- return 3551;
+ return 3651;
}
else
{
@@ -3567,7 +3567,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx11xxxx0xx000xxxxx00x1x
fmlall. */
- return 3552;
+ return 3652;
}
}
}
@@ -3581,7 +3581,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x10xxxx0xx100xxxxx00xxx
fdot. */
- return 2542;
+ return 2568;
}
else
{
@@ -3589,7 +3589,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x11xxxx0xx100xxxxx00xxx
fdot. */
- return 2543;
+ return 2569;
}
}
else
@@ -3602,7 +3602,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx100xxxx000xxx
fdot. */
- return 2544;
+ return 2570;
}
else
{
@@ -3610,7 +3610,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx100xxxx000xxx
fdot. */
- return 2545;
+ return 2571;
}
}
else
@@ -3621,7 +3621,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx100xxxx100xxx
fdot. */
- return 3537;
+ return 3637;
}
else
{
@@ -3629,7 +3629,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx100xxxx100xxx
fdot. */
- return 3538;
+ return 3638;
}
}
}
@@ -3651,7 +3651,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010010xxxx0xx010xxxxx000xx
fmlal. */
- return 2572;
+ return 2598;
}
else
{
@@ -3659,7 +3659,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010011xxxx0xx010xxxxx000xx
fmlal. */
- return 2573;
+ return 2599;
}
}
else
@@ -3672,7 +3672,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxxx00xx010xxxx0000xx
fmlal. */
- return 2574;
+ return 2600;
}
else
{
@@ -3680,7 +3680,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxxx10xx010xxxx0000xx
fmlal. */
- return 2575;
+ return 2601;
}
}
else
@@ -3691,7 +3691,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxxx00xx010xxxx1000xx
fmlal. */
- return 3545;
+ return 3645;
}
else
{
@@ -3699,7 +3699,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxxx10xx010xxxx1000xx
fmlal. */
- return 3546;
+ return 3646;
}
}
}
@@ -3714,7 +3714,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010110xxxx0xx010xxxxx000xx
smlal. */
- return 2723;
+ return 2749;
}
else
{
@@ -3722,7 +3722,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010111xxxx0xx010xxxxx000xx
smlal. */
- return 2724;
+ return 2750;
}
}
else
@@ -3733,7 +3733,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001111xxxx00xx010xxxxx000xx
smlal. */
- return 2725;
+ return 2751;
}
else
{
@@ -3741,7 +3741,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001111xxxx10xx010xxxxx000xx
smlal. */
- return 2726;
+ return 2752;
}
}
}
@@ -3754,7 +3754,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx10xxxx0xx010xxxxx001xx
fmlal. */
- return 3543;
+ return 3643;
}
else
{
@@ -3762,7 +3762,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx11xxxx0xx010xxxxx001xx
fmlal. */
- return 3544;
+ return 3644;
}
}
}
@@ -3776,7 +3776,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x10xxxx0xx110xxxxx00xxx
fmla. */
- return 2564;
+ return 2590;
}
else
{
@@ -3784,7 +3784,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x11xxxx0xx110xxxxx00xxx
fmla. */
- return 2565;
+ return 2591;
}
}
else
@@ -3795,7 +3795,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx110xxxxx00xxx
fmla. */
- return 2566;
+ return 2592;
}
else
{
@@ -3803,7 +3803,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx110xxxxx00xxx
fmla. */
- return 2567;
+ return 2593;
}
}
}
@@ -3823,7 +3823,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx10xxxx0xx001xxxxx000xx
smlall. */
- return 2730;
+ return 2756;
}
else
{
@@ -3831,7 +3831,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx11xxxx0xx001xxxxx000xx
fmlall. */
- return 3550;
+ return 3650;
}
}
else
@@ -3840,7 +3840,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx0xx001xxxxx001xx
usmlall. */
- return 2935;
+ return 2961;
}
}
else
@@ -3853,7 +3853,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x10xxxx0xx101xxxxx00xxx
sdot. */
- return 2705;
+ return 2731;
}
else
{
@@ -3861,7 +3861,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x11xxxx0xx101xxxxx00xxx
sdot. */
- return 2706;
+ return 2732;
}
}
else
@@ -3872,7 +3872,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx101xxxxx00xxx
sdot. */
- return 2707;
+ return 2733;
}
else
{
@@ -3880,7 +3880,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx101xxxxx00xxx
sdot. */
- return 2708;
+ return 2734;
}
}
}
@@ -3897,7 +3897,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x010xxxx0xx011xxxxx00xxx
fmlal. */
- return 2571;
+ return 2597;
}
else
{
@@ -3905,7 +3905,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x110xxxx0xx011xxxxx00xxx
smlal. */
- return 2722;
+ return 2748;
}
}
else
@@ -3914,7 +3914,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx11xxxx0xx011xxxxx00xxx
fmlal. */
- return 3542;
+ return 3642;
}
}
else
@@ -3929,7 +3929,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010010xxxx0xx111xxxxx00xxx
fmla. */
- return 3365;
+ return 3465;
}
else
{
@@ -3937,7 +3937,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010110xxxx0xx111xxxxx00xxx
bfmla. */
- return 3322;
+ return 3422;
}
}
else
@@ -3950,7 +3950,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x10x0x00xx111xxxxx00xxx
fadd. */
- return 2530;
+ return 2556;
}
else
{
@@ -3960,7 +3960,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011010x1x00xx111xxxxx00xxx
fadd. */
- return 3491;
+ return 3591;
}
else
{
@@ -3968,7 +3968,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011110x1x00xx111xxxxx00xxx
bfadd. */
- return 3316;
+ return 3416;
}
}
}
@@ -3980,7 +3980,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x10x0x10xx111xxxxx00xxx
fadd. */
- return 2531;
+ return 2557;
}
else
{
@@ -3990,7 +3990,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011010x1x10xx111xxxxx00xxx
fadd. */
- return 3492;
+ return 3592;
}
else
{
@@ -3998,7 +3998,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011110x1x10xx111xxxxx00xxx
bfadd. */
- return 3317;
+ return 3417;
}
}
}
@@ -4012,7 +4012,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x011xxxx0xx111xxxxx00xxx
fmla. */
- return 3366;
+ return 3466;
}
else
{
@@ -4020,7 +4020,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x111xxxx0xx111xxxxx00xxx
bfmla. */
- return 3323;
+ return 3423;
}
}
}
@@ -4045,7 +4045,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x10xxxx0xx000xxxxx100xx
umlall. */
- return 2894;
+ return 2920;
}
else
{
@@ -4053,7 +4053,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x11xxxx0xx000xxxxx100xx
umlall. */
- return 2895;
+ return 2921;
}
}
else
@@ -4064,7 +4064,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx000xxxxx100xx
umlall. */
- return 2896;
+ return 2922;
}
else
{
@@ -4072,7 +4072,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx000xxxxx100xx
umlall. */
- return 2897;
+ return 2923;
}
}
}
@@ -4084,7 +4084,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx10xxxx0xx000xxxxx101xx
sumlall. */
- return 2851;
+ return 2877;
}
else
{
@@ -4092,7 +4092,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx11xxxx0xx000xxxxx101xx
sumlall. */
- return 2852;
+ return 2878;
}
}
}
@@ -4106,7 +4106,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x10xxxx0xx100xxxxx10xxx
bfdot. */
- return 2506;
+ return 2532;
}
else
{
@@ -4114,7 +4114,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x11xxxx0xx100xxxxx10xxx
bfdot. */
- return 2507;
+ return 2533;
}
}
else
@@ -4127,7 +4127,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx100xxxx010xxx
bfdot. */
- return 2508;
+ return 2534;
}
else
{
@@ -4135,7 +4135,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx100xxxx010xxx
bfdot. */
- return 2509;
+ return 2535;
}
}
else
@@ -4146,7 +4146,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx100xxxx110xxx
fdot. */
- return 3531;
+ return 3631;
}
else
{
@@ -4154,7 +4154,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx100xxxx110xxx
fdot. */
- return 3532;
+ return 3632;
}
}
}
@@ -4174,7 +4174,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010010xxxx0xx010xxxxx10xxx
bfmlal. */
- return 2514;
+ return 2540;
}
else
{
@@ -4182,7 +4182,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010011xxxx0xx010xxxxx10xxx
bfmlal. */
- return 2515;
+ return 2541;
}
}
else
@@ -4193,7 +4193,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxxx00xx010xxxxx10xxx
bfmlal. */
- return 2516;
+ return 2542;
}
else
{
@@ -4201,7 +4201,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxxx10xx010xxxxx10xxx
bfmlal. */
- return 2517;
+ return 2543;
}
}
}
@@ -4215,7 +4215,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010110xxxx0xx010xxxxx10xxx
umlal. */
- return 2886;
+ return 2912;
}
else
{
@@ -4223,7 +4223,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010111xxxx0xx010xxxxx10xxx
umlal. */
- return 2887;
+ return 2913;
}
}
else
@@ -4234,7 +4234,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001111xxxx00xx010xxxxx10xxx
umlal. */
- return 2888;
+ return 2914;
}
else
{
@@ -4242,7 +4242,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001111xxxx10xx010xxxxx10xxx
umlal. */
- return 2889;
+ return 2915;
}
}
}
@@ -4257,7 +4257,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x10xxxx0xx110xxxxx10xxx
add. */
- return 2496;
+ return 2522;
}
else
{
@@ -4265,7 +4265,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x11xxxx0xx110xxxxx10xxx
add. */
- return 2497;
+ return 2523;
}
}
else
@@ -4276,7 +4276,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx110xxxxx10xxx
add. */
- return 2498;
+ return 2524;
}
else
{
@@ -4284,7 +4284,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx110xxxxx10xxx
add. */
- return 2499;
+ return 2525;
}
}
}
@@ -4300,7 +4300,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx0xx001xxxxx10xxx
umlall. */
- return 2893;
+ return 2919;
}
else
{
@@ -4312,7 +4312,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x10xxxx0xx101xxxxx10xxx
udot. */
- return 2870;
+ return 2896;
}
else
{
@@ -4320,7 +4320,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x11xxxx0xx101xxxxx10xxx
udot. */
- return 2871;
+ return 2897;
}
}
else
@@ -4331,7 +4331,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx101xxxxx10xxx
udot. */
- return 2872;
+ return 2898;
}
else
{
@@ -4339,7 +4339,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx101xxxxx10xxx
udot. */
- return 2873;
+ return 2899;
}
}
}
@@ -4354,7 +4354,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x01xxxxx0xx011xxxxx10xxx
bfmlal. */
- return 2513;
+ return 2539;
}
else
{
@@ -4362,7 +4362,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x11xxxxx0xx011xxxxx10xxx
umlal. */
- return 2885;
+ return 2911;
}
}
else
@@ -4373,7 +4373,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxx00xx111xxxxx10xxx
add. */
- return 2494;
+ return 2520;
}
else
{
@@ -4381,7 +4381,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxx10xx111xxxxx10xxx
add. */
- return 2495;
+ return 2521;
}
}
}
@@ -4406,7 +4406,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x10xxxx0xx000xxxxx01xxx
smlsll. */
- return 2747;
+ return 2773;
}
else
{
@@ -4414,7 +4414,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x11xxxx0xx000xxxxx01xxx
smlsll. */
- return 2748;
+ return 2774;
}
}
else
@@ -4425,7 +4425,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx000xxxxx01xxx
smlsll. */
- return 2749;
+ return 2775;
}
else
{
@@ -4433,7 +4433,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx000xxxxx01xxx
smlsll. */
- return 2750;
+ return 2776;
}
}
}
@@ -4449,7 +4449,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010010xxxx0xx100xxxxx01xxx
fdot. */
- return 3535;
+ return 3635;
}
else
{
@@ -4457,7 +4457,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010011xxxx0xx100xxxxx01xxx
fdot. */
- return 3536;
+ return 3636;
}
}
else
@@ -4468,7 +4468,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxxx00xx100xxxxx01xxx
fmla. */
- return 3367;
+ return 3467;
}
else
{
@@ -4476,7 +4476,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxxx10xx100xxxxx01xxx
fmla. */
- return 3368;
+ return 3468;
}
}
}
@@ -4488,7 +4488,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x11xxxx00xx100xxxxx01xxx
bfmla. */
- return 3324;
+ return 3424;
}
else
{
@@ -4496,7 +4496,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x11xxxx10xx100xxxxx01xxx
bfmla. */
- return 3325;
+ return 3425;
}
}
}
@@ -4515,7 +4515,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010010xxxx0xx010xxxxx01xxx
fmlsl. */
- return 2586;
+ return 2612;
}
else
{
@@ -4523,7 +4523,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010011xxxx0xx010xxxxx01xxx
fmlsl. */
- return 2587;
+ return 2613;
}
}
else
@@ -4534,7 +4534,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxxx00xx010xxxxx01xxx
fmlsl. */
- return 2588;
+ return 2614;
}
else
{
@@ -4542,7 +4542,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxxx10xx010xxxxx01xxx
fmlsl. */
- return 2589;
+ return 2615;
}
}
}
@@ -4556,7 +4556,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010110xxxx0xx010xxxxx01xxx
smlsl. */
- return 2739;
+ return 2765;
}
else
{
@@ -4564,7 +4564,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010111xxxx0xx010xxxxx01xxx
smlsl. */
- return 2740;
+ return 2766;
}
}
else
@@ -4575,7 +4575,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001111xxxx00xx010xxxxx01xxx
smlsl. */
- return 2741;
+ return 2767;
}
else
{
@@ -4583,7 +4583,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001111xxxx10xx010xxxxx01xxx
smlsl. */
- return 2742;
+ return 2768;
}
}
}
@@ -4598,7 +4598,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x10xxxx0xx110xxxxx01xxx
fmls. */
- return 2578;
+ return 2604;
}
else
{
@@ -4606,7 +4606,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x11xxxx0xx110xxxxx01xxx
fmls. */
- return 2579;
+ return 2605;
}
}
else
@@ -4617,7 +4617,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx110xxxxx01xxx
fmls. */
- return 2580;
+ return 2606;
}
else
{
@@ -4625,7 +4625,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx110xxxxx01xxx
fmls. */
- return 2581;
+ return 2607;
}
}
}
@@ -4641,7 +4641,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx0xx001xxxxx01xxx
smlsll. */
- return 2746;
+ return 2772;
}
else
{
@@ -4655,7 +4655,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010010xxxx0xx101xxxxx01xxx
usdot. */
- return 2928;
+ return 2954;
}
else
{
@@ -4663,7 +4663,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010011xxxx0xx101xxxxx01xxx
usdot. */
- return 2929;
+ return 2955;
}
}
else
@@ -4674,7 +4674,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxxx00xx101xxxxx01xxx
usdot. */
- return 2930;
+ return 2956;
}
else
{
@@ -4682,7 +4682,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxxx10xx101xxxxx01xxx
usdot. */
- return 2931;
+ return 2957;
}
}
}
@@ -4696,7 +4696,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010110xxxx0xx101xxxxx01xxx
sdot. */
- return 2699;
+ return 2725;
}
else
{
@@ -4704,7 +4704,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010111xxxx0xx101xxxxx01xxx
sdot. */
- return 2700;
+ return 2726;
}
}
else
@@ -4715,7 +4715,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001111xxxx00xx101xxxxx01xxx
sdot. */
- return 2701;
+ return 2727;
}
else
{
@@ -4723,7 +4723,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001111xxxx10xx101xxxxx01xxx
sdot. */
- return 2702;
+ return 2728;
}
}
}
@@ -4739,7 +4739,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x01xxxxx0xx011xxxxx01xxx
fmlsl. */
- return 2585;
+ return 2611;
}
else
{
@@ -4747,7 +4747,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x11xxxxx0xx011xxxxx01xxx
smlsl. */
- return 2738;
+ return 2764;
}
}
else
@@ -4762,7 +4762,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010010xxxx0xx111xxxxx01xxx
fmls. */
- return 3371;
+ return 3471;
}
else
{
@@ -4770,7 +4770,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010110xxxx0xx111xxxxx01xxx
bfmls. */
- return 3328;
+ return 3428;
}
}
else
@@ -4783,7 +4783,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x10x0x00xx111xxxxx01xxx
fsub. */
- return 2598;
+ return 2624;
}
else
{
@@ -4793,7 +4793,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011010x1x00xx111xxxxx01xxx
fsub. */
- return 3493;
+ return 3593;
}
else
{
@@ -4801,7 +4801,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011110x1x00xx111xxxxx01xxx
bfsub. */
- return 3318;
+ return 3418;
}
}
}
@@ -4813,7 +4813,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x10x0x10xx111xxxxx01xxx
fsub. */
- return 2599;
+ return 2625;
}
else
{
@@ -4823,7 +4823,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011010x1x10xx111xxxxx01xxx
fsub. */
- return 3494;
+ return 3594;
}
else
{
@@ -4831,7 +4831,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011110x1x10xx111xxxxx01xxx
bfsub. */
- return 3319;
+ return 3419;
}
}
}
@@ -4845,7 +4845,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x011xxxx0xx111xxxxx01xxx
fmls. */
- return 3372;
+ return 3472;
}
else
{
@@ -4853,7 +4853,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x111xxxx0xx111xxxxx01xxx
bfmls. */
- return 3329;
+ return 3429;
}
}
}
@@ -4876,7 +4876,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x10xxxx0xx000xxxxx11xxx
umlsll. */
- return 2910;
+ return 2936;
}
else
{
@@ -4884,7 +4884,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x11xxxx0xx000xxxxx11xxx
umlsll. */
- return 2911;
+ return 2937;
}
}
else
@@ -4895,7 +4895,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx000xxxxx11xxx
umlsll. */
- return 2912;
+ return 2938;
}
else
{
@@ -4903,7 +4903,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx000xxxxx11xxx
umlsll. */
- return 2913;
+ return 2939;
}
}
}
@@ -4919,7 +4919,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010010xxxx0xx100xxxxx11xxx
fdot. */
- return 3529;
+ return 3629;
}
else
{
@@ -4927,7 +4927,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010011xxxx0xx100xxxxx11xxx
fdot. */
- return 3530;
+ return 3630;
}
}
else
@@ -4938,7 +4938,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxxx00xx100xxxxx11xxx
fmls. */
- return 3373;
+ return 3473;
}
else
{
@@ -4946,7 +4946,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxxx10xx100xxxxx11xxx
fmls. */
- return 3374;
+ return 3474;
}
}
}
@@ -4958,7 +4958,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x11xxxx00xx100xxxxx11xxx
bfmls. */
- return 3330;
+ return 3430;
}
else
{
@@ -4966,7 +4966,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x11xxxx10xx100xxxxx11xxx
bfmls. */
- return 3331;
+ return 3431;
}
}
}
@@ -4985,7 +4985,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010010xxxx0xx010xxxxx11xxx
bfmlsl. */
- return 2522;
+ return 2548;
}
else
{
@@ -4993,7 +4993,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010011xxxx0xx010xxxxx11xxx
bfmlsl. */
- return 2523;
+ return 2549;
}
}
else
@@ -5004,7 +5004,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxxx00xx010xxxxx11xxx
bfmlsl. */
- return 2524;
+ return 2550;
}
else
{
@@ -5012,7 +5012,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxxx10xx010xxxxx11xxx
bfmlsl. */
- return 2525;
+ return 2551;
}
}
}
@@ -5026,7 +5026,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010110xxxx0xx010xxxxx11xxx
umlsl. */
- return 2902;
+ return 2928;
}
else
{
@@ -5034,7 +5034,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010111xxxx0xx010xxxxx11xxx
umlsl. */
- return 2903;
+ return 2929;
}
}
else
@@ -5045,7 +5045,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001111xxxx00xx010xxxxx11xxx
umlsl. */
- return 2904;
+ return 2930;
}
else
{
@@ -5053,7 +5053,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001111xxxx10xx010xxxxx11xxx
umlsl. */
- return 2905;
+ return 2931;
}
}
}
@@ -5068,7 +5068,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x10xxxx0xx110xxxxx11xxx
sub. */
- return 2840;
+ return 2866;
}
else
{
@@ -5076,7 +5076,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010x11xxxx0xx110xxxxx11xxx
sub. */
- return 2841;
+ return 2867;
}
}
else
@@ -5087,7 +5087,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx00xx110xxxxx11xxx
sub. */
- return 2842;
+ return 2868;
}
else
{
@@ -5095,7 +5095,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011x1xxxx10xx110xxxxx11xxx
sub. */
- return 2843;
+ return 2869;
}
}
}
@@ -5111,7 +5111,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx0xx001xxxxx11xxx
umlsll. */
- return 2909;
+ return 2935;
}
else
{
@@ -5123,7 +5123,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x010xxxx0xx101xxxxx11xxx
sudot. */
- return 2846;
+ return 2872;
}
else
{
@@ -5131,7 +5131,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x011xxxx0xx101xxxxx11xxx
sudot. */
- return 2847;
+ return 2873;
}
}
else
@@ -5144,7 +5144,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010110xxxx0xx101xxxxx11xxx
udot. */
- return 2864;
+ return 2890;
}
else
{
@@ -5152,7 +5152,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010111xxxx0xx101xxxxx11xxx
udot. */
- return 2865;
+ return 2891;
}
}
else
@@ -5163,7 +5163,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001111xxxx00xx101xxxxx11xxx
udot. */
- return 2866;
+ return 2892;
}
else
{
@@ -5171,7 +5171,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001111xxxx10xx101xxxxx11xxx
udot. */
- return 2867;
+ return 2893;
}
}
}
@@ -5187,7 +5187,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x01xxxxx0xx011xxxxx11xxx
bfmlsl. */
- return 2521;
+ return 2547;
}
else
{
@@ -5195,7 +5195,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x11xxxxx0xx011xxxxx11xxx
umlsl. */
- return 2901;
+ return 2927;
}
}
else
@@ -5206,7 +5206,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxx00xx111xxxxx11xxx
sub. */
- return 2838;
+ return 2864;
}
else
{
@@ -5214,7 +5214,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxx10xx111xxxxx11xxx
sub. */
- return 2839;
+ return 2865;
}
}
}
@@ -5234,7 +5234,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxx0100xxxxxxxxxxxxx
sel. */
- return 2709;
+ return 2735;
}
else
{
@@ -5242,7 +5242,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxx1100xxxxxxxxxxxxx
sel. */
- return 2710;
+ return 2736;
}
}
else
@@ -5259,7 +5259,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx110000xxxxxxxxx0
fclamp. */
- return 2532;
+ return 2558;
}
else
{
@@ -5267,7 +5267,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx110100xxxxxxxxx0
zip. */
- return 2958;
+ return 2984;
}
}
else
@@ -5276,7 +5276,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx110x00xxxxxxxxx1
uzp. */
- return 2945;
+ return 2971;
}
}
else
@@ -5287,7 +5287,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx110010xxxxxxxxxx
fclamp. */
- return 2533;
+ return 2559;
}
else
{
@@ -5299,7 +5299,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx110110xxx00xxxxx
sqrshr. */
- return 2764;
+ return 2790;
}
else
{
@@ -5307,7 +5307,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx110110xxx10xxxxx
sqrshru. */
- return 2767;
+ return 2793;
}
}
else
@@ -5316,7 +5316,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx110110xxxx1xxxxx
uqrshr. */
- return 2920;
+ return 2946;
}
}
}
@@ -5333,7 +5333,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx110001xxxxxxxxx0
sclamp. */
- return 2693;
+ return 2719;
}
else
{
@@ -5341,7 +5341,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx110001xxxxxxxxx1
uclamp. */
- return 2858;
+ return 2884;
}
}
else
@@ -5354,7 +5354,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x01xxxxx110101xxxxxxxxx0
zip. */
- return 2959;
+ return 2985;
}
else
{
@@ -5362,7 +5362,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x01xxxxx110101xxxxxxxxx1
uzp. */
- return 2946;
+ return 2972;
}
}
else
@@ -5375,7 +5375,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x110xxxx110101xxxx0xxxxx
sqrshr. */
- return 2763;
+ return 2789;
}
else
{
@@ -5383,7 +5383,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x111xxxx110101xxxx0xxxxx
sqrshru. */
- return 2766;
+ return 2792;
}
}
else
@@ -5392,7 +5392,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x11xxxxx110101xxxx1xxxxx
uqrshr. */
- return 2919;
+ return 2945;
}
}
}
@@ -5407,7 +5407,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx110011xxxxxxxxx0
sclamp. */
- return 2694;
+ return 2720;
}
else
{
@@ -5415,7 +5415,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx110011xxxxxxxxx1
uclamp. */
- return 2859;
+ return 2885;
}
}
else
@@ -5428,7 +5428,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx110111xxx00xxxxx
sqrshrn. */
- return 2765;
+ return 2791;
}
else
{
@@ -5436,7 +5436,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx110111xxx10xxxxx
sqrshrun. */
- return 2768;
+ return 2794;
}
}
else
@@ -5445,7 +5445,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx110111xxxx1xxxxx
uqrshrn. */
- return 2921;
+ return 2947;
}
}
}
@@ -5474,7 +5474,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx101000x00x0xxxx0
smax. */
- return 2711;
+ return 2737;
}
else
{
@@ -5484,7 +5484,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx101000010x0xxxx0
fmax. */
- return 2546;
+ return 2572;
}
else
{
@@ -5492,7 +5492,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx101000110x0xxxx0
add. */
- return 2500;
+ return 2526;
}
}
}
@@ -5501,8 +5501,8 @@ aarch64_opcode_lookup_1 (uint32_t word)
/* 33222222222211111111110000000000
10987654321098765432109876543210
x1000001xx1xxxxx101000xx1x0xxxx0
- fscale. */
- return 3465;
+ bfscale. */
+ return 3011;
}
}
else
@@ -5515,7 +5515,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx10100000xx1xxxx0
smin. */
- return 2715;
+ return 2741;
}
else
{
@@ -5523,7 +5523,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx10100010xx1xxxx0
srshl. */
- return 2769;
+ return 2795;
}
}
else
@@ -5532,7 +5532,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx101000x1xx1xxxx0
fmaxnm. */
- return 2550;
+ return 2576;
}
}
}
@@ -5546,7 +5546,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx101000x0xx0xxxx1
umax. */
- return 2874;
+ return 2900;
}
else
{
@@ -5554,7 +5554,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx101000x1xx0xxxx1
fmin. */
- return 2554;
+ return 2580;
}
}
else
@@ -5567,7 +5567,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx10100000xx1xxxx1
umin. */
- return 2878;
+ return 2904;
}
else
{
@@ -5575,7 +5575,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx10100010xx1xxxx1
urshl. */
- return 2922;
+ return 2948;
}
}
else
@@ -5584,7 +5584,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx101000x1xx1xxxx1
fminnm. */
- return 2558;
+ return 2584;
}
}
}
@@ -5609,7 +5609,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001001x0000111000xxxx0xxxxx
fcvt. */
- return 2534;
+ return 2560;
}
else
{
@@ -5617,7 +5617,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001001x0000111000xxxx1xxxxx
fcvtn. */
- return 2535;
+ return 2561;
}
}
else
@@ -5628,7 +5628,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101x0000111000xxxxxxxxx0
fcvt. */
- return 3375;
+ return 3475;
}
else
{
@@ -5636,7 +5636,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101x0000111000xxxxxxxxx1
fcvtl. */
- return 3376;
+ return 3476;
}
}
}
@@ -5648,7 +5648,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x11x0000111000xxxx0xxxxx
bfcvt. */
- return 2502;
+ return 2528;
}
else
{
@@ -5656,7 +5656,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x11x0000111000xxxx1xxxxx
bfcvtn. */
- return 2503;
+ return 2529;
}
}
}
@@ -5668,7 +5668,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx101000111000xxxxxxxxxx
frintn. */
- return 2594;
+ return 2620;
}
else
{
@@ -5676,7 +5676,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx111000111000xxxxxxxxxx
frintn. */
- return 2595;
+ return 2621;
}
}
}
@@ -5694,7 +5694,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x0100100111000xxxx0xxxxx
fcvt. */
- return 3462;
+ return 3562;
}
else
{
@@ -5702,7 +5702,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x1100100111000xxxx0xxxxx
bfcvt. */
- return 3457;
+ return 3557;
}
}
else
@@ -5711,7 +5711,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx110100111000xxxx0xxxxx
fcvt. */
- return 3463;
+ return 3563;
}
}
else
@@ -5722,7 +5722,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx101100111000xxxx0xxxxx
frinta. */
- return 2590;
+ return 2616;
}
else
{
@@ -5730,7 +5730,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx111100111000xxxx0xxxxx
frinta. */
- return 2591;
+ return 2617;
}
}
}
@@ -5740,7 +5740,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xx100111000xxxx1xxxxx
fcvtn. */
- return 3464;
+ return 3564;
}
}
}
@@ -5760,7 +5760,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx100010111000xxxx0xxxx0
scvtf. */
- return 2695;
+ return 2721;
}
else
{
@@ -5768,7 +5768,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx110010111000xxxx0xxxx0
scvtf. */
- return 2696;
+ return 2722;
}
}
else
@@ -5779,7 +5779,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx101010111000xxxx0xxxx0
frintm. */
- return 2592;
+ return 2618;
}
else
{
@@ -5787,7 +5787,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx111010111000xxxx0xxxx0
frintm. */
- return 2593;
+ return 2619;
}
}
}
@@ -5799,7 +5799,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx10x010111000xxxx1xxxx0
ucvtf. */
- return 2860;
+ return 2886;
}
else
{
@@ -5807,7 +5807,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx11x010111000xxxx1xxxx0
ucvtf. */
- return 2861;
+ return 2887;
}
}
}
@@ -5823,7 +5823,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010010x110111000xxxxxxxxx0
f1cvt. */
- return 3458;
+ return 3558;
}
else
{
@@ -5831,7 +5831,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011010x110111000xxxxxxxxx0
f2cvt. */
- return 3459;
+ return 3559;
}
}
else
@@ -5842,7 +5842,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000010110x110111000xxxxxxxxx0
bf1cvt. */
- return 3453;
+ return 3553;
}
else
{
@@ -5850,7 +5850,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10000011110x110111000xxxxxxxxx0
bf2cvt. */
- return 3454;
+ return 3554;
}
}
}
@@ -5862,7 +5862,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx11x110111000xxxxxxxx00
zip. */
- return 2960;
+ return 2986;
}
else
{
@@ -5870,7 +5870,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx11x110111000xxxxxxxx10
uzp. */
- return 2947;
+ return 2973;
}
}
}
@@ -5885,7 +5885,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001001xxx10111000xxxxxxxxx1
f1cvtl. */
- return 3460;
+ return 3560;
}
else
{
@@ -5893,7 +5893,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001101xxx10111000xxxxxxxxx1
f2cvtl. */
- return 3461;
+ return 3561;
}
}
else
@@ -5904,7 +5904,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001011xxx10111000xxxxxxxxx1
bf1cvtl. */
- return 3455;
+ return 3555;
}
else
{
@@ -5912,7 +5912,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001111xxx10111000xxxxxxxxx1
bf2cvtl. */
- return 3456;
+ return 3556;
}
}
}
@@ -5936,7 +5936,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx100001111000xxxx0xxxx0
fcvtzs. */
- return 2536;
+ return 2562;
}
else
{
@@ -5944,7 +5944,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx110001111000xxxx0xxxx0
fcvtzs. */
- return 2537;
+ return 2563;
}
}
else
@@ -5955,7 +5955,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx101001111000xxxx0xxxx0
frintp. */
- return 2596;
+ return 2622;
}
else
{
@@ -5963,7 +5963,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx111001111000xxxx0xxxx0
frintp. */
- return 2597;
+ return 2623;
}
}
}
@@ -5975,7 +5975,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx10x001111000xxxx1xxxx0
fcvtzu. */
- return 2538;
+ return 2564;
}
else
{
@@ -5983,7 +5983,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx11x001111000xxxx1xxxx0
fcvtzu. */
- return 2539;
+ return 2565;
}
}
}
@@ -5995,7 +5995,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx10x101111000xxxxxxxxx0
sunpk. */
- return 2853;
+ return 2879;
}
else
{
@@ -6003,7 +6003,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx11x101111000xxxxxxxxx0
sunpk. */
- return 2854;
+ return 2880;
}
}
}
@@ -6015,7 +6015,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx10xx01111000xxxxxxxxx1
uunpk. */
- return 2941;
+ return 2967;
}
else
{
@@ -6023,7 +6023,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx11xx01111000xxxxxxxxx1
uunpk. */
- return 2942;
+ return 2968;
}
}
}
@@ -6041,7 +6041,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x010x011111000xxxx0xxxxx
sqcvt. */
- return 2753;
+ return 2779;
}
else
{
@@ -6049,7 +6049,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x110x011111000xxxx0xxxxx
sqcvtu. */
- return 2756;
+ return 2782;
}
}
else
@@ -6062,7 +6062,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x011x011111000xxx00xxxxx
sqcvt. */
- return 2754;
+ return 2780;
}
else
{
@@ -6070,7 +6070,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x111x011111000xxx00xxxxx
sqcvtu. */
- return 2757;
+ return 2783;
}
}
else
@@ -6081,7 +6081,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x011x011111000xxx10xxxxx
sqcvtn. */
- return 2755;
+ return 2781;
}
else
{
@@ -6089,7 +6089,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001x111x011111000xxx10xxxxx
sqcvtun. */
- return 2758;
+ return 2784;
}
}
}
@@ -6102,7 +6102,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xx111111000xxxx0xxx0x
zip. */
- return 2961;
+ return 2987;
}
else
{
@@ -6110,7 +6110,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xx111111000xxxx0xxx1x
uzp. */
- return 2948;
+ return 2974;
}
}
}
@@ -6122,7 +6122,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx10xx11111000xxxx1xxxxx
uqcvt. */
- return 2916;
+ return 2942;
}
else
{
@@ -6132,7 +6132,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx11xx11111000xxx01xxxxx
uqcvt. */
- return 2917;
+ return 2943;
}
else
{
@@ -6140,7 +6140,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx11xx11111000xxx11xxxxx
uqcvtn. */
- return 2918;
+ return 2944;
}
}
}
@@ -6164,7 +6164,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1100x0000xxxx0
smax. */
- return 2713;
+ return 2739;
}
else
{
@@ -6172,7 +6172,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1100x1000xxxx0
fmax. */
- return 2548;
+ return 2574;
}
}
else
@@ -6180,8 +6180,8 @@ aarch64_opcode_lookup_1 (uint32_t word)
/* 33222222222211111111110000000000
10987654321098765432109876543210
x1000001xx1xxxxx1x1100xx100xxxx0
- fscale. */
- return 3467;
+ bfscale. */
+ return 3013;
}
}
else
@@ -6190,7 +6190,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1100xxx10xxxx0
famax. */
- return 1212;
+ return 1264;
}
}
else
@@ -6203,7 +6203,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x110000xx1xxxx0
smin. */
- return 2717;
+ return 2743;
}
else
{
@@ -6211,7 +6211,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x110010xx1xxxx0
srshl. */
- return 2771;
+ return 2797;
}
}
else
@@ -6220,7 +6220,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1100x1xx1xxxx0
fmaxnm. */
- return 2552;
+ return 2578;
}
}
}
@@ -6236,7 +6236,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1100x0x00xxxx1
umax. */
- return 2876;
+ return 2902;
}
else
{
@@ -6244,7 +6244,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1100x1x00xxxx1
fmin. */
- return 2556;
+ return 2582;
}
}
else
@@ -6253,7 +6253,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1100xxx10xxxx1
famin. */
- return 1214;
+ return 1266;
}
}
else
@@ -6266,7 +6266,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x110000xx1xxxx1
umin. */
- return 2880;
+ return 2906;
}
else
{
@@ -6274,7 +6274,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x110010xx1xxxx1
urshl. */
- return 2924;
+ return 2950;
}
}
else
@@ -6283,7 +6283,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1100x1xx1xxxx1
fminnm. */
- return 2560;
+ return 2586;
}
}
}
@@ -6295,87 +6295,109 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 5) & 0x1) == 0)
{
- if (((word >> 6) & 0x1) == 0)
+ if (((word >> 12) & 0x1) == 0)
{
- if (((word >> 7) & 0x1) == 0)
+ if (((word >> 14) & 0x1) == 0)
{
- if (((word >> 8) & 0x1) == 0)
+ if (((word >> 7) & 0x1) == 0)
{
- if (((word >> 12) & 0x1) == 0)
+ if (((word >> 8) & 0x1) == 0)
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- x1000001xx1xxxxx1x1010x0000xxxx0
+ x1000001xx1xxxxx101010x00x0xxxx0
smax. */
- return 2712;
+ return 2738;
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x1000001xx1xxxxx1x1110x0000xxxx0
- smax. */
- return 2714;
- }
- }
- else
- {
- if (((word >> 9) & 0x1) == 0)
- {
- if (((word >> 12) & 0x1) == 0)
+ if (((word >> 9) & 0x1) == 0)
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- x1000001xx1xxxxx1x101001000xxxx0
+ x1000001xx1xxxxx101010010x0xxxx0
fmax. */
- return 2547;
+ return 2573;
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- x1000001xx1xxxxx1x111001000xxxx0
- fmax. */
- return 2549;
+ x1000001xx1xxxxx101010110x0xxxx0
+ add. */
+ return 2527;
}
}
- else
- {
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x1000001xx1xxxxx1x1x1011000xxxx0
- add. */
- return 2501;
- }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx1xxxxx101010xx1x0xxxx0
+ bfscale. */
+ return 3012;
}
}
else
{
- if (((word >> 12) & 0x1) == 0)
+ if (((word >> 16) & 0x1) == 0)
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- x1000001xx1xxxxx1x1010xx100xxxx0
- fscale. */
- return 3466;
+ x1000001xx1xxxx0111010xxxx0xxxx0
+ bfmul. */
+ return 3015;
}
else
{
/* 33222222222211111111110000000000
10987654321098765432109876543210
- x1000001xx1xxxxx1x1110xx100xxxx0
- fscale. */
- return 3468;
+ x1000001xx1xxxx1111010xxxx0xxxx0
+ bfmul. */
+ return 3016;
}
}
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x1000001xx1xxxxx1x1x10xxx10xxxx0
- famax. */
- return 1213;
+ if (((word >> 6) & 0x1) == 0)
+ {
+ if (((word >> 7) & 0x1) == 0)
+ {
+ if (((word >> 8) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx1xxxxx1x1110x0000xxxx0
+ smax. */
+ return 2740;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx1xxxxx1x1110x1000xxxx0
+ fmax. */
+ return 2575;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx1xxxxx1x1110xx100xxxx0
+ bfscale. */
+ return 3014;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx1xxxxx1x1110xxx10xxxx0
+ famax. */
+ return 1265;
+ }
}
}
else
@@ -6390,7 +6412,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x101000xx1xxxx0
smin. */
- return 2716;
+ return 2742;
}
else
{
@@ -6398,7 +6420,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x111000xx1xxxx0
smin. */
- return 2718;
+ return 2744;
}
}
else
@@ -6409,7 +6431,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x101010xx1xxxx0
srshl. */
- return 2770;
+ return 2796;
}
else
{
@@ -6417,7 +6439,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x111010xx1xxxx0
srshl. */
- return 2772;
+ return 2798;
}
}
}
@@ -6429,7 +6451,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1010x1xx1xxxx0
fmaxnm. */
- return 2551;
+ return 2577;
}
else
{
@@ -6437,7 +6459,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1110x1xx1xxxx0
fmaxnm. */
- return 2553;
+ return 2579;
}
}
}
@@ -6456,7 +6478,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1010x0x00xxxx1
umax. */
- return 2875;
+ return 2901;
}
else
{
@@ -6464,7 +6486,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1110x0x00xxxx1
umax. */
- return 2877;
+ return 2903;
}
}
else
@@ -6475,7 +6497,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1010x1x00xxxx1
fmin. */
- return 2555;
+ return 2581;
}
else
{
@@ -6483,7 +6505,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1110x1x00xxxx1
fmin. */
- return 2557;
+ return 2583;
}
}
}
@@ -6493,7 +6515,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1x10xxx10xxxx1
famin. */
- return 1215;
+ return 1267;
}
}
else
@@ -6508,7 +6530,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x101000xx1xxxx1
umin. */
- return 2879;
+ return 2905;
}
else
{
@@ -6516,7 +6538,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x111000xx1xxxx1
umin. */
- return 2881;
+ return 2907;
}
}
else
@@ -6527,7 +6549,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x101010xx1xxxx1
urshl. */
- return 2923;
+ return 2949;
}
else
{
@@ -6535,7 +6557,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x111010xx1xxxx1
urshl. */
- return 2925;
+ return 2951;
}
}
}
@@ -6547,7 +6569,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1010x1xx1xxxx1
fminnm. */
- return 2559;
+ return 2585;
}
else
{
@@ -6555,7 +6577,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1110x1xx1xxxx1
fminnm. */
- return 2561;
+ return 2587;
}
}
}
@@ -6568,11 +6590,33 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 12) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x1000001xx1xxxxx1x1001xxxxxxxxxx
- sqdmulh. */
- return 2759;
+ if (((word >> 14) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx1xxxxx101001xxxxxxxxxx
+ sqdmulh. */
+ return 2785;
+ }
+ else
+ {
+ if (((word >> 16) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx1xxxx0111001xxxxxxxxxx
+ bfmul. */
+ return 3017;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1000001xx1xxxx1111001xxxxxxxxxx
+ bfmul. */
+ return 3018;
+ }
+ }
}
else
{
@@ -6580,7 +6624,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1101xxxxxxxxxx
sqdmulh. */
- return 2761;
+ return 2787;
}
}
else
@@ -6591,7 +6635,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1011xxxxxxxxxx
sqdmulh. */
- return 2760;
+ return 2786;
}
else
{
@@ -6599,7 +6643,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1000001xx1xxxxx1x1111xxxxxxxxxx
sqdmulh. */
- return 2762;
+ return 2788;
}
}
}
@@ -6627,7 +6671,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100001001xxxxx000xxxxxxxxx0xxx
st1b. */
- return 2779;
+ return 2805;
}
else
{
@@ -6635,7 +6679,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100001001xxxxx010xxxxxxxxx0xxx
st1w. */
- return 2803;
+ return 2829;
}
}
else
@@ -6646,7 +6690,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100001001xxxxx001xxxxxxxxx0xxx
st1h. */
- return 2795;
+ return 2821;
}
else
{
@@ -6654,7 +6698,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100001001xxxxx011xxxxxxxxx0xxx
st1d. */
- return 2787;
+ return 2813;
}
}
}
@@ -6668,7 +6712,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100001001xxxxx000xxxxxxxxx1xxx
stnt1b. */
- return 2811;
+ return 2837;
}
else
{
@@ -6676,7 +6720,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100001001xxxxx010xxxxxxxxx1xxx
stnt1w. */
- return 2835;
+ return 2861;
}
}
else
@@ -6687,7 +6731,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100001001xxxxx001xxxxxxxxx1xxx
stnt1h. */
- return 2827;
+ return 2853;
}
else
{
@@ -6695,7 +6739,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100001001xxxxx011xxxxxxxxx1xxx
stnt1d. */
- return 2819;
+ return 2845;
}
}
}
@@ -6706,7 +6750,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1100001001xxxxx0xxxxxxxxxxxxxxx
str. */
- return 2462;
+ return 2488;
}
}
else
@@ -6723,7 +6767,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100001001xxxxx100xxxxxxxxx0xxx
st1b. */
- return 2780;
+ return 2806;
}
else
{
@@ -6731,7 +6775,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1100001001xxxxx100xxxxxxxxx0xxx
str. */
- return 2837;
+ return 2863;
}
}
else
@@ -6740,7 +6784,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001001xxxxx110xxxxxxxxx0xxx
st1w. */
- return 2804;
+ return 2830;
}
}
else
@@ -6751,7 +6795,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001001xxxxx101xxxxxxxxx0xxx
st1h. */
- return 2796;
+ return 2822;
}
else
{
@@ -6759,7 +6803,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001001xxxxx111xxxxxxxxx0xxx
st1d. */
- return 2788;
+ return 2814;
}
}
}
@@ -6773,7 +6817,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001001xxxxx100xxxxxxxxx1xxx
stnt1b. */
- return 2812;
+ return 2838;
}
else
{
@@ -6781,7 +6825,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001001xxxxx110xxxxxxxxx1xxx
stnt1w. */
- return 2836;
+ return 2862;
}
}
else
@@ -6792,7 +6836,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001001xxxxx101xxxxxxxxx1xxx
stnt1h. */
- return 2828;
+ return 2854;
}
else
{
@@ -6800,7 +6844,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001001xxxxx111xxxxxxxxx1xxx
stnt1d. */
- return 2820;
+ return 2846;
}
}
}
@@ -6814,7 +6858,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001101xxxxxxxxxxxxxxxx0xxxx
umopa. */
- return 2428;
+ return 2464;
}
else
{
@@ -6822,7 +6866,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001101xxxxxxxxxxxxxxxx1xxxx
umops. */
- return 2430;
+ return 2466;
}
}
}
@@ -6842,7 +6886,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001011xxxxx000xxxxxxxxx0xxx
st1b. */
- return 2775;
+ return 2801;
}
else
{
@@ -6850,7 +6894,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001011xxxxx100xxxxxxxxx0xxx
st1b. */
- return 2776;
+ return 2802;
}
}
else
@@ -6861,7 +6905,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001011xxxxx010xxxxxxxxx0xxx
st1w. */
- return 2799;
+ return 2825;
}
else
{
@@ -6869,7 +6913,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001011xxxxx110xxxxxxxxx0xxx
st1w. */
- return 2800;
+ return 2826;
}
}
}
@@ -6883,7 +6927,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001011xxxxx001xxxxxxxxx0xxx
st1h. */
- return 2791;
+ return 2817;
}
else
{
@@ -6891,7 +6935,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001011xxxxx101xxxxxxxxx0xxx
st1h. */
- return 2792;
+ return 2818;
}
}
else
@@ -6902,7 +6946,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001011xxxxx011xxxxxxxxx0xxx
st1d. */
- return 2783;
+ return 2809;
}
else
{
@@ -6910,7 +6954,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001011xxxxx111xxxxxxxxx0xxx
st1d. */
- return 2784;
+ return 2810;
}
}
}
@@ -6927,7 +6971,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001011xxxxx000xxxxxxxxx1xxx
stnt1b. */
- return 2807;
+ return 2833;
}
else
{
@@ -6935,7 +6979,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001011xxxxx100xxxxxxxxx1xxx
stnt1b. */
- return 2808;
+ return 2834;
}
}
else
@@ -6946,7 +6990,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001011xxxxx010xxxxxxxxx1xxx
stnt1w. */
- return 2831;
+ return 2857;
}
else
{
@@ -6954,7 +6998,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001011xxxxx110xxxxxxxxx1xxx
stnt1w. */
- return 2832;
+ return 2858;
}
}
}
@@ -6968,7 +7012,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001011xxxxx001xxxxxxxxx1xxx
stnt1h. */
- return 2823;
+ return 2849;
}
else
{
@@ -6976,7 +7020,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001011xxxxx101xxxxxxxxx1xxx
stnt1h. */
- return 2824;
+ return 2850;
}
}
else
@@ -6987,7 +7031,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001011xxxxx011xxxxxxxxx1xxx
stnt1d. */
- return 2815;
+ return 2841;
}
else
{
@@ -6995,7 +7039,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001011xxxxx111xxxxxxxxx1xxx
stnt1d. */
- return 2816;
+ return 2842;
}
}
}
@@ -7011,7 +7055,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0100001111xxxxxxxxxxxxxxxx0xxxx
umopa. */
- return 2429;
+ return 2465;
}
else
{
@@ -7019,7 +7063,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1100001111xxxxxxxxxxxxxxxx0xxxx
st1q. */
- return 2455;
+ return 2486;
}
}
else
@@ -7028,7 +7072,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx100001111xxxxxxxxxxxxxxxx1xxxx
umops. */
- return 2431;
+ return 2467;
}
}
}
@@ -7100,7 +7144,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0000100x000xxxxx0xxxxxxxxxxxxxxx
stxrb. */
- return 937;
+ return 989;
}
else
{
@@ -7108,7 +7152,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0100100x000xxxxx0xxxxxxxxxxxxxxx
stxrh. */
- return 943;
+ return 995;
}
}
else
@@ -7117,7 +7161,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x00100x000xxxxx0xxxxxxxxxxxxxxx
stxr. */
- return 949;
+ return 1001;
}
}
else
@@ -7128,7 +7172,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x00100x001xxxxx0xxxxxxxxxxxxxxx
casp. */
- return 1026;
+ return 1078;
}
else
{
@@ -7136,7 +7180,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x00100x001xxxxx0xxxxxxxxxxxxxxx
stxp. */
- return 951;
+ return 1003;
}
}
}
@@ -7152,7 +7196,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0000100x000xxxxx1xxxxxxxxxxxxxxx
stlxrb. */
- return 938;
+ return 990;
}
else
{
@@ -7160,7 +7204,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0100100x000xxxxx1xxxxxxxxxxxxxxx
stlxrh. */
- return 944;
+ return 996;
}
}
else
@@ -7169,7 +7213,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x00100x000xxxxx1xxxxxxxxxxxxxxx
stlxr. */
- return 950;
+ return 1002;
}
}
else
@@ -7180,7 +7224,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x00100x001xxxxx1xxxxxxxxxxxxxxx
caspl. */
- return 1028;
+ return 1080;
}
else
{
@@ -7188,7 +7232,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x00100x001xxxxx1xxxxxxxxxxxxxxx
stlxp. */
- return 952;
+ return 1004;
}
}
}
@@ -7201,7 +7245,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x010100x00xxxxxxxxxxxxxxxxxxxxxx
stnp. */
- return 971;
+ return 1023;
}
else
{
@@ -7209,7 +7253,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x110100x00xxxxxxxxxxxxxxxxxxxxxx
stgp. */
- return 980;
+ return 1032;
}
}
}
@@ -7227,7 +7271,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x00100x100xxxxx0xxxxxxxxxxxxxxx
stllrb. */
- return 969;
+ return 1021;
}
else
{
@@ -7235,7 +7279,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x00100x100xxxxx0xxxxxxxxxxxxxxx
stllr. */
- return 968;
+ return 1020;
}
}
else
@@ -7248,7 +7292,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0000100x101xxxxx0xxxxxxxxxxxxxxx
casb. */
- return 1014;
+ return 1066;
}
else
{
@@ -7256,7 +7300,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0100100x101xxxxx0xxxxxxxxxxxxxxx
cash. */
- return 1015;
+ return 1067;
}
}
else
@@ -7265,7 +7309,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x00100x101xxxxx0xxxxxxxxxxxxxxx
cas. */
- return 1016;
+ return 1068;
}
}
}
@@ -7281,7 +7325,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0000100x100xxxxx1xxxxxxxxxxxxxxx
stlrb. */
- return 941;
+ return 993;
}
else
{
@@ -7289,7 +7333,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0100100x100xxxxx1xxxxxxxxxxxxxxx
stlrh. */
- return 947;
+ return 999;
}
}
else
@@ -7298,7 +7342,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x00100x100xxxxx1xxxxxxxxxxxxxxx
stlr. */
- return 957;
+ return 1009;
}
}
else
@@ -7311,7 +7355,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0000100x101xxxxx1xxxxxxxxxxxxxxx
caslb. */
- return 1018;
+ return 1070;
}
else
{
@@ -7319,7 +7363,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0100100x101xxxxx1xxxxxxxxxxxxxxx
caslh. */
- return 1021;
+ return 1073;
}
}
else
@@ -7328,7 +7372,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x00100x101xxxxx1xxxxxxxxxxxxxxx
casl. */
- return 1024;
+ return 1076;
}
}
}
@@ -7341,7 +7385,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x010100x10xxxxxxxxxxxxxxxxxxxxxx
stp. */
- return 981;
+ return 1033;
}
else
{
@@ -7349,7 +7393,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x110100x10xxxxxxxxxxxxxxxxxxxxxx
stgp. */
- return 986;
+ return 1038;
}
}
}
@@ -7372,7 +7416,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0000100x010xxxxx0xxxxxxxxxxxxxxx
ldxrb. */
- return 939;
+ return 991;
}
else
{
@@ -7380,7 +7424,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0100100x010xxxxx0xxxxxxxxxxxxxxx
ldxrh. */
- return 945;
+ return 997;
}
}
else
@@ -7389,7 +7433,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x00100x010xxxxx0xxxxxxxxxxxxxxx
ldxr. */
- return 953;
+ return 1005;
}
}
else
@@ -7400,7 +7444,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x00100x011xxxxx0xxxxxxxxxxxxxxx
caspa. */
- return 1027;
+ return 1079;
}
else
{
@@ -7408,7 +7452,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x00100x011xxxxx0xxxxxxxxxxxxxxx
ldxp. */
- return 955;
+ return 1007;
}
}
}
@@ -7424,7 +7468,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0000100x010xxxxx1xxxxxxxxxxxxxxx
ldaxrb. */
- return 940;
+ return 992;
}
else
{
@@ -7432,7 +7476,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0100100x010xxxxx1xxxxxxxxxxxxxxx
ldaxrh. */
- return 946;
+ return 998;
}
}
else
@@ -7441,7 +7485,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x00100x010xxxxx1xxxxxxxxxxxxxxx
ldaxr. */
- return 954;
+ return 1006;
}
}
else
@@ -7452,7 +7496,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x00100x011xxxxx1xxxxxxxxxxxxxxx
caspal. */
- return 1029;
+ return 1081;
}
else
{
@@ -7460,7 +7504,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x00100x011xxxxx1xxxxxxxxxxxxxxx
ldaxp. */
- return 956;
+ return 1008;
}
}
}
@@ -7473,7 +7517,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x010100x01xxxxxxxxxxxxxxxxxxxxxx
ldnp. */
- return 972;
+ return 1024;
}
else
{
@@ -7481,7 +7525,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x110100x01xxxxxxxxxxxxxxxxxxxxxx
ldpsw. */
- return 979;
+ return 1031;
}
}
}
@@ -7501,7 +7545,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0000100x110xxxxx0xxxxxxxxxxxxxxx
ldlarb. */
- return 966;
+ return 1018;
}
else
{
@@ -7509,7 +7553,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0100100x110xxxxx0xxxxxxxxxxxxxxx
ldlarh. */
- return 967;
+ return 1019;
}
}
else
@@ -7518,7 +7562,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x00100x110xxxxx0xxxxxxxxxxxxxxx
ldlar. */
- return 965;
+ return 1017;
}
}
else
@@ -7531,7 +7575,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0000100x111xxxxx0xxxxxxxxxxxxxxx
casab. */
- return 1017;
+ return 1069;
}
else
{
@@ -7539,7 +7583,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0100100x111xxxxx0xxxxxxxxxxxxxxx
casah. */
- return 1020;
+ return 1072;
}
}
else
@@ -7548,7 +7592,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x00100x111xxxxx0xxxxxxxxxxxxxxx
casa. */
- return 1023;
+ return 1075;
}
}
}
@@ -7564,7 +7608,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0000100x110xxxxx1xxxxxxxxxxxxxxx
ldarb. */
- return 942;
+ return 994;
}
else
{
@@ -7572,7 +7616,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0100100x110xxxxx1xxxxxxxxxxxxxxx
ldarh. */
- return 948;
+ return 1000;
}
}
else
@@ -7581,7 +7625,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x00100x110xxxxx1xxxxxxxxxxxxxxx
ldar. */
- return 958;
+ return 1010;
}
}
else
@@ -7594,7 +7638,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0000100x111xxxxx1xxxxxxxxxxxxxxx
casalb. */
- return 1019;
+ return 1071;
}
else
{
@@ -7602,7 +7646,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0100100x111xxxxx1xxxxxxxxxxxxxxx
casalh. */
- return 1022;
+ return 1074;
}
}
else
@@ -7611,7 +7655,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x00100x111xxxxx1xxxxxxxxxxxxxxx
casal. */
- return 1025;
+ return 1077;
}
}
}
@@ -7624,7 +7668,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x010100x11xxxxxxxxxxxxxxxxxxxxxx
ldp. */
- return 982;
+ return 1034;
}
else
{
@@ -7632,7 +7676,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x110100x11xxxxxxxxxxxxxxxxxxxxxx
ldpsw. */
- return 985;
+ return 1037;
}
}
}
@@ -7650,7 +7694,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x011000xxxxxxxxxxxxxxxxxxxxxxxx
ldr. */
- return 987;
+ return 1039;
}
else
{
@@ -7660,7 +7704,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
10011000xxxxxxxxxxxxxxxxxxxxxxxx
ldrsw. */
- return 989;
+ return 1041;
}
else
{
@@ -7668,7 +7712,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11011000xxxxxxxxxxxxxxxxxxxxxxxx
prfm. */
- return 990;
+ return 1042;
}
}
}
@@ -7692,7 +7736,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000000xxxxxxxxx00xxxxxxxxxx
sturb. */
- return 922;
+ return 974;
}
else
{
@@ -7700,7 +7744,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000000xxxxxxxxx00xxxxxxxxxx
sturh. */
- return 927;
+ return 979;
}
}
else
@@ -7709,7 +7753,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000000xxxxxxxxx00xxxxxxxxxx
stur. */
- return 930;
+ return 982;
}
}
else
@@ -7722,7 +7766,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000010xxxxxxxxx00xxxxxxxxxx
ldurb. */
- return 923;
+ return 975;
}
else
{
@@ -7730,7 +7774,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000010xxxxxxxxx00xxxxxxxxxx
ldurh. */
- return 928;
+ return 980;
}
}
else
@@ -7739,7 +7783,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000010xxxxxxxxx00xxxxxxxxxx
ldur. */
- return 931;
+ return 983;
}
}
}
@@ -7753,7 +7797,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001110001x0xxxxxxxxx00xxxxxxxxxx
ldursb. */
- return 924;
+ return 976;
}
else
{
@@ -7761,7 +7805,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101110001x0xxxxxxxxx00xxxxxxxxxx
ldursw. */
- return 932;
+ return 984;
}
}
else
@@ -7772,7 +7816,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011110001x0xxxxxxxxx00xxxxxxxxxx
ldursh. */
- return 929;
+ return 981;
}
else
{
@@ -7780,7 +7824,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111110001x0xxxxxxxxx00xxxxxxxxxx
prfum. */
- return 933;
+ return 985;
}
}
}
@@ -7807,7 +7851,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000001xxxxx000000xxxxxxxxxx
ldaddb. */
- return 1042;
+ return 1094;
}
else
{
@@ -7815,7 +7859,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000001xxxxx000000xxxxxxxxxx
ldaddh. */
- return 1043;
+ return 1095;
}
}
else
@@ -7824,7 +7868,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000001xxxxx000000xxxxxxxxxx
ldadd. */
- return 1044;
+ return 1096;
}
}
else
@@ -7837,7 +7881,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000101xxxxx000000xxxxxxxxxx
ldaddab. */
- return 1045;
+ return 1097;
}
else
{
@@ -7845,7 +7889,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000101xxxxx000000xxxxxxxxxx
ldaddah. */
- return 1048;
+ return 1100;
}
}
else
@@ -7854,7 +7898,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000101xxxxx000000xxxxxxxxxx
ldadda. */
- return 1051;
+ return 1103;
}
}
}
@@ -7870,7 +7914,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000011xxxxx000000xxxxxxxxxx
ldaddlb. */
- return 1046;
+ return 1098;
}
else
{
@@ -7878,7 +7922,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000011xxxxx000000xxxxxxxxxx
ldaddlh. */
- return 1049;
+ return 1101;
}
}
else
@@ -7887,7 +7931,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000011xxxxx000000xxxxxxxxxx
ldaddl. */
- return 1052;
+ return 1104;
}
}
else
@@ -7900,7 +7944,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000111xxxxx000000xxxxxxxxxx
ldaddalb. */
- return 1047;
+ return 1099;
}
else
{
@@ -7908,7 +7952,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000111xxxxx000000xxxxxxxxxx
ldaddalh. */
- return 1050;
+ return 1102;
}
}
else
@@ -7917,7 +7961,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000111xxxxx000000xxxxxxxxxx
ldaddal. */
- return 1053;
+ return 1105;
}
}
}
@@ -7936,7 +7980,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000001xxxxx100000xxxxxxxxxx
swpb. */
- return 1030;
+ return 1082;
}
else
{
@@ -7944,7 +7988,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000001xxxxx100000xxxxxxxxxx
swph. */
- return 1031;
+ return 1083;
}
}
else
@@ -7953,7 +7997,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000001xxxxx100000xxxxxxxxxx
swp. */
- return 1032;
+ return 1084;
}
}
else
@@ -7966,7 +8010,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000101xxxxx100000xxxxxxxxxx
swpab. */
- return 1033;
+ return 1085;
}
else
{
@@ -7974,7 +8018,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000101xxxxx100000xxxxxxxxxx
swpah. */
- return 1036;
+ return 1088;
}
}
else
@@ -7983,7 +8027,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000101xxxxx100000xxxxxxxxxx
swpa. */
- return 1039;
+ return 1091;
}
}
}
@@ -7999,7 +8043,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000011xxxxx100000xxxxxxxxxx
swplb. */
- return 1034;
+ return 1086;
}
else
{
@@ -8007,7 +8051,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000011xxxxx100000xxxxxxxxxx
swplh. */
- return 1037;
+ return 1089;
}
}
else
@@ -8016,7 +8060,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000011xxxxx100000xxxxxxxxxx
swpl. */
- return 1040;
+ return 1092;
}
}
else
@@ -8029,7 +8073,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000111xxxxx100000xxxxxxxxxx
swpalb. */
- return 1035;
+ return 1087;
}
else
{
@@ -8037,7 +8081,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000111xxxxx100000xxxxxxxxxx
swpalh. */
- return 1038;
+ return 1090;
}
}
else
@@ -8046,7 +8090,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000111xxxxx100000xxxxxxxxxx
swpal. */
- return 1041;
+ return 1093;
}
}
}
@@ -8068,7 +8112,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000001xxxxx010000xxxxxxxxxx
ldsmaxb. */
- return 1090;
+ return 1142;
}
else
{
@@ -8076,7 +8120,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000001xxxxx010000xxxxxxxxxx
ldsmaxh. */
- return 1091;
+ return 1143;
}
}
else
@@ -8085,7 +8129,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000001xxxxx010000xxxxxxxxxx
ldsmax. */
- return 1092;
+ return 1144;
}
}
else
@@ -8098,7 +8142,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000101xxxxx010000xxxxxxxxxx
ldsmaxab. */
- return 1093;
+ return 1145;
}
else
{
@@ -8106,7 +8150,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000101xxxxx010000xxxxxxxxxx
ldsmaxah. */
- return 1096;
+ return 1148;
}
}
else
@@ -8115,7 +8159,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000101xxxxx010000xxxxxxxxxx
ldsmaxa. */
- return 1099;
+ return 1151;
}
}
}
@@ -8131,7 +8175,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000011xxxxx010000xxxxxxxxxx
ldsmaxlb. */
- return 1094;
+ return 1146;
}
else
{
@@ -8139,7 +8183,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000011xxxxx010000xxxxxxxxxx
ldsmaxlh. */
- return 1097;
+ return 1149;
}
}
else
@@ -8148,7 +8192,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000011xxxxx010000xxxxxxxxxx
ldsmaxl. */
- return 1100;
+ return 1152;
}
}
else
@@ -8161,7 +8205,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000111xxxxx010000xxxxxxxxxx
ldsmaxalb. */
- return 1095;
+ return 1147;
}
else
{
@@ -8169,7 +8213,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000111xxxxx010000xxxxxxxxxx
ldsmaxalh. */
- return 1098;
+ return 1150;
}
}
else
@@ -8178,7 +8222,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000111xxxxx010000xxxxxxxxxx
ldsmaxal. */
- return 1101;
+ return 1153;
}
}
}
@@ -8193,7 +8237,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000xx1xxxxx110000xxxxxxxxxx
ldaprb. */
- return 959;
+ return 1011;
}
else
{
@@ -8201,7 +8245,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000xx1xxxxx110000xxxxxxxxxx
ldaprh. */
- return 960;
+ return 1012;
}
}
else
@@ -8210,7 +8254,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000xx1xxxxx110000xxxxxxxxxx
ldapr. */
- return 961;
+ return 1013;
}
}
}
@@ -8233,7 +8277,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000001xxxxx001000xxxxxxxxxx
ldeorb. */
- return 1066;
+ return 1118;
}
else
{
@@ -8241,7 +8285,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000001xxxxx001000xxxxxxxxxx
ldeorh. */
- return 1067;
+ return 1119;
}
}
else
@@ -8250,7 +8294,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000001xxxxx001000xxxxxxxxxx
ldeor. */
- return 1068;
+ return 1120;
}
}
else
@@ -8263,7 +8307,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000101xxxxx001000xxxxxxxxxx
ldeorab. */
- return 1069;
+ return 1121;
}
else
{
@@ -8271,7 +8315,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000101xxxxx001000xxxxxxxxxx
ldeorah. */
- return 1072;
+ return 1124;
}
}
else
@@ -8280,7 +8324,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000101xxxxx001000xxxxxxxxxx
ldeora. */
- return 1075;
+ return 1127;
}
}
}
@@ -8296,7 +8340,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000011xxxxx001000xxxxxxxxxx
ldeorlb. */
- return 1070;
+ return 1122;
}
else
{
@@ -8304,7 +8348,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000011xxxxx001000xxxxxxxxxx
ldeorlh. */
- return 1073;
+ return 1125;
}
}
else
@@ -8313,7 +8357,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000011xxxxx001000xxxxxxxxxx
ldeorl. */
- return 1076;
+ return 1128;
}
}
else
@@ -8326,7 +8370,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000111xxxxx001000xxxxxxxxxx
ldeoralb. */
- return 1071;
+ return 1123;
}
else
{
@@ -8334,7 +8378,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000111xxxxx001000xxxxxxxxxx
ldeoralh. */
- return 1074;
+ return 1126;
}
}
else
@@ -8343,7 +8387,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000111xxxxx001000xxxxxxxxxx
ldeoral. */
- return 1077;
+ return 1129;
}
}
}
@@ -8360,7 +8404,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0111000001xxxxx101000xxxxxxxxxx
rcwswp. */
- return 3266;
+ return 3366;
}
else
{
@@ -8370,7 +8414,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000001xxxxx101000xxxxxxxxxx
rcwsswp. */
- return 3274;
+ return 3374;
}
else
{
@@ -8378,7 +8422,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11111000001xxxxx101000xxxxxxxxxx
st64bv0. */
- return 994;
+ return 1046;
}
}
}
@@ -8390,7 +8434,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0111000101xxxxx101000xxxxxxxxxx
rcwswpa. */
- return 3267;
+ return 3367;
}
else
{
@@ -8398,7 +8442,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1111000101xxxxx101000xxxxxxxxxx
rcwsswpa. */
- return 3275;
+ return 3375;
}
}
}
@@ -8412,7 +8456,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0111000011xxxxx101000xxxxxxxxxx
rcwswpl. */
- return 3269;
+ return 3369;
}
else
{
@@ -8420,7 +8464,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1111000011xxxxx101000xxxxxxxxxx
rcwsswpl. */
- return 3277;
+ return 3377;
}
}
else
@@ -8431,7 +8475,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0111000111xxxxx101000xxxxxxxxxx
rcwswpal. */
- return 3268;
+ return 3368;
}
else
{
@@ -8439,7 +8483,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1111000111xxxxx101000xxxxxxxxxx
rcwsswpal. */
- return 3276;
+ return 3376;
}
}
}
@@ -8459,7 +8503,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000001xxxxxx11000xxxxxxxxxx
ldumaxb. */
- return 1114;
+ return 1166;
}
else
{
@@ -8467,7 +8511,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000001xxxxxx11000xxxxxxxxxx
ldumaxh. */
- return 1115;
+ return 1167;
}
}
else
@@ -8476,7 +8520,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000001xxxxxx11000xxxxxxxxxx
ldumax. */
- return 1116;
+ return 1168;
}
}
else
@@ -8489,7 +8533,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000101xxxxxx11000xxxxxxxxxx
ldumaxab. */
- return 1117;
+ return 1169;
}
else
{
@@ -8497,7 +8541,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000101xxxxxx11000xxxxxxxxxx
ldumaxah. */
- return 1120;
+ return 1172;
}
}
else
@@ -8506,7 +8550,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000101xxxxxx11000xxxxxxxxxx
ldumaxa. */
- return 1123;
+ return 1175;
}
}
}
@@ -8522,7 +8566,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000011xxxxxx11000xxxxxxxxxx
ldumaxlb. */
- return 1118;
+ return 1170;
}
else
{
@@ -8530,7 +8574,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000011xxxxxx11000xxxxxxxxxx
ldumaxlh. */
- return 1121;
+ return 1173;
}
}
else
@@ -8539,7 +8583,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000011xxxxxx11000xxxxxxxxxx
ldumaxl. */
- return 1124;
+ return 1176;
}
}
else
@@ -8552,7 +8596,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000111xxxxxx11000xxxxxxxxxx
ldumaxalb. */
- return 1119;
+ return 1171;
}
else
{
@@ -8560,7 +8604,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000111xxxxxx11000xxxxxxxxxx
ldumaxalh. */
- return 1122;
+ return 1174;
}
}
else
@@ -8569,7 +8613,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000111xxxxxx11000xxxxxxxxxx
ldumaxal. */
- return 1125;
+ return 1177;
}
}
}
@@ -8596,7 +8640,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000001xxxxx000100xxxxxxxxxx
ldclrb. */
- return 1054;
+ return 1106;
}
else
{
@@ -8604,7 +8648,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000001xxxxx000100xxxxxxxxxx
ldclrh. */
- return 1055;
+ return 1107;
}
}
else
@@ -8613,7 +8657,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000001xxxxx000100xxxxxxxxxx
ldclr. */
- return 1056;
+ return 1108;
}
}
else
@@ -8626,7 +8670,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000101xxxxx000100xxxxxxxxxx
ldclrab. */
- return 1057;
+ return 1109;
}
else
{
@@ -8634,7 +8678,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000101xxxxx000100xxxxxxxxxx
ldclrah. */
- return 1060;
+ return 1112;
}
}
else
@@ -8643,7 +8687,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000101xxxxx000100xxxxxxxxxx
ldclra. */
- return 1063;
+ return 1115;
}
}
}
@@ -8659,7 +8703,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000011xxxxx000100xxxxxxxxxx
ldclrlb. */
- return 1058;
+ return 1110;
}
else
{
@@ -8667,7 +8711,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000011xxxxx000100xxxxxxxxxx
ldclrlh. */
- return 1061;
+ return 1113;
}
}
else
@@ -8676,7 +8720,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000011xxxxx000100xxxxxxxxxx
ldclrl. */
- return 1064;
+ return 1116;
}
}
else
@@ -8689,7 +8733,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000111xxxxx000100xxxxxxxxxx
ldclralb. */
- return 1059;
+ return 1111;
}
else
{
@@ -8697,7 +8741,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000111xxxxx000100xxxxxxxxxx
ldclralh. */
- return 1062;
+ return 1114;
}
}
else
@@ -8706,7 +8750,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000111xxxxx000100xxxxxxxxxx
ldclral. */
- return 1065;
+ return 1117;
}
}
}
@@ -8723,7 +8767,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0111000001xxxxx100100xxxxxxxxxx
rcwclr. */
- return 3234;
+ return 3334;
}
else
{
@@ -8733,7 +8777,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000001xxxxx100100xxxxxxxxxx
rcwsclr. */
- return 3242;
+ return 3342;
}
else
{
@@ -8741,7 +8785,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11111000001xxxxx100100xxxxxxxxxx
st64b. */
- return 992;
+ return 1044;
}
}
}
@@ -8753,7 +8797,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0111000101xxxxx100100xxxxxxxxxx
rcwclra. */
- return 3235;
+ return 3335;
}
else
{
@@ -8761,7 +8805,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1111000101xxxxx100100xxxxxxxxxx
rcwsclra. */
- return 3243;
+ return 3343;
}
}
}
@@ -8775,7 +8819,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0111000011xxxxx100100xxxxxxxxxx
rcwclrl. */
- return 3237;
+ return 3337;
}
else
{
@@ -8783,7 +8827,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1111000011xxxxx100100xxxxxxxxxx
rcwsclrl. */
- return 3245;
+ return 3345;
}
}
else
@@ -8794,7 +8838,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0111000111xxxxx100100xxxxxxxxxx
rcwclral. */
- return 3236;
+ return 3336;
}
else
{
@@ -8802,7 +8846,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1111000111xxxxx100100xxxxxxxxxx
rcwsclral. */
- return 3244;
+ return 3344;
}
}
}
@@ -8824,7 +8868,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000001xxxxx010100xxxxxxxxxx
ldsminb. */
- return 1102;
+ return 1154;
}
else
{
@@ -8832,7 +8876,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000001xxxxx010100xxxxxxxxxx
ldsminh. */
- return 1103;
+ return 1155;
}
}
else
@@ -8841,7 +8885,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000001xxxxx010100xxxxxxxxxx
ldsmin. */
- return 1104;
+ return 1156;
}
}
else
@@ -8854,7 +8898,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000101xxxxx010100xxxxxxxxxx
ldsminab. */
- return 1105;
+ return 1157;
}
else
{
@@ -8862,7 +8906,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000101xxxxx010100xxxxxxxxxx
ldsminah. */
- return 1108;
+ return 1160;
}
}
else
@@ -8871,7 +8915,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000101xxxxx010100xxxxxxxxxx
ldsmina. */
- return 1111;
+ return 1163;
}
}
}
@@ -8887,7 +8931,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000011xxxxx010100xxxxxxxxxx
ldsminlb. */
- return 1106;
+ return 1158;
}
else
{
@@ -8895,7 +8939,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000011xxxxx010100xxxxxxxxxx
ldsminlh. */
- return 1109;
+ return 1161;
}
}
else
@@ -8904,7 +8948,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000011xxxxx010100xxxxxxxxxx
ldsminl. */
- return 1112;
+ return 1164;
}
}
else
@@ -8917,7 +8961,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000111xxxxx010100xxxxxxxxxx
ldsminalb. */
- return 1107;
+ return 1159;
}
else
{
@@ -8925,7 +8969,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000111xxxxx010100xxxxxxxxxx
ldsminalh. */
- return 1110;
+ return 1162;
}
}
else
@@ -8934,7 +8978,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000111xxxxx010100xxxxxxxxxx
ldsminal. */
- return 1113;
+ return 1165;
}
}
}
@@ -8945,7 +8989,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx111000xx1xxxxx110100xxxxxxxxxx
ld64b. */
- return 991;
+ return 1043;
}
}
}
@@ -8967,7 +9011,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000001xxxxx001100xxxxxxxxxx
ldsetb. */
- return 1078;
+ return 1130;
}
else
{
@@ -8975,7 +9019,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000001xxxxx001100xxxxxxxxxx
ldseth. */
- return 1079;
+ return 1131;
}
}
else
@@ -8984,7 +9028,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000001xxxxx001100xxxxxxxxxx
ldset. */
- return 1080;
+ return 1132;
}
}
else
@@ -8997,7 +9041,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000101xxxxx001100xxxxxxxxxx
ldsetab. */
- return 1081;
+ return 1133;
}
else
{
@@ -9005,7 +9049,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000101xxxxx001100xxxxxxxxxx
ldsetah. */
- return 1084;
+ return 1136;
}
}
else
@@ -9014,7 +9058,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000101xxxxx001100xxxxxxxxxx
ldseta. */
- return 1087;
+ return 1139;
}
}
}
@@ -9030,7 +9074,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000011xxxxx001100xxxxxxxxxx
ldsetlb. */
- return 1082;
+ return 1134;
}
else
{
@@ -9038,7 +9082,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000011xxxxx001100xxxxxxxxxx
ldsetlh. */
- return 1085;
+ return 1137;
}
}
else
@@ -9047,7 +9091,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000011xxxxx001100xxxxxxxxxx
ldsetl. */
- return 1088;
+ return 1140;
}
}
else
@@ -9060,7 +9104,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000111xxxxx001100xxxxxxxxxx
ldsetalb. */
- return 1083;
+ return 1135;
}
else
{
@@ -9068,7 +9112,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000111xxxxx001100xxxxxxxxxx
ldsetalh. */
- return 1086;
+ return 1138;
}
}
else
@@ -9077,7 +9121,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000111xxxxx001100xxxxxxxxxx
ldsetal. */
- return 1089;
+ return 1141;
}
}
}
@@ -9094,7 +9138,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0111000001xxxxx101100xxxxxxxxxx
rcwset. */
- return 3250;
+ return 3350;
}
else
{
@@ -9104,7 +9148,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000001xxxxx101100xxxxxxxxxx
rcwsset. */
- return 3258;
+ return 3358;
}
else
{
@@ -9112,7 +9156,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11111000001xxxxx101100xxxxxxxxxx
st64bv. */
- return 993;
+ return 1045;
}
}
}
@@ -9124,7 +9168,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0111000101xxxxx101100xxxxxxxxxx
rcwseta. */
- return 3251;
+ return 3351;
}
else
{
@@ -9132,7 +9176,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1111000101xxxxx101100xxxxxxxxxx
rcwsseta. */
- return 3259;
+ return 3359;
}
}
}
@@ -9146,7 +9190,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0111000011xxxxx101100xxxxxxxxxx
rcwsetl. */
- return 3253;
+ return 3353;
}
else
{
@@ -9154,7 +9198,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1111000011xxxxx101100xxxxxxxxxx
rcwssetl. */
- return 3261;
+ return 3361;
}
}
else
@@ -9165,7 +9209,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0111000111xxxxx101100xxxxxxxxxx
rcwsetal. */
- return 3252;
+ return 3352;
}
else
{
@@ -9173,7 +9217,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1111000111xxxxx101100xxxxxxxxxx
rcwssetal. */
- return 3260;
+ return 3360;
}
}
}
@@ -9193,7 +9237,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000001xxxxxx11100xxxxxxxxxx
lduminb. */
- return 1126;
+ return 1178;
}
else
{
@@ -9201,7 +9245,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000001xxxxxx11100xxxxxxxxxx
lduminh. */
- return 1127;
+ return 1179;
}
}
else
@@ -9210,7 +9254,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000001xxxxxx11100xxxxxxxxxx
ldumin. */
- return 1128;
+ return 1180;
}
}
else
@@ -9223,7 +9267,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000101xxxxxx11100xxxxxxxxxx
lduminab. */
- return 1129;
+ return 1181;
}
else
{
@@ -9231,7 +9275,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000101xxxxxx11100xxxxxxxxxx
lduminah. */
- return 1132;
+ return 1184;
}
}
else
@@ -9240,7 +9284,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000101xxxxxx11100xxxxxxxxxx
ldumina. */
- return 1135;
+ return 1187;
}
}
}
@@ -9256,7 +9300,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000011xxxxxx11100xxxxxxxxxx
lduminlb. */
- return 1130;
+ return 1182;
}
else
{
@@ -9264,7 +9308,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000011xxxxxx11100xxxxxxxxxx
lduminlh. */
- return 1133;
+ return 1185;
}
}
else
@@ -9273,7 +9317,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000011xxxxxx11100xxxxxxxxxx
lduminl. */
- return 1136;
+ return 1188;
}
}
else
@@ -9286,7 +9330,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000111xxxxxx11100xxxxxxxxxx
lduminalb. */
- return 1131;
+ return 1183;
}
else
{
@@ -9294,7 +9338,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000111xxxxxx11100xxxxxxxxxx
lduminalh. */
- return 1134;
+ return 1186;
}
}
else
@@ -9303,7 +9347,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000111xxxxxx11100xxxxxxxxxx
lduminal. */
- return 1137;
+ return 1189;
}
}
}
@@ -9328,7 +9372,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000000xxxxxxxxx10xxxxxxxxxx
sttrb. */
- return 913;
+ return 965;
}
else
{
@@ -9336,7 +9380,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000000xxxxxxxxx10xxxxxxxxxx
sttrh. */
- return 916;
+ return 968;
}
}
else
@@ -9345,7 +9389,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000000xxxxxxxxx10xxxxxxxxxx
sttr. */
- return 919;
+ return 971;
}
}
else
@@ -9358,7 +9402,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000010xxxxxxxxx10xxxxxxxxxx
ldtrb. */
- return 914;
+ return 966;
}
else
{
@@ -9366,7 +9410,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000010xxxxxxxxx10xxxxxxxxxx
ldtrh. */
- return 917;
+ return 969;
}
}
else
@@ -9375,7 +9419,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000010xxxxxxxxx10xxxxxxxxxx
ldtr. */
- return 920;
+ return 972;
}
}
}
@@ -9389,7 +9433,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001110001x0xxxxxxxxx10xxxxxxxxxx
ldtrsb. */
- return 915;
+ return 967;
}
else
{
@@ -9397,7 +9441,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101110001x0xxxxxxxxx10xxxxxxxxxx
ldtrsw. */
- return 921;
+ return 973;
}
}
else
@@ -9406,7 +9450,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11110001x0xxxxxxxxx10xxxxxxxxxx
ldtrsh. */
- return 918;
+ return 970;
}
}
}
@@ -9424,7 +9468,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000001xxxxxxxxx10xxxxxxxxxx
strb. */
- return 901;
+ return 953;
}
else
{
@@ -9432,7 +9476,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000001xxxxxxxxx10xxxxxxxxxx
strh. */
- return 906;
+ return 958;
}
}
else
@@ -9441,7 +9485,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000001xxxxxxxxx10xxxxxxxxxx
str. */
- return 909;
+ return 961;
}
}
else
@@ -9454,7 +9498,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000011xxxxxxxxx10xxxxxxxxxx
ldrb. */
- return 902;
+ return 954;
}
else
{
@@ -9462,7 +9506,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000011xxxxxxxxx10xxxxxxxxxx
ldrh. */
- return 907;
+ return 959;
}
}
else
@@ -9471,7 +9515,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000011xxxxxxxxx10xxxxxxxxxx
ldr. */
- return 910;
+ return 962;
}
}
}
@@ -9485,7 +9529,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001110001x1xxxxxxxxx10xxxxxxxxxx
ldrsb. */
- return 903;
+ return 955;
}
else
{
@@ -9493,7 +9537,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101110001x1xxxxxxxxx10xxxxxxxxxx
ldrsw. */
- return 911;
+ return 963;
}
}
else
@@ -9504,7 +9548,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011110001x1xxxxxxxxx10xxxxxxxxxx
ldrsh. */
- return 908;
+ return 960;
}
else
{
@@ -9512,7 +9556,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111110001x1xxxxxxxxx10xxxxxxxxxx
prfm. */
- return 912;
+ return 964;
}
}
}
@@ -9535,7 +9579,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000000xxxxxxxxxx1xxxxxxxxxx
strb. */
- return 870;
+ return 922;
}
else
{
@@ -9543,7 +9587,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000000xxxxxxxxxx1xxxxxxxxxx
strh. */
- return 875;
+ return 927;
}
}
else
@@ -9552,7 +9596,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000000xxxxxxxxxx1xxxxxxxxxx
str. */
- return 878;
+ return 930;
}
}
else
@@ -9565,7 +9609,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00111000010xxxxxxxxxx1xxxxxxxxxx
ldrb. */
- return 871;
+ return 923;
}
else
{
@@ -9573,7 +9617,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01111000010xxxxxxxxxx1xxxxxxxxxx
ldrh. */
- return 876;
+ return 928;
}
}
else
@@ -9582,7 +9626,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x111000010xxxxxxxxxx1xxxxxxxxxx
ldr. */
- return 879;
+ return 931;
}
}
}
@@ -9596,7 +9640,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001110001x0xxxxxxxxxx1xxxxxxxxxx
ldrsb. */
- return 872;
+ return 924;
}
else
{
@@ -9604,7 +9648,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101110001x0xxxxxxxxxx1xxxxxxxxxx
ldrsw. */
- return 880;
+ return 932;
}
}
else
@@ -9613,7 +9657,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11110001x0xxxxxxxxxx1xxxxxxxxxx
ldrsh. */
- return 877;
+ return 929;
}
}
}
@@ -9625,7 +9669,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx1110000x1xxxxxxxxxx1xxxxxxxxxx
ldraa. */
- return 935;
+ return 987;
}
else
{
@@ -9633,7 +9677,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx1110001x1xxxxxxxxxx1xxxxxxxxxx
ldrab. */
- return 936;
+ return 988;
}
}
}
@@ -9661,7 +9705,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00011001000xxxxxxxxx00xxxxxxxxxx
stlurb. */
- return 3024;
+ return 3059;
}
else
{
@@ -9669,7 +9713,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
10011001000xxxxxxxxx00xxxxxxxxxx
stlur. */
- return 3032;
+ return 3067;
}
}
else
@@ -9680,7 +9724,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01011001000xxxxxxxxx00xxxxxxxxxx
stlurh. */
- return 3028;
+ return 3063;
}
else
{
@@ -9688,7 +9732,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11011001000xxxxxxxxx00xxxxxxxxxx
stlur. */
- return 3035;
+ return 3070;
}
}
}
@@ -9704,7 +9748,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001001xxxxx0x0000xxxxxxxxxx
stzgm. */
- return 964;
+ return 1016;
}
else
{
@@ -9712,7 +9756,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001001xxxxx1x0000xxxxxxxxxx
swpp. */
- return 1194;
+ return 1246;
}
}
else
@@ -9723,7 +9767,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001001xxxxxxx1000xxxxxxxxxx
rcwswpp. */
- return 3270;
+ return 3370;
}
else
{
@@ -9731,7 +9775,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011001001xxxxxxx1000xxxxxxxxxx
rcwsswpp. */
- return 3278;
+ return 3378;
}
}
}
@@ -9745,7 +9789,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001001xxxxx0x0100xxxxxxxxxx
ldclrp. */
- return 1186;
+ return 1238;
}
else
{
@@ -9755,7 +9799,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001001xxxxx1x0100xxxxxxxxxx
rcwclrp. */
- return 3238;
+ return 3338;
}
else
{
@@ -9763,7 +9807,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011001001xxxxx1x0100xxxxxxxxxx
rcwsclrp. */
- return 3246;
+ return 3346;
}
}
}
@@ -9775,7 +9819,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001001xxxxx0x1100xxxxxxxxxx
ldsetp. */
- return 1190;
+ return 1242;
}
else
{
@@ -9785,7 +9829,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001001xxxxx1x1100xxxxxxxxxx
rcwsetp. */
- return 3254;
+ return 3354;
}
else
{
@@ -9793,7 +9837,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011001001xxxxx1x1100xxxxxxxxxx
rcwssetp. */
- return 3262;
+ return 3362;
}
}
}
@@ -9808,7 +9852,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001000xxxxxxxxx10xxxxxxxxxx
stilp. */
- return 1199;
+ return 1251;
}
else
{
@@ -9818,7 +9862,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001001xxxxxxxxx10xxxxxxxxxx
rcwcas. */
- return 3218;
+ return 3318;
}
else
{
@@ -9828,7 +9872,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01011001001xxxxxxxxx10xxxxxxxxxx
rcwscas. */
- return 3226;
+ return 3326;
}
else
{
@@ -9836,7 +9880,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11011001001xxxxxxxxx10xxxxxxxxxx
stg. */
- return 881;
+ return 933;
}
}
}
@@ -9860,7 +9904,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001000xxxxx000001xxxxxxxxxx
cpyfp. */
- return 3084;
+ return 3184;
}
else
{
@@ -9868,7 +9912,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001000xxxxx100001xxxxxxxxxx
cpyfprn. */
- return 3090;
+ return 3190;
}
}
else
@@ -9879,7 +9923,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001000xxxxx010001xxxxxxxxxx
cpyfpwn. */
- return 3087;
+ return 3187;
}
else
{
@@ -9887,7 +9931,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001000xxxxx110001xxxxxxxxxx
cpyfpn. */
- return 3093;
+ return 3193;
}
}
}
@@ -9901,7 +9945,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001000xxxxx001001xxxxxxxxxx
cpyfprt. */
- return 3108;
+ return 3208;
}
else
{
@@ -9909,7 +9953,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001000xxxxx101001xxxxxxxxxx
cpyfprtrn. */
- return 3114;
+ return 3214;
}
}
else
@@ -9920,7 +9964,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001000xxxxx011001xxxxxxxxxx
cpyfprtwn. */
- return 3111;
+ return 3211;
}
else
{
@@ -9928,7 +9972,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001000xxxxx111001xxxxxxxxxx
cpyfprtn. */
- return 3117;
+ return 3217;
}
}
}
@@ -9945,7 +9989,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001000xxxxx000101xxxxxxxxxx
cpyfpwt. */
- return 3096;
+ return 3196;
}
else
{
@@ -9953,7 +9997,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001000xxxxx100101xxxxxxxxxx
cpyfpwtrn. */
- return 3102;
+ return 3202;
}
}
else
@@ -9964,7 +10008,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001000xxxxx010101xxxxxxxxxx
cpyfpwtwn. */
- return 3099;
+ return 3199;
}
else
{
@@ -9972,7 +10016,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001000xxxxx110101xxxxxxxxxx
cpyfpwtn. */
- return 3105;
+ return 3205;
}
}
}
@@ -9986,7 +10030,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001000xxxxx001101xxxxxxxxxx
cpyfpt. */
- return 3120;
+ return 3220;
}
else
{
@@ -9994,7 +10038,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001000xxxxx101101xxxxxxxxxx
cpyfptrn. */
- return 3126;
+ return 3226;
}
}
else
@@ -10005,7 +10049,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001000xxxxx011101xxxxxxxxxx
cpyfptwn. */
- return 3123;
+ return 3223;
}
else
{
@@ -10013,7 +10057,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001000xxxxx111101xxxxxxxxxx
cpyfptn. */
- return 3129;
+ return 3229;
}
}
}
@@ -10027,7 +10071,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001000xxxxxxxx011xxxxxxxxxx
gcsstr. */
- return 1269;
+ return 1321;
}
else
{
@@ -10035,7 +10079,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001000xxxxxxxx111xxxxxxxxxx
gcssttr. */
- return 1270;
+ return 1322;
}
}
}
@@ -10047,7 +10091,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001001xxxxxxxxxx1xxxxxxxxxx
rcwcasp. */
- return 3222;
+ return 3322;
}
else
{
@@ -10057,7 +10101,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01011001001xxxxxxxxxx1xxxxxxxxxx
rcwscasp. */
- return 3230;
+ return 3330;
}
else
{
@@ -10065,7 +10109,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11011001001xxxxxxxxxx1xxxxxxxxxx
stg. */
- return 885;
+ return 937;
}
}
}
@@ -10081,7 +10125,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0011100100xxxxxxxxxxxxxxxxxxxxxx
strb. */
- return 889;
+ return 941;
}
else
{
@@ -10089,7 +10133,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0111100100xxxxxxxxxxxxxxxxxxxxxx
strh. */
- return 894;
+ return 946;
}
}
else
@@ -10098,7 +10142,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x11100100xxxxxxxxxxxxxxxxxxxxxx
str. */
- return 897;
+ return 949;
}
}
}
@@ -10120,7 +10164,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00011001010xxxxxxxxx00xxxxxxxxxx
ldapurb. */
- return 3025;
+ return 3060;
}
else
{
@@ -10128,7 +10172,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
10011001010xxxxxxxxx00xxxxxxxxxx
ldapur. */
- return 3033;
+ return 3068;
}
}
else
@@ -10139,7 +10183,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01011001010xxxxxxxxx00xxxxxxxxxx
ldapurh. */
- return 3029;
+ return 3064;
}
else
{
@@ -10147,7 +10191,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11011001010xxxxxxxxx00xxxxxxxxxx
ldapur. */
- return 3036;
+ return 3071;
}
}
}
@@ -10163,7 +10207,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001011xxxxxxx0000xxxxxxxxxx
swppl. */
- return 1197;
+ return 1249;
}
else
{
@@ -10171,7 +10215,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001011xxxxxxx1000xxxxxxxxxx
rcwswppl. */
- return 3273;
+ return 3373;
}
}
else
@@ -10184,7 +10228,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001011xxxxx0x0100xxxxxxxxxx
ldclrpl. */
- return 1189;
+ return 1241;
}
else
{
@@ -10192,7 +10236,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001011xxxxx1x0100xxxxxxxxxx
rcwclrpl. */
- return 3241;
+ return 3341;
}
}
else
@@ -10203,7 +10247,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001011xxxxx0x1100xxxxxxxxxx
ldsetpl. */
- return 1193;
+ return 1245;
}
else
{
@@ -10211,7 +10255,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001011xxxxx1x1100xxxxxxxxxx
rcwsetpl. */
- return 3257;
+ return 3357;
}
}
}
@@ -10226,7 +10270,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01011001011xxxxxxxx000xxxxxxxxxx
rcwsswppl. */
- return 3281;
+ return 3381;
}
else
{
@@ -10236,7 +10280,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01011001011xxxxxxx0100xxxxxxxxxx
rcwsclrpl. */
- return 3249;
+ return 3349;
}
else
{
@@ -10244,7 +10288,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01011001011xxxxxxx1100xxxxxxxxxx
rcwssetpl. */
- return 3265;
+ return 3365;
}
}
}
@@ -10254,7 +10298,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11011001011xxxxxxxxx00xxxxxxxxxx
ldg. */
- return 934;
+ return 986;
}
}
}
@@ -10267,7 +10311,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001010xxxxxxxxx10xxxxxxxxxx
ldiapp. */
- return 1198;
+ return 1250;
}
else
{
@@ -10277,7 +10321,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001011xxxxxxxxx10xxxxxxxxxx
rcwcasl. */
- return 3221;
+ return 3321;
}
else
{
@@ -10287,7 +10331,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01011001011xxxxxxxxx10xxxxxxxxxx
rcwscasl. */
- return 3229;
+ return 3329;
}
else
{
@@ -10295,7 +10339,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11011001011xxxxxxxxx10xxxxxxxxxx
stzg. */
- return 882;
+ return 934;
}
}
}
@@ -10317,7 +10361,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001010xxxxx0000x1xxxxxxxxxx
cpyfm. */
- return 3085;
+ return 3185;
}
else
{
@@ -10325,7 +10369,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001010xxxxx1000x1xxxxxxxxxx
cpyfmrn. */
- return 3091;
+ return 3191;
}
}
else
@@ -10336,7 +10380,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001010xxxxx0100x1xxxxxxxxxx
cpyfmwn. */
- return 3088;
+ return 3188;
}
else
{
@@ -10344,7 +10388,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001010xxxxx1100x1xxxxxxxxxx
cpyfmn. */
- return 3094;
+ return 3194;
}
}
}
@@ -10358,7 +10402,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001010xxxxx0010x1xxxxxxxxxx
cpyfmrt. */
- return 3109;
+ return 3209;
}
else
{
@@ -10366,7 +10410,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001010xxxxx1010x1xxxxxxxxxx
cpyfmrtrn. */
- return 3115;
+ return 3215;
}
}
else
@@ -10377,7 +10421,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001010xxxxx0110x1xxxxxxxxxx
cpyfmrtwn. */
- return 3112;
+ return 3212;
}
else
{
@@ -10385,7 +10429,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001010xxxxx1110x1xxxxxxxxxx
cpyfmrtn. */
- return 3118;
+ return 3218;
}
}
}
@@ -10402,7 +10446,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001010xxxxx0001x1xxxxxxxxxx
cpyfmwt. */
- return 3097;
+ return 3197;
}
else
{
@@ -10410,7 +10454,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001010xxxxx1001x1xxxxxxxxxx
cpyfmwtrn. */
- return 3103;
+ return 3203;
}
}
else
@@ -10421,7 +10465,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001010xxxxx0101x1xxxxxxxxxx
cpyfmwtwn. */
- return 3100;
+ return 3200;
}
else
{
@@ -10429,7 +10473,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001010xxxxx1101x1xxxxxxxxxx
cpyfmwtn. */
- return 3106;
+ return 3206;
}
}
}
@@ -10443,7 +10487,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001010xxxxx0011x1xxxxxxxxxx
cpyfmt. */
- return 3121;
+ return 3221;
}
else
{
@@ -10451,7 +10495,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001010xxxxx1011x1xxxxxxxxxx
cpyfmtrn. */
- return 3127;
+ return 3227;
}
}
else
@@ -10462,7 +10506,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001010xxxxx0111x1xxxxxxxxxx
cpyfmtwn. */
- return 3124;
+ return 3224;
}
else
{
@@ -10470,7 +10514,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001010xxxxx1111x1xxxxxxxxxx
cpyfmtn. */
- return 3130;
+ return 3230;
}
}
}
@@ -10484,7 +10528,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001011xxxxxxxxxx1xxxxxxxxxx
rcwcaspl. */
- return 3225;
+ return 3325;
}
else
{
@@ -10494,7 +10538,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01011001011xxxxxxxxxx1xxxxxxxxxx
rcwscaspl. */
- return 3233;
+ return 3333;
}
else
{
@@ -10502,7 +10546,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11011001011xxxxxxxxxx1xxxxxxxxxx
stzg. */
- return 886;
+ return 938;
}
}
}
@@ -10518,7 +10562,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0011100101xxxxxxxxxxxxxxxxxxxxxx
ldrb. */
- return 890;
+ return 942;
}
else
{
@@ -10526,7 +10570,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0111100101xxxxxxxxxxxxxxxxxxxxxx
ldrh. */
- return 895;
+ return 947;
}
}
else
@@ -10535,7 +10579,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x11100101xxxxxxxxxxxxxxxxxxxxxx
ldr. */
- return 898;
+ return 950;
}
}
}
@@ -10560,7 +10604,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00011001100xxxxxxxxx00xxxxxxxxxx
ldapursb. */
- return 3027;
+ return 3062;
}
else
{
@@ -10568,7 +10612,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
10011001100xxxxxxxxx00xxxxxxxxxx
ldapursw. */
- return 3034;
+ return 3069;
}
}
else
@@ -10577,7 +10621,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011001100xxxxxxxxx00xxxxxxxxxx
ldapursh. */
- return 3031;
+ return 3066;
}
}
else
@@ -10588,7 +10632,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001110xxxxxxxxx00xxxxxxxxxx
ldapursb. */
- return 3026;
+ return 3061;
}
else
{
@@ -10596,7 +10640,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011001110xxxxxxxxx00xxxxxxxxxx
ldapursh. */
- return 3030;
+ return 3065;
}
}
}
@@ -10614,7 +10658,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001101xxxxx0x0000xxxxxxxxxx
stgm. */
- return 963;
+ return 1015;
}
else
{
@@ -10622,7 +10666,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001111xxxxx0x0000xxxxxxxxxx
ldgm. */
- return 962;
+ return 1014;
}
}
else
@@ -10633,7 +10677,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001101xxxxx1x0000xxxxxxxxxx
swppa. */
- return 1195;
+ return 1247;
}
else
{
@@ -10641,7 +10685,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001111xxxxx1x0000xxxxxxxxxx
swppal. */
- return 1196;
+ return 1248;
}
}
}
@@ -10655,7 +10699,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001101xxxxxxx1000xxxxxxxxxx
rcwswppa. */
- return 3271;
+ return 3371;
}
else
{
@@ -10663,7 +10707,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011001101xxxxxxx1000xxxxxxxxxx
rcwsswppa. */
- return 3279;
+ return 3379;
}
}
else
@@ -10674,7 +10718,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001111xxxxxxx1000xxxxxxxxxx
rcwswppal. */
- return 3272;
+ return 3372;
}
else
{
@@ -10682,7 +10726,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011001111xxxxxxx1000xxxxxxxxxx
rcwsswppal. */
- return 3280;
+ return 3380;
}
}
}
@@ -10699,7 +10743,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001101xxxxx0x0100xxxxxxxxxx
ldclrpa. */
- return 1187;
+ return 1239;
}
else
{
@@ -10707,7 +10751,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001111xxxxx0x0100xxxxxxxxxx
ldclrpal. */
- return 1188;
+ return 1240;
}
}
else
@@ -10720,7 +10764,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001101xxxxx1x0100xxxxxxxxxx
rcwclrpa. */
- return 3239;
+ return 3339;
}
else
{
@@ -10728,7 +10772,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011001101xxxxx1x0100xxxxxxxxxx
rcwsclrpa. */
- return 3247;
+ return 3347;
}
}
else
@@ -10739,7 +10783,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001111xxxxx1x0100xxxxxxxxxx
rcwclrpal. */
- return 3240;
+ return 3340;
}
else
{
@@ -10747,7 +10791,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011001111xxxxx1x0100xxxxxxxxxx
rcwsclrpal. */
- return 3248;
+ return 3348;
}
}
}
@@ -10762,7 +10806,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001101xxxxx0x1100xxxxxxxxxx
ldsetpa. */
- return 1191;
+ return 1243;
}
else
{
@@ -10770,7 +10814,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001111xxxxx0x1100xxxxxxxxxx
ldsetpal. */
- return 1192;
+ return 1244;
}
}
else
@@ -10783,7 +10827,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001101xxxxx1x1100xxxxxxxxxx
rcwsetpa. */
- return 3255;
+ return 3355;
}
else
{
@@ -10791,7 +10835,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011001101xxxxx1x1100xxxxxxxxxx
rcwssetpa. */
- return 3263;
+ return 3363;
}
}
else
@@ -10802,7 +10846,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001111xxxxx1x1100xxxxxxxxxx
rcwsetpal. */
- return 3256;
+ return 3356;
}
else
{
@@ -10810,7 +10854,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011001111xxxxx1x1100xxxxxxxxxx
rcwssetpal. */
- return 3264;
+ return 3364;
}
}
}
@@ -10828,7 +10872,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001100xxxxxxxxx10xxxxxxxxxx
stlr. */
- return 1201;
+ return 1253;
}
else
{
@@ -10836,7 +10880,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001110xxxxxxxxx10xxxxxxxxxx
ldapr. */
- return 1200;
+ return 1252;
}
}
else
@@ -10849,7 +10893,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001101xxxxxxxxx10xxxxxxxxxx
rcwcasa. */
- return 3219;
+ return 3319;
}
else
{
@@ -10859,7 +10903,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01011001101xxxxxxxxx10xxxxxxxxxx
rcwscasa. */
- return 3227;
+ return 3327;
}
else
{
@@ -10867,7 +10911,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11011001101xxxxxxxxx10xxxxxxxxxx
st2g. */
- return 883;
+ return 935;
}
}
}
@@ -10879,7 +10923,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001111xxxxxxxxx10xxxxxxxxxx
rcwcasal. */
- return 3220;
+ return 3320;
}
else
{
@@ -10889,7 +10933,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01011001111xxxxxxxxx10xxxxxxxxxx
rcwscasal. */
- return 3228;
+ return 3328;
}
else
{
@@ -10897,7 +10941,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11011001111xxxxxxxxx10xxxxxxxxxx
stz2g. */
- return 884;
+ return 936;
}
}
}
@@ -10922,7 +10966,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001100xxxxx0000x1xxxxxxxxxx
cpyfe. */
- return 3086;
+ return 3186;
}
else
{
@@ -10930,7 +10974,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001110xxxxx0000x1xxxxxxxxxx
setp. */
- return 3180;
+ return 3280;
}
}
else
@@ -10941,7 +10985,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001100xxxxx1000x1xxxxxxxxxx
cpyfern. */
- return 3092;
+ return 3192;
}
else
{
@@ -10949,7 +10993,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001110xxxxx1000x1xxxxxxxxxx
sete. */
- return 3182;
+ return 3282;
}
}
}
@@ -10963,7 +11007,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001100xxxxx0100x1xxxxxxxxxx
cpyfewn. */
- return 3089;
+ return 3189;
}
else
{
@@ -10971,7 +11015,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001110xxxxx0100x1xxxxxxxxxx
setm. */
- return 3181;
+ return 3281;
}
}
else
@@ -10980,7 +11024,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0110011x0xxxxx1100x1xxxxxxxxxx
cpyfen. */
- return 3095;
+ return 3195;
}
}
}
@@ -10996,7 +11040,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001100xxxxx0010x1xxxxxxxxxx
cpyfert. */
- return 3110;
+ return 3210;
}
else
{
@@ -11004,7 +11048,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001110xxxxx0010x1xxxxxxxxxx
setpn. */
- return 3186;
+ return 3286;
}
}
else
@@ -11015,7 +11059,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001100xxxxx1010x1xxxxxxxxxx
cpyfertrn. */
- return 3116;
+ return 3216;
}
else
{
@@ -11023,7 +11067,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001110xxxxx1010x1xxxxxxxxxx
seten. */
- return 3188;
+ return 3288;
}
}
}
@@ -11037,7 +11081,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001100xxxxx0110x1xxxxxxxxxx
cpyfertwn. */
- return 3113;
+ return 3213;
}
else
{
@@ -11045,7 +11089,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001110xxxxx0110x1xxxxxxxxxx
setmn. */
- return 3187;
+ return 3287;
}
}
else
@@ -11054,7 +11098,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0110011x0xxxxx1110x1xxxxxxxxxx
cpyfertn. */
- return 3119;
+ return 3219;
}
}
}
@@ -11073,7 +11117,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001100xxxxx0001x1xxxxxxxxxx
cpyfewt. */
- return 3098;
+ return 3198;
}
else
{
@@ -11081,7 +11125,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001110xxxxx0001x1xxxxxxxxxx
setpt. */
- return 3183;
+ return 3283;
}
}
else
@@ -11092,7 +11136,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001100xxxxx1001x1xxxxxxxxxx
cpyfewtrn. */
- return 3104;
+ return 3204;
}
else
{
@@ -11100,7 +11144,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001110xxxxx1001x1xxxxxxxxxx
setet. */
- return 3185;
+ return 3285;
}
}
}
@@ -11114,7 +11158,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001100xxxxx0101x1xxxxxxxxxx
cpyfewtwn. */
- return 3101;
+ return 3201;
}
else
{
@@ -11122,7 +11166,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001110xxxxx0101x1xxxxxxxxxx
setmt. */
- return 3184;
+ return 3284;
}
}
else
@@ -11131,7 +11175,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0110011x0xxxxx1101x1xxxxxxxxxx
cpyfewtn. */
- return 3107;
+ return 3207;
}
}
}
@@ -11147,7 +11191,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001100xxxxx0011x1xxxxxxxxxx
cpyfet. */
- return 3122;
+ return 3222;
}
else
{
@@ -11155,7 +11199,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001110xxxxx0011x1xxxxxxxxxx
setptn. */
- return 3189;
+ return 3289;
}
}
else
@@ -11166,7 +11210,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001100xxxxx1011x1xxxxxxxxxx
cpyfetrn. */
- return 3128;
+ return 3228;
}
else
{
@@ -11174,7 +11218,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001110xxxxx1011x1xxxxxxxxxx
setetn. */
- return 3191;
+ return 3291;
}
}
}
@@ -11188,7 +11232,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001100xxxxx0111x1xxxxxxxxxx
cpyfetwn. */
- return 3125;
+ return 3225;
}
else
{
@@ -11196,7 +11240,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011001110xxxxx0111x1xxxxxxxxxx
setmtn. */
- return 3190;
+ return 3290;
}
}
else
@@ -11205,7 +11249,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0110011x0xxxxx1111x1xxxxxxxxxx
cpyfetn. */
- return 3131;
+ return 3231;
}
}
}
@@ -11221,7 +11265,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001101xxxxxxxxxx1xxxxxxxxxx
rcwcaspa. */
- return 3223;
+ return 3323;
}
else
{
@@ -11231,7 +11275,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01011001101xxxxxxxxxx1xxxxxxxxxx
rcwscaspa. */
- return 3231;
+ return 3331;
}
else
{
@@ -11239,7 +11283,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11011001101xxxxxxxxxx1xxxxxxxxxx
st2g. */
- return 887;
+ return 939;
}
}
}
@@ -11251,7 +11295,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011001111xxxxxxxxxx1xxxxxxxxxx
rcwcaspal. */
- return 3224;
+ return 3324;
}
else
{
@@ -11261,7 +11305,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01011001111xxxxxxxxxx1xxxxxxxxxx
rcwscaspal. */
- return 3232;
+ return 3332;
}
else
{
@@ -11269,7 +11313,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11011001111xxxxxxxxxx1xxxxxxxxxx
stz2g. */
- return 888;
+ return 940;
}
}
}
@@ -11286,7 +11330,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001110011xxxxxxxxxxxxxxxxxxxxxxx
ldrsb. */
- return 891;
+ return 943;
}
else
{
@@ -11294,7 +11338,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101110011xxxxxxxxxxxxxxxxxxxxxxx
ldrsw. */
- return 899;
+ return 951;
}
}
else
@@ -11305,7 +11349,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011110011xxxxxxxxxxxxxxxxxxxxxxx
ldrsh. */
- return 896;
+ return 948;
}
else
{
@@ -11313,7 +11357,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111110011xxxxxxxxxxxxxxxxxxxxxxx
prfm. */
- return 900;
+ return 952;
}
}
}
@@ -11338,7 +11382,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x00x00100xxxxxxxxxxxxxxxxxxxxxxx
and. */
- return 995;
+ return 1047;
}
else
{
@@ -11346,7 +11390,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10x00100xxxxxxxxxxxxxxxxxxxxxxx
eor. */
- return 999;
+ return 1051;
}
}
else
@@ -11357,7 +11401,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x01x00100xxxxxxxxxxxxxxxxxxxxxxx
orr. */
- return 997;
+ return 1049;
}
else
{
@@ -11365,7 +11409,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11x00100xxxxxxxxxxxxxxxxxxxxxxx
ands. */
- return 1000;
+ return 1052;
}
}
}
@@ -11379,7 +11423,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x00x00101xxxxxxxxxxxxxxxxxxxxxxx
movn. */
- return 1216;
+ return 1268;
}
else
{
@@ -11387,7 +11431,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10x00101xxxxxxxxxxxxxxxxxxxxxxx
movz. */
- return 1218;
+ return 1270;
}
}
else
@@ -11396,7 +11440,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx1x00101xxxxxxxxxxxxxxxxxxxxxxx
movk. */
- return 1220;
+ return 1272;
}
}
}
@@ -11414,7 +11458,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0001010xx0xxxxxxxxxxxxxxxxxxxxx
and. */
- return 1002;
+ return 1054;
}
else
{
@@ -11422,7 +11466,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1001010xx0xxxxxxxxxxxxxxxxxxxxx
eor. */
- return 1009;
+ return 1061;
}
}
else
@@ -11433,7 +11477,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0101010xx0xxxxxxxxxxxxxxxxxxxxx
orr. */
- return 1004;
+ return 1056;
}
else
{
@@ -11441,7 +11485,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1101010xx0xxxxxxxxxxxxxxxxxxxxx
ands. */
- return 1011;
+ return 1063;
}
}
}
@@ -11504,7 +11548,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010000xxxxxx00x10xxxxxxxxxx
setf8. */
- return 3022;
+ return 3057;
}
else
{
@@ -11512,7 +11556,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010000xxxxxx10x10xxxxxxxxxx
setf16. */
- return 3023;
+ return 3058;
}
}
}
@@ -11522,7 +11566,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010000xxxxxxx0xx1xxxxxxxxxx
rmif. */
- return 3021;
+ return 3056;
}
}
else
@@ -11533,7 +11577,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x11010000xxxxxxx1xxxxxxxxxxxxx
addpt. */
- return 3469;
+ return 3569;
}
else
{
@@ -11541,7 +11585,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010000xxxxxxx1xxxxxxxxxxxxx
subpt. */
- return 3470;
+ return 3570;
}
}
}
@@ -11555,7 +11599,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x11010100xxxxxxxxxx0xxxxxxxxxx
csel. */
- return 662;
+ return 702;
}
else
{
@@ -11563,7 +11607,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010100xxxxxxxxxx0xxxxxxxxxx
csinv. */
- return 666;
+ return 706;
}
}
else
@@ -11574,7 +11618,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x11010100xxxxxxxxxx1xxxxxxxxxx
csinc. */
- return 663;
+ return 703;
}
else
{
@@ -11582,7 +11626,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010100xxxxxxxxxx1xxxxxxxxxx
csneg. */
- return 669;
+ return 709;
}
}
}
@@ -11601,7 +11645,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x11010010xxxxxxxxx00xxxxxxxxxx
ccmn. */
- return 660;
+ return 700;
}
else
{
@@ -11609,7 +11653,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010010xxxxxxxxx00xxxxxxxxxx
ccmp. */
- return 661;
+ return 701;
}
}
else
@@ -11628,7 +11672,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011010110xxxxxx00000xxxxxxxxxx
subp. */
- return 721;
+ return 761;
}
else
{
@@ -11638,7 +11682,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011010110xxxx0x00000xxxxxxxxxx
rbit. */
- return 685;
+ return 725;
}
else
{
@@ -11646,7 +11690,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011010110xxxx1x00000xxxxxxxxxx
pacia. */
- return 693;
+ return 733;
}
}
}
@@ -11656,7 +11700,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx111010110xxxxxx00000xxxxxxxxxx
subps. */
- return 722;
+ return 762;
}
}
else
@@ -11667,7 +11711,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x11010110xxxxxx10000xxxxxxxxxx
crc32b. */
- return 727;
+ return 767;
}
else
{
@@ -11675,7 +11719,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010110xxxxxx10000xxxxxxxxxx
xpaci. */
- return 709;
+ return 749;
}
}
}
@@ -11689,7 +11733,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x11010110xxxxxx01000xxxxxxxxxx
lslv. */
- return 713;
+ return 753;
}
else
{
@@ -11699,7 +11743,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010110xxxx0x01000xxxxxxxxxx
abs. */
- return 3209;
+ return 3309;
}
else
{
@@ -11707,7 +11751,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010110xxxx1x01000xxxxxxxxxx
paciza. */
- return 701;
+ return 741;
}
}
}
@@ -11717,7 +11761,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010110xxxxxx11000xxxxxxxxxx
smax. */
- return 3212;
+ return 3312;
}
}
}
@@ -11733,7 +11777,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x11010110xxxxxx00100xxxxxxxxxx
irg. */
- return 724;
+ return 764;
}
else
{
@@ -11743,7 +11787,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010110xxxx0x00100xxxxxxxxxx
clz. */
- return 690;
+ return 730;
}
else
{
@@ -11751,7 +11795,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010110xxxx1x00100xxxxxxxxxx
autia. */
- return 697;
+ return 737;
}
}
}
@@ -11761,7 +11805,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010110xxxxxx10100xxxxxxxxxx
crc32cb. */
- return 731;
+ return 771;
}
}
else
@@ -11772,7 +11816,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x11010110xxxxxxx1100xxxxxxxxxx
pacga. */
- return 726;
+ return 766;
}
else
{
@@ -11780,7 +11824,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010110xxxxxxx1100xxxxxxxxxx
autiza. */
- return 705;
+ return 745;
}
}
}
@@ -11796,7 +11840,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x11010010xxxxxxxxx10xxxxxxxxxx
ccmn. */
- return 658;
+ return 698;
}
else
{
@@ -11804,7 +11848,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010010xxxxxxxxx10xxxxxxxxxx
ccmp. */
- return 659;
+ return 699;
}
}
else
@@ -11821,7 +11865,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x11010110xxxxxx00010xxxxxxxxxx
udiv. */
- return 711;
+ return 751;
}
else
{
@@ -11833,7 +11877,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01x11010110xxxx0x00010xxxxxxxxxx
rev. */
- return 687;
+ return 727;
}
else
{
@@ -11841,7 +11885,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11x11010110xxxx0x00010xxxxxxxxxx
rev32. */
- return 692;
+ return 732;
}
}
else
@@ -11850,7 +11894,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010110xxxx1x00010xxxxxxxxxx
pacda. */
- return 695;
+ return 735;
}
}
}
@@ -11860,7 +11904,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010110xxxxxx10010xxxxxxxxxx
crc32w. */
- return 729;
+ return 769;
}
}
else
@@ -11873,7 +11917,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x11010110xxxxxx01010xxxxxxxxxx
asrv. */
- return 717;
+ return 757;
}
else
{
@@ -11881,7 +11925,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010110xxxxxx01010xxxxxxxxxx
pacdza. */
- return 703;
+ return 743;
}
}
else
@@ -11890,7 +11934,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010110xxxxxx11010xxxxxxxxxx
smin. */
- return 3214;
+ return 3314;
}
}
}
@@ -11906,7 +11950,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010110xxxx0x00110xxxxxxxxxx
ctz. */
- return 3211;
+ return 3311;
}
else
{
@@ -11914,7 +11958,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010110xxxx1x00110xxxxxxxxxx
autda. */
- return 699;
+ return 739;
}
}
else
@@ -11923,7 +11967,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010110xxxxxx10110xxxxxxxxxx
crc32cw. */
- return 733;
+ return 773;
}
}
else
@@ -11932,7 +11976,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010110xxxxxxx1110xxxxxxxxxx
autdza. */
- return 707;
+ return 747;
}
}
}
@@ -11954,7 +11998,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010x10xxxx0x00001xxxxxxxxxx
rev16. */
- return 686;
+ return 726;
}
else
{
@@ -11962,7 +12006,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010x10xxxx1x00001xxxxxxxxxx
pacib. */
- return 694;
+ return 734;
}
}
else
@@ -11973,7 +12017,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x11010x10xxxxxx10001xxxxxxxxxx
crc32h. */
- return 728;
+ return 768;
}
else
{
@@ -11981,7 +12025,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010x10xxxxxx10001xxxxxxxxxx
xpacd. */
- return 710;
+ return 750;
}
}
}
@@ -11995,7 +12039,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x11010x10xxxxxx01001xxxxxxxxxx
lsrv. */
- return 715;
+ return 755;
}
else
{
@@ -12003,7 +12047,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010x10xxxxxx01001xxxxxxxxxx
pacizb. */
- return 702;
+ return 742;
}
}
else
@@ -12012,7 +12056,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010x10xxxxxx11001xxxxxxxxxx
umax. */
- return 3213;
+ return 3313;
}
}
}
@@ -12028,7 +12072,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x11010x10xxxxxx00101xxxxxxxxxx
gmi. */
- return 725;
+ return 765;
}
else
{
@@ -12038,7 +12082,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010x10xxxx0x00101xxxxxxxxxx
cls. */
- return 691;
+ return 731;
}
else
{
@@ -12046,7 +12090,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010x10xxxx1x00101xxxxxxxxxx
autib. */
- return 698;
+ return 738;
}
}
}
@@ -12056,7 +12100,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010x10xxxxxx10101xxxxxxxxxx
crc32ch. */
- return 732;
+ return 772;
}
}
else
@@ -12065,7 +12109,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010x10xxxxxxx1101xxxxxxxxxx
autizb. */
- return 706;
+ return 746;
}
}
}
@@ -12083,7 +12127,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x11010x10xxxxxx00011xxxxxxxxxx
sdiv. */
- return 712;
+ return 752;
}
else
{
@@ -12093,7 +12137,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010x10xxxx0x00011xxxxxxxxxx
rev. */
- return 688;
+ return 728;
}
else
{
@@ -12101,7 +12145,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010x10xxxx1x00011xxxxxxxxxx
pacdb. */
- return 696;
+ return 736;
}
}
}
@@ -12111,7 +12155,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010x10xxxxxx10011xxxxxxxxxx
crc32x. */
- return 730;
+ return 770;
}
}
else
@@ -12124,7 +12168,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x11010x10xxxxxx01011xxxxxxxxxx
rorv. */
- return 719;
+ return 759;
}
else
{
@@ -12132,7 +12176,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11010x10xxxxxx01011xxxxxxxxxx
pacdzb. */
- return 704;
+ return 744;
}
}
else
@@ -12141,7 +12185,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010x10xxxxxx11011xxxxxxxxxx
umin. */
- return 3215;
+ return 3315;
}
}
}
@@ -12157,7 +12201,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010x10xxxx0x00111xxxxxxxxxx
cnt. */
- return 3210;
+ return 3310;
}
else
{
@@ -12165,7 +12209,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010x10xxxx1x00111xxxxxxxxxx
autdb. */
- return 700;
+ return 740;
}
}
else
@@ -12174,7 +12218,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010x10xxxxxx10111xxxxxxxxxx
crc32cx. */
- return 734;
+ return 774;
}
}
else
@@ -12183,7 +12227,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11010x10xxxxxxx1111xxxxxxxxxx
autdzb. */
- return 708;
+ return 748;
}
}
}
@@ -12201,7 +12245,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x00x1010xx1xxxxxxxxxxxxxxxxxxxxx
bic. */
- return 1003;
+ return 1055;
}
else
{
@@ -12209,7 +12253,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10x1010xx1xxxxxxxxxxxxxxxxxxxxx
eon. */
- return 1010;
+ return 1062;
}
}
else
@@ -12220,7 +12264,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x01x1010xx1xxxxxxxxxxxxxxxxxxxxx
orn. */
- return 1007;
+ return 1059;
}
else
{
@@ -12228,7 +12272,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11x1010xx1xxxxxxxxxxxxxxxxxxxxx
bics. */
- return 1013;
+ return 1065;
}
}
}
@@ -12274,7 +12318,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxx00111xxxxxxxxxxxxxxxxxxxxxxx
extr. */
- return 758;
+ return 798;
}
}
else
@@ -12332,7 +12376,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11011x00xxxxx0xxxxxxxxxxxxxxx
madd. */
- return 735;
+ return 775;
}
else
{
@@ -12342,7 +12386,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11011010xxxxx0xxxxxxxxxxxxxxx
smulh. */
- return 743;
+ return 783;
}
else
{
@@ -12350,7 +12394,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11011110xxxxx0xxxxxxxxxxxxxxx
umulh. */
- return 748;
+ return 788;
}
}
}
@@ -12360,7 +12404,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11011xx0xxxxx1xxxxxxxxxxxxxxx
msub. */
- return 737;
+ return 777;
}
}
}
@@ -12419,7 +12463,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11011001xxxxx0xxxxxxxxxxxxxxx
smaddl. */
- return 739;
+ return 779;
}
else
{
@@ -12427,7 +12471,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11011001xxxxx1xxxxxxxxxxxxxxx
smsubl. */
- return 741;
+ return 781;
}
}
}
@@ -12439,7 +12483,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxx1011101xxxxx0xxxxxxxxxxxxxxx
umaddl. */
- return 744;
+ return 784;
}
else
{
@@ -12447,7 +12491,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxx1011101xxxxx1xxxxxxxxxxxxxxx
umsubl. */
- return 746;
+ return 786;
}
}
}
@@ -12459,7 +12503,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxx1011x11xxxxx0xxxxxxxxxxxxxxx
maddpt. */
- return 3471;
+ return 3571;
}
else
{
@@ -12467,7 +12511,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxx1011x11xxxxx1xxxxxxxxxxxxxxx
msubpt. */
- return 3472;
+ return 3572;
}
}
}
@@ -12511,7 +12555,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx000000000xxxxxxxxxxxxx
add. */
- return 1341;
+ return 1393;
}
else
{
@@ -12519,7 +12563,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx010000000xxxxxxxxxxxxx
mul. */
- return 1811;
+ return 1847;
}
}
else
@@ -12530,7 +12574,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx001000000xxxxxxxxxxxxx
smax. */
- return 1891;
+ return 1927;
}
else
{
@@ -12538,7 +12582,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx011000000xxxxxxxxxxxxx
orr. */
- return 1822;
+ return 1858;
}
}
}
@@ -12552,7 +12596,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx000100000xxxxxxxxxxxxx
addpt. */
- return 3473;
+ return 3573;
}
else
{
@@ -12560,7 +12604,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx010100000xxxxxxxxxxxxx
sdiv. */
- return 1882;
+ return 1918;
}
}
else
@@ -12569,7 +12613,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x1100000xxxxxxxxxxxxx
sabd. */
- return 1873;
+ return 1909;
}
}
}
@@ -12583,7 +12627,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x0010000xxxxxxxxxxxxx
smulh. */
- return 1896;
+ return 1932;
}
else
{
@@ -12593,7 +12637,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx001010000xxxxxxxxxxxxx
smin. */
- return 1894;
+ return 1930;
}
else
{
@@ -12601,7 +12645,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx011010000xxxxxxxxxxxxx
and. */
- return 1349;
+ return 1401;
}
}
}
@@ -12611,7 +12655,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0xx110000xxxxxxxxxxxxx
sdivr. */
- return 1883;
+ return 1919;
}
}
}
@@ -12627,7 +12671,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x0001000xxxxxxxxxxxxx
sub. */
- return 2013;
+ return 2049;
}
else
{
@@ -12637,7 +12681,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx001001000xxxxxxxxxxxxx
umax. */
- return 2041;
+ return 2077;
}
else
{
@@ -12645,7 +12689,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx011001000xxxxxxxxxxxxx
eor. */
- return 1436;
+ return 1488;
}
}
}
@@ -12659,7 +12703,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx000101000xxxxxxxxxxxxx
subpt. */
- return 3475;
+ return 3575;
}
else
{
@@ -12667,7 +12711,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx010101000xxxxxxxxxxxxx
udiv. */
- return 2035;
+ return 2071;
}
}
else
@@ -12676,7 +12720,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x1101000xxxxxxxxxxxxx
uabd. */
- return 2026;
+ return 2062;
}
}
}
@@ -12692,7 +12736,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx000011000xxxxxxxxxxxxx
subr. */
- return 2015;
+ return 2051;
}
else
{
@@ -12700,7 +12744,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx010011000xxxxxxxxxxxxx
umulh. */
- return 2046;
+ return 2082;
}
}
else
@@ -12711,7 +12755,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx001011000xxxxxxxxxxxxx
umin. */
- return 2044;
+ return 2080;
}
else
{
@@ -12719,7 +12763,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx011011000xxxxxxxxxxxxx
bic. */
- return 1361;
+ return 1413;
}
}
}
@@ -12729,7 +12773,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0xx111000xxxxxxxxxxxxx
udivr. */
- return 2036;
+ return 2072;
}
}
}
@@ -12742,7 +12786,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x00x0xxxxx000xxxxxxxxxxxxx
ld1sb. */
- return 1623;
+ return 1675;
}
else
{
@@ -12750,7 +12794,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x01x0xxxxx000xxxxxxxxxxxxx
ld1sh. */
- return 1634;
+ return 1686;
}
}
}
@@ -12768,7 +12812,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx000000xxxxxxxxxx
sdot. */
- return 1884;
+ return 1920;
}
else
{
@@ -12776,7 +12820,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx000010xxxxxxxxxx
sqdmlalbt. */
- return 2235;
+ return 2271;
}
}
else
@@ -12787,7 +12831,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx000001xxxxxxxxxx
udot. */
- return 2037;
+ return 2073;
}
else
{
@@ -12795,7 +12839,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx000011xxxxxxxxxx
sqdmlslbt. */
- return 2242;
+ return 2278;
}
}
}
@@ -12805,7 +12849,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx0001xxxxxxxxxxxx
cdot. */
- return 2124;
+ return 2160;
}
}
else
@@ -12816,7 +12860,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x00x0xxxxx000xxxxxxxxxxxxx
ld1sb. */
- return 1627;
+ return 1679;
}
else
{
@@ -12824,7 +12868,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x01x0xxxxx000xxxxxxxxxxxxx
ld1sh. */
- return 1638;
+ return 1690;
}
}
}
@@ -12845,7 +12889,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx000000xxxxxxxxxx
add. */
- return 1339;
+ return 1391;
}
else
{
@@ -12853,7 +12897,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx000100xxxxxxxxxx
sqadd. */
- return 1898;
+ return 1934;
}
}
else
@@ -12864,7 +12908,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx000010xxxxxxxxxx
addpt. */
- return 3474;
+ return 3574;
}
else
{
@@ -12872,7 +12916,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx000110xxxxxxxxxx
sqsub. */
- return 1928;
+ return 1964;
}
}
}
@@ -12886,7 +12930,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx000001xxxxxxxxxx
sub. */
- return 2011;
+ return 2047;
}
else
{
@@ -12894,7 +12938,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx000101xxxxxxxxxx
uqadd. */
- return 2047;
+ return 2083;
}
}
else
@@ -12905,7 +12949,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx000011xxxxxxxxxx
subpt. */
- return 3476;
+ return 3576;
}
else
{
@@ -12913,7 +12957,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx000111xxxxxxxxxx
uqsub. */
- return 2077;
+ return 2113;
}
}
}
@@ -12926,7 +12970,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x00x1xxxxx000xxxxxxxxxxxxx
prfb. */
- return 1831;
+ return 1867;
}
else
{
@@ -12934,7 +12978,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x01x1xxxxx000xxxxxxxxxxxxx
ld1sh. */
- return 1635;
+ return 1687;
}
}
}
@@ -12952,7 +12996,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x00x1xxxxx000x00xxxxxxxxxx
sqrdmlah. */
- return 2260;
+ return 2296;
}
else
{
@@ -12960,7 +13004,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x00x1xxxxx000x10xxxxxxxxxx
mla. */
- return 2167;
+ return 2203;
}
}
else
@@ -12971,7 +13015,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x00x1xxxxx000x01xxxxxxxxxx
sqrdmlsh. */
- return 2264;
+ return 2300;
}
else
{
@@ -12979,7 +13023,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x00x1xxxxx000x11xxxxxxxxxx
mls. */
- return 2170;
+ return 2206;
}
}
}
@@ -12989,7 +13033,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x00x1xxxxx000xxxxxxxxxxxxx
prfb. */
- return 1832;
+ return 1868;
}
}
else
@@ -13008,7 +13052,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx000000xxxxxxxxxx
sdot. */
- return 1885;
+ return 1921;
}
else
{
@@ -13016,7 +13060,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx000000xxxxxxxxxx
sdot. */
- return 1886;
+ return 1922;
}
}
else
@@ -13027,7 +13071,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx000100xxxxxxxxxx
sqrdmlah. */
- return 2261;
+ return 2297;
}
else
{
@@ -13035,7 +13079,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx000100xxxxxxxxxx
sqrdmlah. */
- return 2262;
+ return 2298;
}
}
}
@@ -13049,7 +13093,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx000010xxxxxxxxxx
mla. */
- return 2168;
+ return 2204;
}
else
{
@@ -13057,7 +13101,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx000010xxxxxxxxxx
mla. */
- return 2169;
+ return 2205;
}
}
else
@@ -13066,7 +13110,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x01x1xxxxx000110xxxxxxxxxx
usdot. */
- return 3041;
+ return 3136;
}
}
}
@@ -13082,7 +13126,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx000001xxxxxxxxxx
udot. */
- return 2038;
+ return 2074;
}
else
{
@@ -13090,7 +13134,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx000001xxxxxxxxxx
udot. */
- return 2039;
+ return 2075;
}
}
else
@@ -13101,7 +13145,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx000101xxxxxxxxxx
sqrdmlsh. */
- return 2265;
+ return 2301;
}
else
{
@@ -13109,7 +13153,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx000101xxxxxxxxxx
sqrdmlsh. */
- return 2266;
+ return 2302;
}
}
}
@@ -13123,7 +13167,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx000011xxxxxxxxxx
mls. */
- return 2171;
+ return 2207;
}
else
{
@@ -13131,7 +13175,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx000011xxxxxxxxxx
mls. */
- return 2172;
+ return 2208;
}
}
else
@@ -13140,7 +13184,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x01x1xxxxx000111xxxxxxxxxx
sudot. */
- return 3042;
+ return 3137;
}
}
}
@@ -13151,7 +13195,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x01x1xxxxx000xxxxxxxxxxxxx
ld1sh. */
- return 1639;
+ return 1691;
}
}
}
@@ -13177,7 +13221,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x0001x0xx000000100xxxxxxxxxxxxx
asr. */
- return 1357;
+ return 1409;
}
else
{
@@ -13187,7 +13231,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx010000100xxxxxxxxxxxxx
asr. */
- return 1355;
+ return 1407;
}
else
{
@@ -13195,7 +13239,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx010000100xxxxxxxxxxxxx
shadd. */
- return 2201;
+ return 2237;
}
}
}
@@ -13207,7 +13251,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x0001x0xx001000100xxxxxxxxxxxxx
sqshl. */
- return 2279;
+ return 2315;
}
else
{
@@ -13217,7 +13261,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx011000100xxxxxxxxxxxxx
asr. */
- return 1356;
+ return 1408;
}
else
{
@@ -13225,7 +13269,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx011000100xxxxxxxxxxxxx
sqadd. */
- return 2230;
+ return 2266;
}
}
}
@@ -13240,7 +13284,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x0001x0xx000100100xxxxxxxxxxxxx
asrd. */
- return 1358;
+ return 1410;
}
else
{
@@ -13250,7 +13294,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx010100100xxxxxxxxxxxxx
asrr. */
- return 1359;
+ return 1411;
}
else
{
@@ -13258,7 +13302,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx010100100xxxxxxxxxxxxx
srhadd. */
- return 2292;
+ return 2328;
}
}
}
@@ -13272,7 +13316,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx001100100xxxxxxxxxxxxx
srshr. */
- return 2296;
+ return 2332;
}
else
{
@@ -13280,7 +13324,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx001100100xxxxxxxxxxxxx
sqshlr. */
- return 2280;
+ return 2316;
}
}
else
@@ -13289,7 +13333,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x0001x0xx011100100xxxxxxxxxxxxx
suqadd. */
- return 2316;
+ return 2352;
}
}
}
@@ -13306,7 +13350,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x0001x0xx000010100xxxxxxxxxxxxx
srshl. */
- return 2294;
+ return 2330;
}
else
{
@@ -13314,7 +13358,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x0001x0xx010010100xxxxxxxxxxxxx
shsub. */
- return 2204;
+ return 2240;
}
}
else
@@ -13325,7 +13369,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x0001x0xx001010100xxxxxxxxxxxxx
sqrshl. */
- return 2272;
+ return 2308;
}
else
{
@@ -13333,7 +13377,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x0001x0xx011010100xxxxxxxxxxxxx
sqsub. */
- return 2286;
+ return 2322;
}
}
}
@@ -13349,7 +13393,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx000110100xxxxxxxxxxxxx
sqshl. */
- return 2278;
+ return 2314;
}
else
{
@@ -13357,7 +13401,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx000110100xxxxxxxxxxxxx
srshlr. */
- return 2295;
+ return 2331;
}
}
else
@@ -13366,7 +13410,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x0001x0xx010110100xxxxxxxxxxxxx
shsubr. */
- return 2205;
+ return 2241;
}
}
else
@@ -13377,7 +13421,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x0001x0xx001110100xxxxxxxxxxxxx
sqrshlr. */
- return 2273;
+ return 2309;
}
else
{
@@ -13385,7 +13429,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x0001x0xx011110100xxxxxxxxxxxxx
sqsubr. */
- return 2287;
+ return 2323;
}
}
}
@@ -13405,7 +13449,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x0001x0xx000001100xxxxxxxxxxxxx
lsr. */
- return 1802;
+ return 1838;
}
else
{
@@ -13415,7 +13459,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx010001100xxxxxxxxxxxxx
lsr. */
- return 1800;
+ return 1836;
}
else
{
@@ -13423,7 +13467,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx010001100xxxxxxxxxxxxx
uhadd. */
- return 2329;
+ return 2365;
}
}
}
@@ -13435,7 +13479,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x0001x0xx001001100xxxxxxxxxxxxx
uqshl. */
- return 2359;
+ return 2395;
}
else
{
@@ -13445,7 +13489,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx011001100xxxxxxxxxxxxx
lsr. */
- return 1801;
+ return 1837;
}
else
{
@@ -13453,7 +13497,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx011001100xxxxxxxxxxxxx
uqadd. */
- return 2353;
+ return 2389;
}
}
}
@@ -13468,7 +13512,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x0101100xxxxxxxxxxxxx
lsrr. */
- return 1803;
+ return 1839;
}
else
{
@@ -13476,7 +13520,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0x0101100xxxxxxxxxxxxx
urhadd. */
- return 2368;
+ return 2404;
}
}
else
@@ -13489,7 +13533,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx001101100xxxxxxxxxxxxx
urshr. */
- return 2371;
+ return 2407;
}
else
{
@@ -13497,7 +13541,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx001101100xxxxxxxxxxxxx
uqshlr. */
- return 2360;
+ return 2396;
}
}
else
@@ -13506,7 +13550,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x0001x0xx011101100xxxxxxxxxxxxx
usqadd. */
- return 2376;
+ return 2412;
}
}
}
@@ -13525,7 +13569,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx000011100xxxxxxxxxxxxx
lsl. */
- return 1796;
+ return 1832;
}
else
{
@@ -13533,7 +13577,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx000011100xxxxxxxxxxxxx
urshl. */
- return 2369;
+ return 2405;
}
}
else
@@ -13544,7 +13588,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx010011100xxxxxxxxxxxxx
lsl. */
- return 1794;
+ return 1830;
}
else
{
@@ -13552,7 +13596,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx010011100xxxxxxxxxxxxx
uhsub. */
- return 2330;
+ return 2366;
}
}
}
@@ -13564,7 +13608,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x0001x0xx001011100xxxxxxxxxxxxx
uqrshl. */
- return 2354;
+ return 2390;
}
else
{
@@ -13574,7 +13618,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx011011100xxxxxxxxxxxxx
lsl. */
- return 1795;
+ return 1831;
}
else
{
@@ -13582,7 +13626,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx011011100xxxxxxxxxxxxx
uqsub. */
- return 2363;
+ return 2399;
}
}
}
@@ -13599,7 +13643,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx000111100xxxxxxxxxxxxx
uqshl. */
- return 2358;
+ return 2394;
}
else
{
@@ -13607,7 +13651,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx000111100xxxxxxxxxxxxx
urshlr. */
- return 2370;
+ return 2406;
}
}
else
@@ -13618,7 +13662,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx010111100xxxxxxxxxxxxx
lslr. */
- return 1797;
+ return 1833;
}
else
{
@@ -13626,7 +13670,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx010111100xxxxxxxxxxxxx
uhsubr. */
- return 2331;
+ return 2367;
}
}
}
@@ -13640,7 +13684,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx001111100xxxxxxxxxxxxx
sqshlu. */
- return 2281;
+ return 2317;
}
else
{
@@ -13648,7 +13692,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx001111100xxxxxxxxxxxxx
uqrshlr. */
- return 2355;
+ return 2391;
}
}
else
@@ -13657,7 +13701,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x0001x0xx011111100xxxxxxxxxxxxx
uqsubr. */
- return 2364;
+ return 2400;
}
}
}
@@ -13676,7 +13720,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx1000x0xxxxxxxxxx
asr. */
- return 1353;
+ return 1405;
}
else
{
@@ -13686,7 +13730,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0x01xxxxx1000x0xxxxxxxxxx
smlalb. */
- return 2209;
+ return 2245;
}
else
{
@@ -13694,7 +13738,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0x11xxxxx1000x0xxxxxxxxxx
smlalb. */
- return 2210;
+ return 2246;
}
}
}
@@ -13706,7 +13750,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx1001x0xxxxxxxxxx
asr. */
- return 1354;
+ return 1406;
}
else
{
@@ -13716,7 +13760,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0x01xxxxx1001x0xxxxxxxxxx
umlalb. */
- return 2334;
+ return 2370;
}
else
{
@@ -13724,7 +13768,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0x11xxxxx1001x0xxxxxxxxxx
umlalb. */
- return 2335;
+ return 2371;
}
}
}
@@ -13741,7 +13785,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx100001xxxxxxxxxx
lsr. */
- return 1798;
+ return 1834;
}
else
{
@@ -13749,7 +13793,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx100011xxxxxxxxxx
lsl. */
- return 1792;
+ return 1828;
}
}
else
@@ -13760,7 +13804,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0x01xxxxx1000x1xxxxxxxxxx
smlalt. */
- return 2212;
+ return 2248;
}
else
{
@@ -13768,7 +13812,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0x11xxxxx1000x1xxxxxxxxxx
smlalt. */
- return 2213;
+ return 2249;
}
}
}
@@ -13782,7 +13826,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx100101xxxxxxxxxx
lsr. */
- return 1799;
+ return 1835;
}
else
{
@@ -13790,7 +13834,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx100111xxxxxxxxxx
lsl. */
- return 1793;
+ return 1829;
}
}
else
@@ -13801,7 +13845,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0x01xxxxx1001x1xxxxxxxxxx
umlalt. */
- return 2337;
+ return 2373;
}
else
{
@@ -13809,7 +13853,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0x11xxxxx1001x1xxxxxxxxxx
umlalt. */
- return 2338;
+ return 2374;
}
}
}
@@ -13828,7 +13872,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x0001x0000xxxxx100xxxxxxxxxxxxx
ldnt1sb. */
- return 2161;
+ return 2197;
}
else
{
@@ -13836,7 +13880,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x0001x0100xxxxx100xxxxxxxxxxxxx
ldnt1sh. */
- return 2162;
+ return 2198;
}
}
else
@@ -13849,7 +13893,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x0001xxxxx100xxxxxxxxxxxxx
ld1sb. */
- return 1629;
+ return 1681;
}
else
{
@@ -13857,7 +13901,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0001xxxxx100xxxxxxxxxxxxx
ld1sb. */
- return 1633;
+ return 1685;
}
}
else
@@ -13868,7 +13912,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x0101xxxxx100xxxxxxxxxxxxx
ld1sh. */
- return 1642;
+ return 1694;
}
else
{
@@ -13876,7 +13920,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0101xxxxx100xxxxxxxxxxxxx
ld1sh. */
- return 1645;
+ return 1697;
}
}
}
@@ -13891,7 +13935,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x001xxxxxx100xxxxxxxxxxxxx
ld1rb. */
- return 1599;
+ return 1651;
}
else
{
@@ -13901,7 +13945,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0010xxxxx100xxxxxxxxxxxxx
ld1sb. */
- return 1628;
+ return 1680;
}
else
{
@@ -13909,7 +13953,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0011xxxxx100xxxxxxxxxxxxx
prfb. */
- return 1833;
+ return 1869;
}
}
}
@@ -13921,7 +13965,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x011xxxxxx100xxxxxxxxxxxxx
ld1rsw. */
- return 1620;
+ return 1672;
}
else
{
@@ -13931,7 +13975,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0110xxxxx100xxxxxxxxxxxxx
ld1sh. */
- return 1640;
+ return 1692;
}
else
{
@@ -13939,7 +13983,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0111xxxxx100xxxxxxxxxxxxx
ld1sh. */
- return 1641;
+ return 1693;
}
}
}
@@ -13961,7 +14005,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0xxxxx010xxxxxxxxxxxxx
mla. */
- return 1805;
+ return 1841;
}
else
{
@@ -13971,7 +14015,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x00x0xxxxx010xxxxxxxxxxxxx
ld1b. */
- return 1565;
+ return 1617;
}
else
{
@@ -13979,7 +14023,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x01x0xxxxx010xxxxxxxxxxxxx
ld1h. */
- return 1585;
+ return 1637;
}
}
}
@@ -13997,7 +14041,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx010000xxxxxxxxxx
smlalb. */
- return 2211;
+ return 2247;
}
else
{
@@ -14005,7 +14049,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx010100xxxxxxxxxx
smlslb. */
- return 2217;
+ return 2253;
}
}
else
@@ -14016,7 +14060,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx010010xxxxxxxxxx
umlalb. */
- return 2336;
+ return 2372;
}
else
{
@@ -14024,7 +14068,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx010110xxxxxxxxxx
umlslb. */
- return 2342;
+ return 2378;
}
}
}
@@ -14038,7 +14082,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx010001xxxxxxxxxx
smlalt. */
- return 2214;
+ return 2250;
}
else
{
@@ -14046,7 +14090,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx010101xxxxxxxxxx
smlslt. */
- return 2220;
+ return 2256;
}
}
else
@@ -14057,7 +14101,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx010011xxxxxxxxxx
umlalt. */
- return 2339;
+ return 2375;
}
else
{
@@ -14065,7 +14109,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx010111xxxxxxxxxx
umlslt. */
- return 2345;
+ return 2381;
}
}
}
@@ -14078,7 +14122,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x00x0xxxxx010xxxxxxxxxxxxx
ld1b. */
- return 1570;
+ return 1622;
}
else
{
@@ -14086,7 +14130,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x01x0xxxxx010xxxxxxxxxxxxx
ld1h. */
- return 1590;
+ return 1642;
}
}
}
@@ -14107,7 +14151,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx010000xxxxxxxxxx
index. */
- return 1556;
+ return 1608;
}
else
{
@@ -14115,7 +14159,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx010001xxxxxxxxxx
index. */
- return 1557;
+ return 1609;
}
}
else
@@ -14128,7 +14172,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0001xxxxx01010xxxxxxxxxxx
addvl. */
- return 1343;
+ return 1395;
}
else
{
@@ -14136,7 +14180,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0101xxxxx01010xxxxxxxxxxx
rdvl. */
- return 1867;
+ return 1903;
}
}
else
@@ -14145,7 +14189,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0x11xxxxx01010xxxxxxxxxxx
addpl. */
- return 1342;
+ return 1394;
}
}
}
@@ -14159,7 +14203,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx010010xxxxxxxxxx
index. */
- return 1558;
+ return 1610;
}
else
{
@@ -14167,7 +14211,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx010011xxxxxxxxxx
index. */
- return 1555;
+ return 1607;
}
}
else
@@ -14180,7 +14224,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0001xxxxx01011xxxxxxxxxxx
addsvl. */
- return 2408;
+ return 2444;
}
else
{
@@ -14188,7 +14232,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0101xxxxx01011xxxxxxxxxxx
rdsvl. */
- return 2419;
+ return 2455;
}
}
else
@@ -14197,7 +14241,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0x11xxxxx01011xxxxxxxxxxx
addspl. */
- return 2407;
+ return 2443;
}
}
}
@@ -14210,7 +14254,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x00x1xxxxx010xxxxxxxxxxxxx
prfw. */
- return 1851;
+ return 1887;
}
else
{
@@ -14218,7 +14262,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x01x1xxxxx010xxxxxxxxxxxxx
ld1h. */
- return 1586;
+ return 1638;
}
}
}
@@ -14230,7 +14274,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10001x00x1xxxxx010xxxxxxxxxxxxx
prfw. */
- return 1853;
+ return 1889;
}
else
{
@@ -14242,7 +14286,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx010xxxxxxxxxxxxx
cdot. */
- return 2126;
+ return 2162;
}
else
{
@@ -14250,7 +14294,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx010xxxxxxxxxxxxx
cdot. */
- return 2125;
+ return 2161;
}
}
else
@@ -14259,7 +14303,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x01x1xxxxx010xxxxxxxxxxxxx
ld1h. */
- return 1591;
+ return 1643;
}
}
}
@@ -14277,7 +14321,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0xxxxx110xxxxxxxxxxxxx
mad. */
- return 1804;
+ return 1840;
}
else
{
@@ -14293,7 +14337,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0x010xxxx110x00xxxxxxxxxx
sqincw. */
- return 1925;
+ return 1961;
}
else
{
@@ -14303,7 +14347,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00110xxxx110x00xxxxxxxxxx
sqinch. */
- return 1919;
+ return 1955;
}
else
{
@@ -14311,7 +14355,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01110xxxx110x00xxxxxxxxxx
sqincd. */
- return 1916;
+ return 1952;
}
}
}
@@ -14323,7 +14367,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0x011xxxx110x00xxxxxxxxxx
incw. */
- return 1553;
+ return 1605;
}
else
{
@@ -14333,7 +14377,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00111xxxx110x00xxxxxxxxxx
inch. */
- return 1549;
+ return 1601;
}
else
{
@@ -14341,7 +14385,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01111xxxx110x00xxxxxxxxxx
incd. */
- return 1547;
+ return 1599;
}
}
}
@@ -14354,7 +14398,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0x01xxxxx110x10xxxxxxxxxx
sqdecw. */
- return 1911;
+ return 1947;
}
else
{
@@ -14364,7 +14408,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0011xxxxx110x10xxxxxxxxxx
sqdech. */
- return 1905;
+ return 1941;
}
else
{
@@ -14372,7 +14416,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0111xxxxx110x10xxxxxxxxxx
sqdecd. */
- return 1902;
+ return 1938;
}
}
}
@@ -14389,7 +14433,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0x010xxxx110x01xxxxxxxxxx
uqincw. */
- return 2074;
+ return 2110;
}
else
{
@@ -14399,7 +14443,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00110xxxx110x01xxxxxxxxxx
uqinch. */
- return 2068;
+ return 2104;
}
else
{
@@ -14407,7 +14451,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01110xxxx110x01xxxxxxxxxx
uqincd. */
- return 2065;
+ return 2101;
}
}
}
@@ -14419,7 +14463,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0x011xxxx110x01xxxxxxxxxx
decw. */
- return 1428;
+ return 1480;
}
else
{
@@ -14429,7 +14473,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00111xxxx110x01xxxxxxxxxx
dech. */
- return 1424;
+ return 1476;
}
else
{
@@ -14437,7 +14481,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01111xxxx110x01xxxxxxxxxx
decd. */
- return 1422;
+ return 1474;
}
}
}
@@ -14450,7 +14494,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0x01xxxxx110x11xxxxxxxxxx
uqdecw. */
- return 2060;
+ return 2096;
}
else
{
@@ -14460,7 +14504,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0011xxxxx110x11xxxxxxxxxx
uqdech. */
- return 2054;
+ return 2090;
}
else
{
@@ -14468,7 +14512,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0111xxxxx110x11xxxxxxxxxx
uqdecd. */
- return 2051;
+ return 2087;
}
}
}
@@ -14487,7 +14531,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x0000xxxxx110xxxxxxxxxxxxx
prfb. */
- return 1830;
+ return 1866;
}
else
{
@@ -14495,7 +14539,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x0100xxxxx110xxxxxxxxxxxxx
prfh. */
- return 1845;
+ return 1881;
}
}
else
@@ -14506,7 +14550,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x0001xxxxx110xxxxxxxxxxxxx
ld1b. */
- return 1572;
+ return 1624;
}
else
{
@@ -14514,7 +14558,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x0101xxxxx110xxxxxxxxxxxxx
ld1h. */
- return 1594;
+ return 1646;
}
}
}
@@ -14526,7 +14570,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x001xxxxxx110xxxxxxxxxxxxx
ld1rb. */
- return 1601;
+ return 1653;
}
else
{
@@ -14534,7 +14578,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x011xxxxxx110xxxxxxxxxxxxx
ld1rh. */
- return 1605;
+ return 1657;
}
}
}
@@ -14555,7 +14599,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx110000xxxxxxxxxx
sclamp. */
- return 2464;
+ return 2490;
}
else
{
@@ -14563,7 +14607,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx110100xxxxxxxxxx
mlapt. */
- return 3478;
+ return 3578;
}
}
else
@@ -14576,7 +14620,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x00x0xxxxx110010xxxxxxxxxx
sdot. */
- return 2477;
+ return 2503;
}
else
{
@@ -14584,7 +14628,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x01x0xxxxx110010xxxxxxxxxx
sdot. */
- return 2476;
+ return 2502;
}
}
else
@@ -14593,7 +14637,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx110110xxxxxxxxxx
madpt. */
- return 3477;
+ return 3577;
}
}
}
@@ -14605,7 +14649,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx110x01xxxxxxxxxx
uclamp. */
- return 2465;
+ return 2491;
}
else
{
@@ -14615,7 +14659,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x00x0xxxxx110x11xxxxxxxxxx
udot. */
- return 2483;
+ return 2509;
}
else
{
@@ -14623,7 +14667,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x01x0xxxxx110x11xxxxxxxxxx
udot. */
- return 2482;
+ return 2508;
}
}
}
@@ -14638,7 +14682,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0000xxxxx110xxxxxxxxxxxxx
ldnt1b. */
- return 2157;
+ return 2193;
}
else
{
@@ -14646,7 +14690,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0100xxxxx110xxxxxxxxxxxxx
ldnt1h. */
- return 2160;
+ return 2196;
}
}
else
@@ -14657,7 +14701,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0010xxxxx110xxxxxxxxxxxxx
ld1b. */
- return 1571;
+ return 1623;
}
else
{
@@ -14665,7 +14709,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0110xxxxx110xxxxxxxxxxxxx
ld1h. */
- return 1592;
+ return 1644;
}
}
}
@@ -14680,7 +14724,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10001x0001xxxxx110xxxxxxxxxxxxx
ld1b. */
- return 1577;
+ return 1629;
}
else
{
@@ -14694,7 +14738,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx1100x0xxxxxxxxxx
smullb. */
- return 2222;
+ return 2258;
}
else
{
@@ -14702,7 +14746,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx1101x0xxxxxxxxxx
umullb. */
- return 2347;
+ return 2383;
}
}
else
@@ -14713,7 +14757,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx1100x1xxxxxxxxxx
smullt. */
- return 2225;
+ return 2261;
}
else
{
@@ -14721,7 +14765,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx1101x1xxxxxxxxxx
umullt. */
- return 2350;
+ return 2386;
}
}
}
@@ -14731,7 +14775,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0101xxxxx110xxxxxxxxxxxxx
ld1h. */
- return 1598;
+ return 1650;
}
}
}
@@ -14743,7 +14787,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10001x0011xxxxx110xxxxxxxxxxxxx
prfw. */
- return 1854;
+ return 1890;
}
else
{
@@ -14757,7 +14801,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx1100x0xxxxxxxxxx
smullb. */
- return 2223;
+ return 2259;
}
else
{
@@ -14765,7 +14809,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx1101x0xxxxxxxxxx
umullb. */
- return 2348;
+ return 2384;
}
}
else
@@ -14776,7 +14820,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx1100x1xxxxxxxxxx
smullt. */
- return 2226;
+ return 2262;
}
else
{
@@ -14784,7 +14828,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx1101x1xxxxxxxxxx
umullt. */
- return 2351;
+ return 2387;
}
}
}
@@ -14794,7 +14838,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0111xxxxx110xxxxxxxxxxxxx
ld1h. */
- return 1593;
+ return 1645;
}
}
}
@@ -14829,7 +14873,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx000000001xxxxxxxxxxxxx
saddv. */
- return 1874;
+ return 1910;
}
else
{
@@ -14837,7 +14881,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx000001001xxxxxxxxxxxxx
uaddv. */
- return 2027;
+ return 2063;
}
}
else
@@ -14846,7 +14890,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx01000x001xxxxxxxxxxxxx
movprfx. */
- return 1808;
+ return 1844;
}
}
else
@@ -14859,7 +14903,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx001000001xxxxxxxxxxxxx
smaxv. */
- return 1892;
+ return 1928;
}
else
{
@@ -14867,7 +14911,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx011000001xxxxxxxxxxxxx
orv. */
- return 1825;
+ return 1861;
}
}
else
@@ -14878,7 +14922,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx001001001xxxxxxxxxxxxx
umaxv. */
- return 2042;
+ return 2078;
}
else
{
@@ -14886,7 +14930,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx011001001xxxxxxxxxxxxx
eorv. */
- return 1439;
+ return 1491;
}
}
}
@@ -14901,7 +14945,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx00x100001xxxxxxxxxxxxx
smaxqv. */
- return 3379;
+ return 3479;
}
else
{
@@ -14909,7 +14953,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx01x100001xxxxxxxxxxxxx
orqv. */
- return 3390;
+ return 3490;
}
}
else
@@ -14920,7 +14964,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x0101001xxxxxxxxxxxxx
addqv. */
- return 3377;
+ return 3477;
}
else
{
@@ -14930,7 +14974,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx001101001xxxxxxxxxxxxx
umaxqv. */
- return 3381;
+ return 3481;
}
else
{
@@ -14938,7 +14982,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx011101001xxxxxxxxxxxxx
eorqv. */
- return 3383;
+ return 3483;
}
}
}
@@ -14956,7 +15000,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx00x010001xxxxxxxxxxxxx
sminv. */
- return 1895;
+ return 1931;
}
else
{
@@ -14964,7 +15008,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx01x010001xxxxxxxxxxxxx
andv. */
- return 1352;
+ return 1404;
}
}
else
@@ -14975,7 +15019,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx00x110001xxxxxxxxxxxxx
sminqv. */
- return 3380;
+ return 3480;
}
else
{
@@ -14983,7 +15027,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx01x110001xxxxxxxxxxxxx
andqv. */
- return 3378;
+ return 3478;
}
}
}
@@ -14995,7 +15039,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0xx011001xxxxxxxxxxxxx
uminv. */
- return 2045;
+ return 2081;
}
else
{
@@ -15003,7 +15047,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0xx111001xxxxxxxxxxxxx
uminqv. */
- return 3382;
+ return 3482;
}
}
}
@@ -15016,7 +15060,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x00x0xxxxx001xxxxxxxxxxxxx
ldff1sb. */
- return 1723;
+ return 1767;
}
else
{
@@ -15024,7 +15068,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x01x0xxxxx001xxxxxxxxxxxxx
ldff1sh. */
- return 1734;
+ return 1775;
}
}
}
@@ -15038,7 +15082,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx0010xxxxxxxxxxxx
cmla. */
- return 2127;
+ return 2163;
}
else
{
@@ -15046,7 +15090,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx0011xxxxxxxxxxxx
sqrdcmlah. */
- return 2259;
+ return 2295;
}
}
else
@@ -15057,7 +15101,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x00x0xxxxx001xxxxxxxxxxxxx
ldff1sb. */
- return 1730;
+ return 1771;
}
else
{
@@ -15065,7 +15109,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x01x0xxxxx001xxxxxxxxxxxxx
ldff1sh. */
- return 1740;
+ return 1779;
}
}
}
@@ -15088,7 +15132,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0001xxxxx001x00xxxxxxxxxx
and. */
- return 1347;
+ return 1399;
}
else
{
@@ -15096,7 +15140,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0101xxxxx001x00xxxxxxxxxx
eor. */
- return 1434;
+ return 1486;
}
}
else
@@ -15107,7 +15151,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0011xxxxx001x00xxxxxxxxxx
orr. */
- return 1820;
+ return 1856;
}
else
{
@@ -15115,7 +15159,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0111xxxxx001x00xxxxxxxxxx
bic. */
- return 1360;
+ return 1412;
}
}
}
@@ -15127,7 +15171,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0x01xxxxx001x10xxxxxxxxxx
eor3. */
- return 2130;
+ return 2166;
}
else
{
@@ -15135,7 +15179,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0x11xxxxx001x10xxxxxxxxxx
bcax. */
- return 2119;
+ return 2155;
}
}
}
@@ -15147,7 +15191,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx001x01xxxxxxxxxx
xar. */
- return 2392;
+ return 2428;
}
else
{
@@ -15159,7 +15203,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0001xxxxx001x11xxxxxxxxxx
bsl. */
- return 2120;
+ return 2156;
}
else
{
@@ -15167,7 +15211,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0101xxxxx001x11xxxxxxxxxx
bsl2n. */
- return 2122;
+ return 2158;
}
}
else
@@ -15178,7 +15222,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0011xxxxx001x11xxxxxxxxxx
bsl1n. */
- return 2121;
+ return 2157;
}
else
{
@@ -15186,7 +15230,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0111xxxxx001x11xxxxxxxxxx
nbsl. */
- return 2177;
+ return 2213;
}
}
}
@@ -15200,7 +15244,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x00x1xxxxx001xxxxxxxxxxxxx
prfh. */
- return 1844;
+ return 1880;
}
else
{
@@ -15208,7 +15252,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x01x1xxxxx001xxxxxxxxxxxxx
ldff1sh. */
- return 1735;
+ return 1776;
}
}
}
@@ -15220,7 +15264,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10001x00x1xxxxx001xxxxxxxxxxxxx
prfh. */
- return 1846;
+ return 1882;
}
else
{
@@ -15236,7 +15280,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx0010x0xxxxxxxxxx
sqdmlalb. */
- return 2232;
+ return 2268;
}
else
{
@@ -15244,7 +15288,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx0010x0xxxxxxxxxx
sqdmlalb. */
- return 2233;
+ return 2269;
}
}
else
@@ -15255,7 +15299,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx0011x0xxxxxxxxxx
sqdmlslb. */
- return 2239;
+ return 2275;
}
else
{
@@ -15263,7 +15307,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx0011x0xxxxxxxxxx
sqdmlslb. */
- return 2240;
+ return 2276;
}
}
}
@@ -15277,7 +15321,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx0010x1xxxxxxxxxx
sqdmlalt. */
- return 2236;
+ return 2272;
}
else
{
@@ -15285,7 +15329,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx0010x1xxxxxxxxxx
sqdmlalt. */
- return 2237;
+ return 2273;
}
}
else
@@ -15296,7 +15340,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx0011x1xxxxxxxxxx
sqdmlslt. */
- return 2243;
+ return 2279;
}
else
{
@@ -15304,7 +15348,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx0011x1xxxxxxxxxx
sqdmlslt. */
- return 2244;
+ return 2280;
}
}
}
@@ -15315,7 +15359,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x01x1xxxxx001xxxxxxxxxxxxx
ldff1sh. */
- return 1741;
+ return 1780;
}
}
}
@@ -15341,7 +15385,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x0000101xxxxxxxxxxxxx
sxtb. */
- return 2018;
+ return 2054;
}
else
{
@@ -15349,7 +15393,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x1000101xxxxxxxxxxxxx
cls. */
- return 1380;
+ return 1432;
}
}
else
@@ -15360,7 +15404,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x0100101xxxxxxxxxxxxx
sxtw. */
- return 2020;
+ return 2056;
}
else
{
@@ -15368,7 +15412,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x1100101xxxxxxxxxxxxx
fabs. */
- return 1442;
+ return 1494;
}
}
}
@@ -15382,7 +15426,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x0010101xxxxxxxxxxxxx
sxth. */
- return 2019;
+ return 2055;
}
else
{
@@ -15390,7 +15434,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x1010101xxxxxxxxxxxxx
cnt. */
- return 1409;
+ return 1461;
}
}
else
@@ -15401,7 +15445,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x0110101xxxxxxxxxxxxx
abs. */
- return 1338;
+ return 1390;
}
else
{
@@ -15409,7 +15453,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x1110101xxxxxxxxxxxxx
not. */
- return 1817;
+ return 1853;
}
}
}
@@ -15426,7 +15470,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x0001101xxxxxxxxxxxxx
uxtb. */
- return 2081;
+ return 2117;
}
else
{
@@ -15434,7 +15478,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x1001101xxxxxxxxxxxxx
clz. */
- return 1381;
+ return 1433;
}
}
else
@@ -15445,7 +15489,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x0101101xxxxxxxxxxxxx
uxtw. */
- return 2083;
+ return 2119;
}
else
{
@@ -15453,7 +15497,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x1101101xxxxxxxxxxxxx
fneg. */
- return 1519;
+ return 1571;
}
}
}
@@ -15467,7 +15511,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x0011101xxxxxxxxxxxxx
uxth. */
- return 2082;
+ return 2118;
}
else
{
@@ -15475,7 +15519,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0x1011101xxxxxxxxxxxxx
cnot. */
- return 1408;
+ return 1460;
}
}
else
@@ -15484,7 +15528,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0xx111101xxxxxxxxxxxxx
neg. */
- return 1814;
+ return 1850;
}
}
}
@@ -15501,7 +15545,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0001xxxxx1010xxxxxxxxxxxx
adr. */
- return 1344;
+ return 1396;
}
else
{
@@ -15509,7 +15553,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0011xxxxx1010xxxxxxxxxxxx
adr. */
- return 1345;
+ return 1397;
}
}
else
@@ -15518,7 +15562,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01x1xxxxx1010xxxxxxxxxxxx
adr. */
- return 1346;
+ return 1398;
}
}
else
@@ -15531,7 +15575,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx101100xxxxxxxxxx
ftssel. */
- return 1545;
+ return 1597;
}
else
{
@@ -15539,7 +15583,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx101110xxxxxxxxxx
fexpa. */
- return 1489;
+ return 1541;
}
}
else
@@ -15548,7 +15592,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx1011x1xxxxxxxxxx
movprfx. */
- return 1807;
+ return 1843;
}
}
}
@@ -15565,7 +15609,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x0000xxxxx101xxxxxxxxxxxxx
ldnt1b. */
- return 2156;
+ return 2192;
}
else
{
@@ -15573,7 +15617,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x0100xxxxx101xxxxxxxxxxxxx
ldnt1h. */
- return 2159;
+ return 2195;
}
}
else
@@ -15584,7 +15628,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x0001xxxxx101xxxxxxxxxxxxx
ldff1sb. */
- return 1732;
+ return 1773;
}
else
{
@@ -15592,7 +15636,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x0101xxxxx101xxxxxxxxxxxxx
ldff1sh. */
- return 1744;
+ return 1783;
}
}
}
@@ -15604,7 +15648,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x001xxxxxx101xxxxxxxxxxxxx
ld1rb. */
- return 1600;
+ return 1652;
}
else
{
@@ -15612,7 +15656,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x011xxxxxx101xxxxxxxxxxxxx
ld1rh. */
- return 1604;
+ return 1656;
}
}
}
@@ -15635,7 +15679,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0x0000101xxxxxxxxxxxxx
urecpe. */
- return 2367;
+ return 2403;
}
else
{
@@ -15643,7 +15687,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0x1000101xxxxxxxxxxxxx
sqabs. */
- return 2229;
+ return 2265;
}
}
else
@@ -15654,7 +15698,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx00x100101xxxxxxxxxxxxx
sadalp. */
- return 2193;
+ return 2229;
}
else
{
@@ -15662,7 +15706,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx01x100101xxxxxxxxxxxxx
smaxp. */
- return 2207;
+ return 2243;
}
}
}
@@ -15672,7 +15716,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxx10101xxxxxxxxxxxxx
sminp. */
- return 2208;
+ return 2244;
}
}
else
@@ -15689,7 +15733,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx000001101xxxxxxxxxxxxx
ursqrte. */
- return 2372;
+ return 2408;
}
else
{
@@ -15697,7 +15741,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx010001101xxxxxxxxxxxxx
addp. */
- return 2118;
+ return 2154;
}
}
else
@@ -15706,7 +15750,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0x1001101xxxxxxxxxxxxx
sqneg. */
- return 2256;
+ return 2292;
}
}
else
@@ -15717,7 +15761,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx00x101101xxxxxxxxxxxxx
uadalp. */
- return 2324;
+ return 2360;
}
else
{
@@ -15725,7 +15769,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx01x101101xxxxxxxxxxxxx
umaxp. */
- return 2332;
+ return 2368;
}
}
}
@@ -15735,7 +15779,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxx11101xxxxxxxxxxxxx
uminp. */
- return 2333;
+ return 2369;
}
}
}
@@ -15747,7 +15791,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0x00xxxxx101xxxxxxxxxxxxx
ld1q. */
- return 3414;
+ return 3514;
}
else
{
@@ -15757,7 +15801,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0010xxxxx101xxxxxxxxxxxxx
ldff1sb. */
- return 1731;
+ return 1772;
}
else
{
@@ -15765,7 +15809,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0110xxxxx101xxxxxxxxxxxxx
ldff1sh. */
- return 1742;
+ return 1781;
}
}
}
@@ -15780,7 +15824,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10001x0001xxxxx101xxxxxxxxxxxxx
ldff1sb. */
- return 1733;
+ return 1774;
}
else
{
@@ -15794,7 +15838,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx1010x0xxxxxxxxxx
smlslb. */
- return 2215;
+ return 2251;
}
else
{
@@ -15802,7 +15846,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx1011x0xxxxxxxxxx
umlslb. */
- return 2340;
+ return 2376;
}
}
else
@@ -15813,7 +15857,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx1010x1xxxxxxxxxx
smlslt. */
- return 2218;
+ return 2254;
}
else
{
@@ -15821,7 +15865,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx1011x1xxxxxxxxxx
umlslt. */
- return 2343;
+ return 2379;
}
}
}
@@ -15831,7 +15875,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0101xxxxx101xxxxxxxxxxxxx
ldff1sh. */
- return 1745;
+ return 1784;
}
}
}
@@ -15843,7 +15887,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10001x0011xxxxx101xxxxxxxxxxxxx
prfh. */
- return 1847;
+ return 1883;
}
else
{
@@ -15857,7 +15901,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx1010x0xxxxxxxxxx
smlslb. */
- return 2216;
+ return 2252;
}
else
{
@@ -15865,7 +15909,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx1011x0xxxxxxxxxx
umlslb. */
- return 2341;
+ return 2377;
}
}
else
@@ -15876,7 +15920,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx1010x1xxxxxxxxxx
smlslt. */
- return 2219;
+ return 2255;
}
else
{
@@ -15884,7 +15928,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx1011x1xxxxxxxxxx
umlslt. */
- return 2344;
+ return 2380;
}
}
}
@@ -15894,7 +15938,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0111xxxxx101xxxxxxxxxxxxx
ldff1sh. */
- return 1743;
+ return 1782;
}
}
}
@@ -15916,7 +15960,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0xxxxx011xxxxxxxxxxxxx
mls. */
- return 1806;
+ return 1842;
}
else
{
@@ -15926,7 +15970,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x00x0xxxxx011xxxxxxxxxxxxx
ldff1b. */
- return 1689;
+ return 1741;
}
else
{
@@ -15934,7 +15978,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x01x0xxxxx011xxxxxxxxxxxxx
ldff1h. */
- return 1709;
+ return 1756;
}
}
}
@@ -15952,7 +15996,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx011000xxxxxxxxxx
sqdmlalb. */
- return 2234;
+ return 2270;
}
else
{
@@ -15960,7 +16004,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx011100xxxxxxxxxx
sqrdmlah. */
- return 2263;
+ return 2299;
}
}
else
@@ -15971,7 +16015,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx011010xxxxxxxxxx
sqdmlslb. */
- return 2241;
+ return 2277;
}
else
{
@@ -15979,7 +16023,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx011110xxxxxxxxxx
usdot. */
- return 3040;
+ return 3135;
}
}
}
@@ -15993,7 +16037,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx011001xxxxxxxxxx
sqdmlalt. */
- return 2238;
+ return 2274;
}
else
{
@@ -16001,7 +16045,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx011101xxxxxxxxxx
sqrdmlsh. */
- return 2267;
+ return 2303;
}
}
else
@@ -16010,7 +16054,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx011x11xxxxxxxxxx
sqdmlslt. */
- return 2245;
+ return 2281;
}
}
}
@@ -16022,7 +16066,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x00x0xxxxx011xxxxxxxxxxxxx
ldff1b. */
- return 1698;
+ return 1746;
}
else
{
@@ -16030,7 +16074,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x01x0xxxxx011xxxxxxxxxxxxx
ldff1h. */
- return 1717;
+ return 1761;
}
}
}
@@ -16051,7 +16095,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx011000xxxxxxxxxx
mul. */
- return 2176;
+ return 2212;
}
else
{
@@ -16059,7 +16103,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx011100xxxxxxxxxx
sqdmulh. */
- return 2249;
+ return 2285;
}
}
else
@@ -16068,7 +16112,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx011x10xxxxxxxxxx
smulh. */
- return 2221;
+ return 2257;
}
}
else
@@ -16081,7 +16125,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx011001xxxxxxxxxx
pmul. */
- return 2179;
+ return 2215;
}
else
{
@@ -16089,7 +16133,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx011101xxxxxxxxxx
sqrdmulh. */
- return 2271;
+ return 2307;
}
}
else
@@ -16098,7 +16142,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx1xxxxx011x11xxxxxxxxxx
umulh. */
- return 2346;
+ return 2382;
}
}
}
@@ -16110,7 +16154,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x00x1xxxxx011xxxxxxxxxxxxx
prfd. */
- return 1837;
+ return 1873;
}
else
{
@@ -16118,7 +16162,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x01x1xxxxx011xxxxxxxxxxxxx
ldff1h. */
- return 1710;
+ return 1757;
}
}
}
@@ -16130,7 +16174,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10001x00x1xxxxx011xxxxxxxxxxxxx
prfd. */
- return 1839;
+ return 1875;
}
else
{
@@ -16144,7 +16188,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx0110xxxxxxxxxxxx
cmla. */
- return 2128;
+ return 2164;
}
else
{
@@ -16152,7 +16196,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx0110xxxxxxxxxxxx
cmla. */
- return 2129;
+ return 2165;
}
}
else
@@ -16163,7 +16207,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx0111xxxxxxxxxxxx
sqrdcmlah. */
- return 2257;
+ return 2293;
}
else
{
@@ -16171,7 +16215,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx0111xxxxxxxxxxxx
sqrdcmlah. */
- return 2258;
+ return 2294;
}
}
}
@@ -16181,7 +16225,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x01x1xxxxx011xxxxxxxxxxxxx
ldff1h. */
- return 1718;
+ return 1762;
}
}
}
@@ -16199,7 +16243,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0xx0xxxxx111xxxxxxxxxxxxx
msb. */
- return 1809;
+ return 1845;
}
else
{
@@ -16219,7 +16263,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00010xxxx111000xxxxxxxxxx
cntb. */
- return 1410;
+ return 1462;
}
else
{
@@ -16227,7 +16271,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01010xxxx111000xxxxxxxxxx
cntw. */
- return 1414;
+ return 1466;
}
}
else
@@ -16238,7 +16282,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00110xxxx111000xxxxxxxxxx
cnth. */
- return 1412;
+ return 1464;
}
else
{
@@ -16246,7 +16290,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01110xxxx111000xxxxxxxxxx
cntd. */
- return 1411;
+ return 1463;
}
}
}
@@ -16260,7 +16304,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00011xxxx111000xxxxxxxxxx
incb. */
- return 1546;
+ return 1598;
}
else
{
@@ -16268,7 +16312,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01011xxxx111000xxxxxxxxxx
incw. */
- return 1554;
+ return 1606;
}
}
else
@@ -16279,7 +16323,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00111xxxx111000xxxxxxxxxx
inch. */
- return 1550;
+ return 1602;
}
else
{
@@ -16287,7 +16331,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01111xxxx111000xxxxxxxxxx
incd. */
- return 1548;
+ return 1600;
}
}
}
@@ -16304,7 +16348,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00010xxxx111100xxxxxxxxxx
sqincb. */
- return 1915;
+ return 1951;
}
else
{
@@ -16312,7 +16356,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01010xxxx111100xxxxxxxxxx
sqincw. */
- return 1927;
+ return 1963;
}
}
else
@@ -16323,7 +16367,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00110xxxx111100xxxxxxxxxx
sqinch. */
- return 1921;
+ return 1957;
}
else
{
@@ -16331,7 +16375,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01110xxxx111100xxxxxxxxxx
sqincd. */
- return 1918;
+ return 1954;
}
}
}
@@ -16345,7 +16389,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00011xxxx111100xxxxxxxxxx
sqincb. */
- return 1914;
+ return 1950;
}
else
{
@@ -16353,7 +16397,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01011xxxx111100xxxxxxxxxx
sqincw. */
- return 1926;
+ return 1962;
}
}
else
@@ -16364,7 +16408,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00111xxxx111100xxxxxxxxxx
sqinch. */
- return 1920;
+ return 1956;
}
else
{
@@ -16372,7 +16416,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01111xxxx111100xxxxxxxxxx
sqincd. */
- return 1917;
+ return 1953;
}
}
}
@@ -16390,7 +16434,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00010xxxx111x10xxxxxxxxxx
sqdecb. */
- return 1901;
+ return 1937;
}
else
{
@@ -16398,7 +16442,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01010xxxx111x10xxxxxxxxxx
sqdecw. */
- return 1913;
+ return 1949;
}
}
else
@@ -16409,7 +16453,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00110xxxx111x10xxxxxxxxxx
sqdech. */
- return 1907;
+ return 1943;
}
else
{
@@ -16417,7 +16461,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01110xxxx111x10xxxxxxxxxx
sqdecd. */
- return 1904;
+ return 1940;
}
}
}
@@ -16431,7 +16475,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00011xxxx111x10xxxxxxxxxx
sqdecb. */
- return 1900;
+ return 1936;
}
else
{
@@ -16439,7 +16483,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01011xxxx111x10xxxxxxxxxx
sqdecw. */
- return 1912;
+ return 1948;
}
}
else
@@ -16450,7 +16494,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00111xxxx111x10xxxxxxxxxx
sqdech. */
- return 1906;
+ return 1942;
}
else
{
@@ -16458,7 +16502,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01111xxxx111x10xxxxxxxxxx
sqdecd. */
- return 1903;
+ return 1939;
}
}
}
@@ -16478,7 +16522,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0001xxxxx111001xxxxxxxxxx
decb. */
- return 1421;
+ return 1473;
}
else
{
@@ -16486,7 +16530,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0101xxxxx111001xxxxxxxxxx
decw. */
- return 1429;
+ return 1481;
}
}
else
@@ -16497,7 +16541,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0011xxxxx111001xxxxxxxxxx
dech. */
- return 1425;
+ return 1477;
}
else
{
@@ -16505,7 +16549,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x0111xxxxx111001xxxxxxxxxx
decd. */
- return 1423;
+ return 1475;
}
}
}
@@ -16521,7 +16565,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00010xxxx111101xxxxxxxxxx
uqincb. */
- return 2063;
+ return 2099;
}
else
{
@@ -16529,7 +16573,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01010xxxx111101xxxxxxxxxx
uqincw. */
- return 2075;
+ return 2111;
}
}
else
@@ -16540,7 +16584,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00110xxxx111101xxxxxxxxxx
uqinch. */
- return 2069;
+ return 2105;
}
else
{
@@ -16548,7 +16592,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01110xxxx111101xxxxxxxxxx
uqincd. */
- return 2066;
+ return 2102;
}
}
}
@@ -16562,7 +16606,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00011xxxx111101xxxxxxxxxx
uqincb. */
- return 2064;
+ return 2100;
}
else
{
@@ -16570,7 +16614,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01011xxxx111101xxxxxxxxxx
uqincw. */
- return 2076;
+ return 2112;
}
}
else
@@ -16581,7 +16625,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00111xxxx111101xxxxxxxxxx
uqinch. */
- return 2070;
+ return 2106;
}
else
{
@@ -16589,7 +16633,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01111xxxx111101xxxxxxxxxx
uqincd. */
- return 2067;
+ return 2103;
}
}
}
@@ -16607,7 +16651,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00010xxxx111x11xxxxxxxxxx
uqdecb. */
- return 2049;
+ return 2085;
}
else
{
@@ -16615,7 +16659,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01010xxxx111x11xxxxxxxxxx
uqdecw. */
- return 2061;
+ return 2097;
}
}
else
@@ -16626,7 +16670,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00110xxxx111x11xxxxxxxxxx
uqdech. */
- return 2055;
+ return 2091;
}
else
{
@@ -16634,7 +16678,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01110xxxx111x11xxxxxxxxxx
uqdecd. */
- return 2052;
+ return 2088;
}
}
}
@@ -16648,7 +16692,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00011xxxx111x11xxxxxxxxxx
uqdecb. */
- return 2050;
+ return 2086;
}
else
{
@@ -16656,7 +16700,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01011xxxx111x11xxxxxxxxxx
uqdecw. */
- return 2062;
+ return 2098;
}
}
else
@@ -16667,7 +16711,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x00111xxxx111x11xxxxxxxxxx
uqdech. */
- return 2056;
+ return 2092;
}
else
{
@@ -16675,7 +16719,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x01111xxxx111x11xxxxxxxxxx
uqdecd. */
- return 2053;
+ return 2089;
}
}
}
@@ -16695,7 +16739,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x0000xxxxx111xxxxxxxxxxxxx
prfb. */
- return 1834;
+ return 1870;
}
else
{
@@ -16703,7 +16747,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x0100xxxxx111xxxxxxxxxxxxx
prfh. */
- return 1848;
+ return 1884;
}
}
else
@@ -16714,7 +16758,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x0001xxxxx111xxxxxxxxxxxxx
ldff1b. */
- return 1700;
+ return 1748;
}
else
{
@@ -16722,7 +16766,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x0101xxxxx111xxxxxxxxxxxxx
ldff1h. */
- return 1721;
+ return 1765;
}
}
}
@@ -16734,7 +16778,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x001xxxxxx111xxxxxxxxxxxxx
ld1rb. */
- return 1602;
+ return 1654;
}
else
{
@@ -16742,7 +16786,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x011xxxxxx111xxxxxxxxxxxxx
ld1rh. */
- return 1606;
+ return 1658;
}
}
}
@@ -16761,7 +16805,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx111x00xxxxxxxxxx
zipq1. */
- return 3396;
+ return 3496;
}
else
{
@@ -16771,7 +16815,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx111010xxxxxxxxxx
uzpq1. */
- return 3394;
+ return 3494;
}
else
{
@@ -16779,7 +16823,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx111110xxxxxxxxxx
tblq. */
- return 3391;
+ return 3491;
}
}
}
@@ -16791,7 +16835,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx111x01xxxxxxxxxx
zipq2. */
- return 3397;
+ return 3497;
}
else
{
@@ -16799,7 +16843,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0xx0xxxxx111x11xxxxxxxxxx
uzpq2. */
- return 3395;
+ return 3495;
}
}
}
@@ -16813,7 +16857,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0000xxxxx111xxxxxxxxxxxxx
prfb. */
- return 1836;
+ return 1872;
}
else
{
@@ -16821,7 +16865,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0100xxxxx111xxxxxxxxxxxxx
prfh. */
- return 1850;
+ return 1886;
}
}
else
@@ -16832,7 +16876,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0010xxxxx111xxxxxxxxxxxxx
ldff1b. */
- return 1699;
+ return 1747;
}
else
{
@@ -16840,7 +16884,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0110xxxxx111xxxxxxxxxxxxx
ldff1h. */
- return 1719;
+ return 1763;
}
}
}
@@ -16859,7 +16903,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x00x1xxxxx111x00xxxxxxxxxx
sqdmulh. */
- return 2246;
+ return 2282;
}
else
{
@@ -16867,7 +16911,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x00x1xxxxx111x10xxxxxxxxxx
mul. */
- return 2173;
+ return 2209;
}
}
else
@@ -16876,7 +16920,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x00x1xxxxx111xx1xxxxxxxxxx
sqrdmulh. */
- return 2268;
+ return 2304;
}
}
else
@@ -16887,7 +16931,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0001xxxxx111xxxxxxxxxxxxx
ldff1b. */
- return 1701;
+ return 1749;
}
else
{
@@ -16895,7 +16939,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0011xxxxx111xxxxxxxxxxxxx
prfd. */
- return 1840;
+ return 1876;
}
}
}
@@ -16913,7 +16957,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx1110x0xxxxxxxxxx
sqdmullb. */
- return 2250;
+ return 2286;
}
else
{
@@ -16923,7 +16967,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx111100xxxxxxxxxx
sqdmulh. */
- return 2247;
+ return 2283;
}
else
{
@@ -16931,7 +16975,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx111110xxxxxxxxxx
mul. */
- return 2174;
+ return 2210;
}
}
}
@@ -16943,7 +16987,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx1110x1xxxxxxxxxx
sqdmullt. */
- return 2253;
+ return 2289;
}
else
{
@@ -16951,7 +16995,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0101xxxxx1111x1xxxxxxxxxx
sqrdmulh. */
- return 2269;
+ return 2305;
}
}
}
@@ -16961,7 +17005,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0101xxxxx111xxxxxxxxxxxxx
ldff1h. */
- return 1722;
+ return 1766;
}
}
else
@@ -16976,7 +17020,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx1110x0xxxxxxxxxx
sqdmullb. */
- return 2251;
+ return 2287;
}
else
{
@@ -16986,7 +17030,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx111100xxxxxxxxxx
sqdmulh. */
- return 2248;
+ return 2284;
}
else
{
@@ -16994,7 +17038,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx111110xxxxxxxxxx
mul. */
- return 2175;
+ return 2211;
}
}
}
@@ -17006,7 +17050,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx1110x1xxxxxxxxxx
sqdmullt. */
- return 2254;
+ return 2290;
}
else
{
@@ -17014,7 +17058,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x0111xxxxx1111x1xxxxxxxxxx
sqrdmulh. */
- return 2270;
+ return 2306;
}
}
}
@@ -17024,7 +17068,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x0111xxxxx111xxxxxxxxxxxxx
ldff1h. */
- return 1720;
+ return 1764;
}
}
}
@@ -17054,7 +17098,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x0xx0xxxxx000xxxxxxxx0xxxx
cmphs. */
- return 1394;
+ return 1446;
}
else
{
@@ -17062,7 +17106,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x0xx0xxxxx000xxxxxxxx1xxxx
cmphi. */
- return 1391;
+ return 1443;
}
}
else
@@ -17073,7 +17117,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x00x0xxxxx000xxxxxxxxxxxxx
ld1rqb. */
- return 1608;
+ return 1660;
}
else
{
@@ -17081,7 +17125,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x01x0xxxxx000xxxxxxxxxxxxx
ld1rqh. */
- return 1612;
+ return 1664;
}
}
}
@@ -17095,7 +17139,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x0xx0xxxxx010xxxxxxxx0xxxx
cmpge. */
- return 1385;
+ return 1437;
}
else
{
@@ -17103,7 +17147,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x0xx0xxxxx010xxxxxxxx1xxxx
cmpgt. */
- return 1388;
+ return 1440;
}
}
else
@@ -17116,7 +17160,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0000xxxxx010xxxxxxxxxxxxx
ld1b. */
- return 1566;
+ return 1618;
}
else
{
@@ -17124,7 +17168,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0100xxxxx010xxxxxxxxxxxxx
ld1sw. */
- return 1646;
+ return 1698;
}
}
else
@@ -17135,7 +17179,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0010xxxxx010xxxxxxxxxxxxx
ld1b. */
- return 1568;
+ return 1620;
}
else
{
@@ -17143,7 +17187,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0110xxxxx010xxxxxxxxxxxxx
ld1h. */
- return 1588;
+ return 1640;
}
}
}
@@ -17161,7 +17205,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x0xx0xxxxx001xxxxxxxx0xxxx
cmpeq. */
- return 1382;
+ return 1434;
}
else
{
@@ -17169,7 +17213,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x0xx0xxxxx001xxxxxxxx1xxxx
cmpne. */
- return 1405;
+ return 1457;
}
}
else
@@ -17180,7 +17224,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x00x0xxxxx001xxxxxxxxxxxxx
ld1rqb. */
- return 1607;
+ return 1659;
}
else
{
@@ -17188,7 +17232,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x01x0xxxxx001xxxxxxxxxxxxx
ld1rqh. */
- return 1611;
+ return 1663;
}
}
}
@@ -17202,7 +17246,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x0xx0xxxxx011xxxxxxxx0xxxx
cmplt. */
- return 1403;
+ return 1455;
}
else
{
@@ -17210,7 +17254,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x0xx0xxxxx011xxxxxxxx1xxxx
cmple. */
- return 1397;
+ return 1449;
}
}
else
@@ -17223,7 +17267,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0000xxxxx011xxxxxxxxxxxxx
ldff1b. */
- return 1690;
+ return 1742;
}
else
{
@@ -17231,7 +17275,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0100xxxxx011xxxxxxxxxxxxx
ldff1sw. */
- return 1746;
+ return 1785;
}
}
else
@@ -17242,7 +17286,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0010xxxxx011xxxxxxxxxxxxx
ldff1b. */
- return 1694;
+ return 1744;
}
else
{
@@ -17250,7 +17294,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0110xxxxx011xxxxxxxxxxxxx
ldff1h. */
- return 1713;
+ return 1759;
}
}
}
@@ -17265,7 +17309,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx0xxxxx0xxxxxxxxxxxxxxx
fcmla. */
- return 1451;
+ return 1503;
}
else
{
@@ -17279,7 +17323,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0x00xxxxx000xxxxxxxxxxxxx
st3q. */
- return 3423;
+ return 3523;
}
else
{
@@ -17289,7 +17333,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0010xxxxx000xxxxxxxxxxxxx
st2q. */
- return 3422;
+ return 3522;
}
else
{
@@ -17297,7 +17341,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0110xxxxx000xxxxxxxxxxxxx
st4q. */
- return 3424;
+ return 3524;
}
}
}
@@ -17309,7 +17353,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0x00xxxxx010xxxxxxxxxxxxx
st1b. */
- return 1930;
+ return 1966;
}
else
{
@@ -17319,7 +17363,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0010xxxxx010xxxxxxxxxxxxx
st1b. */
- return 1934;
+ return 1970;
}
else
{
@@ -17327,7 +17371,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0110xxxxx010xxxxxxxxxxxxx
st1h. */
- return 1955;
+ return 1991;
}
}
}
@@ -17344,7 +17388,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0000xxxxx001xxxxxxxxxxxxx
stnt1b. */
- return 2308;
+ return 2344;
}
else
{
@@ -17352,7 +17396,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0100xxxxx001xxxxxxxxxxxxx
stnt1h. */
- return 2311;
+ return 2347;
}
}
else
@@ -17363,7 +17407,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0010xxxxx001xxxxxxxxxxxxx
stnt1b. */
- return 2307;
+ return 2343;
}
else
{
@@ -17371,7 +17415,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0110xxxxx001xxxxxxxxxxxxx
stnt1h. */
- return 2310;
+ return 2346;
}
}
}
@@ -17385,7 +17429,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0000xxxxx011xxxxxxxxxxxxx
stnt1b. */
- return 2000;
+ return 2036;
}
else
{
@@ -17393,7 +17437,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0100xxxxx011xxxxxxxxxxxxx
stnt1h. */
- return 2004;
+ return 2040;
}
}
else
@@ -17404,7 +17448,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0010xxxxx011xxxxxxxxxxxxx
st3b. */
- return 1984;
+ return 2020;
}
else
{
@@ -17412,7 +17456,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0110xxxxx011xxxxxxxxxxxxx
st3h. */
- return 1988;
+ return 2024;
}
}
}
@@ -17434,7 +17478,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x01001x0xx0xxxxx100xxxxxxxx0xxxx
cmpge. */
- return 1386;
+ return 1438;
}
else
{
@@ -17442,7 +17486,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x01001x0xx0xxxxx100xxxxxxxx1xxxx
cmpgt. */
- return 1389;
+ return 1441;
}
}
else
@@ -17455,7 +17499,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x0xx0xxxxx110xxxxxxxx0xxxx
cmphs. */
- return 1395;
+ return 1447;
}
else
{
@@ -17463,7 +17507,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x0xx0xxxxx110xxxxxxxx1xxxx
cmphi. */
- return 1392;
+ return 1444;
}
}
else
@@ -17476,7 +17520,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0000xxxxx110xxxxxxxxxxxxx
ldnt1b. */
- return 1781;
+ return 1817;
}
else
{
@@ -17484,7 +17528,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0100xxxxx110xxxxxxxxxxxxx
ldnt1h. */
- return 1785;
+ return 1821;
}
}
else
@@ -17495,7 +17539,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0010xxxxx110xxxxxxxxxxxxx
ld3b. */
- return 1673;
+ return 1725;
}
else
{
@@ -17503,7 +17547,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0110xxxxx110xxxxxxxxxxxxx
ld3h. */
- return 1677;
+ return 1729;
}
}
}
@@ -17523,7 +17567,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx00x00x1x0xxxxxxxxxxxxx
fcadd. */
- return 1450;
+ return 1502;
}
else
{
@@ -17531,7 +17575,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx01x00x1x0xxxxxxxxxxxxx
faddp. */
- return 2134;
+ return 2170;
}
}
else
@@ -17542,7 +17586,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx0xx1001x0xxxxxxxxxxxxx
fmaxnmp. */
- return 2142;
+ return 2178;
}
else
{
@@ -17550,7 +17594,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx0xx1011x0xxxxxxxxxxxxx
fminnmp. */
- return 2144;
+ return 2180;
}
}
}
@@ -17562,7 +17606,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx0xxx101x0xxxxxxxxxxxxx
fmaxp. */
- return 2143;
+ return 2179;
}
else
{
@@ -17570,7 +17614,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx0xxx111x0xxxxxxxxxxxxx
fminp. */
- return 2145;
+ return 2181;
}
}
}
@@ -17584,7 +17628,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0000xxxxx1x0xxxxxxxxxxxxx
st1b. */
- return 1931;
+ return 1967;
}
else
{
@@ -17592,7 +17636,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0100xxxxx1x0xxxxxxxxxxxxx
st1h. */
- return 1950;
+ return 1986;
}
}
else
@@ -17603,7 +17647,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0010xxxxx1x0xxxxxxxxxxxxx
st1b. */
- return 1935;
+ return 1971;
}
else
{
@@ -17611,7 +17655,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0110xxxxx1x0xxxxxxxxxxxxx
st1h. */
- return 1956;
+ return 1992;
}
}
}
@@ -17631,7 +17675,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x0xx0xxxxx101xxxxxxxx0xxxx
cmpeq. */
- return 1383;
+ return 1435;
}
else
{
@@ -17639,7 +17683,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x0xx0xxxxx101xxxxxxxx1xxxx
cmpne. */
- return 1406;
+ return 1458;
}
}
else
@@ -17654,7 +17698,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x00000xxxx101xxxxxxxxxxxxx
ld1b. */
- return 1573;
+ return 1625;
}
else
{
@@ -17662,7 +17706,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x01000xxxx101xxxxxxxxxxxxx
ld1sw. */
- return 1651;
+ return 1703;
}
}
else
@@ -17673,7 +17717,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x00100xxxx101xxxxxxxxxxxxx
ld1b. */
- return 1575;
+ return 1627;
}
else
{
@@ -17681,7 +17725,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x01100xxxx101xxxxxxxxxxxxx
ld1h. */
- return 1596;
+ return 1648;
}
}
}
@@ -17695,7 +17739,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x00001xxxx101xxxxxxxxxxxxx
ldnf1b. */
- return 1765;
+ return 1801;
}
else
{
@@ -17703,7 +17747,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x01001xxxx101xxxxxxxxxxxxx
ldnf1sw. */
- return 1778;
+ return 1814;
}
}
else
@@ -17714,7 +17758,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x00101xxxx101xxxxxxxxxxxxx
ldnf1b. */
- return 1767;
+ return 1803;
}
else
{
@@ -17722,7 +17766,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x01101xxxx101xxxxxxxxxxxxx
ldnf1h. */
- return 1771;
+ return 1807;
}
}
}
@@ -17744,7 +17788,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx0x0000101xxxxxxxxxxxxx
faddqv. */
- return 3384;
+ return 3484;
}
else
{
@@ -17752,7 +17796,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx0x1000101xxxxxxxxxxxxx
fcvtnt. */
- return 2137;
+ return 2173;
}
}
else
@@ -17761,7 +17805,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx0xx100101xxxxxxxxxxxxx
fmaxnmqv. */
- return 3385;
+ return 3485;
}
}
else
@@ -17776,7 +17820,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0000xx010101xxxxxxxxxxxxx
fcvtxnt. */
- return 2140;
+ return 2176;
}
else
{
@@ -17784,7 +17828,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0100xx010101xxxxxxxxxxxxx
bfcvtnt. */
- return 3069;
+ return 3164;
}
}
else
@@ -17793,7 +17837,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0x10xx010101xxxxxxxxxxxxx
fcvtnt. */
- return 2138;
+ return 2174;
}
}
else
@@ -17802,7 +17846,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx0xx110101xxxxxxxxxxxxx
fmaxqv. */
- return 3386;
+ return 3486;
}
}
}
@@ -17816,7 +17860,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx0xx001101xxxxxxxxxxxxx
fcvtlt. */
- return 2135;
+ return 2171;
}
else
{
@@ -17824,7 +17868,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx0xx101101xxxxxxxxxxxxx
fminnmqv. */
- return 3387;
+ return 3487;
}
}
else
@@ -17835,7 +17879,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx0xx011101xxxxxxxxxxxxx
fcvtlt. */
- return 2136;
+ return 2172;
}
else
{
@@ -17843,7 +17887,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx0xx111101xxxxxxxxxxxxx
fminqv. */
- return 3388;
+ return 3488;
}
}
}
@@ -17858,7 +17902,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0000xxxxx101xxxxxxxxxxxxx
st1b. */
- return 1932;
+ return 1968;
}
else
{
@@ -17866,7 +17910,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0100xxxxx101xxxxxxxxxxxxx
st1h. */
- return 1951;
+ return 1987;
}
}
else
@@ -17877,7 +17921,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0010xxxxx101xxxxxxxxxxxxx
st1b. */
- return 1939;
+ return 1975;
}
else
{
@@ -17885,7 +17929,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0110xxxxx101xxxxxxxxxxxxx
st1h. */
- return 1960;
+ return 1996;
}
}
}
@@ -17903,7 +17947,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x0xx0xxxxx111xxxxxxxx0xxxx
cmplo. */
- return 1399;
+ return 1451;
}
else
{
@@ -17911,7 +17955,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x0xx0xxxxx111xxxxxxxx1xxxx
cmpls. */
- return 1401;
+ return 1453;
}
}
else
@@ -17926,7 +17970,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x00000xxxx111xxxxxxxxxxxxx
ldnt1b. */
- return 1782;
+ return 1818;
}
else
{
@@ -17934,7 +17978,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x01000xxxx111xxxxxxxxxxxxx
ldnt1h. */
- return 1786;
+ return 1822;
}
}
else
@@ -17945,7 +17989,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x00100xxxx111xxxxxxxxxxxxx
ld3b. */
- return 1674;
+ return 1726;
}
else
{
@@ -17953,7 +17997,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x01100xxxx111xxxxxxxxxxxxx
ld3h. */
- return 1678;
+ return 1730;
}
}
}
@@ -17963,7 +18007,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0xx01xxxx111xxxxxxxxxxxxx
ld2q. */
- return 3415;
+ return 3515;
}
}
}
@@ -17977,7 +18021,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0x000xxxx111xxxxxxxxxxxxx
st1b. */
- return 1937;
+ return 1973;
}
else
{
@@ -17987,7 +18031,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x00100xxxx111xxxxxxxxxxxxx
st1b. */
- return 1940;
+ return 1976;
}
else
{
@@ -17995,7 +18039,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x01100xxxx111xxxxxxxxxxxxx
st1h. */
- return 1961;
+ return 1997;
}
}
}
@@ -18009,7 +18053,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x00001xxxx111xxxxxxxxxxxxx
stnt1b. */
- return 2001;
+ return 2037;
}
else
{
@@ -18017,7 +18061,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x01001xxxx111xxxxxxxxxxxxx
stnt1h. */
- return 2005;
+ return 2041;
}
}
else
@@ -18028,7 +18072,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x00101xxxx111xxxxxxxxxxxxx
st3b. */
- return 1985;
+ return 2021;
}
else
{
@@ -18036,7 +18080,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x01101xxxx111xxxxxxxxxxxxx
st3h. */
- return 1989;
+ return 2025;
}
}
}
@@ -18059,7 +18103,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x0xx1xxxxxxx0xxxxxxxx0xxxx
cmphs. */
- return 1396;
+ return 1448;
}
else
{
@@ -18067,7 +18111,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x0xx1xxxxxxx0xxxxxxxx1xxxx
cmphi. */
- return 1393;
+ return 1445;
}
}
else
@@ -18082,7 +18126,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x00x1xxxxx000xxxxxxxxxxxxx
ld1rob. */
- return 3045;
+ return 3140;
}
else
{
@@ -18090,7 +18134,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x01x1xxxxx000xxxxxxxxxxxxx
ld1roh. */
- return 3046;
+ return 3141;
}
}
else
@@ -18099,7 +18143,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0xx1xxxxx100xxxxxxxxxxxxx
ld2q. */
- return 3418;
+ return 3518;
}
}
else
@@ -18114,7 +18158,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0001xxxxx010xxxxxxxxxxxxx
ld1b. */
- return 1567;
+ return 1619;
}
else
{
@@ -18122,7 +18166,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0101xxxxx010xxxxxxxxxxxxx
ld1h. */
- return 1587;
+ return 1639;
}
}
else
@@ -18133,7 +18177,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0011xxxxx010xxxxxxxxxxxxx
ld1b. */
- return 1569;
+ return 1621;
}
else
{
@@ -18141,7 +18185,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0111xxxxx010xxxxxxxxxxxxx
ld1h. */
- return 1589;
+ return 1641;
}
}
}
@@ -18155,7 +18199,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0001xxxxx110xxxxxxxxxxxxx
ld2b. */
- return 1665;
+ return 1717;
}
else
{
@@ -18163,7 +18207,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0101xxxxx110xxxxxxxxxxxxx
ld2h. */
- return 1669;
+ return 1721;
}
}
else
@@ -18174,7 +18218,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0011xxxxx110xxxxxxxxxxxxx
ld4b. */
- return 1681;
+ return 1733;
}
else
{
@@ -18182,7 +18226,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0111xxxxx110xxxxxxxxxxxxx
ld4h. */
- return 1685;
+ return 1737;
}
}
}
@@ -18207,7 +18251,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x00x1xxxxx000x00xxxxxxxxxx
fmla. */
- return 1504;
+ return 1556;
}
else
{
@@ -18215,7 +18259,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x00x1xxxxx000x10xxxxxxxxxx
bfmla. */
- return 3292;
+ return 3392;
}
}
else
@@ -18226,7 +18270,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x00x1xxxxx000x01xxxxxxxxxx
fmls. */
- return 1508;
+ return 1560;
}
else
{
@@ -18234,7 +18278,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x00x1xxxxx000x11xxxxxxxxxx
bfmls. */
- return 3293;
+ return 3393;
}
}
}
@@ -18244,7 +18288,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x00x1xxxxx000xxxxxxxxxxxxx
st2q. */
- return 3425;
+ return 3525;
}
}
else
@@ -18261,7 +18305,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx0000x0xxxxxxxxxx
fmla. */
- return 1505;
+ return 1557;
}
else
{
@@ -18269,7 +18313,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx0000x1xxxxxxxxxx
fmls. */
- return 1509;
+ return 1561;
}
}
else
@@ -18278,7 +18322,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx0001xxxxxxxxxxxx
fcmla. */
- return 1452;
+ return 1504;
}
}
else
@@ -18287,7 +18331,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0101xxxxx000xxxxxxxxxxxxx
st3q. */
- return 3426;
+ return 3526;
}
}
else
@@ -18302,7 +18346,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0111xxxxx0000x0xxxxxxxxxx
fmla. */
- return 1506;
+ return 1558;
}
else
{
@@ -18310,7 +18354,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0111xxxxx0000x1xxxxxxxxxx
fmls. */
- return 1510;
+ return 1562;
}
}
else
@@ -18319,7 +18363,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0111xxxxx0001xxxxxxxxxxxx
fcmla. */
- return 1453;
+ return 1505;
}
}
else
@@ -18328,7 +18372,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0111xxxxx000xxxxxxxxxxxxx
st4q. */
- return 3427;
+ return 3527;
}
}
}
@@ -18349,7 +18393,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0001xxxxx0100x0xxxxxxxxxx
fdot. */
- return 2473;
+ return 2499;
}
else
{
@@ -18357,7 +18401,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0001xxxxx0100x1xxxxxxxxxx
fdot. */
- return 3514;
+ return 3614;
}
}
else
@@ -18366,7 +18410,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0001xxxxx0101xxxxxxxxxxxx
fmlalb. */
- return 3516;
+ return 3616;
}
}
else
@@ -18375,7 +18419,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0001xxxxx010xxxxxxxxxxxxx
st1b. */
- return 1933;
+ return 1969;
}
}
else
@@ -18390,7 +18434,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx0100x0xxxxxxxxxx
fmlalb. */
- return 2146;
+ return 2182;
}
else
{
@@ -18398,7 +18442,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx0100x1xxxxxxxxxx
fmlalt. */
- return 2148;
+ return 2184;
}
}
else
@@ -18407,7 +18451,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx0101xxxxxxxxxxxx
fmlalt. */
- return 3526;
+ return 3626;
}
}
else
@@ -18416,7 +18460,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0101xxxxx010xxxxxxxxxxxxx
st1h. */
- return 1952;
+ return 1988;
}
}
}
@@ -18432,7 +18476,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0011xxxxx010xx0xxxxxxxxxx
bfdot. */
- return 3066;
+ return 3161;
}
else
{
@@ -18440,7 +18484,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0011xxxxx010xx1xxxxxxxxxx
fdot. */
- return 3512;
+ return 3612;
}
}
else
@@ -18449,7 +18493,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0011xxxxx010xxxxxxxxxxxxx
st1b. */
- return 1936;
+ return 1972;
}
}
else
@@ -18462,7 +18506,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0111xxxxx010xx0xxxxxxxxxx
bfmlalb. */
- return 3073;
+ return 3168;
}
else
{
@@ -18470,7 +18514,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0111xxxxx010xx1xxxxxxxxxx
bfmlalt. */
- return 3072;
+ return 3167;
}
}
else
@@ -18479,7 +18523,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0111xxxxx010xxxxxxxxxxxxx
st1h. */
- return 1957;
+ return 1993;
}
}
}
@@ -18503,7 +18547,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0001xxxxx100000xxxxxxxxxx
fdot. */
- return 2474;
+ return 2500;
}
else
{
@@ -18511,7 +18555,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0001xxxxx100010xxxxxxxxxx
fmlallbb. */
- return 3517;
+ return 3617;
}
}
else
@@ -18520,7 +18564,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0001xxxxx1000x1xxxxxxxxxx
fdot. */
- return 3513;
+ return 3613;
}
}
else
@@ -18529,7 +18573,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0001xxxxx1100xxxxxxxxxxxx
fmlallbb. */
- return 3518;
+ return 3618;
}
}
else
@@ -18538,7 +18582,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0001xxxxx1x01xxxxxxxxxxxx
fmlallbt. */
- return 3519;
+ return 3619;
}
}
else
@@ -18557,7 +18601,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx100000xxxxxxxxxx
fmlalb. */
- return 2147;
+ return 2183;
}
else
{
@@ -18565,7 +18609,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx100010xxxxxxxxxx
fmlalb. */
- return 3515;
+ return 3615;
}
}
else
@@ -18574,7 +18618,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx1000x1xxxxxxxxxx
fmlalt. */
- return 2149;
+ return 2185;
}
}
else
@@ -18583,7 +18627,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx1100xxxxxxxxxxxx
fmlalltb. */
- return 3522;
+ return 3622;
}
}
else
@@ -18592,7 +18636,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx1x01xxxxxxxxxxxx
fmlalt. */
- return 3525;
+ return 3625;
}
}
else
@@ -18601,7 +18645,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0101xxxxx1x0xxxxxxxxxxxxx
st1h. */
- return 1953;
+ return 1989;
}
}
}
@@ -18617,7 +18661,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0011xxxxx100xx0xxxxxxxxxx
bfdot. */
- return 3065;
+ return 3160;
}
else
{
@@ -18625,7 +18669,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0011xxxxx100xx1xxxxxxxxxx
fdot. */
- return 3511;
+ return 3611;
}
}
else
@@ -18634,7 +18678,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0011xxxxx110xxxxxxxxxxxxx
fmlallbt. */
- return 3520;
+ return 3620;
}
}
else
@@ -18649,7 +18693,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0111xxxxx100xx0xxxxxxxxxx
bfmlalb. */
- return 3071;
+ return 3166;
}
else
{
@@ -18657,7 +18701,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0111xxxxx100xx1xxxxxxxxxx
bfmlalt. */
- return 3070;
+ return 3165;
}
}
else
@@ -18666,7 +18710,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0111xxxxx110xxxxxxxxxxxxx
fmlalltt. */
- return 3524;
+ return 3624;
}
}
else
@@ -18675,7 +18719,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0111xxxxx1x0xxxxxxxxxxxxx
st1h. */
- return 1958;
+ return 1994;
}
}
}
@@ -18694,7 +18738,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x0xx1xxxxxxx1xxxxxxxx0xxxx
cmplo. */
- return 1400;
+ return 1452;
}
else
{
@@ -18702,7 +18746,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x0xx1xxxxxxx1xxxxxxxx1xxxx
cmpls. */
- return 1402;
+ return 1454;
}
}
else
@@ -18717,7 +18761,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x00x1xxxxx001xxxxxxxxxxxxx
ld1rob. */
- return 3049;
+ return 3144;
}
else
{
@@ -18725,7 +18769,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x01x1xxxxx001xxxxxxxxxxxxx
ld1roh. */
- return 3050;
+ return 3145;
}
}
else
@@ -18740,7 +18784,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x00010xxxx101xxxxxxxxxxxxx
ld1b. */
- return 1574;
+ return 1626;
}
else
{
@@ -18748,7 +18792,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x01010xxxx101xxxxxxxxxxxxx
ld1h. */
- return 1595;
+ return 1647;
}
}
else
@@ -18759,7 +18803,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x00110xxxx101xxxxxxxxxxxxx
ld1b. */
- return 1576;
+ return 1628;
}
else
{
@@ -18767,7 +18811,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x01110xxxx101xxxxxxxxxxxxx
ld1h. */
- return 1597;
+ return 1649;
}
}
}
@@ -18781,7 +18825,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x00011xxxx101xxxxxxxxxxxxx
ldnf1b. */
- return 1766;
+ return 1802;
}
else
{
@@ -18789,7 +18833,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x01011xxxx101xxxxxxxxxxxxx
ldnf1h. */
- return 1770;
+ return 1806;
}
}
else
@@ -18800,7 +18844,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x00111xxxx101xxxxxxxxxxxxx
ldnf1b. */
- return 1768;
+ return 1804;
}
else
{
@@ -18808,7 +18852,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x01111xxxx101xxxxxxxxxxxxx
ldnf1h. */
- return 1772;
+ return 1808;
}
}
}
@@ -18826,7 +18870,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0001xxxxx011xxxxxxxxxxxxx
ldff1b. */
- return 1692;
+ return 1743;
}
else
{
@@ -18834,7 +18878,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0101xxxxx011xxxxxxxxxxxxx
ldff1h. */
- return 1711;
+ return 1758;
}
}
else
@@ -18845,7 +18889,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0011xxxxx011xxxxxxxxxxxxx
ldff1b. */
- return 1696;
+ return 1745;
}
else
{
@@ -18853,7 +18897,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0111xxxxx011xxxxxxxxxxxxx
ldff1h. */
- return 1715;
+ return 1760;
}
}
}
@@ -18867,7 +18911,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0001xxxxx111xxxxxxxxxxxxx
ld2b. */
- return 1666;
+ return 1718;
}
else
{
@@ -18875,7 +18919,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0101xxxxx111xxxxxxxxxxxxx
ld2h. */
- return 1670;
+ return 1722;
}
}
else
@@ -18886,7 +18930,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0011xxxxx111xxxxxxxxxxxxx
ld4b. */
- return 1682;
+ return 1734;
}
else
{
@@ -18894,7 +18938,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x0111xxxxx111xxxxxxxxxxxxx
ld4h. */
- return 1686;
+ return 1738;
}
}
}
@@ -18919,7 +18963,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x00x1xxxxx001x00xxxxxxxxxx
fmul. */
- return 1515;
+ return 1567;
}
else
{
@@ -18929,7 +18973,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx001x00xxxxxxxxxx
fmul. */
- return 1516;
+ return 1568;
}
else
{
@@ -18937,7 +18981,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0111xxxxx001x00xxxxxxxxxx
fmul. */
- return 1517;
+ return 1569;
}
}
}
@@ -18947,7 +18991,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx1xxxxx001x10xxxxxxxxxx
bfmul. */
- return 3297;
+ return 3397;
}
}
else
@@ -18956,7 +19000,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0xx1xxxxx001xx1xxxxxxxxxx
fclamp. */
- return 2475;
+ return 2501;
}
}
else
@@ -18965,7 +19009,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0xx1xxxxx001xxxxxxxxxxxxx
st1q. */
- return 3421;
+ return 3521;
}
}
else
@@ -18980,7 +19024,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0001xxxxx1010xxxxxxxxxxxx
fmlalltb. */
- return 3521;
+ return 3621;
}
else
{
@@ -18988,7 +19032,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0001xxxxx1011xxxxxxxxxxxx
fmlalltt. */
- return 3523;
+ return 3623;
}
}
else
@@ -19001,7 +19045,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx101xx0xxxxxxxxxx
fmlslb. */
- return 2151;
+ return 2187;
}
else
{
@@ -19009,7 +19053,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx101xx1xxxxxxxxxx
fmlslt. */
- return 2153;
+ return 2189;
}
}
else
@@ -19018,7 +19062,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0101xxxxx101xxxxxxxxxxxxx
st1h. */
- return 1954;
+ return 1990;
}
}
}
@@ -19030,7 +19074,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0011xxxxx101xxxxxxxxxxxxx
st1b. */
- return 1941;
+ return 1977;
}
else
{
@@ -19042,7 +19086,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0111xxxxx101xx0xxxxxxxxxx
bfmlslb. */
- return 2470;
+ return 2496;
}
else
{
@@ -19050,7 +19094,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0111xxxxx101xx1xxxxxxxxxx
bfmlslt. */
- return 2472;
+ return 2498;
}
}
else
@@ -19059,7 +19103,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0111xxxxx101xxxxxxxxxxxxx
st1h. */
- return 1962;
+ return 1998;
}
}
}
@@ -19077,7 +19121,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0001xxxxx011xxxxxxxxxxxxx
st2b. */
- return 1976;
+ return 2012;
}
else
{
@@ -19089,7 +19133,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx011xx0xxxxxxxxxx
fmlslb. */
- return 2150;
+ return 2186;
}
else
{
@@ -19097,7 +19141,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx011xx1xxxxxxxxxx
fmlslt. */
- return 2152;
+ return 2188;
}
}
else
@@ -19106,7 +19150,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0101xxxxx011xxxxxxxxxxxxx
st2h. */
- return 1980;
+ return 2016;
}
}
}
@@ -19118,7 +19162,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x0011xxxxx011xxxxxxxxxxxxx
st4b. */
- return 1992;
+ return 2028;
}
else
{
@@ -19130,7 +19174,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0111xxxxx011xx0xxxxxxxxxx
bfmlslb. */
- return 2469;
+ return 2495;
}
else
{
@@ -19138,7 +19182,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0111xxxxx011xx1xxxxxxxxxx
bfmlslt. */
- return 2471;
+ return 2497;
}
}
else
@@ -19147,7 +19191,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x0111xxxxx011xxxxxxxxxxxxx
st4h. */
- return 1996;
+ return 2032;
}
}
}
@@ -19158,21 +19202,43 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 23) & 0x1) == 0)
{
- if (((word >> 20) & 0x1) == 0)
+ if (((word >> 31) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x11001x00010xxxx111xxxxxxxxxxxxx
- st1b. */
- return 1938;
+ if (((word >> 10) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 011001x0001xxxxx111xx0xxxxxxxxxx
+ fmmla. */
+ return 3181;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 011001x0001xxxxx111xx1xxxxxxxxxx
+ fmmla. */
+ return 3179;
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- x11001x00011xxxx111xxxxxxxxxxxxx
- st2b. */
- return 1977;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 111001x00010xxxx111xxxxxxxxxxxxx
+ st1b. */
+ return 1974;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 111001x00011xxxx111xxxxxxxxxxxxx
+ st2b. */
+ return 2013;
+ }
}
}
else
@@ -19183,7 +19249,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0101xxxxx111xxxxxxxxxxxxx
fmmla. */
- return 3043;
+ return 3138;
}
else
{
@@ -19193,7 +19259,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x01010xxxx111xxxxxxxxxxxxx
st1h. */
- return 1959;
+ return 1995;
}
else
{
@@ -19201,7 +19267,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x01011xxxx111xxxxxxxxxxxxx
st2h. */
- return 1981;
+ return 2017;
}
}
}
@@ -19212,11 +19278,22 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 31) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- 011001x0011xxxxx111xxxxxxxxxxxxx
- bfmmla. */
- return 3067;
+ if (((word >> 10) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 011001x0011xxxxx111xx0xxxxxxxxxx
+ fmmla. */
+ return 3183;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ 011001x0011xxxxx111xx1xxxxxxxxxx
+ bfmmla. */
+ return 3162;
+ }
}
else
{
@@ -19226,7 +19303,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x00110xxxx111xxxxxxxxxxxxx
st1b. */
- return 1942;
+ return 1978;
}
else
{
@@ -19234,7 +19311,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x00111xxxx111xxxxxxxxxxxxx
st4b. */
- return 1993;
+ return 2029;
}
}
}
@@ -19246,7 +19323,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x0111xxxxx111xxxxxxxxxxxxx
fmmla. */
- return 3044;
+ return 3139;
}
else
{
@@ -19256,7 +19333,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x01110xxxx111xxxxxxxxxxxxx
st1h. */
- return 1963;
+ return 1999;
}
else
{
@@ -19264,7 +19341,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x01111xxxx111xxxxxxxxxxxxx
st4h. */
- return 1997;
+ return 2033;
}
}
}
@@ -19296,7 +19373,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x10000xxxxxxxxxxxxxxxxxxxx
orr. */
- return 1821;
+ return 1857;
}
else
{
@@ -19304,7 +19381,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x11000xxxxxxxxxxxxxxxxxxxx
and. */
- return 1348;
+ return 1400;
}
}
else
@@ -19315,7 +19392,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x10100xxxxxxxxxxxxxxxxxxxx
eor. */
- return 1435;
+ return 1487;
}
else
{
@@ -19323,7 +19400,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x11100xxxxxxxxxxxxxxxxxxxx
dupm. */
- return 1433;
+ return 1485;
}
}
}
@@ -19335,7 +19412,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx01xxxx0xxxxxxxxxxxxxxx
cpy. */
- return 1418;
+ return 1470;
}
else
{
@@ -19343,7 +19420,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx01xxxx1xxxxxxxxxxxxxxx
fcpy. */
- return 1465;
+ return 1517;
}
}
}
@@ -19363,7 +19440,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1001xxxxx000xxxxxxxxxxxxx
ext. */
- return 1440;
+ return 1492;
}
else
{
@@ -19375,7 +19452,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1101xxxxx000x00xxxxxxxxxx
zip1. */
- return 3053;
+ return 3148;
}
else
{
@@ -19385,7 +19462,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1101xxxxx000010xxxxxxxxxx
uzp1. */
- return 3055;
+ return 3150;
}
else
{
@@ -19393,7 +19470,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1101xxxxx000110xxxxxxxxxx
trn1. */
- return 3057;
+ return 3152;
}
}
}
@@ -19405,7 +19482,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1101xxxxx000x01xxxxxxxxxx
zip2. */
- return 3054;
+ return 3149;
}
else
{
@@ -19415,7 +19492,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1101xxxxx000011xxxxxxxxxx
uzp2. */
- return 3056;
+ return 3151;
}
else
{
@@ -19423,7 +19500,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1101xxxxx000111xxxxxxxxxx
trn2. */
- return 3058;
+ return 3153;
}
}
}
@@ -19435,7 +19512,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1x11xxxxx000xxxxxxxxxxxxx
ext. */
- return 2133;
+ return 2169;
}
}
else
@@ -19452,7 +19529,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1x0000100xxxxxxxxxxxxx
cpy. */
- return 1416;
+ return 1468;
}
else
{
@@ -19460,7 +19537,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1x1000100xxxxxxxxxxxxx
clasta. */
- return 1374;
+ return 1426;
}
}
else
@@ -19471,7 +19548,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1x0100100xxxxxxxxxxxxx
revb. */
- return 1870;
+ return 1906;
}
else
{
@@ -19479,7 +19556,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1x1100100xxxxxxxxxxxxx
splice. */
- return 1897;
+ return 1933;
}
}
}
@@ -19493,7 +19570,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1x0010100xxxxxxxxxxxxx
lasta. */
- return 1562;
+ return 1614;
}
else
{
@@ -19501,7 +19578,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1x1010100xxxxxxxxxxxxx
clasta. */
- return 1375;
+ return 1427;
}
}
else
@@ -19512,7 +19589,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1x0110100xxxxxxxxxxxxx
revw. */
- return 1872;
+ return 1908;
}
else
{
@@ -19520,7 +19597,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1x1110100xxxxxxxxxxxxx
revd. */
- return 2463;
+ return 2489;
}
}
}
@@ -19537,7 +19614,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1x0001100xxxxxxxxxxxxx
compact. */
- return 1415;
+ return 1467;
}
else
{
@@ -19545,7 +19622,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1x1001100xxxxxxxxxxxxx
clastb. */
- return 1377;
+ return 1429;
}
}
else
@@ -19556,7 +19633,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1x0101100xxxxxxxxxxxxx
revh. */
- return 1871;
+ return 1907;
}
else
{
@@ -19564,7 +19641,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1x1101100xxxxxxxxxxxxx
splice. */
- return 2228;
+ return 2264;
}
}
}
@@ -19578,7 +19655,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1x0011100xxxxxxxxxxxxx
lastb. */
- return 1564;
+ return 1616;
}
else
{
@@ -19586,7 +19663,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1x1011100xxxxxxxxxxxxx
clastb. */
- return 1378;
+ return 1430;
}
}
else
@@ -19595,7 +19672,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1xx111100xxxxxxxxxxxxx
rbit. */
- return 1863;
+ return 1899;
}
}
}
@@ -19615,7 +19692,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1xxxxx001000xxxxxxxxxx
dup. */
- return 1431;
+ return 1483;
}
else
{
@@ -19623,7 +19700,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1xxxxx001100xxxxxxxxxx
tbl. */
- return 2021;
+ return 2057;
}
}
else
@@ -19634,7 +19711,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1xxxxx001010xxxxxxxxxx
tbl. */
- return 2317;
+ return 2353;
}
else
{
@@ -19652,7 +19729,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx100000001110xxxxxxxxxx
dup. */
- return 1430;
+ return 1482;
}
else
{
@@ -19660,7 +19737,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx110000001110xxxxxxxxxx
sunpklo. */
- return 2017;
+ return 2053;
}
}
else
@@ -19671,7 +19748,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx100100001110xxxxxxxxxx
insr. */
- return 1559;
+ return 1611;
}
else
{
@@ -19679,7 +19756,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx110100001110xxxxxxxxxx
insr. */
- return 1560;
+ return 1612;
}
}
}
@@ -19689,7 +19766,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1x0x10001110xxxxxxxxxx
uunpklo. */
- return 2080;
+ return 2116;
}
}
else
@@ -19706,7 +19783,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1001010x0001110xxxxxxxxxx
pmov. */
- return 3398;
+ return 3498;
}
else
{
@@ -19714,7 +19791,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1001011x0001110xxxxxxxxxx
pmov. */
- return 3399;
+ return 3499;
}
}
else
@@ -19723,7 +19800,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x101101xx0001110xxxxxxxxxx
pmov. */
- return 3400;
+ return 3500;
}
}
else
@@ -19732,7 +19809,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x11x101xx0001110xxxxxxxxxx
pmov. */
- return 3401;
+ return 3501;
}
}
else
@@ -19741,7 +19818,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx111xx0001110xxxxxxxxxx
rev. */
- return 1869;
+ return 1905;
}
}
}
@@ -19755,7 +19832,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1x0x01001110xxxxxxxxxx
sunpkhi. */
- return 2016;
+ return 2052;
}
else
{
@@ -19763,7 +19840,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1x0x11001110xxxxxxxxxx
uunpkhi. */
- return 2079;
+ return 2115;
}
}
else
@@ -19778,7 +19855,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1001x10x1001110xxxxxxxxxx
pmov. */
- return 3402;
+ return 3502;
}
else
{
@@ -19786,7 +19863,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1001x11x1001110xxxxxxxxxx
pmov. */
- return 3403;
+ return 3503;
}
}
else
@@ -19795,7 +19872,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1011x1xx1001110xxxxxxxxxx
pmov. */
- return 3404;
+ return 3504;
}
}
else
@@ -19804,7 +19881,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x11x1x1xx1001110xxxxxxxxxx
pmov. */
- return 3405;
+ return 3505;
}
}
}
@@ -19823,7 +19900,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1x01xxxxx001001xxxxxxxxxx
dupq. */
- return 3389;
+ return 3489;
}
else
{
@@ -19831,7 +19908,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1x11xxxxx001001xxxxxxxxxx
extq. */
- return 3393;
+ return 3493;
}
}
else
@@ -19840,7 +19917,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1xxxxx001101xxxxxxxxxx
tbxq. */
- return 3392;
+ return 3492;
}
}
else
@@ -19849,7 +19926,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1xxxxx001x11xxxxxxxxxx
tbx. */
- return 2318;
+ return 2354;
}
}
}
@@ -19865,7 +19942,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx100xx0101xxxxxxxxxxxxx
lasta. */
- return 1561;
+ return 1613;
}
else
{
@@ -19873,7 +19950,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx110xx0101xxxxxxxxxxxxx
clasta. */
- return 1376;
+ return 1428;
}
}
else
@@ -19882,7 +19959,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1x1xx0101xxxxxxxxxxxxx
cpy. */
- return 1417;
+ return 1469;
}
}
else
@@ -19893,7 +19970,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx10xxx1101xxxxxxxxxxxxx
lastb. */
- return 1563;
+ return 1615;
}
else
{
@@ -19901,7 +19978,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx11xxx1101xxxxxxxxxxxxx
clastb. */
- return 1379;
+ return 1431;
}
}
}
@@ -19925,7 +20002,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx10xxxx010000xxxxxxxxxx
zip1. */
- return 2097;
+ return 2133;
}
else
{
@@ -19937,7 +20014,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx11x0x0010000xxxxxxxxxx
punpklo. */
- return 1862;
+ return 1898;
}
else
{
@@ -19945,7 +20022,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx11x1x0010000xxxxxxxxxx
rev. */
- return 1868;
+ return 1904;
}
}
else
@@ -19954,7 +20031,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx11xxx1010000xxxxxxxxxx
punpkhi. */
- return 1861;
+ return 1897;
}
}
}
@@ -19964,7 +20041,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1xxxxx011000xxxxxxxxxx
zip1. */
- return 2098;
+ return 2134;
}
}
else
@@ -19975,7 +20052,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1xxxxx010100xxxxxxxxxx
trn1. */
- return 2022;
+ return 2058;
}
else
{
@@ -19983,7 +20060,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1xxxxx011100xxxxxxxxxx
trn1. */
- return 2023;
+ return 2059;
}
}
}
@@ -19995,7 +20072,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1xxxxx010x10xxxxxxxxxx
uzp1. */
- return 2084;
+ return 2120;
}
else
{
@@ -20003,7 +20080,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1xxxxx011x10xxxxxxxxxx
uzp1. */
- return 2085;
+ return 2121;
}
}
}
@@ -20019,7 +20096,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1xxxxx010001xxxxxxxxxx
zip2. */
- return 2099;
+ return 2135;
}
else
{
@@ -20027,7 +20104,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1xxxxx011001xxxxxxxxxx
zip2. */
- return 2100;
+ return 2136;
}
}
else
@@ -20038,7 +20115,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1xxxxx010101xxxxxxxxxx
trn2. */
- return 2024;
+ return 2060;
}
else
{
@@ -20046,7 +20123,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1xxxxx011101xxxxxxxxxx
trn2. */
- return 2025;
+ return 2061;
}
}
}
@@ -20058,7 +20135,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1xxxxx010x11xxxxxxxxxx
uzp2. */
- return 2086;
+ return 2122;
}
else
{
@@ -20066,7 +20143,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1xxxxx011x11xxxxxxxxxx
uzp2. */
- return 2087;
+ return 2123;
}
}
}
@@ -20077,7 +20154,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000001x1xx1xxxxx11xxxxxxxxxxxxxx
sel. */
- return 1887;
+ return 1923;
}
}
}
@@ -20096,7 +20173,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x1x0xxxxxx000xxxxxxxxxxxxx
ldr. */
- return 1789;
+ return 1825;
}
else
{
@@ -20104,7 +20181,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x1x1xxxxxx000xxxxxxxxxxxxx
prfb. */
- return 1835;
+ return 1871;
}
}
else
@@ -20115,7 +20192,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x10xxxxxxx100xxxxxxxxxxxxx
ld1rsh. */
- return 1618;
+ return 1670;
}
else
{
@@ -20123,7 +20200,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x11xxxxxxx100xxxxxxxxxxxxx
ld1rsb. */
- return 1615;
+ return 1667;
}
}
}
@@ -20139,7 +20216,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x10x0xxxxx010xxxxxxxxxxxxx
ld1w. */
- return 1653;
+ return 1705;
}
else
{
@@ -20147,7 +20224,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x10x1xxxxx010xxxxxxxxxxxxx
ld1w. */
- return 1654;
+ return 1706;
}
}
else
@@ -20158,7 +20235,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x110xxxxxx010xxxxxxxxxxxxx
ldr. */
- return 1791;
+ return 1827;
}
else
{
@@ -20166,7 +20243,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x111xxxxxx010xxxxxxxxxxxxx
prfw. */
- return 1856;
+ return 1892;
}
}
}
@@ -20182,7 +20259,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x1000xxxxx110xxxxxxxxxxxxx
prfw. */
- return 1852;
+ return 1888;
}
else
{
@@ -20190,7 +20267,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x1100xxxxx110xxxxxxxxxxxxx
prfd. */
- return 1838;
+ return 1874;
}
}
else
@@ -20199,7 +20276,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x1x01xxxxx110xxxxxxxxxxxxx
ld1w. */
- return 1661;
+ return 1713;
}
}
else
@@ -20210,7 +20287,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x101xxxxxx110xxxxxxxxxxxxx
ld1rw. */
- return 1621;
+ return 1673;
}
else
{
@@ -20218,7 +20295,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x111xxxxxx110xxxxxxxxxxxxx
ld1rsb. */
- return 1617;
+ return 1669;
}
}
}
@@ -20234,7 +20311,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x1xxxxxxxx001xxxxxxxxxxxxx
prfh. */
- return 1849;
+ return 1885;
}
else
{
@@ -20244,7 +20321,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x1x0xxxxxx101xxxxxxxxxxxxx
ldnt1w. */
- return 2164;
+ return 2200;
}
else
{
@@ -20254,7 +20331,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x101xxxxxx101xxxxxxxxxxxxx
ld1rsh. */
- return 1619;
+ return 1671;
}
else
{
@@ -20262,7 +20339,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x111xxxxxx101xxxxxxxxxxxxx
ld1rsb. */
- return 1616;
+ return 1668;
}
}
}
@@ -20279,7 +20356,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x10x0xxxxx011xxxxxxxxxxxxx
ldff1w. */
- return 1753;
+ return 1791;
}
else
{
@@ -20287,7 +20364,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x10x1xxxxx011xxxxxxxxxxxxx
ldff1w. */
- return 1754;
+ return 1792;
}
}
else
@@ -20296,7 +20373,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x11xxxxxxx011xxxxxxxxxxxxx
prfd. */
- return 1842;
+ return 1878;
}
}
else
@@ -20311,7 +20388,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x1000xxxxx111xxxxxxxxxxxxx
prfw. */
- return 1855;
+ return 1891;
}
else
{
@@ -20319,7 +20396,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x1100xxxxx111xxxxxxxxxxxxx
prfd. */
- return 1841;
+ return 1877;
}
}
else
@@ -20328,7 +20405,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x1x01xxxxx111xxxxxxxxxxxxx
ldff1w. */
- return 1763;
+ return 1799;
}
}
else
@@ -20339,7 +20416,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x101xxxxxx111xxxxxxxxxxxxx
ld1rw. */
- return 1622;
+ return 1674;
}
else
{
@@ -20347,7 +20424,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
100001x111xxxxxx111xxxxxxxxxxxxx
ld1rd. */
- return 1603;
+ return 1655;
}
}
}
@@ -20377,7 +20454,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx000000xxxxxxxxxx
saddlb. */
- return 2194;
+ return 2230;
}
else
{
@@ -20385,7 +20462,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx000100xxxxxxxxxx
ssublb. */
- return 2301;
+ return 2337;
}
}
else
@@ -20396,7 +20473,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx000010xxxxxxxxxx
uaddlb. */
- return 2325;
+ return 2361;
}
else
{
@@ -20404,7 +20481,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx000110xxxxxxxxxx
usublb. */
- return 2378;
+ return 2414;
}
}
}
@@ -20418,7 +20495,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx000001xxxxxxxxxx
saddlt. */
- return 2196;
+ return 2232;
}
else
{
@@ -20426,7 +20503,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx000101xxxxxxxxxx
ssublt. */
- return 2303;
+ return 2339;
}
}
else
@@ -20437,7 +20514,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx000011xxxxxxxxxx
uaddlt. */
- return 2326;
+ return 2362;
}
else
{
@@ -20445,7 +20522,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx000111xxxxxxxxxx
usublt. */
- return 2379;
+ return 2415;
}
}
}
@@ -20456,7 +20533,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x1xx0xxxxx000xxxxxxxxxxxxx
ld1sw. */
- return 1647;
+ return 1699;
}
}
else
@@ -20475,7 +20552,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxxx000000xxxxxxxxxx
sqshrunb. */
- return 2284;
+ return 2320;
}
else
{
@@ -20483,7 +20560,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxxx000100xxxxxxxxxx
shrnb. */
- return 2202;
+ return 2238;
}
}
else
@@ -20494,7 +20571,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxxx000010xxxxxxxxxx
sqrshrunb. */
- return 2276;
+ return 2312;
}
else
{
@@ -20502,7 +20579,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxxx000110xxxxxxxxxx
rshrnb. */
- return 2184;
+ return 2220;
}
}
}
@@ -20516,7 +20593,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxxx000001xxxxxxxxxx
sqshrunt. */
- return 2285;
+ return 2321;
}
else
{
@@ -20524,7 +20601,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxxx000101xxxxxxxxxx
shrnt. */
- return 2203;
+ return 2239;
}
}
else
@@ -20535,7 +20612,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxxx000011xxxxxxxxxx
sqrshrunt. */
- return 2277;
+ return 2313;
}
else
{
@@ -20543,7 +20620,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxxx000111xxxxxxxxxx
rshrnt. */
- return 2185;
+ return 2221;
}
}
}
@@ -20554,7 +20631,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x10x1xxxxx000xxxxxxxxxxxxx
ld1sw. */
- return 1648;
+ return 1700;
}
}
else
@@ -20563,7 +20640,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10001x11x1xxxxx000xxxxxxxxxxxxx
sqrshrun. */
- return 2481;
+ return 2507;
}
}
}
@@ -20583,7 +20660,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx100000xxxxxxxxxx
saddlbt. */
- return 2195;
+ return 2231;
}
else
{
@@ -20591,7 +20668,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx100100xxxxxxxxxx
eorbt. */
- return 2131;
+ return 2167;
}
}
else
@@ -20602,7 +20679,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx100010xxxxxxxxxx
ssublbt. */
- return 2302;
+ return 2338;
}
else
{
@@ -20614,7 +20691,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1000xxxxx100110xxxxxxxxxx
smmla. */
- return 3037;
+ return 3132;
}
else
{
@@ -20622,7 +20699,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1100xxxxx100110xxxxxxxxxx
usmmla. */
- return 3039;
+ return 3134;
}
}
else
@@ -20631,7 +20708,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1x10xxxxx100110xxxxxxxxxx
ummla. */
- return 3038;
+ return 3133;
}
}
}
@@ -20644,7 +20721,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx100x01xxxxxxxxxx
eortb. */
- return 2132;
+ return 2168;
}
else
{
@@ -20652,7 +20729,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx100x11xxxxxxxxxx
ssubltb. */
- return 2304;
+ return 2340;
}
}
}
@@ -20664,7 +20741,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x1x00xxxxx100xxxxxxxxxxxxx
ldnt1sw. */
- return 2163;
+ return 2199;
}
else
{
@@ -20672,7 +20749,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x1x10xxxxx100xxxxxxxxxxxxx
ld1sw. */
- return 1649;
+ return 1701;
}
}
}
@@ -20686,7 +20763,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx100xxxxxxxx0xxxx
match. */
- return 2166;
+ return 2202;
}
else
{
@@ -20694,7 +20771,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx100xxxxxxxx1xxxx
nmatch. */
- return 2178;
+ return 2214;
}
}
else
@@ -20705,7 +20782,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x1x01xxxxx100xxxxxxxxxxxxx
ld1sw. */
- return 1652;
+ return 1704;
}
else
{
@@ -20713,7 +20790,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x1x11xxxxx100xxxxxxxxxxxxx
ld1sw. */
- return 1650;
+ return 1702;
}
}
}
@@ -20737,7 +20814,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx010000xxxxxxxxxx
saddwb. */
- return 2197;
+ return 2233;
}
else
{
@@ -20745,7 +20822,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx010100xxxxxxxxxx
ssubwb. */
- return 2305;
+ return 2341;
}
}
else
@@ -20756,7 +20833,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx010010xxxxxxxxxx
uaddwb. */
- return 2327;
+ return 2363;
}
else
{
@@ -20764,7 +20841,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx010110xxxxxxxxxx
usubwb. */
- return 2380;
+ return 2416;
}
}
}
@@ -20778,7 +20855,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx010001xxxxxxxxxx
saddwt. */
- return 2198;
+ return 2234;
}
else
{
@@ -20786,7 +20863,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx010101xxxxxxxxxx
ssubwt. */
- return 2306;
+ return 2342;
}
}
else
@@ -20797,7 +20874,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx010011xxxxxxxxxx
uaddwt. */
- return 2328;
+ return 2364;
}
else
{
@@ -20805,7 +20882,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx010111xxxxxxxxxx
usubwt. */
- return 2381;
+ return 2417;
}
}
}
@@ -20818,7 +20895,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x10x0xxxxx010xxxxxxxxxxxxx
ld1w. */
- return 1657;
+ return 1709;
}
else
{
@@ -20826,7 +20903,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x11x0xxxxx010xxxxxxxxxxxxx
ld1d. */
- return 1579;
+ return 1631;
}
}
}
@@ -20848,7 +20925,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxx0010000xxxxxxxxxx
sqxtnb. */
- return 2288;
+ return 2324;
}
else
{
@@ -20856,7 +20933,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxx1010000xxxxxxxxxx
sqcvtn. */
- return 2478;
+ return 2504;
}
}
else
@@ -20867,7 +20944,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxx0010100xxxxxxxxxx
sqxtunb. */
- return 2290;
+ return 2326;
}
else
{
@@ -20875,7 +20952,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxx1010100xxxxxxxxxx
sqcvtun. */
- return 2479;
+ return 2505;
}
}
}
@@ -20887,7 +20964,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxx0010x10xxxxxxxxxx
uqxtnb. */
- return 2365;
+ return 2401;
}
else
{
@@ -20895,7 +20972,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxx1010x10xxxxxxxxxx
uqcvtn. */
- return 2484;
+ return 2510;
}
}
}
@@ -20909,7 +20986,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxxx010001xxxxxxxxxx
sqxtnt. */
- return 2289;
+ return 2325;
}
else
{
@@ -20917,7 +20994,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxxx010101xxxxxxxxxx
sqxtunt. */
- return 2291;
+ return 2327;
}
}
else
@@ -20926,7 +21003,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxxx010x11xxxxxxxxxx
uqxtnt. */
- return 2366;
+ return 2402;
}
}
}
@@ -20936,7 +21013,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x10x1xxxxx010xxxxxxxxxxxxx
ld1w. */
- return 1658;
+ return 1710;
}
}
else
@@ -20945,7 +21022,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10001x11x1xxxxx010xxxxxxxxxxxxx
ld1d. */
- return 1580;
+ return 1632;
}
}
}
@@ -20965,7 +21042,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx110000xxxxxxxxxx
sabalb. */
- return 2189;
+ return 2225;
}
else
{
@@ -20975,7 +21052,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x0xxxxx110100xxxxxxxxxx
adclb. */
- return 2114;
+ return 2150;
}
else
{
@@ -20983,7 +21060,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x11x0xxxxx110100xxxxxxxxxx
sbclb. */
- return 2199;
+ return 2235;
}
}
}
@@ -20995,7 +21072,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx110001xxxxxxxxxx
sabalt. */
- return 2190;
+ return 2226;
}
else
{
@@ -21005,7 +21082,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x0xxxxx110101xxxxxxxxxx
adclt. */
- return 2115;
+ return 2151;
}
else
{
@@ -21013,7 +21090,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x11x0xxxxx110101xxxxxxxxxx
sbclt. */
- return 2200;
+ return 2236;
}
}
}
@@ -21028,7 +21105,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx110010xxxxxxxxxx
uabalb. */
- return 2320;
+ return 2356;
}
else
{
@@ -21036,7 +21113,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx110011xxxxxxxxxx
uabalt. */
- return 2321;
+ return 2357;
}
}
else
@@ -21047,7 +21124,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxx011011xxxxxxxxxxx
cadd. */
- return 2123;
+ return 2159;
}
else
{
@@ -21055,7 +21132,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxx111011xxxxxxxxxxx
sqcadd. */
- return 2231;
+ return 2267;
}
}
}
@@ -21070,7 +21147,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x1000xxxxx110xxxxxxxxxxxxx
ldnt1w. */
- return 2165;
+ return 2201;
}
else
{
@@ -21078,7 +21155,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x1100xxxxx110xxxxxxxxxxxxx
ldnt1d. */
- return 2158;
+ return 2194;
}
}
else
@@ -21089,7 +21166,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x1010xxxxx110xxxxxxxxxxxxx
ld1w. */
- return 1659;
+ return 1711;
}
else
{
@@ -21097,7 +21174,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x1110xxxxx110xxxxxxxxxxxxx
ld1d. */
- return 1581;
+ return 1633;
}
}
}
@@ -21112,7 +21189,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10001x1001xxxxx110xxxxxxxxxxxxx
ld1w. */
- return 1664;
+ return 1716;
}
else
{
@@ -21120,7 +21197,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10001x1011xxxxx110xxxxxxxxxxxxx
ld1w. */
- return 1660;
+ return 1712;
}
}
else
@@ -21131,7 +21208,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x11x1xxxxx110xxxxxxxxxxxxx
histcnt. */
- return 2154;
+ return 2190;
}
else
{
@@ -21141,7 +21218,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x1101xxxxx110xxxxxxxxxxxxx
ld1d. */
- return 1584;
+ return 1636;
}
else
{
@@ -21149,7 +21226,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x1111xxxxx110xxxxxxxxxxxxx
ld1d. */
- return 1582;
+ return 1634;
}
}
}
@@ -21175,7 +21252,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx001x00xxxxxxxxxx
sabdlb. */
- return 2191;
+ return 2227;
}
else
{
@@ -21183,7 +21260,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx001x10xxxxxxxxxx
uabdlb. */
- return 2322;
+ return 2358;
}
}
else
@@ -21194,7 +21271,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx001x01xxxxxxxxxx
sabdlt. */
- return 2192;
+ return 2228;
}
else
{
@@ -21202,7 +21279,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx001x11xxxxxxxxxx
uabdlt. */
- return 2323;
+ return 2359;
}
}
}
@@ -21212,7 +21289,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x1xx0xxxxx001xxxxxxxxxxxxx
ldff1sw. */
- return 1748;
+ return 1786;
}
}
else
@@ -21231,7 +21308,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxxx001000xxxxxxxxxx
sqshrnb. */
- return 2282;
+ return 2318;
}
else
{
@@ -21239,7 +21316,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxxx001100xxxxxxxxxx
uqshrnb. */
- return 2361;
+ return 2397;
}
}
else
@@ -21250,7 +21327,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxxx001010xxxxxxxxxx
sqrshrnb. */
- return 2274;
+ return 2310;
}
else
{
@@ -21258,7 +21335,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxxx001110xxxxxxxxxx
uqrshrnb. */
- return 2356;
+ return 2392;
}
}
}
@@ -21272,7 +21349,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxxx001001xxxxxxxxxx
sqshrnt. */
- return 2283;
+ return 2319;
}
else
{
@@ -21280,7 +21357,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxxx001101xxxxxxxxxx
uqshrnt. */
- return 2362;
+ return 2398;
}
}
else
@@ -21291,7 +21368,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxxx001011xxxxxxxxxx
sqrshrnt. */
- return 2275;
+ return 2311;
}
else
{
@@ -21299,7 +21376,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x10x1xxxxx001111xxxxxxxxxx
uqrshrnt. */
- return 2357;
+ return 2393;
}
}
}
@@ -21310,7 +21387,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x10x1xxxxx001xxxxxxxxxxxxx
ldff1sw. */
- return 1749;
+ return 1787;
}
}
else
@@ -21321,7 +21398,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10001x11x1xxxxx0010xxxxxxxxxxxx
sqrshrn. */
- return 2480;
+ return 2506;
}
else
{
@@ -21329,7 +21406,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10001x11x1xxxxx0011xxxxxxxxxxxx
uqrshrn. */
- return 2485;
+ return 2511;
}
}
}
@@ -21350,7 +21427,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx101000xxxxxxxxxx
sshllb. */
- return 2298;
+ return 2334;
}
else
{
@@ -21358,7 +21435,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx101100xxxxxxxxxx
bext. */
- return 2403;
+ return 2439;
}
}
else
@@ -21369,7 +21446,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx101010xxxxxxxxxx
ushllb. */
- return 2374;
+ return 2410;
}
else
{
@@ -21377,7 +21454,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx101110xxxxxxxxxx
bgrp. */
- return 2404;
+ return 2440;
}
}
}
@@ -21391,7 +21468,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx101001xxxxxxxxxx
sshllt. */
- return 2299;
+ return 2335;
}
else
{
@@ -21399,7 +21476,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx101101xxxxxxxxxx
bdep. */
- return 2402;
+ return 2438;
}
}
else
@@ -21408,7 +21485,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx101x11xxxxxxxxxx
ushllt. */
- return 2375;
+ return 2411;
}
}
}
@@ -21418,7 +21495,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x1xx0xxxxx101xxxxxxxxxxxxx
ldff1sw. */
- return 1750;
+ return 1788;
}
}
else
@@ -21435,7 +21512,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx101000xxxxxxxxxx
histseg. */
- return 2155;
+ return 2191;
}
else
{
@@ -21443,7 +21520,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx101100xxxxxxxxxx
luti2. */
- return 3483;
+ return 3583;
}
}
else
@@ -21452,7 +21529,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx101x10xxxxxxxxxx
luti2. */
- return 3484;
+ return 3584;
}
}
else
@@ -21465,7 +21542,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx101001xxxxxxxxxx
luti4. */
- return 3485;
+ return 3585;
}
else
{
@@ -21473,7 +21550,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx101101xxxxxxxxxx
luti4. */
- return 3486;
+ return 3586;
}
}
else
@@ -21482,7 +21559,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx101x11xxxxxxxxxx
luti4. */
- return 3487;
+ return 3587;
}
}
}
@@ -21494,7 +21571,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x1x01xxxxx101xxxxxxxxxxxxx
ldff1sw. */
- return 1752;
+ return 1790;
}
else
{
@@ -21502,7 +21579,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x1x11xxxxx101xxxxxxxxxxxxx
ldff1sw. */
- return 1751;
+ return 1789;
}
}
}
@@ -21526,7 +21603,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx011000xxxxxxxxxx
sqdmullb. */
- return 2252;
+ return 2288;
}
else
{
@@ -21534,7 +21611,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx011100xxxxxxxxxx
smullb. */
- return 2224;
+ return 2260;
}
}
else
@@ -21547,7 +21624,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1x00xxxxx011010xxxxxxxxxx
pmullb. */
- return 2399;
+ return 2435;
}
else
{
@@ -21555,7 +21632,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1x10xxxxx011010xxxxxxxxxx
pmullb. */
- return 2180;
+ return 2216;
}
}
else
@@ -21564,7 +21641,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx011110xxxxxxxxxx
umullb. */
- return 2349;
+ return 2385;
}
}
}
@@ -21578,7 +21655,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx011001xxxxxxxxxx
sqdmullt. */
- return 2255;
+ return 2291;
}
else
{
@@ -21586,7 +21663,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx011101xxxxxxxxxx
smullt. */
- return 2227;
+ return 2263;
}
}
else
@@ -21599,7 +21676,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1x00xxxxx011011xxxxxxxxxx
pmullt. */
- return 2400;
+ return 2436;
}
else
{
@@ -21607,7 +21684,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1x10xxxxx011011xxxxxxxxxx
pmullt. */
- return 2181;
+ return 2217;
}
}
else
@@ -21616,7 +21693,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx011111xxxxxxxxxx
umullt. */
- return 2352;
+ return 2388;
}
}
}
@@ -21629,7 +21706,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x10x0xxxxx011xxxxxxxxxxxxx
ldff1w. */
- return 1759;
+ return 1795;
}
else
{
@@ -21637,7 +21714,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x11x0xxxxx011xxxxxxxxxxxxx
ldff1d. */
- return 1704;
+ return 1751;
}
}
}
@@ -21655,7 +21732,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx011000xxxxxxxxxx
addhnb. */
- return 2116;
+ return 2152;
}
else
{
@@ -21663,7 +21740,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx011100xxxxxxxxxx
subhnb. */
- return 2314;
+ return 2350;
}
}
else
@@ -21674,7 +21751,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx011010xxxxxxxxxx
raddhnb. */
- return 2182;
+ return 2218;
}
else
{
@@ -21682,7 +21759,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx011110xxxxxxxxxx
rsubhnb. */
- return 2186;
+ return 2222;
}
}
}
@@ -21696,7 +21773,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx011001xxxxxxxxxx
addhnt. */
- return 2117;
+ return 2153;
}
else
{
@@ -21704,7 +21781,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx011101xxxxxxxxxx
subhnt. */
- return 2315;
+ return 2351;
}
}
else
@@ -21715,7 +21792,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx011011xxxxxxxxxx
raddhnt. */
- return 2183;
+ return 2219;
}
else
{
@@ -21723,7 +21800,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx1xxxxx011111xxxxxxxxxx
rsubhnt. */
- return 2187;
+ return 2223;
}
}
}
@@ -21736,7 +21813,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x10x1xxxxx011xxxxxxxxxxxxx
ldff1w. */
- return 1760;
+ return 1796;
}
else
{
@@ -21744,7 +21821,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x11x1xxxxx011xxxxxxxxxxxxx
ldff1d. */
- return 1705;
+ return 1752;
}
}
}
@@ -21765,7 +21842,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx111000xxxxxxxxxx
ssra. */
- return 2300;
+ return 2336;
}
else
{
@@ -21773,7 +21850,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx111100xxxxxxxxxx
sri. */
- return 2293;
+ return 2329;
}
}
else
@@ -21784,7 +21861,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx111010xxxxxxxxxx
srsra. */
- return 2297;
+ return 2333;
}
else
{
@@ -21792,7 +21869,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx111110xxxxxxxxxx
saba. */
- return 2188;
+ return 2224;
}
}
}
@@ -21806,7 +21883,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx111001xxxxxxxxxx
usra. */
- return 2377;
+ return 2413;
}
else
{
@@ -21814,7 +21891,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx111101xxxxxxxxxx
sli. */
- return 2206;
+ return 2242;
}
}
else
@@ -21825,7 +21902,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx111011xxxxxxxxxx
ursra. */
- return 2373;
+ return 2409;
}
else
{
@@ -21833,7 +21910,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1xx0xxxxx111111xxxxxxxxxx
uaba. */
- return 2319;
+ return 2355;
}
}
}
@@ -21848,7 +21925,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x1000xxxxx111xxxxxxxxxxxxx
prfw. */
- return 1857;
+ return 1893;
}
else
{
@@ -21856,7 +21933,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x1100xxxxx111xxxxxxxxxxxxx
prfd. */
- return 1843;
+ return 1879;
}
}
else
@@ -21867,7 +21944,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x1010xxxxx111xxxxxxxxxxxxx
ldff1w. */
- return 1761;
+ return 1797;
}
else
{
@@ -21875,7 +21952,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x1110xxxxx111xxxxxxxxxxxxx
ldff1d. */
- return 1706;
+ return 1753;
}
}
}
@@ -21900,7 +21977,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1001xxx001110x0xxxxxxxxxx
aesmc. */
- return 2398;
+ return 2434;
}
else
{
@@ -21908,7 +21985,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1001xxx101110x0xxxxxxxxxx
aese. */
- return 2396;
+ return 2432;
}
}
else
@@ -21917,7 +21994,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1001xxxx11110x0xxxxxxxxxx
sm4e. */
- return 2393;
+ return 2429;
}
}
else
@@ -21926,7 +22003,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1001xxxxx1111x0xxxxxxxxxx
sm4ekey. */
- return 2394;
+ return 2430;
}
}
else
@@ -21939,7 +22016,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1001xxx0x1110x1xxxxxxxxxx
aesimc. */
- return 2397;
+ return 2433;
}
else
{
@@ -21947,7 +22024,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1001xxx1x1110x1xxxxxxxxxx
aesd. */
- return 2395;
+ return 2431;
}
}
else
@@ -21956,7 +22033,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010001x1001xxxxx1111x1xxxxxxxxxx
rax1. */
- return 2401;
+ return 2437;
}
}
}
@@ -21966,7 +22043,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
110001x1001xxxxx111xxxxxxxxxxxxx
ldff1w. */
- return 1764;
+ return 1800;
}
}
else
@@ -21975,7 +22052,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10001x1101xxxxx111xxxxxxxxxxxxx
ldff1d. */
- return 1708;
+ return 1755;
}
}
else
@@ -21986,7 +22063,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10001x1011xxxxx111xxxxxxxxxxxxx
ldff1w. */
- return 1762;
+ return 1798;
}
else
{
@@ -21994,7 +22071,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10001x1111xxxxx111xxxxxxxxxxxxx
ldff1d. */
- return 1707;
+ return 1754;
}
}
}
@@ -22023,7 +22100,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx0xxxxx000xxxxxxxx0xxxx
cmpge. */
- return 1387;
+ return 1439;
}
else
{
@@ -22031,7 +22108,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx0xxxxx000xxxxxxxx1xxxx
cmpgt. */
- return 1390;
+ return 1442;
}
}
else
@@ -22042,7 +22119,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x10x0xxxxx000xxxxxxxxxxxxx
ld1rqw. */
- return 1614;
+ return 1666;
}
else
{
@@ -22050,7 +22127,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x11x0xxxxx000xxxxxxxxxxxxx
ld1rqd. */
- return 1610;
+ return 1662;
}
}
}
@@ -22070,7 +22147,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx000000xxxxx0xxxx
whilege. */
- return 2382;
+ return 2418;
}
else
{
@@ -22078,7 +22155,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx000100xxxxx0xxxx
whilege. */
- return 2383;
+ return 2419;
}
}
else
@@ -22089,7 +22166,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx000010xxxxx0xxxx
whilehs. */
- return 2388;
+ return 2424;
}
else
{
@@ -22097,7 +22174,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx000110xxxxx0xxxx
whilehs. */
- return 2389;
+ return 2425;
}
}
}
@@ -22111,7 +22188,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx000001xxxxx0xxxx
whilelt. */
- return 2094;
+ return 2130;
}
else
{
@@ -22119,7 +22196,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx000101xxxxx0xxxx
whilelt. */
- return 2095;
+ return 2131;
}
}
else
@@ -22130,7 +22207,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx000011xxxxx0xxxx
whilelo. */
- return 2090;
+ return 2126;
}
else
{
@@ -22138,7 +22215,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx000111xxxxx0xxxx
whilelo. */
- return 2091;
+ return 2127;
}
}
}
@@ -22155,7 +22232,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx000000xxxxx1xxxx
whilegt. */
- return 2384;
+ return 2420;
}
else
{
@@ -22163,7 +22240,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx000100xxxxx1xxxx
whilegt. */
- return 2385;
+ return 2421;
}
}
else
@@ -22174,7 +22251,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx000010xxxxx1xxxx
whilehi. */
- return 2386;
+ return 2422;
}
else
{
@@ -22182,7 +22259,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx000110xxxxx1xxxx
whilehi. */
- return 2387;
+ return 2423;
}
}
}
@@ -22196,7 +22273,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx000001xxxxx1xxxx
whilele. */
- return 2088;
+ return 2124;
}
else
{
@@ -22204,7 +22281,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx000101xxxxx1xxxx
whilele. */
- return 2089;
+ return 2125;
}
}
else
@@ -22215,7 +22292,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx000011xxxxx1xxxx
whilels. */
- return 2092;
+ return 2128;
}
else
{
@@ -22223,7 +22300,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx000111xxxxx1xxxx
whilels. */
- return 2093;
+ return 2129;
}
}
}
@@ -22237,7 +22314,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x10x1xxxxx000xxxxxxxxxxxxx
ld1row. */
- return 3047;
+ return 3142;
}
else
{
@@ -22245,7 +22322,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x11x1xxxxx000xxxxxxxxxxxxx
ld1rod. */
- return 3048;
+ return 3143;
}
}
}
@@ -22264,7 +22341,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0xxxxx000x00xxxxxxxxxx
fadd. */
- return 1445;
+ return 1497;
}
else
{
@@ -22274,7 +22351,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0xxxxx000010xxxxxxxxxx
fmul. */
- return 1512;
+ return 1564;
}
else
{
@@ -22282,7 +22359,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0xxxxx000110xxxxxxxxxx
frecps. */
- return 1525;
+ return 1577;
}
}
}
@@ -22294,7 +22371,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0xxxxx000x01xxxxxxxxxx
fsub. */
- return 1538;
+ return 1590;
}
else
{
@@ -22304,7 +22381,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0xxxxx000011xxxxxxxxxx
ftsmul. */
- return 1544;
+ return 1596;
}
else
{
@@ -22312,7 +22389,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0xxxxx000111xxxxxxxxxx
frsqrts. */
- return 1535;
+ return 1587;
}
}
}
@@ -22323,7 +22400,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx1xxxxx000xxxxxxxxxxxxx
fmla. */
- return 1503;
+ return 1555;
}
}
else
@@ -22332,7 +22409,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1xxxxxxxx000xxxxxxxxxxxxx
str. */
- return 2008;
+ return 2044;
}
}
}
@@ -22350,7 +22427,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx0xxxxx001xxxxxxxx0xxxx
cmplt. */
- return 1404;
+ return 1456;
}
else
{
@@ -22358,7 +22435,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx0xxxxx001xxxxxxxx1xxxx
cmple. */
- return 1398;
+ return 1450;
}
}
else
@@ -22371,7 +22448,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x10x00xxxx001xxxxxxxxxxxxx
ld1rqw. */
- return 1613;
+ return 1665;
}
else
{
@@ -22379,7 +22456,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x11x00xxxx001xxxxxxxxxxxxx
ld1rqd. */
- return 1609;
+ return 1661;
}
}
else
@@ -22390,7 +22467,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x10x01xxxx001xxxxxxxxxxxxx
ld1w. */
- return 3408;
+ return 3508;
}
else
{
@@ -22398,7 +22475,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x11x01xxxx001xxxxxxxxxxxxx
ld1d. */
- return 3406;
+ return 3506;
}
}
}
@@ -22421,7 +22498,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx000000001xxxxxxxxxxxxx
faddv. */
- return 1449;
+ return 1501;
}
else
{
@@ -22431,7 +22508,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx010000001xxxxxxxx0xxxx
fcmge. */
- return 1456;
+ return 1508;
}
else
{
@@ -22439,7 +22516,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx010000001xxxxxxxx1xxxx
fcmgt. */
- return 1458;
+ return 1510;
}
}
}
@@ -22455,7 +22532,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx001000001x00xxxxxxxxxx
f1cvt. */
- return 3445;
+ return 3545;
}
else
{
@@ -22463,7 +22540,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx001000001x10xxxxxxxxxx
bf1cvt. */
- return 3441;
+ return 3541;
}
}
else
@@ -22474,7 +22551,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx001000001x01xxxxxxxxxx
f2cvt. */
- return 3446;
+ return 3546;
}
else
{
@@ -22482,7 +22559,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx001000001x11xxxxxxxxxx
bf2cvt. */
- return 3442;
+ return 3542;
}
}
}
@@ -22492,7 +22569,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx011000001xxxxxxxxxxxxx
fadda. */
- return 1448;
+ return 1500;
}
}
}
@@ -22502,7 +22579,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0xx100001xxxxxxxxxxxxx
fmaxnmv. */
- return 1495;
+ return 1547;
}
}
else
@@ -22515,7 +22592,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x0010001xxxxxxxxxxxxx
fcmeq. */
- return 1454;
+ return 1506;
}
else
{
@@ -22527,7 +22604,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x1010001x00xxxxxxxxxx
fcvtn. */
- return 3450;
+ return 3550;
}
else
{
@@ -22535,7 +22612,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x1010001x10xxxxxxxxxx
bfcvtn. */
- return 3449;
+ return 3549;
}
}
else
@@ -22546,7 +22623,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x1010001x01xxxxxxxxxx
fcvtnb. */
- return 3451;
+ return 3551;
}
else
{
@@ -22554,7 +22631,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x1010001x11xxxxxxxxxx
fcvtnt. */
- return 3452;
+ return 3552;
}
}
}
@@ -22567,7 +22644,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x0110001xxxxxxxxxxxxx
fmaxv. */
- return 1496;
+ return 1548;
}
else
{
@@ -22575,7 +22652,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x1110001xxxxxxxxxxxxx
frecpe. */
- return 1524;
+ return 1576;
}
}
}
@@ -22594,7 +22671,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x0001001xxxxxxxx0xxxx
fcmlt. */
- return 1461;
+ return 1513;
}
else
{
@@ -22602,7 +22679,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x0001001xxxxxxxx1xxxx
fcmle. */
- return 1460;
+ return 1512;
}
}
else
@@ -22615,7 +22692,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x1001001x00xxxxxxxxxx
f1cvtlt. */
- return 3447;
+ return 3547;
}
else
{
@@ -22623,7 +22700,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x1001001x10xxxxxxxxxx
bf1cvtlt. */
- return 3443;
+ return 3543;
}
}
else
@@ -22634,7 +22711,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x1001001x01xxxxxxxxxx
f2cvtlt. */
- return 3448;
+ return 3548;
}
else
{
@@ -22642,7 +22719,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x1001001x11xxxxxxxxxx
bf2cvtlt. */
- return 3444;
+ return 3544;
}
}
}
@@ -22653,7 +22730,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0xx101001xxxxxxxxxxxxx
fminnmv. */
- return 1501;
+ return 1553;
}
}
else
@@ -22664,7 +22741,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0xx011001xxxxxxxxxxxxx
fcmne. */
- return 1462;
+ return 1514;
}
else
{
@@ -22674,7 +22751,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x0111001xxxxxxxxxxxxx
fminv. */
- return 1502;
+ return 1554;
}
else
{
@@ -22682,7 +22759,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x1111001xxxxxxxxxxxxx
frsqrte. */
- return 1534;
+ return 1586;
}
}
}
@@ -22698,7 +22775,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1000xxxxx001xxxxxxxxxxxxx
stnt1w. */
- return 2313;
+ return 2349;
}
else
{
@@ -22706,7 +22783,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1100xxxxx001xxxxxxxxxxxxx
stnt1d. */
- return 2309;
+ return 2345;
}
}
else
@@ -22715,7 +22792,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1x10xxxxx001xxxxxxxxxxxxx
stnt1w. */
- return 2312;
+ return 2348;
}
}
}
@@ -22734,7 +22811,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx0010xxxxxxx0xxxx
ctermeq. */
- return 1419;
+ return 1471;
}
else
{
@@ -22742,7 +22819,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx0011xxxxxxx0xxxx
whilewr. */
- return 2391;
+ return 2427;
}
}
else
@@ -22753,7 +22830,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx0010xxxxxxx1xxxx
ctermne. */
- return 1420;
+ return 1472;
}
else
{
@@ -22761,7 +22838,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx0011xxxxxxx1xxxx
whilerw. */
- return 2390;
+ return 2426;
}
}
}
@@ -22773,7 +22850,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x10x1xxxxx001xxxxxxxxxxxxx
ld1row. */
- return 3051;
+ return 3146;
}
else
{
@@ -22781,7 +22858,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x11x1xxxxx001xxxxxxxxxxxxx
ld1rod. */
- return 3052;
+ return 3147;
}
}
}
@@ -22791,7 +22868,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11001x1xx1xxxxx001xxxxxxxxxxxxx
fmls. */
- return 1507;
+ return 1559;
}
}
}
@@ -22818,7 +22895,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x10000xxxx01xxxx0xxxx0xxxx
and. */
- return 1350;
+ return 1402;
}
else
{
@@ -22826,7 +22903,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x10000xxxx01xxxx0xxxx1xxxx
bic. */
- return 1362;
+ return 1414;
}
}
else
@@ -22837,7 +22914,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x100010xxx01xxxx0xxxxxxxxx
brka. */
- return 1364;
+ return 1416;
}
else
{
@@ -22845,7 +22922,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x100011xxx01xxxx0xxxxxxxxx
brkn. */
- return 1368;
+ return 1420;
}
}
}
@@ -22857,7 +22934,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1000xxxxx01xxxx1xxxx0xxxx
eor. */
- return 1437;
+ return 1489;
}
else
{
@@ -22865,7 +22942,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1000xxxxx01xxxx1xxxx1xxxx
sel. */
- return 1888;
+ return 1924;
}
}
}
@@ -22877,7 +22954,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1000xxxxx010xxxxxxxxxxxxx
ld1sh. */
- return 1636;
+ return 1688;
}
else
{
@@ -22885,7 +22962,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1000xxxxx011xxxxxxxxxxxxx
ldff1sh. */
- return 1736;
+ return 1777;
}
}
}
@@ -22903,7 +22980,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x11000xxxx01xxxx0xxxx0xxxx
orr. */
- return 1823;
+ return 1859;
}
else
{
@@ -22911,7 +22988,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x11000xxxx01xxxx0xxxx1xxxx
orn. */
- return 1818;
+ return 1854;
}
}
else
@@ -22920,7 +22997,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x11001xxxx01xxxx0xxxxxxxxx
brkb. */
- return 1366;
+ return 1418;
}
}
else
@@ -22931,7 +23008,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1100xxxxx01xxxx1xxxx0xxxx
nor. */
- return 1815;
+ return 1851;
}
else
{
@@ -22939,7 +23016,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1100xxxxx01xxxx1xxxx1xxxx
nand. */
- return 1812;
+ return 1848;
}
}
}
@@ -22951,7 +23028,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1100xxxxx010xxxxxxxxxxxxx
ld1sb. */
- return 1624;
+ return 1676;
}
else
{
@@ -22959,7 +23036,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1100xxxxx011xxxxxxxxxxxxx
ldff1sb. */
- return 1724;
+ return 1768;
}
}
}
@@ -22980,7 +23057,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x10100xxxx01xxxx0xxxx0xxxx
ands. */
- return 1351;
+ return 1403;
}
else
{
@@ -22990,7 +23067,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x101010xxx01xxxx0xxxx0xxxx
brkas. */
- return 1365;
+ return 1417;
}
else
{
@@ -22998,7 +23075,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x101011xxx01xxxx0xxxx0xxxx
brkns. */
- return 1369;
+ return 1421;
}
}
}
@@ -23008,7 +23085,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1010xxxxx01xxxx1xxxx0xxxx
eors. */
- return 1438;
+ return 1490;
}
}
else
@@ -23017,7 +23094,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1010xxxxx01xxxxxxxxx1xxxx
bics. */
- return 1363;
+ return 1415;
}
}
else
@@ -23028,7 +23105,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1010xxxxx010xxxxxxxxxxxxx
ld1w. */
- return 1655;
+ return 1707;
}
else
{
@@ -23036,7 +23113,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1010xxxxx011xxxxxxxxxxxxx
ldff1w. */
- return 1755;
+ return 1793;
}
}
}
@@ -23054,7 +23131,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x11100xxxx01xxxx0xxxx0xxxx
orrs. */
- return 1824;
+ return 1860;
}
else
{
@@ -23062,7 +23139,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x11101xxxx01xxxx0xxxx0xxxx
brkbs. */
- return 1367;
+ return 1419;
}
}
else
@@ -23071,7 +23148,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1110xxxxx01xxxx1xxxx0xxxx
nors. */
- return 1816;
+ return 1852;
}
}
else
@@ -23082,7 +23159,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1110xxxxx01xxxx0xxxx1xxxx
orns. */
- return 1819;
+ return 1855;
}
else
{
@@ -23090,7 +23167,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1110xxxxx01xxxx1xxxx1xxxx
nands. */
- return 1813;
+ return 1849;
}
}
}
@@ -23102,7 +23179,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1110xxxxx010xxxxxxxxxxxxx
ld1sb. */
- return 1626;
+ return 1678;
}
else
{
@@ -23110,7 +23187,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1110xxxxx011xxxxxxxxxxxxx
ldff1sb. */
- return 1728;
+ return 1770;
}
}
}
@@ -23126,7 +23203,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx01xxxxxxxxx0xxxx
psel. */
- return 2466;
+ return 2492;
}
else
{
@@ -23142,7 +23219,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx01x000xxxxx10xxx
whilege. */
- return 2949;
+ return 2975;
}
else
{
@@ -23150,7 +23227,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx01x000xxxxx11xxx
whilegt. */
- return 2950;
+ return 2976;
}
}
else
@@ -23163,7 +23240,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx010100xxxxx1xxx0
whilege. */
- return 2486;
+ return 2512;
}
else
{
@@ -23171,7 +23248,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx010100xxxxx1xxx1
whilegt. */
- return 2487;
+ return 2513;
}
}
else
@@ -23180,7 +23257,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx011100xxxxx1xxxx
pext. */
- return 2690;
+ return 2716;
}
}
}
@@ -23194,7 +23271,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx01x010xxxxx10xxx
whilehs. */
- return 2952;
+ return 2978;
}
else
{
@@ -23202,7 +23279,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx01x010xxxxx11xxx
whilehi. */
- return 2951;
+ return 2977;
}
}
else
@@ -23215,7 +23292,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx010110xxxxx1xxx0
whilehs. */
- return 2489;
+ return 2515;
}
else
{
@@ -23223,7 +23300,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx010110xxxxx1xxx1
whilehi. */
- return 2488;
+ return 2514;
}
}
else
@@ -23232,7 +23309,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx011110xxxxx1xxxx
ptrue. */
- return 2692;
+ return 2718;
}
}
}
@@ -23249,7 +23326,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx01x001xxxxx10xxx
whilelt. */
- return 2956;
+ return 2982;
}
else
{
@@ -23257,7 +23334,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx01x001xxxxx11xxx
whilele. */
- return 2953;
+ return 2979;
}
}
else
@@ -23270,7 +23347,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx010101xxxxx1xxx0
whilelt. */
- return 2493;
+ return 2519;
}
else
{
@@ -23278,7 +23355,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx010101xxxxx1xxx1
whilele. */
- return 2490;
+ return 2516;
}
}
else
@@ -23287,7 +23364,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx011101xxxxx1xxxx
pext. */
- return 2691;
+ return 2717;
}
}
}
@@ -23301,7 +23378,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx01x011xxxxx10xxx
whilelo. */
- return 2954;
+ return 2980;
}
else
{
@@ -23309,7 +23386,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx01x011xxxxx11xxx
whilels. */
- return 2955;
+ return 2981;
}
}
else
@@ -23320,7 +23397,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx01x111xxxxx1xxx0
whilelo. */
- return 2491;
+ return 2517;
}
else
{
@@ -23328,7 +23405,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx01x111xxxxx1xxx1
whilels. */
- return 2492;
+ return 2518;
}
}
}
@@ -23347,7 +23424,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1001xxxxx010xxxxxxxxxxxxx
ld1sh. */
- return 1637;
+ return 1689;
}
else
{
@@ -23355,7 +23432,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1101xxxxx010xxxxxxxxxxxxx
ld1sb. */
- return 1625;
+ return 1677;
}
}
else
@@ -23366,7 +23443,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1011xxxxx010xxxxxxxxxxxxx
ld1w. */
- return 1656;
+ return 1708;
}
else
{
@@ -23374,7 +23451,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1111xxxxx010xxxxxxxxxxxxx
ld1d. */
- return 1578;
+ return 1630;
}
}
}
@@ -23388,7 +23465,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1001xxxxx011xxxxxxxxxxxxx
ldff1sh. */
- return 1738;
+ return 1778;
}
else
{
@@ -23396,7 +23473,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1101xxxxx011xxxxxxxxxxxxx
ldff1sb. */
- return 1726;
+ return 1769;
}
}
else
@@ -23407,7 +23484,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1011xxxxx011xxxxxxxxxxxxx
ldff1w. */
- return 1757;
+ return 1794;
}
else
{
@@ -23415,7 +23492,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1111xxxxx011xxxxxxxxxxxxx
ldff1d. */
- return 1702;
+ return 1750;
}
}
}
@@ -23436,7 +23513,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0xxxxx010xxxxxxxx0xxxx
fcmge. */
- return 1457;
+ return 1509;
}
else
{
@@ -23444,7 +23521,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0xxxxx010xxxxxxxx1xxxx
fcmgt. */
- return 1459;
+ return 1511;
}
}
else
@@ -23453,7 +23530,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx1xxxxx010xxxxxxxxxxxxx
fnmla. */
- return 1521;
+ return 1573;
}
}
else
@@ -23466,7 +23543,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x100xxxxxx010xxxxxxxxxxxxx
st1w. */
- return 3413;
+ return 3513;
}
else
{
@@ -23474,7 +23551,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x110xxxxxx010xxxxxxxxxxxxx
str. */
- return 2010;
+ return 2046;
}
}
else
@@ -23487,7 +23564,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1010xxxxx010xxxxxxxxxxxxx
st1w. */
- return 1968;
+ return 2004;
}
else
{
@@ -23495,7 +23572,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1110xxxxx010xxxxxxxxxxxxx
st1d. */
- return 3411;
+ return 3511;
}
}
else
@@ -23506,7 +23583,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1011xxxxx010xxxxxxxxxxxxx
st1w. */
- return 1970;
+ return 2006;
}
else
{
@@ -23514,7 +23591,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1111xxxxx010xxxxxxxxxxxxx
st1d. */
- return 1947;
+ return 1983;
}
}
}
@@ -23532,7 +23609,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0xxxxx011xxxxxxxx0xxxx
fcmeq. */
- return 1455;
+ return 1507;
}
else
{
@@ -23540,7 +23617,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0xxxxx011xxxxxxxx1xxxx
fcmne. */
- return 1463;
+ return 1515;
}
}
else
@@ -23553,7 +23630,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1000xxxxx011xxxxxxxxxxxxx
stnt1w. */
- return 2006;
+ return 2042;
}
else
{
@@ -23561,7 +23638,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1100xxxxx011xxxxxxxxxxxxx
stnt1d. */
- return 2002;
+ return 2038;
}
}
else
@@ -23572,7 +23649,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1010xxxxx011xxxxxxxxxxxxx
st3w. */
- return 1990;
+ return 2026;
}
else
{
@@ -23580,7 +23657,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1110xxxxx011xxxxxxxxxxxxx
st3d. */
- return 1986;
+ return 2022;
}
}
}
@@ -23593,7 +23670,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx1xxxxx011xxxxxxxxxxxxx
fnmls. */
- return 1522;
+ return 1574;
}
else
{
@@ -23605,7 +23682,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1001xxxxx011xxxxxxxxxxxxx
st2w. */
- return 1982;
+ return 2018;
}
else
{
@@ -23613,7 +23690,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1101xxxxx011xxxxxxxxxxxxx
st2d. */
- return 1978;
+ return 2014;
}
}
else
@@ -23624,7 +23701,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1011xxxxx011xxxxxxxxxxxxx
st4w. */
- return 1998;
+ return 2034;
}
else
{
@@ -23632,7 +23709,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1111xxxxx011xxxxxxxxxxxxx
st4d. */
- return 1994;
+ return 2030;
}
}
}
@@ -23659,7 +23736,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx0xxxxx100xxxxxxxx0xxxx
cmpeq. */
- return 1384;
+ return 1436;
}
else
{
@@ -23667,7 +23744,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx0xxxxx100xxxxxxxx1xxxx
cmpne. */
- return 1407;
+ return 1459;
}
}
else
@@ -23678,7 +23755,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x10x0xxxxx100xxxxxxxxxxxxx
ld1w. */
- return 3409;
+ return 3509;
}
else
{
@@ -23686,7 +23763,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x11x0xxxxx100xxxxxxxxxxxxx
ld1d. */
- return 3407;
+ return 3507;
}
}
}
@@ -23702,7 +23779,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x01001x10000xxxx101xxxxxxxxxxxxx
ld1sh. */
- return 1643;
+ return 1695;
}
else
{
@@ -23710,7 +23787,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x01001x11000xxxx101xxxxxxxxxxxxx
ld1sb. */
- return 1630;
+ return 1682;
}
}
else
@@ -23721,7 +23798,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x01001x10100xxxx101xxxxxxxxxxxxx
ld1w. */
- return 1662;
+ return 1714;
}
else
{
@@ -23729,7 +23806,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x01001x11100xxxx101xxxxxxxxxxxxx
ld1sb. */
- return 1632;
+ return 1684;
}
}
}
@@ -23743,7 +23820,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x01001x10001xxxx101xxxxxxxxxxxxx
ldnf1sh. */
- return 1776;
+ return 1812;
}
else
{
@@ -23751,7 +23828,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x01001x11001xxxx101xxxxxxxxxxxxx
ldnf1sb. */
- return 1773;
+ return 1809;
}
}
else
@@ -23762,7 +23839,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x01001x10101xxxx101xxxxxxxxxxxxx
ldnf1w. */
- return 1779;
+ return 1815;
}
else
{
@@ -23770,7 +23847,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x01001x11101xxxx101xxxxxxxxxxxxx
ldnf1sb. */
- return 1775;
+ return 1811;
}
}
}
@@ -23790,7 +23867,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1x000xxxx11xxxxxxxxx0xxxx
brkpa. */
- return 1370;
+ return 1422;
}
else
{
@@ -23798,7 +23875,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1x100xxxx11xxxxxxxxx0xxxx
brkpas. */
- return 1371;
+ return 1423;
}
}
else
@@ -23811,7 +23888,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx010xx011xxxxxxxxx0xxxx
ptest. */
- return 1858;
+ return 1894;
}
else
{
@@ -23825,7 +23902,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx011xx01100x0xxxxx0xxxx
pfirst. */
- return 1828;
+ return 1864;
}
else
{
@@ -23833,7 +23910,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx011xx01110x0xxxxx0xxxx
ptrue. */
- return 1859;
+ return 1895;
}
}
else
@@ -23844,7 +23921,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1x0011xx011x1x0xxxxx0xxxx
rdffr. */
- return 1865;
+ return 1901;
}
else
{
@@ -23852,7 +23929,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1x1011xx011x1x0xxxxx0xxxx
rdffrs. */
- return 1866;
+ return 1902;
}
}
}
@@ -23862,7 +23939,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx011xx011xxx1xxxxx0xxxx
pfalse. */
- return 1826;
+ return 1862;
}
}
}
@@ -23876,7 +23953,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx01xxx111x0x0xxxxx0xxxx
ptrues. */
- return 1860;
+ return 1896;
}
else
{
@@ -23884,7 +23961,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx01xxx111x1x0xxxxx0xxxx
rdffr. */
- return 1864;
+ return 1900;
}
}
else
@@ -23893,7 +23970,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx01xxx111xxx1xxxxx0xxxx
pnext. */
- return 1829;
+ return 1865;
}
}
}
@@ -23906,7 +23983,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1x00xxxxx11xxxxxxxxx1xxxx
brkpb. */
- return 1372;
+ return 1424;
}
else
{
@@ -23914,7 +23991,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1x10xxxxx11xxxxxxxxx1xxxx
brkpbs. */
- return 1373;
+ return 1425;
}
}
}
@@ -23930,7 +24007,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1000xxxxx110xxxxxxxxxxxxx
ldnt1w. */
- return 1787;
+ return 1823;
}
else
{
@@ -23938,7 +24015,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1100xxxxx110xxxxxxxxxxxxx
ldnt1d. */
- return 1783;
+ return 1819;
}
}
else
@@ -23949,7 +24026,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1010xxxxx110xxxxxxxxxxxxx
ld3w. */
- return 1679;
+ return 1731;
}
else
{
@@ -23957,7 +24034,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1110xxxxx110xxxxxxxxxxxxx
ld3d. */
- return 1675;
+ return 1727;
}
}
}
@@ -23973,7 +24050,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x10000xxxx111xxxxxxxxxxxxx
ldnt1w. */
- return 1788;
+ return 1824;
}
else
{
@@ -23981,7 +24058,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x11000xxxx111xxxxxxxxxxxxx
ldnt1d. */
- return 1784;
+ return 1820;
}
}
else
@@ -23992,7 +24069,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x10100xxxx111xxxxxxxxxxxxx
ld3w. */
- return 1680;
+ return 1732;
}
else
{
@@ -24000,7 +24077,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x11100xxxx111xxxxxxxxxxxxx
ld3d. */
- return 1676;
+ return 1728;
}
}
}
@@ -24012,7 +24089,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x10x01xxxx111xxxxxxxxxxxxx
ld3q. */
- return 3416;
+ return 3516;
}
else
{
@@ -24020,7 +24097,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x11x01xxxx111xxxxxxxxxxxxx
ld4q. */
- return 3417;
+ return 3517;
}
}
}
@@ -24049,7 +24126,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx000000100xxxxxxxxxxxxx
fadd. */
- return 1446;
+ return 1498;
}
else
{
@@ -24057,7 +24134,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx000100100xxxxxxxxxxxxx
fmaxnm. */
- return 1493;
+ return 1545;
}
}
else
@@ -24068,7 +24145,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx000010100xxxxxxxxxxxxx
fmul. */
- return 1513;
+ return 1565;
}
else
{
@@ -24076,7 +24153,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx000110100xxxxxxxxxxxxx
fmax. */
- return 1491;
+ return 1543;
}
}
}
@@ -24090,7 +24167,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx000001100xxxxxxxxxxxxx
fsub. */
- return 1539;
+ return 1591;
}
else
{
@@ -24098,7 +24175,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx000101100xxxxxxxxxxxxx
fminnm. */
- return 1499;
+ return 1551;
}
}
else
@@ -24109,7 +24186,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx000011100xxxxxxxxxxxxx
fsubr. */
- return 1541;
+ return 1593;
}
else
{
@@ -24117,7 +24194,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx000111100xxxxxxxxxxxxx
fmin. */
- return 1497;
+ return 1549;
}
}
}
@@ -24128,7 +24205,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx010xxx100xxxxxxxxxxxxx
ftmad. */
- return 1543;
+ return 1595;
}
}
else
@@ -24145,7 +24222,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx001000100xxxxxxxxxxxxx
fabd. */
- return 1441;
+ return 1493;
}
else
{
@@ -24153,7 +24230,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx011000100xxxxxxxxxxxxx
fadd. */
- return 1447;
+ return 1499;
}
}
else
@@ -24164,7 +24241,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx001100100xxxxxxxxxxxxx
fdivr. */
- return 1487;
+ return 1539;
}
else
{
@@ -24172,7 +24249,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx011100100xxxxxxxxxxxxx
fmaxnm. */
- return 1494;
+ return 1546;
}
}
}
@@ -24186,7 +24263,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx001010100xxxxxxxxxxxxx
fmulx. */
- return 1518;
+ return 1570;
}
else
{
@@ -24194,7 +24271,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx011010100xxxxxxxxxxxxx
fmul. */
- return 1514;
+ return 1566;
}
}
else
@@ -24205,7 +24282,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx001110100xxxxxxxxxxxxx
famax. */
- return 1210;
+ return 1262;
}
else
{
@@ -24213,7 +24290,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx011110100xxxxxxxxxxxxx
fmax. */
- return 1492;
+ return 1544;
}
}
}
@@ -24230,7 +24307,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx001001100xxxxxxxxxxxxx
fscale. */
- return 1536;
+ return 1588;
}
else
{
@@ -24238,7 +24315,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx011001100xxxxxxxxxxxxx
fsub. */
- return 1540;
+ return 1592;
}
}
else
@@ -24249,7 +24326,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx001101100xxxxxxxxxxxxx
fdiv. */
- return 1486;
+ return 1538;
}
else
{
@@ -24257,7 +24334,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx011101100xxxxxxxxxxxxx
fminnm. */
- return 1500;
+ return 1552;
}
}
}
@@ -24269,7 +24346,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0x1011100xxxxxxxxxxxxx
fsubr. */
- return 1542;
+ return 1594;
}
else
{
@@ -24279,7 +24356,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx001111100xxxxxxxxxxxxx
famin. */
- return 1211;
+ return 1263;
}
else
{
@@ -24287,7 +24364,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx011111100xxxxxxxxxxxxx
fmin. */
- return 1498;
+ return 1550;
}
}
}
@@ -24302,7 +24379,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0xxxxx110xxxxxxxx0xxxx
fcmuo. */
- return 1464;
+ return 1516;
}
else
{
@@ -24310,7 +24387,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0xxxxx110xxxxxxxx1xxxx
facge. */
- return 1443;
+ return 1495;
}
}
}
@@ -24324,7 +24401,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1000xxxxx1x0xxxxxxxxxxxxx
st1w. */
- return 1964;
+ return 2000;
}
else
{
@@ -24332,7 +24409,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1100xxxxx1x0xxxxxxxxxxxxx
st1d. */
- return 1943;
+ return 1979;
}
}
else
@@ -24341,7 +24418,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1x10xxxxx1x0xxxxxxxxxxxxx
st1w. */
- return 1969;
+ return 2005;
}
}
}
@@ -24365,7 +24442,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx000000101xxxxxxxxxxxxx
frintn. */
- return 1530;
+ return 1582;
}
else
{
@@ -24373,7 +24450,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx010000101xxxxxxxxxxxxx
scvtf. */
- return 1878;
+ return 1914;
}
}
else
@@ -24384,7 +24461,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx000100101xxxxxxxxxxxxx
frinta. */
- return 1527;
+ return 1579;
}
else
{
@@ -24394,7 +24471,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1x0010100101xxxxxxxxxxxxx
scvtf. */
- return 1877;
+ return 1913;
}
else
{
@@ -24404,7 +24481,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x101010100101xxxxxxxxxxxxx
scvtf. */
- return 1876;
+ return 1912;
}
else
{
@@ -24412,7 +24489,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x111010100101xxxxxxxxxxxxx
scvtf. */
- return 1880;
+ return 1916;
}
}
}
@@ -24428,7 +24505,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx000010101xxxxxxxxxxxxx
frintm. */
- return 1529;
+ return 1581;
}
else
{
@@ -24436,7 +24513,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx010010101xxxxxxxxxxxxx
scvtf. */
- return 1875;
+ return 1911;
}
}
else
@@ -24447,7 +24524,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx000110101xxxxxxxxxxxxx
frintx. */
- return 1532;
+ return 1584;
}
else
{
@@ -24457,7 +24534,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x10x010110101xxxxxxxxxxxxx
scvtf. */
- return 1879;
+ return 1915;
}
else
{
@@ -24465,7 +24542,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x11x010110101xxxxxxxxxxxxx
scvtf. */
- return 1881;
+ return 1917;
}
}
}
@@ -24485,7 +24562,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1x0001000101xxxxxxxxxxxxx
fcvt. */
- return 1466;
+ return 1518;
}
else
{
@@ -24493,7 +24570,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1x1001000101xxxxxxxxxxxxx
fcvt. */
- return 1468;
+ return 1520;
}
}
else
@@ -24502,7 +24579,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx001100101xxxxxxxxxxxxx
frecpx. */
- return 1526;
+ return 1578;
}
}
else
@@ -24515,7 +24592,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x100001x10101xxxxxxxxxxxxx
fcvtx. */
- return 2139;
+ return 2175;
}
else
{
@@ -24523,7 +24600,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x110001x10101xxxxxxxxxxxxx
bfcvt. */
- return 3068;
+ return 3163;
}
}
else
@@ -24532,7 +24609,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1x1001x10101xxxxxxxxxxxxx
fcvt. */
- return 1470;
+ return 1522;
}
}
}
@@ -24546,7 +24623,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x100011xx0101xxxxxxxxxxxxx
flogb. */
- return 2141;
+ return 2177;
}
else
{
@@ -24554,7 +24631,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x110011xx0101xxxxxxxxxxxxx
fcvtzs. */
- return 1475;
+ return 1527;
}
}
else
@@ -24567,7 +24644,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1x1011000101xxxxxxxxxxxxx
fcvtzs. */
- return 1476;
+ return 1528;
}
else
{
@@ -24577,7 +24654,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x101011100101xxxxxxxxxxxxx
fcvtzs. */
- return 1473;
+ return 1525;
}
else
{
@@ -24585,7 +24662,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x111011100101xxxxxxxxxxxxx
fcvtzs. */
- return 1477;
+ return 1529;
}
}
}
@@ -24597,7 +24674,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1x1011010101xxxxxxxxxxxxx
fcvtzs. */
- return 1472;
+ return 1524;
}
else
{
@@ -24607,7 +24684,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x101011110101xxxxxxxxxxxxx
fcvtzs. */
- return 1474;
+ return 1526;
}
else
{
@@ -24615,7 +24692,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x111011110101xxxxxxxxxxxxx
fcvtzs. */
- return 1478;
+ return 1530;
}
}
}
@@ -24637,7 +24714,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx000001101xxxxxxxxxxxxx
frintp. */
- return 1531;
+ return 1583;
}
else
{
@@ -24645,7 +24722,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx010001101xxxxxxxxxxxxx
ucvtf. */
- return 2031;
+ return 2067;
}
}
else
@@ -24658,7 +24735,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1x0001001101xxxxxxxxxxxxx
fcvt. */
- return 1467;
+ return 1519;
}
else
{
@@ -24666,7 +24743,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1x1001001101xxxxxxxxxxxxx
fcvt. */
- return 1469;
+ return 1521;
}
}
else
@@ -24675,7 +24752,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx011001101xxxxxxxxxxxxx
fcvtzu. */
- return 1483;
+ return 1535;
}
}
}
@@ -24689,7 +24766,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1x00x0101101xxxxxxxxxxxxx
ucvtf. */
- return 2030;
+ return 2066;
}
else
{
@@ -24699,7 +24776,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1010x0101101xxxxxxxxxxxxx
ucvtf. */
- return 2029;
+ return 2065;
}
else
{
@@ -24707,7 +24784,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1110x0101101xxxxxxxxxxxxx
ucvtf. */
- return 2033;
+ return 2069;
}
}
}
@@ -24719,7 +24796,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx001101101xxxxxxxxxxxxx
fsqrt. */
- return 1537;
+ return 1589;
}
else
{
@@ -24729,7 +24806,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1x0011101101xxxxxxxxxxxxx
fcvtzu. */
- return 1482;
+ return 1534;
}
else
{
@@ -24739,7 +24816,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x101011101101xxxxxxxxxxxxx
fcvtzu. */
- return 1480;
+ return 1532;
}
else
{
@@ -24747,7 +24824,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x111011101101xxxxxxxxxxxxx
fcvtzu. */
- return 1484;
+ return 1536;
}
}
}
@@ -24766,7 +24843,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx000011101xxxxxxxxxxxxx
frintz. */
- return 1533;
+ return 1585;
}
else
{
@@ -24774,7 +24851,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx010011101xxxxxxxxxxxxx
ucvtf. */
- return 2028;
+ return 2064;
}
}
else
@@ -24785,7 +24862,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx001011101xxxxxxxxxxxxx
fcvt. */
- return 1471;
+ return 1523;
}
else
{
@@ -24793,7 +24870,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx011011101xxxxxxxxxxxxx
fcvtzu. */
- return 1479;
+ return 1531;
}
}
}
@@ -24807,7 +24884,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx000111101xxxxxxxxxxxxx
frinti. */
- return 1528;
+ return 1580;
}
else
{
@@ -24817,7 +24894,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x10x010111101xxxxxxxxxxxxx
ucvtf. */
- return 2032;
+ return 2068;
}
else
{
@@ -24825,7 +24902,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x11x010111101xxxxxxxxxxxxx
ucvtf. */
- return 2034;
+ return 2070;
}
}
}
@@ -24837,7 +24914,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x10x0x1111101xxxxxxxxxxxxx
fcvtzu. */
- return 1481;
+ return 1533;
}
else
{
@@ -24845,7 +24922,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x11x0x1111101xxxxxxxxxxxxx
fcvtzu. */
- return 1485;
+ return 1537;
}
}
}
@@ -24862,7 +24939,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1000xxxxx101xxxxxxxxxxxxx
st1w. */
- return 1965;
+ return 2001;
}
else
{
@@ -24870,7 +24947,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1100xxxxx101xxxxxxxxxxxxx
st1d. */
- return 1944;
+ return 1980;
}
}
else
@@ -24881,7 +24958,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1010xxxxx101xxxxxxxxxxxxx
st1w. */
- return 1972;
+ return 2008;
}
else
{
@@ -24889,7 +24966,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1110xxxxx101xxxxxxxxxxxxx
st1d. */
- return 1948;
+ return 1984;
}
}
}
@@ -24902,7 +24979,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx0xxxxx111xxxxxxxxxxxxx
facgt. */
- return 1444;
+ return 1496;
}
else
{
@@ -24914,7 +24991,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1x000xxxx111xxxxxxxxxxxxx
st1w. */
- return 3412;
+ return 3512;
}
else
{
@@ -24924,7 +25001,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x10100xxxx111xxxxxxxxxxxxx
st1w. */
- return 1973;
+ return 2009;
}
else
{
@@ -24932,7 +25009,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x11100xxxx111xxxxxxxxxxxxx
st1d. */
- return 3410;
+ return 3510;
}
}
}
@@ -24946,7 +25023,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x10001xxxx111xxxxxxxxxxxxx
stnt1w. */
- return 2007;
+ return 2043;
}
else
{
@@ -24954,7 +25031,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x11001xxxx111xxxxxxxxxxxxx
stnt1d. */
- return 2003;
+ return 2039;
}
}
else
@@ -24965,7 +25042,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x10101xxxx111xxxxxxxxxxxxx
st3w. */
- return 1991;
+ return 2027;
}
else
{
@@ -24973,7 +25050,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x11101xxxx111xxxxxxxxxxxxx
st3d. */
- return 1987;
+ return 2023;
}
}
}
@@ -25004,7 +25081,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1x000010xxxx0xxxxxxxxx
cntp. */
- return 1413;
+ return 1465;
}
else
{
@@ -25018,7 +25095,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1x100010x0000xxxxxxxxx
sqincp. */
- return 1922;
+ return 1958;
}
else
{
@@ -25026,7 +25103,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1x100010x1000xxxxxxxxx
wrffr. */
- return 2096;
+ return 2132;
}
}
else
@@ -25035,7 +25112,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1x100010xx100xxxxxxxxx
sqincp. */
- return 1924;
+ return 1960;
}
}
else
@@ -25044,7 +25121,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1x100010xxx10xxxxxxxxx
sqincp. */
- return 1923;
+ return 1959;
}
}
}
@@ -25058,7 +25135,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xx10010x00x0xxxxxxxxx
incp. */
- return 1551;
+ return 1603;
}
else
{
@@ -25066,7 +25143,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xx10010x10x0xxxxxxxxx
setffr. */
- return 1889;
+ return 1925;
}
}
else
@@ -25075,7 +25152,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xx10010xx1x0xxxxxxxxx
incp. */
- return 1552;
+ return 1604;
}
}
}
@@ -25089,7 +25166,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxx1010xx000xxxxxxxxx
sqdecp. */
- return 1908;
+ return 1944;
}
else
{
@@ -25097,7 +25174,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxx1010xx100xxxxxxxxx
sqdecp. */
- return 1910;
+ return 1946;
}
}
else
@@ -25106,7 +25183,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxx1010xxx10xxxxxxxxx
sqdecp. */
- return 1909;
+ return 1945;
}
}
}
@@ -25124,7 +25201,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xx00110xx000xxxxxxxxx
uqincp. */
- return 2071;
+ return 2107;
}
else
{
@@ -25132,7 +25209,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xx10110xx000xxxxxxxxx
decp. */
- return 1426;
+ return 1478;
}
}
else
@@ -25141,7 +25218,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxx1110xx000xxxxxxxxx
uqdecp. */
- return 2057;
+ return 2093;
}
}
else
@@ -25154,7 +25231,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xx00110xx100xxxxxxxxx
uqincp. */
- return 2072;
+ return 2108;
}
else
{
@@ -25162,7 +25239,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xx10110xx100xxxxxxxxx
decp. */
- return 1427;
+ return 1479;
}
}
else
@@ -25171,7 +25248,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxx1110xx100xxxxxxxxx
uqdecp. */
- return 2058;
+ return 2094;
}
}
}
@@ -25183,7 +25260,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxx0110xxx10xxxxxxxxx
uqincp. */
- return 2073;
+ return 2109;
}
else
{
@@ -25191,7 +25268,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxx1110xxx10xxxxxxxxx
uqdecp. */
- return 2059;
+ return 2095;
}
}
}
@@ -25202,7 +25279,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xxxxx10xxxx1xxxxxxxxx
cntp. */
- return 2529;
+ return 2555;
}
}
else
@@ -25215,7 +25292,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x10x1xxxxx100xxxxxxxxxxxxx
ld3q. */
- return 3419;
+ return 3519;
}
else
{
@@ -25223,7 +25300,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x11x1xxxxx100xxxxxxxxxxxxx
ld4q. */
- return 3420;
+ return 3520;
}
}
else
@@ -25238,7 +25315,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x10010xxxx101xxxxxxxxxxxxx
ld1sh. */
- return 1644;
+ return 1696;
}
else
{
@@ -25246,7 +25323,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x11010xxxx101xxxxxxxxxxxxx
ld1sb. */
- return 1631;
+ return 1683;
}
}
else
@@ -25257,7 +25334,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x10110xxxx101xxxxxxxxxxxxx
ld1w. */
- return 1663;
+ return 1715;
}
else
{
@@ -25265,7 +25342,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x11110xxxx101xxxxxxxxxxxxx
ld1d. */
- return 1583;
+ return 1635;
}
}
}
@@ -25279,7 +25356,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x10011xxxx101xxxxxxxxxxxxx
ldnf1sh. */
- return 1777;
+ return 1813;
}
else
{
@@ -25287,7 +25364,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x11011xxxx101xxxxxxxxxxxxx
ldnf1sb. */
- return 1774;
+ return 1810;
}
}
else
@@ -25298,7 +25375,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x10111xxxx101xxxxxxxxxxxxx
ldnf1w. */
- return 1780;
+ return 1816;
}
else
{
@@ -25306,7 +25383,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x11111xxxx101xxxxxxxxxxxxx
ldnf1d. */
- return 1769;
+ return 1805;
}
}
}
@@ -25331,7 +25408,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx10000011xxxxxxxxxxxxxx
add. */
- return 1340;
+ return 1392;
}
else
{
@@ -25339,7 +25416,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx11000011xxxxxxxxxxxxxx
mul. */
- return 1810;
+ return 1846;
}
}
else
@@ -25350,7 +25427,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx10100011xxxxxxxxxxxxxx
smax. */
- return 1890;
+ return 1926;
}
else
{
@@ -25358,7 +25435,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx11100011xxxxxxxxxxxxxx
dup. */
- return 1432;
+ return 1484;
}
}
}
@@ -25368,7 +25445,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xx10011xxxxxxxxxxxxxx
sqadd. */
- return 1899;
+ return 1935;
}
}
else
@@ -25379,7 +25456,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xx01011xxxxxxxxxxxxxx
smin. */
- return 1893;
+ return 1929;
}
else
{
@@ -25387,7 +25464,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xx11011xxxxxxxxxxxxxx
sqsub. */
- return 1929;
+ return 1965;
}
}
}
@@ -25403,7 +25480,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1x000111xxxxxxxxxxxxxx
sub. */
- return 2012;
+ return 2048;
}
else
{
@@ -25413,7 +25490,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx10100111xxxxxxxxxxxxxx
umax. */
- return 2040;
+ return 2076;
}
else
{
@@ -25421,7 +25498,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx11100111xxxxxxxxxxxxxx
fdup. */
- return 1488;
+ return 1540;
}
}
}
@@ -25431,7 +25508,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xx10111xxxxxxxxxxxxxx
uqadd. */
- return 2048;
+ return 2084;
}
}
else
@@ -25444,7 +25521,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1x001111xxxxxxxxxxxxxx
subr. */
- return 2014;
+ return 2050;
}
else
{
@@ -25452,7 +25529,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1x101111xxxxxxxxxxxxxx
umin. */
- return 2043;
+ return 2079;
}
}
else
@@ -25461,7 +25538,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
001001x1xx1xx11111xxxxxxxxxxxxxx
uqsub. */
- return 2078;
+ return 2114;
}
}
}
@@ -25478,7 +25555,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1001xxxxx110xxxxxxxxxxxxx
ld2w. */
- return 1671;
+ return 1723;
}
else
{
@@ -25486,7 +25563,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1101xxxxx110xxxxxxxxxxxxx
ld2d. */
- return 1667;
+ return 1719;
}
}
else
@@ -25497,7 +25574,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1011xxxxx110xxxxxxxxxxxxx
ld4w. */
- return 1687;
+ return 1739;
}
else
{
@@ -25505,7 +25582,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1111xxxxx110xxxxxxxxxxxxx
ld4d. */
- return 1683;
+ return 1735;
}
}
}
@@ -25519,7 +25596,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1001xxxxx111xxxxxxxxxxxxx
ld2w. */
- return 1672;
+ return 1724;
}
else
{
@@ -25527,7 +25604,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1101xxxxx111xxxxxxxxxxxxx
ld2d. */
- return 1668;
+ return 1720;
}
}
else
@@ -25538,7 +25615,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1011xxxxx111xxxxxxxxxxxxx
ld4w. */
- return 1688;
+ return 1740;
}
else
{
@@ -25546,7 +25623,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
101001x1111xxxxx111xxxxxxxxxxxxx
ld4d. */
- return 1684;
+ return 1736;
}
}
}
@@ -25565,7 +25642,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx1xxxxx100xxxxxxxxxxxxx
fmad. */
- return 1490;
+ return 1542;
}
else
{
@@ -25573,7 +25650,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx1xxxxx110xxxxxxxxxxxxx
fnmad. */
- return 1520;
+ return 1572;
}
}
else
@@ -25586,7 +25663,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1001xxxxx1x0xxxxxxxxxxxxx
st1w. */
- return 1966;
+ return 2002;
}
else
{
@@ -25594,7 +25671,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1101xxxxx1x0xxxxxxxxxxxxx
st1d. */
- return 1945;
+ return 1981;
}
}
else
@@ -25603,7 +25680,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1x11xxxxx1x0xxxxxxxxxxxxx
st1w. */
- return 1971;
+ return 2007;
}
}
}
@@ -25617,7 +25694,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx1xxxxx101xxxxxxxxxxxxx
fmsb. */
- return 1511;
+ return 1563;
}
else
{
@@ -25629,7 +25706,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1001xxxxx101xxxxxxxxxxxxx
st1w. */
- return 1967;
+ return 2003;
}
else
{
@@ -25637,7 +25714,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1101xxxxx101xxxxxxxxxxxxx
st1d. */
- return 1946;
+ return 1982;
}
}
else
@@ -25646,7 +25723,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x1x11xxxxx101xxxxxxxxxxxxx
st1w. */
- return 1974;
+ return 2010;
}
}
}
@@ -25658,7 +25735,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
011001x1xx1xxxxx111xxxxxxxxxxxxx
fnmsb. */
- return 1523;
+ return 1575;
}
else
{
@@ -25670,7 +25747,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x10x10xxxx111xxxxxxxxxxxxx
st1w. */
- return 1975;
+ return 2011;
}
else
{
@@ -25678,7 +25755,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x11x10xxxx111xxxxxxxxxxxxx
st1d. */
- return 1949;
+ return 1985;
}
}
else
@@ -25691,7 +25768,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x10011xxxx111xxxxxxxxxxxxx
st2w. */
- return 1983;
+ return 2019;
}
else
{
@@ -25699,7 +25776,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x11011xxxx111xxxxxxxxxxxxx
st2d. */
- return 1979;
+ return 2015;
}
}
else
@@ -25710,7 +25787,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x10111xxxx111xxxxxxxxxxxxx
st4w. */
- return 1999;
+ return 2035;
}
else
{
@@ -25718,7 +25795,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
111001x11111xxxx111xxxxxxxxxxxxx
st4d. */
- return 1995;
+ return 2031;
}
}
}
@@ -25782,7 +25859,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11010100xx0xxxxxxxxxxxxxxxx0xx00
hlt. */
- return 753;
+ return 793;
}
else
{
@@ -25792,7 +25869,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11010100x01xxxxxxxxxxxxxxxx0xx00
brk. */
- return 752;
+ return 792;
}
else
{
@@ -25800,7 +25877,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11010100x11xxxxxxxxxxxxxxxx0xx00
tcancel. */
- return 1226;
+ return 1278;
}
}
}
@@ -25812,7 +25889,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11010100xx0xxxxxxxxxxxxxxxx0xx10
hvc. */
- return 750;
+ return 790;
}
else
{
@@ -25820,7 +25897,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11010100xx1xxxxxxxxxxxxxxxx0xx10
dcps2. */
- return 756;
+ return 796;
}
}
}
@@ -25834,7 +25911,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11010100xx0xxxxxxxxxxxxxxxx0xx01
svc. */
- return 749;
+ return 789;
}
else
{
@@ -25842,7 +25919,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11010100xx1xxxxxxxxxxxxxxxx0xx01
dcps1. */
- return 755;
+ return 795;
}
}
else
@@ -25853,7 +25930,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11010100xx0xxxxxxxxxxxxxxxx0xx11
smc. */
- return 751;
+ return 791;
}
else
{
@@ -25861,7 +25938,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11010100xx1xxxxxxxxxxxxxxxx0xx11
dcps3. */
- return 757;
+ return 797;
}
}
}
@@ -25928,7 +26005,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1010100xxxxxxxxxxxxxxxxxxx1xxxx
bc.c. */
- return 3204;
+ return 3304;
}
else
{
@@ -26029,7 +26106,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1010101x00xxxxxxxxxxxxxxxxxxxxx
xaflag. */
- return 811;
+ return 863;
}
else
{
@@ -26059,7 +26136,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10101x1x100xxxxxxxxxxxxxxxxxxxx
sysp. */
- return 1273;
+ return 1325;
}
else
{
@@ -26067,7 +26144,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10101x1x101xxxxxxxxxxxxxxxxxxxx
msrr. */
- return 1291;
+ return 1343;
}
}
}
@@ -26081,7 +26158,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1010101x01xxxxxxxxxxxxxxxxxxxxx
tstart. */
- return 1223;
+ return 1275;
}
else
{
@@ -26109,7 +26186,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10101x1x11xxxxxxxxxxxxxxxxxxxxx
mrrs. */
- return 1290;
+ return 1342;
}
}
}
@@ -26121,11 +26198,209 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 25) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- xx110100xxxxxxxxxxxxxxxxxxxxxxxx
- cbz. */
- return 655;
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x0110100xxxxxxxxxxxxxxxxxxxxxxxx
+ cbz. */
+ return 655;
+ }
+ else
+ {
+ if (((word >> 14) & 0x1) == 0)
+ {
+ if (((word >> 15) & 0x1) == 0)
+ {
+ if (((word >> 21) & 0x1) == 0)
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110100x00xxxxx00xxxxxxxxxxxxxx
+ cbgt. */
+ return 658;
+ }
+ else
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110100010xxxxx00xxxxxxxxxxxxxx
+ cbhi. */
+ return 662;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110100110xxxxx00xxxxxxxxxxxxxx
+ cbeq. */
+ return 666;
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110100x01xxxxx00xxxxxxxxxxxxxx
+ cbge. */
+ return 660;
+ }
+ else
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110100011xxxxx00xxxxxxxxxxxxxx
+ cbhs. */
+ return 664;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110100111xxxxx00xxxxxxxxxxxxxx
+ cbne. */
+ return 667;
+ }
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 21) & 0x1) == 0)
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110100x00xxxxx10xxxxxxxxxxxxxx
+ cbbgt. */
+ return 678;
+ }
+ else
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110100010xxxxx10xxxxxxxxxxxxxx
+ cbbhi. */
+ return 682;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110100110xxxxx10xxxxxxxxxxxxxx
+ cbbeq. */
+ return 686;
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110100x01xxxxx10xxxxxxxxxxxxxx
+ cbbge. */
+ return 680;
+ }
+ else
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110100011xxxxx10xxxxxxxxxxxxxx
+ cbbhs. */
+ return 684;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110100111xxxxx10xxxxxxxxxxxxxx
+ cbbne. */
+ return 687;
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 21) & 0x1) == 0)
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110100x00xxxxxx1xxxxxxxxxxxxxx
+ cbhgt. */
+ return 688;
+ }
+ else
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110100010xxxxxx1xxxxxxxxxxxxxx
+ cbhhi. */
+ return 692;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110100110xxxxxx1xxxxxxxxxxxxxx
+ cbheq. */
+ return 696;
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110100x01xxxxxx1xxxxxxxxxxxxxx
+ cbhge. */
+ return 690;
+ }
+ else
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110100011xxxxxx1xxxxxxxxxxxxxx
+ cbhhs. */
+ return 694;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110100111xxxxxx1xxxxxxxxxxxxxx
+ cbhne. */
+ return 697;
+ }
+ }
+ }
+ }
+ }
}
else
{
@@ -26133,18 +26408,84 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx110110xxxxxxxxxxxxxxxxxxxxxxxx
tbz. */
- return 1300;
+ return 1352;
}
}
else
{
if (((word >> 25) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- xx110101xxxxxxxxxxxxxxxxxxxxxxxx
- cbnz. */
- return 656;
+ if (((word >> 30) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x0110101xxxxxxxxxxxxxxxxxxxxxxxx
+ cbnz. */
+ return 656;
+ }
+ else
+ {
+ if (((word >> 21) & 0x1) == 0)
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110101x00xxxxxxxxxxxxxxxxxxxxx
+ cbgt. */
+ return 668;
+ }
+ else
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110101010xxxxxxxxxxxxxxxxxxxxx
+ cbhi. */
+ return 672;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110101110xxxxxxxxxxxxxxxxxxxxx
+ cbeq. */
+ return 676;
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110101x01xxxxxxxxxxxxxxxxxxxxx
+ cblt. */
+ return 670;
+ }
+ else
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110101011xxxxxxxxxxxxxxxxxxxxx
+ cblo. */
+ return 674;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ x1110101111xxxxxxxxxxxxxxxxxxxxx
+ cbne. */
+ return 677;
+ }
+ }
+ }
+ }
}
else
{
@@ -26152,7 +26493,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx110111xxxxxxxxxxxxxxxxxxxxxxxx
tbnz. */
- return 1301;
+ return 1353;
}
}
}
@@ -26184,7 +26525,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx10110000xxxxxxxxxxxxxxxxxxxxxx
stnp. */
- return 973;
+ return 1025;
}
}
else
@@ -26218,7 +26559,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx00110100xxxxx1xx0xxxxxxxxxxxxx
stl1. */
- return 1202;
+ return 1254;
}
}
else
@@ -26247,7 +26588,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx10110100xxxxxxxxxxxxxxxxxxxxxx
stp. */
- return 977;
+ return 1029;
}
}
}
@@ -26311,7 +26652,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx10110x10xxxxxxxxxxxxxxxxxxxxxx
stp. */
- return 983;
+ return 1035;
}
}
}
@@ -26335,7 +26676,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx10110001xxxxxxxxxxxxxxxxxxxxxx
ldnp. */
- return 974;
+ return 1026;
}
}
else
@@ -26369,7 +26710,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx00110101xxxxx1xx0xxxxxxxxxxxxx
ldap1. */
- return 1203;
+ return 1255;
}
}
else
@@ -26398,7 +26739,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx10110101xxxxxxxxxxxxxxxxxxxxxx
ldp. */
- return 978;
+ return 1030;
}
}
}
@@ -26462,7 +26803,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx10110x11xxxxxxxxxxxxxxxxxxxxxx
ldp. */
- return 984;
+ return 1036;
}
}
}
@@ -26477,7 +26818,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011100xxxxxxxxxxxxxxxxxxxxxxxx
ldr. */
- return 988;
+ return 1040;
}
else
{
@@ -26485,21 +26826,351 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 11) & 0x1) == 0)
{
- if (((word >> 22) & 0x1) == 0)
+ if (((word >> 21) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- xx111100x0xxxxxxxxxx00xxxxxxxxxx
- stur. */
- return 925;
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100x00xxxxxxxxx00xxxxxxxxxx
+ stur. */
+ return 977;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100x10xxxxxxxxx00xxxxxxxxxx
+ ldur. */
+ return 978;
+ }
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- xx111100x1xxxxxxxxxx00xxxxxxxxxx
- ldur. */
- return 926;
+ if (((word >> 12) & 0x1) == 0)
+ {
+ if (((word >> 13) & 0x1) == 0)
+ {
+ if (((word >> 14) & 0x1) == 0)
+ {
+ if (((word >> 15) & 0x1) == 0)
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100001xxxxx000000xxxxxxxxxx
+ ldfadd. */
+ return 3072;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100101xxxxx000000xxxxxxxxxx
+ ldfadda. */
+ return 3073;
+ }
+ }
+ else
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100011xxxxx000000xxxxxxxxxx
+ ldfaddl. */
+ return 3075;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100111xxxxx000000xxxxxxxxxx
+ ldfaddal. */
+ return 3074;
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100x01xxxxx100000xxxxxxxxxx
+ stfadd. */
+ return 3112;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100x11xxxxx100000xxxxxxxxxx
+ stfaddl. */
+ return 3113;
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 15) & 0x1) == 0)
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100001xxxxx010000xxxxxxxxxx
+ ldfmax. */
+ return 3076;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100101xxxxx010000xxxxxxxxxx
+ ldfmaxa. */
+ return 3077;
+ }
+ }
+ else
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100011xxxxx010000xxxxxxxxxx
+ ldfmaxl. */
+ return 3079;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100111xxxxx010000xxxxxxxxxx
+ ldfmaxal. */
+ return 3078;
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100x01xxxxx110000xxxxxxxxxx
+ stfmax. */
+ return 3114;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100x11xxxxx110000xxxxxxxxxx
+ stfmaxl. */
+ return 3115;
+ }
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 15) & 0x1) == 0)
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100001xxxxx0x1000xxxxxxxxxx
+ ldfmaxnm. */
+ return 3080;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100101xxxxx0x1000xxxxxxxxxx
+ ldfmaxnma. */
+ return 3081;
+ }
+ }
+ else
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100011xxxxx0x1000xxxxxxxxxx
+ ldfmaxnml. */
+ return 3083;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100111xxxxx0x1000xxxxxxxxxx
+ ldfmaxnmal. */
+ return 3082;
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100x01xxxxx1x1000xxxxxxxxxx
+ stfmaxnm. */
+ return 3116;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100x11xxxxx1x1000xxxxxxxxxx
+ stfmaxnml. */
+ return 3117;
+ }
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 13) & 0x1) == 0)
+ {
+ if (((word >> 15) & 0x1) == 0)
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100001xxxxx0x0100xxxxxxxxxx
+ ldfmin. */
+ return 3084;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100101xxxxx0x0100xxxxxxxxxx
+ ldfmina. */
+ return 3085;
+ }
+ }
+ else
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100011xxxxx0x0100xxxxxxxxxx
+ ldfminl. */
+ return 3087;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100111xxxxx0x0100xxxxxxxxxx
+ ldfminal. */
+ return 3086;
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100x01xxxxx1x0100xxxxxxxxxx
+ stfmin. */
+ return 3118;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100x11xxxxx1x0100xxxxxxxxxx
+ stfminl. */
+ return 3119;
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 15) & 0x1) == 0)
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100001xxxxx0x1100xxxxxxxxxx
+ ldfminnm. */
+ return 3088;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100101xxxxx0x1100xxxxxxxxxx
+ ldfminnma. */
+ return 3089;
+ }
+ }
+ else
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100011xxxxx0x1100xxxxxxxxxx
+ ldfminnml. */
+ return 3091;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100111xxxxx0x1100xxxxxxxxxx
+ ldfminnmal. */
+ return 3090;
+ }
+ }
+ }
+ else
+ {
+ if (((word >> 22) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100x01xxxxx1x1100xxxxxxxxxx
+ stfminnm. */
+ return 3120;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx111100x11xxxxx1x1100xxxxxxxxxx
+ stfminnml. */
+ return 3121;
+ }
+ }
+ }
+ }
}
}
else
@@ -26510,7 +27181,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx111100x0xxxxxxxxxx10xxxxxxxxxx
str. */
- return 904;
+ return 956;
}
else
{
@@ -26518,7 +27189,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx111100x1xxxxxxxxxx10xxxxxxxxxx
ldr. */
- return 905;
+ return 957;
}
}
}
@@ -26530,7 +27201,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx111100x0xxxxxxxxxxx1xxxxxxxxxx
str. */
- return 873;
+ return 925;
}
else
{
@@ -26538,7 +27209,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx111100x1xxxxxxxxxxx1xxxxxxxxxx
ldr. */
- return 874;
+ return 926;
}
}
}
@@ -26555,7 +27226,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011101x0xxxxxxxxxxx0xxxxxxxxxx
stlur. */
- return 1205;
+ return 1257;
}
else
{
@@ -26573,7 +27244,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110100xxxxxx0000x1xxxxxxxxxx
cpyp. */
- return 3132;
+ return 3232;
}
else
{
@@ -26581,7 +27252,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110110xxxxxx0000x1xxxxxxxxxx
cpye. */
- return 3134;
+ return 3234;
}
}
else
@@ -26592,7 +27263,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110100xxxxxx1000x1xxxxxxxxxx
cpyprn. */
- return 3138;
+ return 3238;
}
else
{
@@ -26600,7 +27271,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110110xxxxxx1000x1xxxxxxxxxx
cpyern. */
- return 3140;
+ return 3240;
}
}
}
@@ -26614,7 +27285,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110100xxxxxx0100x1xxxxxxxxxx
cpypwn. */
- return 3135;
+ return 3235;
}
else
{
@@ -26622,7 +27293,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110110xxxxxx0100x1xxxxxxxxxx
cpyewn. */
- return 3137;
+ return 3237;
}
}
else
@@ -26633,7 +27304,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110100xxxxxx1100x1xxxxxxxxxx
cpypn. */
- return 3141;
+ return 3241;
}
else
{
@@ -26641,7 +27312,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110110xxxxxx1100x1xxxxxxxxxx
cpyen. */
- return 3143;
+ return 3243;
}
}
}
@@ -26658,7 +27329,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110100xxxxxx0010x1xxxxxxxxxx
cpyprt. */
- return 3156;
+ return 3256;
}
else
{
@@ -26666,7 +27337,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110110xxxxxx0010x1xxxxxxxxxx
cpyert. */
- return 3158;
+ return 3258;
}
}
else
@@ -26677,7 +27348,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110100xxxxxx1010x1xxxxxxxxxx
cpyprtrn. */
- return 3162;
+ return 3262;
}
else
{
@@ -26685,7 +27356,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110110xxxxxx1010x1xxxxxxxxxx
cpyertrn. */
- return 3164;
+ return 3264;
}
}
}
@@ -26699,7 +27370,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110100xxxxxx0110x1xxxxxxxxxx
cpyprtwn. */
- return 3159;
+ return 3259;
}
else
{
@@ -26707,7 +27378,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110110xxxxxx0110x1xxxxxxxxxx
cpyertwn. */
- return 3161;
+ return 3261;
}
}
else
@@ -26718,7 +27389,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110100xxxxxx1110x1xxxxxxxxxx
cpyprtn. */
- return 3165;
+ return 3265;
}
else
{
@@ -26726,7 +27397,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110110xxxxxx1110x1xxxxxxxxxx
cpyertn. */
- return 3167;
+ return 3267;
}
}
}
@@ -26746,7 +27417,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110100xxxxxx0001x1xxxxxxxxxx
cpypwt. */
- return 3144;
+ return 3244;
}
else
{
@@ -26754,7 +27425,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110110xxxxxx0001x1xxxxxxxxxx
cpyewt. */
- return 3146;
+ return 3246;
}
}
else
@@ -26765,7 +27436,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110100xxxxxx1001x1xxxxxxxxxx
cpypwtrn. */
- return 3150;
+ return 3250;
}
else
{
@@ -26773,7 +27444,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110110xxxxxx1001x1xxxxxxxxxx
cpyewtrn. */
- return 3152;
+ return 3252;
}
}
}
@@ -26787,7 +27458,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110100xxxxxx0101x1xxxxxxxxxx
cpypwtwn. */
- return 3147;
+ return 3247;
}
else
{
@@ -26795,7 +27466,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110110xxxxxx0101x1xxxxxxxxxx
cpyewtwn. */
- return 3149;
+ return 3249;
}
}
else
@@ -26806,7 +27477,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110100xxxxxx1101x1xxxxxxxxxx
cpypwtn. */
- return 3153;
+ return 3253;
}
else
{
@@ -26814,7 +27485,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110110xxxxxx1101x1xxxxxxxxxx
cpyewtn. */
- return 3155;
+ return 3255;
}
}
}
@@ -26831,7 +27502,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110100xxxxxx0011x1xxxxxxxxxx
cpypt. */
- return 3168;
+ return 3268;
}
else
{
@@ -26839,7 +27510,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110110xxxxxx0011x1xxxxxxxxxx
cpyet. */
- return 3170;
+ return 3270;
}
}
else
@@ -26850,7 +27521,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110100xxxxxx1011x1xxxxxxxxxx
cpyptrn. */
- return 3174;
+ return 3274;
}
else
{
@@ -26858,7 +27529,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110110xxxxxx1011x1xxxxxxxxxx
cpyetrn. */
- return 3176;
+ return 3276;
}
}
}
@@ -26872,7 +27543,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110100xxxxxx0111x1xxxxxxxxxx
cpyptwn. */
- return 3171;
+ return 3271;
}
else
{
@@ -26880,7 +27551,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110110xxxxxx0111x1xxxxxxxxxx
cpyetwn. */
- return 3173;
+ return 3273;
}
}
else
@@ -26891,7 +27562,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110100xxxxxx1111x1xxxxxxxxxx
cpyptn. */
- return 3177;
+ return 3277;
}
else
{
@@ -26899,7 +27570,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110110xxxxxx1111x1xxxxxxxxxx
cpyetn. */
- return 3179;
+ return 3279;
}
}
}
@@ -26913,7 +27584,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx111101x0xxxxxxxxxxxxxxxxxxxxxx
str. */
- return 892;
+ return 944;
}
}
else
@@ -26926,7 +27597,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011101x1xxxxxxxxxxx0xxxxxxxxxx
ldapur. */
- return 1204;
+ return 1256;
}
else
{
@@ -26944,7 +27615,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110101xxxxxx0000x1xxxxxxxxxx
cpym. */
- return 3133;
+ return 3233;
}
else
{
@@ -26952,7 +27623,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110111xxxxxx0000x1xxxxxxxxxx
setgp. */
- return 3192;
+ return 3292;
}
}
else
@@ -26963,7 +27634,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110101xxxxxx1000x1xxxxxxxxxx
cpymrn. */
- return 3139;
+ return 3239;
}
else
{
@@ -26971,7 +27642,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110111xxxxxx1000x1xxxxxxxxxx
setge. */
- return 3194;
+ return 3294;
}
}
}
@@ -26985,7 +27656,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110101xxxxxx0100x1xxxxxxxxxx
cpymwn. */
- return 3136;
+ return 3236;
}
else
{
@@ -26993,7 +27664,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110111xxxxxx0100x1xxxxxxxxxx
setgm. */
- return 3193;
+ return 3293;
}
}
else
@@ -27002,7 +27673,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011101x1xxxxxx1100x1xxxxxxxxxx
cpymn. */
- return 3142;
+ return 3242;
}
}
}
@@ -27018,7 +27689,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110101xxxxxx0010x1xxxxxxxxxx
cpymrt. */
- return 3157;
+ return 3257;
}
else
{
@@ -27026,7 +27697,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110111xxxxxx0010x1xxxxxxxxxx
setgpn. */
- return 3198;
+ return 3298;
}
}
else
@@ -27037,7 +27708,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110101xxxxxx1010x1xxxxxxxxxx
cpymrtrn. */
- return 3163;
+ return 3263;
}
else
{
@@ -27045,7 +27716,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110111xxxxxx1010x1xxxxxxxxxx
setgen. */
- return 3200;
+ return 3300;
}
}
}
@@ -27059,7 +27730,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110101xxxxxx0110x1xxxxxxxxxx
cpymrtwn. */
- return 3160;
+ return 3260;
}
else
{
@@ -27067,7 +27738,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110111xxxxxx0110x1xxxxxxxxxx
setgmn. */
- return 3199;
+ return 3299;
}
}
else
@@ -27076,7 +27747,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011101x1xxxxxx1110x1xxxxxxxxxx
cpymrtn. */
- return 3166;
+ return 3266;
}
}
}
@@ -27095,7 +27766,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110101xxxxxx0001x1xxxxxxxxxx
cpymwt. */
- return 3145;
+ return 3245;
}
else
{
@@ -27103,7 +27774,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110111xxxxxx0001x1xxxxxxxxxx
setgpt. */
- return 3195;
+ return 3295;
}
}
else
@@ -27114,7 +27785,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110101xxxxxx1001x1xxxxxxxxxx
cpymwtrn. */
- return 3151;
+ return 3251;
}
else
{
@@ -27122,7 +27793,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110111xxxxxx1001x1xxxxxxxxxx
setget. */
- return 3197;
+ return 3297;
}
}
}
@@ -27136,7 +27807,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110101xxxxxx0101x1xxxxxxxxxx
cpymwtwn. */
- return 3148;
+ return 3248;
}
else
{
@@ -27144,7 +27815,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110111xxxxxx0101x1xxxxxxxxxx
setgmt. */
- return 3196;
+ return 3296;
}
}
else
@@ -27153,7 +27824,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011101x1xxxxxx1101x1xxxxxxxxxx
cpymwtn. */
- return 3154;
+ return 3254;
}
}
}
@@ -27169,7 +27840,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110101xxxxxx0011x1xxxxxxxxxx
cpymt. */
- return 3169;
+ return 3269;
}
else
{
@@ -27177,7 +27848,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110111xxxxxx0011x1xxxxxxxxxx
setgptn. */
- return 3201;
+ return 3301;
}
}
else
@@ -27188,7 +27859,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110101xxxxxx1011x1xxxxxxxxxx
cpymtrn. */
- return 3175;
+ return 3275;
}
else
{
@@ -27196,7 +27867,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110111xxxxxx1011x1xxxxxxxxxx
setgetn. */
- return 3203;
+ return 3303;
}
}
}
@@ -27210,7 +27881,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110101xxxxxx0111x1xxxxxxxxxx
cpymtwn. */
- return 3172;
+ return 3272;
}
else
{
@@ -27218,7 +27889,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx01110111xxxxxx0111x1xxxxxxxxxx
setgmtn. */
- return 3202;
+ return 3302;
}
}
else
@@ -27227,7 +27898,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011101x1xxxxxx1111x1xxxxxxxxxx
cpymtn. */
- return 3178;
+ return 3278;
}
}
}
@@ -27240,7 +27911,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx111101x1xxxxxxxxxxxxxxxxxxxxxx
ldr. */
- return 893;
+ return 945;
}
}
}
@@ -27288,7 +27959,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110100xxxxxxxx100xxxxxxxxxx
luti2. */
- return 3479;
+ return 3579;
}
}
}
@@ -27302,7 +27973,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110010xxxxxxxx000xxxxxxxxxx
luti4. */
- return 3481;
+ return 3581;
}
else
{
@@ -27310,7 +27981,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110010xxxxxxxx100xxxxxxxxxx
luti4. */
- return 3482;
+ return 3582;
}
}
else
@@ -27319,7 +27990,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110110xxxxxxxxx00xxxxxxxxxx
luti2. */
- return 3480;
+ return 3580;
}
}
}
@@ -27435,7 +28106,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00001110x00xxxxxx10001xxxxxxxxxx
fmlallbb. */
- return 3503;
+ return 3603;
}
else
{
@@ -27443,7 +28114,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01001110x00xxxxxx10001xxxxxxxxxx
fmlalltb. */
- return 3505;
+ return 3605;
}
}
else
@@ -27454,7 +28125,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00001110x10xxxxxx10001xxxxxxxxxx
fmlallbt. */
- return 3504;
+ return 3604;
}
else
{
@@ -27462,7 +28133,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01001110x10xxxxxx10001xxxxxxxxxx
fmlalltt. */
- return 3506;
+ return 3606;
}
}
}
@@ -27483,7 +28154,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110xx0xxxxx1x1001xxxxxxxxxx
smmla. */
- return 3059;
+ return 3154;
}
}
}
@@ -27516,7 +28187,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110xx0xxxxx1x0101xxxxxxxxxx
sdot. */
- return 2985;
+ return 3020;
}
}
else
@@ -27550,7 +28221,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00001110x00xxxxxx11101xxxxxxxxxx
fcvtn. */
- return 3436;
+ return 3536;
}
else
{
@@ -27558,7 +28229,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01001110x00xxxxxx11101xxxxxxxxxx
fcvtn2. */
- return 3437;
+ return 3537;
}
}
else
@@ -27567,7 +28238,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110x10xxxxxx11101xxxxxxxxxx
fcvtn. */
- return 3438;
+ return 3538;
}
}
}
@@ -27623,7 +28294,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110xx0xxxxx1x1011xxxxxxxxxx
usmmla. */
- return 3061;
+ return 3156;
}
}
}
@@ -27657,7 +28328,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110110xxxxx0x0111xxxxxxxxxx
famax. */
- return 1206;
+ return 1258;
}
}
}
@@ -27667,7 +28338,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110xx0xxxxx1x0111xxxxxxxxxx
usdot. */
- return 3062;
+ return 3157;
}
}
else
@@ -27710,7 +28381,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110x00xxxxxx11111xxxxxxxxxx
fdot. */
- return 3495;
+ return 3595;
}
else
{
@@ -27720,7 +28391,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110010xxxxxx11111xxxxxxxxxx
fdot. */
- return 3497;
+ return 3597;
}
else
{
@@ -27730,7 +28401,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
00001110110xxxxxx11111xxxxxxxxxx
fmlalb. */
- return 3499;
+ return 3599;
}
else
{
@@ -27738,7 +28409,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
01001110110xxxxxx11111xxxxxxxxxx
fmlalt. */
- return 3500;
+ return 3600;
}
}
}
@@ -27758,7 +28429,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110000xxxxxxxxxxxxxxxxxxxxx
eor3. */
- return 2992;
+ return 3027;
}
else
{
@@ -27766,7 +28437,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110100xxxxxxxxxxxxxxxxxxxxx
xar. */
- return 2994;
+ return 3029;
}
}
else
@@ -27777,7 +28448,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110x10xxxxx0xxxxxxxxxxxxxxx
sm3ss1. */
- return 2996;
+ return 3031;
}
else
{
@@ -27791,7 +28462,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110010xxxxx1xxx00xxxxxxxxxx
sm3tt1a. */
- return 2997;
+ return 3032;
}
else
{
@@ -27799,7 +28470,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110110xxxxx1xxx00xxxxxxxxxx
sha512su0. */
- return 2990;
+ return 3025;
}
}
else
@@ -27808,7 +28479,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110x10xxxxx1xxx10xxxxxxxxxx
sm3tt2a. */
- return 2999;
+ return 3034;
}
}
else
@@ -27821,7 +28492,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110010xxxxx1xxx01xxxxxxxxxx
sm3tt1b. */
- return 2998;
+ return 3033;
}
else
{
@@ -27829,7 +28500,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110110xxxxx1xxx01xxxxxxxxxx
sm4e. */
- return 3003;
+ return 3038;
}
}
else
@@ -27838,7 +28509,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110x10xxxxx1xxx11xxxxxxxxxx
sm3tt2b. */
- return 3000;
+ return 3035;
}
}
}
@@ -27993,7 +28664,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx101110110xxxxx0x0111xxxxxxxxxx
famin. */
- return 1208;
+ return 1260;
}
}
else
@@ -28012,7 +28683,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx101110110xxxxx0x1111xxxxxxxxxx
fscale. */
- return 3439;
+ return 3539;
}
}
}
@@ -28041,7 +28712,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx101110xx0xxxxx100101xxxxxxxxxx
udot. */
- return 2984;
+ return 3019;
}
}
else
@@ -28072,7 +28743,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx101110xx0xxxxx101x01xxxxxxxxxx
ummla. */
- return 3060;
+ return 3155;
}
else
{
@@ -28087,11 +28758,33 @@ aarch64_opcode_lookup_1 (uint32_t word)
{
if (((word >> 12) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- xx101110xx0xxxxx1x1011xxxxxxxxxx
- bfmmla. */
- return 3076;
+ if (((word >> 22) & 0x1) == 0)
+ {
+ if (((word >> 23) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx101110000xxxxx1x1011xxxxxxxxxx
+ fmmla. */
+ return 3182;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx101110100xxxxx1x1011xxxxxxxxxx
+ fmmla. */
+ return 3180;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xx101110x10xxxxx1x1011xxxxxxxxxx
+ bfmmla. */
+ return 3171;
+ }
}
else
{
@@ -28101,7 +28794,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx1011100x0xxxxx1x1111xxxxxxxxxx
bfdot. */
- return 3074;
+ return 3169;
}
else
{
@@ -28111,7 +28804,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x01011101x0xxxxx1x1111xxxxxxxxxx
bfmlalb. */
- return 3081;
+ return 3176;
}
else
{
@@ -28119,7 +28812,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11011101x0xxxxx1x1111xxxxxxxxxx
bfmlalt. */
- return 3080;
+ return 3175;
}
}
}
@@ -28143,7 +28836,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011110xx0xxx00xxxxxxxxxxxxxxxx
fcvtzs. */
- return 764;
+ return 804;
}
else
{
@@ -28151,7 +28844,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011110xx0xxx10xxxxxxxxxxxxxxxx
scvtf. */
- return 760;
+ return 800;
}
}
else
@@ -28162,7 +28855,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011110xx0xxx01xxxxxxxxxxxxxxxx
fcvtzu. */
- return 766;
+ return 806;
}
else
{
@@ -28170,7 +28863,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011110xx0xxx11xxxxxxxxxxxxxxxx
ucvtf. */
- return 762;
+ return 802;
}
}
}
@@ -28188,7 +28881,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011110xx0xxxxxx000x0xxxxxxxxxx
sha1c. */
- return 678;
+ return 718;
}
else
{
@@ -28196,7 +28889,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011110xx0xxxxxx100x0xxxxxxxxxx
sha256h. */
- return 682;
+ return 722;
}
}
else
@@ -28207,7 +28900,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011110xx0xxxxxx010x0xxxxxxxxxx
sha1m. */
- return 680;
+ return 720;
}
else
{
@@ -28215,7 +28908,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011110xx0xxxxxx110x0xxxxxxxxxx
sha256su1. */
- return 684;
+ return 724;
}
}
}
@@ -28229,7 +28922,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011110xx0xxxxxx001x0xxxxxxxxxx
sha1p. */
- return 679;
+ return 719;
}
else
{
@@ -28237,7 +28930,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011110xx0xxxxxx101x0xxxxxxxxxx
sha256h2. */
- return 683;
+ return 723;
}
}
else
@@ -28246,7 +28939,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011110xx0xxxxxxx11x0xxxxxxxxxx
sha1su0. */
- return 681;
+ return 721;
}
}
}
@@ -28597,7 +29290,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110xx1x1xx0010010xxxxxxxxxx
aese. */
- return 671;
+ return 711;
}
}
else
@@ -28671,7 +29364,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110xx1x1xx0011010xxxxxxxxxx
aesmc. */
- return 673;
+ return 713;
}
}
else
@@ -28703,7 +29396,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
000011101x1xxxx1011010xxxxxxxxxx
bfcvtn. */
- return 3077;
+ return 3172;
}
else
{
@@ -28711,7 +29404,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
010011101x1xxxx1011010xxxxxxxxxx
bfcvtn2. */
- return 3078;
+ return 3173;
}
}
}
@@ -28746,7 +29439,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110xx1x1xxx010110xxxxxxxxxx
aesd. */
- return 672;
+ return 712;
}
}
}
@@ -28789,7 +29482,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
0x001110xx1x1xx0011110xxxxxxxxxx
aesimc. */
- return 674;
+ return 714;
}
}
else
@@ -29029,7 +29722,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110xx1xxxxx0xxxxxxxxxxxxxxx
bcax. */
- return 2995;
+ return 3030;
}
}
else
@@ -29404,7 +30097,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0101110001xxxx1011110xxxxxxxxxx
f1cvtl. */
- return 3432;
+ return 3532;
}
else
{
@@ -29412,7 +30105,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1101110001xxxx1011110xxxxxxxxxx
f1cvtl2. */
- return 3433;
+ return 3533;
}
}
else
@@ -29423,7 +30116,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0101110101xxxx1011110xxxxxxxxxx
bf1cvtl. */
- return 3428;
+ return 3528;
}
else
{
@@ -29431,7 +30124,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1101110101xxxx1011110xxxxxxxxxx
bf1cvtl2. */
- return 3429;
+ return 3529;
}
}
}
@@ -29445,7 +30138,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0101110011xxxx1011110xxxxxxxxxx
f2cvtl. */
- return 3434;
+ return 3534;
}
else
{
@@ -29453,7 +30146,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1101110011xxxx1011110xxxxxxxxxx
f2cvtl2. */
- return 3435;
+ return 3535;
}
}
else
@@ -29464,7 +30157,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0101110111xxxx1011110xxxxxxxxxx
bf2cvtl. */
- return 3430;
+ return 3530;
}
else
{
@@ -29472,7 +30165,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1101110111xxxx1011110xxxxxxxxxx
bf2cvtl2. */
- return 3431;
+ return 3531;
}
}
}
@@ -29728,7 +30421,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11001110xx1xxxxx100000xxxxxxxxxx
sha512h. */
- return 2988;
+ return 3023;
}
}
}
@@ -29780,7 +30473,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
11001110xx1xxxxx110000xxxxxxxxxx
sm3partw1. */
- return 3001;
+ return 3036;
}
}
}
@@ -30023,7 +30716,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110xx1xxxxx100010xxxxxxxxxx
sha512su1. */
- return 2991;
+ return 3026;
}
}
else
@@ -30099,7 +30792,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x0011100x1xxxxx110010xxxxxxxxxx
sm4ekey. */
- return 3004;
+ return 3039;
}
}
else
@@ -30925,7 +31618,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110xx1xxxxx100001xxxxxxxxxx
sha512h2. */
- return 2989;
+ return 3024;
}
}
else
@@ -30957,7 +31650,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x0011100x1xxxxx110001xxxxxxxxxx
sm3partw2. */
- return 3002;
+ return 3037;
}
}
else
@@ -31197,7 +31890,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
1x001110xx1xxxxx100011xxxxxxxxxx
rax1. */
- return 2993;
+ return 3028;
}
}
else
@@ -31229,7 +31922,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x01011100x1xxxxx110011xxxxxxxxxx
fmlal2. */
- return 3007;
+ return 3042;
}
else
{
@@ -31237,7 +31930,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11011100x1xxxxx110011xxxxxxxxxx
fmlal2. */
- return 3011;
+ return 3046;
}
}
}
@@ -31259,7 +31952,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x01011101x1xxxxx110011xxxxxxxxxx
fmlsl2. */
- return 3008;
+ return 3043;
}
else
{
@@ -31267,7 +31960,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x11011101x1xxxxx110011xxxxxxxxxx
fmlsl2. */
- return 3012;
+ return 3047;
}
}
}
@@ -31306,7 +31999,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x00011100x1xxxxx111011xxxxxxxxxx
fmlal. */
- return 3005;
+ return 3040;
}
else
{
@@ -31314,7 +32007,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10011100x1xxxxx111011xxxxxxxxxx
fmlal. */
- return 3009;
+ return 3044;
}
}
else
@@ -31336,7 +32029,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x00011101x1xxxxx111011xxxxxxxxxx
fmlsl. */
- return 3006;
+ return 3041;
}
else
{
@@ -31344,7 +32037,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x10011101x1xxxxx111011xxxxxxxxxx
fmlsl. */
- return 3010;
+ return 3045;
}
}
else
@@ -31411,7 +32104,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx0011101x1xxxxx110111xxxxxxxxxx
famax. */
- return 1207;
+ return 1259;
}
else
{
@@ -31419,7 +32112,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx1011101x1xxxxx110111xxxxxxxxxx
famin. */
- return 1209;
+ return 1261;
}
}
}
@@ -31471,7 +32164,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx1011101x1xxxxx111111xxxxxxxxxx
fscale. */
- return 3440;
+ return 3540;
}
}
}
@@ -31507,7 +32200,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx100000x00000xxxxxxxxxx
fcvtns. */
- return 768;
+ return 808;
}
else
{
@@ -31515,7 +32208,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx110000x00000xxxxxxxxxx
fcvtms. */
- return 788;
+ return 836;
}
}
else
@@ -31526,7 +32219,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx101000x00000xxxxxxxxxx
fcvtps. */
- return 784;
+ return 830;
}
else
{
@@ -31534,38 +32227,104 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx111000x00000xxxxxxxxxx
fcvtzs. */
- return 792;
+ return 842;
}
}
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- xxx11110xx1xx100x00000xxxxxxxxxx
- fcvtas. */
- return 776;
+ if (((word >> 19) & 0x1) == 0)
+ {
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxx11110xx100100x00000xxxxxxxxxx
+ fcvtas. */
+ return 820;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxx11110xx110100x00000xxxxxxxxxx
+ fcvtms. */
+ return 838;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxx11110xx1x1100x00000xxxxxxxxxx
+ scvtf. */
+ return 816;
+ }
}
}
else
{
if (((word >> 18) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- xxx11110xx1xx010x00000xxxxxxxxxx
- scvtf. */
- return 772;
+ if (((word >> 19) & 0x1) == 0)
+ {
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxx11110xx100010x00000xxxxxxxxxx
+ scvtf. */
+ return 814;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxx11110xx110010x00000xxxxxxxxxx
+ fcvtps. */
+ return 832;
+ }
+ }
+ else
+ {
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxx11110xx101010x00000xxxxxxxxxx
+ fcvtns. */
+ return 810;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxx11110xx111010x00000xxxxxxxxxx
+ fcvtas. */
+ return 822;
+ }
+ }
}
else
{
if (((word >> 19) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- xxx11110xx1x0110x00000xxxxxxxxxx
- fmov. */
- return 780;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxx11110xx100110x00000xxxxxxxxxx
+ fmov. */
+ return 826;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxx11110xx110110x00000xxxxxxxxxx
+ fcvtzs. */
+ return 844;
+ }
}
else
{
@@ -31575,7 +32334,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx101110x00000xxxxxxxxxx
fmov. */
- return 796;
+ return 848;
}
else
{
@@ -31583,7 +32342,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx111110x00000xxxxxxxxxx
fjcvtzs. */
- return 798;
+ return 850;
}
}
}
@@ -31603,7 +32362,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx100001x00000xxxxxxxxxx
fcvtnu. */
- return 770;
+ return 811;
}
else
{
@@ -31611,7 +32370,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx110001x00000xxxxxxxxxx
fcvtmu. */
- return 790;
+ return 839;
}
}
else
@@ -31622,7 +32381,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx101001x00000xxxxxxxxxx
fcvtpu. */
- return 786;
+ return 833;
}
else
{
@@ -31630,38 +32389,104 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx111001x00000xxxxxxxxxx
fcvtzu. */
- return 794;
+ return 845;
}
}
}
else
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- xxx11110xx1xx101x00000xxxxxxxxxx
- fcvtau. */
- return 778;
+ if (((word >> 19) & 0x1) == 0)
+ {
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxx11110xx100101x00000xxxxxxxxxx
+ fcvtau. */
+ return 823;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxx11110xx110101x00000xxxxxxxxxx
+ fcvtmu. */
+ return 841;
+ }
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxx11110xx1x1101x00000xxxxxxxxxx
+ ucvtf. */
+ return 819;
+ }
}
}
else
{
if (((word >> 18) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- xxx11110xx1xx011x00000xxxxxxxxxx
- ucvtf. */
- return 774;
+ if (((word >> 19) & 0x1) == 0)
+ {
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxx11110xx100011x00000xxxxxxxxxx
+ ucvtf. */
+ return 817;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxx11110xx110011x00000xxxxxxxxxx
+ fcvtpu. */
+ return 835;
+ }
+ }
+ else
+ {
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxx11110xx101011x00000xxxxxxxxxx
+ fcvtnu. */
+ return 813;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxx11110xx111011x00000xxxxxxxxxx
+ fcvtau. */
+ return 825;
+ }
+ }
}
else
{
if (((word >> 19) & 0x1) == 0)
{
- /* 33222222222211111111110000000000
- 10987654321098765432109876543210
- xxx11110xx1x0111x00000xxxxxxxxxx
- fmov. */
- return 782;
+ if (((word >> 20) & 0x1) == 0)
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxx11110xx100111x00000xxxxxxxxxx
+ fmov. */
+ return 828;
+ }
+ else
+ {
+ /* 33222222222211111111110000000000
+ 10987654321098765432109876543210
+ xxx11110xx110111x00000xxxxxxxxxx
+ fcvtzu. */
+ return 847;
+ }
}
else
{
@@ -31669,7 +32494,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1x1111x00000xxxxxxxxxx
fmov. */
- return 797;
+ return 849;
}
}
}
@@ -31691,7 +32516,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1x0000010000xxxxxxxxxx
fmov. */
- return 817;
+ return 869;
}
else
{
@@ -31699,7 +32524,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1x1000010000xxxxxxxxxx
frint32z. */
- return 813;
+ return 865;
}
}
else
@@ -31708,7 +32533,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1xx100010000xxxxxxxxxx
frintn. */
- return 826;
+ return 878;
}
}
else
@@ -31721,7 +32546,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1x0001010000xxxxxxxxxx
fneg. */
- return 821;
+ return 873;
}
else
{
@@ -31729,7 +32554,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1x1001010000xxxxxxxxxx
frint64z. */
- return 815;
+ return 867;
}
}
else
@@ -31738,7 +32563,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1xx101010000xxxxxxxxxx
frintm. */
- return 830;
+ return 882;
}
}
}
@@ -31754,7 +32579,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1x0000110000xxxxxxxxxx
fabs. */
- return 819;
+ return 871;
}
else
{
@@ -31762,7 +32587,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1x1000110000xxxxxxxxxx
frint32x. */
- return 814;
+ return 866;
}
}
else
@@ -31771,7 +32596,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1xx100110000xxxxxxxxxx
frintp. */
- return 828;
+ return 880;
}
}
else
@@ -31784,7 +32609,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1x0001110000xxxxxxxxxx
fsqrt. */
- return 823;
+ return 875;
}
else
{
@@ -31792,7 +32617,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1x1001110000xxxxxxxxxx
frint64x. */
- return 816;
+ return 868;
}
}
else
@@ -31801,7 +32626,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1xx101110000xxxxxxxxxx
frintz. */
- return 832;
+ return 884;
}
}
}
@@ -31814,7 +32639,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1xx01xx10000xxxxxxxxxx
fcvt. */
- return 825;
+ return 877;
}
else
{
@@ -31826,7 +32651,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1xx110010000xxxxxxxxxx
frinta. */
- return 834;
+ return 886;
}
else
{
@@ -31834,7 +32659,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1xx111010000xxxxxxxxxx
frintx. */
- return 836;
+ return 888;
}
}
else
@@ -31843,7 +32668,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1xx11x110000xxxxxxxxxx
frinti. */
- return 838;
+ return 890;
}
}
}
@@ -31859,7 +32684,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1xxxxxxx1000xxxxx00xxx
fcmp. */
- return 803;
+ return 855;
}
else
{
@@ -31867,7 +32692,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1xxxxxxx1000xxxxx10xxx
fcmpe. */
- return 805;
+ return 857;
}
}
else
@@ -31878,7 +32703,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1xxxxxxx1000xxxxx01xxx
fcmp. */
- return 807;
+ return 859;
}
else
{
@@ -31886,7 +32711,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1xxxxxxx1000xxxxx11xxx
fcmpe. */
- return 809;
+ return 861;
}
}
}
@@ -31899,7 +32724,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x11110xx1xxxxxxxx100xxxxxxxxxx
fmov. */
- return 866;
+ return 918;
}
else
{
@@ -31949,7 +32774,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x11110xx1xxxxx000010xxxxxxxxxx
fmul. */
- return 840;
+ return 892;
}
else
{
@@ -31957,7 +32782,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11110xx1xxxxx000010xxxxxxxxxx
sha1h. */
- return 675;
+ return 715;
}
}
else
@@ -31970,7 +32795,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011110xx1xxxxx100010xxxxxxxxxx
fnmul. */
- return 856;
+ return 908;
}
else
{
@@ -32003,7 +32828,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011110xx1xxxxx010010xxxxxxxxxx
fmax. */
- return 848;
+ return 900;
}
else
{
@@ -32168,7 +32993,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011110xx1xxxxx001010xxxxxxxxxx
fadd. */
- return 844;
+ return 896;
}
else
{
@@ -32176,7 +33001,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1011110xx1xxxxx001010xxxxxxxxxx
sha256su0. */
- return 677;
+ return 717;
}
}
else
@@ -32295,7 +33120,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx011110xx1xxxxx011010xxxxxxxxxx
fmaxnm. */
- return 852;
+ return 904;
}
else
{
@@ -32342,7 +33167,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0x11110xx1xxxxx000110xxxxxxxxxx
fdiv. */
- return 842;
+ return 894;
}
else
{
@@ -32350,7 +33175,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1x11110xx1xxxxx000110xxxxxxxxxx
sha1su1. */
- return 676;
+ return 716;
}
}
else
@@ -32381,7 +33206,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxx11110xx1xxxxx010110xxxxxxxxxx
fmin. */
- return 850;
+ return 902;
}
else
{
@@ -32550,7 +33375,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011110xx1xxxxx001110xxxxxxxxxx
fsub. */
- return 846;
+ return 898;
}
else
{
@@ -32701,7 +33526,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011110xx1xxxxx011110xxxxxxxxxx
fminnm. */
- return 854;
+ return 906;
}
else
{
@@ -32803,7 +33628,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011110xx1xxxxxxxxx01xxxxx0xxxx
fccmp. */
- return 799;
+ return 851;
}
else
{
@@ -32811,7 +33636,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011110xx1xxxxxxxxx01xxxxx1xxxx
fccmpe. */
- return 801;
+ return 853;
}
}
else
@@ -32974,7 +33799,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011110xx1xxxxxxxxx11xxxxxxxxxx
fcsel. */
- return 868;
+ return 920;
}
else
{
@@ -33187,7 +34012,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx00111100xxxxxx0000x0xxxxxxxxxx
fdot. */
- return 3496;
+ return 3596;
}
else
{
@@ -33197,7 +34022,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x000111110xxxxxx0000x0xxxxxxxxxx
fmlal. */
- return 3013;
+ return 3048;
}
else
{
@@ -33205,7 +34030,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x100111110xxxxxx0000x0xxxxxxxxxx
fmlal. */
- return 3017;
+ return 3052;
}
}
}
@@ -33217,7 +34042,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx00111101xxxxxx0000x0xxxxxxxxxx
fdot. */
- return 3498;
+ return 3598;
}
else
{
@@ -33227,7 +34052,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x000111111xxxxxx0000x0xxxxxxxxxx
fmlalb. */
- return 3501;
+ return 3601;
}
else
{
@@ -33235,7 +34060,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x100111111xxxxxx0000x0xxxxxxxxxx
fmlalt. */
- return 3502;
+ return 3602;
}
}
}
@@ -33259,7 +34084,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0001111xxxxxxxx0100x0xxxxxxxxxx
fmlsl. */
- return 3014;
+ return 3049;
}
else
{
@@ -33267,7 +34092,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1001111xxxxxxxx0100x0xxxxxxxxxx
fmlsl. */
- return 3018;
+ return 3053;
}
}
else
@@ -33517,7 +34342,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011111xx0xxxxx0xxxxxxxxxxxxxxx
fmadd. */
- return 858;
+ return 910;
}
else
{
@@ -33525,7 +34350,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011111xx1xxxxx0xxxxxxxxxxxxxxx
fnmadd. */
- return 862;
+ return 914;
}
}
else
@@ -33777,7 +34602,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x010111100xxxxxx1000x0xxxxxxxxxx
fmlallbb. */
- return 3507;
+ return 3607;
}
else
{
@@ -33785,7 +34610,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x110111100xxxxxx1000x0xxxxxxxxxx
fmlalltb. */
- return 3509;
+ return 3609;
}
}
else
@@ -33796,7 +34621,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x010111110xxxxxx1000x0xxxxxxxxxx
fmlal2. */
- return 3015;
+ return 3050;
}
else
{
@@ -33804,7 +34629,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x110111110xxxxxx1000x0xxxxxxxxxx
fmlal2. */
- return 3019;
+ return 3054;
}
}
}
@@ -33816,7 +34641,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0101111x1xxxxxx1000x0xxxxxxxxxx
fmlallbt. */
- return 3508;
+ return 3608;
}
else
{
@@ -33824,7 +34649,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1101111x1xxxxxx1000x0xxxxxxxxxx
fmlalltt. */
- return 3510;
+ return 3610;
}
}
}
@@ -33847,7 +34672,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0101111xxxxxxxx1100x0xxxxxxxxxx
fmlsl2. */
- return 3016;
+ return 3051;
}
else
{
@@ -33855,7 +34680,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x1101111xxxxxxxx1100x0xxxxxxxxxx
fmlsl2. */
- return 3020;
+ return 3055;
}
}
}
@@ -33911,7 +34736,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx001111xxxxxxxx1110x0xxxxxxxxxx
sdot. */
- return 2987;
+ return 3022;
}
else
{
@@ -33919,7 +34744,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx101111xxxxxxxx1110x0xxxxxxxxxx
udot. */
- return 2986;
+ return 3021;
}
}
}
@@ -34022,7 +34847,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx00111100xxxxxx1111x0xxxxxxxxxx
sudot. */
- return 3064;
+ return 3159;
}
else
{
@@ -34030,7 +34855,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx00111110xxxxxx1111x0xxxxxxxxxx
usdot. */
- return 3063;
+ return 3158;
}
}
else
@@ -34041,7 +34866,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xx00111101xxxxxx1111x0xxxxxxxxxx
bfdot. */
- return 3075;
+ return 3170;
}
else
{
@@ -34051,7 +34876,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x000111111xxxxxx1111x0xxxxxxxxxx
bfmlalb. */
- return 3083;
+ return 3178;
}
else
{
@@ -34059,7 +34884,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x100111111xxxxxx1111x0xxxxxxxxxx
bfmlalt. */
- return 3082;
+ return 3177;
}
}
}
@@ -34306,7 +35131,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011111xx0xxxxx1xxxxxxxxxxxxxxx
fmsub. */
- return 860;
+ return 912;
}
else
{
@@ -34314,7 +35139,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
x0011111xx1xxxxx1xxxxxxxxxxxxxxx
fnmsub. */
- return 864;
+ return 916;
}
}
else
@@ -34546,198 +35371,127 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode)
int value;
switch (key)
{
- case 2437: value = 2439; break; /* mov --> mova. */
- case 2439: return NULL; /* mova --> NULL. */
- case 2436: value = 2438; break; /* mov --> mova. */
- case 2438: return NULL; /* mova --> NULL. */
- case 2678: value = 2686; break; /* mov --> mova. */
- case 2686: return NULL; /* mova --> NULL. */
- case 2674: value = 2682; break; /* mov --> mova. */
- case 2682: return NULL; /* mova --> NULL. */
- case 2676: value = 2684; break; /* mov --> mova. */
- case 2684: return NULL; /* mova --> NULL. */
- case 2672: value = 2680; break; /* mov --> mova. */
- case 2680: return NULL; /* mova --> NULL. */
- case 2679: value = 2687; break; /* mov --> mova. */
- case 2687: return NULL; /* mova --> NULL. */
- case 2675: value = 2683; break; /* mov --> mova. */
- case 2683: return NULL; /* mova --> NULL. */
- case 2677: value = 2685; break; /* mov --> mova. */
- case 2685: return NULL; /* mova --> NULL. */
- case 2673: value = 2681; break; /* mov --> mova. */
- case 2681: return NULL; /* mova --> NULL. */
- case 2441: value = 2446; break; /* ld1b --> ld1b. */
- case 2446: return NULL; /* ld1b --> NULL. */
- case 2443: value = 2448; break; /* ld1w --> ld1w. */
- case 2448: return NULL; /* ld1w --> NULL. */
- case 2442: value = 2447; break; /* ld1h --> ld1h. */
- case 2447: return NULL; /* ld1h --> NULL. */
- case 2444: value = 2449; break; /* ld1d --> ld1d. */
- case 2449: return NULL; /* ld1d --> NULL. */
- case 2451: value = 2456; break; /* st1b --> st1b. */
- case 2456: return NULL; /* st1b --> NULL. */
- case 2453: value = 2458; break; /* st1w --> st1w. */
- case 2458: return NULL; /* st1w --> NULL. */
- case 2452: value = 2457; break; /* st1h --> st1h. */
- case 2457: return NULL; /* st1h --> NULL. */
- case 2454: value = 2459; break; /* st1d --> st1d. */
- case 2459: return NULL; /* st1d --> NULL. */
- case 2445: value = 2450; break; /* ld1q --> ld1q. */
- case 2450: return NULL; /* ld1q --> NULL. */
- case 2532: value = 3314; break; /* fclamp --> bfclamp. */
- case 3314: return NULL; /* bfclamp --> NULL. */
- case 2533: value = 3315; break; /* fclamp --> bfclamp. */
- case 3315: return NULL; /* bfclamp --> NULL. */
- case 2546: value = 3298; break; /* fmax --> bfmax. */
- case 3298: return NULL; /* bfmax --> NULL. */
- case 2550: value = 3302; break; /* fmaxnm --> bfmaxnm. */
- case 3302: return NULL; /* bfmaxnm --> NULL. */
- case 2554: value = 3306; break; /* fmin --> bfmin. */
- case 3306: return NULL; /* bfmin --> NULL. */
- case 2558: value = 3310; break; /* fminnm --> bfminnm. */
- case 3310: return NULL; /* bfminnm --> NULL. */
- case 2548: value = 3300; break; /* fmax --> bfmax. */
- case 3300: return NULL; /* bfmax --> NULL. */
- case 2552: value = 3304; break; /* fmaxnm --> bfmaxnm. */
- case 3304: return NULL; /* bfmaxnm --> NULL. */
- case 2556: value = 3308; break; /* fmin --> bfmin. */
- case 3308: return NULL; /* bfmin --> NULL. */
- case 2560: value = 3312; break; /* fminnm --> bfminnm. */
- case 3312: return NULL; /* bfminnm --> NULL. */
- case 2547: value = 3299; break; /* fmax --> bfmax. */
- case 3299: return NULL; /* bfmax --> NULL. */
- case 2549: value = 3301; break; /* fmax --> bfmax. */
- case 3301: return NULL; /* bfmax --> NULL. */
- case 2551: value = 3303; break; /* fmaxnm --> bfmaxnm. */
- case 3303: return NULL; /* bfmaxnm --> NULL. */
- case 2553: value = 3305; break; /* fmaxnm --> bfmaxnm. */
- case 3305: return NULL; /* bfmaxnm --> NULL. */
- case 2555: value = 3307; break; /* fmin --> bfmin. */
- case 3307: return NULL; /* bfmin --> NULL. */
- case 2557: value = 3309; break; /* fmin --> bfmin. */
- case 3309: return NULL; /* bfmin --> NULL. */
- case 2559: value = 3311; break; /* fminnm --> bfminnm. */
- case 3311: return NULL; /* bfminnm --> NULL. */
- case 2561: value = 3313; break; /* fminnm --> bfminnm. */
- case 3313: return NULL; /* bfminnm --> NULL. */
- case 2455: value = 2460; break; /* st1q --> st1q. */
- case 2460: return NULL; /* st1q --> NULL. */
+ case 2558: value = 3414; break; /* fclamp --> bfclamp. */
+ case 3414: return NULL; /* bfclamp --> NULL. */
+ case 2559: value = 3415; break; /* fclamp --> bfclamp. */
+ case 3415: return NULL; /* bfclamp --> NULL. */
+ case 2572: value = 3398; break; /* fmax --> bfmax. */
+ case 3398: return NULL; /* bfmax --> NULL. */
+ case 3011: value = 3565; break; /* bfscale --> fscale. */
+ case 3565: return NULL; /* fscale --> NULL. */
+ case 2576: value = 3402; break; /* fmaxnm --> bfmaxnm. */
+ case 3402: return NULL; /* bfmaxnm --> NULL. */
+ case 2580: value = 3406; break; /* fmin --> bfmin. */
+ case 3406: return NULL; /* bfmin --> NULL. */
+ case 2584: value = 3410; break; /* fminnm --> bfminnm. */
+ case 3410: return NULL; /* bfminnm --> NULL. */
+ case 2574: value = 3400; break; /* fmax --> bfmax. */
+ case 3400: return NULL; /* bfmax --> NULL. */
+ case 3013: value = 3567; break; /* bfscale --> fscale. */
+ case 3567: return NULL; /* fscale --> NULL. */
+ case 2578: value = 3404; break; /* fmaxnm --> bfmaxnm. */
+ case 3404: return NULL; /* bfmaxnm --> NULL. */
+ case 2582: value = 3408; break; /* fmin --> bfmin. */
+ case 3408: return NULL; /* bfmin --> NULL. */
+ case 2586: value = 3412; break; /* fminnm --> bfminnm. */
+ case 3412: return NULL; /* bfminnm --> NULL. */
+ case 2573: value = 3399; break; /* fmax --> bfmax. */
+ case 3399: return NULL; /* bfmax --> NULL. */
+ case 3012: value = 3566; break; /* bfscale --> fscale. */
+ case 3566: return NULL; /* fscale --> NULL. */
+ case 2575: value = 3401; break; /* fmax --> bfmax. */
+ case 3401: return NULL; /* bfmax --> NULL. */
+ case 3014: value = 3568; break; /* bfscale --> fscale. */
+ case 3568: return NULL; /* fscale --> NULL. */
+ case 2577: value = 3403; break; /* fmaxnm --> bfmaxnm. */
+ case 3403: return NULL; /* bfmaxnm --> NULL. */
+ case 2579: value = 3405; break; /* fmaxnm --> bfmaxnm. */
+ case 3405: return NULL; /* bfmaxnm --> NULL. */
+ case 2581: value = 3407; break; /* fmin --> bfmin. */
+ case 3407: return NULL; /* bfmin --> NULL. */
+ case 2583: value = 3409; break; /* fmin --> bfmin. */
+ case 3409: return NULL; /* bfmin --> NULL. */
+ case 2585: value = 3411; break; /* fminnm --> bfminnm. */
+ case 3411: return NULL; /* bfminnm --> NULL. */
+ case 2587: value = 3413; break; /* fminnm --> bfminnm. */
+ case 3413: return NULL; /* bfminnm --> NULL. */
case 12: value = 19; break; /* add --> addg. */
- case 19: value = 3205; break; /* addg --> smax. */
- case 3205: value = 3206; break; /* smax --> umax. */
- case 3206: value = 3207; break; /* umax --> smin. */
- case 3207: value = 3208; break; /* smin --> umin. */
- case 3208: return NULL; /* umin --> NULL. */
+ case 19: value = 3305; break; /* addg --> smax. */
+ case 3305: value = 3306; break; /* smax --> umax. */
+ case 3306: value = 3307; break; /* umax --> smin. */
+ case 3307: value = 3308; break; /* smin --> umin. */
+ case 3308: return NULL; /* umin --> NULL. */
case 16: value = 20; break; /* sub --> subg. */
case 20: return NULL; /* subg --> NULL. */
- case 971: value = 975; break; /* stnp --> stp. */
- case 975: return NULL; /* stp --> NULL. */
- case 969: value = 970; break; /* stllrb --> stllrh. */
- case 970: return NULL; /* stllrh --> NULL. */
- case 972: value = 976; break; /* ldnp --> ldp. */
- case 976: return NULL; /* ldp --> NULL. */
- case 912: value = 2468; break; /* prfm --> rprfm. */
- case 2468: return NULL; /* rprfm --> NULL. */
- case 1690: value = 1691; break; /* ldff1b --> ldff1b. */
- case 1691: return NULL; /* ldff1b --> NULL. */
- case 1746: value = 1747; break; /* ldff1sw --> ldff1sw. */
- case 1747: return NULL; /* ldff1sw --> NULL. */
- case 1694: value = 1695; break; /* ldff1b --> ldff1b. */
- case 1695: return NULL; /* ldff1b --> NULL. */
- case 1713: value = 1714; break; /* ldff1h --> ldff1h. */
- case 1714: return NULL; /* ldff1h --> NULL. */
- case 1692: value = 1693; break; /* ldff1b --> ldff1b. */
- case 1693: return NULL; /* ldff1b --> NULL. */
- case 1711: value = 1712; break; /* ldff1h --> ldff1h. */
- case 1712: return NULL; /* ldff1h --> NULL. */
- case 1696: value = 1697; break; /* ldff1b --> ldff1b. */
- case 1697: return NULL; /* ldff1b --> NULL. */
- case 1715: value = 1716; break; /* ldff1h --> ldff1h. */
- case 1716: return NULL; /* ldff1h --> NULL. */
- case 2475: value = 3291; break; /* fclamp --> bfclamp. */
- case 3291: return NULL; /* bfclamp --> NULL. */
- case 1789: value = 1790; break; /* ldr --> ldr. */
- case 1790: return NULL; /* ldr --> NULL. */
- case 1445: value = 3294; break; /* fadd --> bfadd. */
- case 3294: return NULL; /* bfadd --> NULL. */
- case 1512: value = 3295; break; /* fmul --> bfmul. */
- case 3295: return NULL; /* bfmul --> NULL. */
- case 1538: value = 3296; break; /* fsub --> bfsub. */
- case 3296: return NULL; /* bfsub --> NULL. */
- case 1503: value = 3287; break; /* fmla --> bfmla. */
- case 3287: return NULL; /* bfmla --> NULL. */
- case 2008: value = 2009; break; /* str --> str. */
- case 2009: return NULL; /* str --> NULL. */
- case 1507: value = 3288; break; /* fmls --> bfmls. */
- case 3288: return NULL; /* bfmls --> NULL. */
- case 1736: value = 1737; break; /* ldff1sh --> ldff1sh. */
- case 1737: return NULL; /* ldff1sh --> NULL. */
- case 1724: value = 1725; break; /* ldff1sb --> ldff1sb. */
- case 1725: return NULL; /* ldff1sb --> NULL. */
- case 1755: value = 1756; break; /* ldff1w --> ldff1w. */
- case 1756: return NULL; /* ldff1w --> NULL. */
- case 1728: value = 1729; break; /* ldff1sb --> ldff1sb. */
- case 1729: return NULL; /* ldff1sb --> NULL. */
- case 2466: value = 2467; break; /* psel --> psel. */
- case 2467: return NULL; /* psel --> NULL. */
- case 1738: value = 1739; break; /* ldff1sh --> ldff1sh. */
- case 1739: return NULL; /* ldff1sh --> NULL. */
- case 1726: value = 1727; break; /* ldff1sb --> ldff1sb. */
- case 1727: return NULL; /* ldff1sb --> NULL. */
- case 1757: value = 1758; break; /* ldff1w --> ldff1w. */
- case 1758: return NULL; /* ldff1w --> NULL. */
- case 1702: value = 1703; break; /* ldff1d --> ldff1d. */
- case 1703: return NULL; /* ldff1d --> NULL. */
- case 1826: value = 1827; break; /* pfalse --> pfalse. */
- case 1827: return NULL; /* pfalse --> NULL. */
- case 1446: value = 3282; break; /* fadd --> bfadd. */
- case 3282: return NULL; /* bfadd --> NULL. */
- case 1493: value = 3284; break; /* fmaxnm --> bfmaxnm. */
- case 3284: return NULL; /* bfmaxnm --> NULL. */
- case 1513: value = 3289; break; /* fmul --> bfmul. */
- case 3289: return NULL; /* bfmul --> NULL. */
- case 1491: value = 3283; break; /* fmax --> bfmax. */
- case 3283: return NULL; /* bfmax --> NULL. */
- case 1539: value = 3290; break; /* fsub --> bfsub. */
- case 3290: return NULL; /* bfsub --> NULL. */
- case 1499: value = 3286; break; /* fminnm --> bfminnm. */
- case 3286: return NULL; /* bfminnm --> NULL. */
- case 1497: value = 3285; break; /* fmin --> bfmin. */
- case 3285: return NULL; /* bfmin --> NULL. */
- case 811: value = 812; break; /* xaflag --> axflag. */
- case 812: value = 1224; break; /* axflag --> tcommit. */
- case 1224: value = 1227; break; /* tcommit --> smstart. */
- case 1227: value = 1228; break; /* smstart --> smstop. */
- case 1228: value = 1229; break; /* smstop --> smstart. */
- case 1229: value = 1230; break; /* smstart --> smstop. */
- case 1230: value = 1231; break; /* smstop --> chkfeat. */
- case 1231: value = 1232; break; /* chkfeat --> msr. */
- case 1232: value = 1233; break; /* msr --> hint. */
- case 1233: value = 1242; break; /* hint --> dgh. */
- case 1242: value = 1252; break; /* dgh --> clrex. */
- case 1252: value = 1253; break; /* clrex --> dsb. */
- case 1253: value = 1254; break; /* dsb --> dsb. */
- case 1254: value = 1258; break; /* dsb --> dmb. */
- case 1258: value = 1259; break; /* dmb --> isb. */
- case 1259: value = 1260; break; /* isb --> sb. */
- case 1260: value = 1261; break; /* sb --> gcspushx. */
- case 1261: value = 1262; break; /* gcspushx --> gcspopx. */
- case 1262: value = 1263; break; /* gcspopx --> gcspopcx. */
- case 1263: value = 1264; break; /* gcspopcx --> gcsss1. */
- case 1264: value = 1265; break; /* gcsss1 --> gcspushm. */
- case 1265: value = 1272; break; /* gcspushm --> sys. */
- case 1272: value = 1279; break; /* sys --> wfet. */
- case 1279: value = 1280; break; /* wfet --> wfit. */
- case 1280: value = 1286; break; /* wfit --> cfinv. */
- case 1286: value = 1287; break; /* cfinv --> msr. */
- case 1287: return NULL; /* msr --> NULL. */
- case 1223: value = 1225; break; /* tstart --> ttest. */
- case 1225: value = 1266; break; /* ttest --> gcsss2. */
- case 1266: value = 1267; break; /* gcsss2 --> gcspopm. */
- case 1267: value = 1268; break; /* gcspopm --> gcspopm. */
- case 1268: value = 1288; break; /* gcspopm --> sysl. */
- case 1288: value = 1289; break; /* sysl --> mrs. */
- case 1289: return NULL; /* mrs --> NULL. */
+ case 1023: value = 1027; break; /* stnp --> stp. */
+ case 1027: return NULL; /* stp --> NULL. */
+ case 1021: value = 1022; break; /* stllrb --> stllrh. */
+ case 1022: return NULL; /* stllrh --> NULL. */
+ case 1024: value = 1028; break; /* ldnp --> ldp. */
+ case 1028: return NULL; /* ldp --> NULL. */
+ case 964: value = 2494; break; /* prfm --> rprfm. */
+ case 2494: return NULL; /* rprfm --> NULL. */
+ case 2501: value = 3391; break; /* fclamp --> bfclamp. */
+ case 3391: return NULL; /* bfclamp --> NULL. */
+ case 1497: value = 3394; break; /* fadd --> bfadd. */
+ case 3394: return NULL; /* bfadd --> NULL. */
+ case 1564: value = 3395; break; /* fmul --> bfmul. */
+ case 3395: return NULL; /* bfmul --> NULL. */
+ case 1590: value = 3396; break; /* fsub --> bfsub. */
+ case 3396: return NULL; /* bfsub --> NULL. */
+ case 1555: value = 3387; break; /* fmla --> bfmla. */
+ case 3387: return NULL; /* bfmla --> NULL. */
+ case 1559: value = 3388; break; /* fmls --> bfmls. */
+ case 3388: return NULL; /* bfmls --> NULL. */
+ case 1498: value = 3382; break; /* fadd --> bfadd. */
+ case 3382: return NULL; /* bfadd --> NULL. */
+ case 1545: value = 3384; break; /* fmaxnm --> bfmaxnm. */
+ case 3384: return NULL; /* bfmaxnm --> NULL. */
+ case 1565: value = 3389; break; /* fmul --> bfmul. */
+ case 3389: return NULL; /* bfmul --> NULL. */
+ case 1543: value = 3383; break; /* fmax --> bfmax. */
+ case 3383: return NULL; /* bfmax --> NULL. */
+ case 1591: value = 3390; break; /* fsub --> bfsub. */
+ case 3390: return NULL; /* bfsub --> NULL. */
+ case 1551: value = 3386; break; /* fminnm --> bfminnm. */
+ case 3386: return NULL; /* bfminnm --> NULL. */
+ case 1549: value = 3385; break; /* fmin --> bfmin. */
+ case 3385: return NULL; /* bfmin --> NULL. */
+ case 1588: value = 3010; break; /* fscale --> bfscale. */
+ case 3010: return NULL; /* bfscale --> NULL. */
+ case 863: value = 864; break; /* xaflag --> axflag. */
+ case 864: value = 1276; break; /* axflag --> tcommit. */
+ case 1276: value = 1279; break; /* tcommit --> smstart. */
+ case 1279: value = 1280; break; /* smstart --> smstop. */
+ case 1280: value = 1281; break; /* smstop --> smstart. */
+ case 1281: value = 1282; break; /* smstart --> smstop. */
+ case 1282: value = 1283; break; /* smstop --> chkfeat. */
+ case 1283: value = 1284; break; /* chkfeat --> msr. */
+ case 1284: value = 1285; break; /* msr --> hint. */
+ case 1285: value = 1304; break; /* hint --> clrex. */
+ case 1304: value = 1305; break; /* clrex --> dsb. */
+ case 1305: value = 1306; break; /* dsb --> dsb. */
+ case 1306: value = 1310; break; /* dsb --> dmb. */
+ case 1310: value = 1311; break; /* dmb --> isb. */
+ case 1311: value = 1312; break; /* isb --> sb. */
+ case 1312: value = 1313; break; /* sb --> gcspushx. */
+ case 1313: value = 1314; break; /* gcspushx --> gcspopx. */
+ case 1314: value = 1315; break; /* gcspopx --> gcspopcx. */
+ case 1315: value = 1316; break; /* gcspopcx --> gcsss1. */
+ case 1316: value = 1317; break; /* gcsss1 --> gcspushm. */
+ case 1317: value = 1324; break; /* gcspushm --> sys. */
+ case 1324: value = 1331; break; /* sys --> wfet. */
+ case 1331: value = 1332; break; /* wfet --> wfit. */
+ case 1332: value = 1338; break; /* wfit --> cfinv. */
+ case 1338: value = 1339; break; /* cfinv --> msr. */
+ case 1339: return NULL; /* msr --> NULL. */
+ case 1275: value = 1277; break; /* tstart --> ttest. */
+ case 1277: value = 1318; break; /* ttest --> gcsss2. */
+ case 1318: value = 1319; break; /* gcsss2 --> gcspopm. */
+ case 1319: value = 1320; break; /* gcspopm --> gcspopm. */
+ case 1320: value = 1340; break; /* gcspopm --> sysl. */
+ case 1340: value = 1341; break; /* sysl --> mrs. */
+ case 1341: return NULL; /* mrs --> NULL. */
case 440: value = 441; break; /* st4 --> st1. */
case 441: value = 442; break; /* st1 --> st2. */
case 442: value = 443; break; /* st2 --> st3. */
@@ -34770,100 +35524,160 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode)
case 478: return NULL; /* ld2r --> NULL. */
case 477: value = 479; break; /* ld4 --> ld4r. */
case 479: return NULL; /* ld4r --> NULL. */
- case 764: value = 765; break; /* fcvtzs --> fcvtzs. */
- case 765: return NULL; /* fcvtzs --> NULL. */
- case 760: value = 761; break; /* scvtf --> scvtf. */
- case 761: return NULL; /* scvtf --> NULL. */
- case 766: value = 767; break; /* fcvtzu --> fcvtzu. */
- case 767: return NULL; /* fcvtzu --> NULL. */
- case 762: value = 763; break; /* ucvtf --> ucvtf. */
- case 763: return NULL; /* ucvtf --> NULL. */
- case 768: value = 769; break; /* fcvtns --> fcvtns. */
- case 769: return NULL; /* fcvtns --> NULL. */
- case 788: value = 789; break; /* fcvtms --> fcvtms. */
- case 789: return NULL; /* fcvtms --> NULL. */
- case 784: value = 785; break; /* fcvtps --> fcvtps. */
- case 785: return NULL; /* fcvtps --> NULL. */
- case 792: value = 793; break; /* fcvtzs --> fcvtzs. */
- case 793: return NULL; /* fcvtzs --> NULL. */
- case 776: value = 777; break; /* fcvtas --> fcvtas. */
- case 777: return NULL; /* fcvtas --> NULL. */
- case 772: value = 773; break; /* scvtf --> scvtf. */
- case 773: return NULL; /* scvtf --> NULL. */
- case 780: value = 781; break; /* fmov --> fmov. */
- case 781: return NULL; /* fmov --> NULL. */
- case 770: value = 771; break; /* fcvtnu --> fcvtnu. */
- case 771: return NULL; /* fcvtnu --> NULL. */
- case 790: value = 791; break; /* fcvtmu --> fcvtmu. */
- case 791: return NULL; /* fcvtmu --> NULL. */
- case 786: value = 787; break; /* fcvtpu --> fcvtpu. */
- case 787: return NULL; /* fcvtpu --> NULL. */
- case 794: value = 795; break; /* fcvtzu --> fcvtzu. */
- case 795: return NULL; /* fcvtzu --> NULL. */
- case 778: value = 779; break; /* fcvtau --> fcvtau. */
- case 779: return NULL; /* fcvtau --> NULL. */
- case 774: value = 775; break; /* ucvtf --> ucvtf. */
- case 775: return NULL; /* ucvtf --> NULL. */
- case 782: value = 783; break; /* fmov --> fmov. */
- case 783: return NULL; /* fmov --> NULL. */
- case 817: value = 818; break; /* fmov --> fmov. */
- case 818: return NULL; /* fmov --> NULL. */
- case 826: value = 827; break; /* frintn --> frintn. */
- case 827: return NULL; /* frintn --> NULL. */
- case 821: value = 822; break; /* fneg --> fneg. */
- case 822: return NULL; /* fneg --> NULL. */
- case 830: value = 831; break; /* frintm --> frintm. */
- case 831: return NULL; /* frintm --> NULL. */
- case 819: value = 820; break; /* fabs --> fabs. */
- case 820: return NULL; /* fabs --> NULL. */
- case 828: value = 829; break; /* frintp --> frintp. */
- case 829: return NULL; /* frintp --> NULL. */
- case 823: value = 824; break; /* fsqrt --> fsqrt. */
- case 824: return NULL; /* fsqrt --> NULL. */
- case 832: value = 833; break; /* frintz --> frintz. */
- case 833: return NULL; /* frintz --> NULL. */
- case 825: value = 3079; break; /* fcvt --> bfcvt. */
- case 3079: return NULL; /* bfcvt --> NULL. */
- case 834: value = 835; break; /* frinta --> frinta. */
- case 835: return NULL; /* frinta --> NULL. */
- case 836: value = 837; break; /* frintx --> frintx. */
- case 837: return NULL; /* frintx --> NULL. */
- case 838: value = 839; break; /* frinti --> frinti. */
- case 839: return NULL; /* frinti --> NULL. */
- case 803: value = 804; break; /* fcmp --> fcmp. */
- case 804: return NULL; /* fcmp --> NULL. */
- case 805: value = 806; break; /* fcmpe --> fcmpe. */
- case 806: return NULL; /* fcmpe --> NULL. */
- case 807: value = 808; break; /* fcmp --> fcmp. */
- case 808: return NULL; /* fcmp --> NULL. */
- case 809: value = 810; break; /* fcmpe --> fcmpe. */
- case 810: return NULL; /* fcmpe --> NULL. */
- case 866: value = 867; break; /* fmov --> fmov. */
- case 867: return NULL; /* fmov --> NULL. */
- case 840: value = 841; break; /* fmul --> fmul. */
- case 841: return NULL; /* fmul --> NULL. */
- case 856: value = 857; break; /* fnmul --> fnmul. */
- case 857: return NULL; /* fnmul --> NULL. */
- case 848: value = 849; break; /* fmax --> fmax. */
- case 849: return NULL; /* fmax --> NULL. */
- case 844: value = 845; break; /* fadd --> fadd. */
- case 845: return NULL; /* fadd --> NULL. */
- case 852: value = 853; break; /* fmaxnm --> fmaxnm. */
- case 853: return NULL; /* fmaxnm --> NULL. */
- case 842: value = 843; break; /* fdiv --> fdiv. */
- case 843: return NULL; /* fdiv --> NULL. */
- case 850: value = 851; break; /* fmin --> fmin. */
- case 851: return NULL; /* fmin --> NULL. */
- case 846: value = 847; break; /* fsub --> fsub. */
- case 847: return NULL; /* fsub --> NULL. */
- case 854: value = 855; break; /* fminnm --> fminnm. */
- case 855: return NULL; /* fminnm --> NULL. */
- case 799: value = 800; break; /* fccmp --> fccmp. */
- case 800: return NULL; /* fccmp --> NULL. */
- case 801: value = 802; break; /* fccmpe --> fccmpe. */
- case 802: return NULL; /* fccmpe --> NULL. */
- case 868: value = 869; break; /* fcsel --> fcsel. */
- case 869: return NULL; /* fcsel --> NULL. */
+ case 3072: value = 3092; break; /* ldfadd --> ldbfadd. */
+ case 3092: return NULL; /* ldbfadd --> NULL. */
+ case 3073: value = 3093; break; /* ldfadda --> ldbfadda. */
+ case 3093: return NULL; /* ldbfadda --> NULL. */
+ case 3075: value = 3095; break; /* ldfaddl --> ldbfaddl. */
+ case 3095: return NULL; /* ldbfaddl --> NULL. */
+ case 3074: value = 3094; break; /* ldfaddal --> ldbfaddal. */
+ case 3094: return NULL; /* ldbfaddal --> NULL. */
+ case 3112: value = 3122; break; /* stfadd --> stbfadd. */
+ case 3122: return NULL; /* stbfadd --> NULL. */
+ case 3113: value = 3123; break; /* stfaddl --> stbfaddl. */
+ case 3123: return NULL; /* stbfaddl --> NULL. */
+ case 3076: value = 3096; break; /* ldfmax --> ldbfmax. */
+ case 3096: return NULL; /* ldbfmax --> NULL. */
+ case 3077: value = 3097; break; /* ldfmaxa --> ldbfmaxa. */
+ case 3097: return NULL; /* ldbfmaxa --> NULL. */
+ case 3079: value = 3099; break; /* ldfmaxl --> ldbfmaxl. */
+ case 3099: return NULL; /* ldbfmaxl --> NULL. */
+ case 3078: value = 3098; break; /* ldfmaxal --> ldbfmaxal. */
+ case 3098: return NULL; /* ldbfmaxal --> NULL. */
+ case 3114: value = 3124; break; /* stfmax --> stbfmax. */
+ case 3124: return NULL; /* stbfmax --> NULL. */
+ case 3115: value = 3125; break; /* stfmaxl --> stbfmaxl. */
+ case 3125: return NULL; /* stbfmaxl --> NULL. */
+ case 3080: value = 3100; break; /* ldfmaxnm --> ldbfmaxnm. */
+ case 3100: return NULL; /* ldbfmaxnm --> NULL. */
+ case 3081: value = 3101; break; /* ldfmaxnma --> ldbfmaxnma. */
+ case 3101: return NULL; /* ldbfmaxnma --> NULL. */
+ case 3083: value = 3103; break; /* ldfmaxnml --> ldbfmaxnml. */
+ case 3103: return NULL; /* ldbfmaxnml --> NULL. */
+ case 3082: value = 3102; break; /* ldfmaxnmal --> ldbfmaxnmal. */
+ case 3102: return NULL; /* ldbfmaxnmal --> NULL. */
+ case 3116: value = 3126; break; /* stfmaxnm --> stbfmaxnm. */
+ case 3126: return NULL; /* stbfmaxnm --> NULL. */
+ case 3117: value = 3127; break; /* stfmaxnml --> stbfmaxnml. */
+ case 3127: return NULL; /* stbfmaxnml --> NULL. */
+ case 3084: value = 3104; break; /* ldfmin --> ldbfmin. */
+ case 3104: return NULL; /* ldbfmin --> NULL. */
+ case 3085: value = 3105; break; /* ldfmina --> ldbfmina. */
+ case 3105: return NULL; /* ldbfmina --> NULL. */
+ case 3087: value = 3107; break; /* ldfminl --> ldbfminl. */
+ case 3107: return NULL; /* ldbfminl --> NULL. */
+ case 3086: value = 3106; break; /* ldfminal --> ldbfminal. */
+ case 3106: return NULL; /* ldbfminal --> NULL. */
+ case 3118: value = 3128; break; /* stfmin --> stbfmin. */
+ case 3128: return NULL; /* stbfmin --> NULL. */
+ case 3119: value = 3129; break; /* stfminl --> stbfminl. */
+ case 3129: return NULL; /* stbfminl --> NULL. */
+ case 3088: value = 3108; break; /* ldfminnm --> ldbfminnm. */
+ case 3108: return NULL; /* ldbfminnm --> NULL. */
+ case 3089: value = 3109; break; /* ldfminnma --> ldbfminnma. */
+ case 3109: return NULL; /* ldbfminnma --> NULL. */
+ case 3091: value = 3111; break; /* ldfminnml --> ldbfminnml. */
+ case 3111: return NULL; /* ldbfminnml --> NULL. */
+ case 3090: value = 3110; break; /* ldfminnmal --> ldbfminnmal. */
+ case 3110: return NULL; /* ldbfminnmal --> NULL. */
+ case 3120: value = 3130; break; /* stfminnm --> stbfminnm. */
+ case 3130: return NULL; /* stbfminnm --> NULL. */
+ case 3121: value = 3131; break; /* stfminnml --> stbfminnml. */
+ case 3131: return NULL; /* stbfminnml --> NULL. */
+ case 804: value = 805; break; /* fcvtzs --> fcvtzs. */
+ case 805: return NULL; /* fcvtzs --> NULL. */
+ case 800: value = 801; break; /* scvtf --> scvtf. */
+ case 801: return NULL; /* scvtf --> NULL. */
+ case 806: value = 807; break; /* fcvtzu --> fcvtzu. */
+ case 807: return NULL; /* fcvtzu --> NULL. */
+ case 802: value = 803; break; /* ucvtf --> ucvtf. */
+ case 803: return NULL; /* ucvtf --> NULL. */
+ case 808: value = 809; break; /* fcvtns --> fcvtns. */
+ case 809: return NULL; /* fcvtns --> NULL. */
+ case 836: value = 837; break; /* fcvtms --> fcvtms. */
+ case 837: return NULL; /* fcvtms --> NULL. */
+ case 830: value = 831; break; /* fcvtps --> fcvtps. */
+ case 831: return NULL; /* fcvtps --> NULL. */
+ case 842: value = 843; break; /* fcvtzs --> fcvtzs. */
+ case 843: return NULL; /* fcvtzs --> NULL. */
+ case 820: value = 821; break; /* fcvtas --> fcvtas. */
+ case 821: return NULL; /* fcvtas --> NULL. */
+ case 814: value = 815; break; /* scvtf --> scvtf. */
+ case 815: return NULL; /* scvtf --> NULL. */
+ case 826: value = 827; break; /* fmov --> fmov. */
+ case 827: return NULL; /* fmov --> NULL. */
+ case 811: value = 812; break; /* fcvtnu --> fcvtnu. */
+ case 812: return NULL; /* fcvtnu --> NULL. */
+ case 839: value = 840; break; /* fcvtmu --> fcvtmu. */
+ case 840: return NULL; /* fcvtmu --> NULL. */
+ case 833: value = 834; break; /* fcvtpu --> fcvtpu. */
+ case 834: return NULL; /* fcvtpu --> NULL. */
+ case 845: value = 846; break; /* fcvtzu --> fcvtzu. */
+ case 846: return NULL; /* fcvtzu --> NULL. */
+ case 823: value = 824; break; /* fcvtau --> fcvtau. */
+ case 824: return NULL; /* fcvtau --> NULL. */
+ case 817: value = 818; break; /* ucvtf --> ucvtf. */
+ case 818: return NULL; /* ucvtf --> NULL. */
+ case 828: value = 829; break; /* fmov --> fmov. */
+ case 829: return NULL; /* fmov --> NULL. */
+ case 869: value = 870; break; /* fmov --> fmov. */
+ case 870: return NULL; /* fmov --> NULL. */
+ case 878: value = 879; break; /* frintn --> frintn. */
+ case 879: return NULL; /* frintn --> NULL. */
+ case 873: value = 874; break; /* fneg --> fneg. */
+ case 874: return NULL; /* fneg --> NULL. */
+ case 882: value = 883; break; /* frintm --> frintm. */
+ case 883: return NULL; /* frintm --> NULL. */
+ case 871: value = 872; break; /* fabs --> fabs. */
+ case 872: return NULL; /* fabs --> NULL. */
+ case 880: value = 881; break; /* frintp --> frintp. */
+ case 881: return NULL; /* frintp --> NULL. */
+ case 875: value = 876; break; /* fsqrt --> fsqrt. */
+ case 876: return NULL; /* fsqrt --> NULL. */
+ case 884: value = 885; break; /* frintz --> frintz. */
+ case 885: return NULL; /* frintz --> NULL. */
+ case 877: value = 3174; break; /* fcvt --> bfcvt. */
+ case 3174: return NULL; /* bfcvt --> NULL. */
+ case 886: value = 887; break; /* frinta --> frinta. */
+ case 887: return NULL; /* frinta --> NULL. */
+ case 888: value = 889; break; /* frintx --> frintx. */
+ case 889: return NULL; /* frintx --> NULL. */
+ case 890: value = 891; break; /* frinti --> frinti. */
+ case 891: return NULL; /* frinti --> NULL. */
+ case 855: value = 856; break; /* fcmp --> fcmp. */
+ case 856: return NULL; /* fcmp --> NULL. */
+ case 857: value = 858; break; /* fcmpe --> fcmpe. */
+ case 858: return NULL; /* fcmpe --> NULL. */
+ case 859: value = 860; break; /* fcmp --> fcmp. */
+ case 860: return NULL; /* fcmp --> NULL. */
+ case 861: value = 862; break; /* fcmpe --> fcmpe. */
+ case 862: return NULL; /* fcmpe --> NULL. */
+ case 918: value = 919; break; /* fmov --> fmov. */
+ case 919: return NULL; /* fmov --> NULL. */
+ case 892: value = 893; break; /* fmul --> fmul. */
+ case 893: return NULL; /* fmul --> NULL. */
+ case 908: value = 909; break; /* fnmul --> fnmul. */
+ case 909: return NULL; /* fnmul --> NULL. */
+ case 900: value = 901; break; /* fmax --> fmax. */
+ case 901: return NULL; /* fmax --> NULL. */
+ case 896: value = 897; break; /* fadd --> fadd. */
+ case 897: return NULL; /* fadd --> NULL. */
+ case 904: value = 905; break; /* fmaxnm --> fmaxnm. */
+ case 905: return NULL; /* fmaxnm --> NULL. */
+ case 894: value = 895; break; /* fdiv --> fdiv. */
+ case 895: return NULL; /* fdiv --> NULL. */
+ case 902: value = 903; break; /* fmin --> fmin. */
+ case 903: return NULL; /* fmin --> NULL. */
+ case 898: value = 899; break; /* fsub --> fsub. */
+ case 899: return NULL; /* fsub --> NULL. */
+ case 906: value = 907; break; /* fminnm --> fminnm. */
+ case 907: return NULL; /* fminnm --> NULL. */
+ case 851: value = 852; break; /* fccmp --> fccmp. */
+ case 852: return NULL; /* fccmp --> NULL. */
+ case 853: value = 854; break; /* fccmpe --> fccmpe. */
+ case 854: return NULL; /* fccmpe --> NULL. */
+ case 920: value = 921; break; /* fcsel --> fcsel. */
+ case 921: return NULL; /* fcsel --> NULL. */
case 133: value = 374; break; /* movi --> sshr. */
case 374: value = 376; break; /* sshr --> srshr. */
case 376: return NULL; /* srshr --> NULL. */
@@ -34882,10 +35696,10 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode)
case 399: value = 401; break; /* ursra --> sli. */
case 401: value = 403; break; /* sli --> uqshl. */
case 403: return NULL; /* uqshl --> NULL. */
- case 858: value = 859; break; /* fmadd --> fmadd. */
- case 859: return NULL; /* fmadd --> NULL. */
- case 862: value = 863; break; /* fnmadd --> fnmadd. */
- case 863: return NULL; /* fnmadd --> NULL. */
+ case 910: value = 911; break; /* fmadd --> fmadd. */
+ case 911: return NULL; /* fmadd --> NULL. */
+ case 914: value = 915; break; /* fnmadd --> fnmadd. */
+ case 915: return NULL; /* fnmadd --> NULL. */
case 135: value = 380; break; /* movi --> shrn. */
case 380: value = 381; break; /* shrn --> shrn2. */
case 381: value = 388; break; /* shrn2 --> sshll. */
@@ -34914,10 +35728,10 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode)
case 395: return NULL; /* fcvtzs --> NULL. */
case 418: value = 419; break; /* fcvtzu --> fcvtzu. */
case 419: return NULL; /* fcvtzu --> NULL. */
- case 860: value = 861; break; /* fmsub --> fmsub. */
- case 861: return NULL; /* fmsub --> NULL. */
- case 864: value = 865; break; /* fnmsub --> fnmsub. */
- case 865: return NULL; /* fnmsub --> NULL. */
+ case 912: value = 913; break; /* fmsub --> fmsub. */
+ case 913: return NULL; /* fmsub --> NULL. */
+ case 916: value = 917; break; /* fnmsub --> fnmsub. */
+ case 917: return NULL; /* fnmsub --> NULL. */
case 598: value = 599; break; /* scvtf --> scvtf. */
case 599: return NULL; /* scvtf --> NULL. */
case 600: value = 601; break; /* fcvtzs --> fcvtzs. */
@@ -34963,114 +35777,144 @@ aarch64_find_alias_opcode (const aarch64_opcode *opcode)
case 618: value = 623; break; /* sbfm --> sxtw. */
case 625: value = 627; break; /* bfm --> bfc. */
case 629: value = 633; break; /* ubfm --> uxth. */
- case 663: value = 665; break; /* csinc --> cset. */
- case 666: value = 668; break; /* csinv --> csetm. */
- case 669: value = 670; break; /* csneg --> cneg. */
- case 688: value = 688; break; /* rev --> rev. */
- case 713: value = 714; break; /* lslv --> lsl. */
- case 715: value = 716; break; /* lsrv --> lsr. */
- case 717: value = 718; break; /* asrv --> asr. */
- case 719: value = 720; break; /* rorv --> ror. */
- case 722: value = 723; break; /* subps --> cmpp. */
- case 735: value = 736; break; /* madd --> mul. */
- case 737: value = 738; break; /* msub --> mneg. */
- case 739: value = 740; break; /* smaddl --> smull. */
- case 741: value = 742; break; /* smsubl --> smnegl. */
- case 744: value = 745; break; /* umaddl --> umull. */
- case 746: value = 747; break; /* umsubl --> umnegl. */
- case 758: value = 759; break; /* extr --> ror. */
- case 995: value = 996; break; /* and --> bic. */
- case 997: value = 998; break; /* orr --> mov. */
- case 1000: value = 1001; break; /* ands --> tst. */
- case 1004: value = 1006; break; /* orr --> uxtw. */
- case 1007: value = 1008; break; /* orn --> mvn. */
- case 1011: value = 1012; break; /* ands --> tst. */
- case 1042: value = 1138; break; /* ldaddb --> staddb. */
- case 1043: value = 1139; break; /* ldaddh --> staddh. */
- case 1044: value = 1140; break; /* ldadd --> stadd. */
- case 1046: value = 1141; break; /* ldaddlb --> staddlb. */
- case 1049: value = 1142; break; /* ldaddlh --> staddlh. */
- case 1052: value = 1143; break; /* ldaddl --> staddl. */
- case 1054: value = 1144; break; /* ldclrb --> stclrb. */
- case 1055: value = 1145; break; /* ldclrh --> stclrh. */
- case 1056: value = 1146; break; /* ldclr --> stclr. */
- case 1058: value = 1147; break; /* ldclrlb --> stclrlb. */
- case 1061: value = 1148; break; /* ldclrlh --> stclrlh. */
- case 1064: value = 1149; break; /* ldclrl --> stclrl. */
- case 1066: value = 1150; break; /* ldeorb --> steorb. */
- case 1067: value = 1151; break; /* ldeorh --> steorh. */
- case 1068: value = 1152; break; /* ldeor --> steor. */
- case 1070: value = 1153; break; /* ldeorlb --> steorlb. */
- case 1073: value = 1154; break; /* ldeorlh --> steorlh. */
- case 1076: value = 1155; break; /* ldeorl --> steorl. */
- case 1078: value = 1156; break; /* ldsetb --> stsetb. */
- case 1079: value = 1157; break; /* ldseth --> stseth. */
- case 1080: value = 1158; break; /* ldset --> stset. */
- case 1082: value = 1159; break; /* ldsetlb --> stsetlb. */
- case 1085: value = 1160; break; /* ldsetlh --> stsetlh. */
- case 1088: value = 1161; break; /* ldsetl --> stsetl. */
- case 1090: value = 1162; break; /* ldsmaxb --> stsmaxb. */
- case 1091: value = 1163; break; /* ldsmaxh --> stsmaxh. */
- case 1092: value = 1164; break; /* ldsmax --> stsmax. */
- case 1094: value = 1165; break; /* ldsmaxlb --> stsmaxlb. */
- case 1097: value = 1166; break; /* ldsmaxlh --> stsmaxlh. */
- case 1100: value = 1167; break; /* ldsmaxl --> stsmaxl. */
- case 1102: value = 1168; break; /* ldsminb --> stsminb. */
- case 1103: value = 1169; break; /* ldsminh --> stsminh. */
- case 1104: value = 1170; break; /* ldsmin --> stsmin. */
- case 1106: value = 1171; break; /* ldsminlb --> stsminlb. */
- case 1109: value = 1172; break; /* ldsminlh --> stsminlh. */
- case 1112: value = 1173; break; /* ldsminl --> stsminl. */
- case 1114: value = 1174; break; /* ldumaxb --> stumaxb. */
- case 1115: value = 1175; break; /* ldumaxh --> stumaxh. */
- case 1116: value = 1176; break; /* ldumax --> stumax. */
- case 1118: value = 1177; break; /* ldumaxlb --> stumaxlb. */
- case 1121: value = 1178; break; /* ldumaxlh --> stumaxlh. */
- case 1124: value = 1179; break; /* ldumaxl --> stumaxl. */
- case 1126: value = 1180; break; /* lduminb --> stuminb. */
- case 1127: value = 1181; break; /* lduminh --> stuminh. */
- case 1128: value = 1182; break; /* ldumin --> stumin. */
- case 1130: value = 1183; break; /* lduminlb --> stuminlb. */
- case 1133: value = 1184; break; /* lduminlh --> stuminlh. */
- case 1136: value = 1185; break; /* lduminl --> stuminl. */
- case 1216: value = 1217; break; /* movn --> mov. */
- case 1218: value = 1219; break; /* movz --> mov. */
- case 1233: value = 3216; break; /* hint --> clrbhb. */
- case 1253: value = 1257; break; /* dsb --> pssbb. */
- case 1254: value = 1254; break; /* dsb --> dsb. */
- case 1272: value = 3217; break; /* sys --> trcit. */
- case 1273: value = 1278; break; /* sysp --> tlbip. */
- case 1279: value = 1279; break; /* wfet --> wfet. */
- case 1280: value = 1280; break; /* wfit --> wfit. */
- case 1348: value = 2101; break; /* and --> bic. */
- case 1350: value = 1331; break; /* and --> mov. */
- case 1351: value = 1335; break; /* ands --> movs. */
- case 1386: value = 2102; break; /* cmpge --> cmple. */
- case 1389: value = 2105; break; /* cmpgt --> cmplt. */
- case 1391: value = 2103; break; /* cmphi --> cmplo. */
- case 1394: value = 2104; break; /* cmphs --> cmpls. */
- case 1416: value = 1328; break; /* cpy --> mov. */
- case 1417: value = 1330; break; /* cpy --> mov. */
- case 1418: value = 2112; break; /* cpy --> fmov. */
- case 1430: value = 1322; break; /* dup --> mov. */
- case 1431: value = 1325; break; /* dup --> mov. */
- case 1432: value = 2111; break; /* dup --> fmov. */
- case 1433: value = 1326; break; /* dupm --> mov. */
- case 1435: value = 2106; break; /* eor --> eon. */
- case 1437: value = 1336; break; /* eor --> not. */
- case 1438: value = 1337; break; /* eors --> nots. */
- case 1443: value = 2107; break; /* facge --> facle. */
- case 1444: value = 2108; break; /* facgt --> faclt. */
- case 1457: value = 2109; break; /* fcmge --> fcmle. */
- case 1459: value = 2110; break; /* fcmgt --> fcmlt. */
- case 1465: value = 1319; break; /* fcpy --> fmov. */
- case 1488: value = 1318; break; /* fdup --> fmov. */
- case 1820: value = 1320; break; /* orr --> mov. */
- case 1821: value = 2113; break; /* orr --> orn. */
- case 1823: value = 1324; break; /* orr --> mov. */
- case 1824: value = 1334; break; /* orrs --> movs. */
- case 1887: value = 1329; break; /* sel --> mov. */
- case 1888: value = 1332; break; /* sel --> mov. */
+ case 658: value = 659; break; /* cbgt --> cblt. */
+ case 660: value = 661; break; /* cbge --> cble. */
+ case 662: value = 663; break; /* cbhi --> cblo. */
+ case 664: value = 665; break; /* cbhs --> cbls. */
+ case 668: value = 669; break; /* cbgt --> cbge. */
+ case 670: value = 671; break; /* cblt --> cble. */
+ case 672: value = 673; break; /* cbhi --> cbhs. */
+ case 674: value = 675; break; /* cblo --> cbls. */
+ case 678: value = 679; break; /* cbbgt --> cbblt. */
+ case 680: value = 681; break; /* cbbge --> cbble. */
+ case 682: value = 683; break; /* cbbhi --> cbblo. */
+ case 684: value = 685; break; /* cbbhs --> cbbls. */
+ case 688: value = 689; break; /* cbhgt --> cbhlt. */
+ case 690: value = 691; break; /* cbhge --> cbhle. */
+ case 692: value = 693; break; /* cbhhi --> cbhlo. */
+ case 694: value = 695; break; /* cbhhs --> cbhls. */
+ case 703: value = 705; break; /* csinc --> cset. */
+ case 706: value = 708; break; /* csinv --> csetm. */
+ case 709: value = 710; break; /* csneg --> cneg. */
+ case 728: value = 729; break; /* rev --> rev64. */
+ case 753: value = 754; break; /* lslv --> lsl. */
+ case 755: value = 756; break; /* lsrv --> lsr. */
+ case 757: value = 758; break; /* asrv --> asr. */
+ case 759: value = 760; break; /* rorv --> ror. */
+ case 762: value = 763; break; /* subps --> cmpp. */
+ case 775: value = 776; break; /* madd --> mul. */
+ case 777: value = 778; break; /* msub --> mneg. */
+ case 779: value = 780; break; /* smaddl --> smull. */
+ case 781: value = 782; break; /* smsubl --> smnegl. */
+ case 784: value = 785; break; /* umaddl --> umull. */
+ case 786: value = 787; break; /* umsubl --> umnegl. */
+ case 798: value = 799; break; /* extr --> ror. */
+ case 1047: value = 1048; break; /* and --> bic. */
+ case 1049: value = 1050; break; /* orr --> mov. */
+ case 1052: value = 1053; break; /* ands --> tst. */
+ case 1056: value = 1058; break; /* orr --> uxtw. */
+ case 1059: value = 1060; break; /* orn --> mvn. */
+ case 1063: value = 1064; break; /* ands --> tst. */
+ case 1094: value = 1190; break; /* ldaddb --> staddb. */
+ case 1095: value = 1191; break; /* ldaddh --> staddh. */
+ case 1096: value = 1192; break; /* ldadd --> stadd. */
+ case 1098: value = 1193; break; /* ldaddlb --> staddlb. */
+ case 1101: value = 1194; break; /* ldaddlh --> staddlh. */
+ case 1104: value = 1195; break; /* ldaddl --> staddl. */
+ case 1106: value = 1196; break; /* ldclrb --> stclrb. */
+ case 1107: value = 1197; break; /* ldclrh --> stclrh. */
+ case 1108: value = 1198; break; /* ldclr --> stclr. */
+ case 1110: value = 1199; break; /* ldclrlb --> stclrlb. */
+ case 1113: value = 1200; break; /* ldclrlh --> stclrlh. */
+ case 1116: value = 1201; break; /* ldclrl --> stclrl. */
+ case 1118: value = 1202; break; /* ldeorb --> steorb. */
+ case 1119: value = 1203; break; /* ldeorh --> steorh. */
+ case 1120: value = 1204; break; /* ldeor --> steor. */
+ case 1122: value = 1205; break; /* ldeorlb --> steorlb. */
+ case 1125: value = 1206; break; /* ldeorlh --> steorlh. */
+ case 1128: value = 1207; break; /* ldeorl --> steorl. */
+ case 1130: value = 1208; break; /* ldsetb --> stsetb. */
+ case 1131: value = 1209; break; /* ldseth --> stseth. */
+ case 1132: value = 1210; break; /* ldset --> stset. */
+ case 1134: value = 1211; break; /* ldsetlb --> stsetlb. */
+ case 1137: value = 1212; break; /* ldsetlh --> stsetlh. */
+ case 1140: value = 1213; break; /* ldsetl --> stsetl. */
+ case 1142: value = 1214; break; /* ldsmaxb --> stsmaxb. */
+ case 1143: value = 1215; break; /* ldsmaxh --> stsmaxh. */
+ case 1144: value = 1216; break; /* ldsmax --> stsmax. */
+ case 1146: value = 1217; break; /* ldsmaxlb --> stsmaxlb. */
+ case 1149: value = 1218; break; /* ldsmaxlh --> stsmaxlh. */
+ case 1152: value = 1219; break; /* ldsmaxl --> stsmaxl. */
+ case 1154: value = 1220; break; /* ldsminb --> stsminb. */
+ case 1155: value = 1221; break; /* ldsminh --> stsminh. */
+ case 1156: value = 1222; break; /* ldsmin --> stsmin. */
+ case 1158: value = 1223; break; /* ldsminlb --> stsminlb. */
+ case 1161: value = 1224; break; /* ldsminlh --> stsminlh. */
+ case 1164: value = 1225; break; /* ldsminl --> stsminl. */
+ case 1166: value = 1226; break; /* ldumaxb --> stumaxb. */
+ case 1167: value = 1227; break; /* ldumaxh --> stumaxh. */
+ case 1168: value = 1228; break; /* ldumax --> stumax. */
+ case 1170: value = 1229; break; /* ldumaxlb --> stumaxlb. */
+ case 1173: value = 1230; break; /* ldumaxlh --> stumaxlh. */
+ case 1176: value = 1231; break; /* ldumaxl --> stumaxl. */
+ case 1178: value = 1232; break; /* lduminb --> stuminb. */
+ case 1179: value = 1233; break; /* lduminh --> stuminh. */
+ case 1180: value = 1234; break; /* ldumin --> stumin. */
+ case 1182: value = 1235; break; /* lduminlb --> stuminlb. */
+ case 1185: value = 1236; break; /* lduminlh --> stuminlh. */
+ case 1188: value = 1237; break; /* lduminl --> stuminl. */
+ case 1268: value = 1269; break; /* movn --> mov. */
+ case 1270: value = 1271; break; /* movz --> mov. */
+ case 1285: value = 3316; break; /* hint --> clrbhb. */
+ case 1305: value = 1309; break; /* dsb --> pssbb. */
+ case 1306: value = 1306; break; /* dsb --> dsb. */
+ case 1324: value = 3317; break; /* sys --> trcit. */
+ case 1325: value = 1330; break; /* sysp --> tlbip. */
+ case 1331: value = 1331; break; /* wfet --> wfet. */
+ case 1332: value = 1332; break; /* wfit --> wfit. */
+ case 1400: value = 2137; break; /* and --> bic. */
+ case 1402: value = 1383; break; /* and --> mov. */
+ case 1403: value = 1387; break; /* ands --> movs. */
+ case 1438: value = 2138; break; /* cmpge --> cmple. */
+ case 1441: value = 2141; break; /* cmpgt --> cmplt. */
+ case 1443: value = 2139; break; /* cmphi --> cmplo. */
+ case 1446: value = 2140; break; /* cmphs --> cmpls. */
+ case 1468: value = 1380; break; /* cpy --> mov. */
+ case 1469: value = 1382; break; /* cpy --> mov. */
+ case 1470: value = 2148; break; /* cpy --> fmov. */
+ case 1482: value = 1374; break; /* dup --> mov. */
+ case 1483: value = 1377; break; /* dup --> mov. */
+ case 1484: value = 2147; break; /* dup --> fmov. */
+ case 1485: value = 1378; break; /* dupm --> mov. */
+ case 1487: value = 2142; break; /* eor --> eon. */
+ case 1489: value = 1388; break; /* eor --> not. */
+ case 1490: value = 1389; break; /* eors --> nots. */
+ case 1495: value = 2143; break; /* facge --> facle. */
+ case 1496: value = 2144; break; /* facgt --> faclt. */
+ case 1509: value = 2145; break; /* fcmge --> fcmle. */
+ case 1511: value = 2146; break; /* fcmgt --> fcmlt. */
+ case 1517: value = 1371; break; /* fcpy --> fmov. */
+ case 1540: value = 1370; break; /* fdup --> fmov. */
+ case 1825: value = 1826; break; /* ldr --> ldr. */
+ case 1856: value = 1372; break; /* orr --> mov. */
+ case 1857: value = 2149; break; /* orr --> orn. */
+ case 1859: value = 1376; break; /* orr --> mov. */
+ case 1860: value = 1386; break; /* orrs --> movs. */
+ case 1862: value = 1863; break; /* pfalse --> pfalse. */
+ case 1923: value = 1381; break; /* sel --> mov. */
+ case 1924: value = 1384; break; /* sel --> mov. */
+ case 2044: value = 2045; break; /* str --> str. */
+ case 2474: value = 2472; break; /* mova --> mov. */
+ case 2475: value = 2473; break; /* mova --> mov. */
+ case 2492: value = 2493; break; /* psel --> psel. */
+ case 2706: value = 2698; break; /* mova --> mov. */
+ case 2707: value = 2699; break; /* mova --> mov. */
+ case 2708: value = 2700; break; /* mova --> mov. */
+ case 2709: value = 2701; break; /* mova --> mov. */
+ case 2710: value = 2702; break; /* mova --> mov. */
+ case 2711: value = 2703; break; /* mova --> mov. */
+ case 2712: value = 2704; break; /* mova --> mov. */
+ case 2713: value = 2705; break; /* mova --> mov. */
default: return NULL;
}
@@ -35121,155 +35965,186 @@ aarch64_find_next_alias_opcode (const aarch64_opcode *opcode)
case 634: value = 631; break; /* lsl --> ubfx. */
case 631: value = 630; break; /* ubfx --> ubfiz. */
case 630: value = 629; break; /* ubfiz --> ubfm. */
- case 665: value = 664; break; /* cset --> cinc. */
- case 664: value = 663; break; /* cinc --> csinc. */
- case 668: value = 667; break; /* csetm --> cinv. */
- case 667: value = 666; break; /* cinv --> csinv. */
- case 670: value = 669; break; /* cneg --> csneg. */
- case 688: value = 689; break; /* rev --> rev64. */
- case 714: value = 713; break; /* lsl --> lslv. */
- case 716: value = 715; break; /* lsr --> lsrv. */
- case 718: value = 717; break; /* asr --> asrv. */
- case 720: value = 719; break; /* ror --> rorv. */
- case 723: value = 722; break; /* cmpp --> subps. */
- case 736: value = 735; break; /* mul --> madd. */
- case 738: value = 737; break; /* mneg --> msub. */
- case 740: value = 739; break; /* smull --> smaddl. */
- case 742: value = 741; break; /* smnegl --> smsubl. */
- case 745: value = 744; break; /* umull --> umaddl. */
- case 747: value = 746; break; /* umnegl --> umsubl. */
- case 759: value = 758; break; /* ror --> extr. */
- case 996: value = 995; break; /* bic --> and. */
- case 998: value = 997; break; /* mov --> orr. */
- case 1001: value = 1000; break; /* tst --> ands. */
- case 1006: value = 1005; break; /* uxtw --> mov. */
- case 1005: value = 1004; break; /* mov --> orr. */
- case 1008: value = 1007; break; /* mvn --> orn. */
- case 1012: value = 1011; break; /* tst --> ands. */
- case 1138: value = 1042; break; /* staddb --> ldaddb. */
- case 1139: value = 1043; break; /* staddh --> ldaddh. */
- case 1140: value = 1044; break; /* stadd --> ldadd. */
- case 1141: value = 1046; break; /* staddlb --> ldaddlb. */
- case 1142: value = 1049; break; /* staddlh --> ldaddlh. */
- case 1143: value = 1052; break; /* staddl --> ldaddl. */
- case 1144: value = 1054; break; /* stclrb --> ldclrb. */
- case 1145: value = 1055; break; /* stclrh --> ldclrh. */
- case 1146: value = 1056; break; /* stclr --> ldclr. */
- case 1147: value = 1058; break; /* stclrlb --> ldclrlb. */
- case 1148: value = 1061; break; /* stclrlh --> ldclrlh. */
- case 1149: value = 1064; break; /* stclrl --> ldclrl. */
- case 1150: value = 1066; break; /* steorb --> ldeorb. */
- case 1151: value = 1067; break; /* steorh --> ldeorh. */
- case 1152: value = 1068; break; /* steor --> ldeor. */
- case 1153: value = 1070; break; /* steorlb --> ldeorlb. */
- case 1154: value = 1073; break; /* steorlh --> ldeorlh. */
- case 1155: value = 1076; break; /* steorl --> ldeorl. */
- case 1156: value = 1078; break; /* stsetb --> ldsetb. */
- case 1157: value = 1079; break; /* stseth --> ldseth. */
- case 1158: value = 1080; break; /* stset --> ldset. */
- case 1159: value = 1082; break; /* stsetlb --> ldsetlb. */
- case 1160: value = 1085; break; /* stsetlh --> ldsetlh. */
- case 1161: value = 1088; break; /* stsetl --> ldsetl. */
- case 1162: value = 1090; break; /* stsmaxb --> ldsmaxb. */
- case 1163: value = 1091; break; /* stsmaxh --> ldsmaxh. */
- case 1164: value = 1092; break; /* stsmax --> ldsmax. */
- case 1165: value = 1094; break; /* stsmaxlb --> ldsmaxlb. */
- case 1166: value = 1097; break; /* stsmaxlh --> ldsmaxlh. */
- case 1167: value = 1100; break; /* stsmaxl --> ldsmaxl. */
- case 1168: value = 1102; break; /* stsminb --> ldsminb. */
- case 1169: value = 1103; break; /* stsminh --> ldsminh. */
- case 1170: value = 1104; break; /* stsmin --> ldsmin. */
- case 1171: value = 1106; break; /* stsminlb --> ldsminlb. */
- case 1172: value = 1109; break; /* stsminlh --> ldsminlh. */
- case 1173: value = 1112; break; /* stsminl --> ldsminl. */
- case 1174: value = 1114; break; /* stumaxb --> ldumaxb. */
- case 1175: value = 1115; break; /* stumaxh --> ldumaxh. */
- case 1176: value = 1116; break; /* stumax --> ldumax. */
- case 1177: value = 1118; break; /* stumaxlb --> ldumaxlb. */
- case 1178: value = 1121; break; /* stumaxlh --> ldumaxlh. */
- case 1179: value = 1124; break; /* stumaxl --> ldumaxl. */
- case 1180: value = 1126; break; /* stuminb --> lduminb. */
- case 1181: value = 1127; break; /* stuminh --> lduminh. */
- case 1182: value = 1128; break; /* stumin --> ldumin. */
- case 1183: value = 1130; break; /* stuminlb --> lduminlb. */
- case 1184: value = 1133; break; /* stuminlh --> lduminlh. */
- case 1185: value = 1136; break; /* stuminl --> lduminl. */
- case 1217: value = 1216; break; /* mov --> movn. */
- case 1219: value = 1218; break; /* mov --> movz. */
- case 3216: value = 1299; break; /* clrbhb --> autibsp. */
- case 1299: value = 1298; break; /* autibsp --> autibz. */
- case 1298: value = 1297; break; /* autibz --> autiasp. */
- case 1297: value = 1296; break; /* autiasp --> autiaz. */
- case 1296: value = 1295; break; /* autiaz --> pacibsp. */
- case 1295: value = 1294; break; /* pacibsp --> pacibz. */
- case 1294: value = 1293; break; /* pacibz --> paciasp. */
- case 1293: value = 1292; break; /* paciasp --> paciaz. */
- case 1292: value = 1271; break; /* paciaz --> gcsb. */
- case 1271: value = 1251; break; /* gcsb --> clearbhb. */
- case 1251: value = 1250; break; /* clearbhb --> tsb. */
- case 1250: value = 1249; break; /* tsb --> psb. */
- case 1249: value = 1248; break; /* psb --> esb. */
- case 1248: value = 1247; break; /* esb --> autib1716. */
- case 1247: value = 1246; break; /* autib1716 --> autia1716. */
- case 1246: value = 1245; break; /* autia1716 --> pacib1716. */
- case 1245: value = 1244; break; /* pacib1716 --> pacia1716. */
- case 1244: value = 1243; break; /* pacia1716 --> xpaclri. */
- case 1243: value = 1241; break; /* xpaclri --> sevl. */
- case 1241: value = 1240; break; /* sevl --> sev. */
- case 1240: value = 1239; break; /* sev --> wfi. */
- case 1239: value = 1238; break; /* wfi --> wfe. */
- case 1238: value = 1237; break; /* wfe --> yield. */
- case 1237: value = 1236; break; /* yield --> bti. */
- case 1236: value = 1235; break; /* bti --> csdb. */
- case 1235: value = 1234; break; /* csdb --> nop. */
- case 1234: value = 1233; break; /* nop --> hint. */
- case 1257: value = 1256; break; /* pssbb --> ssbb. */
- case 1256: value = 1255; break; /* ssbb --> dfb. */
- case 1255: value = 1253; break; /* dfb --> dsb. */
- case 3217: value = 1285; break; /* trcit --> brb. */
- case 1285: value = 1284; break; /* brb --> cosp. */
- case 1284: value = 1283; break; /* cosp --> cpp. */
- case 1283: value = 1282; break; /* cpp --> dvp. */
- case 1282: value = 1281; break; /* dvp --> cfp. */
- case 1281: value = 1277; break; /* cfp --> tlbi. */
- case 1277: value = 1276; break; /* tlbi --> ic. */
- case 1276: value = 1275; break; /* ic --> dc. */
- case 1275: value = 1274; break; /* dc --> at. */
- case 1274: value = 1272; break; /* at --> sys. */
- case 1278: value = 1273; break; /* tlbip --> sysp. */
- case 2101: value = 1348; break; /* bic --> and. */
- case 1331: value = 1350; break; /* mov --> and. */
- case 1335: value = 1351; break; /* movs --> ands. */
- case 2102: value = 1386; break; /* cmple --> cmpge. */
- case 2105: value = 1389; break; /* cmplt --> cmpgt. */
- case 2103: value = 1391; break; /* cmplo --> cmphi. */
- case 2104: value = 1394; break; /* cmpls --> cmphs. */
- case 1328: value = 1416; break; /* mov --> cpy. */
- case 1330: value = 1417; break; /* mov --> cpy. */
- case 2112: value = 1333; break; /* fmov --> mov. */
- case 1333: value = 1418; break; /* mov --> cpy. */
- case 1322: value = 1430; break; /* mov --> dup. */
- case 1325: value = 1321; break; /* mov --> mov. */
- case 1321: value = 1431; break; /* mov --> dup. */
- case 2111: value = 1327; break; /* fmov --> mov. */
- case 1327: value = 1432; break; /* mov --> dup. */
- case 1326: value = 1433; break; /* mov --> dupm. */
- case 2106: value = 1435; break; /* eon --> eor. */
- case 1336: value = 1437; break; /* not --> eor. */
- case 1337: value = 1438; break; /* nots --> eors. */
- case 2107: value = 1443; break; /* facle --> facge. */
- case 2108: value = 1444; break; /* faclt --> facgt. */
- case 2109: value = 1457; break; /* fcmle --> fcmge. */
- case 2110: value = 1459; break; /* fcmlt --> fcmgt. */
- case 1319: value = 1465; break; /* fmov --> fcpy. */
- case 1318: value = 1488; break; /* fmov --> fdup. */
- case 1320: value = 1820; break; /* mov --> orr. */
- case 2113: value = 1821; break; /* orn --> orr. */
- case 1324: value = 1323; break; /* mov --> mov. */
- case 1323: value = 1823; break; /* mov --> orr. */
- case 1334: value = 1824; break; /* movs --> orrs. */
- case 1329: value = 1887; break; /* mov --> sel. */
- case 1332: value = 1888; break; /* mov --> sel. */
+ case 659: value = 658; break; /* cblt --> cbgt. */
+ case 661: value = 660; break; /* cble --> cbge. */
+ case 663: value = 662; break; /* cblo --> cbhi. */
+ case 665: value = 664; break; /* cbls --> cbhs. */
+ case 669: value = 668; break; /* cbge --> cbgt. */
+ case 671: value = 670; break; /* cble --> cblt. */
+ case 673: value = 672; break; /* cbhs --> cbhi. */
+ case 675: value = 674; break; /* cbls --> cblo. */
+ case 679: value = 678; break; /* cbblt --> cbbgt. */
+ case 681: value = 680; break; /* cbble --> cbbge. */
+ case 683: value = 682; break; /* cbblo --> cbbhi. */
+ case 685: value = 684; break; /* cbbls --> cbbhs. */
+ case 689: value = 688; break; /* cbhlt --> cbhgt. */
+ case 691: value = 690; break; /* cbhle --> cbhge. */
+ case 693: value = 692; break; /* cbhlo --> cbhhi. */
+ case 695: value = 694; break; /* cbhls --> cbhhs. */
+ case 705: value = 704; break; /* cset --> cinc. */
+ case 704: value = 703; break; /* cinc --> csinc. */
+ case 708: value = 707; break; /* csetm --> cinv. */
+ case 707: value = 706; break; /* cinv --> csinv. */
+ case 710: value = 709; break; /* cneg --> csneg. */
+ case 729: value = 728; break; /* rev64 --> rev. */
+ case 754: value = 753; break; /* lsl --> lslv. */
+ case 756: value = 755; break; /* lsr --> lsrv. */
+ case 758: value = 757; break; /* asr --> asrv. */
+ case 760: value = 759; break; /* ror --> rorv. */
+ case 763: value = 762; break; /* cmpp --> subps. */
+ case 776: value = 775; break; /* mul --> madd. */
+ case 778: value = 777; break; /* mneg --> msub. */
+ case 780: value = 779; break; /* smull --> smaddl. */
+ case 782: value = 781; break; /* smnegl --> smsubl. */
+ case 785: value = 784; break; /* umull --> umaddl. */
+ case 787: value = 786; break; /* umnegl --> umsubl. */
+ case 799: value = 798; break; /* ror --> extr. */
+ case 1048: value = 1047; break; /* bic --> and. */
+ case 1050: value = 1049; break; /* mov --> orr. */
+ case 1053: value = 1052; break; /* tst --> ands. */
+ case 1058: value = 1057; break; /* uxtw --> mov. */
+ case 1057: value = 1056; break; /* mov --> orr. */
+ case 1060: value = 1059; break; /* mvn --> orn. */
+ case 1064: value = 1063; break; /* tst --> ands. */
+ case 1190: value = 1094; break; /* staddb --> ldaddb. */
+ case 1191: value = 1095; break; /* staddh --> ldaddh. */
+ case 1192: value = 1096; break; /* stadd --> ldadd. */
+ case 1193: value = 1098; break; /* staddlb --> ldaddlb. */
+ case 1194: value = 1101; break; /* staddlh --> ldaddlh. */
+ case 1195: value = 1104; break; /* staddl --> ldaddl. */
+ case 1196: value = 1106; break; /* stclrb --> ldclrb. */
+ case 1197: value = 1107; break; /* stclrh --> ldclrh. */
+ case 1198: value = 1108; break; /* stclr --> ldclr. */
+ case 1199: value = 1110; break; /* stclrlb --> ldclrlb. */
+ case 1200: value = 1113; break; /* stclrlh --> ldclrlh. */
+ case 1201: value = 1116; break; /* stclrl --> ldclrl. */
+ case 1202: value = 1118; break; /* steorb --> ldeorb. */
+ case 1203: value = 1119; break; /* steorh --> ldeorh. */
+ case 1204: value = 1120; break; /* steor --> ldeor. */
+ case 1205: value = 1122; break; /* steorlb --> ldeorlb. */
+ case 1206: value = 1125; break; /* steorlh --> ldeorlh. */
+ case 1207: value = 1128; break; /* steorl --> ldeorl. */
+ case 1208: value = 1130; break; /* stsetb --> ldsetb. */
+ case 1209: value = 1131; break; /* stseth --> ldseth. */
+ case 1210: value = 1132; break; /* stset --> ldset. */
+ case 1211: value = 1134; break; /* stsetlb --> ldsetlb. */
+ case 1212: value = 1137; break; /* stsetlh --> ldsetlh. */
+ case 1213: value = 1140; break; /* stsetl --> ldsetl. */
+ case 1214: value = 1142; break; /* stsmaxb --> ldsmaxb. */
+ case 1215: value = 1143; break; /* stsmaxh --> ldsmaxh. */
+ case 1216: value = 1144; break; /* stsmax --> ldsmax. */
+ case 1217: value = 1146; break; /* stsmaxlb --> ldsmaxlb. */
+ case 1218: value = 1149; break; /* stsmaxlh --> ldsmaxlh. */
+ case 1219: value = 1152; break; /* stsmaxl --> ldsmaxl. */
+ case 1220: value = 1154; break; /* stsminb --> ldsminb. */
+ case 1221: value = 1155; break; /* stsminh --> ldsminh. */
+ case 1222: value = 1156; break; /* stsmin --> ldsmin. */
+ case 1223: value = 1158; break; /* stsminlb --> ldsminlb. */
+ case 1224: value = 1161; break; /* stsminlh --> ldsminlh. */
+ case 1225: value = 1164; break; /* stsminl --> ldsminl. */
+ case 1226: value = 1166; break; /* stumaxb --> ldumaxb. */
+ case 1227: value = 1167; break; /* stumaxh --> ldumaxh. */
+ case 1228: value = 1168; break; /* stumax --> ldumax. */
+ case 1229: value = 1170; break; /* stumaxlb --> ldumaxlb. */
+ case 1230: value = 1173; break; /* stumaxlh --> ldumaxlh. */
+ case 1231: value = 1176; break; /* stumaxl --> ldumaxl. */
+ case 1232: value = 1178; break; /* stuminb --> lduminb. */
+ case 1233: value = 1179; break; /* stuminh --> lduminh. */
+ case 1234: value = 1180; break; /* stumin --> ldumin. */
+ case 1235: value = 1182; break; /* stuminlb --> lduminlb. */
+ case 1236: value = 1185; break; /* stuminlh --> lduminlh. */
+ case 1237: value = 1188; break; /* stuminl --> lduminl. */
+ case 1269: value = 1268; break; /* mov --> movn. */
+ case 1271: value = 1270; break; /* mov --> movz. */
+ case 3316: value = 1351; break; /* clrbhb --> autibsp. */
+ case 1351: value = 1350; break; /* autibsp --> autibz. */
+ case 1350: value = 1349; break; /* autibz --> autiasp. */
+ case 1349: value = 1348; break; /* autiasp --> autiaz. */
+ case 1348: value = 1347; break; /* autiaz --> pacibsp. */
+ case 1347: value = 1346; break; /* pacibsp --> pacibz. */
+ case 1346: value = 1345; break; /* pacibz --> paciasp. */
+ case 1345: value = 1344; break; /* paciasp --> paciaz. */
+ case 1344: value = 1323; break; /* paciaz --> gcsb. */
+ case 1323: value = 1303; break; /* gcsb --> clearbhb. */
+ case 1303: value = 1302; break; /* clearbhb --> tsb. */
+ case 1302: value = 1301; break; /* tsb --> psb. */
+ case 1301: value = 1300; break; /* psb --> esb. */
+ case 1300: value = 1299; break; /* esb --> autib1716. */
+ case 1299: value = 1298; break; /* autib1716 --> autia1716. */
+ case 1298: value = 1297; break; /* autia1716 --> pacib1716. */
+ case 1297: value = 1296; break; /* pacib1716 --> pacia1716. */
+ case 1296: value = 1295; break; /* pacia1716 --> xpaclri. */
+ case 1295: value = 1294; break; /* xpaclri --> dgh. */
+ case 1294: value = 1293; break; /* dgh --> sevl. */
+ case 1293: value = 1292; break; /* sevl --> sev. */
+ case 1292: value = 1291; break; /* sev --> wfi. */
+ case 1291: value = 1290; break; /* wfi --> wfe. */
+ case 1290: value = 1289; break; /* wfe --> yield. */
+ case 1289: value = 1288; break; /* yield --> bti. */
+ case 1288: value = 1287; break; /* bti --> csdb. */
+ case 1287: value = 1286; break; /* csdb --> nop. */
+ case 1286: value = 1285; break; /* nop --> hint. */
+ case 1309: value = 1308; break; /* pssbb --> ssbb. */
+ case 1308: value = 1307; break; /* ssbb --> dfb. */
+ case 1307: value = 1305; break; /* dfb --> dsb. */
+ case 3317: value = 1337; break; /* trcit --> brb. */
+ case 1337: value = 1336; break; /* brb --> cosp. */
+ case 1336: value = 1335; break; /* cosp --> cpp. */
+ case 1335: value = 1334; break; /* cpp --> dvp. */
+ case 1334: value = 1333; break; /* dvp --> cfp. */
+ case 1333: value = 1329; break; /* cfp --> tlbi. */
+ case 1329: value = 1328; break; /* tlbi --> ic. */
+ case 1328: value = 1327; break; /* ic --> dc. */
+ case 1327: value = 1326; break; /* dc --> at. */
+ case 1326: value = 1324; break; /* at --> sys. */
+ case 1330: value = 1325; break; /* tlbip --> sysp. */
+ case 2137: value = 1400; break; /* bic --> and. */
+ case 1383: value = 1402; break; /* mov --> and. */
+ case 1387: value = 1403; break; /* movs --> ands. */
+ case 2138: value = 1438; break; /* cmple --> cmpge. */
+ case 2141: value = 1441; break; /* cmplt --> cmpgt. */
+ case 2139: value = 1443; break; /* cmplo --> cmphi. */
+ case 2140: value = 1446; break; /* cmpls --> cmphs. */
+ case 1380: value = 1468; break; /* mov --> cpy. */
+ case 1382: value = 1469; break; /* mov --> cpy. */
+ case 2148: value = 1385; break; /* fmov --> mov. */
+ case 1385: value = 1470; break; /* mov --> cpy. */
+ case 1374: value = 1482; break; /* mov --> dup. */
+ case 1377: value = 1373; break; /* mov --> mov. */
+ case 1373: value = 1483; break; /* mov --> dup. */
+ case 2147: value = 1379; break; /* fmov --> mov. */
+ case 1379: value = 1484; break; /* mov --> dup. */
+ case 1378: value = 1485; break; /* mov --> dupm. */
+ case 2142: value = 1487; break; /* eon --> eor. */
+ case 1388: value = 1489; break; /* not --> eor. */
+ case 1389: value = 1490; break; /* nots --> eors. */
+ case 2143: value = 1495; break; /* facle --> facge. */
+ case 2144: value = 1496; break; /* faclt --> facgt. */
+ case 2145: value = 1509; break; /* fcmle --> fcmge. */
+ case 2146: value = 1511; break; /* fcmlt --> fcmgt. */
+ case 1371: value = 1517; break; /* fmov --> fcpy. */
+ case 1370: value = 1540; break; /* fmov --> fdup. */
+ case 1826: value = 1825; break; /* ldr --> ldr. */
+ case 1372: value = 1856; break; /* mov --> orr. */
+ case 2149: value = 1857; break; /* orn --> orr. */
+ case 1376: value = 1375; break; /* mov --> mov. */
+ case 1375: value = 1859; break; /* mov --> orr. */
+ case 1386: value = 1860; break; /* movs --> orrs. */
+ case 1863: value = 1862; break; /* pfalse --> pfalse. */
+ case 1381: value = 1923; break; /* mov --> sel. */
+ case 1384: value = 1924; break; /* mov --> sel. */
+ case 2045: value = 2044; break; /* str --> str. */
+ case 2472: value = 2474; break; /* mov --> mova. */
+ case 2473: value = 2475; break; /* mov --> mova. */
+ case 2493: value = 2492; break; /* psel --> psel. */
+ case 2698: value = 2706; break; /* mov --> mova. */
+ case 2699: value = 2707; break; /* mov --> mova. */
+ case 2700: value = 2708; break; /* mov --> mova. */
+ case 2701: value = 2709; break; /* mov --> mova. */
+ case 2702: value = 2710; break; /* mov --> mova. */
+ case 2703: value = 2711; break; /* mov --> mova. */
+ case 2704: value = 2712; break; /* mov --> mova. */
+ case 2705: value = 2713; break; /* mov --> mova. */
default: return NULL;
}
@@ -35312,16 +36187,9 @@ aarch64_extract_operand (const aarch64_operand *self,
case 32:
case 33:
case 34:
- case 123:
- case 124:
- case 125:
- case 184:
- case 185:
- case 186:
- case 187:
- case 188:
- case 189:
- case 190:
+ case 126:
+ case 127:
+ case 128:
case 191:
case 192:
case 193:
@@ -35329,33 +36197,41 @@ aarch64_extract_operand (const aarch64_operand *self,
case 195:
case 196:
case 197:
- case 213:
- case 214:
- case 215:
- case 216:
- case 226:
- case 227:
- case 228:
- case 229:
- case 230:
- case 241:
- case 245:
- case 249:
+ case 198:
+ case 199:
+ case 200:
+ case 201:
+ case 202:
+ case 203:
+ case 204:
+ case 220:
+ case 221:
+ case 222:
+ case 223:
+ case 233:
+ case 234:
+ case 235:
+ case 236:
+ case 237:
+ case 248:
+ case 252:
+ case 256:
case 257:
- case 258:
- case 259:
+ case 265:
case 266:
case 267:
- case 268:
- case 269:
- case 303:
- case 307:
+ case 274:
+ case 275:
+ case 276:
+ case 277:
+ case 311:
+ case 315:
return aarch64_ext_regno (self, info, code, inst, errors);
case 6:
- case 119:
- case 120:
- case 313:
- case 316:
+ case 122:
+ case 123:
+ case 321:
+ case 324:
return aarch64_ext_none (self, info, code, inst, errors);
case 11:
return aarch64_ext_regrt_sysins (self, info, code, inst, errors);
@@ -35375,24 +36251,16 @@ aarch64_extract_operand (const aarch64_operand *self,
case 37:
case 38:
case 39:
- case 318:
+ case 326:
return aarch64_ext_reglane (self, info, code, inst, errors);
case 40:
case 41:
case 42:
- case 231:
- case 232:
- case 235:
- case 270:
- case 271:
- case 286:
- case 287:
- case 288:
- case 289:
- case 290:
- case 291:
- case 292:
- case 293:
+ case 238:
+ case 239:
+ case 242:
+ case 278:
+ case 279:
case 294:
case 295:
case 296:
@@ -35402,12 +36270,20 @@ aarch64_extract_operand (const aarch64_operand *self,
case 300:
case 301:
case 302:
+ case 303:
case 304:
case 305:
case 306:
+ case 307:
case 308:
case 309:
case 310:
+ case 312:
+ case 313:
+ case 314:
+ case 316:
+ case 317:
+ case 318:
return aarch64_ext_simple_index (self, info, code, inst, errors);
case 43:
return aarch64_ext_reglist (self, info, code, inst, errors);
@@ -35440,32 +36316,35 @@ aarch64_extract_operand (const aarch64_operand *self,
case 75:
case 76:
case 77:
- case 88:
- case 89:
+ case 78:
+ case 79:
case 90:
case 91:
case 92:
- case 118:
- case 122:
- case 181:
- case 183:
- case 204:
- case 205:
- case 206:
- case 207:
- case 208:
- case 209:
- case 210:
+ case 93:
+ case 94:
+ case 95:
+ case 121:
+ case 125:
+ case 188:
+ case 190:
case 211:
case 212:
- case 272:
- case 311:
- case 312:
- case 314:
- case 315:
- case 317:
+ case 213:
+ case 214:
+ case 215:
+ case 216:
+ case 217:
+ case 218:
+ case 219:
+ case 280:
+ case 319:
+ case 320:
case 322:
case 323:
+ case 325:
+ case 330:
+ case 331:
return aarch64_ext_imm (self, info, code, inst, errors);
case 52:
case 53:
@@ -35477,88 +36356,85 @@ aarch64_extract_operand (const aarch64_operand *self,
case 57:
return aarch64_ext_shll_imm (self, info, code, inst, errors);
case 60:
- case 171:
+ case 178:
return aarch64_ext_fpimm (self, info, code, inst, errors);
- case 78:
- case 179:
+ case 80:
+ case 186:
return aarch64_ext_limm (self, info, code, inst, errors);
- case 79:
+ case 81:
return aarch64_ext_aimm (self, info, code, inst, errors);
- case 80:
+ case 82:
return aarch64_ext_imm_half (self, info, code, inst, errors);
- case 81:
- return aarch64_ext_fbits (self, info, code, inst, errors);
case 83:
- case 84:
- case 176:
- return aarch64_ext_imm_rotate2 (self, info, code, inst, errors);
+ return aarch64_ext_fbits (self, info, code, inst, errors);
case 85:
- case 175:
- case 177:
- return aarch64_ext_imm_rotate1 (self, info, code, inst, errors);
case 86:
+ case 183:
+ return aarch64_ext_imm_rotate2 (self, info, code, inst, errors);
case 87:
+ case 182:
+ case 184:
+ return aarch64_ext_imm_rotate1 (self, info, code, inst, errors);
+ case 88:
+ case 89:
return aarch64_ext_cond (self, info, code, inst, errors);
- case 93:
- case 102:
- return aarch64_ext_addr_simple (self, info, code, inst, errors);
- case 94:
- return aarch64_ext_addr_regoff (self, info, code, inst, errors);
- case 95:
case 96:
+ case 105:
+ return aarch64_ext_addr_simple (self, info, code, inst, errors);
case 97:
+ return aarch64_ext_addr_regoff (self, info, code, inst, errors);
+ case 98:
case 99:
- case 101:
+ case 100:
+ case 102:
+ case 104:
return aarch64_ext_addr_simm (self, info, code, inst, errors);
- case 98:
+ case 101:
return aarch64_ext_addr_simm10 (self, info, code, inst, errors);
- case 100:
- return aarch64_ext_addr_uimm12 (self, info, code, inst, errors);
case 103:
- return aarch64_ext_addr_offset (self, info, code, inst, errors);
- case 104:
- return aarch64_ext_simd_addr_post (self, info, code, inst, errors);
- case 105:
+ return aarch64_ext_addr_uimm12 (self, info, code, inst, errors);
case 106:
- return aarch64_ext_sysreg (self, info, code, inst, errors);
+ return aarch64_ext_addr_offset (self, info, code, inst, errors);
case 107:
- return aarch64_ext_pstatefield (self, info, code, inst, errors);
+ return aarch64_ext_simd_addr_post (self, info, code, inst, errors);
case 108:
case 109:
+ return aarch64_ext_sysreg (self, info, code, inst, errors);
case 110:
+ return aarch64_ext_pstatefield (self, info, code, inst, errors);
case 111:
case 112:
case 113:
- return aarch64_ext_sysins_op (self, info, code, inst, errors);
case 114:
+ case 115:
case 116:
+ return aarch64_ext_sysins_op (self, info, code, inst, errors);
+ case 117:
+ case 119:
return aarch64_ext_barrier (self, info, code, inst, errors);
- case 115:
+ case 118:
return aarch64_ext_barrier_dsb_nxs (self, info, code, inst, errors);
- case 117:
+ case 120:
return aarch64_ext_prfop (self, info, code, inst, errors);
- case 121:
+ case 124:
return aarch64_ext_hint (self, info, code, inst, errors);
- case 126:
- case 127:
- return aarch64_ext_sve_addr_ri_s4 (self, info, code, inst, errors);
- case 128:
case 129:
case 130:
+ return aarch64_ext_sve_addr_ri_s4 (self, info, code, inst, errors);
case 131:
- return aarch64_ext_sve_addr_ri_s4xvl (self, info, code, inst, errors);
case 132:
- return aarch64_ext_sve_addr_ri_s6xvl (self, info, code, inst, errors);
case 133:
- return aarch64_ext_sve_addr_ri_s9xvl (self, info, code, inst, errors);
case 134:
+ return aarch64_ext_sve_addr_ri_s4xvl (self, info, code, inst, errors);
case 135:
+ return aarch64_ext_sve_addr_ri_s6xvl (self, info, code, inst, errors);
case 136:
+ return aarch64_ext_sve_addr_ri_s9xvl (self, info, code, inst, errors);
case 137:
- return aarch64_ext_sve_addr_ri_u6 (self, info, code, inst, errors);
case 138:
case 139:
case 140:
+ return aarch64_ext_sve_addr_ri_u6 (self, info, code, inst, errors);
case 141:
case 142:
case 143:
@@ -35572,7 +36448,6 @@ aarch64_extract_operand (const aarch64_operand *self,
case 151:
case 152:
case 153:
- return aarch64_ext_sve_addr_rr_lsl (self, info, code, inst, errors);
case 154:
case 155:
case 156:
@@ -35580,116 +36455,124 @@ aarch64_extract_operand (const aarch64_operand *self,
case 158:
case 159:
case 160:
+ return aarch64_ext_sve_addr_rr_lsl (self, info, code, inst, errors);
case 161:
- return aarch64_ext_sve_addr_rz_xtw (self, info, code, inst, errors);
case 162:
case 163:
case 164:
case 165:
- return aarch64_ext_sve_addr_zi_u5 (self, info, code, inst, errors);
case 166:
- return aarch64_ext_sve_addr_zz_lsl (self, info, code, inst, errors);
case 167:
- return aarch64_ext_sve_addr_zz_sxtw (self, info, code, inst, errors);
case 168:
- return aarch64_ext_sve_addr_zz_uxtw (self, info, code, inst, errors);
+ return aarch64_ext_sve_addr_rz_xtw (self, info, code, inst, errors);
case 169:
- return aarch64_ext_sve_aimm (self, info, code, inst, errors);
case 170:
- return aarch64_ext_sve_asimm (self, info, code, inst, errors);
+ case 171:
case 172:
- return aarch64_ext_sve_float_half_one (self, info, code, inst, errors);
+ return aarch64_ext_sve_addr_zi_u5 (self, info, code, inst, errors);
case 173:
- return aarch64_ext_sve_float_half_two (self, info, code, inst, errors);
+ return aarch64_ext_sve_addr_zz_lsl (self, info, code, inst, errors);
case 174:
+ return aarch64_ext_sve_addr_zz_sxtw (self, info, code, inst, errors);
+ case 175:
+ return aarch64_ext_sve_addr_zz_uxtw (self, info, code, inst, errors);
+ case 176:
+ return aarch64_ext_sve_aimm (self, info, code, inst, errors);
+ case 177:
+ return aarch64_ext_sve_asimm (self, info, code, inst, errors);
+ case 179:
+ return aarch64_ext_sve_float_half_one (self, info, code, inst, errors);
+ case 180:
+ return aarch64_ext_sve_float_half_two (self, info, code, inst, errors);
+ case 181:
return aarch64_ext_sve_float_zero_one (self, info, code, inst, errors);
- case 178:
+ case 185:
return aarch64_ext_inv_limm (self, info, code, inst, errors);
- case 180:
+ case 187:
return aarch64_ext_sve_limm_mov (self, info, code, inst, errors);
- case 182:
+ case 189:
return aarch64_ext_sve_scale (self, info, code, inst, errors);
- case 198:
- case 199:
- case 200:
+ case 205:
+ case 206:
+ case 207:
return aarch64_ext_sve_shlimm (self, info, code, inst, errors);
- case 201:
- case 202:
- case 203:
- case 285:
+ case 208:
+ case 209:
+ case 210:
+ case 293:
return aarch64_ext_sve_shrimm (self, info, code, inst, errors);
- case 217:
- case 218:
- case 219:
- case 220:
- return aarch64_ext_sme_za_vrs1 (self, info, code, inst, errors);
- case 221:
- case 222:
- case 223:
case 224:
- return aarch64_ext_sme_za_vrs2 (self, info, code, inst, errors);
case 225:
+ case 226:
+ case 227:
+ return aarch64_ext_sme_za_vrs1 (self, info, code, inst, errors);
+ case 228:
+ case 229:
+ case 230:
+ case 231:
+ return aarch64_ext_sme_za_vrs2 (self, info, code, inst, errors);
+ case 232:
return aarch64_ext_sme_za_tile_to_vec (self, info, code, inst, errors);
- case 233:
- case 234:
- case 236:
- case 237:
- case 238:
- case 239:
case 240:
- return aarch64_ext_sve_quad_index (self, info, code, inst, errors);
- case 242:
+ case 241:
case 243:
- return aarch64_ext_sve_index (self, info, code, inst, errors);
case 244:
+ case 245:
case 246:
- case 265:
- return aarch64_ext_sve_reglist (self, info, code, inst, errors);
case 247:
- case 248:
+ return aarch64_ext_sve_quad_index (self, info, code, inst, errors);
+ case 249:
case 250:
+ return aarch64_ext_sve_index (self, info, code, inst, errors);
case 251:
- case 252:
case 253:
+ case 273:
+ return aarch64_ext_sve_reglist (self, info, code, inst, errors);
case 254:
- case 264:
- return aarch64_ext_sve_aligned_reglist (self, info, code, inst, errors);
case 255:
- case 256:
- return aarch64_ext_sve_strided_reglist (self, info, code, inst, errors);
+ case 258:
+ case 259:
case 260:
- case 262:
- case 273:
- return aarch64_ext_sme_za_hv_tiles (self, info, code, inst, errors);
case 261:
+ case 262:
+ case 272:
+ return aarch64_ext_sve_aligned_reglist (self, info, code, inst, errors);
case 263:
+ case 264:
+ return aarch64_ext_sve_strided_reglist (self, info, code, inst, errors);
+ case 268:
+ case 270:
+ case 281:
+ return aarch64_ext_sme_za_hv_tiles (self, info, code, inst, errors);
+ case 269:
+ case 271:
return aarch64_ext_sme_za_hv_tiles_range (self, info, code, inst, errors);
- case 274:
- case 275:
- case 276:
- case 277:
- case 278:
- case 279:
- case 280:
+ case 282:
+ case 283:
+ case 284:
+ case 285:
+ case 286:
+ case 287:
+ case 288:
return aarch64_ext_sme_za_array (self, info, code, inst, errors);
- case 281:
+ case 289:
return aarch64_ext_sme_addr_ri_u4xvl (self, info, code, inst, errors);
- case 282:
+ case 290:
return aarch64_ext_sme_sm_za (self, info, code, inst, errors);
- case 283:
+ case 291:
return aarch64_ext_sme_pred_reg_with_index (self, info, code, inst, errors);
- case 284:
+ case 292:
return aarch64_ext_plain_shrimm (self, info, code, inst, errors);
- case 319:
- case 320:
- case 321:
- return aarch64_ext_x0_to_x30 (self, info, code, inst, errors);
- case 324:
- case 325:
- case 326:
case 327:
- return aarch64_ext_rcpc3_addr_opt_offset (self, info, code, inst, errors);
case 328:
+ case 329:
+ return aarch64_ext_x0_to_x30 (self, info, code, inst, errors);
+ case 332:
+ case 333:
+ case 334:
+ case 335:
+ return aarch64_ext_rcpc3_addr_opt_offset (self, info, code, inst, errors);
+ case 336:
return aarch64_ext_rcpc3_addr_offset (self, info, code, inst, errors);
default: assert (0); abort ();
}
diff --git a/opcodes/aarch64-dis.c b/opcodes/aarch64-dis.c
index 6552d0e..2aab630 100644
--- a/opcodes/aarch64-dis.c
+++ b/opcodes/aarch64-dis.c
@@ -2746,7 +2746,16 @@ do_special_decoding (aarch64_inst *inst)
{
idx = select_operand_for_sf_field_coding (inst->opcode);
value = extract_field (FLD_sf, inst->value, 0);
- inst->operands[idx].qualifier = get_greg_qualifier_from_value (value);
+ if (inst->opcode->iclass == fprcvtfloat2int
+ || inst->opcode->iclass == fprcvtint2float)
+ {
+ if (value == 0)
+ inst->operands[idx].qualifier = AARCH64_OPND_QLF_S_S;
+ else
+ inst->operands[idx].qualifier = AARCH64_OPND_QLF_S_D;
+ }
+ else
+ inst->operands[idx].qualifier = get_greg_qualifier_from_value (value);
if (inst->operands[idx].qualifier == AARCH64_OPND_QLF_ERR)
return 0;
if ((inst->opcode->flags & F_N)
@@ -2831,6 +2840,23 @@ do_special_decoding (aarch64_inst *inst)
}
}
+ if (inst->opcode->flags & F_LSFE_SZ)
+ {
+ value = extract_field (FLD_ldst_size, inst->value, 0);
+
+ if (value > 0x3)
+ return 0;
+
+ for (int i = 0;
+ aarch64_operands[inst->operands[i].type].op_class != AARCH64_OPND_CLASS_ADDRESS;
+ i++)
+ {
+ inst->operands[i].qualifier = get_sreg_qualifier_from_value (value);
+ if (inst->operands[i].qualifier == AARCH64_OPND_QLF_ERR)
+ return 0;
+ }
+ }
+
if (inst->opcode->flags & F_T)
{
/* Num of consecutive '0's on the right side of imm5<3:0>. */
diff --git a/opcodes/aarch64-opc-2.c b/opcodes/aarch64-opc-2.c
index 99294b3..4adb43f 100644
--- a/opcodes/aarch64-opc-2.c
+++ b/opcodes/aarch64-opc-2.c
@@ -90,6 +90,8 @@ const struct aarch64_operand aarch64_operands[] =
{AARCH64_OPND_CLASS_IMMEDIATE, "WIDTH", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_imm6_10}, "the width of the bit-field"},
{AARCH64_OPND_CLASS_IMMEDIATE, "IMM", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_imm6_10}, "an immediate"},
{AARCH64_OPND_CLASS_IMMEDIATE, "IMM_2", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_imm6_15}, "an immediate"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "IMMP1_2", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_imm6_15}, "an immediate plus 1"},
+ {AARCH64_OPND_CLASS_IMMEDIATE, "IMMS1_2", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_imm6_15}, "an immediate minus 1"},
{AARCH64_OPND_CLASS_IMMEDIATE, "UIMM3_OP1", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_op1}, "a 3-bit unsigned immediate"},
{AARCH64_OPND_CLASS_IMMEDIATE, "UIMM3_OP2", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_op2}, "a 3-bit unsigned immediate"},
{AARCH64_OPND_CLASS_IMMEDIATE, "UIMM4", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_CRm}, "a 4-bit unsigned immediate"},
@@ -113,6 +115,7 @@ const struct aarch64_operand aarch64_operands[] =
{AARCH64_OPND_CLASS_COND, "COND", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "a condition"},
{AARCH64_OPND_CLASS_COND, "COND1", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {}, "one of the standard conditions, excluding AL and NV."},
{AARCH64_OPND_CLASS_ADDRESS, "ADDR_ADRP", OPD_F_SEXT | OPD_F_HAS_EXTRACTOR, {FLD_immhi, FLD_immlo}, "21-bit PC-relative address of a 4KB page"},
+ {AARCH64_OPND_CLASS_ADDRESS, "ADDR_PCREL9", OPD_F_SEXT | OPD_F_SHIFT_BY_2 | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_imm9_5}, "9-bit PC-relative address"},
{AARCH64_OPND_CLASS_ADDRESS, "ADDR_PCREL14", OPD_F_SEXT | OPD_F_SHIFT_BY_2 | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_imm14}, "14-bit PC-relative address"},
{AARCH64_OPND_CLASS_ADDRESS, "ADDR_PCREL19", OPD_F_SEXT | OPD_F_SHIFT_BY_2 | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_imm19}, "19-bit PC-relative address"},
{AARCH64_OPND_CLASS_ADDRESS, "ADDR_PCREL21", OPD_F_SEXT | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_immhi,FLD_immlo}, "21-bit PC-relative address"},
@@ -162,12 +165,16 @@ const struct aarch64_operand aarch64_operands[] =
{AARCH64_OPND_CLASS_ADDRESS, "SVE_ADDR_RI_U6x2", 1 << OPD_F_OD_LSB | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn}, "an address with a 6-bit unsigned offset, multiplied by 2"},
{AARCH64_OPND_CLASS_ADDRESS, "SVE_ADDR_RI_U6x4", 2 << OPD_F_OD_LSB | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn}, "an address with a 6-bit unsigned offset, multiplied by 4"},
{AARCH64_OPND_CLASS_ADDRESS, "SVE_ADDR_RI_U6x8", 3 << OPD_F_OD_LSB | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn}, "an address with a 6-bit unsigned offset, multiplied by 8"},
- {AARCH64_OPND_CLASS_ADDRESS, "SVE_ADDR_R", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn,FLD_Rm}, "an address with an optional scalar register offset"},
{AARCH64_OPND_CLASS_ADDRESS, "SVE_ADDR_RR", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn,FLD_Rm}, "an address with a scalar register offset"},
{AARCH64_OPND_CLASS_ADDRESS, "SVE_ADDR_RR_LSL1", 1 << OPD_F_OD_LSB | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn,FLD_Rm}, "an address with a scalar register offset"},
{AARCH64_OPND_CLASS_ADDRESS, "SVE_ADDR_RR_LSL2", 2 << OPD_F_OD_LSB | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn,FLD_Rm}, "an address with a scalar register offset"},
{AARCH64_OPND_CLASS_ADDRESS, "SVE_ADDR_RR_LSL3", 3 << OPD_F_OD_LSB | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn,FLD_Rm}, "an address with a scalar register offset"},
{AARCH64_OPND_CLASS_ADDRESS, "SVE_ADDR_RR_LSL4", 4 << OPD_F_OD_LSB | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn,FLD_Rm}, "an address with a scalar register offset"},
+ {AARCH64_OPND_CLASS_ADDRESS, "SVE_ADDR_RM", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn,FLD_Rm}, "an address with a scalar register offset"},
+ {AARCH64_OPND_CLASS_ADDRESS, "SVE_ADDR_RM_LSL1", 1 << OPD_F_OD_LSB | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn,FLD_Rm}, "an address with a scalar register offset"},
+ {AARCH64_OPND_CLASS_ADDRESS, "SVE_ADDR_RM_LSL2", 2 << OPD_F_OD_LSB | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn,FLD_Rm}, "an address with a scalar register offset"},
+ {AARCH64_OPND_CLASS_ADDRESS, "SVE_ADDR_RM_LSL3", 3 << OPD_F_OD_LSB | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn,FLD_Rm}, "an address with a scalar register offset"},
+ {AARCH64_OPND_CLASS_ADDRESS, "SVE_ADDR_RM_LSL4", 4 << OPD_F_OD_LSB | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn,FLD_Rm}, "an address with a scalar register offset"},
{AARCH64_OPND_CLASS_ADDRESS, "SVE_ADDR_RX", (0 << OPD_F_OD_LSB) | OPD_F_NO_ZR | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn,FLD_Rm}, "an address with a scalar register offset"},
{AARCH64_OPND_CLASS_ADDRESS, "SVE_ADDR_RX_LSL1", (1 << OPD_F_OD_LSB) | OPD_F_NO_ZR | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn,FLD_Rm}, "an address with a scalar register offset"},
{AARCH64_OPND_CLASS_ADDRESS, "SVE_ADDR_RX_LSL2", (2 << OPD_F_OD_LSB) | OPD_F_NO_ZR | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn,FLD_Rm}, "an address with a scalar register offset"},
@@ -274,6 +281,7 @@ const struct aarch64_operand aarch64_operands[] =
{AARCH64_OPND_CLASS_SVE_REGLIST, "SME_Zdnx2", 2 << OPD_F_OD_LSB | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SME_Zdn2}, "a list of SVE vector registers"},
{AARCH64_OPND_CLASS_SVE_REGLIST, "SME_Zdnx4", 4 << OPD_F_OD_LSB | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SME_Zdn4}, "a list of SVE vector registers"},
{AARCH64_OPND_CLASS_SVE_REG, "SME_Zm", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SME_Zm}, "an SVE vector register"},
+ {AARCH64_OPND_CLASS_SVE_REG, "SME_Zm_17", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SME_Zm2}, "an SVE vector register"},
{AARCH64_OPND_CLASS_SVE_REGLIST, "SME_Zmx2", 2 << OPD_F_OD_LSB | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SME_Zm2}, "a list of SVE vector registers"},
{AARCH64_OPND_CLASS_SVE_REGLIST, "SME_Zmx4", 4 << OPD_F_OD_LSB | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SME_Zm4}, "a list of SVE vector registers"},
{AARCH64_OPND_CLASS_SVE_REGLIST, "SME_Znx2", 2 << OPD_F_OD_LSB | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SME_Zn2}, "a list of SVE vector registers"},
@@ -362,48 +370,48 @@ const struct aarch64_operand aarch64_operands[] =
static const unsigned op_enum_table [] =
{
0,
- 889,
- 890,
- 891,
- 894,
- 895,
- 896,
- 897,
- 898,
- 892,
- 893,
- 899,
- 900,
- 922,
- 923,
- 924,
- 927,
- 928,
- 929,
- 930,
- 931,
- 925,
- 926,
- 932,
- 933,
- 987,
- 988,
- 989,
- 990,
+ 941,
+ 942,
+ 943,
+ 946,
+ 947,
+ 948,
+ 949,
+ 950,
+ 944,
+ 945,
+ 951,
+ 952,
+ 974,
+ 975,
+ 976,
+ 979,
+ 980,
+ 981,
+ 982,
+ 983,
+ 977,
+ 978,
+ 984,
+ 985,
+ 1039,
+ 1040,
+ 1041,
+ 1042,
12,
636,
637,
- 1216,
- 1218,
- 1220,
- 998,
- 1219,
- 1217,
+ 1268,
+ 1270,
+ 1272,
+ 1050,
+ 1271,
+ 1269,
318,
624,
635,
634,
- 996,
+ 1048,
631,
628,
620,
@@ -413,35 +421,35 @@ static const unsigned op_enum_table [] =
630,
632,
633,
- 1006,
- 664,
- 667,
- 670,
- 665,
- 668,
- 825,
+ 1058,
+ 704,
+ 707,
+ 710,
+ 705,
+ 708,
+ 877,
178,
179,
180,
181,
516,
- 759,
+ 799,
389,
391,
413,
415,
- 1323,
- 1324,
- 1329,
- 1321,
- 1320,
- 1325,
- 1332,
- 1334,
- 1335,
- 1331,
- 1337,
- 1336,
+ 1375,
+ 1376,
+ 1381,
+ 1373,
+ 1372,
+ 1377,
+ 1384,
+ 1386,
+ 1387,
+ 1383,
+ 1389,
+ 1388,
131,
};
diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c
index 5c434a6..b2fd497 100644
--- a/opcodes/aarch64-opc.c
+++ b/opcodes/aarch64-opc.c
@@ -381,6 +381,7 @@ const aarch64_field fields[] =
{ 15, 7 }, /* imm7: in load/store pair pre/post index instructions. */
{ 13, 8 }, /* imm8: in floating-point scalar move immediate inst. */
{ 12, 9 }, /* imm9: in load/store pre/post index instructions. */
+ { 5, 9 }, /* imm9_5: in CB<cc> (immediate). */
{ 10, 12 }, /* imm12: in ld/st unsigned imm or add/sub shifted inst. */
{ 5, 14 }, /* imm14: in test bit and branch instructions. */
{ 0, 16 }, /* imm16_0: in udf instruction. */
@@ -1960,6 +1961,7 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx,
break;
case AARCH64_OPND_SME_Zm:
+ case AARCH64_OPND_SME_Zm_17:
if (opnd->reg.regno > 15)
{
set_invalid_regno_error (mismatch_detail, idx, "z", 0, 15);
@@ -2417,6 +2419,7 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx,
}
break;
+ case AARCH64_OPND_ADDR_PCREL9:
case AARCH64_OPND_ADDR_PCREL14:
case AARCH64_OPND_ADDR_PCREL19:
case AARCH64_OPND_ADDR_PCREL21:
@@ -2542,12 +2545,16 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx,
assert (opnd->shifter.operator_present == 0);
break;
- case AARCH64_OPND_SVE_ADDR_R:
case AARCH64_OPND_SVE_ADDR_RR:
case AARCH64_OPND_SVE_ADDR_RR_LSL1:
case AARCH64_OPND_SVE_ADDR_RR_LSL2:
case AARCH64_OPND_SVE_ADDR_RR_LSL3:
case AARCH64_OPND_SVE_ADDR_RR_LSL4:
+ case AARCH64_OPND_SVE_ADDR_RM:
+ case AARCH64_OPND_SVE_ADDR_RM_LSL1:
+ case AARCH64_OPND_SVE_ADDR_RM_LSL2:
+ case AARCH64_OPND_SVE_ADDR_RM_LSL3:
+ case AARCH64_OPND_SVE_ADDR_RM_LSL4:
case AARCH64_OPND_SVE_ADDR_RX:
case AARCH64_OPND_SVE_ADDR_RX_LSL1:
case AARCH64_OPND_SVE_ADDR_RX_LSL2:
@@ -4327,6 +4334,7 @@ aarch64_print_operand (char *buf, size_t size, bfd_vma pc,
case AARCH64_OPND_SVE_Zn:
case AARCH64_OPND_SVE_Zt:
case AARCH64_OPND_SME_Zm:
+ case AARCH64_OPND_SME_Zm_17:
if (opnd->qualifier == AARCH64_OPND_QLF_NIL)
snprintf (buf, size, "%s", style_reg (styler, "z%d", opnd->reg.regno));
else
@@ -4781,6 +4789,7 @@ aarch64_print_operand (char *buf, size_t size, bfd_vma pc,
snprintf (buf, size, "%s", style_addr (styler, "#0x%" PRIx64 , addr));
break;
+ case AARCH64_OPND_ADDR_PCREL9:
case AARCH64_OPND_ADDR_PCREL14:
case AARCH64_OPND_ADDR_PCREL19:
case AARCH64_OPND_ADDR_PCREL21:
@@ -4817,12 +4826,16 @@ aarch64_print_operand (char *buf, size_t size, bfd_vma pc,
break;
case AARCH64_OPND_ADDR_REGOFF:
- case AARCH64_OPND_SVE_ADDR_R:
case AARCH64_OPND_SVE_ADDR_RR:
case AARCH64_OPND_SVE_ADDR_RR_LSL1:
case AARCH64_OPND_SVE_ADDR_RR_LSL2:
case AARCH64_OPND_SVE_ADDR_RR_LSL3:
case AARCH64_OPND_SVE_ADDR_RR_LSL4:
+ case AARCH64_OPND_SVE_ADDR_RM:
+ case AARCH64_OPND_SVE_ADDR_RM_LSL1:
+ case AARCH64_OPND_SVE_ADDR_RM_LSL2:
+ case AARCH64_OPND_SVE_ADDR_RM_LSL3:
+ case AARCH64_OPND_SVE_ADDR_RM_LSL4:
case AARCH64_OPND_SVE_ADDR_RX:
case AARCH64_OPND_SVE_ADDR_RX_LSL1:
case AARCH64_OPND_SVE_ADDR_RX_LSL2:
@@ -5206,6 +5219,8 @@ const aarch64_sys_ins_reg aarch64_sys_regs_dc[] =
{ "cvac", CPENS (3, C7, C10, 1), F_HASXT, AARCH64_NO_FEATURES },
{ "cgvac", CPENS (3, C7, C10, 3), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
{ "cgdvac", CPENS (3, C7, C10, 5), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
+ { "cvaoc", CPENS (3, C7, C11, 0), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (OCCMO) },
+ { "cgdvaoc", CPENS (3, C7, C11, 7), F_HASXT | F_ARCHEXT, AARCH64_FEATURES (2, OCCMO, MEMTAG) },
{ "csw", CPENS (0, C7, C10, 2), F_HASXT, AARCH64_NO_FEATURES },
{ "cgsw", CPENS (0, C7, C10, 4), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
{ "cgdsw", CPENS (0, C7, C10, 6), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
@@ -5222,6 +5237,10 @@ const aarch64_sys_ins_reg aarch64_sys_regs_dc[] =
{ "cisw", CPENS (0, C7, C14, 2), F_HASXT, AARCH64_NO_FEATURES },
{ "cigsw", CPENS (0, C7, C14, 4), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
{ "cigdsw", CPENS (0, C7, C14, 6), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (MEMTAG) },
+ { "civaoc", CPENS (3, C7, C15, 0), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (OCCMO) },
+ { "cigdvaoc", CPENS (3, C7, C15, 7), F_HASXT | F_ARCHEXT, AARCH64_FEATURES (2, OCCMO, MEMTAG) },
+ { "cipae", CPENS (4, C7, C14, 0), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (V8_7A) },
+ { "cigdpae", CPENS (4, C7, C14, 7), F_HASXT | F_ARCHEXT, AARCH64_FEATURE (V8_7A) },
{ "cipapa", CPENS (6, C7, C14, 1), F_HASXT, AARCH64_NO_FEATURES },
{ "cigdpapa", CPENS (6, C7, C14, 5), F_HASXT, AARCH64_NO_FEATURES },
{ 0, CPENS(0,0,0,0), 0, AARCH64_NO_FEATURES }
diff --git a/opcodes/aarch64-opc.h b/opcodes/aarch64-opc.h
index 9ab9bdf..dc8787a 100644
--- a/opcodes/aarch64-opc.h
+++ b/opcodes/aarch64-opc.h
@@ -185,6 +185,7 @@ enum aarch64_field_kind
FLD_imm7,
FLD_imm8,
FLD_imm9,
+ FLD_imm9_5,
FLD_imm12,
FLD_imm14,
FLD_imm16_0,
@@ -326,7 +327,7 @@ verify_constraints (const struct aarch64_inst *, const aarch64_insn, bfd_vma,
#define F_REG_ALIAS (1 << 6) /* Register name aliases another. */
#undef F_REG_128
-#define F_REG_128 (1 << 7) /* System regsister implementable as 128-bit wide. */
+#define F_REG_128 (1 << 7) /* System register implementable as 128-bit wide. */
/* PSTATE field name for the MSR instruction this is encoded in "op1:op2:CRm".
@@ -551,6 +552,11 @@ static inline int
select_operand_for_sf_field_coding (const aarch64_opcode *opcode)
{
int idx = -1;
+ if (opcode->iclass == fprcvtfloat2int)
+ return 0;
+ else if (opcode->iclass == fprcvtint2float)
+ return 1;
+
if (aarch64_get_operand_class (opcode->operands[0])
== AARCH64_OPND_CLASS_INT_REG)
/* normal case. */
@@ -572,6 +578,11 @@ static inline int
select_operand_for_fptype_field_coding (const aarch64_opcode *opcode)
{
int idx;
+ if (opcode->iclass == fprcvtfloat2int)
+ return 1;
+ else if (opcode->iclass == fprcvtint2float)
+ return 0;
+
if (aarch64_get_operand_class (opcode->operands[1])
== AARCH64_OPND_CLASS_FP_REG)
/* normal case. */
@@ -602,7 +613,7 @@ select_operand_for_scalar_size_field_coding (const aarch64_opcode *opcode)
src_size = aarch64_get_qualifier_esize (opcode->qualifiers_list[0][1]);
if (src_size == dst_size && src_size == 0)
{ assert (0); abort (); }
- /* When the result is not a sisd register or it is a long operantion. */
+ /* When the result is not a sisd register or it is a long operation. */
if (dst_size == 0 || dst_size == src_size << 1)
return 1;
else
diff --git a/opcodes/aarch64-sys-regs.def b/opcodes/aarch64-sys-regs.def
index f9dc5ee..5cb2342 100644
--- a/opcodes/aarch64-sys-regs.def
+++ b/opcodes/aarch64-sys-regs.def
@@ -437,6 +437,7 @@
SYSREG ("gcscr_el3", CPENC (3,6,2,5,0), F_ARCHEXT, AARCH64_FEATURE (GCS))
SYSREG ("gcr_el1", CPENC (3,0,1,0,6), F_ARCHEXT, AARCH64_FEATURE (MEMTAG))
SYSREG ("gmid_el1", CPENC (3,1,0,0,4), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (MEMTAG))
+ SYSREG ("gpcbw_el3", CPENC (3,6,2,1,5), F_ARCHEXT, AARCH64_FEATURE (V9_5A))
SYSREG ("gpccr_el3", CPENC (3,6,2,1,6), 0, AARCH64_NO_FEATURES)
SYSREG ("gptbr_el3", CPENC (3,6,2,1,4), 0, AARCH64_NO_FEATURES)
SYSREG ("hacr_el2", CPENC (3,4,1,1,7), 0, AARCH64_NO_FEATURES)
@@ -448,6 +449,7 @@
SYSREG ("hdfgwtr_el2", CPENC (3,4,3,1,5), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
SYSREG ("hdfgwtr2_el2", CPENC (3,4,3,1,1), F_ARCHEXT, AARCH64_FEATURE (FGT2))
SYSREG ("hfgitr_el2", CPENC (3,4,1,1,6), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
+ SYSREG ("hfgitr2_el2", CPENC (3,4,3,1,7), F_ARCHEXT, AARCH64_FEATURE (V8_8A))
SYSREG ("hfgrtr_el2", CPENC (3,4,1,1,4), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
SYSREG ("hfgrtr2_el2", CPENC (3,4,3,1,2), F_ARCHEXT, AARCH64_FEATURE (FGT2))
SYSREG ("hfgwtr_el2", CPENC (3,4,1,1,5), F_ARCHEXT, AARCH64_FEATURE (V8_6A))
@@ -520,6 +522,7 @@
SYSREG ("id_aa64dfr0_el1", CPENC (3,0,0,5,0), F_REG_READ, AARCH64_NO_FEATURES)
SYSREG ("id_aa64dfr1_el1", CPENC (3,0,0,5,1), F_REG_READ, AARCH64_NO_FEATURES)
SYSREG ("id_aa64dfr2_el1", CPENC (3,0,0,5,2), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64fpfr0_el1", CPENC (3,0,0,4,7), F_REG_READ, AARCH64_NO_FEATURES)
SYSREG ("id_aa64isar0_el1", CPENC (3,0,0,6,0), F_REG_READ, AARCH64_NO_FEATURES)
SYSREG ("id_aa64isar1_el1", CPENC (3,0,0,6,1), F_REG_READ, AARCH64_NO_FEATURES)
SYSREG ("id_aa64isar2_el1", CPENC (3,0,0,6,2), F_REG_READ, AARCH64_NO_FEATURES)
@@ -531,6 +534,7 @@
SYSREG ("id_aa64mmfr4_el1", CPENC (3,0,0,7,4), F_REG_READ, AARCH64_NO_FEATURES)
SYSREG ("id_aa64pfr0_el1", CPENC (3,0,0,4,0), F_REG_READ, AARCH64_NO_FEATURES)
SYSREG ("id_aa64pfr1_el1", CPENC (3,0,0,4,1), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("id_aa64pfr2_el1", CPENC (3,0,0,4,2), F_REG_READ, AARCH64_NO_FEATURES)
SYSREG ("id_aa64smfr0_el1", CPENC (3,0,0,4,5), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (SME))
SYSREG ("id_aa64zfr0_el1", CPENC (3,0,0,4,4), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (SVE))
SYSREG ("id_afr0_el1", CPENC (3,0,0,1,3), F_REG_READ, AARCH64_NO_FEATURES)
@@ -575,12 +579,12 @@
SYSREG ("mdscr_el1", CPENC (2,0,0,2,2), 0, AARCH64_NO_FEATURES)
SYSREG ("mdselr_el1", CPENC (2,0,0,4,2), F_ARCHEXT, AARCH64_FEATURE (DEBUGv8p9))
SYSREG ("mdstepop_el1", CPENC (2,0,0,5,2), F_ARCHEXT, AARCH64_FEATURE (STEP2))
- SYSREG ("mecid_a0_el2", CPENC (3,4,10,8,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("mecid_a1_el2", CPENC (3,4,10,8,3), 0, AARCH64_NO_FEATURES)
- SYSREG ("mecid_p0_el2", CPENC (3,4,10,8,0), 0, AARCH64_NO_FEATURES)
- SYSREG ("mecid_p1_el2", CPENC (3,4,10,8,2), 0, AARCH64_NO_FEATURES)
- SYSREG ("mecid_rl_a_el3", CPENC (3,6,10,10,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("mecidr_el2", CPENC (3,4,10,8,7), F_REG_READ, AARCH64_NO_FEATURES)
+ SYSREG ("mecid_a0_el2", CPENC (3,4,10,8,1), F_ARCHEXT, AARCH64_FEATURE (V8_7A))
+ SYSREG ("mecid_a1_el2", CPENC (3,4,10,8,3), F_ARCHEXT, AARCH64_FEATURE (V8_7A))
+ SYSREG ("mecid_p0_el2", CPENC (3,4,10,8,0), F_ARCHEXT, AARCH64_FEATURE (V8_7A))
+ SYSREG ("mecid_p1_el2", CPENC (3,4,10,8,2), F_ARCHEXT, AARCH64_FEATURE (V8_7A))
+ SYSREG ("mecid_rl_a_el3", CPENC (3,6,10,10,1), F_ARCHEXT, AARCH64_FEATURE (V8_7A))
+ SYSREG ("mecidr_el2", CPENC (3,4,10,8,7), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (V8_7A))
SYSREG ("mfar_el3", CPENC (3,6,6,0,5), 0, AARCH64_NO_FEATURES)
SYSREG ("midr_el1", CPENC (3,0,0,0,0), F_REG_READ, AARCH64_NO_FEATURES)
SYSREG ("mpam0_el1", CPENC (3,0,10,5,1), 0, AARCH64_NO_FEATURES)
@@ -588,6 +592,14 @@
SYSREG ("mpam1_el12", CPENC (3,5,10,5,0), 0, AARCH64_NO_FEATURES)
SYSREG ("mpam2_el2", CPENC (3,4,10,5,0), 0, AARCH64_NO_FEATURES)
SYSREG ("mpam3_el3", CPENC (3,6,10,5,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("mpambw0_el1", CPENC (3,0,10,5,5), F_ARCHEXT, AARCH64_FEATURE (V9_3A))
+ SYSREG ("mpambw1_el1", CPENC (3,0,10,5,4), F_ARCHEXT, AARCH64_FEATURE (V9_3A))
+ SYSREG ("mpambw1_el12", CPENC (3,5,10,5,4), F_ARCHEXT, AARCH64_FEATURE (V9_3A))
+ SYSREG ("mpambw2_el2", CPENC (3,4,10,5,4), F_ARCHEXT, AARCH64_FEATURE (V9_3A))
+ SYSREG ("mpambw3_el3", CPENC (3,6,10,5,4), F_ARCHEXT, AARCH64_FEATURE (V9_3A))
+ SYSREG ("mpambwcap_el2", CPENC (3,4,10,5,6), F_ARCHEXT, AARCH64_FEATURE (V9_3A))
+ SYSREG ("mpambwidr_el1", CPENC (3,0,10,4,5), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (V9_3A))
+ SYSREG ("mpambwsm_el1", CPENC (3,0,10,5,7), F_ARCHEXT, AARCH64_FEATURES (2, SME, V9_3A))
SYSREG ("mpamhcr_el2", CPENC (3,4,10,4,0), 0, AARCH64_NO_FEATURES)
SYSREG ("mpamidr_el1", CPENC (3,0,10,4,4), F_REG_READ, AARCH64_NO_FEATURES)
SYSREG ("mpamsm_el1", CPENC (3,0,10,5,3), F_ARCHEXT, AARCH64_FEATURE (SME))
@@ -627,8 +639,12 @@
SYSREG ("pfar_el2", CPENC (3,4,6,0,5), F_ARCHEXT, AARCH64_FEATURE (PFAR))
SYSREG ("pmbidr_el1", CPENC (3,0,9,10,7), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PROFILE))
SYSREG ("pmblimitr_el1", CPENC (3,0,9,10,0), F_ARCHEXT, AARCH64_FEATURE (PROFILE))
+ SYSREG ("pmbmar_el1", CPENC (3,0,9,10,5), F_ARCHEXT, AARCH64_FEATURES (2, PROFILE, V9_5A))
SYSREG ("pmbptr_el1", CPENC (3,0,9,10,1), F_ARCHEXT, AARCH64_FEATURE (PROFILE))
SYSREG ("pmbsr_el1", CPENC (3,0,9,10,3), F_ARCHEXT, AARCH64_FEATURE (PROFILE))
+ SYSREG ("pmbsr_el12", CPENC (3,5,9,10,3), F_ARCHEXT, AARCH64_FEATURES (2, V9_5A, PROFILE))
+ SYSREG ("pmbsr_el2", CPENC (3,4,9,10,3), F_ARCHEXT, AARCH64_FEATURES (2, V9_5A, PROFILE))
+ SYSREG ("pmbsr_el3", CPENC (3,6,9,10,3), F_ARCHEXT, AARCH64_FEATURES (2, V9_5A, PROFILE))
SYSREG ("pmccfiltr_el0", CPENC (3,3,14,15,7), 0, AARCH64_NO_FEATURES)
SYSREG ("pmccntr_el0", CPENC (3,3,9,13,0), 0, AARCH64_NO_FEATURES)
SYSREG ("pmccntsvr_el1", CPENC (2,0,14,11,7), F_REG_READ|F_ARCHEXT, AARCH64_FEATURE (PMUv3_SS))
@@ -996,6 +1012,9 @@
SYSREG ("trbmar_el1", CPENC (3,0,9,11,4), 0, AARCH64_NO_FEATURES)
SYSREG ("trbptr_el1", CPENC (3,0,9,11,1), 0, AARCH64_NO_FEATURES)
SYSREG ("trbsr_el1", CPENC (3,0,9,11,3), 0, AARCH64_NO_FEATURES)
+ SYSREG ("trbsr_el12", CPENC (3,5,9,11,3), F_ARCHEXT, AARCH64_FEATURE (V9_5A))
+ SYSREG ("trbsr_el2", CPENC (3,4,9,11,3), F_ARCHEXT, AARCH64_FEATURE (V9_5A))
+ SYSREG ("trbsr_el3", CPENC (3,6,9,11,3), F_ARCHEXT, AARCH64_FEATURE (V9_5A))
SYSREG ("trbtrg_el1", CPENC (3,0,9,11,6), 0, AARCH64_NO_FEATURES)
SYSREG ("trcacatr0", CPENC (2,1,2,0,2), 0, AARCH64_NO_FEATURES)
SYSREG ("trcacatr1", CPENC (2,1,2,2,2), 0, AARCH64_NO_FEATURES)
@@ -1233,8 +1252,8 @@
SYSREG ("vbar_el3", CPENC (3,6,12,0,0), 0, AARCH64_NO_FEATURES)
SYSREG ("vdisr_el2", CPENC (3,4,12,1,1), F_ARCHEXT, AARCH64_FEATURE (RAS))
SYSREG ("vdisr_el3", CPENC (3,6,12,1,1), F_ARCHEXT, AARCH64_FEATURE (E3DSE))
- SYSREG ("vmecid_a_el2", CPENC (3,4,10,9,1), 0, AARCH64_NO_FEATURES)
- SYSREG ("vmecid_p_el2", CPENC (3,4,10,9,0), 0, AARCH64_NO_FEATURES)
+ SYSREG ("vmecid_a_el2", CPENC (3,4,10,9,1), F_ARCHEXT, AARCH64_FEATURE (V8_7A))
+ SYSREG ("vmecid_p_el2", CPENC (3,4,10,9,0), F_ARCHEXT, AARCH64_FEATURE (V8_7A))
SYSREG ("vmpidr_el2", CPENC (3,4,0,0,5), 0, AARCH64_NO_FEATURES)
SYSREG ("vncr_el2", CPENC (3,4,2,2,0), F_ARCHEXT, AARCH64_FEATURE (V8_4A))
SYSREG ("vpidr_el2", CPENC (3,4,0,0,0), 0, AARCH64_NO_FEATURES)
diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h
index 8b64eb0..d573ecc 100644
--- a/opcodes/aarch64-tbl.h
+++ b/opcodes/aarch64-tbl.h
@@ -136,6 +136,19 @@
QLF2(X,NIL), \
}
+/* e.g. CBBGT <Wt>, <Wm>, <label>. */
+#define QL_W2NIL \
+{ \
+ QLF3(W,W,NIL), \
+}
+
+/* e.g. CBGT <Wt>, #<imm6>, <label>. */
+#define QL_R_IMM_NIL \
+{ \
+ QLF3(W,imm_0_63,NIL), \
+ QLF3(X,imm_0_63,NIL), \
+}
+
/* e.g. LDR <Dt>, <label>. */
#define QL_FP_PCREL \
{ \
@@ -359,6 +372,15 @@
QLF2 (S_H, X), \
}
+/* e.g. FCVTAS <Xd>, <Dn>. */
+#define QL_INT2FP_FPRCVT \
+{ \
+ QLF2(S_H,S_S), \
+ QLF2(S_H,S_D), \
+ QLF2(S_S,S_D), \
+ QLF2(S_D,S_S), \
+}
+
/* e.g. FCVTNS <Xd>, <Dn>. */
#define QL_FP2INT \
{ \
@@ -368,6 +390,15 @@
QLF2(X,S_S), \
}
+/* e.g. FCVTAS <Sd>, <Dn>. */
+#define QL_FP2INT_FPRCVT \
+{ \
+ QLF2(S_D,S_S), \
+ QLF2(S_S,S_D), \
+ QLF2(S_D,S_H), \
+ QLF2(S_S,S_H), \
+}
+
/* e.g. FMOV <Xd>, <Dn>. */
#define QL_FP2INT_FMOV \
{ \
@@ -1211,6 +1242,20 @@
QLF3(X, X, NIL), \
}
+/* e.g. LDBFADD <Fs>, <Ft>, [<Xn|SP>{,#0}]. */
+#define QL_FP2_H_0 \
+{ \
+ QLF3(S_H, S_H, NIL), \
+}
+
+/* e.g. LDFADD <Fs>, <Ft>, [<Xn|SP>{,#0}]. */
+#define QL_FP2_HSD_0 \
+{ \
+ QLF3(S_H, S_H, NIL), \
+ QLF3(S_S, S_S, NIL), \
+ QLF3(S_D, S_D, NIL), \
+}
+
/* e.g. CASP <Xt1>, <Xt1+1>, <Xt2>, <Xt2+1>, [<Xn|SP>{,#0}]. */
#define QL_R4NIL \
{ \
@@ -1353,6 +1398,14 @@
QLF2(S_D, NIL), \
}
+/* e.g. STFADD <Fs>, [<Xn|SP>]. */
+#define QL_FP_HSD_0 \
+{ \
+ QLF2(S_H, NIL), \
+ QLF2(S_S, NIL), \
+ QLF2(S_D, NIL), \
+}
+
/* e.g. ADDV <V><d>, <Vn>.<T>. */
#define QL_XLANES \
{ \
@@ -2693,6 +2746,8 @@ static const aarch64_feature_set aarch64_feature_crc =
AARCH64_FEATURE (CRC);
static const aarch64_feature_set aarch64_feature_lse =
AARCH64_FEATURE (LSE);
+static const aarch64_feature_set aarch64_feature_lsfe =
+ AARCH64_FEATURE (LSFE);
static const aarch64_feature_set aarch64_feature_lse128 =
AARCH64_FEATURES (2, LSE, LSE128);
static const aarch64_feature_set aarch64_feature_lor =
@@ -2703,6 +2758,8 @@ static const aarch64_feature_set aarch64_feature_fp_f16 =
AARCH64_FEATURES (2, F16, FP);
static const aarch64_feature_set aarch64_feature_simd_f16 =
AARCH64_FEATURES (2, F16, SIMD);
+static const aarch64_feature_set aarch64_feature_fprcvt =
+ AARCH64_FEATURE (FPRCVT);
static const aarch64_feature_set aarch64_feature_sve =
AARCH64_FEATURE (SVE);
static const aarch64_feature_set aarch64_feature_pauth =
@@ -2737,6 +2794,8 @@ static const aarch64_feature_set aarch64_feature_predres =
AARCH64_FEATURE (PREDRES);
static const aarch64_feature_set aarch64_feature_predres2 =
AARCH64_FEATURES (2, PREDRES, PREDRES2);
+static const aarch64_feature_set aarch64_feature_cmpbr =
+ AARCH64_FEATURE (CMPBR);
static const aarch64_feature_set aarch64_feature_memtag =
AARCH64_FEATURE (MEMTAG);
static const aarch64_feature_set aarch64_feature_bfloat16 =
@@ -2815,6 +2874,16 @@ static const aarch64_feature_set aarch64_feature_sme2p1 =
AARCH64_FEATURE (SME2p1);
static const aarch64_feature_set aarch64_feature_sve2p1 =
AARCH64_FEATURE (SVE2p1);
+static const aarch64_feature_set aarch64_feature_sve_f16f32mm =
+ AARCH64_FEATURE (SVE_F16F32MM);
+static const aarch64_feature_set aarch64_feature_f8f32mm =
+ AARCH64_FEATURE (F8F32MM);
+static const aarch64_feature_set aarch64_feature_f8f32mm_sve2 =
+ AARCH64_FEATURES (2, SVE2, F8F32MM);
+static const aarch64_feature_set aarch64_feature_f8f16mm =
+ AARCH64_FEATURE (F8F16MM);
+static const aarch64_feature_set aarch64_feature_f8f16mm_sve2 =
+ AARCH64_FEATURES (2, SVE2, F8F16MM);
static const aarch64_feature_set aarch64_feature_rcpc3 =
AARCH64_FEATURE (RCPC3);
static const aarch64_feature_set aarch64_feature_cpa =
@@ -2833,6 +2902,10 @@ static const aarch64_feature_set aarch64_feature_fp8_sve2 =
AARCH64_FEATURES (2, FP8, SVE2);
static const aarch64_feature_set aarch64_feature_fp8_sme2 =
AARCH64_FEATURES (2, FP8, SME2);
+static const aarch64_feature_set aarch64_feature_sve_bfscale =
+ AARCH64_FEATURES (2, SVE_BFSCALE, SVE2_SME2);
+static const aarch64_feature_set aarch64_feature_sve_bfscale_sme2 =
+ AARCH64_FEATURES (2, SVE_BFSCALE, SME2);
static const aarch64_feature_set aarch64_feature_lut =
AARCH64_FEATURE (LUT);
static const aarch64_feature_set aarch64_feature_lut_sve2 =
@@ -2875,11 +2948,13 @@ static const aarch64_feature_set aarch64_feature_sve2p1_sme2p1 =
#define SIMD &aarch64_feature_simd
#define CRC &aarch64_feature_crc
#define LSE &aarch64_feature_lse
+#define LSFE &aarch64_feature_lsfe
#define LSE128 &aarch64_feature_lse128
#define LOR &aarch64_feature_lor
#define RDMA &aarch64_feature_rdma
#define FP_F16 &aarch64_feature_fp_f16
#define SIMD_F16 &aarch64_feature_simd_f16
+#define FPRCVT &aarch64_feature_fprcvt
#define SVE &aarch64_feature_sve
#define PAUTH &aarch64_feature_pauth
#define COMPNUM &aarch64_feature_compnum
@@ -2897,6 +2972,7 @@ static const aarch64_feature_set aarch64_feature_sve2p1_sme2p1 =
#define SB &aarch64_feature_sb
#define PREDRES &aarch64_feature_predres
#define PREDRES2 &aarch64_feature_predres2
+#define CMPBR &aarch64_feature_cmpbr
#define MEMTAG &aarch64_feature_memtag
#define TME &aarch64_feature_tme
#define SVE2 &aarch64_feature_sve2
@@ -2936,6 +3012,11 @@ static const aarch64_feature_set aarch64_feature_sve2p1_sme2p1 =
#define SME_B16B16 &aarch64_feature_sme_b16b16
#define SME2p1 &aarch64_feature_sme2p1
#define SVE2p1 &aarch64_feature_sve2p1
+#define SVE_F16F32MM &aarch64_feature_sve_f16f32mm
+#define F8F32MM &aarch64_feature_f8f32mm
+#define F8F32MM_SVE2 &aarch64_feature_f8f32mm_sve2
+#define F8F16MM &aarch64_feature_f8f16mm
+#define F8F16MM_SVE2 &aarch64_feature_f8f16mm_sve2
#define RCPC3 &aarch64_feature_rcpc3
#define CPA &aarch64_feature_cpa
#define CPA_SVE &aarch64_feature_cpa_sve
@@ -2945,6 +3026,8 @@ static const aarch64_feature_set aarch64_feature_sve2p1_sme2p1 =
#define FP8 &aarch64_feature_fp8
#define FP8_SVE2 &aarch64_feature_fp8_sve2
#define FP8_SME2 &aarch64_feature_fp8_sme2
+#define SVE_BFSCALE &aarch64_feature_sve_bfscale
+#define SVE_BFSCALE_SME2 &aarch64_feature_sve_bfscale_sme2
#define LUT &aarch64_feature_lut
#define LUT_SVE2 &aarch64_feature_lut_sve2
#define BRBE &aarch64_feature_brbe
@@ -2976,6 +3059,8 @@ static const aarch64_feature_set aarch64_feature_sve2p1_sme2p1 =
{ NAME, OPCODE, MASK, CLASS, 0, CRC, OPS, QUALS, FLAGS, 0, 0, NULL }
#define _LSE_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
{ NAME, OPCODE, MASK, CLASS, 0, LSE, OPS, QUALS, FLAGS, 0, 0, NULL }
+#define _LSFE_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS, FLAGS) \
+ { NAME, OPCODE, MASK, CLASS, 0, LSFE, OPS, QUALS, FLAGS, 0, 0, NULL }
#define _LSE128_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
{ NAME, OPCODE, MASK, CLASS, 0, LSE128, OPS, QUALS, FLAGS, 0, 0, NULL }
#define _LOR_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
@@ -2986,6 +3071,8 @@ static const aarch64_feature_set aarch64_feature_sve2p1_sme2p1 =
{ NAME, OPCODE, MASK, CLASS, 0, FP_F16, OPS, QUALS, FLAGS, 0, 0, NULL }
#define SF16_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
{ NAME, OPCODE, MASK, CLASS, 0, SIMD_F16, OPS, QUALS, FLAGS, 0, 0, NULL }
+#define FPRCVT_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
+ { NAME, OPCODE, MASK, CLASS, 0, FPRCVT, OPS, QUALS, FLAGS, 0, 0, NULL }
#define _SVE_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \
{ NAME, OPCODE, MASK, CLASS, OP, SVE, OPS, QUALS, \
FLAGS | F_STRICT, 0, TIED, NULL }
@@ -3022,6 +3109,8 @@ static const aarch64_feature_set aarch64_feature_sve2p1_sme2p1 =
{ NAME, OPCODE, MASK, CLASS, 0, SB, OPS, QUALS, FLAGS, 0, 0, NULL }
#define PREDRES_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
{ NAME, OPCODE, MASK, CLASS, 0, PREDRES, OPS, QUALS, FLAGS, 0, 0, NULL }
+#define CMPBR_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
+ { NAME, OPCODE, MASK, CLASS, 0, CMPBR, OPS, QUALS, FLAGS, 0, 0, NULL }
#define MEMTAG_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
{ NAME, OPCODE, MASK, CLASS, 0, MEMTAG, OPS, QUALS, FLAGS, 0, 0, NULL }
#define _TME_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \
@@ -3032,6 +3121,16 @@ static const aarch64_feature_set aarch64_feature_sve2p1_sme2p1 =
#define SME2p1_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \
{ NAME, OPCODE, MASK, CLASS, OP, SME2p1, OPS, QUALS, \
FLAGS | F_STRICT, 0, TIED, NULL }
+#define SVE_F16F32MM_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \
+ { NAME, OPCODE, MASK, CLASS, OP, SVE_F16F32MM, OPS, QUALS, FLAGS, 0, 0, NULL }
+#define F8F32MM_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \
+ { NAME, OPCODE, MASK, CLASS, OP, F8F32MM, OPS, QUALS, FLAGS, 0, 0, NULL }
+#define F8F32MM_SVE2_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \
+ { NAME, OPCODE, MASK, CLASS, OP, F8F32MM_SVE2, OPS, QUALS, FLAGS, 0, 0, NULL }
+#define F8F16MM_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \
+ { NAME, OPCODE, MASK, CLASS, OP, F8F16MM, OPS, QUALS, FLAGS, 0, 0, NULL }
+#define F8F16MM_SVE2_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS) \
+ { NAME, OPCODE, MASK, CLASS, OP, F8F16MM_SVE2, OPS, QUALS, FLAGS, 0, 0, NULL }
#define SVE2_INSNC(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,CONSTRAINTS,TIED) \
{ NAME, OPCODE, MASK, CLASS, OP, SVE2, OPS, QUALS, \
FLAGS | F_STRICT, CONSTRAINTS, TIED, NULL }
@@ -3095,6 +3194,10 @@ static const aarch64_feature_set aarch64_feature_sve2p1_sme2p1 =
#define SVE2BITPERM_INSN(NAME,OPCODE,MASK,CLASS,OP,OPS,QUALS,FLAGS,TIED) \
{ NAME, OPCODE, MASK, CLASS, OP, SVE2_BITPERM, OPS, QUALS, \
FLAGS | F_STRICT, 0, TIED, NULL }
+#define SVE_BFSCALE_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS,TIED) \
+ { NAME, OPCODE, MASK, CLASS, 0, SVE_BFSCALE, OPS, QUALS, FLAGS, 0, TIED, NULL }
+#define SVE_BFSCALE_SME2_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS,TIED) \
+ { NAME, OPCODE, MASK, CLASS, 0, SVE_BFSCALE_SME2, OPS, QUALS, FLAGS, 0, TIED, NULL }
#define BFLOAT16_SVE_INSN(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS) \
{ NAME, OPCODE, MASK, CLASS, 0, BFLOAT16_SVE, OPS, QUALS, FLAGS, 0, 0, NULL }
#define BFLOAT16_SVE_INSNC(NAME,OPCODE,MASK,CLASS,OPS,QUALS,FLAGS, CONSTRAINTS, TIED) \
@@ -3965,6 +4068,50 @@ const struct aarch64_opcode aarch64_opcode_table[] =
CORE_INSN ("cbnz", 0x35000000, 0x7f000000, compbranch, 0, OP2 (Rt, ADDR_PCREL19), QL_R_PCREL, F_SF),
/* Conditional branch (immediate). */
CORE_INSN ("b.c", 0x54000000, 0xff000010, condbranch, 0, OP1 (ADDR_PCREL19), QL_PCREL_NIL, F_COND),
+ /* Compare registers and branch. */
+ CMPBR_INSN ("cbgt", 0x74000000, 0x7fe0c000, compbranch, OP3 (Rt, Rm, ADDR_PCREL9), QL_R2NIL, F_SF | F_HAS_ALIAS),
+ CMPBR_INSN ("cblt", 0x74000000, 0x7fe0c000, compbranch, OP3 (Rm, Rt, ADDR_PCREL9), QL_R2NIL, F_SF | F_ALIAS | F_PSEUDO),
+ CMPBR_INSN ("cbge", 0x74200000, 0x7fe0c000, compbranch, OP3 (Rt, Rm, ADDR_PCREL9), QL_R2NIL, F_SF | F_HAS_ALIAS),
+ CMPBR_INSN ("cble", 0x74200000, 0x7fe0c000, compbranch, OP3 (Rm, Rt, ADDR_PCREL9), QL_R2NIL, F_SF | F_ALIAS | F_PSEUDO),
+ CMPBR_INSN ("cbhi", 0x74400000, 0x7fe0c000, compbranch, OP3 (Rt, Rm, ADDR_PCREL9), QL_R2NIL, F_SF | F_HAS_ALIAS),
+ CMPBR_INSN ("cblo", 0x74400000, 0x7fe0c000, compbranch, OP3 (Rm, Rt, ADDR_PCREL9), QL_R2NIL, F_SF | F_ALIAS | F_PSEUDO),
+ CMPBR_INSN ("cbhs", 0x74600000, 0x7fe0c000, compbranch, OP3 (Rt, Rm, ADDR_PCREL9), QL_R2NIL, F_SF | F_HAS_ALIAS),
+ CMPBR_INSN ("cbls", 0x74600000, 0x7fe0c000, compbranch, OP3 (Rm, Rt, ADDR_PCREL9), QL_R2NIL, F_SF | F_ALIAS | F_PSEUDO),
+ CMPBR_INSN ("cbeq", 0x74c00000, 0x7fe0c000, compbranch, OP3 (Rt, Rm, ADDR_PCREL9), QL_R2NIL, F_SF),
+ CMPBR_INSN ("cbne", 0x74e00000, 0x7fe0c000, compbranch, OP3 (Rt, Rm, ADDR_PCREL9), QL_R2NIL, F_SF),
+ /* Compare register with immediate and branch. */
+ CMPBR_INSN ("cbgt", 0x75000000, 0x7fe04000, compbranch, OP3 (Rt, IMM_2, ADDR_PCREL9), QL_R_IMM_NIL, F_SF | F_HAS_ALIAS),
+ CMPBR_INSN ("cbge", 0x75000000, 0x7fe04000, compbranch, OP3 (Rt, IMMP1_2, ADDR_PCREL9), QL_R_IMM_NIL, F_SF | F_ALIAS | F_PSEUDO),
+ CMPBR_INSN ("cblt", 0x75200000, 0x7fe04000, compbranch, OP3 (Rt, IMM_2, ADDR_PCREL9), QL_R_IMM_NIL, F_SF | F_HAS_ALIAS),
+ CMPBR_INSN ("cble", 0x75200000, 0x7fe04000, compbranch, OP3 (Rt, IMMS1_2, ADDR_PCREL9), QL_R_IMM_NIL, F_SF | F_ALIAS | F_PSEUDO),
+ CMPBR_INSN ("cbhi", 0x75400000, 0x7fe04000, compbranch, OP3 (Rt, IMM_2, ADDR_PCREL9), QL_R_IMM_NIL, F_SF | F_HAS_ALIAS),
+ CMPBR_INSN ("cbhs", 0x75400000, 0x7fe04000, compbranch, OP3 (Rt, IMMP1_2, ADDR_PCREL9), QL_R_IMM_NIL, F_SF | F_ALIAS | F_PSEUDO),
+ CMPBR_INSN ("cblo", 0x75600000, 0x7fe04000, compbranch, OP3 (Rt, IMM_2, ADDR_PCREL9), QL_R_IMM_NIL, F_SF | F_HAS_ALIAS),
+ CMPBR_INSN ("cbls", 0x75600000, 0x7fe04000, compbranch, OP3 (Rt, IMMS1_2, ADDR_PCREL9), QL_R_IMM_NIL, F_SF | F_ALIAS | F_PSEUDO),
+ CMPBR_INSN ("cbeq", 0x75c00000, 0x7fe04000, compbranch, OP3 (Rt, IMM_2, ADDR_PCREL9), QL_R_IMM_NIL, F_SF),
+ CMPBR_INSN ("cbne", 0x75e00000, 0x7fe04000, compbranch, OP3 (Rt, IMM_2, ADDR_PCREL9), QL_R_IMM_NIL, F_SF),
+ /* Compare bytes and branch. */
+ CMPBR_INSN ("cbbgt", 0x74008000, 0xffe0c000, compbranch, OP3 (Rt, Rm, ADDR_PCREL9), QL_W2NIL, F_HAS_ALIAS),
+ CMPBR_INSN ("cbblt", 0x74008000, 0xffe0c000, compbranch, OP3 (Rm, Rt, ADDR_PCREL9), QL_W2NIL, F_ALIAS | F_PSEUDO),
+ CMPBR_INSN ("cbbge", 0x74208000, 0xffe0c000, compbranch, OP3 (Rt, Rm, ADDR_PCREL9), QL_W2NIL, F_HAS_ALIAS),
+ CMPBR_INSN ("cbble", 0x74208000, 0xffe0c000, compbranch, OP3 (Rm, Rt, ADDR_PCREL9), QL_W2NIL, F_ALIAS | F_PSEUDO),
+ CMPBR_INSN ("cbbhi", 0x74408000, 0xffe0c000, compbranch, OP3 (Rt, Rm, ADDR_PCREL9), QL_W2NIL, F_HAS_ALIAS),
+ CMPBR_INSN ("cbblo", 0x74408000, 0xffe0c000, compbranch, OP3 (Rm, Rt, ADDR_PCREL9), QL_W2NIL, F_ALIAS | F_PSEUDO),
+ CMPBR_INSN ("cbbhs", 0x74608000, 0xffe0c000, compbranch, OP3 (Rt, Rm, ADDR_PCREL9), QL_W2NIL, F_HAS_ALIAS),
+ CMPBR_INSN ("cbbls", 0x74608000, 0xffe0c000, compbranch, OP3 (Rm, Rt, ADDR_PCREL9), QL_W2NIL, F_ALIAS | F_PSEUDO),
+ CMPBR_INSN ("cbbeq", 0x74c08000, 0xffe0c000, compbranch, OP3 (Rt, Rm, ADDR_PCREL9), QL_W2NIL, 0),
+ CMPBR_INSN ("cbbne", 0x74e08000, 0xffe0c000, compbranch, OP3 (Rt, Rm, ADDR_PCREL9), QL_W2NIL, 0),
+ /* Compare halfwords and branch. */
+ CMPBR_INSN ("cbhgt", 0x7400c000, 0xffe0c000, compbranch, OP3 (Rt, Rm, ADDR_PCREL9), QL_W2NIL, F_HAS_ALIAS),
+ CMPBR_INSN ("cbhlt", 0x7400c000, 0xffe0c000, compbranch, OP3 (Rm, Rt, ADDR_PCREL9), QL_W2NIL, F_ALIAS | F_PSEUDO),
+ CMPBR_INSN ("cbhge", 0x7420c000, 0xffe0c000, compbranch, OP3 (Rt, Rm, ADDR_PCREL9), QL_W2NIL, F_HAS_ALIAS),
+ CMPBR_INSN ("cbhle", 0x7420c000, 0xffe0c000, compbranch, OP3 (Rm, Rt, ADDR_PCREL9), QL_W2NIL, F_ALIAS | F_PSEUDO),
+ CMPBR_INSN ("cbhhi", 0x7440c000, 0xffe0c000, compbranch, OP3 (Rt, Rm, ADDR_PCREL9), QL_W2NIL, F_HAS_ALIAS),
+ CMPBR_INSN ("cbhlo", 0x7440c000, 0xffe0c000, compbranch, OP3 (Rm, Rt, ADDR_PCREL9), QL_W2NIL, F_ALIAS | F_PSEUDO),
+ CMPBR_INSN ("cbhhs", 0x7460c000, 0xffe0c000, compbranch, OP3 (Rt, Rm, ADDR_PCREL9), QL_W2NIL, F_HAS_ALIAS),
+ CMPBR_INSN ("cbhls", 0x7460c000, 0xffe0c000, compbranch, OP3 (Rm, Rt, ADDR_PCREL9), QL_W2NIL, F_ALIAS | F_PSEUDO),
+ CMPBR_INSN ("cbheq", 0x74c0c000, 0xffe0c000, compbranch, OP3 (Rt, Rm, ADDR_PCREL9), QL_W2NIL, 0),
+ CMPBR_INSN ("cbhne", 0x74e0c000, 0xffe0c000, compbranch, OP3 (Rt, Rm, ADDR_PCREL9), QL_W2NIL, 0),
/* Conditional compare (immediate). */
CORE_INSN ("ccmn", 0x3a400800, 0x7fe00c10, condcmp_imm, 0, OP4 (Rn, CCMP_IMM, NZCV, COND), QL_CCMP_IMM, F_SF),
CORE_INSN ("ccmp", 0x7a400800, 0x7fe00c10, condcmp_imm, 0, OP4 (Rn, CCMP_IMM, NZCV, COND), QL_CCMP_IMM, F_SF),
@@ -4002,8 +4149,8 @@ const struct aarch64_opcode aarch64_opcode_table[] =
CORE_INSN ("rbit", 0x5ac00000, 0x7ffffc00, dp_1src, 0, OP2 (Rd, Rn), QL_I2SAME, F_SF),
CORE_INSN ("rev16", 0x5ac00400, 0x7ffffc00, dp_1src, 0, OP2 (Rd, Rn), QL_I2SAME, F_SF),
CORE_INSN ("rev", 0x5ac00800, 0xfffffc00, dp_1src, 0, OP2 (Rd, Rn), QL_I2SAMEW, 0),
- CORE_INSN ("rev", 0xdac00c00, 0xfffffc00, dp_1src, 0, OP2 (Rd, Rn), QL_I2SAMEX, F_SF | F_HAS_ALIAS | F_P1),
- CORE_INSN ("rev64", 0xdac00c00, 0xfffffc00, dp_1src, 0, OP2 (Rd, Rn), QL_I2SAMEX, F_SF | F_ALIAS),
+ CORE_INSN ("rev", 0xdac00c00, 0xfffffc00, dp_1src, 0, OP2 (Rd, Rn), QL_I2SAMEX, F_SF | F_HAS_ALIAS),
+ CORE_INSN ("rev64", 0xdac00c00, 0xfffffc00, dp_1src, 0, OP2 (Rd, Rn), QL_I2SAMEX, F_SF | F_ALIAS | F_PSEUDO),
CORE_INSN ("clz", 0x5ac01000, 0x7ffffc00, dp_1src, 0, OP2 (Rd, Rn), QL_I2SAME, F_SF),
CORE_INSN ("cls", 0x5ac01400, 0x7ffffc00, dp_1src, 0, OP2 (Rd, Rn), QL_I2SAME, F_SF),
CORE_INSN ("rev32", 0xdac00800, 0xfffffc00, dp_1src, 0, OP2 (Rd, Rn), QL_I2SAMEX, 0),
@@ -4091,32 +4238,44 @@ const struct aarch64_opcode aarch64_opcode_table[] =
/* Floating-point<->integer conversions. */
__FP_INSN ("fcvtns",0x1e200000, 0x7f3ffc00, float2int, 0, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
FF16_INSN ("fcvtns",0x1ee00000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
+ FPRCVT_INSN ("fcvtns",0x1e2a0000, 0x7f3ffc00, fprcvtfloat2int, OP2 (Fd, Fn), QL_FP2INT_FPRCVT, F_FPTYPE | F_SF),
__FP_INSN ("fcvtnu",0x1e210000, 0x7f3ffc00, float2int, 0, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
FF16_INSN ("fcvtnu",0x1ee10000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
+ FPRCVT_INSN ("fcvtnu",0x1e2b0000, 0x7f3ffc00, fprcvtfloat2int, OP2 (Fd, Fn), QL_FP2INT_FPRCVT, F_FPTYPE | F_SF),
__FP_INSN ("scvtf", 0x1e220000, 0x7f3ffc00, float2int, 0, OP2 (Fd, Rn), QL_INT2FP, F_FPTYPE | F_SF),
FF16_INSN ("scvtf", 0x1ee20000, 0x7f3ffc00, float2int, OP2 (Fd, Rn), QL_INT2FP_H, F_FPTYPE | F_SF),
+ FPRCVT_INSN ("scvtf",0x1e3c0000, 0x7f3ffc00, fprcvtint2float, OP2 (Fd, Fn), QL_INT2FP_FPRCVT, F_FPTYPE | F_SF),
__FP_INSN ("ucvtf", 0x1e230000, 0x7f3ffc00, float2int, 0, OP2 (Fd, Rn), QL_INT2FP, F_FPTYPE | F_SF),
FF16_INSN ("ucvtf", 0x1ee30000, 0x7f3ffc00, float2int, OP2 (Fd, Rn), QL_INT2FP_H, F_FPTYPE | F_SF),
+ FPRCVT_INSN ("ucvtf",0x1e3d0000, 0x7f3ffc00, fprcvtint2float, OP2 (Fd, Fn), QL_INT2FP_FPRCVT, F_FPTYPE | F_SF),
__FP_INSN ("fcvtas",0x1e240000, 0x7f3ffc00, float2int, 0, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
FF16_INSN ("fcvtas",0x1ee40000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
+ FPRCVT_INSN ("fcvtas",0x1e3a0000, 0x7f3ffc00, fprcvtfloat2int, OP2 (Fd, Fn), QL_FP2INT_FPRCVT, F_FPTYPE | F_SF),
__FP_INSN ("fcvtau",0x1e250000, 0x7f3ffc00, float2int, 0, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
FF16_INSN ("fcvtau",0x1ee50000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
+ FPRCVT_INSN ("fcvtau",0x1e3b0000, 0x7f3ffc00, fprcvtfloat2int, OP2 (Fd, Fn), QL_FP2INT_FPRCVT, F_FPTYPE | F_SF),
__FP_INSN ("fmov", 0x1e260000, 0x7f3ffc00, float2int, 0, OP2 (Rd, Fn), QL_FP2INT_FMOV, F_FPTYPE | F_SF),
FF16_INSN ("fmov", 0x1ee60000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
__FP_INSN ("fmov", 0x1e270000, 0x7f3ffc00, float2int, 0, OP2 (Fd, Rn), QL_INT2FP_FMOV, F_FPTYPE | F_SF),
FF16_INSN ("fmov", 0x1ee70000, 0x7f3ffc00, float2int, OP2 (Fd, Rn), QL_INT2FP_H, F_FPTYPE | F_SF),
__FP_INSN ("fcvtps",0x1e280000, 0x7f3ffc00, float2int, 0, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
FF16_INSN ("fcvtps",0x1ee80000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
+ FPRCVT_INSN ("fcvtps",0x1e320000, 0x7f3ffc00, fprcvtfloat2int, OP2 (Fd, Fn), QL_FP2INT_FPRCVT, F_FPTYPE | F_SF),
__FP_INSN ("fcvtpu",0x1e290000, 0x7f3ffc00, float2int, 0, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
FF16_INSN ("fcvtpu",0x1ee90000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
+ FPRCVT_INSN ("fcvtpu",0x1e330000, 0x7f3ffc00, fprcvtfloat2int, OP2 (Fd, Fn), QL_FP2INT_FPRCVT, F_FPTYPE | F_SF),
__FP_INSN ("fcvtms",0x1e300000, 0x7f3ffc00, float2int, 0, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
FF16_INSN ("fcvtms",0x1ef00000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
+ FPRCVT_INSN ("fcvtms",0x1e340000, 0x7f3ffc00, fprcvtfloat2int, OP2 (Fd, Fn), QL_FP2INT_FPRCVT, F_FPTYPE | F_SF),
__FP_INSN ("fcvtmu",0x1e310000, 0x7f3ffc00, float2int, 0, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
FF16_INSN ("fcvtmu",0x1ef10000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
+ FPRCVT_INSN ("fcvtmu",0x1e350000, 0x7f3ffc00, fprcvtfloat2int, OP2 (Fd, Fn), QL_FP2INT_FPRCVT, F_FPTYPE | F_SF),
__FP_INSN ("fcvtzs",0x1e380000, 0x7f3ffc00, float2int, 0, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
FF16_INSN ("fcvtzs",0x1ef80000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
+ FPRCVT_INSN ("fcvtzs",0x1e360000, 0x7f3ffc00, fprcvtfloat2int, OP2 (Fd, Fn), QL_FP2INT_FPRCVT, F_FPTYPE | F_SF),
__FP_INSN ("fcvtzu",0x1e390000, 0x7f3ffc00, float2int, 0, OP2 (Rd, Fn), QL_FP2INT, F_FPTYPE | F_SF),
FF16_INSN ("fcvtzu",0x1ef90000, 0x7f3ffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_H, F_FPTYPE | F_SF),
+ FPRCVT_INSN ("fcvtzu",0x1e370000, 0x7f3ffc00, fprcvtfloat2int, OP2 (Fd, Fn), QL_FP2INT_FPRCVT, F_FPTYPE | F_SF),
__FP_INSN ("fmov", 0x9eae0000, 0xfffffc00, float2int, 0, OP2 (Rd, VnD1), QL_XVD1, 0),
__FP_INSN ("fmov", 0x9eaf0000, 0xfffffc00, float2int, 0, OP2 (VdD1, Rn), QL_VD1X, 0),
JSCVT_INSN ("fjcvtzs", 0x1e7e0000, 0xfffffc00, float2int, OP2 (Rd, Fn), QL_FP2INT_W_D, 0),
@@ -4598,7 +4757,7 @@ const struct aarch64_opcode aarch64_opcode_table[] =
CORE_INSN ("wfi", 0xd503207f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
CORE_INSN ("sev", 0xd503209f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
CORE_INSN ("sevl",0xd50320bf, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
- CORE_INSN ("dgh", 0xd50320df, 0xffffffff, ic_system, 0, OP0 (), {}, 0),
+ CORE_INSN ("dgh", 0xd50320df, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
CORE_INSN ("xpaclri", 0xd50320ff, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
CORE_INSN ("pacia1716", 0xd503211f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
CORE_INSN ("pacib1716", 0xd503215f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
@@ -4607,7 +4766,7 @@ const struct aarch64_opcode aarch64_opcode_table[] =
CORE_INSN ("esb", 0xd503221f, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
CORE_INSN ("psb", 0xd503223f, 0xffffffff, ic_system, 0, OP1 (BARRIER_PSB), {}, F_ALIAS),
CORE_INSN ("tsb", 0xd503225f, 0xffffffff, ic_system, 0, OP1 (BARRIER_PSB), {}, F_ALIAS),
- CORE_INSN ("clearbhb", 0xd50322df, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS),
+ CORE_INSN ("clearbhb", 0xd50322df, 0xffffffff, ic_system, 0, OP0 (), {}, F_ALIAS | F_PSEUDO),
CORE_INSN ("clrex", 0xd503305f, 0xfffff0ff, ic_system, 0, OP1 (UIMM4), {}, F_OPD0_OPT | F_DEFAULT (0xF)),
CORE_INSN ("dsb", 0xd503309f, 0xfffff0ff, ic_system, 0, OP1 (BARRIER), {}, F_HAS_ALIAS),
XS_INSN ("dsb", 0xd503323f, 0xfffff3ff, ic_system, OP1 (BARRIER_DSB_NXS), {}, F_HAS_ALIAS),
@@ -4642,14 +4801,14 @@ const struct aarch64_opcode aarch64_opcode_table[] =
PREDRES_INSN ("cpp", 0xd50b73e0, 0xffffffe0, ic_system, OP2 (SYSREG_SR, Rt), QL_SRC_X, F_ALIAS),
PREDRES2_INSN ("cosp", 0xd50b73c0, 0xffffffe0, ic_system, OP2 (SYSREG_SR, Rt), QL_SRC_X, F_ALIAS),
BRBE_INSN ("brb", 0xd5097280, 0xffffffc0, OP2 (BRBOP, Rt_IN_SYS_ALIASES), QL_IMM_NIL_NIL, F_ALIAS | F_OPD1_OPT | F_DEFAULT (0x1F)),
- /* Armv8.4-a flag setting instruction, However this encoding has an encoding clash with the msr
- below it. Usually we can resolve this by setting an alias condition on the flags, however that
- depends on the disassembly masks to be able to quickly find the alias. The problem is the
- cfinv instruction has no arguments, so all bits are set in the mask. Which means it will
- potentially alias with too many instructions and so the tree can't be constructed. As a work
- around we just place cfinv before msr. This means the order between these two shouldn't be
- changed. */
FLAGM_INSN ("cfinv", 0xd500401f, 0xffffffff, ic_system, OP0 (), {}, 0),
+ /* This msr entry has a lot of aliases, and some of these (such as "hint")
+ have their own (recursive) aliases. We currently use a flat alias
+ structure, so to avoid creating an excessively long list of aliases for
+ the entire msr space we instead handle the top level of disambiguation
+ outside the alias infrastructure. This requires that all of the top-level
+ aliases of msr must appear earlier in the opcode table, since normal
+ (non-alias) disassembly is done on a "first match" basis. */
CORE_INSN ("msr", 0xd5000000, 0xffe00000, ic_system, 0, OP2 (SYSREG, Rt), QL_SRC_X, F_SYS_WRITE),
CORE_INSN ("sysl",0xd5280000, 0xfff80000, ic_system, 0, OP5 (Rt, UIMM3_OP1, CRn, CRm, UIMM3_OP2), QL_SYSL, 0),
CORE_INSN ("mrs", 0xd5200000, 0xffe00000, ic_system, 0, OP2 (Rt, SYSREG), QL_DST_X, F_SYS_READ),
@@ -4690,7 +4849,7 @@ const struct aarch64_opcode aarch64_opcode_table[] =
_SVE_INSN ("mov", 0x05202000, 0xff20fc00, sve_index, OP_MOV_Z_V, OP2 (SVE_Zd, SVE_VZn), OP_SVE_VV_BHSDQ, F_ALIAS | F_MISC, 0),
_SVE_INSN ("mov", 0x05203800, 0xff3ffc00, sve_size_bhsd, 0, OP2 (SVE_Zd, Rn_SP), OP_SVE_VR_BHSD, F_ALIAS, 0),
_SVE_INSN ("mov", 0x25804000, 0xfff0c210, sve_misc, OP_MOV_P_P, OP2 (SVE_Pd, SVE_Pn), OP_SVE_BB, F_ALIAS | F_MISC, 0),
- _SVE_INSN ("mov", 0x25804000, 0xfff0c210, sve_misc, OP_MOV_PN_PN, OP2 (SVE_PNd, SVE_PNn), OP_SVE_BB, F_ALIAS | F_MISC, 0),
+ _SVE_INSN ("mov", 0x25804000, 0xfff0c210, sve_misc, OP_MOV_PN_PN, OP2 (SVE_PNd, SVE_PNn), OP_SVE_BB, F_ALIAS | F_PSEUDO | F_MISC, 0),
_SVE_INSN ("mov", 0x05202000, 0xff20fc00, sve_index, OP_MOV_Z_Zi, OP2 (SVE_Zd, SVE_Zn_INDEX), OP_SVE_VV_BHSDQ, F_ALIAS | F_MISC, 0),
_SVE_INSN ("mov", 0x05c00000, 0xfffc0000, sve_limm, 0, OP2 (SVE_Zd, SVE_LIMM_MOV), OP_SVE_VU_BHSD, F_ALIAS, 0),
_SVE_INSN ("mov", 0x2538c000, 0xff3fc000, sve_size_bhsd, 0, OP2 (SVE_Zd, SVE_ASIMM), OP_SVE_VU_BHSD, F_ALIAS, 0),
@@ -5058,20 +5217,15 @@ const struct aarch64_opcode aarch64_opcode_table[] =
_SVE_INSN ("ldff1b", 0x84006000, 0xffa0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ_XTW_22), OP_SVE_SZS, F_OD(1), 0),
_SVE_INSN ("ldff1b", 0xa4006000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR), OP_SVE_BZU, F_OD(1), 0),
- _SVE_INSN ("ldff1b", 0xa4006000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_R), OP_SVE_BZU, F_OD(1), 0),
_SVE_INSN ("ldff1b", 0xa4206000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR), OP_SVE_HZU, F_OD(1), 0),
- _SVE_INSN ("ldff1b", 0xa4206000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_R), OP_SVE_HZU, F_OD(1), 0),
_SVE_INSN ("ldff1b", 0xa4406000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR), OP_SVE_SZU, F_OD(1), 0),
- _SVE_INSN ("ldff1b", 0xa4406000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_R), OP_SVE_SZU, F_OD(1), 0),
_SVE_INSN ("ldff1b", 0xa4606000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR), OP_SVE_DZU, F_OD(1), 0),
- _SVE_INSN ("ldff1b", 0xa4606000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_R), OP_SVE_DZU, F_OD(1), 0),
_SVE_INSN ("ldff1b", 0xc4006000, 0xffa0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ_XTW_22), OP_SVE_DZD, F_OD(1), 0),
_SVE_INSN ("ldff1b", 0xc440e000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ), OP_SVE_DZD, F_OD(1), 0),
_SVE_INSN ("ldff1b", 0x8420e000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_ZI_U5), OP_SVE_SZS, F_OD(1), 0),
_SVE_INSN ("ldff1b", 0xc420e000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_ZI_U5), OP_SVE_DZD, F_OD(1), 0),
_SVE_INSN ("ldff1d", 0xa5e06000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, F_OD(1), 0),
- _SVE_INSN ("ldff1d", 0xa5e06000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_R), OP_SVE_DZU, F_OD(1), 0),
_SVE_INSN ("ldff1d", 0xc5806000, 0xffa0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ_XTW_22), OP_SVE_DZD, F_OD(1), 0),
_SVE_INSN ("ldff1d", 0xc5a06000, 0xffa0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ_XTW3_22), OP_SVE_DZD, F_OD(1), 0),
_SVE_INSN ("ldff1d", 0xc5c0e000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ), OP_SVE_DZD, F_OD(1), 0),
@@ -5081,11 +5235,8 @@ const struct aarch64_opcode aarch64_opcode_table[] =
_SVE_INSN ("ldff1h", 0x84806000, 0xffa0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ_XTW_22), OP_SVE_SZS, F_OD(1), 0),
_SVE_INSN ("ldff1h", 0x84a06000, 0xffa0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ_XTW1_22), OP_SVE_SZS, F_OD(1), 0),
_SVE_INSN ("ldff1h", 0xa4a06000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, F_OD(1), 0),
- _SVE_INSN ("ldff1h", 0xa4a06000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_R), OP_SVE_HZU, F_OD(1), 0),
_SVE_INSN ("ldff1h", 0xa4c06000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR_LSL1), OP_SVE_SZU, F_OD(1), 0),
- _SVE_INSN ("ldff1h", 0xa4c06000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_R), OP_SVE_SZU, F_OD(1), 0),
_SVE_INSN ("ldff1h", 0xa4e06000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR_LSL1), OP_SVE_DZU, F_OD(1), 0),
- _SVE_INSN ("ldff1h", 0xa4e06000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_R), OP_SVE_DZU, F_OD(1), 0),
_SVE_INSN ("ldff1h", 0xc4806000, 0xffa0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ_XTW_22), OP_SVE_DZD, F_OD(1), 0),
_SVE_INSN ("ldff1h", 0xc4a06000, 0xffa0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ_XTW1_22), OP_SVE_DZD, F_OD(1), 0),
_SVE_INSN ("ldff1h", 0xc4c0e000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ), OP_SVE_DZD, F_OD(1), 0),
@@ -5095,11 +5246,8 @@ const struct aarch64_opcode aarch64_opcode_table[] =
_SVE_INSN ("ldff1sb", 0x84002000, 0xffa0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ_XTW_22), OP_SVE_SZS, F_OD(1), 0),
_SVE_INSN ("ldff1sb", 0xa5806000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR), OP_SVE_DZU, F_OD(1), 0),
- _SVE_INSN ("ldff1sb", 0xa5806000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_R), OP_SVE_DZU, F_OD(1), 0),
_SVE_INSN ("ldff1sb", 0xa5a06000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR), OP_SVE_SZU, F_OD(1), 0),
- _SVE_INSN ("ldff1sb", 0xa5a06000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_R), OP_SVE_SZU, F_OD(1), 0),
_SVE_INSN ("ldff1sb", 0xa5c06000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR), OP_SVE_HZU, F_OD(1), 0),
- _SVE_INSN ("ldff1sb", 0xa5c06000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_R), OP_SVE_HZU, F_OD(1), 0),
_SVE_INSN ("ldff1sb", 0xc4002000, 0xffa0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ_XTW_22), OP_SVE_DZD, F_OD(1), 0),
_SVE_INSN ("ldff1sb", 0xc440a000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ), OP_SVE_DZD, F_OD(1), 0),
_SVE_INSN ("ldff1sb", 0x8420a000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_ZI_U5), OP_SVE_SZS, F_OD(1), 0),
@@ -5108,9 +5256,7 @@ const struct aarch64_opcode aarch64_opcode_table[] =
_SVE_INSN ("ldff1sh", 0x84802000, 0xffa0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ_XTW_22), OP_SVE_SZS, F_OD(1), 0),
_SVE_INSN ("ldff1sh", 0x84a02000, 0xffa0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ_XTW1_22), OP_SVE_SZS, F_OD(1), 0),
_SVE_INSN ("ldff1sh", 0xa5006000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR_LSL1), OP_SVE_DZU, F_OD(1), 0),
- _SVE_INSN ("ldff1sh", 0xa5006000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_R), OP_SVE_DZU, F_OD(1), 0),
_SVE_INSN ("ldff1sh", 0xa5206000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR_LSL1), OP_SVE_SZU, F_OD(1), 0),
- _SVE_INSN ("ldff1sh", 0xa5206000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_R), OP_SVE_SZU, F_OD(1), 0),
_SVE_INSN ("ldff1sh", 0xc4802000, 0xffa0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ_XTW_22), OP_SVE_DZD, F_OD(1), 0),
_SVE_INSN ("ldff1sh", 0xc4a02000, 0xffa0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ_XTW1_22), OP_SVE_DZD, F_OD(1), 0),
_SVE_INSN ("ldff1sh", 0xc4c0a000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ), OP_SVE_DZD, F_OD(1), 0),
@@ -5119,7 +5265,6 @@ const struct aarch64_opcode aarch64_opcode_table[] =
_SVE_INSN ("ldff1sh", 0xc4a0a000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_ZI_U5x2), OP_SVE_DZD, F_OD(1), 0),
_SVE_INSN ("ldff1sw", 0xa4806000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR_LSL2), OP_SVE_DZU, F_OD(1), 0),
- _SVE_INSN ("ldff1sw", 0xa4806000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_R), OP_SVE_DZU, F_OD(1), 0),
_SVE_INSN ("ldff1sw", 0xc5002000, 0xffa0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ_XTW_22), OP_SVE_DZD, F_OD(1), 0),
_SVE_INSN ("ldff1sw", 0xc5202000, 0xffa0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ_XTW2_22), OP_SVE_DZD, F_OD(1), 0),
_SVE_INSN ("ldff1sw", 0xc540a000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ), OP_SVE_DZD, F_OD(1), 0),
@@ -5129,9 +5274,7 @@ const struct aarch64_opcode aarch64_opcode_table[] =
_SVE_INSN ("ldff1w", 0x85006000, 0xffa0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ_XTW_22), OP_SVE_SZS, F_OD(1), 0),
_SVE_INSN ("ldff1w", 0x85206000, 0xffa0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ_XTW2_22), OP_SVE_SZS, F_OD(1), 0),
_SVE_INSN ("ldff1w", 0xa5406000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, F_OD(1), 0),
- _SVE_INSN ("ldff1w", 0xa5406000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_R), OP_SVE_SZU, F_OD(1), 0),
_SVE_INSN ("ldff1w", 0xa5606000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RR_LSL2), OP_SVE_DZU, F_OD(1), 0),
- _SVE_INSN ("ldff1w", 0xa5606000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_R), OP_SVE_DZU, F_OD(1), 0),
_SVE_INSN ("ldff1w", 0xc5006000, 0xffa0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ_XTW_22), OP_SVE_DZD, F_OD(1), 0),
_SVE_INSN ("ldff1w", 0xc5206000, 0xffa0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ_XTW2_22), OP_SVE_DZD, F_OD(1), 0),
_SVE_INSN ("ldff1w", 0xc540e000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RZ), OP_SVE_DZD, F_OD(1), 0),
@@ -5163,8 +5306,8 @@ const struct aarch64_opcode aarch64_opcode_table[] =
_SVE_INSN ("ldnt1h", 0xa480e000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4xVL), OP_SVE_HZU, F_OD(1), 0),
_SVE_INSN ("ldnt1w", 0xa500c000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RX_LSL2), OP_SVE_SZU, F_OD(1), 0),
_SVE_INSN ("ldnt1w", 0xa500e000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4xVL), OP_SVE_SZU, F_OD(1), 0),
- _SVE_INSN ("ldr", 0x85800000, 0xffc0e010, sve_misc, 0, OP2 (SVE_Pt, SVE_ADDR_RI_S9xVL), {}, 0, 0),
- _SVE_INSN ("ldr", 0x85800000, 0xffc0e010, sve_misc, 0, OP2 (SVE_PNt, SVE_ADDR_RI_S9xVL), {}, 0, 0),
+ _SVE_INSN ("ldr", 0x85800000, 0xffc0e010, sve_misc, 0, OP2 (SVE_Pt, SVE_ADDR_RI_S9xVL), {}, F_HAS_ALIAS, 0),
+ _SVE_INSN ("ldr", 0x85800000, 0xffc0e010, sve_misc, 0, OP2 (SVE_PNt, SVE_ADDR_RI_S9xVL), {}, F_ALIAS | F_PSEUDO, 0),
_SVE_INSN ("ldr", 0x85804000, 0xffc0e000, sve_misc, 0, OP2 (SVE_Zt, SVE_ADDR_RI_S9xVL), {}, 0, 0),
_SVE_INSN ("lsl", 0x04208c00, 0xff20fc00, sve_size_bhs, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVD_BHS, 0, 0),
_SVE_INSN ("lsl", 0x04209c00, 0xff20fc00, sve_shift_unpred, 0, OP3 (SVE_Zd, SVE_Zn, SVE_SHLIMM_UNPRED), OP_SVE_VVU_BHSD, 0, 0),
@@ -5200,8 +5343,8 @@ const struct aarch64_opcode aarch64_opcode_table[] =
_SVE_INSN ("orr", 0x25804000, 0xfff0c210, sve_misc, 0, OP4 (SVE_Pd, SVE_Pg4_10, SVE_Pn, SVE_Pm), OP_SVE_BZBB, F_HAS_ALIAS, 0),
_SVE_INSN ("orrs", 0x25c04000, 0xfff0c210, sve_misc, 0, OP4 (SVE_Pd, SVE_Pg4_10, SVE_Pn, SVE_Pm), OP_SVE_BZBB, F_HAS_ALIAS, 0),
_SVE_INSN ("orv", 0x04182000, 0xff3fe000, sve_size_bhsd, 0, OP3 (SVE_Vd, SVE_Pg3, SVE_Zn), OP_SVE_VUV_BHSD, 0, 0),
- _SVE_INSN ("pfalse", 0x2518e400, 0xfffffff0, sve_misc, 0, OP1 (SVE_Pd), OP_SVE_B, 0, 0),
- _SVE_INSN ("pfalse", 0x2518e400, 0xfffffff0, sve_misc, 0, OP1 (SVE_PNd), OP_SVE_B, 0, 0),
+ _SVE_INSN ("pfalse", 0x2518e400, 0xfffffff0, sve_misc, 0, OP1 (SVE_Pd), OP_SVE_B, F_HAS_ALIAS, 0),
+ _SVE_INSN ("pfalse", 0x2518e400, 0xfffffff0, sve_misc, 0, OP1 (SVE_PNd), OP_SVE_B, F_ALIAS | F_PSEUDO, 0),
_SVE_INSN ("pfirst", 0x2558c000, 0xfffffe10, sve_misc, 0, OP3 (SVE_Pd, SVE_Pg4_5, SVE_Pd), OP_SVE_BUB, 0, 2),
_SVE_INSN ("pnext", 0x2519c400, 0xff3ffe10, sve_size_bhsd, 0, OP3 (SVE_Pd, SVE_Pg4_5, SVE_Pd), OP_SVE_VUV_BHSD, 0, 2),
_SVE_INSN ("prfb", 0x8400c000, 0xffe0e010, sve_misc, 0, OP3 (SVE_PRFOP, SVE_Pg3, SVE_ADDR_RX), {}, 0, 0),
@@ -5382,8 +5525,8 @@ const struct aarch64_opcode aarch64_opcode_table[] =
_SVE_INSN ("stnt1h", 0xe490e000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4xVL), OP_SVE_HUU, F_OD(1), 0),
_SVE_INSN ("stnt1w", 0xe5006000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RX_LSL2), OP_SVE_SUU, F_OD(1), 0),
_SVE_INSN ("stnt1w", 0xe510e000, 0xfff0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_RI_S4xVL), OP_SVE_SUU, F_OD(1), 0),
- _SVE_INSN ("str", 0xe5800000, 0xffc0e010, sve_misc, 0, OP2 (SVE_Pt, SVE_ADDR_RI_S9xVL), {}, 0, 0),
- _SVE_INSN ("str", 0xe5800000, 0xffc0e010, sve_misc, 0, OP2 (SVE_PNt, SVE_ADDR_RI_S9xVL), {}, 0, 0),
+ _SVE_INSN ("str", 0xe5800000, 0xffc0e010, sve_misc, 0, OP2 (SVE_Pt, SVE_ADDR_RI_S9xVL), {}, F_HAS_ALIAS, 0),
+ _SVE_INSN ("str", 0xe5800000, 0xffc0e010, sve_misc, 0, OP2 (SVE_PNt, SVE_ADDR_RI_S9xVL), {}, F_ALIAS | F_PSEUDO, 0),
_SVE_INSN ("str", 0xe5804000, 0xffc0e000, sve_misc, 0, OP2 (SVE_Zt, SVE_ADDR_RI_S9xVL), {}, 0, 0),
_SVE_INSN ("sub", 0x04200400, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, 0),
_SVE_INSNC ("sub", 0x2521c000, 0xff3fc000, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zd, SVE_AIMM), OP_SVE_VVU_BHSD, 0, C_SCAN_MOVPRFX, 1),
@@ -5818,10 +5961,10 @@ const struct aarch64_opcode aarch64_opcode_table[] =
SME_INSN ("usmops", 0xa1800010, 0xffe0001c, sme_misc, 0, OP5 (SME_ZAda_2b, SVE_Pg3, SME_Pm, SVE_Zn, SVE_Zm_16), OP_SVE_SMMBB, 0, 0),
SME_I16I64_INSN ("usmops", 0xa1c00010, 0xffe00018, sme_misc, 0, OP5 (SME_ZAda_3b, SVE_Pg3, SME_Pm, SVE_Zn, SVE_Zm_16), OP_SVE_DMMHH, 0, 0),
- SME_INSN ("mov", 0xc0020000, 0xff3e0200, sme_mov, 0, OP3 (SVE_Zd, SVE_Pg3, SME_ZA_HV_idx_src), OP_SVE_VMV_BHSDQ, 0, 0),
- SME_INSN ("mov", 0xc0000000, 0xff3e0010, sme_mov, 0, OP3 (SME_ZA_HV_idx_dest, SVE_Pg3, SVE_Zn), OP_SVE_VMV_BHSDQ, 0, 0),
- SME_INSN ("mova", 0xc0020000, 0xff3e0200, sme_mov, 0, OP3 (SVE_Zd, SVE_Pg3, SME_ZA_HV_idx_src), OP_SVE_VMV_BHSDQ, 0, 0),
- SME_INSN ("mova", 0xc0000000, 0xff3e0010, sme_mov, 0, OP3 (SME_ZA_HV_idx_dest, SVE_Pg3, SVE_Zn), OP_SVE_VMV_BHSDQ, 0, 0),
+ SME_INSN ("mov", 0xc0020000, 0xff3e0200, sme_mov, 0, OP3 (SVE_Zd, SVE_Pg3, SME_ZA_HV_idx_src), OP_SVE_VMV_BHSDQ, F_ALIAS, 0),
+ SME_INSN ("mov", 0xc0000000, 0xff3e0010, sme_mov, 0, OP3 (SME_ZA_HV_idx_dest, SVE_Pg3, SVE_Zn), OP_SVE_VMV_BHSDQ, F_ALIAS, 0),
+ SME_INSN ("mova", 0xc0020000, 0xff3e0200, sme_mov, 0, OP3 (SVE_Zd, SVE_Pg3, SME_ZA_HV_idx_src), OP_SVE_VMV_BHSDQ, F_HAS_ALIAS, 0),
+ SME_INSN ("mova", 0xc0000000, 0xff3e0010, sme_mov, 0, OP3 (SME_ZA_HV_idx_dest, SVE_Pg3, SVE_Zn), OP_SVE_VMV_BHSDQ, F_HAS_ALIAS, 0),
SME_INSN ("zero", 0xc0080000, 0xffffff00, sme_misc, 0, OP1 (SME_list_of_64bit_tiles), {}, 0, 0),
@@ -5831,32 +5974,20 @@ const struct aarch64_opcode aarch64_opcode_table[] =
SME_INSN ("ld1d", 0xe0c00000, 0xffe00010, sve_misc, 0, OP3 (SME_ZA_HV_idx_ldstr, SVE_Pg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
SME_INSN ("ld1q", 0xe1c00000, 0xffe00010, sve_misc, 0, OP3 (SME_ZA_HV_idx_ldstr, SVE_Pg3, SVE_ADDR_RR_LSL4), OP_SVE_QZU, 0, 0),
- SME_INSN ("ld1b", 0xe0000000, 0xffe00010, sve_misc, 0, OP3 (SME_ZA_HV_idx_ldstr, SVE_Pg3, SVE_ADDR_R), OP_SVE_BZU, 0, 0),
- SME_INSN ("ld1h", 0xe0400000, 0xffe00010, sve_misc, 0, OP3 (SME_ZA_HV_idx_ldstr, SVE_Pg3, SVE_ADDR_R), OP_SVE_HZU, 0, 0),
- SME_INSN ("ld1w", 0xe0800000, 0xffe00010, sve_misc, 0, OP3 (SME_ZA_HV_idx_ldstr, SVE_Pg3, SVE_ADDR_R), OP_SVE_SZU, 0, 0),
- SME_INSN ("ld1d", 0xe0c00000, 0xffe00010, sve_misc, 0, OP3 (SME_ZA_HV_idx_ldstr, SVE_Pg3, SVE_ADDR_R), OP_SVE_DZU, 0, 0),
- SME_INSN ("ld1q", 0xe1c00000, 0xffe00010, sve_misc, 0, OP3 (SME_ZA_HV_idx_ldstr, SVE_Pg3, SVE_ADDR_R), OP_SVE_QZU, 0, 0),
-
SME_INSN ("st1b", 0xe0200000, 0xffe00010, sve_misc, 0, OP3 (SME_ZA_HV_idx_ldstr, SVE_Pg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
SME_INSN ("st1h", 0xe0600000, 0xffe00010, sve_misc, 0, OP3 (SME_ZA_HV_idx_ldstr, SVE_Pg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
SME_INSN ("st1w", 0xe0a00000, 0xffe00010, sve_misc, 0, OP3 (SME_ZA_HV_idx_ldstr, SVE_Pg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
SME_INSN ("st1d", 0xe0e00000, 0xffe00010, sve_misc, 0, OP3 (SME_ZA_HV_idx_ldstr, SVE_Pg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
SME_INSN ("st1q", 0xe1e00000, 0xffe00010, sve_misc, 0, OP3 (SME_ZA_HV_idx_ldstr, SVE_Pg3, SVE_ADDR_RR_LSL4), OP_SVE_QUU, 0, 0),
- SME_INSN ("st1b", 0xe0200000, 0xffe00010, sve_misc, 0, OP3 (SME_ZA_HV_idx_ldstr, SVE_Pg3, SVE_ADDR_R), OP_SVE_BUU, 0, 0),
- SME_INSN ("st1h", 0xe0600000, 0xffe00010, sve_misc, 0, OP3 (SME_ZA_HV_idx_ldstr, SVE_Pg3, SVE_ADDR_R), OP_SVE_HUU, 0, 0),
- SME_INSN ("st1w", 0xe0a00000, 0xffe00010, sve_misc, 0, OP3 (SME_ZA_HV_idx_ldstr, SVE_Pg3, SVE_ADDR_R), OP_SVE_SUU, 0, 0),
- SME_INSN ("st1d", 0xe0e00000, 0xffe00010, sve_misc, 0, OP3 (SME_ZA_HV_idx_ldstr, SVE_Pg3, SVE_ADDR_R), OP_SVE_DUU, 0, 0),
- SME_INSN ("st1q", 0xe1e00000, 0xffe00010, sve_misc, 0, OP3 (SME_ZA_HV_idx_ldstr, SVE_Pg3, SVE_ADDR_R), OP_SVE_QUU, 0, 0),
-
SME_INSN ("ldr", 0xe1000000, 0xffff9c10, sme_ldr, 0, OP2 (SME_ZA_array_off4, SME_ADDR_RI_U4xVL), {}, 0, 1),
SME_INSN ("str", 0xe1200000, 0xffff9c10, sme_str, 0, OP2 (SME_ZA_array_off4, SME_ADDR_RI_U4xVL), {}, 0, 1),
SVE2p1_SME_INSNC ("revd", 0x052e8000, 0xffffe000, sme_misc, 0, OP3 (SVE_Zd, SVE_Pg3, SVE_Zn), OP_SVE_QMQ, 0, C_SCAN_MOVPRFX, 0),
SVE2p1_SME_INSNC ("sclamp", 0x4400c000, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, C_SCAN_MOVPRFX, 0),
SVE2p1_SME_INSNC ("uclamp", 0x4400c400, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_BHSD, 0, C_SCAN_MOVPRFX, 0),
- SVE2p1_SME_INSN ("psel", 0x25204000, 0xff20c210, sme_psel, 0, OP3 (SVE_Pd, SVE_Pg4_10, SME_PnT_Wm_imm), OP_SVE_NN_BHSD, 0, 0),
- SVE2p1_SME_INSN ("psel", 0x25204000, 0xff20c210, sme_psel, 0, OP3 (SVE_PNd, SVE_PNg4_10, SME_PnT_Wm_imm), OP_SVE_NN_BHSD, 0, 0),
+ SVE2p1_SME_INSN ("psel", 0x25204000, 0xff20c210, sme_psel, 0, OP3 (SVE_Pd, SVE_Pg4_10, SME_PnT_Wm_imm), OP_SVE_NN_BHSD, F_HAS_ALIAS, 0),
+ SVE2p1_SME_INSN ("psel", 0x25204000, 0xff20c210, sme_psel, 0, OP3 (SVE_PNd, SVE_PNg4_10, SME_PnT_Wm_imm), OP_SVE_NN_BHSD, F_ALIAS | F_PSEUDO, 0),
/* Added in SME2, but part of the prefetch hint space and available
without special command-line flags. */
@@ -6001,66 +6132,66 @@ const struct aarch64_opcode aarch64_opcode_table[] =
SVE2p1_SME2_INSN ("ld1b", 0xa0408000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_BZU, 0, 0),
SME2_INSN ("ld1b", 0xa1400000, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_BZU, 0, 0),
SME2_INSN ("ld1b", 0xa1408000, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_BZU, 0, 0),
- SVE2p1_SME2_INSN ("ld1b", 0xa0000000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR), OP_SVE_BZU, 0, 0),
- SVE2p1_SME2_INSN ("ld1b", 0xa0008000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR), OP_SVE_BZU, 0, 0),
- SME2_INSN ("ld1b", 0xa1000000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR), OP_SVE_BZU, 0, 0),
- SME2_INSN ("ld1b", 0xa1008000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR), OP_SVE_BZU, 0, 0),
+ SVE2p1_SME2_INSN ("ld1b", 0xa0000000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RM), OP_SVE_BZU, 0, 0),
+ SVE2p1_SME2_INSN ("ld1b", 0xa0008000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RM), OP_SVE_BZU, 0, 0),
+ SME2_INSN ("ld1b", 0xa1000000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RM), OP_SVE_BZU, 0, 0),
+ SME2_INSN ("ld1b", 0xa1008000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RM), OP_SVE_BZU, 0, 0),
SVE2p1_SME2_INSN ("ld1d", 0xa0406000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_DZU, 0, 0),
SVE2p1_SME2_INSN ("ld1d", 0xa040e000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_DZU, 0, 0),
SME2_INSN ("ld1d", 0xa1406000, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_DZU, 0, 0),
SME2_INSN ("ld1d", 0xa140e000, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_DZU, 0, 0),
- SVE2p1_SME2_INSN ("ld1d", 0xa0006000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
- SVE2p1_SME2_INSN ("ld1d", 0xa000e000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
- SME2_INSN ("ld1d", 0xa1006000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
- SME2_INSN ("ld1d", 0xa100e000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
+ SVE2p1_SME2_INSN ("ld1d", 0xa0006000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RM_LSL3), OP_SVE_DZU, 0, 0),
+ SVE2p1_SME2_INSN ("ld1d", 0xa000e000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RM_LSL3), OP_SVE_DZU, 0, 0),
+ SME2_INSN ("ld1d", 0xa1006000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL3), OP_SVE_DZU, 0, 0),
+ SME2_INSN ("ld1d", 0xa100e000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL3), OP_SVE_DZU, 0, 0),
SVE2p1_SME2_INSN ("ld1h", 0xa0402000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_HZU, 0, 0),
SVE2p1_SME2_INSN ("ld1h", 0xa040a000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_HZU, 0, 0),
SME2_INSN ("ld1h", 0xa1402000, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_HZU, 0, 0),
SME2_INSN ("ld1h", 0xa140a000, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_HZU, 0, 0),
- SVE2p1_SME2_INSN ("ld1h", 0xa0002000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, 0, 0),
- SVE2p1_SME2_INSN ("ld1h", 0xa000a000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, 0, 0),
- SME2_INSN ("ld1h", 0xa1002000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, 0, 0),
- SME2_INSN ("ld1h", 0xa100a000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, 0, 0),
+ SVE2p1_SME2_INSN ("ld1h", 0xa0002000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RM_LSL1), OP_SVE_HZU, 0, 0),
+ SVE2p1_SME2_INSN ("ld1h", 0xa000a000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RM_LSL1), OP_SVE_HZU, 0, 0),
+ SME2_INSN ("ld1h", 0xa1002000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL1), OP_SVE_HZU, 0, 0),
+ SME2_INSN ("ld1h", 0xa100a000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL1), OP_SVE_HZU, 0, 0),
SVE2p1_SME2_INSN ("ld1w", 0xa0404000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_SZU, 0, 0),
SVE2p1_SME2_INSN ("ld1w", 0xa040c000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_SZU, 0, 0),
SME2_INSN ("ld1w", 0xa1404000, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_SZU, 0, 0),
SME2_INSN ("ld1w", 0xa140c000, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_SZU, 0, 0),
- SVE2p1_SME2_INSN ("ld1w", 0xa0004000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, 0, 0),
- SVE2p1_SME2_INSN ("ld1w", 0xa000c000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, 0, 0),
- SME2_INSN ("ld1w", 0xa1004000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, 0, 0),
- SME2_INSN ("ld1w", 0xa100c000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, 0, 0),
+ SVE2p1_SME2_INSN ("ld1w", 0xa0004000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RM_LSL2), OP_SVE_SZU, 0, 0),
+ SVE2p1_SME2_INSN ("ld1w", 0xa000c000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RM_LSL2), OP_SVE_SZU, 0, 0),
+ SME2_INSN ("ld1w", 0xa1004000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL2), OP_SVE_SZU, 0, 0),
+ SME2_INSN ("ld1w", 0xa100c000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL2), OP_SVE_SZU, 0, 0),
SVE2p1_SME2_INSN ("ldnt1b", 0xa0400001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_BZU, 0, 0),
SVE2p1_SME2_INSN ("ldnt1b", 0xa0408001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_BZU, 0, 0),
SME2_INSN ("ldnt1b", 0xa1400008, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_BZU, 0, 0),
SME2_INSN ("ldnt1b", 0xa1408008, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_BZU, 0, 0),
- SVE2p1_SME2_INSN ("ldnt1b", 0xa0000001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR), OP_SVE_BZU, 0, 0),
- SVE2p1_SME2_INSN ("ldnt1b", 0xa0008001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR), OP_SVE_BZU, 0, 0),
- SME2_INSN ("ldnt1b", 0xa1000008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR), OP_SVE_BZU, 0, 0),
- SME2_INSN ("ldnt1b", 0xa1008008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR), OP_SVE_BZU, 0, 0),
+ SVE2p1_SME2_INSN ("ldnt1b", 0xa0000001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RM), OP_SVE_BZU, 0, 0),
+ SVE2p1_SME2_INSN ("ldnt1b", 0xa0008001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RM), OP_SVE_BZU, 0, 0),
+ SME2_INSN ("ldnt1b", 0xa1000008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RM), OP_SVE_BZU, 0, 0),
+ SME2_INSN ("ldnt1b", 0xa1008008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RM), OP_SVE_BZU, 0, 0),
SVE2p1_SME2_INSN ("ldnt1d", 0xa0406001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_DZU, 0, 0),
SVE2p1_SME2_INSN ("ldnt1d", 0xa040e001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_DZU, 0, 0),
SME2_INSN ("ldnt1d", 0xa1406008, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_DZU, 0, 0),
SME2_INSN ("ldnt1d", 0xa140e008, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_DZU, 0, 0),
- SVE2p1_SME2_INSN ("ldnt1d", 0xa0006001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
- SVE2p1_SME2_INSN ("ldnt1d", 0xa000e001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
- SME2_INSN ("ldnt1d", 0xa1006008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
- SME2_INSN ("ldnt1d", 0xa100e008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DZU, 0, 0),
+ SVE2p1_SME2_INSN ("ldnt1d", 0xa0006001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RM_LSL3), OP_SVE_DZU, 0, 0),
+ SVE2p1_SME2_INSN ("ldnt1d", 0xa000e001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RM_LSL3), OP_SVE_DZU, 0, 0),
+ SME2_INSN ("ldnt1d", 0xa1006008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL3), OP_SVE_DZU, 0, 0),
+ SME2_INSN ("ldnt1d", 0xa100e008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL3), OP_SVE_DZU, 0, 0),
SVE2p1_SME2_INSN ("ldnt1h", 0xa0402001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_HZU, 0, 0),
SVE2p1_SME2_INSN ("ldnt1h", 0xa040a001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_HZU, 0, 0),
SME2_INSN ("ldnt1h", 0xa1402008, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_HZU, 0, 0),
SME2_INSN ("ldnt1h", 0xa140a008, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_HZU, 0, 0),
- SVE2p1_SME2_INSN ("ldnt1h", 0xa0002001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, 0, 0),
- SVE2p1_SME2_INSN ("ldnt1h", 0xa000a001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, 0, 0),
- SME2_INSN ("ldnt1h", 0xa1002008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, 0, 0),
- SME2_INSN ("ldnt1h", 0xa100a008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HZU, 0, 0),
+ SVE2p1_SME2_INSN ("ldnt1h", 0xa0002001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RM_LSL1), OP_SVE_HZU, 0, 0),
+ SVE2p1_SME2_INSN ("ldnt1h", 0xa000a001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RM_LSL1), OP_SVE_HZU, 0, 0),
+ SME2_INSN ("ldnt1h", 0xa1002008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL1), OP_SVE_HZU, 0, 0),
+ SME2_INSN ("ldnt1h", 0xa100a008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL1), OP_SVE_HZU, 0, 0),
SVE2p1_SME2_INSN ("ldnt1w", 0xa0404001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_SZU, 0, 0),
SVE2p1_SME2_INSN ("ldnt1w", 0xa040c001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_SZU, 0, 0),
SME2_INSN ("ldnt1w", 0xa1404008, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_SZU, 0, 0),
SME2_INSN ("ldnt1w", 0xa140c008, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_SZU, 0, 0),
- SVE2p1_SME2_INSN ("ldnt1w", 0xa0004001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, 0, 0),
- SVE2p1_SME2_INSN ("ldnt1w", 0xa000c001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, 0, 0),
- SME2_INSN ("ldnt1w", 0xa1004008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, 0, 0),
- SME2_INSN ("ldnt1w", 0xa100c008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SZU, 0, 0),
+ SVE2p1_SME2_INSN ("ldnt1w", 0xa0004001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RM_LSL2), OP_SVE_SZU, 0, 0),
+ SVE2p1_SME2_INSN ("ldnt1w", 0xa000c001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RM_LSL2), OP_SVE_SZU, 0, 0),
+ SME2_INSN ("ldnt1w", 0xa1004008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL2), OP_SVE_SZU, 0, 0),
+ SME2_INSN ("ldnt1w", 0xa100c008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL2), OP_SVE_SZU, 0, 0),
SME2_INSN ("ldr", 0xe11f8000, 0xfffffc1f, sme_misc, 0, OP2 (SME_ZT0, SIMD_ADDR_SIMPLE), {}, 0, 0),
SME2_INSN ("luti2", 0xc0cc0000, 0xfffc0c00, sme_size_12_bhs, 0, OP3 (SVE_Zd, SME_ZT0, SME_Zn_INDEX4_14), OP_SVE_VUU_BHS, 0, 0),
SME2_INSN ("luti2", 0xc08c4000, 0xfffc4c01, sme_size_12_bhs, 0, OP3 (SME_Zdnx2, SME_ZT0, SME_Zn_INDEX3_15), OP_SVE_VUU_BHS, 0, 0),
@@ -6068,22 +6199,22 @@ const struct aarch64_opcode aarch64_opcode_table[] =
SME2_INSN ("luti4", 0xc0ca0000, 0xfffe0c00, sme_size_12_bhs, 0, OP3 (SVE_Zd, SME_ZT0, SME_Zn_INDEX3_14), OP_SVE_VUU_BHS, 0, 0),
SME2_INSN ("luti4", 0xc08a4000, 0xfffe4c01, sme_size_12_bhs, 0, OP3 (SME_Zdnx2, SME_ZT0, SME_Zn_INDEX2_15), OP_SVE_VUU_BHS, 0, 0),
SME2_INSN ("luti4", 0xc08a8000, 0xfffecc03, sme_size_12_hs, 0, OP3 (SME_Zdnx4, SME_ZT0, SME_Zn_INDEX1_16), OP_SVE_VUU_HS, 0, 0),
- SME2_INSN ("mov", 0xc0060800, 0xffff9f01, sme2_mov, 0, OP2 (SME_Zdnx2, SME_ZA_array_off3_5), OP_SVE_VV_BHSD, F_OD (2), 0),
- SME2_INSN ("mov", 0xc0060c00, 0xffff9f03, sme2_mov, 0, OP2 (SME_Zdnx4, SME_ZA_array_off3_5), OP_SVE_VV_BHSD, F_OD (4), 0),
- SME2_INSN ("mov", 0xc0060000, 0xff3f1f01, sme_size_22, 0, OP2 (SME_Zdnx2, SME_ZA_HV_idx_srcxN), OP_SVE_VV_BHSDQ, F_OD (2), 0),
- SME2_INSN ("mov", 0xc0060400, 0xff3f1f03, sme_size_22, 0, OP2 (SME_Zdnx4, SME_ZA_HV_idx_srcxN), OP_SVE_VV_BHSDQ, F_OD (4), 0),
- SME2_INSN ("mov", 0xc0040800, 0xffff9c38, sme2_mov, 0, OP2 (SME_ZA_array_off3_0, SME_Znx2), OP_SVE_VV_BHSD, F_OD (2), 0),
- SME2_INSN ("mov", 0xc0040c00, 0xffff9c78, sme2_mov, 0, OP2 (SME_ZA_array_off3_0, SME_Znx4), OP_SVE_VV_BHSD, F_OD (4), 0),
- SME2_INSN ("mov", 0xc0040000, 0xff3f1c38, sme_size_22, 0, OP2 (SME_ZA_HV_idx_destxN, SME_Znx2), OP_SVE_VV_BHSDQ, F_OD (2), 0),
- SME2_INSN ("mov", 0xc0040400, 0xff3f1c78, sme_size_22, 0, OP2 (SME_ZA_HV_idx_destxN, SME_Znx4), OP_SVE_VV_BHSDQ, F_OD (4), 0),
- SME2_INSN ("mova", 0xc0060800, 0xffff9f01, sme2_mov, 0, OP2 (SME_Zdnx2, SME_ZA_array_off3_5), OP_SVE_VV_BHSD, F_OD (2), 0),
- SME2_INSN ("mova", 0xc0060c00, 0xffff9f03, sme2_mov, 0, OP2 (SME_Zdnx4, SME_ZA_array_off3_5), OP_SVE_VV_BHSD, F_OD (4), 0),
- SME2_INSN ("mova", 0xc0060000, 0xff3f1f01, sme_size_22, 0, OP2 (SME_Zdnx2, SME_ZA_HV_idx_srcxN), OP_SVE_VV_BHSDQ, F_OD (2), 0),
- SME2_INSN ("mova", 0xc0060400, 0xff3f1f03, sme_size_22, 0, OP2 (SME_Zdnx4, SME_ZA_HV_idx_srcxN), OP_SVE_VV_BHSDQ, F_OD (4), 0),
- SME2_INSN ("mova", 0xc0040800, 0xffff9c38, sme2_mov, 0, OP2 (SME_ZA_array_off3_0, SME_Znx2), OP_SVE_VV_BHSD, F_OD (2), 0),
- SME2_INSN ("mova", 0xc0040c00, 0xffff9c78, sme2_mov, 0, OP2 (SME_ZA_array_off3_0, SME_Znx4), OP_SVE_VV_BHSD, F_OD (4), 0),
- SME2_INSN ("mova", 0xc0040000, 0xff3f1c38, sme_size_22, 0, OP2 (SME_ZA_HV_idx_destxN, SME_Znx2), OP_SVE_VV_BHSDQ, F_OD (2), 0),
- SME2_INSN ("mova", 0xc0040400, 0xff3f1c78, sme_size_22, 0, OP2 (SME_ZA_HV_idx_destxN, SME_Znx4), OP_SVE_VV_BHSDQ, F_OD (4), 0),
+ SME2_INSN ("mov", 0xc0060800, 0xffff9f01, sme2_mov, 0, OP2 (SME_Zdnx2, SME_ZA_array_off3_5), OP_SVE_VV_BHSD, F_OD (2) | F_ALIAS, 0),
+ SME2_INSN ("mov", 0xc0060c00, 0xffff9f03, sme2_mov, 0, OP2 (SME_Zdnx4, SME_ZA_array_off3_5), OP_SVE_VV_BHSD, F_OD (4) | F_ALIAS, 0),
+ SME2_INSN ("mov", 0xc0060000, 0xff3f1f01, sme_size_22, 0, OP2 (SME_Zdnx2, SME_ZA_HV_idx_srcxN), OP_SVE_VV_BHSDQ, F_OD (2) | F_ALIAS, 0),
+ SME2_INSN ("mov", 0xc0060400, 0xff3f1f03, sme_size_22, 0, OP2 (SME_Zdnx4, SME_ZA_HV_idx_srcxN), OP_SVE_VV_BHSDQ, F_OD (4) | F_ALIAS, 0),
+ SME2_INSN ("mov", 0xc0040800, 0xffff9c38, sme2_mov, 0, OP2 (SME_ZA_array_off3_0, SME_Znx2), OP_SVE_VV_BHSD, F_OD (2) | F_ALIAS, 0),
+ SME2_INSN ("mov", 0xc0040c00, 0xffff9c78, sme2_mov, 0, OP2 (SME_ZA_array_off3_0, SME_Znx4), OP_SVE_VV_BHSD, F_OD (4) | F_ALIAS, 0),
+ SME2_INSN ("mov", 0xc0040000, 0xff3f1c38, sme_size_22, 0, OP2 (SME_ZA_HV_idx_destxN, SME_Znx2), OP_SVE_VV_BHSDQ, F_OD (2) | F_ALIAS, 0),
+ SME2_INSN ("mov", 0xc0040400, 0xff3f1c78, sme_size_22, 0, OP2 (SME_ZA_HV_idx_destxN, SME_Znx4), OP_SVE_VV_BHSDQ, F_OD (4) | F_ALIAS, 0),
+ SME2_INSN ("mova", 0xc0060800, 0xffff9f01, sme2_mov, 0, OP2 (SME_Zdnx2, SME_ZA_array_off3_5), OP_SVE_VV_BHSD, F_OD (2) | F_HAS_ALIAS, 0),
+ SME2_INSN ("mova", 0xc0060c00, 0xffff9f03, sme2_mov, 0, OP2 (SME_Zdnx4, SME_ZA_array_off3_5), OP_SVE_VV_BHSD, F_OD (4) | F_HAS_ALIAS, 0),
+ SME2_INSN ("mova", 0xc0060000, 0xff3f1f01, sme_size_22, 0, OP2 (SME_Zdnx2, SME_ZA_HV_idx_srcxN), OP_SVE_VV_BHSDQ, F_OD (2) | F_HAS_ALIAS, 0),
+ SME2_INSN ("mova", 0xc0060400, 0xff3f1f03, sme_size_22, 0, OP2 (SME_Zdnx4, SME_ZA_HV_idx_srcxN), OP_SVE_VV_BHSDQ, F_OD (4) | F_HAS_ALIAS, 0),
+ SME2_INSN ("mova", 0xc0040800, 0xffff9c38, sme2_mov, 0, OP2 (SME_ZA_array_off3_0, SME_Znx2), OP_SVE_VV_BHSD, F_OD (2) | F_HAS_ALIAS, 0),
+ SME2_INSN ("mova", 0xc0040c00, 0xffff9c78, sme2_mov, 0, OP2 (SME_ZA_array_off3_0, SME_Znx4), OP_SVE_VV_BHSD, F_OD (4) | F_HAS_ALIAS, 0),
+ SME2_INSN ("mova", 0xc0040000, 0xff3f1c38, sme_size_22, 0, OP2 (SME_ZA_HV_idx_destxN, SME_Znx2), OP_SVE_VV_BHSDQ, F_OD (2) | F_HAS_ALIAS, 0),
+ SME2_INSN ("mova", 0xc0040400, 0xff3f1c78, sme_size_22, 0, OP2 (SME_ZA_HV_idx_destxN, SME_Znx4), OP_SVE_VV_BHSDQ, F_OD (4) | F_HAS_ALIAS, 0),
SME2_INSN ("movt", 0xc04e03e0, 0xffff8fe0, sme_misc, 0, OP2 (SME_ZT0_INDEX, Rt), OP_SVE_UX, 0, 0),
SME2_INSN ("movt", 0xc04c03e0, 0xffff8fe0, sme_misc, 0, OP2 (Rt, SME_ZT0_INDEX), OP_SVE_XU, 0, 0),
SVE2p1_SME2_INSN ("pext", 0x25207010, 0xff3ffc10, sme_size_22, 0, OP2 (SVE_Pd, SME_PNn3_INDEX2), OP_SVE_VU_BHSD, 0, 0),
@@ -6173,66 +6304,66 @@ const struct aarch64_opcode aarch64_opcode_table[] =
SVE2p1_SME2_INSN ("st1b", 0xa0608000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_BUU, 0, 0),
SME2_INSN ("st1b", 0xa1600000, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_BUU, 0, 0),
SME2_INSN ("st1b", 0xa1608000, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_BUU, 0, 0),
- SVE2p1_SME2_INSN ("st1b", 0xa0200000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
- SVE2p1_SME2_INSN ("st1b", 0xa0208000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
- SME2_INSN ("st1b", 0xa1200000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
- SME2_INSN ("st1b", 0xa1208000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
+ SVE2p1_SME2_INSN ("st1b", 0xa0200000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RM), OP_SVE_BUU, 0, 0),
+ SVE2p1_SME2_INSN ("st1b", 0xa0208000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RM), OP_SVE_BUU, 0, 0),
+ SME2_INSN ("st1b", 0xa1200000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RM), OP_SVE_BUU, 0, 0),
+ SME2_INSN ("st1b", 0xa1208000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RM), OP_SVE_BUU, 0, 0),
SVE2p1_SME2_INSN ("st1d", 0xa0606000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_DUU, 0, 0),
SVE2p1_SME2_INSN ("st1d", 0xa060e000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_DUU, 0, 0),
SME2_INSN ("st1d", 0xa1606000, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_DUU, 0, 0),
SME2_INSN ("st1d", 0xa160e000, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_DUU, 0, 0),
- SVE2p1_SME2_INSN ("st1d", 0xa0206000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
- SVE2p1_SME2_INSN ("st1d", 0xa020e000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
- SME2_INSN ("st1d", 0xa1206000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
- SME2_INSN ("st1d", 0xa120e000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
+ SVE2p1_SME2_INSN ("st1d", 0xa0206000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RM_LSL3), OP_SVE_DUU, 0, 0),
+ SVE2p1_SME2_INSN ("st1d", 0xa020e000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RM_LSL3), OP_SVE_DUU, 0, 0),
+ SME2_INSN ("st1d", 0xa1206000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL3), OP_SVE_DUU, 0, 0),
+ SME2_INSN ("st1d", 0xa120e000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL3), OP_SVE_DUU, 0, 0),
SVE2p1_SME2_INSN ("st1h", 0xa0602000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_HUU, 0, 0),
SVE2p1_SME2_INSN ("st1h", 0xa060a000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_HUU, 0, 0),
SME2_INSN ("st1h", 0xa1602000, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_HUU, 0, 0),
SME2_INSN ("st1h", 0xa160a000, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_HUU, 0, 0),
- SVE2p1_SME2_INSN ("st1h", 0xa0202000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
- SVE2p1_SME2_INSN ("st1h", 0xa020a000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
- SME2_INSN ("st1h", 0xa1202000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
- SME2_INSN ("st1h", 0xa120a000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
+ SVE2p1_SME2_INSN ("st1h", 0xa0202000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RM_LSL1), OP_SVE_HUU, 0, 0),
+ SVE2p1_SME2_INSN ("st1h", 0xa020a000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RM_LSL1), OP_SVE_HUU, 0, 0),
+ SME2_INSN ("st1h", 0xa1202000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL1), OP_SVE_HUU, 0, 0),
+ SME2_INSN ("st1h", 0xa120a000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL1), OP_SVE_HUU, 0, 0),
SVE2p1_SME2_INSN ("st1w", 0xa0604000, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_SUU, 0, 0),
SVE2p1_SME2_INSN ("st1w", 0xa060c000, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_SUU, 0, 0),
SME2_INSN ("st1w", 0xa1604000, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_SUU, 0, 0),
SME2_INSN ("st1w", 0xa160c000, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_SUU, 0, 0),
- SVE2p1_SME2_INSN ("st1w", 0xa0204000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
- SVE2p1_SME2_INSN ("st1w", 0xa020c000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
- SME2_INSN ("st1w", 0xa1204000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
- SME2_INSN ("st1w", 0xa120c000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
+ SVE2p1_SME2_INSN ("st1w", 0xa0204000, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RM_LSL2), OP_SVE_SUU, 0, 0),
+ SVE2p1_SME2_INSN ("st1w", 0xa020c000, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RM_LSL2), OP_SVE_SUU, 0, 0),
+ SME2_INSN ("st1w", 0xa1204000, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL2), OP_SVE_SUU, 0, 0),
+ SME2_INSN ("st1w", 0xa120c000, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL2), OP_SVE_SUU, 0, 0),
SVE2p1_SME2_INSN ("stnt1b", 0xa0600001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_BUU, 0, 0),
SVE2p1_SME2_INSN ("stnt1b", 0xa0608001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_BUU, 0, 0),
SME2_INSN ("stnt1b", 0xa1600008, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_BUU, 0, 0),
SME2_INSN ("stnt1b", 0xa1608008, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_BUU, 0, 0),
- SVE2p1_SME2_INSN ("stnt1b", 0xa0200001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
- SVE2p1_SME2_INSN ("stnt1b", 0xa0208001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
- SME2_INSN ("stnt1b", 0xa1200008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
- SME2_INSN ("stnt1b", 0xa1208008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR), OP_SVE_BUU, 0, 0),
+ SVE2p1_SME2_INSN ("stnt1b", 0xa0200001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RM), OP_SVE_BUU, 0, 0),
+ SVE2p1_SME2_INSN ("stnt1b", 0xa0208001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RM), OP_SVE_BUU, 0, 0),
+ SME2_INSN ("stnt1b", 0xa1200008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RM), OP_SVE_BUU, 0, 0),
+ SME2_INSN ("stnt1b", 0xa1208008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RM), OP_SVE_BUU, 0, 0),
SVE2p1_SME2_INSN ("stnt1d", 0xa0606001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_DUU, 0, 0),
SVE2p1_SME2_INSN ("stnt1d", 0xa060e001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_DUU, 0, 0),
SME2_INSN ("stnt1d", 0xa1606008, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_DUU, 0, 0),
SME2_INSN ("stnt1d", 0xa160e008, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_DUU, 0, 0),
- SVE2p1_SME2_INSN ("stnt1d", 0xa0206001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
- SVE2p1_SME2_INSN ("stnt1d", 0xa020e001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
- SME2_INSN ("stnt1d", 0xa1206008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
- SME2_INSN ("stnt1d", 0xa120e008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL3), OP_SVE_DUU, 0, 0),
+ SVE2p1_SME2_INSN ("stnt1d", 0xa0206001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RM_LSL3), OP_SVE_DUU, 0, 0),
+ SVE2p1_SME2_INSN ("stnt1d", 0xa020e001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RM_LSL3), OP_SVE_DUU, 0, 0),
+ SME2_INSN ("stnt1d", 0xa1206008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL3), OP_SVE_DUU, 0, 0),
+ SME2_INSN ("stnt1d", 0xa120e008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL3), OP_SVE_DUU, 0, 0),
SVE2p1_SME2_INSN ("stnt1h", 0xa0602001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_HUU, 0, 0),
SVE2p1_SME2_INSN ("stnt1h", 0xa060a001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_HUU, 0, 0),
SME2_INSN ("stnt1h", 0xa1602008, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_HUU, 0, 0),
SME2_INSN ("stnt1h", 0xa160a008, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_HUU, 0, 0),
- SVE2p1_SME2_INSN ("stnt1h", 0xa0202001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
- SVE2p1_SME2_INSN ("stnt1h", 0xa020a001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
- SME2_INSN ("stnt1h", 0xa1202008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
- SME2_INSN ("stnt1h", 0xa120a008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL1), OP_SVE_HUU, 0, 0),
+ SVE2p1_SME2_INSN ("stnt1h", 0xa0202001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RM_LSL1), OP_SVE_HUU, 0, 0),
+ SVE2p1_SME2_INSN ("stnt1h", 0xa020a001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RM_LSL1), OP_SVE_HUU, 0, 0),
+ SME2_INSN ("stnt1h", 0xa1202008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL1), OP_SVE_HUU, 0, 0),
+ SME2_INSN ("stnt1h", 0xa120a008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL1), OP_SVE_HUU, 0, 0),
SVE2p1_SME2_INSN ("stnt1w", 0xa0604001, 0xfff0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_SUU, 0, 0),
SVE2p1_SME2_INSN ("stnt1w", 0xa060c001, 0xfff0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_SUU, 0, 0),
SME2_INSN ("stnt1w", 0xa1604008, 0xfff0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x2xVL), OP_SVE_SUU, 0, 0),
SME2_INSN ("stnt1w", 0xa160c008, 0xfff0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RI_S4x4xVL), OP_SVE_SUU, 0, 0),
- SVE2p1_SME2_INSN ("stnt1w", 0xa0204001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
- SVE2p1_SME2_INSN ("stnt1w", 0xa020c001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
- SME2_INSN ("stnt1w", 0xa1204008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
- SME2_INSN ("stnt1w", 0xa120c008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RR_LSL2), OP_SVE_SUU, 0, 0),
+ SVE2p1_SME2_INSN ("stnt1w", 0xa0204001, 0xffe0e001, sve_misc, 0, OP3 (SME_Zdnx2, SME_PNg3, SVE_ADDR_RM_LSL2), OP_SVE_SUU, 0, 0),
+ SVE2p1_SME2_INSN ("stnt1w", 0xa020c001, 0xffe0e003, sve_misc, 0, OP3 (SME_Zdnx4, SME_PNg3, SVE_ADDR_RM_LSL2), OP_SVE_SUU, 0, 0),
+ SME2_INSN ("stnt1w", 0xa1204008, 0xffe0e008, sve_misc, 0, OP3 (SME_Ztx2_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL2), OP_SVE_SUU, 0, 0),
+ SME2_INSN ("stnt1w", 0xa120c008, 0xffe0e00c, sve_misc, 0, OP3 (SME_Ztx4_STRIDED, SME_PNg3, SVE_ADDR_RM_LSL2), OP_SVE_SUU, 0, 0),
SME2_INSN ("str", 0xe13f8000, 0xfffffc1f, sme_misc, 0, OP2 (SME_ZT0, SIMD_ADDR_SIMPLE), {}, 0, 0),
SME2_INSN ("sub", 0xc1a01c18, 0xffbf9c38, sme_int_sd, 0, OP2 (SME_ZA_array_off3_0, SME_Znx2), OP_SVE_VVV_SD, F_OD (2), 0),
SME2_INSN ("sub", 0xc1a11c18, 0xffbf9c78, sme_int_sd, 0, OP2 (SME_ZA_array_off3_0, SME_Znx4), OP_SVE_VVV_SD, F_OD (4), 0),
@@ -6385,6 +6516,17 @@ const struct aarch64_opcode aarch64_opcode_table[] =
SME2_F64F64_INSN ("fmls", 0xc1d00010, 0xfff09838, sme_misc, 0, OP3 (SME_ZA_array_off3_0, SME_Znx2, SME_Zm_INDEX1), OP_SVE_DDD, F_OD (2), 0),
SME2_F64F64_INSN ("fmls", 0xc1d08010, 0xfff09878, sme_misc, 0, OP3 (SME_ZA_array_off3_0, SME_Znx4, SME_Zm_INDEX1), OP_SVE_DDD, F_OD (4), 0),
+ /* SVE_BFSCALE instructions. */
+ SVE_BFSCALE_INSN ("bfscale", 0x65098000, 0xffffe000, sve_misc, OP4 (SVE_Zd, SVE_Pg3, SVE_Zd, SVE_Zm_5), OP_SVE_HMHH, 0, 2),
+ SVE_BFSCALE_SME2_INSN ("bfscale", 0xc120a180, 0xfff0ffe1, sme_misc, OP3 (SME_Zdnx2, SME_Zdnx2, SME_Zm), OP_SVE_VVV_H, 0, 1),
+ SVE_BFSCALE_SME2_INSN ("bfscale", 0xc120a980, 0xfff0ffe3, sme_misc, OP3 (SME_Zdnx4, SME_Zdnx4, SME_Zm), OP_SVE_VVV_H, 0, 1),
+ SVE_BFSCALE_SME2_INSN ("bfscale", 0xc120b180, 0xffe1ffe1, sme_misc, OP3 (SME_Zdnx2, SME_Zdnx2, SME_Zmx2), OP_SVE_VVV_H, 0, 1),
+ SVE_BFSCALE_SME2_INSN ("bfscale", 0xc120b980, 0xffe3ffe3, sme_misc, OP3 (SME_Zdnx4, SME_Zdnx4, SME_Zmx4), OP_SVE_VVV_H, 0, 1),
+ SVE_BFSCALE_SME2_INSN ("bfmul", 0xc120e800, 0xffe1fc21, sme_misc, OP3 (SME_Zdnx2, SME_Znx2, SME_Zm_17), OP_SVE_VVV_H, 0, 0),
+ SVE_BFSCALE_SME2_INSN ("bfmul", 0xc121e800, 0xffe1fc63, sme_misc, OP3 (SME_Zdnx4, SME_Znx4, SME_Zm_17), OP_SVE_VVV_H, 0, 0),
+ SVE_BFSCALE_SME2_INSN ("bfmul", 0xc120e400, 0xffe1fc21, sme_misc, OP3 (SME_Zdnx2, SME_Znx2, SME_Zmx2), OP_SVE_VVV_H, 0, 0),
+ SVE_BFSCALE_SME2_INSN ("bfmul", 0xc121e400, 0xffe3fc63, sme_misc, OP3 (SME_Zdnx4, SME_Znx4, SME_Zmx4), OP_SVE_VVV_H, 0, 0),
+
/* SIMD Dot Product (optional in v8.2-A). */
DOT_INSN ("udot", 0x2e009400, 0xbf20fc00, dotproduct, OP3 (Vd, Vn, Vm), QL_V3DOT, F_SIZEQ),
DOT_INSN ("sdot", 0x0e009400, 0xbf20fc00, dotproduct, OP3 (Vd, Vn, Vm), QL_V3DOT, F_SIZEQ),
@@ -6450,6 +6592,87 @@ const struct aarch64_opcode aarch64_opcode_table[] =
RCPC2_INSN ("stlur", 0xd9000000, 0xffe00c00, ldst_unscaled, OP2 (Rt, ADDR_OFFSET), QL_STLX, 0),
RCPC2_INSN ("ldapur", 0xd9400000, 0xffe00c00, ldst_unscaled, OP2 (Rt, ADDR_OFFSET), QL_STLX, 0),
+ /* Floating-point atomic add in memory. */
+ _LSFE_INSN ("ldfadd", 0x3c200000, 0x3fe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_HSD_0, F_LSFE_SZ),
+ _LSFE_INSN ("ldfadda", 0x3ca00000, 0x3fe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_HSD_0, F_LSFE_SZ),
+ _LSFE_INSN ("ldfaddal", 0x3ce00000, 0x3fe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_HSD_0, F_LSFE_SZ),
+ _LSFE_INSN ("ldfaddl", 0x3c600000, 0x3fe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_HSD_0, F_LSFE_SZ),
+ /* Floating-point atomic maximum in memory. */
+ _LSFE_INSN ("ldfmax", 0x3c204000, 0x3fe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_HSD_0, F_LSFE_SZ),
+ _LSFE_INSN ("ldfmaxa", 0x3ca04000, 0x3fe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_HSD_0, F_LSFE_SZ),
+ _LSFE_INSN ("ldfmaxal", 0x3ce04000, 0x3fe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_HSD_0, F_LSFE_SZ),
+ _LSFE_INSN ("ldfmaxl", 0x3c604000, 0x3fe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_HSD_0, F_LSFE_SZ),
+ /* Floating-point atomic maximum number in memory. */
+ _LSFE_INSN ("ldfmaxnm", 0x3c206000, 0x3fe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_HSD_0, F_LSFE_SZ),
+ _LSFE_INSN ("ldfmaxnma", 0x3ca06000, 0x3fe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_HSD_0, F_LSFE_SZ),
+ _LSFE_INSN ("ldfmaxnmal", 0x3ce06000, 0x3fe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_HSD_0, F_LSFE_SZ),
+ _LSFE_INSN ("ldfmaxnml", 0x3c606000, 0x3fe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_HSD_0, F_LSFE_SZ),
+ /* Floating-point atomic minimum in memory. */
+ _LSFE_INSN ("ldfmin", 0x3c205000, 0x3fe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_HSD_0, F_LSFE_SZ),
+ _LSFE_INSN ("ldfmina", 0x3ca05000, 0x3fe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_HSD_0, F_LSFE_SZ),
+ _LSFE_INSN ("ldfminal", 0x3ce05000, 0x3fe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_HSD_0, F_LSFE_SZ),
+ _LSFE_INSN ("ldfminl", 0x3c605000, 0x3fe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_HSD_0, F_LSFE_SZ),
+ /* Floating-point atomic minimum number in memory. */
+ _LSFE_INSN ("ldfminnm", 0x3c207000, 0x3fe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_HSD_0, F_LSFE_SZ),
+ _LSFE_INSN ("ldfminnma", 0x3ca07000, 0x3fe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_HSD_0, F_LSFE_SZ),
+ _LSFE_INSN ("ldfminnmal", 0x3ce07000, 0x3fe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_HSD_0, F_LSFE_SZ),
+ _LSFE_INSN ("ldfminnml", 0x3c607000, 0x3fe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_HSD_0, F_LSFE_SZ),
+ /* BFloat16 floating-point add in memory. */
+ _LSFE_INSN ("ldbfadd", 0x3c200000, 0xffe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_H_0, 0),
+ _LSFE_INSN ("ldbfadda", 0x3ca00000, 0xffe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_H_0, 0),
+ _LSFE_INSN ("ldbfaddal", 0x3ce00000, 0xffe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_H_0, 0),
+ _LSFE_INSN ("ldbfaddl", 0x3c600000, 0xffe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_H_0, 0),
+ /* BFloat16 floating-point maximum in memory. */
+ _LSFE_INSN ("ldbfmax", 0x3c204000, 0xffe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_H_0, 0),
+ _LSFE_INSN ("ldbfmaxa", 0x3ca04000, 0xffe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_H_0, 0),
+ _LSFE_INSN ("ldbfmaxal", 0x3ce04000, 0xffe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_H_0, 0),
+ _LSFE_INSN ("ldbfmaxl", 0x3c604000, 0xffe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_H_0, 0),
+ /* BFloat16 floating-point maximum number in memory. */
+ _LSFE_INSN ("ldbfmaxnm", 0x3c206000, 0xffe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_H_0, 0),
+ _LSFE_INSN ("ldbfmaxnma", 0x3ca06000, 0xffe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_H_0, 0),
+ _LSFE_INSN ("ldbfmaxnmal", 0x3ce06000, 0xffe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_H_0, 0),
+ _LSFE_INSN ("ldbfmaxnml", 0x3c606000, 0xffe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_H_0, 0),
+ /* BFloat16 floating-point minimum in memory. */
+ _LSFE_INSN ("ldbfmin", 0x3c205000, 0xffe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_H_0, 0),
+ _LSFE_INSN ("ldbfmina", 0x3ca05000, 0xffe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_H_0, 0),
+ _LSFE_INSN ("ldbfminal", 0x3ce05000, 0xffe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_H_0, 0),
+ _LSFE_INSN ("ldbfminl", 0x3c605000, 0xffe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_H_0, 0),
+ /* BFloat16 floating-point minimum number in memory. */
+ _LSFE_INSN ("ldbfminnm", 0x3c207000, 0xffe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_H_0, 0),
+ _LSFE_INSN ("ldbfminnma", 0x3ca07000, 0xffe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_H_0, 0),
+ _LSFE_INSN ("ldbfminnmal", 0x3ce07000, 0xffe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_H_0, 0),
+ _LSFE_INSN ("ldbfminnml", 0x3c607000, 0xffe0fc00, lse_atomic, OP3 (Fm, Fd, ADDR_SIMPLE), QL_FP2_H_0, 0),
+ /* Floating-point atomic add in memory, without return. */
+ _LSFE_INSN ("stfadd", 0x3c20801f, 0x3fe0fc1f, lse_atomic, OP2 (Fm, ADDR_SIMPLE), QL_FP_HSD_0, F_LSFE_SZ),
+ _LSFE_INSN ("stfaddl", 0x3c60801f, 0x3fe0fc1f, lse_atomic, OP2 (Fm, ADDR_SIMPLE), QL_FP_HSD_0, F_LSFE_SZ),
+ /* Floating-point atomic maximum in memory, without return. */
+ _LSFE_INSN ("stfmax", 0x3c20c01f, 0x3fe0fc1f, lse_atomic, OP2 (Fm, ADDR_SIMPLE), QL_FP_HSD_0, F_LSFE_SZ),
+ _LSFE_INSN ("stfmaxl", 0x3c60c01f, 0x3fe0fc1f, lse_atomic, OP2 (Fm, ADDR_SIMPLE), QL_FP_HSD_0, F_LSFE_SZ),
+ /* Floating-point atomic maximum number in memory, without return. */
+ _LSFE_INSN ("stfmaxnm", 0x3c20e01f, 0x3fe0fc1f, lse_atomic, OP2 (Fm, ADDR_SIMPLE), QL_FP_HSD_0, F_LSFE_SZ),
+ _LSFE_INSN ("stfmaxnml", 0x3c60e01f, 0x3fe0fc1f, lse_atomic, OP2 (Fm, ADDR_SIMPLE), QL_FP_HSD_0, F_LSFE_SZ),
+ /* Floating-point atomic minimum in memory, without return. */
+ _LSFE_INSN ("stfmin", 0x3c20d01f, 0x3fe0fc1f, lse_atomic, OP2 (Fm, ADDR_SIMPLE), QL_FP_HSD_0, F_LSFE_SZ),
+ _LSFE_INSN ("stfminl", 0x3c60d01f, 0x3fe0fc1f, lse_atomic, OP2 (Fm, ADDR_SIMPLE), QL_FP_HSD_0, F_LSFE_SZ),
+ /* Floating-point atomic minimum number in memory, without return. */
+ _LSFE_INSN ("stfminnm", 0x3c20f01f, 0x3fe0fc1f, lse_atomic, OP2 (Fm, ADDR_SIMPLE), QL_FP_HSD_0, F_LSFE_SZ),
+ _LSFE_INSN ("stfminnml", 0x3c60f01f, 0x3fe0fc1f, lse_atomic, OP2 (Fm, ADDR_SIMPLE), QL_FP_HSD_0, F_LSFE_SZ),
+ /* BFloat16 floating-point atomic add in memory, without return. */
+ _LSFE_INSN ("stbfadd", 0x3c20801f, 0xffe0fc1f, lse_atomic, OP2 (Fm, ADDR_SIMPLE), QL_DST_H, 0),
+ _LSFE_INSN ("stbfaddl", 0x3c60801f, 0xffe0fc1f, lse_atomic, OP2 (Fm, ADDR_SIMPLE), QL_DST_H, 0),
+ /* BFloat16 floating-point atomic maximum in memory, without return. */
+ _LSFE_INSN ("stbfmax", 0x3c20c01f, 0xffe0fc1f, lse_atomic, OP2 (Fm, ADDR_SIMPLE), QL_DST_H, 0),
+ _LSFE_INSN ("stbfmaxl", 0x3c60c01f, 0xffe0fc1f, lse_atomic, OP2 (Fm, ADDR_SIMPLE), QL_DST_H, 0),
+ /* BFloat16 floating-point atomic maximum number in memory, without return. */
+ _LSFE_INSN ("stbfmaxnm", 0x3c20e01f, 0xffe0fc1f, lse_atomic, OP2 (Fm, ADDR_SIMPLE), QL_DST_H, 0),
+ _LSFE_INSN ("stbfmaxnml", 0x3c60e01f, 0xffe0fc1f, lse_atomic, OP2 (Fm, ADDR_SIMPLE), QL_DST_H, 0),
+ /* BFloat16 floating-point atomic minumum in memory, without return. */
+ _LSFE_INSN ("stbfmin", 0x3c20d01f, 0xffe0fc1f, lse_atomic, OP2 (Fm, ADDR_SIMPLE), QL_DST_H, 0),
+ _LSFE_INSN ("stbfminl", 0x3c60d01f, 0xffe0fc1f, lse_atomic, OP2 (Fm, ADDR_SIMPLE), QL_DST_H, 0),
+ /* BFloat16 floating-point atomic minumum number in memory, without return. */
+ _LSFE_INSN ("stbfminnm", 0x3c20f01f, 0xffe0fc1f, lse_atomic, OP2 (Fm, ADDR_SIMPLE), QL_DST_H, 0),
+ _LSFE_INSN ("stbfminnml", 0x3c60f01f, 0xffe0fc1f, lse_atomic, OP2 (Fm, ADDR_SIMPLE), QL_DST_H, 0),
+
/* Matrix Multiply instructions. */
INT8MATMUL_SVE_INSNC ("smmla", 0x45009800, 0xffe0fc00, sve_misc, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_SBB, 0, C_SCAN_MOVPRFX, 0),
INT8MATMUL_SVE_INSNC ("ummla", 0x45c09800, 0xffe0fc00, sve_misc, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_SBB, 0, C_SCAN_MOVPRFX, 0),
@@ -6504,6 +6727,15 @@ const struct aarch64_opcode aarch64_opcode_table[] =
BFLOAT16_INSN ("bfmlalt", 0x4fc0f000, 0xffc0f400, bfloat16, OP3 (Vd, Vn, Em16), QL_V3BFML4S, 0),
BFLOAT16_INSN ("bfmlalb", 0x0fc0f000, 0xffc0f400, bfloat16, OP3 (Vd, Vn, Em16), QL_V3BFML4S, 0),
+ /* SVE_F16F32 Matrix Multiply-Accumulate. */
+ SVE_F16F32MM_INSN ("fmmla", 0x6420e400, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_SHH, 0),
+ /* F8F32 Matrix Multiply-Accumulate. */
+ F8F32MM_INSN ("fmmla", 0x6e80ec00, 0xffe0fc00, asimdmisc, 0, OP3 (Vd, Vn, Vm), QL_V3FMLL4S, 0),
+ F8F32MM_SVE2_INSN ("fmmla", 0x6420e000, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_SBB, 0),
+ /* F8F16 Matrix Multiply-Accumulate. */
+ F8F16MM_INSN ("fmmla", 0x6e00ec00, 0xffe0fc00, asimdmisc, 0, OP3 (Vd, Vn, Vm), QL_V3FML8H, 0),
+ F8F16MM_SVE2_INSN ("fmmla", 0x6460e000, 0xffe0fc00, sve_misc, 0, OP3 (SVE_Zd, SVE_Zn, SVE_Zm_16), OP_SVE_VVV_H_B, 0),
+
/* cpyfp cpyfprn cpyfpwn cpyfpn
cpyfm cpyfmrn cpyfmwn cpyfmn
cpyfe cpyfern cpyfewn cpyfen
@@ -7126,6 +7358,8 @@ const struct aarch64_opcode aarch64_opcode_table[] =
"the width of the bit-field") \
Y(IMMEDIATE, imm, "IMM", 0, F(FLD_imm6_10), "an immediate") \
Y(IMMEDIATE, imm, "IMM_2", 0, F(FLD_imm6_15), "an immediate") \
+ Y(IMMEDIATE, imm, "IMMP1_2", 0, F(FLD_imm6_15), "an immediate plus 1") \
+ Y(IMMEDIATE, imm, "IMMS1_2", 0, F(FLD_imm6_15), "an immediate minus 1") \
Y(IMMEDIATE, imm, "UIMM3_OP1", 0, F(FLD_op1), \
"a 3-bit unsigned immediate") \
Y(IMMEDIATE, imm, "UIMM3_OP2", 0, F(FLD_op2), \
@@ -7170,6 +7404,8 @@ const struct aarch64_opcode aarch64_opcode_table[] =
"one of the standard conditions, excluding AL and NV.") \
X(ADDRESS, 0, ext_imm, "ADDR_ADRP", OPD_F_SEXT, F(FLD_immhi, FLD_immlo),\
"21-bit PC-relative address of a 4KB page") \
+ Y(ADDRESS, imm, "ADDR_PCREL9", OPD_F_SEXT | OPD_F_SHIFT_BY_2, \
+ F(FLD_imm9_5), "9-bit PC-relative address") \
Y(ADDRESS, imm, "ADDR_PCREL14", OPD_F_SEXT | OPD_F_SHIFT_BY_2, \
F(FLD_imm14), "14-bit PC-relative address") \
Y(ADDRESS, imm, "ADDR_PCREL19", OPD_F_SEXT | OPD_F_SHIFT_BY_2, \
@@ -7276,8 +7512,6 @@ const struct aarch64_opcode aarch64_opcode_table[] =
Y(ADDRESS, sve_addr_ri_u6, "SVE_ADDR_RI_U6x8", 3 << OPD_F_OD_LSB, \
F(FLD_Rn), \
"an address with a 6-bit unsigned offset, multiplied by 8") \
- Y(ADDRESS, sve_addr_rr_lsl, "SVE_ADDR_R", 0 << OPD_F_OD_LSB, \
- F(FLD_Rn,FLD_Rm), "an address with an optional scalar register offset") \
Y(ADDRESS, sve_addr_rr_lsl, "SVE_ADDR_RR", 0 << OPD_F_OD_LSB, \
F(FLD_Rn,FLD_Rm), "an address with a scalar register offset") \
Y(ADDRESS, sve_addr_rr_lsl, "SVE_ADDR_RR_LSL1", 1 << OPD_F_OD_LSB, \
@@ -7288,6 +7522,16 @@ const struct aarch64_opcode aarch64_opcode_table[] =
F(FLD_Rn,FLD_Rm), "an address with a scalar register offset") \
Y(ADDRESS, sve_addr_rr_lsl, "SVE_ADDR_RR_LSL4", 4 << OPD_F_OD_LSB, \
F(FLD_Rn,FLD_Rm), "an address with a scalar register offset") \
+ Y(ADDRESS, sve_addr_rr_lsl, "SVE_ADDR_RM", 0 << OPD_F_OD_LSB, \
+ F(FLD_Rn,FLD_Rm), "an address with a scalar register offset") \
+ Y(ADDRESS, sve_addr_rr_lsl, "SVE_ADDR_RM_LSL1", 1 << OPD_F_OD_LSB, \
+ F(FLD_Rn,FLD_Rm), "an address with a scalar register offset") \
+ Y(ADDRESS, sve_addr_rr_lsl, "SVE_ADDR_RM_LSL2", 2 << OPD_F_OD_LSB, \
+ F(FLD_Rn,FLD_Rm), "an address with a scalar register offset") \
+ Y(ADDRESS, sve_addr_rr_lsl, "SVE_ADDR_RM_LSL3", 3 << OPD_F_OD_LSB, \
+ F(FLD_Rn,FLD_Rm), "an address with a scalar register offset") \
+ Y(ADDRESS, sve_addr_rr_lsl, "SVE_ADDR_RM_LSL4", 4 << OPD_F_OD_LSB, \
+ F(FLD_Rn,FLD_Rm), "an address with a scalar register offset") \
Y(ADDRESS, sve_addr_rr_lsl, "SVE_ADDR_RX", \
(0 << OPD_F_OD_LSB) | OPD_F_NO_ZR, F(FLD_Rn,FLD_Rm), \
"an address with a scalar register offset") \
@@ -7537,6 +7781,8 @@ const struct aarch64_opcode aarch64_opcode_table[] =
F(FLD_SME_Zdn4), "a list of SVE vector registers") \
Y(SVE_REG, regno, "SME_Zm", 0, F(FLD_SME_Zm), \
"an SVE vector register") \
+ Y(SVE_REG, regno, "SME_Zm_17", 0, F(FLD_SME_Zm2), \
+ "an SVE vector register") \
Y(SVE_REGLIST, sve_aligned_reglist, "SME_Zmx2", 2 << OPD_F_OD_LSB, \
F(FLD_SME_Zm2), "a list of SVE vector registers") \
Y(SVE_REGLIST, sve_aligned_reglist, "SME_Zmx4", 4 << OPD_F_OD_LSB, \
diff --git a/opcodes/config.in b/opcodes/config.in
index 409998f..64b3303 100644
--- a/opcodes/config.in
+++ b/opcodes/config.in
@@ -98,9 +98,6 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
-/* The size of `void *', as computed by sizeof. */
-#undef SIZEOF_VOID_P
-
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
diff --git a/opcodes/configure b/opcodes/configure
index 554a070..4b6e965 100755
--- a/opcodes/configure
+++ b/opcodes/configure
@@ -646,8 +646,6 @@ cgendir
CGEN_MAINT_FALSE
CGEN_MAINT_TRUE
HDEFINES
-ENABLE_BFD_64_BIT_FALSE
-ENABLE_BFD_64_BIT_TRUE
EXEEXT_FOR_BUILD
CC_FOR_BUILD
CATOBJEXT
@@ -819,7 +817,6 @@ with_libiconv_prefix
with_libiconv_type
with_libintl_prefix
with_libintl_type
-enable_64_bit_bfd
enable_cgen_maint
'
ac_precious_vars='build_alias
@@ -1471,7 +1468,6 @@ Optional Features:
--enable-install-libbfd controls installation of libbfd and related headers
--disable-nls do not use Native Language Support
--disable-rpath do not hardcode runtime library paths
- --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)
--enable-cgen-maint=dir build cgen generated files
Optional Packages:
@@ -1926,189 +1922,6 @@ $as_echo "$ac_res" >&6; }
} # ac_fn_c_check_func
-# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
-# --------------------------------------------
-# Tries to find the compile-time value of EXPR in a program that includes
-# INCLUDES, setting VAR accordingly. Returns whether the value could be
-# computed
-ac_fn_c_compute_int ()
-{
- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- if test "$cross_compiling" = yes; then
- # Depending upon the size, compute the lo and hi bounds.
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) >= 0)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_lo=0 ac_mid=0
- while :; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_hi=$ac_mid; break
-else
- as_fn_arith $ac_mid + 1 && ac_lo=$as_val
- if test $ac_lo -le $ac_mid; then
- ac_lo= ac_hi=
- break
- fi
- as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) < 0)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_hi=-1 ac_mid=-1
- while :; do
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) >= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_lo=$ac_mid; break
-else
- as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
- if test $ac_mid -le $ac_hi; then
- ac_lo= ac_hi=
- break
- fi
- as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-else
- ac_lo= ac_hi=
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
- as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-int
-main ()
-{
-static int test_array [1 - 2 * !(($2) <= $ac_mid)];
-test_array [0] = 0;
-return test_array [0];
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_hi=$ac_mid
-else
- as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in #((
-?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
-'') ac_retval=1 ;;
-esac
- else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$4
-static long int longval () { return $2; }
-static unsigned long int ulongval () { return $2; }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
- FILE *f = fopen ("conftest.val", "w");
- if (! f)
- return 1;
- if (($2) < 0)
- {
- long int i = longval ();
- if (i != ($2))
- return 1;
- fprintf (f, "%ld", i);
- }
- else
- {
- unsigned long int i = ulongval ();
- if (i != ($2))
- return 1;
- fprintf (f, "%lu", i);
- }
- /* Do not output a trailing newline, as this causes \r\n confusion
- on some platforms. */
- return ferror (f) || fclose (f) != 0;
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
- echo >>conftest.val; read $3 <conftest.val; ac_retval=0
-else
- ac_retval=1
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-rm -f conftest.val
-
- fi
- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
- as_fn_set_status $ac_retval
-
-} # ac_fn_c_compute_int
-
# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
# ---------------------------------------------
# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
@@ -11090,7 +10903,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11093 "configure"
+#line 10906 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11196,7 +11009,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11199 "configure"
+#line 11012 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -14025,70 +13838,40 @@ $as_echo "$bfd_cv_build_exeext" >&6; }
test x"${bfd_cv_build_exeext}" != xno && EXEEXT_FOR_BUILD=${bfd_cv_build_exeext}
fi
-# Check whether --enable-64-bit-bfd was given.
-if test "${enable_64_bit_bfd+set}" = set; then :
- enableval=$enable_64_bit_bfd; case $enableval in #(
- yes|no) :
- ;; #(
- *) :
- as_fn_error $? "bad value ${enableval} for 64-bit-bfd option" "$LINENO" 5 ;; #(
- *) :
- ;;
-esac
-else
- enable_64_bit_bfd=no
-fi
-
-
-if test "x$enable_64_bit_bfd" = "xno"; then :
- # The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5
-$as_echo_n "checking size of void *... " >&6; }
-if ${ac_cv_sizeof_void_p+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then :
-
-else
- if test "$ac_cv_type_void_p" = yes; then
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (void *)
-See \`config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_void_p=0
- fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5
-$as_echo "$ac_cv_sizeof_void_p" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_VOID_P $ac_cv_sizeof_void_p
+# See whether 64-bit bfd lib has been enabled.
+OLD_CPPFLAGS=$CPPFLAGS
+# Put the old CPPFLAGS last, in case the user's CPPFLAGS point somewhere
+# with bfd, with -I/foo/include. We always want our bfd.
+CPPFLAGS="-I${srcdir}/../include -I../bfd -I${srcdir}/../bfd $CPPFLAGS"
+# Note we cannot cache the result of this check because BFD64 may change
+# when a secondary target has been added or removed and we have no access
+# to this information here.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether BFD is 64-bit" >&5
+$as_echo_n "checking whether BFD is 64-bit... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include "bfd.h"
+int
+main ()
+{
+#ifdef BFD64
+HAVE_BFD64
+#endif
+ ;
+ return 0;
+}
_ACEOF
-
-
- if test "x$ac_cv_sizeof_void_p" = "x8"; then :
- enable_64_bit_bfd=yes
-fi
-
-fi
-
- if test "x$enable_64_bit_bfd" = "xyes"; then
- ENABLE_BFD_64_BIT_TRUE=
- ENABLE_BFD_64_BIT_FALSE='#'
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "HAVE_BFD64" >/dev/null 2>&1; then :
+ have_64_bit_bfd=yes
else
- ENABLE_BFD_64_BIT_TRUE='#'
- ENABLE_BFD_64_BIT_FALSE=
+ have_64_bit_bfd=no
fi
+rm -f conftest*
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_64_bit_bfd" >&5
+$as_echo "$have_64_bit_bfd" >&6; }
+CPPFLAGS=$OLD_CPPFLAGS
@@ -14567,7 +14350,7 @@ if test x${all_targets} = xfalse ; then
else # all_targets is true
archdefs=-DARCH_all
- if test "$enable_64_bit_bfd" = "yes" ; then
+ if test "$have_64_bit_bfd" = "yes" ; then
BFD_MACHINES='$(ALL32_MACHINES) $(ALL64_MACHINES)'
else
BFD_MACHINES='$(ALL32_MACHINES)'
@@ -14720,10 +14503,6 @@ if test -z "${INSTALL_LIBBFD_TRUE}" && test -z "${INSTALL_LIBBFD_FALSE}"; then
as_fn_error $? "conditional \"INSTALL_LIBBFD\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${ENABLE_BFD_64_BIT_TRUE}" && test -z "${ENABLE_BFD_64_BIT_FALSE}"; then
- as_fn_error $? "conditional \"ENABLE_BFD_64_BIT\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
if test -z "${CGEN_MAINT_TRUE}" && test -z "${CGEN_MAINT_FALSE}"; then
as_fn_error $? "conditional \"CGEN_MAINT\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
diff --git a/opcodes/configure.ac b/opcodes/configure.ac
index 4f8c734..b30f9f8 100644
--- a/opcodes/configure.ac
+++ b/opcodes/configure.ac
@@ -383,7 +383,7 @@ if test x${all_targets} = xfalse ; then
else # all_targets is true
archdefs=-DARCH_all
- if test "$enable_64_bit_bfd" = "yes" ; then
+ if test "$have_64_bit_bfd" = "yes" ; then
BFD_MACHINES='$(ALL32_MACHINES) $(ALL64_MACHINES)'
else
BFD_MACHINES='$(ALL32_MACHINES)'
diff --git a/opcodes/disassemble.c b/opcodes/disassemble.c
index 98de1a7..53ee1ec 100644
--- a/opcodes/disassemble.c
+++ b/opcodes/disassemble.c
@@ -382,7 +382,7 @@ disassembler (enum bfd_architecture a,
#endif
#ifdef ARCH_riscv
case bfd_arch_riscv:
- disassemble = riscv_get_disassembler (abfd);
+ disassemble = print_insn_riscv;
break;
#endif
#ifdef ARCH_rl78
diff --git a/opcodes/disassemble.h b/opcodes/disassemble.h
index 5fcd45e..a6c7d8f 100644
--- a/opcodes/disassemble.h
+++ b/opcodes/disassemble.h
@@ -102,7 +102,6 @@ extern int print_insn_loongarch (bfd_vma, disassemble_info *);
extern disassembler_ftype csky_get_disassembler (bfd *);
extern disassembler_ftype rl78_get_disassembler (bfd *);
-extern disassembler_ftype riscv_get_disassembler (bfd *);
extern void disassemble_free_riscv (disassemble_info *);
extern void disassemble_free_powerpc (disassemble_info *);
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index cc5448b..703f09d 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -230,7 +230,6 @@ struct instr_info
bool b;
bool no_broadcast;
bool nf;
- bool u;
}
vex;
@@ -2977,6 +2976,8 @@ static const struct dis386 reg_table[][8] = {
{ "xsha384", { { OP_0f07, 0 } }, 0 },
{ "xsha512", { { OP_0f07, 0 } }, 0 },
{ PREFIX_TABLE (PREFIX_0FA6_REG_5) },
+ { "montmul2", { { OP_0f07, 0 } }, 0 },
+ { "xmodexp", { { OP_0f07, 0 } }, 0 },
},
/* REG_0FA7 */
{
@@ -9450,8 +9451,6 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
if (!(*ins->codep & 0x4))
ins->rex2 |= REX_X;
- ins->vex.u = *ins->codep & 0x4;
-
switch ((*ins->codep & 0x3))
{
case 0:
@@ -9486,8 +9485,8 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
{
/* Report bad for !evex_default and when two fixed values of evex
change. */
- if (ins->evex_type != evex_default || (ins->rex2 & REX_B)
- || ((ins->rex2 & REX_X) && (ins->modrm.mod != 3)))
+ if (ins->evex_type != evex_default
+ || (ins->rex2 & (REX_B | REX_X)))
return &bad_opcode;
/* In 16/32-bit mode silently ignore following bits. */
ins->rex &= ~REX_B;
@@ -9511,22 +9510,14 @@ get_valid_dis386 (const struct dis386 *dp, instr_info *ins)
if (!fetch_modrm (ins))
return &err_opcode;
- /* When modrm.mod != 3, the U bit is used by APX for bit X4.
- When modrm.mod == 3, the U bit is used by AVX10. The U bit and
- the b bit should not be zero at the same time. */
- if (ins->modrm.mod == 3 && !ins->vex.u && !ins->vex.b)
+ if (ins->modrm.mod == 3 && (ins->rex2 & REX_X))
return &bad_opcode;
/* Set vector length. For EVEX-promoted instructions, evex.ll == 0b00,
which has the same encoding as vex.length == 128 and they can share
the same processing with vex.length in OP_VEX. */
if (ins->modrm.mod == 3 && ins->vex.b && ins->evex_type != evex_from_legacy)
- {
- if (ins->vex.u)
- ins->vex.length = 512;
- else
- ins->vex.length = 256;
- }
+ ins->vex.length = 512;
else
{
switch (ins->vex.ll)
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
index 3cc0352..e90e2fa 100644
--- a/opcodes/i386-gen.c
+++ b/opcodes/i386-gen.c
@@ -301,6 +301,8 @@ static const dependency isa_dependencies[] =
"PadLock" },
{ "PadLockPHE2",
"PadLock" },
+ { "PadLockXMODX",
+ "PadLock" },
};
/* This array is populated as process_i386_initializers() walks cpu_flags[]. */
@@ -354,10 +356,11 @@ static bitfield cpu_flags[] =
BITFIELD (3dnow),
BITFIELD (3dnowA),
BITFIELD (PadLock),
- BITFIELD (GMISM2),
- BITFIELD (GMICCS),
BITFIELD (PadLockRNG2),
BITFIELD (PadLockPHE2),
+ BITFIELD (PadLockXMODX),
+ BITFIELD (GMISM2),
+ BITFIELD (GMICCS),
BITFIELD (SVME),
BITFIELD (VMX),
BITFIELD (SMX),
@@ -537,6 +540,7 @@ static const struct {
} operand_classes[] = {
CLASS (Reg),
CLASS (SReg),
+ CLASS (RegFP),
CLASS (RegCR),
CLASS (RegDR),
CLASS (RegTR),
diff --git a/opcodes/i386-init.h b/opcodes/i386-init.h
index 3316ed1..0c9ae65 100644
--- a/opcodes/i386-init.h
+++ b/opcodes/i386-init.h
@@ -26,7 +26,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
@@ -36,7 +36,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
@@ -46,7 +46,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
@@ -56,7 +56,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, \
@@ -66,7 +66,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 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 } }
#define CPU_686_FLAGS \
{ { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
@@ -76,7 +76,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 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 } }
#define CPU_CMOV_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -86,7 +86,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
@@ -96,7 +96,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
@@ -106,7 +106,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
@@ -116,7 +116,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
@@ -126,7 +126,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
@@ -136,7 +136,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, \
@@ -146,7 +146,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 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 } }
#define CPU_FISTTP_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, \
@@ -156,7 +156,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 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 } }
#define CPU_MMX_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
@@ -166,7 +166,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, \
@@ -176,7 +176,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, 0, \
@@ -186,7 +186,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, \
@@ -196,7 +196,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, \
@@ -206,29 +206,29 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_GMISM2_FLAGS \
- { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
+#define CPU_PADLOCKRNG2_FLAGS \
+ { { 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, 0, 0, 0, 0, 0, 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_GMICCS_FLAGS \
- { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+#define CPU_PADLOCKPHE2_FLAGS \
+ { { 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_PADLOCKRNG2_FLAGS \
+#define CPU_PADLOCKXMODX_FLAGS \
{ { 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, \
@@ -236,19 +236,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, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
-#define CPU_PADLOCKPHE2_FLAGS \
- { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
+#define CPU_GMISM2_FLAGS \
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 \
+#define CPU_GMICCS_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -256,9 +256,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 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
-#define CPU_VMX_FLAGS \
+#define CPU_SVME_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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -266,9 +266,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 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
-#define CPU_SMX_FLAGS \
+#define CPU_VMX_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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -276,747 +276,757 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
+ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
- 0, 0, 0, 0, 0, 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, 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, \
- 0, 0, 0, 0, 0, 0, 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 } }
#define CPU_MONITOR_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, 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 } }
#define CPU_SSE4_1_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 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, 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, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 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, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 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, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 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 } }
#define CPU_AVX512CD_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 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, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 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, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 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, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 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, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 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, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 1, 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, 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, 1, 0, 1, 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, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 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, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#define CPU_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, 0, 0, 0, 0, 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 } }
#define CPU_XSAVEOPT_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, \
- 1, 1, 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, 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, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_PCLMULQDQ_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 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, \
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 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 } }
#define CPU_FMA4_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 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 } }
#define CPU_XOP_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, \
- 1, 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, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, \
+ 0, 1, 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, 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 } }
#define CPU_LWP_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, \
- 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 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 } }
#define CPU_TBM_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, 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 } }
#define CPU_MOVBE_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, 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 } }
#define CPU_CX16_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, 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 } }
#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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#define CPU_EPT_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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 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, 1, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#define CPU_FSGSBASE_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, 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 } }
#define CPU_RDRND_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, 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 } }
#define CPU_F16C_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 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, 1, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 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, 1, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 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 } }
#define CPU_BMI2_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, 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 } }
#define CPU_RTM_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, 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 } }
#define CPU_INVPCID_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, \
- 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 } }
#define CPU_VMFUNC_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, 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, 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 } }
#define CPU_MPX_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, \
- 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, 0, 0, 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, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 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 } }
#define CPU_ADX_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, 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 } }
#define CPU_PRFCHW_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, 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 } }
#define CPU_SMAP_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, 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 } }
#define CPU_SHA_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 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, 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 } }
#define CPU_SHA512_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 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 } }
#define CPU_SM3_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 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 } }
#define CPU_SM4_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 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 } }
#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, 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 } }
#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, \
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#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, \
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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 } }
#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, 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 } }
#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, 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 } }
#define CPU_AVX512IFMA_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 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, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 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, 1, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 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, 1, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 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, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 0, 1, \
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 0, \
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 0, 0, 0, 0, 0, 0 } }
#define CPU_AVX512_4VNNIW_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 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, 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, 1, 0, 1, 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 } }
#define CPU_AVX512_VPOPCNTDQ_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 0, \
+ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 0, 0, 0, 0, 0, 0 } }
#define CPU_AVX512_VBMI2_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 1, 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, 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, 1, 0, 1, 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 } }
#define CPU_AVX512_VNNI_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 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, 0, \
- 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, 1, 0, 1, 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 } }
#define CPU_AVX512_BITALG_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 1, 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, 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, 1, 0, 1, 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 } }
#define CPU_AVX512_BF16_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 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, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 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, 0, \
- 0, 0, 0, 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, 1, 0, 1, 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 } }
#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, 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 } }
#define CPU_AVX_VNNI_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 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, 0, \
- 0, 0, 0, 0, 0, 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, 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 } }
#define CPU_AVX512_FP16_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 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, 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 } }
#define CPU_AVX_IFMA_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 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, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 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, 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 } }
#define CPU_AVX_VNNI_INT8_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 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, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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 } }
#define CPU_AVX_VNNI_INT16_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 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, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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 } }
#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, 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 } }
#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, 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 } }
#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, 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 } }
#define CPU_AVX_NE_CONVERT_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 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, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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 } }
#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, 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 } }
#define CPU_FRED_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, \
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#define CPU_LKGS_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1024,9 +1034,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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_USER_MSR_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1034,9 +1044,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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_MSR_IMM_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1044,9 +1054,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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_MOVRS_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1054,9 +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, \
- 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 } }
#define CPU_MWAITX_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1064,9 +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, 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 } }
#define CPU_CLZERO_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1074,19 +1084,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, 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 } }
#define CPU_OSPKE_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, \
- 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, 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 } }
#define CPU_RDPID_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1094,9 +1104,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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
@@ -1104,9 +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, 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 } }
#define CPU_IBT_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1114,9 +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, 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 } }
#define CPU_SHSTK_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1124,99 +1134,99 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 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 } }
#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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
#define CPU_AMX_TF32_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, \
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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 } }
#define CPU_AMX_FP8_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, \
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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 } }
#define CPU_AMX_MOVRS_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, \
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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 } }
#define CPU_AMX_AVX512_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 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, 1, 0, \
- 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 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, 1, \
- 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 1, 0, 0, 0 } }
+ 0, 0, 1, 1, 1, 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, 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, 1, 0, 1, 1, 0, 1, 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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 0, 0, 0, \
@@ -1225,28 +1235,28 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 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, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 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, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 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, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 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, \
@@ -1255,8 +1265,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_PCONFIG_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1265,8 +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, \
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_PBNDKB_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1275,8 +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, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_WAITPKG_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1285,8 +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, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 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_UINTR_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1295,8 +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, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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_CLDEMOTE_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1305,8 +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, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 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_MOVDIRI_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1315,8 +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, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 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_MOVDIR64B_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1325,8 +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, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 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_ENQCMD_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1335,8 +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, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 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_SERIALIZE_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1345,8 +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, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 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_RDPRU_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1355,8 +1365,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, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 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_MCOMMIT_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1365,28 +1375,28 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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_SEV_ES_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 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, 1, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_TSXLDTRK_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, 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, 1, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_KL_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
@@ -1395,8 +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, 0, 0, 0, 0, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_WIDEKL_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, \
@@ -1405,8 +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, 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, 1, 1, \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
@@ -1415,8 +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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_INVLPGB_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1426,7 +1436,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#define CPU_TLBSYNC_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1436,37 +1446,37 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#define CPU_SNP_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 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, 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, 1, 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_RMPQUERY_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 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, 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, 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 } }
#define CPU_RMPREAD_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 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, 1, 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, 1, 0, 0, 0, \
+ 0, 0, 0, 1, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1476,7 +1486,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 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 } }
#define CPU_387_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1486,7 +1496,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 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 } }
#define CPU_3DNOW_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
@@ -1496,7 +1506,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 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 } }
#define CPU_3DNOWA_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
@@ -1506,17 +1516,17 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 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, 1, 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, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 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, 1, 0, 0, 1, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 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 } }
#define CPU_HLE_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -1526,67 +1536,67 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 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 } }
#define CPU_AVX512F_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 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, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 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, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 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, 1, 0, 0, 1, 0, 1, 1, 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, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 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, 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 } }
#define CPU_APX_F_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, \
- 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, 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 } }
#define CPU_AVX10_2_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 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, 1, 0, \
- 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 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, 1, \
+ 0, 0, 1, 1, 1, 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, 1, 0, 1, 1, 0, 1, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0 } }
#define CPU_AMX_TRANSPOSE_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, \
- 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, 1, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 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, \
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, \
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
- 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
+ 1, 1, 1, 0, 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, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0 } }
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, \
@@ -1596,7 +1606,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 1, 1, 1, 0, 0, 0, \
@@ -1606,7 +1616,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 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, 1, 0, 0, 1, 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, \
@@ -1616,7 +1626,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, \
@@ -1626,7 +1636,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 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 } }
#define CPU_P2_FLAGS \
{ { 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, \
@@ -1636,7 +1646,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 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 } }
#define CPU_P3_FLAGS \
{ { 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, \
@@ -1646,7 +1656,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 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 } }
#define CPU_P4_FLAGS \
{ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, \
@@ -1656,47 +1666,47 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 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 } }
#define CPU_NOCONA_FLAGS \
{ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 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, 0, 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, 1, 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 } }
#define CPU_CORE_FLAGS \
{ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 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, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 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 } }
#define CPU_CORE2_FLAGS \
{ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 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, 1, 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, 1, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 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, 1, 0, 0, 1, 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, 1, 1, 1, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 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, 0, 1, 0, 0, 1, 1, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 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, 1, 0, 0, 1, 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, 0, 1, 0, 0, 0, 0, 0, \
@@ -1706,7 +1716,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 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 } }
#define CPU_K6_2_FLAGS \
{ { 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, \
@@ -1716,7 +1726,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 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, 1, 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, 1, 0, 1, 0, 0, 0, 0, 0, \
@@ -1726,177 +1736,177 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 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, 1, 1, 1, 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, 1, 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, 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, 1, 1, 1, 1, 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 } }
#define CPU_AMDFAM10_FLAGS \
{ { 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 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, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 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 } }
+ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 1, 0, 0, \
- 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, \
- 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 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, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, \
+ 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
#define CPU_BDVER2_FLAGS \
{ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, \
- 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, \
- 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 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, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, \
+ 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
#define CPU_BDVER3_FLAGS \
{ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, \
- 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, \
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 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, \
+ 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, \
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
#define CPU_BDVER4_FLAGS \
{ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, \
- 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 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, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 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, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 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, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
#define CPU_ZNVER1_FLAGS \
{ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, \
- 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 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, 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, 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, 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, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
#define CPU_ZNVER2_FLAGS \
{ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, \
- 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, \
+ 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 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, 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, 0, 0, 1, 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, 1, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 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, 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, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
#define CPU_ZNVER3_FLAGS \
{ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, \
- 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 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, \
- 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, \
+ 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 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, 1, 0, 0, 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, 0, 0, 1, 1, 1, 1, 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, 1, 1, 1, 0, 0, 0, 0, \
- 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 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, 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, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
#define CPU_ZNVER4_FLAGS \
{ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, \
- 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, \
- 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, \
- 1, 0, 0, 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, 0, 0, 0, 1, 1, 1, 1, 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, \
- 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, \
+ 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, \
+ 0, 1, 0, 0, 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, 0, 0, 0, 1, 1, 1, 1, 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, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0 } }
#define CPU_ZNVER5_FLAGS \
{ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, \
- 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, \
- 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, \
- 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, \
- 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 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, 0, 0, 0, \
- 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, \
- 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, \
+ 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, \
+ 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, \
+ 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 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, 0, 0, \
+ 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, \
+ 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0 } }
#define CPU_BTVER1_FLAGS \
{ { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, \
- 0, 0, 0, 1, 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, 1, 1, 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, 1, 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, 1, 1, 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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 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, 1, 0, 0, 1, 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, 1, 1, 1, 1, 1, 1, 0, 0, \
- 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, \
- 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 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, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, \
+ 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 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, \
- 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, 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 } }
#define CPU_AVX10_1_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 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, 1, 0, \
- 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 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, 1, \
+ 0, 0, 1, 1, 1, 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, 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 } }
#define CPU_TSX_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, 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, 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 } }
#define CPU_ANY_FXSR_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, \
+ 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, \
@@ -1906,7 +1916,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 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, 1, 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, 1, 1, 0, 0, 0, 0, 0, 0, \
@@ -1916,7 +1926,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, \
@@ -1926,7 +1936,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, \
@@ -1936,567 +1946,577 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 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, 1, 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, 1, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, \
+ 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 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, 1, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, \
+ 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 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, 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, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
#define CPU_ANY_PADLOCK_FLAGS \
- { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
#define CPU_ANY_PADLOCKRNG2_FLAGS \
- { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_PADLOCKPHE2_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_PADLOCKXMODX_FLAGS \
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
- 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, 1, 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, 1, 0, 0, 0, \
+ 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
- 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 1, 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, 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, \
- 0, 0, 0, 0, 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, 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, \
- 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, 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 } }
#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, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#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, 1, 1, 1, 1, 1, 1, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 1, 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, 1, 1, 0, 1, 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, 0, 0, 0, 0, 1, \
+ 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, 1, 1, 0, 1, 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, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 1, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#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, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#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, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 1, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 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, 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, 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, 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, 1, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#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, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#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, 0, \
- 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, \
- 0, 0, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 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, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 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, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_PCLMULQDQ_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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 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 } }
#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, \
0, 0, 0, 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, 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 } }
#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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 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 } }
#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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 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 } }
#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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_ANY_VMFUNC_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, 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 } }
#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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 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 } }
#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, 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 } }
#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, 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 } }
#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, 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 } }
#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, 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 } }
#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, 1, 1, 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 } }
#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, 1, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 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, 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, 1, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 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 } }
#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, \
- 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 } }
#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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 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, 1, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 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, 1, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#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, 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 } }
#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, 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 } }
#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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 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, 1, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#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, 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 } }
#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, 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 } }
#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, 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 } }
#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, 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 } }
#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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#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, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
+ 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 } }
#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, \
@@ -2504,9 +2524,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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
@@ -2514,9 +2534,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, 1, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
@@ -2524,9 +2544,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, 1, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
@@ -2534,9 +2554,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, 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 } }
#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, \
@@ -2544,9 +2564,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, 1, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_TF32_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2554,9 +2574,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, 1, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_FP8_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2564,9 +2584,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, 1, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_MOVRS_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2574,9 +2594,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, 1, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_AVX512_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2584,9 +2604,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, 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 } }
#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, \
@@ -2594,9 +2614,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, 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, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, \
@@ -2605,8 +2625,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
@@ -2615,8 +2635,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
@@ -2625,8 +2645,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
@@ -2635,8 +2655,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, 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, 1, 0, 0, 0, \
+ 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
@@ -2645,8 +2665,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, 1, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_ANY_KL_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2655,8 +2675,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, 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, 1, 1, \
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
@@ -2665,8 +2685,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, 1, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_ANY_SNP_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2676,7 +2696,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 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, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, \
@@ -2686,7 +2706,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#define CPU_ANY_RMPREAD_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2696,7 +2716,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 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 } }
#define CPU_ANY_287_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, \
@@ -2706,7 +2726,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 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, 1, 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, 1, 1, 0, 0, 0, 0, 0, 0, \
@@ -2716,7 +2736,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 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 } }
#define CPU_ANY_3DNOW_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2726,7 +2746,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 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, 1, 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, \
@@ -2736,37 +2756,37 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 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 } }
#define CPU_ANY_64_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, 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, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, \
- 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 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, 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, 1, 0, 0, 0, 1, 0, 1, 0, 0, \
+ 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 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, 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, 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, 0, 0, 0, 0, 1, 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, 1, 0, 1, 1, 0, 1, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 0, 0, 0, 0, 1, \
+ 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, 1, 0, 1, 1, 0, 1, 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, 1, 1, 1, 1, 1, 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, 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, 1, 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, 1, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 1, 1, 0, 1, 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, \
@@ -2774,9 +2794,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, 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, 1, 0, 1, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0 } }
#define CPU_ANY_APX_F_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2786,7 +2806,7 @@
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
#define CPU_ANY_AVX10_2_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2794,9 +2814,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, 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, 1, 0, 0, 0 } }
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }
#define CPU_ANY_AMX_TRANSPOSE_FLAGS \
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
@@ -2806,5 +2826,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } }
diff --git a/opcodes/i386-mnem.h b/opcodes/i386-mnem.h
index 1dcda7b..3e69415 100644
--- a/opcodes/i386-mnem.h
+++ b/opcodes/i386-mnem.h
@@ -62,2567 +62,2570 @@ extern const char i386_mnemonics[];
#define MN_vsm3msg2 0x16f
#define MN_sha256msg2 0x178
#define MN_push2 0x183
-#define MN_sm2 0x189
-#define MN_fldln2 0x18d
-#define MN_pop2 0x194
-#define MN_vsha512rnds2 0x199
-#define MN_vsm3rnds2 0x1a6
-#define MN_sha256rnds2 0x1b0
-#define MN_prefetcht2 0x1bc
-#define MN_pfrcpit2 0x1c7
-#define MN_prefetchrst2 0x1d0
-#define MN_vbroadcastf32x2 0x1dd
-#define MN_vbroadcasti32x2 0x1ed
-#define MN_vshuff64x2 0x1fd
-#define MN_vextractf64x2 0x208
-#define MN_vinsertf64x2 0x216
-#define MN_vbroadcastf64x2 0x223
-#define MN_vshufi64x2 0x233
-#define MN_vextracti64x2 0x23e
-#define MN_vinserti64x2 0x24c
-#define MN_vbroadcasti64x2 0x259
-#define MN_sm3 0x269
-#define MN_int3 0x26d
-#define MN_vmovdqa64 0x272
-#define MN_xsavec64 0x27c
+#define MN_montmul2 0x189
+#define MN_sm2 0x192
+#define MN_fldln2 0x196
+#define MN_pop2 0x19d
+#define MN_vsha512rnds2 0x1a2
+#define MN_vsm3rnds2 0x1af
+#define MN_sha256rnds2 0x1b9
+#define MN_prefetcht2 0x1c5
+#define MN_pfrcpit2 0x1d0
+#define MN_prefetchrst2 0x1d9
+#define MN_vbroadcastf32x2 0x1e6
+#define MN_vbroadcasti32x2 0x1f6
+#define MN_vshuff64x2 0x206
+#define MN_vextractf64x2 0x211
+#define MN_vinsertf64x2 0x21f
+#define MN_vbroadcastf64x2 0x22c
+#define MN_vshufi64x2 0x23c
+#define MN_vextracti64x2 0x247
+#define MN_vinserti64x2 0x255
+#define MN_vbroadcasti64x2 0x262
+#define MN_sm3 0x272
+#define MN_int3 0x276
+#define MN_vmovdqa64 0x27b
+#define MN_xsavec64 0x285
#define MN_xsave64 (MN_fxsave64 + 1)
-#define MN_fxsave64 0x285
-#define MN_endbr64 0x28e
+#define MN_fxsave64 0x28e
+#define MN_endbr64 0x297
#define MN_xrstor64 (MN_fxrstor64 + 1)
-#define MN_fxrstor64 0x296
-#define MN_xsaves64 0x2a0
-#define MN_xrstors64 0x2a9
-#define MN_xsaveopt64 0x2b3
-#define MN_vmovdqu64 0x2be
-#define MN_rex64 0x2c8
-#define MN_xsha384 0x2ce
-#define MN_sm4 0x2d6
-#define MN_sha1rnds4 0x2da
-#define MN_vsm4rnds4 0x2e4
-#define MN_vshuff32x4 0x2ee
-#define MN_vextractf32x4 0x2f9
-#define MN_vinsertf32x4 0x307
-#define MN_vbroadcastf32x4 0x314
-#define MN_vshufi32x4 0x324
-#define MN_vextracti32x4 0x32f
-#define MN_vinserti32x4 0x33d
-#define MN_vbroadcasti32x4 0x34a
-#define MN_vextractf64x4 0x35a
-#define MN_vinsertf64x4 0x368
-#define MN_vbroadcastf64x4 0x375
-#define MN_vextracti64x4 0x385
-#define MN_vinserti64x4 0x393
-#define MN_vbroadcasti64x4 0x3a0
-#define MN_vsm4key4 0x3b0
-#define MN_data16 0x3b9
-#define MN_vfmsub231bf16 0x3c0
-#define MN_vfnmsub231bf16 0x3ce
-#define MN_vfmadd231bf16 0x3dd
-#define MN_vfnmadd231bf16 0x3eb
-#define MN_vfmsub132bf16 0x3fa
-#define MN_vfnmsub132bf16 0x408
-#define MN_vfmadd132bf16 0x417
-#define MN_vfnmadd132bf16 0x425
-#define MN_vcvtne2ps2bf16 0x434
-#define MN_vcvtneps2bf16 0x443
-#define MN_vfmsub213bf16 0x451
-#define MN_vfnmsub213bf16 0x45f
-#define MN_vfmadd213bf16 0x46e
-#define MN_vfnmadd213bf16 0x47c
-#define MN_vsubbf16 0x48b
-#define MN_vaddbf16 0x494
-#define MN_vreducebf16 0x49d
-#define MN_vrndscalebf16 0x4a9
-#define MN_vscalefbf16 0x4b7
-#define MN_vmulbf16 0x4c3
-#define MN_vminbf16 0x4cc
-#define MN_vrcpbf16 0x4d5
-#define MN_vcmpbf16 0x4de
-#define MN_vgetexpbf16 0x4e7
-#define MN_vcomisbf16 0x4f3
-#define MN_vfpclassbf16 0x4fe
-#define MN_vgetmantbf16 0x50b
-#define MN_vrsqrtbf16 0x518
-#define MN_vsqrtbf16 0x523
-#define MN_vdivbf16 0x52d
-#define MN_vminmaxbf16 0x536
-#define MN_vmaxbf16 0x542
-#define MN_tconjtfp16 0x54b
-#define MN_addr16 0x556
-#define MN_vmovdqu16 0x55d
-#define MN_xsha256 0x567
-#define MN_encodekey256 0x56f
-#define MN_vperm2f128 0x57c
-#define MN_vextractf128 0x587
-#define MN_vinsertf128 0x594
-#define MN_vbroadcastf128 0x5a0
-#define MN_vperm2i128 0x5af
-#define MN_vextracti128 0x5ba
-#define MN_vinserti128 0x5c7
-#define MN_vbroadcasti128 0x5d3
-#define MN_encodekey128 0x5e2
-#define MN_vcvt2ph2bf8 0x5ef
-#define MN_vcvtbiasph2bf8 0x5fb
-#define MN_vcvtph2bf8 0x60a
-#define MN_vcvt2ph2hf8 0x615
-#define MN_vcvtbiasph2hf8 0x621
-#define MN_vcvtph2hf8 0x630
-#define MN_vmovdqu8 0x63b
-#define MN_vextractf32x8 0x644
-#define MN_vinsertf32x8 0x652
-#define MN_vbroadcastf32x8 0x65f
-#define MN_vextracti32x8 0x66f
-#define MN_vinserti32x8 0x67d
-#define MN_vbroadcasti32x8 0x68a
-#define MN_ud2a 0x69a
-#define MN_aaa 0x69f
-#define MN_daa 0x6a3
-#define MN_ssca 0x6a7
-#define MN_lea 0x6ac
-#define MN_invlpga 0x6b0
-#define MN_pusha 0x6b8
-#define MN_ja 0x6be
-#define MN_jna 0x6c1
-#define MN_ccmpna 0x6c5
-#define MN_setna 0x6cc
-#define MN_ctestna 0x6d2
-#define MN_setzuna 0x6da
+#define MN_fxrstor64 0x29f
+#define MN_xsaves64 0x2a9
+#define MN_xrstors64 0x2b2
+#define MN_xsaveopt64 0x2bc
+#define MN_vmovdqu64 0x2c7
+#define MN_rex64 0x2d1
+#define MN_xsha384 0x2d7
+#define MN_sm4 0x2df
+#define MN_sha1rnds4 0x2e3
+#define MN_vsm4rnds4 0x2ed
+#define MN_vshuff32x4 0x2f7
+#define MN_vextractf32x4 0x302
+#define MN_vinsertf32x4 0x310
+#define MN_vbroadcastf32x4 0x31d
+#define MN_vshufi32x4 0x32d
+#define MN_vextracti32x4 0x338
+#define MN_vinserti32x4 0x346
+#define MN_vbroadcasti32x4 0x353
+#define MN_vextractf64x4 0x363
+#define MN_vinsertf64x4 0x371
+#define MN_vbroadcastf64x4 0x37e
+#define MN_vextracti64x4 0x38e
+#define MN_vinserti64x4 0x39c
+#define MN_vbroadcasti64x4 0x3a9
+#define MN_vsm4key4 0x3b9
+#define MN_data16 0x3c2
+#define MN_vfmsub231bf16 0x3c9
+#define MN_vfnmsub231bf16 0x3d7
+#define MN_vfmadd231bf16 0x3e6
+#define MN_vfnmadd231bf16 0x3f4
+#define MN_vfmsub132bf16 0x403
+#define MN_vfnmsub132bf16 0x411
+#define MN_vfmadd132bf16 0x420
+#define MN_vfnmadd132bf16 0x42e
+#define MN_vcvtne2ps2bf16 0x43d
+#define MN_vcvtneps2bf16 0x44c
+#define MN_vfmsub213bf16 0x45a
+#define MN_vfnmsub213bf16 0x468
+#define MN_vfmadd213bf16 0x477
+#define MN_vfnmadd213bf16 0x485
+#define MN_vsubbf16 0x494
+#define MN_vaddbf16 0x49d
+#define MN_vreducebf16 0x4a6
+#define MN_vrndscalebf16 0x4b2
+#define MN_vscalefbf16 0x4c0
+#define MN_vmulbf16 0x4cc
+#define MN_vminbf16 0x4d5
+#define MN_vrcpbf16 0x4de
+#define MN_vcmpbf16 0x4e7
+#define MN_vgetexpbf16 0x4f0
+#define MN_vcomisbf16 0x4fc
+#define MN_vfpclassbf16 0x507
+#define MN_vgetmantbf16 0x514
+#define MN_vrsqrtbf16 0x521
+#define MN_vsqrtbf16 0x52c
+#define MN_vdivbf16 0x536
+#define MN_vminmaxbf16 0x53f
+#define MN_vmaxbf16 0x54b
+#define MN_tconjtfp16 0x554
+#define MN_addr16 0x55f
+#define MN_vmovdqu16 0x566
+#define MN_xsha256 0x570
+#define MN_encodekey256 0x578
+#define MN_vperm2f128 0x585
+#define MN_vextractf128 0x590
+#define MN_vinsertf128 0x59d
+#define MN_vbroadcastf128 0x5a9
+#define MN_vperm2i128 0x5b8
+#define MN_vextracti128 0x5c3
+#define MN_vinserti128 0x5d0
+#define MN_vbroadcasti128 0x5dc
+#define MN_encodekey128 0x5eb
+#define MN_vcvt2ph2bf8 0x5f8
+#define MN_vcvtbiasph2bf8 0x604
+#define MN_vcvtph2bf8 0x613
+#define MN_vcvt2ph2hf8 0x61e
+#define MN_vcvtbiasph2hf8 0x62a
+#define MN_vcvtph2hf8 0x639
+#define MN_vmovdqu8 0x644
+#define MN_vextractf32x8 0x64d
+#define MN_vinsertf32x8 0x65b
+#define MN_vbroadcastf32x8 0x668
+#define MN_vextracti32x8 0x678
+#define MN_vinserti32x8 0x686
+#define MN_vbroadcasti32x8 0x693
+#define MN_ud2a 0x6a3
+#define MN_aaa 0x6a8
+#define MN_daa 0x6ac
+#define MN_ssca 0x6b0
+#define MN_lea 0x6b5
+#define MN_invlpga 0x6b9
+#define MN_pusha 0x6c1
+#define MN_ja 0x6c7
+#define MN_jna 0x6ca
+#define MN_ccmpna 0x6ce
+#define MN_setna 0x6d5
+#define MN_ctestna 0x6db
+#define MN_setzuna 0x6e3
#define MN_cmovna (MN_fcmovna + 1)
#define MN_fcmovna (MN_cfcmovna + 1)
-#define MN_cfcmovna 0x6e2
-#define MN_ccmpa 0x6eb
-#define MN_popa 0x6f1
+#define MN_cfcmovna 0x6eb
+#define MN_ccmpa 0x6f4
+#define MN_popa 0x6fa
#define MN_movntdqa (MN_vmovntdqa + 1)
-#define MN_vmovntdqa 0x6f6
+#define MN_vmovntdqa 0x6ff
#define MN_movdqa (MN_vmovdqa + 1)
-#define MN_vmovdqa 0x700
-#define MN_seta 0x708
-#define MN_prefetchnta 0x70d
-#define MN_ctesta 0x719
-#define MN_setzua 0x720
+#define MN_vmovdqa 0x709
+#define MN_seta 0x711
+#define MN_prefetchnta 0x716
+#define MN_ctesta 0x722
+#define MN_setzua 0x729
#define MN_cmova (MN_fcmova + 1)
#define MN_fcmova (MN_cfcmova + 1)
-#define MN_cfcmova 0x727
-#define MN_rex_b 0x72f
-#define MN_ud2b 0x735
-#define MN_vpermi2b 0x73a
-#define MN_vpmovm2b 0x743
-#define MN_vpermt2b 0x74c
-#define MN_movdir64b 0x755
-#define MN_cmpxchg16b 0x75f
-#define MN_cmpxchg8b 0x76a
-#define MN_vpshab 0x774
-#define MN_sbb 0x77b
+#define MN_cfcmova 0x730
+#define MN_rex_b 0x738
+#define MN_ud2b 0x73e
+#define MN_vpermi2b 0x743
+#define MN_vpmovm2b 0x74c
+#define MN_vpermt2b 0x755
+#define MN_movdir64b 0x75e
+#define MN_cmpxchg16b 0x768
+#define MN_cmpxchg8b 0x773
+#define MN_vpshab 0x77d
+#define MN_sbb 0x784
#define MN_psubb (MN_vpsubb + 1)
-#define MN_vpsubb 0x77f
-#define MN_xcrypt_ecb 0x786
-#define MN_xcryptecb 0x791
-#define MN_llwpcb 0x79b
-#define MN_slwpcb 0x7a2
-#define MN_kaddb 0x7a9
+#define MN_vpsubb 0x788
+#define MN_xcrypt_ecb 0x78f
+#define MN_xcryptecb 0x79a
+#define MN_llwpcb 0x7a4
+#define MN_slwpcb 0x7ab
+#define MN_kaddb 0x7b2
#define MN_paddb (MN_vpaddb + 1)
-#define MN_vpaddb 0x7af
-#define MN_kandb 0x7b6
-#define MN_vpexpandb 0x7bc
-#define MN_vpmovusdb 0x7c6
-#define MN_vpmovsdb 0x7d0
-#define MN_vpmovdb 0x7d9
-#define MN_vpcomgeb 0x7e1
-#define MN_vpcomleb 0x7ea
-#define MN_vpcmpnleb 0x7f3
-#define MN_vpcmpleb 0x7fd
-#define MN_vpcomfalseb 0x806
-#define MN_vpcomtrueb 0x812
-#define MN_xcrypt_cfb 0x81d
-#define MN_xcryptcfb 0x828
-#define MN_xcrypt_ofb 0x832
-#define MN_xcryptofb 0x83d
+#define MN_vpaddb 0x7b8
+#define MN_kandb 0x7bf
+#define MN_vpexpandb 0x7c5
+#define MN_vpmovusdb 0x7cf
+#define MN_vpmovsdb 0x7d9
+#define MN_vpmovdb 0x7e2
+#define MN_vpcomgeb 0x7ea
+#define MN_vpcomleb 0x7f3
+#define MN_vpcmpnleb 0x7fc
+#define MN_vpcmpleb 0x806
+#define MN_vpcomfalseb 0x80f
+#define MN_vpcomtrueb 0x81b
+#define MN_xcrypt_cfb 0x826
+#define MN_xcryptcfb 0x831
+#define MN_xcrypt_ofb 0x83b
+#define MN_xcryptofb 0x846
#define MN_pshufb (MN_vpshufb + 1)
-#define MN_vpshufb 0x847
-#define MN_invlpgb 0x84f
+#define MN_vpshufb 0x850
+#define MN_invlpgb 0x858
#define MN_pavgb (MN_vpavgb + 1)
-#define MN_vpavgb 0x857
-#define MN_jb 0x85e
-#define MN_pbndkb 0x861
+#define MN_vpavgb 0x860
+#define MN_jb 0x867
+#define MN_pbndkb 0x86a
#define MN_pmovmskb (MN_vpmovmskb + 1)
-#define MN_vpmovmskb 0x868
-#define MN_vpshlb 0x872
-#define MN_kshiftlb 0x879
+#define MN_vpmovmskb 0x871
+#define MN_vpshlb 0x87b
+#define MN_kshiftlb 0x882
#define MN_gf2p8mulb (MN_vgf2p8mulb + 1)
-#define MN_vgf2p8mulb 0x882
-#define MN_vpblendmb 0x88d
-#define MN_vptestnmb 0x897
-#define MN_vpcomb 0x8a1
-#define MN_vpshufbitqmb 0x8a8
-#define MN_vpermb 0x8b5
-#define MN_vptestmb 0x8bc
-#define MN_kandnb 0x8c5
+#define MN_vgf2p8mulb 0x88b
+#define MN_vpblendmb 0x896
+#define MN_vptestnmb 0x8a0
+#define MN_vpcomb 0x8aa
+#define MN_vpshufbitqmb 0x8b1
+#define MN_vpermb 0x8be
+#define MN_vptestmb 0x8c5
+#define MN_kandnb 0x8ce
#define MN_psignb (MN_vpsignb + 1)
-#define MN_vpsignb 0x8cc
-#define MN_jnb 0x8d4
-#define MN_ccmpnb 0x8d8
-#define MN_setnb 0x8df
-#define MN_ctestnb 0x8e5
-#define MN_setzunb 0x8ed
+#define MN_vpsignb 0x8d5
+#define MN_jnb 0x8dd
+#define MN_ccmpnb 0x8e1
+#define MN_setnb 0x8e8
+#define MN_ctestnb 0x8ee
+#define MN_setzunb 0x8f6
#define MN_cmovnb (MN_fcmovnb + 1)
#define MN_fcmovnb (MN_cfcmovnb + 1)
-#define MN_cfcmovnb 0x8f5
-#define MN_ccmpb 0x8fe
-#define MN_vpcmpb 0x904
-#define MN_vpcomeqb 0x90b
+#define MN_cfcmovnb 0x8fe
+#define MN_ccmpb 0x907
+#define MN_vpcmpb 0x90d
+#define MN_vpcomeqb 0x914
#define MN_gf2p8affineqb (MN_vgf2p8affineqb + 1)
-#define MN_vgf2p8affineqb 0x914
-#define MN_vpcomneqb 0x923
-#define MN_vpcmpneqb 0x92d
+#define MN_vgf2p8affineqb 0x91d
+#define MN_vpcomneqb 0x92c
+#define MN_vpcmpneqb 0x936
#define MN_pcmpeqb (MN_vpcmpeqb + 1)
-#define MN_vpcmpeqb 0x937
-#define MN_vpmovusqb 0x940
-#define MN_vpmovsqb 0x94a
-#define MN_vpmultishiftqb 0x953
+#define MN_vpcmpeqb 0x940
+#define MN_vpmovusqb 0x949
+#define MN_vpmovsqb 0x953
+#define MN_vpmultishiftqb 0x95c
#define MN_gf2p8affineinvqb (MN_vgf2p8affineinvqb + 1)
-#define MN_vgf2p8affineinvqb 0x962
-#define MN_vpmovqb 0x974
-#define MN_rex_rb 0x97c
-#define MN_korb 0x983
-#define MN_kxnorb 0x988
-#define MN_kxorb 0x98f
+#define MN_vgf2p8affineinvqb 0x96b
+#define MN_vpmovqb 0x97d
+#define MN_rex_rb 0x985
+#define MN_korb 0x98c
+#define MN_kxnorb 0x991
+#define MN_kxorb 0x998
#define MN_pinsrb (MN_vpinsrb + 1)
-#define MN_vpinsrb 0x995
-#define MN_kshiftrb 0x99d
+#define MN_vpinsrb 0x99e
+#define MN_kshiftrb 0x9a6
#define MN_pextrb (MN_vpextrb + 1)
-#define MN_vpextrb 0x9a6
-#define MN_rex_wrb 0x9ae
+#define MN_vpextrb 0x9af
+#define MN_rex_wrb 0x9b7
#define MN_pabsb (MN_vpabsb + 1)
-#define MN_vpabsb 0x9b6
+#define MN_vpabsb 0x9bf
#define MN_psubsb (MN_vpsubsb + 1)
-#define MN_vpsubsb 0x9bd
+#define MN_vpsubsb 0x9c6
#define MN_paddsb (MN_vpaddsb + 1)
-#define MN_vpaddsb 0x9c5
+#define MN_vpaddsb 0x9ce
#define MN_pminsb (MN_vpminsb + 1)
-#define MN_vpminsb 0x9cd
-#define MN_vmovrsb 0x9d5
-#define MN_vpcompressb 0x9dd
+#define MN_vpminsb 0x9d6
+#define MN_vmovrsb 0x9de
+#define MN_vpcompressb 0x9e6
#define MN_psubusb (MN_vpsubusb + 1)
-#define MN_vpsubusb 0x9e9
+#define MN_vpsubusb 0x9f2
#define MN_paddusb (MN_vpaddusb + 1)
-#define MN_vpaddusb 0x9f2
-#define MN_pavgusb 0x9fb
-#define MN_movsb 0xa03
+#define MN_vpaddusb 0x9fb
+#define MN_pavgusb 0xa04
+#define MN_movsb 0xa0c
#define MN_pmaxsb (MN_vpmaxsb + 1)
-#define MN_vpmaxsb 0xa09
-#define MN_setb 0xa11
-#define MN_vpcomgtb 0xa16
+#define MN_vpmaxsb 0xa12
+#define MN_setb 0xa1a
+#define MN_vpcomgtb 0xa1f
#define MN_pcmpgtb (MN_vpcmpgtb + 1)
-#define MN_vpcmpgtb 0xa1f
-#define MN_vpcomltb 0xa28
-#define MN_vpcmpnltb 0xa31
-#define MN_vpcmpltb 0xa3b
-#define MN_vpopcntb 0xa44
-#define MN_knotb 0xa4d
-#define MN_vprotb 0xa53
-#define MN_vpbroadcastb 0xa5a
-#define MN_ctestb 0xa67
-#define MN_ktestb 0xa6e
-#define MN_kortestb 0xa75
-#define MN_vpcomgeub 0xa7e
-#define MN_vpcomleub 0xa88
-#define MN_vpcmpnleub 0xa92
-#define MN_vpcmpleub 0xa9d
-#define MN_vpcomfalseub 0xaa7
-#define MN_vpcomtrueub 0xab4
-#define MN_vpcomub 0xac0
+#define MN_vpcmpgtb 0xa28
+#define MN_vpcomltb 0xa31
+#define MN_vpcmpnltb 0xa3a
+#define MN_vpcmpltb 0xa44
+#define MN_vpopcntb 0xa4d
+#define MN_knotb 0xa56
+#define MN_vprotb 0xa5c
+#define MN_vpbroadcastb 0xa63
+#define MN_ctestb 0xa70
+#define MN_ktestb 0xa77
+#define MN_kortestb 0xa7e
+#define MN_vpcomgeub 0xa87
+#define MN_vpcomleub 0xa91
+#define MN_vpcmpnleub 0xa9b
+#define MN_vpcmpleub 0xaa6
+#define MN_vpcomfalseub 0xab0
+#define MN_vpcomtrueub 0xabd
+#define MN_vpcomub 0xac9
#define MN_pminub (MN_vpminub + 1)
-#define MN_vpminub 0xac8
-#define MN_vpcmpub 0xad0
-#define MN_vpcomequb 0xad8
-#define MN_vpcomnequb 0xae2
-#define MN_vpcmpnequb 0xaed
-#define MN_vpcmpequb 0xaf8
+#define MN_vpminub 0xad1
+#define MN_vpcmpub 0xad9
+#define MN_vpcomequb 0xae1
+#define MN_vpcomnequb 0xaeb
+#define MN_vpcmpnequb 0xaf6
+#define MN_vpcmpequb 0xb01
#define MN_sub (MN_fsub + 1)
#define MN_fsub (MN_pfsub + 1)
-#define MN_pfsub 0xb02
-#define MN_fisub 0xb08
-#define MN_vpcomgtub 0xb0e
-#define MN_vpcomltub 0xb18
-#define MN_vpcmpnltub 0xb22
-#define MN_vpcmpltub 0xb2d
+#define MN_pfsub 0xb0b
+#define MN_fisub 0xb11
+#define MN_vpcomgtub 0xb17
+#define MN_vpcomltub 0xb21
+#define MN_vpcmpnltub 0xb2b
+#define MN_vpcmpltub 0xb36
#define MN_pmaxub (MN_vpmaxub + 1)
-#define MN_vpmaxub 0xb37
-#define MN_setzub 0xb3f
+#define MN_vpmaxub 0xb40
+#define MN_setzub 0xb48
#define MN_pblendvb (MN_vpblendvb + 1)
-#define MN_vpblendvb 0xb46
+#define MN_vpblendvb 0xb4f
#define MN_cmovb (MN_fcmovb + 1)
#define MN_fcmovb (MN_cfcmovb + 1)
-#define MN_cfcmovb 0xb50
-#define MN_kmovb 0xb58
-#define MN_rex_wb 0xb5e
-#define MN_clwb 0xb65
+#define MN_cfcmovb 0xb59
+#define MN_kmovb 0xb61
+#define MN_rex_wb 0xb67
+#define MN_clwb 0xb6e
#define MN_packsswb (MN_vpacksswb + 1)
-#define MN_vpacksswb 0xb6a
+#define MN_vpacksswb 0xb73
#define MN_packuswb (MN_vpackuswb + 1)
-#define MN_vpackuswb 0xb74
-#define MN_vpmovuswb 0xb7e
-#define MN_vpmovswb 0xb88
-#define MN_vpmovwb 0xb91
-#define MN_rex_xb 0xb99
-#define MN_rex_rxb 0xba0
-#define MN_rex_wrxb 0xba8
-#define MN_rex_wxb 0xbb1
-#define MN_movzb 0xbb9
-#define MN_clac 0xbbf
-#define MN_stac 0xbc4
-#define MN_xcrypt_cbc 0xbc9
-#define MN_xcryptcbc 0xbd4
-#define MN_pfacc 0xbde
-#define MN_pfnacc 0xbe4
-#define MN_pfpnacc 0xbeb
-#define MN_adc 0xbf3
+#define MN_vpackuswb 0xb7d
+#define MN_vpmovuswb 0xb87
+#define MN_vpmovswb 0xb91
+#define MN_vpmovwb 0xb9a
+#define MN_rex_xb 0xba2
+#define MN_rex_rxb 0xba9
+#define MN_rex_wrxb 0xbb1
+#define MN_rex_wxb 0xbba
+#define MN_movzb 0xbc2
+#define MN_clac 0xbc8
+#define MN_stac 0xbcd
+#define MN_xcrypt_cbc 0xbd2
+#define MN_xcryptcbc 0xbdd
+#define MN_pfacc 0xbe7
+#define MN_pfnacc 0xbed
+#define MN_pfpnacc 0xbf4
+#define MN_adc 0xbfc
#define MN_dec (MN_aesdec + 3)
#define MN_aesdec (MN_vaesdec + 1)
-#define MN_vaesdec 0xbf7
-#define MN_getsec 0xbff
-#define MN_xsavec 0xc06
-#define MN_blcic 0xc0d
-#define MN_blsic 0xc13
-#define MN_jc 0xc19
-#define MN_t1mskc 0xc1c
-#define MN_clc 0xc23
-#define MN_cmc 0xc27
+#define MN_vaesdec 0xc00
+#define MN_getsec 0xc08
+#define MN_xsavec 0xc0f
+#define MN_blcic 0xc16
+#define MN_blsic 0xc1c
+#define MN_jc 0xc22
+#define MN_t1mskc 0xc25
+#define MN_clc 0xc2c
+#define MN_cmc 0xc30
#define MN_aesimc (MN_vaesimc + 1)
-#define MN_vaesimc 0xc2b
-#define MN_rdpmc 0xc33
+#define MN_vaesimc 0xc34
+#define MN_rdpmc 0xc3c
#define MN_aesenc (MN_vaesenc + 1)
-#define MN_vaesenc 0xc39
-#define MN_inc 0xc41
-#define MN_jnc 0xc45
-#define MN_ccmpnc 0xc49
-#define MN_setnc 0xc50
-#define MN_ctestnc 0xc56
-#define MN_vmfunc 0xc5e
-#define MN_setzunc 0xc65
+#define MN_vaesenc 0xc42
+#define MN_inc 0xc4a
+#define MN_jnc 0xc4e
+#define MN_ccmpnc 0xc52
+#define MN_setnc 0xc59
+#define MN_ctestnc 0xc5f
+#define MN_vmfunc 0xc67
+#define MN_setzunc 0xc6e
#define MN_cmovnc (MN_cfcmovnc + 2)
-#define MN_cfcmovnc 0xc6d
-#define MN_tlbsync 0xc76
-#define MN_ccmpc 0xc7e
-#define MN_rdtsc 0xc84
-#define MN_btc 0xc8a
-#define MN_setc 0xc8e
+#define MN_cfcmovnc 0xc76
+#define MN_tlbsync 0xc7f
+#define MN_ccmpc 0xc87
+#define MN_rdtsc 0xc8d
+#define MN_btc 0xc93
+#define MN_setc 0xc97
#define MN_stc (MN_ctestc + 3)
-#define MN_ctestc 0xc93
-#define MN_setzuc 0xc9a
+#define MN_ctestc 0xc9c
+#define MN_setzuc 0xca3
#define MN_cmovc (MN_cfcmovc + 2)
-#define MN_cfcmovc 0xca1
-#define MN_vpermi2d 0xca9
-#define MN_vpmovm2d 0xcb2
-#define MN_vpermt2d 0xcbb
-#define MN_vpbroadcastmw2d 0xcc4
-#define MN_aad 0xcd4
-#define MN_vmread 0xcd8
-#define MN_rmpread 0xcdf
-#define MN_vpshad 0xce7
-#define MN_vmload 0xcee
+#define MN_cfcmovc 0xcaa
+#define MN_vpermi2d 0xcb2
+#define MN_vpmovm2d 0xcbb
+#define MN_vpermt2d 0xcc4
+#define MN_vpbroadcastmw2d 0xccd
+#define MN_aad 0xcdd
+#define MN_vmread 0xce1
+#define MN_rmpread 0xce8
+#define MN_vpshad 0xcf0
+#define MN_vmload 0xcf7
#define MN_psrad (MN_vpsrad + 1)
-#define MN_vpsrad 0xcf5
-#define MN_vphaddbd 0xcfc
-#define MN_vphaddubd 0xd05
+#define MN_vpsrad 0xcfe
+#define MN_vphaddbd 0xd05
+#define MN_vphaddubd 0xd0e
#define MN_phsubd (MN_vphsubd + 1)
-#define MN_vphsubd 0xd0f
+#define MN_vphsubd 0xd18
#define MN_psubd (MN_vpsubd + 1)
-#define MN_vpsubd 0xd17
+#define MN_vpsubd 0xd20
#define MN_pmovsxbd (MN_vpmovsxbd + 1)
-#define MN_vpmovsxbd 0xd1e
+#define MN_vpmovsxbd 0xd27
#define MN_pmovzxbd (MN_vpmovzxbd + 1)
-#define MN_vpmovzxbd 0xd28
+#define MN_vpmovzxbd 0xd31
#define MN_add (MN_aadd + 1)
-#define MN_aadd 0xd32
+#define MN_aadd 0xd3b
#define MN_fadd (MN_pfadd + 1)
-#define MN_pfadd 0xd37
-#define MN_fiadd 0xd3d
-#define MN_tileloadd 0xd43
+#define MN_pfadd 0xd40
+#define MN_fiadd 0xd46
+#define MN_tileloadd 0xd4c
#define MN_xadd (MN_cmpnaxadd + 5)
-#define MN_cmpnaxadd 0xd4d
-#define MN_cmpaxadd 0xd57
-#define MN_cmpnbxadd 0xd60
-#define MN_cmpbxadd 0xd6a
-#define MN_cmpncxadd 0xd73
-#define MN_cmpcxadd 0xd7d
-#define MN_cmpnaexadd 0xd86
-#define MN_cmpaexadd 0xd91
-#define MN_cmpnbexadd 0xd9b
-#define MN_cmpbexadd 0xda6
-#define MN_cmpngexadd 0xdb0
-#define MN_cmpgexadd 0xdbb
-#define MN_cmpnlexadd 0xdc5
-#define MN_cmplexadd 0xdd0
-#define MN_cmpnexadd 0xdda
-#define MN_cmpexadd 0xde4
-#define MN_cmppexadd 0xded
-#define MN_cmpngxadd 0xdf7
-#define MN_cmpgxadd 0xe01
-#define MN_cmpnlxadd 0xe0a
-#define MN_cmplxadd 0xe14
-#define MN_cmpnoxadd 0xe1d
-#define MN_cmpoxadd 0xe27
-#define MN_cmppoxadd 0xe30
-#define MN_cmpnpxadd 0xe3a
-#define MN_cmppxadd 0xe44
-#define MN_cmpnsxadd 0xe4d
-#define MN_cmpsxadd 0xe57
-#define MN_cmpnzxadd 0xe60
-#define MN_cmpzxadd 0xe6a
+#define MN_cmpnaxadd 0xd56
+#define MN_cmpaxadd 0xd60
+#define MN_cmpnbxadd 0xd69
+#define MN_cmpbxadd 0xd73
+#define MN_cmpncxadd 0xd7c
+#define MN_cmpcxadd 0xd86
+#define MN_cmpnaexadd 0xd8f
+#define MN_cmpaexadd 0xd9a
+#define MN_cmpnbexadd 0xda4
+#define MN_cmpbexadd 0xdaf
+#define MN_cmpngexadd 0xdb9
+#define MN_cmpgexadd 0xdc4
+#define MN_cmpnlexadd 0xdce
+#define MN_cmplexadd 0xdd9
+#define MN_cmpnexadd 0xde3
+#define MN_cmpexadd 0xded
+#define MN_cmppexadd 0xdf6
+#define MN_cmpngxadd 0xe00
+#define MN_cmpgxadd 0xe0a
+#define MN_cmpnlxadd 0xe13
+#define MN_cmplxadd 0xe1d
+#define MN_cmpnoxadd 0xe26
+#define MN_cmpoxadd 0xe30
+#define MN_cmppoxadd 0xe39
+#define MN_cmpnpxadd 0xe43
+#define MN_cmppxadd 0xe4d
+#define MN_cmpnsxadd 0xe56
+#define MN_cmpsxadd 0xe60
+#define MN_cmpnzxadd 0xe69
+#define MN_cmpzxadd 0xe73
#define MN_phaddd (MN_vphaddd + 1)
-#define MN_vphaddd 0xe73
-#define MN_kaddd 0xe7b
+#define MN_vphaddd 0xe7c
+#define MN_kaddd 0xe84
#define MN_paddd (MN_vpaddd + 1)
-#define MN_vpaddd 0xe81
-#define MN_vpshldd 0xe88
-#define MN_kandd 0xe90
-#define MN_vpandd 0xe96
-#define MN_vpexpandd 0xe9d
-#define MN_vpblendd 0xea7
-#define MN_vpgatherdd 0xeb0
-#define MN_vpscatterdd 0xebb
-#define MN_vpshrdd 0xec7
-#define MN_vpmacsdd 0xecf
-#define MN_vpmacssdd 0xed8
-#define MN_rdseed 0xee2
-#define MN_vpcomged 0xee9
-#define MN_vpcomled 0xef2
-#define MN_vpcmpnled 0xefb
-#define MN_vpcmpled 0xf05
-#define MN_tilestored 0xf0e
-#define MN_vpcomfalsed 0xf19
-#define MN_ttransposed 0xf25
-#define MN_vpcomtrued 0xf31
-#define MN_pi2fd 0xf3c
+#define MN_vpaddd 0xe8a
+#define MN_vpshldd 0xe91
+#define MN_kandd 0xe99
+#define MN_vpandd 0xe9f
+#define MN_vpexpandd 0xea6
+#define MN_vpblendd 0xeb0
+#define MN_vpgatherdd 0xeb9
+#define MN_vpscatterdd 0xec4
+#define MN_vpshrdd 0xed0
+#define MN_vpmacsdd 0xed8
+#define MN_vpmacssdd 0xee1
+#define MN_rdseed 0xeeb
+#define MN_vpcomged 0xef2
+#define MN_vpcomled 0xefb
+#define MN_vpcmpnled 0xf04
+#define MN_vpcmpled 0xf0e
+#define MN_tilestored 0xf17
+#define MN_vpcomfalsed 0xf22
+#define MN_ttransposed 0xf2e
+#define MN_vpcomtrued 0xf3a
+#define MN_pi2fd 0xf45
#define MN_pshufd (MN_vpshufd + 1)
-#define MN_vpshufd 0xf42
-#define MN_vpternlogd 0xf4a
-#define MN_pf2id 0xf55
-#define MN_invpcid 0xf5b
-#define MN_rdpid 0xf63
-#define MN_invvpid 0xf69
-#define MN_cpuid 0xf71
-#define MN_fbld 0xf77
-#define MN_cld 0xf7c
-#define MN_fld 0xf80
+#define MN_vpshufd 0xf4b
+#define MN_vpternlogd 0xf53
+#define MN_pf2id 0xf5e
+#define MN_invpcid 0xf64
+#define MN_rdpid 0xf6c
+#define MN_invvpid 0xf72
+#define MN_cpuid 0xf7a
+#define MN_fbld 0xf80
+#define MN_cld 0xf85
+#define MN_fld 0xf89
#define MN_shld (MN_vpshld + 2)
-#define MN_vpshld 0xf84
-#define MN_fild 0xf8b
+#define MN_vpshld 0xf8d
+#define MN_fild 0xf94
#define MN_pslld (MN_vpslld + 1)
-#define MN_vpslld 0xf90
+#define MN_vpslld 0xf99
#define MN_pmulld (MN_vpmulld + 1)
-#define MN_vpmulld 0xf97
-#define MN_vprold 0xf9f
+#define MN_vpmulld 0xfa0
+#define MN_vprold 0xfa8
#define MN_psrld (MN_vpsrld + 1)
-#define MN_vpsrld 0xfa6
-#define MN_vmptrld 0xfad
-#define MN_kshiftld 0xfb5
-#define MN_enqcmd 0xfbe
-#define MN_vpblendmd 0xfc5
-#define MN_vptestnmd 0xfcf
-#define MN_vpcomd 0xfd9
-#define MN_vpermd 0xfe0
-#define MN_vptestmd 0xfe7
+#define MN_vpsrld 0xfaf
+#define MN_vmptrld 0xfb6
+#define MN_kshiftld 0xfbe
+#define MN_enqcmd 0xfc7
+#define MN_vpblendmd 0xfce
+#define MN_vptestnmd 0xfd8
+#define MN_vpcomd 0xfe2
+#define MN_vpermd 0xfe9
+#define MN_vptestmd 0xff0
#define MN_and (MN_aand + 1)
-#define MN_aand 0xff0
+#define MN_aand 0xff9
#define MN_pand (MN_vpand + 1)
-#define MN_vpand 0xff5
-#define MN_rdrand 0xffb
-#define MN_bnd 0x1002
-#define MN_kandnd 0x1006
-#define MN_vpandnd 0x100d
-#define MN_xend 0x1015
-#define MN_valignd 0x101a
+#define MN_vpand 0xffe
+#define MN_rdrand 0x1004
+#define MN_bnd 0x100b
+#define MN_kandnd 0x100f
+#define MN_vpandnd 0x1016
+#define MN_xend 0x101e
+#define MN_valignd 0x1023
#define MN_psignd (MN_vpsignd + 1)
-#define MN_vpsignd 0x1022
-#define MN_bound 0x102a
-#define MN_slod 0x1030
-#define MN_vfmaddsub231pd 0x1035
-#define MN_vfmsub231pd 0x1044
-#define MN_vfnmsub231pd 0x1050
-#define MN_vfmsubadd231pd 0x105d
-#define MN_vfmadd231pd 0x106c
-#define MN_vfnmadd231pd 0x1078
-#define MN_vfmaddsub132pd 0x1085
-#define MN_vfmsub132pd 0x1094
-#define MN_vfnmsub132pd 0x10a0
-#define MN_vfmsubadd132pd 0x10ad
-#define MN_vfmadd132pd 0x10bc
-#define MN_vfnmadd132pd 0x10c8
-#define MN_vcvtph2pd 0x10d5
-#define MN_vpermi2pd 0x10df
-#define MN_cvtpi2pd 0x10e9
-#define MN_vpermil2pd 0x10f2
-#define MN_vexp2pd 0x10fd
+#define MN_vpsignd 0x102b
+#define MN_bound 0x1033
+#define MN_slod 0x1039
+#define MN_vfmaddsub231pd 0x103e
+#define MN_vfmsub231pd 0x104d
+#define MN_vfnmsub231pd 0x1059
+#define MN_vfmsubadd231pd 0x1066
+#define MN_vfmadd231pd 0x1075
+#define MN_vfnmadd231pd 0x1081
+#define MN_vfmaddsub132pd 0x108e
+#define MN_vfmsub132pd 0x109d
+#define MN_vfnmsub132pd 0x10a9
+#define MN_vfmsubadd132pd 0x10b6
+#define MN_vfmadd132pd 0x10c5
+#define MN_vfnmadd132pd 0x10d1
+#define MN_vcvtph2pd 0x10de
+#define MN_vpermi2pd 0x10e8
+#define MN_cvtpi2pd 0x10f2
+#define MN_vpermil2pd 0x10fb
+#define MN_vexp2pd 0x1106
#define MN_cvtdq2pd (MN_vcvtdq2pd + 1)
-#define MN_vcvtdq2pd 0x1105
-#define MN_vcvtudq2pd 0x110f
-#define MN_vcvtqq2pd 0x111a
-#define MN_vcvtuqq2pd 0x1124
+#define MN_vcvtdq2pd 0x110e
+#define MN_vcvtudq2pd 0x1118
+#define MN_vcvtqq2pd 0x1123
+#define MN_vcvtuqq2pd 0x112d
#define MN_cvtps2pd (MN_vcvtps2pd + 1)
-#define MN_vcvtps2pd 0x112f
-#define MN_vpermt2pd 0x1139
-#define MN_vfmaddsub213pd 0x1143
-#define MN_vfmsub213pd 0x1152
-#define MN_vfnmsub213pd 0x115e
-#define MN_vfmsubadd213pd 0x116b
-#define MN_vfmadd213pd 0x117a
-#define MN_vfnmadd213pd 0x1186
-#define MN_vrcp14pd 0x1193
-#define MN_vrsqrt14pd 0x119c
-#define MN_vrcp28pd 0x11a7
-#define MN_vrsqrt28pd 0x11b0
+#define MN_vcvtps2pd 0x1138
+#define MN_vpermt2pd 0x1142
+#define MN_vfmaddsub213pd 0x114c
+#define MN_vfmsub213pd 0x115b
+#define MN_vfnmsub213pd 0x1167
+#define MN_vfmsubadd213pd 0x1174
+#define MN_vfmadd213pd 0x1183
+#define MN_vfnmadd213pd 0x118f
+#define MN_vrcp14pd 0x119c
+#define MN_vrsqrt14pd 0x11a5
+#define MN_vrcp28pd 0x11b0
+#define MN_vrsqrt28pd 0x11b9
#define MN_movapd (MN_vmovapd + 1)
-#define MN_vmovapd 0x11bb
-#define MN_pswapd 0x11c3
+#define MN_vmovapd 0x11c4
+#define MN_pswapd 0x11cc
#define MN_subpd (MN_addsubpd + 3)
#define MN_addsubpd (MN_vfmaddsubpd + 3)
-#define MN_vfmaddsubpd 0x11ca
-#define MN_vaddsubpd 0x11d6
+#define MN_vfmaddsubpd 0x11d3
+#define MN_vaddsubpd 0x11df
#define MN_hsubpd (MN_vhsubpd + 1)
-#define MN_vhsubpd 0x11e0
-#define MN_vfmsubpd 0x11e8
-#define MN_vfnmsubpd 0x11f1
-#define MN_vsubpd 0x11fb
-#define MN_vgatherpf0dpd 0x1202
-#define MN_vscatterpf0dpd 0x1210
-#define MN_vgatherpf1dpd 0x121f
-#define MN_vscatterpf1dpd 0x122d
+#define MN_vhsubpd 0x11e9
+#define MN_vfmsubpd 0x11f1
+#define MN_vfnmsubpd 0x11fa
+#define MN_vsubpd 0x1204
+#define MN_vgatherpf0dpd 0x120b
+#define MN_vscatterpf0dpd 0x1219
+#define MN_vgatherpf1dpd 0x1228
+#define MN_vscatterpf1dpd 0x1236
#define MN_addpd (MN_vfmsubaddpd + 6)
-#define MN_vfmsubaddpd 0x123c
+#define MN_vfmsubaddpd 0x1245
#define MN_haddpd (MN_vhaddpd + 1)
-#define MN_vhaddpd 0x1248
-#define MN_vfmaddpd 0x1250
-#define MN_vfnmaddpd 0x1259
-#define MN_vaddpd 0x1263
+#define MN_vhaddpd 0x1251
+#define MN_vfmaddpd 0x1259
+#define MN_vfnmaddpd 0x1262
+#define MN_vaddpd 0x126c
#define MN_andpd (MN_vexpandpd + 4)
-#define MN_vexpandpd 0x126a
-#define MN_vandpd 0x1274
+#define MN_vexpandpd 0x1273
+#define MN_vandpd 0x127d
#define MN_blendpd (MN_vblendpd + 1)
-#define MN_vblendpd 0x127b
+#define MN_vblendpd 0x1284
#define MN_roundpd (MN_vroundpd + 1)
-#define MN_vroundpd 0x1284
-#define MN_vgatherdpd 0x128d
-#define MN_vscatterdpd 0x1298
+#define MN_vroundpd 0x128d
+#define MN_vgatherdpd 0x1296
+#define MN_vscatterdpd 0x12a1
#define MN_cmpunordpd (MN_vcmpunordpd + 1)
-#define MN_vcmpunordpd 0x12a4
+#define MN_vcmpunordpd 0x12ad
#define MN_cmpordpd (MN_vcmpordpd + 1)
-#define MN_vcmpordpd 0x12b0
-#define MN_vreducepd 0x12ba
-#define MN_vrangepd 0x12c4
-#define MN_vcmpngepd 0x12cd
-#define MN_vcmpgepd 0x12d7
-#define MN_vrndscalepd 0x12e0
+#define MN_vcmpordpd 0x12b9
+#define MN_vreducepd 0x12c3
+#define MN_vrangepd 0x12cd
+#define MN_vcmpngepd 0x12d6
+#define MN_vcmpgepd 0x12e0
+#define MN_vrndscalepd 0x12e9
#define MN_cmpnlepd (MN_vcmpnlepd + 1)
-#define MN_vcmpnlepd 0x12ec
+#define MN_vcmpnlepd 0x12f5
#define MN_cmplepd (MN_vcmplepd + 1)
-#define MN_vcmplepd 0x12f6
-#define MN_vcmpfalsepd 0x12ff
-#define MN_vcmptruepd 0x130b
-#define MN_vscalefpd 0x1316
+#define MN_vcmplepd 0x12ff
+#define MN_vcmpfalsepd 0x1308
+#define MN_vcmptruepd 0x1314
+#define MN_vscalefpd 0x131f
#define MN_shufpd (MN_vshufpd + 1)
-#define MN_vshufpd 0x1320
+#define MN_vshufpd 0x1329
#define MN_unpckhpd (MN_vunpckhpd + 1)
-#define MN_vunpckhpd 0x1328
+#define MN_vunpckhpd 0x1331
#define MN_movhpd (MN_vmovhpd + 1)
-#define MN_vmovhpd 0x1332
+#define MN_vmovhpd 0x133b
#define MN_movmskpd (MN_vmovmskpd + 1)
-#define MN_vmovmskpd 0x133a
-#define MN_vpermilpd 0x1344
+#define MN_vmovmskpd 0x1343
+#define MN_vpermilpd 0x134d
#define MN_unpcklpd (MN_vunpcklpd + 1)
-#define MN_vunpcklpd 0x134e
+#define MN_vunpcklpd 0x1357
#define MN_mulpd (MN_vmulpd + 1)
-#define MN_vmulpd 0x1358
+#define MN_vmulpd 0x1361
#define MN_movlpd (MN_vmovlpd + 1)
-#define MN_vmovlpd 0x135f
-#define MN_vpcmpd 0x1367
-#define MN_vblendmpd 0x136e
-#define MN_vfixupimmpd 0x1378
-#define MN_vpermpd 0x1384
+#define MN_vmovlpd 0x1368
+#define MN_vpcmpd 0x1370
+#define MN_vblendmpd 0x1377
+#define MN_vfixupimmpd 0x1381
+#define MN_vpermpd 0x138d
#define MN_andnpd (MN_vandnpd + 1)
-#define MN_vandnpd 0x138c
+#define MN_vandnpd 0x1395
#define MN_minpd (MN_vminpd + 1)
-#define MN_vminpd 0x1394
+#define MN_vminpd 0x139d
#define MN_dppd (MN_vdppd + 1)
-#define MN_vdppd 0x139b
+#define MN_vdppd 0x13a4
#define MN_cmppd (MN_vcmppd + 1)
-#define MN_vcmppd 0x13a1
-#define MN_vgetexppd 0x13a8
-#define MN_vgatherpf0qpd 0x13b2
-#define MN_vscatterpf0qpd 0x13c0
-#define MN_vgatherpf1qpd 0x13cf
-#define MN_vscatterpf1qpd 0x13dd
-#define MN_vcmpunord_qpd 0x13ec
-#define MN_vcmpord_qpd 0x13fa
+#define MN_vcmppd 0x13aa
+#define MN_vgetexppd 0x13b1
+#define MN_vgatherpf0qpd 0x13bb
+#define MN_vscatterpf0qpd 0x13c9
+#define MN_vgatherpf1qpd 0x13d8
+#define MN_vscatterpf1qpd 0x13e6
+#define MN_vcmpunord_qpd 0x13f5
+#define MN_vcmpord_qpd 0x1403
#define MN_cmpneqpd (MN_vcmpneqpd + 1)
-#define MN_vcmpneqpd 0x1406
+#define MN_vcmpneqpd 0x140f
#define MN_cmpeqpd (MN_vcmpeqpd + 1)
-#define MN_vcmpeqpd 0x1410
-#define MN_vcmpge_oqpd 0x1419
-#define MN_vcmple_oqpd 0x1425
-#define MN_vcmpfalse_oqpd 0x1431
-#define MN_vcmpneq_oqpd 0x1440
-#define MN_vcmpeq_oqpd 0x144d
-#define MN_vcmpgt_oqpd 0x1459
-#define MN_vcmplt_oqpd 0x1465
-#define MN_vgatherqpd 0x1471
-#define MN_vscatterqpd 0x147c
-#define MN_vcmpnge_uqpd 0x1488
-#define MN_vcmpnle_uqpd 0x1495
-#define MN_vcmptrue_uqpd 0x14a2
-#define MN_vcmpneq_uqpd 0x14b0
-#define MN_vcmpeq_uqpd 0x14bd
-#define MN_vcmpngt_uqpd 0x14c9
-#define MN_vcmpnlt_uqpd 0x14d6
+#define MN_vcmpeqpd 0x1419
+#define MN_vcmpge_oqpd 0x1422
+#define MN_vcmple_oqpd 0x142e
+#define MN_vcmpfalse_oqpd 0x143a
+#define MN_vcmpneq_oqpd 0x1449
+#define MN_vcmpeq_oqpd 0x1456
+#define MN_vcmpgt_oqpd 0x1462
+#define MN_vcmplt_oqpd 0x146e
+#define MN_vgatherqpd 0x147a
+#define MN_vscatterqpd 0x1485
+#define MN_vcmpnge_uqpd 0x1491
+#define MN_vcmpnle_uqpd 0x149e
+#define MN_vcmptrue_uqpd 0x14ab
+#define MN_vcmpneq_uqpd 0x14b9
+#define MN_vcmpeq_uqpd 0x14c6
+#define MN_vcmpngt_uqpd 0x14d2
+#define MN_vcmpnlt_uqpd 0x14df
#define MN_orpd (MN_vorpd + 1)
-#define MN_vorpd 0x14e3
+#define MN_vorpd 0x14ec
#define MN_xorpd (MN_vxorpd + 1)
-#define MN_vxorpd 0x14e9
-#define MN_vcmpunord_spd 0x14f0
-#define MN_vcmpord_spd 0x14fe
-#define MN_vcmpge_ospd 0x150a
-#define MN_vcmple_ospd 0x1516
-#define MN_vcmpfalse_ospd 0x1522
-#define MN_vcmpneq_ospd 0x1531
-#define MN_vcmpeq_ospd 0x153e
-#define MN_vcmpgt_ospd 0x154a
-#define MN_vcmplt_ospd 0x1556
-#define MN_vfpclasspd 0x1562
-#define MN_incsspd 0x156d
-#define MN_rdsspd 0x1575
-#define MN_vcompresspd 0x157c
-#define MN_vcmpnge_uspd 0x1588
-#define MN_vcmpnle_uspd 0x1595
-#define MN_vcmptrue_uspd 0x15a2
-#define MN_vcmpneq_uspd 0x15b0
-#define MN_vcmpeq_uspd 0x15bd
-#define MN_vcmpngt_uspd 0x15c9
-#define MN_vcmpnlt_uspd 0x15d6
-#define MN_vcmpngtpd 0x15e3
-#define MN_vcmpgtpd 0x15ed
+#define MN_vxorpd 0x14f2
+#define MN_vcmpunord_spd 0x14f9
+#define MN_vcmpord_spd 0x1507
+#define MN_vcmpge_ospd 0x1513
+#define MN_vcmple_ospd 0x151f
+#define MN_vcmpfalse_ospd 0x152b
+#define MN_vcmpneq_ospd 0x153a
+#define MN_vcmpeq_ospd 0x1547
+#define MN_vcmpgt_ospd 0x1553
+#define MN_vcmplt_ospd 0x155f
+#define MN_vfpclasspd 0x156b
+#define MN_incsspd 0x1576
+#define MN_rdsspd 0x157e
+#define MN_vcompresspd 0x1585
+#define MN_vcmpnge_uspd 0x1591
+#define MN_vcmpnle_uspd 0x159e
+#define MN_vcmptrue_uspd 0x15ab
+#define MN_vcmpneq_uspd 0x15b9
+#define MN_vcmpeq_uspd 0x15c6
+#define MN_vcmpngt_uspd 0x15d2
+#define MN_vcmpnlt_uspd 0x15df
+#define MN_vcmpngtpd 0x15ec
+#define MN_vcmpgtpd 0x15f6
#define MN_cmpnltpd (MN_vcmpnltpd + 1)
-#define MN_vcmpnltpd 0x15f6
+#define MN_vcmpnltpd 0x15ff
#define MN_cmpltpd (MN_vcmpltpd + 1)
-#define MN_vcmpltpd 0x1600
-#define MN_vgetmantpd 0x1609
+#define MN_vcmpltpd 0x1609
+#define MN_vgetmantpd 0x1612
#define MN_movntpd (MN_vmovntpd + 1)
-#define MN_vmovntpd 0x1614
+#define MN_vmovntpd 0x161d
#define MN_sqrtpd (MN_vsqrtpd + 1)
-#define MN_vsqrtpd 0x161d
-#define MN_vtestpd 0x1625
+#define MN_vsqrtpd 0x1626
+#define MN_vtestpd 0x162e
#define MN_movupd (MN_vmovupd + 1)
-#define MN_vmovupd 0x162d
+#define MN_vmovupd 0x1636
#define MN_blendvpd (MN_vblendvpd + 1)
-#define MN_vblendvpd 0x1635
+#define MN_vblendvpd 0x163e
#define MN_divpd (MN_vdivpd + 1)
-#define MN_vdivpd 0x163f
-#define MN_vmaskmovpd 0x1646
+#define MN_vdivpd 0x1648
+#define MN_vmaskmovpd 0x164f
#define MN_maxpd (MN_vminmaxpd + 4)
-#define MN_vminmaxpd 0x1651
-#define MN_vmaxpd 0x165b
-#define MN_vfrczpd 0x1662
-#define MN_vpcomeqd 0x166a
-#define MN_vpcomneqd 0x1673
-#define MN_vpcmpneqd 0x167d
+#define MN_vminmaxpd 0x165a
+#define MN_vmaxpd 0x1664
+#define MN_vfrczpd 0x166b
+#define MN_vpcomeqd 0x1673
+#define MN_vpcomneqd 0x167c
+#define MN_vpcmpneqd 0x1686
#define MN_pcmpeqd (MN_vpcmpeqd + 1)
-#define MN_vpcmpeqd 0x1687
-#define MN_vpgatherqd 0x1690
-#define MN_vpscatterqd 0x169b
-#define MN_vpmovusqd 0x16a7
-#define MN_vpmovsqd 0x16b1
-#define MN_vpmovqd 0x16ba
-#define MN_shrd 0x16c2
-#define MN_kord 0x16c7
-#define MN_kxnord 0x16cc
-#define MN_vpord 0x16d3
-#define MN_vprord 0x16d9
+#define MN_vpcmpeqd 0x1690
+#define MN_vpgatherqd 0x1699
+#define MN_vpscatterqd 0x16a4
+#define MN_vpmovusqd 0x16b0
+#define MN_vpmovsqd 0x16ba
+#define MN_vpmovqd 0x16c3
+#define MN_shrd 0x16cb
+#define MN_kord 0x16d0
+#define MN_kxnord 0x16d5
+#define MN_vpord 0x16dc
+#define MN_vprord 0x16e2
#define MN_word (MN_aword + 1)
-#define MN_aword 0x16e0
+#define MN_aword 0x16e9
#define MN_dword (MN_adword + 1)
-#define MN_adword 0x16e6
-#define MN_kxord 0x16ed
-#define MN_vpxord 0x16f3
+#define MN_adword 0x16ef
+#define MN_kxord 0x16f6
+#define MN_vpxord 0x16fc
#define MN_pinsrd (MN_vpinsrd + 1)
-#define MN_vpinsrd 0x16fa
-#define MN_kshiftrd 0x1702
+#define MN_vpinsrd 0x1703
+#define MN_kshiftrd 0x170b
#define MN_pextrd (MN_vpextrd + 1)
-#define MN_vpextrd 0x170b
-#define MN_vfmsub231sd 0x1713
-#define MN_vfnmsub231sd 0x171f
-#define MN_vfmadd231sd 0x172c
-#define MN_vfnmadd231sd 0x1738
-#define MN_vfmsub132sd 0x1745
-#define MN_vfnmsub132sd 0x1751
-#define MN_vfmadd132sd 0x175e
-#define MN_vfnmadd132sd 0x176a
-#define MN_vcvtsh2sd 0x1777
+#define MN_vpextrd 0x1714
+#define MN_vfmsub231sd 0x171c
+#define MN_vfnmsub231sd 0x1728
+#define MN_vfmadd231sd 0x1735
+#define MN_vfnmadd231sd 0x1741
+#define MN_vfmsub132sd 0x174e
+#define MN_vfnmsub132sd 0x175a
+#define MN_vfmadd132sd 0x1767
+#define MN_vfnmadd132sd 0x1773
+#define MN_vcvtsh2sd 0x1780
#define MN_cvtsi2sd (MN_vcvtsi2sd + 1)
-#define MN_vcvtsi2sd 0x1781
-#define MN_vcvtusi2sd 0x178b
+#define MN_vcvtsi2sd 0x178a
+#define MN_vcvtusi2sd 0x1794
#define MN_cvtss2sd (MN_vcvtss2sd + 1)
-#define MN_vcvtss2sd 0x1796
-#define MN_vfmsub213sd 0x17a0
-#define MN_vfnmsub213sd 0x17ac
-#define MN_vfmadd213sd 0x17b9
-#define MN_vfnmadd213sd 0x17c5
-#define MN_vrcp14sd 0x17d2
-#define MN_vrsqrt14sd 0x17db
-#define MN_vrcp28sd 0x17e6
-#define MN_vrsqrt28sd 0x17ef
+#define MN_vcvtss2sd 0x179f
+#define MN_vfmsub213sd 0x17a9
+#define MN_vfnmsub213sd 0x17b5
+#define MN_vfmadd213sd 0x17c2
+#define MN_vfnmadd213sd 0x17ce
+#define MN_vrcp14sd 0x17db
+#define MN_vrsqrt14sd 0x17e4
+#define MN_vrcp28sd 0x17ef
+#define MN_vrsqrt28sd 0x17f8
#define MN_pabsd (MN_vpabsd + 1)
-#define MN_vpabsd 0x17fa
+#define MN_vpabsd 0x1803
#define MN_subsd (MN_vfmsubsd + 3)
-#define MN_vfmsubsd 0x1801
-#define MN_vfnmsubsd 0x180a
-#define MN_vsubsd 0x1814
+#define MN_vfmsubsd 0x180a
+#define MN_vfnmsubsd 0x1813
+#define MN_vsubsd 0x181d
#define MN_addsd (MN_vfmaddsd + 3)
-#define MN_vfmaddsd 0x181b
-#define MN_vfnmaddsd 0x1824
-#define MN_vaddsd 0x182e
+#define MN_vfmaddsd 0x1824
+#define MN_vfnmaddsd 0x182d
+#define MN_vaddsd 0x1837
#define MN_roundsd (MN_vroundsd + 1)
-#define MN_vroundsd 0x1835
+#define MN_vroundsd 0x183e
#define MN_cmpunordsd (MN_vcmpunordsd + 1)
-#define MN_vcmpunordsd 0x183e
+#define MN_vcmpunordsd 0x1847
#define MN_cmpordsd (MN_vcmpordsd + 1)
-#define MN_vcmpordsd 0x184a
-#define MN_vreducesd 0x1854
-#define MN_vrangesd 0x185e
-#define MN_vcmpngesd 0x1867
-#define MN_vcmpgesd 0x1871
-#define MN_vrndscalesd 0x187a
+#define MN_vcmpordsd 0x1853
+#define MN_vreducesd 0x185d
+#define MN_vrangesd 0x1867
+#define MN_vcmpngesd 0x1870
+#define MN_vcmpgesd 0x187a
+#define MN_vrndscalesd 0x1883
#define MN_cmpnlesd (MN_vcmpnlesd + 1)
-#define MN_vcmpnlesd 0x1886
+#define MN_vcmpnlesd 0x188f
#define MN_cmplesd (MN_vcmplesd + 1)
-#define MN_vcmplesd 0x1890
-#define MN_vcmpfalsesd 0x1899
-#define MN_vcmptruesd 0x18a5
-#define MN_vscalefsd 0x18b0
+#define MN_vcmplesd 0x1899
+#define MN_vcmpfalsesd 0x18a2
+#define MN_vcmptruesd 0x18ae
+#define MN_vscalefsd 0x18b9
#define MN_comisd (MN_ucomisd + 1)
#define MN_ucomisd (MN_vucomisd + 1)
-#define MN_vucomisd 0x18ba
-#define MN_vcomisd 0x18c3
+#define MN_vucomisd 0x18c3
+#define MN_vcomisd 0x18cc
#define MN_mulsd (MN_vmulsd + 1)
-#define MN_vmulsd 0x18cb
-#define MN_vfixupimmsd 0x18d2
+#define MN_vmulsd 0x18d4
+#define MN_vfixupimmsd 0x18db
#define MN_minsd (MN_pminsd + 1)
#define MN_pminsd (MN_vpminsd + 1)
-#define MN_vpminsd 0x18de
-#define MN_vminsd 0x18e6
+#define MN_vpminsd 0x18e7
+#define MN_vminsd 0x18ef
#define MN_cmpsd (MN_vcmpsd + 1)
-#define MN_vcmpsd 0x18ed
-#define MN_vgetexpsd 0x18f4
-#define MN_vcmpunord_qsd 0x18fe
-#define MN_vcmpord_qsd 0x190c
+#define MN_vcmpsd 0x18f6
+#define MN_vgetexpsd 0x18fd
+#define MN_vcmpunord_qsd 0x1907
+#define MN_vcmpord_qsd 0x1915
#define MN_cmpneqsd (MN_vcmpneqsd + 1)
-#define MN_vcmpneqsd 0x1918
+#define MN_vcmpneqsd 0x1921
#define MN_cmpeqsd (MN_vcmpeqsd + 1)
-#define MN_vcmpeqsd 0x1922
-#define MN_vcmpge_oqsd 0x192b
-#define MN_vcmple_oqsd 0x1937
-#define MN_vcmpfalse_oqsd 0x1943
-#define MN_vcmpneq_oqsd 0x1952
-#define MN_vcmpeq_oqsd 0x195f
-#define MN_vcmpgt_oqsd 0x196b
-#define MN_vcmplt_oqsd 0x1977
-#define MN_vcmpnge_uqsd 0x1983
-#define MN_vcmpnle_uqsd 0x1990
-#define MN_vcmptrue_uqsd 0x199d
-#define MN_vcmpneq_uqsd 0x19ab
-#define MN_vcmpeq_uqsd 0x19b8
-#define MN_vcmpngt_uqsd 0x19c4
-#define MN_vcmpnlt_uqsd 0x19d1
-#define MN_vmovrsd 0x19de
-#define MN_vcmpunord_ssd 0x19e6
-#define MN_vcmpord_ssd 0x19f4
-#define MN_vpdpbssd 0x1a00
-#define MN_tdpbssd 0x1a09
-#define MN_vpcompressd 0x1a11
-#define MN_vcmpge_ossd 0x1a1d
-#define MN_vcmple_ossd 0x1a29
-#define MN_vcmpfalse_ossd 0x1a35
-#define MN_vcmpneq_ossd 0x1a44
-#define MN_vcmpeq_ossd 0x1a51
-#define MN_vcmpgt_ossd 0x1a5d
-#define MN_vcmplt_ossd 0x1a69
-#define MN_wrssd 0x1a75
-#define MN_vfpclasssd 0x1a7b
-#define MN_vcmpnge_ussd 0x1a86
-#define MN_vcmpnle_ussd 0x1a93
-#define MN_vcmptrue_ussd 0x1aa0
-#define MN_vcmpneq_ussd 0x1aae
-#define MN_vcmpeq_ussd 0x1abb
-#define MN_vcmpngt_ussd 0x1ac7
-#define MN_vcmpnlt_ussd 0x1ad4
-#define MN_wrussd 0x1ae1
-#define MN_vp4dpwssd 0x1ae8
-#define MN_vpdpwssd 0x1af2
-#define MN_vcmpngtsd 0x1afb
-#define MN_vcmpgtsd 0x1b05
+#define MN_vcmpeqsd 0x192b
+#define MN_vcmpge_oqsd 0x1934
+#define MN_vcmple_oqsd 0x1940
+#define MN_vcmpfalse_oqsd 0x194c
+#define MN_vcmpneq_oqsd 0x195b
+#define MN_vcmpeq_oqsd 0x1968
+#define MN_vcmpgt_oqsd 0x1974
+#define MN_vcmplt_oqsd 0x1980
+#define MN_vcmpnge_uqsd 0x198c
+#define MN_vcmpnle_uqsd 0x1999
+#define MN_vcmptrue_uqsd 0x19a6
+#define MN_vcmpneq_uqsd 0x19b4
+#define MN_vcmpeq_uqsd 0x19c1
+#define MN_vcmpngt_uqsd 0x19cd
+#define MN_vcmpnlt_uqsd 0x19da
+#define MN_vmovrsd 0x19e7
+#define MN_vcmpunord_ssd 0x19ef
+#define MN_vcmpord_ssd 0x19fd
+#define MN_vpdpbssd 0x1a09
+#define MN_tdpbssd 0x1a12
+#define MN_vpcompressd 0x1a1a
+#define MN_vcmpge_ossd 0x1a26
+#define MN_vcmple_ossd 0x1a32
+#define MN_vcmpfalse_ossd 0x1a3e
+#define MN_vcmpneq_ossd 0x1a4d
+#define MN_vcmpeq_ossd 0x1a5a
+#define MN_vcmpgt_ossd 0x1a66
+#define MN_vcmplt_ossd 0x1a72
+#define MN_wrssd 0x1a7e
+#define MN_vfpclasssd 0x1a84
+#define MN_vcmpnge_ussd 0x1a8f
+#define MN_vcmpnle_ussd 0x1a9c
+#define MN_vcmptrue_ussd 0x1aa9
+#define MN_vcmpneq_ussd 0x1ab7
+#define MN_vcmpeq_ussd 0x1ac4
+#define MN_vcmpngt_ussd 0x1ad0
+#define MN_vcmpnlt_ussd 0x1add
+#define MN_wrussd 0x1aea
+#define MN_vp4dpwssd 0x1af1
+#define MN_vpdpwssd 0x1afb
+#define MN_vcmpngtsd 0x1b04
+#define MN_vcmpgtsd 0x1b0e
#define MN_cmpnltsd (MN_vcmpnltsd + 1)
-#define MN_vcmpnltsd 0x1b0e
+#define MN_vcmpnltsd 0x1b17
#define MN_cmpltsd (MN_vcmpltsd + 1)
-#define MN_vcmpltsd 0x1b18
-#define MN_vgetmantsd 0x1b21
-#define MN_movntsd 0x1b2c
+#define MN_vcmpltsd 0x1b21
+#define MN_vgetmantsd 0x1b2a
+#define MN_movntsd 0x1b35
#define MN_sqrtsd (MN_vsqrtsd + 1)
-#define MN_vsqrtsd 0x1b34
-#define MN_vbroadcastsd 0x1b3c
-#define MN_vpdpbusd 0x1b49
-#define MN_tdpbusd 0x1b52
-#define MN_vpdpwusd 0x1b5a
+#define MN_vsqrtsd 0x1b3d
+#define MN_vbroadcastsd 0x1b45
+#define MN_vpdpbusd 0x1b52
+#define MN_tdpbusd 0x1b5b
+#define MN_vpdpwusd 0x1b63
#define MN_divsd (MN_vdivsd + 1)
-#define MN_vdivsd 0x1b63
+#define MN_vdivsd 0x1b6c
#define MN_movsd (MN_vmovsd + 1)
-#define MN_vmovsd 0x1b6a
+#define MN_vmovsd 0x1b73
#define MN_maxsd (MN_vminmaxsd + 4)
-#define MN_vminmaxsd 0x1b71
+#define MN_vminmaxsd 0x1b7a
#define MN_pmaxsd (MN_vpmaxsd + 1)
-#define MN_vpmaxsd 0x1b7b
-#define MN_vmaxsd 0x1b83
-#define MN_vucomxsd 0x1b8a
-#define MN_vcomxsd 0x1b93
-#define MN_vfrczsd 0x1b9b
-#define MN_vp2intersectd 0x1ba3
-#define MN_vpconflictd 0x1bb1
-#define MN_vpcomgtd 0x1bbd
+#define MN_vpmaxsd 0x1b84
+#define MN_vmaxsd 0x1b8c
+#define MN_vucomxsd 0x1b93
+#define MN_vcomxsd 0x1b9c
+#define MN_vfrczsd 0x1ba4
+#define MN_vp2intersectd 0x1bac
+#define MN_vpconflictd 0x1bba
+#define MN_vpcomgtd 0x1bc6
#define MN_pcmpgtd (MN_vpcmpgtd + 1)
-#define MN_vpcmpgtd 0x1bc6
-#define MN_cltd 0x1bcf
-#define MN_vpcomltd 0x1bd4
-#define MN_vpcmpnltd 0x1bdd
-#define MN_vpcmpltd 0x1be7
-#define MN_vpopcntd 0x1bf0
-#define MN_vplzcntd 0x1bf9
-#define MN_knotd 0x1c02
-#define MN_vprotd 0x1c08
+#define MN_vpcmpgtd 0x1bcf
+#define MN_cltd 0x1bd8
+#define MN_vpcomltd 0x1bdd
+#define MN_vpcmpnltd 0x1be6
+#define MN_vpcmpltd 0x1bf0
+#define MN_vpopcntd 0x1bf9
+#define MN_vplzcntd 0x1c02
+#define MN_knotd 0x1c0b
+#define MN_vprotd 0x1c11
#define MN_std (MN_vpbroadcastd + 9)
-#define MN_vpbroadcastd 0x1c0f
-#define MN_ktestd 0x1c1c
-#define MN_kortestd 0x1c23
-#define MN_cwtd 0x1c2c
-#define MN_vpcomgeud 0x1c31
-#define MN_vpcomleud 0x1c3b
-#define MN_vpcmpnleud 0x1c45
-#define MN_vpcmpleud 0x1c50
-#define MN_vpcomfalseud 0x1c5a
-#define MN_vpcomtrueud 0x1c67
-#define MN_vpcomud 0x1c73
+#define MN_vpbroadcastd 0x1c18
+#define MN_ktestd 0x1c25
+#define MN_kortestd 0x1c2c
+#define MN_cwtd 0x1c35
+#define MN_vpcomgeud 0x1c3a
+#define MN_vpcomleud 0x1c44
+#define MN_vpcmpnleud 0x1c4e
+#define MN_vpcmpleud 0x1c59
+#define MN_vpcomfalseud 0x1c63
+#define MN_vpcomtrueud 0x1c70
+#define MN_vpcomud 0x1c7c
#define MN_pminud (MN_vpminud + 1)
-#define MN_vpminud 0x1c7b
-#define MN_vpcmpud 0x1c83
-#define MN_vpcomequd 0x1c8b
-#define MN_vpcomnequd 0x1c95
-#define MN_vpcmpnequd 0x1ca0
-#define MN_vpcmpequd 0x1cab
-#define MN_vpdpbsud 0x1cb5
-#define MN_tdpbsud 0x1cbe
-#define MN_vpdpwsud 0x1cc6
-#define MN_vpcomgtud 0x1ccf
-#define MN_vpcomltud 0x1cd9
-#define MN_vpcmpnltud 0x1ce3
-#define MN_vpcmpltud 0x1cee
-#define MN_vpdpbuud 0x1cf8
-#define MN_tdpbuud 0x1d01
-#define MN_vpdpwuud 0x1d09
+#define MN_vpminud 0x1c84
+#define MN_vpcmpud 0x1c8c
+#define MN_vpcomequd 0x1c94
+#define MN_vpcomnequd 0x1c9e
+#define MN_vpcmpnequd 0x1ca9
+#define MN_vpcmpequd 0x1cb4
+#define MN_vpdpbsud 0x1cbe
+#define MN_tdpbsud 0x1cc7
+#define MN_vpdpwsud 0x1ccf
+#define MN_vpcomgtud 0x1cd8
+#define MN_vpcomltud 0x1ce2
+#define MN_vpcmpnltud 0x1cec
+#define MN_vpcmpltud 0x1cf7
+#define MN_vpdpbuud 0x1d01
+#define MN_tdpbuud 0x1d0a
+#define MN_vpdpwuud 0x1d12
#define MN_pmaxud (MN_vpmaxud + 1)
-#define MN_vpmaxud 0x1d12
-#define MN_vpsravd 0x1d1a
-#define MN_vpshldvd 0x1d22
-#define MN_vpshrdvd 0x1d2b
-#define MN_vpsllvd 0x1d34
-#define MN_vprolvd 0x1d3c
-#define MN_vpsrlvd 0x1d44
+#define MN_vpmaxud 0x1d1b
+#define MN_vpsravd 0x1d23
+#define MN_vpshldvd 0x1d2b
+#define MN_vpshrdvd 0x1d34
+#define MN_vpsllvd 0x1d3d
+#define MN_vprolvd 0x1d45
+#define MN_vpsrlvd 0x1d4d
#define MN_invd (MN_wbinvd + 2)
-#define MN_wbinvd 0x1d4c
-#define MN_wbnoinvd 0x1d53
+#define MN_wbinvd 0x1d55
+#define MN_wbnoinvd 0x1d5c
#define MN_movd (MN_kmovd + 1)
#define MN_kmovd (MN_vpmaskmovd + 5)
-#define MN_vpmaskmovd 0x1d5c
-#define MN_vmovd 0x1d67
-#define MN_vprorvd 0x1d6d
-#define MN_vphsubwd 0x1d75
-#define MN_cwd 0x1d7e
-#define MN_vphaddwd 0x1d82
+#define MN_vpmaskmovd 0x1d65
+#define MN_vmovd 0x1d70
+#define MN_vprorvd 0x1d76
+#define MN_vphsubwd 0x1d7e
+#define MN_cwd 0x1d87
+#define MN_vphaddwd 0x1d8b
#define MN_pmaddwd (MN_vpmaddwd + 1)
-#define MN_vpmaddwd 0x1d8b
+#define MN_vpmaddwd 0x1d94
#define MN_punpckhwd (MN_vpunpckhwd + 1)
-#define MN_vpunpckhwd 0x1d94
-#define MN_kunpckwd 0x1d9f
+#define MN_vpunpckhwd 0x1d9d
+#define MN_kunpckwd 0x1da8
#define MN_punpcklwd (MN_vpunpcklwd + 1)
-#define MN_vpunpcklwd 0x1da8
-#define MN_vpmacswd 0x1db3
-#define MN_vpmadcswd 0x1dbc
-#define MN_vpmacsswd 0x1dc6
-#define MN_vpmadcsswd 0x1dd0
-#define MN_vphadduwd 0x1ddb
+#define MN_vpunpcklwd 0x1db1
+#define MN_vpmacswd 0x1dbc
+#define MN_vpmadcswd 0x1dc5
+#define MN_vpmacsswd 0x1dcf
+#define MN_vpmadcsswd 0x1dd9
+#define MN_vphadduwd 0x1de4
#define MN_pmovsxwd (MN_vpmovsxwd + 1)
-#define MN_vpmovsxwd 0x1de5
+#define MN_vpmovsxwd 0x1dee
#define MN_pmovzxwd (MN_vpmovzxwd + 1)
-#define MN_vpmovzxwd 0x1def
-#define MN_movsxd 0x1df9
-#define MN_fldl2e 0x1e00
-#define MN_jae 0x1e07
-#define MN_jnae 0x1e0b
-#define MN_ccmpnae 0x1e10
-#define MN_setnae 0x1e18
-#define MN_ctestnae 0x1e1f
-#define MN_setzunae 0x1e28
+#define MN_vpmovzxwd 0x1df8
+#define MN_movsxd 0x1e02
+#define MN_fldl2e 0x1e09
+#define MN_jae 0x1e10
+#define MN_jnae 0x1e14
+#define MN_ccmpnae 0x1e19
+#define MN_setnae 0x1e21
+#define MN_ctestnae 0x1e28
+#define MN_setzunae 0x1e31
#define MN_cmovnae (MN_fcmovnae + 1)
#define MN_fcmovnae (MN_cfcmovnae + 1)
-#define MN_cfcmovnae 0x1e31
-#define MN_ccmpae 0x1e3b
-#define MN_setae 0x1e42
-#define MN_ctestae 0x1e48
-#define MN_setzuae 0x1e50
+#define MN_cfcmovnae 0x1e3a
+#define MN_ccmpae 0x1e44
+#define MN_setae 0x1e4b
+#define MN_ctestae 0x1e51
+#define MN_setzuae 0x1e59
#define MN_cmovae (MN_fcmovae + 1)
#define MN_fcmovae (MN_cfcmovae + 1)
-#define MN_cfcmovae 0x1e58
-#define MN_jbe 0x1e61
-#define MN_jnbe 0x1e65
-#define MN_ccmpnbe 0x1e6a
-#define MN_setnbe 0x1e72
-#define MN_ctestnbe 0x1e79
-#define MN_setzunbe 0x1e82
+#define MN_cfcmovae 0x1e61
+#define MN_jbe 0x1e6a
+#define MN_jnbe 0x1e6e
+#define MN_ccmpnbe 0x1e73
+#define MN_setnbe 0x1e7b
+#define MN_ctestnbe 0x1e82
+#define MN_setzunbe 0x1e8b
#define MN_cmovnbe (MN_fcmovnbe + 1)
#define MN_fcmovnbe (MN_cfcmovnbe + 1)
-#define MN_cfcmovnbe 0x1e8b
-#define MN_ccmpbe 0x1e95
-#define MN_setbe 0x1e9c
-#define MN_ctestbe 0x1ea2
-#define MN_setzube 0x1eaa
+#define MN_cfcmovnbe 0x1e94
+#define MN_ccmpbe 0x1e9e
+#define MN_setbe 0x1ea5
+#define MN_ctestbe 0x1eab
+#define MN_setzube 0x1eb3
#define MN_movbe (MN_cmovbe + 1)
#define MN_cmovbe (MN_fcmovbe + 1)
#define MN_fcmovbe (MN_cfcmovbe + 1)
-#define MN_cfcmovbe 0x1eb2
-#define MN_lfence 0x1ebb
-#define MN_mfence 0x1ec2
-#define MN_sfence 0x1ec9
-#define MN_cwde 0x1ed0
-#define MN_ffree 0x1ed5
-#define MN_jge 0x1edb
-#define MN_jnge 0x1edf
-#define MN_ccmpnge 0x1ee4
-#define MN_setnge 0x1eec
-#define MN_ctestnge 0x1ef3
-#define MN_setzunge 0x1efc
+#define MN_cfcmovbe 0x1ebb
+#define MN_lfence 0x1ec4
+#define MN_mfence 0x1ecb
+#define MN_sfence 0x1ed2
+#define MN_cwde 0x1ed9
+#define MN_ffree 0x1ede
+#define MN_jge 0x1ee4
+#define MN_jnge 0x1ee8
+#define MN_ccmpnge 0x1eed
+#define MN_setnge 0x1ef5
+#define MN_ctestnge 0x1efc
+#define MN_setzunge 0x1f05
#define MN_cmovnge (MN_cfcmovnge + 2)
-#define MN_cfcmovnge 0x1f05
-#define MN_ccmpge 0x1f0f
-#define MN_pfcmpge 0x1f16
-#define MN_setge 0x1f1e
-#define MN_ctestge 0x1f24
-#define MN_setzuge 0x1f2c
+#define MN_cfcmovnge 0x1f0e
+#define MN_ccmpge 0x1f18
+#define MN_pfcmpge 0x1f1f
+#define MN_setge 0x1f27
+#define MN_ctestge 0x1f2d
+#define MN_setzuge 0x1f35
#define MN_cmovge (MN_cfcmovge + 2)
-#define MN_cfcmovge 0x1f34
-#define MN_je 0x1f3d
-#define MN_fscale 0x1f40
-#define MN_jle 0x1f47
-#define MN_jnle 0x1f4b
-#define MN_ccmpnle 0x1f50
-#define MN_setnle 0x1f58
-#define MN_ctestnle 0x1f5f
-#define MN_setzunle 0x1f68
+#define MN_cfcmovge 0x1f3d
+#define MN_je 0x1f46
+#define MN_fscale 0x1f49
+#define MN_jle 0x1f50
+#define MN_jnle 0x1f54
+#define MN_ccmpnle 0x1f59
+#define MN_setnle 0x1f61
+#define MN_ctestnle 0x1f68
+#define MN_setzunle 0x1f71
#define MN_cmovnle (MN_cfcmovnle + 2)
-#define MN_cfcmovnle 0x1f71
-#define MN_ccmple 0x1f7b
-#define MN_setle 0x1f82
-#define MN_ctestle 0x1f88
-#define MN_setzule 0x1f90
+#define MN_cfcmovnle 0x1f7a
+#define MN_ccmple 0x1f84
+#define MN_setle 0x1f8b
+#define MN_ctestle 0x1f91
+#define MN_setzule 0x1f99
#define MN_cmovle (MN_cfcmovle + 2)
-#define MN_cfcmovle 0x1f98
-#define MN_vmresume 0x1fa1
-#define MN_jne 0x1faa
-#define MN_repne 0x1fae
-#define MN_ccmpne 0x1fb4
-#define MN_loopne 0x1fbb
-#define MN_setne 0x1fc2
-#define MN_ctestne 0x1fc8
-#define MN_setzune 0x1fd0
+#define MN_cfcmovle 0x1fa1
+#define MN_vmresume 0x1faa
+#define MN_jne 0x1fb3
+#define MN_repne 0x1fb7
+#define MN_ccmpne 0x1fbd
+#define MN_loopne 0x1fc4
+#define MN_setne 0x1fcb
+#define MN_ctestne 0x1fd1
+#define MN_setzune 0x1fd9
#define MN_cmovne (MN_fcmovne + 1)
#define MN_fcmovne (MN_cfcmovne + 1)
-#define MN_cfcmovne 0x1fd8
-#define MN_repe 0x1fe1
-#define MN_jpe 0x1fe6
-#define MN_ccmpe 0x1fea
-#define MN_loope 0x1ff0
-#define MN_setpe 0x1ff6
-#define MN_setzupe 0x1ffc
+#define MN_cfcmovne 0x1fe1
+#define MN_repe 0x1fea
+#define MN_jpe 0x1fef
+#define MN_ccmpe 0x1ff3
+#define MN_loope 0x1ff9
+#define MN_setpe 0x1fff
+#define MN_setzupe 0x2005
#define MN_cmovpe (MN_cfcmovpe + 2)
-#define MN_cfcmovpe 0x2004
-#define MN_cdqe 0x200d
-#define MN_xacquire 0x2012
-#define MN_xstore 0x201b
-#define MN_rdfsbase 0x2022
-#define MN_wrfsbase 0x202b
-#define MN_rdgsbase 0x2034
-#define MN_wrgsbase 0x203d
-#define MN_tilerelease 0x2046
-#define MN_xrelease 0x2052
+#define MN_cfcmovpe 0x200d
+#define MN_cdqe 0x2016
+#define MN_xacquire 0x201b
+#define MN_xstore 0x2024
+#define MN_rdfsbase 0x202b
+#define MN_wrfsbase 0x2034
+#define MN_rdgsbase 0x203d
+#define MN_wrgsbase 0x2046
+#define MN_tilerelease 0x204f
+#define MN_xrelease 0x205b
#define MN_pause (MN_tpause + 1)
-#define MN_tpause 0x205b
-#define MN_pvalidate 0x2062
-#define MN_rmpupdate 0x206c
-#define MN_sete 0x2076
-#define MN_vmwrite 0x207b
-#define MN_ptwrite 0x2083
-#define MN_cldemote 0x208b
-#define MN_cteste 0x2094
-#define MN_sha1nexte 0x209b
-#define MN_setzue 0x20a5
-#define MN_leave 0x20ac
-#define MN_fsave 0x20b2
-#define MN_vmsave 0x20b8
-#define MN_fnsave 0x20bf
+#define MN_tpause 0x2064
+#define MN_pvalidate 0x206b
+#define MN_rmpupdate 0x2075
+#define MN_sete 0x207f
+#define MN_vmwrite 0x2084
+#define MN_ptwrite 0x208c
+#define MN_cldemote 0x2094
+#define MN_cteste 0x209d
+#define MN_sha1nexte 0x20a4
+#define MN_setzue 0x20ae
+#define MN_leave 0x20b5
+#define MN_fsave 0x20bb
+#define MN_vmsave 0x20c1
+#define MN_fnsave 0x20c8
#define MN_xsave (MN_fxsave + 1)
-#define MN_fxsave 0x20c6
+#define MN_fxsave 0x20cf
#define MN_cmove (MN_fcmove + 1)
#define MN_fcmove (MN_cfcmove + 1)
-#define MN_cfcmove 0x20cd
-#define MN_serialize 0x20d5
-#define MN_vmxoff 0x20df
-#define MN_lahf 0x20e6
-#define MN_sahf 0x20eb
-#define MN_pushf 0x20f0
-#define MN_ccmpf 0x20f6
-#define MN_popf 0x20fc
-#define MN_bsf 0x2101
-#define MN_retf 0x2105
-#define MN_ctestf 0x210a
-#define MN_neg 0x2111
-#define MN_ldtilecfg 0x2115
-#define MN_sttilecfg 0x211f
+#define MN_cfcmove 0x20d6
+#define MN_serialize 0x20de
+#define MN_vmxoff 0x20e8
+#define MN_lahf 0x20ef
+#define MN_sahf 0x20f4
+#define MN_pushf 0x20f9
+#define MN_ccmpf 0x20ff
+#define MN_popf 0x2105
+#define MN_bsf 0x210a
+#define MN_retf 0x210e
+#define MN_ctestf 0x2113
+#define MN_neg 0x211a
+#define MN_ldtilecfg 0x211e
+#define MN_sttilecfg 0x2128
#define MN_xchg (MN_cmpxchg + 3)
-#define MN_cmpxchg 0x2129
-#define MN_pconfig 0x2131
-#define MN_jg 0x2139
-#define MN_jng 0x213c
-#define MN_ccmpng 0x2140
-#define MN_xstore_rng 0x2147
-#define MN_xstorerng 0x2152
-#define MN_setng 0x215c
-#define MN_ctestng 0x2162
-#define MN_setzung 0x216a
+#define MN_cmpxchg 0x2132
+#define MN_pconfig 0x213a
+#define MN_jg 0x2142
+#define MN_jng 0x2145
+#define MN_ccmpng 0x2149
+#define MN_xstore_rng 0x2150
+#define MN_xstorerng 0x215b
+#define MN_setng 0x2165
+#define MN_ctestng 0x216b
+#define MN_setzung 0x2173
#define MN_cmovng (MN_cfcmovng + 2)
-#define MN_cfcmovng 0x2172
-#define MN_invlpg 0x217b
-#define MN_ccmpg 0x2182
-#define MN_setg 0x2188
-#define MN_ctestg 0x218d
-#define MN_setzug 0x2194
+#define MN_cfcmovng 0x217b
+#define MN_invlpg 0x2184
+#define MN_ccmpg 0x218b
+#define MN_setg 0x2191
+#define MN_ctestg 0x2196
+#define MN_setzug 0x219d
#define MN_cmovg (MN_cfcmovg + 2)
-#define MN_cfcmovg 0x219b
-#define MN_tcvtrowps2bf16h 0x21a3
-#define MN_vmlaunch 0x21b3
-#define MN_prefetch 0x21bc
-#define MN_fxch 0x21c5
-#define MN_tcvtrowps2phh 0x21ca
-#define MN_vfmaddsub231ph 0x21d8
-#define MN_vfmsub231ph 0x21e7
-#define MN_vfnmsub231ph 0x21f3
-#define MN_vfmsubadd231ph 0x2200
-#define MN_vfmadd231ph 0x220f
-#define MN_vfnmadd231ph 0x221b
-#define MN_vfmaddsub132ph 0x2228
-#define MN_vfmsub132ph 0x2237
-#define MN_vfnmsub132ph 0x2243
-#define MN_vfmsubadd132ph 0x2250
-#define MN_vfmadd132ph 0x225f
-#define MN_vfnmadd132ph 0x226b
-#define MN_vcvthf82ph 0x2278
-#define MN_vcvtpd2ph 0x2283
-#define MN_vcvtdq2ph 0x228d
-#define MN_vcvtudq2ph 0x2297
-#define MN_vcvtqq2ph 0x22a2
-#define MN_vcvtuqq2ph 0x22ac
-#define MN_vcvtps2ph 0x22b7
-#define MN_vcvtw2ph 0x22c1
-#define MN_vcvtuw2ph 0x22ca
-#define MN_vfmaddsub213ph 0x22d4
-#define MN_vfmsub213ph 0x22e3
-#define MN_vfnmsub213ph 0x22ef
-#define MN_vfmsubadd213ph 0x22fc
-#define MN_vfmadd213ph 0x230b
-#define MN_vfnmadd213ph 0x2317
-#define MN_vsubph 0x2324
-#define MN_vfcmaddcph 0x232b
-#define MN_vfmaddcph 0x2336
-#define MN_vfcmulcph 0x2340
-#define MN_vfmulcph 0x234a
-#define MN_vaddph 0x2353
-#define MN_vcmpunordph 0x235a
-#define MN_vcmpordph 0x2366
-#define MN_vreduceph 0x2370
-#define MN_vcmpngeph 0x237a
-#define MN_vcmpgeph 0x2384
-#define MN_vrndscaleph 0x238d
-#define MN_vcmpnleph 0x2399
-#define MN_vcmpleph 0x23a3
-#define MN_vcmpfalseph 0x23ac
-#define MN_vcmptrueph 0x23b8
-#define MN_vscalefph 0x23c3
-#define MN_vmulph 0x23cd
-#define MN_vminph 0x23d4
-#define MN_vrcpph 0x23db
-#define MN_vcmpph 0x23e2
-#define MN_vgetexpph 0x23e9
-#define MN_vcmpunord_qph 0x23f3
-#define MN_vcmpord_qph 0x2401
-#define MN_vcmpneqph 0x240d
-#define MN_vcmpeqph 0x2417
-#define MN_vcmpge_oqph 0x2420
-#define MN_vcmple_oqph 0x242c
-#define MN_vcmpfalse_oqph 0x2438
-#define MN_vcmpneq_oqph 0x2447
-#define MN_vcmpeq_oqph 0x2454
-#define MN_vcmpgt_oqph 0x2460
-#define MN_vcmplt_oqph 0x246c
-#define MN_vcmpnge_uqph 0x2478
-#define MN_vcmpnle_uqph 0x2485
-#define MN_vcmptrue_uqph 0x2492
-#define MN_vcmpneq_uqph 0x24a0
-#define MN_vcmpeq_uqph 0x24ad
-#define MN_vcmpngt_uqph 0x24b9
-#define MN_vcmpnlt_uqph 0x24c6
-#define MN_vcmpunord_sph 0x24d3
-#define MN_vcmpord_sph 0x24e1
-#define MN_vcmpge_osph 0x24ed
-#define MN_vcmple_osph 0x24f9
-#define MN_vcmpfalse_osph 0x2505
-#define MN_vcmpneq_osph 0x2514
-#define MN_vcmpeq_osph 0x2521
-#define MN_vcmpgt_osph 0x252d
-#define MN_vcmplt_osph 0x2539
-#define MN_vfpclassph 0x2545
-#define MN_vcmpnge_usph 0x2550
-#define MN_vcmpnle_usph 0x255d
-#define MN_vcmptrue_usph 0x256a
-#define MN_vcmpneq_usph 0x2578
-#define MN_vcmpeq_usph 0x2585
-#define MN_vcmpngt_usph 0x2591
-#define MN_vcmpnlt_usph 0x259e
-#define MN_vcmpngtph 0x25ab
-#define MN_vcmpgtph 0x25b5
-#define MN_vcmpnltph 0x25be
-#define MN_vcmpltph 0x25c8
-#define MN_vgetmantph 0x25d1
-#define MN_vrsqrtph 0x25dc
-#define MN_vsqrtph 0x25e5
-#define MN_vdivph 0x25ed
-#define MN_vminmaxph 0x25f4
-#define MN_vmaxph 0x25fe
-#define MN_vpmacsdqh 0x2605
-#define MN_vpmacssdqh 0x260f
-#define MN_vfmsub231sh 0x261a
-#define MN_vfnmsub231sh 0x2626
-#define MN_vfmadd231sh 0x2633
-#define MN_vfnmadd231sh 0x263f
-#define MN_vfmsub132sh 0x264c
-#define MN_vfnmsub132sh 0x2658
-#define MN_vfmadd132sh 0x2665
-#define MN_vfnmadd132sh 0x2671
-#define MN_vcvtsd2sh 0x267e
-#define MN_vcvtsi2sh 0x2688
-#define MN_vcvtusi2sh 0x2692
-#define MN_vcvtss2sh 0x269d
-#define MN_vfmsub213sh 0x26a7
-#define MN_vfnmsub213sh 0x26b3
-#define MN_vfmadd213sh 0x26c0
-#define MN_vfnmadd213sh 0x26cc
-#define MN_psmash 0x26d9
-#define MN_vsubsh 0x26e0
-#define MN_vfcmaddcsh 0x26e7
-#define MN_vfmaddcsh 0x26f2
-#define MN_vfcmulcsh 0x26fc
-#define MN_vfmulcsh 0x2706
-#define MN_vaddsh 0x270f
-#define MN_vcmpunordsh 0x2716
-#define MN_vcmpordsh 0x2722
-#define MN_vreducesh 0x272c
-#define MN_vcmpngesh 0x2736
-#define MN_vcmpgesh 0x2740
-#define MN_vrndscalesh 0x2749
-#define MN_vcmpnlesh 0x2755
-#define MN_vcmplesh 0x275f
-#define MN_vcmpfalsesh 0x2768
-#define MN_vcmptruesh 0x2774
-#define MN_vscalefsh 0x277f
-#define MN_vucomish 0x2789
-#define MN_vcomish 0x2792
-#define MN_vmulsh 0x279a
-#define MN_vminsh 0x27a1
-#define MN_vrcpsh 0x27a8
-#define MN_vcmpsh 0x27af
-#define MN_vgetexpsh 0x27b6
-#define MN_vcmpunord_qsh 0x27c0
-#define MN_vcmpord_qsh 0x27ce
-#define MN_vcmpneqsh 0x27da
-#define MN_vcmpeqsh 0x27e4
-#define MN_vcmpge_oqsh 0x27ed
-#define MN_vcmple_oqsh 0x27f9
-#define MN_vcmpfalse_oqsh 0x2805
-#define MN_vcmpneq_oqsh 0x2814
-#define MN_vcmpeq_oqsh 0x2821
-#define MN_vcmpgt_oqsh 0x282d
-#define MN_vcmplt_oqsh 0x2839
-#define MN_vcmpnge_uqsh 0x2845
-#define MN_vcmpnle_uqsh 0x2852
-#define MN_vcmptrue_uqsh 0x285f
-#define MN_vcmpneq_uqsh 0x286d
-#define MN_vcmpeq_uqsh 0x287a
-#define MN_vcmpngt_uqsh 0x2886
-#define MN_vcmpnlt_uqsh 0x2893
-#define MN_vcmpunord_ssh 0x28a0
-#define MN_vcmpord_ssh 0x28ae
-#define MN_vcmpge_ossh 0x28ba
-#define MN_vcmple_ossh 0x28c6
-#define MN_vcmpfalse_ossh 0x28d2
-#define MN_vcmpneq_ossh 0x28e1
-#define MN_vcmpeq_ossh 0x28ee
-#define MN_vcmpgt_ossh 0x28fa
-#define MN_vcmplt_ossh 0x2906
-#define MN_vfpclasssh 0x2912
-#define MN_vcmpnge_ussh 0x291d
-#define MN_vcmpnle_ussh 0x292a
-#define MN_vcmptrue_ussh 0x2937
-#define MN_vcmpneq_ussh 0x2945
-#define MN_vcmpeq_ussh 0x2952
-#define MN_vcmpngt_ussh 0x295e
-#define MN_vcmpnlt_ussh 0x296b
-#define MN_vcmpngtsh 0x2978
-#define MN_vcmpgtsh 0x2982
-#define MN_vcmpnltsh 0x298b
-#define MN_vcmpltsh 0x2995
-#define MN_vgetmantsh 0x299e
-#define MN_vrsqrtsh 0x29a9
-#define MN_vsqrtsh 0x29b2
-#define MN_clflush 0x29ba
-#define MN_push 0x29c2
-#define MN_vdivsh 0x29c7
-#define MN_vmovsh 0x29ce
-#define MN_vminmaxsh 0x29d5
-#define MN_vmaxsh 0x29df
-#define MN_vucomxsh 0x29e6
-#define MN_vcomxsh 0x29ef
-#define MN_blci 0x29f7
-#define MN_clgi 0x29fc
-#define MN_stgi 0x2a01
-#define MN_bzhi 0x2a06
-#define MN_cli 0x2a0b
-#define MN_fcomi 0x2a0f
-#define MN_fucomi 0x2a15
-#define MN_feni 0x2a1c
-#define MN_fneni 0x2a21
-#define MN_cvttpd2pi 0x2a27
-#define MN_cvtpd2pi 0x2a31
-#define MN_cvttps2pi 0x2a3a
-#define MN_cvtps2pi 0x2a44
-#define MN_fldpi 0x2a4d
-#define MN_senduipi 0x2a53
-#define MN_fcompi 0x2a5c
-#define MN_fucompi 0x2a63
-#define MN_movdiri 0x2a6b
+#define MN_cfcmovg 0x21a4
+#define MN_tcvtrowps2bf16h 0x21ac
+#define MN_vmlaunch 0x21bc
+#define MN_prefetch 0x21c5
+#define MN_fxch 0x21ce
+#define MN_tcvtrowps2phh 0x21d3
+#define MN_vfmaddsub231ph 0x21e1
+#define MN_vfmsub231ph 0x21f0
+#define MN_vfnmsub231ph 0x21fc
+#define MN_vfmsubadd231ph 0x2209
+#define MN_vfmadd231ph 0x2218
+#define MN_vfnmadd231ph 0x2224
+#define MN_vfmaddsub132ph 0x2231
+#define MN_vfmsub132ph 0x2240
+#define MN_vfnmsub132ph 0x224c
+#define MN_vfmsubadd132ph 0x2259
+#define MN_vfmadd132ph 0x2268
+#define MN_vfnmadd132ph 0x2274
+#define MN_vcvthf82ph 0x2281
+#define MN_vcvtpd2ph 0x228c
+#define MN_vcvtdq2ph 0x2296
+#define MN_vcvtudq2ph 0x22a0
+#define MN_vcvtqq2ph 0x22ab
+#define MN_vcvtuqq2ph 0x22b5
+#define MN_vcvtps2ph 0x22c0
+#define MN_vcvtw2ph 0x22ca
+#define MN_vcvtuw2ph 0x22d3
+#define MN_vfmaddsub213ph 0x22dd
+#define MN_vfmsub213ph 0x22ec
+#define MN_vfnmsub213ph 0x22f8
+#define MN_vfmsubadd213ph 0x2305
+#define MN_vfmadd213ph 0x2314
+#define MN_vfnmadd213ph 0x2320
+#define MN_vsubph 0x232d
+#define MN_vfcmaddcph 0x2334
+#define MN_vfmaddcph 0x233f
+#define MN_vfcmulcph 0x2349
+#define MN_vfmulcph 0x2353
+#define MN_vaddph 0x235c
+#define MN_vcmpunordph 0x2363
+#define MN_vcmpordph 0x236f
+#define MN_vreduceph 0x2379
+#define MN_vcmpngeph 0x2383
+#define MN_vcmpgeph 0x238d
+#define MN_vrndscaleph 0x2396
+#define MN_vcmpnleph 0x23a2
+#define MN_vcmpleph 0x23ac
+#define MN_vcmpfalseph 0x23b5
+#define MN_vcmptrueph 0x23c1
+#define MN_vscalefph 0x23cc
+#define MN_vmulph 0x23d6
+#define MN_vminph 0x23dd
+#define MN_vrcpph 0x23e4
+#define MN_vcmpph 0x23eb
+#define MN_vgetexpph 0x23f2
+#define MN_vcmpunord_qph 0x23fc
+#define MN_vcmpord_qph 0x240a
+#define MN_vcmpneqph 0x2416
+#define MN_vcmpeqph 0x2420
+#define MN_vcmpge_oqph 0x2429
+#define MN_vcmple_oqph 0x2435
+#define MN_vcmpfalse_oqph 0x2441
+#define MN_vcmpneq_oqph 0x2450
+#define MN_vcmpeq_oqph 0x245d
+#define MN_vcmpgt_oqph 0x2469
+#define MN_vcmplt_oqph 0x2475
+#define MN_vcmpnge_uqph 0x2481
+#define MN_vcmpnle_uqph 0x248e
+#define MN_vcmptrue_uqph 0x249b
+#define MN_vcmpneq_uqph 0x24a9
+#define MN_vcmpeq_uqph 0x24b6
+#define MN_vcmpngt_uqph 0x24c2
+#define MN_vcmpnlt_uqph 0x24cf
+#define MN_vcmpunord_sph 0x24dc
+#define MN_vcmpord_sph 0x24ea
+#define MN_vcmpge_osph 0x24f6
+#define MN_vcmple_osph 0x2502
+#define MN_vcmpfalse_osph 0x250e
+#define MN_vcmpneq_osph 0x251d
+#define MN_vcmpeq_osph 0x252a
+#define MN_vcmpgt_osph 0x2536
+#define MN_vcmplt_osph 0x2542
+#define MN_vfpclassph 0x254e
+#define MN_vcmpnge_usph 0x2559
+#define MN_vcmpnle_usph 0x2566
+#define MN_vcmptrue_usph 0x2573
+#define MN_vcmpneq_usph 0x2581
+#define MN_vcmpeq_usph 0x258e
+#define MN_vcmpngt_usph 0x259a
+#define MN_vcmpnlt_usph 0x25a7
+#define MN_vcmpngtph 0x25b4
+#define MN_vcmpgtph 0x25be
+#define MN_vcmpnltph 0x25c7
+#define MN_vcmpltph 0x25d1
+#define MN_vgetmantph 0x25da
+#define MN_vrsqrtph 0x25e5
+#define MN_vsqrtph 0x25ee
+#define MN_vdivph 0x25f6
+#define MN_vminmaxph 0x25fd
+#define MN_vmaxph 0x2607
+#define MN_vpmacsdqh 0x260e
+#define MN_vpmacssdqh 0x2618
+#define MN_vfmsub231sh 0x2623
+#define MN_vfnmsub231sh 0x262f
+#define MN_vfmadd231sh 0x263c
+#define MN_vfnmadd231sh 0x2648
+#define MN_vfmsub132sh 0x2655
+#define MN_vfnmsub132sh 0x2661
+#define MN_vfmadd132sh 0x266e
+#define MN_vfnmadd132sh 0x267a
+#define MN_vcvtsd2sh 0x2687
+#define MN_vcvtsi2sh 0x2691
+#define MN_vcvtusi2sh 0x269b
+#define MN_vcvtss2sh 0x26a6
+#define MN_vfmsub213sh 0x26b0
+#define MN_vfnmsub213sh 0x26bc
+#define MN_vfmadd213sh 0x26c9
+#define MN_vfnmadd213sh 0x26d5
+#define MN_psmash 0x26e2
+#define MN_vsubsh 0x26e9
+#define MN_vfcmaddcsh 0x26f0
+#define MN_vfmaddcsh 0x26fb
+#define MN_vfcmulcsh 0x2705
+#define MN_vfmulcsh 0x270f
+#define MN_vaddsh 0x2718
+#define MN_vcmpunordsh 0x271f
+#define MN_vcmpordsh 0x272b
+#define MN_vreducesh 0x2735
+#define MN_vcmpngesh 0x273f
+#define MN_vcmpgesh 0x2749
+#define MN_vrndscalesh 0x2752
+#define MN_vcmpnlesh 0x275e
+#define MN_vcmplesh 0x2768
+#define MN_vcmpfalsesh 0x2771
+#define MN_vcmptruesh 0x277d
+#define MN_vscalefsh 0x2788
+#define MN_vucomish 0x2792
+#define MN_vcomish 0x279b
+#define MN_vmulsh 0x27a3
+#define MN_vminsh 0x27aa
+#define MN_vrcpsh 0x27b1
+#define MN_vcmpsh 0x27b8
+#define MN_vgetexpsh 0x27bf
+#define MN_vcmpunord_qsh 0x27c9
+#define MN_vcmpord_qsh 0x27d7
+#define MN_vcmpneqsh 0x27e3
+#define MN_vcmpeqsh 0x27ed
+#define MN_vcmpge_oqsh 0x27f6
+#define MN_vcmple_oqsh 0x2802
+#define MN_vcmpfalse_oqsh 0x280e
+#define MN_vcmpneq_oqsh 0x281d
+#define MN_vcmpeq_oqsh 0x282a
+#define MN_vcmpgt_oqsh 0x2836
+#define MN_vcmplt_oqsh 0x2842
+#define MN_vcmpnge_uqsh 0x284e
+#define MN_vcmpnle_uqsh 0x285b
+#define MN_vcmptrue_uqsh 0x2868
+#define MN_vcmpneq_uqsh 0x2876
+#define MN_vcmpeq_uqsh 0x2883
+#define MN_vcmpngt_uqsh 0x288f
+#define MN_vcmpnlt_uqsh 0x289c
+#define MN_vcmpunord_ssh 0x28a9
+#define MN_vcmpord_ssh 0x28b7
+#define MN_vcmpge_ossh 0x28c3
+#define MN_vcmple_ossh 0x28cf
+#define MN_vcmpfalse_ossh 0x28db
+#define MN_vcmpneq_ossh 0x28ea
+#define MN_vcmpeq_ossh 0x28f7
+#define MN_vcmpgt_ossh 0x2903
+#define MN_vcmplt_ossh 0x290f
+#define MN_vfpclasssh 0x291b
+#define MN_vcmpnge_ussh 0x2926
+#define MN_vcmpnle_ussh 0x2933
+#define MN_vcmptrue_ussh 0x2940
+#define MN_vcmpneq_ussh 0x294e
+#define MN_vcmpeq_ussh 0x295b
+#define MN_vcmpngt_ussh 0x2967
+#define MN_vcmpnlt_ussh 0x2974
+#define MN_vcmpngtsh 0x2981
+#define MN_vcmpgtsh 0x298b
+#define MN_vcmpnltsh 0x2994
+#define MN_vcmpltsh 0x299e
+#define MN_vgetmantsh 0x29a7
+#define MN_vrsqrtsh 0x29b2
+#define MN_vsqrtsh 0x29bb
+#define MN_clflush 0x29c3
+#define MN_push 0x29cb
+#define MN_vdivsh 0x29d0
+#define MN_vmovsh 0x29d7
+#define MN_vminmaxsh 0x29de
+#define MN_vmaxsh 0x29e8
+#define MN_vucomxsh 0x29ef
+#define MN_vcomxsh 0x29f8
+#define MN_blci 0x2a00
+#define MN_clgi 0x2a05
+#define MN_stgi 0x2a0a
+#define MN_bzhi 0x2a0f
+#define MN_cli 0x2a14
+#define MN_fcomi 0x2a18
+#define MN_fucomi 0x2a1e
+#define MN_feni 0x2a25
+#define MN_fneni 0x2a2a
+#define MN_cvttpd2pi 0x2a30
+#define MN_cvtpd2pi 0x2a3a
+#define MN_cvttps2pi 0x2a43
+#define MN_cvtps2pi 0x2a4d
+#define MN_fldpi 0x2a56
+#define MN_senduipi 0x2a5c
+#define MN_fcompi 0x2a65
+#define MN_fucompi 0x2a6c
+#define MN_movdiri 0x2a74
#define MN_pcmpestri (MN_vpcmpestri + 1)
-#define MN_vpcmpestri 0x2a73
+#define MN_vpcmpestri 0x2a7c
#define MN_pcmpistri (MN_vpcmpistri + 1)
-#define MN_vpcmpistri 0x2a7e
+#define MN_vpcmpistri 0x2a87
#define MN_cvttsd2si (MN_vcvttsd2si + 1)
-#define MN_vcvttsd2si 0x2a89
+#define MN_vcvttsd2si 0x2a92
#define MN_cvtsd2si (MN_vcvtsd2si + 1)
-#define MN_vcvtsd2si 0x2a94
-#define MN_vcvttsh2si 0x2a9e
-#define MN_vcvtsh2si 0x2aa9
+#define MN_vcvtsd2si 0x2a9d
+#define MN_vcvttsh2si 0x2aa7
+#define MN_vcvtsh2si 0x2ab2
#define MN_cvttss2si (MN_vcvttss2si + 1)
-#define MN_vcvttss2si 0x2ab3
+#define MN_vcvttss2si 0x2abc
#define MN_cvtss2si (MN_vcvtss2si + 1)
-#define MN_vcvtss2si 0x2abe
-#define MN_fdisi 0x2ac8
-#define MN_fndisi 0x2ace
-#define MN_blsi 0x2ad5
-#define MN_vcvttsd2usi 0x2ada
-#define MN_vcvtsd2usi 0x2ae6
-#define MN_vcvttsh2usi 0x2af1
-#define MN_vcvtsh2usi 0x2afd
-#define MN_vcvttss2usi 0x2b08
-#define MN_vcvtss2usi 0x2b14
-#define MN_movnti 0x2b1f
-#define MN_sti 0x2b26
-#define MN_clui 0x2b2a
+#define MN_vcvtss2si 0x2ac7
+#define MN_fdisi 0x2ad1
+#define MN_fndisi 0x2ad7
+#define MN_blsi 0x2ade
+#define MN_vcvttsd2usi 0x2ae3
+#define MN_vcvtsd2usi 0x2aef
+#define MN_vcvttsh2usi 0x2afa
+#define MN_vcvtsh2usi 0x2b06
+#define MN_vcvttss2usi 0x2b11
+#define MN_vcvtss2usi 0x2b1d
+#define MN_movnti 0x2b28
+#define MN_sti 0x2b2f
+#define MN_clui 0x2b33
#define MN_stui (MN_testui + 2)
-#define MN_testui 0x2b2f
-#define MN_notrack 0x2b36
-#define MN_lock 0x2b3e
-#define MN_bndmk 0x2b43
-#define MN_xresldtrk 0x2b49
-#define MN_xsusldtrk 0x2b53
-#define MN_blcmsk 0x2b5d
-#define MN_blsmsk 0x2b64
-#define MN_tzmsk 0x2b6b
-#define MN_tcvtrowps2bf16l 0x2b71
-#define MN_sal 0x2b81
-#define MN_lwpval 0x2b85
-#define MN_bndcl 0x2b8c
-#define MN_rcl 0x2b92
-#define MN_tcvtrowps2phl 0x2b96
-#define MN_shl 0x2ba4
-#define MN_jl 0x2ba8
-#define MN_aesdec256kl 0x2bab
-#define MN_aesenc256kl 0x2bb7
-#define MN_aesdecwide256kl 0x2bc3
-#define MN_aesencwide256kl 0x2bd3
-#define MN_aesdec128kl 0x2be3
-#define MN_aesenc128kl 0x2bef
-#define MN_aesdecwide128kl 0x2bfb
-#define MN_aesencwide128kl 0x2c0b
+#define MN_testui 0x2b38
+#define MN_notrack 0x2b3f
+#define MN_lock 0x2b47
+#define MN_bndmk 0x2b4c
+#define MN_xresldtrk 0x2b52
+#define MN_xsusldtrk 0x2b5c
+#define MN_blcmsk 0x2b66
+#define MN_blsmsk 0x2b6d
+#define MN_tzmsk 0x2b74
+#define MN_tcvtrowps2bf16l 0x2b7a
+#define MN_sal 0x2b8a
+#define MN_lwpval 0x2b8e
+#define MN_bndcl 0x2b95
+#define MN_rcl 0x2b9b
+#define MN_tcvtrowps2phl 0x2b9f
+#define MN_shl 0x2bad
+#define MN_jl 0x2bb1
+#define MN_aesdec256kl 0x2bb4
+#define MN_aesenc256kl 0x2bc0
+#define MN_aesdecwide256kl 0x2bcc
+#define MN_aesencwide256kl 0x2bdc
+#define MN_aesdec128kl 0x2bec
+#define MN_aesenc128kl 0x2bf8
+#define MN_aesdecwide128kl 0x2c04
+#define MN_aesencwide128kl 0x2c14
#define MN_call (MN_tdcall + 2)
-#define MN_tdcall 0x2c1b
-#define MN_lcall 0x2c22
-#define MN_seamcall 0x2c28
-#define MN_vmmcall 0x2c31
-#define MN_vmcall 0x2c39
-#define MN_syscall 0x2c40
-#define MN_vzeroall 0x2c48
-#define MN_fildll 0x2c51
-#define MN_blcfill 0x2c58
-#define MN_blsfill 0x2c60
-#define MN_fistpll 0x2c68
-#define MN_fisttpll 0x2c70
-#define MN_jnl 0x2c79
-#define MN_ccmpnl 0x2c7d
-#define MN_setnl 0x2c84
-#define MN_ctestnl 0x2c8a
-#define MN_setzunl 0x2c92
+#define MN_tdcall 0x2c24
+#define MN_lcall 0x2c2b
+#define MN_seamcall 0x2c31
+#define MN_vmmcall 0x2c3a
+#define MN_vmcall 0x2c42
+#define MN_syscall 0x2c49
+#define MN_vzeroall 0x2c51
+#define MN_fildll 0x2c5a
+#define MN_blcfill 0x2c61
+#define MN_blsfill 0x2c69
+#define MN_fistpll 0x2c71
+#define MN_fisttpll 0x2c79
+#define MN_jnl 0x2c82
+#define MN_ccmpnl 0x2c86
+#define MN_setnl 0x2c8d
+#define MN_ctestnl 0x2c93
+#define MN_setzunl 0x2c9b
#define MN_cmovnl (MN_cfcmovnl + 2)
-#define MN_cfcmovnl 0x2c9a
-#define MN_rol 0x2ca3
-#define MN_ccmpl 0x2ca7
-#define MN_arpl 0x2cad
-#define MN_vpmacsdql 0x2cb2
-#define MN_vpmacssdql 0x2cbc
-#define MN_lsl 0x2cc7
-#define MN_movsl 0x2ccb
-#define MN_setl 0x2cd1
-#define MN_ctestl 0x2cd6
-#define MN_cwtl 0x2cdd
+#define MN_cfcmovnl 0x2ca3
+#define MN_rol 0x2cac
+#define MN_ccmpl 0x2cb0
+#define MN_arpl 0x2cb6
+#define MN_vpmacsdql 0x2cbb
+#define MN_vpmacssdql 0x2cc5
+#define MN_lsl 0x2cd0
+#define MN_movsl 0x2cd4
+#define MN_setl 0x2cda
+#define MN_ctestl 0x2cdf
+#define MN_cwtl 0x2ce6
#define MN_mul (MN_fmul + 1)
#define MN_fmul (MN_pfmul + 1)
-#define MN_pfmul 0x2ce2
+#define MN_pfmul 0x2ceb
#define MN_imul (MN_fimul + 1)
-#define MN_fimul 0x2ce8
-#define MN_montmul 0x2cee
-#define MN_setzul 0x2cf6
+#define MN_fimul 0x2cf1
+#define MN_montmul 0x2cf7
+#define MN_setzul 0x2cff
#define MN_cmovl (MN_cfcmovl + 2)
-#define MN_cfcmovl 0x2cfd
-#define MN_vpmovb2m 0x2d05
-#define MN_vpmovd2m 0x2d0e
-#define MN_vpmovq2m 0x2d17
-#define MN_vpmovw2m 0x2d20
-#define MN_aam 0x2d29
-#define MN_fxam 0x2d2d
-#define MN_fprem 0x2d32
-#define MN_fcom 0x2d38
-#define MN_ficom 0x2d3d
-#define MN_fucom 0x2d43
-#define MN_fsetpm 0x2d49
-#define MN_fnsetpm 0x2d50
-#define MN_frstpm 0x2d58
-#define MN_vpperm 0x2d5f
+#define MN_cfcmovl 0x2d06
+#define MN_vpmovb2m 0x2d0e
+#define MN_vpmovd2m 0x2d17
+#define MN_vpmovq2m 0x2d20
+#define MN_vpmovw2m 0x2d29
+#define MN_aam 0x2d32
+#define MN_fxam 0x2d36
+#define MN_fprem 0x2d3b
+#define MN_fcom 0x2d41
+#define MN_ficom 0x2d46
+#define MN_fucom 0x2d4c
+#define MN_fsetpm 0x2d52
+#define MN_fnsetpm 0x2d59
+#define MN_frstpm 0x2d61
+#define MN_vpperm 0x2d68
#define MN_pcmpestrm (MN_vpcmpestrm + 1)
-#define MN_vpcmpestrm 0x2d66
+#define MN_vpcmpestrm 0x2d6f
#define MN_pcmpistrm (MN_vpcmpistrm + 1)
-#define MN_vpcmpistrm 0x2d71
-#define MN_rsm 0x2d7c
-#define MN_fpatan 0x2d80
-#define MN_fptan 0x2d87
-#define MN_bndcn 0x2d8d
+#define MN_vpcmpistrm 0x2d7a
+#define MN_rsm 0x2d85
+#define MN_fpatan 0x2d89
+#define MN_fptan 0x2d90
+#define MN_bndcn 0x2d96
#define MN_andn (MN_pandn + 1)
#define MN_pandn (MN_vpandn + 1)
-#define MN_vpandn 0x2d93
+#define MN_vpandn 0x2d9c
#define MN_in (MN_xbegin + 4)
-#define MN_xbegin 0x2d9a
-#define MN_pfmin 0x2da1
-#define MN_fsin 0x2da7
-#define MN_vmxon 0x2dac
-#define MN_vmrun 0x2db2
-#define MN_jo 0x2db8
-#define MN_jno 0x2dbb
-#define MN_ccmpno 0x2dbf
-#define MN_setno 0x2dc6
-#define MN_ctestno 0x2dcc
-#define MN_setzuno 0x2dd4
+#define MN_xbegin 0x2da3
+#define MN_pfmin 0x2daa
+#define MN_fsin 0x2db0
+#define MN_vmxon 0x2db5
+#define MN_vmrun 0x2dbb
+#define MN_jo 0x2dc1
+#define MN_jno 0x2dc4
+#define MN_ccmpno 0x2dc8
+#define MN_setno 0x2dcf
+#define MN_ctestno 0x2dd5
+#define MN_setzuno 0x2ddd
#define MN_cmovno (MN_cfcmovno + 2)
-#define MN_cfcmovno 0x2ddc
-#define MN_jpo 0x2de5
-#define MN_ccmpo 0x2de9
-#define MN_setpo 0x2def
-#define MN_setzupo 0x2df5
+#define MN_cfcmovno 0x2de5
+#define MN_jpo 0x2dee
+#define MN_ccmpo 0x2df2
+#define MN_setpo 0x2df8
+#define MN_setzupo 0x2dfe
#define MN_cmovpo (MN_cfcmovpo + 2)
-#define MN_cfcmovpo 0x2dfd
-#define MN_cqo 0x2e06
-#define MN_tilezero 0x2e0a
-#define MN_clzero 0x2e13
-#define MN_seto 0x2e1a
-#define MN_into 0x2e1f
-#define MN_cqto 0x2e24
-#define MN_ctesto 0x2e29
-#define MN_ssto 0x2e30
-#define MN_setzuo 0x2e35
+#define MN_cfcmovpo 0x2e06
+#define MN_cqo 0x2e0f
+#define MN_tilezero 0x2e13
+#define MN_clzero 0x2e1c
+#define MN_seto 0x2e23
+#define MN_into 0x2e28
+#define MN_cqto 0x2e2d
+#define MN_ctesto 0x2e32
+#define MN_ssto 0x2e39
+#define MN_setzuo 0x2e3e
#define MN_cmovo (MN_cfcmovo + 2)
-#define MN_cfcmovo 0x2e3c
-#define MN_push2p 0x2e44
-#define MN_pop2p 0x2e4b
-#define MN_bswap 0x2e51
-#define MN_fsubp 0x2e57
-#define MN_pfrcp 0x2e5d
-#define MN_rdtscp 0x2e63
-#define MN_faddp 0x2e6a
-#define MN_pdep 0x2e70
-#define MN_ffreep 0x2e75
-#define MN_rep 0x2e7c
-#define MN_pushp 0x2e80
-#define MN_fcomip 0x2e86
-#define MN_fucomip 0x2e8d
-#define MN_jp 0x2e95
-#define MN_fmulp 0x2e98
+#define MN_cfcmovo 0x2e45
+#define MN_push2p 0x2e4d
+#define MN_pop2p 0x2e54
+#define MN_bswap 0x2e5a
+#define MN_fsubp 0x2e60
+#define MN_pfrcp 0x2e66
+#define MN_rdtscp 0x2e6c
+#define MN_faddp 0x2e73
+#define MN_pdep 0x2e79
+#define MN_ffreep 0x2e7e
+#define MN_rep 0x2e85
+#define MN_pushp 0x2e89
+#define MN_fcomip 0x2e8f
+#define MN_fucomip 0x2e96
+#define MN_jp 0x2e9e
+#define MN_fmulp 0x2ea1
#define MN_cmp (MN_scmp + 1)
-#define MN_scmp 0x2e9e
+#define MN_scmp 0x2ea7
#define MN_jmp (MN_ljmp + 1)
-#define MN_ljmp 0x2ea3
-#define MN_fcomp 0x2ea8
-#define MN_ficomp 0x2eae
-#define MN_fucomp 0x2eb5
-#define MN_jnp 0x2ebc
-#define MN_setnp 0x2ec0
-#define MN_setzunp 0x2ec6
+#define MN_ljmp 0x2eac
+#define MN_fcomp 0x2eb1
+#define MN_ficomp 0x2eb7
+#define MN_fucomp 0x2ebe
+#define MN_jnp 0x2ec5
+#define MN_setnp 0x2ec9
+#define MN_setzunp 0x2ecf
#define MN_cmovnp (MN_cfcmovnp + 2)
-#define MN_cfcmovnp 0x2ece
+#define MN_cfcmovnp 0x2ed7
#define MN_nop (MN_fnop + 1)
-#define MN_fnop 0x2ed7
-#define MN_loop 0x2edc
-#define MN_pop 0x2ee1
-#define MN_fcompp 0x2ee5
-#define MN_fucompp 0x2eec
-#define MN_popp 0x2ef4
-#define MN_fsubrp 0x2ef9
-#define MN_fdivrp 0x2f00
-#define MN_rstorssp 0x2f07
-#define MN_saveprevssp 0x2f10
-#define MN_setp 0x2f1c
-#define MN_fbstp 0x2f21
-#define MN_fdecstp 0x2f27
-#define MN_fincstp 0x2f2f
-#define MN_fstp 0x2f37
-#define MN_fistp 0x2f3c
-#define MN_fisttp 0x2f42
+#define MN_fnop 0x2ee0
+#define MN_loop 0x2ee5
+#define MN_pop 0x2eea
+#define MN_fcompp 0x2eee
+#define MN_fucompp 0x2ef5
+#define MN_popp 0x2efd
+#define MN_fsubrp 0x2f02
+#define MN_fdivrp 0x2f09
+#define MN_rstorssp 0x2f10
+#define MN_saveprevssp 0x2f19
+#define MN_setp 0x2f25
+#define MN_fbstp 0x2f2a
+#define MN_fdecstp 0x2f30
+#define MN_fincstp 0x2f38
+#define MN_fstp 0x2f40
+#define MN_fistp 0x2f45
+#define MN_fisttp 0x2f4b
#define MN_movddup (MN_vmovddup + 1)
-#define MN_vmovddup 0x2f49
+#define MN_vmovddup 0x2f52
#define MN_movshdup (MN_vmovshdup + 1)
-#define MN_vmovshdup 0x2f52
+#define MN_vmovshdup 0x2f5b
#define MN_movsldup (MN_vmovsldup + 1)
-#define MN_vmovsldup 0x2f5c
-#define MN_setzup 0x2f66
-#define MN_fdivp 0x2f6d
+#define MN_vmovsldup 0x2f65
+#define MN_setzup 0x2f6f
+#define MN_fdivp 0x2f76
#define MN_cmovp (MN_cfcmovp + 2)
-#define MN_cfcmovp 0x2f73
-#define MN_vpbroadcastmb2q 0x2f7b
-#define MN_vpermi2q 0x2f8b
-#define MN_vpmovm2q 0x2f94
-#define MN_movdq2q 0x2f9d
-#define MN_vpermt2q 0x2fa5
-#define MN_vpshaq 0x2fae
-#define MN_vpsraq 0x2fb5
-#define MN_vphaddbq 0x2fbc
-#define MN_vphaddubq 0x2fc5
+#define MN_cfcmovp 0x2f7c
+#define MN_xmodexp 0x2f84
+#define MN_vpbroadcastmb2q 0x2f8c
+#define MN_vpermi2q 0x2f9c
+#define MN_vpmovm2q 0x2fa5
+#define MN_movdq2q 0x2fae
+#define MN_vpermt2q 0x2fb6
+#define MN_vpshaq 0x2fbf
+#define MN_vpsraq 0x2fc6
+#define MN_vphaddbq 0x2fcd
+#define MN_vphaddubq 0x2fd6
#define MN_psubq (MN_vpsubq + 1)
-#define MN_vpsubq 0x2fcf
+#define MN_vpsubq 0x2fe0
#define MN_pmovsxbq (MN_vpmovsxbq + 1)
-#define MN_vpmovsxbq 0x2fd6
+#define MN_vpmovsxbq 0x2fe7
#define MN_pmovzxbq (MN_vpmovzxbq + 1)
-#define MN_vpmovzxbq 0x2fe0
+#define MN_vpmovzxbq 0x2ff1
#define MN_cvttpd2dq (MN_vcvttpd2dq + 1)
-#define MN_vcvttpd2dq 0x2fea
+#define MN_vcvttpd2dq 0x2ffb
#define MN_cvtpd2dq (MN_vcvtpd2dq + 1)
-#define MN_vcvtpd2dq 0x2ff5
-#define MN_vcvttph2dq 0x2fff
-#define MN_vcvtph2dq 0x300a
-#define MN_movq2dq 0x3014
+#define MN_vcvtpd2dq 0x3006
+#define MN_vcvttph2dq 0x3010
+#define MN_vcvtph2dq 0x301b
+#define MN_movq2dq 0x3025
#define MN_cvttps2dq (MN_vcvttps2dq + 1)
-#define MN_vcvttps2dq 0x301c
+#define MN_vcvttps2dq 0x302d
#define MN_cvtps2dq (MN_vcvtps2dq + 1)
-#define MN_vcvtps2dq 0x3027
-#define MN_vphsubdq 0x3031
-#define MN_cdq 0x303a
-#define MN_kaddq 0x303e
+#define MN_vcvtps2dq 0x3038
+#define MN_vphsubdq 0x3042
+#define MN_cdq 0x304b
+#define MN_kaddq 0x304f
#define MN_paddq (MN_vpaddq + 1)
-#define MN_vpaddq 0x3044
-#define MN_vphadddq 0x304b
+#define MN_vpaddq 0x3055
+#define MN_vphadddq 0x305c
#define MN_punpckhdq (MN_vpunpckhdq + 1)
-#define MN_vpunpckhdq 0x3054
-#define MN_kunpckdq 0x305f
-#define MN_vpshldq 0x3068
+#define MN_vpunpckhdq 0x3065
+#define MN_kunpckdq 0x3070
+#define MN_vpshldq 0x3079
#define MN_punpckldq (MN_vpunpckldq + 1)
-#define MN_vpunpckldq 0x3070
+#define MN_vpunpckldq 0x3081
#define MN_pslldq (MN_vpslldq + 1)
-#define MN_vpslldq 0x307b
+#define MN_vpslldq 0x308c
#define MN_psrldq (MN_vpsrldq + 1)
-#define MN_vpsrldq 0x3083
+#define MN_vpsrldq 0x3094
#define MN_pmuldq (MN_vpmuldq + 1)
-#define MN_vpmuldq 0x308b
-#define MN_kandq 0x3093
-#define MN_vpandq 0x3099
-#define MN_vpexpandq 0x30a0
+#define MN_vpmuldq 0x309c
+#define MN_kandq 0x30a4
+#define MN_vpandq 0x30aa
+#define MN_vpexpandq 0x30b1
#define MN_punpckhqdq (MN_vpunpckhqdq + 1)
-#define MN_vpunpckhqdq 0x30aa
+#define MN_vpunpckhqdq 0x30bb
#define MN_pclmulhqhqdq (MN_vpclmulhqhqdq + 1)
-#define MN_vpclmulhqhqdq 0x30b6
+#define MN_vpclmulhqhqdq 0x30c7
#define MN_pclmullqhqdq (MN_vpclmullqhqdq + 1)
-#define MN_vpclmullqhqdq 0x30c4
+#define MN_vpclmullqhqdq 0x30d5
#define MN_punpcklqdq (MN_vpunpcklqdq + 1)
-#define MN_vpunpcklqdq 0x30d2
+#define MN_vpunpcklqdq 0x30e3
#define MN_pclmulhqlqdq (MN_vpclmulhqlqdq + 1)
-#define MN_vpclmulhqlqdq 0x30de
+#define MN_vpclmulhqlqdq 0x30ef
#define MN_pclmullqlqdq (MN_vpclmullqlqdq + 1)
-#define MN_vpclmullqlqdq 0x30ec
+#define MN_vpclmullqlqdq 0x30fd
#define MN_pclmulqdq (MN_vpclmulqdq + 1)
-#define MN_vpclmulqdq 0x30fa
-#define MN_vpgatherdq 0x3105
-#define MN_vpscatterdq 0x3110
-#define MN_vpshrdq 0x311c
+#define MN_vpclmulqdq 0x310b
+#define MN_vpgatherdq 0x3116
+#define MN_vpscatterdq 0x3121
+#define MN_vpshrdq 0x312d
#define MN_movntdq (MN_vmovntdq + 1)
-#define MN_vmovntdq 0x3124
-#define MN_vcvttpd2udq 0x312d
-#define MN_vcvtpd2udq 0x3139
-#define MN_vcvttph2udq 0x3144
-#define MN_vcvtph2udq 0x3150
-#define MN_vcvttps2udq 0x315b
-#define MN_vcvtps2udq 0x3167
-#define MN_vphaddudq 0x3172
+#define MN_vmovntdq 0x3135
+#define MN_vcvttpd2udq 0x313e
+#define MN_vcvtpd2udq 0x314a
+#define MN_vcvttph2udq 0x3155
+#define MN_vcvtph2udq 0x3161
+#define MN_vcvttps2udq 0x316c
+#define MN_vcvtps2udq 0x3178
+#define MN_vphaddudq 0x3183
#define MN_pmuludq (MN_vpmuludq + 1)
-#define MN_vpmuludq 0x317c
+#define MN_vpmuludq 0x318d
#define MN_pmovsxdq (MN_vpmovsxdq + 1)
-#define MN_vpmovsxdq 0x3185
+#define MN_vpmovsxdq 0x3196
#define MN_pmovzxdq (MN_vpmovzxdq + 1)
-#define MN_vpmovzxdq 0x318f
-#define MN_vpcomgeq 0x3199
-#define MN_vpcomleq 0x31a2
-#define MN_vpcmpnleq 0x31ab
-#define MN_vpcmpleq 0x31b5
-#define MN_pfcmpeq 0x31be
-#define MN_vpcomfalseq 0x31c6
-#define MN_vpcomtrueq 0x31d2
-#define MN_vpternlogq 0x31dd
-#define MN_vpshlq 0x31e8
+#define MN_vpmovzxdq 0x31a0
+#define MN_vpcomgeq 0x31aa
+#define MN_vpcomleq 0x31b3
+#define MN_vpcmpnleq 0x31bc
+#define MN_vpcmpleq 0x31c6
+#define MN_pfcmpeq 0x31cf
+#define MN_vpcomfalseq 0x31d7
+#define MN_vpcomtrueq 0x31e3
+#define MN_vpternlogq 0x31ee
+#define MN_vpshlq 0x31f9
#define MN_psllq (MN_vpsllq + 1)
-#define MN_vpsllq 0x31ef
-#define MN_vpmullq 0x31f6
-#define MN_vprolq 0x31fe
+#define MN_vpsllq 0x3200
+#define MN_vpmullq 0x3207
+#define MN_vprolq 0x320f
#define MN_psrlq (MN_vpsrlq + 1)
-#define MN_vpsrlq 0x3205
-#define MN_kshiftlq 0x320c
-#define MN_vpblendmq 0x3215
-#define MN_vptestnmq 0x321f
-#define MN_vpcomq 0x3229
-#define MN_vpermq 0x3230
-#define MN_vptestmq 0x3237
-#define MN_kandnq 0x3240
-#define MN_vpandnq 0x3247
-#define MN_valignq 0x324f
-#define MN_vpcmpq 0x3257
-#define MN_incsspq 0x325e
-#define MN_rdsspq 0x3266
-#define MN_vcvttpd2qq 0x326d
-#define MN_vcvtpd2qq 0x3278
-#define MN_vcvttph2qq 0x3282
-#define MN_vcvtph2qq 0x328d
-#define MN_vcvttps2qq 0x3297
-#define MN_vcvtps2qq 0x32a2
-#define MN_vpcomeqq 0x32ac
-#define MN_vpcomneqq 0x32b5
-#define MN_vpcmpneqq 0x32bf
+#define MN_vpsrlq 0x3216
+#define MN_kshiftlq 0x321d
+#define MN_vpblendmq 0x3226
+#define MN_vptestnmq 0x3230
+#define MN_vpcomq 0x323a
+#define MN_vpermq 0x3241
+#define MN_vptestmq 0x3248
+#define MN_kandnq 0x3251
+#define MN_vpandnq 0x3258
+#define MN_valignq 0x3260
+#define MN_vpcmpq 0x3268
+#define MN_incsspq 0x326f
+#define MN_rdsspq 0x3277
+#define MN_vcvttpd2qq 0x327e
+#define MN_vcvtpd2qq 0x3289
+#define MN_vcvttph2qq 0x3293
+#define MN_vcvtph2qq 0x329e
+#define MN_vcvttps2qq 0x32a8
+#define MN_vcvtps2qq 0x32b3
+#define MN_vpcomeqq 0x32bd
+#define MN_vpcomneqq 0x32c6
+#define MN_vpcmpneqq 0x32d0
#define MN_pcmpeqq (MN_vpcmpeqq + 1)
-#define MN_vpcmpeqq 0x32c9
-#define MN_vpgatherqq 0x32d2
-#define MN_vpscatterqq 0x32dd
-#define MN_vcvttpd2uqq 0x32e9
-#define MN_vcvtpd2uqq 0x32f5
-#define MN_vcvttph2uqq 0x3300
-#define MN_vcvtph2uqq 0x330c
-#define MN_vcvttps2uqq 0x3317
-#define MN_vcvtps2uqq 0x3323
-#define MN_korq 0x332e
-#define MN_kxnorq 0x3333
-#define MN_vporq 0x333a
-#define MN_vprorq 0x3340
-#define MN_kxorq 0x3347
-#define MN_vpxorq 0x334d
+#define MN_vpcmpeqq 0x32da
+#define MN_vpgatherqq 0x32e3
+#define MN_vpscatterqq 0x32ee
+#define MN_vcvttpd2uqq 0x32fa
+#define MN_vcvtpd2uqq 0x3306
+#define MN_vcvttph2uqq 0x3311
+#define MN_vcvtph2uqq 0x331d
+#define MN_vcvttps2uqq 0x3328
+#define MN_vcvtps2uqq 0x3334
+#define MN_korq 0x333f
+#define MN_kxnorq 0x3344
+#define MN_vporq 0x334b
+#define MN_vprorq 0x3351
+#define MN_kxorq 0x3358
+#define MN_vpxorq 0x335e
#define MN_pinsrq (MN_vpinsrq + 1)
-#define MN_vpinsrq 0x3354
-#define MN_kshiftrq 0x335c
+#define MN_vpinsrq 0x3365
+#define MN_kshiftrq 0x336d
#define MN_extrq (MN_pextrq + 1)
#define MN_pextrq (MN_vpextrq + 1)
-#define MN_vpextrq 0x3365
-#define MN_vpabsq 0x336d
-#define MN_vpminsq 0x3374
-#define MN_vmovrsq 0x337c
-#define MN_vpcompressq 0x3384
-#define MN_wrssq 0x3390
-#define MN_wrussq 0x3396
-#define MN_vpmaxsq 0x339d
-#define MN_vp2intersectq 0x33a5
-#define MN_vpconflictq 0x33b3
-#define MN_vpcomgtq 0x33bf
+#define MN_vpextrq 0x3376
+#define MN_vpabsq 0x337e
+#define MN_vpminsq 0x3385
+#define MN_vmovrsq 0x338d
+#define MN_vpcompressq 0x3395
+#define MN_wrssq 0x33a1
+#define MN_wrussq 0x33a7
+#define MN_vpmaxsq 0x33ae
+#define MN_vp2intersectq 0x33b6
+#define MN_vpconflictq 0x33c4
+#define MN_vpcomgtq 0x33d0
#define MN_pcmpgtq (MN_vpcmpgtq + 1)
-#define MN_vpcmpgtq 0x33c8
-#define MN_cltq 0x33d1
-#define MN_vpcomltq 0x33d6
-#define MN_vpcmpnltq 0x33df
-#define MN_vpcmpltq 0x33e9
-#define MN_vpopcntq 0x33f2
-#define MN_vplzcntq 0x33fb
-#define MN_movntq 0x3404
-#define MN_knotq 0x340b
-#define MN_vprotq 0x3411
-#define MN_insertq 0x3418
-#define MN_vpbroadcastq 0x3420
-#define MN_ktestq 0x342d
-#define MN_kortestq 0x3434
-#define MN_vpcomgeuq 0x343d
-#define MN_vpcomleuq 0x3447
-#define MN_vpcmpnleuq 0x3451
-#define MN_vpcmpleuq 0x345c
-#define MN_vpcomfalseuq 0x3466
-#define MN_vpcomtrueuq 0x3473
-#define MN_vpmadd52huq 0x347f
-#define MN_vpmadd52luq 0x348b
-#define MN_vpcomuq 0x3497
-#define MN_vpminuq 0x349f
-#define MN_vpcmpuq 0x34a7
-#define MN_vpcomequq 0x34af
-#define MN_vpcomnequq 0x34b9
-#define MN_vpcmpnequq 0x34c4
-#define MN_vpcmpequq 0x34cf
-#define MN_vpcomgtuq 0x34d9
-#define MN_vpcomltuq 0x34e3
-#define MN_vpcmpnltuq 0x34ed
-#define MN_vpcmpltuq 0x34f8
-#define MN_vpmaxuq 0x3502
-#define MN_vpsravq 0x350a
-#define MN_vpshldvq 0x3512
-#define MN_vpshrdvq 0x351b
-#define MN_vpsllvq 0x3524
-#define MN_vprolvq 0x352c
-#define MN_vpsrlvq 0x3534
+#define MN_vpcmpgtq 0x33d9
+#define MN_cltq 0x33e2
+#define MN_vpcomltq 0x33e7
+#define MN_vpcmpnltq 0x33f0
+#define MN_vpcmpltq 0x33fa
+#define MN_vpopcntq 0x3403
+#define MN_vplzcntq 0x340c
+#define MN_movntq 0x3415
+#define MN_knotq 0x341c
+#define MN_vprotq 0x3422
+#define MN_insertq 0x3429
+#define MN_vpbroadcastq 0x3431
+#define MN_ktestq 0x343e
+#define MN_kortestq 0x3445
+#define MN_vpcomgeuq 0x344e
+#define MN_vpcomleuq 0x3458
+#define MN_vpcmpnleuq 0x3462
+#define MN_vpcmpleuq 0x346d
+#define MN_vpcomfalseuq 0x3477
+#define MN_vpcomtrueuq 0x3484
+#define MN_vpmadd52huq 0x3490
+#define MN_vpmadd52luq 0x349c
+#define MN_vpcomuq 0x34a8
+#define MN_vpminuq 0x34b0
+#define MN_vpcmpuq 0x34b8
+#define MN_vpcomequq 0x34c0
+#define MN_vpcomnequq 0x34ca
+#define MN_vpcmpnequq 0x34d5
+#define MN_vpcmpequq 0x34e0
+#define MN_vpcomgtuq 0x34ea
+#define MN_vpcomltuq 0x34f4
+#define MN_vpcmpnltuq 0x34fe
+#define MN_vpcmpltuq 0x3509
+#define MN_vpmaxuq 0x3513
+#define MN_vpsravq 0x351b
+#define MN_vpshldvq 0x3523
+#define MN_vpshrdvq 0x352c
+#define MN_vpsllvq 0x3535
+#define MN_vprolvq 0x353d
+#define MN_vpsrlvq 0x3545
#define MN_movq (MN_kmovq + 1)
#define MN_kmovq (MN_maskmovq + 3)
#define MN_maskmovq (MN_vpmaskmovq + 2)
-#define MN_vpmaskmovq 0x353c
-#define MN_vmovq 0x3547
-#define MN_vprorvq 0x354d
-#define MN_vphaddwq 0x3555
-#define MN_vphadduwq 0x355e
+#define MN_vpmaskmovq 0x354d
+#define MN_vmovq 0x3558
+#define MN_vprorvq 0x355e
+#define MN_vphaddwq 0x3566
+#define MN_vphadduwq 0x356f
#define MN_pmovsxwq (MN_vpmovsxwq + 1)
-#define MN_vpmovsxwq 0x3568
+#define MN_vpmovsxwq 0x3579
#define MN_pmovzxwq (MN_vpmovzxwq + 1)
-#define MN_vpmovzxwq 0x3572
-#define MN_rex_r 0x357c
-#define MN_vmclear 0x3582
-#define MN_lar 0x358a
-#define MN_sar 0x358e
+#define MN_vpmovzxwq 0x3583
+#define MN_rex_r 0x358d
+#define MN_vmclear 0x3593
+#define MN_lar 0x359b
+#define MN_sar 0x359f
#define MN_fsubr (MN_pfsubr + 1)
-#define MN_pfsubr 0x3592
-#define MN_fisubr 0x3599
-#define MN_rcr 0x35a0
-#define MN_vzeroupper 0x35a4
+#define MN_pfsubr 0x35a3
+#define MN_fisubr 0x35aa
+#define MN_rcr 0x35b1
+#define MN_vzeroupper 0x35b5
#define MN_enter (MN_sysenter + 3)
-#define MN_sysenter 0x35af
-#define MN_shr 0x35b8
-#define MN_clr 0x35bc
+#define MN_sysenter 0x35c0
+#define MN_shr 0x35c9
+#define MN_clr 0x35cd
#define MN_palignr (MN_vpalignr + 1)
-#define MN_vpalignr 0x35c0
+#define MN_vpalignr 0x35d1
#define MN_or (MN_aor + 1)
-#define MN_aor 0x35c9
+#define MN_aor 0x35da
#define MN_por (MN_vpor + 1)
-#define MN_vpor 0x35cd
-#define MN_ror 0x35d2
+#define MN_vpor 0x35de
+#define MN_ror 0x35e3
#define MN_monitor (MN_umonitor + 1)
-#define MN_umonitor 0x35d6
-#define MN_frstor 0x35df
+#define MN_umonitor 0x35e7
+#define MN_frstor 0x35f0
#define MN_xrstor (MN_fxrstor + 1)
-#define MN_fxrstor 0x35e6
+#define MN_fxrstor 0x35f7
#define MN_xor (MN_axor + 1)
-#define MN_axor 0x35ee
+#define MN_axor 0x35ff
#define MN_pxor (MN_vpxor + 1)
-#define MN_vpxor 0x35f3
-#define MN_verr 0x35f9
-#define MN_bsr 0x35fe
+#define MN_vpxor 0x3604
+#define MN_verr 0x360a
+#define MN_bsr 0x360f
#define MN_ldmxcsr (MN_vldmxcsr + 1)
-#define MN_vldmxcsr 0x3602
+#define MN_vldmxcsr 0x3613
#define MN_stmxcsr (MN_vstmxcsr + 1)
-#define MN_vstmxcsr 0x360b
-#define MN_blsr 0x3614
+#define MN_vstmxcsr 0x361c
+#define MN_blsr 0x3625
#define MN_rdmsr (MN_urdmsr + 1)
-#define MN_urdmsr 0x3619
+#define MN_urdmsr 0x362a
#define MN_wrmsr (MN_uwrmsr + 1)
-#define MN_uwrmsr 0x3620
-#define MN_btr 0x3627
-#define MN_xcrypt_ctr 0x362b
-#define MN_xcryptctr 0x3636
-#define MN_ltr 0x3640
-#define MN_str 0x3644
-#define MN_bextr 0x3648
-#define MN_fdivr 0x364e
-#define MN_fidivr 0x3654
-#define MN_rex_wr 0x365b
-#define MN_vcvt2ph2bf8s 0x3662
-#define MN_vcvtbiasph2bf8s 0x366f
-#define MN_vcvtph2bf8s 0x367f
-#define MN_vcvt2ph2hf8s 0x368b
-#define MN_vcvtbiasph2hf8s 0x3698
-#define MN_vcvtph2hf8s 0x36a8
-#define MN_aas 0x36b4
-#define MN_scas 0x36b8
-#define MN_das 0x36bd
-#define MN_fabs 0x36c1
-#define MN_jmpabs 0x36c6
-#define MN_movabs 0x36cd
-#define MN_vcvttbf162ibs 0x36d4
-#define MN_vcvtbf162ibs 0x36e2
-#define MN_vcvttph2ibs 0x36ef
-#define MN_vcvtph2ibs 0x36fb
-#define MN_vcvttps2ibs 0x3706
-#define MN_vcvtps2ibs 0x3712
-#define MN_vcvttbf162iubs 0x371d
-#define MN_vcvtbf162iubs 0x372c
-#define MN_vcvttph2iubs 0x373a
-#define MN_vcvtph2iubs 0x3747
-#define MN_vcvttps2iubs 0x3753
-#define MN_vcvtps2iubs 0x3760
+#define MN_uwrmsr 0x3631
+#define MN_btr 0x3638
+#define MN_xcrypt_ctr 0x363c
+#define MN_xcryptctr 0x3647
+#define MN_ltr 0x3651
+#define MN_str 0x3655
+#define MN_bextr 0x3659
+#define MN_fdivr 0x365f
+#define MN_fidivr 0x3665
+#define MN_rex_wr 0x366c
+#define MN_vcvt2ph2bf8s 0x3673
+#define MN_vcvtbiasph2bf8s 0x3680
+#define MN_vcvtph2bf8s 0x3690
+#define MN_vcvt2ph2hf8s 0x369c
+#define MN_vcvtbiasph2hf8s 0x36a9
+#define MN_vcvtph2hf8s 0x36b9
+#define MN_aas 0x36c5
+#define MN_scas 0x36c9
+#define MN_das 0x36ce
+#define MN_fabs 0x36d2
+#define MN_jmpabs 0x36d7
+#define MN_movabs 0x36de
+#define MN_vcvttbf162ibs 0x36e5
+#define MN_vcvtbf162ibs 0x36f3
+#define MN_vcvttph2ibs 0x3700
+#define MN_vcvtph2ibs 0x370c
+#define MN_vcvttps2ibs 0x3717
+#define MN_vcvtps2ibs 0x3723
+#define MN_vcvttbf162iubs 0x372e
+#define MN_vcvtbf162iubs 0x373d
+#define MN_vcvttph2iubs 0x374b
+#define MN_vcvtph2iubs 0x3758
+#define MN_vcvttps2iubs 0x3764
+#define MN_vcvtps2iubs 0x3771
#define MN_cs (MN_blcs + 2)
-#define MN_blcs 0x376c
+#define MN_blcs 0x377d
#define MN_ds (MN_lds + 1)
-#define MN_lds 0x3771
-#define MN_enqcmds 0x3775
-#define MN_lods 0x377d
-#define MN_vpdpbssds 0x3782
-#define MN_vp4dpwssds 0x378c
-#define MN_vpdpwssds 0x3797
-#define MN_vpdpbusds 0x37a1
-#define MN_vpdpwusds 0x37ab
-#define MN_vpdpbsuds 0x37b5
-#define MN_vpdpwsuds 0x37bf
-#define MN_vpdpbuuds 0x37c9
-#define MN_vpdpwuuds 0x37d3
+#define MN_lds 0x3782
+#define MN_enqcmds 0x3786
+#define MN_lods 0x378e
+#define MN_vpdpbssds 0x3793
+#define MN_vp4dpwssds 0x379d
+#define MN_vpdpwssds 0x37a8
+#define MN_vpdpbusds 0x37b2
+#define MN_vpdpwusds 0x37bc
+#define MN_vpdpbsuds 0x37c6
+#define MN_vpdpwsuds 0x37d0
+#define MN_vpdpbuuds 0x37da
+#define MN_vpdpwuuds 0x37e4
#define MN_es (MN_les + 1)
-#define MN_les 0x37dd
-#define MN_xsaves 0x37e1
+#define MN_les 0x37ee
+#define MN_xsaves 0x37f2
#define MN_fs (MN_lfs + 1)
-#define MN_lfs 0x37e8
+#define MN_lfs 0x37f9
#define MN_gs (MN_lkgs + 2)
-#define MN_lkgs 0x37ec
-#define MN_lgs 0x37f1
-#define MN_swapgs 0x37f5
-#define MN_fchs 0x37fc
-#define MN_vcvttsd2sis 0x3801
-#define MN_vcvttss2sis 0x380d
-#define MN_vcvttsd2usis 0x3819
-#define MN_vcvttss2usis 0x3826
-#define MN_js 0x3833
-#define MN_encls 0x3836
+#define MN_lkgs 0x37fd
+#define MN_lgs 0x3802
+#define MN_swapgs 0x3806
+#define MN_fchs 0x380d
+#define MN_vcvttsd2sis 0x3812
+#define MN_vcvttss2sis 0x381e
+#define MN_vcvttsd2usis 0x382a
+#define MN_vcvttss2usis 0x3837
+#define MN_js 0x3844
+#define MN_encls 0x3847
#define MN_emms (MN_femms + 1)
-#define MN_femms 0x383c
+#define MN_femms 0x384d
#define MN_ins (MN_lwpins + 3)
-#define MN_lwpins 0x3842
-#define MN_jns 0x3849
-#define MN_ccmpns 0x384d
-#define MN_wrmsrns 0x3854
-#define MN_setns 0x385c
-#define MN_ctestns 0x3862
-#define MN_setzuns 0x386a
+#define MN_lwpins 0x3853
+#define MN_jns 0x385a
+#define MN_ccmpns 0x385e
+#define MN_wrmsrns 0x3865
+#define MN_setns 0x386d
+#define MN_ctestns 0x3873
+#define MN_setzuns 0x387b
#define MN_cmovns (MN_cfcmovns + 2)
-#define MN_cfcmovns 0x3872
-#define MN_fcos 0x387b
-#define MN_fsincos 0x3880
-#define MN_stos 0x3888
-#define MN_vfmaddsub231ps 0x388d
-#define MN_vfmsub231ps 0x389c
-#define MN_vfnmsub231ps 0x38a8
-#define MN_vfmsubadd231ps 0x38b5
-#define MN_vfmadd231ps 0x38c4
-#define MN_vfnmadd231ps 0x38d0
-#define MN_vfmaddsub132ps 0x38dd
-#define MN_vfmsub132ps 0x38ec
-#define MN_vfnmsub132ps 0x38f8
-#define MN_vfmsubadd132ps 0x3905
-#define MN_vfmadd132ps 0x3914
-#define MN_vfnmadd132ps 0x3920
+#define MN_cfcmovns 0x3883
+#define MN_fcos 0x388c
+#define MN_fsincos 0x3891
+#define MN_stos 0x3899
+#define MN_vfmaddsub231ps 0x389e
+#define MN_vfmsub231ps 0x38ad
+#define MN_vfnmsub231ps 0x38b9
+#define MN_vfmsubadd231ps 0x38c6
+#define MN_vfmadd231ps 0x38d5
+#define MN_vfnmadd231ps 0x38e1
+#define MN_vfmaddsub132ps 0x38ee
+#define MN_vfmsub132ps 0x38fd
+#define MN_vfnmsub132ps 0x3909
+#define MN_vfmsubadd132ps 0x3916
+#define MN_vfmadd132ps 0x3925
+#define MN_vfnmadd132ps 0x3931
#define MN_tmmultf32ps (MN_ttmmultf32ps + 1)
-#define MN_ttmmultf32ps 0x392d
-#define MN_vcvtneebf162ps 0x393a
-#define MN_vbcstnebf162ps 0x3949
-#define MN_vcvtneobf162ps 0x3958
+#define MN_ttmmultf32ps 0x393e
+#define MN_vcvtneebf162ps 0x394b
+#define MN_vbcstnebf162ps 0x395a
+#define MN_vcvtneobf162ps 0x3969
#define MN_cvtpd2ps (MN_vcvtpd2ps + 1)
-#define MN_vcvtpd2ps 0x3967
-#define MN_tcvtrowd2ps 0x3971
-#define MN_vcvtneeph2ps 0x397d
-#define MN_vcvtneoph2ps 0x398a
-#define MN_vcvtph2ps 0x3997
-#define MN_vbcstnesh2ps 0x39a1
-#define MN_vpermi2ps 0x39ae
-#define MN_cvtpi2ps 0x39b8
-#define MN_vpermil2ps 0x39c1
-#define MN_vexp2ps 0x39cc
+#define MN_vcvtpd2ps 0x3978
+#define MN_tcvtrowd2ps 0x3982
+#define MN_vcvtneeph2ps 0x398e
+#define MN_vcvtneoph2ps 0x399b
+#define MN_vcvtph2ps 0x39a8
+#define MN_vbcstnesh2ps 0x39b2
+#define MN_vpermi2ps 0x39bf
+#define MN_cvtpi2ps 0x39c9
+#define MN_vpermil2ps 0x39d2
+#define MN_vexp2ps 0x39dd
#define MN_cvtdq2ps (MN_vcvtdq2ps + 1)
-#define MN_vcvtdq2ps 0x39d4
-#define MN_vcvtudq2ps 0x39de
-#define MN_vcvtqq2ps 0x39e9
-#define MN_vcvtuqq2ps 0x39f3
-#define MN_vpermt2ps 0x39fe
-#define MN_vfmaddsub213ps 0x3a08
-#define MN_vfmsub213ps 0x3a17
-#define MN_vfnmsub213ps 0x3a23
-#define MN_vfmsubadd213ps 0x3a30
-#define MN_vfmadd213ps 0x3a3f
-#define MN_vfnmadd213ps 0x3a4b
-#define MN_vrcp14ps 0x3a58
-#define MN_vrsqrt14ps 0x3a61
+#define MN_vcvtdq2ps 0x39e5
+#define MN_vcvtudq2ps 0x39ef
+#define MN_vcvtqq2ps 0x39fa
+#define MN_vcvtuqq2ps 0x3a04
+#define MN_vpermt2ps 0x3a0f
+#define MN_vfmaddsub213ps 0x3a19
+#define MN_vfmsub213ps 0x3a28
+#define MN_vfnmsub213ps 0x3a34
+#define MN_vfmsubadd213ps 0x3a41
+#define MN_vfmadd213ps 0x3a50
+#define MN_vfnmadd213ps 0x3a5c
+#define MN_vrcp14ps 0x3a69
+#define MN_vrsqrt14ps 0x3a72
#define MN_tdpbf16ps (MN_ttdpbf16ps + 1)
-#define MN_ttdpbf16ps 0x3a6c
-#define MN_vdpbf16ps 0x3a77
+#define MN_ttdpbf16ps 0x3a7d
+#define MN_vdpbf16ps 0x3a88
#define MN_tcmmrlfp16ps (MN_ttcmmrlfp16ps + 1)
-#define MN_ttcmmrlfp16ps 0x3a81
+#define MN_ttcmmrlfp16ps 0x3a92
#define MN_tcmmimfp16ps (MN_tconjtcmmimfp16ps + 5)
-#define MN_tconjtcmmimfp16ps 0x3a8f
-#define MN_ttcmmimfp16ps 0x3aa1
+#define MN_tconjtcmmimfp16ps 0x3aa0
+#define MN_ttcmmimfp16ps 0x3ab2
#define MN_tdpfp16ps (MN_ttdpfp16ps + 1)
-#define MN_ttdpfp16ps 0x3aaf
-#define MN_vrcp28ps 0x3aba
-#define MN_vrsqrt28ps 0x3ac3
-#define MN_tdphbf8ps 0x3ace
-#define MN_tdpbf8ps 0x3ad8
-#define MN_tdpbhf8ps 0x3ae1
-#define MN_tdphf8ps 0x3aeb
+#define MN_ttdpfp16ps 0x3ac0
+#define MN_vrcp28ps 0x3acb
+#define MN_vrsqrt28ps 0x3ad4
+#define MN_tdphbf8ps 0x3adf
+#define MN_tdpbf8ps 0x3ae9
+#define MN_tdpbhf8ps 0x3af2
+#define MN_tdphf8ps 0x3afc
#define MN_movaps (MN_vmovaps + 1)
-#define MN_vmovaps 0x3af4
+#define MN_vmovaps 0x3b05
#define MN_subps (MN_addsubps + 3)
#define MN_addsubps (MN_vfmaddsubps + 3)
-#define MN_vfmaddsubps 0x3afc
-#define MN_vaddsubps 0x3b08
+#define MN_vfmaddsubps 0x3b0d
+#define MN_vaddsubps 0x3b19
#define MN_hsubps (MN_vhsubps + 1)
-#define MN_vhsubps 0x3b12
-#define MN_vfmsubps 0x3b1a
-#define MN_vfnmsubps 0x3b23
-#define MN_vsubps 0x3b2d
-#define MN_vgatherpf0dps 0x3b34
-#define MN_vscatterpf0dps 0x3b42
-#define MN_vgatherpf1dps 0x3b51
-#define MN_vscatterpf1dps 0x3b5f
+#define MN_vhsubps 0x3b23
+#define MN_vfmsubps 0x3b2b
+#define MN_vfnmsubps 0x3b34
+#define MN_vsubps 0x3b3e
+#define MN_vgatherpf0dps 0x3b45
+#define MN_vscatterpf0dps 0x3b53
+#define MN_vgatherpf1dps 0x3b62
+#define MN_vscatterpf1dps 0x3b70
#define MN_addps (MN_vfmsubaddps + 6)
-#define MN_vfmsubaddps 0x3b6e
+#define MN_vfmsubaddps 0x3b7f
#define MN_haddps (MN_vhaddps + 1)
-#define MN_vhaddps 0x3b7a
-#define MN_v4fmaddps 0x3b82
-#define MN_vfmaddps 0x3b8c
-#define MN_v4fnmaddps 0x3b95
-#define MN_vfnmaddps 0x3ba0
-#define MN_vaddps 0x3baa
+#define MN_vhaddps 0x3b8b
+#define MN_v4fmaddps 0x3b93
+#define MN_vfmaddps 0x3b9d
+#define MN_v4fnmaddps 0x3ba6
+#define MN_vfnmaddps 0x3bb1
+#define MN_vaddps 0x3bbb
#define MN_andps (MN_vexpandps + 4)
-#define MN_vexpandps 0x3bb1
-#define MN_vandps 0x3bbb
+#define MN_vexpandps 0x3bc2
+#define MN_vandps 0x3bcc
#define MN_blendps (MN_vblendps + 1)
-#define MN_vblendps 0x3bc2
+#define MN_vblendps 0x3bd3
#define MN_roundps (MN_vroundps + 1)
-#define MN_vroundps 0x3bcb
-#define MN_vgatherdps 0x3bd4
-#define MN_vscatterdps 0x3bdf
+#define MN_vroundps 0x3bdc
+#define MN_vgatherdps 0x3be5
+#define MN_vscatterdps 0x3bf0
#define MN_cmpunordps (MN_vcmpunordps + 1)
-#define MN_vcmpunordps 0x3beb
+#define MN_vcmpunordps 0x3bfc
#define MN_cmpordps (MN_vcmpordps + 1)
-#define MN_vcmpordps 0x3bf7
-#define MN_vreduceps 0x3c01
-#define MN_vrangeps 0x3c0b
-#define MN_vcmpngeps 0x3c14
-#define MN_vcmpgeps 0x3c1e
-#define MN_vrndscaleps 0x3c27
+#define MN_vcmpordps 0x3c08
+#define MN_vreduceps 0x3c12
+#define MN_vrangeps 0x3c1c
+#define MN_vcmpngeps 0x3c25
+#define MN_vcmpgeps 0x3c2f
+#define MN_vrndscaleps 0x3c38
#define MN_cmpnleps (MN_vcmpnleps + 1)
-#define MN_vcmpnleps 0x3c33
+#define MN_vcmpnleps 0x3c44
#define MN_cmpleps (MN_vcmpleps + 1)
-#define MN_vcmpleps 0x3c3d
-#define MN_vcmpfalseps 0x3c46
-#define MN_vcmptrueps 0x3c52
-#define MN_vscalefps 0x3c5d
+#define MN_vcmpleps 0x3c4e
+#define MN_vcmpfalseps 0x3c57
+#define MN_vcmptrueps 0x3c63
+#define MN_vscalefps 0x3c6e
#define MN_shufps (MN_vshufps + 1)
-#define MN_vshufps 0x3c67
+#define MN_vshufps 0x3c78
#define MN_unpckhps (MN_vunpckhps + 1)
-#define MN_vunpckhps 0x3c6f
+#define MN_vunpckhps 0x3c80
#define MN_movlhps (MN_vmovlhps + 1)
-#define MN_vmovlhps 0x3c79
-#define MN_vdpphps 0x3c82
+#define MN_vmovlhps 0x3c8a
+#define MN_vdpphps 0x3c93
#define MN_movhps (MN_vmovhps + 1)
-#define MN_vmovhps 0x3c8a
+#define MN_vmovhps 0x3c9b
#define MN_movmskps (MN_vmovmskps + 1)
-#define MN_vmovmskps 0x3c92
+#define MN_vmovmskps 0x3ca3
#define MN_movhlps (MN_vmovhlps + 1)
-#define MN_vmovhlps 0x3c9c
-#define MN_vpermilps 0x3ca5
+#define MN_vmovhlps 0x3cad
+#define MN_vpermilps 0x3cb6
#define MN_unpcklps (MN_vunpcklps + 1)
-#define MN_vunpcklps 0x3caf
+#define MN_vunpcklps 0x3cc0
#define MN_mulps (MN_vmulps + 1)
-#define MN_vmulps 0x3cb9
+#define MN_vmulps 0x3cca
#define MN_movlps (MN_vmovlps + 1)
-#define MN_vmovlps 0x3cc0
+#define MN_vmovlps 0x3cd1
#define MN_cmps (MN_ccmps + 1)
-#define MN_ccmps 0x3cc8
-#define MN_vblendmps 0x3cce
-#define MN_vfixupimmps 0x3cd8
-#define MN_vpermps 0x3ce4
+#define MN_ccmps 0x3cd9
+#define MN_vblendmps 0x3cdf
+#define MN_vfixupimmps 0x3ce9
+#define MN_vpermps 0x3cf5
#define MN_andnps (MN_vandnps + 1)
-#define MN_vandnps 0x3cec
+#define MN_vandnps 0x3cfd
#define MN_minps (MN_vminps + 1)
-#define MN_vminps 0x3cf4
-#define MN_seamops 0x3cfb
+#define MN_vminps 0x3d05
+#define MN_seamops 0x3d0c
#define MN_rcpps (MN_vrcpps + 1)
-#define MN_vrcpps 0x3d03
+#define MN_vrcpps 0x3d14
#define MN_dpps (MN_vdpps + 1)
-#define MN_vdpps 0x3d0a
+#define MN_vdpps 0x3d1b
#define MN_cmpps (MN_vcmpps + 1)
-#define MN_vcmpps 0x3d10
-#define MN_vgetexpps 0x3d17
-#define MN_vgatherpf0qps 0x3d21
-#define MN_vscatterpf0qps 0x3d2f
-#define MN_vgatherpf1qps 0x3d3e
-#define MN_vscatterpf1qps 0x3d4c
-#define MN_vcmpunord_qps 0x3d5b
-#define MN_vcmpord_qps 0x3d69
+#define MN_vcmpps 0x3d21
+#define MN_vgetexpps 0x3d28
+#define MN_vgatherpf0qps 0x3d32
+#define MN_vscatterpf0qps 0x3d40
+#define MN_vgatherpf1qps 0x3d4f
+#define MN_vscatterpf1qps 0x3d5d
+#define MN_vcmpunord_qps 0x3d6c
+#define MN_vcmpord_qps 0x3d7a
#define MN_cmpneqps (MN_vcmpneqps + 1)
-#define MN_vcmpneqps 0x3d75
+#define MN_vcmpneqps 0x3d86
#define MN_cmpeqps (MN_vcmpeqps + 1)
-#define MN_vcmpeqps 0x3d7f
-#define MN_vcmpge_oqps 0x3d88
-#define MN_vcmple_oqps 0x3d94
-#define MN_vcmpfalse_oqps 0x3da0
-#define MN_vcmpneq_oqps 0x3daf
-#define MN_vcmpeq_oqps 0x3dbc
-#define MN_vcmpgt_oqps 0x3dc8
-#define MN_vcmplt_oqps 0x3dd4
-#define MN_vgatherqps 0x3de0
-#define MN_vscatterqps 0x3deb
-#define MN_vcmpnge_uqps 0x3df7
-#define MN_vcmpnle_uqps 0x3e04
-#define MN_vcmptrue_uqps 0x3e11
-#define MN_vcmpneq_uqps 0x3e1f
-#define MN_vcmpeq_uqps 0x3e2c
-#define MN_vcmpngt_uqps 0x3e38
-#define MN_vcmpnlt_uqps 0x3e45
+#define MN_vcmpeqps 0x3d90
+#define MN_vcmpge_oqps 0x3d99
+#define MN_vcmple_oqps 0x3da5
+#define MN_vcmpfalse_oqps 0x3db1
+#define MN_vcmpneq_oqps 0x3dc0
+#define MN_vcmpeq_oqps 0x3dcd
+#define MN_vcmpgt_oqps 0x3dd9
+#define MN_vcmplt_oqps 0x3de5
+#define MN_vgatherqps 0x3df1
+#define MN_vscatterqps 0x3dfc
+#define MN_vcmpnge_uqps 0x3e08
+#define MN_vcmpnle_uqps 0x3e15
+#define MN_vcmptrue_uqps 0x3e22
+#define MN_vcmpneq_uqps 0x3e30
+#define MN_vcmpeq_uqps 0x3e3d
+#define MN_vcmpngt_uqps 0x3e49
+#define MN_vcmpnlt_uqps 0x3e56
#define MN_orps (MN_vorps + 1)
-#define MN_vorps 0x3e52
+#define MN_vorps 0x3e63
#define MN_xorps (MN_vxorps + 1)
-#define MN_vxorps 0x3e58
-#define MN_vcmpunord_sps 0x3e5f
-#define MN_vcmpord_sps 0x3e6d
-#define MN_vcmpge_osps 0x3e79
-#define MN_vcmple_osps 0x3e85
-#define MN_vcmpfalse_osps 0x3e91
-#define MN_vcmpneq_osps 0x3ea0
-#define MN_vcmpeq_osps 0x3ead
-#define MN_vcmpgt_osps 0x3eb9
-#define MN_vcmplt_osps 0x3ec5
-#define MN_vfpclassps 0x3ed1
-#define MN_vcompressps 0x3edc
-#define MN_vcmpnge_usps 0x3ee8
-#define MN_vcmpnle_usps 0x3ef5
-#define MN_vcmptrue_usps 0x3f02
-#define MN_vcmpneq_usps 0x3f10
-#define MN_vcmpeq_usps 0x3f1d
-#define MN_vcmpngt_usps 0x3f29
-#define MN_vcmpnlt_usps 0x3f36
+#define MN_vxorps 0x3e69
+#define MN_vcmpunord_sps 0x3e70
+#define MN_vcmpord_sps 0x3e7e
+#define MN_vcmpge_osps 0x3e8a
+#define MN_vcmple_osps 0x3e96
+#define MN_vcmpfalse_osps 0x3ea2
+#define MN_vcmpneq_osps 0x3eb1
+#define MN_vcmpeq_osps 0x3ebe
+#define MN_vcmpgt_osps 0x3eca
+#define MN_vcmplt_osps 0x3ed6
+#define MN_vfpclassps 0x3ee2
+#define MN_vcompressps 0x3eed
+#define MN_vcmpnge_usps 0x3ef9
+#define MN_vcmpnle_usps 0x3f06
+#define MN_vcmptrue_usps 0x3f13
+#define MN_vcmpneq_usps 0x3f21
+#define MN_vcmpeq_usps 0x3f2e
+#define MN_vcmpngt_usps 0x3f3a
+#define MN_vcmpnlt_usps 0x3f47
#define MN_extractps (MN_vextractps + 1)
-#define MN_vextractps 0x3f43
-#define MN_vcmpngtps 0x3f4e
-#define MN_vcmpgtps 0x3f58
+#define MN_vextractps 0x3f54
+#define MN_vcmpngtps 0x3f5f
+#define MN_vcmpgtps 0x3f69
#define MN_cmpnltps (MN_vcmpnltps + 1)
-#define MN_vcmpnltps 0x3f61
+#define MN_vcmpnltps 0x3f72
#define MN_cmpltps (MN_vcmpltps + 1)
-#define MN_vcmpltps 0x3f6b
-#define MN_vgetmantps 0x3f74
+#define MN_vcmpltps 0x3f7c
+#define MN_vgetmantps 0x3f85
#define MN_movntps (MN_vmovntps + 1)
-#define MN_vmovntps 0x3f7f
+#define MN_vmovntps 0x3f90
#define MN_insertps (MN_vinsertps + 1)
-#define MN_vinsertps 0x3f88
+#define MN_vinsertps 0x3f99
#define MN_sqrtps (MN_rsqrtps + 1)
#define MN_rsqrtps (MN_vrsqrtps + 1)
-#define MN_vrsqrtps 0x3f92
-#define MN_vsqrtps 0x3f9b
-#define MN_vtestps 0x3fa3
+#define MN_vrsqrtps 0x3fa3
+#define MN_vsqrtps 0x3fac
+#define MN_vtestps 0x3fb4
#define MN_movups (MN_vmovups + 1)
-#define MN_vmovups 0x3fab
+#define MN_vmovups 0x3fbc
#define MN_blendvps (MN_vblendvps + 1)
-#define MN_vblendvps 0x3fb3
+#define MN_vblendvps 0x3fc4
#define MN_divps (MN_vdivps + 1)
-#define MN_vdivps 0x3fbd
-#define MN_vmaskmovps 0x3fc4
+#define MN_vdivps 0x3fce
+#define MN_vmaskmovps 0x3fd5
#define MN_maxps (MN_vminmaxps + 4)
-#define MN_vminmaxps 0x3fcf
-#define MN_vmaxps 0x3fd9
-#define MN_vfrczps 0x3fe0
-#define MN_vcvttpd2dqs 0x3fe8
-#define MN_vcvttps2dqs 0x3ff4
-#define MN_vcvttpd2udqs 0x4000
-#define MN_vcvttps2udqs 0x400d
-#define MN_vcvttpd2qqs 0x401a
-#define MN_vcvttps2qqs 0x4026
-#define MN_vcvttpd2uqqs 0x4032
-#define MN_vcvttps2uqqs 0x403f
-#define MN_t2rpntlvwz0rs 0x404c
-#define MN_t2rpntlvwz1rs 0x405a
-#define MN_tileloaddrs 0x4068
-#define MN_xrstors 0x4074
-#define MN_movrs 0x407c
+#define MN_vminmaxps 0x3fe0
+#define MN_vmaxps 0x3fea
+#define MN_vfrczps 0x3ff1
+#define MN_vcvttpd2dqs 0x3ff9
+#define MN_vcvttps2dqs 0x4005
+#define MN_vcvttpd2udqs 0x4011
+#define MN_vcvttps2udqs 0x401e
+#define MN_vcvttpd2qqs 0x402b
+#define MN_vcvttps2qqs 0x4037
+#define MN_vcvttpd2uqqs 0x4043
+#define MN_vcvttps2uqqs 0x4050
+#define MN_t2rpntlvwz0rs 0x405d
+#define MN_t2rpntlvwz1rs 0x406b
+#define MN_tileloaddrs 0x4079
+#define MN_xrstors 0x4085
+#define MN_movrs 0x408d
#define MN_ss (MN_vfmsub231ss + 9)
-#define MN_vfmsub231ss 0x4082
-#define MN_vfnmsub231ss 0x408e
-#define MN_vfmadd231ss 0x409b
-#define MN_vfnmadd231ss 0x40a7
-#define MN_vfmsub132ss 0x40b4
-#define MN_vfnmsub132ss 0x40c0
-#define MN_vfmadd132ss 0x40cd
-#define MN_vfnmadd132ss 0x40d9
+#define MN_vfmsub231ss 0x4093
+#define MN_vfnmsub231ss 0x409f
+#define MN_vfmadd231ss 0x40ac
+#define MN_vfnmadd231ss 0x40b8
+#define MN_vfmsub132ss 0x40c5
+#define MN_vfnmsub132ss 0x40d1
+#define MN_vfmadd132ss 0x40de
+#define MN_vfnmadd132ss 0x40ea
#define MN_cvtsd2ss (MN_vcvtsd2ss + 1)
-#define MN_vcvtsd2ss 0x40e6
-#define MN_vcvtsh2ss 0x40f0
+#define MN_vcvtsd2ss 0x40f7
+#define MN_vcvtsh2ss 0x4101
#define MN_cvtsi2ss (MN_vcvtsi2ss + 1)
-#define MN_vcvtsi2ss 0x40fa
-#define MN_vcvtusi2ss 0x4104
-#define MN_vfmsub213ss 0x410f
-#define MN_vfnmsub213ss 0x411b
-#define MN_vfmadd213ss 0x4128
-#define MN_vfnmadd213ss 0x4134
-#define MN_vrcp14ss 0x4141
-#define MN_vrsqrt14ss 0x414a
-#define MN_vrcp28ss 0x4155
-#define MN_vrsqrt28ss 0x415e
+#define MN_vcvtsi2ss 0x410b
+#define MN_vcvtusi2ss 0x4115
+#define MN_vfmsub213ss 0x4120
+#define MN_vfnmsub213ss 0x412c
+#define MN_vfmadd213ss 0x4139
+#define MN_vfnmadd213ss 0x4145
+#define MN_vrcp14ss 0x4152
+#define MN_vrsqrt14ss 0x415b
+#define MN_vrcp28ss 0x4166
+#define MN_vrsqrt28ss 0x416f
#define MN_subss (MN_vfmsubss + 3)
-#define MN_vfmsubss 0x4169
-#define MN_vfnmsubss 0x4172
-#define MN_vsubss 0x417c
+#define MN_vfmsubss 0x417a
+#define MN_vfnmsubss 0x4183
+#define MN_vsubss 0x418d
#define MN_addss (MN_v4fmaddss + 4)
-#define MN_v4fmaddss 0x4183
-#define MN_vfmaddss 0x418d
-#define MN_v4fnmaddss 0x4196
-#define MN_vfnmaddss 0x41a1
-#define MN_vaddss 0x41ab
+#define MN_v4fmaddss 0x4194
+#define MN_vfmaddss 0x419e
+#define MN_v4fnmaddss 0x41a7
+#define MN_vfnmaddss 0x41b2
+#define MN_vaddss 0x41bc
#define MN_roundss (MN_vroundss + 1)
-#define MN_vroundss 0x41b2
+#define MN_vroundss 0x41c3
#define MN_cmpunordss (MN_vcmpunordss + 1)
-#define MN_vcmpunordss 0x41bb
+#define MN_vcmpunordss 0x41cc
#define MN_cmpordss (MN_vcmpordss + 1)
-#define MN_vcmpordss 0x41c7
-#define MN_vreducess 0x41d1
-#define MN_vrangess 0x41db
-#define MN_vcmpngess 0x41e4
-#define MN_vcmpgess 0x41ee
-#define MN_vrndscaless 0x41f7
+#define MN_vcmpordss 0x41d8
+#define MN_vreducess 0x41e2
+#define MN_vrangess 0x41ec
+#define MN_vcmpngess 0x41f5
+#define MN_vcmpgess 0x41ff
+#define MN_vrndscaless 0x4208
#define MN_cmpnless (MN_vcmpnless + 1)
-#define MN_vcmpnless 0x4203
+#define MN_vcmpnless 0x4214
#define MN_cmpless (MN_vcmpless + 1)
-#define MN_vcmpless 0x420d
-#define MN_vcmpfalsess 0x4216
-#define MN_vcmptruess 0x4222
-#define MN_vscalefss 0x422d
+#define MN_vcmpless 0x421e
+#define MN_vcmpfalsess 0x4227
+#define MN_vcmptruess 0x4233
+#define MN_vscalefss 0x423e
#define MN_comiss (MN_ucomiss + 1)
#define MN_ucomiss (MN_vucomiss + 1)
-#define MN_vucomiss 0x4237
-#define MN_vcomiss 0x4240
+#define MN_vucomiss 0x4248
+#define MN_vcomiss 0x4251
#define MN_lss (MN_mulss + 2)
#define MN_mulss (MN_vmulss + 1)
-#define MN_vmulss 0x4248
-#define MN_vfixupimmss 0x424f
+#define MN_vmulss 0x4259
+#define MN_vfixupimmss 0x4260
#define MN_minss (MN_vminss + 1)
-#define MN_vminss 0x425b
+#define MN_vminss 0x426c
#define MN_rcpss (MN_vrcpss + 1)
-#define MN_vrcpss 0x4262
+#define MN_vrcpss 0x4273
#define MN_cmpss (MN_vcmpss + 1)
-#define MN_vcmpss 0x4269
-#define MN_vgetexpss 0x4270
-#define MN_vcmpunord_qss 0x427a
-#define MN_vcmpord_qss 0x4288
+#define MN_vcmpss 0x427a
+#define MN_vgetexpss 0x4281
+#define MN_vcmpunord_qss 0x428b
+#define MN_vcmpord_qss 0x4299
#define MN_cmpneqss (MN_vcmpneqss + 1)
-#define MN_vcmpneqss 0x4294
+#define MN_vcmpneqss 0x42a5
#define MN_cmpeqss (MN_vcmpeqss + 1)
-#define MN_vcmpeqss 0x429e
-#define MN_vcmpge_oqss 0x42a7
-#define MN_vcmple_oqss 0x42b3
-#define MN_vcmpfalse_oqss 0x42bf
-#define MN_vcmpneq_oqss 0x42ce
-#define MN_vcmpeq_oqss 0x42db
-#define MN_vcmpgt_oqss 0x42e7
-#define MN_vcmplt_oqss 0x42f3
-#define MN_vcmpnge_uqss 0x42ff
-#define MN_vcmpnle_uqss 0x430c
-#define MN_vcmptrue_uqss 0x4319
-#define MN_vcmpneq_uqss 0x4327
-#define MN_vcmpeq_uqss 0x4334
-#define MN_vcmpngt_uqss 0x4340
-#define MN_vcmpnlt_uqss 0x434d
-#define MN_vcmpunord_sss 0x435a
-#define MN_vcmpord_sss 0x4368
-#define MN_vcmpge_osss 0x4374
-#define MN_vcmple_osss 0x4380
-#define MN_vcmpfalse_osss 0x438c
-#define MN_vcmpneq_osss 0x439b
-#define MN_vcmpeq_osss 0x43a8
-#define MN_vcmpgt_osss 0x43b4
-#define MN_vcmplt_osss 0x43c0
-#define MN_vfpclassss 0x43cc
-#define MN_vcmpnge_usss 0x43d7
-#define MN_vcmpnle_usss 0x43e4
-#define MN_vcmptrue_usss 0x43f1
-#define MN_vcmpneq_usss 0x43ff
-#define MN_vcmpeq_usss 0x440c
-#define MN_vcmpngt_usss 0x4418
-#define MN_vcmpnlt_usss 0x4425
-#define MN_vcmpngtss 0x4432
-#define MN_vcmpgtss 0x443c
+#define MN_vcmpeqss 0x42af
+#define MN_vcmpge_oqss 0x42b8
+#define MN_vcmple_oqss 0x42c4
+#define MN_vcmpfalse_oqss 0x42d0
+#define MN_vcmpneq_oqss 0x42df
+#define MN_vcmpeq_oqss 0x42ec
+#define MN_vcmpgt_oqss 0x42f8
+#define MN_vcmplt_oqss 0x4304
+#define MN_vcmpnge_uqss 0x4310
+#define MN_vcmpnle_uqss 0x431d
+#define MN_vcmptrue_uqss 0x432a
+#define MN_vcmpneq_uqss 0x4338
+#define MN_vcmpeq_uqss 0x4345
+#define MN_vcmpngt_uqss 0x4351
+#define MN_vcmpnlt_uqss 0x435e
+#define MN_vcmpunord_sss 0x436b
+#define MN_vcmpord_sss 0x4379
+#define MN_vcmpge_osss 0x4385
+#define MN_vcmple_osss 0x4391
+#define MN_vcmpfalse_osss 0x439d
+#define MN_vcmpneq_osss 0x43ac
+#define MN_vcmpeq_osss 0x43b9
+#define MN_vcmpgt_osss 0x43c5
+#define MN_vcmplt_osss 0x43d1
+#define MN_vfpclassss 0x43dd
+#define MN_vcmpnge_usss 0x43e8
+#define MN_vcmpnle_usss 0x43f5
+#define MN_vcmptrue_usss 0x4402
+#define MN_vcmpneq_usss 0x4410
+#define MN_vcmpeq_usss 0x441d
+#define MN_vcmpngt_usss 0x4429
+#define MN_vcmpnlt_usss 0x4436
+#define MN_vcmpngtss 0x4443
+#define MN_vcmpgtss 0x444d
#define MN_cmpnltss (MN_vcmpnltss + 1)
-#define MN_vcmpnltss 0x4445
+#define MN_vcmpnltss 0x4456
#define MN_cmpltss (MN_vcmpltss + 1)
-#define MN_vcmpltss 0x444f
-#define MN_vgetmantss 0x4458
-#define MN_movntss 0x4463
+#define MN_vcmpltss 0x4460
+#define MN_vgetmantss 0x4469
+#define MN_movntss 0x4474
#define MN_sqrtss (MN_rsqrtss + 1)
#define MN_rsqrtss (MN_vrsqrtss + 1)
-#define MN_vrsqrtss 0x446b
-#define MN_vsqrtss 0x4474
-#define MN_vbroadcastss 0x447c
+#define MN_vrsqrtss 0x447c
+#define MN_vsqrtss 0x4485
+#define MN_vbroadcastss 0x448d
#define MN_divss (MN_vdivss + 1)
-#define MN_vdivss 0x4489
+#define MN_vdivss 0x449a
#define MN_movss (MN_vmovss + 1)
-#define MN_vmovss 0x4490
+#define MN_vmovss 0x44a1
#define MN_maxss (MN_vminmaxss + 4)
-#define MN_vminmaxss 0x4497
-#define MN_vmaxss 0x44a1
-#define MN_vucomxss 0x44a8
-#define MN_vcomxss 0x44b1
-#define MN_vfrczss 0x44b9
-#define MN_bts 0x44c1
-#define MN_erets 0x44c5
-#define MN_sets 0x44cb
-#define MN_clts 0x44d0
-#define MN_ctests 0x44d5
-#define MN_outs 0x44dc
-#define MN_setzus 0x44e1
+#define MN_vminmaxss 0x44a8
+#define MN_vmaxss 0x44b2
+#define MN_vucomxss 0x44b9
+#define MN_vcomxss 0x44c2
+#define MN_vfrczss 0x44ca
+#define MN_bts 0x44d2
+#define MN_erets 0x44d6
+#define MN_sets 0x44dc
+#define MN_clts 0x44e1
+#define MN_ctests 0x44e6
+#define MN_outs 0x44ed
+#define MN_setzus 0x44f2
#define MN_movs (MN_cmovs + 1)
#define MN_cmovs (MN_cfcmovs + 2)
-#define MN_cfcmovs 0x44e8
-#define MN_fldl2t 0x44f0
-#define MN_xlat 0x44f7
-#define MN_bt 0x44fc
-#define MN_fxtract 0x44ff
-#define MN_lgdt 0x4507
-#define MN_sgdt 0x450c
-#define MN_lidt 0x4511
-#define MN_sidt 0x4516
-#define MN_fldt 0x451b
-#define MN_lldt 0x4520
-#define MN_sldt 0x4525
+#define MN_cfcmovs 0x44f9
+#define MN_fldl2t 0x4501
+#define MN_xlat 0x4508
+#define MN_bt 0x450d
+#define MN_fxtract 0x4510
+#define MN_lgdt 0x4518
+#define MN_sgdt 0x451d
+#define MN_lidt 0x4522
+#define MN_sidt 0x4527
+#define MN_fldt 0x452c
+#define MN_lldt 0x4531
+#define MN_sldt 0x4536
#define MN_ret (MN_iret + 1)
#define MN_iret (MN_uiret + 1)
-#define MN_uiret 0x452a
-#define MN_lret 0x4530
-#define MN_seamret 0x4535
-#define MN_sysret 0x453d
-#define MN_hreset 0x4544
-#define MN_pfcmpgt 0x454b
-#define MN_ht 0x4553
+#define MN_uiret 0x453b
+#define MN_lret 0x4541
+#define MN_seamret 0x4546
+#define MN_sysret 0x454e
+#define MN_hreset 0x4555
+#define MN_pfcmpgt 0x455c
+#define MN_ht 0x4564
#define MN_wait (MN_fwait + 1)
-#define MN_fwait 0x4556
+#define MN_fwait 0x4567
#define MN_mwait (MN_umwait + 1)
-#define MN_umwait 0x455c
-#define MN_mcommit 0x4563
-#define MN_finit 0x456b
-#define MN_skinit 0x4571
-#define MN_fninit 0x4578
-#define MN_vmgexit 0x457f
-#define MN_sysexit 0x4587
-#define MN_hlt 0x458f
-#define MN_popcnt 0x4593
-#define MN_lzcnt 0x459a
-#define MN_tzcnt 0x45a0
-#define MN_hnt 0x45a6
+#define MN_umwait 0x456d
+#define MN_mcommit 0x4574
+#define MN_finit 0x457c
+#define MN_skinit 0x4582
+#define MN_fninit 0x4589
+#define MN_vmgexit 0x4590
+#define MN_sysexit 0x4598
+#define MN_hlt 0x45a0
+#define MN_popcnt 0x45a4
+#define MN_lzcnt 0x45ab
+#define MN_tzcnt 0x45b1
+#define MN_hnt 0x45b7
#define MN_int (MN_frndint + 4)
-#define MN_frndint 0x45aa
-#define MN_not 0x45b2
-#define MN_invept 0x45b6
-#define MN_ccmpt 0x45bd
-#define MN_xsaveopt 0x45c3
-#define MN_clflushopt 0x45cc
-#define MN_fstpt 0x45d7
-#define MN_xabort 0x45dd
-#define MN_fsqrt 0x45e4
-#define MN_pfrsqrt 0x45ea
+#define MN_frndint 0x45bb
+#define MN_not 0x45c3
+#define MN_invept 0x45c7
+#define MN_ccmpt 0x45ce
+#define MN_xsaveopt 0x45d4
+#define MN_clflushopt 0x45dd
+#define MN_fstpt 0x45e8
+#define MN_xabort 0x45ee
+#define MN_fsqrt 0x45f5
+#define MN_pfrsqrt 0x45fb
#define MN_aesdeclast (MN_vaesdeclast + 1)
-#define MN_vaesdeclast 0x45f2
+#define MN_vaesdeclast 0x4603
#define MN_aesenclast (MN_vaesenclast + 1)
-#define MN_vaesenclast 0x45fe
+#define MN_vaesenclast 0x460f
#define MN_test (MN_ptest + 1)
#define MN_ptest (MN_vptest + 1)
-#define MN_vptest 0x460a
-#define MN_xtest 0x4611
-#define MN_fst 0x4617
-#define MN_fist 0x461b
-#define MN_rdmsrlist 0x4620
-#define MN_wrmsrlist 0x462a
+#define MN_vptest 0x461b
+#define MN_xtest 0x4622
+#define MN_fst 0x4628
+#define MN_fist 0x462c
+#define MN_rdmsrlist 0x4631
+#define MN_wrmsrlist 0x463b
#define MN_aeskeygenassist (MN_vaeskeygenassist + 1)
-#define MN_vaeskeygenassist 0x4634
-#define MN_vmptrst 0x4645
-#define MN_ftst 0x464d
-#define MN_rmpadjust 0x4652
-#define MN_ctestt 0x465c
-#define MN_out 0x4663
-#define MN_pext 0x4667
-#define MN_bndcu 0x466c
-#define MN_enclu 0x4672
-#define MN_fcmovnu 0x4678
+#define MN_vaeskeygenassist 0x4645
+#define MN_vmptrst 0x4656
+#define MN_ftst 0x465e
+#define MN_rmpadjust 0x4663
+#define MN_ctestt 0x466d
+#define MN_out 0x4674
+#define MN_pext 0x4678
+#define MN_bndcu 0x467d
+#define MN_enclu 0x4683
+#define MN_fcmovnu 0x4689
#define MN_lddqu (MN_vlddqu + 1)
-#define MN_vlddqu 0x4680
+#define MN_vlddqu 0x4691
#define MN_movdqu (MN_maskmovdqu + 4)
#define MN_maskmovdqu (MN_vmaskmovdqu + 1)
-#define MN_vmaskmovdqu 0x4687
-#define MN_vmovdqu 0x4693
-#define MN_rdpkru 0x469b
-#define MN_wrpkru 0x46a2
-#define MN_rdpru 0x46a9
-#define MN_eretu 0x46af
-#define MN_fcmovu 0x46b5
-#define MN_imulzu 0x46bc
-#define MN_xgetbv 0x46c3
-#define MN_xsetbv 0x46ca
+#define MN_vmaskmovdqu 0x4698
+#define MN_vmovdqu 0x46a4
+#define MN_rdpkru 0x46ac
+#define MN_wrpkru 0x46b3
+#define MN_rdpru 0x46ba
+#define MN_eretu 0x46c0
+#define MN_fcmovu 0x46c6
+#define MN_imulzu 0x46cd
+#define MN_xgetbv 0x46d4
+#define MN_xsetbv 0x46db
#define MN_div (MN_fdiv + 1)
-#define MN_fdiv 0x46d1
+#define MN_fdiv 0x46e2
#define MN_idiv (MN_fidiv + 1)
-#define MN_fidiv 0x46d6
-#define MN_enclv 0x46dc
-#define MN_fldenv 0x46e2
-#define MN_fstenv 0x46e9
-#define MN_fnstenv 0x46f0
+#define MN_fidiv 0x46e7
+#define MN_enclv 0x46ed
+#define MN_fldenv 0x46f3
+#define MN_fstenv 0x46fa
+#define MN_fnstenv 0x4701
#define MN_mov (MN_vpcmov + 3)
-#define MN_vpcmov 0x46f8
-#define MN_bndmov 0x46ff
-#define MN_smov 0x4706
-#define MN_rex_w 0x470b
-#define MN_vcvttph2w 0x4711
-#define MN_vcvtph2w 0x471b
-#define MN_vpermi2w 0x4724
-#define MN_vpmovm2w 0x472d
-#define MN_vpermt2w 0x4736
-#define MN_vpshaw 0x473f
+#define MN_vpcmov 0x4709
+#define MN_bndmov 0x4710
+#define MN_smov 0x4717
+#define MN_rex_w 0x471c
+#define MN_vcvttph2w 0x4722
+#define MN_vcvtph2w 0x472c
+#define MN_vpermi2w 0x4735
+#define MN_vpmovm2w 0x473e
+#define MN_vpermt2w 0x4747
+#define MN_vpshaw 0x4750
#define MN_psraw (MN_vpsraw + 1)
-#define MN_vpsraw 0x4746
-#define MN_vphsubbw 0x474d
-#define MN_cbw 0x4756
+#define MN_vpsraw 0x4757
+#define MN_vphsubbw 0x475e
+#define MN_cbw 0x4767
#define MN_psadbw (MN_vdbpsadbw + 3)
-#define MN_vdbpsadbw 0x475a
+#define MN_vdbpsadbw 0x476b
#define MN_mpsadbw (MN_vmpsadbw + 1)
-#define MN_vmpsadbw 0x4764
-#define MN_vpsadbw 0x476d
-#define MN_vphaddbw 0x4775
+#define MN_vmpsadbw 0x4775
+#define MN_vpsadbw 0x477e
+#define MN_vphaddbw 0x4786
#define MN_punpckhbw (MN_vpunpckhbw + 1)
-#define MN_vpunpckhbw 0x477e
-#define MN_kunpckbw 0x4789
+#define MN_vpunpckhbw 0x478f
+#define MN_kunpckbw 0x479a
#define MN_punpcklbw (MN_vpunpcklbw + 1)
-#define MN_vpunpcklbw 0x4792
-#define MN_vphaddubw 0x479d
+#define MN_vpunpcklbw 0x47a3
+#define MN_vphaddubw 0x47ae
#define MN_phsubw (MN_vphsubw + 1)
-#define MN_vphsubw 0x47a7
+#define MN_vphsubw 0x47b8
#define MN_psubw (MN_vpsubw + 1)
-#define MN_vpsubw 0x47af
+#define MN_vpsubw 0x47c0
#define MN_pmovsxbw (MN_vpmovsxbw + 1)
-#define MN_vpmovsxbw 0x47b6
+#define MN_vpmovsxbw 0x47c7
#define MN_pmovzxbw (MN_vpmovzxbw + 1)
-#define MN_vpmovzxbw 0x47c0
-#define MN_fldcw 0x47ca
-#define MN_fstcw 0x47d0
-#define MN_fnstcw 0x47d6
+#define MN_vpmovzxbw 0x47d1
+#define MN_fldcw 0x47db
+#define MN_fstcw 0x47e1
+#define MN_fnstcw 0x47e7
#define MN_phaddw (MN_vphaddw + 1)
-#define MN_vphaddw 0x47dd
-#define MN_kaddw 0x47e5
+#define MN_vphaddw 0x47ee
+#define MN_kaddw 0x47f6
#define MN_paddw (MN_vpaddw + 1)
-#define MN_vpaddw 0x47eb
-#define MN_vpshldw 0x47f2
-#define MN_kandw 0x47fa
-#define MN_vpexpandw 0x4800
+#define MN_vpaddw 0x47fc
+#define MN_vpshldw 0x4803
+#define MN_kandw 0x480b
+#define MN_vpexpandw 0x4811
#define MN_pblendw (MN_vpblendw + 1)
-#define MN_vpblendw 0x480a
-#define MN_vpshrdw 0x4813
+#define MN_vpblendw 0x481b
+#define MN_vpshrdw 0x4824
#define MN_packssdw (MN_vpackssdw + 1)
-#define MN_vpackssdw 0x481b
+#define MN_vpackssdw 0x482c
#define MN_packusdw (MN_vpackusdw + 1)
-#define MN_vpackusdw 0x4825
-#define MN_vpmovusdw 0x482f
-#define MN_vpmovsdw 0x4839
-#define MN_vpmovdw 0x4842
-#define MN_vpcomgew 0x484a
-#define MN_vpcomlew 0x4853
-#define MN_vpcmpnlew 0x485c
-#define MN_vpcmplew 0x4866
-#define MN_vpcomfalsew 0x486f
-#define MN_vpcomtruew 0x487b
-#define MN_pi2fw 0x4886
-#define MN_pshufw 0x488c
+#define MN_vpackusdw 0x4836
+#define MN_vpmovusdw 0x4840
+#define MN_vpmovsdw 0x484a
+#define MN_vpmovdw 0x4853
+#define MN_vpcomgew 0x485b
+#define MN_vpcomlew 0x4864
+#define MN_vpcmpnlew 0x486d
+#define MN_vpcmplew 0x4877
+#define MN_vpcomfalsew 0x4880
+#define MN_vpcomtruew 0x488c
+#define MN_pi2fw 0x4897
+#define MN_pshufw 0x489d
#define MN_pavgw (MN_vpavgw + 1)
-#define MN_vpavgw 0x4893
-#define MN_prefetchw 0x489a
+#define MN_vpavgw 0x48a4
+#define MN_prefetchw 0x48ab
#define MN_pshufhw (MN_vpshufhw + 1)
-#define MN_vpshufhw 0x48a4
+#define MN_vpshufhw 0x48b5
#define MN_pmulhw (MN_vpmulhw + 1)
-#define MN_vpmulhw 0x48ad
-#define MN_pf2iw 0x48b5
+#define MN_vpmulhw 0x48be
+#define MN_pf2iw 0x48c6
#define MN_pshuflw (MN_vpshuflw + 1)
-#define MN_vpshuflw 0x48bb
-#define MN_vpshlw 0x48c4
+#define MN_vpshuflw 0x48cc
+#define MN_vpshlw 0x48d5
#define MN_psllw (MN_vpsllw + 1)
-#define MN_vpsllw 0x48cb
+#define MN_vpsllw 0x48dc
#define MN_pmullw (MN_vpmullw + 1)
-#define MN_vpmullw 0x48d2
+#define MN_vpmullw 0x48e3
#define MN_psrlw (MN_vpsrlw + 1)
-#define MN_vpsrlw 0x48da
-#define MN_kshiftlw 0x48e1
-#define MN_vpblendmw 0x48ea
-#define MN_vptestnmw 0x48f4
-#define MN_vpcomw 0x48fe
-#define MN_vpermw 0x4905
-#define MN_vptestmw 0x490c
-#define MN_kandnw 0x4915
+#define MN_vpsrlw 0x48eb
+#define MN_kshiftlw 0x48f2
+#define MN_vpblendmw 0x48fb
+#define MN_vptestnmw 0x4905
+#define MN_vpcomw 0x490f
+#define MN_vpermw 0x4916
+#define MN_vptestmw 0x491d
+#define MN_kandnw 0x4926
#define MN_psignw (MN_vpsignw + 1)
-#define MN_vpsignw 0x491c
-#define MN_tilemovrow 0x4924
-#define MN_vpcmpw 0x492f
-#define MN_vpcomeqw 0x4936
-#define MN_vpcomneqw 0x493f
-#define MN_vpcmpneqw 0x4949
+#define MN_vpsignw 0x492d
+#define MN_tilemovrow 0x4935
+#define MN_vpcmpw 0x4940
+#define MN_vpcomeqw 0x4947
+#define MN_vpcomneqw 0x4950
+#define MN_vpcmpneqw 0x495a
#define MN_pcmpeqw (MN_vpcmpeqw + 1)
-#define MN_vpcmpeqw 0x4953
-#define MN_vpmovusqw 0x495c
-#define MN_vpmovsqw 0x4966
-#define MN_vpmovqw 0x496f
-#define MN_verw 0x4977
-#define MN_pmulhrw 0x497c
-#define MN_korw 0x4984
-#define MN_kxnorw 0x4989
-#define MN_kxorw 0x4990
+#define MN_vpcmpeqw 0x4964
+#define MN_vpmovusqw 0x496d
+#define MN_vpmovsqw 0x4977
+#define MN_vpmovqw 0x4980
+#define MN_verw 0x4988
+#define MN_pmulhrw 0x498d
+#define MN_korw 0x4995
+#define MN_kxnorw 0x499a
+#define MN_kxorw 0x49a1
#define MN_pinsrw (MN_vpinsrw + 1)
-#define MN_vpinsrw 0x4996
-#define MN_kshiftrw 0x499e
+#define MN_vpinsrw 0x49a7
+#define MN_kshiftrw 0x49af
#define MN_pextrw (MN_vpextrw + 1)
-#define MN_vpextrw 0x49a7
+#define MN_vpextrw 0x49b8
#define MN_pabsw (MN_vpabsw + 1)
-#define MN_vpabsw 0x49af
+#define MN_vpabsw 0x49c0
#define MN_pmaddubsw (MN_vpmaddubsw + 1)
-#define MN_vpmaddubsw 0x49b6
+#define MN_vpmaddubsw 0x49c7
#define MN_phsubsw (MN_vphsubsw + 1)
-#define MN_vphsubsw 0x49c1
+#define MN_vphsubsw 0x49d2
#define MN_psubsw (MN_vpsubsw + 1)
-#define MN_vpsubsw 0x49ca
+#define MN_vpsubsw 0x49db
#define MN_phaddsw (MN_vphaddsw + 1)
-#define MN_vphaddsw 0x49d2
+#define MN_vphaddsw 0x49e3
#define MN_paddsw (MN_vpaddsw + 1)
-#define MN_vpaddsw 0x49db
-#define MN_lmsw 0x49e3
-#define MN_smsw 0x49e8
+#define MN_vpaddsw 0x49ec
+#define MN_lmsw 0x49f4
+#define MN_smsw 0x49f9
#define MN_pminsw (MN_vpminsw + 1)
-#define MN_vpminsw 0x49ed
+#define MN_vpminsw 0x49fe
#define MN_pmulhrsw (MN_vpmulhrsw + 1)
-#define MN_vpmulhrsw 0x49f5
-#define MN_vmovrsw 0x49ff
-#define MN_vpcompressw 0x4a07
-#define MN_fstsw 0x4a13
-#define MN_fnstsw 0x4a19
+#define MN_vpmulhrsw 0x4a06
+#define MN_vmovrsw 0x4a10
+#define MN_vpcompressw 0x4a18
+#define MN_fstsw 0x4a24
+#define MN_fnstsw 0x4a2a
#define MN_psubusw (MN_vpsubusw + 1)
-#define MN_vpsubusw 0x4a20
+#define MN_vpsubusw 0x4a31
#define MN_paddusw (MN_vpaddusw + 1)
-#define MN_vpaddusw 0x4a29
-#define MN_movsw 0x4a32
+#define MN_vpaddusw 0x4a3a
+#define MN_movsw 0x4a43
#define MN_pmaxsw (MN_vpmaxsw + 1)
-#define MN_vpmaxsw 0x4a38
-#define MN_cbtw 0x4a40
-#define MN_vpcomgtw 0x4a45
+#define MN_vpmaxsw 0x4a49
+#define MN_cbtw 0x4a51
+#define MN_vpcomgtw 0x4a56
#define MN_pcmpgtw (MN_vpcmpgtw + 1)
-#define MN_vpcmpgtw 0x4a4e
-#define MN_vpcomltw 0x4a57
-#define MN_vpcmpnltw 0x4a60
-#define MN_vpcmpltw 0x4a6a
-#define MN_vpopcntw 0x4a73
-#define MN_knotw 0x4a7c
-#define MN_vprotw 0x4a82
-#define MN_vpbroadcastw 0x4a89
-#define MN_ktestw 0x4a96
-#define MN_kortestw 0x4a9d
-#define MN_vcvttph2uw 0x4aa6
-#define MN_vcvtph2uw 0x4ab1
-#define MN_vpcomgeuw 0x4abb
-#define MN_vpcomleuw 0x4ac5
-#define MN_vpcmpnleuw 0x4acf
-#define MN_vpcmpleuw 0x4ada
-#define MN_vpcomfalseuw 0x4ae4
-#define MN_vpcomtrueuw 0x4af1
+#define MN_vpcmpgtw 0x4a5f
+#define MN_vpcomltw 0x4a68
+#define MN_vpcmpnltw 0x4a71
+#define MN_vpcmpltw 0x4a7b
+#define MN_vpopcntw 0x4a84
+#define MN_knotw 0x4a8d
+#define MN_vprotw 0x4a93
+#define MN_vpbroadcastw 0x4a9a
+#define MN_ktestw 0x4aa7
+#define MN_kortestw 0x4aae
+#define MN_vcvttph2uw 0x4ab7
+#define MN_vcvtph2uw 0x4ac2
+#define MN_vpcomgeuw 0x4acc
+#define MN_vpcomleuw 0x4ad6
+#define MN_vpcmpnleuw 0x4ae0
+#define MN_vpcmpleuw 0x4aeb
+#define MN_vpcomfalseuw 0x4af5
+#define MN_vpcomtrueuw 0x4b02
#define MN_pmulhuw (MN_vpmulhuw + 1)
-#define MN_vpmulhuw 0x4afd
-#define MN_vpcomuw 0x4b06
+#define MN_vpmulhuw 0x4b0e
+#define MN_vpcomuw 0x4b17
#define MN_pminuw (MN_vpminuw + 1)
-#define MN_vpminuw 0x4b0e
-#define MN_vpcmpuw 0x4b16
-#define MN_vpcomequw 0x4b1e
-#define MN_vpcomnequw 0x4b28
-#define MN_vpcmpnequw 0x4b33
-#define MN_vpcmpequw 0x4b3e
+#define MN_vpminuw 0x4b1f
+#define MN_vpcmpuw 0x4b27
+#define MN_vpcomequw 0x4b2f
+#define MN_vpcomnequw 0x4b39
+#define MN_vpcmpnequw 0x4b44
+#define MN_vpcmpequw 0x4b4f
#define MN_phminposuw (MN_vphminposuw + 1)
-#define MN_vphminposuw 0x4b48
-#define MN_vpcomgtuw 0x4b54
-#define MN_vpcomltuw 0x4b5e
-#define MN_vpcmpnltuw 0x4b68
-#define MN_vpcmpltuw 0x4b73
+#define MN_vphminposuw 0x4b59
+#define MN_vpcomgtuw 0x4b65
+#define MN_vpcomltuw 0x4b6f
+#define MN_vpcmpnltuw 0x4b79
+#define MN_vpcmpltuw 0x4b84
#define MN_pmaxuw (MN_vpmaxuw + 1)
-#define MN_vpmaxuw 0x4b7d
-#define MN_vpsravw 0x4b85
-#define MN_vpshldvw 0x4b8d
-#define MN_vpshrdvw 0x4b96
-#define MN_vpsllvw 0x4b9f
-#define MN_vpsrlvw 0x4ba7
-#define MN_kmovw 0x4baf
-#define MN_vmovw 0x4bb5
-#define MN_vpmacsww 0x4bbb
-#define MN_vpmacssww 0x4bc4
-#define MN_movzw 0x4bce
-#define MN_rex_x 0x4bd4
-#define MN_fyl2x 0x4bda
-#define MN_rex64x 0x4be0
-#define MN_vcvtneps2bf16x 0x4be7
-#define MN_vfpclassbf16x 0x4bf6
-#define MN_vcvtph2bf8x 0x4c04
-#define MN_vcvtph2hf8x 0x4c10
-#define MN_pfmax 0x4c1c
-#define MN_adcx 0x4c22
-#define MN_bndldx 0x4c27
-#define MN_vfpclasspdx 0x4c2e
-#define MN_fclex 0x4c3a
-#define MN_fnclex 0x4c40
-#define MN_rex 0x4c47
-#define MN_vcvtpd2phx 0x4c4b
-#define MN_vcvtdq2phx 0x4c56
-#define MN_vcvtudq2phx 0x4c61
-#define MN_vcvtqq2phx 0x4c6d
-#define MN_vcvtuqq2phx 0x4c78
-#define MN_vcvt2ps2phx 0x4c84
-#define MN_vcvtps2phx 0x4c90
-#define MN_vfpclassphx 0x4c9b
-#define MN_shlx 0x4ca7
-#define MN_mulx 0x4cac
-#define MN_adox 0x4cb1
-#define MN_vcvttpd2dqx 0x4cb6
-#define MN_vcvtpd2dqx 0x4cc2
-#define MN_vcvttpd2udqx 0x4ccd
-#define MN_vcvtpd2udqx 0x4cda
-#define MN_rex_rx 0x4ce6
-#define MN_sarx 0x4ced
-#define MN_shrx 0x4cf2
-#define MN_rorx 0x4cf7
-#define MN_monitorx 0x4cfc
-#define MN_rex_wrx 0x4d05
-#define MN_vcvtph2bf8sx 0x4d0d
-#define MN_vcvtph2hf8sx 0x4d1a
-#define MN_vcvtpd2psx 0x4d27
-#define MN_vcvtph2psx 0x4d32
-#define MN_vcvtqq2psx 0x4d3d
-#define MN_vcvtuqq2psx 0x4d48
-#define MN_vfpclasspsx 0x4d54
-#define MN_vcvttpd2dqsx 0x4d60
-#define MN_vcvttpd2udqsx 0x4d6d
-#define MN_movsx 0x4d7b
-#define MN_mwaitx 0x4d81
-#define MN_bndstx 0x4d88
-#define MN_rex_wx 0x4d8f
-#define MN_rexx 0x4d96
-#define MN_vcvtps2phxx 0x4d9b
-#define MN_movzx 0x4da7
-#define MN_rex64y 0x4dad
-#define MN_vcvtneps2bf16y 0x4db4
-#define MN_vfpclassbf16y 0x4dc3
-#define MN_vcvtph2bf8y 0x4dd1
-#define MN_vcvtph2hf8y 0x4ddd
-#define MN_vfpclasspdy 0x4de9
-#define MN_loadiwkey 0x4df5
-#define MN_vcvtpd2phy 0x4dff
-#define MN_vcvtdq2phy 0x4e0a
-#define MN_vcvtudq2phy 0x4e15
-#define MN_vcvtqq2phy 0x4e21
-#define MN_vcvtuqq2phy 0x4e2c
-#define MN_vfpclassphy 0x4e38
-#define MN_vcvttpd2dqy 0x4e44
-#define MN_vcvtpd2dqy 0x4e50
-#define MN_vcvttpd2udqy 0x4e5b
-#define MN_vcvtpd2udqy 0x4e68
-#define MN_rmpquery 0x4e74
-#define MN_vcvtph2bf8sy 0x4e7d
-#define MN_vcvtph2hf8sy 0x4e8a
-#define MN_clrssbsy 0x4e97
-#define MN_setssbsy 0x4ea0
-#define MN_vcvtpd2psy 0x4ea9
-#define MN_vcvtqq2psy 0x4eb4
-#define MN_vcvtuqq2psy 0x4ebf
-#define MN_vfpclasspsy 0x4ecb
-#define MN_vcvttpd2dqsy 0x4ed7
-#define MN_vcvttpd2udqsy 0x4ee4
-#define MN_rex64xy 0x4ef2
-#define MN_rexy 0x4efa
-#define MN_vcvtps2phxy 0x4eff
-#define MN_rexxy 0x4f0b
-#define MN_rex64z 0x4f11
-#define MN_vfpclassbf16z 0x4f18
-#define MN_fldz 0x4f26
-#define MN_vfpclasspdz 0x4f2b
-#define MN_vcvtpd2phz 0x4f37
-#define MN_vcvtqq2phz 0x4f42
-#define MN_vcvtuqq2phz 0x4f4d
-#define MN_vfpclassphz 0x4f59
-#define MN_jz 0x4f65
-#define MN_jnz 0x4f68
-#define MN_repnz 0x4f6c
-#define MN_ccmpnz 0x4f72
-#define MN_loopnz 0x4f79
-#define MN_setnz 0x4f80
-#define MN_ctestnz 0x4f86
-#define MN_setzunz 0x4f8e
+#define MN_vpmaxuw 0x4b8e
+#define MN_vpsravw 0x4b96
+#define MN_vpshldvw 0x4b9e
+#define MN_vpshrdvw 0x4ba7
+#define MN_vpsllvw 0x4bb0
+#define MN_vpsrlvw 0x4bb8
+#define MN_kmovw 0x4bc0
+#define MN_vmovw 0x4bc6
+#define MN_vpmacsww 0x4bcc
+#define MN_vpmacssww 0x4bd5
+#define MN_movzw 0x4bdf
+#define MN_rex_x 0x4be5
+#define MN_fyl2x 0x4beb
+#define MN_rex64x 0x4bf1
+#define MN_vcvtneps2bf16x 0x4bf8
+#define MN_vfpclassbf16x 0x4c07
+#define MN_vcvtph2bf8x 0x4c15
+#define MN_vcvtph2hf8x 0x4c21
+#define MN_pfmax 0x4c2d
+#define MN_adcx 0x4c33
+#define MN_bndldx 0x4c38
+#define MN_vfpclasspdx 0x4c3f
+#define MN_fclex 0x4c4b
+#define MN_fnclex 0x4c51
+#define MN_rex 0x4c58
+#define MN_vcvtpd2phx 0x4c5c
+#define MN_vcvtdq2phx 0x4c67
+#define MN_vcvtudq2phx 0x4c72
+#define MN_vcvtqq2phx 0x4c7e
+#define MN_vcvtuqq2phx 0x4c89
+#define MN_vcvt2ps2phx 0x4c95
+#define MN_vcvtps2phx 0x4ca1
+#define MN_vfpclassphx 0x4cac
+#define MN_shlx 0x4cb8
+#define MN_mulx 0x4cbd
+#define MN_adox 0x4cc2
+#define MN_vcvttpd2dqx 0x4cc7
+#define MN_vcvtpd2dqx 0x4cd3
+#define MN_vcvttpd2udqx 0x4cde
+#define MN_vcvtpd2udqx 0x4ceb
+#define MN_rex_rx 0x4cf7
+#define MN_sarx 0x4cfe
+#define MN_shrx 0x4d03
+#define MN_rorx 0x4d08
+#define MN_monitorx 0x4d0d
+#define MN_rex_wrx 0x4d16
+#define MN_vcvtph2bf8sx 0x4d1e
+#define MN_vcvtph2hf8sx 0x4d2b
+#define MN_vcvtpd2psx 0x4d38
+#define MN_vcvtph2psx 0x4d43
+#define MN_vcvtqq2psx 0x4d4e
+#define MN_vcvtuqq2psx 0x4d59
+#define MN_vfpclasspsx 0x4d65
+#define MN_vcvttpd2dqsx 0x4d71
+#define MN_vcvttpd2udqsx 0x4d7e
+#define MN_movsx 0x4d8c
+#define MN_mwaitx 0x4d92
+#define MN_bndstx 0x4d99
+#define MN_rex_wx 0x4da0
+#define MN_rexx 0x4da7
+#define MN_vcvtps2phxx 0x4dac
+#define MN_movzx 0x4db8
+#define MN_rex64y 0x4dbe
+#define MN_vcvtneps2bf16y 0x4dc5
+#define MN_vfpclassbf16y 0x4dd4
+#define MN_vcvtph2bf8y 0x4de2
+#define MN_vcvtph2hf8y 0x4dee
+#define MN_vfpclasspdy 0x4dfa
+#define MN_loadiwkey 0x4e06
+#define MN_vcvtpd2phy 0x4e10
+#define MN_vcvtdq2phy 0x4e1b
+#define MN_vcvtudq2phy 0x4e26
+#define MN_vcvtqq2phy 0x4e32
+#define MN_vcvtuqq2phy 0x4e3d
+#define MN_vfpclassphy 0x4e49
+#define MN_vcvttpd2dqy 0x4e55
+#define MN_vcvtpd2dqy 0x4e61
+#define MN_vcvttpd2udqy 0x4e6c
+#define MN_vcvtpd2udqy 0x4e79
+#define MN_rmpquery 0x4e85
+#define MN_vcvtph2bf8sy 0x4e8e
+#define MN_vcvtph2hf8sy 0x4e9b
+#define MN_clrssbsy 0x4ea8
+#define MN_setssbsy 0x4eb1
+#define MN_vcvtpd2psy 0x4eba
+#define MN_vcvtqq2psy 0x4ec5
+#define MN_vcvtuqq2psy 0x4ed0
+#define MN_vfpclasspsy 0x4edc
+#define MN_vcvttpd2dqsy 0x4ee8
+#define MN_vcvttpd2udqsy 0x4ef5
+#define MN_rex64xy 0x4f03
+#define MN_rexy 0x4f0b
+#define MN_vcvtps2phxy 0x4f10
+#define MN_rexxy 0x4f1c
+#define MN_rex64z 0x4f22
+#define MN_vfpclassbf16z 0x4f29
+#define MN_fldz 0x4f37
+#define MN_vfpclasspdz 0x4f3c
+#define MN_vcvtpd2phz 0x4f48
+#define MN_vcvtqq2phz 0x4f53
+#define MN_vcvtuqq2phz 0x4f5e
+#define MN_vfpclassphz 0x4f6a
+#define MN_jz 0x4f76
+#define MN_jnz 0x4f79
+#define MN_repnz 0x4f7d
+#define MN_ccmpnz 0x4f83
+#define MN_loopnz 0x4f8a
+#define MN_setnz 0x4f91
+#define MN_ctestnz 0x4f97
+#define MN_setzunz 0x4f9f
#define MN_cmovnz (MN_cfcmovnz + 2)
-#define MN_cfcmovnz 0x4f96
-#define MN_repz 0x4f9f
-#define MN_ccmpz 0x4fa4
-#define MN_loopz 0x4faa
-#define MN_vfpclasspsz 0x4fb0
-#define MN_setz 0x4fbc
-#define MN_ctestz 0x4fc1
-#define MN_setzuz 0x4fc8
+#define MN_cfcmovnz 0x4fa7
+#define MN_repz 0x4fb0
+#define MN_ccmpz 0x4fb5
+#define MN_loopz 0x4fbb
+#define MN_vfpclasspsz 0x4fc1
+#define MN_setz 0x4fcd
+#define MN_ctestz 0x4fd2
+#define MN_setzuz 0x4fd9
#define MN_cmovz (MN_cfcmovz + 2)
-#define MN_cfcmovz 0x4fcf
-#define MN_rex64xz 0x4fd7
-#define MN_jecxz 0x4fdf
-#define MN_jcxz 0x4fe5
-#define MN_jrcxz 0x4fea
-#define MN_rexz 0x4ff0
-#define MN_rexxz 0x4ff5
-#define MN_rex64yz 0x4ffb
-#define MN_rex64xyz 0x5003
-#define MN_rexyz 0x500c
-#define MN_rexxyz 0x5012
-#define MN__disp32_ 0x5019
-#define MN__rex2_ 0x5022
-#define MN__vex2_ 0x5029
-#define MN__vex3_ 0x5030
-#define MN__disp16_ 0x5037
-#define MN__disp8_ 0x5040
-#define MN__load_ 0x5048
-#define MN__store_ 0x504f
-#define MN__nooptimize_ 0x5057
-#define MN__nf_ 0x5064
-#define MN__rex_ 0x5069
-#define MN__evex_ 0x506f
-#define MN__vex_ 0x5076
-#define MN__insn 0x507c
+#define MN_cfcmovz 0x4fe0
+#define MN_rex64xz 0x4fe8
+#define MN_jecxz 0x4ff0
+#define MN_jcxz 0x4ff6
+#define MN_jrcxz 0x4ffb
+#define MN_rexz 0x5001
+#define MN_rexxz 0x5006
+#define MN_rex64yz 0x500c
+#define MN_rex64xyz 0x5014
+#define MN_rexyz 0x501d
+#define MN_rexxyz 0x5023
+#define MN__disp32_ 0x502a
+#define MN__rex2_ 0x5033
+#define MN__vex2_ 0x503a
+#define MN__vex3_ 0x5041
+#define MN__disp16_ 0x5048
+#define MN__disp8_ 0x5051
+#define MN__load_ 0x5059
+#define MN__store_ 0x5060
+#define MN__nooptimize_ 0x5068
+#define MN__nf_ 0x5075
+#define MN__noimm8s_ 0x507a
+#define MN__rex_ 0x5084
+#define MN__evex_ 0x508a
+#define MN__vex_ 0x5091
+#define MN__insn 0x5097
diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h
index 5ba84c8..86fe0b8 100644
--- a/opcodes/i386-opc.h
+++ b/opcodes/i386-opc.h
@@ -66,14 +66,16 @@ enum i386_cpu
CpuSSE3,
/* VIA PadLock required */
CpuPadLock,
- /* Zhaoxin GMI SM2 required */
- CpuGMISM2,
- /* Zhaoxin GMI CCS required */
- CpuGMICCS,
/* Zhaoxin PadLock RNG2 required */
CpuPadLockRNG2,
/* Zhaoxin PadLock PHE2 required */
CpuPadLockPHE2,
+ /* Zhaoxin PadLock XMODX required */
+ CpuPadLockXMODX,
+ /* Zhaoxin GMI SM2 required */
+ CpuGMISM2,
+ /* Zhaoxin GMI CCS required */
+ CpuGMICCS,
/* AMD Secure Virtual Machine Ext-s required */
CpuSVME,
/* VMX Instructions required */
@@ -426,10 +428,11 @@ typedef union i386_cpu_flags
unsigned int cpusse2:1;
unsigned int cpusse3:1;
unsigned int cpupadlock:1;
- unsigned int cpugmism2:1;
- unsigned int cpugmiccs:1;
unsigned int cpupadlockrng2:1;
unsigned int cpupadlockphe2:1;
+ unsigned int cpupadlockxmodx:1;
+ unsigned int cpugmism2:1;
+ unsigned int cpugmiccs:1;
unsigned int cpusvme:1;
unsigned int cpuvmx:1;
unsigned int cpusmx:1;
@@ -860,8 +863,9 @@ typedef struct i386_opcode_modifier
enum operand_class
{
ClassNone,
- Reg, /* GPRs and FP regs, distinguished by operand size */
+ Reg, /* GPRs, distinguished by operand size */
SReg, /* Segment register */
+ RegFP, /* FP regs */
RegCR, /* Control register */
RegDR, /* Debug register */
RegTR, /* Test register */
@@ -1071,6 +1075,7 @@ typedef struct insn_template
#define Prefix_REX2 9 /* {rex2} */
#define Prefix_NoOptimize 10 /* {nooptimize} */
#define Prefix_NF 11 /* {nf} */
+#define Prefix_NoImm8s 12 /* {noimm8s} */
/* the bits in opcode_modifier are used to generate the final opcode from
the base_opcode. These bits also are used to detect alternate forms of
diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
index d9e5acd..6eadc2e 100644
--- a/opcodes/i386-opc.tbl
+++ b/opcodes/i386-opc.tbl
@@ -44,7 +44,7 @@
#define InOutPortReg RegD|Word
#define FloatAcc Acc|Tbyte
-#define FloatReg Class=Reg|Tbyte
+#define FloatReg Class=RegFP|Tbyte
#define SReg Class=SReg
@@ -275,7 +275,9 @@ in, 0xe4, 0, W|No_sSuf|No_qSuf, { Imm8, Acc|Byte|Word|Dword }
in, 0xec, 0, W|No_sSuf|No_qSuf, { InOutPortReg, Acc|Byte|Word|Dword }
in, 0xe4, 0, W|No_sSuf|No_qSuf|IntelSuffix, { Imm8 }
in, 0xec, 0, W|No_sSuf|No_qSuf|IntelSuffix, { InOutPortReg }
-out, 0xe6, 0, W|No_sSuf|No_qSuf, { Acc|Byte|Word|Dword, Imm8 }
+// Immediates want to be first; md_assemble() takes care of swapping operands
+// accordingly.
+out, 0xe6, 0, W|No_sSuf|No_qSuf, { Imm8, Acc|Byte|Word|Dword }
out, 0xee, 0, W|No_sSuf|No_qSuf, { Acc|Byte|Word|Dword, InOutPortReg }
out, 0xe6, 0, W|No_sSuf|No_qSuf|IntelSuffix, { Imm8 }
out, 0xee, 0, W|No_sSuf|No_qSuf|IntelSuffix, { InOutPortReg }
@@ -947,7 +949,7 @@ rex.wrxb, 0x4f, x64, NoSuf|IsPrefix, {}
load:Load:0, store:Store:0, +
vex:VEX:0, vex2:VEX:0, vex3:VEX3:0, evex:EVEX:0, +
rex:REX:x64, rex2:REX2:APX_F, nf:NF:APX_F, +
- nooptimize:NoOptimize:0>
+ nooptimize:NoOptimize:0, noimm8s:NoImm8s:0>
{<pseudopfx>}, PSEUDO_PREFIX/Prefix_<pseudopfx:ident>, <pseudopfx:cpu>, NoSuf|IsPrefix, {}
@@ -979,15 +981,18 @@ fxrstor, 0xfae/1, FXSR, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|IntelSuffix, { Uns
fxrstor64, 0xfae/1, FXSR&x64, Modrm|NoSuf|Size64, { Unspecified|BaseIndex }
rdpmc, 0xf33, i686, NoSuf, {}
// official undefined instr.
-ud2, 0xf0b, i186, NoSuf, {}
+ud2, 0xf0b, i286, NoSuf, {}
// alias for ud2
-ud2a, 0xf0b, i186, NoSuf, {}
-// 2nd. official undefined instr.
-ud1, 0xfb9, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+ud2a, 0xf0b, i286, NoSuf, {}
+// 2nd official undefined instr (older AMD CPUs don't take a ModR/M byte)
+ud1, 0xfb9, i286, /*Amd|*/NoSuf, {}
+ud1, 0xfb9, i286, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
// alias for ud1
-ud2b, 0xfb9, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+ud2b, 0xfb9, i286, /*Amd|*/NoSuf, {}
+ud2b, 0xfb9, i286, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
// 3rd official undefined instr (older CPUs don't take a ModR/M byte)
-ud0, 0xfff, i186, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
+ud0, 0xfff, i286, NoSuf, {}
+ud0, 0xfff, i286, Modrm|CheckOperandSize|No_bSuf|No_sSuf, { Reg16|Reg32|Reg64|Unspecified|BaseIndex, Reg16|Reg32|Reg64 }
// C (commutative) isn't quite correct here on its own; the condition also
// needs inverting when source operands are swapped in order to convert to
@@ -2148,6 +2153,10 @@ xrng2, 0xf30fa7f8, PadLockRNG2, NoSuf|RepPrefixOk, {}
xsha384, 0xf30fa6d8, PadLockPHE2, NoSuf|RepPrefixOk, {}
xsha512, 0xf30fa6e0, PadLockPHE2, NoSuf|RepPrefixOk, {}
+// Zhaoxin PadLock XMODX instructions
+montmul2, 0xf30fa6f0, PadLockXMODX, NoSuf|RepPrefixOk, {}
+xmodexp, 0xf30fa6f8, PadLockXMODX, NoSuf|RepPrefixOk, {}
+
// Multy-precision Add Carry, rdseed instructions.
<adx:pfx, c:66, o:f3>
ad<adx>x, 0x<adx:pfx>66, ADX&APX_F, C|Modrm|CheckOperandSize|No_bSuf|No_wSuf|No_sSuf|DstVVVV|EVexMap4, { Reg32|Reg64|Unspecified|BaseIndex, Reg32|Reg64, Reg32|Reg64 }
@@ -2238,10 +2247,10 @@ vpclmulhqhqdq, 0x6644/0x11, VPCLMULQDQ&(AVX|AVX512F), Modrm|Space0F3A|Vex|EVexDY
// continue to work.
<Exy:vl:attr:sr:sae:src:dst, +
$z::EVex512|Disp8MemShift=6:StaticRounding|SAE:SAE:RegZMM|Unspecified|BaseIndex:RegYMM, +
- $i:AVX512VL:Disp8ShiftVL|IntelSyntax:StaticRounding|SAE:SAE:RegXMM|RegYMM|Unspecified|BaseIndex:RegXMM, +
- $a:AVX512VL:Disp8ShiftVL|ATTSyntax:StaticRounding|SAE:SAE:RegXMM|RegYMM|BaseIndex:RegXMM, +
+ $i:AVX512VL:Disp8ShiftVL|IntelSyntax:::RegXMM|RegYMM|Unspecified|BaseIndex:RegXMM, +
+ $a:AVX512VL:Disp8ShiftVL|ATTSyntax:::RegXMM|RegYMM|BaseIndex:RegXMM, +
x:AVX512VL:EVex128|Disp8MemShift=4|ATTSyntax:::RegXMM|Unspecified|BaseIndex:RegXMM, +
- y:AVX512VL:EVex256|Disp8MemShift=5|ATTSyntax:StaticRounding|SAE:SAE:RegYMM|Unspecified|BaseIndex:RegXMM>
+ y:AVX512VL:EVex256|Disp8MemShift=5|ATTSyntax:::RegYMM|Unspecified|BaseIndex:RegXMM>
kand<bw>, 0x<bw:kpfx>41, <bw:kcpu>, Modrm|Vex256|Space0F|Src1VVVV|VexW0|NoSuf, { RegMask, RegMask, RegMask }
kandn<bw>, 0x<bw:kpfx>42, <bw:kcpu>, Modrm|Vex256|Space0F|Src1VVVV|VexW0|NoSuf, { RegMask, RegMask, RegMask }
@@ -2636,10 +2645,10 @@ vcvtudq2pd, 0xF37A, AVX512VL, Modrm|EVex128|Masking|Space0F|VexW0|Broadcast|Disp
vcvtudq2pd, 0xF37A, AVX512VL, Modrm|EVex256|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=4|NoSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegYMM }
vcvtph2ps, 0x6613, AVX512VL, Modrm|EVex=2|Masking|Space0F38|VexW0|Disp8MemShift=3|NoSuf, { RegXMM|Qword|Unspecified|BaseIndex, RegXMM }
-vcvtph2ps, 0x6613, AVX512VL, Modrm|EVex=3|Masking|Space0F38|VexW=1|Disp8MemShift=4|NoSuf|SAE, { RegXMM|Unspecified|BaseIndex, RegYMM }
+vcvtph2ps, 0x6613, AVX512VL, Modrm|EVex=3|Masking|Space0F38|VexW=1|Disp8MemShift=4|NoSuf, { RegXMM|Unspecified|BaseIndex, RegYMM }
vcvtps2pd, 0x5A, AVX512VL, Modrm|EVex128|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=3|NoSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM }
-vcvtps2pd, 0x5A, AVX512VL, Modrm|EVex256|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=4|NoSuf|SAE, { RegXMM|Dword|Unspecified|BaseIndex, RegYMM }
+vcvtps2pd, 0x5A, AVX512VL, Modrm|EVex256|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=4|NoSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegYMM }
vcvtps2ph, 0x661D, AVX512VL, Modrm|EVex128|Masking|Space0F3A|VexW0|Disp8MemShift=3|NoSuf, { Imm8, RegXMM, RegXMM|Qword|Unspecified|BaseIndex }
vcvtps2ph, 0x661D, AVX512VL, Modrm|EVex256|Masking|Space0F3A|VexW0|Disp8MemShift=4|NoSuf, { Imm8, RegYMM, RegXMM|Unspecified|BaseIndex }
@@ -2793,7 +2802,7 @@ vptestnm<bw>, 0xf326, AVX512BW, Modrm|Masking|Space0F38|Src1VVVV|<bw:vexw>|Disp8
$a::Disp8ShiftVL|ATTSyntax:StaticRounding|SAE::RegXMM|RegYMM|RegZMM|BaseIndex, +
z::EVex512|Disp8MemShift=6:StaticRounding|SAE:ATTSyntax:RegZMM|Unspecified|BaseIndex, +
x:AVX512VL:EVex128|Disp8MemShift=4::ATTSyntax:RegXMM|Unspecified|BaseIndex, +
- y:AVX512VL:EVex256|Disp8MemShift=5:StaticRounding|SAE:ATTSyntax:RegYMM|Unspecified|BaseIndex>
+ y:AVX512VL:EVex256|Disp8MemShift=5::ATTSyntax:RegYMM|Unspecified|BaseIndex>
kadd<bw>, 0x<bw:kpfx>4A, AVX512DQ, Modrm|Vex256|Space0F|Src1VVVV|VexW0|NoSuf, { RegMask, RegMask, RegMask }
ktest<bw>, 0x<bw:kpfx>99, AVX512DQ, Modrm|Vex128|Space0F|VexW0|NoSuf, { RegMask, RegMask }
@@ -2813,10 +2822,10 @@ vcvtpd2uqq, 0x6679, AVX512DQ, Modrm|Masking|Space0F|VexW1|Broadcast|Disp8ShiftVL
vcvtps2qq, 0x667B, AVX512DQ, Modrm|EVex512|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=5|NoSuf|StaticRounding|SAE, { RegYMM|Dword|Unspecified|BaseIndex, RegZMM }
vcvtps2qq, 0x667B, AVX512DQ&AVX512VL, Modrm|EVex128|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=3|NoSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM }
-vcvtps2qq, 0x667B, AVX512DQ&AVX512VL, Modrm|EVex256|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=4|NoSuf|StaticRounding|SAE, { RegXMM|Dword|Unspecified|BaseIndex, RegYMM }
+vcvtps2qq, 0x667B, AVX512DQ&AVX512VL, Modrm|EVex256|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=4|NoSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegYMM }
vcvtps2uqq, 0x6679, AVX512DQ, Modrm|EVex512|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=5|NoSuf|StaticRounding|SAE, { RegYMM|Dword|Unspecified|BaseIndex, RegZMM }
vcvtps2uqq, 0x6679, AVX512DQ&AVX512VL, Modrm|EVex128|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=3|NoSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM }
-vcvtps2uqq, 0x6679, AVX512DQ&AVX512VL, Modrm|EVex256|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=4|NoSuf|StaticRounding|SAE, { RegXMM|Dword|Unspecified|BaseIndex, RegYMM }
+vcvtps2uqq, 0x6679, AVX512DQ&AVX512VL, Modrm|EVex256|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=4|NoSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegYMM }
vcvtqq2pd, 0xF3E6, AVX512DQ, Modrm|Masking|Space0F|VexW1|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf|StaticRounding|SAE, { RegXMM|RegYMM|RegZMM|Qword|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM }
vcvtuqq2pd, 0xF37A, AVX512DQ, Modrm|Masking|Space0F|VexW1|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf|StaticRounding|SAE, { RegXMM|RegYMM|RegZMM|Qword|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM }
@@ -2828,10 +2837,10 @@ vcvttpd2uqq, 0x6678, AVX512DQ, Modrm|Masking|Space0F|VexW1|Broadcast|Disp8ShiftV
vcvttps2qq, 0x667A, AVX512DQ, Modrm|EVex512|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=5|NoSuf|SAE, { RegYMM|Dword|Unspecified|BaseIndex, RegZMM }
vcvttps2qq, 0x667A, AVX512DQ&AVX512VL, Modrm|EVex128|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=3|NoSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM }
-vcvttps2qq, 0x667A, AVX512DQ&AVX512VL, Modrm|EVex256|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=4|NoSuf|SAE, { RegXMM|Dword|Unspecified|BaseIndex, RegYMM }
+vcvttps2qq, 0x667A, AVX512DQ&AVX512VL, Modrm|EVex256|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=4|NoSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegYMM }
vcvttps2uqq, 0x6678, AVX512DQ, Modrm|EVex512|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=5|NoSuf|SAE, { RegYMM|Dword|Unspecified|BaseIndex, RegZMM }
vcvttps2uqq, 0x6678, AVX512DQ&AVX512VL, Modrm|EVex128|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=3|NoSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM }
-vcvttps2uqq, 0x6678, AVX512DQ&AVX512VL, Modrm|EVex256|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=4|NoSuf|SAE, { RegXMM|Dword|Unspecified|BaseIndex, RegYMM }
+vcvttps2uqq, 0x6678, AVX512DQ&AVX512VL, Modrm|EVex256|Masking|Space0F|VexW0|Broadcast|Disp8MemShift=4|NoSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegYMM }
vcvtuqq2ps<Exy>, 0xf27a, AVX512DQ&<Exy:vl>, Modrm|<Exy:attr>|Masking|Space0F|VexW1|Broadcast|NoSuf|<Exy:sr>, { <Exy:src>|Qword, <Exy:dst> }
@@ -3352,23 +3361,23 @@ vcvtw2ph, 0xf37d, AVX512_FP16, Modrm|Masking|Map5|VexW0|Broadcast|Disp8ShiftVL|C
vcvtuw2ph, 0xf27d, AVX512_FP16, Modrm|Masking|Map5|VexW0|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf|StaticRounding|SAE, { RegXMM|RegYMM|RegZMM|Word|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM }
vcvtph2dq, 0x665b, AVX512_FP16&AVX512VL, Modrm|EVex128|Masking|Map5|VexW0|Broadcast|Disp8MemShift=3|NoSuf, { RegXMM|Word|Qword|Unspecified|BaseIndex, RegXMM }
-vcvtph2dq, 0x665b, AVX512_FP16&AVX512VL, Modrm|EVex256|Masking|Map5|VexW0|Broadcast|Disp8MemShift=4|NoSuf|StaticRounding|SAE, { RegXMM|Word|Unspecified|BaseIndex, RegYMM }
+vcvtph2dq, 0x665b, AVX512_FP16&AVX512VL, Modrm|EVex256|Masking|Map5|VexW0|Broadcast|Disp8MemShift=4|NoSuf, { RegXMM|Word|Unspecified|BaseIndex, RegYMM }
vcvtph2dq, 0x665b, AVX512_FP16, Modrm|EVex512|Masking|Map5|VexW0|Broadcast|Disp8MemShift=5|NoSuf|StaticRounding|SAE, { RegYMM|Word|Unspecified|BaseIndex, RegZMM }
vcvtph2udq, 0x79, AVX512_FP16&AVX512VL, Modrm|EVex128|Masking|Map5|VexW0|Broadcast|Disp8MemShift=3|NoSuf, { RegXMM|Word|Qword|Unspecified|BaseIndex, RegXMM }
-vcvtph2udq, 0x79, AVX512_FP16&AVX512VL, Modrm|EVex256|Masking|Map5|VexW0|Broadcast|Disp8MemShift=4|NoSuf|StaticRounding|SAE, { RegXMM|Word|Unspecified|BaseIndex, RegYMM }
+vcvtph2udq, 0x79, AVX512_FP16&AVX512VL, Modrm|EVex256|Masking|Map5|VexW0|Broadcast|Disp8MemShift=4|NoSuf, { RegXMM|Word|Unspecified|BaseIndex, RegYMM }
vcvtph2udq, 0x79, AVX512_FP16, Modrm|EVex512|Masking|Map5|VexW0|Broadcast|Disp8MemShift=5|NoSuf|StaticRounding|SAE, { RegYMM|Word|Unspecified|BaseIndex, RegZMM }
vcvtph2qq, 0x667b, AVX512_FP16&AVX512VL, Modrm|EVex128|Masking|Map5|VexW0|Broadcast|Disp8MemShift=2|NoSuf, { RegXMM|Word|Dword|Unspecified|BaseIndex, RegXMM }
-vcvtph2qq, 0x667b, AVX512_FP16&AVX512VL, Modrm|EVex256|Masking|Map5|VexW0|Broadcast|Disp8MemShift=3|NoSuf|StaticRounding|SAE, { RegXMM|Word|Qword|Unspecified|BaseIndex, RegYMM }
+vcvtph2qq, 0x667b, AVX512_FP16&AVX512VL, Modrm|EVex256|Masking|Map5|VexW0|Broadcast|Disp8MemShift=3|NoSuf, { RegXMM|Word|Qword|Unspecified|BaseIndex, RegYMM }
vcvtph2qq, 0x667b, AVX512_FP16, Modrm|EVex512|Masking|Map5|VexW0|Broadcast|Disp8MemShift=4|NoSuf|StaticRounding|SAE, { RegXMM|Word|Unspecified|BaseIndex, RegZMM }
vcvtph2uqq, 0x6679, AVX512_FP16&AVX512VL, Modrm|EVex128|Masking|Map5|VexW0|Broadcast|Disp8MemShift=2|NoSuf, { RegXMM|Word|Dword|Unspecified|BaseIndex, RegXMM }
-vcvtph2uqq, 0x6679, AVX512_FP16&AVX512VL, Modrm|EVex256|Masking|Map5|VexW0|Broadcast|Disp8MemShift=3|NoSuf|StaticRounding|SAE, { RegXMM|Word|Qword|Unspecified|BaseIndex, RegYMM }
+vcvtph2uqq, 0x6679, AVX512_FP16&AVX512VL, Modrm|EVex256|Masking|Map5|VexW0|Broadcast|Disp8MemShift=3|NoSuf, { RegXMM|Word|Qword|Unspecified|BaseIndex, RegYMM }
vcvtph2uqq, 0x6679, AVX512_FP16, Modrm|EVex512|Masking|Map5|VexW0|Broadcast|Disp8MemShift=4|NoSuf|StaticRounding|SAE, { RegXMM|Word|Unspecified|BaseIndex, RegZMM }
vcvtph2pd, 0x5a, AVX512_FP16&AVX512VL, Modrm|EVex128|Masking|Map5|VexW0|Broadcast|Disp8MemShift=2|NoSuf, { RegXMM|Word|Dword|Unspecified|BaseIndex, RegXMM }
-vcvtph2pd, 0x5a, AVX512_FP16&AVX512VL, Modrm|EVex256|Masking|Map5|VexW0|Broadcast|Disp8MemShift=3|NoSuf|SAE, { RegXMM|Word|Qword|Unspecified|BaseIndex, RegYMM }
+vcvtph2pd, 0x5a, AVX512_FP16&AVX512VL, Modrm|EVex256|Masking|Map5|VexW0|Broadcast|Disp8MemShift=3|NoSuf, { RegXMM|Word|Qword|Unspecified|BaseIndex, RegYMM }
vcvtph2pd, 0x5a, AVX512_FP16, Modrm|EVex512|Masking|Map5|VexW0|Broadcast|Disp8MemShift=4|NoSuf|SAE, { RegXMM|Word|Unspecified|BaseIndex, RegZMM }
vcvtph2w, 0x667d, AVX512_FP16, Modrm|Masking|Map5|VexW0|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf|StaticRounding|SAE, { RegXMM|RegYMM|RegZMM|Word|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM }
@@ -3389,23 +3398,23 @@ vcvtsh2ss, 0x13, AVX512_FP16, Modrm|EVexLIG|Masking|Map6|Src1VVVV|VexW0|Disp8Mem
vcvtsh2si, 0xf32d, AVX512_FP16, Modrm|EVexLIG|Map5|Disp8MemShift=1|NoSuf|StaticRounding|SAE, { RegXMM|Word|Unspecified|BaseIndex, Reg32|Reg64 }
vcvttph2dq, 0xf35b, AVX512_FP16&AVX512VL, Modrm|EVex128|Masking|Map5|VexW0|Broadcast|Disp8MemShift=3|NoSuf, { RegXMM|Word|Qword|Unspecified|BaseIndex, RegXMM }
-vcvttph2dq, 0xf35b, AVX512_FP16&AVX512VL, Modrm|EVex256|Masking|Map5|VexW0|Broadcast|Disp8MemShift=4|NoSuf|SAE, { RegXMM|Word|Unspecified|BaseIndex, RegYMM }
+vcvttph2dq, 0xf35b, AVX512_FP16&AVX512VL, Modrm|EVex256|Masking|Map5|VexW0|Broadcast|Disp8MemShift=4|NoSuf, { RegXMM|Word|Unspecified|BaseIndex, RegYMM }
vcvttph2dq, 0xf35b, AVX512_FP16, Modrm|EVex512|Masking|Map5|VexW0|Broadcast|Disp8MemShift=5|NoSuf|SAE, { RegYMM|Word|Unspecified|BaseIndex, RegZMM }
vcvttph2udq, 0x78, AVX512_FP16&AVX512VL, Modrm|EVex128|Masking|Map5|VexW0|Broadcast|Disp8MemShift=3|NoSuf, { RegXMM|Word|Qword|Unspecified|BaseIndex, RegXMM }
-vcvttph2udq, 0x78, AVX512_FP16&AVX512VL, Modrm|EVex256|Masking|Map5|VexW0|Broadcast|Disp8MemShift=4|NoSuf|SAE, { RegXMM|Word|Unspecified|BaseIndex, RegYMM }
+vcvttph2udq, 0x78, AVX512_FP16&AVX512VL, Modrm|EVex256|Masking|Map5|VexW0|Broadcast|Disp8MemShift=4|NoSuf, { RegXMM|Word|Unspecified|BaseIndex, RegYMM }
vcvttph2udq, 0x78, AVX512_FP16, Modrm|EVex512|Masking|Map5|VexW0|Broadcast|Disp8MemShift=5|NoSuf|SAE, { RegYMM|Word|Unspecified|BaseIndex, RegZMM }
vcvttph2qq, 0x667a, AVX512_FP16&AVX512VL, Modrm|EVex128|Masking|Map5|VexW0|Broadcast|Disp8MemShift=2|NoSuf, { RegXMM|Word|Dword|Unspecified|BaseIndex, RegXMM }
-vcvttph2qq, 0x667a, AVX512_FP16&AVX512VL, Modrm|EVex256|Masking|Map5|VexW0|Broadcast|Disp8MemShift=3|NoSuf|SAE, { RegXMM|Word|Qword|Unspecified|BaseIndex, RegYMM }
+vcvttph2qq, 0x667a, AVX512_FP16&AVX512VL, Modrm|EVex256|Masking|Map5|VexW0|Broadcast|Disp8MemShift=3|NoSuf, { RegXMM|Word|Qword|Unspecified|BaseIndex, RegYMM }
vcvttph2qq, 0x667a, AVX512_FP16, Modrm|EVex512|Masking|Map5|VexW0|Broadcast|Disp8MemShift=4|NoSuf|SAE, { RegXMM|Word|Unspecified|BaseIndex, RegZMM }
vcvttph2uqq, 0x6678, AVX512_FP16&AVX512VL, Modrm|EVex128|Masking|Map5|VexW0|Broadcast|Disp8MemShift=2|NoSuf, { RegXMM|Word|Dword|Unspecified|BaseIndex, RegXMM }
-vcvttph2uqq, 0x6678, AVX512_FP16&AVX512VL, Modrm|EVex256|Masking|Map5|VexW0|Broadcast|Disp8MemShift=3|NoSuf|SAE, { RegXMM|Word|Qword|Unspecified|BaseIndex, RegYMM }
+vcvttph2uqq, 0x6678, AVX512_FP16&AVX512VL, Modrm|EVex256|Masking|Map5|VexW0|Broadcast|Disp8MemShift=3|NoSuf, { RegXMM|Word|Qword|Unspecified|BaseIndex, RegYMM }
vcvttph2uqq, 0x6678, AVX512_FP16, Modrm|EVex512|Masking|Map5|VexW0|Broadcast|Disp8MemShift=4|NoSuf|SAE, { RegXMM|Word|Unspecified|BaseIndex, RegZMM }
vcvtph2psx, 0x6613, AVX512_FP16&AVX512VL, Modrm|EVex128|Masking|Map6|VexW0|Broadcast|Disp8MemShift=3|NoSuf, { RegXMM|Word|Qword|Unspecified|BaseIndex, RegXMM }
-vcvtph2psx, 0x6613, AVX512_FP16&AVX512VL, Modrm|EVex256|Masking|Map6|VexW0|Broadcast|Disp8MemShift=4|NoSuf|SAE, { RegXMM|Word|Unspecified|BaseIndex, RegYMM }
+vcvtph2psx, 0x6613, AVX512_FP16&AVX512VL, Modrm|EVex256|Masking|Map6|VexW0|Broadcast|Disp8MemShift=4|NoSuf, { RegXMM|Word|Unspecified|BaseIndex, RegYMM }
vcvtph2psx, 0x6613, AVX512_FP16, Modrm|EVex512|Masking|Map6|VexW0|Broadcast|Disp8MemShift=5|NoSuf|SAE, { RegYMM|Word|Unspecified|BaseIndex, RegZMM }
vcvttph2w, 0x667c, AVX512_FP16, Modrm|Masking|Map5|VexW0|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf|SAE, { RegXMM|RegYMM|RegZMM|Word|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM }
@@ -3571,7 +3580,7 @@ vcvttpd2<sign>dqs<Exy>, 0x<sign:opc>, AVX10_2, Modrm|Map5|<Exy:attr>|VexW1|Maski
vcvttpd2<sign>qqs, 0x66<sign:opc>, AVX10_2, Modrm|Map5|VexW1|Masking|Broadcast|Disp8ShiftVL|CheckOperandSize|NoSuf|SAE, { RegXMM|RegYMM|RegZMM|Qword|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM }
vcvttps2<sign>dqs, 0x<sign:opc>, AVX10_2, Modrm|Map5|VexW0|Masking|Broadcast|Disp8ShiftVL|Broadcast|CheckOperandSize|NoSuf|SAE, { RegXMM|RegYMM|RegZMM|Dword|Unspecified|BaseIndex, RegXMM|RegYMM|RegZMM }
vcvttps2<sign>qqs, 0x66<sign:opc>, AVX10_2, Modrm|Map5|EVex128|VexW0|Masking|Broadcast|Disp8MemShift=3|NoSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM }
-vcvttps2<sign>qqs, 0x66<sign:opc>, AVX10_2, Modrm|Map5|EVex256|VexW0|Masking|Broadcast|Disp8MemShift=4|NoSuf|SAE, { RegXMM|Dword|Unspecified|BaseIndex, RegYMM }
+vcvttps2<sign>qqs, 0x66<sign:opc>, AVX10_2, Modrm|Map5|EVex256|VexW0|Masking|Broadcast|Disp8MemShift=4|NoSuf, { RegXMM|Dword|Unspecified|BaseIndex, RegYMM }
vcvttps2<sign>qqs, 0x66<sign:opc>, AVX10_2, Modrm|Map5|EVex512|VexW0|Masking|Broadcast|Disp8MemShift=5|NoSuf|SAE, { RegYMM|Dword|Unspecified|BaseIndex, RegZMM }
vcvttsd2<sign>sis, 0xf2<sign:opc>, AVX10_2, Modrm|Map5|EVexLIG|Disp8MemShift=3|NoSuf|SAE, { RegXMM|Qword|Unspecified|BaseIndex, Reg32|Reg64 }
diff --git a/opcodes/i386-reg.tbl b/opcodes/i386-reg.tbl
index 026d3ee..e186814 100644
--- a/opcodes/i386-reg.tbl
+++ b/opcodes/i386-reg.tbl
@@ -30,8 +30,8 @@ ah, Class=Reg|Byte, 0, 4, Dw2Inval, Dw2Inval
ch, Class=Reg|Byte, 0, 5, Dw2Inval, Dw2Inval
dh, Class=Reg|Byte, 0, 6, Dw2Inval, Dw2Inval
bh, Class=Reg|Byte, 0, 7, Dw2Inval, Dw2Inval
-axl, Class=Reg|Byte, RegRex64, 0, Dw2Inval, Dw2Inval
-cxl, Class=Reg|Byte, RegRex64, 1, Dw2Inval, Dw2Inval
+axl, Class=Reg|Instance=Accum|Byte, RegRex64, 0, Dw2Inval, Dw2Inval
+cxl, Class=Reg|Instance=RegC|Byte, RegRex64, 1, Dw2Inval, Dw2Inval
dxl, Class=Reg|Byte, RegRex64, 2, Dw2Inval, Dw2Inval
bxl, Class=Reg|Byte, RegRex64, 3, Dw2Inval, Dw2Inval
spl, Class=Reg|Byte, RegRex64, 4, Dw2Inval, Dw2Inval
@@ -367,14 +367,14 @@ eip, Dword, RegRex64, RegIP, 8, Dw2Inval
riz, Qword|BaseIndex, RegRex64, RegIZ, Dw2Inval, Dw2Inval
eiz, Dword|BaseIndex, 0, RegIZ, Dw2Inval, Dw2Inval
// fp regs. No need for an explicit st(0) here.
-st, Class=Reg|Instance=Accum|Tbyte, 0, 0, 11, 33
-st(1), Class=Reg|Tbyte, 0, 1, 12, 34
-st(2), Class=Reg|Tbyte, 0, 2, 13, 35
-st(3), Class=Reg|Tbyte, 0, 3, 14, 36
-st(4), Class=Reg|Tbyte, 0, 4, 15, 37
-st(5), Class=Reg|Tbyte, 0, 5, 16, 38
-st(6), Class=Reg|Tbyte, 0, 6, 17, 39
-st(7), Class=Reg|Tbyte, 0, 7, 18, 40
+st, Class=RegFP|Instance=Accum|Tbyte, 0, 0, 11, 33
+st(1), Class=RegFP|Tbyte, 0, 1, 12, 34
+st(2), Class=RegFP|Tbyte, 0, 2, 13, 35
+st(3), Class=RegFP|Tbyte, 0, 3, 14, 36
+st(4), Class=RegFP|Tbyte, 0, 4, 15, 37
+st(5), Class=RegFP|Tbyte, 0, 5, 16, 38
+st(6), Class=RegFP|Tbyte, 0, 6, 17, 39
+st(7), Class=RegFP|Tbyte, 0, 7, 18, 40
// Pseudo-register names only used in .cfi_* directives
eflags, 0, 0, 0, 9, 49
rflags, 0, 0, 0, Dw2Inval, 49
diff --git a/opcodes/i386-tbl.h b/opcodes/i386-tbl.h
index 3797820..ba453ad 100644
--- a/opcodes/i386-tbl.h
+++ b/opcodes/i386-tbl.h
@@ -120,7 +120,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 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, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -130,7 +130,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 1, 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, 0, 0, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -140,7 +140,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -150,7 +150,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 1, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -160,7 +160,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 5, 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, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -188,7 +188,7 @@ static const insn_template i386_optab[] =
{ 1, 0, 0, 1, 0, 0, 0, 1, 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, 1,
0, 0 },
- { { 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } },
@@ -198,7 +198,7 @@ static const insn_template i386_optab[] =
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 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 },
- { { 51, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 52, 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 } },
{ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } },
@@ -544,9 +544,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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 0, 0, 0, 0, 0, 0, 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 } } } },
{ MN_out, 0xee, 2, SPACE_BASE, None,
{ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
@@ -716,7 +716,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -732,7 +732,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -6962,7 +6962,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
@@ -6978,7 +6978,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7034,7 +7034,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
@@ -7050,7 +7050,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
@@ -7066,7 +7066,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
@@ -7082,7 +7082,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7138,7 +7138,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7154,7 +7154,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7178,7 +7178,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
@@ -7194,7 +7194,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7218,7 +7218,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
@@ -7242,7 +7242,7 @@ 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 } },
- { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7258,7 +7258,7 @@ 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 } },
- { { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7354,7 +7354,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -7364,7 +7364,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7398,7 +7398,7 @@ static const insn_template i386_optab[] =
{ { 12, 1, 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, 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,
+ { { 3, 0, 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, 0xde, 1, SPACE_BASE, 0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7406,7 +7406,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7422,7 +7422,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7430,7 +7430,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -7466,7 +7466,7 @@ static const insn_template i386_optab[] =
{ { 12, 1, 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, 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,
+ { { 3, 0, 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, 0xde, 1, SPACE_BASE, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7474,7 +7474,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7492,7 +7492,7 @@ static const insn_template i386_optab[] =
{ { 12, 1, 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, 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,
+ { { 3, 0, 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, 0xde, 1, SPACE_BASE, 5,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7500,7 +7500,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7516,7 +7516,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7524,7 +7524,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -7560,7 +7560,7 @@ static const insn_template i386_optab[] =
{ { 12, 1, 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, 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,
+ { { 3, 0, 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, 0xde, 1, SPACE_BASE, 5,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7568,7 +7568,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7586,7 +7586,7 @@ static const insn_template i386_optab[] =
{ { 12, 1, 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, 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,
+ { { 3, 0, 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, 0xde, 1, SPACE_BASE, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7594,7 +7594,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7610,7 +7610,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -7620,7 +7620,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7654,7 +7654,7 @@ static const insn_template i386_optab[] =
{ { 12, 1, 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, 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,
+ { { 3, 0, 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, 0xde, 1, SPACE_BASE, 1,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7662,7 +7662,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7678,7 +7678,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7686,7 +7686,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -7722,7 +7722,7 @@ static const insn_template i386_optab[] =
{ { 12, 1, 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, 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,
+ { { 3, 0, 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, 0xde, 1, SPACE_BASE, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7730,7 +7730,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7748,7 +7748,7 @@ static const insn_template i386_optab[] =
{ { 12, 1, 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, 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,
+ { { 3, 0, 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, 0xde, 1, SPACE_BASE, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7756,7 +7756,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7772,7 +7772,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7780,7 +7780,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -7816,7 +7816,7 @@ static const insn_template i386_optab[] =
{ { 12, 1, 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, 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,
+ { { 3, 0, 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, 0xde, 1, SPACE_BASE, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7824,7 +7824,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7842,7 +7842,7 @@ static const insn_template i386_optab[] =
{ { 12, 1, 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, 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,
+ { { 3, 0, 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, 0xde, 1, SPACE_BASE, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -7850,7 +7850,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -8218,7 +8218,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 12, 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, 0, 0, 1,
+ { { { 3, 0, 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,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -8226,7 +8226,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 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,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -8780,6 +8780,14 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
+ { MN__noimm8s_, 0x00, 0, SPACE_BASE, Prefix_NoImm8s,
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } } } },
{ MN_xadd, 0xc0, 2, SPACE_0F, None,
{ 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 5,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8860,8 +8868,8 @@ static const insn_template i386_optab[] =
{ 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, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 103, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 104, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 104, 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 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -8950,7 +8958,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -8958,7 +8966,15 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } } } },
+ { MN_ud1, 0xb9, 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 },
+ { { 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 } } } },
@@ -8966,27 +8982,43 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 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 },
- { { 1, 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 } },
{ { { 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,
0, 0, 0, 0, 0, 0 } } } },
+ { MN_ud2b, 0xb9, 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 },
+ { { 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 } } } },
{ MN_ud2b, 0xb9, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 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 },
- { { 1, 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 } },
{ { { 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,
0, 0, 0, 0, 0, 0 } } } },
+ { MN_ud0, 0xff, 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 },
+ { { 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 } } } },
{ MN_ud0, 0xff, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 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 },
- { { 1, 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 } },
{ { { 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 } },
@@ -10318,7 +10350,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -10328,7 +10360,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -10338,7 +10370,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -10348,7 +10380,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -10358,7 +10390,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -10368,7 +10400,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -10378,7 +10410,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -10388,7 +10420,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -10398,7 +10430,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -10408,7 +10440,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -10418,7 +10450,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -10428,7 +10460,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -10438,7 +10470,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -10456,7 +10488,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 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,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10464,7 +10496,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -10482,7 +10514,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 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,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10490,7 +10522,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -10508,7 +10540,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 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,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10516,7 +10548,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -10534,7 +10566,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 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,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10542,7 +10574,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -10560,7 +10592,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 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,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10568,7 +10600,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -10586,7 +10618,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 3, 0, 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,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -10646,7 +10678,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 0, 1, 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,
+ { { 8, 0, 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_movd, 0x6e, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10656,7 +10688,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 0, 1, 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,
0, 0, 0, 0, 0, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_movd, 0x6e, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10666,7 +10698,7 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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_movd, 0x6e, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10676,7 +10708,7 @@ static const insn_template i386_optab[] =
{ { 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,
0, 0, 0, 0, 0, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_movd, 0x6e, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10686,7 +10718,7 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 7, 0, 0, 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,
{ 1, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10696,7 +10728,7 @@ static const insn_template i386_optab[] =
{ { 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,
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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_movq, 0x7e, 2, SPACE_0F, None,
{ 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10704,9 +10736,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_movq, 0xd6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10714,9 +10746,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_movq, 0x7e, 2, SPACE_0F, None,
{ 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10724,9 +10756,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_movq, 0xd6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10734,9 +10766,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_movq, 0x6e, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10746,7 +10778,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 0, 1, 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,
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,
+ { { 8, 0, 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_movq, 0x7e, 2, SPACE_0F, None,
{ 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10754,9 +10786,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_movq, 0xd6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10764,9 +10796,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_movq, 0x6e, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10776,7 +10808,7 @@ static const insn_template i386_optab[] =
{ { 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,
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,
+ { { 8, 0, 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_movq, 0x6f, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10784,9 +10816,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_movq, 0x6e, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10796,7 +10828,7 @@ static const insn_template i386_optab[] =
{ { 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,
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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_packssdw, 0x6b, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10804,19 +10836,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_packssdw, 0x6b, 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_packssdw, 0x6b, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10824,9 +10856,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_packssdw, 0x6b, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10834,9 +10866,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_packsswb, 0x63, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10844,19 +10876,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_packsswb, 0x63, 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_packsswb, 0x63, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10864,9 +10896,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_packsswb, 0x63, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10874,9 +10906,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_packuswb, 0x67, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10884,19 +10916,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_packuswb, 0x67, 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_packuswb, 0x67, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10904,9 +10936,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_packuswb, 0x67, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -10914,9 +10946,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_paddb, 0xfc | 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,
@@ -10924,19 +10956,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddb, 0xfc | 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, 1, 1, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddb, 0xfc | 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,
@@ -10944,9 +10976,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddb, 0xfc | 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,
@@ -10954,9 +10986,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_paddw, 0xfc | 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,
@@ -10964,19 +10996,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddw, 0xfc | 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, 1, 1, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddw, 0xfc | 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,
@@ -10984,9 +11016,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddw, 0xfc | 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,
@@ -10994,9 +11026,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_paddd, 0xfe, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11004,9 +11036,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddd, 0xfe, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11014,9 +11046,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddd, 0xfe, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11024,9 +11056,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_paddq, 0xd4, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11034,9 +11066,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddq, 0xd4, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11044,9 +11076,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddq, 0xd4, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11054,9 +11086,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddq, 0xd4, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11064,9 +11096,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_paddsb, 0xec | 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,
@@ -11074,19 +11106,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddsb, 0xec | 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, 1, 1, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddsb, 0xec | 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,
@@ -11094,9 +11126,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddsb, 0xec | 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,
@@ -11104,9 +11136,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_paddsw, 0xec | 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,
@@ -11114,19 +11146,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddsw, 0xec | 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, 1, 1, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddsw, 0xec | 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,
@@ -11134,9 +11166,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddsw, 0xec | 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,
@@ -11144,9 +11176,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_paddusb, 0xdc | 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,
@@ -11154,19 +11186,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddusb, 0xdc | 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, 1, 1, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddusb, 0xdc | 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,
@@ -11174,9 +11206,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddusb, 0xdc | 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,
@@ -11184,9 +11216,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_paddusw, 0xdc | 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,
@@ -11194,19 +11226,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddusw, 0xdc | 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, 1, 1, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddusw, 0xdc | 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,
@@ -11214,9 +11246,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_paddusw, 0xdc | 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,
@@ -11224,9 +11256,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pand, 0xdb, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11234,9 +11266,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pand, 0xdb, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11244,9 +11276,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pand, 0xdb, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11254,9 +11286,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pandn, 0xdf, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11264,9 +11296,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pandn, 0xdf, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11274,9 +11306,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pandn, 0xdf, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11284,9 +11316,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpeqb, 0x74 | 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,
@@ -11294,9 +11326,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpeqb, 0x74 | 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,
@@ -11304,9 +11336,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpeqb, 0x74 | 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,
@@ -11314,9 +11346,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpeqw, 0x74 | 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,
@@ -11324,9 +11356,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpeqw, 0x74 | 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,
@@ -11334,9 +11366,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpeqw, 0x74 | 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,
@@ -11344,9 +11376,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpeqd, 0x76, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11354,9 +11386,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpeqd, 0x76, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11364,9 +11396,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpeqd, 0x76, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11374,9 +11406,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 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,
@@ -11384,9 +11416,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
@@ -11394,9 +11426,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
@@ -11404,9 +11436,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 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,
@@ -11414,9 +11446,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
@@ -11424,9 +11456,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
@@ -11434,9 +11466,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 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,
@@ -11444,9 +11476,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
@@ -11454,9 +11486,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
@@ -11464,9 +11496,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pmaddwd, 0xf5, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11474,19 +11506,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaddwd, 0xf5, 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, 1, 1, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaddwd, 0xf5, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11494,9 +11526,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaddwd, 0xf5, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11504,9 +11536,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pmulhw, 0xe5, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11514,19 +11546,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmulhw, 0xe5, 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, 1, 1, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmulhw, 0xe5, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11534,9 +11566,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmulhw, 0xe5, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11544,9 +11576,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pmullw, 0xd5, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11554,19 +11586,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmullw, 0xd5, 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, 1, 1, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmullw, 0xd5, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11574,9 +11606,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmullw, 0xd5, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11584,9 +11616,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_por, 0xeb, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11594,9 +11626,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_por, 0xeb, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11604,9 +11636,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_por, 0xeb, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11614,9 +11646,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psllw, 0xf1, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11624,19 +11656,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psllw, 0xf1, 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psllw, 0xf1, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11644,9 +11676,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psllw, 0xf1, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11654,9 +11686,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psllw, 0x71, 2, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11666,17 +11698,17 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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_psllw, 0x71, 2, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 1, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psllw, 0x71, 2, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11686,7 +11718,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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_psllw, 0x71, 2, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11696,7 +11728,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pslld, 0xf2 | 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,
@@ -11704,9 +11736,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pslld, 0xf2 | 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,
@@ -11714,9 +11746,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pslld, 0xf2 | 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,
@@ -11724,9 +11756,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pslld, 0x72 | 0, 2, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11736,7 +11768,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 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 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pslld, 0x72 | 0, 2, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11746,7 +11778,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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_pslld, 0x72 | 0, 2, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11756,7 +11788,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psllq, 0xf2 | 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,
@@ -11764,9 +11796,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psllq, 0xf2 | 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,
@@ -11774,9 +11806,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psllq, 0xf2 | 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,
@@ -11784,9 +11816,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psllq, 0xf2 | 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,
@@ -11794,9 +11826,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psllq, 0x72 | 1, 2, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11806,7 +11838,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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_psllq, 0x72 | 1, 2, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11816,7 +11848,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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_psllq, 0x72 | 1, 2, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11826,7 +11858,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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_psllq, 0x72 | 1, 2, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11836,7 +11868,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psraw, 0xe1, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11844,19 +11876,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psraw, 0xe1, 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psraw, 0xe1, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11864,9 +11896,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psraw, 0xe1, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11874,9 +11906,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psraw, 0x71, 2, SPACE_0F, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11886,17 +11918,17 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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_psraw, 0x71, 2, SPACE_0F, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psraw, 0x71, 2, SPACE_0F, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11906,7 +11938,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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_psraw, 0x71, 2, SPACE_0F, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11916,7 +11948,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psrad, 0xe2, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11924,9 +11956,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psrad, 0xe2, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11934,9 +11966,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psrad, 0xe2, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11944,9 +11976,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psrad, 0x72, 2, SPACE_0F, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11956,7 +11988,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 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 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psrad, 0x72, 2, SPACE_0F, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11966,7 +11998,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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_psrad, 0x72, 2, SPACE_0F, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11976,7 +12008,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psrlw, 0xd1, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -11984,19 +12016,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psrlw, 0xd1, 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psrlw, 0xd1, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12004,9 +12036,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psrlw, 0xd1, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12014,9 +12046,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psrlw, 0x71, 2, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12026,17 +12058,17 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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_psrlw, 0x71, 2, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psrlw, 0x71, 2, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12046,7 +12078,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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_psrlw, 0x71, 2, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12056,7 +12088,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psrld, 0xd2 | 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,
@@ -12064,9 +12096,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psrld, 0xd2 | 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,
@@ -12074,9 +12106,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psrld, 0xd2 | 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,
@@ -12084,9 +12116,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psrld, 0x72 | 0, 2, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12096,7 +12128,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 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 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psrld, 0x72 | 0, 2, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12106,7 +12138,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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_psrld, 0x72 | 0, 2, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12116,7 +12148,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psrlq, 0xd2 | 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,
@@ -12124,9 +12156,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psrlq, 0xd2 | 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,
@@ -12134,9 +12166,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psrlq, 0xd2 | 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,
@@ -12144,9 +12176,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psrlq, 0xd2 | 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,
@@ -12154,9 +12186,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psrlq, 0x72 | 1, 2, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12166,7 +12198,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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_psrlq, 0x72 | 1, 2, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12176,7 +12208,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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_psrlq, 0x72 | 1, 2, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12186,7 +12218,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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_psrlq, 0x72 | 1, 2, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12196,7 +12228,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psubb, 0xf8 | 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,
@@ -12204,19 +12236,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubb, 0xf8 | 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubb, 0xf8 | 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,
@@ -12224,9 +12256,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubb, 0xf8 | 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,
@@ -12234,9 +12266,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psubw, 0xf8 | 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,
@@ -12244,19 +12276,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubw, 0xf8 | 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubw, 0xf8 | 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,
@@ -12264,9 +12296,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubw, 0xf8 | 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,
@@ -12274,9 +12306,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psubd, 0xfa, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12284,9 +12316,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubd, 0xfa, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12294,9 +12326,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubd, 0xfa, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12304,9 +12336,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psubq, 0xfb, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12314,9 +12346,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubq, 0xfb, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12324,9 +12356,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubq, 0xfb, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12334,9 +12366,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubq, 0xfb, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12344,9 +12376,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psubsb, 0xe8 | 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,
@@ -12354,19 +12386,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubsb, 0xe8 | 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubsb, 0xe8 | 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,
@@ -12374,9 +12406,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubsb, 0xe8 | 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,
@@ -12384,9 +12416,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psubsw, 0xe8 | 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,
@@ -12394,19 +12426,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubsw, 0xe8 | 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubsw, 0xe8 | 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,
@@ -12414,9 +12446,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubsw, 0xe8 | 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,
@@ -12424,9 +12456,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psubusb, 0xd8 | 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,
@@ -12434,19 +12466,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubusb, 0xd8 | 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubusb, 0xd8 | 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,
@@ -12454,9 +12486,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubusb, 0xd8 | 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,
@@ -12464,9 +12496,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psubusw, 0xd8 | 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,
@@ -12474,19 +12506,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubusw, 0xd8 | 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubusw, 0xd8 | 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,
@@ -12494,9 +12526,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psubusw, 0xd8 | 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,
@@ -12504,9 +12536,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_punpckhbw, 0x68, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12514,19 +12546,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpckhbw, 0x68, 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpckhbw, 0x68, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12534,9 +12566,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpckhbw, 0x68, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12544,9 +12576,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_punpckhwd, 0x69, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12554,19 +12586,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpckhwd, 0x69, 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpckhwd, 0x69, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12574,9 +12606,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpckhwd, 0x69, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12584,9 +12616,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_punpckhdq, 0x6a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12594,9 +12626,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpckhdq, 0x6a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12604,9 +12636,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpckhdq, 0x6a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12614,9 +12646,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_punpcklbw, 0x60, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12624,19 +12656,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpcklbw, 0x60, 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpcklbw, 0x60, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12644,9 +12676,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpcklbw, 0x60, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12654,9 +12686,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_punpcklwd, 0x61, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12664,19 +12696,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpcklwd, 0x61, 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpcklwd, 0x61, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12684,9 +12716,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpcklwd, 0x61, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12694,9 +12726,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_punpckldq, 0x62, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12704,9 +12736,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpckldq, 0x62, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12714,9 +12746,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpckldq, 0x62, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12724,9 +12756,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pxor, 0xef, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12734,9 +12766,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pxor, 0xef, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12744,9 +12776,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pxor, 0xef, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12754,9 +12786,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 15, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_addps, 0x58, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12764,9 +12796,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_addps, 0x58, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12774,9 +12806,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_subps, 0x5c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12784,9 +12816,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_subps, 0x5c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12794,9 +12826,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_mulps, 0x59, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12804,9 +12836,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_mulps, 0x59, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12814,9 +12846,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_divps, 0x5e, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12824,9 +12856,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_divps, 0x5e, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12834,9 +12866,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_minps, 0x5d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12844,9 +12876,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_minps, 0x5d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12854,9 +12886,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_maxps, 0x5f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12864,9 +12896,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_maxps, 0x5f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12874,9 +12906,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_addss, 0x58, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12884,9 +12916,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, 1, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_addss, 0x58, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12894,9 +12926,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_subss, 0x5c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12904,9 +12936,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, 1, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_subss, 0x5c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12914,9 +12946,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_mulss, 0x59, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12924,9 +12956,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, 1, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_mulss, 0x59, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12934,9 +12966,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_divss, 0x5e, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12944,9 +12976,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, 1, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_divss, 0x5e, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12954,9 +12986,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_minss, 0x5d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12964,9 +12996,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, 1, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_minss, 0x5d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12974,9 +13006,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_maxss, 0x5f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12984,9 +13016,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, 1, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_maxss, 0x5f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -12994,9 +13026,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_andps, 0x54, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13004,19 +13036,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_andps, 0x54, 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, 1, 1, 0, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_andps, 0x54, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13024,9 +13056,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_andnps, 0x55, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13034,19 +13066,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_andnps, 0x55, 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, 1, 1, 0, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_andnps, 0x55, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13054,9 +13086,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_orps, 0x56, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13064,19 +13096,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_orps, 0x56, 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, 1, 1, 0, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_orps, 0x56, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13084,9 +13116,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_xorps, 0x57, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13094,19 +13126,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_xorps, 0x57, 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, 1, 1, 0, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_xorps, 0x57, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13114,9 +13146,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpeqps, 0xc2, 2, SPACE_0F, 0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13124,9 +13156,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpeqps, 0xc2, 2, SPACE_0F, 0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13134,9 +13166,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpltps, 0xc2, 2, SPACE_0F, 1,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13144,9 +13176,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpltps, 0xc2, 2, SPACE_0F, 1,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13154,9 +13186,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpleps, 0xc2, 2, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13164,9 +13196,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpleps, 0xc2, 2, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13174,9 +13206,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpunordps, 0xc2, 2, SPACE_0F, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13184,9 +13216,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpunordps, 0xc2, 2, SPACE_0F, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13194,9 +13226,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpneqps, 0xc2, 2, SPACE_0F, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13204,9 +13236,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpneqps, 0xc2, 2, SPACE_0F, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13214,9 +13246,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpnltps, 0xc2, 2, SPACE_0F, 5,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13224,9 +13256,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpnltps, 0xc2, 2, SPACE_0F, 5,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13234,9 +13266,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpnleps, 0xc2, 2, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13244,9 +13276,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpnleps, 0xc2, 2, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13254,9 +13286,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpordps, 0xc2, 2, SPACE_0F, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13264,9 +13296,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpordps, 0xc2, 2, SPACE_0F, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13274,9 +13306,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpeqss, 0xc2, 2, SPACE_0F, 0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13284,9 +13316,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_cmpeqss, 0xc2, 2, SPACE_0F, 0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13294,9 +13326,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_cmpltss, 0xc2, 2, SPACE_0F, 1,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13304,9 +13336,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_cmpltss, 0xc2, 2, SPACE_0F, 1,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13314,9 +13346,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_cmpless, 0xc2, 2, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13324,9 +13356,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_cmpless, 0xc2, 2, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13334,9 +13366,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_cmpunordss, 0xc2, 2, SPACE_0F, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13344,9 +13376,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_cmpunordss, 0xc2, 2, SPACE_0F, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13354,9 +13386,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_cmpneqss, 0xc2, 2, SPACE_0F, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13364,9 +13396,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_cmpneqss, 0xc2, 2, SPACE_0F, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13374,9 +13406,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_cmpnltss, 0xc2, 2, SPACE_0F, 5,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13384,9 +13416,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_cmpnltss, 0xc2, 2, SPACE_0F, 5,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13394,9 +13426,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_cmpnless, 0xc2, 2, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13404,9 +13436,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_cmpnless, 0xc2, 2, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13414,9 +13446,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_cmpordss, 0xc2, 2, SPACE_0F, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13424,9 +13456,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_cmpordss, 0xc2, 2, SPACE_0F, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13434,9 +13466,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_cmpps, 0xc2, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13446,9 +13478,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpps, 0xc2, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13458,9 +13490,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpss, 0xc2, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13470,9 +13502,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, 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,
+ { { 8, 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,
+ { { 8, 0, 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_cmpss, 0xc2, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13482,9 +13514,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, 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,
+ { { 8, 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,
+ { { 8, 0, 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_comiss, 0x2f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13492,9 +13524,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, 1, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_comiss, 0x2f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13502,9 +13534,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_cvtpi2ps, 0x2a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13512,9 +13544,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 8, 0, 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_cvtps2pi, 0x2d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13522,9 +13554,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_cvtsi2ss, 0x2a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
@@ -13534,7 +13566,7 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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_cvtsi2ss, 0x2a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
@@ -13544,7 +13576,7 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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_cvtsi2ss, 0x2a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -13554,7 +13586,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 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,
+ { { 8, 0, 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_cvtsi2ss, 0x2a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -13564,7 +13596,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 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,
+ { { 8, 0, 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_cvtsi2ss, 0x2a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -13574,7 +13606,7 @@ static const insn_template i386_optab[] =
{ { 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, 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,
+ { { 8, 0, 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_cvtsi2ss, 0x2a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -13584,7 +13616,7 @@ static const insn_template i386_optab[] =
{ { 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, 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,
+ { { 8, 0, 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_cvtss2si, 0x2d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -13592,7 +13624,7 @@ static const insn_template i386_optab[] =
0, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -13602,7 +13634,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -13612,9 +13644,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_cvttss2si, 0x2c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -13622,7 +13654,7 @@ static const insn_template i386_optab[] =
0, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -13632,7 +13664,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -13658,9 +13690,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 16, 0, 0, 0, 1, 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,
+ { { { 7, 0, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_movaps, 0x28, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13668,9 +13700,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_movaps, 0x28, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13678,9 +13710,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_movhlps, 0x12, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13688,9 +13720,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, 1, 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,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_movhlps, 0x12, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13698,9 +13730,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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_movhps, 0x16, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13710,7 +13742,7 @@ static const insn_template i386_optab[] =
{ { 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, 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,
+ { { 8, 0, 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_movhps, 0x17, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13718,7 +13750,7 @@ static const insn_template i386_optab[] =
0, 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -13730,7 +13762,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_movlhps, 0x16, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13738,9 +13770,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, 1, 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,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_movlhps, 0x16, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13748,9 +13780,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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_movlps, 0x12, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13760,7 +13792,7 @@ static const insn_template i386_optab[] =
{ { 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, 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,
+ { { 8, 0, 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_movlps, 0x13, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13768,7 +13800,7 @@ static const insn_template i386_optab[] =
0, 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -13780,7 +13812,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_movmskps, 0x50, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -13788,7 +13820,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 0, 0 } } } },
@@ -13798,7 +13830,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 0, 0 } } } },
@@ -13808,7 +13840,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 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,
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,
1, 0, 0, 0, 1, 0 } } } },
@@ -13818,7 +13850,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
1, 0, 0, 0, 1, 0 } } } },
@@ -13828,7 +13860,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 16, 0, 0, 0, 1, 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,
+ { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -13838,7 +13870,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 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,
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,
1, 0, 0, 0, 1, 0 } } } },
@@ -13848,7 +13880,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
1, 0, 0, 0, 1, 0 } } } },
@@ -13860,7 +13892,7 @@ static const insn_template i386_optab[] =
{ { 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, 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,
+ { { 8, 0, 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_movss, 0x10, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13868,9 +13900,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, 1, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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_movss, 0x10, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13878,9 +13910,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_movups, 0x10, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13888,9 +13920,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_movups, 0x10, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -13898,9 +13930,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pavgb, 0xe0 | (3 * 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,
@@ -13908,9 +13940,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 16, 0, 0, 0, 1, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pavgb, 0xe0 | (3 * 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,
@@ -13918,19 +13950,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pavgb, 0xe0 | (3 * 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, 1, 1, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pavgb, 0xe0 | (3 * 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,
@@ -13938,9 +13970,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pavgw, 0xe0 | (3 * 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,
@@ -13948,9 +13980,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 16, 0, 0, 0, 1, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pavgw, 0xe0 | (3 * 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,
@@ -13958,19 +13990,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pavgw, 0xe0 | (3 * 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, 1, 1, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pavgw, 0xe0 | (3 * 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,
@@ -13978,9 +14010,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pextrw, 0xc5, 3, SPACE_0F, None,
{ 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -13990,7 +14022,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 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 } },
- { { 7, 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,
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,
0, 0, 0, 0, 0, 0 } } } },
@@ -14002,7 +14034,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -14014,7 +14046,7 @@ static const insn_template i386_optab[] =
{ { 16, 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, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -14026,7 +14058,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -14034,11 +14066,11 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
0, 0, 1, 0, 0, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 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,
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,
0, 0, 0, 0, 0, 0 } } } },
@@ -14046,11 +14078,11 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -14062,7 +14094,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -14070,11 +14102,11 @@ static const insn_template i386_optab[] =
{ 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, 1, 1, 0, 1, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 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,
1, 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 } } } },
@@ -14082,11 +14114,11 @@ static const insn_template i386_optab[] =
{ 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -14100,7 +14132,7 @@ 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, 1, 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,
+ { { 8, 0, 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_pinsrw, 0xc4, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -14112,7 +14144,7 @@ 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, 1, 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,
+ { { 8, 0, 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_pinsrw, 0xc4, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14124,7 +14156,7 @@ static const insn_template i386_optab[] =
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,
+ { { 8, 0, 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_pinsrw, 0xc4, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14136,7 +14168,7 @@ static const insn_template i386_optab[] =
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,
+ { { 8, 0, 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_pinsrw, 0xc4, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -14148,7 +14180,7 @@ 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, 1, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pinsrw, 0xc4, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14160,7 +14192,7 @@ static const insn_template i386_optab[] =
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 } },
- { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0 } } } },
{ MN_pmaxsw, 0xee, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14168,19 +14200,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaxsw, 0xee, 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, 1, 1, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaxsw, 0xee, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14188,9 +14220,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaxsw, 0xee, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14198,9 +14230,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 16, 0, 0, 0, 1, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pmaxub, 0xde, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14208,19 +14240,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaxub, 0xde, 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, 1, 1, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaxub, 0xde, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14228,9 +14260,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaxub, 0xde, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14238,9 +14270,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 16, 0, 0, 0, 1, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pminsw, 0xea, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14248,19 +14280,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pminsw, 0xea, 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, 1, 1, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pminsw, 0xea, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14268,9 +14300,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pminsw, 0xea, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14278,9 +14310,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 16, 0, 0, 0, 1, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pminub, 0xda, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14288,19 +14320,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pminub, 0xda, 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, 1, 1, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pminub, 0xda, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14308,9 +14340,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pminub, 0xda, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14318,9 +14350,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 16, 0, 0, 0, 1, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pmovmskb, 0xd7, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -14328,7 +14360,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 0, 0 } } } },
@@ -14338,7 +14370,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 0, 0 } } } },
@@ -14348,7 +14380,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 16, 0, 0, 0, 1, 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,
+ { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -14358,19 +14390,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmulhuw, 0xe4, 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, 1, 1, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmulhuw, 0xe4, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14378,9 +14410,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmulhuw, 0xe4, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14388,9 +14420,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 16, 0, 0, 0, 1, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_prefetchnta, 0x18, 1, SPACE_0F, 0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14430,9 +14462,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 16, 0, 0, 0, 1, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psadbw, 0xf6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14440,19 +14472,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psadbw, 0xf6, 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, 1, 1, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psadbw, 0xf6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14460,9 +14492,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pshufw, 0x70, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14472,9 +14504,9 @@ static const insn_template i386_optab[] =
{ { 16, 0, 0, 0, 1, 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,
+ { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_rcpps, 0x53, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14482,9 +14514,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_rcpps, 0x4c, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14492,9 +14524,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_rcpps, 0x53, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14502,9 +14534,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_rcpss, 0x53, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14512,9 +14544,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_rcpss, 0x4d, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14522,9 +14554,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_rcpss, 0x53, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14532,9 +14564,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_rsqrtps, 0x52, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14542,9 +14574,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_rsqrtps, 0x4e, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14552,9 +14584,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_rsqrtps, 0x52, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14562,9 +14594,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_rsqrtss, 0x52, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14572,9 +14604,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_rsqrtss, 0x4f, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14582,9 +14614,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_rsqrtss, 0x52, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14592,9 +14624,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_sfence, 0xaef8, 0, SPACE_0F, None,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14612,9 +14644,9 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0,
0, 0, 0, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_shufps, 0xc6, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14624,9 +14656,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_sqrtps, 0x51, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14634,9 +14666,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_sqrtps, 0x51, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14644,9 +14676,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_sqrtss, 0x51, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14654,9 +14686,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, 1, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_sqrtss, 0x51, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14664,9 +14696,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_stmxcsr, 0xae, 1, SPACE_0F, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14690,9 +14722,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, 1, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_ucomiss, 0x2e, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14700,9 +14732,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_unpckhps, 0x15, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14710,9 +14742,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_unpckhps, 0x15, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14720,9 +14752,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_unpcklps, 0x14, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14730,9 +14762,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_unpcklps, 0x14, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14740,9 +14772,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_addpd, 0x58, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14750,9 +14782,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_addpd, 0x58, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14760,9 +14792,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_addpd, 0x58, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14770,9 +14802,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_subpd, 0x5c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14780,9 +14812,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_subpd, 0x5c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14790,9 +14822,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_subpd, 0x5c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14800,9 +14832,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_mulpd, 0x59, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14810,9 +14842,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_mulpd, 0x59, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14820,9 +14852,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_mulpd, 0x59, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14830,9 +14862,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_divpd, 0x5e, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14840,9 +14872,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_divpd, 0x5e, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14850,9 +14882,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_divpd, 0x5e, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14860,9 +14892,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_minpd, 0x5d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14870,9 +14902,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_minpd, 0x5d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14880,9 +14912,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_minpd, 0x5d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14890,9 +14922,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_maxpd, 0x5f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14900,9 +14932,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_maxpd, 0x5f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14910,9 +14942,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_maxpd, 0x5f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14920,9 +14952,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_addsd, 0x58, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14930,9 +14962,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_addsd, 0x58, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14940,9 +14972,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_addsd, 0x58, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14950,9 +14982,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_subsd, 0x5c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14960,9 +14992,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_subsd, 0x5c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14970,9 +15002,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_subsd, 0x5c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14980,9 +15012,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_mulsd, 0x59, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -14990,9 +15022,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_mulsd, 0x59, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15000,9 +15032,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_mulsd, 0x59, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15010,9 +15042,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_divsd, 0x5e, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15020,9 +15052,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_divsd, 0x5e, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15030,9 +15062,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_divsd, 0x5e, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15040,9 +15072,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_minsd, 0x5d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15050,9 +15082,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_minsd, 0x5d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15060,9 +15092,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_minsd, 0x5d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15070,9 +15102,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_maxsd, 0x5f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15080,9 +15112,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_maxsd, 0x5f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15090,9 +15122,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_maxsd, 0x5f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15100,9 +15132,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_andpd, 0x54, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15110,19 +15142,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_andpd, 0x54, 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, 1, 2, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_andpd, 0x54, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15130,9 +15162,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_andnpd, 0x55, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15140,19 +15172,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_andnpd, 0x55, 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, 1, 2, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_andnpd, 0x55, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15160,9 +15192,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_orpd, 0x56, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15170,19 +15202,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_orpd, 0x56, 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, 1, 2, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_orpd, 0x56, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15190,9 +15222,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_xorpd, 0x57, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15200,19 +15232,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_xorpd, 0x57, 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, 1, 2, 1, 0, 1, 2, 0, 0, 1, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_xorpd, 0x57, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15220,9 +15252,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpeqpd, 0xc2, 2, SPACE_0F, 0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15230,9 +15262,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpeqpd, 0xc2, 2, SPACE_0F, 0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15240,9 +15272,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpltpd, 0xc2, 2, SPACE_0F, 1,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15250,9 +15282,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpltpd, 0xc2, 2, SPACE_0F, 1,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15260,9 +15292,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmplepd, 0xc2, 2, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15270,9 +15302,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmplepd, 0xc2, 2, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15280,9 +15312,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpunordpd, 0xc2, 2, SPACE_0F, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15290,9 +15322,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpunordpd, 0xc2, 2, SPACE_0F, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15300,9 +15332,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpneqpd, 0xc2, 2, SPACE_0F, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15310,9 +15342,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpneqpd, 0xc2, 2, SPACE_0F, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15320,9 +15352,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpnltpd, 0xc2, 2, SPACE_0F, 5,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15330,9 +15362,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpnltpd, 0xc2, 2, SPACE_0F, 5,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15340,9 +15372,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpnlepd, 0xc2, 2, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15350,9 +15382,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpnlepd, 0xc2, 2, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15360,9 +15392,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpordpd, 0xc2, 2, SPACE_0F, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15370,9 +15402,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpordpd, 0xc2, 2, SPACE_0F, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15380,9 +15412,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpeqsd, 0xc2, 2, SPACE_0F, 0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15390,9 +15422,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cmpeqsd, 0xc2, 2, SPACE_0F, 0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15400,9 +15432,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cmpltsd, 0xc2, 2, SPACE_0F, 1,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15410,9 +15442,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cmpltsd, 0xc2, 2, SPACE_0F, 1,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15420,9 +15452,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cmplesd, 0xc2, 2, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15430,9 +15462,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cmplesd, 0xc2, 2, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15440,9 +15472,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cmpunordsd, 0xc2, 2, SPACE_0F, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15450,9 +15482,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cmpunordsd, 0xc2, 2, SPACE_0F, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15460,9 +15492,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cmpneqsd, 0xc2, 2, SPACE_0F, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15470,9 +15502,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cmpneqsd, 0xc2, 2, SPACE_0F, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15480,9 +15512,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cmpnltsd, 0xc2, 2, SPACE_0F, 5,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15490,9 +15522,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cmpnltsd, 0xc2, 2, SPACE_0F, 5,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15500,9 +15532,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cmpnlesd, 0xc2, 2, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15510,9 +15542,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cmpnlesd, 0xc2, 2, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15520,9 +15552,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cmpordsd, 0xc2, 2, SPACE_0F, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15530,9 +15562,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cmpordsd, 0xc2, 2, SPACE_0F, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15540,9 +15572,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cmppd, 0xc2, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15552,9 +15584,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmppd, 0xc2, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15564,9 +15596,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cmpsd, 0xc2, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15576,9 +15608,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, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_cmpsd, 0xc2, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15588,9 +15620,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, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_comisd, 0x2f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15598,9 +15630,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_comisd, 0x2f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15608,9 +15640,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_comisd, 0x2f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15618,9 +15650,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cvtpi2pd, 0x2a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15628,9 +15660,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 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,
+ { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cvtpi2pd, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15640,7 +15672,7 @@ static const insn_template i386_optab[] =
{ { 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, 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,
+ { { 8, 0, 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_cvtpi2pd, 0x2a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15650,7 +15682,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_cvtsi2sd, 0x2a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
@@ -15660,7 +15692,7 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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_cvtsi2sd, 0x2a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
@@ -15670,7 +15702,7 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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_cvtsi2sd, 0x2a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -15680,7 +15712,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 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,
+ { { 8, 0, 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_cvtsi2sd, 0x2a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -15690,7 +15722,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 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,
+ { { 8, 0, 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_cvtsi2sd, 0x2a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -15700,7 +15732,7 @@ static const insn_template i386_optab[] =
{ { 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, 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,
+ { { 8, 0, 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_cvtsi2sd, 0x2a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -15710,7 +15742,7 @@ static const insn_template i386_optab[] =
{ { 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, 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,
+ { { 8, 0, 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_movapd, 0x28, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15718,9 +15750,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_movapd, 0x28, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15728,9 +15760,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_movapd, 0x28, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15738,9 +15770,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_movhpd, 0x16, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15750,7 +15782,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_movhpd, 0x16, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15760,7 +15792,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_movhpd, 0x17, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15768,7 +15800,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -15778,7 +15810,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -15790,7 +15822,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_movlpd, 0x12, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15800,7 +15832,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_movlpd, 0x12, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15810,7 +15842,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_movlpd, 0x13, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15818,7 +15850,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -15828,7 +15860,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -15840,7 +15872,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_movmskpd, 0x50, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -15848,7 +15880,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 0, 0 } } } },
@@ -15858,7 +15890,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 0, 0 } } } },
@@ -15868,7 +15900,7 @@ 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 } },
- { { { 7, 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,
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,
1, 0, 0, 0, 1, 0 } } } },
@@ -15878,7 +15910,7 @@ 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 } },
- { { { 7, 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,
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,
1, 0, 0, 0, 1, 0 } } } },
@@ -15888,7 +15920,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
1, 0, 0, 0, 1, 0 } } } },
@@ -15900,7 +15932,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_movsd, 0x10, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15910,7 +15942,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_movsd, 0x10, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15918,9 +15950,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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_movsd, 0x10, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15928,9 +15960,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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_movsd, 0x10, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15938,9 +15970,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_movupd, 0x10, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15948,9 +15980,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_movupd, 0x10, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15958,9 +15990,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_movupd, 0x10, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15968,9 +16000,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_shufpd, 0xc6, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15980,9 +16012,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_shufpd, 0xc6, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -15992,9 +16024,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_shufpd, 0xc6, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16004,9 +16036,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_sqrtpd, 0x51, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16014,9 +16046,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_sqrtpd, 0x51, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16024,9 +16056,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_sqrtpd, 0x51, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16034,9 +16066,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_sqrtsd, 0x51, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16044,9 +16076,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_sqrtsd, 0x51, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16054,9 +16086,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_sqrtsd, 0x51, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16064,9 +16096,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_ucomisd, 0x2e, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16074,9 +16106,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_ucomisd, 0x2e, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16084,9 +16116,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_ucomisd, 0x2e, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16094,9 +16126,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_unpckhpd, 0x15, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16104,9 +16136,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_unpckhpd, 0x15, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16114,9 +16146,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_unpckhpd, 0x15, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16124,9 +16156,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_unpcklpd, 0x14, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16134,9 +16166,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_unpcklpd, 0x14, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16144,9 +16176,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_unpcklpd, 0x14, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16154,9 +16186,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cvtdq2pd, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16164,9 +16196,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, 1, 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,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cvtdq2pd, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16174,9 +16206,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cvtpd2dq, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16184,9 +16216,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cvtpd2dq, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16194,9 +16226,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cvtpd2dq, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16204,9 +16236,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cvtdq2ps, 0x5b, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16214,9 +16246,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cvtdq2ps, 0x5b, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16224,9 +16256,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cvtpd2pi, 0x2d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16234,9 +16266,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_cvtpd2ps, 0x5a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16244,9 +16276,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cvtpd2ps, 0x5a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16254,9 +16286,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cvtpd2ps, 0x5a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16264,9 +16296,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cvtps2pd, 0x5a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16274,9 +16306,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, 1, 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,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cvtps2pd, 0x5a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16284,9 +16316,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cvtps2dq, 0x5b, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16294,9 +16326,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cvtps2dq, 0x5b, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16304,9 +16336,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cvtsd2si, 0x2d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -16314,7 +16346,7 @@ static const insn_template i386_optab[] =
0, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -16324,7 +16356,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -16334,9 +16366,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cvtsd2ss, 0x5a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16344,9 +16376,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cvtsd2ss, 0x5a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16354,9 +16386,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_cvtss2sd, 0x5a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16364,9 +16396,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, 1, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_cvtss2sd, 0x5a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16374,9 +16406,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_cvttpd2pi, 0x2c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16384,9 +16416,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_cvttsd2si, 0x2c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -16394,7 +16426,7 @@ static const insn_template i386_optab[] =
0, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -16404,7 +16436,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -16414,9 +16446,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cvttpd2dq, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16424,9 +16456,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cvttpd2dq, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16434,9 +16466,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cvttps2dq, 0x5b, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16444,9 +16476,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_cvttps2dq, 0x5b, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16454,9 +16486,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_maskmovdqu, 0xf7, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16464,9 +16496,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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_maskmovdqu, 0xf7, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16474,9 +16506,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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_movdqa, 0x6f, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16484,9 +16516,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_movdqa, 0x6f, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16494,9 +16526,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_movdqu, 0x6f, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16504,9 +16536,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_movdqu, 0x6f, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16514,9 +16546,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_movdq2q, 0xd6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16524,9 +16556,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_movq2dq, 0xd6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16534,9 +16566,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 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,
+ { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmuludq, 0xf4, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16544,9 +16576,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmuludq, 0xf4, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16554,9 +16586,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmuludq, 0xf4, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16564,9 +16596,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmuludq, 0xf4, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16574,9 +16606,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pshufd, 0x70, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16586,9 +16618,9 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0,
0, 0, 0, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pshufd, 0x70, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16598,9 +16630,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pshufhw, 0x70, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16610,21 +16642,21 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pshufhw, 0x70, 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, 0, 0, 1, 2, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pshufhw, 0x70, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16634,9 +16666,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pshuflw, 0x70, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16646,21 +16678,21 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pshuflw, 0x70, 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, 0, 0, 1, 3, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pshuflw, 0x70, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16670,9 +16702,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pslldq, 0x73, 2, SPACE_0F, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16682,17 +16714,17 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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_pslldq, 0x73, 2, SPACE_0F, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pslldq, 0x73, 2, SPACE_0F, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16702,7 +16734,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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_psrldq, 0x73, 2, SPACE_0F, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16712,17 +16744,17 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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_psrldq, 0x73, 2, SPACE_0F, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psrldq, 0x73, 2, SPACE_0F, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16732,7 +16764,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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_punpckhqdq, 0x6d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16740,9 +16772,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpckhqdq, 0x6d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16750,9 +16782,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpckhqdq, 0x6d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16760,9 +16792,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpcklqdq, 0x6c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16770,9 +16802,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpcklqdq, 0x6c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16780,9 +16812,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_punpcklqdq, 0x6c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16790,9 +16822,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_addsubpd, 0xd0, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16800,9 +16832,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_addsubpd, 0xd0, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16810,9 +16842,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_addsubps, 0xd0, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16820,9 +16852,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_addsubps, 0xd0, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16830,9 +16862,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_haddpd, 0x7c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16840,9 +16872,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_haddpd, 0x7c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16850,9 +16882,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_haddps, 0x7c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16860,9 +16892,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_haddps, 0x7c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16870,9 +16902,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_hsubpd, 0x7d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16880,9 +16912,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_hsubpd, 0x7d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16890,9 +16922,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_hsubps, 0x7d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16900,9 +16932,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_hsubps, 0x7d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16910,9 +16942,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_lddqu, 0xf0, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16922,7 +16954,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_lddqu, 0x6f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16932,7 +16964,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_lddqu, 0xf0, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16942,7 +16974,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_movddup, 0x12, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16950,9 +16982,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_movddup, 0x12, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16960,9 +16992,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_movddup, 0x12, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16970,9 +17002,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_movshdup, 0x16, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16980,9 +17012,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_movshdup, 0x16, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -16990,9 +17022,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_movsldup, 0x12, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -17000,9 +17032,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, 1, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_movsldup, 0x12, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -17010,9 +17042,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_fisttp, 0xdf, 1, SPACE_BASE, 1,
{ 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0,
@@ -17042,7 +17074,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 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 },
- { { 52, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 53, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 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,
1, 0, 0, 0, 1, 0 } } } },
@@ -17050,7 +17082,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -17058,7 +17090,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 7, 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 },
- { { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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 } },
@@ -17070,7 +17102,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 7, 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 },
- { { 31, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -17082,7 +17114,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -17090,7 +17122,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 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 },
- { { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -17100,7 +17132,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -17108,7 +17140,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -17116,7 +17148,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -17124,7 +17156,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -17132,7 +17164,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -17140,7 +17172,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -17148,7 +17180,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 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, 0,
0, 0 },
- { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+ { { 26, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0 } },
@@ -17158,7 +17190,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 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 },
- { { 25, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 26, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -17168,7 +17200,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 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, 0,
0, 0 },
- { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+ { { 26, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 1, 0 } },
@@ -17178,7 +17210,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 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 },
- { { 25, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 26, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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,
0, 0, 0, 0, 1, 0 } },
@@ -17188,7 +17220,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -17196,7 +17228,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -17204,7 +17236,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -17212,7 +17244,7 @@ static const insn_template i386_optab[] =
{ 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, 1,
0, 0 },
- { { 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -17220,7 +17252,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 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, 1,
0, 0 },
- { { 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+ { { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
{ { 0, 0, 0, 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 } },
@@ -17230,7 +17262,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 54, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 55, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 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,
1, 0, 0, 0, 1, 0 } },
@@ -17240,7 +17272,7 @@ static const insn_template i386_optab[] =
{ 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, 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 54, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 55, 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, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
@@ -17250,7 +17282,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 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, 1,
0, 0 },
- { { 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+ { { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
{ { 0, 0, 0, 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 } },
@@ -17260,7 +17292,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 54, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 55, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 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,
1, 0, 0, 0, 1, 0 } },
@@ -17270,7 +17302,7 @@ static const insn_template i386_optab[] =
{ 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, 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 54, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 55, 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, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
@@ -17280,7 +17312,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 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, 1,
0, 0 },
- { { 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+ { { 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
{ { 0, 0, 0, 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 } },
@@ -17290,7 +17322,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 61, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 62, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 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,
1, 0, 0, 0, 1, 0 } },
@@ -17300,7 +17332,7 @@ static const insn_template i386_optab[] =
{ 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, 3, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 61, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 62, 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, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
@@ -17312,29 +17344,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_phaddw, 0x01, 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, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_phaddw, 0x01, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_phaddd, 0x02, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -17342,29 +17374,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_phaddd, 0x02, 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, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_phaddd, 0x02, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_phaddsw, 0x03, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -17372,29 +17404,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_phaddsw, 0x03, 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, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_phaddsw, 0x03, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_phsubw, 0x05, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -17402,29 +17434,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_phsubw, 0x05, 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, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_phsubw, 0x05, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_phsubd, 0x06, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -17432,29 +17464,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_phsubd, 0x06, 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, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_phsubd, 0x06, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_phsubsw, 0x07, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -17462,29 +17494,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_phsubsw, 0x07, 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, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_phsubsw, 0x07, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pmaddubsw, 0x04, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -17492,39 +17524,39 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaddubsw, 0x04, 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaddubsw, 0x04, 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, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaddubsw, 0x04, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pmulhrsw, 0x0b, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -17532,39 +17564,39 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmulhrsw, 0x0b, 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmulhrsw, 0x0b, 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, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmulhrsw, 0x0b, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pshufb, 0x00, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -17572,39 +17604,39 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pshufb, 0x00, 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pshufb, 0x00, 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, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pshufb, 0x00, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psignb, 0x08 | 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,
@@ -17612,29 +17644,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psignb, 0x08 | 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psignb, 0x08 | 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psignw, 0x08 | 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,
@@ -17642,29 +17674,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psignw, 0x08 | 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psignw, 0x08 | 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_psignd, 0x0a, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -17672,29 +17704,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psignd, 0x0a, 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, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_psignd, 0x0a, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_palignr, 0x0f, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -17704,45 +17736,45 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_palignr, 0x0f, 3, 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, 0, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_palignr, 0x0f, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_palignr, 0x0f, 3, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pabsb, 0x1c | 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,
@@ -17750,39 +17782,39 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pabsb, 0x1c | 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, 0, 0, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pabsb, 0x1c | 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pabsb, 0x1c | 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pabsw, 0x1c | 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,
@@ -17790,39 +17822,39 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pabsw, 0x1c | 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, 0, 0, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pabsw, 0x1c | 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pabsw, 0x1c | 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pabsd, 0x1e, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -17830,29 +17862,29 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pabsd, 0x1e, 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, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pabsd, 0x1e, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 28, 0, 0, 0, 0, 0, 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,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_blendps, 0x0c | 0, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -17862,21 +17894,21 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_blendps, 0x0c | 0, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_blendpd, 0x0c | 1, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -17886,21 +17918,21 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_blendpd, 0x0c | 1, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_blendvps, 0x4a | 0, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -17910,9 +17942,9 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_blendvps, 0x4a | 0, 2, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 4, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -17920,31 +17952,31 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_blendvps, 0x14 | 0, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_blendvps, 0x14 | 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_blendvpd, 0x4a | 1, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -17954,9 +17986,9 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_blendvpd, 0x4a | 1, 2, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 4, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -17964,31 +17996,31 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_blendvpd, 0x14 | 1, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_blendvpd, 0x14 | 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_dpps, 0x40 | 0, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -17998,21 +18030,21 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_dpps, 0x40 | 0, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_dppd, 0x40 | 1, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18022,21 +18054,21 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_dppd, 0x40 | 1, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_extractps, 0x17, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18046,7 +18078,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 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, 0,
0, 0, 0, 0, 0, 0 } },
- { { 7, 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,
1, 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 } } } },
@@ -18058,7 +18090,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 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, 0,
0, 0, 0, 0, 0, 0 } },
- { { 7, 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,
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,
0, 0, 0, 0, 0, 0 } } } },
@@ -18066,11 +18098,11 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 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, 1, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -18078,11 +18110,11 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -18094,21 +18126,21 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 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 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 8, 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,
+ { { 8, 0, 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_insertps, 0x21, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 0, 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_movntdqa, 0x2a, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18118,17 +18150,17 @@ static const insn_template i386_optab[] =
{ { 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, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_movntdqa, 0x2a, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_mpsadbw, 0x42, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18138,21 +18170,21 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_mpsadbw, 0x42, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_packusdw, 0x2b, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18160,29 +18192,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_packusdw, 0x2b, 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_packusdw, 0x2b, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pblendvb, 0x4c, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18192,9 +18224,9 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pblendvb, 0x4c, 2, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 4, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18202,31 +18234,31 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pblendvb, 0x10, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pblendvb, 0x10, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pblendw, 0x0e, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18236,21 +18268,21 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pblendw, 0x0e, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
@@ -18258,19 +18290,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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, 1, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pextrb, 0x14 | 0, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
@@ -18280,7 +18312,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -18288,11 +18320,11 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
0, 0, 1, 0, 0, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 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,
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,
0, 0, 0, 0, 0, 0 } } } },
@@ -18300,11 +18332,11 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -18316,7 +18348,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -18324,11 +18356,11 @@ static const insn_template i386_optab[] =
{ 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, 1, 1, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 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,
1, 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,
0, 0, 0, 0, 1, 0 } } } },
@@ -18336,11 +18368,11 @@ static const insn_template i386_optab[] =
{ 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -18352,7 +18384,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -18360,11 +18392,11 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 0, 1, 2, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 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,
1, 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 } } } },
@@ -18372,11 +18404,11 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 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, 1, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -18388,7 +18420,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -18396,11 +18428,11 @@ static const insn_template i386_optab[] =
{ 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, 2, 1, 0, 1, 2, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 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, 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,
+ { { 8, 0, 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, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -18408,11 +18440,11 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 3, 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, 1, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -18422,19 +18454,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_phminposuw, 0x41, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pinsrb, 0x20, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18446,31 +18478,31 @@ 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, 1, 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,
+ { { 8, 0, 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_pinsrb, 0x20, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 1, 0, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
{ { 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 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pinsrb, 0x20, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pinsrb, 0x20, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18482,31 +18514,31 @@ static const insn_template i386_optab[] =
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,
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,
+ { { 8, 0, 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_pinsrb, 0x20, 3, 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, 0, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 1, 1, 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,
+ { { 8, 0, 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_pinsrb, 0x20, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
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,
+ { { 8, 0, 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_pinsrd, 0x22, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18518,31 +18550,31 @@ static const insn_template i386_optab[] =
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,
+ { { 8, 0, 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_pinsrd, 0x22, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
{ { 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,
+ { { 8, 0, 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_pinsrd, 0x22, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 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_pinsrq, 0x22, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18554,31 +18586,31 @@ static const insn_template i386_optab[] =
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,
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,
+ { { 8, 0, 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_pinsrq, 0x22, 3, 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, 0, 1, 2, 1, 0, 1, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 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,
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,
+ { { 8, 0, 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_pinsrq, 0x22, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 3, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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,
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,
+ { { 8, 0, 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_pmaxsb, 0x3c, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18586,29 +18618,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaxsb, 0x3c, 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaxsb, 0x3c, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaxsd, 0x3d, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18616,19 +18648,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaxsd, 0x3d, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaxud, 0x3f, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18636,19 +18668,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaxud, 0x3f, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaxuw, 0x3e, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18656,29 +18688,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaxuw, 0x3e, 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmaxuw, 0x3e, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pminsb, 0x38, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18686,29 +18718,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pminsb, 0x38, 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pminsb, 0x38, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pminsd, 0x39, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18716,19 +18748,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pminsd, 0x39, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pminud, 0x3b, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18736,19 +18768,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pminud, 0x3b, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pminuw, 0x3a, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18756,29 +18788,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pminuw, 0x3a, 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, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pminuw, 0x3a, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmovsxbw, 0x20, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18786,29 +18818,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_pmovsxbw, 0x20, 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, 1, 1, 0, 1, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_pmovsxbw, 0x20, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_pmovzxbw, 0x30, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18816,29 +18848,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_pmovzxbw, 0x30, 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, 1, 1, 0, 1, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_pmovzxbw, 0x30, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_pmovsxbd, 0x21, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18846,19 +18878,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_pmovsxbd, 0x21, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_pmovzxbd, 0x31, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18866,19 +18898,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_pmovzxbd, 0x31, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_pmovsxbq, 0x22, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18886,19 +18918,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_pmovsxbq, 0x22, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_pmovzxbq, 0x32, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18906,19 +18938,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_pmovzxbq, 0x32, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_pmovsxwd, 0x23, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18926,19 +18958,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_pmovsxwd, 0x23, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_pmovzxwd, 0x33, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18946,19 +18978,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_pmovzxwd, 0x33, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_pmovsxwq, 0x24, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18966,19 +18998,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_pmovsxwq, 0x24, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_pmovzxwq, 0x34, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -18986,19 +19018,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_pmovzxwq, 0x34, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_pmovsxdq, 0x25, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19006,19 +19038,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_pmovsxdq, 0x25, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_pmovzxdq, 0x35, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19026,19 +19058,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_pmovzxdq, 0x35, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_pmuldq, 0x28, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19046,9 +19078,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmuldq, 0x28, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19056,19 +19088,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmuldq, 0x28, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmulld, 0x40, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19076,19 +19108,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pmulld, 0x40, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_ptest, 0x17, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19096,19 +19128,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_ptest, 0x17, 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, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_roundpd, 0x09, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19118,9 +19150,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_roundpd, 0x09, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19130,21 +19162,21 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_roundpd, 0x09, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_roundps, 0x08, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19154,21 +19186,21 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 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 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_roundps, 0x08, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_roundsd, 0x0b, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19178,9 +19210,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, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_roundsd, 0x0b, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19190,21 +19222,21 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_roundsd, 0x0b, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_roundss, 0x0a, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19214,21 +19246,21 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 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 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 8, 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,
+ { { 8, 0, 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_roundss, 0x0a, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 0, 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,
@@ -19236,19 +19268,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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, 1, 0, 0, 0, 1,
0, 0 },
- { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpestri, 0x61, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19258,21 +19290,21 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpestri, 0x61, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+ { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpestri, 0x61, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19282,21 +19314,21 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpestri, 0x61, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 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, 1, 0, 1,
0, 0 },
- { { 33, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 34, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpestrm, 0x60, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19306,21 +19338,21 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpestrm, 0x60, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+ { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpestrm, 0x60, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -19330,21 +19362,21 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpestrm, 0x60, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 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, 1, 0, 1,
0, 0 },
- { { 33, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 34, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpistri, 0x63, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19354,21 +19386,21 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpistri, 0x63, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpistrm, 0x62, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19378,27 +19410,27 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pcmpistrm, 0x62, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_crc32, 0xf0, 2, SPACE_0F38, None,
{ 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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 } },
@@ -19408,7 +19440,7 @@ static const insn_template i386_optab[] =
{ 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 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, 1,
0, 0 },
- { { 33, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 34, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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, 1, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0 } },
@@ -19438,7 +19470,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 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, 1, 0, 1,
0, 0 },
- { { 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -19446,7 +19478,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 3, 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, 1,
0, 0 },
- { { 41, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 42, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 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, 1, 0 } } } },
@@ -19454,7 +19486,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 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, 1, 0, 1,
0, 0 },
- { { 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -19462,7 +19494,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 3, 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, 1,
0, 0 },
- { { 41, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 42, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 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, 1, 0 } } } },
@@ -19470,7 +19502,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -19478,7 +19510,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -19486,7 +19518,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 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, 1, 0, 1,
0, 0 },
- { { 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -19494,7 +19526,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 3, 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, 1,
0, 0 },
- { { 42, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 43, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 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, 1, 0 } } } },
@@ -19502,297 +19534,297 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 44, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_aesdec, 0xde, 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, 1,
0, 0 },
- { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_aesdeclast, 0xdf, 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, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 44, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_aesdeclast, 0xdf, 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, 1,
0, 0 },
- { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_aesenc, 0xdc, 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, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 44, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_aesenc, 0xdc, 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, 1,
0, 0 },
- { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_aesenclast, 0xdd, 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, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 44, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_aesenclast, 0xdd, 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, 1,
0, 0 },
- { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_aesimc, 0xdb, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 43, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 44, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_aesimc, 0xdb, 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, 1,
0, 0 },
- { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_aeskeygenassist, 0xdf, 3, 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, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 43, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 44, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_aeskeygenassist, 0xdf, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pclmulqdq, 0x44, 3, 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, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 45, 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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pclmulqdq, 0x44, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pclmullqlqdq, 0x44, 2, SPACE_0F3A, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 45, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pclmullqlqdq, 0x44, 2, SPACE_0F3A, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pclmulhqlqdq, 0x44, 2, SPACE_0F3A, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 45, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pclmulhqlqdq, 0x44, 2, SPACE_0F3A, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pclmullqhqdq, 0x44, 2, SPACE_0F3A, 0x10,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 45, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pclmullqhqdq, 0x44, 2, SPACE_0F3A, 0x10,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pclmulhqhqdq, 0x44, 2, SPACE_0F3A, 0x11,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 45, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_pclmulhqhqdq, 0x44, 2, SPACE_0F3A, 0x11,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_gf2p8affineqb, 0xce, 3, 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, 2, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 122, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_gf2p8affineqb, 0xce, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_gf2p8affineinvqb, 0xcf, 3, 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, 2, 1, 0, 1, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 122, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_gf2p8affineinvqb, 0xcf, 3, 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, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_gf2p8mulb, 0xcf, 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, 2, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 122, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_gf2p8mulb, 0xcf, 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, 1,
0, 0 },
- { { 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vaddps, 0x58, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19800,11 +19832,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vaddps, 0x58, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19812,11 +19844,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vaddpd, 0x58, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19824,11 +19856,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vaddpd, 0x58, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19836,11 +19868,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vsubps, 0x5c, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19848,11 +19880,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vsubps, 0x5c, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19860,11 +19892,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vsubpd, 0x5c, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19872,11 +19904,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vsubpd, 0x5c, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19884,11 +19916,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vmulps, 0x59, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19896,11 +19928,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vmulps, 0x59, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19908,11 +19940,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vmulpd, 0x59, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19920,11 +19952,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vmulpd, 0x59, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19932,11 +19964,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vdivps, 0x5e, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19944,11 +19976,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vdivps, 0x5e, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19956,11 +19988,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vdivpd, 0x5e, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19968,11 +20000,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vdivpd, 0x5e, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19980,11 +20012,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vminps, 0x5d, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -19992,11 +20024,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vminps, 0x5d, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20004,11 +20036,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vminpd, 0x5d, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20016,11 +20048,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vminpd, 0x5d, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20028,11 +20060,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vmaxps, 0x5f, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20040,11 +20072,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vmaxps, 0x5f, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20052,11 +20084,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vmaxpd, 0x5f, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20064,11 +20096,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vmaxpd, 0x5f, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20076,11 +20108,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vaddss, 0x58, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20088,11 +20120,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vaddss, 0x58, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20100,11 +20132,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vaddsd, 0x58, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20112,11 +20144,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vaddsd, 0x58, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20124,11 +20156,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vsubss, 0x5c, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20136,11 +20168,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vsubss, 0x5c, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20148,11 +20180,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vsubsd, 0x5c, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20160,11 +20192,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vsubsd, 0x5c, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20172,11 +20204,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmulss, 0x59, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20184,11 +20216,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmulss, 0x59, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20196,11 +20228,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmulsd, 0x59, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20208,11 +20240,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmulsd, 0x59, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20220,11 +20252,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vdivss, 0x5e, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20232,11 +20264,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vdivss, 0x5e, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20244,11 +20276,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vdivsd, 0x5e, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20256,11 +20288,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vdivsd, 0x5e, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20268,11 +20300,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vminss, 0x5d, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20280,11 +20312,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vminss, 0x5d, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20292,11 +20324,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vminsd, 0x5d, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20304,11 +20336,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vminsd, 0x5d, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20316,11 +20348,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmaxss, 0x5f, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20328,11 +20360,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmaxss, 0x5f, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20340,11 +20372,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmaxsd, 0x5f, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20352,11 +20384,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmaxsd, 0x5f, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20364,11 +20396,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vaddsubpd, 0xd0, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20376,11 +20408,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vaddsubps, 0xd0, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20388,11 +20420,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vandps, 0x54, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20400,23 +20432,23 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vandps, 0x54, 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, 0, 1, 1, 0, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vandpd, 0x54, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20424,23 +20456,23 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vandpd, 0x54, 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, 0, 1, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vandnps, 0x55, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20448,23 +20480,23 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vandnps, 0x55, 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, 0, 1, 1, 0, 0, 0, 5, 1, 3, 0, 0, 7, 1, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vandnpd, 0x55, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20472,23 +20504,23 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vandnpd, 0x55, 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, 0, 1, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 1, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vorps, 0x56, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20496,23 +20528,23 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vorps, 0x56, 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, 0, 1, 1, 0, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vorpd, 0x56, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20520,23 +20552,23 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vorpd, 0x56, 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, 0, 1, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vxorps, 0x57, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20544,23 +20576,23 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vxorps, 0x57, 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, 0, 1, 1, 0, 0, 0, 5, 1, 3, 0, 0, 7, 1, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vxorpd, 0x57, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20568,23 +20600,23 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vxorpd, 0x57, 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, 0, 1, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 1, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vblendps, 0x0c | 0, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20594,11 +20626,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vblendpd, 0x0c | 1, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20608,11 +20640,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vblendvps, 0x4a | 0, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20620,13 +20652,13 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vblendvpd, 0x4a | 1, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20634,13 +20666,13 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vbroadcastf128, 0x1a, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20650,7 +20682,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vbroadcastsd, 0x19, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20660,17 +20692,17 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vbroadcastsd, 0x19, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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_vbroadcastsd, 0x19, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20678,9 +20710,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 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 } } } },
{ MN_vbroadcastss, 0x18, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20690,17 +20722,17 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 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_vbroadcastss, 0x18, 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, 5, 1, 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 } },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vcmpeqps, 0xc2, 3, SPACE_0F, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20708,11 +20740,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpeqps, 0xc2, 3, SPACE_0F, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20720,11 +20752,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpeqpd, 0xc2, 3, SPACE_0F, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20732,11 +20764,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpeqpd, 0xc2, 3, SPACE_0F, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20744,11 +20776,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpeq_oqps, 0xc2, 3, SPACE_0F, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20756,11 +20788,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpeq_oqps, 0xc2, 3, SPACE_0F, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20768,11 +20800,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpeq_oqpd, 0xc2, 3, SPACE_0F, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20780,11 +20812,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpeq_oqpd, 0xc2, 3, SPACE_0F, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20792,11 +20824,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpltps, 0xc2, 3, SPACE_0F, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20804,11 +20836,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpltps, 0xc2, 3, SPACE_0F, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20816,11 +20848,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpltpd, 0xc2, 3, SPACE_0F, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20828,11 +20860,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpltpd, 0xc2, 3, SPACE_0F, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20840,11 +20872,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmplt_osps, 0xc2, 3, SPACE_0F, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20852,11 +20884,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmplt_osps, 0xc2, 3, SPACE_0F, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20864,11 +20896,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmplt_ospd, 0xc2, 3, SPACE_0F, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20876,11 +20908,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmplt_ospd, 0xc2, 3, SPACE_0F, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20888,11 +20920,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpleps, 0xc2, 3, SPACE_0F, 0x02,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20900,11 +20932,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpleps, 0xc2, 3, SPACE_0F, 0x02,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20912,11 +20944,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmplepd, 0xc2, 3, SPACE_0F, 0x02,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20924,11 +20956,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmplepd, 0xc2, 3, SPACE_0F, 0x02,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20936,11 +20968,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmple_osps, 0xc2, 3, SPACE_0F, 0x02,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20948,11 +20980,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmple_osps, 0xc2, 3, SPACE_0F, 0x02,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20960,11 +20992,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmple_ospd, 0xc2, 3, SPACE_0F, 0x02,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20972,11 +21004,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmple_ospd, 0xc2, 3, SPACE_0F, 0x02,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20984,11 +21016,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpunordps, 0xc2, 3, SPACE_0F, 0x03,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -20996,11 +21028,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpunordps, 0xc2, 3, SPACE_0F, 0x03,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21008,11 +21040,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpunordpd, 0xc2, 3, SPACE_0F, 0x03,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21020,11 +21052,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpunordpd, 0xc2, 3, SPACE_0F, 0x03,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21032,11 +21064,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpunord_qps, 0xc2, 3, SPACE_0F, 0x03,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21044,11 +21076,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpunord_qps, 0xc2, 3, SPACE_0F, 0x03,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21056,11 +21088,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpunord_qpd, 0xc2, 3, SPACE_0F, 0x03,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21068,11 +21100,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpunord_qpd, 0xc2, 3, SPACE_0F, 0x03,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21080,11 +21112,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpneqps, 0xc2, 3, SPACE_0F, 0x04,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21092,11 +21124,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpneqps, 0xc2, 3, SPACE_0F, 0x04,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21104,11 +21136,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpneqpd, 0xc2, 3, SPACE_0F, 0x04,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21116,11 +21148,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpneqpd, 0xc2, 3, SPACE_0F, 0x04,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21128,11 +21160,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpneq_uqps, 0xc2, 3, SPACE_0F, 0x04,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21140,11 +21172,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpneq_uqps, 0xc2, 3, SPACE_0F, 0x04,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21152,11 +21184,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpneq_uqpd, 0xc2, 3, SPACE_0F, 0x04,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21164,11 +21196,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpneq_uqpd, 0xc2, 3, SPACE_0F, 0x04,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21176,11 +21208,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnltps, 0xc2, 3, SPACE_0F, 0x05,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21188,11 +21220,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpnltps, 0xc2, 3, SPACE_0F, 0x05,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21200,11 +21232,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnltpd, 0xc2, 3, SPACE_0F, 0x05,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21212,11 +21244,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpnltpd, 0xc2, 3, SPACE_0F, 0x05,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21224,11 +21256,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnlt_usps, 0xc2, 3, SPACE_0F, 0x05,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21236,11 +21268,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpnlt_usps, 0xc2, 3, SPACE_0F, 0x05,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21248,11 +21280,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnlt_uspd, 0xc2, 3, SPACE_0F, 0x05,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21260,11 +21292,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpnlt_uspd, 0xc2, 3, SPACE_0F, 0x05,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21272,11 +21304,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnleps, 0xc2, 3, SPACE_0F, 0x06,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21284,11 +21316,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpnleps, 0xc2, 3, SPACE_0F, 0x06,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21296,11 +21328,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnlepd, 0xc2, 3, SPACE_0F, 0x06,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21308,11 +21340,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpnlepd, 0xc2, 3, SPACE_0F, 0x06,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21320,11 +21352,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnle_usps, 0xc2, 3, SPACE_0F, 0x06,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21332,11 +21364,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpnle_usps, 0xc2, 3, SPACE_0F, 0x06,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21344,11 +21376,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnle_uspd, 0xc2, 3, SPACE_0F, 0x06,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21356,11 +21388,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpnle_uspd, 0xc2, 3, SPACE_0F, 0x06,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21368,11 +21400,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpordps, 0xc2, 3, SPACE_0F, 0x07,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21380,11 +21412,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpordps, 0xc2, 3, SPACE_0F, 0x07,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21392,11 +21424,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpordpd, 0xc2, 3, SPACE_0F, 0x07,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21404,11 +21436,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpordpd, 0xc2, 3, SPACE_0F, 0x07,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21416,11 +21448,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpord_qps, 0xc2, 3, SPACE_0F, 0x07,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21428,11 +21460,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpord_qps, 0xc2, 3, SPACE_0F, 0x07,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21440,11 +21472,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpord_qpd, 0xc2, 3, SPACE_0F, 0x07,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21452,11 +21484,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpord_qpd, 0xc2, 3, SPACE_0F, 0x07,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21464,11 +21496,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpeq_uqps, 0xc2, 3, SPACE_0F, 0x08,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21476,11 +21508,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpeq_uqps, 0xc2, 3, SPACE_0F, 0x08,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21488,11 +21520,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpeq_uqpd, 0xc2, 3, SPACE_0F, 0x08,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21500,11 +21532,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpeq_uqpd, 0xc2, 3, SPACE_0F, 0x08,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21512,11 +21544,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpngeps, 0xc2, 3, SPACE_0F, 0x09,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21524,11 +21556,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpngeps, 0xc2, 3, SPACE_0F, 0x09,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21536,11 +21568,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpngepd, 0xc2, 3, SPACE_0F, 0x09,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21548,11 +21580,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpngepd, 0xc2, 3, SPACE_0F, 0x09,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21560,11 +21592,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnge_usps, 0xc2, 3, SPACE_0F, 0x09,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21572,11 +21604,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpnge_usps, 0xc2, 3, SPACE_0F, 0x09,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21584,11 +21616,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnge_uspd, 0xc2, 3, SPACE_0F, 0x09,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21596,11 +21628,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpnge_uspd, 0xc2, 3, SPACE_0F, 0x09,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21608,11 +21640,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpngtps, 0xc2, 3, SPACE_0F, 0x0a,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21620,11 +21652,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpngtps, 0xc2, 3, SPACE_0F, 0x0a,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21632,11 +21664,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpngtpd, 0xc2, 3, SPACE_0F, 0x0a,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21644,11 +21676,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpngtpd, 0xc2, 3, SPACE_0F, 0x0a,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21656,11 +21688,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpngt_usps, 0xc2, 3, SPACE_0F, 0x0a,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21668,11 +21700,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpngt_usps, 0xc2, 3, SPACE_0F, 0x0a,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21680,11 +21712,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpngt_uspd, 0xc2, 3, SPACE_0F, 0x0a,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21692,11 +21724,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpngt_uspd, 0xc2, 3, SPACE_0F, 0x0a,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21704,11 +21736,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpfalseps, 0xc2, 3, SPACE_0F, 0x0b,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21716,11 +21748,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpfalseps, 0xc2, 3, SPACE_0F, 0x0b,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21728,11 +21760,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpfalsepd, 0xc2, 3, SPACE_0F, 0x0b,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21740,11 +21772,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpfalsepd, 0xc2, 3, SPACE_0F, 0x0b,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21752,11 +21784,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpfalse_oqps, 0xc2, 3, SPACE_0F, 0x0b,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21764,11 +21796,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpfalse_oqps, 0xc2, 3, SPACE_0F, 0x0b,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21776,11 +21808,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpfalse_oqpd, 0xc2, 3, SPACE_0F, 0x0b,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21788,11 +21820,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpfalse_oqpd, 0xc2, 3, SPACE_0F, 0x0b,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21800,11 +21832,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpneq_oqps, 0xc2, 3, SPACE_0F, 0x0c,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21812,11 +21844,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpneq_oqps, 0xc2, 3, SPACE_0F, 0x0c,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21824,11 +21856,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpneq_oqpd, 0xc2, 3, SPACE_0F, 0x0c,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21836,11 +21868,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpneq_oqpd, 0xc2, 3, SPACE_0F, 0x0c,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21848,11 +21880,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpgeps, 0xc2, 3, SPACE_0F, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21860,11 +21892,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpgeps, 0xc2, 3, SPACE_0F, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21872,11 +21904,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpgepd, 0xc2, 3, SPACE_0F, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21884,11 +21916,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpgepd, 0xc2, 3, SPACE_0F, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21896,11 +21928,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpge_osps, 0xc2, 3, SPACE_0F, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21908,11 +21940,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpge_osps, 0xc2, 3, SPACE_0F, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21920,11 +21952,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpge_ospd, 0xc2, 3, SPACE_0F, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21932,11 +21964,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpge_ospd, 0xc2, 3, SPACE_0F, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21944,11 +21976,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpgtps, 0xc2, 3, SPACE_0F, 0x0e,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21956,11 +21988,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpgtps, 0xc2, 3, SPACE_0F, 0x0e,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21968,11 +22000,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpgtpd, 0xc2, 3, SPACE_0F, 0x0e,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21980,11 +22012,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpgtpd, 0xc2, 3, SPACE_0F, 0x0e,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -21992,11 +22024,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpgt_osps, 0xc2, 3, SPACE_0F, 0x0e,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22004,11 +22036,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpgt_osps, 0xc2, 3, SPACE_0F, 0x0e,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22016,11 +22048,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpgt_ospd, 0xc2, 3, SPACE_0F, 0x0e,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22028,11 +22060,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpgt_ospd, 0xc2, 3, SPACE_0F, 0x0e,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22040,11 +22072,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmptrueps, 0xc2, 3, SPACE_0F, 0x0f,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22052,11 +22084,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmptrueps, 0xc2, 3, SPACE_0F, 0x0f,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22064,11 +22096,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmptruepd, 0xc2, 3, SPACE_0F, 0x0f,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22076,11 +22108,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmptruepd, 0xc2, 3, SPACE_0F, 0x0f,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22088,11 +22120,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmptrue_uqps, 0xc2, 3, SPACE_0F, 0x0f,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22100,11 +22132,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmptrue_uqps, 0xc2, 3, SPACE_0F, 0x0f,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22112,11 +22144,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmptrue_uqpd, 0xc2, 3, SPACE_0F, 0x0f,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22124,11 +22156,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmptrue_uqpd, 0xc2, 3, SPACE_0F, 0x0f,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22136,11 +22168,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpeq_osps, 0xc2, 3, SPACE_0F, 0x10,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22148,11 +22180,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpeq_osps, 0xc2, 3, SPACE_0F, 0x10,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22160,11 +22192,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpeq_ospd, 0xc2, 3, SPACE_0F, 0x10,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22172,11 +22204,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpeq_ospd, 0xc2, 3, SPACE_0F, 0x10,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22184,11 +22216,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmplt_oqps, 0xc2, 3, SPACE_0F, 0x11,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22196,11 +22228,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmplt_oqps, 0xc2, 3, SPACE_0F, 0x11,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22208,11 +22240,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmplt_oqpd, 0xc2, 3, SPACE_0F, 0x11,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22220,11 +22252,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmplt_oqpd, 0xc2, 3, SPACE_0F, 0x11,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22232,11 +22264,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmple_oqps, 0xc2, 3, SPACE_0F, 0x12,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22244,11 +22276,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmple_oqps, 0xc2, 3, SPACE_0F, 0x12,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22256,11 +22288,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmple_oqpd, 0xc2, 3, SPACE_0F, 0x12,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22268,11 +22300,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmple_oqpd, 0xc2, 3, SPACE_0F, 0x12,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22280,11 +22312,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpunord_sps, 0xc2, 3, SPACE_0F, 0x13,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22292,11 +22324,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpunord_sps, 0xc2, 3, SPACE_0F, 0x13,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22304,11 +22336,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpunord_spd, 0xc2, 3, SPACE_0F, 0x13,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22316,11 +22348,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpunord_spd, 0xc2, 3, SPACE_0F, 0x13,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22328,11 +22360,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpneq_usps, 0xc2, 3, SPACE_0F, 0x14,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22340,11 +22372,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpneq_usps, 0xc2, 3, SPACE_0F, 0x14,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22352,11 +22384,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpneq_uspd, 0xc2, 3, SPACE_0F, 0x14,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22364,11 +22396,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpneq_uspd, 0xc2, 3, SPACE_0F, 0x14,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22376,11 +22408,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnlt_uqps, 0xc2, 3, SPACE_0F, 0x15,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22388,11 +22420,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpnlt_uqps, 0xc2, 3, SPACE_0F, 0x15,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22400,11 +22432,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnlt_uqpd, 0xc2, 3, SPACE_0F, 0x15,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22412,11 +22444,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpnlt_uqpd, 0xc2, 3, SPACE_0F, 0x15,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22424,11 +22456,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnle_uqps, 0xc2, 3, SPACE_0F, 0x16,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22436,11 +22468,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpnle_uqps, 0xc2, 3, SPACE_0F, 0x16,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22448,11 +22480,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnle_uqpd, 0xc2, 3, SPACE_0F, 0x16,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22460,11 +22492,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpnle_uqpd, 0xc2, 3, SPACE_0F, 0x16,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22472,11 +22504,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpord_sps, 0xc2, 3, SPACE_0F, 0x17,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22484,11 +22516,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpord_sps, 0xc2, 3, SPACE_0F, 0x17,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22496,11 +22528,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpord_spd, 0xc2, 3, SPACE_0F, 0x17,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22508,11 +22540,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpord_spd, 0xc2, 3, SPACE_0F, 0x17,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22520,11 +22552,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpeq_usps, 0xc2, 3, SPACE_0F, 0x18,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22532,11 +22564,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpeq_usps, 0xc2, 3, SPACE_0F, 0x18,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22544,11 +22576,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpeq_uspd, 0xc2, 3, SPACE_0F, 0x18,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22556,11 +22588,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpeq_uspd, 0xc2, 3, SPACE_0F, 0x18,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22568,11 +22600,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnge_uqps, 0xc2, 3, SPACE_0F, 0x19,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22580,11 +22612,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpnge_uqps, 0xc2, 3, SPACE_0F, 0x19,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22592,11 +22624,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnge_uqpd, 0xc2, 3, SPACE_0F, 0x19,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22604,11 +22636,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpnge_uqpd, 0xc2, 3, SPACE_0F, 0x19,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22616,11 +22648,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpngt_uqps, 0xc2, 3, SPACE_0F, 0x1a,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22628,11 +22660,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpngt_uqps, 0xc2, 3, SPACE_0F, 0x1a,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22640,11 +22672,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpngt_uqpd, 0xc2, 3, SPACE_0F, 0x1a,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22652,11 +22684,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpngt_uqpd, 0xc2, 3, SPACE_0F, 0x1a,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22664,11 +22696,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpfalse_osps, 0xc2, 3, SPACE_0F, 0x1b,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22676,11 +22708,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpfalse_osps, 0xc2, 3, SPACE_0F, 0x1b,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22688,11 +22720,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpfalse_ospd, 0xc2, 3, SPACE_0F, 0x1b,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22700,11 +22732,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpfalse_ospd, 0xc2, 3, SPACE_0F, 0x1b,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22712,11 +22744,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpneq_osps, 0xc2, 3, SPACE_0F, 0x1c,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22724,11 +22756,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpneq_osps, 0xc2, 3, SPACE_0F, 0x1c,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22736,11 +22768,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpneq_ospd, 0xc2, 3, SPACE_0F, 0x1c,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22748,11 +22780,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpneq_ospd, 0xc2, 3, SPACE_0F, 0x1c,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22760,11 +22792,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpge_oqps, 0xc2, 3, SPACE_0F, 0x1d,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22772,11 +22804,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpge_oqps, 0xc2, 3, SPACE_0F, 0x1d,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22784,11 +22816,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpge_oqpd, 0xc2, 3, SPACE_0F, 0x1d,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22796,11 +22828,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpge_oqpd, 0xc2, 3, SPACE_0F, 0x1d,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22808,11 +22840,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpgt_oqps, 0xc2, 3, SPACE_0F, 0x1e,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22820,11 +22852,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpgt_oqps, 0xc2, 3, SPACE_0F, 0x1e,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22832,11 +22864,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpgt_oqpd, 0xc2, 3, SPACE_0F, 0x1e,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22844,11 +22876,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpgt_oqpd, 0xc2, 3, SPACE_0F, 0x1e,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22856,11 +22888,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmptrue_usps, 0xc2, 3, SPACE_0F, 0x1f,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22868,11 +22900,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmptrue_usps, 0xc2, 3, SPACE_0F, 0x1f,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22880,11 +22912,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmptrue_uspd, 0xc2, 3, SPACE_0F, 0x1f,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22892,11 +22924,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmptrue_uspd, 0xc2, 3, SPACE_0F, 0x1f,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22904,11 +22936,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpeqss, 0xc2, 3, SPACE_0F, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22916,11 +22948,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpeqss, 0xc2, 3, SPACE_0F, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22928,11 +22960,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpeqsd, 0xc2, 3, SPACE_0F, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22940,11 +22972,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpeqsd, 0xc2, 3, SPACE_0F, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22952,11 +22984,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpeq_oqss, 0xc2, 3, SPACE_0F, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22964,11 +22996,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpeq_oqss, 0xc2, 3, SPACE_0F, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22976,11 +23008,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpeq_oqsd, 0xc2, 3, SPACE_0F, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -22988,11 +23020,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpeq_oqsd, 0xc2, 3, SPACE_0F, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23000,11 +23032,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpltss, 0xc2, 3, SPACE_0F, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23012,11 +23044,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpltss, 0xc2, 3, SPACE_0F, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23024,11 +23056,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpltsd, 0xc2, 3, SPACE_0F, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23036,11 +23068,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpltsd, 0xc2, 3, SPACE_0F, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23048,11 +23080,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmplt_osss, 0xc2, 3, SPACE_0F, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23060,11 +23092,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmplt_osss, 0xc2, 3, SPACE_0F, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23072,11 +23104,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmplt_ossd, 0xc2, 3, SPACE_0F, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23084,11 +23116,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmplt_ossd, 0xc2, 3, SPACE_0F, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23096,11 +23128,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpless, 0xc2, 3, SPACE_0F, 0x02,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23108,11 +23140,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpless, 0xc2, 3, SPACE_0F, 0x02,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23120,11 +23152,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmplesd, 0xc2, 3, SPACE_0F, 0x02,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23132,11 +23164,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmplesd, 0xc2, 3, SPACE_0F, 0x02,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23144,11 +23176,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmple_osss, 0xc2, 3, SPACE_0F, 0x02,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23156,11 +23188,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmple_osss, 0xc2, 3, SPACE_0F, 0x02,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23168,11 +23200,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmple_ossd, 0xc2, 3, SPACE_0F, 0x02,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23180,11 +23212,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmple_ossd, 0xc2, 3, SPACE_0F, 0x02,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23192,11 +23224,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpunordss, 0xc2, 3, SPACE_0F, 0x03,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23204,11 +23236,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpunordss, 0xc2, 3, SPACE_0F, 0x03,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23216,11 +23248,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpunordsd, 0xc2, 3, SPACE_0F, 0x03,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23228,11 +23260,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpunordsd, 0xc2, 3, SPACE_0F, 0x03,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23240,11 +23272,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpunord_qss, 0xc2, 3, SPACE_0F, 0x03,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23252,11 +23284,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpunord_qss, 0xc2, 3, SPACE_0F, 0x03,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23264,11 +23296,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpunord_qsd, 0xc2, 3, SPACE_0F, 0x03,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23276,11 +23308,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpunord_qsd, 0xc2, 3, SPACE_0F, 0x03,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23288,11 +23320,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpneqss, 0xc2, 3, SPACE_0F, 0x04,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23300,11 +23332,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpneqss, 0xc2, 3, SPACE_0F, 0x04,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23312,11 +23344,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpneqsd, 0xc2, 3, SPACE_0F, 0x04,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23324,11 +23356,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpneqsd, 0xc2, 3, SPACE_0F, 0x04,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23336,11 +23368,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpneq_uqss, 0xc2, 3, SPACE_0F, 0x04,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23348,11 +23380,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpneq_uqss, 0xc2, 3, SPACE_0F, 0x04,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23360,11 +23392,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpneq_uqsd, 0xc2, 3, SPACE_0F, 0x04,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23372,11 +23404,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpneq_uqsd, 0xc2, 3, SPACE_0F, 0x04,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23384,11 +23416,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnltss, 0xc2, 3, SPACE_0F, 0x05,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23396,11 +23428,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpnltss, 0xc2, 3, SPACE_0F, 0x05,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23408,11 +23440,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnltsd, 0xc2, 3, SPACE_0F, 0x05,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23420,11 +23452,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpnltsd, 0xc2, 3, SPACE_0F, 0x05,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23432,11 +23464,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnlt_usss, 0xc2, 3, SPACE_0F, 0x05,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23444,11 +23476,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpnlt_usss, 0xc2, 3, SPACE_0F, 0x05,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23456,11 +23488,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnlt_ussd, 0xc2, 3, SPACE_0F, 0x05,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23468,11 +23500,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpnlt_ussd, 0xc2, 3, SPACE_0F, 0x05,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23480,11 +23512,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnless, 0xc2, 3, SPACE_0F, 0x06,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23492,11 +23524,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpnless, 0xc2, 3, SPACE_0F, 0x06,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23504,11 +23536,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnlesd, 0xc2, 3, SPACE_0F, 0x06,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23516,11 +23548,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpnlesd, 0xc2, 3, SPACE_0F, 0x06,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23528,11 +23560,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnle_usss, 0xc2, 3, SPACE_0F, 0x06,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23540,11 +23572,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpnle_usss, 0xc2, 3, SPACE_0F, 0x06,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23552,11 +23584,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnle_ussd, 0xc2, 3, SPACE_0F, 0x06,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23564,11 +23596,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpnle_ussd, 0xc2, 3, SPACE_0F, 0x06,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23576,11 +23608,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpordss, 0xc2, 3, SPACE_0F, 0x07,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23588,11 +23620,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpordss, 0xc2, 3, SPACE_0F, 0x07,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23600,11 +23632,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpordsd, 0xc2, 3, SPACE_0F, 0x07,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23612,11 +23644,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpordsd, 0xc2, 3, SPACE_0F, 0x07,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23624,11 +23656,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpord_qss, 0xc2, 3, SPACE_0F, 0x07,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23636,11 +23668,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpord_qss, 0xc2, 3, SPACE_0F, 0x07,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23648,11 +23680,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpord_qsd, 0xc2, 3, SPACE_0F, 0x07,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23660,11 +23692,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpord_qsd, 0xc2, 3, SPACE_0F, 0x07,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23672,11 +23704,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpeq_uqss, 0xc2, 3, SPACE_0F, 0x08,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23684,11 +23716,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpeq_uqss, 0xc2, 3, SPACE_0F, 0x08,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23696,11 +23728,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpeq_uqsd, 0xc2, 3, SPACE_0F, 0x08,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23708,11 +23740,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpeq_uqsd, 0xc2, 3, SPACE_0F, 0x08,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23720,11 +23752,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpngess, 0xc2, 3, SPACE_0F, 0x09,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23732,11 +23764,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpngess, 0xc2, 3, SPACE_0F, 0x09,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23744,11 +23776,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpngesd, 0xc2, 3, SPACE_0F, 0x09,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23756,11 +23788,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpngesd, 0xc2, 3, SPACE_0F, 0x09,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23768,11 +23800,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnge_usss, 0xc2, 3, SPACE_0F, 0x09,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23780,11 +23812,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpnge_usss, 0xc2, 3, SPACE_0F, 0x09,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23792,11 +23824,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnge_ussd, 0xc2, 3, SPACE_0F, 0x09,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23804,11 +23836,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpnge_ussd, 0xc2, 3, SPACE_0F, 0x09,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23816,11 +23848,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpngtss, 0xc2, 3, SPACE_0F, 0x0a,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23828,11 +23860,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpngtss, 0xc2, 3, SPACE_0F, 0x0a,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23840,11 +23872,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpngtsd, 0xc2, 3, SPACE_0F, 0x0a,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23852,11 +23884,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpngtsd, 0xc2, 3, SPACE_0F, 0x0a,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23864,11 +23896,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpngt_usss, 0xc2, 3, SPACE_0F, 0x0a,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23876,11 +23908,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpngt_usss, 0xc2, 3, SPACE_0F, 0x0a,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23888,11 +23920,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpngt_ussd, 0xc2, 3, SPACE_0F, 0x0a,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23900,11 +23932,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpngt_ussd, 0xc2, 3, SPACE_0F, 0x0a,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23912,11 +23944,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpfalsess, 0xc2, 3, SPACE_0F, 0x0b,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23924,11 +23956,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpfalsess, 0xc2, 3, SPACE_0F, 0x0b,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23936,11 +23968,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpfalsesd, 0xc2, 3, SPACE_0F, 0x0b,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23948,11 +23980,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpfalsesd, 0xc2, 3, SPACE_0F, 0x0b,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23960,11 +23992,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpfalse_oqss, 0xc2, 3, SPACE_0F, 0x0b,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23972,11 +24004,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpfalse_oqss, 0xc2, 3, SPACE_0F, 0x0b,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23984,11 +24016,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpfalse_oqsd, 0xc2, 3, SPACE_0F, 0x0b,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -23996,11 +24028,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpfalse_oqsd, 0xc2, 3, SPACE_0F, 0x0b,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24008,11 +24040,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpneq_oqss, 0xc2, 3, SPACE_0F, 0x0c,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24020,11 +24052,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpneq_oqss, 0xc2, 3, SPACE_0F, 0x0c,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24032,11 +24064,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpneq_oqsd, 0xc2, 3, SPACE_0F, 0x0c,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24044,11 +24076,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpneq_oqsd, 0xc2, 3, SPACE_0F, 0x0c,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24056,11 +24088,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpgess, 0xc2, 3, SPACE_0F, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24068,11 +24100,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpgess, 0xc2, 3, SPACE_0F, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24080,11 +24112,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpgesd, 0xc2, 3, SPACE_0F, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24092,11 +24124,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpgesd, 0xc2, 3, SPACE_0F, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24104,11 +24136,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpge_osss, 0xc2, 3, SPACE_0F, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24116,11 +24148,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpge_osss, 0xc2, 3, SPACE_0F, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24128,11 +24160,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpge_ossd, 0xc2, 3, SPACE_0F, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24140,11 +24172,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpge_ossd, 0xc2, 3, SPACE_0F, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24152,11 +24184,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpgtss, 0xc2, 3, SPACE_0F, 0x0e,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24164,11 +24196,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpgtss, 0xc2, 3, SPACE_0F, 0x0e,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24176,11 +24208,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpgtsd, 0xc2, 3, SPACE_0F, 0x0e,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24188,11 +24220,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpgtsd, 0xc2, 3, SPACE_0F, 0x0e,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24200,11 +24232,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpgt_osss, 0xc2, 3, SPACE_0F, 0x0e,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24212,11 +24244,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpgt_osss, 0xc2, 3, SPACE_0F, 0x0e,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24224,11 +24256,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpgt_ossd, 0xc2, 3, SPACE_0F, 0x0e,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24236,11 +24268,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpgt_ossd, 0xc2, 3, SPACE_0F, 0x0e,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24248,11 +24280,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmptruess, 0xc2, 3, SPACE_0F, 0x0f,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24260,11 +24292,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmptruess, 0xc2, 3, SPACE_0F, 0x0f,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24272,11 +24304,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmptruesd, 0xc2, 3, SPACE_0F, 0x0f,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24284,11 +24316,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmptruesd, 0xc2, 3, SPACE_0F, 0x0f,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24296,11 +24328,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmptrue_uqss, 0xc2, 3, SPACE_0F, 0x0f,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24308,11 +24340,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmptrue_uqss, 0xc2, 3, SPACE_0F, 0x0f,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24320,11 +24352,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmptrue_uqsd, 0xc2, 3, SPACE_0F, 0x0f,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24332,11 +24364,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmptrue_uqsd, 0xc2, 3, SPACE_0F, 0x0f,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24344,11 +24376,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpeq_osss, 0xc2, 3, SPACE_0F, 0x10,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24356,11 +24388,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpeq_osss, 0xc2, 3, SPACE_0F, 0x10,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24368,11 +24400,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpeq_ossd, 0xc2, 3, SPACE_0F, 0x10,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24380,11 +24412,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpeq_ossd, 0xc2, 3, SPACE_0F, 0x10,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24392,11 +24424,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmplt_oqss, 0xc2, 3, SPACE_0F, 0x11,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24404,11 +24436,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmplt_oqss, 0xc2, 3, SPACE_0F, 0x11,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24416,11 +24448,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmplt_oqsd, 0xc2, 3, SPACE_0F, 0x11,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24428,11 +24460,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmplt_oqsd, 0xc2, 3, SPACE_0F, 0x11,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24440,11 +24472,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmple_oqss, 0xc2, 3, SPACE_0F, 0x12,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24452,11 +24484,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmple_oqss, 0xc2, 3, SPACE_0F, 0x12,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24464,11 +24496,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmple_oqsd, 0xc2, 3, SPACE_0F, 0x12,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24476,11 +24508,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmple_oqsd, 0xc2, 3, SPACE_0F, 0x12,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24488,11 +24520,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpunord_sss, 0xc2, 3, SPACE_0F, 0x13,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24500,11 +24532,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpunord_sss, 0xc2, 3, SPACE_0F, 0x13,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24512,11 +24544,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpunord_ssd, 0xc2, 3, SPACE_0F, 0x13,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24524,11 +24556,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpunord_ssd, 0xc2, 3, SPACE_0F, 0x13,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24536,11 +24568,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpneq_usss, 0xc2, 3, SPACE_0F, 0x14,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24548,11 +24580,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpneq_usss, 0xc2, 3, SPACE_0F, 0x14,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24560,11 +24592,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpneq_ussd, 0xc2, 3, SPACE_0F, 0x14,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24572,11 +24604,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpneq_ussd, 0xc2, 3, SPACE_0F, 0x14,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24584,11 +24616,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnlt_uqss, 0xc2, 3, SPACE_0F, 0x15,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24596,11 +24628,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpnlt_uqss, 0xc2, 3, SPACE_0F, 0x15,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24608,11 +24640,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnlt_uqsd, 0xc2, 3, SPACE_0F, 0x15,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24620,11 +24652,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpnlt_uqsd, 0xc2, 3, SPACE_0F, 0x15,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24632,11 +24664,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnle_uqss, 0xc2, 3, SPACE_0F, 0x16,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24644,11 +24676,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpnle_uqss, 0xc2, 3, SPACE_0F, 0x16,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24656,11 +24688,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnle_uqsd, 0xc2, 3, SPACE_0F, 0x16,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24668,11 +24700,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpnle_uqsd, 0xc2, 3, SPACE_0F, 0x16,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24680,11 +24712,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpord_sss, 0xc2, 3, SPACE_0F, 0x17,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24692,11 +24724,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpord_sss, 0xc2, 3, SPACE_0F, 0x17,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24704,11 +24736,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpord_ssd, 0xc2, 3, SPACE_0F, 0x17,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24716,11 +24748,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpord_ssd, 0xc2, 3, SPACE_0F, 0x17,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24728,11 +24760,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpeq_usss, 0xc2, 3, SPACE_0F, 0x18,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24740,11 +24772,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpeq_usss, 0xc2, 3, SPACE_0F, 0x18,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24752,11 +24784,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpeq_ussd, 0xc2, 3, SPACE_0F, 0x18,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24764,11 +24796,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpeq_ussd, 0xc2, 3, SPACE_0F, 0x18,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24776,11 +24808,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnge_uqss, 0xc2, 3, SPACE_0F, 0x19,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24788,11 +24820,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpnge_uqss, 0xc2, 3, SPACE_0F, 0x19,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24800,11 +24832,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnge_uqsd, 0xc2, 3, SPACE_0F, 0x19,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24812,11 +24844,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpnge_uqsd, 0xc2, 3, SPACE_0F, 0x19,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24824,11 +24856,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpngt_uqss, 0xc2, 3, SPACE_0F, 0x1a,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24836,11 +24868,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpngt_uqss, 0xc2, 3, SPACE_0F, 0x1a,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24848,11 +24880,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpngt_uqsd, 0xc2, 3, SPACE_0F, 0x1a,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24860,11 +24892,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpngt_uqsd, 0xc2, 3, SPACE_0F, 0x1a,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24872,11 +24904,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpfalse_osss, 0xc2, 3, SPACE_0F, 0x1b,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24884,11 +24916,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpfalse_osss, 0xc2, 3, SPACE_0F, 0x1b,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24896,11 +24928,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpfalse_ossd, 0xc2, 3, SPACE_0F, 0x1b,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24908,11 +24940,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpfalse_ossd, 0xc2, 3, SPACE_0F, 0x1b,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24920,11 +24952,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpneq_osss, 0xc2, 3, SPACE_0F, 0x1c,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24932,11 +24964,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpneq_osss, 0xc2, 3, SPACE_0F, 0x1c,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24944,11 +24976,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpneq_ossd, 0xc2, 3, SPACE_0F, 0x1c,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24956,11 +24988,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpneq_ossd, 0xc2, 3, SPACE_0F, 0x1c,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24968,11 +25000,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpge_oqss, 0xc2, 3, SPACE_0F, 0x1d,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24980,11 +25012,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpge_oqss, 0xc2, 3, SPACE_0F, 0x1d,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -24992,11 +25024,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpge_oqsd, 0xc2, 3, SPACE_0F, 0x1d,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25004,11 +25036,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpge_oqsd, 0xc2, 3, SPACE_0F, 0x1d,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25016,11 +25048,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpgt_oqss, 0xc2, 3, SPACE_0F, 0x1e,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25028,11 +25060,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpgt_oqss, 0xc2, 3, SPACE_0F, 0x1e,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25040,11 +25072,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpgt_oqsd, 0xc2, 3, SPACE_0F, 0x1e,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25052,11 +25084,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpgt_oqsd, 0xc2, 3, SPACE_0F, 0x1e,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25064,11 +25096,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmptrue_usss, 0xc2, 3, SPACE_0F, 0x1f,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25076,11 +25108,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmptrue_usss, 0xc2, 3, SPACE_0F, 0x1f,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25088,11 +25120,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmptrue_ussd, 0xc2, 3, SPACE_0F, 0x1f,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25100,11 +25132,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmptrue_ussd, 0xc2, 3, SPACE_0F, 0x1f,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25112,11 +25144,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpps, 0xc2, 4, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25126,11 +25158,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmpps, 0xc2, 4, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25140,11 +25172,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, 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,
+ { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmppd, 0xc2, 4, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25154,11 +25186,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vcmppd, 0xc2, 4, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25168,11 +25200,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, 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,
+ { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpss, 0xc2, 4, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25182,11 +25214,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, 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,
+ { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpss, 0xc2, 4, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25196,11 +25228,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, 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,
+ { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpsd, 0xc2, 4, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25210,11 +25242,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, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpsd, 0xc2, 4, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25224,11 +25256,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, 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,
+ { { 8, 0, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcomiss, 0x2f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25236,9 +25268,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcomiss, 0x2f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25246,9 +25278,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcomisd, 0x2f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25256,9 +25288,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vcomisd, 0x2f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25266,9 +25298,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vcvtdq2pd, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25276,9 +25308,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vcvtdq2pd, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25286,9 +25318,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vcvtdq2pd, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25296,9 +25328,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcvtdq2pd, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25306,9 +25338,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtdq2pd, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25316,9 +25348,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtdq2ps, 0x5b, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25326,9 +25358,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vcvtdq2ps, 0x5b, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25336,9 +25368,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vcvtpd2dq, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25346,9 +25378,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vcvtpd2dq, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25356,9 +25388,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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_vcvtpd2dq, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25366,29 +25398,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtpd2dq, 0xe6, 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, 2, 3, 0, 0, 5, 1, 4, 1, 1, 7, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 3, 0, 0, 5, 1, 4, 0, 0, 7, 0, 1, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtpd2dq, 0xe6, 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, 2, 3, 0, 0, 5, 1, 4, 1, 1, 7, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 3, 0, 0, 5, 1, 4, 0, 0, 7, 0, 2, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtpd2dqx, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25396,9 +25428,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vcvtpd2dqx, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25406,9 +25438,9 @@ static const insn_template i386_optab[] =
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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vcvtpd2dqy, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25416,19 +25448,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtpd2dqy, 0xe6, 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, 2, 3, 0, 0, 3, 1, 4, 1, 1, 5, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 3, 0, 0, 3, 1, 4, 0, 0, 5, 0, 2, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtpd2ps, 0x5a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25436,9 +25468,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vcvtpd2ps, 0x5a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25446,9 +25478,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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_vcvtpd2ps, 0x5a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25456,29 +25488,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtpd2ps, 0x5a, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 1, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtpd2ps, 0x5a, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 2, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtpd2psx, 0x5a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25486,9 +25518,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vcvtpd2psx, 0x5a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25496,9 +25528,9 @@ static const insn_template i386_optab[] =
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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vcvtpd2psy, 0x5a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25506,19 +25538,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtpd2psy, 0x5a, 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, 2, 1, 0, 0, 3, 1, 4, 1, 1, 5, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 1, 0, 0, 3, 1, 4, 0, 0, 5, 0, 2, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtps2dq, 0x5b, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25526,9 +25558,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vcvtps2dq, 0x5b, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25536,9 +25568,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vcvtps2pd, 0x5a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25546,9 +25578,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vcvtps2pd, 0x5a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25556,9 +25588,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vcvtps2pd, 0x5a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25566,9 +25598,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcvtps2pd, 0x5a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25576,19 +25608,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtps2pd, 0x5a, 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, 1, 0, 0, 0, 3, 1, 3, 0, 1, 4, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 1, 3, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtss2si, 0x2d, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25596,7 +25628,7 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -25606,7 +25638,7 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -25616,7 +25648,7 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -25626,7 +25658,7 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -25636,11 +25668,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtsd2ss, 0x5a, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25648,11 +25680,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtsi2ss, 0x2a, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25662,9 +25694,9 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtsi2ss, 0x2a, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25674,9 +25706,9 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtsi2ss, 0x2a, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25686,9 +25718,9 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtsi2ss, 0x2a, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25698,9 +25730,9 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtsi2sd, 0x2a, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25710,9 +25742,9 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtsi2sd, 0x2a, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25722,9 +25754,9 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtsi2sd, 0x2a, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
@@ -25734,9 +25766,9 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtsi2sd, 0x2a, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
@@ -25746,9 +25778,9 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtsi2sd, 0x2a, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
@@ -25758,9 +25790,9 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtsi2sd, 0x2a, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
@@ -25770,9 +25802,9 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtss2sd, 0x5a, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25780,11 +25812,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtss2sd, 0x5a, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25792,11 +25824,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvttpd2dq, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25804,9 +25836,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vcvttpd2dq, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25814,9 +25846,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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_vcvttpd2dq, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25824,29 +25856,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttpd2dq, 0xe6, 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, 2, 1, 0, 0, 5, 1, 4, 0, 1, 7, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 1, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttpd2dq, 0xe6, 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, 2, 1, 0, 0, 5, 1, 4, 0, 1, 7, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 2, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttpd2dqx, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25854,9 +25886,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vcvttpd2dqx, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25864,9 +25896,9 @@ static const insn_template i386_optab[] =
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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vcvttpd2dqy, 0xe6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25874,19 +25906,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttpd2dqy, 0xe6, 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, 2, 1, 0, 0, 3, 1, 4, 0, 1, 5, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 1, 0, 0, 3, 1, 4, 0, 0, 5, 0, 2, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttps2dq, 0x5b, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25894,9 +25926,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vcvttps2dq, 0x5b, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25904,9 +25936,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vcvttss2si, 0x2c, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -25914,7 +25946,7 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -25924,7 +25956,7 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -25934,7 +25966,7 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -25944,7 +25976,7 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -25956,11 +25988,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vdpps, 0x40, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25970,11 +26002,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vextractf128, 0x19, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25984,9 +26016,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, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vextractps, 0x17, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -25996,7 +26028,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 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, 0,
0, 0, 0, 0, 0, 0 } },
- { { 7, 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,
1, 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 } } } },
@@ -26008,7 +26040,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 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, 0,
0, 0, 0, 0, 0, 0 } },
- { { 7, 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,
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,
0, 0, 0, 0, 0, 0 } } } },
@@ -26018,11 +26050,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vhaddps, 0x7c, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26030,11 +26062,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vhsubpd, 0x7d, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26042,11 +26074,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vhsubps, 0x7d, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26054,11 +26086,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vinsertf128, 0x18, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26068,11 +26100,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 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,
+ { { 8, 0, 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_vinsertps, 0x21, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26082,11 +26114,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, 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,
+ { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vinsertps, 0x21, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26096,11 +26128,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, 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,
+ { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vlddqu, 0xf0, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26110,7 +26142,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 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_vldmxcsr, 0xae, 1, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26126,9 +26158,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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_vmaskmovps, 0x2e | 0, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26136,9 +26168,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 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,
1, 1, 0, 0, 1, 0 } } } },
@@ -26150,9 +26182,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, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vmaskmovpd, 0x2e | 1, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26160,9 +26192,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 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,
1, 1, 0, 0, 1, 0 } } } },
@@ -26174,9 +26206,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, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vmovaps, 0x28, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26184,9 +26216,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vmovaps, 0x28, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26194,9 +26226,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vmovapd, 0x28, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26204,9 +26236,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vmovapd, 0x28, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26214,9 +26246,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vmovd, 0x6e, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26226,7 +26258,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 0, 1, 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,
+ { { 8, 0, 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_vmovd, 0x7e, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 3, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
@@ -26234,7 +26266,7 @@ static const insn_template i386_optab[] =
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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 0, 0 } } } },
@@ -26244,9 +26276,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vmovd, 0xd6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26254,9 +26286,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 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 } } } },
{ MN_vmovddup, 0x12, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26264,9 +26296,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vmovddup, 0x12, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26274,9 +26306,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vmovddup, 0x12, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26284,9 +26316,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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 } } } },
{ MN_vmovddup, 0x12, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26294,9 +26326,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vmovdqa, 0x6f, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26304,9 +26336,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vmovdqu, 0x6f, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26314,9 +26346,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vmovhlps, 0x12, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26324,11 +26356,11 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmovhlps, 0x12, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26336,11 +26368,11 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmovhps, 0x16, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26350,9 +26382,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, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmovhps, 0x17, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26360,7 +26392,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -26372,9 +26404,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, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmovhps, 0x17, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26382,7 +26414,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -26394,9 +26426,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, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmovhpd, 0x17, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26404,7 +26436,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -26416,9 +26448,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, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmovhpd, 0x17, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26426,7 +26458,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -26436,11 +26468,11 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmovlhps, 0x16, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26448,11 +26480,11 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmovlps, 0x12, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26462,9 +26494,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, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmovlps, 0x13, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26472,7 +26504,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -26484,9 +26516,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, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmovlps, 0x13, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26494,7 +26526,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -26506,9 +26538,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, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmovlpd, 0x13, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26516,7 +26548,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -26528,9 +26560,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, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmovlpd, 0x13, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26538,7 +26570,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -26548,7 +26580,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 0, 0 } } } },
@@ -26558,7 +26590,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 0, 0 } } } },
@@ -26568,7 +26600,7 @@ 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 } },
- { { { 7, 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,
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,
1, 1, 0, 0, 1, 0 } } } },
@@ -26578,7 +26610,7 @@ 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 } },
- { { { 7, 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,
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,
1, 1, 1, 0, 1, 0 } } } },
@@ -26587,10 +26619,10 @@ static const insn_template i386_optab[] =
0, 0, 0, 1, 0, 3, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 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,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vmovntdqa, 0x2a, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26600,7 +26632,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 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_vmovntps, 0x2b, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26608,7 +26640,7 @@ 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 } },
- { { { 7, 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,
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,
1, 1, 0, 0, 1, 0 } } } },
@@ -26618,7 +26650,7 @@ 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 } },
- { { { 7, 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,
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,
1, 1, 1, 0, 1, 0 } } } },
@@ -26628,7 +26660,7 @@ 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 } },
- { { { 7, 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,
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,
1, 1, 0, 0, 1, 0 } } } },
@@ -26638,7 +26670,7 @@ 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 } },
- { { { 7, 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,
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,
1, 1, 1, 0, 1, 0 } } } },
@@ -26648,9 +26680,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vmovq, 0xd6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26658,9 +26690,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vmovq, 0x6e, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26670,7 +26702,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 0, 1, 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,
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,
+ { { 8, 0, 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_vmovq, 0x7e, 2, SPACE_0F, None,
{ 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26678,9 +26710,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vmovq, 0xd6, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26688,9 +26720,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vmovss, 0x10, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26700,7 +26732,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vmovss, 0x10, 3, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26708,11 +26740,11 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmovss, 0x10, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26722,7 +26754,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vmovss, 0x10, 3, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26730,11 +26762,11 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmovsd, 0x10, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26744,7 +26776,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vmovsd, 0x10, 3, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26752,11 +26784,11 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmovsd, 0x10, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26766,7 +26798,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vmovsd, 0x10, 3, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26774,11 +26806,11 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmovshdup, 0x16, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26786,9 +26818,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vmovshdup, 0x16, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26796,9 +26828,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vmovsldup, 0x12, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26806,9 +26838,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vmovsldup, 0x12, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26816,9 +26848,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vmovups, 0x10, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26826,9 +26858,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vmovups, 0x10, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26836,9 +26868,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vmovupd, 0x10, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26846,9 +26878,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vmovupd, 0x10, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26856,23 +26888,23 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vmpsadbw, 0x42, 4, SPACE_0F3A, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 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, 0,
0, 0, 0, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vmpsadbw, 0x42, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26882,61 +26914,61 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpabsb, 0x1c | 0, 2, 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, 0, 3, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vpabsb, 0x1c | 0, 2, 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, 0, 0, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vpabsw, 0x1c | 1, 2, 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, 0, 3, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vpabsw, 0x1c | 1, 2, 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, 0, 0, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vpabsd, 0x1e, 2, 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, 0, 3, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vpabsd, 0x1e | 0, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -26944,213 +26976,213 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vpackssdw, 0x6b, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpackssdw, 0x6b, 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, 0, 1, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpacksswb, 0x63, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpacksswb, 0x63, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpackusdw, 0x2b, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpackusdw, 0x2b, 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, 0, 1, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpackuswb, 0x67, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpackuswb, 0x67, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpaddsb, 0xec | 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpaddsb, 0xec | 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpaddsw, 0xec | 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpaddsw, 0xec | 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpaddb, 0xfc | 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpaddb, 0xfc | 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpaddw, 0xfc | 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpaddw, 0xfc | 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpaddd, 0xfe, 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpaddd, 0xfe, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -27158,23 +27190,23 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpaddq, 0xd4, 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpaddq, 0xd4, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -27182,271 +27214,271 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpaddusb, 0xdc | 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpaddusb, 0xdc | 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpaddusw, 0xdc | 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpaddusw, 0xdc | 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpalignr, 0x0f, 4, SPACE_0F3A, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 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 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpalignr, 0x0f, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpand, 0xdb, 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpandn, 0xdf, 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, 1, 0, 0, 0, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpavgb, 0xe0 | (3 * 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpavgb, 0xe0 | (3 * 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpavgw, 0xe0 | (3 * 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpavgw, 0xe0 | (3 * 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpblendvb, 0x4c, 4, SPACE_0F3A, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpblendw, 0x0e, 4, SPACE_0F3A, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 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, 0,
0, 0, 0, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpcmpeqb, 0x74 | 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpcmpeqb, 0x74 | 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpeqb, 0x3f, 3, SPACE_0F3A, 0,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpeqw, 0x74 | 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpcmpeqw, 0x74 | 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpeqw, 0x3f, 3, SPACE_0F3A, 0,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpeqd, 0x76, 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpcmpeqd, 0x76, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -27454,11 +27486,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpeqd, 0x1f, 3, SPACE_0F3A, 0,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -27466,23 +27498,23 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ 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, 1, 0, 0, 0, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_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,
@@ -27490,11 +27522,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpeqq, 0x1f, 3, SPACE_0F3A, 0,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -27502,11 +27534,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpestri, 0x61, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -27516,9 +27548,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vpcmpestri, 0x61, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -27528,9 +27560,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, 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,
+ { { 8, 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 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vpcmpestrm, 0x60, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -27540,9 +27572,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vpcmpestrm, 0x60, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -27552,69 +27584,69 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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 } },
- { { 7, 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,
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, 1, 0, 0, 0, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ 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, 1, 0, 0, 0, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ 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, 1, 0, 0, 0, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_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,
@@ -27622,23 +27654,23 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ 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, 1, 0, 0, 0, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_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,
@@ -27646,11 +27678,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpistri, 0x63, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -27660,9 +27692,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vpcmpistrm, 0x62, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -27672,9 +27704,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vperm2f128, 0x06, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -27684,11 +27716,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, 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,
+ { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vpermilps, 0x0c, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -27696,11 +27728,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, 1, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpermilps, 0x04, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -27710,9 +27742,9 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0,
0, 0, 0, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 8, 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,
+ { { 8, 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_vpermilpd, 0x0d, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -27720,11 +27752,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpermilpd, 0x05, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -27734,9 +27766,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vpermilpd, 0x05, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -27746,9 +27778,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, 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,
+ { { 8, 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,
+ { { 8, 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_vpermilpd, 0x0d, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -27756,11 +27788,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpextrd, 0x16, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -27770,7 +27802,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -27778,11 +27810,11 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -27794,7 +27826,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -27802,11 +27834,11 @@ static const insn_template i386_optab[] =
{ 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, 2, 1, 0, 0, 2, 0, 0, 0, 0, 3, 1, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -27818,7 +27850,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -27830,7 +27862,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -27842,7 +27874,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -27850,11 +27882,11 @@ static const insn_template i386_optab[] =
{ 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -27862,11 +27894,11 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -27874,11 +27906,11 @@ static const insn_template i386_optab[] =
{ 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, 3, 1, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -27890,7 +27922,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -27902,7 +27934,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -27910,11 +27942,11 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -27922,11 +27954,11 @@ static const insn_template i386_optab[] =
{ 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, 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -27935,36 +27967,36 @@ static const insn_template i386_optab[] =
0, 0, 0, 1, 1, 3, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vphaddsw, 0x03, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vphaddw, 0x01, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vphminposuw, 0x41, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -27972,45 +28004,45 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vphsubd, 0x06, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vphsubsw, 0x07, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vphsubw, 0x05, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpinsrb, 0x20, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28022,9 +28054,9 @@ 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, 1, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vpinsrb, 0x20, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28036,37 +28068,37 @@ static const insn_template i386_optab[] =
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,
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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vpinsrb, 0x20, 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, 0, 1, 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpinsrb, 0x20, 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, 0, 1, 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vpinsrd, 0x22, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28078,23 +28110,23 @@ static const insn_template i386_optab[] =
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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vpinsrd, 0x22, 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, 0, 1, 0, 1, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vpinsrq, 0x22, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28106,23 +28138,23 @@ static const insn_template i386_optab[] =
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,
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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vpinsrq, 0x22, 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, 0, 1, 2, 1, 0, 0, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 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,
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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vpinsrw, 0xc4, 4, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -28134,9 +28166,9 @@ 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, 1, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vpinsrw, 0xc4, 4, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28148,121 +28180,121 @@ static const insn_template i386_optab[] =
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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vpinsrw, 0xc4, 4, 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, 1, 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpinsrw, 0xc4, 4, 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, 1, 3, 1, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vpmaddubsw, 0x04, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpmaddubsw, 0x04, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmaddwd, 0xf5, 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpmaddwd, 0xf5, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmaxsb, 0x3c, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpmaxsb, 0x3c, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmaxsd, 0x3d, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpmaxsd, 0x3d, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28270,71 +28302,71 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmaxsw, 0xee, 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpmaxsw, 0xee, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmaxub, 0xde, 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpmaxub, 0xde, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmaxud, 0x3f, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpmaxud, 0x3f, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28342,71 +28374,71 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmaxuw, 0x3e, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpmaxuw, 0x3e, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpminsb, 0x38, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpminsb, 0x38, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpminsd, 0x39, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpminsd, 0x39, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28414,71 +28446,71 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpminsw, 0xea, 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpminsw, 0xea, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpminub, 0xda, 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpminub, 0xda, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpminud, 0x3b, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpminud, 0x3b, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28486,43 +28518,43 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpminuw, 0x3a, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpminuw, 0x3a, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmovmskb, 0xd7, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 3, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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,
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,
0, 0, 0, 0, 0, 0 } } } },
@@ -28532,19 +28564,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vpmovsxbd, 0x21, 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, 3, 1, 0, 0, 3, 1, 0, 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 } },
- { { 34, 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,
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vpmovsxbd, 0x21, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28552,9 +28584,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0 } } } },
{ MN_vpmovzxbd, 0x31, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28562,19 +28594,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vpmovzxbd, 0x31, 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, 3, 1, 0, 0, 3, 1, 0, 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 } },
- { { 34, 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,
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vpmovzxbd, 0x31, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28582,9 +28614,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0 } } } },
{ MN_vpmovsxbq, 0x22, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28592,19 +28624,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vpmovsxbq, 0x22, 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, 3, 1, 0, 0, 3, 1, 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 } },
- { { 34, 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,
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vpmovsxbq, 0x22, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28612,9 +28644,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vpmovzxbq, 0x32, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28622,19 +28654,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vpmovzxbq, 0x32, 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, 3, 1, 0, 0, 3, 1, 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 } },
- { { 34, 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,
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vpmovzxbq, 0x32, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28642,9 +28674,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vpmovsxbw, 0x20, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28652,49 +28684,49 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vpmovsxbw, 0x20, 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, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vpmovsxbw, 0x20, 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, 3, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vpmovsxbw, 0x20, 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, 3, 1, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vpmovsxbw, 0x20, 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, 3, 1, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vpmovzxbw, 0x30, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28702,49 +28734,49 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vpmovzxbw, 0x30, 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, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vpmovzxbw, 0x30, 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, 3, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vpmovzxbw, 0x30, 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, 3, 1, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vpmovzxbw, 0x30, 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, 3, 1, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vpmovsxdq, 0x25, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28752,19 +28784,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vpmovsxdq, 0x25, 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, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vpmovsxdq, 0x25, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28772,9 +28804,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vpmovsxdq, 0x25, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28782,9 +28814,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vpmovsxdq, 0x25, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28792,9 +28824,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vpmovzxdq, 0x35, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28802,19 +28834,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vpmovzxdq, 0x35, 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, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vpmovzxdq, 0x35, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28822,9 +28854,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vpmovzxdq, 0x35, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28832,9 +28864,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vpmovzxdq, 0x35, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28842,9 +28874,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vpmovsxwd, 0x23, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28852,19 +28884,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vpmovsxwd, 0x23, 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, 3, 1, 0, 0, 3, 1, 0, 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 } },
- { { 34, 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,
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vpmovsxwd, 0x23, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28872,9 +28904,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vpmovzxwd, 0x33, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28882,19 +28914,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vpmovzxwd, 0x33, 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, 3, 1, 0, 0, 3, 1, 0, 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 } },
- { { 34, 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,
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vpmovzxwd, 0x33, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28902,9 +28934,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vpmovsxwq, 0x24, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28912,19 +28944,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vpmovsxwq, 0x24, 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, 3, 1, 0, 0, 3, 1, 0, 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 } },
- { { 34, 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,
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vpmovsxwq, 0x24, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28932,9 +28964,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0 } } } },
{ MN_vpmovzxwq, 0x34, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28942,19 +28974,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vpmovzxwq, 0x34, 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, 3, 1, 0, 0, 3, 1, 0, 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 } },
- { { 34, 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,
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vpmovzxwq, 0x34, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28962,21 +28994,21 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0 } } } },
{ MN_vpmuldq, 0x28, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpmuldq, 0x28, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -28984,95 +29016,95 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmulhrsw, 0x0b, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpmulhrsw, 0x0b, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmulhuw, 0xe4, 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpmulhuw, 0xe4, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmulhw, 0xe5, 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpmulhw, 0xe5, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmulld, 0x40, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpmulld, 0x40, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -29080,47 +29112,47 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmullw, 0xd5, 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpmullw, 0xd5, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmuludq, 0xf4, 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpmuludq, 0xf4, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -29128,83 +29160,83 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpor, 0xeb, 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsadbw, 0xf6, 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, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsadbw, 0xf6, 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, 0, 1, 3, 1, 0, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpshufb, 0x00, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpshufb, 0x00, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpshufd, 0x70, 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, 0, 3, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 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, 0,
0, 0, 0, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vpshufd, 0x70, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -29214,117 +29246,117 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 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,
+ { { 8, 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_vpshufhw, 0x70, 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, 0, 3, 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, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 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, 0,
0, 0, 0, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vpshufhw, 0x70, 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, 0, 0, 3, 2, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vpshuflw, 0x70, 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, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 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, 0,
0, 0, 0, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vpshuflw, 0x70, 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, 0, 0, 3, 3, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vpsignb, 0x08 | 0, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsignw, 0x08 | 1, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsignd, 0x0a, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpslld, 0x72 | 0, 3, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 3, 1, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 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 } },
- { { 7, 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,
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,
+ { { 8, 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_vpslld, 0xf2 | 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpslld, 0xf2 | 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,
@@ -29332,11 +29364,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpslld, 0x72 | 0, 3, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -29346,33 +29378,33 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vpsllq, 0x72 | 1, 3, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 3, 1, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 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 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsllq, 0xf2 | 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsllq, 0xf2 | 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,
@@ -29380,11 +29412,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsllq, 0x72 | 1, 3, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -29394,105 +29426,105 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vpslldq, 0x73, 3, SPACE_0F, 7,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 3, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 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 } },
- { { 7, 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,
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,
+ { { 8, 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_vpslldq, 0x73, 3, SPACE_0F, 7,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 3, 1, 0, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vpsllw, 0x71, 3, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 3, 1, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 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 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsllw, 0xf1, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsllw, 0x71, 3, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 1, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vpsllw, 0xf1, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsrad, 0x72, 3, SPACE_0F, 4,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 3, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 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 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsrad, 0xe2, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsrad, 0xe2, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -29500,11 +29532,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsrad, 0x72, 3, SPACE_0F, 4,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -29514,81 +29546,81 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vpsraw, 0x71, 3, SPACE_0F, 4,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 3, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 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 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsraw, 0xe1, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsraw, 0x71, 3, SPACE_0F, 4,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vpsraw, 0xe1, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsrld, 0x72 | 0, 3, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 3, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 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 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsrld, 0xd2 | 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsrld, 0xd2 | 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,
@@ -29596,11 +29628,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsrld, 0x72 | 0, 3, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -29610,33 +29642,33 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vpsrlq, 0x72 | 1, 3, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 3, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 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 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsrlq, 0xd2 | 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsrlq, 0xd2 | 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,
@@ -29644,11 +29676,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsrlq, 0x72 | 1, 3, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -29658,141 +29690,141 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vpsrldq, 0x73, 3, SPACE_0F, 3,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 3, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 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 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsrldq, 0x73, 3, SPACE_0F, 3,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 3, 1, 0, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vpsrlw, 0x71, 3, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 3, 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 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 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 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsrlw, 0xd1, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsrlw, 0x71, 3, SPACE_0F, 2,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vpsrlw, 0xd1, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsubb, 0xf8 | 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, 1, 0, 0, 0, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsubb, 0xf8 | 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 1, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpsubw, 0xf8 | 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, 1, 0, 0, 0, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsubw, 0xf8 | 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 1, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpsubd, 0xfa | 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, 1, 0, 0, 0, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsubd, 0xfa | 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,
@@ -29800,23 +29832,23 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpsubq, 0xfa | 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, 1, 0, 0, 0, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsubq, 0xfa | 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,
@@ -29824,107 +29856,107 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpsubsb, 0xe8 | 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsubsb, 0xe8 | 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpsubsw, 0xe8 | 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsubsw, 0xe8 | 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpsubusb, 0xd8 | 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsubusb, 0xd8 | 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpsubusw, 0xd8 | 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsubusw, 0xd8 | 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vptest, 0x17, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -29932,45 +29964,45 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vpunpckhbw, 0x68, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpunpckhbw, 0x68, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpunpckhdq, 0x6a, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpunpckhdq, 0x6a, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -29978,23 +30010,23 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpunpckhqdq, 0x6d, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpunpckhqdq, 0x6d, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30002,71 +30034,71 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpunpckhwd, 0x69, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpunpckhwd, 0x69, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpunpcklbw, 0x60, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpunpcklbw, 0x60, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpunpckldq, 0x62, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpunpckldq, 0x62, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30074,23 +30106,23 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpunpcklqdq, 0x6c, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpunpcklqdq, 0x6c, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30098,47 +30130,47 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpunpcklwd, 0x61, 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, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpunpcklwd, 0x61, 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, 0, 1, 3, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpxor, 0xef, 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, 1, 0, 0, 1, 0, 0, 0, 1,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 34, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 1, 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, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vrcpps, 0x53, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30146,9 +30178,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vrcpss, 0x53, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30156,11 +30188,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vroundps, 0x08 | 0, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30170,9 +30202,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vroundpd, 0x08 | 1, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30182,9 +30214,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vroundss, 0x0a | 0, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30194,11 +30226,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, 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,
+ { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vroundsd, 0x0a | 1, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30208,11 +30240,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, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vrsqrtps, 0x52, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30220,9 +30252,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vrsqrtss, 0x52, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30230,11 +30262,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vshufps, 0xc6, 4, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30244,11 +30276,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vshufps, 0xc6, 4, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30258,11 +30290,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, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vshufpd, 0xc6, 4, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30272,11 +30304,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vshufpd, 0xc6, 4, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30286,11 +30318,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, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vsqrtps, 0x51, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30298,9 +30330,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vsqrtps, 0x51, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30308,9 +30340,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vsqrtpd, 0x51, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30318,9 +30350,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vsqrtpd, 0x51, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30328,9 +30360,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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_vsqrtss, 0x51, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30338,11 +30370,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vsqrtss, 0x51, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30350,11 +30382,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vsqrtsd, 0x51, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30362,11 +30394,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vsqrtsd, 0x51, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30374,11 +30406,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vstmxcsr, 0xae, 1, SPACE_0F, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30394,9 +30426,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vtestpd, 0x0e | 1, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30404,9 +30436,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vucomiss, 0x2e, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30414,9 +30446,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vucomiss, 0x2e, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30424,9 +30456,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vucomisd, 0x2e, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30434,9 +30466,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vucomisd, 0x2e, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30444,9 +30476,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vunpckhps, 0x15, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30454,11 +30486,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vunpckhps, 0x15, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30466,11 +30498,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vunpckhpd, 0x15, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30478,11 +30510,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vunpckhpd, 0x15, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30490,11 +30522,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vunpcklps, 0x14, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30502,11 +30534,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vunpcklps, 0x14, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30514,11 +30546,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vunpcklpd, 0x14, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30526,11 +30558,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vunpcklpd, 0x14, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30538,11 +30570,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vzeroall, 0x77, 0, SPACE_0F, None,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30564,95 +30596,95 @@ static const insn_template i386_optab[] =
{ 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vpblendd, 0x02, 4, SPACE_0F3A, 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, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpbroadcastb, 0x78 | 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, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vpbroadcastb, 0x78 | 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, 0, 0, 1, 1, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vpbroadcastb, 0x7a | 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, 0, 0, 1, 1, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 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_vpbroadcastw, 0x78 | 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, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vpbroadcastw, 0x78 | 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, 0, 0, 1, 1, 0, 0, 5, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vpbroadcastw, 0x7a | 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, 0, 0, 1, 1, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 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, 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, 5, 1, 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 } },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpbroadcastd, 0x7c, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30662,17 +30694,17 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 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, 0x59, 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, 1, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 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_vpbroadcastq, 0x59, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30680,9 +30712,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 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, 0x7c, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30692,45 +30724,45 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 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_vperm2i128, 0x46, 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, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vpermd, 0x36, 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, 2, 1, 1, 1, 0, 0, 5, 1, 3, 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 } },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 1, 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, 1, 1, 0, 1, 0 } },
- { { 7, 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, 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,
+ { { 8, 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 } } } },
{ MN_vpermpd, 0x01, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 2, 0, 2, 1, 0, 0, 5, 1, 4, 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 } },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 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, 0, 0, 0,
0, 0, 0, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 8, 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,
+ { { 8, 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 } } } },
{ MN_vpermpd, 0x16, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30738,35 +30770,35 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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 } },
- { { 7, 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, 1, 1, 0, 0, 0 } } } },
{ MN_vpermps, 0x16, 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, 2, 1, 1, 1, 0, 0, 5, 1, 3, 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 } },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 1, 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, 1, 1, 0, 1, 0 } },
- { { 7, 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, 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,
+ { { 8, 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 } } } },
{ MN_vpermq, 0x00, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 2, 0, 2, 1, 0, 0, 5, 1, 4, 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 } },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 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, 0, 0, 0,
0, 0, 0, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 8, 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,
+ { { 8, 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 } } } },
{ MN_vpermq, 0x36, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30774,47 +30806,47 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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 } },
- { { 7, 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, 1, 1, 0, 0, 0 } } } },
{ MN_vextracti128, 0x39, 3, 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, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vinserti128, 0x38, 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, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 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,
+ { { 8, 0, 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_vpmaskmovd, 0x8e, 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, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 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,
1, 1, 0, 0, 1, 0 } } } },
@@ -30822,23 +30854,23 @@ static const insn_template i386_optab[] =
{ 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, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vpmaskmovq, 0x8e, 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, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 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,
1, 1, 0, 0, 1, 0 } } } },
@@ -30846,85 +30878,85 @@ static const insn_template i386_optab[] =
{ 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, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vpsllvd, 0x47, 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, 5, 1, 3, 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 } },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsllvq, 0x47, 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, 2, 1, 0, 0, 5, 1, 4, 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 } },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsravd, 0x46, 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, 5, 1, 3, 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 } },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsrlvd, 0x45, 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, 5, 1, 3, 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 } },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsrlvq, 0x45, 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, 2, 1, 0, 0, 5, 1, 4, 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 } },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vgatherdpd, 0x92, 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, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
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,
+ { { 8, 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_vgatherdpd, 0x92, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30934,7 +30966,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vgatherdpd, 0x92, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30944,31 +30976,31 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 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_vgatherdps, 0x92, 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, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
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,
+ { { 8, 0, 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_vgatherdps, 0x92, 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, 2, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 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,
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,
+ { { 8, 0, 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_vgatherdps, 0x92, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30978,7 +31010,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vgatherdps, 0x92, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30988,7 +31020,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vgatherdps, 0x92, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -30998,31 +31030,31 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vgatherqps, 0x93, 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, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
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,
+ { { 8, 0, 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_vgatherqps, 0x93, 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, 2, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
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,
+ { { 8, 0, 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_vgatherqps, 0x93, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31032,7 +31064,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vgatherqps, 0x93, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31042,7 +31074,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vgatherqps, 0x93, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31052,31 +31084,31 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vgatherqpd, 0x93, 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, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
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,
+ { { 8, 0, 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_vgatherqpd, 0x93, 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, 2, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 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,
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,
+ { { 8, 0, 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_vgatherqpd, 0x93, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31086,7 +31118,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vgatherqpd, 0x93, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31096,7 +31128,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vgatherqpd, 0x93, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31106,31 +31138,31 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vpgatherdd, 0x90, 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, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
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,
+ { { 8, 0, 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_vpgatherdd, 0x90, 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, 2, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 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,
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,
+ { { 8, 0, 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_vpgatherdd, 0x90, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31140,7 +31172,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vpgatherdd, 0x90, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31150,7 +31182,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vpgatherdd, 0x90, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31160,19 +31192,19 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vpgatherdq, 0x90, 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, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
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,
+ { { 8, 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_vpgatherdq, 0x90, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31182,7 +31214,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vpgatherdq, 0x90, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31192,31 +31224,31 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 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_vpgatherqd, 0x91, 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, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
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,
+ { { 8, 0, 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_vpgatherqd, 0x91, 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, 2, 1, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
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,
+ { { 8, 0, 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_vpgatherqd, 0x91, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31226,7 +31258,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vpgatherqd, 0x91, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31236,7 +31268,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vpgatherqd, 0x91, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31246,31 +31278,31 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vpgatherqq, 0x91, 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, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
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,
+ { { 8, 0, 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_vpgatherqq, 0x91, 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, 2, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 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,
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,
+ { { 8, 0, 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_vpgatherqq, 0x91, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31280,7 +31312,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vpgatherqq, 0x91, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31290,7 +31322,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vpgatherqq, 0x91, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31300,323 +31332,323 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vaesdec, 0xde, 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, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 43, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 44, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vaesdec, 0xde, 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, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 123, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vaesdeclast, 0xdf, 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, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 43, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 44, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vaesdeclast, 0xdf, 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, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 123, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vaesenc, 0xdc, 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, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 43, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 44, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vaesenc, 0xdc, 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, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 123, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vaesenclast, 0xdd, 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, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 43, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 44, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vaesenclast, 0xdd, 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, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 123, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vaesimc, 0xdb, 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, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 43, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 44, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vaeskeygenassist, 0xdf, 3, 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, 0, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 43, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 44, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vpclmulqdq, 0x44, 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, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 44, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 45, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpclmulqdq, 0x44, 4, SPACE_0F3A, 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, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 124, 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, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpclmullqlqdq, 0x44, 3, SPACE_0F3A, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 44, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 45, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpclmullqlqdq, 0x44, 3, SPACE_0F3A, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 3, 1, 0, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 124, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpclmulhqlqdq, 0x44, 3, SPACE_0F3A, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 44, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 45, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpclmulhqlqdq, 0x44, 3, SPACE_0F3A, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 3, 1, 0, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 124, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpclmullqhqdq, 0x44, 3, SPACE_0F3A, 0x10,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 44, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 45, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpclmullqhqdq, 0x44, 3, SPACE_0F3A, 0x10,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 3, 1, 0, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 124, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpclmulhqhqdq, 0x44, 3, SPACE_0F3A, 0x11,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 44, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 45, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpclmulhqhqdq, 0x44, 3, SPACE_0F3A, 0x11,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 3, 1, 0, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 124, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vgf2p8affineinvqb, 0xcf, 4, SPACE_0F3A, 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, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 121, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 122, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vgf2p8affineinvqb, 0xcf, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 121, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+ { { 122, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vgf2p8affineqb, 0xce, 4, SPACE_0F3A, 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, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 121, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 122, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vgf2p8affineqb, 0xce, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 121, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
+ { { 122, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vgf2p8mulb, 0xcf, 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, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 122, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_rdfsbase, 0xae, 1, SPACE_0F, 0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 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 },
- { { 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -31624,7 +31656,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 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 },
- { { 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -31632,7 +31664,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -31640,7 +31672,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 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 },
- { { 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -31648,7 +31680,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 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 },
- { { 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -31656,21 +31688,21 @@ static const insn_template i386_optab[] =
{ 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, 1,
0, 0 },
- { { 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vcvtph2ps, 0x13, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vcvtph2ps, 0x13, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31678,9 +31710,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcvtph2ps, 0x13, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31688,43 +31720,43 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vcvtph2ps, 0x13, 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, 1, 1, 0, 0, 3, 1, 0, 0, 1, 4, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vcvtps2ph, 0x1d, 3, 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, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vcvtps2ph, 0x1d, 3, 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, 2, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vcvtps2ph, 0x1d, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31734,9 +31766,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, 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,
+ { { 8, 0, 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,
+ { { 8, 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 } } } },
{ MN_vcvtps2ph, 0x1d, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31746,9 +31778,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, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vcvtps2ph, 0x1d, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -31758,1089 +31790,1089 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vfmadd132ps, 0x88 | 0x10, 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, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmadd132pd, 0x88 | 0x10, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmadd132ph, 0x88 | 0x10, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfmadd213ps, 0x88 | 0x20, 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, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmadd213pd, 0x88 | 0x20, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmadd213ph, 0x88 | 0x20, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfmadd231ps, 0x88 | 0x30, 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, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmadd231pd, 0x88 | 0x30, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmadd231ph, 0x88 | 0x30, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfmsub132ps, 0x8a | 0x10, 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, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmsub132pd, 0x8a | 0x10, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmsub132ph, 0x8a | 0x10, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfmsub213ps, 0x8a | 0x20, 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, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmsub213pd, 0x8a | 0x20, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmsub213ph, 0x8a | 0x20, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfmsub231ps, 0x8a | 0x30, 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, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmsub231pd, 0x8a | 0x30, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmsub231ph, 0x8a | 0x30, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfnmadd132ps, 0x8c | 0x10, 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, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfnmadd132pd, 0x8c | 0x10, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfnmadd132ph, 0x8c | 0x10, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfnmadd213ps, 0x8c | 0x20, 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, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfnmadd213pd, 0x8c | 0x20, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfnmadd213ph, 0x8c | 0x20, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfnmadd231ps, 0x8c | 0x30, 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, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfnmadd231pd, 0x8c | 0x30, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfnmadd231ph, 0x8c | 0x30, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfnmsub132ps, 0x8e | 0x10, 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, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfnmsub132pd, 0x8e | 0x10, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfnmsub132ph, 0x8e | 0x10, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfnmsub213ps, 0x8e | 0x20, 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, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfnmsub213pd, 0x8e | 0x20, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfnmsub213ph, 0x8e | 0x20, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfnmsub231ps, 0x8e | 0x30, 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, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfnmsub231pd, 0x8e | 0x30, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfnmsub231ph, 0x8e | 0x30, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfmadd132ss, 0x88 | 1 | 0x10, 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, 3, 1, 1, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfmadd132sd, 0x88 | 1 | 0x10, 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, 3, 1, 2, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfmadd132sh, 0x88 | 1 | 0x10, 3, SPACE_MAP6, 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, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfmadd213ss, 0x88 | 1 | 0x20, 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, 3, 1, 1, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfmadd213sd, 0x88 | 1 | 0x20, 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, 3, 1, 2, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfmadd213sh, 0x88 | 1 | 0x20, 3, SPACE_MAP6, 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, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfmadd231ss, 0x88 | 1 | 0x30, 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, 3, 1, 1, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfmadd231sd, 0x88 | 1 | 0x30, 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, 3, 1, 2, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfmadd231sh, 0x88 | 1 | 0x30, 3, SPACE_MAP6, 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, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfmsub132ss, 0x8a | 1 | 0x10, 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, 3, 1, 1, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfmsub132sd, 0x8a | 1 | 0x10, 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, 3, 1, 2, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfmsub132sh, 0x8a | 1 | 0x10, 3, SPACE_MAP6, 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, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfmsub213ss, 0x8a | 1 | 0x20, 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, 3, 1, 1, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfmsub213sd, 0x8a | 1 | 0x20, 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, 3, 1, 2, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfmsub213sh, 0x8a | 1 | 0x20, 3, SPACE_MAP6, 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, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfmsub231ss, 0x8a | 1 | 0x30, 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, 3, 1, 1, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfmsub231sd, 0x8a | 1 | 0x30, 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, 3, 1, 2, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfmsub231sh, 0x8a | 1 | 0x30, 3, SPACE_MAP6, 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, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfnmadd132ss, 0x8c | 1 | 0x10, 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, 3, 1, 1, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfnmadd132sd, 0x8c | 1 | 0x10, 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, 3, 1, 2, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfnmadd132sh, 0x8c | 1 | 0x10, 3, SPACE_MAP6, 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, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfnmadd213ss, 0x8c | 1 | 0x20, 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, 3, 1, 1, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfnmadd213sd, 0x8c | 1 | 0x20, 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, 3, 1, 2, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfnmadd213sh, 0x8c | 1 | 0x20, 3, SPACE_MAP6, 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, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfnmadd231ss, 0x8c | 1 | 0x30, 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, 3, 1, 1, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfnmadd231sd, 0x8c | 1 | 0x30, 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, 3, 1, 2, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfnmadd231sh, 0x8c | 1 | 0x30, 3, SPACE_MAP6, 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, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfnmsub132ss, 0x8e | 1 | 0x10, 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, 3, 1, 1, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfnmsub132sd, 0x8e | 1 | 0x10, 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, 3, 1, 2, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfnmsub132sh, 0x8e | 1 | 0x10, 3, SPACE_MAP6, 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, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfnmsub213ss, 0x8e | 1 | 0x20, 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, 3, 1, 1, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfnmsub213sd, 0x8e | 1 | 0x20, 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, 3, 1, 2, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfnmsub213sh, 0x8e | 1 | 0x20, 3, SPACE_MAP6, 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, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfnmsub231ss, 0x8e | 1 | 0x30, 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, 3, 1, 1, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfnmsub231sd, 0x8e | 1 | 0x30, 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, 3, 1, 2, 1, 0, 0, 4, 1, 0, 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 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vfnmsub231sh, 0x8e | 1 | 0x30, 3, SPACE_MAP6, 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, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfmaddsub132ps, 0x86 | 0x10, 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, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmaddsub132pd, 0x86 | 0x10, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmaddsub132ph, 0x86 | 0x10, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfmaddsub213ps, 0x86 | 0x20, 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, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmaddsub213pd, 0x86 | 0x20, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmaddsub213ph, 0x86 | 0x20, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfmaddsub231ps, 0x86 | 0x30, 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, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmaddsub231pd, 0x86 | 0x30, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmaddsub231ph, 0x86 | 0x30, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfmsubadd132ps, 0x87 | 0x10, 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, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmsubadd132pd, 0x87 | 0x10, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmsubadd132ph, 0x87 | 0x10, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfmsubadd213ps, 0x87 | 0x20, 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, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmsubadd213pd, 0x87 | 0x20, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmsubadd213ph, 0x87 | 0x20, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfmsubadd231ps, 0x87 | 0x30, 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, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmsubadd231pd, 0x87 | 0x30, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 45, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 46, 0, 0, 0, 0, 0, 0, 0, 1, 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,
1, 1, 1, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vfmsubadd231ph, 0x87 | 0x30, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_xacquire, 0xf2, 0, SPACE_BASE, None,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -32862,7 +32894,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -32870,7 +32902,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 2, 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 },
- { { 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -32878,7 +32910,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -32887,15 +32919,15 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 60, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 61, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 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,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0 },
- { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 60, 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, 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,
@@ -32906,8 +32938,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
@@ -32918,8 +32950,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
@@ -32930,8 +32962,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
@@ -32942,8 +32974,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
@@ -32954,8 +32986,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 60, 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, 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,
@@ -32966,8 +32998,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 60, 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, 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,
@@ -32978,8 +33010,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 60, 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, 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,
@@ -32990,1809 +33022,1809 @@ static const insn_template i386_optab[] =
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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,
+ { { 8, 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_vfmaddpd, 0x68 | 1, 4, SPACE_0F3A, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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,
+ { { 8, 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_vfmsubps, 0x6c | 0, 4, SPACE_0F3A, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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,
+ { { 8, 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_vfmsubpd, 0x6c | 1, 4, SPACE_0F3A, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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,
+ { { 8, 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_vfnmaddps, 0x78 | 0, 4, SPACE_0F3A, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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,
+ { { 8, 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_vfnmaddpd, 0x78 | 1, 4, SPACE_0F3A, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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,
+ { { 8, 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_vfnmsubps, 0x7c | 0, 4, SPACE_0F3A, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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,
+ { { 8, 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_vfnmsubpd, 0x7c | 1, 4, SPACE_0F3A, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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,
+ { { 8, 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_vfmaddss, 0x68 | 2 | 0, 4, SPACE_0F3A, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 3, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfmaddsd, 0x68 | 2 | 1, 4, SPACE_0F3A, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 3, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfmsubss, 0x6c | 2 | 0, 4, SPACE_0F3A, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 3, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfmsubsd, 0x6c | 2 | 1, 4, SPACE_0F3A, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 3, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfnmaddss, 0x78 | 2 | 0, 4, SPACE_0F3A, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 3, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfnmaddsd, 0x78 | 2 | 1, 4, SPACE_0F3A, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 3, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfnmsubss, 0x7c | 2 | 0, 4, SPACE_0F3A, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 3, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfnmsubsd, 0x7c | 2 | 1, 4, SPACE_0F3A, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 3, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfmaddsubps, 0x5c | 0, 4, SPACE_0F3A, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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,
+ { { 8, 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_vfmaddsubpd, 0x5c | 1, 4, SPACE_0F3A, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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,
+ { { 8, 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_vfmsubaddps, 0x5e | 0, 4, SPACE_0F3A, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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,
+ { { 8, 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_vfmsubaddpd, 0x5e | 1, 4, SPACE_0F3A, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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,
+ { { 8, 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_vfrczps, 0x80 | 0, 2, SPACE_XOP09, 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, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vfrczpd, 0x80 | 1, 2, SPACE_XOP09, 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, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 1, 0, 0, 0, 0 } } } },
{ MN_vfrczss, 0x82 | 0, 2, SPACE_XOP09, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vfrczsd, 0x82 | 1, 2, SPACE_XOP09, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vpcmov, 0xa2, 4, SPACE_XOP08, None,
{ 1, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpcomb, 0xcc | 0x00 | 0, 4, SPACE_XOP08, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomw, 0xcc | 0x00 | 1, 4, SPACE_XOP08, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomd, 0xcc | 0x00 | 2, 4, SPACE_XOP08, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomq, 0xcc | 0x00 | 3, 4, SPACE_XOP08, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomub, 0xcc | 0x20 | 0, 4, SPACE_XOP08, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomuw, 0xcc | 0x20 | 1, 4, SPACE_XOP08, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomud, 0xcc | 0x20 | 2, 4, SPACE_XOP08, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomuq, 0xcc | 0x20 | 3, 4, SPACE_XOP08, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomltb, 0xcc | 0x00 | 0, 3, SPACE_XOP08, 0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomltw, 0xcc | 0x00 | 1, 3, SPACE_XOP08, 0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomltd, 0xcc | 0x00 | 2, 3, SPACE_XOP08, 0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomltq, 0xcc | 0x00 | 3, 3, SPACE_XOP08, 0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomltub, 0xcc | 0x20 | 0, 3, SPACE_XOP08, 0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomltuw, 0xcc | 0x20 | 1, 3, SPACE_XOP08, 0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomltud, 0xcc | 0x20 | 2, 3, SPACE_XOP08, 0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomltuq, 0xcc | 0x20 | 3, 3, SPACE_XOP08, 0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomleb, 0xcc | 0x00 | 0, 3, SPACE_XOP08, 1,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomlew, 0xcc | 0x00 | 1, 3, SPACE_XOP08, 1,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomled, 0xcc | 0x00 | 2, 3, SPACE_XOP08, 1,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomleq, 0xcc | 0x00 | 3, 3, SPACE_XOP08, 1,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomleub, 0xcc | 0x20 | 0, 3, SPACE_XOP08, 1,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomleuw, 0xcc | 0x20 | 1, 3, SPACE_XOP08, 1,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomleud, 0xcc | 0x20 | 2, 3, SPACE_XOP08, 1,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomleuq, 0xcc | 0x20 | 3, 3, SPACE_XOP08, 1,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomgtb, 0xcc | 0x00 | 0, 3, SPACE_XOP08, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomgtw, 0xcc | 0x00 | 1, 3, SPACE_XOP08, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomgtd, 0xcc | 0x00 | 2, 3, SPACE_XOP08, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomgtq, 0xcc | 0x00 | 3, 3, SPACE_XOP08, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomgtub, 0xcc | 0x20 | 0, 3, SPACE_XOP08, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomgtuw, 0xcc | 0x20 | 1, 3, SPACE_XOP08, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomgtud, 0xcc | 0x20 | 2, 3, SPACE_XOP08, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomgtuq, 0xcc | 0x20 | 3, 3, SPACE_XOP08, 2,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomgeb, 0xcc | 0x00 | 0, 3, SPACE_XOP08, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomgew, 0xcc | 0x00 | 1, 3, SPACE_XOP08, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomged, 0xcc | 0x00 | 2, 3, SPACE_XOP08, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomgeq, 0xcc | 0x00 | 3, 3, SPACE_XOP08, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomgeub, 0xcc | 0x20 | 0, 3, SPACE_XOP08, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomgeuw, 0xcc | 0x20 | 1, 3, SPACE_XOP08, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomgeud, 0xcc | 0x20 | 2, 3, SPACE_XOP08, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomgeuq, 0xcc | 0x20 | 3, 3, SPACE_XOP08, 3,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomeqb, 0xcc | 0x00 | 0, 3, SPACE_XOP08, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomeqw, 0xcc | 0x00 | 1, 3, SPACE_XOP08, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomeqd, 0xcc | 0x00 | 2, 3, SPACE_XOP08, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomeqq, 0xcc | 0x00 | 3, 3, SPACE_XOP08, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomequb, 0xcc | 0x20 | 0, 3, SPACE_XOP08, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomequw, 0xcc | 0x20 | 1, 3, SPACE_XOP08, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomequd, 0xcc | 0x20 | 2, 3, SPACE_XOP08, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomequq, 0xcc | 0x20 | 3, 3, SPACE_XOP08, 4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomneqb, 0xcc | 0x00 | 0, 3, SPACE_XOP08, 5,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomneqw, 0xcc | 0x00 | 1, 3, SPACE_XOP08, 5,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomneqd, 0xcc | 0x00 | 2, 3, SPACE_XOP08, 5,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomneqq, 0xcc | 0x00 | 3, 3, SPACE_XOP08, 5,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomnequb, 0xcc | 0x20 | 0, 3, SPACE_XOP08, 5,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomnequw, 0xcc | 0x20 | 1, 3, SPACE_XOP08, 5,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomnequd, 0xcc | 0x20 | 2, 3, SPACE_XOP08, 5,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomnequq, 0xcc | 0x20 | 3, 3, SPACE_XOP08, 5,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomfalseb, 0xcc | 0x00 | 0, 3, SPACE_XOP08, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomfalsew, 0xcc | 0x00 | 1, 3, SPACE_XOP08, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomfalsed, 0xcc | 0x00 | 2, 3, SPACE_XOP08, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomfalseq, 0xcc | 0x00 | 3, 3, SPACE_XOP08, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomfalseub, 0xcc | 0x20 | 0, 3, SPACE_XOP08, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomfalseuw, 0xcc | 0x20 | 1, 3, SPACE_XOP08, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomfalseud, 0xcc | 0x20 | 2, 3, SPACE_XOP08, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomfalseuq, 0xcc | 0x20 | 3, 3, SPACE_XOP08, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomtrueb, 0xcc | 0x00 | 0, 3, SPACE_XOP08, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomtruew, 0xcc | 0x00 | 1, 3, SPACE_XOP08, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomtrued, 0xcc | 0x00 | 2, 3, SPACE_XOP08, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomtrueq, 0xcc | 0x00 | 3, 3, SPACE_XOP08, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomtrueub, 0xcc | 0x20 | 0, 3, SPACE_XOP08, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomtrueuw, 0xcc | 0x20 | 1, 3, SPACE_XOP08, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomtrueud, 0xcc | 0x20 | 2, 3, SPACE_XOP08, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpcomtrueuq, 0xcc | 0x20 | 3, 3, SPACE_XOP08, 7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpermil2ps, 0x48 | 0, 5, SPACE_0F3A, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpermil2ps, 0x48 | 0, 5, SPACE_0F3A, 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, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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,
+ { { 8, 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_vpermil2pd, 0x48 | 1, 5, SPACE_0F3A, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpermil2pd, 0x48 | 1, 5, SPACE_0F3A, 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, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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,
+ { { 8, 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_vphaddbd, 0xc2 | 0, 2, SPACE_XOP09, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vphaddbq, 0xc2 | 1, 2, SPACE_XOP09, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vphaddbw, 0xc1, 2, SPACE_XOP09, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vphadddq, 0xcb, 2, SPACE_XOP09, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vphaddubd, 0xd2 | 0, 2, SPACE_XOP09, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vphaddubq, 0xd2 | 1, 2, SPACE_XOP09, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vphaddubw, 0xd1, 2, SPACE_XOP09, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vphaddudq, 0xdb, 2, SPACE_XOP09, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vphadduwd, 0xd6 | 0, 2, SPACE_XOP09, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vphadduwq, 0xd6 | 1, 2, SPACE_XOP09, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vphaddwd, 0xc6 | 0, 2, SPACE_XOP09, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vphaddwq, 0xc6 | 1, 2, SPACE_XOP09, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vphsubbw, 0xe1, 2, SPACE_XOP09, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vphsubdq, 0xe3, 2, SPACE_XOP09, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vphsubwd, 0xe2, 2, SPACE_XOP09, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vpmacsdd, 0x9e, 4, SPACE_XOP08, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpmacsdqh, 0x9f, 4, SPACE_XOP08, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpmacsdql, 0x97, 4, SPACE_XOP08, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpmacssdd, 0x8e, 4, SPACE_XOP08, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpmacssdqh, 0x8f, 4, SPACE_XOP08, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpmacssdql, 0x87, 4, SPACE_XOP08, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpmacsswd, 0x86, 4, SPACE_XOP08, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpmacssww, 0x85, 4, SPACE_XOP08, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpmacswd, 0x96, 4, SPACE_XOP08, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpmacsww, 0x95, 4, SPACE_XOP08, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpmadcsswd, 0xa6, 4, SPACE_XOP08, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpmadcswd, 0xb6, 4, SPACE_XOP08, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vpperm, 0xa3, 4, SPACE_XOP08, None,
{ 1, 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, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vprotb, 0x90 | 0, 3, SPACE_XOP09, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vprotb, 0xc0 | 0, 3, SPACE_XOP08, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vprotw, 0x90 | 1, 3, SPACE_XOP09, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vprotw, 0xc0 | 1, 3, SPACE_XOP08, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vprotd, 0x90 | 2, 3, SPACE_XOP09, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vprotd, 0xc0 | 2, 3, SPACE_XOP08, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vprotq, 0x90 | 3, 3, SPACE_XOP09, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vprotq, 0xc0 | 3, 3, SPACE_XOP08, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vpshab, 0x98 | 0, 3, SPACE_XOP09, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vpshaw, 0x98 | 1, 3, SPACE_XOP09, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vpshad, 0x98 | 2, 3, SPACE_XOP09, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vpshaq, 0x98 | 3, 3, SPACE_XOP09, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vpshlb, 0x94 | 0, 3, SPACE_XOP09, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vpshlw, 0x94 | 1, 3, SPACE_XOP09, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vpshld, 0x94 | 2, 3, SPACE_XOP09, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vpshlq, 0x94 | 3, 3, SPACE_XOP09, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_llwpcb, 0x12, 1, SPACE_XOP09, 0,
{ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -34800,7 +34832,7 @@ static const insn_template i386_optab[] =
{ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -34808,7 +34840,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -34820,7 +34852,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -34832,8 +34864,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0 },
- { { 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
@@ -34844,8 +34876,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0 },
- { { 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 50, 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, 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,
@@ -34856,7 +34888,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 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 },
- { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -34868,8 +34900,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0 },
- { { 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
@@ -34878,8 +34910,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0 },
- { { 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
@@ -34888,8 +34920,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1, 0 },
- { { 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
@@ -34898,7 +34930,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 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 },
- { { 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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 } },
@@ -34908,7 +34940,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 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,
1, 0 },
- { { 49, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 50, 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 } },
{ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } },
@@ -34918,7 +34950,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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 } },
@@ -34928,7 +34960,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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 } },
@@ -34938,7 +34970,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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 } },
@@ -34948,7 +34980,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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 } },
@@ -34958,7 +34990,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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 } },
@@ -34968,7 +35000,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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 } },
@@ -34978,7 +35010,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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 } },
@@ -34988,7 +35020,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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 } },
@@ -34998,7 +35030,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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 } },
@@ -35009,7 +35041,7 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 66, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 67, 0, 0, 1, 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,
@@ -35017,7 +35049,7 @@ static const insn_template i386_optab[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 66, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 67, 0, 0, 1, 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,
@@ -35034,9 +35066,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pf2id, 0x0f, 2, SPACE_0F, 0x1d,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35044,9 +35076,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pf2iw, 0x0f, 2, SPACE_0F, 0x1c,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35054,9 +35086,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pfacc, 0x0f, 2, SPACE_0F, 0xae,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35064,9 +35096,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pfadd, 0x0f, 2, SPACE_0F, 0x9e,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35074,9 +35106,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pfcmpeq, 0x0f, 2, SPACE_0F, 0xb0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35084,9 +35116,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pfcmpge, 0x0f, 2, SPACE_0F, 0x90,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35094,9 +35126,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pfcmpgt, 0x0f, 2, SPACE_0F, 0xa0,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35104,9 +35136,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pfmax, 0x0f, 2, SPACE_0F, 0xa4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35114,9 +35146,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pfmin, 0x0f, 2, SPACE_0F, 0x94,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35124,9 +35156,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pfmul, 0x0f, 2, SPACE_0F, 0xb4,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35134,9 +35166,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pfnacc, 0x0f, 2, SPACE_0F, 0x8a,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35144,9 +35176,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pfpnacc, 0x0f, 2, SPACE_0F, 0x8e,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35154,9 +35186,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pfrcp, 0x0f, 2, SPACE_0F, 0x96,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35164,9 +35196,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pfrcpit1, 0x0f, 2, SPACE_0F, 0xa6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35174,9 +35206,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pfrcpit2, 0x0f, 2, SPACE_0F, 0xb6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35184,9 +35216,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pfrsqit1, 0x0f, 2, SPACE_0F, 0xa7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35194,9 +35226,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pfrsqrt, 0x0f, 2, SPACE_0F, 0x97,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35204,9 +35236,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pfsub, 0x0f, 2, SPACE_0F, 0x9a,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35214,9 +35246,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pfsubr, 0x0f, 2, SPACE_0F, 0xaa,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35224,9 +35256,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pi2fd, 0x0f, 2, SPACE_0F, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35234,9 +35266,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pi2fw, 0x0f, 2, SPACE_0F, 0x0c,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35244,9 +35276,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pmulhrw, 0x0f, 2, SPACE_0F, 0xb7,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35254,9 +35286,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_pswapd, 0x0f, 2, SPACE_0F, 0xbb,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35264,9 +35296,9 @@ 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 } },
- { { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 7, 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,
+ { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_syscall, 0x05, 0, SPACE_0F, None,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -35296,7 +35328,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -35304,7 +35336,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -35312,7 +35344,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -35320,7 +35352,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 7, 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 },
- { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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 } },
@@ -35330,7 +35362,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -35338,7 +35370,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 },
- { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -35346,7 +35378,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -35354,7 +35386,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -35362,7 +35394,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -35370,7 +35402,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 7, 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 },
- { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -35378,7 +35410,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -35386,7 +35418,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -35394,7 +35426,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 7, 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 },
- { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -35402,7 +35434,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -35410,7 +35442,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 7, 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 },
- { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -35418,9 +35450,9 @@ static const insn_template i386_optab[] =
{ 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -35428,9 +35460,9 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -35438,53 +35470,53 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 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,
+ { { 8, 0, 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_extrq, 0x79, 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 },
- { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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_insertq, 0x79, 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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_insertq, 0x78, 4, 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_lzcnt, 0xbd, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 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 },
- { { 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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 } },
@@ -35494,7 +35526,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 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,
1, 0 },
- { { 29, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 30, 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 } },
{ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } },
@@ -35504,7 +35536,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 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 },
- { { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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 } },
@@ -35514,7 +35546,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 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,
1, 0 },
- { { 30, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 31, 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 } },
{ { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } },
@@ -35652,7 +35684,7 @@ static const insn_template i386_optab[] =
{ 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -35660,7 +35692,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -35668,7 +35700,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -35676,7 +35708,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -35684,7 +35716,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -35692,7 +35724,23 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } } } },
+ { MN_montmul2, 0xa6f0, 0, SPACE_0F, None,
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
+ 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0 } } } },
+ { MN_xmodexp, 0xa6f8, 0, SPACE_0F, None,
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
+ 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0 },
+ { { 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -35700,7 +35748,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 1, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 65, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 66, 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 } },
{ { { 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 } },
@@ -35712,7 +35760,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 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, 1,
0, 0 },
- { { 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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 } },
@@ -35722,7 +35770,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 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 },
- { { 65, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 66, 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 } },
{ { { 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 } },
@@ -35732,7 +35780,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0, 2, 0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 65, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 66, 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 } },
{ { { 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 } },
@@ -35744,7 +35792,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 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 },
- { { 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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 } },
@@ -35754,7 +35802,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 65, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 66, 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 } },
{ { { 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 } },
@@ -35764,7 +35812,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -35772,7 +35820,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -35780,7 +35828,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -35788,7 +35836,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 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 },
- { { 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -35796,89 +35844,89 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 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 },
- { { 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 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,
+ { { 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_bndmov, 0x1a, 2, SPACE_0F, None,
{ 1, 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 },
- { { 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 64, 0, 0, 0, 0, 0, 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,
+ { { { 10, 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,
+ { { 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_bndcl, 0x1a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 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 },
- { { 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+ { { 64, 0, 0, 0, 0, 0, 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, 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,
+ { { 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_bndcl, 0x1a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 64, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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,
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,
+ { { 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_bndcu, 0x1a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 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,
0, 0 },
- { { 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+ { { 64, 0, 0, 0, 0, 0, 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, 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,
+ { { 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_bndcu, 0x1a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 64, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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,
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,
+ { { 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_bndcn, 0x1b, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 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,
0, 0 },
- { { 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+ { { 64, 0, 0, 0, 0, 0, 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, 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,
+ { { 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_bndcn, 0x1b, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 63, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 64, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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,
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,
+ { { 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_bndstx, 0x1b, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 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 },
- { { 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 64, 0, 0, 0, 0, 0, 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,
+ { { { 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -35886,225 +35934,225 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 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 },
- { { 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 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,
+ { { 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
{ MN_sha1rnds4, 0xcc, 3, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_sha1nexte, 0xc8, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_sha1msg1, 0xc9, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_sha1msg2, 0xca, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_sha256rnds2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_sha256rnds2, 0xcb, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_sha256msg1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_sha256msg2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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, 1,
0, 0 },
- { { 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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,
+ { { 8, 0, 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, 1,
0, 0 },
- { { 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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, 1,
0, 0 },
- { { 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 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,
+ { { 8, 0, 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, 1,
0, 0 },
- { { 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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, 1,
0, 0 },
- { { 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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, 1,
0, 0 },
- { { 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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, 1,
0, 0 },
- { { 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_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, 0, 1, 1, 2, 0, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+ { { 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 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, 1,
0, 0 },
- { { 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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, 0, 1, 1, 3, 0, 0, 5, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+ { { 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 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, 1,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kandw, 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,
@@ -36112,23 +36160,23 @@ 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 } },
- { { { 8, 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kandnb, 0x42, 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, 1,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kandnw, 0x42, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36136,23 +36184,23 @@ 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 } },
- { { { 8, 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_korb, 0x45, 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, 1,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_korw, 0x45, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36160,23 +36208,23 @@ 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 } },
- { { { 8, 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kxnorb, 0x46, 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, 1,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kxnorw, 0x46, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36184,23 +36232,23 @@ 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 } },
- { { { 8, 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kxorb, 0x47, 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, 1,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kxorw, 0x47, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36208,29 +36256,29 @@ 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 } },
- { { { 8, 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kmovb, 0x90, 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, 0, 1, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
- { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { { 9, 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,
+ { { 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 } } } },
{ MN_kmovb, 0x91, 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, 0, 1, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
- { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -36238,11 +36286,11 @@ static const insn_template i386_optab[] =
{ 1, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 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, 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,
+ { { 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 } } } },
{ MN_kmovw, 0x90, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36250,9 +36298,9 @@ 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, 1, 0, 1, 0, 0, 0, 0 } },
- { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
+ { { { 9, 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,
+ { { 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 } } } },
{ MN_kmovw, 0x91, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36260,7 +36308,7 @@ 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, 1, 0, 1, 0, 0, 0, 0 } },
- { { { 8, 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, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -36272,17 +36320,17 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 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,
+ { { 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 } } } },
{ MN_knotb, 0x44, 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, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } } } },
{ MN_knotw, 0x44, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36290,19 +36338,19 @@ 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 } },
- { { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kortestb, 0x98, 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, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } } } },
{ MN_kortestw, 0x98, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36310,21 +36358,21 @@ 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 } },
- { { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kshiftlb, 0x32, 3, 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, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 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 } },
- { { 8, 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 } } } },
{ MN_kshiftlw, 0x32, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36334,21 +36382,21 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 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 } },
- { { 8, 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 } } } },
{ MN_kshiftrb, 0x30, 3, 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, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 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 } },
- { { 8, 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 } } } },
{ MN_kshiftrw, 0x30, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36358,9 +36406,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, 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,
+ { { 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 } },
- { { 8, 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 } } } },
{ MN_kunpckbw, 0x4b, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36368,177 +36416,177 @@ 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 } },
- { { { 8, 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_vaddph, 0x58, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vsubph, 0x5c, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vmulph, 0x59, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vdivph, 0x5e, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vminph, 0x5d, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vmaxph, 0x5f, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vaddsh, 0x58, 3, SPACE_MAP5, 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, 1, 1, 2, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vsubsh, 0x5c, 3, SPACE_MAP5, 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, 1, 1, 2, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmulsh, 0x59, 3, SPACE_MAP5, 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, 1, 1, 2, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vdivsh, 0x5e, 3, SPACE_MAP5, 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, 1, 1, 2, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vminsh, 0x5d, 3, SPACE_MAP5, 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, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vmaxsh, 0x5f, 3, SPACE_MAP5, 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, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vsqrtph, 0x51, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vsqrtsh, 0x51, 3, SPACE_MAP5, 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, 1, 1, 2, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_valignd, 0x03, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36548,11 +36596,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, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_valignq, 0x03, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36562,11 +36610,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, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vblendmps, 0x65, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36574,11 +36622,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vblendmpd, 0x65, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36586,11 +36634,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpblendmd, 0x64, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36598,11 +36646,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpblendmq, 0x64, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36610,11 +36658,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpermi2d, 0x76, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36622,11 +36670,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpermi2q, 0x76, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36634,11 +36682,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpermi2ps, 0x77, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36646,11 +36694,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpermi2pd, 0x77, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36658,11 +36706,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpermt2d, 0x7e, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36670,11 +36718,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpermt2q, 0x7e, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36682,11 +36730,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpermt2ps, 0x7f, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36694,11 +36742,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpermt2pd, 0x7f, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36706,11 +36754,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmaxsq, 0x3d, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36718,11 +36766,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmaxuq, 0x3f, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36730,11 +36778,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpminsq, 0x39, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36742,11 +36790,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpminuq, 0x3b, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36754,11 +36802,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vprolvd, 0x15, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36766,11 +36814,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vprolvq, 0x15, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36778,11 +36826,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vprorvd, 0x14, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36790,11 +36838,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vprorvq, 0x14, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36802,11 +36850,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpsravq, 0x46, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36814,11 +36862,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpternlogd, 0x25, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36828,11 +36876,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, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpternlogq, 0x25, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36842,11 +36890,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, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vbroadcastf32x4, 0x1a, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36856,7 +36904,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 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 } } } },
{ MN_vbroadcasti32x4, 0x5a, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36866,7 +36914,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 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 } } } },
{ MN_vbroadcastf64x4, 0x1b, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36876,7 +36924,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vbroadcasti64x4, 0x5b, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36886,27 +36934,27 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcomish, 0x2f, 2, SPACE_MAP5, 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, 1, 0, 0, 0, 4, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vucomish, 0x2e, 2, SPACE_MAP5, 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, 1, 0, 0, 0, 4, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcompresspd, 0x8a, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36914,9 +36962,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 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 } } } },
{ MN_vcompressps, 0x8a, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36924,9 +36972,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 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 } } } },
{ MN_vpcompressq, 0x8b, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36934,9 +36982,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 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 } } } },
{ MN_vpcompressd, 0x8b, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36944,9 +36992,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 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 } } } },
{ MN_vpscatterdd, 0xa0, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -36954,7 +37002,7 @@ 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 } },
- { { { 7, 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, 1, 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 } } } },
@@ -36964,7 +37012,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -36974,7 +37022,7 @@ 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 } },
- { { { 7, 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, 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,
0, 0, 0, 0, 1, 0 } } } },
@@ -36984,7 +37032,7 @@ 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 } },
- { { { 7, 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, 1, 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 } } } },
@@ -36994,7 +37042,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -37004,7 +37052,7 @@ 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 } },
- { { { 7, 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, 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,
0, 0, 0, 0, 1, 0 } } } },
@@ -37014,7 +37062,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -37024,7 +37072,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -37034,7 +37082,7 @@ 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 } },
- { { { 7, 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, 1, 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 } } } },
@@ -37044,7 +37092,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -37054,7 +37102,7 @@ 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 } },
- { { { 7, 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, 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,
0, 0, 0, 0, 1, 0 } } } },
@@ -37064,7 +37112,7 @@ 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 } },
- { { { 7, 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, 1, 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 } } } },
@@ -37074,7 +37122,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -37084,7 +37132,7 @@ 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 } },
- { { { 7, 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, 1, 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 } } } },
@@ -37094,7 +37142,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -37104,7 +37152,7 @@ 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 } },
- { { { 7, 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, 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,
0, 0, 0, 0, 1, 0 } } } },
@@ -37114,7 +37162,7 @@ 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 } },
- { { { 7, 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, 1, 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 } } } },
@@ -37124,7 +37172,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -37134,7 +37182,7 @@ 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 } },
- { { { 7, 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, 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,
0, 0, 0, 0, 1, 0 } } } },
@@ -37144,7 +37192,7 @@ 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 } },
- { { { 7, 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, 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,
0, 0, 0, 0, 1, 0 } } } },
@@ -37154,7 +37202,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -37164,7 +37212,7 @@ 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 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 1, 0 } } } },
@@ -37174,9 +37222,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcvtudq2pd, 0x7a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37184,9 +37232,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtudq2pd, 0x7a, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37194,9 +37242,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtps2udq, 0x79, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37204,9 +37252,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vcvtpd2udq, 0x79, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37214,29 +37262,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtpd2udq, 0x79, 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, 2, 0, 0, 0, 5, 1, 4, 1, 1, 7, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 5, 1, 4, 0, 0, 7, 0, 1, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtpd2udq, 0x79, 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, 2, 0, 0, 0, 5, 1, 4, 1, 1, 7, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 5, 1, 4, 0, 0, 7, 0, 2, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtpd2udqx, 0x79, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37244,19 +37292,19 @@ static const insn_template i386_optab[] =
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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vcvtpd2udqy, 0x79, 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, 2, 0, 0, 0, 3, 1, 4, 1, 1, 5, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 1, 4, 0, 0, 5, 0, 2, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtss2usi, 0x79, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37264,7 +37312,7 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -37274,7 +37322,7 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -37282,9 +37330,9 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 4, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -37296,9 +37344,9 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtusi2sd, 0x7b, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
@@ -37308,9 +37356,9 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtusi2sd, 0x7b, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0,
@@ -37320,9 +37368,9 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtusi2sd, 0x7b, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
@@ -37332,9 +37380,9 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtusi2ss, 0x7b, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -37344,9 +37392,9 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtusi2ss, 0x7b, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
@@ -37356,9 +37404,9 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvttpd2udq, 0x78, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37366,29 +37414,29 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttpd2udq, 0x78, 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, 2, 0, 0, 0, 5, 1, 4, 0, 1, 7, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 5, 1, 4, 0, 0, 7, 0, 1, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttpd2udq, 0x78, 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, 2, 0, 0, 0, 5, 1, 4, 0, 1, 7, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 5, 1, 4, 0, 0, 7, 0, 2, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttpd2udqx, 0x78, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37396,19 +37444,19 @@ static const insn_template i386_optab[] =
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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vcvttpd2udqy, 0x78, 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, 2, 0, 0, 0, 3, 1, 4, 0, 1, 5, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 1, 4, 0, 0, 5, 0, 2, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttps2udq, 0x78, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37416,9 +37464,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vcvttss2usi, 0x78, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37426,7 +37474,7 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -37436,7 +37484,7 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -37444,9 +37492,9 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 4, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -37456,9 +37504,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vexpandpd, 0x88, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37466,9 +37514,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vpexpandq, 0x89, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37476,9 +37524,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vexpandps, 0x88, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37486,9 +37534,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vpexpandd, 0x89, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37496,9 +37544,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vextractf32x4, 0x19, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37508,9 +37556,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, 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,
+ { { 8, 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 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vextracti32x4, 0x39, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37520,9 +37568,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, 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,
+ { { 8, 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 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vextractf64x4, 0x1b, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37532,9 +37580,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, 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,
+ { { 8, 0, 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,
+ { { 8, 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 } } } },
{ MN_vextracti64x4, 0x3b, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37544,9 +37592,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, 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,
+ { { 8, 0, 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,
+ { { 8, 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 } } } },
{ MN_vfixupimmps, 0x54, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37556,11 +37604,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, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfixupimmpd, 0x54, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37570,11 +37618,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, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfixupimmss, 0x55, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37584,11 +37632,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, 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,
+ { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfixupimmsd, 0x55, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37598,11 +37646,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, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vgetmantps, 0x26, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37612,9 +37660,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, 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,
+ { { 8, 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,
+ { { 8, 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_vgetmantpd, 0x26, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37624,21 +37672,21 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vgetmantph, 0x26, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vgetmantss, 0x27, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37648,11 +37696,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, 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,
+ { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vgetmantsd, 0x27, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37662,25 +37710,25 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vgetmantsh, 0x27, 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, 0, 1, 1, 0, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vrndscaleps, 0x08 | 0, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37690,9 +37738,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, 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,
+ { { 8, 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,
+ { { 8, 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_vrndscalepd, 0x08 | 1, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37702,21 +37750,21 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vrndscaleph, 0x08 | 0, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vrndscaless, 0x0a | 0, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37726,11 +37774,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, 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,
+ { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vrndscalesd, 0x0a | 1, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37740,25 +37788,25 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vrndscalesh, 0x0a | 0, 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, 0, 1, 1, 0, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vscalefps, 0x2c, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37766,11 +37814,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vscalefpd, 0x2c, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37778,23 +37826,23 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vscalefph, 0x2c, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vscalefss, 0x2d, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37802,11 +37850,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vscalefsd, 0x2d, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37814,23 +37862,23 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vscalefsh, 0x2d, 3, SPACE_MAP6, 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, 1, 1, 1, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vgetexpps, 0x42, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37838,9 +37886,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vgetexppd, 0x42, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37848,19 +37896,19 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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_vgetexpph, 0x42, 2, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vgetexpss, 0x43, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37868,11 +37916,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vgetexpsd, 0x43, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37880,23 +37928,23 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vgetexpsh, 0x43, 3, SPACE_MAP6, 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, 1, 1, 1, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vinsertf32x4, 0x18, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37906,11 +37954,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 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,
+ { { 8, 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 } } } },
{ MN_vinserti32x4, 0x38, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37920,11 +37968,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 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,
+ { { 8, 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 } } } },
{ MN_vinsertf64x4, 0x1a, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37934,11 +37982,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, 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,
+ { { 8, 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,
+ { { 8, 0, 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, 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, 1, 0, 0, 0 } } } },
{ MN_vinserti64x4, 0x3a, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37948,11 +37996,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, 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,
+ { { 8, 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,
+ { { 8, 0, 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, 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, 1, 0, 0, 0 } } } },
{ MN_vmovdqa64, 0x6f, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37960,9 +38008,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vmovdqa32, 0x6f, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37970,9 +38018,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vmovdqu32, 0x6f, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37980,9 +38028,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vmovdqu64, 0x6f, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -37990,31 +38038,31 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vmovsh, 0x10, 2, SPACE_MAP5, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 2, 0, 0, 4, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vmovsh, 0x10, 3, SPACE_MAP5, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vpabsq, 0x1e | 1, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38022,9 +38070,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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_vpandd, 0xdb, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38032,11 +38080,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpandq, 0xdb, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38044,11 +38092,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpandnd, 0xdf, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38056,11 +38104,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpandnq, 0xdf, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38068,11 +38116,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpord, 0xeb, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38080,11 +38128,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vporq, 0xeb, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38092,11 +38140,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpxord, 0xef, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38104,11 +38152,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpxorq, 0xef, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38116,11 +38164,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpcmpd, 0x1f, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38130,11 +38178,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, 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,
+ { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpq, 0x1f, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38144,11 +38192,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, 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,
+ { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpud, 0x1e, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38158,11 +38206,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, 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,
+ { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpuq, 0x1e, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38172,11 +38220,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, 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,
+ { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpltd, 0x1f, 3, SPACE_0F3A, 1,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38184,11 +38232,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpltq, 0x1f, 3, SPACE_0F3A, 1,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38196,11 +38244,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpled, 0x1f, 3, SPACE_0F3A, 2,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38208,11 +38256,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpleq, 0x1f, 3, SPACE_0F3A, 2,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38220,11 +38268,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpneqd, 0x1f, 3, SPACE_0F3A, 4,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38232,11 +38280,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpneqq, 0x1f, 3, SPACE_0F3A, 4,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38244,11 +38292,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpnltd, 0x1f, 3, SPACE_0F3A, 5,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38256,11 +38304,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpnltq, 0x1f, 3, SPACE_0F3A, 5,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38268,11 +38316,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpnled, 0x1f, 3, SPACE_0F3A, 6,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38280,11 +38328,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpnleq, 0x1f, 3, SPACE_0F3A, 6,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38292,11 +38340,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpequd, 0x1e, 3, SPACE_0F3A, 0,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38304,11 +38352,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpequq, 0x1e, 3, SPACE_0F3A, 0,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38316,11 +38364,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpltud, 0x1e, 3, SPACE_0F3A, 1,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38328,11 +38376,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpltuq, 0x1e, 3, SPACE_0F3A, 1,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38340,11 +38388,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpleud, 0x1e, 3, SPACE_0F3A, 2,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38352,11 +38400,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpleuq, 0x1e, 3, SPACE_0F3A, 2,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38364,11 +38412,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpnequd, 0x1e, 3, SPACE_0F3A, 4,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38376,11 +38424,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpnequq, 0x1e, 3, SPACE_0F3A, 4,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38388,11 +38436,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpnltud, 0x1e, 3, SPACE_0F3A, 5,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38400,11 +38448,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpnltuq, 0x1e, 3, SPACE_0F3A, 5,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38412,11 +38460,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpnleud, 0x1e, 3, SPACE_0F3A, 6,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38424,11 +38472,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpnleuq, 0x1e, 3, SPACE_0F3A, 6,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38436,11 +38484,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vptestmd, 0x27, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38448,11 +38496,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vptestmq, 0x27, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38460,11 +38508,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vptestnmd, 0x27, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38472,11 +38520,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vptestnmq, 0x27, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38484,11 +38532,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpmovdb, 0x31, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38496,9 +38544,9 @@ 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 } },
- { { { 7, 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, 1, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovdb, 0x31, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38506,9 +38554,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 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 } } } },
{ MN_vpmovdb, 0x31, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38516,9 +38564,9 @@ 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 } },
- { { { 7, 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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovsdb, 0x21, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38526,9 +38574,9 @@ 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 } },
- { { { 7, 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, 1, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovsdb, 0x21, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38536,9 +38584,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 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 } } } },
{ MN_vpmovsdb, 0x21, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38546,9 +38594,9 @@ 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 } },
- { { { 7, 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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovusdb, 0x11, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38556,9 +38604,9 @@ 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 } },
- { { { 7, 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, 1, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovusdb, 0x11, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38566,9 +38614,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 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 } } } },
{ MN_vpmovusdb, 0x11, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38576,9 +38624,9 @@ 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 } },
- { { { 7, 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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovdw, 0x33, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38586,9 +38634,9 @@ 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 } },
- { { { 7, 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, 1, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 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 } } } },
{ MN_vpmovdw, 0x33, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38596,9 +38644,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovdw, 0x33, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38606,9 +38654,9 @@ 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 } },
- { { { 7, 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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovsdw, 0x23, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38616,9 +38664,9 @@ 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 } },
- { { { 7, 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, 1, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 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 } } } },
{ MN_vpmovsdw, 0x23, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38626,9 +38674,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovsdw, 0x23, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38636,9 +38684,9 @@ 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 } },
- { { { 7, 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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovusdw, 0x13, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38646,9 +38694,9 @@ 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 } },
- { { { 7, 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, 1, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 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 } } } },
{ MN_vpmovusdw, 0x13, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38656,9 +38704,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovusdw, 0x13, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38666,9 +38714,9 @@ 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 } },
- { { { 7, 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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovqb, 0x32, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38676,9 +38724,9 @@ 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 } },
- { { { 7, 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, 1, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovqb, 0x32, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38686,9 +38734,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 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 } } } },
{ MN_vpmovqb, 0x32, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38696,9 +38744,9 @@ 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 } },
- { { { 7, 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, 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,
+ { { 8, 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 } } } },
{ MN_vpmovsqb, 0x22, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38706,9 +38754,9 @@ 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 } },
- { { { 7, 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, 1, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovsqb, 0x22, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38716,9 +38764,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 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 } } } },
{ MN_vpmovsqb, 0x22, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38726,9 +38774,9 @@ 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 } },
- { { { 7, 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, 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,
+ { { 8, 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 } } } },
{ MN_vpmovusqb, 0x12, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38736,9 +38784,9 @@ 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 } },
- { { { 7, 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, 1, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovusqb, 0x12, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38746,9 +38794,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 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 } } } },
{ MN_vpmovusqb, 0x12, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38756,9 +38804,9 @@ 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 } },
- { { { 7, 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, 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,
+ { { 8, 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 } } } },
{ MN_vpmovqd, 0x35, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38766,9 +38814,9 @@ 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 } },
- { { { 7, 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, 1, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 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 } } } },
{ MN_vpmovqd, 0x35, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38776,9 +38824,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovqd, 0x35, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38786,9 +38834,9 @@ 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 } },
- { { { 7, 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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovsqd, 0x25, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38796,9 +38844,9 @@ 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 } },
- { { { 7, 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, 1, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 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 } } } },
{ MN_vpmovsqd, 0x25, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38806,9 +38854,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovsqd, 0x25, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38816,9 +38864,9 @@ 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 } },
- { { { 7, 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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovusqd, 0x15, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38826,9 +38874,9 @@ 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 } },
- { { { 7, 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, 1, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 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 } } } },
{ MN_vpmovusqd, 0x15, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38836,9 +38884,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovusqd, 0x15, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38846,9 +38894,9 @@ 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 } },
- { { { 7, 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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovqw, 0x34, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38856,9 +38904,9 @@ 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 } },
- { { { 7, 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, 1, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovqw, 0x34, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38866,9 +38914,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 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 } } } },
{ MN_vpmovqw, 0x34, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38876,9 +38924,9 @@ 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 } },
- { { { 7, 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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovsqw, 0x24, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38886,9 +38934,9 @@ 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 } },
- { { { 7, 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, 1, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovsqw, 0x24, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38896,9 +38944,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 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 } } } },
{ MN_vpmovsqw, 0x24, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38906,9 +38954,9 @@ 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 } },
- { { { 7, 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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovusqw, 0x14, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38916,9 +38964,9 @@ 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 } },
- { { { 7, 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, 1, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovusqw, 0x14, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38926,9 +38974,9 @@ 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 } },
- { { { 7, 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,
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,
+ { { 8, 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 } } } },
{ MN_vpmovusqw, 0x14, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38936,9 +38984,9 @@ 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 } },
- { { { 7, 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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vprold, 0x72, 3, SPACE_0F, 1,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38948,9 +38996,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, 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,
+ { { 8, 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,
+ { { 8, 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_vprolq, 0x72, 3, SPACE_0F, 1,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38960,9 +39008,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, 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,
+ { { 8, 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,
+ { { 8, 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_vprord, 0x72, 3, SPACE_0F, 0,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38972,9 +39020,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, 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,
+ { { 8, 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,
+ { { 8, 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_vprorq, 0x72, 3, SPACE_0F, 0,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38984,9 +39032,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, 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,
+ { { 8, 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,
+ { { 8, 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_vpsraq, 0xe2, 3, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -38994,11 +39042,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpsraq, 0x72, 3, SPACE_0F, 4,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -39008,9 +39056,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, 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,
+ { { 8, 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,
+ { { 8, 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_vrcp14ps, 0x4c, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -39018,9 +39066,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vrcp14pd, 0x4c, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -39028,9 +39076,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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_vrcp14ss, 0x4d, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -39038,11 +39086,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vrcp14sd, 0x4d, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -39050,11 +39098,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vrsqrt14ps, 0x4e, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -39062,9 +39110,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vrsqrt14pd, 0x4e, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -39072,9 +39120,9 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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_vrsqrt14ss, 0x4f, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -39082,11 +39130,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vrsqrt14sd, 0x4f, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -39094,11 +39142,11 @@ 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vshuff32x4, 0x23, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -39108,11 +39156,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, 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,
+ { { 8, 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,
+ { { 8, 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 } },
- { { 7, 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, 1, 1, 0, 0, 0 } } } },
{ MN_vshufi32x4, 0x43, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -39122,11 +39170,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, 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,
+ { { 8, 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,
+ { { 8, 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 } },
- { { 7, 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, 1, 1, 0, 0, 0 } } } },
{ MN_vshuff64x2, 0x23, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -39136,11 +39184,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, 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,
+ { { 8, 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,
+ { { 8, 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 } },
- { { 7, 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, 1, 1, 0, 0, 0 } } } },
{ MN_vshufi64x2, 0x43, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -39150,185 +39198,185 @@ static const insn_template i386_optab[] =
{ { 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,
+ { { 8, 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,
+ { { 8, 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 } },
- { { 7, 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, 1, 1, 0, 0, 0 } } } },
{ MN_vpbroadcastmb2q, 0x2a, 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, 2, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 36, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 7, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpbroadcastmw2d, 0x3a, 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, 1, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 36, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 7, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpconflictd, 0xc4, 2, 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, 0, 0, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vpconflictq, 0xc4, 2, 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, 0, 0, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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_vplzcntd, 0x44, 2, 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, 0, 0, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vplzcntq, 0x44, 2, 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, 0, 0, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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_vexp2ps, 0xc8, 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, 1, 1, 0, 0, 1, 1, 3, 0, 1, 6, 0, 0, 0, 0, 0,
0, 0 },
- { { 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 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, 1, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0 } } } },
{ MN_vexp2pd, 0xc8, 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, 2, 1, 0, 0, 1, 1, 4, 0, 1, 6, 0, 0, 0, 0, 0,
0, 0 },
- { { 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vrcp28ps, 0xca, 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, 1, 1, 0, 0, 1, 1, 3, 0, 1, 6, 0, 0, 0, 0, 0,
0, 0 },
- { { 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 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, 1, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0 } } } },
{ MN_vrcp28pd, 0xca, 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, 2, 1, 0, 0, 1, 1, 4, 0, 1, 6, 0, 0, 0, 0, 0,
0, 0 },
- { { 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vrcp28ss, 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, 0, 1, 1, 1, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vrcp28sd, 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, 0, 1, 2, 1, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vrsqrt28ps, 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, 0, 0, 1, 1, 0, 0, 1, 1, 3, 0, 1, 6, 0, 0, 0, 0, 0,
0, 0 },
- { { 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 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, 1, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0 } } } },
{ MN_vrsqrt28pd, 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, 0, 0, 2, 1, 0, 0, 1, 1, 4, 0, 1, 6, 0, 0, 0, 0, 0,
0, 0 },
- { { 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vrsqrt28ss, 0xcd, 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, 0, 1, 1, 1, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vrsqrt28sd, 0xcd, 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, 0, 1, 2, 1, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vgatherpf0dpd, 0xc6, 1, SPACE_0F38, 1,
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 1, 2, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 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, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -39336,7 +39384,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 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, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -39344,7 +39392,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 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, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -39352,7 +39400,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 1, 3, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 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, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -39360,7 +39408,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 1, 2, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 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, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -39368,7 +39416,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 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, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -39376,7 +39424,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 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, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -39384,7 +39432,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 1, 3, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 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, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -39392,7 +39440,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 1, 2, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 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, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -39400,7 +39448,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 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, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -39408,7 +39456,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 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, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -39416,7 +39464,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 1, 3, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 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, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -39424,7 +39472,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 1, 2, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 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, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -39432,7 +39480,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 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, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -39440,7 +39488,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 3, 0, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 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, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -39448,7 +39496,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 1, 3, 0, 1, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 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, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -39456,7 +39504,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 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 },
- { { 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -39464,7 +39512,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 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 },
- { { 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -39472,7 +39520,7 @@ static const insn_template i386_optab[] =
{ 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, 1,
0, 0 },
- { { 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -39480,7 +39528,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 3, 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, 1,
0, 0 },
- { { 73, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 74, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 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, 1, 0 } } } },
@@ -39488,7 +39536,7 @@ static const insn_template i386_optab[] =
{ 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, 1,
0, 0 },
- { { 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -39496,7 +39544,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 3, 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, 1,
0, 0 },
- { { 73, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 74, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 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, 1, 0 } } } },
@@ -39504,7 +39552,7 @@ static const insn_template i386_optab[] =
{ 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, 1,
0, 0 },
- { { 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -39512,7 +39560,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 3, 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, 1,
0, 0 },
- { { 74, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 75, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 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, 1, 0 } } } },
@@ -39520,7 +39568,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -39528,7 +39576,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -39536,7 +39584,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -39544,91 +39592,91 @@ static const insn_template i386_optab[] =
{ 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, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kaddq, 0x4a, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kandd, 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, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kandq, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kandnd, 0x42, 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, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kandnq, 0x42, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kmovd, 0x90, 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, 0, 2, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
- { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { { 9, 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,
+ { { 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 } } } },
{ MN_kmovd, 0x91, 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, 0, 2, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
- { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -39636,29 +39684,29 @@ static const insn_template i386_optab[] =
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 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, 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,
+ { { 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 } } } },
{ MN_kmovq, 0x90, 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, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
- { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { { 9, 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,
+ { { 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 } } } },
{ MN_kmovq, 0x91, 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, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
- { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -39666,1715 +39714,1715 @@ static const insn_template i386_optab[] =
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 2, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 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, 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,
+ { { 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 } } } },
{ MN_knotd, 0x44, 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, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } } } },
{ MN_knotq, 0x44, 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, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } } } },
{ MN_kord, 0x45, 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, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_korq, 0x45, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kortestd, 0x98, 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, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } } } },
{ MN_kortestq, 0x98, 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, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } } } },
{ MN_ktestd, 0x99, 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, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } } } },
{ MN_ktestq, 0x99, 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, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } } } },
{ MN_kxnord, 0x46, 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, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kxnorq, 0x46, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kxord, 0x47, 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, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kxorq, 0x47, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kunpckdq, 0x4b, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kunpckwd, 0x4b, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kshiftld, 0x33, 3, 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, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 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 } },
- { { 8, 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 } } } },
{ MN_kshiftlq, 0x33, 3, 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, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 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 } },
- { { 8, 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 } } } },
{ MN_kshiftrd, 0x31, 3, 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, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 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 } },
- { { 8, 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 } } } },
{ MN_kshiftrq, 0x31, 3, 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, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 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 } },
- { { 8, 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 } } } },
{ MN_vdbpsadbw, 0x42, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vmovdqu8, 0x6f, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 3, 0, 0, 5, 1, 0, 0, 0, 7, 1, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vmovdqu16, 0x6f, 2, SPACE_0F, None,
{ 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 3, 0, 0, 5, 1, 0, 0, 0, 7, 1, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vpblendmb, 0x66, 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, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpblendmw, 0x66, 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, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpermi2b, 0x75, 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, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpermi2w, 0x75, 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, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpermt2b, 0x7d, 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, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpermt2w, 0x7d, 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, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpermb, 0x8d, 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, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpermw, 0x8d, 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, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpsllvw, 0x12, 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, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpsravw, 0x11, 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, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpsrlvw, 0x10, 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, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpcmpb, 0x3f, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpw, 0x3f, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpub, 0x3e, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpuw, 0x3e, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpltb, 0x3f, 3, SPACE_0F3A, 1,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpltw, 0x3f, 3, SPACE_0F3A, 1,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpleb, 0x3f, 3, SPACE_0F3A, 2,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmplew, 0x3f, 3, SPACE_0F3A, 2,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpneqb, 0x3f, 3, SPACE_0F3A, 4,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpneqw, 0x3f, 3, SPACE_0F3A, 4,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpnltb, 0x3f, 3, SPACE_0F3A, 5,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpnltw, 0x3f, 3, SPACE_0F3A, 5,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpnleb, 0x3f, 3, SPACE_0F3A, 6,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpnlew, 0x3f, 3, SPACE_0F3A, 6,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpequb, 0x3e, 3, SPACE_0F3A, 0,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpequw, 0x3e, 3, SPACE_0F3A, 0,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpltub, 0x3e, 3, SPACE_0F3A, 1,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpltuw, 0x3e, 3, SPACE_0F3A, 1,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpleub, 0x3e, 3, SPACE_0F3A, 2,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpleuw, 0x3e, 3, SPACE_0F3A, 2,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpnequb, 0x3e, 3, SPACE_0F3A, 4,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpnequw, 0x3e, 3, SPACE_0F3A, 4,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpnltub, 0x3e, 3, SPACE_0F3A, 5,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpnltuw, 0x3e, 3, SPACE_0F3A, 5,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpnleub, 0x3e, 3, SPACE_0F3A, 6,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpcmpnleuw, 0x3e, 3, SPACE_0F3A, 6,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vpmovb2m, 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, 1, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 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 } } } },
{ MN_vpmovw2m, 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, 2, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 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 } } } },
{ MN_vpmovm2b, 0x28, 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, 1, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 7, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmovm2w, 0x28, 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, 2, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 7, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmovwb, 0x30, 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, 1, 2, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 1, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 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 } } } },
{ MN_vpmovwb, 0x30, 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, 1, 2, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovwb, 0x30, 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, 1, 2, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovswb, 0x20, 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, 1, 2, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 1, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 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 } } } },
{ MN_vpmovswb, 0x20, 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, 1, 2, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovswb, 0x20, 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, 1, 2, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovuswb, 0x10, 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, 1, 2, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 1, 0, 0, 0 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 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 } } } },
{ MN_vpmovuswb, 0x10, 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, 1, 2, 0, 0, 2, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vpmovuswb, 0x10, 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, 1, 2, 0, 0, 3, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vptestmb, 0x26, 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, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vptestmw, 0x26, 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, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vptestnmb, 0x26, 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, 0, 1, 1, 2, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vptestnmw, 0x26, 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, 0, 1, 2, 2, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_kaddb, 0x4a, 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, 1,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_kaddw, 0x4a, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_ktestb, 0x99, 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, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } } } },
{ MN_ktestw, 0x99, 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, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 8, 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 } } } },
{ MN_vbroadcastf32x2, 0x19, 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, 1, 1, 0, 0, 5, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 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 } } } },
{ MN_vbroadcastf32x8, 0x1b, 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, 1, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vbroadcasti32x2, 0x59, 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, 1, 1, 0, 0, 5, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 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_vbroadcasti32x8, 0x5b, 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, 1, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vbroadcastf64x2, 0x1a, 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, 2, 1, 0, 0, 5, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 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 } } } },
{ MN_vbroadcasti64x2, 0x5a, 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, 2, 1, 0, 0, 5, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 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 } } } },
{ MN_vcvtpd2qq, 0x7b, 2, 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, 0, 0, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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_vcvtpd2uqq, 0x79, 2, 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, 0, 0, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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_vcvtps2qq, 0x7b, 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, 1, 1, 0, 0, 1, 1, 3, 1, 1, 5, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcvtps2qq, 0x7b, 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, 1, 1, 0, 0, 2, 1, 3, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtps2qq, 0x7b, 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, 1, 1, 0, 0, 3, 1, 3, 1, 1, 4, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 3, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtps2uqq, 0x79, 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, 1, 1, 0, 0, 1, 1, 3, 1, 1, 5, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcvtps2uqq, 0x79, 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, 1, 1, 0, 0, 2, 1, 3, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtps2uqq, 0x79, 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, 1, 1, 0, 0, 3, 1, 3, 1, 1, 4, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 3, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtqq2pd, 0xe6, 2, 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, 0, 0, 2, 2, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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_vcvtuqq2pd, 0x7a, 2, 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, 0, 0, 2, 2, 0, 0, 5, 1, 4, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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_vcvtqq2ps, 0x5b, 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, 2, 0, 0, 0, 1, 1, 4, 1, 1, 6, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtqq2ps, 0x5b, 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, 2, 0, 0, 0, 5, 1, 4, 1, 1, 7, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 5, 1, 4, 0, 0, 7, 0, 1, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtqq2ps, 0x5b, 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, 2, 0, 0, 0, 5, 1, 4, 1, 1, 7, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 5, 1, 4, 0, 0, 7, 0, 2, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtqq2psx, 0x5b, 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, 2, 0, 0, 0, 2, 1, 4, 0, 0, 4, 0, 2, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vcvtqq2psy, 0x5b, 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, 2, 0, 0, 0, 3, 1, 4, 1, 1, 5, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 1, 4, 0, 0, 5, 0, 2, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttpd2qq, 0x7a, 2, 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, 0, 0, 2, 1, 0, 0, 5, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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_vcvttpd2uqq, 0x78, 2, 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, 0, 0, 2, 1, 0, 0, 5, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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_vcvttps2qq, 0x7a, 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, 1, 1, 0, 0, 1, 1, 3, 0, 1, 5, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcvttps2qq, 0x7a, 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, 1, 1, 0, 0, 2, 1, 3, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttps2qq, 0x7a, 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, 1, 1, 0, 0, 3, 1, 3, 0, 1, 4, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 3, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttps2uqq, 0x78, 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, 1, 1, 0, 0, 1, 1, 3, 0, 1, 5, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcvttps2uqq, 0x78, 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, 1, 1, 0, 0, 2, 1, 3, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttps2uqq, 0x78, 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, 1, 1, 0, 0, 3, 1, 3, 0, 1, 4, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 3, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtuqq2ps, 0x7a, 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, 2, 3, 0, 0, 1, 1, 4, 1, 1, 6, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtuqq2ps, 0x7a, 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, 2, 3, 0, 0, 5, 1, 4, 1, 1, 7, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 3, 0, 0, 5, 1, 4, 0, 0, 7, 0, 1, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtuqq2ps, 0x7a, 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, 2, 3, 0, 0, 5, 1, 4, 1, 1, 7, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 3, 0, 0, 5, 1, 4, 0, 0, 7, 0, 2, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtuqq2psx, 0x7a, 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, 2, 3, 0, 0, 2, 1, 4, 0, 0, 4, 0, 2, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vcvtuqq2psy, 0x7a, 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, 2, 3, 0, 0, 3, 1, 4, 1, 1, 5, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 3, 0, 0, 3, 1, 4, 0, 0, 5, 0, 2, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vextractf32x8, 0x1b, 3, 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 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 } } } },
{ MN_vextracti32x8, 0x3b, 3, 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, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 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 } } } },
{ MN_vinsertf32x8, 0x1a, 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, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 0, 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, 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, 1, 0, 0, 0 } } } },
{ MN_vinserti32x8, 0x3a, 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, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 0, 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, 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, 1, 0, 0, 0 } } } },
{ MN_vextractf64x2, 0x19, 3, 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, 0, 0, 2, 1, 0, 0, 5, 1, 0, 0, 0, 4, 1, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vextracti64x2, 0x39, 3, 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, 0, 0, 2, 1, 0, 0, 5, 1, 0, 0, 0, 4, 1, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } } } },
{ MN_vinsertf64x2, 0x18, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 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,
+ { { 8, 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 } } } },
{ MN_vinserti64x2, 0x38, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 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,
+ { { 8, 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 } } } },
{ MN_vfpclassps, 0x66, 3, 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, 0, 0, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 1, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_vfpclassps, 0x66, 3, 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, 0, 0, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 2, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 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,
+ { { 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 } } } },
{ MN_vfpclasspsz, 0x66, 3, 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, 0, 0, 1, 1, 0, 0, 1, 1, 3, 0, 0, 6, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_vfpclasspsx, 0x66, 3, 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, 0, 0, 1, 1, 0, 0, 2, 1, 3, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_vfpclasspsy, 0x66, 3, 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, 0, 0, 1, 1, 0, 0, 3, 1, 3, 0, 0, 5, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_vfpclasspd, 0x66, 3, 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, 0, 0, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 1, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_vfpclasspd, 0x66, 3, 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, 0, 0, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 2, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_vfpclasspdz, 0x66, 3, 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, 0, 0, 2, 1, 0, 0, 1, 1, 4, 0, 0, 6, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_vfpclasspdx, 0x66, 3, 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, 0, 0, 2, 1, 0, 0, 2, 1, 4, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 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,
+ { { 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 } } } },
{ MN_vfpclasspdy, 0x66, 3, 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, 0, 0, 2, 1, 0, 0, 3, 1, 4, 0, 0, 5, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_vfpclassss, 0x67, 3, 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, 0, 0, 1, 1, 0, 0, 4, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_vfpclasssd, 0x67, 3, 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, 0, 0, 2, 1, 0, 0, 4, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
1, 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,
+ { { 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 } } } },
{ MN_vfpclasssh, 0x67, 3, 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, 0, 0, 1, 0, 0, 0, 4, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_vpmovd2m, 0x39, 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, 1, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 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 } } } },
{ MN_vpmovq2m, 0x39, 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, 2, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 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 } } } },
{ MN_vpmovm2d, 0x38, 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, 1, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 7, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmovm2q, 0x38, 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, 2, 2, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 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,
+ { { { 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 } },
- { { 7, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmullq, 0x40, 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, 0, 1, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vrangeps, 0x50, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vrangepd, 0x50, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 2, 1, 0, 0, 5, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vrangess, 0x51, 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, 0, 1, 1, 1, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vrangesd, 0x51, 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, 0, 1, 2, 1, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vreduceps, 0x56, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 0, 0, 5, 1, 3, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vreducepd, 0x56, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 1, 0, 0, 5, 1, 4, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vreduceph, 0x56, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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_vreducess, 0x57, 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, 0, 1, 1, 1, 0, 0, 4, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vreducesd, 0x57, 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, 0, 1, 2, 1, 0, 0, 4, 1, 0, 0, 1, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vreducesh, 0x57, 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, 0, 1, 1, 0, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_clwb, 0xae, 1, SPACE_0F, 6,
{ 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 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 },
- { { 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -41382,457 +41430,457 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmadd52huq, 0xb5, 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, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpmadd52luq, 0xb4, 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, 0, 1, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpmadd52luq, 0xb4, 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, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpmultishiftqb, 0x83, 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, 0, 1, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_v4fmaddps, 0x9a, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 3, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 0, 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, 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, 1, 0, 0, 0 } } } },
{ MN_v4fnmaddps, 0xaa, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 3, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 0, 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, 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, 1, 0, 0, 0 } } } },
{ MN_v4fmaddss, 0x9b, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 3, 0, 0, 4, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_v4fnmaddss, 0xab, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 3, 0, 0, 4, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vp4dpwssd, 0x52, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 3, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 0, 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, 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, 1, 0, 0, 0 } } } },
{ MN_vp4dpwssds, 0x53, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 3, 0, 0, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 0, 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, 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, 1, 0, 0, 0 } } } },
{ MN_vpopcntd, 0x55, 2, 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, 0, 0, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vpopcntq, 0x55, 2, 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, 0, 0, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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_vpcompressb, 0x63, 2, 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, 0, 0, 1, 1, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 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 } } } },
{ MN_vpcompressw, 0x63, 2, 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, 0, 0, 2, 1, 0, 0, 5, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 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 } } } },
{ MN_vpexpandb, 0x62, 2, 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, 0, 0, 1, 1, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vpexpandw, 0x62, 2, 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, 0, 0, 2, 1, 0, 0, 5, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vpshldvd, 0x71, 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, 0, 1, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpshldvq, 0x71, 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, 0, 1, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpshldvw, 0x70, 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, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpshrdvd, 0x73, 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, 0, 1, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpshrdvq, 0x73, 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, 0, 1, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpshrdvw, 0x72, 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, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpshldd, 0x71, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpshldq, 0x71, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpshldw, 0x70, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpshrdd, 0x73, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpshrdq, 0x73, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 2, 1, 0, 0, 5, 1, 4, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpshrdw, 0x72, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpdpbusd, 0x50|0, 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, 0, 1, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpdpbusd, 0x50|0, 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, 1,
0, 0 },
- { { 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpdpbusds, 0x50|1, 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, 0, 1, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpdpbusds, 0x50|1, 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, 1,
0, 0 },
- { { 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpdpwssd, 0x52|0, 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, 0, 1, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpdpwssd, 0x52|0, 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, 1,
0, 0 },
- { { 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpdpwssds, 0x52|1, 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, 0, 1, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpdpwssds, 0x52|1, 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, 1,
0, 0 },
- { { 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpdpbuud, 0x50|0, 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, 1,
0, 0 },
- { { 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpdpbuud, 0x50|0, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -41840,23 +41888,23 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpdpbuuds, 0x50|1, 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, 1,
0, 0 },
- { { 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpdpbuuds, 0x50|1, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -41864,23 +41912,23 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpdpbssd, 0x50|0, 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, 1,
0, 0 },
- { { 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpdpbssd, 0x50|0, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -41888,23 +41936,23 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpdpbssds, 0x50|1, 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, 1,
0, 0 },
- { { 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpdpbssds, 0x50|1, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -41912,23 +41960,23 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpdpbsud, 0x50|0, 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, 1,
0, 0 },
- { { 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpdpbsud, 0x50|0, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -41936,23 +41984,23 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpdpbsuds, 0x50|1, 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, 1,
0, 0 },
- { { 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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_vpdpbsuds, 0x50|1, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -41960,23 +42008,23 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpdpwuud, 0xd2|0, 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, 1,
0, 0 },
- { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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|0, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -41984,23 +42032,23 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpdpwuuds, 0xd2|1, 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, 1,
0, 0 },
- { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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, 0xd2|1, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -42008,23 +42056,23 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpdpwusd, 0xd2|0, 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, 1,
0, 0 },
- { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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|0, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -42032,23 +42080,23 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpdpwusds, 0xd2|1, 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, 1,
0, 0 },
- { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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, 0xd2|1, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -42056,23 +42104,23 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpdpwsud, 0xd2|0, 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, 1,
0, 0 },
- { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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|0, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -42080,23 +42128,23 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpdpwsuds, 0xd2|1, 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, 1,
0, 0 },
- { { 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 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, 0xd2|1, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -42104,49 +42152,49 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vpopcntb, 0x54, 2, 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, 0, 0, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vpopcntw, 0x54, 2, 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, 0, 0, 2, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vpshufbitqmb, 0x8f, 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, 0, 1, 1, 1, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_invlpgb, 0x01fe, 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 },
- { { 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42154,7 +42202,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 7, 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 },
- { { 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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 } },
@@ -42166,7 +42214,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42174,7 +42222,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42182,7 +42230,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 7, 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 },
- { { 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -42190,7 +42238,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42198,7 +42246,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 7, 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 },
- { { 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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 } },
@@ -42210,7 +42258,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 7, 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 },
- { { 105, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 106, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -42222,7 +42270,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42230,7 +42278,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 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 },
- { { 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -42242,7 +42290,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42250,7 +42298,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42258,7 +42306,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 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 },
- { { 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+ { { 109, 0, 0, 0, 0, 0, 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, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42266,7 +42314,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 108, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 109, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -42274,7 +42322,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 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 },
- { { 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 } },
+ { { 110, 0, 0, 0, 0, 0, 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, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -42282,7 +42330,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 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 },
- { { 109, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 110, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -42290,7 +42338,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 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 },
- { { 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -42298,7 +42346,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 111, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 112, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -42306,7 +42354,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 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 },
- { { 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -42314,7 +42362,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 111, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 112, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -42322,7 +42370,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42330,7 +42378,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -42338,7 +42386,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 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, 1,
0, 0 },
- { { 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -42348,7 +42396,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 111, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 112, 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 } },
{ { { 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 } },
@@ -42358,7 +42406,7 @@ static const insn_template i386_optab[] =
{ 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, 1,
0, 0 },
- { { 111, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 112, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -42368,7 +42416,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 111, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 112, 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 } },
{ { { 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 } },
@@ -42378,7 +42426,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 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, 1,
0, 0 },
- { { 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -42388,7 +42436,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 111, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 112, 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 } },
{ { { 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 } },
@@ -42398,7 +42446,7 @@ static const insn_template i386_optab[] =
{ 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, 1,
0, 0 },
- { { 111, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 112, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -42408,7 +42456,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 111, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 112, 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 } },
{ { { 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 } },
@@ -42418,7 +42466,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42426,7 +42474,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -42434,7 +42482,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42442,7 +42490,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42450,7 +42498,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 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 },
- { { 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42458,7 +42506,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42466,7 +42514,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42474,7 +42522,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 126, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 127, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42482,7 +42530,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 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 },
- { { 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -42490,7 +42538,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 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 },
- { { 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -42498,7 +42546,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 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 },
- { { 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -42510,7 +42558,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 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,
0, 0 },
- { { 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -42518,7 +42566,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 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,
0, 0 },
- { { 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -42530,7 +42578,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 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 },
- { { 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -42538,7 +42586,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 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, 1,
0, 0 },
- { { 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -42548,7 +42596,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 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 },
- { { 130, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 131, 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 } },
{ { { 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 } },
@@ -42558,7 +42606,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 7, 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, 1,
0, 0 },
- { { 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } },
@@ -42568,7 +42616,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 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 },
- { { 131, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 132, 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, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } },
@@ -42578,181 +42626,181 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 3, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vcvtneps2bf16, 0x72, 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, 1, 2, 0, 0, 1, 1, 3, 0, 0, 6, 0, 0, 0, 0, 0,
0, 0 },
- { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 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, 1, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vcvtneps2bf16, 0x72, 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, 1, 2, 0, 0, 5, 1, 3, 0, 0, 7, 0, 1, 0, 0, 0,
0, 0 },
- { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 87, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtneps2bf16, 0x72, 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, 1, 2, 0, 0, 5, 1, 3, 0, 0, 7, 0, 2, 0, 0, 0,
0, 0 },
- { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 87, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtneps2bf16, 0x72, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1,
0, 0 },
- { { 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vcvtneps2bf16, 0x72, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1,
0, 0 },
- { { 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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_vcvtneps2bf16x, 0x72, 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, 1, 2, 0, 0, 2, 1, 3, 0, 0, 4, 0, 2, 0, 0, 0,
0, 0 },
- { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 87, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtneps2bf16x, 0x72, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1,
0, 0 },
- { { 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vcvtneps2bf16y, 0x72, 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, 1, 2, 0, 0, 3, 1, 3, 0, 0, 5, 0, 2, 0, 0, 0,
0, 0 },
- { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 87, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtneps2bf16y, 0x72, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 1,
0, 0 },
- { { 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vdpbf16ps, 0x52, 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, 0, 1, 1, 2, 0, 0, 5, 1, 3, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vbcstnebf162ps, 0xb1, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 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_vbcstnesh2ps, 0xb1, 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, 1,
0, 0 },
- { { 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 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_vcvtneebf162ps, 0xb0, 2, 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, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 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_vcvtneeph2ps, 0xb0, 2, 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, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 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_vcvtneobf162ps, 0xb0, 2, 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, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 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_vcvtneoph2ps, 0xb0, 2, 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, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 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_enqcmd, 0xf8, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } },
@@ -42762,7 +42810,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 132, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 133, 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, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } },
@@ -42772,7 +42820,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 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 },
- { { 132, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } },
@@ -42782,7 +42830,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 132, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 133, 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, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } },
@@ -42792,31 +42840,31 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 3, 0, 0, 5, 0, 3, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vp2intersectq, 0x68, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 2, 3, 0, 0, 5, 0, 4, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 87, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_mcommit, 0x01fa, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42824,7 +42872,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 143, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 144, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42832,7 +42880,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 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 },
- { { 143, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 144, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -42840,7 +42888,7 @@ static const insn_template i386_optab[] =
{ 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42848,7 +42896,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 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,
0, 0 },
- { { 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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 } },
@@ -42860,7 +42908,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 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,
0, 0 },
- { { 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -42868,7 +42916,7 @@ static const insn_template i386_optab[] =
{ 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 143, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 144, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42876,7 +42924,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 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,
0, 0 },
- { { 143, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 144, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -42886,7 +42934,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 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,
0, 0 },
- { { 143, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 144, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -42894,7 +42942,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0,
0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 143, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 144, 0, 0, 0, 0, 1, 0, 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, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } },
@@ -42904,7 +42952,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 143, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 144, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42912,7 +42960,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 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 },
- { { 143, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 144, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -42924,7 +42972,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 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 },
- { { 143, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 144, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -42932,7 +42980,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 144, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 145, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42940,7 +42988,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 1, 1, 1, 1, 1, 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 },
- { { 144, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 145, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -42952,7 +43000,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0,
0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 145, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 146, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -42962,7 +43010,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42970,7 +43018,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42978,7 +43026,7 @@ static const insn_template i386_optab[] =
{ 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42986,7 +43034,7 @@ static const insn_template i386_optab[] =
{ 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -42994,161 +43042,161 @@ static const insn_template i386_optab[] =
{ 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, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 121, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 121, 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, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
{ MN_sttilecfg, 0x49, 1, SPACE_0F38, 0,
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 121, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 121, 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, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
{ MN_tcmmimfp16ps, 0x6c, 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, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 115, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 116, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_tcmmrlfp16ps, 0x6c, 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, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 115, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 116, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_tdpbf16ps, 0x5c, 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, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 113, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 114, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_tdpfp16ps, 0x5c, 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, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 114, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 115, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_tdpbssd, 0x5e, 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, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 112, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 113, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_tdpbuud, 0x5e, 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, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 112, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 113, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_tdpbusd, 0x5e, 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, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 112, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 113, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_tdpbsud, 0x5e, 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, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 112, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 113, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_tileloadd, 0x4b, 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, 3, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 121, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 121, 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, 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,
+ { { 8, 0, 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_tileloaddt1, 0x4b, 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, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 121, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 121, 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, 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,
+ { { 8, 0, 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_tileloaddrs, 0x4a, 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, 3, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 118, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 119, 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, 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,
+ { { 8, 0, 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_tileloaddrst1, 0x4a, 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, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 118, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 119, 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, 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,
+ { { 8, 0, 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_tilestored, 0x4b, 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, 2, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 120, 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,
+ { { 121, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 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 } } } },
@@ -43156,7 +43204,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 1,
0, 0 },
- { { 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 121, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -43164,9 +43212,9 @@ static const insn_template i386_optab[] =
{ 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 121, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 1, 0, 0 } } } },
{ MN_t2rpntlvwz0, 0x6e | 0x0, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -43176,7 +43224,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
+ { { 8, 0, 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_t2rpntlvwz0t1, 0x6e | 0x1, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -43186,7 +43234,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
+ { { 8, 0, 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_t2rpntlvwz1, 0x6e | 0x0, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -43196,7 +43244,7 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
+ { { 8, 0, 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_t2rpntlvwz1t1, 0x6e | 0x1, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -43206,117 +43254,117 @@ static const insn_template i386_optab[] =
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
+ { { 8, 0, 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_t2rpntlvwz0rs, 0xf8 | 0x0, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 118, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
- { { 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0 } },
+ { { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
+ { { 8, 0, 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_t2rpntlvwz0rst1, 0xf8 | 0x1, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 1, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 118, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
- { { 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0 } },
+ { { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
+ { { 8, 0, 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_t2rpntlvwz1rs, 0xf8 | 0x0, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 1, 1, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 118, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
- { { 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0 } },
+ { { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
+ { { 8, 0, 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_t2rpntlvwz1rst1, 0xf8 | 0x1, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 5, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 0, 1, 1, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 118, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
- { { 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0 } },
+ { { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,
+ { { 8, 0, 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_tconjtcmmimfp16ps, 0x6b, 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, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 115, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 116, 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 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_tconjtfp16, 0x6b, 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, 1,
0, 0 },
- { { 115, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 116, 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 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_ttcmmimfp16ps, 0x6b, 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, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 115, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 116, 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 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_ttcmmrlfp16ps, 0x6b, 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, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 115, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 116, 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 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_ttdpbf16ps, 0x6c, 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, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 113, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 114, 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 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_ttdpfp16ps, 0x6c, 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, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 114, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 115, 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 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_ttransposed, 0x5f, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -43324,241 +43372,241 @@ static const insn_template i386_optab[] =
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 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_tmmultf32ps, 0x48, 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, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 116, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 117, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_ttmmultf32ps, 0x48, 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, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 116, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0 } },
+ { { 117, 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 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_tdpbf8ps, 0xfd, 3, SPACE_MAP5, 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, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 117, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 118, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_tdpbhf8ps, 0xfd, 3, SPACE_MAP5, 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, 2, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 117, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 118, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_tdphbf8ps, 0xfd, 3, SPACE_MAP5, 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, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 117, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 118, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_tdphf8ps, 0xfd, 3, SPACE_MAP5, 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, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 117, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 118, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } },
- { { 7, 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, 1, 0, 0 } } } },
{ MN_tcvtrowd2ps, 0x4a, 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, 0, 2, 1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_tcvtrowd2ps, 0x07, 3, 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, 0, 0, 1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_tcvtrowps2bf16h, 0x6d, 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, 0, 2, 1, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_tcvtrowps2bf16h, 0x07, 3, 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, 0, 0, 1, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_tcvtrowps2bf16l, 0x6d, 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, 0, 2, 1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_tcvtrowps2bf16l, 0x77, 3, 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, 0, 0, 1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_tcvtrowps2phh, 0x6d, 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, 0, 2, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_tcvtrowps2phh, 0x07, 3, 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, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_tcvtrowps2phl, 0x6d, 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, 0, 2, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_tcvtrowps2phl, 0x77, 3, 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, 0, 0, 1, 3, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_tilemovrow, 0x4a, 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, 0, 2, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_tilemovrow, 0x07, 3, 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, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 119, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 120, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_loadiwkey, 0xdc, 2, SPACE_0F38, None,
{ 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 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 },
- { { 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
+ { { 8, 0, 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_encodekey128, 0xfa, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -43568,7 +43616,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -43578,47 +43626,47 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_aesdec128kl, 0xdd, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_aesenc256kl, 0xde, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_aesdec256kl, 0xdf, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_aesencwide128kl, 0xd8, 1, SPACE_0F38, 0,
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -43626,7 +43674,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -43634,7 +43682,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -43642,7 +43690,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -43650,7 +43698,7 @@ static const insn_template i386_optab[] =
{ 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -43658,7 +43706,7 @@ static const insn_template i386_optab[] =
{ 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 88, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 89, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -43666,7 +43714,7 @@ static const insn_template i386_optab[] =
{ 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 88, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 89, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -43674,7 +43722,7 @@ static const insn_template i386_optab[] =
{ 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 88, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 89, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -43682,7 +43730,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 128, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 129, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -43690,7 +43738,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 128, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 129, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -43698,7 +43746,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 128, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 129, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -43706,7 +43754,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 128, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 129, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -43714,7 +43762,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 128, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 129, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -43722,7 +43770,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -43730,1823 +43778,1823 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 3, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfcmaddcsh, 0x57, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 3, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfmaddcph, 0x56, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 2, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfmaddcsh, 0x57, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfcmulcph, 0xd6, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 3, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfcmulcsh, 0xd7, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 3, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vfmulcph, 0xd6, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 2, 0, 0, 5, 1, 3, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfmulcsh, 0xd7, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 8, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcmpeqph, 0xc2, 3, SPACE_0F3A, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpeq_oqph, 0xc2, 3, SPACE_0F3A, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpltph, 0xc2, 3, SPACE_0F3A, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmplt_osph, 0xc2, 3, SPACE_0F3A, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpleph, 0xc2, 3, SPACE_0F3A, 0x02,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmple_osph, 0xc2, 3, SPACE_0F3A, 0x02,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpunordph, 0xc2, 3, SPACE_0F3A, 0x03,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpunord_qph, 0xc2, 3, SPACE_0F3A, 0x03,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpneqph, 0xc2, 3, SPACE_0F3A, 0x04,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpneq_uqph, 0xc2, 3, SPACE_0F3A, 0x04,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnltph, 0xc2, 3, SPACE_0F3A, 0x05,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnlt_usph, 0xc2, 3, SPACE_0F3A, 0x05,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnleph, 0xc2, 3, SPACE_0F3A, 0x06,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnle_usph, 0xc2, 3, SPACE_0F3A, 0x06,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpordph, 0xc2, 3, SPACE_0F3A, 0x07,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpord_qph, 0xc2, 3, SPACE_0F3A, 0x07,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpeq_uqph, 0xc2, 3, SPACE_0F3A, 0x08,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpngeph, 0xc2, 3, SPACE_0F3A, 0x09,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnge_usph, 0xc2, 3, SPACE_0F3A, 0x09,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpngtph, 0xc2, 3, SPACE_0F3A, 0x0a,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpngt_usph, 0xc2, 3, SPACE_0F3A, 0x0a,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpfalseph, 0xc2, 3, SPACE_0F3A, 0x0b,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpfalse_oqph, 0xc2, 3, SPACE_0F3A, 0x0b,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpneq_oqph, 0xc2, 3, SPACE_0F3A, 0x0c,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpgeph, 0xc2, 3, SPACE_0F3A, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpge_osph, 0xc2, 3, SPACE_0F3A, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpgtph, 0xc2, 3, SPACE_0F3A, 0x0e,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpgt_osph, 0xc2, 3, SPACE_0F3A, 0x0e,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmptrueph, 0xc2, 3, SPACE_0F3A, 0x0f,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmptrue_uqph, 0xc2, 3, SPACE_0F3A, 0x0f,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpeq_osph, 0xc2, 3, SPACE_0F3A, 0x10,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmplt_oqph, 0xc2, 3, SPACE_0F3A, 0x11,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmple_oqph, 0xc2, 3, SPACE_0F3A, 0x12,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpunord_sph, 0xc2, 3, SPACE_0F3A, 0x13,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpneq_usph, 0xc2, 3, SPACE_0F3A, 0x14,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnlt_uqph, 0xc2, 3, SPACE_0F3A, 0x15,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnle_uqph, 0xc2, 3, SPACE_0F3A, 0x16,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpord_sph, 0xc2, 3, SPACE_0F3A, 0x17,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpeq_usph, 0xc2, 3, SPACE_0F3A, 0x18,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpnge_uqph, 0xc2, 3, SPACE_0F3A, 0x19,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpngt_uqph, 0xc2, 3, SPACE_0F3A, 0x1a,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpfalse_osph, 0xc2, 3, SPACE_0F3A, 0x1b,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpneq_osph, 0xc2, 3, SPACE_0F3A, 0x1c,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpge_oqph, 0xc2, 3, SPACE_0F3A, 0x1d,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpgt_oqph, 0xc2, 3, SPACE_0F3A, 0x1e,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmptrue_usph, 0xc2, 3, SPACE_0F3A, 0x1f,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpph, 0xc2, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vcmpeqsh, 0xc2, 3, SPACE_0F3A, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpeq_oqsh, 0xc2, 3, SPACE_0F3A, 0x00,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpltsh, 0xc2, 3, SPACE_0F3A, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmplt_ossh, 0xc2, 3, SPACE_0F3A, 0x01,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmplesh, 0xc2, 3, SPACE_0F3A, 0x02,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmple_ossh, 0xc2, 3, SPACE_0F3A, 0x02,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpunordsh, 0xc2, 3, SPACE_0F3A, 0x03,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpunord_qsh, 0xc2, 3, SPACE_0F3A, 0x03,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpneqsh, 0xc2, 3, SPACE_0F3A, 0x04,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpneq_uqsh, 0xc2, 3, SPACE_0F3A, 0x04,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnltsh, 0xc2, 3, SPACE_0F3A, 0x05,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnlt_ussh, 0xc2, 3, SPACE_0F3A, 0x05,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnlesh, 0xc2, 3, SPACE_0F3A, 0x06,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnle_ussh, 0xc2, 3, SPACE_0F3A, 0x06,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpordsh, 0xc2, 3, SPACE_0F3A, 0x07,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpord_qsh, 0xc2, 3, SPACE_0F3A, 0x07,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpeq_uqsh, 0xc2, 3, SPACE_0F3A, 0x08,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpngesh, 0xc2, 3, SPACE_0F3A, 0x09,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnge_ussh, 0xc2, 3, SPACE_0F3A, 0x09,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpngtsh, 0xc2, 3, SPACE_0F3A, 0x0a,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpngt_ussh, 0xc2, 3, SPACE_0F3A, 0x0a,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpfalsesh, 0xc2, 3, SPACE_0F3A, 0x0b,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpfalse_oqsh, 0xc2, 3, SPACE_0F3A, 0x0b,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpneq_oqsh, 0xc2, 3, SPACE_0F3A, 0x0c,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpgesh, 0xc2, 3, SPACE_0F3A, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpge_ossh, 0xc2, 3, SPACE_0F3A, 0x0d,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpgtsh, 0xc2, 3, SPACE_0F3A, 0x0e,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpgt_ossh, 0xc2, 3, SPACE_0F3A, 0x0e,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmptruesh, 0xc2, 3, SPACE_0F3A, 0x0f,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmptrue_uqsh, 0xc2, 3, SPACE_0F3A, 0x0f,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpeq_ossh, 0xc2, 3, SPACE_0F3A, 0x10,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmplt_oqsh, 0xc2, 3, SPACE_0F3A, 0x11,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmple_oqsh, 0xc2, 3, SPACE_0F3A, 0x12,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpunord_ssh, 0xc2, 3, SPACE_0F3A, 0x13,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpneq_ussh, 0xc2, 3, SPACE_0F3A, 0x14,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnlt_uqsh, 0xc2, 3, SPACE_0F3A, 0x15,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnle_uqsh, 0xc2, 3, SPACE_0F3A, 0x16,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpord_ssh, 0xc2, 3, SPACE_0F3A, 0x17,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpeq_ussh, 0xc2, 3, SPACE_0F3A, 0x18,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpnge_uqsh, 0xc2, 3, SPACE_0F3A, 0x19,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpngt_uqsh, 0xc2, 3, SPACE_0F3A, 0x1a,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpfalse_ossh, 0xc2, 3, SPACE_0F3A, 0x1b,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpneq_ossh, 0xc2, 3, SPACE_0F3A, 0x1c,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpge_oqsh, 0xc2, 3, SPACE_0F3A, 0x1d,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpgt_oqsh, 0xc2, 3, SPACE_0F3A, 0x1e,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmptrue_ussh, 0xc2, 3, SPACE_0F3A, 0x1f,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 1, 0, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcmpsh, 0xc2, 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, 0, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 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,
+ { { 8, 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,
- 1, 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,
+ 1, 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 } } } },
{ MN_vcvtdq2ph, 0x5b, 2, SPACE_MAP5, 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, 1, 0, 0, 0, 1, 1, 3, 1, 1, 6, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 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, 1, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vcvtdq2ph, 0x5b, 2, SPACE_MAP5, 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, 1, 0, 0, 0, 5, 1, 3, 1, 1, 7, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 1, 3, 0, 0, 7, 0, 1, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtdq2ph, 0x5b, 2, SPACE_MAP5, 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, 1, 0, 0, 0, 5, 1, 3, 1, 1, 7, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 1, 3, 0, 0, 7, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtdq2phx, 0x5b, 2, SPACE_MAP5, 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, 1, 0, 0, 0, 2, 1, 3, 0, 0, 4, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtdq2phy, 0x5b, 2, SPACE_MAP5, 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, 1, 0, 0, 0, 3, 1, 3, 1, 1, 5, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 1, 3, 0, 0, 5, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtudq2ph, 0x7a, 2, SPACE_MAP5, 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, 1, 3, 0, 0, 1, 1, 3, 1, 1, 6, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 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, 1, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vcvtudq2ph, 0x7a, 2, SPACE_MAP5, 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, 1, 3, 0, 0, 5, 1, 3, 1, 1, 7, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 3, 0, 0, 5, 1, 3, 0, 0, 7, 0, 1, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtudq2ph, 0x7a, 2, SPACE_MAP5, 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, 1, 3, 0, 0, 5, 1, 3, 1, 1, 7, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 3, 0, 0, 5, 1, 3, 0, 0, 7, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtudq2phx, 0x7a, 2, SPACE_MAP5, 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, 1, 3, 0, 0, 2, 1, 3, 0, 0, 4, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtudq2phy, 0x7a, 2, SPACE_MAP5, 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, 1, 3, 0, 0, 3, 1, 3, 1, 1, 5, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 3, 0, 0, 3, 1, 3, 0, 0, 5, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtqq2ph, 0x5b, 2, SPACE_MAP5, 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, 2, 0, 0, 0, 5, 1, 4, 1, 1, 7, 0, 1, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtqq2ph, 0x5b, 2, SPACE_MAP5, 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, 2, 0, 0, 0, 5, 1, 4, 1, 1, 7, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtqq2phz, 0x5b, 2, SPACE_MAP5, 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, 2, 0, 0, 0, 1, 1, 4, 1, 1, 6, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtqq2phx, 0x5b, 2, SPACE_MAP5, 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, 2, 0, 0, 0, 2, 1, 4, 0, 0, 4, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vcvtqq2phy, 0x5b, 2, SPACE_MAP5, 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, 2, 0, 0, 0, 3, 1, 4, 1, 1, 5, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 1, 4, 0, 0, 5, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtuqq2ph, 0x7a, 2, SPACE_MAP5, 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, 2, 3, 0, 0, 5, 1, 4, 1, 1, 7, 0, 1, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtuqq2ph, 0x7a, 2, SPACE_MAP5, 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, 2, 3, 0, 0, 5, 1, 4, 1, 1, 7, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtuqq2phz, 0x7a, 2, SPACE_MAP5, 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, 2, 3, 0, 0, 1, 1, 4, 1, 1, 6, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtuqq2phx, 0x7a, 2, SPACE_MAP5, 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, 2, 3, 0, 0, 2, 1, 4, 0, 0, 4, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vcvtuqq2phy, 0x7a, 2, SPACE_MAP5, 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, 2, 3, 0, 0, 3, 1, 4, 1, 1, 5, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 3, 0, 0, 3, 1, 4, 0, 0, 5, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtpd2ph, 0x5a, 2, SPACE_MAP5, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 1, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtpd2ph, 0x5a, 2, SPACE_MAP5, 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, 2, 1, 0, 0, 5, 1, 4, 1, 1, 7, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtpd2phz, 0x5a, 2, SPACE_MAP5, 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, 2, 1, 0, 0, 1, 1, 4, 1, 1, 6, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtpd2phx, 0x5a, 2, SPACE_MAP5, 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, 2, 1, 0, 0, 2, 1, 4, 0, 0, 4, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vcvtpd2phy, 0x5a, 2, SPACE_MAP5, 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, 2, 1, 0, 0, 3, 1, 4, 1, 1, 5, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 1, 0, 0, 3, 1, 4, 0, 0, 5, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtps2phx, 0x1d, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 1, 1, 3, 1, 1, 6, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 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, 1, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vcvtps2phx, 0x1d, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 5, 1, 3, 1, 1, 7, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 1, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtps2phx, 0x1d, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 5, 1, 3, 1, 1, 7, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 0, 0, 5, 1, 3, 0, 0, 7, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtps2phxx, 0x1d, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 2, 1, 3, 0, 0, 4, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtps2phxy, 0x1d, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 3, 1, 3, 1, 1, 5, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 3, 0, 0, 5, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtw2ph, 0x7d, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 2, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vcvtuw2ph, 0x7d, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 3, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vcvtph2dq, 0x5b, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 2, 1, 2, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtph2dq, 0x5b, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 3, 1, 2, 1, 1, 4, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 2, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtph2dq, 0x5b, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 1, 1, 2, 1, 1, 5, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcvtph2udq, 0x79, 2, SPACE_MAP5, 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, 1, 0, 0, 0, 2, 1, 2, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtph2udq, 0x79, 2, SPACE_MAP5, 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, 1, 0, 0, 0, 3, 1, 2, 1, 1, 4, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 1, 2, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtph2udq, 0x79, 2, SPACE_MAP5, 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, 1, 0, 0, 0, 1, 1, 2, 1, 1, 5, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcvtph2qq, 0x7b, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 2, 1, 2, 0, 0, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtph2qq, 0x7b, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 3, 1, 2, 1, 1, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 2, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtph2qq, 0x7b, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 1, 1, 2, 1, 1, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcvtph2uqq, 0x79, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 2, 1, 2, 0, 0, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtph2uqq, 0x79, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 3, 1, 2, 1, 1, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 2, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtph2uqq, 0x79, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 1, 1, 2, 1, 1, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcvtph2pd, 0x5a, 2, SPACE_MAP5, 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, 1, 0, 0, 0, 2, 1, 2, 0, 0, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtph2pd, 0x5a, 2, SPACE_MAP5, 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, 1, 0, 0, 0, 3, 1, 2, 0, 1, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 1, 2, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtph2pd, 0x5a, 2, SPACE_MAP5, 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, 1, 0, 0, 0, 1, 1, 2, 0, 1, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcvtph2w, 0x7d, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vcvtph2uw, 0x7d, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 1, 2, 1, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vcvtsd2sh, 0x5a, 3, SPACE_MAP5, 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, 1, 2, 3, 0, 0, 4, 1, 0, 1, 1, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtss2sh, 0x1d, 3, SPACE_MAP5, 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, 1, 1, 0, 0, 0, 4, 1, 0, 1, 1, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtsi2sh, 0x2a, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 2, 0, 0, 4, 0, 0, 1, 1, 7, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtsi2sh, 0x2a, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 2, 0, 0, 4, 0, 0, 1, 1, 7, 0, 1, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtusi2sh, 0x7b, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 2, 0, 0, 4, 0, 0, 1, 1, 7, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtusi2sh, 0x7b, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 2, 0, 0, 4, 0, 0, 1, 1, 7, 0, 1, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtsh2sd, 0x5a, 3, SPACE_MAP5, 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, 1, 1, 2, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtsh2ss, 0x13, 3, SPACE_MAP6, 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, 1, 1, 0, 0, 0, 4, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcvtsh2si, 0x2d, 2, SPACE_MAP5, 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, 2, 0, 0, 4, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -45554,179 +45602,179 @@ static const insn_template i386_optab[] =
{ 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, 1, 2, 0, 0, 2, 1, 2, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttph2dq, 0x5b, 2, SPACE_MAP5, 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, 1, 2, 0, 0, 3, 1, 2, 0, 1, 4, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 2, 0, 0, 3, 1, 2, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttph2dq, 0x5b, 2, SPACE_MAP5, 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, 1, 2, 0, 0, 1, 1, 2, 0, 1, 5, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcvttph2udq, 0x78, 2, SPACE_MAP5, 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, 1, 0, 0, 0, 2, 1, 2, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttph2udq, 0x78, 2, SPACE_MAP5, 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, 1, 0, 0, 0, 3, 1, 2, 0, 1, 4, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 1, 2, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttph2udq, 0x78, 2, SPACE_MAP5, 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, 1, 0, 0, 0, 1, 1, 2, 0, 1, 5, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcvttph2qq, 0x7a, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 2, 1, 2, 0, 0, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttph2qq, 0x7a, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 3, 1, 2, 0, 1, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 2, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttph2qq, 0x7a, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 1, 1, 2, 0, 1, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcvttph2uqq, 0x78, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 2, 1, 2, 0, 0, 2, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttph2uqq, 0x78, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 3, 1, 2, 0, 1, 3, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 2, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttph2uqq, 0x78, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 1, 1, 2, 0, 1, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcvtph2psx, 0x13, 2, SPACE_MAP6, 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, 1, 1, 0, 0, 2, 1, 2, 0, 0, 3, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtph2psx, 0x13, 2, SPACE_MAP6, 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, 1, 1, 0, 0, 3, 1, 2, 0, 1, 4, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 2, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtph2psx, 0x13, 2, SPACE_MAP6, 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, 1, 1, 0, 0, 1, 1, 2, 0, 1, 5, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcvttph2w, 0x7c, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vcvttph2uw, 0x7c, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 1, 2, 0, 1, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vcvttsh2si, 0x2c, 2, SPACE_MAP5, 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, 2, 0, 0, 4, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -45734,79 +45782,79 @@ static const insn_template i386_optab[] =
{ 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, 1, 0, 0, 0, 5, 1, 2, 0, 0, 7, 0, 1, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_vfpclassph, 0x66, 3, 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, 0, 0, 1, 0, 0, 0, 5, 1, 2, 0, 0, 7, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 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,
+ { { 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 } } } },
{ MN_vfpclassphz, 0x66, 3, 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, 0, 0, 1, 0, 0, 0, 1, 1, 2, 0, 0, 6, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
0, 0, 1, 0, 1, 0 } },
- { { 8, 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 } } } },
{ MN_vfpclassphx, 0x66, 3, 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, 0, 0, 1, 0, 0, 0, 2, 1, 2, 0, 0, 4, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
+ { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_vfpclassphy, 0x66, 3, 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, 0, 0, 1, 0, 0, 0, 3, 1, 2, 0, 0, 5, 0, 2, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
- { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 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, 1, 0, 0, 1, 0 } },
- { { 8, 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 } } } },
{ MN_vmovw, 0x6e, 2, SPACE_MAP5, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 3, 1, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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,
+ { { 8, 0, 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_vmovw, 0x7e, 2, SPACE_MAP5, None,
{ 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 3, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 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,
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,
0, 0, 0, 0, 0, 0 } } } },
@@ -45816,59 +45864,59 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vrcpph, 0x4c, 2, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 0, 0, 5, 1, 2, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vrcpsh, 0x4d, 3, SPACE_MAP6, 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, 1, 1, 1, 0, 0, 4, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vrsqrtph, 0x4e, 2, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 1, 0, 0, 5, 1, 2, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vrsqrtsh, 0x4f, 3, SPACE_MAP6, 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, 1, 1, 1, 0, 0, 4, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
0, 0 },
- { { 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_prefetchit0, 0x18, 1, SPACE_0F, 7,
{ 0, 0, 0, 1, 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 },
- { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 92, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 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 } } } },
@@ -45876,7 +45924,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 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 },
- { { 91, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 92, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 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 } } } },
@@ -45884,8 +45932,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -45896,8 +45944,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -45908,8 +45956,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -45920,8 +45968,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -45932,8 +45980,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -45944,8 +45992,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -45956,8 +46004,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -45968,8 +46016,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -45980,8 +46028,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -45992,8 +46040,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46004,8 +46052,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46016,8 +46064,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46028,8 +46076,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46040,8 +46088,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46052,8 +46100,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46064,8 +46112,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46076,8 +46124,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46088,8 +46136,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46100,8 +46148,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46112,8 +46160,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46124,8 +46172,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46136,8 +46184,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46148,8 +46196,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46160,8 +46208,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46172,8 +46220,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46184,8 +46232,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46196,8 +46244,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46208,8 +46256,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46220,8 +46268,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46232,8 +46280,8 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 2, 0, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 95, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 96, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 96, 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, 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,
@@ -46244,7 +46292,7 @@ static const insn_template i386_optab[] =
{ 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 },
- { { 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -46252,8 +46300,8 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 103, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 104, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 104, 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 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -46262,7 +46310,7 @@ static const insn_template i386_optab[] =
{ 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 97, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 98, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -46270,7 +46318,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 97, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 98, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -46278,7 +46326,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 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, 1,
0, 0 },
- { { 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -46288,7 +46336,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 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 },
- { { 99, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 100, 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 } },
{ { { 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 } },
@@ -46298,7 +46346,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 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, 1,
0, 0 },
- { { 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -46308,7 +46356,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 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 },
- { { 99, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 100, 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 } },
{ { { 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 } },
@@ -46318,7 +46366,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -46328,7 +46376,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 99, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 100, 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 } },
{ { { 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 } },
@@ -46338,7 +46386,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 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 },
- { { 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -46348,7 +46396,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 99, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 100, 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 } },
{ { { 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 } },
@@ -46358,7 +46406,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 101, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 102, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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 } } } },
@@ -46366,7 +46414,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 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,
0, 0 },
- { { 101, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 102, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 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, 1, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0 } } } },
@@ -46374,7 +46422,7 @@ static const insn_template i386_optab[] =
{ 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, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 100, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 101, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -46382,7 +46430,7 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 100, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 101, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } } } },
@@ -46390,7 +46438,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 102, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 103, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -46400,7 +46448,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0,
0, 0, 0, 0, 0, 1, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 102, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 103, 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 } },
{ { { 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 } },
@@ -46410,8 +46458,8 @@ static const insn_template i386_optab[] =
{ 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, 3, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 102, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 103, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 103, 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 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -46420,7 +46468,7 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0 },
- { { 102, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 103, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
@@ -46430,7 +46478,7 @@ static const insn_template i386_optab[] =
{ 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, 1, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 102, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 103, 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 } },
{ { { 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 } },
@@ -46440,8 +46488,8 @@ static const insn_template i386_optab[] =
{ 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, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 102, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { 102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 103, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 103, 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 } },
{ { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,
@@ -46492,11 +46540,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vcvt2ps2phx, 0x67, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46504,11 +46552,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vcvtbiasph2bf8, 0x74, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46516,11 +46564,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vcvtbiasph2bf8, 0x74, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46528,11 +46576,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 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,
+ { { 8, 0, 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, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vcvtbiasph2bf8s, 0x74, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46540,11 +46588,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vcvtbiasph2bf8s, 0x74, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46552,11 +46600,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 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,
+ { { 8, 0, 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, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vcvtbiasph2hf8, 0x18, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46564,11 +46612,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vcvtbiasph2hf8, 0x18, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46576,11 +46624,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 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,
+ { { 8, 0, 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, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vcvtbiasph2hf8s, 0x1b, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46588,11 +46636,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
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,
+ { { 8, 0, 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_vcvtbiasph2hf8s, 0x1b, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46600,11 +46648,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 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,
+ { { 8, 0, 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, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vcvt2ph2bf8, 0x74, 3, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46612,11 +46660,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vcvt2ph2bf8s, 0x74, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46624,11 +46672,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vcvt2ph2hf8, 0x18, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46636,11 +46684,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vcvt2ph2hf8s, 0x1b, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46648,11 +46696,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vcvtph2bf8, 0x74, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46660,9 +46708,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 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,
+ { { 8, 0, 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_vcvtph2bf8, 0x74, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46670,9 +46718,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vcvtph2bf8, 0x74, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46680,9 +46728,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 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,
+ { { 8, 0, 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_vcvtph2bf8x, 0x74, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46690,9 +46738,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtph2bf8y, 0x74, 2, SPACE_0F38, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46700,9 +46748,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtph2bf8s, 0x74, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46710,9 +46758,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 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,
+ { { 8, 0, 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_vcvtph2bf8s, 0x74, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46720,9 +46768,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vcvtph2bf8s, 0x74, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46730,9 +46778,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 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,
+ { { 8, 0, 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_vcvtph2bf8sx, 0x74, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46740,9 +46788,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtph2bf8sy, 0x74, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46750,9 +46798,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtph2hf8, 0x18, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46760,9 +46808,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 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,
+ { { 8, 0, 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_vcvtph2hf8, 0x18, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46770,9 +46818,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vcvtph2hf8, 0x18, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46780,9 +46828,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 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,
+ { { 8, 0, 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_vcvtph2hf8x, 0x18, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46790,9 +46838,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtph2hf8y, 0x18, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46800,9 +46848,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtph2hf8s, 0x1b, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46810,9 +46858,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 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,
+ { { 8, 0, 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_vcvtph2hf8s, 0x1b, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46820,9 +46868,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0,
1, 1, 0, 0, 1, 0 } },
- { { 7, 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,
1, 0, 0, 0, 0, 0 } } } },
{ MN_vcvtph2hf8s, 0x1b, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46830,9 +46878,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 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,
+ { { 8, 0, 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_vcvtph2hf8sx, 0x1b, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46840,9 +46888,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtph2hf8sy, 0x1b, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46850,9 +46898,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvthf82ph, 0x1e, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46860,9 +46908,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vcvthf82ph, 0x1e, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46870,9 +46918,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 1, 0 } },
- { { 7, 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, 1, 0, 0, 0, 0 } } } },
{ MN_vcvthf82ph, 0x1e, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46880,9 +46928,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vaddbf16, 0x58, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46890,11 +46938,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vsubbf16, 0x5c, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46902,11 +46950,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vmulbf16, 0x59, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46914,11 +46962,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vdivbf16, 0x5e, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46926,11 +46974,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vminbf16, 0x5d, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46938,11 +46986,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vmaxbf16, 0x5f, 3, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46950,11 +46998,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfmadd132bf16, 0x88 | 0x10, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46962,11 +47010,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfmadd213bf16, 0x88 | 0x20, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46974,11 +47022,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfmadd231bf16, 0x88 | 0x30, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46986,11 +47034,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfmsub132bf16, 0x8a | 0x10, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -46998,11 +47046,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfmsub213bf16, 0x8a | 0x20, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47010,11 +47058,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfmsub231bf16, 0x8a | 0x30, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47022,11 +47070,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfnmadd132bf16, 0x8c | 0x10, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47034,11 +47082,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfnmadd213bf16, 0x8c | 0x20, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47046,11 +47094,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfnmadd231bf16, 0x8c | 0x30, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47058,11 +47106,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfnmsub132bf16, 0x8e | 0x10, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47070,11 +47118,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfnmsub213bf16, 0x8e | 0x20, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47082,11 +47130,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vfnmsub231bf16, 0x8e | 0x30, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47094,11 +47142,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vcmpbf16, 0xc2, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47108,11 +47156,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, 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,
+ { { 8, 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,
- 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,
+ 1, 1, 1, 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 } } } },
{ MN_vfpclassbf16, 0x66, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47122,9 +47170,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 1, 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,
+ { { 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 } } } },
{ MN_vfpclassbf16x, 0x66, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47134,9 +47182,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
1, 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,
+ { { 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 } } } },
{ MN_vfpclassbf16y, 0x66, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47146,9 +47194,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, 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,
+ { { 8, 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 } },
- { { 8, 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 } } } },
{ MN_vfpclassbf16z, 0x66, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47158,9 +47206,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, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 1, 0 } },
- { { 8, 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 } } } },
{ MN_vgetexpbf16, 0x42, 2, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47168,9 +47216,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vgetmantbf16, 0x26, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47180,9 +47228,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, 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,
+ { { 8, 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,
+ { { 8, 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_vrcpbf16, 0x4c, 2, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47190,9 +47238,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vreducebf16, 0x56, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47202,9 +47250,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, 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,
+ { { 8, 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,
+ { { 8, 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_vrndscalebf16, 0x08, 3, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47214,9 +47262,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, 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,
+ { { 8, 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,
+ { { 8, 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_vrsqrtbf16, 0x4e, 2, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47224,9 +47272,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vscalefbf16, 0x2c, 3, SPACE_MAP6, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47234,11 +47282,11 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vsqrtbf16, 0x51, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47246,9 +47294,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vcomisbf16, 0x2f, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47256,9 +47304,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvtbf162ibs, 0x69 | 0x0, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47266,9 +47314,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vcvtbf162iubs, 0x69 | 0x2, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47276,9 +47324,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vcvtph2ibs, 0x69 | 0x0, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47286,9 +47334,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vcvtph2iubs, 0x69 | 0x2, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47296,9 +47344,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vcvtps2ibs, 0x69 | 0x0, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47306,9 +47354,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vcvtps2iubs, 0x69 | 0x2, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47316,9 +47364,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vcvttbf162ibs, 0x68 | 0x0, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47326,9 +47374,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vcvttbf162iubs, 0x68 | 0x2, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47336,9 +47384,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vcvttph2ibs, 0x68 | 0x0, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47346,9 +47394,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vcvttph2iubs, 0x68 | 0x2, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47356,9 +47404,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 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_vcvttps2ibs, 0x68 | 0x0, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47366,9 +47414,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vcvttps2iubs, 0x68 | 0x2, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47376,9 +47424,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vcvttpd2dqs, 0x6d, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47386,29 +47434,29 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttpd2dqs, 0x6d, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 0, 0, 0, 5, 1, 4, 0, 1, 7, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 5, 1, 4, 0, 0, 7, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttpd2dqs, 0x6d, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 0, 0, 0, 5, 1, 4, 0, 1, 7, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 5, 1, 4, 0, 0, 7, 0, 2, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttpd2dqsx, 0x6d, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47416,19 +47464,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vcvttpd2dqsy, 0x6d, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 1, 4, 0, 1, 5, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 1, 4, 0, 0, 5, 0, 2, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttpd2udqs, 0x6c, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47436,29 +47484,29 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttpd2udqs, 0x6c, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 0, 0, 0, 5, 1, 4, 0, 1, 7, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 5, 1, 4, 0, 0, 7, 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 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttpd2udqs, 0x6c, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 0, 0, 0, 5, 1, 4, 0, 1, 7, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 5, 1, 4, 0, 0, 7, 0, 2, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttpd2udqsx, 0x6c, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47466,19 +47514,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vcvttpd2udqsy, 0x6c, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 1, 4, 0, 1, 5, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 1, 4, 0, 0, 5, 0, 2, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttpd2qqs, 0x6d, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47486,9 +47534,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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_vcvttpd2uqqs, 0x6c, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47496,9 +47544,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 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,
+ { { 8, 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_vcvttps2dqs, 0x6d, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47506,9 +47554,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vcvttps2udqs, 0x6c, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47516,9 +47564,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 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_vcvttps2qqs, 0x6d, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47526,19 +47574,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttps2qqs, 0x6d, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 3, 1, 3, 0, 1, 4, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 3, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttps2qqs, 0x6d, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47546,9 +47594,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcvttps2uqqs, 0x6c, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47556,19 +47604,19 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttps2uqqs, 0x6c, 2, SPACE_MAP5, 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, 1, 1, 0, 0, 3, 1, 3, 0, 1, 4, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 1, 1, 0, 0, 3, 1, 3, 0, 0, 4, 0, 0, 0, 0, 0,
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcvttps2uqqs, 0x6c, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47576,9 +47624,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0 } } } },
{ MN_vcvttsd2sis, 0x6d, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47586,7 +47634,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -47596,7 +47644,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -47606,7 +47654,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -47616,7 +47664,7 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
0, 0, 0, 0, 0, 0 } } } },
@@ -47628,11 +47676,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, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vminmaxps, 0x52, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47642,11 +47690,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, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vminmaxpd, 0x52, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47656,11 +47704,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, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vminmaxph, 0x52, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47670,11 +47718,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, 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,
+ { { 8, 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,
+ { { 8, 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, 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,
1, 1, 1, 0, 0, 0 } } } },
{ MN_vminmaxss, 0x53, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47684,11 +47732,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, 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,
+ { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vminmaxsd, 0x53, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47698,11 +47746,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, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vminmaxsh, 0x53, 4, SPACE_0F3A, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47712,11 +47760,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, 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,
+ { { 8, 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,
+ { { 8, 0, 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,
+ { { 8, 0, 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_vcomxss, 0x2f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47724,9 +47772,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vcomxsd, 0x2f, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47734,9 +47782,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vcomxsh, 0x2f, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47744,9 +47792,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_vucomxss, 0x2e, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47754,9 +47802,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0,
+ { { { 8, 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,
+ { { 8, 0, 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_vucomxsd, 0x2e, 2, SPACE_0F, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47764,9 +47812,9 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
- { { { 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0,
+ { { { 8, 0, 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,
+ { { 8, 0, 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_vucomxsh, 0x2e, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
@@ -47774,15 +47822,15 @@ static const insn_template i386_optab[] =
0, 0 },
{ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
{ { 0, 0, 0, 0, 0, 0, 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,
+ { { { 8, 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,
+ { { 8, 0, 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_prefetchrst2, 0x18, 1, SPACE_0F, 4,
{ 0, 0, 0, 1, 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 },
- { { 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 0, 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 } } } },
@@ -47790,7 +47838,7 @@ static const insn_template i386_optab[] =
{ 1, 1, 0, 1, 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, 0, 0, 0, 1,
0, 0 },
- { { 104, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
+ { { 105, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
{ { 0, 0, 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, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } },
@@ -47800,7 +47848,7 @@ static const insn_template i386_optab[] =
{ 1, 1, 0, 1, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0 },
- { { 104, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0 } },
+ { { 105, 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, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0,
0, 0, 0, 0, 1, 0 } },
@@ -47810,41 +47858,41 @@ static const insn_template i386_optab[] =
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 3, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 104, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+ { { 105, 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, 0, 0, 0, 0, 0, 1, 0, 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,
+ { { 8, 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_vmovrsw, 0x6f, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 3, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 104, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+ { { 105, 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, 0, 0, 0, 0, 0, 1, 0, 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,
+ { { 8, 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_vmovrsd, 0x6f, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1, 2, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 104, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+ { { 105, 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, 0, 0, 0, 0, 0, 1, 0, 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,
+ { { 8, 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_vmovrsq, 0x6f, 2, SPACE_MAP5, None,
{ 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 2, 0, 0, 5, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0 },
- { { 104, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0 } },
+ { { 105, 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, 0, 0, 0, 0, 0, 1, 0, 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,
+ { { 8, 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 } } } },
};
@@ -47910,275 +47958,276 @@ static const i386_op_off_t i386_op_sets[] =
951, 952, 953, 954, 955, 956, 957, 958,
959, 960, 961, 962, 963, 964, 965, 966,
967, 968, 969, 970, 971, 972, 973, 974,
- 975, 976, 977, 978, 979, 981, 982, 984,
- 986, 987, 988, 989, 990, 991, 992, 993,
- 994, 995, 996, 998, 1000, 1002, 1004, 1006,
- 1008, 1010, 1012, 1014, 1016, 1018, 1020, 1022,
- 1024, 1026, 1028, 1030, 1032, 1034, 1036, 1038,
- 1040, 1042, 1044, 1046, 1048, 1050, 1052, 1054,
- 1056, 1058, 1060, 1062, 1064, 1066, 1068, 1070,
- 1072, 1074, 1076, 1078, 1080, 1082, 1084, 1086,
- 1088, 1090, 1092, 1094, 1096, 1098, 1100, 1102,
- 1104, 1106, 1108, 1110, 1112, 1114, 1116, 1117,
- 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125,
- 1126, 1127, 1128, 1131, 1134, 1137, 1140, 1143,
- 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1158,
- 1168, 1172, 1176, 1180, 1184, 1188, 1191, 1195,
- 1199, 1203, 1207, 1211, 1214, 1217, 1220, 1223,
- 1226, 1229, 1232, 1235, 1239, 1243, 1247, 1250,
- 1258, 1264, 1272, 1280, 1286, 1294, 1300, 1308,
- 1312, 1316, 1319, 1323, 1327, 1331, 1335, 1339,
- 1343, 1347, 1350, 1354, 1358, 1361, 1364, 1366,
- 1368, 1370, 1372, 1374, 1376, 1378, 1380, 1382,
- 1384, 1386, 1388, 1391, 1394, 1397, 1400, 1402,
- 1404, 1406, 1408, 1410, 1412, 1414, 1416, 1418,
- 1420, 1422, 1424, 1426, 1428, 1430, 1432, 1434,
- 1436, 1438, 1439, 1440, 1446, 1448, 1449, 1451,
- 1453, 1454, 1456, 1458, 1461, 1463, 1466, 1468,
- 1470, 1471, 1473, 1476, 1478, 1482, 1486, 1495,
- 1501, 1505, 1509, 1513, 1517, 1520, 1524, 1525,
- 1526, 1527, 1528, 1532, 1533, 1536, 1539, 1542,
- 1545, 1546, 1548, 1550, 1552, 1554, 1556, 1558,
- 1560, 1563, 1566, 1569, 1572, 1575, 1578, 1581,
- 1584, 1587, 1590, 1593, 1596, 1599, 1602, 1605,
- 1608, 1610, 1612, 1614, 1616, 1618, 1620, 1622,
- 1624, 1626, 1628, 1630, 1632, 1634, 1636, 1638,
- 1640, 1642, 1644, 1647, 1650, 1656, 1659, 1664,
- 1669, 1671, 1674, 1679, 1682, 1685, 1688, 1691,
- 1694, 1697, 1700, 1702, 1705, 1707, 1708, 1711,
- 1713, 1715, 1717, 1720, 1722, 1723, 1725, 1728,
- 1730, 1732, 1734, 1736, 1737, 1738, 1742, 1744,
- 1747, 1750, 1753, 1756, 1759, 1762, 1764, 1766,
- 1768, 1770, 1772, 1774, 1777, 1780, 1782, 1784,
- 1786, 1787, 1788, 1791, 1793, 1794, 1795, 1796,
- 1797, 1798, 1799, 1801, 1803, 1804, 1805, 1806,
- 1807, 1810, 1813, 1816, 1819, 1822, 1825, 1828,
- 1831, 1834, 1838, 1842, 1846, 1849, 1852, 1855,
- 1859, 1863, 1867, 1870, 1872, 1874, 1878, 1882,
- 1884, 1886, 1890, 1892, 1894, 1896, 1899, 1903,
- 1905, 1907, 1913, 1916, 1919, 1921, 1927, 1930,
- 1933, 1936, 1938, 1940, 1943, 1946, 1948, 1950,
- 1953, 1956, 1959, 1961, 1963, 1965, 1967, 1969,
- 1971, 1973, 1975, 1977, 1979, 1982, 1984, 1986,
- 1989, 1991, 1994, 1996, 1998, 2002, 2006, 2008,
- 2010, 2014, 2015, 2016, 2017, 2018, 2019, 2020,
- 2021, 2022, 2024, 2026, 2028, 2030, 2032, 2034,
- 2036, 2038, 2040, 2042, 2044, 2046, 2048, 2050,
- 2052, 2054, 2056, 2058, 2060, 2062, 2064, 2066,
- 2068, 2070, 2072, 2074, 2076, 2078, 2080, 2082,
- 2084, 2086, 2088, 2090, 2092, 2094, 2096, 2098,
- 2099, 2100, 2102, 2104, 2106, 2108, 2110, 2112,
- 2114, 2116, 2117, 2118, 2119, 2120, 2121, 2124,
- 2126, 2128, 2130, 2132, 2134, 2136, 2138, 2140,
- 2142, 2144, 2146, 2148, 2150, 2152, 2154, 2156,
- 2158, 2160, 2162, 2164, 2166, 2168, 2170, 2172,
- 2174, 2176, 2178, 2180, 2182, 2184, 2186, 2188,
- 2190, 2192, 2194, 2196, 2198, 2200, 2202, 2204,
- 2206, 2208, 2210, 2212, 2214, 2216, 2218, 2220,
- 2222, 2224, 2226, 2228, 2230, 2232, 2234, 2236,
- 2238, 2240, 2242, 2244, 2246, 2248, 2250, 2252,
- 2254, 2256, 2258, 2260, 2262, 2264, 2266, 2268,
- 2270, 2272, 2274, 2276, 2278, 2280, 2282, 2284,
- 2286, 2288, 2290, 2292, 2294, 2296, 2298, 2300,
- 2302, 2304, 2306, 2308, 2310, 2312, 2314, 2316,
- 2318, 2320, 2322, 2324, 2326, 2328, 2330, 2332,
- 2334, 2336, 2338, 2340, 2342, 2344, 2346, 2348,
- 2350, 2352, 2354, 2356, 2358, 2360, 2362, 2364,
- 2366, 2368, 2370, 2372, 2374, 2376, 2378, 2380,
- 2382, 2384, 2386, 2388, 2390, 2392, 2394, 2396,
- 2398, 2400, 2402, 2404, 2406, 2408, 2410, 2412,
- 2414, 2416, 2418, 2420, 2422, 2424, 2426, 2428,
- 2430, 2432, 2434, 2436, 2438, 2440, 2442, 2444,
- 2446, 2448, 2450, 2452, 2454, 2456, 2458, 2460,
- 2462, 2464, 2466, 2468, 2470, 2472, 2474, 2476,
- 2478, 2480, 2482, 2484, 2486, 2488, 2490, 2492,
- 2494, 2496, 2498, 2500, 2502, 2504, 2506, 2511,
- 2513, 2518, 2520, 2522, 2527, 2529, 2531, 2533,
- 2538, 2540, 2542, 2544, 2548, 2554, 2556, 2561,
- 2563, 2565, 2567, 2569, 2571, 2572, 2573, 2574,
- 2576, 2577, 2578, 2579, 2580, 2581, 2583, 2584,
- 2585, 2586, 2588, 2590, 2592, 2594, 2598, 2602,
- 2603, 2604, 2606, 2610, 2614, 2616, 2620, 2624,
- 2625, 2626, 2628, 2630, 2632, 2634, 2639, 2643,
- 2647, 2649, 2651, 2653, 2655, 2657, 2659, 2661,
- 2663, 2665, 2667, 2669, 2671, 2673, 2675, 2677,
- 2679, 2681, 2683, 2685, 2687, 2689, 2690, 2691,
- 2693, 2695, 2696, 2697, 2700, 2703, 2706, 2709,
- 2711, 2713, 2715, 2717, 2719, 2721, 2722, 2723,
- 2724, 2726, 2730, 2732, 2734, 2740, 2744, 2745,
- 2746, 2747, 2748, 2749, 2750, 2751, 2755, 2757,
- 2759, 2763, 2765, 2767, 2769, 2771, 2773, 2775,
- 2777, 2779, 2781, 2783, 2785, 2787, 2789, 2791,
- 2792, 2795, 2798, 2801, 2804, 2809, 2814, 2819,
- 2824, 2827, 2830, 2833, 2836, 2838, 2840, 2842,
- 2844, 2846, 2848, 2850, 2851, 2853, 2855, 2857,
- 2859, 2861, 2862, 2863, 2864, 2868, 2872, 2874,
- 2878, 2882, 2886, 2890, 2894, 2896, 2900, 2902,
- 2904, 2906, 2908, 2910, 2912, 2914, 2916, 2917,
- 2919, 2921, 2923, 2925, 2927, 2929, 2931, 2933,
- 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941,
- 2942, 2944, 2946, 2948, 2950, 2952, 2954, 2955,
- 2956, 2957, 2959, 2961, 2963, 2965, 2967, 2969,
- 2970, 2971, 2972, 2973, 2976, 2979, 2981, 2984,
- 2985, 2986, 2988, 2989, 2991, 2992, 2993, 2995,
- 2997, 2998, 2999, 3000, 3001, 3002, 3005, 3010,
- 3015, 3020, 3025, 3028, 3033, 3038, 3040, 3042,
- 3044, 3046, 3047, 3048, 3050, 3052, 3054, 3056,
- 3058, 3060, 3062, 3063, 3064, 3065, 3066, 3067,
- 3068, 3073, 3078, 3079, 3080, 3081, 3082, 3083,
- 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091,
- 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099,
- 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107,
- 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115,
- 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123,
- 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131,
- 3132, 3133, 3134, 3135, 3136, 3137, 3138, 3139,
- 3140, 3141, 3142, 3143, 3144, 3145, 3146, 3147,
- 3148, 3149, 3150, 3151, 3152, 3153, 3154, 3155,
- 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163,
- 3164, 3165, 3166, 3167, 3168, 3169, 3170, 3171,
- 3172, 3173, 3174, 3175, 3176, 3177, 3178, 3179,
- 3180, 3181, 3182, 3183, 3184, 3185, 3186, 3187,
- 3188, 3189, 3190, 3191, 3192, 3193, 3194, 3195,
- 3196, 3197, 3198, 3199, 3200, 3201, 3202, 3203,
- 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211,
- 3212, 3213, 3214, 3215, 3216, 3217, 3218, 3219,
- 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227,
- 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235,
- 3236, 3237, 3238, 3239, 3240, 3241, 3242, 3243,
- 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251,
- 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259,
- 3260, 3261, 3262, 3263, 3264, 3265, 3266, 3267,
- 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275,
- 3276, 3277, 3278, 3279, 3281, 3283, 3284, 3285,
- 3286, 3287, 3288, 3289, 3290, 3291, 3292, 3293,
- 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301,
- 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309,
- 3310, 3311, 3313, 3315, 3317, 3319, 3320, 3321,
- 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329,
- 3330, 3331, 3332, 3334, 3335, 3336, 3337, 3339,
- 3340, 3341, 3342, 3343, 3344, 3345, 3346, 3347,
- 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355,
- 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363,
- 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371,
- 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379,
- 3380, 3382, 3384, 3385, 3386, 3388, 3389, 3391,
- 3393, 3394, 3395, 3397, 3399, 3401, 3403, 3404,
- 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412,
- 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420,
- 3421, 3422, 3423, 3424, 3425, 3428, 3431, 3432,
- 3433, 3434, 3435, 3436, 3437, 3439, 3441, 3443,
- 3444, 3445, 3446, 3447, 3448, 3449, 3451, 3452,
- 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3461,
- 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470,
- 3471, 3472, 3473, 3476, 3479, 3480, 3481, 3482,
- 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490,
- 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498,
- 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3506,
- 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514,
- 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522,
- 3523, 3524, 3525, 3526, 3527, 3528, 3529, 3530,
- 3531, 3532, 3533, 3534, 3535, 3536, 3537, 3540,
- 3542, 3545, 3548, 3550, 3553, 3556, 3559, 3562,
- 3563, 3566, 3567, 3568, 3569, 3570, 3571, 3575,
- 3577, 3580, 3581, 3582, 3583, 3584, 3585, 3586,
- 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594,
- 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602,
- 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610,
- 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618,
- 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626,
- 3627, 3628, 3629, 3630, 3631, 3633, 3634, 3635,
- 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643,
- 3644, 3645, 3646, 3647, 3648, 3649, 3650, 3651,
- 3652, 3653, 3654, 3655, 3656, 3657, 3658, 3659,
- 3660, 3661, 3662, 3663, 3664, 3665, 3666, 3667,
- 3668, 3669, 3670, 3671, 3672, 3675, 3678, 3681,
- 3684, 3687, 3690, 3693, 3696, 3699, 3702, 3705,
- 3708, 3711, 3714, 3717, 3718, 3719, 3720, 3721,
- 3723, 3724, 3725, 3726, 3727, 3728, 3729, 3730,
- 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738,
- 3739, 3740, 3741, 3742, 3743, 3744, 3745, 3746,
- 3747, 3748, 3749, 3750, 3751, 3752, 3753, 3754,
- 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762,
- 3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770,
- 3771, 3772, 3773, 3774, 3775, 3776, 3777, 3778,
- 3779, 3780, 3781, 3782, 3783, 3784, 3787, 3790,
- 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798,
- 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806,
- 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814,
- 3815, 3816, 3817, 3818, 3819, 3820, 3821, 3822,
- 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830,
- 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838,
- 3839, 3840, 3841, 3842, 3843, 3844, 3845, 3846,
- 3847, 3848, 3849, 3850, 3851, 3852, 3855, 3858,
- 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3868,
- 3869, 3870, 3871, 3872, 3873, 3874, 3875, 3876,
- 3877, 3880, 3883, 3884, 3885, 3888, 3889, 3890,
- 3891, 3892, 3895, 3898, 3901, 3902, 3903, 3904,
- 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3913,
- 3914, 3915, 3916, 3918, 3919, 3920, 3921, 3922,
- 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930,
- 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938,
- 3939, 3940, 3942, 3944, 3945, 3946, 3947, 3948,
- 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956,
- 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964,
- 3965, 3966, 3967, 3968, 3969, 3971, 3973, 3975,
+ 975, 976, 977, 978, 979, 980, 982, 983,
+ 985, 987, 988, 989, 990, 991, 992, 993,
+ 994, 996, 998, 1000, 1002, 1004, 1006, 1008,
+ 1010, 1012, 1014, 1016, 1018, 1020, 1022, 1024,
+ 1026, 1028, 1030, 1032, 1034, 1036, 1038, 1040,
+ 1042, 1044, 1046, 1048, 1050, 1052, 1054, 1056,
+ 1058, 1060, 1062, 1064, 1066, 1068, 1070, 1072,
+ 1074, 1076, 1078, 1080, 1082, 1084, 1086, 1088,
+ 1090, 1092, 1094, 1096, 1098, 1100, 1102, 1104,
+ 1106, 1108, 1110, 1112, 1114, 1116, 1118, 1120,
+ 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128,
+ 1129, 1130, 1131, 1132, 1135, 1138, 1141, 1144,
+ 1147, 1150, 1151, 1152, 1153, 1154, 1155, 1156,
+ 1162, 1172, 1176, 1180, 1184, 1188, 1192, 1195,
+ 1199, 1203, 1207, 1211, 1215, 1218, 1221, 1224,
+ 1227, 1230, 1233, 1236, 1239, 1243, 1247, 1251,
+ 1254, 1262, 1268, 1276, 1284, 1290, 1298, 1304,
+ 1312, 1316, 1320, 1323, 1327, 1331, 1335, 1339,
+ 1343, 1347, 1351, 1354, 1358, 1362, 1365, 1368,
+ 1370, 1372, 1374, 1376, 1378, 1380, 1382, 1384,
+ 1386, 1388, 1390, 1392, 1395, 1398, 1401, 1404,
+ 1406, 1408, 1410, 1412, 1414, 1416, 1418, 1420,
+ 1422, 1424, 1426, 1428, 1430, 1432, 1434, 1436,
+ 1438, 1440, 1442, 1443, 1444, 1450, 1452, 1453,
+ 1455, 1457, 1458, 1460, 1462, 1465, 1467, 1470,
+ 1472, 1474, 1475, 1477, 1480, 1482, 1486, 1490,
+ 1499, 1505, 1509, 1513, 1517, 1521, 1524, 1528,
+ 1529, 1530, 1531, 1532, 1536, 1537, 1540, 1543,
+ 1546, 1549, 1550, 1552, 1554, 1556, 1558, 1560,
+ 1562, 1564, 1567, 1570, 1573, 1576, 1579, 1582,
+ 1585, 1588, 1591, 1594, 1597, 1600, 1603, 1606,
+ 1609, 1612, 1614, 1616, 1618, 1620, 1622, 1624,
+ 1626, 1628, 1630, 1632, 1634, 1636, 1638, 1640,
+ 1642, 1644, 1646, 1648, 1651, 1654, 1660, 1663,
+ 1668, 1673, 1675, 1678, 1683, 1686, 1689, 1692,
+ 1695, 1698, 1701, 1704, 1706, 1709, 1711, 1712,
+ 1715, 1717, 1719, 1721, 1724, 1726, 1727, 1729,
+ 1732, 1734, 1736, 1738, 1740, 1741, 1742, 1746,
+ 1748, 1751, 1754, 1757, 1760, 1763, 1766, 1768,
+ 1770, 1772, 1774, 1776, 1778, 1781, 1784, 1786,
+ 1788, 1790, 1791, 1792, 1795, 1797, 1798, 1799,
+ 1800, 1801, 1802, 1803, 1805, 1807, 1808, 1809,
+ 1810, 1811, 1814, 1817, 1820, 1823, 1826, 1829,
+ 1832, 1835, 1838, 1842, 1846, 1850, 1853, 1856,
+ 1859, 1863, 1867, 1871, 1874, 1876, 1878, 1882,
+ 1886, 1888, 1890, 1894, 1896, 1898, 1900, 1903,
+ 1907, 1909, 1911, 1917, 1920, 1923, 1925, 1931,
+ 1934, 1937, 1940, 1942, 1944, 1947, 1950, 1952,
+ 1954, 1957, 1960, 1963, 1965, 1967, 1969, 1971,
+ 1973, 1975, 1977, 1979, 1981, 1983, 1986, 1988,
+ 1990, 1993, 1995, 1998, 2000, 2002, 2006, 2010,
+ 2012, 2014, 2018, 2019, 2020, 2021, 2022, 2023,
+ 2024, 2025, 2026, 2028, 2030, 2032, 2034, 2036,
+ 2038, 2040, 2042, 2044, 2046, 2048, 2050, 2052,
+ 2054, 2056, 2058, 2060, 2062, 2064, 2066, 2068,
+ 2070, 2072, 2074, 2076, 2078, 2080, 2082, 2084,
+ 2086, 2088, 2090, 2092, 2094, 2096, 2098, 2100,
+ 2102, 2103, 2104, 2106, 2108, 2110, 2112, 2114,
+ 2116, 2118, 2120, 2121, 2122, 2123, 2124, 2125,
+ 2128, 2130, 2132, 2134, 2136, 2138, 2140, 2142,
+ 2144, 2146, 2148, 2150, 2152, 2154, 2156, 2158,
+ 2160, 2162, 2164, 2166, 2168, 2170, 2172, 2174,
+ 2176, 2178, 2180, 2182, 2184, 2186, 2188, 2190,
+ 2192, 2194, 2196, 2198, 2200, 2202, 2204, 2206,
+ 2208, 2210, 2212, 2214, 2216, 2218, 2220, 2222,
+ 2224, 2226, 2228, 2230, 2232, 2234, 2236, 2238,
+ 2240, 2242, 2244, 2246, 2248, 2250, 2252, 2254,
+ 2256, 2258, 2260, 2262, 2264, 2266, 2268, 2270,
+ 2272, 2274, 2276, 2278, 2280, 2282, 2284, 2286,
+ 2288, 2290, 2292, 2294, 2296, 2298, 2300, 2302,
+ 2304, 2306, 2308, 2310, 2312, 2314, 2316, 2318,
+ 2320, 2322, 2324, 2326, 2328, 2330, 2332, 2334,
+ 2336, 2338, 2340, 2342, 2344, 2346, 2348, 2350,
+ 2352, 2354, 2356, 2358, 2360, 2362, 2364, 2366,
+ 2368, 2370, 2372, 2374, 2376, 2378, 2380, 2382,
+ 2384, 2386, 2388, 2390, 2392, 2394, 2396, 2398,
+ 2400, 2402, 2404, 2406, 2408, 2410, 2412, 2414,
+ 2416, 2418, 2420, 2422, 2424, 2426, 2428, 2430,
+ 2432, 2434, 2436, 2438, 2440, 2442, 2444, 2446,
+ 2448, 2450, 2452, 2454, 2456, 2458, 2460, 2462,
+ 2464, 2466, 2468, 2470, 2472, 2474, 2476, 2478,
+ 2480, 2482, 2484, 2486, 2488, 2490, 2492, 2494,
+ 2496, 2498, 2500, 2502, 2504, 2506, 2508, 2510,
+ 2515, 2517, 2522, 2524, 2526, 2531, 2533, 2535,
+ 2537, 2542, 2544, 2546, 2548, 2552, 2558, 2560,
+ 2565, 2567, 2569, 2571, 2573, 2575, 2576, 2577,
+ 2578, 2580, 2581, 2582, 2583, 2584, 2585, 2587,
+ 2588, 2589, 2590, 2592, 2594, 2596, 2598, 2602,
+ 2606, 2607, 2608, 2610, 2614, 2618, 2620, 2624,
+ 2628, 2629, 2630, 2632, 2634, 2636, 2638, 2643,
+ 2647, 2651, 2653, 2655, 2657, 2659, 2661, 2663,
+ 2665, 2667, 2669, 2671, 2673, 2675, 2677, 2679,
+ 2681, 2683, 2685, 2687, 2689, 2691, 2693, 2694,
+ 2695, 2697, 2699, 2700, 2701, 2704, 2707, 2710,
+ 2713, 2715, 2717, 2719, 2721, 2723, 2725, 2726,
+ 2727, 2728, 2730, 2734, 2736, 2738, 2744, 2748,
+ 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2759,
+ 2761, 2763, 2767, 2769, 2771, 2773, 2775, 2777,
+ 2779, 2781, 2783, 2785, 2787, 2789, 2791, 2793,
+ 2795, 2796, 2799, 2802, 2805, 2808, 2813, 2818,
+ 2823, 2828, 2831, 2834, 2837, 2840, 2842, 2844,
+ 2846, 2848, 2850, 2852, 2854, 2855, 2857, 2859,
+ 2861, 2863, 2865, 2866, 2867, 2868, 2872, 2876,
+ 2878, 2882, 2886, 2890, 2894, 2898, 2900, 2904,
+ 2906, 2908, 2910, 2912, 2914, 2916, 2918, 2920,
+ 2921, 2923, 2925, 2927, 2929, 2931, 2933, 2935,
+ 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944,
+ 2945, 2946, 2948, 2950, 2952, 2954, 2956, 2958,
+ 2959, 2960, 2961, 2963, 2965, 2967, 2969, 2971,
+ 2973, 2974, 2975, 2976, 2977, 2980, 2983, 2985,
+ 2988, 2989, 2990, 2992, 2993, 2995, 2996, 2997,
+ 2999, 3001, 3002, 3003, 3004, 3005, 3006, 3009,
+ 3014, 3019, 3024, 3029, 3032, 3037, 3042, 3044,
+ 3046, 3048, 3050, 3051, 3052, 3054, 3056, 3058,
+ 3060, 3062, 3064, 3066, 3067, 3068, 3069, 3070,
+ 3071, 3072, 3077, 3082, 3083, 3084, 3085, 3086,
+ 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094,
+ 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102,
+ 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110,
+ 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118,
+ 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126,
+ 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134,
+ 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142,
+ 3143, 3144, 3145, 3146, 3147, 3148, 3149, 3150,
+ 3151, 3152, 3153, 3154, 3155, 3156, 3157, 3158,
+ 3159, 3160, 3161, 3162, 3163, 3164, 3165, 3166,
+ 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174,
+ 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182,
+ 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190,
+ 3191, 3192, 3193, 3194, 3195, 3196, 3197, 3198,
+ 3199, 3200, 3201, 3202, 3203, 3204, 3205, 3206,
+ 3207, 3208, 3209, 3210, 3211, 3212, 3213, 3214,
+ 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222,
+ 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230,
+ 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238,
+ 3239, 3240, 3241, 3242, 3243, 3244, 3245, 3246,
+ 3247, 3248, 3249, 3250, 3251, 3252, 3253, 3254,
+ 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262,
+ 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270,
+ 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278,
+ 3279, 3280, 3281, 3282, 3283, 3285, 3287, 3288,
+ 3289, 3290, 3291, 3292, 3293, 3294, 3295, 3296,
+ 3297, 3298, 3299, 3300, 3301, 3302, 3303, 3304,
+ 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312,
+ 3313, 3314, 3315, 3317, 3319, 3321, 3323, 3324,
+ 3325, 3326, 3327, 3328, 3329, 3330, 3331, 3332,
+ 3333, 3334, 3335, 3336, 3338, 3339, 3340, 3341,
+ 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350,
+ 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358,
+ 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366,
+ 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374,
+ 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382,
+ 3383, 3384, 3386, 3388, 3389, 3390, 3392, 3393,
+ 3395, 3397, 3398, 3399, 3401, 3403, 3405, 3407,
+ 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415,
+ 3416, 3417, 3418, 3419, 3420, 3421, 3422, 3423,
+ 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431,
+ 3434, 3437, 3438, 3439, 3440, 3441, 3442, 3443,
+ 3445, 3447, 3449, 3450, 3451, 3452, 3453, 3454,
+ 3455, 3457, 3458, 3459, 3460, 3461, 3462, 3463,
+ 3464, 3465, 3467, 3469, 3470, 3471, 3472, 3473,
+ 3474, 3475, 3476, 3477, 3478, 3479, 3482, 3485,
+ 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493,
+ 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501,
+ 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509,
+ 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517,
+ 3518, 3519, 3520, 3521, 3522, 3523, 3524, 3525,
+ 3526, 3527, 3528, 3529, 3530, 3531, 3532, 3533,
+ 3534, 3535, 3536, 3537, 3538, 3539, 3540, 3541,
+ 3542, 3543, 3546, 3548, 3551, 3554, 3556, 3559,
+ 3562, 3565, 3568, 3569, 3572, 3573, 3574, 3575,
+ 3576, 3577, 3581, 3583, 3586, 3587, 3588, 3589,
+ 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597,
+ 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605,
+ 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613,
+ 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621,
+ 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629,
+ 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637,
+ 3639, 3640, 3641, 3642, 3643, 3644, 3645, 3646,
+ 3647, 3648, 3649, 3650, 3651, 3652, 3653, 3654,
+ 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662,
+ 3663, 3664, 3665, 3666, 3667, 3668, 3669, 3670,
+ 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678,
+ 3681, 3684, 3687, 3690, 3693, 3696, 3699, 3702,
+ 3705, 3708, 3711, 3714, 3717, 3720, 3723, 3724,
+ 3725, 3726, 3727, 3729, 3730, 3731, 3732, 3733,
+ 3734, 3735, 3736, 3737, 3738, 3739, 3740, 3741,
+ 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749,
+ 3750, 3751, 3752, 3753, 3754, 3755, 3756, 3757,
+ 3758, 3759, 3760, 3761, 3762, 3763, 3764, 3765,
+ 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773,
+ 3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781,
+ 3782, 3783, 3784, 3785, 3786, 3787, 3788, 3789,
+ 3790, 3793, 3796, 3797, 3798, 3799, 3800, 3801,
+ 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809,
+ 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817,
+ 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825,
+ 3826, 3827, 3828, 3829, 3830, 3831, 3832, 3833,
+ 3834, 3835, 3836, 3837, 3838, 3839, 3840, 3841,
+ 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849,
+ 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857,
+ 3858, 3861, 3864, 3867, 3868, 3869, 3870, 3871,
+ 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879,
+ 3880, 3881, 3882, 3883, 3886, 3889, 3890, 3891,
+ 3894, 3895, 3896, 3897, 3898, 3901, 3904, 3907,
+ 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915,
+ 3916, 3917, 3919, 3920, 3921, 3922, 3924, 3925,
+ 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933,
+ 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941,
+ 3942, 3943, 3944, 3945, 3946, 3948, 3950, 3951,
+ 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959,
+ 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967,
+ 3968, 3969, 3970, 3971, 3972, 3973, 3974, 3975,
3977, 3979, 3981, 3983, 3985, 3987, 3989, 3991,
- 3993, 3995, 3997, 3999, 4001, 4002, 4003, 4004,
- 4006, 4007, 4009, 4012, 4014, 4015, 4016, 4018,
- 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4028,
- 4030, 4032, 4034, 4035, 4036, 4037, 4038, 4039,
- 4040, 4041, 4042, 4043, 4045, 4047, 4048, 4050,
- 4052, 4053, 4058, 4060, 4062, 4063, 4064, 4065,
- 4066, 4067, 4068, 4069, 4071, 4073, 4074, 4075,
- 4076, 4078, 4081, 4085, 4088, 4090, 4091, 4092,
- 4093, 4094, 4095, 4096, 4097, 4098, 4099, 4100,
- 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108,
- 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116,
- 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124,
- 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132,
- 4133, 4135, 4137, 4139, 4141, 4143, 4145, 4146,
- 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154,
- 4155, 4156, 4157, 4158, 4159, 4160, 4161, 4162,
- 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170,
- 4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178,
- 4179, 4180, 4181, 4182, 4183, 4184, 4185, 4186,
- 4187, 4188, 4189, 4190, 4191, 4192, 4193, 4194,
- 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202,
- 4203, 4204, 4205, 4206, 4207, 4208, 4209, 4210,
- 4211, 4212, 4213, 4214, 4215, 4216, 4217, 4218,
- 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4226,
- 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234,
- 4235, 4236, 4237, 4238, 4239, 4240, 4241, 4242,
- 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250,
- 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258,
- 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266,
- 4267, 4268, 4271, 4272, 4273, 4276, 4277, 4278,
- 4280, 4281, 4282, 4283, 4285, 4286, 4287, 4288,
- 4290, 4291, 4292, 4293, 4296, 4297, 4298, 4299,
- 4300, 4303, 4306, 4309, 4312, 4315, 4316, 4317,
- 4318, 4319, 4321, 4323, 4324, 4325, 4326, 4329,
- 4332, 4335, 4338, 4341, 4342, 4343, 4344, 4346,
- 4347, 4348, 4349, 4352, 4353, 4354, 4355, 4356,
- 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364,
- 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372,
- 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380,
- 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388,
- 4390, 4391, 4392, 4394, 4396, 4398, 4400, 4402,
- 4403, 4404, 4407, 4410, 4411, 4412, 4413, 4414,
- 4415, 4416, 4418, 4420, 4422, 4424, 4425, 4426,
- 4427, 4428, 4431, 4432, 4433, 4436, 4437, 4438,
- 4441, 4442, 4443, 4446, 4447, 4448, 4451, 4452,
- 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460,
- 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468,
- 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476,
- 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484,
- 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492,
- 4493, 4494, 4495, 4498, 4499, 4500, 4503, 4504,
- 4505, 4506, 4507, 4508, 4509, 4512, 4515, 4516,
- 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524,
- 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532,
- 4533, 4535, 4536, 4537, 4538, 4539
+ 3993, 3995, 3997, 3999, 4001, 4003, 4005, 4007,
+ 4008, 4009, 4010, 4012, 4013, 4015, 4018, 4020,
+ 4021, 4022, 4024, 4026, 4027, 4028, 4029, 4030,
+ 4031, 4032, 4034, 4036, 4038, 4040, 4041, 4042,
+ 4043, 4044, 4045, 4046, 4047, 4048, 4049, 4051,
+ 4053, 4054, 4056, 4058, 4059, 4064, 4066, 4068,
+ 4069, 4070, 4071, 4072, 4073, 4074, 4075, 4077,
+ 4079, 4080, 4081, 4082, 4084, 4087, 4091, 4094,
+ 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103,
+ 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111,
+ 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119,
+ 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127,
+ 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135,
+ 4136, 4137, 4138, 4139, 4141, 4143, 4145, 4147,
+ 4149, 4151, 4152, 4153, 4154, 4155, 4156, 4157,
+ 4158, 4159, 4160, 4161, 4162, 4163, 4164, 4165,
+ 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173,
+ 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181,
+ 4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189,
+ 4190, 4191, 4192, 4193, 4194, 4195, 4196, 4197,
+ 4198, 4199, 4200, 4201, 4202, 4203, 4204, 4205,
+ 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213,
+ 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221,
+ 4222, 4223, 4224, 4225, 4226, 4227, 4228, 4229,
+ 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237,
+ 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245,
+ 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253,
+ 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261,
+ 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269,
+ 4270, 4271, 4272, 4273, 4274, 4277, 4278, 4279,
+ 4282, 4283, 4284, 4286, 4287, 4288, 4289, 4291,
+ 4292, 4293, 4294, 4296, 4297, 4298, 4299, 4302,
+ 4303, 4304, 4305, 4306, 4309, 4312, 4315, 4318,
+ 4321, 4322, 4323, 4324, 4325, 4327, 4329, 4330,
+ 4331, 4332, 4335, 4338, 4341, 4344, 4347, 4348,
+ 4349, 4350, 4352, 4353, 4354, 4355, 4358, 4359,
+ 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367,
+ 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375,
+ 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383,
+ 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391,
+ 4392, 4393, 4394, 4396, 4397, 4398, 4400, 4402,
+ 4404, 4406, 4408, 4409, 4410, 4413, 4416, 4417,
+ 4418, 4419, 4420, 4421, 4422, 4424, 4426, 4428,
+ 4430, 4431, 4432, 4433, 4434, 4437, 4438, 4439,
+ 4442, 4443, 4444, 4447, 4448, 4449, 4452, 4453,
+ 4454, 4457, 4458, 4459, 4460, 4461, 4462, 4463,
+ 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471,
+ 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479,
+ 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487,
+ 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495,
+ 4496, 4497, 4498, 4499, 4500, 4501, 4504, 4505,
+ 4506, 4509, 4510, 4511, 4512, 4513, 4514, 4515,
+ 4518, 4521, 4522, 4523, 4524, 4525, 4526, 4527,
+ 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535,
+ 4536, 4537, 4538, 4539, 4541, 4542, 4543, 4544,
+ 4545
};
/* i386 mnemonics table. */
@@ -48226,6 +48275,7 @@ const char i386_mnemonics[] =
"\0""vsm3msg2"
"\0""sha256msg2"
"\0""push2"
+ "\0""montmul2"
"\0""sm2"
"\0""fldln2"
"\0""pop2"
@@ -49492,6 +49542,7 @@ const char i386_mnemonics[] =
"\0""setzup"
"\0""fdivp"
"\0""cfcmovp"
+ "\0""xmodexp"
"\0""vpbroadcastmb2q"
"\0""vpermi2q"
"\0""vpmovm2q"
@@ -50396,6 +50447,7 @@ const char i386_mnemonics[] =
"\0""{store}"
"\0""{nooptimize}"
"\0""{nf}"
+ "\0""{noimm8s}"
"\0""{rex}"
"\0""{evex}"
"\0""{vex}"
@@ -50439,11 +50491,11 @@ static const reg_entry i386_regtab[] =
0, 0, 0, 0, 0, 0 } },
0, 7, { Dw2Inval, Dw2Inval } },
{ "axl",
- { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+ { { 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 } },
RegRex64, 0, { Dw2Inval, Dw2Inval } },
{ "cxl",
- { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
+ { { 1, 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 } },
RegRex64, 1, { Dw2Inval, Dw2Inval } },
{ "dxl",
@@ -50951,35 +51003,35 @@ static const reg_entry i386_regtab[] =
0, 0, 0, 0, 0, 0 } },
RegRex2|RegRex, 7, { Dw2Inval, 145 } },
{ "k0",
- { { 8, 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, { 93, 118 } },
{ "k1",
- { { 8, 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, 1, { 94, 119 } },
{ "k2",
- { { 8, 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, 2, { 95, 120 } },
{ "k3",
- { { 8, 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, 3, { 96, 121 } },
{ "k4",
- { { 8, 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, 4, { 97, 122 } },
{ "k5",
- { { 8, 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, 5, { 98, 123 } },
{ "k6",
- { { 8, 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, 6, { 99, 124 } },
{ "k7",
- { { 8, 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, 7, { 100, 125 } },
{ "es",
@@ -51011,691 +51063,691 @@ static const reg_entry i386_regtab[] =
0, 0, 0, 0, 0, 0 } },
0, RegFlat, { Dw2Inval, Dw2Inval } },
{ "cr0",
- { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 0, { Dw2Inval, Dw2Inval } },
{ "cr1",
- { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 1, { Dw2Inval, Dw2Inval } },
{ "cr2",
- { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 2, { Dw2Inval, Dw2Inval } },
{ "cr3",
- { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 3, { Dw2Inval, Dw2Inval } },
{ "cr4",
- { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 4, { Dw2Inval, Dw2Inval } },
{ "cr5",
- { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 5, { Dw2Inval, Dw2Inval } },
{ "cr6",
- { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 6, { Dw2Inval, Dw2Inval } },
{ "cr7",
- { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 7, { Dw2Inval, Dw2Inval } },
{ "cr8",
- { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 0, { Dw2Inval, Dw2Inval } },
{ "cr9",
- { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 1, { Dw2Inval, Dw2Inval } },
{ "cr10",
- { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 2, { Dw2Inval, Dw2Inval } },
{ "cr11",
- { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 3, { Dw2Inval, Dw2Inval } },
{ "cr12",
- { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 4, { Dw2Inval, Dw2Inval } },
{ "cr13",
- { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 5, { Dw2Inval, Dw2Inval } },
{ "cr14",
- { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 6, { Dw2Inval, Dw2Inval } },
{ "cr15",
- { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 7, { Dw2Inval, Dw2Inval } },
{ "db0",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 0, { Dw2Inval, Dw2Inval } },
{ "db1",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 1, { Dw2Inval, Dw2Inval } },
{ "db2",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 2, { Dw2Inval, Dw2Inval } },
{ "db3",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 3, { Dw2Inval, Dw2Inval } },
{ "db4",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 4, { Dw2Inval, Dw2Inval } },
{ "db5",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 5, { Dw2Inval, Dw2Inval } },
{ "db6",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 6, { Dw2Inval, Dw2Inval } },
{ "db7",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 7, { Dw2Inval, Dw2Inval } },
{ "db8",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 0, { Dw2Inval, Dw2Inval } },
{ "db9",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 1, { Dw2Inval, Dw2Inval } },
{ "db10",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 2, { Dw2Inval, Dw2Inval } },
{ "db11",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 3, { Dw2Inval, Dw2Inval } },
{ "db12",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 4, { Dw2Inval, Dw2Inval } },
{ "db13",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 5, { Dw2Inval, Dw2Inval } },
{ "db14",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 6, { Dw2Inval, Dw2Inval } },
{ "db15",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 7, { Dw2Inval, Dw2Inval } },
{ "dr0",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 0, { Dw2Inval, Dw2Inval } },
{ "dr1",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 1, { Dw2Inval, Dw2Inval } },
{ "dr2",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 2, { Dw2Inval, Dw2Inval } },
{ "dr3",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 3, { Dw2Inval, Dw2Inval } },
{ "dr4",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 4, { Dw2Inval, Dw2Inval } },
{ "dr5",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 5, { Dw2Inval, Dw2Inval } },
{ "dr6",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 6, { Dw2Inval, Dw2Inval } },
{ "dr7",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
0, 7, { Dw2Inval, Dw2Inval } },
{ "dr8",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 0, { Dw2Inval, Dw2Inval } },
{ "dr9",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 1, { Dw2Inval, Dw2Inval } },
{ "dr10",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 2, { Dw2Inval, Dw2Inval } },
{ "dr11",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 3, { Dw2Inval, Dw2Inval } },
{ "dr12",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 4, { Dw2Inval, Dw2Inval } },
{ "dr13",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 5, { Dw2Inval, Dw2Inval } },
{ "dr14",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 6, { Dw2Inval, Dw2Inval } },
{ "dr15",
- { { 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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 } },
RegRex, 7, { Dw2Inval, Dw2Inval } },
{ "tr0",
- { { 5, 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, { Dw2Inval, Dw2Inval } },
{ "tr1",
- { { 5, 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, 1, { Dw2Inval, Dw2Inval } },
{ "tr2",
- { { 5, 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, 2, { Dw2Inval, Dw2Inval } },
{ "tr3",
- { { 5, 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, 3, { Dw2Inval, Dw2Inval } },
{ "tr4",
- { { 5, 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, 4, { Dw2Inval, Dw2Inval } },
{ "tr5",
- { { 5, 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, 5, { Dw2Inval, Dw2Inval } },
{ "tr6",
- { { 5, 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, 6, { Dw2Inval, Dw2Inval } },
{ "tr7",
- { { 5, 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, 7, { Dw2Inval, Dw2Inval } },
{ "mm0",
- { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0 } },
0, 0, { 29, 41 } },
{ "mm1",
- { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0 } },
0, 1, { 30, 42 } },
{ "mm2",
- { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0 } },
0, 2, { 31, 43 } },
{ "mm3",
- { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0 } },
0, 3, { 32, 44 } },
{ "mm4",
- { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0 } },
0, 4, { 33, 45 } },
{ "mm5",
- { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0 } },
0, 5, { 34, 46 } },
{ "mm6",
- { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0 } },
0, 6, { 35, 47 } },
{ "mm7",
- { { 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0 } },
0, 7, { 36, 48 } },
{ "xmm0",
- { { 7, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ { { 8, 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, { 21, 17 } },
{ "xmm1",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
0, 1, { 22, 18 } },
{ "xmm2",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
0, 2, { 23, 19 } },
{ "xmm3",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
0, 3, { 24, 20 } },
{ "xmm4",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
0, 4, { 25, 21 } },
{ "xmm5",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
0, 5, { 26, 22 } },
{ "xmm6",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
0, 6, { 27, 23 } },
{ "xmm7",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
0, 7, { 28, 24 } },
{ "xmm8",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegRex, 0, { Dw2Inval, 25 } },
{ "xmm9",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegRex, 1, { Dw2Inval, 26 } },
{ "xmm10",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegRex, 2, { Dw2Inval, 27 } },
{ "xmm11",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegRex, 3, { Dw2Inval, 28 } },
{ "xmm12",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegRex, 4, { Dw2Inval, 29 } },
{ "xmm13",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegRex, 5, { Dw2Inval, 30 } },
{ "xmm14",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegRex, 6, { Dw2Inval, 31 } },
{ "xmm15",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegRex, 7, { Dw2Inval, 32 } },
{ "xmm16",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegVRex, 0, { Dw2Inval, 67 } },
{ "xmm17",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegVRex, 1, { Dw2Inval, 68 } },
{ "xmm18",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegVRex, 2, { Dw2Inval, 69 } },
{ "xmm19",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegVRex, 3, { Dw2Inval, 70 } },
{ "xmm20",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegVRex, 4, { Dw2Inval, 71 } },
{ "xmm21",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegVRex, 5, { Dw2Inval, 72 } },
{ "xmm22",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegVRex, 6, { Dw2Inval, 73 } },
{ "xmm23",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegVRex, 7, { Dw2Inval, 74 } },
{ "xmm24",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegVRex|RegRex, 0, { Dw2Inval, 75 } },
{ "xmm25",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegVRex|RegRex, 1, { Dw2Inval, 76 } },
{ "xmm26",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegVRex|RegRex, 2, { Dw2Inval, 77 } },
{ "xmm27",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegVRex|RegRex, 3, { Dw2Inval, 78 } },
{ "xmm28",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegVRex|RegRex, 4, { Dw2Inval, 79 } },
{ "xmm29",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegVRex|RegRex, 5, { Dw2Inval, 80 } },
{ "xmm30",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegVRex|RegRex, 6, { Dw2Inval, 81 } },
{ "xmm31",
- { { 7, 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,
1, 0, 0, 0, 0, 0 } },
RegVRex|RegRex, 7, { Dw2Inval, 82 } },
{ "ymm0",
- { { 7, 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, 1, 0, 0, 0, 0 } },
0, 0, { 21, 17 } },
{ "ymm1",
- { { 7, 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, 1, 0, 0, 0, 0 } },
0, 1, { 22, 18 } },
{ "ymm2",
- { { 7, 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, 1, 0, 0, 0, 0 } },
0, 2, { 23, 19 } },
{ "ymm3",
- { { 7, 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, 1, 0, 0, 0, 0 } },
0, 3, { 24, 20 } },
{ "ymm4",
- { { 7, 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, 1, 0, 0, 0, 0 } },
0, 4, { 25, 21 } },
{ "ymm5",
- { { 7, 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, 1, 0, 0, 0, 0 } },
0, 5, { 26, 22 } },
{ "ymm6",
- { { 7, 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, 1, 0, 0, 0, 0 } },
0, 6, { 27, 23 } },
{ "ymm7",
- { { 7, 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, 1, 0, 0, 0, 0 } },
0, 7, { 28, 24 } },
{ "ymm8",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegRex, 0, { Dw2Inval, 25 } },
{ "ymm9",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegRex, 1, { Dw2Inval, 26 } },
{ "ymm10",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegRex, 2, { Dw2Inval, 27 } },
{ "ymm11",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegRex, 3, { Dw2Inval, 28 } },
{ "ymm12",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegRex, 4, { Dw2Inval, 29 } },
{ "ymm13",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegRex, 5, { Dw2Inval, 30 } },
{ "ymm14",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegRex, 6, { Dw2Inval, 31 } },
{ "ymm15",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegRex, 7, { Dw2Inval, 32 } },
{ "ymm16",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegVRex, 0, { Dw2Inval, 67 } },
{ "ymm17",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegVRex, 1, { Dw2Inval, 68 } },
{ "ymm18",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegVRex, 2, { Dw2Inval, 69 } },
{ "ymm19",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegVRex, 3, { Dw2Inval, 70 } },
{ "ymm20",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegVRex, 4, { Dw2Inval, 71 } },
{ "ymm21",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegVRex, 5, { Dw2Inval, 72 } },
{ "ymm22",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegVRex, 6, { Dw2Inval, 73 } },
{ "ymm23",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegVRex, 7, { Dw2Inval, 74 } },
{ "ymm24",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegVRex|RegRex, 0, { Dw2Inval, 75 } },
{ "ymm25",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegVRex|RegRex, 1, { Dw2Inval, 76 } },
{ "ymm26",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegVRex|RegRex, 2, { Dw2Inval, 77 } },
{ "ymm27",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegVRex|RegRex, 3, { Dw2Inval, 78 } },
{ "ymm28",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegVRex|RegRex, 4, { Dw2Inval, 79 } },
{ "ymm29",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegVRex|RegRex, 5, { Dw2Inval, 80 } },
{ "ymm30",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegVRex|RegRex, 6, { Dw2Inval, 81 } },
{ "ymm31",
- { { 7, 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, 1, 0, 0, 0, 0 } },
RegVRex|RegRex, 7, { Dw2Inval, 82 } },
{ "zmm0",
- { { 7, 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, 1, 0, 0, 0 } },
0, 0, { 21, 17 } },
{ "zmm1",
- { { 7, 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, 1, 0, 0, 0 } },
0, 1, { 22, 18 } },
{ "zmm2",
- { { 7, 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, 1, 0, 0, 0 } },
0, 2, { 23, 19 } },
{ "zmm3",
- { { 7, 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, 1, 0, 0, 0 } },
0, 3, { 24, 20 } },
{ "zmm4",
- { { 7, 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, 1, 0, 0, 0 } },
0, 4, { 25, 21 } },
{ "zmm5",
- { { 7, 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, 1, 0, 0, 0 } },
0, 5, { 26, 22 } },
{ "zmm6",
- { { 7, 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, 1, 0, 0, 0 } },
0, 6, { 27, 23 } },
{ "zmm7",
- { { 7, 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, 1, 0, 0, 0 } },
0, 7, { 28, 24 } },
{ "zmm8",
- { { 7, 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, 1, 0, 0, 0 } },
RegRex, 0, { Dw2Inval, 25 } },
{ "zmm9",
- { { 7, 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, 1, 0, 0, 0 } },
RegRex, 1, { Dw2Inval, 26 } },
{ "zmm10",
- { { 7, 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, 1, 0, 0, 0 } },
RegRex, 2, { Dw2Inval, 27 } },
{ "zmm11",
- { { 7, 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, 1, 0, 0, 0 } },
RegRex, 3, { Dw2Inval, 28 } },
{ "zmm12",
- { { 7, 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, 1, 0, 0, 0 } },
RegRex, 4, { Dw2Inval, 29 } },
{ "zmm13",
- { { 7, 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, 1, 0, 0, 0 } },
RegRex, 5, { Dw2Inval, 30 } },
{ "zmm14",
- { { 7, 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, 1, 0, 0, 0 } },
RegRex, 6, { Dw2Inval, 31 } },
{ "zmm15",
- { { 7, 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, 1, 0, 0, 0 } },
RegRex, 7, { Dw2Inval, 32 } },
{ "zmm16",
- { { 7, 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, 1, 0, 0, 0 } },
RegVRex, 0, { Dw2Inval, 67 } },
{ "zmm17",
- { { 7, 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, 1, 0, 0, 0 } },
RegVRex, 1, { Dw2Inval, 68 } },
{ "zmm18",
- { { 7, 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, 1, 0, 0, 0 } },
RegVRex, 2, { Dw2Inval, 69 } },
{ "zmm19",
- { { 7, 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, 1, 0, 0, 0 } },
RegVRex, 3, { Dw2Inval, 70 } },
{ "zmm20",
- { { 7, 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, 1, 0, 0, 0 } },
RegVRex, 4, { Dw2Inval, 71 } },
{ "zmm21",
- { { 7, 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, 1, 0, 0, 0 } },
RegVRex, 5, { Dw2Inval, 72 } },
{ "zmm22",
- { { 7, 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, 1, 0, 0, 0 } },
RegVRex, 6, { Dw2Inval, 73 } },
{ "zmm23",
- { { 7, 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, 1, 0, 0, 0 } },
RegVRex, 7, { Dw2Inval, 74 } },
{ "zmm24",
- { { 7, 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, 1, 0, 0, 0 } },
RegVRex|RegRex, 0, { Dw2Inval, 75 } },
{ "zmm25",
- { { 7, 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, 1, 0, 0, 0 } },
RegVRex|RegRex, 1, { Dw2Inval, 76 } },
{ "zmm26",
- { { 7, 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, 1, 0, 0, 0 } },
RegVRex|RegRex, 2, { Dw2Inval, 77 } },
{ "zmm27",
- { { 7, 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, 1, 0, 0, 0 } },
RegVRex|RegRex, 3, { Dw2Inval, 78 } },
{ "zmm28",
- { { 7, 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, 1, 0, 0, 0 } },
RegVRex|RegRex, 4, { Dw2Inval, 79 } },
{ "zmm29",
- { { 7, 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, 1, 0, 0, 0 } },
RegVRex|RegRex, 5, { Dw2Inval, 80 } },
{ "zmm30",
- { { 7, 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, 1, 0, 0, 0 } },
RegVRex|RegRex, 6, { Dw2Inval, 81 } },
{ "zmm31",
- { { 7, 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, 1, 0, 0, 0 } },
RegVRex|RegRex, 7, { Dw2Inval, 82 } },
{ "tmm0",
- { { 7, 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, 1, 0, 0 } },
0, 0, { Dw2Inval, Dw2Inval } },
{ "tmm1",
- { { 7, 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, 1, 0, 0 } },
0, 1, { Dw2Inval, Dw2Inval } },
{ "tmm2",
- { { 7, 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, 1, 0, 0 } },
0, 2, { Dw2Inval, Dw2Inval } },
{ "tmm3",
- { { 7, 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, 1, 0, 0 } },
0, 3, { Dw2Inval, Dw2Inval } },
{ "tmm4",
- { { 7, 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, 1, 0, 0 } },
0, 4, { Dw2Inval, Dw2Inval } },
{ "tmm5",
- { { 7, 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, 1, 0, 0 } },
0, 5, { Dw2Inval, Dw2Inval } },
{ "tmm6",
- { { 7, 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, 1, 0, 0 } },
0, 6, { Dw2Inval, Dw2Inval } },
{ "tmm7",
- { { 7, 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, 1, 0, 0 } },
0, 7, { Dw2Inval, Dw2Inval } },
{ "bnd0",
- { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ { { 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } },
0, 0, { Dw2Inval, 126 } },
{ "bnd1",
- { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ { { 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0 } },
0, 1, { Dw2Inval, 127 } },
{ "bnd2",
- { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ { { 10, 0, 0, 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, { Dw2Inval, 128 } },
{ "bnd3",
- { { 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ { { 10, 0, 0, 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, { Dw2Inval, 129 } },
{ "rip",
@@ -51715,35 +51767,35 @@ static const reg_entry i386_regtab[] =
0, 0, 0, 0, 0, 0 } },
0, RegIZ, { Dw2Inval, Dw2Inval } },
{ "st",
- { { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ { { 3, 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, { 11, 33 } },
{ "st(1)",
- { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ { { 3, 0, 0, 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, { 12, 34 } },
{ "st(2)",
- { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0 } },
0, 2, { 13, 35 } },
{ "st(3)",
- { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0 } },
0, 3, { 14, 36 } },
{ "st(4)",
- { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0 } },
0, 4, { 15, 37 } },
{ "st(5)",
- { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0 } },
0, 5, { 16, 38 } },
{ "st(6)",
- { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ { { 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0 } },
0, 6, { 17, 39 } },
{ "st(7)",
- { { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
+ { { 3, 0, 0, 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, { 18, 40 } },
{ "eflags",
diff --git a/opcodes/loongarch-dis.c b/opcodes/loongarch-dis.c
index cc4a48c..2e59bf8 100644
--- a/opcodes/loongarch-dis.c
+++ b/opcodes/loongarch-dis.c
@@ -95,13 +95,18 @@ static int
parse_loongarch_dis_option (const char *option)
{
if (strcmp (option, "no-aliases") == 0)
- loongarch_dis_show_aliases = false;
+ {
+ loongarch_dis_show_aliases = false;
+ return 0;
+ }
if (strcmp (option, "numeric") == 0)
{
loongarch_r_disname = loongarch_r_normal_name;
loongarch_f_disname = loongarch_f_normal_name;
+ return 0;
}
+
return -1;
}
diff --git a/opcodes/loongarch-opc.c b/opcodes/loongarch-opc.c
index a172a2a..fa53021 100644
--- a/opcodes/loongarch-opc.c
+++ b/opcodes/loongarch-opc.c
@@ -454,6 +454,9 @@ static struct loongarch_opcode loongarch_macro_opcodes[] =
static struct loongarch_opcode loongarch_alias_opcodes[] =
{
/* match, mask, name, format, macro, include, exclude, pinfo. */
+ { 0x00006000, 0xffffffe0, "rdcntvl.w", "r0:5", 0, 0, 0, INSN_DIS_ALIAS }, /* rdtimel.w rd, zero */
+ { 0x00006000, 0xfffffc1f, "rdcntid.w", "r5:5", 0, 0, 0, INSN_DIS_ALIAS }, /* rdtimel.w zero, rj */
+ { 0x00006400, 0xffffffe0, "rdcntvh.w", "r0:5", 0, 0, 0, INSN_DIS_ALIAS }, /* rdtimeh.w rd, zero */
{ 0x00150000, 0xfffffc00, "move", "r0:5,r5:5", 0, 0, 0, INSN_DIS_ALIAS }, /* or rd, rj, zero */
{ 0x02800000, 0xffc003e0, "li.w", "r0:5,s10:12", 0, 0, 0, INSN_DIS_ALIAS }, /* addi.w rd, zero, simm */
{ 0x02c00000, 0xffc003e0, "li.d", "r0:5,s10:12", 0, 0, 0, INSN_DIS_ALIAS }, /* addi.d rd, zero, simm */
@@ -494,7 +497,10 @@ static struct loongarch_opcode loongarch_fix_opcodes[] =
{ 0x00005400, 0xfffffc00, "bitrev.d", "r0:5,r5:5", 0, 0, 0, 0 },
{ 0x00005800, 0xfffffc00, "ext.w.h", "r0:5,r5:5", 0, 0, 0, 0 },
{ 0x00005c00, 0xfffffc00, "ext.w.b", "r0:5,r5:5", 0, 0, 0, 0 },
+ { 0x0, 0x0, "rdcntvl.w", "r", "rdtimel.w %1,$r0", 0, 0, 0 },
+ { 0x0, 0x0, "rdcntid.w", "r", "rdtimel.w $r0,%1", 0, 0, 0 },
{ 0x00006000, 0xfffffc00, "rdtimel.w", "r0:5,r5:5", 0, 0, 0, 0 },
+ { 0x0, 0x0, "rdcntvh.w", "r", "rdtimeh.w %1,$r0", 0, 0, 0 },
{ 0x00006400, 0xfffffc00, "rdtimeh.w", "r0:5,r5:5", 0, 0, 0, 0 },
{ 0x00006800, 0xfffffc00, "rdtime.d", "r0:5,r5:5", 0, 0, 0, 0 },
{ 0x00006c00, 0xfffffc00, "cpucfg", "r0:5,r5:5", 0, 0, 0, 0 },
diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c
index befe353..a4cff73 100644
--- a/opcodes/mips-dis.c
+++ b/opcodes/mips-dis.c
@@ -90,6 +90,14 @@ static const char * const mips_fpr_names_32[32] =
"fs2", "fs2f", "fs3", "fs3f", "fs4", "fs4f", "fs5", "fs5f"
};
+static const char * const mips_fpr_names_o64[32] =
+{
+ "fv0", "fv1", "ft0", "ft1", "ft2", "ft3", "ft4", "ft5",
+ "ft6", "ft7", "ft8", "ft9", "fa0", "fa1", "ft10", "ft11",
+ "ft12", "ft13", "ft14", "ft15", "fs0", "fs1", "fs2", "fs3",
+ "fs4", "fs5", "fs6", "fs7", "fs8", "fs9", "fs10", "fs11",
+};
+
static const char * const mips_fpr_names_n32[32] =
{
"fv0", "ft14", "fv1", "ft15", "ft0", "ft1", "ft2", "ft3",
@@ -106,6 +114,22 @@ static const char * const mips_fpr_names_64[32] =
"fs0", "fs1", "fs2", "fs3", "fs4", "fs5", "fs6", "fs7"
};
+static const char * const mips_fpr_names_eabi32[32] =
+{
+ "fv0", "fv0f", "fv1", "fv1f", "ft0", "ft0f", "ft1", "ft1f",
+ "ft2", "ft2f", "ft3", "ft3f", "fa0", "fa0f", "fa1", "fa1f",
+ "fa2", "fa2f", "fa3", "fa3f", "fs0", "fs0f", "fs1", "fs1f",
+ "fs2", "fs2f", "fs3", "fs3f", "fs4", "fs4f", "fs5", "fs5f",
+};
+
+static const char * const mips_fpr_names_eabi64[32] =
+{
+ "fv0", "fv1", "ft0", "ft1", "ft2", "ft3", "ft4", "ft5",
+ "ft6", "ft7", "ft8", "ft9", "fa0", "fa1", "fa2", "fa3",
+ "fa4", "fa5", "fa6", "fa7", "fs0", "fs1", "fs2", "fs3",
+ "fs4", "fs5", "fs6", "fs7", "fs8", "fs9", "fs10", "fs11",
+};
+
static const char * const mips_cp0_names_numeric[32] =
{
"$0", "$1", "$2", "$3", "$4", "$5", "$6", "$7",
@@ -452,8 +476,11 @@ struct mips_abi_choice mips_abi_choices[] =
{
{ "numeric", mips_gpr_names_numeric, mips_fpr_names_numeric },
{ "32", mips_gpr_names_oldabi, mips_fpr_names_32 },
+ { "o64", mips_gpr_names_oldabi, mips_fpr_names_o64 },
{ "n32", mips_gpr_names_newabi, mips_fpr_names_n32 },
{ "64", mips_gpr_names_newabi, mips_fpr_names_64 },
+ { "eabi32", mips_gpr_names_newabi, mips_fpr_names_eabi32 },
+ { "eabi64", mips_gpr_names_newabi, mips_fpr_names_eabi64 },
};
struct mips_arch_choice
diff --git a/opcodes/or1k-desc.c b/opcodes/or1k-desc.c
index 9b8aa08..90db200 100644
--- a/opcodes/or1k-desc.c
+++ b/opcodes/or1k-desc.c
@@ -302,6 +302,8 @@ const CGEN_HW_ENTRY or1k_cgen_hw_table[] =
{ "h-sys-esr13", HW_H_SYS_ESR13, CGEN_ASM_NONE, 0, { 0|A(VIRTUAL), { { { (1<<MACH_OR32)|(1<<MACH_OR32ND), 0 } } } } },
{ "h-sys-esr14", HW_H_SYS_ESR14, CGEN_ASM_NONE, 0, { 0|A(VIRTUAL), { { { (1<<MACH_OR32)|(1<<MACH_OR32ND), 0 } } } } },
{ "h-sys-esr15", HW_H_SYS_ESR15, CGEN_ASM_NONE, 0, { 0|A(VIRTUAL), { { { (1<<MACH_OR32)|(1<<MACH_OR32ND), 0 } } } } },
+ { "h-sys-coreid", HW_H_SYS_COREID, CGEN_ASM_NONE, 0, { 0|A(VIRTUAL), { { { (1<<MACH_OR32)|(1<<MACH_OR32ND), 0 } } } } },
+ { "h-sys-numcores", HW_H_SYS_NUMCORES, CGEN_ASM_NONE, 0, { 0|A(VIRTUAL), { { { (1<<MACH_OR32)|(1<<MACH_OR32ND), 0 } } } } },
{ "h-sys-gpr0", HW_H_SYS_GPR0, CGEN_ASM_NONE, 0, { 0|A(VIRTUAL), { { { (1<<MACH_OR32)|(1<<MACH_OR32ND), 0 } } } } },
{ "h-sys-gpr1", HW_H_SYS_GPR1, CGEN_ASM_NONE, 0, { 0|A(VIRTUAL), { { { (1<<MACH_OR32)|(1<<MACH_OR32ND), 0 } } } } },
{ "h-sys-gpr2", HW_H_SYS_GPR2, CGEN_ASM_NONE, 0, { 0|A(VIRTUAL), { { { (1<<MACH_OR32)|(1<<MACH_OR32ND), 0 } } } } },
diff --git a/opcodes/or1k-desc.h b/opcodes/or1k-desc.h
index 87e8c96..90426b2 100644
--- a/opcodes/or1k-desc.h
+++ b/opcodes/or1k-desc.h
@@ -94,135 +94,136 @@ typedef enum spr_reg_indices {
, SPR_INDEX_SYS_ESR3 = 67, SPR_INDEX_SYS_ESR4 = 68, SPR_INDEX_SYS_ESR5 = 69, SPR_INDEX_SYS_ESR6 = 70
, SPR_INDEX_SYS_ESR7 = 71, SPR_INDEX_SYS_ESR8 = 72, SPR_INDEX_SYS_ESR9 = 73, SPR_INDEX_SYS_ESR10 = 74
, SPR_INDEX_SYS_ESR11 = 75, SPR_INDEX_SYS_ESR12 = 76, SPR_INDEX_SYS_ESR13 = 77, SPR_INDEX_SYS_ESR14 = 78
- , SPR_INDEX_SYS_ESR15 = 79, SPR_INDEX_SYS_GPR0 = 1024, SPR_INDEX_SYS_GPR1 = 1025, SPR_INDEX_SYS_GPR2 = 1026
- , SPR_INDEX_SYS_GPR3 = 1027, SPR_INDEX_SYS_GPR4 = 1028, SPR_INDEX_SYS_GPR5 = 1029, SPR_INDEX_SYS_GPR6 = 1030
- , SPR_INDEX_SYS_GPR7 = 1031, SPR_INDEX_SYS_GPR8 = 1032, SPR_INDEX_SYS_GPR9 = 1033, SPR_INDEX_SYS_GPR10 = 1034
- , SPR_INDEX_SYS_GPR11 = 1035, SPR_INDEX_SYS_GPR12 = 1036, SPR_INDEX_SYS_GPR13 = 1037, SPR_INDEX_SYS_GPR14 = 1038
- , SPR_INDEX_SYS_GPR15 = 1039, SPR_INDEX_SYS_GPR16 = 1040, SPR_INDEX_SYS_GPR17 = 1041, SPR_INDEX_SYS_GPR18 = 1042
- , SPR_INDEX_SYS_GPR19 = 1043, SPR_INDEX_SYS_GPR20 = 1044, SPR_INDEX_SYS_GPR21 = 1045, SPR_INDEX_SYS_GPR22 = 1046
- , SPR_INDEX_SYS_GPR23 = 1047, SPR_INDEX_SYS_GPR24 = 1048, SPR_INDEX_SYS_GPR25 = 1049, SPR_INDEX_SYS_GPR26 = 1050
- , SPR_INDEX_SYS_GPR27 = 1051, SPR_INDEX_SYS_GPR28 = 1052, SPR_INDEX_SYS_GPR29 = 1053, SPR_INDEX_SYS_GPR30 = 1054
- , SPR_INDEX_SYS_GPR31 = 1055, SPR_INDEX_SYS_GPR32 = 1056, SPR_INDEX_SYS_GPR33 = 1057, SPR_INDEX_SYS_GPR34 = 1058
- , SPR_INDEX_SYS_GPR35 = 1059, SPR_INDEX_SYS_GPR36 = 1060, SPR_INDEX_SYS_GPR37 = 1061, SPR_INDEX_SYS_GPR38 = 1062
- , SPR_INDEX_SYS_GPR39 = 1063, SPR_INDEX_SYS_GPR40 = 1064, SPR_INDEX_SYS_GPR41 = 1065, SPR_INDEX_SYS_GPR42 = 1066
- , SPR_INDEX_SYS_GPR43 = 1067, SPR_INDEX_SYS_GPR44 = 1068, SPR_INDEX_SYS_GPR45 = 1069, SPR_INDEX_SYS_GPR46 = 1070
- , SPR_INDEX_SYS_GPR47 = 1071, SPR_INDEX_SYS_GPR48 = 1072, SPR_INDEX_SYS_GPR49 = 1073, SPR_INDEX_SYS_GPR50 = 1074
- , SPR_INDEX_SYS_GPR51 = 1075, SPR_INDEX_SYS_GPR52 = 1076, SPR_INDEX_SYS_GPR53 = 1077, SPR_INDEX_SYS_GPR54 = 1078
- , SPR_INDEX_SYS_GPR55 = 1079, SPR_INDEX_SYS_GPR56 = 1080, SPR_INDEX_SYS_GPR57 = 1081, SPR_INDEX_SYS_GPR58 = 1082
- , SPR_INDEX_SYS_GPR59 = 1083, SPR_INDEX_SYS_GPR60 = 1084, SPR_INDEX_SYS_GPR61 = 1085, SPR_INDEX_SYS_GPR62 = 1086
- , SPR_INDEX_SYS_GPR63 = 1087, SPR_INDEX_SYS_GPR64 = 1088, SPR_INDEX_SYS_GPR65 = 1089, SPR_INDEX_SYS_GPR66 = 1090
- , SPR_INDEX_SYS_GPR67 = 1091, SPR_INDEX_SYS_GPR68 = 1092, SPR_INDEX_SYS_GPR69 = 1093, SPR_INDEX_SYS_GPR70 = 1094
- , SPR_INDEX_SYS_GPR71 = 1095, SPR_INDEX_SYS_GPR72 = 1096, SPR_INDEX_SYS_GPR73 = 1097, SPR_INDEX_SYS_GPR74 = 1098
- , SPR_INDEX_SYS_GPR75 = 1099, SPR_INDEX_SYS_GPR76 = 1100, SPR_INDEX_SYS_GPR77 = 1101, SPR_INDEX_SYS_GPR78 = 1102
- , SPR_INDEX_SYS_GPR79 = 1103, SPR_INDEX_SYS_GPR80 = 1104, SPR_INDEX_SYS_GPR81 = 1105, SPR_INDEX_SYS_GPR82 = 1106
- , SPR_INDEX_SYS_GPR83 = 1107, SPR_INDEX_SYS_GPR84 = 1108, SPR_INDEX_SYS_GPR85 = 1109, SPR_INDEX_SYS_GPR86 = 1110
- , SPR_INDEX_SYS_GPR87 = 1111, SPR_INDEX_SYS_GPR88 = 1112, SPR_INDEX_SYS_GPR89 = 1113, SPR_INDEX_SYS_GPR90 = 1114
- , SPR_INDEX_SYS_GPR91 = 1115, SPR_INDEX_SYS_GPR92 = 1116, SPR_INDEX_SYS_GPR93 = 1117, SPR_INDEX_SYS_GPR94 = 1118
- , SPR_INDEX_SYS_GPR95 = 1119, SPR_INDEX_SYS_GPR96 = 1120, SPR_INDEX_SYS_GPR97 = 1121, SPR_INDEX_SYS_GPR98 = 1122
- , SPR_INDEX_SYS_GPR99 = 1123, SPR_INDEX_SYS_GPR100 = 1124, SPR_INDEX_SYS_GPR101 = 1125, SPR_INDEX_SYS_GPR102 = 1126
- , SPR_INDEX_SYS_GPR103 = 1127, SPR_INDEX_SYS_GPR104 = 1128, SPR_INDEX_SYS_GPR105 = 1129, SPR_INDEX_SYS_GPR106 = 1130
- , SPR_INDEX_SYS_GPR107 = 1131, SPR_INDEX_SYS_GPR108 = 1132, SPR_INDEX_SYS_GPR109 = 1133, SPR_INDEX_SYS_GPR110 = 1134
- , SPR_INDEX_SYS_GPR111 = 1135, SPR_INDEX_SYS_GPR112 = 1136, SPR_INDEX_SYS_GPR113 = 1137, SPR_INDEX_SYS_GPR114 = 1138
- , SPR_INDEX_SYS_GPR115 = 1139, SPR_INDEX_SYS_GPR116 = 1140, SPR_INDEX_SYS_GPR117 = 1141, SPR_INDEX_SYS_GPR118 = 1142
- , SPR_INDEX_SYS_GPR119 = 1143, SPR_INDEX_SYS_GPR120 = 1144, SPR_INDEX_SYS_GPR121 = 1145, SPR_INDEX_SYS_GPR122 = 1146
- , SPR_INDEX_SYS_GPR123 = 1147, SPR_INDEX_SYS_GPR124 = 1148, SPR_INDEX_SYS_GPR125 = 1149, SPR_INDEX_SYS_GPR126 = 1150
- , SPR_INDEX_SYS_GPR127 = 1151, SPR_INDEX_SYS_GPR128 = 1152, SPR_INDEX_SYS_GPR129 = 1153, SPR_INDEX_SYS_GPR130 = 1154
- , SPR_INDEX_SYS_GPR131 = 1155, SPR_INDEX_SYS_GPR132 = 1156, SPR_INDEX_SYS_GPR133 = 1157, SPR_INDEX_SYS_GPR134 = 1158
- , SPR_INDEX_SYS_GPR135 = 1159, SPR_INDEX_SYS_GPR136 = 1160, SPR_INDEX_SYS_GPR137 = 1161, SPR_INDEX_SYS_GPR138 = 1162
- , SPR_INDEX_SYS_GPR139 = 1163, SPR_INDEX_SYS_GPR140 = 1164, SPR_INDEX_SYS_GPR141 = 1165, SPR_INDEX_SYS_GPR142 = 1166
- , SPR_INDEX_SYS_GPR143 = 1167, SPR_INDEX_SYS_GPR144 = 1168, SPR_INDEX_SYS_GPR145 = 1169, SPR_INDEX_SYS_GPR146 = 1170
- , SPR_INDEX_SYS_GPR147 = 1171, SPR_INDEX_SYS_GPR148 = 1172, SPR_INDEX_SYS_GPR149 = 1173, SPR_INDEX_SYS_GPR150 = 1174
- , SPR_INDEX_SYS_GPR151 = 1175, SPR_INDEX_SYS_GPR152 = 1176, SPR_INDEX_SYS_GPR153 = 1177, SPR_INDEX_SYS_GPR154 = 1178
- , SPR_INDEX_SYS_GPR155 = 1179, SPR_INDEX_SYS_GPR156 = 1180, SPR_INDEX_SYS_GPR157 = 1181, SPR_INDEX_SYS_GPR158 = 1182
- , SPR_INDEX_SYS_GPR159 = 1183, SPR_INDEX_SYS_GPR160 = 1184, SPR_INDEX_SYS_GPR161 = 1185, SPR_INDEX_SYS_GPR162 = 1186
- , SPR_INDEX_SYS_GPR163 = 1187, SPR_INDEX_SYS_GPR164 = 1188, SPR_INDEX_SYS_GPR165 = 1189, SPR_INDEX_SYS_GPR166 = 1190
- , SPR_INDEX_SYS_GPR167 = 1191, SPR_INDEX_SYS_GPR168 = 1192, SPR_INDEX_SYS_GPR169 = 1193, SPR_INDEX_SYS_GPR170 = 1194
- , SPR_INDEX_SYS_GPR171 = 1195, SPR_INDEX_SYS_GPR172 = 1196, SPR_INDEX_SYS_GPR173 = 1197, SPR_INDEX_SYS_GPR174 = 1198
- , SPR_INDEX_SYS_GPR175 = 1199, SPR_INDEX_SYS_GPR176 = 1200, SPR_INDEX_SYS_GPR177 = 1201, SPR_INDEX_SYS_GPR178 = 1202
- , SPR_INDEX_SYS_GPR179 = 1203, SPR_INDEX_SYS_GPR180 = 1204, SPR_INDEX_SYS_GPR181 = 1205, SPR_INDEX_SYS_GPR182 = 1206
- , SPR_INDEX_SYS_GPR183 = 1207, SPR_INDEX_SYS_GPR184 = 1208, SPR_INDEX_SYS_GPR185 = 1209, SPR_INDEX_SYS_GPR186 = 1210
- , SPR_INDEX_SYS_GPR187 = 1211, SPR_INDEX_SYS_GPR188 = 1212, SPR_INDEX_SYS_GPR189 = 1213, SPR_INDEX_SYS_GPR190 = 1214
- , SPR_INDEX_SYS_GPR191 = 1215, SPR_INDEX_SYS_GPR192 = 1216, SPR_INDEX_SYS_GPR193 = 1217, SPR_INDEX_SYS_GPR194 = 1218
- , SPR_INDEX_SYS_GPR195 = 1219, SPR_INDEX_SYS_GPR196 = 1220, SPR_INDEX_SYS_GPR197 = 1221, SPR_INDEX_SYS_GPR198 = 1222
- , SPR_INDEX_SYS_GPR199 = 1223, SPR_INDEX_SYS_GPR200 = 1224, SPR_INDEX_SYS_GPR201 = 1225, SPR_INDEX_SYS_GPR202 = 1226
- , SPR_INDEX_SYS_GPR203 = 1227, SPR_INDEX_SYS_GPR204 = 1228, SPR_INDEX_SYS_GPR205 = 1229, SPR_INDEX_SYS_GPR206 = 1230
- , SPR_INDEX_SYS_GPR207 = 1231, SPR_INDEX_SYS_GPR208 = 1232, SPR_INDEX_SYS_GPR209 = 1233, SPR_INDEX_SYS_GPR210 = 1234
- , SPR_INDEX_SYS_GPR211 = 1235, SPR_INDEX_SYS_GPR212 = 1236, SPR_INDEX_SYS_GPR213 = 1237, SPR_INDEX_SYS_GPR214 = 1238
- , SPR_INDEX_SYS_GPR215 = 1239, SPR_INDEX_SYS_GPR216 = 1240, SPR_INDEX_SYS_GPR217 = 1241, SPR_INDEX_SYS_GPR218 = 1242
- , SPR_INDEX_SYS_GPR219 = 1243, SPR_INDEX_SYS_GPR220 = 1244, SPR_INDEX_SYS_GPR221 = 1245, SPR_INDEX_SYS_GPR222 = 1246
- , SPR_INDEX_SYS_GPR223 = 1247, SPR_INDEX_SYS_GPR224 = 1248, SPR_INDEX_SYS_GPR225 = 1249, SPR_INDEX_SYS_GPR226 = 1250
- , SPR_INDEX_SYS_GPR227 = 1251, SPR_INDEX_SYS_GPR228 = 1252, SPR_INDEX_SYS_GPR229 = 1253, SPR_INDEX_SYS_GPR230 = 1254
- , SPR_INDEX_SYS_GPR231 = 1255, SPR_INDEX_SYS_GPR232 = 1256, SPR_INDEX_SYS_GPR233 = 1257, SPR_INDEX_SYS_GPR234 = 1258
- , SPR_INDEX_SYS_GPR235 = 1259, SPR_INDEX_SYS_GPR236 = 1260, SPR_INDEX_SYS_GPR237 = 1261, SPR_INDEX_SYS_GPR238 = 1262
- , SPR_INDEX_SYS_GPR239 = 1263, SPR_INDEX_SYS_GPR240 = 1264, SPR_INDEX_SYS_GPR241 = 1265, SPR_INDEX_SYS_GPR242 = 1266
- , SPR_INDEX_SYS_GPR243 = 1267, SPR_INDEX_SYS_GPR244 = 1268, SPR_INDEX_SYS_GPR245 = 1269, SPR_INDEX_SYS_GPR246 = 1270
- , SPR_INDEX_SYS_GPR247 = 1271, SPR_INDEX_SYS_GPR248 = 1272, SPR_INDEX_SYS_GPR249 = 1273, SPR_INDEX_SYS_GPR250 = 1274
- , SPR_INDEX_SYS_GPR251 = 1275, SPR_INDEX_SYS_GPR252 = 1276, SPR_INDEX_SYS_GPR253 = 1277, SPR_INDEX_SYS_GPR254 = 1278
- , SPR_INDEX_SYS_GPR255 = 1279, SPR_INDEX_SYS_GPR256 = 1280, SPR_INDEX_SYS_GPR257 = 1281, SPR_INDEX_SYS_GPR258 = 1282
- , SPR_INDEX_SYS_GPR259 = 1283, SPR_INDEX_SYS_GPR260 = 1284, SPR_INDEX_SYS_GPR261 = 1285, SPR_INDEX_SYS_GPR262 = 1286
- , SPR_INDEX_SYS_GPR263 = 1287, SPR_INDEX_SYS_GPR264 = 1288, SPR_INDEX_SYS_GPR265 = 1289, SPR_INDEX_SYS_GPR266 = 1290
- , SPR_INDEX_SYS_GPR267 = 1291, SPR_INDEX_SYS_GPR268 = 1292, SPR_INDEX_SYS_GPR269 = 1293, SPR_INDEX_SYS_GPR270 = 1294
- , SPR_INDEX_SYS_GPR271 = 1295, SPR_INDEX_SYS_GPR272 = 1296, SPR_INDEX_SYS_GPR273 = 1297, SPR_INDEX_SYS_GPR274 = 1298
- , SPR_INDEX_SYS_GPR275 = 1299, SPR_INDEX_SYS_GPR276 = 1300, SPR_INDEX_SYS_GPR277 = 1301, SPR_INDEX_SYS_GPR278 = 1302
- , SPR_INDEX_SYS_GPR279 = 1303, SPR_INDEX_SYS_GPR280 = 1304, SPR_INDEX_SYS_GPR281 = 1305, SPR_INDEX_SYS_GPR282 = 1306
- , SPR_INDEX_SYS_GPR283 = 1307, SPR_INDEX_SYS_GPR284 = 1308, SPR_INDEX_SYS_GPR285 = 1309, SPR_INDEX_SYS_GPR286 = 1310
- , SPR_INDEX_SYS_GPR287 = 1311, SPR_INDEX_SYS_GPR288 = 1312, SPR_INDEX_SYS_GPR289 = 1313, SPR_INDEX_SYS_GPR290 = 1314
- , SPR_INDEX_SYS_GPR291 = 1315, SPR_INDEX_SYS_GPR292 = 1316, SPR_INDEX_SYS_GPR293 = 1317, SPR_INDEX_SYS_GPR294 = 1318
- , SPR_INDEX_SYS_GPR295 = 1319, SPR_INDEX_SYS_GPR296 = 1320, SPR_INDEX_SYS_GPR297 = 1321, SPR_INDEX_SYS_GPR298 = 1322
- , SPR_INDEX_SYS_GPR299 = 1323, SPR_INDEX_SYS_GPR300 = 1324, SPR_INDEX_SYS_GPR301 = 1325, SPR_INDEX_SYS_GPR302 = 1326
- , SPR_INDEX_SYS_GPR303 = 1327, SPR_INDEX_SYS_GPR304 = 1328, SPR_INDEX_SYS_GPR305 = 1329, SPR_INDEX_SYS_GPR306 = 1330
- , SPR_INDEX_SYS_GPR307 = 1331, SPR_INDEX_SYS_GPR308 = 1332, SPR_INDEX_SYS_GPR309 = 1333, SPR_INDEX_SYS_GPR310 = 1334
- , SPR_INDEX_SYS_GPR311 = 1335, SPR_INDEX_SYS_GPR312 = 1336, SPR_INDEX_SYS_GPR313 = 1337, SPR_INDEX_SYS_GPR314 = 1338
- , SPR_INDEX_SYS_GPR315 = 1339, SPR_INDEX_SYS_GPR316 = 1340, SPR_INDEX_SYS_GPR317 = 1341, SPR_INDEX_SYS_GPR318 = 1342
- , SPR_INDEX_SYS_GPR319 = 1343, SPR_INDEX_SYS_GPR320 = 1344, SPR_INDEX_SYS_GPR321 = 1345, SPR_INDEX_SYS_GPR322 = 1346
- , SPR_INDEX_SYS_GPR323 = 1347, SPR_INDEX_SYS_GPR324 = 1348, SPR_INDEX_SYS_GPR325 = 1349, SPR_INDEX_SYS_GPR326 = 1350
- , SPR_INDEX_SYS_GPR327 = 1351, SPR_INDEX_SYS_GPR328 = 1352, SPR_INDEX_SYS_GPR329 = 1353, SPR_INDEX_SYS_GPR330 = 1354
- , SPR_INDEX_SYS_GPR331 = 1355, SPR_INDEX_SYS_GPR332 = 1356, SPR_INDEX_SYS_GPR333 = 1357, SPR_INDEX_SYS_GPR334 = 1358
- , SPR_INDEX_SYS_GPR335 = 1359, SPR_INDEX_SYS_GPR336 = 1360, SPR_INDEX_SYS_GPR337 = 1361, SPR_INDEX_SYS_GPR338 = 1362
- , SPR_INDEX_SYS_GPR339 = 1363, SPR_INDEX_SYS_GPR340 = 1364, SPR_INDEX_SYS_GPR341 = 1365, SPR_INDEX_SYS_GPR342 = 1366
- , SPR_INDEX_SYS_GPR343 = 1367, SPR_INDEX_SYS_GPR344 = 1368, SPR_INDEX_SYS_GPR345 = 1369, SPR_INDEX_SYS_GPR346 = 1370
- , SPR_INDEX_SYS_GPR347 = 1371, SPR_INDEX_SYS_GPR348 = 1372, SPR_INDEX_SYS_GPR349 = 1373, SPR_INDEX_SYS_GPR350 = 1374
- , SPR_INDEX_SYS_GPR351 = 1375, SPR_INDEX_SYS_GPR352 = 1376, SPR_INDEX_SYS_GPR353 = 1377, SPR_INDEX_SYS_GPR354 = 1378
- , SPR_INDEX_SYS_GPR355 = 1379, SPR_INDEX_SYS_GPR356 = 1380, SPR_INDEX_SYS_GPR357 = 1381, SPR_INDEX_SYS_GPR358 = 1382
- , SPR_INDEX_SYS_GPR359 = 1383, SPR_INDEX_SYS_GPR360 = 1384, SPR_INDEX_SYS_GPR361 = 1385, SPR_INDEX_SYS_GPR362 = 1386
- , SPR_INDEX_SYS_GPR363 = 1387, SPR_INDEX_SYS_GPR364 = 1388, SPR_INDEX_SYS_GPR365 = 1389, SPR_INDEX_SYS_GPR366 = 1390
- , SPR_INDEX_SYS_GPR367 = 1391, SPR_INDEX_SYS_GPR368 = 1392, SPR_INDEX_SYS_GPR369 = 1393, SPR_INDEX_SYS_GPR370 = 1394
- , SPR_INDEX_SYS_GPR371 = 1395, SPR_INDEX_SYS_GPR372 = 1396, SPR_INDEX_SYS_GPR373 = 1397, SPR_INDEX_SYS_GPR374 = 1398
- , SPR_INDEX_SYS_GPR375 = 1399, SPR_INDEX_SYS_GPR376 = 1400, SPR_INDEX_SYS_GPR377 = 1401, SPR_INDEX_SYS_GPR378 = 1402
- , SPR_INDEX_SYS_GPR379 = 1403, SPR_INDEX_SYS_GPR380 = 1404, SPR_INDEX_SYS_GPR381 = 1405, SPR_INDEX_SYS_GPR382 = 1406
- , SPR_INDEX_SYS_GPR383 = 1407, SPR_INDEX_SYS_GPR384 = 1408, SPR_INDEX_SYS_GPR385 = 1409, SPR_INDEX_SYS_GPR386 = 1410
- , SPR_INDEX_SYS_GPR387 = 1411, SPR_INDEX_SYS_GPR388 = 1412, SPR_INDEX_SYS_GPR389 = 1413, SPR_INDEX_SYS_GPR390 = 1414
- , SPR_INDEX_SYS_GPR391 = 1415, SPR_INDEX_SYS_GPR392 = 1416, SPR_INDEX_SYS_GPR393 = 1417, SPR_INDEX_SYS_GPR394 = 1418
- , SPR_INDEX_SYS_GPR395 = 1419, SPR_INDEX_SYS_GPR396 = 1420, SPR_INDEX_SYS_GPR397 = 1421, SPR_INDEX_SYS_GPR398 = 1422
- , SPR_INDEX_SYS_GPR399 = 1423, SPR_INDEX_SYS_GPR400 = 1424, SPR_INDEX_SYS_GPR401 = 1425, SPR_INDEX_SYS_GPR402 = 1426
- , SPR_INDEX_SYS_GPR403 = 1427, SPR_INDEX_SYS_GPR404 = 1428, SPR_INDEX_SYS_GPR405 = 1429, SPR_INDEX_SYS_GPR406 = 1430
- , SPR_INDEX_SYS_GPR407 = 1431, SPR_INDEX_SYS_GPR408 = 1432, SPR_INDEX_SYS_GPR409 = 1433, SPR_INDEX_SYS_GPR410 = 1434
- , SPR_INDEX_SYS_GPR411 = 1435, SPR_INDEX_SYS_GPR412 = 1436, SPR_INDEX_SYS_GPR413 = 1437, SPR_INDEX_SYS_GPR414 = 1438
- , SPR_INDEX_SYS_GPR415 = 1439, SPR_INDEX_SYS_GPR416 = 1440, SPR_INDEX_SYS_GPR417 = 1441, SPR_INDEX_SYS_GPR418 = 1442
- , SPR_INDEX_SYS_GPR419 = 1443, SPR_INDEX_SYS_GPR420 = 1444, SPR_INDEX_SYS_GPR421 = 1445, SPR_INDEX_SYS_GPR422 = 1446
- , SPR_INDEX_SYS_GPR423 = 1447, SPR_INDEX_SYS_GPR424 = 1448, SPR_INDEX_SYS_GPR425 = 1449, SPR_INDEX_SYS_GPR426 = 1450
- , SPR_INDEX_SYS_GPR427 = 1451, SPR_INDEX_SYS_GPR428 = 1452, SPR_INDEX_SYS_GPR429 = 1453, SPR_INDEX_SYS_GPR430 = 1454
- , SPR_INDEX_SYS_GPR431 = 1455, SPR_INDEX_SYS_GPR432 = 1456, SPR_INDEX_SYS_GPR433 = 1457, SPR_INDEX_SYS_GPR434 = 1458
- , SPR_INDEX_SYS_GPR435 = 1459, SPR_INDEX_SYS_GPR436 = 1460, SPR_INDEX_SYS_GPR437 = 1461, SPR_INDEX_SYS_GPR438 = 1462
- , SPR_INDEX_SYS_GPR439 = 1463, SPR_INDEX_SYS_GPR440 = 1464, SPR_INDEX_SYS_GPR441 = 1465, SPR_INDEX_SYS_GPR442 = 1466
- , SPR_INDEX_SYS_GPR443 = 1467, SPR_INDEX_SYS_GPR444 = 1468, SPR_INDEX_SYS_GPR445 = 1469, SPR_INDEX_SYS_GPR446 = 1470
- , SPR_INDEX_SYS_GPR447 = 1471, SPR_INDEX_SYS_GPR448 = 1472, SPR_INDEX_SYS_GPR449 = 1473, SPR_INDEX_SYS_GPR450 = 1474
- , SPR_INDEX_SYS_GPR451 = 1475, SPR_INDEX_SYS_GPR452 = 1476, SPR_INDEX_SYS_GPR453 = 1477, SPR_INDEX_SYS_GPR454 = 1478
- , SPR_INDEX_SYS_GPR455 = 1479, SPR_INDEX_SYS_GPR456 = 1480, SPR_INDEX_SYS_GPR457 = 1481, SPR_INDEX_SYS_GPR458 = 1482
- , SPR_INDEX_SYS_GPR459 = 1483, SPR_INDEX_SYS_GPR460 = 1484, SPR_INDEX_SYS_GPR461 = 1485, SPR_INDEX_SYS_GPR462 = 1486
- , SPR_INDEX_SYS_GPR463 = 1487, SPR_INDEX_SYS_GPR464 = 1488, SPR_INDEX_SYS_GPR465 = 1489, SPR_INDEX_SYS_GPR466 = 1490
- , SPR_INDEX_SYS_GPR467 = 1491, SPR_INDEX_SYS_GPR468 = 1492, SPR_INDEX_SYS_GPR469 = 1493, SPR_INDEX_SYS_GPR470 = 1494
- , SPR_INDEX_SYS_GPR471 = 1495, SPR_INDEX_SYS_GPR472 = 1496, SPR_INDEX_SYS_GPR473 = 1497, SPR_INDEX_SYS_GPR474 = 1498
- , SPR_INDEX_SYS_GPR475 = 1499, SPR_INDEX_SYS_GPR476 = 1500, SPR_INDEX_SYS_GPR477 = 1501, SPR_INDEX_SYS_GPR478 = 1502
- , SPR_INDEX_SYS_GPR479 = 1503, SPR_INDEX_SYS_GPR480 = 1504, SPR_INDEX_SYS_GPR481 = 1505, SPR_INDEX_SYS_GPR482 = 1506
- , SPR_INDEX_SYS_GPR483 = 1507, SPR_INDEX_SYS_GPR484 = 1508, SPR_INDEX_SYS_GPR485 = 1509, SPR_INDEX_SYS_GPR486 = 1510
- , SPR_INDEX_SYS_GPR487 = 1511, SPR_INDEX_SYS_GPR488 = 1512, SPR_INDEX_SYS_GPR489 = 1513, SPR_INDEX_SYS_GPR490 = 1514
- , SPR_INDEX_SYS_GPR491 = 1515, SPR_INDEX_SYS_GPR492 = 1516, SPR_INDEX_SYS_GPR493 = 1517, SPR_INDEX_SYS_GPR494 = 1518
- , SPR_INDEX_SYS_GPR495 = 1519, SPR_INDEX_SYS_GPR496 = 1520, SPR_INDEX_SYS_GPR497 = 1521, SPR_INDEX_SYS_GPR498 = 1522
- , SPR_INDEX_SYS_GPR499 = 1523, SPR_INDEX_SYS_GPR500 = 1524, SPR_INDEX_SYS_GPR501 = 1525, SPR_INDEX_SYS_GPR502 = 1526
- , SPR_INDEX_SYS_GPR503 = 1527, SPR_INDEX_SYS_GPR504 = 1528, SPR_INDEX_SYS_GPR505 = 1529, SPR_INDEX_SYS_GPR506 = 1530
- , SPR_INDEX_SYS_GPR507 = 1531, SPR_INDEX_SYS_GPR508 = 1532, SPR_INDEX_SYS_GPR509 = 1533, SPR_INDEX_SYS_GPR510 = 1534
- , SPR_INDEX_SYS_GPR511 = 1535, SPR_INDEX_MAC_MACLO = 1, SPR_INDEX_MAC_MACHI = 2, SPR_INDEX_TICK_TTMR = 0
+ , SPR_INDEX_SYS_ESR15 = 79, SPR_INDEX_SYS_COREID = 128, SPR_INDEX_SYS_NUMCORES = 129, SPR_INDEX_SYS_GPR0 = 1024
+ , SPR_INDEX_SYS_GPR1 = 1025, SPR_INDEX_SYS_GPR2 = 1026, SPR_INDEX_SYS_GPR3 = 1027, SPR_INDEX_SYS_GPR4 = 1028
+ , SPR_INDEX_SYS_GPR5 = 1029, SPR_INDEX_SYS_GPR6 = 1030, SPR_INDEX_SYS_GPR7 = 1031, SPR_INDEX_SYS_GPR8 = 1032
+ , SPR_INDEX_SYS_GPR9 = 1033, SPR_INDEX_SYS_GPR10 = 1034, SPR_INDEX_SYS_GPR11 = 1035, SPR_INDEX_SYS_GPR12 = 1036
+ , SPR_INDEX_SYS_GPR13 = 1037, SPR_INDEX_SYS_GPR14 = 1038, SPR_INDEX_SYS_GPR15 = 1039, SPR_INDEX_SYS_GPR16 = 1040
+ , SPR_INDEX_SYS_GPR17 = 1041, SPR_INDEX_SYS_GPR18 = 1042, SPR_INDEX_SYS_GPR19 = 1043, SPR_INDEX_SYS_GPR20 = 1044
+ , SPR_INDEX_SYS_GPR21 = 1045, SPR_INDEX_SYS_GPR22 = 1046, SPR_INDEX_SYS_GPR23 = 1047, SPR_INDEX_SYS_GPR24 = 1048
+ , SPR_INDEX_SYS_GPR25 = 1049, SPR_INDEX_SYS_GPR26 = 1050, SPR_INDEX_SYS_GPR27 = 1051, SPR_INDEX_SYS_GPR28 = 1052
+ , SPR_INDEX_SYS_GPR29 = 1053, SPR_INDEX_SYS_GPR30 = 1054, SPR_INDEX_SYS_GPR31 = 1055, SPR_INDEX_SYS_GPR32 = 1056
+ , SPR_INDEX_SYS_GPR33 = 1057, SPR_INDEX_SYS_GPR34 = 1058, SPR_INDEX_SYS_GPR35 = 1059, SPR_INDEX_SYS_GPR36 = 1060
+ , SPR_INDEX_SYS_GPR37 = 1061, SPR_INDEX_SYS_GPR38 = 1062, SPR_INDEX_SYS_GPR39 = 1063, SPR_INDEX_SYS_GPR40 = 1064
+ , SPR_INDEX_SYS_GPR41 = 1065, SPR_INDEX_SYS_GPR42 = 1066, SPR_INDEX_SYS_GPR43 = 1067, SPR_INDEX_SYS_GPR44 = 1068
+ , SPR_INDEX_SYS_GPR45 = 1069, SPR_INDEX_SYS_GPR46 = 1070, SPR_INDEX_SYS_GPR47 = 1071, SPR_INDEX_SYS_GPR48 = 1072
+ , SPR_INDEX_SYS_GPR49 = 1073, SPR_INDEX_SYS_GPR50 = 1074, SPR_INDEX_SYS_GPR51 = 1075, SPR_INDEX_SYS_GPR52 = 1076
+ , SPR_INDEX_SYS_GPR53 = 1077, SPR_INDEX_SYS_GPR54 = 1078, SPR_INDEX_SYS_GPR55 = 1079, SPR_INDEX_SYS_GPR56 = 1080
+ , SPR_INDEX_SYS_GPR57 = 1081, SPR_INDEX_SYS_GPR58 = 1082, SPR_INDEX_SYS_GPR59 = 1083, SPR_INDEX_SYS_GPR60 = 1084
+ , SPR_INDEX_SYS_GPR61 = 1085, SPR_INDEX_SYS_GPR62 = 1086, SPR_INDEX_SYS_GPR63 = 1087, SPR_INDEX_SYS_GPR64 = 1088
+ , SPR_INDEX_SYS_GPR65 = 1089, SPR_INDEX_SYS_GPR66 = 1090, SPR_INDEX_SYS_GPR67 = 1091, SPR_INDEX_SYS_GPR68 = 1092
+ , SPR_INDEX_SYS_GPR69 = 1093, SPR_INDEX_SYS_GPR70 = 1094, SPR_INDEX_SYS_GPR71 = 1095, SPR_INDEX_SYS_GPR72 = 1096
+ , SPR_INDEX_SYS_GPR73 = 1097, SPR_INDEX_SYS_GPR74 = 1098, SPR_INDEX_SYS_GPR75 = 1099, SPR_INDEX_SYS_GPR76 = 1100
+ , SPR_INDEX_SYS_GPR77 = 1101, SPR_INDEX_SYS_GPR78 = 1102, SPR_INDEX_SYS_GPR79 = 1103, SPR_INDEX_SYS_GPR80 = 1104
+ , SPR_INDEX_SYS_GPR81 = 1105, SPR_INDEX_SYS_GPR82 = 1106, SPR_INDEX_SYS_GPR83 = 1107, SPR_INDEX_SYS_GPR84 = 1108
+ , SPR_INDEX_SYS_GPR85 = 1109, SPR_INDEX_SYS_GPR86 = 1110, SPR_INDEX_SYS_GPR87 = 1111, SPR_INDEX_SYS_GPR88 = 1112
+ , SPR_INDEX_SYS_GPR89 = 1113, SPR_INDEX_SYS_GPR90 = 1114, SPR_INDEX_SYS_GPR91 = 1115, SPR_INDEX_SYS_GPR92 = 1116
+ , SPR_INDEX_SYS_GPR93 = 1117, SPR_INDEX_SYS_GPR94 = 1118, SPR_INDEX_SYS_GPR95 = 1119, SPR_INDEX_SYS_GPR96 = 1120
+ , SPR_INDEX_SYS_GPR97 = 1121, SPR_INDEX_SYS_GPR98 = 1122, SPR_INDEX_SYS_GPR99 = 1123, SPR_INDEX_SYS_GPR100 = 1124
+ , SPR_INDEX_SYS_GPR101 = 1125, SPR_INDEX_SYS_GPR102 = 1126, SPR_INDEX_SYS_GPR103 = 1127, SPR_INDEX_SYS_GPR104 = 1128
+ , SPR_INDEX_SYS_GPR105 = 1129, SPR_INDEX_SYS_GPR106 = 1130, SPR_INDEX_SYS_GPR107 = 1131, SPR_INDEX_SYS_GPR108 = 1132
+ , SPR_INDEX_SYS_GPR109 = 1133, SPR_INDEX_SYS_GPR110 = 1134, SPR_INDEX_SYS_GPR111 = 1135, SPR_INDEX_SYS_GPR112 = 1136
+ , SPR_INDEX_SYS_GPR113 = 1137, SPR_INDEX_SYS_GPR114 = 1138, SPR_INDEX_SYS_GPR115 = 1139, SPR_INDEX_SYS_GPR116 = 1140
+ , SPR_INDEX_SYS_GPR117 = 1141, SPR_INDEX_SYS_GPR118 = 1142, SPR_INDEX_SYS_GPR119 = 1143, SPR_INDEX_SYS_GPR120 = 1144
+ , SPR_INDEX_SYS_GPR121 = 1145, SPR_INDEX_SYS_GPR122 = 1146, SPR_INDEX_SYS_GPR123 = 1147, SPR_INDEX_SYS_GPR124 = 1148
+ , SPR_INDEX_SYS_GPR125 = 1149, SPR_INDEX_SYS_GPR126 = 1150, SPR_INDEX_SYS_GPR127 = 1151, SPR_INDEX_SYS_GPR128 = 1152
+ , SPR_INDEX_SYS_GPR129 = 1153, SPR_INDEX_SYS_GPR130 = 1154, SPR_INDEX_SYS_GPR131 = 1155, SPR_INDEX_SYS_GPR132 = 1156
+ , SPR_INDEX_SYS_GPR133 = 1157, SPR_INDEX_SYS_GPR134 = 1158, SPR_INDEX_SYS_GPR135 = 1159, SPR_INDEX_SYS_GPR136 = 1160
+ , SPR_INDEX_SYS_GPR137 = 1161, SPR_INDEX_SYS_GPR138 = 1162, SPR_INDEX_SYS_GPR139 = 1163, SPR_INDEX_SYS_GPR140 = 1164
+ , SPR_INDEX_SYS_GPR141 = 1165, SPR_INDEX_SYS_GPR142 = 1166, SPR_INDEX_SYS_GPR143 = 1167, SPR_INDEX_SYS_GPR144 = 1168
+ , SPR_INDEX_SYS_GPR145 = 1169, SPR_INDEX_SYS_GPR146 = 1170, SPR_INDEX_SYS_GPR147 = 1171, SPR_INDEX_SYS_GPR148 = 1172
+ , SPR_INDEX_SYS_GPR149 = 1173, SPR_INDEX_SYS_GPR150 = 1174, SPR_INDEX_SYS_GPR151 = 1175, SPR_INDEX_SYS_GPR152 = 1176
+ , SPR_INDEX_SYS_GPR153 = 1177, SPR_INDEX_SYS_GPR154 = 1178, SPR_INDEX_SYS_GPR155 = 1179, SPR_INDEX_SYS_GPR156 = 1180
+ , SPR_INDEX_SYS_GPR157 = 1181, SPR_INDEX_SYS_GPR158 = 1182, SPR_INDEX_SYS_GPR159 = 1183, SPR_INDEX_SYS_GPR160 = 1184
+ , SPR_INDEX_SYS_GPR161 = 1185, SPR_INDEX_SYS_GPR162 = 1186, SPR_INDEX_SYS_GPR163 = 1187, SPR_INDEX_SYS_GPR164 = 1188
+ , SPR_INDEX_SYS_GPR165 = 1189, SPR_INDEX_SYS_GPR166 = 1190, SPR_INDEX_SYS_GPR167 = 1191, SPR_INDEX_SYS_GPR168 = 1192
+ , SPR_INDEX_SYS_GPR169 = 1193, SPR_INDEX_SYS_GPR170 = 1194, SPR_INDEX_SYS_GPR171 = 1195, SPR_INDEX_SYS_GPR172 = 1196
+ , SPR_INDEX_SYS_GPR173 = 1197, SPR_INDEX_SYS_GPR174 = 1198, SPR_INDEX_SYS_GPR175 = 1199, SPR_INDEX_SYS_GPR176 = 1200
+ , SPR_INDEX_SYS_GPR177 = 1201, SPR_INDEX_SYS_GPR178 = 1202, SPR_INDEX_SYS_GPR179 = 1203, SPR_INDEX_SYS_GPR180 = 1204
+ , SPR_INDEX_SYS_GPR181 = 1205, SPR_INDEX_SYS_GPR182 = 1206, SPR_INDEX_SYS_GPR183 = 1207, SPR_INDEX_SYS_GPR184 = 1208
+ , SPR_INDEX_SYS_GPR185 = 1209, SPR_INDEX_SYS_GPR186 = 1210, SPR_INDEX_SYS_GPR187 = 1211, SPR_INDEX_SYS_GPR188 = 1212
+ , SPR_INDEX_SYS_GPR189 = 1213, SPR_INDEX_SYS_GPR190 = 1214, SPR_INDEX_SYS_GPR191 = 1215, SPR_INDEX_SYS_GPR192 = 1216
+ , SPR_INDEX_SYS_GPR193 = 1217, SPR_INDEX_SYS_GPR194 = 1218, SPR_INDEX_SYS_GPR195 = 1219, SPR_INDEX_SYS_GPR196 = 1220
+ , SPR_INDEX_SYS_GPR197 = 1221, SPR_INDEX_SYS_GPR198 = 1222, SPR_INDEX_SYS_GPR199 = 1223, SPR_INDEX_SYS_GPR200 = 1224
+ , SPR_INDEX_SYS_GPR201 = 1225, SPR_INDEX_SYS_GPR202 = 1226, SPR_INDEX_SYS_GPR203 = 1227, SPR_INDEX_SYS_GPR204 = 1228
+ , SPR_INDEX_SYS_GPR205 = 1229, SPR_INDEX_SYS_GPR206 = 1230, SPR_INDEX_SYS_GPR207 = 1231, SPR_INDEX_SYS_GPR208 = 1232
+ , SPR_INDEX_SYS_GPR209 = 1233, SPR_INDEX_SYS_GPR210 = 1234, SPR_INDEX_SYS_GPR211 = 1235, SPR_INDEX_SYS_GPR212 = 1236
+ , SPR_INDEX_SYS_GPR213 = 1237, SPR_INDEX_SYS_GPR214 = 1238, SPR_INDEX_SYS_GPR215 = 1239, SPR_INDEX_SYS_GPR216 = 1240
+ , SPR_INDEX_SYS_GPR217 = 1241, SPR_INDEX_SYS_GPR218 = 1242, SPR_INDEX_SYS_GPR219 = 1243, SPR_INDEX_SYS_GPR220 = 1244
+ , SPR_INDEX_SYS_GPR221 = 1245, SPR_INDEX_SYS_GPR222 = 1246, SPR_INDEX_SYS_GPR223 = 1247, SPR_INDEX_SYS_GPR224 = 1248
+ , SPR_INDEX_SYS_GPR225 = 1249, SPR_INDEX_SYS_GPR226 = 1250, SPR_INDEX_SYS_GPR227 = 1251, SPR_INDEX_SYS_GPR228 = 1252
+ , SPR_INDEX_SYS_GPR229 = 1253, SPR_INDEX_SYS_GPR230 = 1254, SPR_INDEX_SYS_GPR231 = 1255, SPR_INDEX_SYS_GPR232 = 1256
+ , SPR_INDEX_SYS_GPR233 = 1257, SPR_INDEX_SYS_GPR234 = 1258, SPR_INDEX_SYS_GPR235 = 1259, SPR_INDEX_SYS_GPR236 = 1260
+ , SPR_INDEX_SYS_GPR237 = 1261, SPR_INDEX_SYS_GPR238 = 1262, SPR_INDEX_SYS_GPR239 = 1263, SPR_INDEX_SYS_GPR240 = 1264
+ , SPR_INDEX_SYS_GPR241 = 1265, SPR_INDEX_SYS_GPR242 = 1266, SPR_INDEX_SYS_GPR243 = 1267, SPR_INDEX_SYS_GPR244 = 1268
+ , SPR_INDEX_SYS_GPR245 = 1269, SPR_INDEX_SYS_GPR246 = 1270, SPR_INDEX_SYS_GPR247 = 1271, SPR_INDEX_SYS_GPR248 = 1272
+ , SPR_INDEX_SYS_GPR249 = 1273, SPR_INDEX_SYS_GPR250 = 1274, SPR_INDEX_SYS_GPR251 = 1275, SPR_INDEX_SYS_GPR252 = 1276
+ , SPR_INDEX_SYS_GPR253 = 1277, SPR_INDEX_SYS_GPR254 = 1278, SPR_INDEX_SYS_GPR255 = 1279, SPR_INDEX_SYS_GPR256 = 1280
+ , SPR_INDEX_SYS_GPR257 = 1281, SPR_INDEX_SYS_GPR258 = 1282, SPR_INDEX_SYS_GPR259 = 1283, SPR_INDEX_SYS_GPR260 = 1284
+ , SPR_INDEX_SYS_GPR261 = 1285, SPR_INDEX_SYS_GPR262 = 1286, SPR_INDEX_SYS_GPR263 = 1287, SPR_INDEX_SYS_GPR264 = 1288
+ , SPR_INDEX_SYS_GPR265 = 1289, SPR_INDEX_SYS_GPR266 = 1290, SPR_INDEX_SYS_GPR267 = 1291, SPR_INDEX_SYS_GPR268 = 1292
+ , SPR_INDEX_SYS_GPR269 = 1293, SPR_INDEX_SYS_GPR270 = 1294, SPR_INDEX_SYS_GPR271 = 1295, SPR_INDEX_SYS_GPR272 = 1296
+ , SPR_INDEX_SYS_GPR273 = 1297, SPR_INDEX_SYS_GPR274 = 1298, SPR_INDEX_SYS_GPR275 = 1299, SPR_INDEX_SYS_GPR276 = 1300
+ , SPR_INDEX_SYS_GPR277 = 1301, SPR_INDEX_SYS_GPR278 = 1302, SPR_INDEX_SYS_GPR279 = 1303, SPR_INDEX_SYS_GPR280 = 1304
+ , SPR_INDEX_SYS_GPR281 = 1305, SPR_INDEX_SYS_GPR282 = 1306, SPR_INDEX_SYS_GPR283 = 1307, SPR_INDEX_SYS_GPR284 = 1308
+ , SPR_INDEX_SYS_GPR285 = 1309, SPR_INDEX_SYS_GPR286 = 1310, SPR_INDEX_SYS_GPR287 = 1311, SPR_INDEX_SYS_GPR288 = 1312
+ , SPR_INDEX_SYS_GPR289 = 1313, SPR_INDEX_SYS_GPR290 = 1314, SPR_INDEX_SYS_GPR291 = 1315, SPR_INDEX_SYS_GPR292 = 1316
+ , SPR_INDEX_SYS_GPR293 = 1317, SPR_INDEX_SYS_GPR294 = 1318, SPR_INDEX_SYS_GPR295 = 1319, SPR_INDEX_SYS_GPR296 = 1320
+ , SPR_INDEX_SYS_GPR297 = 1321, SPR_INDEX_SYS_GPR298 = 1322, SPR_INDEX_SYS_GPR299 = 1323, SPR_INDEX_SYS_GPR300 = 1324
+ , SPR_INDEX_SYS_GPR301 = 1325, SPR_INDEX_SYS_GPR302 = 1326, SPR_INDEX_SYS_GPR303 = 1327, SPR_INDEX_SYS_GPR304 = 1328
+ , SPR_INDEX_SYS_GPR305 = 1329, SPR_INDEX_SYS_GPR306 = 1330, SPR_INDEX_SYS_GPR307 = 1331, SPR_INDEX_SYS_GPR308 = 1332
+ , SPR_INDEX_SYS_GPR309 = 1333, SPR_INDEX_SYS_GPR310 = 1334, SPR_INDEX_SYS_GPR311 = 1335, SPR_INDEX_SYS_GPR312 = 1336
+ , SPR_INDEX_SYS_GPR313 = 1337, SPR_INDEX_SYS_GPR314 = 1338, SPR_INDEX_SYS_GPR315 = 1339, SPR_INDEX_SYS_GPR316 = 1340
+ , SPR_INDEX_SYS_GPR317 = 1341, SPR_INDEX_SYS_GPR318 = 1342, SPR_INDEX_SYS_GPR319 = 1343, SPR_INDEX_SYS_GPR320 = 1344
+ , SPR_INDEX_SYS_GPR321 = 1345, SPR_INDEX_SYS_GPR322 = 1346, SPR_INDEX_SYS_GPR323 = 1347, SPR_INDEX_SYS_GPR324 = 1348
+ , SPR_INDEX_SYS_GPR325 = 1349, SPR_INDEX_SYS_GPR326 = 1350, SPR_INDEX_SYS_GPR327 = 1351, SPR_INDEX_SYS_GPR328 = 1352
+ , SPR_INDEX_SYS_GPR329 = 1353, SPR_INDEX_SYS_GPR330 = 1354, SPR_INDEX_SYS_GPR331 = 1355, SPR_INDEX_SYS_GPR332 = 1356
+ , SPR_INDEX_SYS_GPR333 = 1357, SPR_INDEX_SYS_GPR334 = 1358, SPR_INDEX_SYS_GPR335 = 1359, SPR_INDEX_SYS_GPR336 = 1360
+ , SPR_INDEX_SYS_GPR337 = 1361, SPR_INDEX_SYS_GPR338 = 1362, SPR_INDEX_SYS_GPR339 = 1363, SPR_INDEX_SYS_GPR340 = 1364
+ , SPR_INDEX_SYS_GPR341 = 1365, SPR_INDEX_SYS_GPR342 = 1366, SPR_INDEX_SYS_GPR343 = 1367, SPR_INDEX_SYS_GPR344 = 1368
+ , SPR_INDEX_SYS_GPR345 = 1369, SPR_INDEX_SYS_GPR346 = 1370, SPR_INDEX_SYS_GPR347 = 1371, SPR_INDEX_SYS_GPR348 = 1372
+ , SPR_INDEX_SYS_GPR349 = 1373, SPR_INDEX_SYS_GPR350 = 1374, SPR_INDEX_SYS_GPR351 = 1375, SPR_INDEX_SYS_GPR352 = 1376
+ , SPR_INDEX_SYS_GPR353 = 1377, SPR_INDEX_SYS_GPR354 = 1378, SPR_INDEX_SYS_GPR355 = 1379, SPR_INDEX_SYS_GPR356 = 1380
+ , SPR_INDEX_SYS_GPR357 = 1381, SPR_INDEX_SYS_GPR358 = 1382, SPR_INDEX_SYS_GPR359 = 1383, SPR_INDEX_SYS_GPR360 = 1384
+ , SPR_INDEX_SYS_GPR361 = 1385, SPR_INDEX_SYS_GPR362 = 1386, SPR_INDEX_SYS_GPR363 = 1387, SPR_INDEX_SYS_GPR364 = 1388
+ , SPR_INDEX_SYS_GPR365 = 1389, SPR_INDEX_SYS_GPR366 = 1390, SPR_INDEX_SYS_GPR367 = 1391, SPR_INDEX_SYS_GPR368 = 1392
+ , SPR_INDEX_SYS_GPR369 = 1393, SPR_INDEX_SYS_GPR370 = 1394, SPR_INDEX_SYS_GPR371 = 1395, SPR_INDEX_SYS_GPR372 = 1396
+ , SPR_INDEX_SYS_GPR373 = 1397, SPR_INDEX_SYS_GPR374 = 1398, SPR_INDEX_SYS_GPR375 = 1399, SPR_INDEX_SYS_GPR376 = 1400
+ , SPR_INDEX_SYS_GPR377 = 1401, SPR_INDEX_SYS_GPR378 = 1402, SPR_INDEX_SYS_GPR379 = 1403, SPR_INDEX_SYS_GPR380 = 1404
+ , SPR_INDEX_SYS_GPR381 = 1405, SPR_INDEX_SYS_GPR382 = 1406, SPR_INDEX_SYS_GPR383 = 1407, SPR_INDEX_SYS_GPR384 = 1408
+ , SPR_INDEX_SYS_GPR385 = 1409, SPR_INDEX_SYS_GPR386 = 1410, SPR_INDEX_SYS_GPR387 = 1411, SPR_INDEX_SYS_GPR388 = 1412
+ , SPR_INDEX_SYS_GPR389 = 1413, SPR_INDEX_SYS_GPR390 = 1414, SPR_INDEX_SYS_GPR391 = 1415, SPR_INDEX_SYS_GPR392 = 1416
+ , SPR_INDEX_SYS_GPR393 = 1417, SPR_INDEX_SYS_GPR394 = 1418, SPR_INDEX_SYS_GPR395 = 1419, SPR_INDEX_SYS_GPR396 = 1420
+ , SPR_INDEX_SYS_GPR397 = 1421, SPR_INDEX_SYS_GPR398 = 1422, SPR_INDEX_SYS_GPR399 = 1423, SPR_INDEX_SYS_GPR400 = 1424
+ , SPR_INDEX_SYS_GPR401 = 1425, SPR_INDEX_SYS_GPR402 = 1426, SPR_INDEX_SYS_GPR403 = 1427, SPR_INDEX_SYS_GPR404 = 1428
+ , SPR_INDEX_SYS_GPR405 = 1429, SPR_INDEX_SYS_GPR406 = 1430, SPR_INDEX_SYS_GPR407 = 1431, SPR_INDEX_SYS_GPR408 = 1432
+ , SPR_INDEX_SYS_GPR409 = 1433, SPR_INDEX_SYS_GPR410 = 1434, SPR_INDEX_SYS_GPR411 = 1435, SPR_INDEX_SYS_GPR412 = 1436
+ , SPR_INDEX_SYS_GPR413 = 1437, SPR_INDEX_SYS_GPR414 = 1438, SPR_INDEX_SYS_GPR415 = 1439, SPR_INDEX_SYS_GPR416 = 1440
+ , SPR_INDEX_SYS_GPR417 = 1441, SPR_INDEX_SYS_GPR418 = 1442, SPR_INDEX_SYS_GPR419 = 1443, SPR_INDEX_SYS_GPR420 = 1444
+ , SPR_INDEX_SYS_GPR421 = 1445, SPR_INDEX_SYS_GPR422 = 1446, SPR_INDEX_SYS_GPR423 = 1447, SPR_INDEX_SYS_GPR424 = 1448
+ , SPR_INDEX_SYS_GPR425 = 1449, SPR_INDEX_SYS_GPR426 = 1450, SPR_INDEX_SYS_GPR427 = 1451, SPR_INDEX_SYS_GPR428 = 1452
+ , SPR_INDEX_SYS_GPR429 = 1453, SPR_INDEX_SYS_GPR430 = 1454, SPR_INDEX_SYS_GPR431 = 1455, SPR_INDEX_SYS_GPR432 = 1456
+ , SPR_INDEX_SYS_GPR433 = 1457, SPR_INDEX_SYS_GPR434 = 1458, SPR_INDEX_SYS_GPR435 = 1459, SPR_INDEX_SYS_GPR436 = 1460
+ , SPR_INDEX_SYS_GPR437 = 1461, SPR_INDEX_SYS_GPR438 = 1462, SPR_INDEX_SYS_GPR439 = 1463, SPR_INDEX_SYS_GPR440 = 1464
+ , SPR_INDEX_SYS_GPR441 = 1465, SPR_INDEX_SYS_GPR442 = 1466, SPR_INDEX_SYS_GPR443 = 1467, SPR_INDEX_SYS_GPR444 = 1468
+ , SPR_INDEX_SYS_GPR445 = 1469, SPR_INDEX_SYS_GPR446 = 1470, SPR_INDEX_SYS_GPR447 = 1471, SPR_INDEX_SYS_GPR448 = 1472
+ , SPR_INDEX_SYS_GPR449 = 1473, SPR_INDEX_SYS_GPR450 = 1474, SPR_INDEX_SYS_GPR451 = 1475, SPR_INDEX_SYS_GPR452 = 1476
+ , SPR_INDEX_SYS_GPR453 = 1477, SPR_INDEX_SYS_GPR454 = 1478, SPR_INDEX_SYS_GPR455 = 1479, SPR_INDEX_SYS_GPR456 = 1480
+ , SPR_INDEX_SYS_GPR457 = 1481, SPR_INDEX_SYS_GPR458 = 1482, SPR_INDEX_SYS_GPR459 = 1483, SPR_INDEX_SYS_GPR460 = 1484
+ , SPR_INDEX_SYS_GPR461 = 1485, SPR_INDEX_SYS_GPR462 = 1486, SPR_INDEX_SYS_GPR463 = 1487, SPR_INDEX_SYS_GPR464 = 1488
+ , SPR_INDEX_SYS_GPR465 = 1489, SPR_INDEX_SYS_GPR466 = 1490, SPR_INDEX_SYS_GPR467 = 1491, SPR_INDEX_SYS_GPR468 = 1492
+ , SPR_INDEX_SYS_GPR469 = 1493, SPR_INDEX_SYS_GPR470 = 1494, SPR_INDEX_SYS_GPR471 = 1495, SPR_INDEX_SYS_GPR472 = 1496
+ , SPR_INDEX_SYS_GPR473 = 1497, SPR_INDEX_SYS_GPR474 = 1498, SPR_INDEX_SYS_GPR475 = 1499, SPR_INDEX_SYS_GPR476 = 1500
+ , SPR_INDEX_SYS_GPR477 = 1501, SPR_INDEX_SYS_GPR478 = 1502, SPR_INDEX_SYS_GPR479 = 1503, SPR_INDEX_SYS_GPR480 = 1504
+ , SPR_INDEX_SYS_GPR481 = 1505, SPR_INDEX_SYS_GPR482 = 1506, SPR_INDEX_SYS_GPR483 = 1507, SPR_INDEX_SYS_GPR484 = 1508
+ , SPR_INDEX_SYS_GPR485 = 1509, SPR_INDEX_SYS_GPR486 = 1510, SPR_INDEX_SYS_GPR487 = 1511, SPR_INDEX_SYS_GPR488 = 1512
+ , SPR_INDEX_SYS_GPR489 = 1513, SPR_INDEX_SYS_GPR490 = 1514, SPR_INDEX_SYS_GPR491 = 1515, SPR_INDEX_SYS_GPR492 = 1516
+ , SPR_INDEX_SYS_GPR493 = 1517, SPR_INDEX_SYS_GPR494 = 1518, SPR_INDEX_SYS_GPR495 = 1519, SPR_INDEX_SYS_GPR496 = 1520
+ , SPR_INDEX_SYS_GPR497 = 1521, SPR_INDEX_SYS_GPR498 = 1522, SPR_INDEX_SYS_GPR499 = 1523, SPR_INDEX_SYS_GPR500 = 1524
+ , SPR_INDEX_SYS_GPR501 = 1525, SPR_INDEX_SYS_GPR502 = 1526, SPR_INDEX_SYS_GPR503 = 1527, SPR_INDEX_SYS_GPR504 = 1528
+ , SPR_INDEX_SYS_GPR505 = 1529, SPR_INDEX_SYS_GPR506 = 1530, SPR_INDEX_SYS_GPR507 = 1531, SPR_INDEX_SYS_GPR508 = 1532
+ , SPR_INDEX_SYS_GPR509 = 1533, SPR_INDEX_SYS_GPR510 = 1534, SPR_INDEX_SYS_GPR511 = 1535, SPR_INDEX_MAC_MACLO = 1
+ , SPR_INDEX_MAC_MACHI = 2, SPR_INDEX_TICK_TTMR = 0
} SPR_REG_INDICES;
/* Enum declaration for SPR field msb positions. */
@@ -449,150 +450,150 @@ typedef enum cgen_hw_type {
, HW_H_SYS_ESR4, HW_H_SYS_ESR5, HW_H_SYS_ESR6, HW_H_SYS_ESR7
, HW_H_SYS_ESR8, HW_H_SYS_ESR9, HW_H_SYS_ESR10, HW_H_SYS_ESR11
, HW_H_SYS_ESR12, HW_H_SYS_ESR13, HW_H_SYS_ESR14, HW_H_SYS_ESR15
- , HW_H_SYS_GPR0, HW_H_SYS_GPR1, HW_H_SYS_GPR2, HW_H_SYS_GPR3
- , HW_H_SYS_GPR4, HW_H_SYS_GPR5, HW_H_SYS_GPR6, HW_H_SYS_GPR7
- , HW_H_SYS_GPR8, HW_H_SYS_GPR9, HW_H_SYS_GPR10, HW_H_SYS_GPR11
- , HW_H_SYS_GPR12, HW_H_SYS_GPR13, HW_H_SYS_GPR14, HW_H_SYS_GPR15
- , HW_H_SYS_GPR16, HW_H_SYS_GPR17, HW_H_SYS_GPR18, HW_H_SYS_GPR19
- , HW_H_SYS_GPR20, HW_H_SYS_GPR21, HW_H_SYS_GPR22, HW_H_SYS_GPR23
- , HW_H_SYS_GPR24, HW_H_SYS_GPR25, HW_H_SYS_GPR26, HW_H_SYS_GPR27
- , HW_H_SYS_GPR28, HW_H_SYS_GPR29, HW_H_SYS_GPR30, HW_H_SYS_GPR31
- , HW_H_SYS_GPR32, HW_H_SYS_GPR33, HW_H_SYS_GPR34, HW_H_SYS_GPR35
- , HW_H_SYS_GPR36, HW_H_SYS_GPR37, HW_H_SYS_GPR38, HW_H_SYS_GPR39
- , HW_H_SYS_GPR40, HW_H_SYS_GPR41, HW_H_SYS_GPR42, HW_H_SYS_GPR43
- , HW_H_SYS_GPR44, HW_H_SYS_GPR45, HW_H_SYS_GPR46, HW_H_SYS_GPR47
- , HW_H_SYS_GPR48, HW_H_SYS_GPR49, HW_H_SYS_GPR50, HW_H_SYS_GPR51
- , HW_H_SYS_GPR52, HW_H_SYS_GPR53, HW_H_SYS_GPR54, HW_H_SYS_GPR55
- , HW_H_SYS_GPR56, HW_H_SYS_GPR57, HW_H_SYS_GPR58, HW_H_SYS_GPR59
- , HW_H_SYS_GPR60, HW_H_SYS_GPR61, HW_H_SYS_GPR62, HW_H_SYS_GPR63
- , HW_H_SYS_GPR64, HW_H_SYS_GPR65, HW_H_SYS_GPR66, HW_H_SYS_GPR67
- , HW_H_SYS_GPR68, HW_H_SYS_GPR69, HW_H_SYS_GPR70, HW_H_SYS_GPR71
- , HW_H_SYS_GPR72, HW_H_SYS_GPR73, HW_H_SYS_GPR74, HW_H_SYS_GPR75
- , HW_H_SYS_GPR76, HW_H_SYS_GPR77, HW_H_SYS_GPR78, HW_H_SYS_GPR79
- , HW_H_SYS_GPR80, HW_H_SYS_GPR81, HW_H_SYS_GPR82, HW_H_SYS_GPR83
- , HW_H_SYS_GPR84, HW_H_SYS_GPR85, HW_H_SYS_GPR86, HW_H_SYS_GPR87
- , HW_H_SYS_GPR88, HW_H_SYS_GPR89, HW_H_SYS_GPR90, HW_H_SYS_GPR91
- , HW_H_SYS_GPR92, HW_H_SYS_GPR93, HW_H_SYS_GPR94, HW_H_SYS_GPR95
- , HW_H_SYS_GPR96, HW_H_SYS_GPR97, HW_H_SYS_GPR98, HW_H_SYS_GPR99
- , HW_H_SYS_GPR100, HW_H_SYS_GPR101, HW_H_SYS_GPR102, HW_H_SYS_GPR103
- , HW_H_SYS_GPR104, HW_H_SYS_GPR105, HW_H_SYS_GPR106, HW_H_SYS_GPR107
- , HW_H_SYS_GPR108, HW_H_SYS_GPR109, HW_H_SYS_GPR110, HW_H_SYS_GPR111
- , HW_H_SYS_GPR112, HW_H_SYS_GPR113, HW_H_SYS_GPR114, HW_H_SYS_GPR115
- , HW_H_SYS_GPR116, HW_H_SYS_GPR117, HW_H_SYS_GPR118, HW_H_SYS_GPR119
- , HW_H_SYS_GPR120, HW_H_SYS_GPR121, HW_H_SYS_GPR122, HW_H_SYS_GPR123
- , HW_H_SYS_GPR124, HW_H_SYS_GPR125, HW_H_SYS_GPR126, HW_H_SYS_GPR127
- , HW_H_SYS_GPR128, HW_H_SYS_GPR129, HW_H_SYS_GPR130, HW_H_SYS_GPR131
- , HW_H_SYS_GPR132, HW_H_SYS_GPR133, HW_H_SYS_GPR134, HW_H_SYS_GPR135
- , HW_H_SYS_GPR136, HW_H_SYS_GPR137, HW_H_SYS_GPR138, HW_H_SYS_GPR139
- , HW_H_SYS_GPR140, HW_H_SYS_GPR141, HW_H_SYS_GPR142, HW_H_SYS_GPR143
- , HW_H_SYS_GPR144, HW_H_SYS_GPR145, HW_H_SYS_GPR146, HW_H_SYS_GPR147
- , HW_H_SYS_GPR148, HW_H_SYS_GPR149, HW_H_SYS_GPR150, HW_H_SYS_GPR151
- , HW_H_SYS_GPR152, HW_H_SYS_GPR153, HW_H_SYS_GPR154, HW_H_SYS_GPR155
- , HW_H_SYS_GPR156, HW_H_SYS_GPR157, HW_H_SYS_GPR158, HW_H_SYS_GPR159
- , HW_H_SYS_GPR160, HW_H_SYS_GPR161, HW_H_SYS_GPR162, HW_H_SYS_GPR163
- , HW_H_SYS_GPR164, HW_H_SYS_GPR165, HW_H_SYS_GPR166, HW_H_SYS_GPR167
- , HW_H_SYS_GPR168, HW_H_SYS_GPR169, HW_H_SYS_GPR170, HW_H_SYS_GPR171
- , HW_H_SYS_GPR172, HW_H_SYS_GPR173, HW_H_SYS_GPR174, HW_H_SYS_GPR175
- , HW_H_SYS_GPR176, HW_H_SYS_GPR177, HW_H_SYS_GPR178, HW_H_SYS_GPR179
- , HW_H_SYS_GPR180, HW_H_SYS_GPR181, HW_H_SYS_GPR182, HW_H_SYS_GPR183
- , HW_H_SYS_GPR184, HW_H_SYS_GPR185, HW_H_SYS_GPR186, HW_H_SYS_GPR187
- , HW_H_SYS_GPR188, HW_H_SYS_GPR189, HW_H_SYS_GPR190, HW_H_SYS_GPR191
- , HW_H_SYS_GPR192, HW_H_SYS_GPR193, HW_H_SYS_GPR194, HW_H_SYS_GPR195
- , HW_H_SYS_GPR196, HW_H_SYS_GPR197, HW_H_SYS_GPR198, HW_H_SYS_GPR199
- , HW_H_SYS_GPR200, HW_H_SYS_GPR201, HW_H_SYS_GPR202, HW_H_SYS_GPR203
- , HW_H_SYS_GPR204, HW_H_SYS_GPR205, HW_H_SYS_GPR206, HW_H_SYS_GPR207
- , HW_H_SYS_GPR208, HW_H_SYS_GPR209, HW_H_SYS_GPR210, HW_H_SYS_GPR211
- , HW_H_SYS_GPR212, HW_H_SYS_GPR213, HW_H_SYS_GPR214, HW_H_SYS_GPR215
- , HW_H_SYS_GPR216, HW_H_SYS_GPR217, HW_H_SYS_GPR218, HW_H_SYS_GPR219
- , HW_H_SYS_GPR220, HW_H_SYS_GPR221, HW_H_SYS_GPR222, HW_H_SYS_GPR223
- , HW_H_SYS_GPR224, HW_H_SYS_GPR225, HW_H_SYS_GPR226, HW_H_SYS_GPR227
- , HW_H_SYS_GPR228, HW_H_SYS_GPR229, HW_H_SYS_GPR230, HW_H_SYS_GPR231
- , HW_H_SYS_GPR232, HW_H_SYS_GPR233, HW_H_SYS_GPR234, HW_H_SYS_GPR235
- , HW_H_SYS_GPR236, HW_H_SYS_GPR237, HW_H_SYS_GPR238, HW_H_SYS_GPR239
- , HW_H_SYS_GPR240, HW_H_SYS_GPR241, HW_H_SYS_GPR242, HW_H_SYS_GPR243
- , HW_H_SYS_GPR244, HW_H_SYS_GPR245, HW_H_SYS_GPR246, HW_H_SYS_GPR247
- , HW_H_SYS_GPR248, HW_H_SYS_GPR249, HW_H_SYS_GPR250, HW_H_SYS_GPR251
- , HW_H_SYS_GPR252, HW_H_SYS_GPR253, HW_H_SYS_GPR254, HW_H_SYS_GPR255
- , HW_H_SYS_GPR256, HW_H_SYS_GPR257, HW_H_SYS_GPR258, HW_H_SYS_GPR259
- , HW_H_SYS_GPR260, HW_H_SYS_GPR261, HW_H_SYS_GPR262, HW_H_SYS_GPR263
- , HW_H_SYS_GPR264, HW_H_SYS_GPR265, HW_H_SYS_GPR266, HW_H_SYS_GPR267
- , HW_H_SYS_GPR268, HW_H_SYS_GPR269, HW_H_SYS_GPR270, HW_H_SYS_GPR271
- , HW_H_SYS_GPR272, HW_H_SYS_GPR273, HW_H_SYS_GPR274, HW_H_SYS_GPR275
- , HW_H_SYS_GPR276, HW_H_SYS_GPR277, HW_H_SYS_GPR278, HW_H_SYS_GPR279
- , HW_H_SYS_GPR280, HW_H_SYS_GPR281, HW_H_SYS_GPR282, HW_H_SYS_GPR283
- , HW_H_SYS_GPR284, HW_H_SYS_GPR285, HW_H_SYS_GPR286, HW_H_SYS_GPR287
- , HW_H_SYS_GPR288, HW_H_SYS_GPR289, HW_H_SYS_GPR290, HW_H_SYS_GPR291
- , HW_H_SYS_GPR292, HW_H_SYS_GPR293, HW_H_SYS_GPR294, HW_H_SYS_GPR295
- , HW_H_SYS_GPR296, HW_H_SYS_GPR297, HW_H_SYS_GPR298, HW_H_SYS_GPR299
- , HW_H_SYS_GPR300, HW_H_SYS_GPR301, HW_H_SYS_GPR302, HW_H_SYS_GPR303
- , HW_H_SYS_GPR304, HW_H_SYS_GPR305, HW_H_SYS_GPR306, HW_H_SYS_GPR307
- , HW_H_SYS_GPR308, HW_H_SYS_GPR309, HW_H_SYS_GPR310, HW_H_SYS_GPR311
- , HW_H_SYS_GPR312, HW_H_SYS_GPR313, HW_H_SYS_GPR314, HW_H_SYS_GPR315
- , HW_H_SYS_GPR316, HW_H_SYS_GPR317, HW_H_SYS_GPR318, HW_H_SYS_GPR319
- , HW_H_SYS_GPR320, HW_H_SYS_GPR321, HW_H_SYS_GPR322, HW_H_SYS_GPR323
- , HW_H_SYS_GPR324, HW_H_SYS_GPR325, HW_H_SYS_GPR326, HW_H_SYS_GPR327
- , HW_H_SYS_GPR328, HW_H_SYS_GPR329, HW_H_SYS_GPR330, HW_H_SYS_GPR331
- , HW_H_SYS_GPR332, HW_H_SYS_GPR333, HW_H_SYS_GPR334, HW_H_SYS_GPR335
- , HW_H_SYS_GPR336, HW_H_SYS_GPR337, HW_H_SYS_GPR338, HW_H_SYS_GPR339
- , HW_H_SYS_GPR340, HW_H_SYS_GPR341, HW_H_SYS_GPR342, HW_H_SYS_GPR343
- , HW_H_SYS_GPR344, HW_H_SYS_GPR345, HW_H_SYS_GPR346, HW_H_SYS_GPR347
- , HW_H_SYS_GPR348, HW_H_SYS_GPR349, HW_H_SYS_GPR350, HW_H_SYS_GPR351
- , HW_H_SYS_GPR352, HW_H_SYS_GPR353, HW_H_SYS_GPR354, HW_H_SYS_GPR355
- , HW_H_SYS_GPR356, HW_H_SYS_GPR357, HW_H_SYS_GPR358, HW_H_SYS_GPR359
- , HW_H_SYS_GPR360, HW_H_SYS_GPR361, HW_H_SYS_GPR362, HW_H_SYS_GPR363
- , HW_H_SYS_GPR364, HW_H_SYS_GPR365, HW_H_SYS_GPR366, HW_H_SYS_GPR367
- , HW_H_SYS_GPR368, HW_H_SYS_GPR369, HW_H_SYS_GPR370, HW_H_SYS_GPR371
- , HW_H_SYS_GPR372, HW_H_SYS_GPR373, HW_H_SYS_GPR374, HW_H_SYS_GPR375
- , HW_H_SYS_GPR376, HW_H_SYS_GPR377, HW_H_SYS_GPR378, HW_H_SYS_GPR379
- , HW_H_SYS_GPR380, HW_H_SYS_GPR381, HW_H_SYS_GPR382, HW_H_SYS_GPR383
- , HW_H_SYS_GPR384, HW_H_SYS_GPR385, HW_H_SYS_GPR386, HW_H_SYS_GPR387
- , HW_H_SYS_GPR388, HW_H_SYS_GPR389, HW_H_SYS_GPR390, HW_H_SYS_GPR391
- , HW_H_SYS_GPR392, HW_H_SYS_GPR393, HW_H_SYS_GPR394, HW_H_SYS_GPR395
- , HW_H_SYS_GPR396, HW_H_SYS_GPR397, HW_H_SYS_GPR398, HW_H_SYS_GPR399
- , HW_H_SYS_GPR400, HW_H_SYS_GPR401, HW_H_SYS_GPR402, HW_H_SYS_GPR403
- , HW_H_SYS_GPR404, HW_H_SYS_GPR405, HW_H_SYS_GPR406, HW_H_SYS_GPR407
- , HW_H_SYS_GPR408, HW_H_SYS_GPR409, HW_H_SYS_GPR410, HW_H_SYS_GPR411
- , HW_H_SYS_GPR412, HW_H_SYS_GPR413, HW_H_SYS_GPR414, HW_H_SYS_GPR415
- , HW_H_SYS_GPR416, HW_H_SYS_GPR417, HW_H_SYS_GPR418, HW_H_SYS_GPR419
- , HW_H_SYS_GPR420, HW_H_SYS_GPR421, HW_H_SYS_GPR422, HW_H_SYS_GPR423
- , HW_H_SYS_GPR424, HW_H_SYS_GPR425, HW_H_SYS_GPR426, HW_H_SYS_GPR427
- , HW_H_SYS_GPR428, HW_H_SYS_GPR429, HW_H_SYS_GPR430, HW_H_SYS_GPR431
- , HW_H_SYS_GPR432, HW_H_SYS_GPR433, HW_H_SYS_GPR434, HW_H_SYS_GPR435
- , HW_H_SYS_GPR436, HW_H_SYS_GPR437, HW_H_SYS_GPR438, HW_H_SYS_GPR439
- , HW_H_SYS_GPR440, HW_H_SYS_GPR441, HW_H_SYS_GPR442, HW_H_SYS_GPR443
- , HW_H_SYS_GPR444, HW_H_SYS_GPR445, HW_H_SYS_GPR446, HW_H_SYS_GPR447
- , HW_H_SYS_GPR448, HW_H_SYS_GPR449, HW_H_SYS_GPR450, HW_H_SYS_GPR451
- , HW_H_SYS_GPR452, HW_H_SYS_GPR453, HW_H_SYS_GPR454, HW_H_SYS_GPR455
- , HW_H_SYS_GPR456, HW_H_SYS_GPR457, HW_H_SYS_GPR458, HW_H_SYS_GPR459
- , HW_H_SYS_GPR460, HW_H_SYS_GPR461, HW_H_SYS_GPR462, HW_H_SYS_GPR463
- , HW_H_SYS_GPR464, HW_H_SYS_GPR465, HW_H_SYS_GPR466, HW_H_SYS_GPR467
- , HW_H_SYS_GPR468, HW_H_SYS_GPR469, HW_H_SYS_GPR470, HW_H_SYS_GPR471
- , HW_H_SYS_GPR472, HW_H_SYS_GPR473, HW_H_SYS_GPR474, HW_H_SYS_GPR475
- , HW_H_SYS_GPR476, HW_H_SYS_GPR477, HW_H_SYS_GPR478, HW_H_SYS_GPR479
- , HW_H_SYS_GPR480, HW_H_SYS_GPR481, HW_H_SYS_GPR482, HW_H_SYS_GPR483
- , HW_H_SYS_GPR484, HW_H_SYS_GPR485, HW_H_SYS_GPR486, HW_H_SYS_GPR487
- , HW_H_SYS_GPR488, HW_H_SYS_GPR489, HW_H_SYS_GPR490, HW_H_SYS_GPR491
- , HW_H_SYS_GPR492, HW_H_SYS_GPR493, HW_H_SYS_GPR494, HW_H_SYS_GPR495
- , HW_H_SYS_GPR496, HW_H_SYS_GPR497, HW_H_SYS_GPR498, HW_H_SYS_GPR499
- , HW_H_SYS_GPR500, HW_H_SYS_GPR501, HW_H_SYS_GPR502, HW_H_SYS_GPR503
- , HW_H_SYS_GPR504, HW_H_SYS_GPR505, HW_H_SYS_GPR506, HW_H_SYS_GPR507
- , HW_H_SYS_GPR508, HW_H_SYS_GPR509, HW_H_SYS_GPR510, HW_H_SYS_GPR511
- , HW_H_MAC_MACLO, HW_H_MAC_MACHI, HW_H_TICK_TTMR, HW_H_SYS_VR_REV
- , HW_H_SYS_VR_CFG, HW_H_SYS_VR_VER, HW_H_SYS_UPR_UP, HW_H_SYS_UPR_DCP
- , HW_H_SYS_UPR_ICP, HW_H_SYS_UPR_DMP, HW_H_SYS_UPR_MP, HW_H_SYS_UPR_IMP
- , HW_H_SYS_UPR_DUP, HW_H_SYS_UPR_PCUP, HW_H_SYS_UPR_PICP, HW_H_SYS_UPR_PMP
- , HW_H_SYS_UPR_TTP, HW_H_SYS_UPR_CUP, HW_H_SYS_CPUCFGR_NSGR, HW_H_SYS_CPUCFGR_CGF
- , HW_H_SYS_CPUCFGR_OB32S, HW_H_SYS_CPUCFGR_OB64S, HW_H_SYS_CPUCFGR_OF32S, HW_H_SYS_CPUCFGR_OF64S
- , HW_H_SYS_CPUCFGR_OV64S, HW_H_SYS_CPUCFGR_ND, HW_H_SYS_SR_SM, HW_H_SYS_SR_TEE
- , HW_H_SYS_SR_IEE, HW_H_SYS_SR_DCE, HW_H_SYS_SR_ICE, HW_H_SYS_SR_DME
- , HW_H_SYS_SR_IME, HW_H_SYS_SR_LEE, HW_H_SYS_SR_CE, HW_H_SYS_SR_F
- , HW_H_SYS_SR_CY, HW_H_SYS_SR_OV, HW_H_SYS_SR_OVE, HW_H_SYS_SR_DSX
- , HW_H_SYS_SR_EPH, HW_H_SYS_SR_FO, HW_H_SYS_SR_SUMRA, HW_H_SYS_SR_CID
- , HW_H_SYS_FPCSR_FPEE, HW_H_SYS_FPCSR_RM, HW_H_SYS_FPCSR_OVF, HW_H_SYS_FPCSR_UNF
- , HW_H_SYS_FPCSR_SNF, HW_H_SYS_FPCSR_QNF, HW_H_SYS_FPCSR_ZF, HW_H_SYS_FPCSR_IXF
- , HW_H_SYS_FPCSR_IVF, HW_H_SYS_FPCSR_INF, HW_H_SYS_FPCSR_DZF, HW_H_SIMM16
- , HW_H_UIMM16, HW_H_UIMM6, HW_H_ATOMIC_RESERVE, HW_H_ATOMIC_ADDRESS
- , HW_H_ROFF1, HW_MAX
+ , HW_H_SYS_COREID, HW_H_SYS_NUMCORES, HW_H_SYS_GPR0, HW_H_SYS_GPR1
+ , HW_H_SYS_GPR2, HW_H_SYS_GPR3, HW_H_SYS_GPR4, HW_H_SYS_GPR5
+ , HW_H_SYS_GPR6, HW_H_SYS_GPR7, HW_H_SYS_GPR8, HW_H_SYS_GPR9
+ , HW_H_SYS_GPR10, HW_H_SYS_GPR11, HW_H_SYS_GPR12, HW_H_SYS_GPR13
+ , HW_H_SYS_GPR14, HW_H_SYS_GPR15, HW_H_SYS_GPR16, HW_H_SYS_GPR17
+ , HW_H_SYS_GPR18, HW_H_SYS_GPR19, HW_H_SYS_GPR20, HW_H_SYS_GPR21
+ , HW_H_SYS_GPR22, HW_H_SYS_GPR23, HW_H_SYS_GPR24, HW_H_SYS_GPR25
+ , HW_H_SYS_GPR26, HW_H_SYS_GPR27, HW_H_SYS_GPR28, HW_H_SYS_GPR29
+ , HW_H_SYS_GPR30, HW_H_SYS_GPR31, HW_H_SYS_GPR32, HW_H_SYS_GPR33
+ , HW_H_SYS_GPR34, HW_H_SYS_GPR35, HW_H_SYS_GPR36, HW_H_SYS_GPR37
+ , HW_H_SYS_GPR38, HW_H_SYS_GPR39, HW_H_SYS_GPR40, HW_H_SYS_GPR41
+ , HW_H_SYS_GPR42, HW_H_SYS_GPR43, HW_H_SYS_GPR44, HW_H_SYS_GPR45
+ , HW_H_SYS_GPR46, HW_H_SYS_GPR47, HW_H_SYS_GPR48, HW_H_SYS_GPR49
+ , HW_H_SYS_GPR50, HW_H_SYS_GPR51, HW_H_SYS_GPR52, HW_H_SYS_GPR53
+ , HW_H_SYS_GPR54, HW_H_SYS_GPR55, HW_H_SYS_GPR56, HW_H_SYS_GPR57
+ , HW_H_SYS_GPR58, HW_H_SYS_GPR59, HW_H_SYS_GPR60, HW_H_SYS_GPR61
+ , HW_H_SYS_GPR62, HW_H_SYS_GPR63, HW_H_SYS_GPR64, HW_H_SYS_GPR65
+ , HW_H_SYS_GPR66, HW_H_SYS_GPR67, HW_H_SYS_GPR68, HW_H_SYS_GPR69
+ , HW_H_SYS_GPR70, HW_H_SYS_GPR71, HW_H_SYS_GPR72, HW_H_SYS_GPR73
+ , HW_H_SYS_GPR74, HW_H_SYS_GPR75, HW_H_SYS_GPR76, HW_H_SYS_GPR77
+ , HW_H_SYS_GPR78, HW_H_SYS_GPR79, HW_H_SYS_GPR80, HW_H_SYS_GPR81
+ , HW_H_SYS_GPR82, HW_H_SYS_GPR83, HW_H_SYS_GPR84, HW_H_SYS_GPR85
+ , HW_H_SYS_GPR86, HW_H_SYS_GPR87, HW_H_SYS_GPR88, HW_H_SYS_GPR89
+ , HW_H_SYS_GPR90, HW_H_SYS_GPR91, HW_H_SYS_GPR92, HW_H_SYS_GPR93
+ , HW_H_SYS_GPR94, HW_H_SYS_GPR95, HW_H_SYS_GPR96, HW_H_SYS_GPR97
+ , HW_H_SYS_GPR98, HW_H_SYS_GPR99, HW_H_SYS_GPR100, HW_H_SYS_GPR101
+ , HW_H_SYS_GPR102, HW_H_SYS_GPR103, HW_H_SYS_GPR104, HW_H_SYS_GPR105
+ , HW_H_SYS_GPR106, HW_H_SYS_GPR107, HW_H_SYS_GPR108, HW_H_SYS_GPR109
+ , HW_H_SYS_GPR110, HW_H_SYS_GPR111, HW_H_SYS_GPR112, HW_H_SYS_GPR113
+ , HW_H_SYS_GPR114, HW_H_SYS_GPR115, HW_H_SYS_GPR116, HW_H_SYS_GPR117
+ , HW_H_SYS_GPR118, HW_H_SYS_GPR119, HW_H_SYS_GPR120, HW_H_SYS_GPR121
+ , HW_H_SYS_GPR122, HW_H_SYS_GPR123, HW_H_SYS_GPR124, HW_H_SYS_GPR125
+ , HW_H_SYS_GPR126, HW_H_SYS_GPR127, HW_H_SYS_GPR128, HW_H_SYS_GPR129
+ , HW_H_SYS_GPR130, HW_H_SYS_GPR131, HW_H_SYS_GPR132, HW_H_SYS_GPR133
+ , HW_H_SYS_GPR134, HW_H_SYS_GPR135, HW_H_SYS_GPR136, HW_H_SYS_GPR137
+ , HW_H_SYS_GPR138, HW_H_SYS_GPR139, HW_H_SYS_GPR140, HW_H_SYS_GPR141
+ , HW_H_SYS_GPR142, HW_H_SYS_GPR143, HW_H_SYS_GPR144, HW_H_SYS_GPR145
+ , HW_H_SYS_GPR146, HW_H_SYS_GPR147, HW_H_SYS_GPR148, HW_H_SYS_GPR149
+ , HW_H_SYS_GPR150, HW_H_SYS_GPR151, HW_H_SYS_GPR152, HW_H_SYS_GPR153
+ , HW_H_SYS_GPR154, HW_H_SYS_GPR155, HW_H_SYS_GPR156, HW_H_SYS_GPR157
+ , HW_H_SYS_GPR158, HW_H_SYS_GPR159, HW_H_SYS_GPR160, HW_H_SYS_GPR161
+ , HW_H_SYS_GPR162, HW_H_SYS_GPR163, HW_H_SYS_GPR164, HW_H_SYS_GPR165
+ , HW_H_SYS_GPR166, HW_H_SYS_GPR167, HW_H_SYS_GPR168, HW_H_SYS_GPR169
+ , HW_H_SYS_GPR170, HW_H_SYS_GPR171, HW_H_SYS_GPR172, HW_H_SYS_GPR173
+ , HW_H_SYS_GPR174, HW_H_SYS_GPR175, HW_H_SYS_GPR176, HW_H_SYS_GPR177
+ , HW_H_SYS_GPR178, HW_H_SYS_GPR179, HW_H_SYS_GPR180, HW_H_SYS_GPR181
+ , HW_H_SYS_GPR182, HW_H_SYS_GPR183, HW_H_SYS_GPR184, HW_H_SYS_GPR185
+ , HW_H_SYS_GPR186, HW_H_SYS_GPR187, HW_H_SYS_GPR188, HW_H_SYS_GPR189
+ , HW_H_SYS_GPR190, HW_H_SYS_GPR191, HW_H_SYS_GPR192, HW_H_SYS_GPR193
+ , HW_H_SYS_GPR194, HW_H_SYS_GPR195, HW_H_SYS_GPR196, HW_H_SYS_GPR197
+ , HW_H_SYS_GPR198, HW_H_SYS_GPR199, HW_H_SYS_GPR200, HW_H_SYS_GPR201
+ , HW_H_SYS_GPR202, HW_H_SYS_GPR203, HW_H_SYS_GPR204, HW_H_SYS_GPR205
+ , HW_H_SYS_GPR206, HW_H_SYS_GPR207, HW_H_SYS_GPR208, HW_H_SYS_GPR209
+ , HW_H_SYS_GPR210, HW_H_SYS_GPR211, HW_H_SYS_GPR212, HW_H_SYS_GPR213
+ , HW_H_SYS_GPR214, HW_H_SYS_GPR215, HW_H_SYS_GPR216, HW_H_SYS_GPR217
+ , HW_H_SYS_GPR218, HW_H_SYS_GPR219, HW_H_SYS_GPR220, HW_H_SYS_GPR221
+ , HW_H_SYS_GPR222, HW_H_SYS_GPR223, HW_H_SYS_GPR224, HW_H_SYS_GPR225
+ , HW_H_SYS_GPR226, HW_H_SYS_GPR227, HW_H_SYS_GPR228, HW_H_SYS_GPR229
+ , HW_H_SYS_GPR230, HW_H_SYS_GPR231, HW_H_SYS_GPR232, HW_H_SYS_GPR233
+ , HW_H_SYS_GPR234, HW_H_SYS_GPR235, HW_H_SYS_GPR236, HW_H_SYS_GPR237
+ , HW_H_SYS_GPR238, HW_H_SYS_GPR239, HW_H_SYS_GPR240, HW_H_SYS_GPR241
+ , HW_H_SYS_GPR242, HW_H_SYS_GPR243, HW_H_SYS_GPR244, HW_H_SYS_GPR245
+ , HW_H_SYS_GPR246, HW_H_SYS_GPR247, HW_H_SYS_GPR248, HW_H_SYS_GPR249
+ , HW_H_SYS_GPR250, HW_H_SYS_GPR251, HW_H_SYS_GPR252, HW_H_SYS_GPR253
+ , HW_H_SYS_GPR254, HW_H_SYS_GPR255, HW_H_SYS_GPR256, HW_H_SYS_GPR257
+ , HW_H_SYS_GPR258, HW_H_SYS_GPR259, HW_H_SYS_GPR260, HW_H_SYS_GPR261
+ , HW_H_SYS_GPR262, HW_H_SYS_GPR263, HW_H_SYS_GPR264, HW_H_SYS_GPR265
+ , HW_H_SYS_GPR266, HW_H_SYS_GPR267, HW_H_SYS_GPR268, HW_H_SYS_GPR269
+ , HW_H_SYS_GPR270, HW_H_SYS_GPR271, HW_H_SYS_GPR272, HW_H_SYS_GPR273
+ , HW_H_SYS_GPR274, HW_H_SYS_GPR275, HW_H_SYS_GPR276, HW_H_SYS_GPR277
+ , HW_H_SYS_GPR278, HW_H_SYS_GPR279, HW_H_SYS_GPR280, HW_H_SYS_GPR281
+ , HW_H_SYS_GPR282, HW_H_SYS_GPR283, HW_H_SYS_GPR284, HW_H_SYS_GPR285
+ , HW_H_SYS_GPR286, HW_H_SYS_GPR287, HW_H_SYS_GPR288, HW_H_SYS_GPR289
+ , HW_H_SYS_GPR290, HW_H_SYS_GPR291, HW_H_SYS_GPR292, HW_H_SYS_GPR293
+ , HW_H_SYS_GPR294, HW_H_SYS_GPR295, HW_H_SYS_GPR296, HW_H_SYS_GPR297
+ , HW_H_SYS_GPR298, HW_H_SYS_GPR299, HW_H_SYS_GPR300, HW_H_SYS_GPR301
+ , HW_H_SYS_GPR302, HW_H_SYS_GPR303, HW_H_SYS_GPR304, HW_H_SYS_GPR305
+ , HW_H_SYS_GPR306, HW_H_SYS_GPR307, HW_H_SYS_GPR308, HW_H_SYS_GPR309
+ , HW_H_SYS_GPR310, HW_H_SYS_GPR311, HW_H_SYS_GPR312, HW_H_SYS_GPR313
+ , HW_H_SYS_GPR314, HW_H_SYS_GPR315, HW_H_SYS_GPR316, HW_H_SYS_GPR317
+ , HW_H_SYS_GPR318, HW_H_SYS_GPR319, HW_H_SYS_GPR320, HW_H_SYS_GPR321
+ , HW_H_SYS_GPR322, HW_H_SYS_GPR323, HW_H_SYS_GPR324, HW_H_SYS_GPR325
+ , HW_H_SYS_GPR326, HW_H_SYS_GPR327, HW_H_SYS_GPR328, HW_H_SYS_GPR329
+ , HW_H_SYS_GPR330, HW_H_SYS_GPR331, HW_H_SYS_GPR332, HW_H_SYS_GPR333
+ , HW_H_SYS_GPR334, HW_H_SYS_GPR335, HW_H_SYS_GPR336, HW_H_SYS_GPR337
+ , HW_H_SYS_GPR338, HW_H_SYS_GPR339, HW_H_SYS_GPR340, HW_H_SYS_GPR341
+ , HW_H_SYS_GPR342, HW_H_SYS_GPR343, HW_H_SYS_GPR344, HW_H_SYS_GPR345
+ , HW_H_SYS_GPR346, HW_H_SYS_GPR347, HW_H_SYS_GPR348, HW_H_SYS_GPR349
+ , HW_H_SYS_GPR350, HW_H_SYS_GPR351, HW_H_SYS_GPR352, HW_H_SYS_GPR353
+ , HW_H_SYS_GPR354, HW_H_SYS_GPR355, HW_H_SYS_GPR356, HW_H_SYS_GPR357
+ , HW_H_SYS_GPR358, HW_H_SYS_GPR359, HW_H_SYS_GPR360, HW_H_SYS_GPR361
+ , HW_H_SYS_GPR362, HW_H_SYS_GPR363, HW_H_SYS_GPR364, HW_H_SYS_GPR365
+ , HW_H_SYS_GPR366, HW_H_SYS_GPR367, HW_H_SYS_GPR368, HW_H_SYS_GPR369
+ , HW_H_SYS_GPR370, HW_H_SYS_GPR371, HW_H_SYS_GPR372, HW_H_SYS_GPR373
+ , HW_H_SYS_GPR374, HW_H_SYS_GPR375, HW_H_SYS_GPR376, HW_H_SYS_GPR377
+ , HW_H_SYS_GPR378, HW_H_SYS_GPR379, HW_H_SYS_GPR380, HW_H_SYS_GPR381
+ , HW_H_SYS_GPR382, HW_H_SYS_GPR383, HW_H_SYS_GPR384, HW_H_SYS_GPR385
+ , HW_H_SYS_GPR386, HW_H_SYS_GPR387, HW_H_SYS_GPR388, HW_H_SYS_GPR389
+ , HW_H_SYS_GPR390, HW_H_SYS_GPR391, HW_H_SYS_GPR392, HW_H_SYS_GPR393
+ , HW_H_SYS_GPR394, HW_H_SYS_GPR395, HW_H_SYS_GPR396, HW_H_SYS_GPR397
+ , HW_H_SYS_GPR398, HW_H_SYS_GPR399, HW_H_SYS_GPR400, HW_H_SYS_GPR401
+ , HW_H_SYS_GPR402, HW_H_SYS_GPR403, HW_H_SYS_GPR404, HW_H_SYS_GPR405
+ , HW_H_SYS_GPR406, HW_H_SYS_GPR407, HW_H_SYS_GPR408, HW_H_SYS_GPR409
+ , HW_H_SYS_GPR410, HW_H_SYS_GPR411, HW_H_SYS_GPR412, HW_H_SYS_GPR413
+ , HW_H_SYS_GPR414, HW_H_SYS_GPR415, HW_H_SYS_GPR416, HW_H_SYS_GPR417
+ , HW_H_SYS_GPR418, HW_H_SYS_GPR419, HW_H_SYS_GPR420, HW_H_SYS_GPR421
+ , HW_H_SYS_GPR422, HW_H_SYS_GPR423, HW_H_SYS_GPR424, HW_H_SYS_GPR425
+ , HW_H_SYS_GPR426, HW_H_SYS_GPR427, HW_H_SYS_GPR428, HW_H_SYS_GPR429
+ , HW_H_SYS_GPR430, HW_H_SYS_GPR431, HW_H_SYS_GPR432, HW_H_SYS_GPR433
+ , HW_H_SYS_GPR434, HW_H_SYS_GPR435, HW_H_SYS_GPR436, HW_H_SYS_GPR437
+ , HW_H_SYS_GPR438, HW_H_SYS_GPR439, HW_H_SYS_GPR440, HW_H_SYS_GPR441
+ , HW_H_SYS_GPR442, HW_H_SYS_GPR443, HW_H_SYS_GPR444, HW_H_SYS_GPR445
+ , HW_H_SYS_GPR446, HW_H_SYS_GPR447, HW_H_SYS_GPR448, HW_H_SYS_GPR449
+ , HW_H_SYS_GPR450, HW_H_SYS_GPR451, HW_H_SYS_GPR452, HW_H_SYS_GPR453
+ , HW_H_SYS_GPR454, HW_H_SYS_GPR455, HW_H_SYS_GPR456, HW_H_SYS_GPR457
+ , HW_H_SYS_GPR458, HW_H_SYS_GPR459, HW_H_SYS_GPR460, HW_H_SYS_GPR461
+ , HW_H_SYS_GPR462, HW_H_SYS_GPR463, HW_H_SYS_GPR464, HW_H_SYS_GPR465
+ , HW_H_SYS_GPR466, HW_H_SYS_GPR467, HW_H_SYS_GPR468, HW_H_SYS_GPR469
+ , HW_H_SYS_GPR470, HW_H_SYS_GPR471, HW_H_SYS_GPR472, HW_H_SYS_GPR473
+ , HW_H_SYS_GPR474, HW_H_SYS_GPR475, HW_H_SYS_GPR476, HW_H_SYS_GPR477
+ , HW_H_SYS_GPR478, HW_H_SYS_GPR479, HW_H_SYS_GPR480, HW_H_SYS_GPR481
+ , HW_H_SYS_GPR482, HW_H_SYS_GPR483, HW_H_SYS_GPR484, HW_H_SYS_GPR485
+ , HW_H_SYS_GPR486, HW_H_SYS_GPR487, HW_H_SYS_GPR488, HW_H_SYS_GPR489
+ , HW_H_SYS_GPR490, HW_H_SYS_GPR491, HW_H_SYS_GPR492, HW_H_SYS_GPR493
+ , HW_H_SYS_GPR494, HW_H_SYS_GPR495, HW_H_SYS_GPR496, HW_H_SYS_GPR497
+ , HW_H_SYS_GPR498, HW_H_SYS_GPR499, HW_H_SYS_GPR500, HW_H_SYS_GPR501
+ , HW_H_SYS_GPR502, HW_H_SYS_GPR503, HW_H_SYS_GPR504, HW_H_SYS_GPR505
+ , HW_H_SYS_GPR506, HW_H_SYS_GPR507, HW_H_SYS_GPR508, HW_H_SYS_GPR509
+ , HW_H_SYS_GPR510, HW_H_SYS_GPR511, HW_H_MAC_MACLO, HW_H_MAC_MACHI
+ , HW_H_TICK_TTMR, HW_H_SYS_VR_REV, HW_H_SYS_VR_CFG, HW_H_SYS_VR_VER
+ , HW_H_SYS_UPR_UP, HW_H_SYS_UPR_DCP, HW_H_SYS_UPR_ICP, HW_H_SYS_UPR_DMP
+ , HW_H_SYS_UPR_MP, HW_H_SYS_UPR_IMP, HW_H_SYS_UPR_DUP, HW_H_SYS_UPR_PCUP
+ , HW_H_SYS_UPR_PICP, HW_H_SYS_UPR_PMP, HW_H_SYS_UPR_TTP, HW_H_SYS_UPR_CUP
+ , HW_H_SYS_CPUCFGR_NSGR, HW_H_SYS_CPUCFGR_CGF, HW_H_SYS_CPUCFGR_OB32S, HW_H_SYS_CPUCFGR_OB64S
+ , HW_H_SYS_CPUCFGR_OF32S, HW_H_SYS_CPUCFGR_OF64S, HW_H_SYS_CPUCFGR_OV64S, HW_H_SYS_CPUCFGR_ND
+ , HW_H_SYS_SR_SM, HW_H_SYS_SR_TEE, HW_H_SYS_SR_IEE, HW_H_SYS_SR_DCE
+ , HW_H_SYS_SR_ICE, HW_H_SYS_SR_DME, HW_H_SYS_SR_IME, HW_H_SYS_SR_LEE
+ , HW_H_SYS_SR_CE, HW_H_SYS_SR_F, HW_H_SYS_SR_CY, HW_H_SYS_SR_OV
+ , HW_H_SYS_SR_OVE, HW_H_SYS_SR_DSX, HW_H_SYS_SR_EPH, HW_H_SYS_SR_FO
+ , HW_H_SYS_SR_SUMRA, HW_H_SYS_SR_CID, HW_H_SYS_FPCSR_FPEE, HW_H_SYS_FPCSR_RM
+ , HW_H_SYS_FPCSR_OVF, HW_H_SYS_FPCSR_UNF, HW_H_SYS_FPCSR_SNF, HW_H_SYS_FPCSR_QNF
+ , HW_H_SYS_FPCSR_ZF, HW_H_SYS_FPCSR_IXF, HW_H_SYS_FPCSR_IVF, HW_H_SYS_FPCSR_INF
+ , HW_H_SYS_FPCSR_DZF, HW_H_SIMM16, HW_H_UIMM16, HW_H_UIMM6
+ , HW_H_ATOMIC_RESERVE, HW_H_ATOMIC_ADDRESS, HW_H_ROFF1, HW_MAX
} CGEN_HW_TYPE;
#define MAX_HW ((int) HW_MAX)
diff --git a/opcodes/or1k-opc.h b/opcodes/or1k-opc.h
index d3d084b..6eec800 100644
--- a/opcodes/or1k-opc.h
+++ b/opcodes/or1k-opc.h
@@ -35,7 +35,7 @@ extern "C" {
#undef CGEN_DIS_HASH_SIZE
#define CGEN_DIS_HASH_SIZE 256
#undef CGEN_DIS_HASH
-#define CGEN_DIS_HASH(buffer, value) (((unsigned char *) (buffer))[0] >> 2)
+#define CGEN_DIS_HASH(buffer, value) ((value >> 26) & 0xff)
/* Check applicability of instructions against machines. */
#define CGEN_VALIDATE_INSN_SUPPORTED
diff --git a/opcodes/ppc-opc.c b/opcodes/ppc-opc.c
index ba93e56..712cd31 100644
--- a/opcodes/ppc-opc.c
+++ b/opcodes/ppc-opc.c
@@ -691,6 +691,52 @@ extract_imm32 (uint64_t insn,
return (insn & 0xffff) | ((insn >> 16) & 0xffff0000);
}
+/* The 32bit SI field in a 64-bit D form prefix instruction when the field is split
+ into separate SI0 and SI1 fields. */
+
+static uint64_t
+insert_si32 (uint64_t insn,
+ int64_t value,
+ ppc_cpu_t dialect ATTRIBUTE_UNUSED,
+ const char **errmsg ATTRIBUTE_UNUSED)
+{
+ return insn | ((value & 0xffff0000ULL) << 16) | (value & 0xffff);
+}
+
+static int64_t
+extract_si32 (uint64_t insn,
+ ppc_cpu_t dialect ATTRIBUTE_UNUSED,
+ int *invalid ATTRIBUTE_UNUSED)
+{
+ int64_t mask = 1ULL << 31;
+ int64_t value = ((insn >> 16) & 0xffff0000ULL) | (insn & 0xffff);
+ value = (value ^ mask) - mask;
+ return value;
+}
+
+/* The NSI32 field in an 8-byte D form prefix instruction. This is the same
+ as the SI32 field, only negated. The extraction function always marks it
+ as invalid, since we never want to recognize an instruction which uses
+ a field of this type. */
+static uint64_t
+insert_nsi32 (uint64_t insn,
+ int64_t value,
+ ppc_cpu_t dialect,
+ const char **errmsg)
+{
+ return insert_si32 (insn, -value, dialect, errmsg);
+}
+
+static int64_t
+extract_nsi32 (uint64_t insn,
+ ppc_cpu_t dialect,
+ int *invalid)
+{
+ int64_t value = extract_si32 (insn, dialect, invalid);
+ *invalid = 1;
+ return -value;
+}
+
/* The R field in an 8-byte prefix instruction when there are restrictions
between R's value and the RA value (ie, they cannot both be non zero). */
@@ -3073,8 +3119,18 @@ const struct powerpc_operand powerpc_operands[] =
{ UINT64_C(0x3ffffffff), PPC_OPSHIFT_INV, insert_nsi34, extract_nsi34,
PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
+ /* The 32bit SI field in an 8-byte D form prefix instruction. */
+#define SI32 NSI34 + 1
+ { UINT64_C(0xffffffff), PPC_OPSHIFT_INV, insert_si32, extract_si32, PPC_OPERAND_SIGNED },
+
+ /* The NSI field in an 8-byte D form prefix instruction with 32bit SI field. This is
+ the same as the SI32 field, only negated. */
+#define NSI32 SI32 + 1
+ { UINT64_C(0xffffffff), PPC_OPSHIFT_INV, insert_nsi32, extract_nsi32,
+ PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
+
/* The IMM32 field in a vector splat immediate prefix instruction. */
-#define IMM32 NSI34 + 1
+#define IMM32 NSI32 + 1
{ 0xffffffff, PPC_OPSHIFT_INV, insert_imm32, extract_imm32, 0},
/* The UIM field in a vector permute extended prefix instruction. */
@@ -4031,9 +4087,15 @@ const unsigned int num_powerpc_operands = ARRAY_SIZE (powerpc_operands);
/* An 8-byte D form prefix instruction. */
#define P_D_MASK (((-1ULL << 50) & ~PCREL_MASK) | OP_MASK)
+/* An 8-byte D form prefix instruction with 32bit SI field. */
+#define P_D_SI32_MASK (((-1ULL << 48) & ~PCREL_MASK) | OP_MASK)
+
/* The same as P_D_MASK, but with the RA and PCREL fields specified. */
#define P_DRAPCREL_MASK (P_D_MASK | PCREL_MASK | RA_MASK)
+/* The same as P_D_SI32_MASK, but with the RA and PCREL fields specified. */
+#define P_DRAPCREL_SI32_MASK (P_D_SI32_MASK | PCREL_MASK | RA_MASK)
+
/* Mask for prefix X form instructions. */
#define P_X_MASK (PREFIX_MASK | X_MASK)
#define P_XX1_MASK (PREFIX_MASK | XX1_MASK)
@@ -9863,6 +9925,9 @@ const struct powerpc_opcode prefix_opcodes[] = {
{"pla", PMLS|OP(14), P_D_MASK, POWER10, EXT, {RT, D34, PRA0, PCREL1}},
{"paddi", PMLS|OP(14), P_D_MASK, POWER10, 0, {RT, RA0, SI34, PCREL}},
{"psubi", PMLS|OP(14), P_D_MASK, POWER10, EXT, {RT, RA0, NSI34, PCREL}},
+{"plis", PMLS|OP(15), P_DRAPCREL_SI32_MASK, FUTURE, EXT, {RT, SI32}},
+{"paddis", PMLS|OP(15), P_D_SI32_MASK, FUTURE, 0, {RT, RA0, SI32, PCREL}},
+{"psubis", PMLS|OP(15), P_D_SI32_MASK, FUTURE, EXT, {RT, RA0, NSI32, PCREL}},
{"xxsplti32dx", P8RR|VSOP(32,0), P_VSI_MASK, POWER10, 0, {XTS, IX, IMM32}},
{"xxspltidp", P8RR|VSOP(32,2), P_VS_MASK, POWER10, 0, {XTS, IMM32}},
{"xxspltiw", P8RR|VSOP(32,3), P_VS_MASK, POWER10, 0, {XTS, IMM32}},
diff --git a/opcodes/riscv-dis.c b/opcodes/riscv-dis.c
index 367004d..9c3158a 100644
--- a/opcodes/riscv-dis.c
+++ b/opcodes/riscv-dis.c
@@ -37,25 +37,8 @@
disassemble_info::fprintf_func which is for unstyled output. */
#define fprintf_func please_use_fprintf_styled_func_instead
-/* Current XLEN for the disassembler. */
-static unsigned xlen = 0;
-
-/* Default ISA specification version (constant as of now). */
-static enum riscv_spec_class default_isa_spec = ISA_SPEC_CLASS_DRAFT - 1;
-
-/* Default privileged specification
- (as specified by the ELF attributes or the `priv-spec' option). */
-static enum riscv_spec_class default_priv_spec = PRIV_SPEC_CLASS_NONE;
-
-static riscv_subset_list_t riscv_subsets;
-static riscv_parse_subset_t riscv_rps_dis =
-{
- &riscv_subsets, /* subset_list. */
- opcodes_error_handler,/* error_handler. */
- &xlen, /* xlen. */
- &default_isa_spec, /* isa_spec. */
- false, /* check_unknown_prefixed_ext. */
-};
+/* The earliest privilege spec supported by disassembler. */
+#define PRIV_SPEC_EARLIEST PRIV_SPEC_CLASS_1P10
struct riscv_private_data
{
@@ -64,50 +47,61 @@ struct riscv_private_data
bfd_vma hi_addr[OP_MASK_RD + 1];
bool to_print_addr;
bool has_gp;
+ /* Current XLEN for the disassembler. */
+ unsigned xlen;
+ /* Default ISA specification version. */
+ enum riscv_spec_class default_isa_spec;
+ /* Default privileged specification. */
+ enum riscv_spec_class default_priv_spec;
+ /* Used for architecture parser. */
+ riscv_parse_subset_t riscv_rps_dis;
+ /* Default architecture string for the object file. It will be changed once
+ elf architecture attribute exits. This is used for mapping symbol $x. */
+ const char* default_arch;
+ /* Used for mapping symbols. */
+ int last_map_symbol;
+ bfd_vma last_stop_offset;
+ bfd_vma last_map_symbol_boundary;
+ enum riscv_seg_mstate last_map_state;
+ asection *last_map_section;
+ /* Register names as used by the disassembler. */
+ const char (*riscv_gpr_names)[NRC];
+ const char (*riscv_fpr_names)[NRC];
+ /* If set, disassemble as most general instruction. */
+ bool no_aliases;
+ /* If set, disassemble without checking architecture string, just like what
+ we did at the beginning. */
+ bool all_ext;
};
-/* Used for mapping symbols. */
-static int last_map_symbol = -1;
-static bfd_vma last_stop_offset = 0;
-static bfd_vma last_map_symbol_boundary = 0;
-static enum riscv_seg_mstate last_map_state = MAP_NONE;
-static asection *last_map_section = NULL;
-
-/* Register names as used by the disassembler. */
-static const char (*riscv_gpr_names)[NRC];
-static const char (*riscv_fpr_names)[NRC];
-
-/* If set, disassemble as most general instruction. */
-static bool no_aliases = false;
-
-/* If set, disassemble without checking architectire string, just like what
- we did at the beginning. */
-static bool all_ext = false;
-
/* Set default RISC-V disassembler options. */
static void
-set_default_riscv_dis_options (void)
+set_default_riscv_dis_options (struct disassemble_info *info)
{
- riscv_gpr_names = riscv_gpr_names_abi;
- riscv_fpr_names = riscv_fpr_names_abi;
- no_aliases = false;
+ struct riscv_private_data *pd = info->private_data;
+ pd->riscv_gpr_names = riscv_gpr_names_abi;
+ pd->riscv_fpr_names = riscv_fpr_names_abi;
+ pd->no_aliases = false;
+ pd->all_ext = false;
}
/* Parse RISC-V disassembler option (without arguments). */
static bool
-parse_riscv_dis_option_without_args (const char *option)
+parse_riscv_dis_option_without_args (const char *option,
+ struct disassemble_info *info)
{
+ struct riscv_private_data *pd = info->private_data;
if (strcmp (option, "no-aliases") == 0)
- no_aliases = true;
+ pd->no_aliases = true;
else if (strcmp (option, "numeric") == 0)
{
- riscv_gpr_names = riscv_gpr_names_numeric;
- riscv_fpr_names = riscv_fpr_names_numeric;
+ pd->riscv_gpr_names = riscv_gpr_names_numeric;
+ pd->riscv_fpr_names = riscv_fpr_names_numeric;
}
else if (strcmp (option, "max") == 0)
- all_ext = true;
+ pd->all_ext = true;
else
return false;
return true;
@@ -116,11 +110,11 @@ parse_riscv_dis_option_without_args (const char *option)
/* Parse RISC-V disassembler option (possibly with arguments). */
static void
-parse_riscv_dis_option (const char *option)
+parse_riscv_dis_option (const char *option, struct disassemble_info *info)
{
char *equal, *value;
- if (parse_riscv_dis_option_without_args (option))
+ if (parse_riscv_dis_option_without_args (option, info))
return;
equal = strchr (option, '=');
@@ -144,18 +138,19 @@ parse_riscv_dis_option (const char *option)
value = equal + 1;
if (strcmp (option, "priv-spec") == 0)
{
+ struct riscv_private_data *pd = info->private_data;
enum riscv_spec_class priv_spec = PRIV_SPEC_CLASS_NONE;
const char *name = NULL;
RISCV_GET_PRIV_SPEC_CLASS (value, priv_spec);
- if (priv_spec == PRIV_SPEC_CLASS_NONE)
+ if (priv_spec < PRIV_SPEC_EARLIEST)
opcodes_error_handler (_("unknown privileged spec set by %s=%s"),
option, value);
- else if (default_priv_spec == PRIV_SPEC_CLASS_NONE)
- default_priv_spec = priv_spec;
- else if (default_priv_spec != priv_spec)
+ else if (pd->default_priv_spec == PRIV_SPEC_CLASS_NONE)
+ pd->default_priv_spec = priv_spec;
+ else if (pd->default_priv_spec != priv_spec)
{
- RISCV_GET_PRIV_SPEC_NAME (name, default_priv_spec);
+ RISCV_GET_PRIV_SPEC_NAME (name, pd->default_priv_spec);
opcodes_error_handler (_("mis-matched privilege spec set by %s=%s, "
"the elf privilege attribute is %s"),
option, value, name);
@@ -171,17 +166,17 @@ parse_riscv_dis_option (const char *option)
/* Parse RISC-V disassembler options. */
static void
-parse_riscv_dis_options (const char *opts_in)
+parse_riscv_dis_options (const char *opts_in, struct disassemble_info *info)
{
char *opts = xstrdup (opts_in), *opt = opts, *opt_end = opts;
- set_default_riscv_dis_options ();
+ set_default_riscv_dis_options (info);
for ( ; opt_end != NULL; opt = opt_end + 1)
{
if ((opt_end = strchr (opt, ',')) != NULL)
*opt_end = 0;
- parse_riscv_dis_option (opt);
+ parse_riscv_dis_option (opt, info);
}
free (opts);
@@ -221,7 +216,7 @@ maybe_print_address (struct riscv_private_data *pd, int base_reg, int offset,
pd->print_addr = (bfd_vma)(int32_t) pd->print_addr;
/* Fit into a 32-bit value on RV32. */
- if (xlen == 32)
+ if (pd->xlen == 32)
pd->print_addr = (bfd_vma)(uint32_t)pd->print_addr;
}
@@ -230,60 +225,61 @@ maybe_print_address (struct riscv_private_data *pd, int base_reg, int offset,
static void
print_reg_list (disassemble_info *info, insn_t l)
{
- bool numeric = riscv_gpr_names == riscv_gpr_names_numeric;
+ struct riscv_private_data *pd = info->private_data;
+ bool numeric = pd->riscv_gpr_names == riscv_gpr_names_numeric;
unsigned reg_list = (int)EXTRACT_OPERAND (REG_LIST, l);
unsigned r_start = numeric ? X_S2 : X_S0;
info->fprintf_styled_func (info->stream, dis_style_register,
- "%s", riscv_gpr_names[X_RA]);
+ "%s", pd->riscv_gpr_names[X_RA]);
if (reg_list == 5)
{
info->fprintf_styled_func (info->stream, dis_style_text, ",");
info->fprintf_styled_func (info->stream, dis_style_register,
- "%s", riscv_gpr_names[X_S0]);
+ "%s", pd->riscv_gpr_names[X_S0]);
}
else if (reg_list == 6 || (numeric && reg_list > 6))
{
info->fprintf_styled_func (info->stream, dis_style_text, ",");
info->fprintf_styled_func (info->stream, dis_style_register,
- "%s", riscv_gpr_names[X_S0]);
+ "%s", pd->riscv_gpr_names[X_S0]);
info->fprintf_styled_func (info->stream, dis_style_text, "-");
info->fprintf_styled_func (info->stream, dis_style_register,
- "%s", riscv_gpr_names[X_S1]);
+ "%s", pd->riscv_gpr_names[X_S1]);
}
if (reg_list == 15)
{
info->fprintf_styled_func (info->stream, dis_style_text, ",");
info->fprintf_styled_func (info->stream, dis_style_register,
- "%s", riscv_gpr_names[r_start]);
+ "%s", pd->riscv_gpr_names[r_start]);
info->fprintf_styled_func (info->stream, dis_style_text, "-");
info->fprintf_styled_func (info->stream, dis_style_register,
- "%s", riscv_gpr_names[X_S11]);
+ "%s", pd->riscv_gpr_names[X_S11]);
}
else if (reg_list == 7 && numeric)
{
info->fprintf_styled_func (info->stream, dis_style_text, ",");
info->fprintf_styled_func (info->stream, dis_style_register,
- "%s", riscv_gpr_names[X_S2]);
+ "%s", pd->riscv_gpr_names[X_S2]);
}
else if (reg_list > 6)
{
info->fprintf_styled_func (info->stream, dis_style_text, ",");
info->fprintf_styled_func (info->stream, dis_style_register,
- "%s", riscv_gpr_names[r_start]);
+ "%s", pd->riscv_gpr_names[r_start]);
info->fprintf_styled_func (info->stream, dis_style_text, "-");
info->fprintf_styled_func (info->stream, dis_style_register,
- "%s", riscv_gpr_names[reg_list + 11]);
+ "%s", pd->riscv_gpr_names[reg_list + 11]);
}
}
/* Get Zcmp sp adjustment immediate. */
static int
-riscv_get_spimm (insn_t l)
+riscv_get_spimm (insn_t l, int xlen)
{
- int spimm = riscv_get_sp_base(l, *riscv_rps_dis.xlen);
+ int spimm = riscv_get_sp_base(l, xlen);
spimm += EXTRACT_ZCMP_SPIMM (l);
if (((l ^ MATCH_CM_PUSH) & MASK_CM_PUSH) == 0)
spimm *= -1;
@@ -326,24 +322,24 @@ print_insn_args (const char *oparg, insn_t l, bfd_vma pc, disassemble_info *info
case 's': /* RS1 x8-x15. */
case 'w': /* RS1 x8-x15. */
print (info->stream, dis_style_register, "%s",
- riscv_gpr_names[EXTRACT_OPERAND (CRS1S, l) + 8]);
+ pd->riscv_gpr_names[EXTRACT_OPERAND (CRS1S, l) + 8]);
break;
case 't': /* RS2 x8-x15. */
case 'x': /* RS2 x8-x15. */
print (info->stream, dis_style_register, "%s",
- riscv_gpr_names[EXTRACT_OPERAND (CRS2S, l) + 8]);
+ pd->riscv_gpr_names[EXTRACT_OPERAND (CRS2S, l) + 8]);
break;
case 'U': /* RS1, constrained to equal RD. */
print (info->stream, dis_style_register,
- "%s", riscv_gpr_names[rd]);
+ "%s", pd->riscv_gpr_names[rd]);
break;
case 'c': /* RS1, constrained to equal sp. */
print (info->stream, dis_style_register, "%s",
- riscv_gpr_names[X_SP]);
+ pd->riscv_gpr_names[X_SP]);
break;
case 'V': /* RS2 */
print (info->stream, dis_style_register, "%s",
- riscv_gpr_names[EXTRACT_OPERAND (CRS2, l)]);
+ pd->riscv_gpr_names[EXTRACT_OPERAND (CRS2, l)]);
break;
case 'o':
case 'j':
@@ -409,11 +405,11 @@ print_insn_args (const char *oparg, insn_t l, bfd_vma pc, disassemble_info *info
break;
case 'T': /* Floating-point RS2. */
print (info->stream, dis_style_register, "%s",
- riscv_fpr_names[EXTRACT_OPERAND (CRS2, l)]);
+ pd->riscv_fpr_names[EXTRACT_OPERAND (CRS2, l)]);
break;
case 'D': /* Floating-point RS2 x8-x15. */
print (info->stream, dis_style_register, "%s",
- riscv_fpr_names[EXTRACT_OPERAND (CRS2S, l) + 8]);
+ pd->riscv_fpr_names[EXTRACT_OPERAND (CRS2S, l) + 8]);
break;
}
break;
@@ -429,7 +425,7 @@ print_insn_args (const char *oparg, insn_t l, bfd_vma pc, disassemble_info *info
case 'e':
if (!EXTRACT_OPERAND (VWD, l))
print (info->stream, dis_style_register, "%s",
- riscv_gpr_names[0]);
+ pd->riscv_gpr_names[0]);
else
print (info->stream, dis_style_register, "%s",
riscv_vecr_names_numeric[EXTRACT_OPERAND (VD, l)]);
@@ -517,15 +513,21 @@ print_insn_args (const char *oparg, insn_t l, bfd_vma pc, disassemble_info *info
print (info->stream, dis_style_immediate, "0");
break;
+ case 'r':
+ print (info->stream, dis_style_register, "%s",
+ pd->riscv_gpr_names[EXTRACT_OPERAND (RS3, l)]);
+ break;
+
case 's':
if ((l & MASK_JALR) == MATCH_JALR)
maybe_print_address (pd, rs1, EXTRACT_ITYPE_IMM (l), 0);
- print (info->stream, dis_style_register, "%s", riscv_gpr_names[rs1]);
+ print (info->stream, dis_style_register, "%s",
+ pd->riscv_gpr_names[rs1]);
break;
case 't':
print (info->stream, dis_style_register, "%s",
- riscv_gpr_names[EXTRACT_OPERAND (RS2, l)]);
+ pd->riscv_gpr_names[EXTRACT_OPERAND (RS2, l)]);
break;
case 'u':
@@ -585,7 +587,8 @@ print_insn_args (const char *oparg, insn_t l, bfd_vma pc, disassemble_info *info
pd->hi_addr[rd] = EXTRACT_UTYPE_IMM (l);
else if ((l & MASK_C_LUI) == MATCH_C_LUI)
pd->hi_addr[rd] = EXTRACT_CITYPE_LUI_IMM (l);
- print (info->stream, dis_style_register, "%s", riscv_gpr_names[rd]);
+ print (info->stream, dis_style_register, "%s",
+ pd->riscv_gpr_names[rd]);
break;
case 'y':
@@ -594,7 +597,8 @@ print_insn_args (const char *oparg, insn_t l, bfd_vma pc, disassemble_info *info
break;
case 'z':
- print (info->stream, dis_style_register, "%s", riscv_gpr_names[0]);
+ print (info->stream, dis_style_register, "%s",
+ pd->riscv_gpr_names[0]);
break;
case '>':
@@ -609,21 +613,23 @@ print_insn_args (const char *oparg, insn_t l, bfd_vma pc, disassemble_info *info
case 'S':
case 'U':
- print (info->stream, dis_style_register, "%s", riscv_fpr_names[rs1]);
+ print (info->stream, dis_style_register, "%s",
+ pd->riscv_fpr_names[rs1]);
break;
case 'T':
print (info->stream, dis_style_register, "%s",
- riscv_fpr_names[EXTRACT_OPERAND (RS2, l)]);
+ pd->riscv_fpr_names[EXTRACT_OPERAND (RS2, l)]);
break;
case 'D':
- print (info->stream, dis_style_register, "%s", riscv_fpr_names[rd]);
+ print (info->stream, dis_style_register, "%s",
+ pd->riscv_fpr_names[rd]);
break;
case 'R':
print (info->stream, dis_style_register, "%s",
- riscv_fpr_names[EXTRACT_OPERAND (RS3, l)]);
+ pd->riscv_fpr_names[EXTRACT_OPERAND (RS3, l)]);
break;
case 'E':
@@ -639,15 +645,15 @@ print_insn_args (const char *oparg, insn_t l, bfd_vma pc, disassemble_info *info
riscv_csr_hash[i] = NULL;
/* Set to the newest privileged version. */
- if (default_priv_spec == PRIV_SPEC_CLASS_NONE)
- default_priv_spec = PRIV_SPEC_CLASS_DRAFT - 1;
+ if (pd->default_priv_spec == PRIV_SPEC_CLASS_NONE)
+ pd->default_priv_spec = PRIV_SPEC_CLASS_DRAFT - 1;
#define DECLARE_CSR(name, num, class, define_version, abort_version) \
if (riscv_csr_hash[num] == NULL \
&& ((define_version == PRIV_SPEC_CLASS_NONE \
&& abort_version == PRIV_SPEC_CLASS_NONE) \
- || (default_priv_spec >= define_version \
- && default_priv_spec < abort_version))) \
+ || (pd->default_priv_spec >= define_version \
+ && pd->default_priv_spec < abort_version))) \
riscv_csr_hash[num] = #name;
#define DECLARE_CSR_ALIAS(name, num, class, define_version, abort_version) \
DECLARE_CSR (name, num, class, define_version, abort_version)
@@ -656,7 +662,7 @@ print_insn_args (const char *oparg, insn_t l, bfd_vma pc, disassemble_info *info
}
if (riscv_csr_hash[csr] != NULL)
- if (riscv_subset_supports (&riscv_rps_dis, "xtheadvector")
+ if (riscv_subset_supports (&pd->riscv_rps_dis, "xtheadvector")
&& (csr == CSR_VSTART
|| csr == CSR_VXSAT
|| csr == CSR_VXRM
@@ -716,11 +722,11 @@ print_insn_args (const char *oparg, insn_t l, bfd_vma pc, disassemble_info *info
{
case '1':
print (info->stream, dis_style_register, "%s",
- riscv_gpr_names[riscv_zcmp_get_sregno (EXTRACT_OPERAND (SREG1, l))]);
+ pd->riscv_gpr_names[riscv_zcmp_get_sregno (EXTRACT_OPERAND (SREG1, l))]);
break;
case '2':
print (info->stream, dis_style_register, "%s",
- riscv_gpr_names[riscv_zcmp_get_sregno (EXTRACT_OPERAND (SREG2, l))]);
+ pd->riscv_gpr_names[riscv_zcmp_get_sregno (EXTRACT_OPERAND (SREG2, l))]);
break;
case 'b':
print (info->stream, dis_style_immediate, "%d",
@@ -735,7 +741,7 @@ print_insn_args (const char *oparg, insn_t l, bfd_vma pc, disassemble_info *info
break;
case 'p':
print (info->stream, dis_style_immediate, "%d",
- riscv_get_spimm (l));
+ riscv_get_spimm (l, pd->xlen));
break;
case 'i':
case 'I':
@@ -880,6 +886,37 @@ print_insn_args (const char *oparg, insn_t l, bfd_vma pc, disassemble_info *info
break;
}
break;
+ case 'm': /* Vendor-specific (MIPS) operands. */
+ switch (*++oparg)
+ {
+ case '@':
+ print (info->stream, dis_style_register, "0x%x",
+ (unsigned) EXTRACT_OPERAND (MIPS_HINT, l));
+ break;
+ case '#':
+ print (info->stream, dis_style_register, "0x%x",
+ (unsigned) EXTRACT_OPERAND (MIPS_IMM9, l));
+ break;
+ case '$':
+ print (info->stream, dis_style_immediate, "%d",
+ (unsigned)EXTRACT_MIPS_LDP_IMM (l));
+ break;
+ case '%':
+ print (info->stream, dis_style_immediate, "%d",
+ (unsigned)EXTRACT_MIPS_LWP_IMM (l));
+ break;
+ case '^':
+ print (info->stream, dis_style_immediate, "%d",
+ (unsigned)EXTRACT_MIPS_SDP_IMM (l));
+ break;
+ case '&':
+ print (info->stream, dis_style_immediate, "%d",
+ (unsigned)EXTRACT_MIPS_SWP_IMM (l));
+ break;
+ default:
+ goto undefined_modifier;
+ }
+ break;
default:
goto undefined_modifier;
}
@@ -947,21 +984,21 @@ riscv_disassemble_insn (bfd_vma memaddr,
{
/* If XLEN is not known, get its value from the ELF class. */
if (info->mach == bfd_mach_riscv64)
- xlen = 64;
+ pd->xlen = 64;
else if (info->mach == bfd_mach_riscv32)
- xlen = 32;
+ pd->xlen = 32;
else if (info->section != NULL)
{
Elf_Internal_Ehdr *ehdr = elf_elfheader (info->section->owner);
- xlen = ehdr->e_ident[EI_CLASS] == ELFCLASS64 ? 64 : 32;
+ pd->xlen = ehdr->e_ident[EI_CLASS] == ELFCLASS64 ? 64 : 32;
}
/* If arch has the Zfinx extension, replace FPR with GPR. */
- if (riscv_subset_supports (&riscv_rps_dis, "zfinx"))
- riscv_fpr_names = riscv_gpr_names;
+ if (riscv_subset_supports (&pd->riscv_rps_dis, "zfinx"))
+ pd->riscv_fpr_names = pd->riscv_gpr_names;
else
- riscv_fpr_names = riscv_gpr_names == riscv_gpr_names_abi ?
- riscv_fpr_names_abi : riscv_fpr_names_numeric;
+ pd->riscv_fpr_names = pd->riscv_gpr_names == riscv_gpr_names_abi ?
+ riscv_fpr_names_abi : riscv_fpr_names_numeric;
for (; op->name; op++)
{
@@ -972,14 +1009,16 @@ riscv_disassemble_insn (bfd_vma memaddr,
if (! (op->match_func) (op, word))
continue;
/* Is this a pseudo-instruction and may we print it as such? */
- if (no_aliases && (op->pinfo & INSN_ALIAS))
+ if (pd->no_aliases && (op->pinfo & INSN_ALIAS))
continue;
/* Is this instruction restricted to a certain value of XLEN? */
- if ((op->xlen_requirement != 0) && (op->xlen_requirement != xlen))
+ if ((op->xlen_requirement != 0)
+ && (op->xlen_requirement != pd->xlen))
continue;
/* Is this instruction supported by the current architecture? */
- if (!all_ext
- && !riscv_multi_subset_supports (&riscv_rps_dis, op->insn_class))
+ if (!pd->all_ext
+ && !riscv_multi_subset_supports (&pd->riscv_rps_dis,
+ op->insn_class))
continue;
/* It's a match. */
@@ -1052,6 +1091,23 @@ riscv_disassemble_insn (bfd_vma memaddr,
return insnlen;
}
+/* Decide if we need to parse the architecture string again, also record the
+ string into the current subset list. */
+
+static void
+riscv_dis_parse_subset (struct disassemble_info *info, const char *arch_new)
+{
+ struct riscv_private_data *pd = info->private_data;
+ const char *arch_subset_list = pd->riscv_rps_dis.subset_list->arch_str;
+ if (arch_subset_list == NULL || strcmp (arch_subset_list, arch_new) != 0)
+ {
+ riscv_release_subset_list (pd->riscv_rps_dis.subset_list);
+ riscv_parse_subset (&pd->riscv_rps_dis, arch_new);
+ riscv_arch_str (pd->xlen, pd->riscv_rps_dis.subset_list,
+ true/* update */);
+ }
+}
+
/* If we find the suitable mapping symbol update the STATE.
Otherwise, do nothing. */
@@ -1060,6 +1116,7 @@ riscv_update_map_state (int n,
enum riscv_seg_mstate *state,
struct disassemble_info *info)
{
+ struct riscv_private_data *pd = info->private_data;
const char *name;
/* If the symbol is in a different section, ignore it. */
@@ -1068,14 +1125,16 @@ riscv_update_map_state (int n,
return;
name = bfd_asymbol_name(info->symtab[n]);
- if (strcmp (name, "$x") == 0)
- *state = MAP_INSN;
- else if (strcmp (name, "$d") == 0)
+ if (strcmp (name, "$d") == 0)
*state = MAP_DATA;
+ else if (strcmp (name, "$x") == 0)
+ {
+ *state = MAP_INSN;
+ riscv_dis_parse_subset (info, pd->default_arch);
+ }
else if (strncmp (name, "$xrv", 4) == 0)
{
*state = MAP_INSN;
- riscv_release_subset_list (&riscv_subsets);
/* ISA mapping string may be numbered, suffixed with '.n'. Do not
consider this as part of the ISA string. */
@@ -1086,11 +1145,11 @@ riscv_update_map_state (int n,
char *name_substr = xmalloc (suffix_index + 1);
strncpy (name_substr, name, suffix_index);
name_substr[suffix_index] = '\0';
- riscv_parse_subset (&riscv_rps_dis, name_substr + 2);
+ riscv_dis_parse_subset (info, name_substr + 2);
free (name_substr);
}
else
- riscv_parse_subset (&riscv_rps_dis, name + 2);
+ riscv_dis_parse_subset (info, name + 2);
}
}
@@ -1119,6 +1178,7 @@ static enum riscv_seg_mstate
riscv_search_mapping_symbol (bfd_vma memaddr,
struct disassemble_info *info)
{
+ struct riscv_private_data *pd = info->private_data;
enum riscv_seg_mstate mstate;
bool from_last_map_symbol;
bool found = false;
@@ -1127,11 +1187,11 @@ riscv_search_mapping_symbol (bfd_vma memaddr,
/* Return the last map state if the address is still within the range of the
last mapping symbol. */
- if (last_map_section == info->section
- && (memaddr < last_map_symbol_boundary))
- return last_map_state;
+ if (pd->last_map_section == info->section
+ && (memaddr < pd->last_map_symbol_boundary))
+ return pd->last_map_state;
- last_map_section = info->section;
+ pd->last_map_section = info->section;
/* Decide whether to print the data or instruction by default, in case
we can not find the corresponding mapping symbols. */
@@ -1147,17 +1207,17 @@ riscv_search_mapping_symbol (bfd_vma memaddr,
/* Reset the last_map_symbol if we start to dump a new section. */
if (memaddr <= 0)
- last_map_symbol = -1;
+ pd->last_map_symbol = -1;
/* If the last stop offset is different from the current one, then
don't use the last_map_symbol to search. We usually reset the
info->stop_offset when handling a new section. */
- from_last_map_symbol = (last_map_symbol >= 0
- && info->stop_offset == last_stop_offset);
+ from_last_map_symbol = (pd->last_map_symbol >= 0
+ && info->stop_offset == pd->last_stop_offset);
/* Start scanning from wherever we finished last time, or the start
of the function. */
- n = from_last_map_symbol ? last_map_symbol : info->symtab_pos + 1;
+ n = from_last_map_symbol ? pd->last_map_symbol : info->symtab_pos + 1;
/* Find the suitable mapping symbol to dump. */
for (; n < info->symtab_size; n++)
@@ -1182,7 +1242,7 @@ riscv_search_mapping_symbol (bfd_vma memaddr,
can pick up a text mapping symbol of a preceeding section. */
if (!found)
{
- n = from_last_map_symbol ? last_map_symbol : info->symtab_pos;
+ n = from_last_map_symbol ? pd->last_map_symbol : info->symtab_pos;
for (; n >= 0; n--)
{
@@ -1221,7 +1281,7 @@ riscv_search_mapping_symbol (bfd_vma memaddr,
/* The next mapping symbol has been found, and it represents the
boundary of this mapping symbol. */
found_next = true;
- last_map_symbol_boundary = addr;
+ pd->last_map_symbol_boundary = addr;
break;
}
}
@@ -1229,12 +1289,13 @@ riscv_search_mapping_symbol (bfd_vma memaddr,
/* No further mapping symbol has been found, indicating that the boundary
of the current mapping symbol is the end of this section. */
if (!found_next)
- last_map_symbol_boundary = info->section->vma + info->section->size;
+ pd->last_map_symbol_boundary = info->section->vma
+ + info->section->size;
}
/* Save the information for next use. */
- last_map_symbol = symbol;
- last_stop_offset = info->stop_offset;
+ pd->last_map_symbol = symbol;
+ pd->last_stop_offset = info->stop_offset;
return mstate;
}
@@ -1245,17 +1306,18 @@ static bfd_vma
riscv_data_length (bfd_vma memaddr,
disassemble_info *info)
{
+ struct riscv_private_data *pd = info->private_data;
bfd_vma length;
bool found = false;
length = 4;
if (info->symtab_size != 0
&& bfd_asymbol_flavour (*info->symtab) == bfd_target_elf_flavour
- && last_map_symbol >= 0)
+ && pd->last_map_symbol >= 0)
{
int n;
enum riscv_seg_mstate m = MAP_NONE;
- for (n = last_map_symbol + 1; n < info->symtab_size; n++)
+ for (n = pd->last_map_symbol + 1; n < info->symtab_size; n++)
{
bfd_vma addr = bfd_asymbol_value (info->symtab[n]);
if (addr > memaddr
@@ -1289,6 +1351,7 @@ riscv_disassemble_data (bfd_vma memaddr ATTRIBUTE_UNUSED,
disassemble_info *info)
{
info->display_endian = info->endian;
+ int i;
switch (info->bytes_per_chunk)
{
@@ -1308,14 +1371,6 @@ riscv_disassemble_data (bfd_vma memaddr ATTRIBUTE_UNUSED,
(*info->fprintf_styled_func)
(info->stream, dis_style_immediate, "0x%04x", (unsigned) data);
break;
- case 3:
- info->bytes_per_line = 7;
- (*info->fprintf_styled_func)
- (info->stream, dis_style_assembler_directive, ".word");
- (*info->fprintf_styled_func) (info->stream, dis_style_text, "\t");
- (*info->fprintf_styled_func)
- (info->stream, dis_style_immediate, "0x%06x", (unsigned) data);
- break;
case 4:
info->bytes_per_line = 8;
(*info->fprintf_styled_func)
@@ -1335,7 +1390,22 @@ riscv_disassemble_data (bfd_vma memaddr ATTRIBUTE_UNUSED,
(unsigned long long) data);
break;
default:
- abort ();
+ /* Arbitrary data so just print the bits in the shape of an .<N>byte
+ directive. */
+ info->bytes_per_line = info->bytes_per_chunk;
+ (*info->fprintf_styled_func)
+ (info->stream, dis_style_assembler_directive, ".%dbyte", info->bytes_per_chunk);
+ (*info->fprintf_styled_func) (info->stream, dis_style_text, "\t");
+ (*info->fprintf_styled_func) (info->stream, dis_style_immediate, "0x");
+ for (i = info->bytes_per_line; i > 0;)
+ {
+ i--;
+ data = bfd_get_bits (packet + i, 8, false);
+ (*info->fprintf_styled_func)
+ (info->stream, dis_style_immediate, "%02x",
+ (unsigned) data);
+ }
+ break;
}
return info->bytes_per_chunk;
}
@@ -1344,7 +1414,6 @@ static bool
riscv_init_disasm_info (struct disassemble_info *info)
{
int i;
-
struct riscv_private_data *pd =
xcalloc (1, sizeof (struct riscv_private_data));
pd->gp = 0;
@@ -1352,8 +1421,8 @@ riscv_init_disasm_info (struct disassemble_info *info)
for (i = 0; i < (int) ARRAY_SIZE (pd->hi_addr); i++)
pd->hi_addr[i] = -1;
pd->to_print_addr = false;
- pd->has_gp = false;
+ pd->has_gp = false;
for (i = 0; i < info->symtab_size; i++)
{
asymbol *sym = info->symtab[i];
@@ -1364,7 +1433,50 @@ riscv_init_disasm_info (struct disassemble_info *info)
}
}
+ pd->xlen = 0;
+ pd->default_isa_spec = ISA_SPEC_CLASS_DRAFT - 1;
+ pd->default_priv_spec = PRIV_SPEC_CLASS_NONE;
+
+ pd->riscv_rps_dis.subset_list = xcalloc (1, sizeof (riscv_parse_subset_t));
+ pd->riscv_rps_dis.error_handler = opcodes_error_handler;
+ pd->riscv_rps_dis.xlen = &pd->xlen;
+ pd->riscv_rps_dis.isa_spec = &pd->default_isa_spec;
+ pd->riscv_rps_dis.check_unknown_prefixed_ext = false;
+ pd->default_arch = "rv64gc";
+ if (info->section != NULL)
+ {
+ bfd *abfd = info->section->owner;
+ if (abfd && bfd_get_flavour (abfd) == bfd_target_elf_flavour)
+ {
+ const char *sec_name =
+ get_elf_backend_data (abfd)->obj_attrs_section;
+ if (bfd_get_section_by_name (abfd, sec_name) != NULL)
+ {
+ obj_attribute *attr = elf_known_obj_attributes_proc (abfd);
+ unsigned int Tag_a = Tag_RISCV_priv_spec;
+ unsigned int Tag_b = Tag_RISCV_priv_spec_minor;
+ unsigned int Tag_c = Tag_RISCV_priv_spec_revision;
+ riscv_get_priv_spec_class_from_numbers (attr[Tag_a].i,
+ attr[Tag_b].i,
+ attr[Tag_c].i,
+ &pd->default_priv_spec);
+ pd->default_arch = attr[Tag_RISCV_arch].s;
+ }
+ }
+ }
+
+ pd->last_map_symbol = -1;
+ pd->last_stop_offset = 0;
+ pd->last_map_symbol_boundary = 0;
+ pd->last_map_state = MAP_NONE;
+ pd->last_map_section = NULL;
+ pd->riscv_gpr_names = NULL;
+ pd->riscv_fpr_names = NULL;
+ pd->no_aliases = false;
+ pd->all_ext = false;
+
info->private_data = pd;
+ riscv_dis_parse_subset (info, pd->default_arch);
return true;
}
@@ -1398,21 +1510,21 @@ print_insn_riscv (bfd_vma memaddr, struct disassemble_info *info)
int (*riscv_disassembler) (bfd_vma, insn_t, const bfd_byte *,
struct disassemble_info *);
+ if (info->private_data == NULL && !riscv_init_disasm_info (info))
+ return -1;
+
if (info->disassembler_options != NULL)
{
- parse_riscv_dis_options (info->disassembler_options);
+ parse_riscv_dis_options (info->disassembler_options, info);
/* Avoid repeatedly parsing the options. */
info->disassembler_options = NULL;
}
- else if (riscv_gpr_names == NULL)
- set_default_riscv_dis_options ();
-
- if (info->private_data == NULL && !riscv_init_disasm_info (info))
- return -1;
+ else if (((struct riscv_private_data *) info->private_data)->riscv_gpr_names == NULL)
+ set_default_riscv_dis_options (info);
mstate = riscv_search_mapping_symbol (memaddr, info);
/* Save the last mapping state. */
- last_map_state = mstate;
+ ((struct riscv_private_data *) info->private_data)->last_map_state = mstate;
/* Set the size to dump. */
if (mstate == MAP_DATA
@@ -1466,33 +1578,6 @@ print_insn_riscv (bfd_vma memaddr, struct disassemble_info *info)
return (*riscv_disassembler) (memaddr, insn, packet, info);
}
-disassembler_ftype
-riscv_get_disassembler (bfd *abfd)
-{
- const char *default_arch = "rv64gc";
-
- if (abfd && bfd_get_flavour (abfd) == bfd_target_elf_flavour)
- {
- const char *sec_name = get_elf_backend_data (abfd)->obj_attrs_section;
- if (bfd_get_section_by_name (abfd, sec_name) != NULL)
- {
- obj_attribute *attr = elf_known_obj_attributes_proc (abfd);
- unsigned int Tag_a = Tag_RISCV_priv_spec;
- unsigned int Tag_b = Tag_RISCV_priv_spec_minor;
- unsigned int Tag_c = Tag_RISCV_priv_spec_revision;
- riscv_get_priv_spec_class_from_numbers (attr[Tag_a].i,
- attr[Tag_b].i,
- attr[Tag_c].i,
- &default_priv_spec);
- default_arch = attr[Tag_RISCV_arch].s;
- }
- }
-
- riscv_release_subset_list (&riscv_subsets);
- riscv_parse_subset (&riscv_rps_dis, default_arch);
- return print_insn_riscv;
-}
-
/* Prevent use of the fake labels that are generated as part of the DWARF
and for relaxable relocations in the assembler. */
@@ -1532,6 +1617,9 @@ static struct
riscv_option_arg_t arg;
} riscv_options[] =
{
+ { "max",
+ N_("Disassemble without checking architecture string."),
+ RISCV_OPTION_ARG_NONE },
{ "numeric",
N_("Print numeric register names, rather than ABI names."),
RISCV_OPTION_ARG_NONE },
@@ -1563,12 +1651,12 @@ disassembler_options_riscv (void)
args = XNEWVEC (disasm_option_arg_t, num_args + 1);
args[RISCV_OPTION_ARG_PRIV_SPEC].name = "SPEC";
- priv_spec_count = PRIV_SPEC_CLASS_DRAFT - PRIV_SPEC_CLASS_NONE - 1;
+ priv_spec_count = PRIV_SPEC_CLASS_DRAFT - PRIV_SPEC_EARLIEST;
args[RISCV_OPTION_ARG_PRIV_SPEC].values
= XNEWVEC (const char *, priv_spec_count + 1);
for (i = 0; i < priv_spec_count; i++)
args[RISCV_OPTION_ARG_PRIV_SPEC].values[i]
- = riscv_priv_specs[i].name;
+ = riscv_priv_specs[PRIV_SPEC_EARLIEST - PRIV_SPEC_CLASS_NONE - 1 + i].name;
/* The array we return must be NULL terminated. */
args[RISCV_OPTION_ARG_PRIV_SPEC].values[i] = NULL;
@@ -1665,5 +1753,10 @@ with the -M switch (multiple options should be separated by commas):\n"));
void disassemble_free_riscv (struct disassemble_info *info ATTRIBUTE_UNUSED)
{
- riscv_release_subset_list (&riscv_subsets);
+ struct riscv_private_data *pd = info->private_data;
+ if (pd)
+ {
+ riscv_release_subset_list (pd->riscv_rps_dis.subset_list);
+ free (pd->riscv_rps_dis.subset_list);
+ }
}
diff --git a/opcodes/riscv-opc.c b/opcodes/riscv-opc.c
index ceb94a5..f17d284 100644
--- a/opcodes/riscv-opc.c
+++ b/opcodes/riscv-opc.c
@@ -161,6 +161,7 @@ riscv_get_sp_base (insn_t opcode, unsigned int xlen)
#define MASK_RS2 (OP_MASK_RS2 << OP_SH_RS2)
#define MASK_RD (OP_MASK_RD << OP_SH_RD)
#define MASK_CRS2 (OP_MASK_CRS2 << OP_SH_CRS2)
+#define MASK_CRS2S (OP_MASK_CRS2S << OP_SH_CRS2S)
#define MASK_IMM ENCODE_ITYPE_IMM (-1U)
#define MASK_RVC_IMM ENCODE_CITYPE_IMM (-1U)
#define MASK_UIMM ENCODE_UTYPE_IMM (-1U)
@@ -206,6 +207,20 @@ match_rs2_rd_even (const struct riscv_opcode *op, insn_t insn)
}
static int
+match_rd_even (const struct riscv_opcode *op, insn_t insn)
+{
+ int rd = (insn & MASK_RD) >> OP_SH_RD;
+ return ((rd & 1) == 0) && match_opcode (op, insn);
+}
+
+static int
+match_rs2_even (const struct riscv_opcode *op, insn_t insn)
+{
+ int rs2 = (insn & MASK_RS2) >> OP_SH_RS2;
+ return ((rs2 & 1) == 0) && match_opcode (op, insn);
+}
+
+static int
match_rd_nonzero (const struct riscv_opcode *op, insn_t insn)
{
return (op->pinfo == INSN_MACRO || match_opcode (op, insn))
@@ -213,12 +228,38 @@ match_rd_nonzero (const struct riscv_opcode *op, insn_t insn)
}
static int
+match_rd_even_nonzero (const struct riscv_opcode *op, insn_t insn)
+{
+ return match_rd_nonzero (op, insn) && match_rd_even (op, insn);
+}
+
+static int
match_rs1_nonzero (const struct riscv_opcode *op ATTRIBUTE_UNUSED, insn_t insn)
{
return (insn & MASK_RS1) != 0;
}
static int
+match_rs1_nonzero_rs2_even (const struct riscv_opcode *op ATTRIBUTE_UNUSED, insn_t insn)
+{
+ return match_rs1_nonzero (op, insn) && match_rs2_even (op, insn);
+}
+
+static int
+match_crs2s_even (const struct riscv_opcode *op, insn_t insn)
+{
+ int crs2s = (insn & MASK_CRS2S) >> OP_SH_CRS2S;
+ return ((crs2s & 1) == 0) && match_opcode (op, insn);
+}
+
+static int
+match_crs2_even (const struct riscv_opcode *op, insn_t insn)
+{
+ int crs2 = (insn & MASK_CRS2) >> OP_SH_CRS2;
+ return ((crs2 & 1) == 0) && match_opcode (op, insn);
+}
+
+static int
match_c_add (const struct riscv_opcode *op, insn_t insn)
{
return match_rd_nonzero (op, insn) && ((insn & MASK_CRS2) != 0);
@@ -532,6 +573,10 @@ const struct riscv_opcode riscv_opcodes[] =
{"la.tls.gd", 0, INSN_CLASS_I, "d,A", 0, (int) M_LA_TLS_GD, NULL, INSN_MACRO },
{"la.tls.ie", 0, INSN_CLASS_I, "d,A", 0, (int) M_LA_TLS_IE, match_rd_nonzero, INSN_MACRO },
{"neg", 0, INSN_CLASS_I, "d,t", MATCH_SUB, MASK_SUB|MASK_RS1, match_opcode, INSN_ALIAS }, /* sub 0 */
+/* Put MIPS custom instructions: mips.ehb, mips.ihb, and mips.pause before slli. */
+{"mips.ehb", 0, INSN_CLASS_XMIPSEXECTL, "", MATCH_MIPS_EHB, MASK_MIPS_EHB, match_opcode, 0 },
+{"mips.ihb", 0, INSN_CLASS_XMIPSEXECTL, "", MATCH_MIPS_IHB, MASK_MIPS_IHB, match_opcode, 0 },
+{"mips.pause", 0, INSN_CLASS_XMIPSEXECTL, "", MATCH_MIPS_PAUSE, MASK_MIPS_PAUSE, match_opcode, 0 },
{"slli", 0, INSN_CLASS_C, "d,CU,C>", MATCH_C_SLLI, MASK_C_SLLI, match_slli_as_c_slli, INSN_ALIAS },
{"slli", 0, INSN_CLASS_I, "d,s,>", MATCH_SLLI, MASK_SLLI, match_opcode, 0 },
{"sll", 0, INSN_CLASS_C, "d,CU,C>", MATCH_C_SLLI, MASK_C_SLLI, match_slli_as_c_slli, INSN_ALIAS },
@@ -621,10 +666,18 @@ const struct riscv_opcode riscv_opcodes[] =
{"ld", 64, INSN_CLASS_C, "Ct,Cl(Cs)", MATCH_C_LD, MASK_C_LD, match_opcode, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
{"ld", 64, INSN_CLASS_I, "d,o(s)", MATCH_LD, MASK_LD, match_opcode, INSN_DREF|INSN_8_BYTE },
{"ld", 64, INSN_CLASS_I, "d,A", 0, (int) M_Lx, match_rd_nonzero, INSN_MACRO },
+{"ld", 32, INSN_CLASS_ZCLSD, "d,Cn(Cc)", MATCH_C_LDSP, MASK_C_LDSP, match_rd_even_nonzero, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
+{"ld", 32, INSN_CLASS_ZCLSD, "Ct,Cl(Cs)", MATCH_C_LD, MASK_C_LD, match_crs2s_even, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
+{"ld", 32, INSN_CLASS_ZILSD, "d,o(s)", MATCH_LD, MASK_LD, match_rd_even, INSN_DREF|INSN_8_BYTE },
+{"ld", 32, INSN_CLASS_ZILSD, "d,A", 0, (int) M_Lx, match_rd_even_nonzero, INSN_MACRO },
{"sd", 64, INSN_CLASS_C, "CV,CN(Cc)", MATCH_C_SDSP, MASK_C_SDSP, match_opcode, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
{"sd", 64, INSN_CLASS_C, "Ct,Cl(Cs)", MATCH_C_SD, MASK_C_SD, match_opcode, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
{"sd", 64, INSN_CLASS_I, "t,q(s)", MATCH_SD, MASK_SD, match_opcode, INSN_DREF|INSN_8_BYTE },
{"sd", 64, INSN_CLASS_I, "t,A,s", 0, (int) M_Sx_FSx, match_rs1_nonzero, INSN_MACRO },
+{"sd", 32, INSN_CLASS_ZCLSD, "CV,CN(Cc)", MATCH_C_SDSP, MASK_C_SDSP, match_crs2_even, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
+{"sd", 32, INSN_CLASS_ZCLSD, "Ct,Cl(Cs)", MATCH_C_SD, MASK_C_SD, match_crs2s_even, INSN_ALIAS|INSN_DREF|INSN_8_BYTE },
+{"sd", 32, INSN_CLASS_ZILSD, "t,q(s)", MATCH_SD, MASK_SD, match_rs2_even, INSN_DREF|INSN_8_BYTE },
+{"sd", 32, INSN_CLASS_ZILSD, "t,A,s", 0, (int) M_Sx_FSx, match_rs1_nonzero_rs2_even, INSN_MACRO },
{"sext.w", 64, INSN_CLASS_C, "d,CU", MATCH_C_ADDIW, MASK_C_ADDIW|MASK_RVC_IMM, match_rd_nonzero, INSN_ALIAS },
{"sext.w", 64, INSN_CLASS_I, "d,s", MATCH_ADDIW, MASK_ADDIW|MASK_IMM, match_opcode, INSN_ALIAS },
{"addiw", 64, INSN_CLASS_C, "d,CU,Co", MATCH_C_ADDIW, MASK_C_ADDIW, match_rd_nonzero, INSN_ALIAS },
@@ -907,8 +960,8 @@ const struct riscv_opcode riscv_opcodes[] =
{"feq.h", 0, INSN_CLASS_ZFH_INX, "d,S,T", MATCH_FEQ_H, MASK_FEQ_H, match_opcode, 0 },
{"flt.h", 0, INSN_CLASS_ZFH_INX, "d,S,T", MATCH_FLT_H, MASK_FLT_H, match_opcode, 0 },
{"fle.h", 0, INSN_CLASS_ZFH_INX, "d,S,T", MATCH_FLE_H, MASK_FLE_H, match_opcode, 0 },
-{"fgt.h", 0, INSN_CLASS_ZFH_INX, "d,T,S", MATCH_FLT_H, MASK_FLT_H, match_opcode, 0 },
-{"fge.h", 0, INSN_CLASS_ZFH_INX, "d,T,S", MATCH_FLE_H, MASK_FLE_H, match_opcode, 0 },
+{"fgt.h", 0, INSN_CLASS_ZFH_INX, "d,T,S", MATCH_FLT_H, MASK_FLT_H, match_opcode, INSN_ALIAS },
+{"fge.h", 0, INSN_CLASS_ZFH_INX, "d,T,S", MATCH_FLE_H, MASK_FLE_H, match_opcode, INSN_ALIAS },
{"fcvt.l.h", 64, INSN_CLASS_ZFH_INX, "d,S", MATCH_FCVT_L_H|MASK_RM, MASK_FCVT_L_H|MASK_RM, match_opcode, 0 },
{"fcvt.l.h", 64, INSN_CLASS_ZFH_INX, "d,S,m", MATCH_FCVT_L_H, MASK_FCVT_L_H, match_opcode, 0 },
{"fcvt.lu.h", 64, INSN_CLASS_ZFH_INX, "d,S", MATCH_FCVT_LU_H|MASK_RM, MASK_FCVT_LU_H|MASK_RM, match_opcode, 0 },
@@ -990,8 +1043,8 @@ const struct riscv_opcode riscv_opcodes[] =
{"feq.s", 0, INSN_CLASS_F_INX, "d,S,T", MATCH_FEQ_S, MASK_FEQ_S, match_opcode, 0 },
{"flt.s", 0, INSN_CLASS_F_INX, "d,S,T", MATCH_FLT_S, MASK_FLT_S, match_opcode, 0 },
{"fle.s", 0, INSN_CLASS_F_INX, "d,S,T", MATCH_FLE_S, MASK_FLE_S, match_opcode, 0 },
-{"fgt.s", 0, INSN_CLASS_F_INX, "d,T,S", MATCH_FLT_S, MASK_FLT_S, match_opcode, 0 },
-{"fge.s", 0, INSN_CLASS_F_INX, "d,T,S", MATCH_FLE_S, MASK_FLE_S, match_opcode, 0 },
+{"fgt.s", 0, INSN_CLASS_F_INX, "d,T,S", MATCH_FLT_S, MASK_FLT_S, match_opcode, INSN_ALIAS },
+{"fge.s", 0, INSN_CLASS_F_INX, "d,T,S", MATCH_FLE_S, MASK_FLE_S, match_opcode, INSN_ALIAS },
{"fcvt.l.s", 64, INSN_CLASS_F_INX, "d,S", MATCH_FCVT_L_S|MASK_RM, MASK_FCVT_L_S|MASK_RM, match_opcode, 0 },
{"fcvt.l.s", 64, INSN_CLASS_F_INX, "d,S,m", MATCH_FCVT_L_S, MASK_FCVT_L_S, match_opcode, 0 },
{"fcvt.lu.s", 64, INSN_CLASS_F_INX, "d,S", MATCH_FCVT_LU_S|MASK_RM, MASK_FCVT_LU_S|MASK_RM, match_opcode, 0 },
@@ -1049,8 +1102,8 @@ const struct riscv_opcode riscv_opcodes[] =
{"feq.d", 0, INSN_CLASS_D_INX, "d,S,T", MATCH_FEQ_D, MASK_FEQ_D, match_opcode, 0 },
{"flt.d", 0, INSN_CLASS_D_INX, "d,S,T", MATCH_FLT_D, MASK_FLT_D, match_opcode, 0 },
{"fle.d", 0, INSN_CLASS_D_INX, "d,S,T", MATCH_FLE_D, MASK_FLE_D, match_opcode, 0 },
-{"fgt.d", 0, INSN_CLASS_D_INX, "d,T,S", MATCH_FLT_D, MASK_FLT_D, match_opcode, 0 },
-{"fge.d", 0, INSN_CLASS_D_INX, "d,T,S", MATCH_FLE_D, MASK_FLE_D, match_opcode, 0 },
+{"fgt.d", 0, INSN_CLASS_D_INX, "d,T,S", MATCH_FLT_D, MASK_FLT_D, match_opcode, INSN_ALIAS },
+{"fge.d", 0, INSN_CLASS_D_INX, "d,T,S", MATCH_FLE_D, MASK_FLE_D, match_opcode, INSN_ALIAS },
{"fmv.x.d", 64, INSN_CLASS_D, "d,S", MATCH_FMV_X_D, MASK_FMV_X_D, match_opcode, 0 },
{"fmv.d.x", 64, INSN_CLASS_D, "D,s", MATCH_FMV_D_X, MASK_FMV_D_X, match_opcode, 0 },
{"fcvt.l.d", 64, INSN_CLASS_D_INX, "d,S", MATCH_FCVT_L_D|MASK_RM, MASK_FCVT_L_D|MASK_RM, match_opcode, 0 },
@@ -1109,8 +1162,8 @@ const struct riscv_opcode riscv_opcodes[] =
{"feq.q", 0, INSN_CLASS_Q_INX, "d,S,T", MATCH_FEQ_Q, MASK_FEQ_Q, match_opcode, 0 },
{"flt.q", 0, INSN_CLASS_Q_INX, "d,S,T", MATCH_FLT_Q, MASK_FLT_Q, match_opcode, 0 },
{"fle.q", 0, INSN_CLASS_Q_INX, "d,S,T", MATCH_FLE_Q, MASK_FLE_Q, match_opcode, 0 },
-{"fgt.q", 0, INSN_CLASS_Q_INX, "d,T,S", MATCH_FLT_Q, MASK_FLT_Q, match_opcode, 0 },
-{"fge.q", 0, INSN_CLASS_Q_INX, "d,T,S", MATCH_FLE_Q, MASK_FLE_Q, match_opcode, 0 },
+{"fgt.q", 0, INSN_CLASS_Q_INX, "d,T,S", MATCH_FLT_Q, MASK_FLT_Q, match_opcode, INSN_ALIAS },
+{"fge.q", 0, INSN_CLASS_Q_INX, "d,T,S", MATCH_FLE_Q, MASK_FLE_Q, match_opcode, INSN_ALIAS },
{"fcvt.l.q", 64, INSN_CLASS_Q_INX, "d,S", MATCH_FCVT_L_Q|MASK_RM, MASK_FCVT_L_Q|MASK_RM, match_opcode, 0 },
{"fcvt.l.q", 64, INSN_CLASS_Q_INX, "d,S,m", MATCH_FCVT_L_Q, MASK_FCVT_L_Q, match_opcode, 0 },
{"fcvt.lu.q", 64, INSN_CLASS_Q_INX, "d,S", MATCH_FCVT_LU_Q|MASK_RM, MASK_FCVT_LU_Q|MASK_RM, match_opcode, 0 },
@@ -1156,9 +1209,13 @@ const struct riscv_opcode riscv_opcodes[] =
{"c.addiw", 64, INSN_CLASS_C, "d,Co", MATCH_C_ADDIW, MASK_C_ADDIW, match_rd_nonzero, 0 },
{"c.addw", 64, INSN_CLASS_C, "Cs,Ct", MATCH_C_ADDW, MASK_C_ADDW, match_opcode, 0 },
{"c.subw", 64, INSN_CLASS_C, "Cs,Ct", MATCH_C_SUBW, MASK_C_SUBW, match_opcode, 0 },
+{"c.ldsp", 32, INSN_CLASS_ZCLSD, "d,Cn(Cc)", MATCH_C_LDSP, MASK_C_LDSP, match_rd_even_nonzero, INSN_DREF|INSN_8_BYTE },
{"c.ldsp", 64, INSN_CLASS_C, "d,Cn(Cc)", MATCH_C_LDSP, MASK_C_LDSP, match_rd_nonzero, INSN_DREF|INSN_8_BYTE },
+{"c.ld", 32, INSN_CLASS_ZCLSD, "Ct,Cl(Cs)", MATCH_C_LD, MASK_C_LD, match_crs2s_even, INSN_DREF|INSN_8_BYTE },
{"c.ld", 64, INSN_CLASS_C, "Ct,Cl(Cs)", MATCH_C_LD, MASK_C_LD, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"c.sdsp", 32, INSN_CLASS_ZCLSD, "CV,CN(Cc)", MATCH_C_SDSP, MASK_C_SDSP, match_crs2_even, INSN_DREF|INSN_8_BYTE },
{"c.sdsp", 64, INSN_CLASS_C, "CV,CN(Cc)", MATCH_C_SDSP, MASK_C_SDSP, match_opcode, INSN_DREF|INSN_8_BYTE },
+{"c.sd", 32, INSN_CLASS_ZCLSD, "Ct,Cl(Cs)", MATCH_C_SD, MASK_C_SD, match_crs2s_even, INSN_DREF|INSN_8_BYTE },
{"c.sd", 64, INSN_CLASS_C, "Ct,Cl(Cs)", MATCH_C_SD, MASK_C_SD, match_opcode, INSN_DREF|INSN_8_BYTE },
{"c.fldsp", 0, INSN_CLASS_D_AND_C, "D,Cn(Cc)", MATCH_C_FLDSP, MASK_C_FLDSP, match_opcode, INSN_DREF|INSN_8_BYTE },
{"c.fld", 0, INSN_CLASS_D_AND_C, "CD,Cl(Cs)", MATCH_C_FLD, MASK_C_FLD, match_opcode, INSN_DREF|INSN_8_BYTE },
@@ -1187,10 +1244,10 @@ const struct riscv_opcode riscv_opcodes[] =
{"c.sspush", 0, INSN_CLASS_ZICFISS_AND_ZCMOP, "d", MATCH_C_SSPUSH, MASK_C_SSPUSH, match_rd_x1x5_opcode, 0 },
{"c.sspopchk", 0, INSN_CLASS_ZICFISS_AND_ZCMOP, "d", MATCH_C_SSPOPCHK, MASK_C_SSPOPCHK, match_rd_x1x5_opcode, 0 },
{"ssrdp", 0, INSN_CLASS_ZICFISS, "d", MATCH_SSRDP, MASK_SSRDP, match_opcode, 0 },
-{"ssamoswap.w", 32, INSN_CLASS_ZICFISS, "d,t,0(s)", MATCH_SSAMOSWAP_W, MASK_SSAMOSWAP_W|MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"ssamoswap.w.aq", 32, INSN_CLASS_ZICFISS, "d,t,0(s)", MATCH_SSAMOSWAP_W|MASK_AQ, MASK_SSAMOSWAP_W|MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"ssamoswap.w.rl", 32, INSN_CLASS_ZICFISS, "d,t,0(s)", MATCH_SSAMOSWAP_W|MASK_RL, MASK_SSAMOSWAP_W|MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
-{"ssamoswap.w.aqrl", 32, INSN_CLASS_ZICFISS, "d,t,0(s)", MATCH_SSAMOSWAP_W|MASK_AQRL, MASK_SSAMOSWAP_W|MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"ssamoswap.w", 0, INSN_CLASS_ZICFISS, "d,t,0(s)", MATCH_SSAMOSWAP_W, MASK_SSAMOSWAP_W|MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"ssamoswap.w.aq", 0, INSN_CLASS_ZICFISS, "d,t,0(s)", MATCH_SSAMOSWAP_W|MASK_AQ, MASK_SSAMOSWAP_W|MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"ssamoswap.w.rl", 0, INSN_CLASS_ZICFISS, "d,t,0(s)", MATCH_SSAMOSWAP_W|MASK_RL, MASK_SSAMOSWAP_W|MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
+{"ssamoswap.w.aqrl", 0, INSN_CLASS_ZICFISS, "d,t,0(s)", MATCH_SSAMOSWAP_W|MASK_AQRL, MASK_SSAMOSWAP_W|MASK_AQRL, match_opcode, INSN_DREF|INSN_4_BYTE },
{"ssamoswap.d", 64, INSN_CLASS_ZICFISS, "d,t,0(s)", MATCH_SSAMOSWAP_D, MASK_SSAMOSWAP_D|MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
{"ssamoswap.d.aq", 64, INSN_CLASS_ZICFISS, "d,t,0(s)", MATCH_SSAMOSWAP_D|MASK_AQ, MASK_SSAMOSWAP_D|MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
{"ssamoswap.d.rl", 64, INSN_CLASS_ZICFISS, "d,t,0(s)", MATCH_SSAMOSWAP_D|MASK_RL, MASK_SSAMOSWAP_D|MASK_AQRL, match_opcode, INSN_DREF|INSN_8_BYTE },
@@ -2305,6 +2362,9 @@ const struct riscv_opcode riscv_opcodes[] =
{"hinval.vvma", 0, INSN_CLASS_SVINVAL, "s,t", MATCH_HINVAL_VVMA, MASK_HINVAL_VVMA, match_opcode, 0 },
{"hinval.gvma", 0, INSN_CLASS_SVINVAL, "s,t", MATCH_HINVAL_GVMA, MASK_HINVAL_GVMA, match_opcode, 0 },
+/* Smrnmi instruction */
+{"mnret", 0, INSN_CLASS_SMRNMI, "", MATCH_MNRET, MASK_MNRET, match_opcode, 0 },
+
/* Hypervisor instructions. */
{"hfence.vvma", 0, INSN_CLASS_H, "", MATCH_HFENCE_VVMA, MASK_HFENCE_VVMA|MASK_RS1|MASK_RS2, match_opcode, INSN_ALIAS },
{"hfence.vvma", 0, INSN_CLASS_H, "s", MATCH_HFENCE_VVMA, MASK_HFENCE_VVMA|MASK_RS2, match_opcode, INSN_ALIAS },
@@ -3459,6 +3519,15 @@ const struct riscv_opcode riscv_opcodes[] =
{"th.vrgather.vi",0, INSN_CLASS_XTHEADVECTOR, "Vd,Vt,VjVm", MATCH_VRGATHERVI, MASK_VRGATHERVI, match_opcode, 0},
{"th.vcompress.vm",0, INSN_CLASS_XTHEADVECTOR, "Vd,Vt,Vs", MATCH_VCOMPRESSVM, MASK_VCOMPRESSVM, match_opcode, 0},
+/* Vendor-specific (T-Head) XTheadVdot instructions. */
+{"th.vmaqa.vv", 0, INSN_CLASS_XTHEADVDOT, "Vd,Vs,VtVm", MATCH_TH_VMAQA_VV, MASK_TH_VMAQA_VV, match_opcode, 0},
+{"th.vmaqau.vv", 0, INSN_CLASS_XTHEADVDOT, "Vd,Vs,VtVm", MATCH_TH_VMAQAU_VV, MASK_TH_VMAQAU_VV, match_opcode, 0},
+{"th.vmaqasu.vv", 0, INSN_CLASS_XTHEADVDOT, "Vd,Vs,VtVm", MATCH_TH_VMAQASU_VV, MASK_TH_VMAQASU_VV, match_opcode, 0},
+{"th.vmaqa.vx", 0, INSN_CLASS_XTHEADVDOT, "Vd,s,VtVm", MATCH_TH_VMAQA_VX, MASK_TH_VMAQA_VX, match_opcode, 0},
+{"th.vmaqau.vx", 0, INSN_CLASS_XTHEADVDOT, "Vd,s,VtVm", MATCH_TH_VMAQAU_VX, MASK_TH_VMAQAU_VX, match_opcode, 0},
+{"th.vmaqasu.vx", 0, INSN_CLASS_XTHEADVDOT, "Vd,s,VtVm", MATCH_TH_VMAQASU_VX, MASK_TH_VMAQASU_VX, match_opcode, 0},
+{"th.vmaqaus.vx", 0, INSN_CLASS_XTHEADVDOT, "Vd,s,VtVm", MATCH_TH_VMAQAUS_VX, MASK_TH_VMAQAUS_VX, match_opcode, 0},
+
/* Vendor-specific (Ventana Microsystems) XVentanaCondOps instructions */
{"vt.maskc", 64, INSN_CLASS_XVENTANACONDOPS, "d,s,t", MATCH_VT_MASKC, MASK_VT_MASKC, match_opcode, 0 },
{"vt.maskcn", 64, INSN_CLASS_XVENTANACONDOPS, "d,s,t", MATCH_VT_MASKCN, MASK_VT_MASKCN, match_opcode, 0 },
@@ -3510,6 +3579,14 @@ const struct riscv_opcode riscv_opcodes[] =
{"sf.vfnrclip.xu.f.qf", 0, INSN_CLASS_XSFVFNRCLIPXFQF, "Vd,Vt,S", MATCH_SFVFNRCLIPXUFQF, MASK_SFVFNRCLIPXUFQF, match_opcode, 0},
{"sf.vfnrclip.x.f.qf", 0, INSN_CLASS_XSFVFNRCLIPXFQF, "Vd,Vt,S", MATCH_SFVFNRCLIPXFQF, MASK_SFVFNRCLIPXFQF, match_opcode, 0},
+/* MIPS custom instructions. */
+{"mips.ccmov", 0, INSN_CLASS_XMIPSCMOV, "d,t,s,r", MATCH_MIPS_CCMOV, MASK_MIPS_CCMOV, match_opcode, 0},
+{"mips.ldp", 0, INSN_CLASS_XMIPSLSP, "d,r,Xm$(s)", MATCH_MIPS_LDP, MASK_MIPS_LDP, match_opcode, 0 },
+{"mips.lwp", 0, INSN_CLASS_XMIPSLSP, "d,r,Xm%(s)", MATCH_MIPS_LWP, MASK_MIPS_LWP, match_opcode, 0 },
+{"mips.pref", 0, INSN_CLASS_XMIPSCBOP, "Xm@,Xm#(s)", MATCH_MIPS_PREF, MASK_MIPS_PREF, match_opcode, 0 },
+{"mips.sdp", 0, INSN_CLASS_XMIPSLSP, "t,r,Xm^(s)", MATCH_MIPS_SDP, MASK_MIPS_SDP, match_opcode, 0 },
+{"mips.swp", 0, INSN_CLASS_XMIPSLSP, "t,r,Xm&(s)", MATCH_MIPS_SWP, MASK_MIPS_SWP, match_opcode, 0 },
+
/* Terminate the list. */
{0, 0, INSN_CLASS_NONE, 0, 0, 0, 0, 0}
};
diff --git a/opcodes/s390-dis.c b/opcodes/s390-dis.c
index 9838365..0d32d05 100644
--- a/opcodes/s390-dis.c
+++ b/opcodes/s390-dis.c
@@ -312,7 +312,7 @@ s390_print_insn_with_opcode (bfd_vma memaddr,
info->fprintf_styled_func (info->stream, dis_style_text,
"%c", separator);
info->fprintf_styled_func (info->stream, dis_style_register,
- "%%v%i", val.u);
+ "%%v%u", val.u);
}
else if (flags & S390_OPERAND_AR)
{
diff --git a/opcodes/s390-mkopc.c b/opcodes/s390-mkopc.c
index 87d93bf..907f081 100644
--- a/opcodes/s390-mkopc.c
+++ b/opcodes/s390-mkopc.c
@@ -443,7 +443,8 @@ main (void)
else if (strcmp (cpu_string, "z16") == 0
|| strcmp (cpu_string, "arch14") == 0)
min_cpu = S390_OPCODE_ARCH14;
- else if (strcmp (cpu_string, "arch15") == 0)
+ else if (strcmp (cpu_string, "z17") == 0
+ || strcmp (cpu_string, "arch15") == 0)
min_cpu = S390_OPCODE_ARCH15;
else {
print_error ("Mnemonic \"%s\": Couldn't parse CPU string: %s\n",
diff --git a/readline/readline/tcap.h b/readline/readline/tcap.h
index 859e6ee..9e2ed12 100644
--- a/readline/readline/tcap.h
+++ b/readline/readline/tcap.h
@@ -46,14 +46,14 @@ extern char *UP, *BC;
extern short ospeed;
-extern int tgetent ();
-extern int tgetflag ();
-extern int tgetnum ();
-extern char *tgetstr ();
+extern int tgetent (char *bp, const char *name);
+extern int tgetflag (char *id);
+extern int tgetnum (char *id);
+extern char *tgetstr (char *id, char **area);
-extern int tputs ();
+extern int tputs (const char *str, int affcnt, int (*putc)(int));
-extern char *tgoto ();
+extern char *tgoto (const char *cap, int col, int row);
#endif /* HAVE_TERMCAP_H */
diff --git a/sim/Makefile.am b/sim/Makefile.am
index db4cd4e..a4ebb5f 100644
--- a/sim/Makefile.am
+++ b/sim/Makefile.am
@@ -1,6 +1,6 @@
## Process this file with automake to generate Makefile.in
##
-# Copyright (C) 1993-2024 Free Software Foundation, Inc.
+# Copyright (C) 1993-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -106,9 +106,6 @@ include testsuite/local.mk
if SIM_ENABLE_ARCH_aarch64
include aarch64/local.mk
endif
-if SIM_ENABLE_ARCH_arm
-include arm/local.mk
-endif
if SIM_ENABLE_ARCH_avr
include avr/local.mk
endif
diff --git a/sim/Makefile.in b/sim/Makefile.in
index ba27e9f..f99f155 100644
--- a/sim/Makefile.in
+++ b/sim/Makefile.in
@@ -14,7 +14,7 @@
@SET_MAKE@
-# Copyright (C) 1993-2024 Free Software Foundation, Inc.
+# Copyright (C) 1993-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -118,7 +118,7 @@ noinst_PROGRAMS = $(am__EXEEXT_11) $(am__EXEEXT_12) $(am__EXEEXT_13) \
$(am__EXEEXT_32) $(am__EXEEXT_33) $(am__EXEEXT_34) \
$(am__EXEEXT_35) $(am__EXEEXT_36) $(am__EXEEXT_37) \
$(am__EXEEXT_38) $(am__EXEEXT_39) $(am__EXEEXT_40) \
- $(am__EXEEXT_41) $(am__EXEEXT_42)
+ $(am__EXEEXT_41)
EXTRA_PROGRAMS = $(am__EXEEXT_1) testsuite/common/bits-gen$(EXEEXT) \
testsuite/common/fpu-tst$(EXEEXT) $(am__EXEEXT_2) \
$(am__EXEEXT_3) $(am__EXEEXT_4) $(am__EXEEXT_5) \
@@ -138,86 +138,84 @@ TESTS = testsuite/common/bits32m0$(EXEEXT) \
testsuite/common/alu-tst$(EXEEXT)
@SIM_ENABLE_ARCH_aarch64_TRUE@am__append_3 = aarch64/libsim.a
@SIM_ENABLE_ARCH_aarch64_TRUE@am__append_4 = aarch64/run
-@SIM_ENABLE_ARCH_arm_TRUE@am__append_5 = arm/libsim.a
-@SIM_ENABLE_ARCH_arm_TRUE@am__append_6 = arm/run
-@SIM_ENABLE_ARCH_avr_TRUE@am__append_7 = avr/libsim.a
-@SIM_ENABLE_ARCH_avr_TRUE@am__append_8 = avr/run
-@SIM_ENABLE_ARCH_bfin_TRUE@am__append_9 = bfin/libsim.a
-@SIM_ENABLE_ARCH_bfin_TRUE@am__append_10 = bfin/run
-@SIM_ENABLE_ARCH_bpf_TRUE@am__append_11 = bpf/libsim.a
-@SIM_ENABLE_ARCH_bpf_TRUE@am__append_12 = bpf/run
-@SIM_ENABLE_ARCH_cr16_TRUE@am__append_13 = cr16/libsim.a
-@SIM_ENABLE_ARCH_cr16_TRUE@am__append_14 = cr16/run
+@SIM_ENABLE_ARCH_avr_TRUE@am__append_5 = avr/libsim.a
+@SIM_ENABLE_ARCH_avr_TRUE@am__append_6 = avr/run
+@SIM_ENABLE_ARCH_bfin_TRUE@am__append_7 = bfin/libsim.a
+@SIM_ENABLE_ARCH_bfin_TRUE@am__append_8 = bfin/run
+@SIM_ENABLE_ARCH_bpf_TRUE@am__append_9 = bpf/libsim.a
+@SIM_ENABLE_ARCH_bpf_TRUE@am__append_10 = bpf/run
+@SIM_ENABLE_ARCH_cr16_TRUE@am__append_11 = cr16/libsim.a
+@SIM_ENABLE_ARCH_cr16_TRUE@am__append_12 = cr16/run
+@SIM_ENABLE_ARCH_cr16_TRUE@am__append_13 = cr16/simops.h
+@SIM_ENABLE_ARCH_cr16_TRUE@am__append_14 = cr16/gencode
@SIM_ENABLE_ARCH_cr16_TRUE@am__append_15 = cr16/simops.h
-@SIM_ENABLE_ARCH_cr16_TRUE@am__append_16 = cr16/gencode
-@SIM_ENABLE_ARCH_cr16_TRUE@am__append_17 = cr16/simops.h
-@SIM_ENABLE_ARCH_cr16_TRUE@am__append_18 = $(cr16_BUILD_OUTPUTS)
-@SIM_ENABLE_ARCH_cris_TRUE@am__append_19 = cris/libsim.a
-@SIM_ENABLE_ARCH_cris_TRUE@am__append_20 = cris/run
-@SIM_ENABLE_ARCH_cris_TRUE@am__append_21 = cris/rvdummy
-@SIM_ENABLE_ARCH_cris_TRUE@am__append_22 = \
+@SIM_ENABLE_ARCH_cr16_TRUE@am__append_16 = $(cr16_BUILD_OUTPUTS)
+@SIM_ENABLE_ARCH_cris_TRUE@am__append_17 = cris/libsim.a
+@SIM_ENABLE_ARCH_cris_TRUE@am__append_18 = cris/run
+@SIM_ENABLE_ARCH_cris_TRUE@am__append_19 = cris/rvdummy
+@SIM_ENABLE_ARCH_cris_TRUE@am__append_20 = \
@SIM_ENABLE_ARCH_cris_TRUE@ cris/engv10.h \
@SIM_ENABLE_ARCH_cris_TRUE@ cris/engv32.h
-@SIM_ENABLE_ARCH_cris_TRUE@am__append_23 = cris/engv10.h cris/engv32.h
-@SIM_ENABLE_ARCH_cris_TRUE@am__append_24 = $(cris_BUILD_OUTPUTS)
-@SIM_ENABLE_ARCH_d10v_TRUE@am__append_25 = d10v/libsim.a
-@SIM_ENABLE_ARCH_d10v_TRUE@am__append_26 = d10v/run
+@SIM_ENABLE_ARCH_cris_TRUE@am__append_21 = cris/engv10.h cris/engv32.h
+@SIM_ENABLE_ARCH_cris_TRUE@am__append_22 = $(cris_BUILD_OUTPUTS)
+@SIM_ENABLE_ARCH_d10v_TRUE@am__append_23 = d10v/libsim.a
+@SIM_ENABLE_ARCH_d10v_TRUE@am__append_24 = d10v/run
+@SIM_ENABLE_ARCH_d10v_TRUE@am__append_25 = d10v/simops.h
+@SIM_ENABLE_ARCH_d10v_TRUE@am__append_26 = d10v/gencode
@SIM_ENABLE_ARCH_d10v_TRUE@am__append_27 = d10v/simops.h
-@SIM_ENABLE_ARCH_d10v_TRUE@am__append_28 = d10v/gencode
-@SIM_ENABLE_ARCH_d10v_TRUE@am__append_29 = d10v/simops.h
-@SIM_ENABLE_ARCH_d10v_TRUE@am__append_30 = $(d10v_BUILD_OUTPUTS)
-@SIM_ENABLE_ARCH_erc32_TRUE@am__append_31 = erc32/libsim.a
-@SIM_ENABLE_ARCH_erc32_TRUE@am__append_32 = erc32/run erc32/sis
-@SIM_ENABLE_ARCH_erc32_TRUE@am__append_33 = sim-%D-install-exec-local
-@SIM_ENABLE_ARCH_erc32_TRUE@am__append_34 = sim-erc32-uninstall-local
-@SIM_ENABLE_ARCH_examples_TRUE@am__append_35 = example-synacor/libsim.a
-@SIM_ENABLE_ARCH_examples_TRUE@am__append_36 = example-synacor/run
-@SIM_ENABLE_ARCH_frv_TRUE@am__append_37 = frv/libsim.a
-@SIM_ENABLE_ARCH_frv_TRUE@am__append_38 = frv/run
-@SIM_ENABLE_ARCH_frv_TRUE@am__append_39 = frv/eng.h
-@SIM_ENABLE_ARCH_frv_TRUE@am__append_40 = frv/eng.h
-@SIM_ENABLE_ARCH_frv_TRUE@am__append_41 = $(frv_BUILD_OUTPUTS)
-@SIM_ENABLE_ARCH_ft32_TRUE@am__append_42 = ft32/libsim.a
-@SIM_ENABLE_ARCH_ft32_TRUE@am__append_43 = ft32/run
-@SIM_ENABLE_ARCH_h8300_TRUE@am__append_44 = h8300/libsim.a
-@SIM_ENABLE_ARCH_h8300_TRUE@am__append_45 = h8300/run
-@SIM_ENABLE_ARCH_iq2000_TRUE@am__append_46 = iq2000/libsim.a
-@SIM_ENABLE_ARCH_iq2000_TRUE@am__append_47 = iq2000/run
-@SIM_ENABLE_ARCH_iq2000_TRUE@am__append_48 = iq2000/eng.h
-@SIM_ENABLE_ARCH_iq2000_TRUE@am__append_49 = iq2000/eng.h
-@SIM_ENABLE_ARCH_iq2000_TRUE@am__append_50 = $(iq2000_BUILD_OUTPUTS)
-@SIM_ENABLE_ARCH_lm32_TRUE@am__append_51 = lm32/libsim.a
-@SIM_ENABLE_ARCH_lm32_TRUE@am__append_52 = lm32/run
-@SIM_ENABLE_ARCH_lm32_TRUE@am__append_53 = lm32/eng.h
-@SIM_ENABLE_ARCH_lm32_TRUE@am__append_54 = lm32/eng.h
-@SIM_ENABLE_ARCH_lm32_TRUE@am__append_55 = $(lm32_BUILD_OUTPUTS)
-@SIM_ENABLE_ARCH_m32c_TRUE@am__append_56 = m32c/libsim.a
-@SIM_ENABLE_ARCH_m32c_TRUE@am__append_57 = m32c/run
-@SIM_ENABLE_ARCH_m32c_TRUE@am__append_58 = m32c/opc2c
-@SIM_ENABLE_ARCH_m32c_TRUE@am__append_59 = \
+@SIM_ENABLE_ARCH_d10v_TRUE@am__append_28 = $(d10v_BUILD_OUTPUTS)
+@SIM_ENABLE_ARCH_erc32_TRUE@am__append_29 = erc32/libsim.a
+@SIM_ENABLE_ARCH_erc32_TRUE@am__append_30 = erc32/run erc32/sis
+@SIM_ENABLE_ARCH_erc32_TRUE@am__append_31 = sim-%D-install-exec-local
+@SIM_ENABLE_ARCH_erc32_TRUE@am__append_32 = sim-erc32-uninstall-local
+@SIM_ENABLE_ARCH_examples_TRUE@am__append_33 = example-synacor/libsim.a
+@SIM_ENABLE_ARCH_examples_TRUE@am__append_34 = example-synacor/run
+@SIM_ENABLE_ARCH_frv_TRUE@am__append_35 = frv/libsim.a
+@SIM_ENABLE_ARCH_frv_TRUE@am__append_36 = frv/run
+@SIM_ENABLE_ARCH_frv_TRUE@am__append_37 = frv/eng.h
+@SIM_ENABLE_ARCH_frv_TRUE@am__append_38 = frv/eng.h
+@SIM_ENABLE_ARCH_frv_TRUE@am__append_39 = $(frv_BUILD_OUTPUTS)
+@SIM_ENABLE_ARCH_ft32_TRUE@am__append_40 = ft32/libsim.a
+@SIM_ENABLE_ARCH_ft32_TRUE@am__append_41 = ft32/run
+@SIM_ENABLE_ARCH_h8300_TRUE@am__append_42 = h8300/libsim.a
+@SIM_ENABLE_ARCH_h8300_TRUE@am__append_43 = h8300/run
+@SIM_ENABLE_ARCH_iq2000_TRUE@am__append_44 = iq2000/libsim.a
+@SIM_ENABLE_ARCH_iq2000_TRUE@am__append_45 = iq2000/run
+@SIM_ENABLE_ARCH_iq2000_TRUE@am__append_46 = iq2000/eng.h
+@SIM_ENABLE_ARCH_iq2000_TRUE@am__append_47 = iq2000/eng.h
+@SIM_ENABLE_ARCH_iq2000_TRUE@am__append_48 = $(iq2000_BUILD_OUTPUTS)
+@SIM_ENABLE_ARCH_lm32_TRUE@am__append_49 = lm32/libsim.a
+@SIM_ENABLE_ARCH_lm32_TRUE@am__append_50 = lm32/run
+@SIM_ENABLE_ARCH_lm32_TRUE@am__append_51 = lm32/eng.h
+@SIM_ENABLE_ARCH_lm32_TRUE@am__append_52 = lm32/eng.h
+@SIM_ENABLE_ARCH_lm32_TRUE@am__append_53 = $(lm32_BUILD_OUTPUTS)
+@SIM_ENABLE_ARCH_m32c_TRUE@am__append_54 = m32c/libsim.a
+@SIM_ENABLE_ARCH_m32c_TRUE@am__append_55 = m32c/run
+@SIM_ENABLE_ARCH_m32c_TRUE@am__append_56 = m32c/opc2c
+@SIM_ENABLE_ARCH_m32c_TRUE@am__append_57 = \
@SIM_ENABLE_ARCH_m32c_TRUE@ $(m32c_BUILD_OUTPUTS) \
@SIM_ENABLE_ARCH_m32c_TRUE@ m32c/m32c.c.log \
@SIM_ENABLE_ARCH_m32c_TRUE@ m32c/r8c.c.log
-@SIM_ENABLE_ARCH_m32r_TRUE@am__append_60 = m32r/libsim.a
-@SIM_ENABLE_ARCH_m32r_TRUE@am__append_61 = m32r/run
-@SIM_ENABLE_ARCH_m32r_TRUE@am__append_62 = \
+@SIM_ENABLE_ARCH_m32r_TRUE@am__append_58 = m32r/libsim.a
+@SIM_ENABLE_ARCH_m32r_TRUE@am__append_59 = m32r/run
+@SIM_ENABLE_ARCH_m32r_TRUE@am__append_60 = \
@SIM_ENABLE_ARCH_m32r_TRUE@ m32r/eng.h \
@SIM_ENABLE_ARCH_m32r_TRUE@ m32r/engx.h \
@SIM_ENABLE_ARCH_m32r_TRUE@ m32r/eng2.h
-@SIM_ENABLE_ARCH_m32r_TRUE@am__append_63 = m32r/eng.h m32r/engx.h m32r/eng2.h
-@SIM_ENABLE_ARCH_m32r_TRUE@am__append_64 = $(m32r_BUILD_OUTPUTS)
-@SIM_ENABLE_ARCH_m68hc11_TRUE@am__append_65 = m68hc11/libsim.a
-@SIM_ENABLE_ARCH_m68hc11_TRUE@am__append_66 = m68hc11/run
-@SIM_ENABLE_ARCH_m68hc11_TRUE@am__append_67 = m68hc11/gencode
-@SIM_ENABLE_ARCH_m68hc11_TRUE@am__append_68 = $(m68hc11_BUILD_OUTPUTS)
-@SIM_ENABLE_ARCH_mcore_TRUE@am__append_69 = mcore/libsim.a
-@SIM_ENABLE_ARCH_mcore_TRUE@am__append_70 = mcore/run
-@SIM_ENABLE_ARCH_microblaze_TRUE@am__append_71 = microblaze/libsim.a
-@SIM_ENABLE_ARCH_microblaze_TRUE@am__append_72 = microblaze/run
-@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_SINGLE_TRUE@am__append_73 = \
+@SIM_ENABLE_ARCH_m32r_TRUE@am__append_61 = m32r/eng.h m32r/engx.h m32r/eng2.h
+@SIM_ENABLE_ARCH_m32r_TRUE@am__append_62 = $(m32r_BUILD_OUTPUTS)
+@SIM_ENABLE_ARCH_m68hc11_TRUE@am__append_63 = m68hc11/libsim.a
+@SIM_ENABLE_ARCH_m68hc11_TRUE@am__append_64 = m68hc11/run
+@SIM_ENABLE_ARCH_m68hc11_TRUE@am__append_65 = m68hc11/gencode
+@SIM_ENABLE_ARCH_m68hc11_TRUE@am__append_66 = $(m68hc11_BUILD_OUTPUTS)
+@SIM_ENABLE_ARCH_mcore_TRUE@am__append_67 = mcore/libsim.a
+@SIM_ENABLE_ARCH_mcore_TRUE@am__append_68 = mcore/run
+@SIM_ENABLE_ARCH_microblaze_TRUE@am__append_69 = microblaze/libsim.a
+@SIM_ENABLE_ARCH_microblaze_TRUE@am__append_70 = microblaze/run
+@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_SINGLE_TRUE@am__append_71 = \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_SINGLE_TRUE@ mips/support.o \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_SINGLE_TRUE@ mips/itable.o \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_SINGLE_TRUE@ mips/semantics.o \
@@ -226,7 +224,7 @@ TESTS = testsuite/common/bits32m0$(EXEEXT) \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_SINGLE_TRUE@ mips/engine.o \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_SINGLE_TRUE@ mips/irun.o
-@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_M16_TRUE@am__append_74 = \
+@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_M16_TRUE@am__append_72 = \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_M16_TRUE@ mips/m16_support.o \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_M16_TRUE@ mips/m16_semantics.o \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_M16_TRUE@ mips/m16_idecode.o \
@@ -240,35 +238,35 @@ TESTS = testsuite/common/bits32m0$(EXEEXT) \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_M16_TRUE@ mips/itable.o \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_M16_TRUE@ mips/m16run.o
-@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_MULTI_TRUE@am__append_75 = \
+@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_MULTI_TRUE@am__append_73 = \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_MULTI_TRUE@ $(SIM_MIPS_MULTI_OBJ) \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_MULTI_TRUE@ mips/itable.o \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_MULTI_TRUE@ mips/multi-run.o
-@SIM_ENABLE_ARCH_mips_TRUE@am__append_76 = mips/libsim.a
-@SIM_ENABLE_ARCH_mips_TRUE@am__append_77 = mips/run
-@SIM_ENABLE_ARCH_mips_TRUE@am__append_78 = mips/itable.h \
+@SIM_ENABLE_ARCH_mips_TRUE@am__append_74 = mips/libsim.a
+@SIM_ENABLE_ARCH_mips_TRUE@am__append_75 = mips/run
+@SIM_ENABLE_ARCH_mips_TRUE@am__append_76 = mips/itable.h \
@SIM_ENABLE_ARCH_mips_TRUE@ $(SIM_MIPS_MULTI_SRC)
-@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_SINGLE_TRUE@am__append_79 = \
+@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_SINGLE_TRUE@am__append_77 = \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_SINGLE_TRUE@ $(mips_BUILT_SRC_FROM_GEN_MODE_SINGLE) \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_SINGLE_TRUE@ mips/stamp-gen-mode-single
-@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_M16_TRUE@am__append_80 = \
+@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_M16_TRUE@am__append_78 = \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_M16_TRUE@ $(mips_BUILT_SRC_FROM_GEN_MODE_M16_M16) \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_M16_TRUE@ $(mips_BUILT_SRC_FROM_GEN_MODE_M16_M32) \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_M16_TRUE@ mips/stamp-gen-mode-m16-m16 \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_M16_TRUE@ mips/stamp-gen-mode-m16-m32
-@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_MULTI_TRUE@am__append_81 = \
+@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_MULTI_TRUE@am__append_79 = \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_MULTI_TRUE@ $(SIM_MIPS_MULTI_SRC) \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_MULTI_TRUE@ mips/stamp-gen-mode-multi-igen \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_MULTI_TRUE@ mips/stamp-gen-mode-multi-run
-@SIM_ENABLE_ARCH_mips_TRUE@am__append_82 = $(mips_BUILD_OUTPUTS)
-@SIM_ENABLE_ARCH_mips_TRUE@am__append_83 = mips/multi-include.h mips/multi-run.c
-@SIM_ENABLE_ARCH_mn10300_TRUE@am__append_84 = mn10300/libsim.a
-@SIM_ENABLE_ARCH_mn10300_TRUE@am__append_85 = mn10300/run
-@SIM_ENABLE_ARCH_mn10300_TRUE@am__append_86 = \
+@SIM_ENABLE_ARCH_mips_TRUE@am__append_80 = $(mips_BUILD_OUTPUTS)
+@SIM_ENABLE_ARCH_mips_TRUE@am__append_81 = mips/multi-include.h mips/multi-run.c
+@SIM_ENABLE_ARCH_mn10300_TRUE@am__append_82 = mn10300/libsim.a
+@SIM_ENABLE_ARCH_mn10300_TRUE@am__append_83 = mn10300/run
+@SIM_ENABLE_ARCH_mn10300_TRUE@am__append_84 = \
@SIM_ENABLE_ARCH_mn10300_TRUE@ mn10300/icache.h \
@SIM_ENABLE_ARCH_mn10300_TRUE@ mn10300/idecode.h \
@SIM_ENABLE_ARCH_mn10300_TRUE@ mn10300/semantics.h \
@@ -277,47 +275,47 @@ TESTS = testsuite/common/bits32m0$(EXEEXT) \
@SIM_ENABLE_ARCH_mn10300_TRUE@ mn10300/itable.h \
@SIM_ENABLE_ARCH_mn10300_TRUE@ mn10300/engine.h
-@SIM_ENABLE_ARCH_mn10300_TRUE@am__append_87 = $(mn10300_BUILD_OUTPUTS)
-@SIM_ENABLE_ARCH_moxie_TRUE@am__append_88 = moxie/libsim.a
-@SIM_ENABLE_ARCH_moxie_TRUE@am__append_89 = moxie/run
-@SIM_ENABLE_ARCH_msp430_TRUE@am__append_90 = msp430/libsim.a
-@SIM_ENABLE_ARCH_msp430_TRUE@am__append_91 = msp430/run
-@SIM_ENABLE_ARCH_or1k_TRUE@am__append_92 = or1k/libsim.a
-@SIM_ENABLE_ARCH_or1k_TRUE@am__append_93 = or1k/run
-@SIM_ENABLE_ARCH_or1k_TRUE@am__append_94 = or1k/eng.h
-@SIM_ENABLE_ARCH_or1k_TRUE@am__append_95 = or1k/eng.h
-@SIM_ENABLE_ARCH_or1k_TRUE@am__append_96 = $(or1k_BUILD_OUTPUTS)
-@SIM_ENABLE_ARCH_ppc_TRUE@am__append_97 = ppc/libsim.a
-@SIM_ENABLE_ARCH_ppc_TRUE@am__append_98 = ppc/run
-@SIM_ENABLE_ARCH_ppc_TRUE@am__append_99 = ppc/defines.h ppc/icache.h \
+@SIM_ENABLE_ARCH_mn10300_TRUE@am__append_85 = $(mn10300_BUILD_OUTPUTS)
+@SIM_ENABLE_ARCH_moxie_TRUE@am__append_86 = moxie/libsim.a
+@SIM_ENABLE_ARCH_moxie_TRUE@am__append_87 = moxie/run
+@SIM_ENABLE_ARCH_msp430_TRUE@am__append_88 = msp430/libsim.a
+@SIM_ENABLE_ARCH_msp430_TRUE@am__append_89 = msp430/run
+@SIM_ENABLE_ARCH_or1k_TRUE@am__append_90 = or1k/libsim.a
+@SIM_ENABLE_ARCH_or1k_TRUE@am__append_91 = or1k/run
+@SIM_ENABLE_ARCH_or1k_TRUE@am__append_92 = or1k/eng.h
+@SIM_ENABLE_ARCH_or1k_TRUE@am__append_93 = or1k/eng.h
+@SIM_ENABLE_ARCH_or1k_TRUE@am__append_94 = $(or1k_BUILD_OUTPUTS)
+@SIM_ENABLE_ARCH_ppc_TRUE@am__append_95 = ppc/libsim.a
+@SIM_ENABLE_ARCH_ppc_TRUE@am__append_96 = ppc/run
+@SIM_ENABLE_ARCH_ppc_TRUE@am__append_97 = ppc/defines.h ppc/icache.h \
@SIM_ENABLE_ARCH_ppc_TRUE@ ppc/idecode.h ppc/semantics.h \
@SIM_ENABLE_ARCH_ppc_TRUE@ ppc/model.h ppc/support.h \
@SIM_ENABLE_ARCH_ppc_TRUE@ ppc/itable.h ppc/hw.h
-@SIM_ENABLE_ARCH_ppc_TRUE@am__append_100 = ppc/defines.h \
+@SIM_ENABLE_ARCH_ppc_TRUE@am__append_98 = ppc/defines.h \
@SIM_ENABLE_ARCH_ppc_TRUE@ ppc/stamp-defines \
@SIM_ENABLE_ARCH_ppc_TRUE@ $(ppc_BUILD_OUTPUTS) \
@SIM_ENABLE_ARCH_ppc_TRUE@ $(ppc_IGEN_TOOLS) ppc/libigen.a
-@SIM_ENABLE_ARCH_ppc_TRUE@am__append_101 = ppc/libigen.a
-@SIM_ENABLE_ARCH_ppc_TRUE@am__append_102 = $(ppc_IGEN_TOOLS)
-@SIM_ENABLE_ARCH_pru_TRUE@am__append_103 = pru/libsim.a
-@SIM_ENABLE_ARCH_pru_TRUE@am__append_104 = pru/run
-@SIM_ENABLE_ARCH_riscv_TRUE@am__append_105 = riscv/libsim.a
-@SIM_ENABLE_ARCH_riscv_TRUE@am__append_106 = riscv/run
-@SIM_ENABLE_ARCH_rl78_TRUE@am__append_107 = rl78/libsim.a
-@SIM_ENABLE_ARCH_rl78_TRUE@am__append_108 = rl78/run
-@SIM_ENABLE_ARCH_rx_TRUE@am__append_109 = rx/libsim.a
-@SIM_ENABLE_ARCH_rx_TRUE@am__append_110 = rx/run
-@SIM_ENABLE_ARCH_sh_TRUE@am__append_111 = sh/libsim.a
-@SIM_ENABLE_ARCH_sh_TRUE@am__append_112 = sh/run
-@SIM_ENABLE_ARCH_sh_TRUE@am__append_113 = \
+@SIM_ENABLE_ARCH_ppc_TRUE@am__append_99 = ppc/libigen.a
+@SIM_ENABLE_ARCH_ppc_TRUE@am__append_100 = $(ppc_IGEN_TOOLS)
+@SIM_ENABLE_ARCH_pru_TRUE@am__append_101 = pru/libsim.a
+@SIM_ENABLE_ARCH_pru_TRUE@am__append_102 = pru/run
+@SIM_ENABLE_ARCH_riscv_TRUE@am__append_103 = riscv/libsim.a
+@SIM_ENABLE_ARCH_riscv_TRUE@am__append_104 = riscv/run
+@SIM_ENABLE_ARCH_rl78_TRUE@am__append_105 = rl78/libsim.a
+@SIM_ENABLE_ARCH_rl78_TRUE@am__append_106 = rl78/run
+@SIM_ENABLE_ARCH_rx_TRUE@am__append_107 = rx/libsim.a
+@SIM_ENABLE_ARCH_rx_TRUE@am__append_108 = rx/run
+@SIM_ENABLE_ARCH_sh_TRUE@am__append_109 = sh/libsim.a
+@SIM_ENABLE_ARCH_sh_TRUE@am__append_110 = sh/run
+@SIM_ENABLE_ARCH_sh_TRUE@am__append_111 = \
@SIM_ENABLE_ARCH_sh_TRUE@ sh/code.c \
@SIM_ENABLE_ARCH_sh_TRUE@ sh/ppi.c
-@SIM_ENABLE_ARCH_sh_TRUE@am__append_114 = sh/gencode
-@SIM_ENABLE_ARCH_sh_TRUE@am__append_115 = $(sh_BUILD_OUTPUTS)
-@SIM_ENABLE_ARCH_v850_TRUE@am__append_116 = v850/libsim.a
-@SIM_ENABLE_ARCH_v850_TRUE@am__append_117 = v850/run
-@SIM_ENABLE_ARCH_v850_TRUE@am__append_118 = \
+@SIM_ENABLE_ARCH_sh_TRUE@am__append_112 = sh/gencode
+@SIM_ENABLE_ARCH_sh_TRUE@am__append_113 = $(sh_BUILD_OUTPUTS)
+@SIM_ENABLE_ARCH_v850_TRUE@am__append_114 = v850/libsim.a
+@SIM_ENABLE_ARCH_v850_TRUE@am__append_115 = v850/run
+@SIM_ENABLE_ARCH_v850_TRUE@am__append_116 = \
@SIM_ENABLE_ARCH_v850_TRUE@ v850/icache.h \
@SIM_ENABLE_ARCH_v850_TRUE@ v850/idecode.h \
@SIM_ENABLE_ARCH_v850_TRUE@ v850/semantics.h \
@@ -326,7 +324,7 @@ TESTS = testsuite/common/bits32m0$(EXEEXT) \
@SIM_ENABLE_ARCH_v850_TRUE@ v850/itable.h \
@SIM_ENABLE_ARCH_v850_TRUE@ v850/engine.h
-@SIM_ENABLE_ARCH_v850_TRUE@am__append_119 = $(v850_BUILD_OUTPUTS)
+@SIM_ENABLE_ARCH_v850_TRUE@am__append_117 = $(v850_BUILD_OUTPUTS)
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
@@ -366,15 +364,15 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
CONFIG_HEADER = config.h
-CONFIG_CLEAN_FILES = aarch64/.gdbinit arm/.gdbinit avr/.gdbinit \
- bfin/.gdbinit bpf/.gdbinit cr16/.gdbinit cris/.gdbinit \
- d10v/.gdbinit frv/.gdbinit ft32/.gdbinit h8300/.gdbinit \
- iq2000/.gdbinit lm32/.gdbinit m32c/.gdbinit m32r/.gdbinit \
- m68hc11/.gdbinit mcore/.gdbinit microblaze/.gdbinit \
- mips/.gdbinit mn10300/.gdbinit moxie/.gdbinit msp430/.gdbinit \
- or1k/.gdbinit ppc/.gdbinit pru/.gdbinit riscv/.gdbinit \
- rl78/.gdbinit rx/.gdbinit sh/.gdbinit erc32/.gdbinit \
- v850/.gdbinit example-synacor/.gdbinit .gdbinit
+CONFIG_CLEAN_FILES = aarch64/.gdbinit avr/.gdbinit bfin/.gdbinit \
+ bpf/.gdbinit cr16/.gdbinit cris/.gdbinit d10v/.gdbinit \
+ frv/.gdbinit ft32/.gdbinit h8300/.gdbinit iq2000/.gdbinit \
+ lm32/.gdbinit m32c/.gdbinit m32r/.gdbinit m68hc11/.gdbinit \
+ mcore/.gdbinit microblaze/.gdbinit mips/.gdbinit \
+ mn10300/.gdbinit moxie/.gdbinit msp430/.gdbinit or1k/.gdbinit \
+ ppc/.gdbinit pru/.gdbinit riscv/.gdbinit rl78/.gdbinit \
+ rx/.gdbinit sh/.gdbinit erc32/.gdbinit v850/.gdbinit \
+ example-synacor/.gdbinit .gdbinit
CONFIG_CLEAN_VPATH_FILES =
LIBRARIES = $(noinst_LIBRARIES)
ARFLAGS = cru
@@ -407,22 +405,6 @@ am__objects_1 = common/callback.$(OBJEXT) common/portability.$(OBJEXT) \
@SIM_ENABLE_ARCH_aarch64_TRUE@ aarch64/modules.$(OBJEXT)
aarch64_libsim_a_OBJECTS = $(am_aarch64_libsim_a_OBJECTS) \
$(nodist_aarch64_libsim_a_OBJECTS)
-arm_libsim_a_AR = $(AR) $(ARFLAGS)
-@SIM_ENABLE_ARCH_arm_TRUE@arm_libsim_a_DEPENDENCIES = arm/wrapper.o \
-@SIM_ENABLE_ARCH_arm_TRUE@ $(patsubst \
-@SIM_ENABLE_ARCH_arm_TRUE@ %,arm/%,$(SIM_NEW_COMMON_OBJS)) \
-@SIM_ENABLE_ARCH_arm_TRUE@ $(patsubst \
-@SIM_ENABLE_ARCH_arm_TRUE@ %,arm/dv-%.o,$(SIM_HW_DEVICES)) \
-@SIM_ENABLE_ARCH_arm_TRUE@ arm/armemu.o arm/armemu32.o \
-@SIM_ENABLE_ARCH_arm_TRUE@ arm/arminit.o arm/armos.o \
-@SIM_ENABLE_ARCH_arm_TRUE@ arm/armsupp.o arm/armvirt.o \
-@SIM_ENABLE_ARCH_arm_TRUE@ arm/thumbemu.o arm/armcopro.o \
-@SIM_ENABLE_ARCH_arm_TRUE@ arm/maverick.o arm/iwmmxt.o
-@SIM_ENABLE_ARCH_arm_TRUE@am_arm_libsim_a_OBJECTS = $(am__objects_1)
-@SIM_ENABLE_ARCH_arm_TRUE@nodist_arm_libsim_a_OBJECTS = \
-@SIM_ENABLE_ARCH_arm_TRUE@ arm/modules.$(OBJEXT)
-arm_libsim_a_OBJECTS = $(am_arm_libsim_a_OBJECTS) \
- $(nodist_arm_libsim_a_OBJECTS)
avr_libsim_a_AR = $(AR) $(ARFLAGS)
@SIM_ENABLE_ARCH_avr_TRUE@avr_libsim_a_DEPENDENCIES = avr/interp.o \
@SIM_ENABLE_ARCH_avr_TRUE@ $(patsubst \
@@ -736,8 +718,8 @@ am__DEPENDENCIES_1 =
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_MULTI_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_MULTI_TRUE@ mips/itable.o \
@SIM_ENABLE_ARCH_mips_TRUE@@SIM_MIPS_GEN_MODE_MULTI_TRUE@ mips/multi-run.o
-@SIM_ENABLE_ARCH_mips_TRUE@am__DEPENDENCIES_3 = $(am__append_73) \
-@SIM_ENABLE_ARCH_mips_TRUE@ $(am__append_74) \
+@SIM_ENABLE_ARCH_mips_TRUE@am__DEPENDENCIES_3 = $(am__append_71) \
+@SIM_ENABLE_ARCH_mips_TRUE@ $(am__append_72) \
@SIM_ENABLE_ARCH_mips_TRUE@ $(am__DEPENDENCIES_2)
@SIM_ENABLE_ARCH_mips_TRUE@mips_libsim_a_DEPENDENCIES = mips/interp.o \
@SIM_ENABLE_ARCH_mips_TRUE@ $(am__DEPENDENCIES_3) $(patsubst \
@@ -954,40 +936,39 @@ am__EXEEXT_9 = testsuite/common/bits32m0$(EXEEXT) \
testsuite/common/alu-tst$(EXEEXT)
@SIM_ENABLE_ARCH_cris_TRUE@am__EXEEXT_10 = cris/rvdummy$(EXEEXT)
@SIM_ENABLE_ARCH_aarch64_TRUE@am__EXEEXT_11 = aarch64/run$(EXEEXT)
-@SIM_ENABLE_ARCH_arm_TRUE@am__EXEEXT_12 = arm/run$(EXEEXT)
-@SIM_ENABLE_ARCH_avr_TRUE@am__EXEEXT_13 = avr/run$(EXEEXT)
-@SIM_ENABLE_ARCH_bfin_TRUE@am__EXEEXT_14 = bfin/run$(EXEEXT)
-@SIM_ENABLE_ARCH_bpf_TRUE@am__EXEEXT_15 = bpf/run$(EXEEXT)
-@SIM_ENABLE_ARCH_cr16_TRUE@am__EXEEXT_16 = cr16/run$(EXEEXT)
-@SIM_ENABLE_ARCH_cris_TRUE@am__EXEEXT_17 = cris/run$(EXEEXT)
-@SIM_ENABLE_ARCH_d10v_TRUE@am__EXEEXT_18 = d10v/run$(EXEEXT)
-@SIM_ENABLE_ARCH_erc32_TRUE@am__EXEEXT_19 = erc32/run$(EXEEXT) \
+@SIM_ENABLE_ARCH_avr_TRUE@am__EXEEXT_12 = avr/run$(EXEEXT)
+@SIM_ENABLE_ARCH_bfin_TRUE@am__EXEEXT_13 = bfin/run$(EXEEXT)
+@SIM_ENABLE_ARCH_bpf_TRUE@am__EXEEXT_14 = bpf/run$(EXEEXT)
+@SIM_ENABLE_ARCH_cr16_TRUE@am__EXEEXT_15 = cr16/run$(EXEEXT)
+@SIM_ENABLE_ARCH_cris_TRUE@am__EXEEXT_16 = cris/run$(EXEEXT)
+@SIM_ENABLE_ARCH_d10v_TRUE@am__EXEEXT_17 = d10v/run$(EXEEXT)
+@SIM_ENABLE_ARCH_erc32_TRUE@am__EXEEXT_18 = erc32/run$(EXEEXT) \
@SIM_ENABLE_ARCH_erc32_TRUE@ erc32/sis$(EXEEXT)
-@SIM_ENABLE_ARCH_examples_TRUE@am__EXEEXT_20 = \
+@SIM_ENABLE_ARCH_examples_TRUE@am__EXEEXT_19 = \
@SIM_ENABLE_ARCH_examples_TRUE@ example-synacor/run$(EXEEXT)
-@SIM_ENABLE_ARCH_frv_TRUE@am__EXEEXT_21 = frv/run$(EXEEXT)
-@SIM_ENABLE_ARCH_ft32_TRUE@am__EXEEXT_22 = ft32/run$(EXEEXT)
-@SIM_ENABLE_ARCH_h8300_TRUE@am__EXEEXT_23 = h8300/run$(EXEEXT)
-@SIM_ENABLE_ARCH_iq2000_TRUE@am__EXEEXT_24 = iq2000/run$(EXEEXT)
-@SIM_ENABLE_ARCH_lm32_TRUE@am__EXEEXT_25 = lm32/run$(EXEEXT)
-@SIM_ENABLE_ARCH_m32c_TRUE@am__EXEEXT_26 = m32c/run$(EXEEXT)
-@SIM_ENABLE_ARCH_m32r_TRUE@am__EXEEXT_27 = m32r/run$(EXEEXT)
-@SIM_ENABLE_ARCH_m68hc11_TRUE@am__EXEEXT_28 = m68hc11/run$(EXEEXT)
-@SIM_ENABLE_ARCH_mcore_TRUE@am__EXEEXT_29 = mcore/run$(EXEEXT)
-@SIM_ENABLE_ARCH_microblaze_TRUE@am__EXEEXT_30 = \
+@SIM_ENABLE_ARCH_frv_TRUE@am__EXEEXT_20 = frv/run$(EXEEXT)
+@SIM_ENABLE_ARCH_ft32_TRUE@am__EXEEXT_21 = ft32/run$(EXEEXT)
+@SIM_ENABLE_ARCH_h8300_TRUE@am__EXEEXT_22 = h8300/run$(EXEEXT)
+@SIM_ENABLE_ARCH_iq2000_TRUE@am__EXEEXT_23 = iq2000/run$(EXEEXT)
+@SIM_ENABLE_ARCH_lm32_TRUE@am__EXEEXT_24 = lm32/run$(EXEEXT)
+@SIM_ENABLE_ARCH_m32c_TRUE@am__EXEEXT_25 = m32c/run$(EXEEXT)
+@SIM_ENABLE_ARCH_m32r_TRUE@am__EXEEXT_26 = m32r/run$(EXEEXT)
+@SIM_ENABLE_ARCH_m68hc11_TRUE@am__EXEEXT_27 = m68hc11/run$(EXEEXT)
+@SIM_ENABLE_ARCH_mcore_TRUE@am__EXEEXT_28 = mcore/run$(EXEEXT)
+@SIM_ENABLE_ARCH_microblaze_TRUE@am__EXEEXT_29 = \
@SIM_ENABLE_ARCH_microblaze_TRUE@ microblaze/run$(EXEEXT)
-@SIM_ENABLE_ARCH_mips_TRUE@am__EXEEXT_31 = mips/run$(EXEEXT)
-@SIM_ENABLE_ARCH_mn10300_TRUE@am__EXEEXT_32 = mn10300/run$(EXEEXT)
-@SIM_ENABLE_ARCH_moxie_TRUE@am__EXEEXT_33 = moxie/run$(EXEEXT)
-@SIM_ENABLE_ARCH_msp430_TRUE@am__EXEEXT_34 = msp430/run$(EXEEXT)
-@SIM_ENABLE_ARCH_or1k_TRUE@am__EXEEXT_35 = or1k/run$(EXEEXT)
-@SIM_ENABLE_ARCH_ppc_TRUE@am__EXEEXT_36 = ppc/run$(EXEEXT)
-@SIM_ENABLE_ARCH_pru_TRUE@am__EXEEXT_37 = pru/run$(EXEEXT)
-@SIM_ENABLE_ARCH_riscv_TRUE@am__EXEEXT_38 = riscv/run$(EXEEXT)
-@SIM_ENABLE_ARCH_rl78_TRUE@am__EXEEXT_39 = rl78/run$(EXEEXT)
-@SIM_ENABLE_ARCH_rx_TRUE@am__EXEEXT_40 = rx/run$(EXEEXT)
-@SIM_ENABLE_ARCH_sh_TRUE@am__EXEEXT_41 = sh/run$(EXEEXT)
-@SIM_ENABLE_ARCH_v850_TRUE@am__EXEEXT_42 = v850/run$(EXEEXT)
+@SIM_ENABLE_ARCH_mips_TRUE@am__EXEEXT_30 = mips/run$(EXEEXT)
+@SIM_ENABLE_ARCH_mn10300_TRUE@am__EXEEXT_31 = mn10300/run$(EXEEXT)
+@SIM_ENABLE_ARCH_moxie_TRUE@am__EXEEXT_32 = moxie/run$(EXEEXT)
+@SIM_ENABLE_ARCH_msp430_TRUE@am__EXEEXT_33 = msp430/run$(EXEEXT)
+@SIM_ENABLE_ARCH_or1k_TRUE@am__EXEEXT_34 = or1k/run$(EXEEXT)
+@SIM_ENABLE_ARCH_ppc_TRUE@am__EXEEXT_35 = ppc/run$(EXEEXT)
+@SIM_ENABLE_ARCH_pru_TRUE@am__EXEEXT_36 = pru/run$(EXEEXT)
+@SIM_ENABLE_ARCH_riscv_TRUE@am__EXEEXT_37 = riscv/run$(EXEEXT)
+@SIM_ENABLE_ARCH_rl78_TRUE@am__EXEEXT_38 = rl78/run$(EXEEXT)
+@SIM_ENABLE_ARCH_rx_TRUE@am__EXEEXT_39 = rx/run$(EXEEXT)
+@SIM_ENABLE_ARCH_sh_TRUE@am__EXEEXT_40 = sh/run$(EXEEXT)
+@SIM_ENABLE_ARCH_v850_TRUE@am__EXEEXT_41 = v850/run$(EXEEXT)
PROGRAMS = $(noinst_PROGRAMS)
am_aarch64_run_OBJECTS =
aarch64_run_OBJECTS = $(am_aarch64_run_OBJECTS)
@@ -999,10 +980,6 @@ AM_V_lt = $(am__v_lt_@AM_V@)
am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
am__v_lt_0 = --silent
am__v_lt_1 =
-am_arm_run_OBJECTS =
-arm_run_OBJECTS = $(am_arm_run_OBJECTS)
-@SIM_ENABLE_ARCH_arm_TRUE@arm_run_DEPENDENCIES = arm/nrun.o \
-@SIM_ENABLE_ARCH_arm_TRUE@ arm/libsim.a $(am__DEPENDENCIES_4)
am_avr_run_OBJECTS =
avr_run_OBJECTS = $(am_avr_run_OBJECTS)
@SIM_ENABLE_ARCH_avr_TRUE@avr_run_DEPENDENCIES = avr/nrun.o \
@@ -1264,8 +1241,7 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
am__v_CCLD_0 = @echo " CCLD " $@;
am__v_CCLD_1 =
SOURCES = $(aarch64_libsim_a_SOURCES) \
- $(nodist_aarch64_libsim_a_SOURCES) $(arm_libsim_a_SOURCES) \
- $(nodist_arm_libsim_a_SOURCES) $(avr_libsim_a_SOURCES) \
+ $(nodist_aarch64_libsim_a_SOURCES) $(avr_libsim_a_SOURCES) \
$(nodist_avr_libsim_a_SOURCES) $(bfin_libsim_a_SOURCES) \
$(nodist_bfin_libsim_a_SOURCES) $(bpf_libsim_a_SOURCES) \
$(nodist_bpf_libsim_a_SOURCES) $(common_libcommon_a_SOURCES) \
@@ -1299,8 +1275,8 @@ SOURCES = $(aarch64_libsim_a_SOURCES) \
$(nodist_rx_libsim_a_SOURCES) $(sh_libsim_a_SOURCES) \
$(nodist_sh_libsim_a_SOURCES) $(v850_libsim_a_SOURCES) \
$(nodist_v850_libsim_a_SOURCES) $(aarch64_run_SOURCES) \
- $(arm_run_SOURCES) $(avr_run_SOURCES) $(bfin_run_SOURCES) \
- $(bpf_run_SOURCES) $(cr16_gencode_SOURCES) $(cr16_run_SOURCES) \
+ $(avr_run_SOURCES) $(bfin_run_SOURCES) $(bpf_run_SOURCES) \
+ $(cr16_gencode_SOURCES) $(cr16_run_SOURCES) \
$(cris_run_SOURCES) $(cris_rvdummy_SOURCES) \
$(d10v_gencode_SOURCES) $(d10v_run_SOURCES) \
$(erc32_run_SOURCES) erc32/sis.c \
@@ -1356,12 +1332,12 @@ am__uninstall_files_from_dir = { \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
}
-am__installdirs = "$(DESTDIR)$(armdocdir)" "$(DESTDIR)$(dtbdir)" \
- "$(DESTDIR)$(erc32docdir)" "$(DESTDIR)$(frvdocdir)" \
- "$(DESTDIR)$(or1kdocdir)" "$(DESTDIR)$(ppcdocdir)" \
- "$(DESTDIR)$(rxdocdir)" "$(DESTDIR)$(pkgincludedir)"
-DATA = $(armdoc_DATA) $(dtb_DATA) $(erc32doc_DATA) $(frvdoc_DATA) \
- $(or1kdoc_DATA) $(ppcdoc_DATA) $(rxdoc_DATA)
+am__installdirs = "$(DESTDIR)$(dtbdir)" "$(DESTDIR)$(erc32docdir)" \
+ "$(DESTDIR)$(frvdocdir)" "$(DESTDIR)$(or1kdocdir)" \
+ "$(DESTDIR)$(ppcdocdir)" "$(DESTDIR)$(rxdocdir)" \
+ "$(DESTDIR)$(pkgincludedir)"
+DATA = $(dtb_DATA) $(erc32doc_DATA) $(frvdoc_DATA) $(or1kdoc_DATA) \
+ $(ppcdoc_DATA) $(rxdoc_DATA)
am__pkginclude_HEADERS_DIST = $(srcroot)/include/sim/callback.h \
$(srcroot)/include/sim/sim.h
HEADERS = $(pkginclude_HEADERS)
@@ -1574,7 +1550,6 @@ AR = @AR@
AR_FOR_BUILD = @AR_FOR_BUILD@
AS_FOR_TARGET = @AS_FOR_TARGET@
AS_FOR_TARGET_AARCH64 = @AS_FOR_TARGET_AARCH64@
-AS_FOR_TARGET_ARM = @AS_FOR_TARGET_ARM@
AS_FOR_TARGET_AVR = @AS_FOR_TARGET_AVR@
AS_FOR_TARGET_BFIN = @AS_FOR_TARGET_BFIN@
AS_FOR_TARGET_BPF = @AS_FOR_TARGET_BPF@
@@ -1616,7 +1591,6 @@ CCDEPMODE = @CCDEPMODE@
CC_FOR_BUILD = @CC_FOR_BUILD@
CC_FOR_TARGET = @CC_FOR_TARGET@
CC_FOR_TARGET_AARCH64 = @CC_FOR_TARGET_AARCH64@
-CC_FOR_TARGET_ARM = @CC_FOR_TARGET_ARM@
CC_FOR_TARGET_AVR = @CC_FOR_TARGET_AVR@
CC_FOR_TARGET_BFIN = @CC_FOR_TARGET_BFIN@
CC_FOR_TARGET_BPF = @CC_FOR_TARGET_BPF@
@@ -1678,7 +1652,6 @@ LDFLAGS = @LDFLAGS@
LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@
LD_FOR_TARGET = @LD_FOR_TARGET@
LD_FOR_TARGET_AARCH64 = @LD_FOR_TARGET_AARCH64@
-LD_FOR_TARGET_ARM = @LD_FOR_TARGET_ARM@
LD_FOR_TARGET_AVR = @LD_FOR_TARGET_AVR@
LD_FOR_TARGET_BFIN = @LD_FOR_TARGET_BFIN@
LD_FOR_TARGET_BPF = @LD_FOR_TARGET_BPF@
@@ -1856,41 +1829,41 @@ GNULIB_PARENT_DIR = ..
srccom = $(srcdir)/common
srcroot = $(srcdir)/..
pkginclude_HEADERS = $(am__append_1)
-EXTRA_LIBRARIES = igen/libigen.a $(am__append_101)
+EXTRA_LIBRARIES = igen/libigen.a $(am__append_99)
noinst_LIBRARIES = common/libcommon.a $(am__append_3) $(am__append_5) \
$(am__append_7) $(am__append_9) $(am__append_11) \
- $(am__append_13) $(am__append_19) $(am__append_25) \
- $(am__append_31) $(am__append_35) $(am__append_37) \
- $(am__append_42) $(am__append_44) $(am__append_46) \
- $(am__append_51) $(am__append_56) $(am__append_60) \
- $(am__append_65) $(am__append_69) $(am__append_71) \
- $(am__append_76) $(am__append_84) $(am__append_88) \
- $(am__append_90) $(am__append_92) $(am__append_97) \
+ $(am__append_17) $(am__append_23) $(am__append_29) \
+ $(am__append_33) $(am__append_35) $(am__append_40) \
+ $(am__append_42) $(am__append_44) $(am__append_49) \
+ $(am__append_54) $(am__append_58) $(am__append_63) \
+ $(am__append_67) $(am__append_69) $(am__append_74) \
+ $(am__append_82) $(am__append_86) $(am__append_88) \
+ $(am__append_90) $(am__append_95) $(am__append_101) \
$(am__append_103) $(am__append_105) $(am__append_107) \
- $(am__append_109) $(am__append_111) $(am__append_116)
-BUILT_SOURCES = $(am__append_15) $(am__append_22) $(am__append_27) \
- $(am__append_39) $(am__append_48) $(am__append_53) \
- $(am__append_62) $(am__append_78) $(am__append_86) \
- $(am__append_94) $(am__append_99) $(am__append_113) \
- $(am__append_118)
+ $(am__append_109) $(am__append_114)
+BUILT_SOURCES = $(am__append_13) $(am__append_20) $(am__append_25) \
+ $(am__append_37) $(am__append_46) $(am__append_51) \
+ $(am__append_60) $(am__append_76) $(am__append_84) \
+ $(am__append_92) $(am__append_97) $(am__append_111) \
+ $(am__append_116)
CLEANFILES = common/version.c common/version.c-stamp \
testsuite/common/bits-gen testsuite/common/bits32m0.c \
testsuite/common/bits32m31.c testsuite/common/bits64m0.c \
- testsuite/common/bits64m63.c $(am__append_17) $(am__append_23) \
- $(am__append_29) $(am__append_40) $(am__append_49) \
- $(am__append_54) $(am__append_63) $(am__append_95)
-DISTCLEANFILES = $(am__append_83)
+ testsuite/common/bits64m63.c $(am__append_15) $(am__append_21) \
+ $(am__append_27) $(am__append_38) $(am__append_47) \
+ $(am__append_52) $(am__append_61) $(am__append_93)
+DISTCLEANFILES = $(am__append_81)
MOSTLYCLEANFILES = core $(SIM_ENABLED_ARCHES:%=%/*.o) \
$(SIM_ENABLED_ARCHES:%=%/hw-config.h) \
$(SIM_ENABLED_ARCHES:%=%/stamp-hw) \
$(SIM_ENABLED_ARCHES:%=%/modules.c) \
$(SIM_ENABLED_ARCHES:%=%/stamp-modules) $(igen_IGEN_TOOLS) \
igen/libigen.a site-sim-config.exp testrun.log testrun.sum \
- $(am__append_18) $(am__append_24) $(am__append_30) \
- $(am__append_41) $(am__append_50) $(am__append_55) \
- $(am__append_59) $(am__append_64) $(am__append_68) \
- $(am__append_82) $(am__append_87) $(am__append_96) \
- $(am__append_100) $(am__append_115) $(am__append_119)
+ $(am__append_16) $(am__append_22) $(am__append_28) \
+ $(am__append_39) $(am__append_48) $(am__append_53) \
+ $(am__append_57) $(am__append_62) $(am__append_66) \
+ $(am__append_80) $(am__append_85) $(am__append_94) \
+ $(am__append_98) $(am__append_113) $(am__append_117)
CONFIG_STATUS_DEPENDENCIES = $(srcroot)/bfd/development.sh
AM_CFLAGS = \
$(WERROR_CFLAGS) \
@@ -1907,8 +1880,8 @@ AM_CPPFLAGS_FOR_BUILD = -I$(srcroot)/include $(SIM_HW_CFLAGS) \
COMPILE_FOR_BUILD = $(CC_FOR_BUILD) $(AM_CPPFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(BUILD_WERROR_CFLAGS) $(BUILD_WARN_CFLAGS)
LINK_FOR_BUILD = $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@
SIM_INSTALL_DATA_LOCAL_DEPS =
-SIM_INSTALL_EXEC_LOCAL_DEPS = $(am__append_33)
-SIM_UNINSTALL_LOCAL_DEPS = $(am__append_34)
+SIM_INSTALL_EXEC_LOCAL_DEPS = $(am__append_31)
+SIM_UNINSTALL_LOCAL_DEPS = $(am__append_32)
SIM_DEPBASE = $(@D)/$(DEPDIR)/$(@F:.o=)
SIM_COMPILE = \
$(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(SIM_DEPBASE).Tpo -c -o $@ $< && \
@@ -2109,30 +2082,6 @@ testsuite_common_CPPFLAGS = \
@SIM_ENABLE_ARCH_aarch64_TRUE@ aarch64/libsim.a \
@SIM_ENABLE_ARCH_aarch64_TRUE@ $(SIM_COMMON_LIBS)
-@SIM_ENABLE_ARCH_arm_TRUE@AM_CPPFLAGS_arm = -DMODET
-@SIM_ENABLE_ARCH_arm_TRUE@nodist_arm_libsim_a_SOURCES = \
-@SIM_ENABLE_ARCH_arm_TRUE@ arm/modules.c
-
-@SIM_ENABLE_ARCH_arm_TRUE@arm_libsim_a_SOURCES = \
-@SIM_ENABLE_ARCH_arm_TRUE@ $(common_libcommon_a_SOURCES)
-
-@SIM_ENABLE_ARCH_arm_TRUE@arm_libsim_a_LIBADD = \
-@SIM_ENABLE_ARCH_arm_TRUE@ arm/wrapper.o \
-@SIM_ENABLE_ARCH_arm_TRUE@ $(patsubst %,arm/%,$(SIM_NEW_COMMON_OBJS)) \
-@SIM_ENABLE_ARCH_arm_TRUE@ $(patsubst %,arm/dv-%.o,$(SIM_HW_DEVICES)) \
-@SIM_ENABLE_ARCH_arm_TRUE@ arm/armemu.o \
-@SIM_ENABLE_ARCH_arm_TRUE@ arm/armemu32.o arm/arminit.o arm/armos.o arm/armsupp.o \
-@SIM_ENABLE_ARCH_arm_TRUE@ arm/armvirt.o arm/thumbemu.o \
-@SIM_ENABLE_ARCH_arm_TRUE@ arm/armcopro.o arm/maverick.o arm/iwmmxt.o
-
-@SIM_ENABLE_ARCH_arm_TRUE@arm_run_SOURCES =
-@SIM_ENABLE_ARCH_arm_TRUE@arm_run_LDADD = \
-@SIM_ENABLE_ARCH_arm_TRUE@ arm/nrun.o \
-@SIM_ENABLE_ARCH_arm_TRUE@ arm/libsim.a \
-@SIM_ENABLE_ARCH_arm_TRUE@ $(SIM_COMMON_LIBS)
-
-@SIM_ENABLE_ARCH_arm_TRUE@armdocdir = $(docdir)/arm
-@SIM_ENABLE_ARCH_arm_TRUE@armdoc_DATA = arm/README
@SIM_ENABLE_ARCH_avr_TRUE@nodist_avr_libsim_a_SOURCES = \
@SIM_ENABLE_ARCH_avr_TRUE@ avr/modules.c
@@ -2705,8 +2654,8 @@ testsuite_common_CPPFLAGS = \
@SIM_ENABLE_ARCH_mips_TRUE@ -DWITH_TARGET_WORD_BITSIZE=@SIM_MIPS_BITSIZE@ -DWITH_TARGET_WORD_MSB=WITH_TARGET_WORD_BITSIZE-1 \
@SIM_ENABLE_ARCH_mips_TRUE@ -DWITH_FLOATING_POINT=HARD_FLOATING_POINT -DWITH_TARGET_FLOATING_POINT_BITSIZE=@SIM_MIPS_FPU_BITSIZE@
-@SIM_ENABLE_ARCH_mips_TRUE@mips_GEN_OBJ = $(am__append_73) \
-@SIM_ENABLE_ARCH_mips_TRUE@ $(am__append_74) $(am__append_75)
+@SIM_ENABLE_ARCH_mips_TRUE@mips_GEN_OBJ = $(am__append_71) \
+@SIM_ENABLE_ARCH_mips_TRUE@ $(am__append_72) $(am__append_73)
@SIM_ENABLE_ARCH_mips_TRUE@nodist_mips_libsim_a_SOURCES = \
@SIM_ENABLE_ARCH_mips_TRUE@ mips/modules.c
@@ -2778,8 +2727,8 @@ testsuite_common_CPPFLAGS = \
@SIM_ENABLE_ARCH_mips_TRUE@mips_BUILD_OUTPUTS = \
@SIM_ENABLE_ARCH_mips_TRUE@ $(mips_BUILT_SRC_FROM_IGEN_ITABLE) \
@SIM_ENABLE_ARCH_mips_TRUE@ mips/stamp-igen-itable \
-@SIM_ENABLE_ARCH_mips_TRUE@ $(am__append_79) $(am__append_80) \
-@SIM_ENABLE_ARCH_mips_TRUE@ $(am__append_81)
+@SIM_ENABLE_ARCH_mips_TRUE@ $(am__append_77) $(am__append_78) \
+@SIM_ENABLE_ARCH_mips_TRUE@ $(am__append_79)
@SIM_ENABLE_ARCH_mips_TRUE@mips_IGEN_TRACE = # -G omit-line-numbers # -G trace-rule-selection -G trace-rule-rejection -G trace-entries # -G trace-all
@SIM_ENABLE_ARCH_mips_TRUE@mips_IGEN_INSN = $(srcdir)/mips/mips.igen
@SIM_ENABLE_ARCH_mips_TRUE@mips_IGEN_INSN_INC = \
@@ -3238,7 +3187,7 @@ all: $(BUILT_SOURCES) config.h
.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
am--refresh: Makefile
@:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/common/local.mk $(srcdir)/igen/local.mk $(srcdir)/testsuite/local.mk $(srcdir)/testsuite/common/local.mk $(srcdir)/aarch64/local.mk $(srcdir)/arm/local.mk $(srcdir)/avr/local.mk $(srcdir)/bfin/local.mk $(srcdir)/bpf/local.mk $(srcdir)/cr16/local.mk $(srcdir)/cris/local.mk $(srcdir)/d10v/local.mk $(srcdir)/erc32/local.mk $(srcdir)/example-synacor/local.mk $(srcdir)/frv/local.mk $(srcdir)/ft32/local.mk $(srcdir)/h8300/local.mk $(srcdir)/iq2000/local.mk $(srcdir)/lm32/local.mk $(srcdir)/m32c/local.mk $(srcdir)/m32r/local.mk $(srcdir)/m68hc11/local.mk $(srcdir)/mcore/local.mk $(srcdir)/microblaze/local.mk $(srcdir)/mips/local.mk $(srcdir)/mn10300/local.mk $(srcdir)/moxie/local.mk $(srcdir)/msp430/local.mk $(srcdir)/or1k/local.mk $(srcdir)/ppc/local.mk $(srcdir)/pru/local.mk $(srcdir)/riscv/local.mk $(srcdir)/rl78/local.mk $(srcdir)/rx/local.mk $(srcdir)/sh/local.mk $(srcdir)/v850/local.mk $(am__configure_deps)
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/common/local.mk $(srcdir)/igen/local.mk $(srcdir)/testsuite/local.mk $(srcdir)/testsuite/common/local.mk $(srcdir)/aarch64/local.mk $(srcdir)/avr/local.mk $(srcdir)/bfin/local.mk $(srcdir)/bpf/local.mk $(srcdir)/cr16/local.mk $(srcdir)/cris/local.mk $(srcdir)/d10v/local.mk $(srcdir)/erc32/local.mk $(srcdir)/example-synacor/local.mk $(srcdir)/frv/local.mk $(srcdir)/ft32/local.mk $(srcdir)/h8300/local.mk $(srcdir)/iq2000/local.mk $(srcdir)/lm32/local.mk $(srcdir)/m32c/local.mk $(srcdir)/m32r/local.mk $(srcdir)/m68hc11/local.mk $(srcdir)/mcore/local.mk $(srcdir)/microblaze/local.mk $(srcdir)/mips/local.mk $(srcdir)/mn10300/local.mk $(srcdir)/moxie/local.mk $(srcdir)/msp430/local.mk $(srcdir)/or1k/local.mk $(srcdir)/ppc/local.mk $(srcdir)/pru/local.mk $(srcdir)/riscv/local.mk $(srcdir)/rl78/local.mk $(srcdir)/rx/local.mk $(srcdir)/sh/local.mk $(srcdir)/v850/local.mk $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
@@ -3260,7 +3209,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
-$(srcdir)/common/local.mk $(srcdir)/igen/local.mk $(srcdir)/testsuite/local.mk $(srcdir)/testsuite/common/local.mk $(srcdir)/aarch64/local.mk $(srcdir)/arm/local.mk $(srcdir)/avr/local.mk $(srcdir)/bfin/local.mk $(srcdir)/bpf/local.mk $(srcdir)/cr16/local.mk $(srcdir)/cris/local.mk $(srcdir)/d10v/local.mk $(srcdir)/erc32/local.mk $(srcdir)/example-synacor/local.mk $(srcdir)/frv/local.mk $(srcdir)/ft32/local.mk $(srcdir)/h8300/local.mk $(srcdir)/iq2000/local.mk $(srcdir)/lm32/local.mk $(srcdir)/m32c/local.mk $(srcdir)/m32r/local.mk $(srcdir)/m68hc11/local.mk $(srcdir)/mcore/local.mk $(srcdir)/microblaze/local.mk $(srcdir)/mips/local.mk $(srcdir)/mn10300/local.mk $(srcdir)/moxie/local.mk $(srcdir)/msp430/local.mk $(srcdir)/or1k/local.mk $(srcdir)/ppc/local.mk $(srcdir)/pru/local.mk $(srcdir)/riscv/local.mk $(srcdir)/rl78/local.mk $(srcdir)/rx/local.mk $(srcdir)/sh/local.mk $(srcdir)/v850/local.mk $(am__empty):
+$(srcdir)/common/local.mk $(srcdir)/igen/local.mk $(srcdir)/testsuite/local.mk $(srcdir)/testsuite/common/local.mk $(srcdir)/aarch64/local.mk $(srcdir)/avr/local.mk $(srcdir)/bfin/local.mk $(srcdir)/bpf/local.mk $(srcdir)/cr16/local.mk $(srcdir)/cris/local.mk $(srcdir)/d10v/local.mk $(srcdir)/erc32/local.mk $(srcdir)/example-synacor/local.mk $(srcdir)/frv/local.mk $(srcdir)/ft32/local.mk $(srcdir)/h8300/local.mk $(srcdir)/iq2000/local.mk $(srcdir)/lm32/local.mk $(srcdir)/m32c/local.mk $(srcdir)/m32r/local.mk $(srcdir)/m68hc11/local.mk $(srcdir)/mcore/local.mk $(srcdir)/microblaze/local.mk $(srcdir)/mips/local.mk $(srcdir)/mn10300/local.mk $(srcdir)/moxie/local.mk $(srcdir)/msp430/local.mk $(srcdir)/or1k/local.mk $(srcdir)/ppc/local.mk $(srcdir)/pru/local.mk $(srcdir)/riscv/local.mk $(srcdir)/rl78/local.mk $(srcdir)/rx/local.mk $(srcdir)/sh/local.mk $(srcdir)/v850/local.mk $(am__empty):
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
@@ -3287,8 +3236,6 @@ distclean-hdr:
-rm -f config.h stamp-h1
aarch64/.gdbinit: $(top_builddir)/config.status $(top_srcdir)/common/gdbinit.in
cd $(top_builddir) && $(SHELL) ./config.status $@
-arm/.gdbinit: $(top_builddir)/config.status $(top_srcdir)/common/gdbinit.in
- cd $(top_builddir) && $(SHELL) ./config.status $@
avr/.gdbinit: $(top_builddir)/config.status $(top_srcdir)/common/gdbinit.in
cd $(top_builddir) && $(SHELL) ./config.status $@
bfin/.gdbinit: $(top_builddir)/config.status $(top_srcdir)/common/gdbinit.in
@@ -3393,19 +3340,6 @@ aarch64/libsim.a: $(aarch64_libsim_a_OBJECTS) $(aarch64_libsim_a_DEPENDENCIES) $
$(AM_V_at)-rm -f aarch64/libsim.a
$(AM_V_AR)$(aarch64_libsim_a_AR) aarch64/libsim.a $(aarch64_libsim_a_OBJECTS) $(aarch64_libsim_a_LIBADD)
$(AM_V_at)$(RANLIB) aarch64/libsim.a
-arm/$(am__dirstamp):
- @$(MKDIR_P) arm
- @: > arm/$(am__dirstamp)
-arm/$(DEPDIR)/$(am__dirstamp):
- @$(MKDIR_P) arm/$(DEPDIR)
- @: > arm/$(DEPDIR)/$(am__dirstamp)
-arm/modules.$(OBJEXT): arm/$(am__dirstamp) \
- arm/$(DEPDIR)/$(am__dirstamp)
-
-arm/libsim.a: $(arm_libsim_a_OBJECTS) $(arm_libsim_a_DEPENDENCIES) $(EXTRA_arm_libsim_a_DEPENDENCIES) arm/$(am__dirstamp)
- $(AM_V_at)-rm -f arm/libsim.a
- $(AM_V_AR)$(arm_libsim_a_AR) arm/libsim.a $(arm_libsim_a_OBJECTS) $(arm_libsim_a_LIBADD)
- $(AM_V_at)$(RANLIB) arm/libsim.a
avr/$(am__dirstamp):
@$(MKDIR_P) avr
@: > avr/$(am__dirstamp)
@@ -3886,10 +3820,6 @@ aarch64/run$(EXEEXT): $(aarch64_run_OBJECTS) $(aarch64_run_DEPENDENCIES) $(EXTRA
@rm -f aarch64/run$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(aarch64_run_OBJECTS) $(aarch64_run_LDADD) $(LIBS)
-arm/run$(EXEEXT): $(arm_run_OBJECTS) $(arm_run_DEPENDENCIES) $(EXTRA_arm_run_DEPENDENCIES) arm/$(am__dirstamp)
- @rm -f arm/run$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(arm_run_OBJECTS) $(arm_run_LDADD) $(LIBS)
-
avr/run$(EXEEXT): $(avr_run_OBJECTS) $(avr_run_DEPENDENCIES) $(EXTRA_avr_run_DEPENDENCIES) avr/$(am__dirstamp)
@rm -f avr/run$(EXEEXT)
$(AM_V_CCLD)$(LINK) $(avr_run_OBJECTS) $(avr_run_LDADD) $(LIBS)
@@ -4120,7 +4050,6 @@ v850/run$(EXEEXT): $(v850_run_OBJECTS) $(v850_run_DEPENDENCIES) $(EXTRA_v850_run
mostlyclean-compile:
-rm -f *.$(OBJEXT)
-rm -f aarch64/*.$(OBJEXT)
- -rm -f arm/*.$(OBJEXT)
-rm -f avr/*.$(OBJEXT)
-rm -f bfin/*.$(OBJEXT)
-rm -f bpf/*.$(OBJEXT)
@@ -4159,7 +4088,6 @@ distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@aarch64/$(DEPDIR)/modules.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@arm/$(DEPDIR)/modules.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@avr/$(DEPDIR)/modules.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bfin/$(DEPDIR)/modules.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@bpf/$(DEPDIR)/modules.Po@am__quote@
@@ -4276,7 +4204,6 @@ mostlyclean-libtool:
clean-libtool:
-rm -rf .libs _libs
-rm -rf aarch64/.libs aarch64/_libs
- -rm -rf arm/.libs arm/_libs
-rm -rf avr/.libs avr/_libs
-rm -rf bfin/.libs bfin/_libs
-rm -rf bpf/.libs bpf/_libs
@@ -4312,27 +4239,6 @@ clean-libtool:
distclean-libtool:
-rm -f libtool config.lt
-install-armdocDATA: $(armdoc_DATA)
- @$(NORMAL_INSTALL)
- @list='$(armdoc_DATA)'; test -n "$(armdocdir)" || list=; \
- if test -n "$$list"; then \
- echo " $(MKDIR_P) '$(DESTDIR)$(armdocdir)'"; \
- $(MKDIR_P) "$(DESTDIR)$(armdocdir)" || exit 1; \
- fi; \
- for p in $$list; do \
- if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
- echo "$$d$$p"; \
- done | $(am__base_list) | \
- while read files; do \
- echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(armdocdir)'"; \
- $(INSTALL_DATA) $$files "$(DESTDIR)$(armdocdir)" || exit $$?; \
- done
-
-uninstall-armdocDATA:
- @$(NORMAL_UNINSTALL)
- @list='$(armdoc_DATA)'; test -n "$(armdocdir)" || list=; \
- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
- dir='$(DESTDIR)$(armdocdir)'; $(am__uninstall_files_from_dir)
install-dtbDATA: $(dtb_DATA)
@$(NORMAL_INSTALL)
@list='$(dtb_DATA)'; test -n "$(dtbdir)" || list=; \
@@ -4769,7 +4675,7 @@ check: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) check-am
all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS) config.h
installdirs:
- for dir in "$(DESTDIR)$(armdocdir)" "$(DESTDIR)$(dtbdir)" "$(DESTDIR)$(erc32docdir)" "$(DESTDIR)$(frvdocdir)" "$(DESTDIR)$(or1kdocdir)" "$(DESTDIR)$(ppcdocdir)" "$(DESTDIR)$(rxdocdir)" "$(DESTDIR)$(pkgincludedir)"; do \
+ for dir in "$(DESTDIR)$(dtbdir)" "$(DESTDIR)$(erc32docdir)" "$(DESTDIR)$(frvdocdir)" "$(DESTDIR)$(or1kdocdir)" "$(DESTDIR)$(ppcdocdir)" "$(DESTDIR)$(rxdocdir)" "$(DESTDIR)$(pkgincludedir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: $(BUILT_SOURCES)
@@ -4806,8 +4712,6 @@ distclean-generic:
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-rm -f aarch64/$(DEPDIR)/$(am__dirstamp)
-rm -f aarch64/$(am__dirstamp)
- -rm -f arm/$(DEPDIR)/$(am__dirstamp)
- -rm -f arm/$(am__dirstamp)
-rm -f avr/$(DEPDIR)/$(am__dirstamp)
-rm -f avr/$(am__dirstamp)
-rm -f bfin/$(DEPDIR)/$(am__dirstamp)
@@ -4887,7 +4791,7 @@ clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
distclean: distclean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf aarch64/$(DEPDIR) arm/$(DEPDIR) avr/$(DEPDIR) bfin/$(DEPDIR) bpf/$(DEPDIR) common/$(DEPDIR) cr16/$(DEPDIR) cris/$(DEPDIR) d10v/$(DEPDIR) erc32/$(DEPDIR) example-synacor/$(DEPDIR) frv/$(DEPDIR) ft32/$(DEPDIR) h8300/$(DEPDIR) igen/$(DEPDIR) iq2000/$(DEPDIR) lm32/$(DEPDIR) m32c/$(DEPDIR) m32r/$(DEPDIR) m68hc11/$(DEPDIR) mcore/$(DEPDIR) microblaze/$(DEPDIR) mips/$(DEPDIR) mn10300/$(DEPDIR) moxie/$(DEPDIR) msp430/$(DEPDIR) or1k/$(DEPDIR) ppc/$(DEPDIR) pru/$(DEPDIR) riscv/$(DEPDIR) rl78/$(DEPDIR) rx/$(DEPDIR) sh/$(DEPDIR) testsuite/common/$(DEPDIR) v850/$(DEPDIR)
+ -rm -rf aarch64/$(DEPDIR) avr/$(DEPDIR) bfin/$(DEPDIR) bpf/$(DEPDIR) common/$(DEPDIR) cr16/$(DEPDIR) cris/$(DEPDIR) d10v/$(DEPDIR) erc32/$(DEPDIR) example-synacor/$(DEPDIR) frv/$(DEPDIR) ft32/$(DEPDIR) h8300/$(DEPDIR) igen/$(DEPDIR) iq2000/$(DEPDIR) lm32/$(DEPDIR) m32c/$(DEPDIR) m32r/$(DEPDIR) m68hc11/$(DEPDIR) mcore/$(DEPDIR) microblaze/$(DEPDIR) mips/$(DEPDIR) mn10300/$(DEPDIR) moxie/$(DEPDIR) msp430/$(DEPDIR) or1k/$(DEPDIR) ppc/$(DEPDIR) pru/$(DEPDIR) riscv/$(DEPDIR) rl78/$(DEPDIR) rx/$(DEPDIR) sh/$(DEPDIR) testsuite/common/$(DEPDIR) v850/$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-DEJAGNU distclean-compile \
distclean-generic distclean-hdr distclean-libtool \
@@ -4905,7 +4809,7 @@ info: info-am
info-am:
-install-data-am: install-armdocDATA install-data-local install-dtbDATA \
+install-data-am: install-data-local install-dtbDATA \
install-erc32docDATA install-frvdocDATA install-or1kdocDATA \
install-pkgincludeHEADERS install-ppcdocDATA install-rxdocDATA
@@ -4938,7 +4842,7 @@ installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -rf $(top_srcdir)/autom4te.cache
- -rm -rf aarch64/$(DEPDIR) arm/$(DEPDIR) avr/$(DEPDIR) bfin/$(DEPDIR) bpf/$(DEPDIR) common/$(DEPDIR) cr16/$(DEPDIR) cris/$(DEPDIR) d10v/$(DEPDIR) erc32/$(DEPDIR) example-synacor/$(DEPDIR) frv/$(DEPDIR) ft32/$(DEPDIR) h8300/$(DEPDIR) igen/$(DEPDIR) iq2000/$(DEPDIR) lm32/$(DEPDIR) m32c/$(DEPDIR) m32r/$(DEPDIR) m68hc11/$(DEPDIR) mcore/$(DEPDIR) microblaze/$(DEPDIR) mips/$(DEPDIR) mn10300/$(DEPDIR) moxie/$(DEPDIR) msp430/$(DEPDIR) or1k/$(DEPDIR) ppc/$(DEPDIR) pru/$(DEPDIR) riscv/$(DEPDIR) rl78/$(DEPDIR) rx/$(DEPDIR) sh/$(DEPDIR) testsuite/common/$(DEPDIR) v850/$(DEPDIR)
+ -rm -rf aarch64/$(DEPDIR) avr/$(DEPDIR) bfin/$(DEPDIR) bpf/$(DEPDIR) common/$(DEPDIR) cr16/$(DEPDIR) cris/$(DEPDIR) d10v/$(DEPDIR) erc32/$(DEPDIR) example-synacor/$(DEPDIR) frv/$(DEPDIR) ft32/$(DEPDIR) h8300/$(DEPDIR) igen/$(DEPDIR) iq2000/$(DEPDIR) lm32/$(DEPDIR) m32c/$(DEPDIR) m32r/$(DEPDIR) m68hc11/$(DEPDIR) mcore/$(DEPDIR) microblaze/$(DEPDIR) mips/$(DEPDIR) mn10300/$(DEPDIR) moxie/$(DEPDIR) msp430/$(DEPDIR) or1k/$(DEPDIR) ppc/$(DEPDIR) pru/$(DEPDIR) riscv/$(DEPDIR) rl78/$(DEPDIR) rx/$(DEPDIR) sh/$(DEPDIR) testsuite/common/$(DEPDIR) v850/$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
@@ -4955,10 +4859,10 @@ ps: ps-am
ps-am:
-uninstall-am: uninstall-armdocDATA uninstall-dtbDATA \
- uninstall-erc32docDATA uninstall-frvdocDATA uninstall-local \
- uninstall-or1kdocDATA uninstall-pkgincludeHEADERS \
- uninstall-ppcdocDATA uninstall-rxdocDATA
+uninstall-am: uninstall-dtbDATA uninstall-erc32docDATA \
+ uninstall-frvdocDATA uninstall-local uninstall-or1kdocDATA \
+ uninstall-pkgincludeHEADERS uninstall-ppcdocDATA \
+ uninstall-rxdocDATA
.MAKE: all check check-am install install-am install-strip
@@ -4969,8 +4873,8 @@ uninstall-am: uninstall-armdocDATA uninstall-dtbDATA \
distclean distclean-DEJAGNU distclean-compile \
distclean-generic distclean-hdr distclean-libtool \
distclean-tags dvi dvi-am html html-am info info-am install \
- install-am install-armdocDATA install-data install-data-am \
- install-data-local install-dtbDATA install-dvi install-dvi-am \
+ install-am install-data install-data-am install-data-local \
+ install-dtbDATA install-dvi install-dvi-am \
install-erc32docDATA install-exec install-exec-am \
install-exec-local install-frvdocDATA install-html \
install-html-am install-info install-info-am install-man \
@@ -4980,11 +4884,10 @@ uninstall-am: uninstall-armdocDATA uninstall-dtbDATA \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
- recheck tags tags-am uninstall uninstall-am \
- uninstall-armdocDATA uninstall-dtbDATA uninstall-erc32docDATA \
- uninstall-frvdocDATA uninstall-local uninstall-or1kdocDATA \
- uninstall-pkgincludeHEADERS uninstall-ppcdocDATA \
- uninstall-rxdocDATA
+ recheck tags tags-am uninstall uninstall-am uninstall-dtbDATA \
+ uninstall-erc32docDATA uninstall-frvdocDATA uninstall-local \
+ uninstall-or1kdocDATA uninstall-pkgincludeHEADERS \
+ uninstall-ppcdocDATA uninstall-rxdocDATA
.PRECIOUS: Makefile
@@ -5166,12 +5069,6 @@ testsuite/common/bits64m63.c: testsuite/common/bits-gen$(EXEEXT) testsuite/commo
@SIM_ENABLE_ARCH_aarch64_TRUE@aarch64/%.o: common/%.c ; $(SIM_COMPILE)
@SIM_ENABLE_ARCH_aarch64_TRUE@-@am__include@ aarch64/$(DEPDIR)/*.Po
-@SIM_ENABLE_ARCH_arm_TRUE@$(arm_libsim_a_OBJECTS) $(arm_libsim_a_LIBADD): arm/hw-config.h
-
-@SIM_ENABLE_ARCH_arm_TRUE@arm/modules.o: arm/modules.c
-
-@SIM_ENABLE_ARCH_arm_TRUE@arm/%.o: common/%.c ; $(SIM_COMPILE)
-@SIM_ENABLE_ARCH_arm_TRUE@-@am__include@ arm/$(DEPDIR)/*.Po
@SIM_ENABLE_ARCH_avr_TRUE@$(avr_libsim_a_OBJECTS) $(avr_libsim_a_LIBADD): avr/hw-config.h
@SIM_ENABLE_ARCH_avr_TRUE@avr/modules.o: avr/modules.c
diff --git a/sim/aarch64/aarch64-sim.h b/sim/aarch64/aarch64-sim.h
index f527b62..b13f216 100644
--- a/sim/aarch64/aarch64-sim.h
+++ b/sim/aarch64/aarch64-sim.h
@@ -1,6 +1,6 @@
/* aarch64-sim.h -- Internal aarch64 settings.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
diff --git a/sim/aarch64/cpustate.c b/sim/aarch64/cpustate.c
index 295fe0c..ea9c0a8 100644
--- a/sim/aarch64/cpustate.c
+++ b/sim/aarch64/cpustate.c
@@ -1,6 +1,6 @@
/* cpustate.h -- Prototypes for AArch64 simulator functions.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
diff --git a/sim/aarch64/cpustate.h b/sim/aarch64/cpustate.h
index cd3c6e4..38aaad6 100644
--- a/sim/aarch64/cpustate.h
+++ b/sim/aarch64/cpustate.h
@@ -1,6 +1,6 @@
/* cpustate.h -- Prototypes for AArch64 cpu state functions.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
diff --git a/sim/aarch64/decode.h b/sim/aarch64/decode.h
index 761804c..9c684fc 100644
--- a/sim/aarch64/decode.h
+++ b/sim/aarch64/decode.h
@@ -1,6 +1,6 @@
/* decode.h -- Prototypes for AArch64 simulator decoder functions.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
diff --git a/sim/aarch64/interp.c b/sim/aarch64/interp.c
index e0827b7..64629c0 100644
--- a/sim/aarch64/interp.c
+++ b/sim/aarch64/interp.c
@@ -1,6 +1,6 @@
/* interp.c -- AArch64 sim interface to GDB.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
diff --git a/sim/aarch64/local.mk b/sim/aarch64/local.mk
index a5b48ae..9610648 100644
--- a/sim/aarch64/local.mk
+++ b/sim/aarch64/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 2015-2024 Free Software Foundation, Inc.
+## Copyright (C) 2015-2025 Free Software Foundation, Inc.
## Contributed by Red Hat.
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/aarch64/memory.c b/sim/aarch64/memory.c
index e6ae5f5..7a326a3 100644
--- a/sim/aarch64/memory.c
+++ b/sim/aarch64/memory.c
@@ -1,6 +1,6 @@
/* memory.c -- Memory accessor functions for the AArch64 simulator
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
diff --git a/sim/aarch64/memory.h b/sim/aarch64/memory.h
index e0cb05e..1435dcb 100644
--- a/sim/aarch64/memory.h
+++ b/sim/aarch64/memory.h
@@ -1,6 +1,6 @@
/* memory.h -- Prototypes for AArch64 memory accessor functions.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
diff --git a/sim/aarch64/sim-main.h b/sim/aarch64/sim-main.h
index c5f3528..16d170a 100644
--- a/sim/aarch64/sim-main.h
+++ b/sim/aarch64/sim-main.h
@@ -1,6 +1,6 @@
/* sim-main.h -- Interface with sim/common.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
diff --git a/sim/aarch64/simulator.c b/sim/aarch64/simulator.c
index 1dde0b4..149536c 100644
--- a/sim/aarch64/simulator.c
+++ b/sim/aarch64/simulator.c
@@ -1,6 +1,6 @@
/* simulator.c -- Interface for the AArch64 simulator.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
diff --git a/sim/aarch64/simulator.h b/sim/aarch64/simulator.h
index 621ba0f..9310a1f 100644
--- a/sim/aarch64/simulator.h
+++ b/sim/aarch64/simulator.h
@@ -1,6 +1,6 @@
/* simulator.h -- Prototypes for AArch64 simulator functions.
- Copyright (C) 2015-2024 Free Software Foundation, Inc.
+ Copyright (C) 2015-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
diff --git a/sim/arm/ChangeLog-2021 b/sim/arm/ChangeLog-2021
deleted file mode 100644
index fa1d7ab..0000000
--- a/sim/arm/ChangeLog-2021
+++ /dev/null
@@ -1,2018 +0,0 @@
-2021-06-22 Mike Frysinger <vapier@gentoo.org>
-
- * configure.ac: Removed.
- * aclocal.m4: Removed.
- * configure: Removed.
-
-2021-06-21 Mike Frysinger <vapier@gentoo.org>
-
- * aclocal.m4: Regenerate.
- * configure: Regenerate.
-
-2021-06-21 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2021-06-20 Mike Frysinger <vapier@gentoo.org>
-
- * configure.ac (SIM_AC_COMMON): Delete.
- * aclocal.m4, configure: Regenerate.
-
-2021-06-20 Mike Frysinger <vapier@gentoo.org>
-
- * aclocal.m4: Regenerate.
- * configure: Regenerate.
-
-2021-06-19 Mike Frysinger <vapier@gentoo.org>
-
- * aclocal.m4: Regenerate.
- * configure: Regenerate.
-
-2021-06-19 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2021-06-18 Mike Frysinger <vapier@gentoo.org>
-
- * aclocal.m4, configure: Regenerate.
-
-2021-06-18 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2021-06-17 Mike Frysinger <vapier@gentoo.org>
-
- * configure.ac: Delete SIM_AC_OPTION_ENDIAN call.
- * aclocal.m4, configure: Regenerate.
-
-2021-06-16 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2021-06-16 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
- * config.in: Removed.
-
-2021-06-15 Mike Frysinger <vapier@gentoo.org>
-
- * config.in, configure: Regenerate.
-
-2021-06-14 Mike Frysinger <vapier@gentoo.org>
-
- * configure.ac: Delete call to SIM_AC_OPTION_WARNINGS.
- * configure: Regenerate.
-
-2021-06-12 Mike Frysinger <vapier@gentoo.org>
-
- * configure.ac: Delete call to SIM_AC_OPTION_ALIGNMENT.
- * wrapper.c (sim_open): Set current_alignment.
-
-2021-06-12 Mike Frysinger <vapier@gentoo.org>
-
- * aclocal.m4, config.in, configure: Regenerate.
-
-2021-06-12 Mike Frysinger <vapier@gentoo.org>
-
- * config.in, configure: Regenerate.
-
-2021-05-17 Mike Frysinger <vapier@gentoo.org>
-
- * sim-main.h (SIM_HAVE_COMMON_SIM_STATE): Delete.
-
-2021-05-17 Mike Frysinger <vapier@gentoo.org>
-
- * sim-main.h (SIM_HAVE_COMMON_SIM_STATE): Define.
- (struct sim_state): Delete.
-
-2021-05-16 Mike Frysinger <vapier@gentoo.org>
-
- * armcopro.c, armemu.c, arminit.c, armsupp.c, armvirt.c, iwmmxt.c,
- maverick.c, thumbemu.c: Include defs.h.
- * armos.c, wrapper.c: Replace config.h include with defs.h.
- * armdefs.h: Delete config.h include.
-
-2021-05-16 Mike Frysinger <vapier@gentoo.org>
-
- * config.in, configure: Regenerate.
-
-2021-05-14 Mike Frysinger <vapier@gentoo.org>
-
- * armos.c (ARMul_OSHandleSWI): Delete 2nd arg to time callback.
-
-2021-05-14 Mike Frysinger <vapier@gentoo.org>
-
- * armos.c: Update include path.
- * wrapper.c: Likewise.
-
-2021-05-04 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2021-05-03 Simon Marchi <simon.marchi@polymtl.ca>
-
- * armdefs.h (ARMul_ConsolePrint): Use format attribute.
- * wrapper.c (op_printf): Likewise.
-
-2021-05-01 Mike Frysinger <vapier@gentoo.org>
-
- * config.in, configure: Regenerate.
-
-2021-05-01 Mike Frysinger <vapier@gentoo.org>
-
- * Makefile.in (SIM_OBJS): Change armemu26.o to armemu.o.
- (armemu26.o, armemu32.o): Delete targets.
- * armemu32.c: New file.
-
-2021-04-26 Mike Frysinger <vapier@gentoo.org>
-
- * aclocal.m4, config.in, configure: Regenerate.
-
-2021-04-26 Nick Clifton <nickc@redhat.com>
-
- PR 22790
- * armemu.c (Handle_Store_Double): Allow 4 byte alignment when
- running in v6 mode.
-
-2021-04-22 Tom Tromey <tom@tromey.com>
-
- * configure, config.in: Rebuild.
-
-2021-04-22 Tom Tromey <tom@tromey.com>
-
- * Makefile.in (armemu26.o, armemu32.o): Use COMPILE and
- POSTCOMPILE.
-
-2021-04-22 Tom Tromey <tom@tromey.com>
-
- * configure: Rebuild.
-
-2021-04-21 Mike Frysinger <vapier@gentoo.org>
-
- * aclocal.m4: Regenerate.
-
-2021-04-21 Simon Marchi <simon.marchi@polymtl.ca>
-
- * configure: Regenerate.
-
-2021-04-18 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2021-04-12 Mike Frysinger <vapier@gentoo.org>
-
- * wrapper.c (sim_open): Delete 3rd arg to sim_cpu_alloc_all.
-
-2021-04-02 Mike Frysinger <vapier@gentoo.org>
-
- * aclocal.m4, configure: Regenerate.
-
-2021-02-28 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2021-02-21 Mike Frysinger <vapier@gentoo.org>
-
- * configure.ac (AC_CONFIG_MACRO_DIRS): Replace common with m4.
- * aclocal.m4, configure: Regenerate.
-
-2021-02-13 Mike Frysinger <vapier@gentoo.org>
-
- * configure.ac: Replace sinclude with AC_CONFIG_MACRO_DIRS.
- * aclocal.m4, configure: Regenerate.
-
-2021-02-06 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2021-01-11 Mike Frysinger <vapier@gentoo.org>
-
- * config.in, configure: Regenerate.
-
-2021-01-09 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2021-01-08 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2021-01-04 Mike Frysinger <vapier@gentoo.org>
-
- * wrapper.c: Include stdlib.h.
-
-2021-01-04 Mike Frysinger <vapier@gentoo.org>
-
- * iwmmxt.c: Include stdlib.h.
-
-2021-01-04 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2020-12-15 Nick Clifton <nickc@redhat.com>
-
- * wrapper.c (sim_create_inferior): Accept some more ARM machine numbers.
-
-2020-12-15 Jens Bauer <jens@plustv.dk>
-
- * armemu.c (handle_v6_insn): Add support for SDIV and UDIV.
- * thumbemu.c (handle_T2_insn): Likewise.
-
-2020-10-20 Dr. David Alan Gilbert <dgilbert@redhat.com>
-
- * armos.c (SWIread): Fix printf format.
-
-2020-08-13 Luis Machado <luis.machado@linaro.org>
-
- PR sim/26365
-
- * wrapper.c (sim_target_parse_command_line): Free discarded argv
- entries.
- (sim_open): Use a duplicate of argv instead of the original argv.
-
-2020-01-17 Christian Biesinger <cbiesinger@google.com>
-
- * iwmmxt.c: Fix spelling error (seperate).
-
-2019-12-06 Luis Machado <luis.machado@linaro.org>
-
- * armemu.c (isize): Move this declaration ...
- * arminit.c (isize): ... here.
- * maverick.h: New file.
- * wrapper.c: Include "maverick.h".
- (<struct maverick_regs>, <union maverick_acc_regs>): Remove and update
- comment.
- (sim_create_inferior): Cast variables to proper type.
- * maverick.c: Include "maverick.h".
- (<struct maverick_regs>, <union maverick_acc_regs>): Move
- declarations to maverick.h and update comment.
- (DSPsc, DSPacc, DSPregs): Adjust comment.
-
-2018-01-02 Nick Clifton <nickc@redhat.com>
-
- PR 22663
- * maverick.c (DSPCDP4): Add missing parameter to debug print
- statement.
-
-2017-09-21 Yao Qi <yao.qi@linaro.org>
-
- * wrapper.c (print_insn): Use disassembler instead of
- print_insn_little_arm.
-
-2017-09-06 John Baldwin <jhb@FreeBSD.org>
-
- * configure: Regenerate.
-
-2017-02-13 Mike Frysinger <vapier@gentoo.org>
-
- * armos.c: Include libiberty.h.
- (SWIopen): Use ARRAY_SIZE.
- * armsupp.c: Include libiberty.h.
- (ModeToBank): Use ARRAY_SIZE.
- * wrapper.c (sim_target_parse_command_line): Likewise.
-
-2016-07-14 Nick Clifton <nickc@redhat.com>
-
- * armemu.c (Multiply64): Only issue error messages about invalid
- arguments if debugging is enabled.
- * armos.c (ARMul_OSHandleSWI): Ignore invalid flags.
-
-2016-01-10 Mike Frysinger <vapier@gentoo.org>
-
- * config.in, configure: Regenerate.
-
-2016-01-10 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2016-01-10 Mike Frysinger <vapier@gentoo.org>
-
- * configure.ac (SIM_AC_OPTION_ENVIRONMENT): Delete call.
- * configure: Regenerate.
-
-2016-01-10 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2016-01-10 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2016-01-10 Mike Frysinger <vapier@gentoo.org>
-
- * configure.ac (SIM_AC_OPTION_INLINE): Delete call.
- * configure: Regenerate.
-
-2016-01-10 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2016-01-10 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2016-01-09 Mike Frysinger <vapier@gentoo.org>
-
- * config.in, configure: Regenerate.
-
-2016-01-06 Mike Frysinger <vapier@gentoo.org>
-
- * wrapper.c (sim_create_inferior): Mark argv and env const.
- (sim_open): Mark argv const.
-
-2016-01-04 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2016-01-03 Mike Frysinger <vapier@gentoo.org>
-
- * wrapper.c (sim_open): Update sim_parse_args comment.
-
-2016-01-03 Mike Frysinger <vapier@gentoo.org>
-
- * wrapper.c (sim_target_parse_arg_array): Replace for loop with
- a call to countargv.
-
-2016-01-03 Mike Frysinger <vapier@gentoo.org>
-
- * configure.ac (SIM_AC_OPTION_HOSTENDIAN): Delete.
- * configure: Regenerate.
-
-2016-01-02 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
- * wrapper.c (init): Change BIG_ENDIAN to BFD_ENDIAN_BIG.
-
-2015-12-30 Mike Frysinger <vapier@gentoo.org>
-
- * wrapper.c (sim_store_register): Rename to ...
- (arm_reg_store): ... this.
- (sim_fetch_register): Rename to ...
- (arm_reg_fetch): ... this.
- (sim_open): Call CPU_REG_FETCH/CPU_REG_STORE.
-
-2015-12-27 Mike Frysinger <vapier@gentoo.org>
-
- * Makefile.in (SIM_OBJS): Delete sim-hload.o.
-
-2015-12-26 Mike Frysinger <vapier@gentoo.org>
-
- * config.in, configure: Regenerate.
-
-2015-12-25 Mike Frysinger <vapier@gentoo.org>
-
- * Makefile.in (SIM_OBJS): Delete bag.o.
- * armdefs.h (struct ARMul_State): Delete ErrorCode.
- (ResetPin, FIQPin, IRQPin, AbortPin, TransPin, BigEndPin, Prog32Pin,
- Data32Pin, LateAbortPin, ARMul_OSExit, ARMul_OSLastErrorP,
- ARMul_Debug, ARMul_OSException,rdi_log, SpinCursor, HOURGLASS,
- HOURGLASS_RATE): Delete.
- * armemu.c (ARMul_Emulate26): Delete ARMul_Debug call.
- * arminit.c (ARMul_Reset): Do not set state->ErrorCode.
- (ARMul_Abort): Delete ARMul_OSException call.
- * armopts.h: Delete file.
- * armos.c (isatty_, ARMul_OSExit, ARMul_OSException,
- ARMul_OSLastErrorP, ARMul_Debug, BUFFERSIZE, UNIQUETEMPS, NOOP,
- BINARY, READOP, WRITEOP, FIXCRLF): Delete.
- (struct OSblock): Delete Time0, ErrorP, FileTable, FileFlags, and
- tempnames.
- (ARMul_OSInit): Do not set OSptr->ErrorP, OSptr->FileTable, or
- OSptr->tempnames.
- * armrdi.c: Delete file.
- * armvirt.c: Delete armopts.h include.
- (ARMul_LoadInstrS): Delete HOURGLASS logic.
- * bag.c, bag.h, communicate.c, communicate.h, dbg_conf.h, dbg_cp.h,
- dbg_hif.h: Delete files.
- * dbg_rdi.h (RDP_*, RDI*): Delete defines.
- (PointHandle, ThreadHandle, Dbg_ConfigBlock, Dbg_HostosInterface,
- Dbg_MCState, getbufferproc): Delete.
- (rdi_*): Delete Functions.
- (RDI_ConfigAspect, RDI_ConfigMatchType, RDI_NameList): Delete
- (struct RDIProcVec): Delete.
- * gdbhost.c, gdbhost.h, kid.c, main.c, parent.c: Delete files.
- * wrapper.c (ARMul_Debug): Delete.
-
-2015-12-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
-
- * thumbemu.c (handle_T2_insn): Fix left shift of negative value.
- * armemu.c (handle_v6_insn): Likewise.
-
-2015-11-14 Mike Frysinger <vapier@gentoo.org>
-
- * wrapper.c (sim_close): Delete.
-
-2015-07-14 Nick Clifton <nickc@redhat.com>
-
- * armcopro.c: Remove extraneous whitespace.
- * armdefs.h: Likewise.
- * armfpe.h: Likewise.
- * arminit.c: Likewise.
- * armopts.h: Likewise.
- * armos.c: Likewise.
- * armos.h: Likewise.
- * armrdi.c: Likewise.
- * armsupp.c: Likewise.
- * armvirt.c: Likewise.
- * bag.c: Likewise.
- * bag.h: Likewise.
- * communicate.c: Likewise.
- * communicate.h: Likewise.
- * dbg_conf.h: Likewise.
- * dbg_cp.h: Likewise.
- * dbg_hif.h: Likewise.
- * dbg_rdi.h: Likewise.
- * gdbhost.c: Likewise.
- * gdbhost.h: Likewise.
- * iwmmxt.c: Likewise.
- * iwmmxt.h: Likewise.
- * kid.c: Likewise.
- * main.c: Likewise.
- * maverick.c: Likewise.
- * parent.c: Likewise.
- * thumbemu.c: Likewise.
- * wrapper.c: Likewise.
-
-2015-07-02 Nick Clifton <nickc@redhat.com>
-
- * Makefile.in (SIM_EXTRA_CFLAGS): Revert previous delta.
- (SIM_EXTRA_LIBS): Add -lm.
-
-2015-06-28 Nick Clifton <nickc@redhat.com>
-
- * Makefile.in (SIM_EXTRA_CFLAGS): Add -lm.
- * armdefs.h (ARMdval, ARMfval): New types.
- (ARM_VFP_reg): New union.
- (struct ARMul_State): Add VFP_Reg and FPSCR fields.
- (VFP_fval, VFP_uword, VFP_sword, VFP_dval, VFP_dword): Accessor
- macros for the new VFP_Reg field.
- * armemu.c (handle_v6_insn): Add code to handle MOVW, MOVT,
- QADD16, QASX, QSAX, QSUB16, QADD8, QSUB8, UADD16, USUB16, UADD8,
- USUB8, SEL, REV, REV16, RBIT, BFC, BFI, SBFX and UBFX
- instructions.
- (handle_VFP_move): New function.
- (ARMul_Emulate16): Add checks for newly supported v6
- instructions. Add support for VMRS, VMOV and MRC instructions.
- (Multiply64): Allow nRdHi == nRm and/or nRdLo == nRm when
- operating in v6 mode.
- * armemu.h (t_resolved): Define.
- * armsupp.c: Include math.h.
- (handle_VFP_xfer): New function. Handles VMOV, VSTM, VSTR, VPUSH,
- VSTM, VLDM and VPOP instructions.
- (ARMul_LDC): Test for co-processor 10 or 11 and pass call to the
- new handle_VFP_xfer function.
- (ARMul_STC): Likewise.
- (handle_VFP_op): New function. Handles VMLA, VMLS, VNMLA, VNMLS,
- VNMUL, VMUL, VADD, VSUB, VDIV, VMOV, VABS, VNEG, VSQRT, VCMP,
- VCMPE and VCVT instructions.
- (ARMul_CDP): Test for co-processor 10 or 11 and pass call to the
- new handle_VFP_op function.
- * thumbemu.c (tBIT, tBITS, ntBIT, ntBITS): New macros.
- (test_cond): New function. Tests a condition and returns non-zero
- if the condition has been met.
- (handle_IT_block): New function.
- (in_IT_block): New function.
- (IT_block_allow): New function.
- (ThumbExpandImm): New function.
- (handle_T2_insn): New function. Handles T2 thumb instructions.
- (handle_v6_thumb_insn): Add next_instr and pc parameters.
- (ARMul_ThumbDecode): Add support for IT blocks. Add support for
- v6 instructions.
- * wrapper.c (sim_create_inferior): Detect a thumb address and call
- SETT appropriately.
-
-2015-06-23 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2015-06-23 Mike Frysinger <vapier@gentoo.org>
-
- * armdefs.h: Always include stdint.h.
- [!__STDC__]: Delete.
- [!HAVE_STDINT_H]: Delete.
- * dbg_hif.h [!__STDC__]: Delete.
-
-2015-06-12 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2015-06-12 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2015-04-18 Mike Frysinger <vapier@gentoo.org>
-
- * sim-main.h (SIM_CPU): Delete.
-
-2015-04-18 Mike Frysinger <vapier@gentoo.org>
-
- * sim-main.h (sim_cia): Delete.
-
-2015-04-17 Mike Frysinger <vapier@gentoo.org>
-
- * sim-main.h (CIA_GET, CIA_SET): Delete.
-
-2015-04-17 Mike Frysinger <vapier@gentoo.org>
-
- * wrapper.c (arm_pc_get, arm_pc_set): New functions.
- (sim_open): Declare new local var i. Call CPU_PC_FETCH &
- CPU_PC_STORE for all cpus.
-
-2015-04-15 Mike Frysinger <vapier@gentoo.org>
-
- * Makefile.in (SIM_OBJS): Delete sim-cpu.o.
- * sim-main.h (STATE_CPU): Delete.
-
-2015-04-13 Mike Frysinger <vapier@gentoo.org>
-
- * configure: Regenerate.
-
-2015-04-12 Mike Frysinger <vapier@gentoo.org>
-
- * Makefile.in (SIM_OBJS): Move wrapper.o to the start of the list.
-
-2015-04-06 Mike Frysinger <vapier@gentoo.org>
-
- * Makefile.in (SIM_OBJS): Delete sim-engine.o.
-
-2015-04-01 Mike Frysinger <vapier@gentoo.org>
-
- * Makefile.in (armos.o, armcopro.o, maverick.o, iwmmxt.o, arminit.o,
- armrdi.o, armsupp.o, thumbemu.o, bag.o, wrapper.o): Delete rules.
- * tconfig.h: Delete file.
-
-2015-03-31 Mike Frysinger <vapier@gentoo.org>
-
- * config.in, configure: Regenerate.
-
-2015-03-30 Mike Frysinger <vapier@gentoo.org>
-
- * Makefile.in (SIM_RUN_OBJS): Delete.
- (SIM_EXTRA_CFLAGS): Delete -DSIM_TARGET_SWITCHES and
- -DSIM_USE_DEPRECATED_RUN_FRONTEND.
- (SIM_OBJS): Change to $(SIM_NEW_COMMON_OBJS).
- * sim-main.h: New file.
- * wrapper.c: Delete armdefs.h, sim-utils.h, and run-sim.h includes.
- Add sim-main.h and sim-options.h includes.
- (sim_callback, mem_size, trace): Add TODO comments.
- (state): Delete static and add TODO comment.
- (sim_kind, myname, big_endian): Delete.
- (init): Change big_endian to CURRENT_TARGET_BYTE_ORDER check.
- (sim_size, sim_trace, sim_info, sim_target_display_usage, sim_load,
- sim_do_command, sim_set_callbacks, sim_complete_command): Delete.
- (sim_target_parse_command_line): Mark static.
- (free_state): New function.
- (sim_open): Rewrite to use new common logic.
- (sim_close): Delete body.
-
-2015-03-30 Mike Frysinger <vapier@gentoo.org>
-
- * Makefile.in (SIM_EXTRA_CFLAGS): Delete -DNEED_UI_LOOP_HOOK.
- * interp.c [NEED_UI_LOOP_HOOK] (UI_LOOP_POLL_INTERVAL,
- ui_loop_hook_counter, deprecated_ui_loop_hook): Delete.
- (sim_resume) [NEED_UI_LOOP_HOOK]: Delete ui code.
-
-2015-03-30 Mike Frysinger <vapier@gentoo.org>
-
- * armemu.c [MODE32] (handle_v6_insn): Move definition.
- (ARMul_Emulate26): Initialize do_int after label target.
- * armemu.h (UNDEF_Test, UNDEF_Shift, UNDEF_MSRPC, UNDEF_MRSPC,
- UNDEF_MULPCDest, UNDEF_MULDestEQOp1, UNDEF_LSRBPC,
- UNDEF_LSRBaseEQOffWb, UNDEF_LSRBaseEQDestWb, UNDEF_LSRPCBaseWb,
- UNDEF_LSRPCOffWb, UNDEF_LSMNoRegs, UNDEF_LSMPCBase,
- UNDEF_LSMUserBankWb, UNDEF_LSMBaseInListWb, UNDEF_SWPPC,
- UNDEF_CoProHS, UNDEF_MCRPC, UNDEF_LSCPCBaseWb,
- UNDEF_UndefNotBounced, UNDEF_ShortInt, UNDEF_IllegalMode,
- UNDEF_Prog32SigChange, UNDEF_Data32SigChange): Define to while(0).
- * armsupp.c (ARMul_Align): Convert old style prototype.
- * bag.c (addtolist, killwholelist): Mark static.
- (BAG_newbag): Convert old style prototype.
- * maverick.c (mv_compute_host_endianness): Delete.
- * wrapper.c (verbosity, sim_set_verbose): Delete.
- (init): Set state->verbose to 0.
-
-2015-03-30 Mike Frysinger <vapier@gentoo.org>
-
- * configure.ac: Call SIM_AC_OPTION_ENDIAN, SIM_AC_OPTION_ALIGNMENT,
- SIM_AC_OPTION_HOSTENDIAN, SIM_AC_OPTION_ENVIRONMENT,
- SIM_AC_OPTION_INLINE, and SIM_AC_OPTION_WARNINGS.
- * config.in, configure: Regenerate.
-
-2015-03-30 Mike Frysinger <vapier@gentoo.org>
-
- * Makefile.in (COPRO): Delete.
- (SIM_OBJS): Expand COPRO.
- * configure.ac: Deletd stdint.h check.
- (COPRO): Delete.
- * configure: Regenerate.
-
-2015-03-16 Mike Frysinger <vapier@gentoo.org>
-
- * config.in, configure: Regenerate.
- * tconfig.in: Rename file ...
- * tconfig.h: ... here.
-
-2015-03-14 Mike Frysinger <vapier@gentoo.org>
-
- * Makefile.in (SIM_EXTRA_CFLAGS): Add
- -DSIM_USE_DEPRECATED_RUN_FRONTEND.
- (SIM_RUN_OBJS): Set to run.o.
-
-2015-03-14 Mike Frysinger <vapier@gentoo.org>
-
- * configure.ac (AC_CHECK_HEADERS): Delete unistd.h.
- * aclocal.m4, configure: Regenerate.
-
-2014-08-19 Alan Modra <amodra@gmail.com>
-
- * configure: Regenerate.
-
-2014-08-15 Roland McGrath <mcgrathr@google.com>
-
- * configure: Regenerate.
- * config.in: Regenerate.
-
-2014-03-18 Nick Clifton <nickc@redhat.com>
-
- * wrapper.c: Convert function declarations to ISO C format.
- (sim_open): Delete code for handling t,d and z command line
- options.
-
-2014-03-14 Nick Clifton <nickc@redhat.com>
-
- * wrapper.c (op_print): New function.
- (sim_dis_read): New function.
- (print_insn): New function - disassembles the given instruction.
- (sim_trace): Note that tracing is now allowed.
- (sim_create_inferior): Default to emulating v6.
- Initialise the disassembler machinery.
- (sim_target_parse_command_line): Add support for -t -d and -z
- options.
- (sim_target_display_usage): Note existence of -d and -z options.
- (sim_open): Parse -t -d and -z options.
- * armemu.h: Add exports of trace, disas and trace_funcs.
- Add prototype for print_insn.
- * armemu.c (ARMul_Emulate26): Add tracing code.
- Delete unused variables.
- * thumbemu (handle_v6_thumb_insn): Delete unused variable Rd.
- Move Rm variable into switch cases.
- Add tracing code.
-
- * armcopro.c (XScale_cp15_init): Add a return value.
- (XScale_cp13_init): Likewise.
- (XScale_cp14_init): Likewise.
- (XScale_cp15_LDC): Delete unused function.
- (XScale_cp15_STC): Likewise.
- * maverick.c: Delete comment inside comment.
- (DSPInit): Delete unused function.
- (DSPMCR4): Fix compile time warning about missing parenthesis.
- (DSPMCR5): Likewise.
- (DSPCDP6): Delete unused variable opcode2.
-
-2014-03-14 David McQuillan <dmcq@tao-group.com>
-
- PR sim/8388
- * armemu.c (WriteR15Load): New function. Determines if the state
- can be changed upon a write to R15.
- (LoadMult): Use WriteR15Load.
- * armemu.h (WRITEDESTB): Use WriteR15Load.
-
-2014-03-10 Mike Frysinger <vapier@gentoo.org>
-
- * wrapper.c (sim_do_command): Add const to cmd.
-
-2014-03-05 Mike Frysinger <vapier@gentoo.org>
-
- * wrapper.c (sim_load): Add const to prog.
-
-2013-09-23 Alan Modra <amodra@gmail.com>
-
- * configure: Regenerate.
-
-2013-06-03 Mike Frysinger <vapier@gentoo.org>
-
- * aclocal.m4, configure: Regenerate.
-
-2013-05-07 Jayant Sonar <jayant.sonar@kpitcummins.com>
- Kaushik Phatak <Kaushik.Phatak@kpitcummins.com>
-
- * armemu.c (ARMul_Emulate32): Emulate instructions MOVW and MOVT.
-
-2012-12-19 Joel Brobecker <brobecker@adacore.com>
-
- * COPYING: Update to GPL version 3.
-
-2012-09-03 Nick Clifton <nickc@redhat.com>
-
- PR sim/14540
- * armsupp.c (ARMul_MRC): Return 0 if access to the MRC instruction
- is denied.
-
-2012-08-01 Kevin Buettner <kevinb@redhat.com>
-
- * wrapper.c (libiberty.h): Include.
- (sim_store_register, sim_fetch_register): On success, return
- length, instead of -1.
-
-2012-06-15 Joel Brobecker <brobecker@adacore.com>
-
- * config.in, configure: Regenerate.
-
-2012-06-13 Nick Clifton <nickc@redhat.com>
-
- * wrapper.c (sim_create_inferior): Treat WMMX2 binaries as iWMMXt
- binaries (for now).
-
-2012-05-24 Pedro Alves <palves@redhat.com>
-
- PR gdb/7205
-
- Replace TARGET_SIGNAL_ with GDB_SIGNAL_ throughout.
-
-2012-05-18 Nick Clifton <nickc@redhat.com>
-
- PR 14072
- * wrapper.c: Include config.h before system header files.
-
-2012-03-24 Mike Frysinger <vapier@gentoo.org>
-
- * aclocal.m4, config.in, configure: Regenerate.
-
-2011-12-03 Mike Frysinger <vapier@gentoo.org>
-
- * aclocal.m4: New file.
- * configure: Regenerate.
-
-2011-10-17 Mike Frysinger <vapier@gentoo.org>
-
- * configure.ac: Change include to common/acinclude.m4.
-
-2011-10-17 Mike Frysinger <vapier@gentoo.org>
-
- * configure.ac: Change AC_PREREQ to 2.64. Delete AC_CONFIG_HEADER
- call. Replace common.m4 include with SIM_AC_COMMON.
- * configure: Regenerate.
-
-2011-07-01 Nick Clifton <nickc@redhat.com>
-
- PR sim/12737
- * iwmmxt.c (WCMPGT): Sign extend 32-bit values before performing a
- signed compare.
- (WMAC): Extend computed result before adding to result register.
- (WRSA): Sign extend 32-bit values before shifting.
-
-2011-04-16 Mike Frysinger <vapier@gentoo.org>
-
- * wrapper.c (sim_complete_command): New stub function.
-
-2010-05-26 Ozkan Sezer <sezeroz@gmail.com>
-
- * communicate.c (MYread_char): Check error return from accept() call
- by its equality to -1 not by it being negative.
- (MYread_charwait): Likewise.
- * main.c (main): Likewise for both socket() and accept() calls.
-
-2010-04-14 Mike Frysinger <vapier@gentoo.org>
-
- * wrapper.c (sim_write): Add const to buffer arg.
-
-2010-01-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * configure: Regenerate.
-
-2009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
-
- * config.in: Regenerate.
- * configure: Likewise.
-
- * configure: Regenerate.
-
-2008-11-24 Joel Sherrill <joel.sherrill@oarcorp.com>
-
- * arminit.c, iwmmxt.c: Include <string.h> to
- eliminate warning.
-2008-07-11 Hans-Peter Nilsson <hp@axis.com>
-
- * configure: Regenerate to track ../common/common.m4 changes.
- * config.in: Ditto.
-
-2008-06-06 Vladimir Prus <vladimir@codesourcery.com>
- Daniel Jacobowitz <dan@codesourcery.com>
- Joseph Myers <joseph@codesourcery.com>
-
- * configure: Regenerate.
- * wrapper.c (sim_target_display_usage): Add help parameter.
-
-2007-02-27 Mark Mitchell <mark@codesourcery.com>
-
- * armos.c (SWIflen): Do not treate file descriptor zero as
- special.
-
-2007-02-15 Nick Clifton <nickc@redhat.com>
-
- * armemu.c (handle_v6_insn): Fix typo in sign extension test of
- the sext and sxtah instructions.
-
-2007-02-08 Daniel Jacobowitz <dan@codesourcery.com>
-
- Reported by timeless@gmail.com:
- * wrapper.c (sim_target_parse_arg_array): Do not return void value.
-
-2006-12-21 Hans-Peter Nilsson <hp@axis.com>
-
- * acconfig.h: Remove.
- * config.in: Regenerate.
-
-2006-06-13 Richard Earnshaw <rearnsha@arm.com>
-
- * configure: Regenerated.
-
-2006-06-05 Daniel Jacobowitz <dan@codesourcery.com>
-
- * configure: Regenerated.
-
-2006-05-31 Daniel Jacobowitz <dan@codesourcery.com>
-
- * configure: Regenerated.
-
-2006-03-07 Paul Brook <paul@codesourcery.com>
-
- * elfos.c (ARMul_OSHandleSWI): Call correct function for IsTTY.
-
-2006-02-01 Shaun Jackman <sjackman@gmail.com>
-
- * armos.c (ARMul_OSHandleSWI): Handle the RedBoot system
- call meminfo. Return ENOSYS for unhandled RedBoot syscalls.
-
-2005-11-23 Mark Mitchell <mark@codesourcery.com>
-
- * wrapper.c (gdb/signals.h): Include it.
- (SIGTRAP): Don't define.
- (SIGBUS): Likewise.
- (sim_stop_reason): Use TARGET_SIGNAL_* instead of SIG*.
-
-2005-11-16 Shaun Jackman <sjackman@gmail.com>
-
- * armos.c: Include limits.h
- (unlink): Remove this macro. It is unused in this file and
- conflicts with sim_callback->unlink.
- (PATH_MAX): Define as 1024 if not already defined.
- (ReadFileName): New function.
- (SWIopen): Fix a potential buffer overflow.
- (SWIremove): New function.
- (SWIrename): Ditto.
- (ARMul_OSHandleSWI): Handle the RDP calls SWI_IsTTY,
- SWI_Remove, and SWI_Rename, as well as the RDI calls
- AngelSWI_Reason_IsTTY, AngelSWI_Reason_Remove, and
- AngelSWI_Reason_Rename.
-
-2005-09-19 Paul Brook <paul@codesourcery.com>
-
- * armdefs.h: Define ARMsword and ARMsdword. Use stdint.h when
- available.
- * armemu.c: Use them.
- * armvirt.c (ARMul_MemoryInit): Use correct type for size.
- * configure.ac: Check for stdint.h.
- * config.in: Regenerate.
- * configure: Regenerate.
-
-2005-05-24 Nick Clifton <nickc@redhat.com>
-
- * thumbemu.c (handle_v6_thumb_insn): New function.
- (ARMul_ThumbDecode): Call handle_v6_thumb_insn() when an undefined
- instruction binary is encountered.
-
-2005-05-12 Nick Clifton <nickc@redhat.com>
-
- * Update the address and phone number of the FSF organization in
- the GPL notices in the following files:
- COPYING, Makefile.in, armcopro.c, armdefs.h, armemu.c,
- armemu.h, armfpe.h, arminit.c, armopts.h, armos.c, armos.h,
- armrdi.c, armsupp.c, armvirt.c, bag.c, bag.h, communicate.c,
- communicate.h, dbg_conf.h, dbg_cp.h, dbg_hif.h, dbg_rdi.h,
- gdbhost.c, gdbhost.h, iwmmxt.c, iwmmxt.h, kid.c, main.c,
- maverick.c, parent.c, thumbemu.c, wrapper.c
-
-2005-04-20 Nick Clifton <nickc@redhat.com>
-
- * armemu.c (handle_v6_insn): New function - emulate a few of the
- v6 instructions - the ones now generated by GCC.
- (ARMulEmulate32): Call handle_v6_insn when a possible v6 insn is
- found.
- * armdefs.h (struct ARMul_State): Add new field: is_v6.
- (ARM_v6_Prop): Define.
- * arminit.c (ARMul_NewState): Initialise the v6 flag.
- (ARMul_SelectProcessor): Determine if the v6 flag should be
- set.
- * wrapper.c (sim_create_inferior): For unknown architectures,
- default to allowing the v6 instructions.
-
-2005-04-18 Nick Clifton <nickc@redhat.com>
-
- * iwmmxt.c (WMAC, WMADD): Move casts from the LHS of an assignment
- operator to the RHS.
- (WSLL, WSRA, WSRL, WUNPCKEH, WUNPACKEL): Use ULL suffix to
- indicate an unsigned long long constant.
-
-2005-03-23 Mark Kettenis <kettenis@gnu.org>
-
- * configure: Regenerate.
-
-2005-01-14 Andrew Cagney <cagney@gnu.org>
-
- * configure.ac: Sinclude aclocal.m4 before common.m4. Add
- explicit call to AC_CONFIG_HEADER.
- * configure: Regenerate.
-
-2005-01-12 Andrew Cagney <cagney@gnu.org>
-
- * configure.ac: Update to use ../common/common.m4.
- * configure: Re-generate.
-
-2005-01-11 Andrew Cagney <cagney@localhost.localdomain>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-2005-01-07 Andrew Cagney <cagney@gnu.org>
-
- * configure.ac: Rename configure.in, require autoconf 2.59.
- * configure: Re-generate.
-
-2004-12-08 Hans-Peter Nilsson <hp@axis.com>
-
- * configure: Regenerate for ../common/aclocal.m4 update.
-
-2004-06-28 Andrew Cagney <cagney@gnu.org>
-
- * armemu.c: Rename ui_loop_hook to deprecated_ui_loop_hook.
-
-2003-12-29 Mark Mitchell <mark@codesourcery.com>
-
- * armos.c (fcntl.h): Do not include it.
- (O_RDONLY): Do not define.
- (O_WRONLY): Likewise.
- (O_RDWR): Likewise.
- (targ-vals.h): Include it.
- (translate_open_mode): Use TARGET_O_* instead of O_*.
- (SWIopen): Likewise.
- * Makefile.in (armos.o): Depend on targ-vals.h.
-
-2003-04-13 Nick Clifton <nickc@redhat.com>
-
- * armvirt.c (GetWord): Only call XScale_check_memacc if in XScale
- mode.
- (PutWord): Likewise.
-
-2003-03-30 Nick Clifton <nickc@redhat.com>
-
- * configure.in (CON_FLAGS): Remove.
- (COPRO): Unconditionally include iwmmxt.o.
- * configure: Regenerate.
- * Makefile.in (CON_FLAGS): Remove.
- * armcopro.c: Remove use of __IWMMXT__ flag.
- * wrapper.c: Likewise.
- * armemu.c: Likewise.
- Add explanatory comment for suppressed code.
-
-2003-03-27 Nick Clifton <nickc@redhat.com>
-
- * armos.c (ARMul_OsHandleSWI): Catch SWIs for unhandled vectors.
-
-2003-03-27 Nick Clifton <nickc@redhat.com>
-
- * configure.in: (CON_FLAGS): Define and intialise.
- (COPRO): Add iwmmxt.o if configuring for XScale.
- * configure: Regenerate.
- * Makefile.in (iwmmxt.o): Add rule to build.
- (COM_FLAGS): Define.
- (ALL_FLAGS): Add CON_FLAGS.
- * armcopro.c (ARMul_CoProInit): Initialise iWMMXt coprocessors.
- * armdefs.h (struct ARMul_State): Add 'is_iWMMXt' field.
- (ARM_iWMMXt_Prop): Define.
- * armemu.c (ARMul_Emulate16): Intercept iWMMXt instructions and
- pass to coprocessor.
- * arminit.c (ARMul_NewState): Initialise 'is_iWMMXt'.
- (ARMul_Abort): Catch branches through uninitialised vectors.
- * armos.c (softevtorcode): Update comment.
- (ARMul_OsInit): Use ARMUndefinedInstrV.
- * wrapper.c (sim_create_inferior): Handle iWMMXt processor type.
- (sim_store_register): Handle iWMMXt registers.
- (sim_fetch_register): Handle iWMMXt registers.
- * iwmmxt.h: New file. Exported iWMMXt coprocessor emulator
- functions.
- * iwmmxt.c: New file: iWMMXt emulator.
-
-2003-03-20 Nick Clifton <nickc@redhat.com>
-
- * Contribute support for Cirrus Maverick ARM co-processor,
- written by Aldy Hernandez <aldyh@redhat.com> and
- Andrew Cagney <cagney@redhat.com>:
-
- * maverick.c: New file: Support for Maverick floating point
- co-processor.
- * Makefile.in: Add maverick.o target.
- * configure.in (COPRO): Add maverick.o.
- * configure: Regenerate.
- * armcopro.c (ARMul_CoProInit): Only initialise co-processors
- available on target processor. Add code to initialse Maverick
- co-processor support code.
- * armdefs.h (ARMul_state): Add is_ep9312 field.
- (ARM_ep9312_Prop): Define.
- * armemu.h: Add prototypes for Maverick co-processor
- functions.
- * arminit.c (ARMul_SelectProcessor): Initialise the
- co-processor support once the chip has been selected.
- * wrapper.c: Add support for Maverick co-processor.
- (init): Do not call ARMul_CoProInit. Delays this until the
- chip has been selected.
-
-2003-03-02 Nick Clifton <nickc@redhat.com>
-
- * armos.c (SWIWrite0): Catch big-endian bug when printing
- characters.
-
-2003-02-27 Andrew Cagney <cagney@redhat.com>
-
- * wrapper.c (sim_create_inferior, sim_open): Rename _bfd to bfd.
-
-2003-01-10 Ben Elliston <bje@redhat.com>
-
- * README.Cygnus: Rename from this ..
- * README: .. to this.
-
-2002-09-27 Andrew Cagney <ac131313@redhat.com>
-
- * wrapper.c (sim_open): Add support for -m<mem-size>.
- (mem_size): Reduce to 2MB.
- Fix PR gdb/433.
-
-2002-08-15 Nick Clifton <nickc@redhat.com>
-
- * armos.c (ARMul_OSHandleSWI): Catch and ignore SWIs of -1, they
- can be caused by an interrupted system call being resumed by GDB.
-
-2002-07-05 Nick Clifton <nickc@cambridge.redhat.com>
-
- * armemu.c (ARMul_Emulate32): Add more tests for valid MIA, MIAPH
- and MIAxy instructions.
-
-2002-06-21 Nick Clifton <nickc@cambridge.redhat.com>
-
- * armos.h (ADP_Stopped_RunTimeError): Set correct value.
-
-2002-06-16 Andrew Cagney <ac131313@redhat.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-2002-06-12 Andrew Cagney <ac131313@redhat.com>
-
- * Makefile.in: Update copyright.
- (wrapper.o): Specify dependencies.
- * wrapper.c: Include "gdb/sim-arm.h".
- (sim_store_register, sim_fetch_register): Rewrite using `enum
- arm_sim_regs' and a switch.
-
-2002-06-09 Andrew Cagney <cagney@redhat.com>
-
- * wrapper.c: Include "gdb/callback.h" and "gdb/remote-sim.h".
- * armos.c: Include "gdb/callback.h".
-
-2002-05-29 Nick Clifton <nickc@cambridge.redhat.com>
-
- * armcopro.c (XScale_check_memacc): Set the FSR and FAR registers
- if a Data Abort is detected.
-
-2002-05-27 Nick Clifton <nickc@cambridge.redhat.com>
-
- * armvirt.c (GetWord): Only perform access checks if 'check'
- is set.
- (PutWord): Likewise.
- * wrapper.c (sim_create_inferior): Report unknown machine
- numbers.
- * thumbemu.c (ARMul_ThumbDecode, Case 31): Do not set LR to pc +
- 2, it has already been advanced.
-
-2002-05-23 Nick Clifton <nickc@cambridge.redhat.com>
-
- * thumbemu.c (ARMul_ThumbDecode): When decoding a BLX(1)
- instruction do not add in the second bit of the base address -
- this has already been accounted for.
-
-2002-05-21 Nick Clifton <nickc@cambridge.redhat.com>
-
- * armcopro.c (check_cp13_access): Allow access to register 1 when
- CRm is 1.
- (write_cp13_reg): Allow bit 0 of reg 1 of CRm 1 to be written to.
-
-2002-05-17 Nick Clifton <nickc@cambridge.redhat.com>
-
- * Makefile.in (SIM_TARGET_SWITCHES): Define.
- * armos.c (swi_mask): Define. Initialise to supporting all
- SWI emulations.
- (ARMul_OSInit): For XScale targets, only support the ANGEL
- SWI interface. (This is at the request if Intel).
- (ARMul_OSHandleSWI): Examine swi_mask to see if a particular
- SWI call should be emulated.
- Do not fall through from AngelSWI_Reason_WriteC.
- Propagate exit code from RedBoot Exit SWI.
- * rdi-dgb.h (swi_mask): Prototype.
- (SWI_MASK_DEMON, SWI_MASK_ANGEL, SWI_MASK_REDBOOT): Define.
- * wrapper.c (sim_target_parse_command_line): New function.
- Look for and handle --swi-support switch.
- (sim_target_parse_arg_array): New function. Process an argv
- array for parsing by sim_target_parse_command_line.
- (sim_target_display_usage): New function. Describe syntax of
- --swi-suppoort switch.
- (sim_open): Add call to sim_target_parse_arg_array).
-
-2002-05-09 Nick Clifton <nickc@cambridge.redhat.com>
-
- * armos.c (ARMul_OSHandleSWI): Support the RedBoot SWI in ARM
- mode and some of its system calls.
-
-2002-03-17 Anthony Green <green@redhat.com>
-
- * wrapper.c (mem_size): Increase the default target memory to 8MB.
-
-2002-02-21 Keith Seitz <keiths@redhat.com>
-
- * armos.c (SWIWrite0): Use generic host_callback mechanism
- for supported OS functions "open", "close", "write", etc.
- (SWIopen): Likewise.
- (SWIread): Likewise.
- (SWIwrite): Likewise.
- (SWIflen): Likewise.
- (ARMul_OSHandleSWI): Likewise.
-
-2002-02-05 Nick Clifton <nickc@cambridge.redhat.com>
-
- * wrapper.c (sim_create_inferior): Modify previous patch so that
- it is only triggered for COFF format executables.
-
-2002-02-04 Nick Clifton <nickc@cambridge.redhat.com>
-
- * wrapper.c (sin_create_inferior): If a v5 architecture is
- detected, assume it might be an XScale binary, since there is no
- way to distinguish between the two in the COFF file format.
-
-2002-01-10 Nick Clifton <nickc@cambridge.redhat.com>
-
- * arminit.c (ARMul_Abort): Fix parameters passed to CPRead[13].
- * armemu.c (ARMul_Emulate32): Fix parameters passed to CPRead[13]
- and CPRead[14].
- Fix formatting. Improve layout.
- * armemu.h: Fix formatting. Improve layout.
-
-2002-01-09 Nick Clifton <nickc@cambridge.redhat.com>
-
- * wrapper.c (sim_fetch_register): If fetching more than 4 bytes
- return zeroes in the other words.
- General formatting tidy ups.
-
-2001-11-16 Ben Harris <bjh21@netbsd.org>
-
- * Makefile.in (armemu32.o): Replace $< with autoconf recommended
- $(srcdir)/....
- (armemu26.o): Ditto.
-
-2001-10-18 Nick Clifton <nickc@cambridge.redhat.com>
-
- * armemu.h (CP_ACCESS_ALLOWED): New macro.
- Fix formatting.
- * armcopro.c (read_cp14_reg): Make static.
- (write_cp14_reg): Make static.
- (check_cp13_access): Use CP_ACCESS_ALLOWED macro.
- Fix formatting.
- * armsupp.c (ARMul_LDC): Check CP_ACCESS_ALLOWED.
- (ARMul_STC): Check CP_ACCESS_ALLOWED.
- (ARMul_MCR): Check CP_ACCESS_ALLOWED.
- (ARMul_MRC): Check CP_ACCESS_ALLOWED.
- (ARMul_CDP): Check CP_ACCESS_ALLOWED.
- Fix formatting.
- * armemu.c (MCRR): Check CP_ACCESS_ALLOWED. Test Rd and Rn not
- equal to 15.
- (MRRC): Check CP_ACCESS_ALLOWED. Test Rd and Rn not equal to 15.
- Fix formatting.
-
-2001-05-11 Nick Clifton <nickc@cambridge.redhat.com>
-
- * armemu.c (ARMul_Emulate32): Fix handling of XScale LDRD and STRD
- instructions with post indexed addressing modes.
-
-2001-05-08 Jens-Christian Lache <lache@tu-harburg.de>
-
- * armsupp.c (ARMul_FixCPSR): Check Mode not Bank in order to
- determine rocesor mode.
-
-2001-04-18 matthew green <mrg@redhat.com>
-
- * armcopro.c (write_cp15_reg): Set CHANGEMODE if endianness changes.
- (read_cp15_reg): Make non-static.
- (XScale_cp15_LDC): Update for write_cp15_reg() change.
- (XScale_cp15_MCR): Likewise.
- (XScale_cp15_write_reg): Likewise.
- (XScale_check_memacc): New function. Check for breakpoints being
- activated by memory accesses. Does not support the Branch Target
- Buffer.
- (XScale_set_fsr_far): New function. Set FSR and FAR for XScale.
- (XScale_debug_moe): New function. Set the debug Method Of Entry,
- if configured.
- (write_cp14_reg): Reset count counter if requested.
- * armdefs.h (struct ARMul_State): New members `LastTime' and
- `CP14R0_CCD' used for the timer/counters.
- (ARMul_CP13_R0_FIQ, ARMul_CP13_R0_IRQ, ARMul_CP13_R8_PMUS,
- ARMul_CP14_R0_ENABLE, ARMul_CP14_R0_CLKRST, ARMul_CP14_R0_CCD,
- ARMul_CP14_R0_INTEN0, ARMul_CP14_R0_INTEN1, ARMul_CP14_R0_INTEN2,
- ARMul_CP14_R0_FLAG0, ARMul_CP14_R0_FLAG1, ARMul_CP14_R0_FLAG2,
- ARMul_CP14_R10_MOE_IB, ARMul_CP14_R10_MOE_DB, ARMul_CP14_R10_MOE_BT,
- ARMul_CP15_R1_ENDIAN, ARMul_CP15_R1_ALIGN, ARMul_CP15_R5_X,
- ARMul_CP15_R5_ST_ALIGN, ARMul_CP15_R5_IMPRE, ARMul_CP15_R5_MMU_EXCPT,
- ARMul_CP15_DBCON_M, ARMul_CP15_DBCON_E1, ARMul_CP15_DBCON_E0): New
- defines for XScale registers.
- (XScale_check_memacc, XScale_set_fsr_far, XScale_debug_moe): Prototype.
- (ARMul_Emulate32, ARMul_Emulate26): Clean up function definition.
- (ARMul_Emulate32): Handle the clock counter and hardware instruction
- breakpoints. Call XScale_set_fsr_far() for software breakpoints and
- software interrupts.
- (LoadMult): Call XScale_set_fsr_far() for data aborts.
- (LoadSMult): Likewise.
- (StoreMult): Likewise.
- (StoreSMult): Likewise.
- * armemu.h (write_cp15_reg): Update prototype.
- * arminit.c (ARMul_NewState): Initialise CP14R0_CCD and LastTime.
- (ARMul_Abort): If XScale, check for FIQ and IRQ being enabled in CP13
- register 0.
- * armvirt.c (GetWord): Call XScale_check_memacc().
- (PutWord): Likewise.
-
-2001-03-20 Nick Clifton <nickc@redhat.com>
-
- * armvirt.c (ARMul_ReLoadInstr): Do not enable alignment checking
- when loading unaligned thumb instructions.
-
-2001-03-06 Nick Clifton <nickc@redhat.com>
-
- * thumbemu.c (ARMul_ThumbDecode): Delete label bo_blx2.
- Compute destination address of BLX(1) instruction by
- taking bit 1 from PC and not from bit 0 of the offset.
-
-2001-02-27 Nick Clifton <nickc@redhat.com>
-
- * armvirt.c (GetWord): Add new parameter - check - to enable or
- disable the alignment checking.
- (PutWord): Add new parameter - check - to enable or disable the
- alignment checking.
- (ARMul_ReLoadInstr): Pass extra parameter to GetWord.
- (ARMul_ReadWord): Pass extra parameter to GetWord.
- (ARMul_WriteWord): Pass extra parameter to PutWord.
- (ARMul_StoreHalfWord): Pass extra parameter to PutWord.
- (ARMul_WriteByte): Pass extra parameter to GetWord.
- (ARMul_SwapWord): Pass extra parameter to PutWord.
- (ARMul_SafeReadByte): New Function: Read a byte but do not abort.
- (ARMul_SafeWriteByte): New Function: Write a byte but do not abort.
-
- * armdefs.h: Add prototypes for ARMul_SafeReadByte and
- ARMul_SafeWriteByte.
-
- * wrapper.c (sim_write): Use ARMul_SafeWriteByte.
- (sim_read): Use ARMul_SafeReadByte.
-
- * armos.c (in_SWI_handler): Remove.
- (SWIWrite0): Use ARMul_SafeReadByte.
- (WriteCommandLineTo): Use ARMul_SafeWriteByte.
- (SWIopen): Use ARMul_SafeReadByte.
- (SWIread): Use ARMul_SafeWriteByte.
- (SWIwrite): Use ARMul_SafeReadByte.
- (ARMul_OSHandleSWI): Remove use of is_SWI_handler.
- (ARMul_OSException): Remove use of is_SWI_handler.
-
-2001-02-16 Nick Clifton <nickc@redhat.com>
-
- * armemu.c: Remove Prefetch abort for breakpoints. Instead set
- the state to RESUME.
-
-2001-02-14 Nick Clifton <nickc@redhat.com>
-
- * armemu.c: Add code to preserve processor mode when a prefetch
- abort is signalled after processing a breakpoint.
-
- * wrapper.c (sim_create_inferior): Reset processor into ARM mode
- for any machine type except the early ARMs.
-
-2001-02-13 Nick Clifton <nickc@redhat.com>
-
- * armos.c (in_SWI_handler): New static variable.
- (ARMul_OSHandleSWI): Set in_SWI_handler whilst emulating a SWI.
- (ARMul_OSException): Ignore exceptions generated whilst emulating
- a SWI.
-
-2001-02-12 Nick Clifton <nickc@redhat.com>
-
- * armemu.h (NEGBRANCH): Fix defintion.
-
-2001-02-01 Nick Clifton <nickc@redhat.com>
-
- * armemu.c (LoadSMult): Update base address register after
- restoring register bank.
- (StoreMult): Update base address register after restoring register
- bank.
-
-2001-01-31 Nick Clifton <nickc@redhat.com>
-
- * armvirt.c (PutWord): Detect installation of SWI vector.
- (SWI_vector_installed): Define.
- * armos.c (ARMul_OsInit): Reset SWI_vector_installed.
- * armos.h (SWI_vector_installed): Declare.
- * wrapper.c (SWI_vector_installed): Remove definition.
- (sim_write): Remove check of SWI vector installation
-
-2000-12-18 Nick Clifton <nickc@redhat.com>
-
- * armemu.c (ARMul_Emulate26): Fix test for StoreDouble
- instruction.
-
-2000-12-10 Nick Clifton <nickc@redhat.com>
-
- * armos.c (ARMul_OSHandleSWI): Add 0x91 as an FPE SWI.
-
-2000-12-07 Nick Clifton <nickc@redhat.com>
-
- * armemu.c (ARMul_Emulate26): Detect double word load and
- store instructions and call emulation routines.
- (Handle_Load_Double): Emulate a double word load instruction.
- (Handle_Store_Double): Emulate a double word store
- instruction.
-
-2000-12-03 Nick Clifton <nickc@redhat.com>
-
- * armos.c: Fix formatting.
- (ARMul_OSHandleSWI): Suppress support of DEMON SWIs when in xscale
- mode.
-
-2000-11-29 Nick Clifton <nickc@redhat.com>
-
- * armdefs.h (State): Add 'v5e' and 'xscale' fields.
- (ARM_v5e_Prop): Define.
- (ARM_XScale_Prop): Define.
-
- * wrapper.c (sim_create_inferior): Select processor based on
- machine number.
- (SWI_vector_installed): New boolean. Set to true if the SWI
- vector address is written to by the executable.
-
- * arminit.c (ARMul_NewState): Switch default to 32 bit mode.
- (ARMul_SelectProcessor): Initialise v5e and xscale signals.
- (ARMul_Abort): Fix calculation of LR address.
-
- * armos.c (ARMul_OSHandleSWI): If a SWI vector has been installed
- and a SWI is not handled by the simulator, pass the SWI off to the
- vector, otherwise issue a warning message and continue.
-
- * armsupp.c (ARMul_CPSRAltered): Set S bit aswell.
-
- * thumbemu.c: Add v5 instruction simulation.
- * armemu.c: Add v5, XScale and El Segundo instruction simulation.
-
- * armcopro.c: Add XScale co-processor emulation.
- * armemu.h: Add exported XScale co-processor functions.
-
-2000-09-15 Nick Clifton <nickc@redhat.com>
-
- * armdefs.h: Rename StrongARM property to v4_ARM and add v5 ARM
- property. Delete unnecessary processor names.
- (ARM_Strong_Prop): Delete.
- (STRONGARM): Delete.
- (ARM_v4_Prop): Add.
- (ARM_v5_Prop): Add
- (State): Delete is_StrongARM boolean. Add is_v4 and is_v5
- booleans.
-
- * armemu.h (BUSUSEDINCPCS): Use is_v4 boolean.
- (BUSUSEDINCPCN): Use is_v4 boolean.
-
- * arminit.c (ARMul_NewState): Initialise is_v4 and is_v5 fields.
- (ARMul_SelectProcessor): Change second parameter from 'processor'
- to 'properties'. Set is_v4 and is_v5 booleans in State.
-
- * armrdi.c: Remove use of ARM processor names. Replace with ARM
- processor properties.
-
- * wrapper.c (sim_create_inferior): Choose properties passed to
- ARMul_SelectProcessor based on machine number.
-
-2000-08-14 Nick Clifton <nickc@redhat.com>
-
- * armemu.c (LHPOSTDOWN): Compute write back value before
- performing load in case the offset register is overwritten.
- (LHPOSTUP): Ditto.
-
-2000-07-14 Fernando Nasser <fnasser@cygnus.com>
-
- * wrapper.c (sim_create_inferior): Fix typo in the previous patch.
-
-2000-07-14 Fernando Nasser <fnasser@cygnus.com>
-
- * wrapper.c (sim_create_inferior): Reset mode to ARM when creating a
- new inferior.
-
-2000-07-04 Alexandre Oliva <aoliva@redhat.com>
-
- * armvirt.c (ABORTS): Do not define.
-
- * armdefs.h (struct ARMul_State): Add is_StrongARM.
- (ARM_Strong_Prop, STRONGARM): Define.
- * arminit.c (ARMul_NewState): Reset is_StrongARM.
- (ARMul_SelectProcessor): Set is_StrongARM.
- * wrapper.c (sim_create_inferior): Use bfd machine type to
- determine processor type to emulate.
- * armemu.h (BUSUSEDINCPCS, BUSUSEDINCPCN): Don't increment PC
- when emulating StrongARM.
-
- * armemu.c (ARMul_Emulate, t_undefined): Proceed to next insn.
-
- * armemu.h (INSN_SIZE): New macro.
- (SET_ABORT): Save CPSR in SPSR and set LR.
- * armemu.c (ARMul_Emulate, isize): Set to INSN_SIZE.
- (WriteR15, WriteSR15): Do not discard bit 1 in Thumb mode.
- * arminit.c (ARMul_Abort): Use new SETABORT and INSN_SIZE.
-
- * armemu.c (LoadSMult): Use WriteR15() to discard the least
- significant bits of PC.
-
- * armemu.h (WRITEDESTB): New macro.
- * armemu.c (ARMul_Emulate26, bl): Use WriteR15Branch() to
- modify PC. Moved the existing logic...
- (WriteR15Branch): ... here. New function.
- (WriteR15, WriteSR15): Drop the two least significant bits.
- (LoadSMult): Use WriteR15Branch() to modify PC.
- (LoadMult): Use WRITEDESTB() instead of WRITEDEST().
-
- * armemu.h (GETSPSR): Call ARMul_GetSPSR().
- * armsupp.c (ARMul_CPSRAltered): Zero out bits as they're
- extracted from state->Cpsr, but preserve the unused bits.
- (ARMul_GetCPSR): Get bits preserved in state->Cpsr.
- (ARMul_GetSPSR, ARMul_FixCPSR): Use ARMul_GetCPSR() to
- get the full CPSR word.
-
- * armemu.h (PSR_FBITS, PSR_SBITS, PSR_XBITS, PSR_CBITS): New.
- (SETPSR_F, SETPSR_S, SETPSR_X, SETPSR_C): New macros.
- (SETPSR, SET_INTMODE, SETCC): Removed.
- * armsupp.c (ARMul_FixCPSR, ARMul_FixSPSR): Do not test bit
- mask. Use SETPSR_* to modify PSR.
- (ARMul_SetCPSR): Load all bits from value.
- * armemu.c (ARMul_Emulate, msr): Do not test bit mask.
-
- * armemu.c (ARMul_Emulate): Compute writeback value before
- loading, since the offset register may be the destination
- register.
-
- * armdefs.h (SYSTEMBANK): Define as USERBANK.
- * armsupp.c (ARMul_SwitchMode): Remove SYSTEMBANK cases.
-
-2000-06-22 Alexandre Oliva <aoliva@cygnus.com>
-
- * armemu.c (Multiply64): Fix computation of flag N.
-
- * armemu.c (MultiplyAdd64): Fix computation of flag N.
-
-2000-06-20 Alexandre Oliva <aoliva@cygnus.com>
-
- * armemu.h (NEGBRANCH): Do not overwrite the two most significant
- bits of the offset.
-
-2000-05-25 Nick Clifton <nickc@cygnus.com>
-
- * armcopro.c (MMUMCR): Only indicate mode change if a singal has
- really changed.
- (MMUWrite): Only indicate mode change if a singal has really
- changed.
-
- * armdefs.h (SYSTEMMODE): Define.
- (BANK_CAN_ACEESS_SPSR): Define.
-
- * armemu.c (ARM_Emulate26): If the mode has changed allow the PC
- to advance before stopping the emulation.
-
- * arminit.c (ARMul_Reset): Ensure Mode field of State is set
- correctly.
-
- * armos.c (ARMul_OSInit): Create a initial stack pointer for
- System mode.
-
- * armsupp.c (ModeToBank): Remove unused first parameter.
- Add support for System Mode.
- (ARMul_GetSPSR): Use BANK_CAN_ACCESS_SPSR macro.
- (ARMul_SetSPSR): Use BANK_CAN_ACCESS_SPSR macro.
- (ARMul_FixSPSR): Use BANK_CAN_ACCESS_SPSR macro.
- (ARMulSwitchMode): Add support for System Mode.
-
-Wed May 24 14:40:34 2000 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-2000-05-23 Nick Clifton <nickc@cygnus.com>
-
- * wrapper.c (sim_store_register): Special handling for CPSR
- register.
-
-2000-03-11 Philip Blundell <philb@gnu.org>
-
- * armemu.c (LoadSMult, LoadMult): Correct handling of aborts.
- Patch from Allan Skillman <Allan.Skillman@arm.com>.
-
-Wed Mar 22 15:24:21 2000 glen mccready <gkm@pobox.com>
-
- * wrapper.c (sim_open,sim_close): Copy into myname, free myname.
-
-2000-02-08 Nick Clifton <nickc@cygnus.com>
-
- * wrapper.c: Fix compile time warning messages.
- * armcopro.c: Fix compile time warning messages.
- * armdefs.h: Fix compile time warning messages.
- * armemu.c: Fix compile time warning messages.
- * armemu.h: Fix compile time warning messages.
- * armos.c: Fix compile time warning messages.
- * armsupp.c: Fix compile time warning messages.
- * armvirt.c: Fix compile time warning messages.
- * bag.c: Fix compile time warning messages.
-
-2000-02-02 Bernd Schmidt <bernds@cygnus.co.uk>
-
- * *.[ch]: Use indent to make readable.
-
-1999-11-22 Nick Clifton <nickc@cygnus.com>
-
- * armos.c (SWIread): Generate an error message if a huge read is
- performed.
- (SWIwrite): Generate an error message if a huge write is
- performed.
-
-1999-10-27 Nick Clifton <nickc@cygnus.com>
-
- * thumbemu.c (ARMul_ThumbDecode): Accept 0xbebe as a thumb
- breakpoint.
-
-1999-10-08 Ulrich Drepper <drepper@cygnus.com>
-
- * armos.c (SWIopen): Always pass third parameter with 0666 since
- otherwise uninitialized memory gets access if the O_CREAT bit is
- set and so we possibly cannot access the file afterwards.
-
-1999-09-29 Doug Evans <devans@casey.cygnus.com>
-
- * armos.c (SWIWrite0): Send output to stdout instead of stderr.
- (ARMul_OSHandleSWI, case SWI_WriteC,AngelSWI_Reason_WriteC): Ditto.
-
-Thu Sep 2 18:15:53 1999 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-1999-05-08 Felix Lee <flee@cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-1999-04-06 Keith Seitz <keiths@cygnus.com>
-
- * wrapper.c (stop_simulator): New global.
- (sim_stop): Set sim state to STOP and set
- stop_simulator.
- (sim_resume): Reset stop_simulator.
- (sim_stop_reason): If stop_simulator is set, tell gdb
- that the we took SIGINT.
- * armemu.c (ARMul_Emulate26): Don't loop forever. Stop if
- stop_simulator is set.
-
-1999-04-02 Keith Seitz <keiths@cygnus.com>
-
- * armemu.c (ARMul_Emulate26): If NEED_UI_LOOP_HOOK, call ui_loop_hook
- whenever the counter expires.
- * Makefile.in (SIM_EXTRA_CFLAGS): Include define NEED_UI_LOOP_HOOK.
-
-1999-03-24 Nick Clifton <nickc@cygnus.com>
-
- * armemu.c (ARMul_Emulate26): Handle new breakpoint value.
- * thumbemu.c (ARMul_ThumbDecode): Handle new breakpoint value.
-
-Mon Sep 14 09:00:05 1998 Nick Clifton <nickc@cygnus.com>
-
- * wrapper.c (sim_open): Set endianness according to BFD or command
- line switch.
-
- * tconfig.in: Define SIM_HAVE_BIENDIAN.
-
-Thu Aug 27 11:00:05 1998 Nick Clifton <nickc@cygnus.com>
-
- * armemu.c (Multiply64): Test for Rm (rather than Rs) not being
- the same as either RdHi or RdLo.
-
-Thu Jul 2 10:24:35 1998 Nick Clifton <nickc@cygnus.com>
-
- * armos.c (ARMul_OSHandleSWI: AngelSWI_Reason_ReportException):
- Set Reg[0] based on reason for for the exception.
-
-Thu Jun 4 15:22:03 1998 Jason Molenda (crash@bugshack.cygnus.com)
-
- * armos.c (SWIwrite0): New function.
- (WriteCommandLineTo): New function.
- (SWIopen): New function.
- (SWIread): New function.
- (SWIwrite): New function.
- (SWIflen): New function.
- (ARMul_OSHandleSWI): Call new functions instead of handling
- these here.
- (ARMul_OSHandleSWI): Handle Angel SWIs correctly.
- (*): Reformat spacing to be a bit more GNUly.
- Most code taken from a patch by Anthony Thompson
- (athompso@cambridge.arm.com)
-
-Tue Jun 2 15:22:22 1998 Nick Clifton <nickc@cygnus.com>
-
- * armos.h: Add Angel SWI and its reason codes.
- * armos.c (ARMul_OSHandleSWI): Ignore Angel SWIs (for now).
-
-Mon Jun 1 17:14:19 1998 Anthony Thompson (athompso@cambridge.arm.com)
-
- * armos.c (ARMul_OSHandleSWI::SWI_Open): Handle special case
- of ":tt" to catch stdin in addition to stdout.
- (ARMul_OSHandleSWI::SWI_Seek): Return 0 or 1 to indicate failure
- or success of lseek().
-
-Wed May 20 17:36:25 1998 Nick Clifton <nickc@cygnus.com>
-
- * armos.c (ARMul_OSHandleSWI): Special case code to catch attempts
- to open stdout.
-
-Wed Apr 29 15:29:55 1998 Jeff Johnston <jjohnstn@cygnus.com>
-
- * armos.c (ARMul_OSHandleSWI): Added code for SWI_Clock,
- SWI_Flen, and SWI_Time. Also fixed SWI_Seek code to only
- seek from offset 0 and not to use R2 for whence since it is
- not passed as part of the SWI call.
-
-Tue Apr 28 18:33:31 1998 Geoffrey Noer <noer@cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Sun Apr 26 15:31:55 1998 Tom Tromey <tromey@creche>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
- * config.in: Ditto.
-
-Sun Apr 26 15:20:26 1998 Tom Tromey <tromey@cygnus.com>
-
- * acconfig.h: New file.
- * configure.in: Reverted change of Apr 24; use sinclude again.
-
-Fri Apr 24 14:16:40 1998 Tom Tromey <tromey@creche>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
- * config.in: Ditto.
-
-Fri Apr 24 11:20:19 1998 Tom Tromey <tromey@cygnus.com>
-
- * configure.in: Don't call sinclude.
-
-Sat Apr 4 20:36:25 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Fri Mar 27 16:15:52 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Wed Mar 25 12:35:29 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Wed Mar 18 12:38:12 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Tue Mar 10 09:26:38 1998 Nick Clifton <nickc@cygnus.com>
-
- * armopts.h: Remove definition of LITTLEND - it is not used.
-
-Tue Feb 17 12:35:54 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * wrapper.c (sim_store_register, sim_fetch_register): Pass in
- length parameter. Return -1.
-
-Sun Feb 1 16:47:51 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Sat Jan 31 18:15:41 1998 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Mon Jan 19 22:26:29 1998 Doug Evans <devans@seba>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Mon Dec 15 23:17:11 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
- * config.in: Ditto.
-
-Tue Dec 9 11:30:48 1997 Nick Clifton <nickc@cygnus.com>
-
- * Makefile.in: Updated with changes from branch.
- * armdefs.h: ditto
- * armemu.c: ditto these changes
- * armemu.h: ditto add support for
- * armos.c: ditto the Thumb instruction
- * armsupp.c: ditto set and the new v4
- * armvirt.c: ditto architecture.
- * wrapper.c: ditto
- * thumbemu.c: New file from branch.
-
-
-Thu Dec 4 09:21:05 1997 Doug Evans <devans@canuck.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Thu Oct 30 13:54:06 1997 Nick Clifton <nickc@cygnus.com>
-
- * armos.c (ARMul_OSHandleSWI): Add support for GetEnv SWI. Patch
- from Tony Thompson at ARM: athompso@arm.com
-
- * wrapper.c (sim_create_inferior): Add code to create an execution
- environment. Patch from Tony Thompson at ARM: athompso@arm.com
-
-Wed Oct 22 14:43:00 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * wrapper.c (sim_load): Pass lma_p and sim_write args to
- sim_load_file.
-
-Fri Oct 3 09:28:00 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Wed Sep 24 17:38:57 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Tue Sep 23 11:04:38 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Mon Sep 22 11:46:20 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Fri Sep 19 17:45:25 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Mon Sep 15 17:36:15 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Thu Sep 4 17:21:23 1997 Doug Evans <dje@seba>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Wed Aug 27 18:13:22 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
- * config.in: Ditto.
-
-Tue Aug 26 10:37:27 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * wrapper.c (sim_kill): Delete.
- (sim_create_inferior): Add ABFD argument.
- (sim_load): Move setting of PC from here.
- (sim_create_inferior): To here.
-
-Mon Aug 25 17:50:22 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
- * config.in: Ditto.
-
-Mon Aug 25 15:35:45 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * wrapper.c (sim_open): Add ABFD argument.
-
-Tue May 20 10:13:26 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * wrapper.c (sim_open): Add callback argument.
- (sim_set_callbacks): Drop SIM_DESC argument.
-
-Thu Apr 24 00:39:51 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Fri Apr 18 13:32:23 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * wrapper.c (sim_stop): Stub sim_stop function.
-
-Thu Apr 17 18:33:01 1997 Fred Fish <fnf@cygnus.com>
-
- * arminit.c (ARMul_NewState): Preinitialize the state to
- all zero/NULL.
-
-Thu Apr 17 02:39:02 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * Makefile.in (SIM_OBJS): Add sim-load.o.
- * wrapper.c (sim_kind,myname): New static locals.
- (sim_open): Set sim_kind, myname.
- (sim_load): Call sim_load_file to do work. Set start address from bfd.
- (sim_create_inferior): Return SIM_RC. Delete start_address arg.
-
-Thu Apr 17 11:48:25 1997 Andrew Cagney <cagney@b1.cygnus.com>
-
- * wrapper.c (sim_trace): Update so that it matches prototype.
-
-Mon Apr 7 15:45:02 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
- * config.in: Ditto.
-
-Mon Apr 7 12:01:17 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
-
- * Makefile.in (armemu32.o): Replace $< with autoconf recommended
- $(srcdir)/....
- (armemu26.o): Ditto.
-
-Wed Apr 2 15:06:28 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * wrapper.c (sim_open): New arg `kind'.
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Wed Apr 2 14:50:44 1997 Ian Lance Taylor <ian@cygnus.com>
-
- * COPYING: Update FSF address.
-
-Wed Apr 2 14:34:19 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Wed Mar 19 01:14:00 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
-
- * configure: Regenerated to track ../common/aclocal.m4 changes.
-
-Mon Mar 17 15:10:07 1997 Andrew Cagney <cagney@kremvax.cygnus.com>
-
- * configure: Re-generate.
-
-Fri Mar 14 10:34:11 1997 Michael Meissner <meissner@cygnus.com>
-
- * configure: Regenerate to track ../common/aclocal.m4 changes.
-
-Thu Mar 13 12:38:56 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * wrapper.c (sim_open): Has result now.
- (sim_*): New SIM_DESC argument.
-
-Tue Feb 4 13:22:21 1997 Doug Evans <dje@canuck.cygnus.com>
-
- * Makefile.in (@COMMON_MAKEFILE_FRAG@): Use
- COMMON_{PRE,POST}_CONFIG_FRAG instead.
- * configure.in: sinclude ../common/aclocal.m4.
- * configure: Regenerated.
-
-Thu Jan 23 11:46:23 1997 Stu Grossman (grossman@critters.cygnus.com)
-
- * configure configure.in Makefile.in: Update to new configure
- scheme which is more compatible with WinGDB builds.
- * configure.in: Improve comment on how to run autoconf.
- * configure: Re-run autoconf to get new ../common/aclocal.m4.
- * Makefile.in: Use autoconf substitution to install common
- makefile fragment.
-
-Wed Nov 20 01:05:10 1996 Doug Evans <dje@canuck.cygnus.com>
-
- * run.c: Deleted, use one in ../common now.
- * Makefile.in: Delete everything that's been moved to
- ../common/Make-common.in.
- (SIM_OBJS): Define.
- * configure.in: Simplify using macros in ../common/aclocal.m4.
- * configure: Regenerated.
- * config.in: New file.
- * armos.c: #include config.h.
- * wrapper.c (mem_size): Value is in bytes now.
- (sim_callback): New global.
- (arm_sim_set_profile{,_size}): Delete.
- (arm_sim_set_mem_size): Rename to sim_size.
- (sim_do_command): Call printf_filtered via callback.
- (sim_set_callbacks): Record callback.
-
-Thu Oct 3 16:10:27 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
-
- * Makefile.in (mostlyclean): Remove config.log.
-
-Wed Jun 26 12:17:24 1996 Jason Molenda (crash@godzilla.cygnus.co.jp)
-
- * Makefile.in (bindir, libdir, datadir, mandir, infodir, includedir,
- INSTALL_PROGRAM, INSTALL_DATA): Use autoconf-set values.
- (docdir): Removed.
- * configure.in (AC_PREREQ): autoconf 2.5 or higher.
- (AC_PROG_INSTALL): Added.
- * configure: Rebuilt.
-
-Wed Feb 21 12:14:31 1996 Ian Lance Taylor <ian@cygnus.com>
-
- * configure: Regenerate with autoconf 2.7.
-
-Fri Dec 15 16:27:30 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * run.c (main): Use new bfd_big_endian macro.
-
-Mon Nov 20 17:40:38 1995 Doug Evans <dje@canuck.cygnus.com>
-
- * run.c: Include "getopt.h".
- (verbose): Delete.
- (usage): Make static.
- (main): Call arm_sim_set_verbosity.
- Only load sections marked SEC_LOAD.
- * wrapper.c (mem_size, verbosity): New static global.
- (arm_sim_set_mem_size): Renamed from sim_size. Callers updated.
- (arm_sim_set_profile{,_size}): Renamed from sim_foo. Callers updated.
-
-Fri Nov 17 19:35:11 1995 Doug Evans <dje@canuck.cygnus.com>
-
- * armdefs.h (ARMul_State): New member `verbose'.
- * armrdi.c (ARMul_ConsolePrint): Add missing va_end.
- * run.c (verbose): Make global.
- * wrapper.c (init): Set state->verbose.
- (ARMul_ConsolePrint): Don't print anything if !verbose.
-
-Fri Oct 13 15:30:30 1995 Doug Evans <dje@canuck.cygnus.com>
-
- * armos.c: #include dbg_rdi.h.
- (ARMul_OSHandleSWI): Handle SWI_Breakpoint.
- * armos.h (SWI_Breakpoint): Define.
- * wrapper.c: #include armemu.h, dbg_rdi.h.
- (rc): Delete.
- (sim_resume): Use state->EndCondition to record stop state.
- Call FLUSHPIPE before returning.
- (sim_stop_reason): Determine reason from state->EndCondition.
-
-Fri Oct 13 15:04:05 1995 steve chamberlain <sac@slash.cygnus.com>
-
- * wrapper.c (sim_set_callbacks): New.
-
-Thu Sep 28 19:45:56 1995 Doug Evans <dje@deneb.cygnus.com>
-
- * armos.c (ARMul_OSHandleSWI): Result of read/write calls is
- number of bytes not read/written (or -1).
-
-Wed Sep 20 13:35:54 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * Makefile.in (maintainer-clean): New synonym for realclean.
-
-Fri Sep 8 14:27:20 1995 Ian Lance Taylor <ian@cygnus.com>
-
- * configure.in: Remove AC_PROG_INSTALL.
- * configure: Rebuild.
- * Makefile.in (INSTALL): Revert to using install.sh.
- (INSTALL_PROGRAM, INSTALL_DATA): Set to $(INSTALL).
- (INSTALL_XFORM, INSTALL_XFORM1): Restore.
- (mostlyclean): Make the same as clean, not distclean.
- (clean): Remove config.log.
- (install): Don't install in $(tooldir).
-
-Thu Sep 7 12:00:17 1995 Doug Evans <dje@canuck.cygnus.com>
-
- (Try to) Update to new bfd autoconf scheme.
- * run.c: Don't include sysdep.h.
- * Makefile.in (INSTALL{,_PROGRAM,_DATA}): Use autoconf computed value.
- (CC, CFLAGS, AR, RANLIB): Likewise.
- (HDEFINES, TDEFINES): Define.
- (CC_FOR_BUILD): Delete.
- (host_makefile_frag): Delete.
- (Makefile): Don't depend on frags.
- * configure.in (sysdep.h): Don't create symlink.
- (host_makefile_frag, frags): Deleted.
- (CC, CFLAGS, AR, RANLIB, INSTALL): Compute values.
- * configure: Regenerated.
-
-Thu Aug 3 10:45:37 1995 Fred Fish <fnf@cygnus.com>
-
- * Update all FSF addresses except those in COPYING* files.
-
-Wed Jul 5 16:15:54 1995 J.T. Conklin <jtc@rtl.cygnus.com>
-
- * Makefile.in (clean): Remove run, libsim.a.
-
- * Makefile.in, configure.in: converted to autoconf.
- * configure: New file, generated with autconf 2.4.
-
- * arm.mt: Removed.
-
-Fri Jun 30 16:49:47 1995 Stan Shebs <shebs@andros.cygnus.com>
-
- * wrapper.c (sim_do_command): New function.
-
-Tue Jun 13 10:57:32 1995 Steve Chamberlain <sac@slash.cygnus.com>
-
- * armos.c (ARMul_OSHandleSWI): New version to work with
- newlib simply.
-
-Thu Jun 8 14:37:14 1995 Steve Chamberlain <sac@slash.cygnus.com>
-
- * run.c (main): Grab return value from right register.
-
-Wed May 24 14:37:31 1995 Steve Chamberlain <sac@slash.cygnus.com>
-
- * New.
diff --git a/sim/arm/README b/sim/arm/README
deleted file mode 100644
index adfb766..0000000
--- a/sim/arm/README
+++ /dev/null
@@ -1,27 +0,0 @@
-
-This directory contains the standard release of the ARMulator from
-Advanced RISC Machines, and was ftp'd from.
-
-ftp.cl.cam.ac.uk:/arm/gnu
-
-It likes to use TCP/IP between the simulator and the host, which is
-nice, but is a pain to use under anything non-unix.
-
-I've added created a new Makefile.in (the original in Makefile.orig)
-to build a version of the simulator without the TCP/IP stuff, and a
-wrapper.c to link directly into gdb and the run command.
-
-It should be possible (barring major changes in the layout of
-the armulator) to upgrade the simulator by copying all the files
-out of a release into this directory and renaming the Makefile.
-
-(Except that I changed armos.c to work more simply with our
-simulator rigs)
-
-Steve
-
-sac@cygnus.com
-
-Mon May 15 12:03:28 PDT 1995
-
-
diff --git a/sim/arm/armcopro.c b/sim/arm/armcopro.c
deleted file mode 100644
index 70cebcd..0000000
--- a/sim/arm/armcopro.c
+++ /dev/null
@@ -1,1429 +0,0 @@
-/* armcopro.c -- co-processor interface: ARM6 Instruction Emulator.
- Copyright (C) 1994, 2000 Advanced RISC Machines Ltd.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 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, see <http://www.gnu.org/licenses/>. */
-
-/* This must come before any other includes. */
-#include "defs.h"
-
-#include "armdefs.h"
-#include "armos.h"
-#include "armemu.h"
-#include "ansidecl.h"
-#include "iwmmxt.h"
-
-/* Dummy Co-processors. */
-
-static unsigned
-NoCoPro3R (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned a ATTRIBUTE_UNUSED,
- ARMword b ATTRIBUTE_UNUSED)
-{
- return ARMul_CANT;
-}
-
-static unsigned
-NoCoPro4R (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned a ATTRIBUTE_UNUSED,
- ARMword b ATTRIBUTE_UNUSED,
- ARMword c ATTRIBUTE_UNUSED)
-{
- return ARMul_CANT;
-}
-
-static unsigned
-NoCoPro4W (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned a ATTRIBUTE_UNUSED,
- ARMword b ATTRIBUTE_UNUSED,
- ARMword * c ATTRIBUTE_UNUSED)
-{
- return ARMul_CANT;
-}
-
-/* The XScale Co-processors. */
-
-/* Coprocessor 15: System Control. */
-static void write_cp14_reg (unsigned, ARMword);
-static ARMword read_cp14_reg (unsigned);
-
-/* There are two sets of registers for copro 15.
- One set is available when opcode_2 is 0 and
- the other set when opcode_2 >= 1. */
-static ARMword XScale_cp15_opcode_2_is_0_Regs[16];
-static ARMword XScale_cp15_opcode_2_is_not_0_Regs[16];
-/* There are also a set of breakpoint registers
- which are accessed via CRm instead of opcode_2. */
-static ARMword XScale_cp15_DBR1;
-static ARMword XScale_cp15_DBCON;
-static ARMword XScale_cp15_IBCR0;
-static ARMword XScale_cp15_IBCR1;
-
-static unsigned
-XScale_cp15_init (ARMul_State * state ATTRIBUTE_UNUSED)
-{
- int i;
-
- for (i = 16; i--;)
- {
- XScale_cp15_opcode_2_is_0_Regs[i] = 0;
- XScale_cp15_opcode_2_is_not_0_Regs[i] = 0;
- }
-
- /* Initialise the processor ID. */
- XScale_cp15_opcode_2_is_0_Regs[0] = 0x69052000;
-
- /* Initialise the cache type. */
- XScale_cp15_opcode_2_is_not_0_Regs[0] = 0x0B1AA1AA;
-
- /* Initialise the ARM Control Register. */
- XScale_cp15_opcode_2_is_0_Regs[1] = 0x00000078;
-
- return TRUE;
-}
-
-/* Check an access to a register. */
-
-static unsigned
-check_cp15_access (ARMul_State * state,
- unsigned reg,
- unsigned CRm,
- unsigned opcode_1,
- unsigned opcode_2)
-{
- /* Do not allow access to these register in USER mode. */
- if (state->Mode == USER26MODE || state->Mode == USER32MODE)
- return ARMul_CANT;
-
- /* Opcode_1should be zero. */
- if (opcode_1 != 0)
- return ARMul_CANT;
-
- /* Different register have different access requirements. */
- switch (reg)
- {
- case 0:
- case 1:
- /* CRm must be 0. Opcode_2 can be anything. */
- if (CRm != 0)
- return ARMul_CANT;
- break;
- case 2:
- case 3:
- /* CRm must be 0. Opcode_2 must be zero. */
- if ((CRm != 0) || (opcode_2 != 0))
- return ARMul_CANT;
- break;
- case 4:
- /* Access not allowed. */
- return ARMul_CANT;
- case 5:
- case 6:
- /* Opcode_2 must be zero. CRm must be 0. */
- if ((CRm != 0) || (opcode_2 != 0))
- return ARMul_CANT;
- break;
- case 7:
- /* Permissible combinations:
- Opcode_2 CRm
- 0 5
- 0 6
- 0 7
- 1 5
- 1 6
- 1 10
- 4 10
- 5 2
- 6 5 */
- switch (opcode_2)
- {
- default: return ARMul_CANT;
- case 6: if (CRm != 5) return ARMul_CANT; break;
- case 5: if (CRm != 2) return ARMul_CANT; break;
- case 4: if (CRm != 10) return ARMul_CANT; break;
- case 1: if ((CRm != 5) && (CRm != 6) && (CRm != 10)) return ARMul_CANT; break;
- case 0: if ((CRm < 5) || (CRm > 7)) return ARMul_CANT; break;
- }
- break;
-
- case 8:
- /* Permissible combinations:
- Opcode_2 CRm
- 0 5
- 0 6
- 0 7
- 1 5
- 1 6 */
- if (opcode_2 > 1)
- return ARMul_CANT;
- if ((CRm < 5) || (CRm > 7))
- return ARMul_CANT;
- if (opcode_2 == 1 && CRm == 7)
- return ARMul_CANT;
- break;
- case 9:
- /* Opcode_2 must be zero or one. CRm must be 1 or 2. */
- if ( ((CRm != 0) && (CRm != 1))
- || ((opcode_2 != 1) && (opcode_2 != 2)))
- return ARMul_CANT;
- break;
- case 10:
- /* Opcode_2 must be zero or one. CRm must be 4 or 8. */
- if ( ((CRm != 0) && (CRm != 1))
- || ((opcode_2 != 4) && (opcode_2 != 8)))
- return ARMul_CANT;
- break;
- case 11:
- /* Access not allowed. */
- return ARMul_CANT;
- case 12:
- /* Access not allowed. */
- return ARMul_CANT;
- case 13:
- /* Opcode_2 must be zero. CRm must be 0. */
- if ((CRm != 0) || (opcode_2 != 0))
- return ARMul_CANT;
- break;
- case 14:
- /* Opcode_2 must be 0. CRm must be 0, 3, 4, 8 or 9. */
- if (opcode_2 != 0)
- return ARMul_CANT;
-
- if ((CRm != 0) && (CRm != 3) && (CRm != 4) && (CRm != 8) && (CRm != 9))
- return ARMul_CANT;
- break;
- case 15:
- /* Opcode_2 must be zero. CRm must be 1. */
- if ((CRm != 1) || (opcode_2 != 0))
- return ARMul_CANT;
- break;
- default:
- /* Should never happen. */
- return ARMul_CANT;
- }
-
- return ARMul_DONE;
-}
-
-/* Store a value into one of coprocessor 15's registers. */
-
-static void
-write_cp15_reg (ARMul_State * state,
- unsigned reg,
- unsigned opcode_2,
- unsigned CRm,
- ARMword value)
-{
- if (opcode_2)
- {
- switch (reg)
- {
- case 0: /* Cache Type. */
- /* Writes are not allowed. */
- return;
-
- case 1: /* Auxiliary Control. */
- /* Only BITS (5, 4) and BITS (1, 0) can be written. */
- value &= 0x33;
- break;
-
- default:
- return;
- }
-
- XScale_cp15_opcode_2_is_not_0_Regs [reg] = value;
- }
- else
- {
- switch (reg)
- {
- case 0: /* ID. */
- /* Writes are not allowed. */
- return;
-
- case 1: /* ARM Control. */
- /* Only BITS (13, 11), BITS (9, 7) and BITS (2, 0) can be written.
- BITS (31, 14) and BIT (10) write as zero, BITS (6, 3) write as one. */
- value &= 0x00003b87;
- value |= 0x00000078;
-
- /* Change the endianness if necessary. */
- if ((value & ARMul_CP15_R1_ENDIAN) !=
- (XScale_cp15_opcode_2_is_0_Regs [reg] & ARMul_CP15_R1_ENDIAN))
- {
- state->bigendSig = value & ARMul_CP15_R1_ENDIAN;
- /* Force ARMulator to notice these now. */
- state->Emulate = CHANGEMODE;
- }
- break;
-
- case 2: /* Translation Table Base. */
- /* Only BITS (31, 14) can be written. */
- value &= 0xffffc000;
- break;
-
- case 3: /* Domain Access Control. */
- /* All bits writable. */
- break;
-
- case 5: /* Fault Status Register. */
- /* BITS (10, 9) and BITS (7, 0) can be written. */
- value &= 0x000006ff;
- break;
-
- case 6: /* Fault Address Register. */
- /* All bits writable. */
- break;
-
- case 7: /* Cache Functions. */
- case 8: /* TLB Operations. */
- case 10: /* TLB Lock Down. */
- /* Ignore writes. */
- return;
-
- case 9: /* Data Cache Lock. */
- /* Only BIT (0) can be written. */
- value &= 0x1;
- break;
-
- case 13: /* Process ID. */
- /* Only BITS (31, 25) are writable. */
- value &= 0xfe000000;
- break;
-
- case 14: /* DBR0, DBR1, DBCON, IBCR0, IBCR1 */
- /* All bits can be written. Which register is accessed is
- dependent upon CRm. */
- switch (CRm)
- {
- case 0: /* DBR0 */
- break;
- case 3: /* DBR1 */
- XScale_cp15_DBR1 = value;
- break;
- case 4: /* DBCON */
- XScale_cp15_DBCON = value;
- break;
- case 8: /* IBCR0 */
- XScale_cp15_IBCR0 = value;
- break;
- case 9: /* IBCR1 */
- XScale_cp15_IBCR1 = value;
- break;
- default:
- return;
- }
- break;
-
- case 15: /* Coprpcessor Access Register. */
- /* Access is only valid if CRm == 1. */
- if (CRm != 1)
- return;
-
- /* Only BITS (13, 0) may be written. */
- value &= 0x00003fff;
- break;
-
- default:
- return;
- }
-
- XScale_cp15_opcode_2_is_0_Regs [reg] = value;
- }
-
- return;
-}
-
-/* Return the value in a cp15 register. */
-
-ARMword
-read_cp15_reg (unsigned reg, unsigned opcode_2, unsigned CRm)
-{
- if (opcode_2 == 0)
- {
- if (reg == 15 && CRm != 1)
- return 0;
-
- if (reg == 14)
- {
- switch (CRm)
- {
- case 3: return XScale_cp15_DBR1;
- case 4: return XScale_cp15_DBCON;
- case 8: return XScale_cp15_IBCR0;
- case 9: return XScale_cp15_IBCR1;
- default:
- break;
- }
- }
-
- return XScale_cp15_opcode_2_is_0_Regs [reg];
- }
- else
- return XScale_cp15_opcode_2_is_not_0_Regs [reg];
-
- return 0;
-}
-
-static unsigned
-XScale_cp15_MRC (ARMul_State * state,
- unsigned type ATTRIBUTE_UNUSED,
- ARMword instr,
- ARMword * value)
-{
- unsigned opcode_2 = BITS (5, 7);
- unsigned CRm = BITS (0, 3);
- unsigned reg = BITS (16, 19);
- unsigned result;
-
- result = check_cp15_access (state, reg, CRm, BITS (21, 23), opcode_2);
-
- if (result == ARMul_DONE)
- * value = read_cp15_reg (reg, opcode_2, CRm);
-
- return result;
-}
-
-static unsigned
-XScale_cp15_MCR (ARMul_State * state,
- unsigned type ATTRIBUTE_UNUSED,
- ARMword instr,
- ARMword value)
-{
- unsigned opcode_2 = BITS (5, 7);
- unsigned CRm = BITS (0, 3);
- unsigned reg = BITS (16, 19);
- unsigned result;
-
- result = check_cp15_access (state, reg, CRm, BITS (21, 23), opcode_2);
-
- if (result == ARMul_DONE)
- write_cp15_reg (state, reg, opcode_2, CRm, value);
-
- return result;
-}
-
-static unsigned
-XScale_cp15_read_reg (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned reg,
- ARMword * value)
-{
- /* FIXME: Not sure what to do about the alternative register set
- here. For now default to just accessing CRm == 0 registers. */
- * value = read_cp15_reg (reg, 0, 0);
-
- return TRUE;
-}
-
-static unsigned
-XScale_cp15_write_reg (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned reg,
- ARMword value)
-{
- /* FIXME: Not sure what to do about the alternative register set
- here. For now default to just accessing CRm == 0 registers. */
- write_cp15_reg (state, reg, 0, 0, value);
-
- return TRUE;
-}
-
-/* Check for special XScale memory access features. */
-
-void
-XScale_check_memacc (ARMul_State * state, ARMword * address, int store)
-{
- ARMword dbcon, r0, r1;
- int e1, e0;
-
- if (!state->is_XScale)
- return;
-
- /* Check for PID-ification.
- XXX BTB access support will require this test failing. */
- r0 = (read_cp15_reg (13, 0, 0) & 0xfe000000);
- if (r0 && (* address & 0xfe000000) == 0)
- * address |= r0;
-
- /* Check alignment fault enable/disable. */
- if ((read_cp15_reg (1, 0, 0) & ARMul_CP15_R1_ALIGN) && (* address & 3))
- {
- /* Set the FSR and FAR.
- Do not use XScale_set_fsr_far as this checks the DCSR register. */
- write_cp15_reg (state, 5, 0, 0, ARMul_CP15_R5_MMU_EXCPT);
- write_cp15_reg (state, 6, 0, 0, * address);
-
- ARMul_Abort (state, ARMul_DataAbortV);
- }
-
- if (XScale_debug_moe (state, -1))
- return;
-
- /* Check the data breakpoint registers. */
- dbcon = read_cp15_reg (14, 0, 4);
- r0 = read_cp15_reg (14, 0, 0);
- r1 = read_cp15_reg (14, 0, 3);
- e0 = dbcon & ARMul_CP15_DBCON_E0;
-
- if (dbcon & ARMul_CP15_DBCON_M)
- {
- /* r1 is a inverse mask. */
- if (e0 != 0 && ((store && e0 != 3) || (!store && e0 != 1))
- && ((* address & ~r1) == (r0 & ~r1)))
- {
- XScale_debug_moe (state, ARMul_CP14_R10_MOE_DB);
- ARMul_OSHandleSWI (state, SWI_Breakpoint);
- }
- }
- else
- {
- if (e0 != 0 && ((store && e0 != 3) || (!store && e0 != 1))
- && ((* address & ~3) == (r0 & ~3)))
- {
- XScale_debug_moe (state, ARMul_CP14_R10_MOE_DB);
- ARMul_OSHandleSWI (state, SWI_Breakpoint);
- }
-
- e1 = (dbcon & ARMul_CP15_DBCON_E1) >> 2;
- if (e1 != 0 && ((store && e1 != 3) || (!store && e1 != 1))
- && ((* address & ~3) == (r1 & ~3)))
- {
- XScale_debug_moe (state, ARMul_CP14_R10_MOE_DB);
- ARMul_OSHandleSWI (state, SWI_Breakpoint);
- }
- }
-}
-
-/* Set the XScale FSR and FAR registers. */
-
-void
-XScale_set_fsr_far (ARMul_State * state, ARMword fsr, ARMword far)
-{
- if (!state->is_XScale || (read_cp14_reg (10) & (1UL << 31)) == 0)
- return;
-
- write_cp15_reg (state, 5, 0, 0, fsr);
- write_cp15_reg (state, 6, 0, 0, far);
-}
-
-/* Set the XScale debug `method of entry' if it is enabled. */
-
-int
-XScale_debug_moe (ARMul_State * state, int moe)
-{
- ARMword value;
-
- if (!state->is_XScale)
- return 1;
-
- value = read_cp14_reg (10);
- if (value & (1UL << 31))
- {
- if (moe != -1)
- {
- value &= ~0x1c;
- value |= moe;
-
- write_cp14_reg (10, value);
- }
- return 1;
- }
- return 0;
-}
-
-/* Coprocessor 13: Interrupt Controller and Bus Controller. */
-
-/* There are two sets of registers for copro 13.
- One set (of three registers) is available when CRm is 0
- and the other set (of six registers) when CRm is 1. */
-
-static ARMword XScale_cp13_CR0_Regs[16];
-static ARMword XScale_cp13_CR1_Regs[16];
-
-static unsigned
-XScale_cp13_init (ARMul_State * state ATTRIBUTE_UNUSED)
-{
- int i;
-
- for (i = 16; i--;)
- {
- XScale_cp13_CR0_Regs[i] = 0;
- XScale_cp13_CR1_Regs[i] = 0;
- }
-
- return TRUE;
-}
-
-/* Check an access to a register. */
-
-static unsigned
-check_cp13_access (ARMul_State * state,
- unsigned reg,
- unsigned CRm,
- unsigned opcode_1,
- unsigned opcode_2)
-{
- /* Do not allow access to these registers in USER mode. */
- if (state->Mode == USER26MODE || state->Mode == USER32MODE)
- return ARMul_CANT;
-
- /* The opcodes should be zero. */
- if ((opcode_1 != 0) || (opcode_2 != 0))
- return ARMul_CANT;
-
- /* Do not allow access to these register if bit
- 13 of coprocessor 15's register 15 is zero. */
- if (! CP_ACCESS_ALLOWED (state, 13))
- return ARMul_CANT;
-
- /* Registers 0, 4 and 8 are defined when CRm == 0.
- Registers 0, 1, 4, 5, 6, 7, 8 are defined when CRm == 1.
- For all other CRm values undefined behaviour results. */
- if (CRm == 0)
- {
- if (reg == 0 || reg == 4 || reg == 8)
- return ARMul_DONE;
- }
- else if (CRm == 1)
- {
- if (reg == 0 || reg == 1 || (reg >= 4 && reg <= 8))
- return ARMul_DONE;
- }
-
- return ARMul_CANT;
-}
-
-/* Store a value into one of coprocessor 13's registers. */
-
-static void
-write_cp13_reg (unsigned reg, unsigned CRm, ARMword value)
-{
- switch (CRm)
- {
- case 0:
- switch (reg)
- {
- case 0: /* INTCTL */
- /* Only BITS (3:0) can be written. */
- value &= 0xf;
- break;
-
- case 4: /* INTSRC */
- /* No bits may be written. */
- return;
-
- case 8: /* INTSTR */
- /* Only BITS (1:0) can be written. */
- value &= 0x3;
- break;
-
- default:
- /* Should not happen. Ignore any writes to unimplemented registers. */
- return;
- }
-
- XScale_cp13_CR0_Regs [reg] = value;
- break;
-
- case 1:
- switch (reg)
- {
- case 0: /* BCUCTL */
- /* Only BITS (30:28) and BITS (3:0) can be written.
- BIT(31) is write ignored. */
- value &= 0x7000000f;
- value |= XScale_cp13_CR1_Regs[0] & (1UL << 31);
- break;
-
- case 1: /* BCUMOD */
- /* Only bit 0 is accecssible. */
- value &= 1;
- value |= XScale_cp13_CR1_Regs[1] & ~ 1;
- break;
-
- case 4: /* ELOG0 */
- case 5: /* ELOG1 */
- case 6: /* ECAR0 */
- case 7: /* ECAR1 */
- /* No bits can be written. */
- return;
-
- case 8: /* ECTST */
- /* Only BITS (7:0) can be written. */
- value &= 0xff;
- break;
-
- default:
- /* Should not happen. Ignore any writes to unimplemented registers. */
- return;
- }
-
- XScale_cp13_CR1_Regs [reg] = value;
- break;
-
- default:
- /* Should not happen. */
- break;
- }
-
- return;
-}
-
-/* Return the value in a cp13 register. */
-
-static ARMword
-read_cp13_reg (unsigned reg, unsigned CRm)
-{
- if (CRm == 0)
- return XScale_cp13_CR0_Regs [reg];
- else if (CRm == 1)
- return XScale_cp13_CR1_Regs [reg];
-
- return 0;
-}
-
-static unsigned
-XScale_cp13_LDC (ARMul_State * state, unsigned type, ARMword instr, ARMword data)
-{
- unsigned reg = BITS (12, 15);
- unsigned result;
-
- result = check_cp13_access (state, reg, 0, 0, 0);
-
- if (result == ARMul_DONE && type == ARMul_DATA)
- write_cp13_reg (reg, 0, data);
-
- return result;
-}
-
-static unsigned
-XScale_cp13_STC (ARMul_State * state, unsigned type, ARMword instr, ARMword * data)
-{
- unsigned reg = BITS (12, 15);
- unsigned result;
-
- result = check_cp13_access (state, reg, 0, 0, 0);
-
- if (result == ARMul_DONE && type == ARMul_DATA)
- * data = read_cp13_reg (reg, 0);
-
- return result;
-}
-
-static unsigned
-XScale_cp13_MRC (ARMul_State * state,
- unsigned type ATTRIBUTE_UNUSED,
- ARMword instr,
- ARMword * value)
-{
- unsigned CRm = BITS (0, 3);
- unsigned reg = BITS (16, 19);
- unsigned result;
-
- result = check_cp13_access (state, reg, CRm, BITS (21, 23), BITS (5, 7));
-
- if (result == ARMul_DONE)
- * value = read_cp13_reg (reg, CRm);
-
- return result;
-}
-
-static unsigned
-XScale_cp13_MCR (ARMul_State * state,
- unsigned type ATTRIBUTE_UNUSED,
- ARMword instr,
- ARMword value)
-{
- unsigned CRm = BITS (0, 3);
- unsigned reg = BITS (16, 19);
- unsigned result;
-
- result = check_cp13_access (state, reg, CRm, BITS (21, 23), BITS (5, 7));
-
- if (result == ARMul_DONE)
- write_cp13_reg (reg, CRm, value);
-
- return result;
-}
-
-static unsigned
-XScale_cp13_read_reg (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned reg,
- ARMword * value)
-{
- /* FIXME: Not sure what to do about the alternative register set
- here. For now default to just accessing CRm == 0 registers. */
- * value = read_cp13_reg (reg, 0);
-
- return TRUE;
-}
-
-static unsigned
-XScale_cp13_write_reg (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned reg,
- ARMword value)
-{
- /* FIXME: Not sure what to do about the alternative register set
- here. For now default to just accessing CRm == 0 registers. */
- write_cp13_reg (reg, 0, value);
-
- return TRUE;
-}
-
-/* Coprocessor 14: Performance Monitoring, Clock and Power management,
- Software Debug. */
-
-static ARMword XScale_cp14_Regs[16];
-
-static unsigned
-XScale_cp14_init (ARMul_State * state ATTRIBUTE_UNUSED)
-{
- int i;
-
- for (i = 16; i--;)
- XScale_cp14_Regs[i] = 0;
-
- return TRUE;
-}
-
-/* Check an access to a register. */
-
-static unsigned
-check_cp14_access (ARMul_State * state,
- unsigned reg,
- unsigned CRm,
- unsigned opcode1,
- unsigned opcode2)
-{
- /* Not allowed to access these register in USER mode. */
- if (state->Mode == USER26MODE || state->Mode == USER32MODE)
- return ARMul_CANT;
-
- /* CRm should be zero. */
- if (CRm != 0)
- return ARMul_CANT;
-
- /* OPcodes should be zero. */
- if (opcode1 != 0 || opcode2 != 0)
- return ARMul_CANT;
-
- /* Accessing registers 4 or 5 has unpredicatable results. */
- if (reg >= 4 && reg <= 5)
- return ARMul_CANT;
-
- return ARMul_DONE;
-}
-
-/* Store a value into one of coprocessor 14's registers. */
-
-static void
-write_cp14_reg (unsigned reg, ARMword value)
-{
- switch (reg)
- {
- case 0: /* PMNC */
- /* Only BITS (27:12), BITS (10:8) and BITS (6:0) can be written. */
- value &= 0x0ffff77f;
-
- /* Reset the clock counter if necessary. */
- if (value & ARMul_CP14_R0_CLKRST)
- XScale_cp14_Regs [1] = 0;
- break;
-
- case 4:
- case 5:
- /* We should not normally reach this code. The debugger interface
- can bypass the normal checks though, so it could happen. */
- value = 0;
- break;
-
- case 6: /* CCLKCFG */
- /* Only BITS (3:0) can be written. */
- value &= 0xf;
- break;
-
- case 7: /* PWRMODE */
- /* Although BITS (1:0) can be written with non-zero values, this would
- have the side effect of putting the processor to sleep. Thus in
- order for the register to be read again, it would have to go into
- ACTIVE mode, which means that any read will see these bits as zero.
-
- Rather than trying to implement complex reset-to-zero-upon-read logic
- we just override the write value with zero. */
- value = 0;
- break;
-
- case 10: /* DCSR */
- /* Only BITS (31:30), BITS (23:22), BITS (20:16) and BITS (5:0) can
- be written. */
- value &= 0xc0df003f;
- break;
-
- case 11: /* TBREG */
- /* No writes are permitted. */
- value = 0;
- break;
-
- case 14: /* TXRXCTRL */
- /* Only BITS (31:30) can be written. */
- value &= 0xc0000000;
- break;
-
- default:
- /* All bits can be written. */
- break;
- }
-
- XScale_cp14_Regs [reg] = value;
-}
-
-/* Return the value in a cp14 register. Not a static function since
- it is used by the code to emulate the BKPT instruction in armemu.c. */
-
-ARMword
-read_cp14_reg (unsigned reg)
-{
- return XScale_cp14_Regs [reg];
-}
-
-static unsigned
-XScale_cp14_LDC (ARMul_State * state, unsigned type, ARMword instr, ARMword data)
-{
- unsigned reg = BITS (12, 15);
- unsigned result;
-
- result = check_cp14_access (state, reg, 0, 0, 0);
-
- if (result == ARMul_DONE && type == ARMul_DATA)
- write_cp14_reg (reg, data);
-
- return result;
-}
-
-static unsigned
-XScale_cp14_STC (ARMul_State * state, unsigned type, ARMword instr, ARMword * data)
-{
- unsigned reg = BITS (12, 15);
- unsigned result;
-
- result = check_cp14_access (state, reg, 0, 0, 0);
-
- if (result == ARMul_DONE && type == ARMul_DATA)
- * data = read_cp14_reg (reg);
-
- return result;
-}
-
-static unsigned
-XScale_cp14_MRC
-(
- ARMul_State * state,
- unsigned type ATTRIBUTE_UNUSED,
- ARMword instr,
- ARMword * value
-)
-{
- unsigned reg = BITS (16, 19);
- unsigned result;
-
- result = check_cp14_access (state, reg, BITS (0, 3), BITS (21, 23), BITS (5, 7));
-
- if (result == ARMul_DONE)
- * value = read_cp14_reg (reg);
-
- return result;
-}
-
-static unsigned
-XScale_cp14_MCR
-(
- ARMul_State * state,
- unsigned type ATTRIBUTE_UNUSED,
- ARMword instr,
- ARMword value
-)
-{
- unsigned reg = BITS (16, 19);
- unsigned result;
-
- result = check_cp14_access (state, reg, BITS (0, 3), BITS (21, 23), BITS (5, 7));
-
- if (result == ARMul_DONE)
- write_cp14_reg (reg, value);
-
- return result;
-}
-
-static unsigned
-XScale_cp14_read_reg
-(
- ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned reg,
- ARMword * value
-)
-{
- * value = read_cp14_reg (reg);
-
- return TRUE;
-}
-
-static unsigned
-XScale_cp14_write_reg
-(
- ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned reg,
- ARMword value
-)
-{
- write_cp14_reg (reg, value);
-
- return TRUE;
-}
-
-/* Here's ARMulator's MMU definition. A few things to note:
- 1) It has eight registers, but only two are defined.
- 2) You can only access its registers with MCR and MRC.
- 3) MMU Register 0 (ID) returns 0x41440110
- 4) Register 1 only has 4 bits defined. Bits 0 to 3 are unused, bit 4
- controls 32/26 bit program space, bit 5 controls 32/26 bit data space,
- bit 6 controls late abort timimg and bit 7 controls big/little endian. */
-
-static ARMword MMUReg[8];
-
-static unsigned
-MMUInit (ARMul_State * state)
-{
- MMUReg[1] = state->prog32Sig << 4 |
- state->data32Sig << 5 | state->lateabtSig << 6 | state->bigendSig << 7;
-
- ARMul_ConsolePrint (state, ", MMU present");
-
- return TRUE;
-}
-
-static unsigned
-MMUMRC (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned type ATTRIBUTE_UNUSED,
- ARMword instr,
- ARMword * value)
-{
- int reg = BITS (16, 19) & 7;
-
- if (reg == 0)
- *value = 0x41440110;
- else
- *value = MMUReg[reg];
-
- return ARMul_DONE;
-}
-
-static unsigned
-MMUMCR (ARMul_State * state,
- unsigned type ATTRIBUTE_UNUSED,
- ARMword instr,
- ARMword value)
-{
- int reg = BITS (16, 19) & 7;
-
- MMUReg[reg] = value;
-
- if (reg == 1)
- {
- ARMword p,d,l,b;
-
- p = state->prog32Sig;
- d = state->data32Sig;
- l = state->lateabtSig;
- b = state->bigendSig;
-
- state->prog32Sig = value >> 4 & 1;
- state->data32Sig = value >> 5 & 1;
- state->lateabtSig = value >> 6 & 1;
- state->bigendSig = value >> 7 & 1;
-
- if ( p != state->prog32Sig
- || d != state->data32Sig
- || l != state->lateabtSig
- || b != state->bigendSig)
- /* Force ARMulator to notice these now. */
- state->Emulate = CHANGEMODE;
- }
-
- return ARMul_DONE;
-}
-
-static unsigned
-MMURead (ARMul_State * state ATTRIBUTE_UNUSED, unsigned reg, ARMword * value)
-{
- if (reg == 0)
- *value = 0x41440110;
- else if (reg < 8)
- *value = MMUReg[reg];
-
- return TRUE;
-}
-
-static unsigned
-MMUWrite (ARMul_State * state, unsigned reg, ARMword value)
-{
- if (reg < 8)
- MMUReg[reg] = value;
-
- if (reg == 1)
- {
- ARMword p,d,l,b;
-
- p = state->prog32Sig;
- d = state->data32Sig;
- l = state->lateabtSig;
- b = state->bigendSig;
-
- state->prog32Sig = value >> 4 & 1;
- state->data32Sig = value >> 5 & 1;
- state->lateabtSig = value >> 6 & 1;
- state->bigendSig = value >> 7 & 1;
-
- if ( p != state->prog32Sig
- || d != state->data32Sig
- || l != state->lateabtSig
- || b != state->bigendSig)
- /* Force ARMulator to notice these now. */
- state->Emulate = CHANGEMODE;
- }
-
- return TRUE;
-}
-
-
-/* What follows is the Validation Suite Coprocessor. It uses two
- co-processor numbers (4 and 5) and has the follwing functionality.
- Sixteen registers. Both co-processor nuimbers can be used in an MCR
- and MRC to access these registers. CP 4 can LDC and STC to and from
- the registers. CP 4 and CP 5 CDP 0 will busy wait for the number of
- cycles specified by a CP register. CP 5 CDP 1 issues a FIQ after a
- number of cycles (specified in a CP register), CDP 2 issues an IRQW
- in the same way, CDP 3 and 4 turn of the FIQ and IRQ source, and CDP 5
- stores a 32 bit time value in a CP register (actually it's the total
- number of N, S, I, C and F cyles). */
-
-static ARMword ValReg[16];
-
-static unsigned
-ValLDC (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned type,
- ARMword instr,
- ARMword data)
-{
- static unsigned words;
-
- if (type != ARMul_DATA)
- words = 0;
- else
- {
- ValReg[BITS (12, 15)] = data;
-
- if (BIT (22))
- /* It's a long access, get two words. */
- if (words++ != 4)
- return ARMul_INC;
- }
-
- return ARMul_DONE;
-}
-
-static unsigned
-ValSTC (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned type,
- ARMword instr,
- ARMword * data)
-{
- static unsigned words;
-
- if (type != ARMul_DATA)
- words = 0;
- else
- {
- * data = ValReg[BITS (12, 15)];
-
- if (BIT (22))
- /* It's a long access, get two words. */
- if (words++ != 4)
- return ARMul_INC;
- }
-
- return ARMul_DONE;
-}
-
-static unsigned
-ValMRC (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned type ATTRIBUTE_UNUSED,
- ARMword instr,
- ARMword * value)
-{
- *value = ValReg[BITS (16, 19)];
-
- return ARMul_DONE;
-}
-
-static unsigned
-ValMCR (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned type ATTRIBUTE_UNUSED,
- ARMword instr,
- ARMword value)
-{
- ValReg[BITS (16, 19)] = value;
-
- return ARMul_DONE;
-}
-
-static unsigned
-ValCDP (ARMul_State * state, unsigned type, ARMword instr)
-{
- static unsigned long finish = 0;
-
- if (BITS (20, 23) != 0)
- return ARMul_CANT;
-
- if (type == ARMul_FIRST)
- {
- ARMword howlong;
-
- howlong = ValReg[BITS (0, 3)];
-
- /* First cycle of a busy wait. */
- finish = ARMul_Time (state) + howlong;
-
- return howlong == 0 ? ARMul_DONE : ARMul_BUSY;
- }
- else if (type == ARMul_BUSY)
- {
- if (ARMul_Time (state) >= finish)
- return ARMul_DONE;
- else
- return ARMul_BUSY;
- }
-
- return ARMul_CANT;
-}
-
-static unsigned
-DoAFIQ (ARMul_State * state)
-{
- state->NfiqSig = LOW;
- state->Exception++;
- return 0;
-}
-
-static unsigned
-DoAIRQ (ARMul_State * state)
-{
- state->NirqSig = LOW;
- state->Exception++;
- return 0;
-}
-
-static unsigned
-IntCDP (ARMul_State * state, unsigned type, ARMword instr)
-{
- static unsigned long finish;
- ARMword howlong;
-
- howlong = ValReg[BITS (0, 3)];
-
- switch ((int) BITS (20, 23))
- {
- case 0:
- if (type == ARMul_FIRST)
- {
- /* First cycle of a busy wait. */
- finish = ARMul_Time (state) + howlong;
-
- return howlong == 0 ? ARMul_DONE : ARMul_BUSY;
- }
- else if (type == ARMul_BUSY)
- {
- if (ARMul_Time (state) >= finish)
- return ARMul_DONE;
- else
- return ARMul_BUSY;
- }
- return ARMul_DONE;
-
- case 1:
- if (howlong == 0)
- ARMul_Abort (state, ARMul_FIQV);
- else
- ARMul_ScheduleEvent (state, howlong, DoAFIQ);
- return ARMul_DONE;
-
- case 2:
- if (howlong == 0)
- ARMul_Abort (state, ARMul_IRQV);
- else
- ARMul_ScheduleEvent (state, howlong, DoAIRQ);
- return ARMul_DONE;
-
- case 3:
- state->NfiqSig = HIGH;
- state->Exception--;
- return ARMul_DONE;
-
- case 4:
- state->NirqSig = HIGH;
- state->Exception--;
- return ARMul_DONE;
-
- case 5:
- ValReg[BITS (0, 3)] = ARMul_Time (state);
- return ARMul_DONE;
- }
-
- return ARMul_CANT;
-}
-
-/* Install co-processor instruction handlers in this routine. */
-
-unsigned
-ARMul_CoProInit (ARMul_State * state)
-{
- unsigned int i;
-
- /* Initialise tham all first. */
- for (i = 0; i < 16; i++)
- ARMul_CoProDetach (state, i);
-
- /* Install CoPro Instruction handlers here.
- The format is:
- ARMul_CoProAttach (state, CP Number, Init routine, Exit routine
- LDC routine, STC routine, MRC routine, MCR routine,
- CDP routine, Read Reg routine, Write Reg routine). */
- if (state->is_ep9312)
- {
- ARMul_CoProAttach (state, 4, NULL, NULL, DSPLDC4, DSPSTC4,
- DSPMRC4, DSPMCR4, DSPCDP4, NULL, NULL);
- ARMul_CoProAttach (state, 5, NULL, NULL, DSPLDC5, DSPSTC5,
- DSPMRC5, DSPMCR5, DSPCDP5, NULL, NULL);
- ARMul_CoProAttach (state, 6, NULL, NULL, NULL, NULL,
- DSPMRC6, DSPMCR6, DSPCDP6, NULL, NULL);
- }
- else
- {
- ARMul_CoProAttach (state, 4, NULL, NULL, ValLDC, ValSTC,
- ValMRC, ValMCR, ValCDP, NULL, NULL);
-
- ARMul_CoProAttach (state, 5, NULL, NULL, NULL, NULL,
- ValMRC, ValMCR, IntCDP, NULL, NULL);
- }
-
- if (state->is_XScale)
- {
- ARMul_CoProAttach (state, 13, XScale_cp13_init, NULL,
- XScale_cp13_LDC, XScale_cp13_STC, XScale_cp13_MRC,
- XScale_cp13_MCR, NULL, XScale_cp13_read_reg,
- XScale_cp13_write_reg);
-
- ARMul_CoProAttach (state, 14, XScale_cp14_init, NULL,
- XScale_cp14_LDC, XScale_cp14_STC, XScale_cp14_MRC,
- XScale_cp14_MCR, NULL, XScale_cp14_read_reg,
- XScale_cp14_write_reg);
-
- ARMul_CoProAttach (state, 15, XScale_cp15_init, NULL,
- NULL, NULL, XScale_cp15_MRC, XScale_cp15_MCR,
- NULL, XScale_cp15_read_reg, XScale_cp15_write_reg);
- }
- else
- {
- ARMul_CoProAttach (state, 15, MMUInit, NULL, NULL, NULL,
- MMUMRC, MMUMCR, NULL, MMURead, MMUWrite);
- }
-
- if (state->is_iWMMXt)
- {
- ARMul_CoProAttach (state, 0, NULL, NULL, IwmmxtLDC, IwmmxtSTC,
- NULL, NULL, IwmmxtCDP, NULL, NULL);
-
- ARMul_CoProAttach (state, 1, NULL, NULL, NULL, NULL,
- IwmmxtMRC, IwmmxtMCR, IwmmxtCDP, NULL, NULL);
- }
-
- /* No handlers below here. */
-
- /* Call all the initialisation routines. */
- for (i = 0; i < 16; i++)
- if (state->CPInit[i])
- (state->CPInit[i]) (state);
-
- return TRUE;
-}
-
-/* Install co-processor finalisation routines in this routine. */
-
-void
-ARMul_CoProExit (ARMul_State * state)
-{
- register unsigned i;
-
- for (i = 0; i < 16; i++)
- if (state->CPExit[i])
- (state->CPExit[i]) (state);
-
- for (i = 0; i < 16; i++) /* Detach all handlers. */
- ARMul_CoProDetach (state, i);
-}
-
-/* Routines to hook Co-processors into ARMulator. */
-
-void
-ARMul_CoProAttach (ARMul_State * state,
- unsigned number,
- ARMul_CPInits * init,
- ARMul_CPExits * exit,
- ARMul_LDCs * ldc,
- ARMul_STCs * stc,
- ARMul_MRCs * mrc,
- ARMul_MCRs * mcr,
- ARMul_CDPs * cdp,
- ARMul_CPReads * read,
- ARMul_CPWrites * write)
-{
- if (init != NULL)
- state->CPInit[number] = init;
- if (exit != NULL)
- state->CPExit[number] = exit;
- if (ldc != NULL)
- state->LDC[number] = ldc;
- if (stc != NULL)
- state->STC[number] = stc;
- if (mrc != NULL)
- state->MRC[number] = mrc;
- if (mcr != NULL)
- state->MCR[number] = mcr;
- if (cdp != NULL)
- state->CDP[number] = cdp;
- if (read != NULL)
- state->CPRead[number] = read;
- if (write != NULL)
- state->CPWrite[number] = write;
-}
-
-void
-ARMul_CoProDetach (ARMul_State * state, unsigned number)
-{
- ARMul_CoProAttach (state, number, NULL, NULL,
- NoCoPro4R, NoCoPro4W, NoCoPro4W, NoCoPro4R,
- NoCoPro3R, NULL, NULL);
-
- state->CPInit[number] = NULL;
- state->CPExit[number] = NULL;
- state->CPRead[number] = NULL;
- state->CPWrite[number] = NULL;
-}
diff --git a/sim/arm/armdefs.h b/sim/arm/armdefs.h
deleted file mode 100644
index d87220b..0000000
--- a/sim/arm/armdefs.h
+++ /dev/null
@@ -1,426 +0,0 @@
-/* armdefs.h -- ARMulator common definitions: ARM6 Instruction Emulator.
- Copyright (C) 1994 Advanced RISC Machines Ltd.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 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, see <http://www.gnu.org/licenses/>. */
-
-#ifndef ARMDEFS_H
-#define ARMDEFS_H
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <ansidecl.h>
-
-#define FALSE 0
-#define TRUE 1
-#define LOW 0
-#define HIGH 1
-#define LOWHIGH 1
-#define HIGHLOW 2
-
-typedef uint32_t ARMword;
-typedef int32_t ARMsword;
-typedef uint64_t ARMdword;
-typedef int64_t ARMsdword;
-typedef struct ARMul_State ARMul_State;
-
-typedef unsigned ARMul_CPInits (ARMul_State * state);
-typedef unsigned ARMul_CPExits (ARMul_State * state);
-typedef unsigned ARMul_LDCs (ARMul_State * state, unsigned type,
- ARMword instr, ARMword value);
-typedef unsigned ARMul_STCs (ARMul_State * state, unsigned type,
- ARMword instr, ARMword * value);
-typedef unsigned ARMul_MRCs (ARMul_State * state, unsigned type,
- ARMword instr, ARMword * value);
-typedef unsigned ARMul_MCRs (ARMul_State * state, unsigned type,
- ARMword instr, ARMword value);
-typedef unsigned ARMul_CDPs (ARMul_State * state, unsigned type,
- ARMword instr);
-typedef unsigned ARMul_CPReads (ARMul_State * state, unsigned reg,
- ARMword * value);
-typedef unsigned ARMul_CPWrites (ARMul_State * state, unsigned reg,
- ARMword value);
-
-typedef double ARMdval; /* FIXME: Must be a 64-bit floating point type. */
-typedef float ARMfval; /* FIXME: Must be a 32-bit floating point type. */
-
-typedef union
-{
- ARMword uword[2];
- ARMsword sword[2];
- ARMfval fval[2];
- ARMdword dword;
- ARMdval dval;
-} ARM_VFP_reg;
-
-#define VFP_fval(N) (state->VFP_Reg[(N)>> 1].fval[(N) & 1])
-#define VFP_uword(N) (state->VFP_Reg[(N)>> 1].uword[(N) & 1])
-#define VFP_sword(N) (state->VFP_Reg[(N)>> 1].sword[(N) & 1])
-
-#define VFP_dval(N) (state->VFP_Reg[(N)].dval)
-#define VFP_dword(N) (state->VFP_Reg[(N)].dword)
-
-struct ARMul_State
-{
- ARMword Emulate; /* to start and stop emulation */
- unsigned EndCondition; /* reason for stopping */
- ARMword Reg[16]; /* the current register file */
- ARMword RegBank[7][16]; /* all the registers */
- /* 40 bit accumulator. We always keep this 64 bits wide,
- and move only 40 bits out of it in an MRA insn. */
- ARMdword Accumulator;
- ARMword Cpsr; /* the current psr */
- ARMword Spsr[7]; /* the exception psr's */
- ARMword NFlag, ZFlag, CFlag, VFlag, IFFlags; /* dummy flags for speed */
- ARMword SFlag;
-#ifdef MODET
- ARMword TFlag; /* Thumb state */
-#endif
- ARMword Bank; /* the current register bank */
- ARMword Mode; /* the current mode */
- ARMword instr, pc, temp; /* saved register state */
- ARMword loaded, decoded; /* saved pipeline state */
- unsigned long NumScycles, NumNcycles, NumIcycles, NumCcycles, NumFcycles; /* emulated cycles used */
- unsigned long NumInstrs; /* the number of instructions executed */
- unsigned NextInstr;
- unsigned VectorCatch; /* caught exception mask */
- unsigned CallDebug; /* set to call the debugger */
- unsigned CanWatch; /* set by memory interface if its willing to suffer the
- overhead of checking for watchpoints on each memory
- access */
- unsigned MemReadDebug, MemWriteDebug;
- unsigned long StopHandle;
-
- unsigned char *MemDataPtr; /* admin data */
- unsigned char *MemInPtr; /* the Data In bus */
- unsigned char *MemOutPtr; /* the Data Out bus (which you may not need */
- unsigned char *MemSparePtr; /* extra space */
- ARMword MemSize;
-
- unsigned char *OSptr; /* OS Handle */
- char *CommandLine; /* Command Line from ARMsd */
-
- ARMul_CPInits *CPInit[16]; /* coprocessor initialisers */
- ARMul_CPExits *CPExit[16]; /* coprocessor finalisers */
- ARMul_LDCs *LDC[16]; /* LDC instruction */
- ARMul_STCs *STC[16]; /* STC instruction */
- ARMul_MRCs *MRC[16]; /* MRC instruction */
- ARMul_MCRs *MCR[16]; /* MCR instruction */
- ARMul_CDPs *CDP[16]; /* CDP instruction */
- ARMul_CPReads *CPRead[16]; /* Read CP register */
- ARMul_CPWrites *CPWrite[16]; /* Write CP register */
- unsigned char *CPData[16]; /* Coprocessor data */
- unsigned char const *CPRegWords[16]; /* map of coprocessor register sizes */
- unsigned long LastTime; /* Value of last call to ARMul_Time() */
- ARMword CP14R0_CCD; /* used to count 64 clock cycles with CP14 R0 bit
- 3 set */
-
- unsigned EventSet; /* the number of events in the queue */
- unsigned long Now; /* time to the nearest cycle */
- struct EventNode **EventPtr; /* the event list */
-
- unsigned Exception; /* enable the next four values */
- unsigned Debug; /* show instructions as they are executed */
- unsigned NresetSig; /* reset the processor */
- unsigned NfiqSig;
- unsigned NirqSig;
-
- unsigned abortSig;
- unsigned NtransSig;
- unsigned bigendSig;
- unsigned prog32Sig;
- unsigned data32Sig;
- unsigned lateabtSig;
- ARMword Vector; /* synthesize aborts in cycle modes */
- ARMword Aborted; /* sticky flag for aborts */
- ARMword Reseted; /* sticky flag for Reset */
- ARMword Inted, LastInted; /* sticky flags for interrupts */
- ARMword Base; /* extra hand for base writeback */
- ARMword AbortAddr; /* to keep track of Prefetch aborts */
-
- const struct Dbg_HostosInterface *hostif;
-
- unsigned is_v4; /* Are we emulating a v4 architecture (or higher) ? */
- unsigned is_v5; /* Are we emulating a v5 architecture ? */
- unsigned is_v5e; /* Are we emulating a v5e architecture ? */
- unsigned is_v6; /* Are we emulating a v6 architecture ? */
- unsigned is_XScale; /* Are we emulating an XScale architecture ? */
- unsigned is_iWMMXt; /* Are we emulating an iWMMXt co-processor ? */
- unsigned is_ep9312; /* Are we emulating a Cirrus Maverick co-processor ? */
- unsigned verbose; /* Print various messages like the banner */
-
- ARM_VFP_reg VFP_Reg[32]; /* Advanced SIMD registers. */
- ARMword FPSCR; /* Floating Point Status Register. */
-};
-
-/***************************************************************************\
-* Properties of ARM we know about *
-\***************************************************************************/
-
-/* The bitflags */
-#define ARM_Fix26_Prop 0x01
-#define ARM_Nexec_Prop 0x02
-#define ARM_Debug_Prop 0x10
-#define ARM_Isync_Prop ARM_Debug_Prop
-#define ARM_Lock_Prop 0x20
-#define ARM_v4_Prop 0x40
-#define ARM_v5_Prop 0x80
-#define ARM_v5e_Prop 0x100
-#define ARM_XScale_Prop 0x200
-#define ARM_ep9312_Prop 0x400
-#define ARM_iWMMXt_Prop 0x800
-#define ARM_v6_Prop 0x1000
-
-/***************************************************************************\
-* Macros to extract instruction fields *
-\***************************************************************************/
-
-#undef BIT /* common/sim-bits.h conflict :( */
-#define BIT(n) ( (ARMword)(instr>>(n))&1) /* bit n of instruction */
-#define BITS(m,n) ( (ARMword)(instr<<(31-(n))) >> ((31-(n))+(m)) ) /* bits m to n of instr */
-#define TOPBITS(n) (instr >> (n)) /* bits 31 to n of instr */
-
-/***************************************************************************\
-* The hardware vector addresses *
-\***************************************************************************/
-
-#define ARMResetV 0L
-#define ARMUndefinedInstrV 4L
-#define ARMSWIV 8L
-#define ARMPrefetchAbortV 12L
-#define ARMDataAbortV 16L
-#define ARMAddrExceptnV 20L
-#define ARMIRQV 24L
-#define ARMFIQV 28L
-#define ARMErrorV 32L /* This is an offset, not an address ! */
-
-#define ARMul_ResetV ARMResetV
-#define ARMul_UndefinedInstrV ARMUndefinedInstrV
-#define ARMul_SWIV ARMSWIV
-#define ARMul_PrefetchAbortV ARMPrefetchAbortV
-#define ARMul_DataAbortV ARMDataAbortV
-#define ARMul_AddrExceptnV ARMAddrExceptnV
-#define ARMul_IRQV ARMIRQV
-#define ARMul_FIQV ARMFIQV
-
-/***************************************************************************\
-* Mode and Bank Constants *
-\***************************************************************************/
-
-#define USER26MODE 0L
-#define FIQ26MODE 1L
-#define IRQ26MODE 2L
-#define SVC26MODE 3L
-#define USER32MODE 16L
-#define FIQ32MODE 17L
-#define IRQ32MODE 18L
-#define SVC32MODE 19L
-#define ABORT32MODE 23L
-#define UNDEF32MODE 27L
-#define SYSTEMMODE 31L
-
-#define ARM32BITMODE (state->Mode > 3)
-#define ARM26BITMODE (state->Mode <= 3)
-#define ARMMODE (state->Mode)
-#define ARMul_MODEBITS 0x1fL
-#define ARMul_MODE32BIT ARM32BITMODE
-#define ARMul_MODE26BIT ARM26BITMODE
-
-#define USERBANK 0
-#define FIQBANK 1
-#define IRQBANK 2
-#define SVCBANK 3
-#define ABORTBANK 4
-#define UNDEFBANK 5
-#define DUMMYBANK 6
-#define SYSTEMBANK USERBANK
-
-#define BANK_CAN_ACCESS_SPSR(bank) \
- ((bank) != USERBANK && (bank) != SYSTEMBANK && (bank) != DUMMYBANK)
-
-/***************************************************************************\
-* Definitons of things in the emulator *
-\***************************************************************************/
-
-extern void ARMul_EmulateInit (void);
-extern ARMul_State *ARMul_NewState (void);
-extern void ARMul_Reset (ARMul_State * state);
-extern ARMword ARMul_DoProg (ARMul_State * state);
-extern ARMword ARMul_DoInstr (ARMul_State * state);
-
-/***************************************************************************\
-* Definitons of things for event handling *
-\***************************************************************************/
-
-extern void ARMul_ScheduleEvent (ARMul_State * state, unsigned long delay,
- unsigned (*func) ());
-extern void ARMul_EnvokeEvent (ARMul_State * state);
-extern unsigned long ARMul_Time (ARMul_State * state);
-
-/***************************************************************************\
-* Useful support routines *
-\***************************************************************************/
-
-extern ARMword ARMul_GetReg (ARMul_State * state, unsigned mode,
- unsigned reg);
-extern void ARMul_SetReg (ARMul_State * state, unsigned mode, unsigned reg,
- ARMword value);
-extern ARMword ARMul_GetPC (ARMul_State * state);
-extern ARMword ARMul_GetNextPC (ARMul_State * state);
-extern void ARMul_SetPC (ARMul_State * state, ARMword value);
-extern ARMword ARMul_GetR15 (ARMul_State * state);
-extern void ARMul_SetR15 (ARMul_State * state, ARMword value);
-
-extern ARMword ARMul_GetCPSR (ARMul_State * state);
-extern void ARMul_SetCPSR (ARMul_State * state, ARMword value);
-extern ARMword ARMul_GetSPSR (ARMul_State * state, ARMword mode);
-extern void ARMul_SetSPSR (ARMul_State * state, ARMword mode, ARMword value);
-
-/***************************************************************************\
-* Definitons of things to handle aborts *
-\***************************************************************************/
-
-extern void ARMul_Abort (ARMul_State * state, ARMword address);
-#define ARMul_ABORTWORD 0xefffffff /* SWI -1 */
-#define ARMul_PREFETCHABORT(address) if (state->AbortAddr == 1) \
- state->AbortAddr = (address & ~3L)
-#define ARMul_DATAABORT(address) state->abortSig = HIGH ; \
- state->Aborted = ARMul_DataAbortV ;
-#define ARMul_CLEARABORT state->abortSig = LOW
-
-/***************************************************************************\
-* Definitons of things in the memory interface *
-\***************************************************************************/
-
-extern unsigned ARMul_MemoryInit (ARMul_State * state,
- unsigned long initmemsize);
-extern void ARMul_MemoryExit (ARMul_State * state);
-
-extern ARMword ARMul_LoadInstrS (ARMul_State * state, ARMword address,
- ARMword isize);
-extern ARMword ARMul_LoadInstrN (ARMul_State * state, ARMword address,
- ARMword isize);
-extern ARMword ARMul_ReLoadInstr (ARMul_State * state, ARMword address,
- ARMword isize);
-
-extern ARMword ARMul_LoadWordS (ARMul_State * state, ARMword address);
-extern ARMword ARMul_LoadWordN (ARMul_State * state, ARMword address);
-extern ARMword ARMul_LoadHalfWord (ARMul_State * state, ARMword address);
-extern ARMword ARMul_LoadByte (ARMul_State * state, ARMword address);
-
-extern void ARMul_StoreWordS (ARMul_State * state, ARMword address,
- ARMword data);
-extern void ARMul_StoreWordN (ARMul_State * state, ARMword address,
- ARMword data);
-extern void ARMul_StoreHalfWord (ARMul_State * state, ARMword address,
- ARMword data);
-extern void ARMul_StoreByte (ARMul_State * state, ARMword address,
- ARMword data);
-
-extern ARMword ARMul_SwapWord (ARMul_State * state, ARMword address,
- ARMword data);
-extern ARMword ARMul_SwapByte (ARMul_State * state, ARMword address,
- ARMword data);
-
-extern void ARMul_Icycles (ARMul_State * state, unsigned number,
- ARMword address);
-extern void ARMul_Ccycles (ARMul_State * state, unsigned number,
- ARMword address);
-
-extern ARMword ARMul_ReadWord (ARMul_State * state, ARMword address);
-extern ARMword ARMul_ReadByte (ARMul_State * state, ARMword address);
-extern ARMword ARMul_SafeReadByte (ARMul_State * state, ARMword address);
-extern void ARMul_WriteWord (ARMul_State * state, ARMword address,
- ARMword data);
-extern void ARMul_WriteByte (ARMul_State * state, ARMword address,
- ARMword data);
-extern void ARMul_SafeWriteByte (ARMul_State * state, ARMword address,
- ARMword data);
-
-extern ARMword ARMul_MemAccess (ARMul_State * state, ARMword, ARMword,
- ARMword, ARMword, ARMword, ARMword, ARMword,
- ARMword, ARMword, ARMword);
-
-/***************************************************************************\
-* Definitons of things in the co-processor interface *
-\***************************************************************************/
-
-#define ARMul_FIRST 0
-#define ARMul_TRANSFER 1
-#define ARMul_BUSY 2
-#define ARMul_DATA 3
-#define ARMul_INTERRUPT 4
-#define ARMul_DONE 0
-#define ARMul_CANT 1
-#define ARMul_INC 3
-
-#define ARMul_CP13_R0_FIQ 0x1
-#define ARMul_CP13_R0_IRQ 0x2
-#define ARMul_CP13_R8_PMUS 0x1
-
-#define ARMul_CP14_R0_ENABLE 0x0001
-#define ARMul_CP14_R0_CLKRST 0x0004
-#define ARMul_CP14_R0_CCD 0x0008
-#define ARMul_CP14_R0_INTEN0 0x0010
-#define ARMul_CP14_R0_INTEN1 0x0020
-#define ARMul_CP14_R0_INTEN2 0x0040
-#define ARMul_CP14_R0_FLAG0 0x0100
-#define ARMul_CP14_R0_FLAG1 0x0200
-#define ARMul_CP14_R0_FLAG2 0x0400
-#define ARMul_CP14_R10_MOE_IB 0x0004
-#define ARMul_CP14_R10_MOE_DB 0x0008
-#define ARMul_CP14_R10_MOE_BT 0x000c
-#define ARMul_CP15_R1_ENDIAN 0x0080
-#define ARMul_CP15_R1_ALIGN 0x0002
-#define ARMul_CP15_R5_X 0x0400
-#define ARMul_CP15_R5_ST_ALIGN 0x0001
-#define ARMul_CP15_R5_IMPRE 0x0406
-#define ARMul_CP15_R5_MMU_EXCPT 0x0400
-#define ARMul_CP15_DBCON_M 0x0100
-#define ARMul_CP15_DBCON_E1 0x000c
-#define ARMul_CP15_DBCON_E0 0x0003
-
-extern unsigned ARMul_CoProInit (ARMul_State * state);
-extern void ARMul_CoProExit (ARMul_State * state);
-extern void ARMul_CoProAttach (ARMul_State * state, unsigned number,
- ARMul_CPInits * init, ARMul_CPExits * exit,
- ARMul_LDCs * ldc, ARMul_STCs * stc,
- ARMul_MRCs * mrc, ARMul_MCRs * mcr,
- ARMul_CDPs * cdp,
- ARMul_CPReads * read, ARMul_CPWrites * write);
-extern void ARMul_CoProDetach (ARMul_State * state, unsigned number);
-extern void XScale_check_memacc (ARMul_State * state, ARMword * address,
- int store);
-extern void XScale_set_fsr_far (ARMul_State * state, ARMword fsr, ARMword far);
-extern int XScale_debug_moe (ARMul_State * state, int moe);
-
-/***************************************************************************\
-* Definitons of things in the host environment *
-\***************************************************************************/
-
-extern unsigned ARMul_OSInit (ARMul_State * state);
-extern unsigned ARMul_OSHandleSWI (ARMul_State * state, ARMword number);
-
-/***************************************************************************\
-* Host-dependent stuff *
-\***************************************************************************/
-
-extern void ARMul_UndefInstr (ARMul_State *, ARMword);
-extern void ARMul_FixCPSR (ARMul_State *, ARMword, ARMword);
-extern void ARMul_FixSPSR (ARMul_State *, ARMword, ARMword);
-extern void ARMul_ConsolePrint (ARMul_State *, const char *, ...)
- ATTRIBUTE_PRINTF (2, 3);
-extern void ARMul_SelectProcessor (ARMul_State *, unsigned);
-
-#endif
diff --git a/sim/arm/armemu.c b/sim/arm/armemu.c
deleted file mode 100644
index 2958977..0000000
--- a/sim/arm/armemu.c
+++ /dev/null
@@ -1,6118 +0,0 @@
-/* armemu.c -- Main instruction emulation: ARM7 Instruction Emulator.
- Copyright (C) 1994 Advanced RISC Machines Ltd.
- Modifications to add arch. v4 support by <jsmith@cygnus.com>.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 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, see <http://www.gnu.org/licenses/>. */
-
-/* This must come before any other includes. */
-#include "defs.h"
-
-#include "armdefs.h"
-#include "armemu.h"
-#include "armos.h"
-#include "iwmmxt.h"
-
-static ARMword GetDPRegRHS (ARMul_State *, ARMword);
-static ARMword GetDPSRegRHS (ARMul_State *, ARMword);
-static void WriteR15 (ARMul_State *, ARMword);
-static void WriteSR15 (ARMul_State *, ARMword);
-static void WriteR15Branch (ARMul_State *, ARMword);
-static void WriteR15Load (ARMul_State *, ARMword);
-static ARMword GetLSRegRHS (ARMul_State *, ARMword);
-static ARMword GetLS7RHS (ARMul_State *, ARMword);
-static unsigned LoadWord (ARMul_State *, ARMword, ARMword);
-static unsigned LoadHalfWord (ARMul_State *, ARMword, ARMword, int);
-static unsigned LoadByte (ARMul_State *, ARMword, ARMword, int);
-static unsigned StoreWord (ARMul_State *, ARMword, ARMword);
-static unsigned StoreHalfWord (ARMul_State *, ARMword, ARMword);
-static unsigned StoreByte (ARMul_State *, ARMword, ARMword);
-static void LoadMult (ARMul_State *, ARMword, ARMword, ARMword);
-static void StoreMult (ARMul_State *, ARMword, ARMword, ARMword);
-static void LoadSMult (ARMul_State *, ARMword, ARMword, ARMword);
-static void StoreSMult (ARMul_State *, ARMword, ARMword, ARMword);
-static unsigned Multiply64 (ARMul_State *, ARMword, int, int);
-static unsigned MultiplyAdd64 (ARMul_State *, ARMword, int, int);
-static void Handle_Load_Double (ARMul_State *, ARMword);
-static void Handle_Store_Double (ARMul_State *, ARMword);
-
-#define LUNSIGNED (0) /* unsigned operation */
-#define LSIGNED (1) /* signed operation */
-#define LDEFAULT (0) /* default : do nothing */
-#define LSCC (1) /* set condition codes on result */
-
-extern int stop_simulator;
-
-/* Short-hand macros for LDR/STR. */
-
-/* Store post decrement writeback. */
-#define SHDOWNWB() \
- lhs = LHS ; \
- if (StoreHalfWord (state, instr, lhs)) \
- LSBase = lhs - GetLS7RHS (state, instr);
-
-/* Store post increment writeback. */
-#define SHUPWB() \
- lhs = LHS ; \
- if (StoreHalfWord (state, instr, lhs)) \
- LSBase = lhs + GetLS7RHS (state, instr);
-
-/* Store pre decrement. */
-#define SHPREDOWN() \
- (void)StoreHalfWord (state, instr, LHS - GetLS7RHS (state, instr));
-
-/* Store pre decrement writeback. */
-#define SHPREDOWNWB() \
- temp = LHS - GetLS7RHS (state, instr); \
- if (StoreHalfWord (state, instr, temp)) \
- LSBase = temp;
-
-/* Store pre increment. */
-#define SHPREUP() \
- (void)StoreHalfWord (state, instr, LHS + GetLS7RHS (state, instr));
-
-/* Store pre increment writeback. */
-#define SHPREUPWB() \
- temp = LHS + GetLS7RHS (state, instr); \
- if (StoreHalfWord (state, instr, temp)) \
- LSBase = temp;
-
-/* Load post decrement writeback. */
-#define LHPOSTDOWN() \
-{ \
- int done = 1; \
- lhs = LHS; \
- temp = lhs - GetLS7RHS (state, instr); \
- \
- switch (BITS (5, 6)) \
- { \
- case 1: /* H */ \
- if (LoadHalfWord (state, instr, lhs, LUNSIGNED)) \
- LSBase = temp; \
- break; \
- case 2: /* SB */ \
- if (LoadByte (state, instr, lhs, LSIGNED)) \
- LSBase = temp; \
- break; \
- case 3: /* SH */ \
- if (LoadHalfWord (state, instr, lhs, LSIGNED)) \
- LSBase = temp; \
- break; \
- case 0: /* SWP handled elsewhere. */ \
- default: \
- done = 0; \
- break; \
- } \
- if (done) \
- break; \
-}
-
-/* Load post increment writeback. */
-#define LHPOSTUP() \
-{ \
- int done = 1; \
- lhs = LHS; \
- temp = lhs + GetLS7RHS (state, instr); \
- \
- switch (BITS (5, 6)) \
- { \
- case 1: /* H */ \
- if (LoadHalfWord (state, instr, lhs, LUNSIGNED)) \
- LSBase = temp; \
- break; \
- case 2: /* SB */ \
- if (LoadByte (state, instr, lhs, LSIGNED)) \
- LSBase = temp; \
- break; \
- case 3: /* SH */ \
- if (LoadHalfWord (state, instr, lhs, LSIGNED)) \
- LSBase = temp; \
- break; \
- case 0: /* SWP handled elsewhere. */ \
- default: \
- done = 0; \
- break; \
- } \
- if (done) \
- break; \
-}
-
-/* Load pre decrement. */
-#define LHPREDOWN() \
-{ \
- int done = 1; \
- \
- temp = LHS - GetLS7RHS (state, instr); \
- switch (BITS (5, 6)) \
- { \
- case 1: /* H */ \
- (void) LoadHalfWord (state, instr, temp, LUNSIGNED); \
- break; \
- case 2: /* SB */ \
- (void) LoadByte (state, instr, temp, LSIGNED); \
- break; \
- case 3: /* SH */ \
- (void) LoadHalfWord (state, instr, temp, LSIGNED); \
- break; \
- case 0: \
- /* SWP handled elsewhere. */ \
- default: \
- done = 0; \
- break; \
- } \
- if (done) \
- break; \
-}
-
-/* Load pre decrement writeback. */
-#define LHPREDOWNWB() \
-{ \
- int done = 1; \
- \
- temp = LHS - GetLS7RHS (state, instr); \
- switch (BITS (5, 6)) \
- { \
- case 1: /* H */ \
- if (LoadHalfWord (state, instr, temp, LUNSIGNED)) \
- LSBase = temp; \
- break; \
- case 2: /* SB */ \
- if (LoadByte (state, instr, temp, LSIGNED)) \
- LSBase = temp; \
- break; \
- case 3: /* SH */ \
- if (LoadHalfWord (state, instr, temp, LSIGNED)) \
- LSBase = temp; \
- break; \
- case 0: \
- /* SWP handled elsewhere. */ \
- default: \
- done = 0; \
- break; \
- } \
- if (done) \
- break; \
-}
-
-/* Load pre increment. */
-#define LHPREUP() \
-{ \
- int done = 1; \
- \
- temp = LHS + GetLS7RHS (state, instr); \
- switch (BITS (5, 6)) \
- { \
- case 1: /* H */ \
- (void) LoadHalfWord (state, instr, temp, LUNSIGNED); \
- break; \
- case 2: /* SB */ \
- (void) LoadByte (state, instr, temp, LSIGNED); \
- break; \
- case 3: /* SH */ \
- (void) LoadHalfWord (state, instr, temp, LSIGNED); \
- break; \
- case 0: \
- /* SWP handled elsewhere. */ \
- default: \
- done = 0; \
- break; \
- } \
- if (done) \
- break; \
-}
-
-/* Load pre increment writeback. */
-#define LHPREUPWB() \
-{ \
- int done = 1; \
- \
- temp = LHS + GetLS7RHS (state, instr); \
- switch (BITS (5, 6)) \
- { \
- case 1: /* H */ \
- if (LoadHalfWord (state, instr, temp, LUNSIGNED)) \
- LSBase = temp; \
- break; \
- case 2: /* SB */ \
- if (LoadByte (state, instr, temp, LSIGNED)) \
- LSBase = temp; \
- break; \
- case 3: /* SH */ \
- if (LoadHalfWord (state, instr, temp, LSIGNED)) \
- LSBase = temp; \
- break; \
- case 0: \
- /* SWP handled elsewhere. */ \
- default: \
- done = 0; \
- break; \
- } \
- if (done) \
- break; \
-}
-
-/* Attempt to emulate an ARMv6 instruction.
- Returns non-zero upon success. */
-
-#ifdef MODE32
-static int
-handle_v6_insn (ARMul_State * state, ARMword instr)
-{
- ARMword val;
- ARMword Rd;
- ARMword Rm;
- ARMword Rn;
-
- switch (BITS (20, 27))
- {
-#if 0
- case 0x03: printf ("Unhandled v6 insn: ldr\n"); break;
- case 0x04: printf ("Unhandled v6 insn: umaal\n"); break;
- case 0x06: printf ("Unhandled v6 insn: mls/str\n"); break;
- case 0x16: printf ("Unhandled v6 insn: smi\n"); break;
- case 0x18: printf ("Unhandled v6 insn: strex\n"); break;
- case 0x19: printf ("Unhandled v6 insn: ldrex\n"); break;
- case 0x1a: printf ("Unhandled v6 insn: strexd\n"); break;
- case 0x1b: printf ("Unhandled v6 insn: ldrexd\n"); break;
- case 0x1c: printf ("Unhandled v6 insn: strexb\n"); break;
- case 0x1d: printf ("Unhandled v6 insn: ldrexb\n"); break;
- case 0x1e: printf ("Unhandled v6 insn: strexh\n"); break;
- case 0x1f: printf ("Unhandled v6 insn: ldrexh\n"); break;
- case 0x32: printf ("Unhandled v6 insn: nop/sev/wfe/wfi/yield\n"); break;
- case 0x3f: printf ("Unhandled v6 insn: rbit\n"); break;
-#endif
- case 0x61: printf ("Unhandled v6 insn: sadd/ssub\n"); break;
- case 0x63: printf ("Unhandled v6 insn: shadd/shsub\n"); break;
- case 0x6c: printf ("Unhandled v6 insn: uxtb16/uxtab16\n"); break;
- case 0x70: printf ("Unhandled v6 insn: smuad/smusd/smlad/smlsd\n"); break;
- case 0x74: printf ("Unhandled v6 insn: smlald/smlsld\n"); break;
- case 0x75: printf ("Unhandled v6 insn: smmla/smmls/smmul\n"); break;
- case 0x78: printf ("Unhandled v6 insn: usad/usada8\n"); break;
-
- case 0x30:
- {
- /* MOVW<c> <Rd>,#<imm16>
- instr[31,28] = cond
- instr[27,20] = 0011 0000
- instr[19,16] = imm4
- instr[15,12] = Rd
- instr[11, 0] = imm12. */
- Rd = BITS (12, 15);
- val = (BITS (16, 19) << 12) | BITS (0, 11);
- state->Reg[Rd] = val;
- return 1;
- }
-
- case 0x34:
- {
- /* MOVT<c> <Rd>,#<imm16>
- instr[31,28] = cond
- instr[27,20] = 0011 0100
- instr[19,16] = imm4
- instr[15,12] = Rd
- instr[11, 0] = imm12. */
- Rd = BITS (12, 15);
- val = (BITS (16, 19) << 12) | BITS (0, 11);
- state->Reg[Rd] &= 0xFFFF;
- state->Reg[Rd] |= val << 16;
- return 1;
- }
-
- case 0x62:
- {
- ARMword val1;
- ARMword val2;
- ARMsword n, m, r;
- int i;
-
- Rd = BITS (12, 15);
- Rn = BITS (16, 19);
- Rm = BITS (0, 3);
-
- if (Rd == 15 || Rn == 15 || Rm == 15)
- break;
-
- val1 = state->Reg[Rn];
- val2 = state->Reg[Rm];
-
- switch (BITS (4, 11))
- {
- case 0xF1: /* QADD16<c> <Rd>,<Rn>,<Rm>. */
- state->Reg[Rd] = 0;
-
- for (i = 0; i < 32; i+= 16)
- {
- n = (val1 >> i) & 0xFFFF;
- if (n & 0x8000)
- n |= -(1 << 16);
-
- m = (val2 >> i) & 0xFFFF;
- if (m & 0x8000)
- m |= -(1 << 16);
-
- r = n + m;
-
- if (r > 0x7FFF)
- r = 0x7FFF;
- else if (r < -(0x8000))
- r = - 0x8000;
-
- state->Reg[Rd] |= (r & 0xFFFF) << i;
- }
- return 1;
-
- case 0xF3: /* QASX<c> <Rd>,<Rn>,<Rm>. */
- n = val1 & 0xFFFF;
- if (n & 0x8000)
- n |= -(1 << 16);
-
- m = (val2 >> 16) & 0xFFFF;
- if (m & 0x8000)
- m |= -(1 << 16);
-
- r = n - m;
-
- if (r > 0x7FFF)
- r = 0x7FFF;
- else if (r < -(0x8000))
- r = - 0x8000;
-
- state->Reg[Rd] = (r & 0xFFFF);
-
- n = (val1 >> 16) & 0xFFFF;
- if (n & 0x8000)
- n |= -(1 << 16);
-
- m = val2 & 0xFFFF;
- if (m & 0x8000)
- m |= -(1 << 16);
-
- r = n + m;
-
- if (r > 0x7FFF)
- r = 0x7FFF;
- else if (r < -(0x8000))
- r = - 0x8000;
-
- state->Reg[Rd] |= (r & 0xFFFF) << 16;
- return 1;
-
- case 0xF5: /* QSAX<c> <Rd>,<Rn>,<Rm>. */
- n = val1 & 0xFFFF;
- if (n & 0x8000)
- n |= -(1 << 16);
-
- m = (val2 >> 16) & 0xFFFF;
- if (m & 0x8000)
- m |= -(1 << 16);
-
- r = n + m;
-
- if (r > 0x7FFF)
- r = 0x7FFF;
- else if (r < -(0x8000))
- r = - 0x8000;
-
- state->Reg[Rd] = (r & 0xFFFF);
-
- n = (val1 >> 16) & 0xFFFF;
- if (n & 0x8000)
- n |= -(1 << 16);
-
- m = val2 & 0xFFFF;
- if (m & 0x8000)
- m |= -(1 << 16);
-
- r = n - m;
-
- if (r > 0x7FFF)
- r = 0x7FFF;
- else if (r < -(0x8000))
- r = - 0x8000;
-
- state->Reg[Rd] |= (r & 0xFFFF) << 16;
- return 1;
-
- case 0xF7: /* QSUB16<c> <Rd>,<Rn>,<Rm>. */
- state->Reg[Rd] = 0;
-
- for (i = 0; i < 32; i+= 16)
- {
- n = (val1 >> i) & 0xFFFF;
- if (n & 0x8000)
- n |= -(1 << 16);
-
- m = (val2 >> i) & 0xFFFF;
- if (m & 0x8000)
- m |= -(1 << 16);
-
- r = n - m;
-
- if (r > 0x7FFF)
- r = 0x7FFF;
- else if (r < -(0x8000))
- r = - 0x8000;
-
- state->Reg[Rd] |= (r & 0xFFFF) << i;
- }
- return 1;
-
- case 0xF9: /* QADD8<c> <Rd>,<Rn>,<Rm>. */
- state->Reg[Rd] = 0;
-
- for (i = 0; i < 32; i+= 8)
- {
- n = (val1 >> i) & 0xFF;
- if (n & 0x80)
- n |= - (1 << 8);
-
- m = (val2 >> i) & 0xFF;
- if (m & 0x80)
- m |= - (1 << 8);
-
- r = n + m;
-
- if (r > 127)
- r = 127;
- else if (r < -128)
- r = -128;
-
- state->Reg[Rd] |= (r & 0xFF) << i;
- }
- return 1;
-
- case 0xFF: /* QSUB8<c> <Rd>,<Rn>,<Rm>. */
- state->Reg[Rd] = 0;
-
- for (i = 0; i < 32; i+= 8)
- {
- n = (val1 >> i) & 0xFF;
- if (n & 0x80)
- n |= - (1 << 8);
-
- m = (val2 >> i) & 0xFF;
- if (m & 0x80)
- m |= - (1 << 8);
-
- r = n - m;
-
- if (r > 127)
- r = 127;
- else if (r < -128)
- r = -128;
-
- state->Reg[Rd] |= (r & 0xFF) << i;
- }
- return 1;
-
- default:
- break;
- }
- break;
- }
-
- case 0x65:
- {
- ARMword valn;
- ARMword valm;
- ARMword res1, res2, res3, res4;
-
- /* U{ADD|SUB}{8|16}<c> <Rd>, <Rn>, <Rm>
- instr[31,28] = cond
- instr[27,20] = 0110 0101
- instr[19,16] = Rn
- instr[15,12] = Rd
- instr[11, 8] = 1111
- instr[ 7, 4] = opcode: UADD8 (1001), UADD16 (0001), USUB8 (1111), USUB16 (0111)
- instr[ 3, 0] = Rm. */
- if (BITS (8, 11) != 0xF)
- break;
-
- Rn = BITS (16, 19);
- Rd = BITS (12, 15);
- Rm = BITS (0, 3);
-
- if (Rn == 15 || Rd == 15 || Rm == 15)
- {
- ARMul_UndefInstr (state, instr);
- state->Emulate = FALSE;
- break;
- }
-
- valn = state->Reg[Rn];
- valm = state->Reg[Rm];
-
- switch (BITS (4, 7))
- {
- case 1: /* UADD16. */
- res1 = (valn & 0xFFFF) + (valm & 0xFFFF);
- if (res1 > 0xFFFF)
- state->Cpsr |= (GE0 | GE1);
- else
- state->Cpsr &= ~ (GE0 | GE1);
-
- res2 = (valn >> 16) + (valm >> 16);
- if (res2 > 0xFFFF)
- state->Cpsr |= (GE2 | GE3);
- else
- state->Cpsr &= ~ (GE2 | GE3);
-
- state->Reg[Rd] = (res1 & 0xFFFF) | (res2 << 16);
- return 1;
-
- case 7: /* USUB16. */
- res1 = (valn & 0xFFFF) - (valm & 0xFFFF);
- if (res1 & 0x800000)
- state->Cpsr |= (GE0 | GE1);
- else
- state->Cpsr &= ~ (GE0 | GE1);
-
- res2 = (valn >> 16) - (valm >> 16);
- if (res2 & 0x800000)
- state->Cpsr |= (GE2 | GE3);
- else
- state->Cpsr &= ~ (GE2 | GE3);
-
- state->Reg[Rd] = (res1 & 0xFFFF) | (res2 << 16);
- return 1;
-
- case 9: /* UADD8. */
- res1 = (valn & 0xFF) + (valm & 0xFF);
- if (res1 > 0xFF)
- state->Cpsr |= GE0;
- else
- state->Cpsr &= ~ GE0;
-
- res2 = ((valn >> 8) & 0xFF) + ((valm >> 8) & 0xFF);
- if (res2 > 0xFF)
- state->Cpsr |= GE1;
- else
- state->Cpsr &= ~ GE1;
-
- res3 = ((valn >> 16) & 0xFF) + ((valm >> 16) & 0xFF);
- if (res3 > 0xFF)
- state->Cpsr |= GE2;
- else
- state->Cpsr &= ~ GE2;
-
- res4 = (valn >> 24) + (valm >> 24);
- if (res4 > 0xFF)
- state->Cpsr |= GE3;
- else
- state->Cpsr &= ~ GE3;
-
- state->Reg[Rd] = (res1 & 0xFF) | ((res2 << 8) & 0xFF00)
- | ((res3 << 16) & 0xFF0000) | (res4 << 24);
- return 1;
-
- case 15: /* USUB8. */
- res1 = (valn & 0xFF) - (valm & 0xFF);
- if (res1 & 0x800000)
- state->Cpsr |= GE0;
- else
- state->Cpsr &= ~ GE0;
-
- res2 = ((valn >> 8) & 0XFF) - ((valm >> 8) & 0xFF);
- if (res2 & 0x800000)
- state->Cpsr |= GE1;
- else
- state->Cpsr &= ~ GE1;
-
- res3 = ((valn >> 16) & 0XFF) - ((valm >> 16) & 0xFF);
- if (res3 & 0x800000)
- state->Cpsr |= GE2;
- else
- state->Cpsr &= ~ GE2;
-
- res4 = (valn >> 24) - (valm >> 24) ;
- if (res4 & 0x800000)
- state->Cpsr |= GE3;
- else
- state->Cpsr &= ~ GE3;
-
- state->Reg[Rd] = (res1 & 0xFF) | ((res2 << 8) & 0xFF00)
- | ((res3 << 16) & 0xFF0000) | (res4 << 24);
- return 1;
-
- default:
- break;
- }
- break;
- }
-
- case 0x68:
- {
- ARMword res;
-
- /* PKHBT<c> <Rd>,<Rn>,<Rm>{,LSL #<imm>}
- PKHTB<c> <Rd>,<Rn>,<Rm>{,ASR #<imm>}
- SXTAB16<c> <Rd>,<Rn>,<Rm>{,<rotation>}
- SXTB16<c> <Rd>,<Rm>{,<rotation>}
- SEL<c> <Rd>,<Rn>,<Rm>
-
- instr[31,28] = cond
- instr[27,20] = 0110 1000
- instr[19,16] = Rn
- instr[15,12] = Rd
- instr[11, 7] = imm5 (PKH), 11111 (SEL), rr000 (SXTAB16 & SXTB16),
- instr[6] = tb (PKH), 0 (SEL), 1 (SXT)
- instr[5] = opcode: PKH (0), SEL/SXT (1)
- instr[4] = 1
- instr[ 3, 0] = Rm. */
-
- if (BIT (4) != 1)
- break;
-
- if (BIT (5) == 0)
- {
- /* FIXME: Add implementation of PKH. */
- fprintf (stderr, "PKH: NOT YET IMPLEMENTED\n");
- ARMul_UndefInstr (state, instr);
- break;
- }
-
- if (BIT (6) == 1)
- {
- /* FIXME: Add implementation of SXT. */
- fprintf (stderr, "SXT: NOT YET IMPLEMENTED\n");
- ARMul_UndefInstr (state, instr);
- break;
- }
-
- Rn = BITS (16, 19);
- Rd = BITS (12, 15);
- Rm = BITS (0, 3);
- if (Rn == 15 || Rm == 15 || Rd == 15)
- {
- ARMul_UndefInstr (state, instr);
- state->Emulate = FALSE;
- break;
- }
-
- res = (state->Reg[(state->Cpsr & GE0) ? Rn : Rm]) & 0xFF;
- res |= (state->Reg[(state->Cpsr & GE1) ? Rn : Rm]) & 0xFF00;
- res |= (state->Reg[(state->Cpsr & GE2) ? Rn : Rm]) & 0xFF0000;
- res |= (state->Reg[(state->Cpsr & GE3) ? Rn : Rm]) & 0xFF000000;
- state->Reg[Rd] = res;
- return 1;
- }
-
- case 0x6a:
- {
- int ror = -1;
-
- switch (BITS (4, 11))
- {
- case 0x07: ror = 0; break;
- case 0x47: ror = 8; break;
- case 0x87: ror = 16; break;
- case 0xc7: ror = 24; break;
-
- case 0x01:
- case 0xf3:
- printf ("Unhandled v6 insn: ssat\n");
- return 0;
-
- default:
- break;
- }
-
- if (ror == -1)
- {
- if (BITS (4, 6) == 0x7)
- {
- printf ("Unhandled v6 insn: ssat\n");
- return 0;
- }
- break;
- }
-
- Rm = ((state->Reg[BITS (0, 3)] >> ror) & 0xFF);
- if (Rm & 0x80)
- Rm |= 0xffffff00;
-
- if (BITS (16, 19) == 0xf)
- /* SXTB */
- state->Reg[BITS (12, 15)] = Rm;
- else
- /* SXTAB */
- state->Reg[BITS (12, 15)] += Rm;
- }
- return 1;
-
- case 0x6b:
- {
- int ror = -1;
-
- switch (BITS (4, 11))
- {
- case 0x07: ror = 0; break;
- case 0x47: ror = 8; break;
- case 0x87: ror = 16; break;
- case 0xc7: ror = 24; break;
-
- case 0xf3:
- {
- /* REV<c> <Rd>,<Rm>
- instr[31,28] = cond
- instr[27,20] = 0110 1011
- instr[19,16] = 1111
- instr[15,12] = Rd
- instr[11, 4] = 1111 0011
- instr[ 3, 0] = Rm. */
- if (BITS (16, 19) != 0xF)
- break;
-
- Rd = BITS (12, 15);
- Rm = BITS (0, 3);
- if (Rd == 15 || Rm == 15)
- {
- ARMul_UndefInstr (state, instr);
- state->Emulate = FALSE;
- break;
- }
-
- val = state->Reg[Rm] << 24;
- val |= ((state->Reg[Rm] << 8) & 0xFF0000);
- val |= ((state->Reg[Rm] >> 8) & 0xFF00);
- val |= ((state->Reg[Rm] >> 24));
- state->Reg[Rd] = val;
- return 1;
- }
-
- case 0xfb:
- {
- /* REV16<c> <Rd>,<Rm>. */
- if (BITS (16, 19) != 0xF)
- break;
-
- Rd = BITS (12, 15);
- Rm = BITS (0, 3);
- if (Rd == 15 || Rm == 15)
- {
- ARMul_UndefInstr (state, instr);
- state->Emulate = FALSE;
- break;
- }
-
- val = 0;
- val |= ((state->Reg[Rm] >> 8) & 0x00FF00FF);
- val |= ((state->Reg[Rm] << 8) & 0xFF00FF00);
- state->Reg[Rd] = val;
- return 1;
- }
-
- default:
- break;
- }
-
- if (ror == -1)
- break;
-
- Rm = ((state->Reg[BITS (0, 3)] >> ror) & 0xFFFF);
- if (Rm & 0x8000)
- Rm |= 0xffff0000;
-
- if (BITS (16, 19) == 0xf)
- /* SXTH */
- state->Reg[BITS (12, 15)] = Rm;
- else
- /* SXTAH */
- state->Reg[BITS (12, 15)] = state->Reg[BITS (16, 19)] + Rm;
- }
- return 1;
-
- case 0x6e:
- {
- int ror = -1;
-
- switch (BITS (4, 11))
- {
- case 0x07: ror = 0; break;
- case 0x47: ror = 8; break;
- case 0x87: ror = 16; break;
- case 0xc7: ror = 24; break;
-
- case 0x01:
- case 0xf3:
- printf ("Unhandled v6 insn: usat\n");
- return 0;
-
- default:
- break;
- }
-
- if (ror == -1)
- {
- if (BITS (4, 6) == 0x7)
- {
- printf ("Unhandled v6 insn: usat\n");
- return 0;
- }
- break;
- }
-
- Rm = ((state->Reg[BITS (0, 3)] >> ror) & 0xFF);
-
- if (BITS (16, 19) == 0xf)
- /* UXTB */
- state->Reg[BITS (12, 15)] = Rm;
- else
- /* UXTAB */
- state->Reg[BITS (12, 15)] = state->Reg[BITS (16, 19)] + Rm;
- }
- return 1;
-
- case 0x6f:
- {
- int i;
- int ror = -1;
-
- switch (BITS (4, 11))
- {
- case 0x07: ror = 0; break;
- case 0x47: ror = 8; break;
- case 0x87: ror = 16; break;
- case 0xc7: ror = 24; break;
-
- case 0xf3: /* RBIT */
- if (BITS (16, 19) != 0xF)
- break;
- Rd = BITS (12, 15);
- state->Reg[Rd] = 0;
- Rm = state->Reg[BITS (0, 3)];
- for (i = 0; i < 32; i++)
- if (Rm & (1 << i))
- state->Reg[Rd] |= (1 << (31 - i));
- return 1;
-
- case 0xfb:
- printf ("Unhandled v6 insn: revsh\n");
- return 0;
-
- default:
- break;
- }
-
- if (ror == -1)
- break;
-
- Rm = ((state->Reg[BITS (0, 3)] >> ror) & 0xFFFF);
-
- if (BITS (16, 19) == 0xf)
- /* UXT */
- state->Reg[BITS (12, 15)] = Rm;
- else
- /* UXTAH */
- state->Reg[BITS (12, 15)] = state->Reg [BITS (16, 19)] + Rm;
- }
- return 1;
-
- case 0x71:
- case 0x73:
- {
- ARMword valn, valm;
- /* SDIV<c> <Rd>,<Rn>,<Rm>
- UDIV<c> <Rd>,<Rn>,<Rm>
- instr[31,28] = cond
- instr[27,20] = 0111 0001 (SDIV), 0111 0011 (UDIV)
- instr[21,21] = sign
- instr[19,16] = Rn
- instr[15,12] = 1111
- instr[11, 8] = Rd
- instr[ 7, 4] = 1111
- instr[ 3, 0] = Rm */
- /* These bit-positions are confusing!
- instr[15,12] = Rd
- instr[11, 8] = 1111 */
-
-#if 0 /* This is what I would expect: */
- Rn = BITS (16, 19);
- Rd = BITS (8, 11);
- Rm = BITS (0, 3);
-#else /* This seem to work: */
- Rd = BITS (16, 19);
- Rm = BITS (8, 11);
- Rn = BITS (0, 3);
-#endif
- if (Rn == 15 || Rd == 15 || Rm == 15
- || Rn == 13 || Rd == 13 || Rm == 13)
- {
- ARMul_UndefInstr (state, instr);
- state->Emulate = FALSE;
- break;
- }
-
- valn = state->Reg[Rn];
- valm = state->Reg[Rm];
-
- if (valm == 0)
- {
-#if 0
- /* Exceptions: UsageFault, address 20
- Note: UsageFault is for Cortex-M; I don't know what it would be on non-Cortex-M. */
- ARMul_Abort (state, address);
-#endif
- printf ("Unhandled v6 insn: %cDIV divide by zero exception\n", "SU"[BIT(21)]);
- }
- else
- {
- if(BIT(21))
- {
- val = valn / valm;
- }
- else
- {
- val = ((ARMsword)valn / (ARMsword)valm);
- }
- state->Reg[Rd] = val;
- }
- return 1;
- }
-
- case 0x7c:
- case 0x7d:
- {
- int lsb;
- int msb;
- ARMword mask;
-
- /* BFC<c> <Rd>,#<lsb>,#<width>
- BFI<c> <Rd>,<Rn>,#<lsb>,#<width>
-
- instr[31,28] = cond
- instr[27,21] = 0111 110
- instr[20,16] = msb
- instr[15,12] = Rd
- instr[11, 7] = lsb
- instr[ 6, 4] = 001 1111
- instr[ 3, 0] = Rn (BFI) / 1111 (BFC). */
-
- if (BITS (4, 6) != 0x1)
- break;
-
- Rd = BITS (12, 15);
- if (Rd == 15)
- {
- ARMul_UndefInstr (state, instr);
- state->Emulate = FALSE;
- }
-
- lsb = BITS (7, 11);
- msb = BITS (16, 20);
- if (lsb > msb)
- {
- ARMul_UndefInstr (state, instr);
- state->Emulate = FALSE;
- }
-
- mask = -(1 << lsb);
- mask &= ~(-(1 << (msb + 1)));
- state->Reg[Rd] &= ~ mask;
-
- Rn = BITS (0, 3);
- if (Rn != 0xF)
- {
- val = state->Reg[Rn] & ~(-(1 << ((msb + 1) - lsb)));
- state->Reg[Rd] |= val << lsb;
- }
- return 1;
- }
- case 0x7b:
- case 0x7a: /* SBFX<c> <Rd>,<Rn>,#<lsb>,#<width>. */
- {
- int lsb;
- int widthm1;
- ARMsword sval;
-
- if (BITS (4, 6) != 0x5)
- break;
-
- Rd = BITS (12, 15);
- if (Rd == 15)
- {
- ARMul_UndefInstr (state, instr);
- state->Emulate = FALSE;
- }
-
- Rn = BITS (0, 3);
- if (Rn == 15)
- {
- ARMul_UndefInstr (state, instr);
- state->Emulate = FALSE;
- }
-
- lsb = BITS (7, 11);
- widthm1 = BITS (16, 20);
-
- sval = state->Reg[Rn];
- sval <<= (31 - (lsb + widthm1));
- sval >>= (31 - widthm1);
- state->Reg[Rd] = sval;
-
- return 1;
- }
-
- case 0x7f:
- case 0x7e:
- {
- int lsb;
- int widthm1;
-
- /* UBFX<c> <Rd>,<Rn>,#<lsb>,#<width>
- instr[31,28] = cond
- instr[27,21] = 0111 111
- instr[20,16] = widthm1
- instr[15,12] = Rd
- instr[11, 7] = lsb
- instr[ 6, 4] = 101
- instr[ 3, 0] = Rn. */
-
- if (BITS (4, 6) != 0x5)
- break;
-
- Rd = BITS (12, 15);
- if (Rd == 15)
- {
- ARMul_UndefInstr (state, instr);
- state->Emulate = FALSE;
- }
-
- Rn = BITS (0, 3);
- if (Rn == 15)
- {
- ARMul_UndefInstr (state, instr);
- state->Emulate = FALSE;
- }
-
- lsb = BITS (7, 11);
- widthm1 = BITS (16, 20);
-
- val = state->Reg[Rn];
- val >>= lsb;
- val &= ~(-(1 << (widthm1 + 1)));
-
- state->Reg[Rd] = val;
-
- return 1;
- }
-#if 0
- case 0x84: printf ("Unhandled v6 insn: srs\n"); break;
-#endif
- default:
- break;
- }
- printf ("Unhandled v6 insn: UNKNOWN: %08x\n", instr);
- return 0;
-}
-#endif
-
-static void
-handle_VFP_move (ARMul_State * state, ARMword instr)
-{
- switch (BITS (20, 27))
- {
- case 0xC4:
- case 0xC5:
- switch (BITS (4, 11))
- {
- case 0xA1:
- case 0xA3:
- {
- /* VMOV two core <-> two VFP single precision. */
- int sreg = (BITS (0, 3) << 1) | BIT (5);
-
- if (BIT (20))
- {
- state->Reg[BITS (12, 15)] = VFP_uword (sreg);
- state->Reg[BITS (16, 19)] = VFP_uword (sreg + 1);
- }
- else
- {
- VFP_uword (sreg) = state->Reg[BITS (12, 15)];
- VFP_uword (sreg + 1) = state->Reg[BITS (16, 19)];
- }
- }
- break;
-
- case 0xB1:
- case 0xB3:
- {
- /* VMOV two core <-> VFP double precision. */
- int dreg = BITS (0, 3) | (BIT (5) << 4);
-
- if (BIT (20))
- {
- if (trace)
- fprintf (stderr, " VFP: VMOV: r%d r%d <= d%d\n",
- BITS (12, 15), BITS (16, 19), dreg);
-
- state->Reg[BITS (12, 15)] = VFP_dword (dreg);
- state->Reg[BITS (16, 19)] = VFP_dword (dreg) >> 32;
- }
- else
- {
- VFP_dword (dreg) = state->Reg[BITS (16, 19)];
- VFP_dword (dreg) <<= 32;
- VFP_dword (dreg) |= state->Reg[BITS (12, 15)];
-
- if (trace)
- fprintf (stderr, " VFP: VMOV: d%d <= r%d r%d : %g\n",
- dreg, BITS (16, 19), BITS (12, 15),
- VFP_dval (dreg));
- }
- }
- break;
-
- default:
- fprintf (stderr, "SIM: VFP: Unimplemented move insn %x\n", BITS (20, 27));
- break;
- }
- break;
-
- case 0xe0:
- case 0xe1:
- /* VMOV single core <-> VFP single precision. */
- if (BITS (0, 6) != 0x10 || BITS (8, 11) != 0xA)
- fprintf (stderr, "SIM: VFP: Unimplemented move insn %x\n", BITS (20, 27));
- else
- {
- int sreg = (BITS (16, 19) << 1) | BIT (7);
-
- if (BIT (20))
- state->Reg[DESTReg] = VFP_uword (sreg);
- else
- VFP_uword (sreg) = state->Reg[DESTReg];
- }
- break;
-
- default:
- fprintf (stderr, "SIM: VFP: Unimplemented move insn %x\n", BITS (20, 27));
- return;
- }
-}
-
-/* EMULATION of ARM6. */
-
-ARMword
-#ifdef MODE32
-ARMul_Emulate32 (ARMul_State * state)
-#else
-ARMul_Emulate26 (ARMul_State * state)
-#endif
-{
- ARMword instr; /* The current instruction. */
- ARMword dest = 0; /* Almost the DestBus. */
- ARMword temp; /* Ubiquitous third hand. */
- ARMword pc = 0; /* The address of the current instruction. */
- ARMword lhs; /* Almost the ABus and BBus. */
- ARMword rhs;
- ARMword decoded = 0; /* Instruction pipeline. */
- ARMword loaded = 0;
-
- /* Execute the next instruction. */
-
- if (state->NextInstr < PRIMEPIPE)
- {
- decoded = state->decoded;
- loaded = state->loaded;
- pc = state->pc;
- }
-
- do
- {
- /* Just keep going. */
- isize = INSN_SIZE;
-
- switch (state->NextInstr)
- {
- case SEQ:
- /* Advance the pipeline, and an S cycle. */
- state->Reg[15] += isize;
- pc += isize;
- instr = decoded;
- decoded = loaded;
- loaded = ARMul_LoadInstrS (state, pc + (isize * 2), isize);
- break;
-
- case NONSEQ:
- /* Advance the pipeline, and an N cycle. */
- state->Reg[15] += isize;
- pc += isize;
- instr = decoded;
- decoded = loaded;
- loaded = ARMul_LoadInstrN (state, pc + (isize * 2), isize);
- NORMALCYCLE;
- break;
-
- case PCINCEDSEQ:
- /* Program counter advanced, and an S cycle. */
- pc += isize;
- instr = decoded;
- decoded = loaded;
- loaded = ARMul_LoadInstrS (state, pc + (isize * 2), isize);
- NORMALCYCLE;
- break;
-
- case PCINCEDNONSEQ:
- /* Program counter advanced, and an N cycle. */
- pc += isize;
- instr = decoded;
- decoded = loaded;
- loaded = ARMul_LoadInstrN (state, pc + (isize * 2), isize);
- NORMALCYCLE;
- break;
-
- case RESUME:
- /* The program counter has been changed. */
- pc = state->Reg[15];
-#ifndef MODE32
- pc = pc & R15PCBITS;
-#endif
- state->Reg[15] = pc + (isize * 2);
- state->Aborted = 0;
- instr = ARMul_ReLoadInstr (state, pc, isize);
- decoded = ARMul_ReLoadInstr (state, pc + isize, isize);
- loaded = ARMul_ReLoadInstr (state, pc + isize * 2, isize);
- NORMALCYCLE;
- break;
-
- default:
- /* The program counter has been changed. */
- pc = state->Reg[15];
-#ifndef MODE32
- pc = pc & R15PCBITS;
-#endif
- state->Reg[15] = pc + (isize * 2);
- state->Aborted = 0;
- instr = ARMul_LoadInstrN (state, pc, isize);
- decoded = ARMul_LoadInstrS (state, pc + (isize), isize);
- loaded = ARMul_LoadInstrS (state, pc + (isize * 2), isize);
- NORMALCYCLE;
- break;
- }
-
- if (state->EventSet)
- ARMul_EnvokeEvent (state);
-
- if (! TFLAG && trace)
- {
- fprintf (stderr, "pc: %x, ", pc & ~1);
- if (! disas)
- fprintf (stderr, "instr: %x\n", instr);
- }
-
- if (instr == 0 || pc < 0x10)
- {
- ARMul_Abort (state, ARMUndefinedInstrV);
- state->Emulate = FALSE;
- }
-
-#if 0 /* Enable this code to help track down stack alignment bugs. */
- {
- static ARMword old_sp = -1;
-
- if (old_sp != state->Reg[13])
- {
- old_sp = state->Reg[13];
- fprintf (stderr, "pc: %08x: SP set to %08x%s\n",
- pc & ~1, old_sp, (old_sp % 8) ? " [UNALIGNED!]" : "");
- }
- }
-#endif
-
- if (state->Exception)
- {
- /* Any exceptions ? */
- if (state->NresetSig == LOW)
- {
- ARMul_Abort (state, ARMul_ResetV);
- break;
- }
- else if (!state->NfiqSig && !FFLAG)
- {
- ARMul_Abort (state, ARMul_FIQV);
- break;
- }
- else if (!state->NirqSig && !IFLAG)
- {
- ARMul_Abort (state, ARMul_IRQV);
- break;
- }
- }
-
- if (state->CallDebug > 0)
- {
- if (state->Emulate < ONCE)
- {
- state->NextInstr = RESUME;
- break;
- }
- if (state->Debug)
- {
- fprintf (stderr, "sim: At %08lx Instr %08lx Mode %02lx\n",
- (long) pc, (long) instr, (long) state->Mode);
- (void) fgetc (stdin);
- }
- }
- else if (state->Emulate < ONCE)
- {
- state->NextInstr = RESUME;
- break;
- }
-
- state->NumInstrs++;
-
-#ifdef MODET
- /* Provide Thumb instruction decoding. If the processor is in Thumb
- mode, then we can simply decode the Thumb instruction, and map it
- to the corresponding ARM instruction (by directly loading the
- instr variable, and letting the normal ARM simulator
- execute). There are some caveats to ensure that the correct
- pipelined PC value is used when executing Thumb code, and also for
- dealing with the BL instruction. */
- if (TFLAG)
- {
- ARMword new;
-
- /* Check if in Thumb mode. */
- switch (ARMul_ThumbDecode (state, pc, instr, &new))
- {
- case t_undefined:
- /* This is a Thumb instruction. */
- ARMul_UndefInstr (state, instr);
- goto donext;
-
- case t_branch:
- /* Already processed. */
- goto donext;
-
- case t_decoded:
- /* ARM instruction available. */
- if (disas || trace)
- {
- fprintf (stderr, " emulate as: ");
- if (trace)
- fprintf (stderr, "%08x ", new);
- if (! disas)
- fprintf (stderr, "\n");
- }
- instr = new;
- /* So continue instruction decoding. */
- break;
- default:
- break;
- }
- }
-#endif
- if (disas)
- print_insn (instr);
-
- /* Check the condition codes. */
- if ((temp = TOPBITS (28)) == AL)
- /* Vile deed in the need for speed. */
- goto mainswitch;
-
- /* Check the condition code. */
- switch ((int) TOPBITS (28))
- {
- case AL:
- temp = TRUE;
- break;
- case NV:
- if (state->is_v5)
- {
- if (BITS (25, 27) == 5) /* BLX(1) */
- {
- state->Reg[14] = pc + 4;
-
- /* Force entry into Thumb mode. */
- dest = pc + 8 + 1;
- if (BIT (23))
- dest += (NEGBRANCH + (BIT (24) << 1));
- else
- dest += POSBRANCH + (BIT (24) << 1);
-
- WriteR15Branch (state, dest);
- goto donext;
- }
- else if ((instr & 0xFC70F000) == 0xF450F000)
- /* The PLD instruction. Ignored. */
- goto donext;
- else if ( ((instr & 0xfe500f00) == 0xfc100100)
- || ((instr & 0xfe500f00) == 0xfc000100))
- /* wldrw and wstrw are unconditional. */
- goto mainswitch;
- else
- /* UNDEFINED in v5, UNPREDICTABLE in v3, v4, non executed in v1, v2. */
- ARMul_UndefInstr (state, instr);
- }
- temp = FALSE;
- break;
- case EQ:
- temp = ZFLAG;
- break;
- case NE:
- temp = !ZFLAG;
- break;
- case VS:
- temp = VFLAG;
- break;
- case VC:
- temp = !VFLAG;
- break;
- case MI:
- temp = NFLAG;
- break;
- case PL:
- temp = !NFLAG;
- break;
- case CS:
- temp = CFLAG;
- break;
- case CC:
- temp = !CFLAG;
- break;
- case HI:
- temp = (CFLAG && !ZFLAG);
- break;
- case LS:
- temp = (!CFLAG || ZFLAG);
- break;
- case GE:
- temp = ((!NFLAG && !VFLAG) || (NFLAG && VFLAG));
- break;
- case LT:
- temp = ((NFLAG && !VFLAG) || (!NFLAG && VFLAG));
- break;
- case GT:
- temp = ((!NFLAG && !VFLAG && !ZFLAG) || (NFLAG && VFLAG && !ZFLAG));
- break;
- case LE:
- temp = ((NFLAG && !VFLAG) || (!NFLAG && VFLAG)) || ZFLAG;
- break;
- } /* cc check */
-
- /* Handle the Clock counter here. */
- if (state->is_XScale)
- {
- ARMword cp14r0;
- int ok;
-
- ok = state->CPRead[14] (state, 0, & cp14r0);
-
- if (ok && (cp14r0 & ARMul_CP14_R0_ENABLE))
- {
- unsigned long newcycles, nowtime = ARMul_Time (state);
-
- newcycles = nowtime - state->LastTime;
- state->LastTime = nowtime;
-
- if (cp14r0 & ARMul_CP14_R0_CCD)
- {
- if (state->CP14R0_CCD == -1)
- state->CP14R0_CCD = newcycles;
- else
- state->CP14R0_CCD += newcycles;
-
- if (state->CP14R0_CCD >= 64)
- {
- newcycles = 0;
-
- while (state->CP14R0_CCD >= 64)
- state->CP14R0_CCD -= 64, newcycles++;
-
- goto check_PMUintr;
- }
- }
- else
- {
- ARMword cp14r1;
- int do_int;
-
- state->CP14R0_CCD = -1;
-check_PMUintr:
- do_int = 0;
- cp14r0 |= ARMul_CP14_R0_FLAG2;
- (void) state->CPWrite[14] (state, 0, cp14r0);
-
- ok = state->CPRead[14] (state, 1, & cp14r1);
-
- /* Coded like this for portability. */
- while (ok && newcycles)
- {
- if (cp14r1 == 0xffffffff)
- {
- cp14r1 = 0;
- do_int = 1;
- }
- else
- cp14r1 ++;
-
- newcycles --;
- }
-
- (void) state->CPWrite[14] (state, 1, cp14r1);
-
- if (do_int && (cp14r0 & ARMul_CP14_R0_INTEN2))
- {
- ARMword cp;
-
- if (state->CPRead[13] (state, 8, & cp)
- && (cp & ARMul_CP13_R8_PMUS))
- ARMul_Abort (state, ARMul_FIQV);
- else
- ARMul_Abort (state, ARMul_IRQV);
- }
- }
- }
- }
-
- /* Handle hardware instructions breakpoints here. */
- if (state->is_XScale)
- {
- if ( (pc | 3) == (read_cp15_reg (14, 0, 8) | 2)
- || (pc | 3) == (read_cp15_reg (14, 0, 9) | 2))
- {
- if (XScale_debug_moe (state, ARMul_CP14_R10_MOE_IB))
- ARMul_OSHandleSWI (state, SWI_Breakpoint);
- }
- }
-
- /* Actual execution of instructions begins here. */
- /* If the condition codes don't match, stop here. */
- if (temp)
- {
- mainswitch:
-
- if (state->is_XScale)
- {
- if (BIT (20) == 0 && BITS (25, 27) == 0)
- {
- if (BITS (4, 7) == 0xD)
- {
- /* XScale Load Consecutive insn. */
- ARMword temp1 = GetLS7RHS (state, instr);
- ARMword temp2 = BIT (23) ? LHS + temp1 : LHS - temp1;
- ARMword addr = BIT (24) ? temp2 : LHS;
-
- if (BIT (12))
- ARMul_UndefInstr (state, instr);
- else if (addr & 7)
- /* Alignment violation. */
- ARMul_Abort (state, ARMul_DataAbortV);
- else
- {
- int wb = BIT (21) || (! BIT (24));
-
- state->Reg[BITS (12, 15)] =
- ARMul_LoadWordN (state, addr);
- state->Reg[BITS (12, 15) + 1] =
- ARMul_LoadWordN (state, addr + 4);
- if (wb)
- LSBase = temp2;
- }
-
- goto donext;
- }
- else if (BITS (4, 7) == 0xF)
- {
- /* XScale Store Consecutive insn. */
- ARMword temp1 = GetLS7RHS (state, instr);
- ARMword temp2 = BIT (23) ? LHS + temp1 : LHS - temp1;
- ARMword addr = BIT (24) ? temp2 : LHS;
-
- if (BIT (12))
- ARMul_UndefInstr (state, instr);
- else if (addr & 7)
- /* Alignment violation. */
- ARMul_Abort (state, ARMul_DataAbortV);
- else
- {
- ARMul_StoreWordN (state, addr,
- state->Reg[BITS (12, 15)]);
- ARMul_StoreWordN (state, addr + 4,
- state->Reg[BITS (12, 15) + 1]);
-
- if (BIT (21)|| ! BIT (24))
- LSBase = temp2;
- }
-
- goto donext;
- }
- }
-
- if (ARMul_HandleIwmmxt (state, instr))
- goto donext;
- }
-
- switch ((int) BITS (20, 27))
- {
- /* Data Processing Register RHS Instructions. */
-
- case 0x00: /* AND reg and MUL */
-#ifdef MODET
- if (BITS (4, 11) == 0xB)
- {
- /* STRH register offset, no write-back, down, post indexed. */
- SHDOWNWB ();
- break;
- }
- if (BITS (4, 7) == 0xD)
- {
- Handle_Load_Double (state, instr);
- break;
- }
- if (BITS (4, 7) == 0xF)
- {
- Handle_Store_Double (state, instr);
- break;
- }
-#endif
- if (BITS (4, 7) == 9)
- {
- /* MUL */
- rhs = state->Reg[MULRHSReg];
- if (MULLHSReg == MULDESTReg)
- {
- UNDEF_MULDestEQOp1;
- state->Reg[MULDESTReg] = 0;
- }
- else if (MULDESTReg != 15)
- state->Reg[MULDESTReg] = state->Reg[MULLHSReg] * rhs;
- else
- UNDEF_MULPCDest;
-
- for (dest = 0, temp = 0; dest < 32; dest ++)
- if (rhs & (1L << dest))
- temp = dest;
-
- /* Mult takes this many/2 I cycles. */
- ARMul_Icycles (state, ARMul_MultTable[temp], 0L);
- }
- else
- {
- /* AND reg. */
- rhs = DPRegRHS;
- dest = LHS & rhs;
- WRITEDEST (dest);
- }
- break;
-
- case 0x01: /* ANDS reg and MULS */
-#ifdef MODET
- if ((BITS (4, 11) & 0xF9) == 0x9)
- /* LDR register offset, no write-back, down, post indexed. */
- LHPOSTDOWN ();
- /* Fall through to rest of decoding. */
-#endif
- if (BITS (4, 7) == 9)
- {
- /* MULS */
- rhs = state->Reg[MULRHSReg];
-
- if (MULLHSReg == MULDESTReg)
- {
- UNDEF_MULDestEQOp1;
- state->Reg[MULDESTReg] = 0;
- CLEARN;
- SETZ;
- }
- else if (MULDESTReg != 15)
- {
- dest = state->Reg[MULLHSReg] * rhs;
- ARMul_NegZero (state, dest);
- state->Reg[MULDESTReg] = dest;
- }
- else
- UNDEF_MULPCDest;
-
- for (dest = 0, temp = 0; dest < 32; dest ++)
- if (rhs & (1L << dest))
- temp = dest;
-
- /* Mult takes this many/2 I cycles. */
- ARMul_Icycles (state, ARMul_MultTable[temp], 0L);
- }
- else
- {
- /* ANDS reg. */
- rhs = DPSRegRHS;
- dest = LHS & rhs;
- WRITESDEST (dest);
- }
- break;
-
- case 0x02: /* EOR reg and MLA */
-#ifdef MODET
- if (BITS (4, 11) == 0xB)
- {
- /* STRH register offset, write-back, down, post indexed. */
- SHDOWNWB ();
- break;
- }
-#endif
- if (BITS (4, 7) == 9)
- { /* MLA */
- rhs = state->Reg[MULRHSReg];
- if (MULLHSReg == MULDESTReg)
- {
- UNDEF_MULDestEQOp1;
- state->Reg[MULDESTReg] = state->Reg[MULACCReg];
- }
- else if (MULDESTReg != 15)
- state->Reg[MULDESTReg] =
- state->Reg[MULLHSReg] * rhs + state->Reg[MULACCReg];
- else
- UNDEF_MULPCDest;
-
- for (dest = 0, temp = 0; dest < 32; dest ++)
- if (rhs & (1L << dest))
- temp = dest;
-
- /* Mult takes this many/2 I cycles. */
- ARMul_Icycles (state, ARMul_MultTable[temp], 0L);
- }
- else
- {
- rhs = DPRegRHS;
- dest = LHS ^ rhs;
- WRITEDEST (dest);
- }
- break;
-
- case 0x03: /* EORS reg and MLAS */
-#ifdef MODET
- if ((BITS (4, 11) & 0xF9) == 0x9)
- /* LDR register offset, write-back, down, post-indexed. */
- LHPOSTDOWN ();
- /* Fall through to rest of the decoding. */
-#endif
- if (BITS (4, 7) == 9)
- {
- /* MLAS */
- rhs = state->Reg[MULRHSReg];
-
- if (MULLHSReg == MULDESTReg)
- {
- UNDEF_MULDestEQOp1;
- dest = state->Reg[MULACCReg];
- ARMul_NegZero (state, dest);
- state->Reg[MULDESTReg] = dest;
- }
- else if (MULDESTReg != 15)
- {
- dest =
- state->Reg[MULLHSReg] * rhs + state->Reg[MULACCReg];
- ARMul_NegZero (state, dest);
- state->Reg[MULDESTReg] = dest;
- }
- else
- UNDEF_MULPCDest;
-
- for (dest = 0, temp = 0; dest < 32; dest ++)
- if (rhs & (1L << dest))
- temp = dest;
-
- /* Mult takes this many/2 I cycles. */
- ARMul_Icycles (state, ARMul_MultTable[temp], 0L);
- }
- else
- {
- /* EORS Reg. */
- rhs = DPSRegRHS;
- dest = LHS ^ rhs;
- WRITESDEST (dest);
- }
- break;
-
- case 0x04: /* SUB reg */
-#ifdef MODET
- if (BITS (4, 7) == 0xB)
- {
- /* STRH immediate offset, no write-back, down, post indexed. */
- SHDOWNWB ();
- break;
- }
- if (BITS (4, 7) == 0xD)
- {
- Handle_Load_Double (state, instr);
- break;
- }
- if (BITS (4, 7) == 0xF)
- {
- Handle_Store_Double (state, instr);
- break;
- }
-#endif
- rhs = DPRegRHS;
- dest = LHS - rhs;
- WRITEDEST (dest);
- break;
-
- case 0x05: /* SUBS reg */
-#ifdef MODET
- if ((BITS (4, 7) & 0x9) == 0x9)
- /* LDR immediate offset, no write-back, down, post indexed. */
- LHPOSTDOWN ();
- /* Fall through to the rest of the instruction decoding. */
-#endif
- lhs = LHS;
- rhs = DPRegRHS;
- dest = lhs - rhs;
-
- if ((lhs >= rhs) || ((rhs | lhs) >> 31))
- {
- ARMul_SubCarry (state, lhs, rhs, dest);
- ARMul_SubOverflow (state, lhs, rhs, dest);
- }
- else
- {
- CLEARC;
- CLEARV;
- }
- WRITESDEST (dest);
- break;
-
- case 0x06: /* RSB reg */
-#ifdef MODET
- if (BITS (4, 7) == 0xB)
- {
- /* STRH immediate offset, write-back, down, post indexed. */
- SHDOWNWB ();
- break;
- }
-#endif
- rhs = DPRegRHS;
- dest = rhs - LHS;
- WRITEDEST (dest);
- break;
-
- case 0x07: /* RSBS reg */
-#ifdef MODET
- if ((BITS (4, 7) & 0x9) == 0x9)
- /* LDR immediate offset, write-back, down, post indexed. */
- LHPOSTDOWN ();
- /* Fall through to remainder of instruction decoding. */
-#endif
- lhs = LHS;
- rhs = DPRegRHS;
- dest = rhs - lhs;
-
- if ((rhs >= lhs) || ((rhs | lhs) >> 31))
- {
- ARMul_SubCarry (state, rhs, lhs, dest);
- ARMul_SubOverflow (state, rhs, lhs, dest);
- }
- else
- {
- CLEARC;
- CLEARV;
- }
- WRITESDEST (dest);
- break;
-
- case 0x08: /* ADD reg */
-#ifdef MODET
- if (BITS (4, 11) == 0xB)
- {
- /* STRH register offset, no write-back, up, post indexed. */
- SHUPWB ();
- break;
- }
- if (BITS (4, 7) == 0xD)
- {
- Handle_Load_Double (state, instr);
- break;
- }
- if (BITS (4, 7) == 0xF)
- {
- Handle_Store_Double (state, instr);
- break;
- }
-#endif
-#ifdef MODET
- if (BITS (4, 7) == 0x9)
- {
- /* MULL */
- /* 32x32 = 64 */
- ARMul_Icycles (state,
- Multiply64 (state, instr, LUNSIGNED,
- LDEFAULT), 0L);
- break;
- }
-#endif
- rhs = DPRegRHS;
- dest = LHS + rhs;
- WRITEDEST (dest);
- break;
-
- case 0x09: /* ADDS reg */
-#ifdef MODET
- if ((BITS (4, 11) & 0xF9) == 0x9)
- /* LDR register offset, no write-back, up, post indexed. */
- LHPOSTUP ();
- /* Fall through to remaining instruction decoding. */
-#endif
-#ifdef MODET
- if (BITS (4, 7) == 0x9)
- {
- /* MULL */
- /* 32x32=64 */
- ARMul_Icycles (state,
- Multiply64 (state, instr, LUNSIGNED, LSCC),
- 0L);
- break;
- }
-#endif
- lhs = LHS;
- rhs = DPRegRHS;
- dest = lhs + rhs;
- ASSIGNZ (dest == 0);
- if ((lhs | rhs) >> 30)
- {
- /* Possible C,V,N to set. */
- ASSIGNN (NEG (dest));
- ARMul_AddCarry (state, lhs, rhs, dest);
- ARMul_AddOverflow (state, lhs, rhs, dest);
- }
- else
- {
- CLEARN;
- CLEARC;
- CLEARV;
- }
- WRITESDEST (dest);
- break;
-
- case 0x0a: /* ADC reg */
-#ifdef MODET
- if (BITS (4, 11) == 0xB)
- {
- /* STRH register offset, write-back, up, post-indexed. */
- SHUPWB ();
- break;
- }
- if (BITS (4, 7) == 0x9)
- {
- /* MULL */
- /* 32x32=64 */
- ARMul_Icycles (state,
- MultiplyAdd64 (state, instr, LUNSIGNED,
- LDEFAULT), 0L);
- break;
- }
-#endif
- rhs = DPRegRHS;
- dest = LHS + rhs + CFLAG;
- WRITEDEST (dest);
- break;
-
- case 0x0b: /* ADCS reg */
-#ifdef MODET
- if ((BITS (4, 11) & 0xF9) == 0x9)
- /* LDR register offset, write-back, up, post indexed. */
- LHPOSTUP ();
- /* Fall through to remaining instruction decoding. */
- if (BITS (4, 7) == 0x9)
- {
- /* MULL */
- /* 32x32=64 */
- ARMul_Icycles (state,
- MultiplyAdd64 (state, instr, LUNSIGNED,
- LSCC), 0L);
- break;
- }
-#endif
- lhs = LHS;
- rhs = DPRegRHS;
- dest = lhs + rhs + CFLAG;
- ASSIGNZ (dest == 0);
- if ((lhs | rhs) >> 30)
- {
- /* Possible C,V,N to set. */
- ASSIGNN (NEG (dest));
- ARMul_AddCarry (state, lhs, rhs, dest);
- ARMul_AddOverflow (state, lhs, rhs, dest);
- }
- else
- {
- CLEARN;
- CLEARC;
- CLEARV;
- }
- WRITESDEST (dest);
- break;
-
- case 0x0c: /* SBC reg */
-#ifdef MODET
- if (BITS (4, 7) == 0xB)
- {
- /* STRH immediate offset, no write-back, up post indexed. */
- SHUPWB ();
- break;
- }
- if (BITS (4, 7) == 0xD)
- {
- Handle_Load_Double (state, instr);
- break;
- }
- if (BITS (4, 7) == 0xF)
- {
- Handle_Store_Double (state, instr);
- break;
- }
- if (BITS (4, 7) == 0x9)
- {
- /* MULL */
- /* 32x32=64 */
- ARMul_Icycles (state,
- Multiply64 (state, instr, LSIGNED, LDEFAULT),
- 0L);
- break;
- }
-#endif
- rhs = DPRegRHS;
- dest = LHS - rhs - !CFLAG;
- WRITEDEST (dest);
- break;
-
- case 0x0d: /* SBCS reg */
-#ifdef MODET
- if ((BITS (4, 7) & 0x9) == 0x9)
- /* LDR immediate offset, no write-back, up, post indexed. */
- LHPOSTUP ();
-
- if (BITS (4, 7) == 0x9)
- {
- /* MULL */
- /* 32x32=64 */
- ARMul_Icycles (state,
- Multiply64 (state, instr, LSIGNED, LSCC),
- 0L);
- break;
- }
-#endif
- lhs = LHS;
- rhs = DPRegRHS;
- dest = lhs - rhs - !CFLAG;
- if ((lhs >= rhs) || ((rhs | lhs) >> 31))
- {
- ARMul_SubCarry (state, lhs, rhs, dest);
- ARMul_SubOverflow (state, lhs, rhs, dest);
- }
- else
- {
- CLEARC;
- CLEARV;
- }
- WRITESDEST (dest);
- break;
-
- case 0x0e: /* RSC reg */
-#ifdef MODET
- if (BITS (4, 7) == 0xB)
- {
- /* STRH immediate offset, write-back, up, post indexed. */
- SHUPWB ();
- break;
- }
-
- if (BITS (4, 7) == 0x9)
- {
- /* MULL */
- /* 32x32=64 */
- ARMul_Icycles (state,
- MultiplyAdd64 (state, instr, LSIGNED,
- LDEFAULT), 0L);
- break;
- }
-#endif
- rhs = DPRegRHS;
- dest = rhs - LHS - !CFLAG;
- WRITEDEST (dest);
- break;
-
- case 0x0f: /* RSCS reg */
-#ifdef MODET
- if ((BITS (4, 7) & 0x9) == 0x9)
- /* LDR immediate offset, write-back, up, post indexed. */
- LHPOSTUP ();
- /* Fall through to remaining instruction decoding. */
-
- if (BITS (4, 7) == 0x9)
- {
- /* MULL */
- /* 32x32=64 */
- ARMul_Icycles (state,
- MultiplyAdd64 (state, instr, LSIGNED, LSCC),
- 0L);
- break;
- }
-#endif
- lhs = LHS;
- rhs = DPRegRHS;
- dest = rhs - lhs - !CFLAG;
-
- if ((rhs >= lhs) || ((rhs | lhs) >> 31))
- {
- ARMul_SubCarry (state, rhs, lhs, dest);
- ARMul_SubOverflow (state, rhs, lhs, dest);
- }
- else
- {
- CLEARC;
- CLEARV;
- }
- WRITESDEST (dest);
- break;
-
- case 0x10: /* TST reg and MRS CPSR and SWP word. */
- if (state->is_v5e)
- {
- if (BIT (4) == 0 && BIT (7) == 1)
- {
- /* ElSegundo SMLAxy insn. */
- ARMword op1 = state->Reg[BITS (0, 3)];
- ARMword op2 = state->Reg[BITS (8, 11)];
- ARMword Rn = state->Reg[BITS (12, 15)];
-
- if (BIT (5))
- op1 >>= 16;
- if (BIT (6))
- op2 >>= 16;
- op1 &= 0xFFFF;
- op2 &= 0xFFFF;
- if (op1 & 0x8000)
- op1 -= 65536;
- if (op2 & 0x8000)
- op2 -= 65536;
- op1 *= op2;
-
- if (AddOverflow (op1, Rn, op1 + Rn))
- SETS;
- state->Reg[BITS (16, 19)] = op1 + Rn;
- break;
- }
-
- if (BITS (4, 11) == 5)
- {
- /* ElSegundo QADD insn. */
- ARMword op1 = state->Reg[BITS (0, 3)];
- ARMword op2 = state->Reg[BITS (16, 19)];
- ARMword result = op1 + op2;
- if (AddOverflow (op1, op2, result))
- {
- result = POS (result) ? 0x80000000 : 0x7fffffff;
- SETS;
- }
- state->Reg[BITS (12, 15)] = result;
- break;
- }
- }
-#ifdef MODET
- if (BITS (4, 11) == 0xB)
- {
- /* STRH register offset, no write-back, down, pre indexed. */
- SHPREDOWN ();
- break;
- }
- if (BITS (4, 7) == 0xD)
- {
- Handle_Load_Double (state, instr);
- break;
- }
- if (BITS (4, 7) == 0xF)
- {
- Handle_Store_Double (state, instr);
- break;
- }
-#endif
- if (BITS (4, 11) == 9)
- {
- /* SWP */
- UNDEF_SWPPC;
- temp = LHS;
- BUSUSEDINCPCS;
-#ifndef MODE32
- if (VECTORACCESS (temp) || ADDREXCEPT (temp))
- {
- INTERNALABORT (temp);
- (void) ARMul_LoadWordN (state, temp);
- (void) ARMul_LoadWordN (state, temp);
- }
- else
-#endif
- dest = ARMul_SwapWord (state, temp, state->Reg[RHSReg]);
- if (temp & 3)
- DEST = ARMul_Align (state, temp, dest);
- else
- DEST = dest;
- if (state->abortSig || state->Aborted)
- TAKEABORT;
- }
- else if ((BITS (0, 11) == 0) && (LHSReg == 15))
- { /* MRS CPSR */
- UNDEF_MRSPC;
- DEST = ECC | EINT | EMODE;
- }
- else
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- UNDEF_Test;
- }
- break;
-
- case 0x11: /* TSTP reg */
-#ifdef MODET
- if ((BITS (4, 11) & 0xF9) == 0x9)
- /* LDR register offset, no write-back, down, pre indexed. */
- LHPREDOWN ();
- /* Continue with remaining instruction decode. */
-#endif
- if (DESTReg == 15)
- {
- /* TSTP reg */
-#ifdef MODE32
- state->Cpsr = GETSPSR (state->Bank);
- ARMul_CPSRAltered (state);
-#else
- rhs = DPRegRHS;
- temp = LHS & rhs;
- SETR15PSR (temp);
-#endif
- }
- else
- {
- /* TST reg */
- rhs = DPSRegRHS;
- dest = LHS & rhs;
- ARMul_NegZero (state, dest);
- }
- break;
-
- case 0x12: /* TEQ reg and MSR reg to CPSR (ARM6). */
- if (state->is_v5)
- {
- if (BITS (4, 7) == 3)
- {
- /* BLX(2) */
- if (TFLAG)
- dest = (pc + 2) | 1;
- else
- dest = pc + 4;
-
- WriteR15Branch (state, state->Reg[RHSReg]);
- state->Reg[14] = dest;
- break;
- }
- }
-
- if (state->is_v5e)
- {
- if (BIT (4) == 0 && BIT (7) == 1
- && (BIT (5) == 0 || BITS (12, 15) == 0))
- {
- /* ElSegundo SMLAWy/SMULWy insn. */
- ARMdword op1 = state->Reg[BITS (0, 3)];
- ARMdword op2 = state->Reg[BITS (8, 11)];
- ARMdword result;
-
- if (BIT (6))
- op2 >>= 16;
- if (op1 & 0x80000000)
- op1 -= 1ULL << 32;
- op2 &= 0xFFFF;
- if (op2 & 0x8000)
- op2 -= 65536;
- result = (op1 * op2) >> 16;
-
- if (BIT (5) == 0)
- {
- ARMword Rn = state->Reg[BITS (12, 15)];
-
- if (AddOverflow (result, Rn, result + Rn))
- SETS;
- result += Rn;
- }
- state->Reg[BITS (16, 19)] = result;
- break;
- }
-
- if (BITS (4, 11) == 5)
- {
- /* ElSegundo QSUB insn. */
- ARMword op1 = state->Reg[BITS (0, 3)];
- ARMword op2 = state->Reg[BITS (16, 19)];
- ARMword result = op1 - op2;
-
- if (SubOverflow (op1, op2, result))
- {
- result = POS (result) ? 0x80000000 : 0x7fffffff;
- SETS;
- }
-
- state->Reg[BITS (12, 15)] = result;
- break;
- }
- }
-#ifdef MODET
- if (BITS (4, 11) == 0xB)
- {
- /* STRH register offset, write-back, down, pre indexed. */
- SHPREDOWNWB ();
- break;
- }
- if (BITS (4, 27) == 0x12FFF1)
- {
- /* BX */
- WriteR15Branch (state, state->Reg[RHSReg]);
- break;
- }
- if (BITS (4, 7) == 0xD)
- {
- Handle_Load_Double (state, instr);
- break;
- }
- if (BITS (4, 7) == 0xF)
- {
- Handle_Store_Double (state, instr);
- break;
- }
-#endif
- if (state->is_v5)
- {
- if (BITS (4, 7) == 0x7)
- {
- extern int SWI_vector_installed;
-
- /* Hardware is allowed to optionally override this
- instruction and treat it as a breakpoint. Since
- this is a simulator not hardware, we take the position
- that if a SWI vector was not installed, then an Abort
- vector was probably not installed either, and so
- normally this instruction would be ignored, even if an
- Abort is generated. This is a bad thing, since GDB
- uses this instruction for its breakpoints (at least in
- Thumb mode it does). So intercept the instruction here
- and generate a breakpoint SWI instead. */
- if (! SWI_vector_installed)
- ARMul_OSHandleSWI (state, SWI_Breakpoint);
- else
- {
- /* BKPT - normally this will cause an abort, but on the
- XScale we must check the DCSR. */
- XScale_set_fsr_far (state, ARMul_CP15_R5_MMU_EXCPT, pc);
- if (!XScale_debug_moe (state, ARMul_CP14_R10_MOE_BT))
- break;
- }
-
- /* Force the next instruction to be refetched. */
- state->NextInstr = RESUME;
- break;
- }
- }
- if (DESTReg == 15)
- {
- /* MSR reg to CPSR. */
- UNDEF_MSRPC;
- temp = DPRegRHS;
-#ifdef MODET
- /* Don't allow TBIT to be set by MSR. */
- temp &= ~ TBIT;
-#endif
- ARMul_FixCPSR (state, instr, temp);
- }
-#ifdef MODE32
- else if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- else
- UNDEF_Test;
-
- break;
-
- case 0x13: /* TEQP reg */
-#ifdef MODET
- if ((BITS (4, 11) & 0xF9) == 0x9)
- /* LDR register offset, write-back, down, pre indexed. */
- LHPREDOWNWB ();
- /* Continue with remaining instruction decode. */
-#endif
- if (DESTReg == 15)
- {
- /* TEQP reg */
-#ifdef MODE32
- state->Cpsr = GETSPSR (state->Bank);
- ARMul_CPSRAltered (state);
-#else
- rhs = DPRegRHS;
- temp = LHS ^ rhs;
- SETR15PSR (temp);
-#endif
- }
- else
- {
- /* TEQ Reg. */
- rhs = DPSRegRHS;
- dest = LHS ^ rhs;
- ARMul_NegZero (state, dest);
- }
- break;
-
- case 0x14: /* CMP reg and MRS SPSR and SWP byte. */
- if (state->is_v5e)
- {
- if (BIT (4) == 0 && BIT (7) == 1)
- {
- /* ElSegundo SMLALxy insn. */
- ARMdword op1 = state->Reg[BITS (0, 3)];
- ARMdword op2 = state->Reg[BITS (8, 11)];
- ARMdword result;
-
- if (BIT (5))
- op1 >>= 16;
- if (BIT (6))
- op2 >>= 16;
- op1 &= 0xFFFF;
- if (op1 & 0x8000)
- op1 -= 65536;
- op2 &= 0xFFFF;
- if (op2 & 0x8000)
- op2 -= 65536;
-
- result = (ARMdword) state->Reg[BITS (16, 19)] << 32;
- result |= state->Reg[BITS (12, 15)];
- result += op1 * op2;
- state->Reg[BITS (12, 15)] = result;
- state->Reg[BITS (16, 19)] = result >> 32;
- break;
- }
-
- if (BITS (4, 11) == 5)
- {
- /* ElSegundo QDADD insn. */
- ARMword op1 = state->Reg[BITS (0, 3)];
- ARMword op2 = state->Reg[BITS (16, 19)];
- ARMword op2d = op2 + op2;
- ARMword result;
-
- if (AddOverflow (op2, op2, op2d))
- {
- SETS;
- op2d = POS (op2d) ? 0x80000000 : 0x7fffffff;
- }
-
- result = op1 + op2d;
- if (AddOverflow (op1, op2d, result))
- {
- SETS;
- result = POS (result) ? 0x80000000 : 0x7fffffff;
- }
-
- state->Reg[BITS (12, 15)] = result;
- break;
- }
- }
-#ifdef MODET
- if (BITS (4, 7) == 0xB)
- {
- /* STRH immediate offset, no write-back, down, pre indexed. */
- SHPREDOWN ();
- break;
- }
- if (BITS (4, 7) == 0xD)
- {
- Handle_Load_Double (state, instr);
- break;
- }
- if (BITS (4, 7) == 0xF)
- {
- Handle_Store_Double (state, instr);
- break;
- }
-#endif
- if (BITS (4, 11) == 9)
- {
- /* SWP */
- UNDEF_SWPPC;
- temp = LHS;
- BUSUSEDINCPCS;
-#ifndef MODE32
- if (VECTORACCESS (temp) || ADDREXCEPT (temp))
- {
- INTERNALABORT (temp);
- (void) ARMul_LoadByte (state, temp);
- (void) ARMul_LoadByte (state, temp);
- }
- else
-#endif
- DEST = ARMul_SwapByte (state, temp, state->Reg[RHSReg]);
- if (state->abortSig || state->Aborted)
- TAKEABORT;
- }
- else if ((BITS (0, 11) == 0) && (LHSReg == 15))
- {
- /* MRS SPSR */
- UNDEF_MRSPC;
- DEST = GETSPSR (state->Bank);
- }
-#ifdef MODE32
- else if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- else
- UNDEF_Test;
-
- break;
-
- case 0x15: /* CMPP reg. */
-#ifdef MODET
- if ((BITS (4, 7) & 0x9) == 0x9)
- /* LDR immediate offset, no write-back, down, pre indexed. */
- LHPREDOWN ();
- /* Continue with remaining instruction decode. */
-#endif
- if (DESTReg == 15)
- {
- /* CMPP reg. */
-#ifdef MODE32
- state->Cpsr = GETSPSR (state->Bank);
- ARMul_CPSRAltered (state);
-#else
- rhs = DPRegRHS;
- temp = LHS - rhs;
- SETR15PSR (temp);
-#endif
- }
- else
- {
- /* CMP reg. */
- lhs = LHS;
- rhs = DPRegRHS;
- dest = lhs - rhs;
- ARMul_NegZero (state, dest);
- if ((lhs >= rhs) || ((rhs | lhs) >> 31))
- {
- ARMul_SubCarry (state, lhs, rhs, dest);
- ARMul_SubOverflow (state, lhs, rhs, dest);
- }
- else
- {
- CLEARC;
- CLEARV;
- }
- }
- break;
-
- case 0x16: /* CMN reg and MSR reg to SPSR */
- if (state->is_v5e)
- {
- if (BIT (4) == 0 && BIT (7) == 1 && BITS (12, 15) == 0)
- {
- /* ElSegundo SMULxy insn. */
- ARMword op1 = state->Reg[BITS (0, 3)];
- ARMword op2 = state->Reg[BITS (8, 11)];
-
- if (BIT (5))
- op1 >>= 16;
- if (BIT (6))
- op2 >>= 16;
- op1 &= 0xFFFF;
- op2 &= 0xFFFF;
- if (op1 & 0x8000)
- op1 -= 65536;
- if (op2 & 0x8000)
- op2 -= 65536;
-
- state->Reg[BITS (16, 19)] = op1 * op2;
- break;
- }
-
- if (BITS (4, 11) == 5)
- {
- /* ElSegundo QDSUB insn. */
- ARMword op1 = state->Reg[BITS (0, 3)];
- ARMword op2 = state->Reg[BITS (16, 19)];
- ARMword op2d = op2 + op2;
- ARMword result;
-
- if (AddOverflow (op2, op2, op2d))
- {
- SETS;
- op2d = POS (op2d) ? 0x80000000 : 0x7fffffff;
- }
-
- result = op1 - op2d;
- if (SubOverflow (op1, op2d, result))
- {
- SETS;
- result = POS (result) ? 0x80000000 : 0x7fffffff;
- }
-
- state->Reg[BITS (12, 15)] = result;
- break;
- }
- }
-
- if (state->is_v5)
- {
- if (BITS (4, 11) == 0xF1 && BITS (16, 19) == 0xF)
- {
- /* ARM5 CLZ insn. */
- ARMword op1 = state->Reg[BITS (0, 3)];
- int result = 32;
-
- if (op1)
- for (result = 0; (op1 & 0x80000000) == 0; op1 <<= 1)
- result++;
-
- state->Reg[BITS (12, 15)] = result;
- break;
- }
- }
-#ifdef MODET
- if (BITS (4, 7) == 0xB)
- {
- /* STRH immediate offset, write-back, down, pre indexed. */
- SHPREDOWNWB ();
- break;
- }
- if (BITS (4, 7) == 0xD)
- {
- Handle_Load_Double (state, instr);
- break;
- }
- if (BITS (4, 7) == 0xF)
- {
- Handle_Store_Double (state, instr);
- break;
- }
-#endif
- if (DESTReg == 15)
- {
- /* MSR */
- UNDEF_MSRPC;
- ARMul_FixSPSR (state, instr, DPRegRHS);
- }
- else
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- UNDEF_Test;
- }
- break;
-
- case 0x17: /* CMNP reg */
-#ifdef MODET
- if ((BITS (4, 7) & 0x9) == 0x9)
- /* LDR immediate offset, write-back, down, pre indexed. */
- LHPREDOWNWB ();
- /* Continue with remaining instruction decoding. */
-#endif
- if (DESTReg == 15)
- {
-#ifdef MODE32
- state->Cpsr = GETSPSR (state->Bank);
- ARMul_CPSRAltered (state);
-#else
- rhs = DPRegRHS;
- temp = LHS + rhs;
- SETR15PSR (temp);
-#endif
- break;
- }
- else
- {
- /* CMN reg. */
- lhs = LHS;
- rhs = DPRegRHS;
- dest = lhs + rhs;
- ASSIGNZ (dest == 0);
- if ((lhs | rhs) >> 30)
- {
- /* Possible C,V,N to set. */
- ASSIGNN (NEG (dest));
- ARMul_AddCarry (state, lhs, rhs, dest);
- ARMul_AddOverflow (state, lhs, rhs, dest);
- }
- else
- {
- CLEARN;
- CLEARC;
- CLEARV;
- }
- }
- break;
-
- case 0x18: /* ORR reg */
-#ifdef MODET
- if (BITS (4, 11) == 0xB)
- {
- /* STRH register offset, no write-back, up, pre indexed. */
- SHPREUP ();
- break;
- }
- if (BITS (4, 7) == 0xD)
- {
- Handle_Load_Double (state, instr);
- break;
- }
- if (BITS (4, 7) == 0xF)
- {
- Handle_Store_Double (state, instr);
- break;
- }
-#endif
- rhs = DPRegRHS;
- dest = LHS | rhs;
- WRITEDEST (dest);
- break;
-
- case 0x19: /* ORRS reg */
-#ifdef MODET
- if ((BITS (4, 11) & 0xF9) == 0x9)
- /* LDR register offset, no write-back, up, pre indexed. */
- LHPREUP ();
- /* Continue with remaining instruction decoding. */
-#endif
- rhs = DPSRegRHS;
- dest = LHS | rhs;
- WRITESDEST (dest);
- break;
-
- case 0x1a: /* MOV reg */
-#ifdef MODET
- if (BITS (4, 11) == 0xB)
- {
- /* STRH register offset, write-back, up, pre indexed. */
- SHPREUPWB ();
- break;
- }
- if (BITS (4, 7) == 0xD)
- {
- Handle_Load_Double (state, instr);
- break;
- }
- if (BITS (4, 7) == 0xF)
- {
- Handle_Store_Double (state, instr);
- break;
- }
-#endif
- dest = DPRegRHS;
- WRITEDEST (dest);
- break;
-
- case 0x1b: /* MOVS reg */
-#ifdef MODET
- if ((BITS (4, 11) & 0xF9) == 0x9)
- /* LDR register offset, write-back, up, pre indexed. */
- LHPREUPWB ();
- /* Continue with remaining instruction decoding. */
-#endif
- dest = DPSRegRHS;
- WRITESDEST (dest);
- break;
-
- case 0x1c: /* BIC reg */
-#ifdef MODET
- if (BITS (4, 7) == 0xB)
- {
- /* STRH immediate offset, no write-back, up, pre indexed. */
- SHPREUP ();
- break;
- }
- if (BITS (4, 7) == 0xD)
- {
- Handle_Load_Double (state, instr);
- break;
- }
- else if (BITS (4, 7) == 0xF)
- {
- Handle_Store_Double (state, instr);
- break;
- }
-#endif
- rhs = DPRegRHS;
- dest = LHS & ~rhs;
- WRITEDEST (dest);
- break;
-
- case 0x1d: /* BICS reg */
-#ifdef MODET
- if ((BITS (4, 7) & 0x9) == 0x9)
- /* LDR immediate offset, no write-back, up, pre indexed. */
- LHPREUP ();
- /* Continue with instruction decoding. */
-#endif
- rhs = DPSRegRHS;
- dest = LHS & ~rhs;
- WRITESDEST (dest);
- break;
-
- case 0x1e: /* MVN reg */
-#ifdef MODET
- if (BITS (4, 7) == 0xB)
- {
- /* STRH immediate offset, write-back, up, pre indexed. */
- SHPREUPWB ();
- break;
- }
- if (BITS (4, 7) == 0xD)
- {
- Handle_Load_Double (state, instr);
- break;
- }
- if (BITS (4, 7) == 0xF)
- {
- Handle_Store_Double (state, instr);
- break;
- }
-#endif
- dest = ~DPRegRHS;
- WRITEDEST (dest);
- break;
-
- case 0x1f: /* MVNS reg */
-#ifdef MODET
- if ((BITS (4, 7) & 0x9) == 0x9)
- /* LDR immediate offset, write-back, up, pre indexed. */
- LHPREUPWB ();
- /* Continue instruction decoding. */
-#endif
- dest = ~DPSRegRHS;
- WRITESDEST (dest);
- break;
-
-
- /* Data Processing Immediate RHS Instructions. */
-
- case 0x20: /* AND immed */
- dest = LHS & DPImmRHS;
- WRITEDEST (dest);
- break;
-
- case 0x21: /* ANDS immed */
- DPSImmRHS;
- dest = LHS & rhs;
- WRITESDEST (dest);
- break;
-
- case 0x22: /* EOR immed */
- dest = LHS ^ DPImmRHS;
- WRITEDEST (dest);
- break;
-
- case 0x23: /* EORS immed */
- DPSImmRHS;
- dest = LHS ^ rhs;
- WRITESDEST (dest);
- break;
-
- case 0x24: /* SUB immed */
- dest = LHS - DPImmRHS;
- WRITEDEST (dest);
- break;
-
- case 0x25: /* SUBS immed */
- lhs = LHS;
- rhs = DPImmRHS;
- dest = lhs - rhs;
-
- if ((lhs >= rhs) || ((rhs | lhs) >> 31))
- {
- ARMul_SubCarry (state, lhs, rhs, dest);
- ARMul_SubOverflow (state, lhs, rhs, dest);
- }
- else
- {
- CLEARC;
- CLEARV;
- }
- WRITESDEST (dest);
- break;
-
- case 0x26: /* RSB immed */
- dest = DPImmRHS - LHS;
- WRITEDEST (dest);
- break;
-
- case 0x27: /* RSBS immed */
- lhs = LHS;
- rhs = DPImmRHS;
- dest = rhs - lhs;
-
- if ((rhs >= lhs) || ((rhs | lhs) >> 31))
- {
- ARMul_SubCarry (state, rhs, lhs, dest);
- ARMul_SubOverflow (state, rhs, lhs, dest);
- }
- else
- {
- CLEARC;
- CLEARV;
- }
- WRITESDEST (dest);
- break;
-
- case 0x28: /* ADD immed */
- dest = LHS + DPImmRHS;
- WRITEDEST (dest);
- break;
-
- case 0x29: /* ADDS immed */
- lhs = LHS;
- rhs = DPImmRHS;
- dest = lhs + rhs;
- ASSIGNZ (dest == 0);
-
- if ((lhs | rhs) >> 30)
- {
- /* Possible C,V,N to set. */
- ASSIGNN (NEG (dest));
- ARMul_AddCarry (state, lhs, rhs, dest);
- ARMul_AddOverflow (state, lhs, rhs, dest);
- }
- else
- {
- CLEARN;
- CLEARC;
- CLEARV;
- }
- WRITESDEST (dest);
- break;
-
- case 0x2a: /* ADC immed */
- dest = LHS + DPImmRHS + CFLAG;
- WRITEDEST (dest);
- break;
-
- case 0x2b: /* ADCS immed */
- lhs = LHS;
- rhs = DPImmRHS;
- dest = lhs + rhs + CFLAG;
- ASSIGNZ (dest == 0);
- if ((lhs | rhs) >> 30)
- {
- /* Possible C,V,N to set. */
- ASSIGNN (NEG (dest));
- ARMul_AddCarry (state, lhs, rhs, dest);
- ARMul_AddOverflow (state, lhs, rhs, dest);
- }
- else
- {
- CLEARN;
- CLEARC;
- CLEARV;
- }
- WRITESDEST (dest);
- break;
-
- case 0x2c: /* SBC immed */
- dest = LHS - DPImmRHS - !CFLAG;
- WRITEDEST (dest);
- break;
-
- case 0x2d: /* SBCS immed */
- lhs = LHS;
- rhs = DPImmRHS;
- dest = lhs - rhs - !CFLAG;
- if ((lhs >= rhs) || ((rhs | lhs) >> 31))
- {
- ARMul_SubCarry (state, lhs, rhs, dest);
- ARMul_SubOverflow (state, lhs, rhs, dest);
- }
- else
- {
- CLEARC;
- CLEARV;
- }
- WRITESDEST (dest);
- break;
-
- case 0x2e: /* RSC immed */
- dest = DPImmRHS - LHS - !CFLAG;
- WRITEDEST (dest);
- break;
-
- case 0x2f: /* RSCS immed */
- lhs = LHS;
- rhs = DPImmRHS;
- dest = rhs - lhs - !CFLAG;
- if ((rhs >= lhs) || ((rhs | lhs) >> 31))
- {
- ARMul_SubCarry (state, rhs, lhs, dest);
- ARMul_SubOverflow (state, rhs, lhs, dest);
- }
- else
- {
- CLEARC;
- CLEARV;
- }
- WRITESDEST (dest);
- break;
-
- case 0x30: /* MOVW immed */
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- dest = BITS (0, 11);
- dest |= (BITS (16, 19) << 12);
- WRITEDEST (dest);
- break;
-
- case 0x31: /* TSTP immed */
- if (DESTReg == 15)
- {
- /* TSTP immed. */
-#ifdef MODE32
- state->Cpsr = GETSPSR (state->Bank);
- ARMul_CPSRAltered (state);
-#else
- temp = LHS & DPImmRHS;
- SETR15PSR (temp);
-#endif
- }
- else
- {
- /* TST immed. */
- DPSImmRHS;
- dest = LHS & rhs;
- ARMul_NegZero (state, dest);
- }
- break;
-
- case 0x32: /* TEQ immed and MSR immed to CPSR */
- if (DESTReg == 15)
- /* MSR immed to CPSR. */
- ARMul_FixCPSR (state, instr, DPImmRHS);
-#ifdef MODE32
- else if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- else
- UNDEF_Test;
- break;
-
- case 0x33: /* TEQP immed */
- if (DESTReg == 15)
- {
- /* TEQP immed. */
-#ifdef MODE32
- state->Cpsr = GETSPSR (state->Bank);
- ARMul_CPSRAltered (state);
-#else
- temp = LHS ^ DPImmRHS;
- SETR15PSR (temp);
-#endif
- }
- else
- {
- DPSImmRHS; /* TEQ immed */
- dest = LHS ^ rhs;
- ARMul_NegZero (state, dest);
- }
- break;
-
- case 0x34: /* MOVT immed */
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- DEST &= 0xFFFF;
- dest = BITS (0, 11);
- dest |= (BITS (16, 19) << 12);
- DEST |= (dest << 16);
- break;
-
- case 0x35: /* CMPP immed */
- if (DESTReg == 15)
- {
- /* CMPP immed. */
-#ifdef MODE32
- state->Cpsr = GETSPSR (state->Bank);
- ARMul_CPSRAltered (state);
-#else
- temp = LHS - DPImmRHS;
- SETR15PSR (temp);
-#endif
- break;
- }
- else
- {
- /* CMP immed. */
- lhs = LHS;
- rhs = DPImmRHS;
- dest = lhs - rhs;
- ARMul_NegZero (state, dest);
-
- if ((lhs >= rhs) || ((rhs | lhs) >> 31))
- {
- ARMul_SubCarry (state, lhs, rhs, dest);
- ARMul_SubOverflow (state, lhs, rhs, dest);
- }
- else
- {
- CLEARC;
- CLEARV;
- }
- }
- break;
-
- case 0x36: /* CMN immed and MSR immed to SPSR */
- if (DESTReg == 15)
- ARMul_FixSPSR (state, instr, DPImmRHS);
-#ifdef MODE32
- else if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- else
- UNDEF_Test;
- break;
-
- case 0x37: /* CMNP immed. */
- if (DESTReg == 15)
- {
- /* CMNP immed. */
-#ifdef MODE32
- state->Cpsr = GETSPSR (state->Bank);
- ARMul_CPSRAltered (state);
-#else
- temp = LHS + DPImmRHS;
- SETR15PSR (temp);
-#endif
- break;
- }
- else
- {
- /* CMN immed. */
- lhs = LHS;
- rhs = DPImmRHS;
- dest = lhs + rhs;
- ASSIGNZ (dest == 0);
- if ((lhs | rhs) >> 30)
- {
- /* Possible C,V,N to set. */
- ASSIGNN (NEG (dest));
- ARMul_AddCarry (state, lhs, rhs, dest);
- ARMul_AddOverflow (state, lhs, rhs, dest);
- }
- else
- {
- CLEARN;
- CLEARC;
- CLEARV;
- }
- }
- break;
-
- case 0x38: /* ORR immed. */
- dest = LHS | DPImmRHS;
- WRITEDEST (dest);
- break;
-
- case 0x39: /* ORRS immed. */
- DPSImmRHS;
- dest = LHS | rhs;
- WRITESDEST (dest);
- break;
-
- case 0x3a: /* MOV immed. */
- dest = DPImmRHS;
- WRITEDEST (dest);
- break;
-
- case 0x3b: /* MOVS immed. */
- DPSImmRHS;
- WRITESDEST (rhs);
- break;
-
- case 0x3c: /* BIC immed. */
- dest = LHS & ~DPImmRHS;
- WRITEDEST (dest);
- break;
-
- case 0x3d: /* BICS immed. */
- DPSImmRHS;
- dest = LHS & ~rhs;
- WRITESDEST (dest);
- break;
-
- case 0x3e: /* MVN immed. */
- dest = ~DPImmRHS;
- WRITEDEST (dest);
- break;
-
- case 0x3f: /* MVNS immed. */
- DPSImmRHS;
- WRITESDEST (~rhs);
- break;
-
-
- /* Single Data Transfer Immediate RHS Instructions. */
-
- case 0x40: /* Store Word, No WriteBack, Post Dec, Immed. */
- lhs = LHS;
- if (StoreWord (state, instr, lhs))
- LSBase = lhs - LSImmRHS;
- break;
-
- case 0x41: /* Load Word, No WriteBack, Post Dec, Immed. */
- lhs = LHS;
- if (LoadWord (state, instr, lhs))
- LSBase = lhs - LSImmRHS;
- break;
-
- case 0x42: /* Store Word, WriteBack, Post Dec, Immed. */
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- lhs = LHS;
- temp = lhs - LSImmRHS;
- state->NtransSig = LOW;
- if (StoreWord (state, instr, lhs))
- LSBase = temp;
- state->NtransSig = (state->Mode & 3) ? HIGH : LOW;
- break;
-
- case 0x43: /* Load Word, WriteBack, Post Dec, Immed. */
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- lhs = LHS;
- state->NtransSig = LOW;
- if (LoadWord (state, instr, lhs))
- LSBase = lhs - LSImmRHS;
- state->NtransSig = (state->Mode & 3) ? HIGH : LOW;
- break;
-
- case 0x44: /* Store Byte, No WriteBack, Post Dec, Immed. */
- lhs = LHS;
- if (StoreByte (state, instr, lhs))
- LSBase = lhs - LSImmRHS;
- break;
-
- case 0x45: /* Load Byte, No WriteBack, Post Dec, Immed. */
- lhs = LHS;
- if (LoadByte (state, instr, lhs, LUNSIGNED))
- LSBase = lhs - LSImmRHS;
- break;
-
- case 0x46: /* Store Byte, WriteBack, Post Dec, Immed. */
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- lhs = LHS;
- state->NtransSig = LOW;
- if (StoreByte (state, instr, lhs))
- LSBase = lhs - LSImmRHS;
- state->NtransSig = (state->Mode & 3) ? HIGH : LOW;
- break;
-
- case 0x47: /* Load Byte, WriteBack, Post Dec, Immed. */
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- lhs = LHS;
- state->NtransSig = LOW;
- if (LoadByte (state, instr, lhs, LUNSIGNED))
- LSBase = lhs - LSImmRHS;
- state->NtransSig = (state->Mode & 3) ? HIGH : LOW;
- break;
-
- case 0x48: /* Store Word, No WriteBack, Post Inc, Immed. */
- lhs = LHS;
- if (StoreWord (state, instr, lhs))
- LSBase = lhs + LSImmRHS;
- break;
-
- case 0x49: /* Load Word, No WriteBack, Post Inc, Immed. */
- lhs = LHS;
- if (LoadWord (state, instr, lhs))
- LSBase = lhs + LSImmRHS;
- break;
-
- case 0x4a: /* Store Word, WriteBack, Post Inc, Immed. */
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- lhs = LHS;
- state->NtransSig = LOW;
- if (StoreWord (state, instr, lhs))
- LSBase = lhs + LSImmRHS;
- state->NtransSig = (state->Mode & 3) ? HIGH : LOW;
- break;
-
- case 0x4b: /* Load Word, WriteBack, Post Inc, Immed. */
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- lhs = LHS;
- state->NtransSig = LOW;
- if (LoadWord (state, instr, lhs))
- LSBase = lhs + LSImmRHS;
- state->NtransSig = (state->Mode & 3) ? HIGH : LOW;
- break;
-
- case 0x4c: /* Store Byte, No WriteBack, Post Inc, Immed. */
- lhs = LHS;
- if (StoreByte (state, instr, lhs))
- LSBase = lhs + LSImmRHS;
- break;
-
- case 0x4d: /* Load Byte, No WriteBack, Post Inc, Immed. */
- lhs = LHS;
- if (LoadByte (state, instr, lhs, LUNSIGNED))
- LSBase = lhs + LSImmRHS;
- break;
-
- case 0x4e: /* Store Byte, WriteBack, Post Inc, Immed. */
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- lhs = LHS;
- state->NtransSig = LOW;
- if (StoreByte (state, instr, lhs))
- LSBase = lhs + LSImmRHS;
- state->NtransSig = (state->Mode & 3) ? HIGH : LOW;
- break;
-
- case 0x4f: /* Load Byte, WriteBack, Post Inc, Immed. */
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- lhs = LHS;
- state->NtransSig = LOW;
- if (LoadByte (state, instr, lhs, LUNSIGNED))
- LSBase = lhs + LSImmRHS;
- state->NtransSig = (state->Mode & 3) ? HIGH : LOW;
- break;
-
-
- case 0x50: /* Store Word, No WriteBack, Pre Dec, Immed. */
- (void) StoreWord (state, instr, LHS - LSImmRHS);
- break;
-
- case 0x51: /* Load Word, No WriteBack, Pre Dec, Immed. */
- (void) LoadWord (state, instr, LHS - LSImmRHS);
- break;
-
- case 0x52: /* Store Word, WriteBack, Pre Dec, Immed. */
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- temp = LHS - LSImmRHS;
- if (StoreWord (state, instr, temp))
- LSBase = temp;
- break;
-
- case 0x53: /* Load Word, WriteBack, Pre Dec, Immed. */
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- temp = LHS - LSImmRHS;
- if (LoadWord (state, instr, temp))
- LSBase = temp;
- break;
-
- case 0x54: /* Store Byte, No WriteBack, Pre Dec, Immed. */
- (void) StoreByte (state, instr, LHS - LSImmRHS);
- break;
-
- case 0x55: /* Load Byte, No WriteBack, Pre Dec, Immed. */
- (void) LoadByte (state, instr, LHS - LSImmRHS, LUNSIGNED);
- break;
-
- case 0x56: /* Store Byte, WriteBack, Pre Dec, Immed. */
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- temp = LHS - LSImmRHS;
- if (StoreByte (state, instr, temp))
- LSBase = temp;
- break;
-
- case 0x57: /* Load Byte, WriteBack, Pre Dec, Immed. */
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- temp = LHS - LSImmRHS;
- if (LoadByte (state, instr, temp, LUNSIGNED))
- LSBase = temp;
- break;
-
- case 0x58: /* Store Word, No WriteBack, Pre Inc, Immed. */
- (void) StoreWord (state, instr, LHS + LSImmRHS);
- break;
-
- case 0x59: /* Load Word, No WriteBack, Pre Inc, Immed. */
- (void) LoadWord (state, instr, LHS + LSImmRHS);
- break;
-
- case 0x5a: /* Store Word, WriteBack, Pre Inc, Immed. */
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- temp = LHS + LSImmRHS;
- if (StoreWord (state, instr, temp))
- LSBase = temp;
- break;
-
- case 0x5b: /* Load Word, WriteBack, Pre Inc, Immed. */
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- temp = LHS + LSImmRHS;
- if (LoadWord (state, instr, temp))
- LSBase = temp;
- break;
-
- case 0x5c: /* Store Byte, No WriteBack, Pre Inc, Immed. */
- (void) StoreByte (state, instr, LHS + LSImmRHS);
- break;
-
- case 0x5d: /* Load Byte, No WriteBack, Pre Inc, Immed. */
- (void) LoadByte (state, instr, LHS + LSImmRHS, LUNSIGNED);
- break;
-
- case 0x5e: /* Store Byte, WriteBack, Pre Inc, Immed. */
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- temp = LHS + LSImmRHS;
- if (StoreByte (state, instr, temp))
- LSBase = temp;
- break;
-
- case 0x5f: /* Load Byte, WriteBack, Pre Inc, Immed. */
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- temp = LHS + LSImmRHS;
- if (LoadByte (state, instr, temp, LUNSIGNED))
- LSBase = temp;
- break;
-
-
- /* Single Data Transfer Register RHS Instructions. */
-
- case 0x60: /* Store Word, No WriteBack, Post Dec, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- lhs = LHS;
- if (StoreWord (state, instr, lhs))
- LSBase = lhs - LSRegRHS;
- break;
-
- case 0x61: /* Load Word, No WriteBack, Post Dec, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- lhs = LHS;
- temp = lhs - LSRegRHS;
- if (LoadWord (state, instr, lhs))
- LSBase = temp;
- break;
-
- case 0x62: /* Store Word, WriteBack, Post Dec, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- lhs = LHS;
- state->NtransSig = LOW;
- if (StoreWord (state, instr, lhs))
- LSBase = lhs - LSRegRHS;
- state->NtransSig = (state->Mode & 3) ? HIGH : LOW;
- break;
-
- case 0x63: /* Load Word, WriteBack, Post Dec, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- lhs = LHS;
- temp = lhs - LSRegRHS;
- state->NtransSig = LOW;
- if (LoadWord (state, instr, lhs))
- LSBase = temp;
- state->NtransSig = (state->Mode & 3) ? HIGH : LOW;
- break;
-
- case 0x64: /* Store Byte, No WriteBack, Post Dec, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- lhs = LHS;
- if (StoreByte (state, instr, lhs))
- LSBase = lhs - LSRegRHS;
- break;
-
- case 0x65: /* Load Byte, No WriteBack, Post Dec, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- lhs = LHS;
- temp = lhs - LSRegRHS;
- if (LoadByte (state, instr, lhs, LUNSIGNED))
- LSBase = temp;
- break;
-
- case 0x66: /* Store Byte, WriteBack, Post Dec, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- lhs = LHS;
- state->NtransSig = LOW;
- if (StoreByte (state, instr, lhs))
- LSBase = lhs - LSRegRHS;
- state->NtransSig = (state->Mode & 3) ? HIGH : LOW;
- break;
-
- case 0x67: /* Load Byte, WriteBack, Post Dec, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- lhs = LHS;
- temp = lhs - LSRegRHS;
- state->NtransSig = LOW;
- if (LoadByte (state, instr, lhs, LUNSIGNED))
- LSBase = temp;
- state->NtransSig = (state->Mode & 3) ? HIGH : LOW;
- break;
-
- case 0x68: /* Store Word, No WriteBack, Post Inc, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- lhs = LHS;
- if (StoreWord (state, instr, lhs))
- LSBase = lhs + LSRegRHS;
- break;
-
- case 0x69: /* Load Word, No WriteBack, Post Inc, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- lhs = LHS;
- temp = lhs + LSRegRHS;
- if (LoadWord (state, instr, lhs))
- LSBase = temp;
- break;
-
- case 0x6a: /* Store Word, WriteBack, Post Inc, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- lhs = LHS;
- state->NtransSig = LOW;
- if (StoreWord (state, instr, lhs))
- LSBase = lhs + LSRegRHS;
- state->NtransSig = (state->Mode & 3) ? HIGH : LOW;
- break;
-
- case 0x6b: /* Load Word, WriteBack, Post Inc, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- lhs = LHS;
- temp = lhs + LSRegRHS;
- state->NtransSig = LOW;
- if (LoadWord (state, instr, lhs))
- LSBase = temp;
- state->NtransSig = (state->Mode & 3) ? HIGH : LOW;
- break;
-
- case 0x6c: /* Store Byte, No WriteBack, Post Inc, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- lhs = LHS;
- if (StoreByte (state, instr, lhs))
- LSBase = lhs + LSRegRHS;
- break;
-
- case 0x6d: /* Load Byte, No WriteBack, Post Inc, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- lhs = LHS;
- temp = lhs + LSRegRHS;
- if (LoadByte (state, instr, lhs, LUNSIGNED))
- LSBase = temp;
- break;
-
- case 0x6e: /* Store Byte, WriteBack, Post Inc, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- lhs = LHS;
- state->NtransSig = LOW;
- if (StoreByte (state, instr, lhs))
- LSBase = lhs + LSRegRHS;
- state->NtransSig = (state->Mode & 3) ? HIGH : LOW;
- break;
-
- case 0x6f: /* Load Byte, WriteBack, Post Inc, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- lhs = LHS;
- temp = lhs + LSRegRHS;
- state->NtransSig = LOW;
- if (LoadByte (state, instr, lhs, LUNSIGNED))
- LSBase = temp;
- state->NtransSig = (state->Mode & 3) ? HIGH : LOW;
- break;
-
-
- case 0x70: /* Store Word, No WriteBack, Pre Dec, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- (void) StoreWord (state, instr, LHS - LSRegRHS);
- break;
-
- case 0x71: /* Load Word, No WriteBack, Pre Dec, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- (void) LoadWord (state, instr, LHS - LSRegRHS);
- break;
-
- case 0x72: /* Store Word, WriteBack, Pre Dec, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- temp = LHS - LSRegRHS;
- if (StoreWord (state, instr, temp))
- LSBase = temp;
- break;
-
- case 0x73: /* Load Word, WriteBack, Pre Dec, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- temp = LHS - LSRegRHS;
- if (LoadWord (state, instr, temp))
- LSBase = temp;
- break;
-
- case 0x74: /* Store Byte, No WriteBack, Pre Dec, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- (void) StoreByte (state, instr, LHS - LSRegRHS);
- break;
-
- case 0x75: /* Load Byte, No WriteBack, Pre Dec, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- (void) LoadByte (state, instr, LHS - LSRegRHS, LUNSIGNED);
- break;
-
- case 0x76: /* Store Byte, WriteBack, Pre Dec, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- temp = LHS - LSRegRHS;
- if (StoreByte (state, instr, temp))
- LSBase = temp;
- break;
-
- case 0x77: /* Load Byte, WriteBack, Pre Dec, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- temp = LHS - LSRegRHS;
- if (LoadByte (state, instr, temp, LUNSIGNED))
- LSBase = temp;
- break;
-
- case 0x78: /* Store Word, No WriteBack, Pre Inc, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- (void) StoreWord (state, instr, LHS + LSRegRHS);
- break;
-
- case 0x79: /* Load Word, No WriteBack, Pre Inc, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- (void) LoadWord (state, instr, LHS + LSRegRHS);
- break;
-
- case 0x7a: /* Store Word, WriteBack, Pre Inc, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- temp = LHS + LSRegRHS;
- if (StoreWord (state, instr, temp))
- LSBase = temp;
- break;
-
- case 0x7b: /* Load Word, WriteBack, Pre Inc, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- temp = LHS + LSRegRHS;
- if (LoadWord (state, instr, temp))
- LSBase = temp;
- break;
-
- case 0x7c: /* Store Byte, No WriteBack, Pre Inc, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- (void) StoreByte (state, instr, LHS + LSRegRHS);
- break;
-
- case 0x7d: /* Load Byte, No WriteBack, Pre Inc, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- (void) LoadByte (state, instr, LHS + LSRegRHS, LUNSIGNED);
- break;
-
- case 0x7e: /* Store Byte, WriteBack, Pre Inc, Reg. */
- if (BIT (4))
- {
-#ifdef MODE32
- if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- temp = LHS + LSRegRHS;
- if (StoreByte (state, instr, temp))
- LSBase = temp;
- break;
-
- case 0x7f: /* Load Byte, WriteBack, Pre Inc, Reg. */
- if (BIT (4))
- {
- /* Check for the special breakpoint opcode.
- This value should correspond to the value defined
- as ARM_BE_BREAKPOINT in gdb/arm/tm-arm.h. */
- if (BITS (0, 19) == 0xfdefe)
- {
- if (!ARMul_OSHandleSWI (state, SWI_Breakpoint))
- ARMul_Abort (state, ARMul_SWIV);
- }
-#ifdef MODE32
- else if (state->is_v6
- && handle_v6_insn (state, instr))
- break;
-#endif
- else
- ARMul_UndefInstr (state, instr);
- break;
- }
- UNDEF_LSRBaseEQOffWb;
- UNDEF_LSRBaseEQDestWb;
- UNDEF_LSRPCBaseWb;
- UNDEF_LSRPCOffWb;
- temp = LHS + LSRegRHS;
- if (LoadByte (state, instr, temp, LUNSIGNED))
- LSBase = temp;
- break;
-
-
- /* Multiple Data Transfer Instructions. */
-
- case 0x80: /* Store, No WriteBack, Post Dec. */
- STOREMULT (instr, LSBase - LSMNumRegs + 4L, 0L);
- break;
-
- case 0x81: /* Load, No WriteBack, Post Dec. */
- LOADMULT (instr, LSBase - LSMNumRegs + 4L, 0L);
- break;
-
- case 0x82: /* Store, WriteBack, Post Dec. */
- temp = LSBase - LSMNumRegs;
- STOREMULT (instr, temp + 4L, temp);
- break;
-
- case 0x83: /* Load, WriteBack, Post Dec. */
- temp = LSBase - LSMNumRegs;
- LOADMULT (instr, temp + 4L, temp);
- break;
-
- case 0x84: /* Store, Flags, No WriteBack, Post Dec. */
- STORESMULT (instr, LSBase - LSMNumRegs + 4L, 0L);
- break;
-
- case 0x85: /* Load, Flags, No WriteBack, Post Dec. */
- LOADSMULT (instr, LSBase - LSMNumRegs + 4L, 0L);
- break;
-
- case 0x86: /* Store, Flags, WriteBack, Post Dec. */
- temp = LSBase - LSMNumRegs;
- STORESMULT (instr, temp + 4L, temp);
- break;
-
- case 0x87: /* Load, Flags, WriteBack, Post Dec. */
- temp = LSBase - LSMNumRegs;
- LOADSMULT (instr, temp + 4L, temp);
- break;
-
- case 0x88: /* Store, No WriteBack, Post Inc. */
- STOREMULT (instr, LSBase, 0L);
- break;
-
- case 0x89: /* Load, No WriteBack, Post Inc. */
- LOADMULT (instr, LSBase, 0L);
- break;
-
- case 0x8a: /* Store, WriteBack, Post Inc. */
- temp = LSBase;
- STOREMULT (instr, temp, temp + LSMNumRegs);
- break;
-
- case 0x8b: /* Load, WriteBack, Post Inc. */
- temp = LSBase;
- LOADMULT (instr, temp, temp + LSMNumRegs);
- break;
-
- case 0x8c: /* Store, Flags, No WriteBack, Post Inc. */
- STORESMULT (instr, LSBase, 0L);
- break;
-
- case 0x8d: /* Load, Flags, No WriteBack, Post Inc. */
- LOADSMULT (instr, LSBase, 0L);
- break;
-
- case 0x8e: /* Store, Flags, WriteBack, Post Inc. */
- temp = LSBase;
- STORESMULT (instr, temp, temp + LSMNumRegs);
- break;
-
- case 0x8f: /* Load, Flags, WriteBack, Post Inc. */
- temp = LSBase;
- LOADSMULT (instr, temp, temp + LSMNumRegs);
- break;
-
- case 0x90: /* Store, No WriteBack, Pre Dec. */
- STOREMULT (instr, LSBase - LSMNumRegs, 0L);
- break;
-
- case 0x91: /* Load, No WriteBack, Pre Dec. */
- LOADMULT (instr, LSBase - LSMNumRegs, 0L);
- break;
-
- case 0x92: /* Store, WriteBack, Pre Dec. */
- temp = LSBase - LSMNumRegs;
- STOREMULT (instr, temp, temp);
- break;
-
- case 0x93: /* Load, WriteBack, Pre Dec. */
- temp = LSBase - LSMNumRegs;
- LOADMULT (instr, temp, temp);
- break;
-
- case 0x94: /* Store, Flags, No WriteBack, Pre Dec. */
- STORESMULT (instr, LSBase - LSMNumRegs, 0L);
- break;
-
- case 0x95: /* Load, Flags, No WriteBack, Pre Dec. */
- LOADSMULT (instr, LSBase - LSMNumRegs, 0L);
- break;
-
- case 0x96: /* Store, Flags, WriteBack, Pre Dec. */
- temp = LSBase - LSMNumRegs;
- STORESMULT (instr, temp, temp);
- break;
-
- case 0x97: /* Load, Flags, WriteBack, Pre Dec. */
- temp = LSBase - LSMNumRegs;
- LOADSMULT (instr, temp, temp);
- break;
-
- case 0x98: /* Store, No WriteBack, Pre Inc. */
- STOREMULT (instr, LSBase + 4L, 0L);
- break;
-
- case 0x99: /* Load, No WriteBack, Pre Inc. */
- LOADMULT (instr, LSBase + 4L, 0L);
- break;
-
- case 0x9a: /* Store, WriteBack, Pre Inc. */
- temp = LSBase;
- STOREMULT (instr, temp + 4L, temp + LSMNumRegs);
- break;
-
- case 0x9b: /* Load, WriteBack, Pre Inc. */
- temp = LSBase;
- LOADMULT (instr, temp + 4L, temp + LSMNumRegs);
- break;
-
- case 0x9c: /* Store, Flags, No WriteBack, Pre Inc. */
- STORESMULT (instr, LSBase + 4L, 0L);
- break;
-
- case 0x9d: /* Load, Flags, No WriteBack, Pre Inc. */
- LOADSMULT (instr, LSBase + 4L, 0L);
- break;
-
- case 0x9e: /* Store, Flags, WriteBack, Pre Inc. */
- temp = LSBase;
- STORESMULT (instr, temp + 4L, temp + LSMNumRegs);
- break;
-
- case 0x9f: /* Load, Flags, WriteBack, Pre Inc. */
- temp = LSBase;
- LOADSMULT (instr, temp + 4L, temp + LSMNumRegs);
- break;
-
-
- /* Branch forward. */
- case 0xa0:
- case 0xa1:
- case 0xa2:
- case 0xa3:
- case 0xa4:
- case 0xa5:
- case 0xa6:
- case 0xa7:
- state->Reg[15] = pc + 8 + POSBRANCH;
- FLUSHPIPE;
- break;
-
-
- /* Branch backward. */
- case 0xa8:
- case 0xa9:
- case 0xaa:
- case 0xab:
- case 0xac:
- case 0xad:
- case 0xae:
- case 0xaf:
- state->Reg[15] = pc + 8 + NEGBRANCH;
- FLUSHPIPE;
- break;
-
- /* Branch and Link forward. */
- case 0xb0:
- case 0xb1:
- case 0xb2:
- case 0xb3:
- case 0xb4:
- case 0xb5:
- case 0xb6:
- case 0xb7:
- /* Put PC into Link. */
-#ifdef MODE32
- state->Reg[14] = pc + 4;
-#else
- state->Reg[14] = (pc + 4) | ECC | ER15INT | EMODE;
-#endif
- state->Reg[15] = pc + 8 + POSBRANCH;
- FLUSHPIPE;
- if (trace_funcs)
- fprintf (stderr, " pc changed to %x\n", state->Reg[15]);
- break;
-
- /* Branch and Link backward. */
- case 0xb8:
- case 0xb9:
- case 0xba:
- case 0xbb:
- case 0xbc:
- case 0xbd:
- case 0xbe:
- case 0xbf:
- /* Put PC into Link. */
-#ifdef MODE32
- state->Reg[14] = pc + 4;
-#else
- state->Reg[14] = (pc + 4) | ECC | ER15INT | EMODE;
-#endif
- state->Reg[15] = pc + 8 + NEGBRANCH;
- FLUSHPIPE;
- if (trace_funcs)
- fprintf (stderr, " pc changed to %x\n", state->Reg[15]);
- break;
-
- /* Co-Processor Data Transfers. */
- case 0xc4:
- if (state->is_v5)
- {
- if (CPNum == 10 || CPNum == 11)
- handle_VFP_move (state, instr);
- /* Reading from R15 is UNPREDICTABLE. */
- else if (BITS (12, 15) == 15 || BITS (16, 19) == 15)
- ARMul_UndefInstr (state, instr);
- /* Is access to coprocessor 0 allowed ? */
- else if (! CP_ACCESS_ALLOWED (state, CPNum))
- ARMul_UndefInstr (state, instr);
- /* Special treatment for XScale coprocessors. */
- else if (state->is_XScale)
- {
- /* Only opcode 0 is supported. */
- if (BITS (4, 7) != 0x00)
- ARMul_UndefInstr (state, instr);
- /* Only coporcessor 0 is supported. */
- else if (CPNum != 0x00)
- ARMul_UndefInstr (state, instr);
- /* Only accumulator 0 is supported. */
- else if (BITS (0, 3) != 0x00)
- ARMul_UndefInstr (state, instr);
- else
- {
- /* XScale MAR insn. Move two registers into accumulator. */
- state->Accumulator = state->Reg[BITS (12, 15)];
- state->Accumulator += (ARMdword) state->Reg[BITS (16, 19)] << 32;
- }
- }
- else
- /* FIXME: Not sure what to do for other v5 processors. */
- ARMul_UndefInstr (state, instr);
- break;
- }
- ATTRIBUTE_FALLTHROUGH;
-
- case 0xc0: /* Store , No WriteBack , Post Dec. */
- ARMul_STC (state, instr, LHS);
- break;
-
- case 0xc5:
- if (state->is_v5)
- {
- if (CPNum == 10 || CPNum == 11)
- handle_VFP_move (state, instr);
- /* Writes to R15 are UNPREDICATABLE. */
- else if (DESTReg == 15 || LHSReg == 15)
- ARMul_UndefInstr (state, instr);
- /* Is access to the coprocessor allowed ? */
- else if (! CP_ACCESS_ALLOWED (state, CPNum))
- ARMul_UndefInstr (state, instr);
- /* Special handling for XScale coprcoessors. */
- else if (state->is_XScale)
- {
- /* Only opcode 0 is supported. */
- if (BITS (4, 7) != 0x00)
- ARMul_UndefInstr (state, instr);
- /* Only coprocessor 0 is supported. */
- else if (CPNum != 0x00)
- ARMul_UndefInstr (state, instr);
- /* Only accumulator 0 is supported. */
- else if (BITS (0, 3) != 0x00)
- ARMul_UndefInstr (state, instr);
- else
- {
- /* XScale MRA insn. Move accumulator into two registers. */
- ARMword t1 = (state->Accumulator >> 32) & 255;
-
- if (t1 & 128)
- t1 -= 256;
-
- state->Reg[BITS (12, 15)] = state->Accumulator;
- state->Reg[BITS (16, 19)] = t1;
- break;
- }
- }
- else
- /* FIXME: Not sure what to do for other v5 processors. */
- ARMul_UndefInstr (state, instr);
- break;
- }
- ATTRIBUTE_FALLTHROUGH;
-
- case 0xc1: /* Load , No WriteBack , Post Dec. */
- ARMul_LDC (state, instr, LHS);
- break;
-
- case 0xc2:
- case 0xc6: /* Store , WriteBack , Post Dec. */
- lhs = LHS;
- state->Base = lhs - LSCOff;
- ARMul_STC (state, instr, lhs);
- break;
-
- case 0xc3:
- case 0xc7: /* Load , WriteBack , Post Dec. */
- lhs = LHS;
- state->Base = lhs - LSCOff;
- ARMul_LDC (state, instr, lhs);
- break;
-
- case 0xc8:
- case 0xcc: /* Store , No WriteBack , Post Inc. */
- ARMul_STC (state, instr, LHS);
- break;
-
- case 0xc9:
- case 0xcd: /* Load , No WriteBack , Post Inc. */
- ARMul_LDC (state, instr, LHS);
- break;
-
- case 0xca:
- case 0xce: /* Store , WriteBack , Post Inc. */
- lhs = LHS;
- state->Base = lhs + LSCOff;
- ARMul_STC (state, instr, LHS);
- break;
-
- case 0xcb:
- case 0xcf: /* Load , WriteBack , Post Inc. */
- lhs = LHS;
- state->Base = lhs + LSCOff;
- ARMul_LDC (state, instr, LHS);
- break;
-
- case 0xd0:
- case 0xd4: /* Store , No WriteBack , Pre Dec. */
- ARMul_STC (state, instr, LHS - LSCOff);
- break;
-
- case 0xd1:
- case 0xd5: /* Load , No WriteBack , Pre Dec. */
- ARMul_LDC (state, instr, LHS - LSCOff);
- break;
-
- case 0xd2:
- case 0xd6: /* Store , WriteBack , Pre Dec. */
- lhs = LHS - LSCOff;
- state->Base = lhs;
- ARMul_STC (state, instr, lhs);
- break;
-
- case 0xd3:
- case 0xd7: /* Load , WriteBack , Pre Dec. */
- lhs = LHS - LSCOff;
- state->Base = lhs;
- ARMul_LDC (state, instr, lhs);
- break;
-
- case 0xd8:
- case 0xdc: /* Store , No WriteBack , Pre Inc. */
- ARMul_STC (state, instr, LHS + LSCOff);
- break;
-
- case 0xd9:
- case 0xdd: /* Load , No WriteBack , Pre Inc. */
- ARMul_LDC (state, instr, LHS + LSCOff);
- break;
-
- case 0xda:
- case 0xde: /* Store , WriteBack , Pre Inc. */
- lhs = LHS + LSCOff;
- state->Base = lhs;
- ARMul_STC (state, instr, lhs);
- break;
-
- case 0xdb:
- case 0xdf: /* Load , WriteBack , Pre Inc. */
- lhs = LHS + LSCOff;
- state->Base = lhs;
- ARMul_LDC (state, instr, lhs);
- break;
-
-
- /* Co-Processor Register Transfers (MCR) and Data Ops. */
-
- case 0xe2:
- if (! CP_ACCESS_ALLOWED (state, CPNum))
- {
- ARMul_UndefInstr (state, instr);
- break;
- }
- if (state->is_XScale)
- switch (BITS (18, 19))
- {
- case 0x0:
- if (BITS (4, 11) == 1 && BITS (16, 17) == 0)
- {
- /* XScale MIA instruction. Signed multiplication of
- two 32 bit values and addition to 40 bit accumulator. */
- ARMsdword Rm = state->Reg[MULLHSReg];
- ARMsdword Rs = state->Reg[MULACCReg];
-
- if (Rm & (1 << 31))
- Rm -= 1ULL << 32;
- if (Rs & (1 << 31))
- Rs -= 1ULL << 32;
- state->Accumulator += Rm * Rs;
- goto donext;
- }
- break;
-
- case 0x2:
- if (BITS (4, 11) == 1 && BITS (16, 17) == 0)
- {
- /* XScale MIAPH instruction. */
- ARMword t1 = state->Reg[MULLHSReg] >> 16;
- ARMword t2 = state->Reg[MULACCReg] >> 16;
- ARMword t3 = state->Reg[MULLHSReg] & 0xffff;
- ARMword t4 = state->Reg[MULACCReg] & 0xffff;
- ARMsdword t5;
-
- if (t1 & (1 << 15))
- t1 -= 1 << 16;
- if (t2 & (1 << 15))
- t2 -= 1 << 16;
- if (t3 & (1 << 15))
- t3 -= 1 << 16;
- if (t4 & (1 << 15))
- t4 -= 1 << 16;
- t1 *= t2;
- t5 = t1;
- if (t5 & (1 << 31))
- t5 -= 1ULL << 32;
- state->Accumulator += t5;
- t3 *= t4;
- t5 = t3;
- if (t5 & (1 << 31))
- t5 -= 1ULL << 32;
- state->Accumulator += t5;
- goto donext;
- }
- break;
-
- case 0x3:
- if (BITS (4, 11) == 1)
- {
- /* XScale MIAxy instruction. */
- ARMword t1;
- ARMword t2;
- ARMsdword t5;
-
- if (BIT (17))
- t1 = state->Reg[MULLHSReg] >> 16;
- else
- t1 = state->Reg[MULLHSReg] & 0xffff;
-
- if (BIT (16))
- t2 = state->Reg[MULACCReg] >> 16;
- else
- t2 = state->Reg[MULACCReg] & 0xffff;
-
- if (t1 & (1 << 15))
- t1 -= 1 << 16;
- if (t2 & (1 << 15))
- t2 -= 1 << 16;
- t1 *= t2;
- t5 = t1;
- if (t5 & (1 << 31))
- t5 -= 1ULL << 32;
- state->Accumulator += t5;
- goto donext;
- }
- break;
-
- default:
- break;
- }
- ATTRIBUTE_FALLTHROUGH;
-
- case 0xe0:
- case 0xe4:
- case 0xe6:
- case 0xe8:
- case 0xea:
- case 0xec:
- case 0xee:
- if (BIT (4))
- {
- if (CPNum == 10 || CPNum == 11)
- handle_VFP_move (state, instr);
- /* MCR. */
- else if (DESTReg == 15)
- {
- UNDEF_MCRPC;
-#ifdef MODE32
- ARMul_MCR (state, instr, state->Reg[15] + isize);
-#else
- ARMul_MCR (state, instr, ECC | ER15INT | EMODE |
- ((state->Reg[15] + isize) & R15PCBITS));
-#endif
- }
- else
- ARMul_MCR (state, instr, DEST);
- }
- else
- /* CDP Part 1. */
- ARMul_CDP (state, instr);
- break;
-
-
- /* Co-Processor Register Transfers (MRC) and Data Ops. */
- case 0xe1:
- case 0xe3:
- case 0xe5:
- case 0xe7:
- case 0xe9:
- case 0xeb:
- case 0xed:
- case 0xef:
- if (BIT (4))
- {
- if (CPNum == 10 || CPNum == 11)
- {
- switch (BITS (20, 27))
- {
- case 0xEF:
- if (BITS (16, 19) == 0x1
- && BITS (0, 11) == 0xA10)
- {
- /* VMRS */
- if (DESTReg == 15)
- {
- ARMul_SetCPSR (state, (state->FPSCR & 0xF0000000)
- | (ARMul_GetCPSR (state) & 0x0FFFFFFF));
-
- if (trace)
- fprintf (stderr, " VFP: VMRS: set flags to %c%c%c%c\n",
- ARMul_GetCPSR (state) & NBIT ? 'N' : '-',
- ARMul_GetCPSR (state) & ZBIT ? 'Z' : '-',
- ARMul_GetCPSR (state) & CBIT ? 'C' : '-',
- ARMul_GetCPSR (state) & VBIT ? 'V' : '-');
- }
- else
- {
- state->Reg[DESTReg] = state->FPSCR;
-
- if (trace)
- fprintf (stderr, " VFP: VMRS: r%d = %x\n", DESTReg, state->Reg[DESTReg]);
- }
- }
- else
- fprintf (stderr, "SIM: VFP: Unimplemented: Compare op\n");
- break;
-
- case 0xE0:
- case 0xE1:
- /* VMOV reg <-> single precision. */
- if (BITS (0,6) != 0x10 || BITS (8,11) != 0xA)
- fprintf (stderr, "SIM: VFP: Unimplemented: move op\n");
- else if (BIT (20))
- state->Reg[BITS (12, 15)] = VFP_uword (BITS (16, 19) << 1 | BIT (7));
- else
- VFP_uword (BITS (16, 19) << 1 | BIT (7)) = state->Reg[BITS (12, 15)];
- break;
-
- default:
- fprintf (stderr, "SIM: VFP: Unimplemented: CDP op\n");
- break;
- }
- }
- else
- {
- /* MRC */
- temp = ARMul_MRC (state, instr);
- if (DESTReg == 15)
- {
- ASSIGNN ((temp & NBIT) != 0);
- ASSIGNZ ((temp & ZBIT) != 0);
- ASSIGNC ((temp & CBIT) != 0);
- ASSIGNV ((temp & VBIT) != 0);
- }
- else
- DEST = temp;
- }
- }
- else
- /* CDP Part 2. */
- ARMul_CDP (state, instr);
- break;
-
-
- /* SWI instruction. */
- case 0xf0:
- case 0xf1:
- case 0xf2:
- case 0xf3:
- case 0xf4:
- case 0xf5:
- case 0xf6:
- case 0xf7:
- case 0xf8:
- case 0xf9:
- case 0xfa:
- case 0xfb:
- case 0xfc:
- case 0xfd:
- case 0xfe:
- case 0xff:
- if (instr == ARMul_ABORTWORD && state->AbortAddr == pc)
- {
- /* A prefetch abort. */
- XScale_set_fsr_far (state, ARMul_CP15_R5_MMU_EXCPT, pc);
- ARMul_Abort (state, ARMul_PrefetchAbortV);
- break;
- }
-
- if (!ARMul_OSHandleSWI (state, BITS (0, 23)))
- ARMul_Abort (state, ARMul_SWIV);
-
- break;
- }
- }
-
-#ifdef MODET
- donext:
-#endif
-
- if (state->Emulate == ONCE)
- state->Emulate = STOP;
- /* If we have changed mode, allow the PC to advance before stopping. */
- else if (state->Emulate == CHANGEMODE)
- continue;
- else if (state->Emulate != RUN)
- break;
- }
- while (!stop_simulator);
-
- state->decoded = decoded;
- state->loaded = loaded;
- state->pc = pc;
-
- return pc;
-}
-
-/* This routine evaluates most Data Processing register RHS's with the S
- bit clear. It is intended to be called from the macro DPRegRHS, which
- filters the common case of an unshifted register with in line code. */
-
-static ARMword
-GetDPRegRHS (ARMul_State * state, ARMword instr)
-{
- ARMword shamt, base;
-
- base = RHSReg;
- if (BIT (4))
- {
- /* Shift amount in a register. */
- UNDEF_Shift;
- INCPC;
-#ifndef MODE32
- if (base == 15)
- base = ECC | ER15INT | R15PC | EMODE;
- else
-#endif
- base = state->Reg[base];
- ARMul_Icycles (state, 1, 0L);
- shamt = state->Reg[BITS (8, 11)] & 0xff;
- switch ((int) BITS (5, 6))
- {
- case LSL:
- if (shamt == 0)
- return (base);
- else if (shamt >= 32)
- return (0);
- else
- return (base << shamt);
- case LSR:
- if (shamt == 0)
- return (base);
- else if (shamt >= 32)
- return (0);
- else
- return (base >> shamt);
- case ASR:
- if (shamt == 0)
- return (base);
- else if (shamt >= 32)
- return ((ARMword) ((ARMsword) base >> 31L));
- else
- return ((ARMword) ((ARMsword) base >> (int) shamt));
- case ROR:
- shamt &= 0x1f;
- if (shamt == 0)
- return (base);
- else
- return ((base << (32 - shamt)) | (base >> shamt));
- }
- }
- else
- {
- /* Shift amount is a constant. */
-#ifndef MODE32
- if (base == 15)
- base = ECC | ER15INT | R15PC | EMODE;
- else
-#endif
- base = state->Reg[base];
- shamt = BITS (7, 11);
- switch ((int) BITS (5, 6))
- {
- case LSL:
- return (base << shamt);
- case LSR:
- if (shamt == 0)
- return (0);
- else
- return (base >> shamt);
- case ASR:
- if (shamt == 0)
- return ((ARMword) ((ARMsword) base >> 31L));
- else
- return ((ARMword) ((ARMsword) base >> (int) shamt));
- case ROR:
- if (shamt == 0)
- /* It's an RRX. */
- return ((base >> 1) | (CFLAG << 31));
- else
- return ((base << (32 - shamt)) | (base >> shamt));
- }
- }
-
- return 0;
-}
-
-/* This routine evaluates most Logical Data Processing register RHS's
- with the S bit set. It is intended to be called from the macro
- DPSRegRHS, which filters the common case of an unshifted register
- with in line code. */
-
-static ARMword
-GetDPSRegRHS (ARMul_State * state, ARMword instr)
-{
- ARMword shamt, base;
-
- base = RHSReg;
- if (BIT (4))
- {
- /* Shift amount in a register. */
- UNDEF_Shift;
- INCPC;
-#ifndef MODE32
- if (base == 15)
- base = ECC | ER15INT | R15PC | EMODE;
- else
-#endif
- base = state->Reg[base];
- ARMul_Icycles (state, 1, 0L);
- shamt = state->Reg[BITS (8, 11)] & 0xff;
- switch ((int) BITS (5, 6))
- {
- case LSL:
- if (shamt == 0)
- return (base);
- else if (shamt == 32)
- {
- ASSIGNC (base & 1);
- return (0);
- }
- else if (shamt > 32)
- {
- CLEARC;
- return (0);
- }
- else
- {
- ASSIGNC ((base >> (32 - shamt)) & 1);
- return (base << shamt);
- }
- case LSR:
- if (shamt == 0)
- return (base);
- else if (shamt == 32)
- {
- ASSIGNC (base >> 31);
- return (0);
- }
- else if (shamt > 32)
- {
- CLEARC;
- return (0);
- }
- else
- {
- ASSIGNC ((base >> (shamt - 1)) & 1);
- return (base >> shamt);
- }
- case ASR:
- if (shamt == 0)
- return (base);
- else if (shamt >= 32)
- {
- ASSIGNC (base >> 31L);
- return ((ARMword) ((ARMsword) base >> 31L));
- }
- else
- {
- ASSIGNC ((ARMword) ((ARMsword) base >> (int) (shamt - 1)) & 1);
- return ((ARMword) ((ARMsword) base >> (int) shamt));
- }
- case ROR:
- if (shamt == 0)
- return (base);
- shamt &= 0x1f;
- if (shamt == 0)
- {
- ASSIGNC (base >> 31);
- return (base);
- }
- else
- {
- ASSIGNC ((base >> (shamt - 1)) & 1);
- return ((base << (32 - shamt)) | (base >> shamt));
- }
- }
- }
- else
- {
- /* Shift amount is a constant. */
-#ifndef MODE32
- if (base == 15)
- base = ECC | ER15INT | R15PC | EMODE;
- else
-#endif
- base = state->Reg[base];
- shamt = BITS (7, 11);
-
- switch ((int) BITS (5, 6))
- {
- case LSL:
- ASSIGNC ((base >> (32 - shamt)) & 1);
- return (base << shamt);
- case LSR:
- if (shamt == 0)
- {
- ASSIGNC (base >> 31);
- return (0);
- }
- else
- {
- ASSIGNC ((base >> (shamt - 1)) & 1);
- return (base >> shamt);
- }
- case ASR:
- if (shamt == 0)
- {
- ASSIGNC (base >> 31L);
- return ((ARMword) ((ARMsword) base >> 31L));
- }
- else
- {
- ASSIGNC ((ARMword) ((ARMsword) base >> (int) (shamt - 1)) & 1);
- return ((ARMword) ((ARMsword) base >> (int) shamt));
- }
- case ROR:
- if (shamt == 0)
- {
- /* It's an RRX. */
- shamt = CFLAG;
- ASSIGNC (base & 1);
- return ((base >> 1) | (shamt << 31));
- }
- else
- {
- ASSIGNC ((base >> (shamt - 1)) & 1);
- return ((base << (32 - shamt)) | (base >> shamt));
- }
- }
- }
-
- return 0;
-}
-
-/* This routine handles writes to register 15 when the S bit is not set. */
-
-static void
-WriteR15 (ARMul_State * state, ARMword src)
-{
- /* The ARM documentation states that the two least significant bits
- are discarded when setting PC, except in the cases handled by
- WriteR15Branch() below. It's probably an oversight: in THUMB
- mode, the second least significant bit should probably not be
- discarded. */
-#ifdef MODET
- if (TFLAG)
- src &= 0xfffffffe;
- else
-#endif
- src &= 0xfffffffc;
-
-#ifdef MODE32
- state->Reg[15] = src & PCBITS;
-#else
- state->Reg[15] = (src & R15PCBITS) | ECC | ER15INT | EMODE;
- ARMul_R15Altered (state);
-#endif
-
- FLUSHPIPE;
- if (trace_funcs)
- fprintf (stderr, " pc changed to %x\n", state->Reg[15]);
-}
-
-/* This routine handles writes to register 15 when the S bit is set. */
-
-static void
-WriteSR15 (ARMul_State * state, ARMword src)
-{
-#ifdef MODE32
- if (state->Bank > 0)
- {
- state->Cpsr = state->Spsr[state->Bank];
- ARMul_CPSRAltered (state);
- }
-#ifdef MODET
- if (TFLAG)
- src &= 0xfffffffe;
- else
-#endif
- src &= 0xfffffffc;
- state->Reg[15] = src & PCBITS;
-#else
-#ifdef MODET
- if (TFLAG)
- /* ARMul_R15Altered would have to support it. */
- abort ();
- else
-#endif
- src &= 0xfffffffc;
-
- if (state->Bank == USERBANK)
- state->Reg[15] = (src & (CCBITS | R15PCBITS)) | ER15INT | EMODE;
- else
- state->Reg[15] = src;
-
- ARMul_R15Altered (state);
-#endif
- FLUSHPIPE;
- if (trace_funcs)
- fprintf (stderr, " pc changed to %x\n", state->Reg[15]);
-}
-
-/* In machines capable of running in Thumb mode, BX, BLX, LDR and LDM
- will switch to Thumb mode if the least significant bit is set. */
-
-static void
-WriteR15Branch (ARMul_State * state, ARMword src)
-{
-#ifdef MODET
- if (src & 1)
- {
- /* Thumb bit. */
- SETT;
- state->Reg[15] = src & 0xfffffffe;
- }
- else
- {
- CLEART;
- state->Reg[15] = src & 0xfffffffc;
- }
- FLUSHPIPE;
- if (trace_funcs)
- fprintf (stderr, " pc changed to %x\n", state->Reg[15]);
-#else
- WriteR15 (state, src);
-#endif
-}
-
-/* Before ARM_v5 LDR and LDM of pc did not change mode. */
-
-static void
-WriteR15Load (ARMul_State * state, ARMword src)
-{
- if (state->is_v5)
- WriteR15Branch (state, src);
- else
- WriteR15 (state, src);
-}
-
-/* This routine evaluates most Load and Store register RHS's. It is
- intended to be called from the macro LSRegRHS, which filters the
- common case of an unshifted register with in line code. */
-
-static ARMword
-GetLSRegRHS (ARMul_State * state, ARMword instr)
-{
- ARMword shamt, base;
-
- base = RHSReg;
-#ifndef MODE32
- if (base == 15)
- /* Now forbidden, but ... */
- base = ECC | ER15INT | R15PC | EMODE;
- else
-#endif
- base = state->Reg[base];
-
- shamt = BITS (7, 11);
- switch ((int) BITS (5, 6))
- {
- case LSL:
- return (base << shamt);
- case LSR:
- if (shamt == 0)
- return (0);
- else
- return (base >> shamt);
- case ASR:
- if (shamt == 0)
- return ((ARMword) ((ARMsword) base >> 31L));
- else
- return ((ARMword) ((ARMsword) base >> (int) shamt));
- case ROR:
- if (shamt == 0)
- /* It's an RRX. */
- return ((base >> 1) | (CFLAG << 31));
- else
- return ((base << (32 - shamt)) | (base >> shamt));
- default:
- break;
- }
- return 0;
-}
-
-/* This routine evaluates the ARM7T halfword and signed transfer RHS's. */
-
-static ARMword
-GetLS7RHS (ARMul_State * state, ARMword instr)
-{
- if (BIT (22) == 0)
- {
- /* Register. */
-#ifndef MODE32
- if (RHSReg == 15)
- /* Now forbidden, but ... */
- return ECC | ER15INT | R15PC | EMODE;
-#endif
- return state->Reg[RHSReg];
- }
-
- /* Immediate. */
- return BITS (0, 3) | (BITS (8, 11) << 4);
-}
-
-/* This function does the work of loading a word for a LDR instruction. */
-
-static unsigned
-LoadWord (ARMul_State * state, ARMword instr, ARMword address)
-{
- ARMword dest;
-
- BUSUSEDINCPCS;
-#ifndef MODE32
- if (ADDREXCEPT (address))
- INTERNALABORT (address);
-#endif
-
- dest = ARMul_LoadWordN (state, address);
-
- if (state->Aborted)
- {
- TAKEABORT;
- return state->lateabtSig;
- }
- if (address & 3)
- dest = ARMul_Align (state, address, dest);
- WRITEDESTB (dest);
- ARMul_Icycles (state, 1, 0L);
-
- return (DESTReg != LHSReg);
-}
-
-#ifdef MODET
-/* This function does the work of loading a halfword. */
-
-static unsigned
-LoadHalfWord (ARMul_State * state, ARMword instr, ARMword address,
- int signextend)
-{
- ARMword dest;
-
- BUSUSEDINCPCS;
-#ifndef MODE32
- if (ADDREXCEPT (address))
- INTERNALABORT (address);
-#endif
- dest = ARMul_LoadHalfWord (state, address);
- if (state->Aborted)
- {
- TAKEABORT;
- return state->lateabtSig;
- }
- UNDEF_LSRBPC;
- if (signextend)
- if (dest & 1 << (16 - 1))
- dest = (dest & ((1 << 16) - 1)) - (1 << 16);
-
- WRITEDEST (dest);
- ARMul_Icycles (state, 1, 0L);
- return (DESTReg != LHSReg);
-}
-
-#endif /* MODET */
-
-/* This function does the work of loading a byte for a LDRB instruction. */
-
-static unsigned
-LoadByte (ARMul_State * state, ARMword instr, ARMword address, int signextend)
-{
- ARMword dest;
-
- BUSUSEDINCPCS;
-#ifndef MODE32
- if (ADDREXCEPT (address))
- INTERNALABORT (address);
-#endif
- dest = ARMul_LoadByte (state, address);
- if (state->Aborted)
- {
- TAKEABORT;
- return state->lateabtSig;
- }
- UNDEF_LSRBPC;
- if (signextend)
- if (dest & 1 << (8 - 1))
- dest = (dest & ((1 << 8) - 1)) - (1 << 8);
-
- WRITEDEST (dest);
- ARMul_Icycles (state, 1, 0L);
-
- return (DESTReg != LHSReg);
-}
-
-/* This function does the work of loading two words for a LDRD instruction. */
-
-static void
-Handle_Load_Double (ARMul_State * state, ARMword instr)
-{
- ARMword dest_reg;
- ARMword addr_reg;
- ARMword write_back = BIT (21);
- ARMword immediate = BIT (22);
- ARMword add_to_base = BIT (23);
- ARMword pre_indexed = BIT (24);
- ARMword offset;
- ARMword addr;
- ARMword sum;
- ARMword base;
- ARMword value1;
- ARMword value2;
-
- BUSUSEDINCPCS;
-
- /* If the writeback bit is set, the pre-index bit must be clear. */
- if (write_back && ! pre_indexed)
- {
- ARMul_UndefInstr (state, instr);
- return;
- }
-
- /* Extract the base address register. */
- addr_reg = LHSReg;
-
- /* Extract the destination register and check it. */
- dest_reg = DESTReg;
-
- /* Destination register must be even. */
- if ((dest_reg & 1)
- /* Destination register cannot be LR. */
- || (dest_reg == 14))
- {
- ARMul_UndefInstr (state, instr);
- return;
- }
-
- /* Compute the base address. */
- base = state->Reg[addr_reg];
-
- /* Compute the offset. */
- offset = immediate ? ((BITS (8, 11) << 4) | BITS (0, 3)) : state->Reg[RHSReg];
-
- /* Compute the sum of the two. */
- if (add_to_base)
- sum = base + offset;
- else
- sum = base - offset;
-
- /* If this is a pre-indexed mode use the sum. */
- if (pre_indexed)
- addr = sum;
- else
- addr = base;
-
- if (state->is_v6 && (addr & 0x3) == 0)
- /* Word alignment is enough for v6. */
- ;
- /* The address must be aligned on a 8 byte boundary. */
- else if (addr & 0x7)
- {
-#ifdef ABORTS
- ARMul_DATAABORT (addr);
-#else
- ARMul_UndefInstr (state, instr);
-#endif
- return;
- }
-
- /* For pre indexed or post indexed addressing modes,
- check that the destination registers do not overlap
- the address registers. */
- if ((! pre_indexed || write_back)
- && ( addr_reg == dest_reg
- || addr_reg == dest_reg + 1))
- {
- ARMul_UndefInstr (state, instr);
- return;
- }
-
- /* Load the words. */
- value1 = ARMul_LoadWordN (state, addr);
- value2 = ARMul_LoadWordN (state, addr + 4);
-
- /* Check for data aborts. */
- if (state->Aborted)
- {
- TAKEABORT;
- return;
- }
-
- ARMul_Icycles (state, 2, 0L);
-
- /* Store the values. */
- state->Reg[dest_reg] = value1;
- state->Reg[dest_reg + 1] = value2;
-
- /* Do the post addressing and writeback. */
- if (! pre_indexed)
- addr = sum;
-
- if (! pre_indexed || write_back)
- state->Reg[addr_reg] = addr;
-}
-
-/* This function does the work of storing two words for a STRD instruction. */
-
-static void
-Handle_Store_Double (ARMul_State * state, ARMword instr)
-{
- ARMword src_reg;
- ARMword addr_reg;
- ARMword write_back = BIT (21);
- ARMword immediate = BIT (22);
- ARMword add_to_base = BIT (23);
- ARMword pre_indexed = BIT (24);
- ARMword offset;
- ARMword addr;
- ARMword sum;
- ARMword base;
-
- BUSUSEDINCPCS;
-
- /* If the writeback bit is set, the pre-index bit must be clear. */
- if (write_back && ! pre_indexed)
- {
- ARMul_UndefInstr (state, instr);
- return;
- }
-
- /* Extract the base address register. */
- addr_reg = LHSReg;
-
- /* Base register cannot be PC. */
- if (addr_reg == 15)
- {
- ARMul_UndefInstr (state, instr);
- return;
- }
-
- /* Extract the source register. */
- src_reg = DESTReg;
-
- /* Source register must be even. */
- if (src_reg & 1)
- {
- ARMul_UndefInstr (state, instr);
- return;
- }
-
- /* Compute the base address. */
- base = state->Reg[addr_reg];
-
- /* Compute the offset. */
- offset = immediate ? ((BITS (8, 11) << 4) | BITS (0, 3)) : state->Reg[RHSReg];
-
- /* Compute the sum of the two. */
- if (add_to_base)
- sum = base + offset;
- else
- sum = base - offset;
-
- /* If this is a pre-indexed mode use the sum. */
- if (pre_indexed)
- addr = sum;
- else
- addr = base;
-
- /* The address must be aligned on a 8 byte boundary. */
- if (state->is_v6 && (addr & 0x3) == 0)
- /* Word alignment is enough for v6. */
- ;
- else if (addr & 0x7)
- {
-#ifdef ABORTS
- ARMul_DATAABORT (addr);
-#else
- ARMul_UndefInstr (state, instr);
-#endif
- return;
- }
-
- /* For pre indexed or post indexed addressing modes,
- check that the destination registers do not overlap
- the address registers. */
- if ((! pre_indexed || write_back)
- && ( addr_reg == src_reg
- || addr_reg == src_reg + 1))
- {
- ARMul_UndefInstr (state, instr);
- return;
- }
-
- /* Load the words. */
- ARMul_StoreWordN (state, addr, state->Reg[src_reg]);
- ARMul_StoreWordN (state, addr + 4, state->Reg[src_reg + 1]);
-
- if (state->Aborted)
- {
- TAKEABORT;
- return;
- }
-
- /* Do the post addressing and writeback. */
- if (! pre_indexed)
- addr = sum;
-
- if (! pre_indexed || write_back)
- state->Reg[addr_reg] = addr;
-}
-
-/* This function does the work of storing a word from a STR instruction. */
-
-static unsigned
-StoreWord (ARMul_State * state, ARMword instr, ARMword address)
-{
- BUSUSEDINCPCN;
-#ifndef MODE32
- if (DESTReg == 15)
- state->Reg[15] = ECC | ER15INT | R15PC | EMODE;
-#endif
-#ifdef MODE32
- ARMul_StoreWordN (state, address, DEST);
-#else
- if (VECTORACCESS (address) || ADDREXCEPT (address))
- {
- INTERNALABORT (address);
- (void) ARMul_LoadWordN (state, address);
- }
- else
- ARMul_StoreWordN (state, address, DEST);
-#endif
- if (state->Aborted)
- {
- TAKEABORT;
- return state->lateabtSig;
- }
- return TRUE;
-}
-
-#ifdef MODET
-/* This function does the work of storing a byte for a STRH instruction. */
-
-static unsigned
-StoreHalfWord (ARMul_State * state, ARMword instr, ARMword address)
-{
- BUSUSEDINCPCN;
-
-#ifndef MODE32
- if (DESTReg == 15)
- state->Reg[15] = ECC | ER15INT | R15PC | EMODE;
-#endif
-
-#ifdef MODE32
- ARMul_StoreHalfWord (state, address, DEST);
-#else
- if (VECTORACCESS (address) || ADDREXCEPT (address))
- {
- INTERNALABORT (address);
- (void) ARMul_LoadHalfWord (state, address);
- }
- else
- ARMul_StoreHalfWord (state, address, DEST);
-#endif
-
- if (state->Aborted)
- {
- TAKEABORT;
- return state->lateabtSig;
- }
- return TRUE;
-}
-
-#endif /* MODET */
-
-/* This function does the work of storing a byte for a STRB instruction. */
-
-static unsigned
-StoreByte (ARMul_State * state, ARMword instr, ARMword address)
-{
- BUSUSEDINCPCN;
-#ifndef MODE32
- if (DESTReg == 15)
- state->Reg[15] = ECC | ER15INT | R15PC | EMODE;
-#endif
-#ifdef MODE32
- ARMul_StoreByte (state, address, DEST);
-#else
- if (VECTORACCESS (address) || ADDREXCEPT (address))
- {
- INTERNALABORT (address);
- (void) ARMul_LoadByte (state, address);
- }
- else
- ARMul_StoreByte (state, address, DEST);
-#endif
- if (state->Aborted)
- {
- TAKEABORT;
- return state->lateabtSig;
- }
- UNDEF_LSRBPC;
- return TRUE;
-}
-
-/* This function does the work of loading the registers listed in an LDM
- instruction, when the S bit is clear. The code here is always increment
- after, it's up to the caller to get the input address correct and to
- handle base register modification. */
-
-static void
-LoadMult (ARMul_State * state, ARMword instr, ARMword address, ARMword WBBase)
-{
- ARMword dest, temp;
-
- UNDEF_LSMNoRegs;
- UNDEF_LSMPCBase;
- UNDEF_LSMBaseInListWb;
- BUSUSEDINCPCS;
-#ifndef MODE32
- if (ADDREXCEPT (address))
- INTERNALABORT (address);
-#endif
- if (BIT (21) && LHSReg != 15)
- LSBase = WBBase;
-
- /* N cycle first. */
- for (temp = 0; !BIT (temp); temp++)
- ;
-
- dest = ARMul_LoadWordN (state, address);
-
- if (!state->abortSig && !state->Aborted)
- state->Reg[temp++] = dest;
- else if (!state->Aborted)
- {
- XScale_set_fsr_far (state, ARMul_CP15_R5_ST_ALIGN, address);
- state->Aborted = ARMul_DataAbortV;
- }
-
- /* S cycles from here on. */
- for (; temp < 16; temp ++)
- if (BIT (temp))
- {
- /* Load this register. */
- address += 4;
- dest = ARMul_LoadWordS (state, address);
-
- if (!state->abortSig && !state->Aborted)
- state->Reg[temp] = dest;
- else if (!state->Aborted)
- {
- XScale_set_fsr_far (state, ARMul_CP15_R5_ST_ALIGN, address);
- state->Aborted = ARMul_DataAbortV;
- }
- }
-
- if (BIT (15) && !state->Aborted)
- /* PC is in the reg list. */
- WriteR15Load (state, PC);
-
- /* To write back the final register. */
- ARMul_Icycles (state, 1, 0L);
-
- if (state->Aborted)
- {
- if (BIT (21) && LHSReg != 15)
- LSBase = WBBase;
- TAKEABORT;
- }
-}
-
-/* This function does the work of loading the registers listed in an LDM
- instruction, when the S bit is set. The code here is always increment
- after, it's up to the caller to get the input address correct and to
- handle base register modification. */
-
-static void
-LoadSMult (ARMul_State * state,
- ARMword instr,
- ARMword address,
- ARMword WBBase)
-{
- ARMword dest, temp;
-
- UNDEF_LSMNoRegs;
- UNDEF_LSMPCBase;
- UNDEF_LSMBaseInListWb;
-
- BUSUSEDINCPCS;
-
-#ifndef MODE32
- if (ADDREXCEPT (address))
- INTERNALABORT (address);
-#endif
-
- if (BIT (21) && LHSReg != 15)
- LSBase = WBBase;
-
- if (!BIT (15) && state->Bank != USERBANK)
- {
- /* Temporary reg bank switch. */
- (void) ARMul_SwitchMode (state, state->Mode, USER26MODE);
- UNDEF_LSMUserBankWb;
- }
-
- /* N cycle first. */
- for (temp = 0; !BIT (temp); temp ++)
- ;
-
- dest = ARMul_LoadWordN (state, address);
-
- if (!state->abortSig)
- state->Reg[temp++] = dest;
- else if (!state->Aborted)
- {
- XScale_set_fsr_far (state, ARMul_CP15_R5_ST_ALIGN, address);
- state->Aborted = ARMul_DataAbortV;
- }
-
- /* S cycles from here on. */
- for (; temp < 16; temp++)
- if (BIT (temp))
- {
- /* Load this register. */
- address += 4;
- dest = ARMul_LoadWordS (state, address);
-
- if (!state->abortSig && !state->Aborted)
- state->Reg[temp] = dest;
- else if (!state->Aborted)
- {
- XScale_set_fsr_far (state, ARMul_CP15_R5_ST_ALIGN, address);
- state->Aborted = ARMul_DataAbortV;
- }
- }
-
- if (BIT (15) && !state->Aborted)
- {
- /* PC is in the reg list. */
-#ifdef MODE32
- if (state->Mode != USER26MODE && state->Mode != USER32MODE)
- {
- state->Cpsr = GETSPSR (state->Bank);
- ARMul_CPSRAltered (state);
- }
-
- WriteR15 (state, PC);
-#else
- if (state->Mode == USER26MODE || state->Mode == USER32MODE)
- {
- /* Protect bits in user mode. */
- ASSIGNN ((state->Reg[15] & NBIT) != 0);
- ASSIGNZ ((state->Reg[15] & ZBIT) != 0);
- ASSIGNC ((state->Reg[15] & CBIT) != 0);
- ASSIGNV ((state->Reg[15] & VBIT) != 0);
- }
- else
- ARMul_R15Altered (state);
-
- FLUSHPIPE;
-#endif
- }
-
- if (!BIT (15) && state->Mode != USER26MODE && state->Mode != USER32MODE)
- /* Restore the correct bank. */
- (void) ARMul_SwitchMode (state, USER26MODE, state->Mode);
-
- /* To write back the final register. */
- ARMul_Icycles (state, 1, 0L);
-
- if (state->Aborted)
- {
- if (BIT (21) && LHSReg != 15)
- LSBase = WBBase;
-
- TAKEABORT;
- }
-}
-
-/* This function does the work of storing the registers listed in an STM
- instruction, when the S bit is clear. The code here is always increment
- after, it's up to the caller to get the input address correct and to
- handle base register modification. */
-
-static void
-StoreMult (ARMul_State * state,
- ARMword instr,
- ARMword address,
- ARMword WBBase)
-{
- ARMword temp;
-
- UNDEF_LSMNoRegs;
- UNDEF_LSMPCBase;
- UNDEF_LSMBaseInListWb;
-
- if (!TFLAG)
- /* N-cycle, increment the PC and update the NextInstr state. */
- BUSUSEDINCPCN;
-
-#ifndef MODE32
- if (VECTORACCESS (address) || ADDREXCEPT (address))
- INTERNALABORT (address);
-
- if (BIT (15))
- PATCHR15;
-#endif
-
- /* N cycle first. */
- for (temp = 0; !BIT (temp); temp ++)
- ;
-
-#ifdef MODE32
- ARMul_StoreWordN (state, address, state->Reg[temp++]);
-#else
- if (state->Aborted)
- {
- (void) ARMul_LoadWordN (state, address);
-
- /* Fake the Stores as Loads. */
- for (; temp < 16; temp++)
- if (BIT (temp))
- {
- /* Save this register. */
- address += 4;
- (void) ARMul_LoadWordS (state, address);
- }
-
- if (BIT (21) && LHSReg != 15)
- LSBase = WBBase;
- TAKEABORT;
- return;
- }
- else
- ARMul_StoreWordN (state, address, state->Reg[temp++]);
-#endif
-
- if (state->abortSig && !state->Aborted)
- {
- XScale_set_fsr_far (state, ARMul_CP15_R5_ST_ALIGN, address);
- state->Aborted = ARMul_DataAbortV;
- }
-
- if (BIT (21) && LHSReg != 15)
- LSBase = WBBase;
-
- /* S cycles from here on. */
- for (; temp < 16; temp ++)
- if (BIT (temp))
- {
- /* Save this register. */
- address += 4;
-
- ARMul_StoreWordS (state, address, state->Reg[temp]);
-
- if (state->abortSig && !state->Aborted)
- {
- XScale_set_fsr_far (state, ARMul_CP15_R5_ST_ALIGN, address);
- state->Aborted = ARMul_DataAbortV;
- }
- }
-
- if (state->Aborted)
- TAKEABORT;
-}
-
-/* This function does the work of storing the registers listed in an STM
- instruction when the S bit is set. The code here is always increment
- after, it's up to the caller to get the input address correct and to
- handle base register modification. */
-
-static void
-StoreSMult (ARMul_State * state,
- ARMword instr,
- ARMword address,
- ARMword WBBase)
-{
- ARMword temp;
-
- UNDEF_LSMNoRegs;
- UNDEF_LSMPCBase;
- UNDEF_LSMBaseInListWb;
-
- BUSUSEDINCPCN;
-
-#ifndef MODE32
- if (VECTORACCESS (address) || ADDREXCEPT (address))
- INTERNALABORT (address);
-
- if (BIT (15))
- PATCHR15;
-#endif
-
- if (state->Bank != USERBANK)
- {
- /* Force User Bank. */
- (void) ARMul_SwitchMode (state, state->Mode, USER26MODE);
- UNDEF_LSMUserBankWb;
- }
-
- for (temp = 0; !BIT (temp); temp++)
- ; /* N cycle first. */
-
-#ifdef MODE32
- ARMul_StoreWordN (state, address, state->Reg[temp++]);
-#else
- if (state->Aborted)
- {
- (void) ARMul_LoadWordN (state, address);
-
- for (; temp < 16; temp++)
- /* Fake the Stores as Loads. */
- if (BIT (temp))
- {
- /* Save this register. */
- address += 4;
-
- (void) ARMul_LoadWordS (state, address);
- }
-
- if (BIT (21) && LHSReg != 15)
- LSBase = WBBase;
-
- TAKEABORT;
- return;
- }
- else
- ARMul_StoreWordN (state, address, state->Reg[temp++]);
-#endif
-
- if (state->abortSig && !state->Aborted)
- {
- XScale_set_fsr_far (state, ARMul_CP15_R5_ST_ALIGN, address);
- state->Aborted = ARMul_DataAbortV;
- }
-
- /* S cycles from here on. */
- for (; temp < 16; temp++)
- if (BIT (temp))
- {
- /* Save this register. */
- address += 4;
-
- ARMul_StoreWordS (state, address, state->Reg[temp]);
-
- if (state->abortSig && !state->Aborted)
- {
- XScale_set_fsr_far (state, ARMul_CP15_R5_ST_ALIGN, address);
- state->Aborted = ARMul_DataAbortV;
- }
- }
-
- if (state->Mode != USER26MODE && state->Mode != USER32MODE)
- /* Restore the correct bank. */
- (void) ARMul_SwitchMode (state, USER26MODE, state->Mode);
-
- if (BIT (21) && LHSReg != 15)
- LSBase = WBBase;
-
- if (state->Aborted)
- TAKEABORT;
-}
-
-/* This function does the work of adding two 32bit values
- together, and calculating if a carry has occurred. */
-
-static ARMword
-Add32 (ARMword a1, ARMword a2, int *carry)
-{
- ARMword result = (a1 + a2);
- unsigned int uresult = (unsigned int) result;
- unsigned int ua1 = (unsigned int) a1;
-
- /* If (result == RdLo) and (state->Reg[nRdLo] == 0),
- or (result > RdLo) then we have no carry. */
- if ((uresult == ua1) ? (a2 != 0) : (uresult < ua1))
- *carry = 1;
- else
- *carry = 0;
-
- return result;
-}
-
-/* This function does the work of multiplying
- two 32bit values to give a 64bit result. */
-
-static unsigned
-Multiply64 (ARMul_State * state, ARMword instr, int msigned, int scc)
-{
- /* Operand register numbers. */
- int nRdHi, nRdLo, nRs, nRm;
- ARMword RdHi = 0, RdLo = 0, Rm;
- /* Cycle count. */
- int scount;
-
- nRdHi = BITS (16, 19);
- nRdLo = BITS (12, 15);
- nRs = BITS (8, 11);
- nRm = BITS (0, 3);
-
- /* Needed to calculate the cycle count. */
- Rm = state->Reg[nRm];
-
- /* Check for illegal operand combinations first. */
- if ( nRdHi != 15
- && nRdLo != 15
- && nRs != 15
- && nRm != 15
- && nRdHi != nRdLo)
- {
- /* Intermediate results. */
- ARMword lo, mid1, mid2, hi;
- int carry;
- ARMword Rs = state->Reg[nRs];
- int sign = 0;
-
-#ifdef MODE32
- if (state->is_v6)
- ;
- else
-#endif
- /* BAD code can trigger this result. So only complain if debugging. */
- if (state->Debug && (nRdHi == nRm || nRdLo == nRm))
- fprintf (stderr, "sim: MULTIPLY64 - INVALID ARGUMENTS: %d %d %d\n",
- nRdHi, nRdLo, nRm);
- if (msigned)
- {
- /* Compute sign of result and adjust operands if necessary. */
- sign = (Rm ^ Rs) & 0x80000000;
-
- if (((ARMsword) Rm) < 0)
- Rm = -Rm;
-
- if (((ARMsword) Rs) < 0)
- Rs = -Rs;
- }
-
- /* We can split the 32x32 into four 16x16 operations. This
- ensures that we do not lose precision on 32bit only hosts. */
- lo = ((Rs & 0xFFFF) * (Rm & 0xFFFF));
- mid1 = ((Rs & 0xFFFF) * ((Rm >> 16) & 0xFFFF));
- mid2 = (((Rs >> 16) & 0xFFFF) * (Rm & 0xFFFF));
- hi = (((Rs >> 16) & 0xFFFF) * ((Rm >> 16) & 0xFFFF));
-
- /* We now need to add all of these results together, taking
- care to propagate the carries from the additions. */
- RdLo = Add32 (lo, (mid1 << 16), &carry);
- RdHi = carry;
- RdLo = Add32 (RdLo, (mid2 << 16), &carry);
- RdHi +=
- (carry + ((mid1 >> 16) & 0xFFFF) + ((mid2 >> 16) & 0xFFFF) + hi);
-
- if (sign)
- {
- /* Negate result if necessary. */
- RdLo = ~RdLo;
- RdHi = ~RdHi;
- if (RdLo == 0xFFFFFFFF)
- {
- RdLo = 0;
- RdHi += 1;
- }
- else
- RdLo += 1;
- }
-
- state->Reg[nRdLo] = RdLo;
- state->Reg[nRdHi] = RdHi;
- }
- else if (state->Debug)
- fprintf (stderr, "sim: MULTIPLY64 - INVALID ARGUMENTS\n");
-
- if (scc)
- /* Ensure that both RdHi and RdLo are used to compute Z,
- but don't let RdLo's sign bit make it to N. */
- ARMul_NegZero (state, RdHi | (RdLo >> 16) | (RdLo & 0xFFFF));
-
- /* The cycle count depends on whether the instruction is a signed or
- unsigned multiply, and what bits are clear in the multiplier. */
- if (msigned && (Rm & ((unsigned) 1 << 31)))
- /* Invert the bits to make the check against zero. */
- Rm = ~Rm;
-
- if ((Rm & 0xFFFFFF00) == 0)
- scount = 1;
- else if ((Rm & 0xFFFF0000) == 0)
- scount = 2;
- else if ((Rm & 0xFF000000) == 0)
- scount = 3;
- else
- scount = 4;
-
- return 2 + scount;
-}
-
-/* This function does the work of multiplying two 32bit
- values and adding a 64bit value to give a 64bit result. */
-
-static unsigned
-MultiplyAdd64 (ARMul_State * state, ARMword instr, int msigned, int scc)
-{
- unsigned scount;
- ARMword RdLo, RdHi;
- int nRdHi, nRdLo;
- int carry = 0;
-
- nRdHi = BITS (16, 19);
- nRdLo = BITS (12, 15);
-
- RdHi = state->Reg[nRdHi];
- RdLo = state->Reg[nRdLo];
-
- scount = Multiply64 (state, instr, msigned, LDEFAULT);
-
- RdLo = Add32 (RdLo, state->Reg[nRdLo], &carry);
- RdHi = (RdHi + state->Reg[nRdHi]) + carry;
-
- state->Reg[nRdLo] = RdLo;
- state->Reg[nRdHi] = RdHi;
-
- if (scc)
- /* Ensure that both RdHi and RdLo are used to compute Z,
- but don't let RdLo's sign bit make it to N. */
- ARMul_NegZero (state, RdHi | (RdLo >> 16) | (RdLo & 0xFFFF));
-
- /* Extra cycle for addition. */
- return scount + 1;
-}
diff --git a/sim/arm/armemu.h b/sim/arm/armemu.h
deleted file mode 100644
index 318f1b7..0000000
--- a/sim/arm/armemu.h
+++ /dev/null
@@ -1,557 +0,0 @@
-/* armemu.h -- ARMulator emulation macros: ARM6 Instruction Emulator.
- Copyright (C) 1994 Advanced RISC Machines Ltd.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 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, see <http://www.gnu.org/licenses/>. */
-
-#include "armdefs.h"
-
-extern ARMword isize;
-extern int trace;
-extern int disas;
-extern int trace_funcs;
-extern void print_insn (ARMword);
-
-/* Condition code values. */
-#define EQ 0
-#define NE 1
-#define CS 2
-#define CC 3
-#define MI 4
-#define PL 5
-#define VS 6
-#define VC 7
-#define HI 8
-#define LS 9
-#define GE 10
-#define LT 11
-#define GT 12
-#define LE 13
-#define AL 14
-#define NV 15
-
-/* Shift Opcodes. */
-#define LSL 0
-#define LSR 1
-#define ASR 2
-#define ROR 3
-
-/* Macros to twiddle the status flags and mode. */
-#define NBIT ((unsigned)1L << 31)
-#define ZBIT (1L << 30)
-#define CBIT (1L << 29)
-#define VBIT (1L << 28)
-#define SBIT (1L << 27)
-#define GE0 (1L << 16)
-#define GE1 (1L << 17)
-#define GE2 (1L << 18)
-#define GE3 (1L << 19)
-#define IBIT (1L << 7)
-#define FBIT (1L << 6)
-#define IFBITS (3L << 6)
-#define R15IBIT (1L << 27)
-#define R15FBIT (1L << 26)
-#define R15IFBITS (3L << 26)
-
-#define POS(i) ( (~(i)) >> 31 )
-#define NEG(i) ( (i) >> 31 )
-
-#ifdef MODET /* Thumb support. */
-/* ??? This bit is actually in the low order bit of the PC in the hardware.
- It isn't clear if the simulator needs to model that or not. */
-#define TBIT (1L << 5)
-#define TFLAG state->TFlag
-#define SETT state->TFlag = 1
-#define CLEART state->TFlag = 0
-#define ASSIGNT(res) state->TFlag = res
-#define INSN_SIZE (TFLAG ? 2 : 4)
-#else
-#define INSN_SIZE 4
-#endif
-
-#define NFLAG state->NFlag
-#define SETN state->NFlag = 1
-#define CLEARN state->NFlag = 0
-#define ASSIGNN(res) state->NFlag = res
-
-#define ZFLAG state->ZFlag
-#define SETZ state->ZFlag = 1
-#define CLEARZ state->ZFlag = 0
-#define ASSIGNZ(res) state->ZFlag = res
-
-#define CFLAG state->CFlag
-#define SETC state->CFlag = 1
-#define CLEARC state->CFlag = 0
-#define ASSIGNC(res) state->CFlag = res
-
-#define VFLAG state->VFlag
-#define SETV state->VFlag = 1
-#define CLEARV state->VFlag = 0
-#define ASSIGNV(res) state->VFlag = res
-
-#define SFLAG state->SFlag
-#define SETS state->SFlag = 1
-#define CLEARS state->SFlag = 0
-#define ASSIGNS(res) state->SFlag = res
-
-#define IFLAG (state->IFFlags >> 1)
-#define FFLAG (state->IFFlags & 1)
-#define IFFLAGS state->IFFlags
-#define ASSIGNINT(res) state->IFFlags = (((res) >> 6) & 3)
-#define ASSIGNR15INT(res) state->IFFlags = (((res) >> 26) & 3) ;
-
-#define PSR_FBITS (0xff000000L)
-#define PSR_SBITS (0x00ff0000L)
-#define PSR_XBITS (0x0000ff00L)
-#define PSR_CBITS (0x000000ffL)
-
-#if defined MODE32 || defined MODET
-#define CCBITS (0xf8000000L)
-#else
-#define CCBITS (0xf0000000L)
-#endif
-
-#define INTBITS (0xc0L)
-
-#if defined MODET && defined MODE32
-#define PCBITS (0xffffffffL)
-#else
-#define PCBITS (0xfffffffcL)
-#endif
-
-#define MODEBITS (0x1fL)
-#define R15INTBITS (3L << 26)
-
-#if defined MODET && defined MODE32
-#define R15PCBITS (0x03ffffffL)
-#else
-#define R15PCBITS (0x03fffffcL)
-#endif
-
-#define R15PCMODEBITS (0x03ffffffL)
-#define R15MODEBITS (0x3L)
-
-#ifdef MODE32
-#define PCMASK PCBITS
-#define PCWRAP(pc) (pc)
-#else
-#define PCMASK R15PCBITS
-#define PCWRAP(pc) ((pc) & R15PCBITS)
-#endif
-
-#define PC (state->Reg[15] & PCMASK)
-#define R15CCINTMODE (state->Reg[15] & (CCBITS | R15INTBITS | R15MODEBITS))
-#define R15INT (state->Reg[15] & R15INTBITS)
-#define R15INTPC (state->Reg[15] & (R15INTBITS | R15PCBITS))
-#define R15INTPCMODE (state->Reg[15] & (R15INTBITS | R15PCBITS | R15MODEBITS))
-#define R15INTMODE (state->Reg[15] & (R15INTBITS | R15MODEBITS))
-#define R15PC (state->Reg[15] & R15PCBITS)
-#define R15PCMODE (state->Reg[15] & (R15PCBITS | R15MODEBITS))
-#define R15MODE (state->Reg[15] & R15MODEBITS)
-
-#define ECC ((NFLAG << 31) | (ZFLAG << 30) | (CFLAG << 29) | (VFLAG << 28) | (SFLAG << 27))
-#define EINT (IFFLAGS << 6)
-#define ER15INT (IFFLAGS << 26)
-#define EMODE (state->Mode)
-
-#ifdef MODET
-#define CPSR (ECC | EINT | EMODE | (TFLAG << 5))
-#else
-#define CPSR (ECC | EINT | EMODE)
-#endif
-
-#ifdef MODE32
-#define PATCHR15
-#else
-#define PATCHR15 state->Reg[15] = ECC | ER15INT | EMODE | R15PC
-#endif
-
-#define GETSPSR(bank) (ARMul_GetSPSR (state, EMODE))
-#define SETPSR_F(d,s) d = ((d) & ~PSR_FBITS) | ((s) & PSR_FBITS)
-#define SETPSR_S(d,s) d = ((d) & ~PSR_SBITS) | ((s) & PSR_SBITS)
-#define SETPSR_X(d,s) d = ((d) & ~PSR_XBITS) | ((s) & PSR_XBITS)
-#define SETPSR_C(d,s) d = ((d) & ~PSR_CBITS) | ((s) & PSR_CBITS)
-
-#define SETR15PSR(s) \
- do \
- { \
- if (state->Mode == USER26MODE) \
- { \
- state->Reg[15] = ((s) & CCBITS) | R15PC | ER15INT | EMODE; \
- ASSIGNN ((state->Reg[15] & NBIT) != 0); \
- ASSIGNZ ((state->Reg[15] & ZBIT) != 0); \
- ASSIGNC ((state->Reg[15] & CBIT) != 0); \
- ASSIGNV ((state->Reg[15] & VBIT) != 0); \
- } \
- else \
- { \
- state->Reg[15] = R15PC | ((s) & (CCBITS | R15INTBITS | R15MODEBITS)); \
- ARMul_R15Altered (state); \
- } \
- } \
- while (0)
-
-#define SETABORT(i, m, d) \
- do \
- { \
- int SETABORT_mode = (m); \
- \
- ARMul_SetSPSR (state, SETABORT_mode, ARMul_GetCPSR (state)); \
- ARMul_SetCPSR (state, ((ARMul_GetCPSR (state) & ~(EMODE | TBIT)) \
- | (i) | SETABORT_mode)); \
- state->Reg[14] = temp - (d); \
- } \
- while (0)
-
-#ifndef MODE32
-#define VECTORS 0x20
-#define LEGALADDR 0x03ffffff
-#define VECTORACCESS(address) (address < VECTORS && ARMul_MODE26BIT && state->prog32Sig)
-#define ADDREXCEPT(address) (address > LEGALADDR && !state->data32Sig)
-#endif
-
-#define INTERNALABORT(address) \
- do \
- { \
- if (address < VECTORS) \
- state->Aborted = ARMul_DataAbortV; \
- else \
- state->Aborted = ARMul_AddrExceptnV; \
- } \
- while (0)
-
-#ifdef MODE32
-#define TAKEABORT ARMul_Abort (state, ARMul_DataAbortV)
-#else
-#define TAKEABORT \
- do \
- { \
- if (state->Aborted == ARMul_AddrExceptnV) \
- ARMul_Abort (state, ARMul_AddrExceptnV); \
- else \
- ARMul_Abort (state, ARMul_DataAbortV); \
- } \
- while (0)
-#endif
-
-#define CPTAKEABORT \
- do \
- { \
- if (!state->Aborted) \
- ARMul_Abort (state, ARMul_UndefinedInstrV); \
- else if (state->Aborted == ARMul_AddrExceptnV) \
- ARMul_Abort (state, ARMul_AddrExceptnV); \
- else \
- ARMul_Abort (state, ARMul_DataAbortV); \
- } \
- while (0);
-
-
-/* Different ways to start the next instruction. */
-#define SEQ 0
-#define NONSEQ 1
-#define PCINCEDSEQ 2
-#define PCINCEDNONSEQ 3
-#define PRIMEPIPE 4
-#define RESUME 8
-
-#define NORMALCYCLE state->NextInstr = 0
-#define BUSUSEDN state->NextInstr |= 1 /* The next fetch will be an N cycle. */
-#define BUSUSEDINCPCS \
- do \
- { \
- if (! state->is_v4) \
- { \
- /* A standard PC inc and an S cycle. */ \
- state->Reg[15] += isize; \
- state->NextInstr = (state->NextInstr & 0xff) | 2; \
- } \
- } \
- while (0)
-
-#define BUSUSEDINCPCN \
- do \
- { \
- if (state->is_v4) \
- BUSUSEDN; \
- else \
- { \
- /* A standard PC inc and an N cycle. */ \
- state->Reg[15] += isize; \
- state->NextInstr |= 3; \
- } \
- } \
- while (0)
-
-#define INCPC \
- do \
- { \
- /* A standard PC inc. */ \
- state->Reg[15] += isize; \
- state->NextInstr |= 2; \
- } \
- while (0)
-
-#define FLUSHPIPE state->NextInstr |= PRIMEPIPE
-
-/* Cycle based emulation. */
-
-#define OUTPUTCP(i,a,b)
-#define NCYCLE
-#define SCYCLE
-#define ICYCLE
-#define CCYCLE
-#define NEXTCYCLE(c)
-
-/* Macros to extract parts of instructions. */
-#define DESTReg (BITS (12, 15))
-#define LHSReg (BITS (16, 19))
-#define RHSReg (BITS ( 0, 3))
-
-#define DEST (state->Reg[DESTReg])
-
-#ifdef MODE32
-#ifdef MODET
-#define LHS ((LHSReg == 15) ? (state->Reg[15] & 0xFFFFFFFC): (state->Reg[LHSReg]))
-#else
-#define LHS (state->Reg[LHSReg])
-#endif
-#else
-#define LHS ((LHSReg == 15) ? R15PC : (state->Reg[LHSReg]))
-#endif
-
-#define MULDESTReg (BITS (16, 19))
-#define MULLHSReg (BITS ( 0, 3))
-#define MULRHSReg (BITS ( 8, 11))
-#define MULACCReg (BITS (12, 15))
-
-#define DPImmRHS (ARMul_ImmedTable[BITS(0, 11)])
-#define DPSImmRHS temp = BITS(0,11) ; \
- rhs = ARMul_ImmedTable[temp] ; \
- if (temp > 255) /* There was a shift. */ \
- ASSIGNC (rhs >> 31) ;
-
-#ifdef MODE32
-#define DPRegRHS ((BITS (4,11) == 0) ? state->Reg[RHSReg] \
- : GetDPRegRHS (state, instr))
-#define DPSRegRHS ((BITS (4,11) == 0) ? state->Reg[RHSReg] \
- : GetDPSRegRHS (state, instr))
-#else
-#define DPRegRHS ((BITS (0, 11) < 15) ? state->Reg[RHSReg] \
- : GetDPRegRHS (state, instr))
-#define DPSRegRHS ((BITS (0, 11) < 15) ? state->Reg[RHSReg] \
- : GetDPSRegRHS (state, instr))
-#endif
-
-#define LSBase state->Reg[LHSReg]
-#define LSImmRHS (BITS(0,11))
-
-#ifdef MODE32
-#define LSRegRHS ((BITS (4, 11) == 0) ? state->Reg[RHSReg] \
- : GetLSRegRHS (state, instr))
-#else
-#define LSRegRHS ((BITS (0, 11) < 15) ? state->Reg[RHSReg] \
- : GetLSRegRHS (state, instr))
-#endif
-
-#define LSMNumRegs ((ARMword) ARMul_BitList[BITS (0, 7)] + \
- (ARMword) ARMul_BitList[BITS (8, 15)] )
-#define LSMBaseFirst ((LHSReg == 0 && BIT (0)) || \
- (BIT (LHSReg) && BITS (0, LHSReg - 1) == 0))
-
-#define SWAPSRC (state->Reg[RHSReg])
-
-#define LSCOff (BITS (0, 7) << 2)
-#define CPNum BITS (8, 11)
-
-/* Determine if access to coprocessor CP is permitted.
- The XScale has a register in CP15 which controls access to CP0 - CP13. */
-#define CP_ACCESS_ALLOWED(STATE, CP) \
- ( ((CP) >= 14) \
- || (! (STATE)->is_XScale) \
- || (read_cp15_reg (15, 0, 1) & (1 << (CP))))
-
-/* Macro to rotate n right by b bits. */
-#define ROTATER(n, b) (((n) >> (b)) | ((n) << (32 - (b))))
-
-/* Macros to store results of instructions. */
-#define WRITEDEST(d) \
- do \
- { \
- if (DESTReg == 15) \
- WriteR15 (state, d); \
- else \
- DEST = d; \
- } \
- while (0)
-
-#define WRITESDEST(d) \
- do \
- { \
- if (DESTReg == 15) \
- WriteSR15 (state, d); \
- else \
- { \
- DEST = d; \
- ARMul_NegZero (state, d); \
- } \
- } \
- while (0)
-
-#define WRITEDESTB(d) \
- do \
- { \
- if (DESTReg == 15) \
- WriteR15Load (state, d); \
- else \
- DEST = d; \
- } \
- while (0)
-
-#define BYTETOBUS(data) ((data & 0xff) | \
- ((data & 0xff) << 8) | \
- ((data & 0xff) << 16) | \
- ((data & 0xff) << 24))
-
-#define BUSTOBYTE(address, data) \
- do \
- { \
- if (state->bigendSig) \
- temp = (data >> (((address ^ 3) & 3) << 3)) & 0xff; \
- else \
- temp = (data >> ((address & 3) << 3)) & 0xff; \
- } \
- while (0)
-
-#define LOADMULT(instr, address, wb) LoadMult (state, instr, address, wb)
-#define LOADSMULT(instr, address, wb) LoadSMult (state, instr, address, wb)
-#define STOREMULT(instr, address, wb) StoreMult (state, instr, address, wb)
-#define STORESMULT(instr, address, wb) StoreSMult (state, instr, address, wb)
-
-#define POSBRANCH ((instr & 0x7fffff) << 2)
-#define NEGBRANCH ((0xff000000 |(instr & 0xffffff)) << 2)
-
-
-/* Values for Emulate. */
-#define STOP 0 /* stop */
-#define CHANGEMODE 1 /* change mode */
-#define ONCE 2 /* execute just one interation */
-#define RUN 3 /* continuous execution */
-
-/* Stuff that is shared across modes. */
-extern unsigned ARMul_MultTable[]; /* Number of I cycles for a mult. */
-extern ARMword ARMul_ImmedTable[]; /* Immediate DP LHS values. */
-extern char ARMul_BitList[]; /* Number of bits in a byte table. */
-
-#define EVENTLISTSIZE 1024L
-
-/* Thumb support. */
-typedef enum
-{
- t_undefined, /* Undefined Thumb instruction. */
- t_decoded, /* Instruction decoded to ARM equivalent. */
- t_branch /* Thumb branch (already processed). */
-}
-tdstate;
-
-#define t_resolved t_branch
-
-/* Macros to scrutinize instructions. The dummy do loop is to keep the compiler
- happy when the statement is used in an otherwise empty else statement. */
-#define UNDEF_Test do { ; } while (0)
-#define UNDEF_Shift do { ; } while (0)
-#define UNDEF_MSRPC do { ; } while (0)
-#define UNDEF_MRSPC do { ; } while (0)
-#define UNDEF_MULPCDest do { ; } while (0)
-#define UNDEF_MULDestEQOp1 do { ; } while (0)
-#define UNDEF_LSRBPC do { ; } while (0)
-#define UNDEF_LSRBaseEQOffWb do { ; } while (0)
-#define UNDEF_LSRBaseEQDestWb do { ; } while (0)
-#define UNDEF_LSRPCBaseWb do { ; } while (0)
-#define UNDEF_LSRPCOffWb do { ; } while (0)
-#define UNDEF_LSMNoRegs do { ; } while (0)
-#define UNDEF_LSMPCBase do { ; } while (0)
-#define UNDEF_LSMUserBankWb do { ; } while (0)
-#define UNDEF_LSMBaseInListWb do { ; } while (0)
-#define UNDEF_SWPPC do { ; } while (0)
-#define UNDEF_CoProHS do { ; } while (0)
-#define UNDEF_MCRPC do { ; } while (0)
-#define UNDEF_LSCPCBaseWb do { ; } while (0)
-#define UNDEF_UndefNotBounced do { ; } while (0)
-#define UNDEF_ShortInt do { ; } while (0)
-#define UNDEF_IllegalMode do { ; } while (0)
-#define UNDEF_Prog32SigChange do { ; } while (0)
-#define UNDEF_Data32SigChange do { ; } while (0)
-
-/* Prototypes for exported functions. */
-extern unsigned ARMul_NthReg (ARMword, unsigned);
-extern int AddOverflow (ARMword, ARMword, ARMword);
-extern int SubOverflow (ARMword, ARMword, ARMword);
-extern ARMword ARMul_Emulate26 (ARMul_State *);
-extern ARMword ARMul_Emulate32 (ARMul_State *);
-extern unsigned IntPending (ARMul_State *);
-extern void ARMul_CPSRAltered (ARMul_State *);
-extern void ARMul_R15Altered (ARMul_State *);
-extern ARMword ARMul_GetPC (ARMul_State *);
-extern ARMword ARMul_GetNextPC (ARMul_State *);
-extern ARMword ARMul_GetR15 (ARMul_State *);
-extern ARMword ARMul_GetCPSR (ARMul_State *);
-extern void ARMul_EnvokeEvent (ARMul_State *);
-extern unsigned long ARMul_Time (ARMul_State *);
-extern void ARMul_NegZero (ARMul_State *, ARMword);
-extern void ARMul_SetPC (ARMul_State *, ARMword);
-extern void ARMul_SetR15 (ARMul_State *, ARMword);
-extern void ARMul_SetCPSR (ARMul_State *, ARMword);
-extern ARMword ARMul_GetSPSR (ARMul_State *, ARMword);
-extern void ARMul_Abort26 (ARMul_State *, ARMword);
-extern void ARMul_Abort32 (ARMul_State *, ARMword);
-extern ARMword ARMul_MRC (ARMul_State *, ARMword);
-extern void ARMul_CDP (ARMul_State *, ARMword);
-extern void ARMul_LDC (ARMul_State *, ARMword, ARMword);
-extern void ARMul_STC (ARMul_State *, ARMword, ARMword);
-extern void ARMul_MCR (ARMul_State *, ARMword, ARMword);
-extern void ARMul_SetSPSR (ARMul_State *, ARMword, ARMword);
-extern ARMword ARMul_SwitchMode (ARMul_State *, ARMword, ARMword);
-extern ARMword ARMul_Align (ARMul_State *, ARMword, ARMword);
-extern ARMword ARMul_SwitchMode (ARMul_State *, ARMword, ARMword);
-extern void ARMul_MSRCpsr (ARMul_State *, ARMword, ARMword);
-extern void ARMul_SubOverflow (ARMul_State *, ARMword, ARMword, ARMword);
-extern void ARMul_AddOverflow (ARMul_State *, ARMword, ARMword, ARMword);
-extern void ARMul_SubCarry (ARMul_State *, ARMword, ARMword, ARMword);
-extern void ARMul_AddCarry (ARMul_State *, ARMword, ARMword, ARMword);
-extern tdstate ARMul_ThumbDecode (ARMul_State *, ARMword, ARMword, ARMword *);
-extern ARMword ARMul_GetReg (ARMul_State *, unsigned, unsigned);
-extern void ARMul_SetReg (ARMul_State *, unsigned, unsigned, ARMword);
-extern void ARMul_ScheduleEvent (ARMul_State *, unsigned long, unsigned (*) (ARMul_State *));
-/* Coprocessor support functions. */
-extern unsigned ARMul_CoProInit (ARMul_State *);
-extern void ARMul_CoProExit (ARMul_State *);
-extern void ARMul_CoProAttach (ARMul_State *, unsigned, ARMul_CPInits *, ARMul_CPExits *,
- ARMul_LDCs *, ARMul_STCs *, ARMul_MRCs *, ARMul_MCRs *,
- ARMul_CDPs *, ARMul_CPReads *, ARMul_CPWrites *);
-extern void ARMul_CoProDetach (ARMul_State *, unsigned);
-extern ARMword read_cp15_reg (unsigned, unsigned, unsigned);
-
-extern unsigned DSPLDC4 (ARMul_State *, unsigned, ARMword, ARMword);
-extern unsigned DSPMCR4 (ARMul_State *, unsigned, ARMword, ARMword);
-extern unsigned DSPMRC4 (ARMul_State *, unsigned, ARMword, ARMword *);
-extern unsigned DSPSTC4 (ARMul_State *, unsigned, ARMword, ARMword *);
-extern unsigned DSPCDP4 (ARMul_State *, unsigned, ARMword);
-extern unsigned DSPMCR5 (ARMul_State *, unsigned, ARMword, ARMword);
-extern unsigned DSPMRC5 (ARMul_State *, unsigned, ARMword, ARMword *);
-extern unsigned DSPLDC5 (ARMul_State *, unsigned, ARMword, ARMword);
-extern unsigned DSPSTC5 (ARMul_State *, unsigned, ARMword, ARMword *);
-extern unsigned DSPCDP5 (ARMul_State *, unsigned, ARMword);
-extern unsigned DSPMCR6 (ARMul_State *, unsigned, ARMword, ARMword);
-extern unsigned DSPMRC6 (ARMul_State *, unsigned, ARMword, ARMword *);
-extern unsigned DSPCDP6 (ARMul_State *, unsigned, ARMword);
diff --git a/sim/arm/armfpe.h b/sim/arm/armfpe.h
deleted file mode 100644
index c9e9f86..0000000
--- a/sim/arm/armfpe.h
+++ /dev/null
@@ -1,1350 +0,0 @@
-/* armfpe.h -- ARMulator pre-compiled FPE: ARM6 Instruction Emulator.
- Copyright (C) 1994 Advanced RISC Machines Ltd.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 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, see <http://www.gnu.org/licenses/>. */
-
-/* Array containing the Floating Point Emualtor (FPE). */
-unsigned long fpecode[] =
-{
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00070000, 0x00000000, 0xe92d400e, 0xeb0013ef,
- 0xe28f00d4, 0xe1a00120, 0xe38004ea, 0xe3a01004,
- 0xe5912000, 0xe24f3028, 0xe1500002, 0x15832000,
- 0x15810000, 0xe3a00001, 0xe8bd800e, 0xe28d9040,
- 0xe1a0a00e, 0xe24f7048, 0xe597b000, 0xe20b74ee,
- 0xe14f8000, 0xe2088040, 0xe388809b, 0xe121f008,
- 0xe35704ea, 0x004bb007, 0x01a0b10b, 0x028bf00c,
- 0xe20b733b, 0xe3570339, 0x01a0ba0b, 0x01a0ba2b,
- 0x059bb00c, 0x0249800c, 0x08880e00, 0x0919ff80,
- 0xe24f7094, 0xe1a0f007, 0xe14f8000, 0xe2088040,
- 0xe3888093, 0xe121f008, 0xe8dd7fff, 0xe1a00000,
- 0xe28dd03c, 0xe8fd8000, 0xe14f8000, 0xe2088040,
- 0xe3888093, 0xe121f008, 0xe8bd1fff, 0xe28dd00c,
- 0xe1b0f00e, 0xe14f8000, 0xe2088040, 0xe3888093,
- 0xe121f008, 0xe28dd01c, 0xe8bd1f80, 0xe28dd00c,
- 0xe1b0f00e, 0x00002100, 0xe90d4007, 0xe14f0000,
- 0xe24d1010, 0xe10f2000, 0xe20220c0, 0xe3822003,
- 0xe121f002, 0xe169f000, 0xe8914007, 0xe24dd040,
- 0xe8cd7fff, 0xe24fcf6b, 0xe58de03c, 0xe24ea004,
- 0xe14f9000, 0xe20990c0, 0xe3899003, 0xe121f009,
- 0xe4ba9008, 0xe20987fe, 0xe2197010, 0xe0077aa9,
- 0xe0288a07, 0x02097402, 0x00077509, 0x00888007,
- 0xe2097c0f, 0xe3370c01, 0x0209733e, 0x0337033a,
- 0x008ff8a8, 0xea00009f, 0xea0003b7, 0xea0003b6,
- 0xea000307, 0xea000306, 0xea0003b3, 0xea0003b2,
- 0xea000303, 0xea000302, 0xea0003c3, 0xea0003c2,
- 0xea00030d, 0xea00030c, 0xea0003bf, 0xea0003be,
- 0xea000309, 0xea000308, 0xea0003cf, 0xea0003ce,
- 0xea000314, 0xea000313, 0xea0003cb, 0xea0003ca,
- 0xea000310, 0xea00030f, 0xea0003db, 0xea0003da,
- 0xea00031a, 0xea000319, 0xea0003d7, 0xea0003d6,
- 0xea000316, 0xea000315, 0xea0003e7, 0xea0003e6,
- 0xea000321, 0xea000320, 0xea0003f7, 0xea0003f6,
- 0xea00032b, 0xea00032a, 0xea000449, 0xea000448,
- 0xea000335, 0xea000334, 0xea000459, 0xea000458,
- 0xea000340, 0xea00033f, 0xea000469, 0xea000468,
- 0xea00034b, 0xea00034a, 0xea000479, 0xea000478,
- 0xea000355, 0xea000354, 0xea000489, 0xea000488,
- 0xea00035f, 0xea00035e, 0xea000499, 0xea000498,
- 0xea00036a, 0xea000369, 0xea000ac8, 0xea000ac5,
- 0xea000c3d, 0xea000c3a, 0xea000b7b, 0xea000b78,
- 0xea000b79, 0xea000b76, 0xea000d34, 0xea000d31,
- 0xea000d08, 0xea000d05, 0xea000e34, 0xea000e31,
- 0xea000e1c, 0xea000e19, 0xea000ecf, 0xea000ecc,
- 0xea000c2d, 0xea000c2a, 0xea000d28, 0xea000d25,
- 0xea000cfc, 0xea000cf9, 0xea00123d, 0xea00123a,
- 0xeaffff55, 0xeaffff54, 0xeaffff53, 0xeaffff52,
- 0xeaffff51, 0xeaffff50, 0xea0007b8, 0xea0007ec,
- 0xea00073c, 0xea00073b, 0xea000806, 0xea000805,
- 0xea00080f, 0xea00080e, 0xeaffff47, 0xeaffff46,
- 0xeaffff45, 0xeaffff44, 0xeaffff43, 0xeaffff42,
- 0xeaffff41, 0xeaffff40, 0xeaffff3f, 0xeaffff3e,
- 0xea00086f, 0xea00086e, 0xeaffff3b, 0xeaffff3a,
- 0xea00086b, 0xea00086a, 0xeaffff37, 0xeaffff36,
- 0xea0007ff, 0xea0007fe, 0xeaffff33, 0xeaffff32,
- 0xea0007fb, 0xea0007fa, 0xea000914, 0xea0008f3,
- 0xea00091f, 0xea0008fb, 0xea00092b, 0xea000904,
- 0xea0009dc, 0xea0009d9, 0xea0009fd, 0xea0009fa,
- 0xea000ef8, 0xea000ef5, 0xea000ef6, 0xea000ef3,
- 0xea000f9d, 0xea000f9a, 0xea00111e, 0xea00111b,
- 0xea00111c, 0xea001119, 0xea00104e, 0xea00104b,
- 0xea001147, 0xea001144, 0xea001145, 0xea001142,
- 0xea00125a, 0xea001257, 0xeaffff13, 0xeaffff12,
- 0xeaffff11, 0xeaffff10, 0xe3190c0e, 0x1affff0e,
- 0xe3190c01, 0x13190302, 0x0affff0b, 0xe28fb016,
- 0xe79b7d27, 0xe14fb000, 0xe1a0be2b, 0xe28bb010,
- 0xe1170b37, 0x0affff51, 0xeaffff29, 0x8000f0f0,
- 0x80000f0f, 0x8000cccc, 0x80003333, 0x8000ff00,
- 0x800000ff, 0x8000aaaa, 0x80005555, 0x8000cfcf,
- 0x80003030, 0x800055aa, 0x8000aa55, 0x80005faf,
- 0x8000a050, 0x80000000, 0x8000ffff, 0xe1300007,
- 0x5a000002, 0xea00004a, 0xe3100102, 0x1a000048,
- 0xe053400b, 0x4a00002d, 0xe2745020, 0xda00001b,
- 0xe092243a, 0x20822518, 0x30922518, 0xe0b11438,
- 0xe1a0451a, 0x2a000006, 0xe0922fa4, 0xe2b11000,
- 0x31b0f00e, 0xe3a01102, 0xe2833001, 0xe1a040a4,
- 0xe1b0f00e, 0xe2833001, 0xe1a040a4, 0xe1844f82,
- 0xe1a020a2, 0xe1822f81, 0xe1a01061, 0xe0922fa4,
- 0xe2a11000, 0xe1b0f00e, 0xe1a04538, 0xe0922fa4,
- 0xe2b11000, 0x23a01102, 0x22833001, 0xe1b0f00e,
- 0xe2545040, 0xaafffff7, 0xe2444020, 0xe2645020,
- 0xe0922438, 0xe2b11000, 0xe1a04518, 0xe184443a,
- 0x2affffe7, 0xe0922fa4, 0xe2b11000, 0x31b0f00e,
- 0xe3a01102, 0xe2833001, 0xe1a040a4, 0xe1b0f00e,
- 0xe2644000, 0xe1a0300b, 0xe1a05001, 0xe1a01008,
- 0xe1a08005, 0xe1a05002, 0xe1a0200a, 0xe1a0a005,
- 0xe2745020, 0xdaffffe5, 0xe092243a, 0x20822518,
- 0x30922518, 0xe0b11438, 0xe1a0451a, 0x2affffd0,
- 0xe0922fa4, 0xe2b11000, 0x31b0f00e, 0xe3a01102,
- 0xe2833001, 0xe1a040a4, 0xe1b0f00e, 0xe3100102,
- 0x1affffb6, 0xe053600b, 0x4a00003d, 0x01510008,
- 0x0152000a, 0x0a00004f, 0x3a000039, 0xe3a04000,
- 0xe2765020, 0xda00001a, 0xe054451a, 0xe0d2263a,
- 0x30422518, 0x20522518, 0xe0d11638, 0x5a000002,
- 0xe0922fa4, 0xe2a11000, 0xe1b0f00e, 0xe0944004,
- 0xe0b22002, 0xe0b11001, 0xe2433001, 0x5afffffa,
- 0xe0922fa4, 0xe2b11000, 0x31b0f00e, 0xe3a01102,
- 0xe2833001, 0xe1a040a4, 0xe1b0f00e, 0xe0544538,
- 0x41b0f00e, 0xe2d22000, 0xe2d11000, 0x41b0f00e,
- 0xeaffffed, 0xe3a04000, 0xe2565040, 0xaafffff6,
- 0xe2466020, 0xe2665020, 0xe054751a, 0xe0d4463a,
- 0x30444518, 0x20544518, 0xe0d22638, 0xe2d11000,
- 0x5a000002, 0xe0922fa4, 0xe2a11000, 0xe1b0f00e,
- 0xe0977007, 0xe0b44004, 0xe0b22002, 0xe0b11001,
- 0xe2433001, 0x5afffff9, 0xe0922fa4, 0xe2b11000,
- 0x31b0f00e, 0xe3a01102, 0xe2833001, 0xe1a040a4,
- 0xe1b0f00e, 0xe2666000, 0xe2200102, 0xe1a0300b,
- 0xe1a05001, 0xe1a01008, 0xe1a08005, 0xe1a05002,
- 0xe1a0200a, 0xe1a0a005, 0xe3a04000, 0xe2765020,
- 0xdaffffd7, 0xe054451a, 0xe0d2263a, 0x30422518,
- 0x20522518, 0xe0d11638, 0x5affffbf, 0xe0922fa4,
- 0xe2a11000, 0xe1b0f00e, 0xe3a03000, 0xe3a02000,
- 0xe3a01000, 0xe3a04000, 0xe1b0f00e, 0xe1a07000,
- 0xe1a08001, 0xe1a0a002, 0xe1a0b003, 0xe0200007,
- 0xe1914002, 0x1198400a, 0x0afffff2, 0xe3b054ff,
- 0xe0a3300b, 0xe185b425, 0xe043392b, 0xe92c4209,
- 0xe1a04821, 0xe1c1500b, 0xe1a06822, 0xe1c2700b,
- 0xe1c8900b, 0xe1a08828, 0xe1cab00b, 0xe1a0a82a,
- 0xe0030b96, 0xe0020b94, 0xe0010994, 0xe0000a97,
- 0xe0933000, 0xe0000a95, 0xe0b22000, 0xe0000895,
- 0xe0b11000, 0x33a0e000, 0x23a0e001, 0xe0000996,
- 0xe0922000, 0xe2b11000, 0xe2aee000, 0xe0000897,
- 0xe0922000, 0xe2b11000, 0xe2aee000, 0xe18ee803,
- 0xe1a03823, 0xe1833802, 0xe1a02822, 0xe1822801,
- 0xe1a01821, 0xe181180e, 0xe3cee0ff, 0xe0000b95,
- 0xe00b0b97, 0xe09eb00b, 0xe0b33000, 0xe0000896,
- 0xe0b22000, 0xe0000894, 0xe0a11000, 0xe0000a94,
- 0xe00a0a96, 0xe09aa003, 0xe0b22000, 0xe2a11000,
- 0xe0000997, 0xe09a4000, 0xe0000995, 0xe0b22000,
- 0xe2b11000, 0xe8bc4209, 0x4a000005, 0xe09bb00b,
- 0xe0b44004, 0xe0b22002, 0xe0b11001, 0xe2433001,
- 0x5afffff9, 0xe0922fa4, 0xe2b11000, 0x31b0f00e,
- 0xe3a01102, 0xe2833001, 0xe1a040a4, 0xe1b0f00e,
- 0xe1a07000, 0xe1a08001, 0xe1a0a002, 0xe1a0b003,
- 0xe3a00000, 0xe3a01102, 0xe3b02100, 0xe2e23901,
- 0xe0200007, 0xe1914002, 0x1198400a, 0x0affff9d,
- 0xe043300b, 0xe2833901, 0xe2433001, 0xe3a0b000,
- 0xe052500a, 0xe0d14008, 0x23a01003, 0x2a00000c,
- 0xe1a05002, 0xe1a04001, 0xe3a01001, 0xe2433001,
- 0xe0955005, 0xe0b44004, 0xe2abb000, 0xe055700a,
- 0xe0d46008, 0x31b0b0ab, 0x21a05007, 0x21a04006,
- 0xe0a11001, 0xe0955005, 0xe0b44004, 0xe2abb000,
- 0xe055700a, 0xe0d46008, 0x31b0b0ab, 0x21a05007,
- 0x21a04006, 0xe0a11001, 0xe0955005, 0xe0b44004,
- 0xe2abb000, 0xe055700a, 0xe0d46008, 0x31b0b0ab,
- 0x21a05007, 0x21a04006, 0xe0a11001, 0xe0955005,
- 0xe0b44004, 0xe2abb000, 0xe055700a, 0xe0d46008,
- 0x31b0b0ab, 0x21a05007, 0x21a04006, 0xe0b11001,
- 0x3affffda, 0xe1942005, 0x01b0f00e, 0xe3a02001,
- 0xe0955005, 0xe0b44004, 0xe2abb000, 0xe055700a,
- 0xe0d46008, 0x31b0b0ab, 0x21a05007, 0x21a04006,
- 0xe0a22002, 0xe0955005, 0xe0b44004, 0xe2abb000,
- 0xe055700a, 0xe0d46008, 0x31b0b0ab, 0x21a05007,
- 0x21a04006, 0xe0a22002, 0xe0955005, 0xe0b44004,
- 0xe2abb000, 0xe055700a, 0xe0d46008, 0x31b0b0ab,
- 0x21a05007, 0x21a04006, 0xe0a22002, 0xe0955005,
- 0xe0b44004, 0xe2abb000, 0xe055700a, 0xe0d46008,
- 0x31b0b0ab, 0x21a05007, 0x21a04006, 0xe0b22002,
- 0x3affffda, 0xe0955005, 0xe0b44004, 0x2a000001,
- 0xe1540008, 0x0155000a, 0xe2b22000, 0xe2b11000,
- 0x31b0f00e, 0xe2a33000, 0xe3a01102, 0xe1b0f00e,
- 0xe1b04883, 0x0affff37, 0xe2833901, 0xe2433001,
- 0xe1b030a3, 0xe1a05002, 0x32414102, 0x22414101,
- 0x33a07201, 0x23a07202, 0xe3a01102, 0xe0955005,
- 0xe0b44004, 0xe0216007, 0x31540006, 0x20444006,
- 0x20211087, 0xe1b070e7, 0x5afffff7, 0xe1942005,
- 0x01b0f00e, 0xe3a02000, 0xe0955005, 0xe0b44004,
- 0xe0a00000, 0xe0226007, 0xe055a006, 0xe0d48001,
- 0x31b000a0, 0x21a0500a, 0x21a04008, 0x20222087,
- 0x20211fa7, 0xe1b070a7, 0x1afffff2, 0xe0955005,
- 0xe0b44004, 0xe0b70007, 0xe0d5a002, 0xe0d48001,
- 0x31b000a0, 0x21a0500a, 0x21a04008, 0x22222001,
- 0x23a07102, 0xe3a00000, 0xe0977007, 0xe0b55005,
- 0xe0b44004, 0x2a000002, 0xe1540001, 0x01550002,
- 0x03570101, 0xe2b22000, 0xe2b11000, 0xe2a33000,
- 0x23a01102, 0xe1b0f00e, 0xe1b07004, 0x42644000,
- 0xe3a0b901, 0xe3a0a000, 0xe1a08004, 0xe1b04828,
- 0x01a08808, 0x128bb010, 0xe1b04c28, 0x01a08408,
- 0x128bb008, 0xe1b04e28, 0x01a08208, 0x128bb004,
- 0xe1b04f28, 0x01a08108, 0x128bb002, 0xe1b04fa8,
- 0x01a08088, 0x024bb001, 0xe1b0f00e, 0xe1a07000,
- 0xe1a0b003, 0xe24b40fe, 0xe2544c3f, 0xda000011,
- 0xe2745020, 0x4a000003, 0xe3a0a000, 0xe1a08531,
- 0xe1a08518, 0xe1b0f00e, 0xe1a08001, 0xe1a0a002,
- 0xe2745040, 0x41b0f00e, 0xe1a0a53a, 0xe1a0a51a,
- 0xe1b0f00e, 0x03a04001, 0x03a08102, 0xe3a0a000,
- 0x028bb001, 0x01b0f00e, 0xe3a04000, 0xe3a08000,
- 0xe3a0a000, 0xe3a0b000, 0xe1b0f00e, 0xe1a07000,
- 0xe1a0b003, 0xe24b40fe, 0xe2544c3f, 0xdafffff0,
- 0xe2745020, 0x4a000007, 0xe3a0a000, 0xe1b04531,
- 0xe2a44000, 0xe1b08514, 0x31b0f00e, 0xe1a08068,
- 0xe28bb001, 0xe1b0f00e, 0xe1a08001, 0xe1a0a002,
- 0xe2745040, 0xe3e04000, 0x41b0f00e, 0xe1b0a53a,
- 0xe2aaa000, 0xe1b0a51a, 0xe2b88000, 0x31b0f00e,
- 0xe1a0a0aa, 0xe18aaf88, 0xe1a08068, 0xe28bb001,
- 0xe1b0f00e, 0xe38ee101, 0xe24340fe, 0xe2544c3f,
- 0xda000032, 0xe2745020, 0x4a000018, 0xe1a08411,
- 0x01a08002, 0x11a0a002, 0x03a0a000, 0xe3a02000,
- 0xe1a01531, 0xe2194060, 0x1a000007, 0xe19aa088,
- 0x00088f81, 0xe0911fa8, 0x31b01511, 0x31b0f00e,
- 0xe1a01061, 0xe2833001, 0xe1b0f00e, 0xe3540060,
- 0x1198a00a, 0x0a000003, 0xe0304d04, 0x5a000001,
- 0xe2911001, 0xeafffff3, 0xe1a01511, 0xe1b0f00e,
- 0xe2745040, 0xd1b0f00e, 0xe2444020, 0xe1a08412,
- 0xe1b02532, 0xe2194060, 0x1a00000a, 0xe1b0a088,
- 0x00088f82, 0xe0822fa8, 0xe1b02512, 0xe2b11000,
- 0x31b0f00e, 0xe1a020a2, 0xe1822f81, 0xe1a01061,
- 0xe2833001, 0xe1b0f00e, 0xe3540060, 0x13580000,
- 0x0afffff4, 0xe0304d04, 0x42822001, 0xeafffff1,
- 0x0a000011, 0xe2194060, 0x1a000006, 0xe1918002,
- 0x01b0f00e, 0xe3a01000, 0xe3a02000, 0xe3a03000,
- 0xe3a04008, 0xe1a0f00e, 0xe1918002, 0x13540060,
- 0x0afffff5, 0xe0304d04, 0x5afffff3, 0xe3a01102,
- 0xe3b02100, 0xe2e23901, 0xe1b0f00e, 0xe2194060,
- 0x1afffff4, 0xe1924081, 0x1afffff7, 0xeaffffea,
- 0xe1a04000, 0xe1a00007, 0xe1a07004, 0xe1a04001,
- 0xe1a01008, 0xe1a08004, 0xe1a04002, 0xe1a0200a,
- 0xe1a0a004, 0xe1a04003, 0xe1a0300b, 0xe1a0b004,
- 0xe1b0f00e, 0xe209ba07, 0xe08c542b, 0xe209780f,
- 0xe79da727, 0xe21980ff, 0xe04a8108, 0x178d8727,
- 0xe2199902, 0xe3899901, 0xe1a09789, 0xe4ba6004,
- 0x14ba7004, 0xe88503c0, 0xeafffcae, 0xe209ba07,
- 0xe08c542b, 0xe209780f, 0xe79da727, 0xe21980ff,
- 0xe04a8108, 0x178d8727, 0xe2199902, 0xe3899905,
- 0xe1a09789, 0xe4ba6004, 0xe4ba7004, 0xe4ba8000,
- 0xe88503c0, 0xeafffc9f, 0xe209ba07, 0xe08c542b,
- 0xe209780f, 0xe79da727, 0xe21980ff, 0xe08a8108,
- 0x178d8727, 0xe2199902, 0xe3899901, 0xe1a09789,
- 0xe4ba6004, 0x14ba7004, 0xe88503c0, 0xeafffc91,
- 0xe209ba07, 0xe08c542b, 0xe209780f, 0xe79da727,
- 0xe21980ff, 0xe08a8108, 0x178d8727, 0xe2199902,
- 0xe3899905, 0xe1a09789, 0xe4ba6004, 0xe4ba7004,
- 0xe4ba8000, 0xe88503c0, 0xeafffc82, 0xe209ba07,
- 0xe08cc42b, 0xe209780f, 0xe337080f, 0x179da727,
- 0xe21980ff, 0xe04aa108, 0xe2199902, 0xe3899901,
- 0xe1a0b789, 0xe4ba8004, 0x14ba9004, 0xe88c0f00,
- 0xeafffc83, 0xe209ba07, 0xe08c542b, 0xe209780f,
- 0xe79da727, 0xe21980ff, 0xe04aa108, 0x178da727,
- 0xe2199902, 0xe3899901, 0xe1a09789, 0xe4ba6004,
- 0x14ba7004, 0xe88503c0, 0xeafffc66, 0xe209ba07,
- 0xe08cc42b, 0xe209780f, 0xe337080f, 0x179da727,
- 0xe21980ff, 0xe04aa108, 0xe2199902, 0xe3899905,
- 0xe1a0b789, 0xe4ba8004, 0xe4ba9004, 0xe4baa000,
- 0xe88c0f00, 0xeafffc66, 0xe209ba07, 0xe08c542b,
- 0xe209780f, 0xe79da727, 0xe21980ff, 0xe04aa108,
- 0x178da727, 0xe2199902, 0xe3899905, 0xe1a09789,
- 0xe4ba6004, 0xe4ba7004, 0xe4ba8000, 0xe88503c0,
- 0xeafffc48, 0xe209ba07, 0xe08cc42b, 0xe209780f,
- 0xe337080f, 0x179da727, 0xe21980ff, 0xe08aa108,
- 0xe2199902, 0xe3899901, 0xe1a0b789, 0xe4ba8004,
- 0x14ba9004, 0xe88c0f00, 0xeafffc49, 0xe209ba07,
- 0xe08c542b, 0xe209780f, 0xe79da727, 0xe21980ff,
- 0xe08aa108, 0x178da727, 0xe2199902, 0xe3899901,
- 0xe1a09789, 0xe4ba6004, 0x14ba7004, 0xe88503c0,
- 0xeafffc2c, 0xe209ba07, 0xe08cc42b, 0xe209780f,
- 0xe337080f, 0x179da727, 0xe21980ff, 0xe08aa108,
- 0xe2199902, 0xe3899905, 0xe1a0b789, 0xe4ba8004,
- 0xe4ba9004, 0xe4baa000, 0xe88c0f00, 0xeafffc2c,
- 0xe209ba07, 0xe08c542b, 0xe209780f, 0xe79da727,
- 0xe21980ff, 0xe08aa108, 0x178da727, 0xe2199902,
- 0xe3899905, 0xe1a09789, 0xe4ba6004, 0xe4ba7004,
- 0xe4ba8000, 0xe88503c0, 0xeafffc0e, 0xe2095a07,
- 0xe08c5425, 0xe895000f, 0xe3a04002, 0xe0044729,
- 0xe3844001, 0xe1340ea3, 0xe1844d23, 0xe28f7004,
- 0xe28f5f6f, 0x1085f104, 0xe209780f, 0xe79da727,
- 0xe21980ff, 0xe04a8108, 0x178d8727, 0xe4aa0004,
- 0xe3130101, 0x14aa1000, 0xeafffbfa, 0xe2095a07,
- 0xe08c5425, 0xe895000f, 0xe3a04002, 0xe0044729,
- 0xe3844005, 0xe1340ea3, 0xe1844d23, 0xe28f7004,
- 0xe28f5f5b, 0x1085f104, 0xe209780f, 0xe79da727,
- 0xe21980ff, 0xe04a8108, 0x178d8727, 0xe4aa0004,
- 0xe4aa1004, 0xe4aa2000, 0xeafffbe6, 0xe2095a07,
- 0xe08c5425, 0xe895000f, 0xe3a04002, 0xe0044729,
- 0xe3844001, 0xe1340ea3, 0xe1844d23, 0xe28f7004,
- 0xe28f5f47, 0x1085f104, 0xe209780f, 0xe79da727,
- 0xe21980ff, 0xe08a8108, 0x178d8727, 0xe4aa0004,
- 0xe3130101, 0x14aa1000, 0xeafffbd2, 0xe2095a07,
- 0xe08c5425, 0xe895000f, 0xe3a04002, 0xe0044729,
- 0xe3844005, 0xe1340ea3, 0xe1844d23, 0xe28f7004,
- 0xe28f50cc, 0x1085f104, 0xe209780f, 0xe79da727,
- 0xe21980ff, 0xe08a8108, 0x178d8727, 0xe4aa0004,
- 0xe4aa1004, 0xe4aa2000, 0xeafffbbe, 0xe2095a07,
- 0xe08c5425, 0xe895000f, 0xe3a04002, 0xe0044729,
- 0xe3844001, 0xe1340ea3, 0xe1844d23, 0xe28f7004,
- 0xe28f507c, 0x1085f104, 0xe209780f, 0xe337080f,
- 0x179da727, 0xe21980ff, 0xe04aa108, 0xe4aa0004,
- 0xe3130101, 0x14aa1000, 0xeafffbb2, 0xe2095a07,
- 0xe08c5425, 0xe895000f, 0xe3a04002, 0xe0044729,
- 0xe3844001, 0xe1340ea3, 0xe1844d23, 0xe28f7004,
- 0xe28f502c, 0x1085f104, 0xe209780f, 0xe79da727,
- 0xe21980ff, 0xe04aa108, 0x178da727, 0xe4aa0004,
- 0xe3130101, 0x14aa1000, 0xeafffb96, 0xe08ff104,
- 0xeb00036b, 0xe1a0f007, 0xea0000b6, 0xeb000368,
- 0xea0000ea, 0xeb000366, 0xea000123, 0xeb000364,
- 0xea0001ca, 0xea000124, 0xe1a0f007, 0xeb000360,
- 0xea000134, 0xeb00035e, 0xea00014b, 0xeb00035c,
- 0xea0001bd, 0xeb00035a, 0xeb000359, 0xeb000358,
- 0xeb000357, 0xeb000356, 0xeb000355, 0xeb000354,
- 0xeb000353, 0xea000156, 0xea00016f, 0xeb000350,
- 0xe1a0f007, 0xeb00034e, 0xea00018c, 0xeb00034c,
- 0xea0001ad, 0xeb00034a, 0xeb000349, 0xeb000348,
- 0xeb000347, 0xeb000346, 0xeb000345, 0xeb000344,
- 0xeb000343, 0xea00019f, 0xea00008d, 0xeb000340,
- 0xea0000c1, 0xeb00033e, 0xe1a0f007, 0xeb00033c,
- 0xea00019d, 0xeb00033a, 0xeb000339, 0xeb000338,
- 0xeb000337, 0xeb000336, 0xeb000335, 0xeb000334,
- 0xeb000333, 0xea00024f, 0xea00024e, 0xeb000330,
- 0xea00024c, 0xeb00032e, 0xea00024a, 0xeb00032c,
- 0xe1a0f007, 0xe2095a07, 0xe08c5425, 0xe895000f,
- 0xe3a04002, 0xe0044729, 0xe3844005, 0xe1340ea3,
- 0xe1844d23, 0xe28f7004, 0xe24f5f4b, 0x1085f104,
- 0xe209780f, 0xe337080f, 0x179da727, 0xe21980ff,
- 0xe04aa108, 0xe4aa0004, 0xe4aa1004, 0xe4aa2004,
- 0xeafffb48, 0xe2095a07, 0xe08c5425, 0xe895000f,
- 0xe3a04002, 0xe0044729, 0xe3844005, 0xe1340ea3,
- 0xe1844d23, 0xe28f7004, 0xe24f5f5f, 0x1085f104,
- 0xe209780f, 0xe79da727, 0xe21980ff, 0xe04aa108,
- 0x178da727, 0xe4aa0004, 0xe4aa1004, 0xe4aa2000,
- 0xeafffb2c, 0xe2095a07, 0xe08c5425, 0xe895000f,
- 0xe3a04002, 0xe0044729, 0xe3844001, 0xe1340ea3,
- 0xe1844d23, 0xe28f7004, 0xe24f5f73, 0x1085f104,
- 0xe209780f, 0xe337080f, 0x179da727, 0xe21980ff,
- 0xe08aa108, 0xe4aa0004, 0xe3130101, 0x14aa1000,
- 0xeafffb20, 0xe2095a07, 0xe08c5425, 0xe895000f,
- 0xe3a04002, 0xe0044729, 0xe3844001, 0xe1340ea3,
- 0xe1844d23, 0xe28f7004, 0xe24f5f87, 0x1085f104,
- 0xe209780f, 0xe79da727, 0xe21980ff, 0xe08aa108,
- 0x178da727, 0xe4aa0004, 0xe3130101, 0x14aa1000,
- 0xeafffb04, 0xe2095a07, 0xe08c5425, 0xe895000f,
- 0xe3a04002, 0xe0044729, 0xe3844005, 0xe1340ea3,
- 0xe1844d23, 0xe28f7004, 0xe24f5f9b, 0x1085f104,
- 0xe209780f, 0xe337080f, 0x179da727, 0xe21980ff,
- 0xe08aa108, 0xe4aa0004, 0xe4aa1004, 0xe4aa2004,
- 0xeafffaf8, 0xe2095a07, 0xe08c5425, 0xe895000f,
- 0xe3a04002, 0xe0044729, 0xe3844005, 0xe1340ea3,
- 0xe1844d23, 0xe28f7004, 0xe24f5faf, 0x1085f104,
- 0xe209780f, 0xe79da727, 0xe21980ff, 0xe08aa108,
- 0x178da727, 0xe4aa0004, 0xe4aa1004, 0xe4aa2000,
- 0xeafffadc, 0xe3c03102, 0xe2000102, 0xe1b05883,
- 0x12955802, 0x0a00000e, 0xe3320000, 0x01922c81,
- 0xe2012080, 0x000220a1, 0xe0911002, 0x31a01081,
- 0xe2a33000, 0xe2533dfe, 0x9a00001c, 0xe35300ff,
- 0x31800b83, 0x318004a1, 0x33a03202, 0x31a0f007,
- 0xea000008, 0xe1b04c03, 0xe18000a4, 0xe3a03202,
- 0x13c11102, 0x11800421, 0x11a0f007, 0xe1922001,
- 0x01a0f007, 0xea000015, 0xe380047f, 0xe3800502,
- 0xe3a03202, 0xe3a04004, 0xe59c5080, 0xe1855004,
- 0xe58c5080, 0xe1140825, 0x11a00004, 0x1a000e8a,
- 0xe3540004, 0x11a0f007, 0xe3a04010, 0xeafffff5,
- 0xe3730017, 0xda000005, 0xe1a01521, 0xe3811501,
- 0xe2633000, 0xe1800331, 0xe3a03202, 0xe1a0f007,
- 0xe3a03202, 0xe3a04008, 0xeaffffea, 0xe3c03102,
- 0xe2000102, 0xe1b05883, 0x12955802, 0x0a000012,
- 0xe1b04b02, 0xe2024b01, 0x000440a2, 0xe0922004,
- 0xe2b11000, 0xe2a33000, 0xe0922002, 0xe0a11001,
- 0xe2533b0f, 0x9a000019, 0xe2834001, 0xe3540b02,
- 0x31800a03, 0x31800621, 0x31a01a01, 0x31811622,
- 0x33a03206, 0x31a0f007, 0xea00000a, 0xe1b04a83,
- 0xe18000a4, 0xe3a03206, 0x13c11102, 0x118005a1,
- 0x11a01a81, 0x118115a2, 0x11a0f007, 0xe1922001,
- 0x01a0f007, 0xea000014, 0xe380047f, 0xe380060f,
- 0xe3a01000, 0xe3a03206, 0xe3a04004, 0xeaffffc1,
- 0xe3730034, 0xda00000c, 0xe1a026a2, 0xe1822981,
- 0xe1a016a1, 0xe3811702, 0xe2633000, 0xe2534020,
- 0x21a01431, 0x32634020, 0x31800331, 0x31a01411,
- 0x31811332, 0xe3a03206, 0xe1a0f007, 0xe3a01000,
- 0xe3a03206, 0xe3a04008, 0xeaffffae, 0xe2000102,
- 0xe1800003, 0xe3a0320a, 0xe1a0f007, 0xe3a02000,
- 0xe1a03080, 0xe1b03c23, 0x133300ff, 0x11a01400,
- 0x13811102, 0x12833dfe, 0x11a0f007, 0xe1933383,
- 0x11a01400, 0x13c11102, 0x11a0f007, 0xe1b01480,
- 0x01a0f007, 0xe3a03dfe, 0x52433001, 0x51b01081,
- 0x5afffffc, 0xe1a0f007, 0xe1a01e80, 0xe3c03102,
- 0xe2000102, 0xe18001a3, 0xe3a03206, 0xe21026ff,
- 0x133206ff, 0x1280030e, 0x11a0f007, 0xe1800182,
- 0xe3320000, 0x11a0f007, 0xe1912600, 0x01a0f007,
- 0xe1a01a21, 0xe1911600, 0xe2000102, 0xe380030e,
- 0x52400601, 0x51b01081, 0x5afffffc, 0xe1a01081,
- 0xe1800621, 0xe1a01a01, 0xe1a0f007, 0xe3a02000,
- 0xe1a03080, 0xe1b03c23, 0x133300ff, 0xe1a01400,
- 0x13811102, 0x12833dfe, 0xe2000102, 0xe1800003,
- 0xe3a0320a, 0x11a0f007, 0xe1800380, 0xe31000ff,
- 0x13c11102, 0x11a0f007, 0xe1b01081, 0x01a0f007,
- 0xe3800dfe, 0x52400001, 0x51b01081, 0x5afffffc,
- 0xe1a0f007, 0xe1a03080, 0xe1b03aa3, 0x12834001,
- 0x13340b02, 0xe1a02581, 0xe1a01aa1, 0xe1811580,
- 0x13811102, 0x12833b0f, 0x11a0f007, 0xe1933203,
- 0x11a0f007, 0xe0922002, 0xe0a11001, 0xe1924001,
- 0x01a0f007, 0xe3a03b0f, 0xe1b01001, 0x52433001,
- 0xe3a04000, 0x51844fa2, 0x51844081, 0x51a02082,
- 0x51b01004, 0x5afffff8, 0xe1a0f007, 0xe1a03080,
- 0xe1b03aa3, 0x12834001, 0x13340b02, 0x0a00000f,
- 0xe1b04201, 0xe1a01a21, 0xe1811600, 0xe2014c01,
- 0x000440a1, 0xe0911004, 0xe2a33000, 0xe2000102,
- 0xe2533d0e, 0x9affff49, 0xe35300ff, 0x31800b83,
- 0x318004a1, 0x33a03202, 0x31a0f007, 0xeaffff35,
- 0xe1812600, 0xe1a01a21, 0xe1811600, 0xe2000102,
- 0xe1b04c03, 0xe18000a4, 0xe3a03202, 0x118004a1,
- 0x11a0f007, 0xe3320000, 0x01a0f007, 0xeaffff3f,
- 0xe1a03080, 0xe1b03aa3, 0x12834001, 0x13340b02,
- 0xe1a02581, 0xe1a01aa1, 0xe1811580, 0x13811102,
- 0x12833b0f, 0xe2000102, 0xe1800003, 0xe3a0320a,
- 0x11a0f007, 0xe1800200, 0xe31000ff, 0x11a0f007,
- 0xe0922002, 0xe0a11001, 0xe1924001, 0x01a0f007,
- 0xe3800b0f, 0xe1b01001, 0x52400001, 0xe3a04000,
- 0x51844fa2, 0x51844081, 0x51a02082, 0x51b01004,
- 0x5afffff8, 0xe1a0f007, 0xe3c03102, 0xe1a0f007,
- 0x9a209a84, 0xfbcff799, 0x00003ffd, 0xe92c0080,
- 0xe28f7004, 0xe3c44007, 0xeafffe2b, 0xe8bc0080,
- 0xe1b05883, 0x12955802, 0x0a000099, 0xe3a05901,
- 0xe2455001, 0xe1530005, 0x3a000006, 0xe2855003,
- 0xe1530005, 0x0351020a, 0x33a04000, 0x33a05000,
- 0x392c4ff0, 0x3a000021, 0xe92c4fcf, 0xe3a00902,
- 0xe2404003, 0xe0644083, 0xebfffc46, 0xe24bb001,
- 0xe24f4078, 0xe894000e, 0xebfffb4b, 0xe3a04901,
- 0xe2444002, 0xe0434004, 0xe2644020, 0xe1a09431,
- 0xe1510419, 0x03520000, 0x1210b102, 0x12899001,
- 0xe200b102, 0xe8bc000f, 0xe92c0a00, 0xeb0000bf,
- 0xe59c4004, 0xe1b04004, 0x5bfffb90, 0x4bfffb3a,
- 0xe3a05901, 0xe2455001, 0xe1530005, 0x3a000051,
- 0xe2855003, 0xe1530005, 0x0351020a, 0x2a000040,
- 0xe3a04901, 0xe2844002, 0xe0544003, 0xe2645020,
- 0xe1a03512, 0x11a02432, 0x11822511, 0x11a01431,
- 0xe1a04e21, 0xe3a07003, 0xe3c1120f, 0xe0933003,
- 0xe0b22002, 0xe0a11001, 0xe1a08101, 0xe1888f22,
- 0xe1a0a102, 0xe18aaf23, 0xe092200a, 0xe0a11008,
- 0xe2577001, 0x11a04204, 0x11844e21, 0x1afffff1,
- 0xe1915002, 0x03a06000, 0x0a000019, 0xe3a0700f,
- 0xe1a05205, 0xe1855e26, 0xe1a06206, 0xe1866e21,
- 0xe3c1120f, 0xe0922002, 0xe0a11001, 0xe1a08101,
- 0xe1888f22, 0xe0922102, 0xe0a11008, 0xe2577001,
- 0x1afffff2, 0xe1a05205, 0xe1855e26, 0xe1a06206,
- 0xe1866e21, 0xe1b01281, 0x3a000005, 0xe2866001,
- 0xe1911002, 0x03c66001, 0xe206100f, 0xe351000a,
- 0x02466001, 0xe8bc0008, 0xeb000023, 0xe2000102,
- 0xe1800221, 0xe8bc0080, 0xe18000a7, 0xe1800004,
- 0xe1a01005, 0xe1a02006, 0xe3a0320e, 0xe8bc4fc0,
- 0xe1a0f007, 0xe8bc0030, 0xe3150102, 0x12644000,
- 0xe2844001, 0xe2145102, 0x12644000, 0xe92c0030,
- 0xe3a07901, 0xe3a0820a, 0xe3a0a000, 0xe287b002,
- 0xebfffb3a, 0xeaffffb1, 0xe8bc0030, 0xe3150102,
- 0x12644000, 0xe2444001, 0xe2145102, 0x12644000,
- 0xe92c0030, 0xe3a07901, 0xe3a0820a, 0xe3a0a000,
- 0xe287b002, 0xebfffad8, 0xeaffffa4, 0xe1a02003,
- 0xe3a03010, 0xe0922002, 0x3352020a, 0x2242220a,
- 0xe0b33003, 0x3afffffa, 0xe1a01622, 0xe3530064,
- 0xa2433064, 0xa2811201, 0xaafffffb, 0xe353000a,
- 0xa243300a, 0xa2811401, 0xaafffffb, 0xe1811a03,
- 0xe1b0f00e, 0xe3530000, 0x1a00000a, 0xe1915002,
- 0x03a0320e, 0x03a00000, 0x01a0f007, 0xe3110102,
- 0x1affff5d, 0xe0922002, 0xe0b11001, 0xe2433001,
- 0x5afffffb, 0xeaffff58, 0xe2000102, 0xe1800603,
- 0xe3800302, 0xe18009a1, 0xe1a01681, 0xe18119a2,
- 0xe1a02682, 0xe3a0320e, 0xe1a0f007, 0x9392ee8e,
- 0x921d5d07, 0x00003fc3, 0xe1915002, 0x01b05a00,
- 0x1200540f, 0x1355040f, 0x0a0000ac, 0xe92c4fd0,
- 0xe3a07000, 0xe3a06000, 0xe1a04a00, 0xe3a05003,
- 0xeb00009a, 0xe1a04001, 0xe3a05008, 0xeb000097,
- 0xe1a04002, 0xe3a05008, 0xeb000094, 0xe1a02007,
- 0xe1b01006, 0xe3a0303e, 0xe2833901, 0x4a000003,
- 0xe0922002, 0xe0b11001, 0xe2433001, 0x5afffffb,
- 0xe3a06000, 0xe3a07000, 0xe1a04200, 0xe3a05004,
- 0xeb000086, 0xe1a09007, 0xeb00000c, 0xe3100101,
- 0x1bfffade, 0x0bfffa88, 0xe24f70a4, 0xe8970d00,
- 0xebfffa85, 0xe8bc4fd0, 0xe2935001, 0xda000090,
- 0xe1b057a5, 0x1a0000a7, 0xe2044007, 0xeafffd46,
- 0xe3590014, 0xd28f8084, 0xd0889209, 0xd8990d80,
- 0xd1b0f00e, 0xe92c400f, 0xe3a01102, 0xe3a02000,
- 0xe3a00901, 0xe2403001, 0xe3590000, 0x0a000011,
- 0xe92c000f, 0xe2833003, 0xe3b0120a, 0x3bfffa6a,
- 0xe1b090a9, 0x3afffffc, 0xe8bc0d80, 0x192c000f,
- 0xebfffa69, 0x0a000007, 0xe8bc0d80, 0xe92c000f,
- 0xe1a00007, 0xe1a01008, 0xe1a0200a, 0xe1a0300b,
- 0xebfffa61, 0xeafffff1, 0xe1a07000, 0xe1a08001,
- 0xe1a0a002, 0xe1a0b003, 0xe8bc400f, 0xe1b0f00e,
- 0x00000000, 0x80000000, 0x00000000, 0x00003fff,
- 0x00000000, 0xa0000000, 0x00000000, 0x00004002,
- 0x00000000, 0xc8000000, 0x00000000, 0x00004005,
- 0x00000000, 0xfa000000, 0x00000000, 0x00004008,
- 0x00000000, 0x9c400000, 0x00000000, 0x0000400c,
- 0x00000000, 0xc3500000, 0x00000000, 0x0000400f,
- 0x00000000, 0xf4240000, 0x00000000, 0x00004012,
- 0x00000000, 0x98968000, 0x00000000, 0x00004016,
- 0x00000000, 0xbebc2000, 0x00000000, 0x00004019,
- 0x00000000, 0xee6b2800, 0x00000000, 0x0000401c,
- 0x00000000, 0x9502f900, 0x00000000, 0x00004020,
- 0x00000000, 0xba43b740, 0x00000000, 0x00004023,
- 0x00000000, 0xe8d4a510, 0x00000000, 0x00004026,
- 0x00000000, 0x9184e72a, 0x00000000, 0x0000402a,
- 0x00000000, 0xb5e620f4, 0x80000000, 0x0000402d,
- 0x00000000, 0xe35fa931, 0xa0000000, 0x00004030,
- 0x00000000, 0x8e1bc9bf, 0x04000000, 0x00004034,
- 0x00000000, 0xb1a2bc2e, 0xc5000000, 0x00004037,
- 0x00000000, 0xde0b6b3a, 0x76400000, 0x0000403a,
- 0x00000000, 0x8ac72304, 0x89e80000, 0x0000403e,
- 0x00000000, 0xad78ebc5, 0xac620000, 0x00004041,
- 0xe0977007, 0xe0a66006, 0xe0978107, 0xe0a6af27,
- 0xe08a6106, 0xe1a07008, 0xe0977e24, 0xe2a66000,
- 0xe1a04204, 0xe2555001, 0x1afffff4, 0xe1b0f00e,
- 0xe1a03280, 0xe1a038a3, 0xe1a026a2, 0xe1822981,
- 0xe1a016a1, 0xe1811980, 0xe3c11102, 0xe2044007,
- 0xeafffcb9, 0xe2144007, 0x13540005, 0x0a000003,
- 0xe2000102, 0xe3540001, 0x0afffda0, 0xeafffdda,
- 0xe2633000, 0xe3530040, 0xaa000008, 0xe2735020,
- 0x42435020, 0x41a02531, 0x51a02332, 0x51822511,
- 0xe1a01331, 0xe3a03000, 0xe2044007, 0xeafffca6,
- 0xe2000102, 0xe3a01000, 0xe3a02000, 0xe1a03e84,
- 0xe3a04008, 0xeafffd7b, 0xe2144007, 0x0a000003,
- 0xe3a00000, 0xe3540003, 0x0afffdae, 0xbafffd71,
- 0xe3a01000, 0xe3b02100, 0xe2e23902, 0xe2000102,
- 0xe1800003, 0xe3540000, 0x13a0320a, 0xe3a04004,
- 0xeafffd6c, 0xeafffffe, 0xe209aa0f, 0xe3190008,
- 0x1a000069, 0xe2095007, 0xe08c5205, 0xe895000f,
- 0xe1b04d23, 0xe28f7000, 0x1afffc87, 0xe1b04883,
- 0x12944802, 0x0a00002b, 0x5a000039, 0xe354083e,
- 0xe20448ff, 0x4a000049, 0xe1a048a4, 0xe2199060,
- 0x1a00000e, 0xe2846002, 0xe1922611, 0xe3a02101,
- 0xe0012432, 0x000220a1, 0xe264401f, 0xe1a01431,
- 0xe3320000, 0x12811001, 0xe3100102, 0x12611000,
- 0xe0312000, 0x4a000049, 0xe78d152a, 0xeafff805,
- 0xe3590060, 0x1a000005, 0xe264401f, 0xe1a01431,
- 0xe3100102, 0x12611000, 0xe78d152a, 0xeafff7fd,
- 0xe0307d09, 0x5afffff7, 0xe2846001, 0xe1922611,
- 0x0afffff4, 0xe264401f, 0xe1a01431, 0xe2811001,
- 0xe3100102, 0x12611000, 0xe0312000, 0x4a000033,
- 0xe78d152a, 0xeafff7ef, 0xe31300ff, 0x1a000003,
- 0xe1921001, 0x1a000006, 0xe78d152a, 0xeafff7e9,
- 0xe1921001, 0x0a000029, 0xe28f70bc, 0xe3a04001,
- 0xeafffd28, 0xe02970a9, 0xe3170020, 0x0a000010,
- 0xea000003, 0xe2199060, 0x0a000008, 0xe3590060,
- 0x0a00000b, 0xe0307d09, 0x5a000009, 0xe3a01001,
- 0xe3100102, 0x12611000, 0xe78d152a, 0xeafff7d5,
- 0xe2947802, 0x5a000002, 0xe3510102, 0x03520000,
- 0x8afffff5, 0xe3a01000, 0xe78d152a, 0xea000016,
- 0xe354083e, 0x03510102, 0xe2000102, 0x03500102,
- 0x1a00000a, 0xe3520000, 0x0affffae, 0xe2199060,
- 0x0a000004, 0xe3590060, 0x0affffaa, 0xe0307d09,
- 0x5affffa8, 0xea000001, 0xe3520102, 0x9affffa5,
- 0xe28f7014, 0xe3a04001, 0xeafffcfe, 0xe2091007,
- 0xe3510006, 0xaa000001, 0xe78d152a, 0xeafff7b5,
- 0xe2811003, 0xe351000a, 0x13a01001, 0xe2099060,
- 0x13590020, 0x1affffde, 0xe78d152a, 0xeafff7ad,
- 0xe3190080, 0x1a000034, 0xe2097a0f, 0xe79d8527,
- 0xe209b807, 0xe08cb62b, 0xe1b07008, 0x42688000,
- 0xe3a0a09e, 0xe28aadfe, 0x03a0a01f, 0xe1b0c828,
- 0x01a08808, 0x024aa010, 0xe1b0cc28, 0x01a08408,
- 0x024aa008, 0xe1b0ce28, 0x01a08208, 0x024aa004,
- 0xe1b0cf28, 0x01a08108, 0x024aa002, 0xe1b0cfa8,
- 0x01a08088, 0x024aa001, 0xe1b0cc08, 0x1a000002,
- 0xe3a09000, 0xe88b0780, 0xeafff79d, 0xe2199060,
- 0x1a000008, 0xe1b0c08c, 0xe208c080, 0x000cc0a8,
- 0xe098800c, 0xe2aaa000, 0x23a08102, 0xe3c880ff,
- 0xe88b0780, 0xeafff792, 0xe2399060, 0x0afffffa,
- 0xe027cc89, 0xe20cc102, 0xe0988bac, 0xe2aaa000,
- 0x23a08102, 0xe3a09000, 0xe3c880ff, 0xe88b0780,
- 0xeafff787, 0xe3190080, 0x1afff75f, 0xe2097a0f,
- 0xe79d8527, 0xe209b807, 0xe08cb62b, 0xe1b07008,
- 0x42688000, 0xe3a0a09e, 0xe28aadfe, 0x03a0a01f,
- 0xe1b09828, 0x01a08808, 0x024aa010, 0xe1b09c28,
- 0x01a08408, 0x024aa008, 0xe1b09e28, 0x01a08208,
- 0x024aa004, 0xe1b09f28, 0x01a08108, 0x024aa002,
- 0xe1b09fa8, 0x01a08088, 0x024aa001, 0xe3a09000,
- 0xe88b0780, 0xeafff76a, 0xe2097a0f, 0xe79da527,
- 0xe3ca801f, 0xe3d8881f, 0x1a000002, 0xe38aa000,
- 0xe58ca080, 0xeafff762, 0xe24f700c, 0xe3a04001,
- 0xeafffc94, 0xe2097a0f, 0xe59ca080, 0xe78da527,
- 0xeafff74c, 0xe1b08e09, 0x4a000037, 0xe08c8c28,
- 0xe898000f, 0xe1b04d23, 0xe28f7000, 0x1afffbae,
- 0xe2097807, 0xe1a0b003, 0xe1a0a002, 0xe0208509,
- 0xe1a09001, 0xe08cc627, 0xe89c000f, 0xe1b04d23,
- 0xe28f7000, 0x1afffba4, 0x188c000f, 0xe3a04803,
- 0xe0945883, 0x3094588b, 0x2a000015, 0xe0305008,
- 0x4a000009, 0xe153000b, 0x01510009, 0x0152000a,
- 0xe10f7000, 0xe2077206, 0x33877102, 0x13100102,
- 0x1227720a, 0xe168f007, 0xeafff72a, 0xe19b4003,
- 0x019a4002, 0x01994001, 0x0a000003, 0xe3100102,
- 0x1368f102, 0x0368f202, 0xeafff722, 0xe368f206,
- 0xeafff720, 0xe0945883, 0x3a000001, 0xe1915002,
- 0x1a000003, 0xe094588b, 0x3affffe3, 0xe199500a,
- 0x0affffe1, 0xe368f201, 0xe24fc0c0, 0xe24ccc24,
- 0xe24f7038, 0xe3a04001, 0xeafffc56, 0xe2097807,
- 0xe2095602, 0xe24f6074, 0xe0866c28, 0xe8960f00,
- 0xe0288505, 0xeaffffca, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x80000000,
- 0x00000000, 0x00003fff, 0x00000000, 0x80000000,
- 0x00000000, 0x00004000, 0x00000000, 0xc0000000,
- 0x00000000, 0x00004000, 0x00000000, 0x80000000,
- 0x00000000, 0x00004001, 0x00000000, 0xa0000000,
- 0x00000000, 0x00004001, 0x00000000, 0x80000000,
- 0x00000000, 0x00003ffe, 0x00000000, 0xa0000000,
- 0x00000000, 0x00004002, 0xe2097807, 0xe2095602,
- 0xe24f6e11, 0xe0866c28, 0xe8960f00, 0xe0288505,
- 0xea00000b, 0xe1b08e09, 0x4afffff6, 0xe08c8c28,
- 0xe898000f, 0xe1b04d23, 0xe28f7000, 0x1afffb46,
- 0xe2097807, 0xe1a0b003, 0xe1a0a002, 0xe0208509,
- 0xe1a09001, 0xe08cc627, 0xe89c000f, 0xe1b04d23,
- 0xe28f7000, 0x1afffb3c, 0x188c000f, 0xe3a04803,
- 0xe0945883, 0x3094588b, 0x2a00000b, 0xe0305008,
- 0x4affffa1, 0xe153000b, 0x01510009, 0x0152000a,
- 0xe10f7000, 0xe2077206, 0x33877102, 0x13100102,
- 0x1227720a, 0xe168f007, 0xeafff6c2, 0xe0945883,
- 0x3a000001, 0xe1915002, 0x1a000003, 0xe094588b,
- 0x3affffed, 0xe199500a, 0x0affffeb, 0xe368f201,
- 0xeafff6b8, 0xe2099060, 0xe3590020, 0x03a07209,
- 0x0a000006, 0xe3a00000, 0xe08cb42a, 0xe28f708c,
- 0xe2877c05, 0xea0000de, 0xe357020e, 0x0afffff4,
- 0xe24f8c02, 0xe0887c27, 0xe08cb42a, 0xe8970780,
- 0xe88b0780, 0xeafff6b6, 0xe24f8f85, 0xe0887c27,
- 0xe08cb42a, 0xe8970700, 0xe3a07102, 0xe88b0780,
- 0xeafff6af, 0xe24f7e23, 0xe0878c28, 0xe8980d00,
- 0xe3a04000, 0xea0001f3, 0xe24f7f91, 0xe0878c28,
- 0xe8980d00, 0xe3a04000, 0xea0002a5, 0xe3580102,
- 0x0a00040f, 0xe24f7e26, 0xe0878c28, 0xe8980d00,
- 0xea00035f, 0xe3580102, 0x0a00050f, 0xe24f7f9e,
- 0xe0878c28, 0xe8980d00, 0xea000456, 0xe24f7fa3,
- 0xe0876c26, 0xe896000f, 0xea000463, 0xe3580102,
- 0x0a0005b3, 0xe24f7e2a, 0xe0878c28, 0xe8980d00,
- 0xea000546, 0xe24f7fad, 0xe0876c26, 0xe896000f,
- 0xea000549, 0xe24f8fb1, 0xe0888c27, 0xe08cb42a,
- 0xe898000f, 0xe3570209, 0x9a00018e, 0xea000143,
- 0xe24f8e2e, 0xe0888c27, 0xe898000f, 0xea00063a,
- 0xe24f8e2f, 0xe0888c27, 0xe898000f, 0xea0006dd,
- 0xe24f8c03, 0xe0888c27, 0xe898000f, 0xea000790,
- 0xe24f8e31, 0xe0888c27, 0xe898000f, 0xea000858,
- 0xe3570102, 0x13570209, 0x1357020e, 0x1a0008fe,
- 0xe24f8e33, 0xe0888c27, 0xe898000f, 0xea000880,
- 0xe24f8d0d, 0xe0888c27, 0xe898000f, 0xea000992,
- 0xe24f7e35, 0xe0876c26, 0xe896000f, 0xea000937,
- 0xe24f7fd7, 0xe0878c28, 0xe8980d00, 0xea0005b6,
- 0xe3190080, 0x1afff638, 0xe1b07e09, 0xe209aa07,
- 0x4affff9e, 0xe08c7c27, 0xe08cb42a, 0xe8970780,
- 0xe88b0780, 0xeafff656, 0xe3190080, 0x1afff62e,
- 0xe1b07e09, 0xe209aa07, 0x4affff9a, 0xe08c7c27,
- 0xe08cb42a, 0xe8970780, 0xe2277102, 0xe88b0780,
- 0xeafff64b, 0xe3190080, 0x1afff623, 0xe1b07e09,
- 0xe209aa07, 0x4affff89, 0xe08c7c27, 0xe08cb42a,
- 0xe8970780, 0xe3c77102, 0xe88b0780, 0xeafff640,
- 0xe1b07e09, 0xe209aa07, 0x4affff80, 0xe08c7c27,
- 0xe08ca42a, 0xe897000f, 0xe2098080, 0xe3888040,
- 0xe1580ba3, 0x21b04183, 0x3a00001d, 0xe88a000f,
- 0xeafff62c, 0xe1b07e09, 0xe209aa07, 0x4affff79,
- 0xe08c7c27, 0xe08ca42a, 0xe897000f, 0xe2200102,
- 0xe2098080, 0xe3888040, 0xe1580ba3, 0x21b04183,
- 0x3a00000f, 0xe88a000f, 0xeafff61e, 0xe1b07e09,
- 0xe209aa07, 0x4affff65, 0xe08c7c27, 0xe08ca42a,
- 0xe897000f, 0xe3c00102, 0xe2098080, 0xe3888040,
- 0xe1580ba3, 0x21b04183, 0x3a000001, 0xe88a000f,
- 0xeafff610, 0xe1a04328, 0xe1844d23, 0xe24f7018,
- 0xe3540019, 0x0a00006b, 0xc3c03102, 0xe3140002,
- 0x1a000034, 0xe1b05883, 0x12955802, 0x0a00001c,
- 0xe2195060, 0x1a00000c, 0xe1925c81, 0xe2012080,
- 0x000220a1, 0xe0911002, 0x23a01102, 0xe2a33000,
- 0xe3a02000, 0xe3c110ff, 0xe2535dfe, 0x9a00001a,
- 0xe35500ff, 0x31a0f007, 0xea000012, 0xe3550060,
- 0x11922c01, 0x10305d05, 0x5afffff4, 0xe2911c01,
- 0x23a01102, 0xe2a33000, 0xe3a02000, 0xe3c110ff,
- 0xe2535dfe, 0x9a00000c, 0xe35500ff, 0x31a0f007,
- 0xea000004, 0xe31300ff, 0x11a0f007, 0xe1922001,
- 0x01a0f007, 0xea00000a, 0xe3a030ff, 0xe3833c7f,
- 0xe3a01000, 0xe3a04004, 0xeafffb1a, 0xe3750017,
- 0xda000003, 0xe2655009, 0xe1a01531, 0xe1a01511,
- 0xe1a0f007, 0xe3a03000, 0xe3a02000, 0xe3a01000,
- 0xe3a04008, 0xeafffb0f, 0xe1b05883, 0x12955802,
- 0x0a000022, 0xe2195060, 0x1a00000f, 0xe1b04b02,
- 0xe2024b01, 0x000440a2, 0xe0922004, 0xe2b11000,
- 0xe2a33000, 0x23a01102, 0xe1a025a2, 0xe1a02582,
- 0xe2535b0f, 0x9a00001a, 0xe2854001, 0xe3540b02,
- 0x31a0f007, 0xe3a02000, 0xeaffffda, 0xe3550060,
- 0x11b04a82, 0x10305d05, 0x5afffff2, 0xe2922b02,
- 0xe2b11000, 0x23a01102, 0xe2a33000, 0xe1a025a2,
- 0xe1a02582, 0xe2535b0f, 0x9a000009, 0xe2854001,
- 0xe3540b02, 0x31a0f007, 0xe3a02000, 0xeaffffc9,
- 0xe31300ff, 0x11a0f007, 0xe1922001, 0x01a0f007,
- 0xeaffffcf, 0xe3750034, 0xdaffffcd, 0xe265500c,
- 0xe2554020, 0x21a02431, 0x31a02532, 0x21a01412,
- 0xe1a02512, 0xe1a0f007, 0xe1a03080, 0xe1b03aa3,
- 0x12834001, 0x13340b02, 0x0a000023, 0xe2833b0f,
- 0xe2195060, 0x1a00000f, 0xe1b04201, 0xe1a01aa1,
- 0xe1811580, 0xe3811102, 0xe2014080, 0x000440a1,
- 0xe0911004, 0x23a01102, 0xe2a33000, 0xe3c110ff,
- 0xe3a02000, 0xe2535dfe, 0x9affffab, 0xe35500ff,
- 0x31a0f007, 0xeaffffa3, 0xe1b04181, 0xe1a01aa1,
- 0xe1811580, 0xe3811102, 0x13550060, 0x10305d05,
- 0x5afffff1, 0xe2911c01, 0x23a01102, 0xe2a33000,
- 0xe3a02000, 0xe3c110ff, 0xe2535dfe, 0x9affff9a,
- 0xe35500ff, 0x31a0f007, 0xeaffff92, 0xe1833203,
- 0xe1912600, 0x01a0f007, 0xe1a02581, 0xe1a01aa1,
- 0xe1811580, 0xe31300ff, 0x11a0f007, 0xeaffff94,
- 0xe3190080, 0x1afff54c, 0xe1b07e09, 0xe209aa07,
- 0x4afffeb0, 0xe08c7c27, 0xe08cb42a, 0xe897000f,
- 0xe1b04d23, 0xe28f7000, 0x1afff9c3, 0xe1a04883,
- 0xe2944802, 0x0a00000b, 0xe92c4000, 0xebfff83c,
- 0xe8bc4000, 0xe28f7014, 0x1afffa96, 0xe1898629,
- 0xe3180080, 0x0affff4e, 0xe3190080, 0x1affff81,
- 0xe88b000f, 0xeafff553, 0xe1928001, 0x0a000003,
- 0xe3811101, 0xe24f701c, 0xe3a04001, 0xeafffa89,
- 0xe3a02000, 0xe24f702c, 0xeaffff66, 0xe3190080,
- 0x1afff529, 0xe1b07e09, 0xe209aa07, 0x4afffec0,
- 0xe08c8c27, 0xe08cb42a, 0xe898000f, 0xe1b04d23,
- 0xe28f7000, 0x1afff9a0, 0x1888000f, 0xe1b04883,
- 0x12944802, 0x0a000063, 0xe3100102, 0x1a000059,
- 0xe2833901, 0xe2433001, 0xe1b030a3, 0xe1a05002,
- 0x32414102, 0x22414101, 0x33a07201, 0x23a07202,
- 0xe3a01102, 0xe0955005, 0xe0b44004, 0xe0216007,
- 0x31540006, 0x20444006, 0x20211087, 0xe1b070e7,
- 0x5afffff7, 0xe1942005, 0x11892629, 0x12122080,
- 0x03a07000, 0x0a000018, 0xe3a02000, 0xe0955005,
- 0xe0b44004, 0xe0a00000, 0xe0226007, 0xe055a006,
- 0xe0d48001, 0x31b000a0, 0x21a0500a, 0x21a04008,
- 0x20222087, 0x20211fa7, 0xe1b070a7, 0x1afffff2,
- 0xe0955005, 0xe0b44004, 0xe0b70007, 0xe0d5a002,
- 0xe0d48001, 0x31b000a0, 0x21a0500a, 0x21a04008,
- 0x22222001, 0x23a07102, 0xe3a00000, 0xe3190702,
- 0x1a000008, 0xe1954004, 0x01944007, 0x13822001,
- 0xe28f7044, 0xe3530000, 0xdaffff29, 0xe3190080,
- 0x0afffef7, 0xeaffff2b, 0xe2196060, 0x1a000015,
- 0xe0977007, 0xe0b55005, 0xe0b44004, 0x2a000002,
- 0xe1540001, 0x01550002, 0x03570101, 0xe2b22000,
- 0xe2b11000, 0xe2a33000, 0x23a01102, 0xe59c5080,
- 0xe3150010, 0x0a000001, 0xe88b000f, 0xeafff4ed,
- 0xe3855010, 0xe58c5080, 0xe3150601, 0x0afffff9,
- 0xe3a00010, 0xea0008b4, 0xe1945005, 0x01955007,
- 0x13560060, 0x0afffff0, 0xe1300c86, 0x4affffee,
- 0xe2922001, 0xeaffffe9, 0xe3a014c5, 0xe3a02000,
- 0xe3a030ff, 0xe1833383, 0xe3811101, 0xe24f705c,
- 0xe3a04001, 0xeafffa13, 0xe3530000, 0x1a000008,
- 0xe1914002, 0x0affffe3, 0xe1b01001, 0x4affff95,
- 0xe0922002, 0xe0b11001, 0xe2433001, 0x5afffffb,
- 0xeaffff90, 0xe1914002, 0x1affffee, 0xe3100102,
- 0x0affffd5, 0xeaffffe7, 0xe3190080, 0x1afff4a6,
- 0xe1b08e09, 0x4afffe1a, 0xe08c8c28, 0xe898000f,
- 0xe1b04d23, 0x0a00000b, 0xe28f7024, 0xe3540008,
- 0x1afff91d, 0xe3a02000, 0xe1a03080, 0xe1b03c23,
- 0x133300ff, 0x11a01400, 0x13811102, 0x12833dfe,
- 0x0afffa4d, 0xe888000f, 0xe1a0b003, 0xe1a0a002,
- 0xe1a08001, 0xe2004102, 0xe2096807, 0xe08c6626,
- 0xe896000f, 0xe1340000, 0x4a0000b6, 0xe1b04d23,
- 0x0a00000b, 0xe28f7024, 0xe3540008, 0x1afff906,
- 0xe3a02000, 0xe1a03080, 0xe1b03c23, 0x133300ff,
- 0x11a01400, 0x13811102, 0x12833dfe, 0x0afffa36,
- 0xe886000f, 0xe3a06802, 0xe0965883, 0x3096588b,
- 0x2a000061, 0xe053400b, 0x4a000046, 0xe2745020,
- 0xda00000e, 0xe092243a, 0x20822518, 0x30922518,
- 0xe0b11438, 0xe1a0851a, 0xe1a0a088, 0x2a000011,
- 0xe3190702, 0x1a00001d, 0xe19aa008, 0x13822001,
- 0xe28f7090, 0xe3190080, 0x0afffe7d, 0xeafffeb1,
- 0xe3540040, 0xc18aa008, 0xc3a08000, 0xaa00000b,
- 0xe2444020, 0xe2645020, 0xe0922438, 0xe2b11000,
- 0xe1a08518, 0xe18aa088, 0xe2a33000, 0x218aa008,
- 0x21a08f82, 0x21a020a2, 0x21822f81, 0x21a01061,
- 0xe3190702, 0x1a000005, 0xe19aa008, 0x13822001,
- 0xe28f7030, 0xe3190080, 0x0afffe65, 0xeafffe99,
- 0xe2197060, 0x1a000014, 0xe19aa088, 0x00088f82,
- 0xe0922fa8, 0xe2b11000, 0xe2a33000, 0x23a01102,
- 0xe0965883, 0x0a00003b, 0xe59c5080, 0xe3150010,
- 0x0a000003, 0xe2099a07, 0xe08c9429, 0xe889000f,
- 0xeafff45c, 0xe3855010, 0xe58c5080, 0xe3150601,
- 0x0afffff7, 0xe3a00010, 0xea000823, 0xe19aa008,
- 0x13570060, 0x0affffef, 0xe1300c87, 0x4affffed,
- 0xe2922001, 0xeaffffe6, 0xe2644000, 0xe1a0300b,
- 0xe1a05001, 0xe1a01008, 0xe1a08005, 0xe1a05002,
- 0xe1a0200a, 0xe1a0a005, 0xe2745020, 0xdaffffbf,
- 0xe092243a, 0x20822518, 0x30922518, 0xe0b11438,
- 0xe1a0851a, 0xe1a0a088, 0x2affffc2, 0xe3190702,
- 0x1affffce, 0xe19aa008, 0x13822001, 0xe24f70ac,
- 0xe3190080, 0x0afffe2e, 0xeafffe62, 0xe0965883,
- 0x1a000001, 0xe1925001, 0x1a000006, 0xe096588b,
- 0x1affffcc, 0xe1a0300b, 0xe1a01008, 0xe1a0200a,
- 0xe1915002, 0x0affffc7, 0xe3811101, 0xe24f70ec,
- 0xe3a04001, 0xeafff963, 0xe3a030ff, 0xe1833383,
- 0xe3a02000, 0xe3a01000, 0xe24f7f42, 0xe3a04004,
- 0xeafff95c, 0xe1b04d23, 0x0a00000b, 0xe28f7024,
- 0xe3540008, 0x1afff87c, 0xe3a02000, 0xe1a03080,
- 0xe1b03c23, 0x133300ff, 0x11a01400, 0x13811102,
- 0x12833dfe, 0x0afff9ac, 0xe886000f, 0xe0200589,
- 0xeaffff73, 0xe3190080, 0x1afff3ef, 0xe1b08e09,
- 0x4afffd68, 0xe08c8c28, 0xe898000f, 0xe1b04d23,
- 0x0a00000b, 0xe28f7024, 0xe3540008, 0x1afff866,
- 0xe3a02000, 0xe1a03080, 0xe1b03c23, 0x133300ff,
- 0x11a01400, 0x13811102, 0x12833dfe, 0x0afff996,
- 0xe888000f, 0xe1a0b003, 0xe1a0a002, 0xe1a08001,
- 0xe2004102, 0xe2096807, 0xe08c6626, 0xe896000f,
- 0xe1340000, 0x4affffd2, 0xe1b04d23, 0x0a00000b,
- 0xe28f7024, 0xe3540008, 0x1afff84f, 0xe3a02000,
- 0xe1a03080, 0xe1b03c23, 0x133300ff, 0x11a01400,
- 0x13811102, 0x12833dfe, 0x0afff97f, 0xe886000f,
- 0xe0200589, 0xe3a06802, 0xe0965883, 0x3096588b,
- 0x2a00006b, 0xe053400b, 0x01510008, 0x0152000a,
- 0x0a000078, 0x3a00004c, 0xe3a07000, 0xe2745020,
- 0xda000015, 0xe057651a, 0xe0d2243a, 0x30422518,
- 0x20522518, 0xe0d11438, 0x5a00001b, 0xe3190702,
- 0x1a000029, 0xe1977006, 0x13822001, 0xe28f70c0,
- 0xe3190080, 0x0afffdc2, 0xeafffdf6, 0x13a06102,
- 0xe3a07001, 0xe198500a, 0x0a000029, 0xe2522001,
- 0xe2d11000, 0x5a00000c, 0xea000011, 0xe3a06000,
- 0xe3540040, 0xaafffff4, 0xe2444020, 0xe2645020,
- 0xe057751a, 0xe0d6643a, 0x30466518, 0x20566518,
- 0xe0d22438, 0xe2d11000, 0x4a000005, 0xe0977007,
- 0xe0b66006, 0xe0b22002, 0xe0b11001, 0xe2433001,
- 0x5afffff9, 0xe3190702, 0x1a000007, 0xe3530000,
- 0xda00004c, 0xe1977006, 0x13822001, 0xe28f7030,
- 0xe3190080, 0x0afffd9e, 0xeafffdd2, 0xe2195060,
- 0x1a00000e, 0xe1977086, 0x00066f82, 0xe0922fa6,
- 0xe2b11000, 0xe2a33000, 0x23a01102, 0xe1b03003,
- 0x4a000042, 0xe59c5080, 0xe3150010, 0x0affff3c,
- 0xe2099a07, 0xe08c9429, 0xe889000f, 0xeafff395,
- 0xe1977006, 0x13550060, 0x0afffff3, 0xe1300c85,
- 0x4afffff1, 0xe2922001, 0xeaffffec, 0xe2644000,
- 0xe2200102, 0xe1a0300b, 0xe1a05001, 0xe1a01008,
- 0xe1a08005, 0xe1a05002, 0xe1a0200a, 0xe1a0a005,
- 0xe3a07000, 0xe2745020, 0xdaffffbf, 0xe057651a,
- 0xe0d2243a, 0x30422518, 0x20522518, 0xe0d11438,
- 0x5affffc5, 0xe3190702, 0x1affffd3, 0xe1977006,
- 0x13822001, 0xe24f7098, 0xe3190080, 0x0afffd6c,
- 0xeafffda0, 0xe0965883, 0x1a000005, 0xe1925001,
- 0x1affff44, 0xe153000b, 0x0198500a, 0x03a014c1,
- 0x0affff40, 0xe096588b, 0x1affffcd, 0xe2200102,
- 0xe1a0300b, 0xe1a01008, 0xe1a0200a, 0xe1915002,
- 0x0affffc7, 0xeaffff37, 0xe3a03000, 0xe3a02000,
- 0xe3a01000, 0xeaffffc2, 0xe3a03000, 0xe3a02000,
- 0xe3a01000, 0xe24f7f42, 0xe3a04008, 0xeafff895,
- 0xe2633000, 0xe2734020, 0x42435020, 0x41a02531,
- 0x51a02332, 0x51822411, 0xe1a01331, 0xe3a03000,
- 0xeaffffb3, 0xe3190080, 0x1afff32f, 0xe1b08e09,
- 0x4afffcad, 0xe08c8c28, 0xe898000f, 0xe1b04d23,
- 0x0a00000b, 0xe28f7024, 0xe3540008, 0x1afff7a6,
- 0xe3a02000, 0xe1a03080, 0xe1b03c23, 0x133300ff,
- 0x11a01400, 0x13811102, 0x12833dfe, 0x0afff8d6,
- 0xe888000f, 0xe2000102, 0xe183b000, 0xe1a0a002,
- 0xe1a08001, 0xe2096807, 0xe08c6626, 0xe896000f,
- 0xe1b04d23, 0x0a00000b, 0xe28f7024, 0xe3540008,
- 0x1afff791, 0xe3a02000, 0xe1a03080, 0xe1b03c23,
- 0x133300ff, 0x11a01400, 0x13811102, 0x12833dfe,
- 0x0afff8c1, 0xe886000f, 0xe020000b, 0xe3cbb102,
- 0xe3a06802, 0xe3530000, 0x135b0000, 0x0a00008c,
- 0xe0965883, 0x3096588b, 0x2afffee7, 0xe3b054ff,
- 0xe0a3300b, 0xe185b425, 0xe043392b, 0xe19a4088,
- 0x11924081, 0x0a000064, 0xe92c4209, 0xe1a04821,
- 0xe1c1500b, 0xe1a06822, 0xe1c2700b, 0xe1c8900b,
- 0xe1a08828, 0xe1cab00b, 0xe1a0a82a, 0xe0030b96,
- 0xe0020b94, 0xe0010994, 0xe0000a97, 0xe0933000,
- 0xe0000a95, 0xe0b22000, 0xe0000895, 0xe0b11000,
- 0x33a0e000, 0x23a0e001, 0xe0000996, 0xe0922000,
- 0xe2b11000, 0xe2aee000, 0xe0000897, 0xe0922000,
- 0xe2b11000, 0xe2aee000, 0xe18ee803, 0xe1a03823,
- 0xe1833802, 0xe1a02822, 0xe1822801, 0xe1a01821,
- 0xe181180e, 0xe3cee0ff, 0xe0000b95, 0xe00b0b97,
- 0xe09eb00b, 0xe0b33000, 0xe0000896, 0xe0b22000,
- 0xe0000894, 0xe0a11000, 0xe0000a94, 0xe00a0a96,
- 0xe09aa003, 0xe0b22000, 0xe2a11000, 0xe0000997,
- 0xe09aa000, 0xe0000995, 0xe0b22000, 0xe2b11000,
- 0xe8bc4209, 0x5a000009, 0xe3190702, 0x1a000017,
- 0xe19bb00a, 0x13822001, 0xe3530000, 0xdaffff79,
- 0xe28f7078, 0xe3190080, 0x0afffccd, 0xeafffd01,
- 0xe09bb00b, 0xe0baa00a, 0xe0b22002, 0xe0b11001,
- 0xe2433001, 0x5afffff9, 0xe3190702, 0x1a000007,
- 0xe3530000, 0xdaffff6b, 0xe19bb00a, 0x13822001,
- 0xe28f7038, 0xe3190080, 0x0afffcbd, 0xeafffcf1,
- 0xe2195060, 0x1a00001c, 0xe19bb08a, 0x000aaf82,
- 0xe0922faa, 0xe2b11000, 0xe2a33000, 0x23a01102,
- 0xe2934001, 0xda00001b, 0xe1b047a4, 0x1afffe91,
- 0xe59c5080, 0xe3150010, 0x0afffe59, 0xe2099a07,
- 0xe08c9429, 0xe889000f, 0xeafff2b2, 0xe19a4088,
- 0x11a0200a, 0x11a01008, 0xe2433001, 0xe3190702,
- 0x1affffee, 0xe3530000, 0xdaffff4a, 0xe24f7044,
- 0xe3190080, 0x0afffc9e, 0xeafffcd2, 0xe19bb00a,
- 0x13550060, 0x0affffe5, 0xe1300c85, 0x4affffe3,
- 0xe2922001, 0xeaffffde, 0xe2633000, 0xe3530040,
- 0xaaffff3c, 0xe2734020, 0x42435020, 0x41a02531,
- 0x51a02332, 0x51822411, 0xe1a01331, 0xe3a03000,
- 0xeaffffda, 0xe3530000, 0x1a000003, 0xe1915002,
- 0x0a00000c, 0xe35b0000, 0x1affff6c, 0xe198500a,
- 0x1affff6a, 0xe0965883, 0x33a03000, 0x33a02000,
- 0x33a01000, 0x3affffcd, 0xe1915002, 0x1afffe59,
- 0xe3a014c2, 0xeafffe57, 0xe096588b, 0x3affffc7,
- 0xe198500a, 0x1afffe48, 0xe1a0300b, 0xeafffff7,
- 0xe3190080, 0x1afff25c, 0xe2096807, 0xe08c6626,
- 0xe896000f, 0xe1b04d23, 0x0a00000b, 0xe28f7024,
- 0xe3540008, 0x1afff6d4, 0xe3a02000, 0xe1a03080,
- 0xe1b03c23, 0x133300ff, 0x11a01400, 0x13811102,
- 0x12833dfe, 0x0afff804, 0xe886000f, 0xe2000102,
- 0xe183b000, 0xe1a0a002, 0xe1a08001, 0xe1b06e09,
- 0x4afffbd1, 0xe08c6c26, 0xe896000f, 0xe1b04d23,
- 0x0a000035, 0xe28f7024, 0xe3540008, 0x1afff6be,
- 0xe3a02000, 0xe1a03080, 0xe1b03c23, 0x133300ff,
- 0x11a01400, 0x13811102, 0x12833dfe, 0x0afff7ee,
- 0xe886000f, 0xea000028, 0xe3190080, 0x1afff232,
- 0xe1b08e09, 0x4afffbb6, 0xe08c8c28, 0xe898000f,
- 0xe1b04d23, 0x0a00000b, 0xe28f7024, 0xe3540008,
- 0x1afff6a9, 0xe3a02000, 0xe1a03080, 0xe1b03c23,
- 0x133300ff, 0x11a01400, 0x13811102, 0x12833dfe,
- 0x0afff7d9, 0xe888000f, 0xe2000102, 0xe183b000,
- 0xe1a0a002, 0xe1a08001, 0xe2096807, 0xe08c6626,
- 0xe896000f, 0xe1b04d23, 0x0a00000b, 0xe28f7024,
- 0xe3540008, 0x1afff694, 0xe3a02000, 0xe1a03080,
- 0xe1b03c23, 0x133300ff, 0x11a01400, 0x13811102,
- 0x12833dfe, 0x0afff7c4, 0xe886000f, 0xe020000b,
- 0xe3cbb102, 0xe1b04883, 0x11b0588b, 0x12944802,
- 0x12955802, 0x0a000082, 0xe043300b, 0xe2833901,
- 0xe2433001, 0xe3a0b000, 0xe052500a, 0xe0d14008,
- 0x23a01003, 0x2a00000c, 0xe1a05002, 0xe1a04001,
- 0xe3a01001, 0xe2433001, 0xe0955005, 0xe0b44004,
- 0xe2abb000, 0xe055700a, 0xe0d46008, 0x31b0b0ab,
- 0x21a05007, 0x21a04006, 0xe0a11001, 0xe0955005,
- 0xe0b44004, 0xe2abb000, 0xe055700a, 0xe0d46008,
- 0x31b0b0ab, 0x21a05007, 0x21a04006, 0xe0a11001,
- 0xe0955005, 0xe0b44004, 0xe2abb000, 0xe055700a,
- 0xe0d46008, 0x31b0b0ab, 0x21a05007, 0x21a04006,
- 0xe0a11001, 0xe0955005, 0xe0b44004, 0xe2abb000,
- 0xe055700a, 0xe0d46008, 0x31b0b0ab, 0x21a05007,
- 0x21a04006, 0xe0b11001, 0x3affffda, 0xe1942005,
- 0x11892629, 0x12122080, 0x0a000025, 0xe3a02001,
- 0xe0955005, 0xe0b44004, 0xe2abb000, 0xe055700a,
- 0xe0d46008, 0x31b0b0ab, 0x21a05007, 0x21a04006,
- 0xe0a22002, 0xe0955005, 0xe0b44004, 0xe2abb000,
- 0xe055700a, 0xe0d46008, 0x31b0b0ab, 0x21a05007,
- 0x21a04006, 0xe0a22002, 0xe0955005, 0xe0b44004,
- 0xe2abb000, 0xe055700a, 0xe0d46008, 0x31b0b0ab,
- 0x21a05007, 0x21a04006, 0xe0a22002, 0xe0955005,
- 0xe0b44004, 0xe2abb000, 0xe055700a, 0xe0d46008,
- 0x31b0b0ab, 0x21a05007, 0x21a04006, 0xe0b22002,
- 0x3affffda, 0xe3190702, 0x1a000007, 0xe1954004,
- 0x13822001, 0xe3530000, 0xdafffe62, 0xe28f7048,
- 0xe3190080, 0x0afffbb6, 0xeafffbea, 0xe2197060,
- 0x1a000014, 0xe0955005, 0xe0b44004, 0x2a000002,
- 0xe1540008, 0x0155000a, 0x011500a2, 0xe2b22000,
- 0xe2b11000, 0xe2a33000, 0x23a01102, 0xe2934001,
- 0xdaffff10, 0xe1b047a4, 0x1afffd86, 0xe59c5080,
- 0xe3150010, 0x0afffd4e, 0xe2099a07, 0xe08c9429,
- 0xe889000f, 0xeafff1a7, 0xe1945005, 0x13570060,
- 0x0afffff1, 0xe1300c87, 0x4affffef, 0xe2922001,
- 0xeaffffea, 0xe1b04883, 0x1a000013, 0xe1915002,
- 0x1a00000d, 0xe1b0588b, 0x0198600a, 0x03a014c3,
- 0x03a030ff, 0x01833383, 0x0afffd6a, 0xe2955802,
- 0x1affffe8, 0xe198600a, 0x0affffe6, 0xe1a01008,
- 0xe1a0200a, 0xe1a0300b, 0xeafffd62, 0xe0922002,
- 0xe0b11001, 0xe2433001, 0x5afffffb, 0xe1b0588b,
- 0x1a000010, 0xe198600a, 0x1a00000a, 0xe2944802,
- 0x1a000001, 0xe1916002, 0x1afffd56, 0xe3a01000,
- 0xe3a02000, 0xe3a030ff, 0xe1833383, 0xe24f70bc,
- 0xe3a04002, 0xeafff6b7, 0xe09aa00a, 0xe0b88008,
- 0xe24bb001, 0x5afffffb, 0xe2956802, 0x12946802,
- 0x1affff50, 0xe2946802, 0x1a000006, 0xe1916002,
- 0x1afffd44, 0xe2956802, 0x1affffbf, 0xe198600a,
- 0x03a01331, 0x0afffd3f, 0xe198600a, 0x0afffe09,
- 0xe1a01008, 0xe1a0200a, 0xe1a0300b, 0xeafffd39,
- 0xe3190080, 0x1afff144, 0xe2096807, 0xe08c6626,
- 0xe896000f, 0xe1b04d23, 0xe28f7000, 0x1afff5be,
- 0x1886000f, 0xe2000102, 0xe183b000, 0xe1a0a002,
- 0xe1a08001, 0xe1b06e09, 0x4afffacd, 0xe08c6c26,
- 0xe896000f, 0xe1b04d23, 0xe28f7000, 0x1afff5b2,
- 0x1886000f, 0xea000014, 0xe3190080, 0x1afff12e,
- 0xe1b08e09, 0x4afffabc, 0xe08c8c28, 0xe898000f,
- 0xe1b04d23, 0xe28f7000, 0x1afff5a7, 0x1888000f,
- 0xe2000102, 0xe183b000, 0xe1a0a002, 0xe1a08001,
- 0xe2096807, 0xe08c6626, 0xe896000f, 0xe1b04d23,
- 0xe28f7000, 0x1afff59c, 0x1886000f, 0xe1a0700b,
- 0xe3cbb102, 0xe1b04883, 0x12944802, 0x11b0588b,
- 0x12955802, 0x0a00004e, 0xe92c4200, 0x5a000035,
- 0xe24b4c3f, 0xe24440fe, 0xe3540010, 0xca00002a,
- 0xe19a5418, 0x1a00002f, 0xe2649020, 0xe1a09938,
- 0xe0000f89, 0xe92c0080, 0xe3a08102, 0xe3a0a000,
- 0xe3a07901, 0xe257b001, 0xe92c0d80, 0x3bfff2b6,
- 0xe1b090a9, 0x3afffffc, 0xe8bc0d80, 0x192c000f,
- 0xebfff2b5, 0xe2834001, 0x0a000009, 0xe3540902,
- 0xaa000010, 0xe8bc0d80, 0xe92c000f, 0xe1a00007,
- 0xe1a01008, 0xe1a0200a, 0xe1a0300b, 0xebfff2aa,
- 0xeaffffee, 0xe8bc0080, 0xe3170102, 0x1bfff2f3,
- 0xe8bc4200, 0xe2934001, 0xdafffe6a, 0xe1b047a4,
- 0x1afffce0, 0xea0000cb, 0xe28cc010, 0xe8bc4280,
- 0xe3170102, 0x1afffda3, 0xeafffcda, 0xe3540040,
- 0x2a000012, 0xe2545020, 0x21b0651a, 0x0a000010,
- 0xe19a6418, 0x0a00000e, 0xe3100102, 0x1a00000e,
- 0xe92c0001, 0xe3a00000, 0xe92c0d80, 0xe3c99601,
- 0xeb0000e1, 0xe8bc0d80, 0xebfff28b, 0xeb000166,
- 0xe8bc4201, 0x0a0000b3, 0xe28f7e2f, 0xeafff629,
- 0x13b05100, 0x33a00000, 0xeafffff0, 0xe8bc4200,
- 0xe3a014c7, 0xe3a02000, 0xe3a030ff, 0xe1833383,
- 0xeafffcb8, 0xe3540000, 0x1a00001e, 0xe3530000,
- 0x0a000002, 0xe1916002, 0x1afffcb2, 0xea000001,
- 0xe1916002, 0x1a000010, 0xe1b0588b, 0x1a000006,
- 0xe198600a, 0x03a01102, 0x03a02000, 0x03a00000,
- 0x03a03901, 0x02433001, 0xea000096, 0xe2955802,
- 0x1a000094, 0xe198600a, 0x0a000092, 0xe1a01008,
- 0xe1a0200a, 0xe1a0300b, 0xeafffc9e, 0xe0922002,
- 0xe0b11001, 0xe2433001, 0x5afffffb, 0xe1b0588b,
- 0x12955802, 0x1affff8f, 0xe35b0000, 0x0a000008,
- 0xe1a01008, 0xe1a0200a, 0xe1a00007, 0xe1a0300b,
- 0xe198600a, 0x1afffc8f, 0xe3100102, 0x13a03000,
- 0xea00007c, 0xe198600a, 0x0affffdd, 0xe09aa00a,
- 0xe0b88008, 0xe24bb001, 0x5afffffb, 0xe92c4200,
- 0xeaffffb4, 0xe3190080, 0x1afff08f, 0xe1b08e09,
- 0x4afffa4e, 0xe08c8c28, 0xe898000f, 0xe1b04d23,
- 0xe28f7000, 0x1afff508, 0x1888000f, 0xe2000102,
- 0xe183b000, 0xe1a0a002, 0xe1a08001, 0xe2096807,
- 0xe08c6626, 0xe896000f, 0xe1b04d23, 0xe28f7000,
- 0x1afff4fd, 0x1886000f, 0xe1a0700b, 0xe3cbb102,
- 0xe1b04883, 0x12944802, 0x11b0588b, 0x12955802,
- 0x0a00000a, 0xe92c400f, 0xe92c0d80, 0xebfff27f,
- 0xebfff36f, 0xe8bc0d80, 0xebfff227, 0xe2200102,
- 0xe8bc0d80, 0xebfff178, 0xe8bc4000, 0xea00004d,
- 0xe1b04883, 0x1a000010, 0xe1915002, 0x1a00000a,
- 0xe1b0588b, 0x0198600a, 0x0a000013, 0xe2955802,
- 0x1a000015, 0xe198600a, 0x0a000013, 0xe1a01008,
- 0xe1a0200a, 0xe1a0300b, 0xeafffc4e, 0xe0922002,
- 0xe0b11001, 0xe2433001, 0x5afffffb, 0xe1b0588b,
- 0x1a000012, 0xe198600a, 0x1a00000c, 0xe2944802,
- 0x1a000001, 0xe1916002, 0x1afffc42, 0xe3a01333,
- 0xe3b02100, 0xe2e23902, 0xeafffc3e, 0xe3a00000,
- 0xe3a01000, 0xe3a02000, 0xe3a03000, 0xea000029,
- 0xe09aa00a, 0xe0b88008, 0xe24bb001, 0x5afffffb,
- 0xe2956802, 0x12946802, 0x1affffc9, 0xe2946802,
- 0x1a000008, 0xe1916002, 0x1afffc2e, 0x03a01333,
- 0xe2956802, 0x1afffc2b, 0xe198600a, 0x11a01008,
- 0x11a0200a, 0xeafffc27, 0xe198600a, 0x0a000015,
- 0xe1a01008, 0xe1a0200a, 0xe1a0300b, 0xeafffc21,
- 0xe3190080, 0x1afff02c, 0xe1b07e09, 0x4afff9cb,
- 0xe08c8c27, 0xe898000f, 0xe1b04d23, 0xe28f7000,
- 0x1afff4a5, 0x1888000f, 0xe1b04883, 0x12944802,
- 0x0a00001d, 0xe3100102, 0x1a000016, 0xe92c4000,
- 0xeb000029, 0xe8bc4000, 0xe3190702, 0x1a000005,
- 0xe28f7018, 0xe3530000, 0xdafffa5d, 0xe3190080,
- 0x0afffa2b, 0xeafffa5f, 0xe3530000, 0xba000006,
- 0xe59c5080, 0xe3150010, 0x0afffbd1, 0xe2099a07,
- 0xe08c9429, 0xe889000f, 0xeafff02a, 0xe3730040,
- 0xcafffcce, 0xeafffa4e, 0xe3a014c6, 0xe3a02000,
- 0xe3a030ff, 0xe1833383, 0xeafffbf6, 0xe3530000,
- 0x1a000008, 0xe1914002, 0x0afffff6, 0xe1b01001,
- 0x4affffdb, 0xe0922002, 0xe0b11001, 0xe2433001,
- 0x5afffffb, 0xeaffffd6, 0xe1914002, 0x1afffbe9,
- 0xe3100102, 0x0affffe1, 0xeaffffea, 0xe28f4f52,
- 0xe8940500, 0xe1510008, 0x0152000a, 0xe1a0a0a2,
- 0xe18aaf81, 0xe1a080a1, 0xe3888102, 0xe3a0b0fe,
- 0xe18bb30b, 0xe043400b, 0x92444001, 0xe92c4210,
- 0xe1a0300b, 0x8a000005, 0xe3c88101, 0xe0922002,
- 0xe0b11001, 0xe2433001, 0x5a000003, 0xea000008,
- 0xe3a00102, 0xe2722000, 0xe2f11000, 0x03520000,
- 0x0a000035, 0xe0922002, 0xe0b11001, 0xe2433001,
- 0x5afffff9, 0xe3a07000, 0xebfff1e0, 0xe92c000f,
- 0xebfff185, 0xe92c000f, 0xe28f90c4, 0xe8b90d00,
- 0xebfff125, 0xe89c0d80, 0xebfff183, 0xe8b90d00,
- 0xebfff0d8, 0xe89c0d80, 0xebfff17f, 0xe8b90d00,
- 0xebfff11d, 0xe89c0d80, 0xe92c000f, 0xe3a00102,
- 0xe8b9000e, 0xebfff178, 0xe8b90d00, 0xebfff0cd,
- 0xe28c4010, 0xe8940d80, 0xebfff173, 0xe8b90d00,
- 0xebfff111, 0xe8bc0d80, 0xebfff1c4, 0xe8bc0d80,
- 0xebfff16d, 0xe89c0d80, 0xebfff16b, 0xe8bc0d80,
- 0xebfff0bd, 0xe8bc0010, 0xebfff25e, 0xe92c000f,
- 0xe3a00000, 0xe8b9000e, 0xebfff163, 0xe8bc0d80,
- 0xebfff0b5, 0xe8bc0200, 0xe3190601, 0xe28f7074,
- 0x18970d00, 0x1bfff15c, 0xe8bc8000, 0xe3a00000,
- 0xe3a03000, 0xe28f9050, 0xeaffffed, 0xb504f333,
- 0xf9de6484, 0x8eac025b, 0x3e7076bb, 0x00004004,
- 0x9c041fd0, 0xa933ef60, 0x00004007, 0xc05ff4e0,
- 0x6c83bb96, 0x00004008, 0xca20ad9a, 0xb5e946e9,
- 0x00003ffe, 0x83125100, 0xb57f6509, 0x00004003,
- 0x803ff895, 0x9dacd228, 0x00004005, 0xb17217f7,
- 0xd1cf79ac, 0x00003ffe, 0xde5bd8a9, 0x37287195,
- 0x00003ffd, 0xe3190080, 0x1affef83, 0xe1b07e09,
- 0x4afff926, 0xe08c8c27, 0xe898000f, 0xe1b04d23,
- 0xe28f7000, 0x1afff3fc, 0x1888000f, 0xe1a04883,
- 0xe2944802, 0x0a000005, 0xe92c4000, 0xeb00000a,
- 0xe8bc4000, 0x0affff57, 0xe24f7d0a, 0xeafff4cd,
- 0xe1914002, 0x1afffb63, 0xe3100102, 0x0affff5b,
- 0xe3a00000, 0xe3a03000, 0xeaffff58, 0xe28f4f6e,
- 0xe3100102, 0x128f4f72, 0xe8b40d00, 0xe153000b,
- 0x01510008, 0x0152000a, 0x8a00005d, 0xe8940d00,
- 0xe153000b, 0x01510008, 0x0152000a, 0x3a000052,
- 0xe92c421f, 0xe28f9e1b, 0xe3a07000, 0xe8b90d00,
- 0xebfff111, 0xebfff238, 0xe3170102, 0x12644000,
- 0xe58c4010, 0xe92c0d80, 0xe3a00000, 0xe8b9000e,
- 0xebfff109, 0xe8bc0d80, 0xe92c000f, 0xe8b9000e,
- 0xe3a00102, 0xebfff104, 0xe92c000f, 0xe28c4020,
- 0xe894000f, 0xebfff20c, 0xe3170102, 0x0bfff09e,
- 0x1bfff054, 0xe1a0400c, 0xe92c000f, 0xe894000f,
- 0xebfff04d, 0xe8bc0d80, 0xebfff04b, 0xe28cc010,
- 0xe8bc0d80, 0xebfff048, 0xe88c000f, 0xebfff0ee,
- 0xe92c000f, 0xe3a07000, 0xe8b90d00, 0xebfff0ee,
- 0xe8b90d00, 0xebfff043, 0xe89c0d80, 0xebfff0ea,
- 0xe8b90d00, 0xebfff03f, 0xe89c0d80, 0xebfff0e6,
- 0xe8b90d00, 0xebfff03b, 0xe89c0d80, 0xe92c000f,
- 0xe3a00000, 0xe8b9000e, 0xebfff0df, 0xe8b90d00,
- 0xebfff034, 0xe28c7010, 0xe8970d80, 0xebfff0da,
- 0xe8b90d00, 0xebfff02f, 0xe28c7020, 0xe8970d80,
- 0xebfff0d5, 0xe8bc0d80, 0xe92c000f, 0xe2200102,
- 0xebfff025, 0xe1a07000, 0xe1a08001, 0xe1a0a002,
- 0xe1a0b003, 0xe8bc000f, 0xebfff120, 0xe8b90d00,
- 0xebfff020, 0xe28cc020, 0xe8bc4210, 0xe2844001,
- 0xe0833004, 0xe3b04000, 0xe1a0f00e, 0xe3b00000,
- 0xe3a01102, 0xe3a02000, 0xe3a03901, 0xe2433001,
- 0xe1a0f00e, 0xe3100102, 0xe3a00000, 0xe3a01000,
- 0xe3a02000, 0x13a03000, 0x13a04008, 0x03a030ff,
- 0x01833383, 0x03b04004, 0xe1a0f00e, 0xb17217f7,
- 0xd1cf79ab, 0x0000400c, 0x80000000, 0x00000000,
- 0x00003fbe, 0xb21dfe7f, 0x09e2baa9, 0x0000400c,
- 0x80000000, 0x00000000, 0x00003fbe, 0xb8aa3b29,
- 0x5c17f0bc, 0x00003fff, 0xde8082e3, 0x08654362,
- 0x00003ff2, 0xb1800000, 0x00000000, 0x00003ffe,
- 0xc99b1867, 0x2822a93e, 0x00003fea, 0xa57862e1,
- 0x46a6fb39, 0x00003ff4, 0xe8b9428e, 0xfecff592,
- 0x00003ffa, 0x80000000, 0x00000000, 0x00003ffe,
- 0x845a2157, 0x3490f106, 0x00003ff0, 0xf83a5f91,
- 0x50952c99, 0x00003ff7, 0x80000000, 0x00000000,
- 0x00003ffd, 0x80000000, 0x00000000, 0x00003ffe,
- 0xe3190080, 0x1affeecc, 0xe1b07e09, 0x4afff873,
- 0xe08c8c27, 0xe898000f, 0xe1b04d23, 0xe28f7000,
- 0x1afff345, 0x1888000f, 0xe1a04883, 0xe2944802,
- 0x0a000006, 0xe92c4000, 0xeb000007, 0xe8bc4000,
- 0x0afffea0, 0xe24f705c, 0xe2477c05, 0xeafff415,
- 0xe1914002, 0x03a01332, 0xeafffaaa, 0xe28f4f8f,
- 0xe8b40d00, 0xe153000b, 0x01510008, 0x0152000a,
- 0x8a00006c, 0xe1b01001, 0x5a000063, 0xe92c421f,
- 0xe3190601, 0xe28f9e22, 0xe3a07000, 0xe8b90d00,
- 0xebfff061, 0xebfff188, 0x1b00006d, 0xe58c4010,
- 0xe92c0d80, 0xe3a00000, 0xe8b9000e, 0xebfff05a,
- 0xe8bc0d80, 0xe92c000f, 0xe8b9000e, 0xe3a00102,
- 0xebfff055, 0xe92c000f, 0xe28c4020, 0xe894000f,
- 0xebfff15d, 0xe3170102, 0x0bffefef, 0x1bffefa5,
- 0xe1a0400c, 0xe92c000f, 0xe894000f, 0xebffef9e,
- 0xe8bc0d80, 0xebffef9c, 0xe28cc010, 0xe8bc0d80,
- 0xebffef99, 0xe3a04c3f, 0xe38440df, 0xe1530004,
- 0xba000037, 0xe88c000f, 0xebfff03b, 0xe92c000f,
- 0xe3a07000, 0xe8b90d00, 0xebfff03b, 0xe8b90d00,
- 0xebffefd9, 0xe89c0d80, 0xebfff037, 0xe8b90d00,
- 0xebffef8c, 0xe89c0d80, 0xebfff033, 0xe8b90d00,
- 0xebffefd1, 0xe89c0d80, 0xebfff02f, 0xe8b90d00,
- 0xebffef84, 0xe89c0d80, 0xe92c000f, 0xe3a00102,
- 0xe8b9000e, 0xebfff028, 0xe8b90d00, 0xebffef7d,
- 0xe28c7010, 0xe8970d80, 0xebfff023, 0xe8b90d00,
- 0xebffefc1, 0xe28c7010, 0xe8970d80, 0xebfff01e,
- 0xe28c7020, 0xe8970d80, 0xebfff01b, 0xe28c7020,
- 0xe8970d80, 0xebffef6c, 0xe8bc0d80, 0xe28cc020,
- 0xe8bc0010, 0xe3140001, 0x12200102, 0x1bfff1a7,
- 0xe29b4902, 0x4a000018, 0xe35b0000, 0x0198400a,
- 0x0a000015, 0xebfff061, 0xe8bc4200, 0xe3b04000,
- 0xe1a0f00e, 0xe24cc010, 0xe3a07000, 0xe3a08102,
- 0xe3b0a100, 0xe2eab901, 0xeaffffeb, 0xe1914002,
- 0x0affff99, 0xe2433001, 0xe0922002, 0xe0b11001,
- 0x5afffffb, 0xeaffff94, 0xe3a01332, 0xe3b02100,
- 0xe2f23902, 0xe3a04001, 0xe1a0f00e, 0xe3a01000,
- 0xe3b02100, 0xe2f33902, 0xe3a04004, 0xe8bc4200,
- 0xe1a0f00e, 0xe2844001, 0xe35b0000, 0x03a08102,
- 0xe3a06901, 0x0246b002, 0x01a0f00e, 0xe2466002,
- 0xe04b6006, 0xe3a05102, 0xe153000b, 0x01510008,
- 0x0152000a, 0x20888635, 0x21a0f00e, 0xe0588635,
- 0x51a08088, 0x524bb001, 0xe2444001, 0xe1a0f00e,
- 0xc90fdaa2, 0x00000000, 0x0000401d, 0xa2f9836e,
- 0x4e44152a, 0x00003ffe, 0x95777a5c, 0xf72cece6,
- 0x00003fed, 0xc9100000, 0x00000000, 0x00003fff,
- 0x85bba783, 0xb3c748a9, 0x00003fea, 0xa37b24c8,
- 0x4a42092e, 0x00003ff3, 0xd23cf50b, 0xf10aca84,
- 0x00003ff9, 0xeef5823f, 0xdecea969, 0x00003ffd,
- 0x80000000, 0x00000000, 0x00003fff, 0x95d5b975,
- 0x16391da8, 0x00003fef, 0xe0741531, 0xdd56f650,
- 0x00003ff6, 0x8895af2a, 0x6847fcd5, 0x00003ffc,
- 0xe3190080, 0x1affee00, 0xe1b07e09, 0x4afff7ab,
- 0xe08c8c27, 0xe898000f, 0xe1b04d23, 0xe28f7000,
- 0x1afff279, 0x1888000f, 0xe1a04883, 0xe2944802,
- 0x0a000015, 0xe1c00589, 0xe92c4000, 0xe1914002,
- 0x12433001, 0xebffff38, 0x1a000012, 0xe92c000f,
- 0xebffefa1, 0xe3a08102, 0xe3b0a100, 0xe2eab901,
- 0xebffeef8, 0xe1a07000, 0xe1a08001, 0xe1a0a002,
- 0xe1a0b003, 0xe8bc000f, 0xebffeff0, 0xe1914002,
- 0x12833001, 0xe8bc4000, 0xeafffdc2, 0xe1914002,
- 0x03a014c9, 0xeafff9cf, 0xe8bc4000, 0xe3540004,
- 0x03a03000, 0x03a00000, 0x0afffdba, 0xe3a014c9,
- 0xe3b02100, 0xe2e23902, 0xeafff9c6, 0xe3190080,
- 0x1affedd1, 0xe1b07e09, 0x4afff780, 0xe08c8c27,
- 0xe898000f, 0xe1b04d23, 0xe28f7000, 0x1afff24a,
- 0x1888000f, 0xe1b04883, 0x0a00006b, 0x52944802,
- 0x4a000072, 0xe92c4201, 0xe3a00000, 0xe3a05901,
- 0xe2455002, 0xe1530005, 0xaa000009, 0xe2094501,
- 0xe92c0010, 0xe3a04901, 0xe2444021, 0xe1530004,
- 0xba000049, 0xe92c000f, 0xebffef6b, 0xe92c000f,
- 0xea000012, 0xe2094501, 0xe2244501, 0xe92c0010,
- 0xe3a00102, 0xe3a08102, 0xe3b0a100, 0xe2eab901,
- 0xebffeebc, 0xe1914002, 0x0a00003b, 0xe2433001,
- 0xe24cc010, 0xe92c000f, 0xebfff01c, 0xe2200102,
- 0xe2833001, 0xe28c4010, 0xe884000f, 0xe89c000f,
- 0xe28f9f59, 0xe8b90d00, 0xebffeef7, 0xe89c0d80,
- 0xebffef55, 0xe8b90d00, 0xebffeeaa, 0xe89c0d80,
- 0xebffef51, 0xe8b90d00, 0xebffeeef, 0xe89c0d80,
- 0xebffef4d, 0xe8b90d00, 0xebffeea2, 0xe89c0d80,
- 0xebffef49, 0xe8b90d00, 0xebffeee7, 0xe89c0d80,
- 0xe92c000f, 0xe3a00102, 0xe8b9000e, 0xebffef42,
- 0xe8b90d00, 0xebffee97, 0xe28c7010, 0xe8970d80,
- 0xebffef3d, 0xe8b90d00, 0xebffeedb, 0xe28c7010,
- 0xe8970d80, 0xebffef38, 0xe8b90d00, 0xebffee8d,
- 0xe28c7010, 0xe8970d80, 0xebffef33, 0xe8b90d00,
- 0xebffeed1, 0xe28c7010, 0xe8970d80, 0xebffef2e,
- 0xe8bc0d80, 0xe28cc010, 0xebffef80, 0xe89c0d80,
- 0xebffef29, 0xe8bc0d80, 0xebffee7b, 0xe8bc0230,
- 0xe3190501, 0x0a000008, 0xe3150102, 0x028f5c01,
- 0x128f5f46, 0xe0855924, 0x02200102, 0xe8950d00,
- 0xebffee74, 0xe8bc4000, 0xeafffd46, 0xe3150102,
- 0xe28f50dc, 0xe0855924, 0xe8950d00, 0xebffee6d,
- 0x12200102, 0xe8bc4000, 0xeafffd3e, 0xe1915002,
- 0x0affff93, 0xe1b01001, 0x4affff91, 0xe2433001,
- 0xe0922002, 0xe0b11001, 0x5afffffb, 0xeaffff8c,
- 0xe2f35901, 0x01925081, 0x0affff89, 0xe2944802,
- 0x1a000001, 0xe1914002, 0x1afff93e, 0xe3a014ca,
- 0xe3b02100, 0xe2e23902, 0xeafff93a, 0xbe974377,
- 0xcc30f9e6, 0x00004003, 0x96f3e4b2, 0xc8e37cbc,
- 0x00004006, 0xbeee77e2, 0xb5423cf3, 0x00004007,
- 0xd0927880, 0xf5c2170b, 0x00004007, 0xa43601f1,
- 0x5c3e6196, 0x00004006, 0xb25dedaf, 0x30f3242c,
- 0x00003ffe, 0xa270bb27, 0x61c93957, 0x00004002,
- 0x9ec1654d, 0x36d4f820, 0x00004004, 0xe4d539b0,
- 0x56a451ad, 0x00004004, 0xdaf2ad41, 0xd05311c4,
- 0x00004003, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0xc90fdaa2, 0x2168c235, 0x00003fff,
- 0xc90fdaa2, 0x2168c235, 0x00004000, 0x00000000,
- 0xc90fdaa2, 0x2168c235, 0x00003fff, 0xe3190080,
- 0x1affed19, 0xe2096807, 0xe08c6626, 0xe896000f,
- 0xe1b04d23, 0xe28f7000, 0x1afff193, 0x1886000f,
- 0xe2000102, 0xe183b000, 0xe1a0a002, 0xe1a08001,
- 0xe1b06e09, 0x4afff6c9, 0xe08c6c26, 0xe896000f,
- 0xe1b04d23, 0xe28f7000, 0x1afff187, 0x1886000f,
- 0xe1a0700b, 0xe3cbb102, 0xe1b04883, 0x12944802,
- 0x11b0588b, 0x12955802, 0x192c4281, 0x1bffef0b,
- 0x1a00004e, 0xe1b04883, 0x1a000010, 0xe1915002,
- 0x1a00000a, 0xe1b0588b, 0x0198600a, 0x0a00001f,
- 0xe2955802, 0x1a000016, 0xe198600a, 0x0a000014,
- 0xe1a01008, 0xe1a0200a, 0xe1a0300b, 0xeafff8e1,
- 0xe0922002, 0xe0b11001, 0xe2433001, 0x5afffffb,
- 0xe1b0588b, 0x1a000019, 0xe198600a, 0x1a000013,
- 0xe2944802, 0x1a000001, 0xe1916002, 0x1afff8d5,
- 0xe1a04000, 0xe1a05007, 0xe28f0fbd, 0xe890000e,
- 0xea00008c, 0xe1a04000, 0xe1a05007, 0xe3a00000,
- 0xe3a01000, 0xe3a02000, 0xe3a03000, 0xea00007d,
- 0xe3a014cb, 0xe3b02100, 0xe2e23902, 0xeafff8c5,
- 0xe09aa00a, 0xe0b88008, 0xe24bb001, 0x5afffffb,
- 0xe2956802, 0x12946802, 0x1affffca, 0xe2946802,
- 0x1a000006, 0xe1916002, 0x1afff8ba, 0xe2956802,
- 0x1affffe2, 0xe198600a, 0x03a014cb, 0x0afff8b5,
- 0xe198600a, 0x0affffe2, 0xe1a01008, 0xe1a0200a,
- 0xe1a0300b, 0xeafff8af, 0xe3190080, 0x1affecba,
- 0xe1b07e09, 0x4afff671, 0xe08c8c27, 0xe898000f,
- 0xe1b04d23, 0xe28f7000, 0x1afff133, 0x1888000f,
- 0xe1b04883, 0x12944802, 0x0a000060, 0xe92c4281,
- 0xe3b00100, 0xe2f34901, 0xdbffeeb0, 0xd3a04002,
- 0xc3a04000, 0xe28f9d06, 0xe8b90d00, 0xe153000b,
- 0x01510008, 0x0152000a, 0xc2844001, 0xe92c0010,
- 0xda00000d, 0xe92c000f, 0xe8990d00, 0xebffedad,
- 0xe8bc0d80, 0xe92c000f, 0xe3a00000, 0xe8b9000e,
- 0xebffee51, 0xe3a08102, 0xe3b0a100, 0xe2eab901,
- 0xebffeded, 0xe8bc0d80, 0xebffeea0, 0xe3a04901,
- 0xe2444021, 0xe1530004, 0xba00002c, 0xe92c000f,
- 0xebffee41, 0xe92c000f, 0xe28f9f49, 0xe8b90d00,
- 0xebffed98, 0xe89c0d80, 0xebffee3f, 0xe8b90d00,
- 0xebffed94, 0xe89c0d80, 0xebffee3b, 0xe8b90d00,
- 0xebffed90, 0xe89c0d80, 0xebffee37, 0xe8b90d00,
- 0xebffed8c, 0xe89c0d80, 0xe92c000f, 0xe3a00102,
- 0xe8b9000e, 0xebffee30, 0xe8b90d00, 0xebffedce,
- 0xe28c7010, 0xe8970d80, 0xebffee2b, 0xe8b90d00,
- 0xebffedc9, 0xe28c7010, 0xe8970d80, 0xebffee26,
- 0xe8b90d00, 0xebffedc4, 0xe28c7010, 0xe8970d80,
- 0xebffee21, 0xe8bc0d80, 0xe28cc010, 0xebffee73,
- 0xe89c0d80, 0xebffee1c, 0xe8bc0d80, 0xebffed6e,
- 0xe28f90dc, 0xe8bc0010, 0xe0200f04, 0xe0899204,
- 0xe8990d00, 0xebffed6b, 0xe8bc4230, 0xe3190601,
- 0x10200004, 0x1afffc3b, 0xe3150102, 0x0a000005,
- 0xe92c4010, 0xe2200102, 0xe24f7d0d, 0xe8970d00,
- 0xebffed60, 0xe8bc4010, 0xe0200004, 0xeafffc31,
- 0xe3530000, 0x0afffc2f, 0xe1914002, 0x1afff83d,
- 0xe28f009c, 0xe890000e, 0xeafffc2a, 0x8930a2f4,
- 0xf66ab18a, 0x00003ffd, 0xddb3d742, 0xc265539e,
- 0x00003fff, 0xf0624f0a, 0x56388310, 0x00004002,
- 0xee505190, 0x6d1eb4e8, 0x00004004, 0xac509020,
- 0x5b6d243b, 0x00004005, 0xa443e5e6, 0x24ad4b90,
- 0x00004004, 0xd66bd6cd, 0x8c3de934, 0x00003ffe,
- 0x87e9fae4, 0x6b531a29, 0x00004002, 0xa40bfdcf,
- 0x15e65691, 0x00004003, 0xdb053288, 0x30e70eb4,
- 0x00004002, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x860a91c1, 0x6b9b2c23, 0x00003ffe,
- 0x00000000, 0xc90fdaa2, 0x2168c235, 0x00003fff,
- 0x00000000, 0x860a91c1, 0x6b9b2c23, 0x00003fff,
- 0xe92d5001, 0xe24fc05c, 0xe24ccc50, 0xe3a00807,
- 0xe58c0080, 0xe8bd9001, 0xe1a00000, 0xe3100001,
- 0x128f0e15, 0x1a00000a, 0xe3100004, 0x128f0f47,
- 0x1a000007, 0xe3100002, 0x128f00e0, 0x1a000004,
- 0xe3100008, 0x128f00a8, 0x1a000001, 0xe28f0070,
- 0xeaffffff, 0xe28f101c, 0xe14fb000, 0xe8bd07f8,
- 0xe8a107f8, 0xe8bd07f8, 0xe24aa004, 0xe8a10ff8,
- 0xe28f1000, 0xef000071, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00002278,
- 0xffffffff, 0x80000204, 0x616f6c46, 0x676e6974,
- 0x696f5020, 0x4520746e, 0x70656378, 0x6e6f6974,
- 0x49203a20, 0x6178656e, 0x52207463, 0x6c757365,
- 0x00000074, 0x80000203, 0x616f6c46, 0x676e6974,
- 0x696f5020, 0x4520746e, 0x70656378, 0x6e6f6974,
- 0x55203a20, 0x7265646e, 0x776f6c66, 0x00000000,
- 0x80000202, 0x616f6c46, 0x676e6974, 0x696f5020,
- 0x4520746e, 0x70656378, 0x6e6f6974, 0x44203a20,
- 0x64697669, 0x79422065, 0x72655a20, 0x0000006f,
- 0x80000201, 0x616f6c46, 0x676e6974, 0x696f5020,
- 0x4520746e, 0x70656378, 0x6e6f6974, 0x4f203a20,
- 0x66726576, 0x00776f6c, 0x80000200, 0x616f6c46,
- 0x676e6974, 0x696f5020, 0x4520746e, 0x70656378,
- 0x6e6f6974, 0x49203a20, 0x6c61766e, 0x4f206469,
- 0x61726570, 0x6e6f6974, 0x00000000, 0xfefefeff, 0
-};
-
-unsigned long fpesize = 0x00005300;
diff --git a/sim/arm/arminit.c b/sim/arm/arminit.c
deleted file mode 100644
index bc5456f..0000000
--- a/sim/arm/arminit.c
+++ /dev/null
@@ -1,355 +0,0 @@
-/* arminit.c -- ARMulator initialization: ARM6 Instruction Emulator.
- Copyright (C) 1994 Advanced RISC Machines Ltd.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 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, see <http://www.gnu.org/licenses/>. */
-
-/* This must come before any other includes. */
-#include "defs.h"
-
-#include <string.h>
-
-#include "armdefs.h"
-#include "armemu.h"
-#include "dbg_rdi.h"
-
-/***************************************************************************\
-* Definitions for the emulator architecture *
-\***************************************************************************/
-
-void ARMul_EmulateInit (void);
-ARMul_State *ARMul_NewState (void);
-void ARMul_Reset (ARMul_State * state);
-ARMword ARMul_DoCycle (ARMul_State * state);
-unsigned ARMul_DoCoPro (ARMul_State * state);
-ARMword ARMul_DoProg (ARMul_State * state);
-ARMword ARMul_DoInstr (ARMul_State * state);
-void ARMul_Abort (ARMul_State * state, ARMword address);
-
-unsigned ARMul_MultTable[32] =
- { 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,
- 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 16
-};
-ARMword ARMul_ImmedTable[4096]; /* immediate DP LHS values */
-char ARMul_BitList[256]; /* number of bits in a byte table */
-
-/* The PC pipeline value depends on whether ARM
- or Thumb instructions are being executed. */
-ARMword isize;
-
-/***************************************************************************\
-* Call this routine once to set up the emulator's tables. *
-\***************************************************************************/
-
-void
-ARMul_EmulateInit (void)
-{
- unsigned long i, j;
-
- for (i = 0; i < 4096; i++)
- { /* the values of 12 bit dp rhs's */
- ARMul_ImmedTable[i] = ROTATER (i & 0xffL, (i >> 7L) & 0x1eL);
- }
-
- for (i = 0; i < 256; ARMul_BitList[i++] = 0); /* how many bits in LSM */
- for (j = 1; j < 256; j <<= 1)
- for (i = 0; i < 256; i++)
- if ((i & j) > 0)
- ARMul_BitList[i]++;
-
- for (i = 0; i < 256; i++)
- ARMul_BitList[i] *= 4; /* you always need 4 times these values */
-
-}
-
-/***************************************************************************\
-* Returns a new instantiation of the ARMulator's state *
-\***************************************************************************/
-
-ARMul_State *
-ARMul_NewState (void)
-{
- ARMul_State *state;
- unsigned i, j;
-
- state = (ARMul_State *) malloc (sizeof (ARMul_State));
- memset (state, 0, sizeof (ARMul_State));
-
- state->Emulate = RUN;
- for (i = 0; i < 16; i++)
- {
- state->Reg[i] = 0;
- for (j = 0; j < 7; j++)
- state->RegBank[j][i] = 0;
- }
- for (i = 0; i < 7; i++)
- state->Spsr[i] = 0;
-
- /* state->Mode = USER26MODE; */
- state->Mode = USER32MODE;
-
- state->CallDebug = FALSE;
- state->Debug = FALSE;
- state->VectorCatch = 0;
- state->Aborted = FALSE;
- state->Reseted = FALSE;
- state->Inted = 3;
- state->LastInted = 3;
-
- state->MemDataPtr = NULL;
- state->MemInPtr = NULL;
- state->MemOutPtr = NULL;
- state->MemSparePtr = NULL;
- state->MemSize = 0;
-
- state->OSptr = NULL;
- state->CommandLine = NULL;
-
- state->CP14R0_CCD = -1;
- state->LastTime = 0;
-
- state->EventSet = 0;
- state->Now = 0;
- state->EventPtr = (struct EventNode **) malloc ((unsigned) EVENTLISTSIZE *
- sizeof (struct EventNode
- *));
- for (i = 0; i < EVENTLISTSIZE; i++)
- *(state->EventPtr + i) = NULL;
-
- state->prog32Sig = HIGH;
- state->data32Sig = HIGH;
-
- state->lateabtSig = LOW;
- state->bigendSig = LOW;
-
- state->is_v4 = LOW;
- state->is_v5 = LOW;
- state->is_v5e = LOW;
- state->is_XScale = LOW;
- state->is_iWMMXt = LOW;
- state->is_v6 = LOW;
-
- ARMul_Reset (state);
-
- return state;
-}
-
-/***************************************************************************\
- Call this routine to set ARMulator to model certain processor properities
-\***************************************************************************/
-
-void
-ARMul_SelectProcessor (ARMul_State * state, unsigned properties)
-{
- if (properties & ARM_Fix26_Prop)
- {
- state->prog32Sig = LOW;
- state->data32Sig = LOW;
- }
- else
- {
- state->prog32Sig = HIGH;
- state->data32Sig = HIGH;
- }
-
- state->lateabtSig = LOW;
-
- state->is_v4 = (properties & (ARM_v4_Prop | ARM_v5_Prop)) ? HIGH : LOW;
- state->is_v5 = (properties & ARM_v5_Prop) ? HIGH : LOW;
- state->is_v5e = (properties & ARM_v5e_Prop) ? HIGH : LOW;
- state->is_XScale = (properties & ARM_XScale_Prop) ? HIGH : LOW;
- state->is_iWMMXt = (properties & ARM_iWMMXt_Prop) ? HIGH : LOW;
- state->is_ep9312 = (properties & ARM_ep9312_Prop) ? HIGH : LOW;
- state->is_v6 = (properties & ARM_v6_Prop) ? HIGH : LOW;
-
- /* Only initialse the coprocessor support once we
- know what kind of chip we are dealing with. */
- ARMul_CoProInit (state);
-}
-
-/***************************************************************************\
-* Call this routine to set up the initial machine state (or perform a RESET *
-\***************************************************************************/
-
-void
-ARMul_Reset (ARMul_State * state)
-{
- state->NextInstr = 0;
-
- if (state->prog32Sig)
- {
- state->Reg[15] = 0;
- state->Cpsr = INTBITS | SVC32MODE;
- state->Mode = SVC32MODE;
- }
- else
- {
- state->Reg[15] = R15INTBITS | SVC26MODE;
- state->Cpsr = INTBITS | SVC26MODE;
- state->Mode = SVC26MODE;
- }
-
- ARMul_CPSRAltered (state);
- state->Bank = SVCBANK;
-
- FLUSHPIPE;
-
- state->EndCondition = 0;
-
- state->Exception = FALSE;
- state->NresetSig = HIGH;
- state->NfiqSig = HIGH;
- state->NirqSig = HIGH;
- state->NtransSig = (state->Mode & 3) ? HIGH : LOW;
- state->abortSig = LOW;
- state->AbortAddr = 1;
-
- state->NumInstrs = 0;
- state->NumNcycles = 0;
- state->NumScycles = 0;
- state->NumIcycles = 0;
- state->NumCcycles = 0;
- state->NumFcycles = 0;
-#ifdef ASIM
- (void) ARMul_MemoryInit ();
- ARMul_OSInit (state);
-#endif
-}
-
-
-/***************************************************************************\
-* Emulate the execution of an entire program. Start the correct emulator *
-* (Emulate26 for a 26 bit ARM and Emulate32 for a 32 bit ARM), return the *
-* address of the last instruction that is executed. *
-\***************************************************************************/
-
-ARMword
-ARMul_DoProg (ARMul_State * state)
-{
- ARMword pc = 0;
-
- state->Emulate = RUN;
- while (state->Emulate != STOP)
- {
- state->Emulate = RUN;
- if (state->prog32Sig && ARMul_MODE32BIT)
- pc = ARMul_Emulate32 (state);
- else
- pc = ARMul_Emulate26 (state);
- }
- return (pc);
-}
-
-/***************************************************************************\
-* Emulate the execution of one instruction. Start the correct emulator *
-* (Emulate26 for a 26 bit ARM and Emulate32 for a 32 bit ARM), return the *
-* address of the instruction that is executed. *
-\***************************************************************************/
-
-ARMword
-ARMul_DoInstr (ARMul_State * state)
-{
- ARMword pc = 0;
-
- state->Emulate = ONCE;
- if (state->prog32Sig && ARMul_MODE32BIT)
- pc = ARMul_Emulate32 (state);
- else
- pc = ARMul_Emulate26 (state);
-
- return (pc);
-}
-
-/***************************************************************************\
-* This routine causes an Abort to occur, including selecting the correct *
-* mode, register bank, and the saving of registers. Call with the *
-* appropriate vector's memory address (0,4,8 ....) *
-\***************************************************************************/
-
-void
-ARMul_Abort (ARMul_State * state, ARMword vector)
-{
- ARMword temp;
- int isize = INSN_SIZE;
- int esize = (TFLAG ? 0 : 4);
- int e2size = (TFLAG ? -4 : 0);
-
- state->Aborted = FALSE;
-
- if (state->prog32Sig)
- if (ARMul_MODE26BIT)
- temp = R15PC;
- else
- temp = state->Reg[15];
- else
- temp = R15PC | ECC | ER15INT | EMODE;
-
- switch (vector)
- {
- case ARMul_ResetV: /* RESET */
- SETABORT (INTBITS, state->prog32Sig ? SVC32MODE : SVC26MODE, 0);
- break;
- case ARMul_UndefinedInstrV: /* Undefined Instruction */
- SETABORT (IBIT, state->prog32Sig ? UNDEF32MODE : SVC26MODE, isize);
- break;
- case ARMul_SWIV: /* Software Interrupt */
- SETABORT (IBIT, state->prog32Sig ? SVC32MODE : SVC26MODE, isize);
- break;
- case ARMul_PrefetchAbortV: /* Prefetch Abort */
- state->AbortAddr = 1;
- SETABORT (IBIT, state->prog32Sig ? ABORT32MODE : SVC26MODE, esize);
- break;
- case ARMul_DataAbortV: /* Data Abort */
- SETABORT (IBIT, state->prog32Sig ? ABORT32MODE : SVC26MODE, e2size);
- break;
- case ARMul_AddrExceptnV: /* Address Exception */
- SETABORT (IBIT, SVC26MODE, isize);
- break;
- case ARMul_IRQV: /* IRQ */
- if ( ! state->is_XScale
- || ! state->CPRead[13] (state, 0, & temp)
- || (temp & ARMul_CP13_R0_IRQ))
- SETABORT (IBIT, state->prog32Sig ? IRQ32MODE : IRQ26MODE, esize);
- break;
- case ARMul_FIQV: /* FIQ */
- if ( ! state->is_XScale
- || ! state->CPRead[13] (state, 0, & temp)
- || (temp & ARMul_CP13_R0_FIQ))
- SETABORT (INTBITS, state->prog32Sig ? FIQ32MODE : FIQ26MODE, esize);
- break;
- }
- if (ARMul_MODE32BIT)
- ARMul_SetR15 (state, vector);
- else
- ARMul_SetR15 (state, R15CCINTMODE | vector);
-
- if (ARMul_ReadWord (state, ARMul_GetPC (state)) == 0)
- {
- /* No vector has been installed. Rather than simulating whatever
- random bits might happen to be at address 0x20 onwards we elect
- to stop. */
- switch (vector)
- {
- case ARMul_ResetV: state->EndCondition = RDIError_Reset; break;
- case ARMul_UndefinedInstrV: state->EndCondition = RDIError_UndefinedInstruction; break;
- case ARMul_SWIV: state->EndCondition = RDIError_SoftwareInterrupt; break;
- case ARMul_PrefetchAbortV: state->EndCondition = RDIError_PrefetchAbort; break;
- case ARMul_DataAbortV: state->EndCondition = RDIError_DataAbort; break;
- case ARMul_AddrExceptnV: state->EndCondition = RDIError_AddressException; break;
- case ARMul_IRQV: state->EndCondition = RDIError_IRQ; break;
- case ARMul_FIQV: state->EndCondition = RDIError_FIQ; break;
- default: break;
- }
- state->Emulate = FALSE;
- }
-}
diff --git a/sim/arm/armos.c b/sim/arm/armos.c
deleted file mode 100644
index 6deb722..0000000
--- a/sim/arm/armos.c
+++ /dev/null
@@ -1,873 +0,0 @@
-/* armos.c -- ARMulator OS interface: ARM6 Instruction Emulator.
- Copyright (C) 1994 Advanced RISC Machines Ltd.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 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, see <http://www.gnu.org/licenses/>. */
-
-/* This file contains a model of Demon, ARM Ltd's Debug Monitor,
- including all the SWI's required to support the C library. The code in
- it is not really for the faint-hearted (especially the abort handling
- code), but it is a complete example. Defining NOOS will disable all the
- fun, and definign VAILDATE will define SWI 1 to enter SVC mode, and SWI
- 0x11 to halt the emulator. */
-
-/* This must come before any other includes. */
-#include "defs.h"
-
-#include "ansidecl.h"
-#include "libiberty.h"
-
-#include <time.h>
-#include <errno.h>
-#include <limits.h>
-#include <string.h>
-#include <unistd.h> /* For SEEK_SET etc. */
-
-#include "armdefs.h"
-#include "armos.h"
-#include "armemu.h"
-
-#ifndef NOOS
-#ifndef VALIDATE
-/* #ifndef ASIM */
-#include "armfpe.h"
-/* #endif */
-#endif
-#endif
-
-/* For RDIError_BreakpointReached. */
-#include "dbg_rdi.h"
-
-#include "sim/callback.h"
-extern host_callback *sim_callback;
-
-extern unsigned ARMul_OSInit (ARMul_State *);
-extern unsigned ARMul_OSHandleSWI (ARMul_State *, ARMword);
-
-#ifndef FOPEN_MAX
-#define FOPEN_MAX 64
-#endif
-#ifndef PATH_MAX
-#define PATH_MAX 1024
-#endif
-
-/* OS private Information. */
-
-struct OSblock
-{
- ARMword ErrorNo;
-};
-
-/* Bit mask of enabled SWI implementations. */
-unsigned int swi_mask = -1;
-
-
-static ARMword softvectorcode[] =
-{
- /* Installed instructions:
- swi tidyexception + event;
- mov lr, pc;
- ldmia fp, {fp, pc};
- swi generateexception + event. */
- 0xef000090, 0xe1a0e00f, 0xe89b8800, 0xef000080, /* Reset */
- 0xef000091, 0xe1a0e00f, 0xe89b8800, 0xef000081, /* Undef */
- 0xef000092, 0xe1a0e00f, 0xe89b8800, 0xef000082, /* SWI */
- 0xef000093, 0xe1a0e00f, 0xe89b8800, 0xef000083, /* Prefetch abort */
- 0xef000094, 0xe1a0e00f, 0xe89b8800, 0xef000084, /* Data abort */
- 0xef000095, 0xe1a0e00f, 0xe89b8800, 0xef000085, /* Address exception */
- 0xef000096, 0xe1a0e00f, 0xe89b8800, 0xef000086, /* IRQ */
- 0xef000097, 0xe1a0e00f, 0xe89b8800, 0xef000087, /* FIQ */
- 0xef000098, 0xe1a0e00f, 0xe89b8800, 0xef000088, /* Error */
- 0xe1a0f00e /* Default handler */
-};
-
-/* Time for the Operating System to initialise itself. */
-
-unsigned
-ARMul_OSInit (ARMul_State * state)
-{
-#ifndef NOOS
-#ifndef VALIDATE
- ARMword instr, i, j;
-
- if (state->OSptr == NULL)
- {
- state->OSptr = (unsigned char *) malloc (sizeof (struct OSblock));
- if (state->OSptr == NULL)
- {
- perror ("OS Memory");
- exit (15);
- }
- }
-
- state->Reg[13] = ADDRSUPERSTACK; /* Set up a stack for the current mode... */
- ARMul_SetReg (state, SVC32MODE, 13, ADDRSUPERSTACK);/* ...and for supervisor mode... */
- ARMul_SetReg (state, ABORT32MODE, 13, ADDRSUPERSTACK);/* ...and for abort 32 mode... */
- ARMul_SetReg (state, UNDEF32MODE, 13, ADDRSUPERSTACK);/* ...and for undef 32 mode... */
- ARMul_SetReg (state, SYSTEMMODE, 13, ADDRSUPERSTACK);/* ...and for system mode. */
- instr = 0xe59ff000 | (ADDRSOFTVECTORS - 8); /* Load pc from soft vector */
-
- for (i = ARMul_ResetV; i <= ARMFIQV; i += 4)
- /* Write hardware vectors. */
- ARMul_WriteWord (state, i, instr);
-
- SWI_vector_installed = 0;
-
- for (i = ARMul_ResetV; i <= ARMFIQV + 4; i += 4)
- {
- ARMul_WriteWord (state, ADDRSOFTVECTORS + i, SOFTVECTORCODE + i * 4);
- ARMul_WriteWord (state, ADDRSOFHANDLERS + 2 * i + 4L,
- SOFTVECTORCODE + sizeof (softvectorcode) - 4L);
- }
-
- for (i = 0; i < sizeof (softvectorcode); i += 4)
- ARMul_WriteWord (state, SOFTVECTORCODE + i, softvectorcode[i / 4]);
-
- ARMul_ConsolePrint (state, ", Demon 1.01");
-
-/* #ifndef ASIM */
-
- /* Install FPE. */
- for (i = 0; i < fpesize; i += 4)
- /* Copy the code. */
- ARMul_WriteWord (state, FPESTART + i, fpecode[i >> 2]);
-
- /* Scan backwards from the end of the code. */
- for (i = FPESTART + fpesize;; i -= 4)
- {
- /* When we reach the marker value, break out of
- the loop, leaving i pointing at the maker. */
- if ((j = ARMul_ReadWord (state, i)) == 0xffffffff)
- break;
-
- /* If necessary, reverse the error strings. */
- if (state->bigendSig && j < 0x80000000)
- {
- /* It's part of the string so swap it. */
- j = ((j >> 0x18) & 0x000000ff) |
- ((j >> 0x08) & 0x0000ff00) |
- ((j << 0x08) & 0x00ff0000) | ((j << 0x18) & 0xff000000);
- ARMul_WriteWord (state, i, j);
- }
- }
-
- /* Copy old illegal instr vector. */
- ARMul_WriteWord (state, FPEOLDVECT, ARMul_ReadWord (state, ARMUndefinedInstrV));
- /* Install new vector. */
- ARMul_WriteWord (state, ARMUndefinedInstrV, FPENEWVECT (ARMul_ReadWord (state, i - 4)));
- ARMul_ConsolePrint (state, ", FPE");
-
-/* #endif ASIM */
-#endif /* VALIDATE */
-#endif /* NOOS */
-
- /* Intel do not want DEMON SWI support. */
- if (state->is_XScale)
- swi_mask = SWI_MASK_ANGEL;
-
- return TRUE;
-}
-
-/* These are libgloss defines, but seem to be common across all supported ARM
- targets at the moment. These should get moved to the callback open_map. */
-#define TARGET_O_BINARY 0
-#define TARGET_O_APPEND 0x8
-#define TARGET_O_CREAT 0x200
-#define TARGET_O_RDONLY 0x0
-#define TARGET_O_RDWR 0x2
-#define TARGET_O_TRUNC 0x400
-#define TARGET_O_WRONLY 0x1
-
-static const int translate_open_mode[] =
-{
- TARGET_O_RDONLY, /* "r" */
- TARGET_O_RDONLY + TARGET_O_BINARY, /* "rb" */
- TARGET_O_RDWR, /* "r+" */
- TARGET_O_RDWR + TARGET_O_BINARY, /* "r+b" */
- TARGET_O_WRONLY + TARGET_O_CREAT + TARGET_O_TRUNC, /* "w" */
- TARGET_O_WRONLY + TARGET_O_BINARY + TARGET_O_CREAT + TARGET_O_TRUNC, /* "wb" */
- TARGET_O_RDWR + TARGET_O_CREAT + TARGET_O_TRUNC, /* "w+" */
- TARGET_O_RDWR + TARGET_O_BINARY + TARGET_O_CREAT + TARGET_O_TRUNC, /* "w+b" */
- TARGET_O_WRONLY + TARGET_O_APPEND + TARGET_O_CREAT, /* "a" */
- TARGET_O_WRONLY + TARGET_O_BINARY + TARGET_O_APPEND + TARGET_O_CREAT, /* "ab" */
- TARGET_O_RDWR + TARGET_O_APPEND + TARGET_O_CREAT, /* "a+" */
- TARGET_O_RDWR + TARGET_O_BINARY + TARGET_O_APPEND + TARGET_O_CREAT /* "a+b" */
-};
-
-static void
-SWIWrite0 (ARMul_State * state, ARMword addr)
-{
- ARMword temp;
- struct OSblock *OSptr = (struct OSblock *) state->OSptr;
-
- while ((temp = ARMul_SafeReadByte (state, addr++)) != 0)
- {
- char buffer = temp;
- /* Note - we cannot just cast 'temp' to a (char *) here,
- since on a big-endian host the byte value will end
- up in the wrong place and a nul character will be printed. */
- (void) sim_callback->write_stdout (sim_callback, & buffer, 1);
- }
-
- OSptr->ErrorNo = sim_callback->get_errno (sim_callback);
-}
-
-static void
-WriteCommandLineTo (ARMul_State * state, ARMword addr)
-{
- ARMword temp;
- char *cptr = state->CommandLine;
-
- if (cptr == NULL)
- cptr = "\0";
- do
- {
- temp = (ARMword) * cptr++;
- ARMul_SafeWriteByte (state, addr++, temp);
- }
- while (temp != 0);
-}
-
-static int
-ReadFileName (ARMul_State * state, char *buf, ARMword src, size_t n)
-{
- struct OSblock *OSptr = (struct OSblock *) state->OSptr;
- char *p = buf;
-
- while (n--)
- if ((*p++ = ARMul_SafeReadByte (state, src++)) == '\0')
- return 0;
- OSptr->ErrorNo = cb_host_to_target_errno (sim_callback, ENAMETOOLONG);
- state->Reg[0] = -1;
- return -1;
-}
-
-static void
-SWIopen (ARMul_State * state, ARMword name, ARMword SWIflags)
-{
- struct OSblock *OSptr = (struct OSblock *) state->OSptr;
- char buf[PATH_MAX];
- int flags;
-
- if (ReadFileName (state, buf, name, sizeof buf) == -1)
- return;
-
- /* Now we need to decode the Demon open mode. */
- if (SWIflags >= ARRAY_SIZE (translate_open_mode))
- flags = 0;
- else
- flags = translate_open_mode[SWIflags];
-
- /* Filename ":tt" is special: it denotes stdin/out. */
- if (strcmp (buf, ":tt") == 0)
- {
- if (flags == TARGET_O_RDONLY) /* opening tty "r" */
- state->Reg[0] = 0; /* stdin */
- else
- state->Reg[0] = 1; /* stdout */
- }
- else
- {
- state->Reg[0] = sim_callback->open (sim_callback, buf, flags);
- OSptr->ErrorNo = sim_callback->get_errno (sim_callback);
- }
-}
-
-static void
-SWIread (ARMul_State * state, ARMword f, ARMword ptr, ARMword len)
-{
- struct OSblock *OSptr = (struct OSblock *) state->OSptr;
- int res;
- int i;
- char *local = malloc (len);
-
- if (local == NULL)
- {
- sim_callback->printf_filtered
- (sim_callback,
- "sim: Unable to read 0x%lx bytes - out of memory\n",
- (long)len);
- return;
- }
-
- res = sim_callback->read (sim_callback, f, local, len);
- if (res > 0)
- for (i = 0; i < res; i++)
- ARMul_SafeWriteByte (state, ptr + i, local[i]);
-
- free (local);
- state->Reg[0] = res == -1 ? -1 : len - res;
- OSptr->ErrorNo = sim_callback->get_errno (sim_callback);
-}
-
-static void
-SWIwrite (ARMul_State * state, ARMword f, ARMword ptr, ARMword len)
-{
- struct OSblock *OSptr = (struct OSblock *) state->OSptr;
- int res;
- ARMword i;
- char *local = malloc (len);
-
- if (local == NULL)
- {
- sim_callback->printf_filtered
- (sim_callback,
- "sim: Unable to write 0x%lx bytes - out of memory\n",
- (long) len);
- return;
- }
-
- for (i = 0; i < len; i++)
- local[i] = ARMul_SafeReadByte (state, ptr + i);
-
- res = sim_callback->write (sim_callback, f, local, len);
- state->Reg[0] = res == -1 ? -1 : len - res;
- free (local);
-
- OSptr->ErrorNo = sim_callback->get_errno (sim_callback);
-}
-
-static void
-SWIflen (ARMul_State * state, ARMword fh)
-{
- struct OSblock *OSptr = (struct OSblock *) state->OSptr;
- ARMword addr;
-
- if (fh > FOPEN_MAX)
- {
- OSptr->ErrorNo = EBADF;
- state->Reg[0] = -1L;
- return;
- }
-
- addr = sim_callback->lseek (sim_callback, fh, 0, SEEK_CUR);
-
- state->Reg[0] = sim_callback->lseek (sim_callback, fh, 0L, SEEK_END);
- (void) sim_callback->lseek (sim_callback, fh, addr, SEEK_SET);
-
- OSptr->ErrorNo = sim_callback->get_errno (sim_callback);
-}
-
-static void
-SWIremove (ARMul_State * state, ARMword path)
-{
- char buf[PATH_MAX];
-
- if (ReadFileName (state, buf, path, sizeof buf) != -1)
- {
- struct OSblock *OSptr = (struct OSblock *) state->OSptr;
- state->Reg[0] = sim_callback->unlink (sim_callback, buf);
- OSptr->ErrorNo = sim_callback->get_errno (sim_callback);
- }
-}
-
-static void
-SWIrename (ARMul_State * state, ARMword old, ARMword new)
-{
- char oldbuf[PATH_MAX], newbuf[PATH_MAX];
-
- if (ReadFileName (state, oldbuf, old, sizeof oldbuf) != -1
- && ReadFileName (state, newbuf, new, sizeof newbuf) != -1)
- {
- struct OSblock *OSptr = (struct OSblock *) state->OSptr;
- state->Reg[0] = sim_callback->rename (sim_callback, oldbuf, newbuf);
- OSptr->ErrorNo = sim_callback->get_errno (sim_callback);
- }
-}
-
-/* The emulator calls this routine when a SWI instruction is encuntered.
- The parameter passed is the SWI number (lower 24 bits of the instruction). */
-
-unsigned
-ARMul_OSHandleSWI (ARMul_State * state, ARMword number)
-{
- struct OSblock * OSptr = (struct OSblock *) state->OSptr;
- int unhandled = FALSE;
-
- switch (number)
- {
- case SWI_Read:
- if (swi_mask & SWI_MASK_DEMON)
- SWIread (state, state->Reg[0], state->Reg[1], state->Reg[2]);
- else
- unhandled = TRUE;
- break;
-
- case SWI_Write:
- if (swi_mask & SWI_MASK_DEMON)
- SWIwrite (state, state->Reg[0], state->Reg[1], state->Reg[2]);
- else
- unhandled = TRUE;
- break;
-
- case SWI_Open:
- if (swi_mask & SWI_MASK_DEMON)
- SWIopen (state, state->Reg[0], state->Reg[1]);
- else
- unhandled = TRUE;
- break;
-
- case SWI_Clock:
- if (swi_mask & SWI_MASK_DEMON)
- {
- /* Return number of centi-seconds. */
- state->Reg[0] =
-#ifdef CLOCKS_PER_SEC
- (CLOCKS_PER_SEC >= 100)
- ? (ARMword) (clock () / (CLOCKS_PER_SEC / 100))
- : (ARMword) ((clock () * 100) / CLOCKS_PER_SEC);
-#else
- /* Presume unix... clock() returns microseconds. */
- (ARMword) (clock () / 10000);
-#endif
- OSptr->ErrorNo = errno;
- }
- else
- unhandled = TRUE;
- break;
-
- case SWI_Time:
- if (swi_mask & SWI_MASK_DEMON)
- {
- state->Reg[0] = (ARMword) sim_callback->time (sim_callback);
- OSptr->ErrorNo = sim_callback->get_errno (sim_callback);
- }
- else
- unhandled = TRUE;
- break;
-
- case SWI_Close:
- if (swi_mask & SWI_MASK_DEMON)
- {
- state->Reg[0] = sim_callback->close (sim_callback, state->Reg[0]);
- OSptr->ErrorNo = sim_callback->get_errno (sim_callback);
- }
- else
- unhandled = TRUE;
- break;
-
- case SWI_Flen:
- if (swi_mask & SWI_MASK_DEMON)
- SWIflen (state, state->Reg[0]);
- else
- unhandled = TRUE;
- break;
-
- case SWI_Exit:
- if (swi_mask & SWI_MASK_DEMON)
- state->Emulate = FALSE;
- else
- unhandled = TRUE;
- break;
-
- case SWI_Seek:
- if (swi_mask & SWI_MASK_DEMON)
- {
- /* We must return non-zero for failure. */
- state->Reg[0] = -1 >= sim_callback->lseek (sim_callback, state->Reg[0], state->Reg[1], SEEK_SET);
- OSptr->ErrorNo = sim_callback->get_errno (sim_callback);
- }
- else
- unhandled = TRUE;
- break;
-
- case SWI_WriteC:
- if (swi_mask & SWI_MASK_DEMON)
- {
- char tmp = state->Reg[0];
- (void) sim_callback->write_stdout (sim_callback, &tmp, 1);
- OSptr->ErrorNo = sim_callback->get_errno (sim_callback);
- }
- else
- unhandled = TRUE;
- break;
-
- case SWI_Write0:
- if (swi_mask & SWI_MASK_DEMON)
- SWIWrite0 (state, state->Reg[0]);
- else
- unhandled = TRUE;
- break;
-
- case SWI_GetErrno:
- if (swi_mask & SWI_MASK_DEMON)
- state->Reg[0] = OSptr->ErrorNo;
- else
- unhandled = TRUE;
- break;
-
- case SWI_GetEnv:
- if (swi_mask & SWI_MASK_DEMON)
- {
- state->Reg[0] = ADDRCMDLINE;
- if (state->MemSize)
- state->Reg[1] = state->MemSize;
- else
- state->Reg[1] = ADDRUSERSTACK;
-
- WriteCommandLineTo (state, state->Reg[0]);
- }
- else
- unhandled = TRUE;
- break;
-
- case SWI_Breakpoint:
- state->EndCondition = RDIError_BreakpointReached;
- state->Emulate = FALSE;
- break;
-
- case SWI_Remove:
- if (swi_mask & SWI_MASK_DEMON)
- SWIremove (state, state->Reg[0]);
- else
- unhandled = TRUE;
- break;
-
- case SWI_Rename:
- if (swi_mask & SWI_MASK_DEMON)
- SWIrename (state, state->Reg[0], state->Reg[1]);
- else
- unhandled = TRUE;
- break;
-
- case SWI_IsTTY:
- if (swi_mask & SWI_MASK_DEMON)
- {
- state->Reg[0] = sim_callback->isatty (sim_callback, state->Reg[0]);
- OSptr->ErrorNo = sim_callback->get_errno (sim_callback);
- }
- else
- unhandled = TRUE;
- break;
-
- /* Handle Angel SWIs as well as Demon ones. */
- case AngelSWI_ARM:
- case AngelSWI_Thumb:
- if (swi_mask & SWI_MASK_ANGEL)
- {
- ARMword addr;
- ARMword temp;
-
- /* R1 is almost always a parameter block. */
- addr = state->Reg[1];
- /* R0 is a reason code. */
- switch (state->Reg[0])
- {
- case -1:
- /* This can happen when a SWI is interrupted (eg receiving a
- ctrl-C whilst processing SWIRead()). The SWI will complete
- returning -1 in r0 to the caller. If GDB is then used to
- resume the system call the reason code will now be -1. */
- return TRUE;
-
- /* Unimplemented reason codes. */
- case AngelSWI_Reason_ReadC:
- case AngelSWI_Reason_TmpNam:
- case AngelSWI_Reason_System:
- case AngelSWI_Reason_EnterSVC:
- default:
- state->Emulate = FALSE;
- return FALSE;
-
- case AngelSWI_Reason_Clock:
- /* Return number of centi-seconds. */
- state->Reg[0] =
-#ifdef CLOCKS_PER_SEC
- (CLOCKS_PER_SEC >= 100)
- ? (ARMword) (clock () / (CLOCKS_PER_SEC / 100))
- : (ARMword) ((clock () * 100) / CLOCKS_PER_SEC);
-#else
- /* Presume unix... clock() returns microseconds. */
- (ARMword) (clock () / 10000);
-#endif
- OSptr->ErrorNo = errno;
- break;
-
- case AngelSWI_Reason_Time:
- state->Reg[0] = (ARMword) sim_callback->time (sim_callback);
- OSptr->ErrorNo = sim_callback->get_errno (sim_callback);
- break;
-
- case AngelSWI_Reason_WriteC:
- {
- char tmp = ARMul_SafeReadByte (state, addr);
- (void) sim_callback->write_stdout (sim_callback, &tmp, 1);
- OSptr->ErrorNo = sim_callback->get_errno (sim_callback);
- break;
- }
-
- case AngelSWI_Reason_Write0:
- SWIWrite0 (state, addr);
- break;
-
- case AngelSWI_Reason_Close:
- state->Reg[0] = sim_callback->close (sim_callback, ARMul_ReadWord (state, addr));
- OSptr->ErrorNo = sim_callback->get_errno (sim_callback);
- break;
-
- case AngelSWI_Reason_Seek:
- state->Reg[0] = -1 >= sim_callback->lseek (sim_callback, ARMul_ReadWord (state, addr),
- ARMul_ReadWord (state, addr + 4),
- SEEK_SET);
- OSptr->ErrorNo = sim_callback->get_errno (sim_callback);
- break;
-
- case AngelSWI_Reason_FLen:
- SWIflen (state, ARMul_ReadWord (state, addr));
- break;
-
- case AngelSWI_Reason_GetCmdLine:
- WriteCommandLineTo (state, ARMul_ReadWord (state, addr));
- break;
-
- case AngelSWI_Reason_HeapInfo:
- /* R1 is a pointer to a pointer. */
- addr = ARMul_ReadWord (state, addr);
-
- /* Pick up the right memory limit. */
- if (state->MemSize)
- temp = state->MemSize;
- else
- temp = ADDRUSERSTACK;
-
- ARMul_WriteWord (state, addr, 0); /* Heap base. */
- ARMul_WriteWord (state, addr + 4, temp); /* Heap limit. */
- ARMul_WriteWord (state, addr + 8, temp); /* Stack base. */
- ARMul_WriteWord (state, addr + 12, temp); /* Stack limit. */
- break;
-
- case AngelSWI_Reason_ReportException:
- if (state->Reg[1] == ADP_Stopped_ApplicationExit)
- state->Reg[0] = 0;
- else
- state->Reg[0] = -1;
- state->Emulate = FALSE;
- break;
-
- case ADP_Stopped_ApplicationExit:
- state->Reg[0] = 0;
- state->Emulate = FALSE;
- break;
-
- case ADP_Stopped_RunTimeError:
- state->Reg[0] = -1;
- state->Emulate = FALSE;
- break;
-
- case AngelSWI_Reason_Errno:
- state->Reg[0] = OSptr->ErrorNo;
- break;
-
- case AngelSWI_Reason_Open:
- SWIopen (state,
- ARMul_ReadWord (state, addr),
- ARMul_ReadWord (state, addr + 4));
- break;
-
- case AngelSWI_Reason_Read:
- SWIread (state,
- ARMul_ReadWord (state, addr),
- ARMul_ReadWord (state, addr + 4),
- ARMul_ReadWord (state, addr + 8));
- break;
-
- case AngelSWI_Reason_Write:
- SWIwrite (state,
- ARMul_ReadWord (state, addr),
- ARMul_ReadWord (state, addr + 4),
- ARMul_ReadWord (state, addr + 8));
- break;
-
- case AngelSWI_Reason_IsTTY:
- state->Reg[0] = sim_callback->isatty (sim_callback,
- ARMul_ReadWord (state, addr));
- OSptr->ErrorNo = sim_callback->get_errno (sim_callback);
- break;
-
- case AngelSWI_Reason_Remove:
- SWIremove (state,
- ARMul_ReadWord (state, addr));
- break;
-
- case AngelSWI_Reason_Rename:
- SWIrename (state,
- ARMul_ReadWord (state, addr),
- ARMul_ReadWord (state, addr + 4));
- break;
- }
- }
- else
- unhandled = TRUE;
- break;
-
- /* The following SWIs are generated by the softvectorcode[]
- installed by default by the simulator. */
- case 0x91: /* Undefined Instruction. */
- {
- ARMword addr = state->RegBank[UNDEFBANK][14] - 4;
-
- sim_callback->printf_filtered
- (sim_callback, "sim: exception: Unhandled Instruction '0x%08x' at 0x%08x. Stopping.\n",
- ARMul_ReadWord (state, addr), addr);
- state->EndCondition = RDIError_SoftwareInterrupt;
- state->Emulate = FALSE;
- return FALSE;
- }
-
- case 0x90: /* Reset. */
- case 0x92: /* SWI. */
- /* These two can be safely ignored. */
- break;
-
- case 0x93: /* Prefetch Abort. */
- case 0x94: /* Data Abort. */
- case 0x95: /* Address Exception. */
- case 0x96: /* IRQ. */
- case 0x97: /* FIQ. */
- case 0x98: /* Error. */
- unhandled = TRUE;
- break;
-
- case -1:
- /* This can happen when a SWI is interrupted (eg receiving a
- ctrl-C whilst processing SWIRead()). The SWI will complete
- returning -1 in r0 to the caller. If GDB is then used to
- resume the system call the reason code will now be -1. */
- return TRUE;
-
- case 0x180001: /* RedBoot's Syscall SWI in ARM mode. */
- if (swi_mask & SWI_MASK_REDBOOT)
- {
- switch (state->Reg[0])
- {
- /* These numbers are defined in libgloss/syscall.h
- but the simulator should not be dependend upon
- libgloss being installed. */
- case 1: /* Exit. */
- state->Emulate = FALSE;
- /* Copy exit code into r0. */
- state->Reg[0] = state->Reg[1];
- break;
-
- case 2: /* Open. */
- SWIopen (state, state->Reg[1], state->Reg[2]);
- break;
-
- case 3: /* Close. */
- state->Reg[0] = sim_callback->close (sim_callback, state->Reg[1]);
- OSptr->ErrorNo = sim_callback->get_errno (sim_callback);
- break;
-
- case 4: /* Read. */
- SWIread (state, state->Reg[1], state->Reg[2], state->Reg[3]);
- break;
-
- case 5: /* Write. */
- SWIwrite (state, state->Reg[1], state->Reg[2], state->Reg[3]);
- break;
-
- case 6: /* Lseek. */
- state->Reg[0] = sim_callback->lseek (sim_callback,
- state->Reg[1],
- state->Reg[2],
- state->Reg[3]);
- OSptr->ErrorNo = sim_callback->get_errno (sim_callback);
- break;
-
- case 17: /* Utime. */
- state->Reg[0] = state->Reg[1] = (ARMword) sim_callback->time (sim_callback);
- OSptr->ErrorNo = sim_callback->get_errno (sim_callback);
- break;
-
- case 7: /* Unlink. */
- case 8: /* Getpid. */
- case 9: /* Kill. */
- case 10: /* Fstat. */
- case 11: /* Sbrk. */
- case 12: /* Argvlen. */
- case 13: /* Argv. */
- case 14: /* ChDir. */
- case 15: /* Stat. */
- case 16: /* Chmod. */
- case 18: /* Time. */
- sim_callback->printf_filtered
- (sim_callback,
- "sim: unhandled RedBoot syscall `%d' encountered - "
- "returning ENOSYS\n",
- state->Reg[0]);
- state->Reg[0] = -1;
- OSptr->ErrorNo = cb_host_to_target_errno
- (sim_callback, ENOSYS);
- break;
- case 1001: /* Meminfo. */
- {
- ARMword totmem = state->Reg[1],
- topmem = state->Reg[2];
- ARMword stack = state->MemSize > 0
- ? state->MemSize : ADDRUSERSTACK;
- if (totmem != 0)
- ARMul_WriteWord (state, totmem, stack);
- if (topmem != 0)
- ARMul_WriteWord (state, topmem, stack);
- state->Reg[0] = 0;
- break;
- }
-
- default:
- sim_callback->printf_filtered
- (sim_callback,
- "sim: unknown RedBoot syscall '%d' encountered - ignoring\n",
- state->Reg[0]);
- return FALSE;
- }
- break;
- }
- ATTRIBUTE_FALLTHROUGH;
-
- default:
- unhandled = TRUE;
- }
-
- if (unhandled)
- {
- if (SWI_vector_installed)
- {
- ARMword cpsr;
- ARMword i_size;
-
- cpsr = ARMul_GetCPSR (state);
- i_size = INSN_SIZE;
-
- ARMul_SetSPSR (state, SVC32MODE, cpsr);
-
- cpsr &= ~0xbf;
- cpsr |= SVC32MODE | 0x80;
- ARMul_SetCPSR (state, cpsr);
-
- state->RegBank[SVCBANK][14] = state->Reg[14] = state->Reg[15] - i_size;
- state->NextInstr = RESUME;
- state->Reg[15] = state->pc = ARMSWIV;
- FLUSHPIPE;
- }
- else
- {
- sim_callback->printf_filtered
- (sim_callback,
- "sim: unknown SWI encountered - %x - ignoring\n",
- number);
- return FALSE;
- }
- }
-
- return TRUE;
-}
diff --git a/sim/arm/armos.h b/sim/arm/armos.h
deleted file mode 100644
index 393ee50..0000000
--- a/sim/arm/armos.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/* armos.h -- ARMulator OS definitions: ARM6 Instruction Emulator.
- Copyright (C) 1994 Advanced RISC Machines Ltd.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 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, see <http://www.gnu.org/licenses/>. */
-
-/* Define the initial layout of memory. */
-
-#define ADDRSUPERSTACK 0x800L /* Supervisor stack space. */
-#define ADDRUSERSTACK 0x80000L/* Default user stack start. */
-#define ADDRSOFTVECTORS 0x840L /* Soft vectors are here. */
-#define ADDRCMDLINE 0xf00L /* Command line is here after a SWI GetEnv. */
-#define ADDRSOFHANDLERS 0xad0L /* Address and workspace for installed handlers. */
-#define SOFTVECTORCODE 0xb80L /* Default handlers. */
-
-/* SWI numbers. */
-
-#define SWI_WriteC 0x0
-#define SWI_Write0 0x2
-#define SWI_ReadC 0x4
-#define SWI_CLI 0x5
-#define SWI_GetEnv 0x10
-#define SWI_Exit 0x11
-#define SWI_EnterOS 0x16
-
-#define SWI_GetErrno 0x60
-#define SWI_Clock 0x61
-#define SWI_Time 0x63
-#define SWI_Remove 0x64
-#define SWI_Rename 0x65
-#define SWI_Open 0x66
-
-#define SWI_Close 0x68
-#define SWI_Write 0x69
-#define SWI_Read 0x6a
-#define SWI_Seek 0x6b
-#define SWI_Flen 0x6c
-
-#define SWI_IsTTY 0x6e
-#define SWI_TmpNam 0x6f
-#define SWI_InstallHandler 0x70
-#define SWI_GenerateError 0x71
-
-#define SWI_Breakpoint 0x180000 /* See gdb's tm-arm.h */
-
-#define AngelSWI_ARM 0x123456
-#define AngelSWI_Thumb 0xAB
-
-/* The reason codes: */
-#define AngelSWI_Reason_Open 0x01
-#define AngelSWI_Reason_Close 0x02
-#define AngelSWI_Reason_WriteC 0x03
-#define AngelSWI_Reason_Write0 0x04
-#define AngelSWI_Reason_Write 0x05
-#define AngelSWI_Reason_Read 0x06
-#define AngelSWI_Reason_ReadC 0x07
-#define AngelSWI_Reason_IsTTY 0x09
-#define AngelSWI_Reason_Seek 0x0A
-#define AngelSWI_Reason_FLen 0x0C
-#define AngelSWI_Reason_TmpNam 0x0D
-#define AngelSWI_Reason_Remove 0x0E
-#define AngelSWI_Reason_Rename 0x0F
-#define AngelSWI_Reason_Clock 0x10
-#define AngelSWI_Reason_Time 0x11
-#define AngelSWI_Reason_System 0x12
-#define AngelSWI_Reason_Errno 0x13
-#define AngelSWI_Reason_GetCmdLine 0x15
-#define AngelSWI_Reason_HeapInfo 0x16
-#define AngelSWI_Reason_EnterSVC 0x17
-#define AngelSWI_Reason_ReportException 0x18
-#define ADP_Stopped_ApplicationExit ((2 << 16) + 38)
-#define ADP_Stopped_RunTimeError ((2 << 16) + 35)
-
-/* Floating Point Emulator address space. */
-#define FPESTART 0x2000L
-#define FPEEND 0x8000L
-#define FPEOLDVECT FPESTART + 0x100L + 8L * 16L + 4L /* Stack + 8 regs + fpsr. */
-#define FPENEWVECT(addr) 0xea000000L + ((addr) >> 2) - 3L /* Branch from 4 to 0x2400. */
-
-extern unsigned long fpecode[];
-extern unsigned long fpesize;
-
-extern int SWI_vector_installed;
diff --git a/sim/arm/armsupp.c b/sim/arm/armsupp.c
deleted file mode 100644
index 9fcc7f6..0000000
--- a/sim/arm/armsupp.c
+++ /dev/null
@@ -1,1704 +0,0 @@
-/* armsupp.c -- ARMulator support code: ARM6 Instruction Emulator.
- Copyright (C) 1994 Advanced RISC Machines Ltd.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 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, see <http://www.gnu.org/licenses/>. */
-
-/* This must come before any other includes. */
-#include "defs.h"
-
-#include "armdefs.h"
-#include "armemu.h"
-#include "ansidecl.h"
-#include "libiberty.h"
-#include <math.h>
-
-/* Definitions for the support routines. */
-
-static ARMword ModeToBank (ARMword);
-static void EnvokeList (ARMul_State *, unsigned long, unsigned long);
-
-struct EventNode
-{ /* An event list node. */
- unsigned (*func) (ARMul_State *); /* The function to call. */
- struct EventNode *next;
-};
-
-/* This routine returns the value of a register from a mode. */
-
-ARMword
-ARMul_GetReg (ARMul_State * state, unsigned mode, unsigned reg)
-{
- mode &= MODEBITS;
- if (mode != state->Mode)
- return (state->RegBank[ModeToBank ((ARMword) mode)][reg]);
- else
- return (state->Reg[reg]);
-}
-
-/* This routine sets the value of a register for a mode. */
-
-void
-ARMul_SetReg (ARMul_State * state, unsigned mode, unsigned reg, ARMword value)
-{
- mode &= MODEBITS;
- if (mode != state->Mode)
- state->RegBank[ModeToBank ((ARMword) mode)][reg] = value;
- else
- state->Reg[reg] = value;
-}
-
-/* This routine returns the value of the PC, mode independently. */
-
-ARMword
-ARMul_GetPC (ARMul_State * state)
-{
- if (state->Mode > SVC26MODE)
- return state->Reg[15];
- else
- return R15PC;
-}
-
-/* This routine returns the value of the PC, mode independently. */
-
-ARMword
-ARMul_GetNextPC (ARMul_State * state)
-{
- if (state->Mode > SVC26MODE)
- return state->Reg[15] + isize;
- else
- return (state->Reg[15] + isize) & R15PCBITS;
-}
-
-/* This routine sets the value of the PC. */
-
-void
-ARMul_SetPC (ARMul_State * state, ARMword value)
-{
- if (ARMul_MODE32BIT)
- state->Reg[15] = value & PCBITS;
- else
- state->Reg[15] = R15CCINTMODE | (value & R15PCBITS);
- FLUSHPIPE;
-}
-
-/* This routine returns the value of register 15, mode independently. */
-
-ARMword
-ARMul_GetR15 (ARMul_State * state)
-{
- if (state->Mode > SVC26MODE)
- return (state->Reg[15]);
- else
- return (R15PC | ECC | ER15INT | EMODE);
-}
-
-/* This routine sets the value of Register 15. */
-
-void
-ARMul_SetR15 (ARMul_State * state, ARMword value)
-{
- if (ARMul_MODE32BIT)
- state->Reg[15] = value & PCBITS;
- else
- {
- state->Reg[15] = value;
- ARMul_R15Altered (state);
- }
- FLUSHPIPE;
-}
-
-/* This routine returns the value of the CPSR. */
-
-ARMword
-ARMul_GetCPSR (ARMul_State * state)
-{
- return (CPSR | state->Cpsr);
-}
-
-/* This routine sets the value of the CPSR. */
-
-void
-ARMul_SetCPSR (ARMul_State * state, ARMword value)
-{
- state->Cpsr = value;
- ARMul_CPSRAltered (state);
-}
-
-/* This routine does all the nasty bits involved in a write to the CPSR,
- including updating the register bank, given a MSR instruction. */
-
-void
-ARMul_FixCPSR (ARMul_State * state, ARMword instr, ARMword rhs)
-{
- state->Cpsr = ARMul_GetCPSR (state);
-
- if (state->Mode != USER26MODE
- && state->Mode != USER32MODE)
- {
- /* In user mode, only write flags. */
- if (BIT (16))
- SETPSR_C (state->Cpsr, rhs);
- if (BIT (17))
- SETPSR_X (state->Cpsr, rhs);
- if (BIT (18))
- SETPSR_S (state->Cpsr, rhs);
- }
- if (BIT (19))
- SETPSR_F (state->Cpsr, rhs);
- ARMul_CPSRAltered (state);
-}
-
-/* Get an SPSR from the specified mode. */
-
-ARMword
-ARMul_GetSPSR (ARMul_State * state, ARMword mode)
-{
- ARMword bank = ModeToBank (mode & MODEBITS);
-
- if (! BANK_CAN_ACCESS_SPSR (bank))
- return ARMul_GetCPSR (state);
-
- return state->Spsr[bank];
-}
-
-/* This routine does a write to an SPSR. */
-
-void
-ARMul_SetSPSR (ARMul_State * state, ARMword mode, ARMword value)
-{
- ARMword bank = ModeToBank (mode & MODEBITS);
-
- if (BANK_CAN_ACCESS_SPSR (bank))
- state->Spsr[bank] = value;
-}
-
-/* This routine does a write to the current SPSR, given an MSR instruction. */
-
-void
-ARMul_FixSPSR (ARMul_State * state, ARMword instr, ARMword rhs)
-{
- if (BANK_CAN_ACCESS_SPSR (state->Bank))
- {
- if (BIT (16))
- SETPSR_C (state->Spsr[state->Bank], rhs);
- if (BIT (17))
- SETPSR_X (state->Spsr[state->Bank], rhs);
- if (BIT (18))
- SETPSR_S (state->Spsr[state->Bank], rhs);
- if (BIT (19))
- SETPSR_F (state->Spsr[state->Bank], rhs);
- }
-}
-
-/* This routine updates the state of the emulator after the Cpsr has been
- changed. Both the processor flags and register bank are updated. */
-
-void
-ARMul_CPSRAltered (ARMul_State * state)
-{
- ARMword oldmode;
-
- if (state->prog32Sig == LOW)
- state->Cpsr &= (CCBITS | INTBITS | R15MODEBITS);
-
- oldmode = state->Mode;
-
- if (state->Mode != (state->Cpsr & MODEBITS))
- {
- state->Mode =
- ARMul_SwitchMode (state, state->Mode, state->Cpsr & MODEBITS);
-
- state->NtransSig = (state->Mode & 3) ? HIGH : LOW;
- }
- state->Cpsr &= ~MODEBITS;
-
- ASSIGNINT (state->Cpsr & INTBITS);
- state->Cpsr &= ~INTBITS;
- ASSIGNN ((state->Cpsr & NBIT) != 0);
- state->Cpsr &= ~NBIT;
- ASSIGNZ ((state->Cpsr & ZBIT) != 0);
- state->Cpsr &= ~ZBIT;
- ASSIGNC ((state->Cpsr & CBIT) != 0);
- state->Cpsr &= ~CBIT;
- ASSIGNV ((state->Cpsr & VBIT) != 0);
- state->Cpsr &= ~VBIT;
- ASSIGNS ((state->Cpsr & SBIT) != 0);
- state->Cpsr &= ~SBIT;
-#ifdef MODET
- ASSIGNT ((state->Cpsr & TBIT) != 0);
- state->Cpsr &= ~TBIT;
-#endif
-
- if (oldmode > SVC26MODE)
- {
- if (state->Mode <= SVC26MODE)
- {
- state->Emulate = CHANGEMODE;
- state->Reg[15] = ECC | ER15INT | EMODE | R15PC;
- }
- }
- else
- {
- if (state->Mode > SVC26MODE)
- {
- state->Emulate = CHANGEMODE;
- state->Reg[15] = R15PC;
- }
- else
- state->Reg[15] = ECC | ER15INT | EMODE | R15PC;
- }
-}
-
-/* This routine updates the state of the emulator after register 15 has
- been changed. Both the processor flags and register bank are updated.
- This routine should only be called from a 26 bit mode. */
-
-void
-ARMul_R15Altered (ARMul_State * state)
-{
- if (state->Mode != R15MODE)
- {
- state->Mode = ARMul_SwitchMode (state, state->Mode, R15MODE);
- state->NtransSig = (state->Mode & 3) ? HIGH : LOW;
- }
-
- if (state->Mode > SVC26MODE)
- state->Emulate = CHANGEMODE;
-
- ASSIGNR15INT (R15INT);
-
- ASSIGNN ((state->Reg[15] & NBIT) != 0);
- ASSIGNZ ((state->Reg[15] & ZBIT) != 0);
- ASSIGNC ((state->Reg[15] & CBIT) != 0);
- ASSIGNV ((state->Reg[15] & VBIT) != 0);
-}
-
-/* This routine controls the saving and restoring of registers across mode
- changes. The regbank matrix is largely unused, only rows 13 and 14 are
- used across all modes, 8 to 14 are used for FIQ, all others use the USER
- column. It's easier this way. old and new parameter are modes numbers.
- Notice the side effect of changing the Bank variable. */
-
-ARMword
-ARMul_SwitchMode (ARMul_State * state, ARMword oldmode, ARMword newmode)
-{
- unsigned i;
- ARMword oldbank;
- ARMword newbank;
-
- oldbank = ModeToBank (oldmode);
- newbank = state->Bank = ModeToBank (newmode);
-
- /* Do we really need to do it? */
- if (oldbank != newbank)
- {
- /* Save away the old registers. */
- switch (oldbank)
- {
- case USERBANK:
- case IRQBANK:
- case SVCBANK:
- case ABORTBANK:
- case UNDEFBANK:
- if (newbank == FIQBANK)
- for (i = 8; i < 13; i++)
- state->RegBank[USERBANK][i] = state->Reg[i];
- state->RegBank[oldbank][13] = state->Reg[13];
- state->RegBank[oldbank][14] = state->Reg[14];
- break;
- case FIQBANK:
- for (i = 8; i < 15; i++)
- state->RegBank[FIQBANK][i] = state->Reg[i];
- break;
- case DUMMYBANK:
- for (i = 8; i < 15; i++)
- state->RegBank[DUMMYBANK][i] = 0;
- break;
- default:
- abort ();
- }
-
- /* Restore the new registers. */
- switch (newbank)
- {
- case USERBANK:
- case IRQBANK:
- case SVCBANK:
- case ABORTBANK:
- case UNDEFBANK:
- if (oldbank == FIQBANK)
- for (i = 8; i < 13; i++)
- state->Reg[i] = state->RegBank[USERBANK][i];
- state->Reg[13] = state->RegBank[newbank][13];
- state->Reg[14] = state->RegBank[newbank][14];
- break;
- case FIQBANK:
- for (i = 8; i < 15; i++)
- state->Reg[i] = state->RegBank[FIQBANK][i];
- break;
- case DUMMYBANK:
- for (i = 8; i < 15; i++)
- state->Reg[i] = 0;
- break;
- default:
- abort ();
- }
- }
-
- return newmode;
-}
-
-/* Given a processor mode, this routine returns the
- register bank that will be accessed in that mode. */
-
-static ARMword
-ModeToBank (ARMword mode)
-{
- static ARMword bankofmode[] =
- {
- USERBANK, FIQBANK, IRQBANK, SVCBANK,
- DUMMYBANK, DUMMYBANK, DUMMYBANK, DUMMYBANK,
- DUMMYBANK, DUMMYBANK, DUMMYBANK, DUMMYBANK,
- DUMMYBANK, DUMMYBANK, DUMMYBANK, DUMMYBANK,
- USERBANK, FIQBANK, IRQBANK, SVCBANK,
- DUMMYBANK, DUMMYBANK, DUMMYBANK, ABORTBANK,
- DUMMYBANK, DUMMYBANK, DUMMYBANK, UNDEFBANK,
- DUMMYBANK, DUMMYBANK, DUMMYBANK, SYSTEMBANK
- };
-
- if (mode >= ARRAY_SIZE (bankofmode))
- return DUMMYBANK;
-
- return bankofmode[mode];
-}
-
-/* Returns the register number of the nth register in a reg list. */
-
-unsigned
-ARMul_NthReg (ARMword instr, unsigned number)
-{
- unsigned bit, up_to;
-
- for (bit = 0, up_to = 0; up_to <= number; bit ++)
- if (BIT (bit))
- up_to ++;
-
- return (bit - 1);
-}
-
-/* Assigns the N and Z flags depending on the value of result. */
-
-void
-ARMul_NegZero (ARMul_State * state, ARMword result)
-{
- if (NEG (result))
- {
- SETN;
- CLEARZ;
- }
- else if (result == 0)
- {
- CLEARN;
- SETZ;
- }
- else
- {
- CLEARN;
- CLEARZ;
- }
-}
-
-/* Compute whether an addition of A and B, giving RESULT, overflowed. */
-
-int
-AddOverflow (ARMword a, ARMword b, ARMword result)
-{
- return ((NEG (a) && NEG (b) && POS (result))
- || (POS (a) && POS (b) && NEG (result)));
-}
-
-/* Compute whether a subtraction of A and B, giving RESULT, overflowed. */
-
-int
-SubOverflow (ARMword a, ARMword b, ARMword result)
-{
- return ((NEG (a) && POS (b) && POS (result))
- || (POS (a) && NEG (b) && NEG (result)));
-}
-
-/* Assigns the C flag after an addition of a and b to give result. */
-
-void
-ARMul_AddCarry (ARMul_State * state, ARMword a, ARMword b, ARMword result)
-{
- ASSIGNC ((NEG (a) && NEG (b)) ||
- (NEG (a) && POS (result)) || (NEG (b) && POS (result)));
-}
-
-/* Assigns the V flag after an addition of a and b to give result. */
-
-void
-ARMul_AddOverflow (ARMul_State * state, ARMword a, ARMword b, ARMword result)
-{
- ASSIGNV (AddOverflow (a, b, result));
-}
-
-/* Assigns the C flag after an subtraction of a and b to give result. */
-
-void
-ARMul_SubCarry (ARMul_State * state, ARMword a, ARMword b, ARMword result)
-{
- ASSIGNC ((NEG (a) && POS (b)) ||
- (NEG (a) && POS (result)) || (POS (b) && POS (result)));
-}
-
-/* Assigns the V flag after an subtraction of a and b to give result. */
-
-void
-ARMul_SubOverflow (ARMul_State * state, ARMword a, ARMword b, ARMword result)
-{
- ASSIGNV (SubOverflow (a, b, result));
-}
-
-static void
-handle_VFP_xfer (ARMul_State * state, ARMword instr)
-{
- if (TOPBITS (28) == NV)
- {
- fprintf (stderr, "SIM: UNDEFINED VFP instruction\n");
- return;
- }
-
- if (BITS (25, 27) != 0x6)
- {
- fprintf (stderr, "SIM: ISE: VFP handler called incorrectly\n");
- return;
- }
-
- switch (BITS (20, 24))
- {
- case 0x04:
- case 0x05:
- {
- /* VMOV double precision to/from two ARM registers. */
- int vm = BITS (0, 3);
- int rt1 = BITS (12, 15);
- int rt2 = BITS (16, 19);
-
- /* FIXME: UNPREDICTABLE if rt1 == 15 or rt2 == 15. */
- if (BIT (20))
- {
- /* Transfer to ARM. */
- /* FIXME: UPPREDICTABLE if rt1 == rt2. */
- state->Reg[rt1] = VFP_dword (vm) & 0xffffffff;
- state->Reg[rt2] = VFP_dword (vm) >> 32;
- }
- else
- {
- VFP_dword (vm) = state->Reg[rt2];
- VFP_dword (vm) <<= 32;
- VFP_dword (vm) |= (state->Reg[rt1] & 0xffffffff);
- }
- return;
- }
-
- case 0x08:
- case 0x0A:
- case 0x0C:
- case 0x0E:
- {
- /* VSTM with PUW=011 or PUW=010. */
- int n = BITS (16, 19);
- int imm8 = BITS (0, 7);
-
- ARMword address = state->Reg[n];
- if (BIT (21))
- state->Reg[n] = address + (imm8 << 2);
-
- if (BIT (8))
- {
- int src = (BIT (22) << 4) | BITS (12, 15);
- imm8 >>= 1;
- while (imm8--)
- {
- if (state->bigendSig)
- {
- ARMul_StoreWordN (state, address, VFP_dword (src) >> 32);
- ARMul_StoreWordN (state, address + 4, VFP_dword (src));
- }
- else
- {
- ARMul_StoreWordN (state, address, VFP_dword (src));
- ARMul_StoreWordN (state, address + 4, VFP_dword (src) >> 32);
- }
- address += 8;
- src += 1;
- }
- }
- else
- {
- int src = (BITS (12, 15) << 1) | BIT (22);
- while (imm8--)
- {
- ARMul_StoreWordN (state, address, VFP_uword (src));
- address += 4;
- src += 1;
- }
- }
- }
- return;
-
- case 0x10:
- case 0x14:
- case 0x18:
- case 0x1C:
- {
- /* VSTR */
- ARMword imm32 = BITS (0, 7) << 2;
- int base = state->Reg[LHSReg];
- ARMword address;
- int dest;
-
- if (LHSReg == 15)
- base = (base + 3) & ~3;
-
- address = base + (BIT (23) ? imm32 : - imm32);
-
- if (CPNum == 10)
- {
- dest = (DESTReg << 1) + BIT (22);
-
- ARMul_StoreWordN (state, address, VFP_uword (dest));
- }
- else
- {
- dest = (BIT (22) << 4) + DESTReg;
-
- if (state->bigendSig)
- {
- ARMul_StoreWordN (state, address, VFP_dword (dest) >> 32);
- ARMul_StoreWordN (state, address + 4, VFP_dword (dest));
- }
- else
- {
- ARMul_StoreWordN (state, address, VFP_dword (dest));
- ARMul_StoreWordN (state, address + 4, VFP_dword (dest) >> 32);
- }
- }
- }
- return;
-
- case 0x12:
- case 0x16:
- if (BITS (16, 19) == 13)
- {
- /* VPUSH */
- ARMword address = state->Reg[13] - (BITS (0, 7) << 2);
- state->Reg[13] = address;
-
- if (BIT (8))
- {
- int dreg = (BIT (22) << 4) | BITS (12, 15);
- int num = BITS (0, 7) >> 1;
- while (num--)
- {
- if (state->bigendSig)
- {
- ARMul_StoreWordN (state, address, VFP_dword (dreg) >> 32);
- ARMul_StoreWordN (state, address + 4, VFP_dword (dreg));
- }
- else
- {
- ARMul_StoreWordN (state, address, VFP_dword (dreg));
- ARMul_StoreWordN (state, address + 4, VFP_dword (dreg) >> 32);
- }
- address += 8;
- dreg += 1;
- }
- }
- else
- {
- int sreg = (BITS (12, 15) << 1) | BIT (22);
- int num = BITS (0, 7);
- while (num--)
- {
- ARMul_StoreWordN (state, address, VFP_uword (sreg));
- address += 4;
- sreg += 1;
- }
- }
- }
- else if (BITS (9, 11) != 0x5)
- break;
- else
- {
- /* VSTM PUW=101 */
- int n = BITS (16, 19);
- int imm8 = BITS (0, 7);
- ARMword address = state->Reg[n] - (imm8 << 2);
- state->Reg[n] = address;
-
- if (BIT (8))
- {
- int src = (BIT (22) << 4) | BITS (12, 15);
-
- imm8 >>= 1;
- while (imm8--)
- {
- if (state->bigendSig)
- {
- ARMul_StoreWordN (state, address, VFP_dword (src) >> 32);
- ARMul_StoreWordN (state, address + 4, VFP_dword (src));
- }
- else
- {
- ARMul_StoreWordN (state, address, VFP_dword (src));
- ARMul_StoreWordN (state, address + 4, VFP_dword (src) >> 32);
- }
- address += 8;
- src += 1;
- }
- }
- else
- {
- int src = (BITS (12, 15) << 1) | BIT (22);
-
- while (imm8--)
- {
- ARMul_StoreWordN (state, address, VFP_uword (src));
- address += 4;
- src += 1;
- }
- }
- }
- return;
-
- case 0x13:
- case 0x17:
- /* VLDM PUW=101 */
- case 0x09:
- case 0x0D:
- /* VLDM PUW=010 */
- {
- int n = BITS (16, 19);
- int imm8 = BITS (0, 7);
-
- ARMword address = state->Reg[n];
- if (BIT (23) == 0)
- address -= imm8 << 2;
- if (BIT (21))
- state->Reg[n] = BIT (23) ? address + (imm8 << 2) : address;
-
- if (BIT (8))
- {
- int dest = (BIT (22) << 4) | BITS (12, 15);
- imm8 >>= 1;
- while (imm8--)
- {
- if (state->bigendSig)
- {
- VFP_dword (dest) = ARMul_LoadWordN (state, address);
- VFP_dword (dest) <<= 32;
- VFP_dword (dest) |= ARMul_LoadWordN (state, address + 4);
- }
- else
- {
- VFP_dword (dest) = ARMul_LoadWordN (state, address + 4);
- VFP_dword (dest) <<= 32;
- VFP_dword (dest) |= ARMul_LoadWordN (state, address);
- }
-
- if (trace)
- fprintf (stderr, " VFP: VLDM: D%d = %g\n", dest, VFP_dval (dest));
-
- address += 8;
- dest += 1;
- }
- }
- else
- {
- int dest = (BITS (12, 15) << 1) | BIT (22);
-
- while (imm8--)
- {
- VFP_uword (dest) = ARMul_LoadWordN (state, address);
- address += 4;
- dest += 1;
- }
- }
- }
- return;
-
- case 0x0B:
- case 0x0F:
- if (BITS (16, 19) == 13)
- {
- /* VPOP */
- ARMword address = state->Reg[13];
- state->Reg[13] = address + (BITS (0, 7) << 2);
-
- if (BIT (8))
- {
- int dest = (BIT (22) << 4) | BITS (12, 15);
- int num = BITS (0, 7) >> 1;
-
- while (num--)
- {
- if (state->bigendSig)
- {
- VFP_dword (dest) = ARMul_LoadWordN (state, address);
- VFP_dword (dest) <<= 32;
- VFP_dword (dest) |= ARMul_LoadWordN (state, address + 4);
- }
- else
- {
- VFP_dword (dest) = ARMul_LoadWordN (state, address + 4);
- VFP_dword (dest) <<= 32;
- VFP_dword (dest) |= ARMul_LoadWordN (state, address);
- }
-
- if (trace)
- fprintf (stderr, " VFP: VPOP: D%d = %g\n", dest, VFP_dval (dest));
-
- address += 8;
- dest += 1;
- }
- }
- else
- {
- int sreg = (BITS (12, 15) << 1) | BIT (22);
- int num = BITS (0, 7);
-
- while (num--)
- {
- VFP_uword (sreg) = ARMul_LoadWordN (state, address);
- address += 4;
- sreg += 1;
- }
- }
- }
- else if (BITS (9, 11) != 0x5)
- break;
- else
- {
- /* VLDM PUW=011 */
- int n = BITS (16, 19);
- int imm8 = BITS (0, 7);
- ARMword address = state->Reg[n];
- state->Reg[n] += imm8 << 2;
-
- if (BIT (8))
- {
- int dest = (BIT (22) << 4) | BITS (12, 15);
-
- imm8 >>= 1;
- while (imm8--)
- {
- if (state->bigendSig)
- {
- VFP_dword (dest) = ARMul_LoadWordN (state, address);
- VFP_dword (dest) <<= 32;
- VFP_dword (dest) |= ARMul_LoadWordN (state, address + 4);
- }
- else
- {
- VFP_dword (dest) = ARMul_LoadWordN (state, address + 4);
- VFP_dword (dest) <<= 32;
- VFP_dword (dest) |= ARMul_LoadWordN (state, address);
- }
-
- if (trace)
- fprintf (stderr, " VFP: VLDM: D%d = %g\n", dest, VFP_dval (dest));
-
- address += 8;
- dest += 1;
- }
- }
- else
- {
- int dest = (BITS (12, 15) << 1) | BIT (22);
- while (imm8--)
- {
- VFP_uword (dest) = ARMul_LoadWordN (state, address);
- address += 4;
- dest += 1;
- }
- }
- }
- return;
-
- case 0x11:
- case 0x15:
- case 0x19:
- case 0x1D:
- {
- /* VLDR */
- ARMword imm32 = BITS (0, 7) << 2;
- int base = state->Reg[LHSReg];
- ARMword address;
- int dest;
-
- if (LHSReg == 15)
- base = (base + 3) & ~3;
-
- address = base + (BIT (23) ? imm32 : - imm32);
-
- if (CPNum == 10)
- {
- dest = (DESTReg << 1) + BIT (22);
-
- VFP_uword (dest) = ARMul_LoadWordN (state, address);
- }
- else
- {
- dest = (BIT (22) << 4) + DESTReg;
-
- if (state->bigendSig)
- {
- VFP_dword (dest) = ARMul_LoadWordN (state, address);
- VFP_dword (dest) <<= 32;
- VFP_dword (dest) |= ARMul_LoadWordN (state, address + 4);
- }
- else
- {
- VFP_dword (dest) = ARMul_LoadWordN (state, address + 4);
- VFP_dword (dest) <<= 32;
- VFP_dword (dest) |= ARMul_LoadWordN (state, address);
- }
-
- if (trace)
- fprintf (stderr, " VFP: VLDR: D%d = %g\n", dest, VFP_dval (dest));
- }
- }
- return;
- }
-
- fprintf (stderr, "SIM: VFP: Unimplemented: %0x\n", BITS (20, 24));
-}
-
-/* This function does the work of generating the addresses used in an
- LDC instruction. The code here is always post-indexed, it's up to the
- caller to get the input address correct and to handle base register
- modification. It also handles the Busy-Waiting. */
-
-void
-ARMul_LDC (ARMul_State * state, ARMword instr, ARMword address)
-{
- unsigned cpab;
- ARMword data;
-
- if (CPNum == 10 || CPNum == 11)
- {
- handle_VFP_xfer (state, instr);
- return;
- }
-
- UNDEF_LSCPCBaseWb;
-
- if (! CP_ACCESS_ALLOWED (state, CPNum))
- {
- ARMul_UndefInstr (state, instr);
- return;
- }
-
- if (ADDREXCEPT (address))
- INTERNALABORT (address);
-
- cpab = (state->LDC[CPNum]) (state, ARMul_FIRST, instr, 0);
- while (cpab == ARMul_BUSY)
- {
- ARMul_Icycles (state, 1, 0);
-
- if (IntPending (state))
- {
- cpab = (state->LDC[CPNum]) (state, ARMul_INTERRUPT, instr, 0);
- return;
- }
- else
- cpab = (state->LDC[CPNum]) (state, ARMul_BUSY, instr, 0);
- }
- if (cpab == ARMul_CANT)
- {
- CPTAKEABORT;
- return;
- }
-
- cpab = (state->LDC[CPNum]) (state, ARMul_TRANSFER, instr, 0);
- data = ARMul_LoadWordN (state, address);
- BUSUSEDINCPCN;
-
- if (BIT (21))
- LSBase = state->Base;
- cpab = (state->LDC[CPNum]) (state, ARMul_DATA, instr, data);
-
- while (cpab == ARMul_INC)
- {
- address += 4;
- data = ARMul_LoadWordN (state, address);
- cpab = (state->LDC[CPNum]) (state, ARMul_DATA, instr, data);
- }
-
- if (state->abortSig || state->Aborted)
- TAKEABORT;
-}
-
-/* This function does the work of generating the addresses used in an
- STC instruction. The code here is always post-indexed, it's up to the
- caller to get the input address correct and to handle base register
- modification. It also handles the Busy-Waiting. */
-
-void
-ARMul_STC (ARMul_State * state, ARMword instr, ARMword address)
-{
- unsigned cpab;
- ARMword data;
-
- if (CPNum == 10 || CPNum == 11)
- {
- handle_VFP_xfer (state, instr);
- return;
- }
-
- UNDEF_LSCPCBaseWb;
-
- if (! CP_ACCESS_ALLOWED (state, CPNum))
- {
- ARMul_UndefInstr (state, instr);
- return;
- }
-
- if (ADDREXCEPT (address) || VECTORACCESS (address))
- INTERNALABORT (address);
-
- cpab = (state->STC[CPNum]) (state, ARMul_FIRST, instr, &data);
- while (cpab == ARMul_BUSY)
- {
- ARMul_Icycles (state, 1, 0);
- if (IntPending (state))
- {
- cpab = (state->STC[CPNum]) (state, ARMul_INTERRUPT, instr, 0);
- return;
- }
- else
- cpab = (state->STC[CPNum]) (state, ARMul_BUSY, instr, &data);
- }
-
- if (cpab == ARMul_CANT)
- {
- CPTAKEABORT;
- return;
- }
-#ifndef MODE32
- if (ADDREXCEPT (address) || VECTORACCESS (address))
- INTERNALABORT (address);
-#endif
- BUSUSEDINCPCN;
- if (BIT (21))
- LSBase = state->Base;
- cpab = (state->STC[CPNum]) (state, ARMul_DATA, instr, &data);
- ARMul_StoreWordN (state, address, data);
-
- while (cpab == ARMul_INC)
- {
- address += 4;
- cpab = (state->STC[CPNum]) (state, ARMul_DATA, instr, &data);
- ARMul_StoreWordN (state, address, data);
- }
-
- if (state->abortSig || state->Aborted)
- TAKEABORT;
-}
-
-/* This function does the Busy-Waiting for an MCR instruction. */
-
-void
-ARMul_MCR (ARMul_State * state, ARMword instr, ARMword source)
-{
- unsigned cpab;
-
- if (! CP_ACCESS_ALLOWED (state, CPNum))
- {
- ARMul_UndefInstr (state, instr);
- return;
- }
-
- cpab = (state->MCR[CPNum]) (state, ARMul_FIRST, instr, source);
-
- while (cpab == ARMul_BUSY)
- {
- ARMul_Icycles (state, 1, 0);
-
- if (IntPending (state))
- {
- cpab = (state->MCR[CPNum]) (state, ARMul_INTERRUPT, instr, 0);
- return;
- }
- else
- cpab = (state->MCR[CPNum]) (state, ARMul_BUSY, instr, source);
- }
-
- if (cpab == ARMul_CANT)
- ARMul_Abort (state, ARMul_UndefinedInstrV);
- else
- {
- BUSUSEDINCPCN;
- ARMul_Ccycles (state, 1, 0);
- }
-}
-
-/* This function does the Busy-Waiting for an MRC instruction. */
-
-ARMword
-ARMul_MRC (ARMul_State * state, ARMword instr)
-{
- unsigned cpab;
- ARMword result = 0;
-
- if (! CP_ACCESS_ALLOWED (state, CPNum))
- {
- ARMul_UndefInstr (state, instr);
- return result;
- }
-
- cpab = (state->MRC[CPNum]) (state, ARMul_FIRST, instr, &result);
- while (cpab == ARMul_BUSY)
- {
- ARMul_Icycles (state, 1, 0);
- if (IntPending (state))
- {
- cpab = (state->MRC[CPNum]) (state, ARMul_INTERRUPT, instr, 0);
- return (0);
- }
- else
- cpab = (state->MRC[CPNum]) (state, ARMul_BUSY, instr, &result);
- }
- if (cpab == ARMul_CANT)
- {
- ARMul_Abort (state, ARMul_UndefinedInstrV);
- /* Parent will destroy the flags otherwise. */
- result = ECC;
- }
- else
- {
- BUSUSEDINCPCN;
- ARMul_Ccycles (state, 1, 0);
- ARMul_Icycles (state, 1, 0);
- }
-
- return result;
-}
-
-static void
-handle_VFP_op (ARMul_State * state, ARMword instr)
-{
- int dest;
- int srcN;
- int srcM;
-
- if (BITS (9, 11) != 0x5 || BIT (4) != 0)
- {
- fprintf (stderr, "SIM: VFP: Unimplemented: Float op: %08x\n", BITS (0,31));
- return;
- }
-
- if (BIT (8))
- {
- dest = BITS(12,15) + (BIT (22) << 4);
- srcN = LHSReg + (BIT (7) << 4);
- srcM = BITS (0,3) + (BIT (5) << 4);
- }
- else
- {
- dest = (BITS(12,15) << 1) + BIT (22);
- srcN = (LHSReg << 1) + BIT (7);
- srcM = (BITS (0,3) << 1) + BIT (5);
- }
-
- switch (BITS (20, 27))
- {
- case 0xE0:
- case 0xE4:
- /* VMLA VMLS */
- if (BIT (8))
- {
- ARMdval val = VFP_dval (srcN) * VFP_dval (srcM);
-
- if (BIT (6))
- {
- if (trace)
- fprintf (stderr, " VFP: VMLS: %g = %g - %g * %g\n",
- VFP_dval (dest) - val,
- VFP_dval (dest), VFP_dval (srcN), VFP_dval (srcM));
- VFP_dval (dest) -= val;
- }
- else
- {
- if (trace)
- fprintf (stderr, " VFP: VMLA: %g = %g + %g * %g\n",
- VFP_dval (dest) + val,
- VFP_dval (dest), VFP_dval (srcN), VFP_dval (srcM));
- VFP_dval (dest) += val;
- }
- }
- else
- {
- ARMfval val = VFP_fval (srcN) * VFP_fval (srcM);
-
- if (BIT (6))
- {
- if (trace)
- fprintf (stderr, " VFP: VMLS: %g = %g - %g * %g\n",
- VFP_fval (dest) - val,
- VFP_fval (dest), VFP_fval (srcN), VFP_fval (srcM));
- VFP_fval (dest) -= val;
- }
- else
- {
- if (trace)
- fprintf (stderr, " VFP: VMLA: %g = %g + %g * %g\n",
- VFP_fval (dest) + val,
- VFP_fval (dest), VFP_fval (srcN), VFP_fval (srcM));
- VFP_fval (dest) += val;
- }
- }
- return;
-
- case 0xE1:
- case 0xE5:
- if (BIT (8))
- {
- ARMdval product = VFP_dval (srcN) * VFP_dval (srcM);
-
- if (BIT (6))
- {
- /* VNMLA */
- if (trace)
- fprintf (stderr, " VFP: VNMLA: %g = -(%g + (%g * %g))\n",
- -(VFP_dval (dest) + product),
- VFP_dval (dest), VFP_dval (srcN), VFP_dval (srcM));
- VFP_dval (dest) = -(product + VFP_dval (dest));
- }
- else
- {
- /* VNMLS */
- if (trace)
- fprintf (stderr, " VFP: VNMLS: %g = -(%g + (%g * %g))\n",
- -(VFP_dval (dest) + product),
- VFP_dval (dest), VFP_dval (srcN), VFP_dval (srcM));
- VFP_dval (dest) = product - VFP_dval (dest);
- }
- }
- else
- {
- ARMfval product = VFP_fval (srcN) * VFP_fval (srcM);
-
- if (BIT (6))
- /* VNMLA */
- VFP_fval (dest) = -(product + VFP_fval (dest));
- else
- /* VNMLS */
- VFP_fval (dest) = product - VFP_fval (dest);
- }
- return;
-
- case 0xE2:
- case 0xE6:
- if (BIT (8))
- {
- ARMdval product = VFP_dval (srcN) * VFP_dval (srcM);
-
- if (BIT (6))
- {
- if (trace)
- fprintf (stderr, " VFP: VMUL: %g = %g * %g\n",
- - product, VFP_dval (srcN), VFP_dval (srcM));
- /* VNMUL */
- VFP_dval (dest) = - product;
- }
- else
- {
- if (trace)
- fprintf (stderr, " VFP: VMUL: %g = %g * %g\n",
- product, VFP_dval (srcN), VFP_dval (srcM));
- /* VMUL */
- VFP_dval (dest) = product;
- }
- }
- else
- {
- ARMfval product = VFP_fval (srcN) * VFP_fval (srcM);
-
- if (BIT (6))
- {
- if (trace)
- fprintf (stderr, " VFP: VNMUL: %g = %g * %g\n",
- - product, VFP_fval (srcN), VFP_fval (srcM));
-
- VFP_fval (dest) = - product;
- }
- else
- {
- if (trace)
- fprintf (stderr, " VFP: VMUL: %g = %g * %g\n",
- product, VFP_fval (srcN), VFP_fval (srcM));
-
- VFP_fval (dest) = product;
- }
- }
- return;
-
- case 0xE3:
- case 0xE7:
- if (BIT (6) == 0)
- {
- /* VADD */
- if (BIT(8))
- {
- if (trace)
- fprintf (stderr, " VFP: VADD %g = %g + %g\n",
- VFP_dval (srcN) + VFP_dval (srcM),
- VFP_dval (srcN),
- VFP_dval (srcM));
- VFP_dval (dest) = VFP_dval (srcN) + VFP_dval (srcM);
- }
- else
- VFP_fval (dest) = VFP_fval (srcN) + VFP_fval (srcM);
-
- }
- else
- {
- /* VSUB */
- if (BIT(8))
- {
- if (trace)
- fprintf (stderr, " VFP: VSUB %g = %g - %g\n",
- VFP_dval (srcN) - VFP_dval (srcM),
- VFP_dval (srcN),
- VFP_dval (srcM));
- VFP_dval (dest) = VFP_dval (srcN) - VFP_dval (srcM);
- }
- else
- VFP_fval (dest) = VFP_fval (srcN) - VFP_fval (srcM);
- }
- return;
-
- case 0xE8:
- case 0xEC:
- if (BIT (6) == 1)
- break;
-
- /* VDIV */
- if (BIT (8))
- {
- ARMdval res = VFP_dval (srcN) / VFP_dval (srcM);
- if (trace)
- fprintf (stderr, " VFP: VDIV (64bit): %g = %g / %g\n",
- res, VFP_dval (srcN), VFP_dval (srcM));
- VFP_dval (dest) = res;
- }
- else
- {
- if (trace)
- fprintf (stderr, " VFP: VDIV: %g = %g / %g\n",
- VFP_fval (srcN) / VFP_fval (srcM),
- VFP_fval (srcN), VFP_fval (srcM));
-
- VFP_fval (dest) = VFP_fval (srcN) / VFP_fval (srcM);
- }
- return;
-
- case 0xEB:
- case 0xEF:
- if (BIT (6) != 1)
- break;
-
- switch (BITS (16, 19))
- {
- case 0x0:
- if (BIT (7) == 0)
- {
- if (BIT (8))
- {
- /* VMOV.F64 <Dd>, <Dm>. */
- VFP_dval (dest) = VFP_dval (srcM);
- if (trace)
- fprintf (stderr, " VFP: VMOV d%d, d%d: %g\n", dest, srcM, VFP_dval (srcM));
- }
- else
- {
- /* VMOV.F32 <Sd>, <Sm>. */
- VFP_fval (dest) = VFP_fval (srcM);
- if (trace)
- fprintf (stderr, " VFP: VMOV s%d, s%d: %g\n", dest, srcM, VFP_fval (srcM));
- }
- }
- else
- {
- /* VABS */
- if (BIT (8))
- {
- ARMdval src = VFP_dval (srcM);
-
- VFP_dval (dest) = fabs (src);
- if (trace)
- fprintf (stderr, " VFP: VABS (%g) = %g\n", src, VFP_dval (dest));
- }
- else
- {
- ARMfval src = VFP_fval (srcM);
-
- VFP_fval (dest) = fabsf (src);
- if (trace)
- fprintf (stderr, " VFP: VABS (%g) = %g\n", src, VFP_fval (dest));
- }
- }
- return;
-
- case 0x1:
- if (BIT (7) == 0)
- {
- /* VNEG */
- if (BIT (8))
- VFP_dval (dest) = - VFP_dval (srcM);
- else
- VFP_fval (dest) = - VFP_fval (srcM);
- }
- else
- {
- /* VSQRT */
- if (BIT (8))
- {
- if (trace)
- fprintf (stderr, " VFP: %g = root(%g)\n",
- sqrt (VFP_dval (srcM)), VFP_dval (srcM));
-
- VFP_dval (dest) = sqrt (VFP_dval (srcM));
- }
- else
- {
- if (trace)
- fprintf (stderr, " VFP: %g = root(%g)\n",
- sqrtf (VFP_fval (srcM)), VFP_fval (srcM));
-
- VFP_fval (dest) = sqrtf (VFP_fval (srcM));
- }
- }
- return;
-
- case 0x4:
- case 0x5:
- /* VCMP, VCMPE */
- if (BIT(8))
- {
- ARMdval res = VFP_dval (dest);
-
- if (BIT (16) == 0)
- {
- ARMdval src = VFP_dval (srcM);
-
- if (isinf (res) && isinf (src))
- {
- if (res > 0.0 && src > 0.0)
- res = 0.0;
- else if (res < 0.0 && src < 0.0)
- res = 0.0;
- /* else leave res alone. */
- }
- else
- res -= src;
- }
-
- /* FIXME: Add handling of signalling NaNs and the E bit. */
-
- state->FPSCR &= 0x0FFFFFFF;
- if (res < 0.0)
- state->FPSCR |= NBIT;
- else
- state->FPSCR |= CBIT;
- if (res == 0.0)
- state->FPSCR |= ZBIT;
- if (isnan (res))
- state->FPSCR |= VBIT;
-
- if (trace)
- fprintf (stderr, " VFP: VCMP (64bit) %g vs %g res %g, flags: %c%c%c%c\n",
- VFP_dval (dest), BIT (16) ? 0.0 : VFP_dval (srcM), res,
- state->FPSCR & NBIT ? 'N' : '-',
- state->FPSCR & ZBIT ? 'Z' : '-',
- state->FPSCR & CBIT ? 'C' : '-',
- state->FPSCR & VBIT ? 'V' : '-');
- }
- else
- {
- ARMfval res = VFP_fval (dest);
-
- if (BIT (16) == 0)
- {
- ARMfval src = VFP_fval (srcM);
-
- if (isinf (res) && isinf (src))
- {
- if (res > 0.0 && src > 0.0)
- res = 0.0;
- else if (res < 0.0 && src < 0.0)
- res = 0.0;
- /* else leave res alone. */
- }
- else
- res -= src;
- }
-
- /* FIXME: Add handling of signalling NaNs and the E bit. */
-
- state->FPSCR &= 0x0FFFFFFF;
- if (res < 0.0)
- state->FPSCR |= NBIT;
- else
- state->FPSCR |= CBIT;
- if (res == 0.0)
- state->FPSCR |= ZBIT;
- if (isnan (res))
- state->FPSCR |= VBIT;
-
- if (trace)
- fprintf (stderr, " VFP: VCMP (32bit) %g vs %g res %g, flags: %c%c%c%c\n",
- VFP_fval (dest), BIT (16) ? 0.0 : VFP_fval (srcM), res,
- state->FPSCR & NBIT ? 'N' : '-',
- state->FPSCR & ZBIT ? 'Z' : '-',
- state->FPSCR & CBIT ? 'C' : '-',
- state->FPSCR & VBIT ? 'V' : '-');
- }
- return;
-
- case 0x7:
- if (BIT (8))
- {
- dest = (DESTReg << 1) + BIT (22);
- VFP_fval (dest) = VFP_dval (srcM);
- }
- else
- {
- dest = DESTReg + (BIT (22) << 4);
- VFP_dval (dest) = VFP_fval (srcM);
- }
- return;
-
- case 0x8:
- case 0xC:
- case 0xD:
- /* VCVT integer <-> FP */
- if (BIT (18))
- {
- /* To integer. */
- if (BIT (8))
- {
- dest = (BITS(12,15) << 1) + BIT (22);
- if (BIT (16))
- VFP_sword (dest) = VFP_dval (srcM);
- else
- VFP_uword (dest) = VFP_dval (srcM);
- }
- else
- {
- if (BIT (16))
- VFP_sword (dest) = VFP_fval (srcM);
- else
- VFP_uword (dest) = VFP_fval (srcM);
- }
- }
- else
- {
- /* From integer. */
- if (BIT (8))
- {
- srcM = (BITS (0,3) << 1) + BIT (5);
- if (BIT (7))
- VFP_dval (dest) = VFP_sword (srcM);
- else
- VFP_dval (dest) = VFP_uword (srcM);
- }
- else
- {
- if (BIT (7))
- VFP_fval (dest) = VFP_sword (srcM);
- else
- VFP_fval (dest) = VFP_uword (srcM);
- }
- }
- return;
- }
-
- fprintf (stderr, "SIM: VFP: Unimplemented: Float op3: %03x\n", BITS (16,27));
- return;
- }
-
- fprintf (stderr, "SIM: VFP: Unimplemented: Float op2: %02x\n", BITS (20, 27));
- return;
-}
-
-/* This function does the Busy-Waiting for an CDP instruction. */
-
-void
-ARMul_CDP (ARMul_State * state, ARMword instr)
-{
- unsigned cpab;
-
- if (CPNum == 10 || CPNum == 11)
- {
- handle_VFP_op (state, instr);
- return;
- }
-
- if (! CP_ACCESS_ALLOWED (state, CPNum))
- {
- ARMul_UndefInstr (state, instr);
- return;
- }
-
- cpab = (state->CDP[CPNum]) (state, ARMul_FIRST, instr);
- while (cpab == ARMul_BUSY)
- {
- ARMul_Icycles (state, 1, 0);
- if (IntPending (state))
- {
- cpab = (state->CDP[CPNum]) (state, ARMul_INTERRUPT, instr);
- return;
- }
- else
- cpab = (state->CDP[CPNum]) (state, ARMul_BUSY, instr);
- }
- if (cpab == ARMul_CANT)
- ARMul_Abort (state, ARMul_UndefinedInstrV);
- else
- BUSUSEDN;
-}
-
-/* This function handles Undefined instructions, as CP isntruction. */
-
-void
-ARMul_UndefInstr (ARMul_State * state, ARMword instr ATTRIBUTE_UNUSED)
-{
- ARMul_Abort (state, ARMul_UndefinedInstrV);
-}
-
-/* Return TRUE if an interrupt is pending, FALSE otherwise. */
-
-unsigned
-IntPending (ARMul_State * state)
-{
- if (state->Exception)
- {
- /* Any exceptions. */
- if (state->NresetSig == LOW)
- {
- ARMul_Abort (state, ARMul_ResetV);
- return TRUE;
- }
- else if (!state->NfiqSig && !FFLAG)
- {
- ARMul_Abort (state, ARMul_FIQV);
- return TRUE;
- }
- else if (!state->NirqSig && !IFLAG)
- {
- ARMul_Abort (state, ARMul_IRQV);
- return TRUE;
- }
- }
-
- return FALSE;
-}
-
-/* Align a word access to a non word boundary. */
-
-ARMword
-ARMul_Align (ARMul_State *state ATTRIBUTE_UNUSED, ARMword address, ARMword data)
-{
- /* This code assumes the address is really unaligned,
- as a shift by 32 is undefined in C. */
-
- address = (address & 3) << 3; /* Get the word address. */
- return ((data >> address) | (data << (32 - address))); /* rot right */
-}
-
-/* This routine is used to call another routine after a certain number of
- cycles have been executed. The first parameter is the number of cycles
- delay before the function is called, the second argument is a pointer
- to the function. A delay of zero doesn't work, just call the function. */
-
-void
-ARMul_ScheduleEvent (ARMul_State * state, unsigned long delay,
- unsigned (*what) (ARMul_State *))
-{
- unsigned long when;
- struct EventNode *event;
-
- if (state->EventSet++ == 0)
- state->Now = ARMul_Time (state);
- when = (state->Now + delay) % EVENTLISTSIZE;
- event = (struct EventNode *) malloc (sizeof (struct EventNode));
- event->func = what;
- event->next = *(state->EventPtr + when);
- *(state->EventPtr + when) = event;
-}
-
-/* This routine is called at the beginning of
- every cycle, to envoke scheduled events. */
-
-void
-ARMul_EnvokeEvent (ARMul_State * state)
-{
- static unsigned long then;
-
- then = state->Now;
- state->Now = ARMul_Time (state) % EVENTLISTSIZE;
- if (then < state->Now)
- /* Schedule events. */
- EnvokeList (state, then, state->Now);
- else if (then > state->Now)
- {
- /* Need to wrap around the list. */
- EnvokeList (state, then, EVENTLISTSIZE - 1L);
- EnvokeList (state, 0L, state->Now);
- }
-}
-
-/* Envokes all the entries in a range. */
-
-static void
-EnvokeList (ARMul_State * state, unsigned long from, unsigned long to)
-{
- for (; from <= to; from++)
- {
- struct EventNode *anevent;
-
- anevent = *(state->EventPtr + from);
- while (anevent)
- {
- (anevent->func) (state);
- state->EventSet--;
- anevent = anevent->next;
- }
- *(state->EventPtr + from) = NULL;
- }
-}
-
-/* This routine is returns the number of clock ticks since the last reset. */
-
-unsigned long
-ARMul_Time (ARMul_State * state)
-{
- return (state->NumScycles + state->NumNcycles +
- state->NumIcycles + state->NumCcycles + state->NumFcycles);
-}
diff --git a/sim/arm/armvirt.c b/sim/arm/armvirt.c
deleted file mode 100644
index c162ba7..0000000
--- a/sim/arm/armvirt.c
+++ /dev/null
@@ -1,517 +0,0 @@
-/* armvirt.c -- ARMulator virtual memory interace: ARM6 Instruction Emulator.
- Copyright (C) 1994 Advanced RISC Machines Ltd.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 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, see <http://www.gnu.org/licenses/>. */
-
-/* This file contains a complete ARMulator memory model, modelling a
- "virtual memory" system. A much simpler model can be found in armfast.c,
- and that model goes faster too, but has a fixed amount of memory. This
- model's memory has 64K pages, allocated on demand from a 64K entry page
- table. The routines PutWord and GetWord implement this. Pages are never
- freed as they might be needed again. A single area of memory may be
- defined to generate aborts. */
-
-/* This must come before any other includes. */
-#include "defs.h"
-
-#include "armos.h"
-#include "armdefs.h"
-#include "ansidecl.h"
-
-#ifdef VALIDATE /* for running the validate suite */
-#define TUBE 48 * 1024 * 1024 /* write a char on the screen */
-#define ABORTS 1
-#endif
-
-/* #define ABORTS */
-
-#ifdef ABORTS /* the memory system will abort */
-/* For the old test suite Abort between 32 Kbytes and 32 Mbytes
- For the new test suite Abort between 8 Mbytes and 26 Mbytes */
-/* #define LOWABORT 32 * 1024
-#define HIGHABORT 32 * 1024 * 1024 */
-#define LOWABORT 8 * 1024 * 1024
-#define HIGHABORT 26 * 1024 * 1024
-
-#endif
-
-#undef PAGESIZE /* Cleanup system headers. */
-#define NUMPAGES 64 * 1024
-#define PAGESIZE 64 * 1024
-#define PAGEBITS 16
-#define OFFSETBITS 0xffff
-
-int SWI_vector_installed = FALSE;
-
-/***************************************************************************\
-* Get a Word from Virtual Memory, maybe allocating the page *
-\***************************************************************************/
-
-static ARMword
-GetWord (ARMul_State * state, ARMword address, int check)
-{
- ARMword page;
- ARMword offset;
- ARMword **pagetable;
- ARMword *pageptr;
-
- if (check && state->is_XScale)
- XScale_check_memacc (state, &address, 0);
-
- page = address >> PAGEBITS;
- offset = (address & OFFSETBITS) >> 2;
- pagetable = (ARMword **) state->MemDataPtr;
- pageptr = *(pagetable + page);
-
- if (pageptr == NULL)
- {
- pageptr = (ARMword *) malloc (PAGESIZE);
-
- if (pageptr == NULL)
- {
- perror ("ARMulator can't allocate VM page");
- exit (12);
- }
-
- *(pagetable + page) = pageptr;
- }
-
- return *(pageptr + offset);
-}
-
-/***************************************************************************\
-* Put a Word into Virtual Memory, maybe allocating the page *
-\***************************************************************************/
-
-static void
-PutWord (ARMul_State * state, ARMword address, ARMword data, int check)
-{
- ARMword page;
- ARMword offset;
- ARMword **pagetable;
- ARMword *pageptr;
-
- if (check && state->is_XScale)
- XScale_check_memacc (state, &address, 1);
-
- page = address >> PAGEBITS;
- offset = (address & OFFSETBITS) >> 2;
- pagetable = (ARMword **) state->MemDataPtr;
- pageptr = *(pagetable + page);
-
- if (pageptr == NULL)
- {
- pageptr = (ARMword *) malloc (PAGESIZE);
- if (pageptr == NULL)
- {
- perror ("ARMulator can't allocate VM page");
- exit (13);
- }
-
- *(pagetable + page) = pageptr;
- }
-
- if (address == 0x8)
- SWI_vector_installed = TRUE;
-
- *(pageptr + offset) = data;
-}
-
-/***************************************************************************\
-* Initialise the memory interface *
-\***************************************************************************/
-
-unsigned
-ARMul_MemoryInit (ARMul_State * state, unsigned long initmemsize)
-{
- ARMword **pagetable;
- unsigned page;
-
- if (initmemsize)
- state->MemSize = initmemsize;
-
- pagetable = (ARMword **) malloc (sizeof (ARMword *) * NUMPAGES);
-
- if (pagetable == NULL)
- return FALSE;
-
- for (page = 0; page < NUMPAGES; page++)
- *(pagetable + page) = NULL;
-
- state->MemDataPtr = (unsigned char *) pagetable;
-
- ARMul_ConsolePrint (state, ", 4 Gb memory");
-
- return TRUE;
-}
-
-/***************************************************************************\
-* Remove the memory interface *
-\***************************************************************************/
-
-void
-ARMul_MemoryExit (ARMul_State * state)
-{
- ARMword page;
- ARMword **pagetable;
- ARMword *pageptr;
-
- pagetable = (ARMword **) state->MemDataPtr;
- for (page = 0; page < NUMPAGES; page++)
- {
- pageptr = *(pagetable + page);
- if (pageptr != NULL)
- free ((char *) pageptr);
- }
- free ((char *) pagetable);
- return;
-}
-
-/***************************************************************************\
-* ReLoad Instruction *
-\***************************************************************************/
-
-ARMword
-ARMul_ReLoadInstr (ARMul_State * state, ARMword address, ARMword isize)
-{
-#ifdef ABORTS
- if (address >= LOWABORT && address < HIGHABORT)
- {
- ARMul_PREFETCHABORT (address);
- return ARMul_ABORTWORD;
- }
- else
- {
- ARMul_CLEARABORT;
- }
-#endif
-
- if ((isize == 2) && (address & 0x2))
- {
- /* We return the next two halfwords: */
- ARMword lo = GetWord (state, address, FALSE);
- ARMword hi = GetWord (state, address + 4, FALSE);
-
- if (state->bigendSig == HIGH)
- return (lo << 16) | (hi >> 16);
- else
- return ((hi & 0xFFFF) << 16) | (lo >> 16);
- }
-
- return GetWord (state, address, TRUE);
-}
-
-/***************************************************************************\
-* Load Instruction, Sequential Cycle *
-\***************************************************************************/
-
-ARMword ARMul_LoadInstrS (ARMul_State * state, ARMword address, ARMword isize)
-{
- state->NumScycles++;
-
- return ARMul_ReLoadInstr (state, address, isize);
-}
-
-/***************************************************************************\
-* Load Instruction, Non Sequential Cycle *
-\***************************************************************************/
-
-ARMword ARMul_LoadInstrN (ARMul_State * state, ARMword address, ARMword isize)
-{
- state->NumNcycles++;
-
- return ARMul_ReLoadInstr (state, address, isize);
-}
-
-/***************************************************************************\
-* Read Word (but don't tell anyone!) *
-\***************************************************************************/
-
-ARMword ARMul_ReadWord (ARMul_State * state, ARMword address)
-{
-#ifdef ABORTS
- if (address >= LOWABORT && address < HIGHABORT)
- {
- ARMul_DATAABORT (address);
- return ARMul_ABORTWORD;
- }
- else
- {
- ARMul_CLEARABORT;
- }
-#endif
-
- return GetWord (state, address, TRUE);
-}
-
-/***************************************************************************\
-* Load Word, Sequential Cycle *
-\***************************************************************************/
-
-ARMword ARMul_LoadWordS (ARMul_State * state, ARMword address)
-{
- state->NumScycles++;
-
- return ARMul_ReadWord (state, address);
-}
-
-/***************************************************************************\
-* Load Word, Non Sequential Cycle *
-\***************************************************************************/
-
-ARMword ARMul_LoadWordN (ARMul_State * state, ARMword address)
-{
- state->NumNcycles++;
-
- return ARMul_ReadWord (state, address);
-}
-
-/***************************************************************************\
-* Load Halfword, (Non Sequential Cycle) *
-\***************************************************************************/
-
-ARMword ARMul_LoadHalfWord (ARMul_State * state, ARMword address)
-{
- ARMword temp, offset;
-
- state->NumNcycles++;
-
- temp = ARMul_ReadWord (state, address);
- offset = (((ARMword) state->bigendSig * 2) ^ (address & 2)) << 3; /* bit offset into the word */
-
- return (temp >> offset) & 0xffff;
-}
-
-/***************************************************************************\
-* Read Byte (but don't tell anyone!) *
-\***************************************************************************/
-
-ARMword ARMul_ReadByte (ARMul_State * state, ARMword address)
-{
- ARMword temp, offset;
-
- temp = ARMul_ReadWord (state, address);
- offset = (((ARMword) state->bigendSig * 3) ^ (address & 3)) << 3; /* bit offset into the word */
-
- return (temp >> offset & 0xffL);
-}
-
-/***************************************************************************\
-* Load Byte, (Non Sequential Cycle) *
-\***************************************************************************/
-
-ARMword ARMul_LoadByte (ARMul_State * state, ARMword address)
-{
- state->NumNcycles++;
-
- return ARMul_ReadByte (state, address);
-}
-
-/***************************************************************************\
-* Write Word (but don't tell anyone!) *
-\***************************************************************************/
-
-void
-ARMul_WriteWord (ARMul_State * state, ARMword address, ARMword data)
-{
-#ifdef ABORTS
- if (address >= LOWABORT && address < HIGHABORT)
- {
- ARMul_DATAABORT (address);
- return;
- }
- else
- {
- ARMul_CLEARABORT;
- }
-#endif
-
- PutWord (state, address, data, TRUE);
-}
-
-/***************************************************************************\
-* Store Word, Sequential Cycle *
-\***************************************************************************/
-
-void
-ARMul_StoreWordS (ARMul_State * state, ARMword address, ARMword data)
-{
- state->NumScycles++;
-
- ARMul_WriteWord (state, address, data);
-}
-
-/***************************************************************************\
-* Store Word, Non Sequential Cycle *
-\***************************************************************************/
-
-void
-ARMul_StoreWordN (ARMul_State * state, ARMword address, ARMword data)
-{
- state->NumNcycles++;
-
- ARMul_WriteWord (state, address, data);
-}
-
-/***************************************************************************\
-* Store HalfWord, (Non Sequential Cycle) *
-\***************************************************************************/
-
-void
-ARMul_StoreHalfWord (ARMul_State * state, ARMword address, ARMword data)
-{
- ARMword temp, offset;
-
- state->NumNcycles++;
-
-#ifdef VALIDATE
- if (address == TUBE)
- {
- if (data == 4)
- state->Emulate = FALSE;
- else
- (void) putc ((char) data, stderr); /* Write Char */
- return;
- }
-#endif
-
- temp = ARMul_ReadWord (state, address);
- offset = (((ARMword) state->bigendSig * 2) ^ (address & 2)) << 3; /* bit offset into the word */
-
- PutWord (state, address,
- (temp & ~(0xffffL << offset)) | ((data & 0xffffL) << offset),
- TRUE);
-}
-
-/***************************************************************************\
-* Write Byte (but don't tell anyone!) *
-\***************************************************************************/
-
-void
-ARMul_WriteByte (ARMul_State * state, ARMword address, ARMword data)
-{
- ARMword temp, offset;
-
- temp = ARMul_ReadWord (state, address);
- offset = (((ARMword) state->bigendSig * 3) ^ (address & 3)) << 3; /* bit offset into the word */
-
- PutWord (state, address,
- (temp & ~(0xffL << offset)) | ((data & 0xffL) << offset),
- TRUE);
-}
-
-/***************************************************************************\
-* Store Byte, (Non Sequential Cycle) *
-\***************************************************************************/
-
-void
-ARMul_StoreByte (ARMul_State * state, ARMword address, ARMword data)
-{
- state->NumNcycles++;
-
-#ifdef VALIDATE
- if (address == TUBE)
- {
- if (data == 4)
- state->Emulate = FALSE;
- else
- (void) putc ((char) data, stderr); /* Write Char */
- return;
- }
-#endif
-
- ARMul_WriteByte (state, address, data);
-}
-
-/***************************************************************************\
-* Swap Word, (Two Non Sequential Cycles) *
-\***************************************************************************/
-
-ARMword ARMul_SwapWord (ARMul_State * state, ARMword address, ARMword data)
-{
- ARMword temp;
-
- state->NumNcycles++;
-
- temp = ARMul_ReadWord (state, address);
-
- state->NumNcycles++;
-
- PutWord (state, address, data, TRUE);
-
- return temp;
-}
-
-/***************************************************************************\
-* Swap Byte, (Two Non Sequential Cycles) *
-\***************************************************************************/
-
-ARMword ARMul_SwapByte (ARMul_State * state, ARMword address, ARMword data)
-{
- ARMword temp;
-
- temp = ARMul_LoadByte (state, address);
- ARMul_StoreByte (state, address, data);
-
- return temp;
-}
-
-/***************************************************************************\
-* Count I Cycles *
-\***************************************************************************/
-
-void
-ARMul_Icycles (ARMul_State * state, unsigned number, ARMword address ATTRIBUTE_UNUSED)
-{
- state->NumIcycles += number;
- ARMul_CLEARABORT;
-}
-
-/***************************************************************************\
-* Count C Cycles *
-\***************************************************************************/
-
-void
-ARMul_Ccycles (ARMul_State * state, unsigned number, ARMword address ATTRIBUTE_UNUSED)
-{
- state->NumCcycles += number;
- ARMul_CLEARABORT;
-}
-
-
-/* Read a byte. Do not check for alignment or access errors. */
-
-ARMword
-ARMul_SafeReadByte (ARMul_State * state, ARMword address)
-{
- ARMword temp, offset;
-
- temp = GetWord (state, address, FALSE);
- offset = (((ARMword) state->bigendSig * 3) ^ (address & 3)) << 3;
-
- return (temp >> offset & 0xffL);
-}
-
-void
-ARMul_SafeWriteByte (ARMul_State * state, ARMword address, ARMword data)
-{
- ARMword temp, offset;
-
- temp = GetWord (state, address, FALSE);
- offset = (((ARMword) state->bigendSig * 3) ^ (address & 3)) << 3;
-
- PutWord (state, address,
- (temp & ~(0xffL << offset)) | ((data & 0xffL) << offset),
- FALSE);
-}
diff --git a/sim/arm/dbg_rdi.h b/sim/arm/dbg_rdi.h
deleted file mode 100644
index a312c07..0000000
--- a/sim/arm/dbg_rdi.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/* dbg_rdi.h -- ARMulator RDI interface: ARM6 Instruction Emulator.
- Copyright (C) 1994 Advanced RISC Machines Ltd.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 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, see <http://www.gnu.org/licenses/>. */
-
-#ifndef dbg_rdi__h
-#define dbg_rdi__h
-
-/***************************************************************************\
-* Error Codes *
-\***************************************************************************/
-
-#define RDIError_NoError 0
-
-#define RDIError_Reset 1
-#define RDIError_UndefinedInstruction 2
-#define RDIError_SoftwareInterrupt 3
-#define RDIError_PrefetchAbort 4
-#define RDIError_DataAbort 5
-#define RDIError_AddressException 6
-#define RDIError_IRQ 7
-#define RDIError_FIQ 8
-#define RDIError_Error 9
-#define RDIError_BranchThrough0 10
-
-#define RDIError_NotInitialised 128
-#define RDIError_UnableToInitialise 129
-#define RDIError_WrongByteSex 130
-#define RDIError_UnableToTerminate 131
-#define RDIError_BadInstruction 132
-#define RDIError_IllegalInstruction 133
-#define RDIError_BadCPUStateSetting 134
-#define RDIError_UnknownCoPro 135
-#define RDIError_UnknownCoProState 136
-#define RDIError_BadCoProState 137
-#define RDIError_BadPointType 138
-#define RDIError_UnimplementedType 139
-#define RDIError_BadPointSize 140
-#define RDIError_UnimplementedSize 141
-#define RDIError_NoMorePoints 142
-#define RDIError_BreakpointReached 143
-#define RDIError_WatchpointAccessed 144
-#define RDIError_NoSuchPoint 145
-#define RDIError_ProgramFinishedInStep 146
-#define RDIError_UserInterrupt 147
-#define RDIError_CantSetPoint 148
-#define RDIError_IncompatibleRDILevels 149
-
-#define RDIError_CantLoadConfig 150
-#define RDIError_BadConfigData 151
-#define RDIError_NoSuchConfig 152
-#define RDIError_BufferFull 153
-#define RDIError_OutOfStore 154
-#define RDIError_NotInDownload 155
-#define RDIError_PointInUse 156
-#define RDIError_BadImageFormat 157
-#define RDIError_TargetRunning 158
-
-#define RDIError_LittleEndian 240
-#define RDIError_BigEndian 241
-#define RDIError_SoftInitialiseError 242
-
-#define RDIError_InsufficientPrivilege 253
-#define RDIError_UnimplementedMessage 254
-#define RDIError_UndefinedMessage 255
-
-#endif
-
-extern unsigned int swi_mask;
-
-#define SWI_MASK_DEMON (1 << 0)
-#define SWI_MASK_ANGEL (1 << 1)
-#define SWI_MASK_REDBOOT (1 << 2)
diff --git a/sim/arm/iwmmxt.c b/sim/arm/iwmmxt.c
deleted file mode 100644
index f0eaa09..0000000
--- a/sim/arm/iwmmxt.c
+++ /dev/null
@@ -1,3738 +0,0 @@
-/* iwmmxt.c -- Intel(r) Wireless MMX(tm) technology co-processor interface.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
- Contributed by matthew green (mrg@redhat.com).
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 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, see <http://www.gnu.org/licenses/>. */
-
-/* This must come before any other includes. */
-#include "defs.h"
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "armdefs.h"
-#include "armos.h"
-#include "armemu.h"
-#include "ansidecl.h"
-#include "iwmmxt.h"
-
-/* #define DEBUG 1 */
-
-/* Intel(r) Wireless MMX(tm) technology co-processor.
- It uses co-processor numbers (0 and 1). There are 16 vector registers wRx
- and 16 control registers wCx. Co-processors 0 and 1 are used in MCR/MRC
- to access wRx and wCx respectively. */
-
-static ARMdword wR[16];
-static ARMword wC[16] = { 0x69051010 };
-
-#define SUBSTR(w,t,m,n) ((t)(w << ((sizeof (t) * 8 - 1) - (n))) \
- >> (((sizeof (t) * 8 - 1) - (n)) + (m)))
-#define wCBITS(w,x,y) SUBSTR (wC[w], ARMword, x, y)
-#define wRBITS(w,x,y) SUBSTR (wR[w], ARMdword, x, y)
-#define wCID 0
-#define wCon 1
-#define wCSSF 2
-#define wCASF 3
-#define wCGR0 8
-#define wCGR1 9
-#define wCGR2 10
-#define wCGR3 11
-
-/* Bits in the wCon register. */
-#define WCON_CUP (1 << 0)
-#define WCON_MUP (1 << 1)
-
-/* Set the SIMD wCASF flags for 8, 16, 32 or 64-bit operations. */
-#define SIMD8_SET(x, v, n, b) (x) |= ((v != 0) << ((((b) + 1) * 4) + (n)))
-#define SIMD16_SET(x, v, n, h) (x) |= ((v != 0) << ((((h) + 1) * 8) + (n)))
-#define SIMD32_SET(x, v, n, w) (x) |= ((v != 0) << ((((w) + 1) * 16) + (n)))
-#define SIMD64_SET(x, v, n) (x) |= ((v != 0) << (32 + (n)))
-
-/* Flags to pass as "n" above. */
-#define SIMD_NBIT -1
-#define SIMD_ZBIT -2
-#define SIMD_CBIT -3
-#define SIMD_VBIT -4
-
-/* Various status bit macros. */
-#define NBIT8(x) ((x) & 0x80)
-#define NBIT16(x) ((x) & 0x8000)
-#define NBIT32(x) ((x) & 0x80000000)
-#define NBIT64(x) ((x) & 0x8000000000000000ULL)
-#define ZBIT8(x) (((x) & 0xff) == 0)
-#define ZBIT16(x) (((x) & 0xffff) == 0)
-#define ZBIT32(x) (((x) & 0xffffffff) == 0)
-#define ZBIT64(x) (x == 0)
-
-/* Access byte/half/word "n" of register "x". */
-#define wRBYTE(x,n) wRBITS ((x), (n) * 8, (n) * 8 + 7)
-#define wRHALF(x,n) wRBITS ((x), (n) * 16, (n) * 16 + 15)
-#define wRWORD(x,n) wRBITS ((x), (n) * 32, (n) * 32 + 31)
-
-/* Macro to handle how the G bit selects wCGR registers. */
-#define DECODE_G_BIT(state, instr, shift) \
-{ \
- unsigned int reg; \
- \
- reg = BITS (0, 3); \
- \
- if (BIT (8)) /* G */ \
- { \
- if (reg < wCGR0 || reg > wCGR3) \
- { \
- ARMul_UndefInstr (state, instr); \
- return ARMul_DONE; \
- } \
- shift = wC [reg]; \
- } \
- else \
- shift = wR [reg]; \
- \
- shift &= 0xff; \
-}
-
-/* Index calculations for the satrv[] array. */
-#define BITIDX8(x) (x)
-#define BITIDX16(x) (((x) + 1) * 2 - 1)
-#define BITIDX32(x) (((x) + 1) * 4 - 1)
-
-/* Sign extension macros. */
-#define EXTEND8(a) ((a) & 0x80 ? ((a) | 0xffffff00) : (a))
-#define EXTEND16(a) ((a) & 0x8000 ? ((a) | 0xffff0000) : (a))
-#define EXTEND32(a) ((a) & 0x80000000ULL ? ((a) | 0xffffffff00000000ULL) : (a))
-
-/* Set the wCSSF from 8 values. */
-#define SET_wCSSF(a,b,c,d,e,f,g,h) \
- wC[wCSSF] = (((h) != 0) << 7) | (((g) != 0) << 6) \
- | (((f) != 0) << 5) | (((e) != 0) << 4) \
- | (((d) != 0) << 3) | (((c) != 0) << 2) \
- | (((b) != 0) << 1) | (((a) != 0) << 0);
-
-/* Set the wCSSR from an array with 8 values. */
-#define SET_wCSSFvec(v) \
- SET_wCSSF((v)[0],(v)[1],(v)[2],(v)[3],(v)[4],(v)[5],(v)[6],(v)[7])
-
-/* Size qualifiers for vector operations. */
-#define Bqual 0
-#define Hqual 1
-#define Wqual 2
-#define Dqual 3
-
-/* Saturation qualifiers for vector operations. */
-#define NoSaturation 0
-#define UnsignedSaturation 1
-#define SignedSaturation 3
-
-
-/* Prototypes. */
-static ARMword Add32 (ARMword, ARMword, int *, int *, ARMword);
-static ARMdword AddS32 (ARMdword, ARMdword, int *, int *);
-static ARMdword AddU32 (ARMdword, ARMdword, int *, int *);
-static ARMword AddS16 (ARMword, ARMword, int *, int *);
-static ARMword AddU16 (ARMword, ARMword, int *, int *);
-static ARMword AddS8 (ARMword, ARMword, int *, int *);
-static ARMword AddU8 (ARMword, ARMword, int *, int *);
-static ARMword Sub32 (ARMword, ARMword, int *, int *, ARMword);
-static ARMdword SubS32 (ARMdword, ARMdword, int *, int *);
-static ARMdword SubU32 (ARMdword, ARMdword, int *, int *);
-static ARMword SubS16 (ARMword, ARMword, int *, int *);
-static ARMword SubS8 (ARMword, ARMword, int *, int *);
-static ARMword SubU16 (ARMword, ARMword, int *, int *);
-static ARMword SubU8 (ARMword, ARMword, int *, int *);
-static unsigned char IwmmxtSaturateU8 (signed short, int *);
-static signed char IwmmxtSaturateS8 (signed short, int *);
-static unsigned short IwmmxtSaturateU16 (signed int, int *);
-static signed short IwmmxtSaturateS16 (signed int, int *);
-static unsigned long IwmmxtSaturateU32 (signed long long, int *);
-static signed long IwmmxtSaturateS32 (signed long long, int *);
-static ARMword Compute_Iwmmxt_Address (ARMul_State *, ARMword, int *);
-static ARMdword Iwmmxt_Load_Double_Word (ARMul_State *, ARMword);
-static ARMword Iwmmxt_Load_Word (ARMul_State *, ARMword);
-static ARMword Iwmmxt_Load_Half_Word (ARMul_State *, ARMword);
-static ARMword Iwmmxt_Load_Byte (ARMul_State *, ARMword);
-static void Iwmmxt_Store_Double_Word (ARMul_State *, ARMword, ARMdword);
-static void Iwmmxt_Store_Word (ARMul_State *, ARMword, ARMword);
-static void Iwmmxt_Store_Half_Word (ARMul_State *, ARMword, ARMword);
-static void Iwmmxt_Store_Byte (ARMul_State *, ARMword, ARMword);
-static int Process_Instruction (ARMul_State *, ARMword);
-
-static int TANDC (ARMul_State *, ARMword);
-static int TBCST (ARMul_State *, ARMword);
-static int TEXTRC (ARMul_State *, ARMword);
-static int TEXTRM (ARMul_State *, ARMword);
-static int TINSR (ARMul_State *, ARMword);
-static int TMCR (ARMul_State *, ARMword);
-static int TMCRR (ARMul_State *, ARMword);
-static int TMIA (ARMul_State *, ARMword);
-static int TMIAPH (ARMul_State *, ARMword);
-static int TMIAxy (ARMul_State *, ARMword);
-static int TMOVMSK (ARMul_State *, ARMword);
-static int TMRC (ARMul_State *, ARMword);
-static int TMRRC (ARMul_State *, ARMword);
-static int TORC (ARMul_State *, ARMword);
-static int WACC (ARMul_State *, ARMword);
-static int WADD (ARMul_State *, ARMword);
-static int WALIGNI (ARMword);
-static int WALIGNR (ARMul_State *, ARMword);
-static int WAND (ARMword);
-static int WANDN (ARMword);
-static int WAVG2 (ARMword);
-static int WCMPEQ (ARMul_State *, ARMword);
-static int WCMPGT (ARMul_State *, ARMword);
-static int WLDR (ARMul_State *, ARMword);
-static int WMAC (ARMword);
-static int WMADD (ARMword);
-static int WMAX (ARMul_State *, ARMword);
-static int WMIN (ARMul_State *, ARMword);
-static int WMUL (ARMword);
-static int WOR (ARMword);
-static int WPACK (ARMul_State *, ARMword);
-static int WROR (ARMul_State *, ARMword);
-static int WSAD (ARMword);
-static int WSHUFH (ARMword);
-static int WSLL (ARMul_State *, ARMword);
-static int WSRA (ARMul_State *, ARMword);
-static int WSRL (ARMul_State *, ARMword);
-static int WSTR (ARMul_State *, ARMword);
-static int WSUB (ARMul_State *, ARMword);
-static int WUNPCKEH (ARMul_State *, ARMword);
-static int WUNPCKEL (ARMul_State *, ARMword);
-static int WUNPCKIH (ARMul_State *, ARMword);
-static int WUNPCKIL (ARMul_State *, ARMword);
-static int WXOR (ARMword);
-
-/* This function does the work of adding two 32bit values
- together, and calculating if a carry has occurred. */
-
-static ARMword
-Add32 (ARMword a1,
- ARMword a2,
- int * carry_ptr,
- int * overflow_ptr,
- ARMword sign_mask)
-{
- ARMword result = (a1 + a2);
- unsigned int uresult = (unsigned int) result;
- unsigned int ua1 = (unsigned int) a1;
-
- /* If (result == a1) and (a2 == 0),
- or (result > a2) then we have no carry. */
- * carry_ptr = ((uresult == ua1) ? (a2 != 0) : (uresult < ua1));
-
- /* Overflow occurs when both arguments are the
- same sign, but the result is a different sign. */
- * overflow_ptr = ( ( (result & sign_mask) && !(a1 & sign_mask) && !(a2 & sign_mask))
- || (!(result & sign_mask) && (a1 & sign_mask) && (a2 & sign_mask)));
-
- return result;
-}
-
-static ARMdword
-AddS32 (ARMdword a1, ARMdword a2, int * carry_ptr, int * overflow_ptr)
-{
- ARMdword result;
- unsigned int uresult;
- unsigned int ua1;
-
- a1 = EXTEND32 (a1);
- a2 = EXTEND32 (a2);
-
- result = a1 + a2;
- uresult = (unsigned int) result;
- ua1 = (unsigned int) a1;
-
- * carry_ptr = ((uresult == a1) ? (a2 != 0) : (uresult < ua1));
-
- * overflow_ptr = ( ( (result & 0x80000000ULL) && !(a1 & 0x80000000ULL) && !(a2 & 0x80000000ULL))
- || (!(result & 0x80000000ULL) && (a1 & 0x80000000ULL) && (a2 & 0x80000000ULL)));
-
- return result;
-}
-
-static ARMdword
-AddU32 (ARMdword a1, ARMdword a2, int * carry_ptr, int * overflow_ptr)
-{
- ARMdword result;
- unsigned int uresult;
- unsigned int ua1;
-
- a1 &= 0xffffffff;
- a2 &= 0xffffffff;
-
- result = a1 + a2;
- uresult = (unsigned int) result;
- ua1 = (unsigned int) a1;
-
- * carry_ptr = ((uresult == a1) ? (a2 != 0) : (uresult < ua1));
-
- * overflow_ptr = ( ( (result & 0x80000000ULL) && !(a1 & 0x80000000ULL) && !(a2 & 0x80000000ULL))
- || (!(result & 0x80000000ULL) && (a1 & 0x80000000ULL) && (a2 & 0x80000000ULL)));
-
- return result;
-}
-
-static ARMword
-AddS16 (ARMword a1, ARMword a2, int * carry_ptr, int * overflow_ptr)
-{
- a1 = EXTEND16 (a1);
- a2 = EXTEND16 (a2);
-
- return Add32 (a1, a2, carry_ptr, overflow_ptr, 0x8000);
-}
-
-static ARMword
-AddU16 (ARMword a1, ARMword a2, int * carry_ptr, int * overflow_ptr)
-{
- a1 &= 0xffff;
- a2 &= 0xffff;
-
- return Add32 (a1, a2, carry_ptr, overflow_ptr, 0x8000);
-}
-
-static ARMword
-AddS8 (ARMword a1, ARMword a2, int * carry_ptr, int * overflow_ptr)
-{
- a1 = EXTEND8 (a1);
- a2 = EXTEND8 (a2);
-
- return Add32 (a1, a2, carry_ptr, overflow_ptr, 0x80);
-}
-
-static ARMword
-AddU8 (ARMword a1, ARMword a2, int * carry_ptr, int * overflow_ptr)
-{
- a1 &= 0xff;
- a2 &= 0xff;
-
- return Add32 (a1, a2, carry_ptr, overflow_ptr, 0x80);
-}
-
-static ARMword
-Sub32 (ARMword a1,
- ARMword a2,
- int * borrow_ptr,
- int * overflow_ptr,
- ARMword sign_mask)
-{
- ARMword result = (a1 - a2);
- unsigned int ua1 = (unsigned int) a1;
- unsigned int ua2 = (unsigned int) a2;
-
- /* A borrow occurs if a2 is (unsigned) larger than a1.
- However the carry flag is *cleared* if a borrow occurs. */
- * borrow_ptr = ! (ua2 > ua1);
-
- /* Overflow occurs when a negative number is subtracted from a
- positive number and the result is negative or a positive
- number is subtracted from a negative number and the result is
- positive. */
- * overflow_ptr = ( (! (a1 & sign_mask) && (a2 & sign_mask) && (result & sign_mask))
- || ((a1 & sign_mask) && ! (a2 & sign_mask) && ! (result & sign_mask)));
-
- return result;
-}
-
-static ARMdword
-SubS32 (ARMdword a1, ARMdword a2, int * borrow_ptr, int * overflow_ptr)
-{
- ARMdword result;
- unsigned int ua1;
- unsigned int ua2;
-
- a1 = EXTEND32 (a1);
- a2 = EXTEND32 (a2);
-
- result = a1 - a2;
- ua1 = (unsigned int) a1;
- ua2 = (unsigned int) a2;
-
- * borrow_ptr = ! (ua2 > ua1);
-
- * overflow_ptr = ( (! (a1 & 0x80000000ULL) && (a2 & 0x80000000ULL) && (result & 0x80000000ULL))
- || ((a1 & 0x80000000ULL) && ! (a2 & 0x80000000ULL) && ! (result & 0x80000000ULL)));
-
- return result;
-}
-
-static ARMword
-SubS16 (ARMword a1, ARMword a2, int * carry_ptr, int * overflow_ptr)
-{
- a1 = EXTEND16 (a1);
- a2 = EXTEND16 (a2);
-
- return Sub32 (a1, a2, carry_ptr, overflow_ptr, 0x8000);
-}
-
-static ARMword
-SubS8 (ARMword a1, ARMword a2, int * carry_ptr, int * overflow_ptr)
-{
- a1 = EXTEND8 (a1);
- a2 = EXTEND8 (a2);
-
- return Sub32 (a1, a2, carry_ptr, overflow_ptr, 0x80);
-}
-
-static ARMword
-SubU16 (ARMword a1, ARMword a2, int * carry_ptr, int * overflow_ptr)
-{
- a1 &= 0xffff;
- a2 &= 0xffff;
-
- return Sub32 (a1, a2, carry_ptr, overflow_ptr, 0x8000);
-}
-
-static ARMword
-SubU8 (ARMword a1, ARMword a2, int * carry_ptr, int * overflow_ptr)
-{
- a1 &= 0xff;
- a2 &= 0xff;
-
- return Sub32 (a1, a2, carry_ptr, overflow_ptr, 0x80);
-}
-
-static ARMdword
-SubU32 (ARMdword a1, ARMdword a2, int * borrow_ptr, int * overflow_ptr)
-{
- ARMdword result;
- unsigned int ua1;
- unsigned int ua2;
-
- a1 &= 0xffffffff;
- a2 &= 0xffffffff;
-
- result = a1 - a2;
- ua1 = (unsigned int) a1;
- ua2 = (unsigned int) a2;
-
- * borrow_ptr = ! (ua2 > ua1);
-
- * overflow_ptr = ( (! (a1 & 0x80000000ULL) && (a2 & 0x80000000ULL) && (result & 0x80000000ULL))
- || ((a1 & 0x80000000ULL) && ! (a2 & 0x80000000ULL) && ! (result & 0x80000000ULL)));
-
- return result;
-}
-
-/* For the saturation. */
-
-static unsigned char
-IwmmxtSaturateU8 (signed short val, int * sat)
-{
- unsigned char rv;
-
- if (val < 0)
- {
- rv = 0;
- *sat = 1;
- }
- else if (val > 0xff)
- {
- rv = 0xff;
- *sat = 1;
- }
- else
- {
- rv = val & 0xff;
- *sat = 0;
- }
- return rv;
-}
-
-static signed char
-IwmmxtSaturateS8 (signed short val, int * sat)
-{
- signed char rv;
-
- if (val < -0x80)
- {
- rv = -0x80;
- *sat = 1;
- }
- else if (val > 0x7f)
- {
- rv = 0x7f;
- *sat = 1;
- }
- else
- {
- rv = val & 0xff;
- *sat = 0;
- }
- return rv;
-}
-
-static unsigned short
-IwmmxtSaturateU16 (signed int val, int * sat)
-{
- unsigned short rv;
-
- if (val < 0)
- {
- rv = 0;
- *sat = 1;
- }
- else if (val > 0xffff)
- {
- rv = 0xffff;
- *sat = 1;
- }
- else
- {
- rv = val & 0xffff;
- *sat = 0;
- }
- return rv;
-}
-
-static signed short
-IwmmxtSaturateS16 (signed int val, int * sat)
-{
- signed short rv;
-
- if (val < -0x8000)
- {
- rv = - 0x8000;
- *sat = 1;
- }
- else if (val > 0x7fff)
- {
- rv = 0x7fff;
- *sat = 1;
- }
- else
- {
- rv = val & 0xffff;
- *sat = 0;
- }
- return rv;
-}
-
-static unsigned long
-IwmmxtSaturateU32 (signed long long val, int * sat)
-{
- unsigned long rv;
-
- if (val < 0)
- {
- rv = 0;
- *sat = 1;
- }
- else if (val > 0xffffffff)
- {
- rv = 0xffffffff;
- *sat = 1;
- }
- else
- {
- rv = val & 0xffffffff;
- *sat = 0;
- }
- return rv;
-}
-
-static signed long
-IwmmxtSaturateS32 (signed long long val, int * sat)
-{
- signed long rv;
-
- if (val < -0x80000000LL)
- {
- rv = -0x80000000;
- *sat = 1;
- }
- else if (val > 0x7fffffff)
- {
- rv = 0x7fffffff;
- *sat = 1;
- }
- else
- {
- rv = val & 0xffffffff;
- *sat = 0;
- }
- return rv;
-}
-
-/* Intel(r) Wireless MMX(tm) technology Acessor functions. */
-
-unsigned
-IwmmxtLDC (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned type ATTRIBUTE_UNUSED,
- ARMword instr,
- ARMword data)
-{
- return ARMul_CANT;
-}
-
-unsigned
-IwmmxtSTC (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned type ATTRIBUTE_UNUSED,
- ARMword instr,
- ARMword * data)
-{
- return ARMul_CANT;
-}
-
-unsigned
-IwmmxtMRC (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned type ATTRIBUTE_UNUSED,
- ARMword instr,
- ARMword * value)
-{
- return ARMul_CANT;
-}
-
-unsigned
-IwmmxtMCR (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned type ATTRIBUTE_UNUSED,
- ARMword instr,
- ARMword value)
-{
- return ARMul_CANT;
-}
-
-unsigned
-IwmmxtCDP (ARMul_State * state, unsigned type, ARMword instr)
-{
- return ARMul_CANT;
-}
-
-/* Intel(r) Wireless MMX(tm) technology instruction implementations. */
-
-static int
-TANDC (ARMul_State * state, ARMword instr)
-{
- ARMword cpsr;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "tandc\n");
-#endif
-
- /* The Rd field must be r15. */
- if (BITS (12, 15) != 15)
- return ARMul_CANT;
-
- /* The CRn field must be r3. */
- if (BITS (16, 19) != 3)
- return ARMul_CANT;
-
- /* The CRm field must be r0. */
- if (BITS (0, 3) != 0)
- return ARMul_CANT;
-
- cpsr = ARMul_GetCPSR (state) & 0x0fffffff;
-
- switch (BITS (22, 23))
- {
- case Bqual:
- cpsr |= ( (wCBITS (wCASF, 28, 31) & wCBITS (wCASF, 24, 27)
- & wCBITS (wCASF, 20, 23) & wCBITS (wCASF, 16, 19)
- & wCBITS (wCASF, 12, 15) & wCBITS (wCASF, 8, 11)
- & wCBITS (wCASF, 4, 7) & wCBITS (wCASF, 0, 3)) << 28);
- break;
-
- case Hqual:
- cpsr |= ( (wCBITS (wCASF, 28, 31) & wCBITS (wCASF, 20, 23)
- & wCBITS (wCASF, 12, 15) & wCBITS (wCASF, 4, 7)) << 28);
- break;
-
- case Wqual:
- cpsr |= ((wCBITS (wCASF, 28, 31) & wCBITS (wCASF, 12, 15)) << 28);
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- ARMul_SetCPSR (state, cpsr);
-
- return ARMul_DONE;
-}
-
-static int
-TBCST (ARMul_State * state, ARMword instr)
-{
- ARMdword Rn;
- int wRd;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "tbcst\n");
-#endif
-
- Rn = state->Reg [BITS (12, 15)];
- if (BITS (12, 15) == 15)
- Rn &= 0xfffffffc;
-
- wRd = BITS (16, 19);
-
- switch (BITS (6, 7))
- {
- case Bqual:
- Rn &= 0xff;
- wR [wRd] = (Rn << 56) | (Rn << 48) | (Rn << 40) | (Rn << 32)
- | (Rn << 24) | (Rn << 16) | (Rn << 8) | Rn;
- break;
-
- case Hqual:
- Rn &= 0xffff;
- wR [wRd] = (Rn << 48) | (Rn << 32) | (Rn << 16) | Rn;
- break;
-
- case Wqual:
- Rn &= 0xffffffff;
- wR [wRd] = (Rn << 32) | Rn;
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- break;
- }
-
- wC [wCon] |= WCON_MUP;
- return ARMul_DONE;
-}
-
-static int
-TEXTRC (ARMul_State * state, ARMword instr)
-{
- ARMword cpsr;
- ARMword selector;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "textrc\n");
-#endif
-
- /* The Rd field must be r15. */
- if (BITS (12, 15) != 15)
- return ARMul_CANT;
-
- /* The CRn field must be r3. */
- if (BITS (16, 19) != 3)
- return ARMul_CANT;
-
- /* The CRm field must be 0xxx. */
- if (BIT (3) != 0)
- return ARMul_CANT;
-
- selector = BITS (0, 2);
- cpsr = ARMul_GetCPSR (state) & 0x0fffffff;
-
- switch (BITS (22, 23))
- {
- case Bqual: selector *= 4; break;
- case Hqual: selector = ((selector & 3) * 8) + 4; break;
- case Wqual: selector = ((selector & 1) * 16) + 12; break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- cpsr |= wCBITS (wCASF, selector, selector + 3) << 28;
- ARMul_SetCPSR (state, cpsr);
-
- return ARMul_DONE;
-}
-
-static int
-TEXTRM (ARMul_State * state, ARMword instr)
-{
- ARMword Rd;
- int offset;
- int wRn;
- int sign;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "textrm\n");
-#endif
-
- wRn = BITS (16, 19);
- sign = BIT (3);
- offset = BITS (0, 2);
-
- switch (BITS (22, 23))
- {
- case Bqual:
- offset *= 8;
- Rd = wRBITS (wRn, offset, offset + 7);
- if (sign)
- Rd = EXTEND8 (Rd);
- break;
-
- case Hqual:
- offset = (offset & 3) * 16;
- Rd = wRBITS (wRn, offset, offset + 15);
- if (sign)
- Rd = EXTEND16 (Rd);
- break;
-
- case Wqual:
- offset = (offset & 1) * 32;
- Rd = wRBITS (wRn, offset, offset + 31);
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- if (BITS (12, 15) == 15)
- ARMul_UndefInstr (state, instr);
- else
- state->Reg [BITS (12, 15)] = Rd;
-
- return ARMul_DONE;
-}
-
-static int
-TINSR (ARMul_State * state, ARMword instr)
-{
- ARMdword data;
- ARMword offset;
- int wRd;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "tinsr\n");
-#endif
-
- wRd = BITS (16, 19);
- data = state->Reg [BITS (12, 15)];
- offset = BITS (0, 2);
-
- switch (BITS (6, 7))
- {
- case Bqual:
- data &= 0xff;
- switch (offset)
- {
- case 0: wR [wRd] = data | (wRBITS (wRd, 8, 63) << 8); break;
- case 1: wR [wRd] = wRBITS (wRd, 0, 7) | (data << 8) | (wRBITS (wRd, 16, 63) << 16); break;
- case 2: wR [wRd] = wRBITS (wRd, 0, 15) | (data << 16) | (wRBITS (wRd, 24, 63) << 24); break;
- case 3: wR [wRd] = wRBITS (wRd, 0, 23) | (data << 24) | (wRBITS (wRd, 32, 63) << 32); break;
- case 4: wR [wRd] = wRBITS (wRd, 0, 31) | (data << 32) | (wRBITS (wRd, 40, 63) << 40); break;
- case 5: wR [wRd] = wRBITS (wRd, 0, 39) | (data << 40) | (wRBITS (wRd, 48, 63) << 48); break;
- case 6: wR [wRd] = wRBITS (wRd, 0, 47) | (data << 48) | (wRBITS (wRd, 56, 63) << 56); break;
- case 7: wR [wRd] = wRBITS (wRd, 0, 55) | (data << 56); break;
- }
- break;
-
- case Hqual:
- data &= 0xffff;
-
- switch (offset & 3)
- {
- case 0: wR [wRd] = data | (wRBITS (wRd, 16, 63) << 16); break;
- case 1: wR [wRd] = wRBITS (wRd, 0, 15) | (data << 16) | (wRBITS (wRd, 32, 63) << 32); break;
- case 2: wR [wRd] = wRBITS (wRd, 0, 31) | (data << 32) | (wRBITS (wRd, 48, 63) << 48); break;
- case 3: wR [wRd] = wRBITS (wRd, 0, 47) | (data << 48); break;
- }
- break;
-
- case Wqual:
- if (offset & 1)
- wR [wRd] = wRBITS (wRd, 0, 31) | (data << 32);
- else
- wR [wRd] = (wRBITS (wRd, 32, 63) << 32) | data;
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- break;
- }
-
- wC [wCon] |= WCON_MUP;
- return ARMul_DONE;
-}
-
-static int
-TMCR (ARMul_State * state, ARMword instr)
-{
- ARMword val;
- int wCreg;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "tmcr\n");
-#endif
-
- if (BITS (0, 3) != 0)
- return ARMul_CANT;
-
- val = state->Reg [BITS (12, 15)];
- if (BITS (12, 15) == 15)
- val &= 0xfffffffc;
-
- wCreg = BITS (16, 19);
-
- switch (wCreg)
- {
- case wCID:
- /* The wCID register is read only. */
- break;
-
- case wCon:
- /* Writing to the MUP or CUP bits clears them. */
- wC [wCon] &= ~ (val & 0x3);
- break;
-
- case wCSSF:
- /* Only the bottom 8 bits can be written to.
- The higher bits write as zero. */
- wC [wCSSF] = (val & 0xff);
- wC [wCon] |= WCON_CUP;
- break;
-
- default:
- wC [wCreg] = val;
- wC [wCon] |= WCON_CUP;
- break;
- }
-
- return ARMul_DONE;
-}
-
-static int
-TMCRR (ARMul_State * state, ARMword instr)
-{
- ARMdword RdHi = state->Reg [BITS (16, 19)];
- ARMword RdLo = state->Reg [BITS (12, 15)];
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "tmcrr\n");
-#endif
-
- if ((BITS (16, 19) == 15) || (BITS (12, 15) == 15))
- return ARMul_CANT;
-
- wR [BITS (0, 3)] = (RdHi << 32) | RdLo;
-
- wC [wCon] |= WCON_MUP;
-
- return ARMul_DONE;
-}
-
-static int
-TMIA (ARMul_State * state, ARMword instr)
-{
- signed long long a, b;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "tmia\n");
-#endif
-
- if ((BITS (0, 3) == 15) || (BITS (12, 15) == 15))
- {
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- a = state->Reg [BITS (0, 3)];
- b = state->Reg [BITS (12, 15)];
-
- a = EXTEND32 (a);
- b = EXTEND32 (b);
-
- wR [BITS (5, 8)] += a * b;
- wC [wCon] |= WCON_MUP;
-
- return ARMul_DONE;
-}
-
-static int
-TMIAPH (ARMul_State * state, ARMword instr)
-{
- signed long a, b, result;
- signed long long r;
- ARMword Rm = state->Reg [BITS (0, 3)];
- ARMword Rs = state->Reg [BITS (12, 15)];
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "tmiaph\n");
-#endif
-
- if (BITS (0, 3) == 15 || BITS (12, 15) == 15)
- {
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- a = SUBSTR (Rs, ARMword, 16, 31);
- b = SUBSTR (Rm, ARMword, 16, 31);
-
- a = EXTEND16 (a);
- b = EXTEND16 (b);
-
- result = a * b;
-
- r = result;
- r = EXTEND32 (r);
-
- wR [BITS (5, 8)] += r;
-
- a = SUBSTR (Rs, ARMword, 0, 15);
- b = SUBSTR (Rm, ARMword, 0, 15);
-
- a = EXTEND16 (a);
- b = EXTEND16 (b);
-
- result = a * b;
-
- r = result;
- r = EXTEND32 (r);
-
- wR [BITS (5, 8)] += r;
- wC [wCon] |= WCON_MUP;
-
- return ARMul_DONE;
-}
-
-static int
-TMIAxy (ARMul_State * state, ARMword instr)
-{
- ARMword Rm;
- ARMword Rs;
- long long temp;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "tmiaxy\n");
-#endif
-
- if (BITS (0, 3) == 15 || BITS (12, 15) == 15)
- {
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- Rm = state->Reg [BITS (0, 3)];
- if (BIT (17))
- Rm >>= 16;
- else
- Rm &= 0xffff;
-
- Rs = state->Reg [BITS (12, 15)];
- if (BIT (16))
- Rs >>= 16;
- else
- Rs &= 0xffff;
-
- if (Rm & (1 << 15))
- Rm -= 1 << 16;
-
- if (Rs & (1 << 15))
- Rs -= 1 << 16;
-
- Rm *= Rs;
- temp = Rm;
-
- if (temp & (1 << 31))
- temp -= 1ULL << 32;
-
- wR [BITS (5, 8)] += temp;
- wC [wCon] |= WCON_MUP;
-
- return ARMul_DONE;
-}
-
-static int
-TMOVMSK (ARMul_State * state, ARMword instr)
-{
- ARMdword result;
- int wRn;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "tmovmsk\n");
-#endif
-
- /* The CRm field must be r0. */
- if (BITS (0, 3) != 0)
- return ARMul_CANT;
-
- wRn = BITS (16, 19);
-
- switch (BITS (22, 23))
- {
- case Bqual:
- result = ( (wRBITS (wRn, 63, 63) << 7)
- | (wRBITS (wRn, 55, 55) << 6)
- | (wRBITS (wRn, 47, 47) << 5)
- | (wRBITS (wRn, 39, 39) << 4)
- | (wRBITS (wRn, 31, 31) << 3)
- | (wRBITS (wRn, 23, 23) << 2)
- | (wRBITS (wRn, 15, 15) << 1)
- | (wRBITS (wRn, 7, 7) << 0));
- break;
-
- case Hqual:
- result = ( (wRBITS (wRn, 63, 63) << 3)
- | (wRBITS (wRn, 47, 47) << 2)
- | (wRBITS (wRn, 31, 31) << 1)
- | (wRBITS (wRn, 15, 15) << 0));
- break;
-
- case Wqual:
- result = (wRBITS (wRn, 63, 63) << 1) | wRBITS (wRn, 31, 31);
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- state->Reg [BITS (12, 15)] = result;
-
- return ARMul_DONE;
-}
-
-static int
-TMRC (ARMul_State * state, ARMword instr)
-{
- int reg = BITS (12, 15);
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "tmrc\n");
-#endif
-
- if (BITS (0, 3) != 0)
- return ARMul_CANT;
-
- if (reg == 15)
- ARMul_UndefInstr (state, instr);
- else
- state->Reg [reg] = wC [BITS (16, 19)];
-
- return ARMul_DONE;
-}
-
-static int
-TMRRC (ARMul_State * state, ARMword instr)
-{
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "tmrrc\n");
-#endif
-
- if ((BITS (16, 19) == 15) || (BITS (12, 15) == 15) || (BITS (4, 11) != 0))
- ARMul_UndefInstr (state, instr);
- else
- {
- state->Reg [BITS (16, 19)] = wRBITS (BITS (0, 3), 32, 63);
- state->Reg [BITS (12, 15)] = wRBITS (BITS (0, 3), 0, 31);
- }
-
- return ARMul_DONE;
-}
-
-static int
-TORC (ARMul_State * state, ARMword instr)
-{
- ARMword cpsr = ARMul_GetCPSR (state);
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "torc\n");
-#endif
-
- /* The Rd field must be r15. */
- if (BITS (12, 15) != 15)
- return ARMul_CANT;
-
- /* The CRn field must be r3. */
- if (BITS (16, 19) != 3)
- return ARMul_CANT;
-
- /* The CRm field must be r0. */
- if (BITS (0, 3) != 0)
- return ARMul_CANT;
-
- cpsr &= 0x0fffffff;
-
- switch (BITS (22, 23))
- {
- case Bqual:
- cpsr |= ( (wCBITS (wCASF, 28, 31) | wCBITS (wCASF, 24, 27)
- | wCBITS (wCASF, 20, 23) | wCBITS (wCASF, 16, 19)
- | wCBITS (wCASF, 12, 15) | wCBITS (wCASF, 8, 11)
- | wCBITS (wCASF, 4, 7) | wCBITS (wCASF, 0, 3)) << 28);
- break;
-
- case Hqual:
- cpsr |= ( (wCBITS (wCASF, 28, 31) | wCBITS (wCASF, 20, 23)
- | wCBITS (wCASF, 12, 15) | wCBITS (wCASF, 4, 7)) << 28);
- break;
-
- case Wqual:
- cpsr |= ((wCBITS (wCASF, 28, 31) | wCBITS (wCASF, 12, 15)) << 28);
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- ARMul_SetCPSR (state, cpsr);
-
- return ARMul_DONE;
-}
-
-static int
-WACC (ARMul_State * state, ARMword instr)
-{
- int wRn;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wacc\n");
-#endif
-
- wRn = BITS (16, 19);
-
- switch (BITS (22, 23))
- {
- case Bqual:
- wR [BITS (12, 15)] =
- wRBITS (wRn, 56, 63) + wRBITS (wRn, 48, 55)
- + wRBITS (wRn, 40, 47) + wRBITS (wRn, 32, 39)
- + wRBITS (wRn, 24, 31) + wRBITS (wRn, 16, 23)
- + wRBITS (wRn, 8, 15) + wRBITS (wRn, 0, 7);
- break;
-
- case Hqual:
- wR [BITS (12, 15)] =
- wRBITS (wRn, 48, 63) + wRBITS (wRn, 32, 47)
- + wRBITS (wRn, 16, 31) + wRBITS (wRn, 0, 15);
- break;
-
- case Wqual:
- wR [BITS (12, 15)] = wRBITS (wRn, 32, 63) + wRBITS (wRn, 0, 31);
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- break;
- }
-
- wC [wCon] |= WCON_MUP;
- return ARMul_DONE;
-}
-
-static int
-WADD (ARMul_State * state, ARMword instr)
-{
- ARMdword r = 0;
- ARMdword x;
- ARMdword s;
- ARMword psr = 0;
- int i;
- int carry;
- int overflow;
- int satrv[8];
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wadd\n");
-#endif
-
- /* Add two numbers using the specified function,
- leaving setting the carry bit as required. */
-#define ADDx(x, y, m, f) \
- (*f) (wRBITS (BITS (16, 19), (x), (y)) & (m), \
- wRBITS (BITS ( 0, 3), (x), (y)) & (m), \
- & carry, & overflow)
-
- switch (BITS (22, 23))
- {
- case Bqual:
- for (i = 0; i < 8; i++)
- {
- switch (BITS (20, 21))
- {
- case NoSaturation:
- s = ADDx ((i * 8), (i * 8) + 7, 0xff, AddS8);
- satrv [BITIDX8 (i)] = 0;
- r |= (s & 0xff) << (i * 8);
- SIMD8_SET (psr, NBIT8 (s), SIMD_NBIT, i);
- SIMD8_SET (psr, ZBIT8 (s), SIMD_ZBIT, i);
- SIMD8_SET (psr, carry, SIMD_CBIT, i);
- SIMD8_SET (psr, overflow, SIMD_VBIT, i);
- break;
-
- case UnsignedSaturation:
- s = ADDx ((i * 8), (i * 8) + 7, 0xff, AddU8);
- x = IwmmxtSaturateU8 (s, satrv + BITIDX8 (i));
- r |= (x & 0xff) << (i * 8);
- SIMD8_SET (psr, NBIT8 (x), SIMD_NBIT, i);
- SIMD8_SET (psr, ZBIT8 (x), SIMD_ZBIT, i);
- if (! satrv [BITIDX8 (i)])
- {
- SIMD8_SET (psr, carry, SIMD_CBIT, i);
- SIMD8_SET (psr, overflow, SIMD_VBIT, i);
- }
- break;
-
- case SignedSaturation:
- s = ADDx ((i * 8), (i * 8) + 7, 0xff, AddS8);
- x = IwmmxtSaturateS8 (s, satrv + BITIDX8 (i));
- r |= (x & 0xff) << (i * 8);
- SIMD8_SET (psr, NBIT8 (x), SIMD_NBIT, i);
- SIMD8_SET (psr, ZBIT8 (x), SIMD_ZBIT, i);
- if (! satrv [BITIDX8 (i)])
- {
- SIMD8_SET (psr, carry, SIMD_CBIT, i);
- SIMD8_SET (psr, overflow, SIMD_VBIT, i);
- }
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
- }
- break;
-
- case Hqual:
- satrv[0] = satrv[2] = satrv[4] = satrv[6] = 0;
-
- for (i = 0; i < 4; i++)
- {
- switch (BITS (20, 21))
- {
- case NoSaturation:
- s = ADDx ((i * 16), (i * 16) + 15, 0xffff, AddS16);
- satrv [BITIDX16 (i)] = 0;
- r |= (s & 0xffff) << (i * 16);
- SIMD16_SET (psr, NBIT16 (s), SIMD_NBIT, i);
- SIMD16_SET (psr, ZBIT16 (s), SIMD_ZBIT, i);
- SIMD16_SET (psr, carry, SIMD_CBIT, i);
- SIMD16_SET (psr, overflow, SIMD_VBIT, i);
- break;
-
- case UnsignedSaturation:
- s = ADDx ((i * 16), (i * 16) + 15, 0xffff, AddU16);
- x = IwmmxtSaturateU16 (s, satrv + BITIDX16 (i));
- r |= (x & 0xffff) << (i * 16);
- SIMD16_SET (psr, NBIT16 (x), SIMD_NBIT, i);
- SIMD16_SET (psr, ZBIT16 (x), SIMD_ZBIT, i);
- if (! satrv [BITIDX16 (i)])
- {
- SIMD16_SET (psr, carry, SIMD_CBIT, i);
- SIMD16_SET (psr, overflow, SIMD_VBIT, i);
- }
- break;
-
- case SignedSaturation:
- s = ADDx ((i * 16), (i * 16) + 15, 0xffff, AddS16);
- x = IwmmxtSaturateS16 (s, satrv + BITIDX16 (i));
- r |= (x & 0xffff) << (i * 16);
- SIMD16_SET (psr, NBIT16 (x), SIMD_NBIT, i);
- SIMD16_SET (psr, ZBIT16 (x), SIMD_ZBIT, i);
- if (! satrv [BITIDX16 (i)])
- {
- SIMD16_SET (psr, carry, SIMD_CBIT, i);
- SIMD16_SET (psr, overflow, SIMD_VBIT, i);
- }
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
- }
- break;
-
- case Wqual:
- satrv[0] = satrv[1] = satrv[2] = satrv[4] = satrv[5] = satrv[6] = 0;
-
- for (i = 0; i < 2; i++)
- {
- switch (BITS (20, 21))
- {
- case NoSaturation:
- s = ADDx ((i * 32), (i * 32) + 31, 0xffffffff, AddS32);
- satrv [BITIDX32 (i)] = 0;
- r |= (s & 0xffffffff) << (i * 32);
- SIMD32_SET (psr, NBIT32 (s), SIMD_NBIT, i);
- SIMD32_SET (psr, ZBIT32 (s), SIMD_ZBIT, i);
- SIMD32_SET (psr, carry, SIMD_CBIT, i);
- SIMD32_SET (psr, overflow, SIMD_VBIT, i);
- break;
-
- case UnsignedSaturation:
- s = ADDx ((i * 32), (i * 32) + 31, 0xffffffff, AddU32);
- x = IwmmxtSaturateU32 (s, satrv + BITIDX32 (i));
- r |= (x & 0xffffffff) << (i * 32);
- SIMD32_SET (psr, NBIT32 (x), SIMD_NBIT, i);
- SIMD32_SET (psr, ZBIT32 (x), SIMD_ZBIT, i);
- if (! satrv [BITIDX32 (i)])
- {
- SIMD32_SET (psr, carry, SIMD_CBIT, i);
- SIMD32_SET (psr, overflow, SIMD_VBIT, i);
- }
- break;
-
- case SignedSaturation:
- s = ADDx ((i * 32), (i * 32) + 31, 0xffffffff, AddS32);
- x = IwmmxtSaturateS32 (s, satrv + BITIDX32 (i));
- r |= (x & 0xffffffff) << (i * 32);
- SIMD32_SET (psr, NBIT32 (x), SIMD_NBIT, i);
- SIMD32_SET (psr, ZBIT32 (x), SIMD_ZBIT, i);
- if (! satrv [BITIDX32 (i)])
- {
- SIMD32_SET (psr, carry, SIMD_CBIT, i);
- SIMD32_SET (psr, overflow, SIMD_VBIT, i);
- }
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
- }
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- wC [wCASF] = psr;
- wR [BITS (12, 15)] = r;
- wC [wCon] |= (WCON_MUP | WCON_CUP);
-
- SET_wCSSFvec (satrv);
-
-#undef ADDx
-
- return ARMul_DONE;
-}
-
-static int
-WALIGNI (ARMword instr)
-{
- int shift = BITS (20, 22) * 8;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "waligni\n");
-#endif
-
- if (shift)
- wR [BITS (12, 15)] =
- wRBITS (BITS (16, 19), shift, 63)
- | (wRBITS (BITS (0, 3), 0, shift) << ((64 - shift)));
- else
- wR [BITS (12, 15)] = wR [BITS (16, 19)];
-
- wC [wCon] |= WCON_MUP;
- return ARMul_DONE;
-}
-
-static int
-WALIGNR (ARMul_State * state, ARMword instr)
-{
- int shift = (wC [BITS (20, 21) + 8] & 0x7) * 8;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "walignr\n");
-#endif
-
- if (shift)
- wR [BITS (12, 15)] =
- wRBITS (BITS (16, 19), shift, 63)
- | (wRBITS (BITS (0, 3), 0, shift) << ((64 - shift)));
- else
- wR [BITS (12, 15)] = wR [BITS (16, 19)];
-
- wC [wCon] |= WCON_MUP;
- return ARMul_DONE;
-}
-
-static int
-WAND (ARMword instr)
-{
- ARMdword result;
- ARMword psr = 0;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wand\n");
-#endif
-
- result = wR [BITS (16, 19)] & wR [BITS (0, 3)];
- wR [BITS (12, 15)] = result;
-
- SIMD64_SET (psr, (result == 0), SIMD_ZBIT);
- SIMD64_SET (psr, (result & (1ULL << 63)), SIMD_NBIT);
-
- wC [wCASF] = psr;
- wC [wCon] |= (WCON_CUP | WCON_MUP);
-
- return ARMul_DONE;
-}
-
-static int
-WANDN (ARMword instr)
-{
- ARMdword result;
- ARMword psr = 0;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wandn\n");
-#endif
-
- result = wR [BITS (16, 19)] & ~ wR [BITS (0, 3)];
- wR [BITS (12, 15)] = result;
-
- SIMD64_SET (psr, (result == 0), SIMD_ZBIT);
- SIMD64_SET (psr, (result & (1ULL << 63)), SIMD_NBIT);
-
- wC [wCASF] = psr;
- wC [wCon] |= (WCON_CUP | WCON_MUP);
-
- return ARMul_DONE;
-}
-
-static int
-WAVG2 (ARMword instr)
-{
- ARMdword r = 0;
- ARMword psr = 0;
- ARMdword s;
- int i;
- int round = BIT (20) ? 1 : 0;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wavg2\n");
-#endif
-
-#define AVG2x(x, y, m) (((wRBITS (BITS (16, 19), (x), (y)) & (m)) \
- + (wRBITS (BITS ( 0, 3), (x), (y)) & (m)) \
- + round) / 2)
-
- if (BIT (22))
- {
- for (i = 0; i < 4; i++)
- {
- s = AVG2x ((i * 16), (i * 16) + 15, 0xffff) & 0xffff;
- SIMD16_SET (psr, ZBIT16 (s), SIMD_ZBIT, i);
- r |= s << (i * 16);
- }
- }
- else
- {
- for (i = 0; i < 8; i++)
- {
- s = AVG2x ((i * 8), (i * 8) + 7, 0xff) & 0xff;
- SIMD8_SET (psr, ZBIT8 (s), SIMD_ZBIT, i);
- r |= s << (i * 8);
- }
- }
-
- wR [BITS (12, 15)] = r;
- wC [wCASF] = psr;
- wC [wCon] |= (WCON_CUP | WCON_MUP);
-
- return ARMul_DONE;
-}
-
-static int
-WCMPEQ (ARMul_State * state, ARMword instr)
-{
- ARMdword r = 0;
- ARMword psr = 0;
- ARMdword s;
- int i;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wcmpeq\n");
-#endif
-
- switch (BITS (22, 23))
- {
- case Bqual:
- for (i = 0; i < 8; i++)
- {
- s = wRBYTE (BITS (16, 19), i) == wRBYTE (BITS (0, 3), i) ? 0xff : 0;
- r |= s << (i * 8);
- SIMD8_SET (psr, NBIT8 (s), SIMD_NBIT, i);
- SIMD8_SET (psr, ZBIT8 (s), SIMD_ZBIT, i);
- }
- break;
-
- case Hqual:
- for (i = 0; i < 4; i++)
- {
- s = wRHALF (BITS (16, 19), i) == wRHALF (BITS (0, 3), i) ? 0xffff : 0;
- r |= s << (i * 16);
- SIMD16_SET (psr, NBIT16 (s), SIMD_NBIT, i);
- SIMD16_SET (psr, ZBIT16 (s), SIMD_ZBIT, i);
- }
- break;
-
- case Wqual:
- for (i = 0; i < 2; i++)
- {
- s = wRWORD (BITS (16, 19), i) == wRWORD (BITS (0, 3), i) ? 0xffffffff : 0;
- r |= s << (i * 32);
- SIMD32_SET (psr, NBIT32 (s), SIMD_NBIT, i);
- SIMD32_SET (psr, ZBIT32 (s), SIMD_ZBIT, i);
- }
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- wC [wCASF] = psr;
- wR [BITS (12, 15)] = r;
- wC [wCon] |= (WCON_CUP | WCON_MUP);
-
- return ARMul_DONE;
-}
-
-static int
-WCMPGT (ARMul_State * state, ARMword instr)
-{
- ARMdword r = 0;
- ARMword psr = 0;
- ARMdword s;
- int i;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wcmpgt\n");
-#endif
-
- switch (BITS (22, 23))
- {
- case Bqual:
- if (BIT (21))
- {
- /* Use a signed comparison. */
- for (i = 0; i < 8; i++)
- {
- signed char a, b;
-
- a = wRBYTE (BITS (16, 19), i);
- b = wRBYTE (BITS (0, 3), i);
-
- s = (a > b) ? 0xff : 0;
- r |= s << (i * 8);
- SIMD8_SET (psr, NBIT8 (s), SIMD_NBIT, i);
- SIMD8_SET (psr, ZBIT8 (s), SIMD_ZBIT, i);
- }
- }
- else
- {
- for (i = 0; i < 8; i++)
- {
- s = (wRBYTE (BITS (16, 19), i) > wRBYTE (BITS (0, 3), i))
- ? 0xff : 0;
- r |= s << (i * 8);
- SIMD8_SET (psr, NBIT8 (s), SIMD_NBIT, i);
- SIMD8_SET (psr, ZBIT8 (s), SIMD_ZBIT, i);
- }
- }
- break;
-
- case Hqual:
- if (BIT (21))
- {
- for (i = 0; i < 4; i++)
- {
- signed int a, b;
-
- a = wRHALF (BITS (16, 19), i);
- a = EXTEND16 (a);
-
- b = wRHALF (BITS (0, 3), i);
- b = EXTEND16 (b);
-
- s = (a > b) ? 0xffff : 0;
- r |= s << (i * 16);
- SIMD16_SET (psr, NBIT16 (s), SIMD_NBIT, i);
- SIMD16_SET (psr, ZBIT16 (s), SIMD_ZBIT, i);
- }
- }
- else
- {
- for (i = 0; i < 4; i++)
- {
- s = (wRHALF (BITS (16, 19), i) > wRHALF (BITS (0, 3), i))
- ? 0xffff : 0;
- r |= s << (i * 16);
- SIMD16_SET (psr, NBIT16 (s), SIMD_NBIT, i);
- SIMD16_SET (psr, ZBIT16 (s), SIMD_ZBIT, i);
- }
- }
- break;
-
- case Wqual:
- if (BIT (21))
- {
- for (i = 0; i < 2; i++)
- {
- signed long a, b;
-
- a = EXTEND32 (wRWORD (BITS (16, 19), i));
- b = EXTEND32 (wRWORD (BITS (0, 3), i));
-
- s = (a > b) ? 0xffffffff : 0;
- r |= s << (i * 32);
-
- SIMD32_SET (psr, NBIT32 (s), SIMD_NBIT, i);
- SIMD32_SET (psr, ZBIT32 (s), SIMD_ZBIT, i);
- }
- }
- else
- {
- for (i = 0; i < 2; i++)
- {
- s = (wRWORD (BITS (16, 19), i) > wRWORD (BITS (0, 3), i))
- ? 0xffffffff : 0;
- r |= s << (i * 32);
- SIMD32_SET (psr, NBIT32 (s), SIMD_NBIT, i);
- SIMD32_SET (psr, ZBIT32 (s), SIMD_ZBIT, i);
- }
- }
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- wC [wCASF] = psr;
- wR [BITS (12, 15)] = r;
- wC [wCon] |= (WCON_CUP | WCON_MUP);
-
- return ARMul_DONE;
-}
-
-static ARMword
-Compute_Iwmmxt_Address (ARMul_State * state, ARMword instr, int * pFailed)
-{
- ARMword Rn;
- ARMword addr;
- ARMword offset;
- ARMword multiplier;
-
- * pFailed = 0;
- Rn = BITS (16, 19);
- addr = state->Reg [Rn];
- offset = BITS (0, 7);
- multiplier = BIT (8) ? 4 : 1;
-
- if (BIT (24)) /* P */
- {
- /* Pre Indexed Addressing. */
- if (BIT (23))
- addr += offset * multiplier;
- else
- addr -= offset * multiplier;
-
- /* Immediate Pre-Indexed. */
- if (BIT (21)) /* W */
- {
- if (Rn == 15)
- {
- /* Writeback into R15 is UNPREDICTABLE. */
-#ifdef DEBUG
- fprintf (stderr, "iWMMXt: writeback into r15\n");
-#endif
- * pFailed = 1;
- }
- else
- state->Reg [Rn] = addr;
- }
- }
- else
- {
- /* Post Indexed Addressing. */
- if (BIT (21)) /* W */
- {
- /* Handle the write back of the final address. */
- if (Rn == 15)
- {
- /* Writeback into R15 is UNPREDICTABLE. */
-#ifdef DEBUG
- fprintf (stderr, "iWMMXt: writeback into r15\n");
-#endif
- * pFailed = 1;
- }
- else
- {
- ARMword increment;
-
- if (BIT (23))
- increment = offset * multiplier;
- else
- increment = - (offset * multiplier);
-
- state->Reg [Rn] = addr + increment;
- }
- }
- else
- {
- /* P == 0, W == 0, U == 0 is UNPREDICTABLE. */
- if (BIT (23) == 0)
- {
-#ifdef DEBUG
- fprintf (stderr, "iWMMXt: undefined addressing mode\n");
-#endif
- * pFailed = 1;
- }
- }
- }
-
- return addr;
-}
-
-static ARMdword
-Iwmmxt_Load_Double_Word (ARMul_State * state, ARMword address)
-{
- ARMdword value;
-
- /* The address must be aligned on a 8 byte boundary. */
- if (address & 0x7)
- {
- fprintf (stderr, "iWMMXt: At addr 0x%x: Unaligned double word load from 0x%x\n",
- (state->Reg[15] - 8) & ~0x3, address);
-#ifdef DEBUG
-#endif
- /* No need to check for alignment traps. An unaligned
- double word load with alignment trapping disabled is
- UNPREDICTABLE. */
- ARMul_Abort (state, ARMul_DataAbortV);
- }
-
- /* Load the words. */
- if (! state->bigendSig)
- {
- value = ARMul_LoadWordN (state, address + 4);
- value <<= 32;
- value |= ARMul_LoadWordN (state, address);
- }
- else
- {
- value = ARMul_LoadWordN (state, address);
- value <<= 32;
- value |= ARMul_LoadWordN (state, address + 4);
- }
-
- /* Check for data aborts. */
- if (state->Aborted)
- ARMul_Abort (state, ARMul_DataAbortV);
- else
- ARMul_Icycles (state, 2, 0L);
-
- return value;
-}
-
-static ARMword
-Iwmmxt_Load_Word (ARMul_State * state, ARMword address)
-{
- ARMword value;
-
- /* Check for a misaligned address. */
- if (address & 3)
- {
- if ((read_cp15_reg (1, 0, 0) & ARMul_CP15_R1_ALIGN))
- ARMul_Abort (state, ARMul_DataAbortV);
- else
- address &= ~ 3;
- }
-
- value = ARMul_LoadWordN (state, address);
-
- if (state->Aborted)
- ARMul_Abort (state, ARMul_DataAbortV);
- else
- ARMul_Icycles (state, 1, 0L);
-
- return value;
-}
-
-static ARMword
-Iwmmxt_Load_Half_Word (ARMul_State * state, ARMword address)
-{
- ARMword value;
-
- /* Check for a misaligned address. */
- if (address & 1)
- {
- if ((read_cp15_reg (1, 0, 0) & ARMul_CP15_R1_ALIGN))
- ARMul_Abort (state, ARMul_DataAbortV);
- else
- address &= ~ 1;
- }
-
- value = ARMul_LoadHalfWord (state, address);
-
- if (state->Aborted)
- ARMul_Abort (state, ARMul_DataAbortV);
- else
- ARMul_Icycles (state, 1, 0L);
-
- return value;
-}
-
-static ARMword
-Iwmmxt_Load_Byte (ARMul_State * state, ARMword address)
-{
- ARMword value;
-
- value = ARMul_LoadByte (state, address);
-
- if (state->Aborted)
- ARMul_Abort (state, ARMul_DataAbortV);
- else
- ARMul_Icycles (state, 1, 0L);
-
- return value;
-}
-
-static void
-Iwmmxt_Store_Double_Word (ARMul_State * state, ARMword address, ARMdword value)
-{
- /* The address must be aligned on a 8 byte boundary. */
- if (address & 0x7)
- {
- fprintf (stderr, "iWMMXt: At addr 0x%x: Unaligned double word store to 0x%x\n",
- (state->Reg[15] - 8) & ~0x3, address);
-#ifdef DEBUG
-#endif
- /* No need to check for alignment traps. An unaligned
- double word store with alignment trapping disabled is
- UNPREDICTABLE. */
- ARMul_Abort (state, ARMul_DataAbortV);
- }
-
- /* Store the words. */
- if (! state->bigendSig)
- {
- ARMul_StoreWordN (state, address, value);
- ARMul_StoreWordN (state, address + 4, value >> 32);
- }
- else
- {
- ARMul_StoreWordN (state, address + 4, value);
- ARMul_StoreWordN (state, address, value >> 32);
- }
-
- /* Check for data aborts. */
- if (state->Aborted)
- ARMul_Abort (state, ARMul_DataAbortV);
- else
- ARMul_Icycles (state, 2, 0L);
-}
-
-static void
-Iwmmxt_Store_Word (ARMul_State * state, ARMword address, ARMword value)
-{
- /* Check for a misaligned address. */
- if (address & 3)
- {
- if ((read_cp15_reg (1, 0, 0) & ARMul_CP15_R1_ALIGN))
- ARMul_Abort (state, ARMul_DataAbortV);
- else
- address &= ~ 3;
- }
-
- ARMul_StoreWordN (state, address, value);
-
- if (state->Aborted)
- ARMul_Abort (state, ARMul_DataAbortV);
-}
-
-static void
-Iwmmxt_Store_Half_Word (ARMul_State * state, ARMword address, ARMword value)
-{
- /* Check for a misaligned address. */
- if (address & 1)
- {
- if ((read_cp15_reg (1, 0, 0) & ARMul_CP15_R1_ALIGN))
- ARMul_Abort (state, ARMul_DataAbortV);
- else
- address &= ~ 1;
- }
-
- ARMul_StoreHalfWord (state, address, value);
-
- if (state->Aborted)
- ARMul_Abort (state, ARMul_DataAbortV);
-}
-
-static void
-Iwmmxt_Store_Byte (ARMul_State * state, ARMword address, ARMword value)
-{
- ARMul_StoreByte (state, address, value);
-
- if (state->Aborted)
- ARMul_Abort (state, ARMul_DataAbortV);
-}
-
-static int
-WLDR (ARMul_State * state, ARMword instr)
-{
- ARMword address;
- int failed;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wldr\n");
-#endif
-
- address = Compute_Iwmmxt_Address (state, instr, & failed);
- if (failed)
- return ARMul_CANT;
-
- if (BITS (28, 31) == 0xf)
- {
- /* WLDRW wCx */
- wC [BITS (12, 15)] = Iwmmxt_Load_Word (state, address);
- }
- else if (BIT (8) == 0)
- {
- if (BIT (22) == 0)
- /* WLDRB */
- wR [BITS (12, 15)] = Iwmmxt_Load_Byte (state, address);
- else
- /* WLDRH */
- wR [BITS (12, 15)] = Iwmmxt_Load_Half_Word (state, address);
- }
- else
- {
- if (BIT (22) == 0)
- /* WLDRW wRd */
- wR [BITS (12, 15)] = Iwmmxt_Load_Word (state, address);
- else
- /* WLDRD */
- wR [BITS (12, 15)] = Iwmmxt_Load_Double_Word (state, address);
- }
-
- wC [wCon] |= WCON_MUP;
-
- return ARMul_DONE;
-}
-
-static int
-WMAC (ARMword instr)
-{
- int i;
- ARMdword t = 0;
- ARMword a, b;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wmac\n");
-#endif
-
- for (i = 0; i < 4; i++)
- {
- if (BIT (21))
- {
- /* Signed. */
- signed long s;
-
- a = wRHALF (BITS (16, 19), i);
- a = EXTEND16 (a);
-
- b = wRHALF (BITS (0, 3), i);
- b = EXTEND16 (b);
-
- s = (signed long) a * (signed long) b;
-
- t = t + (ARMdword) s;
- }
- else
- {
- /* Unsigned. */
- a = wRHALF (BITS (16, 19), i);
- b = wRHALF (BITS ( 0, 3), i);
-
- t += a * b;
- }
- }
-
- if (BIT (21))
- t = EXTEND32 (t);
- else
- t &= 0xffffffff;
-
- if (BIT (20))
- wR [BITS (12, 15)] = t;
- else
- wR[BITS (12, 15)] += t;
-
- wC [wCon] |= WCON_MUP;
-
- return ARMul_DONE;
-}
-
-static int
-WMADD (ARMword instr)
-{
- ARMdword r = 0;
- int i;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wmadd\n");
-#endif
-
- for (i = 0; i < 2; i++)
- {
- ARMdword s1, s2;
-
- if (BIT (21)) /* Signed. */
- {
- signed long a, b;
-
- a = wRHALF (BITS (16, 19), i * 2);
- a = EXTEND16 (a);
-
- b = wRHALF (BITS (0, 3), i * 2);
- b = EXTEND16 (b);
-
- s1 = (ARMdword) (a * b);
-
- a = wRHALF (BITS (16, 19), i * 2 + 1);
- a = EXTEND16 (a);
-
- b = wRHALF (BITS (0, 3), i * 2 + 1);
- b = EXTEND16 (b);
-
- s2 = (ARMdword) (a * b);
- }
- else /* Unsigned. */
- {
- unsigned long a, b;
-
- a = wRHALF (BITS (16, 19), i * 2);
- b = wRHALF (BITS ( 0, 3), i * 2);
-
- s1 = (ARMdword) (a * b);
-
- a = wRHALF (BITS (16, 19), i * 2 + 1);
- b = wRHALF (BITS ( 0, 3), i * 2 + 1);
-
- s2 = (ARMdword) a * b;
- }
-
- r |= (ARMdword) ((s1 + s2) & 0xffffffff) << (i ? 32 : 0);
- }
-
- wR [BITS (12, 15)] = r;
- wC [wCon] |= WCON_MUP;
-
- return ARMul_DONE;
-}
-
-static int
-WMAX (ARMul_State * state, ARMword instr)
-{
- ARMdword r = 0;
- ARMdword s;
- int i;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wmax\n");
-#endif
-
- switch (BITS (22, 23))
- {
- case Bqual:
- for (i = 0; i < 8; i++)
- if (BIT (21)) /* Signed. */
- {
- int a, b;
-
- a = wRBYTE (BITS (16, 19), i);
- a = EXTEND8 (a);
-
- b = wRBYTE (BITS (0, 3), i);
- b = EXTEND8 (b);
-
- if (a > b)
- s = a;
- else
- s = b;
-
- r |= (s & 0xff) << (i * 8);
- }
- else /* Unsigned. */
- {
- unsigned int a, b;
-
- a = wRBYTE (BITS (16, 19), i);
- b = wRBYTE (BITS (0, 3), i);
-
- if (a > b)
- s = a;
- else
- s = b;
-
- r |= (s & 0xff) << (i * 8);
- }
- break;
-
- case Hqual:
- for (i = 0; i < 4; i++)
- if (BIT (21)) /* Signed. */
- {
- int a, b;
-
- a = wRHALF (BITS (16, 19), i);
- a = EXTEND16 (a);
-
- b = wRHALF (BITS (0, 3), i);
- b = EXTEND16 (b);
-
- if (a > b)
- s = a;
- else
- s = b;
-
- r |= (s & 0xffff) << (i * 16);
- }
- else /* Unsigned. */
- {
- unsigned int a, b;
-
- a = wRHALF (BITS (16, 19), i);
- b = wRHALF (BITS (0, 3), i);
-
- if (a > b)
- s = a;
- else
- s = b;
-
- r |= (s & 0xffff) << (i * 16);
- }
- break;
-
- case Wqual:
- for (i = 0; i < 2; i++)
- if (BIT (21)) /* Signed. */
- {
- int a, b;
-
- a = wRWORD (BITS (16, 19), i);
- b = wRWORD (BITS (0, 3), i);
-
- if (a > b)
- s = a;
- else
- s = b;
-
- r |= (s & 0xffffffff) << (i * 32);
- }
- else
- {
- unsigned int a, b;
-
- a = wRWORD (BITS (16, 19), i);
- b = wRWORD (BITS (0, 3), i);
-
- if (a > b)
- s = a;
- else
- s = b;
-
- r |= (s & 0xffffffff) << (i * 32);
- }
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- wR [BITS (12, 15)] = r;
- wC [wCon] |= WCON_MUP;
-
- return ARMul_DONE;
-}
-
-static int
-WMIN (ARMul_State * state, ARMword instr)
-{
- ARMdword r = 0;
- ARMdword s;
- int i;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wmin\n");
-#endif
-
- switch (BITS (22, 23))
- {
- case Bqual:
- for (i = 0; i < 8; i++)
- if (BIT (21)) /* Signed. */
- {
- int a, b;
-
- a = wRBYTE (BITS (16, 19), i);
- a = EXTEND8 (a);
-
- b = wRBYTE (BITS (0, 3), i);
- b = EXTEND8 (b);
-
- if (a < b)
- s = a;
- else
- s = b;
-
- r |= (s & 0xff) << (i * 8);
- }
- else /* Unsigned. */
- {
- unsigned int a, b;
-
- a = wRBYTE (BITS (16, 19), i);
- b = wRBYTE (BITS (0, 3), i);
-
- if (a < b)
- s = a;
- else
- s = b;
-
- r |= (s & 0xff) << (i * 8);
- }
- break;
-
- case Hqual:
- for (i = 0; i < 4; i++)
- if (BIT (21)) /* Signed. */
- {
- int a, b;
-
- a = wRHALF (BITS (16, 19), i);
- a = EXTEND16 (a);
-
- b = wRHALF (BITS (0, 3), i);
- b = EXTEND16 (b);
-
- if (a < b)
- s = a;
- else
- s = b;
-
- r |= (s & 0xffff) << (i * 16);
- }
- else
- {
- /* Unsigned. */
- unsigned int a, b;
-
- a = wRHALF (BITS (16, 19), i);
- b = wRHALF (BITS ( 0, 3), i);
-
- if (a < b)
- s = a;
- else
- s = b;
-
- r |= (s & 0xffff) << (i * 16);
- }
- break;
-
- case Wqual:
- for (i = 0; i < 2; i++)
- if (BIT (21)) /* Signed. */
- {
- int a, b;
-
- a = wRWORD (BITS (16, 19), i);
- b = wRWORD (BITS ( 0, 3), i);
-
- if (a < b)
- s = a;
- else
- s = b;
-
- r |= (s & 0xffffffff) << (i * 32);
- }
- else
- {
- unsigned int a, b;
-
- a = wRWORD (BITS (16, 19), i);
- b = wRWORD (BITS (0, 3), i);
-
- if (a < b)
- s = a;
- else
- s = b;
-
- r |= (s & 0xffffffff) << (i * 32);
- }
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- wR [BITS (12, 15)] = r;
- wC [wCon] |= WCON_MUP;
-
- return ARMul_DONE;
-}
-
-static int
-WMUL (ARMword instr)
-{
- ARMdword r = 0;
- ARMdword s;
- int i;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wmul\n");
-#endif
-
- for (i = 0; i < 4; i++)
- if (BIT (21)) /* Signed. */
- {
- long a, b;
-
- a = wRHALF (BITS (16, 19), i);
- a = EXTEND16 (a);
-
- b = wRHALF (BITS (0, 3), i);
- b = EXTEND16 (b);
-
- s = a * b;
-
- if (BIT (20))
- r |= ((s >> 16) & 0xffff) << (i * 16);
- else
- r |= (s & 0xffff) << (i * 16);
- }
- else /* Unsigned. */
- {
- unsigned long a, b;
-
- a = wRHALF (BITS (16, 19), i);
- b = wRHALF (BITS (0, 3), i);
-
- s = a * b;
-
- if (BIT (20))
- r |= ((s >> 16) & 0xffff) << (i * 16);
- else
- r |= (s & 0xffff) << (i * 16);
- }
-
- wR [BITS (12, 15)] = r;
- wC [wCon] |= WCON_MUP;
-
- return ARMul_DONE;
-}
-
-static int
-WOR (ARMword instr)
-{
- ARMword psr = 0;
- ARMdword result;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wor\n");
-#endif
-
- result = wR [BITS (16, 19)] | wR [BITS (0, 3)];
- wR [BITS (12, 15)] = result;
-
- SIMD64_SET (psr, (result == 0), SIMD_ZBIT);
- SIMD64_SET (psr, (result & (1ULL << 63)), SIMD_NBIT);
-
- wC [wCASF] = psr;
- wC [wCon] |= (WCON_CUP | WCON_MUP);
-
- return ARMul_DONE;
-}
-
-static int
-WPACK (ARMul_State * state, ARMword instr)
-{
- ARMdword r = 0;
- ARMword psr = 0;
- ARMdword x;
- ARMdword s;
- int i;
- int satrv[8];
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wpack\n");
-#endif
-
- switch (BITS (22, 23))
- {
- case Hqual:
- for (i = 0; i < 8; i++)
- {
- x = wRHALF (i < 4 ? BITS (16, 19) : BITS (0, 3), i & 3);
-
- switch (BITS (20, 21))
- {
- case UnsignedSaturation:
- s = IwmmxtSaturateU8 (x, satrv + BITIDX8 (i));
- break;
-
- case SignedSaturation:
- s = IwmmxtSaturateS8 (x, satrv + BITIDX8 (i));
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- r |= (s & 0xff) << (i * 8);
- SIMD8_SET (psr, NBIT8 (s), SIMD_NBIT, i);
- SIMD8_SET (psr, ZBIT8 (s), SIMD_ZBIT, i);
- }
- break;
-
- case Wqual:
- satrv[0] = satrv[2] = satrv[4] = satrv[6] = 0;
-
- for (i = 0; i < 4; i++)
- {
- x = wRWORD (i < 2 ? BITS (16, 19) : BITS (0, 3), i & 1);
-
- switch (BITS (20, 21))
- {
- case UnsignedSaturation:
- s = IwmmxtSaturateU16 (x, satrv + BITIDX16 (i));
- break;
-
- case SignedSaturation:
- s = IwmmxtSaturateS16 (x, satrv + BITIDX16 (i));
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- r |= (s & 0xffff) << (i * 16);
- SIMD16_SET (psr, NBIT16 (s), SIMD_NBIT, i);
- SIMD16_SET (psr, ZBIT16 (s), SIMD_ZBIT, i);
- }
- break;
-
- case Dqual:
- satrv[0] = satrv[1] = satrv[2] = satrv[4] = satrv[5] = satrv[6] = 0;
-
- for (i = 0; i < 2; i++)
- {
- x = wR [i ? BITS (0, 3) : BITS (16, 19)];
-
- switch (BITS (20, 21))
- {
- case UnsignedSaturation:
- s = IwmmxtSaturateU32 (x, satrv + BITIDX32 (i));
- break;
-
- case SignedSaturation:
- s = IwmmxtSaturateS32 (x, satrv + BITIDX32 (i));
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- r |= (s & 0xffffffff) << (i * 32);
- SIMD32_SET (psr, NBIT32 (s), SIMD_NBIT, i);
- SIMD32_SET (psr, ZBIT32 (s), SIMD_ZBIT, i);
- }
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- wC [wCASF] = psr;
- wR [BITS (12, 15)] = r;
- SET_wCSSFvec (satrv);
- wC [wCon] |= (WCON_CUP | WCON_MUP);
-
- return ARMul_DONE;
-}
-
-static int
-WROR (ARMul_State * state, ARMword instr)
-{
- ARMdword r = 0;
- ARMdword s;
- ARMword psr = 0;
- int i;
- int shift;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wror\n");
-#endif
-
- DECODE_G_BIT (state, instr, shift);
-
- switch (BITS (22, 23))
- {
- case Hqual:
- shift &= 0xf;
- for (i = 0; i < 4; i++)
- {
- s = ((wRHALF (BITS (16, 19), i) & 0xffff) << (16 - shift))
- | ((wRHALF (BITS (16, 19), i) & 0xffff) >> shift);
- r |= (s & 0xffff) << (i * 16);
- SIMD16_SET (psr, NBIT16 (s), SIMD_NBIT, i);
- SIMD16_SET (psr, ZBIT16 (s), SIMD_ZBIT, i);
- }
- break;
-
- case Wqual:
- shift &= 0x1f;
- for (i = 0; i < 2; i++)
- {
- s = ((wRWORD (BITS (16, 19), i) & 0xffffffff) << (32 - shift))
- | ((wRWORD (BITS (16, 19), i) & 0xffffffff) >> shift);
- r |= (s & 0xffffffff) << (i * 32);
- SIMD32_SET (psr, NBIT32 (s), SIMD_NBIT, i);
- SIMD32_SET (psr, ZBIT32 (s), SIMD_ZBIT, i);
- }
- break;
-
- case Dqual:
- shift &= 0x3f;
- r = (wR [BITS (16, 19)] >> shift)
- | (wR [BITS (16, 19)] << (64 - shift));
-
- SIMD64_SET (psr, NBIT64 (r), SIMD_NBIT);
- SIMD64_SET (psr, ZBIT64 (r), SIMD_ZBIT);
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- wC [wCASF] = psr;
- wR [BITS (12, 15)] = r;
- wC [wCon] |= (WCON_CUP | WCON_MUP);
-
- return ARMul_DONE;
-}
-
-static int
-WSAD (ARMword instr)
-{
- ARMdword r;
- int s;
- int i;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wsad\n");
-#endif
-
- /* Z bit. */
- r = BIT (20) ? 0 : (wR [BITS (12, 15)] & 0xffffffff);
-
- if (BIT (22))
- /* Half. */
- for (i = 0; i < 4; i++)
- {
- s = (wRHALF (BITS (16, 19), i) - wRHALF (BITS (0, 3), i));
- r += abs (s);
- }
- else
- /* Byte. */
- for (i = 0; i < 8; i++)
- {
- s = (wRBYTE (BITS (16, 19), i) - wRBYTE (BITS (0, 3), i));
- r += abs (s);
- }
-
- wR [BITS (12, 15)] = r;
- wC [wCon] |= WCON_MUP;
-
- return ARMul_DONE;
-}
-
-static int
-WSHUFH (ARMword instr)
-{
- ARMdword r = 0;
- ARMword psr = 0;
- ARMdword s;
- int i;
- int imm8;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wshufh\n");
-#endif
-
- imm8 = (BITS (20, 23) << 4) | BITS (0, 3);
-
- for (i = 0; i < 4; i++)
- {
- s = wRHALF (BITS (16, 19), ((imm8 >> (i * 2) & 3)) & 0xff);
- r |= (s & 0xffff) << (i * 16);
- SIMD16_SET (psr, NBIT16 (s), SIMD_NBIT, i);
- SIMD16_SET (psr, ZBIT16 (s), SIMD_ZBIT, i);
- }
-
- wC [wCASF] = psr;
- wR [BITS (12, 15)] = r;
- wC [wCon] |= (WCON_CUP | WCON_MUP);
-
- return ARMul_DONE;
-}
-
-static int
-WSLL (ARMul_State * state, ARMword instr)
-{
- ARMdword r = 0;
- ARMdword s;
- ARMword psr = 0;
- int i;
- unsigned shift;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wsll\n");
-#endif
-
- DECODE_G_BIT (state, instr, shift);
-
- switch (BITS (22, 23))
- {
- case Hqual:
- for (i = 0; i < 4; i++)
- {
- if (shift > 15)
- s = 0;
- else
- s = ((wRHALF (BITS (16, 19), i) & 0xffff) << shift);
- r |= (s & 0xffff) << (i * 16);
- SIMD16_SET (psr, NBIT16 (s), SIMD_NBIT, i);
- SIMD16_SET (psr, ZBIT16 (s), SIMD_ZBIT, i);
- }
- break;
-
- case Wqual:
- for (i = 0; i < 2; i++)
- {
- if (shift > 31)
- s = 0;
- else
- s = ((wRWORD (BITS (16, 19), i) & 0xffffffff) << shift);
- r |= (s & 0xffffffff) << (i * 32);
- SIMD32_SET (psr, NBIT32 (s), SIMD_NBIT, i);
- SIMD32_SET (psr, ZBIT32 (s), SIMD_ZBIT, i);
- }
- break;
-
- case Dqual:
- if (shift > 63)
- r = 0;
- else
- r = ((wR[BITS (16, 19)] & 0xffffffffffffffffULL) << shift);
-
- SIMD64_SET (psr, NBIT64 (r), SIMD_NBIT);
- SIMD64_SET (psr, ZBIT64 (r), SIMD_ZBIT);
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- wC [wCASF] = psr;
- wR [BITS (12, 15)] = r;
- wC [wCon] |= (WCON_CUP | WCON_MUP);
-
- return ARMul_DONE;
-}
-
-static int
-WSRA (ARMul_State * state, ARMword instr)
-{
- ARMdword r = 0;
- ARMdword s;
- ARMword psr = 0;
- int i;
- unsigned shift;
- signed long t;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wsra\n");
-#endif
-
- DECODE_G_BIT (state, instr, shift);
-
- switch (BITS (22, 23))
- {
- case Hqual:
- for (i = 0; i < 4; i++)
- {
- if (shift > 15)
- t = (wRHALF (BITS (16, 19), i) & 0x8000) ? 0xffff : 0;
- else
- {
- t = wRHALF (BITS (16, 19), i);
- t = EXTEND16 (t);
- t >>= shift;
- }
-
- s = t;
- r |= (s & 0xffff) << (i * 16);
- SIMD16_SET (psr, NBIT16 (s), SIMD_NBIT, i);
- SIMD16_SET (psr, ZBIT16 (s), SIMD_ZBIT, i);
- }
- break;
-
- case Wqual:
- for (i = 0; i < 2; i++)
- {
- if (shift > 31)
- t = (wRWORD (BITS (16, 19), i) & 0x80000000) ? 0xffffffff : 0;
- else
- {
- t = EXTEND32 (wRWORD (BITS (16, 19), i));
- t >>= shift;
- }
- s = t;
- r |= (s & 0xffffffff) << (i * 32);
- SIMD32_SET (psr, NBIT32 (s), SIMD_NBIT, i);
- SIMD32_SET (psr, ZBIT32 (s), SIMD_ZBIT, i);
- }
- break;
-
- case Dqual:
- if (shift > 63)
- r = (wR [BITS (16, 19)] & 0x8000000000000000ULL) ? 0xffffffffffffffffULL : 0;
- else
- r = ((signed long long) (wR[BITS (16, 19)] & 0xffffffffffffffffULL) >> shift);
- SIMD64_SET (psr, NBIT64 (r), SIMD_NBIT);
- SIMD64_SET (psr, ZBIT64 (r), SIMD_ZBIT);
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- wC [wCASF] = psr;
- wR [BITS (12, 15)] = r;
- wC [wCon] |= (WCON_CUP | WCON_MUP);
-
- return ARMul_DONE;
-}
-
-static int
-WSRL (ARMul_State * state, ARMword instr)
-{
- ARMdword r = 0;
- ARMdword s;
- ARMword psr = 0;
- int i;
- unsigned int shift;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wsrl\n");
-#endif
-
- DECODE_G_BIT (state, instr, shift);
-
- switch (BITS (22, 23))
- {
- case Hqual:
- for (i = 0; i < 4; i++)
- {
- if (shift > 15)
- s = 0;
- else
- s = ((unsigned) (wRHALF (BITS (16, 19), i) & 0xffff) >> shift);
-
- r |= (s & 0xffff) << (i * 16);
- SIMD16_SET (psr, NBIT16 (s), SIMD_NBIT, i);
- SIMD16_SET (psr, ZBIT16 (s), SIMD_ZBIT, i);
- }
- break;
-
- case Wqual:
- for (i = 0; i < 2; i++)
- {
- if (shift > 31)
- s = 0;
- else
- s = ((unsigned long) (wRWORD (BITS (16, 19), i) & 0xffffffff) >> shift);
-
- r |= (s & 0xffffffff) << (i * 32);
- SIMD32_SET (psr, NBIT32 (s), SIMD_NBIT, i);
- SIMD32_SET (psr, ZBIT32 (s), SIMD_ZBIT, i);
- }
- break;
-
- case Dqual:
- if (shift > 63)
- r = 0;
- else
- r = (wR [BITS (16, 19)] & 0xffffffffffffffffULL) >> shift;
-
- SIMD64_SET (psr, NBIT64 (r), SIMD_NBIT);
- SIMD64_SET (psr, ZBIT64 (r), SIMD_ZBIT);
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- wC [wCASF] = psr;
- wR [BITS (12, 15)] = r;
- wC [wCon] |= (WCON_CUP | WCON_MUP);
-
- return ARMul_DONE;
-}
-
-static int
-WSTR (ARMul_State * state, ARMword instr)
-{
- ARMword address;
- int failed;
-
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wstr\n");
-#endif
-
- address = Compute_Iwmmxt_Address (state, instr, & failed);
- if (failed)
- return ARMul_CANT;
-
- if (BITS (28, 31) == 0xf)
- {
- /* WSTRW wCx */
- Iwmmxt_Store_Word (state, address, wC [BITS (12, 15)]);
- }
- else if (BIT (8) == 0)
- {
- if (BIT (22) == 0)
- /* WSTRB */
- Iwmmxt_Store_Byte (state, address, wR [BITS (12, 15)]);
- else
- /* WSTRH */
- Iwmmxt_Store_Half_Word (state, address, wR [BITS (12, 15)]);
- }
- else
- {
- if (BIT (22) == 0)
- /* WSTRW wRd */
- Iwmmxt_Store_Word (state, address, wR [BITS (12, 15)]);
- else
- /* WSTRD */
- Iwmmxt_Store_Double_Word (state, address, wR [BITS (12, 15)]);
- }
-
- return ARMul_DONE;
-}
-
-static int
-WSUB (ARMul_State * state, ARMword instr)
-{
- ARMdword r = 0;
- ARMword psr = 0;
- ARMdword x;
- ARMdword s;
- int i;
- int carry;
- int overflow;
- int satrv[8];
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wsub\n");
-#endif
-
-/* Subtract two numbers using the specified function,
- leaving setting the carry bit as required. */
-#define SUBx(x, y, m, f) \
- (*f) (wRBITS (BITS (16, 19), (x), (y)) & (m), \
- wRBITS (BITS ( 0, 3), (x), (y)) & (m), & carry, & overflow)
-
- switch (BITS (22, 23))
- {
- case Bqual:
- for (i = 0; i < 8; i++)
- {
- switch (BITS (20, 21))
- {
- case NoSaturation:
- s = SUBx ((i * 8), (i * 8) + 7, 0xff, SubS8);
- satrv [BITIDX8 (i)] = 0;
- r |= (s & 0xff) << (i * 8);
- SIMD8_SET (psr, NBIT8 (s), SIMD_NBIT, i);
- SIMD8_SET (psr, ZBIT8 (s), SIMD_ZBIT, i);
- SIMD8_SET (psr, carry, SIMD_CBIT, i);
- SIMD8_SET (psr, overflow, SIMD_VBIT, i);
- break;
-
- case UnsignedSaturation:
- s = SUBx ((i * 8), (i * 8) + 7, 0xff, SubU8);
- x = IwmmxtSaturateU8 (s, satrv + BITIDX8 (i));
- r |= (x & 0xff) << (i * 8);
- SIMD8_SET (psr, NBIT8 (x), SIMD_NBIT, i);
- SIMD8_SET (psr, ZBIT8 (x), SIMD_ZBIT, i);
- if (! satrv [BITIDX8 (i)])
- {
- SIMD8_SET (psr, carry, SIMD_CBIT, i);
- SIMD8_SET (psr, overflow, SIMD_VBIT, i);
- }
- break;
-
- case SignedSaturation:
- s = SUBx ((i * 8), (i * 8) + 7, 0xff, SubS8);
- x = IwmmxtSaturateS8 (s, satrv + BITIDX8 (i));
- r |= (x & 0xff) << (i * 8);
- SIMD8_SET (psr, NBIT8 (x), SIMD_NBIT, i);
- SIMD8_SET (psr, ZBIT8 (x), SIMD_ZBIT, i);
- if (! satrv [BITIDX8 (i)])
- {
- SIMD8_SET (psr, carry, SIMD_CBIT, i);
- SIMD8_SET (psr, overflow, SIMD_VBIT, i);
- }
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
- }
- break;
-
- case Hqual:
- satrv[0] = satrv[2] = satrv[4] = satrv[6] = 0;
-
- for (i = 0; i < 4; i++)
- {
- switch (BITS (20, 21))
- {
- case NoSaturation:
- s = SUBx ((i * 16), (i * 16) + 15, 0xffff, SubU16);
- satrv [BITIDX16 (i)] = 0;
- r |= (s & 0xffff) << (i * 16);
- SIMD16_SET (psr, NBIT16 (s), SIMD_NBIT, i);
- SIMD16_SET (psr, ZBIT16 (s), SIMD_ZBIT, i);
- SIMD16_SET (psr, carry, SIMD_CBIT, i);
- SIMD16_SET (psr, overflow, SIMD_VBIT, i);
- break;
-
- case UnsignedSaturation:
- s = SUBx ((i * 16), (i * 16) + 15, 0xffff, SubU16);
- x = IwmmxtSaturateU16 (s, satrv + BITIDX16 (i));
- r |= (x & 0xffff) << (i * 16);
- SIMD16_SET (psr, NBIT16 (x & 0xffff), SIMD_NBIT, i);
- SIMD16_SET (psr, ZBIT16 (x), SIMD_ZBIT, i);
- if (! satrv [BITIDX16 (i)])
- {
- SIMD16_SET (psr, carry, SIMD_CBIT, i);
- SIMD16_SET (psr, overflow, SIMD_VBIT, i);
- }
- break;
-
- case SignedSaturation:
- s = SUBx ((i * 16), (i * 16) + 15, 0xffff, SubS16);
- x = IwmmxtSaturateS16 (s, satrv + BITIDX16 (i));
- r |= (x & 0xffff) << (i * 16);
- SIMD16_SET (psr, NBIT16 (x), SIMD_NBIT, i);
- SIMD16_SET (psr, ZBIT16 (x), SIMD_ZBIT, i);
- if (! satrv [BITIDX16 (i)])
- {
- SIMD16_SET (psr, carry, SIMD_CBIT, i);
- SIMD16_SET (psr, overflow, SIMD_VBIT, i);
- }
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
- }
- break;
-
- case Wqual:
- satrv[0] = satrv[1] = satrv[2] = satrv[4] = satrv[5] = satrv[6] = 0;
-
- for (i = 0; i < 2; i++)
- {
- switch (BITS (20, 21))
- {
- case NoSaturation:
- s = SUBx ((i * 32), (i * 32) + 31, 0xffffffff, SubU32);
- satrv[BITIDX32 (i)] = 0;
- r |= (s & 0xffffffff) << (i * 32);
- SIMD32_SET (psr, NBIT32 (s), SIMD_NBIT, i);
- SIMD32_SET (psr, ZBIT32 (s), SIMD_ZBIT, i);
- SIMD32_SET (psr, carry, SIMD_CBIT, i);
- SIMD32_SET (psr, overflow, SIMD_VBIT, i);
- break;
-
- case UnsignedSaturation:
- s = SUBx ((i * 32), (i * 32) + 31, 0xffffffff, SubU32);
- x = IwmmxtSaturateU32 (s, satrv + BITIDX32 (i));
- r |= (x & 0xffffffff) << (i * 32);
- SIMD32_SET (psr, NBIT32 (x), SIMD_NBIT, i);
- SIMD32_SET (psr, ZBIT32 (x), SIMD_ZBIT, i);
- if (! satrv [BITIDX32 (i)])
- {
- SIMD32_SET (psr, carry, SIMD_CBIT, i);
- SIMD32_SET (psr, overflow, SIMD_VBIT, i);
- }
- break;
-
- case SignedSaturation:
- s = SUBx ((i * 32), (i * 32) + 31, 0xffffffff, SubS32);
- x = IwmmxtSaturateS32 (s, satrv + BITIDX32 (i));
- r |= (x & 0xffffffff) << (i * 32);
- SIMD32_SET (psr, NBIT32 (x), SIMD_NBIT, i);
- SIMD32_SET (psr, ZBIT32 (x), SIMD_ZBIT, i);
- if (! satrv [BITIDX32 (i)])
- {
- SIMD32_SET (psr, carry, SIMD_CBIT, i);
- SIMD32_SET (psr, overflow, SIMD_VBIT, i);
- }
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
- }
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- wR [BITS (12, 15)] = r;
- wC [wCASF] = psr;
- SET_wCSSFvec (satrv);
- wC [wCon] |= (WCON_CUP | WCON_MUP);
-
-#undef SUBx
-
- return ARMul_DONE;
-}
-
-static int
-WUNPCKEH (ARMul_State * state, ARMword instr)
-{
- ARMdword r = 0;
- ARMword psr = 0;
- ARMdword s;
- int i;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wunpckeh\n");
-#endif
-
- switch (BITS (22, 23))
- {
- case Bqual:
- for (i = 0; i < 4; i++)
- {
- s = wRBYTE (BITS (16, 19), i + 4);
-
- if (BIT (21) && NBIT8 (s))
- s |= 0xff00;
-
- r |= (s & 0xffff) << (i * 16);
- SIMD16_SET (psr, NBIT16 (s), SIMD_NBIT, i);
- SIMD16_SET (psr, ZBIT16 (s), SIMD_ZBIT, i);
- }
- break;
-
- case Hqual:
- for (i = 0; i < 2; i++)
- {
- s = wRHALF (BITS (16, 19), i + 2);
-
- if (BIT (21) && NBIT16 (s))
- s |= 0xffff0000;
-
- r |= (s & 0xffffffff) << (i * 32);
- SIMD32_SET (psr, NBIT32 (s), SIMD_NBIT, i);
- SIMD32_SET (psr, ZBIT32 (s), SIMD_ZBIT, i);
- }
- break;
-
- case Wqual:
- r = wRWORD (BITS (16, 19), 1);
-
- if (BIT (21) && NBIT32 (r))
- r |= 0xffffffff00000000ULL;
-
- SIMD64_SET (psr, NBIT64 (r), SIMD_NBIT);
- SIMD64_SET (psr, ZBIT64 (r), SIMD_ZBIT);
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- wC [wCASF] = psr;
- wR [BITS (12, 15)] = r;
- wC [wCon] |= (WCON_CUP | WCON_MUP);
-
- return ARMul_DONE;
-}
-
-static int
-WUNPCKEL (ARMul_State * state, ARMword instr)
-{
- ARMdword r = 0;
- ARMword psr = 0;
- ARMdword s;
- int i;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wunpckel\n");
-#endif
-
- switch (BITS (22, 23))
- {
- case Bqual:
- for (i = 0; i < 4; i++)
- {
- s = wRBYTE (BITS (16, 19), i);
-
- if (BIT (21) && NBIT8 (s))
- s |= 0xff00;
-
- r |= (s & 0xffff) << (i * 16);
- SIMD16_SET (psr, NBIT16 (s), SIMD_NBIT, i);
- SIMD16_SET (psr, ZBIT16 (s), SIMD_ZBIT, i);
- }
- break;
-
- case Hqual:
- for (i = 0; i < 2; i++)
- {
- s = wRHALF (BITS (16, 19), i);
-
- if (BIT (21) && NBIT16 (s))
- s |= 0xffff0000;
-
- r |= (s & 0xffffffff) << (i * 32);
- SIMD32_SET (psr, NBIT32 (s), SIMD_NBIT, i);
- SIMD32_SET (psr, ZBIT32 (s), SIMD_ZBIT, i);
- }
- break;
-
- case Wqual:
- r = wRWORD (BITS (16, 19), 0);
-
- if (BIT (21) && NBIT32 (r))
- r |= 0xffffffff00000000ULL;
-
- SIMD64_SET (psr, NBIT64 (r), SIMD_NBIT);
- SIMD64_SET (psr, ZBIT64 (r), SIMD_ZBIT);
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- wC [wCASF] = psr;
- wR [BITS (12, 15)] = r;
- wC [wCon] |= (WCON_CUP | WCON_MUP);
-
- return ARMul_DONE;
-}
-
-static int
-WUNPCKIH (ARMul_State * state, ARMword instr)
-{
- ARMword a, b;
- ARMdword r = 0;
- ARMword psr = 0;
- ARMdword s;
- int i;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wunpckih\n");
-#endif
-
- switch (BITS (22, 23))
- {
- case Bqual:
- for (i = 0; i < 4; i++)
- {
- a = wRBYTE (BITS (16, 19), i + 4);
- b = wRBYTE (BITS ( 0, 3), i + 4);
- s = a | (b << 8);
- r |= (s & 0xffff) << (i * 16);
- SIMD8_SET (psr, NBIT8 (a), SIMD_NBIT, i * 2);
- SIMD8_SET (psr, ZBIT8 (a), SIMD_ZBIT, i * 2);
- SIMD8_SET (psr, NBIT8 (b), SIMD_NBIT, (i * 2) + 1);
- SIMD8_SET (psr, ZBIT8 (b), SIMD_ZBIT, (i * 2) + 1);
- }
- break;
-
- case Hqual:
- for (i = 0; i < 2; i++)
- {
- a = wRHALF (BITS (16, 19), i + 2);
- b = wRHALF (BITS ( 0, 3), i + 2);
- s = a | (b << 16);
- r |= (s & 0xffffffff) << (i * 32);
- SIMD16_SET (psr, NBIT16 (a), SIMD_NBIT, (i * 2));
- SIMD16_SET (psr, ZBIT16 (a), SIMD_ZBIT, (i * 2));
- SIMD16_SET (psr, NBIT16 (b), SIMD_NBIT, (i * 2) + 1);
- SIMD16_SET (psr, ZBIT16 (b), SIMD_ZBIT, (i * 2) + 1);
- }
- break;
-
- case Wqual:
- a = wRWORD (BITS (16, 19), 1);
- s = wRWORD (BITS ( 0, 3), 1);
- r = a | (s << 32);
-
- SIMD32_SET (psr, NBIT32 (a), SIMD_NBIT, 0);
- SIMD32_SET (psr, ZBIT32 (a), SIMD_ZBIT, 0);
- SIMD32_SET (psr, NBIT32 (s), SIMD_NBIT, 1);
- SIMD32_SET (psr, ZBIT32 (s), SIMD_ZBIT, 1);
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- wC [wCASF] = psr;
- wR [BITS (12, 15)] = r;
- wC [wCon] |= (WCON_CUP | WCON_MUP);
-
- return ARMul_DONE;
-}
-
-static int
-WUNPCKIL (ARMul_State * state, ARMword instr)
-{
- ARMword a, b;
- ARMdword r = 0;
- ARMword psr = 0;
- ARMdword s;
- int i;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wunpckil\n");
-#endif
-
- switch (BITS (22, 23))
- {
- case Bqual:
- for (i = 0; i < 4; i++)
- {
- a = wRBYTE (BITS (16, 19), i);
- b = wRBYTE (BITS ( 0, 3), i);
- s = a | (b << 8);
- r |= (s & 0xffff) << (i * 16);
- SIMD8_SET (psr, NBIT8 (a), SIMD_NBIT, i * 2);
- SIMD8_SET (psr, ZBIT8 (a), SIMD_ZBIT, i * 2);
- SIMD8_SET (psr, NBIT8 (b), SIMD_NBIT, (i * 2) + 1);
- SIMD8_SET (psr, ZBIT8 (b), SIMD_ZBIT, (i * 2) + 1);
- }
- break;
-
- case Hqual:
- for (i = 0; i < 2; i++)
- {
- a = wRHALF (BITS (16, 19), i);
- b = wRHALF (BITS ( 0, 3), i);
- s = a | (b << 16);
- r |= (s & 0xffffffff) << (i * 32);
- SIMD16_SET (psr, NBIT16 (a), SIMD_NBIT, (i * 2));
- SIMD16_SET (psr, ZBIT16 (a), SIMD_ZBIT, (i * 2));
- SIMD16_SET (psr, NBIT16 (b), SIMD_NBIT, (i * 2) + 1);
- SIMD16_SET (psr, ZBIT16 (b), SIMD_ZBIT, (i * 2) + 1);
- }
- break;
-
- case Wqual:
- a = wRWORD (BITS (16, 19), 0);
- s = wRWORD (BITS ( 0, 3), 0);
- r = a | (s << 32);
-
- SIMD32_SET (psr, NBIT32 (a), SIMD_NBIT, 0);
- SIMD32_SET (psr, ZBIT32 (a), SIMD_ZBIT, 0);
- SIMD32_SET (psr, NBIT32 (s), SIMD_NBIT, 1);
- SIMD32_SET (psr, ZBIT32 (s), SIMD_ZBIT, 1);
- break;
-
- default:
- ARMul_UndefInstr (state, instr);
- return ARMul_DONE;
- }
-
- wC [wCASF] = psr;
- wR [BITS (12, 15)] = r;
- wC [wCon] |= (WCON_CUP | WCON_MUP);
-
- return ARMul_DONE;
-}
-
-static int
-WXOR (ARMword instr)
-{
- ARMword psr = 0;
- ARMdword result;
-
- if ((read_cp15_reg (15, 0, 1) & 3) != 3)
- return ARMul_CANT;
-
-#ifdef DEBUG
- fprintf (stderr, "wxor\n");
-#endif
-
- result = wR [BITS (16, 19)] ^ wR [BITS (0, 3)];
- wR [BITS (12, 15)] = result;
-
- SIMD64_SET (psr, (result == 0), SIMD_ZBIT);
- SIMD64_SET (psr, (result & (1ULL << 63)), SIMD_NBIT);
-
- wC [wCASF] = psr;
- wC [wCon] |= (WCON_CUP | WCON_MUP);
-
- return ARMul_DONE;
-}
-
-/* This switch table is moved to a separate function in order
- to work around a compiler bug in the host compiler... */
-
-static int
-Process_Instruction (ARMul_State * state, ARMword instr)
-{
- int status = ARMul_BUSY;
-
- switch ((BITS (20, 23) << 8) | BITS (4, 11))
- {
- case 0x000: status = WOR (instr); break;
- case 0x011: status = TMCR (state, instr); break;
- case 0x100: status = WXOR (instr); break;
- case 0x111: status = TMRC (state, instr); break;
- case 0x300: status = WANDN (instr); break;
- case 0x200: status = WAND (instr); break;
-
- case 0x810: case 0xa10:
- status = WMADD (instr); break;
-
- case 0x10e: case 0x50e: case 0x90e: case 0xd0e:
- status = WUNPCKIL (state, instr); break;
- case 0x10c: case 0x50c: case 0x90c: case 0xd0c:
- status = WUNPCKIH (state, instr); break;
- case 0x012: case 0x112: case 0x412: case 0x512:
- status = WSAD (instr); break;
- case 0x010: case 0x110: case 0x210: case 0x310:
- status = WMUL (instr); break;
- case 0x410: case 0x510: case 0x610: case 0x710:
- status = WMAC (instr); break;
- case 0x006: case 0x406: case 0x806: case 0xc06:
- status = WCMPEQ (state, instr); break;
- case 0x800: case 0x900: case 0xc00: case 0xd00:
- status = WAVG2 (instr); break;
- case 0x802: case 0x902: case 0xa02: case 0xb02:
- status = WALIGNR (state, instr); break;
- case 0x601: case 0x605: case 0x609: case 0x60d:
- status = TINSR (state, instr); break;
- case 0x107: case 0x507: case 0x907: case 0xd07:
- status = TEXTRM (state, instr); break;
- case 0x117: case 0x517: case 0x917: case 0xd17:
- status = TEXTRC (state, instr); break;
- case 0x401: case 0x405: case 0x409: case 0x40d:
- status = TBCST (state, instr); break;
- case 0x113: case 0x513: case 0x913: case 0xd13:
- status = TANDC (state, instr); break;
- case 0x01c: case 0x41c: case 0x81c: case 0xc1c:
- status = WACC (state, instr); break;
- case 0x115: case 0x515: case 0x915: case 0xd15:
- status = TORC (state, instr); break;
- case 0x103: case 0x503: case 0x903: case 0xd03:
- status = TMOVMSK (state, instr); break;
- case 0x106: case 0x306: case 0x506: case 0x706:
- case 0x906: case 0xb06: case 0xd06: case 0xf06:
- status = WCMPGT (state, instr); break;
- case 0x00e: case 0x20e: case 0x40e: case 0x60e:
- case 0x80e: case 0xa0e: case 0xc0e: case 0xe0e:
- status = WUNPCKEL (state, instr); break;
- case 0x00c: case 0x20c: case 0x40c: case 0x60c:
- case 0x80c: case 0xa0c: case 0xc0c: case 0xe0c:
- status = WUNPCKEH (state, instr); break;
- case 0x204: case 0x604: case 0xa04: case 0xe04:
- case 0x214: case 0x614: case 0xa14: case 0xe14:
- status = WSRL (state, instr); break;
- case 0x004: case 0x404: case 0x804: case 0xc04:
- case 0x014: case 0x414: case 0x814: case 0xc14:
- status = WSRA (state, instr); break;
- case 0x104: case 0x504: case 0x904: case 0xd04:
- case 0x114: case 0x514: case 0x914: case 0xd14:
- status = WSLL (state, instr); break;
- case 0x304: case 0x704: case 0xb04: case 0xf04:
- case 0x314: case 0x714: case 0xb14: case 0xf14:
- status = WROR (state, instr); break;
- case 0x116: case 0x316: case 0x516: case 0x716:
- case 0x916: case 0xb16: case 0xd16: case 0xf16:
- status = WMIN (state, instr); break;
- case 0x016: case 0x216: case 0x416: case 0x616:
- case 0x816: case 0xa16: case 0xc16: case 0xe16:
- status = WMAX (state, instr); break;
- case 0x002: case 0x102: case 0x202: case 0x302:
- case 0x402: case 0x502: case 0x602: case 0x702:
- status = WALIGNI (instr); break;
- case 0x01a: case 0x11a: case 0x21a: case 0x31a:
- case 0x41a: case 0x51a: case 0x61a: case 0x71a:
- case 0x81a: case 0x91a: case 0xa1a: case 0xb1a:
- case 0xc1a: case 0xd1a: case 0xe1a: case 0xf1a:
- status = WSUB (state, instr); break;
- case 0x01e: case 0x11e: case 0x21e: case 0x31e:
- case 0x41e: case 0x51e: case 0x61e: case 0x71e:
- case 0x81e: case 0x91e: case 0xa1e: case 0xb1e:
- case 0xc1e: case 0xd1e: case 0xe1e: case 0xf1e:
- status = WSHUFH (instr); break;
- case 0x018: case 0x118: case 0x218: case 0x318:
- case 0x418: case 0x518: case 0x618: case 0x718:
- case 0x818: case 0x918: case 0xa18: case 0xb18:
- case 0xc18: case 0xd18: case 0xe18: case 0xf18:
- status = WADD (state, instr); break;
- case 0x008: case 0x108: case 0x208: case 0x308:
- case 0x408: case 0x508: case 0x608: case 0x708:
- case 0x808: case 0x908: case 0xa08: case 0xb08:
- case 0xc08: case 0xd08: case 0xe08: case 0xf08:
- status = WPACK (state, instr); break;
- case 0x201: case 0x203: case 0x205: case 0x207:
- case 0x209: case 0x20b: case 0x20d: case 0x20f:
- case 0x211: case 0x213: case 0x215: case 0x217:
- case 0x219: case 0x21b: case 0x21d: case 0x21f:
- switch (BITS (16, 19))
- {
- case 0x0: status = TMIA (state, instr); break;
- case 0x8: status = TMIAPH (state, instr); break;
- case 0xc:
- case 0xd:
- case 0xe:
- case 0xf: status = TMIAxy (state, instr); break;
- default: break;
- }
- break;
- default:
- break;
- }
- return status;
-}
-
-/* Process a possibly Intel(r) Wireless MMX(tm) technology instruction.
- Return true if the instruction was handled. */
-
-int
-ARMul_HandleIwmmxt (ARMul_State * state, ARMword instr)
-{
- int status = ARMul_BUSY;
-
- if (BITS (24, 27) == 0xe)
- {
- status = Process_Instruction (state, instr);
- }
- else if (BITS (25, 27) == 0x6)
- {
- if (BITS (4, 11) == 0x0 && BITS (20, 24) == 0x4)
- status = TMCRR (state, instr);
- else if (BITS (9, 11) == 0x0)
- {
- if (BIT (20) == 0x0)
- status = WSTR (state, instr);
- else if (BITS (20, 24) == 0x5)
- status = TMRRC (state, instr);
- else
- status = WLDR (state, instr);
- }
- }
-
- if (status == ARMul_CANT)
- {
- /* If the instruction was a recognised but illegal,
- perform the abort here rather than returning false.
- If we return false then ARMul_MRC may be called which
- will still abort, but which also perform the register
- transfer... */
- ARMul_Abort (state, ARMul_UndefinedInstrV);
- status = ARMul_DONE;
- }
-
- return status == ARMul_DONE;
-}
-
-int
-Fetch_Iwmmxt_Register (unsigned int regnum, unsigned char * memory)
-{
- if (regnum >= 16)
- {
- memcpy (memory, wC + (regnum - 16), sizeof wC [0]);
- return sizeof wC [0];
- }
- else
- {
- memcpy (memory, wR + regnum, sizeof wR [0]);
- return sizeof wR [0];
- }
-}
-
-int
-Store_Iwmmxt_Register (unsigned int regnum, const unsigned char * memory)
-{
- if (regnum >= 16)
- {
- memcpy (wC + (regnum - 16), memory, sizeof wC [0]);
- return sizeof wC [0];
- }
- else
- {
- memcpy (wR + regnum, memory, sizeof wR [0]);
- return sizeof wR [0];
- }
-}
diff --git a/sim/arm/iwmmxt.h b/sim/arm/iwmmxt.h
deleted file mode 100644
index 2f028dd..0000000
--- a/sim/arm/iwmmxt.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* iwmmxt.h -- Intel(r) Wireless MMX(tm) technology co-processor interface.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
- Contributed by matthew green (mrg@redhat.com).
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 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, see <http://www.gnu.org/licenses/>. */
-
-extern unsigned IwmmxtLDC (ARMul_State *, unsigned, ARMword, ARMword);
-extern unsigned IwmmxtSTC (ARMul_State *, unsigned, ARMword, ARMword *);
-extern unsigned IwmmxtMCR (ARMul_State *, unsigned, ARMword, ARMword);
-extern unsigned IwmmxtMRC (ARMul_State *, unsigned, ARMword, ARMword *);
-extern unsigned IwmmxtCDP (ARMul_State *, unsigned, ARMword);
-
-extern int ARMul_HandleIwmmxt (ARMul_State *, ARMword);
-
-extern int Fetch_Iwmmxt_Register (unsigned int, unsigned char *);
-extern int Store_Iwmmxt_Register (unsigned int, const unsigned char *);
diff --git a/sim/arm/local.mk b/sim/arm/local.mk
deleted file mode 100644
index 5cdf249..0000000
--- a/sim/arm/local.mk
+++ /dev/null
@@ -1,52 +0,0 @@
-## See sim/Makefile.am
-##
-## Copyright (C) 1995-2024 Free Software Foundation, Inc.
-## Written by Cygnus Support.
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 3 of the License, or
-## (at your option) any later version.
-##
-## 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, see <http://www.gnu.org/licenses/>.
-
-AM_CPPFLAGS_%C% = -DMODET
-
-nodist_%C%_libsim_a_SOURCES = \
- %D%/modules.c
-%C%_libsim_a_SOURCES = \
- $(common_libcommon_a_SOURCES)
-%C%_libsim_a_LIBADD = \
- %D%/wrapper.o \
- $(patsubst %,%D%/%,$(SIM_NEW_COMMON_OBJS)) \
- $(patsubst %,%D%/dv-%.o,$(SIM_HW_DEVICES)) \
- %D%/armemu.o \
- %D%/armemu32.o %D%/arminit.o %D%/armos.o %D%/armsupp.o \
- %D%/armvirt.o %D%/thumbemu.o \
- %D%/armcopro.o %D%/maverick.o %D%/iwmmxt.o
-$(%C%_libsim_a_OBJECTS) $(%C%_libsim_a_LIBADD): %D%/hw-config.h
-
-noinst_LIBRARIES += %D%/libsim.a
-
-## Override wildcards that trigger common/modules.c to be (incorrectly) used.
-%D%/modules.o: %D%/modules.c
-
-%D%/%.o: common/%.c ; $(SIM_COMPILE)
--@am__include@ %D%/$(DEPDIR)/*.Po
-
-%C%_run_SOURCES =
-%C%_run_LDADD = \
- %D%/nrun.o \
- %D%/libsim.a \
- $(SIM_COMMON_LIBS)
-
-noinst_PROGRAMS += %D%/run
-
-%C%docdir = $(docdir)/%C%
-%C%doc_DATA = %D%/README
diff --git a/sim/arm/maverick.c b/sim/arm/maverick.c
deleted file mode 100644
index da5b4ad..0000000
--- a/sim/arm/maverick.c
+++ /dev/null
@@ -1,1210 +0,0 @@
-/* maverick.c -- Cirrus/DSP co-processor interface.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
- Contributed by Aldy Hernandez (aldyh@redhat.com).
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 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, see <http://www.gnu.org/licenses/>. */
-
-/* This must come before any other includes. */
-#include "defs.h"
-
-#include <assert.h>
-#include "armdefs.h"
-#include "ansidecl.h"
-#include "armemu.h"
-#include "maverick.h"
-
-/*#define CIRRUS_DEBUG 1 */
-#if CIRRUS_DEBUG
-# define printfdbg printf
-#else
-# define printfdbg printf_nothing
-#endif
-
-#define POS64(i) ( (~(i)) >> 63 )
-#define NEG64(i) ( (i) >> 63 )
-
-/* These variables are defined here and made extern in maverick.h for use
- in wrapper.c for now.
- Eventually the simulator should be made to handle any coprocessor at run
- time. */
-struct maverick_regs DSPregs[16];
-union maverick_acc_regs DSPacc[4];
-ARMword DSPsc;
-
-#define DEST_REG (BITS (12, 15))
-#define SRC1_REG (BITS (16, 19))
-#define SRC2_REG (BITS (0, 3))
-
-static int lsw_int_index, msw_int_index;
-static int lsw_float_index, msw_float_index;
-
-static double mv_getRegDouble (int);
-static long long mv_getReg64int (int);
-static void mv_setRegDouble (int, double val);
-static void mv_setReg64int (int, long long val);
-
-static union
-{
- double d;
- long long ll;
- int ints[2];
-} reg_conv;
-
-static void
-printf_nothing (void * foo, ...)
-{
-}
-
-static void
-cirrus_not_implemented (char * insn)
-{
- fprintf (stderr, "Cirrus instruction '%s' not implemented.\n", insn);
- fprintf (stderr, "aborting!\n");
-
- exit (1);
-}
-
-unsigned
-DSPMRC4 (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned type ATTRIBUTE_UNUSED,
- ARMword instr,
- ARMword * value)
-{
- switch (BITS (5, 7))
- {
- case 0: /* cfmvrdl */
- /* Move lower half of a DF stored in a DSP reg into an Arm reg. */
- printfdbg ("cfmvrdl\n");
- printfdbg ("\tlower half=0x%x\n", DSPregs[SRC1_REG].lower.i);
- printfdbg ("\tentire thing=%g\n", mv_getRegDouble (SRC1_REG));
-
- *value = (ARMword) DSPregs[SRC1_REG].lower.i;
- break;
-
- case 1: /* cfmvrdh */
- /* Move upper half of a DF stored in a DSP reg into an Arm reg. */
- printfdbg ("cfmvrdh\n");
- printfdbg ("\tupper half=0x%x\n", DSPregs[SRC1_REG].upper.i);
- printfdbg ("\tentire thing=%g\n", mv_getRegDouble (SRC1_REG));
-
- *value = (ARMword) DSPregs[SRC1_REG].upper.i;
- break;
-
- case 2: /* cfmvrs */
- /* Move SF from upper half of a DSP register to an Arm register. */
- *value = (ARMword) DSPregs[SRC1_REG].upper.i;
- printfdbg ("cfmvrs = mvf%d <-- %f\n",
- SRC1_REG,
- DSPregs[SRC1_REG].upper.f);
- break;
-
-#ifdef doesnt_work
- case 4: /* cfcmps */
- {
- float a, b;
- int n, z, c, v;
-
- a = DSPregs[SRC1_REG].upper.f;
- b = DSPregs[SRC2_REG].upper.f;
-
- printfdbg ("cfcmps\n");
- printfdbg ("\tcomparing %f and %f\n", a, b);
-
- z = a == b; /* zero */
- n = a != b; /* negative */
- v = a > b; /* overflow */
- c = 0; /* carry */
- *value = (n << 31) | (z << 30) | (c << 29) | (v << 28);
- break;
- }
-
- case 5: /* cfcmpd */
- {
- double a, b;
- int n, z, c, v;
-
- a = mv_getRegDouble (SRC1_REG);
- b = mv_getRegDouble (SRC2_REG);
-
- printfdbg ("cfcmpd\n");
- printfdbg ("\tcomparing %g and %g\n", a, b);
-
- z = a == b; /* zero */
- n = a != b; /* negative */
- v = a > b; /* overflow */
- c = 0; /* carry */
- *value = (n << 31) | (z << 30) | (c << 29) | (v << 28);
- break;
- }
-#else
- case 4: /* cfcmps */
- {
- float a, b;
- int n, z, c, v;
-
- a = DSPregs[SRC1_REG].upper.f;
- b = DSPregs[SRC2_REG].upper.f;
-
- printfdbg ("cfcmps\n");
- printfdbg ("\tcomparing %f and %f\n", a, b);
-
- z = a == b; /* zero */
- n = a < b; /* negative */
- c = a > b; /* carry */
- v = 0; /* fixme */
- printfdbg ("\tz = %d, n = %d\n", z, n);
- *value = (n << 31) | (z << 30) | (c << 29) | (v << 28);
- break;
- }
-
- case 5: /* cfcmpd */
- {
- double a, b;
- int n, z, c, v;
-
- a = mv_getRegDouble (SRC1_REG);
- b = mv_getRegDouble (SRC2_REG);
-
- printfdbg ("cfcmpd\n");
- printfdbg ("\tcomparing %g and %g\n", a, b);
-
- z = a == b; /* zero */
- n = a < b; /* negative */
- c = a > b; /* carry */
- v = 0; /* fixme */
- *value = (n << 31) | (z << 30) | (c << 29) | (v << 28);
- break;
- }
-#endif
- default:
- fprintf (stderr, "unknown opcode in DSPMRC4 0x%x\n", instr);
- cirrus_not_implemented ("unknown");
- break;
- }
-
- return ARMul_DONE;
-}
-
-unsigned
-DSPMRC5 (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned type ATTRIBUTE_UNUSED,
- ARMword instr,
- ARMword * value)
-{
- switch (BITS (5, 7))
- {
- case 0: /* cfmvr64l */
- /* Move lower half of 64bit int from Cirrus to Arm. */
- *value = (ARMword) DSPregs[SRC1_REG].lower.i;
- printfdbg ("cfmvr64l ARM_REG = mvfx%d <-- %d\n",
- DEST_REG,
- (int) *value);
- break;
-
- case 1: /* cfmvr64h */
- /* Move upper half of 64bit int from Cirrus to Arm. */
- *value = (ARMword) DSPregs[SRC1_REG].upper.i;
- printfdbg ("cfmvr64h <-- %d\n", (int) *value);
- break;
-
- case 4: /* cfcmp32 */
- {
- int res;
- int n, z, c, v;
- unsigned int a, b;
-
- printfdbg ("cfcmp32 mvfx%d - mvfx%d\n",
- SRC1_REG,
- SRC2_REG);
-
- /* FIXME: see comment for cfcmps. */
- a = DSPregs[SRC1_REG].lower.i;
- b = DSPregs[SRC2_REG].lower.i;
-
- res = DSPregs[SRC1_REG].lower.i - DSPregs[SRC2_REG].lower.i;
- /* zero */
- z = res == 0;
- /* negative */
- n = res < 0;
- /* overflow */
- v = SubOverflow (DSPregs[SRC1_REG].lower.i, DSPregs[SRC2_REG].lower.i,
- res);
- /* carry */
- c = (NEG (a) && POS (b))
- || (NEG (a) && POS (res))
- || (POS (b) && POS (res));
-
- *value = (n << 31) | (z << 30) | (c << 29) | (v << 28);
- break;
- }
-
- case 5: /* cfcmp64 */
- {
- long long res;
- int n, z, c, v;
- unsigned long long a, b;
-
- printfdbg ("cfcmp64 mvdx%d - mvdx%d\n",
- SRC1_REG,
- SRC2_REG);
-
- /* fixme: see comment for cfcmps. */
-
- a = mv_getReg64int (SRC1_REG);
- b = mv_getReg64int (SRC2_REG);
-
- res = mv_getReg64int (SRC1_REG) - mv_getReg64int (SRC2_REG);
- /* zero */
- z = res == 0;
- /* negative */
- n = res < 0;
- /* overflow */
- v = ((NEG64 (a) && POS64 (b) && POS64 (res))
- || (POS64 (a) && NEG64 (b) && NEG64 (res)));
- /* carry */
- c = (NEG64 (a) && POS64 (b))
- || (NEG64 (a) && POS64 (res))
- || (POS64 (b) && POS64 (res));
-
- *value = (n << 31) | (z << 30) | (c << 29) | (v << 28);
- break;
- }
-
- default:
- fprintf (stderr, "unknown opcode in DSPMRC5 0x%x\n", instr);
- cirrus_not_implemented ("unknown");
- break;
- }
-
- return ARMul_DONE;
-}
-
-unsigned
-DSPMRC6 (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned type ATTRIBUTE_UNUSED,
- ARMword instr,
- ARMword * value)
-{
- switch (BITS (5, 7))
- {
- case 0: /* cfmval32 */
- cirrus_not_implemented ("cfmval32");
- break;
-
- case 1: /* cfmvam32 */
- cirrus_not_implemented ("cfmvam32");
- break;
-
- case 2: /* cfmvah32 */
- cirrus_not_implemented ("cfmvah32");
- break;
-
- case 3: /* cfmva32 */
- cirrus_not_implemented ("cfmva32");
- break;
-
- case 4: /* cfmva64 */
- cirrus_not_implemented ("cfmva64");
- break;
-
- case 5: /* cfmvsc32 */
- cirrus_not_implemented ("cfmvsc32");
- break;
-
- default:
- fprintf (stderr, "unknown opcode in DSPMRC6 0x%x\n", instr);
- cirrus_not_implemented ("unknown");
- break;
- }
-
- return ARMul_DONE;
-}
-
-unsigned
-DSPMCR4 (ARMul_State * state,
- unsigned type ATTRIBUTE_UNUSED,
- ARMword instr,
- ARMword value)
-{
- switch (BITS (5, 7))
- {
- case 0: /* cfmvdlr */
- /* Move the lower half of a DF value from an Arm register into
- the lower half of a Cirrus register. */
- printfdbg ("cfmvdlr <-- 0x%x\n", (int) value);
- DSPregs[SRC1_REG].lower.i = (int) value;
- break;
-
- case 1: /* cfmvdhr */
- /* Move the upper half of a DF value from an Arm register into
- the upper half of a Cirrus register. */
- printfdbg ("cfmvdhr <-- 0x%x\n", (int) value);
- DSPregs[SRC1_REG].upper.i = (int) value;
- break;
-
- case 2: /* cfmvsr */
- /* Move SF from Arm register into upper half of Cirrus register. */
- printfdbg ("cfmvsr <-- 0x%x\n", (int) value);
- DSPregs[SRC1_REG].upper.i = (int) value;
- break;
-
- default:
- fprintf (stderr, "unknown opcode in DSPMCR4 0x%x\n", instr);
- cirrus_not_implemented ("unknown");
- break;
- }
-
- return ARMul_DONE;
-}
-
-unsigned
-DSPMCR5 (ARMul_State * state,
- unsigned type ATTRIBUTE_UNUSED,
- ARMword instr,
- ARMword value)
-{
- union
- {
- int s;
- unsigned int us;
- } val;
-
- switch (BITS (5, 7))
- {
- case 0: /* cfmv64lr */
- /* Move lower half of a 64bit int from an ARM register into the
- lower half of a DSP register and sign extend it. */
- printfdbg ("cfmv64lr mvdx%d <-- 0x%x\n", SRC1_REG, (int) value);
- DSPregs[SRC1_REG].lower.i = (int) value;
- break;
-
- case 1: /* cfmv64hr */
- /* Move upper half of a 64bit int from an ARM register into the
- upper half of a DSP register. */
- printfdbg ("cfmv64hr ARM_REG = mvfx%d <-- 0x%x\n",
- SRC1_REG,
- (int) value);
- DSPregs[SRC1_REG].upper.i = (int) value;
- break;
-
- case 2: /* cfrshl32 */
- printfdbg ("cfrshl32\n");
- val.us = value;
- if (val.s > 0)
- DSPregs[SRC2_REG].lower.i = DSPregs[SRC1_REG].lower.i << value;
- else
- DSPregs[SRC2_REG].lower.i = DSPregs[SRC1_REG].lower.i >> -value;
- break;
-
- case 3: /* cfrshl64 */
- printfdbg ("cfrshl64\n");
- val.us = value;
- if (val.s > 0)
- mv_setReg64int (SRC2_REG, mv_getReg64int (SRC1_REG) << value);
- else
- mv_setReg64int (SRC2_REG, mv_getReg64int (SRC1_REG) >> -value);
- break;
-
- default:
- fprintf (stderr, "unknown opcode in DSPMCR5 0x%x\n", instr);
- cirrus_not_implemented ("unknown");
- break;
- }
-
- return ARMul_DONE;
-}
-
-unsigned
-DSPMCR6 (ARMul_State * state,
- unsigned type ATTRIBUTE_UNUSED,
- ARMword instr,
- ARMword value)
-{
- switch (BITS (5, 7))
- {
- case 0: /* cfmv32al */
- cirrus_not_implemented ("cfmv32al");
- break;
-
- case 1: /* cfmv32am */
- cirrus_not_implemented ("cfmv32am");
- break;
-
- case 2: /* cfmv32ah */
- cirrus_not_implemented ("cfmv32ah");
- break;
-
- case 3: /* cfmv32a */
- cirrus_not_implemented ("cfmv32a");
- break;
-
- case 4: /* cfmv64a */
- cirrus_not_implemented ("cfmv64a");
- break;
-
- case 5: /* cfmv32sc */
- cirrus_not_implemented ("cfmv32sc");
- break;
-
- default:
- fprintf (stderr, "unknown opcode in DSPMCR6 0x%x\n", instr);
- cirrus_not_implemented ("unknown");
- break;
- }
-
- return ARMul_DONE;
-}
-
-unsigned
-DSPLDC4 (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned type,
- ARMword instr,
- ARMword data)
-{
- static unsigned words;
-
- if (type != ARMul_DATA)
- {
- words = 0;
- return ARMul_DONE;
- }
-
- if (BIT (22))
- { /* it's a long access, get two words */
- /* cfldrd */
-
- printfdbg ("cfldrd: %x (words = %d) (bigend = %d) DESTREG = %d\n",
- data, words, state->bigendSig, DEST_REG);
-
- if (words == 0)
- {
- if (state->bigendSig)
- DSPregs[DEST_REG].upper.i = (int) data;
- else
- DSPregs[DEST_REG].lower.i = (int) data;
- }
- else
- {
- if (state->bigendSig)
- DSPregs[DEST_REG].lower.i = (int) data;
- else
- DSPregs[DEST_REG].upper.i = (int) data;
- }
-
- ++ words;
-
- if (words == 2)
- {
- printfdbg ("\tmvd%d <-- mem = %g\n", DEST_REG,
- mv_getRegDouble (DEST_REG));
-
- return ARMul_DONE;
- }
- else
- return ARMul_INC;
- }
- else
- {
- /* Get just one word. */
-
- /* cfldrs */
- printfdbg ("cfldrs\n");
-
- DSPregs[DEST_REG].upper.i = (int) data;
-
- printfdbg ("\tmvf%d <-- mem = %f\n", DEST_REG,
- DSPregs[DEST_REG].upper.f);
-
- return ARMul_DONE;
- }
-}
-
-unsigned
-DSPLDC5 (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned type,
- ARMword instr,
- ARMword data)
-{
- static unsigned words;
-
- if (type != ARMul_DATA)
- {
- words = 0;
- return ARMul_DONE;
- }
-
- if (BIT (22))
- {
- /* It's a long access, get two words. */
-
- /* cfldr64 */
- printfdbg ("cfldr64: %d\n", data);
-
- if (words == 0)
- {
- if (state->bigendSig)
- DSPregs[DEST_REG].upper.i = (int) data;
- else
- DSPregs[DEST_REG].lower.i = (int) data;
- }
- else
- {
- if (state->bigendSig)
- DSPregs[DEST_REG].lower.i = (int) data;
- else
- DSPregs[DEST_REG].upper.i = (int) data;
- }
-
- ++ words;
-
- if (words == 2)
- {
- printfdbg ("\tmvdx%d <-- mem = %lld\n", DEST_REG,
- mv_getReg64int (DEST_REG));
-
- return ARMul_DONE;
- }
- else
- return ARMul_INC;
- }
- else
- {
- /* Get just one word. */
-
- /* cfldr32 */
- printfdbg ("cfldr32 mvfx%d <-- %d\n", DEST_REG, (int) data);
-
- /* 32bit ints should be sign extended to 64bits when loaded. */
- mv_setReg64int (DEST_REG, (long long) data);
-
- return ARMul_DONE;
- }
-}
-
-unsigned
-DSPSTC4 (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned type,
- ARMword instr,
- ARMword * data)
-{
- static unsigned words;
-
- if (type != ARMul_DATA)
- {
- words = 0;
- return ARMul_DONE;
- }
-
- if (BIT (22))
- {
- /* It's a long access, get two words. */
- /* cfstrd */
- printfdbg ("cfstrd\n");
-
- if (words == 0)
- {
- if (state->bigendSig)
- *data = (ARMword) DSPregs[DEST_REG].upper.i;
- else
- *data = (ARMword) DSPregs[DEST_REG].lower.i;
- }
- else
- {
- if (state->bigendSig)
- *data = (ARMword) DSPregs[DEST_REG].lower.i;
- else
- *data = (ARMword) DSPregs[DEST_REG].upper.i;
- }
-
- ++ words;
-
- if (words == 2)
- {
- printfdbg ("\tmem = mvd%d = %g\n", DEST_REG,
- mv_getRegDouble (DEST_REG));
-
- return ARMul_DONE;
- }
- else
- return ARMul_INC;
- }
- else
- {
- /* Get just one word. */
- /* cfstrs */
- printfdbg ("cfstrs mvf%d <-- %f\n", DEST_REG,
- DSPregs[DEST_REG].upper.f);
-
- *data = (ARMword) DSPregs[DEST_REG].upper.i;
-
- return ARMul_DONE;
- }
-}
-
-unsigned
-DSPSTC5 (ARMul_State * state ATTRIBUTE_UNUSED,
- unsigned type,
- ARMword instr,
- ARMword * data)
-{
- static unsigned words;
-
- if (type != ARMul_DATA)
- {
- words = 0;
- return ARMul_DONE;
- }
-
- if (BIT (22))
- {
- /* It's a long access, store two words. */
- /* cfstr64 */
- printfdbg ("cfstr64\n");
-
- if (words == 0)
- {
- if (state->bigendSig)
- *data = (ARMword) DSPregs[DEST_REG].upper.i;
- else
- *data = (ARMword) DSPregs[DEST_REG].lower.i;
- }
- else
- {
- if (state->bigendSig)
- *data = (ARMword) DSPregs[DEST_REG].lower.i;
- else
- *data = (ARMword) DSPregs[DEST_REG].upper.i;
- }
-
- ++ words;
-
- if (words == 2)
- {
- printfdbg ("\tmem = mvd%d = %lld\n", DEST_REG,
- mv_getReg64int (DEST_REG));
-
- return ARMul_DONE;
- }
- else
- return ARMul_INC;
- }
- else
- {
- /* Store just one word. */
- /* cfstr32 */
- *data = (ARMword) DSPregs[DEST_REG].lower.i;
-
- printfdbg ("cfstr32 MEM = %d\n", (int) *data);
-
- return ARMul_DONE;
- }
-}
-
-unsigned
-DSPCDP4 (ARMul_State * state,
- unsigned type,
- ARMword instr)
-{
- int opcode2;
-
- opcode2 = BITS (5,7);
-
- switch (BITS (20,21))
- {
- case 0:
- switch (opcode2)
- {
- case 0: /* cfcpys */
- printfdbg ("cfcpys mvf%d = mvf%d = %f\n",
- DEST_REG,
- SRC1_REG,
- DSPregs[SRC1_REG].upper.f);
- DSPregs[DEST_REG].upper.f = DSPregs[SRC1_REG].upper.f;
- break;
-
- case 1: /* cfcpyd */
- printfdbg ("cfcpyd mvd%d = mvd%d = %g\n",
- DEST_REG,
- SRC1_REG,
- mv_getRegDouble (SRC1_REG));
- mv_setRegDouble (DEST_REG, mv_getRegDouble (SRC1_REG));
- break;
-
- case 2: /* cfcvtds */
- printfdbg ("cfcvtds mvf%d = (float) mvd%d = %f\n",
- DEST_REG,
- SRC1_REG,
- (float) mv_getRegDouble (SRC1_REG));
- DSPregs[DEST_REG].upper.f = (float) mv_getRegDouble (SRC1_REG);
- break;
-
- case 3: /* cfcvtsd */
- printfdbg ("cfcvtsd mvd%d = mvf%d = %g\n",
- DEST_REG,
- SRC1_REG,
- (double) DSPregs[SRC1_REG].upper.f);
- mv_setRegDouble (DEST_REG, (double) DSPregs[SRC1_REG].upper.f);
- break;
-
- case 4: /* cfcvt32s */
- printfdbg ("cfcvt32s mvf%d = mvfx%d = %f\n",
- DEST_REG,
- SRC1_REG,
- (float) DSPregs[SRC1_REG].lower.i);
- DSPregs[DEST_REG].upper.f = (float) DSPregs[SRC1_REG].lower.i;
- break;
-
- case 5: /* cfcvt32d */
- printfdbg ("cfcvt32d mvd%d = mvfx%d = %g\n",
- DEST_REG,
- SRC1_REG,
- (double) DSPregs[SRC1_REG].lower.i);
- mv_setRegDouble (DEST_REG, (double) DSPregs[SRC1_REG].lower.i);
- break;
-
- case 6: /* cfcvt64s */
- printfdbg ("cfcvt64s mvf%d = mvdx%d = %f\n",
- DEST_REG,
- SRC1_REG,
- (float) mv_getReg64int (SRC1_REG));
- DSPregs[DEST_REG].upper.f = (float) mv_getReg64int (SRC1_REG);
- break;
-
- case 7: /* cfcvt64d */
- printfdbg ("cfcvt64d mvd%d = mvdx%d = %g\n",
- DEST_REG,
- SRC1_REG,
- (double) mv_getReg64int (SRC1_REG));
- mv_setRegDouble (DEST_REG, (double) mv_getReg64int (SRC1_REG));
- break;
- }
- break;
-
- case 1:
- switch (opcode2)
- {
- case 0: /* cfmuls */
- printfdbg ("cfmuls mvf%d = mvf%d = %f\n",
- DEST_REG,
- SRC1_REG,
- DSPregs[SRC1_REG].upper.f * DSPregs[SRC2_REG].upper.f);
-
- DSPregs[DEST_REG].upper.f = DSPregs[SRC1_REG].upper.f
- * DSPregs[SRC2_REG].upper.f;
- break;
-
- case 1: /* cfmuld */
- printfdbg ("cfmuld mvd%d = mvd%d = %g\n",
- DEST_REG,
- SRC1_REG,
- mv_getRegDouble (SRC1_REG) * mv_getRegDouble (SRC2_REG));
-
- mv_setRegDouble (DEST_REG,
- mv_getRegDouble (SRC1_REG)
- * mv_getRegDouble (SRC2_REG));
- break;
-
- default:
- fprintf (stderr, "unknown opcode in DSPCDP4 0x%x\n", instr);
- cirrus_not_implemented ("unknown");
- break;
- }
- break;
-
- case 3:
- switch (opcode2)
- {
- case 0: /* cfabss */
- DSPregs[DEST_REG].upper.f = (DSPregs[SRC1_REG].upper.f < 0.0F ?
- -DSPregs[SRC1_REG].upper.f
- : DSPregs[SRC1_REG].upper.f);
- printfdbg ("cfabss mvf%d = |mvf%d| = %f\n",
- DEST_REG,
- SRC1_REG,
- DSPregs[DEST_REG].upper.f);
- break;
-
- case 1: /* cfabsd */
- mv_setRegDouble (DEST_REG,
- (mv_getRegDouble (SRC1_REG) < 0.0 ?
- -mv_getRegDouble (SRC1_REG)
- : mv_getRegDouble (SRC1_REG)));
- printfdbg ("cfabsd mvd%d = |mvd%d| = %g\n",
- DEST_REG,
- SRC1_REG,
- mv_getRegDouble (DEST_REG));
- break;
-
- case 2: /* cfnegs */
- DSPregs[DEST_REG].upper.f = -DSPregs[SRC1_REG].upper.f;
- printfdbg ("cfnegs mvf%d = -mvf%d = %f\n",
- DEST_REG,
- SRC1_REG,
- DSPregs[DEST_REG].upper.f);
- break;
-
- case 3: /* cfnegd */
- mv_setRegDouble (DEST_REG,
- -mv_getRegDouble (SRC1_REG));
- printfdbg ("cfnegd mvd%d = -mvd%d = %g\n",
- DEST_REG, DEST_REG,
- mv_getRegDouble (DEST_REG));
- break;
-
- case 4: /* cfadds */
- DSPregs[DEST_REG].upper.f = DSPregs[SRC1_REG].upper.f
- + DSPregs[SRC2_REG].upper.f;
- printfdbg ("cfadds mvf%d = mvf%d + mvf%d = %f\n",
- DEST_REG,
- SRC1_REG,
- SRC2_REG,
- DSPregs[DEST_REG].upper.f);
- break;
-
- case 5: /* cfaddd */
- mv_setRegDouble (DEST_REG,
- mv_getRegDouble (SRC1_REG)
- + mv_getRegDouble (SRC2_REG));
- printfdbg ("cfaddd: mvd%d = mvd%d + mvd%d = %g\n",
- DEST_REG,
- SRC1_REG,
- SRC2_REG,
- mv_getRegDouble (DEST_REG));
- break;
-
- case 6: /* cfsubs */
- DSPregs[DEST_REG].upper.f = DSPregs[SRC1_REG].upper.f
- - DSPregs[SRC2_REG].upper.f;
- printfdbg ("cfsubs: mvf%d = mvf%d - mvf%d = %f\n",
- DEST_REG,
- SRC1_REG,
- SRC2_REG,
- DSPregs[DEST_REG].upper.f);
- break;
-
- case 7: /* cfsubd */
- mv_setRegDouble (DEST_REG,
- mv_getRegDouble (SRC1_REG)
- - mv_getRegDouble (SRC2_REG));
- printfdbg ("cfsubd: mvd%d = mvd%d - mvd%d = %g\n",
- DEST_REG,
- SRC1_REG,
- SRC2_REG,
- mv_getRegDouble (DEST_REG));
- break;
- }
- break;
-
- default:
- fprintf (stderr, "unknown opcode in DSPCDP4 0x%x\n", instr);
- cirrus_not_implemented ("unknown");
- break;
- }
-
- return ARMul_DONE;
-}
-
-unsigned
-DSPCDP5 (ARMul_State * state,
- unsigned type,
- ARMword instr)
-{
- int opcode2;
- char shift;
-
- opcode2 = BITS (5,7);
-
- /* Shift constants are 7bit signed numbers in bits 0..3|5..7. */
- shift = BITS (0, 3) | (BITS (5, 7)) << 4;
- if (shift & 0x40)
- shift |= 0xc0;
-
- switch (BITS (20,21))
- {
- case 0:
- /* cfsh32 */
- printfdbg ("cfsh32 %s amount=%d\n", shift < 0 ? "right" : "left",
- shift);
- if (shift < 0)
- /* Negative shift is a right shift. */
- DSPregs[DEST_REG].lower.i = DSPregs[SRC1_REG].lower.i >> -shift;
- else
- /* Positive shift is a left shift. */
- DSPregs[DEST_REG].lower.i = DSPregs[SRC1_REG].lower.i << shift;
- break;
-
- case 1:
- switch (opcode2)
- {
- case 0: /* cfmul32 */
- DSPregs[DEST_REG].lower.i = DSPregs[SRC1_REG].lower.i
- * DSPregs[SRC2_REG].lower.i;
- printfdbg ("cfmul32 mvfx%d = mvfx%d * mvfx%d = %d\n",
- DEST_REG,
- SRC1_REG,
- SRC2_REG,
- DSPregs[DEST_REG].lower.i);
- break;
-
- case 1: /* cfmul64 */
- mv_setReg64int (DEST_REG,
- mv_getReg64int (SRC1_REG)
- * mv_getReg64int (SRC2_REG));
- printfdbg ("cfmul64 mvdx%d = mvdx%d * mvdx%d = %lld\n",
- DEST_REG,
- SRC1_REG,
- SRC2_REG,
- mv_getReg64int (DEST_REG));
- break;
-
- case 2: /* cfmac32 */
- DSPregs[DEST_REG].lower.i
- += DSPregs[SRC1_REG].lower.i * DSPregs[SRC2_REG].lower.i;
- printfdbg ("cfmac32 mvfx%d += mvfx%d * mvfx%d = %d\n",
- DEST_REG,
- SRC1_REG,
- SRC2_REG,
- DSPregs[DEST_REG].lower.i);
- break;
-
- case 3: /* cfmsc32 */
- DSPregs[DEST_REG].lower.i
- -= DSPregs[SRC1_REG].lower.i * DSPregs[SRC2_REG].lower.i;
- printfdbg ("cfmsc32 mvfx%d -= mvfx%d * mvfx%d = %d\n",
- DEST_REG,
- SRC1_REG,
- SRC2_REG,
- DSPregs[DEST_REG].lower.i);
- break;
-
- case 4: /* cfcvts32 */
- /* fixme: this should round */
- DSPregs[DEST_REG].lower.i = (int) DSPregs[SRC1_REG].upper.f;
- printfdbg ("cfcvts32 mvfx%d = mvf%d = %d\n",
- DEST_REG,
- SRC1_REG,
- DSPregs[DEST_REG].lower.i);
- break;
-
- case 5: /* cfcvtd32 */
- /* fixme: this should round */
- DSPregs[DEST_REG].lower.i = (int) mv_getRegDouble (SRC1_REG);
- printfdbg ("cfcvtd32 mvdx%d = mvd%d = %d\n",
- DEST_REG,
- SRC1_REG,
- DSPregs[DEST_REG].lower.i);
- break;
-
- case 6: /* cftruncs32 */
- DSPregs[DEST_REG].lower.i = (int) DSPregs[SRC1_REG].upper.f;
- printfdbg ("cftruncs32 mvfx%d = mvf%d = %d\n",
- DEST_REG,
- SRC1_REG,
- DSPregs[DEST_REG].lower.i);
- break;
-
- case 7: /* cftruncd32 */
- DSPregs[DEST_REG].lower.i = (int) mv_getRegDouble (SRC1_REG);
- printfdbg ("cftruncd32 mvfx%d = mvd%d = %d\n",
- DEST_REG,
- SRC1_REG,
- DSPregs[DEST_REG].lower.i);
- break;
- }
- break;
-
- case 2:
- /* cfsh64 */
- printfdbg ("cfsh64\n");
-
- if (shift < 0)
- /* Negative shift is a right shift. */
- mv_setReg64int (DEST_REG,
- mv_getReg64int (SRC1_REG) >> -shift);
- else
- /* Positive shift is a left shift. */
- mv_setReg64int (DEST_REG,
- mv_getReg64int (SRC1_REG) << shift);
- printfdbg ("\t%llx\n", mv_getReg64int(DEST_REG));
- break;
-
- case 3:
- switch (opcode2)
- {
- case 0: /* cfabs32 */
- DSPregs[DEST_REG].lower.i = (DSPregs[SRC1_REG].lower.i < 0
- ? -DSPregs[SRC1_REG].lower.i : DSPregs[SRC1_REG].lower.i);
- printfdbg ("cfabs32 mvfx%d = |mvfx%d| = %d\n",
- DEST_REG,
- SRC1_REG,
- SRC2_REG,
- DSPregs[DEST_REG].lower.i);
- break;
-
- case 1: /* cfabs64 */
- mv_setReg64int (DEST_REG,
- (mv_getReg64int (SRC1_REG) < 0
- ? -mv_getReg64int (SRC1_REG)
- : mv_getReg64int (SRC1_REG)));
- printfdbg ("cfabs64 mvdx%d = |mvdx%d| = %lld\n",
- DEST_REG,
- SRC1_REG,
- SRC2_REG,
- mv_getReg64int (DEST_REG));
- break;
-
- case 2: /* cfneg32 */
- DSPregs[DEST_REG].lower.i = -DSPregs[SRC1_REG].lower.i;
- printfdbg ("cfneg32 mvfx%d = -mvfx%d = %d\n",
- DEST_REG,
- SRC1_REG,
- SRC2_REG,
- DSPregs[DEST_REG].lower.i);
- break;
-
- case 3: /* cfneg64 */
- mv_setReg64int (DEST_REG, -mv_getReg64int (SRC1_REG));
- printfdbg ("cfneg64 mvdx%d = -mvdx%d = %lld\n",
- DEST_REG,
- SRC1_REG,
- SRC2_REG,
- mv_getReg64int (DEST_REG));
- break;
-
- case 4: /* cfadd32 */
- DSPregs[DEST_REG].lower.i = DSPregs[SRC1_REG].lower.i
- + DSPregs[SRC2_REG].lower.i;
- printfdbg ("cfadd32 mvfx%d = mvfx%d + mvfx%d = %d\n",
- DEST_REG,
- SRC1_REG,
- SRC2_REG,
- DSPregs[DEST_REG].lower.i);
- break;
-
- case 5: /* cfadd64 */
- mv_setReg64int (DEST_REG,
- mv_getReg64int (SRC1_REG)
- + mv_getReg64int (SRC2_REG));
- printfdbg ("cfadd64 mvdx%d = mvdx%d + mvdx%d = %lld\n",
- DEST_REG,
- SRC1_REG,
- SRC2_REG,
- mv_getReg64int (DEST_REG));
- break;
-
- case 6: /* cfsub32 */
- DSPregs[DEST_REG].lower.i = DSPregs[SRC1_REG].lower.i
- - DSPregs[SRC2_REG].lower.i;
- printfdbg ("cfsub32 mvfx%d = mvfx%d - mvfx%d = %d\n",
- DEST_REG,
- SRC1_REG,
- SRC2_REG,
- DSPregs[DEST_REG].lower.i);
- break;
-
- case 7: /* cfsub64 */
- mv_setReg64int (DEST_REG,
- mv_getReg64int (SRC1_REG)
- - mv_getReg64int (SRC2_REG));
- printfdbg ("cfsub64 mvdx%d = mvdx%d - mvdx%d = %d\n",
- DEST_REG,
- SRC1_REG,
- SRC2_REG,
- mv_getReg64int (DEST_REG));
- break;
- }
- break;
-
- default:
- fprintf (stderr, "unknown opcode in DSPCDP5 0x%x\n", instr);
- cirrus_not_implemented ("unknown");
- break;
- }
-
- return ARMul_DONE;
-}
-
-unsigned
-DSPCDP6 (ARMul_State * state,
- unsigned type,
- ARMword instr)
-{
- switch (BITS (20,21))
- {
- case 0:
- /* cfmadd32 */
- cirrus_not_implemented ("cfmadd32");
- break;
-
- case 1:
- /* cfmsub32 */
- cirrus_not_implemented ("cfmsub32");
- break;
-
- case 2:
- /* cfmadda32 */
- cirrus_not_implemented ("cfmadda32");
- break;
-
- case 3:
- /* cfmsuba32 */
- cirrus_not_implemented ("cfmsuba32");
- break;
-
- default:
- fprintf (stderr, "unknown opcode in DSPCDP6 0x%x\n", instr);
- }
-
- return ARMul_DONE;
-}
-
-/* Conversion functions.
-
- 32-bit integers are stored in the LOWER half of a 64-bit physical
- register.
-
- Single precision floats are stored in the UPPER half of a 64-bit
- physical register. */
-
-static double
-mv_getRegDouble (int regnum)
-{
- reg_conv.ints[lsw_float_index] = DSPregs[regnum].upper.i;
- reg_conv.ints[msw_float_index] = DSPregs[regnum].lower.i;
- return reg_conv.d;
-}
-
-static void
-mv_setRegDouble (int regnum, double val)
-{
- reg_conv.d = val;
- DSPregs[regnum].upper.i = reg_conv.ints[lsw_float_index];
- DSPregs[regnum].lower.i = reg_conv.ints[msw_float_index];
-}
-
-static long long
-mv_getReg64int (int regnum)
-{
- reg_conv.ints[lsw_int_index] = DSPregs[regnum].lower.i;
- reg_conv.ints[msw_int_index] = DSPregs[regnum].upper.i;
- return reg_conv.ll;
-}
-
-static void
-mv_setReg64int (int regnum, long long val)
-{
- reg_conv.ll = val;
- DSPregs[regnum].lower.i = reg_conv.ints[lsw_int_index];
- DSPregs[regnum].upper.i = reg_conv.ints[msw_int_index];
-}
diff --git a/sim/arm/maverick.h b/sim/arm/maverick.h
deleted file mode 100644
index c888d07..0000000
--- a/sim/arm/maverick.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* maverick.h -- Cirrus/DSP co-processor interface header
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
- Contributed by Aldy Hernandez (aldyh@redhat.com).
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 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, see <http://www.gnu.org/licenses/>. */
-
-/* Define Co-Processor instruction handlers here. */
-
-/* Here's ARMulator's DSP definition. A few things to note:
- 1) it has 16 64-bit registers and 4 72-bit accumulators
- 2) you can only access its registers with MCR and MRC. */
-
-struct maverick_regs
-{
- union
- {
- int i;
- float f;
- } upper;
-
- union
- {
- int i;
- float f;
- } lower;
-};
-
-union maverick_acc_regs
-{
- long double ld; /* Acc registers are 72-bits. */
-};
-
-extern struct maverick_regs DSPregs[16];
-extern union maverick_acc_regs DSPacc[4];
-extern ARMword DSPsc;
diff --git a/sim/arm/thumbemu.c b/sim/arm/thumbemu.c
deleted file mode 100644
index a26a404..0000000
--- a/sim/arm/thumbemu.c
+++ /dev/null
@@ -1,2623 +0,0 @@
-/* thumbemu.c -- Thumb instruction emulation.
- Copyright (C) 1996, Cygnus Software Technologies Ltd.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 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, see <http://www.gnu.org/licenses/>. */
-
-/* We can provide simple Thumb simulation by decoding the Thumb
-instruction into its corresponding ARM instruction, and using the
-existing ARM simulator. */
-
-/* This must come before any other includes. */
-#include "defs.h"
-
-#ifndef MODET /* required for the Thumb instruction support */
-#if 1
-#error "MODET needs to be defined for the Thumb world to work"
-#else
-#define MODET (1)
-#endif
-#endif
-
-#include "armdefs.h"
-#include "armemu.h"
-#include "armos.h"
-
-#define tBIT(n) ( (ARMword)(tinstr >> (n)) & 1)
-#define tBITS(m,n) ( (ARMword)(tinstr << (31 - (n))) >> ((31 - (n)) + (m)) )
-
-#define ntBIT(n) ( (ARMword)(next_instr >> (n)) & 1)
-#define ntBITS(m,n) ( (ARMword)(next_instr << (31 - (n))) >> ((31 - (n)) + (m)) )
-
-static int
-test_cond (int cond, ARMul_State * state)
-{
- switch (cond)
- {
- case EQ: return ZFLAG;
- case NE: return !ZFLAG;
- case VS: return VFLAG;
- case VC: return !VFLAG;
- case MI: return NFLAG;
- case PL: return !NFLAG;
- case CS: return CFLAG;
- case CC: return !CFLAG;
- case HI: return (CFLAG && !ZFLAG);
- case LS: return (!CFLAG || ZFLAG);
- case GE: return ((!NFLAG && !VFLAG) || (NFLAG && VFLAG));
- case LT: return ((NFLAG && !VFLAG) || (!NFLAG && VFLAG));
- case GT: return ((!NFLAG && !VFLAG && !ZFLAG)
- || (NFLAG && VFLAG && !ZFLAG));
- case LE: return ((NFLAG && !VFLAG) || (!NFLAG && VFLAG)) || ZFLAG;
- case AL: return TRUE;
- case NV:
- default: return FALSE;
- }
-}
-
-static ARMword skipping_32bit_thumb = 0;
-
-static int IT_block_cond = AL;
-static ARMword IT_block_mask = 0;
-static int IT_block_first = FALSE;
-
-static void
-handle_IT_block (ARMul_State * state,
- ARMword tinstr,
- tdstate * pvalid)
-{
- * pvalid = t_branch;
- IT_block_mask = tBITS (0, 3);
-
- if (IT_block_mask == 0)
- // NOP or a HINT.
- return;
-
- IT_block_cond = tBITS (4, 7);
- IT_block_first = TRUE;
-}
-
-static int
-in_IT_block (void)
-{
- return IT_block_mask != 0;
-}
-
-static int
-IT_block_allow (ARMul_State * state)
-{
- int cond;
-
- if (IT_block_mask == 0)
- return TRUE;
-
- cond = IT_block_cond;
-
- if (IT_block_first)
- IT_block_first = FALSE;
- else
- {
- if ((IT_block_mask & 8) == 0)
- cond &= 0xe;
- else
- cond |= 1;
- IT_block_mask <<= 1;
- IT_block_mask &= 0xF;
- }
-
- if (IT_block_mask == 0x8)
- IT_block_mask = 0;
-
- return test_cond (cond, state);
-}
-
-static ARMword
-ThumbExpandImm (ARMword tinstr)
-{
- ARMword val;
-
- if (tBITS (10, 11) == 0)
- {
- switch (tBITS (8, 9))
- {
- case 0: val = tBITS (0, 7); break;
- case 1: val = tBITS (0, 7) << 8; break;
- case 2: val = (tBITS (0, 7) << 8) | (tBITS (0, 7) << 24); break;
- case 3: val = tBITS (0, 7) * 0x01010101; break;
- default: val = 0;
- }
- }
- else
- {
- int ror = tBITS (7, 11);
-
- val = (1 << 7) | tBITS (0, 6);
- val = (val >> ror) | (val << (32 - ror));
- }
-
- return val;
-}
-
-#define tASSERT(truth) \
- do \
- { \
- if (! (truth)) \
- { \
- fprintf (stderr, "unhandled T2 insn %04x|%04x detected at thumbemu.c:%d\n", \
- tinstr, next_instr, __LINE__); \
- return ; \
- } \
- } \
- while (0)
-
-
-/* Attempt to emulate a 32-bit ARMv7 Thumb instruction.
- Stores t_branch into PVALUE upon success or t_undefined otherwise. */
-
-static void
-handle_T2_insn (ARMul_State * state,
- ARMword tinstr,
- ARMword next_instr,
- ARMword pc,
- ARMword * ainstr,
- tdstate * pvalid)
-{
- * pvalid = t_undefined;
-
- if (! state->is_v6)
- return;
-
- if (trace)
- fprintf (stderr, "|%04x ", next_instr);
-
- if (tBITS (11, 15) == 0x1E && ntBIT (15) == 1)
- {
- ARMsword simm32 = 0;
- int S = tBIT (10);
-
- * pvalid = t_branch;
- switch ((ntBIT (14) << 1) | ntBIT (12))
- {
- case 0: /* B<c>.W */
- {
- ARMword cond = tBITS (6, 9);
- ARMword imm6;
- ARMword imm11;
- ARMword J1;
- ARMword J2;
-
- tASSERT (cond != AL && cond != NV);
- if (! test_cond (cond, state))
- return;
-
- imm6 = tBITS (0, 5);
- imm11 = ntBITS (0, 10);
- J1 = ntBIT (13);
- J2 = ntBIT (11);
-
- simm32 = (J1 << 19) | (J2 << 18) | (imm6 << 12) | (imm11 << 1);
- if (S)
- simm32 |= -(1 << 20);
- break;
- }
-
- case 1: /* B.W */
- {
- ARMword imm10 = tBITS (0, 9);
- ARMword imm11 = ntBITS (0, 10);
- ARMword I1 = (ntBIT (13) ^ S) ? 0 : 1;
- ARMword I2 = (ntBIT (11) ^ S) ? 0 : 1;
-
- simm32 = (I1 << 23) | (I2 << 22) | (imm10 << 12) | (imm11 << 1);
- if (S)
- simm32 |= -(1 << 24);
- break;
- }
-
- case 2: /* BLX <label> */
- {
- ARMword imm10h = tBITS (0, 9);
- ARMword imm10l = ntBITS (1, 10);
- ARMword I1 = (ntBIT (13) ^ S) ? 0 : 1;
- ARMword I2 = (ntBIT (11) ^ S) ? 0 : 1;
-
- simm32 = (I1 << 23) | (I2 << 22) | (imm10h << 12) | (imm10l << 2);
- if (S)
- simm32 |= -(1 << 24);
-
- CLEART;
- state->Reg[14] = (pc + 4) | 1;
- break;
- }
-
- case 3: /* BL <label> */
- {
- ARMword imm10 = tBITS (0, 9);
- ARMword imm11 = ntBITS (0, 10);
- ARMword I1 = (ntBIT (13) ^ S) ? 0 : 1;
- ARMword I2 = (ntBIT (11) ^ S) ? 0 : 1;
-
- simm32 = (I1 << 23) | (I2 << 22) | (imm10 << 12) | (imm11 << 1);
- if (S)
- simm32 |= -(1 << 24);
- state->Reg[14] = (pc + 4) | 1;
- break;
- }
- }
-
- state->Reg[15] = (pc + 4 + simm32);
- FLUSHPIPE;
- if (trace_funcs)
- fprintf (stderr, " pc changed to %x\n", state->Reg[15]);
- return;
- }
-
- switch (tBITS (5,12))
- {
- case 0x29: // TST<c>.W <Rn>,<Rm>{,<shift>}
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rm = ntBITS (0, 3);
- ARMword type = ntBITS (4, 5);
- ARMword imm5 = (ntBITS (12, 14) << 2) | ntBITS (6, 7);
-
- tASSERT (ntBITS (8, 11) == 0xF);
-
- * ainstr = 0xE1100000;
- * ainstr |= (Rn << 16);
- * ainstr |= (Rm);
- * ainstr |= (type << 5);
- * ainstr |= (imm5 << 7);
- * pvalid = t_decoded;
- break;
- }
-
- case 0x46:
- if (tBIT (4) && ntBITS (5, 15) == 0x780)
- {
- // Table Branch
- ARMword Rn = tBITS (0, 3);
- ARMword Rm = ntBITS (0, 3);
- ARMword address, dest;
-
- if (ntBIT (4))
- {
- // TBH
- address = state->Reg[Rn] + state->Reg[Rm] * 2;
- dest = ARMul_LoadHalfWord (state, address);
- }
- else
- {
- // TBB
- address = state->Reg[Rn] + state->Reg[Rm];
- dest = ARMul_LoadByte (state, address);
- }
-
- state->Reg[15] = (pc + 4 + dest * 2);
- FLUSHPIPE;
- * pvalid = t_branch;
- break;
- }
- ATTRIBUTE_FALLTHROUGH;
- case 0x42:
- case 0x43:
- case 0x47:
- case 0x4A:
- case 0x4B:
- case 0x4E: // STRD
- case 0x4F: // LDRD
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rt = ntBITS (12, 15);
- ARMword Rt2 = ntBITS (8, 11);
- ARMword imm8 = ntBITS (0, 7);
- ARMword P = tBIT (8);
- ARMword U = tBIT (7);
- ARMword W = tBIT (5);
-
- tASSERT (Rt2 == Rt + 1);
- imm8 <<= 2;
- tASSERT (imm8 <= 255);
- tASSERT (P != 0 || W != 0);
-
- // Convert into an ARM A1 encoding.
- if (Rn == 15)
- {
- tASSERT (tBIT (4) == 1);
- // LDRD (literal)
- // Ignore W even if 1.
- * ainstr = 0xE14F00D0;
- }
- else
- {
- if (tBIT (4) == 1)
- // LDRD (immediate)
- * ainstr = 0xE04000D0;
- else
- {
- // STRD<c> <Rt>,<Rt2>,[<Rn>{,#+/-<imm8>}]
- // STRD<c> <Rt>,<Rt2>,[<Rn>],#+/-<imm8>
- // STRD<c> <Rt>,<Rt2>,[<Rn>,#+/-<imm8>]!
- * ainstr = 0xE04000F0;
- }
- * ainstr |= (Rn << 16);
- * ainstr |= (P << 24);
- * ainstr |= (W << 21);
- }
-
- * ainstr |= (U << 23);
- * ainstr |= (Rt << 12);
- * ainstr |= ((imm8 << 4) & 0xF00);
- * ainstr |= (imm8 & 0xF);
- * pvalid = t_decoded;
- break;
- }
-
- case 0x44:
- case 0x45: // LDMIA
- {
- ARMword Rn = tBITS (0, 3);
- int W = tBIT (5);
- ARMword list = (ntBIT (15) << 15) | (ntBIT (14) << 14) | ntBITS (0, 12);
-
- if (Rn == 13)
- * ainstr = 0xE8BD0000;
- else
- {
- * ainstr = 0xE8900000;
- * ainstr |= (W << 21);
- * ainstr |= (Rn << 16);
- }
- * ainstr |= list;
- * pvalid = t_decoded;
- break;
- }
-
- case 0x48:
- case 0x49: // STMDB
- {
- ARMword Rn = tBITS (0, 3);
- int W = tBIT (5);
- ARMword list = (ntBIT (14) << 14) | ntBITS (0, 12);
-
- if (Rn == 13 && W)
- * ainstr = 0xE92D0000;
- else
- {
- * ainstr = 0xE9000000;
- * ainstr |= (W << 21);
- * ainstr |= (Rn << 16);
- }
- * ainstr |= list;
- * pvalid = t_decoded;
- break;
- }
-
- case 0x50:
- {
- ARMword Rd = ntBITS (8, 11);
- ARMword Rn = tBITS (0, 3);
- ARMword Rm = ntBITS (0, 3);
- ARMword imm5 = (ntBITS (12, 14) << 2) | ntBITS (6, 7);
- ARMword type = ntBITS (4, 5);
-
- tASSERT (ntBIT (15) == 0);
-
- if (Rd == 15)
- {
- tASSERT (tBIT (4) == 1);
-
- // TST<c>.W <Rn>,<Rm>{,<shift>}
- * ainstr = 0xE1100000;
- }
- else
- {
- // AND{S}<c>.W <Rd>,<Rn>,<Rm>{,<shift>}
- int S = tBIT (4);
-
- * ainstr = 0xE0000000;
-
- if (in_IT_block ())
- S = 0;
- * ainstr |= (S << 20);
- }
-
- * ainstr |= (Rn << 16);
- * ainstr |= (imm5 << 7);
- * ainstr |= (type << 5);
- * ainstr |= (Rm << 0);
- * pvalid = t_decoded;
- break;
- }
-
- case 0x51: // BIC{S}<c>.W <Rd>,<Rn>,<Rm>{,<shift>}
- {
- ARMword Rn = tBITS (0, 3);
- ARMword S = tBIT(4);
- ARMword Rm = ntBITS (0, 3);
- ARMword Rd = ntBITS (8, 11);
- ARMword imm5 = (ntBITS (12, 14) << 2) | ntBITS (6, 7);
- ARMword type = ntBITS (4, 5);
-
- tASSERT (ntBIT (15) == 0);
-
- * ainstr = 0xE1C00000;
- * ainstr |= (S << 20);
- * ainstr |= (Rn << 16);
- * ainstr |= (Rd << 12);
- * ainstr |= (imm5 << 7);
- * ainstr |= (type << 5);
- * ainstr |= (Rm << 0);
- * pvalid = t_decoded;
- break;
- }
-
- case 0x52:
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rd = ntBITS (8, 11);
- ARMword Rm = ntBITS (0, 3);
- int S = tBIT (4);
- ARMword imm5 = (ntBITS (12, 14) << 2) | ntBITS (6, 7);
- ARMword type = ntBITS (4, 5);
-
- tASSERT (Rd != 15);
-
- if (in_IT_block ())
- S = 0;
-
- if (Rn == 15)
- {
- tASSERT (ntBIT (15) == 0);
-
- switch (ntBITS (4, 5))
- {
- case 0:
- // LSL{S}<c>.W <Rd>,<Rm>,#<imm5>
- * ainstr = 0xE1A00000;
- break;
- case 1:
- // LSR{S}<c>.W <Rd>,<Rm>,#<imm>
- * ainstr = 0xE1A00020;
- break;
- case 2:
- // ASR{S}<c>.W <Rd>,<Rm>,#<imm>
- * ainstr = 0xE1A00040;
- break;
- case 3:
- // ROR{S}<c> <Rd>,<Rm>,#<imm>
- * ainstr = 0xE1A00060;
- break;
- default:
- tASSERT (0);
- * ainstr = 0;
- }
- }
- else
- {
- // ORR{S}<c>.W <Rd>,<Rn>,<Rm>{,<shift>}
- * ainstr = 0xE1800000;
- * ainstr |= (Rn << 16);
- * ainstr |= (type << 5);
- }
-
- * ainstr |= (Rd << 12);
- * ainstr |= (S << 20);
- * ainstr |= (imm5 << 7);
- * ainstr |= (Rm << 0);
- * pvalid = t_decoded;
- break;
- }
-
- case 0x53: // MVN{S}<c>.W <Rd>,<Rm>{,<shift>}
- {
- ARMword Rd = ntBITS (8, 11);
- ARMword Rm = ntBITS (0, 3);
- int S = tBIT (4);
- ARMword imm5 = (ntBITS (12, 14) << 2) | ntBITS (6, 7);
- ARMword type = ntBITS (4, 5);
-
- tASSERT (ntBIT (15) == 0);
-
- if (in_IT_block ())
- S = 0;
-
- * ainstr = 0xE1E00000;
- * ainstr |= (S << 20);
- * ainstr |= (Rd << 12);
- * ainstr |= (imm5 << 7);
- * ainstr |= (type << 5);
- * ainstr |= (Rm << 0);
- * pvalid = t_decoded;
- break;
- }
-
- case 0x54:
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rd = ntBITS (8, 11);
- ARMword Rm = ntBITS (0, 3);
- int S = tBIT (4);
- ARMword imm5 = (ntBITS (12, 14) << 2) | ntBITS (6, 7);
- ARMword type = ntBITS (4, 5);
-
- if (Rd == 15 && S)
- {
- // TEQ<c> <Rn>,<Rm>{,<shift>}
- tASSERT (ntBIT (15) == 0);
-
- * ainstr = 0xE1300000;
- }
- else
- {
- // EOR{S}<c>.W <Rd>,<Rn>,<Rm>{,<shift>}
- if (in_IT_block ())
- S = 0;
-
- * ainstr = 0xE0200000;
- * ainstr |= (S << 20);
- * ainstr |= (Rd << 8);
- }
-
- * ainstr |= (Rn << 16);
- * ainstr |= (imm5 << 7);
- * ainstr |= (type << 5);
- * ainstr |= (Rm << 0);
- * pvalid = t_decoded;
- break;
- }
-
- case 0x58: // ADD{S}<c>.W <Rd>,<Rn>,<Rm>{,<shift>}
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rd = ntBITS (8, 11);
- ARMword Rm = ntBITS (0, 3);
- int S = tBIT (4);
- ARMword imm5 = (ntBITS (12, 14) << 2) | ntBITS (6, 7);
- ARMword type = ntBITS (4, 5);
-
- tASSERT (! (Rd == 15 && S));
-
- if (in_IT_block ())
- S = 0;
-
- * ainstr = 0xE0800000;
- * ainstr |= (S << 20);
- * ainstr |= (Rn << 16);
- * ainstr |= (Rd << 12);
- * ainstr |= (imm5 << 7);
- * ainstr |= (type << 5);
- * ainstr |= Rm;
- * pvalid = t_decoded;
- break;
- }
-
- case 0x5A: // ADC{S}<c>.W <Rd>,<Rn>,<Rm>{,<shift>}
- tASSERT (ntBIT (15) == 0);
- * ainstr = 0xE0A00000;
- if (! in_IT_block ())
- * ainstr |= (tBIT (4) << 20); // S
- * ainstr |= (tBITS (0, 3) << 16); // Rn
- * ainstr |= (ntBITS (8, 11) << 12); // Rd
- * ainstr |= ((ntBITS (12, 14) << 2) | ntBITS (6, 7)) << 7; // imm5
- * ainstr |= (ntBITS (4, 5) << 5); // type
- * ainstr |= ntBITS (0, 3); // Rm
- * pvalid = t_decoded;
- break;
-
- case 0x5B: // SBC{S}<c>.W <Rd>,<Rn>,<Rm>{,<shift>}
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rd = ntBITS (8, 11);
- ARMword Rm = ntBITS (0, 3);
- int S = tBIT (4);
- ARMword imm5 = (ntBITS (12, 14) << 2) | ntBITS (6, 7);
- ARMword type = ntBITS (4, 5);
-
- tASSERT (ntBIT (15) == 0);
-
- if (in_IT_block ())
- S = 0;
-
- * ainstr = 0xE0C00000;
- * ainstr |= (S << 20);
- * ainstr |= (Rn << 16);
- * ainstr |= (Rd << 12);
- * ainstr |= (imm5 << 7);
- * ainstr |= (type << 5);
- * ainstr |= Rm;
- * pvalid = t_decoded;
- break;
- }
-
- case 0x5E: // RSB{S}<c> <Rd>,<Rn>,<Rm>{,<shift>}
- case 0x5D: // SUB{S}<c>.W <Rd>,<Rn>,<Rm>{,<shift>}
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rd = ntBITS (8, 11);
- ARMword Rm = ntBITS (0, 3);
- ARMword S = tBIT (4);
- ARMword type = ntBITS (4, 5);
- ARMword imm5 = (ntBITS (12, 14) << 2) | ntBITS (6, 7);
-
- tASSERT (ntBIT(15) == 0);
-
- if (Rd == 15)
- {
- // CMP<c>.W <Rn>, <Rm> {,<shift>}
- * ainstr = 0xE1500000;
- Rd = 0;
- }
- else if (tBIT (5))
- * ainstr = 0xE0400000;
- else
- * ainstr = 0xE0600000;
-
- * ainstr |= (S << 20);
- * ainstr |= (Rn << 16);
- * ainstr |= (Rd << 12);
- * ainstr |= (imm5 << 7);
- * ainstr |= (type << 5);
- * ainstr |= (Rm << 0);
- * pvalid = t_decoded;
- break;
- }
-
- case 0x9D: // NOP.W
- tASSERT (tBITS (0, 15) == 0xF3AF);
- tASSERT (ntBITS (0, 15) == 0x8000);
- * pvalid = t_branch;
- break;
-
- case 0x80: // AND
- case 0xA0: // TST
- {
- ARMword Rn = tBITS (0, 3);
- ARMword imm12 = (tBIT(10) << 11) | (ntBITS (12, 14) << 8) | ntBITS (0, 7);
- ARMword Rd = ntBITS (8, 11);
- ARMword val;
- int S = tBIT (4);
-
- imm12 = ThumbExpandImm (imm12);
- val = state->Reg[Rn] & imm12;
-
- if (Rd == 15)
- {
- // TST<c> <Rn>,#<const>
- tASSERT (S == 1);
- }
- else
- {
- // AND{S}<c> <Rd>,<Rn>,#<const>
- if (in_IT_block ())
- S = 0;
-
- state->Reg[Rd] = val;
- }
-
- if (S)
- ARMul_NegZero (state, val);
- * pvalid = t_branch;
- break;
- }
-
- case 0xA1:
- case 0x81: // BIC.W
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rd = ntBITS (8, 11);
- ARMword S = tBIT (4);
- ARMword imm8 = (ntBITS (12, 14) << 8) | ntBITS (0, 7);
-
- tASSERT (ntBIT (15) == 0);
-
- imm8 = ThumbExpandImm (imm8);
- state->Reg[Rd] = state->Reg[Rn] & ~ imm8;
-
- if (S && ! in_IT_block ())
- ARMul_NegZero (state, state->Reg[Rd]);
- * pvalid = t_resolved;
- break;
- }
-
- case 0xA2:
- case 0x82: // MOV{S}<c>.W <Rd>,#<const>
- {
- ARMword val = (tBIT(10) << 11) | (ntBITS (12, 14) << 8) | ntBITS (0, 7);
- ARMword Rd = ntBITS (8, 11);
-
- val = ThumbExpandImm (val);
- state->Reg[Rd] = val;
-
- if (tBIT (4) && ! in_IT_block ())
- ARMul_NegZero (state, val);
- /* Indicate that the instruction has been processed. */
- * pvalid = t_branch;
- break;
- }
-
- case 0xA3:
- case 0x83: // MVN{S}<c> <Rd>,#<const>
- {
- ARMword val = (tBIT(10) << 11) | (ntBITS (12, 14) << 8) | ntBITS (0, 7);
- ARMword Rd = ntBITS (8, 11);
-
- val = ThumbExpandImm (val);
- val = ~ val;
- state->Reg[Rd] = val;
-
- if (tBIT (4) && ! in_IT_block ())
- ARMul_NegZero (state, val);
- * pvalid = t_resolved;
- break;
- }
-
- case 0xA4: // EOR
- case 0x84: // TEQ
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rd = ntBITS (8, 11);
- ARMword S = tBIT (4);
- ARMword imm12 = ((tBIT (10) << 11) | (ntBITS (12, 14) << 8) | ntBITS (0, 7));
- ARMword result;
-
- imm12 = ThumbExpandImm (imm12);
-
- result = state->Reg[Rn] ^ imm12;
-
- if (Rd == 15 && S)
- // TEQ<c> <Rn>,#<const>
- ;
- else
- {
- // EOR{S}<c> <Rd>,<Rn>,#<const>
- state->Reg[Rd] = result;
-
- if (in_IT_block ())
- S = 0;
- }
-
- if (S)
- ARMul_NegZero (state, result);
- * pvalid = t_resolved;
- break;
- }
-
- case 0xA8: // CMN
- case 0x88: // ADD
- {
- ARMword Rd = ntBITS (8, 11);
- int S = tBIT (4);
- ARMword Rn = tBITS (0, 3);
- ARMword lhs = state->Reg[Rn];
- ARMword imm12 = (tBIT (10) << 11) | (ntBITS (12, 14) << 8) | ntBITS (0, 7);
- ARMword rhs = ThumbExpandImm (imm12);
- ARMword res = lhs + rhs;
-
- if (Rd == 15 && S)
- {
- // CMN<c> <Rn>,#<const>
- res = lhs - rhs;
- }
- else
- {
- // ADD{S}<c>.W <Rd>,<Rn>,#<const>
- res = lhs + rhs;
-
- if (in_IT_block ())
- S = 0;
-
- state->Reg[Rd] = res;
- }
-
- if (S)
- {
- ARMul_NegZero (state, res);
-
- if ((lhs | rhs) >> 30)
- {
- /* Possible C,V,N to set. */
- ARMul_AddCarry (state, lhs, rhs, res);
- ARMul_AddOverflow (state, lhs, rhs, res);
- }
- else
- {
- CLEARC;
- CLEARV;
- }
- }
-
- * pvalid = t_branch;
- break;
- }
-
- case 0xAA:
- case 0x8A: // ADC{S}<c> <Rd>,<Rn>,#<const>
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rd = ntBITS (8, 11);
- int S = tBIT (4);
- ARMword imm12 = (tBIT (10) << 11) | (ntBITS (12, 14) << 8) | ntBITS (0, 7);
- ARMword lhs = state->Reg[Rn];
- ARMword rhs = ThumbExpandImm (imm12);
- ARMword res;
-
- tASSERT (ntBIT (15) == 0);
-
- if (CFLAG)
- rhs += 1;
-
- res = lhs + rhs;
- state->Reg[Rd] = res;
-
- if (in_IT_block ())
- S = 0;
-
- if (S)
- {
- ARMul_NegZero (state, res);
-
- if ((lhs >= rhs) || ((rhs | lhs) >> 31))
- {
- ARMul_AddCarry (state, lhs, rhs, res);
- ARMul_AddOverflow (state, lhs, rhs, res);
- }
- else
- {
- CLEARC;
- CLEARV;
- }
- }
-
- * pvalid = t_branch;
- break;
- }
-
- case 0xAB:
- case 0x8B: // SBC{S}<c> <Rd>,<Rn>,#<const>
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rd = ntBITS (8, 11);
- int S = tBIT (4);
- ARMword imm12 = (tBIT (10) << 11) | (ntBITS (12, 14) << 8) | ntBITS (0, 7);
- ARMword lhs = state->Reg[Rn];
- ARMword rhs = ThumbExpandImm (imm12);
- ARMword res;
-
- tASSERT (ntBIT (15) == 0);
-
- if (! CFLAG)
- rhs += 1;
-
- res = lhs - rhs;
- state->Reg[Rd] = res;
-
- if (in_IT_block ())
- S = 0;
-
- if (S)
- {
- ARMul_NegZero (state, res);
-
- if ((lhs >= rhs) || ((rhs | lhs) >> 31))
- {
- ARMul_SubCarry (state, lhs, rhs, res);
- ARMul_SubOverflow (state, lhs, rhs, res);
- }
- else
- {
- CLEARC;
- CLEARV;
- }
- }
-
- * pvalid = t_branch;
- break;
- }
-
- case 0xAD:
- case 0x8D: // SUB
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rd = ntBITS (8, 11);
- int S = tBIT (4);
- ARMword imm12 = (tBIT (10) << 11) | (ntBITS (12, 14) << 8) | ntBITS (0, 7);
- ARMword lhs = state->Reg[Rn];
- ARMword rhs = ThumbExpandImm (imm12);
- ARMword res = lhs - rhs;
-
- if (Rd == 15 && S)
- {
- // CMP<c>.W <Rn>,#<const>
- tASSERT (S);
- }
- else
- {
- // SUB{S}<c>.W <Rd>,<Rn>,#<const>
- if (in_IT_block ())
- S = 0;
-
- state->Reg[Rd] = res;
- }
-
- if (S)
- {
- ARMul_NegZero (state, res);
-
- if ((lhs >= rhs) || ((rhs | lhs) >> 31))
- {
- ARMul_SubCarry (state, lhs, rhs, res);
- ARMul_SubOverflow (state, lhs, rhs, res);
- }
- else
- {
- CLEARC;
- CLEARV;
- }
- }
-
- * pvalid = t_branch;
- break;
- }
-
- case 0xAE:
- case 0x8E: // RSB{S}<c>.W <Rd>,<Rn>,#<const>
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rd = ntBITS (8, 11);
- ARMword imm12 = (tBIT (10) << 11) | (ntBITS (12, 14) << 8) | ntBITS (0, 7);
- int S = tBIT (4);
- ARMword lhs = imm12;
- ARMword rhs = state->Reg[Rn];
- ARMword res = lhs - rhs;
-
- tASSERT (ntBIT (15) == 0);
-
- state->Reg[Rd] = res;
-
- if (S)
- {
- ARMul_NegZero (state, res);
-
- if ((lhs >= rhs) || ((rhs | lhs) >> 31))
- {
- ARMul_SubCarry (state, lhs, rhs, res);
- ARMul_SubOverflow (state, lhs, rhs, res);
- }
- else
- {
- CLEARC;
- CLEARV;
- }
- }
-
- * pvalid = t_branch;
- break;
- }
-
- case 0xB0:
- case 0x90: // ADDW<c> <Rd>,<Rn>,#<imm12>
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rd = ntBITS (8, 11);
- ARMword imm12 = (tBIT (10) << 11) | (ntBITS (12, 14) << 8) | ntBITS (0, 7);
-
- tASSERT (tBIT (4) == 0);
- tASSERT (ntBIT (15) == 0);
-
- state->Reg[Rd] = state->Reg[Rn] + imm12;
- * pvalid = t_branch;
- break;
- }
-
- case 0xB2:
- case 0x92: // MOVW<c> <Rd>,#<imm16>
- {
- ARMword Rd = ntBITS (8, 11);
- ARMword imm = (tBITS (0, 3) << 12) | (tBIT (10) << 11) | (ntBITS (12, 14) << 8) | ntBITS (0, 7);
-
- state->Reg[Rd] = imm;
- /* Indicate that the instruction has been processed. */
- * pvalid = t_branch;
- break;
- }
-
- case 0xb5:
- case 0x95:// SUBW<c> <Rd>,<Rn>,#<imm12>
- {
- ARMword Rd = ntBITS (8, 11);
- ARMword Rn = tBITS (0, 3);
- ARMword imm12 = (tBIT (10) << 11) | (ntBITS (12, 14) << 8) | ntBITS (0, 7);
-
- tASSERT (tBIT (4) == 0);
- tASSERT (ntBIT (15) == 0);
-
- /* Note the ARM ARM indicates special cases for Rn == 15 (ADR)
- and Rn == 13 (SUB SP minus immediate), but these are implemented
- in exactly the same way as the normal SUBW insn. */
- state->Reg[Rd] = state->Reg[Rn] - imm12;
-
- * pvalid = t_resolved;
- break;
- }
-
- case 0xB6:
- case 0x96: // MOVT<c> <Rd>,#<imm16>
- {
- ARMword Rd = ntBITS (8, 11);
- ARMword imm = (tBITS (0, 3) << 12) | (tBIT (10) << 11) | (ntBITS (12, 14) << 8) | ntBITS (0, 7);
-
- state->Reg[Rd] &= 0xFFFF;
- state->Reg[Rd] |= (imm << 16);
- * pvalid = t_resolved;
- break;
- }
-
- case 0x9A: // SBFXc> <Rd>,<Rn>,#<lsb>,#<width>
- tASSERT (tBIT (4) == 0);
- tASSERT (ntBIT (15) == 0);
- tASSERT (ntBIT (5) == 0);
- * ainstr = 0xE7A00050;
- * ainstr |= (ntBITS (0, 4) << 16); // widthm1
- * ainstr |= (ntBITS (8, 11) << 12); // Rd
- * ainstr |= (((ntBITS (12, 14) << 2) | ntBITS (6, 7)) << 7); // lsb
- * ainstr |= tBITS (0, 3); // Rn
- * pvalid = t_decoded;
- break;
-
- case 0x9B:
- {
- ARMword Rd = ntBITS (8, 11);
- ARMword Rn = tBITS (0, 3);
- ARMword msbit = ntBITS (0, 5);
- ARMword lsbit = (ntBITS (12, 14) << 2) | ntBITS (6, 7);
- ARMword mask = -(1 << lsbit);
-
- tASSERT (tBIT (4) == 0);
- tASSERT (ntBIT (15) == 0);
- tASSERT (ntBIT (5) == 0);
-
- mask &= ((1 << (msbit + 1)) - 1);
-
- if (lsbit > msbit)
- ; // UNPREDICTABLE
- else if (Rn == 15)
- {
- // BFC<c> <Rd>,#<lsb>,#<width>
- state->Reg[Rd] &= ~ mask;
- }
- else
- {
- // BFI<c> <Rd>,<Rn>,#<lsb>,#<width>
- ARMword val = state->Reg[Rn] & (mask >> lsbit);
-
- val <<= lsbit;
- state->Reg[Rd] &= ~ mask;
- state->Reg[Rd] |= val;
- }
-
- * pvalid = t_resolved;
- break;
- }
-
- case 0x9E: // UBFXc> <Rd>,<Rn>,#<lsb>,#<width>
- tASSERT (tBIT (4) == 0);
- tASSERT (ntBIT (15) == 0);
- tASSERT (ntBIT (5) == 0);
- * ainstr = 0xE7E00050;
- * ainstr |= (ntBITS (0, 4) << 16); // widthm1
- * ainstr |= (ntBITS (8, 11) << 12); // Rd
- * ainstr |= (((ntBITS (12, 14) << 2) | ntBITS (6, 7)) << 7); // lsb
- * ainstr |= tBITS (0, 3); // Rn
- * pvalid = t_decoded;
- break;
-
- case 0xC0: // STRB
- case 0xC4: // LDRB
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rt = ntBITS (12, 15);
-
- if (tBIT (4))
- {
- if (Rn == 15)
- {
- tASSERT (Rt != 15);
-
- /* LDRB<c> <Rt>,<label> => 1111 1000 U001 1111 */
- * ainstr = 0xE55F0000;
- * ainstr |= (tBIT (7) << 23);
- * ainstr |= ntBITS (0, 11);
- }
- else if (tBIT (7))
- {
- /* LDRB<c>.W <Rt>,[<Rn>{,#<imm12>}] => 1111 1000 1001 rrrr */
- * ainstr = 0xE5D00000;
- * ainstr |= ntBITS (0, 11);
- }
- else if (ntBIT (11) == 0)
- {
- /* LDRB<c>.W <Rt>,[<Rn>,<Rm>{,LSL #<imm2>}] => 1111 1000 0001 rrrr */
- * ainstr = 0xE7D00000;
- * ainstr |= (ntBITS (4, 5) << 7);
- * ainstr |= ntBITS (0, 3);
- }
- else
- {
- int P = ntBIT (10);
- int U = ntBIT (9);
- int W = ntBIT (8);
-
- tASSERT (! (Rt == 15 && P && !U && !W));
- tASSERT (! (P && U && !W));
-
- /* LDRB<c> <Rt>,[<Rn>,#-<imm8>] => 1111 1000 0001 rrrr
- LDRB<c> <Rt>,[<Rn>],#+/-<imm8> => 1111 1000 0001 rrrr
- LDRB<c> <Rt>,[<Rn>,#+/-<imm8>]! => 1111 1000 0001 rrrr */
- * ainstr = 0xE4500000;
- * ainstr |= (P << 24);
- * ainstr |= (U << 23);
- * ainstr |= (W << 21);
- * ainstr |= ntBITS (0, 7);
- }
- }
- else
- {
- if (tBIT (7) == 1)
- {
- // STRB<c>.W <Rt>,[<Rn>,#<imm12>]
- ARMword imm12 = ntBITS (0, 11);
-
- ARMul_StoreByte (state, state->Reg[Rn] + imm12, state->Reg [Rt]);
- * pvalid = t_branch;
- break;
- }
- else if (ntBIT (11))
- {
- // STRB<c> <Rt>,[<Rn>,#-<imm8>]
- // STRB<c> <Rt>,[<Rn>],#+/-<imm8>
- // STRB<c> <Rt>,[<Rn>,#+/-<imm8>]!
- int P = ntBIT (10);
- int U = ntBIT (9);
- int W = ntBIT (8);
- ARMword imm8 = ntBITS (0, 7);
-
- tASSERT (! (P && U && !W));
- tASSERT (! (Rn == 13 && P && !U && W && imm8 == 4));
-
- * ainstr = 0xE4000000;
- * ainstr |= (P << 24);
- * ainstr |= (U << 23);
- * ainstr |= (W << 21);
- * ainstr |= imm8;
- }
- else
- {
- // STRB<c>.W <Rt>,[<Rn>,<Rm>{,LSL #<imm2>}]
- tASSERT (ntBITS (6, 11) == 0);
-
- * ainstr = 0xE7C00000;
- * ainstr |= (ntBITS (4, 5) << 7);
- * ainstr |= ntBITS (0, 3);
- }
- }
-
- * ainstr |= (Rn << 16);
- * ainstr |= (Rt << 12);
- * pvalid = t_decoded;
- break;
- }
-
- case 0xC2: // LDR, STR
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rt = ntBITS (12, 15);
- ARMword imm8 = ntBITS (0, 7);
- ARMword P = ntBIT (10);
- ARMword U = ntBIT (9);
- ARMword W = ntBIT (8);
-
- tASSERT (Rn != 15);
-
- if (tBIT (4))
- {
- if (Rn == 15)
- {
- // LDR<c>.W <Rt>,<label>
- * ainstr = 0xE51F0000;
- * ainstr |= ntBITS (0, 11);
- }
- else if (ntBIT (11))
- {
- tASSERT (! (P && U && ! W));
- tASSERT (! (!P && U && W && Rn == 13 && imm8 == 4 && ntBIT (11) == 0));
- tASSERT (! (P && !U && W && Rn == 13 && imm8 == 4 && ntBIT (11)));
-
- // LDR<c> <Rt>,[<Rn>,#-<imm8>]
- // LDR<c> <Rt>,[<Rn>],#+/-<imm8>
- // LDR<c> <Rt>,[<Rn>,#+/-<imm8>]!
- if (!P && W)
- W = 0;
- * ainstr = 0xE4100000;
- * ainstr |= (P << 24);
- * ainstr |= (U << 23);
- * ainstr |= (W << 21);
- * ainstr |= imm8;
- }
- else
- {
- // LDR<c>.W <Rt>,[<Rn>,<Rm>{,LSL #<imm2>}]
-
- tASSERT (ntBITS (6, 11) == 0);
-
- * ainstr = 0xE7900000;
- * ainstr |= ntBITS (4, 5) << 7;
- * ainstr |= ntBITS (0, 3);
- }
- }
- else
- {
- if (ntBIT (11))
- {
- tASSERT (! (P && U && ! W));
- if (Rn == 13 && P && !U && W && imm8 == 4)
- {
- // PUSH<c>.W <register>
- tASSERT (ntBITS (0, 11) == 0xD04);
- tASSERT (tBITS (0, 4) == 0x0D);
-
- * ainstr = 0xE92D0000;
- * ainstr |= (1 << Rt);
-
- Rt = Rn = 0;
- }
- else
- {
- tASSERT (! (P && U && !W));
- if (!P && W)
- W = 0;
- // STR<c> <Rt>,[<Rn>,#-<imm8>]
- // STR<c> <Rt>,[<Rn>],#+/-<imm8>
- // STR<c> <Rt>,[<Rn>,#+/-<imm8>]!
- * ainstr = 0xE4000000;
- * ainstr |= (P << 24);
- * ainstr |= (U << 23);
- * ainstr |= (W << 21);
- * ainstr |= imm8;
- }
- }
- else
- {
- // STR<c>.W <Rt>,[<Rn>,<Rm>{,LSL #<imm2>}]
- tASSERT (ntBITS (6, 11) == 0);
-
- * ainstr = 0xE7800000;
- * ainstr |= ntBITS (4, 5) << 7;
- * ainstr |= ntBITS (0, 3);
- }
- }
-
- * ainstr |= (Rn << 16);
- * ainstr |= (Rt << 12);
- * pvalid = t_decoded;
- break;
- }
-
- case 0xC1: // STRH
- case 0xC5: // LDRH
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rt = ntBITS (12, 15);
- ARMword address;
-
- tASSERT (Rn != 15);
-
- if (tBIT (4) == 1)
- {
- if (tBIT (7))
- {
- // LDRH<c>.W <Rt>,[<Rn>{,#<imm12>}]
- ARMword imm12 = ntBITS (0, 11);
- address = state->Reg[Rn] + imm12;
- }
- else if (ntBIT (11))
- {
- // LDRH<c> <Rt>,[<Rn>,#-<imm8>]
- // LDRH<c> <Rt>,[<Rn>],#+/-<imm8>
- // LDRH<c> <Rt>,[<Rn>,#+/-<imm8>]!
- ARMword P = ntBIT (10);
- ARMword U = ntBIT (9);
- ARMword W = ntBIT (8);
- ARMword imm8 = ntBITS (0, 7);
-
- tASSERT (Rn != 15);
- tASSERT (! (P && U && !W));
-
- * ainstr = 0xE05000B0;
- * ainstr |= (P << 24);
- * ainstr |= (U << 23);
- * ainstr |= (W << 21);
- * ainstr |= (Rn << 16);
- * ainstr |= (Rt << 12);
- * ainstr |= ((imm8 & 0xF0) << 4);
- * ainstr |= (imm8 & 0xF);
- * pvalid = t_decoded;
- break;
- }
- else
- {
- // LDRH<c>.W <Rt>,[<Rn>,<Rm>{,LSL #<imm2>}]
- ARMword Rm = ntBITS (0, 3);
- ARMword imm2 = ntBITS (4, 5);
-
- tASSERT (ntBITS (6, 10) == 0);
-
- address = state->Reg[Rn] + (state->Reg[Rm] << imm2);
- }
-
- state->Reg[Rt] = ARMul_LoadHalfWord (state, address);
- }
- else
- {
- if (tBIT (7))
- {
- // STRH<c>.W <Rt>,[<Rn>{,#<imm12>}]
- ARMword imm12 = ntBITS (0, 11);
-
- address = state->Reg[Rn] + imm12;
- }
- else if (ntBIT (11))
- {
- // STRH<c> <Rt>,[<Rn>,#-<imm8>]
- // STRH<c> <Rt>,[<Rn>],#+/-<imm8>
- // STRH<c> <Rt>,[<Rn>,#+/-<imm8>]!
- ARMword P = ntBIT (10);
- ARMword U = ntBIT (9);
- ARMword W = ntBIT (8);
- ARMword imm8 = ntBITS (0, 7);
-
- tASSERT (! (P && U && !W));
-
- * ainstr = 0xE04000B0;
- * ainstr |= (P << 24);
- * ainstr |= (U << 23);
- * ainstr |= (W << 21);
- * ainstr |= (Rn << 16);
- * ainstr |= (Rt << 12);
- * ainstr |= ((imm8 & 0xF0) << 4);
- * ainstr |= (imm8 & 0xF);
- * pvalid = t_decoded;
- break;
- }
- else
- {
- // STRH<c>.W <Rt>,[<Rn>,<Rm>{,LSL #<imm2>}]
- ARMword Rm = ntBITS (0, 3);
- ARMword imm2 = ntBITS (4, 5);
-
- tASSERT (ntBITS (6, 10) == 0);
-
- address = state->Reg[Rn] + (state->Reg[Rm] << imm2);
- }
-
- ARMul_StoreHalfWord (state, address, state->Reg [Rt]);
- }
- * pvalid = t_branch;
- break;
- }
-
- case 0xC6: // LDR.W/STR.W
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rt = ntBITS (12, 15);
- ARMword imm12 = ntBITS (0, 11);
- ARMword address = state->Reg[Rn];
-
- if (Rn == 15)
- {
- // LDR<c>.W <Rt>,<label>
- tASSERT (tBIT (4) == 1);
- // tASSERT (tBIT (7) == 1)
- }
-
- address += imm12;
- if (tBIT (4) == 1)
- state->Reg[Rt] = ARMul_LoadWordN (state, address);
- else
- ARMul_StoreWordN (state, address, state->Reg [Rt]);
-
- * pvalid = t_resolved;
- break;
- }
-
- case 0xC8:
- case 0xCC: // LDRSB
- {
- ARMword Rt = ntBITS (12, 15);
- ARMword Rn = tBITS (0, 3);
- ARMword U = tBIT (7);
- ARMword address = state->Reg[Rn];
-
- tASSERT (tBIT (4) == 1);
- tASSERT (Rt != 15); // PLI
-
- if (Rn == 15)
- {
- // LDRSB<c> <Rt>,<label>
- ARMword imm12 = ntBITS (0, 11);
- address += (U ? imm12 : - imm12);
- }
- else if (U)
- {
- // LDRSB<c> <Rt>,[<Rn>,#<imm12>]
- ARMword imm12 = ntBITS (0, 11);
- address += imm12;
- }
- else if (ntBIT (11))
- {
- // LDRSB<c> <Rt>,[<Rn>,#-<imm8>]
- // LDRSB<c> <Rt>,[<Rn>],#+/-<imm8>
- // LDRSB<c> <Rt>,[<Rn>,#+/-<imm8>]!
- * ainstr = 0xE05000D0;
- * ainstr |= ntBIT (10) << 24; // P
- * ainstr |= ntBIT (9) << 23; // U
- * ainstr |= ntBIT (8) << 21; // W
- * ainstr |= Rn << 16;
- * ainstr |= Rt << 12;
- * ainstr |= ntBITS (4, 7) << 8;
- * ainstr |= ntBITS (0, 3);
- * pvalid = t_decoded;
- break;
- }
- else
- {
- // LDRSB<c>.W <Rt>,[<Rn>,<Rm>{,LSL #<imm2>}]
- ARMword Rm = ntBITS (0, 3);
- ARMword imm2 = ntBITS (4,5);
-
- tASSERT (ntBITS (6, 11) == 0);
-
- address += (state->Reg[Rm] << imm2);
- }
-
- state->Reg[Rt] = ARMul_LoadByte (state, address);
- if (state->Reg[Rt] & 0x80)
- state->Reg[Rt] |= -(1 << 8);
-
- * pvalid = t_resolved;
- break;
- }
-
- case 0xC9:
- case 0xCD:// LDRSH
- {
- ARMword Rt = ntBITS (12, 15);
- ARMword Rn = tBITS (0, 3);
- ARMword U = tBIT (7);
- ARMword address = state->Reg[Rn];
-
- tASSERT (tBIT (4) == 1);
-
- if (Rn == 15 || U == 1)
- {
- // Rn==15 => LDRSH<c> <Rt>,<label>
- // Rn!=15 => LDRSH<c> <Rt>,[<Rn>,#<imm12>]
- ARMword imm12 = ntBITS (0, 11);
-
- address += (U ? imm12 : - imm12);
- }
- else if (ntBIT (11))
- {
- // LDRSH<c> <Rt>,[<Rn>,#-<imm8>]
- // LDRSH<c> <Rt>,[<Rn>],#+/-<imm8>
- // LDRSH<c> <Rt>,[<Rn>,#+/-<imm8>]!
- * ainstr = 0xE05000F0;
- * ainstr |= ntBIT (10) << 24; // P
- * ainstr |= ntBIT (9) << 23; // U
- * ainstr |= ntBIT (8) << 21; // W
- * ainstr |= Rn << 16;
- * ainstr |= Rt << 12;
- * ainstr |= ntBITS (4, 7) << 8;
- * ainstr |= ntBITS (0, 3);
- * pvalid = t_decoded;
- break;
- }
- else /* U == 0 */
- {
- // LDRSH<c>.W <Rt>,[<Rn>,<Rm>{,LSL #<imm2>}]
- ARMword Rm = ntBITS (0, 3);
- ARMword imm2 = ntBITS (4,5);
-
- tASSERT (ntBITS (6, 11) == 0);
-
- address += (state->Reg[Rm] << imm2);
- }
-
- state->Reg[Rt] = ARMul_LoadHalfWord (state, address);
- if (state->Reg[Rt] & 0x8000)
- state->Reg[Rt] |= -(1 << 16);
-
- * pvalid = t_branch;
- break;
- }
-
- case 0x0D0:
- {
- ARMword Rm = ntBITS (0, 3);
- ARMword Rd = ntBITS (8, 11);
-
- tASSERT (ntBITS (12, 15) == 15);
-
- if (ntBIT (7) == 1)
- {
- // SXTH<c>.W <Rd>,<Rm>{,<rotation>}
- ARMword ror = ntBITS (4, 5) << 3;
- ARMword val;
-
- val = state->Reg[Rm];
- val = (val >> ror) | (val << (32 - ror));
- if (val & 0x8000)
- val |= -(1 << 16);
- state->Reg[Rd] = val;
- }
- else
- {
- // LSL{S}<c>.W <Rd>,<Rn>,<Rm>
- ARMword Rn = tBITS (0, 3);
-
- tASSERT (ntBITS (4, 6) == 0);
-
- state->Reg[Rd] = state->Reg[Rn] << (state->Reg[Rm] & 0xFF);
- if (tBIT (4))
- ARMul_NegZero (state, state->Reg[Rd]);
- }
- * pvalid = t_branch;
- break;
- }
-
- case 0x0D1: // LSR{S}<c>.W <Rd>,<Rn>,<Rm>
- {
- ARMword Rd = ntBITS (8, 11);
- ARMword Rn = tBITS (0, 3);
- ARMword Rm = ntBITS (0, 3);
-
- tASSERT (ntBITS (12, 15) == 15);
- tASSERT (ntBITS (4, 7) == 0);
-
- state->Reg[Rd] = state->Reg[Rn] >> (state->Reg[Rm] & 0xFF);
- if (tBIT (4))
- ARMul_NegZero (state, state->Reg[Rd]);
- * pvalid = t_resolved;
- break;
- }
-
- case 0xD2:
- tASSERT (ntBITS (12, 15) == 15);
- if (ntBIT (7))
- {
- tASSERT (ntBIT (6) == 0);
- // UXTB<c>.W <Rd>,<Rm>{,<rotation>}
- * ainstr = 0xE6EF0070;
- * ainstr |= (ntBITS (4, 5) << 10); // rotate
- * ainstr |= ntBITS (0, 3); // Rm
- }
- else
- {
- // ASR{S}<c>.W <Rd>,<Rn>,<Rm>
- tASSERT (ntBITS (4, 7) == 0);
- * ainstr = 0xE1A00050;
- if (! in_IT_block ())
- * ainstr |= (tBIT (4) << 20);
- * ainstr |= (ntBITS (0, 3) << 8); // Rm
- * ainstr |= tBITS (0, 3); // Rn
- }
-
- * ainstr |= (ntBITS (8, 11) << 12); // Rd
- * pvalid = t_decoded;
- break;
-
- case 0xD3: // ROR{S}<c>.W <Rd>,<Rn>,<Rm>
- tASSERT (ntBITS (12, 15) == 15);
- tASSERT (ntBITS (4, 7) == 0);
- * ainstr = 0xE1A00070;
- if (! in_IT_block ())
- * ainstr |= (tBIT (4) << 20);
- * ainstr |= (ntBITS (8, 11) << 12); // Rd
- * ainstr |= (ntBITS (0, 3) << 8); // Rm
- * ainstr |= (tBITS (0, 3) << 0); // Rn
- * pvalid = t_decoded;
- break;
-
- case 0xD4:
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rd = ntBITS (8, 11);
- ARMword Rm = ntBITS (0, 3);
-
- tASSERT (ntBITS (12, 15) == 15);
-
- if (ntBITS (4, 7) == 8)
- {
- // REV<c>.W <Rd>,<Rm>
- ARMword val = state->Reg[Rm];
-
- tASSERT (Rm == Rn);
-
- state->Reg [Rd] =
- (val >> 24)
- | ((val >> 8) & 0xFF00)
- | ((val << 8) & 0xFF0000)
- | (val << 24);
- * pvalid = t_resolved;
- }
- else
- {
- tASSERT (ntBITS (4, 7) == 4);
-
- if (tBIT (4) == 1)
- // UADD8<c> <Rd>,<Rn>,<Rm>
- * ainstr = 0xE6500F10;
- else
- // UADD16<c> <Rd>,<Rn>,<Rm>
- * ainstr = 0xE6500F90;
-
- * ainstr |= (Rn << 16);
- * ainstr |= (Rd << 12);
- * ainstr |= (Rm << 0);
- * pvalid = t_decoded;
- }
- break;
- }
-
- case 0xD5:
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rd = ntBITS (8, 11);
- ARMword Rm = ntBITS (0, 3);
-
- tASSERT (ntBITS (12, 15) == 15);
- tASSERT (ntBITS (4, 7) == 8);
-
- if (tBIT (4))
- {
- // CLZ<c> <Rd>,<Rm>
- tASSERT (Rm == Rn);
- * ainstr = 0xE16F0F10;
- }
- else
- {
- // SEL<c> <Rd>,<Rn>,<Rm>
- * ainstr = 0xE6800FB0;
- * ainstr |= (Rn << 16);
- }
-
- * ainstr |= (Rd << 12);
- * ainstr |= (Rm << 0);
- * pvalid = t_decoded;
- break;
- }
-
- case 0xD8: // MUL
- {
- ARMword Rn = tBITS (0, 3);
- ARMword Rm = ntBITS (0, 3);
- ARMword Rd = ntBITS (8, 11);
- ARMword Ra = ntBITS (12, 15);
-
- if (tBIT (4))
- {
- // SMLA<x><y><c> <Rd>,<Rn>,<Rm>,<Ra>
- ARMword nval = state->Reg[Rn];
- ARMword mval = state->Reg[Rm];
- ARMword res;
-
- tASSERT (ntBITS (6, 7) == 0);
- tASSERT (Ra != 15);
-
- if (ntBIT (5))
- nval >>= 16;
- else
- nval &= 0xFFFF;
-
- if (ntBIT (4))
- mval >>= 16;
- else
- mval &= 0xFFFF;
-
- res = nval * mval;
- res += state->Reg[Ra];
- // FIXME: Test and clear/set the Q bit.
- state->Reg[Rd] = res;
- }
- else
- {
- if (ntBITS (4, 7) == 1)
- {
- // MLS<c> <Rd>,<Rn>,<Rm>,<Ra>
- state->Reg[Rd] = state->Reg[Ra] - (state->Reg[Rn] * state->Reg[Rm]);
- }
- else
- {
- tASSERT (ntBITS (4, 7) == 0);
-
- if (Ra == 15)
- // MUL<c> <Rd>,<Rn>,<Rm>
- state->Reg[Rd] = state->Reg[Rn] * state->Reg[Rm];
- else
- // MLA<c> <Rd>,<Rn>,<Rm>,<Ra>
- state->Reg[Rd] = state->Reg[Rn] * state->Reg[Rm] + state->Reg[Ra];
- }
- }
- * pvalid = t_resolved;
- break;
- }
-
- case 0xDC:
- if (tBIT (4) == 0 && ntBITS (4, 7) == 0)
- {
- // SMULL
- * ainstr = 0xE0C00090;
- * ainstr |= (ntBITS (8, 11) << 16); // RdHi
- * ainstr |= (ntBITS (12, 15) << 12); // RdLo
- * ainstr |= (ntBITS (0, 3) << 8); // Rm
- * ainstr |= tBITS (0, 3); // Rn
- * pvalid = t_decoded;
- }
- else if (tBIT (4) == 1 && ntBITS (4, 7) == 0xF)
- {
- // SDIV
- * ainstr = 0xE710F010;
- * ainstr |= (ntBITS (8, 11) << 16); // Rd
- * ainstr |= (ntBITS (0, 3) << 8); // Rm
- * ainstr |= tBITS (0, 3); // Rn
- * pvalid = t_decoded;
- }
- else
- {
- fprintf (stderr, "(op = %x) ", tBITS (5,12));
- tASSERT (0);
- return;
- }
- break;
-
- case 0xDD:
- if (tBIT (4) == 0 && ntBITS (4, 7) == 0)
- {
- // UMULL
- * ainstr = 0xE0800090;
- * ainstr |= (ntBITS (8, 11) << 16); // RdHi
- * ainstr |= (ntBITS (12, 15) << 12); // RdLo
- * ainstr |= (ntBITS (0, 3) << 8); // Rm
- * ainstr |= tBITS (0, 3); // Rn
- * pvalid = t_decoded;
- }
- else if (tBIT (4) == 1 && ntBITS (4, 7) == 0xF)
- {
- // UDIV
- * ainstr = 0xE730F010;
- * ainstr |= (ntBITS (8, 11) << 16); // Rd
- * ainstr |= (ntBITS (0, 3) << 8); // Rm
- * ainstr |= tBITS (0, 3); // Rn
- * pvalid = t_decoded;
- }
- else
- {
- fprintf (stderr, "(op = %x) ", tBITS (5,12));
- tASSERT (0);
- return;
- }
- break;
-
- case 0xDF: // UMLAL
- tASSERT (tBIT (4) == 0);
- tASSERT (ntBITS (4, 7) == 0);
- * ainstr = 0xE0A00090;
- * ainstr |= (ntBITS (8, 11) << 16); // RdHi
- * ainstr |= (ntBITS (12, 15) << 12); // RdLo
- * ainstr |= (ntBITS (0, 3) << 8); // Rm
- * ainstr |= tBITS (0, 3); // Rn
- * pvalid = t_decoded;
- break;
-
- default:
- fprintf (stderr, "(op = %x) ", tBITS (5,12));
- tASSERT (0);
- return;
- }
-
- /* Tell the Thumb decoder to skip the next 16-bit insn - it was
- part of this insn - unless this insn has changed the PC. */
- skipping_32bit_thumb = pc + 2;
-}
-
-/* Attempt to emulate an ARMv6 instruction.
- Stores t_branch into PVALUE upon success or t_undefined otherwise. */
-
-static void
-handle_v6_thumb_insn (ARMul_State * state,
- ARMword tinstr,
- ARMword next_instr,
- ARMword pc,
- ARMword * ainstr,
- tdstate * pvalid)
-{
- if (! state->is_v6)
- {
- * pvalid = t_undefined;
- return;
- }
-
- if (tBITS (12, 15) == 0xB
- && tBIT (10) == 0
- && tBIT (8) == 1)
- {
- // Conditional branch forwards.
- ARMword Rn = tBITS (0, 2);
- ARMword imm5 = tBIT (9) << 5 | tBITS (3, 7);
-
- if (tBIT (11))
- {
- if (state->Reg[Rn] != 0)
- {
- state->Reg[15] = (pc + 4 + imm5 * 2);
- FLUSHPIPE;
- }
- }
- else
- {
- if (state->Reg[Rn] == 0)
- {
- state->Reg[15] = (pc + 4 + imm5 * 2);
- FLUSHPIPE;
- }
- }
- * pvalid = t_branch;
- return;
- }
-
- switch (tinstr & 0xFFC0)
- {
- case 0x4400:
- case 0x4480:
- case 0x4440:
- case 0x44C0: // ADD
- {
- ARMword Rd = (tBIT (7) << 3) | tBITS (0, 2);
- ARMword Rm = tBITS (3, 6);
- state->Reg[Rd] += state->Reg[Rm];
- break;
- }
-
- case 0x4600: // MOV<c> <Rd>,<Rm>
- {
- // instr [15, 8] = 0100 0110
- // instr [7] = Rd<high>
- // instr [6,3] = Rm
- // instr [2,0] = Rd<low>
- ARMword Rd = (tBIT(7) << 3) | tBITS (0, 2);
- // FIXME: Check for Rd == 15 and ITblock.
- state->Reg[Rd] = state->Reg[tBITS (3, 6)];
- break;
- }
-
- case 0xBF00:
- case 0xBF40:
- case 0xBF80:
- case 0xBFC0:
- handle_IT_block (state, tinstr, pvalid);
- return;
-
- case 0xE840:
- case 0xE880: // LDMIA
- case 0xE8C0:
- case 0xE900: // STM
- case 0xE940:
- case 0xE980:
- case 0xE9C0: // LDRD
- case 0xEA00: // BIC
- case 0xEA40: // ORR
- case 0xEA80: // EOR
- case 0xEAC0:
- case 0xEB00: // ADD
- case 0xEB40: // SBC
- case 0xEB80: // SUB
- case 0xEBC0: // RSB
- case 0xFA80: // UADD, SEL
- case 0xFBC0: // UMULL, SMULL, SDIV, UDIV
- handle_T2_insn (state, tinstr, next_instr, pc, ainstr, pvalid);
- return;
-
- case 0xba00: /* rev */
- {
- ARMword val = state->Reg[tBITS (3, 5)];
- state->Reg [tBITS (0, 2)] =
- (val >> 24)
- | ((val >> 8) & 0xFF00)
- | ((val << 8) & 0xFF0000)
- | (val << 24);
- break;
- }
-
- case 0xba40: /* rev16 */
- {
- ARMword val = state->Reg[tBITS (3, 5)];
- state->Reg [tBITS (0, 2)] = (val >> 16) | (val << 16);
- break;
- }
-
- case 0xb660: /* cpsie */
- case 0xb670: /* cpsid */
- case 0xbac0: /* revsh */
- case 0xb650: /* setend */
- default:
- printf ("Unhandled v6 thumb insn: %04x\n", tinstr);
- * pvalid = t_undefined;
- return;
-
- case 0xb200: /* sxth */
- {
- ARMword Rm = state->Reg [(tinstr & 0x38) >> 3];
-
- if (Rm & 0x8000)
- state->Reg [(tinstr & 0x7)] = (Rm & 0xffff) | 0xffff0000;
- else
- state->Reg [(tinstr & 0x7)] = Rm & 0xffff;
- break;
- }
-
- case 0xb240: /* sxtb */
- {
- ARMword Rm = state->Reg [(tinstr & 0x38) >> 3];
-
- if (Rm & 0x80)
- state->Reg [(tinstr & 0x7)] = (Rm & 0xff) | 0xffffff00;
- else
- state->Reg [(tinstr & 0x7)] = Rm & 0xff;
- break;
- }
-
- case 0xb280: /* uxth */
- {
- ARMword Rm = state->Reg [(tinstr & 0x38) >> 3];
-
- state->Reg [(tinstr & 0x7)] = Rm & 0xffff;
- break;
- }
-
- case 0xb2c0: /* uxtb */
- {
- ARMword Rm = state->Reg [(tinstr & 0x38) >> 3];
-
- state->Reg [(tinstr & 0x7)] = Rm & 0xff;
- break;
- }
- }
- /* Indicate that the instruction has been processed. */
- * pvalid = t_branch;
-}
-
-/* Decode a 16bit Thumb instruction. The instruction is in the low
- 16-bits of the tinstr field, with the following Thumb instruction
- held in the high 16-bits. Passing in two Thumb instructions allows
- easier simulation of the special dual BL instruction. */
-
-tdstate
-ARMul_ThumbDecode (ARMul_State * state,
- ARMword pc,
- ARMword tinstr,
- ARMword * ainstr)
-{
- tdstate valid = t_decoded; /* default assumes a valid instruction */
- ARMword next_instr;
- ARMword old_tinstr = tinstr;
-
- if (skipping_32bit_thumb == pc)
- {
- skipping_32bit_thumb = 0;
- return t_branch;
- }
- skipping_32bit_thumb = 0;
-
- if (state->bigendSig)
- {
- next_instr = tinstr & 0xFFFF;
- tinstr >>= 16;
- }
- else
- {
- next_instr = tinstr >> 16;
- tinstr &= 0xFFFF;
- }
-
- if (! IT_block_allow (state))
- {
- if ( tBITS (11, 15) == 0x1F
- || tBITS (11, 15) == 0x1E
- || tBITS (11, 15) == 0x1D)
- {
- if (trace)
- fprintf (stderr, "pc: %x, SKIP instr: %04x|%04x\n",
- pc & ~1, tinstr, next_instr);
- skipping_32bit_thumb = pc + 2;
- }
- else if (trace)
- fprintf (stderr, "pc: %x, SKIP instr: %04x\n", pc & ~1, tinstr);
-
- return t_branch;
- }
-
- old_tinstr = tinstr;
- if (trace)
- fprintf (stderr, "pc: %x, Thumb instr: %x", pc & ~1, tinstr);
-
-#if 1 /* debugging to catch non updates */
- *ainstr = 0xDEADC0DE;
-#endif
-
- switch ((tinstr & 0xF800) >> 11)
- {
- case 0: /* LSL */
- case 1: /* LSR */
- case 2: /* ASR */
- /* Format 1 */
- *ainstr = 0xE1B00000 /* base opcode */
- | ((tinstr & 0x1800) >> (11 - 5)) /* shift type */
- | ((tinstr & 0x07C0) << (7 - 6)) /* imm5 */
- | ((tinstr & 0x0038) >> 3) /* Rs */
- | ((tinstr & 0x0007) << 12); /* Rd */
- break;
- case 3: /* ADD/SUB */
- /* Format 2 */
- {
- ARMword subset[4] =
- {
- 0xE0900000, /* ADDS Rd,Rs,Rn */
- 0xE0500000, /* SUBS Rd,Rs,Rn */
- 0xE2900000, /* ADDS Rd,Rs,#imm3 */
- 0xE2500000 /* SUBS Rd,Rs,#imm3 */
- };
- /* It is quicker indexing into a table, than performing switch
- or conditionals: */
- *ainstr = subset[(tinstr & 0x0600) >> 9] /* base opcode */
- | ((tinstr & 0x01C0) >> 6) /* Rn or imm3 */
- | ((tinstr & 0x0038) << (16 - 3)) /* Rs */
- | ((tinstr & 0x0007) << (12 - 0)); /* Rd */
-
- if (in_IT_block ())
- *ainstr &= ~ (1 << 20);
- }
- break;
- case 4:
- * ainstr = 0xE3A00000; /* MOV Rd,#imm8 */
- if (! in_IT_block ())
- * ainstr |= (1 << 20);
- * ainstr |= tBITS (8, 10) << 12;
- * ainstr |= tBITS (0, 7);
- break;
-
- case 5:
- * ainstr = 0xE3500000; /* CMP Rd,#imm8 */
- * ainstr |= tBITS (8, 10) << 16;
- * ainstr |= tBITS (0, 7);
- break;
-
- case 6:
- case 7:
- * ainstr = tBIT (11)
- ? 0xE2400000 /* SUB Rd,Rd,#imm8 */
- : 0xE2800000; /* ADD Rd,Rd,#imm8 */
- if (! in_IT_block ())
- * ainstr |= (1 << 20);
- * ainstr |= tBITS (8, 10) << 12;
- * ainstr |= tBITS (8, 10) << 16;
- * ainstr |= tBITS (0, 7);
- break;
-
- case 8: /* Arithmetic and high register transfers */
- /* TODO: Since the subsets for both Format 4 and Format 5
- instructions are made up of different ARM encodings, we could
- save the following conditional, and just have one large
- subset. */
- if ((tinstr & (1 << 10)) == 0)
- {
- /* Format 4 */
- struct insn_format {
- ARMword opcode;
- enum { t_norm, t_shift, t_neg, t_mul } otype;
- };
- static const struct insn_format subset[16] =
- {
- { 0xE0100000, t_norm}, /* ANDS Rd,Rd,Rs */
- { 0xE0300000, t_norm}, /* EORS Rd,Rd,Rs */
- { 0xE1B00010, t_shift}, /* MOVS Rd,Rd,LSL Rs */
- { 0xE1B00030, t_shift}, /* MOVS Rd,Rd,LSR Rs */
- { 0xE1B00050, t_shift}, /* MOVS Rd,Rd,ASR Rs */
- { 0xE0B00000, t_norm}, /* ADCS Rd,Rd,Rs */
- { 0xE0D00000, t_norm}, /* SBCS Rd,Rd,Rs */
- { 0xE1B00070, t_shift}, /* MOVS Rd,Rd,ROR Rs */
- { 0xE1100000, t_norm}, /* TST Rd,Rs */
- { 0xE2700000, t_neg}, /* RSBS Rd,Rs,#0 */
- { 0xE1500000, t_norm}, /* CMP Rd,Rs */
- { 0xE1700000, t_norm}, /* CMN Rd,Rs */
- { 0xE1900000, t_norm}, /* ORRS Rd,Rd,Rs */
- { 0xE0100090, t_mul} , /* MULS Rd,Rd,Rs */
- { 0xE1D00000, t_norm}, /* BICS Rd,Rd,Rs */
- { 0xE1F00000, t_norm} /* MVNS Rd,Rs */
- };
- *ainstr = subset[(tinstr & 0x03C0) >> 6].opcode; /* base */
-
- if (in_IT_block ())
- {
- static const struct insn_format it_subset[16] =
- {
- { 0xE0000000, t_norm}, /* AND Rd,Rd,Rs */
- { 0xE0200000, t_norm}, /* EOR Rd,Rd,Rs */
- { 0xE1A00010, t_shift}, /* MOV Rd,Rd,LSL Rs */
- { 0xE1A00030, t_shift}, /* MOV Rd,Rd,LSR Rs */
- { 0xE1A00050, t_shift}, /* MOV Rd,Rd,ASR Rs */
- { 0xE0A00000, t_norm}, /* ADC Rd,Rd,Rs */
- { 0xE0C00000, t_norm}, /* SBC Rd,Rd,Rs */
- { 0xE1A00070, t_shift}, /* MOV Rd,Rd,ROR Rs */
- { 0xE1100000, t_norm}, /* TST Rd,Rs */
- { 0xE2600000, t_neg}, /* RSB Rd,Rs,#0 */
- { 0xE1500000, t_norm}, /* CMP Rd,Rs */
- { 0xE1700000, t_norm}, /* CMN Rd,Rs */
- { 0xE1800000, t_norm}, /* ORR Rd,Rd,Rs */
- { 0xE0000090, t_mul} , /* MUL Rd,Rd,Rs */
- { 0xE1C00000, t_norm}, /* BIC Rd,Rd,Rs */
- { 0xE1E00000, t_norm} /* MVN Rd,Rs */
- };
- *ainstr = it_subset[(tinstr & 0x03C0) >> 6].opcode; /* base */
- }
-
- switch (subset[(tinstr & 0x03C0) >> 6].otype)
- {
- case t_norm:
- *ainstr |= ((tinstr & 0x0007) << 16) /* Rn */
- | ((tinstr & 0x0007) << 12) /* Rd */
- | ((tinstr & 0x0038) >> 3); /* Rs */
- break;
- case t_shift:
- *ainstr |= ((tinstr & 0x0007) << 12) /* Rd */
- | ((tinstr & 0x0007) >> 0) /* Rm */
- | ((tinstr & 0x0038) << (8 - 3)); /* Rs */
- break;
- case t_neg:
- *ainstr |= ((tinstr & 0x0007) << 12) /* Rd */
- | ((tinstr & 0x0038) << (16 - 3)); /* Rn */
- break;
- case t_mul:
- *ainstr |= ((tinstr & 0x0007) << 16) /* Rd */
- | ((tinstr & 0x0007) << 8) /* Rs */
- | ((tinstr & 0x0038) >> 3); /* Rm */
- break;
- }
- }
- else
- {
- /* Format 5 */
- ARMword Rd = ((tinstr & 0x0007) >> 0);
- ARMword Rs = ((tinstr & 0x0038) >> 3);
- if (tinstr & (1 << 7))
- Rd += 8;
- if (tinstr & (1 << 6))
- Rs += 8;
- switch ((tinstr & 0x03C0) >> 6)
- {
- case 0x1: /* ADD Rd,Rd,Hs */
- case 0x2: /* ADD Hd,Hd,Rs */
- case 0x3: /* ADD Hd,Hd,Hs */
- *ainstr = 0xE0800000 /* base */
- | (Rd << 16) /* Rn */
- | (Rd << 12) /* Rd */
- | (Rs << 0); /* Rm */
- break;
- case 0x5: /* CMP Rd,Hs */
- case 0x6: /* CMP Hd,Rs */
- case 0x7: /* CMP Hd,Hs */
- *ainstr = 0xE1500000 /* base */
- | (Rd << 16) /* Rn */
- | (Rd << 12) /* Rd */
- | (Rs << 0); /* Rm */
- break;
- case 0x9: /* MOV Rd,Hs */
- case 0xA: /* MOV Hd,Rs */
- case 0xB: /* MOV Hd,Hs */
- *ainstr = 0xE1A00000 /* base */
- | (Rd << 12) /* Rd */
- | (Rs << 0); /* Rm */
- break;
- case 0xC: /* BX Rs */
- case 0xD: /* BX Hs */
- *ainstr = 0xE12FFF10 /* base */
- | ((tinstr & 0x0078) >> 3); /* Rd */
- break;
- case 0xE: /* UNDEFINED */
- case 0xF: /* UNDEFINED */
- if (state->is_v5)
- {
- /* BLX Rs; BLX Hs */
- *ainstr = 0xE12FFF30 /* base */
- | ((tinstr & 0x0078) >> 3); /* Rd */
- break;
- }
- ATTRIBUTE_FALLTHROUGH;
- default:
- case 0x0: /* UNDEFINED */
- case 0x4: /* UNDEFINED */
- case 0x8: /* UNDEFINED */
- handle_v6_thumb_insn (state, tinstr, next_instr, pc, ainstr, & valid);
- break;
- }
- }
- break;
- case 9: /* LDR Rd,[PC,#imm8] */
- /* Format 6 */
- *ainstr = 0xE59F0000 /* base */
- | ((tinstr & 0x0700) << (12 - 8)) /* Rd */
- | ((tinstr & 0x00FF) << (2 - 0)); /* off8 */
- break;
- case 10:
- case 11:
- /* TODO: Format 7 and Format 8 perform the same ARM encoding, so
- the following could be merged into a single subset, saving on
- the following boolean: */
- if ((tinstr & (1 << 9)) == 0)
- {
- /* Format 7 */
- ARMword subset[4] = {
- 0xE7800000, /* STR Rd,[Rb,Ro] */
- 0xE7C00000, /* STRB Rd,[Rb,Ro] */
- 0xE7900000, /* LDR Rd,[Rb,Ro] */
- 0xE7D00000 /* LDRB Rd,[Rb,Ro] */
- };
- *ainstr = subset[(tinstr & 0x0C00) >> 10] /* base */
- | ((tinstr & 0x0007) << (12 - 0)) /* Rd */
- | ((tinstr & 0x0038) << (16 - 3)) /* Rb */
- | ((tinstr & 0x01C0) >> 6); /* Ro */
- }
- else
- {
- /* Format 8 */
- ARMword subset[4] = {
- 0xE18000B0, /* STRH Rd,[Rb,Ro] */
- 0xE19000D0, /* LDRSB Rd,[Rb,Ro] */
- 0xE19000B0, /* LDRH Rd,[Rb,Ro] */
- 0xE19000F0 /* LDRSH Rd,[Rb,Ro] */
- };
- *ainstr = subset[(tinstr & 0x0C00) >> 10] /* base */
- | ((tinstr & 0x0007) << (12 - 0)) /* Rd */
- | ((tinstr & 0x0038) << (16 - 3)) /* Rb */
- | ((tinstr & 0x01C0) >> 6); /* Ro */
- }
- break;
- case 12: /* STR Rd,[Rb,#imm5] */
- case 13: /* LDR Rd,[Rb,#imm5] */
- case 14: /* STRB Rd,[Rb,#imm5] */
- case 15: /* LDRB Rd,[Rb,#imm5] */
- /* Format 9 */
- {
- ARMword subset[4] = {
- 0xE5800000, /* STR Rd,[Rb,#imm5] */
- 0xE5900000, /* LDR Rd,[Rb,#imm5] */
- 0xE5C00000, /* STRB Rd,[Rb,#imm5] */
- 0xE5D00000 /* LDRB Rd,[Rb,#imm5] */
- };
- /* The offset range defends on whether we are transferring a
- byte or word value: */
- *ainstr = subset[(tinstr & 0x1800) >> 11] /* base */
- | ((tinstr & 0x0007) << (12 - 0)) /* Rd */
- | ((tinstr & 0x0038) << (16 - 3)) /* Rb */
- | ((tinstr & 0x07C0) >> (6 - ((tinstr & (1 << 12)) ? 0 : 2))); /* off5 */
- }
- break;
- case 16: /* STRH Rd,[Rb,#imm5] */
- case 17: /* LDRH Rd,[Rb,#imm5] */
- /* Format 10 */
- *ainstr = ((tinstr & (1 << 11)) /* base */
- ? 0xE1D000B0 /* LDRH */
- : 0xE1C000B0) /* STRH */
- | ((tinstr & 0x0007) << (12 - 0)) /* Rd */
- | ((tinstr & 0x0038) << (16 - 3)) /* Rb */
- | ((tinstr & 0x01C0) >> (6 - 1)) /* off5, low nibble */
- | ((tinstr & 0x0600) >> (9 - 8)); /* off5, high nibble */
- break;
- case 18: /* STR Rd,[SP,#imm8] */
- case 19: /* LDR Rd,[SP,#imm8] */
- /* Format 11 */
- *ainstr = ((tinstr & (1 << 11)) /* base */
- ? 0xE59D0000 /* LDR */
- : 0xE58D0000) /* STR */
- | ((tinstr & 0x0700) << (12 - 8)) /* Rd */
- | ((tinstr & 0x00FF) << 2); /* off8 */
- break;
- case 20: /* ADD Rd,PC,#imm8 */
- case 21: /* ADD Rd,SP,#imm8 */
- /* Format 12 */
- if ((tinstr & (1 << 11)) == 0)
- {
- /* NOTE: The PC value used here should by word aligned */
- /* We encode shift-left-by-2 in the rotate immediate field,
- so no shift of off8 is needed. */
- *ainstr = 0xE28F0F00 /* base */
- | ((tinstr & 0x0700) << (12 - 8)) /* Rd */
- | (tinstr & 0x00FF); /* off8 */
- }
- else
- {
- /* We encode shift-left-by-2 in the rotate immediate field,
- so no shift of off8 is needed. */
- *ainstr = 0xE28D0F00 /* base */
- | ((tinstr & 0x0700) << (12 - 8)) /* Rd */
- | (tinstr & 0x00FF); /* off8 */
- }
- break;
- case 22:
- case 23:
- switch (tinstr & 0x0F00)
- {
- case 0x0000:
- /* Format 13 */
- /* NOTE: The instruction contains a shift left of 2
- equivalent (implemented as ROR #30): */
- *ainstr = ((tinstr & (1 << 7)) /* base */
- ? 0xE24DDF00 /* SUB */
- : 0xE28DDF00) /* ADD */
- | (tinstr & 0x007F); /* off7 */
- break;
- case 0x0400:
- /* Format 14 - Push */
- * ainstr = 0xE92D0000 | (tinstr & 0x00FF);
- break;
- case 0x0500:
- /* Format 14 - Push + LR */
- * ainstr = 0xE92D4000 | (tinstr & 0x00FF);
- break;
- case 0x0c00:
- /* Format 14 - Pop */
- * ainstr = 0xE8BD0000 | (tinstr & 0x00FF);
- break;
- case 0x0d00:
- /* Format 14 - Pop + PC */
- * ainstr = 0xE8BD8000 | (tinstr & 0x00FF);
- break;
- case 0x0e00:
- if (state->is_v5)
- {
- /* This is normally an undefined instruction. The v5t architecture
- defines this particular pattern as a BKPT instruction, for
- hardware assisted debugging. We map onto the arm BKPT
- instruction. */
- if (state->is_v6)
- // Map to the SVC instruction instead of the BKPT instruction.
- * ainstr = 0xEF000000 | tBITS (0, 7);
- else
- * ainstr = 0xE1200070 | ((tinstr & 0xf0) << 4) | (tinstr & 0xf);
- break;
- }
- ATTRIBUTE_FALLTHROUGH;
- default:
- /* Everything else is an undefined instruction. */
- handle_v6_thumb_insn (state, tinstr, next_instr, pc, ainstr, & valid);
- break;
- }
- break;
- case 24: /* STMIA */
- case 25: /* LDMIA */
- /* Format 15 */
- *ainstr = ((tinstr & (1 << 11)) /* base */
- ? 0xE8B00000 /* LDMIA */
- : 0xE8A00000) /* STMIA */
- | ((tinstr & 0x0700) << (16 - 8)) /* Rb */
- | (tinstr & 0x00FF); /* mask8 */
- break;
- case 26: /* Bcc */
- case 27: /* Bcc/SWI */
- if ((tinstr & 0x0F00) == 0x0F00)
- {
- /* Format 17 : SWI */
- *ainstr = 0xEF000000;
- /* Breakpoint must be handled specially. */
- if ((tinstr & 0x00FF) == 0x18)
- *ainstr |= ((tinstr & 0x00FF) << 16);
- /* New breakpoint value. See gdb/arm-tdep.c */
- else if ((tinstr & 0x00FF) == 0xFE)
- *ainstr |= SWI_Breakpoint;
- else
- *ainstr |= (tinstr & 0x00FF);
- }
- else if ((tinstr & 0x0F00) != 0x0E00)
- {
- /* Format 16 */
- int doit = FALSE;
- /* TODO: Since we are doing a switch here, we could just add
- the SWI and undefined instruction checks into this
- switch to same on a couple of conditionals: */
- switch ((tinstr & 0x0F00) >> 8)
- {
- case EQ:
- doit = ZFLAG;
- break;
- case NE:
- doit = !ZFLAG;
- break;
- case VS:
- doit = VFLAG;
- break;
- case VC:
- doit = !VFLAG;
- break;
- case MI:
- doit = NFLAG;
- break;
- case PL:
- doit = !NFLAG;
- break;
- case CS:
- doit = CFLAG;
- break;
- case CC:
- doit = !CFLAG;
- break;
- case HI:
- doit = (CFLAG && !ZFLAG);
- break;
- case LS:
- doit = (!CFLAG || ZFLAG);
- break;
- case GE:
- doit = ((!NFLAG && !VFLAG) || (NFLAG && VFLAG));
- break;
- case LT:
- doit = ((NFLAG && !VFLAG) || (!NFLAG && VFLAG));
- break;
- case GT:
- doit = ((!NFLAG && !VFLAG && !ZFLAG)
- || (NFLAG && VFLAG && !ZFLAG));
- break;
- case LE:
- doit = ((NFLAG && !VFLAG) || (!NFLAG && VFLAG)) || ZFLAG;
- break;
- }
- if (doit)
- {
- state->Reg[15] = (pc + 4
- + (((tinstr & 0x7F) << 1)
- | ((tinstr & (1 << 7)) ? 0xFFFFFF00 : 0)));
- FLUSHPIPE;
- }
- valid = t_branch;
- }
- else
- /* UNDEFINED : cc=1110(AL) uses different format. */
- handle_v6_thumb_insn (state, tinstr, next_instr, pc, ainstr, & valid);
- break;
- case 28: /* B */
- /* Format 18 */
- state->Reg[15] = (pc + 4
- + (((tinstr & 0x3FF) << 1)
- | ((tinstr & (1 << 10)) ? 0xFFFFF800 : 0)));
- FLUSHPIPE;
- valid = t_branch;
- break;
- case 29: /* UNDEFINED */
- if (state->is_v6)
- {
- handle_v6_thumb_insn (state, tinstr, next_instr, pc, ainstr, & valid);
- break;
- }
-
- if (state->is_v5)
- {
- if (tinstr & 1)
- {
- handle_v6_thumb_insn (state, tinstr, next_instr, pc, ainstr, & valid);
- break;
- }
- /* Drop through. */
-
- /* Format 19 */
- /* There is no single ARM instruction equivalent for this
- instruction. Also, it should only ever be matched with the
- fmt19 "BL/BLX instruction 1" instruction. However, we do
- allow the simulation of it on its own, with undefined results
- if r14 is not suitably initialised. */
- {
- ARMword tmp = (pc + 2);
-
- state->Reg[15] = ((state->Reg[14] + ((tinstr & 0x07FF) << 1))
- & 0xFFFFFFFC);
- CLEART;
- state->Reg[14] = (tmp | 1);
- valid = t_branch;
- FLUSHPIPE;
- if (trace_funcs)
- fprintf (stderr, " pc changed to %x\n", state->Reg[15]);
- break;
- }
- }
-
- handle_v6_thumb_insn (state, tinstr, next_instr, pc, ainstr, & valid);
- break;
-
- case 30: /* BL instruction 1 */
- if (state->is_v6)
- {
- handle_T2_insn (state, tinstr, next_instr, pc, ainstr, & valid);
- break;
- }
-
- /* Format 19 */
- /* There is no single ARM instruction equivalent for this Thumb
- instruction. To keep the simulation simple (from the user
- perspective) we check if the following instruction is the
- second half of this BL, and if it is we simulate it
- immediately. */
- state->Reg[14] = state->Reg[15] \
- + (((tinstr & 0x07FF) << 12) \
- | ((tinstr & (1 << 10)) ? 0xFF800000 : 0));
-
- valid = t_branch; /* in-case we don't have the 2nd half */
- tinstr = next_instr; /* move the instruction down */
- pc += 2; /* point the pc at the 2nd half */
- if (((tinstr & 0xF800) >> 11) != 31)
- {
- if (((tinstr & 0xF800) >> 11) == 29)
- {
- ARMword tmp = (pc + 2);
-
- state->Reg[15] = ((state->Reg[14]
- + ((tinstr & 0x07FE) << 1))
- & 0xFFFFFFFC);
- CLEART;
- state->Reg[14] = (tmp | 1);
- valid = t_branch;
- FLUSHPIPE;
- }
- else
- /* Exit, since not correct instruction. */
- pc -= 2;
- break;
- }
- /* else we fall through to process the second half of the BL */
- pc += 2; /* point the pc at the 2nd half */
- ATTRIBUTE_FALLTHROUGH;
- case 31: /* BL instruction 2 */
- if (state->is_v6)
- {
- handle_T2_insn (state, old_tinstr, next_instr, pc, ainstr, & valid);
- break;
- }
-
- /* Format 19 */
- /* There is no single ARM instruction equivalent for this
- instruction. Also, it should only ever be matched with the
- fmt19 "BL instruction 1" instruction. However, we do allow
- the simulation of it on its own, with undefined results if
- r14 is not suitably initialised. */
- {
- ARMword tmp = pc;
-
- state->Reg[15] = (state->Reg[14] + ((tinstr & 0x07FF) << 1));
- state->Reg[14] = (tmp | 1);
- valid = t_branch;
- FLUSHPIPE;
- }
- break;
- }
-
- if (trace && valid != t_decoded)
- fprintf (stderr, "\n");
-
- return valid;
-}
diff --git a/sim/arm/wrapper.c b/sim/arm/wrapper.c
deleted file mode 100644
index 0a9986d..0000000
--- a/sim/arm/wrapper.c
+++ /dev/null
@@ -1,938 +0,0 @@
-/* run front end support for arm
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
-
- This file is part of ARM SIM.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- 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, see <http://www.gnu.org/licenses/>. */
-
-/* This file provides the interface between the simulator and
- run.c and gdb (when the simulator is linked with gdb).
- All simulator interaction should go through this file. */
-
-/* This must come before any other includes. */
-#include "defs.h"
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-#include <bfd.h>
-#include <signal.h>
-#include "sim/callback.h"
-#include "sim/sim.h"
-#include "sim-main.h"
-#include "sim-options.h"
-#include "armemu.h"
-#include "dbg_rdi.h"
-#include "ansidecl.h"
-#include "sim/sim-arm.h"
-#include "gdb/signals.h"
-#include "libiberty.h"
-#include "iwmmxt.h"
-#include "maverick.h"
-#include "arm-sim.h"
-
-/* TODO: This should get pulled from the SIM_DESC. */
-host_callback *sim_callback;
-
-/* TODO: This should get merged into sim_cpu. */
-struct ARMul_State *state;
-
-/* Memory size in bytes. */
-/* TODO: Memory should be converted to the common memory module. */
-static int mem_size = (1 << 21);
-
-int stop_simulator;
-
-#include "dis-asm.h"
-
-/* TODO: Tracing should be converted to common tracing module. */
-int trace = 0;
-int disas = 0;
-int trace_funcs = 0;
-
-static struct disassemble_info info;
-static char opbuf[1000];
-
-static int ATTRIBUTE_PRINTF (2, 3)
-op_printf (char *buf, const char *fmt, ...)
-{
- int ret;
- va_list ap;
-
- va_start (ap, fmt);
- ret = vsprintf (opbuf + strlen (opbuf), fmt, ap);
- va_end (ap);
- return ret;
-}
-
-static int ATTRIBUTE_PRINTF (3, 4)
-op_styled_printf (char *buf, enum disassembler_style style,
- const char *fmt, ...)
-{
- int ret;
- va_list ap;
-
- va_start (ap, fmt);
- ret = vsprintf (opbuf + strlen (opbuf), fmt, ap);
- va_end (ap);
- return ret;
-}
-
-static int
-sim_dis_read (bfd_vma memaddr ATTRIBUTE_UNUSED,
- bfd_byte * ptr,
- unsigned int length,
- struct disassemble_info * info)
-{
- ARMword val = (ARMword) *((ARMword *) info->application_data);
-
- while (length--)
- {
- * ptr ++ = val & 0xFF;
- val >>= 8;
- }
- return 0;
-}
-
-void
-print_insn (ARMword instr)
-{
- int size;
- disassembler_ftype disassemble_fn;
-
- opbuf[0] = 0;
- info.application_data = & instr;
- disassemble_fn = disassembler (bfd_arch_arm, 0, 0, NULL);
- size = disassemble_fn (0, & info);
- fprintf (stderr, " %*s\n", size, opbuf);
-}
-
-static void
-init (void)
-{
- static int done;
-
- if (!done)
- {
- ARMul_EmulateInit ();
- state = ARMul_NewState ();
- state->bigendSig = (CURRENT_TARGET_BYTE_ORDER == BFD_ENDIAN_BIG ? HIGH : LOW);
- ARMul_MemoryInit (state, mem_size);
- ARMul_OSInit (state);
- state->verbose = 0;
- done = 1;
- }
-}
-
-void
-ARMul_ConsolePrint (ARMul_State * state,
- const char * format,
- ...)
-{
- va_list ap;
-
- if (state->verbose)
- {
- va_start (ap, format);
- vprintf (format, ap);
- va_end (ap);
- }
-}
-
-uint64_t
-sim_write (SIM_DESC sd ATTRIBUTE_UNUSED,
- uint64_t addr,
- const void * buffer,
- uint64_t size)
-{
- uint64_t i;
- const unsigned char * data = buffer;
-
- init ();
-
- for (i = 0; i < size; i++)
- ARMul_SafeWriteByte (state, addr + i, data[i]);
-
- return size;
-}
-
-uint64_t
-sim_read (SIM_DESC sd ATTRIBUTE_UNUSED,
- uint64_t addr,
- void * buffer,
- uint64_t size)
-{
- uint64_t i;
- unsigned char * data = buffer;
-
- init ();
-
- for (i = 0; i < size; i++)
- data[i] = ARMul_SafeReadByte (state, addr + i);
-
- return size;
-}
-
-int
-sim_stop (SIM_DESC sd ATTRIBUTE_UNUSED)
-{
- state->Emulate = STOP;
- stop_simulator = 1;
- return 1;
-}
-
-void
-sim_resume (SIM_DESC sd ATTRIBUTE_UNUSED,
- int step,
- int siggnal ATTRIBUTE_UNUSED)
-{
- state->EndCondition = 0;
- stop_simulator = 0;
-
- if (step)
- {
- state->Reg[15] = ARMul_DoInstr (state);
- if (state->EndCondition == 0)
- state->EndCondition = RDIError_BreakpointReached;
- }
- else
- {
- state->NextInstr = RESUME; /* treat as PC change */
- state->Reg[15] = ARMul_DoProg (state);
- }
-
- FLUSHPIPE;
-}
-
-SIM_RC
-sim_create_inferior (SIM_DESC sd ATTRIBUTE_UNUSED,
- struct bfd * abfd,
- char * const *argv,
- char * const *env)
-{
- int argvlen = 0;
- int mach;
- char * const *arg;
-
- init ();
-
- if (abfd != NULL)
- {
- ARMul_SetPC (state, bfd_get_start_address (abfd));
- mach = bfd_get_mach (abfd);
- }
- else
- {
- ARMul_SetPC (state, 0); /* ??? */
- mach = 0;
- }
-
-#ifdef MODET
- if (abfd != NULL && (bfd_get_start_address (abfd) & 1))
- SETT;
-#endif
-
- switch (mach)
- {
- default:
- (*sim_callback->printf_filtered)
- (sim_callback,
- "Unknown machine type '%d'; please update sim_create_inferior.\n",
- mach);
- ATTRIBUTE_FALLTHROUGH;
-
- case 0:
- /* We wouldn't set the machine type with earlier toolchains, so we
- explicitly select a processor capable of supporting all ARMs in
- 32bit mode. */
- ARMul_SelectProcessor (state, ARM_v5_Prop | ARM_v5e_Prop | ARM_v6_Prop);
- break;
-
-#if 1
- case bfd_mach_arm_6T2:
- case bfd_mach_arm_7:
- case bfd_mach_arm_7EM:
- ARMul_SelectProcessor (state, ARM_v5_Prop | ARM_v5e_Prop | ARM_v6_Prop);
- break;
-#endif
-
- case bfd_mach_arm_XScale:
- ARMul_SelectProcessor (state, ARM_v5_Prop | ARM_v5e_Prop | ARM_XScale_Prop | ARM_v6_Prop);
- break;
-
- case bfd_mach_arm_iWMMXt2:
- case bfd_mach_arm_iWMMXt:
- {
- extern int SWI_vector_installed;
- ARMword i;
-
- if (! SWI_vector_installed)
- {
- /* Intialise the hardware vectors to zero. */
- if (! SWI_vector_installed)
- for (i = ARMul_ResetV; i <= ARMFIQV; i += 4)
- ARMul_WriteWord (state, i, 0);
-
- /* ARM_WriteWord will have detected the write to the SWI vector,
- but we want SWI_vector_installed to remain at 0 so that thumb
- mode breakpoints will work. */
- SWI_vector_installed = 0;
- }
- }
- ARMul_SelectProcessor (state, ARM_v5_Prop | ARM_v5e_Prop | ARM_XScale_Prop | ARM_iWMMXt_Prop);
- break;
-
- case bfd_mach_arm_ep9312:
- ARMul_SelectProcessor (state, ARM_v4_Prop | ARM_ep9312_Prop);
- break;
-
- case bfd_mach_arm_5:
- if (bfd_family_coff (abfd))
- {
- /* This is a special case in order to support COFF based ARM toolchains.
- The COFF header does not have enough room to store all the different
- kinds of ARM cpu, so the XScale, v5T and v5TE architectures all default
- to v5. (See coff_set_flags() in bdf/coffcode.h). So if we see a v5
- machine type here, we assume it could be any of the above architectures
- and so select the most feature-full. */
- ARMul_SelectProcessor (state, ARM_v5_Prop | ARM_v5e_Prop | ARM_XScale_Prop);
- break;
- }
- ATTRIBUTE_FALLTHROUGH;
-
- case bfd_mach_arm_5T:
- ARMul_SelectProcessor (state, ARM_v5_Prop);
- break;
-
- case bfd_mach_arm_5TE:
- ARMul_SelectProcessor (state, ARM_v5_Prop | ARM_v5e_Prop);
- break;
-
- case bfd_mach_arm_4:
- case bfd_mach_arm_4T:
- ARMul_SelectProcessor (state, ARM_v4_Prop);
- break;
-
- case bfd_mach_arm_3:
- case bfd_mach_arm_3M:
- ARMul_SelectProcessor (state, ARM_Lock_Prop);
- break;
-
- case bfd_mach_arm_2:
- case bfd_mach_arm_2a:
- ARMul_SelectProcessor (state, ARM_Fix26_Prop);
- break;
- }
-
- memset (& info, 0, sizeof (info));
- INIT_DISASSEMBLE_INFO (info, stdout, op_printf, op_styled_printf);
- info.read_memory_func = sim_dis_read;
- info.arch = bfd_get_arch (abfd);
- info.mach = bfd_get_mach (abfd);
- info.endian_code = BFD_ENDIAN_LITTLE;
- if (info.mach == 0)
- info.arch = bfd_arch_arm;
- disassemble_init_for_target (& info);
-
- if (argv != NULL)
- {
- /* Set up the command line by laboriously stringing together
- the environment carefully picked apart by our caller. */
-
- /* Free any old stuff. */
- if (state->CommandLine != NULL)
- {
- free (state->CommandLine);
- state->CommandLine = NULL;
- }
-
- /* See how much we need. */
- for (arg = argv; *arg != NULL; arg++)
- argvlen += strlen (*arg) + 1;
-
- /* Allocate it. */
- state->CommandLine = malloc (argvlen + 1);
- if (state->CommandLine != NULL)
- {
- arg = argv;
- state->CommandLine[0] = '\0';
-
- for (arg = argv; *arg != NULL; arg++)
- {
- strcat (state->CommandLine, *arg);
- strcat (state->CommandLine, " ");
- }
- }
- }
-
- if (env != NULL)
- {
- /* Now see if there's a MEMSIZE spec in the environment. */
- while (*env)
- {
- if (strncmp (*env, "MEMSIZE=", sizeof ("MEMSIZE=") - 1) == 0)
- {
- char *end_of_num;
-
- /* Set up memory limit. */
- state->MemSize =
- strtoul (*env + sizeof ("MEMSIZE=") - 1, &end_of_num, 0);
- }
- env++;
- }
- }
-
- return SIM_RC_OK;
-}
-
-static int
-frommem (struct ARMul_State *state, const unsigned char *memory)
-{
- if (state->bigendSig == HIGH)
- return (memory[0] << 24) | (memory[1] << 16)
- | (memory[2] << 8) | (memory[3] << 0);
- else
- return (memory[3] << 24) | (memory[2] << 16)
- | (memory[1] << 8) | (memory[0] << 0);
-}
-
-static void
-tomem (struct ARMul_State *state,
- unsigned char *memory,
- int val)
-{
- if (state->bigendSig == HIGH)
- {
- memory[0] = val >> 24;
- memory[1] = val >> 16;
- memory[2] = val >> 8;
- memory[3] = val >> 0;
- }
- else
- {
- memory[3] = val >> 24;
- memory[2] = val >> 16;
- memory[1] = val >> 8;
- memory[0] = val >> 0;
- }
-}
-
-static int
-arm_reg_store (SIM_CPU *cpu, int rn, const void *buf, int length)
-{
- init ();
-
- switch ((enum sim_arm_regs) rn)
- {
- case SIM_ARM_R0_REGNUM:
- case SIM_ARM_R1_REGNUM:
- case SIM_ARM_R2_REGNUM:
- case SIM_ARM_R3_REGNUM:
- case SIM_ARM_R4_REGNUM:
- case SIM_ARM_R5_REGNUM:
- case SIM_ARM_R6_REGNUM:
- case SIM_ARM_R7_REGNUM:
- case SIM_ARM_R8_REGNUM:
- case SIM_ARM_R9_REGNUM:
- case SIM_ARM_R10_REGNUM:
- case SIM_ARM_R11_REGNUM:
- case SIM_ARM_R12_REGNUM:
- case SIM_ARM_R13_REGNUM:
- case SIM_ARM_R14_REGNUM:
- case SIM_ARM_R15_REGNUM: /* PC */
- case SIM_ARM_FP0_REGNUM:
- case SIM_ARM_FP1_REGNUM:
- case SIM_ARM_FP2_REGNUM:
- case SIM_ARM_FP3_REGNUM:
- case SIM_ARM_FP4_REGNUM:
- case SIM_ARM_FP5_REGNUM:
- case SIM_ARM_FP6_REGNUM:
- case SIM_ARM_FP7_REGNUM:
- case SIM_ARM_FPS_REGNUM:
- ARMul_SetReg (state, state->Mode, rn, frommem (state, buf));
- break;
-
- case SIM_ARM_PS_REGNUM:
- state->Cpsr = frommem (state, buf);
- ARMul_CPSRAltered (state);
- break;
-
- case SIM_ARM_MAVERIC_COP0R0_REGNUM:
- case SIM_ARM_MAVERIC_COP0R1_REGNUM:
- case SIM_ARM_MAVERIC_COP0R2_REGNUM:
- case SIM_ARM_MAVERIC_COP0R3_REGNUM:
- case SIM_ARM_MAVERIC_COP0R4_REGNUM:
- case SIM_ARM_MAVERIC_COP0R5_REGNUM:
- case SIM_ARM_MAVERIC_COP0R6_REGNUM:
- case SIM_ARM_MAVERIC_COP0R7_REGNUM:
- case SIM_ARM_MAVERIC_COP0R8_REGNUM:
- case SIM_ARM_MAVERIC_COP0R9_REGNUM:
- case SIM_ARM_MAVERIC_COP0R10_REGNUM:
- case SIM_ARM_MAVERIC_COP0R11_REGNUM:
- case SIM_ARM_MAVERIC_COP0R12_REGNUM:
- case SIM_ARM_MAVERIC_COP0R13_REGNUM:
- case SIM_ARM_MAVERIC_COP0R14_REGNUM:
- case SIM_ARM_MAVERIC_COP0R15_REGNUM:
- memcpy (& DSPregs [rn - SIM_ARM_MAVERIC_COP0R0_REGNUM],
- buf, sizeof (struct maverick_regs));
- return sizeof (struct maverick_regs);
-
- case SIM_ARM_MAVERIC_DSPSC_REGNUM:
- memcpy (&DSPsc, buf, sizeof DSPsc);
- return sizeof DSPsc;
-
- case SIM_ARM_IWMMXT_COP0R0_REGNUM:
- case SIM_ARM_IWMMXT_COP0R1_REGNUM:
- case SIM_ARM_IWMMXT_COP0R2_REGNUM:
- case SIM_ARM_IWMMXT_COP0R3_REGNUM:
- case SIM_ARM_IWMMXT_COP0R4_REGNUM:
- case SIM_ARM_IWMMXT_COP0R5_REGNUM:
- case SIM_ARM_IWMMXT_COP0R6_REGNUM:
- case SIM_ARM_IWMMXT_COP0R7_REGNUM:
- case SIM_ARM_IWMMXT_COP0R8_REGNUM:
- case SIM_ARM_IWMMXT_COP0R9_REGNUM:
- case SIM_ARM_IWMMXT_COP0R10_REGNUM:
- case SIM_ARM_IWMMXT_COP0R11_REGNUM:
- case SIM_ARM_IWMMXT_COP0R12_REGNUM:
- case SIM_ARM_IWMMXT_COP0R13_REGNUM:
- case SIM_ARM_IWMMXT_COP0R14_REGNUM:
- case SIM_ARM_IWMMXT_COP0R15_REGNUM:
- case SIM_ARM_IWMMXT_COP1R0_REGNUM:
- case SIM_ARM_IWMMXT_COP1R1_REGNUM:
- case SIM_ARM_IWMMXT_COP1R2_REGNUM:
- case SIM_ARM_IWMMXT_COP1R3_REGNUM:
- case SIM_ARM_IWMMXT_COP1R4_REGNUM:
- case SIM_ARM_IWMMXT_COP1R5_REGNUM:
- case SIM_ARM_IWMMXT_COP1R6_REGNUM:
- case SIM_ARM_IWMMXT_COP1R7_REGNUM:
- case SIM_ARM_IWMMXT_COP1R8_REGNUM:
- case SIM_ARM_IWMMXT_COP1R9_REGNUM:
- case SIM_ARM_IWMMXT_COP1R10_REGNUM:
- case SIM_ARM_IWMMXT_COP1R11_REGNUM:
- case SIM_ARM_IWMMXT_COP1R12_REGNUM:
- case SIM_ARM_IWMMXT_COP1R13_REGNUM:
- case SIM_ARM_IWMMXT_COP1R14_REGNUM:
- case SIM_ARM_IWMMXT_COP1R15_REGNUM:
- return Store_Iwmmxt_Register (rn - SIM_ARM_IWMMXT_COP0R0_REGNUM, buf);
-
- default:
- return 0;
- }
-
- return length;
-}
-
-static int
-arm_reg_fetch (SIM_CPU *cpu, int rn, void *buf, int length)
-{
- unsigned char *memory = buf;
- ARMword regval;
- int len = length;
-
- init ();
-
- switch ((enum sim_arm_regs) rn)
- {
- case SIM_ARM_R0_REGNUM:
- case SIM_ARM_R1_REGNUM:
- case SIM_ARM_R2_REGNUM:
- case SIM_ARM_R3_REGNUM:
- case SIM_ARM_R4_REGNUM:
- case SIM_ARM_R5_REGNUM:
- case SIM_ARM_R6_REGNUM:
- case SIM_ARM_R7_REGNUM:
- case SIM_ARM_R8_REGNUM:
- case SIM_ARM_R9_REGNUM:
- case SIM_ARM_R10_REGNUM:
- case SIM_ARM_R11_REGNUM:
- case SIM_ARM_R12_REGNUM:
- case SIM_ARM_R13_REGNUM:
- case SIM_ARM_R14_REGNUM:
- case SIM_ARM_R15_REGNUM: /* PC */
- regval = ARMul_GetReg (state, state->Mode, rn);
- break;
-
- case SIM_ARM_FP0_REGNUM:
- case SIM_ARM_FP1_REGNUM:
- case SIM_ARM_FP2_REGNUM:
- case SIM_ARM_FP3_REGNUM:
- case SIM_ARM_FP4_REGNUM:
- case SIM_ARM_FP5_REGNUM:
- case SIM_ARM_FP6_REGNUM:
- case SIM_ARM_FP7_REGNUM:
- case SIM_ARM_FPS_REGNUM:
- memset (memory, 0, length);
- return 0;
-
- case SIM_ARM_PS_REGNUM:
- regval = ARMul_GetCPSR (state);
- break;
-
- case SIM_ARM_MAVERIC_COP0R0_REGNUM:
- case SIM_ARM_MAVERIC_COP0R1_REGNUM:
- case SIM_ARM_MAVERIC_COP0R2_REGNUM:
- case SIM_ARM_MAVERIC_COP0R3_REGNUM:
- case SIM_ARM_MAVERIC_COP0R4_REGNUM:
- case SIM_ARM_MAVERIC_COP0R5_REGNUM:
- case SIM_ARM_MAVERIC_COP0R6_REGNUM:
- case SIM_ARM_MAVERIC_COP0R7_REGNUM:
- case SIM_ARM_MAVERIC_COP0R8_REGNUM:
- case SIM_ARM_MAVERIC_COP0R9_REGNUM:
- case SIM_ARM_MAVERIC_COP0R10_REGNUM:
- case SIM_ARM_MAVERIC_COP0R11_REGNUM:
- case SIM_ARM_MAVERIC_COP0R12_REGNUM:
- case SIM_ARM_MAVERIC_COP0R13_REGNUM:
- case SIM_ARM_MAVERIC_COP0R14_REGNUM:
- case SIM_ARM_MAVERIC_COP0R15_REGNUM:
- memcpy (memory, & DSPregs [rn - SIM_ARM_MAVERIC_COP0R0_REGNUM],
- sizeof (struct maverick_regs));
- return sizeof (struct maverick_regs);
-
- case SIM_ARM_MAVERIC_DSPSC_REGNUM:
- memcpy (memory, & DSPsc, sizeof DSPsc);
- return sizeof DSPsc;
-
- case SIM_ARM_IWMMXT_COP0R0_REGNUM:
- case SIM_ARM_IWMMXT_COP0R1_REGNUM:
- case SIM_ARM_IWMMXT_COP0R2_REGNUM:
- case SIM_ARM_IWMMXT_COP0R3_REGNUM:
- case SIM_ARM_IWMMXT_COP0R4_REGNUM:
- case SIM_ARM_IWMMXT_COP0R5_REGNUM:
- case SIM_ARM_IWMMXT_COP0R6_REGNUM:
- case SIM_ARM_IWMMXT_COP0R7_REGNUM:
- case SIM_ARM_IWMMXT_COP0R8_REGNUM:
- case SIM_ARM_IWMMXT_COP0R9_REGNUM:
- case SIM_ARM_IWMMXT_COP0R10_REGNUM:
- case SIM_ARM_IWMMXT_COP0R11_REGNUM:
- case SIM_ARM_IWMMXT_COP0R12_REGNUM:
- case SIM_ARM_IWMMXT_COP0R13_REGNUM:
- case SIM_ARM_IWMMXT_COP0R14_REGNUM:
- case SIM_ARM_IWMMXT_COP0R15_REGNUM:
- case SIM_ARM_IWMMXT_COP1R0_REGNUM:
- case SIM_ARM_IWMMXT_COP1R1_REGNUM:
- case SIM_ARM_IWMMXT_COP1R2_REGNUM:
- case SIM_ARM_IWMMXT_COP1R3_REGNUM:
- case SIM_ARM_IWMMXT_COP1R4_REGNUM:
- case SIM_ARM_IWMMXT_COP1R5_REGNUM:
- case SIM_ARM_IWMMXT_COP1R6_REGNUM:
- case SIM_ARM_IWMMXT_COP1R7_REGNUM:
- case SIM_ARM_IWMMXT_COP1R8_REGNUM:
- case SIM_ARM_IWMMXT_COP1R9_REGNUM:
- case SIM_ARM_IWMMXT_COP1R10_REGNUM:
- case SIM_ARM_IWMMXT_COP1R11_REGNUM:
- case SIM_ARM_IWMMXT_COP1R12_REGNUM:
- case SIM_ARM_IWMMXT_COP1R13_REGNUM:
- case SIM_ARM_IWMMXT_COP1R14_REGNUM:
- case SIM_ARM_IWMMXT_COP1R15_REGNUM:
- return Fetch_Iwmmxt_Register (rn - SIM_ARM_IWMMXT_COP0R0_REGNUM, memory);
-
- default:
- return 0;
- }
-
- while (len)
- {
- tomem (state, memory, regval);
-
- len -= 4;
- memory += 4;
- regval = 0;
- }
-
- return length;
-}
-
-typedef struct
-{
- char * swi_option;
- unsigned int swi_mask;
-} swi_options;
-
-#define SWI_SWITCH "--swi-support"
-
-static swi_options options[] =
- {
- { "none", 0 },
- { "demon", SWI_MASK_DEMON },
- { "angel", SWI_MASK_ANGEL },
- { "redboot", SWI_MASK_REDBOOT },
- { "all", -1 },
- { "NONE", 0 },
- { "DEMON", SWI_MASK_DEMON },
- { "ANGEL", SWI_MASK_ANGEL },
- { "REDBOOT", SWI_MASK_REDBOOT },
- { "ALL", -1 }
- };
-
-
-static int
-sim_target_parse_command_line (int argc, char ** argv)
-{
- int i;
-
- for (i = 1; i < argc; i++)
- {
- char * ptr = argv[i];
- int arg;
-
- if ((ptr == NULL) || (* ptr != '-'))
- break;
-
- if (strcmp (ptr, "-t") == 0)
- {
- trace = 1;
- continue;
- }
-
- if (strcmp (ptr, "-z") == 0)
- {
- /* Remove this option from the argv array. */
- for (arg = i; arg < argc; arg ++)
- {
- free (argv[arg]);
- argv[arg] = argv[arg + 1];
- }
- argc --;
- i --;
- trace_funcs = 1;
- continue;
- }
-
- if (strcmp (ptr, "-d") == 0)
- {
- /* Remove this option from the argv array. */
- for (arg = i; arg < argc; arg ++)
- {
- free (argv[arg]);
- argv[arg] = argv[arg + 1];
- }
- argc --;
- i --;
- disas = 1;
- continue;
- }
-
- if (strncmp (ptr, SWI_SWITCH, sizeof SWI_SWITCH - 1) != 0)
- continue;
-
- if (ptr[sizeof SWI_SWITCH - 1] == 0)
- {
- /* Remove this option from the argv array. */
- for (arg = i; arg < argc; arg ++)
- {
- free (argv[arg]);
- argv[arg] = argv[arg + 1];
- }
- argc --;
-
- ptr = argv[i];
- }
- else
- ptr += sizeof SWI_SWITCH;
-
- swi_mask = 0;
-
- while (* ptr)
- {
- int o;
-
- for (o = ARRAY_SIZE (options); o--;)
- if (strncmp (ptr, options[o].swi_option,
- strlen (options[o].swi_option)) == 0)
- {
- swi_mask |= options[o].swi_mask;
- ptr += strlen (options[o].swi_option);
-
- if (* ptr == ',')
- ++ ptr;
-
- break;
- }
-
- if (o < 0)
- break;
- }
-
- if (* ptr != 0)
- fprintf (stderr, "Ignoring swi options: %s\n", ptr);
-
- /* Remove this option from the argv array. */
- for (arg = i; arg < argc; arg ++)
- {
- free (argv[arg]);
- argv[arg] = argv[arg + 1];
- }
- argc --;
- i --;
- }
- return argc;
-}
-
-static void
-sim_target_parse_arg_array (char ** argv)
-{
- sim_target_parse_command_line (countargv (argv), argv);
-}
-
-static sim_cia
-arm_pc_get (sim_cpu *cpu)
-{
- return PC;
-}
-
-static void
-arm_pc_set (sim_cpu *cpu, sim_cia pc)
-{
- ARMul_SetPC (state, pc);
-}
-
-static void
-free_state (SIM_DESC sd)
-{
- if (STATE_MODULES (sd) != NULL)
- sim_module_uninstall (sd);
- sim_cpu_free_all (sd);
- sim_state_free (sd);
-}
-
-SIM_DESC
-sim_open (SIM_OPEN_KIND kind,
- host_callback *cb,
- struct bfd *abfd,
- char * const *argv)
-{
- int i;
- char **argv_copy;
- SIM_DESC sd = sim_state_alloc (kind, cb);
- SIM_ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER);
-
- /* Set default options before parsing user options. */
- current_alignment = STRICT_ALIGNMENT;
-
- /* The cpu data is kept in a separately allocated chunk of memory. */
- if (sim_cpu_alloc_all (sd, 0) != SIM_RC_OK)
- {
- free_state (sd);
- return 0;
- }
-
- if (sim_pre_argv_init (sd, argv[0]) != SIM_RC_OK)
- {
- free_state (sd);
- return 0;
- }
-
- /* The parser will print an error message for us, so we silently return. */
- if (sim_parse_args (sd, argv) != SIM_RC_OK)
- {
- free_state (sd);
- return 0;
- }
-
- /* Check for/establish the a reference program image. */
- if (sim_analyze_program (sd, STATE_PROG_FILE (sd), abfd) != SIM_RC_OK)
- {
- free_state (sd);
- return 0;
- }
-
- /* Configure/verify the target byte order and other runtime
- configuration options. */
- if (sim_config (sd) != SIM_RC_OK)
- {
- sim_module_uninstall (sd);
- return 0;
- }
-
- if (sim_post_argv_init (sd) != SIM_RC_OK)
- {
- /* Uninstall the modules to avoid memory leaks,
- file descriptor leaks, etc. */
- sim_module_uninstall (sd);
- return 0;
- }
-
- /* CPU specific initialization. */
- for (i = 0; i < MAX_NR_PROCESSORS; ++i)
- {
- SIM_CPU *cpu = STATE_CPU (sd, i);
-
- CPU_REG_FETCH (cpu) = arm_reg_fetch;
- CPU_REG_STORE (cpu) = arm_reg_store;
- CPU_PC_FETCH (cpu) = arm_pc_get;
- CPU_PC_STORE (cpu) = arm_pc_set;
- }
-
- sim_callback = cb;
-
- /* Copy over the argv contents so we can modify them. */
- argv_copy = dupargv (argv);
-
- sim_target_parse_arg_array (argv_copy);
-
- if (argv_copy[1] != NULL)
- {
- /* Scan for memory-size switches. */
- for (i = 0; (argv_copy[i] != NULL) && (argv_copy[i][0] != 0); i++)
- if (argv_copy[i][0] == '-' && argv_copy[i][1] == 'm')
- {
- if (argv_copy[i][2] != '\0')
- mem_size = atoi (&argv_copy[i][2]);
- else if (argv_copy[i + 1] != NULL)
- {
- mem_size = atoi (argv_copy[i + 1]);
- i++;
- }
- else
- {
- sim_callback->printf_filtered (sim_callback,
- "Missing argument to -m option\n");
- return NULL;
- }
- }
- }
-
- freeargv (argv_copy);
-
- return sd;
-}
-
-void
-sim_stop_reason (SIM_DESC sd ATTRIBUTE_UNUSED,
- enum sim_stop *reason,
- int *sigrc)
-{
- if (stop_simulator)
- {
- *reason = sim_stopped;
- *sigrc = GDB_SIGNAL_INT;
- }
- else if (state->EndCondition == 0)
- {
- *reason = sim_exited;
- *sigrc = state->Reg[0] & 255;
- }
- else
- {
- *reason = sim_stopped;
- if (state->EndCondition == RDIError_BreakpointReached)
- *sigrc = GDB_SIGNAL_TRAP;
- else if ( state->EndCondition == RDIError_DataAbort
- || state->EndCondition == RDIError_AddressException)
- *sigrc = GDB_SIGNAL_BUS;
- else
- *sigrc = 0;
- }
-}
diff --git a/sim/avr/avr-sim.h b/sim/avr/avr-sim.h
index 809b04f..baa5d99 100644
--- a/sim/avr/avr-sim.h
+++ b/sim/avr/avr-sim.h
@@ -1,5 +1,5 @@
/* AVR Simulator definition.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/avr/interp.c b/sim/avr/interp.c
index 1307a3c..fb5dafd 100644
--- a/sim/avr/interp.c
+++ b/sim/avr/interp.c
@@ -1,5 +1,5 @@
/* Simulator for Atmel's AVR core.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
Written by Tristan Gingold, AdaCore.
This file is part of GDB, the GNU debugger.
diff --git a/sim/avr/local.mk b/sim/avr/local.mk
index 327655b..bc142fd 100644
--- a/sim/avr/local.mk
+++ b/sim/avr/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 2009-2024 Free Software Foundation, Inc.
+## Copyright (C) 2009-2025 Free Software Foundation, Inc.
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
diff --git a/sim/avr/sim-main.h b/sim/avr/sim-main.h
index 34ac9c8..713de39 100644
--- a/sim/avr/sim-main.h
+++ b/sim/avr/sim-main.h
@@ -1,5 +1,5 @@
/* Moxie Simulator definition.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB, the GNU debugger.
diff --git a/sim/bfin/arch.h b/sim/bfin/arch.h
index 956d3c5..9893640 100644
--- a/sim/bfin/arch.h
+++ b/sim/bfin/arch.h
@@ -1,6 +1,6 @@
/* Simulator for Analog Devices Blackfin processors.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/bfin-sim.c b/sim/bfin/bfin-sim.c
index e4458c2..e921b96 100644
--- a/sim/bfin/bfin-sim.c
+++ b/sim/bfin/bfin-sim.c
@@ -1,6 +1,6 @@
/* Simulator for Analog Devices Blackfin processors.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/bfin-sim.h b/sim/bfin/bfin-sim.h
index 0872d79..795f942 100644
--- a/sim/bfin/bfin-sim.h
+++ b/sim/bfin/bfin-sim.h
@@ -1,6 +1,6 @@
/* Simulator for Analog Devices Blackfin processors.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/devices.c b/sim/bfin/devices.c
index 96c18de..2fc4c58 100644
--- a/sim/bfin/devices.c
+++ b/sim/bfin/devices.c
@@ -1,6 +1,6 @@
/* Blackfin device support.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/devices.h b/sim/bfin/devices.h
index 1bc9222..8471ed7 100644
--- a/sim/bfin/devices.h
+++ b/sim/bfin/devices.h
@@ -1,6 +1,6 @@
/* Common Blackfin device stuff.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_cec.c b/sim/bfin/dv-bfin_cec.c
index c0dffeb..3a81025 100644
--- a/sim/bfin/dv-bfin_cec.c
+++ b/sim/bfin/dv-bfin_cec.c
@@ -1,6 +1,6 @@
/* Blackfin Core Event Controller (CEC) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_cec.h b/sim/bfin/dv-bfin_cec.h
index 2b47476..bb647e7 100644
--- a/sim/bfin/dv-bfin_cec.h
+++ b/sim/bfin/dv-bfin_cec.h
@@ -1,6 +1,6 @@
/* Blackfin Core Event Controller (CEC) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_ctimer.c b/sim/bfin/dv-bfin_ctimer.c
index 6423574..a75327c 100644
--- a/sim/bfin/dv-bfin_ctimer.c
+++ b/sim/bfin/dv-bfin_ctimer.c
@@ -1,6 +1,6 @@
/* Blackfin Core Timer model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_ctimer.h b/sim/bfin/dv-bfin_ctimer.h
index 15bcdbf..fb12bf7 100644
--- a/sim/bfin/dv-bfin_ctimer.h
+++ b/sim/bfin/dv-bfin_ctimer.h
@@ -1,6 +1,6 @@
/* Blackfin Core Timer model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_dma.c b/sim/bfin/dv-bfin_dma.c
index 2978ae7..75ff11a 100644
--- a/sim/bfin/dv-bfin_dma.c
+++ b/sim/bfin/dv-bfin_dma.c
@@ -1,6 +1,6 @@
/* Blackfin Direct Memory Access (DMA) Channel model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_dma.h b/sim/bfin/dv-bfin_dma.h
index 8e724b3..952062d 100644
--- a/sim/bfin/dv-bfin_dma.h
+++ b/sim/bfin/dv-bfin_dma.h
@@ -1,6 +1,6 @@
/* Blackfin Direct Memory Access (DMA) Channel model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_dmac.c b/sim/bfin/dv-bfin_dmac.c
index 0bc5c1d..1f50660 100644
--- a/sim/bfin/dv-bfin_dmac.c
+++ b/sim/bfin/dv-bfin_dmac.c
@@ -1,6 +1,6 @@
/* Blackfin Direct Memory Access (DMA) Controller model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_dmac.h b/sim/bfin/dv-bfin_dmac.h
index 042babf..4ccd4fb 100644
--- a/sim/bfin/dv-bfin_dmac.h
+++ b/sim/bfin/dv-bfin_dmac.h
@@ -1,6 +1,6 @@
/* Blackfin Direct Memory Access (DMA) Controller model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_ebiu_amc.c b/sim/bfin/dv-bfin_ebiu_amc.c
index 4692d19..7d662e7 100644
--- a/sim/bfin/dv-bfin_ebiu_amc.c
+++ b/sim/bfin/dv-bfin_ebiu_amc.c
@@ -1,7 +1,7 @@
/* Blackfin External Bus Interface Unit (EBIU) Asynchronous Memory Controller
(AMC) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_ebiu_amc.h b/sim/bfin/dv-bfin_ebiu_amc.h
index 1757f95..7b8f69e 100644
--- a/sim/bfin/dv-bfin_ebiu_amc.h
+++ b/sim/bfin/dv-bfin_ebiu_amc.h
@@ -1,7 +1,7 @@
/* Blackfin External Bus Interface Unit (EBIU) Asynchronous Memory Controller
(AMC) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_ebiu_ddrc.c b/sim/bfin/dv-bfin_ebiu_ddrc.c
index 4a1868e..294e64e 100644
--- a/sim/bfin/dv-bfin_ebiu_ddrc.c
+++ b/sim/bfin/dv-bfin_ebiu_ddrc.c
@@ -1,6 +1,6 @@
/* Blackfin External Bus Interface Unit (EBIU) DDR Controller (DDRC) Model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_ebiu_ddrc.h b/sim/bfin/dv-bfin_ebiu_ddrc.h
index 4cc6ebd..fd2e1c7 100644
--- a/sim/bfin/dv-bfin_ebiu_ddrc.h
+++ b/sim/bfin/dv-bfin_ebiu_ddrc.h
@@ -1,6 +1,6 @@
/* Blackfin External Bus Interface Unit (EBIU) DDR Controller (DDRC) Model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_ebiu_sdc.c b/sim/bfin/dv-bfin_ebiu_sdc.c
index c5d7b2b..eb7f07b 100644
--- a/sim/bfin/dv-bfin_ebiu_sdc.c
+++ b/sim/bfin/dv-bfin_ebiu_sdc.c
@@ -1,6 +1,6 @@
/* Blackfin External Bus Interface Unit (EBIU) SDRAM Controller (SDC) Model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_ebiu_sdc.h b/sim/bfin/dv-bfin_ebiu_sdc.h
index 358ef34..e1afee7 100644
--- a/sim/bfin/dv-bfin_ebiu_sdc.h
+++ b/sim/bfin/dv-bfin_ebiu_sdc.h
@@ -1,6 +1,6 @@
/* Blackfin External Bus Interface Unit (EBIU) SDRAM Controller (SDC) Model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_emac.c b/sim/bfin/dv-bfin_emac.c
index 178b2ee..106501c 100644
--- a/sim/bfin/dv-bfin_emac.c
+++ b/sim/bfin/dv-bfin_emac.c
@@ -1,6 +1,6 @@
/* Blackfin Ethernet Media Access Controller (EMAC) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_emac.h b/sim/bfin/dv-bfin_emac.h
index 72ab3dc..486756e 100644
--- a/sim/bfin/dv-bfin_emac.h
+++ b/sim/bfin/dv-bfin_emac.h
@@ -1,6 +1,6 @@
/* Blackfin Ethernet Media Access Controller (EMAC) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_eppi.c b/sim/bfin/dv-bfin_eppi.c
index 61d7004..9f52d24 100644
--- a/sim/bfin/dv-bfin_eppi.c
+++ b/sim/bfin/dv-bfin_eppi.c
@@ -1,7 +1,7 @@
/* Blackfin Enhanced Parallel Port Interface (EPPI) model
For "new style" PPIs on BF54x/etc... parts.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_eppi.h b/sim/bfin/dv-bfin_eppi.h
index f2d5981..925cd04 100644
--- a/sim/bfin/dv-bfin_eppi.h
+++ b/sim/bfin/dv-bfin_eppi.h
@@ -1,7 +1,7 @@
/* Blackfin Enhanced Parallel Port Interface (EPPI) model
For "new style" PPIs on BF54x/etc... parts.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_evt.c b/sim/bfin/dv-bfin_evt.c
index 093a32b..78bf356 100644
--- a/sim/bfin/dv-bfin_evt.c
+++ b/sim/bfin/dv-bfin_evt.c
@@ -1,6 +1,6 @@
/* Blackfin Event Vector Table (EVT) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_evt.h b/sim/bfin/dv-bfin_evt.h
index 84acbf7..5367398 100644
--- a/sim/bfin/dv-bfin_evt.h
+++ b/sim/bfin/dv-bfin_evt.h
@@ -1,6 +1,6 @@
/* Blackfin Event Vector Table (EVT) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_gpio.c b/sim/bfin/dv-bfin_gpio.c
index b7bf46c..95563b4 100644
--- a/sim/bfin/dv-bfin_gpio.c
+++ b/sim/bfin/dv-bfin_gpio.c
@@ -1,6 +1,6 @@
/* Blackfin General Purpose Ports (GPIO) model
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_gpio.h b/sim/bfin/dv-bfin_gpio.h
index 47afff0..0b143b3 100644
--- a/sim/bfin/dv-bfin_gpio.h
+++ b/sim/bfin/dv-bfin_gpio.h
@@ -1,6 +1,6 @@
/* Blackfin General Purpose Ports (GPIO) model
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_gpio2.c b/sim/bfin/dv-bfin_gpio2.c
index 46f22f9..ad2a7d5 100644
--- a/sim/bfin/dv-bfin_gpio2.c
+++ b/sim/bfin/dv-bfin_gpio2.c
@@ -1,7 +1,7 @@
/* Blackfin General Purpose Ports (GPIO) model
For "new style" GPIOs on BF54x parts.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc. and Mike Frysinger.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_gpio2.h b/sim/bfin/dv-bfin_gpio2.h
index f4b1fbf..24b5e8d 100644
--- a/sim/bfin/dv-bfin_gpio2.h
+++ b/sim/bfin/dv-bfin_gpio2.h
@@ -1,7 +1,7 @@
/* Blackfin General Purpose Ports (GPIO) model
For "new style" GPIOs on BF54x parts.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc. and Mike Frysinger.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_gptimer.c b/sim/bfin/dv-bfin_gptimer.c
index 9258c03..8e034e8 100644
--- a/sim/bfin/dv-bfin_gptimer.c
+++ b/sim/bfin/dv-bfin_gptimer.c
@@ -1,6 +1,6 @@
/* Blackfin General Purpose Timers (GPtimer) model
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_gptimer.h b/sim/bfin/dv-bfin_gptimer.h
index a3039f1..bbfe7ba 100644
--- a/sim/bfin/dv-bfin_gptimer.h
+++ b/sim/bfin/dv-bfin_gptimer.h
@@ -1,6 +1,6 @@
/* Blackfin General Purpose Timers (GPtimer) model
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_jtag.c b/sim/bfin/dv-bfin_jtag.c
index 14f0955..fde3a7d 100644
--- a/sim/bfin/dv-bfin_jtag.c
+++ b/sim/bfin/dv-bfin_jtag.c
@@ -1,6 +1,6 @@
/* Blackfin JTAG model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_jtag.h b/sim/bfin/dv-bfin_jtag.h
index aa19eaa..ed28710 100644
--- a/sim/bfin/dv-bfin_jtag.h
+++ b/sim/bfin/dv-bfin_jtag.h
@@ -1,6 +1,6 @@
/* Blackfin JTAG model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_mmu.c b/sim/bfin/dv-bfin_mmu.c
index 98b3f3a..4465af3 100644
--- a/sim/bfin/dv-bfin_mmu.c
+++ b/sim/bfin/dv-bfin_mmu.c
@@ -1,6 +1,6 @@
/* Blackfin Memory Management Unit (MMU) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_mmu.h b/sim/bfin/dv-bfin_mmu.h
index 080e482..bf8206c 100644
--- a/sim/bfin/dv-bfin_mmu.h
+++ b/sim/bfin/dv-bfin_mmu.h
@@ -1,6 +1,6 @@
/* Blackfin Memory Management Unit (MMU) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_nfc.c b/sim/bfin/dv-bfin_nfc.c
index ab1d21e..1311698 100644
--- a/sim/bfin/dv-bfin_nfc.c
+++ b/sim/bfin/dv-bfin_nfc.c
@@ -1,6 +1,6 @@
/* Blackfin NAND Flash Memory Controller (NFC) model
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_nfc.h b/sim/bfin/dv-bfin_nfc.h
index 89eabe5..b9861f6 100644
--- a/sim/bfin/dv-bfin_nfc.h
+++ b/sim/bfin/dv-bfin_nfc.h
@@ -1,6 +1,6 @@
/* Blackfin NAND Flash Memory Controller (NFC) model
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_otp.c b/sim/bfin/dv-bfin_otp.c
index eb59975..841afdb 100644
--- a/sim/bfin/dv-bfin_otp.c
+++ b/sim/bfin/dv-bfin_otp.c
@@ -1,6 +1,6 @@
/* Blackfin One-Time Programmable Memory (OTP) model
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_otp.h b/sim/bfin/dv-bfin_otp.h
index 19b96dc..faa24b7 100644
--- a/sim/bfin/dv-bfin_otp.h
+++ b/sim/bfin/dv-bfin_otp.h
@@ -1,6 +1,6 @@
/* Blackfin One-Time Programmable Memory (OTP) model
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_pfmon.c b/sim/bfin/dv-bfin_pfmon.c
index 1c72888..11bebf4 100644
--- a/sim/bfin/dv-bfin_pfmon.c
+++ b/sim/bfin/dv-bfin_pfmon.c
@@ -1,6 +1,6 @@
/* Blackfin Performance Monitor model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_pfmon.h b/sim/bfin/dv-bfin_pfmon.h
index ae8f331..5ada8ec 100644
--- a/sim/bfin/dv-bfin_pfmon.h
+++ b/sim/bfin/dv-bfin_pfmon.h
@@ -1,6 +1,6 @@
/* Blackfin Performance Monitor model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_pint.c b/sim/bfin/dv-bfin_pint.c
index 8b3f475..72a736b 100644
--- a/sim/bfin/dv-bfin_pint.c
+++ b/sim/bfin/dv-bfin_pint.c
@@ -1,6 +1,6 @@
/* Blackfin Pin Interrupt (PINT) model
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc. and Mike Frysinger.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_pint.h b/sim/bfin/dv-bfin_pint.h
index 056469e..e7b2d4e 100644
--- a/sim/bfin/dv-bfin_pint.h
+++ b/sim/bfin/dv-bfin_pint.h
@@ -1,6 +1,6 @@
/* Blackfin Pin Interrupt (PINT) model
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc. and Mike Frysinger.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_pll.c b/sim/bfin/dv-bfin_pll.c
index 48bc640..d9b2473 100644
--- a/sim/bfin/dv-bfin_pll.c
+++ b/sim/bfin/dv-bfin_pll.c
@@ -1,6 +1,6 @@
/* Blackfin Phase Lock Loop (PLL) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_pll.h b/sim/bfin/dv-bfin_pll.h
index 281f7f6..1cd71f7 100644
--- a/sim/bfin/dv-bfin_pll.h
+++ b/sim/bfin/dv-bfin_pll.h
@@ -1,6 +1,6 @@
/* Blackfin Phase Lock Loop (PLL) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_ppi.c b/sim/bfin/dv-bfin_ppi.c
index 1ff17d5..1cd6890 100644
--- a/sim/bfin/dv-bfin_ppi.c
+++ b/sim/bfin/dv-bfin_ppi.c
@@ -1,7 +1,7 @@
/* Blackfin Parallel Port Interface (PPI) model
For "old style" PPIs on BF53x/etc... parts.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_ppi.h b/sim/bfin/dv-bfin_ppi.h
index e293862..5944803 100644
--- a/sim/bfin/dv-bfin_ppi.h
+++ b/sim/bfin/dv-bfin_ppi.h
@@ -1,7 +1,7 @@
/* Blackfin Parallel Port Interface (PPI) model
For "old style" PPIs on BF53x/etc... parts.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_rtc.c b/sim/bfin/dv-bfin_rtc.c
index 652b4db..0e9c960 100644
--- a/sim/bfin/dv-bfin_rtc.c
+++ b/sim/bfin/dv-bfin_rtc.c
@@ -1,6 +1,6 @@
/* Blackfin Real Time Clock (RTC) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_rtc.h b/sim/bfin/dv-bfin_rtc.h
index 019ce5e..5fcac2e 100644
--- a/sim/bfin/dv-bfin_rtc.h
+++ b/sim/bfin/dv-bfin_rtc.h
@@ -1,6 +1,6 @@
/* Blackfin Real Time Clock (RTC) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_sic.c b/sim/bfin/dv-bfin_sic.c
index be5fc47..accd3a6 100644
--- a/sim/bfin/dv-bfin_sic.c
+++ b/sim/bfin/dv-bfin_sic.c
@@ -1,6 +1,6 @@
/* Blackfin System Interrupt Controller (SIC) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_sic.h b/sim/bfin/dv-bfin_sic.h
index a544325..60aed6a 100644
--- a/sim/bfin/dv-bfin_sic.h
+++ b/sim/bfin/dv-bfin_sic.h
@@ -1,6 +1,6 @@
/* Blackfin System Interrupt Controller (SIC) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_spi.c b/sim/bfin/dv-bfin_spi.c
index 034271d..bc6cd9f 100644
--- a/sim/bfin/dv-bfin_spi.c
+++ b/sim/bfin/dv-bfin_spi.c
@@ -1,6 +1,6 @@
/* Blackfin Serial Peripheral Interface (SPI) model
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_spi.h b/sim/bfin/dv-bfin_spi.h
index fccd548..6fa28a3 100644
--- a/sim/bfin/dv-bfin_spi.h
+++ b/sim/bfin/dv-bfin_spi.h
@@ -1,6 +1,6 @@
/* Blackfin Serial Peripheral Interface (SPI) model
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_trace.c b/sim/bfin/dv-bfin_trace.c
index 4d308ec..1b3684c 100644
--- a/sim/bfin/dv-bfin_trace.c
+++ b/sim/bfin/dv-bfin_trace.c
@@ -1,6 +1,6 @@
/* Blackfin Trace (TBUF) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_trace.h b/sim/bfin/dv-bfin_trace.h
index b228bf4..655f8dd 100644
--- a/sim/bfin/dv-bfin_trace.h
+++ b/sim/bfin/dv-bfin_trace.h
@@ -1,6 +1,6 @@
/* Blackfin Trace (TBUF) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_twi.c b/sim/bfin/dv-bfin_twi.c
index 8a9e286..ead7d6a 100644
--- a/sim/bfin/dv-bfin_twi.c
+++ b/sim/bfin/dv-bfin_twi.c
@@ -1,6 +1,6 @@
/* Blackfin Two Wire Interface (TWI) model
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_twi.h b/sim/bfin/dv-bfin_twi.h
index ab2ec72..887770e 100644
--- a/sim/bfin/dv-bfin_twi.h
+++ b/sim/bfin/dv-bfin_twi.h
@@ -1,6 +1,6 @@
/* Blackfin Two Wire Interface (TWI) model
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_uart.c b/sim/bfin/dv-bfin_uart.c
index 24b7faa..f75623b 100644
--- a/sim/bfin/dv-bfin_uart.c
+++ b/sim/bfin/dv-bfin_uart.c
@@ -1,7 +1,7 @@
/* Blackfin Universal Asynchronous Receiver/Transmitter (UART) model.
For "old style" UARTs on BF53x/etc... parts.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_uart.h b/sim/bfin/dv-bfin_uart.h
index e8706d6..f8fd656 100644
--- a/sim/bfin/dv-bfin_uart.h
+++ b/sim/bfin/dv-bfin_uart.h
@@ -1,7 +1,7 @@
/* Blackfin Universal Asynchronous Receiver/Transmitter (UART) model.
For "old style" UARTs on BF53x/etc... parts.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_uart2.c b/sim/bfin/dv-bfin_uart2.c
index 14055ce..c859137 100644
--- a/sim/bfin/dv-bfin_uart2.c
+++ b/sim/bfin/dv-bfin_uart2.c
@@ -1,7 +1,7 @@
/* Blackfin Universal Asynchronous Receiver/Transmitter (UART) model.
For "new style" UARTs on BF50x/BF54x parts.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_uart2.h b/sim/bfin/dv-bfin_uart2.h
index 1fc6cc1..c3b24e4 100644
--- a/sim/bfin/dv-bfin_uart2.h
+++ b/sim/bfin/dv-bfin_uart2.h
@@ -1,7 +1,7 @@
/* Blackfin Universal Asynchronous Receiver/Transmitter (UART) model.
For "new style" UARTs on BF50x/BF54x parts.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_wdog.c b/sim/bfin/dv-bfin_wdog.c
index 8a84daf..7534030 100644
--- a/sim/bfin/dv-bfin_wdog.c
+++ b/sim/bfin/dv-bfin_wdog.c
@@ -1,6 +1,6 @@
/* Blackfin Watchdog (WDOG) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_wdog.h b/sim/bfin/dv-bfin_wdog.h
index 8de1afe..a57dee8 100644
--- a/sim/bfin/dv-bfin_wdog.h
+++ b/sim/bfin/dv-bfin_wdog.h
@@ -1,6 +1,6 @@
/* Blackfin Watchdog (WDOG) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_wp.c b/sim/bfin/dv-bfin_wp.c
index b9f74a1..19e4fda 100644
--- a/sim/bfin/dv-bfin_wp.c
+++ b/sim/bfin/dv-bfin_wp.c
@@ -1,6 +1,6 @@
/* Blackfin Watchpoint (WP) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-bfin_wp.h b/sim/bfin/dv-bfin_wp.h
index b7a940c..1b09757 100644
--- a/sim/bfin/dv-bfin_wp.h
+++ b/sim/bfin/dv-bfin_wp.h
@@ -1,6 +1,6 @@
/* Blackfin Watchpoint (WP) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/dv-eth_phy.c b/sim/bfin/dv-eth_phy.c
index 2ea7f62..ebd1063 100644
--- a/sim/bfin/dv-eth_phy.c
+++ b/sim/bfin/dv-eth_phy.c
@@ -1,6 +1,6 @@
/* Ethernet Physical Receiver model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/gui.c b/sim/bfin/gui.c
index 5a9384a..5e2a35e 100644
--- a/sim/bfin/gui.c
+++ b/sim/bfin/gui.c
@@ -1,6 +1,6 @@
/* Blackfin GUI (SDL) helper code
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/gui.h b/sim/bfin/gui.h
index b352271..d2bd316 100644
--- a/sim/bfin/gui.h
+++ b/sim/bfin/gui.h
@@ -1,6 +1,6 @@
/* Blackfin GUI (SDL) helper code
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/insn_list.def b/sim/bfin/insn_list.def
index 5c1f2af..1f5dfa8 100644
--- a/sim/bfin/insn_list.def
+++ b/sim/bfin/insn_list.def
@@ -1,6 +1,6 @@
/* Blackfin instruction classes list
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/interp.c b/sim/bfin/interp.c
index 4312adc..d5eb92b 100644
--- a/sim/bfin/interp.c
+++ b/sim/bfin/interp.c
@@ -1,6 +1,6 @@
/* Simulator for Analog Devices Blackfin processors.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/linux-fixed-code.s b/sim/bfin/linux-fixed-code.s
index 535654b..ac83360 100644
--- a/sim/bfin/linux-fixed-code.s
+++ b/sim/bfin/linux-fixed-code.s
@@ -1,6 +1,6 @@
/* Linux fixed code userspace ABI
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/local.mk b/sim/bfin/local.mk
index 64af3a7..ade479c1 100644
--- a/sim/bfin/local.mk
+++ b/sim/bfin/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 2005-2024 Free Software Foundation, Inc.
+## Copyright (C) 2005-2025 Free Software Foundation, Inc.
## Written by Analog Devices, Inc.
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/bfin/machs.c b/sim/bfin/machs.c
index 90bae42..3cf7d8b 100644
--- a/sim/bfin/machs.c
+++ b/sim/bfin/machs.c
@@ -1,6 +1,6 @@
/* Simulator for Analog Devices Blackfin processors.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc. and Mike Frysinger.
This file is part of simulators.
diff --git a/sim/bfin/machs.h b/sim/bfin/machs.h
index c44d807..8739679 100644
--- a/sim/bfin/machs.h
+++ b/sim/bfin/machs.h
@@ -1,6 +1,6 @@
/* Simulator for Analog Devices Blackfin processors.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/proc_list.def b/sim/bfin/proc_list.def
index b83ed31..632007d 100644
--- a/sim/bfin/proc_list.def
+++ b/sim/bfin/proc_list.def
@@ -1,6 +1,6 @@
/* Blackfin processor list
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bfin/sim-main.h b/sim/bfin/sim-main.h
index c57c57e..3f5c01d 100644
--- a/sim/bfin/sim-main.h
+++ b/sim/bfin/sim-main.h
@@ -1,6 +1,6 @@
/* Simulator for Analog Devices Blackfin processors.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/bpf/bpf-sim.c b/sim/bpf/bpf-sim.c
index c1f1038..3e0c446 100644
--- a/sim/bpf/bpf-sim.c
+++ b/sim/bpf/bpf-sim.c
@@ -1,5 +1,5 @@
/* Simulator for BPF.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
Contributed by Oracle Inc.
diff --git a/sim/bpf/bpf-sim.h b/sim/bpf/bpf-sim.h
index 15a78f5..c87d1d6 100644
--- a/sim/bpf/bpf-sim.h
+++ b/sim/bpf/bpf-sim.h
@@ -1,5 +1,5 @@
/* BPF simulator support code header
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
Contributed by Oracle Inc.
diff --git a/sim/bpf/local.mk b/sim/bpf/local.mk
index fe3b621..de9dee5 100644
--- a/sim/bpf/local.mk
+++ b/sim/bpf/local.mk
@@ -2,7 +2,7 @@
##
## Contributed by Oracle Inc.
##
-## Copyright (C) 2023-2024 Free Software Foundation, Inc.
+## Copyright (C) 2023-2025 Free Software Foundation, Inc.
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
diff --git a/sim/bpf/sim-main.h b/sim/bpf/sim-main.h
index 26709cb..462d131 100644
--- a/sim/bpf/sim-main.h
+++ b/sim/bpf/sim-main.h
@@ -1,5 +1,5 @@
/* eBPF simulator main header
- Copyright (C) 2023-2024 Free Software Foundation, Inc.
+ Copyright (C) 2023-2025 Free Software Foundation, Inc.
Contributed by Oracle Inc.
diff --git a/sim/bpf/traps.c b/sim/bpf/traps.c
index 1edcc78..ef1938f 100644
--- a/sim/bpf/traps.c
+++ b/sim/bpf/traps.c
@@ -1,5 +1,5 @@
/* Trap handlers for eBPF.
- Copyright (C) 2020-2024 Free Software Foundation, Inc.
+ Copyright (C) 2020-2025 Free Software Foundation, Inc.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/callback.c b/sim/common/callback.c
index 36e8ce0..54b9476 100644
--- a/sim/common/callback.c
+++ b/sim/common/callback.c
@@ -1,5 +1,5 @@
/* Remote target callback routines.
- Copyright 1995-2024 Free Software Foundation, Inc.
+ Copyright 1995-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of GDB.
diff --git a/sim/common/cgen-cpu.h b/sim/common/cgen-cpu.h
index 08c9603..5d2adb0 100644
--- a/sim/common/cgen-cpu.h
+++ b/sim/common/cgen-cpu.h
@@ -1,5 +1,5 @@
/* Simulator header for cgen cpus.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/cgen-defs.h b/sim/common/cgen-defs.h
index b6fce96..48b6972 100644
--- a/sim/common/cgen-defs.h
+++ b/sim/common/cgen-defs.h
@@ -1,5 +1,5 @@
/* General Cpu tools GENerated simulator support.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/cgen-engine.h b/sim/common/cgen-engine.h
index a8d4ded..014bb18 100644
--- a/sim/common/cgen-engine.h
+++ b/sim/common/cgen-engine.h
@@ -1,5 +1,5 @@
/* Engine header for Cpu tools GENerated simulators.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/cgen-mem.h b/sim/common/cgen-mem.h
index c59bd9f..3ea0457 100644
--- a/sim/common/cgen-mem.h
+++ b/sim/common/cgen-mem.h
@@ -1,5 +1,5 @@
/* Memory ops header for CGEN-based simulators.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of the GNU Simulators.
diff --git a/sim/common/cgen-ops.h b/sim/common/cgen-ops.h
index 396a77e..d9d5ef9 100644
--- a/sim/common/cgen-ops.h
+++ b/sim/common/cgen-ops.h
@@ -1,5 +1,5 @@
/* Semantics ops support for CGEN-based simulators.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of the GNU Simulators.
diff --git a/sim/common/cgen-par.c b/sim/common/cgen-par.c
index b1d18e5..884db3b 100644
--- a/sim/common/cgen-par.c
+++ b/sim/common/cgen-par.c
@@ -1,5 +1,5 @@
/* Simulator parallel routines for CGEN simulators (and maybe others).
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of the GNU instruction set simulator.
diff --git a/sim/common/cgen-par.h b/sim/common/cgen-par.h
index ac586e2..15b0f35 100644
--- a/sim/common/cgen-par.h
+++ b/sim/common/cgen-par.h
@@ -1,5 +1,5 @@
/* Simulator header for cgen parallel support.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of the GNU instruction set simulator.
diff --git a/sim/common/cgen-run.c b/sim/common/cgen-run.c
index 87be677..1b4e992 100644
--- a/sim/common/cgen-run.c
+++ b/sim/common/cgen-run.c
@@ -1,5 +1,5 @@
/* Main simulator loop for CGEN-based simulators.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/cgen-scache.c b/sim/common/cgen-scache.c
index 5032a33..322765d 100644
--- a/sim/common/cgen-scache.c
+++ b/sim/common/cgen-scache.c
@@ -1,5 +1,5 @@
/* Simulator cache routines for CGEN simulators (and maybe others).
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/cgen-scache.h b/sim/common/cgen-scache.h
index 45d41a6..dd564e0 100644
--- a/sim/common/cgen-scache.h
+++ b/sim/common/cgen-scache.h
@@ -1,5 +1,5 @@
/* Simulator header for cgen scache support.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/cgen-sim.h b/sim/common/cgen-sim.h
index 4dbbcbd..48088cf 100644
--- a/sim/common/cgen-sim.h
+++ b/sim/common/cgen-sim.h
@@ -1,5 +1,5 @@
/* Main header file for Cpu tools GENerated simulators.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/cgen-trace.c b/sim/common/cgen-trace.c
index 650cc76..f17ee5a 100644
--- a/sim/common/cgen-trace.c
+++ b/sim/common/cgen-trace.c
@@ -1,5 +1,5 @@
/* Tracing support for CGEN-based simulators.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/cgen-trace.h b/sim/common/cgen-trace.h
index 1b2464d..e3d8ac0 100644
--- a/sim/common/cgen-trace.h
+++ b/sim/common/cgen-trace.h
@@ -1,5 +1,5 @@
/* Simulator tracing support for Cpu tools GENerated simulators.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/cgen-types.h b/sim/common/cgen-types.h
index 8b24304..34aa73f 100644
--- a/sim/common/cgen-types.h
+++ b/sim/common/cgen-types.h
@@ -1,5 +1,5 @@
/* Types for Cpu tools GENerated simulators.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/cgen-utils.c b/sim/common/cgen-utils.c
index 40d3e69..197345e 100644
--- a/sim/common/cgen-utils.c
+++ b/sim/common/cgen-utils.c
@@ -1,5 +1,5 @@
/* Support code for various pieces of CGEN simulators.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/create-version.sh b/sim/common/create-version.sh
index 55eb076..ec09780 100755
--- a/sim/common/create-version.sh
+++ b/sim/common/create-version.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright (C) 1989-2024 Free Software Foundation, Inc.
+# Copyright (C) 1989-2025 Free Software Foundation, Inc.
# This file is part of GDB.
diff --git a/sim/common/defs.h b/sim/common/defs.h
index c8658f7..55db0d2 100644
--- a/sim/common/defs.h
+++ b/sim/common/defs.h
@@ -1,6 +1,6 @@
/* The configure generated header settings.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/common/dv-cfi.c b/sim/common/dv-cfi.c
index 0db29b3..df6942d 100644
--- a/sim/common/dv-cfi.c
+++ b/sim/common/dv-cfi.c
@@ -2,7 +2,7 @@
http://www.spansion.com/Support/AppNotes/CFI_Spec_AN_03.pdf
http://www.spansion.com/Support/AppNotes/cfi_100_20011201.pdf
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/common/dv-cfi.h b/sim/common/dv-cfi.h
index d817aaf..08cb896 100644
--- a/sim/common/dv-cfi.h
+++ b/sim/common/dv-cfi.h
@@ -1,6 +1,6 @@
/* Common Flash Memory Interface (CFI) model.
- Copyright (C) 2010-2024 Free Software Foundation, Inc.
+ Copyright (C) 2010-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/common/dv-core.c b/sim/common/dv-core.c
index 95a932b..d3a1ca2 100644
--- a/sim/common/dv-core.c
+++ b/sim/common/dv-core.c
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/dv-glue.c b/sim/common/dv-glue.c
index 3871dbd..a30d929 100644
--- a/sim/common/dv-glue.c
+++ b/sim/common/dv-glue.c
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/dv-pal.c b/sim/common/dv-pal.c
index c415cc5..c793e0a 100644
--- a/sim/common/dv-pal.c
+++ b/sim/common/dv-pal.c
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/dv-sockser.c b/sim/common/dv-sockser.c
index e766425..c46bafe 100644
--- a/sim/common/dv-sockser.c
+++ b/sim/common/dv-sockser.c
@@ -1,5 +1,5 @@
/* Serial port emulation using sockets.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This program is free software; you can redistribute it and/or modify
diff --git a/sim/common/dv-sockser.h b/sim/common/dv-sockser.h
index 6a6387d..2566df7 100644
--- a/sim/common/dv-sockser.h
+++ b/sim/common/dv-sockser.h
@@ -1,5 +1,5 @@
/* Serial port emulation via sockets.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/common/genmloop.sh b/sim/common/genmloop.sh
index 7fb48fd..ee314b3 100755
--- a/sim/common/genmloop.sh
+++ b/sim/common/genmloop.sh
@@ -1,5 +1,5 @@
# Generate the main loop of the simulator.
-# Copyright (C) 1996-2024 Free Software Foundation, Inc.
+# Copyright (C) 1996-2025 Free Software Foundation, Inc.
# Contributed by Cygnus Support.
#
# This file is part of the GNU simulators.
diff --git a/sim/common/gennltvals.py b/sim/common/gennltvals.py
index 2692b56..5fe086c 100755
--- a/sim/common/gennltvals.py
+++ b/sim/common/gennltvals.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
-# Copyright (C) 1996-2024 Free Software Foundation, Inc.
+# Copyright (C) 1996-2025 Free Software Foundation, Inc.
#
# This file is part of the GNU simulators.
#
diff --git a/sim/common/hw-alloc.c b/sim/common/hw-alloc.c
index 4a46636..e557548 100644
--- a/sim/common/hw-alloc.c
+++ b/sim/common/hw-alloc.c
@@ -1,5 +1,5 @@
/* Hardware memory allocator.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/hw-alloc.h b/sim/common/hw-alloc.h
index c932601..4dda948 100644
--- a/sim/common/hw-alloc.h
+++ b/sim/common/hw-alloc.h
@@ -1,5 +1,5 @@
/* Hardware memory allocator.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/hw-base.c b/sim/common/hw-base.c
index 6f10826..4c39445 100644
--- a/sim/common/hw-base.c
+++ b/sim/common/hw-base.c
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/hw-base.h b/sim/common/hw-base.h
index 2843ab7..b6a078a 100644
--- a/sim/common/hw-base.h
+++ b/sim/common/hw-base.h
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/hw-device.c b/sim/common/hw-device.c
index 5ec8fcf..0000f19 100644
--- a/sim/common/hw-device.c
+++ b/sim/common/hw-device.c
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/hw-device.h b/sim/common/hw-device.h
index bea9e94..04f8671 100644
--- a/sim/common/hw-device.h
+++ b/sim/common/hw-device.h
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/hw-events.c b/sim/common/hw-events.c
index 306ac28..6e8a191 100644
--- a/sim/common/hw-events.c
+++ b/sim/common/hw-events.c
@@ -1,5 +1,5 @@
/* Hardware event manager.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/hw-events.h b/sim/common/hw-events.h
index 7dbdc5b..9176823 100644
--- a/sim/common/hw-events.h
+++ b/sim/common/hw-events.h
@@ -1,5 +1,5 @@
/* Hardware event manager.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/hw-handles.c b/sim/common/hw-handles.c
index 1a7e147..e1268b8 100644
--- a/sim/common/hw-handles.c
+++ b/sim/common/hw-handles.c
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/hw-handles.h b/sim/common/hw-handles.h
index 6474a38..d9bad1a 100644
--- a/sim/common/hw-handles.h
+++ b/sim/common/hw-handles.h
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/hw-instances.c b/sim/common/hw-instances.c
index 092adc2..dbb9706 100644
--- a/sim/common/hw-instances.c
+++ b/sim/common/hw-instances.c
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/hw-instances.h b/sim/common/hw-instances.h
index 2a8cb92..b070c8d 100644
--- a/sim/common/hw-instances.h
+++ b/sim/common/hw-instances.h
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/hw-main.h b/sim/common/hw-main.h
index cc64fdf..498a884 100644
--- a/sim/common/hw-main.h
+++ b/sim/common/hw-main.h
@@ -1,5 +1,5 @@
/* Common hardware header file.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/hw-ports.c b/sim/common/hw-ports.c
index 47f5a25..5e063d3 100644
--- a/sim/common/hw-ports.c
+++ b/sim/common/hw-ports.c
@@ -1,5 +1,5 @@
/* Hardware ports.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Cygnus Solutions.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/hw-ports.h b/sim/common/hw-ports.h
index 8327dac..252a288 100644
--- a/sim/common/hw-ports.h
+++ b/sim/common/hw-ports.h
@@ -1,5 +1,5 @@
/* Hardware ports.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Cygnus Solutions.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/hw-properties.c b/sim/common/hw-properties.c
index a385c38..5bffc15 100644
--- a/sim/common/hw-properties.c
+++ b/sim/common/hw-properties.c
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/hw-properties.h b/sim/common/hw-properties.h
index f3cf4e0..1a914fd 100644
--- a/sim/common/hw-properties.h
+++ b/sim/common/hw-properties.h
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/hw-tree.c b/sim/common/hw-tree.c
index f3a855e..411dbeb 100644
--- a/sim/common/hw-tree.c
+++ b/sim/common/hw-tree.c
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/hw-tree.h b/sim/common/hw-tree.h
index de21d28..4e43f1d 100644
--- a/sim/common/hw-tree.h
+++ b/sim/common/hw-tree.h
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/lineno.sh b/sim/common/lineno.sh
index 8d51fa8..5a089a3 100755
--- a/sim/common/lineno.sh
+++ b/sim/common/lineno.sh
@@ -1,6 +1,6 @@
#!/bin/sh
# Replace $LINENO on the fly.
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
#
# This file is part of the GNU simulators.
#
diff --git a/sim/common/local.mk b/sim/common/local.mk
index e456090..1688340 100644
--- a/sim/common/local.mk
+++ b/sim/common/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am.
##
-## Copyright (C) 1997-2024 Free Software Foundation, Inc.
+## Copyright (C) 1997-2025 Free Software Foundation, Inc.
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
diff --git a/sim/common/nrun.c b/sim/common/nrun.c
index fc63bae..22d420e 100644
--- a/sim/common/nrun.c
+++ b/sim/common/nrun.c
@@ -1,5 +1,5 @@
/* New version of run front end support for simulators.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/common/portability.c b/sim/common/portability.c
index 63b3d51..5c12cd3 100644
--- a/sim/common/portability.c
+++ b/sim/common/portability.c
@@ -1,5 +1,5 @@
/* Portability shims for missing OS support.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
Contributed by Mike Frysinger.
This file is part of the GNU Simulators.
diff --git a/sim/common/portability.h b/sim/common/portability.h
index 619753b..15ecd20 100644
--- a/sim/common/portability.h
+++ b/sim/common/portability.h
@@ -1,5 +1,5 @@
/* Portability shims for missing OS support.
- Copyright (C) 2021-2024 Free Software Foundation, Inc.
+ Copyright (C) 2021-2025 Free Software Foundation, Inc.
Contributed by Mike Frysinger.
This file is part of the GNU Simulators.
diff --git a/sim/common/run.1 b/sim/common/run.1
index 0457b02..41ab982 100644
--- a/sim/common/run.1
+++ b/sim/common/run.1
@@ -99,7 +99,7 @@ Using GDB: A Guide to the GNU Source-Level Debugger\c
, Richard M. Stallman and Roland H. Pesch.
.SH COPYING
-Copyright (c) 1993-2024 Free Software Foundation, Inc.
+Copyright (c) 1993-2025 Free Software Foundation, Inc.
.PP
This document is distributed under the terms of the GNU Free
Documentation License, version 1.1. That license is described in the
diff --git a/sim/common/sim-abort.c b/sim/common/sim-abort.c
index c240179..c07fe71 100644
--- a/sim/common/sim-abort.c
+++ b/sim/common/sim-abort.c
@@ -1,5 +1,5 @@
/* Generic simulator abort.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-alu.h b/sim/common/sim-alu.h
index 4a4d12d..11b87d6 100644
--- a/sim/common/sim-alu.h
+++ b/sim/common/sim-alu.h
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/sim-arange.c b/sim/common/sim-arange.c
index efdaae0..088b1d9 100644
--- a/sim/common/sim-arange.c
+++ b/sim/common/sim-arange.c
@@ -1,5 +1,5 @@
/* Address ranges.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of the GNU Simulators.
diff --git a/sim/common/sim-arange.h b/sim/common/sim-arange.h
index eb2c3fd..2f15bea 100644
--- a/sim/common/sim-arange.h
+++ b/sim/common/sim-arange.h
@@ -1,5 +1,5 @@
/* Address ranges.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of the GNU Simulators.
diff --git a/sim/common/sim-assert.h b/sim/common/sim-assert.h
index df39dcd..27133e1 100644
--- a/sim/common/sim-assert.h
+++ b/sim/common/sim-assert.h
@@ -1,6 +1,6 @@
/* This file is part of the program GDB.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/common/sim-base.h b/sim/common/sim-base.h
index c96d894..ecc18eb 100644
--- a/sim/common/sim-base.h
+++ b/sim/common/sim-base.h
@@ -1,6 +1,6 @@
/* Simulator pseudo baseclass.
- Copyright 1997-2024 Free Software Foundation, Inc.
+ Copyright 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
diff --git a/sim/common/sim-basics.h b/sim/common/sim-basics.h
index 6fc0be9..471ac89 100644
--- a/sim/common/sim-basics.h
+++ b/sim/common/sim-basics.h
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/sim-bits.c b/sim/common/sim-bits.c
index 1f8cc28..92c2438 100644
--- a/sim/common/sim-bits.c
+++ b/sim/common/sim-bits.c
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/sim-bits.h b/sim/common/sim-bits.h
index 63ac452..ff23725 100644
--- a/sim/common/sim-bits.h
+++ b/sim/common/sim-bits.h
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/sim-close.c b/sim/common/sim-close.c
index c834115..5ddfad5 100644
--- a/sim/common/sim-close.c
+++ b/sim/common/sim-close.c
@@ -1,6 +1,6 @@
/* Miscellaneous simulator utilities.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc. and Stephane Carrez.
This file is part of simulators.
diff --git a/sim/common/sim-command.c b/sim/common/sim-command.c
index 6661a49..c206d5c 100644
--- a/sim/common/sim-command.c
+++ b/sim/common/sim-command.c
@@ -1,6 +1,6 @@
/* Miscellaneous simulator utilities.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Analog Devices, Inc.
This file is part of simulators.
diff --git a/sim/common/sim-config.c b/sim/common/sim-config.c
index 9db2225..62074d4 100644
--- a/sim/common/sim-config.c
+++ b/sim/common/sim-config.c
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/sim-config.h b/sim/common/sim-config.h
index 2470378..37ebfb4 100644
--- a/sim/common/sim-config.h
+++ b/sim/common/sim-config.h
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/sim-core.c b/sim/common/sim-core.c
index 59dabe3..4912563 100644
--- a/sim/common/sim-core.c
+++ b/sim/common/sim-core.c
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/sim-core.h b/sim/common/sim-core.h
index a3b73b0..a4756c4 100644
--- a/sim/common/sim-core.h
+++ b/sim/common/sim-core.h
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/sim-cpu.c b/sim/common/sim-cpu.c
index 863c192..28c2305 100644
--- a/sim/common/sim-cpu.c
+++ b/sim/common/sim-cpu.c
@@ -1,5 +1,5 @@
/* CPU support.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-cpu.h b/sim/common/sim-cpu.h
index dd890a9..d496d31 100644
--- a/sim/common/sim-cpu.h
+++ b/sim/common/sim-cpu.h
@@ -1,5 +1,5 @@
/* CPU support.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-endian.c b/sim/common/sim-endian.c
index 261bb43..67fd8cb 100644
--- a/sim/common/sim-endian.c
+++ b/sim/common/sim-endian.c
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/sim-endian.h b/sim/common/sim-endian.h
index 6f69d47..87c6c53 100644
--- a/sim/common/sim-endian.h
+++ b/sim/common/sim-endian.h
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/sim-engine.c b/sim/common/sim-engine.c
index b725c0c..61de39b 100644
--- a/sim/common/sim-engine.c
+++ b/sim/common/sim-engine.c
@@ -1,5 +1,5 @@
/* Generic simulator halt/restart.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-engine.h b/sim/common/sim-engine.h
index af64f2f..61dc7ca 100644
--- a/sim/common/sim-engine.h
+++ b/sim/common/sim-engine.h
@@ -1,5 +1,5 @@
/* Generic simulator halt/resume.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-events.c b/sim/common/sim-events.c
index 391c3f8..37c00d0 100644
--- a/sim/common/sim-events.c
+++ b/sim/common/sim-events.c
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/sim-events.h b/sim/common/sim-events.h
index 83dd9f1..ac23a02 100644
--- a/sim/common/sim-events.h
+++ b/sim/common/sim-events.h
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/sim-fpu.c b/sim/common/sim-fpu.c
index 237de89..b6b2b95 100644
--- a/sim/common/sim-fpu.c
+++ b/sim/common/sim-fpu.c
@@ -2,7 +2,7 @@
of the floating point routines in libgcc1.c for targets without
hardware floating point. */
-/* Copyright 1994-2024 Free Software Foundation, Inc.
+/* Copyright 1994-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/common/sim-fpu.h b/sim/common/sim-fpu.h
index 5f2e598..0f31721 100644
--- a/sim/common/sim-fpu.h
+++ b/sim/common/sim-fpu.h
@@ -1,6 +1,6 @@
/* Simulator Floating-point support.
- Copyright 1997-2024 Free Software Foundation, Inc.
+ Copyright 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
diff --git a/sim/common/sim-hload.c b/sim/common/sim-hload.c
index 32f416d..1fc7d5b 100644
--- a/sim/common/sim-hload.c
+++ b/sim/common/sim-hload.c
@@ -1,5 +1,5 @@
/* Generic load for hardware simulator models.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-hrw.c b/sim/common/sim-hrw.c
index 582d391..40e8777 100644
--- a/sim/common/sim-hrw.c
+++ b/sim/common/sim-hrw.c
@@ -1,5 +1,5 @@
/* Generic memory read/write for hardware simulator models.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-hw.c b/sim/common/sim-hw.c
index 2ee0af1..8cadc0c 100644
--- a/sim/common/sim-hw.c
+++ b/sim/common/sim-hw.c
@@ -1,5 +1,5 @@
/* Simulator hardware option handling.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support and Andrew Cagney.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-hw.h b/sim/common/sim-hw.h
index a6de814..11d531b 100644
--- a/sim/common/sim-hw.h
+++ b/sim/common/sim-hw.h
@@ -1,5 +1,5 @@
/* Device definitions.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-info.c b/sim/common/sim-info.c
index 7891b6a..6e9440b 100644
--- a/sim/common/sim-info.c
+++ b/sim/common/sim-info.c
@@ -1,5 +1,5 @@
/* Generic memory read/write for hardware simulator models.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-inline.c b/sim/common/sim-inline.c
index a7b23d0..838cfbf 100644
--- a/sim/common/sim-inline.c
+++ b/sim/common/sim-inline.c
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/sim-inline.h b/sim/common/sim-inline.h
index 091cd87..4fb071a 100644
--- a/sim/common/sim-inline.h
+++ b/sim/common/sim-inline.h
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/sim-io.c b/sim/common/sim-io.c
index 196efe8..4939187 100644
--- a/sim/common/sim-io.c
+++ b/sim/common/sim-io.c
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/sim-io.h b/sim/common/sim-io.h
index ec29a59..dce6e84 100644
--- a/sim/common/sim-io.h
+++ b/sim/common/sim-io.h
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/sim-load.c b/sim/common/sim-load.c
index a508d3c..f2454d9 100644
--- a/sim/common/sim-load.c
+++ b/sim/common/sim-load.c
@@ -1,5 +1,5 @@
/* Utility to load a file into the simulator.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/common/sim-memopt.c b/sim/common/sim-memopt.c
index acde61c..3c9b7cc 100644
--- a/sim/common/sim-memopt.c
+++ b/sim/common/sim-memopt.c
@@ -1,5 +1,5 @@
/* Simulator memory option handling.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-memopt.h b/sim/common/sim-memopt.h
index f4ff84c..f9a9909 100644
--- a/sim/common/sim-memopt.h
+++ b/sim/common/sim-memopt.h
@@ -1,5 +1,5 @@
/* Header file for simulator memory argument handling.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-model.c b/sim/common/sim-model.c
index ab678c7..feb1480 100644
--- a/sim/common/sim-model.c
+++ b/sim/common/sim-model.c
@@ -1,5 +1,5 @@
/* Model support.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-model.h b/sim/common/sim-model.h
index d82f1e5..1c41cff 100644
--- a/sim/common/sim-model.h
+++ b/sim/common/sim-model.h
@@ -1,5 +1,5 @@
/* Architecture, machine, and model support.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-module.c b/sim/common/sim-module.c
index 25d1e17..edd15c4 100644
--- a/sim/common/sim-module.c
+++ b/sim/common/sim-module.c
@@ -1,6 +1,6 @@
/* Module support.
- Copyright 1996-2024 Free Software Foundation, Inc.
+ Copyright 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
diff --git a/sim/common/sim-module.h b/sim/common/sim-module.h
index 1368cd3..baf03f4 100644
--- a/sim/common/sim-module.h
+++ b/sim/common/sim-module.h
@@ -1,5 +1,5 @@
/* Module support.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-n-bits.h b/sim/common/sim-n-bits.h
index 459ad44..c9fd2ef 100644
--- a/sim/common/sim-n-bits.h
+++ b/sim/common/sim-n-bits.h
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/sim-n-core.h b/sim/common/sim-n-core.h
index ec21004..f6515ee 100644
--- a/sim/common/sim-n-core.h
+++ b/sim/common/sim-n-core.h
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/sim-n-endian.h b/sim/common/sim-n-endian.h
index 9b871b4..8addc69 100644
--- a/sim/common/sim-n-endian.h
+++ b/sim/common/sim-n-endian.h
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/sim-options.c b/sim/common/sim-options.c
index fe89b30..5cb071d 100644
--- a/sim/common/sim-options.c
+++ b/sim/common/sim-options.c
@@ -1,5 +1,5 @@
/* Simulator option handling.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-options.h b/sim/common/sim-options.h
index 1c46f5b..f09ff26 100644
--- a/sim/common/sim-options.h
+++ b/sim/common/sim-options.h
@@ -1,5 +1,5 @@
/* Header file for simulator argument handling.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-profile.c b/sim/common/sim-profile.c
index e1d44e9..5b59bbd 100644
--- a/sim/common/sim-profile.c
+++ b/sim/common/sim-profile.c
@@ -1,5 +1,5 @@
/* Default profiling support.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-profile.h b/sim/common/sim-profile.h
index 1448d08..2f1e814 100644
--- a/sim/common/sim-profile.h
+++ b/sim/common/sim-profile.h
@@ -1,5 +1,5 @@
/* Profile header for simulators using common framework.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-reason.c b/sim/common/sim-reason.c
index f6f0ca3..8476adb 100644
--- a/sim/common/sim-reason.c
+++ b/sim/common/sim-reason.c
@@ -1,5 +1,5 @@
/* Generic simulator stop_reason.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-reg.c b/sim/common/sim-reg.c
index 96a0c7b..fea0b0b 100644
--- a/sim/common/sim-reg.c
+++ b/sim/common/sim-reg.c
@@ -1,5 +1,5 @@
/* Generic register read/write.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-resume.c b/sim/common/sim-resume.c
index dd1a6c8..7a49665 100644
--- a/sim/common/sim-resume.c
+++ b/sim/common/sim-resume.c
@@ -1,5 +1,5 @@
/* Generic simulator resume.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-run.c b/sim/common/sim-run.c
index 4d43e4d..ea34d43 100644
--- a/sim/common/sim-run.c
+++ b/sim/common/sim-run.c
@@ -1,5 +1,5 @@
/* Generic simulator run.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-signal.c b/sim/common/sim-signal.c
index 78598ca..c210933 100644
--- a/sim/common/sim-signal.c
+++ b/sim/common/sim-signal.c
@@ -1,5 +1,5 @@
/* Simulator signal support
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support
This file is part of the GNU Simulators.
diff --git a/sim/common/sim-signal.h b/sim/common/sim-signal.h
index 95a043b..5e118f9 100644
--- a/sim/common/sim-signal.h
+++ b/sim/common/sim-signal.h
@@ -1,5 +1,5 @@
/* Simulator signal support
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support
This file is part of the GNU Simulators.
diff --git a/sim/common/sim-stop.c b/sim/common/sim-stop.c
index 27e8819..5eafa3e 100644
--- a/sim/common/sim-stop.c
+++ b/sim/common/sim-stop.c
@@ -1,5 +1,5 @@
/* Generic simulator stop.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-syscall.c b/sim/common/sim-syscall.c
index d1059f0..991619c 100644
--- a/sim/common/sim-syscall.c
+++ b/sim/common/sim-syscall.c
@@ -1,6 +1,6 @@
/* Simulator system call support.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
This file is part of simulators.
diff --git a/sim/common/sim-syscall.h b/sim/common/sim-syscall.h
index 8108145..f1a8faa 100644
--- a/sim/common/sim-syscall.h
+++ b/sim/common/sim-syscall.h
@@ -1,6 +1,6 @@
/* Simulator system call support.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
This file is part of simulators.
diff --git a/sim/common/sim-trace.c b/sim/common/sim-trace.c
index f5a8234..fe7d0a3 100644
--- a/sim/common/sim-trace.c
+++ b/sim/common/sim-trace.c
@@ -1,5 +1,5 @@
/* Simulator tracing/debugging support.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-trace.h b/sim/common/sim-trace.h
index 3794c14..21c63c5 100644
--- a/sim/common/sim-trace.h
+++ b/sim/common/sim-trace.h
@@ -1,5 +1,5 @@
/* Simulator tracing/debugging support.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-types.h b/sim/common/sim-types.h
index 2182134..ca0f42f 100644
--- a/sim/common/sim-types.h
+++ b/sim/common/sim-types.h
@@ -1,6 +1,6 @@
/* The common simulator framework for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney and Red Hat.
diff --git a/sim/common/sim-utils.c b/sim/common/sim-utils.c
index d2d1049..b39a30c 100644
--- a/sim/common/sim-utils.c
+++ b/sim/common/sim-utils.c
@@ -1,5 +1,5 @@
/* Miscellaneous simulator utilities.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-utils.h b/sim/common/sim-utils.h
index a0a128f..decdbb4 100644
--- a/sim/common/sim-utils.h
+++ b/sim/common/sim-utils.h
@@ -1,5 +1,5 @@
/* Miscellaneous simulator utilities.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-watch.c b/sim/common/sim-watch.c
index 7184df1..55f201a 100644
--- a/sim/common/sim-watch.c
+++ b/sim/common/sim-watch.c
@@ -1,5 +1,5 @@
/* Generic simulator watchpoint support.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/sim-watch.h b/sim/common/sim-watch.h
index 885cac7..b7c6eaa 100644
--- a/sim/common/sim-watch.h
+++ b/sim/common/sim-watch.h
@@ -1,5 +1,5 @@
/* Simulator watchpoint support.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/common/syscall.c b/sim/common/syscall.c
index 4532889..7d31c67 100644
--- a/sim/common/syscall.c
+++ b/sim/common/syscall.c
@@ -1,5 +1,5 @@
/* Remote target system call support.
- Copyright 1997-2024 Free Software Foundation, Inc.
+ Copyright 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of GDB.
diff --git a/sim/common/target-newlib-errno.c b/sim/common/target-newlib-errno.c
index a7ec9e8..2f95c35 100644
--- a/sim/common/target-newlib-errno.c
+++ b/sim/common/target-newlib-errno.c
@@ -1,5 +1,5 @@
/* Target errno mappings for newlib/libgloss environment.
- Copyright 1995-2024 Free Software Foundation, Inc.
+ Copyright 1995-2025 Free Software Foundation, Inc.
Contributed by Mike Frysinger.
This file is part of simulators.
diff --git a/sim/common/target-newlib-open.c b/sim/common/target-newlib-open.c
index 24e7d8e..22efa99 100644
--- a/sim/common/target-newlib-open.c
+++ b/sim/common/target-newlib-open.c
@@ -1,5 +1,5 @@
/* Target errno mappings for newlib/libgloss environment.
- Copyright 1995-2024 Free Software Foundation, Inc.
+ Copyright 1995-2025 Free Software Foundation, Inc.
Contributed by Mike Frysinger.
This file is part of simulators.
diff --git a/sim/common/target-newlib-signal.c b/sim/common/target-newlib-signal.c
index 1debe37..dd65973 100644
--- a/sim/common/target-newlib-signal.c
+++ b/sim/common/target-newlib-signal.c
@@ -1,5 +1,5 @@
/* Target errno mappings for newlib/libgloss environment.
- Copyright 1995-2024 Free Software Foundation, Inc.
+ Copyright 1995-2025 Free Software Foundation, Inc.
Contributed by Mike Frysinger.
This file is part of simulators.
diff --git a/sim/common/target-newlib-syscall.c b/sim/common/target-newlib-syscall.c
index c18dd83..4ef939d 100644
--- a/sim/common/target-newlib-syscall.c
+++ b/sim/common/target-newlib-syscall.c
@@ -1,5 +1,5 @@
/* Target syscall mappings for newlib/libgloss environment.
- Copyright 1995-2024 Free Software Foundation, Inc.
+ Copyright 1995-2025 Free Software Foundation, Inc.
Contributed by Mike Frysinger.
This file is part of simulators.
diff --git a/sim/common/target-newlib-syscall.h b/sim/common/target-newlib-syscall.h
index 883c08a..de736c7 100644
--- a/sim/common/target-newlib-syscall.h
+++ b/sim/common/target-newlib-syscall.h
@@ -1,5 +1,5 @@
/* Target syscall mappings for newlib/libgloss environment.
- Copyright 1995-2024 Free Software Foundation, Inc.
+ Copyright 1995-2025 Free Software Foundation, Inc.
Contributed by Mike Frysinger.
This file is part of simulators.
diff --git a/sim/common/version.h b/sim/common/version.h
index 3f28f26..ac53c80 100644
--- a/sim/common/version.h
+++ b/sim/common/version.h
@@ -1,5 +1,5 @@
/* Version information for GDB.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/sim/configure b/sim/configure
index 1ebef37..365a12d 100755
--- a/sim/configure
+++ b/sim/configure
@@ -839,11 +839,6 @@ SIM_ENABLE_ARCH_avr_TRUE
CC_FOR_TARGET_AVR
LD_FOR_TARGET_AVR
AS_FOR_TARGET_AVR
-SIM_ENABLE_ARCH_arm_FALSE
-SIM_ENABLE_ARCH_arm_TRUE
-CC_FOR_TARGET_ARM
-LD_FOR_TARGET_ARM
-AS_FOR_TARGET_ARM
SIM_ENABLE_ARCH_aarch64_FALSE
SIM_ENABLE_ARCH_aarch64_TRUE
CC_FOR_TARGET_AARCH64
@@ -1067,9 +1062,6 @@ SDL_LIBS
AS_FOR_TARGET_AARCH64
LD_FOR_TARGET_AARCH64
CC_FOR_TARGET_AARCH64
-AS_FOR_TARGET_ARM
-LD_FOR_TARGET_ARM
-CC_FOR_TARGET_ARM
AS_FOR_TARGET_AVR
LD_FOR_TARGET_AVR
CC_FOR_TARGET_AVR
@@ -1900,12 +1892,6 @@ Some influential environment variables:
Linker for aarch64 tests
CC_FOR_TARGET_AARCH64
C compiler for aarch64 tests
- AS_FOR_TARGET_ARM
- Assembler for arm tests
- LD_FOR_TARGET_ARM
- Linker for arm tests
- CC_FOR_TARGET_ARM
- C compiler for arm tests
AS_FOR_TARGET_AVR
Assembler for avr tests
LD_FOR_TARGET_AVR
@@ -12892,7 +12878,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12895 "configure"
+#line 12881 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12998,7 +12984,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 13001 "configure"
+#line 12987 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -15053,41 +15039,6 @@ else
SIM_ENABLE_ARCH_aarch64_FALSE=
fi
- sim_enable_arch_arm=false
- case "${targ}" in
- all|arm*-*-*)
- if test "${targ}" = "${target}"; then
- SIM_PRIMARY_TARGET=arm
- fi
- ENABLE_SIM=yes
- as_fn_append SIM_ENABLED_ARCHES " arm"
- ac_config_files="$ac_config_files arm/.gdbinit:common/gdbinit.in"
-
-
- sim_enable_arch_arm=true
- ;;
- esac
-
-
-
-
- if test "$SIM_PRIMARY_TARGET" = "arm"; then :
- : "${AS_FOR_TARGET_ARM:=\$(AS_FOR_TARGET)}"
- : "${LD_FOR_TARGET_ARM:=\$(LD_FOR_TARGET)}"
- : "${CC_FOR_TARGET_ARM:=\$(CC_FOR_TARGET)}"
-
-fi
-
-as_fn_append SIM_TOOLCHAIN_VARS " AS_FOR_TARGET_ARM LD_FOR_TARGET_ARM CC_FOR_TARGET_ARM"
-
- if ${sim_enable_arch_arm}; then
- SIM_ENABLE_ARCH_arm_TRUE=
- SIM_ENABLE_ARCH_arm_FALSE='#'
-else
- SIM_ENABLE_ARCH_arm_TRUE='#'
- SIM_ENABLE_ARCH_arm_FALSE=
-fi
-
sim_enable_arch_avr=false
case "${targ}" in
all|avr*-*-*)
@@ -17655,10 +17606,6 @@ if test -z "${SIM_ENABLE_ARCH_aarch64_TRUE}" && test -z "${SIM_ENABLE_ARCH_aarch
as_fn_error $? "conditional \"SIM_ENABLE_ARCH_aarch64\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
-if test -z "${SIM_ENABLE_ARCH_arm_TRUE}" && test -z "${SIM_ENABLE_ARCH_arm_FALSE}"; then
- as_fn_error $? "conditional \"SIM_ENABLE_ARCH_arm\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
if test -z "${SIM_ENABLE_ARCH_avr_TRUE}" && test -z "${SIM_ENABLE_ARCH_avr_FALSE}"; then
as_fn_error $? "conditional \"SIM_ENABLE_ARCH_avr\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -18656,7 +18603,6 @@ do
"libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"aarch64/.gdbinit") CONFIG_FILES="$CONFIG_FILES aarch64/.gdbinit:common/gdbinit.in" ;;
- "arm/.gdbinit") CONFIG_FILES="$CONFIG_FILES arm/.gdbinit:common/gdbinit.in" ;;
"avr/.gdbinit") CONFIG_FILES="$CONFIG_FILES avr/.gdbinit:common/gdbinit.in" ;;
"bfin/.gdbinit") CONFIG_FILES="$CONFIG_FILES bfin/.gdbinit:common/gdbinit.in" ;;
"bpf/.gdbinit") CONFIG_FILES="$CONFIG_FILES bpf/.gdbinit:common/gdbinit.in" ;;
diff --git a/sim/configure.ac b/sim/configure.ac
index fad5b71..a9e2528 100644
--- a/sim/configure.ac
+++ b/sim/configure.ac
@@ -96,7 +96,6 @@ if test "${enable_sim}" != no; then
do
m4_map([SIM_TARGET], [
[[aarch64*-*-*], [aarch64]],
- [[arm*-*-*], [arm]],
[[avr*-*-*], [avr]],
[[bfin-*-*], [bfin]],
[[bpf-*-*], [bpf]],
diff --git a/sim/cr16/cr16-sim.h b/sim/cr16/cr16-sim.h
index a4a249b..bd72ad0 100644
--- a/sim/cr16/cr16-sim.h
+++ b/sim/cr16/cr16-sim.h
@@ -1,5 +1,5 @@
/* Simulation code for the CR16 processor.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributed by M Ranga Swami Reddy <MR.Swami.Reddy@nsc.com>
This file is part of GDB, the GNU debugger.
diff --git a/sim/cr16/gencode.c b/sim/cr16/gencode.c
index 2860b26..3dfe00b 100644
--- a/sim/cr16/gencode.c
+++ b/sim/cr16/gencode.c
@@ -1,5 +1,5 @@
/* Simulation code for the CR16 processor.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributed by M Ranga Swami Reddy <MR.Swami.Reddy@nsc.com>
This file is part of GDB, the GNU debugger.
diff --git a/sim/cr16/interp.c b/sim/cr16/interp.c
index 294ba56..945fe24 100644
--- a/sim/cr16/interp.c
+++ b/sim/cr16/interp.c
@@ -1,5 +1,5 @@
/* Simulation code for the CR16 processor.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributed by M Ranga Swami Reddy <MR.Swami.Reddy@nsc.com>
This file is part of GDB, the GNU debugger.
diff --git a/sim/cr16/local.mk b/sim/cr16/local.mk
index f26fa4d..ea4afb3 100644
--- a/sim/cr16/local.mk
+++ b/sim/cr16/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 2008-2024 Free Software Foundation, Inc.
+## Copyright (C) 2008-2025 Free Software Foundation, Inc.
## Contributed by M Ranga Swami Reddy <MR.Swami.Reddy@nsc.com>
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/cr16/sim-main.h b/sim/cr16/sim-main.h
index 97ca2a6..e0f9e96 100644
--- a/sim/cr16/sim-main.h
+++ b/sim/cr16/sim-main.h
@@ -1,5 +1,5 @@
/* Simulation code for the CR16 processor.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of simulators.
diff --git a/sim/cr16/simops.c b/sim/cr16/simops.c
index e56e533..d93504d 100644
--- a/sim/cr16/simops.c
+++ b/sim/cr16/simops.c
@@ -1,5 +1,5 @@
/* Simulation code for the CR16 processor.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributed by M Ranga Swami Reddy <MR.Swami.Reddy@nsc.com>
This file is part of GDB, the GNU debugger.
diff --git a/sim/cris/arch.c b/sim/cris/arch.c
index 7b7cf3a..578fc36 100644
--- a/sim/cris/arch.c
+++ b/sim/cris/arch.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/cris/arch.h b/sim/cris/arch.h
index 36badf6..dce3b11 100644
--- a/sim/cris/arch.h
+++ b/sim/cris/arch.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/cris/cpuall.h b/sim/cris/cpuall.h
index b3ddac1..3b2c15e 100644
--- a/sim/cris/cpuall.h
+++ b/sim/cris/cpuall.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/cris/cpuv10.c b/sim/cris/cpuv10.c
index 4c40cad..9d5405e 100644
--- a/sim/cris/cpuv10.c
+++ b/sim/cris/cpuv10.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/cris/cpuv10.h b/sim/cris/cpuv10.h
index 27bc77d..5b48f07 100644
--- a/sim/cris/cpuv10.h
+++ b/sim/cris/cpuv10.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/cris/cpuv32.c b/sim/cris/cpuv32.c
index 8b6933c..c696c71 100644
--- a/sim/cris/cpuv32.c
+++ b/sim/cris/cpuv32.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/cris/cpuv32.h b/sim/cris/cpuv32.h
index 35bbc6d..a372eee 100644
--- a/sim/cris/cpuv32.h
+++ b/sim/cris/cpuv32.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/cris/cris-sim.h b/sim/cris/cris-sim.h
index c5e9d8a..d15cefb 100644
--- a/sim/cris/cris-sim.h
+++ b/sim/cris/cris-sim.h
@@ -1,5 +1,5 @@
/* Collection of junk for CRIS.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
Contributed by Axis Communications.
This file is part of the GNU simulators.
diff --git a/sim/cris/cris-tmpl.c b/sim/cris/cris-tmpl.c
index 5399f63..86606c9 100644
--- a/sim/cris/cris-tmpl.c
+++ b/sim/cris/cris-tmpl.c
@@ -1,5 +1,5 @@
/* CRIS base simulator support code
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
Contributed by Axis Communications.
This file is part of the GNU simulators.
diff --git a/sim/cris/crisv10f.c b/sim/cris/crisv10f.c
index 9d35974..3cbe6ff 100644
--- a/sim/cris/crisv10f.c
+++ b/sim/cris/crisv10f.c
@@ -1,5 +1,5 @@
/* CRIS v10 simulator support code
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
Contributed by Axis Communications.
This file is part of the GNU simulators.
diff --git a/sim/cris/crisv32f.c b/sim/cris/crisv32f.c
index 27beaa0..03505c4 100644
--- a/sim/cris/crisv32f.c
+++ b/sim/cris/crisv32f.c
@@ -1,5 +1,5 @@
/* CRIS v32 simulator support code
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
Contributed by Axis Communications.
This file is part of the GNU simulators.
diff --git a/sim/cris/decodev10.c b/sim/cris/decodev10.c
index ddc61f2..c4d882d 100644
--- a/sim/cris/decodev10.c
+++ b/sim/cris/decodev10.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/cris/decodev10.h b/sim/cris/decodev10.h
index 925fd7f..043d56b 100644
--- a/sim/cris/decodev10.h
+++ b/sim/cris/decodev10.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/cris/decodev32.c b/sim/cris/decodev32.c
index 1fac278..5148ab4 100644
--- a/sim/cris/decodev32.c
+++ b/sim/cris/decodev32.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/cris/decodev32.h b/sim/cris/decodev32.h
index 09168a9..0ff1f11 100644
--- a/sim/cris/decodev32.h
+++ b/sim/cris/decodev32.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/cris/dv-cris.c b/sim/cris/dv-cris.c
index 749d598..6e512cc 100644
--- a/sim/cris/dv-cris.c
+++ b/sim/cris/dv-cris.c
@@ -1,6 +1,6 @@
/* The CRIS interrupt framework for GDB, the GNU Debugger.
- Copyright 2006-2024 Free Software Foundation, Inc.
+ Copyright 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/sim/cris/dv-cris_900000xx.c b/sim/cris/dv-cris_900000xx.c
index 4d970f2..67dc143 100644
--- a/sim/cris/dv-cris_900000xx.c
+++ b/sim/cris/dv-cris_900000xx.c
@@ -1,6 +1,6 @@
/* Handle 0x900000xx addresses in the sim.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
Contributed by Axis Communications.
This file is part of the GNU simulators.
diff --git a/sim/cris/dv-rv.c b/sim/cris/dv-rv.c
index f127600..f96cb67 100644
--- a/sim/cris/dv-rv.c
+++ b/sim/cris/dv-rv.c
@@ -1,7 +1,7 @@
/* The remote-virtual-component simulator framework
for GDB, the GNU Debugger.
- Copyright 2006-2024 Free Software Foundation, Inc.
+ Copyright 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/sim/cris/local.mk b/sim/cris/local.mk
index 89a1573..cc3110e 100644
--- a/sim/cris/local.mk
+++ b/sim/cris/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 2004-2024 Free Software Foundation, Inc.
+## Copyright (C) 2004-2025 Free Software Foundation, Inc.
## Contributed by Axis Communications.
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/cris/mloop.in b/sim/cris/mloop.in
index 45d61c9..d793fe8 100644
--- a/sim/cris/mloop.in
+++ b/sim/cris/mloop.in
@@ -1,5 +1,5 @@
# Simulator main loop for CRIS. -*- C -*-
-# Copyright (C) 2004-2024 Free Software Foundation, Inc.
+# Copyright (C) 2004-2025 Free Software Foundation, Inc.
# Contributed by Axis Communications.
#
# This file is part of the GNU simulators.
diff --git a/sim/cris/modelv10.c b/sim/cris/modelv10.c
index 5614f2d..e05cba4 100644
--- a/sim/cris/modelv10.c
+++ b/sim/cris/modelv10.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/cris/modelv32.c b/sim/cris/modelv32.c
index 836ab38..3d985ba 100644
--- a/sim/cris/modelv32.c
+++ b/sim/cris/modelv32.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/cris/rvdummy.c b/sim/cris/rvdummy.c
index 957f0f4..7c34f20 100644
--- a/sim/cris/rvdummy.c
+++ b/sim/cris/rvdummy.c
@@ -1,7 +1,7 @@
/* Test-driver for the remote-virtual-component simulator framework
for GDB, the GNU Debugger.
- Copyright 2006-2024 Free Software Foundation, Inc.
+ Copyright 2006-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/sim/cris/semcrisv10f-switch.c b/sim/cris/semcrisv10f-switch.c
index 36521b5..e1b4624 100644
--- a/sim/cris/semcrisv10f-switch.c
+++ b/sim/cris/semcrisv10f-switch.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/cris/semcrisv32f-switch.c b/sim/cris/semcrisv32f-switch.c
index 6c3439f..8a19a8c 100644
--- a/sim/cris/semcrisv32f-switch.c
+++ b/sim/cris/semcrisv32f-switch.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/cris/sim-if.c b/sim/cris/sim-if.c
index f3a12e1..be44b27 100644
--- a/sim/cris/sim-if.c
+++ b/sim/cris/sim-if.c
@@ -1,5 +1,5 @@
/* Main simulator entry points specific to the CRIS.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
Contributed by Axis Communications.
This file is part of the GNU simulators.
diff --git a/sim/cris/sim-main.h b/sim/cris/sim-main.h
index b706514..8ff4036 100644
--- a/sim/cris/sim-main.h
+++ b/sim/cris/sim-main.h
@@ -1,5 +1,5 @@
/* Main header for the CRIS simulator, based on the m32r header.
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
Contributed by Axis Communications.
This file is part of the GNU simulators.
diff --git a/sim/cris/traps.c b/sim/cris/traps.c
index 6d2bb60..1952118 100644
--- a/sim/cris/traps.c
+++ b/sim/cris/traps.c
@@ -1,5 +1,5 @@
/* CRIS exception, interrupt, and trap (EIT) support
- Copyright (C) 2004-2024 Free Software Foundation, Inc.
+ Copyright (C) 2004-2025 Free Software Foundation, Inc.
Contributed by Axis Communications.
This file is part of the GNU simulators.
diff --git a/sim/d10v/gencode.c b/sim/d10v/gencode.c
index 3a37bac..763e2f5 100644
--- a/sim/d10v/gencode.c
+++ b/sim/d10v/gencode.c
@@ -150,5 +150,5 @@ write_opcodes (void)
printf ("},\n");
}
}
- printf ("{ 0,0,0,0,0,0,0,(void (*)())0,0,{0,0,0}},\n};\n");
+ printf ("{ 0,0,0,0,0,0,0,0,0,{0,0,0}},\n};\n");
}
diff --git a/sim/d10v/local.mk b/sim/d10v/local.mk
index d58adb0..6d89d0c 100644
--- a/sim/d10v/local.mk
+++ b/sim/d10v/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 1996-2024 Free Software Foundation, Inc.
+## Copyright (C) 1996-2025 Free Software Foundation, Inc.
## Written by Cygnus Support.
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/d10v/sim-main.h b/sim/d10v/sim-main.h
index 22d4b9a..5eedaa3 100644
--- a/sim/d10v/sim-main.h
+++ b/sim/d10v/sim-main.h
@@ -1,5 +1,5 @@
/* Simulation code for the d10v processor.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of simulators.
diff --git a/sim/erc32/erc32.c b/sim/erc32/erc32.c
index 25037ce..cf9e084 100644
--- a/sim/erc32/erc32.c
+++ b/sim/erc32/erc32.c
@@ -1,6 +1,6 @@
/* This file is part of SIS (SPARC instruction simulator)
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
Contributed by Jiri Gaisler, European Space Agency
This program is free software; you can redistribute it and/or modify
diff --git a/sim/erc32/exec.c b/sim/erc32/exec.c
index 50bd5d3..9b03f0d 100644
--- a/sim/erc32/exec.c
+++ b/sim/erc32/exec.c
@@ -1,6 +1,6 @@
/* This file is part of SIS (SPARC instruction simulator)
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
Contributed by Jiri Gaisler, European Space Agency
This program is free software; you can redistribute it and/or modify
diff --git a/sim/erc32/float.c b/sim/erc32/float.c
index 069436c..99e24a6 100644
--- a/sim/erc32/float.c
+++ b/sim/erc32/float.c
@@ -1,6 +1,6 @@
/* This file is part of SIS (SPARC instruction simulator)
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
Contributed by Jiri Gaisler, European Space Agency
This program is free software; you can redistribute it and/or modify
diff --git a/sim/erc32/func.c b/sim/erc32/func.c
index 80f416d..0c4f75c 100644
--- a/sim/erc32/func.c
+++ b/sim/erc32/func.c
@@ -1,6 +1,6 @@
/* This file is part of SIS (SPARC instruction simulator)
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
Contributed by Jiri Gaisler, European Space Agency
This program is free software; you can redistribute it and/or modify
diff --git a/sim/erc32/help.c b/sim/erc32/help.c
index 909275c..0eb4ce7 100644
--- a/sim/erc32/help.c
+++ b/sim/erc32/help.c
@@ -1,6 +1,6 @@
/* This file is part of SIS (SPARC instruction simulator)
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
Contributed by Jiri Gaisler, European Space Agency
This program is free software; you can redistribute it and/or modify
diff --git a/sim/erc32/interf.c b/sim/erc32/interf.c
index 98b8a65..fb4edaa 100644
--- a/sim/erc32/interf.c
+++ b/sim/erc32/interf.c
@@ -1,6 +1,6 @@
/* This file is part of SIS (SPARC instruction simulator)
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
Contributed by Jiri Gaisler, European Space Agency
This program is free software; you can redistribute it and/or modify
diff --git a/sim/erc32/local.mk b/sim/erc32/local.mk
index 1e217a8..9ae4c8c 100644
--- a/sim/erc32/local.mk
+++ b/sim/erc32/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 1993-2024 Free Software Foundation, Inc.
+## Copyright (C) 1993-2025 Free Software Foundation, Inc.
## Written by Cygnus Support
## Modified by J.Gaisler ESA/ESTEC
##
diff --git a/sim/erc32/sis.c b/sim/erc32/sis.c
index 279427d..b53eca4 100644
--- a/sim/erc32/sis.c
+++ b/sim/erc32/sis.c
@@ -1,6 +1,6 @@
/* This file is part of SIS (SPARC instruction simulator)
- Copyright (C) 1995-2024 Free Software Foundation, Inc.
+ Copyright (C) 1995-2025 Free Software Foundation, Inc.
Contributed by Jiri Gaisler, European Space Agency
This program is free software; you can redistribute it and/or modify
diff --git a/sim/erc32/sis.h b/sim/erc32/sis.h
index 9044a08..6777f69 100644
--- a/sim/erc32/sis.h
+++ b/sim/erc32/sis.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995-2024 Free Software Foundation, Inc.
+/* Copyright (C) 1995-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/erc32/startsim b/sim/erc32/startsim
index 435c5b6..78dad84 100644
--- a/sim/erc32/startsim
+++ b/sim/erc32/startsim
@@ -1,4 +1,4 @@
-# Copyright (C) 1996-2024 Free Software Foundation, Inc.
+# Copyright (C) 1996-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/sim/example-synacor/example-synacor-sim.h b/sim/example-synacor/example-synacor-sim.h
index b7bd8ba..1845b40 100644
--- a/sim/example-synacor/example-synacor-sim.h
+++ b/sim/example-synacor/example-synacor-sim.h
@@ -1,6 +1,6 @@
/* Example synacor simulator.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Mike Frysinger.
This file is part of the GNU simulators.
diff --git a/sim/example-synacor/interp.c b/sim/example-synacor/interp.c
index 9f1746d..85bd8ec 100644
--- a/sim/example-synacor/interp.c
+++ b/sim/example-synacor/interp.c
@@ -1,6 +1,6 @@
/* Example synacor simulator.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Mike Frysinger.
This file is part of simulators.
diff --git a/sim/example-synacor/local.mk b/sim/example-synacor/local.mk
index 8eddab5..35d901f 100644
--- a/sim/example-synacor/local.mk
+++ b/sim/example-synacor/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 2005-2024 Free Software Foundation, Inc.
+## Copyright (C) 2005-2025 Free Software Foundation, Inc.
## Written by Mike Frysinger <vapier@gentoo.org>
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/example-synacor/sim-main.c b/sim/example-synacor/sim-main.c
index 6f0d14a..900c813 100644
--- a/sim/example-synacor/sim-main.c
+++ b/sim/example-synacor/sim-main.c
@@ -1,6 +1,6 @@
/* Example synacor simulator.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Mike Frysinger.
This file is part of simulators.
diff --git a/sim/example-synacor/sim-main.h b/sim/example-synacor/sim-main.h
index dd48054..3dd584b 100644
--- a/sim/example-synacor/sim-main.h
+++ b/sim/example-synacor/sim-main.h
@@ -1,6 +1,6 @@
/* Example synacor simulator.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Mike Frysinger.
This file is part of simulators.
diff --git a/sim/frv/acinclude.m4 b/sim/frv/acinclude.m4
index 24e0d13..e4cb603 100644
--- a/sim/frv/acinclude.m4
+++ b/sim/frv/acinclude.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/frv/arch.c b/sim/frv/arch.c
index 40d458f..996ce8b 100644
--- a/sim/frv/arch.c
+++ b/sim/frv/arch.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/frv/arch.h b/sim/frv/arch.h
index b445ea8..b7160a2 100644
--- a/sim/frv/arch.h
+++ b/sim/frv/arch.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/frv/cache.c b/sim/frv/cache.c
index ea496db..f39c00e 100644
--- a/sim/frv/cache.c
+++ b/sim/frv/cache.c
@@ -1,5 +1,5 @@
/* frv cache model.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of the GNU simulators.
diff --git a/sim/frv/cache.h b/sim/frv/cache.h
index d10802d..6e0def3 100644
--- a/sim/frv/cache.h
+++ b/sim/frv/cache.h
@@ -1,5 +1,5 @@
/* Cache support for the FRV simulator
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of the GNU Simulators.
diff --git a/sim/frv/cpu.c b/sim/frv/cpu.c
index f85c16d..8a7e779 100644
--- a/sim/frv/cpu.c
+++ b/sim/frv/cpu.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/frv/cpu.h b/sim/frv/cpu.h
index 86f5fc0..1e11b49 100644
--- a/sim/frv/cpu.h
+++ b/sim/frv/cpu.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/frv/cpuall.h b/sim/frv/cpuall.h
index 73e92c6..ace1ef6 100644
--- a/sim/frv/cpuall.h
+++ b/sim/frv/cpuall.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/frv/decode.c b/sim/frv/decode.c
index 97aa761..f58b227 100644
--- a/sim/frv/decode.c
+++ b/sim/frv/decode.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/frv/decode.h b/sim/frv/decode.h
index b100d64..80414d0 100644
--- a/sim/frv/decode.h
+++ b/sim/frv/decode.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/frv/frv-sim.h b/sim/frv/frv-sim.h
index e504abe..14c7ea5 100644
--- a/sim/frv/frv-sim.h
+++ b/sim/frv/frv-sim.h
@@ -1,5 +1,5 @@
/* collection of junk waiting time to sort out
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Red Hat
This file is part of the GNU Simulators.
diff --git a/sim/frv/frv.c b/sim/frv/frv.c
index 315957a..b3109c4 100644
--- a/sim/frv/frv.c
+++ b/sim/frv/frv.c
@@ -1,5 +1,5 @@
/* frv simulator support code
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of the GNU simulators.
diff --git a/sim/frv/interrupts.c b/sim/frv/interrupts.c
index 6f53822..0bec88c 100644
--- a/sim/frv/interrupts.c
+++ b/sim/frv/interrupts.c
@@ -1,5 +1,5 @@
/* frv exception and interrupt support
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of the GNU simulators.
diff --git a/sim/frv/local.mk b/sim/frv/local.mk
index 0c34afc..ef6cda3 100644
--- a/sim/frv/local.mk
+++ b/sim/frv/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 1998-2024 Free Software Foundation, Inc.
+## Copyright (C) 1998-2025 Free Software Foundation, Inc.
## Contributed by Red Hat.
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/frv/memory.c b/sim/frv/memory.c
index 7d3c2c5..1fcf5df 100644
--- a/sim/frv/memory.c
+++ b/sim/frv/memory.c
@@ -1,5 +1,5 @@
/* frv memory model.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Red Hat
This file is part of the GNU simulators.
diff --git a/sim/frv/mloop.in b/sim/frv/mloop.in
index 94b5263..693459f 100644
--- a/sim/frv/mloop.in
+++ b/sim/frv/mloop.in
@@ -1,5 +1,5 @@
# Simulator main loop for frv. -*- C -*-
-# Copyright (C) 1998-2024 Free Software Foundation, Inc.
+# Copyright (C) 1998-2025 Free Software Foundation, Inc.
# Contributed by Red Hat.
#
# This file is part of the GNU Simulators.
diff --git a/sim/frv/model.c b/sim/frv/model.c
index 7cd5466..f602d43 100644
--- a/sim/frv/model.c
+++ b/sim/frv/model.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/frv/options.c b/sim/frv/options.c
index a70e853..04087b5 100644
--- a/sim/frv/options.c
+++ b/sim/frv/options.c
@@ -1,5 +1,5 @@
/* FRV simulator memory option handling.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of GDB, the GNU debugger.
diff --git a/sim/frv/pipeline.c b/sim/frv/pipeline.c
index 1f83ac2..404d78f 100644
--- a/sim/frv/pipeline.c
+++ b/sim/frv/pipeline.c
@@ -1,5 +1,5 @@
/* frv vliw model.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of the GNU simulators.
diff --git a/sim/frv/profile-fr400.c b/sim/frv/profile-fr400.c
index 986d06e..d0c46bd 100644
--- a/sim/frv/profile-fr400.c
+++ b/sim/frv/profile-fr400.c
@@ -1,6 +1,6 @@
/* frv simulator fr400 dependent profiling code.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
Contributed by Red Hat
This file is part of the GNU simulators.
diff --git a/sim/frv/profile-fr400.h b/sim/frv/profile-fr400.h
index 322517a..83ec9d3 100644
--- a/sim/frv/profile-fr400.h
+++ b/sim/frv/profile-fr400.h
@@ -1,5 +1,5 @@
/* Profiling definitions for the fr400 model of the FRV simulator
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of the GNU Simulators.
diff --git a/sim/frv/profile-fr450.c b/sim/frv/profile-fr450.c
index 550df89..c807fb4 100644
--- a/sim/frv/profile-fr450.c
+++ b/sim/frv/profile-fr450.c
@@ -1,6 +1,6 @@
/* frv simulator fr450 dependent profiling code.
- Copyright (C) 2001-2024 Free Software Foundation, Inc.
+ Copyright (C) 2001-2025 Free Software Foundation, Inc.
Contributed by Red Hat
This file is part of the GNU simulators.
diff --git a/sim/frv/profile-fr500.c b/sim/frv/profile-fr500.c
index ca60061..4f33df8 100644
--- a/sim/frv/profile-fr500.c
+++ b/sim/frv/profile-fr500.c
@@ -1,6 +1,6 @@
/* frv simulator fr500 dependent profiling code.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Red Hat
This file is part of the GNU simulators.
diff --git a/sim/frv/profile-fr500.h b/sim/frv/profile-fr500.h
index 8b1bffb..d39765e 100644
--- a/sim/frv/profile-fr500.h
+++ b/sim/frv/profile-fr500.h
@@ -1,5 +1,5 @@
/* Profiling definitions for the fr500 model of the FRV simulator
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of the GNU Simulators.
diff --git a/sim/frv/profile-fr550.c b/sim/frv/profile-fr550.c
index 341cf55..63271e0 100644
--- a/sim/frv/profile-fr550.c
+++ b/sim/frv/profile-fr550.c
@@ -1,6 +1,6 @@
/* frv simulator fr550 dependent profiling code.
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
Contributed by Red Hat
This file is part of the GNU simulators.
diff --git a/sim/frv/profile-fr550.h b/sim/frv/profile-fr550.h
index 2cbf513..4d6c718 100644
--- a/sim/frv/profile-fr550.h
+++ b/sim/frv/profile-fr550.h
@@ -1,5 +1,5 @@
/* Profiling definitions for the fr550 model of the FRV simulator
- Copyright (C) 2003-2024 Free Software Foundation, Inc.
+ Copyright (C) 2003-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of the GNU Simulators.
diff --git a/sim/frv/profile.c b/sim/frv/profile.c
index 1f63549..8285f3b 100644
--- a/sim/frv/profile.c
+++ b/sim/frv/profile.c
@@ -1,6 +1,6 @@
/* frv simulator machine independent profiling code.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Red Hat
This file is part of the GNU simulators.
diff --git a/sim/frv/profile.h b/sim/frv/profile.h
index ba7be10..92ae0cf 100644
--- a/sim/frv/profile.h
+++ b/sim/frv/profile.h
@@ -1,5 +1,5 @@
/* Profiling definitions for the FRV simulator
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of the GNU Simulators.
diff --git a/sim/frv/registers.c b/sim/frv/registers.c
index f728769..a099381 100644
--- a/sim/frv/registers.c
+++ b/sim/frv/registers.c
@@ -1,5 +1,5 @@
/* frv simulator support code
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of the GNU simulators.
diff --git a/sim/frv/registers.h b/sim/frv/registers.h
index 590e1af..a9922dc 100644
--- a/sim/frv/registers.h
+++ b/sim/frv/registers.h
@@ -1,5 +1,5 @@
/* Register definitions for the FRV simulator
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of the GNU Simulators.
diff --git a/sim/frv/reset.c b/sim/frv/reset.c
index ce8d7bb..6c511ec 100644
--- a/sim/frv/reset.c
+++ b/sim/frv/reset.c
@@ -1,5 +1,5 @@
/* frv simulator support code
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of the GNU simulators.
diff --git a/sim/frv/sem.c b/sim/frv/sem.c
index 55e6d7b..eb00063 100644
--- a/sim/frv/sem.c
+++ b/sim/frv/sem.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/frv/sim-if.c b/sim/frv/sim-if.c
index 850c0af..a3f710c 100644
--- a/sim/frv/sim-if.c
+++ b/sim/frv/sim-if.c
@@ -1,5 +1,5 @@
/* Main simulator entry points specific to the FRV.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of the GNU simulators.
diff --git a/sim/frv/sim-main.h b/sim/frv/sim-main.h
index b50d4ab..bf5c5f8 100644
--- a/sim/frv/sim-main.h
+++ b/sim/frv/sim-main.h
@@ -1,5 +1,5 @@
/* frv simulator support code
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of the GNU simulators.
diff --git a/sim/frv/traps.c b/sim/frv/traps.c
index 006550d..08faea9 100644
--- a/sim/frv/traps.c
+++ b/sim/frv/traps.c
@@ -1,5 +1,5 @@
/* frv trap support
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
This file is part of the GNU simulators.
diff --git a/sim/ft32/ft32-sim.h b/sim/ft32/ft32-sim.h
index 1bacd2e..6b1c9ca 100644
--- a/sim/ft32/ft32-sim.h
+++ b/sim/ft32/ft32-sim.h
@@ -1,6 +1,6 @@
/* Simulator for the FT32 processor
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributed by FTDI <support@ftdichip.com>
This file is part of simulators.
diff --git a/sim/ft32/interp.c b/sim/ft32/interp.c
index d8f955d..aea77b3 100644
--- a/sim/ft32/interp.c
+++ b/sim/ft32/interp.c
@@ -1,6 +1,6 @@
/* Simulator for the FT32 processor
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributed by FTDI <support@ftdichip.com>
This file is part of simulators.
diff --git a/sim/ft32/local.mk b/sim/ft32/local.mk
index 8edf107..b54f94b 100644
--- a/sim/ft32/local.mk
+++ b/sim/ft32/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 2008-2024 Free Software Foundation, Inc.
+## Copyright (C) 2008-2025 Free Software Foundation, Inc.
## Written by FTDI
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/ft32/sim-main.h b/sim/ft32/sim-main.h
index 5cb5ba8..ef3c27c 100644
--- a/sim/ft32/sim-main.h
+++ b/sim/ft32/sim-main.h
@@ -1,6 +1,6 @@
/* Simulator for FTDI FT32 processor.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
Contributed by FTDI <support@ftdichip.com>
This file is part of simulators.
diff --git a/sim/h8300/local.mk b/sim/h8300/local.mk
index e90d3e0..7c35a82 100644
--- a/sim/h8300/local.mk
+++ b/sim/h8300/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 1990-2024 Free Software Foundation, Inc.
+## Copyright (C) 1990-2025 Free Software Foundation, Inc.
## Written by Cygnus Support.
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/igen/compare_igen_models b/sim/igen/compare_igen_models
index ff181691..6ec9b74 100755
--- a/sim/igen/compare_igen_models
+++ b/sim/igen/compare_igen_models
@@ -1,7 +1,7 @@
#!/bin/sh
# Script to compare functions and instructions used by different igen models.
-# Copyright (C) 2002-2024 Free Software Foundation, Inc.
+# Copyright (C) 2002-2025 Free Software Foundation, Inc.
# Contributed by Chris Demetriou of Broadcom Corporation (SiByte).
#
# This file is part of GDB, the GNU debugger.
diff --git a/sim/igen/filter.c b/sim/igen/filter.c
index 3cb93d8..54c404f 100644
--- a/sim/igen/filter.c
+++ b/sim/igen/filter.c
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/filter.h b/sim/igen/filter.h
index a96230d..d937efb 100644
--- a/sim/igen/filter.h
+++ b/sim/igen/filter.h
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/filter_host.c b/sim/igen/filter_host.c
index 58b98c8..e75c551 100644
--- a/sim/igen/filter_host.c
+++ b/sim/igen/filter_host.c
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/filter_host.h b/sim/igen/filter_host.h
index 43d3a75..2cb9558 100644
--- a/sim/igen/filter_host.h
+++ b/sim/igen/filter_host.h
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/gen-engine.c b/sim/igen/gen-engine.c
index 2533536..bfb5785 100644
--- a/sim/igen/gen-engine.c
+++ b/sim/igen/gen-engine.c
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/gen-engine.h b/sim/igen/gen-engine.h
index f8301a2..366f2ea 100644
--- a/sim/igen/gen-engine.h
+++ b/sim/igen/gen-engine.h
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/gen-icache.c b/sim/igen/gen-icache.c
index 641c20e..b8b0541 100644
--- a/sim/igen/gen-icache.c
+++ b/sim/igen/gen-icache.c
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/gen-icache.h b/sim/igen/gen-icache.h
index 9418e97..73c0001 100644
--- a/sim/igen/gen-icache.h
+++ b/sim/igen/gen-icache.h
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/gen-idecode.c b/sim/igen/gen-idecode.c
index e9038a8..7b80d4f 100644
--- a/sim/igen/gen-idecode.c
+++ b/sim/igen/gen-idecode.c
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/gen-idecode.h b/sim/igen/gen-idecode.h
index c0dc7fa..c1cd7af 100644
--- a/sim/igen/gen-idecode.h
+++ b/sim/igen/gen-idecode.h
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/gen-itable.c b/sim/igen/gen-itable.c
index 8da56f1..faea73d 100644
--- a/sim/igen/gen-itable.c
+++ b/sim/igen/gen-itable.c
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/gen-itable.h b/sim/igen/gen-itable.h
index 6e82ca5..90e9ee5 100644
--- a/sim/igen/gen-itable.h
+++ b/sim/igen/gen-itable.h
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/gen-model.c b/sim/igen/gen-model.c
index 7978878..8ba260e 100644
--- a/sim/igen/gen-model.c
+++ b/sim/igen/gen-model.c
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/gen-model.h b/sim/igen/gen-model.h
index 784ba4b..3ed834b 100644
--- a/sim/igen/gen-model.h
+++ b/sim/igen/gen-model.h
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/gen-semantics.c b/sim/igen/gen-semantics.c
index fed0914..fe5cb18 100644
--- a/sim/igen/gen-semantics.c
+++ b/sim/igen/gen-semantics.c
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/gen-semantics.h b/sim/igen/gen-semantics.h
index 7844f6a..2ea954c 100644
--- a/sim/igen/gen-semantics.h
+++ b/sim/igen/gen-semantics.h
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/gen-support.c b/sim/igen/gen-support.c
index 35e8ef0..a7f34bd 100644
--- a/sim/igen/gen-support.c
+++ b/sim/igen/gen-support.c
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/gen-support.h b/sim/igen/gen-support.h
index f803a5f..03c1b31 100644
--- a/sim/igen/gen-support.h
+++ b/sim/igen/gen-support.h
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/gen.c b/sim/igen/gen.c
index bf57162..9e75d36 100644
--- a/sim/igen/gen.c
+++ b/sim/igen/gen.c
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/gen.h b/sim/igen/gen.h
index ab64faa..5d5fede 100644
--- a/sim/igen/gen.h
+++ b/sim/igen/gen.h
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/igen.c b/sim/igen/igen.c
index 60314a6..eb848da 100644
--- a/sim/igen/igen.c
+++ b/sim/igen/igen.c
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/igen.h b/sim/igen/igen.h
index 6e68bfb..3869966 100644
--- a/sim/igen/igen.h
+++ b/sim/igen/igen.h
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/ld-cache.c b/sim/igen/ld-cache.c
index a337dea5..357cf43 100644
--- a/sim/igen/ld-cache.c
+++ b/sim/igen/ld-cache.c
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/ld-cache.h b/sim/igen/ld-cache.h
index 23d155e..3b110f0 100644
--- a/sim/igen/ld-cache.h
+++ b/sim/igen/ld-cache.h
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/ld-decode.c b/sim/igen/ld-decode.c
index 368138e..632aa89 100644
--- a/sim/igen/ld-decode.c
+++ b/sim/igen/ld-decode.c
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/ld-decode.h b/sim/igen/ld-decode.h
index 562628a..6dd283c 100644
--- a/sim/igen/ld-decode.h
+++ b/sim/igen/ld-decode.h
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/ld-insn.c b/sim/igen/ld-insn.c
index baa8e12..02b4527 100644
--- a/sim/igen/ld-insn.c
+++ b/sim/igen/ld-insn.c
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/ld-insn.h b/sim/igen/ld-insn.h
index 38743fe..537817d 100644
--- a/sim/igen/ld-insn.h
+++ b/sim/igen/ld-insn.h
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/lf.c b/sim/igen/lf.c
index bf6d3e4..e58072a 100644
--- a/sim/igen/lf.c
+++ b/sim/igen/lf.c
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/lf.h b/sim/igen/lf.h
index eac9fa4..4e21825 100644
--- a/sim/igen/lf.h
+++ b/sim/igen/lf.h
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/local.mk b/sim/igen/local.mk
index 38df939..52d642e 100644
--- a/sim/igen/local.mk
+++ b/sim/igen/local.mk
@@ -1,6 +1,6 @@
## The IGEN simulator generator for GDB, the GNU Debugger.
##
-## Copyright 2002-2024 Free Software Foundation, Inc.
+## Copyright 2002-2025 Free Software Foundation, Inc.
##
## Contributed by Andrew Cagney.
##
diff --git a/sim/igen/misc.c b/sim/igen/misc.c
index fd851aa..31ff9db 100644
--- a/sim/igen/misc.c
+++ b/sim/igen/misc.c
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/misc.h b/sim/igen/misc.h
index 5bd32b0..1ec9834 100644
--- a/sim/igen/misc.h
+++ b/sim/igen/misc.h
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/table.c b/sim/igen/table.c
index 1fe1457..7b77d7e 100644
--- a/sim/igen/table.c
+++ b/sim/igen/table.c
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/igen/table.h b/sim/igen/table.h
index 7239412..1d31a93 100644
--- a/sim/igen/table.h
+++ b/sim/igen/table.h
@@ -1,6 +1,6 @@
/* The IGEN simulator generator for GDB, the GNU Debugger.
- Copyright 2002-2024 Free Software Foundation, Inc.
+ Copyright 2002-2025 Free Software Foundation, Inc.
Contributed by Andrew Cagney.
diff --git a/sim/iq2000/arch.c b/sim/iq2000/arch.c
index ab5ea83..0c9a8d4 100644
--- a/sim/iq2000/arch.c
+++ b/sim/iq2000/arch.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/iq2000/arch.h b/sim/iq2000/arch.h
index 59d1e34..4b886d1 100644
--- a/sim/iq2000/arch.h
+++ b/sim/iq2000/arch.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/iq2000/cpu.c b/sim/iq2000/cpu.c
index 0ec7a12..1a919e4 100644
--- a/sim/iq2000/cpu.c
+++ b/sim/iq2000/cpu.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/iq2000/cpu.h b/sim/iq2000/cpu.h
index 9f93c10..416de54 100644
--- a/sim/iq2000/cpu.h
+++ b/sim/iq2000/cpu.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/iq2000/cpuall.h b/sim/iq2000/cpuall.h
index f2fb9ec..fd8a974 100644
--- a/sim/iq2000/cpuall.h
+++ b/sim/iq2000/cpuall.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/iq2000/decode.c b/sim/iq2000/decode.c
index e31add6..3f5e7d2 100644
--- a/sim/iq2000/decode.c
+++ b/sim/iq2000/decode.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/iq2000/decode.h b/sim/iq2000/decode.h
index eb1aa66..ad043c9 100644
--- a/sim/iq2000/decode.h
+++ b/sim/iq2000/decode.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/iq2000/iq2000.c b/sim/iq2000/iq2000.c
index df3d1a7..6cf5556 100644
--- a/sim/iq2000/iq2000.c
+++ b/sim/iq2000/iq2000.c
@@ -1,5 +1,5 @@
/* IQ2000 simulator support code
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of the GNU simulators.
diff --git a/sim/iq2000/local.mk b/sim/iq2000/local.mk
index ae0c0aa..11cdf81 100644
--- a/sim/iq2000/local.mk
+++ b/sim/iq2000/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 1998-2024 Free Software Foundation, Inc.
+## Copyright (C) 1998-2025 Free Software Foundation, Inc.
## Contributed by Red Hat.
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/iq2000/mloop.in b/sim/iq2000/mloop.in
index ec11607..04a31ec 100644
--- a/sim/iq2000/mloop.in
+++ b/sim/iq2000/mloop.in
@@ -1,5 +1,5 @@
# Simulator main loop for IQ2000. -*- C -*-
-# Copyright (C) 1998-2024 Free Software Foundation, Inc.
+# Copyright (C) 1998-2025 Free Software Foundation, Inc.
# Contributed by Cygnus Solutions.
#
# This file is part of the GNU Simulators.
diff --git a/sim/iq2000/model.c b/sim/iq2000/model.c
index ef99c83..3a4f274 100644
--- a/sim/iq2000/model.c
+++ b/sim/iq2000/model.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/iq2000/sem-switch.c b/sim/iq2000/sem-switch.c
index 164392a..8fb571b 100644
--- a/sim/iq2000/sem-switch.c
+++ b/sim/iq2000/sem-switch.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/iq2000/sem.c b/sim/iq2000/sem.c
index 99858eb..c230897 100644
--- a/sim/iq2000/sem.c
+++ b/sim/iq2000/sem.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/iq2000/sim-if.c b/sim/iq2000/sim-if.c
index 93339be..fe9a8ae 100644
--- a/sim/iq2000/sim-if.c
+++ b/sim/iq2000/sim-if.c
@@ -1,5 +1,5 @@
/* Main simulator entry points specific to the IQ2000.
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of the GNU simulators.
diff --git a/sim/lm32/arch.c b/sim/lm32/arch.c
index 6660c0d..762e4c8 100644
--- a/sim/lm32/arch.c
+++ b/sim/lm32/arch.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/lm32/arch.h b/sim/lm32/arch.h
index 913dbf9..b4d9cd3 100644
--- a/sim/lm32/arch.h
+++ b/sim/lm32/arch.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/lm32/cpu.c b/sim/lm32/cpu.c
index ea96ed4..bc2c77d 100644
--- a/sim/lm32/cpu.c
+++ b/sim/lm32/cpu.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/lm32/cpu.h b/sim/lm32/cpu.h
index 89079cd..6447434 100644
--- a/sim/lm32/cpu.h
+++ b/sim/lm32/cpu.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/lm32/cpuall.h b/sim/lm32/cpuall.h
index 384eae6..0c2faaf 100644
--- a/sim/lm32/cpuall.h
+++ b/sim/lm32/cpuall.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/lm32/decode.c b/sim/lm32/decode.c
index e1736f9..ad69ec10 100644
--- a/sim/lm32/decode.c
+++ b/sim/lm32/decode.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/lm32/decode.h b/sim/lm32/decode.h
index 82b5853..49ceb68 100644
--- a/sim/lm32/decode.h
+++ b/sim/lm32/decode.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/lm32/dv-lm32cpu.c b/sim/lm32/dv-lm32cpu.c
index 3217941..f1b2d75 100644
--- a/sim/lm32/dv-lm32cpu.c
+++ b/sim/lm32/dv-lm32cpu.c
@@ -1,7 +1,7 @@
/* Lattice Mico32 CPU model.
Contributed by Jon Beniston <jon@beniston.com>
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/sim/lm32/dv-lm32timer.c b/sim/lm32/dv-lm32timer.c
index 982a946..2616fc2 100644
--- a/sim/lm32/dv-lm32timer.c
+++ b/sim/lm32/dv-lm32timer.c
@@ -1,7 +1,7 @@
/* Lattice Mico32 timer model.
Contributed by Jon Beniston <jon@beniston.com>
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/sim/lm32/dv-lm32uart.c b/sim/lm32/dv-lm32uart.c
index 2d2065f..e3ec47e 100644
--- a/sim/lm32/dv-lm32uart.c
+++ b/sim/lm32/dv-lm32uart.c
@@ -1,7 +1,7 @@
/* Lattice Mico32 UART model.
Contributed by Jon Beniston <jon@beniston.com>
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/sim/lm32/lm32-sim.h b/sim/lm32/lm32-sim.h
index 3ee633c..afe16c9 100644
--- a/sim/lm32/lm32-sim.h
+++ b/sim/lm32/lm32-sim.h
@@ -1,6 +1,6 @@
/* Contributed by Jon Beniston <jon@beniston.com>
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/sim/lm32/lm32.c b/sim/lm32/lm32.c
index e3cbd59..ddfd926 100644
--- a/sim/lm32/lm32.c
+++ b/sim/lm32/lm32.c
@@ -1,7 +1,7 @@
/* Lattice Mico32 simulator support code.
Contributed by Jon Beniston <jon@beniston.com>
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/sim/lm32/local.mk b/sim/lm32/local.mk
index 306a295..53e8e62 100644
--- a/sim/lm32/local.mk
+++ b/sim/lm32/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 2009-2024 Free Software Foundation, Inc.
+## Copyright (C) 2009-2025 Free Software Foundation, Inc.
## Contributed by Jon Beniston <jon@beniston.com>
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/lm32/model.c b/sim/lm32/model.c
index 75c3281..ae4076a 100644
--- a/sim/lm32/model.c
+++ b/sim/lm32/model.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/lm32/sem-switch.c b/sim/lm32/sem-switch.c
index d2f1d1c..1e6ede8 100644
--- a/sim/lm32/sem-switch.c
+++ b/sim/lm32/sem-switch.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/lm32/sem.c b/sim/lm32/sem.c
index 9c0be09..569e489 100644
--- a/sim/lm32/sem.c
+++ b/sim/lm32/sem.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/lm32/sim-if.c b/sim/lm32/sim-if.c
index 4e15ef8..6c0fe39 100644
--- a/sim/lm32/sim-if.c
+++ b/sim/lm32/sim-if.c
@@ -1,7 +1,7 @@
/* Main simulator entry points specific to Lattice Mico32.
Contributed by Jon Beniston <jon@beniston.com>
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/sim/lm32/sim-main.h b/sim/lm32/sim-main.h
index 647f87b..88b2adb 100644
--- a/sim/lm32/sim-main.h
+++ b/sim/lm32/sim-main.h
@@ -1,7 +1,7 @@
/* Lattice Mico32 simulator support code
Contributed by Jon Beniston <jon@beniston.com>
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/sim/lm32/traps.c b/sim/lm32/traps.c
index cb8af11..455d04e 100644
--- a/sim/lm32/traps.c
+++ b/sim/lm32/traps.c
@@ -1,7 +1,7 @@
/* Lattice Mico32 exception and system call support.
Contributed by Jon Beniston <jon@beniston.com>
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/sim/lm32/user.c b/sim/lm32/user.c
index b8efa15..653dbf2 100644
--- a/sim/lm32/user.c
+++ b/sim/lm32/user.c
@@ -1,7 +1,7 @@
/* Semantics for user defined instructions on the Lattice Mico32.
Contributed by Jon Beniston <jon@beniston.com>
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB.
diff --git a/sim/m32c/cpu.h b/sim/m32c/cpu.h
index 703917a..29a29d6 100644
--- a/sim/m32c/cpu.h
+++ b/sim/m32c/cpu.h
@@ -1,6 +1,6 @@
/* cpu.h --- declarations for the M32C core.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32c/gdb-if.c b/sim/m32c/gdb-if.c
index bf8424e..9e2f5a5 100644
--- a/sim/m32c/gdb-if.c
+++ b/sim/m32c/gdb-if.c
@@ -1,6 +1,6 @@
/* gdb.c --- sim interface to GDB.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32c/int.c b/sim/m32c/int.c
index 2db989e..8f4c6f8 100644
--- a/sim/m32c/int.c
+++ b/sim/m32c/int.c
@@ -1,6 +1,6 @@
/* int.c --- M32C interrupt handling.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32c/int.h b/sim/m32c/int.h
index a4142df..9d2d473 100644
--- a/sim/m32c/int.h
+++ b/sim/m32c/int.h
@@ -1,6 +1,6 @@
/* int.h --- interface to M32C interrupt handling.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32c/load.c b/sim/m32c/load.c
index c0d3509..0c4cb9e 100644
--- a/sim/m32c/load.c
+++ b/sim/m32c/load.c
@@ -1,6 +1,6 @@
/* load.c --- loading object files into the M32C simulator.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32c/load.h b/sim/m32c/load.h
index 2ca6c5a..c5400a5 100644
--- a/sim/m32c/load.h
+++ b/sim/m32c/load.h
@@ -1,6 +1,6 @@
/* load.h --- interface to loading object files into the M32C simulator.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32c/local.mk b/sim/m32c/local.mk
index 3c961ba..83d6714 100644
--- a/sim/m32c/local.mk
+++ b/sim/m32c/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 2005-2024 Free Software Foundation, Inc.
+## Copyright (C) 2005-2025 Free Software Foundation, Inc.
## Contributed by Red Hat, Inc.
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/m32c/m32c.opc b/sim/m32c/m32c.opc
index 1bd2d4d..fabecd7 100644
--- a/sim/m32c/m32c.opc
+++ b/sim/m32c/m32c.opc
@@ -1,6 +1,6 @@
/* m32c.opc --- semantics for m32c opcodes. -*- mode: c -*-
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32c/main.c b/sim/m32c/main.c
index b6cb1ff..c95bbc2 100644
--- a/sim/m32c/main.c
+++ b/sim/m32c/main.c
@@ -1,6 +1,6 @@
/* main.c --- main function for stand-alone M32C simulator.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32c/mem.c b/sim/m32c/mem.c
index 2c84d49..1411317 100644
--- a/sim/m32c/mem.c
+++ b/sim/m32c/mem.c
@@ -1,6 +1,6 @@
/* mem.c --- memory for M32C simulator.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32c/mem.h b/sim/m32c/mem.h
index fc8890a..0ac1cbc 100644
--- a/sim/m32c/mem.h
+++ b/sim/m32c/mem.h
@@ -1,6 +1,6 @@
/* mem.h --- interface to memory for M32C simulator.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32c/misc.c b/sim/m32c/misc.c
index 0f7a5ae..88919ed 100644
--- a/sim/m32c/misc.c
+++ b/sim/m32c/misc.c
@@ -1,6 +1,6 @@
/* misc.c --- miscellaneous utility functions for M32C simulator.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32c/misc.h b/sim/m32c/misc.h
index 451a759..b742d43 100644
--- a/sim/m32c/misc.h
+++ b/sim/m32c/misc.h
@@ -1,6 +1,6 @@
/* misc.h --- interface to miscellaneous utility functions for M32C simulator.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32c/opc2c.c b/sim/m32c/opc2c.c
index 9b24f5f..670d221 100644
--- a/sim/m32c/opc2c.c
+++ b/sim/m32c/opc2c.c
@@ -1,6 +1,6 @@
/* opc2c.c --- generate C simulator code from from .opc file
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32c/r8c.opc b/sim/m32c/r8c.opc
index 50b211b..e04d18e 100644
--- a/sim/m32c/r8c.opc
+++ b/sim/m32c/r8c.opc
@@ -1,6 +1,6 @@
/* r8c.opc --- semantics for r8c opcodes. -*- mode: c -*-
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32c/reg.c b/sim/m32c/reg.c
index a5961de..1a42394 100644
--- a/sim/m32c/reg.c
+++ b/sim/m32c/reg.c
@@ -1,6 +1,6 @@
/* reg.c --- register set model for M32C simulator.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32c/srcdest.c b/sim/m32c/srcdest.c
index 40f89c0..0c0b99c 100644
--- a/sim/m32c/srcdest.c
+++ b/sim/m32c/srcdest.c
@@ -1,6 +1,6 @@
/* srcdest.c --- decoding M32C addressing modes.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32c/syscalls.c b/sim/m32c/syscalls.c
index a8f7726..57bbe40 100644
--- a/sim/m32c/syscalls.c
+++ b/sim/m32c/syscalls.c
@@ -1,6 +1,6 @@
/* syscalls.c --- implement system calls for the M32C simulator.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32c/syscalls.h b/sim/m32c/syscalls.h
index 4032ece..10fb8a4 100644
--- a/sim/m32c/syscalls.h
+++ b/sim/m32c/syscalls.h
@@ -1,6 +1,6 @@
/* syscalls.h --- interface to syscalls for the M32C sim.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32c/trace.c b/sim/m32c/trace.c
index b7725e4..d0c6dc0 100644
--- a/sim/m32c/trace.c
+++ b/sim/m32c/trace.c
@@ -1,6 +1,6 @@
/* trace.c --- tracing output for the M32C simulator.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32c/trace.h b/sim/m32c/trace.h
index a4c7388..51f54de 100644
--- a/sim/m32c/trace.h
+++ b/sim/m32c/trace.h
@@ -1,6 +1,6 @@
/* trace.h --- interface to tracing output for the M32C simulator.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/arch.c b/sim/m32r/arch.c
index f56670f..3bf82c0 100644
--- a/sim/m32r/arch.c
+++ b/sim/m32r/arch.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/arch.h b/sim/m32r/arch.h
index 72ff47a..bd64fc4 100644
--- a/sim/m32r/arch.h
+++ b/sim/m32r/arch.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/cpu.c b/sim/m32r/cpu.c
index 8605cf7..8e9ecba 100644
--- a/sim/m32r/cpu.c
+++ b/sim/m32r/cpu.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/cpu.h b/sim/m32r/cpu.h
index b5ac26c..7b60b9b 100644
--- a/sim/m32r/cpu.h
+++ b/sim/m32r/cpu.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/cpu2.c b/sim/m32r/cpu2.c
index f2e3d87..177a021 100644
--- a/sim/m32r/cpu2.c
+++ b/sim/m32r/cpu2.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/cpu2.h b/sim/m32r/cpu2.h
index 7d1ad57..226efb4 100644
--- a/sim/m32r/cpu2.h
+++ b/sim/m32r/cpu2.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/cpuall.h b/sim/m32r/cpuall.h
index e462910..9192f59 100644
--- a/sim/m32r/cpuall.h
+++ b/sim/m32r/cpuall.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/cpux.c b/sim/m32r/cpux.c
index 4e4dcb7..1ed16ae 100644
--- a/sim/m32r/cpux.c
+++ b/sim/m32r/cpux.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/cpux.h b/sim/m32r/cpux.h
index 8ffc7cd..22cc7f4 100644
--- a/sim/m32r/cpux.h
+++ b/sim/m32r/cpux.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/decode.c b/sim/m32r/decode.c
index f301d3e..996635c 100644
--- a/sim/m32r/decode.c
+++ b/sim/m32r/decode.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/decode.h b/sim/m32r/decode.h
index 86ebe5e..ab4fe2c 100644
--- a/sim/m32r/decode.h
+++ b/sim/m32r/decode.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/decode2.c b/sim/m32r/decode2.c
index ca0f18a..b68c62b 100644
--- a/sim/m32r/decode2.c
+++ b/sim/m32r/decode2.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/decode2.h b/sim/m32r/decode2.h
index 5675d95..538d14b 100644
--- a/sim/m32r/decode2.h
+++ b/sim/m32r/decode2.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/decodex.c b/sim/m32r/decodex.c
index e7cfa48..c6a2859 100644
--- a/sim/m32r/decodex.c
+++ b/sim/m32r/decodex.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/decodex.h b/sim/m32r/decodex.h
index 5caa00e..64712a5 100644
--- a/sim/m32r/decodex.h
+++ b/sim/m32r/decodex.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/dv-m32r_cache.c b/sim/m32r/dv-m32r_cache.c
index 93b3b1a..57c9500 100644
--- a/sim/m32r/dv-m32r_cache.c
+++ b/sim/m32r/dv-m32r_cache.c
@@ -1,6 +1,6 @@
/* Handle cache related addresses.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions and Mike Frysinger.
This file is part of the GNU simulators.
diff --git a/sim/m32r/dv-m32r_cache.h b/sim/m32r/dv-m32r_cache.h
index e9b7c87..1be087a 100644
--- a/sim/m32r/dv-m32r_cache.h
+++ b/sim/m32r/dv-m32r_cache.h
@@ -1,6 +1,6 @@
/* Handle cache related addresses.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions and Mike Frysinger.
This file is part of the GNU simulators.
diff --git a/sim/m32r/dv-m32r_uart.c b/sim/m32r/dv-m32r_uart.c
index f173bca..e5d287b 100644
--- a/sim/m32r/dv-m32r_uart.c
+++ b/sim/m32r/dv-m32r_uart.c
@@ -1,6 +1,6 @@
/* UART model.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions and Mike Frysinger.
This file is part of simulators.
diff --git a/sim/m32r/dv-m32r_uart.h b/sim/m32r/dv-m32r_uart.h
index 774bbc2..ddae53d 100644
--- a/sim/m32r/dv-m32r_uart.h
+++ b/sim/m32r/dv-m32r_uart.h
@@ -1,6 +1,6 @@
/* UART model.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions and Mike Frysinger.
This file is part of simulators.
diff --git a/sim/m32r/local.mk b/sim/m32r/local.mk
index 4318255..629f285 100644
--- a/sim/m32r/local.mk
+++ b/sim/m32r/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 1996-2024 Free Software Foundation, Inc.
+## Copyright (C) 1996-2025 Free Software Foundation, Inc.
## Contributed by Cygnus Support.
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/m32r/m32r-sim.h b/sim/m32r/m32r-sim.h
index cec7ff1..c743965 100644
--- a/sim/m32r/m32r-sim.h
+++ b/sim/m32r/m32r-sim.h
@@ -1,5 +1,5 @@
/* collection of junk waiting time to sort out
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/m32r/m32r.c b/sim/m32r/m32r.c
index bc2b189..c2ed94e 100644
--- a/sim/m32r/m32r.c
+++ b/sim/m32r/m32r.c
@@ -1,5 +1,5 @@
/* m32r simulator support code
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/m32r/m32r2.c b/sim/m32r/m32r2.c
index 7a0d4da..011a369 100644
--- a/sim/m32r/m32r2.c
+++ b/sim/m32r/m32r2.c
@@ -1,5 +1,5 @@
/* m32r2 simulator support code
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/m32r/m32rx.c b/sim/m32r/m32rx.c
index 2a369f6..c90aaef 100644
--- a/sim/m32r/m32rx.c
+++ b/sim/m32r/m32rx.c
@@ -1,5 +1,5 @@
/* m32rx simulator support code
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/m32r/mloop.in b/sim/m32r/mloop.in
index 01fa095..bb56c5f 100644
--- a/sim/m32r/mloop.in
+++ b/sim/m32r/mloop.in
@@ -1,6 +1,6 @@
# Simulator main loop for m32r. -*- C -*-
#
-# Copyright (C) 1996-2024 Free Software Foundation, Inc.
+# Copyright (C) 1996-2025 Free Software Foundation, Inc.
#
# This file is part of the GNU Simulators.
#
diff --git a/sim/m32r/mloop2.in b/sim/m32r/mloop2.in
index b363b85..c26debe 100644
--- a/sim/m32r/mloop2.in
+++ b/sim/m32r/mloop2.in
@@ -1,6 +1,6 @@
# Simulator main loop for m32r2. -*- C -*-
#
-# Copyright 1996-2024 Free Software Foundation, Inc.
+# Copyright 1996-2025 Free Software Foundation, Inc.
#
# This file is part of GDB, the GNU debugger.
#
diff --git a/sim/m32r/mloopx.in b/sim/m32r/mloopx.in
index 562263e..645fa23 100644
--- a/sim/m32r/mloopx.in
+++ b/sim/m32r/mloopx.in
@@ -1,6 +1,6 @@
# Simulator main loop for m32rx. -*- C -*-
#
-# Copyright 1996-2024 Free Software Foundation, Inc.
+# Copyright 1996-2025 Free Software Foundation, Inc.
#
# This file is part of the GNU Simulators.
#
diff --git a/sim/m32r/model.c b/sim/m32r/model.c
index c1e2c17..7a4dab6 100644
--- a/sim/m32r/model.c
+++ b/sim/m32r/model.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/model2.c b/sim/m32r/model2.c
index f691170..36101eb 100644
--- a/sim/m32r/model2.c
+++ b/sim/m32r/model2.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/modelx.c b/sim/m32r/modelx.c
index 998988e..533c6b0 100644
--- a/sim/m32r/modelx.c
+++ b/sim/m32r/modelx.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/sem-switch.c b/sim/m32r/sem-switch.c
index 8afc0eb..ca78500 100644
--- a/sim/m32r/sem-switch.c
+++ b/sim/m32r/sem-switch.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/sem.c b/sim/m32r/sem.c
index 7660237..5d6e356 100644
--- a/sim/m32r/sem.c
+++ b/sim/m32r/sem.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/sem2-switch.c b/sim/m32r/sem2-switch.c
index 99c440a..b84c746 100644
--- a/sim/m32r/sem2-switch.c
+++ b/sim/m32r/sem2-switch.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/semx-switch.c b/sim/m32r/semx-switch.c
index 09d7779..fb1c943 100644
--- a/sim/m32r/semx-switch.c
+++ b/sim/m32r/semx-switch.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/m32r/sim-if.c b/sim/m32r/sim-if.c
index 3c08850..e5a173a 100644
--- a/sim/m32r/sim-if.c
+++ b/sim/m32r/sim-if.c
@@ -1,5 +1,5 @@
/* Main simulator entry points specific to the M32R.
- Copyright (C) 1996-2024 Free Software Foundation, Inc.
+ Copyright (C) 1996-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/m32r/traps.c b/sim/m32r/traps.c
index fe0f948..adfc1c0 100644
--- a/sim/m32r/traps.c
+++ b/sim/m32r/traps.c
@@ -1,5 +1,5 @@
/* m32r exception, interrupt, and trap (EIT) support
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions & Renesas.
This file is part of GDB, the GNU debugger.
diff --git a/sim/m4/sim_ac_option_alignment.m4 b/sim/m4/sim_ac_option_alignment.m4
index 683de96..b28de36 100644
--- a/sim/m4/sim_ac_option_alignment.m4
+++ b/sim/m4/sim_ac_option_alignment.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/m4/sim_ac_option_assert.m4 b/sim/m4/sim_ac_option_assert.m4
index 650de5c..dcad5d9 100644
--- a/sim/m4/sim_ac_option_assert.m4
+++ b/sim/m4/sim_ac_option_assert.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/m4/sim_ac_option_bitsize.m4 b/sim/m4/sim_ac_option_bitsize.m4
index e15275f..b1a6bd1 100644
--- a/sim/m4/sim_ac_option_bitsize.m4
+++ b/sim/m4/sim_ac_option_bitsize.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/m4/sim_ac_option_cgen_maint.m4 b/sim/m4/sim_ac_option_cgen_maint.m4
index f2f4b48..1625ec4 100644
--- a/sim/m4/sim_ac_option_cgen_maint.m4
+++ b/sim/m4/sim_ac_option_cgen_maint.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/m4/sim_ac_option_debug.m4 b/sim/m4/sim_ac_option_debug.m4
index c678c19..a3be4e5 100644
--- a/sim/m4/sim_ac_option_debug.m4
+++ b/sim/m4/sim_ac_option_debug.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/m4/sim_ac_option_endian.m4 b/sim/m4/sim_ac_option_endian.m4
index 5763c00..1907b05 100644
--- a/sim/m4/sim_ac_option_endian.m4
+++ b/sim/m4/sim_ac_option_endian.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/m4/sim_ac_option_environment.m4 b/sim/m4/sim_ac_option_environment.m4
index 01b21cf..a24e039 100644
--- a/sim/m4/sim_ac_option_environment.m4
+++ b/sim/m4/sim_ac_option_environment.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/m4/sim_ac_option_float.m4 b/sim/m4/sim_ac_option_float.m4
index 051ea3c..360d133 100644
--- a/sim/m4/sim_ac_option_float.m4
+++ b/sim/m4/sim_ac_option_float.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/m4/sim_ac_option_hardware.m4 b/sim/m4/sim_ac_option_hardware.m4
index 3df779c..9fd0e3a 100644
--- a/sim/m4/sim_ac_option_hardware.m4
+++ b/sim/m4/sim_ac_option_hardware.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/m4/sim_ac_option_inline.m4 b/sim/m4/sim_ac_option_inline.m4
index 2a4796b..952fa03 100644
--- a/sim/m4/sim_ac_option_inline.m4
+++ b/sim/m4/sim_ac_option_inline.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/m4/sim_ac_option_profile.m4 b/sim/m4/sim_ac_option_profile.m4
index 78f06be..2ee3175 100644
--- a/sim/m4/sim_ac_option_profile.m4
+++ b/sim/m4/sim_ac_option_profile.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/m4/sim_ac_option_reserved_bits.m4 b/sim/m4/sim_ac_option_reserved_bits.m4
index 1e8c33d..4968e21 100644
--- a/sim/m4/sim_ac_option_reserved_bits.m4
+++ b/sim/m4/sim_ac_option_reserved_bits.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/m4/sim_ac_option_scache.m4 b/sim/m4/sim_ac_option_scache.m4
index 18b1916..2e9ffe2 100644
--- a/sim/m4/sim_ac_option_scache.m4
+++ b/sim/m4/sim_ac_option_scache.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/m4/sim_ac_option_smp.m4 b/sim/m4/sim_ac_option_smp.m4
index ad06503..d673f6c 100644
--- a/sim/m4/sim_ac_option_smp.m4
+++ b/sim/m4/sim_ac_option_smp.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/m4/sim_ac_option_stdio.m4 b/sim/m4/sim_ac_option_stdio.m4
index b902b59..19465e9 100644
--- a/sim/m4/sim_ac_option_stdio.m4
+++ b/sim/m4/sim_ac_option_stdio.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/m4/sim_ac_option_trace.m4 b/sim/m4/sim_ac_option_trace.m4
index 52ddf93..fb966c2 100644
--- a/sim/m4/sim_ac_option_trace.m4
+++ b/sim/m4/sim_ac_option_trace.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/m4/sim_ac_option_warnings.m4 b/sim/m4/sim_ac_option_warnings.m4
index 98457b8..8860222 100644
--- a/sim/m4/sim_ac_option_warnings.m4
+++ b/sim/m4/sim_ac_option_warnings.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/m4/sim_ac_option_xor_endian.m4 b/sim/m4/sim_ac_option_xor_endian.m4
index dc3bf0a..4ca2ef5 100644
--- a/sim/m4/sim_ac_option_xor_endian.m4
+++ b/sim/m4/sim_ac_option_xor_endian.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/m4/sim_ac_platform.m4 b/sim/m4/sim_ac_platform.m4
index d1cbf72..3b22615 100644
--- a/sim/m4/sim_ac_platform.m4
+++ b/sim/m4/sim_ac_platform.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/m4/sim_ac_toolchain.m4 b/sim/m4/sim_ac_toolchain.m4
index 1d8cce2..8e6f6f1 100644
--- a/sim/m4/sim_ac_toolchain.m4
+++ b/sim/m4/sim_ac_toolchain.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/m68hc11/dv-m68hc11.c b/sim/m68hc11/dv-m68hc11.c
index 93300ba..7fd7393 100644
--- a/sim/m68hc11/dv-m68hc11.c
+++ b/sim/m68hc11/dv-m68hc11.c
@@ -1,5 +1,5 @@
/* dv-m68hc11.c -- CPU 68HC11&68HC12 as a device.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@nerim.fr)
(From a driver model Contributed by Cygnus Solutions.)
diff --git a/sim/m68hc11/dv-m68hc11eepr.c b/sim/m68hc11/dv-m68hc11eepr.c
index a3db7ba..6ea243c 100644
--- a/sim/m68hc11/dv-m68hc11eepr.c
+++ b/sim/m68hc11/dv-m68hc11eepr.c
@@ -1,5 +1,5 @@
/* dv-m68hc11eepr.c -- Simulation of the 68HC11 Internal EEPROM.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@nerim.fr)
(From a driver model Contributed by Cygnus Solutions.)
diff --git a/sim/m68hc11/dv-m68hc11sio.c b/sim/m68hc11/dv-m68hc11sio.c
index c341759..ad581a7 100644
--- a/sim/m68hc11/dv-m68hc11sio.c
+++ b/sim/m68hc11/dv-m68hc11sio.c
@@ -1,5 +1,5 @@
/* dv-m68hc11sio.c -- Simulation of the 68HC11 serial device.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@worldnet.fr)
(From a driver model Contributed by Cygnus Solutions.)
diff --git a/sim/m68hc11/dv-m68hc11spi.c b/sim/m68hc11/dv-m68hc11spi.c
index 8dffe33..0db7051 100644
--- a/sim/m68hc11/dv-m68hc11spi.c
+++ b/sim/m68hc11/dv-m68hc11spi.c
@@ -1,5 +1,5 @@
/* dv-m68hc11spi.c -- Simulation of the 68HC11 SPI
- Copyright (C) 2000-2024 Free Software Foundation, Inc.
+ Copyright (C) 2000-2025 Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@nerim.fr)
(From a driver model Contributed by Cygnus Solutions.)
diff --git a/sim/m68hc11/dv-m68hc11tim.c b/sim/m68hc11/dv-m68hc11tim.c
index 3214b0d..a55d61f 100644
--- a/sim/m68hc11/dv-m68hc11tim.c
+++ b/sim/m68hc11/dv-m68hc11tim.c
@@ -1,5 +1,5 @@
/* dv-m68hc11tim.c -- Simulation of the 68HC11 timer devices.
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@nerim.fr)
(From a driver model Contributed by Cygnus Solutions.)
diff --git a/sim/m68hc11/dv-nvram.c b/sim/m68hc11/dv-nvram.c
index 042ab5d..21f32a2 100644
--- a/sim/m68hc11/dv-nvram.c
+++ b/sim/m68hc11/dv-nvram.c
@@ -1,5 +1,5 @@
/* dv-nvram.c -- Generic driver for a non volatile ram (battery saved)
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@worldnet.fr)
(From a driver model Contributed by Cygnus Solutions.)
diff --git a/sim/m68hc11/emulos.c b/sim/m68hc11/emulos.c
index 3083369..6809aad 100644
--- a/sim/m68hc11/emulos.c
+++ b/sim/m68hc11/emulos.c
@@ -1,5 +1,5 @@
/* emulos.c -- Small OS emulation
- Copyright 1999-2024 Free Software Foundation, Inc.
+ Copyright 1999-2025 Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@worldnet.fr)
This file is part of GDB, GAS, and the GNU binutils.
diff --git a/sim/m68hc11/gencode.c b/sim/m68hc11/gencode.c
index 30ed8b6..0d3d0a9 100644
--- a/sim/m68hc11/gencode.c
+++ b/sim/m68hc11/gencode.c
@@ -1,5 +1,5 @@
/* gencode.c -- Motorola 68HC11 & 68HC12 Emulator Generator
- Copyright 1999-2024 Free Software Foundation, Inc.
+ Copyright 1999-2025 Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@nerim.fr)
This file is part of GDB, GAS, and the GNU binutils.
diff --git a/sim/m68hc11/interp.c b/sim/m68hc11/interp.c
index 143e452..cf59bf2 100644
--- a/sim/m68hc11/interp.c
+++ b/sim/m68hc11/interp.c
@@ -1,5 +1,5 @@
/* interp.c -- Simulator for Motorola 68HC11/68HC12
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@nerim.fr)
This file is part of GDB, the GNU debugger.
diff --git a/sim/m68hc11/interrupts.c b/sim/m68hc11/interrupts.c
index 95bc722..a99d7f8 100644
--- a/sim/m68hc11/interrupts.c
+++ b/sim/m68hc11/interrupts.c
@@ -1,5 +1,5 @@
/* interrupts.c -- 68HC11 Interrupts Emulation
- Copyright 1999-2024 Free Software Foundation, Inc.
+ Copyright 1999-2025 Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@nerim.fr)
This file is part of GDB, GAS, and the GNU binutils.
diff --git a/sim/m68hc11/interrupts.h b/sim/m68hc11/interrupts.h
index 36d9b35..85d36f2 100644
--- a/sim/m68hc11/interrupts.h
+++ b/sim/m68hc11/interrupts.h
@@ -1,5 +1,5 @@
/* interrupts.h -- 68HC11 Interrupts Emulation
- Copyright 1999-2024 Free Software Foundation, Inc.
+ Copyright 1999-2025 Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@worldnet.fr)
This file is part of GDB, GAS, and the GNU binutils.
diff --git a/sim/m68hc11/local.mk b/sim/m68hc11/local.mk
index f997590..5ea8011 100644
--- a/sim/m68hc11/local.mk
+++ b/sim/m68hc11/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 1999-2024 Free Software Foundation, Inc.
+## Copyright (C) 1999-2025 Free Software Foundation, Inc.
## Written by Cygnus Support.
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/m68hc11/m68hc11-sim.h b/sim/m68hc11/m68hc11-sim.h
index 2c135fe..f2e9c0a 100644
--- a/sim/m68hc11/m68hc11-sim.h
+++ b/sim/m68hc11/m68hc11-sim.h
@@ -1,5 +1,5 @@
/* sim-main.h -- Simulator for Motorola 68HC11 & 68HC12
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@nerim.fr)
This file is part of the GNU simulators.
diff --git a/sim/m68hc11/m68hc11_sim.c b/sim/m68hc11/m68hc11_sim.c
index 1c832eb..874ae3a 100644
--- a/sim/m68hc11/m68hc11_sim.c
+++ b/sim/m68hc11/m68hc11_sim.c
@@ -1,5 +1,5 @@
/* m6811_cpu.c -- 68HC11&68HC12 CPU Emulation
- Copyright 1999-2024 Free Software Foundation, Inc.
+ Copyright 1999-2025 Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@nerim.fr)
This file is part of GDB, GAS, and the GNU binutils.
diff --git a/sim/m68hc11/sim-main.h b/sim/m68hc11/sim-main.h
index e191bf6..8c4c035 100644
--- a/sim/m68hc11/sim-main.h
+++ b/sim/m68hc11/sim-main.h
@@ -1,5 +1,5 @@
/* sim-main.h -- Simulator for Motorola 68HC11 & 68HC12
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Written by Stephane Carrez (stcarrez@nerim.fr)
This file is part of GDB, the GNU debugger.
diff --git a/sim/mcore/interp.c b/sim/mcore/interp.c
index 92c61c6..87fe5b4 100644
--- a/sim/mcore/interp.c
+++ b/sim/mcore/interp.c
@@ -1,5 +1,5 @@
/* Simulator for Motorola's MCore processor
- Copyright (C) 1999-2024 Free Software Foundation, Inc.
+ Copyright (C) 1999-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of GDB, the GNU debugger.
diff --git a/sim/mcore/local.mk b/sim/mcore/local.mk
index 35dc7bf..c7ad9f8 100644
--- a/sim/mcore/local.mk
+++ b/sim/mcore/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 1990-2024 Free Software Foundation, Inc.
+## Copyright (C) 1990-2025 Free Software Foundation, Inc.
## Written by Cygnus Solutions.
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/mcore/mcore-sim.h b/sim/mcore/mcore-sim.h
index 75c1c9d..747fd3b 100644
--- a/sim/mcore/mcore-sim.h
+++ b/sim/mcore/mcore-sim.h
@@ -1,5 +1,5 @@
/* Simulator for Motorola's MCore processor
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/mcore/sim-main.h b/sim/mcore/sim-main.h
index 6e32f55..b01ea34 100644
--- a/sim/mcore/sim-main.h
+++ b/sim/mcore/sim-main.h
@@ -1,5 +1,5 @@
/* Simulator for Motorola's MCore processor
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB, the GNU debugger.
diff --git a/sim/microblaze/interp.c b/sim/microblaze/interp.c
index 072db9d..937d3f1 100644
--- a/sim/microblaze/interp.c
+++ b/sim/microblaze/interp.c
@@ -1,5 +1,5 @@
/* Simulator for Xilinx MicroBlaze processor
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
This file is part of GDB, the GNU debugger.
diff --git a/sim/microblaze/local.mk b/sim/microblaze/local.mk
index 35dc7bf..c7ad9f8 100644
--- a/sim/microblaze/local.mk
+++ b/sim/microblaze/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 1990-2024 Free Software Foundation, Inc.
+## Copyright (C) 1990-2025 Free Software Foundation, Inc.
## Written by Cygnus Solutions.
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/microblaze/microblaze-sim.h b/sim/microblaze/microblaze-sim.h
index 4e6e916..06b486f 100644
--- a/sim/microblaze/microblaze-sim.h
+++ b/sim/microblaze/microblaze-sim.h
@@ -1,4 +1,4 @@
-/* Copyright 2009-2024 Free Software Foundation, Inc.
+/* Copyright 2009-2025 Free Software Foundation, Inc.
This file is part of the Xilinx MicroBlaze simulator.
diff --git a/sim/microblaze/microblaze.h b/sim/microblaze/microblaze.h
index 24fd96c..bab7c2f 100644
--- a/sim/microblaze/microblaze.h
+++ b/sim/microblaze/microblaze.h
@@ -1,7 +1,7 @@
#ifndef MICROBLAZE_H
#define MICROBLAZE_H
-/* Copyright 2009-2024 Free Software Foundation, Inc.
+/* Copyright 2009-2025 Free Software Foundation, Inc.
This file is part of the Xilinx MicroBlaze simulator.
diff --git a/sim/microblaze/microblaze.isa b/sim/microblaze/microblaze.isa
index 8459f03..d88d53d 100644
--- a/sim/microblaze/microblaze.isa
+++ b/sim/microblaze/microblaze.isa
@@ -1,4 +1,4 @@
-/* Copyright 2009-2024 Free Software Foundation, Inc.
+/* Copyright 2009-2025 Free Software Foundation, Inc.
This file is part of the Xilinx MicroBlaze simulator.
diff --git a/sim/microblaze/sim-main.h b/sim/microblaze/sim-main.h
index 4089e7e..8d142ed 100644
--- a/sim/microblaze/sim-main.h
+++ b/sim/microblaze/sim-main.h
@@ -1,4 +1,4 @@
-/* Copyright 2009-2024 Free Software Foundation, Inc.
+/* Copyright 2009-2025 Free Software Foundation, Inc.
This file is part of the Xilinx MicroBlaze simulator.
diff --git a/sim/mips/acinclude.m4 b/sim/mips/acinclude.m4
index ab7fa9c..d902d6c 100644
--- a/sim/mips/acinclude.m4
+++ b/sim/mips/acinclude.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 2005-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 2005-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/mips/cp1.c b/sim/mips/cp1.c
index 470215d..7cb1e3d 100644
--- a/sim/mips/cp1.c
+++ b/sim/mips/cp1.c
@@ -1,6 +1,6 @@
/*> cp1.c <*/
/* MIPS Simulator FPU (CoProcessor 1) support.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Originally created by Cygnus Solutions. Extensive modifications,
including paired-single operation support and MIPS-3D support
contributed by Ed Satterthwaite and Chris Demetriou, of Broadcom
diff --git a/sim/mips/cp1.h b/sim/mips/cp1.h
index d09b62d..5e6f674 100644
--- a/sim/mips/cp1.h
+++ b/sim/mips/cp1.h
@@ -1,6 +1,6 @@
/*> cp1.h <*/
/* MIPS Simulator FPU (CoProcessor 1) definitions.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Derived from sim-main.h contributed by Cygnus Solutions,
modified substantially by Ed Satterthwaite of Broadcom Corporation
(SiByte).
diff --git a/sim/mips/dsp.c b/sim/mips/dsp.c
index 5126827..c9bd878 100644
--- a/sim/mips/dsp.c
+++ b/sim/mips/dsp.c
@@ -1,5 +1,5 @@
/* Simulation code for the MIPS DSP ASE.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by MIPS Technologies, Inc. Written by Chao-ying Fu.
This file is part of GDB, the GNU debugger.
diff --git a/sim/mips/dsp.igen b/sim/mips/dsp.igen
index a52da17..addb441 100644
--- a/sim/mips/dsp.igen
+++ b/sim/mips/dsp.igen
@@ -1,7 +1,7 @@
// -*- C -*-
// Simulator definition for the MIPS DSP ASE.
-// Copyright (C) 2005-2024 Free Software Foundation, Inc.
+// Copyright (C) 2005-2025 Free Software Foundation, Inc.
// Contributed by MIPS Technologies, Inc. Written by Chao-ying Fu.
//
// This file is part of the MIPS sim
diff --git a/sim/mips/dsp2.igen b/sim/mips/dsp2.igen
index f524551..7983456 100644
--- a/sim/mips/dsp2.igen
+++ b/sim/mips/dsp2.igen
@@ -1,7 +1,7 @@
// -*- C -*-
// Simulator definition for the MIPS DSP REV 2 ASE.
-// Copyright (C) 2007-2024 Free Software Foundation, Inc.
+// Copyright (C) 2007-2025 Free Software Foundation, Inc.
// Contributed by MIPS Technologies, Inc.
// Written by Chao-ying Fu (fu@mips.com).
//
diff --git a/sim/mips/dv-tx3904cpu.c b/sim/mips/dv-tx3904cpu.c
index fb66c1b..c925f58 100644
--- a/sim/mips/dv-tx3904cpu.c
+++ b/sim/mips/dv-tx3904cpu.c
@@ -1,6 +1,6 @@
/* This file is part of the program GDB, the GNU debugger.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This program is free software; you can redistribute it and/or modify
diff --git a/sim/mips/dv-tx3904irc.c b/sim/mips/dv-tx3904irc.c
index cf99d29..cfa887c 100644
--- a/sim/mips/dv-tx3904irc.c
+++ b/sim/mips/dv-tx3904irc.c
@@ -1,6 +1,6 @@
/* This file is part of the program GDB, the GNU debugger.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This program is free software; you can redistribute it and/or modify
diff --git a/sim/mips/dv-tx3904sio.c b/sim/mips/dv-tx3904sio.c
index a758320..9843448 100644
--- a/sim/mips/dv-tx3904sio.c
+++ b/sim/mips/dv-tx3904sio.c
@@ -1,6 +1,6 @@
/* This file is part of the program GDB, the GNU debugger.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This program is free software; you can redistribute it and/or modify
diff --git a/sim/mips/dv-tx3904tmr.c b/sim/mips/dv-tx3904tmr.c
index e191176..dbefd67 100644
--- a/sim/mips/dv-tx3904tmr.c
+++ b/sim/mips/dv-tx3904tmr.c
@@ -1,6 +1,6 @@
/* This file is part of the program GDB, the GNU debugger.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This program is free software; you can redistribute it and/or modify
diff --git a/sim/mips/local.mk b/sim/mips/local.mk
index 3af488f..81e8e6e 100644
--- a/sim/mips/local.mk
+++ b/sim/mips/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 1995-2024 Free Software Foundation, Inc.
+## Copyright (C) 1995-2025 Free Software Foundation, Inc.
## Written by Cygnus Support.
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/mips/m16e.igen b/sim/mips/m16e.igen
index 8c75fd5..a9bf27d 100644
--- a/sim/mips/m16e.igen
+++ b/sim/mips/m16e.igen
@@ -1,7 +1,7 @@
// -*- C -*-
// Simulator definition for the MIPS16e instructions.
-// Copyright (C) 2005-2024 Free Software Foundation, Inc.
+// Copyright (C) 2005-2025 Free Software Foundation, Inc.
// Contributed by Nigel Stephens (nigel@mips.com) and
// David Ung (davidu@mips.com) of MIPS Technologies.
//
diff --git a/sim/mips/mdmx.c b/sim/mips/mdmx.c
index ade94a6..ec5ca08 100644
--- a/sim/mips/mdmx.c
+++ b/sim/mips/mdmx.c
@@ -1,5 +1,5 @@
/* Simulation code for the MIPS MDMX ASE.
- Copyright (C) 2002-2024 Free Software Foundation, Inc.
+ Copyright (C) 2002-2025 Free Software Foundation, Inc.
Contributed by Ed Satterthwaite and Chris Demetriou, of Broadcom
Corporation (SiByte).
diff --git a/sim/mips/mdmx.igen b/sim/mips/mdmx.igen
index 2c4d529..2773a09 100644
--- a/sim/mips/mdmx.igen
+++ b/sim/mips/mdmx.igen
@@ -1,7 +1,7 @@
// -*- C -*-
// Simulator definition for the MIPS MDMX ASE.
-// Copyright (C) 2002-2024 Free Software Foundation, Inc.
+// Copyright (C) 2002-2025 Free Software Foundation, Inc.
// Contributed by Ed Satterthwaite and Chris Demetriou, of Broadcom
// Corporation (SiByte).
//
diff --git a/sim/mips/micromips.igen b/sim/mips/micromips.igen
index 41201b0..144643e 100644
--- a/sim/mips/micromips.igen
+++ b/sim/mips/micromips.igen
@@ -1,5 +1,5 @@
// Simulator definition for the micromips ASE.
-// Copyright (C) 2005-2024 Free Software Foundation, Inc.
+// Copyright (C) 2005-2025 Free Software Foundation, Inc.
// Contributed by Imagination Technologies, Ltd.
// Written by Andrew Bennett <andrew.bennett@imgtec.com>
//
diff --git a/sim/mips/micromipsdsp.igen b/sim/mips/micromipsdsp.igen
index 63b164b..be6ccaa 100644
--- a/sim/mips/micromipsdsp.igen
+++ b/sim/mips/micromipsdsp.igen
@@ -1,5 +1,5 @@
// Simulator definition for the micromips DSP ASE.
-// Copyright (C) 2005-2024 Free Software Foundation, Inc.
+// Copyright (C) 2005-2025 Free Software Foundation, Inc.
// Contributed by Imagination Technologies, Ltd.
// Written by Andrew Bennett <andrew.bennett@imgtec.com>
//
diff --git a/sim/mips/micromipsrun.c b/sim/mips/micromipsrun.c
index 4479865..1d5ea08 100644
--- a/sim/mips/micromipsrun.c
+++ b/sim/mips/micromipsrun.c
@@ -1,6 +1,6 @@
/* Run function for the micromips simulator
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Imagination Technologies, Ltd.
Written by Andrew Bennett <andrew.bennett@imgtec.com>.
diff --git a/sim/mips/mips3264r2.igen b/sim/mips/mips3264r2.igen
index 16d8ed0..15ed359 100644
--- a/sim/mips/mips3264r2.igen
+++ b/sim/mips/mips3264r2.igen
@@ -1,7 +1,7 @@
// -*- C -*-
// Simulator definition for the MIPS 32/64 revision 2 instructions.
-// Copyright (C) 2004-2024 Free Software Foundation, Inc.
+// Copyright (C) 2004-2025 Free Software Foundation, Inc.
// Contributed by David Ung, of MIPS Technologies.
//
// This file is part of the MIPS sim.
diff --git a/sim/mips/mips3d.igen b/sim/mips/mips3d.igen
index 722ea5d..881ae4f 100644
--- a/sim/mips/mips3d.igen
+++ b/sim/mips/mips3d.igen
@@ -1,7 +1,7 @@
// -*- C -*-
// Simulator definition for the MIPS MIPS-3D ASE.
-// Copyright (C) 2002-2024 Free Software Foundation, Inc.
+// Copyright (C) 2002-2025 Free Software Foundation, Inc.
// Contributed by Ed Satterthwaite and Chris Demetriou, of Broadcom
// Corporation (SiByte).
//
diff --git a/sim/mips/sb1.igen b/sim/mips/sb1.igen
index 4a263aa..fc958d6 100644
--- a/sim/mips/sb1.igen
+++ b/sim/mips/sb1.igen
@@ -1,7 +1,7 @@
// -*- C -*-
// Simulator definition for the Broadcom SiByte SB-1 CPU extensions.
-// Copyright (C) 2002-2024 Free Software Foundation, Inc.
+// Copyright (C) 2002-2025 Free Software Foundation, Inc.
// Contributed by Ed Satterthwaite and Chris Demetriou, of Broadcom
// Corporation (SiByte).
//
diff --git a/sim/mips/sim-main.h b/sim/mips/sim-main.h
index cb7d7ce..bd8add0 100644
--- a/sim/mips/sim-main.h
+++ b/sim/mips/sim-main.h
@@ -1,5 +1,5 @@
/* MIPS Simulator definition.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of the MIPS sim.
diff --git a/sim/mips/smartmips.igen b/sim/mips/smartmips.igen
index 8ba3fed..c40be77 100644
--- a/sim/mips/smartmips.igen
+++ b/sim/mips/smartmips.igen
@@ -1,7 +1,7 @@
// -*- C -*-
//
// Simulator definition for the SmartMIPS extensions.
-// Copyright (C) 2005-2024 Free Software Foundation, Inc.
+// Copyright (C) 2005-2025 Free Software Foundation, Inc.
// Contributed by Nigel Stephens (nigel@mips.com) and
// David Ung (davidu@mips.com) of MIPS Technologies.
//
diff --git a/sim/mn10300/dv-mn103cpu.c b/sim/mn10300/dv-mn103cpu.c
index 5f72dcf..530ba1d 100644
--- a/sim/mn10300/dv-mn103cpu.c
+++ b/sim/mn10300/dv-mn103cpu.c
@@ -1,6 +1,6 @@
/* This file is part of the program GDB, the GNU debugger.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This program is free software; you can redistribute it and/or modify
diff --git a/sim/mn10300/dv-mn103int.c b/sim/mn10300/dv-mn103int.c
index 8b7bc84..70fd731 100644
--- a/sim/mn10300/dv-mn103int.c
+++ b/sim/mn10300/dv-mn103int.c
@@ -1,6 +1,6 @@
/* This file is part of the program GDB, the GNU debugger.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This program is free software; you can redistribute it and/or modify
diff --git a/sim/mn10300/dv-mn103iop.c b/sim/mn10300/dv-mn103iop.c
index 9bcc142..d77e981 100644
--- a/sim/mn10300/dv-mn103iop.c
+++ b/sim/mn10300/dv-mn103iop.c
@@ -1,6 +1,6 @@
/* This file is part of the program GDB, the GNU debugger.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This program is free software; you can redistribute it and/or modify
diff --git a/sim/mn10300/dv-mn103ser.c b/sim/mn10300/dv-mn103ser.c
index 7ba8a97..e195687 100644
--- a/sim/mn10300/dv-mn103ser.c
+++ b/sim/mn10300/dv-mn103ser.c
@@ -1,6 +1,6 @@
/* This file is part of the program GDB, the GNU debugger.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This program is free software; you can redistribute it and/or modify
diff --git a/sim/mn10300/dv-mn103tim.c b/sim/mn10300/dv-mn103tim.c
index 6cc58c9..2aad7c7 100644
--- a/sim/mn10300/dv-mn103tim.c
+++ b/sim/mn10300/dv-mn103tim.c
@@ -1,6 +1,6 @@
/* This file is part of the program GDB, the GNU debugger.
- Copyright (C) 1998-2024 Free Software Foundation, Inc.
+ Copyright (C) 1998-2025 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This program is free software; you can redistribute it and/or modify
diff --git a/sim/mn10300/local.mk b/sim/mn10300/local.mk
index 91e5957..6487ec4 100644
--- a/sim/mn10300/local.mk
+++ b/sim/mn10300/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 1996-2024 Free Software Foundation, Inc.
+## Copyright (C) 1996-2025 Free Software Foundation, Inc.
## Written by Cygnus Support.
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/mn10300/sim-main.h b/sim/mn10300/sim-main.h
index e7b784a..3d20b3c 100644
--- a/sim/mn10300/sim-main.h
+++ b/sim/mn10300/sim-main.h
@@ -1,7 +1,7 @@
/* This file is part of the program psim.
Copyright (C) 1994-1997, Andrew Cagney <cagney@highland.com.au>
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/moxie/interp.c b/sim/moxie/interp.c
index 6f46f9c..18e59ce 100644
--- a/sim/moxie/interp.c
+++ b/sim/moxie/interp.c
@@ -1,5 +1,5 @@
/* Simulator for the moxie processor
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributed by Anthony Green
This file is part of GDB, the GNU debugger.
diff --git a/sim/moxie/local.mk b/sim/moxie/local.mk
index 1aa207a..955e472 100644
--- a/sim/moxie/local.mk
+++ b/sim/moxie/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 2008-2024 Free Software Foundation, Inc.
+## Copyright (C) 2008-2025 Free Software Foundation, Inc.
## Written by Anthony Green
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/moxie/moxie-sim.h b/sim/moxie/moxie-sim.h
index 961e781..3114f4e 100644
--- a/sim/moxie/moxie-sim.h
+++ b/sim/moxie/moxie-sim.h
@@ -1,5 +1,5 @@
/* Moxie Simulator definition.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
Contributed by Anthony Green <green@moxielogic.com>
This file is part of the GNU simulators.
diff --git a/sim/moxie/sim-main.h b/sim/moxie/sim-main.h
index 4ed5f5a..8fbeaa4 100644
--- a/sim/moxie/sim-main.h
+++ b/sim/moxie/sim-main.h
@@ -1,5 +1,5 @@
/* Moxie Simulator definition.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
Contributed by Anthony Green <green@moxielogic.com>
This file is part of GDB, the GNU debugger.
diff --git a/sim/msp430/local.mk b/sim/msp430/local.mk
index 92f76ca..20f9f94 100644
--- a/sim/msp430/local.mk
+++ b/sim/msp430/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 2012-2024 Free Software Foundation, Inc.
+## Copyright (C) 2012-2025 Free Software Foundation, Inc.
## Written by Red Hat Inc.
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/msp430/msp430-sim.c b/sim/msp430/msp430-sim.c
index 8c57d57..94ee235 100644
--- a/sim/msp430/msp430-sim.c
+++ b/sim/msp430/msp430-sim.c
@@ -1,6 +1,6 @@
/* Simulator for TI MSP430 and MSP430X
- Copyright (C) 2013-2024 Free Software Foundation, Inc.
+ Copyright (C) 2013-2025 Free Software Foundation, Inc.
Contributed by Red Hat.
Based on sim/bfin/bfin-sim.c which was contributed by Analog Devices, Inc.
diff --git a/sim/msp430/msp430-sim.h b/sim/msp430/msp430-sim.h
index 0259285..0ef1530 100644
--- a/sim/msp430/msp430-sim.h
+++ b/sim/msp430/msp430-sim.h
@@ -1,6 +1,6 @@
/* Simulator for TI MSP430 and MSP430x processors.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of simulators.
diff --git a/sim/msp430/sim-main.h b/sim/msp430/sim-main.h
index 61f5f2e..ce597af 100644
--- a/sim/msp430/sim-main.h
+++ b/sim/msp430/sim-main.h
@@ -1,6 +1,6 @@
/* Simulator for TI MSP430 and MSP430X processors.
- Copyright (C) 2012-2024 Free Software Foundation, Inc.
+ Copyright (C) 2012-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of simulators.
diff --git a/sim/or1k/arch.c b/sim/or1k/arch.c
index 0530fa7..22293d5 100644
--- a/sim/or1k/arch.c
+++ b/sim/or1k/arch.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/or1k/arch.h b/sim/or1k/arch.h
index 4a4007b..1e96fd5 100644
--- a/sim/or1k/arch.h
+++ b/sim/or1k/arch.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/or1k/cpu.c b/sim/or1k/cpu.c
index ea37481..14e43cc 100644
--- a/sim/or1k/cpu.c
+++ b/sim/or1k/cpu.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
@@ -1100,6 +1100,38 @@ or1k32bf_h_sys_esr15_set (SIM_CPU *current_cpu, USI newval)
SET_H_SYS_ESR15 (newval);
}
+/* Get the value of h-sys-coreid. */
+
+USI
+or1k32bf_h_sys_coreid_get (SIM_CPU *current_cpu)
+{
+ return GET_H_SYS_COREID ();
+}
+
+/* Set a value for h-sys-coreid. */
+
+void
+or1k32bf_h_sys_coreid_set (SIM_CPU *current_cpu, USI newval)
+{
+ SET_H_SYS_COREID (newval);
+}
+
+/* Get the value of h-sys-numcores. */
+
+USI
+or1k32bf_h_sys_numcores_get (SIM_CPU *current_cpu)
+{
+ return GET_H_SYS_NUMCORES ();
+}
+
+/* Set a value for h-sys-numcores. */
+
+void
+or1k32bf_h_sys_numcores_set (SIM_CPU *current_cpu, USI newval)
+{
+ SET_H_SYS_NUMCORES (newval);
+}
+
/* Get the value of h-sys-gpr0. */
USI
diff --git a/sim/or1k/cpu.h b/sim/or1k/cpu.h
index 1fd3305..ab2c062 100644
--- a/sim/or1k/cpu.h
+++ b/sim/or1k/cpu.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
@@ -408,6 +408,16 @@ SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR14), (x));\
do { \
SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_ESR15), (x));\
;} while (0)
+#define GET_H_SYS_COREID() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_COREID))
+#define SET_H_SYS_COREID(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_COREID), (x));\
+;} while (0)
+#define GET_H_SYS_NUMCORES() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_NUMCORES))
+#define SET_H_SYS_NUMCORES(x) \
+do { \
+SET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_NUMCORES), (x));\
+;} while (0)
#define GET_H_SYS_GPR0() GET_H_SPR (ORSI (SLLSI (SPR_GROUP_SYS, 11), SPR_INDEX_SYS_GPR0))
#define SET_H_SYS_GPR0(x) \
do { \
@@ -3379,6 +3389,10 @@ USI or1k32bf_h_sys_esr14_get (SIM_CPU *);
void or1k32bf_h_sys_esr14_set (SIM_CPU *, USI);
USI or1k32bf_h_sys_esr15_get (SIM_CPU *);
void or1k32bf_h_sys_esr15_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_coreid_get (SIM_CPU *);
+void or1k32bf_h_sys_coreid_set (SIM_CPU *, USI);
+USI or1k32bf_h_sys_numcores_get (SIM_CPU *);
+void or1k32bf_h_sys_numcores_set (SIM_CPU *, USI);
USI or1k32bf_h_sys_gpr0_get (SIM_CPU *);
void or1k32bf_h_sys_gpr0_set (SIM_CPU *, USI);
USI or1k32bf_h_sys_gpr1_get (SIM_CPU *);
diff --git a/sim/or1k/cpuall.h b/sim/or1k/cpuall.h
index e899957..4879390 100644
--- a/sim/or1k/cpuall.h
+++ b/sim/or1k/cpuall.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/or1k/decode.c b/sim/or1k/decode.c
index 3919fa5..dd28b6a 100644
--- a/sim/or1k/decode.c
+++ b/sim/or1k/decode.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/or1k/decode.h b/sim/or1k/decode.h
index 0ef83fc..c1d6a14 100644
--- a/sim/or1k/decode.h
+++ b/sim/or1k/decode.h
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/or1k/local.mk b/sim/or1k/local.mk
index b97f96a..402caac 100644
--- a/sim/or1k/local.mk
+++ b/sim/or1k/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 2017-2024 Free Software Foundation, Inc.
+## Copyright (C) 2017-2025 Free Software Foundation, Inc.
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
diff --git a/sim/or1k/mloop.in b/sim/or1k/mloop.in
index 4fead61..2afd2a8 100644
--- a/sim/or1k/mloop.in
+++ b/sim/or1k/mloop.in
@@ -1,6 +1,6 @@
# Simulator main loop for or1k. -*- C -*-
#
-# Copyright (C) 2017-2024 Free Software Foundation, Inc.
+# Copyright (C) 2017-2025 Free Software Foundation, Inc.
#
# This file is part of the GNU Simulators.
#
diff --git a/sim/or1k/model.c b/sim/or1k/model.c
index 512b897..61fad33 100644
--- a/sim/or1k/model.c
+++ b/sim/or1k/model.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/or1k/or1k-sim.h b/sim/or1k/or1k-sim.h
index ff0c96e..9a80cfe 100644
--- a/sim/or1k/or1k-sim.h
+++ b/sim/or1k/or1k-sim.h
@@ -1,5 +1,5 @@
/* OpenRISC simulator support code header
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB, the GNU debugger.
diff --git a/sim/or1k/or1k.c b/sim/or1k/or1k.c
index 5882ba5..73ab6f0 100644
--- a/sim/or1k/or1k.c
+++ b/sim/or1k/or1k.c
@@ -1,5 +1,5 @@
/* OpenRISC simulator support code
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB, the GNU debugger.
@@ -206,6 +206,10 @@ or1k_cpu_init (SIM_DESC sd, sim_cpu *current_cpu, const USI or1k_vr,
/* Clear the floating point control status register. */
SET_H_SYS_FPCSR (0);
+
+ /* Set this as the one and only core. */
+ SET_H_SYS_NUMCORES (1);
+ SET_H_SYS_COREID (0);
}
void
diff --git a/sim/or1k/sem-switch.c b/sim/or1k/sem-switch.c
index 404c6d9..129a897 100644
--- a/sim/or1k/sem-switch.c
+++ b/sim/or1k/sem-switch.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/or1k/sem.c b/sim/or1k/sem.c
index c913ee4..9ce94f6 100644
--- a/sim/or1k/sem.c
+++ b/sim/or1k/sem.c
@@ -2,7 +2,7 @@
THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright (C) 1996-2024 Free Software Foundation, Inc.
+Copyright (C) 1996-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/or1k/sim-if.c b/sim/or1k/sim-if.c
index a53daf6..2b075b2 100644
--- a/sim/or1k/sim-if.c
+++ b/sim/or1k/sim-if.c
@@ -1,5 +1,5 @@
/* Main simulator entry points specific to the OR1K.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB, the GNU debugger.
diff --git a/sim/or1k/sim-main.h b/sim/or1k/sim-main.h
index f45bd62..de0113d 100644
--- a/sim/or1k/sim-main.h
+++ b/sim/or1k/sim-main.h
@@ -1,5 +1,5 @@
/* OpenRISC simulator main header
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB, the GNU debugger.
diff --git a/sim/or1k/traps.c b/sim/or1k/traps.c
index be354eb..d1113ac 100644
--- a/sim/or1k/traps.c
+++ b/sim/or1k/traps.c
@@ -1,5 +1,5 @@
/* OpenRISC exception, interrupts, syscall and trap support
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This file is part of GDB, the GNU debugger.
@@ -224,6 +224,8 @@ or1k32bf_mfspr (sim_cpu *current_cpu, USI addr)
case SPR_ADDR (SYS, PPC):
case SPR_ADDR (SYS, FPCSR):
case SPR_ADDR (SYS, EPCR0):
+ case SPR_ADDR (SYS, COREID):
+ case SPR_ADDR (SYS, NUMCORES):
case SPR_ADDR (MAC, MACLO):
case SPR_ADDR (MAC, MACHI):
break;
diff --git a/sim/pru/interp.c b/sim/pru/interp.c
index 2dd8eae..bb029d1 100644
--- a/sim/pru/interp.c
+++ b/sim/pru/interp.c
@@ -1,5 +1,5 @@
/* Simulator for the Texas Instruments PRU processor
- Copyright 2009-2024 Free Software Foundation, Inc.
+ Copyright 2009-2025 Free Software Foundation, Inc.
Inspired by the Microblaze simulator
Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
diff --git a/sim/pru/local.mk b/sim/pru/local.mk
index 9ab56e6..e90ff38 100644
--- a/sim/pru/local.mk
+++ b/sim/pru/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 1990-2024 Free Software Foundation, Inc.
+## Copyright (C) 1990-2025 Free Software Foundation, Inc.
## Written by Dimitar Dimitrov <dimitar@dinux.eu>
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/pru/pru.h b/sim/pru/pru.h
index b845f2b..ce5eefd 100644
--- a/sim/pru/pru.h
+++ b/sim/pru/pru.h
@@ -1,4 +1,4 @@
-/* Copyright 2016-2024 Free Software Foundation, Inc.
+/* Copyright 2016-2025 Free Software Foundation, Inc.
Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
This file is part of the PRU simulator.
diff --git a/sim/pru/pru.isa b/sim/pru/pru.isa
index e134832..42081ed 100644
--- a/sim/pru/pru.isa
+++ b/sim/pru/pru.isa
@@ -1,4 +1,4 @@
-/* Copyright 2016-2024 Free Software Foundation, Inc.
+/* Copyright 2016-2025 Free Software Foundation, Inc.
Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
This file is part of the PRU simulator.
diff --git a/sim/pru/sim-main.h b/sim/pru/sim-main.h
index 259921a..882a6a0 100644
--- a/sim/pru/sim-main.h
+++ b/sim/pru/sim-main.h
@@ -1,4 +1,4 @@
-/* Copyright 2016-2024 Free Software Foundation, Inc.
+/* Copyright 2016-2025 Free Software Foundation, Inc.
Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
This file is part of the PRU simulator.
diff --git a/sim/riscv/acinclude.m4 b/sim/riscv/acinclude.m4
index 0c6290c..9a10f35 100644
--- a/sim/riscv/acinclude.m4
+++ b/sim/riscv/acinclude.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 2022-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 2022-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/riscv/interp.c b/sim/riscv/interp.c
index 15e6b17..c94cf9c 100644
--- a/sim/riscv/interp.c
+++ b/sim/riscv/interp.c
@@ -1,6 +1,6 @@
/* RISC-V simulator.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Mike Frysinger.
This file is part of simulators.
diff --git a/sim/riscv/local.mk b/sim/riscv/local.mk
index c9e3717..7de18ce 100644
--- a/sim/riscv/local.mk
+++ b/sim/riscv/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 2005-2024 Free Software Foundation, Inc.
+## Copyright (C) 2005-2025 Free Software Foundation, Inc.
## Written by Mike Frysinger.
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/riscv/machs.c b/sim/riscv/machs.c
index 77ae000..c20a09e 100644
--- a/sim/riscv/machs.c
+++ b/sim/riscv/machs.c
@@ -1,6 +1,6 @@
/* RISC-V simulator.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Mike Frysinger.
This file is part of simulators.
diff --git a/sim/riscv/machs.h b/sim/riscv/machs.h
index 0a24c16..cd39c1d 100644
--- a/sim/riscv/machs.h
+++ b/sim/riscv/machs.h
@@ -1,6 +1,6 @@
/* RISC-V simulator.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Mike Frysinger.
This file is part of simulators.
diff --git a/sim/riscv/riscv-sim.h b/sim/riscv/riscv-sim.h
index 345e683..64caec7 100644
--- a/sim/riscv/riscv-sim.h
+++ b/sim/riscv/riscv-sim.h
@@ -1,6 +1,6 @@
/* RISC-V simulator.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Mike Frysinger.
This file is part of the GNU simulators.
diff --git a/sim/riscv/sim-main.c b/sim/riscv/sim-main.c
index 378e6f1..4c949c4 100644
--- a/sim/riscv/sim-main.c
+++ b/sim/riscv/sim-main.c
@@ -1,6 +1,6 @@
/* RISC-V simulator.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Mike Frysinger.
This file is part of simulators.
diff --git a/sim/riscv/sim-main.h b/sim/riscv/sim-main.h
index 053c0e8..61ccfbc 100644
--- a/sim/riscv/sim-main.h
+++ b/sim/riscv/sim-main.h
@@ -1,6 +1,6 @@
/* RISC-V simulator.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Mike Frysinger.
This file is part of simulators.
diff --git a/sim/rl78/cpu.c b/sim/rl78/cpu.c
index b4c936c..0fdc2d3 100644
--- a/sim/rl78/cpu.c
+++ b/sim/rl78/cpu.c
@@ -1,6 +1,6 @@
/* cpu.c --- CPU for RL78 simulator.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rl78/cpu.h b/sim/rl78/cpu.h
index f975758..19c7f5c 100644
--- a/sim/rl78/cpu.h
+++ b/sim/rl78/cpu.h
@@ -1,6 +1,6 @@
/* cpu.h --- declarations for the RL78 core.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rl78/gdb-if.c b/sim/rl78/gdb-if.c
index 6c0a70b..d9518fb 100644
--- a/sim/rl78/gdb-if.c
+++ b/sim/rl78/gdb-if.c
@@ -1,6 +1,6 @@
/* gdb-if.c -- sim interface to GDB.
-Copyright (C) 2011-2024 Free Software Foundation, Inc.
+Copyright (C) 2011-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rl78/load.c b/sim/rl78/load.c
index b9f9a8b..2ac626b 100644
--- a/sim/rl78/load.c
+++ b/sim/rl78/load.c
@@ -1,6 +1,6 @@
/* load.c --- loading object files into the RL78 simulator.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rl78/load.h b/sim/rl78/load.h
index 72835cc..9d852d6 100644
--- a/sim/rl78/load.h
+++ b/sim/rl78/load.h
@@ -1,6 +1,6 @@
/* load.h --- interface to loading object files into the RX simulator.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rl78/local.mk b/sim/rl78/local.mk
index e6f5089..1037c88e 100644
--- a/sim/rl78/local.mk
+++ b/sim/rl78/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 2008-2024 Free Software Foundation, Inc.
+## Copyright (C) 2008-2025 Free Software Foundation, Inc.
## Contributed by Red Hat, Inc.
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/rl78/main.c b/sim/rl78/main.c
index 5ecdcb5..8590d6f 100644
--- a/sim/rl78/main.c
+++ b/sim/rl78/main.c
@@ -1,6 +1,6 @@
/* main.c --- main function for stand-alone RL78 simulator.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rl78/mem.c b/sim/rl78/mem.c
index 251ebad..596c026 100644
--- a/sim/rl78/mem.c
+++ b/sim/rl78/mem.c
@@ -1,6 +1,6 @@
/* mem.c --- memory for RL78 simulator.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rl78/mem.h b/sim/rl78/mem.h
index 0170d89..2b159bd 100644
--- a/sim/rl78/mem.h
+++ b/sim/rl78/mem.h
@@ -1,6 +1,6 @@
/* mem.h --- interface to memory for RL78 simulator.
- Copyright (C) 2011-2024 Free Software Foundation, Inc.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rl78/rl78.c b/sim/rl78/rl78.c
index 4200d3e..49da8e0 100644
--- a/sim/rl78/rl78.c
+++ b/sim/rl78/rl78.c
@@ -1,6 +1,6 @@
/* rl78.c --- opcode semantics for stand-alone RL78 simulator.
- Copyright (C) 2008-2024 Free Software Foundation, Inc.
+ Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rl78/trace.c b/sim/rl78/trace.c
index 592d1d6..c41d731 100644
--- a/sim/rl78/trace.c
+++ b/sim/rl78/trace.c
@@ -1,6 +1,6 @@
/* trace.c --- tracing output for the RL78 simulator.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rl78/trace.h b/sim/rl78/trace.h
index 4a8a661..6022a13 100644
--- a/sim/rl78/trace.h
+++ b/sim/rl78/trace.h
@@ -1,6 +1,6 @@
/* trace.h --- interface to tracing output for the RX simulator.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rx/acinclude.m4 b/sim/rx/acinclude.m4
index 278478c..32ecc31 100644
--- a/sim/rx/acinclude.m4
+++ b/sim/rx/acinclude.m4
@@ -1,4 +1,4 @@
-dnl Copyright (C) 1997-2024 Free Software Foundation, Inc.
+dnl Copyright (C) 1997-2025 Free Software Foundation, Inc.
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
diff --git a/sim/rx/cpu.h b/sim/rx/cpu.h
index 4b0e7fd..828ba60 100644
--- a/sim/rx/cpu.h
+++ b/sim/rx/cpu.h
@@ -1,6 +1,6 @@
/* cpu.h --- declarations for the RX core.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rx/err.c b/sim/rx/err.c
index ceb17aa..87c8a5e 100644
--- a/sim/rx/err.c
+++ b/sim/rx/err.c
@@ -1,6 +1,6 @@
/* err.c --- handle errors for RX simulator.
-Copyright (C) 2008-2024 Free Software Foundation, Inc.
+Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rx/err.h b/sim/rx/err.h
index 3ba6c96..181d5ee 100644
--- a/sim/rx/err.h
+++ b/sim/rx/err.h
@@ -1,6 +1,6 @@
/* err.h --- handle errors for RX simulator.
-Copyright (C) 2008-2024 Free Software Foundation, Inc.
+Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rx/fpu.c b/sim/rx/fpu.c
index db7ee79..a8967dd 100644
--- a/sim/rx/fpu.c
+++ b/sim/rx/fpu.c
@@ -1,6 +1,6 @@
/* fpu.c --- FPU emulator for stand-alone RX simulator.
-Copyright (C) 2008-2024 Free Software Foundation, Inc.
+Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rx/fpu.h b/sim/rx/fpu.h
index 65aaea8..1cba3a5 100644
--- a/sim/rx/fpu.h
+++ b/sim/rx/fpu.h
@@ -1,6 +1,6 @@
/* fpu.h --- FPU emulator for stand-alone RX simulator.
-Copyright (C) 2008-2024 Free Software Foundation, Inc.
+Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rx/gdb-if.c b/sim/rx/gdb-if.c
index 0fc626d..806d098 100644
--- a/sim/rx/gdb-if.c
+++ b/sim/rx/gdb-if.c
@@ -1,6 +1,6 @@
/* gdb-if.c -- sim interface to GDB.
-Copyright (C) 2008-2024 Free Software Foundation, Inc.
+Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rx/load.c b/sim/rx/load.c
index 8b9cbb3..283c5b6 100644
--- a/sim/rx/load.c
+++ b/sim/rx/load.c
@@ -1,6 +1,6 @@
/* load.c --- loading object files into the RX simulator.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rx/load.h b/sim/rx/load.h
index cce5bb8..45cd5ad 100644
--- a/sim/rx/load.h
+++ b/sim/rx/load.h
@@ -1,6 +1,6 @@
/* load.h --- interface to loading object files into the RX simulator.
-Copyright (C) 2008-2024 Free Software Foundation, Inc.
+Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rx/local.mk b/sim/rx/local.mk
index 5c7d9cd..34ea908 100644
--- a/sim/rx/local.mk
+++ b/sim/rx/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 2008-2024 Free Software Foundation, Inc.
+## Copyright (C) 2008-2025 Free Software Foundation, Inc.
## Contributed by Red Hat, Inc.
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/rx/main.c b/sim/rx/main.c
index d1015e6..9a12f2d 100644
--- a/sim/rx/main.c
+++ b/sim/rx/main.c
@@ -1,6 +1,6 @@
/* main.c --- main function for stand-alone RX simulator.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rx/mem.c b/sim/rx/mem.c
index 75238ef..d7b2b5c 100644
--- a/sim/rx/mem.c
+++ b/sim/rx/mem.c
@@ -1,6 +1,6 @@
/* mem.c --- memory for RX simulator.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rx/mem.h b/sim/rx/mem.h
index 8dfcebe..2dd123e 100644
--- a/sim/rx/mem.h
+++ b/sim/rx/mem.h
@@ -1,6 +1,6 @@
/* mem.h --- interface to memory for M32C simulator.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rx/misc.c b/sim/rx/misc.c
index 426cfca..e9ceb49 100644
--- a/sim/rx/misc.c
+++ b/sim/rx/misc.c
@@ -1,6 +1,6 @@
/* misc.c --- miscellaneous utility functions for RX simulator.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rx/misc.h b/sim/rx/misc.h
index 27591b2..1b66466 100644
--- a/sim/rx/misc.h
+++ b/sim/rx/misc.h
@@ -1,6 +1,6 @@
/* misc.h --- interface to miscellaneous utility functions for RX simulator.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rx/reg.c b/sim/rx/reg.c
index 1bc652d..dc5b22f 100644
--- a/sim/rx/reg.c
+++ b/sim/rx/reg.c
@@ -1,6 +1,6 @@
/* reg.c --- register set model for RX simulator.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rx/rx.c b/sim/rx/rx.c
index 57a7d5e..49cbd3d 100644
--- a/sim/rx/rx.c
+++ b/sim/rx/rx.c
@@ -1,6 +1,6 @@
/* rx.c --- opcode semantics for stand-alone RX simulator.
-Copyright (C) 2008-2024 Free Software Foundation, Inc.
+Copyright (C) 2008-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rx/syscalls.c b/sim/rx/syscalls.c
index f2ef91b..f921fa7 100644
--- a/sim/rx/syscalls.c
+++ b/sim/rx/syscalls.c
@@ -1,6 +1,6 @@
/* syscalls.c --- implement system calls for the RX simulator.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rx/syscalls.h b/sim/rx/syscalls.h
index b62a047..fd7d6ab 100644
--- a/sim/rx/syscalls.h
+++ b/sim/rx/syscalls.h
@@ -1,6 +1,6 @@
/* syscalls.h --- interface to syscalls for the RX sim.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rx/trace.c b/sim/rx/trace.c
index 443a990..69ea2f3 100644
--- a/sim/rx/trace.c
+++ b/sim/rx/trace.c
@@ -1,6 +1,6 @@
/* trace.c --- tracing output for the RX simulator.
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/rx/trace.h b/sim/rx/trace.h
index a8bb024..49214b6 100644
--- a/sim/rx/trace.h
+++ b/sim/rx/trace.h
@@ -1,6 +1,6 @@
/* trace.h --- interface to tracing output for the RX simulator.
- Copyright (C) 2005-2024 Free Software Foundation, Inc.
+ Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/sh/interp.c b/sim/sh/interp.c
index 379b44f..c8c2a74 100644
--- a/sim/sh/interp.c
+++ b/sim/sh/interp.c
@@ -1712,7 +1712,7 @@ sim_resume (SIM_DESC sd, int step, int siggnal)
register int endianw = global_endianw;
int tick_start = get_now ();
- void (*prev_fpe) ();
+ void (*prev_fpe) (int);
register unsigned short *jump_table = sh_jump_table;
diff --git a/sim/sh/local.mk b/sim/sh/local.mk
index d0daa74..def8c1c 100644
--- a/sim/sh/local.mk
+++ b/sim/sh/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 1990-2024 Free Software Foundation, Inc.
+## Copyright (C) 1990-2025 Free Software Foundation, Inc.
## Written by Cygnus Support.
##
## This program is free software; you can redistribute it and/or modify
diff --git a/sim/sh/sh-sim.h b/sim/sh/sh-sim.h
index c2cbe40..2d8b613 100644
--- a/sim/sh/sh-sim.h
+++ b/sim/sh/sh-sim.h
@@ -1,5 +1,5 @@
/* Moxie Simulator definition.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of the GNU simulators.
diff --git a/sim/sh/sim-main.h b/sim/sh/sim-main.h
index 34ac9c8..713de39 100644
--- a/sim/sh/sim-main.h
+++ b/sim/sh/sim-main.h
@@ -1,5 +1,5 @@
/* Moxie Simulator definition.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
+ Copyright (C) 2009-2025 Free Software Foundation, Inc.
This file is part of GDB, the GNU debugger.
diff --git a/sim/testsuite/common/bits-gen.c b/sim/testsuite/common/bits-gen.c
index fc1333b..767a6b6 100644
--- a/sim/testsuite/common/bits-gen.c
+++ b/sim/testsuite/common/bits-gen.c
@@ -1,5 +1,5 @@
/* Miscellaneous simulator utilities.
- Copyright (C) 1997-2024 Free Software Foundation, Inc.
+ Copyright (C) 1997-2025 Free Software Foundation, Inc.
Contributed by Cygnus Support.
This file is part of GDB, the GNU debugger.
diff --git a/sim/testsuite/common/bits-tst.c b/sim/testsuite/common/bits-tst.c
index a30753e..95ca450 100644
--- a/sim/testsuite/common/bits-tst.c
+++ b/sim/testsuite/common/bits-tst.c
@@ -1,4 +1,5 @@
# 2 "bits-tst.c"
+#include <string.h>
/* Drive the bit test routines */
@@ -320,9 +321,7 @@ check_bits (int call,
int
-main (argc, argv)
- int argc;
- char **argv;
+main (int argc, char **argv)
{
int errors = 0;
diff --git a/sim/testsuite/common/local.mk b/sim/testsuite/common/local.mk
index 935ac78..ba75de5 100644
--- a/sim/testsuite/common/local.mk
+++ b/sim/testsuite/common/local.mk
@@ -1,4 +1,4 @@
-## Copyright (C) 1997-2024 Free Software Foundation, Inc.
+## Copyright (C) 1997-2025 Free Software Foundation, Inc.
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/cris/asm/asm.exp b/sim/testsuite/cris/asm/asm.exp
index 7068a63..44bf1a7 100644
--- a/sim/testsuite/cris/asm/asm.exp
+++ b/sim/testsuite/cris/asm/asm.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2005-2024 Free Software Foundation, Inc.
+# Copyright (C) 2005-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/cris/c/c.exp b/sim/testsuite/cris/c/c.exp
index 5ccf863..a88e9c3 100644
--- a/sim/testsuite/cris/c/c.exp
+++ b/sim/testsuite/cris/c/c.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2005-2024 Free Software Foundation, Inc.
+# Copyright (C) 2005-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/cris/hw/rv-n-cris/rvc.exp b/sim/testsuite/cris/hw/rv-n-cris/rvc.exp
index 0aa6090..9f5019d 100644
--- a/sim/testsuite/cris/hw/rv-n-cris/rvc.exp
+++ b/sim/testsuite/cris/hw/rv-n-cris/rvc.exp
@@ -1,4 +1,4 @@
-# Copyright (C) 2006-2024 Free Software Foundation, Inc.
+# Copyright (C) 2006-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/local.mk b/sim/testsuite/local.mk
index bb7a757..bcb14be 100644
--- a/sim/testsuite/local.mk
+++ b/sim/testsuite/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am.
##
-## Copyright (C) 1997-2024 Free Software Foundation, Inc.
+## Copyright (C) 1997-2025 Free Software Foundation, Inc.
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/m32c/blinky.s b/sim/testsuite/m32c/blinky.s
index da2e533..de2e9a4 100644
--- a/sim/testsuite/m32c/blinky.s
+++ b/sim/testsuite/m32c/blinky.s
@@ -1,6 +1,6 @@
;;; blinky.s --- sample program to blink LED's on M32C simulator
;;;
-;;; Copyright (C) 2005-2024 Free Software Foundation, Inc.
+;;; Copyright (C) 2005-2025 Free Software Foundation, Inc.
;;; Contributed by Red Hat, Inc.
;;;
;;; This file is part of the GNU simulators.
diff --git a/sim/testsuite/m32c/gloss.s b/sim/testsuite/m32c/gloss.s
index 2216dcf..a750b45 100644
--- a/sim/testsuite/m32c/gloss.s
+++ b/sim/testsuite/m32c/gloss.s
@@ -1,6 +1,6 @@
;;; gloss.s --- system calls for sample2.x
;;;
-;;; Copyright (C) 2005-2024 Free Software Foundation, Inc.
+;;; Copyright (C) 2005-2025 Free Software Foundation, Inc.
;;; Contributed by Red Hat, Inc.
;;;
;;; This file is part of the GNU simulators.
diff --git a/sim/testsuite/m32c/sample.ld b/sim/testsuite/m32c/sample.ld
index 074635e..e7d0afb 100644
--- a/sim/testsuite/m32c/sample.ld
+++ b/sim/testsuite/m32c/sample.ld
@@ -1,6 +1,6 @@
/* sample2.ld --- linker script for sample2.x
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/testsuite/m32c/sample.s b/sim/testsuite/m32c/sample.s
index b870edf..4b05342 100644
--- a/sim/testsuite/m32c/sample.s
+++ b/sim/testsuite/m32c/sample.s
@@ -1,6 +1,6 @@
;;; sample.s --- simple test program for M32C simulator
;;;
-;;; Copyright (C) 2005-2024 Free Software Foundation, Inc.
+;;; Copyright (C) 2005-2025 Free Software Foundation, Inc.
;;; Contributed by Red Hat, Inc.
;;;
;;; This file is part of the GNU simulators.
diff --git a/sim/testsuite/m32c/sample2.c b/sim/testsuite/m32c/sample2.c
index 10d66d3..ece5927 100644
--- a/sim/testsuite/m32c/sample2.c
+++ b/sim/testsuite/m32c/sample2.c
@@ -1,6 +1,6 @@
/* sample2.c --- main source for sample2.x test program for M32C simulator
-Copyright (C) 2005-2024 Free Software Foundation, Inc.
+Copyright (C) 2005-2025 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of the GNU simulators.
diff --git a/sim/testsuite/mips/hilo-hazard-4.s b/sim/testsuite/mips/hilo-hazard-4.s
index d44a974..20c70b2 100644
--- a/sim/testsuite/mips/hilo-hazard-4.s
+++ b/sim/testsuite/mips/hilo-hazard-4.s
@@ -5,7 +5,7 @@
# ld: -N -Ttext=0x80010000
# output: pass\\n
-# Copyright (C) 2013-2024 Free Software Foundation, Inc.
+# Copyright (C) 2013-2025 Free Software Foundation, Inc.
# Contributed by Andrew Bennett (andrew.bennett@imgtec.com)
#
# This file is part of the MIPS sim.
diff --git a/sim/testsuite/mips/mips32-dsp.s b/sim/testsuite/mips/mips32-dsp.s
index a7e9502..71c4dc2 100644
--- a/sim/testsuite/mips/mips32-dsp.s
+++ b/sim/testsuite/mips/mips32-dsp.s
@@ -4,7 +4,7 @@
#ld: -N -Ttext=0x80010000
#output: *\\npass\\n
-# Copyright (C) 2005-2024 Free Software Foundation, Inc.
+# Copyright (C) 2005-2025 Free Software Foundation, Inc.
# Contributed by MIPS Technologies, Inc. Written by Chao-ying Fu.
#
# This file is part of the GNU simulators.
diff --git a/sim/testsuite/mips/testutils.inc b/sim/testsuite/mips/testutils.inc
index c2aeac4..4d984cc 100644
--- a/sim/testsuite/mips/testutils.inc
+++ b/sim/testsuite/mips/testutils.inc
@@ -1,5 +1,5 @@
# MIPS simulator testsuite utility functions.
-# Copyright (C) 2004-2024 Free Software Foundation, Inc.
+# Copyright (C) 2004-2025 Free Software Foundation, Inc.
# Contributed by Chris Demetriou of Broadcom Corporation.
#
# This file is part of the GNU simulators.
diff --git a/sim/testsuite/mips/utils-dsp.inc b/sim/testsuite/mips/utils-dsp.inc
index 4e7a8dc..89cd662 100644
--- a/sim/testsuite/mips/utils-dsp.inc
+++ b/sim/testsuite/mips/utils-dsp.inc
@@ -1,5 +1,5 @@
# MIPS DSP ASE simulator testsuite utility functions.
-# Copyright (C) 2005-2024 Free Software Foundation, Inc.
+# Copyright (C) 2005-2025 Free Software Foundation, Inc.
# Contributed by MIPS Technologies, Inc. Written by Chao-ying Fu.
#
# This file is part of the GNU simulators.
diff --git a/sim/testsuite/mips/utils-fpu.inc b/sim/testsuite/mips/utils-fpu.inc
index 3ba956d..131cf4c 100644
--- a/sim/testsuite/mips/utils-fpu.inc
+++ b/sim/testsuite/mips/utils-fpu.inc
@@ -1,5 +1,5 @@
# MIPS simulator testsuite FPU utility functions.
-# Copyright (C) 2004-2024 Free Software Foundation, Inc.
+# Copyright (C) 2004-2025 Free Software Foundation, Inc.
# Contributed by Chris Demetriou of Broadcom Corporation.
#
# This file is part of the GNU simulators.
diff --git a/sim/testsuite/mips/utils-mdmx.inc b/sim/testsuite/mips/utils-mdmx.inc
index 7ab7509..ddac142 100644
--- a/sim/testsuite/mips/utils-mdmx.inc
+++ b/sim/testsuite/mips/utils-mdmx.inc
@@ -1,5 +1,5 @@
# MIPS simulator testsuite MDMX utility functions.
-# Copyright (C) 2004-2024 Free Software Foundation, Inc.
+# Copyright (C) 2004-2025 Free Software Foundation, Inc.
# Contributed by Chris Demetriou of Broadcom Corporation.
#
# This file is part of the GNU simulators.
diff --git a/sim/testsuite/or1k/add.S b/sim/testsuite/or1k/add.S
index 38b8832..6e0656a 100644
--- a/sim/testsuite/or1k/add.S
+++ b/sim/testsuite/or1k/add.S
@@ -1,6 +1,6 @@
/* Tests instructions l.add, l.addc, l.addi and l.addic.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/adrp.S b/sim/testsuite/or1k/adrp.S
index 03378ae..58ce0e2 100644
--- a/sim/testsuite/or1k/adrp.S
+++ b/sim/testsuite/or1k/adrp.S
@@ -1,6 +1,6 @@
/* Tests the load page address instruction.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/alltests.exp b/sim/testsuite/or1k/alltests.exp
index 9747765..524ffcd 100644
--- a/sim/testsuite/or1k/alltests.exp
+++ b/sim/testsuite/or1k/alltests.exp
@@ -1,6 +1,6 @@
# OR1K simulator testsuite.
#
-# Copyright 2017-2024 Free Software Foundation, Inc.
+# Copyright 2017-2025 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/and.S b/sim/testsuite/or1k/and.S
index 2780365..89955a9 100644
--- a/sim/testsuite/or1k/and.S
+++ b/sim/testsuite/or1k/and.S
@@ -1,6 +1,6 @@
/* Tests instructions l.and, l.andi.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/basic.S b/sim/testsuite/or1k/basic.S
index 0ee6907..db0120a 100644
--- a/sim/testsuite/or1k/basic.S
+++ b/sim/testsuite/or1k/basic.S
@@ -1,6 +1,6 @@
/* Tests some basic CPU instructions.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/div.S b/sim/testsuite/or1k/div.S
index 6f33968..21f9cdb 100644
--- a/sim/testsuite/or1k/div.S
+++ b/sim/testsuite/or1k/div.S
@@ -1,6 +1,6 @@
/* Tests the divide instructions.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/ext.S b/sim/testsuite/or1k/ext.S
index 7db0dd7..d42ae24 100644
--- a/sim/testsuite/or1k/ext.S
+++ b/sim/testsuite/or1k/ext.S
@@ -1,6 +1,6 @@
/* Tests the l.ext{b,h}{s,z} instructions.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/find.S b/sim/testsuite/or1k/find.S
index 1c26379..4b0d65e 100644
--- a/sim/testsuite/or1k/find.S
+++ b/sim/testsuite/or1k/find.S
@@ -1,6 +1,6 @@
/* Tests the find instructions.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/flag.S b/sim/testsuite/or1k/flag.S
index 7ec0fde..62c7262 100644
--- a/sim/testsuite/or1k/flag.S
+++ b/sim/testsuite/or1k/flag.S
@@ -1,6 +1,6 @@
/* Tests the set flag (l.sf*) instructions.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/fpu-unordered.S b/sim/testsuite/or1k/fpu-unordered.S
index 23f969f..98ebd50 100644
--- a/sim/testsuite/or1k/fpu-unordered.S
+++ b/sim/testsuite/or1k/fpu-unordered.S
@@ -1,6 +1,6 @@
/* Tests some basic unordered fpu compare instructions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/fpu.S b/sim/testsuite/or1k/fpu.S
index c7f6714..047fdf3 100644
--- a/sim/testsuite/or1k/fpu.S
+++ b/sim/testsuite/or1k/fpu.S
@@ -1,6 +1,6 @@
/* Tests some basic fpu instructions.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/fpu64a32-unordered.S b/sim/testsuite/or1k/fpu64a32-unordered.S
index dee9e87..9edb89b 100644
--- a/sim/testsuite/or1k/fpu64a32-unordered.S
+++ b/sim/testsuite/or1k/fpu64a32-unordered.S
@@ -1,6 +1,6 @@
/* Tests some basic unordered fpu compare instructions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/fpu64a32.S b/sim/testsuite/or1k/fpu64a32.S
index 617563c..6f75012 100644
--- a/sim/testsuite/or1k/fpu64a32.S
+++ b/sim/testsuite/or1k/fpu64a32.S
@@ -1,6 +1,6 @@
/* Tests some basic fpu instructions.
- Copyright (C) 2019-2024 Free Software Foundation, Inc.
+ Copyright (C) 2019-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/jump.S b/sim/testsuite/or1k/jump.S
index 5881636..ae184cb 100644
--- a/sim/testsuite/or1k/jump.S
+++ b/sim/testsuite/or1k/jump.S
@@ -1,6 +1,6 @@
/* Tests the jump instructions.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/load.S b/sim/testsuite/or1k/load.S
index 0f2af60..715061f 100644
--- a/sim/testsuite/or1k/load.S
+++ b/sim/testsuite/or1k/load.S
@@ -1,6 +1,6 @@
/* Tests the load and store instructions.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/mac.S b/sim/testsuite/or1k/mac.S
index 7bacfcd..216df47 100644
--- a/sim/testsuite/or1k/mac.S
+++ b/sim/testsuite/or1k/mac.S
@@ -1,6 +1,6 @@
/* Tests the MAC instructions.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/mfspr.S b/sim/testsuite/or1k/mfspr.S
index e27358f..5ce031a 100644
--- a/sim/testsuite/or1k/mfspr.S
+++ b/sim/testsuite/or1k/mfspr.S
@@ -1,6 +1,6 @@
/* Tests instructions l.mfspr and l.mtspr.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/mul.S b/sim/testsuite/or1k/mul.S
index 4b65bd3..5ec9107 100644
--- a/sim/testsuite/or1k/mul.S
+++ b/sim/testsuite/or1k/mul.S
@@ -1,6 +1,6 @@
/* Tests the multiply instructions.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/or.S b/sim/testsuite/or1k/or.S
index 7dbae56..636f968 100644
--- a/sim/testsuite/or1k/or.S
+++ b/sim/testsuite/or1k/or.S
@@ -1,6 +1,6 @@
/* Tests instructions l.or, l.ori.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/or1k-asm-test-env.h b/sim/testsuite/or1k/or1k-asm-test-env.h
index 0fe30af..6f12ee7 100644
--- a/sim/testsuite/or1k/or1k-asm-test-env.h
+++ b/sim/testsuite/or1k/or1k-asm-test-env.h
@@ -1,6 +1,6 @@
/* Testsuite macros for OpenRISC.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/or1k-asm-test-helpers.h b/sim/testsuite/or1k/or1k-asm-test-helpers.h
index 200a70c..d54ee18 100644
--- a/sim/testsuite/or1k/or1k-asm-test-helpers.h
+++ b/sim/testsuite/or1k/or1k-asm-test-helpers.h
@@ -1,6 +1,6 @@
/* Testsuite helpers for OpenRISC.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/or1k-asm-test.h b/sim/testsuite/or1k/or1k-asm-test.h
index a140f6a..e298981 100644
--- a/sim/testsuite/or1k/or1k-asm-test.h
+++ b/sim/testsuite/or1k/or1k-asm-test.h
@@ -1,6 +1,6 @@
/* Testsuite architecture macros for OpenRISC.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/or1k-asm.h b/sim/testsuite/or1k/or1k-asm.h
index f8692e9..492bbd3 100644
--- a/sim/testsuite/or1k/or1k-asm.h
+++ b/sim/testsuite/or1k/or1k-asm.h
@@ -1,6 +1,6 @@
/* Testsuite assembly helpers for OpenRISC.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/or1k-test.ld b/sim/testsuite/or1k/or1k-test.ld
index 09c34ac..c6b74c1 100644
--- a/sim/testsuite/or1k/or1k-test.ld
+++ b/sim/testsuite/or1k/or1k-test.ld
@@ -1,6 +1,6 @@
/* Test linker script for OpenRISC.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/ror.S b/sim/testsuite/or1k/ror.S
index 84bcd94..60f993cd 100644
--- a/sim/testsuite/or1k/ror.S
+++ b/sim/testsuite/or1k/ror.S
@@ -1,6 +1,6 @@
/* Tests instructions l.ror and l.rori.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/shift.S b/sim/testsuite/or1k/shift.S
index 8c45ea0..6e330af 100644
--- a/sim/testsuite/or1k/shift.S
+++ b/sim/testsuite/or1k/shift.S
@@ -1,6 +1,6 @@
/* Tests the shift instructions.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/spr-defs.h b/sim/testsuite/or1k/spr-defs.h
index 539d72e..95f0e81 100644
--- a/sim/testsuite/or1k/spr-defs.h
+++ b/sim/testsuite/or1k/spr-defs.h
@@ -1,6 +1,6 @@
/* Special Purpose Registers definitions
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/sub.S b/sim/testsuite/or1k/sub.S
index a2759d5..8cf5d2b 100644
--- a/sim/testsuite/or1k/sub.S
+++ b/sim/testsuite/or1k/sub.S
@@ -1,6 +1,6 @@
/* Tests instruction l.sub.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/or1k/xor.S b/sim/testsuite/or1k/xor.S
index 1a08859..889c6da 100644
--- a/sim/testsuite/or1k/xor.S
+++ b/sim/testsuite/or1k/xor.S
@@ -1,6 +1,6 @@
/* Tests instructions l.xor, l.xori.
- Copyright (C) 2017-2024 Free Software Foundation, Inc.
+ Copyright (C) 2017-2025 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
diff --git a/sim/testsuite/pru/add.s b/sim/testsuite/pru/add.s
index 83bc796..cf4eaf4 100644
--- a/sim/testsuite/pru/add.s
+++ b/sim/testsuite/pru/add.s
@@ -1,7 +1,7 @@
# Check that basic add insn works.
# mach: pru
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
#
# This file is part of the GNU simulators.
diff --git a/sim/testsuite/pru/allinsn.exp b/sim/testsuite/pru/allinsn.exp
index f039b84..256b640 100644
--- a/sim/testsuite/pru/allinsn.exp
+++ b/sim/testsuite/pru/allinsn.exp
@@ -1,6 +1,6 @@
# PRU simulator testsuite.
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
#
# This file is part of the GNU simulators.
diff --git a/sim/testsuite/pru/carry.s b/sim/testsuite/pru/carry.s
index 43cae6f..8f5ab99 100644
--- a/sim/testsuite/pru/carry.s
+++ b/sim/testsuite/pru/carry.s
@@ -1,7 +1,7 @@
# Check that carry for addition and subtraction works.
# mach: pru
-# Copyright (C) 2023-2024 Free Software Foundation, Inc.
+# Copyright (C) 2023-2025 Free Software Foundation, Inc.
# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
#
# This file is part of the GNU simulators.
diff --git a/sim/testsuite/pru/dmem-zero-pass.s b/sim/testsuite/pru/dmem-zero-pass.s
index 7775224..5d281dc 100644
--- a/sim/testsuite/pru/dmem-zero-pass.s
+++ b/sim/testsuite/pru/dmem-zero-pass.s
@@ -1,7 +1,7 @@
# Check that DMEM zero address access works by default.
# mach: pru
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
#
# This file is part of the GNU simulators.
diff --git a/sim/testsuite/pru/dmem-zero-trap.s b/sim/testsuite/pru/dmem-zero-trap.s
index a0605b6..8beb427 100644
--- a/sim/testsuite/pru/dmem-zero-trap.s
+++ b/sim/testsuite/pru/dmem-zero-trap.s
@@ -4,7 +4,7 @@
# xerror:
# output: core: 4 byte read to unmapped address 0x0 at *\n
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
#
# This file is part of the GNU simulators.
diff --git a/sim/testsuite/pru/dram.s b/sim/testsuite/pru/dram.s
index 3087bfb..203d060 100644
--- a/sim/testsuite/pru/dram.s
+++ b/sim/testsuite/pru/dram.s
@@ -1,7 +1,7 @@
# Check that DRAM memory access works.
# mach: pru
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
#
# This file is part of the GNU simulators.
diff --git a/sim/testsuite/pru/jmp.s b/sim/testsuite/pru/jmp.s
index 21d7f12..4ce6132 100644
--- a/sim/testsuite/pru/jmp.s
+++ b/sim/testsuite/pru/jmp.s
@@ -1,7 +1,7 @@
# Check that jump and branch insns work.
# mach: pru
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
#
# This file is part of the GNU simulators.
diff --git a/sim/testsuite/pru/lmbd.s b/sim/testsuite/pru/lmbd.s
index 438cfc0..2030467 100644
--- a/sim/testsuite/pru/lmbd.s
+++ b/sim/testsuite/pru/lmbd.s
@@ -1,7 +1,7 @@
# Check that lmbd insn works.
# mach: pru
-# Copyright (C) 2020-2024 Free Software Foundation, Inc.
+# Copyright (C) 2020-2025 Free Software Foundation, Inc.
# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
#
# This file is part of the GNU simulators.
diff --git a/sim/testsuite/pru/loop-imm.s b/sim/testsuite/pru/loop-imm.s
index 19bbaf9..5d17690 100644
--- a/sim/testsuite/pru/loop-imm.s
+++ b/sim/testsuite/pru/loop-imm.s
@@ -1,7 +1,7 @@
# Check that loop insn works.
# mach: pru
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
#
# This file is part of the GNU simulators.
diff --git a/sim/testsuite/pru/loop-reg.s b/sim/testsuite/pru/loop-reg.s
index 624900c..a04c479 100644
--- a/sim/testsuite/pru/loop-reg.s
+++ b/sim/testsuite/pru/loop-reg.s
@@ -1,7 +1,7 @@
# Check that loop insn works.
# mach: pru
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
#
# This file is part of the GNU simulators.
diff --git a/sim/testsuite/pru/loop-zero.s b/sim/testsuite/pru/loop-zero.s
index 4f8be7b..d2c0477 100644
--- a/sim/testsuite/pru/loop-zero.s
+++ b/sim/testsuite/pru/loop-zero.s
@@ -1,7 +1,7 @@
# Check that loop insn works if register value is zero.
# mach: pru
-# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+# Copyright (C) 2022-2025 Free Software Foundation, Inc.
# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
#
# This file is part of the GNU simulators.
diff --git a/sim/testsuite/pru/mul.s b/sim/testsuite/pru/mul.s
index 754a129..7304668 100644
--- a/sim/testsuite/pru/mul.s
+++ b/sim/testsuite/pru/mul.s
@@ -1,7 +1,7 @@
# Check that multiplication works.
# mach: pru
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
#
# This file is part of the GNU simulators.
diff --git a/sim/testsuite/pru/subreg.s b/sim/testsuite/pru/subreg.s
index 80dc371..cb0e039 100644
--- a/sim/testsuite/pru/subreg.s
+++ b/sim/testsuite/pru/subreg.s
@@ -1,7 +1,7 @@
# Check that subregister addressing works.
# mach: pru
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
#
# This file is part of the GNU simulators.
diff --git a/sim/testsuite/pru/testutils.inc b/sim/testsuite/pru/testutils.inc
index 8fa4390..1ab9b47 100644
--- a/sim/testsuite/pru/testutils.inc
+++ b/sim/testsuite/pru/testutils.inc
@@ -1,4 +1,4 @@
-# Copyright (C) 2016-2024 Free Software Foundation, Inc.
+# Copyright (C) 2016-2025 Free Software Foundation, Inc.
# Contributed by Dimitar Dimitrov <dimitar@dinux.eu>
#
# This file is part of the GNU simulators.
diff --git a/sim/v850/local.mk b/sim/v850/local.mk
index 847bcc5..1cf5bd5 100644
--- a/sim/v850/local.mk
+++ b/sim/v850/local.mk
@@ -1,6 +1,6 @@
## See sim/Makefile.am
##
-## Copyright (C) 1996-2024 Free Software Foundation, Inc.
+## Copyright (C) 1996-2025 Free Software Foundation, Inc.
## Written by Cygnus Support.
##
## This program is free software; you can redistribute it and/or modify